diff --git a/.cmake-format.py b/.cmake-format.py index 6949bef..a0eeb61 100644 --- a/.cmake-format.py +++ b/.cmake-format.py @@ -1,102 +1,107 @@ -# Generated with cmake-format 0.5.1 -# How wide to allow formatted cmake files -line_width = 80 - -# How many spaces to tab for indent -tab_size = 2 - -# If arglists are longer than this, break them always -max_subargs_per_line = 10 - -# If true, separate flow control names from their parentheses with a space -separate_ctrl_name_with_space = False - -# If true, separate function names from parentheses with a space -separate_fn_name_with_space = False - -# If a statement is wrapped to more than one line, than dangle the closing -# parenthesis on its own line -dangle_parens = False - -# What character to use for bulleted lists -bullet_char = '*' - -# What character to use as punctuation after numerals in an enumerated list -enum_char = '.' - -# What style line endings to use in the output. -line_ending = u'unix' - -# Format command names consistently as 'lower' or 'upper' case -command_case = u'lower' - -# Format keywords consistently as 'lower' or 'upper' case -keyword_case = u'unchanged' - -# Specify structure for custom cmake functions -additional_commands = { - "foo": { - "flags": [ - "BAR", - "BAZ" - ], - "kwargs": { - "HEADERS": "*", - "DEPENDS": "*", - "SOURCES": "*" - } +with section('parse'): + # Specify structure for custom cmake functions + additional_commands = { + 'draco_add_emscripten_executable': { + 'kwargs': { + 'NAME': '*', + 'SOURCES': '*', + 'OUTPUT_NAME': '*', + 'DEFINES': '*', + 'INCLUDES': '*', + 'COMPILE_FLAGS': '*', + 'LINK_FLAGS': '*', + 'OBJLIB_DEPS': '*', + 'LIB_DEPS': '*', + 'GLUE_PATH': '*', + 'PRE_LINK_JS_SOURCES': '*', + 'POST_LINK_JS_SOURCES': '*', + 'FEATURES': '*', + }, + 'pargs': 0 + }, + 'draco_add_executable': { + 'kwargs': { + 'NAME': '*', + 'SOURCES': '*', + 'OUTPUT_NAME': '*', + 'TEST': 0, + 'DEFINES': '*', + 'INCLUDES': '*', + 'COMPILE_FLAGS': '*', + 'LINK_FLAGS': '*', + 'OBJLIB_DEPS': '*', + 'LIB_DEPS': '*', + }, + 'pargs': 0 + }, + 'draco_add_library': { + 'kwargs': { + 'NAME': '*', + 'TYPE': '*', + 'SOURCES': '*', + 'TEST': 0, + 'OUTPUT_NAME': '*', + 'DEFINES': '*', + 'INCLUDES': '*', + 'COMPILE_FLAGS': '*', + 'LINK_FLAGS': '*', + 'OBJLIB_DEPS': '*', + 'LIB_DEPS': '*', + 'PUBLIC_INCLUDES': '*', + }, + 'pargs': 0 + }, + 'draco_generate_emscripten_glue': { + 'kwargs': { + 'INPUT_IDL': '*', + 'OUTPUT_PATH': '*', + }, + 'pargs': 0 + }, + 'draco_get_required_emscripten_flags': { + 'kwargs': { + 'FLAG_LIST_VAR_COMPILER': '*', + 'FLAG_LIST_VAR_LINKER': '*', + }, + 'pargs': 0 + }, + 'draco_option': { + 'kwargs': { + 'NAME': '*', + 'HELPSTRING': '*', + 'VALUE': '*', + }, + 'pargs': 0 + }, } -} -# A list of command names which should always be wrapped -always_wrap = [] +with section('format'): + # Formatting options. -# Specify the order of wrapping algorithms during successive reflow attempts -algorithm_order = [0, 1, 2, 3, 4] + # How wide to allow formatted cmake files + line_width = 80 -# If true, the argument lists which are known to be sortable will be sorted -# lexicographicall -autosort = False + # How many spaces to tab for indent + tab_size = 2 -# enable comment markup parsing and reflow -enable_markup = True + # If true, separate flow control names from their parentheses with a space + separate_ctrl_name_with_space = False -# If comment markup is enabled, don't reflow the first comment block in -# eachlistfile. Use this to preserve formatting of your -# copyright/licensestatements. -first_comment_is_literal = True + # If true, separate function names from parentheses with a space + separate_fn_name_with_space = False -# If comment markup is enabled, don't reflow any comment block which matchesthis -# (regex) pattern. Default is `None` (disabled). -literal_comment_pattern = None + # If a statement is wrapped to more than one line, than dangle the closing + # parenthesis on its own line. + dangle_parens = False -# Regular expression to match preformat fences in comments -# default=r'^\s*([`~]{3}[`~]*)(.*)$' -fence_pattern = u'^\\s*([`~]{3}[`~]*)(.*)$' + # Do not sort argument lists. + enable_sort = False -# Regular expression to match rulers in comments -# default=r'^\s*[^\w\s]{3}.*[^\w\s]{3}$' -ruler_pattern = u'^\\s*[^\\w\\s]{3}.*[^\\w\\s]{3}$' + # What style line endings to use in the output. + line_ending = 'unix' -# If true, emit the unicode byte-order mark (BOM) at the start of the file -emit_byteorder_mark = False + # Format command names consistently as 'lower' or 'upper' case + command_case = 'canonical' -# If a comment line starts with at least this many consecutive hash characters, -# then don't lstrip() them off. This allows for lazy hash rulers where the first -# hash char is not separated by space -hashruler_min_length = 10 - -# If true, then insert a space between the first hash char and remaining hash -# chars in a hash ruler, and normalize its length to fill the column -canonicalize_hashrulers = True - -# Specify the encoding of the input file. Defaults to utf-8. -input_encoding = u'utf-8' - -# Specify the encoding of the output file. Defaults to utf-8. Note that cmake -# only claims to support utf-8 so be careful when using anything else -output_encoding = u'utf-8' - -# A dictionary containing any per-command configuration overrides. Currently -# only `command_case` is supported. -per_command = {} + # Format keywords consistently as 'lower' or 'upper' case + keyword_case = 'upper' diff --git a/.gitattributes b/.gitattributes index b39dbdd..96acfc6 100644 --- a/.gitattributes +++ b/.gitattributes @@ -1 +1 @@ -*.obj eol=lf +*.obj eol=lf \ No newline at end of file diff --git a/BUILDING.md b/BUILDING.md index 65690ae..340b2b8 100644 --- a/BUILDING.md +++ b/BUILDING.md @@ -77,6 +77,15 @@ CMake Build Configuration Transcoder ---------- +Before attempting to build Draco with transcoding support you must run an +additional Git command to obtain the submodules: + +~~~~~ bash +# Run this command from within your Draco clone. +$ git submodule update --init +# See below if you prefer to use existing versions of Draco dependencies. +~~~~~ + In order to build the `draco_transcoder` target, the transcoding support needs to be explicitly enabled when you run `cmake`, for example: @@ -90,7 +99,7 @@ built with the transcoder support may result in increased binary sizes of the produced libraries and executables compared to the default CMake settings. The following CMake variables can be used to configure Draco to use local -copies of third party dependencies. +copies of third party dependencies instead of git submodules. - `DRACO_EIGEN_PATH`: this path must contain an Eigen directory that includes the Eigen sources. @@ -99,7 +108,7 @@ copies of third party dependencies. - `DRACO_TINYGLTF_PATH`: this path must contain tiny_gltf.h and its dependencies. -If not specified the Draco build requires the presence of the submodules that +When not specified the Draco build requires the presence of the submodules that are stored within `draco/third_party`. Debugging and Optimization diff --git a/CMakeLists.txt b/CMakeLists.txt index abe9ff3..0f07ff0 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -1,16 +1,16 @@ # Copyright 2021 The Draco Authors # -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at +# Licensed under the Apache License, Version 2.0 (the "License"); you may not +# use this file except in compliance with the License. You may obtain a copy of +# the License at # -# http://www.apache.org/licenses/LICENSE-2.0 +# http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. +# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT +# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the +# License for the specific language governing permissions and limitations under +# the License. cmake_minimum_required(VERSION 3.12 FATAL_ERROR) project(draco C CXX) @@ -25,11 +25,13 @@ set(draco_build "${CMAKE_BINARY_DIR}") if("${draco_root}" STREQUAL "${draco_build}") message( - FATAL_ERROR "Building from within the Draco source tree is not supported.\n" - "Hint: Run these commands\n" - "$ rm -rf CMakeCache.txt CMakeFiles\n" - "$ mkdir -p ../draco_build\n" "$ cd ../draco_build\n" - "And re-run CMake from the draco_build directory.") + FATAL_ERROR + "Building from within the Draco source tree is not supported.\n" + "Hint: Run these commands\n" + "$ rm -rf CMakeCache.txt CMakeFiles\n" + "$ mkdir -p ../draco_build\n" + "$ cd ../draco_build\n" + "And re-run CMake from the draco_build directory.") endif() include(FindPythonInterp) @@ -83,447 +85,475 @@ draco_set_exe_linker_flags() draco_generate_features_h() # Draco source file listing variables. -list(APPEND draco_attributes_sources - "${draco_src_root}/attributes/attribute_octahedron_transform.cc" - "${draco_src_root}/attributes/attribute_octahedron_transform.h" - "${draco_src_root}/attributes/attribute_quantization_transform.cc" - "${draco_src_root}/attributes/attribute_quantization_transform.h" - "${draco_src_root}/attributes/attribute_transform.cc" - "${draco_src_root}/attributes/attribute_transform.h" - "${draco_src_root}/attributes/attribute_transform_data.h" - "${draco_src_root}/attributes/attribute_transform_type.h" - "${draco_src_root}/attributes/geometry_attribute.cc" - "${draco_src_root}/attributes/geometry_attribute.h" - "${draco_src_root}/attributes/geometry_indices.h" - "${draco_src_root}/attributes/point_attribute.cc" - "${draco_src_root}/attributes/point_attribute.h") +list( + APPEND + draco_attributes_sources + "${draco_src_root}/attributes/attribute_octahedron_transform.cc" + "${draco_src_root}/attributes/attribute_octahedron_transform.h" + "${draco_src_root}/attributes/attribute_quantization_transform.cc" + "${draco_src_root}/attributes/attribute_quantization_transform.h" + "${draco_src_root}/attributes/attribute_transform.cc" + "${draco_src_root}/attributes/attribute_transform.h" + "${draco_src_root}/attributes/attribute_transform_data.h" + "${draco_src_root}/attributes/attribute_transform_type.h" + "${draco_src_root}/attributes/geometry_attribute.cc" + "${draco_src_root}/attributes/geometry_attribute.h" + "${draco_src_root}/attributes/geometry_indices.h" + "${draco_src_root}/attributes/point_attribute.cc" + "${draco_src_root}/attributes/point_attribute.h") list( APPEND - draco_compression_attributes_dec_sources - "${draco_src_root}/compression/attributes/attributes_decoder.cc" - "${draco_src_root}/compression/attributes/attributes_decoder.h" - "${draco_src_root}/compression/attributes/attributes_decoder_interface.h" - "${draco_src_root}/compression/attributes/kd_tree_attributes_decoder.cc" - "${draco_src_root}/compression/attributes/kd_tree_attributes_decoder.h" - "${draco_src_root}/compression/attributes/kd_tree_attributes_shared.h" - "${draco_src_root}/compression/attributes/mesh_attribute_indices_encoding_data.h" - "${draco_src_root}/compression/attributes/normal_compression_utils.h" - "${draco_src_root}/compression/attributes/point_d_vector.h" - "${draco_src_root}/compression/attributes/sequential_attribute_decoder.cc" - "${draco_src_root}/compression/attributes/sequential_attribute_decoder.h" - "${draco_src_root}/compression/attributes/sequential_attribute_decoders_controller.cc" - "${draco_src_root}/compression/attributes/sequential_attribute_decoders_controller.h" - "${draco_src_root}/compression/attributes/sequential_integer_attribute_decoder.cc" - "${draco_src_root}/compression/attributes/sequential_integer_attribute_decoder.h" - "${draco_src_root}/compression/attributes/sequential_normal_attribute_decoder.cc" - "${draco_src_root}/compression/attributes/sequential_normal_attribute_decoder.h" - "${draco_src_root}/compression/attributes/sequential_quantization_attribute_decoder.cc" - "${draco_src_root}/compression/attributes/sequential_quantization_attribute_decoder.h" - ) + draco_compression_attributes_dec_sources + "${draco_src_root}/compression/attributes/attributes_decoder.cc" + "${draco_src_root}/compression/attributes/attributes_decoder.h" + "${draco_src_root}/compression/attributes/attributes_decoder_interface.h" + "${draco_src_root}/compression/attributes/kd_tree_attributes_decoder.cc" + "${draco_src_root}/compression/attributes/kd_tree_attributes_decoder.h" + "${draco_src_root}/compression/attributes/kd_tree_attributes_shared.h" + "${draco_src_root}/compression/attributes/mesh_attribute_indices_encoding_data.h" + "${draco_src_root}/compression/attributes/normal_compression_utils.h" + "${draco_src_root}/compression/attributes/point_d_vector.h" + "${draco_src_root}/compression/attributes/sequential_attribute_decoder.cc" + "${draco_src_root}/compression/attributes/sequential_attribute_decoder.h" + "${draco_src_root}/compression/attributes/sequential_attribute_decoders_controller.cc" + "${draco_src_root}/compression/attributes/sequential_attribute_decoders_controller.h" + "${draco_src_root}/compression/attributes/sequential_integer_attribute_decoder.cc" + "${draco_src_root}/compression/attributes/sequential_integer_attribute_decoder.h" + "${draco_src_root}/compression/attributes/sequential_normal_attribute_decoder.cc" + "${draco_src_root}/compression/attributes/sequential_normal_attribute_decoder.h" + "${draco_src_root}/compression/attributes/sequential_quantization_attribute_decoder.cc" + "${draco_src_root}/compression/attributes/sequential_quantization_attribute_decoder.h" +) list( APPEND - draco_compression_attributes_enc_sources - "${draco_src_root}/compression/attributes/attributes_encoder.cc" - "${draco_src_root}/compression/attributes/attributes_encoder.h" - "${draco_src_root}/compression/attributes/kd_tree_attributes_encoder.cc" - "${draco_src_root}/compression/attributes/kd_tree_attributes_encoder.h" - "${draco_src_root}/compression/attributes/linear_sequencer.h" - "${draco_src_root}/compression/attributes/points_sequencer.h" - "${draco_src_root}/compression/attributes/sequential_attribute_encoder.cc" - "${draco_src_root}/compression/attributes/sequential_attribute_encoder.h" - "${draco_src_root}/compression/attributes/sequential_attribute_encoders_controller.cc" - "${draco_src_root}/compression/attributes/sequential_attribute_encoders_controller.h" - "${draco_src_root}/compression/attributes/sequential_integer_attribute_encoder.cc" - "${draco_src_root}/compression/attributes/sequential_integer_attribute_encoder.h" - "${draco_src_root}/compression/attributes/sequential_normal_attribute_encoder.cc" - "${draco_src_root}/compression/attributes/sequential_normal_attribute_encoder.h" - "${draco_src_root}/compression/attributes/sequential_quantization_attribute_encoder.cc" - "${draco_src_root}/compression/attributes/sequential_quantization_attribute_encoder.h" - ) + draco_compression_attributes_enc_sources + "${draco_src_root}/compression/attributes/attributes_encoder.cc" + "${draco_src_root}/compression/attributes/attributes_encoder.h" + "${draco_src_root}/compression/attributes/kd_tree_attributes_encoder.cc" + "${draco_src_root}/compression/attributes/kd_tree_attributes_encoder.h" + "${draco_src_root}/compression/attributes/linear_sequencer.h" + "${draco_src_root}/compression/attributes/points_sequencer.h" + "${draco_src_root}/compression/attributes/sequential_attribute_encoder.cc" + "${draco_src_root}/compression/attributes/sequential_attribute_encoder.h" + "${draco_src_root}/compression/attributes/sequential_attribute_encoders_controller.cc" + "${draco_src_root}/compression/attributes/sequential_attribute_encoders_controller.h" + "${draco_src_root}/compression/attributes/sequential_integer_attribute_encoder.cc" + "${draco_src_root}/compression/attributes/sequential_integer_attribute_encoder.h" + "${draco_src_root}/compression/attributes/sequential_normal_attribute_encoder.cc" + "${draco_src_root}/compression/attributes/sequential_normal_attribute_encoder.h" + "${draco_src_root}/compression/attributes/sequential_quantization_attribute_encoder.cc" + "${draco_src_root}/compression/attributes/sequential_quantization_attribute_encoder.h" +) list( APPEND - draco_compression_attributes_pred_schemes_dec_sources - "${draco_src_root}/compression/attributes/prediction_schemes/mesh_prediction_scheme_constrained_multi_parallelogram_decoder.h" - "${draco_src_root}/compression/attributes/prediction_schemes/mesh_prediction_scheme_constrained_multi_parallelogram_shared.h" - "${draco_src_root}/compression/attributes/prediction_schemes/mesh_prediction_scheme_data.h" - "${draco_src_root}/compression/attributes/prediction_schemes/mesh_prediction_scheme_decoder.h" - "${draco_src_root}/compression/attributes/prediction_schemes/mesh_prediction_scheme_geometric_normal_decoder.h" - "${draco_src_root}/compression/attributes/prediction_schemes/mesh_prediction_scheme_geometric_normal_predictor_area.h" - "${draco_src_root}/compression/attributes/prediction_schemes/mesh_prediction_scheme_geometric_normal_predictor_base.h" - "${draco_src_root}/compression/attributes/prediction_schemes/mesh_prediction_scheme_multi_parallelogram_decoder.h" - "${draco_src_root}/compression/attributes/prediction_schemes/mesh_prediction_scheme_parallelogram_encoder.h" - "${draco_src_root}/compression/attributes/prediction_schemes/mesh_prediction_scheme_parallelogram_shared.h" - "${draco_src_root}/compression/attributes/prediction_schemes/mesh_prediction_scheme_tex_coords_decoder.h" - "${draco_src_root}/compression/attributes/prediction_schemes/mesh_prediction_scheme_tex_coords_portable_decoder.h" - "${draco_src_root}/compression/attributes/prediction_schemes/mesh_prediction_scheme_tex_coords_portable_predictor.h" - "${draco_src_root}/compression/attributes/prediction_schemes/prediction_scheme_decoder.h" - "${draco_src_root}/compression/attributes/prediction_schemes/prediction_scheme_decoder_factory.h" - "${draco_src_root}/compression/attributes/prediction_schemes/prediction_scheme_decoder_interface.h" - "${draco_src_root}/compression/attributes/prediction_schemes/prediction_scheme_decoding_transform.h" - "${draco_src_root}/compression/attributes/prediction_schemes/prediction_scheme_delta_decoder.h" - "${draco_src_root}/compression/attributes/prediction_schemes/prediction_scheme_factory.h" - "${draco_src_root}/compression/attributes/prediction_schemes/prediction_scheme_interface.h" - "${draco_src_root}/compression/attributes/prediction_schemes/prediction_scheme_normal_octahedron_canonicalized_decoding_transform.h" - "${draco_src_root}/compression/attributes/prediction_schemes/prediction_scheme_normal_octahedron_canonicalized_transform_base.h" - "${draco_src_root}/compression/attributes/prediction_schemes/prediction_scheme_normal_octahedron_decoding_transform.h" - "${draco_src_root}/compression/attributes/prediction_schemes/prediction_scheme_normal_octahedron_transform_base.h" - "${draco_src_root}/compression/attributes/prediction_schemes/prediction_scheme_wrap_decoding_transform.h" - "${draco_src_root}/compression/attributes/prediction_schemes/prediction_scheme_wrap_transform_base.h" - ) + draco_compression_attributes_pred_schemes_dec_sources + "${draco_src_root}/compression/attributes/prediction_schemes/mesh_prediction_scheme_constrained_multi_parallelogram_decoder.h" + "${draco_src_root}/compression/attributes/prediction_schemes/mesh_prediction_scheme_constrained_multi_parallelogram_shared.h" + "${draco_src_root}/compression/attributes/prediction_schemes/mesh_prediction_scheme_data.h" + "${draco_src_root}/compression/attributes/prediction_schemes/mesh_prediction_scheme_decoder.h" + "${draco_src_root}/compression/attributes/prediction_schemes/mesh_prediction_scheme_geometric_normal_decoder.h" + "${draco_src_root}/compression/attributes/prediction_schemes/mesh_prediction_scheme_geometric_normal_predictor_area.h" + "${draco_src_root}/compression/attributes/prediction_schemes/mesh_prediction_scheme_geometric_normal_predictor_base.h" + "${draco_src_root}/compression/attributes/prediction_schemes/mesh_prediction_scheme_multi_parallelogram_decoder.h" + "${draco_src_root}/compression/attributes/prediction_schemes/mesh_prediction_scheme_parallelogram_encoder.h" + "${draco_src_root}/compression/attributes/prediction_schemes/mesh_prediction_scheme_parallelogram_shared.h" + "${draco_src_root}/compression/attributes/prediction_schemes/mesh_prediction_scheme_tex_coords_decoder.h" + "${draco_src_root}/compression/attributes/prediction_schemes/mesh_prediction_scheme_tex_coords_portable_decoder.h" + "${draco_src_root}/compression/attributes/prediction_schemes/mesh_prediction_scheme_tex_coords_portable_predictor.h" + "${draco_src_root}/compression/attributes/prediction_schemes/prediction_scheme_decoder.h" + "${draco_src_root}/compression/attributes/prediction_schemes/prediction_scheme_decoder_factory.h" + "${draco_src_root}/compression/attributes/prediction_schemes/prediction_scheme_decoder_interface.h" + "${draco_src_root}/compression/attributes/prediction_schemes/prediction_scheme_decoding_transform.h" + "${draco_src_root}/compression/attributes/prediction_schemes/prediction_scheme_delta_decoder.h" + "${draco_src_root}/compression/attributes/prediction_schemes/prediction_scheme_factory.h" + "${draco_src_root}/compression/attributes/prediction_schemes/prediction_scheme_interface.h" + "${draco_src_root}/compression/attributes/prediction_schemes/prediction_scheme_normal_octahedron_canonicalized_decoding_transform.h" + "${draco_src_root}/compression/attributes/prediction_schemes/prediction_scheme_normal_octahedron_canonicalized_transform_base.h" + "${draco_src_root}/compression/attributes/prediction_schemes/prediction_scheme_normal_octahedron_decoding_transform.h" + "${draco_src_root}/compression/attributes/prediction_schemes/prediction_scheme_normal_octahedron_transform_base.h" + "${draco_src_root}/compression/attributes/prediction_schemes/prediction_scheme_wrap_decoding_transform.h" + "${draco_src_root}/compression/attributes/prediction_schemes/prediction_scheme_wrap_transform_base.h" +) list( APPEND - draco_compression_attributes_pred_schemes_enc_sources - "${draco_src_root}/compression/attributes/prediction_schemes/mesh_prediction_scheme_constrained_multi_parallelogram_encoder.h" - "${draco_src_root}/compression/attributes/prediction_schemes/mesh_prediction_scheme_constrained_multi_parallelogram_shared.h" - "${draco_src_root}/compression/attributes/prediction_schemes/mesh_prediction_scheme_data.h" - "${draco_src_root}/compression/attributes/prediction_schemes/mesh_prediction_scheme_encoder.h" - "${draco_src_root}/compression/attributes/prediction_schemes/mesh_prediction_scheme_geometric_normal_encoder.h" - "${draco_src_root}/compression/attributes/prediction_schemes/mesh_prediction_scheme_geometric_normal_predictor_area.h" - "${draco_src_root}/compression/attributes/prediction_schemes/mesh_prediction_scheme_geometric_normal_predictor_base.h" - "${draco_src_root}/compression/attributes/prediction_schemes/mesh_prediction_scheme_multi_parallelogram_encoder.h" - "${draco_src_root}/compression/attributes/prediction_schemes/mesh_prediction_scheme_parallelogram_encoder.h" - "${draco_src_root}/compression/attributes/prediction_schemes/mesh_prediction_scheme_parallelogram_shared.h" - "${draco_src_root}/compression/attributes/prediction_schemes/mesh_prediction_scheme_tex_coords_encoder.h" - "${draco_src_root}/compression/attributes/prediction_schemes/mesh_prediction_scheme_tex_coords_portable_encoder.h" - "${draco_src_root}/compression/attributes/prediction_schemes/mesh_prediction_scheme_tex_coords_portable_predictor.h" - "${draco_src_root}/compression/attributes/prediction_schemes/prediction_scheme_delta_encoder.h" - "${draco_src_root}/compression/attributes/prediction_schemes/prediction_scheme_encoder.h" - "${draco_src_root}/compression/attributes/prediction_schemes/prediction_scheme_encoder_factory.cc" - "${draco_src_root}/compression/attributes/prediction_schemes/prediction_scheme_encoder_factory.h" - "${draco_src_root}/compression/attributes/prediction_schemes/prediction_scheme_encoder_interface.h" - "${draco_src_root}/compression/attributes/prediction_schemes/prediction_scheme_encoding_transform.h" - "${draco_src_root}/compression/attributes/prediction_schemes/prediction_scheme_factory.h" - "${draco_src_root}/compression/attributes/prediction_schemes/prediction_scheme_interface.h" - "${draco_src_root}/compression/attributes/prediction_schemes/prediction_scheme_normal_octahedron_canonicalized_encoding_transform.h" - "${draco_src_root}/compression/attributes/prediction_schemes/prediction_scheme_normal_octahedron_canonicalized_transform_base.h" - "${draco_src_root}/compression/attributes/prediction_schemes/prediction_scheme_normal_octahedron_encoding_transform.h" - "${draco_src_root}/compression/attributes/prediction_schemes/prediction_scheme_normal_octahedron_transform_base.h" - "${draco_src_root}/compression/attributes/prediction_schemes/prediction_scheme_wrap_encoding_transform.h" - "${draco_src_root}/compression/attributes/prediction_schemes/prediction_scheme_wrap_transform_base.h" - ) + draco_compression_attributes_pred_schemes_enc_sources + "${draco_src_root}/compression/attributes/prediction_schemes/mesh_prediction_scheme_constrained_multi_parallelogram_encoder.h" + "${draco_src_root}/compression/attributes/prediction_schemes/mesh_prediction_scheme_constrained_multi_parallelogram_shared.h" + "${draco_src_root}/compression/attributes/prediction_schemes/mesh_prediction_scheme_data.h" + "${draco_src_root}/compression/attributes/prediction_schemes/mesh_prediction_scheme_encoder.h" + "${draco_src_root}/compression/attributes/prediction_schemes/mesh_prediction_scheme_geometric_normal_encoder.h" + "${draco_src_root}/compression/attributes/prediction_schemes/mesh_prediction_scheme_geometric_normal_predictor_area.h" + "${draco_src_root}/compression/attributes/prediction_schemes/mesh_prediction_scheme_geometric_normal_predictor_base.h" + "${draco_src_root}/compression/attributes/prediction_schemes/mesh_prediction_scheme_multi_parallelogram_encoder.h" + "${draco_src_root}/compression/attributes/prediction_schemes/mesh_prediction_scheme_parallelogram_encoder.h" + "${draco_src_root}/compression/attributes/prediction_schemes/mesh_prediction_scheme_parallelogram_shared.h" + "${draco_src_root}/compression/attributes/prediction_schemes/mesh_prediction_scheme_tex_coords_encoder.h" + "${draco_src_root}/compression/attributes/prediction_schemes/mesh_prediction_scheme_tex_coords_portable_encoder.h" + "${draco_src_root}/compression/attributes/prediction_schemes/mesh_prediction_scheme_tex_coords_portable_predictor.h" + "${draco_src_root}/compression/attributes/prediction_schemes/prediction_scheme_delta_encoder.h" + "${draco_src_root}/compression/attributes/prediction_schemes/prediction_scheme_encoder.h" + "${draco_src_root}/compression/attributes/prediction_schemes/prediction_scheme_encoder_factory.cc" + "${draco_src_root}/compression/attributes/prediction_schemes/prediction_scheme_encoder_factory.h" + "${draco_src_root}/compression/attributes/prediction_schemes/prediction_scheme_encoder_interface.h" + "${draco_src_root}/compression/attributes/prediction_schemes/prediction_scheme_encoding_transform.h" + "${draco_src_root}/compression/attributes/prediction_schemes/prediction_scheme_factory.h" + "${draco_src_root}/compression/attributes/prediction_schemes/prediction_scheme_interface.h" + "${draco_src_root}/compression/attributes/prediction_schemes/prediction_scheme_normal_octahedron_canonicalized_encoding_transform.h" + "${draco_src_root}/compression/attributes/prediction_schemes/prediction_scheme_normal_octahedron_canonicalized_transform_base.h" + "${draco_src_root}/compression/attributes/prediction_schemes/prediction_scheme_normal_octahedron_encoding_transform.h" + "${draco_src_root}/compression/attributes/prediction_schemes/prediction_scheme_normal_octahedron_transform_base.h" + "${draco_src_root}/compression/attributes/prediction_schemes/prediction_scheme_wrap_encoding_transform.h" + "${draco_src_root}/compression/attributes/prediction_schemes/prediction_scheme_wrap_transform_base.h" +) list( APPEND - draco_compression_bit_coders_sources - "${draco_src_root}/compression/bit_coders/adaptive_rans_bit_coding_shared.h" - "${draco_src_root}/compression/bit_coders/adaptive_rans_bit_decoder.cc" - "${draco_src_root}/compression/bit_coders/adaptive_rans_bit_decoder.h" - "${draco_src_root}/compression/bit_coders/adaptive_rans_bit_encoder.cc" - "${draco_src_root}/compression/bit_coders/adaptive_rans_bit_encoder.h" - "${draco_src_root}/compression/bit_coders/direct_bit_decoder.cc" - "${draco_src_root}/compression/bit_coders/direct_bit_decoder.h" - "${draco_src_root}/compression/bit_coders/direct_bit_encoder.cc" - "${draco_src_root}/compression/bit_coders/direct_bit_encoder.h" - "${draco_src_root}/compression/bit_coders/folded_integer_bit_decoder.h" - "${draco_src_root}/compression/bit_coders/folded_integer_bit_encoder.h" - "${draco_src_root}/compression/bit_coders/rans_bit_decoder.cc" - "${draco_src_root}/compression/bit_coders/rans_bit_decoder.h" - "${draco_src_root}/compression/bit_coders/rans_bit_encoder.cc" - "${draco_src_root}/compression/bit_coders/rans_bit_encoder.h" - "${draco_src_root}/compression/bit_coders/symbol_bit_decoder.cc" - "${draco_src_root}/compression/bit_coders/symbol_bit_decoder.h" - "${draco_src_root}/compression/bit_coders/symbol_bit_encoder.cc" - "${draco_src_root}/compression/bit_coders/symbol_bit_encoder.h") + draco_compression_bit_coders_sources + "${draco_src_root}/compression/bit_coders/adaptive_rans_bit_coding_shared.h" + "${draco_src_root}/compression/bit_coders/adaptive_rans_bit_decoder.cc" + "${draco_src_root}/compression/bit_coders/adaptive_rans_bit_decoder.h" + "${draco_src_root}/compression/bit_coders/adaptive_rans_bit_encoder.cc" + "${draco_src_root}/compression/bit_coders/adaptive_rans_bit_encoder.h" + "${draco_src_root}/compression/bit_coders/direct_bit_decoder.cc" + "${draco_src_root}/compression/bit_coders/direct_bit_decoder.h" + "${draco_src_root}/compression/bit_coders/direct_bit_encoder.cc" + "${draco_src_root}/compression/bit_coders/direct_bit_encoder.h" + "${draco_src_root}/compression/bit_coders/folded_integer_bit_decoder.h" + "${draco_src_root}/compression/bit_coders/folded_integer_bit_encoder.h" + "${draco_src_root}/compression/bit_coders/rans_bit_decoder.cc" + "${draco_src_root}/compression/bit_coders/rans_bit_decoder.h" + "${draco_src_root}/compression/bit_coders/rans_bit_encoder.cc" + "${draco_src_root}/compression/bit_coders/rans_bit_encoder.h" + "${draco_src_root}/compression/bit_coders/symbol_bit_decoder.cc" + "${draco_src_root}/compression/bit_coders/symbol_bit_decoder.h" + "${draco_src_root}/compression/bit_coders/symbol_bit_encoder.cc" + "${draco_src_root}/compression/bit_coders/symbol_bit_encoder.h") -list(APPEND draco_enc_config_sources - "${draco_src_root}/compression/config/compression_shared.h" - "${draco_src_root}/compression/config/draco_options.h" - "${draco_src_root}/compression/config/encoder_options.h" - "${draco_src_root}/compression/config/encoding_features.h") +list( + APPEND + draco_enc_config_sources + "${draco_src_root}/compression/config/compression_shared.h" + "${draco_src_root}/compression/config/draco_options.h" + "${draco_src_root}/compression/config/encoder_options.h" + "${draco_src_root}/compression/config/encoding_features.h") -list(APPEND draco_dec_config_sources - "${draco_src_root}/compression/config/compression_shared.h" - "${draco_src_root}/compression/config/decoder_options.h" - "${draco_src_root}/compression/config/draco_options.h") +list( + APPEND + draco_dec_config_sources + "${draco_src_root}/compression/config/compression_shared.h" + "${draco_src_root}/compression/config/decoder_options.h" + "${draco_src_root}/compression/config/draco_options.h") + +list(APPEND draco_compression_options_sources + "${draco_src_root}/compression/draco_compression_options.cc" + "${draco_src_root}/compression/draco_compression_options.h") list(APPEND draco_compression_decode_sources - "${draco_src_root}/compression/decode.cc" - "${draco_src_root}/compression/decode.h" - "${draco_src_root}/compression/draco_compression_options.h") - -list(APPEND draco_compression_encode_sources - "${draco_src_root}/compression/draco_compression_options.h" - "${draco_src_root}/compression/encode.cc" - "${draco_src_root}/compression/encode.h" - "${draco_src_root}/compression/encode_base.h" - "${draco_src_root}/compression/expert_encode.cc" - "${draco_src_root}/compression/expert_encode.h") + "${draco_src_root}/compression/decode.cc" + "${draco_src_root}/compression/decode.h") list( APPEND - draco_compression_mesh_traverser_sources - "${draco_src_root}/compression/mesh/traverser/depth_first_traverser.h" - "${draco_src_root}/compression/mesh/traverser/max_prediction_degree_traverser.h" - "${draco_src_root}/compression/mesh/traverser/mesh_attribute_indices_encoding_observer.h" - "${draco_src_root}/compression/mesh/traverser/mesh_traversal_sequencer.h" - "${draco_src_root}/compression/mesh/traverser/traverser_base.h") + draco_compression_encode_sources + "${draco_src_root}/compression/encode.cc" + "${draco_src_root}/compression/encode.h" + "${draco_src_root}/compression/encode_base.h" + "${draco_src_root}/compression/expert_encode.cc" + "${draco_src_root}/compression/expert_encode.h") list( APPEND - draco_compression_mesh_dec_sources - "${draco_src_root}/compression/mesh/mesh_decoder.cc" - "${draco_src_root}/compression/mesh/mesh_decoder.h" - "${draco_src_root}/compression/mesh/mesh_edgebreaker_decoder.cc" - "${draco_src_root}/compression/mesh/mesh_edgebreaker_decoder.h" - "${draco_src_root}/compression/mesh/mesh_edgebreaker_decoder_impl.cc" - "${draco_src_root}/compression/mesh/mesh_edgebreaker_decoder_impl.h" - "${draco_src_root}/compression/mesh/mesh_edgebreaker_decoder_impl_interface.h" - "${draco_src_root}/compression/mesh/mesh_edgebreaker_shared.h" - "${draco_src_root}/compression/mesh/mesh_edgebreaker_traversal_decoder.h" - "${draco_src_root}/compression/mesh/mesh_edgebreaker_traversal_predictive_decoder.h" - "${draco_src_root}/compression/mesh/mesh_edgebreaker_traversal_valence_decoder.h" - "${draco_src_root}/compression/mesh/mesh_sequential_decoder.cc" - "${draco_src_root}/compression/mesh/mesh_sequential_decoder.h") + draco_compression_mesh_traverser_sources + "${draco_src_root}/compression/mesh/traverser/depth_first_traverser.h" + "${draco_src_root}/compression/mesh/traverser/max_prediction_degree_traverser.h" + "${draco_src_root}/compression/mesh/traverser/mesh_attribute_indices_encoding_observer.h" + "${draco_src_root}/compression/mesh/traverser/mesh_traversal_sequencer.h" + "${draco_src_root}/compression/mesh/traverser/traverser_base.h") list( APPEND - draco_compression_mesh_enc_sources - "${draco_src_root}/compression/mesh/mesh_edgebreaker_encoder.cc" - "${draco_src_root}/compression/mesh/mesh_edgebreaker_encoder.h" - "${draco_src_root}/compression/mesh/mesh_edgebreaker_encoder_impl.cc" - "${draco_src_root}/compression/mesh/mesh_edgebreaker_encoder_impl.h" - "${draco_src_root}/compression/mesh/mesh_edgebreaker_encoder_impl_interface.h" - "${draco_src_root}/compression/mesh/mesh_edgebreaker_shared.h" - "${draco_src_root}/compression/mesh/mesh_edgebreaker_traversal_encoder.h" - "${draco_src_root}/compression/mesh/mesh_edgebreaker_traversal_predictive_encoder.h" - "${draco_src_root}/compression/mesh/mesh_edgebreaker_traversal_valence_encoder.h" - "${draco_src_root}/compression/mesh/mesh_encoder.cc" - "${draco_src_root}/compression/mesh/mesh_encoder.h" - "${draco_src_root}/compression/mesh/mesh_sequential_encoder.cc" - "${draco_src_root}/compression/mesh/mesh_sequential_encoder.h") + draco_compression_mesh_dec_sources + "${draco_src_root}/compression/mesh/mesh_decoder.cc" + "${draco_src_root}/compression/mesh/mesh_decoder.h" + "${draco_src_root}/compression/mesh/mesh_edgebreaker_decoder.cc" + "${draco_src_root}/compression/mesh/mesh_edgebreaker_decoder.h" + "${draco_src_root}/compression/mesh/mesh_edgebreaker_decoder_impl.cc" + "${draco_src_root}/compression/mesh/mesh_edgebreaker_decoder_impl.h" + "${draco_src_root}/compression/mesh/mesh_edgebreaker_decoder_impl_interface.h" + "${draco_src_root}/compression/mesh/mesh_edgebreaker_shared.h" + "${draco_src_root}/compression/mesh/mesh_edgebreaker_traversal_decoder.h" + "${draco_src_root}/compression/mesh/mesh_edgebreaker_traversal_predictive_decoder.h" + "${draco_src_root}/compression/mesh/mesh_edgebreaker_traversal_valence_decoder.h" + "${draco_src_root}/compression/mesh/mesh_sequential_decoder.cc" + "${draco_src_root}/compression/mesh/mesh_sequential_decoder.h") list( APPEND - draco_compression_point_cloud_dec_sources - "${draco_src_root}/compression/point_cloud/point_cloud_decoder.cc" - "${draco_src_root}/compression/point_cloud/point_cloud_decoder.h" - "${draco_src_root}/compression/point_cloud/point_cloud_kd_tree_decoder.cc" - "${draco_src_root}/compression/point_cloud/point_cloud_kd_tree_decoder.h" - "${draco_src_root}/compression/point_cloud/point_cloud_sequential_decoder.cc" - "${draco_src_root}/compression/point_cloud/point_cloud_sequential_decoder.h" - ) + draco_compression_mesh_enc_sources + "${draco_src_root}/compression/mesh/mesh_edgebreaker_encoder.cc" + "${draco_src_root}/compression/mesh/mesh_edgebreaker_encoder.h" + "${draco_src_root}/compression/mesh/mesh_edgebreaker_encoder_impl.cc" + "${draco_src_root}/compression/mesh/mesh_edgebreaker_encoder_impl.h" + "${draco_src_root}/compression/mesh/mesh_edgebreaker_encoder_impl_interface.h" + "${draco_src_root}/compression/mesh/mesh_edgebreaker_shared.h" + "${draco_src_root}/compression/mesh/mesh_edgebreaker_traversal_encoder.h" + "${draco_src_root}/compression/mesh/mesh_edgebreaker_traversal_predictive_encoder.h" + "${draco_src_root}/compression/mesh/mesh_edgebreaker_traversal_valence_encoder.h" + "${draco_src_root}/compression/mesh/mesh_encoder.cc" + "${draco_src_root}/compression/mesh/mesh_encoder.h" + "${draco_src_root}/compression/mesh/mesh_sequential_encoder.cc" + "${draco_src_root}/compression/mesh/mesh_sequential_encoder.h") list( APPEND - draco_compression_point_cloud_enc_sources - "${draco_src_root}/compression/point_cloud/point_cloud_encoder.cc" - "${draco_src_root}/compression/point_cloud/point_cloud_encoder.h" - "${draco_src_root}/compression/point_cloud/point_cloud_kd_tree_encoder.cc" - "${draco_src_root}/compression/point_cloud/point_cloud_kd_tree_encoder.h" - "${draco_src_root}/compression/point_cloud/point_cloud_sequential_encoder.cc" - "${draco_src_root}/compression/point_cloud/point_cloud_sequential_encoder.h" - ) - -list(APPEND draco_compression_entropy_sources - "${draco_src_root}/compression/entropy/ans.h" - "${draco_src_root}/compression/entropy/rans_symbol_coding.h" - "${draco_src_root}/compression/entropy/rans_symbol_decoder.h" - "${draco_src_root}/compression/entropy/rans_symbol_encoder.h" - "${draco_src_root}/compression/entropy/shannon_entropy.cc" - "${draco_src_root}/compression/entropy/shannon_entropy.h" - "${draco_src_root}/compression/entropy/symbol_decoding.cc" - "${draco_src_root}/compression/entropy/symbol_decoding.h" - "${draco_src_root}/compression/entropy/symbol_encoding.cc" - "${draco_src_root}/compression/entropy/symbol_encoding.h") - -list(APPEND draco_core_sources - "${draco_src_root}/core/bit_utils.cc" - "${draco_src_root}/core/bit_utils.h" - "${draco_src_root}/core/bounding_box.cc" - "${draco_src_root}/core/bounding_box.h" - "${draco_src_root}/core/constants.h" - "${draco_src_root}/core/cycle_timer.cc" - "${draco_src_root}/core/cycle_timer.h" - "${draco_src_root}/core/data_buffer.cc" - "${draco_src_root}/core/data_buffer.h" - "${draco_src_root}/core/decoder_buffer.cc" - "${draco_src_root}/core/decoder_buffer.h" - "${draco_src_root}/core/divide.cc" - "${draco_src_root}/core/divide.h" - "${draco_src_root}/core/draco_index_type.h" - "${draco_src_root}/core/draco_index_type_vector.h" - "${draco_src_root}/core/draco_types.cc" - "${draco_src_root}/core/draco_types.h" - "${draco_src_root}/core/draco_version.h" - "${draco_src_root}/core/encoder_buffer.cc" - "${draco_src_root}/core/encoder_buffer.h" - "${draco_src_root}/core/hash_utils.cc" - "${draco_src_root}/core/hash_utils.h" - "${draco_src_root}/core/macros.h" - "${draco_src_root}/core/math_utils.h" - "${draco_src_root}/core/options.cc" - "${draco_src_root}/core/options.h" - "${draco_src_root}/core/quantization_utils.cc" - "${draco_src_root}/core/quantization_utils.h" - "${draco_src_root}/core/status.h" - "${draco_src_root}/core/status_or.h" - "${draco_src_root}/core/varint_decoding.h" - "${draco_src_root}/core/varint_encoding.h" - "${draco_src_root}/core/vector_d.h") - -list(APPEND draco_io_sources - "${draco_src_root}/io/file_reader_factory.cc" - "${draco_src_root}/io/file_reader_factory.h" - "${draco_src_root}/io/file_reader_interface.h" - "${draco_src_root}/io/file_utils.cc" - "${draco_src_root}/io/file_utils.h" - "${draco_src_root}/io/file_writer_factory.cc" - "${draco_src_root}/io/file_writer_factory.h" - "${draco_src_root}/io/file_writer_interface.h" - "${draco_src_root}/io/file_writer_utils.h" - "${draco_src_root}/io/file_writer_utils.cc" - "${draco_src_root}/io/mesh_io.cc" - "${draco_src_root}/io/mesh_io.h" - "${draco_src_root}/io/obj_decoder.cc" - "${draco_src_root}/io/obj_decoder.h" - "${draco_src_root}/io/obj_encoder.cc" - "${draco_src_root}/io/obj_encoder.h" - "${draco_src_root}/io/parser_utils.cc" - "${draco_src_root}/io/parser_utils.h" - "${draco_src_root}/io/ply_decoder.cc" - "${draco_src_root}/io/ply_decoder.h" - "${draco_src_root}/io/ply_encoder.cc" - "${draco_src_root}/io/ply_encoder.h" - "${draco_src_root}/io/ply_property_reader.h" - "${draco_src_root}/io/ply_property_writer.h" - "${draco_src_root}/io/ply_reader.cc" - "${draco_src_root}/io/ply_reader.h" - "${draco_src_root}/io/stl_decoder.cc" - "${draco_src_root}/io/stl_decoder.h" - "${draco_src_root}/io/stl_encoder.cc" - "${draco_src_root}/io/stl_encoder.h" - "${draco_src_root}/io/point_cloud_io.cc" - "${draco_src_root}/io/point_cloud_io.h" - "${draco_src_root}/io/stdio_file_reader.cc" - "${draco_src_root}/io/stdio_file_reader.h" - "${draco_src_root}/io/stdio_file_writer.cc" - "${draco_src_root}/io/stdio_file_writer.h") - -list(APPEND draco_mesh_sources - "${draco_src_root}/mesh/corner_table.cc" - "${draco_src_root}/mesh/corner_table.h" - "${draco_src_root}/mesh/corner_table_iterators.h" - "${draco_src_root}/mesh/mesh.cc" - "${draco_src_root}/mesh/mesh.h" - "${draco_src_root}/mesh/mesh_are_equivalent.cc" - "${draco_src_root}/mesh/mesh_are_equivalent.h" - "${draco_src_root}/mesh/mesh_attribute_corner_table.cc" - "${draco_src_root}/mesh/mesh_attribute_corner_table.h" - "${draco_src_root}/mesh/mesh_cleanup.cc" - "${draco_src_root}/mesh/mesh_cleanup.h" - "${draco_src_root}/mesh/mesh_misc_functions.cc" - "${draco_src_root}/mesh/mesh_misc_functions.h" - "${draco_src_root}/mesh/mesh_stripifier.cc" - "${draco_src_root}/mesh/mesh_stripifier.h" - "${draco_src_root}/mesh/triangle_soup_mesh_builder.cc" - "${draco_src_root}/mesh/triangle_soup_mesh_builder.h" - "${draco_src_root}/mesh/valence_cache.h") - -list(APPEND draco_point_cloud_sources - "${draco_src_root}/point_cloud/point_cloud.cc" - "${draco_src_root}/point_cloud/point_cloud.h" - "${draco_src_root}/point_cloud/point_cloud_builder.cc" - "${draco_src_root}/point_cloud/point_cloud_builder.h") + draco_compression_point_cloud_dec_sources + "${draco_src_root}/compression/point_cloud/point_cloud_decoder.cc" + "${draco_src_root}/compression/point_cloud/point_cloud_decoder.h" + "${draco_src_root}/compression/point_cloud/point_cloud_kd_tree_decoder.cc" + "${draco_src_root}/compression/point_cloud/point_cloud_kd_tree_decoder.h" + "${draco_src_root}/compression/point_cloud/point_cloud_sequential_decoder.cc" + "${draco_src_root}/compression/point_cloud/point_cloud_sequential_decoder.h") list( APPEND - draco_points_common_sources - "${draco_src_root}/compression/point_cloud/algorithms/point_cloud_compression_method.h" - "${draco_src_root}/compression/point_cloud/algorithms/point_cloud_types.h" - "${draco_src_root}/compression/point_cloud/algorithms/quantize_points_3.h" - "${draco_src_root}/compression/point_cloud/algorithms/queuing_policy.h") + draco_compression_point_cloud_enc_sources + "${draco_src_root}/compression/point_cloud/point_cloud_encoder.cc" + "${draco_src_root}/compression/point_cloud/point_cloud_encoder.h" + "${draco_src_root}/compression/point_cloud/point_cloud_kd_tree_encoder.cc" + "${draco_src_root}/compression/point_cloud/point_cloud_kd_tree_encoder.h" + "${draco_src_root}/compression/point_cloud/point_cloud_sequential_encoder.cc" + "${draco_src_root}/compression/point_cloud/point_cloud_sequential_encoder.h") list( APPEND - draco_points_dec_sources - "${draco_src_root}/compression/point_cloud/algorithms/dynamic_integer_points_kd_tree_decoder.cc" - "${draco_src_root}/compression/point_cloud/algorithms/dynamic_integer_points_kd_tree_decoder.h" - "${draco_src_root}/compression/point_cloud/algorithms/float_points_tree_decoder.cc" - "${draco_src_root}/compression/point_cloud/algorithms/float_points_tree_decoder.h" - ) + draco_compression_entropy_sources + "${draco_src_root}/compression/entropy/ans.h" + "${draco_src_root}/compression/entropy/rans_symbol_coding.h" + "${draco_src_root}/compression/entropy/rans_symbol_decoder.h" + "${draco_src_root}/compression/entropy/rans_symbol_encoder.h" + "${draco_src_root}/compression/entropy/shannon_entropy.cc" + "${draco_src_root}/compression/entropy/shannon_entropy.h" + "${draco_src_root}/compression/entropy/symbol_decoding.cc" + "${draco_src_root}/compression/entropy/symbol_decoding.h" + "${draco_src_root}/compression/entropy/symbol_encoding.cc" + "${draco_src_root}/compression/entropy/symbol_encoding.h") list( APPEND - draco_points_enc_sources - "${draco_src_root}/compression/point_cloud/algorithms/dynamic_integer_points_kd_tree_encoder.cc" - "${draco_src_root}/compression/point_cloud/algorithms/dynamic_integer_points_kd_tree_encoder.h" - "${draco_src_root}/compression/point_cloud/algorithms/float_points_tree_encoder.cc" - "${draco_src_root}/compression/point_cloud/algorithms/float_points_tree_encoder.h" - ) + draco_core_sources + "${draco_src_root}/core/bit_utils.cc" + "${draco_src_root}/core/bit_utils.h" + "${draco_src_root}/core/bounding_box.cc" + "${draco_src_root}/core/bounding_box.h" + "${draco_src_root}/core/constants.h" + "${draco_src_root}/core/cycle_timer.cc" + "${draco_src_root}/core/cycle_timer.h" + "${draco_src_root}/core/data_buffer.cc" + "${draco_src_root}/core/data_buffer.h" + "${draco_src_root}/core/decoder_buffer.cc" + "${draco_src_root}/core/decoder_buffer.h" + "${draco_src_root}/core/divide.cc" + "${draco_src_root}/core/divide.h" + "${draco_src_root}/core/draco_index_type.h" + "${draco_src_root}/core/draco_index_type_vector.h" + "${draco_src_root}/core/draco_types.cc" + "${draco_src_root}/core/draco_types.h" + "${draco_src_root}/core/draco_version.h" + "${draco_src_root}/core/encoder_buffer.cc" + "${draco_src_root}/core/encoder_buffer.h" + "${draco_src_root}/core/hash_utils.cc" + "${draco_src_root}/core/hash_utils.h" + "${draco_src_root}/core/macros.h" + "${draco_src_root}/core/math_utils.h" + "${draco_src_root}/core/options.cc" + "${draco_src_root}/core/options.h" + "${draco_src_root}/core/quantization_utils.cc" + "${draco_src_root}/core/quantization_utils.h" + "${draco_src_root}/core/status.h" + "${draco_src_root}/core/status_or.h" + "${draco_src_root}/core/varint_decoding.h" + "${draco_src_root}/core/varint_encoding.h" + "${draco_src_root}/core/vector_d.h") -list(APPEND draco_metadata_sources - "${draco_src_root}/metadata/geometry_metadata.cc" - "${draco_src_root}/metadata/geometry_metadata.h" - "${draco_src_root}/metadata/metadata.cc" - "${draco_src_root}/metadata/metadata.h") +list( + APPEND + draco_io_sources + "${draco_src_root}/io/file_reader_factory.cc" + "${draco_src_root}/io/file_reader_factory.h" + "${draco_src_root}/io/file_reader_interface.h" + "${draco_src_root}/io/file_utils.cc" + "${draco_src_root}/io/file_utils.h" + "${draco_src_root}/io/file_writer_factory.cc" + "${draco_src_root}/io/file_writer_factory.h" + "${draco_src_root}/io/file_writer_interface.h" + "${draco_src_root}/io/file_writer_utils.h" + "${draco_src_root}/io/file_writer_utils.cc" + "${draco_src_root}/io/mesh_io.cc" + "${draco_src_root}/io/mesh_io.h" + "${draco_src_root}/io/obj_decoder.cc" + "${draco_src_root}/io/obj_decoder.h" + "${draco_src_root}/io/obj_encoder.cc" + "${draco_src_root}/io/obj_encoder.h" + "${draco_src_root}/io/parser_utils.cc" + "${draco_src_root}/io/parser_utils.h" + "${draco_src_root}/io/ply_decoder.cc" + "${draco_src_root}/io/ply_decoder.h" + "${draco_src_root}/io/ply_encoder.cc" + "${draco_src_root}/io/ply_encoder.h" + "${draco_src_root}/io/ply_property_reader.h" + "${draco_src_root}/io/ply_property_writer.h" + "${draco_src_root}/io/ply_reader.cc" + "${draco_src_root}/io/ply_reader.h" + "${draco_src_root}/io/stl_decoder.cc" + "${draco_src_root}/io/stl_decoder.h" + "${draco_src_root}/io/stl_encoder.cc" + "${draco_src_root}/io/stl_encoder.h" + "${draco_src_root}/io/point_cloud_io.cc" + "${draco_src_root}/io/point_cloud_io.h" + "${draco_src_root}/io/stdio_file_reader.cc" + "${draco_src_root}/io/stdio_file_reader.h" + "${draco_src_root}/io/stdio_file_writer.cc" + "${draco_src_root}/io/stdio_file_writer.h") + +list( + APPEND + draco_mesh_sources + "${draco_src_root}/mesh/corner_table.cc" + "${draco_src_root}/mesh/corner_table.h" + "${draco_src_root}/mesh/corner_table_iterators.h" + "${draco_src_root}/mesh/mesh.cc" + "${draco_src_root}/mesh/mesh.h" + "${draco_src_root}/mesh/mesh_are_equivalent.cc" + "${draco_src_root}/mesh/mesh_are_equivalent.h" + "${draco_src_root}/mesh/mesh_attribute_corner_table.cc" + "${draco_src_root}/mesh/mesh_attribute_corner_table.h" + "${draco_src_root}/mesh/mesh_cleanup.cc" + "${draco_src_root}/mesh/mesh_cleanup.h" + "${draco_src_root}/mesh/mesh_features.cc" + "${draco_src_root}/mesh/mesh_features.h" + "${draco_src_root}/mesh/mesh_indices.h" + "${draco_src_root}/mesh/mesh_misc_functions.cc" + "${draco_src_root}/mesh/mesh_misc_functions.h" + "${draco_src_root}/mesh/mesh_stripifier.cc" + "${draco_src_root}/mesh/mesh_stripifier.h" + "${draco_src_root}/mesh/triangle_soup_mesh_builder.cc" + "${draco_src_root}/mesh/triangle_soup_mesh_builder.h" + "${draco_src_root}/mesh/valence_cache.h") + +list( + APPEND + draco_point_cloud_sources + "${draco_src_root}/point_cloud/point_cloud.cc" + "${draco_src_root}/point_cloud/point_cloud.h" + "${draco_src_root}/point_cloud/point_cloud_builder.cc" + "${draco_src_root}/point_cloud/point_cloud_builder.h") + +list( + APPEND + draco_points_common_sources + "${draco_src_root}/compression/point_cloud/algorithms/point_cloud_compression_method.h" + "${draco_src_root}/compression/point_cloud/algorithms/point_cloud_types.h" + "${draco_src_root}/compression/point_cloud/algorithms/quantize_points_3.h" + "${draco_src_root}/compression/point_cloud/algorithms/queuing_policy.h") + +list( + APPEND + draco_points_dec_sources + "${draco_src_root}/compression/point_cloud/algorithms/dynamic_integer_points_kd_tree_decoder.cc" + "${draco_src_root}/compression/point_cloud/algorithms/dynamic_integer_points_kd_tree_decoder.h" + "${draco_src_root}/compression/point_cloud/algorithms/float_points_tree_decoder.cc" + "${draco_src_root}/compression/point_cloud/algorithms/float_points_tree_decoder.h" +) + +list( + APPEND + draco_points_enc_sources + "${draco_src_root}/compression/point_cloud/algorithms/dynamic_integer_points_kd_tree_encoder.cc" + "${draco_src_root}/compression/point_cloud/algorithms/dynamic_integer_points_kd_tree_encoder.h" + "${draco_src_root}/compression/point_cloud/algorithms/float_points_tree_encoder.cc" + "${draco_src_root}/compression/point_cloud/algorithms/float_points_tree_encoder.h" +) + +list( + APPEND + draco_metadata_sources + "${draco_src_root}/metadata/geometry_metadata.cc" + "${draco_src_root}/metadata/geometry_metadata.h" + "${draco_src_root}/metadata/metadata.cc" + "${draco_src_root}/metadata/metadata.h" + "${draco_src_root}/metadata/property_table.cc" + "${draco_src_root}/metadata/property_table.h" + "${draco_src_root}/metadata/structural_metadata.cc" + "${draco_src_root}/metadata/structural_metadata.h") list(APPEND draco_metadata_enc_sources - "${draco_src_root}/metadata/metadata_encoder.cc" - "${draco_src_root}/metadata/metadata_encoder.h") + "${draco_src_root}/metadata/metadata_encoder.cc" + "${draco_src_root}/metadata/metadata_encoder.h") list(APPEND draco_metadata_dec_sources - "${draco_src_root}/metadata/metadata_decoder.cc" - "${draco_src_root}/metadata/metadata_decoder.h") + "${draco_src_root}/metadata/metadata_decoder.cc" + "${draco_src_root}/metadata/metadata_decoder.h") list(APPEND draco_animation_sources - "${draco_src_root}/animation/keyframe_animation.cc" - "${draco_src_root}/animation/keyframe_animation.h") + "${draco_src_root}/animation/keyframe_animation.cc" + "${draco_src_root}/animation/keyframe_animation.h") list(APPEND draco_animation_enc_sources - "${draco_src_root}/animation/keyframe_animation_encoder.cc" - "${draco_src_root}/animation/keyframe_animation_encoder.h") + "${draco_src_root}/animation/keyframe_animation_encoder.cc" + "${draco_src_root}/animation/keyframe_animation_encoder.h") list(APPEND draco_animation_dec_sources - "${draco_src_root}/animation/keyframe_animation_decoder.cc" - "${draco_src_root}/animation/keyframe_animation_decoder.h") + "${draco_src_root}/animation/keyframe_animation_decoder.cc" + "${draco_src_root}/animation/keyframe_animation_decoder.h") -list( - APPEND draco_js_dec_sources - "${draco_src_root}/javascript/emscripten/decoder_webidl_wrapper.cc" - "${draco_src_root}/javascript/emscripten/draco_decoder_glue_wrapper.cc" - ) +list(APPEND draco_js_dec_sources + "${draco_src_root}/javascript/emscripten/decoder_webidl_wrapper.cc" + "${draco_src_root}/javascript/emscripten/draco_decoder_glue_wrapper.cc") -list( - APPEND draco_js_enc_sources - "${draco_src_root}/javascript/emscripten/draco_encoder_glue_wrapper.cc" - "${draco_src_root}/javascript/emscripten/encoder_webidl_wrapper.cc") +list(APPEND draco_js_enc_sources + "${draco_src_root}/javascript/emscripten/draco_encoder_glue_wrapper.cc" + "${draco_src_root}/javascript/emscripten/encoder_webidl_wrapper.cc") list( APPEND - draco_animation_js_dec_sources - "${draco_src_root}/javascript/emscripten/animation_decoder_webidl_wrapper.cc" - "${draco_src_root}/javascript/emscripten/draco_animation_decoder_glue_wrapper.cc" - ) + draco_animation_js_dec_sources + "${draco_src_root}/javascript/emscripten/animation_decoder_webidl_wrapper.cc" + "${draco_src_root}/javascript/emscripten/draco_animation_decoder_glue_wrapper.cc" +) list( APPEND - draco_animation_js_enc_sources - "${draco_src_root}/javascript/emscripten/animation_encoder_webidl_wrapper.cc" - "${draco_src_root}/javascript/emscripten/draco_animation_encoder_glue_wrapper.cc" - ) + draco_animation_js_enc_sources + "${draco_src_root}/javascript/emscripten/animation_encoder_webidl_wrapper.cc" + "${draco_src_root}/javascript/emscripten/draco_animation_encoder_glue_wrapper.cc" +) list(APPEND draco_unity_plug_sources - "${draco_src_root}/unity/draco_unity_plugin.cc" - "${draco_src_root}/unity/draco_unity_plugin.h") + "${draco_src_root}/unity/draco_unity_plugin.cc" + "${draco_src_root}/unity/draco_unity_plugin.h") list(APPEND draco_maya_plug_sources - "${draco_src_root}/maya/draco_maya_plugin.cc" - "${draco_src_root}/maya/draco_maya_plugin.h") + "${draco_src_root}/maya/draco_maya_plugin.cc" + "${draco_src_root}/maya/draco_maya_plugin.h") if(DRACO_TRANSCODER_SUPPORTED) - list(APPEND draco_animation_sources + list( + APPEND + draco_animation_sources "${draco_src_root}/animation/animation.cc" "${draco_src_root}/animation/animation.h" "${draco_src_root}/animation/node_animation_data.h" "${draco_src_root}/animation/skin.cc" "${draco_src_root}/animation/skin.h") - list(APPEND draco_io_sources + list( + APPEND + draco_io_sources "${draco_src_root}/io/gltf_decoder.cc" "${draco_src_root}/io/gltf_decoder.h" "${draco_src_root}/io/gltf_encoder.cc" @@ -538,13 +568,17 @@ if(DRACO_TRANSCODER_SUPPORTED) "${draco_src_root}/io/tiny_gltf_utils.cc" "${draco_src_root}/io/tiny_gltf_utils.h") - list(APPEND draco_material_sources + list( + APPEND + draco_material_sources "${draco_src_root}/material/material.cc" "${draco_src_root}/material/material.h" "${draco_src_root}/material/material_library.cc" "${draco_src_root}/material/material_library.h") - list(APPEND draco_mesh_sources + list( + APPEND + draco_mesh_sources "${draco_src_root}/mesh/mesh_connected_components.cc" "${draco_src_root}/mesh/mesh_connected_components.h" "${draco_src_root}/mesh/mesh_splitter.cc" @@ -552,7 +586,9 @@ if(DRACO_TRANSCODER_SUPPORTED) "${draco_src_root}/mesh/mesh_utils.cc" "${draco_src_root}/mesh/mesh_utils.h") - list(APPEND draco_scene_sources + list( + APPEND + draco_scene_sources "${draco_src_root}/scene/instance_array.cc" "${draco_src_root}/scene/instance_array.h" "${draco_src_root}/scene/light.cc" @@ -560,6 +596,8 @@ if(DRACO_TRANSCODER_SUPPORTED) "${draco_src_root}/scene/mesh_group.h" "${draco_src_root}/scene/scene.cc" "${draco_src_root}/scene/scene.h" + "${draco_src_root}/scene/scene_are_equivalent.cc" + "${draco_src_root}/scene/scene_are_equivalent.h" "${draco_src_root}/scene/scene_indices.h" "${draco_src_root}/scene/scene_node.h" "${draco_src_root}/scene/scene_utils.cc" @@ -567,7 +605,9 @@ if(DRACO_TRANSCODER_SUPPORTED) "${draco_src_root}/scene/trs_matrix.cc" "${draco_src_root}/scene/trs_matrix.h") - list(APPEND draco_texture_sources + list( + APPEND + draco_texture_sources "${draco_src_root}/texture/source_image.cc" "${draco_src_root}/texture/source_image.h" "${draco_src_root}/texture/texture.h" @@ -592,117 +632,104 @@ if(EMSCRIPTEN AND DRACO_JS_GLUE) message(FATAL_ERROR "The transcoder is not supported in Emscripten.") endif() - list(APPEND draco_decoder_src - ${draco_attributes_sources} - ${draco_compression_attributes_dec_sources} - ${draco_compression_attributes_pred_schemes_dec_sources} - ${draco_compression_bit_coders_sources} - ${draco_compression_decode_sources} - ${draco_compression_entropy_sources} - ${draco_compression_mesh_traverser_sources} - ${draco_compression_mesh_dec_sources} - ${draco_compression_point_cloud_dec_sources} - ${draco_core_sources} - ${draco_dec_config_sources} - ${draco_js_dec_sources} - ${draco_mesh_sources} - ${draco_metadata_dec_sources} - ${draco_metadata_sources} - ${draco_point_cloud_sources} - ${draco_points_dec_sources}) + list( + APPEND + draco_decoder_src + ${draco_attributes_sources} + ${draco_compression_attributes_dec_sources} + ${draco_compression_attributes_pred_schemes_dec_sources} + ${draco_compression_bit_coders_sources} + ${draco_compression_decode_sources} + ${draco_compression_entropy_sources} + ${draco_compression_mesh_traverser_sources} + ${draco_compression_mesh_dec_sources} + ${draco_compression_options_sources} + ${draco_compression_point_cloud_dec_sources} + ${draco_core_sources} + ${draco_dec_config_sources} + ${draco_js_dec_sources} + ${draco_mesh_sources} + ${draco_metadata_dec_sources} + ${draco_metadata_sources} + ${draco_point_cloud_sources} + ${draco_points_dec_sources}) - list(APPEND draco_encoder_src - ${draco_attributes_sources} - ${draco_compression_attributes_enc_sources} - ${draco_compression_attributes_pred_schemes_enc_sources} - ${draco_compression_bit_coders_sources} - ${draco_compression_encode_sources} - ${draco_compression_entropy_sources} - ${draco_compression_mesh_traverser_sources} - ${draco_compression_mesh_enc_sources} - ${draco_compression_point_cloud_enc_sources} - ${draco_core_sources} - ${draco_enc_config_sources} - ${draco_js_enc_sources} - ${draco_mesh_sources} - ${draco_metadata_enc_sources} - ${draco_metadata_sources} - ${draco_point_cloud_sources} - ${draco_points_enc_sources}) + list( + APPEND + draco_encoder_src + ${draco_attributes_sources} + ${draco_compression_attributes_enc_sources} + ${draco_compression_attributes_pred_schemes_enc_sources} + ${draco_compression_bit_coders_sources} + ${draco_compression_encode_sources} + ${draco_compression_entropy_sources} + ${draco_compression_mesh_traverser_sources} + ${draco_compression_mesh_enc_sources} + ${draco_compression_options_sources} + ${draco_compression_point_cloud_enc_sources} + ${draco_core_sources} + ${draco_enc_config_sources} + ${draco_js_enc_sources} + ${draco_mesh_sources} + ${draco_metadata_enc_sources} + ${draco_metadata_sources} + ${draco_point_cloud_sources} + ${draco_points_enc_sources}) list(APPEND draco_js_dec_idl - "${draco_src_root}/javascript/emscripten/draco_web_decoder.idl") + "${draco_src_root}/javascript/emscripten/draco_web_decoder.idl") list(APPEND draco_js_enc_idl - "${draco_src_root}/javascript/emscripten/draco_web_encoder.idl") + "${draco_src_root}/javascript/emscripten/draco_web_encoder.idl") list( - APPEND - draco_animation_js_dec_idl - "${draco_src_root}/javascript/emscripten/draco_animation_web_decoder.idl") + APPEND draco_animation_js_dec_idl + "${draco_src_root}/javascript/emscripten/draco_animation_web_decoder.idl") list( - APPEND - draco_animation_js_enc_idl - "${draco_src_root}/javascript/emscripten/draco_animation_web_encoder.idl") + APPEND draco_animation_js_enc_idl + "${draco_src_root}/javascript/emscripten/draco_animation_web_encoder.idl") list(APPEND draco_pre_link_js_sources - "${draco_src_root}/javascript/emscripten/prepareCallbacks.js" - "${draco_src_root}/javascript/emscripten/version.js") + "${draco_src_root}/javascript/emscripten/prepareCallbacks.js" + "${draco_src_root}/javascript/emscripten/version.js") list(APPEND draco_post_link_js_sources - "${draco_src_root}/javascript/emscripten/finalize.js") + "${draco_src_root}/javascript/emscripten/finalize.js") list(APPEND draco_post_link_js_decoder_sources ${draco_post_link_js_sources} - "${draco_src_root}/javascript/emscripten/decoder_functions.js") + "${draco_src_root}/javascript/emscripten/decoder_functions.js") set(draco_decoder_glue_path "${draco_build}/glue_decoder") set(draco_encoder_glue_path "${draco_build}/glue_encoder") - draco_generate_emscripten_glue(INPUT_IDL ${draco_js_dec_idl} OUTPUT_PATH - ${draco_decoder_glue_path}) - draco_generate_emscripten_glue(INPUT_IDL ${draco_js_enc_idl} OUTPUT_PATH - ${draco_encoder_glue_path}) + draco_generate_emscripten_glue(INPUT_IDL ${draco_js_dec_idl} + OUTPUT_PATH ${draco_decoder_glue_path}) + draco_generate_emscripten_glue(INPUT_IDL ${draco_js_enc_idl} + OUTPUT_PATH ${draco_encoder_glue_path}) if(DRACO_DECODER_ATTRIBUTE_DEDUPLICATION) list(APPEND draco_decoder_features - "DRACO_ATTRIBUTE_INDICES_DEDUPLICATION_SUPPORTED" - "DRACO_ATTRIBUTE_VALUES_DEDUPLICATION_SUPPORTED") + "DRACO_ATTRIBUTE_INDICES_DEDUPLICATION_SUPPORTED" + "DRACO_ATTRIBUTE_VALUES_DEDUPLICATION_SUPPORTED") endif() - draco_add_emscripten_executable(NAME - draco_decoder - SOURCES - ${draco_decoder_src} - DEFINES - ${draco_defines} - FEATURES - ${draco_decoder_features} - INCLUDES - ${draco_include_paths} - LINK_FLAGS - "-sEXPORT_NAME=\"DracoDecoderModule\"" - GLUE_PATH - ${draco_decoder_glue_path} - PRE_LINK_JS_SOURCES - ${draco_pre_link_js_sources} - POST_LINK_JS_SOURCES - ${draco_post_link_js_decoder_sources}) + draco_add_emscripten_executable( + NAME draco_decoder + SOURCES ${draco_decoder_src} + DEFINES ${draco_defines} + FEATURES ${draco_decoder_features} + INCLUDES ${draco_include_paths} + LINK_FLAGS "-sEXPORT_NAME=\"DracoDecoderModule\"" + GLUE_PATH ${draco_decoder_glue_path} + PRE_LINK_JS_SOURCES ${draco_pre_link_js_sources} + POST_LINK_JS_SOURCES ${draco_post_link_js_decoder_sources}) draco_add_emscripten_executable( - NAME - draco_encoder - SOURCES - ${draco_encoder_src} - DEFINES - ${draco_defines} - FEATURES - DRACO_ATTRIBUTE_INDICES_DEDUPLICATION_SUPPORTED - DRACO_ATTRIBUTE_VALUES_DEDUPLICATION_SUPPORTED - INCLUDES - ${draco_include_paths} - LINK_FLAGS - "-sEXPORT_NAME=\"DracoEncoderModule\"" - GLUE_PATH - ${draco_encoder_glue_path} - PRE_LINK_JS_SOURCES - ${draco_pre_link_js_sources} - POST_LINK_JS_SOURCES - ${draco_post_link_js_sources}) + NAME draco_encoder + SOURCES ${draco_encoder_src} + DEFINES ${draco_defines} + FEATURES DRACO_ATTRIBUTE_INDICES_DEDUPLICATION_SUPPORTED + DRACO_ATTRIBUTE_VALUES_DEDUPLICATION_SUPPORTED + INCLUDES ${draco_include_paths} + LINK_FLAGS "-sEXPORT_NAME=\"DracoEncoderModule\"" + GLUE_PATH ${draco_encoder_glue_path} + PRE_LINK_JS_SOURCES ${draco_pre_link_js_sources} + POST_LINK_JS_SOURCES ${draco_post_link_js_sources}) if(DRACO_ANIMATION_ENCODING) set(draco_anim_decoder_glue_path "${draco_build}/glue_animation_decoder") @@ -714,235 +741,268 @@ if(EMSCRIPTEN AND DRACO_JS_GLUE) OUTPUT_PATH ${draco_anim_encoder_glue_path}) draco_add_emscripten_executable( - NAME - draco_animation_decoder - SOURCES - ${draco_animation_dec_sources} - ${draco_animation_js_dec_sources} - ${draco_animation_sources} - ${draco_decoder_src} - DEFINES - ${draco_defines} - INCLUDES - ${draco_include_paths} - LINK_FLAGS - "-sEXPORT_NAME=\"DracoAnimationDecoderModule\"" - GLUE_PATH - ${draco_anim_decoder_glue_path} - PRE_LINK_JS_SOURCES - ${draco_pre_link_js_sources} - POST_LINK_JS_SOURCES - ${draco_post_link_js_decoder_sources}) + NAME draco_animation_decoder + SOURCES ${draco_animation_dec_sources} ${draco_animation_js_dec_sources} + ${draco_animation_sources} ${draco_decoder_src} + DEFINES ${draco_defines} + INCLUDES ${draco_include_paths} + LINK_FLAGS "-sEXPORT_NAME=\"DracoAnimationDecoderModule\"" + GLUE_PATH ${draco_anim_decoder_glue_path} + PRE_LINK_JS_SOURCES ${draco_pre_link_js_sources} + POST_LINK_JS_SOURCES ${draco_post_link_js_decoder_sources}) draco_add_emscripten_executable( - NAME - draco_animation_encoder - SOURCES - ${draco_animation_enc_sources} - ${draco_animation_js_enc_sources} - ${draco_animation_sources} - ${draco_encoder_src} - DEFINES - ${draco_defines} - INCLUDES - ${draco_include_paths} - LINK_FLAGS - "-sEXPORT_NAME=\"DracoAnimationEncoderModule\"" - GLUE_PATH - ${draco_anim_encoder_glue_path} - PRE_LINK_JS_SOURCES - ${draco_pre_link_js_sources} - POST_LINK_JS_SOURCES - ${draco_post_link_js_sources}) + NAME draco_animation_encoder + SOURCES ${draco_animation_enc_sources} ${draco_animation_js_enc_sources} + ${draco_animation_sources} ${draco_encoder_src} + DEFINES ${draco_defines} + INCLUDES ${draco_include_paths} + LINK_FLAGS "-sEXPORT_NAME=\"DracoAnimationEncoderModule\"" + GLUE_PATH ${draco_anim_encoder_glue_path} + PRE_LINK_JS_SOURCES ${draco_pre_link_js_sources} + POST_LINK_JS_SOURCES ${draco_post_link_js_sources}) endif() else() # Standard Draco libs, encoder and decoder. Object collections that mirror the # Draco directory structure. - draco_add_library(NAME draco_attributes TYPE OBJECT SOURCES - ${draco_attributes_sources} DEFINES ${draco_defines} - INCLUDES ${draco_include_paths}) - draco_add_library(NAME - draco_compression_attributes_dec - OBJECT - ${draco_compression_attributes_dec_sources} - TYPE - OBJECT - SOURCES - ${draco_compression_attributes_dec_sources} - DEFINES - ${draco_defines} - INCLUDES - ${draco_include_paths}) - draco_add_library(NAME draco_compression_attributes_enc TYPE OBJECT SOURCES - ${draco_compression_attributes_enc_sources} DEFINES - ${draco_defines} INCLUDES ${draco_include_paths}) - draco_add_library(NAME draco_compression_attributes_pred_schemes_dec TYPE - OBJECT SOURCES - ${draco_compression_attributes_pred_schemes_dec_sources}) - draco_add_library(NAME draco_compression_attributes_pred_schemes_enc TYPE - OBJECT SOURCES - ${draco_compression_attributes_pred_schemes_enc_sources} - DEFINES ${draco_defines} INCLUDES ${draco_include_paths}) - draco_add_library(NAME draco_compression_bit_coders TYPE OBJECT SOURCES - ${draco_compression_bit_coders_sources} DEFINES - ${draco_defines} INCLUDES ${draco_include_paths}) - draco_add_library(NAME draco_enc_config TYPE OBJECT SOURCES - ${draco_enc_config_sources} DEFINES ${draco_defines} - INCLUDES ${draco_include_paths}) - draco_add_library(NAME draco_dec_config TYPE OBJECT SOURCES - ${draco_dec_config_sources} DEFINES ${draco_defines} - INCLUDES ${draco_include_paths}) - draco_add_library(NAME draco_compression_decode TYPE OBJECT SOURCES - ${draco_compression_decode_sources} DEFINES ${draco_defines} - INCLUDES ${draco_include_paths}) - draco_add_library(NAME draco_compression_encode TYPE OBJECT SOURCES - ${draco_compression_encode_sources} DEFINES ${draco_defines} - INCLUDES ${draco_include_paths}) - draco_add_library(NAME draco_compression_entropy TYPE OBJECT SOURCES - ${draco_compression_entropy_sources} DEFINES - ${draco_defines} INCLUDES ${draco_include_paths}) - draco_add_library(NAME draco_compression_mesh_traverser TYPE OBJECT SOURCES - ${draco_compression_mesh_traverser_sources} DEFINES - ${draco_defines} INCLUDES ${draco_include_paths}) - draco_add_library(NAME draco_compression_mesh_dec TYPE OBJECT SOURCES - ${draco_compression_mesh_dec_sources} DEFINES - ${draco_defines} INCLUDES ${draco_include_paths}) - draco_add_library(NAME draco_compression_mesh_enc TYPE OBJECT SOURCES - ${draco_compression_mesh_enc_sources} DEFINES - ${draco_defines} INCLUDES ${draco_include_paths}) - draco_add_library(NAME draco_compression_point_cloud_dec TYPE OBJECT SOURCES - ${draco_compression_point_cloud_dec_sources} DEFINES - ${draco_defines} INCLUDES ${draco_include_paths}) - draco_add_library(NAME draco_compression_point_cloud_enc TYPE OBJECT SOURCES - ${draco_compression_point_cloud_enc_sources} DEFINES - ${draco_defines} INCLUDES ${draco_include_paths}) - draco_add_library(NAME draco_core TYPE OBJECT SOURCES ${draco_core_sources} - DEFINES ${draco_defines} INCLUDES ${draco_include_paths}) - draco_add_library(NAME draco_io TYPE OBJECT SOURCES ${draco_io_sources} - DEFINES ${draco_defines} INCLUDES ${draco_include_paths}) - draco_add_library(NAME draco_mesh TYPE OBJECT SOURCES ${draco_mesh_sources} - DEFINES ${draco_defines} INCLUDES ${draco_include_paths}) - draco_add_library(NAME draco_metadata_dec TYPE OBJECT SOURCES - ${draco_metadata_dec_sources} DEFINES ${draco_defines} - INCLUDES ${draco_include_paths}) - draco_add_library(NAME draco_metadata_enc TYPE OBJECT SOURCES - ${draco_metadata_enc_sources} DEFINES ${draco_defines} - INCLUDES ${draco_include_paths}) - draco_add_library(NAME draco_metadata TYPE OBJECT SOURCES - ${draco_metadata_sources} DEFINES ${draco_defines} INCLUDES - ${draco_include_paths}) - draco_add_library(NAME draco_animation_dec TYPE OBJECT SOURCES - ${draco_animation_dec_sources} DEFINES ${draco_defines} - INCLUDES ${draco_include_paths}) - draco_add_library(NAME draco_animation_enc TYPE OBJECT SOURCES - ${draco_animation_enc_sources} DEFINES ${draco_defines} - INCLUDES ${draco_include_paths}) - draco_add_library(NAME draco_animation TYPE OBJECT SOURCES - ${draco_animation_sources} DEFINES ${draco_defines} INCLUDES - ${draco_include_paths}) - draco_add_library(NAME draco_point_cloud TYPE OBJECT SOURCES - ${draco_point_cloud_sources} DEFINES ${draco_defines} - INCLUDES ${draco_include_paths}) - draco_add_library(NAME - draco_points_dec - TYPE - OBJECT - SOURCES - ${draco_points_common_sources} - ${draco_points_dec_sources} - DEFINES - ${draco_defines} - INCLUDES - ${draco_include_paths}) - draco_add_library(NAME - draco_points_enc - TYPE - OBJECT - SOURCES - ${draco_points_common_sources} - ${draco_points_enc_sources} - DEFINES - ${draco_defines} - INCLUDES - ${draco_include_paths}) + draco_add_library( + NAME draco_attributes + TYPE OBJECT + SOURCES ${draco_attributes_sources} + DEFINES ${draco_defines} + INCLUDES ${draco_include_paths}) + draco_add_library( + NAME draco_compression_attributes_dec OBJECT + ${draco_compression_attributes_dec_sources} + TYPE OBJECT + SOURCES ${draco_compression_attributes_dec_sources} + DEFINES ${draco_defines} + INCLUDES ${draco_include_paths}) + draco_add_library( + NAME draco_compression_attributes_enc + TYPE OBJECT + SOURCES ${draco_compression_attributes_enc_sources} + DEFINES ${draco_defines} + INCLUDES ${draco_include_paths}) + draco_add_library( + NAME draco_compression_attributes_pred_schemes_dec + TYPE OBJECT + SOURCES ${draco_compression_attributes_pred_schemes_dec_sources}) + draco_add_library( + NAME draco_compression_attributes_pred_schemes_enc + TYPE OBJECT + SOURCES ${draco_compression_attributes_pred_schemes_enc_sources} + DEFINES ${draco_defines} + INCLUDES ${draco_include_paths}) + draco_add_library( + NAME draco_compression_bit_coders + TYPE OBJECT + SOURCES ${draco_compression_bit_coders_sources} + DEFINES ${draco_defines} + INCLUDES ${draco_include_paths}) + draco_add_library( + NAME draco_enc_config + TYPE OBJECT + SOURCES ${draco_enc_config_sources} + DEFINES ${draco_defines} + INCLUDES ${draco_include_paths}) + draco_add_library( + NAME draco_dec_config + TYPE OBJECT + SOURCES ${draco_dec_config_sources} + DEFINES ${draco_defines} + INCLUDES ${draco_include_paths}) + draco_add_library( + NAME draco_compression_decode + TYPE OBJECT + SOURCES ${draco_compression_decode_sources} + DEFINES ${draco_defines} + INCLUDES ${draco_include_paths}) + draco_add_library( + NAME draco_compression_encode + TYPE OBJECT + SOURCES ${draco_compression_encode_sources} + DEFINES ${draco_defines} + INCLUDES ${draco_include_paths}) + draco_add_library( + NAME draco_compression_entropy + TYPE OBJECT + SOURCES ${draco_compression_entropy_sources} + DEFINES ${draco_defines} + INCLUDES ${draco_include_paths}) + draco_add_library( + NAME draco_compression_mesh_traverser + TYPE OBJECT + SOURCES ${draco_compression_mesh_traverser_sources} + DEFINES ${draco_defines} + INCLUDES ${draco_include_paths}) + draco_add_library( + NAME draco_compression_mesh_dec + TYPE OBJECT + SOURCES ${draco_compression_mesh_dec_sources} + DEFINES ${draco_defines} + INCLUDES ${draco_include_paths}) + draco_add_library( + NAME draco_compression_mesh_enc + TYPE OBJECT + SOURCES ${draco_compression_mesh_enc_sources} + DEFINES ${draco_defines} + INCLUDES ${draco_include_paths}) + draco_add_library( + NAME draco_compression_options + TYPE OBJECT + SOURCES ${draco_compression_options_sources} + DEFINES ${draco_defines} + INCLUDES ${draco_include_paths}) + draco_add_library( + NAME draco_compression_point_cloud_dec + TYPE OBJECT + SOURCES ${draco_compression_point_cloud_dec_sources} + DEFINES ${draco_defines} + INCLUDES ${draco_include_paths}) + draco_add_library( + NAME draco_compression_point_cloud_enc + TYPE OBJECT + SOURCES ${draco_compression_point_cloud_enc_sources} + DEFINES ${draco_defines} + INCLUDES ${draco_include_paths}) + draco_add_library( + NAME draco_core + TYPE OBJECT + SOURCES ${draco_core_sources} + DEFINES ${draco_defines} + INCLUDES ${draco_include_paths}) + draco_add_library( + NAME draco_io + TYPE OBJECT + SOURCES ${draco_io_sources} + DEFINES ${draco_defines} + INCLUDES ${draco_include_paths}) + draco_add_library( + NAME draco_mesh + TYPE OBJECT + SOURCES ${draco_mesh_sources} + DEFINES ${draco_defines} + INCLUDES ${draco_include_paths}) + draco_add_library( + NAME draco_metadata_dec + TYPE OBJECT + SOURCES ${draco_metadata_dec_sources} + DEFINES ${draco_defines} + INCLUDES ${draco_include_paths}) + draco_add_library( + NAME draco_metadata_enc + TYPE OBJECT + SOURCES ${draco_metadata_enc_sources} + DEFINES ${draco_defines} + INCLUDES ${draco_include_paths}) + draco_add_library( + NAME draco_metadata + TYPE OBJECT + SOURCES ${draco_metadata_sources} + DEFINES ${draco_defines} + INCLUDES ${draco_include_paths}) + draco_add_library( + NAME draco_animation_dec + TYPE OBJECT + SOURCES ${draco_animation_dec_sources} + DEFINES ${draco_defines} + INCLUDES ${draco_include_paths}) + draco_add_library( + NAME draco_animation_enc + TYPE OBJECT + SOURCES ${draco_animation_enc_sources} + DEFINES ${draco_defines} + INCLUDES ${draco_include_paths}) + draco_add_library( + NAME draco_animation + TYPE OBJECT + SOURCES ${draco_animation_sources} + DEFINES ${draco_defines} + INCLUDES ${draco_include_paths}) + draco_add_library( + NAME draco_point_cloud + TYPE OBJECT + SOURCES ${draco_point_cloud_sources} + DEFINES ${draco_defines} + INCLUDES ${draco_include_paths}) + draco_add_library( + NAME draco_points_dec + TYPE OBJECT + SOURCES ${draco_points_common_sources} ${draco_points_dec_sources} + DEFINES ${draco_defines} + INCLUDES ${draco_include_paths}) + draco_add_library( + NAME draco_points_enc + TYPE OBJECT + SOURCES ${draco_points_common_sources} ${draco_points_enc_sources} + DEFINES ${draco_defines} + INCLUDES ${draco_include_paths}) if(DRACO_TRANSCODER_SUPPORTED) if(MSVC) # TODO(https://github.com/google/draco/issues/826) - set_source_files_properties( - "${draco_src_root}/io/gltf_decoder.cc" - PROPERTIES COMPILE_OPTIONS "/Od") + set_source_files_properties("${draco_src_root}/io/gltf_decoder.cc" + PROPERTIES COMPILE_OPTIONS "/Od") endif() draco_add_library( - NAME - draco_material - TYPE - OBJECT - SOURCES - ${draco_material_sources} - DEFINES - ${draco_defines} - INCLUDES - ${draco_include_paths}) + NAME draco_material + TYPE OBJECT + SOURCES ${draco_material_sources} + DEFINES ${draco_defines} + INCLUDES ${draco_include_paths}) draco_add_library( - NAME - draco_scene - TYPE - OBJECT - SOURCES - ${draco_scene_sources} - DEFINES - ${draco_defines} - INCLUDES - ${draco_include_paths}) + NAME draco_scene + TYPE OBJECT + SOURCES ${draco_scene_sources} + DEFINES ${draco_defines} + INCLUDES ${draco_include_paths}) draco_add_library( - NAME - draco_texture - TYPE - OBJECT - SOURCES - ${draco_texture_sources} - DEFINES - ${draco_defines} - INCLUDES - ${draco_include_paths}) + NAME draco_texture + TYPE OBJECT + SOURCES ${draco_texture_sources} + DEFINES ${draco_defines} + INCLUDES ${draco_include_paths}) endif() - list(APPEND draco_object_library_deps - draco_attributes - draco_compression_attributes_dec - draco_compression_attributes_enc - draco_compression_attributes_pred_schemes_dec - draco_compression_attributes_pred_schemes_enc - draco_compression_bit_coders - draco_compression_decode - draco_compression_encode - draco_compression_entropy - draco_compression_mesh_dec - draco_compression_mesh_enc - draco_compression_point_cloud_dec - draco_compression_point_cloud_enc - draco_core - draco_dec_config - draco_enc_config - draco_io - draco_mesh - draco_metadata - draco_metadata_dec - draco_metadata_enc - draco_animation - draco_animation_dec - draco_animation_enc - draco_point_cloud - draco_points_dec - draco_points_enc) + list( + APPEND + draco_object_library_deps + draco_attributes + draco_compression_attributes_dec + draco_compression_attributes_enc + draco_compression_attributes_pred_schemes_dec + draco_compression_attributes_pred_schemes_enc + draco_compression_bit_coders + draco_compression_decode + draco_compression_encode + draco_compression_entropy + draco_compression_mesh_dec + draco_compression_mesh_enc + draco_compression_options + draco_compression_point_cloud_dec + draco_compression_point_cloud_enc + draco_core + draco_dec_config + draco_enc_config + draco_io + draco_mesh + draco_metadata + draco_metadata_dec + draco_metadata_enc + draco_animation + draco_animation_dec + draco_animation_enc + draco_point_cloud + draco_points_dec + draco_points_enc) if(DRACO_TRANSCODER_SUPPORTED) - list(APPEND draco_object_library_deps - draco_material draco_scene draco_texture) + list(APPEND draco_object_library_deps draco_material draco_scene + draco_texture) endif() # Library targets that consume the object collections. @@ -959,49 +1019,33 @@ else() else() set(draco_lib_type STATIC) endif() - draco_add_library(NAME - draco - OUTPUT_NAME - draco - TYPE - ${draco_lib_type} - DEFINES - ${draco_defines} - INCLUDES - ${draco_include_paths} - OBJLIB_DEPS - ${draco_object_library_deps}) + draco_add_library( + NAME draco + OUTPUT_NAME draco + TYPE ${draco_lib_type} + DEFINES ${draco_defines} + INCLUDES ${draco_include_paths} + OBJLIB_DEPS ${draco_object_library_deps}) add_library(draco::draco ALIAS draco) else() - draco_add_library(NAME - draco_static - OUTPUT_NAME - draco - TYPE - STATIC - DEFINES - ${draco_defines} - INCLUDES - ${draco_include_paths} - OBJLIB_DEPS - ${draco_object_library_deps}) + draco_add_library( + NAME draco_static + OUTPUT_NAME draco + TYPE STATIC + DEFINES ${draco_defines} + INCLUDES ${draco_include_paths} + OBJLIB_DEPS ${draco_object_library_deps}) if(BUILD_SHARED_LIBS) - draco_add_library(NAME - draco_shared - SOURCES - "${draco_src_root}/core/draco_version.h" - OUTPUT_NAME - draco - TYPE - SHARED - DEFINES - ${draco_defines} - INCLUDES - ${draco_include_paths} - LIB_DEPS - draco_static) + draco_add_library( + NAME draco_shared + SOURCES "${draco_src_root}/core/draco_version.h" + OUTPUT_NAME draco + TYPE SHARED + DEFINES ${draco_defines} + INCLUDES ${draco_include_paths} + LIB_DEPS draco_static) add_library(draco::draco ALIAS draco_shared) set_target_properties(draco_shared PROPERTIES EXPORT_NAME draco) else() @@ -1017,22 +1061,20 @@ else() set(unity_decoder_lib_type MODULE) endif() - draco_add_library(NAME draco_unity_plugin TYPE OBJECT SOURCES - ${draco_unity_plug_sources} DEFINES ${draco_defines} - INCLUDES ${draco_include_paths}) + draco_add_library( + NAME draco_unity_plugin + TYPE OBJECT + SOURCES ${draco_unity_plug_sources} + DEFINES ${draco_defines} + INCLUDES ${draco_include_paths}) - draco_add_library(NAME - dracodec_unity - TYPE - ${unity_decoder_lib_type} - DEFINES - ${draco_defines} - INCLUDES - ${draco_include_paths} - OBJLIB_DEPS - draco_unity_plugin - LIB_DEPS - ${draco_plugin_dependency}) + draco_add_library( + NAME dracodec_unity + TYPE ${unity_decoder_lib_type} + DEFINES ${draco_defines} + INCLUDES ${draco_include_paths} + OBJLIB_DEPS draco_unity_plugin + LIB_DEPS ${draco_plugin_dependency}) # For Mac, we need to build a .bundle for the unity plugin. if(APPLE) @@ -1041,22 +1083,20 @@ else() endif() if(DRACO_MAYA_PLUGIN) - draco_add_library(NAME draco_maya_plugin TYPE OBJECT SOURCES - ${draco_maya_plug_sources} DEFINES ${draco_defines} - INCLUDES ${draco_include_paths}) + draco_add_library( + NAME draco_maya_plugin + TYPE OBJECT + SOURCES ${draco_maya_plug_sources} + DEFINES ${draco_defines} + INCLUDES ${draco_include_paths}) - draco_add_library(NAME - draco_maya_wrapper - TYPE - MODULE - DEFINES - ${draco_defines} - INCLUDES - ${draco_include_paths} - OBJLIB_DEPS - draco_maya_plugin - LIB_DEPS - ${draco_plugin_dependency}) + draco_add_library( + NAME draco_maya_wrapper + TYPE MODULE + DEFINES ${draco_defines} + INCLUDES ${draco_include_paths} + OBJLIB_DEPS draco_maya_plugin + LIB_DEPS ${draco_plugin_dependency}) # For Mac, we need to build a .bundle for the plugin. if(APPLE) @@ -1065,44 +1105,30 @@ else() endif() # Draco app targets. - draco_add_executable(NAME - draco_decoder - SOURCES - "${draco_src_root}/tools/draco_decoder.cc" - ${draco_io_sources} - DEFINES - ${draco_defines} - INCLUDES - ${draco_include_paths} - LIB_DEPS - ${draco_dependency}) + draco_add_executable( + NAME draco_decoder + SOURCES "${draco_src_root}/tools/draco_decoder.cc" ${draco_io_sources} + DEFINES ${draco_defines} + INCLUDES ${draco_include_paths} + LIB_DEPS ${draco_dependency}) - draco_add_executable(NAME - draco_encoder - SOURCES - "${draco_src_root}/tools/draco_encoder.cc" - ${draco_io_sources} - DEFINES - ${draco_defines} - INCLUDES - ${draco_include_paths} - LIB_DEPS - ${draco_dependency}) + draco_add_executable( + NAME draco_encoder + SOURCES "${draco_src_root}/tools/draco_encoder.cc" ${draco_io_sources} + DEFINES ${draco_defines} + INCLUDES ${draco_include_paths} + LIB_DEPS ${draco_dependency}) if(DRACO_TRANSCODER_SUPPORTED) - draco_add_executable(NAME - draco_transcoder - SOURCES - "${draco_src_root}/tools/draco_transcoder.cc" - "${draco_src_root}/tools/draco_transcoder_lib.cc" - "${draco_src_root}/tools/draco_transcoder_lib.h" - ${draco_io_sources} - DEFINES - ${draco_defines} - INCLUDES - ${draco_include_paths} - LIB_DEPS - ${draco_dependency}) + draco_add_executable( + NAME draco_transcoder + SOURCES "${draco_src_root}/tools/draco_transcoder.cc" + "${draco_src_root}/tools/draco_transcoder_lib.cc" + "${draco_src_root}/tools/draco_transcoder_lib.h" + ${draco_io_sources} + DEFINES ${draco_defines} + INCLUDES ${draco_include_paths} + LIB_DEPS ${draco_dependency}) endif() draco_setup_install_target() diff --git a/README.md b/README.md index fc10fc8..133a1bf 100644 --- a/README.md +++ b/README.md @@ -14,6 +14,13 @@ delays can result in transient errors that can be difficult to diagnose when new Draco releases are launched. To avoid the issue pin your sites to a versioned release. +### Version 1.5.4 release: +* Using the versioned www.gstatic.com WASM and Javascript decoders continues + to be recommended. To use v1.5.4, use this URL: + * https://www.gstatic.com/draco/versioned/decoders/1.5.4/* +* Bug fixes. +* Security fixes. + ### Version 1.5.3 release: * Using the versioned www.gstatic.com WASM and Javascript decoders continues to be recommended. To use v1.5.3, use this URL: diff --git a/cmake/draco_build_definitions.cmake b/cmake/draco_build_definitions.cmake index a146804..465ac47 100644 --- a/cmake/draco_build_definitions.cmake +++ b/cmake/draco_build_definitions.cmake @@ -1,16 +1,16 @@ # Copyright 2021 The Draco Authors # -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at +# Licensed under the Apache License, Version 2.0 (the "License"); you may not +# use this file except in compliance with the License. You may obtain a copy of +# the License at # -# http://www.apache.org/licenses/LICENSE-2.0 +# http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. +# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT +# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the +# License for the specific language governing permissions and limitations under +# the License. if(DRACO_CMAKE_DRACO_BUILD_DEFINITIONS_CMAKE_) return() @@ -60,7 +60,7 @@ macro(draco_set_build_definitions) # passed to libtool. # # We set DRACO_SOVERSION = [c-a].a.r - set(LT_CURRENT 5) + set(LT_CURRENT 6) set(LT_REVISION 0) set(LT_AGE 0) math(EXPR DRACO_SOVERSION_MAJOR "${LT_CURRENT} - ${LT_AGE}") @@ -70,7 +70,7 @@ macro(draco_set_build_definitions) unset(LT_AGE) list(APPEND draco_include_paths "${draco_root}" "${draco_root}/src" - "${draco_build}") + "${draco_build}") if(DRACO_ABSL) list(APPEND draco_include_paths "${draco_root}/third_party/abseil-cpp") @@ -84,8 +84,7 @@ macro(draco_set_build_definitions) list(APPEND draco_defines "DRACO_CMAKE=1" - "DRACO_FLAGS_SRCDIR=\"${draco_root}\"" - "DRACO_FLAGS_TMPDIR=\"/tmp\"") + "DRACO_FLAGS_SRCDIR=\"${draco_root}\"" "DRACO_FLAGS_TMPDIR=\"/tmp\"") if(MSVC OR WIN32) list(APPEND draco_defines "_CRT_SECURE_NO_DEPRECATE=1" "NOMINMAX=1") @@ -158,13 +157,9 @@ macro(draco_set_build_definitions) set(draco_neon_source_file_suffix "neon.cc") set(draco_sse4_source_file_suffix "sse4.cc") - if((${CMAKE_CXX_COMPILER_ID} - STREQUAL - "GNU" - AND ${CMAKE_CXX_COMPILER_VERSION} VERSION_LESS 5) - OR (${CMAKE_CXX_COMPILER_ID} - STREQUAL - "Clang" + if((${CMAKE_CXX_COMPILER_ID} STREQUAL "GNU" AND ${CMAKE_CXX_COMPILER_VERSION} + VERSION_LESS 5) + OR (${CMAKE_CXX_COMPILER_ID} STREQUAL "Clang" AND ${CMAKE_CXX_COMPILER_VERSION} VERSION_LESS 4)) message( WARNING "GNU/GCC < v5 or Clang/LLVM < v4, ENABLING COMPATIBILITY MODE.") @@ -173,10 +168,9 @@ macro(draco_set_build_definitions) if(EMSCRIPTEN) draco_check_emscripten_environment() - draco_get_required_emscripten_flags(FLAG_LIST_VAR_COMPILER - draco_base_cxx_flags - FLAG_LIST_VAR_LINKER - draco_base_exe_linker_flags) + draco_get_required_emscripten_flags( + FLAG_LIST_VAR_COMPILER draco_base_cxx_flags + FLAG_LIST_VAR_LINKER draco_base_exe_linker_flags) endif() draco_configure_sanitizer() diff --git a/cmake/draco_cpu_detection.cmake b/cmake/draco_cpu_detection.cmake index 03ac4b9..c3b77b8 100644 --- a/cmake/draco_cpu_detection.cmake +++ b/cmake/draco_cpu_detection.cmake @@ -1,16 +1,16 @@ # Copyright 2021 The Draco Authors # -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at +# Licensed under the Apache License, Version 2.0 (the "License"); you may not +# use this file except in compliance with the License. You may obtain a copy of +# the License at # -# http://www.apache.org/licenses/LICENSE-2.0 +# http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. +# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT +# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the +# License for the specific language governing permissions and limitations under +# the License. if(DRACO_CMAKE_DRACO_CPU_DETECTION_CMAKE_) return() diff --git a/cmake/draco_dependencies.cmake b/cmake/draco_dependencies.cmake index 92397bf..7654418 100644 --- a/cmake/draco_dependencies.cmake +++ b/cmake/draco_dependencies.cmake @@ -1,16 +1,16 @@ # Copyright 2022 The Draco Authors # -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at +# Licensed under the Apache License, Version 2.0 (the "License"); you may not +# use this file except in compliance with the License. You may obtain a copy of +# the License at # -# http://www.apache.org/licenses/LICENSE-2.0 +# http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. +# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT +# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the +# License for the specific language governing permissions and limitations under +# the License. if(DRACO_CMAKE_DRACO_DEPENDENCIES_CMAKE) return() @@ -106,14 +106,16 @@ macro(draco_setup_googletest) set(gtest_path "${draco_root}/third_party/googletest") endif() - list(APPEND draco_test_include_paths - ${draco_include_paths} - "${gtest_path}/include" - "${gtest_path}/googlemock" - "${gtest_path}/googletest/include" - "${gtest_path}/googletest") + list( + APPEND + draco_test_include_paths + ${draco_include_paths} + "${gtest_path}/include" + "${gtest_path}/googlemock" + "${gtest_path}/googletest/include" + "${gtest_path}/googletest") - list(APPEND draco_gtest_all "${gtest_path}/googletest/src/gtest-all.cc") + list(APPEND draco_gtest_all "${gtest_path}/googletest/src/gtest-all.cc") list(APPEND draco_gtest_main "${gtest_path}/googletest/src/gtest_main.cc") endmacro() diff --git a/cmake/draco_emscripten.cmake b/cmake/draco_emscripten.cmake index 08c58d6..7779dd4 100644 --- a/cmake/draco_emscripten.cmake +++ b/cmake/draco_emscripten.cmake @@ -1,16 +1,16 @@ # Copyright 2021 The Draco Authors # -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at +# Licensed under the Apache License, Version 2.0 (the "License"); you may not +# use this file except in compliance with the License. You may obtain a copy of +# the License at # -# http://www.apache.org/licenses/LICENSE-2.0 +# http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. +# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT +# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the +# License for the specific language governing permissions and limitations under +# the License. if(DRACO_CMAKE_DRACO_EMSCRIPTEN_CMAKE_) return() @@ -58,7 +58,7 @@ macro(draco_get_required_emscripten_flags) # what are supposedly link-only flags sent with compile commands, but then # proceeds to produce broken code if the warnings are heeded. list(APPEND ${em_FLAG_LIST_VAR_COMPILER} - "-Wno-unused-command-line-argument") + "-Wno-unused-command-line-argument") list(APPEND ${em_FLAG_LIST_VAR_COMPILER} "-Wno-almost-asm") list(APPEND ${em_FLAG_LIST_VAR_COMPILER} "--memory-init-file" "0") @@ -71,7 +71,7 @@ macro(draco_get_required_emscripten_flags) list(APPEND ${em_FLAG_LIST_VAR_COMPILER} "-sMODULARIZE=1") list(APPEND ${em_FLAG_LIST_VAR_COMPILER} "-sFILESYSTEM=0") list(APPEND ${em_FLAG_LIST_VAR_COMPILER} - "-sEXPORTED_FUNCTIONS=[\"_free\",\"_malloc\"]") + "-sEXPORTED_FUNCTIONS=[\"_free\",\"_malloc\"]") list(APPEND ${em_FLAG_LIST_VAR_COMPILER} "-sPRECISE_F32=1") list(APPEND ${em_FLAG_LIST_VAR_COMPILER} "-sNODEJS_CATCH_EXIT=0") list(APPEND ${em_FLAG_LIST_VAR_COMPILER} "-sNODEJS_CATCH_REJECTION=0") @@ -105,10 +105,11 @@ macro(draco_generate_emscripten_glue) "${glue_multi_arg_opts}" ${ARGN}) if(DRACO_VERBOSE GREATER 1) - message("--------- draco_generate_emscripten_glue -----------\n" - "glue_INPUT_IDL=${glue_INPUT_IDL}\n" - "glue_OUTPUT_PATH=${glue_OUTPUT_PATH}\n" ] - "----------------------------------------------------\n") + message( + "--------- draco_generate_emscripten_glue -----------\n" + "glue_INPUT_IDL=${glue_INPUT_IDL}\n" + "glue_OUTPUT_PATH=${glue_OUTPUT_PATH}\n" + "----------------------------------------------------\n") endif() if(NOT glue_INPUT_IDL OR NOT glue_OUTPUT_PATH) @@ -118,22 +119,22 @@ macro(draco_generate_emscripten_glue) endif() # Generate the glue source. - execute_process(COMMAND ${PYTHON_EXECUTABLE} - $ENV{EMSCRIPTEN}/tools/webidl_binder.py - ${glue_INPUT_IDL} ${glue_OUTPUT_PATH}) + execute_process( + COMMAND ${PYTHON_EXECUTABLE} $ENV{EMSCRIPTEN}/tools/webidl_binder.py + ${glue_INPUT_IDL} ${glue_OUTPUT_PATH}) if(NOT EXISTS "${glue_OUTPUT_PATH}.cpp") message(FATAL_ERROR "JS glue generation failed for ${glue_INPUT_IDL}.") endif() # Create a dependency so that it regenerated on edits. - add_custom_command(OUTPUT "${glue_OUTPUT_PATH}.cpp" - COMMAND ${PYTHON_EXECUTABLE} - $ENV{EMSCRIPTEN}/tools/webidl_binder.py - ${glue_INPUT_IDL} ${glue_OUTPUT_PATH} - DEPENDS ${draco_js_dec_idl} - COMMENT "Generating ${glue_OUTPUT_PATH}.cpp." - WORKING_DIRECTORY ${draco_build} - VERBATIM) + add_custom_command( + OUTPUT "${glue_OUTPUT_PATH}.cpp" + COMMAND ${PYTHON_EXECUTABLE} $ENV{EMSCRIPTEN}/tools/webidl_binder.py + ${glue_INPUT_IDL} ${glue_OUTPUT_PATH} + DEPENDS ${draco_js_dec_idl} + COMMENT "Generating ${glue_OUTPUT_PATH}.cpp." + WORKING_DIRECTORY ${draco_build} + VERBATIM) endmacro() # Wrapper for draco_add_executable() that handles the extra work necessary for @@ -159,8 +160,14 @@ macro(draco_add_emscripten_executable) unset(emexe_LINK_FLAGS) set(optional_args) set(single_value_args NAME GLUE_PATH) - set(multi_value_args SOURCES DEFINES FEATURES INCLUDES LINK_FLAGS - PRE_LINK_JS_SOURCES POST_LINK_JS_SOURCES) + set(multi_value_args + SOURCES + DEFINES + FEATURES + INCLUDES + LINK_FLAGS + PRE_LINK_JS_SOURCES + POST_LINK_JS_SOURCES) cmake_parse_arguments(emexe "${optional_args}" "${single_value_args}" "${multi_value_args}" ${ARGN}) @@ -175,17 +182,18 @@ macro(draco_add_emscripten_executable) endif() if(DRACO_VERBOSE GREATER 1) - message("--------- draco_add_emscripten_executable ---------\n" - "emexe_NAME=${emexe_NAME}\n" - "emexe_SOURCES=${emexe_SOURCES}\n" - "emexe_DEFINES=${emexe_DEFINES}\n" - "emexe_INCLUDES=${emexe_INCLUDES}\n" - "emexe_LINK_FLAGS=${emexe_LINK_FLAGS}\n" - "emexe_GLUE_PATH=${emexe_GLUE_PATH}\n" - "emexe_FEATURES=${emexe_FEATURES}\n" - "emexe_PRE_LINK_JS_SOURCES=${emexe_PRE_LINK_JS_SOURCES}\n" - "emexe_POST_LINK_JS_SOURCES=${emexe_POST_LINK_JS_SOURCES}\n" - "----------------------------------------------------\n") + message( + "--------- draco_add_emscripten_executable ---------\n" + "emexe_NAME=${emexe_NAME}\n" + "emexe_SOURCES=${emexe_SOURCES}\n" + "emexe_DEFINES=${emexe_DEFINES}\n" + "emexe_INCLUDES=${emexe_INCLUDES}\n" + "emexe_LINK_FLAGS=${emexe_LINK_FLAGS}\n" + "emexe_GLUE_PATH=${emexe_GLUE_PATH}\n" + "emexe_FEATURES=${emexe_FEATURES}\n" + "emexe_PRE_LINK_JS_SOURCES=${emexe_PRE_LINK_JS_SOURCES}\n" + "emexe_POST_LINK_JS_SOURCES=${emexe_POST_LINK_JS_SOURCES}\n" + "----------------------------------------------------\n") endif() # The Emscripten linker needs the C++ flags in addition to whatever has been @@ -194,31 +202,30 @@ macro(draco_add_emscripten_executable) if(DRACO_GLTF_BITSTREAM) # Add "_gltf" suffix to target output name. - draco_add_executable(NAME - ${emexe_NAME} - OUTPUT_NAME - ${emexe_NAME}_gltf - SOURCES - ${emexe_SOURCES} - DEFINES - ${emexe_DEFINES} - INCLUDES - ${emexe_INCLUDES} - LINK_FLAGS - ${emexe_LINK_FLAGS}) + draco_add_executable( + NAME ${emexe_NAME} + OUTPUT_NAME ${emexe_NAME}_gltf + SOURCES ${emexe_SOURCES} + DEFINES ${emexe_DEFINES} + INCLUDES ${emexe_INCLUDES} + LINK_FLAGS ${emexe_LINK_FLAGS}) else() - draco_add_executable(NAME ${emexe_NAME} SOURCES ${emexe_SOURCES} DEFINES - ${emexe_DEFINES} INCLUDES ${emexe_INCLUDES} LINK_FLAGS - ${emexe_LINK_FLAGS}) + draco_add_executable( + NAME ${emexe_NAME} + SOURCES ${emexe_SOURCES} + DEFINES ${emexe_DEFINES} + INCLUDES ${emexe_INCLUDES} + LINK_FLAGS ${emexe_LINK_FLAGS}) endif() foreach(feature ${emexe_FEATURES}) draco_enable_feature(FEATURE ${feature} TARGETS ${emexe_NAME}) endforeach() - set_property(SOURCE ${emexe_SOURCES} - APPEND - PROPERTY OBJECT_DEPENDS "${emexe_GLUE_PATH}.cpp") + set_property( + SOURCE ${emexe_SOURCES} + APPEND + PROPERTY OBJECT_DEPENDS "${emexe_GLUE_PATH}.cpp") em_link_pre_js(${emexe_NAME} ${emexe_PRE_LINK_JS_SOURCES}) em_link_post_js(${emexe_NAME} "${emexe_GLUE_PATH}.js" ${emexe_POST_LINK_JS_SOURCES}) diff --git a/cmake/draco_flags.cmake b/cmake/draco_flags.cmake index 22366c5..349113a 100644 --- a/cmake/draco_flags.cmake +++ b/cmake/draco_flags.cmake @@ -1,16 +1,16 @@ # Copyright 2021 The Draco Authors # -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at +# Licensed under the Apache License, Version 2.0 (the "License"); you may not +# use this file except in compliance with the License. You may obtain a copy of +# the License at # -# http://www.apache.org/licenses/LICENSE-2.0 +# http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. +# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT +# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the +# License for the specific language governing permissions and limitations under +# the License. if(DRACO_CMAKE_DRACO_FLAGS_CMAKE_) return() @@ -38,7 +38,7 @@ macro(draco_set_compiler_flags_for_sources) endif() set_source_files_properties(${compiler_SOURCES} PROPERTIES COMPILE_FLAGS - ${compiler_FLAGS}) + ${compiler_FLAGS}) if(DRACO_VERBOSE GREATER 1) foreach(source ${compiler_SOURCES}) diff --git a/cmake/draco_helpers.cmake b/cmake/draco_helpers.cmake index 1f1cf65..69e24c5 100644 --- a/cmake/draco_helpers.cmake +++ b/cmake/draco_helpers.cmake @@ -1,16 +1,16 @@ # Copyright 2021 The Draco Authors # -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at +# Licensed under the Apache License, Version 2.0 (the "License"); you may not +# use this file except in compliance with the License. You may obtain a copy of +# the License at # -# http://www.apache.org/licenses/LICENSE-2.0 +# http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. +# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT +# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the +# License for the specific language governing permissions and limitations under +# the License. if(DRACO_CMAKE_DRACO_HELPERS_CMAKE_) return() diff --git a/cmake/draco_install.cmake b/cmake/draco_install.cmake index e15a054..f7e1153 100644 --- a/cmake/draco_install.cmake +++ b/cmake/draco_install.cmake @@ -1,16 +1,16 @@ # Copyright 2021 The Draco Authors # -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at +# Licensed under the Apache License, Version 2.0 (the "License"); you may not +# use this file except in compliance with the License. You may obtain a copy of +# the License at # -# http://www.apache.org/licenses/LICENSE-2.0 +# http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. +# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT +# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the +# License for the specific language governing permissions and limitations under +# the License. if(DRACO_CMAKE_DRACO_INSTALL_CMAKE_) return() @@ -47,9 +47,8 @@ macro(draco_setup_install_target) DESTINATION "${target_directory}") endforeach() - install( - FILES "${draco_build}/draco/draco_features.h" - DESTINATION "${includes_path}/draco/") + install(FILES "${draco_build}/draco/draco_features.h" + DESTINATION "${includes_path}/draco/") install(TARGETS draco_decoder DESTINATION "${bin_path}") install(TARGETS draco_encoder DESTINATION "${bin_path}") @@ -67,9 +66,9 @@ macro(draco_setup_install_target) LIBRARY DESTINATION "${libs_path}") else() install( - TARGETS draco_static - EXPORT dracoExport - DESTINATION "${libs_path}") + TARGETS draco_static + EXPORT dracoExport + DESTINATION "${libs_path}") if(BUILD_SHARED_LIBS) install( @@ -116,9 +115,7 @@ macro(draco_setup_install_target) FILE draco-targets.cmake DESTINATION "${data_path}/cmake/draco") - install( - FILES - "${draco_build}/draco-config.cmake" - "${draco_build}/draco-config-version.cmake" - DESTINATION "${data_path}/cmake/draco") + install(FILES "${draco_build}/draco-config.cmake" + "${draco_build}/draco-config-version.cmake" + DESTINATION "${data_path}/cmake/draco") endmacro() diff --git a/cmake/draco_intrinsics.cmake b/cmake/draco_intrinsics.cmake index 66a5d97..178df97 100644 --- a/cmake/draco_intrinsics.cmake +++ b/cmake/draco_intrinsics.cmake @@ -1,16 +1,16 @@ # Copyright 2021 The Draco Authors # -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at +# Licensed under the Apache License, Version 2.0 (the "License"); you may not +# use this file except in compliance with the License. You may obtain a copy of +# the License at # -# http://www.apache.org/licenses/LICENSE-2.0 +# http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. +# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT +# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the +# License for the specific language governing permissions and limitations under +# the License. if(DRACO_CMAKE_DRACO_INTRINSICS_CMAKE_) return() @@ -75,17 +75,15 @@ macro(draco_process_intrinsics_sources) unset(sse4_sources) list(APPEND sse4_sources ${arg_SOURCES}) - list(FILTER sse4_sources INCLUDE REGEX - "${draco_sse4_source_file_suffix}$") + list(FILTER sse4_sources INCLUDE REGEX "${draco_sse4_source_file_suffix}$") if(sse4_sources) unset(sse4_flags) - draco_get_intrinsics_flag_for_suffix(SUFFIX - ${draco_sse4_source_file_suffix} - VARIABLE sse4_flags) + draco_get_intrinsics_flag_for_suffix( + SUFFIX ${draco_sse4_source_file_suffix} VARIABLE sse4_flags) if(sse4_flags) draco_set_compiler_flags_for_sources(SOURCES ${sse4_sources} FLAGS - ${sse4_flags}) + ${sse4_flags}) endif() endif() endif() @@ -93,17 +91,15 @@ macro(draco_process_intrinsics_sources) if(DRACO_ENABLE_NEON AND draco_have_neon) unset(neon_sources) list(APPEND neon_sources ${arg_SOURCES}) - list(FILTER neon_sources INCLUDE REGEX - "${draco_neon_source_file_suffix}$") + list(FILTER neon_sources INCLUDE REGEX "${draco_neon_source_file_suffix}$") if(neon_sources AND DRACO_NEON_INTRINSICS_FLAG) unset(neon_flags) - draco_get_intrinsics_flag_for_suffix(SUFFIX - ${draco_neon_source_file_suffix} - VARIABLE neon_flags) + draco_get_intrinsics_flag_for_suffix( + SUFFIX ${draco_neon_source_file_suffix} VARIABLE neon_flags) if(neon_flags) draco_set_compiler_flags_for_sources(SOURCES ${neon_sources} FLAGS - ${neon_flags}) + ${neon_flags}) endif() endif() endif() diff --git a/cmake/draco_options.cmake b/cmake/draco_options.cmake index 6b5e727..42a15b4 100644 --- a/cmake/draco_options.cmake +++ b/cmake/draco_options.cmake @@ -1,16 +1,16 @@ # Copyright 2021 The Draco Authors # -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at +# Licensed under the Apache License, Version 2.0 (the "License"); you may not +# use this file except in compliance with the License. You may obtain a copy of +# the License at # -# http://www.apache.org/licenses/LICENSE-2.0 +# http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. +# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT +# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the +# License for the specific language governing permissions and limitations under +# the License. if(DRACO_CMAKE_DRACO_OPTIONS_CMAKE_) return() @@ -32,17 +32,22 @@ macro(draco_option) cmake_parse_arguments(option "${optional_args}" "${single_value_args}" "${multi_value_args}" ${ARGN}) - if(NOT (option_NAME AND option_HELPSTRING AND DEFINED option_VALUE)) + if(NOT + (option_NAME + AND option_HELPSTRING + AND DEFINED option_VALUE)) message(FATAL_ERROR "draco_option: NAME HELPSTRING and VALUE required.") endif() option(${option_NAME} ${option_HELPSTRING} ${option_VALUE}) if(DRACO_VERBOSE GREATER 2) - message("--------- draco_option ---------\n" "option_NAME=${option_NAME}\n" - "option_HELPSTRING=${option_HELPSTRING}\n" - "option_VALUE=${option_VALUE}\n" - "------------------------------------------\n") + message( + "--------- draco_option ---------\n" + "option_NAME=${option_NAME}\n" + "option_HELPSTRING=${option_HELPSTRING}\n" + "option_VALUE=${option_VALUE}\n" + "------------------------------------------\n") endif() list(APPEND draco_options ${option_NAME}) @@ -58,37 +63,70 @@ endmacro() # Set default options. macro(draco_set_default_options) - draco_option(NAME DRACO_FAST HELPSTRING "Try to build faster libs." VALUE OFF) - draco_option(NAME DRACO_JS_GLUE HELPSTRING - "Enable JS Glue and JS targets when using Emscripten." VALUE ON) - draco_option(NAME DRACO_IE_COMPATIBLE HELPSTRING - "Enable support for older IE builds when using Emscripten." VALUE - OFF) - draco_option(NAME DRACO_MESH_COMPRESSION HELPSTRING "Enable mesh compression." - VALUE ON) - draco_option(NAME DRACO_POINT_CLOUD_COMPRESSION HELPSTRING - "Enable point cloud compression." VALUE ON) - draco_option(NAME DRACO_PREDICTIVE_EDGEBREAKER HELPSTRING - "Enable predictive edgebreaker." VALUE ON) - draco_option(NAME DRACO_STANDARD_EDGEBREAKER HELPSTRING - "Enable stand edgebreaker." VALUE ON) - draco_option(NAME DRACO_BACKWARDS_COMPATIBILITY HELPSTRING - "Enable backwards compatibility." VALUE ON) - draco_option(NAME DRACO_DECODER_ATTRIBUTE_DEDUPLICATION HELPSTRING - "Enable attribute deduping." VALUE OFF) - draco_option(NAME DRACO_TESTS HELPSTRING "Enables tests." VALUE OFF) - draco_option(NAME DRACO_WASM HELPSTRING "Enables WASM support." VALUE OFF) - draco_option(NAME DRACO_UNITY_PLUGIN HELPSTRING - "Build plugin library for Unity." VALUE OFF) - draco_option(NAME DRACO_ANIMATION_ENCODING HELPSTRING "Enable animation." - VALUE OFF) - draco_option(NAME DRACO_GLTF_BITSTREAM HELPSTRING - "Draco GLTF extension bitstream specified features only." - VALUE OFF) - draco_option(NAME DRACO_MAYA_PLUGIN HELPSTRING - "Build plugin library for Maya." VALUE OFF) - draco_option(NAME DRACO_TRANSCODER_SUPPORTED HELPSTRING - "Enable the Draco transcoder." VALUE OFF) + draco_option( + NAME DRACO_FAST + HELPSTRING "Try to build faster libs." + VALUE OFF) + draco_option( + NAME DRACO_JS_GLUE + HELPSTRING "Enable JS Glue and JS targets when using Emscripten." + VALUE ON) + draco_option( + NAME DRACO_IE_COMPATIBLE + HELPSTRING "Enable support for older IE builds when using Emscripten." + VALUE OFF) + draco_option( + NAME DRACO_MESH_COMPRESSION + HELPSTRING "Enable mesh compression." + VALUE ON) + draco_option( + NAME DRACO_POINT_CLOUD_COMPRESSION + HELPSTRING "Enable point cloud compression." + VALUE ON) + draco_option( + NAME DRACO_PREDICTIVE_EDGEBREAKER + HELPSTRING "Enable predictive edgebreaker." + VALUE ON) + draco_option( + NAME DRACO_STANDARD_EDGEBREAKER + HELPSTRING "Enable stand edgebreaker." + VALUE ON) + draco_option( + NAME DRACO_BACKWARDS_COMPATIBILITY + HELPSTRING "Enable backwards compatibility." + VALUE ON) + draco_option( + NAME DRACO_DECODER_ATTRIBUTE_DEDUPLICATION + HELPSTRING "Enable attribute deduping." + VALUE OFF) + draco_option( + NAME DRACO_TESTS + HELPSTRING "Enables tests." + VALUE OFF) + draco_option( + NAME DRACO_WASM + HELPSTRING "Enables WASM support." + VALUE OFF) + draco_option( + NAME DRACO_UNITY_PLUGIN + HELPSTRING "Build plugin library for Unity." + VALUE OFF) + draco_option( + NAME DRACO_ANIMATION_ENCODING + HELPSTRING "Enable animation." + VALUE OFF) + draco_option( + NAME DRACO_GLTF_BITSTREAM + HELPSTRING "Draco GLTF extension bitstream specified features only." + VALUE OFF) + draco_option( + NAME DRACO_MAYA_PLUGIN + HELPSTRING "Build plugin library for Maya." + VALUE OFF) + draco_option( + NAME DRACO_TRANSCODER_SUPPORTED + HELPSTRING "Enable the Draco transcoder." + VALUE OFF) draco_check_deprecated_options() endmacro() diff --git a/cmake/draco_sanitizer.cmake b/cmake/draco_sanitizer.cmake index bed23cb..84e1306 100644 --- a/cmake/draco_sanitizer.cmake +++ b/cmake/draco_sanitizer.cmake @@ -1,16 +1,16 @@ # Copyright 2021 The Draco Authors # -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at +# Licensed under the Apache License, Version 2.0 (the "License"); you may not +# use this file except in compliance with the License. You may obtain a copy of +# the License at # -# http://www.apache.org/licenses/LICENSE-2.0 +# http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. +# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT +# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the +# License for the specific language governing permissions and limitations under +# the License. if(DRACO_CMAKE_DRACO_SANITIZER_CMAKE_) return() @@ -19,16 +19,18 @@ set(DRACO_CMAKE_DRACO_SANITIZER_CMAKE_ 1) # Handles the details of enabling sanitizers. macro(draco_configure_sanitizer) - if(DRACO_SANITIZE AND NOT EMSCRIPTEN AND NOT MSVC) + if(DRACO_SANITIZE + AND NOT EMSCRIPTEN + AND NOT MSVC) if(CMAKE_CXX_COMPILER_ID MATCHES "Clang") if(DRACO_SANITIZE MATCHES "cfi") list(APPEND SAN_CXX_FLAGS "-flto" "-fno-sanitize-trap=cfi") list(APPEND SAN_LINKER_FLAGS "-flto" "-fno-sanitize-trap=cfi" - "-fuse-ld=gold") + "-fuse-ld=gold") endif() - if(${CMAKE_SIZEOF_VOID_P} EQUAL 4 - AND DRACO_SANITIZE MATCHES "integer|undefined") + if(${CMAKE_SIZEOF_VOID_P} EQUAL 4 AND DRACO_SANITIZE MATCHES + "integer|undefined") list(APPEND SAN_LINKER_FLAGS "--rtlib=compiler-rt" "-lgcc_s") endif() endif() diff --git a/cmake/draco_targets.cmake b/cmake/draco_targets.cmake index f96dbb1..9892bee 100644 --- a/cmake/draco_targets.cmake +++ b/cmake/draco_targets.cmake @@ -1,16 +1,16 @@ # Copyright 2021 The Draco Authors # -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at +# Licensed under the Apache License, Version 2.0 (the "License"); you may not +# use this file except in compliance with the License. You may obtain a copy of +# the License at # -# http://www.apache.org/licenses/LICENSE-2.0 +# http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. +# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT +# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the +# License for the specific language governing permissions and limitations under +# the License. if(DRACO_CMAKE_DRACO_TARGETS_CMAKE_) return() @@ -65,26 +65,33 @@ macro(draco_add_executable) unset(exe_LIB_DEPS) set(optional_args TEST) set(single_value_args NAME OUTPUT_NAME) - set(multi_value_args SOURCES DEFINES INCLUDES COMPILE_FLAGS LINK_FLAGS - OBJLIB_DEPS LIB_DEPS) + set(multi_value_args + SOURCES + DEFINES + INCLUDES + COMPILE_FLAGS + LINK_FLAGS + OBJLIB_DEPS + LIB_DEPS) cmake_parse_arguments(exe "${optional_args}" "${single_value_args}" "${multi_value_args}" ${ARGN}) if(DRACO_VERBOSE GREATER 1) - message("--------- draco_add_executable ---------\n" - "exe_TEST=${exe_TEST}\n" - "exe_TEST_DEFINES_MAIN=${exe_TEST_DEFINES_MAIN}\n" - "exe_NAME=${exe_NAME}\n" - "exe_OUTPUT_NAME=${exe_OUTPUT_NAME}\n" - "exe_SOURCES=${exe_SOURCES}\n" - "exe_DEFINES=${exe_DEFINES}\n" - "exe_INCLUDES=${exe_INCLUDES}\n" - "exe_COMPILE_FLAGS=${exe_COMPILE_FLAGS}\n" - "exe_LINK_FLAGS=${exe_LINK_FLAGS}\n" - "exe_OBJLIB_DEPS=${exe_OBJLIB_DEPS}\n" - "exe_LIB_DEPS=${exe_LIB_DEPS}\n" - "------------------------------------------\n") + message( + "--------- draco_add_executable ---------\n" + "exe_TEST=${exe_TEST}\n" + "exe_TEST_DEFINES_MAIN=${exe_TEST_DEFINES_MAIN}\n" + "exe_NAME=${exe_NAME}\n" + "exe_OUTPUT_NAME=${exe_OUTPUT_NAME}\n" + "exe_SOURCES=${exe_SOURCES}\n" + "exe_DEFINES=${exe_DEFINES}\n" + "exe_INCLUDES=${exe_INCLUDES}\n" + "exe_COMPILE_FLAGS=${exe_COMPILE_FLAGS}\n" + "exe_LINK_FLAGS=${exe_LINK_FLAGS}\n" + "exe_OBJLIB_DEPS=${exe_OBJLIB_DEPS}\n" + "exe_LIB_DEPS=${exe_LIB_DEPS}\n" + "------------------------------------------\n") endif() if(NOT (exe_NAME AND exe_SOURCES)) @@ -122,8 +129,8 @@ macro(draco_add_executable) endif() if(exe_COMPILE_FLAGS OR DRACO_CXX_FLAGS) - target_compile_options(${exe_NAME} - PRIVATE ${exe_COMPILE_FLAGS} ${DRACO_CXX_FLAGS}) + target_compile_options(${exe_NAME} PRIVATE ${exe_COMPILE_FLAGS} + ${DRACO_CXX_FLAGS}) endif() if(exe_LINK_FLAGS OR DRACO_EXE_LINKER_FLAGS) @@ -131,8 +138,8 @@ macro(draco_add_executable) list(APPEND exe_LINK_FLAGS "${DRACO_EXE_LINKER_FLAGS}") # LINK_FLAGS is managed as a string. draco_set_and_stringify(SOURCE "${exe_LINK_FLAGS}" DEST exe_LINK_FLAGS) - set_target_properties(${exe_NAME} - PROPERTIES LINK_FLAGS "${exe_LINK_FLAGS}") + set_target_properties(${exe_NAME} PROPERTIES LINK_FLAGS + "${exe_LINK_FLAGS}") else() target_link_options(${exe_NAME} PRIVATE ${exe_LINK_FLAGS} ${DRACO_EXE_LINKER_FLAGS}) @@ -227,27 +234,36 @@ macro(draco_add_library) unset(lib_TARGET_PROPERTIES) set(optional_args TEST) set(single_value_args NAME OUTPUT_NAME TYPE) - set(multi_value_args SOURCES DEFINES INCLUDES COMPILE_FLAGS LINK_FLAGS - OBJLIB_DEPS LIB_DEPS PUBLIC_INCLUDES TARGET_PROPERTIES) + set(multi_value_args + SOURCES + DEFINES + INCLUDES + COMPILE_FLAGS + LINK_FLAGS + OBJLIB_DEPS + LIB_DEPS + PUBLIC_INCLUDES + TARGET_PROPERTIES) cmake_parse_arguments(lib "${optional_args}" "${single_value_args}" "${multi_value_args}" ${ARGN}) if(DRACO_VERBOSE GREATER 1) - message("--------- draco_add_library ---------\n" - "lib_TEST=${lib_TEST}\n" - "lib_NAME=${lib_NAME}\n" - "lib_OUTPUT_NAME=${lib_OUTPUT_NAME}\n" - "lib_TYPE=${lib_TYPE}\n" - "lib_SOURCES=${lib_SOURCES}\n" - "lib_DEFINES=${lib_DEFINES}\n" - "lib_INCLUDES=${lib_INCLUDES}\n" - "lib_COMPILE_FLAGS=${lib_COMPILE_FLAGS}\n" - "lib_LINK_FLAGS=${lib_LINK_FLAGS}\n" - "lib_OBJLIB_DEPS=${lib_OBJLIB_DEPS}\n" - "lib_LIB_DEPS=${lib_LIB_DEPS}\n" - "lib_PUBLIC_INCLUDES=${lib_PUBLIC_INCLUDES}\n" - "---------------------------------------\n") + message( + "--------- draco_add_library ---------\n" + "lib_TEST=${lib_TEST}\n" + "lib_NAME=${lib_NAME}\n" + "lib_OUTPUT_NAME=${lib_OUTPUT_NAME}\n" + "lib_TYPE=${lib_TYPE}\n" + "lib_SOURCES=${lib_SOURCES}\n" + "lib_DEFINES=${lib_DEFINES}\n" + "lib_INCLUDES=${lib_INCLUDES}\n" + "lib_COMPILE_FLAGS=${lib_COMPILE_FLAGS}\n" + "lib_LINK_FLAGS=${lib_LINK_FLAGS}\n" + "lib_OBJLIB_DEPS=${lib_OBJLIB_DEPS}\n" + "lib_LIB_DEPS=${lib_LIB_DEPS}\n" + "lib_PUBLIC_INCLUDES=${lib_PUBLIC_INCLUDES}\n" + "---------------------------------------\n") endif() if(NOT (lib_NAME AND lib_TYPE)) @@ -282,8 +298,8 @@ macro(draco_add_library) if(lib_OUTPUT_NAME) if(NOT (BUILD_SHARED_LIBS AND MSVC)) - set_target_properties(${lib_NAME} - PROPERTIES OUTPUT_NAME ${lib_OUTPUT_NAME}) + set_target_properties(${lib_NAME} PROPERTIES OUTPUT_NAME + ${lib_OUTPUT_NAME}) endif() endif() @@ -300,8 +316,8 @@ macro(draco_add_library) endif() if(lib_COMPILE_FLAGS OR DRACO_CXX_FLAGS) - target_compile_options(${lib_NAME} - PRIVATE ${lib_COMPILE_FLAGS} ${DRACO_CXX_FLAGS}) + target_compile_options(${lib_NAME} PRIVATE ${lib_COMPILE_FLAGS} + ${DRACO_CXX_FLAGS}) endif() if(lib_LINK_FLAGS) @@ -343,9 +359,9 @@ macro(draco_add_library) if(NOT EMSCRIPTEN) # VERSION and SOVERSION as necessary if((lib_TYPE STREQUAL BUNDLE OR lib_TYPE STREQUAL SHARED) AND NOT MSVC) - set_target_properties(${lib_NAME} - PROPERTIES VERSION ${DRACO_SOVERSION} SOVERSION - ${DRACO_SOVERSION_MAJOR}) + set_target_properties( + ${lib_NAME} PROPERTIES VERSION ${DRACO_SOVERSION} + SOVERSION ${DRACO_SOVERSION_MAJOR}) endif() endif() diff --git a/cmake/draco_tests.cmake b/cmake/draco_tests.cmake index cde6f88..2d7f05e 100644 --- a/cmake/draco_tests.cmake +++ b/cmake/draco_tests.cmake @@ -1,16 +1,16 @@ # Copyright 2021 The Draco Authors # -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at +# Licensed under the Apache License, Version 2.0 (the "License"); you may not +# use this file except in compliance with the License. You may obtain a copy of +# the License at # -# http://www.apache.org/licenses/LICENSE-2.0 +# http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. +# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT +# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the +# License for the specific language governing permissions and limitations under +# the License. if(DRACO_CMAKE_DRACO_TESTS_CMAKE) return() @@ -26,73 +26,78 @@ set(draco_factory_test_sources list( APPEND - draco_test_sources - "${draco_src_root}/animation/keyframe_animation_encoding_test.cc" - "${draco_src_root}/animation/keyframe_animation_test.cc" - "${draco_src_root}/attributes/point_attribute_test.cc" - "${draco_src_root}/compression/attributes/point_d_vector_test.cc" - "${draco_src_root}/compression/attributes/prediction_schemes/prediction_scheme_normal_octahedron_canonicalized_transform_test.cc" - "${draco_src_root}/compression/attributes/prediction_schemes/prediction_scheme_normal_octahedron_transform_test.cc" - "${draco_src_root}/compression/attributes/sequential_integer_attribute_encoding_test.cc" - "${draco_src_root}/compression/bit_coders/rans_coding_test.cc" - "${draco_src_root}/compression/decode_test.cc" - "${draco_src_root}/compression/encode_test.cc" - "${draco_src_root}/compression/entropy/shannon_entropy_test.cc" - "${draco_src_root}/compression/entropy/symbol_coding_test.cc" - "${draco_src_root}/compression/mesh/mesh_edgebreaker_encoding_test.cc" - "${draco_src_root}/compression/mesh/mesh_encoder_test.cc" - "${draco_src_root}/compression/point_cloud/point_cloud_kd_tree_encoding_test.cc" - "${draco_src_root}/compression/point_cloud/point_cloud_sequential_encoding_test.cc" - "${draco_src_root}/core/buffer_bit_coding_test.cc" - "${draco_src_root}/core/draco_test_base.h" - "${draco_src_root}/core/draco_test_utils.cc" - "${draco_src_root}/core/draco_test_utils.h" - "${draco_src_root}/core/math_utils_test.cc" - "${draco_src_root}/core/quantization_utils_test.cc" - "${draco_src_root}/core/status.cc" - "${draco_src_root}/core/status_test.cc" - "${draco_src_root}/core/vector_d_test.cc" - "${draco_src_root}/io/file_reader_test_common.h" - "${draco_src_root}/io/file_utils_test.cc" - "${draco_src_root}/io/file_writer_utils_test.cc" - "${draco_src_root}/io/stdio_file_reader_test.cc" - "${draco_src_root}/io/stdio_file_writer_test.cc" - "${draco_src_root}/io/obj_decoder_test.cc" - "${draco_src_root}/io/obj_encoder_test.cc" - "${draco_src_root}/io/ply_decoder_test.cc" - "${draco_src_root}/io/ply_reader_test.cc" - "${draco_src_root}/io/stl_decoder_test.cc" - "${draco_src_root}/io/stl_encoder_test.cc" - "${draco_src_root}/io/point_cloud_io_test.cc" - "${draco_src_root}/mesh/mesh_are_equivalent_test.cc" - "${draco_src_root}/mesh/mesh_cleanup_test.cc" - "${draco_src_root}/mesh/triangle_soup_mesh_builder_test.cc" - "${draco_src_root}/metadata/metadata_encoder_test.cc" - "${draco_src_root}/metadata/metadata_test.cc" - "${draco_src_root}/point_cloud/point_cloud_builder_test.cc" - "${draco_src_root}/point_cloud/point_cloud_test.cc") + draco_test_sources + "${draco_src_root}/animation/keyframe_animation_encoding_test.cc" + "${draco_src_root}/animation/keyframe_animation_test.cc" + "${draco_src_root}/attributes/point_attribute_test.cc" + "${draco_src_root}/compression/attributes/point_d_vector_test.cc" + "${draco_src_root}/compression/attributes/prediction_schemes/prediction_scheme_normal_octahedron_canonicalized_transform_test.cc" + "${draco_src_root}/compression/attributes/prediction_schemes/prediction_scheme_normal_octahedron_transform_test.cc" + "${draco_src_root}/compression/attributes/sequential_integer_attribute_encoding_test.cc" + "${draco_src_root}/compression/bit_coders/rans_coding_test.cc" + "${draco_src_root}/compression/decode_test.cc" + "${draco_src_root}/compression/encode_test.cc" + "${draco_src_root}/compression/entropy/shannon_entropy_test.cc" + "${draco_src_root}/compression/entropy/symbol_coding_test.cc" + "${draco_src_root}/compression/mesh/mesh_edgebreaker_encoding_test.cc" + "${draco_src_root}/compression/mesh/mesh_encoder_test.cc" + "${draco_src_root}/compression/point_cloud/point_cloud_kd_tree_encoding_test.cc" + "${draco_src_root}/compression/point_cloud/point_cloud_sequential_encoding_test.cc" + "${draco_src_root}/core/buffer_bit_coding_test.cc" + "${draco_src_root}/core/draco_test_base.h" + "${draco_src_root}/core/draco_test_utils.cc" + "${draco_src_root}/core/draco_test_utils.h" + "${draco_src_root}/core/math_utils_test.cc" + "${draco_src_root}/core/quantization_utils_test.cc" + "${draco_src_root}/core/status.cc" + "${draco_src_root}/core/status_test.cc" + "${draco_src_root}/core/vector_d_test.cc" + "${draco_src_root}/io/file_reader_test_common.h" + "${draco_src_root}/io/file_utils_test.cc" + "${draco_src_root}/io/file_writer_utils_test.cc" + "${draco_src_root}/io/stdio_file_reader_test.cc" + "${draco_src_root}/io/stdio_file_writer_test.cc" + "${draco_src_root}/io/obj_decoder_test.cc" + "${draco_src_root}/io/obj_encoder_test.cc" + "${draco_src_root}/io/ply_decoder_test.cc" + "${draco_src_root}/io/ply_reader_test.cc" + "${draco_src_root}/io/stl_decoder_test.cc" + "${draco_src_root}/io/stl_encoder_test.cc" + "${draco_src_root}/io/point_cloud_io_test.cc" + "${draco_src_root}/mesh/mesh_are_equivalent_test.cc" + "${draco_src_root}/mesh/mesh_cleanup_test.cc" + "${draco_src_root}/mesh/triangle_soup_mesh_builder_test.cc" + "${draco_src_root}/metadata/metadata_encoder_test.cc" + "${draco_src_root}/metadata/metadata_test.cc" + "${draco_src_root}/point_cloud/point_cloud_builder_test.cc" + "${draco_src_root}/point_cloud/point_cloud_test.cc") if(DRACO_TRANSCODER_SUPPORTED) list( APPEND - draco_test_sources - "${draco_src_root}/animation/animation_test.cc" - "${draco_src_root}/io/gltf_decoder_test.cc" - "${draco_src_root}/io/gltf_encoder_test.cc" - "${draco_src_root}/io/gltf_utils_test.cc" - "${draco_src_root}/io/scene_io_test.cc" - "${draco_src_root}/io/texture_io_test.cc" - "${draco_src_root}/material/material_library_test.cc" - "${draco_src_root}/material/material_test.cc" - "${draco_src_root}/scene/instance_array_test.cc" - "${draco_src_root}/scene/light_test.cc" - "${draco_src_root}/scene/mesh_group_test.cc" - "${draco_src_root}/scene/scene_test.cc" - "${draco_src_root}/scene/scene_utils_test.cc" - "${draco_src_root}/scene/trs_matrix_test.cc" - "${draco_src_root}/texture/texture_library_test.cc" - "${draco_src_root}/texture/texture_map_test.cc" - "${draco_src_root}/texture/texture_transform_test.cc") + draco_test_sources + "${draco_src_root}/animation/animation_test.cc" + "${draco_src_root}/io/gltf_decoder_test.cc" + "${draco_src_root}/io/gltf_encoder_test.cc" + "${draco_src_root}/io/gltf_utils_test.cc" + "${draco_src_root}/io/gltf_test_helper.cc" + "${draco_src_root}/io/gltf_test_helper.h" + "${draco_src_root}/io/scene_io_test.cc" + "${draco_src_root}/io/texture_io_test.cc" + "${draco_src_root}/material/material_library_test.cc" + "${draco_src_root}/material/material_test.cc" + "${draco_src_root}/metadata/property_table_test.cc" + "${draco_src_root}/metadata/structural_metadata_test.cc" + "${draco_src_root}/scene/instance_array_test.cc" + "${draco_src_root}/scene/light_test.cc" + "${draco_src_root}/scene/mesh_group_test.cc" + "${draco_src_root}/scene/scene_test.cc" + "${draco_src_root}/scene/scene_are_equivalent_test.cc" + "${draco_src_root}/scene/scene_utils_test.cc" + "${draco_src_root}/scene/trs_matrix_test.cc" + "${draco_src_root}/texture/texture_library_test.cc" + "${draco_src_root}/texture/texture_map_test.cc" + "${draco_src_root}/texture/texture_transform_test.cc") endif() macro(draco_setup_test_targets) @@ -100,37 +105,26 @@ macro(draco_setup_test_targets) draco_setup_googletest() if(NOT (EXISTS ${draco_gtest_all} AND EXISTS ${draco_gtest_main})) - message(FATAL_ERROR - "googletest missing, run git submodule update --init") + message(FATAL_ERROR "googletest missing, run git submodule update --init") endif() list(APPEND draco_test_defines GTEST_HAS_PTHREAD=0) - draco_add_library(TEST - NAME - draco_gtest - TYPE - STATIC - SOURCES - ${draco_gtest_all} - DEFINES - ${draco_defines} - ${draco_test_defines} - INCLUDES - ${draco_test_include_paths}) + draco_add_library( + TEST + NAME draco_gtest + TYPE STATIC + SOURCES ${draco_gtest_all} + DEFINES ${draco_defines} ${draco_test_defines} + INCLUDES ${draco_test_include_paths}) - draco_add_library(TEST - NAME - draco_gtest_main - TYPE - STATIC - SOURCES - ${draco_gtest_main} - DEFINES - ${draco_defines} - ${draco_test_defines} - INCLUDES - ${draco_test_include_paths}) + draco_add_library( + TEST + NAME draco_gtest_main + TYPE STATIC + SOURCES ${draco_gtest_main} + DEFINES ${draco_defines} ${draco_test_defines} + INCLUDES ${draco_test_include_paths}) set(DRACO_TEST_DATA_DIR "${draco_root}/testdata") set(DRACO_TEST_TEMP_DIR "${draco_build}/draco_test_temp") @@ -141,32 +135,18 @@ macro(draco_setup_test_targets) "${draco_build}/testing/draco_test_config.h") # Create the test targets. - draco_add_executable(NAME - draco_tests - SOURCES - ${draco_test_sources} - DEFINES - ${draco_defines} - ${draco_test_defines} - INCLUDES - ${draco_test_include_paths} - LIB_DEPS - ${draco_dependency} - draco_gtest - draco_gtest_main) + draco_add_executable( + NAME draco_tests + SOURCES ${draco_test_sources} + DEFINES ${draco_defines} ${draco_test_defines} + INCLUDES ${draco_test_include_paths} + LIB_DEPS ${draco_dependency} draco_gtest draco_gtest_main) - draco_add_executable(NAME - draco_factory_tests - SOURCES - ${draco_factory_test_sources} - DEFINES - ${draco_defines} - ${draco_test_defines} - INCLUDES - ${draco_test_include_paths} - LIB_DEPS - ${draco_dependency} - draco_gtest - draco_gtest_main) + draco_add_executable( + NAME draco_factory_tests + SOURCES ${draco_factory_test_sources} + DEFINES ${draco_defines} ${draco_test_defines} + INCLUDES ${draco_test_include_paths} + LIB_DEPS ${draco_dependency} draco_gtest draco_gtest_main) endif() endmacro() diff --git a/cmake/draco_variables.cmake b/cmake/draco_variables.cmake index 59dd30a..d8f00f5 100644 --- a/cmake/draco_variables.cmake +++ b/cmake/draco_variables.cmake @@ -1,16 +1,16 @@ # Copyright 2021 The Draco Authors # -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at +# Licensed under the Apache License, Version 2.0 (the "License"); you may not +# use this file except in compliance with the License. You may obtain a copy of +# the License at # -# http://www.apache.org/licenses/LICENSE-2.0 +# http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. +# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT +# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the +# License for the specific language governing permissions and limitations under +# the License. if(DRACO_CMAKE_DRACO_VARIABLES_CMAKE_) return() @@ -28,8 +28,7 @@ macro(draco_variable_must_be_directory variable_name) if("${${variable_name}}" STREQUAL "") message( - FATAL_ERROR - "Empty variable ${variable_name} is required to build draco.") + FATAL_ERROR "Empty variable ${variable_name} is required to build draco.") endif() if(NOT IS_DIRECTORY "${${variable_name}}") @@ -56,13 +55,16 @@ endmacro() macro(draco_dump_cmake_flag_variables) unset(flag_variables) list(APPEND flag_variables "CMAKE_CXX_FLAGS_INIT" "CMAKE_CXX_FLAGS" - "CMAKE_EXE_LINKER_FLAGS_INIT" "CMAKE_EXE_LINKER_FLAGS") + "CMAKE_EXE_LINKER_FLAGS_INIT" "CMAKE_EXE_LINKER_FLAGS") if(CMAKE_BUILD_TYPE) - list(APPEND flag_variables "CMAKE_BUILD_TYPE" - "CMAKE_CXX_FLAGS_${CMAKE_BUILD_TYPE}_INIT" - "CMAKE_CXX_FLAGS_${CMAKE_BUILD_TYPE}" - "CMAKE_EXE_LINKER_FLAGS_${CMAKE_BUILD_TYPE}_INIT" - "CMAKE_EXE_LINKER_FLAGS_${CMAKE_BUILD_TYPE}") + list( + APPEND + flag_variables + "CMAKE_BUILD_TYPE" + "CMAKE_CXX_FLAGS_${CMAKE_BUILD_TYPE}_INIT" + "CMAKE_CXX_FLAGS_${CMAKE_BUILD_TYPE}" + "CMAKE_EXE_LINKER_FLAGS_${CMAKE_BUILD_TYPE}_INIT" + "CMAKE_EXE_LINKER_FLAGS_${CMAKE_BUILD_TYPE}") endif() foreach(flag_variable ${flag_variables}) message("${flag_variable}:${${flag_variable}}") diff --git a/cmake/toolchains/aarch64-linux-gnu.cmake b/cmake/toolchains/aarch64-linux-gnu.cmake index e972672..a55da20 100644 --- a/cmake/toolchains/aarch64-linux-gnu.cmake +++ b/cmake/toolchains/aarch64-linux-gnu.cmake @@ -1,16 +1,16 @@ # Copyright 2021 The Draco Authors # -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at +# Licensed under the Apache License, Version 2.0 (the "License"); you may not +# use this file except in compliance with the License. You may obtain a copy of +# the License at # -# http://www.apache.org/licenses/LICENSE-2.0 +# http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. +# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT +# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the +# License for the specific language governing permissions and limitations under +# the License. if(DRACO_CMAKE_TOOLCHAINS_AARCH64_LINUX_GNU_CMAKE_) return() diff --git a/cmake/toolchains/android-ndk-common.cmake b/cmake/toolchains/android-ndk-common.cmake index 9621b9f..80396af 100644 --- a/cmake/toolchains/android-ndk-common.cmake +++ b/cmake/toolchains/android-ndk-common.cmake @@ -1,16 +1,16 @@ # Copyright 2021 The Draco Authors # -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at +# Licensed under the Apache License, Version 2.0 (the "License"); you may not +# use this file except in compliance with the License. You may obtain a copy of +# the License at # -# http://www.apache.org/licenses/LICENSE-2.0 +# http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. +# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT +# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the +# License for the specific language governing permissions and limitations under +# the License. if(DRACO_CMAKE_TOOLCHAINS_ANDROID_NDK_COMMON_CMAKE_) return() diff --git a/cmake/toolchains/android.cmake b/cmake/toolchains/android.cmake index b149d8e..ba50576 100644 --- a/cmake/toolchains/android.cmake +++ b/cmake/toolchains/android.cmake @@ -1,16 +1,16 @@ # Copyright 2021 The Draco Authors # -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at +# Licensed under the Apache License, Version 2.0 (the "License"); you may not +# use this file except in compliance with the License. You may obtain a copy of +# the License at # -# http://www.apache.org/licenses/LICENSE-2.0 +# http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. +# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT +# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the +# License for the specific language governing permissions and limitations under +# the License. if(DRACO_CMAKE_TOOLCHAINS_ANDROID_CMAKE_) return() diff --git a/cmake/toolchains/arm-ios-common.cmake b/cmake/toolchains/arm-ios-common.cmake index 969c4e6..fab54bb 100644 --- a/cmake/toolchains/arm-ios-common.cmake +++ b/cmake/toolchains/arm-ios-common.cmake @@ -1,16 +1,16 @@ # Copyright 2021 The Draco Authors # -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at +# Licensed under the Apache License, Version 2.0 (the "License"); you may not +# use this file except in compliance with the License. You may obtain a copy of +# the License at # -# http://www.apache.org/licenses/LICENSE-2.0 +# http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. +# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT +# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the +# License for the specific language governing permissions and limitations under +# the License. if(DRACO_CMAKE_TOOLCHAINS_ARM_IOS_COMMON_CMAKE_) return() diff --git a/cmake/toolchains/arm-linux-gnueabihf.cmake b/cmake/toolchains/arm-linux-gnueabihf.cmake index 5d441d8..f1f83d6 100644 --- a/cmake/toolchains/arm-linux-gnueabihf.cmake +++ b/cmake/toolchains/arm-linux-gnueabihf.cmake @@ -1,16 +1,16 @@ # Copyright 2021 The Draco Authors # -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at +# Licensed under the Apache License, Version 2.0 (the "License"); you may not +# use this file except in compliance with the License. You may obtain a copy of +# the License at # -# http://www.apache.org/licenses/LICENSE-2.0 +# http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. +# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT +# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the +# License for the specific language governing permissions and limitations under +# the License. if(DRACO_CMAKE_TOOLCHAINS_ARM_LINUX_GNUEABIHF_CMAKE_) return() diff --git a/cmake/toolchains/arm64-android-ndk-libcpp.cmake b/cmake/toolchains/arm64-android-ndk-libcpp.cmake index 8bbcee6..80d452f 100644 --- a/cmake/toolchains/arm64-android-ndk-libcpp.cmake +++ b/cmake/toolchains/arm64-android-ndk-libcpp.cmake @@ -1,16 +1,16 @@ # Copyright 2021 The Draco Authors # -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at +# Licensed under the Apache License, Version 2.0 (the "License"); you may not +# use this file except in compliance with the License. You may obtain a copy of +# the License at # -# http://www.apache.org/licenses/LICENSE-2.0 +# http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. +# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT +# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the +# License for the specific language governing permissions and limitations under +# the License. if(DRACO_CMAKE_TOOLCHAINS_ARM64_ANDROID_NDK_LIBCPP_CMAKE_) return() diff --git a/cmake/toolchains/arm64-ios.cmake b/cmake/toolchains/arm64-ios.cmake index 4fc672f..5365d70 100644 --- a/cmake/toolchains/arm64-ios.cmake +++ b/cmake/toolchains/arm64-ios.cmake @@ -1,16 +1,16 @@ # Copyright 2021 The Draco Authors # -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at +# Licensed under the Apache License, Version 2.0 (the "License"); you may not +# use this file except in compliance with the License. You may obtain a copy of +# the License at # -# http://www.apache.org/licenses/LICENSE-2.0 +# http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. +# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT +# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the +# License for the specific language governing permissions and limitations under +# the License. if(DRACO_CMAKE_TOOLCHAINS_ARM64_IOS_CMAKE_) return() diff --git a/cmake/toolchains/arm64-linux-gcc.cmake b/cmake/toolchains/arm64-linux-gcc.cmake index 5652779..a332760 100644 --- a/cmake/toolchains/arm64-linux-gcc.cmake +++ b/cmake/toolchains/arm64-linux-gcc.cmake @@ -1,16 +1,16 @@ # Copyright 2021 The Draco Authors # -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at +# Licensed under the Apache License, Version 2.0 (the "License"); you may not +# use this file except in compliance with the License. You may obtain a copy of +# the License at # -# http://www.apache.org/licenses/LICENSE-2.0 +# http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. +# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT +# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the +# License for the specific language governing permissions and limitations under +# the License. if(DRACO_CMAKE_TOOLCHAINS_ARM64_LINUX_GCC_CMAKE_) return() diff --git a/cmake/toolchains/armv7-android-ndk-libcpp.cmake b/cmake/toolchains/armv7-android-ndk-libcpp.cmake index b19c850..bedcc0c 100644 --- a/cmake/toolchains/armv7-android-ndk-libcpp.cmake +++ b/cmake/toolchains/armv7-android-ndk-libcpp.cmake @@ -1,16 +1,16 @@ # Copyright 2021 The Draco Authors # -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at +# Licensed under the Apache License, Version 2.0 (the "License"); you may not +# use this file except in compliance with the License. You may obtain a copy of +# the License at # -# http://www.apache.org/licenses/LICENSE-2.0 +# http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. +# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT +# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the +# License for the specific language governing permissions and limitations under +# the License. if(DRACO_CMAKE_TOOLCHAINS_ARMV7_ANDROID_NDK_LIBCPP_CMAKE_) return() diff --git a/cmake/toolchains/armv7-ios.cmake b/cmake/toolchains/armv7-ios.cmake index 8e444d8..43e208b 100644 --- a/cmake/toolchains/armv7-ios.cmake +++ b/cmake/toolchains/armv7-ios.cmake @@ -1,16 +1,16 @@ # Copyright 2021 The Draco Authors # -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at +# Licensed under the Apache License, Version 2.0 (the "License"); you may not +# use this file except in compliance with the License. You may obtain a copy of +# the License at # -# http://www.apache.org/licenses/LICENSE-2.0 +# http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. +# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT +# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the +# License for the specific language governing permissions and limitations under +# the License. if(DRACO_CMAKE_TOOLCHAINS_ARMV7_IOS_CMAKE_) return() diff --git a/cmake/toolchains/armv7-linux-gcc.cmake b/cmake/toolchains/armv7-linux-gcc.cmake index 899560e..730a87f 100644 --- a/cmake/toolchains/armv7-linux-gcc.cmake +++ b/cmake/toolchains/armv7-linux-gcc.cmake @@ -1,16 +1,16 @@ # Copyright 2021 The Draco Authors # -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at +# Licensed under the Apache License, Version 2.0 (the "License"); you may not +# use this file except in compliance with the License. You may obtain a copy of +# the License at # -# http://www.apache.org/licenses/LICENSE-2.0 +# http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. +# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT +# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the +# License for the specific language governing permissions and limitations under +# the License. if(DRACO_CMAKE_TOOLCHAINS_ARMV7_LINUX_GCC_CMAKE_) return() diff --git a/cmake/toolchains/armv7s-ios.cmake b/cmake/toolchains/armv7s-ios.cmake index a0f6d75..4727561 100644 --- a/cmake/toolchains/armv7s-ios.cmake +++ b/cmake/toolchains/armv7s-ios.cmake @@ -1,16 +1,16 @@ # Copyright 2021 The Draco Authors # -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at +# Licensed under the Apache License, Version 2.0 (the "License"); you may not +# use this file except in compliance with the License. You may obtain a copy of +# the License at # -# http://www.apache.org/licenses/LICENSE-2.0 +# http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. +# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT +# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the +# License for the specific language governing permissions and limitations under +# the License. if(DRACO_CMAKE_TOOLCHAINS_ARMV7S_IOS_CMAKE_) return() diff --git a/cmake/toolchains/i386-ios.cmake b/cmake/toolchains/i386-ios.cmake index 92f899d..38989d2 100644 --- a/cmake/toolchains/i386-ios.cmake +++ b/cmake/toolchains/i386-ios.cmake @@ -1,16 +1,16 @@ # Copyright 2021 The Draco Authors # -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at +# Licensed under the Apache License, Version 2.0 (the "License"); you may not +# use this file except in compliance with the License. You may obtain a copy of +# the License at # -# http://www.apache.org/licenses/LICENSE-2.0 +# http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. +# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT +# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the +# License for the specific language governing permissions and limitations under +# the License. if(DRACO_CMAKE_TOOLCHAINS_i386_IOS_CMAKE_) return() diff --git a/cmake/toolchains/x86-android-ndk-libcpp.cmake b/cmake/toolchains/x86-android-ndk-libcpp.cmake index 84a9786..6f63f2c 100644 --- a/cmake/toolchains/x86-android-ndk-libcpp.cmake +++ b/cmake/toolchains/x86-android-ndk-libcpp.cmake @@ -1,16 +1,16 @@ # Copyright 2021 The Draco Authors # -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at +# Licensed under the Apache License, Version 2.0 (the "License"); you may not +# use this file except in compliance with the License. You may obtain a copy of +# the License at # -# http://www.apache.org/licenses/LICENSE-2.0 +# http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. +# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT +# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the +# License for the specific language governing permissions and limitations under +# the License. if(DRACO_CMAKE_TOOLCHAINS_X86_ANDROID_NDK_LIBCPP_CMAKE_) return() diff --git a/cmake/toolchains/x86_64-android-ndk-libcpp.cmake b/cmake/toolchains/x86_64-android-ndk-libcpp.cmake index e9aa8d0..7a630f4 100644 --- a/cmake/toolchains/x86_64-android-ndk-libcpp.cmake +++ b/cmake/toolchains/x86_64-android-ndk-libcpp.cmake @@ -1,16 +1,16 @@ # Copyright 2021 The Draco Authors # -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at +# Licensed under the Apache License, Version 2.0 (the "License"); you may not +# use this file except in compliance with the License. You may obtain a copy of +# the License at # -# http://www.apache.org/licenses/LICENSE-2.0 +# http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. +# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT +# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the +# License for the specific language governing permissions and limitations under +# the License. if(DRACO_CMAKE_TOOLCHAINS_X86_64_ANDROID_NDK_LIBCPP_CMAKE_) return() diff --git a/cmake/toolchains/x86_64-ios.cmake b/cmake/toolchains/x86_64-ios.cmake index 5a0b2da..6946ce4 100644 --- a/cmake/toolchains/x86_64-ios.cmake +++ b/cmake/toolchains/x86_64-ios.cmake @@ -1,16 +1,16 @@ # Copyright 2021 The Draco Authors # -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at +# Licensed under the Apache License, Version 2.0 (the "License"); you may not +# use this file except in compliance with the License. You may obtain a copy of +# the License at # -# http://www.apache.org/licenses/LICENSE-2.0 +# http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. +# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT +# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the +# License for the specific language governing permissions and limitations under +# the License. if(DRACO_CMAKE_TOOLCHAINS_X86_64_IOS_CMAKE_) return() diff --git a/javascript/draco_decoder.js b/javascript/draco_decoder.js index f623a14..b9961e8 100644 --- a/javascript/draco_decoder.js +++ b/javascript/draco_decoder.js @@ -6,23 +6,23 @@ var DracoDecoderModule = (() => { function(DracoDecoderModule) { DracoDecoderModule = DracoDecoderModule || {}; -var Module=typeof DracoDecoderModule!="undefined"?DracoDecoderModule:{};var readyPromiseResolve,readyPromiseReject;Module["ready"]=new Promise(function(resolve,reject){readyPromiseResolve=resolve;readyPromiseReject=reject});var isRuntimeInitialized=false;var isModuleParsed=false;Module["onRuntimeInitialized"]=function(){isRuntimeInitialized=true;if(isModuleParsed){if(typeof Module["onModuleLoaded"]==="function"){Module["onModuleLoaded"](Module)}}};Module["onModuleParsed"]=function(){isModuleParsed=true;if(isRuntimeInitialized){if(typeof Module["onModuleLoaded"]==="function"){Module["onModuleLoaded"](Module)}}};function isVersionSupported(versionString){if(typeof versionString!=="string")return false;const version=versionString.split(".");if(version.length<2||version.length>3)return false;if(version[0]==1&&version[1]>=0&&version[1]<=5)return true;if(version[0]!=0||version[1]>10)return false;return true}Module["isVersionSupported"]=isVersionSupported;var moduleOverrides=Object.assign({},Module);var arguments_=[];var thisProgram="./this.program";var quit_=(status,toThrow)=>{throw toThrow};var ENVIRONMENT_IS_WEB=typeof window=="object";var ENVIRONMENT_IS_WORKER=typeof importScripts=="function";var ENVIRONMENT_IS_NODE=typeof process=="object"&&typeof process.versions=="object"&&typeof process.versions.node=="string";var scriptDirectory="";function locateFile(path){if(Module["locateFile"]){return Module["locateFile"](path,scriptDirectory)}return scriptDirectory+path}var read_,readAsync,readBinary,setWindowTitle;function logExceptionOnExit(e){if(e instanceof ExitStatus)return;let toLog=e;err("exiting due to exception: "+toLog)}var fs;var nodePath;var requireNodeFS;if(ENVIRONMENT_IS_NODE){if(ENVIRONMENT_IS_WORKER){scriptDirectory=require("path").dirname(scriptDirectory)+"/"}else{scriptDirectory=__dirname+"/"}requireNodeFS=()=>{if(!nodePath){fs=require("fs");nodePath=require("path")}};read_=function shell_read(filename,binary){var ret=tryParseAsDataURI(filename);if(ret){return binary?ret:ret.toString()}requireNodeFS();filename=nodePath["normalize"](filename);return fs.readFileSync(filename,binary?undefined:"utf8")};readBinary=filename=>{var ret=read_(filename,true);if(!ret.buffer){ret=new Uint8Array(ret)}return ret};readAsync=(filename,onload,onerror)=>{var ret=tryParseAsDataURI(filename);if(ret){onload(ret)}requireNodeFS();filename=nodePath["normalize"](filename);fs.readFile(filename,function(err,data){if(err)onerror(err);else onload(data.buffer)})};if(process["argv"].length>1){thisProgram=process["argv"][1].replace(/\\/g,"/")}arguments_=process["argv"].slice(2);quit_=(status,toThrow)=>{if(keepRuntimeAlive()){process["exitCode"]=status;throw toThrow}logExceptionOnExit(toThrow);process["exit"](status)};Module["inspect"]=function(){return"[Emscripten Module object]"}}else if(ENVIRONMENT_IS_WEB||ENVIRONMENT_IS_WORKER){if(ENVIRONMENT_IS_WORKER){scriptDirectory=self.location.href}else if(typeof document!="undefined"&&document.currentScript){scriptDirectory=document.currentScript.src}if(_scriptDir){scriptDirectory=_scriptDir}if(scriptDirectory.indexOf("blob:")!==0){scriptDirectory=scriptDirectory.substr(0,scriptDirectory.replace(/[?#].*/,"").lastIndexOf("/")+1)}else{scriptDirectory=""}{read_=url=>{try{var xhr=new XMLHttpRequest;xhr.open("GET",url,false);xhr.send(null);return xhr.responseText}catch(err){var data=tryParseAsDataURI(url);if(data){return intArrayToString(data)}throw err}};if(ENVIRONMENT_IS_WORKER){readBinary=url=>{try{var xhr=new XMLHttpRequest;xhr.open("GET",url,false);xhr.responseType="arraybuffer";xhr.send(null);return new Uint8Array(xhr.response)}catch(err){var data=tryParseAsDataURI(url);if(data){return data}throw err}}}readAsync=(url,onload,onerror)=>{var xhr=new XMLHttpRequest;xhr.open("GET",url,true);xhr.responseType="arraybuffer";xhr.onload=()=>{if(xhr.status==200||xhr.status==0&&xhr.response){onload(xhr.response);return}var data=tryParseAsDataURI(url);if(data){onload(data.buffer);return}onerror()};xhr.onerror=onerror;xhr.send(null)}}setWindowTitle=title=>document.title=title}else{}var out=Module["print"]||console.log.bind(console);var err=Module["printErr"]||console.warn.bind(console);Object.assign(Module,moduleOverrides);moduleOverrides=null;if(Module["arguments"])arguments_=Module["arguments"];if(Module["thisProgram"])thisProgram=Module["thisProgram"];if(Module["quit"])quit_=Module["quit"];var wasmBinary;if(Module["wasmBinary"])wasmBinary=Module["wasmBinary"];var noExitRuntime=Module["noExitRuntime"]||true;var WebAssembly={Memory:function(opts){this.buffer=new ArrayBuffer(opts["initial"]*65536)},Module:function(binary){},Instance:function(module,info){this.exports=( +var Module=typeof DracoDecoderModule!="undefined"?DracoDecoderModule:{};var readyPromiseResolve,readyPromiseReject;Module["ready"]=new Promise(function(resolve,reject){readyPromiseResolve=resolve;readyPromiseReject=reject});var isRuntimeInitialized=false;var isModuleParsed=false;Module["onRuntimeInitialized"]=function(){isRuntimeInitialized=true;if(isModuleParsed){if(typeof Module["onModuleLoaded"]==="function"){Module["onModuleLoaded"](Module)}}};Module["onModuleParsed"]=function(){isModuleParsed=true;if(isRuntimeInitialized){if(typeof Module["onModuleLoaded"]==="function"){Module["onModuleLoaded"](Module)}}};function isVersionSupported(versionString){if(typeof versionString!=="string")return false;const version=versionString.split(".");if(version.length<2||version.length>3)return false;if(version[0]==1&&version[1]>=0&&version[1]<=5)return true;if(version[0]!=0||version[1]>10)return false;return true}Module["isVersionSupported"]=isVersionSupported;var moduleOverrides=Object.assign({},Module);var arguments_=[];var thisProgram="./this.program";var quit_=(status,toThrow)=>{throw toThrow};var ENVIRONMENT_IS_WEB=typeof window=="object";var ENVIRONMENT_IS_WORKER=typeof importScripts=="function";var ENVIRONMENT_IS_NODE=typeof process=="object"&&typeof process.versions=="object"&&typeof process.versions.node=="string";var scriptDirectory="";function locateFile(path){if(Module["locateFile"]){return Module["locateFile"](path,scriptDirectory)}return scriptDirectory+path}var read_,readAsync,readBinary,setWindowTitle;function logExceptionOnExit(e){if(e instanceof ExitStatus)return;let toLog=e;err("exiting due to exception: "+toLog)}if(ENVIRONMENT_IS_NODE){if(ENVIRONMENT_IS_WORKER){scriptDirectory=require("path").dirname(scriptDirectory)+"/"}else{scriptDirectory=__dirname+"/"}var fs,nodePath;if(typeof require==="function"){fs=require("fs");nodePath=require("path")}read_=(filename,binary)=>{var ret=tryParseAsDataURI(filename);if(ret){return binary?ret:ret.toString()}filename=nodePath["normalize"](filename);return fs.readFileSync(filename,binary?undefined:"utf8")};readBinary=filename=>{var ret=read_(filename,true);if(!ret.buffer){ret=new Uint8Array(ret)}return ret};readAsync=(filename,onload,onerror)=>{var ret=tryParseAsDataURI(filename);if(ret){onload(ret)}filename=nodePath["normalize"](filename);fs.readFile(filename,function(err,data){if(err)onerror(err);else onload(data.buffer)})};if(process["argv"].length>1){thisProgram=process["argv"][1].replace(/\\/g,"/")}arguments_=process["argv"].slice(2);quit_=(status,toThrow)=>{if(keepRuntimeAlive()){process["exitCode"]=status;throw toThrow}logExceptionOnExit(toThrow);process["exit"](status)};Module["inspect"]=function(){return"[Emscripten Module object]"}}else if(ENVIRONMENT_IS_WEB||ENVIRONMENT_IS_WORKER){if(ENVIRONMENT_IS_WORKER){scriptDirectory=self.location.href}else if(typeof document!="undefined"&&document.currentScript){scriptDirectory=document.currentScript.src}if(_scriptDir){scriptDirectory=_scriptDir}if(scriptDirectory.indexOf("blob:")!==0){scriptDirectory=scriptDirectory.substr(0,scriptDirectory.replace(/[?#].*/,"").lastIndexOf("/")+1)}else{scriptDirectory=""}{read_=url=>{try{var xhr=new XMLHttpRequest;xhr.open("GET",url,false);xhr.send(null);return xhr.responseText}catch(err){var data=tryParseAsDataURI(url);if(data){return intArrayToString(data)}throw err}};if(ENVIRONMENT_IS_WORKER){readBinary=url=>{try{var xhr=new XMLHttpRequest;xhr.open("GET",url,false);xhr.responseType="arraybuffer";xhr.send(null);return new Uint8Array(xhr.response)}catch(err){var data=tryParseAsDataURI(url);if(data){return data}throw err}}}readAsync=(url,onload,onerror)=>{var xhr=new XMLHttpRequest;xhr.open("GET",url,true);xhr.responseType="arraybuffer";xhr.onload=()=>{if(xhr.status==200||xhr.status==0&&xhr.response){onload(xhr.response);return}var data=tryParseAsDataURI(url);if(data){onload(data.buffer);return}onerror()};xhr.onerror=onerror;xhr.send(null)}}setWindowTitle=title=>document.title=title}else{}var out=Module["print"]||console.log.bind(console);var err=Module["printErr"]||console.warn.bind(console);Object.assign(Module,moduleOverrides);moduleOverrides=null;if(Module["arguments"])arguments_=Module["arguments"];if(Module["thisProgram"])thisProgram=Module["thisProgram"];if(Module["quit"])quit_=Module["quit"];var wasmBinary;if(Module["wasmBinary"])wasmBinary=Module["wasmBinary"];var noExitRuntime=Module["noExitRuntime"]||true;var WebAssembly={Memory:function(opts){this.buffer=new ArrayBuffer(opts["initial"]*65536)},Module:function(binary){},Instance:function(module,info){this.exports=( // EMSCRIPTEN_START_ASM -function instantiate(qa){function c(d){d.set=function(a,b){this[a]=b};d.get=function(a){return this[a]};return d}var e;var f=new Uint8Array(123);for(var a=25;a>=0;--a){f[48+a]=52+a;f[65+a]=a;f[97+a]=26+a}f[43]=62;f[47]=63;function l(m,n,o){var g,h,a=0,i=n,j=o.length,k=n+(j*3>>2)-(o[j-2]=="=")-(o[j-1]=="=");for(;a>4;if(i>2;if(i=0;--a){f[48+a]=52+a;f[65+a]=a;f[97+a]=26+a}f[43]=62;f[47]=63;function l(m,n,o){var g,h,a=0,i=n,j=o.length,k=n+(j*3>>2)-(o[j-2]=="=")-(o[j-1]=="=");for(;a>4;if(i>2;if(i>2];d=F[b+20>>2];f=F[b+16>>2];e=f+4|0;d=e>>>0<4?d+1|0:d;a:{b:{c:{if(e>>>0>I[b+8>>2]&(d|0)>=(g|0)|(d|0)>(g|0)){break c}d=f+F[b>>2]|0;F[a>>2]=G[d|0]|G[d+1|0]<<8|(G[d+2|0]<<16|G[d+3|0]<<24);d=F[b+20>>2];g=d;e=F[b+16>>2];f=e+4|0;d=f>>>0<4?d+1|0:d;l=f;F[b+16>>2]=f;F[b+20>>2]=d;if(I[a>>2]>31){break c}f=F[b+12>>2];d=g;g=e+8|0;d=g>>>0<8?d+1|0:d;if(g>>>0>I[b+8>>2]&(d|0)>=(f|0)|(d|0)>(f|0)){break c}d=l+F[b>>2]|0;F[a+4>>2]=G[d|0]|G[d+1|0]<<8|(G[d+2|0]<<16|G[d+3|0]<<24);d=F[b+20>>2];g=d;e=F[b+16>>2];f=e+4|0;d=f>>>0<4?d+1|0:d;l=f;F[b+16>>2]=f;F[b+20>>2]=d;f=F[b+12>>2];d=g;g=e+8|0;d=g>>>0<8?d+1|0:d;if(g>>>0>I[b+8>>2]&(d|0)>=(f|0)|(d|0)>(f|0)){break c}d=l+F[b>>2]|0;F[a+12>>2]=G[d|0]|G[d+1|0]<<8|(G[d+2|0]<<16|G[d+3|0]<<24);d=F[b+20>>2];g=d;e=F[b+16>>2];f=e+4|0;d=f>>>0<4?d+1|0:d;n=f;F[b+16>>2]=f;F[b+20>>2]=d;d=F[a+20>>2];l=F[a+12>>2];if((l|0)!=(d|0)?d:0){break c}f=F[b+12>>2];d=g;g=e+8|0;d=g>>>0<8?d+1|0:d;if(g>>>0>I[b+8>>2]&(d|0)>=(f|0)|(d|0)>(f|0)){break c}d=n+F[b>>2]|0;g=G[d|0]|G[d+1|0]<<8|(G[d+2|0]<<16|G[d+3|0]<<24);F[a+16>>2]=g;d=F[b+20>>2];f=F[b+16>>2]+4|0;d=f>>>0<4?d+1|0:d;F[b+16>>2]=f;F[b+20>>2]=d;if(g>>>0>=7){F[w>>2]=g;Pd(1713,w);break c}F[w+664>>2]=c;d:{if(!l){break d}e:{e=F[c>>2];if(l>>>0<=(F[c+8>>2]-e|0)/12>>>0){break e}if(l>>>0<357913942){f=F[c+4>>2];g=L(l,12);d=sa(g);l=d+g|0;g=d+L((f-e|0)/12|0,12)|0;d=g;if((e|0)!=(f|0)){d=g;while(1){d=d-12|0;f=f-12|0;F[d>>2]=F[f>>2];F[d+4>>2]=F[f+4>>2];F[d+8>>2]=F[f+8>>2];if((e|0)!=(f|0)){continue}break}}F[c+8>>2]=l;F[c+4>>2]=g;F[c>>2]=d;if(!e){break e}ra(e);break e}break b}f:{switch(F[a+16>>2]){case 0:j=zb(w+8|0,3);v=w+664|0;h=F[b+12>>2];d=F[b+20>>2];g=F[b+16>>2];f=g+4|0;d=f>>>0<4?d+1|0:d;g:{if(f>>>0>I[b+8>>2]&(d|0)>=(h|0)|(d|0)>(h|0)){break g}d=g+F[b>>2]|0;F[j>>2]=G[d|0]|G[d+1|0]<<8|(G[d+2|0]<<16|G[d+3|0]<<24);d=F[b+20>>2];h=d;f=F[b+16>>2];g=f+4|0;d=g>>>0<4?d+1|0:d;e=g;F[b+16>>2]=e;F[b+20>>2]=d;if(I[j>>2]>32){break g}g=F[b+12>>2];d=h;h=f+8|0;d=h>>>0<8?d+1|0:d;if(h>>>0>I[b+8>>2]&(d|0)>=(g|0)|(d|0)>(g|0)){break g}d=e+F[b>>2]|0;h=G[d|0]|G[d+1|0]<<8|(G[d+2|0]<<16|G[d+3|0]<<24);F[j+4>>2]=h;d=F[b+20>>2];g=F[b+16>>2]+4|0;d=g>>>0<4?d+1|0:d;F[b+16>>2]=g;F[b+20>>2]=d;if(!h){break g}F[j+8>>2]=0;if(!xa(j+16|0,b)){break g}if(!xa(j+36|0,b)){break g}if(!xa(j+56|0,b)){break g}if(!xa(j+76|0,b)){break g}q=F[j+4>>2];g=0;e=ea-32|0;ea=e;f=F[j+12>>2];F[e+16>>2]=0;F[e+8>>2]=0;F[e+12>>2]=0;if(f){if(f>>>0>=1073741824){break b}b=f<<2;i=sa(b);F[e+8>>2]=i;g=b+i|0;F[e+16>>2]=g;ua(i,0,b);F[e+12>>2]=g}b=F[j+120>>2];d=F[b>>2];if(d){F[b+4>>2]=d;ra(d);F[b+8>>2]=0;F[b>>2]=0;F[b+4>>2]=0;f=F[j+12>>2];i=F[e+8>>2];g=F[e+12>>2]}F[b+4>>2]=g;F[b>>2]=i;F[b+8>>2]=F[e+16>>2];i=0;F[e+16>>2]=0;F[e+8>>2]=0;F[e+12>>2]=0;g=0;h:{if(f){if(f>>>0>=1073741824){break b}b=f<<2;g=sa(b);F[e+8>>2]=g;i=b+g|0;F[e+16>>2]=i;ua(g,0,b);F[e+12>>2]=i}b=F[j+132>>2];d=F[b>>2];if(d){F[b+4>>2]=d;ra(d);F[b+8>>2]=0;F[b>>2]=0;F[b+4>>2]=0;i=F[e+12>>2];g=F[e+8>>2]}F[b+4>>2]=i;F[b>>2]=g;F[b+8>>2]=F[e+16>>2];F[e+24>>2]=0;F[e+28>>2]=0;F[e+16>>2]=0;F[e+20>>2]=0;F[e+8>>2]=0;F[e+12>>2]=0;ya(e+8|0);b=F[e+24>>2]+F[e+28>>2]|0;d=(b>>>0)/341|0;b=F[F[e+12>>2]+(d<<2)>>2]+L(b-L(d,341)|0,12)|0;F[b+4>>2]=0;F[b+8>>2]=0;F[b>>2]=q;f=F[e+28>>2]+1|0;F[e+28>>2]=f;i:{if(!f){break i}y=j+96|0;while(1){b=F[e+12>>2];h=F[e+24>>2];i=f-1|0;d=h+i|0;g=(d>>>0)/341|0;d=F[b+(g<<2)>>2]+L(d-L(g,341)|0,12)|0;n=F[d+8>>2];g=F[d+4>>2];k=F[d>>2];F[e+28>>2]=i;d=F[e+16>>2];if((((b|0)==(d|0)?0:L(d-b>>2,341)-1|0)-(f+h|0)|0)+1>>>0>=682){ra(F[d-4>>2]);F[e+16>>2]=F[e+16>>2]-4}h=0;if(k>>>0>q>>>0){break i}b=F[j+12>>2];f=(g|0)==(b-1|0)?0:g+1|0;if(f>>>0>=b>>>0){break i}i=L(n,12);o=i+F[j+132>>2]|0;l=i+F[j+120>>2]|0;d=F[j>>2];m=f<<2;g=F[m+F[o>>2]>>2];j:{k:{if((d|0)==(g|0)){if(!k){break k}while(1){b=F[l>>2];o=F[b+8>>2];m=F[b+4>>2];p=F[b>>2];d=F[v>>2];f=F[d+4>>2];g=F[d+8>>2];l:{if(f>>>0>>0){F[f+8>>2]=o;F[f+4>>2]=m;F[f>>2]=p;F[d+4>>2]=f+12;break l}i=F[d>>2];t=(f-i|0)/12|0;b=t+1|0;if(b>>>0>=357913942){break b}g=(g-i|0)/12|0;n=g<<1;n=g>>>0<178956970?b>>>0>>0?n:b:357913941;if(n){if(n>>>0>=357913942){break a}b=sa(L(n,12))}else{b=0}g=b+L(t,12)|0;F[g+8>>2]=o;F[g+4>>2]=m;F[g>>2]=p;o=g+12|0;if((f|0)!=(i|0)){while(1){g=g-12|0;f=f-12|0;F[g>>2]=F[f>>2];F[g+4>>2]=F[f+4>>2];F[g+8>>2]=F[f+8>>2];if((f|0)!=(i|0)){continue}break}}F[d+8>>2]=b+L(n,12);F[d+4>>2]=o;F[d>>2]=g;if(!i){break l}ra(i)}F[j+8>>2]=F[j+8>>2]+1;h=h+1|0;if((k|0)!=(h|0)){continue}break}break k}m:{n:{o:{p:{if(k>>>0<=2){b=F[j+108>>2];F[b>>2]=f;g=1;i=F[j+12>>2];if(i>>>0>1){break p}break m}if(I[j+8>>2]>I[j+4>>2]){break i}b=F[j+120>>2];p=n+1|0;o=L(p,12);h=b+o|0;if((h|0)!=(l|0)){Ca(h,F[l>>2],F[l+4>>2]);b=F[j+120>>2]}b=m+F[b+o>>2]|0;F[b>>2]=F[b>>2]+(1<>2];g=32-d|0;q:{if((b|0)<=(g|0)){h=F[j+28>>2];if((h|0)==F[j+20>>2]){break o}g=F[h>>2];l=b+d|0;F[j+32>>2]=l;g=g<>>32-b|0;if((l|0)!=32){break q}F[j+32>>2]=0;F[j+28>>2]=h+4;break q}h=F[j+28>>2];l=h+4|0;if((l|0)==F[j+20>>2]){break o}t=F[h>>2];F[j+28>>2]=l;g=b-g|0;F[j+32>>2]=g;g=F[h+4>>2]>>>32-g|t<>>32-b}d=k>>>1|0;if(g>>>0>d>>>0){break i}break n}while(1){f=(i-1|0)==(f|0)?0:f+1|0;F[b+(g<<2)>>2]=f;g=g+1|0;i=F[j+12>>2];if(g>>>0>>0){continue}break}break m}d=k>>>1|0;g=0}r:{s:{b=d-g|0;h=k-b|0;t:{if((h|0)==(b|0)){d=b;break t}d=F[j+88>>2];if((d|0)==F[j+80>>2]){break s}g=F[d>>2];k=F[j+92>>2];l=k+1|0;F[j+92>>2]=l;g=g&-2147483648>>>k;u:{if((l|0)==32){F[j+92>>2]=0;F[j+88>>2]=d+4;if(g){break u}break s}if(!g){break s}}d=h}h=b;break r}d=b}b=F[j+132>>2];g=b+i|0;i=F[g>>2];k=i+m|0;F[k>>2]=F[k>>2]+1;Ca(b+o|0,i,F[g+4>>2]);if(h){i=F[e+28>>2]+F[e+24>>2]|0;b=F[e+16>>2];g=F[e+12>>2];if((i|0)==(((b|0)==(g|0)?0:L(b-g>>2,341)-1|0)|0)){ya(e+8|0);i=F[e+24>>2]+F[e+28>>2]|0;g=F[e+12>>2]}b=(i>>>0)/341|0;b=F[g+(b<<2)>>2]+L(i-L(b,341)|0,12)|0;F[b+8>>2]=n;F[b+4>>2]=f;F[b>>2]=h;F[e+28>>2]=F[e+28>>2]+1}if(!d){break k}i=F[e+28>>2]+F[e+24>>2]|0;b=F[e+16>>2];g=F[e+12>>2];if((i|0)==(((b|0)==(g|0)?0:L(b-g>>2,341)-1|0)|0)){ya(e+8|0);i=F[e+24>>2]+F[e+28>>2]|0;g=F[e+12>>2]}b=(i>>>0)/341|0;b=F[g+(b<<2)>>2]+L(i-L(b,341)|0,12)|0;F[b+8>>2]=p;F[b+4>>2]=f;F[b>>2]=d;f=F[e+28>>2]+1|0;F[e+28>>2]=f;break j}i=0;if(!k){break k}while(1){if(F[j+12>>2]){t=F[l>>2];g=F[j+40>>2];s=F[o>>2];h=F[j+96>>2];z=F[j+108>>2];f=0;while(1){n=z+(f<<2)|0;F[h+(F[n>>2]<<2)>>2]=0;d=F[j>>2];b=F[n>>2]<<2;m=F[b+s>>2];v:{if((d|0)==(m|0)){break v}b=b+h|0;d=d-m|0;m=F[j+52>>2];u=32-m|0;if((d|0)<=(u|0)){p=F[j+48>>2];if((p|0)==(g|0)){F[b>>2]=0;break v}F[b>>2]=F[p>>2]<>>32-d;b=d+F[j+52>>2]|0;F[j+52>>2]=b;if((b|0)!=32){break v}F[j+52>>2]=0;F[j+48>>2]=p+4;break v}p=F[j+48>>2];r=p+4|0;if((r|0)==(g|0)){F[b>>2]=0;break v}x=F[p>>2];F[j+48>>2]=r;u=d-u|0;F[j+52>>2]=u;F[b>>2]=F[p+4>>2]>>>32-u|x<>>32-d}b=F[n>>2]<<2;d=b+h|0;F[d>>2]=F[d>>2]|F[b+t>>2];f=f+1|0;if(f>>>0>2]){continue}break}}ob(v,y);F[j+8>>2]=F[j+8>>2]+1;i=i+1|0;if((k|0)!=(i|0)){continue}break}}f=F[e+28>>2]}if(f){continue}break}}F[e+28>>2]=0;b=F[e+16>>2];f=F[e+12>>2];g=b-f|0;if(g>>>0>=9){while(1){ra(F[f>>2]);f=F[e+12>>2]+4|0;F[e+12>>2]=f;b=F[e+16>>2];g=b-f|0;if(g>>>0>8){continue}break}}i=170;w:{switch((g>>>2|0)-1|0){case 1:i=341;case 0:F[e+24>>2]=i;break;default:break w}}x:{if((b|0)==(f|0)){break x}while(1){ra(F[f>>2]);f=f+4|0;if((f|0)!=(b|0)){continue}break}b=F[e+16>>2];d=F[e+12>>2];if((b|0)==(d|0)){break x}F[e+16>>2]=b+((d-b|0)+3&-4)}b=F[e+8>>2];if(b){ra(b)}ea=e+32|0;break h}}Ab(j);break d;case 1:j=zb(w+8|0,3);v=w+664|0;h=F[b+12>>2];d=F[b+20>>2];g=F[b+16>>2];f=g+4|0;d=f>>>0<4?d+1|0:d;y:{if(f>>>0>I[b+8>>2]&(d|0)>=(h|0)|(d|0)>(h|0)){break y}d=g+F[b>>2]|0;F[j>>2]=G[d|0]|G[d+1|0]<<8|(G[d+2|0]<<16|G[d+3|0]<<24);d=F[b+20>>2];h=d;f=F[b+16>>2];g=f+4|0;d=g>>>0<4?d+1|0:d;e=g;F[b+16>>2]=e;F[b+20>>2]=d;if(I[j>>2]>32){break y}g=F[b+12>>2];d=h;h=f+8|0;d=h>>>0<8?d+1|0:d;if(h>>>0>I[b+8>>2]&(d|0)>=(g|0)|(d|0)>(g|0)){break y}d=e+F[b>>2]|0;h=G[d|0]|G[d+1|0]<<8|(G[d+2|0]<<16|G[d+3|0]<<24);F[j+4>>2]=h;d=F[b+20>>2];g=F[b+16>>2]+4|0;d=g>>>0<4?d+1|0:d;F[b+16>>2]=g;F[b+20>>2]=d;if(!h){break y}F[j+8>>2]=0;if(!xa(j+16|0,b)){break y}if(!xa(j+36|0,b)){break y}if(!xa(j+56|0,b)){break y}if(!xa(j+76|0,b)){break y}q=F[j+4>>2];h=0;g=0;e=ea-32|0;ea=e;f=F[j+12>>2];F[e+16>>2]=0;F[e+8>>2]=0;F[e+12>>2]=0;if(f){if(f>>>0>=1073741824){break b}b=f<<2;h=sa(b);F[e+8>>2]=h;g=b+h|0;F[e+16>>2]=g;ua(h,0,b);F[e+12>>2]=g}b=F[j+120>>2];d=F[b>>2];if(d){F[b+4>>2]=d;ra(d);F[b+8>>2]=0;F[b>>2]=0;F[b+4>>2]=0;f=F[j+12>>2];g=F[e+12>>2];h=F[e+8>>2]}F[b+4>>2]=g;F[b>>2]=h;F[b+8>>2]=F[e+16>>2];h=0;F[e+16>>2]=0;F[e+8>>2]=0;F[e+12>>2]=0;z:{if(f){if(f>>>0>=1073741824){break b}b=f<<2;i=sa(b);F[e+8>>2]=i;h=b+i|0;F[e+16>>2]=h;ua(i,0,b);F[e+12>>2]=h}b=F[j+132>>2];d=F[b>>2];if(d){F[b+4>>2]=d;ra(d);F[b+8>>2]=0;F[b>>2]=0;F[b+4>>2]=0;i=F[e+8>>2];h=F[e+12>>2]}F[b+4>>2]=h;F[b>>2]=i;F[b+8>>2]=F[e+16>>2];F[e+24>>2]=0;F[e+28>>2]=0;F[e+16>>2]=0;F[e+20>>2]=0;F[e+8>>2]=0;F[e+12>>2]=0;ya(e+8|0);b=F[e+24>>2]+F[e+28>>2]|0;d=(b>>>0)/341|0;b=F[F[e+12>>2]+(d<<2)>>2]+L(b-L(d,341)|0,12)|0;F[b+4>>2]=0;F[b+8>>2]=0;F[b>>2]=q;f=F[e+28>>2]+1|0;F[e+28>>2]=f;A:{if(!f){break A}y=j+96|0;while(1){b=F[e+12>>2];i=F[e+24>>2];l=f-1|0;d=i+l|0;h=(d>>>0)/341|0;d=F[b+(h<<2)>>2]+L(d-L(h,341)|0,12)|0;k=F[d+8>>2];h=F[d+4>>2];g=F[d>>2];F[e+28>>2]=l;d=F[e+16>>2];if((((b|0)==(d|0)?0:L(d-b>>2,341)-1|0)-(f+i|0)|0)+1>>>0>=682){ra(F[d-4>>2]);F[e+16>>2]=F[e+16>>2]-4}if(g>>>0>q>>>0){break A}b=F[j+12>>2];f=(h|0)==(b-1|0)?0:h+1|0;if(f>>>0>=b>>>0){break A}b=F[j+120>>2];n=L(k,12);l=b+n|0;d=F[j>>2];o=f<<2;p=n+F[j+132>>2]|0;h=F[o+F[p>>2]>>2];B:{C:{if((d|0)==(h|0)){n=0;if(!g){break C}while(1){b=F[l>>2];o=F[b+8>>2];m=F[b+4>>2];p=F[b>>2];d=F[v>>2];f=F[d+4>>2];i=F[d+8>>2];D:{if(f>>>0>>0){F[f+8>>2]=o;F[f+4>>2]=m;F[f>>2]=p;F[d+4>>2]=f+12;break D}h=F[d>>2];t=(f-h|0)/12|0;b=t+1|0;if(b>>>0>=357913942){break b}i=(i-h|0)/12|0;k=i<<1;k=i>>>0<178956970?b>>>0>>0?k:b:357913941;if(k){if(k>>>0>=357913942){break a}b=sa(L(k,12))}else{b=0}i=b+L(t,12)|0;F[i+8>>2]=o;F[i+4>>2]=m;F[i>>2]=p;o=i+12|0;if((f|0)!=(h|0)){while(1){i=i-12|0;f=f-12|0;F[i>>2]=F[f>>2];F[i+4>>2]=F[f+4>>2];F[i+8>>2]=F[f+8>>2];if((f|0)!=(h|0)){continue}break}}F[d+8>>2]=b+L(k,12);F[d+4>>2]=o;F[d>>2]=i;if(!h){break D}ra(h)}F[j+8>>2]=F[j+8>>2]+1;n=n+1|0;if((g|0)!=(n|0)){continue}break}break C}E:{F:{G:{H:{if(g>>>0<=2){b=F[j+108>>2];F[b>>2]=f;i=1;h=F[j+12>>2];if(h>>>0>1){break H}break E}if(I[j+8>>2]>I[j+4>>2]){break A}i=b;b=n+12|0;Ca(i+b|0,F[l>>2],F[l+4>>2]);b=o+F[b+F[j+120>>2]>>2]|0;F[b>>2]=F[b>>2]+(1<>2];i=32-d|0;I:{if((b|0)<=(i|0)){h=F[j+28>>2];if((h|0)==F[j+20>>2]){break G}i=F[h>>2];l=b+d|0;F[j+32>>2]=l;i=i<>>32-b|0;if((l|0)!=32){break I}F[j+32>>2]=0;F[j+28>>2]=h+4;break I}h=F[j+28>>2];l=h+4|0;if((l|0)==F[j+20>>2]){break G}m=F[h>>2];F[j+28>>2]=l;i=b-i|0;F[j+32>>2]=i;i=F[h+4>>2]>>>32-i|m<>>32-b}d=g>>>1|0;if(i>>>0>d>>>0){break A}break F}while(1){f=(h-1|0)==(f|0)?0:f+1|0;F[b+(i<<2)>>2]=f;h=F[j+12>>2];i=i+1|0;if(h>>>0>i>>>0){continue}break}break E}d=g>>>1|0;i=0}l=k+1|0;J:{K:{b=d-i|0;h=g-b|0;L:{if((h|0)==(b|0)){d=b;break L}d=F[j+88>>2];if((d|0)==F[j+80>>2]){break K}g=F[d>>2];i=F[j+92>>2];m=i+1|0;F[j+92>>2]=m;g=g&-2147483648>>>i;M:{if((m|0)==32){F[j+92>>2]=0;F[j+88>>2]=d+4;if(g){break M}break K}if(!g){break K}}d=h}h=b;break J}d=b}b=F[j+132>>2];g=b+n|0;i=F[g>>2];n=i+o|0;F[n>>2]=F[n>>2]+1;Ca(b+L(l,12)|0,i,F[g+4>>2]);if(h){g=F[e+28>>2]+F[e+24>>2]|0;b=F[e+16>>2];i=F[e+12>>2];if((g|0)==(((b|0)==(i|0)?0:L(b-i>>2,341)-1|0)|0)){ya(e+8|0);i=F[e+12>>2];g=F[e+24>>2]+F[e+28>>2]|0}b=(g>>>0)/341|0;b=F[(b<<2)+i>>2]+L(g-L(b,341)|0,12)|0;F[b+8>>2]=k;F[b+4>>2]=f;F[b>>2]=h;F[e+28>>2]=F[e+28>>2]+1}if(!d){break C}h=F[e+28>>2]+F[e+24>>2]|0;b=F[e+16>>2];i=F[e+12>>2];if((h|0)==(((b|0)==(i|0)?0:L(b-i>>2,341)-1|0)|0)){ya(e+8|0);i=F[e+12>>2];h=F[e+24>>2]+F[e+28>>2]|0}b=(h>>>0)/341|0;b=F[(b<<2)+i>>2]+L(h-L(b,341)|0,12)|0;F[b+8>>2]=l;F[b+4>>2]=f;F[b>>2]=d;f=F[e+28>>2]+1|0;F[e+28>>2]=f;break B}k=0;if(!g){break C}while(1){if(F[j+12>>2]){t=F[l>>2];i=F[j+40>>2];s=F[p>>2];h=F[j+96>>2];z=F[j+108>>2];f=0;while(1){n=z+(f<<2)|0;F[h+(F[n>>2]<<2)>>2]=0;d=F[j>>2];b=F[n>>2]<<2;o=F[b+s>>2];N:{if((d|0)==(o|0)){break N}b=b+h|0;d=d-o|0;o=F[j+52>>2];u=32-o|0;if((d|0)<=(u|0)){m=F[j+48>>2];if((m|0)==(i|0)){F[b>>2]=0;break N}F[b>>2]=F[m>>2]<>>32-d;b=d+F[j+52>>2]|0;F[j+52>>2]=b;if((b|0)!=32){break N}F[j+52>>2]=0;F[j+48>>2]=m+4;break N}m=F[j+48>>2];r=m+4|0;if((r|0)==(i|0)){F[b>>2]=0;break N}x=F[m>>2];F[j+48>>2]=r;u=d-u|0;F[j+52>>2]=u;F[b>>2]=F[m+4>>2]>>>32-u|x<>>32-d}b=F[n>>2]<<2;d=b+h|0;F[d>>2]=F[d>>2]|F[b+t>>2];f=f+1|0;if(f>>>0>2]){continue}break}}ob(v,y);F[j+8>>2]=F[j+8>>2]+1;k=k+1|0;if((g|0)!=(k|0)){continue}break}}f=F[e+28>>2]}if(f){continue}break}}F[e+28>>2]=0;b=F[e+16>>2];f=F[e+12>>2];i=b-f|0;if(i>>>0>=9){while(1){ra(F[f>>2]);f=F[e+12>>2]+4|0;F[e+12>>2]=f;b=F[e+16>>2];i=b-f|0;if(i>>>0>8){continue}break}}g=170;O:{switch((i>>>2|0)-1|0){case 1:g=341;case 0:F[e+24>>2]=g;break;default:break O}}P:{if((b|0)==(f|0)){break P}while(1){ra(F[f>>2]);f=f+4|0;if((f|0)!=(b|0)){continue}break}b=F[e+16>>2];d=F[e+12>>2];if((b|0)==(d|0)){break P}F[e+16>>2]=b+((d-b|0)+3&-4)}b=F[e+8>>2];if(b){ra(b)}ea=e+32|0;break z}}Ab(j);break d;case 2:j=xb(w+8|0,3);v=w+664|0;g=F[b+12>>2];d=F[b+20>>2];f=F[b+16>>2];e=f+4|0;d=e>>>0<4?d+1|0:d;Q:{if(e>>>0>I[b+8>>2]&(d|0)>=(g|0)|(d|0)>(g|0)){break Q}d=f+F[b>>2]|0;F[j>>2]=G[d|0]|G[d+1|0]<<8|(G[d+2|0]<<16|G[d+3|0]<<24);d=F[b+20>>2];g=d;e=F[b+16>>2];f=e+4|0;d=f>>>0<4?d+1|0:d;k=f;F[b+16>>2]=f;F[b+20>>2]=d;if(I[j>>2]>32){break Q}f=F[b+12>>2];d=g;g=e+8|0;d=g>>>0<8?d+1|0:d;if(g>>>0>I[b+8>>2]&(d|0)>=(f|0)|(d|0)>(f|0)){break Q}d=k+F[b>>2]|0;g=G[d|0]|G[d+1|0]<<8|(G[d+2|0]<<16|G[d+3|0]<<24);F[j+4>>2]=g;d=F[b+20>>2];f=F[b+16>>2]+4|0;d=f>>>0<4?d+1|0:d;F[b+16>>2]=f;F[b+20>>2]=d;if(!g){break Q}F[j+8>>2]=0;if(!wa(j+16|0,b)){break Q}if(!xa(j+32|0,b)){break Q}if(!xa(j+52|0,b)){break Q}if(!xa(j+72|0,b)){break Q}q=F[j+4>>2];g=0;e=ea-32|0;ea=e;f=F[j+12>>2];F[e+16>>2]=0;F[e+8>>2]=0;F[e+12>>2]=0;if(f){if(f>>>0>=1073741824){break b}b=f<<2;g=sa(b);F[e+8>>2]=g;h=b+g|0;F[e+16>>2]=h;ua(g,0,b);F[e+12>>2]=h}b=F[j+116>>2];d=F[b>>2];if(d){F[b+4>>2]=d;ra(d);F[b+8>>2]=0;F[b>>2]=0;F[b+4>>2]=0;f=F[j+12>>2];g=F[e+8>>2];h=F[e+12>>2]}F[b+4>>2]=h;F[b>>2]=g;F[b+8>>2]=F[e+16>>2];g=0;F[e+16>>2]=0;F[e+8>>2]=0;F[e+12>>2]=0;R:{if(f){if(f>>>0>=1073741824){break b}b=f<<2;i=sa(b);F[e+8>>2]=i;g=b+i|0;F[e+16>>2]=g;ua(i,0,b);F[e+12>>2]=g}b=F[j+128>>2];d=F[b>>2];if(d){F[b+4>>2]=d;ra(d);F[b+8>>2]=0;F[b>>2]=0;F[b+4>>2]=0;i=F[e+8>>2];g=F[e+12>>2]}F[b+4>>2]=g;F[b>>2]=i;F[b+8>>2]=F[e+16>>2];F[e+24>>2]=0;F[e+28>>2]=0;F[e+16>>2]=0;F[e+20>>2]=0;F[e+8>>2]=0;F[e+12>>2]=0;ya(e+8|0);b=F[e+24>>2]+F[e+28>>2]|0;d=(b>>>0)/341|0;b=F[F[e+12>>2]+(d<<2)>>2]+L(b-L(d,341)|0,12)|0;F[b+4>>2]=0;F[b+8>>2]=0;F[b>>2]=q;f=F[e+28>>2]+1|0;F[e+28>>2]=f;S:{if(!f){break S}y=j+92|0;t=j+16|0;while(1){b=F[e+12>>2];i=F[e+24>>2];l=f-1|0;d=i+l|0;h=(d>>>0)/341|0;d=F[b+(h<<2)>>2]+L(d-L(h,341)|0,12)|0;k=F[d+8>>2];g=F[d+4>>2];h=F[d>>2];F[e+28>>2]=l;d=F[e+16>>2];if((((b|0)==(d|0)?0:L(d-b>>2,341)-1|0)-(f+i|0)|0)+1>>>0>=682){ra(F[d-4>>2]);F[e+16>>2]=F[e+16>>2]-4}d=0;if(h>>>0>q>>>0){break S}b=F[j+12>>2];f=(g|0)==(b-1|0)?0:g+1|0;if(f>>>0>=b>>>0){break S}g=L(k,12);n=g+F[j+128>>2]|0;l=g+F[j+116>>2]|0;o=F[j>>2];i=f<<2;m=F[i+F[n>>2]>>2];T:{if((o|0)==(m|0)){if(!h){break T}while(1){b=F[l>>2];o=F[b+8>>2];m=F[b+4>>2];p=F[b>>2];g=F[v>>2];f=F[g+4>>2];i=F[g+8>>2];U:{if(f>>>0>>0){F[f+8>>2]=o;F[f+4>>2]=m;F[f>>2]=p;F[g+4>>2]=f+12;break U}k=F[g>>2];s=(f-k|0)/12|0;b=s+1|0;if(b>>>0>=357913942){break b}i=(i-k|0)/12|0;n=i<<1;n=i>>>0<178956970?b>>>0>>0?n:b:357913941;if(n){if(n>>>0>=357913942){break a}b=sa(L(n,12))}else{b=0}i=b+L(s,12)|0;F[i+8>>2]=o;F[i+4>>2]=m;F[i>>2]=p;o=i+12|0;if((f|0)!=(k|0)){while(1){i=i-12|0;f=f-12|0;F[i>>2]=F[f>>2];F[i+4>>2]=F[f+4>>2];F[i+8>>2]=F[f+8>>2];if((f|0)!=(k|0)){continue}break}}F[g+8>>2]=b+L(n,12);F[g+4>>2]=o;F[g>>2]=i;if(!k){break U}ra(k)}F[j+8>>2]=F[j+8>>2]+1;d=d+1|0;if((h|0)!=(d|0)){continue}break}break T}V:{W:{X:{Y:{if(h>>>0<=2){b=F[j+104>>2];F[b>>2]=f;i=1;g=F[j+12>>2];if(g>>>0>1){break Y}break V}if(I[j+8>>2]>I[j+4>>2]){break S}b=F[j+116>>2];p=k+1|0;n=L(p,12);d=b+n|0;if((d|0)!=(l|0)){Ca(d,F[l>>2],F[l+4>>2]);b=F[j+116>>2]}b=i+F[b+n>>2]|0;F[b>>2]=F[b>>2]+(1<>2]=0;pc(t,O(h)^31,e+4|0);b=h>>>1|0;d=F[e+4>>2];if(b>>>0>>0){break S}b=b-d|0;d=h-b|0;Z:{if((d|0)==(b|0)){d=b;break Z}h=F[j+84>>2];if((h|0)==F[j+76>>2]){break X}l=F[h>>2];o=F[j+88>>2];m=o+1|0;F[j+88>>2]=m;l=l&-2147483648>>>o;_:{if((m|0)==32){F[j+88>>2]=0;F[j+84>>2]=h+4;if(l){break _}break X}if(!l){break X}}}h=d;d=b;break W}while(1){f=(g-1|0)==(f|0)?0:f+1|0;F[b+(i<<2)>>2]=f;g=F[j+12>>2];i=i+1|0;if(g>>>0>i>>>0){continue}break}break V}h=b}l=i;b=F[j+128>>2];g=b+g|0;i=F[g>>2];l=l+i|0;F[l>>2]=F[l>>2]+1;Ca(b+n|0,i,F[g+4>>2]);if(d){g=F[e+28>>2]+F[e+24>>2]|0;b=F[e+16>>2];i=F[e+12>>2];if((g|0)==(((b|0)==(i|0)?0:L(b-i>>2,341)-1|0)|0)){ya(e+8|0);i=F[e+12>>2];g=F[e+24>>2]+F[e+28>>2]|0}b=(g>>>0)/341|0;b=F[(b<<2)+i>>2]+L(g-L(b,341)|0,12)|0;F[b+8>>2]=k;F[b+4>>2]=f;F[b>>2]=d;F[e+28>>2]=F[e+28>>2]+1}if(!h){break T}g=F[e+28>>2]+F[e+24>>2]|0;b=F[e+16>>2];i=F[e+12>>2];if((g|0)==(((b|0)==(i|0)?0:L(b-i>>2,341)-1|0)|0)){ya(e+8|0);i=F[e+12>>2];g=F[e+24>>2]+F[e+28>>2]|0}b=(g>>>0)/341|0;b=F[(b<<2)+i>>2]+L(g-L(b,341)|0,12)|0;F[b+8>>2]=p;F[b+4>>2]=f;F[b>>2]=h;F[e+28>>2]=F[e+28>>2]+1;break T}k=0;if(!h){break T}while(1){if(F[j+12>>2]){s=F[l>>2];i=F[j+36>>2];z=F[n>>2];g=F[j+92>>2];u=F[j+104>>2];f=0;while(1){o=u+(f<<2)|0;F[g+(F[o>>2]<<2)>>2]=0;d=F[j>>2];b=F[o>>2]<<2;m=F[b+z>>2];$:{if((d|0)==(m|0)){break $}b=b+g|0;d=d-m|0;m=F[j+48>>2];r=32-m|0;if((d|0)<=(r|0)){p=F[j+44>>2];if((p|0)==(i|0)){F[b>>2]=0;break $}F[b>>2]=F[p>>2]<>>32-d;b=d+F[j+48>>2]|0;F[j+48>>2]=b;if((b|0)!=32){break $}F[j+48>>2]=0;F[j+44>>2]=p+4;break $}p=F[j+44>>2];x=p+4|0;if((x|0)==(i|0)){F[b>>2]=0;break $}A=F[p>>2];F[j+44>>2]=x;r=d-r|0;F[j+48>>2]=r;F[b>>2]=F[p+4>>2]>>>32-r|A<>>32-d}b=F[o>>2]<<2;d=b+g|0;F[d>>2]=F[d>>2]|F[b+s>>2];f=f+1|0;if(f>>>0>2]){continue}break}}ob(v,y);F[j+8>>2]=F[j+8>>2]+1;k=k+1|0;if((h|0)!=(k|0)){continue}break}}f=F[e+28>>2];if(f){continue}break}}F[e+28>>2]=0;b=F[e+16>>2];f=F[e+12>>2];i=b-f|0;if(i>>>0>=9){while(1){ra(F[f>>2]);f=F[e+12>>2]+4|0;F[e+12>>2]=f;b=F[e+16>>2];i=b-f|0;if(i>>>0>8){continue}break}}g=170;aa:{switch((i>>>2|0)-1|0){case 1:g=341;case 0:F[e+24>>2]=g;break;default:break aa}}ba:{if((b|0)==(f|0)){break ba}while(1){ra(F[f>>2]);f=f+4|0;if((f|0)!=(b|0)){continue}break}b=F[e+16>>2];d=F[e+12>>2];if((b|0)==(d|0)){break ba}F[e+16>>2]=b+((d-b|0)+3&-4)}b=F[e+8>>2];if(b){ra(b)}ea=e+32|0;break R}}yb(j);break d;case 3:i=xb(w+8|0,3);n=w+664|0;h=F[b+12>>2];d=F[b+20>>2];g=F[b+16>>2];f=g+4|0;d=f>>>0<4?d+1|0:d;ca:{if(f>>>0>I[b+8>>2]&(d|0)>=(h|0)|(d|0)>(h|0)){break ca}d=g+F[b>>2]|0;F[i>>2]=G[d|0]|G[d+1|0]<<8|(G[d+2|0]<<16|G[d+3|0]<<24);d=F[b+20>>2];h=d;f=F[b+16>>2];g=f+4|0;d=g>>>0<4?d+1|0:d;e=g;F[b+16>>2]=e;F[b+20>>2]=d;if(I[i>>2]>32){break ca}g=F[b+12>>2];d=h;h=f+8|0;d=h>>>0<8?d+1|0:d;if(h>>>0>I[b+8>>2]&(d|0)>=(g|0)|(d|0)>(g|0)){break ca}d=e+F[b>>2]|0;h=G[d|0]|G[d+1|0]<<8|(G[d+2|0]<<16|G[d+3|0]<<24);F[i+4>>2]=h;d=F[b+20>>2];g=F[b+16>>2]+4|0;d=g>>>0<4?d+1|0:d;F[b+16>>2]=g;F[b+20>>2]=d;if(!h){break ca}F[i+8>>2]=0;if(!wa(i+16|0,b)){break ca}if(!xa(i+32|0,b)){break ca}if(!xa(i+52|0,b)){break ca}if(!xa(i+72|0,b)){break ca}v=F[i+4>>2];h=0;g=0;e=ea-32|0;ea=e;f=F[i+12>>2];F[e+16>>2]=0;F[e+8>>2]=0;F[e+12>>2]=0;if(f){if(f>>>0>=1073741824){break b}b=f<<2;h=sa(b);F[e+8>>2]=h;g=b+h|0;F[e+16>>2]=g;ua(h,0,b);F[e+12>>2]=g}b=F[i+116>>2];d=F[b>>2];if(d){F[b+4>>2]=d;ra(d);F[b+8>>2]=0;F[b>>2]=0;F[b+4>>2]=0;f=F[i+12>>2];g=F[e+12>>2];h=F[e+8>>2]}F[b+4>>2]=g;F[b>>2]=h;F[b+8>>2]=F[e+16>>2];h=0;F[e+16>>2]=0;F[e+8>>2]=0;F[e+12>>2]=0;da:{if(f){if(f>>>0>=1073741824){break b}b=f<<2;k=sa(b);F[e+8>>2]=k;h=b+k|0;F[e+16>>2]=h;ua(k,0,b);F[e+12>>2]=h}b=F[i+128>>2];d=F[b>>2];if(d){F[b+4>>2]=d;ra(d);F[b+8>>2]=0;F[b>>2]=0;F[b+4>>2]=0;k=F[e+8>>2];h=F[e+12>>2]}F[b+4>>2]=h;F[b>>2]=k;F[b+8>>2]=F[e+16>>2];F[e+24>>2]=0;F[e+28>>2]=0;F[e+16>>2]=0;F[e+20>>2]=0;F[e+8>>2]=0;F[e+12>>2]=0;ya(e+8|0);b=F[e+24>>2]+F[e+28>>2]|0;d=(b>>>0)/341|0;b=F[F[e+12>>2]+(d<<2)>>2]+L(b-L(d,341)|0,12)|0;F[b+4>>2]=0;F[b+8>>2]=0;F[b>>2]=v;f=F[e+28>>2]+1|0;F[e+28>>2]=f;ea:{if(!f){break ea}y=i+92|0;t=i+16|0;while(1){b=F[e+12>>2];k=F[e+24>>2];g=f-1|0;d=k+g|0;h=(d>>>0)/341|0;d=F[b+(h<<2)>>2]+L(d-L(h,341)|0,12)|0;j=F[d+8>>2];h=F[d+4>>2];d=F[d>>2];F[e+28>>2]=g;g=F[e+16>>2];if((((b|0)==(g|0)?0:L(g-b>>2,341)-1|0)-(f+k|0)|0)+1>>>0>=682){ra(F[g-4>>2]);F[e+16>>2]=F[e+16>>2]-4}if(d>>>0>v>>>0){break ea}b=F[i+12>>2];f=(h|0)==(b-1|0)?0:h+1|0;if(f>>>0>=b>>>0){break ea}b=F[i+116>>2];g=L(j,12);l=b+g|0;h=F[i>>2];k=f<<2;p=g+F[i+128>>2]|0;q=F[k+F[p>>2]>>2];fa:{if((h|0)==(q|0)){q=0;if(!d){break fa}while(1){b=F[l>>2];o=F[b+8>>2];m=F[b+4>>2];p=F[b>>2];h=F[n>>2];f=F[h+4>>2];j=F[h+8>>2];ga:{if(f>>>0>>0){F[f+8>>2]=o;F[f+4>>2]=m;F[f>>2]=p;F[h+4>>2]=f+12;break ga}g=F[h>>2];k=(f-g|0)/12|0;b=k+1|0;if(b>>>0>=357913942){break b}j=(j-g|0)/12|0;s=j<<1;j=j>>>0<178956970?b>>>0>>0?s:b:357913941;if(j){if(j>>>0>=357913942){break a}b=sa(L(j,12))}else{b=0}k=b+L(k,12)|0;F[k+8>>2]=o;F[k+4>>2]=m;F[k>>2]=p;o=k+12|0;if((g|0)!=(f|0)){while(1){k=k-12|0;f=f-12|0;F[k>>2]=F[f>>2];F[k+4>>2]=F[f+4>>2];F[k+8>>2]=F[f+8>>2];if((g|0)!=(f|0)){continue}break}}F[h+8>>2]=b+L(j,12);F[h+4>>2]=o;F[h>>2]=k;if(!g){break ga}ra(g)}F[i+8>>2]=F[i+8>>2]+1;q=q+1|0;if((d|0)!=(q|0)){continue}break}break fa}ha:{ia:{ja:{ka:{if(d>>>0<=2){b=F[i+104>>2];F[b>>2]=f;k=1;h=F[i+12>>2];if(h>>>0>1){break ka}break ha}if(I[i+8>>2]>I[i+4>>2]){break ea}m=b;b=g+12|0;Ca(m+b|0,F[l>>2],F[l+4>>2]);b=k+F[b+F[i+116>>2]>>2]|0;F[b>>2]=F[b>>2]+(1<>2]=0;pc(t,O(d)^31,e+4|0);b=d>>>1|0;h=F[e+4>>2];if(b>>>0>>0){break ea}l=j+1|0;b=b-h|0;h=d-b|0;la:{if((h|0)==(b|0)){d=b;break la}d=F[i+84>>2];if((d|0)==F[i+76>>2]){break ja}q=F[d>>2];o=F[i+88>>2];m=o+1|0;F[i+88>>2]=m;q=q&-2147483648>>>o;ma:{if((m|0)==32){F[i+88>>2]=0;F[i+84>>2]=d+4;if(q){break ma}break ja}if(!q){break ja}}d=h}h=b;break ia}while(1){f=(h-1|0)==(f|0)?0:f+1|0;F[b+(k<<2)>>2]=f;h=F[i+12>>2];k=k+1|0;if(h>>>0>k>>>0){continue}break}break ha}d=b}m=k;b=F[i+128>>2];g=b+g|0;k=F[g>>2];q=m+k|0;F[q>>2]=F[q>>2]+1;Ca(b+L(l,12)|0,k,F[g+4>>2]);if(h){g=F[e+28>>2]+F[e+24>>2]|0;b=F[e+16>>2];k=F[e+12>>2];if((g|0)==(((b|0)==(k|0)?0:L(b-k>>2,341)-1|0)|0)){ya(e+8|0);k=F[e+12>>2];g=F[e+24>>2]+F[e+28>>2]|0}b=(g>>>0)/341|0;b=F[(b<<2)+k>>2]+L(g-L(b,341)|0,12)|0;F[b+8>>2]=j;F[b+4>>2]=f;F[b>>2]=h;F[e+28>>2]=F[e+28>>2]+1}if(!d){break fa}h=F[e+28>>2]+F[e+24>>2]|0;b=F[e+16>>2];k=F[e+12>>2];if((h|0)==(((b|0)==(k|0)?0:L(b-k>>2,341)-1|0)|0)){ya(e+8|0);k=F[e+12>>2];h=F[e+24>>2]+F[e+28>>2]|0}b=(h>>>0)/341|0;b=F[(b<<2)+k>>2]+L(h-L(b,341)|0,12)|0;F[b+8>>2]=l;F[b+4>>2]=f;F[b>>2]=d;F[e+28>>2]=F[e+28>>2]+1;break fa}j=0;if(!d){break fa}while(1){if(F[i+12>>2]){s=F[l>>2];k=F[i+36>>2];z=F[p>>2];g=F[i+92>>2];u=F[i+104>>2];f=0;while(1){q=u+(f<<2)|0;F[g+(F[q>>2]<<2)>>2]=0;h=F[i>>2];b=F[q>>2]<<2;o=F[b+z>>2];na:{if((h|0)==(o|0)){break na}b=b+g|0;h=h-o|0;o=F[i+48>>2];r=32-o|0;if((h|0)<=(r|0)){m=F[i+44>>2];if((m|0)==(k|0)){F[b>>2]=0;break na}F[b>>2]=F[m>>2]<>>32-h;b=h+F[i+48>>2]|0;F[i+48>>2]=b;if((b|0)!=32){break na}F[i+48>>2]=0;F[i+44>>2]=m+4;break na}m=F[i+44>>2];x=m+4|0;if((x|0)==(k|0)){F[b>>2]=0;break na}A=F[m>>2];F[i+44>>2]=x;r=h-r|0;F[i+48>>2]=r;F[b>>2]=F[m+4>>2]>>>32-r|A<>>32-h}b=F[q>>2]<<2;h=b+g|0;F[h>>2]=F[h>>2]|F[b+s>>2];f=f+1|0;if(f>>>0>2]){continue}break}}ob(n,y);F[i+8>>2]=F[i+8>>2]+1;j=j+1|0;if((d|0)!=(j|0)){continue}break}}f=F[e+28>>2];if(f){continue}break}}F[e+28>>2]=0;b=F[e+16>>2];f=F[e+12>>2];k=b-f|0;if(k>>>0>=9){while(1){ra(F[f>>2]);f=F[e+12>>2]+4|0;F[e+12>>2]=f;b=F[e+16>>2];k=b-f|0;if(k>>>0>8){continue}break}}g=170;oa:{switch((k>>>2|0)-1|0){case 1:g=341;case 0:F[e+24>>2]=g;break;default:break oa}}pa:{if((b|0)==(f|0)){break pa}while(1){ra(F[f>>2]);f=f+4|0;if((f|0)!=(b|0)){continue}break}b=F[e+16>>2];d=F[e+12>>2];if((b|0)==(d|0)){break pa}F[e+16>>2]=b+((d-b|0)+3&-4)}b=F[e+8>>2];if(b){ra(b)}ea=e+32|0;break da}}yb(i);break d;case 4:i=cb(w+8|0,3);v=w+664|0;h=F[b+12>>2];d=F[b+20>>2];g=F[b+16>>2];f=g+4|0;d=f>>>0<4?d+1|0:d;qa:{if(f>>>0>I[b+8>>2]&(d|0)>=(h|0)|(d|0)>(h|0)){break qa}d=g+F[b>>2]|0;F[i>>2]=G[d|0]|G[d+1|0]<<8|(G[d+2|0]<<16|G[d+3|0]<<24);d=F[b+20>>2];h=d;f=F[b+16>>2];g=f+4|0;d=g>>>0<4?d+1|0:d;e=g;F[b+16>>2]=e;F[b+20>>2]=d;if(I[i>>2]>32){break qa}g=F[b+12>>2];d=h;h=f+8|0;d=h>>>0<8?d+1|0:d;if(h>>>0>I[b+8>>2]&(d|0)>=(g|0)|(d|0)>(g|0)){break qa}d=e+F[b>>2]|0;h=G[d|0]|G[d+1|0]<<8|(G[d+2|0]<<16|G[d+3|0]<<24);F[i+4>>2]=h;d=F[b+20>>2];g=F[b+16>>2]+4|0;d=g>>>0<4?d+1|0:d;F[b+16>>2]=g;F[b+20>>2]=d;if(!h){break qa}F[i+8>>2]=0;if(!vb(i+16|0,b)){break qa}if(!xa(i+544|0,b)){break qa}if(!xa(i+564|0,b)){break qa}if(!xa(i+584|0,b)){break qa}q=F[i+4>>2];f=0;d=0;e=ea-32|0;ea=e;h=F[i+12>>2];F[e+16>>2]=0;F[e+8>>2]=0;F[e+12>>2]=0;if(h){if(h>>>0>=1073741824){break b}b=h<<2;f=sa(b);F[e+8>>2]=f;d=b+f|0;F[e+16>>2]=d;ua(f,0,b);F[e+12>>2]=d}b=F[i+628>>2];g=F[b>>2];if(g){F[b+4>>2]=g;ra(g);F[b+8>>2]=0;F[b>>2]=0;F[b+4>>2]=0;h=F[i+12>>2];f=F[e+8>>2];d=F[e+12>>2]}F[b+4>>2]=d;F[b>>2]=f;F[b+8>>2]=F[e+16>>2];f=0;F[e+16>>2]=0;F[e+8>>2]=0;F[e+12>>2]=0;ra:{if(h){if(h>>>0>=1073741824){break b}b=h<<2;j=sa(b);F[e+8>>2]=j;f=b+j|0;F[e+16>>2]=f;ua(j,0,b);F[e+12>>2]=f}b=F[i+640>>2];d=F[b>>2];if(d){F[b+4>>2]=d;ra(d);F[b+8>>2]=0;F[b>>2]=0;F[b+4>>2]=0;j=F[e+8>>2];f=F[e+12>>2]}F[b+4>>2]=f;F[b>>2]=j;F[b+8>>2]=F[e+16>>2];F[e+24>>2]=0;F[e+28>>2]=0;F[e+16>>2]=0;F[e+20>>2]=0;F[e+8>>2]=0;F[e+12>>2]=0;ya(e+8|0);b=F[e+24>>2]+F[e+28>>2]|0;d=(b>>>0)/341|0;b=F[F[e+12>>2]+(d<<2)>>2]+L(b-L(d,341)|0,12)|0;F[b+4>>2]=0;F[b+8>>2]=0;F[b>>2]=q;h=F[e+28>>2]+1|0;F[e+28>>2]=h;sa:{if(!h){break sa}y=i+604|0;t=i+16|0;while(1){b=F[e+12>>2];j=F[e+24>>2];f=h-1|0;d=j+f|0;g=(d>>>0)/341|0;d=F[b+(g<<2)>>2]+L(d-L(g,341)|0,12)|0;l=F[d+8>>2];g=F[d+4>>2];d=F[d>>2];F[e+28>>2]=f;f=F[e+16>>2];if((((b|0)==(f|0)?0:L(f-b>>2,341)-1|0)-(h+j|0)|0)+1>>>0>=682){ra(F[f-4>>2]);F[e+16>>2]=F[e+16>>2]-4}if(d>>>0>q>>>0){break sa}b=F[i+12>>2];j=(g|0)==(b-1|0)?0:g+1|0;if(j>>>0>=b>>>0){break sa}g=L(l,12);n=g+F[i+640>>2]|0;k=g+F[i+628>>2]|0;h=F[i>>2];o=j<<2;f=F[o+F[n>>2]>>2];ta:{ua:{if((h|0)==(f|0)){f=0;if(!d){break ua}while(1){b=F[k>>2];o=F[b+8>>2];m=F[b+4>>2];p=F[b>>2];g=F[v>>2];h=F[g+4>>2];j=F[g+8>>2];va:{if(h>>>0>>0){F[h+8>>2]=o;F[h+4>>2]=m;F[h>>2]=p;F[g+4>>2]=h+12;break va}l=F[g>>2];s=(h-l|0)/12|0;b=s+1|0;if(b>>>0>=357913942){break b}j=(j-l|0)/12|0;n=j<<1;n=j>>>0<178956970?b>>>0>>0?n:b:357913941;if(n){if(n>>>0>=357913942){break a}b=sa(L(n,12))}else{b=0}j=b+L(s,12)|0;F[j+8>>2]=o;F[j+4>>2]=m;F[j>>2]=p;o=j+12|0;if((h|0)!=(l|0)){while(1){j=j-12|0;h=h-12|0;F[j>>2]=F[h>>2];F[j+4>>2]=F[h+4>>2];F[j+8>>2]=F[h+8>>2];if((h|0)!=(l|0)){continue}break}}F[g+8>>2]=b+L(n,12);F[g+4>>2]=o;F[g>>2]=j;if(!l){break va}ra(l)}F[i+8>>2]=F[i+8>>2]+1;f=f+1|0;if((d|0)!=(f|0)){continue}break}break ua}wa:{xa:{ya:{if(d>>>0<=2){b=F[i+616>>2];F[b>>2]=j;h=1;f=F[i+12>>2];if(f>>>0>1){break ya}break wa}if(I[i+8>>2]>I[i+4>>2]){break sa}b=F[i+628>>2];m=l+1|0;n=L(m,12);p=b+n|0;if((p|0)!=(k|0)){Ca(p,F[k>>2],F[k+4>>2]);b=F[i+628>>2]}b=o+F[b+n>>2]|0;F[b>>2]=F[b>>2]+(1<>>1|0;break xa}while(1){f=Da(t+(h<<4)|0)|f<<1;h=h+1|0;if((b|0)!=(h|0)){continue}break}h=d>>>1|0;if(f>>>0<=h>>>0){break xa}break sa}while(1){j=(f-1|0)==(j|0)?0:j+1|0;F[b+(h<<2)>>2]=j;h=h+1|0;f=F[i+12>>2];if(h>>>0>>0){continue}break}break wa}za:{Aa:{b=h-f|0;h=d-b|0;Ba:{if((h|0)==(b|0)){d=b;break Ba}d=F[i+596>>2];if((d|0)==F[i+588>>2]){break Aa}f=F[d>>2];k=F[i+600>>2];p=k+1|0;F[i+600>>2]=p;f=f&-2147483648>>>k;Ca:{if((p|0)==32){F[i+600>>2]=0;F[i+596>>2]=d+4;if(f){break Ca}break Aa}if(!f){break Aa}}d=h}h=b;break za}d=b}b=F[i+640>>2];g=b+g|0;f=F[g>>2];k=f+o|0;F[k>>2]=F[k>>2]+1;Ca(b+n|0,f,F[g+4>>2]);if(h){g=F[e+28>>2]+F[e+24>>2]|0;b=F[e+16>>2];f=F[e+12>>2];if((g|0)==(((b|0)==(f|0)?0:L(b-f>>2,341)-1|0)|0)){ya(e+8|0);f=F[e+12>>2];g=F[e+24>>2]+F[e+28>>2]|0}b=(g>>>0)/341|0;b=F[(b<<2)+f>>2]+L(g-L(b,341)|0,12)|0;F[b+8>>2]=l;F[b+4>>2]=j;F[b>>2]=h;F[e+28>>2]=F[e+28>>2]+1}if(!d){break ua}f=F[e+28>>2]+F[e+24>>2]|0;b=F[e+16>>2];h=F[e+12>>2];if((f|0)==(((b|0)==(h|0)?0:L(b-h>>2,341)-1|0)|0)){ya(e+8|0);f=F[e+24>>2]+F[e+28>>2]|0;h=F[e+12>>2]}b=(f>>>0)/341|0;b=F[h+(b<<2)>>2]+L(f-L(b,341)|0,12)|0;F[b+8>>2]=m;F[b+4>>2]=j;F[b>>2]=d;h=F[e+28>>2]+1|0;F[e+28>>2]=h;break ta}j=0;if(!d){break ua}while(1){if(F[i+12>>2]){s=F[k>>2];l=F[i+548>>2];z=F[n>>2];f=F[i+604>>2];u=F[i+616>>2];h=0;while(1){o=u+(h<<2)|0;F[f+(F[o>>2]<<2)>>2]=0;g=F[i>>2];b=F[o>>2]<<2;m=F[b+z>>2];Da:{if((g|0)==(m|0)){break Da}b=b+f|0;g=g-m|0;m=F[i+560>>2];r=32-m|0;if((g|0)<=(r|0)){p=F[i+556>>2];if((p|0)==(l|0)){F[b>>2]=0;break Da}F[b>>2]=F[p>>2]<>>32-g;b=g+F[i+560>>2]|0;F[i+560>>2]=b;if((b|0)!=32){break Da}F[i+560>>2]=0;F[i+556>>2]=p+4;break Da}p=F[i+556>>2];x=p+4|0;if((x|0)==(l|0)){F[b>>2]=0;break Da}A=F[p>>2];F[i+556>>2]=x;r=g-r|0;F[i+560>>2]=r;F[b>>2]=F[p+4>>2]>>>32-r|A<>>32-g}b=F[o>>2]<<2;g=b+f|0;F[g>>2]=F[g>>2]|F[b+s>>2];h=h+1|0;if(h>>>0>2]){continue}break}}ob(v,y);F[i+8>>2]=F[i+8>>2]+1;j=j+1|0;if((d|0)!=(j|0)){continue}break}}h=F[e+28>>2]}if(h){continue}break}}F[e+28>>2]=0;b=F[e+16>>2];h=F[e+12>>2];j=b-h|0;if(j>>>0>=9){while(1){ra(F[h>>2]);h=F[e+12>>2]+4|0;F[e+12>>2]=h;b=F[e+16>>2];j=b-h|0;if(j>>>0>8){continue}break}}d=170;Ea:{switch((j>>>2|0)-1|0){case 1:d=341;case 0:F[e+24>>2]=d;break;default:break Ea}}Fa:{if((b|0)==(h|0)){break Fa}while(1){ra(F[h>>2]);h=h+4|0;if((h|0)!=(b|0)){continue}break}b=F[e+16>>2];d=F[e+12>>2];if((b|0)==(d|0)){break Fa}F[e+16>>2]=b+((d-b|0)+3&-4)}b=F[e+8>>2];if(b){ra(b)}ea=e+32|0;break ra}}db(i);break d;case 5:e=cb(w+8|0,3);v=w+664|0;h=F[b+12>>2];d=F[b+20>>2];g=F[b+16>>2];f=g+4|0;d=f>>>0<4?d+1|0:d;Ga:{if(f>>>0>I[b+8>>2]&(d|0)>=(h|0)|(d|0)>(h|0)){break Ga}d=g+F[b>>2]|0;F[e>>2]=G[d|0]|G[d+1|0]<<8|(G[d+2|0]<<16|G[d+3|0]<<24);d=F[b+20>>2];h=d;f=F[b+16>>2];g=f+4|0;d=g>>>0<4?d+1|0:d;j=g;F[b+16>>2]=g;F[b+20>>2]=d;if(I[e>>2]>32){break Ga}g=F[b+12>>2];d=h;h=f+8|0;d=h>>>0<8?d+1|0:d;if(h>>>0>I[b+8>>2]&(d|0)>=(g|0)|(d|0)>(g|0)){break Ga}d=j+F[b>>2]|0;h=G[d|0]|G[d+1|0]<<8|(G[d+2|0]<<16|G[d+3|0]<<24);F[e+4>>2]=h;d=F[b+20>>2];g=F[b+16>>2]+4|0;d=g>>>0<4?d+1|0:d;F[b+16>>2]=g;F[b+20>>2]=d;if(!h){break Ga}F[e+8>>2]=0;if(!vb(e+16|0,b)){break Ga}if(!xa(e+544|0,b)){break Ga}if(!xa(e+564|0,b)){break Ga}if(!xa(e+584|0,b)){break Ga}q=F[e+4>>2];f=0;d=0;g=ea-32|0;ea=g;h=F[e+12>>2];F[g+16>>2]=0;F[g+8>>2]=0;F[g+12>>2]=0;if(h){if(h>>>0>=1073741824){break b}b=h<<2;f=sa(b);F[g+8>>2]=f;d=b+f|0;F[g+16>>2]=d;ua(f,0,b);F[g+12>>2]=d}b=F[e+628>>2];j=F[b>>2];if(j){F[b+4>>2]=j;ra(j);F[b+8>>2]=0;F[b>>2]=0;F[b+4>>2]=0;h=F[e+12>>2];f=F[g+8>>2];d=F[g+12>>2]}F[b+4>>2]=d;F[b>>2]=f;F[b+8>>2]=F[g+16>>2];f=0;F[g+16>>2]=0;F[g+8>>2]=0;F[g+12>>2]=0;Ha:{if(h){if(h>>>0>=1073741824){break b}b=h<<2;i=sa(b);F[g+8>>2]=i;f=b+i|0;F[g+16>>2]=f;ua(i,0,b);F[g+12>>2]=f}b=F[e+640>>2];d=F[b>>2];if(d){F[b+4>>2]=d;ra(d);F[b+8>>2]=0;F[b>>2]=0;F[b+4>>2]=0;i=F[g+8>>2];f=F[g+12>>2]}F[b+4>>2]=f;F[b>>2]=i;F[b+8>>2]=F[g+16>>2];F[g+24>>2]=0;F[g+28>>2]=0;F[g+16>>2]=0;F[g+20>>2]=0;F[g+8>>2]=0;F[g+12>>2]=0;ya(g+8|0);b=F[g+24>>2]+F[g+28>>2]|0;d=(b>>>0)/341|0;b=F[F[g+12>>2]+(d<<2)>>2]+L(b-L(d,341)|0,12)|0;F[b+4>>2]=0;F[b+8>>2]=0;F[b>>2]=q;h=F[g+28>>2]+1|0;F[g+28>>2]=h;Ia:{if(!h){break Ia}y=e+604|0;t=e+16|0;while(1){b=F[g+12>>2];i=F[g+24>>2];j=h-1|0;d=i+j|0;f=(d>>>0)/341|0;d=F[b+(f<<2)>>2]+L(d-L(f,341)|0,12)|0;k=F[d+8>>2];f=F[d+4>>2];d=F[d>>2];F[g+28>>2]=j;j=F[g+16>>2];if((((b|0)==(j|0)?0:L(j-b>>2,341)-1|0)-(h+i|0)|0)+1>>>0>=682){ra(F[j-4>>2]);F[g+16>>2]=F[g+16>>2]-4}if(d>>>0>q>>>0){break Ia}b=F[e+12>>2];i=(f|0)==(b-1|0)?0:f+1|0;if(i>>>0>=b>>>0){break Ia}b=F[e+628>>2];j=L(k,12);l=b+j|0;h=F[e>>2];n=i<<2;p=j+F[e+640>>2]|0;f=F[n+F[p>>2]>>2];Ja:{Ka:{if((h|0)==(f|0)){j=0;if(!d){break Ka}while(1){b=F[l>>2];o=F[b+8>>2];m=F[b+4>>2];p=F[b>>2];f=F[v>>2];h=F[f+4>>2];i=F[f+8>>2];La:{if(h>>>0>>0){F[h+8>>2]=o;F[h+4>>2]=m;F[h>>2]=p;F[f+4>>2]=h+12;break La}k=F[f>>2];s=(h-k|0)/12|0;b=s+1|0;if(b>>>0>=357913942){break b}i=(i-k|0)/12|0;n=i<<1;n=i>>>0<178956970?b>>>0>>0?n:b:357913941;if(n){if(n>>>0>=357913942){break a}b=sa(L(n,12))}else{b=0}i=b+L(s,12)|0;F[i+8>>2]=o;F[i+4>>2]=m;F[i>>2]=p;o=i+12|0;if((h|0)!=(k|0)){while(1){i=i-12|0;h=h-12|0;F[i>>2]=F[h>>2];F[i+4>>2]=F[h+4>>2];F[i+8>>2]=F[h+8>>2];if((h|0)!=(k|0)){continue}break}}F[f+8>>2]=b+L(n,12);F[f+4>>2]=o;F[f>>2]=i;if(!k){break La}ra(k)}F[e+8>>2]=F[e+8>>2]+1;j=j+1|0;if((d|0)!=(j|0)){continue}break}break Ka}Ma:{Na:{Oa:{if(d>>>0<=2){b=F[e+616>>2];F[b>>2]=i;h=1;f=F[e+12>>2];if(f>>>0>1){break Oa}break Ma}if(I[e+8>>2]>I[e+4>>2]){break Ia}m=b;b=j+12|0;Ca(m+b|0,F[l>>2],F[l+4>>2]);b=n+F[b+F[e+628>>2]>>2]|0;F[b>>2]=F[b>>2]+(1<>>1|0;break Na}while(1){f=Da(t+(h<<4)|0)|f<<1;h=h+1|0;if((b|0)!=(h|0)){continue}break}h=d>>>1|0;if(f>>>0<=h>>>0){break Na}break Ia}while(1){i=(f-1|0)==(i|0)?0:i+1|0;F[b+(h<<2)>>2]=i;h=h+1|0;f=F[e+12>>2];if(h>>>0>>0){continue}break}break Ma}l=k+1|0;Pa:{Qa:{b=h-f|0;h=d-b|0;Ra:{if((h|0)==(b|0)){d=b;break Ra}d=F[e+596>>2];if((d|0)==F[e+588>>2]){break Qa}f=F[d>>2];o=F[e+600>>2];m=o+1|0;F[e+600>>2]=m;f=f&-2147483648>>>o;Sa:{if((m|0)==32){F[e+600>>2]=0;F[e+596>>2]=d+4;if(f){break Sa}break Qa}if(!f){break Qa}}d=h}h=b;break Pa}d=b}b=F[e+640>>2];f=b+j|0;j=F[f>>2];n=j+n|0;F[n>>2]=F[n>>2]+1;Ca(b+L(l,12)|0,j,F[f+4>>2]);if(h){j=F[g+28>>2]+F[g+24>>2]|0;b=F[g+16>>2];f=F[g+12>>2];if((j|0)==(((b|0)==(f|0)?0:L(b-f>>2,341)-1|0)|0)){ya(g+8|0);j=F[g+24>>2]+F[g+28>>2]|0;f=F[g+12>>2]}b=(j>>>0)/341|0;b=F[f+(b<<2)>>2]+L(j-L(b,341)|0,12)|0;F[b+8>>2]=k;F[b+4>>2]=i;F[b>>2]=h;F[g+28>>2]=F[g+28>>2]+1}if(!d){break Ka}f=F[g+28>>2]+F[g+24>>2]|0;b=F[g+16>>2];h=F[g+12>>2];if((f|0)==(((b|0)==(h|0)?0:L(b-h>>2,341)-1|0)|0)){ya(g+8|0);f=F[g+24>>2]+F[g+28>>2]|0;h=F[g+12>>2]}b=(f>>>0)/341|0;b=F[h+(b<<2)>>2]+L(f-L(b,341)|0,12)|0;F[b+8>>2]=l;F[b+4>>2]=i;F[b>>2]=d;h=F[g+28>>2]+1|0;F[g+28>>2]=h;break Ja}i=0;if(!d){break Ka}while(1){if(F[e+12>>2]){s=F[l>>2];k=F[e+548>>2];z=F[p>>2];j=F[e+604>>2];u=F[e+616>>2];h=0;while(1){n=u+(h<<2)|0;F[j+(F[n>>2]<<2)>>2]=0;f=F[e>>2];b=F[n>>2]<<2;o=F[b+z>>2];Ta:{if((f|0)==(o|0)){break Ta}b=b+j|0;f=f-o|0;o=F[e+560>>2];r=32-o|0;if((f|0)<=(r|0)){m=F[e+556>>2];if((m|0)==(k|0)){F[b>>2]=0;break Ta}F[b>>2]=F[m>>2]<>>32-f;b=f+F[e+560>>2]|0;F[e+560>>2]=b;if((b|0)!=32){break Ta}F[e+560>>2]=0;F[e+556>>2]=m+4;break Ta}m=F[e+556>>2];x=m+4|0;if((x|0)==(k|0)){F[b>>2]=0;break Ta}A=F[m>>2];F[e+556>>2]=x;r=f-r|0;F[e+560>>2]=r;F[b>>2]=F[m+4>>2]>>>32-r|A<>>32-f}b=F[n>>2]<<2;f=b+j|0;F[f>>2]=F[f>>2]|F[b+s>>2];h=h+1|0;if(h>>>0>2]){continue}break}}ob(v,y);F[e+8>>2]=F[e+8>>2]+1;i=i+1|0;if((d|0)!=(i|0)){continue}break}}h=F[g+28>>2]}if(h){continue}break}}F[g+28>>2]=0;b=F[g+16>>2];h=F[g+12>>2];i=b-h|0;if(i>>>0>=9){while(1){ra(F[h>>2]);h=F[g+12>>2]+4|0;F[g+12>>2]=h;b=F[g+16>>2];i=b-h|0;if(i>>>0>8){continue}break}}d=170;Ua:{switch((i>>>2|0)-1|0){case 1:d=341;case 0:F[g+24>>2]=d;break;default:break Ua}}Va:{if((b|0)==(h|0)){break Va}while(1){ra(F[h>>2]);h=h+4|0;if((h|0)!=(b|0)){continue}break}b=F[g+16>>2];d=F[g+12>>2];if((b|0)==(d|0)){break Va}F[g+16>>2]=b+((d-b|0)+3&-4)}b=F[g+8>>2];if(b){ra(b)}ea=g+32|0;break Ha}}db(e);break d;case 6:break f;default:break c}}i=cb(w+8|0,3);v=w+664|0;h=F[b+12>>2];d=F[b+20>>2];g=F[b+16>>2];f=g+4|0;d=f>>>0<4?d+1|0:d;Wa:{if(f>>>0>I[b+8>>2]&(d|0)>=(h|0)|(d|0)>(h|0)){break Wa}d=g+F[b>>2]|0;F[i>>2]=G[d|0]|G[d+1|0]<<8|(G[d+2|0]<<16|G[d+3|0]<<24);d=F[b+20>>2];h=d;f=F[b+16>>2];g=f+4|0;d=g>>>0<4?d+1|0:d;e=g;F[b+16>>2]=e;F[b+20>>2]=d;if(I[i>>2]>32){break Wa}g=F[b+12>>2];d=h;h=f+8|0;d=h>>>0<8?d+1|0:d;if(h>>>0>I[b+8>>2]&(d|0)>=(g|0)|(d|0)>(g|0)){break Wa}d=e+F[b>>2]|0;h=G[d|0]|G[d+1|0]<<8|(G[d+2|0]<<16|G[d+3|0]<<24);F[i+4>>2]=h;d=F[b+20>>2];g=F[b+16>>2]+4|0;d=g>>>0<4?d+1|0:d;F[b+16>>2]=g;F[b+20>>2]=d;if(!h){break Wa}F[i+8>>2]=0;if(!vb(i+16|0,b)){break Wa}if(!xa(i+544|0,b)){break Wa}if(!xa(i+564|0,b)){break Wa}if(!xa(i+584|0,b)){break Wa}q=F[i+4>>2];f=0;d=0;e=ea-32|0;ea=e;h=F[i+12>>2];F[e+16>>2]=0;F[e+8>>2]=0;F[e+12>>2]=0;if(h){if(h>>>0>=1073741824){break b}b=h<<2;f=sa(b);F[e+8>>2]=f;d=b+f|0;F[e+16>>2]=d;ua(f,0,b);F[e+12>>2]=d}b=F[i+628>>2];g=F[b>>2];if(g){F[b+4>>2]=g;ra(g);F[b+8>>2]=0;F[b>>2]=0;F[b+4>>2]=0;h=F[i+12>>2];f=F[e+8>>2];d=F[e+12>>2]}F[b+4>>2]=d;F[b>>2]=f;F[b+8>>2]=F[e+16>>2];f=0;F[e+16>>2]=0;F[e+8>>2]=0;F[e+12>>2]=0;Xa:{if(h){if(h>>>0>=1073741824){break b}b=h<<2;j=sa(b);F[e+8>>2]=j;f=b+j|0;F[e+16>>2]=f;ua(j,0,b);F[e+12>>2]=f}b=F[i+640>>2];d=F[b>>2];if(d){F[b+4>>2]=d;ra(d);F[b+8>>2]=0;F[b>>2]=0;F[b+4>>2]=0;j=F[e+8>>2];f=F[e+12>>2]}F[b+4>>2]=f;F[b>>2]=j;F[b+8>>2]=F[e+16>>2];F[e+24>>2]=0;F[e+28>>2]=0;F[e+16>>2]=0;F[e+20>>2]=0;F[e+8>>2]=0;F[e+12>>2]=0;ya(e+8|0);b=F[e+24>>2]+F[e+28>>2]|0;d=(b>>>0)/341|0;b=F[F[e+12>>2]+(d<<2)>>2]+L(b-L(d,341)|0,12)|0;F[b+4>>2]=0;F[b+8>>2]=0;F[b>>2]=q;h=F[e+28>>2]+1|0;F[e+28>>2]=h;Ya:{if(!h){break Ya}y=i+604|0;t=i+16|0;while(1){b=F[e+12>>2];f=F[e+24>>2];g=h-1|0;d=f+g|0;j=(d>>>0)/341|0;d=F[b+(j<<2)>>2]+L(d-L(j,341)|0,12)|0;l=F[d+8>>2];d=F[d>>2];F[e+28>>2]=g;g=F[e+16>>2];if((((b|0)==(g|0)?0:L(g-b>>2,341)-1|0)-(f+h|0)|0)+1>>>0>=682){ra(F[g-4>>2]);F[e+16>>2]=F[e+16>>2]-4}if(d>>>0>q>>>0){break Ya}b=F[i+628>>2];g=L(l,12);n=g+F[i+640>>2]|0;j=Ud(i,d,n);if(j>>>0>=I[i+12>>2]){break Ya}k=b+g|0;h=F[i>>2];o=j<<2;f=F[o+F[n>>2]>>2];Za:{_a:{if((h|0)==(f|0)){f=0;if(!d){break _a}while(1){b=F[k>>2];o=F[b+8>>2];m=F[b+4>>2];p=F[b>>2];g=F[v>>2];h=F[g+4>>2];j=F[g+8>>2];$a:{if(h>>>0>>0){F[h+8>>2]=o;F[h+4>>2]=m;F[h>>2]=p;F[g+4>>2]=h+12;break $a}l=F[g>>2];s=(h-l|0)/12|0;b=s+1|0;if(b>>>0>=357913942){break b}j=(j-l|0)/12|0;n=j<<1;n=j>>>0<178956970?b>>>0>>0?n:b:357913941;if(n){if(n>>>0>=357913942){break a}b=sa(L(n,12))}else{b=0}j=b+L(s,12)|0;F[j+8>>2]=o;F[j+4>>2]=m;F[j>>2]=p;o=j+12|0;if((h|0)!=(l|0)){while(1){j=j-12|0;h=h-12|0;F[j>>2]=F[h>>2];F[j+4>>2]=F[h+4>>2];F[j+8>>2]=F[h+8>>2];if((h|0)!=(l|0)){continue}break}}F[g+8>>2]=b+L(n,12);F[g+4>>2]=o;F[g>>2]=j;if(!l){break $a}ra(l)}F[i+8>>2]=F[i+8>>2]+1;f=f+1|0;if((d|0)!=(f|0)){continue}break}break _a}ab:{bb:{cb:{if(d>>>0<=2){b=F[i+616>>2];F[b>>2]=j;h=1;f=F[i+12>>2];if(f>>>0>1){break cb}break ab}if(I[i+8>>2]>I[i+4>>2]){break Ya}b=F[i+628>>2];m=l+1|0;n=L(m,12);p=b+n|0;if((p|0)!=(k|0)){Ca(p,F[k>>2],F[k+4>>2]);b=F[i+628>>2]}b=o+F[b+n>>2]|0;F[b>>2]=F[b>>2]+(1<>>1|0;break bb}while(1){f=Da(t+(h<<4)|0)|f<<1;h=h+1|0;if((b|0)!=(h|0)){continue}break}h=d>>>1|0;if(f>>>0<=h>>>0){break bb}break Ya}while(1){j=(f-1|0)==(j|0)?0:j+1|0;F[b+(h<<2)>>2]=j;h=h+1|0;f=F[i+12>>2];if(h>>>0>>0){continue}break}break ab}db:{eb:{b=h-f|0;h=d-b|0;fb:{if((h|0)==(b|0)){d=b;break fb}d=F[i+596>>2];if((d|0)==F[i+588>>2]){break eb}f=F[d>>2];k=F[i+600>>2];p=k+1|0;F[i+600>>2]=p;f=f&-2147483648>>>k;gb:{if((p|0)==32){F[i+600>>2]=0;F[i+596>>2]=d+4;if(f){break gb}break eb}if(!f){break eb}}d=h}h=b;break db}d=b}b=F[i+640>>2];g=b+g|0;f=F[g>>2];k=f+o|0;F[k>>2]=F[k>>2]+1;Ca(b+n|0,f,F[g+4>>2]);if(h){g=F[e+28>>2]+F[e+24>>2]|0;b=F[e+16>>2];f=F[e+12>>2];if((g|0)==(((b|0)==(f|0)?0:L(b-f>>2,341)-1|0)|0)){ya(e+8|0);f=F[e+12>>2];g=F[e+24>>2]+F[e+28>>2]|0}b=(g>>>0)/341|0;b=F[(b<<2)+f>>2]+L(g-L(b,341)|0,12)|0;F[b+8>>2]=l;F[b+4>>2]=j;F[b>>2]=h;F[e+28>>2]=F[e+28>>2]+1}if(!d){break _a}f=F[e+28>>2]+F[e+24>>2]|0;b=F[e+16>>2];h=F[e+12>>2];if((f|0)==(((b|0)==(h|0)?0:L(b-h>>2,341)-1|0)|0)){ya(e+8|0);f=F[e+24>>2]+F[e+28>>2]|0;h=F[e+12>>2]}b=(f>>>0)/341|0;b=F[h+(b<<2)>>2]+L(f-L(b,341)|0,12)|0;F[b+8>>2]=m;F[b+4>>2]=j;F[b>>2]=d;h=F[e+28>>2]+1|0;F[e+28>>2]=h;break Za}j=0;if(!d){break _a}while(1){if(F[i+12>>2]){s=F[k>>2];l=F[i+548>>2];z=F[n>>2];f=F[i+604>>2];u=F[i+616>>2];h=0;while(1){o=u+(h<<2)|0;F[f+(F[o>>2]<<2)>>2]=0;g=F[i>>2];b=F[o>>2]<<2;m=F[b+z>>2];hb:{if((g|0)==(m|0)){break hb}b=b+f|0;g=g-m|0;m=F[i+560>>2];r=32-m|0;if((g|0)<=(r|0)){p=F[i+556>>2];if((p|0)==(l|0)){F[b>>2]=0;break hb}F[b>>2]=F[p>>2]<>>32-g;b=g+F[i+560>>2]|0;F[i+560>>2]=b;if((b|0)!=32){break hb}F[i+560>>2]=0;F[i+556>>2]=p+4;break hb}p=F[i+556>>2];x=p+4|0;if((x|0)==(l|0)){F[b>>2]=0;break hb}A=F[p>>2];F[i+556>>2]=x;r=g-r|0;F[i+560>>2]=r;F[b>>2]=F[p+4>>2]>>>32-r|A<>>32-g}b=F[o>>2]<<2;g=b+f|0;F[g>>2]=F[g>>2]|F[b+s>>2];h=h+1|0;if(h>>>0>2]){continue}break}}ob(v,y);F[i+8>>2]=F[i+8>>2]+1;j=j+1|0;if((d|0)!=(j|0)){continue}break}}h=F[e+28>>2]}if(h){continue}break}}F[e+28>>2]=0;b=F[e+16>>2];h=F[e+12>>2];j=b-h|0;if(j>>>0>=9){while(1){ra(F[h>>2]);h=F[e+12>>2]+4|0;F[e+12>>2]=h;b=F[e+16>>2];j=b-h|0;if(j>>>0>8){continue}break}}d=170;ib:{switch((j>>>2|0)-1|0){case 1:d=341;case 0:F[e+24>>2]=d;break;default:break ib}}jb:{if((b|0)==(h|0)){break jb}while(1){ra(F[h>>2]);h=h+4|0;if((h|0)!=(b|0)){continue}break}b=F[e+16>>2];d=F[e+12>>2];if((b|0)==(d|0)){break jb}F[e+16>>2]=b+((d-b|0)+3&-4)}b=F[e+8>>2];if(b){ra(b)}ea=e+32|0;break Xa}}db(i)}h=F[a+12>>2]==((F[c+4>>2]-F[c>>2]|0)/12|0)}ea=w+672|0;return h}va();V()}za();V()}function id(a,b,c,d){var e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0;if(!a){return 1}e=F[c+20>>2];g=F[c+12>>2];j=F[c+16>>2];a:{if((e|0)>=(g|0)&j>>>0>=I[c+8>>2]|(e|0)>(g|0)){break a}g=G[j+F[c>>2]|0];j=j+1|0;e=j?e:e+1|0;F[c+16>>2]=j;F[c+20>>2]=e;b:{switch(g|0){case 0:f=a;e=b;k=d;a=0;d=0;m=ea+-64|0;ea=m;F[m+56>>2]=0;F[m+48>>2]=0;F[m+52>>2]=0;F[m+40>>2]=0;F[m+44>>2]=0;F[m+32>>2]=0;F[m+36>>2]=0;F[m+24>>2]=0;F[m+28>>2]=0;F[m+16>>2]=0;F[m+20>>2]=0;F[m+8>>2]=0;F[m+12>>2]=0;c:{if(!Ke(m+8|0,c)){break c}if(!Je(m+8|0,c)|(F[m+20>>2]?0:f)){break c}Fb(c,0,0);if(f){n=e<<2;q=F[m+36>>2];r=F[m+48>>2];s=F[m+24>>2];while(1){l=F[m+56>>2];d:{if(l>>>0>16383){break d}a=F[m+52>>2];while(1){if((a|0)<=0){break d}a=a-1|0;F[m+52>>2]=a;l=G[a+r|0]|l<<8;F[m+56>>2]=l;if(l>>>0<16384){continue}break}}a=l&4095;t=F[(a<<2)+s>>2];b=(t<<3)+q|0;F[m+56>>2]=(L(F[b>>2],l>>>12|0)+a|0)-F[b+4>>2];e:{if((e|0)<=0){break e}a=0;if(!G[c+36|0]|t>>>0>32){break c}if(!t){ua(k+(d<<2)|0,0,n);d=d+e|0;break e}w=t&-2;x=t&1;g=d+e|0;b=F[c+32>>2];i=F[c+28>>2];h=F[c+24>>2];while(1){l=0;a=b;j=0;p=0;if((t|0)!=1){while(1){o=h+(a>>>3|0)|0;f:{if(o>>>0>=i>>>0){o=0;break f}o=G[o|0];b=a+1|0;F[c+32>>2]=b;o=o>>>(a&7)&1;a=b}o=o<>>3|0)|0;if(u>>>0>>0){j=G[u|0];b=a+1|0;F[c+32>>2]=b;j=j>>>(a&7)&1;a=b}u=l|1;l=l+2|0;j=o|j<>>3|0)|0;if(o>>>0>>0){o=G[o|0];b=a+1|0;F[c+32>>2]=b;a=o>>>(a&7)&1}else{a=0}j=a<>2]=j;d=d+1|0;if((g|0)!=(d|0)){continue}break}d=g}v=e+v|0;if(f>>>0>v>>>0){continue}break}}D[c+36|0]=0;b=F[c+20>>2];e=0;a=F[c+32>>2]+7|0;e=a>>>0<7?1:e;d=(e&7)<<29|a>>>3;a=d+F[c+16>>2]|0;e=(e>>>3|0)+b|0;F[c+16>>2]=a;F[c+20>>2]=a>>>0>>0?e+1|0:e;a=1}b=F[m+36>>2];if(b){F[m+40>>2]=b;ra(b)}b=F[m+24>>2];if(b){F[m+28>>2]=b;ra(b)}b=F[m+8>>2];if(b){F[m+12>>2]=b;ra(b)}ea=m- -64|0;return a;case 1:break b;default:break a}}b=0;e=F[c+20>>2];g=F[c+12>>2];j=F[c+16>>2];g:{if((e|0)>=(g|0)&j>>>0>=I[c+8>>2]|(e|0)>(g|0)){break g}g=G[j+F[c>>2]|0];j=j+1|0;e=j?e:e+1|0;F[c+16>>2]=j;F[c+20>>2]=e;h:{switch(g-1|0){case 8:m=a;t=d;g=ea+-64|0;ea=g;F[g+56>>2]=0;F[g+48>>2]=0;F[g+52>>2]=0;F[g+40>>2]=0;F[g+44>>2]=0;F[g+32>>2]=0;F[g+36>>2]=0;F[g+24>>2]=0;F[g+28>>2]=0;F[g+16>>2]=0;F[g+20>>2]=0;F[g+8>>2]=0;F[g+12>>2]=0;h=g+8|0;a=H[c+38>>1];i:{j:{if(!a){break j}k:{if(a>>>0<=511){a=F[c+12>>2];e=F[c+20>>2];b=F[c+16>>2];d=b+4|0;e=d>>>0<4?e+1|0:e;if((a|0)<=(e|0)&d>>>0>I[c+8>>2]|(a|0)<(e|0)){break j}a=b+F[c>>2]|0;i=G[a|0]|G[a+1|0]<<8|(G[a+2|0]<<16|G[a+3|0]<<24);F[h+12>>2]=i;e=F[c+20>>2];a=F[c+16>>2]+4|0;e=a>>>0<4?e+1|0:e;f=a;F[c+16>>2]=a;F[c+20>>2]=e;break k}if(!lb(1,h+12|0,c)){break j}f=F[c+16>>2];e=F[c+20>>2];i=F[h+12>>2]}a=F[c+8>>2];b=a-f|0;a=F[c+12>>2]-((a>>>0>>0)+e|0)|0;if(b>>>0>>6>>>0&(a|0)<=0|(a|0)<0){break j}b=F[h>>2];a=F[h+4>>2]-b>>2;l:{if(a>>>0>>0){Aa(h,i-a|0);i=F[h+12>>2];break l}if(a>>>0<=i>>>0){break l}F[h+4>>2]=b+(i<<2)}d=1;if(!i){break i}f=F[c+16>>2];e=F[c+20>>2];q=F[h>>2];r=F[c+8>>2];o=F[c+12>>2];b=0;while(1){d=0;if((e|0)>=(o|0)&f>>>0>=r>>>0|(e|0)>(o|0)){break i}d=F[c>>2];n=G[d+f|0];a=f+1|0;e=a?e:e+1|0;f=a;F[c+16>>2]=a;F[c+20>>2]=e;a=n>>>2|0;j=0;m:{n:{o:{p:{s=n&3;switch(s|0){case 0:break n;case 3:break p;default:break o}}a=a+b|0;d=0;if(a>>>0>=i>>>0){break i}ua(q+(b<<2)|0,0,(n&252)+4|0);b=a;break m}while(1){if((e|0)>=(o|0)&f>>>0>=r>>>0|(e|0)>(o|0)){break j}i=G[d+f|0];f=f+1|0;e=f?e:e+1|0;F[c+16>>2]=f;F[c+20>>2]=e;a=i<<(j<<3|6)|a;j=j+1|0;if((s|0)!=(j|0)){continue}break}}F[q+(b<<2)>>2]=a}b=b+1|0;i=F[h+12>>2];if(b>>>0>>0){continue}break}a=h+16|0;o=F[h>>2];d=F[h+16>>2];b=F[h+20>>2]-d|0;q:{if(b>>>0<=32767){Aa(a,8192-(b>>>2|0)|0);break q}if((b|0)==32768){break q}F[h+20>>2]=d+32768}d=h+28|0;b=F[d>>2];e=F[h+32>>2]-b>>3;r:{if(e>>>0>>0){tb(d,i-e|0);b=F[d>>2];break r}if(e>>>0>i>>>0){F[h+32>>2]=(i<<3)+b}if(!i){break j}}h=F[a>>2];e=0;d=0;while(1){f=o+(e<<2)|0;j=F[f>>2];n=(e<<3)+b|0;a=d;F[n+4>>2]=a;F[n>>2]=j;f=F[f>>2];d=f+a|0;if(d>>>0>8192){break j}s:{if(a>>>0>=d>>>0){break s}j=0;n=f&7;if(n){while(1){F[h+(a<<2)>>2]=e;a=a+1|0;j=j+1|0;if((n|0)!=(j|0)){continue}break}}if(f-1>>>0<=6){break s}while(1){f=h+(a<<2)|0;F[f>>2]=e;F[f+28>>2]=e;F[f+24>>2]=e;F[f+20>>2]=e;F[f+16>>2]=e;F[f+12>>2]=e;F[f+8>>2]=e;F[f+4>>2]=e;a=a+8|0;if((d|0)!=(a|0)){continue}break}}e=e+1|0;if((i|0)!=(e|0)){continue}break}k=(d|0)==8192}d=k}t:{if(!d|(F[g+20>>2]?0:m)){break t}d=0;j=ea-16|0;ea=j;u:{v:{if(H[c+38>>1]<=511){i=F[c+12>>2];a=i;e=F[c+20>>2];k=F[c+16>>2];f=k+8|0;e=f>>>0<8?e+1|0:e;b=F[c+8>>2];if(b>>>0>>0&(a|0)<=(e|0)|(a|0)<(e|0)){break u}k=k+F[c>>2]|0;a=G[k|0]|G[k+1|0]<<8|(G[k+2|0]<<16|G[k+3|0]<<24);k=G[k+4|0]|G[k+5|0]<<8|(G[k+6|0]<<16|G[k+7|0]<<24);F[c+16>>2]=f;F[c+20>>2]=e;break v}if(!kb(1,j+8|0,c)){break u}f=F[c+16>>2];e=F[c+20>>2];b=F[c+8>>2];i=F[c+12>>2];a=F[j+8>>2];k=F[j+12>>2]}h=b-f|0;b=i-((b>>>0>>0)+e|0)|0;if((b|0)==(k|0)&a>>>0>h>>>0|b>>>0>>0){break u}e=e+k|0;b=a+f|0;e=b>>>0>>0?e+1|0:e;F[c+16>>2]=b;F[c+20>>2]=e;if((a|0)<=0){break u}b=f+F[c>>2]|0;F[g+48>>2]=b;c=a-1|0;e=c+b|0;f=G[e|0];w:{if(f>>>0<=63){F[g+52>>2]=c;a=G[e|0]&63;break w}x:{switch((f>>>6|0)-1|0){case 0:if(a>>>0<2){break u}F[g+52>>2]=a-2;a=(a+b|0)-2|0;a=G[a+1|0]<<8&16128|G[a|0];break w;case 1:if(a>>>0<3){break u}F[g+52>>2]=a-3;a=(a+b|0)-3|0;a=G[a+1|0]<<8|G[a+2|0]<<16&4128768|G[a|0];break w;default:break x}}F[g+52>>2]=a-4;a=(a+b|0)-4|0;a=G[a+2|0]<<16|G[a+3|0]<<24&1056964608|G[a+1|0]<<8|G[a|0]}F[g+56>>2]=a+32768;d=a>>>0<8355840}ea=j+16|0;if(!d){break t}if(!m){l=1;break t}a=F[g+56>>2];b=F[g+36>>2];c=F[g+48>>2];d=F[g+24>>2];while(1){y:{if(a>>>0>32767){break y}l=F[g+52>>2];while(1){if((l|0)<=0){break y}l=l-1|0;F[g+52>>2]=l;a=G[c+l|0]|a<<8;F[g+56>>2]=a;if(a>>>0<32768){continue}break}}e=a&8191;f=F[d+(e<<2)>>2];l=b+(f<<3)|0;a=(L(F[l>>2],a>>>13|0)+e|0)-F[l+4>>2]|0;F[g+56>>2]=a;F[t+(p<<2)>>2]=f;l=1;p=p+1|0;if((m|0)!=(p|0)){continue}break}}a=F[g+36>>2];if(a){F[g+40>>2]=a;ra(a)}a=F[g+24>>2];if(a){F[g+28>>2]=a;ra(a)}a=F[g+8>>2];if(a){F[g+12>>2]=a;ra(a)}ea=g- -64|0;b=l;break g;case 9:m=a;t=d;g=ea+-64|0;ea=g;F[g+56>>2]=0;F[g+48>>2]=0;F[g+52>>2]=0;F[g+40>>2]=0;F[g+44>>2]=0;F[g+32>>2]=0;F[g+36>>2]=0;F[g+24>>2]=0;F[g+28>>2]=0;F[g+16>>2]=0;F[g+20>>2]=0;F[g+8>>2]=0;F[g+12>>2]=0;h=g+8|0;a=H[c+38>>1];z:{A:{if(!a){break A}B:{if(a>>>0<=511){a=F[c+12>>2];e=F[c+20>>2];b=F[c+16>>2];d=b+4|0;e=d>>>0<4?e+1|0:e;if((a|0)<=(e|0)&d>>>0>I[c+8>>2]|(a|0)<(e|0)){break A}a=b+F[c>>2]|0;i=G[a|0]|G[a+1|0]<<8|(G[a+2|0]<<16|G[a+3|0]<<24);F[h+12>>2]=i;e=F[c+20>>2];a=F[c+16>>2]+4|0;e=a>>>0<4?e+1|0:e;f=a;F[c+16>>2]=a;F[c+20>>2]=e;break B}if(!lb(1,h+12|0,c)){break A}f=F[c+16>>2];e=F[c+20>>2];i=F[h+12>>2]}a=F[c+8>>2];b=a-f|0;a=F[c+12>>2]-((a>>>0>>0)+e|0)|0;if(b>>>0>>6>>>0&(a|0)<=0|(a|0)<0){break A}b=F[h>>2];a=F[h+4>>2]-b>>2;C:{if(a>>>0>>0){Aa(h,i-a|0);i=F[h+12>>2];break C}if(a>>>0<=i>>>0){break C}F[h+4>>2]=b+(i<<2)}d=1;if(!i){break z}f=F[c+16>>2];e=F[c+20>>2];q=F[h>>2];r=F[c+8>>2];o=F[c+12>>2];b=0;while(1){d=0;if((e|0)>=(o|0)&f>>>0>=r>>>0|(e|0)>(o|0)){break z}d=F[c>>2];n=G[d+f|0];a=f+1|0;e=a?e:e+1|0;f=a;F[c+16>>2]=a;F[c+20>>2]=e;a=n>>>2|0;j=0;D:{E:{F:{G:{s=n&3;switch(s|0){case 0:break E;case 3:break G;default:break F}}a=a+b|0;d=0;if(a>>>0>=i>>>0){break z}ua(q+(b<<2)|0,0,(n&252)+4|0);b=a;break D}while(1){if((e|0)>=(o|0)&f>>>0>=r>>>0|(e|0)>(o|0)){break A}i=G[d+f|0];f=f+1|0;e=f?e:e+1|0;F[c+16>>2]=f;F[c+20>>2]=e;a=i<<(j<<3|6)|a;j=j+1|0;if((s|0)!=(j|0)){continue}break}}F[q+(b<<2)>>2]=a}b=b+1|0;i=F[h+12>>2];if(b>>>0>>0){continue}break}a=h+16|0;o=F[h>>2];d=F[h+16>>2];b=F[h+20>>2]-d|0;H:{if(b>>>0<=131071){Aa(a,32768-(b>>>2|0)|0);break H}if((b|0)==131072){break H}F[h+20>>2]=d+131072}d=h+28|0;b=F[d>>2];e=F[h+32>>2]-b>>3;I:{if(e>>>0>>0){tb(d,i-e|0);b=F[d>>2];break I}if(e>>>0>i>>>0){F[h+32>>2]=(i<<3)+b}if(!i){break A}}h=F[a>>2];e=0;d=0;while(1){f=o+(e<<2)|0;j=F[f>>2];n=(e<<3)+b|0;a=d;F[n+4>>2]=a;F[n>>2]=j;f=F[f>>2];d=f+a|0;if(d>>>0>32768){break A}J:{if(a>>>0>=d>>>0){break J}j=0;n=f&7;if(n){while(1){F[h+(a<<2)>>2]=e;a=a+1|0;j=j+1|0;if((n|0)!=(j|0)){continue}break}}if(f-1>>>0<=6){break J}while(1){f=h+(a<<2)|0;F[f>>2]=e;F[f+28>>2]=e;F[f+24>>2]=e;F[f+20>>2]=e;F[f+16>>2]=e;F[f+12>>2]=e;F[f+8>>2]=e;F[f+4>>2]=e;a=a+8|0;if((d|0)!=(a|0)){continue}break}}e=e+1|0;if((i|0)!=(e|0)){continue}break}k=(d|0)==32768}d=k}K:{if(!d|(F[g+20>>2]?0:m)){break K}d=0;h=ea-16|0;ea=h;L:{M:{if(H[c+38>>1]<=511){i=F[c+12>>2];a=i;e=F[c+20>>2];k=F[c+16>>2];f=k+8|0;e=f>>>0<8?e+1|0:e;b=F[c+8>>2];if(b>>>0>>0&(a|0)<=(e|0)|(a|0)<(e|0)){break L}k=k+F[c>>2]|0;a=G[k|0]|G[k+1|0]<<8|(G[k+2|0]<<16|G[k+3|0]<<24);k=G[k+4|0]|G[k+5|0]<<8|(G[k+6|0]<<16|G[k+7|0]<<24);F[c+16>>2]=f;F[c+20>>2]=e;break M}if(!kb(1,h+8|0,c)){break L}f=F[c+16>>2];e=F[c+20>>2];b=F[c+8>>2];i=F[c+12>>2];a=F[h+8>>2];k=F[h+12>>2]}j=b-f|0;b=i-((b>>>0>>0)+e|0)|0;if((b|0)==(k|0)&a>>>0>j>>>0|b>>>0>>0){break L}j=e+k|0;b=a+f|0;j=b>>>0>>0?j+1|0:j;F[c+16>>2]=b;F[c+20>>2]=j;if((a|0)<=0){break L}b=f+F[c>>2]|0;F[g+48>>2]=b;c=a-1|0;e=c+b|0;f=G[e|0];N:{if(f>>>0<=63){F[g+52>>2]=c;a=G[e|0]&63;break N}O:{switch((f>>>6|0)-1|0){case 0:if(a>>>0<2){break L}F[g+52>>2]=a-2;a=(a+b|0)-2|0;a=G[a+1|0]<<8&16128|G[a|0];break N;case 1:if(a>>>0<3){break L}F[g+52>>2]=a-3;a=(a+b|0)-3|0;a=G[a+1|0]<<8|G[a+2|0]<<16&4128768|G[a|0];break N;default:break O}}F[g+52>>2]=a-4;a=(a+b|0)-4|0;a=G[a+2|0]<<16|G[a+3|0]<<24&1056964608|G[a+1|0]<<8|G[a|0]}F[g+56>>2]=a+131072;d=a>>>0<33423360}ea=h+16|0;if(!d){break K}if(!m){l=1;break K}a=F[g+56>>2];b=F[g+36>>2];c=F[g+48>>2];d=F[g+24>>2];while(1){P:{if(a>>>0>131071){break P}l=F[g+52>>2];while(1){if((l|0)<=0){break P}l=l-1|0;F[g+52>>2]=l;a=G[c+l|0]|a<<8;F[g+56>>2]=a;if(a>>>0<131072){continue}break}}e=a&32767;f=F[d+(e<<2)>>2];l=b+(f<<3)|0;a=(L(F[l>>2],a>>>15|0)+e|0)-F[l+4>>2]|0;F[g+56>>2]=a;F[t+(p<<2)>>2]=f;l=1;p=p+1|0;if((m|0)!=(p|0)){continue}break}}a=F[g+36>>2];if(a){F[g+40>>2]=a;ra(a)}a=F[g+24>>2];if(a){F[g+28>>2]=a;ra(a)}a=F[g+8>>2];if(a){F[g+12>>2]=a;ra(a)}ea=g- -64|0;b=l;break g;case 10:m=a;t=d;g=ea+-64|0;ea=g;F[g+56>>2]=0;F[g+48>>2]=0;F[g+52>>2]=0;F[g+40>>2]=0;F[g+44>>2]=0;F[g+32>>2]=0;F[g+36>>2]=0;F[g+24>>2]=0;F[g+28>>2]=0;F[g+16>>2]=0;F[g+20>>2]=0;F[g+8>>2]=0;F[g+12>>2]=0;h=g+8|0;a=H[c+38>>1];Q:{R:{if(!a){break R}S:{if(a>>>0<=511){a=F[c+12>>2];e=F[c+20>>2];b=F[c+16>>2];d=b+4|0;e=d>>>0<4?e+1|0:e;if((a|0)<=(e|0)&d>>>0>I[c+8>>2]|(a|0)<(e|0)){break R}a=b+F[c>>2]|0;i=G[a|0]|G[a+1|0]<<8|(G[a+2|0]<<16|G[a+3|0]<<24);F[h+12>>2]=i;e=F[c+20>>2];a=F[c+16>>2]+4|0;e=a>>>0<4?e+1|0:e;f=a;F[c+16>>2]=a;F[c+20>>2]=e;break S}if(!lb(1,h+12|0,c)){break R}f=F[c+16>>2];e=F[c+20>>2];i=F[h+12>>2]}a=F[c+8>>2];b=a-f|0;a=F[c+12>>2]-((a>>>0>>0)+e|0)|0;if(b>>>0>>6>>>0&(a|0)<=0|(a|0)<0){break R}b=F[h>>2];a=F[h+4>>2]-b>>2;T:{if(a>>>0>>0){Aa(h,i-a|0);i=F[h+12>>2];break T}if(a>>>0<=i>>>0){break T}F[h+4>>2]=b+(i<<2)}d=1;if(!i){break Q}f=F[c+16>>2];e=F[c+20>>2];q=F[h>>2];r=F[c+8>>2];o=F[c+12>>2];b=0;while(1){d=0;if((e|0)>=(o|0)&f>>>0>=r>>>0|(e|0)>(o|0)){break Q}d=F[c>>2];n=G[d+f|0];a=f+1|0;j=a?e:e+1|0;f=a;F[c+16>>2]=a;e=j;F[c+20>>2]=e;a=n>>>2|0;j=0;U:{V:{W:{X:{s=n&3;switch(s|0){case 0:break V;case 3:break X;default:break W}}a=a+b|0;d=0;if(a>>>0>=i>>>0){break Q}ua(q+(b<<2)|0,0,(n&252)+4|0);b=a;break U}while(1){if((e|0)>=(o|0)&f>>>0>=r>>>0|(e|0)>(o|0)){break R}i=G[d+f|0];f=f+1|0;e=f?e:e+1|0;F[c+16>>2]=f;F[c+20>>2]=e;a=i<<(j<<3|6)|a;j=j+1|0;if((s|0)!=(j|0)){continue}break}}F[q+(b<<2)>>2]=a}b=b+1|0;i=F[h+12>>2];if(b>>>0>>0){continue}break}a=h+16|0;o=F[h>>2];d=F[h+16>>2];b=F[h+20>>2]-d|0;Y:{if(b>>>0<=262143){Aa(a,65536-(b>>>2|0)|0);break Y}if((b|0)==262144){break Y}F[h+20>>2]=d+262144}d=h+28|0;b=F[d>>2];e=F[h+32>>2]-b>>3;Z:{if(e>>>0>>0){tb(d,i-e|0);b=F[d>>2];break Z}if(e>>>0>i>>>0){F[h+32>>2]=(i<<3)+b}if(!i){break R}}h=F[a>>2];e=0;d=0;while(1){f=o+(e<<2)|0;j=F[f>>2];n=(e<<3)+b|0;a=d;F[n+4>>2]=a;F[n>>2]=j;f=F[f>>2];d=f+a|0;if(d>>>0>65536){break R}_:{if(a>>>0>=d>>>0){break _}j=0;n=f&7;if(n){while(1){F[h+(a<<2)>>2]=e;a=a+1|0;j=j+1|0;if((n|0)!=(j|0)){continue}break}}if(f-1>>>0<=6){break _}while(1){f=h+(a<<2)|0;F[f>>2]=e;F[f+28>>2]=e;F[f+24>>2]=e;F[f+20>>2]=e;F[f+16>>2]=e;F[f+12>>2]=e;F[f+8>>2]=e;F[f+4>>2]=e;a=a+8|0;if((d|0)!=(a|0)){continue}break}}e=e+1|0;if((i|0)!=(e|0)){continue}break}k=(d|0)==65536}d=k}$:{if(!d|(F[g+20>>2]?0:m)){break $}d=0;j=ea-16|0;ea=j;aa:{ba:{if(H[c+38>>1]<=511){i=F[c+12>>2];a=i;e=F[c+20>>2];k=F[c+16>>2];f=k+8|0;e=f>>>0<8?e+1|0:e;b=F[c+8>>2];if(b>>>0>>0&(a|0)<=(e|0)|(a|0)<(e|0)){break aa}k=k+F[c>>2]|0;a=G[k|0]|G[k+1|0]<<8|(G[k+2|0]<<16|G[k+3|0]<<24);k=G[k+4|0]|G[k+5|0]<<8|(G[k+6|0]<<16|G[k+7|0]<<24);F[c+16>>2]=f;F[c+20>>2]=e;break ba}if(!kb(1,j+8|0,c)){break aa}f=F[c+16>>2];e=F[c+20>>2];b=F[c+8>>2];i=F[c+12>>2];a=F[j+8>>2];k=F[j+12>>2]}h=b-f|0;b=i-((b>>>0>>0)+e|0)|0;if((b|0)==(k|0)&a>>>0>h>>>0|b>>>0>>0){break aa}e=e+k|0;b=a+f|0;e=b>>>0>>0?e+1|0:e;F[c+16>>2]=b;F[c+20>>2]=e;if((a|0)<=0){break aa}b=f+F[c>>2]|0;F[g+48>>2]=b;c=a-1|0;e=c+b|0;f=G[e|0];ca:{if(f>>>0<=63){F[g+52>>2]=c;a=G[e|0]&63;break ca}da:{switch((f>>>6|0)-1|0){case 0:if(a>>>0<2){break aa}F[g+52>>2]=a-2;a=(a+b|0)-2|0;a=G[a+1|0]<<8&16128|G[a|0];break ca;case 1:if(a>>>0<3){break aa}F[g+52>>2]=a-3;a=(a+b|0)-3|0;a=G[a+1|0]<<8|G[a+2|0]<<16&4128768|G[a|0];break ca;default:break da}}F[g+52>>2]=a-4;a=(a+b|0)-4|0;a=G[a+2|0]<<16|G[a+3|0]<<24&1056964608|G[a+1|0]<<8|G[a|0]}F[g+56>>2]=a+262144;d=a>>>0<66846720}ea=j+16|0;if(!d){break $}if(!m){l=1;break $}a=F[g+56>>2];b=F[g+36>>2];c=F[g+48>>2];d=F[g+24>>2];while(1){ea:{if(a>>>0>262143){break ea}l=F[g+52>>2];while(1){if((l|0)<=0){break ea}l=l-1|0;F[g+52>>2]=l;a=G[c+l|0]|a<<8;F[g+56>>2]=a;if(a>>>0<262144){continue}break}}e=a&65535;f=F[d+(e<<2)>>2];l=b+(f<<3)|0;a=(L(F[l>>2],a>>>16|0)+e|0)-F[l+4>>2]|0;F[g+56>>2]=a;F[t+(p<<2)>>2]=f;l=1;p=p+1|0;if((m|0)!=(p|0)){continue}break}}a=F[g+36>>2];if(a){F[g+40>>2]=a;ra(a)}a=F[g+24>>2];if(a){F[g+28>>2]=a;ra(a)}a=F[g+8>>2];if(a){F[g+12>>2]=a;ra(a)}ea=g- -64|0;b=l;break g;case 11:m=a;t=d;g=ea+-64|0;ea=g;F[g+56>>2]=0;F[g+48>>2]=0;F[g+52>>2]=0;F[g+40>>2]=0;F[g+44>>2]=0;F[g+32>>2]=0;F[g+36>>2]=0;F[g+24>>2]=0;F[g+28>>2]=0;F[g+16>>2]=0;F[g+20>>2]=0;F[g+8>>2]=0;F[g+12>>2]=0;h=g+8|0;a=H[c+38>>1];fa:{ga:{if(!a){break ga}ha:{if(a>>>0<=511){a=F[c+12>>2];e=F[c+20>>2];b=F[c+16>>2];d=b+4|0;e=d>>>0<4?e+1|0:e;if((a|0)<=(e|0)&d>>>0>I[c+8>>2]|(a|0)<(e|0)){break ga}a=b+F[c>>2]|0;i=G[a|0]|G[a+1|0]<<8|(G[a+2|0]<<16|G[a+3|0]<<24);F[h+12>>2]=i;j=F[c+20>>2];a=F[c+16>>2]+4|0;j=a>>>0<4?j+1|0:j;f=a;F[c+16>>2]=a;e=j;F[c+20>>2]=e;break ha}if(!lb(1,h+12|0,c)){break ga}f=F[c+16>>2];e=F[c+20>>2];i=F[h+12>>2]}a=F[c+8>>2];b=a-f|0;a=F[c+12>>2]-((a>>>0>>0)+e|0)|0;if(b>>>0>>6>>>0&(a|0)<=0|(a|0)<0){break ga}b=F[h>>2];a=F[h+4>>2]-b>>2;ia:{if(a>>>0>>0){Aa(h,i-a|0);i=F[h+12>>2];break ia}if(a>>>0<=i>>>0){break ia}F[h+4>>2]=b+(i<<2)}d=1;if(!i){break fa}f=F[c+16>>2];e=F[c+20>>2];q=F[h>>2];r=F[c+8>>2];o=F[c+12>>2];b=0;while(1){d=0;if((e|0)>=(o|0)&f>>>0>=r>>>0|(e|0)>(o|0)){break fa}d=F[c>>2];n=G[d+f|0];a=f+1|0;e=a?e:e+1|0;f=a;F[c+16>>2]=a;F[c+20>>2]=e;a=n>>>2|0;j=0;ja:{ka:{la:{ma:{s=n&3;switch(s|0){case 0:break ka;case 3:break ma;default:break la}}a=a+b|0;d=0;if(a>>>0>=i>>>0){break fa}ua(q+(b<<2)|0,0,(n&252)+4|0);b=a;break ja}while(1){if((e|0)>=(o|0)&f>>>0>=r>>>0|(e|0)>(o|0)){break ga}i=G[d+f|0];f=f+1|0;e=f?e:e+1|0;F[c+16>>2]=f;F[c+20>>2]=e;a=i<<(j<<3|6)|a;j=j+1|0;if((s|0)!=(j|0)){continue}break}}F[q+(b<<2)>>2]=a}b=b+1|0;i=F[h+12>>2];if(b>>>0>>0){continue}break}a=h+16|0;o=F[h>>2];d=F[h+16>>2];b=F[h+20>>2]-d|0;na:{if(b>>>0<=1048575){Aa(a,262144-(b>>>2|0)|0);break na}if((b|0)==1048576){break na}F[h+20>>2]=d- -1048576}d=h+28|0;b=F[d>>2];e=F[h+32>>2]-b>>3;oa:{if(e>>>0>>0){tb(d,i-e|0);b=F[d>>2];break oa}if(e>>>0>i>>>0){F[h+32>>2]=(i<<3)+b}if(!i){break ga}}h=F[a>>2];e=0;d=0;while(1){f=o+(e<<2)|0;j=F[f>>2];n=(e<<3)+b|0;a=d;F[n+4>>2]=a;F[n>>2]=j;f=F[f>>2];d=f+a|0;if(d>>>0>262144){break ga}pa:{if(a>>>0>=d>>>0){break pa}j=0;n=f&7;if(n){while(1){F[h+(a<<2)>>2]=e;a=a+1|0;j=j+1|0;if((n|0)!=(j|0)){continue}break}}if(f-1>>>0<=6){break pa}while(1){f=h+(a<<2)|0;F[f>>2]=e;F[f+28>>2]=e;F[f+24>>2]=e;F[f+20>>2]=e;F[f+16>>2]=e;F[f+12>>2]=e;F[f+8>>2]=e;F[f+4>>2]=e;a=a+8|0;if((d|0)!=(a|0)){continue}break}}e=e+1|0;if((i|0)!=(e|0)){continue}break}k=(d|0)==262144}d=k}qa:{if(!d|(F[g+20>>2]?0:m)){break qa}d=0;h=ea-16|0;ea=h;ra:{sa:{if(H[c+38>>1]<=511){i=F[c+12>>2];a=i;j=F[c+20>>2];k=F[c+16>>2];e=k+8|0;j=e>>>0<8?j+1|0:j;b=F[c+8>>2];f=e;e=j;if(b>>>0>>0&(e|0)>=(a|0)|(a|0)<(e|0)){break ra}k=k+F[c>>2]|0;a=G[k|0]|G[k+1|0]<<8|(G[k+2|0]<<16|G[k+3|0]<<24);k=G[k+4|0]|G[k+5|0]<<8|(G[k+6|0]<<16|G[k+7|0]<<24);F[c+16>>2]=f;F[c+20>>2]=e;break sa}if(!kb(1,h+8|0,c)){break ra}f=F[c+16>>2];e=F[c+20>>2];b=F[c+8>>2];i=F[c+12>>2];a=F[h+8>>2];k=F[h+12>>2]}j=b-f|0;b=i-((b>>>0>>0)+e|0)|0;if((b|0)==(k|0)&a>>>0>j>>>0|b>>>0>>0){break ra}e=e+k|0;b=a+f|0;e=b>>>0>>0?e+1|0:e;F[c+16>>2]=b;F[c+20>>2]=e;if((a|0)<=0){break ra}b=f+F[c>>2]|0;F[g+48>>2]=b;c=a-1|0;e=c+b|0;f=G[e|0];ta:{if(f>>>0<=63){F[g+52>>2]=c;a=G[e|0]&63;break ta}ua:{switch((f>>>6|0)-1|0){case 0:if(a>>>0<2){break ra}F[g+52>>2]=a-2;a=(a+b|0)-2|0;a=G[a+1|0]<<8&16128|G[a|0];break ta;case 1:if(a>>>0<3){break ra}F[g+52>>2]=a-3;a=(a+b|0)-3|0;a=G[a+1|0]<<8|G[a+2|0]<<16&4128768|G[a|0];break ta;default:break ua}}F[g+52>>2]=a-4;a=(a+b|0)-4|0;a=G[a+2|0]<<16|G[a+3|0]<<24&1056964608|G[a+1|0]<<8|G[a|0]}F[g+56>>2]=a- -1048576;d=a>>>0<267386880}ea=h+16|0;if(!d){break qa}if(!m){l=1;break qa}a=F[g+56>>2];b=F[g+36>>2];c=F[g+48>>2];d=F[g+24>>2];while(1){va:{if(a>>>0>1048575){break va}l=F[g+52>>2];while(1){if((l|0)<=0){break va}l=l-1|0;F[g+52>>2]=l;a=G[c+l|0]|a<<8;F[g+56>>2]=a;if(a>>>0<1048576){continue}break}}e=a&262143;f=F[d+(e<<2)>>2];l=b+(f<<3)|0;a=(L(F[l>>2],a>>>18|0)+e|0)-F[l+4>>2]|0;F[g+56>>2]=a;F[t+(p<<2)>>2]=f;l=1;p=p+1|0;if((m|0)!=(p|0)){continue}break}}a=F[g+36>>2];if(a){F[g+40>>2]=a;ra(a)}a=F[g+24>>2];if(a){F[g+28>>2]=a;ra(a)}a=F[g+8>>2];if(a){F[g+12>>2]=a;ra(a)}ea=g- -64|0;b=l;break g;case 12:m=a;t=d;g=ea+-64|0;ea=g;F[g+56>>2]=0;F[g+48>>2]=0;F[g+52>>2]=0;F[g+40>>2]=0;F[g+44>>2]=0;F[g+32>>2]=0;F[g+36>>2]=0;F[g+24>>2]=0;F[g+28>>2]=0;F[g+16>>2]=0;F[g+20>>2]=0;F[g+8>>2]=0;F[g+12>>2]=0;h=g+8|0;a=H[c+38>>1];wa:{xa:{if(!a){break xa}ya:{if(a>>>0<=511){a=F[c+12>>2];j=F[c+20>>2];b=F[c+16>>2];d=b+4|0;j=d>>>0<4?j+1|0:j;if((a|0)<=(j|0)&d>>>0>I[c+8>>2]|(a|0)<(j|0)){break xa}a=b+F[c>>2]|0;i=G[a|0]|G[a+1|0]<<8|(G[a+2|0]<<16|G[a+3|0]<<24);F[h+12>>2]=i;e=F[c+20>>2];a=F[c+16>>2]+4|0;e=a>>>0<4?e+1|0:e;f=a;F[c+16>>2]=a;F[c+20>>2]=e;break ya}if(!lb(1,h+12|0,c)){break xa}f=F[c+16>>2];e=F[c+20>>2];i=F[h+12>>2]}a=F[c+8>>2];b=a-f|0;a=F[c+12>>2]-((a>>>0>>0)+e|0)|0;if(b>>>0>>6>>>0&(a|0)<=0|(a|0)<0){break xa}b=F[h>>2];a=F[h+4>>2]-b>>2;za:{if(a>>>0>>0){Aa(h,i-a|0);i=F[h+12>>2];break za}if(a>>>0<=i>>>0){break za}F[h+4>>2]=b+(i<<2)}d=1;if(!i){break wa}f=F[c+16>>2];e=F[c+20>>2];q=F[h>>2];r=F[c+8>>2];o=F[c+12>>2];b=0;while(1){d=0;if((e|0)>=(o|0)&f>>>0>=r>>>0|(e|0)>(o|0)){break wa}d=F[c>>2];n=G[d+f|0];a=f+1|0;e=a?e:e+1|0;f=a;F[c+16>>2]=a;F[c+20>>2]=e;a=n>>>2|0;j=0;Aa:{Ba:{Ca:{Da:{s=n&3;switch(s|0){case 0:break Ba;case 3:break Da;default:break Ca}}a=a+b|0;d=0;if(a>>>0>=i>>>0){break wa}ua(q+(b<<2)|0,0,(n&252)+4|0);b=a;break Aa}while(1){if((e|0)>=(o|0)&f>>>0>=r>>>0|(e|0)>(o|0)){break xa}i=G[d+f|0];f=f+1|0;e=f?e:e+1|0;F[c+16>>2]=f;F[c+20>>2]=e;a=i<<(j<<3|6)|a;j=j+1|0;if((s|0)!=(j|0)){continue}break}}F[q+(b<<2)>>2]=a}b=b+1|0;i=F[h+12>>2];if(b>>>0>>0){continue}break}a=h+16|0;o=F[h>>2];d=F[h+16>>2];b=F[h+20>>2]-d|0;Ea:{if(b>>>0<=2097151){Aa(a,524288-(b>>>2|0)|0);break Ea}if((b|0)==2097152){break Ea}F[h+20>>2]=d+2097152}d=h+28|0;b=F[d>>2];e=F[h+32>>2]-b>>3;Fa:{if(e>>>0>>0){tb(d,i-e|0);b=F[d>>2];break Fa}if(e>>>0>i>>>0){F[h+32>>2]=(i<<3)+b}if(!i){break xa}}h=F[a>>2];e=0;d=0;while(1){f=o+(e<<2)|0;j=F[f>>2];n=(e<<3)+b|0;a=d;F[n+4>>2]=a;F[n>>2]=j;f=F[f>>2];d=f+a|0;if(d>>>0>524288){break xa}Ga:{if(a>>>0>=d>>>0){break Ga}j=0;n=f&7;if(n){while(1){F[h+(a<<2)>>2]=e;a=a+1|0;j=j+1|0;if((n|0)!=(j|0)){continue}break}}if(f-1>>>0<=6){break Ga}while(1){f=h+(a<<2)|0;F[f>>2]=e;F[f+28>>2]=e;F[f+24>>2]=e;F[f+20>>2]=e;F[f+16>>2]=e;F[f+12>>2]=e;F[f+8>>2]=e;F[f+4>>2]=e;a=a+8|0;if((d|0)!=(a|0)){continue}break}}e=e+1|0;if((i|0)!=(e|0)){continue}break}k=(d|0)==524288}d=k}Ha:{if(!d|(F[g+20>>2]?0:m)){break Ha}d=0;j=ea-16|0;ea=j;Ia:{Ja:{if(H[c+38>>1]<=511){i=F[c+12>>2];a=i;e=F[c+20>>2];k=F[c+16>>2];f=k+8|0;e=f>>>0<8?e+1|0:e;b=F[c+8>>2];if(b>>>0>>0&(a|0)<=(e|0)|(a|0)<(e|0)){break Ia}k=k+F[c>>2]|0;a=G[k|0]|G[k+1|0]<<8|(G[k+2|0]<<16|G[k+3|0]<<24);k=G[k+4|0]|G[k+5|0]<<8|(G[k+6|0]<<16|G[k+7|0]<<24);F[c+16>>2]=f;F[c+20>>2]=e;break Ja}if(!kb(1,j+8|0,c)){break Ia}f=F[c+16>>2];e=F[c+20>>2];b=F[c+8>>2];i=F[c+12>>2];a=F[j+8>>2];k=F[j+12>>2]}h=b-f|0;b=i-((b>>>0>>0)+e|0)|0;if((b|0)==(k|0)&a>>>0>h>>>0|b>>>0>>0){break Ia}e=e+k|0;b=a+f|0;e=b>>>0>>0?e+1|0:e;F[c+16>>2]=b;F[c+20>>2]=e;if((a|0)<=0){break Ia}b=f+F[c>>2]|0;F[g+48>>2]=b;c=a-1|0;e=c+b|0;f=G[e|0];Ka:{if(f>>>0<=63){F[g+52>>2]=c;a=G[e|0]&63;break Ka}La:{switch((f>>>6|0)-1|0){case 0:if(a>>>0<2){break Ia}F[g+52>>2]=a-2;a=(a+b|0)-2|0;a=G[a+1|0]<<8&16128|G[a|0];break Ka;case 1:if(a>>>0<3){break Ia}F[g+52>>2]=a-3;a=(a+b|0)-3|0;a=G[a+1|0]<<8|G[a+2|0]<<16&4128768|G[a|0];break Ka;default:break La}}F[g+52>>2]=a-4;a=(a+b|0)-4|0;a=G[a+2|0]<<16|G[a+3|0]<<24&1056964608|G[a+1|0]<<8|G[a|0]}F[g+56>>2]=a+2097152;d=a>>>0<534773760}ea=j+16|0;if(!d){break Ha}if(!m){l=1;break Ha}a=F[g+56>>2];b=F[g+36>>2];c=F[g+48>>2];d=F[g+24>>2];while(1){Ma:{if(a>>>0>2097151){break Ma}l=F[g+52>>2];while(1){if((l|0)<=0){break Ma}l=l-1|0;F[g+52>>2]=l;a=G[c+l|0]|a<<8;F[g+56>>2]=a;if(a>>>0<2097152){continue}break}}e=a&524287;f=F[d+(e<<2)>>2];l=b+(f<<3)|0;a=(L(F[l>>2],a>>>19|0)+e|0)-F[l+4>>2]|0;F[g+56>>2]=a;F[t+(p<<2)>>2]=f;l=1;p=p+1|0;if((m|0)!=(p|0)){continue}break}}a=F[g+36>>2];if(a){F[g+40>>2]=a;ra(a)}a=F[g+24>>2];if(a){F[g+28>>2]=a;ra(a)}a=F[g+8>>2];if(a){F[g+12>>2]=a;ra(a)}ea=g- -64|0;b=l;break g;case 17:b=Ie(a,c,d);break g;case 0:case 1:case 2:case 3:case 4:case 5:case 6:case 7:e=ea+-64|0;ea=e;F[e+56>>2]=0;F[e+48>>2]=0;F[e+52>>2]=0;F[e+40>>2]=0;F[e+44>>2]=0;F[e+32>>2]=0;F[e+36>>2]=0;F[e+24>>2]=0;F[e+28>>2]=0;F[e+16>>2]=0;F[e+20>>2]=0;F[e+8>>2]=0;F[e+12>>2]=0;Na:{if(!Ke(e+8|0,c)|(F[e+20>>2]?0:a)){break Na}if(!Je(e+8|0,c)){break Na}if(!a){b=1;break Na}c=F[e+56>>2];l=F[e+36>>2];k=F[e+48>>2];j=F[e+24>>2];while(1){Oa:{if(c>>>0>16383){break Oa}b=F[e+52>>2];while(1){if((b|0)<=0){break Oa}b=b-1|0;F[e+52>>2]=b;c=G[b+k|0]|c<<8;F[e+56>>2]=c;if(c>>>0<16384){continue}break}}b=c&4095;g=F[j+(b<<2)>>2];m=l+(g<<3)|0;c=(L(F[m>>2],c>>>12|0)+b|0)-F[m+4>>2]|0;F[e+56>>2]=c;F[(f<<2)+d>>2]=g;b=1;f=f+1|0;if((f|0)!=(a|0)){continue}break}}a=F[e+36>>2];if(a){F[e+40>>2]=a;ra(a)}a=F[e+24>>2];if(a){F[e+28>>2]=a;ra(a)}a=F[e+8>>2];if(a){F[e+12>>2]=a;ra(a)}ea=e- -64|0;break g;case 13:case 14:case 15:case 16:break h;default:break g}}b=Ie(a,c,d)}f=b}return f}function fi(a){a=a|0;var b=0,c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,J=0,K=0,M=0,N=0,O=0,P=0,Q=0,R=0;s=ea+-64|0;ea=s;F[a+132>>2]=0;if(F[a+148>>2]){b=F[a+144>>2];if(b){while(1){d=F[b>>2];ra(b);b=d;if(b){continue}break}}b=0;F[a+144>>2]=0;d=F[a+140>>2];a:{if(!d){break a}if(d-1>>>0>=3){c=d&-4;while(1){g=b<<2;F[g+F[a+136>>2]>>2]=0;F[F[a+136>>2]+(g|4)>>2]=0;F[F[a+136>>2]+(g|8)>>2]=0;F[F[a+136>>2]+(g|12)>>2]=0;b=b+4|0;j=j+4|0;if((c|0)!=(j|0)){continue}break}}d=d&3;if(!d){break a}while(1){F[F[a+136>>2]+(b<<2)>>2]=0;b=b+1|0;w=w+1|0;if((d|0)!=(w|0)){continue}break}}F[a+148>>2]=0}b:{c:{d:{e:{b=F[a+4>>2];w=G[b+36|0];g=w<<8|G[b+37|0];if(g>>>0<=513){d=F[b+32>>2];f:{if(g>>>0<=511){g=F[d+20>>2];c=F[d+16>>2];j=c+4|0;g=j>>>0<4?g+1|0:g;e=j;j=F[d+12>>2];if(e>>>0>I[d+8>>2]&(j|0)<=(g|0)|(g|0)>(j|0)){break e}c=c+F[d>>2]|0;j=G[c|0]|G[c+1|0]<<8|(G[c+2|0]<<16|G[c+3|0]<<24);F[d+16>>2]=e;F[d+20>>2]=g;break f}if(!Ga(1,s,d)){break e}b=F[a+4>>2];w=G[b+36|0];j=F[s>>2]}F[a+132>>2]=j}g=F[b+32>>2];g:{h:{i:{if((w&255)>>>0<=1){w=0;d=F[g+20>>2];c=F[g+16>>2];j=c+4|0;d=j>>>0<4?d+1|0:d;e=F[g+12>>2];if((e|0)<=(d|0)&j>>>0>I[g+8>>2]|(d|0)>(e|0)){break c}c=c+F[g>>2]|0;c=G[c|0]|G[c+1|0]<<8|(G[c+2|0]<<16|G[c+3|0]<<24);F[s+60>>2]=c;F[g+16>>2]=j;F[g+20>>2]=d;F[a+156>>2]=c;c=a+156|0;break i}w=0;if(!Ga(1,s+60|0,g)){break c}b=F[a+4>>2];d=G[b+36|0];F[a+156>>2]=F[s+60>>2];c=a+156|0;if(d>>>0>1){break h}}d=F[b+32>>2];b=F[d+8>>2];g=F[d+12>>2];h=b;b=F[d+20>>2];j=F[d+16>>2];e=j+4|0;b=e>>>0<4?b+1|0:b;if(h>>>0>>0&(b|0)>=(g|0)|(b|0)>(g|0)){break c}g=j+F[d>>2]|0;j=G[g|0]|G[g+1|0]<<8|(G[g+2|0]<<16|G[g+3|0]<<24);F[s+56>>2]=j;F[d+16>>2]=e;F[d+20>>2]=b;break g}if(!Ga(1,s+56|0,F[b+32>>2])){break c}j=F[s+56>>2]}if(j>>>0>1431655765|I[c>>2]>L(j,3)>>>0){break c}f=F[a+4>>2];g=F[f+32>>2];k=F[g+8>>2];b=k;c=F[g+12>>2];d=F[g+20>>2];e=F[g+16>>2];if((c|0)<=(d|0)&e>>>0>=b>>>0|(d|0)>(c|0)){break c}m=F[g>>2];l=G[m+e|0];b=d;A=e+1|0;b=A?b:b+1|0;F[g+16>>2]=A;F[g+20>>2]=b;j:{if(G[f+36|0]<=1){b=c;c=e+5|0;d=c>>>0<5?d+1|0:d;e=c;if((b|0)<=(d|0)&c>>>0>k>>>0|(b|0)<(d|0)){break c}b=m+A|0;c=G[b|0]|G[b+1|0]<<8|(G[b+2|0]<<16|G[b+3|0]<<24);F[s+52>>2]=c;F[g+16>>2]=e;F[g+20>>2]=d;break j}if(!Ga(1,s+52|0,g)){break c}c=F[s+52>>2]}if(((c>>>0)/3|0)+c>>>0>>0|c>>>0>j>>>0){break c}b=F[a+4>>2];g=F[b+32>>2];k:{if(G[b+36|0]<=1){b=F[g+20>>2];d=F[g+16>>2];e=d+4|0;b=e>>>0<4?b+1|0:b;f=F[g+12>>2];if((f|0)<=(b|0)&e>>>0>I[g+8>>2]|(b|0)>(f|0)){break c}d=d+F[g>>2]|0;d=G[d|0]|G[d+1|0]<<8|(G[d+2|0]<<16|G[d+3|0]<<24);F[s+48>>2]=d;F[g+16>>2]=e;F[g+20>>2]=b;break k}if(!Ga(1,s+48|0,g)){break c}d=F[s+48>>2]}if(d>>>0>c>>>0){break c}F[a+28>>2]=F[a+24>>2];g=$b(sa(88));b=F[a+8>>2];F[a+8>>2]=g;if(b){eb(b);if(!F[a+8>>2]){break c}}F[a+164>>2]=F[a+160>>2];Kb(a+160|0,j);F[a+176>>2]=F[a+172>>2];Kb(a+172|0,j);F[a- -64>>2]=0;F[a+92>>2]=-1;F[a+84>>2]=-1;F[a+88>>2]=-1;F[a+40>>2]=F[a+36>>2];F[a+52>>2]=F[a+48>>2];F[a+76>>2]=F[a+72>>2];C=a+216|0;cd(C);bd(C,l);if(!Jc(F[a+8>>2],j,F[a+156>>2]+d|0)){break c}b=F[a+156>>2];D[s|0]=1;Qa(a+120|0,b+d|0,s);b=F[a+4>>2];g=H[b+36>>1];g=(g<<8|g>>>8)&65535;l:{if(g>>>0<=513){b=F[b+32>>2];m:{if(g>>>0<=511){g=F[b+20>>2];j=F[b+16>>2];e=j+4|0;g=e>>>0<4?g+1|0:g;f=F[b+12>>2];if((f|0)<=(g|0)&e>>>0>I[b+8>>2]|(f|0)<(g|0)){break c}j=j+F[b>>2]|0;j=G[j|0]|G[j+1|0]<<8|(G[j+2|0]<<16|G[j+3|0]<<24);F[b+16>>2]=e;F[b+20>>2]=g;break m}if(!Ga(1,s+44|0,b)){break c}j=F[s+44>>2]}if(!j){break c}b=F[F[a+4>>2]+32>>2];g=F[b+8>>2];e=F[b+16>>2];f=g-e|0;b=F[b+12>>2]-(F[b+20>>2]+(e>>>0>g>>>0)|0)|0;if(f>>>0>>0&(b|0)<=0|(b|0)<0){break c}b=Ka(s);e=F[F[a+4>>2]+32>>2];g=F[e+16>>2];f=(g+F[e>>2]|0)+j|0;k=F[e+8>>2];g=(k-g|0)-j|0;E[b+38>>1]=H[e+38>>1];F[b>>2]=f;F[b+16>>2]=0;F[b+20>>2]=0;F[b+8>>2]=g;F[b+12>>2]=0;A=Jb(a,b);if((A|0)==-1){break c}N=A>>31;break l}A=-1;N=-1;if((Jb(a,F[b+32>>2])|0)==-1){break c}}f=a+232|0;Be(f,a);F[a+372>>2]=l;F[a+384>>2]=F[a+156>>2]+d;M=Ka(s);g=M;j=0;l=ea-16|0;ea=l;n:{o:{b=F[f+144>>2];b=H[(ga[F[F[b>>2]+32>>2]](b)|0)+36>>1];if(((b<<8|b>>>8)&65535)>>>0<=513){b=F[f+4>>2];F[f+40>>2]=F[f>>2];F[f+44>>2]=b;b=F[f+36>>2];F[f+72>>2]=F[f+32>>2];F[f+76>>2]=b;d=F[f+28>>2];b=f- -64|0;F[b>>2]=F[f+24>>2];F[b+4>>2]=d;b=F[f+20>>2];F[f+56>>2]=F[f+16>>2];F[f+60>>2]=b;b=F[f+12>>2];F[f+48>>2]=F[f+8>>2];F[f+52>>2]=b;if(!Fb(f+40|0,1,l+8|0)){break o}b=F[f+44>>2];F[f>>2]=F[f+40>>2];F[f+4>>2]=b;b=F[f+76>>2];F[f+32>>2]=F[f+72>>2];F[f+36>>2]=b;b=F[f+68>>2];F[f+24>>2]=F[f+64>>2];F[f+28>>2]=b;d=F[f+60>>2];e=d;b=F[f+56>>2];F[f+16>>2]=b;F[f+20>>2]=d;k=F[f+52>>2];d=F[f+48>>2];F[f+8>>2]=d;F[f+12>>2]=k;m=d-b|0;i=F[l+12>>2];d=k-((b>>>0>d>>>0)+e|0)|0;k=F[l+8>>2];if((i|0)==(d|0)&m>>>0>>0|d>>>0>>0){break o}d=b;k=b+k|0;b=e+i|0;F[f+16>>2]=k;F[f+20>>2]=d>>>0>k>>>0?b+1|0:b}p:{if(H[f+38>>1]<=513){b=F[f+4>>2];F[f+96>>2]=F[f>>2];F[f+100>>2]=b;b=F[f+36>>2];F[f+128>>2]=F[f+32>>2];F[f+132>>2]=b;b=F[f+28>>2];F[f+120>>2]=F[f+24>>2];F[f+124>>2]=b;b=F[f+20>>2];F[f+112>>2]=F[f+16>>2];F[f+116>>2]=b;b=F[f+12>>2];F[f+104>>2]=F[f+8>>2];F[f+108>>2]=b;if(!Fb(f+96|0,1,l+8|0)){break o}b=F[f+100>>2];F[f>>2]=F[f+96>>2];F[f+4>>2]=b;b=F[f+132>>2];F[f+32>>2]=F[f+128>>2];F[f+36>>2]=b;b=F[f+124>>2];F[f+24>>2]=F[f+120>>2];F[f+28>>2]=b;d=F[f+116>>2];e=d;b=F[f+112>>2];F[f+16>>2]=b;F[f+20>>2]=d;k=F[f+108>>2];d=F[f+104>>2];F[f+8>>2]=d;F[f+12>>2]=k;m=d-b|0;i=F[l+12>>2];d=k-((b>>>0>d>>>0)+e|0)|0;k=F[l+8>>2];if((i|0)==(d|0)&m>>>0>>0|d>>>0>>0){break o}d=e+i|0;k=b+k|0;d=k>>>0>>0?d+1|0:d;F[f+16>>2]=k;F[f+20>>2]=d;break p}if(!wa(f+80|0,f)){break n}}if(!Ce(f)){break n}b=F[f+4>>2];F[g>>2]=F[f>>2];F[g+4>>2]=b;b=F[f+36>>2];F[g+32>>2]=F[f+32>>2];F[g+36>>2]=b;b=F[f+28>>2];F[g+24>>2]=F[f+24>>2];F[g+28>>2]=b;b=F[f+20>>2];F[g+16>>2]=F[f+16>>2];F[g+20>>2]=b;b=F[f+12>>2];F[g+8>>2]=F[f+8>>2];F[g+12>>2]=b;b=F[f+144>>2];b=H[(ga[F[F[b>>2]+32>>2]](b)|0)+36>>1];q:{if(((b<<8|b>>>8)&65535)>>>0<=513){b=F[f+144>>2];r:{if(G[(ga[F[F[b>>2]+32>>2]](b)|0)+36|0]<=1){b=F[g+20>>2];d=F[g+16>>2];e=d+4|0;b=e>>>0<4?b+1|0:b;k=F[g+12>>2];if((k|0)<=(b|0)&e>>>0>I[g+8>>2]|(b|0)>(k|0)){break n}d=d+F[g>>2]|0;d=G[d|0]|G[d+1|0]<<8|(G[d+2|0]<<16|G[d+3|0]<<24);F[g+16>>2]=e;F[g+20>>2]=b;break r}if(!Ga(1,l+8|0,g)){break n}d=F[l+8>>2]}b=F[f+152>>2];if(d>>>0>=b>>>0){break n}d=F[g+20>>2];k=F[g+12>>2];e=F[g+16>>2];if((d|0)>=(k|0)&e>>>0>=I[g+8>>2]|(d|0)>(k|0)){break n}k=G[e+F[g>>2]|0];e=e+1|0;d=e?d:d+1|0;F[g+16>>2]=e;F[g+20>>2]=d;if(k){break n}F[f+176>>2]=2;F[f+180>>2]=7;break q}F[f+176>>2]=2;F[f+180>>2]=7;b=F[f+152>>2]}if((b|0)<0){break n}F[l+8>>2]=0;j=2;k=F[f+156>>2];e=F[f+160>>2]-k>>2;s:{if(e>>>0>>0){Ia(f+156|0,b-e|0,l+8|0);j=F[f+176>>2];d=F[f+180>>2];break s}d=7;if(b>>>0>=e>>>0){break s}F[f+160>>2]=k+(b<<2)}e=f+184|0;d=(d-j|0)+1|0;b=F[f+188>>2];j=F[f+184>>2];k=(b-j|0)/12|0;t:{if(d>>>0>k>>>0){j=0;d=d-k|0;i=F[e+8>>2];b=F[e+4>>2];u:{if(d>>>0<=(i-b|0)/12>>>0){if(d){j=b;b=L(d,12)-12|0;b=(b-((b>>>0)%12|0)|0)+12|0;b=ua(j,0,b)+b|0}F[e+4>>2]=b;break u}v:{w:{x:{k=F[e>>2];h=(b-k|0)/12|0;m=h+d|0;if(m>>>0<357913942){i=(i-k|0)/12|0;x=i<<1;m=i>>>0<178956970?m>>>0>>0?x:m:357913941;if(m){if(m>>>0>=357913942){break x}j=sa(L(m,12))}h=L(h,12)+j|0;d=L(d,12)-12|0;i=(d-((d>>>0)%12|0)|0)+12|0;d=ua(h,0,i);i=d+i|0;j=L(m,12)+j|0;if((b|0)==(k|0)){break w}while(1){h=h-12|0;b=b-12|0;F[h>>2]=F[b>>2];F[h+4>>2]=F[b+4>>2];F[h+8>>2]=F[b+8>>2];F[b+8>>2]=0;F[b>>2]=0;F[b+4>>2]=0;if((b|0)!=(k|0)){continue}break}F[e+8>>2]=j;d=F[e+4>>2];F[e+4>>2]=i;b=F[e>>2];F[e>>2]=h;if((b|0)==(d|0)){break v}while(1){j=d-12|0;k=F[j>>2];if(k){F[d-8>>2]=k;ra(k)}d=j;if((d|0)!=(b|0)){continue}break}break v}break b}za();V()}F[e+8>>2]=j;F[e+4>>2]=i;F[e>>2]=d}if(b){ra(b)}}d=F[f+188>>2];break t}if(d>>>0>=k>>>0){d=b;break t}d=j+L(d,12)|0;if((d|0)!=(b|0)){while(1){j=b-12|0;k=F[j>>2];if(k){F[b-8>>2]=k;ra(k)}b=j;if((d|0)!=(b|0)){continue}break}}F[f+188>>2]=d}m=f+196|0;j=F[f+184>>2];b=(d-j|0)/12|0;i=F[f+196>>2];k=F[f+200>>2]-i>>2;y:{if(b>>>0>k>>>0){Aa(m,b-k|0);j=F[f+184>>2];d=F[f+188>>2];break y}if(b>>>0>=k>>>0){break y}F[f+200>>2]=i+(b<<2)}if((d|0)==(j|0)){j=1;break n}b=0;while(1){if(!Ga(1,l+8|0,g)){break o}j=F[l+8>>2];d=F[f+148>>2];if(j>>>0>(F[d+4>>2]-F[d>>2]>>2>>>0)/3>>>0){break o}if(j){h=L(b,12);k=h+F[e>>2]|0;d=F[k>>2];i=F[k+4>>2]-d>>2;z:{if(i>>>0>>0){Aa(k,j-i|0);d=F[h+F[e>>2]>>2];break z}if(i>>>0<=j>>>0){break z}F[k+4>>2]=(j<<2)+d}id(j,1,g,d);F[F[m>>2]+(b<<2)>>2]=j}j=1;b=b+1|0;if(b>>>0<(F[f+188>>2]-F[f+184>>2]|0)/12>>>0){continue}break}break n}j=0}ea=l+16|0;if(!j){break c}b=0;e=0;d=0;g=0;k=0;j=0;x=0;q=ea-96|0;ea=q;F[q+72>>2]=0;F[q+64>>2]=0;F[q+68>>2]=0;F[q+48>>2]=0;F[q+52>>2]=0;F[q+40>>2]=0;F[q+44>>2]=0;F[q+56>>2]=1065353216;F[q+32>>2]=0;F[q+24>>2]=0;F[q+28>>2]=0;i=a;J=F[a+124>>2];A:{B:{C:{D:{m=c;E:{if((c|0)<=0){break E}r=i+232|0;O=F[i+216>>2]!=F[i+220>>2];t=1;while(1){a=k;k=a+1|0;c=F[r+172>>2];F:{G:{if((c|0)!=-1){l=F[r+196>>2]+(c<<2)|0;n=F[l>>2];c=n-1|0;F[l>>2]=c;h=9;if((n|0)<=0){break F}c=F[F[F[r+184>>2]+L(F[r+172>>2],12)>>2]+(c<<2)>>2];if(c>>>0>4){break F}h=F[(c<<2)+12144>>2];break G}h=7;c=F[r+144>>2];c=H[(ga[F[F[c>>2]+32>>2]](c)|0)+36>>1];if(((c<<8|c>>>8)&65535)>>>0>513){break G}if(!G[r+76|0]){h=1;break G}h=0;n=F[r- -64>>2];l=F[r+72>>2];c=n+(l>>>3|0)|0;p=F[r+68>>2];if(c>>>0>=p>>>0){break G}o=G[c|0];c=l+1|0;F[r+72>>2]=c;if(!(o>>>(l&7)&1)){break G}o=c>>>3|0;h=n+o|0;H:{if(h>>>0>=p>>>0){h=c;c=0;break H}u=G[h|0];h=l+2|0;F[r+72>>2]=h;o=h>>>3|0;c=u>>>(c&7)&1}l=n+o|0;if(l>>>0

>>0){l=G[l|0];F[r+72>>2]=h+1;h=l>>>(h&7)<<1&2}else{h=0}h=(c|h)<<1|1}F[r+168>>2]=h}I:{J:{if(!h){if((d|0)==(g|0)){break D}b=-1;n=F[i+8>>2];o=F[n+24>>2];u=d-4|0;e=F[u>>2];c=-1;K:{if((e|0)==-1){break K}h=e+1|0;h=(h>>>0)%3|0?h:e-2|0;c=-1;if((h|0)==-1){break K}c=F[F[n>>2]+(h<<2)>>2]}l=F[o+(c<<2)>>2];if((l|0)!=-1){b=l+1|0;b=(b>>>0)%3|0?b:l-2|0}l=F[n+12>>2];h=L(a,3);a=h+1|0;F[l+(e<<2)>>2]=a;v=a<<2;F[v+l>>2]=e;p=h+2|0;F[l+(b<<2)>>2]=p;z=p<<2;F[z+l>>2]=b;t=-1;a=-1;L:{if((e|0)==-1){break L}M:{if((e>>>0)%3|0){l=e-1|0;break M}l=e+2|0;a=-1;if((l|0)==-1){break L}}a=F[F[n>>2]+(l<<2)>>2]}N:{if((b|0)==-1){break N}e=b+1|0;b=(e>>>0)%3|0?e:b-2|0;if((b|0)==-1){break N}t=F[F[n>>2]+(b<<2)>>2]}l=-1;if((a|0)==(c|0)|(c|0)==(t|0)){break C}b=F[n>>2];F[b+(h<<2)>>2]=c;F[b+v>>2]=t;F[b+z>>2]=a;if((a|0)!=-1){F[o+(a<<2)>>2]=p}a=F[i+120>>2]+(c>>>3&536870908)|0;b=F[a>>2];Q=a,R=Qj(c)&b,F[Q>>2]=R;break J}l=-1;O:{P:{Q:{R:{S:{T:{U:{V:{switch(h-1|0){case 2:case 4:if((b|0)==(g|0)){break C}c=F[i+8>>2];o=F[c+12>>2];n=L(a,3);u=(h|0)==5;p=n+(u?2:1)|0;v=p<<2;z=b-4|0;e=F[z>>2];F[o+v>>2]=e;F[o+(e<<2)>>2]=p;Ua(c+24|0);h=F[i+8>>2];o=F[h+24>>2];if((J|0)>2]-o>>2){break D}h=F[h>>2];P=h+v|0;v=F[c+28>>2];c=F[c+24>>2];K=(v-c>>2)-1|0;F[P>>2]=K;if((c|0)!=(v|0)){F[o+(K<<2)>>2]=p}p=u?n:n+2|0;v=h+(n+u<<2)|0;W:{if((e|0)==-1){F[h+(p<<2)>>2]=-1;c=-1;break W}X:{Y:{Z:{if((e>>>0)%3|0){c=e-1|0;break Z}c=e+2|0;if((c|0)==-1){break Y}}c=F[h+(c<<2)>>2];F[h+(p<<2)>>2]=c;if((c|0)==-1){break X}F[o+(c<<2)>>2]=p;break X}F[h+(p<<2)>>2]=-1}p=e+1|0;e=(p>>>0)%3|0?p:e-2|0;c=-1;if((e|0)==-1){break W}c=F[h+(e<<2)>>2]}F[v>>2]=c;F[z>>2]=n;break U;case 0:if((b|0)==(e|0)){break C}d=b-4|0;p=F[d>>2];F[q+68>>2]=d;o=F[q+44>>2];_:{if(!o){break _}c=F[q+40>>2];u=Pj(o)>>>0>1;n=a&o+2147483647;$:{if(!u){break $}n=a;if(a>>>0>>0){break $}n=(a>>>0)%(o>>>0)|0}c=F[c+(n<<2)>>2];if(!c){break _}c=F[c>>2];if(!c){break _}aa:{if(!u){h=o-1|0;while(1){o=F[c+4>>2];ba:{if((o|0)!=(a|0)){if((n|0)==(h&o)){break ba}break _}if((a|0)==F[c+8>>2]){break aa}}c=F[c>>2];if(c){continue}break}break _}while(1){h=F[c+4>>2];ca:{if((h|0)!=(a|0)){if(h>>>0>=o>>>0){h=(h>>>0)%(o>>>0)|0}if((h|0)==(n|0)){break ca}break _}if((a|0)==F[c+8>>2]){break aa}}c=F[c>>2];if(c){continue}break}break _}if((d|0)!=(y|0)){F[d>>2]=F[c+12>>2];F[q+68>>2]=b;d=b;break _}b=y-e|0;h=b>>2;d=h+1|0;if(d>>>0>=1073741824){break b}g=b>>1;d=b>>>0<2147483644?d>>>0>>0?g:d:1073741823;if(d){if(d>>>0>=1073741824){break B}g=sa(d<<2)}else{g=0}h=g+(h<<2)|0;F[h>>2]=F[c+12>>2];y=(d<<2)+g|0;d=h+4|0;if((b|0)>0){ta(g,e,b)}F[q+72>>2]=y;F[q+68>>2]=d;F[q+64>>2]=g;if(!e){break _}ra(e)}if((d|0)==(g|0)){break S}u=d-4|0;b=F[u>>2];c=(b|0)==-1;n=F[i+8>>2];if(!c&F[F[n+12>>2]+(b<<2)>>2]!=-1){break S}o=F[n+12>>2];if((p|0)!=-1&F[o+(p<<2)>>2]!=-1){break S}h=L(a,3);t=h+2|0;F[o+(b<<2)>>2]=t;a=t<<2;F[a+o>>2]=b;e=h+1|0;F[o+(p<<2)>>2]=e;v=e<<2;F[v+o>>2]=p;if(c){break R}if((b>>>0)%3|0){l=b-1|0;break Q}l=b+2|0;if((l|0)!=-1){break Q}e=F[n>>2];c=-1;break P;case 6:break V;default:break C}}h=F[i+8>>2];Ua(h+24|0);c=F[i+8>>2];d=L(a,3);p=F[h+28>>2];o=F[h+24>>2];u=p-o|0;n=u>>2;v=n-1|0;F[F[c>>2]+(d<<2)>>2]=v;Ua(c+24|0);z=d+1|0;F[F[c>>2]+(z<<2)>>2]=(F[c+28>>2]-F[c+24>>2]>>2)-1;c=F[i+8>>2];Ua(c+24|0);K=d+2|0;F[F[c>>2]+(K<<2)>>2]=(F[c+28>>2]-F[c+24>>2]>>2)-1;c=F[i+8>>2];h=F[c+24>>2];if((J|0)>2]-h>>2){break D}da:{ea:{if((p|0)!=(o|0)){F[h+(v<<2)>>2]=d;c=0;if((u|0)==-4){break ea}}F[h+(n<<2)>>2]=z;c=n+1|0;if((c|0)==-1){break da}}F[h+(c<<2)>>2]=K}if((b|0)!=(y|0)){F[b>>2]=d;d=b+4|0;F[q+68>>2]=d;b=d;break T}b=b-e|0;h=b>>2;g=h+1|0;if(g>>>0>=1073741824){break b}c=b>>1;c=b>>>0<2147483644?c>>>0>g>>>0?c:g:1073741823;if(c){if(c>>>0>=1073741824){break B}g=sa(c<<2)}else{g=0}h=g+(h<<2)|0;F[h>>2]=d;y=(c<<2)+g|0;d=h+4|0;if((b|0)>0){ta(g,e,b)}F[q+72>>2]=y;F[q+68>>2]=d;F[q+64>>2]=g;if(e){ra(e)}b=d}e=g}Ae(r,F[b-4>>2]);c=F[i+40>>2];if((c|0)==F[i+36>>2]){break I}h=m+(a^-1)|0;n=d-4|0;while(1){a=c-12|0;p=F[a+4>>2];if(p>>>0>h>>>0){break S}if((h|0)!=(p|0)){break I}c=G[c-4|0];b=F[a>>2];F[i+40>>2]=a;if((b|0)<0){break S}a=F[n>>2];F[q+20>>2]=m+(b^-1);b=q+20|0;F[q+88>>2]=b;Yc(q,q+40|0,b,q+88|0);o=F[q>>2];fa:{if(c&1){b=-1;if((a|0)==-1){break fa}b=a+1|0;b=(b>>>0)%3|0?b:a-2|0;break fa}b=-1;if((a|0)==-1){break fa}b=a-1|0;if((a>>>0)%3|0){break fa}b=a+2|0}F[o+12>>2]=b;b=d;c=F[i+40>>2];if((c|0)!=F[i+36>>2]){continue}break}break I}if(t&1){break C}break E}c=-1;e=F[n>>2];F[e+(h<<2)>>2]=-1;l=-1;break O}e=F[n>>2];c=F[e+(l<<2)>>2]}F[(h<<2)+e>>2]=c;z=b+1|0;b=(z>>>0)%3|0?z:b-2|0;l=-1;if((b|0)==-1){break O}l=F[(b<<2)+e>>2]}F[e+v>>2]=l;ga:{if((p|0)==-1){F[a+e>>2]=-1;t=-1;l=-1;break ga}ha:{ia:{ja:{if((p>>>0)%3|0){l=p-1|0;break ja}l=p+2|0;if((l|0)==-1){break ia}}b=a+e|0;a=F[(l<<2)+e>>2];F[b>>2]=a;if((a|0)==-1){break ha}F[F[n+24>>2]+(a<<2)>>2]=t;break ha}F[a+e>>2]=-1}t=-1;a=p+1|0;a=(a>>>0)%3|0?a:p-2|0;l=-1;if((a|0)==-1){break ga}t=F[(a<<2)+e>>2];l=a}a=F[i+388>>2];b=c<<2;p=a+b|0;v=a;a=t<<2;F[p>>2]=F[p>>2]+F[v+a>>2];n=F[n+24>>2];a=n+a|0;if((c|0)!=-1){F[b+n>>2]=F[a>>2]}ka:{if((l|0)==-1){break ka}while(1){F[(l<<2)+e>>2]=c;b=l+1|0;b=(b>>>0)%3|0?b:l-2|0;if((b|0)==-1){break ka}b=F[o+(b<<2)>>2];if((b|0)==-1){break ka}l=b+1|0;l=(l>>>0)%3|0?l:b-2|0;if((l|0)!=-1){continue}break}}F[a>>2]=-1;la:{if(O){break la}if((x|0)!=(B|0)){F[x>>2]=t;x=x+4|0;F[q+28>>2]=x;break la}b=B-j|0;e=b>>2;a=e+1|0;if(a>>>0<1073741824){c=b>>1;c=b>>>0<2147483644?a>>>0>>0?c:a:1073741823;if(c){if(c>>>0>=1073741824){break B}a=sa(c<<2)}else{a=0}e=a+(e<<2)|0;F[e>>2]=t;B=a+(c<<2)|0;x=e+4|0;if((b|0)>0){ta(a,j,b)}F[q+32>>2]=B;F[q+28>>2]=x;F[q+24>>2]=a;if(j){ra(j)}j=a;break la}break b}}F[u>>2]=h;Ae(r,h);b=d;e=g}t=(k|0)<(m|0);if((k|0)!=(m|0)){continue}break}k=m}l=-1;b=F[i+8>>2];if((J|0)>2]-F[b+24>>2]>>2){break C}if((d|0)!=(g|0)){a=i+60|0;J=i+312|0;while(1){d=d-4|0;r=F[d>>2];F[q+68>>2]=d;ma:{na:{oa:{pa:{if(H[i+270>>1]<=513){if(!G[i+364|0]){break oa}b=F[i+360>>2];c=F[i+352>>2]+(b>>>3|0)|0;if(c>>>0>=I[i+356>>2]){break na}c=G[c|0];F[i+360>>2]=b+1;b=c>>>(b&7)&1;break pa}b=Da(J)}if(!b){break na}}o=F[i+8>>2];p=F[o>>2];if(((F[o+4>>2]-p>>2>>>0)/3|0)<=(k|0)){break D}c=-1;b=-1;h=F[o+24>>2];e=-1;qa:{if((r|0)==-1){break qa}n=r+1|0;n=(n>>>0)%3|0?n:r-2|0;e=-1;if((n|0)==-1){break qa}e=F[p+(n<<2)>>2]}n=e;e=F[h+(n<<2)>>2];ra:{if((e|0)==-1){break ra}m=e+1|0;e=(m>>>0)%3|0?m:e-2|0;if((e|0)==-1){break ra}c=e+1|0;c=(c>>>0)%3|0?c:e-2|0;if((c|0)!=-1){b=F[p+(c<<2)>>2]}c=e}e=-1;t=-1;h=F[h+(b<<2)>>2];m=-1;sa:{if((h|0)==-1){break sa}y=h+1|0;h=(y>>>0)%3|0?y:h-2|0;m=-1;if((h|0)==-1){break sa}m=h+1|0;m=(m>>>0)%3|0?m:h-2|0;if((m|0)!=-1){t=F[p+(m<<2)>>2]}m=h}h=F[o+12>>2];o=L(k,3);B=o<<2;F[h+B>>2]=r;F[h+(r<<2)>>2]=o;r=o+1|0;u=r<<2;F[u+h>>2]=c;F[h+(c<<2)>>2]=r;y=o+2|0;c=y<<2;F[c+h>>2]=m;F[h+(m<<2)>>2]=y;F[p+B>>2]=b;m=p+u|0;F[m>>2]=t;h=c+p|0;F[h>>2]=n;c=r?b:-1;b=F[i+120>>2];n=(c>>>3&536870908)+b|0;t=F[n>>2];Q=n,R=Qj(c)&t,F[Q>>2]=R;e=(r|0)!=-1?F[m>>2]:e;c=b+(e>>>3&536870908)|0;m=F[c>>2];Q=c,R=Qj(e)&m,F[Q>>2]=R;c=-1;c=(y|0)!=-1?F[h>>2]:c;b=b+(c>>>3&536870908)|0;e=F[b>>2];Q=b,R=Qj(c)&e,F[Q>>2]=R;c=F[i+64>>2];b=F[i+68>>2];if((c|0)==b<<5){if((c+1|0)<0){break b}if(c>>>0<=1073741822){b=b<<6;c=c+32&-32;b=b>>>0>c>>>0?b:c}else{b=2147483647}fb(a,b);c=F[i+64>>2]}k=k+1|0;F[i+64>>2]=c+1;b=F[i+60>>2]+(c>>>3&536870908)|0;F[b>>2]=F[b>>2]|1<>2];if((b|0)!=F[i+80>>2]){F[b>>2]=o;F[i+76>>2]=b+4;break ma}e=F[i+72>>2];c=b-e|0;h=c>>2;b=h+1|0;if(b>>>0>=1073741824){break b}m=c>>1;m=c>>>0<2147483644?b>>>0>>0?m:b:1073741823;if(m){if(m>>>0>=1073741824){break B}b=sa(m<<2)}else{b=0}h=b+(h<<2)|0;F[h>>2]=o;if((c|0)>0){ta(b,e,c)}F[i+80>>2]=b+(m<<2);F[i+76>>2]=h+4;F[i+72>>2]=b;if(!e){break ma}ra(e);break ma}h=F[i+64>>2];b=F[i+68>>2];if((h|0)==b<<5){if((h+1|0)<0){break b}if(h>>>0<=1073741822){b=b<<6;c=h+32&-32;b=b>>>0>c>>>0?b:c}else{b=2147483647}fb(a,b);h=F[i+64>>2]}F[i+64>>2]=h+1;b=F[i+60>>2]+(h>>>3&536870908)|0;c=F[b>>2];Q=b,R=Qj(h)&c,F[Q>>2]=R;b=F[i+76>>2];if((b|0)!=F[i+80>>2]){F[b>>2]=r;F[i+76>>2]=b+4;break ma}e=F[i+72>>2];c=b-e|0;h=c>>2;b=h+1|0;if(b>>>0>=1073741824){break b}m=c>>1;m=c>>>0<2147483644?b>>>0>>0?m:b:1073741823;if(m){if(m>>>0>=1073741824){break B}b=sa(m<<2)}else{b=0}h=b+(h<<2)|0;F[h>>2]=r;if((c|0)>0){ta(b,e,c)}F[i+80>>2]=b+(m<<2);F[i+76>>2]=h+4;F[i+72>>2]=b;if(!e){break ma}ra(e)}if((d|0)!=(g|0)){continue}break}b=F[i+8>>2]}if(((F[b+4>>2]-F[b>>2]>>2>>>0)/3|0)!=(k|0)){break C}l=F[b+28>>2]-F[b+24>>2]>>2;if((j|0)==(x|0)){j=x;break C}e=j;while(1){a=F[e>>2];c=F[b+24>>2];d=l-1|0;k=c+(d<<2)|0;if(F[k>>2]==-1){while(1){d=l-2|0;l=l-1|0;k=c+(d<<2)|0;if(F[k>>2]==-1){continue}break}}if(a>>>0<=d>>>0){F[q>>2]=b;k=F[k>>2];D[q+12|0]=1;F[q+8>>2]=k;F[q+4>>2]=k;if((k|0)!=-1){while(1){b=F[F[i+8>>2]>>2]+(k<<2)|0;if(F[b>>2]!=(d|0)){break D}F[b>>2]=a;uc(q);k=F[q+8>>2];if((k|0)!=-1){continue}break}b=F[i+8>>2]}k=F[b+24>>2];c=k+(d<<2)|0;if((a|0)!=-1){F[k+(a<<2)>>2]=F[c>>2]}F[c>>2]=-1;c=1<>2];a=k+(a>>>3&536870908)|0;k=k+(d>>>3&536870908)|0;d=1<>2]&d){c=c|F[a>>2]}else{c=F[a>>2]&(c^-1)}F[a>>2]=c;F[k>>2]=F[k>>2]&(d^-1);l=l-1|0}e=e+4|0;if((x|0)!=(e|0)){continue}break}break C}l=-1}if(j){ra(j)}a=F[q+48>>2];if(a){while(1){b=F[a>>2];ra(a);a=b;if(b){continue}break}}a=F[q+40>>2];F[q+40>>2]=0;if(a){ra(a)}if(g){F[q+68>>2]=g;ra(g)}ea=q+96|0;break A}za();V()}if((l|0)==-1){break c}a=F[M+16>>2];b=a+F[M>>2]|0;d=F[M+8>>2];d=d-a|0;a=F[F[i+4>>2]+32>>2];E[a+38>>1]=H[a+38>>1];F[a>>2]=b;F[a+16>>2]=0;F[a+20>>2]=0;F[a+8>>2]=d;F[a+12>>2]=0;a=F[i+4>>2];b=H[a+36>>1];g=b<<8|b>>>8;if((g&65535)>>>0<=513){a=F[a+32>>2];d=N+F[a+20>>2]|0;b=A+F[a+16>>2]|0;d=b>>>0>>0?d+1|0:d;F[a+16>>2]=b;F[a+20>>2]=d}ta:{if(F[i+216>>2]==F[i+220>>2]){break ta}b=F[i+8>>2];a=F[b>>2];b=F[b+4>>2];ua:{if((g&65535)>>>0>=513){if((a|0)==(b|0)){break ta}b=0;break ua}if((a|0)==(b|0)){break ta}b=0;while(1){if(ad(i,b)){b=b+3|0;a=F[i+8>>2];if(b>>>0>2]-F[a>>2]>>2>>>0){continue}break ta}break}break c}while(1){if($c(i,b)){b=b+3|0;a=F[i+8>>2];if(b>>>0>2]-F[a>>2]>>2>>>0){continue}break ta}break}break c}_c(f);b=F[i+216>>2];if((b|0)==F[i+220>>2]){break d}c=0;while(1){d=L(c,144);Hc((d+b|0)+4|0,F[i+8>>2]);a=F[C>>2];g=a+d|0;b=F[g+132>>2];g=F[g+136>>2];if((b|0)!=(g|0)){while(1){Fc((d+F[C>>2]|0)+4|0,F[b>>2]);b=b+4|0;if((g|0)!=(b|0)){continue}break}a=F[C>>2]}Gc((a+d|0)+4|0);c=c+1|0;b=F[i+216>>2];if(c>>>0<(F[i+220>>2]-b|0)/144>>>0){continue}break}break d}w=0;break c}a=F[i+8>>2];Ib(i+184|0,F[a+28>>2]-F[a+24>>2]>>2);w=F[i+216>>2];if((w|0)!=F[i+220>>2]){b=0;while(1){a=L(b,144)+w|0;d=F[a+60>>2]-F[a+56>>2]>>2;e=a+104|0;a=F[i+8>>2];a=F[a+28>>2]-F[a+24>>2]>>2;Ib(e,(a|0)<(d|0)?d:a);b=b+1|0;w=F[i+216>>2];if(b>>>0<(F[i+220>>2]-w|0)/144>>>0){continue}break}}w=Zc(i,l)}ea=s- -64|0;return w|0}va();V()}function gi(a){a=a|0;var b=0,c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,J=0,K=0,M=0,N=0,O=0,P=0,Q=0,R=0;r=ea+-64|0;ea=r;F[a+132>>2]=0;if(F[a+148>>2]){b=F[a+144>>2];if(b){while(1){c=F[b>>2];ra(b);b=c;if(b){continue}break}}b=0;F[a+144>>2]=0;c=F[a+140>>2];a:{if(!c){break a}if(c-1>>>0>=3){f=c&-4;while(1){e=b<<2;F[e+F[a+136>>2]>>2]=0;F[F[a+136>>2]+(e|4)>>2]=0;F[F[a+136>>2]+(e|8)>>2]=0;F[F[a+136>>2]+(e|12)>>2]=0;b=b+4|0;j=j+4|0;if((f|0)!=(j|0)){continue}break}}c=c&3;if(!c){break a}while(1){F[F[a+136>>2]+(b<<2)>>2]=0;b=b+1|0;u=u+1|0;if((c|0)!=(u|0)){continue}break}}F[a+148>>2]=0}b:{c:{d:{b=F[a+4>>2];u=G[b+36|0];e=u<<8|G[b+37|0];if(e>>>0<=513){c=F[b+32>>2];e:{if(e>>>0<=511){e=F[c+20>>2];f=F[c+16>>2];j=f+4|0;e=j>>>0<4?e+1|0:e;d=j;j=F[c+12>>2];if(d>>>0>I[c+8>>2]&(j|0)<=(e|0)|(e|0)>(j|0)){break d}f=f+F[c>>2]|0;j=G[f|0]|G[f+1|0]<<8|(G[f+2|0]<<16|G[f+3|0]<<24);F[c+16>>2]=d;F[c+20>>2]=e;break e}if(!Ga(1,r,c)){break d}b=F[a+4>>2];u=G[b+36|0];j=F[r>>2]}F[a+132>>2]=j}c=F[b+32>>2];f:{g:{h:{if((u&255)>>>0<=1){u=0;e=F[c+20>>2];f=F[c+16>>2];j=f+4|0;e=j>>>0<4?e+1|0:e;d=F[c+12>>2];if((d|0)<=(e|0)&j>>>0>I[c+8>>2]|(d|0)<(e|0)){break b}f=f+F[c>>2]|0;f=G[f|0]|G[f+1|0]<<8|(G[f+2|0]<<16|G[f+3|0]<<24);F[r+60>>2]=f;F[c+16>>2]=j;F[c+20>>2]=e;F[a+156>>2]=f;c=a+156|0;break h}u=0;if(!Ga(1,r+60|0,c)){break b}b=F[a+4>>2];e=G[b+36|0];F[a+156>>2]=F[r+60>>2];c=a+156|0;if(e>>>0>1){break g}}e=F[b+32>>2];b=F[e+8>>2];f=F[e+12>>2];i=b;b=F[e+20>>2];j=F[e+16>>2];d=j+4|0;b=d>>>0<4?b+1|0:b;if(i>>>0>>0&(b|0)>=(f|0)|(b|0)>(f|0)){break b}f=j+F[e>>2]|0;j=G[f|0]|G[f+1|0]<<8|(G[f+2|0]<<16|G[f+3|0]<<24);F[r+56>>2]=j;F[e+16>>2]=d;F[e+20>>2]=b;break f}if(!Ga(1,r+56|0,F[b+32>>2])){break b}j=F[r+56>>2]}if(j>>>0>1431655765|I[c>>2]>L(j,3)>>>0){break b}o=F[a+4>>2];e=F[o+32>>2];i=F[e+8>>2];c=i;f=F[e+12>>2];b=F[e+20>>2];d=F[e+16>>2];if((f|0)<=(b|0)&d>>>0>=c>>>0|(b|0)>(f|0)){break b}m=F[e>>2];h=G[m+d|0];y=d+1|0;c=y?b:b+1|0;F[e+16>>2]=y;F[e+20>>2]=c;i:{if(G[o+36|0]<=1){c=f;f=d+5|0;b=f>>>0<5?b+1|0:b;if(f>>>0>i>>>0&(b|0)>=(c|0)|(b|0)>(c|0)){break b}c=m+y|0;c=G[c|0]|G[c+1|0]<<8|(G[c+2|0]<<16|G[c+3|0]<<24);F[r+52>>2]=c;F[e+16>>2]=f;F[e+20>>2]=b;break i}if(!Ga(1,r+52|0,e)){break b}c=F[r+52>>2]}if(((c>>>0)/3|0)+c>>>0>>0|c>>>0>j>>>0){break b}b=F[a+4>>2];e=F[b+32>>2];j:{if(G[b+36|0]<=1){b=F[e+20>>2];f=F[e+16>>2];d=f+4|0;b=d>>>0<4?b+1|0:b;o=F[e+12>>2];if((o|0)<=(b|0)&d>>>0>I[e+8>>2]|(b|0)>(o|0)){break b}f=f+F[e>>2]|0;f=G[f|0]|G[f+1|0]<<8|(G[f+2|0]<<16|G[f+3|0]<<24);F[r+48>>2]=f;F[e+16>>2]=d;F[e+20>>2]=b;break j}if(!Ga(1,r+48|0,e)){break b}f=F[r+48>>2]}if(c>>>0>>0){break b}F[a+28>>2]=F[a+24>>2];e=$b(sa(88));b=F[a+8>>2];F[a+8>>2]=e;if(b){eb(b);if(!F[a+8>>2]){break b}}F[a+164>>2]=F[a+160>>2];Kb(a+160|0,j);F[a+176>>2]=F[a+172>>2];Kb(a+172|0,j);F[a- -64>>2]=0;F[a+92>>2]=-1;F[a+84>>2]=-1;F[a+88>>2]=-1;F[a+40>>2]=F[a+36>>2];F[a+52>>2]=F[a+48>>2];F[a+76>>2]=F[a+72>>2];J=a+216|0;cd(J);bd(J,h);if(!Jc(F[a+8>>2],j,F[a+156>>2]+f|0)){break b}b=F[a+156>>2];D[r|0]=1;Qa(a+120|0,b+f|0,r);b=F[a+4>>2];e=H[b+36>>1];e=(e<<8|e>>>8)&65535;k:{if(e>>>0<=513){b=F[b+32>>2];l:{if(e>>>0<=511){e=F[b+20>>2];j=F[b+16>>2];d=j+4|0;e=d>>>0<4?e+1|0:e;o=F[b+12>>2];if((o|0)<=(e|0)&d>>>0>I[b+8>>2]|(e|0)>(o|0)){break b}j=j+F[b>>2]|0;j=G[j|0]|G[j+1|0]<<8|(G[j+2|0]<<16|G[j+3|0]<<24);F[b+16>>2]=d;F[b+20>>2]=e;break l}if(!Ga(1,r+44|0,b)){break b}j=F[r+44>>2]}if(!j){break b}b=F[F[a+4>>2]+32>>2];e=F[b+8>>2];d=F[b+16>>2];o=e-d|0;b=F[b+12>>2]-(F[b+20>>2]+(d>>>0>e>>>0)|0)|0;if((b|0)<=0&j>>>0>o>>>0|(b|0)<0){break b}e=Ka(r);d=F[F[a+4>>2]+32>>2];b=F[d+16>>2];o=(b+F[d>>2]|0)+j|0;i=F[d+8>>2];b=(i-b|0)-j|0;E[e+38>>1]=H[d+38>>1];F[e>>2]=o;F[e+16>>2]=0;F[e+20>>2]=0;F[e+8>>2]=b;F[e+12>>2]=0;y=Jb(a,e);if((y|0)==-1){break b}O=y>>31;break k}y=-1;O=-1;if((Jb(a,F[b+32>>2])|0)==-1){break b}}z=a+232|0;Be(z,a);F[a+372>>2]=h;F[a+384>>2]=F[a+156>>2]+f;M=Ka(r);b=M;h=0;f=ea-16|0;ea=f;m:{if(!De(z,b)){break m}e=F[b+20>>2];j=F[b+16>>2];d=j+4|0;e=d>>>0<4?e+1|0:e;o=F[b+12>>2];if((o|0)<=(e|0)&d>>>0>I[b+8>>2]|(e|0)>(o|0)){break m}j=j+F[b>>2]|0;j=G[j|0]|G[j+1|0]<<8|(G[j+2|0]<<16|G[j+3|0]<<24);F[b+16>>2]=d;F[b+20>>2]=e;if((j|0)<0){break m}e=F[z+152>>2];if((e|0)<=(j|0)){break m}F[f+12>>2]=0;d=F[z+156>>2];j=F[z+160>>2]-d>>2;n:{if(j>>>0>>0){Ia(z+156|0,e-j|0,f+12|0);break n}if(e>>>0>=j>>>0){break n}F[z+160>>2]=d+(e<<2)}h=wa(z+168|0,b)}ea=f+16|0;if(!h){break b}b=0;f=0;h=0;o=0;e=0;j=0;n=ea-96|0;ea=n;F[n+72>>2]=0;F[n+64>>2]=0;F[n+68>>2]=0;F[n+48>>2]=0;F[n+52>>2]=0;F[n+40>>2]=0;F[n+44>>2]=0;F[n+56>>2]=1065353216;F[n+32>>2]=0;F[n+24>>2]=0;F[n+28>>2]=0;d=a;x=F[a+124>>2];o:{p:{q:{r:{s:{t:{m=c;u:{if((c|0)<=0){break u}N=d+400|0;K=d+232|0;P=F[d+216>>2]!=F[d+220>>2];q=1;while(1){i=o;o=i+1|0;v:{w:{x:{y:{z:{if(F[d+420>>2]!=-1){if(Da(N)){break z}}if(G[d+308|0]){g=F[d+296>>2];c=F[d+304>>2];a=g+(c>>>3|0)|0;k=F[d+300>>2];if(a>>>0>=k>>>0){break y}l=G[a|0];a=c+1|0;F[d+304>>2]=a;if(!(l>>>(c&7)&1)){break y}l=a>>>3|0;p=g+l|0;A:{if(p>>>0>=k>>>0){c=a;a=0;break A}p=G[p|0];c=c+2|0;F[d+304>>2]=c;l=c>>>3|0;a=p>>>(a&7)&1}g=g+l|0;if(g>>>0>>0){g=G[g|0];F[d+304>>2]=c+1;c=g>>>(c&7)<<1&2}else{c=0}a=(a|c)<<1|1}else{a=1}F[d+416>>2]=a;break w}a=F[d+420>>2];F[d+416>>2]=a;if(a){break w}break x}F[d+416>>2]=0}if((b|0)==(h|0)){break t}a=-1;k=F[d+8>>2];s=F[k+24>>2];v=b-4|0;c=F[v>>2];g=-1;B:{if((c|0)==-1){break B}q=c+1|0;q=(q>>>0)%3|0?q:c-2|0;g=-1;if((q|0)==-1){break B}g=F[F[k>>2]+(q<<2)>>2]}l=F[s+(g<<2)>>2];if((l|0)!=-1){a=l+1|0;a=(a>>>0)%3|0?a:l-2|0}q=F[k+12>>2];l=L(i,3);i=l+1|0;F[q+(c<<2)>>2]=i;w=i<<2;F[w+q>>2]=c;p=l+2|0;F[q+(a<<2)>>2]=p;B=p<<2;F[B+q>>2]=a;q=-1;i=-1;C:{if((c|0)==-1){break C}D:{if((c>>>0)%3|0){c=c-1|0;break D}c=c+2|0;i=-1;if((c|0)==-1){break C}}i=F[F[k>>2]+(c<<2)>>2]}E:{if((a|0)==-1){break E}c=a+1|0;a=(c>>>0)%3|0?c:a-2|0;if((a|0)==-1){break E}q=F[F[k>>2]+(a<<2)>>2]}c=-1;if((g|0)==(i|0)|(g|0)==(q|0)){break s}a=F[k>>2];F[a+(l<<2)>>2]=g;F[a+w>>2]=q;F[a+B>>2]=i;if((i|0)!=-1){F[s+(i<<2)>>2]=p}a=F[d+120>>2]+(g>>>3&536870908)|0;c=F[a>>2];Q=a,R=Qj(g)&c,F[Q>>2]=R;F[v>>2]=l;Wc(K,l);break v}c=-1;F:{G:{H:{I:{J:{K:{L:{M:{N:{O:{switch(a-1|0){case 2:case 4:if((b|0)==(e|0)){break s}k=F[d+8>>2];h=F[k+12>>2];g=L(i,3);a=(a|0)==5;p=g+(a?2:1)|0;s=p<<2;v=b-4|0;b=F[v>>2];F[h+s>>2]=b;F[h+(b<<2)>>2]=p;Ua(k+24|0);h=F[d+8>>2];l=F[h+24>>2];if((x|0)>2]-l>>2){break t}h=F[h>>2];B=h+s|0;s=F[k+28>>2];k=F[k+24>>2];w=(s-k>>2)-1|0;F[B>>2]=w;if((k|0)!=(s|0)){F[l+(w<<2)>>2]=p}k=a?g:g+2|0;s=h+(a+g<<2)|0;P:{if((b|0)==-1){F[h+(k<<2)>>2]=-1;a=-1;break P}Q:{R:{S:{if((b>>>0)%3|0){a=b-1|0;break S}a=b+2|0;if((a|0)==-1){break R}}a=F[h+(a<<2)>>2];F[h+(k<<2)>>2]=a;if((a|0)==-1){break Q}F[l+(a<<2)>>2]=k;break Q}F[h+(k<<2)>>2]=-1}k=b+1|0;b=(k>>>0)%3|0?k:b-2|0;a=-1;if((b|0)==-1){break P}a=F[h+(b<<2)>>2]}F[s>>2]=a;F[v>>2]=g;break N;case 0:if((b|0)==(h|0)){break s}f=b-4|0;l=F[f>>2];F[n+68>>2]=f;p=F[n+44>>2];T:{if(!p){break T}g=F[n+40>>2];s=Pj(p)>>>0>1;a=i&p+2147483647;U:{if(!s){break U}a=i;if(a>>>0

>>0){break U}a=(i>>>0)%(p>>>0)|0}k=a;a=F[g+(k<<2)>>2];if(!a){break T}a=F[a>>2];if(!a){break T}V:{if(!s){g=p-1|0;while(1){p=F[a+4>>2];W:{if((p|0)!=(i|0)){if((k|0)==(g&p)){break W}break T}if((i|0)==F[a+8>>2]){break V}}a=F[a>>2];if(a){continue}break}break T}while(1){g=F[a+4>>2];X:{if((g|0)!=(i|0)){if(g>>>0>=p>>>0){g=(g>>>0)%(p>>>0)|0}if((g|0)==(k|0)){break X}break T}if((i|0)==F[a+8>>2]){break V}}a=F[a>>2];if(a){continue}break}break T}if((f|0)!=(t|0)){F[f>>2]=F[a+12>>2];F[n+68>>2]=b;f=b;break T}b=t-h|0;g=b>>2;e=g+1|0;if(e>>>0>=1073741824){break K}f=b>>1;f=b>>>0<2147483644?e>>>0>>0?f:e:1073741823;if(f){if(f>>>0>=1073741824){break r}e=sa(f<<2)}else{e=0}g=e+(g<<2)|0;F[g>>2]=F[a+12>>2];t=(f<<2)+e|0;f=g+4|0;if((b|0)>0){ta(e,h,b)}F[n+72>>2]=t;F[n+68>>2]=f;F[n+64>>2]=e;if(!h){break T}ra(h)}if((e|0)==(f|0)){break L}s=f-4|0;h=F[s>>2];a=(h|0)==-1;g=F[d+8>>2];if(!a&F[F[g+12>>2]+(h<<2)>>2]!=-1){break L}k=F[g+12>>2];if((l|0)!=-1&F[k+(l<<2)>>2]!=-1){break L}q=L(i,3);p=q+2|0;F[k+(h<<2)>>2]=p;i=p<<2;F[i+k>>2]=h;b=q+1|0;F[k+(l<<2)>>2]=b;v=b<<2;F[v+k>>2]=l;if(a){break J}if((h>>>0)%3|0){c=h-1|0;break H}c=h+2|0;if((c|0)!=-1){break H}b=F[g>>2];a=-1;break G;case 6:break O;default:break s}}g=F[d+8>>2];Ua(g+24|0);a=F[d+8>>2];f=L(i,3);l=F[g+28>>2];p=F[g+24>>2];s=l-p|0;k=s>>2;v=k-1|0;F[F[a>>2]+(f<<2)>>2]=v;Ua(a+24|0);w=f+1|0;F[F[a>>2]+(w<<2)>>2]=(F[a+28>>2]-F[a+24>>2]>>2)-1;a=F[d+8>>2];Ua(a+24|0);B=f+2|0;F[F[a>>2]+(B<<2)>>2]=(F[a+28>>2]-F[a+24>>2]>>2)-1;a=F[d+8>>2];g=F[a+24>>2];if((x|0)>2]-g>>2){break t}Y:{Z:{if((l|0)!=(p|0)){F[g+(v<<2)>>2]=f;a=0;if((s|0)==-4){break Z}}F[g+(k<<2)>>2]=w;a=k+1|0;if((a|0)==-1){break Y}}F[g+(a<<2)>>2]=B}if((b|0)!=(t|0)){F[b>>2]=f;f=b+4|0;F[n+68>>2]=f;break M}a=t-h|0;g=a>>2;b=g+1|0;if(b>>>0>=1073741824){break I}e=a>>1;b=a>>>0<2147483644?b>>>0>>0?e:b:1073741823;if(b){if(b>>>0>=1073741824){break r}e=sa(b<<2)}else{e=0}g=e+(g<<2)|0;F[g>>2]=f;t=(b<<2)+e|0;f=g+4|0;if((a|0)>0){ta(e,h,a)}F[n+72>>2]=t;F[n+68>>2]=f;F[n+64>>2]=e;if(!h){break N}ra(h)}h=e}Wc(K,F[f-4>>2]);a=F[d+40>>2];_:{if((a|0)==F[d+36>>2]){break _}i=m+(i^-1)|0;k=f-4|0;while(1){b=a-12|0;g=F[b+4>>2];if(g>>>0>i>>>0){break L}if((g|0)!=(i|0)){break _}l=G[a-4|0];g=F[b>>2];F[d+40>>2]=b;if((g|0)<0){break L}a=F[k>>2];F[n+20>>2]=m+(g^-1);b=n+20|0;F[n+88>>2]=b;Yc(n,n+40|0,b,n+88|0);g=F[n>>2];$:{if(l&1){b=-1;if((a|0)==-1){break $}b=a+1|0;b=(b>>>0)%3|0?b:a-2|0;break $}b=-1;if((a|0)==-1){break $}b=a-1|0;if((a>>>0)%3|0){break $}b=a+2|0}F[g+12>>2]=b;a=F[d+40>>2];if((a|0)!=F[d+36>>2]){continue}break}}b=f;break v}if(q&1){break s}break u}va();V()}a=-1;b=F[g>>2];F[b+(q<<2)>>2]=-1;c=-1;break F}va();V()}b=F[g>>2];a=F[b+(c<<2)>>2]}F[(q<<2)+b>>2]=a;w=h+1|0;h=(w>>>0)%3|0?w:h-2|0;c=-1;if((h|0)==-1){break F}c=F[(h<<2)+b>>2]}F[b+v>>2]=c;aa:{if((l|0)==-1){F[b+i>>2]=-1;h=-1;c=-1;break aa}ba:{ca:{da:{if((l>>>0)%3|0){c=l-1|0;break da}c=l+2|0;if((c|0)==-1){break ca}}c=F[(c<<2)+b>>2];F[b+i>>2]=c;if((c|0)==-1){break ba}F[F[g+24>>2]+(c<<2)>>2]=p;break ba}F[b+i>>2]=-1}h=-1;i=l+1|0;i=(i>>>0)%3|0?i:l-2|0;c=-1;if((i|0)==-1){break aa}h=F[(i<<2)+b>>2];c=i}i=F[d+388>>2];l=a<<2;p=i+l|0;v=i;i=h<<2;F[p>>2]=F[p>>2]+F[v+i>>2];g=F[g+24>>2];i=g+i|0;if((a|0)!=-1){F[g+l>>2]=F[i>>2]}ea:{if((c|0)==-1){break ea}while(1){F[(c<<2)+b>>2]=a;g=c+1|0;c=(g>>>0)%3|0?g:c-2|0;if((c|0)==-1){break ea}c=F[k+(c<<2)>>2];if((c|0)==-1){break ea}g=c+1|0;c=(g>>>0)%3|0?g:c-2|0;if((c|0)!=-1){continue}break}}F[i>>2]=-1;fa:{if(P){break fa}if((A|0)!=(C|0)){F[A>>2]=h;A=A+4|0;F[n+28>>2]=A;break fa}b=C-j|0;i=b>>2;a=i+1|0;if(a>>>0<1073741824){c=b>>1;c=b>>>0<2147483644?a>>>0>>0?c:a:1073741823;if(c){if(c>>>0>=1073741824){break r}a=sa(c<<2)}else{a=0}i=a+(i<<2)|0;F[i>>2]=h;C=a+(c<<2)|0;A=i+4|0;if((b|0)>0){ta(a,j,b)}F[n+32>>2]=C;F[n+28>>2]=A;F[n+24>>2]=a;if(j){ra(j)}j=a;break fa}va();V()}F[s>>2]=q;b=f;h=e;Wc(K,q)}q=(o|0)<(m|0);if((o|0)!=(m|0)){continue}break}o=m}c=-1;b=F[d+8>>2];if((x|0)>2]-F[b+24>>2]>>2){break s}if((e|0)!=(f|0)){i=d+60|0;K=d+312|0;while(1){f=f-4|0;l=F[f>>2];F[n+68>>2]=f;ga:{ha:{ia:{ja:{if(H[d+270>>1]<=513){if(!G[d+364|0]){break ia}a=F[d+360>>2];b=F[d+352>>2]+(a>>>3|0)|0;if(b>>>0>=I[d+356>>2]){break ha}b=G[b|0];F[d+360>>2]=a+1;a=b>>>(a&7)&1;break ja}a=Da(K)}if(!a){break ha}}t=F[d+8>>2];p=F[t>>2];if(((F[t+4>>2]-p>>2>>>0)/3|0)<=(o|0)){break t}a=-1;b=-1;g=F[t+24>>2];h=-1;ka:{if((l|0)==-1){break ka}k=l+1|0;k=(k>>>0)%3|0?k:l-2|0;h=-1;if((k|0)==-1){break ka}h=F[p+(k<<2)>>2]}k=h;h=F[g+(k<<2)>>2];la:{if((h|0)==-1){break la}m=h+1|0;h=(m>>>0)%3|0?m:h-2|0;if((h|0)==-1){break la}a=h+1|0;a=(a>>>0)%3|0?a:h-2|0;if((a|0)!=-1){b=F[p+(a<<2)>>2]}a=h}h=-1;q=-1;g=F[g+(b<<2)>>2];m=-1;ma:{if((g|0)==-1){break ma}x=g+1|0;g=(x>>>0)%3|0?x:g-2|0;m=-1;if((g|0)==-1){break ma}m=g+1|0;m=(m>>>0)%3|0?m:g-2|0;if((m|0)!=-1){q=F[p+(m<<2)>>2]}m=g}g=F[t+12>>2];t=L(o,3);C=t<<2;F[g+C>>2]=l;F[g+(l<<2)>>2]=t;l=t+1|0;N=l<<2;F[N+g>>2]=a;F[g+(a<<2)>>2]=l;x=t+2|0;a=x<<2;F[a+g>>2]=m;F[g+(m<<2)>>2]=x;F[p+C>>2]=b;m=p+N|0;F[m>>2]=q;g=a+p|0;F[g>>2]=k;a=l?b:-1;b=F[d+120>>2];k=(a>>>3&536870908)+b|0;q=F[k>>2];Q=k,R=Qj(a)&q,F[Q>>2]=R;h=(l|0)!=-1?F[m>>2]:h;a=b+(h>>>3&536870908)|0;m=F[a>>2];Q=a,R=Qj(h)&m,F[Q>>2]=R;a=-1;a=(x|0)!=-1?F[g>>2]:a;b=b+(a>>>3&536870908)|0;h=F[b>>2];Q=b,R=Qj(a)&h,F[Q>>2]=R;a=F[d+64>>2];b=F[d+68>>2];if((a|0)==b<<5){if((a+1|0)<0){break q}if(a>>>0<=1073741822){b=b<<6;a=a+32&-32;a=a>>>0>>0?b:a}else{a=2147483647}fb(i,a);a=F[d+64>>2]}o=o+1|0;F[d+64>>2]=a+1;b=F[d+60>>2]+(a>>>3&536870908)|0;F[b>>2]=F[b>>2]|1<>2];if((a|0)!=F[d+80>>2]){F[a>>2]=t;F[d+76>>2]=a+4;break ga}h=F[d+72>>2];b=a-h|0;g=b>>2;a=g+1|0;if(a>>>0>=1073741824){break p}m=b>>1;m=b>>>0<2147483644?a>>>0>>0?m:a:1073741823;if(m){if(m>>>0>=1073741824){break r}a=sa(m<<2)}else{a=0}g=a+(g<<2)|0;F[g>>2]=t;if((b|0)>0){ta(a,h,b)}F[d+80>>2]=a+(m<<2);F[d+76>>2]=g+4;F[d+72>>2]=a;if(!h){break ga}ra(h);break ga}b=F[d+64>>2];a=F[d+68>>2];if((b|0)==a<<5){if((b+1|0)<0){break q}if(b>>>0<=1073741822){a=a<<6;b=b+32&-32;a=a>>>0>b>>>0?a:b}else{a=2147483647}fb(i,a);b=F[d+64>>2]}F[d+64>>2]=b+1;a=F[d+60>>2]+(b>>>3&536870908)|0;h=F[a>>2];Q=a,R=Qj(b)&h,F[Q>>2]=R;a=F[d+76>>2];if((a|0)!=F[d+80>>2]){F[a>>2]=l;F[d+76>>2]=a+4;break ga}h=F[d+72>>2];b=a-h|0;g=b>>2;a=g+1|0;if(a>>>0>=1073741824){break p}m=b>>1;m=b>>>0<2147483644?a>>>0>>0?m:a:1073741823;if(m){if(m>>>0>=1073741824){break r}a=sa(m<<2)}else{a=0}g=a+(g<<2)|0;F[g>>2]=l;if((b|0)>0){ta(a,h,b)}F[d+80>>2]=a+(m<<2);F[d+76>>2]=g+4;F[d+72>>2]=a;if(!h){break ga}ra(h)}if((e|0)!=(f|0)){continue}break}b=F[d+8>>2]}if(((F[b+4>>2]-F[b>>2]>>2>>>0)/3|0)!=(o|0)){break s}c=F[b+28>>2]-F[b+24>>2]>>2;if((j|0)==(A|0)){j=A;break s}a=j;while(1){h=F[a>>2];i=F[b+24>>2];f=c-1|0;o=i+(f<<2)|0;if(F[o>>2]==-1){while(1){f=c-2|0;c=c-1|0;o=i+(f<<2)|0;if(F[o>>2]==-1){continue}break}}if(f>>>0>=h>>>0){F[n>>2]=b;o=F[o>>2];D[n+12|0]=1;F[n+8>>2]=o;F[n+4>>2]=o;if((o|0)!=-1){while(1){b=F[F[d+8>>2]>>2]+(o<<2)|0;if(F[b>>2]!=(f|0)){break t}F[b>>2]=h;uc(n);o=F[n+8>>2];if((o|0)!=-1){continue}break}b=F[d+8>>2]}i=F[b+24>>2];o=i+(f<<2)|0;if((h|0)!=-1){F[i+(h<<2)>>2]=F[o>>2]}F[o>>2]=-1;o=1<>2];h=i+(h>>>3&536870908)|0;m=1<>>3&536870908)|0;if(m&F[i>>2]){f=o|F[h>>2]}else{f=F[h>>2]&(o^-1)}F[h>>2]=f;F[i>>2]=F[i>>2]&(m^-1);c=c-1|0}a=a+4|0;if((A|0)!=(a|0)){continue}break}break s}c=-1}if(j){ra(j)}a=F[n+48>>2];if(a){while(1){b=F[a>>2];ra(a);a=b;if(a){continue}break}}a=F[n+40>>2];F[n+40>>2]=0;if(a){ra(a)}if(e){F[n+68>>2]=e;ra(e)}ea=n+96|0;break o}za();V()}va();V()}va();V()}e=c;if((c|0)==-1){break b}a=F[M+16>>2];b=a+F[M>>2]|0;c=F[M+8>>2];c=c-a|0;a=F[F[d+4>>2]+32>>2];E[a+38>>1]=H[a+38>>1];F[a>>2]=b;F[a+16>>2]=0;F[a+20>>2]=0;F[a+8>>2]=c;F[a+12>>2]=0;a=F[d+4>>2];b=H[a+36>>1];f=b<<8|b>>>8;if((f&65535)>>>0<=513){a=F[a+32>>2];b=O+F[a+20>>2]|0;c=y+F[a+16>>2]|0;b=c>>>0>>0?b+1|0:b;F[a+16>>2]=c;F[a+20>>2]=b}na:{if(F[d+216>>2]==F[d+220>>2]){break na}b=F[d+8>>2];a=F[b>>2];b=F[b+4>>2];oa:{if((f&65535)>>>0>=513){if((a|0)==(b|0)){break na}b=0;break oa}if((a|0)==(b|0)){break na}b=0;while(1){if(ad(d,b)){b=b+3|0;a=F[d+8>>2];if(b>>>0>2]-F[a>>2]>>2>>>0){continue}break na}break}break b}while(1){if($c(d,b)){b=b+3|0;a=F[d+8>>2];if(b>>>0>2]-F[a>>2]>>2>>>0){continue}break na}break}break b}_c(z);b=F[d+216>>2];if((b|0)==F[d+220>>2]){break c}c=0;while(1){f=L(c,144);Hc((f+b|0)+4|0,F[d+8>>2]);a=F[J>>2];j=a+f|0;b=F[j+132>>2];j=F[j+136>>2];if((b|0)!=(j|0)){while(1){Fc((f+F[J>>2]|0)+4|0,F[b>>2]);b=b+4|0;if((j|0)!=(b|0)){continue}break}a=F[J>>2]}Gc((a+f|0)+4|0);c=c+1|0;b=F[d+216>>2];if(c>>>0<(F[d+220>>2]-b|0)/144>>>0){continue}break}break c}u=0;break b}a=F[d+8>>2];Ib(d+184|0,F[a+28>>2]-F[a+24>>2]>>2);u=F[d+216>>2];if((u|0)!=F[d+220>>2]){b=0;while(1){a=L(b,144)+u|0;c=F[a+60>>2]-F[a+56>>2]>>2;i=a+104|0;a=F[d+8>>2];a=F[a+28>>2]-F[a+24>>2]>>2;Ib(i,(a|0)<(c|0)?c:a);b=b+1|0;u=F[d+216>>2];if(b>>>0<(F[d+220>>2]-u|0)/144>>>0){continue}break}}u=Zc(d,e)}ea=r- -64|0;return u|0}function ji(a){a=a|0;var b=0,c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,J=0,K=0,M=0,N=0,O=0,P=0,Q=0;q=ea+-64|0;ea=q;F[a+132>>2]=0;if(F[a+148>>2]){c=F[a+144>>2];if(c){while(1){e=F[c>>2];ra(c);c=e;if(c){continue}break}}c=0;F[a+144>>2]=0;e=F[a+140>>2];a:{if(!e){break a}if(e-1>>>0>=3){g=e&-4;while(1){d=c<<2;F[d+F[a+136>>2]>>2]=0;F[F[a+136>>2]+(d|4)>>2]=0;F[F[a+136>>2]+(d|8)>>2]=0;F[F[a+136>>2]+(d|12)>>2]=0;c=c+4|0;k=k+4|0;if((g|0)!=(k|0)){continue}break}}e=e&3;if(!e){break a}while(1){F[F[a+136>>2]+(c<<2)>>2]=0;c=c+1|0;s=s+1|0;if((e|0)!=(s|0)){continue}break}}F[a+148>>2]=0}b:{c:{d:{c=F[a+4>>2];s=G[c+36|0];e=s<<8|G[c+37|0];if(e>>>0<=513){d=F[c+32>>2];e:{if(e>>>0<=511){e=F[d+20>>2];g=F[d+16>>2];k=g+4|0;e=k>>>0<4?e+1|0:e;b=k;k=F[d+12>>2];if(b>>>0>I[d+8>>2]&(k|0)<=(e|0)|(e|0)>(k|0)){break d}g=g+F[d>>2]|0;k=G[g|0]|G[g+1|0]<<8|(G[g+2|0]<<16|G[g+3|0]<<24);F[d+16>>2]=b;F[d+20>>2]=e;break e}if(!Ga(1,q,d)){break d}c=F[a+4>>2];s=G[c+36|0];k=F[q>>2]}F[a+132>>2]=k}d=F[c+32>>2];f:{g:{h:{if((s&255)>>>0<=1){s=0;e=F[d+20>>2];g=F[d+16>>2];k=g+4|0;e=k>>>0<4?e+1|0:e;b=F[d+12>>2];if((b|0)<=(e|0)&k>>>0>I[d+8>>2]|(e|0)>(b|0)){break b}g=g+F[d>>2]|0;g=G[g|0]|G[g+1|0]<<8|(G[g+2|0]<<16|G[g+3|0]<<24);F[q+60>>2]=g;F[d+16>>2]=k;F[d+20>>2]=e;F[a+156>>2]=g;m=a+156|0;break h}s=0;if(!Ga(1,q+60|0,d)){break b}c=F[a+4>>2];e=G[c+36|0];F[a+156>>2]=F[q+60>>2];m=a+156|0;if(e>>>0>1){break g}}e=F[c+32>>2];c=F[e+8>>2];d=F[e+12>>2];j=c;c=F[e+20>>2];g=F[e+16>>2];k=g+4|0;c=k>>>0<4?c+1|0:c;b=k;if(j>>>0>>0&(c|0)>=(d|0)|(c|0)>(d|0)){break b}d=g+F[e>>2]|0;k=G[d|0]|G[d+1|0]<<8|(G[d+2|0]<<16|G[d+3|0]<<24);F[q+56>>2]=k;F[e+16>>2]=b;F[e+20>>2]=c;break f}if(!Ga(1,q+56|0,F[c+32>>2])){break b}k=F[q+56>>2]}if(k>>>0>1431655765|I[m>>2]>L(k,3)>>>0){break b}z=F[a+4>>2];e=F[z+32>>2];f=F[e+8>>2];d=f;g=F[e+12>>2];c=F[e+20>>2];b=F[e+16>>2];if((g|0)<=(c|0)&b>>>0>=d>>>0|(c|0)>(g|0)){break b}h=F[e>>2];j=G[h+b|0];d=c;m=b+1|0;d=m?d:d+1|0;F[e+16>>2]=m;F[e+20>>2]=d;i:{if(G[z+36|0]<=1){d=g;g=b+5|0;c=g>>>0<5?c+1|0:c;if(g>>>0>f>>>0&(c|0)>=(d|0)|(c|0)>(d|0)){break b}d=h+m|0;m=G[d|0]|G[d+1|0]<<8|(G[d+2|0]<<16|G[d+3|0]<<24);F[q+52>>2]=m;F[e+16>>2]=g;F[e+20>>2]=c;break i}if(!Ga(1,q+52|0,e)){break b}m=F[q+52>>2]}if(k>>>0>>0|((m>>>0)/3|0)+m>>>0>>0){break b}c=F[a+4>>2];e=F[c+32>>2];j:{if(G[c+36|0]<=1){c=F[e+20>>2];d=F[e+16>>2];g=d+4|0;c=g>>>0<4?c+1|0:c;b=F[e+12>>2];if((b|0)<=(c|0)&g>>>0>I[e+8>>2]|(c|0)>(b|0)){break b}d=d+F[e>>2]|0;d=G[d|0]|G[d+1|0]<<8|(G[d+2|0]<<16|G[d+3|0]<<24);F[q+48>>2]=d;F[e+16>>2]=g;F[e+20>>2]=c;break j}if(!Ga(1,q+48|0,e)){break b}d=F[q+48>>2]}if(d>>>0>m>>>0){break b}F[a+28>>2]=F[a+24>>2];e=$b(sa(88));c=F[a+8>>2];F[a+8>>2]=e;if(c){eb(c);if(!F[a+8>>2]){break b}}F[a+164>>2]=F[a+160>>2];Kb(a+160|0,k);F[a+176>>2]=F[a+172>>2];Kb(a+172|0,k);F[a- -64>>2]=0;F[a+92>>2]=-1;F[a+84>>2]=-1;F[a+88>>2]=-1;F[a+40>>2]=F[a+36>>2];F[a+52>>2]=F[a+48>>2];F[a+76>>2]=F[a+72>>2];A=a+216|0;cd(A);bd(A,j);if(!Jc(F[a+8>>2],k,F[a+156>>2]+d|0)){break b}c=F[a+156>>2];D[q|0]=1;Qa(a+120|0,c+d|0,q);c=F[a+4>>2];e=H[c+36>>1];e=(e<<8|e>>>8)&65535;k:{if(e>>>0<=513){c=F[c+32>>2];l:{if(e>>>0<=511){e=F[c+20>>2];d=F[c+16>>2];g=d+4|0;e=g>>>0<4?e+1|0:e;k=F[c+12>>2];if((k|0)<=(e|0)&g>>>0>I[c+8>>2]|(e|0)>(k|0)){break b}d=d+F[c>>2]|0;k=G[d|0]|G[d+1|0]<<8|(G[d+2|0]<<16|G[d+3|0]<<24);F[c+16>>2]=g;F[c+20>>2]=e;break l}if(!Ga(1,q+44|0,c)){break b}k=F[q+44>>2]}if(!k){break b}c=F[F[a+4>>2]+32>>2];e=F[c+8>>2];d=F[c+16>>2];g=e-d|0;c=F[c+12>>2]-(F[c+20>>2]+(e>>>0>>0)|0)|0;if(g>>>0>>0&(c|0)<=0|(c|0)<0){break b}e=Ka(q);d=F[F[a+4>>2]+32>>2];c=F[d+16>>2];g=(c+F[d>>2]|0)+k|0;b=F[d+8>>2];c=(b-c|0)-k|0;E[e+38>>1]=H[d+38>>1];F[e>>2]=g;F[e+16>>2]=0;F[e+20>>2]=0;F[e+8>>2]=c;F[e+12>>2]=0;z=Jb(a,e);if((z|0)==-1){break b}M=z>>31;break k}z=-1;M=-1;if((Jb(a,F[c+32>>2])|0)==-1){break b}}N=a+232|0;e=N;F[e+144>>2]=a;c=F[(ga[F[F[a>>2]+32>>2]](a)|0)+32>>2];d=F[c>>2]+F[c+16>>2]|0;g=F[(ga[F[F[a>>2]+32>>2]](a)|0)+32>>2];c=F[g+8>>2];g=F[g+16>>2];c=c-g|0;P=e,Q=H[F[(ga[F[F[a>>2]+32>>2]](a)|0)+32>>2]+38>>1],E[P+38>>1]=Q;F[e>>2]=d;F[e+16>>2]=0;F[e+20>>2]=0;F[e+8>>2]=c;F[e+12>>2]=0;F[a+372>>2]=j;C=Ka(q);if(!De(e,C)){break b}e=0;c=0;d=0;g=0;k=0;l=ea-96|0;ea=l;F[l+72>>2]=0;F[l+64>>2]=0;F[l+68>>2]=0;F[l+48>>2]=0;F[l+52>>2]=0;F[l+40>>2]=0;F[l+44>>2]=0;F[l+56>>2]=1065353216;F[l+32>>2]=0;F[l+24>>2]=0;F[l+28>>2]=0;f=a;B=F[a+124>>2];m:{n:{o:{p:{q:{r:{s:{if((m|0)<=0){break s}J=F[f+216>>2]!=F[f+220>>2];p=1;while(1){j=w;w=j+1|0;t:{u:{v:{w:{x:{y:{z:{A:{B:{C:{D:{E:{if(!G[f+308|0]){break E}F:{G:{h=F[f+296>>2];b=F[f+304>>2];a=h+(b>>>3|0)|0;i=F[f+300>>2];if(a>>>0>=i>>>0){break G}n=G[a|0];a=b+1|0;F[f+304>>2]=a;if(!(n>>>(b&7)&1)){break G}o=a>>>3|0;n=h+o|0;H:{if(n>>>0>=i>>>0){b=a;a=0;break H}n=G[n|0];b=b+2|0;F[f+304>>2]=b;o=b>>>3|0;a=n>>>(a&7)&1}h=h+o|0;if(h>>>0>>0){h=G[h|0];F[f+304>>2]=b+1;b=h>>>(b&7)<<1&2}else{b=0}a=(a|b)<<1;switch(a-1|0){case 0:case 2:case 4:break A;case 5:break D;case 1:case 3:break F;default:break E}}if((c|0)==(d|0)){break r}i=-1;p=F[f+8>>2];o=F[p+24>>2];t=c-4|0;h=F[t>>2];a=-1;I:{if((h|0)==-1){break I}b=h+1|0;b=(b>>>0)%3|0?b:h-2|0;a=-1;if((b|0)==-1){break I}a=F[F[p>>2]+(b<<2)>>2]}e=F[o+(a<<2)>>2];if((e|0)!=-1){b=e+1|0;i=(b>>>0)%3|0?b:e-2|0}e=F[p+12>>2];j=L(j,3);b=j+1|0;F[e+(h<<2)>>2]=b;u=b<<2;F[u+e>>2]=h;n=j+2|0;F[e+(i<<2)>>2]=n;v=n<<2;F[v+e>>2]=i;e=-1;b=-1;J:{if((h|0)==-1){break J}K:{if((h>>>0)%3|0){h=h-1|0;break K}h=h+2|0;b=-1;if((h|0)==-1){break J}}b=F[F[p>>2]+(h<<2)>>2]}L:{if((i|0)==-1){break L}h=i+1|0;h=(h>>>0)%3|0?h:i-2|0;if((h|0)==-1){break L}e=F[F[p>>2]+(h<<2)>>2]}h=-1;if((a|0)==(b|0)|(a|0)==(e|0)){break q}h=F[p>>2];F[h+(j<<2)>>2]=a;F[h+u>>2]=e;F[h+v>>2]=b;if((b|0)!=-1){F[o+(b<<2)>>2]=n}e=F[f+120>>2]+(a>>>3&536870908)|0;b=F[e>>2];P=e,Q=Qj(a)&b,F[P>>2]=Q;F[t>>2]=j;e=d;break t}if((c|0)==(d|0)){break r}e=F[f+8>>2];b=F[e+12>>2];i=L(j,3);o=(a|1)==5;t=i+(o?2:1)|0;u=t<<2;v=c-4|0;a=F[v>>2];F[b+u>>2]=a;F[b+(a<<2)>>2]=t;Ua(e+24|0);h=-1;b=F[f+8>>2];n=F[b+24>>2];if((B|0)>2]-n>>2){break q}b=F[b>>2];K=b+u|0;h=F[e+28>>2];e=F[e+24>>2];u=(h-e>>2)-1|0;F[K>>2]=u;if((e|0)!=(h|0)){F[n+(u<<2)>>2]=t}h=o?i:i+2|0;o=b+(i+o<<2)|0;M:{if((a|0)==-1){F[b+(h<<2)>>2]=-1;e=-1;break M}N:{O:{P:{if((a>>>0)%3|0){e=a-1|0;break P}e=a+2|0;if((e|0)==-1){break O}}e=F[b+(e<<2)>>2];F[b+(h<<2)>>2]=e;if((e|0)==-1){break N}F[n+(e<<2)>>2]=h;break N}F[b+(h<<2)>>2]=-1}h=a+1|0;a=(h>>>0)%3|0?h:a-2|0;e=-1;if((a|0)==-1){break M}e=F[b+(a<<2)>>2]}F[o>>2]=e;F[v>>2]=i;e=d;break C}if((c|0)==(d|0)){break r}a=c-4|0;n=F[a>>2];F[l+68>>2]=a;i=F[l+44>>2];Q:{if(!i){c=a;break Q}h=Pj(i)>>>0>1;R:{if(!h){e=j&i+2147483647;break R}e=j;if(i>>>0>e>>>0){break R}e=(j>>>0)%(i>>>0)|0}b=F[F[l+40>>2]+(e<<2)>>2];if(!b){c=a;break Q}b=F[b>>2];if(!b){c=a;break Q}S:{if(!h){h=i-1|0;while(1){i=F[b+4>>2];T:{if((i|0)!=(j|0)){if((h&i)==(e|0)){break T}c=a;break Q}if((j|0)==F[b+8>>2]){break S}}b=F[b>>2];if(b){continue}break}c=a;break Q}while(1){h=F[b+4>>2];U:{if((h|0)!=(j|0)){if(h>>>0>=i>>>0){h=(h>>>0)%(i>>>0)|0}if((e|0)==(h|0)){break U}c=a;break Q}if((j|0)==F[b+8>>2]){break S}}b=F[b>>2];if(b){continue}break}c=a;break Q}if((a|0)!=(r|0)){F[a>>2]=F[b+12>>2];F[l+68>>2]=c;break Q}a=r-d|0;e=a>>2;c=e+1|0;if(c>>>0>=1073741824){break z}g=a>>1;c=a>>>0<2147483644?c>>>0>>0?g:c:1073741823;if(c){if(c>>>0>=1073741824){break p}g=sa(c<<2)}else{g=0}e=g+(e<<2)|0;F[e>>2]=F[b+12>>2];r=(c<<2)+g|0;c=e+4|0;if((a|0)>0){ta(g,d,a)}F[l+72>>2]=r;F[l+68>>2]=c;F[l+64>>2]=g;if(!d){break Q}ra(d)}if((c|0)==(g|0)){break B}u=c-4|0;d=F[u>>2];a=(d|0)==-1;h=F[f+8>>2];if(!a&F[F[h+12>>2]+(d<<2)>>2]!=-1){break B}o=F[h+12>>2];if((n|0)!=-1&F[o+(n<<2)>>2]!=-1){break B}j=L(j,3);t=j+2|0;F[o+(d<<2)>>2]=t;p=t<<2;F[p+o>>2]=d;e=j+1|0;F[o+(n<<2)>>2]=e;b=e<<2;F[b+o>>2]=n;if(a){break y}if((d>>>0)%3|0){a=d-1|0;break w}a=d+2|0;if((a|0)!=-1){break w}i=F[h>>2];e=-1;break v}i=F[f+8>>2];Ua(i+24|0);h=-1;b=F[f+8>>2];a=L(j,3);n=F[i+28>>2];o=F[i+24>>2];t=n-o|0;i=t>>2;u=i-1|0;F[F[b>>2]+(a<<2)>>2]=u;Ua(b+24|0);v=a+1|0;F[F[b>>2]+(v<<2)>>2]=(F[b+28>>2]-F[b+24>>2]>>2)-1;b=F[f+8>>2];Ua(b+24|0);K=a+2|0;F[F[b>>2]+(K<<2)>>2]=(F[b+28>>2]-F[b+24>>2]>>2)-1;O=F[f+8>>2];b=F[O+24>>2];if((B|0)>2]-b>>2){break q}V:{W:{if((n|0)!=(o|0)){F[b+(u<<2)>>2]=a;h=0;if((t|0)==-4){break W}}F[b+(i<<2)>>2]=v;h=i+1|0;if((h|0)==-1){break V}}F[b+(h<<2)>>2]=K}if((c|0)!=(r|0)){F[c>>2]=a;c=c+4|0;F[l+68>>2]=c;break C}d=c-e|0;b=d>>2;c=b+1|0;if(c>>>0>=1073741824){break x}g=d>>1;c=d>>>0<2147483644?c>>>0>>0?g:c:1073741823;if(c){if(c>>>0>=1073741824){break p}g=sa(c<<2)}else{g=0}b=g+(b<<2)|0;F[b>>2]=a;r=(c<<2)+g|0;c=b+4|0;if((d|0)>0){ta(g,e,d)}F[l+72>>2]=r;F[l+68>>2]=c;F[l+64>>2]=g;if(e){ra(e)}d=g;e=d}b=F[f+40>>2];if((b|0)==F[f+36>>2]){break t}j=(j^-1)+m|0;h=c-4|0;while(1){a=b-12|0;i=F[a+4>>2];if(i>>>0>j>>>0){break B}if((i|0)!=(j|0)){break t}i=G[b-4|0];b=F[a>>2];F[f+40>>2]=a;if((b|0)<0){break B}a=F[h>>2];F[l+20>>2]=(b^-1)+m;b=l+20|0;F[l+88>>2]=b;Yc(l,l+40|0,b,l+88|0);o=F[l>>2];X:{if(i&1){b=-1;if((a|0)==-1){break X}b=a+1|0;b=(b>>>0)%3|0?b:a-2|0;break X}b=-1;if((a|0)==-1){break X}b=a-1|0;if((a>>>0)%3|0){break X}b=a+2|0}F[o+12>>2]=b;b=F[f+40>>2];if((b|0)!=F[f+36>>2]){continue}break}break t}h=-1;if(p&1){break q}break s}V()}va();V()}e=-1;i=F[h>>2];F[i+(j<<2)>>2]=-1;a=-1;break u}va();V()}i=F[h>>2];e=F[i+(a<<2)>>2]}F[(j<<2)+i>>2]=e;v=d+1|0;d=(v>>>0)%3|0?v:d-2|0;a=-1;if((d|0)==-1){break u}a=F[(d<<2)+i>>2]}F[b+i>>2]=a;Y:{if((n|0)==-1){F[i+p>>2]=-1;p=-1;b=-1;break Y}Z:{_:{$:{if((n>>>0)%3|0){b=n-1|0;break $}b=n+2|0;if((b|0)==-1){break _}}a=F[(b<<2)+i>>2];F[i+p>>2]=a;if((a|0)==-1){break Z}F[F[h+24>>2]+(a<<2)>>2]=t;break Z}F[i+p>>2]=-1}p=-1;a=n+1|0;a=(a>>>0)%3|0?a:n-2|0;b=-1;if((a|0)==-1){break Y}p=F[(a<<2)+i>>2];b=a}d=F[h+24>>2];a=d+(p<<2)|0;if((e|0)!=-1){F[d+(e<<2)>>2]=F[a>>2]}aa:{if((b|0)==-1){break aa}while(1){F[(b<<2)+i>>2]=e;d=b+1|0;d=(d>>>0)%3|0?d:b-2|0;if((d|0)==-1){break aa}d=F[o+(d<<2)>>2];if((d|0)==-1){break aa}b=d+1|0;b=(b>>>0)%3|0?b:d-2|0;if((b|0)!=-1){continue}break}}F[a>>2]=-1;ba:{if(J){break ba}if((x|0)!=(y|0)){F[x>>2]=p;x=x+4|0;F[l+28>>2]=x;break ba}e=y-k|0;b=e>>2;a=b+1|0;if(a>>>0<1073741824){d=e>>1;d=e>>>0<2147483644?a>>>0>>0?d:a:1073741823;if(d){if(d>>>0>=1073741824){break p}a=sa(d<<2)}else{a=0}b=a+(b<<2)|0;F[b>>2]=p;y=a+(d<<2)|0;x=b+4|0;if((e|0)>0){ta(a,k,e)}F[l+32>>2]=y;F[l+28>>2]=x;F[l+24>>2]=a;if(k){ra(k)}k=a;break ba}va();V()}F[u>>2]=j;d=g;e=d}p=(m|0)>(w|0);if((m|0)!=(w|0)){continue}break}w=m}h=-1;i=F[f+8>>2];if((B|0)>2]-F[i+24>>2]>>2){break q}if((c|0)!=(g|0)){e=f+60|0;B=f+312|0;while(1){c=c-4|0;m=F[c>>2];F[l+68>>2]=c;ca:{da:{ea:{fa:{if(H[f+270>>1]<=513){if(!G[f+364|0]){break ea}a=F[f+360>>2];d=F[f+352>>2]+(a>>>3|0)|0;if(d>>>0>=I[f+356>>2]){break da}d=G[d|0];F[f+360>>2]=a+1;a=d>>>(a&7)&1;break fa}a=Da(B)}if(!a){break da}}r=F[f+8>>2];n=F[r>>2];if(((F[r+4>>2]-n>>2>>>0)/3|0)<=(w|0)){break r}a=-1;i=-1;b=F[r+24>>2];d=-1;ga:{if((m|0)==-1){break ga}j=m+1|0;j=(j>>>0)%3|0?j:m-2|0;d=-1;if((j|0)==-1){break ga}d=F[n+(j<<2)>>2]}j=d;d=F[b+(j<<2)>>2];ha:{if((d|0)==-1){break ha}p=d+1|0;d=(p>>>0)%3|0?p:d-2|0;if((d|0)==-1){break ha}a=d+1|0;a=(a>>>0)%3|0?a:d-2|0;if((a|0)!=-1){i=F[n+(a<<2)>>2]}a=d}p=-1;o=-1;b=F[b+(i<<2)>>2];d=-1;ia:{if((b|0)==-1){break ia}y=b+1|0;b=(y>>>0)%3|0?y:b-2|0;d=-1;if((b|0)==-1){break ia}d=b+1|0;d=(d>>>0)%3|0?d:b-2|0;if((d|0)!=-1){o=F[n+(d<<2)>>2]}d=b}b=F[r+12>>2];r=L(w,3);y=r<<2;F[b+y>>2]=m;F[b+(m<<2)>>2]=r;m=r+1|0;t=m<<2;F[t+b>>2]=a;F[b+(a<<2)>>2]=m;a=r+2|0;J=a<<2;F[J+b>>2]=d;F[b+(d<<2)>>2]=a;F[n+y>>2]=i;b=n+t|0;F[b>>2]=o;n=n+J|0;F[n>>2]=j;d=F[f+120>>2];j=m?i:-1;i=d+(j>>>3&536870908)|0;o=F[i>>2];P=i,Q=Qj(j)&o,F[P>>2]=Q;p=(m|0)!=-1?F[b>>2]:p;b=d+(p>>>3&536870908)|0;j=F[b>>2];P=b,Q=Qj(p)&j,F[P>>2]=Q;b=-1;b=(a|0)!=-1?F[n>>2]:b;a=d+(b>>>3&536870908)|0;d=F[a>>2];P=a,Q=Qj(b)&d,F[P>>2]=Q;b=F[f+64>>2];a=F[f+68>>2];if((b|0)==a<<5){if((b+1|0)<0){break o}if(b>>>0<=1073741822){a=a<<6;d=b+32&-32;a=a>>>0>d>>>0?a:d}else{a=2147483647}fb(e,a);b=F[f+64>>2]}w=w+1|0;F[f+64>>2]=b+1;a=F[f+60>>2]+(b>>>3&536870908)|0;F[a>>2]=F[a>>2]|1<>2];if((a|0)!=F[f+80>>2]){F[a>>2]=r;F[f+76>>2]=a+4;break ca}b=F[f+72>>2];d=a-b|0;m=d>>2;a=m+1|0;if(a>>>0>=1073741824){break n}j=d>>1;j=d>>>0<2147483644?a>>>0>>0?j:a:1073741823;if(j){if(j>>>0>=1073741824){break p}a=sa(j<<2)}else{a=0}m=a+(m<<2)|0;F[m>>2]=r;if((d|0)>0){ta(a,b,d)}F[f+80>>2]=a+(j<<2);F[f+76>>2]=m+4;F[f+72>>2]=a;if(!b){break ca}ra(b);break ca}a=F[f+64>>2];d=F[f+68>>2];if((a|0)==d<<5){if((a+1|0)<0){break o}if(a>>>0<=1073741822){d=d<<6;a=a+32&-32;a=a>>>0>>0?d:a}else{a=2147483647}fb(e,a);a=F[f+64>>2]}F[f+64>>2]=a+1;d=F[f+60>>2]+(a>>>3&536870908)|0;b=F[d>>2];P=d,Q=Qj(a)&b,F[P>>2]=Q;a=F[f+76>>2];if((a|0)!=F[f+80>>2]){F[a>>2]=m;F[f+76>>2]=a+4;break ca}b=F[f+72>>2];d=a-b|0;i=d>>2;a=i+1|0;if(a>>>0>=1073741824){break n}j=d>>1;j=d>>>0<2147483644?a>>>0>>0?j:a:1073741823;if(j){if(j>>>0>=1073741824){break p}a=sa(j<<2)}else{a=0}i=a+(i<<2)|0;F[i>>2]=m;if((d|0)>0){ta(a,b,d)}F[f+80>>2]=a+(j<<2);F[f+76>>2]=i+4;F[f+72>>2]=a;if(!b){break ca}ra(b)}if((c|0)!=(g|0)){continue}break}i=F[f+8>>2]}if(((F[i+4>>2]-F[i>>2]>>2>>>0)/3|0)!=(w|0)){break q}h=F[i+28>>2]-F[i+24>>2]>>2;if((k|0)==(x|0)){k=x;break q}e=k;while(1){a=F[e>>2];d=F[i+24>>2];b=h-1|0;c=d+(b<<2)|0;if(F[c>>2]==-1){while(1){b=h-2|0;h=h-1|0;c=d+(b<<2)|0;if(F[c>>2]==-1){continue}break}}if(a>>>0<=b>>>0){F[l>>2]=i;c=F[c>>2];D[l+12|0]=1;F[l+8>>2]=c;F[l+4>>2]=c;if((c|0)!=-1){while(1){c=F[F[f+8>>2]>>2]+(c<<2)|0;if(F[c>>2]!=(b|0)){break r}F[c>>2]=a;uc(l);c=F[l+8>>2];if((c|0)!=-1){continue}break}i=F[f+8>>2]}d=F[i+24>>2];c=d+(b<<2)|0;if((a|0)!=-1){F[d+(a<<2)>>2]=F[c>>2]}F[c>>2]=-1;c=1<>2];a=d+(a>>>3&536870908)|0;d=d+(b>>>3&536870908)|0;b=1<>2]&b){c=c|F[a>>2]}else{c=F[a>>2]&(c^-1)}F[a>>2]=c;F[d>>2]=F[d>>2]&(b^-1);h=h-1|0}e=e+4|0;if((x|0)!=(e|0)){continue}break}break q}h=-1}if(k){ra(k)}a=F[l+48>>2];if(a){while(1){c=F[a>>2];ra(a);a=c;if(a){continue}break}}a=F[l+40>>2];F[l+40>>2]=0;if(a){ra(a)}if(g){F[l+68>>2]=g;ra(g)}ea=l+96|0;a=h;break m}za();V()}va();V()}va();V()}d=a;if((a|0)==-1){break b}a=F[C+16>>2];c=a+F[C>>2]|0;e=F[C+8>>2];e=e-a|0;a=F[F[f+4>>2]+32>>2];E[a+38>>1]=H[a+38>>1];F[a>>2]=c;F[a+16>>2]=0;F[a+20>>2]=0;F[a+8>>2]=e;F[a+12>>2]=0;a=F[f+4>>2];c=H[a+36>>1];g=c<<8|c>>>8;if((g&65535)>>>0<=513){a=F[a+32>>2];e=M+F[a+20>>2]|0;c=z+F[a+16>>2]|0;e=c>>>0>>0?e+1|0:e;F[a+16>>2]=c;F[a+20>>2]=e}ja:{if(F[f+216>>2]==F[f+220>>2]){break ja}c=F[f+8>>2];a=F[c>>2];c=F[c+4>>2];ka:{if((g&65535)>>>0>=513){if((a|0)==(c|0)){break ja}c=0;break ka}if((a|0)==(c|0)){break ja}c=0;while(1){if(ad(f,c)){c=c+3|0;a=F[f+8>>2];if(c>>>0>2]-F[a>>2]>>2>>>0){continue}break ja}break}break b}while(1){if($c(f,c)){c=c+3|0;a=F[f+8>>2];if(c>>>0>2]-F[a>>2]>>2>>>0){continue}break ja}break}break b}_c(N);c=F[f+216>>2];if((c|0)==F[f+220>>2]){break c}m=0;while(1){e=L(m,144);Hc((e+c|0)+4|0,F[f+8>>2]);a=F[A>>2];g=a+e|0;c=F[g+132>>2];g=F[g+136>>2];if((c|0)!=(g|0)){while(1){Fc((e+F[A>>2]|0)+4|0,F[c>>2]);c=c+4|0;if((g|0)!=(c|0)){continue}break}a=F[A>>2]}Gc((a+e|0)+4|0);m=m+1|0;c=F[f+216>>2];if(m>>>0<(F[f+220>>2]-c|0)/144>>>0){continue}break}break c}s=0;break b}a=F[f+8>>2];Ib(f+184|0,F[a+28>>2]-F[a+24>>2]>>2);s=F[f+216>>2];if((s|0)!=F[f+220>>2]){c=0;while(1){a=L(c,144)+s|0;e=F[a+60>>2]-F[a+56>>2]>>2;b=a+104|0;a=F[f+8>>2];a=F[a+28>>2]-F[a+24>>2]>>2;Ib(b,(a|0)<(e|0)?e:a);c=c+1|0;s=F[f+216>>2];if(c>>>0<(F[f+220>>2]-s|0)/144>>>0){continue}break}}s=Zc(f,d)}ea=q- -64|0;return s|0}function pg(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0;a:{b:{c:{d:{switch(d-1|0){case 0:a=0;m=ea-16|0;ea=m;j=F[b+80>>2];d=D[c+24|0];e:{if((L(j,d)|0)!=(e|0)){break e}a=F[c+28>>2]!=1;k=G[c+84|0];if(!(a|!k)){ta(f,F[F[c>>2]>>2]+F[c+48>>2]|0,e);a=1;break e}F[m+8>>2]=0;F[m>>2]=0;F[m+4>>2]=0;if(d){if((d|0)<0){break c}h=sa(d);F[m>>2]=h;ua(h,0,d)}f:{g:{if(!j){break g}if(!a){if(d){n=d&-4;l=d&3;b=0;o=d-1>>>0<3;d=0;while(1){e=F[F[c>>2]>>2];t=F[c+40>>2];a=F[c+48>>2]+Mj(t,F[c+44>>2],G[c+84|0]?d:F[F[c+68>>2]+(d<<2)>>2],0)|0;e=ta(h,e+a|0,t);k=0;a=0;g=0;if(!o){while(1){i=b+f|0;D[i|0]=G[a+e|0];D[i+1|0]=G[e+(a|1)|0];D[i+2|0]=G[e+(a|2)|0];D[i+3|0]=G[e+(a|3)|0];a=a+4|0;b=b+4|0;g=g+4|0;if((n|0)!=(g|0)){continue}break}}if(l){while(1){D[b+f|0]=G[a+e|0];a=a+1|0;b=b+1|0;k=k+1|0;if((l|0)!=(k|0)){continue}break}}a=1;d=d+1|0;if((j|0)!=(d|0)){continue}break}break f}l=F[c>>2];b=F[c+48>>2];o=F[c+68>>2];d=F[c+44>>2];c=F[c+40>>2];t=c;a=0;if((j|0)!=1){q=j&-2;while(1){e=a|1;p=F[l>>2];f=Mj(c,d,k?a:F[o+(a<<2)>>2],0)+b|0;f=ta(h,p+f|0,t);p=F[l>>2];if(!k){e=F[o+(e<<2)>>2]}e=Mj(c,d,e,0)+b|0;ta(f,e+p|0,t);a=a+2|0;g=g+2|0;if((q|0)!=(g|0)){continue}break}}if(!(j&1)){break g}e=F[l>>2];if(!k){a=F[o+(a<<2)>>2]}a=Mj(c,d,a,0)+b|0;ta(h,a+e|0,t);break g}if(!d){a=0;i=1;while(1){if(!jc(c,G[c+84|0]?a:F[F[c+68>>2]+(a<<2)>>2],D[c+24|0],h)){break g}a=a+1|0;i=j>>>0>a>>>0;if((a|0)!=(j|0)){continue}break}break g}l=d&-4;g=d&3;b=0;n=d-1>>>0<3;i=1;d=0;while(1){if(!jc(c,G[c+84|0]?d:F[F[c+68>>2]+(d<<2)>>2],D[c+24|0],h)){break g}i=0;a=0;k=0;if(!n){while(1){e=b+f|0;D[e|0]=G[a+h|0];D[e+1|0]=G[(a|1)+h|0];D[e+2|0]=G[(a|2)+h|0];D[e+3|0]=G[(a|3)+h|0];a=a+4|0;b=b+4|0;k=k+4|0;if((l|0)!=(k|0)){continue}break}}if(g){while(1){D[b+f|0]=G[a+h|0];a=a+1|0;b=b+1|0;i=i+1|0;if((g|0)!=(i|0)){continue}break}}d=d+1|0;i=j>>>0>d>>>0;if((d|0)!=(j|0)){continue}break}a=d>>>0>=j>>>0;break f}a=i^1;if(!h){break e}}ra(h)}break b;case 2:a=0;m=ea-16|0;ea=m;g=D[c+24|0];d=g<<1;l=F[b+80>>2];h:{if((L(d,l)|0)!=(e|0)){break h}b=F[c+28>>2]!=3;n=G[c+84|0];if(!(b|!n)){ta(f,F[F[c>>2]>>2]+F[c+48>>2]|0,e);a=1;break h}F[m+8>>2]=0;F[m>>2]=0;F[m+4>>2]=0;if(g){if((g|0)<0){break c}h=sa(d);F[m>>2]=h;ua(h,0,d)}i:{j:{if(!l){break j}if(!b){o=F[c>>2];e=F[c+48>>2];q=F[c+68>>2];j=F[c+44>>2];k=F[c+40>>2];p=k;if(g){v=g&-4;u=g&3;d=0;w=g-1>>>0<3;b=0;while(1){c=F[o>>2];a=Mj(k,j,n?b:F[q+(b<<2)>>2],0)+e|0;g=ta(h,c+a|0,p);i=0;a=0;c=0;if(!w){while(1){r=(d<<1)+f|0;s=a<<1;E[r>>1]=H[s+g>>1];E[r+2>>1]=H[g+(s|2)>>1];E[r+4>>1]=H[g+(s|4)>>1];E[r+6>>1]=H[g+(s|6)>>1];a=a+4|0;d=d+4|0;c=c+4|0;if((v|0)!=(c|0)){continue}break}}if(u){while(1){E[(d<<1)+f>>1]=H[g+(a<<1)>>1];a=a+1|0;d=d+1|0;i=i+1|0;if((u|0)!=(i|0)){continue}break}}a=1;b=b+1|0;if((l|0)!=(b|0)){continue}break}break i}if((l|0)!=1){d=l&-2;g=0;while(1){b=a|1;f=F[o>>2];c=Mj(k,j,n?a:F[q+(a<<2)>>2],0)+e|0;c=ta(h,f+c|0,p);f=F[o>>2];if(!n){b=F[q+(b<<2)>>2]}b=Mj(k,j,b,0)+e|0;ta(c,b+f|0,p);a=a+2|0;g=g+2|0;if((d|0)!=(g|0)){continue}break}}if(!(l&1)){break j}b=F[o>>2];if(!n){a=F[q+(a<<2)>>2]}a=Mj(k,j,a,0)+e|0;ta(h,a+b|0,p);break j}if(!g){i=1;while(1){if(!hc(c,G[c+84|0]?a:F[F[c+68>>2]+(a<<2)>>2],D[c+24|0],h)){break j}a=a+1|0;i=l>>>0>a>>>0;if((a|0)!=(l|0)){continue}break}break j}n=g&-4;k=g&3;d=0;o=g-1>>>0<3;i=1;b=0;while(1){if(!hc(c,G[c+84|0]?b:F[F[c+68>>2]+(b<<2)>>2],D[c+24|0],h)){break j}g=0;a=0;i=0;if(!o){while(1){e=(d<<1)+f|0;j=a<<1;E[e>>1]=H[j+h>>1];E[e+2>>1]=H[(j|2)+h>>1];E[e+4>>1]=H[(j|4)+h>>1];E[e+6>>1]=H[(j|6)+h>>1];a=a+4|0;d=d+4|0;i=i+4|0;if((n|0)!=(i|0)){continue}break}}if(k){while(1){E[(d<<1)+f>>1]=H[(a<<1)+h>>1];a=a+1|0;d=d+1|0;g=g+1|0;if((k|0)!=(g|0)){continue}break}}b=b+1|0;i=l>>>0>b>>>0;if((b|0)!=(l|0)){continue}break}a=b>>>0>=l>>>0;break i}a=!i;if(!h){break h}}ra(h)}break b;case 4:a=0;m=ea-16|0;ea=m;g=D[c+24|0];d=g<<2;l=F[b+80>>2];k:{if((L(d,l)|0)!=(e|0)){break k}b=F[c+28>>2]!=5;n=G[c+84|0];if(!(b|!n)){ta(f,F[F[c>>2]>>2]+F[c+48>>2]|0,e);a=1;break k}F[m+8>>2]=0;F[m>>2]=0;F[m+4>>2]=0;if(g){if((g|0)<0){break c}h=sa(d);F[m>>2]=h;ua(h,0,d)}l:{m:{if(!l){break m}if(!b){o=F[c>>2];e=F[c+48>>2];q=F[c+68>>2];j=F[c+44>>2];k=F[c+40>>2];p=k;if(g){v=g&-4;u=g&3;d=0;w=g-1>>>0<3;b=0;while(1){c=F[o>>2];a=Mj(k,j,n?b:F[q+(b<<2)>>2],0)+e|0;g=ta(h,c+a|0,p);i=0;a=0;c=0;if(!w){while(1){r=(d<<2)+f|0;s=a<<2;F[r>>2]=F[s+g>>2];F[r+4>>2]=F[g+(s|4)>>2];F[r+8>>2]=F[g+(s|8)>>2];F[r+12>>2]=F[g+(s|12)>>2];a=a+4|0;d=d+4|0;c=c+4|0;if((v|0)!=(c|0)){continue}break}}if(u){while(1){F[(d<<2)+f>>2]=F[g+(a<<2)>>2];a=a+1|0;d=d+1|0;i=i+1|0;if((u|0)!=(i|0)){continue}break}}a=1;b=b+1|0;if((l|0)!=(b|0)){continue}break}break l}if((l|0)!=1){d=l&-2;g=0;while(1){b=a|1;f=F[o>>2];c=Mj(k,j,n?a:F[q+(a<<2)>>2],0)+e|0;c=ta(h,f+c|0,p);f=F[o>>2];if(!n){b=F[q+(b<<2)>>2]}b=Mj(k,j,b,0)+e|0;ta(c,b+f|0,p);a=a+2|0;g=g+2|0;if((d|0)!=(g|0)){continue}break}}if(!(l&1)){break m}b=F[o>>2];if(!n){a=F[q+(a<<2)>>2]}a=Mj(k,j,a,0)+e|0;ta(h,a+b|0,p);break m}if(!g){i=1;while(1){if(!fc(c,G[c+84|0]?a:F[F[c+68>>2]+(a<<2)>>2],D[c+24|0],h)){break m}a=a+1|0;i=l>>>0>a>>>0;if((a|0)!=(l|0)){continue}break}break m}n=g&-4;k=g&3;d=0;o=g-1>>>0<3;i=1;b=0;while(1){if(!fc(c,G[c+84|0]?b:F[F[c+68>>2]+(b<<2)>>2],D[c+24|0],h)){break m}g=0;a=0;i=0;if(!o){while(1){e=(d<<2)+f|0;j=a<<2;F[e>>2]=F[j+h>>2];F[e+4>>2]=F[(j|4)+h>>2];F[e+8>>2]=F[(j|8)+h>>2];F[e+12>>2]=F[(j|12)+h>>2];a=a+4|0;d=d+4|0;i=i+4|0;if((n|0)!=(i|0)){continue}break}}if(k){while(1){F[(d<<2)+f>>2]=F[(a<<2)+h>>2];a=a+1|0;d=d+1|0;g=g+1|0;if((k|0)!=(g|0)){continue}break}}b=b+1|0;i=l>>>0>b>>>0;if((b|0)!=(l|0)){continue}break}a=b>>>0>=l>>>0;break l}a=!i;if(!h){break k}}ra(h)}break b;case 1:a=0;m=ea-16|0;ea=m;j=F[b+80>>2];d=D[c+24|0];n:{if((L(j,d)|0)!=(e|0)){break n}a=F[c+28>>2]!=2;k=G[c+84|0];if(!(a|!k)){ta(f,F[F[c>>2]>>2]+F[c+48>>2]|0,e);a=1;break n}F[m+8>>2]=0;F[m>>2]=0;F[m+4>>2]=0;if(d){if((d|0)<0){break c}h=sa(d);F[m>>2]=h;ua(h,0,d)}o:{p:{if(!j){break p}if(!a){if(d){n=d&-4;l=d&3;b=0;o=d-1>>>0<3;d=0;while(1){e=F[F[c>>2]>>2];t=F[c+40>>2];a=F[c+48>>2]+Mj(t,F[c+44>>2],G[c+84|0]?d:F[F[c+68>>2]+(d<<2)>>2],0)|0;e=ta(h,e+a|0,t);k=0;a=0;g=0;if(!o){while(1){i=b+f|0;D[i|0]=G[a+e|0];D[i+1|0]=G[e+(a|1)|0];D[i+2|0]=G[e+(a|2)|0];D[i+3|0]=G[e+(a|3)|0];a=a+4|0;b=b+4|0;g=g+4|0;if((n|0)!=(g|0)){continue}break}}if(l){while(1){D[b+f|0]=G[a+e|0];a=a+1|0;b=b+1|0;k=k+1|0;if((l|0)!=(k|0)){continue}break}}a=1;d=d+1|0;if((j|0)!=(d|0)){continue}break}break o}l=F[c>>2];b=F[c+48>>2];o=F[c+68>>2];d=F[c+44>>2];c=F[c+40>>2];t=c;a=0;if((j|0)!=1){q=j&-2;while(1){e=a|1;p=F[l>>2];f=Mj(c,d,k?a:F[o+(a<<2)>>2],0)+b|0;f=ta(h,p+f|0,t);p=F[l>>2];if(!k){e=F[o+(e<<2)>>2]}e=Mj(c,d,e,0)+b|0;ta(f,e+p|0,t);a=a+2|0;g=g+2|0;if((q|0)!=(g|0)){continue}break}}if(!(j&1)){break p}e=F[l>>2];if(!k){a=F[o+(a<<2)>>2]}a=Mj(c,d,a,0)+b|0;ta(h,a+e|0,t);break p}if(!d){a=0;i=1;while(1){if(!ic(c,G[c+84|0]?a:F[F[c+68>>2]+(a<<2)>>2],D[c+24|0],h)){break p}a=a+1|0;i=j>>>0>a>>>0;if((a|0)!=(j|0)){continue}break}break p}l=d&-4;g=d&3;b=0;n=d-1>>>0<3;i=1;d=0;while(1){if(!ic(c,G[c+84|0]?d:F[F[c+68>>2]+(d<<2)>>2],D[c+24|0],h)){break p}i=0;a=0;k=0;if(!n){while(1){e=b+f|0;D[e|0]=G[a+h|0];D[e+1|0]=G[(a|1)+h|0];D[e+2|0]=G[(a|2)+h|0];D[e+3|0]=G[(a|3)+h|0];a=a+4|0;b=b+4|0;k=k+4|0;if((l|0)!=(k|0)){continue}break}}if(g){while(1){D[b+f|0]=G[a+h|0];a=a+1|0;b=b+1|0;i=i+1|0;if((g|0)!=(i|0)){continue}break}}d=d+1|0;i=j>>>0>d>>>0;if((d|0)!=(j|0)){continue}break}a=d>>>0>=j>>>0;break o}a=i^1;if(!h){break n}}ra(h)}break b;case 3:a=0;m=ea-16|0;ea=m;g=D[c+24|0];d=g<<1;l=F[b+80>>2];q:{if((L(d,l)|0)!=(e|0)){break q}b=F[c+28>>2]!=4;n=G[c+84|0];if(!(b|!n)){ta(f,F[F[c>>2]>>2]+F[c+48>>2]|0,e);a=1;break q}F[m+8>>2]=0;F[m>>2]=0;F[m+4>>2]=0;if(g){if((g|0)<0){break c}h=sa(d);F[m>>2]=h;ua(h,0,d)}r:{s:{if(!l){break s}if(!b){o=F[c>>2];e=F[c+48>>2];q=F[c+68>>2];j=F[c+44>>2];k=F[c+40>>2];p=k;if(g){v=g&-4;u=g&3;d=0;w=g-1>>>0<3;b=0;while(1){c=F[o>>2];a=Mj(k,j,n?b:F[q+(b<<2)>>2],0)+e|0;g=ta(h,c+a|0,p);i=0;a=0;c=0;if(!w){while(1){r=(d<<1)+f|0;s=a<<1;E[r>>1]=H[s+g>>1];E[r+2>>1]=H[g+(s|2)>>1];E[r+4>>1]=H[g+(s|4)>>1];E[r+6>>1]=H[g+(s|6)>>1];a=a+4|0;d=d+4|0;c=c+4|0;if((v|0)!=(c|0)){continue}break}}if(u){while(1){E[(d<<1)+f>>1]=H[g+(a<<1)>>1];a=a+1|0;d=d+1|0;i=i+1|0;if((u|0)!=(i|0)){continue}break}}a=1;b=b+1|0;if((l|0)!=(b|0)){continue}break}break r}if((l|0)!=1){d=l&-2;g=0;while(1){b=a|1;f=F[o>>2];c=Mj(k,j,n?a:F[q+(a<<2)>>2],0)+e|0;c=ta(h,f+c|0,p);f=F[o>>2];if(!n){b=F[q+(b<<2)>>2]}b=Mj(k,j,b,0)+e|0;ta(c,b+f|0,p);a=a+2|0;g=g+2|0;if((d|0)!=(g|0)){continue}break}}if(!(l&1)){break s}b=F[o>>2];if(!n){a=F[q+(a<<2)>>2]}a=Mj(k,j,a,0)+e|0;ta(h,a+b|0,p);break s}if(!g){i=1;while(1){if(!gc(c,G[c+84|0]?a:F[F[c+68>>2]+(a<<2)>>2],D[c+24|0],h)){break s}a=a+1|0;i=l>>>0>a>>>0;if((a|0)!=(l|0)){continue}break}break s}n=g&-4;k=g&3;d=0;o=g-1>>>0<3;i=1;b=0;while(1){if(!gc(c,G[c+84|0]?b:F[F[c+68>>2]+(b<<2)>>2],D[c+24|0],h)){break s}g=0;a=0;i=0;if(!o){while(1){e=(d<<1)+f|0;j=a<<1;E[e>>1]=H[j+h>>1];E[e+2>>1]=H[(j|2)+h>>1];E[e+4>>1]=H[(j|4)+h>>1];E[e+6>>1]=H[(j|6)+h>>1];a=a+4|0;d=d+4|0;i=i+4|0;if((n|0)!=(i|0)){continue}break}}if(k){while(1){E[(d<<1)+f>>1]=H[(a<<1)+h>>1];a=a+1|0;d=d+1|0;g=g+1|0;if((k|0)!=(g|0)){continue}break}}b=b+1|0;i=l>>>0>b>>>0;if((b|0)!=(l|0)){continue}break}a=b>>>0>=l>>>0;break r}a=!i;if(!h){break q}}ra(h)}break b;case 5:a=0;m=ea-16|0;ea=m;g=D[c+24|0];d=g<<2;l=F[b+80>>2];t:{if((L(d,l)|0)!=(e|0)){break t}b=F[c+28>>2]!=6;n=G[c+84|0];if(!(b|!n)){ta(f,F[F[c>>2]>>2]+F[c+48>>2]|0,e);a=1;break t}F[m+8>>2]=0;F[m>>2]=0;F[m+4>>2]=0;if(g){if((g|0)<0){break c}h=sa(d);F[m>>2]=h;ua(h,0,d)}u:{v:{if(!l){break v}if(!b){o=F[c>>2];e=F[c+48>>2];q=F[c+68>>2];j=F[c+44>>2];k=F[c+40>>2];p=k;if(g){v=g&-4;u=g&3;d=0;w=g-1>>>0<3;b=0;while(1){c=F[o>>2];a=Mj(k,j,n?b:F[q+(b<<2)>>2],0)+e|0;g=ta(h,c+a|0,p);i=0;a=0;c=0;if(!w){while(1){r=(d<<2)+f|0;s=a<<2;F[r>>2]=F[s+g>>2];F[r+4>>2]=F[g+(s|4)>>2];F[r+8>>2]=F[g+(s|8)>>2];F[r+12>>2]=F[g+(s|12)>>2];a=a+4|0;d=d+4|0;c=c+4|0;if((v|0)!=(c|0)){continue}break}}if(u){while(1){F[(d<<2)+f>>2]=F[g+(a<<2)>>2];a=a+1|0;d=d+1|0;i=i+1|0;if((u|0)!=(i|0)){continue}break}}a=1;b=b+1|0;if((l|0)!=(b|0)){continue}break}break u}if((l|0)!=1){d=l&-2;g=0;while(1){b=a|1;f=F[o>>2];c=Mj(k,j,n?a:F[q+(a<<2)>>2],0)+e|0;c=ta(h,f+c|0,p);f=F[o>>2];if(!n){b=F[q+(b<<2)>>2]}b=Mj(k,j,b,0)+e|0;ta(c,b+f|0,p);a=a+2|0;g=g+2|0;if((d|0)!=(g|0)){continue}break}}if(!(l&1)){break v}b=F[o>>2];if(!n){a=F[q+(a<<2)>>2]}a=Mj(k,j,a,0)+e|0;ta(h,a+b|0,p);break v}if(!g){i=1;while(1){if(!ec(c,G[c+84|0]?a:F[F[c+68>>2]+(a<<2)>>2],D[c+24|0],h)){break v}a=a+1|0;i=l>>>0>a>>>0;if((a|0)!=(l|0)){continue}break}break v}n=g&-4;k=g&3;d=0;o=g-1>>>0<3;i=1;b=0;while(1){if(!ec(c,G[c+84|0]?b:F[F[c+68>>2]+(b<<2)>>2],D[c+24|0],h)){break v}g=0;a=0;i=0;if(!o){while(1){e=(d<<2)+f|0;j=a<<2;F[e>>2]=F[j+h>>2];F[e+4>>2]=F[(j|4)+h>>2];F[e+8>>2]=F[(j|8)+h>>2];F[e+12>>2]=F[(j|12)+h>>2];a=a+4|0;d=d+4|0;i=i+4|0;if((n|0)!=(i|0)){continue}break}}if(k){while(1){F[(d<<2)+f>>2]=F[(a<<2)+h>>2];a=a+1|0;d=d+1|0;g=g+1|0;if((k|0)!=(g|0)){continue}break}}b=b+1|0;i=l>>>0>b>>>0;if((b|0)!=(l|0)){continue}break}a=b>>>0>=l>>>0;break u}a=!i;if(!h){break t}}ra(h)}break b;case 8:break d;default:break a}}a=0;l=ea-16|0;ea=l;i=D[c+24|0];d=i<<2;g=F[b+80>>2];w:{if((L(d,g)|0)!=(e|0)){break w}e=F[c+28>>2];F[l+8>>2]=0;F[l>>2]=0;F[l+4>>2]=0;b=0;x:{y:{z:{A:{if(!i){break A}if((i|0)<0){break z}b=sa(d);F[l>>2]=b;j=(i<<2)+b|0;F[l+8>>2]=j;a=b;d=d-4|0;m=(d>>>2|0)+1&7;if(m){while(1){F[a>>2]=-1073741824;a=a+4|0;h=h+1|0;if((m|0)!=(h|0)){continue}break}}if(d>>>0<28){break A}while(1){F[a+24>>2]=-1073741824;F[a+28>>2]=-1073741824;F[a+16>>2]=-1073741824;F[a+20>>2]=-1073741824;F[a+8>>2]=-1073741824;F[a+12>>2]=-1073741824;F[a>>2]=-1073741824;F[a+4>>2]=-1073741824;a=a+32|0;if((j|0)!=(a|0)){continue}break}}if(!g){break y}if((e|0)==9){a=0;n=F[c>>2];d=F[c+48>>2];t=F[c+68>>2];q=G[c+84|0];e=F[c+44>>2];j=F[c+40>>2];p=j;if((i|0)<=0){if((g|0)!=1){i=g&-2;c=0;while(1){f=a|1;m=F[n>>2];h=Mj(j,e,q?a:F[t+(a<<2)>>2],0)+d|0;h=ta(b,m+h|0,p);m=F[n>>2];if(!q){f=F[t+(f<<2)>>2]}f=Mj(j,e,f,0)+d|0;ta(h,f+m|0,p);a=a+2|0;c=c+2|0;if((i|0)!=(c|0)){continue}break}}if(!(g&1)){break y}c=F[n>>2];if(!q){a=F[t+(a<<2)>>2]}a=Mj(j,e,a,0)+d|0;ta(b,a+c|0,p);break y}v=i&-4;s=i&3;h=0;w=i-1>>>0<3;i=0;while(1){c=F[n>>2];a=Mj(j,e,q?i:F[t+(i<<2)>>2],0)+d|0;c=ta(b,c+a|0,p);m=0;a=0;u=0;if(!w){while(1){k=(h<<2)+f|0;r=a<<2;J[k>>2]=J[r+c>>2];J[k+4>>2]=J[c+(r|4)>>2];J[k+8>>2]=J[c+(r|8)>>2];J[k+12>>2]=J[c+(r|12)>>2];a=a+4|0;h=h+4|0;u=u+4|0;if((v|0)!=(u|0)){continue}break}}if(s){while(1){J[(h<<2)+f>>2]=J[c+(a<<2)>>2];a=a+1|0;h=h+1|0;m=m+1|0;if((s|0)!=(m|0)){continue}break}}a=1;i=i+1|0;if((g|0)!=(i|0)){continue}break}break x}k=1;if((i|0)<=0){a=0;while(1){if(!Ya(c,G[c+84|0]?a:F[F[c+68>>2]+(a<<2)>>2],D[c+24|0],b)){break y}a=a+1|0;k=g>>>0>a>>>0;if((a|0)!=(g|0)){continue}break}break y}n=i&-4;j=i&3;h=0;o=i-1>>>0<3;i=0;while(1){if(!Ya(c,G[c+84|0]?i:F[F[c+68>>2]+(i<<2)>>2],D[c+24|0],b)){break y}k=0;a=0;m=0;if(!o){while(1){d=(h<<2)+f|0;e=a<<2;J[d>>2]=J[e+b>>2];J[d+4>>2]=J[(e|4)+b>>2];J[d+8>>2]=J[(e|8)+b>>2];J[d+12>>2]=J[(e|12)+b>>2];a=a+4|0;h=h+4|0;m=m+4|0;if((n|0)!=(m|0)){continue}break}}if(j){while(1){J[(h<<2)+f>>2]=J[(a<<2)+b>>2];a=a+1|0;h=h+1|0;k=k+1|0;if((j|0)!=(k|0)){continue}break}}i=i+1|0;k=g>>>0>i>>>0;if((g|0)!=(i|0)){continue}break}a=g>>>0<=i>>>0;break x}va();V()}a=k^1;if(!b){break w}}ra(b)}ea=l+16|0;h=a&1;break a}va();V()}ea=m+16|0;h=a&1}return h|0}function zg(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,E=0,H=0,I=0,J=0,K=0,M=0;z=c;c=0;n=ea-96|0;ea=n;k=n+16|0;ua(k,0,76);F[n+92>>2]=-1;F[n+8>>2]=0;F[n>>2]=0;F[n+4>>2]=0;q=ea-16|0;ea=q;F[k+68>>2]=0;F[k+72>>2]=0;F[k>>2]=b;s=ea-16|0;ea=s;v=b;a=F[b+20>>2];a:{if((F[b+24>>2]-a|0)<=0){break a}a=F[a>>2];if((a|0)==-1){break a}c=F[F[v+8>>2]+(a<<2)>>2]}b:{c:{d:{if(!c){a=0;break d}a=F[v+100>>2];d=F[v+96>>2];F[s+8>>2]=0;F[s>>2]=0;F[s+4>>2]=0;e=a-d|0;b=(e|0)/12|0;e:{if((a|0)==(d|0)){break e}if(b>>>0>=357913942){break c}f=sa(e);F[s>>2]=f;F[s+8>>2]=f+L(b,12);a=0;g=f;e=e-12|0;f=(e-((e>>>0)%12|0)|0)+12|0;e=ua(g,0,f);F[s+4>>2]=e+f;if(G[c+84|0]){c=b>>>0>1?b:1;g=c&1;if(b>>>0>=2){i=c&-2;c=0;while(1){f=L(a,12);b=f+d|0;h=F[b+4>>2];o=F[b>>2];f=e+f|0;F[f+8>>2]=F[b+8>>2];F[f>>2]=o;F[f+4>>2]=h;f=L(a|1,12);b=f+d|0;h=F[b+4>>2];o=F[b>>2];f=e+f|0;F[f+8>>2]=F[b+8>>2];F[f>>2]=o;F[f+4>>2]=h;a=a+2|0;c=c+2|0;if((i|0)!=(c|0)){continue}break}}if(!g){break e}b=L(a,12);a=b+d|0;c=F[a+4>>2];d=F[a>>2];b=b+e|0;F[b+8>>2]=F[a+8>>2];F[b>>2]=d;F[b+4>>2]=c;break e}g=b>>>0>1?b:1;a=F[c+68>>2];c=0;while(1){f=L(c,12);b=f+d|0;i=F[a+(F[b>>2]<<2)>>2];h=F[a+(F[b+4>>2]<<2)>>2];f=e+f|0;F[f+8>>2]=F[a+(F[b+8>>2]<<2)>>2];F[f+4>>2]=h;F[f>>2]=i;c=c+1|0;if((g|0)!=(c|0)){continue}break}}c=0;C=ea-16|0;ea=C;h=sa(88);$b(h);A=ea-16|0;ea=A;F[h+80>>2]=0;F[h+84>>2]=0;a=F[h+76>>2];F[h+76>>2]=0;if(a){ra(a)}F[h+68>>2]=0;F[h+72>>2]=0;b=h- -64|0;a=F[b>>2];F[b>>2]=0;if(a){ra(a)}d=F[s+4>>2];g=F[s>>2];b=(d-g|0)/12|0;a=L(b,3);f=F[h>>2];e=F[h+4>>2]-f>>2;f:{if(a>>>0>e>>>0){Aa(h,a-e|0);d=F[s+4>>2];g=F[s>>2];b=(d-g|0)/12|0;break f}if(a>>>0>=e>>>0){break f}F[h+4>>2]=f+(a<<2)}g:{if((d|0)==(g|0)){break g}d=b>>>0>1?b:1;f=d&1;a=F[h>>2];if(b>>>0>=2){i=d&-2;b=0;while(1){d=L(c,12);o=d+a|0;e=d+g|0;F[o>>2]=F[e>>2];F[a+(d|4)>>2]=F[e+4>>2];F[o+8>>2]=F[e+8>>2];e=L(c|1,12);d=e+a|0;e=e+g|0;F[d>>2]=F[e>>2];F[d+4>>2]=F[e+4>>2];F[d+8>>2]=F[e+8>>2];c=c+2|0;b=b+2|0;if((i|0)!=(b|0)){continue}break}}if(!f){break g}b=L(c,12);a=b+a|0;b=b+g|0;F[a>>2]=F[b>>2];F[a+4>>2]=F[b+4>>2];F[a+8>>2]=F[b+8>>2]}F[A+12>>2]=-1;a=0;e=0;d=0;i=ea-32|0;ea=i;h:{i:{w=A+12|0;j:{if(!w){break j}b=F[h+4>>2];o=F[h>>2];c=b-o|0;j=c>>2;g=F[h+12>>2];f=F[h+16>>2]-g>>2;k:{if(j>>>0>f>>>0){Ia(h+12|0,j-f|0,13652);b=F[h+4>>2];o=F[h>>2];c=b-o|0;j=c>>2;break k}if(f>>>0<=j>>>0){break k}F[h+16>>2]=g+(j<<2)}F[i+24>>2]=0;F[i+16>>2]=0;F[i+20>>2]=0;f=(b|0)==(o|0);if(!f){if((c|0)<0){break i}e=sa(c);F[i+20>>2]=e;F[i+16>>2]=e;F[i+24>>2]=(j<<2)+e}l:{m:{n:{o:{p:{if(c){while(1){g=F[(a<<2)+o>>2];c=F[i+20>>2]-e>>2;q:{if(g>>>0>>0){break q}F[i>>2]=0;f=g+1|0;if(f>>>0>c>>>0){Ia(i+16|0,f-c|0,i);o=F[h>>2];b=F[h+4>>2];e=F[i+16>>2];break q}if(c>>>0<=f>>>0){break q}F[i+20>>2]=(f<<2)+e}c=(g<<2)+e|0;F[c>>2]=F[c>>2]+1;a=a+1|0;c=b-o|0;j=c>>2;if(a>>>0>>0){continue}break}break p}c=0;if(!f){break o}break n}if((b|0)==(o|0)){c=0;break n}if(c>>>0>=2147483645){break m}}c=sa(c<<1);ua(c,255,j<<3)}F[i+8>>2]=0;F[i>>2]=0;F[i+4>>2]=0;b=F[i+20>>2];a=b-e|0;t=a>>2;r:{s:{if((b|0)==(e|0)){break s}if((a|0)<0){break r}m=sa(a);F[i>>2]=m;F[i+8>>2]=(t<<2)+m;b=ua(m,0,a);F[i+4>>2]=b+a;f=t>>>0>1?t:1;g=f&3;a=0;if(f-1>>>0>=3){r=f&-4;while(1){f=d<<2;F[f+b>>2]=a;x=f|4;a=F[e+f>>2]+a|0;F[x+b>>2]=a;u=f|8;a=a+F[e+x>>2]|0;F[u+b>>2]=a;f=f|12;a=a+F[e+u>>2]|0;F[f+b>>2]=a;a=a+F[e+f>>2]|0;d=d+4|0;p=p+4|0;if((r|0)!=(p|0)){continue}break}}if(!g){break s}while(1){f=d<<2;F[f+b>>2]=a;d=d+1|0;a=F[e+f>>2]+a|0;l=l+1|0;if((g|0)!=(l|0)){continue}break}}if(!j){break l}x=F[h+12>>2];f=0;while(1){E=f<<2;a=E+o|0;l=-1;g=f+1|0;b=(g>>>0)%3|0?g:f-2|0;if((b|0)!=-1){l=F[(b<<2)+o>>2]}b=F[a>>2];t:{u:{if(!((f>>>0)%3|0)){p=-1;a=f+2|0;if((a|0)!=-1){p=F[(a<<2)+o>>2]}if(!((b|0)==(l|0)|(b|0)==(p|0))&(l|0)!=(p|0)){break u}F[h+40>>2]=F[h+40>>2]+1;f=f+3|0;break t}p=F[a-4>>2]}a=p<<2;u=F[a+e>>2];v:{w:{if((u|0)<=0){break w}a=F[a+m>>2];d=0;while(1){r=(a<<3)+c|0;y=F[r>>2];if((y|0)==-1){break w}x:{if((l|0)!=(y|0)){break x}r=F[r+4>>2];if((r|0)!=-1){y=F[(r<<2)+o>>2]}else{y=-1}if((y|0)==(b|0)){break x}while(1){y:{b=a;d=d+1|0;if((u|0)<=(d|0)){break y}a=b+1|0;H=(a<<3)+c|0;y=F[H>>2];I=(b<<3)+c|0;F[I+4>>2]=F[H+4>>2];F[I>>2]=y;if((y|0)!=-1){continue}}break}F[(b<<3)+c>>2]=-1;if((r|0)==-1){break w}F[x+E>>2]=r;F[x+(r<<2)>>2]=f;break v}a=a+1|0;d=d+1|0;if((u|0)!=(d|0)){continue}break}}a=l<<2;l=F[a+e>>2];if((l|0)<=0){break v}a=F[a+m>>2];d=0;while(1){b=(a<<3)+c|0;if(F[b>>2]==-1){F[b>>2]=p;F[b+4>>2]=f;break v}a=a+1|0;d=d+1|0;if((l|0)!=(d|0)){continue}break}}f=g}if(j>>>0>f>>>0){continue}break}break l}break i}va();V()}F[w>>2]=t;if(m){ra(m)}if(c){ra(c)}a=F[i+16>>2];if(!a){break j}F[i+20>>2]=a;ra(a)}ea=i+32|0;x=(w|0)!=0;if(x){l=ea-32|0;ea=l;m=F[h>>2];a=F[h+4>>2];F[l+24>>2]=0;F[l+16>>2]=0;F[l+20>>2]=0;z:{if((a|0)==(m|0)){break z}d=a-m|0;if((d|0)<0){break i}b=d>>2;e=b-1>>>5|0;f=e+1|0;c=sa(f<<2);F[l+24>>2]=f;F[l+16>>2]=c;F[l+20>>2]=b;F[c+((d>>>0<132?0:e)<<2)>>2]=0;d=c;c=b>>>5<<2;d=ua(d,0,c);if((b|0)==(b&-32)){break z}c=c+d|0;F[c>>2]=F[c>>2]&(-1>>>32-(b&31)^-1)}F[l+8>>2]=0;F[l>>2]=0;while(1){A:{r=0;o=0;if((a|0)==(m|0)){break A}while(1){b=F[l+16>>2];B:{if(F[b+(o>>>3&536870908)>>2]>>>o&1){break B}e=F[l>>2];F[l+4>>2]=e;c=F[h+12>>2];a=o;while(1){C:{d=a+1|0;i=a;a=(d>>>0)%3|0?d:a-2|0;if((a|0)==-1){break C}a=F[c+(a<<2)>>2];if((a|0)==-1){break C}d=a+1|0;a=(d>>>0)%3|0?d:a-2|0;if((o|0)==(a|0)|(a|0)==-1){break C}if(!(F[b+(a>>>3&536870908)>>2]>>>a&1)){continue}}break}d=i;D:{E:{F:{while(1){a=F[l+16>>2]+(d>>>3&536870908)|0;F[a>>2]=F[a>>2]|1<>>0)%3|0?a:d-2|0;m=F[h>>2];u=(d>>>0)%3|0;b=(u?-1:2)+d|0;j=F[l>>2];G:{if((j|0)==(e|0)){break G}w=F[(g<<2)+m>>2];p=F[h+12>>2];a=j;if((b|0)!=-1){c=p+(b<<2)|0;while(1){H:{if((w|0)!=F[a>>2]){break H}f=F[a+4>>2];t=F[c>>2];if((f|0)==(t|0)){break H}e=-1;c=b;a=-1;if((f|0)==-1){break D}break E}a=a+8|0;if((e|0)!=(a|0)){continue}break}break G}while(1){if((w|0)==F[a>>2]){t=-1;c=-1;f=F[a+4>>2];if((f|0)!=-1){break E}}a=a+8|0;if((e|0)!=(a|0)){continue}break}}f=F[(b<<2)+m>>2];I:{if(F[l+8>>2]!=(e|0)){F[e>>2]=f;F[e+4>>2]=g;e=e+8|0;F[l+4>>2]=e;break I}b=e-j|0;e=b>>3;a=e+1|0;if(a>>>0>=536870912){break i}c=b>>2;c=b>>>0<2147483640?a>>>0>>0?c:a:536870911;if(c){if(c>>>0>=536870912){break F}a=sa(c<<3)}else{a=0}e=a+(e<<3)|0;F[e>>2]=f;F[e+4>>2]=g;e=e+8|0;if((b|0)>0){ta(a,j,b)}F[l+8>>2]=a+(c<<3);F[l+4>>2]=e;F[l>>2]=a;if(!j){break I}ra(j)}J:{K:{if(u){a=d-1|0;break K}a=d+2|0;if((a|0)==-1){break J}}a=F[F[h+12>>2]+(a<<2)>>2];if((a|0)==-1){break J}d=a+((a>>>0)%3|0?-1:2)|0;if((i|0)==(d|0)){break J}if((d|0)!=-1){continue}}break}m=F[h>>2];break B}za();V()}b=c;e=f;a=F[p+(e<<2)>>2]}if((t|0)!=-1){F[p+(t<<2)>>2]=-1}if((a|0)!=-1){F[F[h+12>>2]+(a<<2)>>2]=-1}a=F[h+12>>2];F[a+(b<<2)>>2]=-1;F[a+(e<<2)>>2]=-1;r=1}o=o+1|0;a=F[h+4>>2];if(o>>>0>2>>>0){continue}break}if(r){continue}}break}a=F[l>>2];if(a){ra(a)}a=F[l+16>>2];if(a){ra(a)}ea=l+32|0;c=0;f=0;l=0;i=ea-32|0;ea=i;a=F[A+12>>2];F[h+36>>2]=a;o=h+24|0;d=F[h+24>>2];b=F[h+28>>2]-d>>2;L:{M:{if(b>>>0>>0){Ia(o,a-b|0,13652);F[i+24>>2]=0;F[i+16>>2]=0;F[i+20>>2]=0;break M}if(a>>>0>>0){F[h+28>>2]=d+(a<<2)}F[i+24>>2]=0;F[i+16>>2]=0;F[i+20>>2]=0;if(!a){break L}}if((a|0)<0){break i}b=a-1>>>5|0;d=b+1|0;c=sa(d<<2);F[i+24>>2]=d;F[i+16>>2]=c;F[i+20>>2]=a;F[((a>>>0<33?0:b)<<2)+c>>2]=0;b=a>>>5<<2;d=ua(c,0,b);if((a&-32)==(a|0)){break L}b=b+d|0;F[b>>2]=F[b>>2]&(-1>>>32-(a&31)^-1)}j=F[h>>2];e=F[h+4>>2];F[i+8>>2]=0;F[i>>2]=0;F[i+4>>2]=0;d=e-j|0;N:{if((e|0)==(j|0)){break N}if((d|0)<0){break i}b=d>>2;g=b-1>>>5|0;m=g+1|0;f=sa(m<<2);F[i+8>>2]=m;F[i>>2]=f;F[i+4>>2]=b;F[((d>>>0<132?0:g)<<2)+f>>2]=0;g=b>>>5<<2;m=ua(f,0,g);if((b|0)==(b&-32)){break N}g=g+m|0;F[g>>2]=F[g>>2]&(-1>>>32-(b&31)^-1)}if(d>>>0>=12){O:{P:{while(1){p=L(l,3);d=(p<<2)+j|0;b=F[d>>2];g=-1;m=p+1|0;if((m|0)!=-1){g=F[(m<<2)+j>>2]}Q:{if((b|0)==(g|0)){break Q}m=b;b=F[d+8>>2];if((m|0)==(b|0)){break Q}m=0;if((b|0)==(g|0)){break Q}while(1){b=m+p|0;if(!(F[(b>>>3&536870908)+f>>2]>>>b&1)){d=F[(b<<2)+j>>2];g=1<>>5|0;t=g&F[(j<<2)+c>>2];if(t){c=F[h+28>>2];R:{if((c|0)!=F[h+32>>2]){F[c>>2]=-1;F[h+28>>2]=c+4;break R}f=F[o>>2];e=c-f|0;j=e>>2;c=j+1|0;if(c>>>0>=1073741824){break i}g=e>>1;g=e>>>0<2147483644?c>>>0>>0?g:c:1073741823;if(g){if(g>>>0>=1073741824){break P}c=sa(g<<2)}else{c=0}j=c+(j<<2)|0;F[j>>2]=-1;if((e|0)>0){ta(c,f,e)}F[h+32>>2]=c+(g<<2);F[h+28>>2]=j+4;F[h+24>>2]=c;if(!f){break R}ra(f)}c=F[h+52>>2];S:{if((c|0)!=F[h+56>>2]){F[c>>2]=d;F[h+52>>2]=c+4;break S}f=F[h+48>>2];e=c-f|0;j=e>>2;c=j+1|0;if(c>>>0>=1073741824){break i}g=e>>1;g=e>>>0<2147483644?c>>>0>>0?g:c:1073741823;if(g){if(g>>>0>=1073741824){break P}c=sa(g<<2)}else{c=0}j=c+(j<<2)|0;F[j>>2]=d;if((e|0)>0){ta(c,f,e)}F[h+56>>2]=c+(g<<2);F[h+52>>2]=j+4;F[h+48>>2]=c;if(!f){break S}ra(f)}g=F[i+20>>2];c=F[i+24>>2];if((g|0)==c<<5){if((g+1|0)<0){break i}d=i+16|0;if(g>>>0<=1073741822){c=c<<6;e=g+32&-32;c=c>>>0>e>>>0?c:e}else{c=2147483647}fb(d,c);g=F[i+20>>2]}F[i+20>>2]=g+1;c=F[i+16>>2]+(g>>>3&536870908)|0;d=F[c>>2];K=c,M=Qj(g)&d,F[K>>2]=M;g=1<>>5|0;d=a;a=a+1|0}e=a;c=F[i+16>>2];a=c+(j<<2)|0;F[a>>2]=F[a>>2]|g;w=F[h+24>>2]+(d<<2)|0;r=F[h+12>>2];j=F[h>>2];f=F[i>>2];a=b;T:{U:{V:{while(1){if((a|0)==-1){break V}g=(a>>>3&536870908)+f|0;F[g>>2]=F[g>>2]|1<>2]=a;if(t){F[(a<<2)+j>>2]=d}u=a+1|0;a=(u>>>0)%3|0?u:a-2|0;g=-1;W:{if((a|0)==-1){break W}a=F[r+(a<<2)>>2];g=-1;if((a|0)==-1){break W}g=a+1|0;g=(g>>>0)%3|0?g:a-2|0}a=g;if((b|0)!=(a|0)){continue}break}if((b|0)!=-1){break T}a=1;break U}if((b>>>0)%3|0){a=b-1|0;break U}a=b+2|0;if((a|0)==-1){break T}}a=F[r+(a<<2)>>2];if((a|0)==-1){break T}X:{if((a>>>0)%3|0){a=a-1|0;break X}a=a+2|0;if((a|0)==-1){break T}}b=F[h+12>>2];j=F[h>>2];f=F[i>>2];while(1){g=(a>>>3&536870908)+f|0;F[g>>2]=F[g>>2]|1<>2]=d}Y:{if((a>>>0)%3|0){a=a-1|0;break Y}a=a+2|0;if((a|0)==-1){break T}}a=F[b+(a<<2)>>2];if((a|0)==-1){break T}a=a+((a>>>0)%3|0?-1:2)|0;if((a|0)!=-1){continue}break}}a=e}m=m+1|0;if((m|0)!=3){continue}break}j=F[h>>2];e=F[h+4>>2]}l=l+1|0;if(l>>>0<(e-j>>2>>>0)/3>>>0){continue}break}break O}za();V()}c=F[i+16>>2]}a=0;F[h+44>>2]=0;b=F[i+20>>2];if(b){d=b&31;b=(b>>>3&536870908)+c|0;g=c;f=0;while(1){if(!(F[g>>2]>>>a&1)){f=f+1|0;F[h+44>>2]=f}e=(a|0)==31;a=e?0:a+1|0;g=(e<<2)+g|0;if((b|0)!=(g|0)|(a|0)!=(d|0)){continue}break}}a=F[i>>2];if(a){ra(a);c=F[i+16>>2]}if(c){ra(c)}ea=i+32|0}ea=A+16|0;if(!x){F[C+8>>2]=0;eb(h);h=0}ea=C+16|0;a=h;break h}va();V()}b=F[s>>2];if(!b){break d}F[s+4>>2]=b;ra(b)}ea=s+16|0;break b}va();V()}c=F[k+4>>2];b=a;F[k+4>>2]=a;if(c){eb(c);b=F[k+4>>2]}Z:{if(!b){break Z}a=F[v+100>>2];c=F[v+96>>2];D[q+12|0]=0;Qa(k+56|0,(a-c|0)/12|0,q+12|0);a=F[v+100>>2];c=F[v+96>>2];if((a|0)==(c|0)){break Z}while(1){if(!(F[F[k+56>>2]+(B>>>3&536870908)>>2]>>>B&1)){a=L(B,3);Ec(k,0,a);c=F[k+8>>2];d=F[k+12>>2];Ec(k,1,a+1|0);e=F[k+20>>2];f=F[k+24>>2];Ec(k,2,a+2|0);g=(c|0)==(d|0)?-1:0;a=f-e>>2;c=d-c>>2;d=a>>>0>c>>>0;c=F[k+36>>2]-F[k+32>>2]>>2>>>0>(d?a:c)>>>0?2:d?1:g;_:{if(F[k+68>>2]<=0){break _}F[q+12>>2]=F[k+76>>2];F[q+8>>2]=n;jb(q+8|0,q+12|0);a=F[((c<<2)+k|0)+44>>2];if((a|0)<0){a=-1}else{d=(a>>>0)/3|0;a=F[(F[F[k>>2]+96>>2]+L(d,12)|0)+(a-L(d,3)<<2)>>2]}F[q+12>>2]=a;F[q+8>>2]=n;jb(q+8|0,q+12|0);d=F[k+72>>2];F[k+72>>2]=d+2;if(!(d&1)){break _}F[q+12>>2]=a;F[q+8>>2]=n;jb(q+8|0,q+12|0);F[k+72>>2]=F[k+72>>2]+1}f=0;d=ea-16|0;ea=d;F[k+68>>2]=F[k+68>>2]+1;a=L(c,12)+k|0;a=F[a+12>>2]-F[a+8>>2]|0;if((a|0)>0){a=a>>>2|0;g=a>>>0>1?a:1;c=F[((c<<2)+k|0)+44>>2];while(1){a=c;e=(a>>>0)/3|0;i=(a|0)==-1;c=i?-1:e;h=F[k+56>>2]+(c>>>3&536870908)|0;F[h>>2]=F[h>>2]|1<>2]=F[k+72>>2]+1;$:{aa:{ba:{ca:{da:{if(!f){F[d+12>>2]=(a|0)<0?-1:F[(F[F[k>>2]+96>>2]+L(e,12)|0)+((a>>>0)%3<<2)>>2];F[d+8>>2]=n;jb(d+8|0,d+12|0);if(i){break da}c=-1;e=a+1|0;e=(e>>>0)%3|0?e:a-2|0;if((e|0)>=0){i=(e>>>0)/3|0;e=F[(F[F[k>>2]+96>>2]+L(i,12)|0)+(e-L(i,3)<<2)>>2]}else{e=-1}F[d+12>>2]=e;F[d+8>>2]=n;jb(d+8|0,d+12|0);e=((a>>>0)%3|0?-1:2)+a|0;if((e|0)<0){break ca}c=(e>>>0)/3|0;c=F[(F[F[k>>2]+96>>2]+L(c,12)|0)+(e-L(c,3)<<2)>>2];break ca}c=(a|0)<0?-1:F[(F[F[k>>2]+96>>2]+L(e,12)|0)+((a>>>0)%3<<2)>>2];F[k+76>>2]=c;F[d+12>>2]=c;F[d+8>>2]=n;jb(d+8|0,d+12|0);if(f&1){c=-1;if((a|0)==-1){break $}if((L(e,3)|0)!=(a|0)){a=a-1|0;break aa}a=a+2|0;break ba}c=-1;if((a|0)==-1){break $}c=a+1|0;a=(c>>>0)%3|0?c:a-2|0;break ba}c=-1;F[d+12>>2]=-1;F[d+8>>2]=n;jb(d+8|0,d+12|0)}F[k+76>>2]=c;F[d+12>>2]=c;F[d+8>>2]=n;jb(d+8|0,d+12|0)}c=-1;if((a|0)==-1){break $}}c=F[F[F[k+4>>2]+12>>2]+(a<<2)>>2]}f=f+1|0;if((g|0)!=(f|0)){continue}break}}ea=d+16|0;c=F[v+96>>2];a=F[v+100>>2]}B=B+1|0;if(B>>>0<(a-c|0)/12>>>0){continue}break}}ea=q+16|0;ea:{if(b){a=F[z>>2];if(a){F[z+4>>2]=a;ra(a)}F[z>>2]=F[n>>2];F[z+4>>2]=F[n+4>>2];F[z+8>>2]=F[n+8>>2];J=F[n+84>>2];break ea}a=F[n>>2];if(!a){break ea}F[n+4>>2]=a;ra(a)}a=F[n+72>>2];if(a){ra(a)}a=F[n+48>>2];if(a){F[n+52>>2]=a;ra(a)}a=F[n+36>>2];if(a){F[n+40>>2]=a;ra(a)}a=F[n+24>>2];if(a){F[n+28>>2]=a;ra(a)}a=F[n+20>>2];F[n+20>>2]=0;if(a){eb(a)}ea=n+96|0;return J|0}function Id(a){a=a|0;var b=0,c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0;l=ea-16|0;ea=l;a:{b:{c:{d:{e:{f:{g:{h:{i:{j:{k:{if(a>>>0<=244){e=F[4288];h=a>>>0<11?16:a+11&-8;c=h>>>3|0;b=e>>>c|0;if(b&3){c=c+((b^-1)&1)|0;a=c<<3;b=a+17192|0;d=F[a+17200>>2];a=F[d+8>>2];l:{if((b|0)==(a|0)){m=17152,n=Qj(c)&e,F[m>>2]=n;break l}F[a+12>>2]=b;F[b+8>>2]=a}a=d+8|0;b=c<<3;F[d+4>>2]=b|3;b=b+d|0;F[b+4>>2]=F[b+4>>2]|1;break a}k=F[4290];if(k>>>0>=h>>>0){break k}if(b){a=2<>>12&16;c=a;b=b>>>a|0;a=b>>>5&8;c=c|a;b=b>>>a|0;a=b>>>2&4;c=c|a;b=b>>>a|0;a=b>>>1&2;c=c|a;b=b>>>a|0;a=b>>>1&1;d=(c|a)+(b>>>a|0)|0;a=d<<3;b=a+17192|0;g=F[a+17200>>2];a=F[g+8>>2];m:{if((b|0)==(a|0)){e=Qj(d)&e;F[4288]=e;break m}F[a+12>>2]=b;F[b+8>>2]=a}F[g+4>>2]=h|3;c=g+h|0;a=d<<3;d=a-h|0;F[c+4>>2]=d|1;F[a+g>>2]=d;if(k){b=(k&-8)+17192|0;f=F[4293];a=1<<(k>>>3);n:{if(!(a&e)){F[4288]=a|e;a=b;break n}a=F[b+8>>2]}F[b+8>>2]=f;F[a+12>>2]=f;F[f+12>>2]=b;F[f+8>>2]=a}a=g+8|0;F[4293]=c;F[4290]=d;break a}j=F[4289];if(!j){break k}b=(0-j&j)-1|0;a=b>>>12&16;c=a;b=b>>>a|0;a=b>>>5&8;c=c|a;b=b>>>a|0;a=b>>>2&4;c=c|a;b=b>>>a|0;a=b>>>1&2;c=c|a;b=b>>>a|0;a=b>>>1&1;c=F[((c|a)+(b>>>a|0)<<2)+17456>>2];f=(F[c+4>>2]&-8)-h|0;b=c;while(1){o:{a=F[b+16>>2];if(!a){a=F[b+20>>2];if(!a){break o}}b=(F[a+4>>2]&-8)-h|0;d=b>>>0>>0;f=d?b:f;c=d?a:c;b=a;continue}break}i=F[c+24>>2];d=F[c+12>>2];if((d|0)!=(c|0)){a=F[c+8>>2];F[a+12>>2]=d;F[d+8>>2]=a;break b}b=c+20|0;a=F[b>>2];if(!a){a=F[c+16>>2];if(!a){break j}b=c+16|0}while(1){g=b;d=a;b=a+20|0;a=F[b>>2];if(a){continue}b=d+16|0;a=F[d+16>>2];if(a){continue}break}F[g>>2]=0;break b}h=-1;if(a>>>0>4294967231){break k}a=a+11|0;h=a&-8;j=F[4289];if(!j){break k}f=0-h|0;e=0;p:{if(h>>>0<256){break p}e=31;if(h>>>0>16777215){break p}a=a>>>8|0;g=a+1048320>>>16&8;a=a<>>16&4;a=a<>>16&2;a=(a<>>15|0)-(b|(c|g))|0;e=(a<<1|h>>>a+21&1)+28|0}b=F[(e<<2)+17456>>2];q:{r:{s:{if(!b){a=0;break s}a=0;c=h<<((e|0)==31?0:25-(e>>>1|0)|0);while(1){t:{g=(F[b+4>>2]&-8)-h|0;if(g>>>0>=f>>>0){break t}d=b;f=g;if(f){break t}f=0;a=b;break r}g=F[b+20>>2];b=F[((c>>>29&4)+b|0)+16>>2];a=g?(g|0)==(b|0)?a:g:a;c=c<<1;if(b){continue}break}}if(!(a|d)){d=0;a=2<>>12&16;c=a;b=b>>>a|0;a=b>>>5&8;c=c|a;b=b>>>a|0;a=b>>>2&4;c=c|a;b=b>>>a|0;a=b>>>1&2;c=c|a;b=b>>>a|0;a=b>>>1&1;a=F[((c|a)+(b>>>a|0)<<2)+17456>>2]}if(!a){break q}}while(1){b=(F[a+4>>2]&-8)-h|0;c=b>>>0>>0;f=c?b:f;d=c?a:d;b=F[a+16>>2];if(b){a=b}else{a=F[a+20>>2]}if(a){continue}break}}if(!d|F[4290]-h>>>0<=f>>>0){break k}e=F[d+24>>2];c=F[d+12>>2];if((d|0)!=(c|0)){a=F[d+8>>2];F[a+12>>2]=c;F[c+8>>2]=a;break c}b=d+20|0;a=F[b>>2];if(!a){a=F[d+16>>2];if(!a){break i}b=d+16|0}while(1){g=b;c=a;b=a+20|0;a=F[b>>2];if(a){continue}b=c+16|0;a=F[c+16>>2];if(a){continue}break}F[g>>2]=0;break c}c=F[4290];if(c>>>0>=h>>>0){d=F[4293];b=c-h|0;u:{if(b>>>0>=16){F[4290]=b;a=d+h|0;F[4293]=a;F[a+4>>2]=b|1;F[c+d>>2]=b;F[d+4>>2]=h|3;break u}F[4293]=0;F[4290]=0;F[d+4>>2]=c|3;a=c+d|0;F[a+4>>2]=F[a+4>>2]|1}a=d+8|0;break a}i=F[4291];if(i>>>0>h>>>0){b=i-h|0;F[4291]=b;c=F[4294];a=c+h|0;F[4294]=a;F[a+4>>2]=b|1;F[c+4>>2]=h|3;a=c+8|0;break a}a=0;j=h+47|0;if(F[4406]){c=F[4408]}else{F[4409]=-1;F[4410]=-1;F[4407]=4096;F[4408]=4096;F[4406]=l+12&-16^1431655768;F[4411]=0;F[4399]=0;c=4096}g=j+c|0;f=0-c|0;b=g&f;if(b>>>0<=h>>>0){break a}d=F[4398];if(d){c=F[4396];e=c+b|0;if(d>>>0>>0|c>>>0>=e>>>0){break a}}if(G[17596]&4){break f}v:{w:{d=F[4294];if(d){a=17600;while(1){c=F[a>>2];if(c>>>0<=d>>>0&d>>>0>2]>>>0){break w}a=F[a+8>>2];if(a){continue}break}}c=mb(0);if((c|0)==-1){break g}e=b;d=F[4407];a=d-1|0;if(a&c){e=(b-c|0)+(a+c&0-d)|0}if(e>>>0<=h>>>0|e>>>0>2147483646){break g}d=F[4398];if(d){a=F[4396];f=a+e|0;if(d>>>0>>0|a>>>0>=f>>>0){break g}}a=mb(e);if((c|0)!=(a|0)){break v}break e}e=f&g-i;if(e>>>0>2147483646){break g}c=mb(e);if((c|0)==(F[a>>2]+F[a+4>>2]|0)){break h}a=c}if(!((a|0)==-1|h+48>>>0<=e>>>0)){c=F[4408];c=c+(j-e|0)&0-c;if(c>>>0>2147483646){c=a;break e}if((mb(c)|0)!=-1){e=c+e|0;c=a;break e}mb(0-e|0);break g}c=a;if((a|0)!=-1){break e}break g}d=0;break b}c=0;break c}if((c|0)!=-1){break e}}F[4399]=F[4399]|4}if(b>>>0>2147483646){break d}c=mb(b);a=mb(0);if((c|0)==-1|(a|0)==-1|a>>>0<=c>>>0){break d}e=a-c|0;if(e>>>0<=h+40>>>0){break d}}a=F[4396]+e|0;F[4396]=a;if(a>>>0>I[4397]){F[4397]=a}x:{y:{z:{g=F[4294];if(g){a=17600;while(1){d=F[a>>2];b=F[a+4>>2];if((d+b|0)==(c|0)){break z}a=F[a+8>>2];if(a){continue}break}break y}a=F[4292];if(!(a>>>0<=c>>>0?a:0)){F[4292]=c}a=0;F[4401]=e;F[4400]=c;F[4296]=-1;F[4297]=F[4406];F[4403]=0;while(1){d=a<<3;b=d+17192|0;F[d+17200>>2]=b;F[d+17204>>2]=b;a=a+1|0;if((a|0)!=32){continue}break}d=e-40|0;a=c+8&7?-8-c&7:0;b=d-a|0;F[4291]=b;a=a+c|0;F[4294]=a;F[a+4>>2]=b|1;F[(c+d|0)+4>>2]=40;F[4295]=F[4410];break x}if(G[a+12|0]&8|d>>>0>g>>>0|c>>>0<=g>>>0){break y}F[a+4>>2]=b+e;a=g+8&7?-8-g&7:0;c=a+g|0;F[4294]=c;b=F[4291]+e|0;a=b-a|0;F[4291]=a;F[c+4>>2]=a|1;F[(b+g|0)+4>>2]=40;F[4295]=F[4410];break x}if(I[4292]>c>>>0){F[4292]=c}b=c+e|0;a=17600;A:{B:{C:{D:{E:{F:{while(1){if((b|0)!=F[a>>2]){a=F[a+8>>2];if(a){continue}break F}break}if(!(G[a+12|0]&8)){break E}}a=17600;while(1){b=F[a>>2];if(b>>>0<=g>>>0){f=b+F[a+4>>2]|0;if(f>>>0>g>>>0){break D}}a=F[a+8>>2];continue}}F[a>>2]=c;F[a+4>>2]=F[a+4>>2]+e;j=(c+8&7?-8-c&7:0)+c|0;F[j+4>>2]=h|3;e=b+(b+8&7?-8-b&7:0)|0;i=h+j|0;a=e-i|0;if((e|0)==(g|0)){F[4294]=i;a=F[4291]+a|0;F[4291]=a;F[i+4>>2]=a|1;break B}if(F[4293]==(e|0)){F[4293]=i;a=F[4290]+a|0;F[4290]=a;F[i+4>>2]=a|1;F[a+i>>2]=a;break B}f=F[e+4>>2];if((f&3)==1){g=f&-8;G:{if(f>>>0<=255){d=F[e+8>>2];b=f>>>3|0;c=F[e+12>>2];if((c|0)==(d|0)){m=17152,n=F[4288]&Qj(b),F[m>>2]=n;break G}F[d+12>>2]=c;F[c+8>>2]=d;break G}h=F[e+24>>2];c=F[e+12>>2];H:{if((e|0)!=(c|0)){b=F[e+8>>2];F[b+12>>2]=c;F[c+8>>2]=b;break H}I:{f=e+20|0;b=F[f>>2];if(b){break I}f=e+16|0;b=F[f>>2];if(b){break I}c=0;break H}while(1){d=f;c=b;f=b+20|0;b=F[f>>2];if(b){continue}f=c+16|0;b=F[c+16>>2];if(b){continue}break}F[d>>2]=0}if(!h){break G}d=F[e+28>>2];b=(d<<2)+17456|0;J:{if(F[b>>2]==(e|0)){F[b>>2]=c;if(c){break J}m=17156,n=F[4289]&Qj(d),F[m>>2]=n;break G}F[h+(F[h+16>>2]==(e|0)?16:20)>>2]=c;if(!c){break G}}F[c+24>>2]=h;b=F[e+16>>2];if(b){F[c+16>>2]=b;F[b+24>>2]=c}b=F[e+20>>2];if(!b){break G}F[c+20>>2]=b;F[b+24>>2]=c}e=e+g|0;f=F[e+4>>2];a=a+g|0}F[e+4>>2]=f&-2;F[i+4>>2]=a|1;F[a+i>>2]=a;if(a>>>0<=255){b=(a&-8)+17192|0;c=F[4288];a=1<<(a>>>3);K:{if(!(c&a)){F[4288]=a|c;a=b;break K}a=F[b+8>>2]}F[b+8>>2]=i;F[a+12>>2]=i;F[i+12>>2]=b;F[i+8>>2]=a;break B}f=31;if(a>>>0<=16777215){b=a>>>8|0;f=b+1048320>>>16&8;b=b<>>16&4;b=b<>>16&2;b=(b<>>15|0)-(c|(d|f))|0;f=(b<<1|a>>>b+21&1)+28|0}F[i+28>>2]=f;F[i+16>>2]=0;F[i+20>>2]=0;b=(f<<2)+17456|0;d=F[4289];c=1<>2]=i;break L}f=a<<((f|0)==31?0:25-(f>>>1|0)|0);c=F[b>>2];while(1){b=c;if((F[b+4>>2]&-8)==(a|0)){break C}c=f>>>29|0;f=f<<1;d=(c&4)+b|0;c=F[d+16>>2];if(c){continue}break}F[d+16>>2]=i}F[i+24>>2]=b;F[i+12>>2]=i;F[i+8>>2]=i;break B}d=e-40|0;a=c+8&7?-8-c&7:0;b=d-a|0;F[4291]=b;a=a+c|0;F[4294]=a;F[a+4>>2]=b|1;F[(c+d|0)+4>>2]=40;F[4295]=F[4410];a=(f+(f-39&7?39-f&7:0)|0)-47|0;d=a>>>0>>0?g:a;F[d+4>>2]=27;a=F[4403];F[d+16>>2]=F[4402];F[d+20>>2]=a;a=F[4401];F[d+8>>2]=F[4400];F[d+12>>2]=a;F[4402]=d+8;F[4401]=e;F[4400]=c;F[4403]=0;a=d+24|0;while(1){F[a+4>>2]=7;b=a+8|0;a=a+4|0;if(b>>>0>>0){continue}break}if((d|0)==(g|0)){break x}F[d+4>>2]=F[d+4>>2]&-2;f=d-g|0;F[g+4>>2]=f|1;F[d>>2]=f;if(f>>>0<=255){b=(f&-8)+17192|0;c=F[4288];a=1<<(f>>>3);M:{if(!(c&a)){F[4288]=a|c;a=b;break M}a=F[b+8>>2]}F[b+8>>2]=g;F[a+12>>2]=g;F[g+12>>2]=b;F[g+8>>2]=a;break x}a=31;if(f>>>0<=16777215){a=f>>>8|0;d=a+1048320>>>16&8;a=a<>>16&4;a=a<>>16&2;a=(a<>>15|0)-(b|(c|d))|0;a=(a<<1|f>>>a+21&1)+28|0}F[g+28>>2]=a;F[g+16>>2]=0;F[g+20>>2]=0;b=(a<<2)+17456|0;d=F[4289];c=1<>2]=g;break N}a=f<<((a|0)==31?0:25-(a>>>1|0)|0);d=F[b>>2];while(1){b=d;if((f|0)==(F[b+4>>2]&-8)){break A}c=a>>>29|0;a=a<<1;c=(c&4)+b|0;d=F[c+16>>2];if(d){continue}break}F[c+16>>2]=g}F[g+24>>2]=b;F[g+12>>2]=g;F[g+8>>2]=g;break x}a=F[b+8>>2];F[a+12>>2]=i;F[b+8>>2]=i;F[i+24>>2]=0;F[i+12>>2]=b;F[i+8>>2]=a}a=j+8|0;break a}a=F[b+8>>2];F[a+12>>2]=g;F[b+8>>2]=g;F[g+24>>2]=0;F[g+12>>2]=b;F[g+8>>2]=a}a=F[4291];if(a>>>0<=h>>>0){break d}b=a-h|0;F[4291]=b;c=F[4294];a=c+h|0;F[4294]=a;F[a+4>>2]=b|1;F[c+4>>2]=h|3;a=c+8|0;break a}F[3984]=48;a=0;break a}O:{if(!e){break O}b=F[d+28>>2];a=(b<<2)+17456|0;P:{if(F[a>>2]==(d|0)){F[a>>2]=c;if(c){break P}j=Qj(b)&j;F[4289]=j;break O}F[e+(F[e+16>>2]==(d|0)?16:20)>>2]=c;if(!c){break O}}F[c+24>>2]=e;a=F[d+16>>2];if(a){F[c+16>>2]=a;F[a+24>>2]=c}a=F[d+20>>2];if(!a){break O}F[c+20>>2]=a;F[a+24>>2]=c}Q:{if(f>>>0<=15){a=f+h|0;F[d+4>>2]=a|3;a=a+d|0;F[a+4>>2]=F[a+4>>2]|1;break Q}F[d+4>>2]=h|3;e=d+h|0;F[e+4>>2]=f|1;F[e+f>>2]=f;if(f>>>0<=255){b=(f&-8)+17192|0;c=F[4288];a=1<<(f>>>3);R:{if(!(c&a)){F[4288]=a|c;a=b;break R}a=F[b+8>>2]}F[b+8>>2]=e;F[a+12>>2]=e;F[e+12>>2]=b;F[e+8>>2]=a;break Q}a=31;if(f>>>0<=16777215){a=f>>>8|0;g=a+1048320>>>16&8;a=a<>>16&4;a=a<>>16&2;a=(a<>>15|0)-(b|(c|g))|0;a=(a<<1|f>>>a+21&1)+28|0}F[e+28>>2]=a;F[e+16>>2]=0;F[e+20>>2]=0;b=(a<<2)+17456|0;S:{c=1<>2]=e;break T}a=f<<((a|0)==31?0:25-(a>>>1|0)|0);h=F[b>>2];while(1){b=h;if((F[b+4>>2]&-8)==(f|0)){break S}c=a>>>29|0;a=a<<1;c=(c&4)+b|0;h=F[c+16>>2];if(h){continue}break}F[c+16>>2]=e}F[e+24>>2]=b;F[e+12>>2]=e;F[e+8>>2]=e;break Q}a=F[b+8>>2];F[a+12>>2]=e;F[b+8>>2]=e;F[e+24>>2]=0;F[e+12>>2]=b;F[e+8>>2]=a}a=d+8|0;break a}U:{if(!i){break U}b=F[c+28>>2];a=(b<<2)+17456|0;V:{if(F[a>>2]==(c|0)){F[a>>2]=d;if(d){break V}m=17156,n=Qj(b)&j,F[m>>2]=n;break U}F[i+(F[i+16>>2]==(c|0)?16:20)>>2]=d;if(!d){break U}}F[d+24>>2]=i;a=F[c+16>>2];if(a){F[d+16>>2]=a;F[a+24>>2]=d}a=F[c+20>>2];if(!a){break U}F[d+20>>2]=a;F[a+24>>2]=d}W:{if(f>>>0<=15){a=f+h|0;F[c+4>>2]=a|3;a=a+c|0;F[a+4>>2]=F[a+4>>2]|1;break W}F[c+4>>2]=h|3;d=c+h|0;F[d+4>>2]=f|1;F[d+f>>2]=f;if(k){b=(k&-8)+17192|0;g=F[4293];a=1<<(k>>>3);X:{if(!(a&e)){F[4288]=a|e;a=b;break X}a=F[b+8>>2]}F[b+8>>2]=g;F[a+12>>2]=g;F[g+12>>2]=b;F[g+8>>2]=a}F[4293]=d;F[4290]=f}a=c+8|0}ea=l+16|0;return a|0}function cf(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0;h=ea-48|0;ea=h;a:{b:{if((c|0)!=1){break b}g=F[a+4>>2];f=F[a+12>>2];F[h+40>>2]=0;F[h+32>>2]=0;F[h+36>>2]=0;F[h+24>>2]=0;F[h+28>>2]=0;F[h+16>>2]=0;F[h+20>>2]=0;F[h+8>>2]=0;F[h+12>>2]=0;d=h+8|0;c:{if((b|0)==-2){break c}m=F[F[F[g+4>>2]+8>>2]+(f<<2)>>2];if((ga[F[F[g>>2]+8>>2]](g)|0)==1){a=H[g+36>>1];l=(a<<8|a>>>8)&65535;a=0;i=ea-32|0;ea=i;j=F[F[F[g+4>>2]+8>>2]+(f<<2)>>2];d:{if((ga[F[F[g>>2]+8>>2]](g)|0)!=1|b-1>>>0>5){break d}e=ga[F[F[g>>2]+36>>2]](g)|0;k=ga[F[F[g>>2]+44>>2]](g,f)|0;if(!e|!k){break d}c=ga[F[F[g>>2]+40>>2]](g,f)|0;if(c){a=F[g+44>>2];F[i+12>>2]=c;F[i+8>>2]=a;F[i+20>>2]=k;F[i+16>>2]=k+12;f=i+8|0;a=0;e:{f:{switch(b-1|0){case 0:a=sa(60);F[a+4>>2]=j;F[a>>2]=3272;b=F[d+4>>2];F[a+8>>2]=F[d>>2];F[a+12>>2]=b;b=F[d+12>>2];F[a+16>>2]=F[d+8>>2];F[a+20>>2]=b;b=F[d+20>>2];F[a+24>>2]=F[d+16>>2];F[a+28>>2]=b;F[a+40>>2]=0;F[a+32>>2]=0;F[a+36>>2]=0;b=F[d+28>>2];c=F[d+24>>2];if((b|0)!=(c|0)){e=b-c|0;if((e|0)<0){break a}b=sa(e);F[a+32>>2]=b;F[a+40>>2]=b+(e>>2<<2);n=a,o=ta(b,c,e)+e|0,F[n+36>>2]=o}b=F[f+4>>2];F[a+44>>2]=F[f>>2];F[a+48>>2]=b;b=F[f+12>>2];F[a+52>>2]=F[f+8>>2];F[a+56>>2]=b;F[a>>2]=2564;break e;case 1:a=sa(60);F[a+4>>2]=j;F[a>>2]=3272;b=F[d+4>>2];F[a+8>>2]=F[d>>2];F[a+12>>2]=b;b=F[d+12>>2];F[a+16>>2]=F[d+8>>2];F[a+20>>2]=b;b=F[d+20>>2];F[a+24>>2]=F[d+16>>2];F[a+28>>2]=b;F[a+40>>2]=0;F[a+32>>2]=0;F[a+36>>2]=0;b=F[d+28>>2];c=F[d+24>>2];if((b|0)!=(c|0)){e=b-c|0;if((e|0)<0){break a}b=sa(e);F[a+32>>2]=b;F[a+40>>2]=b+(e>>2<<2);n=a,o=ta(b,c,e)+e|0,F[n+36>>2]=o}b=F[f+4>>2];F[a+44>>2]=F[f>>2];F[a+48>>2]=b;b=F[f+12>>2];F[a+52>>2]=F[f+8>>2];F[a+56>>2]=b;F[a>>2]=3328;break e;case 3:a=sa(112);F[a+4>>2]=j;F[a>>2]=3272;b=F[d+4>>2];F[a+8>>2]=F[d>>2];F[a+12>>2]=b;b=F[d+12>>2];F[a+16>>2]=F[d+8>>2];F[a+20>>2]=b;b=F[d+20>>2];F[a+24>>2]=F[d+16>>2];F[a+28>>2]=b;F[a+40>>2]=0;F[a+32>>2]=0;F[a+36>>2]=0;b=F[d+28>>2];c=F[d+24>>2];if((b|0)!=(c|0)){e=b-c|0;if((e|0)<0){break a}b=sa(e);F[a+32>>2]=b;F[a+40>>2]=b+(e>>2<<2);n=a,o=ta(b,c,e)+e|0,F[n+36>>2]=o}b=F[f+4>>2];F[a+44>>2]=F[f>>2];F[a+48>>2]=b;b=F[f+12>>2];F[a+52>>2]=F[f+8>>2];F[a+56>>2]=b;F[a+60>>2]=0;F[a+64>>2]=0;F[a>>2]=3564;F[a+68>>2]=0;F[a+72>>2]=0;F[a+76>>2]=0;F[a+80>>2]=0;F[a+84>>2]=0;F[a+88>>2]=0;F[a+92>>2]=0;F[a+96>>2]=0;F[a+100>>2]=0;F[a+104>>2]=0;F[a+108>>2]=0;break e;case 2:a=sa(92);F[a+4>>2]=j;F[a>>2]=3272;b=F[d+4>>2];F[a+8>>2]=F[d>>2];F[a+12>>2]=b;b=F[d+12>>2];F[a+16>>2]=F[d+8>>2];F[a+20>>2]=b;b=F[d+20>>2];F[a+24>>2]=F[d+16>>2];F[a+28>>2]=b;F[a+40>>2]=0;F[a+32>>2]=0;F[a+36>>2]=0;b=F[d+28>>2];c=F[d+24>>2];if((b|0)!=(c|0)){e=b-c|0;if((e|0)<0){break a}b=sa(e);F[a+32>>2]=b;F[a+40>>2]=b+(e>>2<<2);n=a,o=ta(b,c,e)+e|0,F[n+36>>2]=o}b=F[f+4>>2];F[a+44>>2]=F[f>>2];F[a+48>>2]=b;b=F[f+12>>2];F[a+52>>2]=F[f+8>>2];F[a+56>>2]=b;F[a+60>>2]=0;F[a+64>>2]=0;F[a>>2]=3812;F[a+68>>2]=0;F[a+72>>2]=0;F[a+76>>2]=0;F[a+80>>2]=0;F[a+84>>2]=0;F[a+88>>2]=l;break e;case 4:a=sa(104);F[a+4>>2]=j;F[a>>2]=3272;b=F[d+4>>2];F[a+8>>2]=F[d>>2];F[a+12>>2]=b;b=F[d+12>>2];F[a+16>>2]=F[d+8>>2];F[a+20>>2]=b;b=F[d+20>>2];F[a+24>>2]=F[d+16>>2];F[a+28>>2]=b;F[a+40>>2]=0;F[a+32>>2]=0;F[a+36>>2]=0;b=F[d+28>>2];c=F[d+24>>2];if((b|0)!=(c|0)){e=b-c|0;if((e|0)<0){break a}b=sa(e);F[a+32>>2]=b;F[a+40>>2]=b+(e>>2<<2);n=a,o=ta(b,c,e)+e|0,F[n+36>>2]=o}b=F[f+4>>2];F[a+44>>2]=F[f>>2];F[a+48>>2]=b;b=F[f+12>>2];F[a+52>>2]=F[f+8>>2];F[a+56>>2]=b;F[a+84>>2]=0;F[a+76>>2]=0;F[a+80>>2]=0;F[a+60>>2]=0;F[a+64>>2]=0;F[a>>2]=4040;b=F[f+4>>2];F[a+88>>2]=F[f>>2];F[a+92>>2]=b;b=F[f+12>>2];F[a+96>>2]=F[f+8>>2];F[a+100>>2]=b;break e;case 5:break f;default:break e}}a=sa(128);F[a+4>>2]=j;F[a>>2]=3272;b=F[d+4>>2];F[a+8>>2]=F[d>>2];F[a+12>>2]=b;b=F[d+12>>2];F[a+16>>2]=F[d+8>>2];F[a+20>>2]=b;b=F[d+20>>2];F[a+24>>2]=F[d+16>>2];F[a+28>>2]=b;F[a+40>>2]=0;F[a+32>>2]=0;F[a+36>>2]=0;g:{c=F[d+28>>2];b=F[d+24>>2];if((c|0)!=(b|0)){c=c-b|0;if((c|0)<0){break a}b=sa(c);F[a+32>>2]=b;F[a+36>>2]=b;F[a+40>>2]=b+(c>>2<<2);c=F[d+24>>2];e=F[d+28>>2]-c|0;if((e|0)>0){b=ta(b,c,e)+e|0}F[a+36>>2]=b}F[a>>2]=3216;b=F[f+4>>2];F[a+44>>2]=F[f>>2];F[a+48>>2]=b;b=F[f+12>>2];F[a+52>>2]=F[f+8>>2];F[a+56>>2]=b;b=a- -64|0;F[b>>2]=0;F[b+4>>2]=0;F[a+60>>2]=4904;F[a>>2]=4276;b=F[f+4>>2];F[a+72>>2]=F[f>>2];F[a+76>>2]=b;b=F[f+12>>2];F[a+80>>2]=F[f+8>>2];F[a+84>>2]=b;F[a+104>>2]=1065353216;F[a+108>>2]=-1;F[a+96>>2]=-1;F[a+100>>2]=-1;F[a+88>>2]=1;F[a+92>>2]=-1;F[a+60>>2]=4512;F[a+112>>2]=0;F[a+116>>2]=0;D[a+117|0]=0;D[a+118|0]=0;D[a+119|0]=0;D[a+120|0]=0;D[a+121|0]=0;D[a+122|0]=0;D[a+123|0]=0;D[a+124|0]=0;break g}}break d}a=F[g+44>>2];F[i+12>>2]=e;F[i+8>>2]=a;F[i+20>>2]=k;F[i+16>>2]=k+12;f=i+8|0;a=0;h:{i:{switch(b-1|0){case 0:a=sa(60);F[a+4>>2]=j;F[a>>2]=3272;b=F[d+4>>2];F[a+8>>2]=F[d>>2];F[a+12>>2]=b;b=F[d+12>>2];F[a+16>>2]=F[d+8>>2];F[a+20>>2]=b;b=F[d+20>>2];F[a+24>>2]=F[d+16>>2];F[a+28>>2]=b;F[a+40>>2]=0;F[a+32>>2]=0;F[a+36>>2]=0;b=F[d+28>>2];c=F[d+24>>2];if((b|0)!=(c|0)){e=b-c|0;if((e|0)<0){break a}b=sa(e);F[a+32>>2]=b;F[a+40>>2]=b+(e>>2<<2);n=a,o=ta(b,c,e)+e|0,F[n+36>>2]=o}b=F[f+4>>2];F[a+44>>2]=F[f>>2];F[a+48>>2]=b;b=F[f+12>>2];F[a+52>>2]=F[f+8>>2];F[a+56>>2]=b;F[a>>2]=4932;break h;case 1:a=sa(60);F[a+4>>2]=j;F[a>>2]=3272;b=F[d+4>>2];F[a+8>>2]=F[d>>2];F[a+12>>2]=b;b=F[d+12>>2];F[a+16>>2]=F[d+8>>2];F[a+20>>2]=b;b=F[d+20>>2];F[a+24>>2]=F[d+16>>2];F[a+28>>2]=b;F[a+40>>2]=0;F[a+32>>2]=0;F[a+36>>2]=0;b=F[d+28>>2];c=F[d+24>>2];if((b|0)!=(c|0)){e=b-c|0;if((e|0)<0){break a}b=sa(e);F[a+32>>2]=b;F[a+40>>2]=b+(e>>2<<2);n=a,o=ta(b,c,e)+e|0,F[n+36>>2]=o}b=F[f+4>>2];F[a+44>>2]=F[f>>2];F[a+48>>2]=b;b=F[f+12>>2];F[a+52>>2]=F[f+8>>2];F[a+56>>2]=b;F[a>>2]=5356;break h;case 3:a=sa(112);F[a+4>>2]=j;F[a>>2]=3272;b=F[d+4>>2];F[a+8>>2]=F[d>>2];F[a+12>>2]=b;b=F[d+12>>2];F[a+16>>2]=F[d+8>>2];F[a+20>>2]=b;b=F[d+20>>2];F[a+24>>2]=F[d+16>>2];F[a+28>>2]=b;F[a+40>>2]=0;F[a+32>>2]=0;F[a+36>>2]=0;b=F[d+28>>2];c=F[d+24>>2];if((b|0)!=(c|0)){e=b-c|0;if((e|0)<0){break a}b=sa(e);F[a+32>>2]=b;F[a+40>>2]=b+(e>>2<<2);n=a,o=ta(b,c,e)+e|0,F[n+36>>2]=o}b=F[f+4>>2];F[a+44>>2]=F[f>>2];F[a+48>>2]=b;b=F[f+12>>2];F[a+52>>2]=F[f+8>>2];F[a+56>>2]=b;F[a+60>>2]=0;F[a+64>>2]=0;F[a>>2]=5580;F[a+68>>2]=0;F[a+72>>2]=0;F[a+76>>2]=0;F[a+80>>2]=0;F[a+84>>2]=0;F[a+88>>2]=0;F[a+92>>2]=0;F[a+96>>2]=0;F[a+100>>2]=0;F[a+104>>2]=0;F[a+108>>2]=0;break h;case 2:a=sa(92);F[a+4>>2]=j;F[a>>2]=3272;b=F[d+4>>2];F[a+8>>2]=F[d>>2];F[a+12>>2]=b;b=F[d+12>>2];F[a+16>>2]=F[d+8>>2];F[a+20>>2]=b;b=F[d+20>>2];F[a+24>>2]=F[d+16>>2];F[a+28>>2]=b;F[a+40>>2]=0;F[a+32>>2]=0;F[a+36>>2]=0;b=F[d+28>>2];c=F[d+24>>2];if((b|0)!=(c|0)){e=b-c|0;if((e|0)<0){break a}b=sa(e);F[a+32>>2]=b;F[a+40>>2]=b+(e>>2<<2);n=a,o=ta(b,c,e)+e|0,F[n+36>>2]=o}b=F[f+4>>2];F[a+44>>2]=F[f>>2];F[a+48>>2]=b;b=F[f+12>>2];F[a+52>>2]=F[f+8>>2];F[a+56>>2]=b;F[a+60>>2]=0;F[a+64>>2]=0;F[a>>2]=5816;F[a+68>>2]=0;F[a+72>>2]=0;F[a+76>>2]=0;F[a+80>>2]=0;F[a+84>>2]=0;F[a+88>>2]=l;break h;case 4:a=sa(104);F[a+4>>2]=j;F[a>>2]=3272;b=F[d+4>>2];F[a+8>>2]=F[d>>2];F[a+12>>2]=b;b=F[d+12>>2];F[a+16>>2]=F[d+8>>2];F[a+20>>2]=b;b=F[d+20>>2];F[a+24>>2]=F[d+16>>2];F[a+28>>2]=b;F[a+40>>2]=0;F[a+32>>2]=0;F[a+36>>2]=0;b=F[d+28>>2];c=F[d+24>>2];if((b|0)!=(c|0)){e=b-c|0;if((e|0)<0){break a}b=sa(e);F[a+32>>2]=b;F[a+40>>2]=b+(e>>2<<2);n=a,o=ta(b,c,e)+e|0,F[n+36>>2]=o}b=F[f+4>>2];F[a+44>>2]=F[f>>2];F[a+48>>2]=b;b=F[f+12>>2];F[a+52>>2]=F[f+8>>2];F[a+56>>2]=b;F[a+84>>2]=0;F[a+76>>2]=0;F[a+80>>2]=0;F[a+60>>2]=0;F[a+64>>2]=0;F[a>>2]=6032;b=F[f+4>>2];F[a+88>>2]=F[f>>2];F[a+92>>2]=b;b=F[f+12>>2];F[a+96>>2]=F[f+8>>2];F[a+100>>2]=b;break h;case 5:break i;default:break h}}a=sa(128);F[a+4>>2]=j;F[a>>2]=3272;b=F[d+4>>2];F[a+8>>2]=F[d>>2];F[a+12>>2]=b;b=F[d+12>>2];F[a+16>>2]=F[d+8>>2];F[a+20>>2]=b;b=F[d+20>>2];F[a+24>>2]=F[d+16>>2];F[a+28>>2]=b;F[a+40>>2]=0;F[a+32>>2]=0;F[a+36>>2]=0;j:{c=F[d+28>>2];b=F[d+24>>2];if((c|0)!=(b|0)){c=c-b|0;if((c|0)<0){break a}b=sa(c);F[a+32>>2]=b;F[a+36>>2]=b;F[a+40>>2]=b+(c>>2<<2);c=F[d+24>>2];e=F[d+28>>2]-c|0;if((e|0)>0){b=ta(b,c,e)+e|0}F[a+36>>2]=b}F[a>>2]=5300;b=F[f+4>>2];F[a+44>>2]=F[f>>2];F[a+48>>2]=b;b=F[f+12>>2];F[a+52>>2]=F[f+8>>2];F[a+56>>2]=b;b=a- -64|0;F[b>>2]=0;F[b+4>>2]=0;F[a+60>>2]=6840;F[a>>2]=6256;b=F[f+4>>2];F[a+72>>2]=F[f>>2];F[a+76>>2]=b;b=F[f+12>>2];F[a+80>>2]=F[f+8>>2];F[a+84>>2]=b;F[a+104>>2]=1065353216;F[a+108>>2]=-1;F[a+96>>2]=-1;F[a+100>>2]=-1;F[a+88>>2]=1;F[a+92>>2]=-1;F[a+60>>2]=6476;F[a+112>>2]=0;F[a+116>>2]=0;D[a+117|0]=0;D[a+118|0]=0;D[a+119|0]=0;D[a+120|0]=0;D[a+121|0]=0;D[a+122|0]=0;D[a+123|0]=0;D[a+124|0]=0;break j}}}ea=i+32|0;e=a;if(a){break c}}e=sa(44);F[e+4>>2]=m;F[e>>2]=3272;a=F[d+4>>2];F[e+8>>2]=F[d>>2];F[e+12>>2]=a;a=F[d+12>>2];F[e+16>>2]=F[d+8>>2];F[e+20>>2]=a;a=F[d+20>>2];F[e+24>>2]=F[d+16>>2];F[e+28>>2]=a;F[e+40>>2]=0;F[e+32>>2]=0;F[e+36>>2]=0;a=F[d+28>>2];b=F[d+24>>2];if((a|0)!=(b|0)){c=a-b|0;if((c|0)<0){break a}a=sa(c);F[e+32>>2]=a;F[e+40>>2]=a+(c>>2<<2);n=e,o=ta(a,b,c)+c|0,F[n+36>>2]=o}F[e>>2]=6868;break c}a=F[h+32>>2];if(!a){break b}F[h+36>>2]=a;ra(a)}ea=h+48|0;return e|0}va();V()}function be(a,b){var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0;m=ea-32|0;ea=m;o=sa(12);F[o+8>>2]=0;F[o+4>>2]=b;F[o>>2]=0;t=o+12|0;b=t;a:{b:{c:{d:{while(1){b=b-12|0;w=F[b+8>>2];j=F[b+4>>2];u=F[b>>2];if(u){q=0;if((w|0)>1e3){break a}F[m+24>>2]=0;F[m+16>>2]=0;F[m+20>>2]=0;f=1;c=F[a>>2];d=F[c+8>>2];h=F[c+12>>2];e=F[c+20>>2];g=d;d=F[c+16>>2];e:{if((h|0)<=(e|0)&g>>>0<=d>>>0|(e|0)>(h|0)){break e}h=G[d+F[c>>2]|0];d=d+1|0;e=d?e:e+1|0;F[c+16>>2]=d;F[c+20>>2]=e;Bc(m+16|0,h);if(h){d=F[a>>2];l=Cc(m+16|0);e=F[d+20>>2];i=F[d+16>>2];c=h;n=i+c|0;g=F[d+12>>2];e=c>>>0>n>>>0?e+1|0:e;if(n>>>0>I[d+8>>2]&(g|0)<=(e|0)|(e|0)>(g|0)){break e}ta(l,i+F[d>>2]|0,h);e=F[d+20>>2];f=c+F[d+16>>2]|0;e=f>>>0>>0?e+1|0:e;F[d+16>>2]=f;F[d+20>>2]=e}j=sa(24);c=j;F[c+4>>2]=0;F[c+8>>2]=0;c=c+16|0;F[c>>2]=0;F[c+4>>2]=0;F[j>>2]=j+4;F[j+12>>2]=c;e=ea-32|0;ea=e;h=u+12|0;c=m+16|0;p=sb(h,c);k=u+16|0;f:{if((p|0)==(k|0)){F[e+16>>2]=c;g:{h:{d=F[h+4>>2];i:{if(!d){f=h+4|0;c=f;break i}f=G[c+11|0];g=f<<24>>24<0;n=g?F[c>>2]:c;g=g?F[c+4>>2]:f;while(1){c=d;d=G[c+27|0];f=d<<24>>24<0;d=f?F[c+20>>2]:d;l=d>>>0>>0;j:{k:{l:{m:{i=l?d:g;n:{if(i){r=c+16|0;f=f?F[r>>2]:r;r=Ha(n,f,i);if(!r){if(d>>>0>g>>>0){break n}break m}if((r|0)>=0){break m}break n}if(d>>>0<=g>>>0){break l}}f=c;d=F[c>>2];if(d){continue}break i}d=Ha(f,n,i);if(d){break k}}if(l){break j}break h}if((d|0)>=0){break h}}d=F[c+4>>2];if(d){continue}break}f=c+4|0}d=sa(32);n=d+16|0;g=F[e+16>>2];o:{if(D[g+11|0]>=0){l=F[g+4>>2];F[n>>2]=F[g>>2];F[n+4>>2]=l;F[n+8>>2]=F[g+8>>2];break o}Ba(n,F[g>>2],F[g+4>>2])}F[d+8>>2]=c;F[d>>2]=0;F[d+4>>2]=0;F[d+28>>2]=0;F[f>>2]=d;c=d;g=F[F[h>>2]>>2];if(g){F[h>>2]=g;c=F[f>>2]}Tb(F[h+4>>2],c);F[h+8>>2]=F[h+8>>2]+1;c=1;break g}d=c;c=0}D[e+28|0]=c;F[e+24>>2]=d;d=F[e+24>>2];c=F[d+28>>2];F[d+28>>2]=j;if(!c){break f}Ta(c+12|0,F[c+16>>2]);Sa(c,F[c+4>>2]);ra(c);break f}if(!j){break f}Ta(j+12|0,F[j+16>>2]);Sa(j,F[j+4>>2]);ra(j)}ea=e+32|0;f=(k|0)!=(p|0)}if(D[m+27|0]<0){ra(F[m+16>>2])}if(f){break a}}q=0;if(!j){break a}F[m+16>>2]=0;if(!Db(1,m+16|0,F[a>>2])){break a}p=0;x=F[m+16>>2];if(x){while(1){c=0;i=ea-32|0;ea=i;F[i+24>>2]=0;F[i+16>>2]=0;F[i+20>>2]=0;d=F[a>>2];f=F[d+8>>2];p:{q:{h=F[d+12>>2];e=F[d+20>>2];g=F[d+16>>2];r:{if((h|0)<=(e|0)&g>>>0>=f>>>0|(e|0)>(h|0)){break r}h=G[g+F[d>>2]|0];f=d;d=e;e=g+1|0;d=e?d:d+1|0;F[f+16>>2]=e;F[f+20>>2]=d;Bc(i+16|0,h);if(h){f=F[a>>2];l=Cc(i+16|0);e=F[f+20>>2];k=F[f+16>>2];d=h;n=k+d|0;g=F[f+12>>2];e=d>>>0>n>>>0?e+1|0:e;if(n>>>0>I[f+8>>2]&(g|0)<=(e|0)|(e|0)>(g|0)){break r}ta(l,k+F[f>>2]|0,h);e=F[f+20>>2];h=d+F[f+16>>2]|0;e=h>>>0>>0?e+1|0:e;F[f+16>>2]=h;F[f+20>>2]=e}F[i+12>>2]=0;if(!Db(1,i+12|0,F[a>>2])){break r}d=F[i+12>>2];if(!d){break r}F[i+8>>2]=0;F[i>>2]=0;F[i+4>>2]=0;if((d|0)<0){break q}c=sa(d);F[i>>2]=c;e=c+d|0;F[i+8>>2]=e;l=ua(c,0,d);F[i+4>>2]=e;e=F[a>>2];r=F[e+8>>2];h=F[e+12>>2];y=h;f=F[e+20>>2];k=F[e+16>>2];g=d+k|0;f=g>>>0>>0?f+1|0:f;s:{z=g;n=f;if(g>>>0>r>>>0&(f|0)>=(h|0)|(f|0)>(h|0)){break s}ta(l,k+F[e>>2]|0,d);c=d;f=c+F[e+16>>2]|0;d=F[e+20>>2];F[e+16>>2]=f;F[e+20>>2]=c>>>0>f>>>0?d+1|0:d;h=ea-48|0;ea=h;e=sb(j,i+16|0);if((e|0)!=(j+4|0)){c=F[e+4>>2];t:{if(!c){c=e;while(1){d=F[c+8>>2];f=F[d>>2]!=(c|0);c=d;if(f){continue}break}break t}while(1){d=c;c=F[c>>2];if(c){continue}break}}if((e|0)==F[j>>2]){F[j>>2]=d}F[j+8>>2]=F[j+8>>2]-1;f=F[j+4>>2];u:{v:{g=e;d=e;e=F[d>>2];if(e){c=F[g+4>>2];if(!c){break v}while(1){d=c;c=F[c>>2];if(c){continue}break}}e=F[d+4>>2];if(e){break v}e=0;l=1;break u}F[e+8>>2]=F[d+8>>2];l=0}k=F[d+8>>2];c=F[k>>2];w:{if((d|0)==(c|0)){F[k>>2]=e;if((d|0)==(f|0)){c=0;f=e;break w}c=F[k+4>>2];break w}F[k+4>>2]=e}s=!G[d+12|0];if((d|0)!=(g|0)){k=F[g+8>>2];F[d+8>>2]=k;F[k+(((g|0)!=F[F[g+8>>2]>>2])<<2)>>2]=d;k=F[g>>2];F[d>>2]=k;F[k+8>>2]=d;k=F[g+4>>2];F[d+4>>2]=k;if(k){F[k+8>>2]=d}D[d+12|0]=G[g+12|0];f=(f|0)==(g|0)?d:f}x:{if(s|!f){break x}if(l){while(1){e=G[c+12|0];y:{d=F[c+8>>2];if(F[d>>2]!=(c|0)){if(!e){D[c+12|0]=1;D[d+12|0]=0;e=F[d+4>>2];l=F[e>>2];F[d+4>>2]=l;if(l){F[l+8>>2]=d}F[e+8>>2]=F[d+8>>2];l=F[d+8>>2];F[(((d|0)!=F[l>>2])<<2)+l>>2]=e;F[e>>2]=d;F[d+8>>2]=e;d=c;c=F[c>>2];f=(c|0)==(f|0)?d:f;c=F[c+4>>2]}z:{A:{d=F[c>>2];B:{if(!(G[d+12|0]?0:d)){e=F[c+4>>2];if(G[e+12|0]?0:e){break B}D[c+12|0]=0;c=F[c+8>>2];C:{if((f|0)==(c|0)){c=f;break C}if(G[c+12|0]){break y}}D[c+12|0]=1;break x}e=F[c+4>>2];if(!e){break A}}if(G[e+12|0]){break A}d=c;break z}D[d+12|0]=1;D[c+12|0]=0;e=F[d+4>>2];F[c>>2]=e;if(e){F[e+8>>2]=c}F[d+8>>2]=F[c+8>>2];e=F[c+8>>2];F[((F[e>>2]!=(c|0))<<2)+e>>2]=d;F[d+4>>2]=c;F[c+8>>2]=d;e=c}c=F[d+8>>2];D[d+12|0]=G[c+12|0];D[c+12|0]=1;D[e+12|0]=1;d=F[c+4>>2];e=F[d>>2];F[c+4>>2]=e;if(e){F[e+8>>2]=c}F[d+8>>2]=F[c+8>>2];e=F[c+8>>2];F[(((c|0)!=F[e>>2])<<2)+e>>2]=d;F[d>>2]=c;F[c+8>>2]=d;break x}if(!e){D[c+12|0]=1;D[d+12|0]=0;e=F[c+4>>2];F[d>>2]=e;if(e){F[e+8>>2]=d}F[c+8>>2]=F[d+8>>2];e=F[d+8>>2];F[(((d|0)!=F[e>>2])<<2)+e>>2]=c;F[c+4>>2]=d;F[d+8>>2]=c;f=(d|0)==(f|0)?c:f;c=F[d>>2]}e=F[c>>2];D:{if(!(!e|G[e+12|0])){d=c;break D}d=F[c+4>>2];if(!(G[d+12|0]?0:d)){D[c+12|0]=0;c=F[c+8>>2];if((c|0)!=(f|0)?G[c+12|0]:0){break y}D[c+12|0]=1;break x}if(e){if(!G[e+12|0]){d=c;break D}d=F[c+4>>2]}D[d+12|0]=1;D[c+12|0]=0;e=F[d>>2];F[c+4>>2]=e;if(e){F[e+8>>2]=c}F[d+8>>2]=F[c+8>>2];e=F[c+8>>2];F[((F[e>>2]!=(c|0))<<2)+e>>2]=d;F[d>>2]=c;F[c+8>>2]=d;e=c}c=F[d+8>>2];D[d+12|0]=G[c+12|0];D[c+12|0]=1;D[e+12|0]=1;d=F[c>>2];e=F[d+4>>2];F[c>>2]=e;if(e){F[e+8>>2]=c}F[d+8>>2]=F[c+8>>2];e=F[c+8>>2];F[(((c|0)!=F[e>>2])<<2)+e>>2]=d;F[d+4>>2]=c;F[c+8>>2]=d;break x}d=c;c=F[c+8>>2];c=F[(((d|0)==F[c>>2])<<2)+c>>2];continue}}D[e+12|0]=1}c=F[g+28>>2];if(c){F[g+32>>2]=c;ra(c)}if(D[g+27|0]<0){ra(F[g+16>>2])}ra(g)}F[h+8>>2]=0;F[h>>2]=0;F[h+4>>2]=0;c=F[i+4>>2];d=F[i>>2];f=c-d|0;e=0;E:{F:{if((c|0)!=(d|0)){if((f|0)<0){break F}e=sa(f);c=ua(e,0,f);g=c+f|0;F[h+8>>2]=g;F[h+4>>2]=g;F[h>>2]=c;c=d}ta(e,c,f);G:{if(D[i+27|0]>=0){F[h+24>>2]=F[i+24>>2];c=F[i+20>>2];F[h+16>>2]=F[i+16>>2];F[h+20>>2]=c;break G}Ba(h+16|0,F[i+16>>2],F[i+20>>2])}$d(h+28|0,h);f=h+16|0;c=f;H:{I:{d=F[j+4>>2];J:{if(!d){e=j+4|0;c=e;break J}e=G[c+11|0];g=e<<24>>24<0;l=g?F[c>>2]:c;g=g?F[c+4>>2]:e;while(1){c=d;d=G[c+27|0];e=d<<24>>24<0;d=e?F[c+20>>2]:d;k=d>>>0>>0;K:{L:{M:{N:{v=k?d:g;O:{if(v){s=c+16|0;e=e?F[s>>2]:s;s=Ha(l,e,v);if(!s){if(d>>>0>g>>>0){break O}break N}if((s|0)>=0){break N}break O}if(d>>>0<=g>>>0){break M}}e=c;d=F[c>>2];if(d){continue}break J}d=Ha(e,l,v);if(d){break L}}if(k){break K}break I}if((d|0)>=0){break I}}d=F[c+4>>2];if(d){continue}break}e=c+4|0}d=sa(40);F[d+24>>2]=F[f+8>>2];g=F[f+4>>2];F[d+16>>2]=F[f>>2];F[d+20>>2]=g;F[f>>2]=0;F[f+4>>2]=0;F[f+8>>2]=0;$d(d+28|0,f+12|0);F[d+8>>2]=c;F[d>>2]=0;F[d+4>>2]=0;F[e>>2]=d;c=d;f=F[F[j>>2]>>2];if(f){F[j>>2]=f;c=F[e>>2]}Tb(F[j+4>>2],c);F[j+8>>2]=F[j+8>>2]+1;c=1;break H}d=c;c=0}D[h+44|0]=c;F[h+40>>2]=d;c=F[h+28>>2];if(c){F[h+32>>2]=c;ra(c)}if(D[h+27|0]<0){ra(F[h+16>>2])}c=F[h>>2];if(c){F[h+4>>2]=c;ra(c)}ea=h+48|0;break E}va();V()}c=F[i>>2];if(c){break s}c=1;break r}F[i+4>>2]=c;ra(c);c=(n|0)<=(y|0)&r>>>0>=z>>>0|(n|0)<(y|0)}if(D[i+27|0]<0){ra(F[i+16>>2])}ea=i+32|0;break p}va();V()}if(!c){break a}p=p+1|0;if((x|0)!=(p|0)){continue}break}}F[m+12>>2]=0;if(!Db(1,m+12|0,F[a>>2])){break b}c=F[a>>2];d=F[c+8>>2];e=F[c+16>>2];f=d-e|0;q=F[m+12>>2];c=F[c+12>>2]-(F[c+20>>2]+(d>>>0>>0)|0)|0;if(f>>>0>>0&(c|0)<=0|(c|0)<0){break b}if(q){p=0;h=((u|0)!=0)+w|0;while(1){P:{if(b>>>0>>0){F[b+8>>2]=h;F[b+4>>2]=0;F[b>>2]=j;b=b+12|0;q=F[m+12>>2];break P}e=b-o|0;c=(e|0)/12|0;b=c+1|0;if(b>>>0>=357913942){break d}d=(t-o|0)/12|0;f=d<<1;f=d>>>0<178956970?b>>>0>>0?f:b:357913941;if(f){if(f>>>0>=357913942){break c}b=sa(L(f,12))}else{b=0}d=b+L(c,12)|0;F[d+8>>2]=h;F[d+4>>2]=0;F[d>>2]=j;c=d+L((e|0)/-12|0,12)|0;if((e|0)>0){ta(c,o,e)}t=b+L(f,12)|0;b=d+12|0;if(o){ra(o)}o=c}p=p+1|0;if(p>>>0>>0){continue}break}}if((b|0)!=(o|0)){continue}break}q=1;break a}va();V()}za();V()}q=0}if(o){ra(o)}ea=m+32|0;return q}function se(a,b,c,d,e){var f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0;i=ea-32|0;ea=i;F[b+32>>2]=d;F[b+40>>2]=c;F[b+4>>2]=e;nc(a,d,i+16|0);a:{if(F[a>>2]){break a}h=a+4|0;if(D[a+15|0]<0){ra(F[h>>2])}d=G[i+23|0];if((ga[F[F[b>>2]+8>>2]](b)|0)!=(d|0)){b=sa(64);c=G[1314]|G[1315]<<8;D[b+48|0]=c;D[b+49|0]=c>>>8;c=G[1310]|G[1311]<<8|(G[1312]<<16|G[1313]<<24);d=G[1306]|G[1307]<<8|(G[1308]<<16|G[1309]<<24);D[b+40|0]=d;D[b+41|0]=d>>>8;D[b+42|0]=d>>>16;D[b+43|0]=d>>>24;D[b+44|0]=c;D[b+45|0]=c>>>8;D[b+46|0]=c>>>16;D[b+47|0]=c>>>24;c=G[1302]|G[1303]<<8|(G[1304]<<16|G[1305]<<24);d=G[1298]|G[1299]<<8|(G[1300]<<16|G[1301]<<24);D[b+32|0]=d;D[b+33|0]=d>>>8;D[b+34|0]=d>>>16;D[b+35|0]=d>>>24;D[b+36|0]=c;D[b+37|0]=c>>>8;D[b+38|0]=c>>>16;D[b+39|0]=c>>>24;c=G[1294]|G[1295]<<8|(G[1296]<<16|G[1297]<<24);d=G[1290]|G[1291]<<8|(G[1292]<<16|G[1293]<<24);D[b+24|0]=d;D[b+25|0]=d>>>8;D[b+26|0]=d>>>16;D[b+27|0]=d>>>24;D[b+28|0]=c;D[b+29|0]=c>>>8;D[b+30|0]=c>>>16;D[b+31|0]=c>>>24;c=G[1286]|G[1287]<<8|(G[1288]<<16|G[1289]<<24);d=G[1282]|G[1283]<<8|(G[1284]<<16|G[1285]<<24);D[b+16|0]=d;D[b+17|0]=d>>>8;D[b+18|0]=d>>>16;D[b+19|0]=d>>>24;D[b+20|0]=c;D[b+21|0]=c>>>8;D[b+22|0]=c>>>16;D[b+23|0]=c>>>24;c=G[1278]|G[1279]<<8|(G[1280]<<16|G[1281]<<24);d=G[1274]|G[1275]<<8|(G[1276]<<16|G[1277]<<24);D[b+8|0]=d;D[b+9|0]=d>>>8;D[b+10|0]=d>>>16;D[b+11|0]=d>>>24;D[b+12|0]=c;D[b+13|0]=c>>>8;D[b+14|0]=c>>>16;D[b+15|0]=c>>>24;c=G[1270]|G[1271]<<8|(G[1272]<<16|G[1273]<<24);d=G[1266]|G[1267]<<8|(G[1268]<<16|G[1269]<<24);D[b|0]=d;D[b+1|0]=d>>>8;D[b+2|0]=d>>>16;D[b+3|0]=d>>>24;D[b+4|0]=c;D[b+5|0]=c>>>8;D[b+6|0]=c>>>16;D[b+7|0]=c>>>24;D[b+50|0]=0;F[a>>2]=-1;Ba(h,b,50);ra(b);break a}c=G[i+21|0];D[b+36|0]=c;e=G[i+22|0];D[b+37|0]=e;if((c-3&255)>>>0<=253){b=sa(32);c=G[1427]|G[1428]<<8|(G[1429]<<16|G[1430]<<24);d=G[1423]|G[1424]<<8|(G[1425]<<16|G[1426]<<24);D[b+14|0]=d;D[b+15|0]=d>>>8;D[b+16|0]=d>>>16;D[b+17|0]=d>>>24;D[b+18|0]=c;D[b+19|0]=c>>>8;D[b+20|0]=c>>>16;D[b+21|0]=c>>>24;c=G[1421]|G[1422]<<8|(G[1423]<<16|G[1424]<<24);d=G[1417]|G[1418]<<8|(G[1419]<<16|G[1420]<<24);D[b+8|0]=d;D[b+9|0]=d>>>8;D[b+10|0]=d>>>16;D[b+11|0]=d>>>24;D[b+12|0]=c;D[b+13|0]=c>>>8;D[b+14|0]=c>>>16;D[b+15|0]=c>>>24;c=G[1413]|G[1414]<<8|(G[1415]<<16|G[1416]<<24);d=G[1409]|G[1410]<<8|(G[1411]<<16|G[1412]<<24);D[b|0]=d;D[b+1|0]=d>>>8;D[b+2|0]=d>>>16;D[b+3|0]=d>>>24;D[b+4|0]=c;D[b+5|0]=c>>>8;D[b+6|0]=c>>>16;D[b+7|0]=c>>>24;D[b+22|0]=0;F[a>>2]=-5;Ba(h,b,22);ra(b);break a}if(!((c|0)!=2|e>>>0<=(d?2:3)>>>0)){b=sa(32);c=G[1404]|G[1405]<<8|(G[1406]<<16|G[1407]<<24);d=G[1400]|G[1401]<<8|(G[1402]<<16|G[1403]<<24);D[b+14|0]=d;D[b+15|0]=d>>>8;D[b+16|0]=d>>>16;D[b+17|0]=d>>>24;D[b+18|0]=c;D[b+19|0]=c>>>8;D[b+20|0]=c>>>16;D[b+21|0]=c>>>24;c=G[1398]|G[1399]<<8|(G[1400]<<16|G[1401]<<24);d=G[1394]|G[1395]<<8|(G[1396]<<16|G[1397]<<24);D[b+8|0]=d;D[b+9|0]=d>>>8;D[b+10|0]=d>>>16;D[b+11|0]=d>>>24;D[b+12|0]=c;D[b+13|0]=c>>>8;D[b+14|0]=c>>>16;D[b+15|0]=c>>>24;c=G[1390]|G[1391]<<8|(G[1392]<<16|G[1393]<<24);d=G[1386]|G[1387]<<8|(G[1388]<<16|G[1389]<<24);D[b|0]=d;D[b+1|0]=d>>>8;D[b+2|0]=d>>>16;D[b+3|0]=d>>>24;D[b+4|0]=c;D[b+5|0]=c>>>8;D[b+6|0]=c>>>16;D[b+7|0]=c>>>24;D[b+22|0]=0;F[a>>2]=-5;Ba(h,b,22);ra(b);break a}c=e|c<<8;E[F[b+32>>2]+38>>1]=c;b:{if((c&65535)>>>0<259|E[i+26>>1]>=0){break b}j=ea-16|0;ea=j;e=sa(36);c=e;F[c+4>>2]=0;F[c+8>>2]=0;F[c+24>>2]=0;F[c+28>>2]=0;c=c+16|0;F[c>>2]=0;F[c+4>>2]=0;F[e>>2]=e+4;F[e+32>>2]=0;F[e+12>>2]=c;F[j>>2]=0;d=F[b+32>>2];k=ea-16|0;ea=k;c=0;c:{if(!e){break c}F[j>>2]=d;F[k+12>>2]=0;c=0;if(!Db(1,k+12|0,d)){break c}n=F[k+12>>2];if(n){while(1){d:{if(Db(1,k+8|0,F[j>>2])){c=sa(28);F[c+4>>2]=0;F[c+8>>2]=0;d=c+16|0;F[d>>2]=0;F[d+4>>2]=0;F[c>>2]=c+4;F[c+12>>2]=d;F[c+24>>2]=F[k+8>>2];if(be(j,c)){break d}Ta(c+12|0,F[c+16>>2]);Sa(c,F[c+4>>2]);ra(c)}c=0;break c}f=ea-16|0;ea=f;F[f+8>>2]=c;e:{if(!c){F[f+8>>2]=0;break e}d=F[e+28>>2];f:{if(d>>>0>2]){F[f+8>>2]=0;F[d>>2]=c;F[e+28>>2]=d+4;break f}d=0;g:{h:{i:{g=F[e+24>>2];m=F[e+28>>2]-g>>2;c=m+1|0;if(c>>>0<1073741824){g=F[e+32>>2]-g|0;l=g>>1;c=g>>>0<2147483644?c>>>0>>0?l:c:1073741823;if(c){if(c>>>0>=1073741824){break i}d=sa(c<<2)}l=F[f+8>>2];F[f+8>>2]=0;g=(m<<2)+d|0;F[g>>2]=l;m=(c<<2)+d|0;l=g+4|0;d=F[e+28>>2];c=F[e+24>>2];if((d|0)==(c|0)){break h}while(1){d=d-4|0;p=F[d>>2];F[d>>2]=0;g=g-4|0;F[g>>2]=p;if((c|0)!=(d|0)){continue}break}F[e+32>>2]=m;d=F[e+28>>2];F[e+28>>2]=l;c=F[e+24>>2];F[e+24>>2]=g;if((c|0)==(d|0)){break g}while(1){d=d-4|0;g=F[d>>2];F[d>>2]=0;if(g){Ta(g+12|0,F[g+16>>2]);Sa(g,F[g+4>>2]);ra(g)}if((c|0)!=(d|0)){continue}break}break g}va();V()}za();V()}F[e+32>>2]=m;F[e+28>>2]=l;F[e+24>>2]=g}if(c){ra(c)}}c=F[f+8>>2];F[f+8>>2]=0;if(!c){break e}Ta(c+12|0,F[c+16>>2]);Sa(c,F[c+4>>2]);ra(c)}ea=f+16|0;o=o+1|0;if((n|0)!=(o|0)){continue}break}}c=be(j,e)}ea=k+16|0;j:{if(c){d=F[b+4>>2];c=F[d+4>>2];F[d+4>>2]=e;if(c){Rc(c)}F[a>>2]=0;F[a+4>>2]=0;F[a+8>>2]=0;F[a+12>>2]=0;break j}c=sa(32);d=G[1579]|G[1580]<<8;D[c+24|0]=d;D[c+25|0]=d>>>8;d=G[1575]|G[1576]<<8|(G[1577]<<16|G[1578]<<24);f=G[1571]|G[1572]<<8|(G[1573]<<16|G[1574]<<24);D[c+16|0]=f;D[c+17|0]=f>>>8;D[c+18|0]=f>>>16;D[c+19|0]=f>>>24;D[c+20|0]=d;D[c+21|0]=d>>>8;D[c+22|0]=d>>>16;D[c+23|0]=d>>>24;d=G[1567]|G[1568]<<8|(G[1569]<<16|G[1570]<<24);f=G[1563]|G[1564]<<8|(G[1565]<<16|G[1566]<<24);D[c+8|0]=f;D[c+9|0]=f>>>8;D[c+10|0]=f>>>16;D[c+11|0]=f>>>24;D[c+12|0]=d;D[c+13|0]=d>>>8;D[c+14|0]=d>>>16;D[c+15|0]=d>>>24;d=G[1559]|G[1560]<<8|(G[1561]<<16|G[1562]<<24);f=G[1555]|G[1556]<<8|(G[1557]<<16|G[1558]<<24);D[c|0]=f;D[c+1|0]=f>>>8;D[c+2|0]=f>>>16;D[c+3|0]=f>>>24;D[c+4|0]=d;D[c+5|0]=d>>>8;D[c+6|0]=d>>>16;D[c+7|0]=d>>>24;D[c+26|0]=0;F[a>>2]=-1;Ba(a+4|0,c,26);ra(c);F[j+8>>2]=0;Rc(e)}ea=j+16|0;if(F[a>>2]){break a}if(D[h+11|0]>=0){break b}ra(F[h>>2])}if(!(ga[F[F[b>>2]+12>>2]](b)|0)){b=sa(48);D[b+32|0]=G[1384];c=G[1380]|G[1381]<<8|(G[1382]<<16|G[1383]<<24);d=G[1376]|G[1377]<<8|(G[1378]<<16|G[1379]<<24);D[b+24|0]=d;D[b+25|0]=d>>>8;D[b+26|0]=d>>>16;D[b+27|0]=d>>>24;D[b+28|0]=c;D[b+29|0]=c>>>8;D[b+30|0]=c>>>16;D[b+31|0]=c>>>24;c=G[1372]|G[1373]<<8|(G[1374]<<16|G[1375]<<24);d=G[1368]|G[1369]<<8|(G[1370]<<16|G[1371]<<24);D[b+16|0]=d;D[b+17|0]=d>>>8;D[b+18|0]=d>>>16;D[b+19|0]=d>>>24;D[b+20|0]=c;D[b+21|0]=c>>>8;D[b+22|0]=c>>>16;D[b+23|0]=c>>>24;c=G[1364]|G[1365]<<8|(G[1366]<<16|G[1367]<<24);d=G[1360]|G[1361]<<8|(G[1362]<<16|G[1363]<<24);D[b+8|0]=d;D[b+9|0]=d>>>8;D[b+10|0]=d>>>16;D[b+11|0]=d>>>24;D[b+12|0]=c;D[b+13|0]=c>>>8;D[b+14|0]=c>>>16;D[b+15|0]=c>>>24;c=G[1356]|G[1357]<<8|(G[1358]<<16|G[1359]<<24);d=G[1352]|G[1353]<<8|(G[1354]<<16|G[1355]<<24);D[b|0]=d;D[b+1|0]=d>>>8;D[b+2|0]=d>>>16;D[b+3|0]=d>>>24;D[b+4|0]=c;D[b+5|0]=c>>>8;D[b+6|0]=c>>>16;D[b+7|0]=c>>>24;D[b+33|0]=0;F[a>>2]=-1;Ba(h,b,33);ra(b);break a}if(!(ga[F[F[b>>2]+20>>2]](b)|0)){b=mc(i,1582);F[a>>2]=-1;if(D[b+11|0]>=0){a=F[b+4>>2];F[h>>2]=F[b>>2];F[h+4>>2]=a;F[h+8>>2]=F[b+8>>2];break a}Ba(h,F[b>>2],F[b+4>>2]);if(D[b+11|0]>=0){break a}ra(F[b>>2]);break a}if(!(ga[F[F[b>>2]+24>>2]](b)|0)){b=mc(i,1317);F[a>>2]=-1;if(D[b+11|0]>=0){a=F[b+4>>2];F[h>>2]=F[b>>2];F[h+4>>2]=a;F[h+8>>2]=F[b+8>>2];break a}Ba(h,F[b>>2],F[b+4>>2]);if(D[b+11|0]>=0){break a}ra(F[b>>2]);break a}F[a>>2]=0;F[a+4>>2]=0;F[a+8>>2]=0;F[a+12>>2]=0}ea=i+32|0}function yf(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=M(0),p=0,q=0,r=0;f=ea-720|0;ea=f;a:{b:{c:{d:{e:{f:{g:{h:{i:{if(H[b+38>>1]>=515){F[f+680>>2]=0;F[f+672>>2]=0;F[f+676>>2]=0;if((ga[F[F[a>>2]+24>>2]](a)|0)<=0){break d}while(1){c=ga[F[F[a>>2]+20>>2]](a,l)|0;d=F[F[F[(ga[F[F[a>>2]+28>>2]](a)|0)+4>>2]+8>>2]+(c<<2)>>2];if(F[d+28>>2]==9){e=F[f+672>>2];c=F[f+676>>2]-e>>2;g=D[d+24|0];j:{if(c>>>0>>0){Aa(f+672|0,g-c|0);break j}if(c>>>0<=g>>>0){break j}F[f+676>>2]=e+(g<<2)}h=0;c=F[b+20>>2];j=F[b+16>>2];d=g<<2;i=j+d|0;e=F[b+12>>2];c=d>>>0>i>>>0?c+1|0:c;if(i>>>0>I[b+8>>2]&(e|0)<=(c|0)|(c|0)>(e|0)){break b}ta(F[f+672>>2],j+F[b>>2]|0,d);c=F[b+20>>2];e=d+F[b+16>>2]|0;c=e>>>0>>0?c+1|0:c;F[b+16>>2]=e;F[b+20>>2]=c;m=F[b+12>>2];j=m;i=e+4|0;d=i>>>0<4?c+1|0:c;n=F[b+8>>2];if(n>>>0>>0&(d|0)>=(j|0)|(d|0)>(j|0)){break b}p=F[b>>2];j=p+e|0;j=G[j|0]|G[j+1|0]<<8|(G[j+2|0]<<16|G[j+3|0]<<24);F[b+16>>2]=i;F[b+20>>2]=d;if((d|0)>=(m|0)&i>>>0>=n>>>0|(d|0)>(m|0)){break b}d=G[i+p|0];e=e+5|0;c=e>>>0<5?c+1|0:c;F[b+16>>2]=e;F[b+20>>2]=c;if(d>>>0>31){break b}o=(z(2,j),A());F[f+20>>2]=-1;F[f+16>>2]=1832;F[f+32>>2]=0;F[f+36>>2]=0;F[f+24>>2]=0;F[f+28>>2]=0;c=f+16|0;e=F[f+672>>2];i=d-1|0;if(i>>>0<=29){F[c+4>>2]=d;Ca(c+8|0,e,e+(g<<2)|0);J[c+20>>2]=o}k:{if(i>>>0>=30){break k}if(!Uc(f+16|0,F[F[a+60>>2]+((F[a+40>>2]-F[a+36>>2]|0)/24<<2)>>2])){break k}c=F[a+40>>2];l:{if((c|0)!=F[a+44>>2]){F[c>>2]=1832;d=F[f+20>>2];F[c+16>>2]=0;F[c+8>>2]=0;F[c+12>>2]=0;F[c+4>>2]=d;d=F[f+28>>2];g=F[f+24>>2];if((d|0)!=(g|0)){g=d-g|0;if((g|0)<0){break i}d=sa(g);F[c+8>>2]=d;F[c+12>>2]=d;F[c+16>>2]=d+(g>>2<<2);e=F[f+24>>2];g=F[f+28>>2]-e|0;if((g|0)>0){d=ta(d,e,g)+g|0}F[c+12>>2]=d}J[c+20>>2]=J[f+36>>2];F[a+40>>2]=c+24;break l}c=0;m:{n:{o:{p:{g=F[a+40>>2];h=F[a+36>>2];e=(g-h|0)/24|0;d=e+1|0;if(d>>>0<178956971){i=(F[a+44>>2]-h|0)/24|0;j=i<<1;i=i>>>0<89478485?d>>>0>>0?j:d:178956970;if(i){if(i>>>0>=178956971){break p}c=sa(L(i,24))}e=L(e,24)+c|0;F[e>>2]=1832;d=F[f+20>>2];F[e+16>>2]=0;F[e+8>>2]=0;F[e+12>>2]=0;F[e+4>>2]=d;d=F[f+28>>2];j=F[f+24>>2];if((d|0)!=(j|0)){d=d-j|0;if((d|0)<0){break o}m=sa(d);F[e+8>>2]=m;F[e+16>>2]=(d>>2<<2)+m;q=e,r=ta(m,j,d)+d|0,F[q+12>>2]=r}c=L(i,24)+c|0;J[e+20>>2]=J[f+36>>2];d=e+24|0;if((g|0)==(h|0)){break n}while(1){e=e-24|0;F[e>>2]=1832;g=g-24|0;F[e+4>>2]=F[g+4>>2];F[e+8>>2]=F[g+8>>2];F[e+12>>2]=F[g+12>>2];F[e+16>>2]=F[g+16>>2];F[g+16>>2]=0;F[g+8>>2]=0;F[g+12>>2]=0;J[e+20>>2]=J[g+20>>2];if((g|0)!=(h|0)){continue}break}F[a+44>>2]=c;h=F[a+40>>2];F[a+40>>2]=d;g=F[a+36>>2];F[a+36>>2]=e;if((g|0)==(h|0)){break m}while(1){h=h-24|0;ga[F[F[h>>2]>>2]](h)|0;if((g|0)!=(h|0)){continue}break}break m}va();V()}za();V()}va();V()}F[a+44>>2]=c;F[a+40>>2]=d;F[a+36>>2]=e}if(g){ra(g)}}h=1}F[f+16>>2]=1832;c=F[f+24>>2];if(c){F[f+28>>2]=c;ra(c)}if(!h){break c}}l=l+1|0;if((ga[F[F[a>>2]+24>>2]](a)|0)>(l|0)){continue}break}break d}i=ga[F[F[a>>2]+24>>2]](a)|0;F[f+712>>2]=0;F[f+704>>2]=0;F[f+708>>2]=0;if(i){if(i>>>0>=214748365){break h}c=L(i,20);d=sa(c);F[f+704>>2]=d;F[f+712>>2]=c+d;c=c-20|0;c=(c-((c>>>0)%20|0)|0)+20|0;q=f,r=ua(d,0,c)+c|0,F[q+708>>2]=r;while(1){c=ga[F[F[a>>2]+20>>2]](a,k)|0;d=F[F[F[(ga[F[F[a>>2]+28>>2]](a)|0)+4>>2]+8>>2]+(c<<2)>>2];g=F[d+28>>2];c=g-1|0;if(c>>>0<=10){c=F[(c<<2)+13584>>2]}else{c=-1}j=(c|0)>0?c:0;if(j>>>0>4){break f}c=F[f+704>>2]+L(k,20)|0;l=D[d+24|0];F[c+16>>2]=l;F[c+12>>2]=j;F[c+8>>2]=g;F[c+4>>2]=e;F[c>>2]=d;e=e+l|0;k=k+1|0;if((i|0)!=(k|0)){continue}break}}c=ga[F[F[a>>2]+20>>2]](a,0)|0;m=F[F[F[(ga[F[F[a>>2]+28>>2]](a)|0)+4>>2]+8>>2]+(c<<2)>>2];D[m+84|0]=1;F[m+72>>2]=F[m+68>>2];g=F[b+12>>2];c=g;d=F[b+20>>2];j=F[b+8>>2];k=F[b+16>>2];if((c|0)<=(d|0)&j>>>0<=k>>>0|(c|0)<(d|0)){break f}n=F[b>>2];p=G[n+k|0];c=d;l=k+1|0;c=l?c:c+1|0;F[b+16>>2]=l;F[b+20>>2]=c;q:{switch(p|0){case 0:a=F[f+704>>2];if((F[f+708>>2]-a|0)!=20){break e}if(F[a+16>>2]!=3){break f}r:{if(j>>>0<=l>>>0&(c|0)>=(g|0)|(c|0)>(g|0)){break r}c=d;a=k+2|0;c=a>>>0<2?c+1|0:c;F[b+16>>2]=a;F[b+20>>2]=c;c=d;d=k+6|0;c=d>>>0<6?c+1|0:c;if(d>>>0>j>>>0&(c|0)>=(g|0)|(c|0)>(g|0)){break r}a=a+n|0;a=G[a|0]|G[a+1|0]<<8|(G[a+2|0]<<16|G[a+3|0]<<24);F[b+16>>2]=d;F[b+20>>2]=c;rb(m,a);h=f+672|0;F[h+20>>2]=0;F[h+12>>2]=0;F[h+16>>2]=0;F[h>>2]=0;F[h+4>>2]=0;F[h+20>>2]=a;k=zc(f+16|0,f+704|0);g=0;e=ea-32|0;ea=e;F[e+24>>2]=0;F[e+16>>2]=0;F[e+20>>2]=0;a=F[b+12>>2];j=a;c=F[b+20>>2];d=c;l=F[b+16>>2];i=l+4|0;c=i>>>0<4?c+1|0:c;m=F[b+8>>2];s:{if(m>>>0>>0&(a|0)<=(c|0)|(a|0)<(c|0)){break s}n=F[b>>2];a=n+l|0;a=G[a|0]|G[a+1|0]<<8|(G[a+2|0]<<16|G[a+3|0]<<24);F[b+16>>2]=i;F[b+20>>2]=c;t:{u:{switch(a-2|0){case 1:if((c|0)>=(j|0)&i>>>0>=m>>>0|(c|0)>(j|0)){break s}a=D[i+n|0];c=d;d=l+5|0;c=d>>>0<5?c+1|0:c;F[b+16>>2]=d;F[b+20>>2]=c;F[h+8>>2]=a;if((a|0)==1){if(Td(h,b,e+16|0)){break t}break s}Qd(1799,23,F[3443]);break s;default:Qd(1774,24,F[3443]);break s;case 0:break u}}if(!Td(h,b,e+16|0)){break s}}F[e+8>>2]=F[e+16>>2];F[e>>2]=F[e+20>>2];a=ea-32|0;ea=a;b=F[h>>2];o=J[h+4>>2];g=a+24|0;F[g>>2]=1065353216;b=-1<0){J[g>>2]=o/M(b|0)}h=F[e+8>>2];if((h|0)!=F[e>>2]){c=F[k+28>>2];while(1){d=F[h>>2];i=F[h+4>>2];o=J[g>>2];J[a+16>>2]=o*M(F[h+8>>2]-b|0);J[a+12>>2]=o*M(i-b|0);J[a+8>>2]=o*M(d-b|0);i=F[k+16>>2];d=F[i>>2];if(!G[d+84|0]){c=F[F[d+68>>2]+(c<<2)>>2]}j=c;c=F[d+40>>2];ta(F[F[d>>2]>>2]+L(j,c)|0,(a+8|0)+(F[i+4>>2]<<2)|0,c);c=F[k+28>>2]+1|0;F[k+28>>2]=c;h=h+12|0;if((h|0)!=F[e>>2]){continue}break}}ea=a+32|0;g=1}a=F[e+16>>2];if(a){F[e+20>>2]=a;ra(a)}ea=e+32|0;yc(k);h=1;if(g){break f}}h=0;break f;case 1:break q;default:break f}}if(j>>>0<=l>>>0&(c|0)>=(g|0)|(c|0)>(g|0)){break f}l=G[l+n|0];c=d;m=k+2|0;c=m>>>0<2?c+1|0:c;F[b+16>>2]=m;F[b+20>>2]=c;if(l>>>0>=7){F[f>>2]=l;Pd(1651,f);break f}c=d;d=k+6|0;c=d>>>0<6?c+1|0:c;k=d;if(d>>>0>j>>>0&(c|0)>=(g|0)|(c|0)>(g|0)){break f}d=m+n|0;d=G[d|0]|G[d+1|0]<<8|(G[d+2|0]<<16|G[d+3|0]<<24);F[b+16>>2]=k;F[b+20>>2]=c;if(i){k=0;while(1){c=ga[F[F[a>>2]+20>>2]](a,k)|0;c=F[F[F[(ga[F[F[a>>2]+28>>2]](a)|0)+4>>2]+8>>2]+(c<<2)>>2];rb(c,d);D[c+84|0]=1;F[c+72>>2]=F[c+68>>2];k=k+1|0;if((i|0)!=(k|0)){continue}break}}a=zc(f+672|0,f+704|0);v:{w:{switch(l|0){case 1:c=zb(f+16|0,e);b=yd(c,b,a);Ab(c);if(!b){break g}break v;case 2:c=xb(f+16|0,e);b=xd(c,b,a);yb(c);if(!b){break g}break v;case 3:c=xb(f+16|0,e);b=wd(c,b,a);yb(c);if(!b){break g}break v;case 4:c=cb(f+16|0,e);b=vd(c,b,a);db(c);if(!b){break g}break v;case 5:c=cb(f+16|0,e);b=ud(c,b,a);db(c);if(!b){break g}break v;case 6:c=cb(f+16|0,e);b=td(c,b,a);db(c);if(b){break v}break g;case 0:break w;default:break g}}c=zb(f+16|0,e);b=zd(c,b,a);Ab(c);if(!b){break g}}yc(a);h=1;break f}va();V()}va();V()}yc(a)}a=F[f+704>>2]}if(!a){break a}F[f+708>>2]=a;ra(a);break a}h=1;if(F[a+52>>2]==F[a+48>>2]){break b}while(1){if(!sd(1,f+16|0,b)){break c}c=F[a+48>>2];d=F[f+16>>2];F[c+(k<<2)>>2]=d>>>1^0-(d&1);k=k+1|0;if(k>>>0>2]-c>>2>>>0){continue}break}break b}h=0}a=F[f+672>>2];if(!a){break a}F[f+676>>2]=a;ra(a)}ea=f+720|0;return h|0}function zd(a,b,c){var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0;e=F[b+12>>2];f=F[b+20>>2];d=F[b+16>>2];k=d+4|0;f=k>>>0<4?f+1|0:f;a:{if((e|0)<=(f|0)&k>>>0>I[b+8>>2]|(e|0)<(f|0)){break a}f=d+F[b>>2]|0;F[a>>2]=G[f|0]|G[f+1|0]<<8|(G[f+2|0]<<16|G[f+3|0]<<24);f=F[b+20>>2];e=f;k=F[b+16>>2];d=k+4|0;f=d>>>0<4?e+1|0:e;m=d;F[b+16>>2]=d;F[b+20>>2]=f;if(I[a>>2]>32){break a}d=F[b+12>>2];f=e;e=k+8|0;f=e>>>0<8?f+1|0:f;if(e>>>0>I[b+8>>2]&(f|0)>=(d|0)|(f|0)>(d|0)){break a}h=m+F[b>>2]|0;f=G[h|0]|G[h+1|0]<<8|(G[h+2|0]<<16|G[h+3|0]<<24);F[a+4>>2]=f;h=F[b+20>>2];e=F[b+16>>2]+4|0;h=e>>>0<4?h+1|0:h;F[b+16>>2]=e;F[b+20>>2]=h;if(!f){return 1}h=0;F[a+8>>2]=0;if(!xa(a+16|0,b)){break a}if(!xa(a+36|0,b)){break a}if(!xa(a+56|0,b)){break a}if(!xa(a+76|0,b)){break a}s=F[a+4>>2];e=ea-32|0;ea=e;f=a;d=F[f+12>>2];F[e+16>>2]=0;F[e+8>>2]=0;F[e+12>>2]=0;b:{c:{if(d){if(d>>>0>=1073741824){break c}a=d<<2;g=sa(a);F[e+8>>2]=g;j=a+g|0;F[e+16>>2]=j;ua(g,0,a);F[e+12>>2]=j}a=F[f+120>>2];b=F[a>>2];if(b){F[a+4>>2]=b;ra(b);F[a+8>>2]=0;F[a>>2]=0;F[a+4>>2]=0;j=F[e+12>>2];g=F[e+8>>2];d=F[f+12>>2]}F[a+4>>2]=j;F[a>>2]=g;F[a+8>>2]=F[e+16>>2];g=0;F[e+16>>2]=0;F[e+8>>2]=0;F[e+12>>2]=0;d:{if(d){if(d>>>0>=1073741824){break d}a=d<<2;i=sa(a);F[e+8>>2]=i;g=a+i|0;F[e+16>>2]=g;ua(i,0,a);F[e+12>>2]=g}a=F[f+132>>2];b=F[a>>2];if(b){F[a+4>>2]=b;ra(b);F[a+8>>2]=0;F[a>>2]=0;F[a+4>>2]=0;i=F[e+8>>2];g=F[e+12>>2]}F[a+4>>2]=g;F[a>>2]=i;F[a+8>>2]=F[e+16>>2];F[e+24>>2]=0;F[e+28>>2]=0;F[e+16>>2]=0;F[e+20>>2]=0;F[e+8>>2]=0;F[e+12>>2]=0;ya(e+8|0);a=F[e+24>>2]+F[e+28>>2]|0;b=(a>>>0)/341|0;a=F[F[e+12>>2]+(b<<2)>>2]+L(a-L(b,341)|0,12)|0;F[a+4>>2]=0;F[a+8>>2]=0;F[a>>2]=s;a=1;d=F[e+28>>2]+1|0;F[e+28>>2]=d;e:{if(!d){break e}while(1){a=F[e+12>>2];g=F[e+24>>2];i=d-1|0;b=g+i|0;h=(b>>>0)/341|0;b=F[a+(h<<2)>>2]+L(b-L(h,341)|0,12)|0;j=F[b+8>>2];h=F[b+4>>2];k=F[b>>2];F[e+28>>2]=i;b=F[e+16>>2];if((((a|0)==(b|0)?0:L(b-a>>2,341)-1|0)-(d+g|0)|0)+1>>>0>=682){ra(F[b-4>>2]);F[e+16>>2]=F[e+16>>2]-4}a=0;if(k>>>0>s>>>0){break e}b=F[f+12>>2];d=(b-1|0)==(h|0)?0:h+1|0;if(d>>>0>=b>>>0){break e}i=L(j,12);n=i+F[f+132>>2]|0;m=i+F[f+120>>2]|0;h=F[f>>2];l=d<<2;g=F[l+F[n>>2]>>2];f:{g:{if((h|0)==(g|0)){if(!k){break g}h=0;if(F[c+20>>2]==F[c+16>>2]){a=F[f+8>>2];F[c+28>>2]=k+F[c+28>>2];F[f+8>>2]=a+k;break g}while(1){i=0;d=F[c+16>>2];h:{if((d|0)==F[c+20>>2]){break h}while(1){l=L(i,20)+d|0;b=F[m>>2]+(F[l+4>>2]<<2)|0;n=F[l>>2];j=F[l+12>>2];a=b;i:{if(j>>>0>3){break i}d=0;g=F[c+12>>2];a=g;if(!F[l+16>>2]){break i}while(1){a=ta(g,b+(d<<2)|0,j);j=F[l+12>>2];g=a+j|0;d=d+1|0;if(d>>>0>2]){continue}break}a=F[c+12>>2]}d=F[c+28>>2];d=G[n+84|0]?d:F[F[n+68>>2]+(d<<2)>>2];if(d>>>0>=I[n+80>>2]){break h}b=F[n+40>>2];ta(F[F[n>>2]>>2]+L(b,d)|0,a,b);i=i+1|0;d=F[c+16>>2];if(i>>>0<(F[c+20>>2]-d|0)/20>>>0){continue}break}}F[c+28>>2]=F[c+28>>2]+1;F[f+8>>2]=F[f+8>>2]+1;h=h+1|0;if((k|0)!=(h|0)){continue}break}break g}j:{k:{l:{m:{if(k>>>0<=2){a=F[f+108>>2];F[a>>2]=d;i=1;g=F[f+12>>2];if(g>>>0>1){break m}break j}if(I[f+8>>2]>I[f+4>>2]){break e}b=F[f+120>>2];p=j+1|0;n=L(p,12);o=b+n|0;if((o|0)!=(m|0)){Ca(o,F[m>>2],F[m+4>>2]);b=F[f+120>>2]}b=l+F[b+n>>2]|0;F[b>>2]=F[b>>2]+(1<>2];m=32-h|0;n:{if((b|0)<=(m|0)){m=F[f+28>>2];if((m|0)==F[f+20>>2]){break l}g=F[m>>2];o=b+h|0;F[f+32>>2]=o;g=g<>>32-b|0;if((o|0)!=32){break n}F[f+32>>2]=0;F[f+28>>2]=m+4;break n}g=F[f+28>>2];o=g+4|0;if((o|0)==F[f+20>>2]){break l}r=F[g>>2];F[f+28>>2]=o;m=b-m|0;F[f+32>>2]=m;g=F[g+4>>2]>>>32-m|r<>>32-b}h=k>>>1|0;if(h>>>0>>0){break e}break k}while(1){d=(g-1|0)==(d|0)?0:d+1|0;F[a+(i<<2)>>2]=d;g=F[f+12>>2];i=i+1|0;if(g>>>0>i>>>0){continue}break}break j}h=k>>>1|0;g=0}o:{p:{b=h-g|0;a=k-b|0;q:{if((a|0)==(b|0)){a=b;break q}h=F[f+88>>2];if((h|0)==F[f+80>>2]){break p}g=F[h>>2];k=F[f+92>>2];m=k+1|0;F[f+92>>2]=m;g=g&-2147483648>>>k;r:{if((m|0)==32){F[f+92>>2]=0;F[f+88>>2]=h+4;if(g){break r}break p}if(!g){break p}}}h=a;a=b;break o}h=b}b=F[f+132>>2];g=b+i|0;i=F[g>>2];k=i+l|0;F[k>>2]=F[k>>2]+1;Ca(b+n|0,i,F[g+4>>2]);if(a){g=F[e+28>>2]+F[e+24>>2]|0;b=F[e+16>>2];i=F[e+12>>2];if((g|0)==(((b|0)==(i|0)?0:L(b-i>>2,341)-1|0)|0)){ya(e+8|0);i=F[e+12>>2];g=F[e+24>>2]+F[e+28>>2]|0}b=(g>>>0)/341|0;b=F[(b<<2)+i>>2]+L(g-L(b,341)|0,12)|0;F[b+8>>2]=j;F[b+4>>2]=d;F[b>>2]=a;F[e+28>>2]=F[e+28>>2]+1}if(!h){break g}g=F[e+28>>2]+F[e+24>>2]|0;a=F[e+16>>2];i=F[e+12>>2];if((g|0)==(((a|0)==(i|0)?0:L(a-i>>2,341)-1|0)|0)){ya(e+8|0);i=F[e+12>>2];g=F[e+24>>2]+F[e+28>>2]|0}a=(g>>>0)/341|0;a=F[(a<<2)+i>>2]+L(g-L(a,341)|0,12)|0;F[a+8>>2]=p;F[a+4>>2]=d;F[a>>2]=h;d=F[e+28>>2]+1|0;F[e+28>>2]=d;break f}p=0;if(!k){break g}while(1){if(F[f+12>>2]){o=F[m>>2];g=F[f+40>>2];r=F[n>>2];h=F[f+96>>2];u=F[f+108>>2];d=0;while(1){i=(d<<2)+u|0;F[h+(F[i>>2]<<2)>>2]=0;b=F[f>>2];a=F[i>>2]<<2;j=F[a+r>>2];s:{if((b|0)==(j|0)){break s}a=a+h|0;b=b-j|0;j=F[f+52>>2];q=32-j|0;if((b|0)<=(q|0)){l=F[f+48>>2];if((l|0)==(g|0)){F[a>>2]=0;break s}F[a>>2]=F[l>>2]<>>32-b;a=b+F[f+52>>2]|0;F[f+52>>2]=a;if((a|0)!=32){break s}F[f+52>>2]=0;F[f+48>>2]=l+4;break s}l=F[f+48>>2];t=l+4|0;if((g|0)==(t|0)){F[a>>2]=0;break s}v=F[l>>2];F[f+48>>2]=t;q=b-q|0;F[f+52>>2]=q;F[a>>2]=F[l+4>>2]>>>32-q|v<>>32-b}a=F[i>>2]<<2;b=a+h|0;F[b>>2]=F[b>>2]|F[a+o>>2];d=d+1|0;if(d>>>0>2]){continue}break}}i=0;d=F[c+16>>2];t:{if((d|0)==F[c+20>>2]){break t}while(1){h=L(i,20)+d|0;b=F[f+96>>2]+(F[h+4>>2]<<2)|0;l=F[h>>2];j=F[h+12>>2];a=b;u:{if(j>>>0>3){break u}d=0;g=F[c+12>>2];a=g;if(!F[h+16>>2]){break u}while(1){a=ta(g,b+(d<<2)|0,j);j=F[h+12>>2];g=a+j|0;d=d+1|0;if(d>>>0>2]){continue}break}a=F[c+12>>2]}d=F[c+28>>2];d=G[l+84|0]?d:F[F[l+68>>2]+(d<<2)>>2];if(d>>>0>=I[l+80>>2]){break t}b=F[l+40>>2];ta(F[F[l>>2]>>2]+L(b,d)|0,a,b);i=i+1|0;d=F[c+16>>2];if(i>>>0<(F[c+20>>2]-d|0)/20>>>0){continue}break}}F[c+28>>2]=F[c+28>>2]+1;F[f+8>>2]=F[f+8>>2]+1;p=p+1|0;if((k|0)!=(p|0)){continue}break}}d=F[e+28>>2]}if(d){continue}break}a=1}F[e+28>>2]=0;i=F[e+16>>2];d=F[e+12>>2];g=i-d|0;if(g>>>0>=9){while(1){ra(F[d>>2]);d=F[e+12>>2]+4|0;F[e+12>>2]=d;i=F[e+16>>2];g=i-d|0;if(g>>>0>8){continue}break}}j=170;v:{switch((g>>>2|0)-1|0){case 1:j=341;case 0:F[e+24>>2]=j;break;default:break v}}w:{if((d|0)==(i|0)){break w}while(1){ra(F[d>>2]);d=d+4|0;if((i|0)!=(d|0)){continue}break}b=F[e+16>>2];c=F[e+12>>2];if((b|0)==(c|0)){break w}F[e+16>>2]=b+((c-b|0)+3&-4)}b=F[e+8>>2];if(b){ra(b)}ea=e+32|0;break b}va();V()}va();V()}h=a}return h}function yd(a,b,c){var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0;k=F[b+12>>2];d=F[b+20>>2];e=F[b+16>>2];f=e+4|0;d=f>>>0<4?d+1|0:d;a:{if(f>>>0>I[b+8>>2]&(d|0)>=(k|0)|(d|0)>(k|0)){break a}d=e+F[b>>2]|0;F[a>>2]=G[d|0]|G[d+1|0]<<8|(G[d+2|0]<<16|G[d+3|0]<<24);d=F[b+20>>2];k=d;f=F[b+16>>2];e=f+4|0;d=e>>>0<4?d+1|0:d;l=e;F[b+16>>2]=e;F[b+20>>2]=d;if(I[a>>2]>32){break a}e=F[b+12>>2];d=k;k=f+8|0;d=k>>>0<8?d+1|0:d;if(k>>>0>I[b+8>>2]&(d|0)>=(e|0)|(d|0)>(e|0)){break a}d=l+F[b>>2]|0;k=G[d|0]|G[d+1|0]<<8|(G[d+2|0]<<16|G[d+3|0]<<24);F[a+4>>2]=k;d=F[b+20>>2];e=F[b+16>>2]+4|0;d=e>>>0<4?d+1|0:d;F[b+16>>2]=e;F[b+20>>2]=d;if(!k){return 1}F[a+8>>2]=0;if(!xa(a+16|0,b)){break a}if(!xa(a+36|0,b)){break a}if(!xa(a+56|0,b)){break a}if(!xa(a+76|0,b)){break a}q=F[a+4>>2];e=ea-32|0;ea=e;d=a;f=F[a+12>>2];F[e+16>>2]=0;F[e+8>>2]=0;F[e+12>>2]=0;b:{c:{if(f){if(f>>>0>=1073741824){break c}a=f<<2;g=sa(a);F[e+8>>2]=g;h=a+g|0;F[e+16>>2]=h;ua(g,0,a);F[e+12>>2]=h}a=F[d+120>>2];b=F[a>>2];if(b){F[a+4>>2]=b;ra(b);F[a+8>>2]=0;F[a>>2]=0;F[a+4>>2]=0;f=F[d+12>>2];g=F[e+8>>2];h=F[e+12>>2]}F[a+4>>2]=h;F[a>>2]=g;F[a+8>>2]=F[e+16>>2];g=0;F[e+16>>2]=0;F[e+8>>2]=0;F[e+12>>2]=0;d:{if(f){if(f>>>0>=1073741824){break d}a=f<<2;i=sa(a);F[e+8>>2]=i;g=a+i|0;F[e+16>>2]=g;ua(i,0,a);F[e+12>>2]=g}a=F[d+132>>2];b=F[a>>2];if(b){F[a+4>>2]=b;ra(b);F[a+8>>2]=0;F[a>>2]=0;F[a+4>>2]=0;g=F[e+12>>2];i=F[e+8>>2]}F[a+4>>2]=g;F[a>>2]=i;F[a+8>>2]=F[e+16>>2];F[e+24>>2]=0;F[e+28>>2]=0;F[e+16>>2]=0;F[e+20>>2]=0;F[e+8>>2]=0;F[e+12>>2]=0;ya(e+8|0);a=F[e+24>>2]+F[e+28>>2]|0;b=(a>>>0)/341|0;a=F[F[e+12>>2]+(b<<2)>>2]+L(a-L(b,341)|0,12)|0;F[a+4>>2]=0;F[a+8>>2]=0;F[a>>2]=q;a=1;f=F[e+28>>2]+1|0;F[e+28>>2]=f;e:{if(!f){break e}while(1){a=F[e+12>>2];i=F[e+24>>2];g=f-1|0;b=i+g|0;h=(b>>>0)/341|0;b=F[a+(h<<2)>>2]+L(b-L(h,341)|0,12)|0;k=F[b+8>>2];h=F[b+4>>2];l=F[b>>2];F[e+28>>2]=g;b=F[e+16>>2];if((((a|0)==(b|0)?0:L(b-a>>2,341)-1|0)-(f+i|0)|0)+1>>>0>=682){ra(F[b-4>>2]);F[e+16>>2]=F[e+16>>2]-4}if(l>>>0>q>>>0){a=0;break e}a=0;b=F[d+12>>2];f=(h|0)==(b-1|0)?0:h+1|0;if(f>>>0>=b>>>0){break e}b=F[d+120>>2];i=L(k,12);n=b+i|0;h=F[d>>2];g=f<<2;p=i+F[d+132>>2]|0;j=F[g+F[p>>2]>>2];f:{g:{if((h|0)==(j|0)){if(!l){break g}b=0;if(F[c+20>>2]==F[c+16>>2]){a=F[d+8>>2];F[c+28>>2]=l+F[c+28>>2];F[d+8>>2]=a+l;break g}while(1){a=0;f=F[c+16>>2];h:{if((f|0)==F[c+20>>2]){break h}while(1){j=L(a,20)+f|0;i=F[n>>2]+(F[j+4>>2]<<2)|0;m=F[j>>2];h=F[j+12>>2];k=i;i:{if(h>>>0>3){break i}f=0;g=F[c+12>>2];k=g;if(!F[j+16>>2]){break i}while(1){k=ta(g,i+(f<<2)|0,h);h=F[j+12>>2];g=k+h|0;f=f+1|0;if(f>>>0>2]){continue}break}k=F[c+12>>2]}f=F[c+28>>2];f=G[m+84|0]?f:F[F[m+68>>2]+(f<<2)>>2];if(f>>>0>=I[m+80>>2]){break h}h=F[m+40>>2];ta(F[F[m>>2]>>2]+L(h,f)|0,k,h);a=a+1|0;f=F[c+16>>2];if(a>>>0<(F[c+20>>2]-f|0)/20>>>0){continue}break}}F[c+28>>2]=F[c+28>>2]+1;F[d+8>>2]=F[d+8>>2]+1;b=b+1|0;if((l|0)!=(b|0)){continue}break}break g}j:{k:{l:{m:{if(l>>>0<=2){a=F[d+108>>2];F[a>>2]=f;i=1;g=F[d+12>>2];if(g>>>0>1){break m}break j}if(I[d+8>>2]>I[d+4>>2]){break e}m=b;b=i+12|0;Ca(m+b|0,F[n>>2],F[n+4>>2]);b=g+F[b+F[d+120>>2]>>2]|0;F[b>>2]=F[b>>2]+(1<>2];m=32-h|0;n:{if((b|0)<=(m|0)){j=F[d+28>>2];if((j|0)==F[d+20>>2]){break l}m=F[j>>2];n=b+h|0;F[d+32>>2]=n;h=m<>>32-b|0;if((n|0)!=32){break n}F[d+32>>2]=0;F[d+28>>2]=j+4;break n}j=F[d+28>>2];n=j+4|0;if((n|0)==F[d+20>>2]){break l}p=F[j>>2];F[d+28>>2]=n;m=b-m|0;F[d+32>>2]=m;h=F[j+4>>2]>>>32-m|p<>>32-b}b=l>>>1|0;if(h>>>0>b>>>0){break e}break k}while(1){f=(g-1|0)==(f|0)?0:f+1|0;F[a+(i<<2)>>2]=f;g=F[d+12>>2];i=i+1|0;if(g>>>0>i>>>0){continue}break}break j}b=l>>>1|0;h=0}j=k+1|0;o:{p:{a=b-h|0;h=l-a|0;q:{if((h|0)==(a|0)){b=a;break q}b=F[d+88>>2];if((b|0)==F[d+80>>2]){break p}l=F[b>>2];m=F[d+92>>2];n=m+1|0;F[d+92>>2]=n;l=l&-2147483648>>>m;r:{if((n|0)==32){F[d+92>>2]=0;F[d+88>>2]=b+4;if(l){break r}break p}if(!l){break p}}b=h}h=a;break o}b=a}l=g;a=F[d+132>>2];i=a+i|0;g=F[i>>2];l=l+g|0;F[l>>2]=F[l>>2]+1;Ca(a+L(j,12)|0,g,F[i+4>>2]);if(h){g=F[e+28>>2]+F[e+24>>2]|0;a=F[e+16>>2];i=F[e+12>>2];if((g|0)==(((a|0)==(i|0)?0:L(a-i>>2,341)-1|0)|0)){ya(e+8|0);g=F[e+24>>2]+F[e+28>>2]|0;i=F[e+12>>2]}a=(g>>>0)/341|0;a=F[i+(a<<2)>>2]+L(g-L(a,341)|0,12)|0;F[a+8>>2]=k;F[a+4>>2]=f;F[a>>2]=h;F[e+28>>2]=F[e+28>>2]+1}if(!b){break g}g=F[e+28>>2]+F[e+24>>2]|0;a=F[e+16>>2];i=F[e+12>>2];if((g|0)==(((a|0)==(i|0)?0:L(a-i>>2,341)-1|0)|0)){ya(e+8|0);g=F[e+24>>2]+F[e+28>>2]|0;i=F[e+12>>2]}a=(g>>>0)/341|0;a=F[i+(a<<2)>>2]+L(g-L(a,341)|0,12)|0;F[a+8>>2]=j;F[a+4>>2]=f;F[a>>2]=b;f=F[e+28>>2]+1|0;F[e+28>>2]=f;break f}m=0;if(!l){break g}while(1){if(F[d+12>>2]){s=F[n>>2];k=F[d+40>>2];t=F[p>>2];h=F[d+96>>2];u=F[d+108>>2];f=0;while(1){i=(f<<2)+u|0;F[h+(F[i>>2]<<2)>>2]=0;b=F[d>>2];a=F[i>>2]<<2;g=F[a+t>>2];s:{if((b|0)==(g|0)){break s}a=a+h|0;b=b-g|0;g=F[d+52>>2];o=32-g|0;if((b|0)<=(o|0)){j=F[d+48>>2];if((j|0)==(k|0)){F[a>>2]=0;break s}F[a>>2]=F[j>>2]<>>32-b;a=b+F[d+52>>2]|0;F[d+52>>2]=a;if((a|0)!=32){break s}F[d+52>>2]=0;F[d+48>>2]=j+4;break s}j=F[d+48>>2];r=j+4|0;if((k|0)==(r|0)){F[a>>2]=0;break s}v=F[j>>2];F[d+48>>2]=r;o=b-o|0;F[d+52>>2]=o;F[a>>2]=F[j+4>>2]>>>32-o|v<>>32-b}a=F[i>>2]<<2;b=a+h|0;F[b>>2]=F[b>>2]|F[a+s>>2];f=f+1|0;if(f>>>0>2]){continue}break}}a=0;f=F[c+16>>2];t:{if((f|0)==F[c+20>>2]){break t}while(1){i=L(a,20)+f|0;k=F[d+96>>2]+(F[i+4>>2]<<2)|0;j=F[i>>2];h=F[i+12>>2];b=k;u:{if(h>>>0>3){break u}f=0;g=F[c+12>>2];b=g;if(!F[i+16>>2]){break u}while(1){b=ta(g,k+(f<<2)|0,h);h=F[i+12>>2];g=b+h|0;f=f+1|0;if(f>>>0>2]){continue}break}b=F[c+12>>2]}f=F[c+28>>2];f=G[j+84|0]?f:F[F[j+68>>2]+(f<<2)>>2];if(f>>>0>=I[j+80>>2]){break t}h=F[j+40>>2];ta(F[F[j>>2]>>2]+L(h,f)|0,b,h);a=a+1|0;f=F[c+16>>2];if(a>>>0<(F[c+20>>2]-f|0)/20>>>0){continue}break}}F[c+28>>2]=F[c+28>>2]+1;F[d+8>>2]=F[d+8>>2]+1;m=m+1|0;if((l|0)!=(m|0)){continue}break}}f=F[e+28>>2]}if(f){continue}break}a=1}F[e+28>>2]=0;i=F[e+16>>2];f=F[e+12>>2];g=i-f|0;if(g>>>0>=9){while(1){ra(F[f>>2]);f=F[e+12>>2]+4|0;F[e+12>>2]=f;i=F[e+16>>2];g=i-f|0;if(g>>>0>8){continue}break}}h=170;v:{switch((g>>>2|0)-1|0){case 1:h=341;case 0:F[e+24>>2]=h;break;default:break v}}w:{if((f|0)==(i|0)){break w}while(1){ra(F[f>>2]);f=f+4|0;if((i|0)!=(f|0)){continue}break}b=F[e+16>>2];c=F[e+12>>2];if((b|0)==(c|0)){break w}F[e+16>>2]=b+((c-b|0)+3&-4)}b=F[e+8>>2];if(b){ra(b)}ea=e+32|0;break b}va();V()}va();V()}h=a}return h}function og(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0;o=ea-16|0;ea=o;F[o+12>>2]=b;b=sa(32);F[o>>2]=b;F[o+4>>2]=24;F[o+8>>2]=-2147483616;D[b+24|0]=0;d=G[1206]|G[1207]<<8|(G[1208]<<16|G[1209]<<24);c=G[1202]|G[1203]<<8|(G[1204]<<16|G[1205]<<24);D[b+16|0]=c;D[b+17|0]=c>>>8;D[b+18|0]=c>>>16;D[b+19|0]=c>>>24;D[b+20|0]=d;D[b+21|0]=d>>>8;D[b+22|0]=d>>>16;D[b+23|0]=d>>>24;d=G[1198]|G[1199]<<8|(G[1200]<<16|G[1201]<<24);c=G[1194]|G[1195]<<8|(G[1196]<<16|G[1197]<<24);D[b+8|0]=c;D[b+9|0]=c>>>8;D[b+10|0]=c>>>16;D[b+11|0]=c>>>24;D[b+12|0]=d;D[b+13|0]=d>>>8;D[b+14|0]=d>>>16;D[b+15|0]=d>>>24;d=G[1190]|G[1191]<<8|(G[1192]<<16|G[1193]<<24);c=G[1186]|G[1187]<<8|(G[1188]<<16|G[1189]<<24);D[b|0]=c;D[b+1|0]=c>>>8;D[b+2|0]=c>>>16;D[b+3|0]=c>>>24;D[b+4|0]=d;D[b+5|0]=d>>>8;D[b+6|0]=d>>>16;D[b+7|0]=d>>>24;k=ea-48|0;ea=k;m=a;f=a+16|0;d=F[f>>2];a:{b:{if(!d){break b}b=F[o+12>>2];a=f;while(1){c=(b|0)>F[d+16>>2];a=c?a:d;d=F[(c?d+4|0:d)>>2];if(d){continue}break}if((a|0)==(f|0)){break b}if((b|0)>=F[a+16>>2]){break a}}u=k+24|0;a=u;F[a+4>>2]=0;F[a+8>>2]=0;v=a+4|0;F[a>>2]=v;b=F[o+12>>2];p=k+16|0;a=p;F[a>>2]=0;F[a+4>>2]=0;F[k+8>>2]=b;F[k+12>>2]=a;s=k+8|4;d=F[u>>2];if((v|0)!=(d|0)){while(1){g=d+16|0;q=ea-16|0;ea=q;b=q+8|0;c:{d:{e:{f:{g:{h:{i:{c=p;e=s+4|0;j:{if((c|0)==(e|0)){break j}a=G[c+27|0];h=a<<24>>24<0;j=G[g+11|0];n=j<<24>>24;i=(n|0)<0;a=h?F[c+20>>2]:a;j=i?F[g+4>>2]:j;l=a>>>0>>0;r=l?a:j;if(r){i=i?F[g>>2]:g;t=c+16|0;h=h?F[t>>2]:t;t=Ha(i,h,r);if(!t){if(a>>>0>j>>>0){break j}break i}if((t|0)>=0){break i}break j}if(a>>>0<=j>>>0){break h}}h=F[c>>2];k:{b=c;l:{if((b|0)==F[s>>2]){break l}m:{if(!h){a=c;while(1){b=F[a+8>>2];j=F[b>>2]==(a|0);a=b;if(j){continue}break}break m}a=h;while(1){b=a;a=F[a+4>>2];if(a){continue}break}}j=G[g+11|0];l=j<<24>>24;a=(l|0)<0;i=G[b+27|0];n=i<<24>>24<0;n:{j=a?F[g+4>>2]:j;i=n?F[b+20>>2]:i;r=j>>>0>>0?j:i;if(r){t=b+16|0;a=Ha(n?F[t>>2]:t,a?F[g>>2]:g,r);if(a){break n}}if(j>>>0>i>>>0){break l}break k}if((a|0)>=0){break k}}if(!h){F[q+12>>2]=c;b=c;break c}F[q+12>>2]=b;b=b+4|0;break c}a=F[e>>2];if(!a){F[q+12>>2]=e;b=e;break c}h=(l|0)<0?F[g>>2]:g;c=e;while(1){b=a;n=G[a+27|0];e=n<<24>>24<0;a=e?F[a+20>>2]:n;n=a>>>0>>0;o:{p:{q:{r:{i=n?a:j;s:{if(i){l=b+16|0;e=e?F[l>>2]:l;l=Ha(h,e,i);if(!l){if(a>>>0>j>>>0){break s}break r}if((l|0)>=0){break r}break s}if(a>>>0<=j>>>0){break q}}c=b;a=F[b>>2];if(a){continue}break e}a=Ha(e,h,i);if(a){break p}}if(n){break o}break e}if((a|0)>=0){break e}}c=b+4|0;a=F[b+4>>2];if(a){continue}break}break e}a=Ha(h,i,r);if(a){break g}}if(l){break f}break d}if((a|0)>=0){break d}}h=F[c+4>>2];t:{if(!h){a=c;while(1){b=F[a+8>>2];i=F[b>>2]!=(a|0);a=b;if(i){continue}break}break t}a=h;while(1){b=a;a=F[a>>2];if(a){continue}break}}u:{v:{if((b|0)==(e|0)){break v}i=G[b+27|0];a=i<<24>>24<0;w:{i=a?F[b+20>>2]:i;l=j>>>0>i>>>0?i:j;if(l){r=b+16|0;a=Ha((n|0)<0?F[g>>2]:g,a?F[r>>2]:r,l);if(a){break w}}if(j>>>0>>0){break v}break u}if((a|0)>=0){break u}}if(!h){F[q+12>>2]=c;b=c+4|0;break c}F[q+12>>2]=b;break c}a=F[e>>2];if(!a){F[q+12>>2]=e;b=e;break c}h=(n|0)<0?F[g>>2]:g;c=e;while(1){b=a;n=G[a+27|0];e=n<<24>>24<0;a=e?F[a+20>>2]:n;n=a>>>0>>0;x:{y:{z:{A:{i=n?a:j;B:{if(i){l=b+16|0;e=e?F[l>>2]:l;l=Ha(h,e,i);if(!l){if(a>>>0>j>>>0){break B}break A}if((l|0)>=0){break A}break B}if(a>>>0<=j>>>0){break z}}c=b;a=F[b>>2];if(a){continue}break e}a=Ha(e,h,i);if(a){break y}}if(n){break x}break e}if((a|0)>=0){break e}}c=b+4|0;a=F[b+4>>2];if(a){continue}break}}F[q+12>>2]=b;b=c;break c}F[q+12>>2]=c;F[b>>2]=c}c=F[b>>2];if(c){a=0}else{c=sa(40);a=c+16|0;C:{if(D[g+11|0]>=0){e=F[g+4>>2];F[a>>2]=F[g>>2];F[a+4>>2]=e;F[a+8>>2]=F[g+8>>2];break C}Ba(a,F[g>>2],F[g+4>>2])}a=c+28|0;D:{if(D[g+23|0]>=0){e=F[g+16>>2];F[a>>2]=F[g+12>>2];F[a+4>>2]=e;F[a+8>>2]=F[g+20>>2];break D}Ba(a,F[g+12>>2],F[g+16>>2])}F[c+8>>2]=F[q+12>>2];F[c>>2]=0;F[c+4>>2]=0;F[b>>2]=c;a=c;e=F[F[s>>2]>>2];if(e){F[s>>2]=e;a=F[b>>2]}Tb(F[s+4>>2],a);F[s+8>>2]=F[s+8>>2]+1;a=1}D[k+44|0]=a;F[k+40>>2]=c;ea=q+16|0;a=F[d+4>>2];E:{if(a){while(1){d=a;a=F[a>>2];if(a){continue}break E}}while(1){a=d;d=F[d+8>>2];if((a|0)!=F[d>>2]){continue}break}}if((d|0)!=(v|0)){continue}break}b=F[k+8>>2]}d=f;a=F[d>>2];F:{G:{if(!a){break G}while(1){d=a;a=F[a+16>>2];if((a|0)>(b|0)){f=d;a=F[d>>2];if(a){continue}break G}if((a|0)>=(b|0)){a=d;break F}a=F[d+4>>2];if(a){continue}break}f=d+4|0}a=sa(32);F[a+16>>2]=b;F[a+20>>2]=F[k+12>>2];b=a+24|0;c=F[k+16>>2];F[b>>2]=c;e=F[k+20>>2];F[a+28>>2]=e;H:{if(!e){F[a+20>>2]=b;break H}F[c+8>>2]=b;F[k+16>>2]=0;F[k+20>>2]=0;F[k+12>>2]=p}F[a+8>>2]=d;F[a>>2]=0;F[a+4>>2]=0;F[f>>2]=a;d=a;b=F[F[m+12>>2]>>2];if(b){F[m+12>>2]=b;d=F[f>>2]}Tb(F[m+16>>2],d);F[m+20>>2]=F[m+20>>2]+1}Lb(s,F[k+16>>2]);Lb(u,F[u+4>>2])}ea=k+48|0;e=ea-48|0;ea=e;f=ea-32|0;ea=f;d=f+21|0;h=f+32|0;c=h;I:{if((d|0)==(c|0)){break I}}b=c-d|0;J:{if((b|0)<=9){p=61;if((b|0)<(I[3712]<=1|0)){break J}}D[d|0]=49;c=d+1|0;p=0}F[f+12>>2]=p;F[f+8>>2]=c;p=ea-16|0;ea=p;b=e+8|0;m=ea-16|0;ea=m;K:{g=F[f+8>>2];f=g-d|0;if(f>>>0<=4294967279){L:{if(f>>>0<11){D[b+11|0]=f;c=b;break L}if(f>>>0>=11){k=f+16&-16;c=k-1|0;c=(c|0)==11?k:c}else{c=10}k=c+1|0;c=sa(k);F[b>>2]=c;F[b+8>>2]=k|-2147483648;F[b+4>>2]=f}while(1){if((d|0)!=(g|0)){D[c|0]=G[d|0];c=c+1|0;d=d+1|0;continue}break}D[m+15|0]=0;D[c|0]=G[m+15|0];ea=m+16|0;break K}Pa();V()}ea=p+16|0;ea=h;F[e+32>>2]=o;M:{N:{c=a+20|0;a=F[c+4>>2];O:{if(!a){b=c+4|0;d=b;break O}b=G[o+11|0];d=b<<24>>24<0;m=d?F[o>>2]:o;f=d?F[o+4>>2]:b;while(1){d=a;h=G[a+27|0];b=h<<24>>24<0;a=b?F[a+20>>2]:h;h=a>>>0>>0;P:{Q:{R:{S:{p=h?a:f;T:{if(p){g=d+16|0;b=b?F[g>>2]:g;g=Ha(m,b,p);if(!g){if(a>>>0>f>>>0){break T}break S}if((g|0)>=0){break S}break T}if(a>>>0<=f>>>0){break R}}b=d;a=F[b>>2];if(a){continue}break O}a=Ha(b,m,p);if(a){break Q}}if(h){break P}break N}if((a|0)>=0){break N}}a=F[d+4>>2];if(a){continue}break}b=d+4|0}a=sa(40);m=a+16|0;f=F[e+32>>2];U:{if(D[f+11|0]>=0){h=F[f+4>>2];F[m>>2]=F[f>>2];F[m+4>>2]=h;F[m+8>>2]=F[f+8>>2];break U}Ba(m,F[f>>2],F[f+4>>2])}F[a+8>>2]=d;F[a>>2]=0;F[a+4>>2]=0;F[a+36>>2]=0;F[a+28>>2]=0;F[a+32>>2]=0;F[b>>2]=a;d=a;f=F[F[c>>2]>>2];if(f){F[c>>2]=f;d=F[b>>2]}Tb(F[c+4>>2],d);F[c+8>>2]=F[c+8>>2]+1;b=1;break M}a=d;b=0}D[e+44|0]=b;F[e+40>>2]=a;a=F[e+40>>2];if(D[a+39|0]<0){ra(F[a+28>>2])}b=F[e+12>>2];F[a+28>>2]=F[e+8>>2];F[a+32>>2]=b;F[a+36>>2]=F[e+16>>2];ea=e+48|0;if(D[o+11|0]<0){ra(F[o>>2])}ea=o+16|0}function vd(a,b,c){var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0;h=F[b+12>>2];f=F[b+20>>2];j=F[b+16>>2];e=j+4|0;f=e>>>0<4?f+1|0:f;a:{if(e>>>0>I[b+8>>2]&(f|0)>=(h|0)|(f|0)>(h|0)){break a}f=j+F[b>>2]|0;F[a>>2]=G[f|0]|G[f+1|0]<<8|(G[f+2|0]<<16|G[f+3|0]<<24);f=F[b+20>>2];h=f;e=F[b+16>>2];j=e+4|0;f=j>>>0<4?f+1|0:f;m=j;F[b+16>>2]=j;F[b+20>>2]=f;if(I[a>>2]>32){break a}j=F[b+12>>2];f=h;h=e+8|0;f=h>>>0<8?f+1|0:f;if(h>>>0>I[b+8>>2]&(f|0)>=(j|0)|(f|0)>(j|0)){break a}d=m+F[b>>2]|0;f=G[d|0]|G[d+1|0]<<8|(G[d+2|0]<<16|G[d+3|0]<<24);F[a+4>>2]=f;d=F[b+20>>2];h=F[b+16>>2]+4|0;d=h>>>0<4?d+1|0:d;F[b+16>>2]=h;F[b+20>>2]=d;if(!f){return 1}d=0;F[a+8>>2]=0;if(!vb(a+16|0,b)){break a}if(!xa(a+544|0,b)){break a}if(!xa(a+564|0,b)){break a}if(!xa(a+584|0,b)){break a}q=F[a+4>>2];b=0;e=ea-32|0;ea=e;f=a;d=F[a+12>>2];F[e+16>>2]=0;F[e+8>>2]=0;F[e+12>>2]=0;b:{c:{if(d){if(d>>>0>=1073741824){break c}a=d<<2;g=sa(a);F[e+8>>2]=g;b=a+g|0;F[e+16>>2]=b;ua(g,0,a);F[e+12>>2]=b}a=F[f+628>>2];h=F[a>>2];if(h){F[a+4>>2]=h;ra(h);F[a+8>>2]=0;F[a>>2]=0;F[a+4>>2]=0;d=F[f+12>>2];g=F[e+8>>2];b=F[e+12>>2]}F[a+4>>2]=b;F[a>>2]=g;F[a+8>>2]=F[e+16>>2];g=0;F[e+16>>2]=0;F[e+8>>2]=0;F[e+12>>2]=0;d:{if(d){if(d>>>0>=1073741824){break d}a=d<<2;i=sa(a);F[e+8>>2]=i;g=a+i|0;F[e+16>>2]=g;ua(i,0,a);F[e+12>>2]=g}a=F[f+640>>2];b=F[a>>2];if(b){F[a+4>>2]=b;ra(b);F[a+8>>2]=0;F[a>>2]=0;F[a+4>>2]=0;i=F[e+8>>2];g=F[e+12>>2]}F[a+4>>2]=g;F[a>>2]=i;F[a+8>>2]=F[e+16>>2];F[e+24>>2]=0;F[e+28>>2]=0;F[e+16>>2]=0;F[e+20>>2]=0;F[e+8>>2]=0;F[e+12>>2]=0;ya(e+8|0);a=F[e+24>>2]+F[e+28>>2]|0;b=(a>>>0)/341|0;a=F[F[e+12>>2]+(b<<2)>>2]+L(a-L(b,341)|0,12)|0;F[a+4>>2]=0;F[a+8>>2]=0;F[a>>2]=q;b=1;d=F[e+28>>2]+1|0;F[e+28>>2]=d;e:{if(!d){break e}s=f+16|0;while(1){a=F[e+12>>2];g=F[e+24>>2];i=d-1|0;b=g+i|0;h=(b>>>0)/341|0;b=F[a+(h<<2)>>2]+L(b-L(h,341)|0,12)|0;h=F[b+8>>2];j=F[b+4>>2];m=F[b>>2];F[e+28>>2]=i;b=F[e+16>>2];if((((a|0)==(b|0)?0:L(b-a>>2,341)-1|0)-(d+g|0)|0)+1>>>0>=682){ra(F[b-4>>2]);F[e+16>>2]=F[e+16>>2]-4}b=0;if(m>>>0>q>>>0){break e}a=F[f+12>>2];i=(j|0)==(a-1|0)?0:j+1|0;if(i>>>0>=a>>>0){break e}j=L(h,12);o=j+F[f+640>>2]|0;n=j+F[f+628>>2]|0;d=F[f>>2];k=i<<2;g=F[k+F[o>>2]>>2];f:{g:{if((d|0)==(g|0)){k=0;if(!m){break g}while(1){a=0;d=F[c+16>>2];h:{if((d|0)==F[c+20>>2]){break h}while(1){i=L(a,20)+d|0;j=F[n>>2]+(F[i+4>>2]<<2)|0;l=F[i>>2];b=F[i+12>>2];h=j;i:{if(b>>>0>3){break i}d=0;g=F[c+12>>2];h=g;if(!F[i+16>>2]){break i}while(1){h=ta(g,j+(d<<2)|0,b);b=F[i+12>>2];g=h+b|0;d=d+1|0;if(d>>>0>2]){continue}break}h=F[c+12>>2]}d=F[c+28>>2];d=G[l+84|0]?d:F[F[l+68>>2]+(d<<2)>>2];if(d>>>0>=I[l+80>>2]){break h}b=F[l+40>>2];ta(F[F[l>>2]>>2]+L(b,d)|0,h,b);a=a+1|0;d=F[c+16>>2];if(a>>>0<(F[c+20>>2]-d|0)/20>>>0){continue}break}}F[c+28>>2]=F[c+28>>2]+1;F[f+8>>2]=F[f+8>>2]+1;k=k+1|0;if((m|0)!=(k|0)){continue}break}break g}j:{k:{l:{if(m>>>0<=2){a=F[f+616>>2];F[a>>2]=i;d=1;g=F[f+12>>2];if(g>>>0>1){break l}break j}if(I[f+8>>2]>I[f+4>>2]){break e}a=F[f+628>>2];o=h+1|0;l=L(o,12);b=a+l|0;if((b|0)!=(n|0)){Ca(b,F[n>>2],F[n+4>>2]);a=F[f+628>>2]}a=k+F[a+l>>2]|0;F[a>>2]=F[a>>2]+(1<>>1|0;break k}while(1){g=Da((d<<4)+s|0)|g<<1;d=d+1|0;if((a|0)!=(d|0)){continue}break}d=m>>>1|0;if(g>>>0<=d>>>0){break k}b=0;break e}while(1){i=(g-1|0)==(i|0)?0:i+1|0;F[a+(d<<2)>>2]=i;d=d+1|0;g=F[f+12>>2];if(d>>>0>>0){continue}break}break j}m:{n:{a=d-g|0;d=m-a|0;o:{if((d|0)==(a|0)){b=a;break o}b=F[f+596>>2];if((b|0)==F[f+588>>2]){break n}g=F[b>>2];m=F[f+600>>2];n=m+1|0;F[f+600>>2]=n;g=g&-2147483648>>>m;p:{if((n|0)==32){F[f+600>>2]=0;F[f+596>>2]=b+4;if(g){break p}break n}if(!g){break n}}b=d}d=a;break m}b=a}a=F[f+640>>2];j=a+j|0;g=F[j>>2];m=g+k|0;F[m>>2]=F[m>>2]+1;Ca(a+l|0,g,F[j+4>>2]);if(d){k=F[e+28>>2]+F[e+24>>2]|0;a=F[e+16>>2];g=F[e+12>>2];if((k|0)==(((a|0)==(g|0)?0:L(a-g>>2,341)-1|0)|0)){ya(e+8|0);k=F[e+24>>2]+F[e+28>>2]|0;g=F[e+12>>2]}a=(k>>>0)/341|0;a=F[g+(a<<2)>>2]+L(k-L(a,341)|0,12)|0;F[a+8>>2]=h;F[a+4>>2]=i;F[a>>2]=d;F[e+28>>2]=F[e+28>>2]+1}if(!b){break g}g=F[e+28>>2]+F[e+24>>2]|0;a=F[e+16>>2];d=F[e+12>>2];if((g|0)==(((a|0)==(d|0)?0:L(a-d>>2,341)-1|0)|0)){ya(e+8|0);g=F[e+24>>2]+F[e+28>>2]|0;d=F[e+12>>2]}a=(g>>>0)/341|0;a=F[d+(a<<2)>>2]+L(g-L(a,341)|0,12)|0;F[a+8>>2]=o;F[a+4>>2]=i;F[a>>2]=b;d=F[e+28>>2]+1|0;F[e+28>>2]=d;break f}i=0;if(!m){break g}while(1){if(F[f+12>>2]){t=F[n>>2];j=F[f+548>>2];u=F[o>>2];h=F[f+604>>2];v=F[f+616>>2];d=0;while(1){g=(d<<2)+v|0;F[h+(F[g>>2]<<2)>>2]=0;b=F[f>>2];a=F[g>>2]<<2;k=F[a+u>>2];q:{if((b|0)==(k|0)){break q}a=a+h|0;b=b-k|0;k=F[f+560>>2];p=32-k|0;if((b|0)<=(p|0)){l=F[f+556>>2];if((l|0)==(j|0)){F[a>>2]=0;break q}F[a>>2]=F[l>>2]<>>32-b;a=b+F[f+560>>2]|0;F[f+560>>2]=a;if((a|0)!=32){break q}F[f+560>>2]=0;F[f+556>>2]=l+4;break q}l=F[f+556>>2];r=l+4|0;if((j|0)==(r|0)){F[a>>2]=0;break q}w=F[l>>2];F[f+556>>2]=r;p=b-p|0;F[f+560>>2]=p;F[a>>2]=F[l+4>>2]>>>32-p|w<>>32-b}a=F[g>>2]<<2;b=a+h|0;F[b>>2]=F[b>>2]|F[a+t>>2];d=d+1|0;if(d>>>0>2]){continue}break}}a=0;d=F[c+16>>2];r:{if((d|0)==F[c+20>>2]){break r}while(1){k=L(a,20)+d|0;j=F[f+604>>2]+(F[k+4>>2]<<2)|0;l=F[k>>2];b=F[k+12>>2];h=j;s:{if(b>>>0>3){break s}d=0;g=F[c+12>>2];h=g;if(!F[k+16>>2]){break s}while(1){h=ta(g,j+(d<<2)|0,b);b=F[k+12>>2];g=h+b|0;d=d+1|0;if(d>>>0>2]){continue}break}h=F[c+12>>2]}d=F[c+28>>2];d=G[l+84|0]?d:F[F[l+68>>2]+(d<<2)>>2];if(d>>>0>=I[l+80>>2]){break r}b=F[l+40>>2];ta(F[F[l>>2]>>2]+L(b,d)|0,h,b);a=a+1|0;d=F[c+16>>2];if(a>>>0<(F[c+20>>2]-d|0)/20>>>0){continue}break}}F[c+28>>2]=F[c+28>>2]+1;F[f+8>>2]=F[f+8>>2]+1;i=i+1|0;if((m|0)!=(i|0)){continue}break}}d=F[e+28>>2]}if(d){continue}break}b=1}F[e+28>>2]=0;i=F[e+16>>2];d=F[e+12>>2];g=i-d|0;if(g>>>0>=9){while(1){ra(F[d>>2]);d=F[e+12>>2]+4|0;F[e+12>>2]=d;i=F[e+16>>2];g=i-d|0;if(g>>>0>8){continue}break}}a=170;t:{switch((g>>>2|0)-1|0){case 1:a=341;case 0:F[e+24>>2]=a;break;default:break t}}u:{if((d|0)==(i|0)){break u}while(1){ra(F[d>>2]);d=d+4|0;if((i|0)!=(d|0)){continue}break}a=F[e+16>>2];c=F[e+12>>2];if((a|0)==(c|0)){break u}F[e+16>>2]=a+((c-a|0)+3&-4)}a=F[e+8>>2];if(a){ra(a)}ea=e+32|0;break b}va();V()}va();V()}d=b}return d}function ud(a,b,c){var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0;h=F[b+12>>2];g=F[b+20>>2];e=F[b+16>>2];l=e+4|0;g=l>>>0<4?g+1|0:g;a:{if(l>>>0>I[b+8>>2]&(g|0)>=(h|0)|(g|0)>(h|0)){break a}g=e+F[b>>2]|0;F[a>>2]=G[g|0]|G[g+1|0]<<8|(G[g+2|0]<<16|G[g+3|0]<<24);g=F[b+20>>2];h=g;l=F[b+16>>2];e=l+4|0;g=e>>>0<4?g+1|0:g;k=e;F[b+16>>2]=e;F[b+20>>2]=g;if(I[a>>2]>32){break a}e=F[b+12>>2];g=h;h=l+8|0;g=h>>>0<8?g+1|0:g;if((e|0)<=(g|0)&h>>>0>I[b+8>>2]|(e|0)<(g|0)){break a}d=k+F[b>>2]|0;g=G[d|0]|G[d+1|0]<<8|(G[d+2|0]<<16|G[d+3|0]<<24);F[a+4>>2]=g;d=F[b+20>>2];h=F[b+16>>2]+4|0;d=h>>>0<4?d+1|0:d;F[b+16>>2]=h;F[b+20>>2]=d;if(!g){return 1}d=0;F[a+8>>2]=0;if(!vb(a+16|0,b)){break a}if(!xa(a+544|0,b)){break a}if(!xa(a+564|0,b)){break a}if(!xa(a+584|0,b)){break a}q=F[a+4>>2];e=ea-32|0;ea=e;g=a;d=F[a+12>>2];F[e+16>>2]=0;F[e+8>>2]=0;F[e+12>>2]=0;b:{c:{if(d){if(d>>>0>=1073741824){break c}a=d<<2;f=sa(a);F[e+8>>2]=f;i=a+f|0;F[e+16>>2]=i;ua(f,0,a);F[e+12>>2]=i}a=F[g+628>>2];b=F[a>>2];if(b){F[a+4>>2]=b;ra(b);F[a+8>>2]=0;F[a>>2]=0;F[a+4>>2]=0;i=F[e+12>>2];f=F[e+8>>2];d=F[g+12>>2]}F[a+4>>2]=i;F[a>>2]=f;F[a+8>>2]=F[e+16>>2];f=0;F[e+16>>2]=0;F[e+8>>2]=0;F[e+12>>2]=0;d:{if(d){if(d>>>0>=1073741824){break d}a=d<<2;j=sa(a);F[e+8>>2]=j;f=a+j|0;F[e+16>>2]=f;ua(j,0,a);F[e+12>>2]=f}a=F[g+640>>2];b=F[a>>2];if(b){F[a+4>>2]=b;ra(b);F[a+8>>2]=0;F[a>>2]=0;F[a+4>>2]=0;f=F[e+12>>2];j=F[e+8>>2]}F[a+4>>2]=f;F[a>>2]=j;F[a+8>>2]=F[e+16>>2];F[e+24>>2]=0;F[e+28>>2]=0;F[e+16>>2]=0;F[e+20>>2]=0;F[e+8>>2]=0;F[e+12>>2]=0;ya(e+8|0);a=F[e+24>>2]+F[e+28>>2]|0;b=(a>>>0)/341|0;a=F[F[e+12>>2]+(b<<2)>>2]+L(a-L(b,341)|0,12)|0;F[a+4>>2]=0;F[a+8>>2]=0;F[a>>2]=q;b=1;d=F[e+28>>2]+1|0;F[e+28>>2]=d;e:{if(!d){break e}t=g+16|0;while(1){a=F[e+12>>2];f=F[e+24>>2];i=d-1|0;b=f+i|0;h=(b>>>0)/341|0;b=F[a+(h<<2)>>2]+L(b-L(h,341)|0,12)|0;h=F[b+8>>2];j=F[b+4>>2];l=F[b>>2];F[e+28>>2]=i;b=F[e+16>>2];if((((a|0)==(b|0)?0:L(b-a>>2,341)-1|0)-(d+f|0)|0)+1>>>0>=682){ra(F[b-4>>2]);F[e+16>>2]=F[e+16>>2]-4}if(l>>>0>q>>>0){b=0;break e}b=0;a=F[g+12>>2];j=(j|0)==(a-1|0)?0:j+1|0;if(j>>>0>=a>>>0){break e}a=F[g+628>>2];i=L(h,12);n=a+i|0;d=F[g>>2];k=j<<2;r=i+F[g+640>>2]|0;f=F[k+F[r>>2]>>2];f:{g:{if((d|0)==(f|0)){a=0;if(!l){break g}while(1){b=0;d=F[c+16>>2];h:{if((d|0)==F[c+20>>2]){break h}while(1){k=L(b,20)+d|0;j=F[n>>2]+(F[k+4>>2]<<2)|0;m=F[k>>2];i=F[k+12>>2];h=j;i:{if(i>>>0>3){break i}d=0;f=F[c+12>>2];h=f;if(!F[k+16>>2]){break i}while(1){h=ta(f,j+(d<<2)|0,i);i=F[k+12>>2];f=h+i|0;d=d+1|0;if(d>>>0>2]){continue}break}h=F[c+12>>2]}d=F[c+28>>2];d=G[m+84|0]?d:F[F[m+68>>2]+(d<<2)>>2];if(d>>>0>=I[m+80>>2]){break h}f=d;d=F[m+40>>2];ta(F[F[m>>2]>>2]+L(f,d)|0,h,d);b=b+1|0;d=F[c+16>>2];if(b>>>0<(F[c+20>>2]-d|0)/20>>>0){continue}break}}F[c+28>>2]=F[c+28>>2]+1;F[g+8>>2]=F[g+8>>2]+1;a=a+1|0;if((l|0)!=(a|0)){continue}break}break g}j:{k:{l:{if(l>>>0<=2){a=F[g+616>>2];F[a>>2]=j;d=1;f=F[g+12>>2];if(f>>>0>1){break l}break j}if(I[g+8>>2]>I[g+4>>2]){break e}o=a;a=i+12|0;Ca(o+a|0,F[n>>2],F[n+4>>2]);a=k+F[a+F[g+628>>2]>>2]|0;F[a>>2]=F[a>>2]+(1<>>1|0;break k}while(1){f=Da((d<<4)+t|0)|f<<1;d=d+1|0;if((a|0)!=(d|0)){continue}break}d=l>>>1|0;if(f>>>0<=d>>>0){break k}break e}while(1){j=(f-1|0)==(j|0)?0:j+1|0;F[a+(d<<2)>>2]=j;d=d+1|0;f=F[g+12>>2];if(d>>>0>>0){continue}break}break j}m=h+1|0;m:{n:{a=d-f|0;d=l-a|0;o:{if((d|0)==(a|0)){b=a;break o}b=F[g+596>>2];if((b|0)==F[g+588>>2]){break n}f=F[b>>2];l=F[g+600>>2];n=l+1|0;F[g+600>>2]=n;f=f&-2147483648>>>l;p:{if((n|0)==32){F[g+600>>2]=0;F[g+596>>2]=b+4;if(f){break p}break n}if(!f){break n}}b=d}d=a;break m}b=a}a=F[g+640>>2];f=a+i|0;i=F[f>>2];l=i+k|0;F[l>>2]=F[l>>2]+1;Ca(a+L(m,12)|0,i,F[f+4>>2]);if(d){a=F[e+28>>2]+F[e+24>>2]|0;i=F[e+16>>2];f=F[e+12>>2];if((a|0)==(((f|0)==(i|0)?0:L(i-f>>2,341)-1|0)|0)){ya(e+8|0);f=F[e+12>>2];a=F[e+24>>2]+F[e+28>>2]|0}o=f;f=(a>>>0)/341|0;a=F[o+(f<<2)>>2]+L(a-L(f,341)|0,12)|0;F[a+8>>2]=h;F[a+4>>2]=j;F[a>>2]=d;F[e+28>>2]=F[e+28>>2]+1}if(!b){break g}f=F[e+28>>2]+F[e+24>>2]|0;a=F[e+16>>2];d=F[e+12>>2];if((f|0)==(((a|0)==(d|0)?0:L(a-d>>2,341)-1|0)|0)){ya(e+8|0);f=F[e+24>>2]+F[e+28>>2]|0;d=F[e+12>>2]}a=(f>>>0)/341|0;a=F[d+(a<<2)>>2]+L(f-L(a,341)|0,12)|0;F[a+8>>2]=m;F[a+4>>2]=j;F[a>>2]=b;d=F[e+28>>2]+1|0;F[e+28>>2]=d;break f}a=0;if(!l){break g}while(1){if(F[g+12>>2]){u=F[n>>2];f=F[g+548>>2];v=F[r>>2];j=F[g+604>>2];w=F[g+616>>2];d=0;while(1){i=(d<<2)+w|0;F[j+(F[i>>2]<<2)>>2]=0;h=F[g>>2];b=F[i>>2]<<2;k=F[b+v>>2];q:{if((h|0)==(k|0)){break q}b=b+j|0;h=h-k|0;k=F[g+560>>2];p=32-k|0;if((h|0)<=(p|0)){m=F[g+556>>2];if((m|0)==(f|0)){F[b>>2]=0;break q}F[b>>2]=F[m>>2]<>>32-h;b=h+F[g+560>>2]|0;F[g+560>>2]=b;if((b|0)!=32){break q}F[g+560>>2]=0;F[g+556>>2]=m+4;break q}m=F[g+556>>2];s=m+4|0;if((f|0)==(s|0)){F[b>>2]=0;break q}o=F[m>>2];F[g+556>>2]=s;p=h-p|0;F[g+560>>2]=p;F[b>>2]=F[m+4>>2]>>>32-p|o<>>32-h}b=F[i>>2]<<2;h=b+j|0;F[h>>2]=F[h>>2]|F[b+u>>2];d=d+1|0;if(d>>>0>2]){continue}break}}b=0;d=F[c+16>>2];r:{if((d|0)==F[c+20>>2]){break r}while(1){k=L(b,20)+d|0;j=F[g+604>>2]+(F[k+4>>2]<<2)|0;m=F[k>>2];i=F[k+12>>2];h=j;s:{if(i>>>0>3){break s}d=0;f=F[c+12>>2];h=f;if(!F[k+16>>2]){break s}while(1){h=ta(f,j+(d<<2)|0,i);i=F[k+12>>2];f=h+i|0;d=d+1|0;if(d>>>0>2]){continue}break}h=F[c+12>>2]}d=F[c+28>>2];d=G[m+84|0]?d:F[F[m+68>>2]+(d<<2)>>2];if(d>>>0>=I[m+80>>2]){break r}f=d;d=F[m+40>>2];ta(F[F[m>>2]>>2]+L(f,d)|0,h,d);b=b+1|0;d=F[c+16>>2];if(b>>>0<(F[c+20>>2]-d|0)/20>>>0){continue}break}}F[c+28>>2]=F[c+28>>2]+1;F[g+8>>2]=F[g+8>>2]+1;a=a+1|0;if((l|0)!=(a|0)){continue}break}}d=F[e+28>>2]}if(d){continue}break}b=1}F[e+28>>2]=0;j=F[e+16>>2];d=F[e+12>>2];f=j-d|0;if(f>>>0>=9){while(1){ra(F[d>>2]);d=F[e+12>>2]+4|0;F[e+12>>2]=d;j=F[e+16>>2];f=j-d|0;if(f>>>0>8){continue}break}}i=170;t:{switch((f>>>2|0)-1|0){case 1:i=341;case 0:F[e+24>>2]=i;break;default:break t}}u:{if((d|0)==(j|0)){break u}while(1){ra(F[d>>2]);d=d+4|0;if((j|0)!=(d|0)){continue}break}a=F[e+16>>2];c=F[e+12>>2];if((a|0)==(c|0)){break u}F[e+16>>2]=a+((c-a|0)+3&-4)}a=F[e+8>>2];if(a){ra(a)}ea=e+32|0;break b}va();V()}va();V()}d=b}return d} -function td(a,b,c){var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0;h=F[b+12>>2];f=F[b+20>>2];j=F[b+16>>2];e=j+4|0;f=e>>>0<4?f+1|0:f;a:{if(e>>>0>I[b+8>>2]&(f|0)>=(h|0)|(f|0)>(h|0)){break a}f=j+F[b>>2]|0;F[a>>2]=G[f|0]|G[f+1|0]<<8|(G[f+2|0]<<16|G[f+3|0]<<24);f=F[b+20>>2];h=f;e=F[b+16>>2];j=e+4|0;f=j>>>0<4?f+1|0:f;m=j;F[b+16>>2]=j;F[b+20>>2]=f;if(I[a>>2]>32){break a}j=F[b+12>>2];f=h;h=e+8|0;f=h>>>0<8?f+1|0:f;if(h>>>0>I[b+8>>2]&(f|0)>=(j|0)|(f|0)>(j|0)){break a}d=m+F[b>>2]|0;f=G[d|0]|G[d+1|0]<<8|(G[d+2|0]<<16|G[d+3|0]<<24);F[a+4>>2]=f;d=F[b+20>>2];h=F[b+16>>2]+4|0;d=h>>>0<4?d+1|0:d;F[b+16>>2]=h;F[b+20>>2]=d;if(!f){return 1}d=0;F[a+8>>2]=0;if(!vb(a+16|0,b)){break a}if(!xa(a+544|0,b)){break a}if(!xa(a+564|0,b)){break a}if(!xa(a+584|0,b)){break a}q=F[a+4>>2];b=0;e=ea-32|0;ea=e;f=a;d=F[a+12>>2];F[e+16>>2]=0;F[e+8>>2]=0;F[e+12>>2]=0;b:{c:{if(d){if(d>>>0>=1073741824){break c}a=d<<2;g=sa(a);F[e+8>>2]=g;b=a+g|0;F[e+16>>2]=b;ua(g,0,a);F[e+12>>2]=b}a=F[f+628>>2];h=F[a>>2];if(h){F[a+4>>2]=h;ra(h);F[a+8>>2]=0;F[a>>2]=0;F[a+4>>2]=0;d=F[f+12>>2];g=F[e+8>>2];b=F[e+12>>2]}F[a+4>>2]=b;F[a>>2]=g;F[a+8>>2]=F[e+16>>2];g=0;F[e+16>>2]=0;F[e+8>>2]=0;F[e+12>>2]=0;d:{if(d){if(d>>>0>=1073741824){break d}a=d<<2;i=sa(a);F[e+8>>2]=i;g=a+i|0;F[e+16>>2]=g;ua(i,0,a);F[e+12>>2]=g}a=F[f+640>>2];b=F[a>>2];if(b){F[a+4>>2]=b;ra(b);F[a+8>>2]=0;F[a>>2]=0;F[a+4>>2]=0;i=F[e+8>>2];g=F[e+12>>2]}F[a+4>>2]=g;F[a>>2]=i;F[a+8>>2]=F[e+16>>2];F[e+24>>2]=0;F[e+28>>2]=0;F[e+16>>2]=0;F[e+20>>2]=0;F[e+8>>2]=0;F[e+12>>2]=0;ya(e+8|0);a=F[e+24>>2]+F[e+28>>2]|0;b=(a>>>0)/341|0;a=F[F[e+12>>2]+(b<<2)>>2]+L(a-L(b,341)|0,12)|0;F[a+4>>2]=0;F[a+8>>2]=0;F[a>>2]=q;b=1;d=F[e+28>>2]+1|0;F[e+28>>2]=d;e:{if(!d){break e}s=f+16|0;while(1){a=F[e+12>>2];j=F[e+24>>2];b=d-1|0;h=j+b|0;g=(h>>>0)/341|0;g=F[a+(g<<2)>>2]+L(h-L(g,341)|0,12)|0;h=F[g+8>>2];m=F[g>>2];F[e+28>>2]=b;b=F[e+16>>2];if((((a|0)==(b|0)?0:L(b-a>>2,341)-1|0)-(d+j|0)|0)+1>>>0>=682){ra(F[b-4>>2]);F[e+16>>2]=F[e+16>>2]-4}b=0;if(m>>>0>q>>>0){break e}a=F[f+628>>2];j=L(h,12);o=j+F[f+640>>2]|0;i=Ud(f,m,o);if(i>>>0>=I[f+12>>2]){break e}n=a+j|0;d=F[f>>2];k=i<<2;g=F[k+F[o>>2]>>2];f:{g:{if((d|0)==(g|0)){k=0;if(!m){break g}while(1){a=0;d=F[c+16>>2];h:{if((d|0)==F[c+20>>2]){break h}while(1){i=L(a,20)+d|0;j=F[n>>2]+(F[i+4>>2]<<2)|0;l=F[i>>2];b=F[i+12>>2];h=j;i:{if(b>>>0>3){break i}d=0;g=F[c+12>>2];h=g;if(!F[i+16>>2]){break i}while(1){h=ta(g,j+(d<<2)|0,b);b=F[i+12>>2];g=h+b|0;d=d+1|0;if(d>>>0>2]){continue}break}h=F[c+12>>2]}d=F[c+28>>2];d=G[l+84|0]?d:F[F[l+68>>2]+(d<<2)>>2];if(d>>>0>=I[l+80>>2]){break h}b=F[l+40>>2];ta(F[F[l>>2]>>2]+L(b,d)|0,h,b);a=a+1|0;d=F[c+16>>2];if(a>>>0<(F[c+20>>2]-d|0)/20>>>0){continue}break}}F[c+28>>2]=F[c+28>>2]+1;F[f+8>>2]=F[f+8>>2]+1;k=k+1|0;if((m|0)!=(k|0)){continue}break}break g}j:{k:{l:{if(m>>>0<=2){a=F[f+616>>2];F[a>>2]=i;d=1;g=F[f+12>>2];if(g>>>0>1){break l}break j}if(I[f+8>>2]>I[f+4>>2]){break e}a=F[f+628>>2];o=h+1|0;l=L(o,12);b=a+l|0;if((b|0)!=(n|0)){Ca(b,F[n>>2],F[n+4>>2]);a=F[f+628>>2]}a=k+F[a+l>>2]|0;F[a>>2]=F[a>>2]+(1<>>1|0;break k}while(1){g=Da((d<<4)+s|0)|g<<1;d=d+1|0;if((a|0)!=(d|0)){continue}break}d=m>>>1|0;if(g>>>0<=d>>>0){break k}b=0;break e}while(1){i=(g-1|0)==(i|0)?0:i+1|0;F[a+(d<<2)>>2]=i;d=d+1|0;g=F[f+12>>2];if(d>>>0>>0){continue}break}break j}m:{n:{a=d-g|0;d=m-a|0;o:{if((d|0)==(a|0)){b=a;break o}b=F[f+596>>2];if((b|0)==F[f+588>>2]){break n}g=F[b>>2];m=F[f+600>>2];n=m+1|0;F[f+600>>2]=n;g=g&-2147483648>>>m;p:{if((n|0)==32){F[f+600>>2]=0;F[f+596>>2]=b+4;if(g){break p}break n}if(!g){break n}}b=d}d=a;break m}b=a}a=F[f+640>>2];j=a+j|0;g=F[j>>2];m=g+k|0;F[m>>2]=F[m>>2]+1;Ca(a+l|0,g,F[j+4>>2]);if(d){k=F[e+28>>2]+F[e+24>>2]|0;a=F[e+16>>2];g=F[e+12>>2];if((k|0)==(((a|0)==(g|0)?0:L(a-g>>2,341)-1|0)|0)){ya(e+8|0);k=F[e+24>>2]+F[e+28>>2]|0;g=F[e+12>>2]}a=(k>>>0)/341|0;a=F[g+(a<<2)>>2]+L(k-L(a,341)|0,12)|0;F[a+8>>2]=h;F[a+4>>2]=i;F[a>>2]=d;F[e+28>>2]=F[e+28>>2]+1}if(!b){break g}g=F[e+28>>2]+F[e+24>>2]|0;a=F[e+16>>2];d=F[e+12>>2];if((g|0)==(((a|0)==(d|0)?0:L(a-d>>2,341)-1|0)|0)){ya(e+8|0);g=F[e+24>>2]+F[e+28>>2]|0;d=F[e+12>>2]}a=(g>>>0)/341|0;a=F[d+(a<<2)>>2]+L(g-L(a,341)|0,12)|0;F[a+8>>2]=o;F[a+4>>2]=i;F[a>>2]=b;d=F[e+28>>2]+1|0;F[e+28>>2]=d;break f}i=0;if(!m){break g}while(1){if(F[f+12>>2]){t=F[n>>2];j=F[f+548>>2];u=F[o>>2];h=F[f+604>>2];v=F[f+616>>2];d=0;while(1){g=(d<<2)+v|0;F[h+(F[g>>2]<<2)>>2]=0;b=F[f>>2];a=F[g>>2]<<2;k=F[a+u>>2];q:{if((b|0)==(k|0)){break q}a=a+h|0;b=b-k|0;k=F[f+560>>2];p=32-k|0;if((b|0)<=(p|0)){l=F[f+556>>2];if((l|0)==(j|0)){F[a>>2]=0;break q}F[a>>2]=F[l>>2]<>>32-b;a=b+F[f+560>>2]|0;F[f+560>>2]=a;if((a|0)!=32){break q}F[f+560>>2]=0;F[f+556>>2]=l+4;break q}l=F[f+556>>2];r=l+4|0;if((j|0)==(r|0)){F[a>>2]=0;break q}w=F[l>>2];F[f+556>>2]=r;p=b-p|0;F[f+560>>2]=p;F[a>>2]=F[l+4>>2]>>>32-p|w<>>32-b}a=F[g>>2]<<2;b=a+h|0;F[b>>2]=F[b>>2]|F[a+t>>2];d=d+1|0;if(d>>>0>2]){continue}break}}a=0;d=F[c+16>>2];r:{if((d|0)==F[c+20>>2]){break r}while(1){k=L(a,20)+d|0;j=F[f+604>>2]+(F[k+4>>2]<<2)|0;l=F[k>>2];b=F[k+12>>2];h=j;s:{if(b>>>0>3){break s}d=0;g=F[c+12>>2];h=g;if(!F[k+16>>2]){break s}while(1){h=ta(g,j+(d<<2)|0,b);b=F[k+12>>2];g=h+b|0;d=d+1|0;if(d>>>0>2]){continue}break}h=F[c+12>>2]}d=F[c+28>>2];d=G[l+84|0]?d:F[F[l+68>>2]+(d<<2)>>2];if(d>>>0>=I[l+80>>2]){break r}b=F[l+40>>2];ta(F[F[l>>2]>>2]+L(b,d)|0,h,b);a=a+1|0;d=F[c+16>>2];if(a>>>0<(F[c+20>>2]-d|0)/20>>>0){continue}break}}F[c+28>>2]=F[c+28>>2]+1;F[f+8>>2]=F[f+8>>2]+1;i=i+1|0;if((m|0)!=(i|0)){continue}break}}d=F[e+28>>2]}if(d){continue}break}b=1}F[e+28>>2]=0;i=F[e+16>>2];d=F[e+12>>2];g=i-d|0;if(g>>>0>=9){while(1){ra(F[d>>2]);d=F[e+12>>2]+4|0;F[e+12>>2]=d;i=F[e+16>>2];g=i-d|0;if(g>>>0>8){continue}break}}a=170;t:{switch((g>>>2|0)-1|0){case 1:a=341;case 0:F[e+24>>2]=a;break;default:break t}}u:{if((d|0)==(i|0)){break u}while(1){ra(F[d>>2]);d=d+4|0;if((i|0)!=(d|0)){continue}break}a=F[e+16>>2];c=F[e+12>>2];if((a|0)==(c|0)){break u}F[e+16>>2]=a+((c-a|0)+3&-4)}a=F[e+8>>2];if(a){ra(a)}ea=e+32|0;break b}va();V()}va();V()}d=b}return d}function xd(a,b,c){var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0;d=F[b+12>>2];f=F[b+20>>2];e=F[b+16>>2];k=e+4|0;f=k>>>0<4?f+1|0:f;a:{if((d|0)<=(f|0)&k>>>0>I[b+8>>2]|(d|0)<(f|0)){break a}f=e+F[b>>2]|0;F[a>>2]=G[f|0]|G[f+1|0]<<8|(G[f+2|0]<<16|G[f+3|0]<<24);f=F[b+20>>2];d=f;k=F[b+16>>2];e=k+4|0;f=e>>>0<4?d+1|0:d;m=e;F[b+16>>2]=e;F[b+20>>2]=f;if(I[a>>2]>32){break a}e=F[b+12>>2];f=d;d=k+8|0;f=d>>>0<8?f+1|0:f;if(d>>>0>I[b+8>>2]&(f|0)>=(e|0)|(f|0)>(e|0)){break a}i=m+F[b>>2]|0;f=G[i|0]|G[i+1|0]<<8|(G[i+2|0]<<16|G[i+3|0]<<24);F[a+4>>2]=f;i=F[b+20>>2];d=F[b+16>>2]+4|0;i=d>>>0<4?i+1|0:i;F[b+16>>2]=d;F[b+20>>2]=i;if(!f){return 1}i=0;F[a+8>>2]=0;if(!wa(a+16|0,b)){break a}if(!xa(a+32|0,b)){break a}if(!xa(a+52|0,b)){break a}if(!xa(a+72|0,b)){break a}r=F[a+4>>2];d=ea-32|0;ea=d;f=a;e=F[a+12>>2];F[d+16>>2]=0;F[d+8>>2]=0;F[d+12>>2]=0;b:{c:{if(e){if(e>>>0>=1073741824){break c}a=e<<2;g=sa(a);F[d+8>>2]=g;j=a+g|0;F[d+16>>2]=j;ua(g,0,a);F[d+12>>2]=j}a=F[f+116>>2];b=F[a>>2];if(b){F[a+4>>2]=b;ra(b);F[a+8>>2]=0;F[a>>2]=0;F[a+4>>2]=0;j=F[d+12>>2];g=F[d+8>>2];e=F[f+12>>2]}F[a+4>>2]=j;F[a>>2]=g;F[a+8>>2]=F[d+16>>2];g=0;F[d+16>>2]=0;F[d+8>>2]=0;F[d+12>>2]=0;d:{if(e){if(e>>>0>=1073741824){break d}a=e<<2;h=sa(a);F[d+8>>2]=h;g=a+h|0;F[d+16>>2]=g;ua(h,0,a);F[d+12>>2]=g}a=F[f+128>>2];b=F[a>>2];if(b){F[a+4>>2]=b;ra(b);F[a+8>>2]=0;F[a>>2]=0;F[a+4>>2]=0;h=F[d+8>>2];g=F[d+12>>2]}F[a+4>>2]=g;F[a>>2]=h;F[a+8>>2]=F[d+16>>2];F[d+24>>2]=0;F[d+28>>2]=0;F[d+16>>2]=0;F[d+20>>2]=0;F[d+8>>2]=0;F[d+12>>2]=0;ya(d+8|0);a=F[d+24>>2]+F[d+28>>2]|0;b=(a>>>0)/341|0;a=F[F[d+12>>2]+(b<<2)>>2]+L(a-L(b,341)|0,12)|0;F[a+4>>2]=0;F[a+8>>2]=0;F[a>>2]=r;i=1;e=F[d+28>>2]+1|0;F[d+28>>2]=e;e:{if(!e){break e}t=f+16|0;while(1){a=F[d+12>>2];i=F[d+24>>2];h=e-1|0;b=i+h|0;g=(b>>>0)/341|0;b=F[a+(g<<2)>>2]+L(b-L(g,341)|0,12)|0;j=F[b+8>>2];g=F[b+4>>2];k=F[b>>2];F[d+28>>2]=h;b=F[d+16>>2];if((((a|0)==(b|0)?0:L(b-a>>2,341)-1|0)-(e+i|0)|0)+1>>>0>=682){ra(F[b-4>>2]);F[d+16>>2]=F[d+16>>2]-4}i=0;if(k>>>0>r>>>0){break e}a=F[f+12>>2];e=(a-1|0)==(g|0)?0:g+1|0;if(e>>>0>=a>>>0){break e}g=L(j,12);n=g+F[f+128>>2]|0;m=g+F[f+116>>2]|0;b=F[f>>2];h=e<<2;o=F[h+F[n>>2]>>2];f:{if((b|0)==(o|0)){if(!k){break f}b=0;if(F[c+20>>2]==F[c+16>>2]){a=F[f+8>>2];F[c+28>>2]=k+F[c+28>>2];F[f+8>>2]=a+k;break f}while(1){h=0;e=F[c+16>>2];g:{if((e|0)==F[c+20>>2]){break g}while(1){l=L(h,20)+e|0;i=F[m>>2]+(F[l+4>>2]<<2)|0;n=F[l>>2];j=F[l+12>>2];a=i;h:{if(j>>>0>3){break h}e=0;g=F[c+12>>2];a=g;if(!F[l+16>>2]){break h}while(1){a=ta(g,i+(e<<2)|0,j);j=F[l+12>>2];g=a+j|0;e=e+1|0;if(e>>>0>2]){continue}break}a=F[c+12>>2]}e=F[c+28>>2];e=G[n+84|0]?e:F[F[n+68>>2]+(e<<2)>>2];if(e>>>0>=I[n+80>>2]){break g}i=F[n+40>>2];ta(F[F[n>>2]>>2]+L(i,e)|0,a,i);h=h+1|0;e=F[c+16>>2];if(h>>>0<(F[c+20>>2]-e|0)/20>>>0){continue}break}}F[c+28>>2]=F[c+28>>2]+1;F[f+8>>2]=F[f+8>>2]+1;b=b+1|0;if((k|0)!=(b|0)){continue}break}break f}i:{j:{k:{l:{if(k>>>0<=2){a=F[f+104>>2];F[a>>2]=e;h=1;g=F[f+12>>2];if(g>>>0>1){break l}break i}if(I[f+8>>2]>I[f+4>>2]){break e}a=F[f+116>>2];n=j+1|0;l=L(n,12);q=a+l|0;if((q|0)!=(m|0)){Ca(q,F[m>>2],F[m+4>>2]);a=F[f+116>>2]}a=h+F[a+l>>2]|0;F[a>>2]=F[a>>2]+(1<>2]=0;pc(t,O(k)^31,d+4|0);a=k>>>1|0;b=F[d+4>>2];if(a>>>0>>0){break e}a=a-b|0;i=k-a|0;m:{if((i|0)==(a|0)){i=a;break m}b=F[f+84>>2];if((b|0)==F[f+76>>2]){break k}k=F[b>>2];m=F[f+88>>2];o=m+1|0;F[f+88>>2]=o;k=k&-2147483648>>>m;n:{if((o|0)==32){F[f+88>>2]=0;F[f+84>>2]=b+4;if(k){break n}break k}if(!k){break k}}}b=i;i=a;break j}while(1){e=(g-1|0)==(e|0)?0:e+1|0;F[a+(h<<2)>>2]=e;g=F[f+12>>2];h=h+1|0;if(g>>>0>h>>>0){continue}break}break i}b=a}m=h;a=F[f+128>>2];g=a+g|0;h=F[g>>2];k=m+h|0;F[k>>2]=F[k>>2]+1;Ca(a+l|0,h,F[g+4>>2]);if(i){g=F[d+28>>2]+F[d+24>>2]|0;a=F[d+16>>2];h=F[d+12>>2];if((g|0)==(((a|0)==(h|0)?0:L(a-h>>2,341)-1|0)|0)){ya(d+8|0);h=F[d+12>>2];g=F[d+24>>2]+F[d+28>>2]|0}a=(g>>>0)/341|0;a=F[(a<<2)+h>>2]+L(g-L(a,341)|0,12)|0;F[a+8>>2]=j;F[a+4>>2]=e;F[a>>2]=i;F[d+28>>2]=F[d+28>>2]+1}if(!b){break f}g=F[d+28>>2]+F[d+24>>2]|0;a=F[d+16>>2];h=F[d+12>>2];if((g|0)==(((a|0)==(h|0)?0:L(a-h>>2,341)-1|0)|0)){ya(d+8|0);h=F[d+12>>2];g=F[d+24>>2]+F[d+28>>2]|0}a=(g>>>0)/341|0;a=F[(a<<2)+h>>2]+L(g-L(a,341)|0,12)|0;F[a+8>>2]=n;F[a+4>>2]=e;F[a>>2]=b;F[d+28>>2]=F[d+28>>2]+1;break f}o=0;if(!k){break f}while(1){if(F[f+12>>2]){q=F[m>>2];g=F[f+36>>2];u=F[n>>2];i=F[f+92>>2];v=F[f+104>>2];e=0;while(1){h=(e<<2)+v|0;F[i+(F[h>>2]<<2)>>2]=0;b=F[f>>2];a=F[h>>2]<<2;j=F[a+u>>2];o:{if((b|0)==(j|0)){break o}a=a+i|0;b=b-j|0;j=F[f+48>>2];p=32-j|0;if((b|0)<=(p|0)){l=F[f+44>>2];if((l|0)==(g|0)){F[a>>2]=0;break o}F[a>>2]=F[l>>2]<>>32-b;a=b+F[f+48>>2]|0;F[f+48>>2]=a;if((a|0)!=32){break o}F[f+48>>2]=0;F[f+44>>2]=l+4;break o}l=F[f+44>>2];s=l+4|0;if((g|0)==(s|0)){F[a>>2]=0;break o}w=F[l>>2];F[f+44>>2]=s;p=b-p|0;F[f+48>>2]=p;F[a>>2]=F[l+4>>2]>>>32-p|w<>>32-b}a=F[h>>2]<<2;b=a+i|0;F[b>>2]=F[b>>2]|F[a+q>>2];e=e+1|0;if(e>>>0>2]){continue}break}}h=0;e=F[c+16>>2];p:{if((e|0)==F[c+20>>2]){break p}while(1){i=L(h,20)+e|0;b=F[f+92>>2]+(F[i+4>>2]<<2)|0;l=F[i>>2];j=F[i+12>>2];a=b;q:{if(j>>>0>3){break q}e=0;g=F[c+12>>2];a=g;if(!F[i+16>>2]){break q}while(1){a=ta(g,b+(e<<2)|0,j);j=F[i+12>>2];g=a+j|0;e=e+1|0;if(e>>>0>2]){continue}break}a=F[c+12>>2]}e=F[c+28>>2];e=G[l+84|0]?e:F[F[l+68>>2]+(e<<2)>>2];if(e>>>0>=I[l+80>>2]){break p}b=F[l+40>>2];ta(F[F[l>>2]>>2]+L(b,e)|0,a,b);h=h+1|0;e=F[c+16>>2];if(h>>>0<(F[c+20>>2]-e|0)/20>>>0){continue}break}}F[c+28>>2]=F[c+28>>2]+1;F[f+8>>2]=F[f+8>>2]+1;o=o+1|0;if((k|0)!=(o|0)){continue}break}}e=F[d+28>>2];if(e){continue}break}i=1}F[d+28>>2]=0;h=F[d+16>>2];e=F[d+12>>2];g=h-e|0;if(g>>>0>=9){while(1){ra(F[e>>2]);e=F[d+12>>2]+4|0;F[d+12>>2]=e;h=F[d+16>>2];g=h-e|0;if(g>>>0>8){continue}break}}j=170;r:{switch((g>>>2|0)-1|0){case 1:j=341;case 0:F[d+24>>2]=j;break;default:break r}}s:{if((e|0)==(h|0)){break s}while(1){ra(F[e>>2]);e=e+4|0;if((h|0)!=(e|0)){continue}break}a=F[d+16>>2];b=F[d+12>>2];if((a|0)==(b|0)){break s}F[d+16>>2]=a+((b-a|0)+3&-4)}a=F[d+8>>2];if(a){ra(a)}ea=d+32|0;break b}va();V()}va();V()}}return i}function wd(a,b,c){var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0;j=F[b+12>>2];f=F[b+20>>2];i=F[b+16>>2];d=i+4|0;f=d>>>0<4?f+1|0:f;a:{if(d>>>0>I[b+8>>2]&(f|0)>=(j|0)|(f|0)>(j|0)){break a}f=i+F[b>>2]|0;F[a>>2]=G[f|0]|G[f+1|0]<<8|(G[f+2|0]<<16|G[f+3|0]<<24);f=F[b+20>>2];j=f;d=F[b+16>>2];i=d+4|0;f=i>>>0<4?f+1|0:f;e=i;F[b+16>>2]=e;F[b+20>>2]=f;if(I[a>>2]>32){break a}i=F[b+12>>2];f=j;j=d+8|0;f=j>>>0<8?f+1|0:f;if(j>>>0>I[b+8>>2]&(f|0)>=(i|0)|(f|0)>(i|0)){break a}g=e+F[b>>2]|0;f=G[g|0]|G[g+1|0]<<8|(G[g+2|0]<<16|G[g+3|0]<<24);F[a+4>>2]=f;g=F[b+20>>2];j=F[b+16>>2]+4|0;g=j>>>0<4?g+1|0:g;F[b+16>>2]=j;F[b+20>>2]=g;if(!f){return 1}g=0;F[a+8>>2]=0;if(!wa(a+16|0,b)){break a}if(!xa(a+32|0,b)){break a}if(!xa(a+52|0,b)){break a}if(!xa(a+72|0,b)){break a}p=F[a+4>>2];d=ea-32|0;ea=d;f=a;e=F[a+12>>2];F[d+16>>2]=0;F[d+8>>2]=0;F[d+12>>2]=0;b:{c:{if(e){if(e>>>0>=1073741824){break c}a=e<<2;h=sa(a);F[d+8>>2]=h;g=a+h|0;F[d+16>>2]=g;ua(h,0,a);F[d+12>>2]=g}a=F[f+116>>2];b=F[a>>2];if(b){F[a+4>>2]=b;ra(b);F[a+8>>2]=0;F[a>>2]=0;F[a+4>>2]=0;e=F[f+12>>2];h=F[d+8>>2];g=F[d+12>>2]}F[a+4>>2]=g;F[a>>2]=h;F[a+8>>2]=F[d+16>>2];h=0;F[d+16>>2]=0;F[d+8>>2]=0;F[d+12>>2]=0;a=0;d:{if(e){if(e>>>0>=1073741824){break d}b=e<<2;a=sa(b);F[d+8>>2]=a;h=a+b|0;F[d+16>>2]=h;ua(a,0,b);F[d+12>>2]=h}b=F[f+128>>2];g=F[b>>2];if(g){F[b+4>>2]=g;ra(g);F[b+8>>2]=0;F[b>>2]=0;F[b+4>>2]=0;h=F[d+12>>2];a=F[d+8>>2]}F[b+4>>2]=h;F[b>>2]=a;F[b+8>>2]=F[d+16>>2];F[d+24>>2]=0;F[d+28>>2]=0;F[d+16>>2]=0;F[d+20>>2]=0;F[d+8>>2]=0;F[d+12>>2]=0;ya(d+8|0);a=F[d+24>>2]+F[d+28>>2]|0;b=(a>>>0)/341|0;a=F[F[d+12>>2]+(b<<2)>>2]+L(a-L(b,341)|0,12)|0;F[a+4>>2]=0;F[a+8>>2]=0;F[a>>2]=p;b=1;e=F[d+28>>2]+1|0;F[d+28>>2]=e;e:{if(!e){break e}s=f+16|0;while(1){a=F[d+12>>2];i=F[d+24>>2];h=e-1|0;b=i+h|0;g=(b>>>0)/341|0;b=F[a+(g<<2)>>2]+L(b-L(g,341)|0,12)|0;j=F[b+8>>2];g=F[b+4>>2];l=F[b>>2];F[d+28>>2]=h;b=F[d+16>>2];if((((a|0)==(b|0)?0:L(b-a>>2,341)-1|0)-(e+i|0)|0)+1>>>0>=682){ra(F[b-4>>2]);F[d+16>>2]=F[d+16>>2]-4}if(l>>>0>p>>>0){b=0;break e}b=0;a=F[f+12>>2];e=(g|0)==(a-1|0)?0:g+1|0;if(e>>>0>=a>>>0){break e}a=F[f+116>>2];i=L(j,12);n=a+i|0;g=F[f>>2];h=e<<2;q=i+F[f+128>>2]|0;k=F[h+F[q>>2]>>2];f:{if((g|0)==(k|0)){if(!l){break f}if(F[c+20>>2]==F[c+16>>2]){a=F[f+8>>2];F[c+28>>2]=l+F[c+28>>2];F[f+8>>2]=a+l;break f}while(1){a=0;e=F[c+16>>2];g:{if((e|0)==F[c+20>>2]){break g}while(1){k=L(a,20)+e|0;i=F[n>>2]+(F[k+4>>2]<<2)|0;m=F[k>>2];g=F[k+12>>2];j=i;h:{if(g>>>0>3){break h}e=0;h=F[c+12>>2];j=h;if(!F[k+16>>2]){break h}while(1){j=ta(h,i+(e<<2)|0,g);g=F[k+12>>2];h=j+g|0;e=e+1|0;if(e>>>0>2]){continue}break}j=F[c+12>>2]}e=F[c+28>>2];e=G[m+84|0]?e:F[F[m+68>>2]+(e<<2)>>2];if(e>>>0>=I[m+80>>2]){break g}g=F[m+40>>2];ta(F[F[m>>2]>>2]+L(g,e)|0,j,g);a=a+1|0;e=F[c+16>>2];if(a>>>0<(F[c+20>>2]-e|0)/20>>>0){continue}break}}F[c+28>>2]=F[c+28>>2]+1;F[f+8>>2]=F[f+8>>2]+1;b=b+1|0;if((l|0)!=(b|0)){continue}break}break f}i:{j:{k:{l:{if(l>>>0<=2){b=F[f+104>>2];F[b>>2]=e;a=1;h=F[f+12>>2];if(h>>>0>1){break l}break i}if(I[f+8>>2]>I[f+4>>2]){break e}m=a;a=i+12|0;Ca(m+a|0,F[n>>2],F[n+4>>2]);a=h+F[a+F[f+116>>2]>>2]|0;F[a>>2]=F[a>>2]+(1<>2]=0;pc(s,O(l)^31,d+4|0);a=l>>>1|0;g=F[d+4>>2];if(a>>>0>>0){break e}k=j+1|0;a=a-g|0;g=l-a|0;m:{if((g|0)==(a|0)){b=a;break m}b=F[f+84>>2];if((b|0)==F[f+76>>2]){break k}l=F[b>>2];m=F[f+88>>2];n=m+1|0;F[f+88>>2]=n;l=l&-2147483648>>>m;n:{if((n|0)==32){F[f+88>>2]=0;F[f+84>>2]=b+4;if(l){break n}break k}if(!l){break k}}b=g}g=a;break j}while(1){e=(h-1|0)==(e|0)?0:e+1|0;F[b+(a<<2)>>2]=e;a=a+1|0;h=F[f+12>>2];if(a>>>0>>0){continue}break}break i}b=a}m=h;a=F[f+128>>2];i=a+i|0;h=F[i>>2];l=m+h|0;F[l>>2]=F[l>>2]+1;Ca(a+L(k,12)|0,h,F[i+4>>2]);if(g){h=F[d+28>>2]+F[d+24>>2]|0;i=F[d+16>>2];a=F[d+12>>2];if((h|0)==(((a|0)==(i|0)?0:L(i-a>>2,341)-1|0)|0)){ya(d+8|0);h=F[d+24>>2]+F[d+28>>2]|0;i=F[d+12>>2]}else{i=a}a=(h>>>0)/341|0;a=F[i+(a<<2)>>2]+L(h-L(a,341)|0,12)|0;F[a+8>>2]=j;F[a+4>>2]=e;F[a>>2]=g;F[d+28>>2]=F[d+28>>2]+1}if(!b){break f}h=F[d+28>>2]+F[d+24>>2]|0;g=F[d+16>>2];a=F[d+12>>2];if((h|0)==(((a|0)==(g|0)?0:L(g-a>>2,341)-1|0)|0)){ya(d+8|0);h=F[d+24>>2]+F[d+28>>2]|0;j=F[d+12>>2]}else{j=a}a=(h>>>0)/341|0;a=F[j+(a<<2)>>2]+L(h-L(a,341)|0,12)|0;F[a+8>>2]=k;F[a+4>>2]=e;F[a>>2]=b;F[d+28>>2]=F[d+28>>2]+1;break f}m=0;if(!l){break f}while(1){if(F[f+12>>2]){t=F[n>>2];j=F[f+36>>2];u=F[q>>2];g=F[f+92>>2];v=F[f+104>>2];e=0;while(1){i=(e<<2)+v|0;F[g+(F[i>>2]<<2)>>2]=0;b=F[f>>2];a=F[i>>2]<<2;h=F[a+u>>2];o:{if((b|0)==(h|0)){break o}a=a+g|0;b=b-h|0;h=F[f+48>>2];o=32-h|0;if((b|0)<=(o|0)){k=F[f+44>>2];if((k|0)==(j|0)){F[a>>2]=0;break o}F[a>>2]=F[k>>2]<>>32-b;a=b+F[f+48>>2]|0;F[f+48>>2]=a;if((a|0)!=32){break o}F[f+48>>2]=0;F[f+44>>2]=k+4;break o}k=F[f+44>>2];r=k+4|0;if((j|0)==(r|0)){F[a>>2]=0;break o}w=F[k>>2];F[f+44>>2]=r;o=b-o|0;F[f+48>>2]=o;F[a>>2]=F[k+4>>2]>>>32-o|w<>>32-b}a=F[i>>2]<<2;b=a+g|0;F[b>>2]=F[b>>2]|F[a+t>>2];e=e+1|0;if(e>>>0>2]){continue}break}}a=0;e=F[c+16>>2];p:{if((e|0)==F[c+20>>2]){break p}while(1){i=L(a,20)+e|0;j=F[f+92>>2]+(F[i+4>>2]<<2)|0;k=F[i>>2];g=F[i+12>>2];b=j;q:{if(g>>>0>3){break q}e=0;h=F[c+12>>2];b=h;if(!F[i+16>>2]){break q}while(1){b=ta(h,j+(e<<2)|0,g);g=F[i+12>>2];h=b+g|0;e=e+1|0;if(e>>>0>2]){continue}break}b=F[c+12>>2]}e=F[c+28>>2];e=G[k+84|0]?e:F[F[k+68>>2]+(e<<2)>>2];if(e>>>0>=I[k+80>>2]){break p}g=F[k+40>>2];ta(F[F[k>>2]>>2]+L(g,e)|0,b,g);a=a+1|0;e=F[c+16>>2];if(a>>>0<(F[c+20>>2]-e|0)/20>>>0){continue}break}}F[c+28>>2]=F[c+28>>2]+1;F[f+8>>2]=F[f+8>>2]+1;m=m+1|0;if((l|0)!=(m|0)){continue}break}}e=F[d+28>>2];if(e){continue}break}b=1}F[d+28>>2]=0;a=F[d+16>>2];e=F[d+12>>2];h=a-e|0;if(h>>>0>=9){while(1){ra(F[e>>2]);e=F[d+12>>2]+4|0;F[d+12>>2]=e;a=F[d+16>>2];h=a-e|0;if(h>>>0>8){continue}break}}g=170;r:{switch((h>>>2|0)-1|0){case 1:g=341;case 0:F[d+24>>2]=g;break;default:break r}}s:{if((a|0)==(e|0)){break s}while(1){ra(F[e>>2]);e=e+4|0;if((e|0)!=(a|0)){continue}break}a=F[d+16>>2];c=F[d+12>>2];if((a|0)==(c|0)){break s}F[d+16>>2]=a+((c-a|0)+3&-4)}a=F[d+8>>2];if(a){ra(a)}ea=d+32|0;break b}va();V()}va();V()}g=b}return g}function Ya(a,b,c,d){var e=0,f=0,g=0,h=0,i=0;a:{b:{if(!d){break b}c:{d:{switch(F[a+28>>2]-1|0){case 0:i=1;e:{e=D[a+24|0];if((((c|0)>(e|0)?e:c)|0)<=0){break e}e=F[a>>2];h=F[e>>2];b=F[a+48>>2]+Mj(F[a+40>>2],F[a+44>>2],b,0)|0;f=b;b=h+f|0;g=F[e+4>>2];e=g-h|0;if(!G[a+32|0]){if((e|0)<=(f|0)){break a}f=0;while(1){J[(f<<2)+d>>2]=D[b|0];f=f+1|0;e=D[a+24|0];if((f|0)>=(((c|0)>(e|0)?e:c)|0)){break e}b=b+1|0;if(g>>>0>b>>>0){continue}break}break a}if((e|0)<=(f|0)){break a}f=0;while(1){J[(f<<2)+d>>2]=M(D[b|0])/M(127);f=f+1|0;e=D[a+24|0];if((f|0)>=(((c|0)>(e|0)?e:c)|0)){break e}b=b+1|0;if(g>>>0>b>>>0){continue}break}break a}if((c|0)<=(e|0)){break b}c=c-e|0;a=(e<<2)+d|0;break c;case 1:i=1;f:{e=D[a+24|0];if((((c|0)>(e|0)?e:c)|0)<=0){break f}e=F[a>>2];h=F[e>>2];b=F[a+48>>2]+Mj(F[a+40>>2],F[a+44>>2],b,0)|0;f=b;b=h+f|0;g=F[e+4>>2];e=g-h|0;if(!G[a+32|0]){if((e|0)<=(f|0)){break a}f=0;while(1){J[(f<<2)+d>>2]=G[b|0];f=f+1|0;e=D[a+24|0];if((f|0)>=(((c|0)>(e|0)?e:c)|0)){break f}b=b+1|0;if(g>>>0>b>>>0){continue}break}break a}if((e|0)<=(f|0)){break a}f=0;while(1){J[(f<<2)+d>>2]=M(G[b|0])/M(255);f=f+1|0;e=D[a+24|0];if((f|0)>=(((c|0)>(e|0)?e:c)|0)){break f}b=b+1|0;if(g>>>0>b>>>0){continue}break}break a}if((c|0)<=(e|0)){break b}c=c-e|0;a=(e<<2)+d|0;break c;case 2:i=1;g:{e=D[a+24|0];if((((c|0)>(e|0)?e:c)|0)<=0){break g}e=F[a>>2];h=F[e>>2];b=F[a+48>>2]+Mj(F[a+40>>2],F[a+44>>2],b,0)|0;f=b;b=h+f|0;g=F[e+4>>2];e=g-h|0;if(!G[a+32|0]){if((e|0)<=(f|0)){break a}f=0;while(1){J[(f<<2)+d>>2]=E[b>>1];f=f+1|0;e=D[a+24|0];if((f|0)>=(((c|0)>(e|0)?e:c)|0)){break g}b=b+2|0;if(g>>>0>b>>>0){continue}break}break a}if((e|0)<=(f|0)){break a}f=0;while(1){J[(f<<2)+d>>2]=M(E[b>>1])/M(32767);f=f+1|0;e=D[a+24|0];if((f|0)>=(((c|0)>(e|0)?e:c)|0)){break g}b=b+2|0;if(g>>>0>b>>>0){continue}break}break a}if((c|0)<=(e|0)){break b}c=c-e|0;a=(e<<2)+d|0;break c;case 3:i=1;h:{e=D[a+24|0];if((((c|0)>(e|0)?e:c)|0)<=0){break h}e=F[a>>2];h=F[e>>2];b=F[a+48>>2]+Mj(F[a+40>>2],F[a+44>>2],b,0)|0;f=b;b=h+f|0;g=F[e+4>>2];e=g-h|0;if(!G[a+32|0]){if((e|0)<=(f|0)){break a}f=0;while(1){J[(f<<2)+d>>2]=H[b>>1];f=f+1|0;e=D[a+24|0];if((f|0)>=(((c|0)>(e|0)?e:c)|0)){break h}b=b+2|0;if(g>>>0>b>>>0){continue}break}break a}if((e|0)<=(f|0)){break a}f=0;while(1){J[(f<<2)+d>>2]=M(H[b>>1])/M(65535);f=f+1|0;e=D[a+24|0];if((f|0)>=(((c|0)>(e|0)?e:c)|0)){break h}b=b+2|0;if(g>>>0>b>>>0){continue}break}break a}if((c|0)<=(e|0)){break b}c=c-e|0;a=(e<<2)+d|0;break c;case 4:i=1;i:{e=D[a+24|0];if((((c|0)>(e|0)?e:c)|0)<=0){break i}e=F[a>>2];h=F[e>>2];b=F[a+48>>2]+Mj(F[a+40>>2],F[a+44>>2],b,0)|0;f=b;b=h+f|0;g=F[e+4>>2];e=g-h|0;if(!G[a+32|0]){if((e|0)<=(f|0)){break a}f=0;while(1){J[(f<<2)+d>>2]=F[b>>2];f=f+1|0;e=D[a+24|0];if((f|0)>=(((c|0)>(e|0)?e:c)|0)){break i}b=b+4|0;if(g>>>0>b>>>0){continue}break}break a}if((e|0)<=(f|0)){break a}f=0;while(1){J[(f<<2)+d>>2]=M(F[b>>2])*M(4.656612873077393e-10);f=f+1|0;e=D[a+24|0];if((f|0)>=(((c|0)>(e|0)?e:c)|0)){break i}b=b+4|0;if(g>>>0>b>>>0){continue}break}break a}if((c|0)<=(e|0)){break b}c=c-e|0;a=(e<<2)+d|0;break c;case 5:i=1;j:{e=D[a+24|0];if((((c|0)>(e|0)?e:c)|0)<=0){break j}e=F[a>>2];h=F[e>>2];b=F[a+48>>2]+Mj(F[a+40>>2],F[a+44>>2],b,0)|0;f=b;b=h+f|0;g=F[e+4>>2];e=g-h|0;if(!G[a+32|0]){if((e|0)<=(f|0)){break a}f=0;while(1){J[(f<<2)+d>>2]=I[b>>2];f=f+1|0;e=D[a+24|0];if((f|0)>=(((c|0)>(e|0)?e:c)|0)){break j}b=b+4|0;if(g>>>0>b>>>0){continue}break}break a}if((e|0)<=(f|0)){break a}f=0;while(1){J[(f<<2)+d>>2]=M(I[b>>2])*M(2.3283064365386963e-10);f=f+1|0;e=D[a+24|0];if((f|0)>=(((c|0)>(e|0)?e:c)|0)){break j}b=b+4|0;if(g>>>0>b>>>0){continue}break}break a}if((c|0)<=(e|0)){break b}c=c-e|0;a=(e<<2)+d|0;break c;case 6:i=1;k:{e=D[a+24|0];if((((c|0)>(e|0)?e:c)|0)<=0){break k}e=F[a>>2];h=F[e>>2];b=F[a+48>>2]+Mj(F[a+40>>2],F[a+44>>2],b,0)|0;f=b;b=h+f|0;g=F[e+4>>2];e=g-h|0;if(!G[a+32|0]){if((e|0)<=(f|0)){break a}f=0;while(1){J[(f<<2)+d>>2]=+I[b>>2]+ +F[b+4>>2]*4294967296;f=f+1|0;e=D[a+24|0];if((f|0)>=(((c|0)>(e|0)?e:c)|0)){break k}b=b+8|0;if(g>>>0>b>>>0){continue}break}break a}if((e|0)<=(f|0)){break a}f=0;while(1){J[(f<<2)+d>>2]=M(+I[b>>2]+ +F[b+4>>2]*4294967296)*M(10842021724855044e-35);f=f+1|0;e=D[a+24|0];if((f|0)>=(((c|0)>(e|0)?e:c)|0)){break k}b=b+8|0;if(g>>>0>b>>>0){continue}break}break a}if((c|0)<=(e|0)){break b}c=c-e|0;a=(e<<2)+d|0;break c;case 7:i=1;l:{e=D[a+24|0];if((((c|0)>(e|0)?e:c)|0)<=0){break l}e=F[a>>2];h=F[e>>2];b=F[a+48>>2]+Mj(F[a+40>>2],F[a+44>>2],b,0)|0;f=b;b=h+f|0;g=F[e+4>>2];e=g-h|0;if(!G[a+32|0]){if((e|0)<=(f|0)){break a}f=0;while(1){J[(f<<2)+d>>2]=+I[b>>2]+ +I[b+4>>2]*4294967296;f=f+1|0;e=D[a+24|0];if((f|0)>=(((c|0)>(e|0)?e:c)|0)){break l}b=b+8|0;if(g>>>0>b>>>0){continue}break}break a}if((e|0)<=(f|0)){break a}f=0;while(1){J[(f<<2)+d>>2]=M(+I[b>>2]+ +I[b+4>>2]*4294967296)*M(5.421010862427522e-20);f=f+1|0;e=D[a+24|0];if((f|0)>=(((c|0)>(e|0)?e:c)|0)){break l}b=b+8|0;if(g>>>0>b>>>0){continue}break}break a}if((c|0)<=(e|0)){break b}c=c-e|0;a=(e<<2)+d|0;break c;case 8:i=1;f=D[a+24|0];if((((c|0)>(f|0)?f:c)|0)>0){g=F[a>>2];f=F[g>>2];b=F[a+48>>2]+Mj(F[a+40>>2],F[a+44>>2],b,0)|0;b=f+b|0;g=F[g+4>>2];while(1){if(b>>>0>=g>>>0){break a}J[(e<<2)+d>>2]=J[b>>2];b=b+4|0;e=e+1|0;f=D[a+24|0];if((e|0)<(((c|0)>(f|0)?f:c)|0)){continue}break}}if((c|0)<=(f|0)){break b}c=c-f|0;a=(f<<2)+d|0;break c;case 9:i=1;f=D[a+24|0];if((((c|0)>(f|0)?f:c)|0)>0){g=F[a>>2];f=F[g>>2];b=F[a+48>>2]+Mj(F[a+40>>2],F[a+44>>2],b,0)|0;b=f+b|0;g=F[g+4>>2];while(1){if(b>>>0>=g>>>0){break a}J[(e<<2)+d>>2]=K[b>>3];b=b+8|0;e=e+1|0;f=D[a+24|0];if((e|0)<(((c|0)>(f|0)?f:c)|0)){continue}break}}if((c|0)<=(f|0)){break b}c=c-f|0;a=(f<<2)+d|0;break c;case 10:break d;default:break b}}i=1;f=D[a+24|0];if((((c|0)>(f|0)?f:c)|0)>0){g=F[a>>2];f=F[g>>2];b=F[a+48>>2]+Mj(F[a+40>>2],F[a+44>>2],b,0)|0;b=f+b|0;while(1){if(I[g+4>>2]<=b>>>0){break a}J[(e<<2)+d>>2]=G[b|0]?M(1):M(0);b=b+1|0;e=e+1|0;f=D[a+24|0];if((e|0)<(((c|0)>(f|0)?f:c)|0)){continue}break}}if((c|0)<=(f|0)){break b}c=c-f|0;a=(f<<2)+d|0}ua(a,0,c<<2)}return i}return 0}function Bj(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,G=0,H=0,I=0,J=0,K=0,M=0,N=0;g=ea+-64|0;ea=g;F[a+8>>2]=e;x=a+32|0;f=F[x>>2];d=F[a+36>>2]-f>>2;a:{b:{if(d>>>0>>0){Aa(x,e-d|0);F[g+56>>2]=0;F[g+60>>2]=0;F[g+48>>2]=0;F[g+52>>2]=0;F[g+40>>2]=0;F[g+44>>2]=0;F[g+32>>2]=0;F[g+36>>2]=0;F[g+24>>2]=0;F[g+28>>2]=0;F[g+16>>2]=0;F[g+20>>2]=0;F[g>>2]=0;break b}if(d>>>0>e>>>0){F[a+36>>2]=f+(e<<2)}F[g+56>>2]=0;F[g+60>>2]=0;F[g+48>>2]=0;F[g+52>>2]=0;F[g+40>>2]=0;F[g+44>>2]=0;F[g+32>>2]=0;F[g+36>>2]=0;F[g+24>>2]=0;F[g+28>>2]=0;F[g+16>>2]=0;F[g+20>>2]=0;F[g>>2]=0;d=0;if(!e){break a}}Ia(g+16|0,e,g);h=F[g+28>>2];d=F[g+32>>2]}F[g>>2]=0;d=d-h>>2;c:{if(d>>>0>=e>>>0){if(d>>>0<=e>>>0){break c}F[g+32>>2]=(e<<2)+h;break c}Ia(g+16|12,e-d|0,g)}F[g>>2]=0;f=F[g+40>>2];d=F[g+44>>2]-f>>2;d:{if(d>>>0>=e>>>0){if(d>>>0<=e>>>0){break d}F[g+44>>2]=f+(e<<2);break d}Ia(g+40|0,e-d|0,g)}F[g>>2]=0;f=F[g+52>>2];d=F[g+56>>2]-f>>2;e:{if(d>>>0>=e>>>0){if(d>>>0<=e>>>0){break e}F[g+56>>2]=f+(e<<2);break e}Ia(g+52|0,e-d|0,g)}f:{if(F[a+8>>2]<=0){break f}i=F[g+16>>2];j=F[a+32>>2];h=0;while(1){d=h<<2;f=F[d+i>>2];n=F[a+16>>2];g:{if((f|0)>(n|0)){F[d+j>>2]=n;break g}d=d+j|0;n=F[a+12>>2];if((n|0)>(f|0)){F[d>>2]=n;break g}F[d>>2]=f}h=h+1|0;d=F[a+8>>2];if((h|0)<(d|0)){continue}break}if((d|0)<=0){break f}d=0;while(1){i=d<<2;f=i+c|0;i=F[b+i>>2]+F[j+i>>2]|0;F[f>>2]=i;h:{if((i|0)>F[a+16>>2]){i=i-F[a+20>>2]|0}else{if((i|0)>=F[a+12>>2]){break h}i=i+F[a+20>>2]|0}F[f>>2]=i}d=d+1|0;if((d|0)>2]){continue}break}}G=F[a+52>>2];q=F[a+48>>2];y=sa(16);d=y;F[d>>2]=0;F[d+4>>2]=0;F[d+8>>2]=0;F[d+12>>2]=0;F[g+8>>2]=0;F[g>>2]=0;F[g+4>>2]=0;i:{if(e){if(e>>>0>=1073741824){break i}d=e<<2;s=sa(d);F[g>>2]=s;F[g+8>>2]=d+s;ua(s,0,d)}d=F[a+56>>2];A=F[d>>2];d=F[d+4>>2]-A|0;j:{if((d|0)<5){break j}u=d>>2;H=(u|0)>2?u:2;I=u>>>0>1?u:1;B=e&-2;C=e&1;J=e&-4;D=e&3;z=e-1|0;K=e<<2;E=1;n=1;while(1){k:{l:{m:{n:{if((n|0)!=(I|0)){o:{p:{f=F[(n<<2)+A>>2];if((f|0)==-1){break p}k=1;d=f+2|0;j=(f>>>0)%3|0;v=j?f-1|0:d;o=1<>>5|0;i=0;M=(j|0)!=0|(d|0)!=-1;N=F[q>>2];d=f;q:{while(1){r:{if(F[(d>>>3&536870908)+N>>2]>>>d&1){break r}j=F[F[F[q+64>>2]+12>>2]+(d<<2)>>2];if((j|0)==-1){break r}m=F[G>>2];h=F[q+28>>2];r=F[m+(F[h+(j<<2)>>2]<<2)>>2];if((r|0)>=(n|0)){break r}l=j+1|0;l=F[m+(F[h+(((l>>>0)%3|0?l:j-2|0)<<2)>>2]<<2)>>2];if((l|0)>=(n|0)){break r}h=F[m+(F[h+(j+((j>>>0)%3|0?-1:2)<<2)>>2]<<2)>>2];if((h|0)>=(n|0)){break r}s:{if(!e){break s}j=F[(g+16|0)+L(i,12)>>2];m=L(e,h);l=L(e,l);r=L(e,r);h=0;w=0;if(z){while(1){F[j+(h<<2)>>2]=(F[(h+m<<2)+c>>2]+F[(h+l<<2)+c>>2]|0)-F[(h+r<<2)+c>>2];p=h|1;F[j+(p<<2)>>2]=(F[(m+p<<2)+c>>2]+F[(l+p<<2)+c>>2]|0)-F[(r+p<<2)+c>>2];h=h+2|0;w=w+2|0;if((B|0)!=(w|0)){continue}break}}if(!C){break s}F[j+(h<<2)>>2]=(F[(h+m<<2)+c>>2]+F[(h+l<<2)+c>>2]|0)-F[(h+r<<2)+c>>2]}j=4;i=i+1|0;if((i|0)==4){break q}}t:{if(k&1){h=d-2|0;j=d+1|0;d=-1;j=(j>>>0)%3|0?j:h;if((j|0)==-1|F[F[q>>2]+(j>>>3&536870908)>>2]>>>j&1){break t}j=F[F[F[q+64>>2]+12>>2]+(j<<2)>>2];if((j|0)==-1){break t}d=j+1|0;d=(d>>>0)%3|0?d:j-2|0;break t}u:{if((d>>>0)%3|0){h=d-1|0;break u}h=d+2|0;d=-1;if((h|0)==-1){break t}}d=-1;if(F[F[q>>2]+(h>>>3&536870908)>>2]>>>h&1){break t}j=F[F[F[q+64>>2]+12>>2]+(h<<2)>>2];if((j|0)==-1){break t}if((j>>>0)%3|0){d=j-1|0;break t}d=j+2|0}v:{if((d|0)==(f|0)){break v}if(!((k^1)&1|(d|0)!=-1)){if(!M|o&F[F[q>>2]+(t<<2)>>2]){break v}d=F[F[F[q+64>>2]+12>>2]+(v<<2)>>2];if((d|0)==-1){break v}k=0;d=(d>>>0)%3|0?d-1|0:d+2|0}if((d|0)!=-1){continue}}break}j=i;if((j|0)<=0){break p}}if(e){ua(s,0,K)}d=j-1|0;r=(d<<2)+y|0;d=L(d,12)+a|0;v=d;w=F[d- -64>>2];k=0;d=F[g>>2];f=0;while(1){i=F[r>>2];F[r>>2]=i+1;if(i>>>0>=w>>>0){break j}w:{if(F[F[v+60>>2]+(i>>>3&536870908)>>2]>>>i&1){break w}f=f+1|0;if(!e){break w}m=F[(g+16|0)+L(k,12)>>2];i=0;h=0;p=0;if(z>>>0>=3){while(1){l=h<<2;o=l+d|0;F[o>>2]=F[o>>2]+F[m+l>>2];o=l|4;t=o+d|0;F[t>>2]=F[t>>2]+F[m+o>>2];o=l|8;t=o+d|0;F[t>>2]=F[t>>2]+F[m+o>>2];l=l|12;o=l+d|0;F[o>>2]=F[o>>2]+F[m+l>>2];h=h+4|0;p=p+4|0;if((J|0)!=(p|0)){continue}break}}if(!D){break w}while(1){l=h<<2;p=l+d|0;F[p>>2]=F[p>>2]+F[m+l>>2];h=h+1|0;i=i+1|0;if((D|0)!=(i|0)){continue}break}}k=k+1|0;if((k|0)!=(j|0)){continue}break}i=L(e,n);if(!f){break o}if(!e){break l}h=0;d=0;if(z){break n}break m}i=L(e,n)}if(F[a+8>>2]<=0){break k}k=(L(n-1|0,e)<<2)+c|0;j=F[x>>2];h=0;while(1){d=h<<2;f=F[d+k>>2];m=F[a+16>>2];x:{if((f|0)>(m|0)){F[d+j>>2]=m;break x}d=d+j|0;m=F[a+12>>2];if((m|0)>(f|0)){F[d>>2]=m;break x}F[d>>2]=f}h=h+1|0;f=F[a+8>>2];if((h|0)<(f|0)){continue}break}d=0;if((f|0)<=0){break k}f=i<<2;h=f+c|0;k=b+f|0;while(1){i=d<<2;f=i+h|0;i=F[i+k>>2]+F[j+i>>2]|0;F[f>>2]=i;y:{if((i|0)>F[a+16>>2]){i=i-F[a+20>>2]|0}else{if((i|0)>=F[a+12>>2]){break y}i=i+F[a+20>>2]|0}F[f>>2]=i}d=d+1|0;if((d|0)>2]){continue}break}break k}Ea();V()}while(1){j=h<<2;k=j+s|0;F[k>>2]=F[k>>2]/(f|0);j=(j|4)+s|0;F[j>>2]=F[j>>2]/(f|0);h=h+2|0;d=d+2|0;if((B|0)!=(d|0)){continue}break}}if(!C){break l}d=(h<<2)+s|0;F[d>>2]=F[d>>2]/(f|0)}if(F[a+8>>2]<=0){break k}j=F[x>>2];h=0;while(1){d=h<<2;f=F[d+s>>2];k=F[a+16>>2];z:{if((f|0)>(k|0)){F[d+j>>2]=k;break z}d=d+j|0;k=F[a+12>>2];if((k|0)>(f|0)){F[d>>2]=k;break z}F[d>>2]=f}h=h+1|0;f=F[a+8>>2];if((h|0)<(f|0)){continue}break}d=0;if((f|0)<=0){break k}f=i<<2;h=f+c|0;k=b+f|0;while(1){i=d<<2;f=i+h|0;i=F[i+k>>2]+F[j+i>>2]|0;F[f>>2]=i;A:{if((i|0)>F[a+16>>2]){i=i-F[a+20>>2]|0}else{if((i|0)>=F[a+12>>2]){break A}i=i+F[a+20>>2]|0}F[f>>2]=i}d=d+1|0;if((d|0)>2]){continue}break}}n=n+1|0;E=(u|0)>(n|0);if((n|0)!=(H|0)){continue}break}}a=F[g>>2];if(a){ra(a)}ra(y);a=F[g+52>>2];if(a){F[g+56>>2]=a;ra(a)}a=F[g+40>>2];if(a){F[g+44>>2]=a;ra(a)}a=F[g+28>>2];if(a){F[g+32>>2]=a;ra(a)}a=F[g+16>>2];if(a){F[g+20>>2]=a;ra(a)}ea=g- -64|0;return(E^-1)&1}va();V()}function Od(a,b,c,d,e){var f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0;i=ea-80|0;ea=i;F[i+76>>2]=b;x=i+55|0;r=i+56|0;a:{b:{c:{d:{e:while(1){h=b;if((2147483647-o|0)<(f|0)){break d}o=f+o|0;f:{g:{h:{f=h;g=G[f|0];if(g){while(1){i:{b=g&255;j:{if(!b){b=f;break j}if((b|0)!=37){break i}g=f;while(1){if(G[g+1|0]!=37){b=g;break j}f=f+1|0;j=G[g+2|0];b=g+2|0;g=b;if((j|0)==37){continue}break}}f=f-h|0;w=2147483647-o|0;if((f|0)>(w|0)){break d}if(a){Cb(a,h,f)}if(f){continue e}F[i+76>>2]=b;f=b+1|0;p=-1;if(!(G[b+2|0]!=36|D[b+1|0]-48>>>0>=10)){p=D[b+1|0]-48|0;s=1;f=b+3|0}F[i+76>>2]=f;n=0;g=D[f|0];b=g-32|0;k:{if(b>>>0>31){k=f;break k}k=f;b=1<>2]=k;n=b|n;g=D[f+1|0];b=g-32|0;if(b>>>0>=32){break k}f=k;b=1<>>0>=10)){F[((D[k+1|0]<<2)+e|0)-192>>2]=10;g=k+3|0;s=1;b=F[((D[k+1|0]<<3)+d|0)-384>>2];break m}if(s){break h}g=k+1|0;if(!a){F[i+76>>2]=g;s=0;q=0;break l}b=F[c>>2];F[c>>2]=b+4;s=0;b=F[b>>2]}F[i+76>>2]=g;q=b;if((b|0)>=0){break l}q=0-q|0;n=n|8192;break l}q=Nd(i+76|0);if((q|0)<0){break d}g=F[i+76>>2]}f=0;m=-1;n:{if(G[g|0]!=46){b=g;u=0;break n}if(G[g+1|0]==42){o:{if(!(G[g+3|0]!=36|D[g+2|0]-48>>>0>=10)){F[((D[g+2|0]<<2)+e|0)-192>>2]=10;b=g+4|0;m=F[((D[g+2|0]<<3)+d|0)-384>>2];break o}if(s){break h}b=g+2|0;m=0;if(!a){break o}j=F[c>>2];F[c>>2]=j+4;m=F[j>>2]}F[i+76>>2]=b;u=(m^-1)>>>31|0;break n}F[i+76>>2]=g+1;m=Nd(i+76|0);b=F[i+76>>2];u=1}p:{while(1){l=f;g=b;f=D[g|0];if(f-123>>>0<4294967238){break p}b=g+1|0;f=G[(f+L(l,58)|0)+13711|0];if(f-1>>>0<8){continue}break}F[i+76>>2]=b;k=28;q:{r:{if((f|0)!=27){if(!f){break c}if((p|0)>=0){F[(p<<2)+e>>2]=f;j=(p<<3)+d|0;f=F[j+4>>2];F[i+64>>2]=F[j>>2];F[i+68>>2]=f;break r}if(!a){break f}Md(i- -64|0,f,c);break q}if((p|0)>=0){break c}}f=0;if(!a){continue e}}j=n&-65537;n=n&8192?j:n;p=0;t=1132;k=r;s:{t:{u:{v:{w:{x:{y:{z:{A:{B:{C:{D:{E:{F:{G:{H:{f=D[g|0];f=l?(f&15)==3?f&-33:f:f;switch(f-88|0){case 11:break s;case 9:case 13:case 14:case 15:break t;case 27:break y;case 12:case 17:break B;case 23:break C;case 0:case 32:break D;case 24:break E;case 22:break F;case 29:break G;case 1:case 2:case 3:case 4:case 5:case 6:case 7:case 8:case 10:case 16:case 18:case 19:case 20:case 21:case 25:case 26:case 28:case 30:case 31:break g;default:break H}}I:{switch(f-65|0){case 0:case 4:case 5:case 6:break t;case 2:break w;case 1:case 3:break g;default:break I}}if((f|0)==83){break x}break g}l=F[i+64>>2];j=F[i+68>>2];t=1132;break A}f=0;J:{switch(l&255){case 0:F[F[i+64>>2]>>2]=o;continue e;case 1:F[F[i+64>>2]>>2]=o;continue e;case 2:h=F[i+64>>2];F[h>>2]=o;F[h+4>>2]=o>>31;continue e;case 3:E[F[i+64>>2]>>1]=o;continue e;case 4:D[F[i+64>>2]]=o;continue e;case 6:F[F[i+64>>2]>>2]=o;continue e;case 7:break J;default:continue e}}h=F[i+64>>2];F[h>>2]=o;F[h+4>>2]=o>>31;continue e}m=m>>>0>8?m:8;n=n|8;f=120}h=r;y=f&32;l=F[i+64>>2];j=F[i+68>>2];if(l|j){while(1){h=h-1|0;D[h|0]=y|G[(l&15)+14240|0];v=!j&l>>>0>15|(j|0)!=0;g=j;j=g>>>4|0;l=(g&15)<<28|l>>>4;if(v){continue}break}}if(!(F[i+64>>2]|F[i+68>>2])|!(n&8)){break z}t=(f>>>4|0)+1132|0;p=2;break z}f=r;h=F[i+68>>2];j=h;l=F[i+64>>2];if(h|l){while(1){f=f-1|0;D[f|0]=l&7|48;v=!j&l>>>0>7|(j|0)!=0;h=j;j=h>>>3|0;l=(h&7)<<29|l>>>3;if(v){continue}break}}h=f;if(!(n&8)){break z}f=r-h|0;m=(f|0)<(m|0)?m:f+1|0;break z}h=F[i+68>>2];j=h;l=F[i+64>>2];if((h|0)<0){j=0-(((l|0)!=0)+j|0)|0;l=0-l|0;F[i+64>>2]=l;F[i+68>>2]=j;p=1;t=1132;break A}if(n&2048){p=1;t=1133;break A}p=n&1;t=p?1134:1132}g=r;K:{if(!j){h=l;break K}while(1){g=g-1|0;h=Oj(l,j,10,0);f=fa;z=g,A=l-Mj(h,f,10,0)|48,D[z|0]=A;v=j>>>0>9;l=h;j=f;if(v){continue}break}}if(h){while(1){g=g-1|0;f=(h>>>0)/10|0;D[g|0]=h-L(f,10)|48;j=h>>>0>9;h=f;if(j){continue}break}}h=g}if((m|0)<0?u:0){break d}n=u?n&-65537:n;f=F[i+64>>2];j=F[i+68>>2];if(!(m|(f|j)!=0)){h=r;k=h;m=0;break g}f=!(f|j)+(r-h|0)|0;m=(f|0)<(m|0)?m:f;break g}l=m>>>0<2147483647?m:2147483647;k=l;n=(l|0)!=0;h=F[i+64>>2];h=h?h:1614;f=h;L:{M:{N:{O:{if(!(f&3)|!l){break O}while(1){if(!G[f|0]){break N}k=k-1|0;n=(k|0)!=0;f=f+1|0;if(!(f&3)){break O}if(k){continue}break}}if(!n){break M}}P:{if(!(!G[f|0]|k>>>0<4)){while(1){g=F[f>>2];if((g^-1)&g-16843009&-2139062144){break P}f=f+4|0;k=k-4|0;if(k>>>0>3){continue}break}}if(!k){break M}}while(1){if(!G[f|0]){break L}f=f+1|0;k=k-1|0;if(k){continue}break}}f=0}f=f?f-h|0:l;k=f+h|0;if((m|0)>=0){n=j;m=f;break g}n=j;m=f;if(G[k|0]){break d}break g}if(m){g=F[i+64>>2];break v}f=0;nb(a,32,q,0,n);break u}F[i+12>>2]=0;F[i+8>>2]=F[i+64>>2];g=i+8|0;F[i+64>>2]=g;m=-1}f=0;Q:{while(1){h=F[g>>2];if(!h){break Q}j=Ld(i+4|0,h);h=(j|0)<0;if(!(h|j>>>0>m-f>>>0)){g=g+4|0;f=f+j|0;if(m>>>0>f>>>0){continue}break Q}break}if(h){break b}}k=61;if((f|0)<0){break c}nb(a,32,q,f,n);if(!f){f=0;break u}k=0;g=F[i+64>>2];while(1){h=F[g>>2];if(!h){break u}h=Ld(i+4|0,h);k=h+k|0;if(k>>>0>f>>>0){break u}Cb(a,i+4|0,h);g=g+4|0;if(f>>>0>k>>>0){continue}break}}nb(a,32,q,f,n^8192);f=(f|0)<(q|0)?q:f;continue e}if((m|0)<0?u:0){break d}k=61;f=ga[0](a,K[i+64>>3],q,m,n,f)|0;if((f|0)>=0){continue e}break c}D[i+55|0]=F[i+64>>2];m=1;h=x;n=j;break g}F[i+76>>2]=g;break h}g=G[f+1|0];f=f+1|0;continue}}if(a){break a}if(!s){break f}f=1;while(1){a=F[(f<<2)+e>>2];if(a){Md((f<<3)+d|0,a,c);o=1;f=f+1|0;if((f|0)!=10){continue}break a}break}o=1;if(f>>>0>=10){break a}while(1){if(F[(f<<2)+e>>2]){break h}f=f+1|0;if((f|0)!=10){continue}break}break a}k=28;break c}g=k-h|0;j=(g|0)<(m|0)?m:g;if((j|0)>(2147483647-p|0)){break d}k=61;l=j+p|0;f=(l|0)<(q|0)?q:l;if((w|0)<(f|0)){break c}nb(a,32,f,l,n);Cb(a,t,p);nb(a,48,f,l,n^65536);nb(a,48,j,g,0);Cb(a,h,g);nb(a,32,f,l,n^8192);continue}break}o=0;break a}k=61}F[3984]=k}o=-1}ea=i+80|0;return o}function Zc(a,b){var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0;f=ea-32|0;ea=f;k=F[F[a+4>>2]+44>>2];d=F[a+8>>2];h=F[d>>2];d=F[d+4>>2];F[f+24>>2]=0;F[f+16>>2]=0;F[f+20>>2]=0;e=(d-h>>2>>>0)/3|0;d=F[k+96>>2];g=(F[k+100>>2]-d|0)/12|0;a:{if(e>>>0>g>>>0){j=e-g|0;c=F[k+104>>2];h=F[k+100>>2];if(j>>>0<=(c-h|0)/12>>>0){b:{if(!j){break b}d=L(j,12);j=d;e=d-12|0;g=((e>>>0)/12|0)+1&3;c:{if(!g){d=h;break c}d=h;while(1){c=F[f+20>>2];F[d>>2]=F[f+16>>2];F[d+4>>2]=c;F[d+8>>2]=F[f+24>>2];d=d+12|0;i=i+1|0;if((g|0)!=(i|0)){continue}break}}h=h+j|0;if(e>>>0<36){break b}while(1){c=F[f+20>>2];F[d>>2]=F[f+16>>2];F[d+4>>2]=c;F[d+8>>2]=F[f+24>>2];F[d+20>>2]=F[f+24>>2];c=F[f+20>>2];F[d+12>>2]=F[f+16>>2];F[d+16>>2]=c;F[d+32>>2]=F[f+24>>2];c=F[f+20>>2];F[d+24>>2]=F[f+16>>2];F[d+28>>2]=c;c=F[f+20>>2];F[d+36>>2]=F[f+16>>2];F[d+40>>2]=c;F[d+44>>2]=F[f+24>>2];d=d+48|0;if((h|0)!=(d|0)){continue}break}}F[k+100>>2]=h;break a}d:{d=F[k+96>>2];g=(h-d|0)/12|0;e=g+j|0;if(e>>>0<357913942){c=(c-d|0)/12|0;d=c<<1;l=c>>>0<178956970?d>>>0>e>>>0?d:e:357913941;if(l){if(l>>>0>=357913942){break d}o=sa(L(l,12))}c=L(g,12)+o|0;d=c;m=L(j,12);j=m-12|0;e=((j>>>0)/12|0)+1&3;if(e){d=c;while(1){g=F[f+20>>2];F[d>>2]=F[f+16>>2];F[d+4>>2]=g;F[d+8>>2]=F[f+24>>2];d=d+12|0;i=i+1|0;if((e|0)!=(i|0)){continue}break}}e=c+m|0;if(j>>>0>=36){while(1){g=F[f+20>>2];F[d>>2]=F[f+16>>2];F[d+4>>2]=g;F[d+8>>2]=F[f+24>>2];F[d+20>>2]=F[f+24>>2];g=F[f+20>>2];F[d+12>>2]=F[f+16>>2];F[d+16>>2]=g;F[d+32>>2]=F[f+24>>2];g=F[f+20>>2];F[d+24>>2]=F[f+16>>2];F[d+28>>2]=g;g=F[f+20>>2];F[d+36>>2]=F[f+16>>2];F[d+40>>2]=g;F[d+44>>2]=F[f+24>>2];d=d+48|0;if((e|0)!=(d|0)){continue}break}}g=F[k+96>>2];h=h-g|0;d=c+L((h|0)/-12|0,12)|0;if((h|0)>0){ta(d,g,h)}F[k+104>>2]=L(l,12)+o;F[k+100>>2]=e;F[k+96>>2]=d;if(g){ra(g)}break a}va();V()}za();V()}if(e>>>0>=g>>>0){break a}F[k+100>>2]=d+L(e,12)}e:{if(F[a+216>>2]==F[a+220>>2]){e=F[a+4>>2];h=F[e+44>>2];d=F[h+100>>2];m=F[h+96>>2];if((d|0)!=(m|0)){d=(d-m|0)/12|0;g=d>>>0>1?d:1;c=0;while(1){k=F[a+8>>2];h=m+L(c,12)|0;l=L(c,3);f:{g:{if((l|0)==-1){i=F[(F[k>>2]+(l<<2)|0)+4>>2];n=-1;d=1;break g}i=-1;n=F[F[k>>2]+(l<<2)>>2];d=l+1|0;if((d|0)==-1){d=0;break g}i=F[F[k>>2]+(d<<2)>>2];d=l+2|0;j=-1;if((d|0)==-1){break f}}j=F[F[k>>2]+(d<<2)>>2]}F[h+8>>2]=j;F[h+4>>2]=i;F[h>>2]=n;c=c+1|0;if((g|0)!=(c|0)){continue}break}}F[F[e+4>>2]+80>>2]=b;c=1;break e}h=0;F[f+24>>2]=0;F[f+16>>2]=0;F[f+20>>2]=0;o=F[a+8>>2];c=F[o>>2];d=F[o+4>>2];F[f+8>>2]=0;F[f>>2]=0;F[f+4>>2]=0;b=0;h:{i:{j:{k:{l:{m:{if((d|0)!=(c|0)){d=d-c|0;if((d|0)<0){break m}b=sa(d);F[f>>2]=b;F[f+8>>2]=(d>>2<<2)+b;u=f,v=ua(b,0,d)+d|0,F[u+4>>2]=v}c=F[o+24>>2];if((F[o+28>>2]-c|0)<=0){break i}d=0;while(1){g=F[(q<<2)+c>>2];n:{if((g|0)==-1){break n}o:{if(F[F[a+120>>2]+(q>>>3&536870908)>>2]>>>q&1){break o}s=F[a+216>>2];c=F[a+220>>2];if((s|0)==(c|0)){break o}i=g+2|0;e=(g>>>0)%3|0;t=e?g-1|0:i;c=(c-s|0)/144|0;k=c>>>0>1?c:1;r=0;l=(e|0)!=0|(i|0)!=-1;while(1){e=g<<2;i=L(r,144)+s|0;c=F[e+F[F[i+68>>2]>>2]>>2];p:{if(!(F[F[i+16>>2]+(c>>>3&536870908)>>2]>>>c&1)){break p}c=-1;q:{if(!l){break q}j=F[F[o+12>>2]+(t<<2)>>2];c=-1;if((j|0)==-1){break q}c=j-1|0;if((j>>>0)%3|0){break q}c=j+2|0}if((g|0)==(c|0)){break p}m=F[i+32>>2];j=F[m+e>>2];while(1){i=0;if((c|0)==-1){break h}if((j|0)!=F[m+(c<<2)>>2]){g=c;break o}r:{s:{if((c>>>0)%3|0){i=c-1|0;break s}i=c+2|0;e=-1;if((i|0)==-1){break r}}c=F[F[o+12>>2]+(i<<2)>>2];e=-1;if((c|0)==-1){break r}e=c-1|0;if((c>>>0)%3|0){break r}e=c+2|0}c=e;if((g|0)!=(c|0)){continue}break}}r=r+1|0;if((k|0)!=(r|0)){continue}break}}j=n-d|0;i=j>>2;F[(g<<2)+b>>2]=i;t:{if(n>>>0

>>0){F[n>>2]=g;n=n+4|0;F[f+20>>2]=n;break t}e=i+1|0;if(e>>>0>=1073741824){break l}c=p-d|0;h=c>>1;e=c>>>0<2147483644?e>>>0>>0?h:e:1073741823;if(e){if(e>>>0>=1073741824){break k}h=sa(e<<2)}else{h=0}c=h+(i<<2)|0;F[c>>2]=g;p=(e<<2)+h|0;n=c+4|0;if((j|0)>0){ta(h,d,j)}F[f+24>>2]=p;F[f+20>>2]=n;F[f+16>>2]=h;if(d){ra(d);o=F[a+8>>2]}d=h}if((g|0)==-1){break n}u:{if((g>>>0)%3|0){c=g-1|0;break u}c=g+2|0;if((c|0)==-1){break n}}c=F[F[o+12>>2]+(c<<2)>>2];if((c|0)==-1){break n}c=c+((c>>>0)%3|0?-1:2)|0;if((c|0)==-1){break n}i=g;if((g|0)==(c|0)){break n}while(1){e=c;v:{w:{c=F[a+220>>2];k=F[a+216>>2];if((c|0)==(k|0)){break w}c=(c-k|0)/144|0;l=c>>>0>1?c:1;c=0;while(1){m=F[(k+L(c,144)|0)+32>>2];j=e<<2;if(F[m+j>>2]==F[m+(i<<2)>>2]){c=c+1|0;if((l|0)!=(c|0)){continue}break w}break}d=b+j|0;m=n-h|0;j=m>>2;F[d>>2]=j;if(n>>>0

>>0){F[n>>2]=e;n=n+4|0;F[f+20>>2]=n;d=h;break v}i=j+1|0;if(i>>>0>=1073741824){break j}c=p-h|0;d=c>>1;i=c>>>0<2147483644?d>>>0>i>>>0?d:i:1073741823;if(i){if(i>>>0>=1073741824){break k}d=sa(i<<2)}else{d=0}c=d+(j<<2)|0;F[c>>2]=e;p=(i<<2)+d|0;n=c+4|0;if((m|0)>0){ta(d,h,m)}F[f+24>>2]=p;F[f+20>>2]=n;F[f+16>>2]=d;if(!h){h=d;break v}ra(h);o=F[a+8>>2];h=d;break v}F[(e<<2)+b>>2]=F[(i<<2)+b>>2]}if((e|0)==-1){break n}x:{if((e>>>0)%3|0){c=e-1|0;break x}c=e+2|0;if((c|0)==-1){break n}}c=F[F[o+12>>2]+(c<<2)>>2];if((c|0)==-1){break n}c=c+((c>>>0)%3|0?-1:2)|0;if((c|0)==-1){break n}i=e;if((c|0)!=(g|0)){continue}break}}q=q+1|0;c=F[o+24>>2];if((q|0)>2]-c>>2){continue}break}break i}va();V()}va();V()}za();V()}va();V()}m=F[a+4>>2];d=F[m+44>>2];a=F[d+100>>2];k=F[d+96>>2];y:{if((a|0)==(k|0)){break y}d=(a-k|0)/12|0;a=d>>>0>1?d:1;j=a&1;c=0;if(d>>>0>=2){i=a&-2;d=0;while(1){e=L(c,12);l=e+b|0;g=F[l+4>>2];a=F[l>>2];e=e+k|0;F[e+8>>2]=F[l+8>>2];F[e>>2]=a;F[e+4>>2]=g;e=L(c|1,12);l=e+b|0;g=F[l+4>>2];a=F[l>>2];e=e+k|0;F[e+8>>2]=F[l+8>>2];F[e>>2]=a;F[e+4>>2]=g;c=c+2|0;d=d+2|0;if((i|0)!=(d|0)){continue}break}}if(!j){break y}c=L(c,12);g=c+b|0;d=F[g+4>>2];a=F[g>>2];c=c+k|0;F[c+8>>2]=F[g+8>>2];F[c>>2]=a;F[c+4>>2]=d}F[F[m+4>>2]+80>>2]=n-h>>2;i=1}c=i;if(b){ra(b)}if(!h){break e}F[f+20>>2]=h;ra(h)}ea=f+32|0;return c}function lj(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,G=0,H=0,I=0,J=0,K=0;h=ea+-64|0;ea=h;F[a+8>>2]=e;w=a+32|0;f=F[w>>2];d=F[a+36>>2]-f>>2;a:{b:{if(d>>>0>>0){Aa(w,e-d|0);F[h+56>>2]=0;F[h+60>>2]=0;F[h+48>>2]=0;F[h+52>>2]=0;F[h+40>>2]=0;F[h+44>>2]=0;F[h+32>>2]=0;F[h+36>>2]=0;F[h+24>>2]=0;F[h+28>>2]=0;F[h+16>>2]=0;F[h+20>>2]=0;F[h>>2]=0;break b}if(d>>>0>e>>>0){F[a+36>>2]=f+(e<<2)}F[h+56>>2]=0;F[h+60>>2]=0;F[h+48>>2]=0;F[h+52>>2]=0;F[h+40>>2]=0;F[h+44>>2]=0;F[h+32>>2]=0;F[h+36>>2]=0;F[h+24>>2]=0;F[h+28>>2]=0;F[h+16>>2]=0;F[h+20>>2]=0;F[h>>2]=0;d=0;if(!e){break a}}Ia(h+16|0,e,h);i=F[h+28>>2];d=F[h+32>>2]}F[h>>2]=0;d=d-i>>2;c:{if(d>>>0>=e>>>0){if(d>>>0<=e>>>0){break c}F[h+32>>2]=(e<<2)+i;break c}Ia(h+16|12,e-d|0,h)}F[h>>2]=0;f=F[h+40>>2];d=F[h+44>>2]-f>>2;d:{if(d>>>0>=e>>>0){if(d>>>0<=e>>>0){break d}F[h+44>>2]=f+(e<<2);break d}Ia(h+40|0,e-d|0,h)}F[h>>2]=0;f=F[h+52>>2];d=F[h+56>>2]-f>>2;e:{if(d>>>0>=e>>>0){if(d>>>0<=e>>>0){break e}F[h+56>>2]=f+(e<<2);break e}Ia(h+52|0,e-d|0,h)}f:{if(F[a+8>>2]<=0){break f}g=F[h+16>>2];j=F[a+32>>2];i=0;while(1){d=i<<2;f=F[d+g>>2];m=F[a+16>>2];g:{if((f|0)>(m|0)){F[d+j>>2]=m;break g}d=d+j|0;m=F[a+12>>2];if((m|0)>(f|0)){F[d>>2]=m;break g}F[d>>2]=f}i=i+1|0;d=F[a+8>>2];if((i|0)<(d|0)){continue}break}if((d|0)<=0){break f}d=0;while(1){g=d<<2;f=g+c|0;g=F[b+g>>2]+F[g+j>>2]|0;F[f>>2]=g;h:{if((g|0)>F[a+16>>2]){g=g-F[a+20>>2]|0}else{if((g|0)>=F[a+12>>2]){break h}g=g+F[a+20>>2]|0}F[f>>2]=g}d=d+1|0;if((d|0)>2]){continue}break}}G=F[a+52>>2];z=F[a+48>>2];x=sa(16);d=x;F[d>>2]=0;F[d+4>>2]=0;F[d+8>>2]=0;F[d+12>>2]=0;F[h+8>>2]=0;F[h>>2]=0;F[h+4>>2]=0;i:{if(e){if(e>>>0>=1073741824){break i}d=e<<2;t=sa(d);F[h>>2]=t;F[h+8>>2]=d+t;ua(t,0,d)}d=F[a+56>>2];A=F[d>>2];d=F[d+4>>2]-A|0;j:{if((d|0)<5){break j}v=d>>2;H=(v|0)>2?v:2;I=v>>>0>1?v:1;B=e&-2;C=e&1;J=e&-4;D=e&3;y=e-1|0;K=e<<2;E=1;m=1;while(1){k:{l:{m:{n:{if((m|0)!=(I|0)){o:{p:{f=F[(m<<2)+A>>2];if((f|0)==-1){break p}n=F[z+12>>2];d=f+2|0;g=(f>>>0)%3|0;q=n+((g?f-1|0:d)<<2)|0;j=0;u=(g|0)!=0|(d|0)!=-1;k=1;d=f;q:{while(1){g=F[n+(d<<2)>>2];r:{if((g|0)==-1){break r}l=-1;p=F[G>>2];r=F[z>>2];i=p+(F[r+(g<<2)>>2]<<2)|0;o=g+1|0;o=(o>>>0)%3|0?o:g-2|0;if((o|0)!=-1){l=F[r+(o<<2)>>2]}o=F[i>>2];s:{t:{if((g>>>0)%3|0){i=g-1|0;break t}i=g+2|0;s=-1;if((i|0)==-1){break s}}s=F[r+(i<<2)>>2]}if((m|0)<=(o|0)){break r}i=F[p+(l<<2)>>2];if((i|0)>=(m|0)){break r}l=F[p+(s<<2)>>2];if((l|0)>=(m|0)){break r}g=F[(h+16|0)+L(j,12)>>2];u:{if(!e){break u}l=L(e,l);r=L(e,i);p=L(e,o);i=0;s=0;if(y){while(1){F[g+(i<<2)>>2]=(F[(i+l<<2)+c>>2]+F[(i+r<<2)+c>>2]|0)-F[(i+p<<2)+c>>2];o=i|1;F[g+(o<<2)>>2]=(F[(l+o<<2)+c>>2]+F[(o+r<<2)+c>>2]|0)-F[(o+p<<2)+c>>2];i=i+2|0;s=s+2|0;if((B|0)!=(s|0)){continue}break}}if(!C){break u}F[g+(i<<2)>>2]=(F[(i+l<<2)+c>>2]+F[(i+r<<2)+c>>2]|0)-F[(i+p<<2)+c>>2]}g=4;j=j+1|0;if((j|0)==4){break q}}v:{if(k&1){i=d+1|0;d=(i>>>0)%3|0?i:d-2|0;g=-1;if((d|0)==-1){break v}d=F[n+(d<<2)>>2];g=-1;if((d|0)==-1){break v}g=d+1|0;g=(g>>>0)%3|0?g:d-2|0;break v}w:{if((d>>>0)%3|0){i=d-1|0;break w}i=d+2|0;g=-1;if((i|0)==-1){break v}}d=F[n+(i<<2)>>2];g=-1;if((d|0)==-1){break v}g=d-1|0;if((d>>>0)%3|0){break v}g=d+2|0}d=g;x:{if((f|0)==(d|0)){break x}if(!((k^1)&1|(d|0)!=-1)){if(!u){break x}d=F[q>>2];if((d|0)==-1){break x}k=0;d=(d>>>0)%3|0?d-1|0:d+2|0}if((d|0)!=-1){continue}}break}g=j;if((g|0)<=0){break p}}if(e){ua(t,0,K)}d=g-1|0;r=(d<<2)+x|0;d=L(d,12)+a|0;o=d;s=F[d- -64>>2];k=0;d=F[h>>2];f=0;while(1){j=F[r>>2];F[r>>2]=j+1;if(j>>>0>=s>>>0){break j}y:{if(F[F[o+60>>2]+(j>>>3&536870908)>>2]>>>j&1){break y}f=f+1|0;if(!e){break y}j=F[(h+16|0)+L(k,12)>>2];l=0;i=0;p=0;if(y>>>0>=3){while(1){n=i<<2;q=n+d|0;F[q>>2]=F[q>>2]+F[j+n>>2];q=n|4;u=q+d|0;F[u>>2]=F[u>>2]+F[j+q>>2];q=n|8;u=q+d|0;F[u>>2]=F[u>>2]+F[j+q>>2];n=n|12;q=n+d|0;F[q>>2]=F[q>>2]+F[j+n>>2];i=i+4|0;p=p+4|0;if((J|0)!=(p|0)){continue}break}}if(!D){break y}while(1){n=i<<2;p=n+d|0;F[p>>2]=F[p>>2]+F[j+n>>2];i=i+1|0;l=l+1|0;if((D|0)!=(l|0)){continue}break}}k=k+1|0;if((k|0)!=(g|0)){continue}break}g=L(e,m);if(!f){break o}if(!e){break l}i=0;d=0;if(y){break n}break m}g=L(e,m)}if(F[a+8>>2]<=0){break k}k=(L(m-1|0,e)<<2)+c|0;j=F[w>>2];i=0;while(1){d=i<<2;f=F[d+k>>2];l=F[a+16>>2];z:{if((f|0)>(l|0)){F[d+j>>2]=l;break z}d=d+j|0;l=F[a+12>>2];if((l|0)>(f|0)){F[d>>2]=l;break z}F[d>>2]=f}i=i+1|0;f=F[a+8>>2];if((i|0)<(f|0)){continue}break}d=0;if((f|0)<=0){break k}f=g<<2;i=f+c|0;k=b+f|0;while(1){g=d<<2;f=g+i|0;g=F[g+k>>2]+F[g+j>>2]|0;F[f>>2]=g;A:{if((g|0)>F[a+16>>2]){g=g-F[a+20>>2]|0}else{if((g|0)>=F[a+12>>2]){break A}g=g+F[a+20>>2]|0}F[f>>2]=g}d=d+1|0;if((d|0)>2]){continue}break}break k}Ea();V()}while(1){j=i<<2;k=j+t|0;F[k>>2]=F[k>>2]/(f|0);j=(j|4)+t|0;F[j>>2]=F[j>>2]/(f|0);i=i+2|0;d=d+2|0;if((B|0)!=(d|0)){continue}break}}if(!C){break l}d=(i<<2)+t|0;F[d>>2]=F[d>>2]/(f|0)}if(F[a+8>>2]<=0){break k}j=F[w>>2];i=0;while(1){d=i<<2;f=F[d+t>>2];k=F[a+16>>2];B:{if((f|0)>(k|0)){F[d+j>>2]=k;break B}d=d+j|0;k=F[a+12>>2];if((k|0)>(f|0)){F[d>>2]=k;break B}F[d>>2]=f}i=i+1|0;f=F[a+8>>2];if((i|0)<(f|0)){continue}break}d=0;if((f|0)<=0){break k}f=g<<2;i=f+c|0;k=b+f|0;while(1){g=d<<2;f=g+i|0;g=F[g+k>>2]+F[g+j>>2]|0;F[f>>2]=g;C:{if((g|0)>F[a+16>>2]){g=g-F[a+20>>2]|0}else{if((g|0)>=F[a+12>>2]){break C}g=g+F[a+20>>2]|0}F[f>>2]=g}d=d+1|0;if((d|0)>2]){continue}break}}m=m+1|0;E=(v|0)>(m|0);if((m|0)!=(H|0)){continue}break}}a=F[h>>2];if(a){ra(a)}ra(x);a=F[h+52>>2];if(a){F[h+56>>2]=a;ra(a)}a=F[h+40>>2];if(a){F[h+44>>2]=a;ra(a)}a=F[h+28>>2];if(a){F[h+32>>2]=a;ra(a)}a=F[h+16>>2];if(a){F[h+20>>2]=a;ra(a)}ea=h- -64|0;return(E^-1)&1}va();V()}function cb(a,b){var c=0,d=0,e=0,f=0,g=0;e=ea-16|0;ea=e;F[a+12>>2]=b;F[a+8>>2]=0;F[a>>2]=0;F[a+4>>2]=0;d=a+16|0;F[d>>2]=0;F[d+4>>2]=0;D[d+5|0]=0;D[d+6|0]=0;D[d+7|0]=0;D[d+8|0]=0;D[d+9|0]=0;D[d+10|0]=0;D[d+11|0]=0;D[d+12|0]=0;c=d+16|0;F[c>>2]=0;F[c+4>>2]=0;D[c+5|0]=0;D[c+6|0]=0;D[c+7|0]=0;D[c+8|0]=0;D[c+9|0]=0;D[c+10|0]=0;D[c+11|0]=0;D[c+12|0]=0;c=d+32|0;F[c>>2]=0;F[c+4>>2]=0;D[c+5|0]=0;D[c+6|0]=0;D[c+7|0]=0;D[c+8|0]=0;D[c+9|0]=0;D[c+10|0]=0;D[c+11|0]=0;D[c+12|0]=0;c=d+48|0;F[c>>2]=0;F[c+4>>2]=0;D[c+5|0]=0;D[c+6|0]=0;D[c+7|0]=0;D[c+8|0]=0;D[c+9|0]=0;D[c+10|0]=0;D[c+11|0]=0;D[c+12|0]=0;c=d- -64|0;F[c>>2]=0;F[c+4>>2]=0;D[c+5|0]=0;D[c+6|0]=0;D[c+7|0]=0;D[c+8|0]=0;D[c+9|0]=0;D[c+10|0]=0;D[c+11|0]=0;D[c+12|0]=0;c=d+80|0;F[c>>2]=0;F[c+4>>2]=0;D[c+5|0]=0;D[c+6|0]=0;D[c+7|0]=0;D[c+8|0]=0;D[c+9|0]=0;D[c+10|0]=0;D[c+11|0]=0;D[c+12|0]=0;c=d+96|0;F[c>>2]=0;F[c+4>>2]=0;D[c+5|0]=0;D[c+6|0]=0;D[c+7|0]=0;D[c+8|0]=0;D[c+9|0]=0;D[c+10|0]=0;D[c+11|0]=0;D[c+12|0]=0;c=d+112|0;F[c>>2]=0;F[c+4>>2]=0;D[c+5|0]=0;D[c+6|0]=0;D[c+7|0]=0;D[c+8|0]=0;D[c+9|0]=0;D[c+10|0]=0;D[c+11|0]=0;D[c+12|0]=0;c=d+128|0;F[c>>2]=0;F[c+4>>2]=0;D[c+5|0]=0;D[c+6|0]=0;D[c+7|0]=0;D[c+8|0]=0;D[c+9|0]=0;D[c+10|0]=0;D[c+11|0]=0;D[c+12|0]=0;c=d+144|0;F[c>>2]=0;F[c+4>>2]=0;D[c+5|0]=0;D[c+6|0]=0;D[c+7|0]=0;D[c+8|0]=0;D[c+9|0]=0;D[c+10|0]=0;D[c+11|0]=0;D[c+12|0]=0;c=d+160|0;F[c>>2]=0;F[c+4>>2]=0;D[c+5|0]=0;D[c+6|0]=0;D[c+7|0]=0;D[c+8|0]=0;D[c+9|0]=0;D[c+10|0]=0;D[c+11|0]=0;D[c+12|0]=0;c=d+176|0;F[c>>2]=0;F[c+4>>2]=0;D[c+5|0]=0;D[c+6|0]=0;D[c+7|0]=0;D[c+8|0]=0;D[c+9|0]=0;D[c+10|0]=0;D[c+11|0]=0;D[c+12|0]=0;c=d+192|0;F[c>>2]=0;F[c+4>>2]=0;D[c+5|0]=0;D[c+6|0]=0;D[c+7|0]=0;D[c+8|0]=0;D[c+9|0]=0;D[c+10|0]=0;D[c+11|0]=0;D[c+12|0]=0;c=d+208|0;F[c>>2]=0;F[c+4>>2]=0;D[c+5|0]=0;D[c+6|0]=0;D[c+7|0]=0;D[c+8|0]=0;D[c+9|0]=0;D[c+10|0]=0;D[c+11|0]=0;D[c+12|0]=0;c=d+224|0;F[c>>2]=0;F[c+4>>2]=0;D[c+5|0]=0;D[c+6|0]=0;D[c+7|0]=0;D[c+8|0]=0;D[c+9|0]=0;D[c+10|0]=0;D[c+11|0]=0;D[c+12|0]=0;c=d+240|0;F[c>>2]=0;F[c+4>>2]=0;D[c+5|0]=0;D[c+6|0]=0;D[c+7|0]=0;D[c+8|0]=0;D[c+9|0]=0;D[c+10|0]=0;D[c+11|0]=0;D[c+12|0]=0;c=d+256|0;F[c>>2]=0;F[c+4>>2]=0;D[c+5|0]=0;D[c+6|0]=0;D[c+7|0]=0;D[c+8|0]=0;D[c+9|0]=0;D[c+10|0]=0;D[c+11|0]=0;D[c+12|0]=0;c=d+272|0;F[c>>2]=0;F[c+4>>2]=0;D[c+5|0]=0;D[c+6|0]=0;D[c+7|0]=0;D[c+8|0]=0;D[c+9|0]=0;D[c+10|0]=0;D[c+11|0]=0;D[c+12|0]=0;c=d+288|0;F[c>>2]=0;F[c+4>>2]=0;D[c+5|0]=0;D[c+6|0]=0;D[c+7|0]=0;D[c+8|0]=0;D[c+9|0]=0;D[c+10|0]=0;D[c+11|0]=0;D[c+12|0]=0;c=d+304|0;F[c>>2]=0;F[c+4>>2]=0;D[c+5|0]=0;D[c+6|0]=0;D[c+7|0]=0;D[c+8|0]=0;D[c+9|0]=0;D[c+10|0]=0;D[c+11|0]=0;D[c+12|0]=0;c=d+320|0;F[c>>2]=0;F[c+4>>2]=0;D[c+5|0]=0;D[c+6|0]=0;D[c+7|0]=0;D[c+8|0]=0;D[c+9|0]=0;D[c+10|0]=0;D[c+11|0]=0;D[c+12|0]=0;c=d+336|0;F[c>>2]=0;F[c+4>>2]=0;D[c+5|0]=0;D[c+6|0]=0;D[c+7|0]=0;D[c+8|0]=0;D[c+9|0]=0;D[c+10|0]=0;D[c+11|0]=0;D[c+12|0]=0;c=d+352|0;F[c>>2]=0;F[c+4>>2]=0;D[c+5|0]=0;D[c+6|0]=0;D[c+7|0]=0;D[c+8|0]=0;D[c+9|0]=0;D[c+10|0]=0;D[c+11|0]=0;D[c+12|0]=0;c=d+368|0;F[c>>2]=0;F[c+4>>2]=0;D[c+5|0]=0;D[c+6|0]=0;D[c+7|0]=0;D[c+8|0]=0;D[c+9|0]=0;D[c+10|0]=0;D[c+11|0]=0;D[c+12|0]=0;c=d+384|0;F[c>>2]=0;F[c+4>>2]=0;D[c+5|0]=0;D[c+6|0]=0;D[c+7|0]=0;D[c+8|0]=0;D[c+9|0]=0;D[c+10|0]=0;D[c+11|0]=0;D[c+12|0]=0;c=d+400|0;F[c>>2]=0;F[c+4>>2]=0;D[c+5|0]=0;D[c+6|0]=0;D[c+7|0]=0;D[c+8|0]=0;D[c+9|0]=0;D[c+10|0]=0;D[c+11|0]=0;D[c+12|0]=0;c=d+416|0;F[c>>2]=0;F[c+4>>2]=0;D[c+5|0]=0;D[c+6|0]=0;D[c+7|0]=0;D[c+8|0]=0;D[c+9|0]=0;D[c+10|0]=0;D[c+11|0]=0;D[c+12|0]=0;c=d+432|0;F[c>>2]=0;F[c+4>>2]=0;D[c+5|0]=0;D[c+6|0]=0;D[c+7|0]=0;D[c+8|0]=0;D[c+9|0]=0;D[c+10|0]=0;D[c+11|0]=0;D[c+12|0]=0;c=d+448|0;F[c>>2]=0;F[c+4>>2]=0;D[c+5|0]=0;D[c+6|0]=0;D[c+7|0]=0;D[c+8|0]=0;D[c+9|0]=0;D[c+10|0]=0;D[c+11|0]=0;D[c+12|0]=0;c=d+464|0;F[c>>2]=0;F[c+4>>2]=0;D[c+5|0]=0;D[c+6|0]=0;D[c+7|0]=0;D[c+8|0]=0;D[c+9|0]=0;D[c+10|0]=0;D[c+11|0]=0;D[c+12|0]=0;c=d+480|0;F[c>>2]=0;F[c+4>>2]=0;D[c+5|0]=0;D[c+6|0]=0;D[c+7|0]=0;D[c+8|0]=0;D[c+9|0]=0;D[c+10|0]=0;D[c+11|0]=0;D[c+12|0]=0;d=d+496|0;F[d>>2]=0;F[d+4>>2]=0;D[d+5|0]=0;D[d+6|0]=0;D[d+7|0]=0;D[d+8|0]=0;D[d+9|0]=0;D[d+10|0]=0;D[d+11|0]=0;D[d+12|0]=0;F[a+528>>2]=0;F[a+532>>2]=0;D[a+533|0]=0;D[a+534|0]=0;D[a+535|0]=0;D[a+536|0]=0;D[a+537|0]=0;D[a+538|0]=0;D[a+539|0]=0;D[a+540|0]=0;F[a+544>>2]=0;F[a+548>>2]=0;F[a+560>>2]=0;F[a+552>>2]=0;F[a+556>>2]=0;F[a+564>>2]=0;F[a+568>>2]=0;F[a+580>>2]=0;F[a+572>>2]=0;F[a+576>>2]=0;F[a+584>>2]=0;F[a+588>>2]=0;F[a+600>>2]=0;F[a+592>>2]=0;F[a+596>>2]=0;F[a+612>>2]=0;F[a+604>>2]=0;F[a+608>>2]=0;g=a+628|0;a:{b:{if(b){if(b>>>0<1073741824){break b}va();V()}F[a+616>>2]=0;F[a+620>>2]=0;F[a+624>>2]=0;F[e+8>>2]=0;F[e>>2]=0;F[e+4>>2]=0;d=1;break a}d=b<<2;c=sa(d);F[a+604>>2]=c;f=c+d|0;F[a+612>>2]=f;ua(c,0,d);F[a+624>>2]=0;F[a+616>>2]=0;F[a+620>>2]=0;F[a+608>>2]=f;c=sa(d);F[a+616>>2]=c;f=c+d|0;F[a+624>>2]=f;ua(c,0,d);F[a+620>>2]=f;c=sa(d);F[e>>2]=c;f=c+d|0;F[e+8>>2]=f;ua(c,0,d);F[e+4>>2]=f;d=b<<5|1}wb(g,d,e);c=F[e>>2];if(c){F[e+4>>2]=c;ra(c)}F[e+8>>2]=0;F[e>>2]=0;F[e+4>>2]=0;if(b){b=b<<2;c=sa(b);F[e>>2]=c;f=b+c|0;F[e+8>>2]=f;ua(c,0,b);F[e+4>>2]=f}wb(a+640|0,d,e);b=F[e>>2];if(b){F[e+4>>2]=b;ra(b)}ea=e+16|0;return a}function Kj(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0;j=a;a:{b:{c:{d:{e:{f:{g:{h:{a=F[a+8>>2];switch(F[a+28>>2]-1|0){case 4:break c;case 5:break d;case 2:break e;case 3:break f;case 0:break g;case 1:break h;default:break a}}e=D[a+24|0];c=sa((e|0)>=0?e:-1);a=F[j+16>>2];if(F[a+80>>2]){h=F[F[a>>2]>>2]+F[a+48>>2]|0}else{h=0}if(!b){break b}a=0;if((e|0)<=0){if((b|0)!=1){h=b&-2;while(1){ta(F[F[F[j+8>>2]+64>>2]>>2]+a|0,c,e);a=a+e|0;ta(a+F[F[F[j+8>>2]+64>>2]>>2]|0,c,e);a=a+e|0;d=d+2|0;if((h|0)!=(d|0)){continue}break}}if(!(b&1)){break b}ta(F[F[F[j+8>>2]+64>>2]>>2]+a|0,c,e);break b}o=e&-4;l=e&3;g=e-1>>>0<3;while(1){a=0;f=0;if(!g){while(1){k=h+(d<<2)|0;D[a+c|0]=F[k>>2];D[(a|1)+c|0]=F[k+4>>2];D[(a|2)+c|0]=F[k+8>>2];D[(a|3)+c|0]=F[k+12>>2];a=a+4|0;d=d+4|0;f=f+4|0;if((o|0)!=(f|0)){continue}break}}f=0;if(l){while(1){D[a+c|0]=F[h+(d<<2)>>2];a=a+1|0;d=d+1|0;f=f+1|0;if((l|0)!=(f|0)){continue}break}}ta(F[F[F[j+8>>2]+64>>2]>>2]+m|0,c,e);m=e+m|0;n=n+1|0;if((n|0)!=(b|0)){continue}break}break b}e=D[a+24|0];c=sa((e|0)>=0?e:-1);a=F[j+16>>2];if(F[a+80>>2]){h=F[F[a>>2]>>2]+F[a+48>>2]|0}else{h=0}if(!b){break b}a=0;if((e|0)<=0){if((b|0)!=1){h=b&-2;while(1){ta(F[F[F[j+8>>2]+64>>2]>>2]+a|0,c,e);a=a+e|0;ta(a+F[F[F[j+8>>2]+64>>2]>>2]|0,c,e);a=a+e|0;d=d+2|0;if((h|0)!=(d|0)){continue}break}}if(!(b&1)){break b}ta(F[F[F[j+8>>2]+64>>2]>>2]+a|0,c,e);break b}o=e&-4;l=e&3;g=e-1>>>0<3;while(1){a=0;f=0;if(!g){while(1){k=h+(d<<2)|0;D[a+c|0]=F[k>>2];D[(a|1)+c|0]=F[k+4>>2];D[(a|2)+c|0]=F[k+8>>2];D[(a|3)+c|0]=F[k+12>>2];a=a+4|0;d=d+4|0;f=f+4|0;if((o|0)!=(f|0)){continue}break}}f=0;if(l){while(1){D[a+c|0]=F[h+(d<<2)>>2];a=a+1|0;d=d+1|0;f=f+1|0;if((l|0)!=(f|0)){continue}break}}ta(F[F[F[j+8>>2]+64>>2]>>2]+m|0,c,e);m=e+m|0;n=n+1|0;if((n|0)!=(b|0)){continue}break}break b}g=D[a+24|0];a=g+g|0;c=sa(a>>>0>>0?-1:a);a=F[j+16>>2];if(F[a+80>>2]){h=F[F[a>>2]>>2]+F[a+48>>2]|0}else{h=0}if(!b){break b}i=g<<1;a=0;if((g|0)<=0){if((b|0)!=1){h=b&-2;while(1){ta(F[F[F[j+8>>2]+64>>2]>>2]+a|0,c,i);a=a+i|0;ta(a+F[F[F[j+8>>2]+64>>2]>>2]|0,c,i);a=a+i|0;d=d+2|0;if((h|0)!=(d|0)){continue}break}}if(!(b&1)){break b}ta(F[F[F[j+8>>2]+64>>2]>>2]+a|0,c,i);break b}o=g&-4;l=g&3;g=g-1>>>0<3;while(1){a=0;f=0;if(!g){while(1){e=a<<1;k=h+(d<<2)|0;E[e+c>>1]=F[k>>2];E[(e|2)+c>>1]=F[k+4>>2];E[(e|4)+c>>1]=F[k+8>>2];E[(e|6)+c>>1]=F[k+12>>2];a=a+4|0;d=d+4|0;f=f+4|0;if((o|0)!=(f|0)){continue}break}}f=0;if(l){while(1){E[(a<<1)+c>>1]=F[h+(d<<2)>>2];a=a+1|0;d=d+1|0;f=f+1|0;if((l|0)!=(f|0)){continue}break}}ta(F[F[F[j+8>>2]+64>>2]>>2]+n|0,c,i);n=i+n|0;m=m+1|0;if((m|0)!=(b|0)){continue}break}break b}g=D[a+24|0];a=g+g|0;c=sa(a>>>0>>0?-1:a);a=F[j+16>>2];if(F[a+80>>2]){h=F[F[a>>2]>>2]+F[a+48>>2]|0}else{h=0}if(!b){break b}i=g<<1;a=0;if((g|0)<=0){if((b|0)!=1){h=b&-2;while(1){ta(F[F[F[j+8>>2]+64>>2]>>2]+a|0,c,i);a=a+i|0;ta(a+F[F[F[j+8>>2]+64>>2]>>2]|0,c,i);a=a+i|0;d=d+2|0;if((h|0)!=(d|0)){continue}break}}if(!(b&1)){break b}ta(F[F[F[j+8>>2]+64>>2]>>2]+a|0,c,i);break b}o=g&-4;l=g&3;g=g-1>>>0<3;while(1){a=0;f=0;if(!g){while(1){e=a<<1;k=h+(d<<2)|0;E[e+c>>1]=F[k>>2];E[(e|2)+c>>1]=F[k+4>>2];E[(e|4)+c>>1]=F[k+8>>2];E[(e|6)+c>>1]=F[k+12>>2];a=a+4|0;d=d+4|0;f=f+4|0;if((o|0)!=(f|0)){continue}break}}f=0;if(l){while(1){E[(a<<1)+c>>1]=F[h+(d<<2)>>2];a=a+1|0;d=d+1|0;f=f+1|0;if((l|0)!=(f|0)){continue}break}}ta(F[F[F[j+8>>2]+64>>2]>>2]+n|0,c,i);n=i+n|0;m=m+1|0;if((m|0)!=(b|0)){continue}break}break b}g=D[a+24|0];i=g<<2;c=sa((g|0)!=(g&1073741823)?-1:i);a=F[j+16>>2];if(F[a+80>>2]){h=F[F[a>>2]>>2]+F[a+48>>2]|0}else{h=0}if(!b){break b}a=0;if((g|0)<=0){if((b|0)!=1){h=b&-2;while(1){ta(F[F[F[j+8>>2]+64>>2]>>2]+a|0,c,i);a=a+i|0;ta(a+F[F[F[j+8>>2]+64>>2]>>2]|0,c,i);a=a+i|0;d=d+2|0;if((h|0)!=(d|0)){continue}break}}if(!(b&1)){break b}ta(F[F[F[j+8>>2]+64>>2]>>2]+a|0,c,i);break b}o=g&-4;l=g&3;g=g-1>>>0<3;while(1){a=0;f=0;if(!g){while(1){e=a<<2;k=h+(d<<2)|0;F[e+c>>2]=F[k>>2];F[(e|4)+c>>2]=F[k+4>>2];F[(e|8)+c>>2]=F[k+8>>2];F[(e|12)+c>>2]=F[k+12>>2];a=a+4|0;d=d+4|0;f=f+4|0;if((o|0)!=(f|0)){continue}break}}f=0;if(l){while(1){F[(a<<2)+c>>2]=F[h+(d<<2)>>2];a=a+1|0;d=d+1|0;f=f+1|0;if((l|0)!=(f|0)){continue}break}}ta(F[F[F[j+8>>2]+64>>2]>>2]+n|0,c,i);n=i+n|0;m=m+1|0;if((m|0)!=(b|0)){continue}break}break b}g=D[a+24|0];i=g<<2;c=sa((g|0)!=(g&1073741823)?-1:i);a=F[j+16>>2];if(F[a+80>>2]){h=F[F[a>>2]>>2]+F[a+48>>2]|0}else{h=0}if(!b){break b}a=0;if((g|0)<=0){if((b|0)!=1){h=b&-2;while(1){ta(F[F[F[j+8>>2]+64>>2]>>2]+a|0,c,i);a=a+i|0;ta(a+F[F[F[j+8>>2]+64>>2]>>2]|0,c,i);a=a+i|0;d=d+2|0;if((h|0)!=(d|0)){continue}break}}if(!(b&1)){break b}ta(F[F[F[j+8>>2]+64>>2]>>2]+a|0,c,i);break b}o=g&-4;l=g&3;g=g-1>>>0<3;while(1){a=0;f=0;if(!g){while(1){e=a<<2;k=h+(d<<2)|0;F[e+c>>2]=F[k>>2];F[(e|4)+c>>2]=F[k+4>>2];F[(e|8)+c>>2]=F[k+8>>2];F[(e|12)+c>>2]=F[k+12>>2];a=a+4|0;d=d+4|0;f=f+4|0;if((o|0)!=(f|0)){continue}break}}f=0;if(l){while(1){F[(a<<2)+c>>2]=F[h+(d<<2)>>2];a=a+1|0;d=d+1|0;f=f+1|0;if((l|0)!=(f|0)){continue}break}}ta(F[F[F[j+8>>2]+64>>2]>>2]+n|0,c,i);n=i+n|0;m=m+1|0;if((m|0)!=(b|0)){continue}break}}ra(c);c=1}return c|0}function fj(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,E=0,H=0,I=0,J=0,K=0,L=0,M=0,N=0,O=0,P=0,Q=0,R=0,S=0,T=0,U=0,W=0;a:{if((e|0)==2){F[a+8>>2]=2;F[a- -64>>2]=f;H=a+32|0;e=F[H>>2];d=F[a+36>>2]-e|0;b:{if(d>>>0<=7){Aa(H,2-(d>>>2|0)|0);break b}if((d|0)==8){break b}F[a+36>>2]=e+8}d=F[a+56>>2];d=F[d+4>>2]-F[d>>2]|0;c:{if((d|0)<=0){f=0;break c}n=a+60|0;I=d>>2;S=(I|0)>1?I:1;T=a+68|0;f=1;while(1){e=F[a+56>>2];d=F[e>>2];if(F[e+4>>2]-d>>2>>>0<=r>>>0){break a}k=ea-80|0;ea=k;e=-1;d:{e:{i=F[d+(r<<2)>>2];if((i|0)==-1){break e}h=F[n+32>>2];d=i+1|0;d=(d>>>0)%3|0?d:i-2|0;if((d|0)!=-1){e=F[F[h>>2]+(d<<2)>>2]}d=-1;i=i+((i>>>0)%3|0?-1:2)|0;if((i|0)!=-1){d=F[F[h>>2]+(i<<2)>>2]}h=F[n+36>>2];i=F[h>>2];h=F[h+4>>2]-i>>2;if(h>>>0<=e>>>0|d>>>0>=h>>>0){break e}h=F[i+(e<<2)>>2];f:{g:{h:{i:{j:{k:{i=F[i+(d<<2)>>2];if((i|0)>=(r|0)|(h|0)>=(r|0)){break k}d=(i<<3)+c|0;v=F[d+4>>2];e=(h<<3)+c|0;w=F[e+4>>2];x=F[d>>2];B=F[e>>2];if(!((x|0)!=(B|0)|(v|0)!=(w|0))){F[n+8>>2]=B;F[n+12>>2]=w;break j}d=F[F[n+4>>2]+(r<<2)>>2];F[k+72>>2]=0;F[k+76>>2]=0;e=k- -64|0;F[e>>2]=0;F[e+4>>2]=0;F[k+56>>2]=0;F[k+60>>2]=0;e=F[n>>2];if(!G[e+84|0]){d=F[F[e+68>>2]+(d<<2)>>2]}Va(e,d,D[e+24|0],k+56|0);d=F[F[n+4>>2]+(h<<2)>>2];F[k+48>>2]=0;F[k+52>>2]=0;F[k+40>>2]=0;F[k+44>>2]=0;F[k+32>>2]=0;F[k+36>>2]=0;e=F[n>>2];if(!G[e+84|0]){d=F[F[e+68>>2]+(d<<2)>>2]}Va(e,d,D[e+24|0],k+32|0);e=F[F[n+4>>2]+(i<<2)>>2];F[k+24>>2]=0;F[k+28>>2]=0;F[k+16>>2]=0;F[k+20>>2]=0;F[k+8>>2]=0;F[k+12>>2]=0;d=F[n>>2];if(!G[d+84|0]){e=F[F[d+68>>2]+(e<<2)>>2]}Va(d,e,D[d+24|0],k+8|0);J=F[k+44>>2];d=F[k+16>>2];s=F[k+40>>2];e=s;i=F[k+20>>2]-(J+(d>>>0>>0)|0)|0;l=d-e|0;d=Mj(l,i,l,i);g=fa;m=d;K=F[k+36>>2];d=F[k+8>>2];C=F[k+32>>2];e=C;j=F[k+12>>2]-(K+(d>>>0>>0)|0)|0;e=d-e|0;o=Mj(e,j,e,j);m=m+o|0;d=fa+g|0;d=m>>>0>>0?d+1|0:d;q=m;L=F[k+52>>2];g=F[k+24>>2];E=F[k+48>>2];o=E;m=F[k+28>>2]-(L+(g>>>0>>0)|0)|0;u=g-o|0;p=Mj(u,m,u,m);o=q+p|0;g=fa+d|0;t=o;o=o>>>0

>>0?g+1|0:g;if(!(t|o)){break k}M=F[k+64>>2];d=M;N=F[k+68>>2];d=Mj(d-s|0,N-((d>>>0>>0)+J|0)|0,l,i);h=fa;g=d;O=F[k+56>>2];d=O;P=F[k+60>>2];p=Mj(d-C|0,P-((d>>>0>>0)+K|0)|0,e,j);d=g+p|0;g=fa+h|0;g=d>>>0

>>0?g+1|0:g;h=d;Q=F[k+72>>2];d=Q;R=F[k+76>>2];p=Mj(d-E|0,R-((d>>>0>>0)+L|0)|0,u,m);h=h+p|0;d=fa+g|0;y=h;p=h>>>0

>>0?d+1|0:d;d=j>>31;h=d;g=e^d;d=(j^d)-((d>>>0>g>>>0)+d|0)|0;g=g-h|0;q=g;h=i>>31;z=h^l;A=z-h|0;h=(i^h)-((h>>>0>z>>>0)+h|0)|0;g=(d|0)==(h|0)&g>>>0>A>>>0|d>>>0>h>>>0;z=g?q:A;d=g?d:h;h=d;d=m>>31;g=d;A=d^u;d=A-d|0;g=(m^g)-((g>>>0>A>>>0)+g|0)|0;q=(h|0)==(g|0)&d>>>0>>0|h>>>0>g>>>0;g=Oj(-1,2147483647,q?z:d,q?h:g)>>>0>>0;h=fa;d=0;if(g&(h|0)<=(p|0)|(h|0)<(p|0)){break f}h=1;d=0;g=M;q=s;s=Nj(Mj(l,i,y,p),fa,t,o);i=q+s|0;l=fa+J|0;l=i>>>0>>0?l+1|0:l;l=N-((i>>>0>g>>>0)+l|0)|0;i=g-i|0;i=Mj(i,l,i,l);l=fa;g=O;q=i;j=Nj(Mj(e,j,y,p),fa,t,o);e=j+C|0;i=fa+K|0;i=e>>>0>>0?i+1|0:i;i=P-((e>>>0>g>>>0)+i|0)|0;e=g-e|0;j=Mj(e,i,e,i);i=q+j|0;e=fa+l|0;e=i>>>0>>0?e+1|0:e;j=i;i=e;e=Q;g=j;m=Nj(Mj(u,m,y,p),fa,t,o);j=m+E|0;l=fa+L|0;l=j>>>0>>0?l+1|0:l;m=R-((e>>>0>>0)+l|0)|0;e=e-j|0;j=Mj(e,m,e,m);e=g+j|0;i=fa+i|0;j=Mj(e,e>>>0>>0?i+1|0:i,t,o);e=fa;m=e;if(!e&j>>>0<=1){break i}g=j;e=m;while(1){i=d<<1|h>>>31;h=h<<1;d=i;l=!e&g>>>0>7|(e|0)!=0;g=(e&3)<<30|g>>>2;e=e>>>2|0;if(l){continue}break}break h}if((h|0)<(r|0)){d=h<<1}else{if((r|0)<=0){F[n+8>>2]=0;F[n+12>>2]=0;break j}d=(r<<1)-2|0}d=(d<<2)+c|0;F[n+8>>2]=F[d>>2];F[n+12>>2]=F[d+4>>2]}d=1;break f}d=m;h=j;if(h-1|0){break g}}while(1){e=Oj(j,m,h,d)+h|0;g=d+fa|0;g=e>>>0>>0?g+1|0:g;h=(g&1)<<31|e>>>1;d=g>>>1|0;e=Mj(h,d,h,d);i=fa;if((m|0)==(i|0)&e>>>0>j>>>0|i>>>0>m>>>0){continue}break}}i=F[n+20>>2];if(i){e=i-1|0;m=F[F[n+16>>2]+(e>>>3&536870908)>>2];F[n+20>>2]=e;j=w;u=v-j|0;g=j>>31;v=(v>>31)-(g+(j>>>0>v>>>0)|0)|0;j=Mj(y,p,u,v);l=fa;g=Mj(w,g,t,o);j=g+j|0;l=fa+l|0;l=j>>>0>>0?l+1|0:l;q=j;j=B;w=x-j|0;s=j>>31;x=(x>>31)-(s+(j>>>0>x>>>0)|0)|0;j=Mj(h,d,w,x);g=j;e=m>>>e&1;m=e?0-j|0:j;j=q+m|0;q=l;l=fa;g=q+(e?0-(l+((g|0)!=0)|0)|0:l)|0;U=n,W=Nj(j,j>>>0>>0?g+1|0:g,t,o),F[U+12>>2]=W;j=Mj(w,x,y,p);m=fa;g=Mj(t,o,B,s);j=g+j|0;l=fa+m|0;l=j>>>0>>0?l+1|0:l;g=j;d=Mj(h,d,u,v);j=e?d:0-d|0;h=g+j|0;m=fa;e=(e?m:0-(((d|0)!=0)+m|0)|0)+l|0;U=n,W=Nj(h,h>>>0>>0?e+1|0:e,t,o),F[U+8>>2]=W}d=(i|0)!=0}ea=k+80|0;break d}Ea();V()}if(!d){break c}l:{if(F[a+8>>2]<=0){break l}i=F[H>>2];d=0;while(1){e=d<<2;f=F[e+T>>2];h=F[a+16>>2];m:{if((f|0)>(h|0)){F[e+i>>2]=h;break m}e=e+i|0;h=F[a+12>>2];if((h|0)>(f|0)){F[e>>2]=h;break m}F[e>>2]=f}d=d+1|0;f=F[a+8>>2];if((d|0)<(f|0)){continue}break}e=0;if((f|0)<=0){break l}d=r<<3;h=d+c|0;j=b+d|0;while(1){f=e<<2;d=f+h|0;f=F[f+j>>2]+F[f+i>>2]|0;F[d>>2]=f;n:{if((f|0)>F[a+16>>2]){f=f-F[a+20>>2]|0}else{if((f|0)>=F[a+12>>2]){break n}f=f+F[a+20>>2]|0}F[d>>2]=f}e=e+1|0;if((e|0)>2]){continue}break}}r=r+1|0;f=(I|0)>(r|0);if((r|0)!=(S|0)){continue}break}}a=f^1}else{a=0}return a&1}Ea();V()}function uj(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,E=0,H=0,I=0,J=0,K=0,L=0,M=0,N=0,O=0,P=0,Q=0,R=0,S=0,T=0,U=0,W=0;a:{if((e|0)==2){F[a+8>>2]=2;F[a- -64>>2]=f;I=a+32|0;e=F[I>>2];d=F[a+36>>2]-e|0;b:{if(d>>>0<=7){Aa(I,2-(d>>>2|0)|0);break b}if((d|0)==8){break b}F[a+36>>2]=e+8}d=F[a+56>>2];d=F[d+4>>2]-F[d>>2]|0;c:{if((d|0)<=0){f=0;break c}n=a+60|0;J=d>>2;S=(J|0)>1?J:1;T=a+68|0;f=1;while(1){d=F[a+56>>2];i=F[d>>2];if(F[d+4>>2]-i>>2>>>0<=q>>>0){break a}k=ea-80|0;ea=k;e=-1;i=F[i+(q<<2)>>2];d=-1;d:{if((i|0)==-1){break d}d=i+1|0;e=(d>>>0)%3|0?d:i-2|0;d=i-1|0;if((i>>>0)%3|0){break d}d=i+2|0}g=F[n+36>>2];i=F[g>>2];e:{f:{g:{h:{i:{g=F[g+4>>2]-i>>2;j=e<<2;e=F[F[n+32>>2]+28>>2];j=F[j+e>>2];if(g>>>0<=j>>>0){break i}d=F[e+(d<<2)>>2];if(d>>>0>=g>>>0){break i}g=F[i+(j<<2)>>2];j:{k:{i=F[i+(d<<2)>>2];if((i|0)>=(q|0)|(g|0)>=(q|0)){break k}d=(i<<3)+c|0;w=F[d+4>>2];e=(g<<3)+c|0;x=F[e+4>>2];y=F[d>>2];C=F[e>>2];if(!((y|0)!=(C|0)|(w|0)!=(x|0))){F[n+8>>2]=C;F[n+12>>2]=x;break j}d=F[F[n+4>>2]+(q<<2)>>2];F[k+72>>2]=0;F[k+76>>2]=0;e=k- -64|0;F[e>>2]=0;F[e+4>>2]=0;F[k+56>>2]=0;F[k+60>>2]=0;e=F[n>>2];if(!G[e+84|0]){d=F[F[e+68>>2]+(d<<2)>>2]}Va(e,d,D[e+24|0],k+56|0);d=F[F[n+4>>2]+(g<<2)>>2];F[k+48>>2]=0;F[k+52>>2]=0;F[k+40>>2]=0;F[k+44>>2]=0;F[k+32>>2]=0;F[k+36>>2]=0;e=F[n>>2];if(!G[e+84|0]){d=F[F[e+68>>2]+(d<<2)>>2]}Va(e,d,D[e+24|0],k+32|0);d=F[F[n+4>>2]+(i<<2)>>2];F[k+24>>2]=0;F[k+28>>2]=0;F[k+16>>2]=0;F[k+20>>2]=0;F[k+8>>2]=0;F[k+12>>2]=0;e=F[n>>2];if(!G[e+84|0]){d=F[F[e+68>>2]+(d<<2)>>2]}Va(e,d,D[e+24|0],k+8|0);K=F[k+44>>2];d=F[k+16>>2];r=F[k+40>>2];e=r;i=F[k+20>>2]-(K+(d>>>0>>0)|0)|0;l=d-e|0;d=Mj(l,i,l,i);h=fa;m=d;L=F[k+36>>2];d=F[k+8>>2];E=F[k+32>>2];e=E;j=F[k+12>>2]-(L+(d>>>0>>0)|0)|0;e=d-e|0;o=Mj(e,j,e,j);m=m+o|0;d=fa+h|0;d=m>>>0>>0?d+1|0:d;s=m;M=F[k+52>>2];h=F[k+24>>2];H=F[k+48>>2];o=H;m=F[k+28>>2]-(M+(h>>>0>>0)|0)|0;v=h-o|0;p=Mj(v,m,v,m);o=s+p|0;h=fa+d|0;u=o;o=o>>>0

>>0?h+1|0:h;if(!(u|o)){break k}s=F[k+64>>2];d=s;N=F[k+68>>2];d=Mj(d-r|0,N-((d>>>0>>0)+K|0)|0,l,i);g=fa;h=d;O=F[k+56>>2];d=O;P=F[k+60>>2];p=Mj(d-E|0,P-((d>>>0>>0)+L|0)|0,e,j);d=h+p|0;h=fa+g|0;h=d>>>0

>>0?h+1|0:h;g=d;Q=F[k+72>>2];d=Q;R=F[k+76>>2];p=Mj(d-H|0,R-((d>>>0>>0)+M|0)|0,v,m);g=g+p|0;d=fa+h|0;z=g;p=g>>>0

>>0?d+1|0:d;d=j>>31;g=d;h=e^d;d=(d^j)-(d+(d>>>0>h>>>0)|0)|0;t=h-g|0;h=i>>31;g=h;A=g^l;B=A-g|0;g=(i^g)-((g>>>0>A>>>0)+g|0)|0;h=(d|0)==(g|0)&t>>>0>B>>>0|d>>>0>g>>>0;A=h?t:B;d=h?d:g;h=m>>31;g=h;B=g^v;t=B-g|0;g=(g^m)-((g>>>0>B>>>0)+g|0)|0;h=(d|0)==(g|0)&t>>>0>>0|d>>>0>g>>>0;h=Oj(-1,2147483647,h?A:t,h?d:g)>>>0>>0;d=fa;t=0;if(h&(d|0)<=(p|0)|(d|0)<(p|0)){break e}g=1;d=0;h=s;s=r;r=Nj(Mj(l,i,z,p),fa,u,o);i=s+r|0;l=fa+K|0;l=i>>>0>>0?l+1|0:l;l=N-((i>>>0>h>>>0)+l|0)|0;i=h-i|0;i=Mj(i,l,i,l);l=fa;h=O;r=i;j=Nj(Mj(e,j,z,p),fa,u,o);e=j+E|0;i=fa+L|0;i=e>>>0>>0?i+1|0:i;i=P-((e>>>0>h>>>0)+i|0)|0;e=h-e|0;j=Mj(e,i,e,i);i=r+j|0;e=fa+l|0;e=i>>>0>>0?e+1|0:e;j=i;i=e;e=Q;h=j;m=Nj(Mj(v,m,z,p),fa,u,o);j=m+H|0;l=fa+M|0;l=j>>>0>>0?l+1|0:l;m=R-((e>>>0>>0)+l|0)|0;e=e-j|0;j=Mj(e,m,e,m);e=h+j|0;i=fa+i|0;j=Mj(e,e>>>0>>0?i+1|0:i,u,o);e=fa;m=e;if(!e&j>>>0<=1){break h}h=j;e=m;while(1){i=d<<1|g>>>31;g=g<<1;d=i;l=!e&h>>>0>7|(e|0)!=0;h=(e&3)<<30|h>>>2;e=e>>>2|0;if(l){continue}break}break g}if((g|0)<(q|0)){d=g<<1}else{if((q|0)<=0){F[n+8>>2]=0;F[n+12>>2]=0;break j}d=(q<<1)-2|0}d=(d<<2)+c|0;F[n+8>>2]=F[d>>2];F[n+12>>2]=F[d+4>>2]}t=1;break e}Ea();V()}d=m;g=j;if(g-1|0){break f}}while(1){e=Oj(j,m,g,d)+g|0;h=d+fa|0;h=e>>>0>>0?h+1|0:h;g=(h&1)<<31|e>>>1;d=h>>>1|0;e=Mj(g,d,g,d);i=fa;if((m|0)==(i|0)&e>>>0>j>>>0|i>>>0>m>>>0){continue}break}}i=F[n+20>>2];if(i){e=i-1|0;m=F[F[n+16>>2]+(e>>>3&536870908)>>2];F[n+20>>2]=e;j=x;v=w-j|0;h=j>>31;w=(w>>31)-(h+(j>>>0>w>>>0)|0)|0;j=Mj(z,p,v,w);l=fa;h=Mj(x,h,u,o);j=h+j|0;l=fa+l|0;l=h>>>0>j>>>0?l+1|0:l;s=j;j=C;x=y-j|0;r=j>>31;y=(y>>31)-(r+(j>>>0>y>>>0)|0)|0;j=Mj(g,d,x,y);h=j;e=m>>>e&1;m=e?0-j|0:j;j=s+m|0;s=l;l=fa;h=s+(e?0-(l+((h|0)!=0)|0)|0:l)|0;U=n,W=Nj(j,j>>>0>>0?h+1|0:h,u,o),F[U+12>>2]=W;j=Mj(x,y,z,p);m=fa;h=Mj(u,o,C,r);j=h+j|0;l=fa+m|0;l=h>>>0>j>>>0?l+1|0:l;h=j;d=Mj(g,d,v,w);j=e?d:0-d|0;g=h+j|0;m=fa;e=(e?m:0-(((d|0)!=0)+m|0)|0)+l|0;U=n,W=Nj(g,j>>>0>g>>>0?e+1|0:e,u,o),F[U+8>>2]=W}t=(i|0)!=0}ea=k+80|0;if(!t){break c}l:{if(F[a+8>>2]<=0){break l}i=F[I>>2];d=0;while(1){e=d<<2;f=F[e+T>>2];g=F[a+16>>2];m:{if((f|0)>(g|0)){F[e+i>>2]=g;break m}e=e+i|0;g=F[a+12>>2];if((g|0)>(f|0)){F[e>>2]=g;break m}F[e>>2]=f}d=d+1|0;f=F[a+8>>2];if((d|0)<(f|0)){continue}break}e=0;if((f|0)<=0){break l}d=q<<3;g=d+c|0;j=b+d|0;while(1){f=e<<2;d=f+g|0;f=F[f+j>>2]+F[f+i>>2]|0;F[d>>2]=f;n:{if((f|0)>F[a+16>>2]){f=f-F[a+20>>2]|0}else{if((f|0)>=F[a+12>>2]){break n}f=f+F[a+20>>2]|0}F[d>>2]=f}e=e+1|0;if((e|0)>2]){continue}break}}q=q+1|0;f=(J|0)>(q|0);if((q|0)!=(S|0)){continue}break}}a=f^1}else{a=0}return a&1}Ea();V()}function xf(a){a=a|0;var b=0,c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=M(0),x=0;j=ea-32|0;ea=j;a:{if(!(F[a+60>>2]!=F[a- -64>>2]|F[a+48>>2]!=F[a+52>>2])){i=1;break a}i=1;if((ga[F[F[a>>2]+24>>2]](a)|0)<=0){break a}b:{c:{while(1){d:{c=ga[F[F[a>>2]+20>>2]](a,x)|0;e:{f:{g:{e=F[F[F[(ga[F[F[a>>2]+28>>2]](a)|0)+4>>2]+8>>2]+(c<<2)>>2];switch(F[e+28>>2]-1|0){case 8:break f;case 0:case 2:case 4:break g;default:break e}}c=D[e+24|0];F[j+24>>2]=0;F[j+16>>2]=0;F[j+20>>2]=0;h:{if(!c){i=0;F[j>>2]=0;o=0;break h}if((c|0)<0){break d}c=c<<2;i=sa(c);F[j+16>>2]=i;b=c+i|0;F[j+24>>2]=b;o=0;ua(i,0,c);F[j+20>>2]=b;c=D[e+24|0];F[j+8>>2]=0;F[j>>2]=0;F[j+4>>2]=0;if(!c){break h}if((c|0)<0){break c}c=c<<2;o=sa(c);F[j>>2]=o;ua(o,0,c)}i:{j:{k:{switch(F[e+28>>2]-1|0){case 4:k=0;f=0;h=0;m=0;c=0;b=0;l=ea-16|0;ea=l;d=D[e+24|0];F[l+8>>2]=0;F[l>>2]=0;F[l+4>>2]=0;l:{m:{if(d){if((d|0)<0){break m}d=d<<2;f=sa(d);F[l>>2]=f;F[l+8>>2]=d+f;ua(f,0,d);h=sa(d);ua(h,0,d)}n:{if(F[e+80>>2]){while(1){q=F[e>>2];g=F[q>>2];d=F[e+40>>2];n=F[e+48>>2]+Mj(d,F[e+44>>2],m,c)|0;n=ta(f,g+n|0,d);p=D[e+24|0];if((p|0)>0){v=F[a+48>>2];g=0;while(1){s=g<<2;t=F[s+n>>2];if((t|0)<0){break n}F[h+s>>2]=t+F[v+(g+u<<2)>>2];g=g+1|0;if((p|0)!=(g|0)){continue}break}}ta(F[q>>2]+L(d,m)|0,h,d);d=m+1|0;c=d?c:c+1|0;m=d;if(!c&I[e+80>>2]>d>>>0){continue}break}}b=1}if(h){ra(h)}if(f){ra(f)}ea=l+16|0;break l}va();V()}if(b){break j}break i;case 2:f=0;g=0;m=0;c=0;k=ea-16|0;ea=k;b=D[e+24|0];F[k+8>>2]=0;F[k>>2]=0;F[k+4>>2]=0;o:{p:{if(b){if((b|0)<0){break p}b=b<<1;g=sa(b);F[k>>2]=g;F[k+8>>2]=b+g;ua(g,0,b);f=sa(b);ua(f,0,b)}if(F[e+80>>2]){while(1){p=F[e>>2];b=F[p>>2];d=F[e+40>>2];h=F[e+48>>2]+Mj(d,F[e+44>>2],m,c)|0;l=ta(g,b+h|0,d);n=D[e+24|0];q:{if((n|0)<=0){break q}q=F[a+48>>2];h=0;if((n|0)!=1){v=n&-2;b=0;while(1){s=h<<1;E[s+f>>1]=H[l+s>>1]+H[q+(h+u<<2)>>1];s=h|1;t=s<<1;E[t+f>>1]=H[l+t>>1]+H[q+(u+s<<2)>>1];h=h+2|0;b=b+2|0;if((v|0)!=(b|0)){continue}break}}if(!(n&1)){break q}b=h<<1;E[b+f>>1]=H[b+l>>1]+H[q+(h+u<<2)>>1]}ta(F[p>>2]+L(d,m)|0,f,d);b=m+1|0;c=b?c:c+1|0;m=b;if(!c&I[e+80>>2]>b>>>0){continue}break}}if(f){ra(f)}if(g){ra(g)}ea=k+16|0;break o}va();V()}break j;case 0:break k;default:break j}}h=0;g=0;m=0;c=0;d=ea-16|0;ea=d;b=D[e+24|0];F[d+8>>2]=0;F[d>>2]=0;F[d+4>>2]=0;r:{s:{if(b){if((b|0)<0){break s}g=sa(b);F[d>>2]=g;F[d+8>>2]=b+g;ua(g,0,b);h=sa(b);ua(h,0,b)}if(F[e+80>>2]){while(1){f=F[F[e>>2]>>2];k=F[e+40>>2];b=F[e+48>>2]+Mj(k,F[e+44>>2],m,c)|0;b=ta(g,f+b|0,k);k=D[e+24|0];t:{if((k|0)<=0){break t}n=F[a+48>>2];f=0;if((k|0)!=1){p=k&-2;l=0;while(1){D[f+h|0]=G[b+f|0]+G[n+(f+u<<2)|0];q=f|1;D[q+h|0]=G[b+q|0]+G[n+(q+u<<2)|0];f=f+2|0;l=l+2|0;if((p|0)!=(l|0)){continue}break}}if(!(k&1)){break t}D[f+h|0]=G[b+f|0]+G[n+(f+u<<2)|0]}b=F[e+40>>2];ta(F[F[e>>2]>>2]+L(b,m)|0,h,b);b=m+1|0;c=b?c:c+1|0;m=b;if(!c&I[e+80>>2]>b>>>0){continue}break}}if(h){ra(h)}if(g){ra(g)}ea=d+16|0;break r}va();V()}}u=D[e+24|0]+u|0;k=1}if(o){ra(o)}if(i){ra(i)}if(k){break e}i=0;break a}g=F[F[a+60>>2]+(r<<2)>>2];f=F[a+36>>2];i=F[(ga[F[F[a>>2]+28>>2]](a)|0)+40>>2];F[j>>2]=F[e+56>>2];c=sa(32);F[j+16>>2]=c;F[j+20>>2]=24;F[j+24>>2]=-2147483616;D[c+24|0]=0;b=G[1206]|G[1207]<<8|(G[1208]<<16|G[1209]<<24);d=G[1202]|G[1203]<<8|(G[1204]<<16|G[1205]<<24);D[c+16|0]=d;D[c+17|0]=d>>>8;D[c+18|0]=d>>>16;D[c+19|0]=d>>>24;D[c+20|0]=b;D[c+21|0]=b>>>8;D[c+22|0]=b>>>16;D[c+23|0]=b>>>24;b=G[1198]|G[1199]<<8|(G[1200]<<16|G[1201]<<24);d=G[1194]|G[1195]<<8|(G[1196]<<16|G[1197]<<24);D[c+8|0]=d;D[c+9|0]=d>>>8;D[c+10|0]=d>>>16;D[c+11|0]=d>>>24;D[c+12|0]=b;D[c+13|0]=b>>>8;D[c+14|0]=b>>>16;D[c+15|0]=b>>>24;b=G[1190]|G[1191]<<8|(G[1192]<<16|G[1193]<<24);d=G[1186]|G[1187]<<8|(G[1188]<<16|G[1189]<<24);D[c|0]=d;D[c+1|0]=d>>>8;D[c+2|0]=d>>>16;D[c+3|0]=d>>>24;D[c+4|0]=b;D[c+5|0]=b>>>8;D[c+6|0]=b>>>16;D[c+7|0]=b>>>24;b=rd(i,j,j+16|0);if(D[j+27|0]<0){ra(F[j+16>>2])}c=r+1|0;u:{if(b){me(e,g);break u}m=f+L(r,24)|0;b=F[m+4>>2];r=D[e+24|0];f=r<<2;d=sa((r|0)!=(r&1073741823)?-1:f);n=j+16|0;F[n>>2]=1065353216;w=J[m+20>>2];b=-1<0){J[n>>2]=w/M(b|0)}if((b|0)<=0){break b}v:{if(!F[g+80>>2]){break v}if((r|0)<=0){o=0;i=0;while(1){ta(F[F[e+64>>2]>>2]+i|0,d,f);i=f+i|0;o=o+1|0;if(o>>>0>2]){continue}break}break v}q=F[F[g>>2]>>2]+F[g+48>>2]|0;v=r&-2;s=r&1;l=0;k=0;i=0;while(1){h=F[m+8>>2];w=J[n>>2];o=0;b=0;if((r|0)!=1){while(1){p=o<<2;t=q+(i<<2)|0;J[p+d>>2]=M(w*M(F[t>>2]))+J[h+p>>2];p=p|4;J[p+d>>2]=M(w*M(F[t+4>>2]))+J[h+p>>2];o=o+2|0;i=i+2|0;b=b+2|0;if((v|0)!=(b|0)){continue}break}}if(s){b=o<<2;J[b+d>>2]=M(w*M(F[q+(i<<2)>>2]))+J[b+h>>2];i=i+1|0}ta(F[F[e+64>>2]>>2]+k|0,d,f);k=f+k|0;l=l+1|0;if(l>>>0>2]){continue}break}}ra(d)}r=c}i=1;x=x+1|0;if((ga[F[F[a>>2]+24>>2]](a)|0)>(x|0)){continue}break a}break}va();V()}va();V()}ra(d);i=0}ea=j+32|0;return i|0}function ed(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0;g=ea-96|0;ea=g;n=F[a+4>>2];e=F[n+32>>2];k=F[e+8>>2];f=k;l=F[e+12>>2];d=l;c=F[e+20>>2];o=F[e+16>>2];a:{if((d|0)<=(c|0)&o>>>0>=f>>>0|(c|0)>(d|0)){break a}m=F[e>>2];p=G[m+o|0];f=o+1|0;d=f?c:c+1|0;F[e+16>>2]=f;F[e+20>>2]=d;if((d|0)>=(l|0)&f>>>0>=k>>>0|(d|0)>(l|0)){break a}j=G[f+m|0];f=o+2|0;d=f>>>0<2?c+1|0:c;i=f;F[e+16>>2]=f;F[e+20>>2]=d;q=p<<24>>24;b:{if((q|0)>=0){f=F[a+216>>2];if(p>>>0>=(F[a+220>>2]-f|0)/144>>>0){break a}f=f+L(p,144)|0;if(F[f>>2]<0){break b}break a}if(F[a+212>>2]>=0){break a}f=a+212|0}F[f>>2]=b;c:{d:{e:{f:{g:{h:{f=H[n+36>>1];i:{if(((f<<8|f>>>8)&65535)>>>0>=258){if((d|0)>=(l|0)&i>>>0>=k>>>0|(d|0)>(l|0)){break a}f=G[i+m|0];d=o+3|0;c=d>>>0<3?c+1|0:c;F[e+16>>2]=d;F[e+20>>2]=c;c=f>>>0>1;if(c){break a}c=c?0:f;if(!j){break i}if(!c){break h}break a}if(j){break g}c=0}if((q|0)<0){e=a+184|0}else{e=F[a+216>>2]+L(p,144)|0;D[e+100|0]=0;e=e+104|0}if((c|0)!=1){break e}c=ea-112|0;ea=c;m=F[F[a+4>>2]+44>>2];d=sa(120);F[d>>2]=12172;F[d+4>>2]=0;F[d+116>>2]=0;F[d+112>>2]=e;F[d+108>>2]=m;F[d+12>>2]=0;F[d+16>>2]=0;F[d+20>>2]=0;F[d+24>>2]=0;F[d+28>>2]=0;F[d+32>>2]=0;F[d+36>>2]=0;F[d+40>>2]=0;F[d+44>>2]=0;F[d+48>>2]=0;F[d+52>>2]=0;F[d+56>>2]=0;F[d+60>>2]=0;F[d+8>>2]=12384;f=d- -64|0;F[f>>2]=0;F[f+4>>2]=0;F[d+72>>2]=0;F[d+76>>2]=0;F[d+80>>2]=0;F[d+84>>2]=0;F[d+88>>2]=0;F[d+104>>2]=0;F[d+96>>2]=0;F[d+100>>2]=0;k=F[a+8>>2];F[c+48>>2]=0;F[c+52>>2]=0;F[c+40>>2]=0;F[c+44>>2]=0;j=c+32|0;f=j;F[f>>2]=0;F[f+4>>2]=0;F[c+24>>2]=0;F[c+28>>2]=0;f=c- -64|0;F[f>>2]=0;F[f+4>>2]=0;F[c+72>>2]=0;F[c+76>>2]=0;F[c+80>>2]=0;F[c+84>>2]=0;F[c+88>>2]=0;F[c+104>>2]=0;F[c+16>>2]=0;F[c+20>>2]=0;F[c+56>>2]=0;F[c+60>>2]=0;F[c+8>>2]=12384;F[c+96>>2]=0;F[c+100>>2]=0;F[c+12>>2]=k;i=F[k>>2];f=F[k+4>>2];D[c+111|0]=0;l=j;j=c+111|0;Qa(l,(f-i>>2>>>0)/3|0,j);f=F[c+12>>2];i=F[f+28>>2];f=F[f+24>>2];D[c+111|0]=0;Qa(c+44|0,i-f>>2,j);F[c+28>>2]=d;F[c+24>>2]=m;F[c+20>>2]=e;F[c+16>>2]=k;e=d+8|0;f=c+8|0;dd(e,f);j:{if((f|0)==(e|0)){F[d+92>>2]=F[f+84>>2];break j}Eb(d+56|0,F[f+48>>2],F[f+52>>2]);Eb(d+68|0,F[f+60>>2],F[f- -64>>2]);Eb(d+80|0,F[f+72>>2],F[f+76>>2]);F[d+92>>2]=F[f+84>>2];Ca(d+96|0,F[f+88>>2],F[f+92>>2])}F[c+8>>2]=12384;e=F[c+96>>2];if(e){F[c+100>>2]=e;ra(e)}e=F[c+80>>2];if(e){F[c+84>>2]=e;ra(e)}e=F[c+68>>2];if(e){F[c+72>>2]=e;ra(e)}e=F[c+56>>2];if(e){F[c+60>>2]=e;ra(e)}F[c+8>>2]=12620;e=F[c+44>>2];if(e){ra(e)}e=F[c+32>>2];if(e){ra(e)}ea=c+112|0;c=d;break d}if((q|0)>=0){break f}break a}if((q|0)<0){break a}}e=F[a+216>>2];f=F[n+44>>2];c=sa(80);F[c>>2]=12932;F[c+4>>2]=0;F[c+76>>2]=0;F[c+68>>2]=f;F[c+8>>2]=11872;F[c+12>>2]=0;F[c+16>>2]=0;F[c+20>>2]=0;F[c+24>>2]=0;F[c+28>>2]=0;F[c+32>>2]=0;F[c+36>>2]=0;F[c+40>>2]=0;F[c+44>>2]=0;F[c+48>>2]=0;F[c+52>>2]=0;h=e+L(p,144)|0;d=h+104|0;F[c+72>>2]=d;F[c- -64>>2]=0;F[c+56>>2]=0;F[c+60>>2]=0;F[g+24>>2]=f;F[g+68>>2]=0;F[g+72>>2]=0;F[g+60>>2]=0;F[g+64>>2]=0;F[g+52>>2]=0;F[g+56>>2]=0;F[g+44>>2]=0;F[g+48>>2]=0;F[g+84>>2]=0;F[g+88>>2]=0;F[g+76>>2]=0;F[g+80>>2]=0;F[g+28>>2]=c;e=F[g+28>>2];F[g+8>>2]=F[g+24>>2];F[g+12>>2]=e;F[g+20>>2]=d;d=h+4|0;F[g+16>>2]=d;F[g+36>>2]=0;F[g+40>>2]=0;F[g+32>>2]=11872;e=F[g+20>>2];F[g>>2]=F[g+16>>2];F[g+4>>2]=e;h=g+32|0;Fe(h,d,g);e=c+8|0;dd(e,h);if((e|0)!=(h|0)){Eb(c+56|0,F[h+48>>2],F[h+52>>2])}Ee(h);break c}d=ea+-64|0;ea=d;k=F[F[a+4>>2]+44>>2];c=sa(80);F[c>>2]=12640;F[c+4>>2]=0;F[c+76>>2]=0;F[c+72>>2]=e;F[c+68>>2]=k;F[c+8>>2]=12804;F[c+12>>2]=0;F[c+16>>2]=0;F[c+20>>2]=0;F[c+24>>2]=0;F[c+28>>2]=0;F[c+32>>2]=0;F[c+36>>2]=0;F[c+40>>2]=0;F[c+44>>2]=0;F[c+48>>2]=0;F[c+52>>2]=0;F[c- -64>>2]=0;m=c+56|0;f=m;F[f>>2]=0;F[f+4>>2]=0;n=F[a+8>>2];F[d+40>>2]=0;F[d+44>>2]=0;F[d+32>>2]=0;F[d+36>>2]=0;j=d+24|0;f=j;F[f>>2]=0;F[f+4>>2]=0;F[d+16>>2]=0;F[d+20>>2]=0;F[d+56>>2]=0;F[d+8>>2]=0;F[d+12>>2]=0;F[d+48>>2]=0;F[d+52>>2]=0;F[d>>2]=12804;F[d+4>>2]=n;i=F[n>>2];f=F[n+4>>2];D[d+63|0]=0;l=j;j=d+63|0;Qa(l,(f-i>>2>>>0)/3|0,j);f=F[d+4>>2];i=F[f+28>>2];f=F[f+24>>2];D[d+63|0]=0;Qa(d+36|0,i-f>>2,j);F[d+20>>2]=c;F[d+16>>2]=k;F[d+12>>2]=e;F[d+8>>2]=n;dd(c+8|0,d);Eb(m,F[d+48>>2],F[d+52>>2]);F[d>>2]=12804;e=F[d+48>>2];if(e){F[d+52>>2]=e;ra(e)}F[d>>2]=12620;e=F[d+36>>2];if(e){ra(e)}e=F[d+24>>2];if(e){ra(e)}ea=d- -64|0}if(!c){break a}}c=md(sa(64),c);i=F[a+4>>2];a=c;c=b;k:{l:{if((c|0)>=0){d=i+8|0;b=F[i+12>>2];e=F[i+8>>2];f=b-e>>2;m:{if((f|0)>(c|0)){break m}h=c+1|0;if(c>>>0>=f>>>0){Wb(d,h-f|0);break m}if(f>>>0<=h>>>0){break m}e=e+(h<<2)|0;if((e|0)!=(b|0)){while(1){b=b-4|0;h=F[b>>2];F[b>>2]=0;if(h){ga[F[F[h>>2]+4>>2]](h)}if((b|0)!=(e|0)){continue}break}}F[i+12>>2]=e}e=F[d>>2]+(c<<2)|0;b=F[e>>2];F[e>>2]=a;if(b){break l}break k}b=a;if(!a){break k}}ga[F[F[b>>2]+4>>2]](b)}h=(c^-1)>>>31|0}ea=g+96|0;return h|0}function Kd(a){var b=0,c=0,d=0,e=0,f=0,g=0;e=ea-16|0;ea=e;F[e+12>>2]=a;a:{if(a>>>0<=211){d=F[Jd(14256,14448,e+12|0)>>2];break a}if(a>>>0>=4294967292){Y();V()}f=(a>>>0)/210|0;d=L(f,210);F[e+8>>2]=a-d;g=Jd(14448,14640,e+8|0)-14448>>2;while(1){d=F[(g<<2)+14448>>2]+d|0;a=5;b:{while(1){c:{if((a|0)==47){a=211;while(1){b=(d>>>0)/(a>>>0)|0;if(b>>>0>>0){break b}if((L(a,b)|0)==(d|0)){break c}b=a+10|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break b}if((L(b,c)|0)==(d|0)){break c}b=a+12|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break b}if((L(b,c)|0)==(d|0)){break c}b=a+16|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break b}if((L(b,c)|0)==(d|0)){break c}b=a+18|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break b}if((L(b,c)|0)==(d|0)){break c}b=a+22|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break b}if((L(b,c)|0)==(d|0)){break c}b=a+28|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break b}if((L(b,c)|0)==(d|0)){break c}b=a+30|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break b}if((L(b,c)|0)==(d|0)){break c}b=a+36|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break b}if((L(b,c)|0)==(d|0)){break c}b=a+40|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break b}if((L(b,c)|0)==(d|0)){break c}b=a+42|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break b}if((L(b,c)|0)==(d|0)){break c}b=a+46|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break b}if((L(b,c)|0)==(d|0)){break c}b=a+52|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break b}if((L(b,c)|0)==(d|0)){break c}b=a+58|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break b}if((L(b,c)|0)==(d|0)){break c}b=a+60|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break b}if((L(b,c)|0)==(d|0)){break c}b=a+66|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break b}if((L(b,c)|0)==(d|0)){break c}b=a+70|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break b}if((L(b,c)|0)==(d|0)){break c}b=a+72|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break b}if((L(b,c)|0)==(d|0)){break c}b=a+78|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break b}if((L(b,c)|0)==(d|0)){break c}b=a+82|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break b}if((L(b,c)|0)==(d|0)){break c}b=a+88|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break b}if((L(b,c)|0)==(d|0)){break c}b=a+96|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break b}if((L(b,c)|0)==(d|0)){break c}b=a+100|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break b}if((L(b,c)|0)==(d|0)){break c}b=a+102|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break b}if((L(b,c)|0)==(d|0)){break c}b=a+106|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break b}if((L(b,c)|0)==(d|0)){break c}b=a+108|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break b}if((L(b,c)|0)==(d|0)){break c}b=a+112|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break b}if((L(b,c)|0)==(d|0)){break c}b=a+120|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break b}if((L(b,c)|0)==(d|0)){break c}b=a+126|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break b}if((L(b,c)|0)==(d|0)){break c}b=a+130|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break b}if((L(b,c)|0)==(d|0)){break c}b=a+136|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break b}if((L(b,c)|0)==(d|0)){break c}b=a+138|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break b}if((L(b,c)|0)==(d|0)){break c}b=a+142|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break b}if((L(b,c)|0)==(d|0)){break c}b=a+148|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break b}if((L(b,c)|0)==(d|0)){break c}b=a+150|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break b}if((L(b,c)|0)==(d|0)){break c}b=a+156|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break b}if((L(b,c)|0)==(d|0)){break c}b=a+162|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break b}if((L(b,c)|0)==(d|0)){break c}b=a+166|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break b}if((L(b,c)|0)==(d|0)){break c}b=a+168|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break b}if((L(b,c)|0)==(d|0)){break c}b=a+172|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break b}if((L(b,c)|0)==(d|0)){break c}b=a+178|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break b}if((L(b,c)|0)==(d|0)){break c}b=a+180|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break b}if((L(b,c)|0)==(d|0)){break c}b=a+186|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break b}if((L(b,c)|0)==(d|0)){break c}b=a+190|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break b}if((L(b,c)|0)==(d|0)){break c}b=a+192|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break b}if((L(b,c)|0)==(d|0)){break c}b=a+196|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break b}if((L(b,c)|0)==(d|0)){break c}b=a+198|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break b}if((L(b,c)|0)==(d|0)){break c}b=a+208|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break b}a=a+210|0;if((L(b,c)|0)!=(d|0)){continue}break}break c}b=F[(a<<2)+14256>>2];c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break b}a=a+1|0;if((L(b,c)|0)!=(d|0)){continue}}break}d=g+1|0;a=(d|0)==48;g=a?0:d;f=a+f|0;d=L(f,210);continue}break}F[e+12>>2]=d}ea=e+16|0;return d}function Va(a,b,c,d){var e=0,f=0,g=0,h=0,i=M(0),j=0,k=0,l=M(0),m=0;a:{if(!d){break a}b:{c:{switch(F[a+28>>2]-1|0){case 0:e=D[a+24|0];if((((c|0)>(e|0)?e:c)|0)>0){e=F[a>>2];g=F[e>>2];b=F[a+48>>2]+Mj(F[a+40>>2],F[a+44>>2],b,0)|0;b=g+b|0;h=F[e+4>>2];while(1){if(b>>>0>=h>>>0){break a}e=(f<<3)+d|0;g=D[b|0];F[e>>2]=g;F[e+4>>2]=g>>31;b=b+1|0;f=f+1|0;e=D[a+24|0];if((f|0)<(((c|0)>(e|0)?e:c)|0)){continue}break}}if((c|0)<=(e|0)){break a}c=c-e|0;a=(e<<3)+d|0;break b;case 1:e=D[a+24|0];if((((c|0)>(e|0)?e:c)|0)>0){e=F[a>>2];g=F[e>>2];b=F[a+48>>2]+Mj(F[a+40>>2],F[a+44>>2],b,0)|0;b=g+b|0;h=F[e+4>>2];while(1){if(b>>>0>=h>>>0){break a}e=(f<<3)+d|0;F[e>>2]=G[b|0];F[e+4>>2]=0;b=b+1|0;f=f+1|0;e=D[a+24|0];if((f|0)<(((c|0)>(e|0)?e:c)|0)){continue}break}}if((c|0)<=(e|0)){break a}c=c-e|0;a=(e<<3)+d|0;break b;case 2:e=D[a+24|0];if((((c|0)>(e|0)?e:c)|0)>0){e=F[a>>2];g=F[e>>2];b=F[a+48>>2]+Mj(F[a+40>>2],F[a+44>>2],b,0)|0;b=g+b|0;h=F[e+4>>2];while(1){if(b>>>0>=h>>>0){break a}e=(f<<3)+d|0;g=E[b>>1];F[e>>2]=g;F[e+4>>2]=g>>31;b=b+2|0;f=f+1|0;e=D[a+24|0];if((f|0)<(((c|0)>(e|0)?e:c)|0)){continue}break}}if((c|0)<=(e|0)){break a}c=c-e|0;a=(e<<3)+d|0;break b;case 3:e=D[a+24|0];if((((c|0)>(e|0)?e:c)|0)>0){e=F[a>>2];g=F[e>>2];b=F[a+48>>2]+Mj(F[a+40>>2],F[a+44>>2],b,0)|0;b=g+b|0;h=F[e+4>>2];while(1){if(b>>>0>=h>>>0){break a}e=(f<<3)+d|0;F[e>>2]=H[b>>1];F[e+4>>2]=0;b=b+2|0;f=f+1|0;e=D[a+24|0];if((f|0)<(((c|0)>(e|0)?e:c)|0)){continue}break}}if((c|0)<=(e|0)){break a}c=c-e|0;a=(e<<3)+d|0;break b;case 4:e=D[a+24|0];if((((c|0)>(e|0)?e:c)|0)>0){e=F[a>>2];g=F[e>>2];b=F[a+48>>2]+Mj(F[a+40>>2],F[a+44>>2],b,0)|0;b=g+b|0;h=F[e+4>>2];while(1){if(b>>>0>=h>>>0){break a}e=(f<<3)+d|0;g=F[b>>2];F[e>>2]=g;F[e+4>>2]=g>>31;b=b+4|0;f=f+1|0;e=D[a+24|0];if((f|0)<(((c|0)>(e|0)?e:c)|0)){continue}break}}if((c|0)<=(e|0)){break a}c=c-e|0;a=(e<<3)+d|0;break b;case 5:e=D[a+24|0];if((((c|0)>(e|0)?e:c)|0)>0){e=F[a>>2];g=F[e>>2];b=F[a+48>>2]+Mj(F[a+40>>2],F[a+44>>2],b,0)|0;b=g+b|0;h=F[e+4>>2];while(1){if(b>>>0>=h>>>0){break a}e=(f<<3)+d|0;F[e>>2]=F[b>>2];F[e+4>>2]=0;b=b+4|0;f=f+1|0;e=D[a+24|0];if((f|0)<(((c|0)>(e|0)?e:c)|0)){continue}break}}if((c|0)<=(e|0)){break a}c=c-e|0;a=(e<<3)+d|0;break b;case 6:e=D[a+24|0];if((((c|0)>(e|0)?e:c)|0)>0){e=F[a>>2];g=F[e>>2];b=F[a+48>>2]+Mj(F[a+40>>2],F[a+44>>2],b,0)|0;b=g+b|0;h=F[e+4>>2];while(1){if(b>>>0>=h>>>0){break a}g=F[b+4>>2];e=(f<<3)+d|0;F[e>>2]=F[b>>2];F[e+4>>2]=g;b=b+8|0;f=f+1|0;e=D[a+24|0];if((f|0)<(((c|0)>(e|0)?e:c)|0)){continue}break}}if((c|0)<=(e|0)){break a}c=c-e|0;a=(e<<3)+d|0;break b;case 7:e=D[a+24|0];if((((c|0)>(e|0)?e:c)|0)>0){e=F[a>>2];g=F[e>>2];b=F[a+48>>2]+Mj(F[a+40>>2],F[a+44>>2],b,0)|0;b=g+b|0;h=F[e+4>>2];while(1){if(b>>>0>=h>>>0){break a}e=F[b>>2];g=F[b+4>>2];if((g|0)<0){break a}k=(f<<3)+d|0;F[k>>2]=e;F[k+4>>2]=g;b=b+8|0;f=f+1|0;e=D[a+24|0];if((f|0)<(((c|0)>(e|0)?e:c)|0)){continue}break}}if((c|0)<=(e|0)){break a}c=c-e|0;a=(e<<3)+d|0;break b;case 8:e=D[a+24|0];if((((c|0)>(e|0)?e:c)|0)>0){e=F[a>>2];g=F[e>>2];b=F[a+48>>2]+Mj(F[a+40>>2],F[a+44>>2],b,0)|0;b=g+b|0;k=F[e+4>>2];while(1){if(b>>>0>=k>>>0){break a}i=J[b>>2];if(i>M(0x8000000000000000)|i=M(1)?~~(i>M(0)?M(P(M(R(M(i*M(2.3283064365386963e-10)))),M(4294967296))):M(S(M(M(i-M(~~i>>>0>>>0))*M(2.3283064365386963e-10)))))>>>0:0;h=~~i>>>0;break d}g=-2147483648;h=0}F[e>>2]=h;F[e+4>>2]=g;b=b+4|0;f=f+1|0;e=D[a+24|0];if((f|0)<(((c|0)>(e|0)?e:c)|0)){continue}break}}if((c|0)<=(e|0)){break a}c=c-e|0;a=(e<<3)+d|0;break b;case 9:e=D[a+24|0];if((((c|0)>(e|0)?e:c)|0)>0){e=F[a>>2];g=F[e>>2];b=F[a+48>>2]+Mj(F[a+40>>2],F[a+44>>2],b,0)|0;b=g+b|0;k=F[e+4>>2];while(1){if(b>>>0>=k>>>0){break a}j=K[b>>3];if(j>0x8000000000000000|j<-0x8000000000000000|j!=j){break a}m=N(j);if(m==X){break a}e=(f<<3)+d|0;e:{if(m<0x8000000000000000){g=N(j)>=1?~~(j>0?P(R(j*2.3283064365386963e-10),4294967295):S((j-+(~~j>>>0>>>0))*2.3283064365386963e-10))>>>0:0;h=~~j>>>0;break e}g=-2147483648;h=0}F[e>>2]=h;F[e+4>>2]=g;b=b+8|0;f=f+1|0;e=D[a+24|0];if((f|0)<(((c|0)>(e|0)?e:c)|0)){continue}break}}if((c|0)<=(e|0)){break a}c=c-e|0;a=(e<<3)+d|0;break b;case 10:break c;default:break a}}e=D[a+24|0];if((((c|0)>(e|0)?e:c)|0)>0){e=F[a>>2];g=F[e>>2];b=F[a+48>>2]+Mj(F[a+40>>2],F[a+44>>2],b,0)|0;b=g+b|0;h=F[e+4>>2];while(1){if(b>>>0>=h>>>0){break a}e=(f<<3)+d|0;F[e>>2]=G[b|0];F[e+4>>2]=0;b=b+1|0;f=f+1|0;e=D[a+24|0];if((f|0)<(((c|0)>(e|0)?e:c)|0)){continue}break}}if((c|0)<=(e|0)){break a}c=c-e|0;a=(e<<3)+d|0}ua(a,0,c<<3)}}function Jb(a,b){var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0;j=ea-16|0;ea=j;a:{b:{c:{d:{if(G[F[a+4>>2]+36|0]<=1){k=-1;c=F[b+20>>2];h=F[b+16>>2];d=h+4|0;c=d>>>0<4?c+1|0:c;f=d;d=F[b+12>>2];if(f>>>0>I[b+8>>2]&(d|0)<=(c|0)|(c|0)>(d|0)){break c}d=h+F[b>>2]|0;l=G[d|0]|G[d+1|0]<<8|(G[d+2|0]<<16|G[d+3|0]<<24);F[j+12>>2]=l;F[b+16>>2]=f;F[b+20>>2]=c;break d}k=-1;if(!Ga(1,j+12|0,b)){break c}l=F[j+12>>2]}e:{f:{g:{h:{i:{if(!l){break i}c=F[a+8>>2];if((F[c+4>>2]-F[c>>2]>>2>>>0)/3>>>0>>0){break c}c=H[F[a+4>>2]+36>>1];if(((c<<8|c>>>8)&65535)>>>0>=258){j:{while(1){if(!Ga(1,j+8|0,b)){break c}c=F[j+8>>2];if(!Ga(1,j+8|0,b)){break c}e=c+e|0;c=F[j+8>>2];if(e>>>0>>0){break c}f=e-c|0;c=F[a+40>>2];k:{if((c|0)!=F[a+44>>2]){F[c+4>>2]=e;F[c>>2]=f;F[a+40>>2]=c+12;l=F[j+12>>2];break k}m=F[a+36>>2];i=c-m|0;h=(i|0)/12|0;d=h+1|0;if(d>>>0>=357913942){break j}c=h<<1;g=h>>>0<178956970?c>>>0>d>>>0?c:d:357913941;if(g){if(g>>>0>=357913942){break b}c=sa(L(g,12))}else{c=0}h=c+L(h,12)|0;F[h+4>>2]=e;F[h>>2]=f;d=h+L((i|0)/-12|0,12)|0;if((i|0)>0){ta(d,m,i)}F[a+44>>2]=c+L(g,12);F[a+40>>2]=h+12;F[a+36>>2]=d;if(!m){break k}ra(m)}o=o+1|0;if(o>>>0>>0){continue}break}k=0;Fb(b,0,0);if(l){while(1){e=G[b+36|0];c=H[F[a+4>>2]+36>>1];l:{m:{if(((c<<8|c>>>8)&65535)>>>0<=513){if(!e){break l}o=0;c=F[b+32>>2];n=c>>>3|0;h=F[b+24>>2];e=n+h|0;f=F[b+28>>2];n:{if(e>>>0>=f>>>0){e=c;break n}d=G[e|0];e=c+1|0;F[b+32>>2]=e;n=e>>>3|0;o=d>>>(c&7)&1}if(f>>>0>h+n>>>0){break m}break l}if(!e){break l}o=0;e=F[b+32>>2];c=F[b+24>>2]+(e>>>3|0)|0;if(c>>>0>=I[b+28>>2]){break l}o=G[c|0]>>>(e&7)&1}F[b+32>>2]=e+1}c=F[a+36>>2]+L(k,12)|0;D[c+8|0]=G[c+8|0]&254|o&1;k=k+1|0;if((l|0)!=(k|0)){continue}break}}D[b+36|0]=0;f=F[b+20>>2];e=0;c=F[b+32>>2]+7|0;e=c>>>0<7?1:e;d=c;c=e>>>3|0;e=(e&7)<<29|d>>>3;d=e+F[b+16>>2]|0;c=c+f|0;F[b+16>>2]=d;F[b+20>>2]=d>>>0>>0?c+1|0:c;break i}va();V()}while(1){d=F[b+12>>2];c=F[b+20>>2];e=c;p=F[b+16>>2];f=p+4|0;c=f>>>0<4?c+1|0:c;m=F[b+8>>2];i=f;if(m>>>0>>0&(c|0)>=(d|0)|(c|0)>(d|0)){break c}g=F[b>>2];f=g+p|0;h=G[f|0]|G[f+1|0]<<8|(G[f+2|0]<<16|G[f+3|0]<<24);F[b+16>>2]=i;F[b+20>>2]=c;c=e;f=p+8|0;c=f>>>0<8?c+1|0:c;q=f;if(f>>>0>m>>>0&(c|0)>=(d|0)|(c|0)>(d|0)){break c}f=g+i|0;f=G[f|0]|G[f+1|0]<<8|(G[f+2|0]<<16|G[f+3|0]<<24);F[b+16>>2]=q;F[b+20>>2]=c;if(m>>>0<=q>>>0&(c|0)>=(d|0)|(c|0)>(d|0)){break c}d=G[g+q|0];c=p+9|0;e=c>>>0<9?e+1|0:e;F[b+16>>2]=c;F[b+20>>2]=e;n=d&1|n&-2;c=F[a+40>>2];o:{if((c|0)!=F[a+44>>2]){D[c+8|0]=n;F[c+4>>2]=f;F[c>>2]=h;F[a+40>>2]=c+12;l=F[j+12>>2];break o}m=F[a+36>>2];i=c-m|0;g=(i|0)/12|0;e=g+1|0;if(e>>>0>=357913942){break h}c=g<<1;d=g>>>0<178956970?c>>>0>e>>>0?c:e:357913941;if(d){if(d>>>0>=357913942){break b}c=sa(L(d,12))}else{c=0}g=c+L(g,12)|0;D[g+8|0]=n;F[g+4>>2]=f;F[g>>2]=h;e=g+L((i|0)/-12|0,12)|0;if((i|0)>0){ta(e,m,i)}F[a+44>>2]=c+L(d,12);F[a+40>>2]=g+12;F[a+36>>2]=e;if(!m){break o}ra(m)}o=o+1|0;if(o>>>0>>0){continue}break}}F[j+8>>2]=0;c=H[F[a+4>>2]+36>>1];c=(c<<8|c>>>8)&65535;p:{if(c>>>0<=511){k=-1;c=F[b+20>>2];f=F[b+16>>2];e=f+4|0;c=e>>>0<4?c+1|0:c;d=e;e=F[b+12>>2];if(d>>>0>I[b+8>>2]&(e|0)<=(c|0)|(c|0)>(e|0)){break c}e=f+F[b>>2]|0;e=G[e|0]|G[e+1|0]<<8|(G[e+2|0]<<16|G[e+3|0]<<24);F[b+16>>2]=d;F[b+20>>2]=c;break p}if((c|0)!=512){break e}k=-1;if(!Ga(1,j+8|0,b)){break c}e=F[j+8>>2]}if(!e){break e}c=H[F[a+4>>2]+36>>1];if(((c<<8|c>>>8)&65535)>>>0<258){break f}n=0;l=0;while(1){if(!Ga(1,j+4|0,b)){break c}l=F[j+4>>2]+l|0;c=F[a+52>>2];q:{if((c|0)!=F[a+56>>2]){F[c>>2]=l;F[a+52>>2]=c+4;break q}h=F[a+48>>2];g=c-h|0;d=g>>2;f=d+1|0;if(f>>>0>=1073741824){break g}c=g>>1;f=g>>>0<2147483644?c>>>0>f>>>0?c:f:1073741823;if(f){if(f>>>0>=1073741824){break b}c=sa(f<<2)}else{c=0}d=c+(d<<2)|0;F[d>>2]=l;if((g|0)>0){ta(c,h,g)}F[a+56>>2]=c+(f<<2);F[a+52>>2]=d+4;F[a+48>>2]=c;if(!h){break q}ra(h)}n=n+1|0;if((n|0)!=(e|0)){continue}break}break e}va();V()}va();V()}k=0;while(1){c=F[b+20>>2];h=F[b+16>>2];d=h+4|0;c=d>>>0<4?c+1|0:c;f=d;d=F[b+12>>2];if(f>>>0>I[b+8>>2]&(d|0)<=(c|0)|(c|0)>(d|0)){k=-1;break c}d=h+F[b>>2]|0;h=G[d|0]|G[d+1|0]<<8|(G[d+2|0]<<16|G[d+3|0]<<24);F[b+16>>2]=f;F[b+20>>2]=c;c=F[a+52>>2];r:{if((c|0)!=F[a+56>>2]){F[c>>2]=h;F[a+52>>2]=c+4;break r}g=F[a+48>>2];i=c-g|0;d=i>>2;f=d+1|0;if(f>>>0>=1073741824){break a}c=i>>1;f=i>>>0<2147483644?c>>>0>f>>>0?c:f:1073741823;if(f){if(f>>>0>=1073741824){break b}c=sa(f<<2)}else{c=0}d=c+(d<<2)|0;F[d>>2]=h;if((i|0)>0){ta(c,g,i)}F[a+56>>2]=c+(f<<2);F[a+52>>2]=d+4;F[a+48>>2]=c;if(!g){break r}ra(g)}k=k+1|0;if((k|0)!=(e|0)){continue}break}}k=F[b+16>>2]}ea=j+16|0;return k}za();V()}va();V()}function we(a,b){var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0;a:{b:{c:{d:{e:{if(F[a+92>>2]==F[a+88>>2]){break e}c=F[a+52>>2];f:{if((c|0)!=F[a+56>>2]){F[c>>2]=b;F[a+52>>2]=c+4;break f}d=F[a+48>>2];h=c-d|0;f=h>>2;e=f+1|0;if(e>>>0>=1073741824){break a}c=h>>1;e=h>>>0<2147483644?c>>>0>e>>>0?c:e:1073741823;if(e){if(e>>>0>=1073741824){break d}c=sa(e<<2)}else{c=0}f=c+(f<<2)|0;F[f>>2]=b;if((h|0)>0){ta(c,d,h)}F[a+56>>2]=c+(e<<2);F[a+52>>2]=f+4;F[a+48>>2]=c;if(!d){break f}ra(d)}F[a+84>>2]=0;f=-1;c=-1;g:{if((b|0)==-1){break g}e=F[a+4>>2];c=b+1|0;c=(c>>>0)%3|0?c:b-2|0;if((c|0)!=-1){f=F[F[e>>2]+(c<<2)>>2]}h:{if((b>>>0)%3|0){d=b-1|0;break h}d=b+2|0;c=-1;if((d|0)==-1){break g}}c=F[F[e>>2]+(d<<2)>>2]}i=c>>>3&536870908;e=F[a+36>>2];g=e+(f>>>3&536870908)|0;h=F[g>>2];d=1<>2]=d|h;g=a+8|0;if((b|0)!=-1){e=b+1|0;d=(e>>>0)%3|0?e:b-2|0}else{d=-1}Xa(g,f,d);e=F[a+36>>2]}d=e+i|0;e=F[d>>2];f=1<>2]=e|f;d=a+8|0;f=-1;i:{if((b|0)==-1){break i}f=b-1|0;if((b>>>0)%3|0){break i}f=b+2|0}Xa(d,c,f)}f=-1;f=(b|0)!=-1?F[F[F[a+4>>2]>>2]+(b<<2)>>2]:f;d=F[a+36>>2]+(f>>>3&536870908)|0;e=F[d>>2];c=1<>2]=c|e;Xa(a+8|0,f,b)}d=F[a+84>>2];if((d|0)>2){break e}while(1){f=L(d,12)+a|0;b=F[f+52>>2];if((b|0)==F[f+48>>2]){d=d+1|0;if((d|0)!=3){continue}break e}c=b-4|0;b=F[c>>2];F[f+52>>2]=c;F[a+84>>2]=d;if((b|0)==-1){break e}f=F[a+24>>2];c=(b>>>0)/3|0;j:{if(F[f+(c>>>3&268435452)>>2]>>>c&1){break j}k:{while(1){i=(b>>>0)/3|0;c=(i>>>3&268435452)+f|0;F[c>>2]=F[c>>2]|1<>2]>>2]+(b<<2)>>2]:f;d=F[a+36>>2]+(f>>>3&536870908)|0;e=F[d>>2];c=1<>2]=c|e;h=F[(F[F[a+16>>2]+96>>2]+L(i,12)|0)+((b>>>0)%3<<2)>>2];k=F[F[a+20>>2]+4>>2];c=F[k+4>>2];t:{if((c|0)!=F[k+8>>2]){F[c>>2]=h;F[k+4>>2]=c+4;break t}g=F[k>>2];j=c-g|0;e=j>>2;d=e+1|0;if(d>>>0>=1073741824){break s}c=j>>1;d=j>>>0<2147483644?c>>>0>d>>>0?c:d:1073741823;if(d){if(d>>>0>=1073741824){break d}c=sa(d<<2)}else{c=0}e=c+(e<<2)|0;F[e>>2]=h;if((j|0)>0){ta(c,g,j)}F[k+8>>2]=c+(d<<2);F[k+4>>2]=e+4;F[k>>2]=c;if(!g){break t}ra(g)}j=F[a+12>>2];c=F[j+4>>2];u:{if((c|0)!=F[j+8>>2]){F[c>>2]=b;F[j+4>>2]=c+4;break u}h=F[j>>2];g=c-h|0;e=g>>2;d=e+1|0;if(d>>>0>=1073741824){break r}c=g>>1;d=g>>>0<2147483644?c>>>0>d>>>0?c:d:1073741823;if(d){if(d>>>0>=1073741824){break d}c=sa(d<<2)}else{c=0}e=c+(e<<2)|0;F[e>>2]=b;if((g|0)>0){ta(c,h,g)}F[j+8>>2]=c+(d<<2);F[j+4>>2]=e+4;F[j>>2]=c;if(!h){break u}ra(h)}c=F[a+12>>2];F[F[c+12>>2]+(f<<2)>>2]=F[c+24>>2];F[c+24>>2]=F[c+24>>2]+1}if((b|0)==-1){break k}g=F[a+4>>2];f=-1;c=b+1|0;c=(c>>>0)%3|0?c:b-2|0;if((c|0)!=-1){f=F[F[g+12>>2]+(c<<2)>>2]}v:{w:{if((L(i,3)|0)!=(b|0)){e=b-1|0;break w}e=b+2|0;b=-1;if((e|0)==-1){break v}}b=F[F[g+12>>2]+(e<<2)>>2]}h=(b|0)==-1;e=(b>>>0)/3|0;if((f|0)!=-1){c=(f>>>0)/3|0;c=F[F[a+24>>2]+(c>>>3&268435452)>>2]&1<>2]+(c>>>3&536870908)>>2]>>>c&1){break x}e=0;c=F[F[g>>2]+(b<<2)>>2];if(!(F[F[a+36>>2]+(c>>>3&536870908)>>2]>>>c&1)){c=F[a+88>>2]+(c<<2)|0;e=F[c>>2];F[c>>2]=e+1;e=(e|0)<=0?2:1}if(F[a+84>>2]>=(e|0)?d:0){break m}k=L(e,12)+a|0;c=F[k+52>>2];y:{if((c|0)!=F[k+56>>2]){F[c>>2]=b;F[k+52>>2]=c+4;break y}i=F[k+48>>2];j=c-i|0;h=j>>2;g=h+1|0;if(g>>>0>=1073741824){break c}c=j>>1;g=j>>>0<2147483644?c>>>0>g>>>0?c:g:1073741823;if(g){if(g>>>0>=1073741824){break d}c=sa(g<<2)}else{c=0}h=c+(h<<2)|0;F[h>>2]=b;if((j|0)>0){ta(c,i,j)}F[k+48>>2]=c;F[k+52>>2]=h+4;F[k+56>>2]=c+(g<<2);if(!i){break y}ra(i)}if(F[a+84>>2]<=(e|0)){break x}F[a+84>>2]=e}if(d){break k}b=-1;if((f|0)==-1){break n}}b=F[F[F[a+4>>2]>>2]+(f<<2)>>2]}e=0;if(!(F[F[a+36>>2]+(b>>>3&536870908)>>2]>>>b&1)){b=F[a+88>>2]+(b<<2)|0;c=F[b>>2];F[b>>2]=c+1;e=(c|0)<=0?2:1}if(F[a+84>>2]<(e|0)){break l}b=f}f=F[a+24>>2];continue}break}i=L(e,12)+a|0;b=F[i+52>>2];z:{if((b|0)!=F[i+56>>2]){F[b>>2]=f;F[i+52>>2]=b+4;break z}h=F[i+48>>2];g=b-h|0;c=g>>2;d=c+1|0;if(d>>>0>=1073741824){break b}b=g>>1;d=g>>>0<2147483644?b>>>0>d>>>0?b:d:1073741823;if(d){if(d>>>0>=1073741824){break d}b=sa(d<<2)}else{b=0}c=b+(c<<2)|0;F[c>>2]=f;if((g|0)>0){ta(b,h,g)}F[i+48>>2]=b;F[i+52>>2]=c+4;F[i+56>>2]=b+(d<<2);if(!h){break z}ra(h)}d=F[a+84>>2];if((d|0)<=(e|0)){break j}F[a+84>>2]=e;d=e;break j}d=F[a+84>>2]}if((d|0)<3){continue}break}}return 1}za();V()}va();V()}va();V()}va();V()}function hc(a,b,c,d){var e=0,f=0,g=0,h=0,i=0,j=M(0),k=0,l=M(0),m=0;a:{b:{if(!d){break b}c:{d:{switch(F[a+28>>2]-1|0){case 0:h=1;e=D[a+24|0];if((((c|0)>(e|0)?e:c)|0)>0){e=F[a>>2];f=F[e>>2];b=F[a+48>>2]+Mj(F[a+40>>2],F[a+44>>2],b,0)|0;b=f+b|0;f=F[e+4>>2];while(1){if(b>>>0>=f>>>0){break a}E[(g<<1)+d>>1]=D[b|0];b=b+1|0;g=g+1|0;e=D[a+24|0];if((g|0)<(((c|0)>(e|0)?e:c)|0)){continue}break}}if((c|0)<=(e|0)){break b}c=c-e|0;a=(e<<1)+d|0;break c;case 1:h=1;e=D[a+24|0];if((((c|0)>(e|0)?e:c)|0)>0){e=F[a>>2];f=F[e>>2];b=F[a+48>>2]+Mj(F[a+40>>2],F[a+44>>2],b,0)|0;b=f+b|0;f=F[e+4>>2];while(1){if(b>>>0>=f>>>0){break a}E[(g<<1)+d>>1]=G[b|0];b=b+1|0;g=g+1|0;e=D[a+24|0];if((g|0)<(((c|0)>(e|0)?e:c)|0)){continue}break}}if((c|0)<=(e|0)){break b}c=c-e|0;a=(e<<1)+d|0;break c;case 2:h=1;e=D[a+24|0];if((((c|0)>(e|0)?e:c)|0)>0){e=F[a>>2];f=F[e>>2];b=F[a+48>>2]+Mj(F[a+40>>2],F[a+44>>2],b,0)|0;b=f+b|0;f=F[e+4>>2];while(1){if(b>>>0>=f>>>0){break a}E[(g<<1)+d>>1]=H[b>>1];b=b+2|0;g=g+1|0;e=D[a+24|0];if((g|0)<(((c|0)>(e|0)?e:c)|0)){continue}break}}if((c|0)<=(e|0)){break b}c=c-e|0;a=(e<<1)+d|0;break c;case 3:e=D[a+24|0];if((((c|0)>(e|0)?e:c)|0)>0){e=F[a>>2];f=F[e>>2];b=F[a+48>>2]+Mj(F[a+40>>2],F[a+44>>2],b,0)|0;b=f+b|0;f=F[e+4>>2];while(1){if(b>>>0>=f>>>0){break a}e=E[b>>1];if((e|0)<0){break b}E[(g<<1)+d>>1]=e;b=b+2|0;g=g+1|0;e=D[a+24|0];if((g|0)<(((c|0)>(e|0)?e:c)|0)){continue}break}}h=1;if((c|0)<=(e|0)){break b}c=c-e|0;a=(e<<1)+d|0;break c;case 4:h=1;e=D[a+24|0];if((((c|0)>(e|0)?e:c)|0)>0){e=F[a>>2];f=F[e>>2];b=F[a+48>>2]+Mj(F[a+40>>2],F[a+44>>2],b,0)|0;b=f+b|0;f=F[e+4>>2];while(1){if(b>>>0>=f>>>0){break a}e=F[b>>2];if(e-32768>>>0<4294901760){break a}E[(g<<1)+d>>1]=e;b=b+4|0;g=g+1|0;e=D[a+24|0];if((g|0)<(((c|0)>(e|0)?e:c)|0)){continue}break}}if((c|0)<=(e|0)){break b}c=c-e|0;a=(e<<1)+d|0;break c;case 5:h=1;e=D[a+24|0];if((((c|0)>(e|0)?e:c)|0)>0){e=F[a>>2];f=F[e>>2];b=F[a+48>>2]+Mj(F[a+40>>2],F[a+44>>2],b,0)|0;b=f+b|0;f=F[e+4>>2];while(1){if(b>>>0>=f>>>0){break a}e=F[b>>2];if(e>>>0>32767){break a}E[(g<<1)+d>>1]=e;b=b+4|0;g=g+1|0;e=D[a+24|0];if((g|0)<(((c|0)>(e|0)?e:c)|0)){continue}break}}if((c|0)<=(e|0)){break b}c=c-e|0;a=(e<<1)+d|0;break c;case 6:h=1;e=D[a+24|0];if((((c|0)>(e|0)?e:c)|0)>0){e=F[a>>2];f=F[e>>2];b=F[a+48>>2]+Mj(F[a+40>>2],F[a+44>>2],b,0)|0;b=f+b|0;f=F[e+4>>2];while(1){if(b>>>0>=f>>>0){break a}i=F[b>>2];e=F[b+4>>2]-(i>>>0<32768)|0;if((e|0)==-1&i-32768>>>0<4294901760|(e|0)!=-1){break a}E[(g<<1)+d>>1]=i;b=b+8|0;g=g+1|0;e=D[a+24|0];if((g|0)<(((c|0)>(e|0)?e:c)|0)){continue}break}}if((c|0)<=(e|0)){break b}c=c-e|0;a=(e<<1)+d|0;break c;case 7:h=1;e=D[a+24|0];if((((c|0)>(e|0)?e:c)|0)>0){e=F[a>>2];f=F[e>>2];b=F[a+48>>2]+Mj(F[a+40>>2],F[a+44>>2],b,0)|0;b=f+b|0;f=F[e+4>>2];while(1){if(b>>>0>=f>>>0){break a}e=F[b+4>>2];i=F[b>>2];if(!e&i>>>0>32767|e){break a}E[(g<<1)+d>>1]=i;b=b+8|0;g=g+1|0;e=D[a+24|0];if((g|0)<(((c|0)>(e|0)?e:c)|0)){continue}break}}if((c|0)<=(e|0)){break b}c=c-e|0;a=(e<<1)+d|0;break c;case 8:h=1;e=D[a+24|0];if((((c|0)>(e|0)?e:c)|0)>0){e=F[a>>2];f=F[e>>2];b=F[a+48>>2]+Mj(F[a+40>>2],F[a+44>>2],b,0)|0;b=f+b|0;f=F[e+4>>2];while(1){if(b>>>0>=f>>>0){break a}j=J[b>>2];if(j>M(32767)|j>1]=e;b=b+4|0;g=g+1|0;e=D[a+24|0];if((g|0)<(((c|0)>(e|0)?e:c)|0)){continue}break}}if((c|0)<=(e|0)){break b}c=c-e|0;a=(e<<1)+d|0;break c;case 9:h=1;e=D[a+24|0];if((((c|0)>(e|0)?e:c)|0)>0){e=F[a>>2];f=F[e>>2];b=F[a+48>>2]+Mj(F[a+40>>2],F[a+44>>2],b,0)|0;b=f+b|0;f=F[e+4>>2];while(1){if(b>>>0>=f>>>0){break a}k=K[b>>3];if(k>32767|k<-32768|k!=k){break a}m=N(k);if(m==X){break a}i=(g<<1)+d|0;if(m<2147483648){e=~~k}else{e=-2147483648}E[i>>1]=e;b=b+8|0;g=g+1|0;e=D[a+24|0];if((g|0)<(((c|0)>(e|0)?e:c)|0)){continue}break}}if((c|0)<=(e|0)){break b}c=c-e|0;a=(e<<1)+d|0;break c;case 10:break d;default:break b}}h=1;e=D[a+24|0];if((((c|0)>(e|0)?e:c)|0)>0){e=F[a>>2];f=F[e>>2];b=F[a+48>>2]+Mj(F[a+40>>2],F[a+44>>2],b,0)|0;b=f+b|0;f=F[e+4>>2];while(1){if(b>>>0>=f>>>0){break a}E[(g<<1)+d>>1]=G[b|0];b=b+1|0;g=g+1|0;e=D[a+24|0];if((g|0)<(((c|0)>(e|0)?e:c)|0)){continue}break}}if((c|0)<=(e|0)){break b}c=c-e|0;a=(e<<1)+d|0}ua(a,0,c<<1)}return h}return 0}function gc(a,b,c,d){var e=0,f=0,g=0,h=0,i=0,j=M(0),k=0;a:{b:{if(!d){break b}c:{d:{switch(F[a+28>>2]-1|0){case 0:e=D[a+24|0];if((((c|0)>(e|0)?e:c)|0)>0){e=F[a>>2];f=F[e>>2];b=F[a+48>>2]+Mj(F[a+40>>2],F[a+44>>2],b,0)|0;b=f+b|0;f=F[e+4>>2];while(1){if(b>>>0>=f>>>0){break a}e=D[b|0];if((e|0)<0){break b}E[(g<<1)+d>>1]=e&255;b=b+1|0;g=g+1|0;e=D[a+24|0];if((g|0)<(((c|0)>(e|0)?e:c)|0)){continue}break}}h=1;if((c|0)<=(e|0)){break b}c=c-e|0;a=(e<<1)+d|0;break c;case 1:h=1;e=D[a+24|0];if((((c|0)>(e|0)?e:c)|0)>0){e=F[a>>2];f=F[e>>2];b=F[a+48>>2]+Mj(F[a+40>>2],F[a+44>>2],b,0)|0;b=f+b|0;f=F[e+4>>2];while(1){if(b>>>0>=f>>>0){break a}E[(g<<1)+d>>1]=G[b|0];b=b+1|0;g=g+1|0;e=D[a+24|0];if((g|0)<(((c|0)>(e|0)?e:c)|0)){continue}break}}if((c|0)<=(e|0)){break b}c=c-e|0;a=(e<<1)+d|0;break c;case 2:e=D[a+24|0];if((((c|0)>(e|0)?e:c)|0)>0){e=F[a>>2];f=F[e>>2];b=F[a+48>>2]+Mj(F[a+40>>2],F[a+44>>2],b,0)|0;b=f+b|0;f=F[e+4>>2];while(1){if(b>>>0>=f>>>0){break a}e=E[b>>1];if((e|0)<0){break b}E[(g<<1)+d>>1]=e;b=b+2|0;g=g+1|0;e=D[a+24|0];if((g|0)<(((c|0)>(e|0)?e:c)|0)){continue}break}}h=1;if((c|0)<=(e|0)){break b}c=c-e|0;a=(e<<1)+d|0;break c;case 3:h=1;e=D[a+24|0];if((((c|0)>(e|0)?e:c)|0)>0){e=F[a>>2];f=F[e>>2];b=F[a+48>>2]+Mj(F[a+40>>2],F[a+44>>2],b,0)|0;b=f+b|0;f=F[e+4>>2];while(1){if(b>>>0>=f>>>0){break a}E[(g<<1)+d>>1]=H[b>>1];b=b+2|0;g=g+1|0;e=D[a+24|0];if((g|0)<(((c|0)>(e|0)?e:c)|0)){continue}break}}if((c|0)<=(e|0)){break b}c=c-e|0;a=(e<<1)+d|0;break c;case 4:h=1;e=D[a+24|0];if((((c|0)>(e|0)?e:c)|0)>0){e=F[a>>2];f=F[e>>2];b=F[a+48>>2]+Mj(F[a+40>>2],F[a+44>>2],b,0)|0;b=f+b|0;f=F[e+4>>2];while(1){if(b>>>0>=f>>>0){break a}e=F[b>>2];if(e>>>0>65535){break a}E[(g<<1)+d>>1]=e;b=b+4|0;g=g+1|0;e=D[a+24|0];if((g|0)<(((c|0)>(e|0)?e:c)|0)){continue}break}}if((c|0)<=(e|0)){break b}c=c-e|0;a=(e<<1)+d|0;break c;case 5:h=1;e=D[a+24|0];if((((c|0)>(e|0)?e:c)|0)>0){e=F[a>>2];f=F[e>>2];b=F[a+48>>2]+Mj(F[a+40>>2],F[a+44>>2],b,0)|0;b=f+b|0;f=F[e+4>>2];while(1){if(b>>>0>=f>>>0){break a}e=F[b>>2];if(e>>>0>65535){break a}E[(g<<1)+d>>1]=e;b=b+4|0;g=g+1|0;e=D[a+24|0];if((g|0)<(((c|0)>(e|0)?e:c)|0)){continue}break}}if((c|0)<=(e|0)){break b}c=c-e|0;a=(e<<1)+d|0;break c;case 6:h=1;e=D[a+24|0];if((((c|0)>(e|0)?e:c)|0)>0){e=F[a>>2];f=F[e>>2];b=F[a+48>>2]+Mj(F[a+40>>2],F[a+44>>2],b,0)|0;b=f+b|0;f=F[e+4>>2];while(1){if(b>>>0>=f>>>0){break a}e=F[b+4>>2];i=F[b>>2];if(!e&i>>>0>65535|e){break a}E[(g<<1)+d>>1]=i;b=b+8|0;g=g+1|0;e=D[a+24|0];if((g|0)<(((c|0)>(e|0)?e:c)|0)){continue}break}}if((c|0)<=(e|0)){break b}c=c-e|0;a=(e<<1)+d|0;break c;case 7:h=1;e=D[a+24|0];if((((c|0)>(e|0)?e:c)|0)>0){e=F[a>>2];f=F[e>>2];b=F[a+48>>2]+Mj(F[a+40>>2],F[a+44>>2],b,0)|0;b=f+b|0;f=F[e+4>>2];while(1){if(b>>>0>=f>>>0){break a}e=F[b+4>>2];i=F[b>>2];if(!e&i>>>0>65535|e){break a}E[(g<<1)+d>>1]=i;b=b+8|0;g=g+1|0;e=D[a+24|0];if((g|0)<(((c|0)>(e|0)?e:c)|0)){continue}break}}if((c|0)<=(e|0)){break b}c=c-e|0;a=(e<<1)+d|0;break c;case 8:h=1;e=D[a+24|0];if((((c|0)>(e|0)?e:c)|0)>0){e=F[a>>2];f=F[e>>2];b=F[a+48>>2]+Mj(F[a+40>>2],F[a+44>>2],b,0)|0;b=f+b|0;f=F[e+4>>2];while(1){if(b>>>0>=f>>>0){break a}j=J[b>>2];if(j>M(65535)|j=M(0)){e=~~j>>>0}else{e=0}E[i>>1]=e;b=b+4|0;g=g+1|0;e=D[a+24|0];if((g|0)<(((c|0)>(e|0)?e:c)|0)){continue}break}}if((c|0)<=(e|0)){break b}c=c-e|0;a=(e<<1)+d|0;break c;case 9:h=1;e=D[a+24|0];if((((c|0)>(e|0)?e:c)|0)>0){e=F[a>>2];f=F[e>>2];b=F[a+48>>2]+Mj(F[a+40>>2],F[a+44>>2],b,0)|0;b=f+b|0;f=F[e+4>>2];while(1){if(b>>>0>=f>>>0){break a}k=K[b>>3];if(k>65535|k<0|(N(k)==X|k!=k)){break a}i=(g<<1)+d|0;if(k<4294967296&k>=0){e=~~k>>>0}else{e=0}E[i>>1]=e;b=b+8|0;g=g+1|0;e=D[a+24|0];if((g|0)<(((c|0)>(e|0)?e:c)|0)){continue}break}}if((c|0)<=(e|0)){break b}c=c-e|0;a=(e<<1)+d|0;break c;case 10:break d;default:break b}}h=1;e=D[a+24|0];if((((c|0)>(e|0)?e:c)|0)>0){e=F[a>>2];f=F[e>>2];b=F[a+48>>2]+Mj(F[a+40>>2],F[a+44>>2],b,0)|0;b=f+b|0;f=F[e+4>>2];while(1){if(b>>>0>=f>>>0){break a}E[(g<<1)+d>>1]=G[b|0];b=b+1|0;g=g+1|0;e=D[a+24|0];if((g|0)<(((c|0)>(e|0)?e:c)|0)){continue}break}}if((c|0)<=(e|0)){break b}c=c-e|0;a=(e<<1)+d|0}ua(a,0,c<<1)}return h}return 0}function fc(a,b,c,d){var e=0,f=0,g=0,h=0,i=0,j=M(0),k=0,l=M(0),m=0;a:{b:{if(!d){break b}c:{d:{switch(F[a+28>>2]-1|0){case 0:h=1;e=D[a+24|0];if((((c|0)>(e|0)?e:c)|0)>0){e=F[a>>2];f=F[e>>2];b=F[a+48>>2]+Mj(F[a+40>>2],F[a+44>>2],b,0)|0;b=f+b|0;f=F[e+4>>2];while(1){if(b>>>0>=f>>>0){break a}F[(g<<2)+d>>2]=D[b|0];b=b+1|0;g=g+1|0;e=D[a+24|0];if((g|0)<(((c|0)>(e|0)?e:c)|0)){continue}break}}if((c|0)<=(e|0)){break b}c=c-e|0;a=(e<<2)+d|0;break c;case 1:h=1;e=D[a+24|0];if((((c|0)>(e|0)?e:c)|0)>0){e=F[a>>2];f=F[e>>2];b=F[a+48>>2]+Mj(F[a+40>>2],F[a+44>>2],b,0)|0;b=f+b|0;f=F[e+4>>2];while(1){if(b>>>0>=f>>>0){break a}F[(g<<2)+d>>2]=G[b|0];b=b+1|0;g=g+1|0;e=D[a+24|0];if((g|0)<(((c|0)>(e|0)?e:c)|0)){continue}break}}if((c|0)<=(e|0)){break b}c=c-e|0;a=(e<<2)+d|0;break c;case 2:h=1;e=D[a+24|0];if((((c|0)>(e|0)?e:c)|0)>0){e=F[a>>2];f=F[e>>2];b=F[a+48>>2]+Mj(F[a+40>>2],F[a+44>>2],b,0)|0;b=f+b|0;f=F[e+4>>2];while(1){if(b>>>0>=f>>>0){break a}F[(g<<2)+d>>2]=E[b>>1];b=b+2|0;g=g+1|0;e=D[a+24|0];if((g|0)<(((c|0)>(e|0)?e:c)|0)){continue}break}}if((c|0)<=(e|0)){break b}c=c-e|0;a=(e<<2)+d|0;break c;case 3:h=1;e=D[a+24|0];if((((c|0)>(e|0)?e:c)|0)>0){e=F[a>>2];f=F[e>>2];b=F[a+48>>2]+Mj(F[a+40>>2],F[a+44>>2],b,0)|0;b=f+b|0;f=F[e+4>>2];while(1){if(b>>>0>=f>>>0){break a}F[(g<<2)+d>>2]=H[b>>1];b=b+2|0;g=g+1|0;e=D[a+24|0];if((g|0)<(((c|0)>(e|0)?e:c)|0)){continue}break}}if((c|0)<=(e|0)){break b}c=c-e|0;a=(e<<2)+d|0;break c;case 4:h=1;e=D[a+24|0];if((((c|0)>(e|0)?e:c)|0)>0){e=F[a>>2];f=F[e>>2];b=F[a+48>>2]+Mj(F[a+40>>2],F[a+44>>2],b,0)|0;b=f+b|0;f=F[e+4>>2];while(1){if(b>>>0>=f>>>0){break a}F[(g<<2)+d>>2]=F[b>>2];b=b+4|0;g=g+1|0;e=D[a+24|0];if((g|0)<(((c|0)>(e|0)?e:c)|0)){continue}break}}if((c|0)<=(e|0)){break b}c=c-e|0;a=(e<<2)+d|0;break c;case 5:e=D[a+24|0];if((((c|0)>(e|0)?e:c)|0)>0){e=F[a>>2];f=F[e>>2];b=F[a+48>>2]+Mj(F[a+40>>2],F[a+44>>2],b,0)|0;b=f+b|0;f=F[e+4>>2];while(1){if(b>>>0>=f>>>0){break a}e=F[b>>2];if((e|0)<0){break b}F[(g<<2)+d>>2]=e;b=b+4|0;g=g+1|0;e=D[a+24|0];if((g|0)<(((c|0)>(e|0)?e:c)|0)){continue}break}}h=1;if((c|0)<=(e|0)){break b}c=c-e|0;a=(e<<2)+d|0;break c;case 6:h=1;e=D[a+24|0];if((((c|0)>(e|0)?e:c)|0)>0){e=F[a>>2];f=F[e>>2];b=F[a+48>>2]+Mj(F[a+40>>2],F[a+44>>2],b,0)|0;b=f+b|0;f=F[e+4>>2];while(1){if(b>>>0>=f>>>0){break a}e=F[b>>2];if((F[b+4>>2]-(e>>>0<2147483648)|0)!=-1){break a}F[(g<<2)+d>>2]=e;b=b+8|0;g=g+1|0;e=D[a+24|0];if((g|0)<(((c|0)>(e|0)?e:c)|0)){continue}break}}if((c|0)<=(e|0)){break b}c=c-e|0;a=(e<<2)+d|0;break c;case 7:h=1;e=D[a+24|0];if((((c|0)>(e|0)?e:c)|0)>0){e=F[a>>2];f=F[e>>2];b=F[a+48>>2]+Mj(F[a+40>>2],F[a+44>>2],b,0)|0;b=f+b|0;f=F[e+4>>2];while(1){if(b>>>0>=f>>>0){break a}e=F[b+4>>2];i=F[b>>2];if(!e&i>>>0>2147483647|e){break a}F[(g<<2)+d>>2]=i;b=b+8|0;g=g+1|0;e=D[a+24|0];if((g|0)<(((c|0)>(e|0)?e:c)|0)){continue}break}}if((c|0)<=(e|0)){break b}c=c-e|0;a=(e<<2)+d|0;break c;case 8:h=1;e=D[a+24|0];if((((c|0)>(e|0)?e:c)|0)>0){e=F[a>>2];f=F[e>>2];b=F[a+48>>2]+Mj(F[a+40>>2],F[a+44>>2],b,0)|0;b=f+b|0;f=F[e+4>>2];while(1){if(b>>>0>=f>>>0){break a}j=J[b>>2];if(j>M(2147483648)|j>2]=e;b=b+4|0;g=g+1|0;e=D[a+24|0];if((g|0)<(((c|0)>(e|0)?e:c)|0)){continue}break}}if((c|0)<=(e|0)){break b}c=c-e|0;a=(e<<2)+d|0;break c;case 9:h=1;e=D[a+24|0];if((((c|0)>(e|0)?e:c)|0)>0){e=F[a>>2];f=F[e>>2];b=F[a+48>>2]+Mj(F[a+40>>2],F[a+44>>2],b,0)|0;b=f+b|0;f=F[e+4>>2];while(1){if(b>>>0>=f>>>0){break a}k=K[b>>3];if(k>2147483647|k<-2147483648|k!=k){break a}m=N(k);if(m==X){break a}i=(g<<2)+d|0;if(m<2147483648){e=~~k}else{e=-2147483648}F[i>>2]=e;b=b+8|0;g=g+1|0;e=D[a+24|0];if((g|0)<(((c|0)>(e|0)?e:c)|0)){continue}break}}if((c|0)<=(e|0)){break b}c=c-e|0;a=(e<<2)+d|0;break c;case 10:break d;default:break b}}h=1;e=D[a+24|0];if((((c|0)>(e|0)?e:c)|0)>0){e=F[a>>2];f=F[e>>2];b=F[a+48>>2]+Mj(F[a+40>>2],F[a+44>>2],b,0)|0;b=f+b|0;f=F[e+4>>2];while(1){if(b>>>0>=f>>>0){break a}F[(g<<2)+d>>2]=G[b|0];b=b+1|0;g=g+1|0;e=D[a+24|0];if((g|0)<(((c|0)>(e|0)?e:c)|0)){continue}break}}if((c|0)<=(e|0)){break b}c=c-e|0;a=(e<<2)+d|0}ua(a,0,c<<2)}return h}return 0}function Gh(a){a=a|0;var b=0,c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0;g=ea-32|0;ea=g;d=F[a+32>>2];b=H[a+36>>1];a:{b:{if(((b<<8|b>>>8)&65535)>>>0<=513){c=F[d+12>>2];b=F[d+20>>2];f=b;n=F[d+16>>2];j=n+4|0;b=j>>>0<4?b+1|0:b;h=F[d+8>>2];k=j;if(h>>>0>>0&(b|0)>=(c|0)|(b|0)>(c|0)){break a}e=F[d>>2];j=e+n|0;j=G[j|0]|G[j+1|0]<<8|(G[j+2|0]<<16|G[j+3|0]<<24);F[d+16>>2]=k;F[d+20>>2]=b;b=f;f=n+8|0;b=f>>>0<8?b+1|0:b;if(f>>>0>h>>>0&(b|0)>=(c|0)|(b|0)>(c|0)){break a}c=e+k|0;n=G[c|0]|G[c+1|0]<<8|(G[c+2|0]<<16|G[c+3|0]<<24);F[g+24>>2]=n;F[d+16>>2]=f;F[d+20>>2]=b;break b}if(!Hb(1,g+28|0,d)){break a}if(!Hb(1,g+24|0,F[a+32>>2])){break a}j=F[g+28>>2];n=F[g+24>>2]}if(j>>>0>1431655765){break a}c=F[a+32>>2];b=c;k=F[b+8>>2];f=F[b+16>>2];d=F[b+12>>2];b=F[b+20>>2];h=Nj(k-f|0,d-(b+(f>>>0>k>>>0)|0)|0,3,0);if(!fa&j>>>0>h>>>0){break a}h=Mj(j,0,3,0);if(!fa&h>>>0>>0|((b|0)>=(d|0)&f>>>0>=k>>>0|(b|0)>(d|0))){break a}d=G[f+F[c>>2]|0];f=f+1|0;b=f?b:b+1|0;F[c+16>>2]=f;F[c+20>>2]=b;c:{d:{if(!d){f=0;c=ea-32|0;ea=c;F[c+24>>2]=0;F[c+16>>2]=0;F[c+20>>2]=0;e:{f:{b=L(j,3);if(b){if(b>>>0>=1073741824){break f}d=L(j,12);f=sa(d);F[c+16>>2]=f;ua(f,0,d)}b=id(b,1,F[a+32>>2],f);g:{h:{if(!(!b|!j)){k=0;d=0;while(1){o=i;h=(d<<2)+f|0;e=F[h>>2];i=e>>>1|0;e=o+(e&1?0-i|0:i)|0;F[c>>2]=e;i=F[h+4>>2];l=i>>>1|0;e=e+(i&1?0-l|0:l)|0;F[c+4>>2]=e;h=F[h+8>>2];i=h>>>1|0;i=e+(h&1?0-i|0:i)|0;F[c+8>>2]=i;Sb(F[a+44>>2]+96|0,c);d=d+3|0;k=k+1|0;if((k|0)!=(j|0)){continue}break}break h}if(!f){break g}}ra(f)}ea=c+32|0;break e}va();V()}if(b){break d}break a}if(n>>>0<=255){if(!j){break d}while(1){i:{F[g+16>>2]=0;F[g+8>>2]=0;F[g+12>>2]=0;c=F[a+32>>2];b=c;h=F[b+8>>2];d=F[b+12>>2];f=F[b+20>>2];k=F[b+16>>2];if((d|0)<=(f|0)&h>>>0<=k>>>0|(d|0)<(f|0)){break i}e=F[c>>2];l=G[e+k|0];b=f;i=k+1|0;b=i?b:b+1|0;F[c+16>>2]=i;F[c+20>>2]=b;F[g+8>>2]=l;if((b|0)>=(d|0)&i>>>0>=h>>>0|(b|0)>(d|0)){break i}l=G[e+i|0];b=f;i=k+2|0;b=i>>>0<2?b+1|0:b;F[c+16>>2]=i;F[c+20>>2]=b;F[g+12>>2]=l;if((b|0)>=(d|0)&i>>>0>=h>>>0|(b|0)>(d|0)){break i}d=G[e+i|0];b=f;f=k+3|0;b=f>>>0<3?b+1|0:b;F[c+16>>2]=f;F[c+20>>2]=b;F[g+16>>2]=d;Sb(F[a+44>>2]+96|0,g+8|0);m=m+1|0;if((m|0)!=(j|0)){continue}break d}break}m=0;break a}if(n>>>0<=65535){if(!j){break d}while(1){j:{F[g+16>>2]=0;F[g+8>>2]=0;F[g+12>>2]=0;d=F[a+32>>2];c=F[d+12>>2];k=F[d+8>>2];b=F[d+20>>2];f=b;h=F[d+16>>2];e=h+2|0;b=e>>>0<2?b+1|0:b;if(e>>>0>k>>>0&(b|0)>=(c|0)|(b|0)>(c|0)){break j}i=F[d>>2];l=i+h|0;l=G[l|0]|G[l+1|0]<<8;F[d+16>>2]=e;F[d+20>>2]=b;F[g+8>>2]=l;b=f;l=h+4|0;b=l>>>0<4?b+1|0:b;if(l>>>0>k>>>0&(b|0)>=(c|0)|(b|0)>(c|0)){break j}e=e+i|0;e=G[e|0]|G[e+1|0]<<8;F[d+16>>2]=l;F[d+20>>2]=b;F[g+12>>2]=e;b=f;f=h+6|0;b=f>>>0<6?b+1|0:b;if(f>>>0>k>>>0&(b|0)>=(c|0)|(b|0)>(c|0)){break j}c=i+l|0;c=G[c|0]|G[c+1|0]<<8;F[d+16>>2]=f;F[d+20>>2]=b;F[g+16>>2]=c;Sb(F[a+44>>2]+96|0,g+8|0);m=m+1|0;if((m|0)!=(j|0)){continue}break d}break}m=0;break a}k:{if(n>>>0>2097151){break k}b=H[a+36>>1];if(((b<<8|b>>>8)&65535)>>>0<514){break k}if(!j){break d}while(1){l:{F[g+16>>2]=0;F[g+8>>2]=0;F[g+12>>2]=0;if(!Hb(1,g+4|0,F[a+32>>2])){break l}F[g+8>>2]=F[g+4>>2];if(!Hb(1,g+4|0,F[a+32>>2])){break l}F[g+12>>2]=F[g+4>>2];if(!Hb(1,g+4|0,F[a+32>>2])){break l}F[g+16>>2]=F[g+4>>2];Sb(F[a+44>>2]+96|0,g+8|0);m=m+1|0;if((m|0)!=(j|0)){continue}break d}break}m=0;break a}if(!j){break d}while(1){F[g+16>>2]=0;F[g+8>>2]=0;F[g+12>>2]=0;d=F[a+32>>2];c=F[d+12>>2];k=F[d+8>>2];b=F[d+20>>2];f=b;h=F[d+16>>2];e=h+4|0;b=e>>>0<4?b+1|0:b;i=e;if(e>>>0>k>>>0&(b|0)>=(c|0)|(b|0)>(c|0)){break c}l=F[d>>2];e=l+h|0;e=G[e|0]|G[e+1|0]<<8|(G[e+2|0]<<16|G[e+3|0]<<24);F[d+16>>2]=i;F[d+20>>2]=b;F[g+8>>2]=e;b=f;e=h+8|0;b=e>>>0<8?b+1|0:b;o=e;if(e>>>0>k>>>0&(b|0)>=(c|0)|(b|0)>(c|0)){break c}e=i+l|0;e=G[e|0]|G[e+1|0]<<8|(G[e+2|0]<<16|G[e+3|0]<<24);F[d+16>>2]=o;F[d+20>>2]=b;F[g+12>>2]=e;b=f;f=h+12|0;b=f>>>0<12?b+1|0:b;if(f>>>0>k>>>0&(b|0)>=(c|0)|(b|0)>(c|0)){break c}c=l+o|0;c=G[c|0]|G[c+1|0]<<8|(G[c+2|0]<<16|G[c+3|0]<<24);F[d+16>>2]=f;F[d+20>>2]=b;F[g+16>>2]=c;Sb(F[a+44>>2]+96|0,g+8|0);m=m+1|0;if((m|0)!=(j|0)){continue}break}}F[F[a+4>>2]+80>>2]=n;m=1;break a}m=0}ea=g+32|0;return m|0}function ec(a,b,c,d){var e=0,f=0,g=0,h=0,i=M(0),j=0,k=0;a:{b:{if(!d){break b}c:{d:{switch(F[a+28>>2]-1|0){case 0:h=1;e=D[a+24|0];if((((c|0)>(e|0)?e:c)|0)>0){e=F[a>>2];f=F[e>>2];b=F[a+48>>2]+Mj(F[a+40>>2],F[a+44>>2],b,0)|0;b=f+b|0;f=F[e+4>>2];while(1){if(b>>>0>=f>>>0){break a}F[(g<<2)+d>>2]=D[b|0];b=b+1|0;g=g+1|0;e=D[a+24|0];if((g|0)<(((c|0)>(e|0)?e:c)|0)){continue}break}}if((c|0)<=(e|0)){break b}c=c-e|0;a=(e<<2)+d|0;break c;case 1:h=1;e=D[a+24|0];if((((c|0)>(e|0)?e:c)|0)>0){e=F[a>>2];f=F[e>>2];b=F[a+48>>2]+Mj(F[a+40>>2],F[a+44>>2],b,0)|0;b=f+b|0;f=F[e+4>>2];while(1){if(b>>>0>=f>>>0){break a}F[(g<<2)+d>>2]=G[b|0];b=b+1|0;g=g+1|0;e=D[a+24|0];if((g|0)<(((c|0)>(e|0)?e:c)|0)){continue}break}}if((c|0)<=(e|0)){break b}c=c-e|0;a=(e<<2)+d|0;break c;case 2:h=1;e=D[a+24|0];if((((c|0)>(e|0)?e:c)|0)>0){e=F[a>>2];f=F[e>>2];b=F[a+48>>2]+Mj(F[a+40>>2],F[a+44>>2],b,0)|0;b=f+b|0;f=F[e+4>>2];while(1){if(b>>>0>=f>>>0){break a}F[(g<<2)+d>>2]=E[b>>1];b=b+2|0;g=g+1|0;e=D[a+24|0];if((g|0)<(((c|0)>(e|0)?e:c)|0)){continue}break}}if((c|0)<=(e|0)){break b}c=c-e|0;a=(e<<2)+d|0;break c;case 3:h=1;e=D[a+24|0];if((((c|0)>(e|0)?e:c)|0)>0){e=F[a>>2];f=F[e>>2];b=F[a+48>>2]+Mj(F[a+40>>2],F[a+44>>2],b,0)|0;b=f+b|0;f=F[e+4>>2];while(1){if(b>>>0>=f>>>0){break a}F[(g<<2)+d>>2]=H[b>>1];b=b+2|0;g=g+1|0;e=D[a+24|0];if((g|0)<(((c|0)>(e|0)?e:c)|0)){continue}break}}if((c|0)<=(e|0)){break b}c=c-e|0;a=(e<<2)+d|0;break c;case 4:h=1;e=D[a+24|0];if((((c|0)>(e|0)?e:c)|0)>0){e=F[a>>2];f=F[e>>2];b=F[a+48>>2]+Mj(F[a+40>>2],F[a+44>>2],b,0)|0;b=f+b|0;f=F[e+4>>2];while(1){if(b>>>0>=f>>>0){break a}F[(g<<2)+d>>2]=F[b>>2];b=b+4|0;g=g+1|0;e=D[a+24|0];if((g|0)<(((c|0)>(e|0)?e:c)|0)){continue}break}}if((c|0)<=(e|0)){break b}c=c-e|0;a=(e<<2)+d|0;break c;case 5:h=1;e=D[a+24|0];if((((c|0)>(e|0)?e:c)|0)>0){e=F[a>>2];f=F[e>>2];b=F[a+48>>2]+Mj(F[a+40>>2],F[a+44>>2],b,0)|0;b=f+b|0;f=F[e+4>>2];while(1){if(b>>>0>=f>>>0){break a}F[(g<<2)+d>>2]=F[b>>2];b=b+4|0;g=g+1|0;e=D[a+24|0];if((g|0)<(((c|0)>(e|0)?e:c)|0)){continue}break}}if((c|0)<=(e|0)){break b}c=c-e|0;a=(e<<2)+d|0;break c;case 6:h=1;e=D[a+24|0];if((((c|0)>(e|0)?e:c)|0)>0){e=F[a>>2];f=F[e>>2];b=F[a+48>>2]+Mj(F[a+40>>2],F[a+44>>2],b,0)|0;b=f+b|0;f=F[e+4>>2];while(1){if(b>>>0>=f>>>0){break a}e=F[b>>2];if(F[b+4>>2]){break a}F[(g<<2)+d>>2]=e;b=b+8|0;g=g+1|0;e=D[a+24|0];if((g|0)<(((c|0)>(e|0)?e:c)|0)){continue}break}}if((c|0)<=(e|0)){break b}c=c-e|0;a=(e<<2)+d|0;break c;case 7:h=1;e=D[a+24|0];if((((c|0)>(e|0)?e:c)|0)>0){e=F[a>>2];f=F[e>>2];b=F[a+48>>2]+Mj(F[a+40>>2],F[a+44>>2],b,0)|0;b=f+b|0;f=F[e+4>>2];while(1){if(b>>>0>=f>>>0){break a}e=F[b>>2];if(F[b+4>>2]){break a}F[(g<<2)+d>>2]=e;b=b+8|0;g=g+1|0;e=D[a+24|0];if((g|0)<(((c|0)>(e|0)?e:c)|0)){continue}break}}if((c|0)<=(e|0)){break b}c=c-e|0;a=(e<<2)+d|0;break c;case 8:h=1;e=D[a+24|0];if((((c|0)>(e|0)?e:c)|0)>0){e=F[a>>2];f=F[e>>2];b=F[a+48>>2]+Mj(F[a+40>>2],F[a+44>>2],b,0)|0;b=f+b|0;f=F[e+4>>2];while(1){if(b>>>0>=f>>>0){break a}i=J[b>>2];if(i>M(4294967296)|i=M(0)){e=~~i>>>0}else{e=0}F[k>>2]=e;b=b+4|0;g=g+1|0;e=D[a+24|0];if((g|0)<(((c|0)>(e|0)?e:c)|0)){continue}break}}if((c|0)<=(e|0)){break b}c=c-e|0;a=(e<<2)+d|0;break c;case 9:h=1;e=D[a+24|0];if((((c|0)>(e|0)?e:c)|0)>0){e=F[a>>2];f=F[e>>2];b=F[a+48>>2]+Mj(F[a+40>>2],F[a+44>>2],b,0)|0;b=f+b|0;f=F[e+4>>2];while(1){if(b>>>0>=f>>>0){break a}j=K[b>>3];if(j>4294967295|j<0|(N(j)==X|j!=j)){break a}k=(g<<2)+d|0;if(j<4294967296&j>=0){e=~~j>>>0}else{e=0}F[k>>2]=e;b=b+8|0;g=g+1|0;e=D[a+24|0];if((g|0)<(((c|0)>(e|0)?e:c)|0)){continue}break}}if((c|0)<=(e|0)){break b}c=c-e|0;a=(e<<2)+d|0;break c;case 10:break d;default:break b}}h=1;e=D[a+24|0];if((((c|0)>(e|0)?e:c)|0)>0){e=F[a>>2];f=F[e>>2];b=F[a+48>>2]+Mj(F[a+40>>2],F[a+44>>2],b,0)|0;b=f+b|0;f=F[e+4>>2];while(1){if(b>>>0>=f>>>0){break a}F[(g<<2)+d>>2]=G[b|0];b=b+1|0;g=g+1|0;e=D[a+24|0];if((g|0)<(((c|0)>(e|0)?e:c)|0)){continue}break}}if((c|0)<=(e|0)){break b}c=c-e|0;a=(e<<2)+d|0}ua(a,0,c<<2)}return h}return 0}function Ie(a,b,c){var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0;g=ea+-64|0;ea=g;F[g+56>>2]=0;F[g+48>>2]=0;F[g+52>>2]=0;F[g+40>>2]=0;F[g+44>>2]=0;F[g+32>>2]=0;F[g+36>>2]=0;F[g+24>>2]=0;F[g+28>>2]=0;F[g+16>>2]=0;F[g+20>>2]=0;F[g+8>>2]=0;F[g+12>>2]=0;i=g+8|0;d=H[b+38>>1];a:{b:{if(!d){break b}c:{if(d>>>0<=511){e=F[b+12>>2];d=F[b+20>>2];f=F[b+16>>2];h=f+4|0;d=h>>>0<4?d+1|0:d;if(h>>>0>I[b+8>>2]&(d|0)>=(e|0)|(d|0)>(e|0)){break b}d=f+F[b>>2]|0;j=G[d|0]|G[d+1|0]<<8|(G[d+2|0]<<16|G[d+3|0]<<24);F[i+12>>2]=j;d=F[b+20>>2];e=F[b+16>>2]+4|0;d=e>>>0<4?d+1|0:d;F[b+16>>2]=e;F[b+20>>2]=d;break c}if(!lb(1,i+12|0,b)){break b}e=F[b+16>>2];d=F[b+20>>2];j=F[i+12>>2]}f=F[b+8>>2];h=f-e|0;d=F[b+12>>2]-((e>>>0>f>>>0)+d|0)|0;if(h>>>0>>6>>>0&(d|0)<=0|(d|0)<0){break b}e=F[i>>2];d=F[i+4>>2]-e>>2;d:{if(d>>>0>>0){Aa(i,j-d|0);j=F[i+12>>2];break d}if(d>>>0<=j>>>0){break d}F[i+4>>2]=e+(j<<2)}k=1;if(!j){break a}e=F[b+16>>2];d=F[b+20>>2];r=F[i>>2];s=F[b+8>>2];p=F[b+12>>2];h=0;while(1){k=0;if((d|0)>=(p|0)&e>>>0>=s>>>0|(d|0)>(p|0)){break a}k=F[b>>2];n=G[k+e|0];e=e+1|0;d=e?d:d+1|0;F[b+16>>2]=e;F[b+20>>2]=d;f=n>>>2|0;m=0;e:{f:{g:{h:{t=n&3;switch(t|0){case 0:break f;case 3:break h;default:break g}}f=f+h|0;k=0;if(f>>>0>=j>>>0){break a}ua(r+(h<<2)|0,0,(n&252)+4|0);h=f;break e}while(1){if((d|0)>=(p|0)&e>>>0>=s>>>0|(d|0)>(p|0)){break b}j=G[e+k|0];e=e+1|0;d=e?d:d+1|0;F[b+16>>2]=e;F[b+20>>2]=d;f=j<<(m<<3|6)|f;m=m+1|0;if((t|0)!=(m|0)){continue}break}}F[r+(h<<2)>>2]=f}j=F[i+12>>2];h=h+1|0;if(j>>>0>h>>>0){continue}break}d=i+16|0;p=F[i>>2];f=F[i+16>>2];e=F[i+20>>2]-f|0;i:{if(e>>>0<=4194303){Aa(d,1048576-(e>>>2|0)|0);break i}if((e|0)==4194304){break i}F[i+20>>2]=f+4194304}e=i+28|0;h=F[e>>2];f=F[i+32>>2]-h>>3;j:{if(f>>>0>>0){tb(e,j-f|0);h=F[e>>2];break j}if(f>>>0>j>>>0){F[i+32>>2]=(j<<3)+h}if(!j){break b}}i=F[d>>2];d=0;k=0;while(1){e=p+(d<<2)|0;m=F[e>>2];n=(d<<3)+h|0;f=k;F[n+4>>2]=f;F[n>>2]=m;e=F[e>>2];k=e+f|0;if(k>>>0>1048576){break b}k:{if(f>>>0>=k>>>0){break k}m=0;n=e&7;if(n){while(1){F[i+(f<<2)>>2]=d;f=f+1|0;m=m+1|0;if((n|0)!=(m|0)){continue}break}}if(e-1>>>0<=6){break k}while(1){e=i+(f<<2)|0;F[e>>2]=d;F[e+28>>2]=d;F[e+24>>2]=d;F[e+20>>2]=d;F[e+16>>2]=d;F[e+12>>2]=d;F[e+8>>2]=d;F[e+4>>2]=d;f=f+8|0;if((k|0)!=(f|0)){continue}break}}d=d+1|0;if((j|0)!=(d|0)){continue}break}l=(k|0)==1048576}k=l}l:{if(!k|(F[g+20>>2]?0:a)){break l}k=0;i=ea-16|0;ea=i;m:{n:{if(H[b+38>>1]<=511){f=F[b+12>>2];j=f;d=F[b+20>>2];l=F[b+16>>2];e=l+8|0;d=e>>>0<8?d+1|0:d;h=F[b+8>>2];if(h>>>0>>0&(d|0)>=(f|0)|(d|0)>(f|0)){break m}l=l+F[b>>2]|0;f=G[l|0]|G[l+1|0]<<8|(G[l+2|0]<<16|G[l+3|0]<<24);l=G[l+4|0]|G[l+5|0]<<8|(G[l+6|0]<<16|G[l+7|0]<<24);F[b+16>>2]=e;F[b+20>>2]=d;break n}if(!kb(1,i+8|0,b)){break m}e=F[b+16>>2];d=F[b+20>>2];h=F[b+8>>2];j=F[b+12>>2];f=F[i+8>>2];l=F[i+12>>2]}m=h-e|0;h=j-((e>>>0>h>>>0)+d|0)|0;if((h|0)==(l|0)&f>>>0>m>>>0|h>>>0>>0){break m}d=d+l|0;h=e+f|0;d=h>>>0>>0?d+1|0:d;F[b+16>>2]=h;F[b+20>>2]=d;if((f|0)<=0){break m}b=e+F[b>>2]|0;F[g+48>>2]=b;d=f-1|0;e=d+b|0;h=G[e|0];o:{if(h>>>0<=63){F[g+52>>2]=d;b=G[e|0]&63;break o}p:{switch((h>>>6|0)-1|0){case 0:if(f>>>0<2){break m}F[g+52>>2]=f-2;b=(b+f|0)-2|0;b=G[b+1|0]<<8&16128|G[b|0];break o;case 1:if(f>>>0<3){break m}F[g+52>>2]=f-3;b=(b+f|0)-3|0;b=G[b+1|0]<<8|G[b+2|0]<<16&4128768|G[b|0];break o;default:break p}}F[g+52>>2]=f-4;b=(b+f|0)-4|0;b=G[b+2|0]<<16|G[b+3|0]<<24&1056964608|G[b+1|0]<<8|G[b|0]}F[g+56>>2]=b+4194304;k=b>>>0<1069547520}ea=i+16|0;if(!k){break l}if(!a){o=1;break l}b=F[g+56>>2];d=F[g+36>>2];e=F[g+48>>2];f=F[g+24>>2];while(1){q:{if(b>>>0>4194303){break q}o=F[g+52>>2];while(1){if((o|0)<=0){break q}o=o-1|0;F[g+52>>2]=o;b=G[e+o|0]|b<<8;F[g+56>>2]=b;if(b>>>0<4194304){continue}break}}h=b&1048575;k=F[f+(h<<2)>>2];l=d+(k<<3)|0;b=(L(F[l>>2],b>>>20|0)+h|0)-F[l+4>>2]|0;F[g+56>>2]=b;F[(q<<2)+c>>2]=k;o=1;q=q+1|0;if((q|0)!=(a|0)){continue}break}}a=F[g+36>>2];if(a){F[g+40>>2]=a;ra(a)}a=F[g+24>>2];if(a){F[g+28>>2]=a;ra(a)}a=F[g+8>>2];if(a){F[g+12>>2]=a;ra(a)}ea=g- -64|0;return o}function Ob(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0;f=ea-96|0;ea=f;e=F[a+16>>2];D[f+92|0]=1;F[f+88>>2]=b;F[f+84>>2]=b;F[f+80>>2]=e;k=F[a+20>>2];d=F[k>>2];a:{b:{e=F[F[e+28>>2]+(b<<2)>>2];if(e>>>0>2]-d>>2>>>0){d=F[F[a+8>>2]+(F[d+(e<<2)>>2]<<2)>>2];e=F[a+4>>2];if(!G[e+84|0]){d=F[F[e+68>>2]+(d<<2)>>2]}F[f+72>>2]=0;F[f+76>>2]=0;k=f- -64|0;F[k>>2]=0;F[k+4>>2]=0;F[f+56>>2]=0;F[f+60>>2]=0;Va(e,d,D[e+24|0],f+56|0);if((b|0)!=-1){e=b+1|0;k=(e>>>0)%3|0?e:b-2|0;i=((b>>>0)%3|0?-1:2)+b|0;while(1){d=k;e=i;c:{if(!F[a+28>>2]){break c}e=b+1|0;d=(e>>>0)%3|0?e:b-2|0;e=b-1|0;if((b>>>0)%3|0){break c}e=b+2|0}h=F[a+20>>2];b=F[h>>2];d=F[F[F[a+16>>2]+28>>2]+(d<<2)>>2];if(d>>>0>=F[h+4>>2]-b>>2>>>0){break b}d=F[F[a+8>>2]+(F[b+(d<<2)>>2]<<2)>>2];b=F[a+4>>2];if(!G[b+84|0]){d=F[F[b+68>>2]+(d<<2)>>2]}F[f+48>>2]=0;F[f+52>>2]=0;F[f+40>>2]=0;F[f+44>>2]=0;F[f+32>>2]=0;F[f+36>>2]=0;Va(b,d,D[b+24|0],f+32|0);d=F[a+20>>2];b=F[d>>2];e=F[F[F[a+16>>2]+28>>2]+(e<<2)>>2];if(e>>>0>=F[d+4>>2]-b>>2>>>0){break a}d=F[F[a+8>>2]+(F[b+(e<<2)>>2]<<2)>>2];b=F[a+4>>2];if(!G[b+84|0]){d=F[F[b+68>>2]+(d<<2)>>2]}F[f+24>>2]=0;F[f+28>>2]=0;F[f+16>>2]=0;F[f+20>>2]=0;F[f+8>>2]=0;F[f+12>>2]=0;Va(b,d,D[b+24|0],f+8|0);e=F[f+8>>2];b=F[f+56>>2];d=e-b|0;h=F[f+60>>2];j=F[f+12>>2]-(h+(b>>>0>e>>>0)|0)|0;p=F[f+40>>2];e=F[f+64>>2];s=p-e|0;t=F[f+68>>2];p=F[f+44>>2]-(t+(e>>>0>p>>>0)|0)|0;u=Mj(d,j,s,p);v=n-u|0;n=g-(fa+(n>>>0>>0)|0)|0;o=v;g=F[f+16>>2];u=g-e|0;t=F[f+20>>2]-((e>>>0>g>>>0)+t|0)|0;g=F[f+32>>2];v=g-b|0;h=F[f+36>>2]-((b>>>0>g>>>0)+h|0)|0;e=Mj(u,t,v,h);b=o+e|0;g=fa+n|0;g=b>>>0>>0?g+1|0:g;n=b;e=l;o=d;x=j;b=F[f+48>>2];l=F[f+72>>2];d=b-l|0;j=F[f+76>>2];w=F[f+52>>2]-(j+(b>>>0>>0)|0)|0;o=Mj(o,x,d,w);e=e+o|0;b=fa+m|0;b=e>>>0>>0?b+1|0:b;m=F[f+24>>2];o=m-l|0;j=F[f+28>>2]-((l>>>0>m>>>0)+j|0)|0;m=Mj(o,j,v,h);l=e-m|0;m=b-(fa+(e>>>0>>0)|0)|0;b=Mj(u,t,d,w);e=q-b|0;b=r-(fa+(b>>>0>q>>>0)|0)|0;r=Mj(o,j,s,p);q=r+e|0;b=fa+b|0;b=q>>>0>>0?b+1|0:b;r=b;b=F[f+88>>2];e=F[f+80>>2];d:{if(G[f+92|0]){e:{f:{g:{h:{if((b|0)==-1){break h}d=b+1|0;b=(d>>>0)%3|0?d:b-2|0;if((b|0)==-1|F[F[e>>2]+(b>>>3&536870908)>>2]>>>b&1){break h}b=F[F[F[e+64>>2]+12>>2]+(b<<2)>>2];if((b|0)!=-1){break g}}F[f+88>>2]=-1;break f}d=b+1|0;b=(d>>>0)%3|0?d:b-2|0;F[f+88>>2]=b;if((b|0)!=-1){break e}}b=F[f+84>>2];d=-1;i:{if((b|0)==-1){break i}j:{if((b>>>0)%3|0){b=b-1|0;break j}b=b+2|0;d=-1;if((b|0)==-1){break i}}d=-1;if(F[F[e>>2]+(b>>>3&536870908)>>2]>>>b&1){break i}b=F[F[F[e+64>>2]+12>>2]+(b<<2)>>2];d=-1;if((b|0)==-1){break i}d=b-1|0;if((b>>>0)%3|0){break i}d=b+2|0}D[f+92|0]=0;F[f+88>>2]=d;break d}if((b|0)!=F[f+84>>2]){break d}F[f+88>>2]=-1;break d}d=-1;k:{if((b|0)==-1){break k}l:{if((b>>>0)%3|0){b=b-1|0;break l}b=b+2|0;d=-1;if((b|0)==-1){break k}}d=-1;if(F[F[e>>2]+(b>>>3&536870908)>>2]>>>b&1){break k}b=F[F[F[e+64>>2]+12>>2]+(b<<2)>>2];d=-1;if((b|0)==-1){break k}d=b-1|0;if((b>>>0)%3|0){break k}d=b+2|0}F[f+88>>2]=d}b=F[f+88>>2];if((b|0)!=-1){continue}break}}b=r>>31;e=b^q;j=e-b|0;h=(b^r)-((b>>>0>e>>>0)+b|0)|0;p=-1;e=2147483647;b=m>>31;k=b^l;d=(b^m)-((b>>>0>k>>>0)+b|0)|0;b=k-b|0;s=b^-1;i=d^2147483647;k=g;m:{n:{if(!F[a+28>>2]){if((i|0)==(h|0)&j>>>0>s>>>0|i>>>0>>0){break m}i=g;a=b;e=b+j|0;b=d+h|0;b=a>>>0>e>>>0?b+1|0:b;a=g>>31;d=a;h=d^n;j=h-d|0;g=e+j|0;d=(d^i)-((d>>>0>h>>>0)+d|0)|0;a=g;g=d^2147483647;g=(g|0)==(b|0)&(j^-1)>>>0>>0|b>>>0>g>>>0;a=g?-1:a;if(!(g&0)&(a|0)<=536870912|(a|0)<536870912){break m}b=0;a=a>>>29|0;break n}o:{if((i|0)==(h|0)&j>>>0>s>>>0|i>>>0>>0){break o}a=b;i=b+j|0;b=d+h|0;b=a>>>0>i>>>0?b+1|0:b;a=i;h=g;d=g>>31;g=d;i=d^n;d=(d^h)-(d+(d>>>0>i>>>0)|0)|0;g=i-g|0;i=d^2147483647;if((i|0)==(b|0)&(g^-1)>>>0>>0|b>>>0>i>>>0){break o}b=b+d|0;a=a+g|0;b=a>>>0>>0?b+1|0:b;p=a;e=b;if(!b&a>>>0<536870913){break m}}b=e>>>29|0;a=(e&536870911)<<3|p>>>29}n=Nj(n,k,a,b);l=Nj(l,m,a,b);q=Nj(q,r,a,b)}F[c+8>>2]=n;F[c+4>>2]=l;F[c>>2]=q;ea=f+96|0;return}Ea();V()}Ea();V()}Ea();V()}function jc(a,b,c,d){var e=0,f=0,g=0,h=0,i=M(0),j=0,k=M(0),l=0;a:{b:{c:{if(!d){break c}d:{switch(F[a+28>>2]-1|0){case 0:g=1;e=D[a+24|0];if((((c|0)>(e|0)?e:c)|0)>0){e=F[F[a>>2]>>2];b=F[a+48>>2]+Mj(F[a+40>>2],F[a+44>>2],b,0)|0;b=e+b|0;while(1){if(I[F[a>>2]+4>>2]<=b>>>0){break b}D[d+f|0]=G[b|0];b=b+1|0;f=f+1|0;e=D[a+24|0];if((f|0)<(((c|0)>(e|0)?e:c)|0)){continue}break}}if((c|0)<=(e|0)){break c}break a;case 1:g=D[a+24|0];if((((c|0)>(g|0)?g:c)|0)>0){e=F[F[a>>2]>>2];b=F[a+48>>2]+Mj(F[a+40>>2],F[a+44>>2],b,0)|0;b=e+b|0;while(1){if(I[F[a>>2]+4>>2]<=b>>>0){break b}g=0;e=D[b|0];if((e|0)<0){break c}D[d+f|0]=e;b=b+1|0;f=f+1|0;g=D[a+24|0];if((f|0)<(((c|0)>(g|0)?g:c)|0)){continue}break}}if((c|0)<=(g|0)){return 1}ua(d+g|0,0,c-g|0);return 1;case 2:g=1;e=D[a+24|0];if((((c|0)>(e|0)?e:c)|0)>0){e=F[F[a>>2]>>2];b=F[a+48>>2]+Mj(F[a+40>>2],F[a+44>>2],b,0)|0;b=e+b|0;while(1){if(I[F[a>>2]+4>>2]<=b>>>0){break b}e=H[b>>1];if((e-128&65535)>>>0<65280){break b}D[d+f|0]=e;b=b+2|0;f=f+1|0;e=D[a+24|0];if((f|0)<(((c|0)>(e|0)?e:c)|0)){continue}break}}if((c|0)<=(e|0)){break c}break a;case 3:g=1;e=D[a+24|0];if((((c|0)>(e|0)?e:c)|0)>0){e=F[F[a>>2]>>2];b=F[a+48>>2]+Mj(F[a+40>>2],F[a+44>>2],b,0)|0;b=e+b|0;while(1){if(I[F[a>>2]+4>>2]<=b>>>0){break b}e=H[b>>1];if(e>>>0>127){break b}D[d+f|0]=e;b=b+2|0;f=f+1|0;e=D[a+24|0];if((f|0)<(((c|0)>(e|0)?e:c)|0)){continue}break}}if((c|0)<=(e|0)){break c}break a;case 4:g=1;e=D[a+24|0];if((((c|0)>(e|0)?e:c)|0)>0){e=F[F[a>>2]>>2];b=F[a+48>>2]+Mj(F[a+40>>2],F[a+44>>2],b,0)|0;b=e+b|0;while(1){if(I[F[a>>2]+4>>2]<=b>>>0){break b}e=F[b>>2];if(e-128>>>0<4294967040){break b}D[d+f|0]=e;b=b+4|0;f=f+1|0;e=D[a+24|0];if((f|0)<(((c|0)>(e|0)?e:c)|0)){continue}break}}if((c|0)<=(e|0)){break c}break a;case 5:g=1;e=D[a+24|0];if((((c|0)>(e|0)?e:c)|0)>0){e=F[F[a>>2]>>2];b=F[a+48>>2]+Mj(F[a+40>>2],F[a+44>>2],b,0)|0;b=e+b|0;while(1){if(I[F[a>>2]+4>>2]<=b>>>0){break b}e=F[b>>2];if(e>>>0>127){break b}D[d+f|0]=e;b=b+4|0;f=f+1|0;e=D[a+24|0];if((f|0)<(((c|0)>(e|0)?e:c)|0)){continue}break}}if((c|0)<=(e|0)){break c}break a;case 6:g=1;e=D[a+24|0];if((((c|0)>(e|0)?e:c)|0)>0){e=F[F[a>>2]>>2];b=F[a+48>>2]+Mj(F[a+40>>2],F[a+44>>2],b,0)|0;b=e+b|0;while(1){if(I[F[a>>2]+4>>2]<=b>>>0){break b}h=F[b>>2];e=F[b+4>>2]-(h>>>0<128)|0;if((e|0)==-1&h-128>>>0<4294967040|(e|0)!=-1){break b}D[d+f|0]=h;b=b+8|0;f=f+1|0;e=D[a+24|0];if((f|0)<(((c|0)>(e|0)?e:c)|0)){continue}break}}if((c|0)<=(e|0)){break c}break a;case 7:g=1;e=D[a+24|0];if((((c|0)>(e|0)?e:c)|0)>0){e=F[F[a>>2]>>2];b=F[a+48>>2]+Mj(F[a+40>>2],F[a+44>>2],b,0)|0;b=e+b|0;while(1){if(I[F[a>>2]+4>>2]<=b>>>0){break b}e=F[b+4>>2];h=F[b>>2];if(!e&h>>>0>127|e){break b}D[d+f|0]=h;b=b+8|0;f=f+1|0;e=D[a+24|0];if((f|0)<(((c|0)>(e|0)?e:c)|0)){continue}break}}if((c|0)<=(e|0)){break c}break a;case 8:g=1;e=D[a+24|0];if((((c|0)>(e|0)?e:c)|0)>0){e=F[F[a>>2]>>2];b=F[a+48>>2]+Mj(F[a+40>>2],F[a+44>>2],b,0)|0;b=e+b|0;while(1){if(I[F[a>>2]+4>>2]<=b>>>0){break b}i=J[b>>2];if(i>M(127)|i(e|0)?e:c)|0)){continue}break}}if((c|0)<=(e|0)){break c}break a;case 9:g=1;e=D[a+24|0];if((((c|0)>(e|0)?e:c)|0)>0){e=F[F[a>>2]>>2];b=F[a+48>>2]+Mj(F[a+40>>2],F[a+44>>2],b,0)|0;b=e+b|0;while(1){if(I[F[a>>2]+4>>2]<=b>>>0){break b}j=K[b>>3];if(j>127|j<-128|j!=j){break b}l=N(j);if(l==X){break b}h=d+f|0;if(l<2147483648){e=~~j}else{e=-2147483648}D[h|0]=e;b=b+8|0;f=f+1|0;e=D[a+24|0];if((f|0)<(((c|0)>(e|0)?e:c)|0)){continue}break}}if((c|0)<=(e|0)){break c}break a;case 10:break d;default:break c}}g=1;e=D[a+24|0];if((((c|0)>(e|0)?e:c)|0)>0){e=F[F[a>>2]>>2];b=F[a+48>>2]+Mj(F[a+40>>2],F[a+44>>2],b,0)|0;b=e+b|0;while(1){if(I[F[a>>2]+4>>2]<=b>>>0){break b}D[d+f|0]=G[b|0];b=b+1|0;f=f+1|0;e=D[a+24|0];if((f|0)<(((c|0)>(e|0)?e:c)|0)){continue}break}}if((c|0)<=(e|0)){break c}ua(d+e|0,0,c-e|0)}return g}return 0}ua(d+e|0,0,c-e|0);return 1}function Fj(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0;F[a+8>>2]=e;s=a+32|0;g=F[s>>2];f=F[a+36>>2]-g>>2;a:{if(f>>>0>>0){Aa(s,e-f|0);d=F[a+8>>2];break a}d=e;if(d>>>0>=f>>>0){break a}F[a+36>>2]=g+(e<<2);d=e}f=(e&1073741823)!=(e|0)?-1:e<<2;m=ua(sa(f),0,f);p=ua(sa(f),0,f);b:{if((d|0)<=0){break b}i=F[a+32>>2];while(1){d=h<<2;f=F[d+m>>2];g=F[a+16>>2];c:{if((f|0)>(g|0)){F[d+i>>2]=g;break c}d=d+i|0;g=F[a+12>>2];if((g|0)>(f|0)){F[d>>2]=g;break c}F[d>>2]=f}d=F[a+8>>2];h=h+1|0;if((d|0)>(h|0)){continue}break}if((d|0)<=0){break b}f=0;while(1){g=f<<2;d=g+c|0;g=F[b+g>>2]+F[g+i>>2]|0;F[d>>2]=g;d:{if((g|0)>F[a+16>>2]){g=g-F[a+20>>2]|0}else{if((g|0)>=F[a+12>>2]){break d}g=g+F[a+20>>2]|0}F[d>>2]=g}d=F[a+8>>2];f=f+1|0;if((d|0)>(f|0)){continue}break}}f=F[a+56>>2];w=F[f>>2];f=F[f+4>>2]-w|0;if((f|0)>=5){A=F[a+52>>2];r=F[a+48>>2];u=f>>>2|0;B=u>>>0>2?u:2;x=e&-2;y=e&1;C=e&-4;z=e&3;v=e-1|0;D=e<<2;n=1;while(1){e:{f:{g:{h:{if((n|0)!=(u|0)){g=F[(n<<2)+w>>2];t=(e|0)<=0;if(!t){ua(m,0,D)}if((g|0)==-1){i=L(e,n);break f}E=F[r>>2];l=0;f=g;while(1){i:{if(F[(f>>>3&536870908)+E>>2]>>>f&1){break i}i=F[F[F[r+64>>2]+12>>2]+(f<<2)>>2];if((i|0)==-1){break i}j=F[A>>2];h=F[r+28>>2];o=F[j+(F[h+(i<<2)>>2]<<2)>>2];if((o|0)>=(n|0)){break i}k=i+1|0;k=F[j+(F[h+(((k>>>0)%3|0?k:i-2|0)<<2)>>2]<<2)>>2];if((k|0)>=(n|0)){break i}i=F[j+(F[h+(i+((i>>>0)%3|0?-1:2)<<2)>>2]<<2)>>2];if((i|0)>=(n|0)){break i}j:{if(t){break j}i=L(e,i);j=L(e,k);o=L(e,o);h=0;q=0;if(v){while(1){F[(h<<2)+p>>2]=(F[(h+i<<2)+c>>2]+F[(h+j<<2)+c>>2]|0)-F[(h+o<<2)+c>>2];k=h|1;F[(k<<2)+p>>2]=(F[(i+k<<2)+c>>2]+F[(j+k<<2)+c>>2]|0)-F[(k+o<<2)+c>>2];h=h+2|0;q=q+2|0;if((x|0)!=(q|0)){continue}break}}if(y){F[(h<<2)+p>>2]=(F[(h+i<<2)+c>>2]+F[(h+j<<2)+c>>2]|0)-F[(h+o<<2)+c>>2]}if(t){break j}o=0;h=0;i=0;if(v>>>0>2){while(1){j=h<<2;k=j+m|0;F[k>>2]=F[k>>2]+F[j+p>>2];k=j|4;q=k+m|0;F[q>>2]=F[q>>2]+F[k+p>>2];k=j|8;q=k+m|0;F[q>>2]=F[q>>2]+F[k+p>>2];j=j|12;k=j+m|0;F[k>>2]=F[k>>2]+F[j+p>>2];h=h+4|0;i=i+4|0;if((C|0)!=(i|0)){continue}break}}if(!z){break j}while(1){i=h<<2;j=i+m|0;F[j>>2]=F[j>>2]+F[i+p>>2];h=h+1|0;o=o+1|0;if((z|0)!=(o|0)){continue}break}}l=l+1|0}k:{l:{if((f>>>0)%3|0){h=f-1|0;break l}h=f+2|0;i=-1;if((h|0)==-1){break k}}i=-1;if(F[F[r>>2]+(h>>>3&536870908)>>2]>>>h&1){break k}f=F[F[F[r+64>>2]+12>>2]+(h<<2)>>2];i=-1;if((f|0)==-1){break k}i=f-1|0;if((f>>>0)%3|0){break k}i=f+2|0}f=i;if((g|0)!=(f|0)&(f|0)!=-1){continue}break}i=L(e,n);if(!l){break f}if(t){break g}h=0;f=0;if(!v){break h}while(1){g=h<<2;j=g+m|0;F[j>>2]=F[j>>2]/(l|0);g=(g|4)+m|0;F[g>>2]=F[g>>2]/(l|0);h=h+2|0;f=f+2|0;if((x|0)!=(f|0)){continue}break}break h}Ea();V()}if(!y){break g}f=(h<<2)+m|0;F[f>>2]=F[f>>2]/(l|0)}if((d|0)<=0){break e}l=F[s>>2];h=0;while(1){d=h<<2;f=F[d+m>>2];g=F[a+16>>2];m:{if((f|0)>(g|0)){F[d+l>>2]=g;break m}d=d+l|0;g=F[a+12>>2];if((g|0)>(f|0)){F[d>>2]=g;break m}F[d>>2]=f}d=F[a+8>>2];h=h+1|0;if((d|0)>(h|0)){continue}break}f=0;if((d|0)<=0){break e}d=i<<2;i=d+c|0;h=b+d|0;while(1){g=f<<2;d=g+i|0;g=F[h+g>>2]+F[g+l>>2]|0;F[d>>2]=g;n:{if((g|0)>F[a+16>>2]){g=g-F[a+20>>2]|0}else{if((g|0)>=F[a+12>>2]){break n}g=g+F[a+20>>2]|0}F[d>>2]=g}d=F[a+8>>2];f=f+1|0;if((d|0)>(f|0)){continue}break}break e}if((d|0)<=0){break e}g=(L(n-1|0,e)<<2)+c|0;l=F[s>>2];h=0;while(1){d=h<<2;f=F[d+g>>2];j=F[a+16>>2];o:{if((f|0)>(j|0)){F[d+l>>2]=j;break o}d=d+l|0;j=F[a+12>>2];if((j|0)>(f|0)){F[d>>2]=j;break o}F[d>>2]=f}d=F[a+8>>2];h=h+1|0;if((d|0)>(h|0)){continue}break}f=0;if((d|0)<=0){break e}d=i<<2;i=d+c|0;h=b+d|0;while(1){g=f<<2;d=g+i|0;g=F[h+g>>2]+F[g+l>>2]|0;F[d>>2]=g;p:{if((g|0)>F[a+16>>2]){g=g-F[a+20>>2]|0}else{if((g|0)>=F[a+12>>2]){break p}g=g+F[a+20>>2]|0}F[d>>2]=g}d=F[a+8>>2];f=f+1|0;if((d|0)>(f|0)){continue}break}}n=n+1|0;if((B|0)!=(n|0)){continue}break}}ra(p);ra(m);return 1}function ic(a,b,c,d){var e=0,f=0,g=0,h=0,i=M(0),j=0;a:{b:{c:{if(!d){break c}d:{switch(F[a+28>>2]-1|0){case 0:g=D[a+24|0];if((((c|0)>(g|0)?g:c)|0)>0){e=F[F[a>>2]>>2];b=F[a+48>>2]+Mj(F[a+40>>2],F[a+44>>2],b,0)|0;b=e+b|0;while(1){if(I[F[a>>2]+4>>2]<=b>>>0){break b}g=0;e=D[b|0];if((e|0)<0){break c}D[d+f|0]=e;b=b+1|0;f=f+1|0;g=D[a+24|0];if((f|0)<(((c|0)>(g|0)?g:c)|0)){continue}break}}if((c|0)<=(g|0)){return 1}ua(d+g|0,0,c-g|0);return 1;case 1:g=1;e=D[a+24|0];if((((c|0)>(e|0)?e:c)|0)>0){e=F[F[a>>2]>>2];b=F[a+48>>2]+Mj(F[a+40>>2],F[a+44>>2],b,0)|0;b=e+b|0;while(1){if(I[F[a>>2]+4>>2]<=b>>>0){break b}D[d+f|0]=G[b|0];b=b+1|0;f=f+1|0;e=D[a+24|0];if((f|0)<(((c|0)>(e|0)?e:c)|0)){continue}break}}if((c|0)<=(e|0)){break c}break a;case 2:g=1;e=D[a+24|0];if((((c|0)>(e|0)?e:c)|0)>0){e=F[F[a>>2]>>2];b=F[a+48>>2]+Mj(F[a+40>>2],F[a+44>>2],b,0)|0;b=e+b|0;while(1){if(I[F[a>>2]+4>>2]<=b>>>0){break b}e=H[b>>1];if(e>>>0>255){break b}D[d+f|0]=e;b=b+2|0;f=f+1|0;e=D[a+24|0];if((f|0)<(((c|0)>(e|0)?e:c)|0)){continue}break}}if((c|0)<=(e|0)){break c}break a;case 3:g=1;e=D[a+24|0];if((((c|0)>(e|0)?e:c)|0)>0){e=F[F[a>>2]>>2];b=F[a+48>>2]+Mj(F[a+40>>2],F[a+44>>2],b,0)|0;b=e+b|0;while(1){if(I[F[a>>2]+4>>2]<=b>>>0){break b}e=H[b>>1];if(e>>>0>255){break b}D[d+f|0]=e;b=b+2|0;f=f+1|0;e=D[a+24|0];if((f|0)<(((c|0)>(e|0)?e:c)|0)){continue}break}}if((c|0)<=(e|0)){break c}break a;case 4:g=1;e=D[a+24|0];if((((c|0)>(e|0)?e:c)|0)>0){e=F[F[a>>2]>>2];b=F[a+48>>2]+Mj(F[a+40>>2],F[a+44>>2],b,0)|0;b=e+b|0;while(1){if(I[F[a>>2]+4>>2]<=b>>>0){break b}e=F[b>>2];if(e>>>0>255){break b}D[d+f|0]=e;b=b+4|0;f=f+1|0;e=D[a+24|0];if((f|0)<(((c|0)>(e|0)?e:c)|0)){continue}break}}if((c|0)<=(e|0)){break c}break a;case 5:g=1;e=D[a+24|0];if((((c|0)>(e|0)?e:c)|0)>0){e=F[F[a>>2]>>2];b=F[a+48>>2]+Mj(F[a+40>>2],F[a+44>>2],b,0)|0;b=e+b|0;while(1){if(I[F[a>>2]+4>>2]<=b>>>0){break b}e=F[b>>2];if(e>>>0>255){break b}D[d+f|0]=e;b=b+4|0;f=f+1|0;e=D[a+24|0];if((f|0)<(((c|0)>(e|0)?e:c)|0)){continue}break}}if((c|0)<=(e|0)){break c}break a;case 6:g=1;e=D[a+24|0];if((((c|0)>(e|0)?e:c)|0)>0){e=F[F[a>>2]>>2];b=F[a+48>>2]+Mj(F[a+40>>2],F[a+44>>2],b,0)|0;b=e+b|0;while(1){if(I[F[a>>2]+4>>2]<=b>>>0){break b}e=F[b+4>>2];h=F[b>>2];if(!e&h>>>0>255|e){break b}D[d+f|0]=h;b=b+8|0;f=f+1|0;e=D[a+24|0];if((f|0)<(((c|0)>(e|0)?e:c)|0)){continue}break}}if((c|0)<=(e|0)){break c}break a;case 7:g=1;e=D[a+24|0];if((((c|0)>(e|0)?e:c)|0)>0){e=F[F[a>>2]>>2];b=F[a+48>>2]+Mj(F[a+40>>2],F[a+44>>2],b,0)|0;b=e+b|0;while(1){if(I[F[a>>2]+4>>2]<=b>>>0){break b}e=F[b+4>>2];h=F[b>>2];if(!e&h>>>0>255|e){break b}D[d+f|0]=h;b=b+8|0;f=f+1|0;e=D[a+24|0];if((f|0)<(((c|0)>(e|0)?e:c)|0)){continue}break}}if((c|0)<=(e|0)){break c}break a;case 8:g=1;e=D[a+24|0];if((((c|0)>(e|0)?e:c)|0)>0){e=F[F[a>>2]>>2];b=F[a+48>>2]+Mj(F[a+40>>2],F[a+44>>2],b,0)|0;b=e+b|0;while(1){if(I[F[a>>2]+4>>2]<=b>>>0){break b}i=J[b>>2];if(i>M(255)|i=M(0)){e=~~i>>>0}else{e=0}D[h|0]=e;b=b+4|0;f=f+1|0;e=D[a+24|0];if((f|0)<(((c|0)>(e|0)?e:c)|0)){continue}break}}if((c|0)<=(e|0)){break c}break a;case 9:g=1;e=D[a+24|0];if((((c|0)>(e|0)?e:c)|0)>0){e=F[F[a>>2]>>2];b=F[a+48>>2]+Mj(F[a+40>>2],F[a+44>>2],b,0)|0;b=e+b|0;while(1){if(I[F[a>>2]+4>>2]<=b>>>0){break b}j=K[b>>3];if(j>255|j<0|(N(j)==X|j!=j)){break b}h=d+f|0;if(j<4294967296&j>=0){e=~~j>>>0}else{e=0}D[h|0]=e;b=b+8|0;f=f+1|0;e=D[a+24|0];if((f|0)<(((c|0)>(e|0)?e:c)|0)){continue}break}}if((c|0)<=(e|0)){break c}break a;case 10:break d;default:break c}}g=1;e=D[a+24|0];if((((c|0)>(e|0)?e:c)|0)>0){e=F[F[a>>2]>>2];b=F[a+48>>2]+Mj(F[a+40>>2],F[a+44>>2],b,0)|0;b=e+b|0;while(1){if(I[F[a>>2]+4>>2]<=b>>>0){break b}D[d+f|0]=G[b|0];b=b+1|0;f=f+1|0;e=D[a+24|0];if((f|0)<(((c|0)>(e|0)?e:c)|0)){continue}break}}if((c|0)<=(e|0)){break c}ua(d+e|0,0,c-e|0)}return g}return 0}ua(d+e|0,0,c-e|0);return 1}function nc(a,b,c){var d=0,e=0,f=0,g=0,h=0,i=0;e=ea-48|0;ea=e;d=H[6677]|H[6678]<<16;f=H[6675]|H[6676]<<16;E[e+38>>1]=f;E[e+40>>1]=f>>>16;E[e+42>>1]=d;E[e+44>>1]=d>>>16;d=F[3337];F[e+32>>2]=F[3336];F[e+36>>2]=d;d=F[3335];F[e+24>>2]=F[3334];F[e+28>>2]=d;d=F[3333];F[e+16>>2]=F[3332];F[e+20>>2]=d;f=F[b+12>>2];d=F[b+20>>2];g=F[b+16>>2];h=g+5|0;d=h>>>0<5?d+1|0:d;a:{b:{if(h>>>0>I[b+8>>2]&(d|0)>=(f|0)|(d|0)>(f|0)){b=Oa(e+16|0);if(b>>>0>=4294967280){break a}c:{d:{if(b>>>0>=11){d=b+16&-16;c=sa(d);F[e+8>>2]=d|-2147483648;F[e>>2]=c;F[e+4>>2]=b;break d}D[e+11|0]=b;c=e;if(!b){break c}}ta(c,e+16|0,b)}D[b+c|0]=0;F[a>>2]=-2;a=a+4|0;if(D[e+11|0]>=0){b=F[e+4>>2];F[a>>2]=F[e>>2];F[a+4>>2]=b;F[a+8>>2]=F[e+8>>2];break b}b=a;a=F[e>>2];Ba(b,a,F[e+4>>2]);ra(a);break b}d=g+F[b>>2]|0;f=G[d|0]|G[d+1|0]<<8|(G[d+2|0]<<16|G[d+3|0]<<24);D[c|0]=f;D[c+1|0]=f>>>8;D[c+2|0]=f>>>16;D[c+3|0]=f>>>24;D[c+4|0]=G[d+4|0];d=F[b+20>>2];f=F[b+16>>2]+5|0;d=f>>>0<5?d+1|0:d;F[b+16>>2]=f;F[b+20>>2]=d;if(Ha(c,1260,5)){b=sa(32);D[b+16|0]=G[1496];c=G[1492]|G[1493]<<8|(G[1494]<<16|G[1495]<<24);d=G[1488]|G[1489]<<8|(G[1490]<<16|G[1491]<<24);D[b+8|0]=d;D[b+9|0]=d>>>8;D[b+10|0]=d>>>16;D[b+11|0]=d>>>24;D[b+12|0]=c;D[b+13|0]=c>>>8;D[b+14|0]=c>>>16;D[b+15|0]=c>>>24;c=G[1484]|G[1485]<<8|(G[1486]<<16|G[1487]<<24);d=G[1480]|G[1481]<<8|(G[1482]<<16|G[1483]<<24);D[b|0]=d;D[b+1|0]=d>>>8;D[b+2|0]=d>>>16;D[b+3|0]=d>>>24;D[b+4|0]=c;D[b+5|0]=c>>>8;D[b+6|0]=c>>>16;D[b+7|0]=c>>>24;D[b+17|0]=0;F[a>>2]=-1;Ba(a+4|0,b,17);ra(b);break b}g=F[b+12>>2];if((g|0)<=(d|0)&I[b+8>>2]<=f>>>0|(d|0)>(g|0)){b=Oa(e+16|0);if(b>>>0>=4294967280){break a}e:{f:{if(b>>>0>=11){d=b+16&-16;c=sa(d);F[e+8>>2]=d|-2147483648;F[e>>2]=c;F[e+4>>2]=b;break f}D[e+11|0]=b;c=e;if(!b){break e}}ta(c,e+16|0,b)}D[b+c|0]=0;F[a>>2]=-2;a=a+4|0;if(D[e+11|0]>=0){b=F[e+4>>2];F[a>>2]=F[e>>2];F[a+4>>2]=b;F[a+8>>2]=F[e+8>>2];break b}b=a;a=F[e>>2];Ba(b,a,F[e+4>>2]);ra(a);break b}D[c+5|0]=G[f+F[b>>2]|0];d=F[b+20>>2];f=F[b+16>>2]+1|0;d=f?d:d+1|0;F[b+16>>2]=f;F[b+20>>2]=d;g=F[b+12>>2];if((g|0)<=(d|0)&I[b+8>>2]<=f>>>0|(d|0)>(g|0)){b=Oa(e+16|0);if(b>>>0>=4294967280){break a}g:{h:{if(b>>>0>=11){d=b+16&-16;c=sa(d);F[e+8>>2]=d|-2147483648;F[e>>2]=c;F[e+4>>2]=b;break h}D[e+11|0]=b;c=e;if(!b){break g}}ta(c,e+16|0,b)}D[b+c|0]=0;F[a>>2]=-2;a=a+4|0;if(D[e+11|0]>=0){b=F[e+4>>2];F[a>>2]=F[e>>2];F[a+4>>2]=b;F[a+8>>2]=F[e+8>>2];break b}b=a;a=F[e>>2];Ba(b,a,F[e+4>>2]);ra(a);break b}D[c+6|0]=G[f+F[b>>2]|0];d=F[b+20>>2];f=F[b+16>>2]+1|0;d=f?d:d+1|0;F[b+16>>2]=f;F[b+20>>2]=d;g=F[b+12>>2];if((g|0)<=(d|0)&I[b+8>>2]<=f>>>0|(d|0)>(g|0)){b=Oa(e+16|0);if(b>>>0>=4294967280){break a}i:{j:{if(b>>>0>=11){d=b+16&-16;c=sa(d);F[e+8>>2]=d|-2147483648;F[e>>2]=c;F[e+4>>2]=b;break j}D[e+11|0]=b;c=e;if(!b){break i}}ta(c,e+16|0,b)}D[b+c|0]=0;F[a>>2]=-2;a=a+4|0;if(D[e+11|0]>=0){b=F[e+4>>2];F[a>>2]=F[e>>2];F[a+4>>2]=b;F[a+8>>2]=F[e+8>>2];break b}b=a;a=F[e>>2];Ba(b,a,F[e+4>>2]);ra(a);break b}D[c+7|0]=G[f+F[b>>2]|0];d=F[b+20>>2];f=F[b+16>>2]+1|0;d=f?d:d+1|0;F[b+16>>2]=f;F[b+20>>2]=d;g=F[b+12>>2];if((g|0)<=(d|0)&I[b+8>>2]<=f>>>0|(d|0)>(g|0)){b=mc(e,e+16|0);F[a>>2]=-2;a=a+4|0;if(D[b+11|0]>=0){c=F[b+4>>2];F[a>>2]=F[b>>2];F[a+4>>2]=c;F[a+8>>2]=F[b+8>>2];break b}Ba(a,F[b>>2],F[b+4>>2]);if(D[b+11|0]>=0){break b}ra(F[b>>2]);break b}D[c+8|0]=G[f+F[b>>2]|0];d=F[b+20>>2];f=d;i=F[b+16>>2];g=i+1|0;d=g?d:d+1|0;F[b+16>>2]=g;F[b+20>>2]=d;h=F[b+12>>2];d=f;f=i+3|0;d=f>>>0<3?d+1|0:d;if(f>>>0>I[b+8>>2]&(d|0)>=(h|0)|(d|0)>(h|0)){b=mc(e,e+16|0);F[a>>2]=-2;a=a+4|0;if(D[b+11|0]>=0){c=F[b+4>>2];F[a>>2]=F[b>>2];F[a+4>>2]=c;F[a+8>>2]=F[b+8>>2];break b}Ba(a,F[b>>2],F[b+4>>2]);if(D[b+11|0]>=0){break b}ra(F[b>>2]);break b}f=c;c=g+F[b>>2]|0;E[f+10>>1]=G[c|0]|G[c+1|0]<<8;d=F[b+20>>2];c=F[b+16>>2]+2|0;d=c>>>0<2?d+1|0:d;F[b+16>>2]=c;F[b+20>>2]=d;F[a+8>>2]=0;F[a+12>>2]=0;F[a>>2]=0;F[a+4>>2]=0}ea=e+48|0;return}Pa();V()}function pj(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0;F[a+8>>2]=e;r=a+32|0;f=F[r>>2];j=F[a+36>>2]-f>>2;a:{if(j>>>0>>0){Aa(r,e-j|0);d=F[a+8>>2];break a}d=e;if(e>>>0>=j>>>0){break a}F[a+36>>2]=f+(e<<2);d=e}f=(e&1073741823)!=(e|0)?-1:e<<2;m=ua(sa(f),0,f);p=ua(sa(f),0,f);b:{if((d|0)<=0){break b}i=F[a+32>>2];while(1){f=h<<2;j=F[f+m>>2];d=F[a+16>>2];c:{if((j|0)>(d|0)){F[f+i>>2]=d;break c}f=f+i|0;d=F[a+12>>2];if((d|0)>(j|0)){F[f>>2]=d;break c}F[f>>2]=j}d=F[a+8>>2];h=h+1|0;if((d|0)>(h|0)){continue}break}if((d|0)<=0){break b}f=0;while(1){j=f<<2;d=j+c|0;j=F[b+j>>2]+F[j+i>>2]|0;F[d>>2]=j;d:{if((j|0)>F[a+16>>2]){j=j-F[a+20>>2]|0}else{if((j|0)>=F[a+12>>2]){break d}j=j+F[a+20>>2]|0}F[d>>2]=j}d=F[a+8>>2];f=f+1|0;if((d|0)>(f|0)){continue}break}}f=F[a+56>>2];v=F[f>>2];f=F[f+4>>2]-v|0;if((f|0)>=5){B=F[a+52>>2];w=F[a+48>>2];t=f>>>2|0;C=t>>>0>2?t:2;x=e&-2;y=e&1;D=e&-4;z=e&3;u=e-1|0;E=e<<2;n=1;while(1){e:{f:{g:{h:{if((n|0)!=(t|0)){j=F[(n<<2)+v>>2];s=(e|0)<=0;if(!s){ua(m,0,E)}if((j|0)==-1){g=L(e,n);break f}A=F[w+12>>2];q=0;f=j;while(1){h=F[(f<<2)+A>>2];i:{if((h|0)==-1){break i}o=F[B>>2];l=F[w>>2];k=F[o+(F[l+(h<<2)>>2]<<2)>>2];i=h+1|0;i=(i>>>0)%3|0?i:h-2|0;if((i|0)!=-1){g=F[l+(i<<2)>>2]}else{g=-1}j:{k:{if((h>>>0)%3|0){h=h-1|0;break k}h=h+2|0;i=-1;if((h|0)==-1){break j}}i=F[l+(h<<2)>>2]}if((k|0)>=(n|0)){break i}g=F[(g<<2)+o>>2];if((g|0)>=(n|0)){break i}i=F[o+(i<<2)>>2];if((i|0)>=(n|0)){break i}l:{if(s){break l}l=L(e,i);o=L(e,g);k=L(e,k);h=0;i=0;if(u){while(1){F[(h<<2)+p>>2]=(F[(h+l<<2)+c>>2]+F[(h+o<<2)+c>>2]|0)-F[(h+k<<2)+c>>2];g=h|1;F[(g<<2)+p>>2]=(F[(g+l<<2)+c>>2]+F[(g+o<<2)+c>>2]|0)-F[(g+k<<2)+c>>2];h=h+2|0;i=i+2|0;if((x|0)!=(i|0)){continue}break}}if(y){F[(h<<2)+p>>2]=(F[(h+l<<2)+c>>2]+F[(h+o<<2)+c>>2]|0)-F[(h+k<<2)+c>>2]}if(s){break l}o=0;h=0;k=0;if(u>>>0>2){while(1){l=h<<2;i=l+m|0;F[i>>2]=F[i>>2]+F[l+p>>2];g=l|4;i=g+m|0;F[i>>2]=F[i>>2]+F[g+p>>2];g=l|8;i=g+m|0;F[i>>2]=F[i>>2]+F[g+p>>2];g=l|12;i=g+m|0;F[i>>2]=F[i>>2]+F[g+p>>2];h=h+4|0;k=k+4|0;if((D|0)!=(k|0)){continue}break}}if(!z){break l}while(1){g=h<<2;i=g+m|0;F[i>>2]=F[i>>2]+F[g+p>>2];h=h+1|0;o=o+1|0;if((z|0)!=(o|0)){continue}break}}q=q+1|0}m:{n:{if((f>>>0)%3|0){h=f-1|0;break n}h=f+2|0;g=-1;if((h|0)==-1){break m}}f=F[(h<<2)+A>>2];g=-1;if((f|0)==-1){break m}g=f-1|0;if((f>>>0)%3|0){break m}g=f+2|0}f=g;if((j|0)!=(f|0)&(f|0)!=-1){continue}break}g=L(e,n);if(!q){break f}if(s){break g}h=0;f=0;if(!u){break h}while(1){i=h<<2;j=i+m|0;F[j>>2]=F[j>>2]/(q|0);j=(i|4)+m|0;F[j>>2]=F[j>>2]/(q|0);h=h+2|0;f=f+2|0;if((x|0)!=(f|0)){continue}break}break h}Ea();V()}if(!y){break g}f=(h<<2)+m|0;F[f>>2]=F[f>>2]/(q|0)}if((d|0)<=0){break e}k=F[r>>2];h=0;while(1){f=h<<2;j=F[f+m>>2];d=F[a+16>>2];o:{if((j|0)>(d|0)){F[f+k>>2]=d;break o}f=f+k|0;d=F[a+12>>2];if((d|0)>(j|0)){F[f>>2]=d;break o}F[f>>2]=j}d=F[a+8>>2];h=h+1|0;if((d|0)>(h|0)){continue}break}f=0;if((d|0)<=0){break e}d=g<<2;i=d+c|0;j=b+d|0;while(1){g=f<<2;d=g+i|0;g=F[g+j>>2]+F[g+k>>2]|0;F[d>>2]=g;p:{if((g|0)>F[a+16>>2]){g=g-F[a+20>>2]|0}else{if((g|0)>=F[a+12>>2]){break p}g=g+F[a+20>>2]|0}F[d>>2]=g}d=F[a+8>>2];f=f+1|0;if((d|0)>(f|0)){continue}break}break e}if((d|0)<=0){break e}f=(L(n-1|0,e)<<2)+c|0;k=F[r>>2];h=0;while(1){j=h<<2;i=F[j+f>>2];d=F[a+16>>2];q:{if((i|0)>(d|0)){F[j+k>>2]=d;break q}j=j+k|0;d=F[a+12>>2];if((d|0)>(i|0)){F[j>>2]=d;break q}F[j>>2]=i}d=F[a+8>>2];h=h+1|0;if((d|0)>(h|0)){continue}break}f=0;if((d|0)<=0){break e}d=g<<2;i=d+c|0;j=b+d|0;while(1){g=f<<2;d=g+i|0;g=F[g+j>>2]+F[g+k>>2]|0;F[d>>2]=g;r:{if((g|0)>F[a+16>>2]){g=g-F[a+20>>2]|0}else{if((g|0)>=F[a+12>>2]){break r}g=g+F[a+20>>2]|0}F[d>>2]=g}d=F[a+8>>2];f=f+1|0;if((d|0)>(f|0)){continue}break}}n=n+1|0;if((C|0)!=(n|0)){continue}break}}ra(p);ra(m);return 1}function xj(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=M(0),k=0,l=0,m=M(0),n=M(0),o=M(0),p=M(0),q=M(0),r=M(0),s=M(0),t=0,u=M(0),v=M(0),w=0,x=0,y=M(0),z=M(0),A=M(0),B=0;a:{if((e|0)==2){F[a+64>>2]=f;F[a+72>>2]=2;e=sa(8);d=F[a+68>>2];F[a+68>>2]=e;if(d){ra(d)}F[a+8>>2]=2;w=a+32|0;e=F[w>>2];d=F[a+36>>2]-e|0;b:{if(d>>>0<=7){Aa(w,2-(d>>>2|0)|0);break b}if((d|0)==8){break b}F[a+36>>2]=e+8}d=F[a+56>>2];d=F[d+4>>2]-F[d>>2]|0;c:{if((d|0)<=0){f=0;break c}x=d>>2;B=(x|0)>1?x:1;f=1;while(1){d=F[a+56>>2];g=F[d>>2];if(F[d+4>>2]-g>>2>>>0<=l>>>0){break a}q=M(0);h=ea-48|0;ea=h;d=-1;g=F[g+(l<<2)>>2];e=-1;d:{if((g|0)==-1){break d}d=g+1|0;d=(d>>>0)%3|0?d:g-2|0;e=g-1|0;if((g>>>0)%3|0){break d}e=g+2|0}i=F[a+52>>2];g=F[i>>2];e:{f:{i=F[i+4>>2]-g>>2;t=d<<2;d=F[F[a+48>>2]+28>>2];t=F[t+d>>2];if(i>>>0<=t>>>0){break f}d=F[d+(e<<2)>>2];if(d>>>0>=i>>>0){break f}i=F[g+(d<<2)>>2];e=F[g+(t<<2)>>2];g:{if(!((i|0)>=(l|0)|(e|0)>=(l|0))){d=F[a+72>>2];g=(L(d,i)<<2)+c|0;m=M(F[g+4>>2]);d=(L(d,e)<<2)+c|0;p=M(F[d+4>>2]);y=M(F[d>>2]);n=M(F[g>>2]);if(!(y!=n|m!=p)){g=+m>2147483647;d=F[a+68>>2];if(M(N(m))>2]=m2147483647;if(M(N(n))>2]=n>2]+(l<<2)>>2];F[h+40>>2]=0;F[h+32>>2]=0;F[h+36>>2]=0;g=F[a+60>>2];if(!G[g+84|0]){d=F[F[g+68>>2]+(d<<2)>>2]}Ya(g,d,D[g+24|0],h+32|0);e=F[F[a+64>>2]+(e<<2)>>2];F[h+24>>2]=0;F[h+16>>2]=0;F[h+20>>2]=0;d=F[a+60>>2];if(!G[d+84|0]){e=F[F[d+68>>2]+(e<<2)>>2]}Ya(d,e,D[d+24|0],h+16|0);e=F[F[a+64>>2]+(i<<2)>>2];F[h+8>>2]=0;F[h>>2]=0;F[h+4>>2]=0;d=F[a+60>>2];if(!G[d+84|0]){e=F[F[d+68>>2]+(e<<2)>>2]}Ya(d,e,D[d+24|0],h);o=J[h+24>>2];r=M(J[h+8>>2]-o);s=J[h+20>>2];u=M(J[h+4>>2]-s);A=J[h+16>>2];v=M(J[h>>2]-A);z=M(M(r*r)+M(M(u*u)+M(M(v*v)+M(0))));h:{if(F[a+88>>2]>=258){j=M(0);if(!(z>M(0))){break h}}j=M(J[h+40>>2]-o);o=M(J[h+36>>2]-s);s=M(J[h+32>>2]-A);q=M(M(M(r*j)+M(M(u*o)+M(M(v*s)+M(0))))/z);j=M(j-M(r*q));r=M(j*j);j=M(o-M(u*q));o=M(j*j);j=M(s-M(v*q));j=M(U(M(M(r+M(o+M(M(j*j)+M(0))))/z)))}e=F[a+80>>2];if(e){d=e-1|0;g=F[F[a+76>>2]+(d>>>3&536870908)>>2];F[a+80>>2]=d;m=M(m-p);o=M(M(m*q)+p);n=M(n-y);p=M(n*j);d=g>>>d&1;p=M(o+(d?p:M(-p)));j=M(j*m);k=R(+M(M(M(n*q)+y)+(d?M(-j):j))+.5);i:{if(k>2147483647?1:k<-2147483648|k!=k){d=F[a+68>>2];F[d>>2]=-2147483648;break i}d=F[a+68>>2];if(N(k)<2147483648){g=~~k}else{g=-2147483648}F[d>>2]=g}k=R(+p+.5);i=k>2147483647;if(N(k)<2147483648){g=~~k}else{g=-2147483648}F[d+4>>2]=k<-2147483648?-2147483648:k!=k?-2147483648:i?-2147483648:g}e=(e|0)!=0;break g}j:{if((e|0)<(l|0)){d=F[a+72>>2];g=L(e,d);break j}if((l|0)<=0){e=1;if(F[a+72>>2]<=0){break g}g=F[a+68>>2];d=0;while(1){F[g+(d<<2)>>2]=0;d=d+1|0;if((d|0)>2]){continue}break}break g}d=F[a+72>>2];g=L(d,l-1|0)}e=1;if((d|0)<=0){break g}i=F[a+68>>2];d=0;while(1){F[i+(d<<2)>>2]=F[(d+g<<2)+c>>2];d=d+1|0;if((d|0)>2]){continue}break}}ea=h+48|0;break e}Ea();V()}if(!e){break c}k:{if(F[a+8>>2]<=0){break k}h=F[a+68>>2];g=F[w>>2];d=0;while(1){e=d<<2;f=F[e+h>>2];i=F[a+16>>2];l:{if((f|0)>(i|0)){F[e+g>>2]=i;break l}e=e+g|0;i=F[a+12>>2];if((i|0)>(f|0)){F[e>>2]=i;break l}F[e>>2]=f}d=d+1|0;f=F[a+8>>2];if((d|0)<(f|0)){continue}break}e=0;if((f|0)<=0){break k}d=l<<3;h=d+c|0;i=b+d|0;while(1){f=e<<2;d=f+h|0;f=F[f+i>>2]+F[f+g>>2]|0;F[d>>2]=f;m:{if((f|0)>F[a+16>>2]){f=f-F[a+20>>2]|0}else{if((f|0)>=F[a+12>>2]){break m}f=f+F[a+20>>2]|0}F[d>>2]=f}e=e+1|0;if((e|0)>2]){continue}break}}l=l+1|0;f=(x|0)>(l|0);if((l|0)!=(B|0)){continue}break}}a=f^1}else{a=0}return a&1}Ea();V()}function ij(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=M(0),k=0,l=0,m=M(0),n=M(0),o=M(0),p=M(0),q=M(0),r=M(0),s=M(0),t=M(0),u=M(0),v=0,w=0,x=M(0),y=M(0),z=M(0),A=0;a:{if((e|0)==2){F[a+64>>2]=f;F[a+72>>2]=2;e=sa(8);d=F[a+68>>2];F[a+68>>2]=e;if(d){ra(d)}F[a+8>>2]=2;v=a+32|0;e=F[v>>2];d=F[a+36>>2]-e|0;b:{if(d>>>0<=7){Aa(v,2-(d>>>2|0)|0);break b}if((d|0)==8){break b}F[a+36>>2]=e+8}d=F[a+56>>2];d=F[d+4>>2]-F[d>>2]|0;c:{if((d|0)<=0){f=0;break c}w=d>>2;A=(w|0)>1?w:1;f=1;while(1){e=F[a+56>>2];d=F[e>>2];if(F[e+4>>2]-d>>2>>>0<=l>>>0){break a}q=M(0);h=ea-48|0;ea=h;g=-1;d:{e:{d=F[d+(l<<2)>>2];if((d|0)==-1){break e}i=F[a+48>>2];e=d+1|0;e=(e>>>0)%3|0?e:d-2|0;if((e|0)!=-1){g=F[F[i>>2]+(e<<2)>>2]}e=-1;d=d+((d>>>0)%3|0?-1:2)|0;if((d|0)!=-1){e=F[F[i>>2]+(d<<2)>>2]}d=F[a+52>>2];i=F[d>>2];d=F[d+4>>2]-i>>2;if(d>>>0<=g>>>0|d>>>0<=e>>>0){break e}d=F[i+(g<<2)>>2];i=F[i+(e<<2)>>2];f:{if(!((i|0)>=(l|0)|(d|0)>=(l|0))){e=F[a+72>>2];g=(L(e,i)<<2)+c|0;m=M(F[g+4>>2]);e=(L(d,e)<<2)+c|0;p=M(F[e+4>>2]);x=M(F[e>>2]);n=M(F[g>>2]);if(!(x!=n|m!=p)){g=+m>2147483647;d=F[a+68>>2];if(M(N(m))>2]=m2147483647;if(M(N(n))>2]=n>2]+(l<<2)>>2];F[h+40>>2]=0;F[h+32>>2]=0;F[h+36>>2]=0;g=F[a+60>>2];if(!G[g+84|0]){e=F[F[g+68>>2]+(e<<2)>>2]}Ya(g,e,D[g+24|0],h+32|0);e=F[F[a+64>>2]+(d<<2)>>2];F[h+24>>2]=0;F[h+16>>2]=0;F[h+20>>2]=0;d=F[a+60>>2];if(!G[d+84|0]){e=F[F[d+68>>2]+(e<<2)>>2]}Ya(d,e,D[d+24|0],h+16|0);d=F[F[a+64>>2]+(i<<2)>>2];F[h+8>>2]=0;F[h>>2]=0;F[h+4>>2]=0;e=F[a+60>>2];if(!G[e+84|0]){d=F[F[e+68>>2]+(d<<2)>>2]}Ya(e,d,D[e+24|0],h);o=J[h+24>>2];r=M(J[h+8>>2]-o);s=J[h+20>>2];t=M(J[h+4>>2]-s);z=J[h+16>>2];u=M(J[h>>2]-z);y=M(M(r*r)+M(M(t*t)+M(M(u*u)+M(0))));g:{if(F[a+88>>2]>=258){j=M(0);if(!(y>M(0))){break g}}j=M(J[h+40>>2]-o);o=M(J[h+36>>2]-s);s=M(J[h+32>>2]-z);q=M(M(M(r*j)+M(M(t*o)+M(M(u*s)+M(0))))/y);j=M(j-M(r*q));r=M(j*j);j=M(o-M(t*q));o=M(j*j);j=M(s-M(u*q));j=M(U(M(M(r+M(o+M(M(j*j)+M(0))))/y)))}e=F[a+80>>2];if(e){d=e-1|0;g=F[F[a+76>>2]+(d>>>3&536870908)>>2];F[a+80>>2]=d;m=M(m-p);o=M(M(m*q)+p);n=M(n-x);p=M(n*j);d=g>>>d&1;p=M(o+(d?p:M(-p)));j=M(j*m);k=R(+M(M(M(n*q)+x)+(d?M(-j):j))+.5);h:{if(k>2147483647?1:k<-2147483648|k!=k){d=F[a+68>>2];F[d>>2]=-2147483648;break h}d=F[a+68>>2];if(N(k)<2147483648){g=~~k}else{g=-2147483648}F[d>>2]=g}k=R(+p+.5);i=k>2147483647;if(N(k)<2147483648){g=~~k}else{g=-2147483648}F[d+4>>2]=k<-2147483648?-2147483648:k!=k?-2147483648:i?-2147483648:g}d=(e|0)!=0;break f}i:{if((d|0)<(l|0)){e=F[a+72>>2];g=L(d,e);break i}if((l|0)<=0){d=1;if(F[a+72>>2]<=0){break f}g=F[a+68>>2];e=0;while(1){F[g+(e<<2)>>2]=0;e=e+1|0;if((e|0)>2]){continue}break}break f}e=F[a+72>>2];g=L(e,l-1|0)}d=1;if((e|0)<=0){break f}i=F[a+68>>2];e=0;while(1){F[i+(e<<2)>>2]=F[(e+g<<2)+c>>2];e=e+1|0;if((e|0)>2]){continue}break}}ea=h+48|0;break d}Ea();V()}if(!d){break c}j:{if(F[a+8>>2]<=0){break j}h=F[a+68>>2];g=F[v>>2];d=0;while(1){e=d<<2;f=F[e+h>>2];i=F[a+16>>2];k:{if((f|0)>(i|0)){F[e+g>>2]=i;break k}e=e+g|0;i=F[a+12>>2];if((i|0)>(f|0)){F[e>>2]=i;break k}F[e>>2]=f}d=d+1|0;f=F[a+8>>2];if((d|0)<(f|0)){continue}break}e=0;if((f|0)<=0){break j}d=l<<3;h=d+c|0;i=b+d|0;while(1){f=e<<2;d=f+h|0;f=F[f+i>>2]+F[f+g>>2]|0;F[d>>2]=f;l:{if((f|0)>F[a+16>>2]){f=f-F[a+20>>2]|0}else{if((f|0)>=F[a+12>>2]){break l}f=f+F[a+20>>2]|0}F[d>>2]=f}e=e+1|0;if((e|0)>2]){continue}break}}l=l+1|0;f=(w|0)>(l|0);if((l|0)!=(A|0)){continue}break}}a=f^1}else{a=0}return a&1}Ea();V()}function Hi(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=M(0),f=0,g=0,h=0,i=0,j=0,k=0,l=M(0),m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0;if(F[c>>2]==F[c+4>>2]){h=F[d+80>>2];u=ea-16|0;ea=u;q=F[a+4>>2];j=F[d+48>>2];d=F[F[d>>2]>>2];i=D[b+24|0];c=u+8|0;F[c>>2]=1065353216;J[c>>2]=M(-1<>2];s=sa((i|0)!=(i&1073741823)?-1:i<<2);a:{if(!h|(i|0)<=0){break a}t=d+j|0;l=J[c>>2];k=F[a+8>>2];w=F[b>>2];c=F[b+48>>2];m=F[b+44>>2];v=F[b+40>>2];if(!G[b+84|0]){r=F[b+68>>2];q=i&-2;j=i&1;a=0;while(1){d=F[w>>2];b=Mj(v,m,F[r+(o<<2)>>2],0)+c|0;p=ta(s,d+b|0,v);b=0;n=0;if((i|0)!=1){while(1){d=t+(a<<2)|0;g=b<<2;e=M(R(M(M(l*M(J[g+p>>2]-J[k+g>>2]))+M(.5))));b:{if(M(N(e))>2]=f;f=g|4;e=M(R(M(M(l*M(J[f+p>>2]-J[f+k>>2]))+M(.5))));c:{if(M(N(e))>2]=f;b=b+2|0;a=a+2|0;n=n+2|0;if((q|0)!=(n|0)){continue}break}}if(j){d=t+(a<<2)|0;b=b<<2;e=M(R(M(M(l*M(J[b+p>>2]-J[b+k>>2]))+M(.5))));d:{if(M(N(e))>2]=b;a=a+1|0}o=o+1|0;if((h|0)!=(o|0)){continue}break}break a}r=i&-2;q=i&1;a=0;while(1){d=F[w>>2];b=Mj(v,m,p,f)+c|0;o=ta(s,d+b|0,v);b=0;n=0;if((i|0)!=1){while(1){d=t+(a<<2)|0;g=b<<2;e=M(R(M(M(l*M(J[g+o>>2]-J[k+g>>2]))+M(.5))));e:{if(M(N(e))>2]=j;j=g|4;e=M(R(M(M(l*M(J[j+o>>2]-J[k+j>>2]))+M(.5))));f:{if(M(N(e))>2]=g;b=b+2|0;a=a+2|0;n=n+2|0;if((r|0)!=(n|0)){continue}break}}if(q){d=t+(a<<2)|0;b=b<<2;e=M(R(M(M(l*M(J[b+o>>2]-J[b+k>>2]))+M(.5))));g:{if(M(N(e))>2]=b;a=a+1|0}b=p+1|0;f=b?f:f+1|0;p=b;if((h|0)!=(b|0)|f){continue}break}}ra(s);ea=u+16|0;return 1}u=ea-16|0;ea=u;f=F[a+4>>2];j=F[d+48>>2];h=F[F[d>>2]>>2];m=D[b+24|0];d=u+8|0;F[d>>2]=1065353216;J[d>>2]=M(-1<>2];t=sa((m|0)!=(m&1073741823)?-1:m<<2);f=F[c+4>>2];s=F[c>>2];h:{if((f|0)==(s|0)|(m|0)<=0){break h}n=j+h|0;c=f-s>>2;w=c>>>0>1?c:1;l=J[d>>2];i=F[a+8>>2];x=F[b>>2];d=F[b+48>>2];v=F[b+44>>2];p=F[b+40>>2];if(G[b+84|0]){q=m&-2;j=m&1;a=0;c=0;while(1){f=F[x>>2];b=Mj(p,v,F[s+(c<<2)>>2],0)+d|0;g=ta(t,f+b|0,p);b=0;k=0;if((m|0)!=1){while(1){f=n+(a<<2)|0;r=b<<2;e=M(R(M(M(l*M(J[r+g>>2]-J[i+r>>2]))+M(.5))));i:{if(M(N(e))>2]=h;h=r|4;e=M(R(M(M(l*M(J[h+g>>2]-J[i+h>>2]))+M(.5))));j:{if(M(N(e))>2]=h;b=b+2|0;a=a+2|0;k=k+2|0;if((q|0)!=(k|0)){continue}break}}if(j){f=n+(a<<2)|0;b=b<<2;e=M(R(M(M(l*M(J[b+g>>2]-J[b+i>>2]))+M(.5))));k:{if(M(N(e))>2]=b;a=a+1|0}c=c+1|0;if((w|0)!=(c|0)){continue}break}break h}r=F[b+68>>2];q=m&-2;j=m&1;a=0;c=0;while(1){f=F[x>>2];b=Mj(p,v,F[r+(F[s+(c<<2)>>2]<<2)>>2],0)+d|0;o=ta(t,f+b|0,p);b=0;k=0;if((m|0)!=1){while(1){f=n+(a<<2)|0;g=b<<2;e=M(R(M(M(l*M(J[g+o>>2]-J[i+g>>2]))+M(.5))));l:{if(M(N(e))>2]=h;h=g|4;e=M(R(M(M(l*M(J[h+o>>2]-J[i+h>>2]))+M(.5))));m:{if(M(N(e))>2]=g;b=b+2|0;a=a+2|0;k=k+2|0;if((q|0)!=(k|0)){continue}break}}if(j){f=n+(a<<2)|0;b=b<<2;e=M(R(M(M(l*M(J[b+o>>2]-J[b+i>>2]))+M(.5))));n:{if(M(N(e))>2]=b;a=a+1|0}c=c+1|0;if((w|0)!=(c|0)){continue}break}}ra(t);ea=u+16|0;return 1}function Xi(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0,g=0,h=0,i=0;e=ea-32|0;ea=e;a:{b:{switch(c-2|0){case 0:c=F[a+4>>2];f=F[a+12>>2];F[e+24>>2]=-1;F[e+16>>2]=-1;F[e+20>>2]=1065353216;F[e+8>>2]=-1;F[e+12>>2]=-1;if((b|0)==-2){break a}i=F[F[F[c+4>>2]+8>>2]+(f<<2)>>2];if((ga[F[F[c>>2]+8>>2]](c)|0)==1){h=F[F[F[c+4>>2]+8>>2]+(f<<2)>>2];c:{if((ga[F[F[c>>2]+8>>2]](c)|0)!=1|b-1>>>0>5){break c}g=ga[F[F[c>>2]+36>>2]](c)|0;a=ga[F[F[c>>2]+44>>2]](c,f)|0;if(!g|!a){break c}f=ga[F[F[c>>2]+40>>2]](c,f)|0;d:{if(f){if((b|0)!=6){break c}b=F[c+44>>2];d=sa(112);F[d+4>>2]=h;c=F[e+12>>2];F[d+8>>2]=F[e+8>>2];F[d+12>>2]=c;c=F[e+20>>2];F[d+16>>2]=F[e+16>>2];F[d+20>>2]=c;F[d+24>>2]=F[e+24>>2];F[d+40>>2]=a;c=a+12|0;F[d+36>>2]=c;F[d+32>>2]=f;F[d+28>>2]=b;F[d+68>>2]=a;F[d- -64>>2]=c;F[d+60>>2]=f;F[d+56>>2]=b;F[d+48>>2]=0;F[d+52>>2]=0;F[d>>2]=7144;F[d+88>>2]=1065353216;F[d+92>>2]=-1;F[d+80>>2]=-1;F[d+84>>2]=-1;F[d+72>>2]=1;F[d+76>>2]=-1;F[d+44>>2]=7668;a=d+96|0;break d}if((b|0)!=6){break c}b=F[c+44>>2];d=sa(112);F[d+4>>2]=h;c=F[e+12>>2];F[d+8>>2]=F[e+8>>2];F[d+12>>2]=c;c=F[e+20>>2];F[d+16>>2]=F[e+16>>2];F[d+20>>2]=c;F[d+24>>2]=F[e+24>>2];F[d+40>>2]=a;c=a+12|0;F[d+36>>2]=c;F[d+32>>2]=g;F[d+28>>2]=b;F[d+68>>2]=a;F[d- -64>>2]=c;F[d+60>>2]=g;F[d+56>>2]=b;F[d+48>>2]=0;F[d+52>>2]=0;F[d>>2]=8080;F[d+88>>2]=1065353216;F[d+92>>2]=-1;F[d+80>>2]=-1;F[d+84>>2]=-1;F[d+72>>2]=1;F[d+76>>2]=-1;F[d+44>>2]=8472;a=d+96|0}F[a>>2]=0;F[a+4>>2]=0;D[a+5|0]=0;D[a+6|0]=0;D[a+7|0]=0;D[a+8|0]=0;D[a+9|0]=0;D[a+10|0]=0;D[a+11|0]=0;D[a+12|0]=0}if(d){break a}}d=sa(28);F[d+4>>2]=i;a=F[e+12>>2];F[d+8>>2]=F[e+8>>2];F[d+12>>2]=a;a=F[e+20>>2];F[d+16>>2]=F[e+16>>2];F[d+20>>2]=a;F[d+24>>2]=F[e+24>>2];F[d>>2]=8860;break a;case 1:break b;default:break a}}c=F[a+4>>2];f=F[a+12>>2];F[e+24>>2]=-1;F[e+16>>2]=-1;F[e+20>>2]=1065353216;F[e+8>>2]=-1;F[e+12>>2]=-1;if((b|0)==-2){break a}i=F[F[F[c+4>>2]+8>>2]+(f<<2)>>2];if((ga[F[F[c>>2]+8>>2]](c)|0)==1){h=F[F[F[c+4>>2]+8>>2]+(f<<2)>>2];e:{if((ga[F[F[c>>2]+8>>2]](c)|0)!=1|b-1>>>0>5){break e}g=ga[F[F[c>>2]+36>>2]](c)|0;a=ga[F[F[c>>2]+44>>2]](c,f)|0;if(!g|!a){break e}f=ga[F[F[c>>2]+40>>2]](c,f)|0;f:{if(f){if((b|0)!=6){break e}b=F[c+44>>2];d=sa(112);F[d+4>>2]=h;c=F[e+12>>2];F[d+8>>2]=F[e+8>>2];F[d+12>>2]=c;c=F[e+20>>2];F[d+16>>2]=F[e+16>>2];F[d+20>>2]=c;F[d+24>>2]=F[e+24>>2];F[d+40>>2]=a;c=a+12|0;F[d+36>>2]=c;F[d+32>>2]=f;F[d+28>>2]=b;F[d+68>>2]=a;F[d- -64>>2]=c;F[d+60>>2]=f;F[d+56>>2]=b;F[d+48>>2]=0;F[d+52>>2]=0;F[d>>2]=9028;F[d+88>>2]=1065353216;F[d+92>>2]=-1;F[d+80>>2]=-1;F[d+84>>2]=-1;F[d+72>>2]=1;F[d+76>>2]=-1;F[d+44>>2]=9592;a=d+96|0;break f}if((b|0)!=6){break e}b=F[c+44>>2];d=sa(112);F[d+4>>2]=h;c=F[e+12>>2];F[d+8>>2]=F[e+8>>2];F[d+12>>2]=c;c=F[e+20>>2];F[d+16>>2]=F[e+16>>2];F[d+20>>2]=c;F[d+24>>2]=F[e+24>>2];F[d+40>>2]=a;c=a+12|0;F[d+36>>2]=c;F[d+32>>2]=g;F[d+28>>2]=b;F[d+68>>2]=a;F[d- -64>>2]=c;F[d+60>>2]=g;F[d+56>>2]=b;F[d+48>>2]=0;F[d+52>>2]=0;F[d>>2]=10032;F[d+88>>2]=1065353216;F[d+92>>2]=-1;F[d+80>>2]=-1;F[d+84>>2]=-1;F[d+72>>2]=1;F[d+76>>2]=-1;F[d+44>>2]=10452;a=d+96|0}F[a>>2]=0;F[a+4>>2]=0;D[a+5|0]=0;D[a+6|0]=0;D[a+7|0]=0;D[a+8|0]=0;D[a+9|0]=0;D[a+10|0]=0;D[a+11|0]=0;D[a+12|0]=0}if(d){break a}}d=sa(28);F[d+4>>2]=i;a=F[e+12>>2];F[d+8>>2]=F[e+8>>2];F[d+12>>2]=a;a=F[e+20>>2];F[d+16>>2]=F[e+16>>2];F[d+20>>2]=a;F[d+24>>2]=F[e+24>>2];F[d>>2]=10864}ea=e+32|0;return d|0}function bd(a,b){var c=0,d=0,e=0,f=0,g=0,h=0;d=F[a+4>>2];c=F[a>>2];e=(d-c|0)/144|0;if(e>>>0>>0){c=a;e=b-e|0;f=F[a+8>>2];d=F[a+4>>2];a:{if(e>>>0<=(f-d|0)/144>>>0){b:{if(!e){break b}a=d;f=e&7;if(f){b=0;while(1){La(a);a=a+144|0;b=b+1|0;if((f|0)!=(b|0)){continue}break}}d=L(e,144)+d|0;if((e-1&268435455)>>>0<7){break b}while(1){La(a);La(a+144|0);La(a+288|0);La(a+432|0);La(a+576|0);La(a+720|0);La(a+864|0);La(a+1008|0);a=a+1152|0;if((d|0)!=(a|0)){continue}break}}F[c+4>>2]=d;break a}c:{d:{e:{b=F[c>>2];g=(d-b|0)/144|0;a=g+e|0;if(a>>>0<29826162){d=0;b=(f-b|0)/144|0;f=b<<1;f=b>>>0<14913080?a>>>0>>0?f:a:29826161;if(f){if(f>>>0>=29826162){break e}h=sa(L(f,144))}b=L(g,144)+h|0;a=b;g=e&7;if(g){a=b;while(1){La(a);a=a+144|0;d=d+1|0;if((g|0)!=(d|0)){continue}break}}g=L(e,144)+b|0;if((e-1&268435455)>>>0>=7){while(1){La(a);La(a+144|0);La(a+288|0);La(a+432|0);La(a+576|0);La(a+720|0);La(a+864|0);La(a+1008|0);a=a+1152|0;if((g|0)!=(a|0)){continue}break}}e=L(f,144)+h|0;a=F[c+4>>2];d=F[c>>2];if((a|0)==(d|0)){break d}while(1){b=b-144|0;a=a-144|0;F[b>>2]=F[a>>2];F[b+4>>2]=F[a+4>>2];F[b+8>>2]=F[a+8>>2];F[b+12>>2]=F[a+12>>2];F[a+12>>2]=0;F[a+4>>2]=0;F[a+8>>2]=0;F[b+16>>2]=F[a+16>>2];F[b+20>>2]=F[a+20>>2];F[b+24>>2]=F[a+24>>2];F[a+24>>2]=0;F[a+16>>2]=0;F[a+20>>2]=0;f=G[a+28|0];F[b+40>>2]=0;F[b+32>>2]=0;F[b+36>>2]=0;D[b+28|0]=f;F[b+32>>2]=F[a+32>>2];F[b+36>>2]=F[a+36>>2];F[b+40>>2]=F[a+40>>2];F[a+40>>2]=0;F[a+32>>2]=0;F[a+36>>2]=0;F[b+52>>2]=0;F[b+44>>2]=0;F[b+48>>2]=0;F[b+44>>2]=F[a+44>>2];F[b+48>>2]=F[a+48>>2];F[b+52>>2]=F[a+52>>2];F[a+52>>2]=0;F[a+44>>2]=0;F[a+48>>2]=0;f=b- -64|0;F[f>>2]=0;F[b+56>>2]=0;F[b+60>>2]=0;F[b+56>>2]=F[a+56>>2];F[b+60>>2]=F[a+60>>2];h=f;f=a- -64|0;F[h>>2]=F[f>>2];F[f>>2]=0;F[a+56>>2]=0;F[a+60>>2]=0;F[b+68>>2]=F[a+68>>2];f=F[a+72>>2];F[b+84>>2]=0;F[b+76>>2]=0;F[b+80>>2]=0;F[b+72>>2]=f;F[b+76>>2]=F[a+76>>2];F[b+80>>2]=F[a+80>>2];F[b+84>>2]=F[a+84>>2];F[a+84>>2]=0;F[a+76>>2]=0;F[a+80>>2]=0;F[b+96>>2]=0;F[b+88>>2]=0;F[b+92>>2]=0;F[b+88>>2]=F[a+88>>2];F[b+92>>2]=F[a+92>>2];F[b+96>>2]=F[a+96>>2];F[a+96>>2]=0;F[a+88>>2]=0;F[a+92>>2]=0;f=G[a+100|0];F[b+112>>2]=0;F[b+104>>2]=0;F[b+108>>2]=0;D[b+100|0]=f;F[b+104>>2]=F[a+104>>2];F[b+108>>2]=F[a+108>>2];F[b+112>>2]=F[a+112>>2];F[a+112>>2]=0;F[a+104>>2]=0;F[a+108>>2]=0;F[b+124>>2]=0;F[b+116>>2]=0;F[b+120>>2]=0;F[b+116>>2]=F[a+116>>2];F[b+120>>2]=F[a+120>>2];F[b+124>>2]=F[a+124>>2];F[a+124>>2]=0;F[a+116>>2]=0;F[a+120>>2]=0;f=F[a+128>>2];F[b+140>>2]=0;F[b+132>>2]=0;F[b+136>>2]=0;F[b+128>>2]=f;F[b+132>>2]=F[a+132>>2];F[b+136>>2]=F[a+136>>2];F[b+140>>2]=F[a+140>>2];F[a+140>>2]=0;F[a+132>>2]=0;F[a+136>>2]=0;if((a|0)!=(d|0)){continue}break}F[c+8>>2]=e;a=F[c+4>>2];F[c+4>>2]=g;d=F[c>>2];F[c>>2]=b;if((a|0)==(d|0)){break c}while(1){b=a-144|0;c=F[b+132>>2];if(c){F[a-8>>2]=c;ra(c)}c=F[a-28>>2];if(c){F[a-24>>2]=c;ra(c)}c=F[a-40>>2];if(c){F[a-36>>2]=c;ra(c)}oc(a-140|0);a=b;if((d|0)!=(a|0)){continue}break}break c}va();V()}za();V()}F[c+8>>2]=e;F[c+4>>2]=g;F[c>>2]=b}if(d){ra(d)}}return}if(b>>>0>>0){c=c+L(b,144)|0;if((c|0)!=(d|0)){while(1){b=d-144|0;e=F[b+132>>2];if(e){F[d-8>>2]=e;ra(e)}e=F[d-28>>2];if(e){F[d-24>>2]=e;ra(e)}e=F[d-40>>2];if(e){F[d-36>>2]=e;ra(e)}oc(d-140|0);d=b;if((b|0)!=(c|0)){continue}break}}F[a+4>>2]=c}}function Me(a,b,c,d){var e=0,f=0,g=0,h=0,i=0,j=0,k=0;f=ea-80|0;ea=f;e=F[c+36>>2];F[f+72>>2]=F[c+32>>2];F[f+76>>2]=e;g=F[c+28>>2];e=f- -64|0;F[e>>2]=F[c+24>>2];F[e+4>>2]=g;e=F[c+20>>2];F[f+56>>2]=F[c+16>>2];F[f+60>>2]=e;e=F[c+12>>2];F[f+48>>2]=F[c+8>>2];F[f+52>>2]=e;e=F[c+4>>2];F[f+40>>2]=F[c>>2];F[f+44>>2]=e;nc(a,f+40|0,f+24|0);a:{if(F[a>>2]){break a}j=a+4|0;if(D[a+15|0]<0){ra(F[j>>2])}if(G[f+31|0]){b=sa(32);c=G[1521]|G[1522]<<8|(G[1523]<<16|G[1524]<<24);D[b+23|0]=c;D[b+24|0]=c>>>8;D[b+25|0]=c>>>16;D[b+26|0]=c>>>24;c=G[1518]|G[1519]<<8|(G[1520]<<16|G[1521]<<24);d=G[1514]|G[1515]<<8|(G[1516]<<16|G[1517]<<24);D[b+16|0]=d;D[b+17|0]=d>>>8;D[b+18|0]=d>>>16;D[b+19|0]=d>>>24;D[b+20|0]=c;D[b+21|0]=c>>>8;D[b+22|0]=c>>>16;D[b+23|0]=c>>>24;c=G[1510]|G[1511]<<8|(G[1512]<<16|G[1513]<<24);d=G[1506]|G[1507]<<8|(G[1508]<<16|G[1509]<<24);D[b+8|0]=d;D[b+9|0]=d>>>8;D[b+10|0]=d>>>16;D[b+11|0]=d>>>24;D[b+12|0]=c;D[b+13|0]=c>>>8;D[b+14|0]=c>>>16;D[b+15|0]=c>>>24;c=G[1502]|G[1503]<<8|(G[1504]<<16|G[1505]<<24);d=G[1498]|G[1499]<<8|(G[1500]<<16|G[1501]<<24);D[b|0]=d;D[b+1|0]=d>>>8;D[b+2|0]=d>>>16;D[b+3|0]=d>>>24;D[b+4|0]=c;D[b+5|0]=c>>>8;D[b+6|0]=c>>>16;D[b+7|0]=c>>>24;D[b+27|0]=0;F[a>>2]=-1;Ba(j,b,27);ra(b);break a}i=ea-16|0;ea=i;b:{c:{switch(D[f+32|0]){case 0:e=sa(44);F[e>>2]=0;F[e+4>>2]=0;F[e+40>>2]=0;F[e+32>>2]=0;F[e+36>>2]=0;F[e+24>>2]=0;F[e+28>>2]=0;F[e+16>>2]=0;F[e+20>>2]=0;F[e+8>>2]=0;F[e+12>>2]=0;e=Sc(e);F[e>>2]=13496;F[f+8>>2]=0;F[f+12>>2]=0;F[f>>2]=0;F[f+4>>2]=0;F[f+16>>2]=e;break b;case 1:e=sa(44);F[e>>2]=0;F[e+4>>2]=0;F[e+40>>2]=0;F[e+32>>2]=0;F[e+36>>2]=0;F[e+24>>2]=0;F[e+28>>2]=0;F[e+16>>2]=0;F[e+20>>2]=0;F[e+8>>2]=0;F[e+12>>2]=0;e=Sc(e);F[e>>2]=13404;F[f+8>>2]=0;F[f+12>>2]=0;F[f>>2]=0;F[f+4>>2]=0;F[f+16>>2]=e;break b;default:break c}}g=sa(32);e=G[1550]|G[1551]<<8|(G[1552]<<16|G[1553]<<24);D[g+24|0]=e;D[g+25|0]=e>>>8;D[g+26|0]=e>>>16;D[g+27|0]=e>>>24;e=G[1546]|G[1547]<<8|(G[1548]<<16|G[1549]<<24);h=G[1542]|G[1543]<<8|(G[1544]<<16|G[1545]<<24);D[g+16|0]=h;D[g+17|0]=h>>>8;D[g+18|0]=h>>>16;D[g+19|0]=h>>>24;D[g+20|0]=e;D[g+21|0]=e>>>8;D[g+22|0]=e>>>16;D[g+23|0]=e>>>24;e=G[1538]|G[1539]<<8|(G[1540]<<16|G[1541]<<24);h=G[1534]|G[1535]<<8|(G[1536]<<16|G[1537]<<24);D[g+8|0]=h;D[g+9|0]=h>>>8;D[g+10|0]=h>>>16;D[g+11|0]=h>>>24;D[g+12|0]=e;D[g+13|0]=e>>>8;D[g+14|0]=e>>>16;D[g+15|0]=e>>>24;e=G[1530]|G[1531]<<8|(G[1532]<<16|G[1533]<<24);h=G[1526]|G[1527]<<8|(G[1528]<<16|G[1529]<<24);D[g|0]=h;D[g+1|0]=h>>>8;D[g+2|0]=h>>>16;D[g+3|0]=h>>>24;D[g+4|0]=e;D[g+5|0]=e>>>8;D[g+6|0]=e>>>16;D[g+7|0]=e>>>24;D[g+28|0]=0;F[i>>2]=-1;e=i|4;Ba(e,g,28);k=D[i+15|0];F[f>>2]=F[i>>2];h=f+4|0;d:{if((k|0)>=0){k=F[e+4>>2];F[h>>2]=F[e>>2];F[h+4>>2]=k;F[h+8>>2]=F[e+8>>2];F[f+16>>2]=0;break d}Ba(h,F[i+4>>2],F[i+8>>2]);e=D[i+15|0];F[f+16>>2]=0;if((e|0)>=0){break d}ra(F[i+4>>2])}ra(g)}ea=i+16|0;e=F[f>>2];e:{if(e){F[a>>2]=e;if(D[f+15|0]>=0){a=f|4;b=F[a+4>>2];F[j>>2]=F[a>>2];F[j+4>>2]=b;F[j+8>>2]=F[a+8>>2];break e}Ba(j,F[f+4>>2],F[f+8>>2]);break e}e=F[f+16>>2];F[f+16>>2]=0;se(a,e,b,c,d);if(!F[a>>2]){if(D[j+11|0]<0){ra(F[j>>2])}F[a>>2]=0;F[a+4>>2]=0;F[a+8>>2]=0;F[a+12>>2]=0}ga[F[F[e>>2]+4>>2]](e)}a=F[f+16>>2];F[f+16>>2]=0;if(a){ga[F[F[a>>2]+4>>2]](a)}if(D[f+15|0]>=0){break a}ra(F[f+4>>2])}ea=f+80|0}function ri(a){a=a|0;var b=0,c=0,d=0,e=0,f=0;b=F[a+32>>2];e=F[b+16>>2];d=F[b+12>>2];c=F[b+20>>2];if(I[b+8>>2]>e>>>0&(d|0)>=(c|0)|(c|0)<(d|0)){f=G[e+F[b>>2]|0];d=e+1|0;c=d?c:c+1|0;F[b+16>>2]=d;F[b+20>>2]=c;b=F[a+48>>2];F[a+48>>2]=0;if(b){ga[F[F[b>>2]+4>>2]](b)}a:{b:{c:{d:{switch(f|0){case 0:b=sa(384);F[b>>2]=11384;ua(b+4|0,0,80);F[b+96>>2]=0;F[b+100>>2]=0;F[b+92>>2]=-1;F[b+84>>2]=-1;F[b+88>>2]=-1;F[b+104>>2]=0;F[b+108>>2]=0;F[b+112>>2]=0;F[b+116>>2]=0;F[b+120>>2]=0;F[b+124>>2]=0;F[b+128>>2]=0;F[b+132>>2]=0;F[b+136>>2]=0;F[b+140>>2]=0;F[b+144>>2]=0;F[b+148>>2]=0;F[b+156>>2]=0;F[b+160>>2]=0;F[b+152>>2]=1065353216;F[b+164>>2]=0;F[b+168>>2]=0;F[b+172>>2]=0;F[b+176>>2]=0;F[b+180>>2]=0;F[b+184>>2]=0;F[b+188>>2]=0;F[b+192>>2]=0;F[b+196>>2]=0;F[b+200>>2]=0;F[b+204>>2]=0;F[b+208>>2]=0;F[b+212>>2]=-1;F[b+216>>2]=0;F[b+220>>2]=0;F[b+224>>2]=0;Ka(b+232|0);Ka(b+272|0);c=b+312|0;F[c>>2]=0;F[c+4>>2]=0;D[c+5|0]=0;D[c+6|0]=0;D[c+7|0]=0;D[c+8|0]=0;D[c+9|0]=0;D[c+10|0]=0;D[c+11|0]=0;D[c+12|0]=0;Ka(b+328|0);F[b+376>>2]=0;F[b+368>>2]=0;F[b+372>>2]=0;break c;case 1:b=sa(424);F[b>>2]=11436;ua(b+4|0,0,80);F[b+96>>2]=0;F[b+100>>2]=0;F[b+92>>2]=-1;F[b+84>>2]=-1;F[b+88>>2]=-1;F[b+104>>2]=0;F[b+108>>2]=0;F[b+112>>2]=0;F[b+116>>2]=0;F[b+120>>2]=0;F[b+124>>2]=0;F[b+128>>2]=0;F[b+132>>2]=0;F[b+136>>2]=0;F[b+140>>2]=0;F[b+144>>2]=0;F[b+148>>2]=0;F[b+156>>2]=0;F[b+160>>2]=0;F[b+152>>2]=1065353216;F[b+164>>2]=0;F[b+168>>2]=0;F[b+172>>2]=0;F[b+176>>2]=0;F[b+180>>2]=0;F[b+184>>2]=0;F[b+188>>2]=0;F[b+192>>2]=0;F[b+196>>2]=0;F[b+200>>2]=0;F[b+204>>2]=0;F[b+208>>2]=0;F[b+212>>2]=-1;F[b+216>>2]=0;F[b+220>>2]=0;F[b+224>>2]=0;Ka(b+232|0);Ka(b+272|0);c=b+312|0;F[c>>2]=0;F[c+4>>2]=0;D[c+5|0]=0;D[c+6|0]=0;D[c+7|0]=0;D[c+8|0]=0;D[c+9|0]=0;D[c+10|0]=0;D[c+11|0]=0;D[c+12|0]=0;Ka(b+328|0);F[b+392>>2]=0;F[b+396>>2]=0;F[b+384>>2]=0;F[b+388>>2]=0;F[b+376>>2]=0;F[b+380>>2]=0;F[b+368>>2]=0;F[b+372>>2]=0;c=b+400|0;F[c>>2]=0;F[c+4>>2]=0;D[c+5|0]=0;D[c+6|0]=0;D[c+7|0]=0;D[c+8|0]=0;D[c+9|0]=0;D[c+10|0]=0;D[c+11|0]=0;D[c+12|0]=0;F[b+416>>2]=-1;F[b+420>>2]=-1;break c;case 2:break d;default:break b}}b=sa(440);F[b>>2]=11484;ua(b+4|0,0,80);F[b+96>>2]=0;F[b+100>>2]=0;F[b+92>>2]=-1;F[b+84>>2]=-1;F[b+88>>2]=-1;F[b+104>>2]=0;F[b+108>>2]=0;F[b+112>>2]=0;F[b+116>>2]=0;F[b+120>>2]=0;F[b+124>>2]=0;F[b+128>>2]=0;F[b+132>>2]=0;F[b+136>>2]=0;F[b+140>>2]=0;F[b+144>>2]=0;F[b+148>>2]=0;F[b+156>>2]=0;F[b+160>>2]=0;F[b+152>>2]=1065353216;F[b+164>>2]=0;F[b+168>>2]=0;F[b+172>>2]=0;F[b+176>>2]=0;F[b+180>>2]=0;F[b+184>>2]=0;F[b+188>>2]=0;F[b+192>>2]=0;F[b+196>>2]=0;F[b+200>>2]=0;F[b+204>>2]=0;F[b+208>>2]=0;F[b+212>>2]=-1;F[b+216>>2]=0;F[b+220>>2]=0;F[b+224>>2]=0;Ka(b+232|0);Ka(b+272|0);c=b+312|0;F[c>>2]=0;F[c+4>>2]=0;D[c+5|0]=0;D[c+6|0]=0;D[c+7|0]=0;D[c+8|0]=0;D[c+9|0]=0;D[c+10|0]=0;D[c+11|0]=0;D[c+12|0]=0;Ka(b+328|0);F[b+392>>2]=0;F[b+396>>2]=0;F[b+384>>2]=0;F[b+388>>2]=0;F[b+376>>2]=0;F[b+380>>2]=0;F[b+368>>2]=0;F[b+372>>2]=0;F[b+416>>2]=0;F[b+420>>2]=0;F[b+408>>2]=2;F[b+412>>2]=7;F[b+400>>2]=-1;F[b+404>>2]=-1;F[b+424>>2]=0;F[b+428>>2]=0;F[b+432>>2]=0;F[b+436>>2]=0}c=F[a+48>>2];F[a+48>>2]=b;if(!c){break a}ga[F[F[c>>2]+4>>2]](c)}b=F[a+48>>2];if(b){break a}return 0}a=ga[F[F[b>>2]+8>>2]](b,a)|0}else{a=0}return a|0}function Mf(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0;f=ea-704|0;ea=f;m=1;a:{b:{c:{d:{if(H[b+38>>1]<515){break d}m=0;c=F[b+20>>2];e=F[b+12>>2];d=F[b+16>>2];if((c|0)>=(e|0)&d>>>0>=I[b+8>>2]|(c|0)>(e|0)){break d}o=G[d+F[b>>2]|0];d=d+1|0;c=d?c:c+1|0;F[b+16>>2]=d;F[b+20>>2]=c;n=F[F[(ga[F[F[a>>2]+28>>2]](a)|0)+4>>2]+80>>2];c=ga[F[F[a>>2]+24>>2]](a)|0;F[f+696>>2]=0;F[f+688>>2]=0;F[f+692>>2]=0;if(c){if(c>>>0>=214748365){break c}c=L(c,20);d=sa(c);F[f+688>>2]=d;F[f+696>>2]=c+d;c=c-20|0;c=(c-((c>>>0)%20|0)|0)+20|0;q=f,r=ua(d,0,c)+c|0,F[q+692>>2]=r}e:{if((ga[F[F[a>>2]+24>>2]](a)|0)>0){while(1){c=ga[F[F[a>>2]+20>>2]](a,l)|0;e=F[F[F[(ga[F[F[a>>2]+28>>2]](a)|0)+4>>2]+8>>2]+(c<<2)>>2];rb(e,n);D[e+84|0]=1;F[e+72>>2]=F[e+68>>2];c=F[e+28>>2];if(c>>>0>9){break e}f:{g:{h:{d=1<>2],g,6,0,c,c>>31);c=dc(sa(96),d);F[f+656>>2]=c;D[c+84|0]=1;F[c+72>>2]=F[c+68>>2];rb(c,n);c=F[a+64>>2];if(c>>>0>=I[a+68>>2]){break h}d=F[f+656>>2];F[f+656>>2]=0;F[c>>2]=d;d=c+4|0;F[a+64>>2]=d;break g}d=0;if(D[e+24|0]<=0){break f}while(1){c=F[a+52>>2];g=F[a+56>>2];i:{if(c>>>0>>0){F[c>>2]=0;F[a+52>>2]=c+4;break i}h=F[a+48>>2];k=c-h|0;j=k>>2;c=j+1|0;if(c>>>0>=1073741824){break b}p=j<<2;g=g-h|0;j=g>>1;g=g>>>0<2147483644?c>>>0>>0?j:c:1073741823;if(g){if(g>>>0>=1073741824){break a}c=sa(g<<2)}else{c=0}j=p+c|0;F[j>>2]=0;if((k|0)>0){ta(c,h,k)}F[a+56>>2]=c+(g<<2);F[a+52>>2]=j+4;F[a+48>>2]=c;if(!h){break i}ra(h)}d=d+1|0;if((d|0)>2];h=F[a+64>>2]-e>>2;c=h+1|0;if(c>>>0<1073741824){e=F[a+68>>2]-e|0;g=e>>1;e=e>>>0<2147483644?c>>>0>>0?g:c:1073741823;if(e){if(e>>>0>=1073741824){break l}d=sa(e<<2)}g=F[f+656>>2];F[f+656>>2]=0;c=(h<<2)+d|0;F[c>>2]=g;h=(e<<2)+d|0;g=c+4|0;d=F[a+64>>2];e=F[a+60>>2];if((d|0)==(e|0)){break k}while(1){d=d-4|0;k=F[d>>2];F[d>>2]=0;c=c-4|0;F[c>>2]=k;if((d|0)!=(e|0)){continue}break}F[a+68>>2]=h;d=F[a+64>>2];F[a+64>>2]=g;e=F[a+60>>2];F[a+60>>2]=c;if((d|0)==(e|0)){break j}while(1){d=d-4|0;c=F[d>>2];F[d>>2]=0;if(c){Ja(c)}if((d|0)!=(e|0)){continue}break}break j}va();V()}za();V()}F[a+68>>2]=h;F[a+64>>2]=g;F[a+60>>2]=c}if(e){ra(e)}d=F[a+64>>2]}e=F[d-4>>2];c=F[f+656>>2];F[f+656>>2]=0;if(!c){break f}Ja(c)}h=F[e+28>>2];c=h-1|0;if(c>>>0<=10){d=F[(c<<2)+13584>>2]}else{d=-1}c=F[f+688>>2]+L(l,20)|0;g=D[e+24|0];F[c+16>>2]=g;F[c+12>>2]=(d|0)>0?d:0;F[c+8>>2]=h;F[c+4>>2]=i;F[c>>2]=e;i=g+i|0;l=l+1|0;if((ga[F[F[a>>2]+24>>2]](a)|0)>(l|0)){continue}break}}a=zc(f+656|0,f+688|0);m:{n:{o:{switch(o|0){case 0:c=zb(f,i);b=zd(c,b,a);Ab(c);if(b){break n}break m;case 1:c=zb(f,i);b=yd(c,b,a);Ab(c);if(b){break n}break m;case 2:c=xb(f,i);b=xd(c,b,a);yb(c);if(b){break n}break m;case 3:c=xb(f,i);b=wd(c,b,a);yb(c);if(b){break n}break m;case 4:c=cb(f,i);b=vd(c,b,a);db(c);if(b){break n}break m;case 5:c=cb(f,i);b=ud(c,b,a);db(c);if(b){break n}break m;case 6:break o;default:break m}}c=cb(f,i);b=td(c,b,a);db(c);if(!b){break m}}m=1}b=F[a+16>>2];if(b){F[a+20>>2]=b;ra(b)}b=F[a>>2];if(!b){break e}F[a+4>>2]=b;ra(b)}a=F[f+688>>2];if(!a){break d}F[f+692>>2]=a;ra(a)}ea=f+704|0;return m|0}va();V()}va();V()}za();V()}function Mb(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0;f=ea-96|0;ea=f;d=F[a+16>>2];D[f+92|0]=1;F[f+88>>2]=b;F[f+84>>2]=b;F[f+80>>2]=d;a:{if((b|0)==-1){break a}l=F[a+20>>2];e=F[l>>2];d=F[F[d>>2]+(b<<2)>>2];if(d>>>0>=F[l+4>>2]-e>>2>>>0){break a}d=F[F[a+8>>2]+(F[e+(d<<2)>>2]<<2)>>2];e=F[a+4>>2];if(!G[e+84|0]){d=F[F[e+68>>2]+(d<<2)>>2]}F[f+72>>2]=0;F[f+76>>2]=0;l=f- -64|0;F[l>>2]=0;F[l+4>>2]=0;F[f+56>>2]=0;F[f+60>>2]=0;Va(e,d,D[e+24|0],f+56|0);d=b+1|0;l=(d>>>0)%3|0?d:b-2|0;i=((b>>>0)%3|0?-1:2)+b|0;b:{c:{while(1){e=l;d=i;d:{if(!F[a+28>>2]){break d}d=b+1|0;e=(d>>>0)%3|0?d:b-2|0;d=b-1|0;if((b>>>0)%3|0){break d}d=b+2|0}if((e|0)==-1){break b}h=F[a+20>>2];b=F[h>>2];e=F[F[F[a+16>>2]>>2]+(e<<2)>>2];if(e>>>0>=F[h+4>>2]-b>>2>>>0){break b}e=F[F[a+8>>2]+(F[(e<<2)+b>>2]<<2)>>2];b=F[a+4>>2];if(!G[b+84|0]){e=F[F[b+68>>2]+(e<<2)>>2]}F[f+48>>2]=0;F[f+52>>2]=0;F[f+40>>2]=0;F[f+44>>2]=0;F[f+32>>2]=0;F[f+36>>2]=0;Va(b,e,D[b+24|0],f+32|0);if((d|0)==-1){break c}e=F[a+20>>2];b=F[e>>2];d=F[F[F[a+16>>2]>>2]+(d<<2)>>2];if(d>>>0>=F[e+4>>2]-b>>2>>>0){break c}e=F[F[a+8>>2]+(F[b+(d<<2)>>2]<<2)>>2];b=F[a+4>>2];if(!G[b+84|0]){e=F[F[b+68>>2]+(e<<2)>>2]}F[f+24>>2]=0;F[f+28>>2]=0;F[f+16>>2]=0;F[f+20>>2]=0;F[f+8>>2]=0;F[f+12>>2]=0;Va(b,e,D[b+24|0],f+8|0);d=F[f+8>>2];b=F[f+56>>2];e=d-b|0;h=F[f+60>>2];j=F[f+12>>2]-(h+(b>>>0>d>>>0)|0)|0;p=F[f+40>>2];d=F[f+64>>2];s=p-d|0;t=F[f+68>>2];p=F[f+44>>2]-(t+(d>>>0>p>>>0)|0)|0;u=Mj(e,j,s,p);v=o-u|0;o=g-(fa+(o>>>0>>0)|0)|0;k=v;g=F[f+16>>2];u=g-d|0;t=F[f+20>>2]-((d>>>0>g>>>0)+t|0)|0;g=F[f+32>>2];v=g-b|0;h=F[f+36>>2]-((b>>>0>g>>>0)+h|0)|0;d=Mj(u,t,v,h);b=k+d|0;g=fa+o|0;g=b>>>0>>0?g+1|0:g;o=b;x=m;k=e;d=j;b=F[f+48>>2];m=F[f+72>>2];e=b-m|0;j=F[f+76>>2];w=F[f+52>>2]-(j+(b>>>0>>0)|0)|0;k=Mj(k,d,e,w);d=x+k|0;b=fa+n|0;b=d>>>0>>0?b+1|0:b;n=F[f+24>>2];k=n-m|0;j=F[f+28>>2]-((m>>>0>n>>>0)+j|0)|0;n=Mj(k,j,v,h);m=d-n|0;n=b-(fa+(d>>>0>>0)|0)|0;b=Mj(u,t,e,w);d=q-b|0;b=r-(fa+(b>>>0>q>>>0)|0)|0;r=Mj(k,j,s,p);q=r+d|0;b=fa+b|0;b=q>>>0>>0?b+1|0:b;r=b;uc(f+80|0);b=F[f+88>>2];if((b|0)!=-1){continue}break}b=r>>31;d=b^q;j=d-b|0;h=(b^r)-((b>>>0>d>>>0)+b|0)|0;p=-1;d=2147483647;b=n>>31;l=b^m;e=(b^n)-((b>>>0>l>>>0)+b|0)|0;b=l-b|0;s=b^-1;i=e^2147483647;k=g;e:{f:{if(!F[a+28>>2]){if((i|0)==(h|0)&j>>>0>s>>>0|i>>>0>>0){break e}i=g;a=b;d=b+j|0;b=e+h|0;b=a>>>0>d>>>0?b+1|0:b;a=g>>31;h=a^o;j=h-a|0;g=d+j|0;e=(a^i)-((a>>>0>h>>>0)+a|0)|0;a=g;g=e^2147483647;g=(g|0)==(b|0)&(j^-1)>>>0>>0|b>>>0>g>>>0;a=g?-1:a;if(!(g&0)&(a|0)<=536870912|(a|0)<536870912){break e}b=0;a=a>>>29|0;break f}g:{if((i|0)==(h|0)&j>>>0>s>>>0|i>>>0>>0){break g}a=b;i=b+j|0;b=e+h|0;b=a>>>0>i>>>0?b+1|0:b;a=i;h=g;e=g>>31;g=e;i=e^o;e=(e^h)-(e+(e>>>0>i>>>0)|0)|0;g=i-g|0;i=e^2147483647;if((i|0)==(b|0)&(g^-1)>>>0>>0|b>>>0>i>>>0){break g}b=b+e|0;a=a+g|0;b=a>>>0>>0?b+1|0:b;p=a;d=b;if(!b&a>>>0<536870913){break e}}b=d>>>29|0;a=(d&536870911)<<3|p>>>29}o=Nj(o,k,a,b);m=Nj(m,n,a,b);q=Nj(q,r,a,b)}F[c+8>>2]=o;F[c+4>>2]=m;F[c>>2]=q;ea=f+96|0;return}Ea();V()}Ea();V()}Ea();V()}function Vd(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0;a:{if((b|0)<0){break a}c=F[a+12>>2];d=F[a+8>>2];if(c-d>>2>>>0<=b>>>0){break a}e=d+(b<<2)|0;d=F[e>>2];i=F[d+60>>2];g=F[d+56>>2];d=e+4|0;b:{if((d|0)!=(c|0)){while(1){h=F[d>>2];F[d>>2]=0;f=F[e>>2];F[e>>2]=h;if(f){Ja(f)}e=e+4|0;d=d+4|0;if((d|0)!=(c|0)){continue}break}c=F[a+12>>2];if((e|0)==(c|0)){break b}}while(1){c=c-4|0;d=F[c>>2];F[c>>2]=0;if(d){Ja(d)}if((c|0)!=(e|0)){continue}break}}F[a+12>>2]=e;f=F[a+4>>2];c:{if(!f|(i|0)<0){break c}c=F[f+24>>2];d=F[f+28>>2];if((c|0)==(d|0)){break c}while(1){if((i|0)==F[F[c>>2]+24>>2]){e=c+4|0;i=F[f+28>>2];d:{if((e|0)!=(i|0)){while(1){h=F[e>>2];F[e>>2]=0;d=F[c>>2];F[c>>2]=h;if(d){Ta(d+12|0,F[d+16>>2]);Sa(d,F[d+4>>2]);ra(d)}c=c+4|0;e=e+4|0;if((i|0)!=(e|0)){continue}break}e=F[f+28>>2];if((e|0)==(c|0)){break d}}while(1){e=e-4|0;d=F[e>>2];F[e>>2]=0;if(d){Ta(d+12|0,F[d+16>>2]);Sa(d,F[d+4>>2]);ra(d)}if((c|0)!=(e|0)){continue}break}}F[f+28>>2]=c;break c}c=c+4|0;if((d|0)!=(c|0)){continue}break}}e:{if((g|0)>4){break e}f:{e=L(g,12)+a|0;c=F[e+20>>2];d=F[e+24>>2];if((c|0)==(d|0)){break f}while(1){if(F[c>>2]==(b|0)){break f}c=c+4|0;if((d|0)!=(c|0)){continue}break}break e}if((c|0)==(d|0)){break e}f=c+4|0;i=d-f|0;if((d|0)!=(f|0)){Ra(c,f,i)}F[e+24>>2]=c+i}c=F[a+24>>2];e=F[a+20>>2];g:{if((c|0)==(e|0)){break g}d=c-e|0;c=d>>2;f=c>>>0>1?c:1;i=f&1;c=0;if(d>>>0>=8){f=f&-2;d=0;while(1){g=c<<2;h=g+e|0;j=F[h>>2];if((j|0)>(b|0)){F[h>>2]=j-1}g=e+(g|4)|0;h=F[g>>2];if((h|0)>(b|0)){F[g>>2]=h-1}c=c+2|0;d=d+2|0;if((f|0)!=(d|0)){continue}break}}if(!i){break g}c=e+(c<<2)|0;d=F[c>>2];if((d|0)<=(b|0)){break g}F[c>>2]=d-1}c=F[a+36>>2];e=F[a+32>>2];h:{if((c|0)==(e|0)){break h}d=c-e|0;c=d>>2;f=c>>>0>1?c:1;i=f&1;c=0;if(d>>>0>=8){f=f&-2;d=0;while(1){g=c<<2;h=g+e|0;j=F[h>>2];if((j|0)>(b|0)){F[h>>2]=j-1}g=e+(g|4)|0;h=F[g>>2];if((h|0)>(b|0)){F[g>>2]=h-1}c=c+2|0;d=d+2|0;if((f|0)!=(d|0)){continue}break}}if(!i){break h}c=e+(c<<2)|0;d=F[c>>2];if((d|0)<=(b|0)){break h}F[c>>2]=d-1}c=F[a+48>>2];e=F[a+44>>2];i:{if((c|0)==(e|0)){break i}d=c-e|0;c=d>>2;f=c>>>0>1?c:1;i=f&1;c=0;if(d>>>0>=8){f=f&-2;d=0;while(1){g=c<<2;h=g+e|0;j=F[h>>2];if((j|0)>(b|0)){F[h>>2]=j-1}g=e+(g|4)|0;h=F[g>>2];if((h|0)>(b|0)){F[g>>2]=h-1}c=c+2|0;d=d+2|0;if((f|0)!=(d|0)){continue}break}}if(!i){break i}c=e+(c<<2)|0;d=F[c>>2];if((d|0)<=(b|0)){break i}F[c>>2]=d-1}c=F[a+60>>2];e=F[a+56>>2];j:{if((c|0)==(e|0)){break j}d=c-e|0;c=d>>2;f=c>>>0>1?c:1;i=f&1;c=0;if(d>>>0>=8){f=f&-2;d=0;while(1){g=c<<2;h=g+e|0;j=F[h>>2];if((j|0)>(b|0)){F[h>>2]=j-1}g=e+(g|4)|0;h=F[g>>2];if((h|0)>(b|0)){F[g>>2]=h-1}c=c+2|0;d=d+2|0;if((f|0)!=(d|0)){continue}break}}if(!i){break j}c=e+(c<<2)|0;d=F[c>>2];if((d|0)<=(b|0)){break j}F[c>>2]=d-1}c=F[a+72>>2];a=F[a+68>>2];if((c|0)==(a|0)){break a}d=c-a|0;c=d>>2;e=c>>>0>1?c:1;f=e&1;c=0;if(d>>>0>=8){e=e&-2;d=0;while(1){i=c<<2;g=i+a|0;h=F[g>>2];if((h|0)>(b|0)){F[g>>2]=h-1}i=a+(i|4)|0;g=F[i>>2];if((g|0)>(b|0)){F[i>>2]=g-1}c=c+2|0;d=d+2|0;if((e|0)!=(d|0)){continue}break}}if(!f){break a}d=b;a=a+(c<<2)|0;b=F[a>>2];if((d|0)>=(b|0)){break a}F[a>>2]=b-1}}function ra(a){a=a|0;var b=0,c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0;a:{if(!a){break a}d=a-8|0;b=F[a-4>>2];a=b&-8;f=d+a|0;b:{if(b&1){break b}if(!(b&3)){break a}b=F[d>>2];d=d-b|0;if(d>>>0>>0<=255){e=F[d+8>>2];b=b>>>3|0;c=F[d+12>>2];if((c|0)==(e|0)){i=17152,j=F[4288]&Qj(b),F[i>>2]=j;break b}F[e+12>>2]=c;F[c+8>>2]=e;break b}h=F[d+24>>2];b=F[d+12>>2];c:{if((d|0)!=(b|0)){c=F[d+8>>2];F[c+12>>2]=b;F[b+8>>2]=c;break c}d:{e=d+20|0;c=F[e>>2];if(c){break d}e=d+16|0;c=F[e>>2];if(c){break d}b=0;break c}while(1){g=e;b=c;e=b+20|0;c=F[e>>2];if(c){continue}e=b+16|0;c=F[b+16>>2];if(c){continue}break}F[g>>2]=0}if(!h){break b}e=F[d+28>>2];c=(e<<2)+17456|0;e:{if(F[c>>2]==(d|0)){F[c>>2]=b;if(b){break e}i=17156,j=F[4289]&Qj(e),F[i>>2]=j;break b}F[h+(F[h+16>>2]==(d|0)?16:20)>>2]=b;if(!b){break b}}F[b+24>>2]=h;c=F[d+16>>2];if(c){F[b+16>>2]=c;F[c+24>>2]=b}c=F[d+20>>2];if(!c){break b}F[b+20>>2]=c;F[c+24>>2]=b;break b}b=F[f+4>>2];if((b&3)!=3){break b}F[4290]=a;F[f+4>>2]=b&-2;F[d+4>>2]=a|1;F[a+d>>2]=a;return}if(d>>>0>=f>>>0){break a}b=F[f+4>>2];if(!(b&1)){break a}f:{if(!(b&2)){if(F[4294]==(f|0)){F[4294]=d;a=F[4291]+a|0;F[4291]=a;F[d+4>>2]=a|1;if(F[4293]!=(d|0)){break a}F[4290]=0;F[4293]=0;return}if(F[4293]==(f|0)){F[4293]=d;a=F[4290]+a|0;F[4290]=a;F[d+4>>2]=a|1;F[a+d>>2]=a;return}a=(b&-8)+a|0;g:{if(b>>>0<=255){e=F[f+8>>2];b=b>>>3|0;c=F[f+12>>2];if((c|0)==(e|0)){i=17152,j=F[4288]&Qj(b),F[i>>2]=j;break g}F[e+12>>2]=c;F[c+8>>2]=e;break g}h=F[f+24>>2];b=F[f+12>>2];h:{if((f|0)!=(b|0)){c=F[f+8>>2];F[c+12>>2]=b;F[b+8>>2]=c;break h}i:{e=f+20|0;c=F[e>>2];if(c){break i}e=f+16|0;c=F[e>>2];if(c){break i}b=0;break h}while(1){g=e;b=c;e=b+20|0;c=F[e>>2];if(c){continue}e=b+16|0;c=F[b+16>>2];if(c){continue}break}F[g>>2]=0}if(!h){break g}e=F[f+28>>2];c=(e<<2)+17456|0;j:{if(F[c>>2]==(f|0)){F[c>>2]=b;if(b){break j}i=17156,j=F[4289]&Qj(e),F[i>>2]=j;break g}F[h+(F[h+16>>2]==(f|0)?16:20)>>2]=b;if(!b){break g}}F[b+24>>2]=h;c=F[f+16>>2];if(c){F[b+16>>2]=c;F[c+24>>2]=b}c=F[f+20>>2];if(!c){break g}F[b+20>>2]=c;F[c+24>>2]=b}F[d+4>>2]=a|1;F[a+d>>2]=a;if(F[4293]!=(d|0)){break f}F[4290]=a;return}F[f+4>>2]=b&-2;F[d+4>>2]=a|1;F[a+d>>2]=a}if(a>>>0<=255){b=(a&-8)+17192|0;c=F[4288];a=1<<(a>>>3);k:{if(!(c&a)){F[4288]=a|c;a=b;break k}a=F[b+8>>2]}F[b+8>>2]=d;F[a+12>>2]=d;F[d+12>>2]=b;F[d+8>>2]=a;return}e=31;if(a>>>0<=16777215){b=a>>>8|0;g=b+1048320>>>16&8;b=b<>>16&4;b=b<>>16&2;b=(b<>>15|0)-(c|(e|g))|0;e=(b<<1|a>>>b+21&1)+28|0}F[d+28>>2]=e;F[d+16>>2]=0;F[d+20>>2]=0;g=(e<<2)+17456|0;l:{m:{c=F[4289];b=1<>2]=d;F[d+24>>2]=g;break n}e=a<<((e|0)==31?0:25-(e>>>1|0)|0);b=F[g>>2];while(1){c=b;if((F[b+4>>2]&-8)==(a|0)){break m}b=e>>>29|0;e=e<<1;g=c+(b&4)|0;b=F[g+16>>2];if(b){continue}break}F[g+16>>2]=d;F[d+24>>2]=c}F[d+12>>2]=d;F[d+8>>2]=d;break l}a=F[c+8>>2];F[a+12>>2]=d;F[c+8>>2]=d;F[d+24>>2]=0;F[d+12>>2]=c;F[d+8>>2]=a}a=F[4296]-1|0;F[4296]=a?a:-1}}function qj(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0;F[a+8>>2]=e;n=a+32|0;h=F[n>>2];f=F[a+36>>2]-h>>2;a:{if(f>>>0>>0){Aa(n,e-f|0);d=F[a+8>>2];break a}d=e;if(d>>>0>=f>>>0){break a}F[a+36>>2]=h+(e<<2);d=e}s=F[a+52>>2];p=F[a+48>>2];f=0;h=(e&1073741823)!=(e|0)?-1:e<<2;m=ua(sa(h),0,h);b:{if((d|0)<=0){break b}g=F[a+32>>2];while(1){d=f<<2;h=F[d+m>>2];j=F[a+16>>2];c:{if((h|0)>(j|0)){F[d+g>>2]=j;break c}d=d+g|0;j=F[a+12>>2];if((j|0)>(h|0)){F[d>>2]=j;break c}F[d>>2]=h}d=F[a+8>>2];f=f+1|0;if((d|0)>(f|0)){continue}break}if((d|0)<=0){break b}f=0;while(1){h=f<<2;d=h+c|0;h=F[b+h>>2]+F[g+h>>2]|0;F[d>>2]=h;d:{if((h|0)>F[a+16>>2]){i=h-F[a+20>>2]|0}else{if((h|0)>=F[a+12>>2]){break d}i=h+F[a+20>>2]|0}F[d>>2]=i}d=F[a+8>>2];f=f+1|0;if((d|0)>(f|0)){continue}break}}f=F[a+56>>2];q=F[f>>2];f=F[f+4>>2]-q|0;if((f|0)>=5){o=f>>>2|0;t=o>>>0>2?o:2;u=e&-2;v=e&1;h=1;while(1){e:{f:{if((h|0)!=(o|0)){r=L(e,h);f=F[(h<<2)+q>>2];if((f|0)==-1){break f}f=F[F[p+12>>2]+(f<<2)>>2];if((f|0)==-1){break f}j=F[s>>2];g=F[p>>2];k=F[j+(F[g+(f<<2)>>2]<<2)>>2];i=f+1|0;i=(i>>>0)%3|0?i:f-2|0;if((i|0)!=-1){i=F[g+(i<<2)>>2]}else{i=-1}g:{h:{if((f>>>0)%3|0){f=f-1|0;break h}f=f+2|0;l=-1;if((f|0)==-1){break g}}l=F[g+(f<<2)>>2]}if((h|0)<=(k|0)){break f}f=F[(i<<2)+j>>2];if((f|0)>=(h|0)){break f}g=F[j+(l<<2)>>2];if((g|0)>=(h|0)){break f}i:{if((e|0)<=0){break i}g=L(e,g);j=L(e,f);k=L(e,k);f=0;l=0;if((e|0)!=1){while(1){F[(f<<2)+m>>2]=(F[(f+g<<2)+c>>2]+F[(f+j<<2)+c>>2]|0)-F[(f+k<<2)+c>>2];i=f|1;F[(i<<2)+m>>2]=(F[(g+i<<2)+c>>2]+F[(j+i<<2)+c>>2]|0)-F[(i+k<<2)+c>>2];f=f+2|0;l=l+2|0;if((u|0)!=(l|0)){continue}break}}if(!v){break i}F[(f<<2)+m>>2]=(F[(f+g<<2)+c>>2]+F[(f+j<<2)+c>>2]|0)-F[(f+k<<2)+c>>2]}if((d|0)<=0){break e}j=F[n>>2];f=0;while(1){d=f<<2;g=F[d+m>>2];k=F[a+16>>2];j:{if((g|0)>(k|0)){F[d+j>>2]=k;break j}d=d+j|0;k=F[a+12>>2];if((k|0)>(g|0)){F[d>>2]=k;break j}F[d>>2]=g}d=F[a+8>>2];f=f+1|0;if((d|0)>(f|0)){continue}break}f=0;if((d|0)<=0){break e}d=r<<2;k=d+c|0;i=b+d|0;while(1){g=f<<2;d=g+k|0;g=F[g+i>>2]+F[g+j>>2]|0;F[d>>2]=g;k:{if((g|0)>F[a+16>>2]){l=g-F[a+20>>2]|0}else{if((g|0)>=F[a+12>>2]){break k}l=g+F[a+20>>2]|0}F[d>>2]=l}d=F[a+8>>2];f=f+1|0;if((d|0)>(f|0)){continue}break}break e}Ea();V()}if((d|0)<=0){break e}k=(L(h-1|0,e)<<2)+c|0;j=F[n>>2];f=0;while(1){d=f<<2;g=F[d+k>>2];i=F[a+16>>2];l:{if((g|0)>(i|0)){F[d+j>>2]=i;break l}d=d+j|0;i=F[a+12>>2];if((i|0)>(g|0)){F[d>>2]=i;break l}F[d>>2]=g}d=F[a+8>>2];f=f+1|0;if((d|0)>(f|0)){continue}break}f=0;if((d|0)<=0){break e}d=r<<2;k=d+c|0;i=b+d|0;while(1){g=f<<2;d=g+k|0;g=F[g+i>>2]+F[g+j>>2]|0;F[d>>2]=g;m:{if((g|0)>F[a+16>>2]){l=g-F[a+20>>2]|0}else{if((g|0)>=F[a+12>>2]){break m}l=g+F[a+20>>2]|0}F[d>>2]=l}d=F[a+8>>2];f=f+1|0;if((d|0)>(f|0)){continue}break}}h=h+1|0;if((t|0)!=(h|0)){continue}break}}ra(m);return 1}function Yc(a,b,c,d){var e=0,f=0,g=0,h=0,i=0,j=0,k=M(0),l=0,m=0,n=M(0);j=F[c>>2];a:{b:{f=F[b+4>>2];if(!f){break b}c=f-1|0;if(c&f){e=j;if(e>>>0>=f>>>0){e=(j>>>0)%(f>>>0)|0}c=F[F[b>>2]+(e<<2)>>2];if(!c){break b}while(1){c=F[c>>2];if(!c){break b}g=F[c+4>>2];if((g|0)!=(j|0)){if(f>>>0<=g>>>0){g=(g>>>0)%(f>>>0)|0}if((e|0)!=(g|0)){break b}}if(F[c+8>>2]!=(j|0)){continue}break}b=0;break a}e=c&j;c=F[F[b>>2]+(e<<2)>>2];if(!c){break b}g=f-1|0;while(1){c=F[c>>2];if(!c){break b}h=F[c+4>>2];if((h|0)!=(j|0)&(g&h)!=(e|0)){break b}if(F[c+8>>2]!=(j|0)){continue}break}b=0;break a}c=sa(16);d=F[F[d>>2]>>2];F[c+12>>2]=0;F[c+8>>2]=d;F[c+4>>2]=j;F[c>>2]=0;n=M(F[b+12>>2]+1>>>0);k=J[b+16>>2];c:{if(n>M(k*M(f>>>0))?0:f){break c}d=2;g=(f-1&f)!=0|f>>>0<3|f<<1;k=M(S(M(n/k)));d:{if(k=M(0)){e=~~k>>>0;break d}e=0}e=e>>>0>>0?g:e;e:{if((e|0)==1){break e}if(!(e&e-1)){d=e;break e}d=Kd(e);f=F[b+4>>2]}f:{if(d>>>0<=f>>>0){if(d>>>0>=f>>>0){break f}g=f>>>0<3;k=M(S(M(M(I[b+12>>2])/J[b+16>>2])));g:{if(k=M(0)){e=~~k>>>0;break g}e=0}h:{i:{if(g){break i}if(Pj(f)>>>0>1){break i}e=e>>>0<2?e:1<<32-O(e-1|0);break h}e=Kd(e)}d=d>>>0>e>>>0?d:e;if(f>>>0<=d>>>0){break f}}e=0;h=d;j:{k:{l:{if(d){if(h>>>0>=1073741824){break l}f=sa(h<<2);d=F[b>>2];F[b>>2]=f;if(d){ra(d)}F[b+4>>2]=h;if(h-1>>>0>=3){g=h&-4;d=0;while(1){f=e<<2;F[f+F[b>>2]>>2]=0;F[F[b>>2]+(f|4)>>2]=0;F[F[b>>2]+(f|8)>>2]=0;F[F[b>>2]+(f|12)>>2]=0;e=e+4|0;d=d+4|0;if((g|0)!=(d|0)){continue}break}}d=h&3;if(d){while(1){F[F[b>>2]+(e<<2)>>2]=0;e=e+1|0;i=i+1|0;if((d|0)!=(i|0)){continue}break}}d=F[b+8>>2];if(!d){break j}e=b+8|0;g=F[d+4>>2];f=h-1|0;if(!(f&h)){break k}g=g>>>0>=h>>>0?(g>>>0)%(h>>>0)|0:g;F[F[b>>2]+(g<<2)>>2]=e;while(1){f=F[d>>2];if(!f){break j}i=F[f+4>>2];if(h>>>0<=i>>>0){i=(i>>>0)%(h>>>0)|0}if((g|0)==(i|0)){d=f;continue}e=f;l=i<<2;m=l+F[b>>2]|0;if(F[m>>2]){while(1){i=e;e=F[e>>2];if(F[f+8>>2]==F[e+8>>2]?e:0){continue}break}F[d>>2]=e;F[i>>2]=F[F[l+F[b>>2]>>2]>>2];F[F[l+F[b>>2]>>2]>>2]=f}else{F[m>>2]=d;d=f;g=i}continue}}d=F[b>>2];F[b>>2]=0;if(d){ra(d)}F[b+4>>2]=0;break j}za();V()}g=f&g;F[F[b>>2]+(g<<2)>>2]=e;f=F[d>>2];if(!f){break j}l=h-1|0;while(1){h=l&F[f+4>>2];m:{if((h|0)==(g|0)){d=f;break m}e=f;i=h<<2;m=i+F[b>>2]|0;if(F[m>>2]){while(1){h=e;e=F[e>>2];if(F[f+8>>2]==F[e+8>>2]?e:0){continue}break}F[d>>2]=e;F[h>>2]=F[F[i+F[b>>2]>>2]>>2];F[F[i+F[b>>2]>>2]>>2]=f;break m}F[m>>2]=d;d=f;g=h}f=F[d>>2];if(f){continue}break}}}f=F[b+4>>2];d=f-1|0;if(!(d&f)){e=d&j;break c}if(f>>>0>j>>>0){e=j;break c}e=(j>>>0)%(f>>>0)|0}e=F[b>>2]+(e<<2)|0;d=F[e>>2];n:{o:{if(!d){d=b+8|0;F[c>>2]=F[d>>2];F[b+8>>2]=c;F[e>>2]=d;d=F[c>>2];if(!d){break n}d=F[d+4>>2];e=f-1|0;p:{if(!(e&f)){d=d&e;break p}if(d>>>0>>0){break p}d=(d>>>0)%(f>>>0)|0}d=F[b>>2]+(d<<2)|0;break o}F[c>>2]=F[d>>2]}F[d>>2]=c}F[b+12>>2]=F[b+12>>2]+1;b=1}D[a+4|0]=b;F[a>>2]=c}function Gc(a){var b=0,c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0;F[a+56>>2]=F[a+52>>2];F[a+44>>2]=F[a+40>>2];a:{b:{c:{e=F[a+64>>2];c=F[e+24>>2];if((c|0)!=F[e+28>>2]){while(1){d=b;i=F[(j<<2)+c>>2];d:{if((i|0)==-1){break d}b=F[a+56>>2];e:{if((b|0)!=F[a+60>>2]){F[b>>2]=d;F[a+56>>2]=b+4;break e}e=F[a+52>>2];c=b-e|0;g=c>>2;b=g+1|0;if(b>>>0>=1073741824){break c}f=c>>1;f=c>>>0<2147483644?b>>>0>>0?f:b:1073741823;if(f){if(f>>>0>=1073741824){break b}b=sa(f<<2)}else{b=0}g=b+(g<<2)|0;F[g>>2]=d;if((c|0)>0){ta(b,e,c)}F[a+60>>2]=b+(f<<2);F[a+56>>2]=g+4;F[a+52>>2]=b;if(!e){break e}ra(e)}f:{if(!(F[F[a+12>>2]+(j>>>3&536870908)>>2]>>>j&1)){break f}b=i+1|0;b=(b>>>0)%3|0?b:i-2|0;if((b|0)==-1|F[F[a>>2]+(b>>>3&536870908)>>2]>>>b&1){break f}b=F[F[F[a+64>>2]+12>>2]+(b<<2)>>2];if((b|0)==-1){break f}c=b+1|0;c=(c>>>0)%3|0?c:b-2|0;if((c|0)==-1){break f}e=F[a+64>>2];f=F[a>>2];while(1){i=c;b=c+1|0;b=(b>>>0)%3|0?b:c-2|0;if((b|0)==-1|F[f+(b>>>3&536870908)>>2]>>>b&1){break f}b=F[F[e+12>>2]+(b<<2)>>2];if((b|0)==-1){break f}c=b+1|0;c=(c>>>0)%3|0?c:b-2|0;if((c|0)!=-1){continue}break}}F[F[a+28>>2]+(i<<2)>>2]=d;b=F[a+44>>2];g:{if((b|0)!=F[a+48>>2]){F[b>>2]=i;F[a+44>>2]=b+4;break g}e=F[a+40>>2];c=b-e|0;g=c>>2;b=g+1|0;if(b>>>0>=1073741824){break a}f=c>>1;f=c>>>0<2147483644?b>>>0>>0?f:b:1073741823;if(f){if(f>>>0>=1073741824){break b}b=sa(f<<2)}else{b=0}g=b+(g<<2)|0;F[g>>2]=i;if((c|0)>0){ta(b,e,c)}F[a+48>>2]=b+(f<<2);F[a+44>>2]=g+4;F[a+40>>2]=b;if(!e){break g}ra(e)}b=d+1|0;e=F[a+64>>2];h:{if((i>>>0)%3|0){c=i-1|0;break h}c=i+2|0;if((c|0)==-1){break d}}c=F[F[e+12>>2]+(c<<2)>>2];if((c|0)==-1){break d}c=c+((c>>>0)%3|0?-1:2)|0;if((c|0)==-1|(c|0)==(i|0)){break d}while(1){e=c+1|0;e=(e>>>0)%3|0?e:c-2|0;if(F[F[a>>2]+(e>>>3&536870908)>>2]>>>e&1){d=F[a+56>>2];i:{if((d|0)!=F[a+60>>2]){F[d>>2]=b;F[a+56>>2]=d+4;break i}f=F[a+52>>2];e=d-f|0;h=e>>2;d=h+1|0;if(d>>>0>=1073741824){break c}g=e>>1;g=e>>>0<2147483644?d>>>0>>0?g:d:1073741823;if(g){if(g>>>0>=1073741824){break b}d=sa(g<<2)}else{d=0}h=d+(h<<2)|0;F[h>>2]=b;if((e|0)>0){ta(d,f,e)}F[a+60>>2]=d+(g<<2);F[a+56>>2]=h+4;F[a+52>>2]=d;if(!f){break i}ra(f)}e=b+1|0;d=F[a+44>>2];j:{if((d|0)!=F[a+48>>2]){F[d>>2]=c;F[a+44>>2]=d+4;break j}g=F[a+40>>2];f=d-g|0;k=f>>2;d=k+1|0;if(d>>>0>=1073741824){break a}h=f>>1;h=f>>>0<2147483644?d>>>0>>0?h:d:1073741823;if(h){if(h>>>0>=1073741824){break b}d=sa(h<<2)}else{d=0}k=d+(k<<2)|0;F[k>>2]=c;if((f|0)>0){ta(d,g,f)}F[a+48>>2]=d+(h<<2);F[a+44>>2]=k+4;F[a+40>>2]=d;if(!g){break j}ra(g)}d=b;b=e}F[F[a+28>>2]+(c<<2)>>2]=d;e=F[a+64>>2];k:{if((c>>>0)%3|0){c=c-1|0;break k}c=c+2|0;if((c|0)==-1){break d}}c=F[F[e+12>>2]+(c<<2)>>2];if((c|0)==-1){break d}c=c+((c>>>0)%3|0?-1:2)|0;if((c|0)==-1){break d}if((c|0)!=(i|0)){continue}break}}j=j+1|0;c=F[e+24>>2];if(j>>>0>2]-c>>2>>>0){continue}break}}return}va();V()}za();V()}va();V()}function Hj(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0;F[a+8>>2]=e;m=a+32|0;h=F[m>>2];f=F[a+36>>2]-h>>2;a:{if(f>>>0>>0){Aa(m,e-f|0);d=F[a+8>>2];break a}d=e;if(d>>>0>=f>>>0){break a}F[a+36>>2]=h+(e<<2);d=e}s=F[a+52>>2];n=F[a+48>>2];f=0;h=(e&1073741823)!=(e|0)?-1:e<<2;l=ua(sa(h),0,h);b:{if((d|0)<=0){break b}g=F[a+32>>2];while(1){d=f<<2;h=F[d+l>>2];i=F[a+16>>2];c:{if((h|0)>(i|0)){F[d+g>>2]=i;break c}d=d+g|0;i=F[a+12>>2];if((i|0)>(h|0)){F[d>>2]=i;break c}F[d>>2]=h}d=F[a+8>>2];f=f+1|0;if((d|0)>(f|0)){continue}break}if((d|0)<=0){break b}f=0;while(1){h=f<<2;d=h+c|0;h=F[b+h>>2]+F[g+h>>2]|0;F[d>>2]=h;d:{if((h|0)>F[a+16>>2]){h=h-F[a+20>>2]|0}else{if((h|0)>=F[a+12>>2]){break d}h=h+F[a+20>>2]|0}F[d>>2]=h}d=F[a+8>>2];f=f+1|0;if((d|0)>(f|0)){continue}break}}f=F[a+56>>2];q=F[f>>2];f=F[f+4>>2]-q|0;if((f|0)>=5){o=f>>>2|0;t=o>>>0>2?o:2;u=e&-2;v=e&1;h=1;while(1){e:{f:{if((h|0)!=(o|0)){r=L(e,h);f=F[(h<<2)+q>>2];if((f|0)==-1|F[F[n>>2]+(f>>>3&536870908)>>2]>>>f&1){break f}f=F[F[F[n+64>>2]+12>>2]+(f<<2)>>2];if((f|0)==-1){break f}i=F[s>>2];g=F[n+28>>2];k=F[i+(F[g+(f<<2)>>2]<<2)>>2];if((k|0)>=(h|0)){break f}j=f+1|0;j=F[i+(F[g+(((j>>>0)%3|0?j:f-2|0)<<2)>>2]<<2)>>2];if((j|0)>=(h|0)){break f}f=F[i+(F[g+(f+((f>>>0)%3|0?-1:2)<<2)>>2]<<2)>>2];if((f|0)>=(h|0)){break f}g:{if((e|0)<=0){break g}g=L(e,f);i=L(e,j);k=L(e,k);f=0;p=0;if((e|0)!=1){while(1){F[(f<<2)+l>>2]=(F[(f+g<<2)+c>>2]+F[(f+i<<2)+c>>2]|0)-F[(f+k<<2)+c>>2];j=f|1;F[(j<<2)+l>>2]=(F[(g+j<<2)+c>>2]+F[(i+j<<2)+c>>2]|0)-F[(k+j<<2)+c>>2];f=f+2|0;p=p+2|0;if((u|0)!=(p|0)){continue}break}}if(!v){break g}F[(f<<2)+l>>2]=(F[(f+g<<2)+c>>2]+F[(f+i<<2)+c>>2]|0)-F[(f+k<<2)+c>>2]}if((d|0)<=0){break e}i=F[m>>2];f=0;while(1){d=f<<2;g=F[d+l>>2];k=F[a+16>>2];h:{if((g|0)>(k|0)){F[d+i>>2]=k;break h}d=d+i|0;k=F[a+12>>2];if((k|0)>(g|0)){F[d>>2]=k;break h}F[d>>2]=g}d=F[a+8>>2];f=f+1|0;if((d|0)>(f|0)){continue}break}f=0;if((d|0)<=0){break e}d=r<<2;k=d+c|0;j=b+d|0;while(1){g=f<<2;d=g+k|0;g=F[g+j>>2]+F[g+i>>2]|0;F[d>>2]=g;i:{if((g|0)>F[a+16>>2]){g=g-F[a+20>>2]|0}else{if((g|0)>=F[a+12>>2]){break i}g=g+F[a+20>>2]|0}F[d>>2]=g}d=F[a+8>>2];f=f+1|0;if((d|0)>(f|0)){continue}break}break e}Ea();V()}if((d|0)<=0){break e}k=(L(h-1|0,e)<<2)+c|0;i=F[m>>2];f=0;while(1){d=f<<2;g=F[d+k>>2];j=F[a+16>>2];j:{if((g|0)>(j|0)){F[d+i>>2]=j;break j}d=d+i|0;j=F[a+12>>2];if((j|0)>(g|0)){F[d>>2]=j;break j}F[d>>2]=g}d=F[a+8>>2];f=f+1|0;if((d|0)>(f|0)){continue}break}f=0;if((d|0)<=0){break e}d=r<<2;k=d+c|0;j=b+d|0;while(1){g=f<<2;d=g+k|0;g=F[g+j>>2]+F[g+i>>2]|0;F[d>>2]=g;k:{if((g|0)>F[a+16>>2]){g=g-F[a+20>>2]|0}else{if((g|0)>=F[a+12>>2]){break k}g=g+F[a+20>>2]|0}F[d>>2]=g}d=F[a+8>>2];f=f+1|0;if((d|0)>(f|0)){continue}break}}h=h+1|0;if((t|0)!=(h|0)){continue}break}}ra(l);return 1}function Le(a,b,c,d){var e=0,f=0,g=0,h=0,i=0,j=0,k=0;f=ea-80|0;ea=f;e=F[c+36>>2];F[f+72>>2]=F[c+32>>2];F[f+76>>2]=e;g=F[c+28>>2];e=f- -64|0;F[e>>2]=F[c+24>>2];F[e+4>>2]=g;e=F[c+20>>2];F[f+56>>2]=F[c+16>>2];F[f+60>>2]=e;e=F[c+12>>2];F[f+48>>2]=F[c+8>>2];F[f+52>>2]=e;e=F[c+4>>2];F[f+40>>2]=F[c>>2];F[f+44>>2]=e;nc(a,f+40|0,f+24|0);a:{if(F[a>>2]){break a}j=a+4|0;if(D[a+15|0]<0){ra(F[j>>2])}if(G[f+31|0]!=1){b=sa(32);c=G[1448]|G[1449]<<8|(G[1450]<<16|G[1451]<<24);D[b+16|0]=c;D[b+17|0]=c>>>8;D[b+18|0]=c>>>16;D[b+19|0]=c>>>24;c=G[1444]|G[1445]<<8|(G[1446]<<16|G[1447]<<24);d=G[1440]|G[1441]<<8|(G[1442]<<16|G[1443]<<24);D[b+8|0]=d;D[b+9|0]=d>>>8;D[b+10|0]=d>>>16;D[b+11|0]=d>>>24;D[b+12|0]=c;D[b+13|0]=c>>>8;D[b+14|0]=c>>>16;D[b+15|0]=c>>>24;c=G[1436]|G[1437]<<8|(G[1438]<<16|G[1439]<<24);d=G[1432]|G[1433]<<8|(G[1434]<<16|G[1435]<<24);D[b|0]=d;D[b+1|0]=d>>>8;D[b+2|0]=d>>>16;D[b+3|0]=d>>>24;D[b+4|0]=c;D[b+5|0]=c>>>8;D[b+6|0]=c>>>16;D[b+7|0]=c>>>24;D[b+20|0]=0;F[a>>2]=-1;Ba(j,b,20);ra(b);break a}i=ea-16|0;ea=i;b:{c:{switch(G[f+32|0]){case 0:e=He(sa(48));F[e>>2]=13112;F[f+8>>2]=0;F[f+12>>2]=0;F[f>>2]=0;F[f+4>>2]=0;F[f+16>>2]=e;break b;case 1:e=He(sa(52));F[e+48>>2]=0;F[e>>2]=11276;F[f+8>>2]=0;F[f+12>>2]=0;F[f>>2]=0;F[f+4>>2]=0;F[f+16>>2]=e;break b;default:break c}}g=sa(32);e=G[1550]|G[1551]<<8|(G[1552]<<16|G[1553]<<24);D[g+24|0]=e;D[g+25|0]=e>>>8;D[g+26|0]=e>>>16;D[g+27|0]=e>>>24;e=G[1546]|G[1547]<<8|(G[1548]<<16|G[1549]<<24);h=G[1542]|G[1543]<<8|(G[1544]<<16|G[1545]<<24);D[g+16|0]=h;D[g+17|0]=h>>>8;D[g+18|0]=h>>>16;D[g+19|0]=h>>>24;D[g+20|0]=e;D[g+21|0]=e>>>8;D[g+22|0]=e>>>16;D[g+23|0]=e>>>24;e=G[1538]|G[1539]<<8|(G[1540]<<16|G[1541]<<24);h=G[1534]|G[1535]<<8|(G[1536]<<16|G[1537]<<24);D[g+8|0]=h;D[g+9|0]=h>>>8;D[g+10|0]=h>>>16;D[g+11|0]=h>>>24;D[g+12|0]=e;D[g+13|0]=e>>>8;D[g+14|0]=e>>>16;D[g+15|0]=e>>>24;e=G[1530]|G[1531]<<8|(G[1532]<<16|G[1533]<<24);h=G[1526]|G[1527]<<8|(G[1528]<<16|G[1529]<<24);D[g|0]=h;D[g+1|0]=h>>>8;D[g+2|0]=h>>>16;D[g+3|0]=h>>>24;D[g+4|0]=e;D[g+5|0]=e>>>8;D[g+6|0]=e>>>16;D[g+7|0]=e>>>24;D[g+28|0]=0;F[i>>2]=-1;e=i|4;Ba(e,g,28);k=D[i+15|0];F[f>>2]=F[i>>2];h=f+4|0;d:{if((k|0)>=0){k=F[e+4>>2];F[h>>2]=F[e>>2];F[h+4>>2]=k;F[h+8>>2]=F[e+8>>2];F[f+16>>2]=0;break d}Ba(h,F[i+4>>2],F[i+8>>2]);e=D[i+15|0];F[f+16>>2]=0;if((e|0)>=0){break d}ra(F[i+4>>2])}ra(g)}ea=i+16|0;e=F[f>>2];e:{if(e){F[a>>2]=e;if(D[f+15|0]>=0){a=f|4;b=F[a+4>>2];F[j>>2]=F[a>>2];F[j+4>>2]=b;F[j+8>>2]=F[a+8>>2];break e}Ba(j,F[f+4>>2],F[f+8>>2]);break e}e=F[f+16>>2];F[f+16>>2]=0;F[e+44>>2]=d;se(a,e,b,c,d);if(!F[a>>2]){if(D[j+11|0]<0){ra(F[j>>2])}F[a>>2]=0;F[a+4>>2]=0;F[a+8>>2]=0;F[a+12>>2]=0}ga[F[F[e>>2]+4>>2]](e)}a=F[f+16>>2];F[f+16>>2]=0;if(a){ga[F[F[a>>2]+4>>2]](a)}if(D[f+15|0]>=0){break a}ra(F[f+4>>2])}ea=f+80|0}function ue(a,b){var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0;if((b|0)==-1){return 1}c=(b>>>0)/3|0;if(!(F[F[a+24>>2]+(c>>>3&268435452)>>2]>>>c&1)){d=F[a+48>>2];F[a+52>>2]=d;a:{if((d|0)!=F[a+56>>2]){F[d>>2]=b;F[a+52>>2]=d+4;break a}e=sa(4);F[e>>2]=b;f=e+4|0;F[a+56>>2]=f;F[a+52>>2]=f;F[a+48>>2]=e;if(!d){break a}ra(d)}f=F[F[a+4>>2]+28>>2];d=b+1|0;e=(d>>>0)%3|0?d:b-2|0;d=F[f+(e<<2)>>2];if((d|0)==-1){return 0}g=(b-L(c,3)|0?-1:2)+b|0;c=F[f+(g<<2)>>2];if((c|0)==-1){return 0}b=F[a+36>>2];f=b+(d>>>3&536870908)|0;h=F[f>>2];i=1<>2]=h|i;Xa(a+8|0,d,e);b=F[a+36>>2]}b=(c>>>3&536870908)+b|0;d=F[b>>2];e=1<>2]=d|e;Xa(a+8|0,c,g)}c=F[a+52>>2];if((c|0)==F[a+48>>2]){return 1}k=a+8|0;while(1){b:{c:{c=c-4|0;b=F[c>>2];if((b|0)==-1){break c}d=(b>>>0)/3|0;e=F[a+24>>2]+(d>>>3&268435452)|0;f=F[e>>2];d=1<>2]=d|f;e=F[a+4>>2];d=F[F[e+28>>2]+(b<<2)>>2];if((d|0)==-1){return 0}while(1){c=b;d:{e:{f=F[a+36>>2]+(d>>>3&536870908)|0;g=F[f>>2];h=1<>2]+(d<<2)>>2];g:{if((b|0)==-1){break g}i=b+1|0;b=(i>>>0)%3|0?i:b-2|0;if((b|0)==-1|F[F[e>>2]+(b>>>3&536870908)>>2]>>>b&1){break g}b=F[F[F[e+64>>2]+12>>2]+(b<<2)>>2];if((b|0)!=-1){break f}}F[f>>2]=g|h;Xa(k,d,c);break e}F[f>>2]=g|h;Xa(k,d,c);d=b+1|0;if((((d>>>0)%3|0?d:b-2|0)|0)==-1){break e}b=-1;e=F[a+4>>2];h:{if((c|0)==-1){break h}d=c+1|0;d=(d>>>0)%3|0?d:c-2|0;if((d|0)==-1|F[F[e>>2]+(d>>>3&536870908)>>2]>>>d&1){break h}b=F[F[F[e+64>>2]+12>>2]+(d<<2)>>2]}d=(b>>>0)/3|0;h=1<>2];i=d>>>5|0;f=F[c+(i<<2)>>2];break d}i:{j:{if((c|0)==-1){break j}d=-1;b=c+1|0;b=(b>>>0)%3|0?b:c-2|0;e=F[a+4>>2];if(!((b|0)==-1|F[F[e>>2]+(b>>>3&536870908)>>2]>>>b&1)){d=F[F[F[e+64>>2]+12>>2]+(b<<2)>>2]}k:{l:{if((c>>>0)%3|0){c=c-1|0;break l}c=c+2|0;b=-1;if((c|0)==-1){break k}}b=-1;if(F[F[e>>2]+(c>>>3&536870908)>>2]>>>c&1){break k}b=F[F[F[e+64>>2]+12>>2]+(c<<2)>>2]}j=(b|0)==-1;g=j?-1:(b>>>0)/3|0;if((d|0)!=-1){c=F[a+24>>2];h=(d>>>0)/3|0;i=h>>>5|0;f=F[c+(i<<2)>>2];h=1<>2];i=g>>>5|0;f=F[c+(i<<2)>>2];if(!(h&f)){break d}}c=F[a+52>>2]-4|0;F[a+52>>2]=c;break b}if(j){b=d;break d}if(F[(g>>>3&536870908)+c>>2]>>>g&1){b=d;break d}c=F[a+52>>2];F[c-4>>2]=b;if((c|0)!=F[a+56>>2]){F[c>>2]=d;c=c+4|0;break c}m:{f=F[a+48>>2];e=c-f|0;c=e>>2;b=c+1|0;if(b>>>0<1073741824){g=e>>1;g=e>>>0<2147483644?b>>>0>>0?g:b:1073741823;if(g){if(g>>>0>=1073741824){break m}b=sa(g<<2)}else{b=0}c=b+(c<<2)|0;F[c>>2]=d;c=c+4|0;if((e|0)>0){ta(b,f,e)}F[a+56>>2]=b+(g<<2);F[a+52>>2]=c;F[a+48>>2]=b;if(!f){break b}ra(f);c=F[a+52>>2];break b}va();V()}za();V()}F[(i<<2)+c>>2]=f|h;d=F[F[e+28>>2]+(b<<2)>>2];if((d|0)!=-1){continue}break}return 0}F[a+52>>2]=c}if(F[a+48>>2]!=(c|0)){continue}break}}return 1}function ya(a){var b=0,c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0;f=ea-32|0;ea=f;a:{b:{c:{d:{b=F[a+16>>2];if(b>>>0>=341){F[a+16>>2]=b-341;b=F[a+4>>2];k=F[b>>2];c=b+4|0;F[a+4>>2]=c;b=F[a+8>>2];e:{if((b|0)!=F[a+12>>2]){d=b;break e}h=F[a>>2];if(h>>>0>>0){g=b-c|0;e=((c-h>>2)+1|0)/-2<<2;d=e+c|0;if((b|0)!=(c|0)){Ra(d,c,g);c=F[a+4>>2]}d=d+g|0;F[a+8>>2]=d;F[a+4>>2]=c+e;break e}d=(b|0)==(h|0)?1:b-h>>1;if(d>>>0>=1073741824){break d}e=d<<2;i=sa(e);l=e+i|0;e=i+(d&-4)|0;d=e;f:{if((b|0)==(c|0)){break f}b=b-c|0;m=b&-4;j=b-4|0;g=(j>>>2|0)+1&7;g:{if(!g){b=e;break g}d=0;b=e;while(1){F[b>>2]=F[c>>2];c=c+4|0;b=b+4|0;d=d+1|0;if((g|0)!=(d|0)){continue}break}}d=e+m|0;if(j>>>0<28){break f}while(1){F[b>>2]=F[c>>2];F[b+4>>2]=F[c+4>>2];F[b+8>>2]=F[c+8>>2];F[b+12>>2]=F[c+12>>2];F[b+16>>2]=F[c+16>>2];F[b+20>>2]=F[c+20>>2];F[b+24>>2]=F[c+24>>2];F[b+28>>2]=F[c+28>>2];c=c+32|0;b=b+32|0;if((d|0)!=(b|0)){continue}break}}F[a+12>>2]=l;F[a+8>>2]=d;F[a+4>>2]=e;F[a>>2]=i;if(!h){break e}ra(h);d=F[a+8>>2]}F[d>>2]=k;F[a+8>>2]=F[a+8>>2]+4;break a}b=F[a+8>>2];d=b-F[a+4>>2]>>2;g=F[a+12>>2];c=F[a>>2];e=g-c|0;if(d>>>0>2>>>0){if((b|0)!=(g|0)){n=f,o=sa(4092),F[n+8>>2]=o;pd(a,f+8|0);break a}n=f,o=sa(4092),F[n+8>>2]=o;od(a,f+8|0);b=F[a+4>>2];k=F[b>>2];c=b+4|0;F[a+4>>2]=c;b=F[a+8>>2];h:{if((b|0)!=F[a+12>>2]){d=b;break h}h=F[a>>2];if(h>>>0>>0){g=b-c|0;e=((c-h>>2)+1|0)/-2<<2;d=e+c|0;if((b|0)!=(c|0)){Ra(d,c,g);c=F[a+4>>2]}d=d+g|0;F[a+8>>2]=d;F[a+4>>2]=c+e;break h}d=(b|0)==(h|0)?1:b-h>>1;if(d>>>0>=1073741824){break d}e=d<<2;i=sa(e);l=e+i|0;e=i+(d&-4)|0;d=e;i:{if((b|0)==(c|0)){break i}b=b-c|0;m=b&-4;j=b-4|0;g=(j>>>2|0)+1&7;j:{if(!g){b=e;break j}d=0;b=e;while(1){F[b>>2]=F[c>>2];c=c+4|0;b=b+4|0;d=d+1|0;if((g|0)!=(d|0)){continue}break}}d=e+m|0;if(j>>>0<28){break i}while(1){F[b>>2]=F[c>>2];F[b+4>>2]=F[c+4>>2];F[b+8>>2]=F[c+8>>2];F[b+12>>2]=F[c+12>>2];F[b+16>>2]=F[c+16>>2];F[b+20>>2]=F[c+20>>2];F[b+24>>2]=F[c+24>>2];F[b+28>>2]=F[c+28>>2];c=c+32|0;b=b+32|0;if((d|0)!=(b|0)){continue}break}}F[a+12>>2]=l;F[a+8>>2]=d;F[a+4>>2]=e;F[a>>2]=i;if(!h){break h}ra(h);d=F[a+8>>2]}F[d>>2]=k;F[a+8>>2]=F[a+8>>2]+4;break a}F[f+24>>2]=a+12;b=(c|0)==(g|0)?1:e>>1;if(b>>>0>=1073741824){break d}e=b<<2;c=sa(e);F[f+8>>2]=c;b=c+(d<<2)|0;F[f+16>>2]=b;F[f+20>>2]=c+e;F[f+12>>2]=b;n=f,o=sa(4092),F[n+4>>2]=o;pd(f+8|0,f+4|0);c=F[a+8>>2];if((c|0)==F[a+4>>2]){b=c;break b}while(1){c=c-4|0;od(f+8|0,c);if(F[a+4>>2]!=(c|0)){continue}break}break c}za();V()}b=F[a+8>>2]}d=F[a>>2];F[a>>2]=F[f+8>>2];F[f+8>>2]=d;F[a+4>>2]=F[f+12>>2];F[f+12>>2]=c;F[a+8>>2]=F[f+16>>2];F[f+16>>2]=b;e=F[a+12>>2];F[a+12>>2]=F[f+20>>2];F[f+20>>2]=e;if((b|0)!=(c|0)){F[f+16>>2]=b+((c-b|0)+3&-4)}if(!d){break a}ra(d)}ea=f+32|0}function Cj(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0;i=ea-32|0;ea=i;a:{if(H[b+38>>1]<=513){c=F[b+20>>2];h=F[b+12>>2];d=F[b+16>>2];if((c|0)>=(h|0)&d>>>0>=I[b+8>>2]|(c|0)>(h|0)){break a}h=G[d+F[b>>2]|0];d=d+1|0;c=d?c:c+1|0;F[b+16>>2]=d;F[b+20>>2]=c;if(h){break a}}b:{if(!ab(1,i+28|0,b)){break b}d=F[i+28>>2];c=F[F[a+48>>2]+64>>2];if(d>>>0>F[c+4>>2]-F[c>>2]>>2>>>0){break b}c:{if(d){$a(a+60|0,d);c=i+8|0;F[c>>2]=0;F[c+4>>2]=0;D[c+5|0]=0;D[c+6|0]=0;D[c+7|0]=0;D[c+8|0]=0;D[c+9|0]=0;D[c+10|0]=0;D[c+11|0]=0;D[c+12|0]=0;if(!wa(c,b)){break c}while(1){h=1<>2]+(e>>>3&536870908)|0;if(f){f=h|F[g>>2]}else{f=F[g>>2]&(h^-1)}F[g>>2]=f;e=e+1|0;if((d|0)!=(e|0)){continue}break}}if(!ab(1,i+28|0,b)){break b}d=F[i+28>>2];c=F[F[a+48>>2]+64>>2];if(d>>>0>F[c+4>>2]-F[c>>2]>>2>>>0){break b}if(d){e=0;$a(a+72|0,d);c=i+8|0;F[c>>2]=0;F[c+4>>2]=0;D[c+5|0]=0;D[c+6|0]=0;D[c+7|0]=0;D[c+8|0]=0;D[c+9|0]=0;D[c+10|0]=0;D[c+11|0]=0;D[c+12|0]=0;if(!wa(c,b)){break c}while(1){h=1<>2]+(e>>>3&536870908)|0;if(f){f=h|F[g>>2]}else{f=F[g>>2]&(h^-1)}F[g>>2]=f;e=e+1|0;if((d|0)!=(e|0)){continue}break}}if(!ab(1,i+28|0,b)){break b}d=F[i+28>>2];c=F[F[a+48>>2]+64>>2];if(d>>>0>F[c+4>>2]-F[c>>2]>>2>>>0){break b}if(d){e=0;$a(a+84|0,d);c=i+8|0;F[c>>2]=0;F[c+4>>2]=0;D[c+5|0]=0;D[c+6|0]=0;D[c+7|0]=0;D[c+8|0]=0;D[c+9|0]=0;D[c+10|0]=0;D[c+11|0]=0;D[c+12|0]=0;if(!wa(c,b)){break c}while(1){h=1<>2]+(e>>>3&536870908)|0;if(f){f=h|F[g>>2]}else{f=F[g>>2]&(h^-1)}F[g>>2]=f;e=e+1|0;if((d|0)!=(e|0)){continue}break}}if(!ab(1,i+28|0,b)){break b}d=F[i+28>>2];c=F[F[a+48>>2]+64>>2];if(d>>>0>F[c+4>>2]-F[c>>2]>>2>>>0){break b}if(d){e=0;$a(a+96|0,d);c=i+8|0;F[c>>2]=0;F[c+4>>2]=0;D[c+5|0]=0;D[c+6|0]=0;D[c+7|0]=0;D[c+8|0]=0;D[c+9|0]=0;D[c+10|0]=0;D[c+11|0]=0;D[c+12|0]=0;if(!wa(c,b)){break c}while(1){h=1<>2]+(e>>>3&536870908)|0;if(f){f=h|F[g>>2]}else{f=F[g>>2]&(h^-1)}F[g>>2]=f;e=e+1|0;if((d|0)!=(e|0)){continue}break}}e=0;d=F[b+12>>2];h=d;c=F[b+20>>2];g=c;f=F[b+16>>2];j=f+4|0;c=j>>>0<4?c+1|0:c;k=F[b+8>>2];if(k>>>0>>0&(c|0)>=(d|0)|(c|0)>(d|0)){break a}l=F[b>>2];d=l+f|0;d=G[d|0]|G[d+1|0]<<8|(G[d+2|0]<<16|G[d+3|0]<<24);F[b+16>>2]=j;F[b+20>>2]=c;c=g;g=f+8|0;c=g>>>0<8?c+1|0:c;f=g;g=c;if(f>>>0>k>>>0&(c|0)>=(h|0)|(c|0)>(h|0)){break a}c=j+l|0;c=G[c|0]|G[c+1|0]<<8|(G[c+2|0]<<16|G[c+3|0]<<24);F[b+16>>2]=f;F[b+20>>2]=g;if((c|0)<(d|0)){break a}F[a+16>>2]=c;F[a+12>>2]=d;b=(c>>31)-((d>>31)+(c>>>0>>0)|0)|0;c=c-d|0;if(!b&c>>>0>2147483646|b){break a}e=1;b=c+1|0;F[a+20>>2]=b;c=b>>>1|0;F[a+24>>2]=c;F[a+28>>2]=0-c;if(b&1){break a}F[a+24>>2]=c-1;break a}}e=0}ea=i+32|0;return e|0}function mj(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0;i=ea-32|0;ea=i;a:{if(H[b+38>>1]<=513){c=F[b+20>>2];h=F[b+12>>2];d=F[b+16>>2];if((c|0)>=(h|0)&d>>>0>=I[b+8>>2]|(c|0)>(h|0)){break a}h=G[d+F[b>>2]|0];d=d+1|0;c=d?c:c+1|0;F[b+16>>2]=d;F[b+20>>2]=c;if(h){break a}}b:{if(!ab(1,i+28|0,b)){break b}d=F[i+28>>2];c=F[a+48>>2];if(d>>>0>F[c+4>>2]-F[c>>2]>>2>>>0){break b}c:{if(d){$a(a+60|0,d);c=i+8|0;F[c>>2]=0;F[c+4>>2]=0;D[c+5|0]=0;D[c+6|0]=0;D[c+7|0]=0;D[c+8|0]=0;D[c+9|0]=0;D[c+10|0]=0;D[c+11|0]=0;D[c+12|0]=0;if(!wa(c,b)){break c}while(1){h=1<>2]+(e>>>3&536870908)|0;if(f){f=h|F[g>>2]}else{f=F[g>>2]&(h^-1)}F[g>>2]=f;e=e+1|0;if((d|0)!=(e|0)){continue}break}}if(!ab(1,i+28|0,b)){break b}d=F[i+28>>2];c=F[a+48>>2];if(d>>>0>F[c+4>>2]-F[c>>2]>>2>>>0){break b}if(d){e=0;$a(a+72|0,d);c=i+8|0;F[c>>2]=0;F[c+4>>2]=0;D[c+5|0]=0;D[c+6|0]=0;D[c+7|0]=0;D[c+8|0]=0;D[c+9|0]=0;D[c+10|0]=0;D[c+11|0]=0;D[c+12|0]=0;if(!wa(c,b)){break c}while(1){h=1<>2]+(e>>>3&536870908)|0;if(f){f=h|F[g>>2]}else{f=F[g>>2]&(h^-1)}F[g>>2]=f;e=e+1|0;if((d|0)!=(e|0)){continue}break}}if(!ab(1,i+28|0,b)){break b}d=F[i+28>>2];c=F[a+48>>2];if(d>>>0>F[c+4>>2]-F[c>>2]>>2>>>0){break b}if(d){e=0;$a(a+84|0,d);c=i+8|0;F[c>>2]=0;F[c+4>>2]=0;D[c+5|0]=0;D[c+6|0]=0;D[c+7|0]=0;D[c+8|0]=0;D[c+9|0]=0;D[c+10|0]=0;D[c+11|0]=0;D[c+12|0]=0;if(!wa(c,b)){break c}while(1){h=1<>2]+(e>>>3&536870908)|0;if(f){f=h|F[g>>2]}else{f=F[g>>2]&(h^-1)}F[g>>2]=f;e=e+1|0;if((d|0)!=(e|0)){continue}break}}if(!ab(1,i+28|0,b)){break b}d=F[i+28>>2];c=F[a+48>>2];if(d>>>0>F[c+4>>2]-F[c>>2]>>2>>>0){break b}if(d){e=0;$a(a+96|0,d);c=i+8|0;F[c>>2]=0;F[c+4>>2]=0;D[c+5|0]=0;D[c+6|0]=0;D[c+7|0]=0;D[c+8|0]=0;D[c+9|0]=0;D[c+10|0]=0;D[c+11|0]=0;D[c+12|0]=0;if(!wa(c,b)){break c}while(1){h=1<>2]+(e>>>3&536870908)|0;if(f){f=h|F[g>>2]}else{f=F[g>>2]&(h^-1)}F[g>>2]=f;e=e+1|0;if((d|0)!=(e|0)){continue}break}}e=0;d=F[b+12>>2];h=d;c=F[b+20>>2];g=c;f=F[b+16>>2];j=f+4|0;c=j>>>0<4?c+1|0:c;k=F[b+8>>2];if(k>>>0>>0&(c|0)>=(d|0)|(c|0)>(d|0)){break a}l=F[b>>2];d=l+f|0;d=G[d|0]|G[d+1|0]<<8|(G[d+2|0]<<16|G[d+3|0]<<24);F[b+16>>2]=j;F[b+20>>2]=c;c=g;g=f+8|0;c=g>>>0<8?c+1|0:c;f=g;g=c;if(f>>>0>k>>>0&(c|0)>=(h|0)|(c|0)>(h|0)){break a}c=j+l|0;c=G[c|0]|G[c+1|0]<<8|(G[c+2|0]<<16|G[c+3|0]<<24);F[b+16>>2]=f;F[b+20>>2]=g;if((c|0)<(d|0)){break a}F[a+16>>2]=c;F[a+12>>2]=d;b=(c>>31)-((d>>31)+(c>>>0>>0)|0)|0;c=c-d|0;if(!b&c>>>0>2147483646|b){break a}e=1;b=c+1|0;F[a+20>>2]=b;c=b>>>1|0;F[a+24>>2]=c;F[a+28>>2]=0-c;if(b&1){break a}F[a+24>>2]=c-1;break a}}e=0}ea=i+32|0;return e|0}function Ec(a,b,c){var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0;i=L(b,12)+a|0;F[i+12>>2]=F[i+8>>2];j=(c|0)==-1?-1:(c>>>0)/3|0;l=1;k=c;a:{b:{c:{while(1){d:{n=e&1;if(n){if((k|0)==-1){break d}if((ce(a,((k>>>0)%3|0?-1:2)+k|0)|0)==-1){break a}c=k+1|0;c=(c>>>0)%3|0?c:k-2|0;if((c|0)==-1){break a}e=c+1|0;c=(e>>>0)%3|0?e:c-2|0;if((c|0)==-1){break a}c=F[F[F[a+4>>2]+12>>2]+(c<<2)>>2];if((c|0)==-1){break a}e=c+1|0;c=(e>>>0)%3|0?e:c-2|0;if((c|0)==-1){break a}j=(c>>>0)/3|0}d=F[a+56>>2]+(j>>>3&536870908)|0;g=F[d>>2];f=1<>2]=g|f;d=F[i+12>>2];f:{if((d|0)!=F[i+16>>2]){F[d>>2]=j;F[i+12>>2]=d+4;break f}g=F[i+8>>2];h=d-g|0;m=h>>2;d=m+1|0;if(d>>>0>=1073741824){break c}f=h>>1;f=h>>>0<2147483644?d>>>0>>0?f:d:1073741823;if(f){if(f>>>0>=1073741824){break b}d=sa(f<<2)}else{d=0}m=d+(m<<2)|0;F[m>>2]=j;if((h|0)>0){ta(d,g,h)}F[i+8>>2]=d;F[i+12>>2]=m+4;F[i+16>>2]=d+(f<<2);if(!g){break f}ra(g)}h=e+1|0;g:{h:{i:{if(!e){break i}if(h&1){if((c|0)==-1){c=-1;break g}e=c+1|0;c=(e>>>0)%3|0?e:c-2|0;break i}k=n?c:k;if((c|0)==-1){c=-1;break g}if((c>>>0)%3|0){e=c-1|0;break h}c=c+2|0}d=c;c=-1;e=d;if((d|0)==-1){break g}}c=F[F[F[a+4>>2]+12>>2]+(e<<2)>>2];d=-1;g=-1;f=e+1|0;f=(f>>>0)%3|0?f:e-2|0;if((f|0)>=0){g=(f>>>0)/3|0;g=F[(F[F[a>>2]+96>>2]+L(g,12)|0)+(f-L(g,3)<<2)>>2]}j:{if((c|0)==-1){break j}f=((c>>>0)%3|0?-1:2)+c|0;if((f|0)<0){break j}d=(f>>>0)/3|0;d=F[(F[F[a>>2]+96>>2]+L(d,12)|0)+(f-L(d,3)<<2)>>2]}if((d|0)!=(g|0)){c=-1;break g}k:{l:{e=((e>>>0)%3|0?-1:2)+e|0;if((e|0)>=0){d=(e>>>0)/3|0;if((c|0)!=-1){break l}c=-1;break g}e=-1;if((c|0)!=-1){break k}c=-1;break g}e=F[(F[F[a>>2]+96>>2]+L(d,12)|0)+(e-L(d,3)<<2)>>2]}d=c+1|0;d=(d>>>0)%3|0?d:c-2|0;if((d|0)>=0){g=(d>>>0)/3|0;d=F[(F[F[a>>2]+96>>2]+L(g,12)|0)+(d-L(g,3)<<2)>>2]}else{d=-1}if((d|0)!=(e|0)){c=-1;break g}e=h;j=(c>>>0)/3|0;d=F[a+56>>2]+(j>>>3&268435452)|0;g=F[d>>2];f=1<>2]-4|0;d=F[e>>2];h=F[a+56>>2]+(d>>>3&536870908)|0;g=F[h>>2];o=h,p=Qj(d)&g,F[o>>2]=p;F[i+12>>2]=e}e=1;d=l;l=0;if(d){continue}break a}break}k=-1;ce(a,-1);break a}va();V()}za();V()}F[((b<<2)+a|0)+44>>2]=k;c=F[i+12>>2];b=F[i+8>>2];m:{if((c|0)==(b|0)){break m}e=c-b|0;c=e>>2;d=c>>>0>1?c:1;k=d&1;a=F[a+56>>2];c=0;if(e>>>0>=8){e=d&-2;j=0;while(1){d=c<<2;h=F[d+b>>2];l=a+(h>>>3&536870908)|0;i=F[l>>2];o=l,p=Qj(h)&i,F[o>>2]=p;d=F[b+(d|4)>>2];h=a+(d>>>3&536870908)|0;l=F[h>>2];o=h,p=Qj(d)&l,F[o>>2]=p;c=c+2|0;j=j+2|0;if((e|0)!=(j|0)){continue}break}}if(!k){break m}b=F[b+(c<<2)>>2];a=a+(b>>>3&536870908)|0;c=F[a>>2];o=a,p=Qj(b)&c,F[o>>2]=p}}function ve(a,b){var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0;if((b|0)==-1){return 1}d=(b>>>0)/3|0;if(!(F[F[a+24>>2]+(d>>>3&268435452)>>2]>>>d&1)){c=F[a+48>>2];F[a+52>>2]=c;a:{if((c|0)!=F[a+56>>2]){F[c>>2]=b;F[a+52>>2]=c+4;break a}e=sa(4);F[e>>2]=b;f=e+4|0;F[a+56>>2]=f;F[a+52>>2]=f;F[a+48>>2]=e;if(!c){break a}ra(c)}e=-1;f=F[a+4>>2];c=b+1|0;g=(c>>>0)%3|0?c:b-2|0;if((g|0)!=-1){e=F[F[f>>2]+(g<<2)>>2]}b:{h=b-L(d,3)|0;if(h){c=b-1|0;break b}c=b+2|0;if((c|0)!=-1){break b}return 0}if((e|0)==-1){return 0}d=F[F[f>>2]+(c<<2)>>2];if((d|0)==-1){return 0}c=F[a+36>>2];f=c+(e>>>3&536870908)|0;i=F[f>>2];j=1<>2]=i|j;Xa(a+8|0,e,g);c=F[a+36>>2]}c=(d>>>3&536870908)+c|0;e=F[c>>2];f=1<>2]=e|f;Xa(a+8|0,d,(h?-1:2)+b|0)}c=F[a+52>>2];if((c|0)==F[a+48>>2]){return 1}j=a+8|0;while(1){c:{d:{c=c-4|0;b=F[c>>2];if((b|0)==-1){break d}d=(b>>>0)/3|0;e=F[a+24>>2]+(d>>>3&268435452)|0;f=F[e>>2];d=1<>2]=d|f;while(1){d=F[a+4>>2];c=F[F[d>>2]+(b<<2)>>2];if((c|0)==-1){return 0}e:{f:{e=F[a+36>>2]+(c>>>3&536870908)|0;f=F[e>>2];g=1<>2]+(c<<2)>>2];h:{if((h|0)==-1){break h}i=h+1|0;h=(i>>>0)%3|0?i:h-2|0;if((h|0)==-1){break h}d=F[F[d+12>>2]+(h<<2)>>2];if((d|0)!=-1){break g}}F[e>>2]=f|g;Xa(j,c,b);break f}F[e>>2]=f|g;Xa(j,c,b);c=d+1|0;if((((c>>>0)%3|0?c:d-2|0)|0)==-1){break f}d=b-2|0;c=b+1|0;b=-1;c=(c>>>0)%3|0?c:d;if((c|0)!=-1){b=F[F[F[a+4>>2]+12>>2]+(c<<2)>>2]}c=(b>>>0)/3|0;g=1<>2];h=c>>>5|0;d=F[e+(h<<2)>>2];break e}c=-1;f=F[a+4>>2];d=b+1|0;d=(d>>>0)%3|0?d:b-2|0;if((d|0)!=-1){c=F[F[f+12>>2]+(d<<2)>>2]}i:{j:{if((b>>>0)%3|0){e=b-1|0;break j}e=b+2|0;b=-1;if((e|0)==-1){break i}}b=F[F[f+12>>2]+(e<<2)>>2]}i=(b|0)==-1;f=i?-1:(b>>>0)/3|0;k:{if((c|0)!=-1){e=F[a+24>>2];g=(c>>>0)/3|0;h=g>>>5|0;d=F[e+(h<<2)>>2];g=1<>2];h=f>>>5|0;d=F[e+(h<<2)>>2];if(!(g&d)){break e}}c=F[a+52>>2]-4|0;F[a+52>>2]=c;break c}if(i){b=c;break e}if(F[(f>>>3&536870908)+e>>2]>>>f&1){b=c;break e}d=F[a+52>>2];F[d-4>>2]=b;if((d|0)!=F[a+56>>2]){F[d>>2]=c;c=d+4|0;break d}l:{e=F[a+48>>2];d=d-e|0;g=d>>2;b=g+1|0;if(b>>>0<1073741824){f=d>>1;f=d>>>0<2147483644?b>>>0>>0?f:b:1073741823;if(f){if(f>>>0>=1073741824){break l}b=sa(f<<2)}else{b=0}g=b+(g<<2)|0;F[g>>2]=c;c=g+4|0;if((d|0)>0){ta(b,e,d)}F[a+56>>2]=b+(f<<2);F[a+52>>2]=c;F[a+48>>2]=b;if(!e){break c}ra(e);c=F[a+52>>2];break c}va();V()}za();V()}F[(h<<2)+e>>2]=d|g;if((b|0)!=-1){continue}break}return 0}F[a+52>>2]=c}if(F[a+48>>2]!=(c|0)){continue}break}}return 1}function rj(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0;g=ea-32|0;ea=g;F[a+68>>2]=f;d=F[a+56>>2];e=F[d>>2];d=F[d+4>>2];F[g+24>>2]=0;F[g+16>>2]=0;F[g+20>>2]=0;a:{d=d-e|0;if((d|0)>0){m=a+60|0;d=d>>>2|0;n=d>>>0>1?d:1;o=a+112|0;while(1){e=F[a+56>>2];d=F[e>>2];if(F[e+4>>2]-d>>2>>>0<=k>>>0){break a}Ob(m,F[d+(k<<2)>>2],g+16|0);e=F[g+20>>2];d=e>>31;f=F[g+16>>2];h=f>>31;j=F[g+24>>2];i=j>>31;i=(i^j)-i|0;h=i+((d^e)-d+((f^h)-h)|0)|0;d=0;d=h>>>0>>0?1:d;b:{if(!(d|h)){F[g+16>>2]=F[a+108>>2];break b}i=F[a+108>>2];l=i>>31;f=Nj(Mj(i,l,f,f>>31),fa,h,d);F[g+16>>2]=f;d=Nj(Mj(i,l,e,e>>31),fa,h,d);F[g+20>>2]=d;e=d;d=d>>31;e=(e^d)-d|0;d=f>>31;d=e+((d^f)-d|0)|0;if((j|0)>=0){F[g+24>>2]=i-d;break b}F[g+24>>2]=d-i}d=Da(o);f=F[g+16>>2];c:{if(d){F[g+24>>2]=0-F[g+24>>2];e=0-F[g+20>>2]|0;F[g+20>>2]=e;f=0-f|0;F[g+16>>2]=f;break c}e=F[g+20>>2]}d:{if((f|0)>=0){f=F[a+108>>2];d=f+F[g+24>>2]|0;f=e+f|0;break d}e:{if((e|0)<0){d=F[g+24>>2];f=d>>31;f=(d^f)-f|0;break e}d=F[g+24>>2];f=d>>31;f=F[a+100>>2]+(f-(d^f)|0)|0}if((d|0)<0){d=e>>31;d=(d^e)-d|0;break d}d=e>>31;d=F[a+100>>2]+(d-(d^e)|0)|0}e=F[a+100>>2];f:{if(!(d|f)){d=e;f=d;break f}if(!((d|0)!=(e|0)|f)){f=d;break f}if(!((e|0)!=(f|0)|d)){d=f;break f}g:{if(f){break g}h=F[a+108>>2];if((h|0)>=(d|0)){break g}d=(h<<1)-d|0;f=0;break f}h:{if((e|0)!=(f|0)){break h}h=F[a+108>>2];if((h|0)<=(d|0)){break h}d=(h<<1)-d|0;break f}i:{if((d|0)!=(e|0)){break i}e=F[a+108>>2];if((e|0)<=(f|0)){break i}f=(e<<1)-f|0;break f}if(d){break f}d=0;e=F[a+108>>2];if((e|0)>=(f|0)){break f}f=(e<<1)-f|0}F[g+12>>2]=d;F[g+8>>2]=f;j:{if(F[a+8>>2]<=0){break j}h=F[a+32>>2];f=0;while(1){d=f<<2;e=F[d+(g+8|0)>>2];j=F[a+16>>2];k:{if((e|0)>(j|0)){F[d+h>>2]=j;break k}d=d+h|0;j=F[a+12>>2];if((j|0)>(e|0)){F[d>>2]=j;break k}F[d>>2]=e}f=f+1|0;e=F[a+8>>2];if((f|0)<(e|0)){continue}break}d=0;if((e|0)<=0){break j}e=k<<3;j=e+c|0;i=b+e|0;while(1){f=d<<2;e=f+j|0;f=F[f+i>>2]+F[f+h>>2]|0;F[e>>2]=f;l:{if((f|0)>F[a+16>>2]){f=f-F[a+20>>2]|0}else{if((f|0)>=F[a+12>>2]){break l}f=f+F[a+20>>2]|0}F[e>>2]=f}d=d+1|0;if((d|0)>2]){continue}break}}k=k+1|0;if((n|0)!=(k|0)){continue}break}}ea=g+32|0;return 1}Ea();V()}function bj(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0;g=ea-32|0;ea=g;F[a+68>>2]=f;d=F[a+56>>2];e=F[d>>2];d=F[d+4>>2];F[g+24>>2]=0;F[g+16>>2]=0;F[g+20>>2]=0;a:{d=d-e|0;if((d|0)>0){m=a+60|0;d=d>>>2|0;n=d>>>0>1?d:1;o=a+112|0;while(1){e=F[a+56>>2];d=F[e>>2];if(F[e+4>>2]-d>>2>>>0<=k>>>0){break a}Mb(m,F[d+(k<<2)>>2],g+16|0);e=F[g+20>>2];d=e>>31;f=F[g+16>>2];h=f>>31;j=F[g+24>>2];i=j>>31;i=(i^j)-i|0;h=i+((d^e)-d+((f^h)-h)|0)|0;d=0;d=h>>>0>>0?1:d;b:{if(!(d|h)){F[g+16>>2]=F[a+108>>2];break b}i=F[a+108>>2];l=i>>31;f=Nj(Mj(i,l,f,f>>31),fa,h,d);F[g+16>>2]=f;d=Nj(Mj(i,l,e,e>>31),fa,h,d);F[g+20>>2]=d;e=d;d=d>>31;e=(e^d)-d|0;d=f>>31;d=e+((d^f)-d|0)|0;if((j|0)>=0){F[g+24>>2]=i-d;break b}F[g+24>>2]=d-i}d=Da(o);f=F[g+16>>2];c:{if(d){F[g+24>>2]=0-F[g+24>>2];e=0-F[g+20>>2]|0;F[g+20>>2]=e;f=0-f|0;F[g+16>>2]=f;break c}e=F[g+20>>2]}d:{if((f|0)>=0){f=F[a+108>>2];d=f+F[g+24>>2]|0;f=e+f|0;break d}e:{if((e|0)<0){d=F[g+24>>2];f=d>>31;f=(d^f)-f|0;break e}d=F[g+24>>2];f=d>>31;f=F[a+100>>2]+(f-(d^f)|0)|0}if((d|0)<0){d=e>>31;d=(d^e)-d|0;break d}d=e>>31;d=F[a+100>>2]+(d-(d^e)|0)|0}e=F[a+100>>2];f:{if(!(d|f)){d=e;f=d;break f}if(!((d|0)!=(e|0)|f)){f=d;break f}if(!((e|0)!=(f|0)|d)){d=f;break f}g:{if(f){break g}h=F[a+108>>2];if((h|0)>=(d|0)){break g}d=(h<<1)-d|0;f=0;break f}h:{if((e|0)!=(f|0)){break h}h=F[a+108>>2];if((h|0)<=(d|0)){break h}d=(h<<1)-d|0;break f}i:{if((d|0)!=(e|0)){break i}e=F[a+108>>2];if((e|0)<=(f|0)){break i}f=(e<<1)-f|0;break f}if(d){break f}d=0;e=F[a+108>>2];if((e|0)>=(f|0)){break f}f=(e<<1)-f|0}F[g+12>>2]=d;F[g+8>>2]=f;j:{if(F[a+8>>2]<=0){break j}h=F[a+32>>2];f=0;while(1){d=f<<2;e=F[d+(g+8|0)>>2];j=F[a+16>>2];k:{if((e|0)>(j|0)){F[d+h>>2]=j;break k}d=d+h|0;j=F[a+12>>2];if((j|0)>(e|0)){F[d>>2]=j;break k}F[d>>2]=e}f=f+1|0;e=F[a+8>>2];if((f|0)<(e|0)){continue}break}d=0;if((e|0)<=0){break j}e=k<<3;j=e+c|0;i=b+e|0;while(1){f=d<<2;e=f+j|0;f=F[f+i>>2]+F[f+h>>2]|0;F[e>>2]=f;l:{if((f|0)>F[a+16>>2]){f=f-F[a+20>>2]|0}else{if((f|0)>=F[a+12>>2]){break l}f=f+F[a+20>>2]|0}F[e>>2]=f}d=d+1|0;if((d|0)>2]){continue}break}}k=k+1|0;if((n|0)!=(k|0)){continue}break}}ea=g+32|0;return 1}Ea();V()}function ld(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0;l=ga[F[F[a>>2]+44>>2]](a)|0;a:{if((l|0)<=0){break a}h=F[b+4>>2]-F[b>>2]>>2;e=ea+-64|0;ea=e;d=Gb(e);f=L(F[3400],l);kc(d,F[F[a+8>>2]+56>>2],l<<24>>24,5,0,f,f>>31);d=dc(sa(96),d);D[d+84|0]=1;F[d+72>>2]=F[d+68>>2];rb(d,h);F[d+60>>2]=F[F[a+8>>2]+60>>2];f=F[a+16>>2];F[a+16>>2]=d;if(f){Ja(f)}ea=e- -64|0;d=F[a+16>>2];if(!F[d+80>>2]){break a}j=F[F[d>>2]>>2];if(!j){break a}i=F[c+12>>2];g=i;e=F[c+20>>2];k=F[c+8>>2];f=F[c+16>>2];if((g|0)<=(e|0)&k>>>0<=f>>>0|(e|0)>(g|0)){break a}h=L(h,l);j=j+F[d+48>>2]|0;m=F[c>>2];n=G[m+f|0];d=e;g=f+1|0;d=g?d:d+1|0;F[c+16>>2]=g;F[c+20>>2]=d;b:{c:{if(n){if(id(h,l,c,j)){break c}break a}if((d|0)>=(i|0)&g>>>0>=k>>>0|(d|0)>(i|0)){break a}d=G[g+m|0];f=f+2|0;e=f>>>0<2?e+1|0:e;F[c+16>>2]=f;F[c+20>>2]=e;e=F[F[a+16>>2]+64>>2];e=F[e+4>>2]-F[e>>2]|0;if((d|0)==F[3400]){d=h<<2;if(d>>>0>e>>>0){break a}f=F[c+12>>2];e=F[c+20>>2];i=F[c+16>>2];g=d+i|0;e=g>>>0>>0?e+1|0:e;if(g>>>0>I[c+8>>2]&(e|0)>=(f|0)|(e|0)>(f|0)){break a}ta(j,i+F[c>>2]|0,d);e=d;f=d+F[c+16>>2]|0;d=F[c+20>>2];F[c+16>>2]=f;F[c+20>>2]=e>>>0>f>>>0?d+1|0:d;break c}if(e>>>0>>0){break a}e=F[c+8>>2];i=F[c+16>>2];f=i;g=e-f|0;f=e>>>0>>0;e=F[c+20>>2];f=F[c+12>>2]-(f+e|0)|0;k=Mj(d,0,h,0)>>>0>g>>>0;g=fa;if(k&(g|0)>=(f|0)|(f|0)<(g|0)){break a}f=1;if(!h){break b}g=0;while(1){m=d+i|0;k=F[c+12>>2];e=d>>>0>m>>>0?e+1|0:e;if(m>>>0>I[c+8>>2]&(k|0)<=(e|0)|(e|0)>(k|0)){return 0}ta(j+(g<<2)|0,i+F[c>>2]|0,d);e=F[c+20>>2];i=d+F[c+16>>2]|0;e=i>>>0>>0?e+1|0:e;F[c+16>>2]=i;F[c+20>>2]=e;g=g+1|0;if((h|0)!=(g|0)){continue}break}}f=1;if(!h){break b}d=F[a+20>>2];if(d){f=0;if(ga[F[F[d>>2]+32>>2]](d)|0){break b}}d=0;g=0;d:{if((h|0)<=0){break d}if((h|0)!=1){i=h&-2;while(1){e=d<<2;f=F[e+j>>2];F[e+j>>2]=0-(f&1)^f>>>1;f=e|4;e=F[f+j>>2];F[f+j>>2]=0-(e&1)^e>>>1;d=d+2|0;g=g+2|0;if((i|0)!=(g|0)){continue}break}}if(!(h&1)){break d}e=d<<2;d=F[e+j>>2];F[e+j>>2]=0-(d&1)^d>>>1}f=0}d=F[a+20>>2];e:{if(!d){break e}if(!(ga[F[F[d>>2]+40>>2]](d,c)|0)){break a}if(f){break e}a=F[a+20>>2];if(!(ga[F[F[a>>2]+44>>2]](a,j,j,h,l,F[b>>2])|0)){break a}}o=1}return o|0}function he(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0;h=ea-80|0;ea=h;a:{b:{if(G[F[a+28>>2]+36|0]<=1){d=F[b+20>>2];c=F[b+16>>2];e=c+4|0;d=e>>>0<4?d+1|0:d;k=F[b+12>>2];if((k|0)<=(d|0)&e>>>0>I[b+8>>2]|(d|0)>(k|0)){break a}c=c+F[b>>2]|0;i=G[c|0]|G[c+1|0]<<8|(G[c+2|0]<<16|G[c+3|0]<<24);F[b+16>>2]=e;F[b+20>>2]=d;break b}if(!Mc(1,h+76|0,b)){break a}i=F[h+76>>2]}if(!i){break a}d=F[b+8>>2];c=F[b+16>>2];d=Mj(d-c|0,F[b+12>>2]-(F[b+20>>2]+(c>>>0>d>>>0)|0)|0,5,0);c=fa;if(d>>>0>>0&(c|0)<=0|(c|0)<0){break a}c=F[a+4>>2];d=F[a+8>>2]-c>>2;c:{if(d>>>0>>0){Aa(a+4|0,i-d|0);break c}if(d>>>0<=i>>>0){break c}F[a+8>>2]=c+(i<<2)}r=a+16|0;m=F[a+32>>2];f=1;while(1){d:{g=F[b+12>>2];c=g;d=F[b+20>>2];o=F[b+8>>2];j=F[b+16>>2];if((c|0)<=(d|0)&o>>>0<=j>>>0|(c|0)<(d|0)){break d}p=F[b>>2];k=G[p+j|0];c=d;e=j+1|0;c=e?c:c+1|0;F[b+16>>2]=e;F[b+20>>2]=c;if((c|0)>=(g|0)&e>>>0>=o>>>0|(c|0)>(g|0)){break d}e=G[e+p|0];c=d;l=j+2|0;c=l>>>0<2?c+1|0:c;F[b+16>>2]=l;F[b+20>>2]=c;if((c|0)>=(g|0)&l>>>0>=o>>>0|(c|0)>(g|0)){break d}l=G[l+p|0];c=d;q=j+3|0;c=q>>>0<3?c+1|0:c;F[b+16>>2]=q;F[b+20>>2]=c;if((c|0)>=(g|0)&q>>>0>=o>>>0|(c|0)>(g|0)){break d}g=G[q+p|0];c=d;d=j+4|0;c=d>>>0<4?c+1|0:c;F[b+16>>2]=d;F[b+20>>2]=c;if(!l|((e-12&255)>>>0<245|k>>>0>4)){break d}j=Gb(h+8|0);o=l<<24>>24;g=(g|0)!=0;d=e-1|0;if(d>>>0<=10){c=F[(d<<2)+13584>>2]}else{c=-1}d=L(c,l);kc(j,k,o,e,g,d,d>>31);d=H[F[a+28>>2]+36>>1];e:{if(((d<<8|d>>>8)&65535)>>>0<=258){c=F[b+20>>2];d=F[b+16>>2];e=d+2|0;c=e>>>0<2?c+1|0:c;k=F[b+12>>2];if((k|0)<=(c|0)&e>>>0>I[b+8>>2]|(c|0)>(k|0)){break d}d=d+F[b>>2]|0;f=G[d|0]|G[d+1|0]<<8;F[b+16>>2]=e;F[b+20>>2]=c;break e}if(!Mc(1,h+4|0,b)){break d}f=F[h+4>>2]}F[h+68>>2]=f;d=dc(sa(96),j);ga[F[F[m>>2]+8>>2]](m,F[m+12>>2]-F[m+8>>2]>>2,d);d=(F[m+12>>2]-F[m+8>>2]>>2)-1|0;e=d<<2;F[F[e+F[m+8>>2]>>2]+60>>2]=f;F[F[a+4>>2]+(n<<2)>>2]=d;f=F[a+16>>2];c=F[a+20>>2]-f>>2;f:{if((c|0)>(d|0)){break f}F[h>>2]=-1;d=d+1|0;if(d>>>0>c>>>0){Ia(r,d-c|0,h);f=F[r>>2];break f}if(c>>>0<=d>>>0){break f}F[a+20>>2]=(d<<2)+f}F[e+f>>2]=n;n=n+1|0;f=n>>>0>>0;if((i|0)!=(n|0)){continue}}break}n=!f}ea=h+80|0;return n&1}function fb(a,b){var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0;g=ea-32|0;ea=g;a:{b:{if(F[a+8>>2]<<5>>>0>=b>>>0){break b}if((b|0)<0){break a}b=(b-1>>>5|0)+1|0;c=sa(b<<2);F[g+24>>2]=b;F[g+20>>2]=0;F[g+16>>2]=c;b=F[a>>2];F[g+12>>2]=0;F[g+8>>2]=b;c=F[a+4>>2];F[g+4>>2]=c&31;F[g>>2]=b+(c>>>3&536870908);f=ea-32|0;ea=f;i=F[g+4>>2];e=F[g+12>>2];j=F[g>>2];h=F[g+8>>2];b=(i-e|0)+(j-h<<3)|0;d=F[g+20>>2];c=b+d|0;F[g+20>>2]=c;if(!((c-1^d-1)>>>0<32?d:0)){F[F[g+16>>2]+((c>>>0<33?0:c-1>>>5|0)<<2)>>2]=0}c=F[g+16>>2]+(d>>>3&536870908)|0;d=d&31;c:{if((d|0)==(e|0)){if((b|0)<=0){break c}if(e){i=32-e|0;d=(b|0)<(i|0)?b:i;i=-1<>>i-d;F[c>>2]=F[c>>2]&(i^-1)|i&F[h>>2];b=b-d|0;h=h+4|0;c=c+(d+e>>>3&536870908)|0}j=c;e=(b|0)/32|0;c=e<<2;d=Ra(j,h,c);b=b-(e<<5)|0;if((b|0)<=0){break c}e=c+d|0;b=-1>>>32-b|0;F[e>>2]=F[e>>2]&(b^-1)|b&F[c+h>>2];break c}F[f+28>>2]=e;F[f+24>>2]=h;F[f+20>>2]=i;F[f+16>>2]=j;F[f+12>>2]=d;F[f+8>>2]=c;b=F[f+28>>2];c=F[f+24>>2];h=(F[f+20>>2]-b|0)+(F[f+16>>2]-c<<3)|0;d:{if((h|0)<=0){b=F[f+12>>2];break d}e:{if(!b){b=F[f+12>>2];break e}e=F[f+12>>2];j=32-e|0;k=32-b|0;d=(h|0)<(k|0)?h:k;i=d>>>0>j>>>0?j:d;l=F[f+8>>2];m=F[l>>2]&(-1<>>j-i^-1);j=F[c>>2]&(-1<>>k-d);F[l>>2]=m|(b>>>0>>0?j<>>b-e|0);c=e+i|0;b=c&31;F[f+12>>2]=b;e=l+(c>>>3&536870908)|0;F[f+8>>2]=e;c=d-i|0;if((c|0)>0){F[e>>2]=F[e>>2]&(-1>>>32-c^-1)|j>>>i+F[f+28>>2];F[f+12>>2]=c;b=c}h=h-d|0;c=F[f+24>>2]+4|0;F[f+24>>2]=c}i=-1<=32){j=i^-1;while(1){d=F[f+8>>2];c=F[c>>2];F[d>>2]=j&F[d>>2]|c<>2]=d+4;F[d+4>>2]=i&F[d+4>>2]|c>>>e;c=F[f+24>>2]+4|0;F[f+24>>2]=c;d=h>>>0>63;h=h-32|0;if(d){continue}break}}if((h|0)<=0){break d}d=F[f+8>>2];j=e;e=(e|0)<(h|0)?e:h;j=F[d>>2]&(i&-1>>>j-e^-1);i=F[c>>2]&-1>>>32-h;F[d>>2]=j|i<>2]=b;d=d+(c>>>3&536870908)|0;F[f+8>>2]=d;c=h-e|0;if((c|0)<=0){break d}F[d>>2]=F[d>>2]&(-1>>>32-c^-1)|i>>>e;F[f+12>>2]=c;b=c}c=F[f+8>>2];F[f+4>>2]=b;F[f>>2]=c}ea=f+32|0;b=F[a>>2];F[a>>2]=F[g+16>>2];F[g+16>>2]=b;c=F[a+4>>2];F[a+4>>2]=F[g+20>>2];F[g+20>>2]=c;c=F[a+8>>2];F[a+8>>2]=F[g+24>>2];F[g+24>>2]=c;if(!b){break b}ra(b)}ea=g+32|0;return}va();V()}function Ke(a,b){var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0;c=H[b+38>>1];a:{if(!c){break a}b:{if(c>>>0<=511){d=F[b+12>>2];c=F[b+20>>2];e=F[b+16>>2];g=e+4|0;c=g>>>0<4?c+1|0:c;if(g>>>0>I[b+8>>2]&(c|0)>=(d|0)|(c|0)>(d|0)){break a}c=e+F[b>>2]|0;f=G[c|0]|G[c+1|0]<<8|(G[c+2|0]<<16|G[c+3|0]<<24);F[a+12>>2]=f;c=F[b+20>>2];d=F[b+16>>2]+4|0;c=d>>>0<4?c+1|0:c;e=d;F[b+16>>2]=d;F[b+20>>2]=c;break b}if(!lb(1,a+12|0,b)){break a}e=F[b+16>>2];c=F[b+20>>2];f=F[a+12>>2]}d=F[b+8>>2];g=d-e|0;c=F[b+12>>2]-(c+(d>>>0>>0)|0)|0;if(g>>>0>>6>>>0&(c|0)<=0|(c|0)<0){break a}d=F[a>>2];c=F[a+4>>2]-d>>2;c:{if(c>>>0>>0){Aa(a,f-c|0);f=F[a+12>>2];break c}if(c>>>0<=f>>>0){break c}F[a+4>>2]=d+(f<<2)}if(!f){return 1}e=F[b+16>>2];c=F[b+20>>2];k=F[a>>2];l=F[b+8>>2];j=F[b+12>>2];g=0;while(1){if((c|0)>=(j|0)&e>>>0>=l>>>0|(c|0)>(j|0)){return 0}m=F[b>>2];i=G[m+e|0];d=e+1|0;c=d?c:c+1|0;e=d;F[b+16>>2]=d;F[b+20>>2]=c;d=i>>>2|0;h=0;d:{e:{f:{g:{n=i&3;switch(n|0){case 0:break e;case 3:break g;default:break f}}d=d+g|0;if(d>>>0>=f>>>0){return 0}ua(k+(g<<2)|0,0,(i&252)+4|0);g=d;break d}while(1){if((c|0)>=(j|0)&e>>>0>=l>>>0|(c|0)>(j|0)){break a}f=G[e+m|0];e=e+1|0;c=e?c:c+1|0;F[b+16>>2]=e;F[b+20>>2]=c;d=f<<(h<<3|6)|d;h=h+1|0;if((n|0)!=(h|0)){continue}break}}F[k+(g<<2)>>2]=d}f=F[a+12>>2];g=g+1|0;if(f>>>0>g>>>0){continue}break}b=a+16|0;j=F[a>>2];d=F[a+16>>2];c=F[a+20>>2]-d|0;h:{if(c>>>0<=16383){Aa(b,4096-(c>>>2|0)|0);break h}if((c|0)==16384){break h}F[a+20>>2]=d+16384}c=a+28|0;g=F[c>>2];d=F[a+32>>2]-g>>3;i:{if(d>>>0>>0){tb(c,f-d|0);g=F[c>>2];break i}if(d>>>0>f>>>0){F[a+32>>2]=(f<<3)+g}if(!f){break a}}e=F[b>>2];b=0;a=0;while(1){c=j+(b<<2)|0;h=F[c>>2];d=a;i=(b<<3)+g|0;F[i+4>>2]=d;F[i>>2]=h;c=F[c>>2];a=c+d|0;if(a>>>0>4096){break a}j:{if(a>>>0<=d>>>0){break j}h=0;i=c&7;if(i){while(1){F[e+(d<<2)>>2]=b;d=d+1|0;h=h+1|0;if((i|0)!=(h|0)){continue}break}}if(c-1>>>0<=6){break j}while(1){c=e+(d<<2)|0;F[c>>2]=b;F[c+28>>2]=b;F[c+24>>2]=b;F[c+20>>2]=b;F[c+16>>2]=b;F[c+12>>2]=b;F[c+8>>2]=b;F[c+4>>2]=b;d=d+8|0;if((d|0)!=(a|0)){continue}break}}b=b+1|0;if((f|0)!=(b|0)){continue}break}o=(a|0)==4096}return o}function Li(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0;g=ea-48|0;ea=g;d=F[a+8>>2];if(d-31>>>0>=4294967267){F[a+76>>2]=d;e=-1<>2]=d;F[a+80>>2]=e^-1;F[a+92>>2]=(d|0)/2;J[a+88>>2]=M(2)/M(d|0)}F[a+52>>2]=f;d=F[a+40>>2];e=F[d>>2];d=F[d+4>>2];F[g+16>>2]=0;F[g+8>>2]=0;F[g+12>>2]=0;a:{d=d-e|0;if((d|0)>0){m=a+8|0;n=a+44|0;d=d>>>2|0;o=d>>>0>1?d:1;p=a+96|0;while(1){e=F[a+40>>2];d=F[e>>2];if(F[e+4>>2]-d>>2>>>0<=j>>>0){break a}Ob(n,F[d+(j<<2)>>2],g+8|0);e=F[g+12>>2];d=e>>31;f=F[g+8>>2];h=f>>31;k=F[g+16>>2];i=k>>31;i=(i^k)-i|0;h=i+((d^e)-d+((f^h)-h)|0)|0;d=0;d=h>>>0>>0?1:d;b:{if(!(d|h)){F[g+8>>2]=F[a+92>>2];break b}i=F[a+92>>2];l=i>>31;f=Nj(Mj(i,l,f,f>>31),fa,h,d);F[g+8>>2]=f;d=Nj(Mj(i,l,e,e>>31),fa,h,d);F[g+12>>2]=d;e=d>>31;e=(d^e)-e|0;d=f>>31;d=e+((d^f)-d|0)|0;if((k|0)>=0){F[g+16>>2]=i-d;break b}F[g+16>>2]=d-i}d=Da(p);f=F[g+8>>2];c:{if(d){F[g+16>>2]=0-F[g+16>>2];e=0-F[g+12>>2]|0;F[g+12>>2]=e;f=0-f|0;F[g+8>>2]=f;break c}e=F[g+12>>2]}d:{if((f|0)>=0){f=F[a+92>>2];d=f+F[g+16>>2]|0;f=e+f|0;break d}e:{if((e|0)<0){d=F[g+16>>2];f=d>>31;f=(d^f)-f|0;break e}d=F[g+16>>2];f=d>>31;f=F[a+84>>2]+(f-(d^f)|0)|0}if((d|0)<0){d=e>>31;d=(d^e)-d|0;break d}d=e>>31;d=F[a+84>>2]+(d-(d^e)|0)|0}e=F[a+84>>2];f:{if(!(d|f)){d=e;f=d;break f}if(!((d|0)!=(e|0)|f)){f=d;break f}if(!((e|0)!=(f|0)|d)){d=f;break f}g:{if(f){break g}h=F[a+92>>2];if((h|0)>=(d|0)){break g}d=(h<<1)-d|0;f=0;break f}h:{if((e|0)!=(f|0)){break h}h=F[a+92>>2];if((h|0)<=(d|0)){break h}d=(h<<1)-d|0;break f}i:{if((d|0)!=(e|0)){break i}e=F[a+92>>2];if((e|0)<=(f|0)){break i}f=(e<<1)-f|0;break f}if(d){break f}d=0;e=F[a+92>>2];if((e|0)>=(f|0)){break f}f=(e<<1)-f|0}e=j<<3;h=e+b|0;k=F[h+4>>2];h=F[h>>2];F[g+36>>2]=d;F[g+32>>2]=f;F[g+24>>2]=h;F[g+28>>2]=k;qc(g+40|0,m,g+32|0,g+24|0);d=c+e|0;F[d>>2]=F[g+40>>2];F[d+4>>2]=F[g+44>>2];j=j+1|0;if((o|0)!=(j|0)){continue}break}}ea=g+48|0;return 1}Ea();V()}function Gi(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0;g=ea-48|0;ea=g;d=F[a+8>>2];if(d-31>>>0>=4294967267){F[a+76>>2]=d;e=-1<>2]=d;F[a+80>>2]=e^-1;F[a+92>>2]=(d|0)/2;J[a+88>>2]=M(2)/M(d|0)}F[a+52>>2]=f;d=F[a+40>>2];e=F[d>>2];d=F[d+4>>2];F[g+16>>2]=0;F[g+8>>2]=0;F[g+12>>2]=0;a:{d=d-e|0;if((d|0)>0){m=a+8|0;n=a+44|0;d=d>>>2|0;o=d>>>0>1?d:1;p=a+96|0;while(1){e=F[a+40>>2];d=F[e>>2];if(F[e+4>>2]-d>>2>>>0<=j>>>0){break a}Mb(n,F[d+(j<<2)>>2],g+8|0);e=F[g+12>>2];d=e>>31;f=F[g+8>>2];h=f>>31;k=F[g+16>>2];i=k>>31;i=(i^k)-i|0;h=i+((d^e)-d+((f^h)-h)|0)|0;d=0;d=h>>>0>>0?1:d;b:{if(!(d|h)){F[g+8>>2]=F[a+92>>2];break b}i=F[a+92>>2];l=i>>31;f=Nj(Mj(i,l,f,f>>31),fa,h,d);F[g+8>>2]=f;d=Nj(Mj(i,l,e,e>>31),fa,h,d);F[g+12>>2]=d;e=d>>31;e=(d^e)-e|0;d=f>>31;d=e+((d^f)-d|0)|0;if((k|0)>=0){F[g+16>>2]=i-d;break b}F[g+16>>2]=d-i}d=Da(p);f=F[g+8>>2];c:{if(d){F[g+16>>2]=0-F[g+16>>2];e=0-F[g+12>>2]|0;F[g+12>>2]=e;f=0-f|0;F[g+8>>2]=f;break c}e=F[g+12>>2]}d:{if((f|0)>=0){f=F[a+92>>2];d=f+F[g+16>>2]|0;f=e+f|0;break d}e:{if((e|0)<0){d=F[g+16>>2];f=d>>31;f=(d^f)-f|0;break e}d=F[g+16>>2];f=d>>31;f=F[a+84>>2]+(f-(d^f)|0)|0}if((d|0)<0){d=e>>31;d=(d^e)-d|0;break d}d=e>>31;d=F[a+84>>2]+(d-(d^e)|0)|0}e=F[a+84>>2];f:{if(!(d|f)){d=e;f=d;break f}if(!((d|0)!=(e|0)|f)){f=d;break f}if(!((e|0)!=(f|0)|d)){d=f;break f}g:{if(f){break g}h=F[a+92>>2];if((h|0)>=(d|0)){break g}d=(h<<1)-d|0;f=0;break f}h:{if((e|0)!=(f|0)){break h}h=F[a+92>>2];if((h|0)<=(d|0)){break h}d=(h<<1)-d|0;break f}i:{if((d|0)!=(e|0)){break i}e=F[a+92>>2];if((e|0)<=(f|0)){break i}f=(e<<1)-f|0;break f}if(d){break f}d=0;e=F[a+92>>2];if((e|0)>=(f|0)){break f}f=(e<<1)-f|0}e=j<<3;h=e+b|0;k=F[h+4>>2];h=F[h>>2];F[g+36>>2]=d;F[g+32>>2]=f;F[g+24>>2]=h;F[g+28>>2]=k;qc(g+40|0,m,g+32|0,g+24|0);d=c+e|0;F[d>>2]=F[g+40>>2];F[d+4>>2]=F[g+44>>2];j=j+1|0;if((o|0)!=(j|0)){continue}break}}ea=g+48|0;return 1}Ea();V()}function Ui(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0;g=ea-48|0;ea=g;d=F[a+8>>2];if(d-31>>>0>=4294967267){F[a+76>>2]=d;e=-1<>2]=d;F[a+80>>2]=e^-1;F[a+92>>2]=(d|0)/2;J[a+88>>2]=M(2)/M(d|0)}F[a+52>>2]=f;d=F[a+40>>2];e=F[d>>2];d=F[d+4>>2];F[g+16>>2]=0;F[g+8>>2]=0;F[g+12>>2]=0;a:{d=d-e|0;if((d|0)>0){m=a+8|0;n=a+44|0;d=d>>>2|0;o=d>>>0>1?d:1;p=a+96|0;while(1){e=F[a+40>>2];d=F[e>>2];if(F[e+4>>2]-d>>2>>>0<=j>>>0){break a}Ob(n,F[d+(j<<2)>>2],g+8|0);e=F[g+12>>2];d=e>>31;f=F[g+8>>2];h=f>>31;k=F[g+16>>2];i=k>>31;i=(i^k)-i|0;h=i+((d^e)-d+((f^h)-h)|0)|0;d=0;d=h>>>0>>0?1:d;b:{if(!(d|h)){F[g+8>>2]=F[a+92>>2];break b}i=F[a+92>>2];l=i>>31;f=Nj(Mj(i,l,f,f>>31),fa,h,d);F[g+8>>2]=f;d=Nj(Mj(i,l,e,e>>31),fa,h,d);F[g+12>>2]=d;e=d>>31;e=(d^e)-e|0;d=f>>31;d=e+((d^f)-d|0)|0;if((k|0)>=0){F[g+16>>2]=i-d;break b}F[g+16>>2]=d-i}d=Da(p);f=F[g+8>>2];c:{if(d){F[g+16>>2]=0-F[g+16>>2];e=0-F[g+12>>2]|0;F[g+12>>2]=e;f=0-f|0;F[g+8>>2]=f;break c}e=F[g+12>>2]}d:{if((f|0)>=0){f=F[a+92>>2];d=f+F[g+16>>2]|0;f=e+f|0;break d}e:{if((e|0)<0){d=F[g+16>>2];f=d>>31;f=(d^f)-f|0;break e}d=F[g+16>>2];f=d>>31;f=F[a+84>>2]+(f-(d^f)|0)|0}if((d|0)<0){d=e>>31;d=(d^e)-d|0;break d}d=e>>31;d=F[a+84>>2]+(d-(d^e)|0)|0}e=F[a+84>>2];f:{if(!(d|f)){d=e;f=d;break f}if(!((d|0)!=(e|0)|f)){f=d;break f}if(!((e|0)!=(f|0)|d)){d=f;break f}g:{if(f){break g}h=F[a+92>>2];if((h|0)>=(d|0)){break g}d=(h<<1)-d|0;f=0;break f}h:{if((e|0)!=(f|0)){break h}h=F[a+92>>2];if((h|0)<=(d|0)){break h}d=(h<<1)-d|0;break f}i:{if((d|0)!=(e|0)){break i}e=F[a+92>>2];if((e|0)<=(f|0)){break i}f=(e<<1)-f|0;break f}if(d){break f}d=0;e=F[a+92>>2];if((e|0)>=(f|0)){break f}f=(e<<1)-f|0}e=j<<3;h=e+b|0;k=F[h+4>>2];F[g+40>>2]=F[h>>2];F[g+44>>2]=k;F[g+28>>2]=d;F[g+24>>2]=f;rc(g+32|0,m,g+24|0,g+40|0);d=c+e|0;F[d>>2]=F[g+32>>2];F[d+4>>2]=F[g+36>>2];j=j+1|0;if((o|0)!=(j|0)){continue}break}}ea=g+48|0;return 1}Ea();V()}function Pi(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0;g=ea-48|0;ea=g;d=F[a+8>>2];if(d-31>>>0>=4294967267){F[a+76>>2]=d;e=-1<>2]=d;F[a+80>>2]=e^-1;F[a+92>>2]=(d|0)/2;J[a+88>>2]=M(2)/M(d|0)}F[a+52>>2]=f;d=F[a+40>>2];e=F[d>>2];d=F[d+4>>2];F[g+16>>2]=0;F[g+8>>2]=0;F[g+12>>2]=0;a:{d=d-e|0;if((d|0)>0){m=a+8|0;n=a+44|0;d=d>>>2|0;o=d>>>0>1?d:1;p=a+96|0;while(1){e=F[a+40>>2];d=F[e>>2];if(F[e+4>>2]-d>>2>>>0<=j>>>0){break a}Mb(n,F[d+(j<<2)>>2],g+8|0);e=F[g+12>>2];d=e>>31;f=F[g+8>>2];h=f>>31;k=F[g+16>>2];i=k>>31;i=(i^k)-i|0;h=i+((d^e)-d+((f^h)-h)|0)|0;d=0;d=h>>>0>>0?1:d;b:{if(!(d|h)){F[g+8>>2]=F[a+92>>2];break b}i=F[a+92>>2];l=i>>31;f=Nj(Mj(i,l,f,f>>31),fa,h,d);F[g+8>>2]=f;d=Nj(Mj(i,l,e,e>>31),fa,h,d);F[g+12>>2]=d;e=d>>31;e=(d^e)-e|0;d=f>>31;d=e+((d^f)-d|0)|0;if((k|0)>=0){F[g+16>>2]=i-d;break b}F[g+16>>2]=d-i}d=Da(p);f=F[g+8>>2];c:{if(d){F[g+16>>2]=0-F[g+16>>2];e=0-F[g+12>>2]|0;F[g+12>>2]=e;f=0-f|0;F[g+8>>2]=f;break c}e=F[g+12>>2]}d:{if((f|0)>=0){f=F[a+92>>2];d=f+F[g+16>>2]|0;f=e+f|0;break d}e:{if((e|0)<0){d=F[g+16>>2];f=d>>31;f=(d^f)-f|0;break e}d=F[g+16>>2];f=d>>31;f=F[a+84>>2]+(f-(d^f)|0)|0}if((d|0)<0){d=e>>31;d=(d^e)-d|0;break d}d=e>>31;d=F[a+84>>2]+(d-(d^e)|0)|0}e=F[a+84>>2];f:{if(!(d|f)){d=e;f=d;break f}if(!((d|0)!=(e|0)|f)){f=d;break f}if(!((e|0)!=(f|0)|d)){d=f;break f}g:{if(f){break g}h=F[a+92>>2];if((h|0)>=(d|0)){break g}d=(h<<1)-d|0;f=0;break f}h:{if((e|0)!=(f|0)){break h}h=F[a+92>>2];if((h|0)<=(d|0)){break h}d=(h<<1)-d|0;break f}i:{if((d|0)!=(e|0)){break i}e=F[a+92>>2];if((e|0)<=(f|0)){break i}f=(e<<1)-f|0;break f}if(d){break f}d=0;e=F[a+92>>2];if((e|0)>=(f|0)){break f}f=(e<<1)-f|0}e=j<<3;h=e+b|0;k=F[h+4>>2];F[g+40>>2]=F[h>>2];F[g+44>>2]=k;F[g+28>>2]=d;F[g+24>>2]=f;rc(g+32|0,m,g+24|0,g+40|0);d=c+e|0;F[d>>2]=F[g+32>>2];F[d+4>>2]=F[g+36>>2];j=j+1|0;if((o|0)!=(j|0)){continue}break}}ea=g+48|0;return 1}Ea();V()}function De(a,b){var c=0,d=0,e=0,f=0,g=0,h=0,i=0;f=ea-16|0;ea=f;c=F[a+4>>2];F[a+40>>2]=F[a>>2];F[a+44>>2]=c;c=F[a+36>>2];F[a+72>>2]=F[a+32>>2];F[a+76>>2]=c;d=F[a+28>>2];c=a- -64|0;F[c>>2]=F[a+24>>2];F[c+4>>2]=d;c=F[a+20>>2];F[a+56>>2]=F[a+16>>2];F[a+60>>2]=c;c=F[a+12>>2];F[a+48>>2]=F[a+8>>2];F[a+52>>2]=c;a:{b:{if(Fb(a+40|0,1,f+8|0)){c=F[a+44>>2];F[a>>2]=F[a+40>>2];F[a+4>>2]=c;c=F[a+76>>2];F[a+32>>2]=F[a+72>>2];F[a+36>>2]=c;c=F[a+68>>2];F[a+24>>2]=F[a+64>>2];F[a+28>>2]=c;d=F[a+60>>2];h=d;c=F[a+56>>2];F[a+16>>2]=c;F[a+20>>2]=d;e=F[a+52>>2];d=F[a+48>>2];F[a+8>>2]=d;F[a+12>>2]=e;i=d-c|0;g=F[f+12>>2];e=e-((c>>>0>d>>>0)+h|0)|0;d=F[f+8>>2];if((g|0)==(e|0)&i>>>0>=d>>>0|e>>>0>g>>>0){break b}}c=0;break a}e=c+d|0;c=h+g|0;F[a+16>>2]=e;F[a+20>>2]=d>>>0>e>>>0?c+1|0:c;c:{if(H[a+38>>1]<=513){c=F[a+4>>2];F[a+96>>2]=F[a>>2];F[a+100>>2]=c;c=F[a+36>>2];F[a+128>>2]=F[a+32>>2];F[a+132>>2]=c;c=F[a+28>>2];F[a+120>>2]=F[a+24>>2];F[a+124>>2]=c;c=F[a+20>>2];F[a+112>>2]=F[a+16>>2];F[a+116>>2]=c;c=F[a+12>>2];F[a+104>>2]=F[a+8>>2];F[a+108>>2]=c;d:{if(Fb(a+96|0,1,f+8|0)){c=F[a+100>>2];F[a>>2]=F[a+96>>2];F[a+4>>2]=c;c=F[a+132>>2];F[a+32>>2]=F[a+128>>2];F[a+36>>2]=c;c=F[a+124>>2];F[a+24>>2]=F[a+120>>2];F[a+28>>2]=c;d=F[a+116>>2];h=d;c=F[a+112>>2];F[a+16>>2]=c;F[a+20>>2]=d;e=F[a+108>>2];d=F[a+104>>2];F[a+8>>2]=d;F[a+12>>2]=e;i=d-c|0;g=F[f+12>>2];e=e-((c>>>0>d>>>0)+h|0)|0;d=F[f+8>>2];if((g|0)==(e|0)&i>>>0>=d>>>0|e>>>0>g>>>0){break d}}c=0;break a}e=c+d|0;c=h+g|0;F[a+16>>2]=e;F[a+20>>2]=d>>>0>e>>>0?c+1|0:c;break c}c=0;if(!wa(a+80|0,a)){break a}}c=0;if(!Ce(a)){break a}c=F[a+4>>2];F[b>>2]=F[a>>2];F[b+4>>2]=c;c=F[a+36>>2];F[b+32>>2]=F[a+32>>2];F[b+36>>2]=c;c=F[a+28>>2];F[b+24>>2]=F[a+24>>2];F[b+28>>2]=c;c=F[a+20>>2];F[b+16>>2]=F[a+16>>2];F[b+20>>2]=c;c=F[a+12>>2];F[b+8>>2]=F[a+8>>2];F[b+12>>2]=c;c=1}ea=f+16|0;return c}function ng(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0;f=ea-32|0;ea=f;e=f+8|0;c=ea-80|0;ea=c;a=F[b+36>>2];F[c+72>>2]=F[b+32>>2];F[c+76>>2]=a;d=F[b+28>>2];a=c- -64|0;F[a>>2]=F[b+24>>2];F[a+4>>2]=d;a=F[b+20>>2];F[c+56>>2]=F[b+16>>2];F[c+60>>2]=a;a=F[b+12>>2];F[c+48>>2]=F[b+8>>2];F[c+52>>2]=a;a=F[b+4>>2];F[c+40>>2]=F[b>>2];F[c+44>>2]=a;nc(c+8|0,c+40|0,c+24|0);a=F[c+8>>2];a:{if(a){F[e>>2]=a;a=e+4|0;if(D[c+23|0]>=0){b=c+8|4;e=F[b+4>>2];F[a>>2]=F[b>>2];F[a+4>>2]=e;F[a+8>>2]=F[b+8>>2];break a}Ba(a,F[c+12>>2],F[c+16>>2]);if(D[c+23|0]>=0){break a}ra(F[c+12>>2]);break a}if(D[c+23|0]<0){ra(F[c+12>>2])}a=G[c+31|0];if(a>>>0>=2){b=sa(32);a=G[1477]|G[1478]<<8;D[b+24|0]=a;D[b+25|0]=a>>>8;a=G[1473]|G[1474]<<8|(G[1475]<<16|G[1476]<<24);d=G[1469]|G[1470]<<8|(G[1471]<<16|G[1472]<<24);D[b+16|0]=d;D[b+17|0]=d>>>8;D[b+18|0]=d>>>16;D[b+19|0]=d>>>24;D[b+20|0]=a;D[b+21|0]=a>>>8;D[b+22|0]=a>>>16;D[b+23|0]=a>>>24;a=G[1465]|G[1466]<<8|(G[1467]<<16|G[1468]<<24);d=G[1461]|G[1462]<<8|(G[1463]<<16|G[1464]<<24);D[b+8|0]=d;D[b+9|0]=d>>>8;D[b+10|0]=d>>>16;D[b+11|0]=d>>>24;D[b+12|0]=a;D[b+13|0]=a>>>8;D[b+14|0]=a>>>16;D[b+15|0]=a>>>24;a=G[1457]|G[1458]<<8|(G[1459]<<16|G[1460]<<24);d=G[1453]|G[1454]<<8|(G[1455]<<16|G[1456]<<24);D[b|0]=d;D[b+1|0]=d>>>8;D[b+2|0]=d>>>16;D[b+3|0]=d>>>24;D[b+4|0]=a;D[b+5|0]=a>>>8;D[b+6|0]=a>>>16;D[b+7|0]=a>>>24;D[b+26|0]=0;F[c+8>>2]=-1;a=c+8|4;Ba(a,b,26);d=D[c+23|0];F[e>>2]=F[c+8>>2];e=e+4|0;if((d|0)>=0){d=F[a+4>>2];F[e>>2]=F[a>>2];F[e+4>>2]=d;F[e+8>>2]=F[a+8>>2];ra(b);break a}Ba(e,F[c+12>>2],F[c+16>>2]);if(D[c+23|0]<0){ra(F[c+12>>2])}ra(b);break a}F[e>>2]=0;F[e+4>>2]=0;F[e+16>>2]=a;F[e+8>>2]=0;F[e+12>>2]=0}ea=c+80|0;a=F[f+24>>2];if(D[f+23|0]<0){ra(F[f+12>>2])}ea=f+32|0;return a|0}function Wd(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0;k=ea-16|0;ea=k;F[k+8>>2]=c;e=F[a+12>>2];d=F[a+8>>2];f=e-d>>2;a:{if((f|0)>(b|0)){break a}h=b+1|0;if(h>>>0>f>>>0){f=h-f|0;g=F[a+16>>2];d=F[a+12>>2];if(f>>>0<=g-d>>2>>>0){if(f){e=d;d=f<<2;d=ua(e,0,d)+d|0}F[a+12>>2]=d;break a}b:{c:{d:{h=F[a+8>>2];i=d-h>>2;e=i+f|0;if(e>>>0<1073741824){g=g-h|0;l=g>>1;g=g>>>0<2147483644?e>>>0>>0?l:e:1073741823;if(g){if(g>>>0>=1073741824){break d}j=sa(g<<2)}e=(i<<2)+j|0;i=f<<2;f=ua(e,0,i);i=f+i|0;g=(g<<2)+j|0;if((d|0)==(h|0)){break c}while(1){d=d-4|0;f=F[d>>2];F[d>>2]=0;e=e-4|0;F[e>>2]=f;if((d|0)!=(h|0)){continue}break}F[a+16>>2]=g;f=F[a+12>>2];F[a+12>>2]=i;d=F[a+8>>2];F[a+8>>2]=e;if((d|0)==(f|0)){break b}while(1){f=f-4|0;e=F[f>>2];F[f>>2]=0;if(e){Ja(e)}if((d|0)!=(f|0)){continue}break}break b}va();V()}za();V()}F[a+16>>2]=g;F[a+12>>2]=i;F[a+8>>2]=f}if(d){ra(d)}break a}if(f>>>0<=h>>>0){break a}d=d+(h<<2)|0;if((d|0)!=(e|0)){while(1){e=e-4|0;c=F[e>>2];F[e>>2]=0;if(c){Ja(c)}if((d|0)!=(e|0)){continue}break}c=F[k+8>>2]}F[a+12>>2]=d}e:{f:{d=F[c+56>>2];g:{if((d|0)>4){break g}e=L(d,12)+a|0;d=F[e+24>>2];if((d|0)!=F[e+28>>2]){F[d>>2]=b;F[e+24>>2]=d+4;break g}h=F[e+20>>2];f=d-h|0;j=f>>2;d=j+1|0;if(d>>>0>=1073741824){break f}g=f>>1;g=f>>>0<2147483644?d>>>0>>0?g:d:1073741823;if(g){if(g>>>0>=1073741824){break e}d=sa(g<<2)}else{d=0}j=d+(j<<2)|0;F[j>>2]=b;if((f|0)>0){ta(d,h,f)}F[e+20>>2]=d;F[e+24>>2]=j+4;F[e+28>>2]=d+(g<<2);if(!h){break g}ra(h)}F[c+60>>2]=b;a=F[a+8>>2];F[k+8>>2]=0;b=a+(b<<2)|0;a=F[b>>2];F[b>>2]=c;if(a){Ja(a)}a=F[k+8>>2];F[k+8>>2]=0;if(a){Ja(a)}ea=k+16|0;return}va();V()}za();V()}function $c(a,b){var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0;i=ea-16|0;ea=i;F[i>>2]=b;g=-1;a:{if((b|0)==-1){F[i+4>>2]=-1;break a}c=b+1|0;F[i+4>>2]=(c>>>0)%3|0?c:b-2|0;if((b>>>0)%3|0){g=b-1|0;break a}g=b+2|0}F[i+8>>2]=g;n=(b>>>0)/3|0;b:{c:{d:{while(1){e:{f:{k=F[(l<<2)+i>>2];if((k|0)!=-1){c=F[F[F[a+8>>2]+12>>2]+(k<<2)>>2];if((c|0)!=-1){break f}}g=0;c=F[a+216>>2];if((c|0)==F[a+220>>2]){break e}while(1){f=L(g,144)+c|0;c=F[f+136>>2];d=F[f+140>>2];g:{if(c>>>0>>0){F[c>>2]=k;F[f+136>>2]=c+4;break g}h=F[f+132>>2];j=c-h|0;e=j>>2;c=e+1|0;if(c>>>0>=1073741824){break d}m=e<<2;d=d-h|0;e=d>>1;d=d>>>0<2147483644?c>>>0>>0?e:c:1073741823;if(d){if(d>>>0>=1073741824){break c}c=sa(d<<2)}else{c=0}e=m+c|0;F[e>>2]=k;if((j|0)>0){ta(c,h,j)}F[f+132>>2]=c;F[f+136>>2]=e+4;F[f+140>>2]=c+(d<<2);if(!h){break g}ra(h)}g=g+1|0;c=F[a+216>>2];if(g>>>0<(F[a+220>>2]-c|0)/144>>>0){continue}break}break e}if((b|0)==-1|(c>>>0)/3>>>0>>0){break e}g=0;if(F[a+220>>2]==F[a+216>>2]){break e}while(1){h:{if(!Da(F[a+368>>2]+(g<<4)|0)){break h}f=F[a+216>>2]+L(g,144)|0;c=F[f+136>>2];d=F[f+140>>2];if(c>>>0>>0){F[c>>2]=k;F[f+136>>2]=c+4;break h}h=F[f+132>>2];j=c-h|0;e=j>>2;c=e+1|0;if(c>>>0>=1073741824){break b}m=e<<2;d=d-h|0;e=d>>1;d=d>>>0<2147483644?c>>>0>>0?e:c:1073741823;if(d){if(d>>>0>=1073741824){break c}c=sa(d<<2)}else{c=0}e=m+c|0;F[e>>2]=k;if((j|0)>0){ta(c,h,j)}F[f+132>>2]=c;F[f+136>>2]=e+4;F[f+140>>2]=c+(d<<2);if(!h){break h}ra(h)}g=g+1|0;if(g>>>0<(F[a+220>>2]-F[a+216>>2]|0)/144>>>0){continue}break}}l=l+1|0;if((l|0)!=3){continue}break}ea=i+16|0;return 1}va();V()}za();V()}va();V()}function Mg(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0;e=a;a:{if(F[a+12>>2]==(b|0)){break a}d=F[e+4>>2];a=F[e>>2];if((d|0)!=(a|0)){while(1){d=d-12|0;if(D[d+11|0]<0){ra(F[d>>2])}if((a|0)!=(d|0)){continue}break}}F[e+12>>2]=b;F[e+4>>2]=a;d=F[b>>2];j=b+4|0;if((d|0)==(j|0)){break a}while(1){a=F[e+4>>2];b:{if((a|0)!=F[e+8>>2]){c:{if(D[d+27|0]>=0){b=F[d+20>>2];F[a>>2]=F[d+16>>2];F[a+4>>2]=b;F[a+8>>2]=F[d+24>>2];break c}Ba(a,F[d+16>>2],F[d+20>>2])}F[e+4>>2]=a+12;break b}h=0;d:{e:{f:{b=F[e+4>>2];a=F[e>>2];g=(b-a|0)/12|0;f=g+1|0;if(f>>>0<357913942){i=(F[e+8>>2]-a|0)/12|0;k=i<<1;f=i>>>0<178956970?f>>>0>>0?k:f:357913941;if(f){if(f>>>0>=357913942){break f}h=sa(L(f,12))}i=L(f,12);f=L(g,12)+h|0;g:{if(D[d+27|0]>=0){g=F[d+20>>2];F[f>>2]=F[d+16>>2];F[f+4>>2]=g;F[f+8>>2]=F[d+24>>2];break g}Ba(f,F[d+16>>2],F[d+20>>2]);b=F[e+4>>2];a=F[e>>2]}h=h+i|0;g=f+12|0;if((a|0)==(b|0)){break e}while(1){b=b-12|0;i=F[b+4>>2];f=f-12|0;F[f>>2]=F[b>>2];F[f+4>>2]=i;F[f+8>>2]=F[b+8>>2];F[b>>2]=0;F[b+4>>2]=0;F[b+8>>2]=0;if((a|0)!=(b|0)){continue}break}F[e+8>>2]=h;a=F[e+4>>2];F[e+4>>2]=g;b=F[e>>2];F[e>>2]=f;if((a|0)==(b|0)){break d}while(1){a=a-12|0;if(D[a+11|0]<0){ra(F[a>>2])}if((a|0)!=(b|0)){continue}break}break d}va();V()}za();V()}F[e+8>>2]=h;F[e+4>>2]=g;F[e>>2]=f}if(b){ra(b)}}a=F[d+4>>2];h:{if(a){while(1){d=a;a=F[a>>2];if(a){continue}break h}}while(1){a=d;d=F[d+8>>2];if((a|0)!=F[d>>2]){continue}break}}if((d|0)!=(j|0)){continue}break}}d=0;i:{if((c|0)<0){break i}a=F[e>>2];if((F[e+4>>2]-a|0)/12>>>0<=c>>>0){break i}a=a+L(c,12)|0;d=D[a+11|0]<0?F[a>>2]:a}return d|0}function ad(a,b){var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0;h=ea-16|0;ea=h;F[h>>2]=b;c=-1;a:{if((b|0)==-1){F[h+4>>2]=-1;break a}c=b+1|0;F[h+4>>2]=(c>>>0)%3|0?c:b-2|0;if((b>>>0)%3|0){c=b-1|0;break a}c=b+2|0}F[h+8>>2]=c;b:{c:{while(1){j=F[(k<<2)+h>>2];d:{if(!((j|0)==-1|F[F[F[a+8>>2]+12>>2]+(j<<2)>>2]==-1)){b=0;if(F[a+220>>2]==F[a+216>>2]){break d}while(1){e:{f:{if(!Da(F[a+368>>2]+(b<<4)|0)){break f}f=F[a+216>>2]+L(b,144)|0;c=F[f+136>>2];d=F[f+140>>2];if(c>>>0>>0){F[c>>2]=j;F[f+136>>2]=c+4;break f}g=F[f+132>>2];i=c-g|0;e=i>>2;c=e+1|0;if(c>>>0>=1073741824){break e}l=e<<2;d=d-g|0;e=d>>1;d=d>>>0<2147483644?c>>>0>>0?e:c:1073741823;if(d){if(d>>>0>=1073741824){break b}c=sa(d<<2)}else{c=0}e=l+c|0;F[e>>2]=j;if((i|0)>0){ta(c,g,i)}F[f+132>>2]=c;F[f+136>>2]=e+4;F[f+140>>2]=c+(d<<2);if(!g){break f}ra(g)}b=b+1|0;if(b>>>0<(F[a+220>>2]-F[a+216>>2]|0)/144>>>0){continue}break d}break}va();V()}b=0;c=F[a+216>>2];if((c|0)==F[a+220>>2]){break d}while(1){f=L(b,144)+c|0;c=F[f+136>>2];d=F[f+140>>2];g:{if(c>>>0>>0){F[c>>2]=j;F[f+136>>2]=c+4;break g}g=F[f+132>>2];i=c-g|0;e=i>>2;c=e+1|0;if(c>>>0>=1073741824){break c}l=e<<2;d=d-g|0;e=d>>1;d=d>>>0<2147483644?c>>>0>>0?e:c:1073741823;if(d){if(d>>>0>=1073741824){break b}c=sa(d<<2)}else{c=0}e=l+c|0;F[e>>2]=j;if((i|0)>0){ta(c,g,i)}F[f+132>>2]=c;F[f+136>>2]=e+4;F[f+140>>2]=c+(d<<2);if(!g){break g}ra(g)}b=b+1|0;c=F[a+216>>2];if(b>>>0<(F[a+220>>2]-c|0)/144>>>0){continue}break}}k=k+1|0;if((k|0)!=3){continue}break}ea=h+16|0;return 1}va();V()}za();V()}function ug(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0;a=0;g=ea-16|0;ea=g;i=D[c+24|0];k=F[b+80>>2];b=L(i,k);a:{b:{c:{e=F[c+28>>2];d:{if(!(!G[c+84|0]|(e|0)!=1&(e|0)!=2)){a=F[c+48>>2];c=F[F[c>>2]>>2];F[g+8>>2]=0;F[g>>2]=0;F[g+4>>2]=0;e=0;if(b){if((b|0)<0){break b}e=sa(b);f=ta(e,a+c|0,b)+b|0}a=F[d>>2];if(a){F[d+4>>2]=a;ra(a)}F[d+8>>2]=f;F[d+4>>2]=f;F[d>>2]=e;a=1;break d}F[g+8>>2]=0;F[g>>2]=0;F[g+4>>2]=0;if(i){if((i|0)<0){break b}a=sa(i);F[g>>2]=a;f=a+i|0;F[g+8>>2]=f;ua(a,0,i);F[g+4>>2]=f}h=F[d+4>>2];f=F[d>>2];e=h-f|0;e:{if(e>>>0>>0){l=b-e|0;j=F[d+8>>2];if(l>>>0<=j-h>>>0){m=d,n=ua(h,0,l)+l|0,F[m+4>>2]=n;break e}if((b|0)<0){break c}h=j-f|0;j=h<<1;j=h>>>0<1073741823?b>>>0>>0?j:b:2147483647;h=sa(j);ua(h+e|0,0,l);if((e|0)>0){ta(h,f,e)}F[d+8>>2]=h+j;F[d+4>>2]=b+h;F[d>>2]=h;if(!f){break e}ra(f);break e}if(b>>>0>=e>>>0){break e}F[d+4>>2]=b+f}f:{if(!k){e=0;break f}if(!i){b=0;e=1;while(1){if(!jc(c,G[c+84|0]?b:F[F[c+68>>2]+(b<<2)>>2],D[c+24|0],a)){break f}b=b+1|0;e=k>>>0>b>>>0;if((b|0)!=(k|0)){continue}break}break f}h=i&-2;l=i&1;b=0;e=1;a=0;while(1){if(jc(c,G[c+84|0]?a:F[F[c+68>>2]+(a<<2)>>2],D[c+24|0],F[g>>2])){f=0;e=0;if((i|0)!=1){while(1){D[F[d>>2]+b|0]=G[F[g>>2]+f|0];D[(F[d>>2]+b|0)+1|0]=G[F[g>>2]+(f|1)|0];f=f+2|0;b=b+2|0;e=e+2|0;if((h|0)!=(e|0)){continue}break}}if(l){D[F[d>>2]+b|0]=G[F[g>>2]+f|0];b=b+1|0}a=a+1|0;e=k>>>0>a>>>0;if((a|0)!=(k|0)){continue}}break}a=F[g>>2]}if(a){ra(a)}a=e^1}ea=g+16|0;a=a&1;break a}va();V()}va();V()}return a|0}function tg(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0;a=0;g=ea-16|0;ea=g;i=D[c+24|0];k=F[b+80>>2];b=L(i,k);a:{b:{c:{e=F[c+28>>2];d:{if(!(!G[c+84|0]|(e|0)!=1&(e|0)!=2)){a=F[c+48>>2];c=F[F[c>>2]>>2];F[g+8>>2]=0;F[g>>2]=0;F[g+4>>2]=0;e=0;if(b){if((b|0)<0){break b}e=sa(b);f=ta(e,a+c|0,b)+b|0}a=F[d>>2];if(a){F[d+4>>2]=a;ra(a)}F[d+8>>2]=f;F[d+4>>2]=f;F[d>>2]=e;a=1;break d}F[g+8>>2]=0;F[g>>2]=0;F[g+4>>2]=0;if(i){if((i|0)<0){break b}a=sa(i);F[g>>2]=a;f=a+i|0;F[g+8>>2]=f;ua(a,0,i);F[g+4>>2]=f}h=F[d+4>>2];f=F[d>>2];e=h-f|0;e:{if(e>>>0>>0){l=b-e|0;j=F[d+8>>2];if(l>>>0<=j-h>>>0){m=d,n=ua(h,0,l)+l|0,F[m+4>>2]=n;break e}if((b|0)<0){break c}h=j-f|0;j=h<<1;j=h>>>0<1073741823?b>>>0>>0?j:b:2147483647;h=sa(j);ua(h+e|0,0,l);if((e|0)>0){ta(h,f,e)}F[d+8>>2]=h+j;F[d+4>>2]=b+h;F[d>>2]=h;if(!f){break e}ra(f);break e}if(b>>>0>=e>>>0){break e}F[d+4>>2]=b+f}f:{if(!k){e=0;break f}if(!i){b=0;e=1;while(1){if(!ic(c,G[c+84|0]?b:F[F[c+68>>2]+(b<<2)>>2],D[c+24|0],a)){break f}b=b+1|0;e=k>>>0>b>>>0;if((b|0)!=(k|0)){continue}break}break f}h=i&-2;l=i&1;b=0;e=1;a=0;while(1){if(ic(c,G[c+84|0]?a:F[F[c+68>>2]+(a<<2)>>2],D[c+24|0],F[g>>2])){f=0;e=0;if((i|0)!=1){while(1){D[F[d>>2]+b|0]=G[F[g>>2]+f|0];D[(F[d>>2]+b|0)+1|0]=G[F[g>>2]+(f|1)|0];f=f+2|0;b=b+2|0;e=e+2|0;if((h|0)!=(e|0)){continue}break}}if(l){D[F[d>>2]+b|0]=G[F[g>>2]+f|0];b=b+1|0}a=a+1|0;e=k>>>0>a>>>0;if((a|0)!=(k|0)){continue}}break}a=F[g>>2]}if(a){ra(a)}a=e^1}ea=g+16|0;a=a&1;break a}va();V()}va();V()}return a|0}function vg(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0;a=0;h=ea-16|0;ea=h;j=F[b+80>>2];b=G[c+24|0];F[h+8>>2]=0;F[h>>2]=0;F[h+4>>2]=0;e=b<<24>>24;a:{b:{c:{d:{if(b){if((e|0)<0){break d}b=e<<2;a=sa(b);F[h>>2]=a;g=a+b|0;F[h+8>>2]=g;b=a;k=e&7;if(k){while(1){F[b>>2]=-1073741824;b=b+4|0;f=f+1|0;if((k|0)!=(f|0)){continue}break}}if((e-1&1073741823)>>>0>=7){while(1){F[b+24>>2]=-1073741824;F[b+28>>2]=-1073741824;F[b+16>>2]=-1073741824;F[b+20>>2]=-1073741824;F[b+8>>2]=-1073741824;F[b+12>>2]=-1073741824;F[b>>2]=-1073741824;F[b+4>>2]=-1073741824;b=b+32|0;if((g|0)!=(b|0)){continue}break}}F[h+4>>2]=g}b=L(e,j);g=F[d>>2];f=F[d+4>>2]-g>>2;e:{if(b>>>0>f>>>0){Aa(d,b-f|0);break e}if(b>>>0>=f>>>0){break e}F[d+4>>2]=g+(b<<2)}if(!j){break c}i=1;if((e|0)<=0){b=0;while(1){if(!Ya(c,G[c+84|0]?b:F[F[c+68>>2]+(b<<2)>>2],D[c+24|0],a)){break c}b=b+1|0;i=j>>>0>b>>>0;if((b|0)!=(j|0)){continue}break}break c}o=e&-4;k=e&3;f=0;p=e-1>>>0<3;while(1){if(!Ya(c,G[c+84|0]?l:F[F[c+68>>2]+(l<<2)>>2],D[c+24|0],a)){break c}n=F[d>>2];m=0;b=0;i=0;if(!p){while(1){e=(f<<2)+n|0;g=b<<2;J[e>>2]=J[g+a>>2];J[e+4>>2]=J[(g|4)+a>>2];J[e+8>>2]=J[(g|8)+a>>2];J[e+12>>2]=J[(g|12)+a>>2];b=b+4|0;f=f+4|0;i=i+4|0;if((o|0)!=(i|0)){continue}break}}if(k){while(1){J[(f<<2)+n>>2]=J[(b<<2)+a>>2];b=b+1|0;f=f+1|0;m=m+1|0;if((k|0)!=(m|0)){continue}break}}l=l+1|0;i=l>>>0>>0;if((j|0)!=(l|0)){continue}break}break b}va();V()}if(!a){break a}}ra(a)}ea=h+16|0;return(i^-1)&1}function qc(a,b,c,d){var e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0;k=F[b+16>>2];g=F[c+4>>2]-k|0;e=g;f=F[c>>2]-k|0;F[c>>2]=f;F[c+4>>2]=e;j=F[b+16>>2];e=e>>31;h=(e^g)-e|0;e=f>>31;l=(j|0)>=(h+((e^f)-e|0)|0);a:{if(l){e=g;break a}b:{c:{if((f|0)>=0){i=1;h=1;if((g|0)>=0){break b}e=1;i=-1;h=-1;if(f){break c}break b}e=-1;i=-1;h=-1;if((g|0)<=0){break b}}i=(g|0)<=0?-1:1;h=e}e=f<<1;f=L(h,j);e=e-f|0;h=(L(i,h)|0)>=0;i=L(i,j);e=((h?0-e|0:e)+i|0)/2|0;F[c+4>>2]=e;j=f;f=(g<<1)-i|0;f=(j+(h?0-f|0:f)|0)/2|0;F[c>>2]=f}d:{e:{f:{g:{h:{i:{j:{if(f){if((f|0)<0){break j}if((e|0)>=0){break i}break f}if(e){break h}i=1;g=0;e=0;h=0;break d}i=1;if((e|0)>0){break g}h=(e|0)>0?253:0;g=e;e=f;break d}g=0-e|0;e=0-f|0;h=254;break e}if((e|0)<=0){break f}}e=0-e|0;g=f;h=253;break e}g=0-f|0;h=255}F[c>>2]=e;F[c+4>>2]=g;i=0}c=F[d+4>>2]+g|0;f=F[d>>2]+e|0;g=F[b+16>>2];k:{if((f|0)>(g|0)){f=f-F[b+4>>2]|0;break k}if((0-g|0)<=(f|0)){break k}f=F[b+4>>2]+f|0}l:{if((c|0)>(g|0)){c=c-F[b+4>>2]|0;break l}if((0-g|0)<=(c|0)){break l}c=F[b+4>>2]+c|0}m:{if(i){b=c;break m}b=c;n:{switch((h&3)-1|0){case 0:b=0-f|0;f=c;break m;case 1:b=0-c|0;f=0-f|0;break m;case 2:break n;default:break m}}b=f;f=0-c|0}o:{if(l){c=b;break o}p:{q:{if((f|0)>=0){c=1;e=1;if((b|0)>=0){break p}d=1;c=-1;e=-1;if(f){break q}break p}d=-1;c=-1;e=-1;if((b|0)<=0){break p}}c=(b|0)<=0?-1:1;e=d}d=f<<1;f=L(e,g);d=d-f|0;F[a>>2]=d;j=0-d|0;h=d;d=(L(c,e)|0)>=0;e=L(c,g);c=((d?j:h)+e|0)/2|0;b=(b<<1)-e|0;f=(f+(d?0-b|0:b)|0)/2|0}F[a>>2]=f+k;F[a+4>>2]=c+k}function Xb(a,b,c,d){var e=0,f=0,g=0,h=0,i=0,j=0,k=0;i=d-c|0;if((i|0)<=0){return}a:{g=F[a+8>>2];h=F[a+4>>2];if((g-h|0)>=(i|0)){j=h-b|0;if((j|0)>=(i|0)){f=h;g=d;break a}f=h;g=c+j|0;if((g|0)!=(d|0)){e=g;while(1){D[f|0]=G[e|0];f=f+1|0;e=e+1|0;if((e|0)!=(d|0)){continue}break}}F[a+4>>2]=f;if((j|0)>0){break a}return}f=F[a>>2];e=(h-f|0)+i|0;if((e|0)>=0){j=b-f|0;g=g-f|0;k=g<<1;k=g>>>0<1073741823?e>>>0>>0?k:e:2147483647;if(k){g=sa(k)}else{g=0}e=j+g|0;if((c|0)!=(d|0)){e=ta(e,c,i)+i|0}if((j|0)>0){ta(g,f,j)}if((b|0)!=(h|0)){d=(b^-1)+h|0;f=h-b&7;if(f){c=0;while(1){D[e|0]=G[b|0];e=e+1|0;b=b+1|0;c=c+1|0;if((f|0)!=(c|0)){continue}break}}if(d>>>0>=7){while(1){D[e|0]=G[b|0];D[e+1|0]=G[b+1|0];D[e+2|0]=G[b+2|0];D[e+3|0]=G[b+3|0];D[e+4|0]=G[b+4|0];D[e+5|0]=G[b+5|0];D[e+6|0]=G[b+6|0];D[e+7|0]=G[b+7|0];e=e+8|0;b=b+8|0;if((h|0)!=(b|0)){continue}break}}f=F[a>>2]}F[a+8>>2]=g+k;F[a+4>>2]=e;F[a>>2]=g;if(f){ra(f)}return}va();V()}e=f;d=e-i|0;if(h>>>0>d>>>0){while(1){D[e|0]=G[d|0];e=e+1|0;d=d+1|0;if(h>>>0>d>>>0){continue}break}}F[a+4>>2]=e;a=b+i|0;if((a|0)!=(f|0)){a=f-a|0;Ra(f-a|0,b,a)}if((c|0)==(g|0)){return}a=(c^-1)+g|0;f=g-c&7;b:{if(!f){e=b;break b}d=0;e=b;while(1){D[e|0]=G[c|0];e=e+1|0;c=c+1|0;d=d+1|0;if((f|0)!=(d|0)){continue}break}}if(a>>>0<7){return}while(1){D[e|0]=G[c|0];D[e+1|0]=G[c+1|0];D[e+2|0]=G[c+2|0];D[e+3|0]=G[c+3|0];D[e+4|0]=G[c+4|0];D[e+5|0]=G[c+5|0];D[e+6|0]=G[c+6|0];D[e+7|0]=G[c+7|0];e=e+8|0;c=c+8|0;if((g|0)!=(c|0)){continue}break}}function me(a,b){var c=0,d=0,e=0,f=0;if(!F[a+64>>2]){c=sa(32);F[c+16>>2]=0;F[c+20>>2]=0;F[c+8>>2]=0;F[c>>2]=0;F[c+4>>2]=0;F[c+24>>2]=0;F[c+28>>2]=0;d=F[a+64>>2];F[a+64>>2]=c;if(d){c=F[d>>2];if(c){F[d+4>>2]=c;ra(c)}ra(d);c=F[a+64>>2]}F[a>>2]=c;d=F[c+20>>2];F[a+8>>2]=F[c+16>>2];F[a+12>>2]=d;d=F[c+24>>2];c=F[c+28>>2];F[a+48>>2]=0;F[a+52>>2]=0;F[a+40>>2]=0;F[a+44>>2]=0;F[a+16>>2]=d;F[a+20>>2]=c}a:{D[a+24|0]=G[b+24|0];F[a+28>>2]=F[b+28>>2];D[a+32|0]=G[b+32|0];c=F[b+44>>2];F[a+40>>2]=F[b+40>>2];F[a+44>>2]=c;c=F[b+52>>2];F[a+48>>2]=F[b+48>>2];F[a+52>>2]=c;F[a+56>>2]=F[b+56>>2];c=F[b+12>>2];F[a+8>>2]=F[b+8>>2];F[a+12>>2]=c;c=F[b+20>>2];F[a+16>>2]=F[b+16>>2];F[a+20>>2]=c;F[a+60>>2]=F[b+60>>2];d=F[b>>2];b:{if(!d){F[a>>2]=0;c=1;break b}e=F[a>>2];c=0;if(!e){break b}c=F[d>>2];re(e,c,F[d+4>>2]-c|0,0);c=1}c:{if(!c){break c}D[a+84|0]=G[b+84|0];F[a+80>>2]=F[b+80>>2];if((a|0)!=(b|0)){Eb(a+68|0,F[b+68>>2],F[b+72>>2])}d=F[b+88>>2];d:{if(d){b=sa(40);c=F[d>>2];F[b+16>>2]=0;F[b+8>>2]=0;F[b+12>>2]=0;F[b>>2]=c;c=F[d+12>>2];e=F[d+8>>2];if((c|0)!=(e|0)){e=c-e|0;if((e|0)<0){break a}c=sa(e);F[b+8>>2]=c;F[b+12>>2]=c;F[b+16>>2]=c+e;f=F[d+8>>2];e=F[d+12>>2]-f|0;if((e|0)>0){c=ta(c,f,e)+e|0}F[b+12>>2]=c}c=F[d+36>>2];F[b+32>>2]=F[d+32>>2];F[b+36>>2]=c;c=F[d+28>>2];F[b+24>>2]=F[d+24>>2];F[b+28>>2]=c;c=F[a+88>>2];F[a+88>>2]=b;if(c){break d}break c}c=F[a+88>>2];F[a+88>>2]=0;if(!c){break c}}a=F[c+8>>2];if(a){F[c+12>>2]=a;ra(a)}ra(c)}return}va();V()}function aj(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0;F[a+8>>2]=e;m=a+32|0;h=F[m>>2];g=F[a+36>>2]-h>>2;a:{if(g>>>0>>0){Aa(m,e-g|0);f=F[a+8>>2];break a}f=e;if(f>>>0>=g>>>0){break a}F[a+36>>2]=h+(e<<2);f=e}g=(e&1073741823)!=(e|0)?-1:e<<2;n=ua(sa(g),0,g);b:{if((f|0)<=0){break b}h=F[a+32>>2];while(1){f=i<<2;g=F[f+n>>2];j=F[a+16>>2];c:{if((g|0)>(j|0)){F[f+h>>2]=j;break c}f=f+h|0;j=F[a+12>>2];if((j|0)>(g|0)){F[f>>2]=j;break c}F[f>>2]=g}f=F[a+8>>2];i=i+1|0;if((f|0)>(i|0)){continue}break}if((f|0)<=0){break b}i=0;while(1){g=i<<2;f=g+c|0;g=F[b+g>>2]+F[g+h>>2]|0;F[f>>2]=g;d:{if((g|0)>F[a+16>>2]){g=g-F[a+20>>2]|0}else{if((g|0)>=F[a+12>>2]){break d}g=g+F[a+20>>2]|0}F[f>>2]=g}f=F[a+8>>2];i=i+1|0;if((f|0)>(i|0)){continue}break}}if(!((d|0)<=(e|0)|(f|0)<=0)){p=0-e<<2;g=e;while(1){e:{if((f|0)<=0){break e}l=g<<2;o=l+c|0;q=o+p|0;j=F[m>>2];i=0;while(1){f=i<<2;h=F[f+q>>2];k=F[a+16>>2];f:{if((h|0)>(k|0)){F[f+j>>2]=k;break f}f=f+j|0;k=F[a+12>>2];if((k|0)>(h|0)){F[f>>2]=k;break f}F[f>>2]=h}f=F[a+8>>2];i=i+1|0;if((f|0)>(i|0)){continue}break}i=0;if((f|0)<=0){break e}l=b+l|0;while(1){h=i<<2;f=h+o|0;h=F[h+l>>2]+F[h+j>>2]|0;F[f>>2]=h;g:{if((h|0)>F[a+16>>2]){h=h-F[a+20>>2]|0}else{if((h|0)>=F[a+12>>2]){break g}h=h+F[a+20>>2]|0}F[f>>2]=h}f=F[a+8>>2];i=i+1|0;if((f|0)>(i|0)){continue}break}}g=e+g|0;if((g|0)<(d|0)){continue}break}}ra(n);return 1}function qg(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0;g=ea-16|0;ea=g;j=F[b+80>>2];a=D[c+24|0];b=L(j,a);a:{b:{c:{d:{e=F[c+28>>2];if(!(!G[c+84|0]|(e|0)!=5&(e|0)!=6)){e=F[c+48>>2];c=F[F[c>>2]>>2];F[g+8>>2]=0;F[g>>2]=0;F[g+4>>2]=0;if(b){if((b|0)<0){break d}a=b<<2;f=sa(a);i=ta(f,c+e|0,a)+a|0}a=F[d>>2];if(a){F[d+4>>2]=a;ra(a)}F[d+8>>2]=i;F[d+4>>2]=i;F[d>>2]=f;a=1;break a}F[g+8>>2]=0;F[g>>2]=0;F[g+4>>2]=0;if(a){if((a|0)<0){break d}e=a<<2;f=sa(e);F[g>>2]=f;h=e+f|0;F[g+8>>2]=h;ua(f,0,e);F[g+4>>2]=h}h=F[d>>2];e=F[d+4>>2]-h>>2;e:{if(e>>>0>>0){Aa(d,b-e|0);break e}if(b>>>0>=e>>>0){break e}F[d+4>>2]=h+(b<<2)}if(!j){b=0;break c}if(!a){a=0;b=1;while(1){if(!ec(c,G[c+84|0]?a:F[F[c+68>>2]+(a<<2)>>2],D[c+24|0],f)){break c}a=a+1|0;b=j>>>0>a>>>0;if((a|0)!=(j|0)){continue}break}break c}o=a&-4;m=a&3;p=a-1>>>0<3;b=1;e=0;while(1){if(!ec(c,G[c+84|0]?e:F[F[c+68>>2]+(e<<2)>>2],D[c+24|0],f)){break c}n=F[d>>2];l=0;a=0;b=0;if(!p){while(1){h=(i<<2)+n|0;k=a<<2;F[h>>2]=F[k+f>>2];F[h+4>>2]=F[(k|4)+f>>2];F[h+8>>2]=F[(k|8)+f>>2];F[h+12>>2]=F[(k|12)+f>>2];a=a+4|0;i=i+4|0;b=b+4|0;if((o|0)!=(b|0)){continue}break}}if(m){while(1){F[(i<<2)+n>>2]=F[(a<<2)+f>>2];a=a+1|0;i=i+1|0;l=l+1|0;if((l|0)!=(m|0)){continue}break}}e=e+1|0;b=j>>>0>e>>>0;if((e|0)!=(j|0)){continue}break}a=e>>>0>=j>>>0;break b}va();V()}a=!b;if(!f){break a}}ra(f)}ea=g+16|0;return a&1}function ge(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0;g=ea-16|0;ea=g;j=F[b+80>>2];a=D[c+24|0];b=L(j,a);a:{b:{c:{d:{e=F[c+28>>2];if(!(!G[c+84|0]|(e|0)!=5&(e|0)!=6)){e=F[c+48>>2];c=F[F[c>>2]>>2];F[g+8>>2]=0;F[g>>2]=0;F[g+4>>2]=0;if(b){if((b|0)<0){break d}a=b<<2;f=sa(a);i=ta(f,c+e|0,a)+a|0}a=F[d>>2];if(a){F[d+4>>2]=a;ra(a)}F[d+8>>2]=i;F[d+4>>2]=i;F[d>>2]=f;a=1;break a}F[g+8>>2]=0;F[g>>2]=0;F[g+4>>2]=0;if(a){if((a|0)<0){break d}e=a<<2;f=sa(e);F[g>>2]=f;h=e+f|0;F[g+8>>2]=h;ua(f,0,e);F[g+4>>2]=h}h=F[d>>2];e=F[d+4>>2]-h>>2;e:{if(e>>>0>>0){Aa(d,b-e|0);break e}if(b>>>0>=e>>>0){break e}F[d+4>>2]=h+(b<<2)}if(!j){b=0;break c}if(!a){a=0;b=1;while(1){if(!fc(c,G[c+84|0]?a:F[F[c+68>>2]+(a<<2)>>2],D[c+24|0],f)){break c}a=a+1|0;b=j>>>0>a>>>0;if((a|0)!=(j|0)){continue}break}break c}o=a&-4;m=a&3;p=a-1>>>0<3;b=1;e=0;while(1){if(!fc(c,G[c+84|0]?e:F[F[c+68>>2]+(e<<2)>>2],D[c+24|0],f)){break c}n=F[d>>2];l=0;a=0;b=0;if(!p){while(1){h=(i<<2)+n|0;k=a<<2;F[h>>2]=F[k+f>>2];F[h+4>>2]=F[(k|4)+f>>2];F[h+8>>2]=F[(k|8)+f>>2];F[h+12>>2]=F[(k|12)+f>>2];a=a+4|0;i=i+4|0;b=b+4|0;if((o|0)!=(b|0)){continue}break}}if(m){while(1){F[(i<<2)+n>>2]=F[(a<<2)+f>>2];a=a+1|0;i=i+1|0;l=l+1|0;if((l|0)!=(m|0)){continue}break}}e=e+1|0;b=j>>>0>e>>>0;if((e|0)!=(j|0)){continue}break}a=e>>>0>=j>>>0;break b}va();V()}a=!b;if(!f){break a}}ra(f)}ea=g+16|0;return a&1}function sg(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0;g=ea-16|0;ea=g;j=F[b+80>>2];a=D[c+24|0];b=L(j,a);a:{b:{c:{d:{e=F[c+28>>2];if(!(!G[c+84|0]|(e|0)!=3&(e|0)!=4)){e=F[c+48>>2];c=F[F[c>>2]>>2];F[g+8>>2]=0;F[g>>2]=0;F[g+4>>2]=0;if(b){if((b|0)<0){break d}a=b<<1;f=sa(a);i=ta(f,c+e|0,a)+a|0}a=F[d>>2];if(a){F[d+4>>2]=a;ra(a)}F[d+8>>2]=i;F[d+4>>2]=i;F[d>>2]=f;a=1;break a}F[g+8>>2]=0;F[g>>2]=0;F[g+4>>2]=0;if(a){if((a|0)<0){break d}e=a<<1;f=sa(e);F[g>>2]=f;h=e+f|0;F[g+8>>2]=h;ua(f,0,e);F[g+4>>2]=h}h=F[d>>2];e=F[d+4>>2]-h>>1;e:{if(e>>>0>>0){pe(d,b-e|0);break e}if(b>>>0>=e>>>0){break e}F[d+4>>2]=h+(b<<1)}if(!j){b=0;break c}if(!a){a=0;b=1;while(1){if(!hc(c,G[c+84|0]?a:F[F[c+68>>2]+(a<<2)>>2],D[c+24|0],f)){break c}a=a+1|0;b=j>>>0>a>>>0;if((a|0)!=(j|0)){continue}break}break c}o=a&-4;m=a&3;p=a-1>>>0<3;b=1;e=0;while(1){if(!hc(c,G[c+84|0]?e:F[F[c+68>>2]+(e<<2)>>2],D[c+24|0],f)){break c}n=F[d>>2];l=0;a=0;b=0;if(!p){while(1){h=(i<<1)+n|0;k=a<<1;E[h>>1]=H[k+f>>1];E[h+2>>1]=H[(k|2)+f>>1];E[h+4>>1]=H[(k|4)+f>>1];E[h+6>>1]=H[(k|6)+f>>1];a=a+4|0;i=i+4|0;b=b+4|0;if((o|0)!=(b|0)){continue}break}}if(m){while(1){E[(i<<1)+n>>1]=H[(a<<1)+f>>1];a=a+1|0;i=i+1|0;l=l+1|0;if((l|0)!=(m|0)){continue}break}}e=e+1|0;b=j>>>0>e>>>0;if((e|0)!=(j|0)){continue}break}a=e>>>0>=j>>>0;break b}va();V()}a=!b;if(!f){break a}}ra(f)}ea=g+16|0;return a&1}function rg(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0;g=ea-16|0;ea=g;j=F[b+80>>2];a=D[c+24|0];b=L(j,a);a:{b:{c:{d:{e=F[c+28>>2];if(!(!G[c+84|0]|(e|0)!=3&(e|0)!=4)){e=F[c+48>>2];c=F[F[c>>2]>>2];F[g+8>>2]=0;F[g>>2]=0;F[g+4>>2]=0;if(b){if((b|0)<0){break d}a=b<<1;f=sa(a);i=ta(f,c+e|0,a)+a|0}a=F[d>>2];if(a){F[d+4>>2]=a;ra(a)}F[d+8>>2]=i;F[d+4>>2]=i;F[d>>2]=f;a=1;break a}F[g+8>>2]=0;F[g>>2]=0;F[g+4>>2]=0;if(a){if((a|0)<0){break d}e=a<<1;f=sa(e);F[g>>2]=f;h=e+f|0;F[g+8>>2]=h;ua(f,0,e);F[g+4>>2]=h}h=F[d>>2];e=F[d+4>>2]-h>>1;e:{if(e>>>0>>0){pe(d,b-e|0);break e}if(b>>>0>=e>>>0){break e}F[d+4>>2]=h+(b<<1)}if(!j){b=0;break c}if(!a){a=0;b=1;while(1){if(!gc(c,G[c+84|0]?a:F[F[c+68>>2]+(a<<2)>>2],D[c+24|0],f)){break c}a=a+1|0;b=j>>>0>a>>>0;if((a|0)!=(j|0)){continue}break}break c}o=a&-4;m=a&3;p=a-1>>>0<3;b=1;e=0;while(1){if(!gc(c,G[c+84|0]?e:F[F[c+68>>2]+(e<<2)>>2],D[c+24|0],f)){break c}n=F[d>>2];l=0;a=0;b=0;if(!p){while(1){h=(i<<1)+n|0;k=a<<1;E[h>>1]=H[k+f>>1];E[h+2>>1]=H[(k|2)+f>>1];E[h+4>>1]=H[(k|4)+f>>1];E[h+6>>1]=H[(k|6)+f>>1];a=a+4|0;i=i+4|0;b=b+4|0;if((o|0)!=(b|0)){continue}break}}if(m){while(1){E[(i<<1)+n>>1]=H[(a<<1)+f>>1];a=a+1|0;i=i+1|0;l=l+1|0;if((l|0)!=(m|0)){continue}break}}e=e+1|0;b=j>>>0>e>>>0;if((e|0)!=(j|0)){continue}break}a=e>>>0>=j>>>0;break b}va();V()}a=!b;if(!f){break a}}ra(f)}ea=g+16|0;return a&1}function Wc(a,b){var c=0,d=0,e=0,f=0,g=0;d=-1;f=-1;a:{if((b|0)==-1){break a}c=b+1|0;d=(c>>>0)%3|0?c:b-2|0;f=b-1|0;if((b>>>0)%3|0){break a}f=b+2|0}b:{c:{d:{e:{f:{g:{e=F[a+184>>2];switch(e|0){case 7:break d;case 3:break e;case 5:break f;case 0:case 1:break g;default:break b}}g=F[a+148>>2];c=-1;e=1;d=((d|0)!=-1?F[F[g>>2]+(d<<2)>>2]:c)<<2;c=F[a+156>>2];d=d+c|0;F[d>>2]=F[d>>2]+1;c=(((f|0)!=-1?F[F[g>>2]+(f<<2)>>2]:-1)<<2)+c|0;break c}g=F[a+148>>2];c=F[a+156>>2];e=c+(((b|0)!=-1?F[F[g>>2]+(b<<2)>>2]:-1)<<2)|0;F[e>>2]=F[e>>2]+1;d=(((d|0)!=-1?F[F[g>>2]+(d<<2)>>2]:-1)<<2)+c|0;F[d>>2]=F[d>>2]+1;e=2;c=(((f|0)!=-1?F[F[g>>2]+(f<<2)>>2]:-1)<<2)+c|0;break c}g=F[a+148>>2];c=F[a+156>>2];e=c+(((b|0)!=-1?F[F[g>>2]+(b<<2)>>2]:-1)<<2)|0;F[e>>2]=F[e>>2]+1;d=(((d|0)!=-1?F[F[g>>2]+(d<<2)>>2]:-1)<<2)+c|0;F[d>>2]=F[d>>2]+2;e=1;c=(((f|0)!=-1?F[F[g>>2]+(f<<2)>>2]:-1)<<2)+c|0;break c}g=F[a+148>>2];c=F[a+156>>2];e=c+(((b|0)!=-1?F[F[g>>2]+(b<<2)>>2]:-1)<<2)|0;F[e>>2]=F[e>>2]+2;d=(((d|0)!=-1?F[F[g>>2]+(d<<2)>>2]:-1)<<2)+c|0;F[d>>2]=F[d>>2]+2;e=2;c=(((f|0)!=-1?F[F[g>>2]+(f<<2)>>2]:-1)<<2)+c|0}F[c>>2]=F[c>>2]+e;e=F[a+184>>2]}h:{switch(e|0){case 0:case 5:f=F[a+156>>2];c=-1;i:{if((b|0)==-1){break i}d=b+1|0;b=(d>>>0)%3|0?d:b-2|0;c=-1;if((b|0)==-1){break i}c=F[F[F[a+148>>2]>>2]+(b<<2)>>2]}if(F[f+(c<<2)>>2]<=5){F[a+188>>2]=5;return}F[a+188>>2]=0;return;default:break h}}F[a+188>>2]=-1}function Xe(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0;i=ea-32|0;ea=i;F[i+28>>2]=0;a:{b:{if(H[b+38>>1]<=513){c=F[b+20>>2];d=F[b+16>>2];f=d+4|0;c=f>>>0<4?c+1|0:c;e=F[b+12>>2];if((e|0)<=(c|0)&f>>>0>I[b+8>>2]|(c|0)>(e|0)){break a}d=d+F[b>>2]|0;d=G[d|0]|G[d+1|0]<<8|(G[d+2|0]<<16|G[d+3|0]<<24);F[b+16>>2]=f;F[b+20>>2]=c;break b}if(!ab(1,i+28|0,b)){break a}d=F[i+28>>2]}if(!d){break a}$a(a+76|0,d);c=i+8|0;F[c>>2]=0;F[c+4>>2]=0;D[c+5|0]=0;D[c+6|0]=0;D[c+7|0]=0;D[c+8|0]=0;D[c+9|0]=0;D[c+10|0]=0;D[c+11|0]=0;D[c+12|0]=0;c:{if(!wa(c,b)){break c}e=1;while(1){g=1<>2]+(h>>>3&536870908)|0;e=e^j;if(e&1){g=F[f>>2]&(g^-1)}else{g=g|F[f>>2]}e=e^1;F[f>>2]=g;h=h+1|0;if((h|0)!=(d|0)){continue}break}d=F[b+12>>2];h=d;c=F[b+20>>2];f=c;e=F[b+16>>2];g=e+4|0;c=g>>>0<4?c+1|0:c;j=F[b+8>>2];if(j>>>0>>0&(c|0)>=(d|0)|(c|0)>(d|0)){break c}k=F[b>>2];d=k+e|0;d=G[d|0]|G[d+1|0]<<8|(G[d+2|0]<<16|G[d+3|0]<<24);F[b+16>>2]=g;F[b+20>>2]=c;c=f;f=e+8|0;c=f>>>0<8?c+1|0:c;e=f;f=c;if(e>>>0>j>>>0&(c|0)>=(h|0)|(c|0)>(h|0)){break c}c=g+k|0;c=G[c|0]|G[c+1|0]<<8|(G[c+2|0]<<16|G[c+3|0]<<24);F[b+16>>2]=e;F[b+20>>2]=f;if((c|0)<(d|0)){break c}F[a+16>>2]=c;F[a+12>>2]=d;b=(c>>31)-((d>>31)+(c>>>0>>0)|0)|0;c=c-d|0;if(!b&c>>>0>2147483646|b){break c}l=1;b=c+1|0;F[a+20>>2]=b;c=b>>>1|0;F[a+24>>2]=c;F[a+28>>2]=0-c;if(b&1){break c}F[a+24>>2]=c-1}}ea=i+32|0;return l|0}function kf(a){a=a|0;var b=0,c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0;e=ea-16|0;ea=e;h=ga[F[F[a>>2]+24>>2]](a)|0;a:{if((h|0)<=0){break a}l=a+48|0;i=1;while(1){b:{c:{if(!F[(ga[F[F[a>>2]+28>>2]](a)|0)+40>>2]){break c}j=f<<2;g=F[j+F[a+36>>2]>>2];b=F[g+8>>2];k=ub(g);if(!k){break c}g=F[(ga[F[F[a>>2]+28>>2]](a)|0)+40>>2];F[e+12>>2]=F[b+56>>2];b=sa(32);F[e>>2]=b;F[e+4>>2]=24;F[e+8>>2]=-2147483616;D[b+24|0]=0;c=G[1206]|G[1207]<<8|(G[1208]<<16|G[1209]<<24);d=G[1202]|G[1203]<<8|(G[1204]<<16|G[1205]<<24);D[b+16|0]=d;D[b+17|0]=d>>>8;D[b+18|0]=d>>>16;D[b+19|0]=d>>>24;D[b+20|0]=c;D[b+21|0]=c>>>8;D[b+22|0]=c>>>16;D[b+23|0]=c>>>24;c=G[1198]|G[1199]<<8|(G[1200]<<16|G[1201]<<24);d=G[1194]|G[1195]<<8|(G[1196]<<16|G[1197]<<24);D[b+8|0]=d;D[b+9|0]=d>>>8;D[b+10|0]=d>>>16;D[b+11|0]=d>>>24;D[b+12|0]=c;D[b+13|0]=c>>>8;D[b+14|0]=c>>>16;D[b+15|0]=c>>>24;c=G[1190]|G[1191]<<8|(G[1192]<<16|G[1193]<<24);d=G[1186]|G[1187]<<8|(G[1188]<<16|G[1189]<<24);D[b|0]=d;D[b+1|0]=d>>>8;D[b+2|0]=d>>>16;D[b+3|0]=d>>>24;D[b+4|0]=c;D[b+5|0]=c>>>8;D[b+6|0]=c>>>16;D[b+7|0]=c>>>24;b=rd(g,e+12|0,e);if(D[e+11|0]<0){ra(F[e>>2])}if(!b){break c}me(F[F[F[a+36>>2]+j>>2]+8>>2],k);break b}b=F[F[a+36>>2]+(f<<2)>>2];if(!(ga[F[F[b>>2]+24>>2]](b,l)|0)){break a}}f=f+1|0;i=(h|0)>(f|0);if((f|0)!=(h|0)){continue}break}}ea=e+16|0;return(i^-1)&1}function Ve(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0;j=ea-16|0;ea=j;c=F[b+20>>2];d=F[b+16>>2];g=d+4|0;c=g>>>0<4?c+1|0:c;e=F[b+12>>2];a:{if((e|0)<=(c|0)&g>>>0>I[b+8>>2]|(c|0)>(e|0)){break a}d=d+F[b>>2]|0;d=G[d|0]|G[d+1|0]<<8|(G[d+2|0]<<16|G[d+3|0]<<24);F[b+16>>2]=g;F[b+20>>2]=c;if((d|0)<0){break a}$a(a+76|0,d);c=j;F[c>>2]=0;F[c+4>>2]=0;D[c+5|0]=0;D[c+6|0]=0;D[c+7|0]=0;D[c+8|0]=0;D[c+9|0]=0;D[c+10|0]=0;D[c+11|0]=0;D[c+12|0]=0;b:{if(!wa(c,b)){break b}if(d){e=1;while(1){f=1<>2]+(h>>>3&536870908)|0;e=e^i;if(e&1){f=F[g>>2]&(f^-1)}else{f=f|F[g>>2]}e=e^1;F[g>>2]=f;h=h+1|0;if((d|0)!=(h|0)){continue}break}}h=0;d=F[b+12>>2];g=d;c=F[b+20>>2];e=c;f=F[b+16>>2];i=f+4|0;c=i>>>0<4?c+1|0:c;k=F[b+8>>2];if(k>>>0>>0&(c|0)>=(d|0)|(c|0)>(d|0)){break b}l=F[b>>2];d=l+f|0;d=G[d|0]|G[d+1|0]<<8|(G[d+2|0]<<16|G[d+3|0]<<24);F[b+16>>2]=i;F[b+20>>2]=c;c=e;e=f+8|0;c=e>>>0<8?c+1|0:c;f=e;e=c;if(f>>>0>k>>>0&(c|0)>=(g|0)|(c|0)>(g|0)){break b}c=i+l|0;c=G[c|0]|G[c+1|0]<<8|(G[c+2|0]<<16|G[c+3|0]<<24);F[b+16>>2]=f;F[b+20>>2]=e;if((c|0)<(d|0)){break b}F[a+16>>2]=c;F[a+12>>2]=d;b=(c>>31)-((d>>31)+(c>>>0>>0)|0)|0;c=c-d|0;if(!b&c>>>0>2147483646|b){break b}h=1;b=c+1|0;F[a+20>>2]=b;c=b>>>1|0;F[a+24>>2]=c;F[a+28>>2]=0-c;if(b&1){break b}F[a+24>>2]=c-1}}ea=j+16|0;return h|0}function Ae(a,b){var c=0,d=0,e=0,f=0,g=0;f=-1;d=-1;a:{if((b|0)==-1){break a}d=b+1|0;f=(d>>>0)%3|0?d:b-2|0;d=b-1|0;if((b>>>0)%3|0){break a}d=b+2|0}b:{c:{d:{switch(F[a+168>>2]){case 0:case 1:e=F[a+148>>2];c=1;b=F[a+156>>2];g=b+(((f|0)!=-1?F[F[e>>2]+(f<<2)>>2]:-1)<<2)|0;F[g>>2]=F[g>>2]+1;b=(((d|0)!=-1?F[F[e>>2]+(d<<2)>>2]:-1)<<2)+b|0;break c;case 5:e=F[a+148>>2];c=-1;c=((b|0)!=-1?F[F[e>>2]+(b<<2)>>2]:c)<<2;b=F[a+156>>2];c=c+b|0;F[c>>2]=F[c>>2]+1;c=(((f|0)!=-1?F[F[e>>2]+(f<<2)>>2]:-1)<<2)+b|0;F[c>>2]=F[c>>2]+1;c=2;b=(((d|0)!=-1?F[F[e>>2]+(d<<2)>>2]:-1)<<2)+b|0;break c;case 3:e=F[a+148>>2];c=-1;c=((b|0)!=-1?F[F[e>>2]+(b<<2)>>2]:c)<<2;b=F[a+156>>2];c=c+b|0;F[c>>2]=F[c>>2]+1;c=(((f|0)!=-1?F[F[e>>2]+(f<<2)>>2]:-1)<<2)+b|0;F[c>>2]=F[c>>2]+2;c=1;b=(((d|0)!=-1?F[F[e>>2]+(d<<2)>>2]:-1)<<2)+b|0;break c;case 7:break d;default:break b}}e=F[a+148>>2];c=-1;c=((b|0)!=-1?F[F[e>>2]+(b<<2)>>2]:c)<<2;b=F[a+156>>2];c=c+b|0;F[c>>2]=F[c>>2]+2;c=(((f|0)!=-1?F[F[e>>2]+(f<<2)>>2]:-1)<<2)+b|0;F[c>>2]=F[c>>2]+2;c=2;b=(((d|0)!=-1?F[F[e>>2]+(d<<2)>>2]:-1)<<2)+b|0}F[b>>2]=F[b>>2]+c}c=a;b=F[F[a+156>>2]+(((f|0)!=-1?F[F[F[a+148>>2]>>2]+(f<<2)>>2]:-1)<<2)>>2];d=F[a+180>>2];a=F[a+176>>2];F[c+172>>2]=(a|0)>(b|0)?0:((b|0)<(d|0)?b:d)-a|0}function Bh(a){a=a|0;var b=0,c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0;a:{c=F[a+32>>2];e=F[c+8>>2];f=F[c+12>>2];d=F[c+20>>2];g=e;e=F[c+16>>2];b=0;b:{if((f|0)<=(d|0)&g>>>0<=e>>>0|(d|0)>(f|0)){break b}g=G[e+F[c>>2]|0];f=e+1|0;d=f?d:d+1|0;F[c+16>>2]=f;F[c+20>>2]=d;c:{if(!g){break c}while(1){if(ga[F[F[a>>2]+16>>2]](a,b)|0){b=b+1|0;if((g|0)!=(b|0)){continue}break c}break}return 0}b=F[a+8>>2];d=F[a+12>>2];if((b|0)!=(d|0)){while(1){c=F[b>>2];if(!(ga[F[F[c>>2]+8>>2]](c,a,F[a+4>>2])|0)){break a}b=b+4|0;if((d|0)!=(b|0)){continue}break}}d:{if(!g){break d}b=0;while(1){c=F[F[a+8>>2]+(b<<2)>>2];if(!(ga[F[F[c>>2]+12>>2]](c,F[a+32>>2])|0)){break a}b=b+1|0;if((g|0)!=(b|0)){continue}break}if(!g){break d}e=a+20|0;while(1){b=0;f=h<<2;c=F[f+F[a+8>>2]>>2];d=ga[F[F[c>>2]+24>>2]](c)|0;if((d|0)>0){while(1){c=F[F[a+8>>2]+f>>2];k=ga[F[F[c>>2]+20>>2]](c,b)|0;i=F[a+20>>2];j=F[a+24>>2]-i>>2;e:{if(k>>>0>>0){break e}c=k+1|0;if(c>>>0>j>>>0){Aa(e,c-j|0);i=F[e>>2];break e}if(c>>>0>=j>>>0){break e}F[a+24>>2]=(c<<2)+i}F[(k<<2)+i>>2]=h;b=b+1|0;if((d|0)!=(b|0)){continue}break}}h=h+1|0;if((g|0)!=(h|0)){continue}break}}b=0;if(!(ga[F[F[a>>2]+28>>2]](a)|0)){break b}b=ga[F[F[a>>2]+32>>2]](a)|0}return b|0}return 0}function wa(a,b){var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0;i=ea-16|0;ea=i;e=F[b+20>>2];c=F[b+12>>2];f=F[b+16>>2];a:{if((e|0)>=(c|0)&f>>>0>=I[b+8>>2]|(c|0)<(e|0)){break a}D[a+12|0]=G[f+F[b>>2]|0];e=F[b+20>>2];c=e;f=F[b+16>>2];d=f+1|0;e=d?c:c+1|0;g=d;F[b+16>>2]=d;F[b+20>>2]=e;b:{if(H[b+38>>1]<=513){h=F[b+12>>2];e=c;c=f+5|0;e=c>>>0<5?e+1|0:e;d=F[b+8>>2];f=c;if(d>>>0>>0&(e|0)>=(h|0)|(e|0)>(h|0)){break a}c=g+F[b>>2]|0;c=G[c|0]|G[c+1|0]<<8|(G[c+2|0]<<16|G[c+3|0]<<24);F[b+16>>2]=f;F[b+20>>2]=e;break b}if(!Ne(1,i+12|0,b)){break a}f=F[b+16>>2];e=F[b+20>>2];d=F[b+8>>2];h=F[b+12>>2];c=F[i+12>>2]}g=d-f|0;d=h-(e+(d>>>0>>0)|0)|0;if((d|0)<=0&c>>>0>g>>>0|(d|0)<0|(c|0)<=0){break a}d=f+F[b>>2]|0;F[a>>2]=d;c:{d:{h=c-1|0;g=h+d|0;j=G[g|0];e:{if(j>>>0<=63){F[a+4>>2]=h;d=G[g|0]&63;break e}f:{switch((j>>>6|0)-1|0){case 1:break d;case 0:break f;default:break a}}if(c>>>0<2){break a}F[a+4>>2]=c-2;d=(c+d|0)-2|0;d=G[d+1|0]<<8&16128|G[d|0]}F[a+8>>2]=d+4096;break c}if(c>>>0<3){break a}F[a+4>>2]=c-3;g=a;a=(c+d|0)-3|0;a=G[a+1|0]<<8|G[a+2|0]<<16&4128768|G[a|0];F[g+8>>2]=a+4096;if(a>>>0>1044479){break a}}a=c+f|0;e=a>>>0>>0?e+1|0:e;F[b+16>>2]=a;F[b+20>>2]=e;k=1}ea=i+16|0;return k}function Ic(a,b,c){var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0;d=F[a+8>>2];e=F[a>>2];if(d-e>>2>>>0>=b>>>0){g=F[a+4>>2];h=g-e>>2;f=b>>>0>h>>>0?h:b;a:{if(!f){break a}k=f-1|0;i=f&7;b:{if(!i){d=e;break b}d=e;while(1){F[d>>2]=F[c>>2];f=f-1|0;d=d+4|0;j=j+1|0;if((j|0)!=(i|0)){continue}break}}if(k>>>0<7){break a}while(1){F[d>>2]=F[c>>2];F[d+4>>2]=F[c>>2];F[d+8>>2]=F[c>>2];F[d+12>>2]=F[c>>2];F[d+16>>2]=F[c>>2];F[d+20>>2]=F[c>>2];F[d+24>>2]=F[c>>2];F[d+28>>2]=F[c>>2];d=d+32|0;f=f-8|0;if(f){continue}break}}if(b>>>0>h>>>0){b=(b-h<<2)+g|0;while(1){F[g>>2]=F[c>>2];g=g+4|0;if((b|0)!=(g|0)){continue}break}F[a+4>>2]=b;return}F[a+4>>2]=e+(b<<2);return}if(e){F[a+4>>2]=e;ra(e);F[a+8>>2]=0;F[a>>2]=0;F[a+4>>2]=0;d=0}c:{if(b>>>0>=1073741824){break c}e=d>>1;d=d>>>0<2147483644?b>>>0>>0?e:b:1073741823;if(d>>>0>=1073741824){break c}d=d<<2;e=sa(d);F[a>>2]=e;F[a+8>>2]=d+e;c=F[c>>2];d=e;f=b&7;if(f){while(1){F[d>>2]=c;d=d+4|0;g=g+1|0;if((f|0)!=(g|0)){continue}break}}e=e+(b<<2)|0;if((b-1&1073741823)>>>0>=7){while(1){F[d+28>>2]=c;F[d+24>>2]=c;F[d+20>>2]=c;F[d+16>>2]=c;F[d+12>>2]=c;F[d+8>>2]=c;F[d+4>>2]=c;F[d>>2]=c;d=d+32|0;if((e|0)!=(d|0)){continue}break}}F[a+4>>2]=e;return}va();V()}function Vf(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0;Wd(a,b,c);c=F[a+84>>2];d=F[a+88>>2]-c>>2;a:{if((d|0)>(b|0)){break a}b=b+1|0;if(b>>>0>d>>>0){b:{d=b-d|0;e=F[a+92>>2];c=F[a+88>>2];if(d>>>0<=e-c>>2>>>0){c:{if(!d){break c}b=c;f=d&7;if(f){while(1){F[b>>2]=1;b=b+4|0;g=g+1|0;if((f|0)!=(g|0)){continue}break}}c=(d<<2)+c|0;if((d-1&1073741823)>>>0<7){break c}while(1){F[b+24>>2]=1;F[b+28>>2]=1;F[b+16>>2]=1;F[b+20>>2]=1;F[b+8>>2]=1;F[b+12>>2]=1;F[b>>2]=1;F[b+4>>2]=1;b=b+32|0;if((c|0)!=(b|0)){continue}break}}F[a+88>>2]=c;break b}d:{f=F[a+84>>2];j=c-f|0;c=j>>2;b=c+d|0;if(b>>>0<1073741824){e=e-f|0;h=e>>1;e=e>>>0<2147483644?b>>>0>>0?h:b:1073741823;if(e){if(e>>>0>=1073741824){break d}i=sa(e<<2)}c=(c<<2)+i|0;b=c;h=d&7;if(h){b=c;while(1){F[b>>2]=1;b=b+4|0;g=g+1|0;if((h|0)!=(g|0)){continue}break}}c=c+(d<<2)|0;if((d-1&1073741823)>>>0>=7){while(1){F[b+24>>2]=1;F[b+28>>2]=1;F[b+16>>2]=1;F[b+20>>2]=1;F[b+8>>2]=1;F[b+12>>2]=1;F[b>>2]=1;F[b+4>>2]=1;b=b+32|0;if((c|0)!=(b|0)){continue}break}}if((j|0)>0){ta(i,f,j)}F[a+92>>2]=(e<<2)+i;F[a+88>>2]=c;F[a+84>>2]=i;if(f){ra(f)}break b}va();V()}za();V()}return}if(b>>>0>=d>>>0){break a}F[a+88>>2]=c+(b<<2)}}function Je(a,b){var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0;h=ea-16|0;ea=h;a:{b:{if(H[b+38>>1]<=511){g=F[b+12>>2];i=g;c=F[b+20>>2];d=F[b+16>>2];f=d+8|0;c=f>>>0<8?c+1|0:c;e=F[b+8>>2];if(e>>>0>>0&(c|0)>=(g|0)|(c|0)>(g|0)){break a}d=d+F[b>>2]|0;g=G[d|0]|G[d+1|0]<<8|(G[d+2|0]<<16|G[d+3|0]<<24);d=G[d+4|0]|G[d+5|0]<<8|(G[d+6|0]<<16|G[d+7|0]<<24);F[b+16>>2]=f;F[b+20>>2]=c;break b}if(!kb(1,h+8|0,b)){break a}f=F[b+16>>2];c=F[b+20>>2];e=F[b+8>>2];i=F[b+12>>2];g=F[h+8>>2];d=F[h+12>>2]}j=e-f|0;e=i-(c+(f>>>0>e>>>0)|0)|0;if((e|0)==(d|0)&g>>>0>j>>>0|d>>>0>e>>>0){break a}c=c+d|0;e=f+g|0;c=e>>>0>>0?c+1|0:c;F[b+16>>2]=e;F[b+20>>2]=c;c=g;if((c|0)<=0){break a}b=f+F[b>>2]|0;F[a+40>>2]=b;f=c-1|0;g=b+f|0;e=G[g|0];c:{if(e>>>0<=63){F[a+44>>2]=f;b=G[g|0]&63;break c}d:{switch((e>>>6|0)-1|0){case 0:if(c>>>0<2){break a}F[a+44>>2]=c-2;b=(b+c|0)-2|0;b=G[b+1|0]<<8&16128|G[b|0];break c;case 1:if(c>>>0<3){break a}F[a+44>>2]=c-3;b=(b+c|0)-3|0;b=G[b+1|0]<<8|G[b+2|0]<<16&4128768|G[b|0];break c;default:break d}}F[a+44>>2]=c-4;b=(b+c|0)-4|0;b=G[b+2|0]<<16|G[b+3|0]<<24&1056964608|G[b+1|0]<<8|G[b|0]}F[a+48>>2]=b+16384;k=b>>>0<4177920}ea=h+16|0;return k}function ta(a,b,c){var d=0,e=0,f=0;if(c>>>0>=512){da(a|0,b|0,c|0);return a}e=a+c|0;a:{if(!((a^b)&3)){b:{if(!(a&3)){c=a;break b}if(!c){c=a;break b}c=a;while(1){D[c|0]=G[b|0];b=b+1|0;c=c+1|0;if(!(c&3)){break b}if(c>>>0>>0){continue}break}}d=e&-4;c:{if(d>>>0<64){break c}f=d+-64|0;if(f>>>0>>0){break c}while(1){F[c>>2]=F[b>>2];F[c+4>>2]=F[b+4>>2];F[c+8>>2]=F[b+8>>2];F[c+12>>2]=F[b+12>>2];F[c+16>>2]=F[b+16>>2];F[c+20>>2]=F[b+20>>2];F[c+24>>2]=F[b+24>>2];F[c+28>>2]=F[b+28>>2];F[c+32>>2]=F[b+32>>2];F[c+36>>2]=F[b+36>>2];F[c+40>>2]=F[b+40>>2];F[c+44>>2]=F[b+44>>2];F[c+48>>2]=F[b+48>>2];F[c+52>>2]=F[b+52>>2];F[c+56>>2]=F[b+56>>2];F[c+60>>2]=F[b+60>>2];b=b- -64|0;c=c- -64|0;if(f>>>0>=c>>>0){continue}break}}if(c>>>0>=d>>>0){break a}while(1){F[c>>2]=F[b>>2];b=b+4|0;c=c+4|0;if(d>>>0>c>>>0){continue}break}break a}if(e>>>0<4){c=a;break a}d=e-4|0;if(d>>>0>>0){c=a;break a}c=a;while(1){D[c|0]=G[b|0];D[c+1|0]=G[b+1|0];D[c+2|0]=G[b+2|0];D[c+3|0]=G[b+3|0];b=b+4|0;c=c+4|0;if(d>>>0>=c>>>0){continue}break}}if(c>>>0>>0){while(1){D[c|0]=G[b|0];b=b+1|0;c=c+1|0;if((e|0)!=(c|0)){continue}break}}return a}function Ia(a,b,c){var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0;f=F[a+8>>2];e=F[a+4>>2];if(f-e>>2>>>0>=b>>>0){a:{if(!b){break a}d=e;g=b&7;if(g){while(1){F[d>>2]=F[c>>2];d=d+4|0;h=h+1|0;if((g|0)!=(h|0)){continue}break}}e=(b<<2)+e|0;if((b-1&1073741823)>>>0<7){break a}while(1){F[d>>2]=F[c>>2];F[d+4>>2]=F[c>>2];F[d+8>>2]=F[c>>2];F[d+12>>2]=F[c>>2];F[d+16>>2]=F[c>>2];F[d+20>>2]=F[c>>2];F[d+24>>2]=F[c>>2];F[d+28>>2]=F[c>>2];d=d+32|0;if((e|0)!=(d|0)){continue}break}}F[a+4>>2]=e;return}b:{g=F[a>>2];k=e-g|0;e=k>>2;d=e+b|0;if(d>>>0<1073741824){f=f-g|0;i=f>>1;f=f>>>0<2147483644?d>>>0>>0?i:d:1073741823;if(f){if(f>>>0>=1073741824){break b}j=sa(f<<2)}e=(e<<2)+j|0;d=e;i=b&7;if(i){d=e;while(1){F[d>>2]=F[c>>2];d=d+4|0;h=h+1|0;if((i|0)!=(h|0)){continue}break}}e=e+(b<<2)|0;if((b-1&1073741823)>>>0>=7){while(1){F[d>>2]=F[c>>2];F[d+4>>2]=F[c>>2];F[d+8>>2]=F[c>>2];F[d+12>>2]=F[c>>2];F[d+16>>2]=F[c>>2];F[d+20>>2]=F[c>>2];F[d+24>>2]=F[c>>2];F[d+28>>2]=F[c>>2];d=d+32|0;if((e|0)!=(d|0)){continue}break}}if((k|0)>0){ta(j,g,k)}F[a+8>>2]=(f<<2)+j;F[a+4>>2]=e;F[a>>2]=j;if(g){ra(g)}return}va();V()}za();V()}function xb(a,b){var c=0,d=0,e=0,f=0,g=0;d=ea-16|0;ea=d;F[a+12>>2]=b;F[a+8>>2]=0;F[a>>2]=0;F[a+4>>2]=0;c=a+16|0;F[c>>2]=0;F[c+4>>2]=0;D[c+5|0]=0;D[c+6|0]=0;D[c+7|0]=0;D[c+8|0]=0;D[c+9|0]=0;D[c+10|0]=0;D[c+11|0]=0;D[c+12|0]=0;F[a+32>>2]=0;F[a+36>>2]=0;F[a+48>>2]=0;F[a+40>>2]=0;F[a+44>>2]=0;F[a+52>>2]=0;F[a+56>>2]=0;F[a+68>>2]=0;F[a+60>>2]=0;F[a+64>>2]=0;F[a+72>>2]=0;F[a+76>>2]=0;F[a+88>>2]=0;F[a+80>>2]=0;F[a+84>>2]=0;F[a+100>>2]=0;F[a+92>>2]=0;F[a+96>>2]=0;g=a+116|0;a:{b:{if(b){if(b>>>0<1073741824){break b}va();V()}F[a+104>>2]=0;F[a+108>>2]=0;F[a+112>>2]=0;F[d+8>>2]=0;F[d>>2]=0;F[d+4>>2]=0;c=1;break a}c=b<<2;e=sa(c);F[a+92>>2]=e;f=c+e|0;F[a+100>>2]=f;ua(e,0,c);F[a+112>>2]=0;F[a+104>>2]=0;F[a+108>>2]=0;F[a+96>>2]=f;e=sa(c);F[a+104>>2]=e;f=c+e|0;F[a+112>>2]=f;ua(e,0,c);F[a+108>>2]=f;e=sa(c);F[d>>2]=e;f=c+e|0;F[d+8>>2]=f;ua(e,0,c);F[d+4>>2]=f;c=b<<5|1}wb(g,c,d);e=F[d>>2];if(e){F[d+4>>2]=e;ra(e)}F[d+8>>2]=0;F[d>>2]=0;F[d+4>>2]=0;if(b){b=b<<2;e=sa(b);F[d>>2]=e;f=b+e|0;F[d+8>>2]=f;ua(e,0,b);F[d+4>>2]=f}wb(a+128|0,c,d);b=F[d>>2];if(b){F[d+4>>2]=b;ra(b)}ea=d+16|0;return a}function xe(a){a=a|0;var b=0,c=0,d=0,e=0,f=0;F[a>>2]=11484;d=a+232|0;b=F[d+196>>2];if(b){F[d+200>>2]=b;ra(b)}c=F[d+184>>2];if(c){b=c;e=F[d+188>>2];if((b|0)!=(e|0)){while(1){b=e-12|0;f=F[b>>2];if(f){F[e-8>>2]=f;ra(f)}e=b;if((b|0)!=(c|0)){continue}break}b=F[d+184>>2]}F[d+188>>2]=c;ra(b)}b=F[d+156>>2];if(b){F[d+160>>2]=b;ra(b)}c=F[d+136>>2];F[d+136>>2]=0;if(c){e=c-4|0;b=F[e>>2];if(b){b=c+(b<<4)|0;while(1){b=b-16|0;if((c|0)!=(b|0)){continue}break}}ra(e)}Vc(a+216|0);b=F[a+196>>2];if(b){F[a+200>>2]=b;ra(b)}b=F[a+184>>2];if(b){F[a+188>>2]=b;ra(b)}b=F[a+172>>2];if(b){F[a+176>>2]=b;ra(b)}b=F[a+160>>2];if(b){F[a+164>>2]=b;ra(b)}b=F[a+144>>2];if(b){while(1){c=F[b>>2];ra(b);b=c;if(b){continue}break}}b=F[a+136>>2];F[a+136>>2]=0;if(b){ra(b)}b=F[a+120>>2];if(b){ra(b)}b=F[a+108>>2];if(b){ra(b)}b=F[a+96>>2];if(b){ra(b)}b=F[a+72>>2];if(b){F[a+76>>2]=b;ra(b)}b=F[a+60>>2];if(b){ra(b)}b=F[a+48>>2];if(b){F[a+52>>2]=b;ra(b)}b=F[a+36>>2];if(b){F[a+40>>2]=b;ra(b)}b=F[a+24>>2];if(b){F[a+28>>2]=b;ra(b)}b=F[a+12>>2];if(b){F[a+16>>2]=b;ra(b)}b=F[a+8>>2];F[a+8>>2]=0;if(b){eb(b)}return a|0}function zc(a,b){var c=0,d=0,e=0,f=0,g=0,h=0,i=0;F[a+16>>2]=0;F[a+20>>2]=0;F[a+8>>2]=0;F[a>>2]=0;F[a+4>>2]=0;F[a+24>>2]=0;c=F[b+4>>2];g=F[b>>2];e=c-g|0;f=(e|0)/20|0;a:{if((c|0)==(g|0)){break a}b:{if(f>>>0<214748365){c=sa(e);F[a+16>>2]=c;F[a+20>>2]=c;F[a+24>>2]=c+L(f,20);f=F[b>>2];b=F[b+4>>2]-f|0;if((b|0)<=0){break a}f=ta(c,f,b);g=0;F[a+28>>2]=0;F[a+20>>2]=f+L((b>>>0)/20|0,20);b=(b|0)/20|0;e=b>>>0>1?b:1;h=e&3;b=0;c=0;if(e-1>>>0>=3){i=e&-4;e=0;while(1){d=f+L(b,20)|0;d=L(F[d+16>>2],F[d+12>>2]);c=c>>>0>d>>>0?c:d;d=f+L(b|1,20)|0;d=L(F[d+16>>2],F[d+12>>2]);c=c>>>0>d>>>0?c:d;d=f+L(b|2,20)|0;d=L(F[d+16>>2],F[d+12>>2]);c=c>>>0>d>>>0?c:d;d=f+L(b|3,20)|0;d=L(F[d+16>>2],F[d+12>>2]);c=c>>>0>d>>>0?c:d;b=b+4|0;e=e+4|0;if((i|0)!=(e|0)){continue}break}}if(h){while(1){e=f+L(b,20)|0;e=L(F[e+16>>2],F[e+12>>2]);c=c>>>0>e>>>0?c:e;b=b+1|0;g=g+1|0;if((h|0)!=(g|0)){continue}break}}if(!c){F[a+12>>2]=0;return a}if((c|0)<0){break b}b=ua(sa(c),0,c);c=b+c|0;F[a+8>>2]=c;F[a+4>>2]=c;F[a>>2]=b;F[a+12>>2]=b;return a}va();V()}va();V()}F[a+28>>2]=0;F[a+12>>2]=0;return a}function Oj(a,b,c,d){var e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0;g=c;a:{b:{c:{d:{e:{f:{g:{h:{i:{j:{k:{if(b){if(!g){break k}if(!d){break j}c=O(d)-O(b)|0;if(c>>>0<=31){break i}break c}if((d|0)==1|d>>>0>1){break c}a=(a>>>0)/(g>>>0)|0;fa=0;break a}if(!a){break h}if(!d){break g}if(d-1&d){break g}a=b>>>Rj(d)|0;fa=0;break a}if(!(g-1&g)){break f}h=(O(g)+33|0)-O(b)|0;e=0-h|0;break d}h=c+1|0;e=63-c|0;break d}a=(b>>>0)/(d>>>0)|0;fa=0;break a}c=O(d)-O(b)|0;if(c>>>0<31){break e}break c}if((g|0)==1){break b}c=Rj(g);d=c&31;if((c&63)>>>0>=32){c=0;a=b>>>d|0}else{c=b>>>d|0;a=((1<>>d}fa=c;break a}h=c+1|0;e=63-c|0}c=h&63;f=c&31;if(c>>>0>=32){c=0;i=b>>>f|0}else{c=b>>>f|0;i=((1<>>f}f=c;c=e&63;e=c&31;if(c>>>0>=32){c=a<>>32-e|b<>>31;f=f<<1|i>>>31;j=m-(f+(c>>>0>e>>>0)|0)>>31;k=g&j;i=c-k|0;f=f-((d&j)+(c>>>0>>0)|0)|0;b=b<<1|a>>>31;a=l|a<<1;l=j&1;h=h-1|0;if(h){continue}break}}fa=b<<1|a>>>31;a=l|a<<1;break a}a=0;b=0}fa=b}return a}function zb(a,b){var c=0,d=0,e=0,f=0,g=0;c=ea-16|0;ea=c;F[a+12>>2]=b;F[a+8>>2]=0;F[a>>2]=0;F[a+4>>2]=0;F[a+16>>2]=0;F[a+20>>2]=0;F[a+32>>2]=0;F[a+24>>2]=0;F[a+28>>2]=0;F[a+36>>2]=0;F[a+40>>2]=0;F[a+52>>2]=0;F[a+44>>2]=0;F[a+48>>2]=0;F[a+56>>2]=0;F[a+60>>2]=0;F[a+72>>2]=0;F[a+64>>2]=0;F[a+68>>2]=0;F[a+76>>2]=0;F[a+80>>2]=0;F[a+92>>2]=0;F[a+84>>2]=0;F[a+88>>2]=0;F[a+104>>2]=0;F[a+96>>2]=0;F[a+100>>2]=0;g=a+120|0;a:{b:{if(b){if(b>>>0<1073741824){break b}va();V()}F[a+108>>2]=0;F[a+112>>2]=0;F[a+116>>2]=0;F[c+8>>2]=0;F[c>>2]=0;F[c+4>>2]=0;e=1;break a}e=b<<2;d=sa(e);F[a+96>>2]=d;f=d+e|0;F[a+104>>2]=f;ua(d,0,e);F[a+116>>2]=0;F[a+108>>2]=0;F[a+112>>2]=0;F[a+100>>2]=f;d=sa(e);F[a+108>>2]=d;f=d+e|0;F[a+116>>2]=f;ua(d,0,e);F[a+112>>2]=f;d=sa(e);F[c>>2]=d;f=d+e|0;F[c+8>>2]=f;ua(d,0,e);F[c+4>>2]=f;e=b<<5|1}wb(g,e,c);d=F[c>>2];if(d){F[c+4>>2]=d;ra(d)}F[c+8>>2]=0;F[c>>2]=0;F[c+4>>2]=0;if(b){b=b<<2;d=sa(b);F[c>>2]=d;f=b+d|0;F[c+8>>2]=f;ua(d,0,b);F[c+4>>2]=f}wb(a+132|0,e,c);b=F[c>>2];if(b){F[c+4>>2]=b;ra(b)}ea=c+16|0;return a}function rc(a,b,c,d){var e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0;k=F[b+16>>2];i=F[c+4>>2]-k|0;e=i;f=F[c>>2]-k|0;F[c>>2]=f;F[c+4>>2]=e;g=F[b+16>>2];e=e>>31;h=(e^i)-e|0;e=f>>31;l=(g|0)>=(h+((e^f)-e|0)|0);a:{if(l){e=i;break a}b:{c:{if((f|0)>=0){e=1;h=1;if((i|0)>=0){break b}j=1;e=-1;h=-1;if(f){break c}break b}j=-1;e=-1;h=-1;if((i|0)<=0){break b}}e=(i|0)<=0?-1:1;h=j}j=L(g,h);f=(f<<1)-j|0;h=(L(e,h)|0)>=0;g=L(e,g);e=((h?0-f|0:f)+g|0)/2|0;F[c+4>>2]=e;m=c;c=(i<<1)-g|0;f=(j+(h?0-c|0:c)|0)/2|0;F[m>>2]=f;g=F[b+16>>2]}c=F[d+4>>2]+e|0;f=F[d>>2]+f|0;d:{if((g|0)<(f|0)){f=f-F[b+4>>2]|0;break d}if((0-g|0)<=(f|0)){break d}f=F[b+4>>2]+f|0}e:{if((c|0)>(g|0)){c=c-F[b+4>>2]|0;break e}if((0-g|0)<=(c|0)){break e}c=F[b+4>>2]+c|0}f:{if(l){g=c;break f}g:{h:{if((f|0)>=0){b=1;e=1;if((c|0)>=0){break g}d=1;b=-1;e=-1;if(f){break h}break g}d=-1;b=-1;e=-1;if((c|0)<=0){break g}}b=(c|0)<=0?-1:1;e=d}i=L(e,g);d=(f<<1)-i|0;F[a>>2]=d;j=0-d|0;h=d;d=(L(b,e)|0)>=0;b=L(b,g);g=((d?j:h)+b|0)/2|0;b=(c<<1)-b|0;f=(i+(d?0-b|0:b)|0)/2|0}F[a>>2]=f+k;F[a+4>>2]=g+k}function Tb(a,b){var c=0,d=0,e=0;c=(a|0)==(b|0);D[b+12|0]=c;a:{if(c){break a}while(1){d=F[b+8>>2];if(G[d+12|0]){break a}b:{c=F[d+8>>2];e=F[c>>2];if((e|0)==(d|0)){e=F[c+4>>2];if(!(!e|G[e+12|0])){break b}c:{if(F[d>>2]==(b|0)){b=d;break c}b=F[d+4>>2];a=F[b>>2];F[d+4>>2]=a;if(a){F[a+8>>2]=d;c=F[d+8>>2]}F[b+8>>2]=c;a=F[d+8>>2];F[((F[a>>2]!=(d|0))<<2)+a>>2]=b;F[b>>2]=d;F[d+8>>2]=b;c=F[b+8>>2];d=F[c>>2]}D[b+12|0]=1;D[c+12|0]=0;a=F[d+4>>2];F[c>>2]=a;if(a){F[a+8>>2]=c}F[d+8>>2]=F[c+8>>2];a=F[c+8>>2];F[((F[a>>2]!=(c|0))<<2)+a>>2]=d;F[d+4>>2]=c;F[c+8>>2]=d;return}if(!(G[e+12|0]|!e)){break b}d:{if(F[d>>2]!=(b|0)){b=d;break d}a=F[b+4>>2];F[d>>2]=a;if(a){F[a+8>>2]=d;c=F[d+8>>2]}F[b+8>>2]=c;a=F[d+8>>2];F[((F[a>>2]!=(d|0))<<2)+a>>2]=b;F[b+4>>2]=d;F[d+8>>2]=b;c=F[b+8>>2]}D[b+12|0]=1;D[c+12|0]=0;a=F[c+4>>2];b=F[a>>2];F[c+4>>2]=b;if(b){F[b+8>>2]=c}F[a+8>>2]=F[c+8>>2];b=F[c+8>>2];F[((F[b>>2]!=(c|0))<<2)+b>>2]=a;F[a>>2]=c;F[c+8>>2]=a;break a}D[d+12|0]=1;D[c+12|0]=(a|0)==(c|0);D[e+12|0]=1;b=c;if((c|0)!=(a|0)){continue}break}}}function re(a,b,c,d){var e=0,f=0,g=0,h=0,i=0,j=0;a:{b:{c:{if(!b){if((d|0)<0){break a}e=F[a+4>>2];b=F[a>>2];d=e-b|0;if(c>>>0>d>>>0){g=c-d|0;f=F[a+8>>2];if(g>>>0<=f-e>>>0){i=a,j=ua(e,0,g)+g|0,F[i+4>>2]=j;break c}if((c|0)<0){break b}e=f-b|0;f=e<<1;f=e>>>0<1073741823?c>>>0>>0?f:c:2147483647;e=sa(f);ua(e+d|0,0,g);if((d|0)>0){ta(e,b,d)}F[a+8>>2]=e+f;F[a+4>>2]=c+e;F[a>>2]=e;if(!b){break c}ra(b);break c}if(c>>>0>=d>>>0){break c}F[a+4>>2]=b+c;break c}if((d|0)<0){break a}h=F[a+4>>2];g=F[a>>2];e=h-g|0;d:{if((d|0)<=0&c>>>0<=e>>>0|(d|0)<0){break d}if(c>>>0>e>>>0){f=c-e|0;d=F[a+8>>2];if(f>>>0<=d-h>>>0){i=a,j=ua(h,0,f)+f|0,F[i+4>>2]=j;break d}if((c|0)<0){break b}d=d-g|0;h=d<<1;h=d>>>0<1073741823?c>>>0>>0?h:c:2147483647;d=sa(h);ua(d+e|0,0,f);if((e|0)>0){ta(d,g,e)}F[a+8>>2]=d+h;F[a+4>>2]=c+d;F[a>>2]=d;if(!g){break d}ra(g);break d}if(c>>>0>=e>>>0){break d}F[a+4>>2]=c+g}if(!c){break c}Ra(F[a>>2],b,c)}b=F[a+28>>2];c=F[a+24>>2]+1|0;b=c?b:b+1|0;F[a+24>>2]=c;F[a+28>>2]=b;e=1;break a}va();V()}return e}function Oe(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0,g=0,h=0,i=M(0),j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0;k=ea-16|0;ea=k;if(F[c+28>>2]==9){d=F[a+4>>2];g=D[c+24|0];e=g<<2;f=sa((g&1073741823)!=(g|0)?-1:e);l=k+8|0;F[l>>2]=1065353216;i=J[a+20>>2];d=-1<0){J[l>>2]=i/M(d|0)}o=(d|0)>0;a:{if(!o){break a}j=F[c+80>>2];if(!j){break a}d=0;if((g|0)<=0){if((j|0)!=1){a=j&-2;b=0;while(1){ta(F[F[c+64>>2]>>2]+d|0,f,e);d=d+e|0;ta(d+F[F[c+64>>2]>>2]|0,f,e);d=d+e|0;b=b+2|0;if((a|0)!=(b|0)){continue}break}}if(!(j&1)){break a}ta(F[F[c+64>>2]>>2]+d|0,f,e);break a}p=F[F[b>>2]>>2]+F[b+48>>2]|0;t=g&-2;u=g&1;while(1){m=F[a+8>>2];i=J[l>>2];b=0;n=0;if((g|0)!=1){while(1){h=b<<2;q=(d<<2)+p|0;J[h+f>>2]=M(i*M(F[q>>2]))+J[h+m>>2];h=h|4;J[h+f>>2]=M(i*M(F[q+4>>2]))+J[h+m>>2];b=b+2|0;d=d+2|0;n=n+2|0;if((t|0)!=(n|0)){continue}break}}if(u){b=b<<2;J[b+f>>2]=M(i*M(F[(d<<2)+p>>2]))+J[b+m>>2];d=d+1|0}ta(F[F[c+64>>2]>>2]+r|0,f,e);r=e+r|0;s=s+1|0;if((s|0)!=(j|0)){continue}break}}ra(f)}ea=k+16|0;return o|0}function dj(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0;c=F[b+88>>2];if(!(!c|F[c>>2]!=1)){d=F[c+8>>2];F[a+4>>2]=G[d|0]|G[d+1|0]<<8|(G[d+2|0]<<16|G[d+3|0]<<24);e=a+8|0;d=D[b+24|0];f=F[a+8>>2];g=F[a+12>>2]-f>>2;a:{if(d>>>0>g>>>0){Aa(e,d-g|0);d=D[b+24|0];break a}if(d>>>0>=g>>>0){break a}F[a+12>>2]=f+(d<<2)}k=1;g=F[c+8>>2];b:{if((d|0)<=0){b=4;break b}h=d&3;e=F[e>>2];c:{if(d-1>>>0<3){b=4;d=0;break c}l=d&-4;d=0;b=4;while(1){f=d<<2;c=b+g|0;F[f+e>>2]=G[c|0]|G[c+1|0]<<8|(G[c+2|0]<<16|G[c+3|0]<<24);F[e+(f|4)>>2]=G[c+4|0]|G[c+5|0]<<8|(G[c+6|0]<<16|G[c+7|0]<<24);F[e+(f|8)>>2]=G[c+8|0]|G[c+9|0]<<8|(G[c+10|0]<<16|G[c+11|0]<<24);F[e+(f|12)>>2]=G[c+12|0]|G[c+13|0]<<8|(G[c+14|0]<<16|G[c+15|0]<<24);d=d+4|0;b=b+16|0;i=i+4|0;if((l|0)!=(i|0)){continue}break}}if(!h){break b}while(1){c=b+g|0;F[e+(d<<2)>>2]=G[c|0]|G[c+1|0]<<8|(G[c+2|0]<<16|G[c+3|0]<<24);d=d+1|0;b=b+4|0;j=j+1|0;if((j|0)!=(h|0)){continue}break}}c=a;a=b+g|0;F[c+20>>2]=G[a|0]|G[a+1|0]<<8|(G[a+2|0]<<16|G[a+3|0]<<24)}return k|0}function of(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0;if(he(a,b)){i=a+36|0;g=ga[F[F[a>>2]+24>>2]](a)|0;d=F[a+40>>2];e=F[a+36>>2];c=d-e>>2;a:{if(g>>>0>c>>>0){Wb(i,g-c|0);break a}if(c>>>0<=g>>>0){break a}e=e+(g<<2)|0;if((e|0)!=(d|0)){while(1){d=d-4|0;c=F[d>>2];F[d>>2]=0;if(c){ga[F[F[c>>2]+4>>2]](c)}if((d|0)!=(e|0)){continue}break}}F[a+40>>2]=e}b:{if((g|0)<=0){e=0;break b}e=1;c=F[b+20>>2];d=F[b+12>>2];f=F[b+16>>2];if((c|0)>=(d|0)&f>>>0>=I[b+8>>2]|(c|0)>(d|0)){break b}d=0;while(1){h=G[f+F[b>>2]|0];f=f+1|0;c=f?c:c+1|0;F[b+16>>2]=f;F[b+20>>2]=c;f=ga[F[F[a>>2]+48>>2]](a,h)|0;h=d<<2;j=h+F[a+36>>2]|0;c=F[j>>2];F[j>>2]=f;if(c){ga[F[F[c>>2]+4>>2]](c)}c=F[F[i>>2]+h>>2];if(!c){break b}if(!(l=c,m=ga[F[F[a>>2]+28>>2]](a)|0,n=ga[F[F[a>>2]+20>>2]](a,d)|0,k=F[F[c>>2]+8>>2],ga[k](l|0,m|0,n|0)|0)){break b}d=d+1|0;e=(g|0)>(d|0);if((d|0)==(g|0)){break b}f=F[b+16>>2];c=F[b+20>>2];h=F[b+12>>2];if(f>>>0>2]&(c|0)<=(h|0)|(c|0)<(h|0)){continue}break}}a=!e}else{a=0}return a|0}function Ih(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0;k=F[a+12>>2];c=F[a+68>>2];d=F[c+80>>2];D[b+84|0]=0;m=b+68|0;i=F[b+68>>2];e=F[b+72>>2]-i>>2;a:{if(e>>>0>>0){Ia(m,d-e|0,12372);c=F[a+68>>2];d=F[c+80>>2];break a}if(d>>>0>=e>>>0){break a}F[b+72>>2]=i+(d<<2)}b=F[c+100>>2];e=F[c+96>>2];i=(b-e|0)/12|0;b:{if((b|0)==(e|0)){break b}n=1;k=F[k+28>>2];f=F[k>>2];if((f|0)==-1){break b}o=i>>>0>1?i:1;c=e;b=0;while(1){g=F[c>>2];if(g>>>0>=d>>>0){break b}j=F[F[a+72>>2]+12>>2];h=F[j+(f<<2)>>2];if(h>>>0>=d>>>0){break b}f=F[m>>2];F[f+(g<<2)>>2]=h;g=k+(l<<2)|0;h=F[g+4>>2];if((h|0)==-1){break b}l=F[c+4>>2];if(l>>>0>=d>>>0){break b}h=F[(h<<2)+j>>2];if(h>>>0>=d>>>0){break b}F[f+(l<<2)>>2]=h;g=F[g+8>>2];if((g|0)==-1){break b}c=F[c+8>>2];if(c>>>0>=d>>>0){break b}j=F[(g<<2)+j>>2];if(j>>>0>=d>>>0){break b}F[f+(c<<2)>>2]=j;b=b+1|0;n=i>>>0>b>>>0;if((b|0)==(o|0)){break b}c=e+L(b,12)|0;l=L(b,3);f=F[k+(l<<2)>>2];if((f|0)!=-1){continue}break}}return(n^-1)&1}function Fh(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0;h=F[d+80>>2];e=ea-48|0;ea=e;a=F[a+4>>2];k=a-31|0;a:{if(k>>>0<4294967267){break a}i=F[F[d>>2]>>2]+F[d+48>>2]|0;F[e+16>>2]=a;a=-1<>2]=a^-1;a=-2-a|0;F[e+24>>2]=a;F[e+32>>2]=(a|0)/2;J[e+28>>2]=M(2)/M(a|0);f=F[c>>2];if((f|0)!=F[c+4>>2]){a=0;d=0;while(1){g=F[(d<<2)+f>>2];h=e+36|0;j=F[F[b>>2]>>2];m=F[b+48>>2];f=F[b+44>>2];l=F[b+40>>2];if(!G[b+84|0]){g=F[F[b+68>>2]+(g<<2)>>2]}g=Mj(l,f,g,0)+m|0;ta(h,g+j|0,l);fe(e+16|0,h,e+12|0,e+8|0);f=a<<2;F[f+i>>2]=F[e+12>>2];F[(f|4)+i>>2]=F[e+8>>2];a=a+2|0;d=d+1|0;f=F[c>>2];if(d>>>0>2]-f>>2>>>0){continue}break}break a}if(!h){break a}d=0;a=0;while(1){j=e+36|0;c=F[F[b>>2]>>2];g=F[b+40>>2];f=F[b+48>>2]+Mj(g,F[b+44>>2],G[b+84|0]?a:F[F[b+68>>2]+(a<<2)>>2],0)|0;ta(j,c+f|0,g);fe(e+16|0,j,e+12|0,e+8|0);c=d<<2;F[c+i>>2]=F[e+12>>2];F[(c|4)+i>>2]=F[e+8>>2];d=d+2|0;a=a+1|0;if((h|0)!=(a|0)){continue}break}}ea=e+48|0;return k>>>0>4294967266|0}function Vh(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0;j=F[a+12>>2];c=F[a+108>>2];d=F[c+80>>2];D[b+84|0]=0;m=b+68|0;h=F[b+68>>2];f=F[b+72>>2]-h>>2;a:{if(f>>>0>>0){Ia(m,d-f|0,12372);c=F[a+108>>2];d=F[c+80>>2];break a}if(d>>>0>=f>>>0){break a}F[b+72>>2]=h+(d<<2)}b=F[c+100>>2];f=F[c+96>>2];h=(b-f|0)/12|0;b:{if((b|0)==(f|0)){j=0;break b}n=h>>>0>1?h:1;o=F[j>>2];c=f;b=0;j=1;while(1){e=(e<<2)+o|0;i=F[e>>2];if((i|0)==-1){break b}g=F[c>>2];if(g>>>0>=d>>>0){break b}l=F[F[a+112>>2]+12>>2];k=F[l+(i<<2)>>2];if(k>>>0>=d>>>0){break b}i=F[m>>2];F[i+(g<<2)>>2]=k;g=F[e+4>>2];if((g|0)==-1){break b}k=F[c+4>>2];if(k>>>0>=d>>>0){break b}g=F[(g<<2)+l>>2];if(g>>>0>=d>>>0){break b}F[i+(k<<2)>>2]=g;e=F[e+8>>2];if((e|0)==-1){break b}c=F[c+8>>2];if(c>>>0>=d>>>0){break b}e=F[(e<<2)+l>>2];if(e>>>0>=d>>>0){break b}F[i+(c<<2)>>2]=e;b=b+1|0;j=h>>>0>b>>>0;if((b|0)==(n|0)){break b}e=L(b,3);c=f+L(b,12)|0;if((b|0)!=1431655765){continue}break}}return(j^-1)&1}function Nh(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0;j=F[a+12>>2];c=F[a+68>>2];d=F[c+80>>2];D[b+84|0]=0;m=b+68|0;h=F[b+68>>2];f=F[b+72>>2]-h>>2;a:{if(f>>>0>>0){Ia(m,d-f|0,12372);c=F[a+68>>2];d=F[c+80>>2];break a}if(d>>>0>=f>>>0){break a}F[b+72>>2]=h+(d<<2)}b=F[c+100>>2];f=F[c+96>>2];h=(b-f|0)/12|0;b:{if((b|0)==(f|0)){j=0;break b}n=h>>>0>1?h:1;o=F[j>>2];c=f;b=0;j=1;while(1){e=(e<<2)+o|0;i=F[e>>2];if((i|0)==-1){break b}g=F[c>>2];if(g>>>0>=d>>>0){break b}l=F[F[a+72>>2]+12>>2];k=F[l+(i<<2)>>2];if(k>>>0>=d>>>0){break b}i=F[m>>2];F[i+(g<<2)>>2]=k;g=F[e+4>>2];if((g|0)==-1){break b}k=F[c+4>>2];if(k>>>0>=d>>>0){break b}g=F[(g<<2)+l>>2];if(g>>>0>=d>>>0){break b}F[i+(k<<2)>>2]=g;e=F[e+8>>2];if((e|0)==-1){break b}c=F[c+8>>2];if(c>>>0>=d>>>0){break b}e=F[(e<<2)+l>>2];if(e>>>0>=d>>>0){break b}F[i+(c<<2)>>2]=e;b=b+1|0;j=h>>>0>b>>>0;if((b|0)==(n|0)){break b}e=L(b,3);c=f+L(b,12)|0;if((b|0)!=1431655765){continue}break}}return(j^-1)&1}function Xa(a,b,c){var d=0,e=0,f=0,g=0,h=0,i=0,j=0;d=(c>>>0)/3|0;i=F[(F[F[a+8>>2]+96>>2]+L(d,12)|0)+(c-L(d,3)<<2)>>2];e=F[F[a+12>>2]+4>>2];d=F[e+4>>2];a:{if((d|0)!=F[e+8>>2]){F[d>>2]=i;F[e+4>>2]=d+4;break a}b:{h=F[e>>2];g=d-h|0;j=g>>2;d=j+1|0;if(d>>>0<1073741824){f=g>>1;f=g>>>0<2147483644?d>>>0>>0?f:d:1073741823;if(f){if(f>>>0>=1073741824){break b}d=sa(f<<2)}else{d=0}j=d+(j<<2)|0;F[j>>2]=i;if((g|0)>0){ta(d,h,g)}F[e+8>>2]=d+(f<<2);F[e+4>>2]=j+4;F[e>>2]=d;if(h){ra(h)}break a}va();V()}za();V()}e=F[a+4>>2];d=F[e+4>>2];c:{d:{e:{if((d|0)!=F[e+8>>2]){F[d>>2]=c;F[e+4>>2]=d+4;break e}h=F[e>>2];g=d-h|0;i=g>>2;d=i+1|0;if(d>>>0>=1073741824){break d}f=g>>1;f=g>>>0<2147483644?d>>>0>>0?f:d:1073741823;if(f){if(f>>>0>=1073741824){break c}d=sa(f<<2)}else{d=0}i=d+(i<<2)|0;F[i>>2]=c;if((g|0)>0){ta(d,h,g)}F[e+8>>2]=d+(f<<2);F[e+4>>2]=i+4;F[e>>2]=d;if(!h){break e}ra(h)}a=F[a+4>>2];F[F[a+12>>2]+(b<<2)>>2]=F[a+24>>2];F[a+24>>2]=F[a+24>>2]+1;return}va();V()}za();V()}function Fc(a,b){var c=0,d=0,e=0,f=0,g=0,h=0;h=F[a>>2];c=h+(b>>>3&536870908)|0;F[c>>2]=F[c>>2]|1<>2];e=(b|0)==-1;c=-1;a:{if(e){break a}d=b+1|0;d=(d>>>0)%3|0?d:b-2|0;c=-1;if((d|0)==-1){break a}c=F[F[f>>2]+(d<<2)>>2]}d=F[a+12>>2];g=(c>>>3&536870908)+d|0;F[g>>2]=F[g>>2]|1<>>0)%3|0){c=b-1|0;break f}c=b+2|0;if((c|0)==-1){break e}}e=F[F[f>>2]+(c<<2)>>2];c=1<>>3&536870908)|0;g=F[e>>2];break d}e=d+536870908|0;c=F[d+536870908>>2];g=-2147483648}F[e>>2]=c|g;c=-1;b=F[F[f+12>>2]+(b<<2)>>2];if((b|0)==-1){break b}D[a+24|0]=0;a=(b>>>3&536870908)+h|0;F[a>>2]=F[a>>2]|1<>>0)%3|0?a:b-2|0;if((a|0)!=-1){c=F[F[f>>2]+(a<<2)>>2]}a=d+(c>>>3&536870908)|0;F[a>>2]=F[a>>2]|1<>>0)%3|0){b=b-1|0;break h}b=b+2|0;a=-1;if((b|0)==-1){break g}}a=F[F[f>>2]+(b<<2)>>2]}b=1<>>3&536870908)|0;c=F[a>>2];break c}a=d+536870908|0;b=F[d+536870908>>2];c=-2147483648}F[a>>2]=b|c}}function pd(a,b){var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0;a:{c=F[a+8>>2];b:{if((c|0)!=F[a+12>>2]){e=c;break b}d=F[a+4>>2];g=F[a>>2];if(d>>>0>g>>>0){f=c-d|0;g=((d-g>>2)+1|0)/-2<<2;e=g+d|0;if((c|0)!=(d|0)){Ra(e,d,f);c=F[a+4>>2]}e=e+f|0;F[a+8>>2]=e;F[a+4>>2]=c+g;break b}f=(c|0)==(g|0)?1:c-g>>1;if(f>>>0>=1073741824){break a}e=f<<2;h=sa(e);k=h+e|0;f=(f&-4)+h|0;e=f;c:{if((c|0)==(d|0)){break c}c=c-d|0;l=c&-4;i=c-4|0;j=(i>>>2|0)+1&7;d:{if(!j){c=f;break d}e=0;c=f;while(1){F[c>>2]=F[d>>2];d=d+4|0;c=c+4|0;e=e+1|0;if((j|0)!=(e|0)){continue}break}}e=f+l|0;if(i>>>0<28){break c}while(1){F[c>>2]=F[d>>2];F[c+4>>2]=F[d+4>>2];F[c+8>>2]=F[d+8>>2];F[c+12>>2]=F[d+12>>2];F[c+16>>2]=F[d+16>>2];F[c+20>>2]=F[d+20>>2];F[c+24>>2]=F[d+24>>2];F[c+28>>2]=F[d+28>>2];d=d+32|0;c=c+32|0;if((e|0)!=(c|0)){continue}break}}F[a+12>>2]=k;F[a+8>>2]=e;F[a+4>>2]=f;F[a>>2]=h;if(!g){break b}ra(g);e=F[a+8>>2]}F[e>>2]=F[b>>2];F[a+8>>2]=F[a+8>>2]+4;return}za();V()}function od(a,b){var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0;a:{f=F[a+4>>2];b:{if((f|0)!=F[a>>2]){c=f;break b}g=F[a+8>>2];c=F[a+12>>2];if(g>>>0>>0){e=((c-g>>2)+1|0)/2<<2;c=e+g|0;if((f|0)!=(g|0)){d=g-f|0;c=c-d|0;Ra(c,f,d);f=F[a+8>>2]}F[a+4>>2]=c;F[a+8>>2]=e+f;break b}d=(c|0)==(f|0)?1:c-f>>1;if(d>>>0>=1073741824){break a}c=d<<2;i=sa(c);k=i+c|0;c=(d+3&-4)+i|0;h=c;c:{if((f|0)==(g|0)){break c}g=g-f|0;l=g&-4;e=c;d=f;j=g-4|0;g=(j>>>2|0)+1&7;if(g){h=0;while(1){F[e>>2]=F[d>>2];d=d+4|0;e=e+4|0;h=h+1|0;if((g|0)!=(h|0)){continue}break}}h=c+l|0;if(j>>>0<28){break c}while(1){F[e>>2]=F[d>>2];F[e+4>>2]=F[d+4>>2];F[e+8>>2]=F[d+8>>2];F[e+12>>2]=F[d+12>>2];F[e+16>>2]=F[d+16>>2];F[e+20>>2]=F[d+20>>2];F[e+24>>2]=F[d+24>>2];F[e+28>>2]=F[d+28>>2];d=d+32|0;e=e+32|0;if((h|0)!=(e|0)){continue}break}}F[a+12>>2]=k;F[a+8>>2]=h;F[a+4>>2]=c;F[a>>2]=i;if(!f){break b}ra(f);c=F[a+4>>2]}F[c-4>>2]=F[b>>2];F[a+4>>2]=F[a+4>>2]-4;return}za();V()}function Uh(a){a=a|0;var b=0,c=0,d=0,e=0,f=0,g=0,h=0;g=ea-16|0;ea=g;b=F[a+4>>2];d=F[b>>2];a:{c=F[a+12>>2];c=F[c+28>>2]-F[c+24>>2]|0;e=c>>2;b:{if(e>>>0<=F[b+8>>2]-d>>2>>>0){break b}if((c|0)<0){break a}f=F[b+4>>2];c=sa(c);h=c+(e<<2)|0;e=f-d|0;f=e+c|0;if((e|0)>0){ta(c,d,e)}F[b+8>>2]=h;F[b+4>>2]=f;F[b>>2]=c;if(!d){break b}ra(d)}b=F[a+12>>2];d=F[b+28>>2];b=F[b+24>>2];F[g+12>>2]=0;b=d-b>>2;c=a+96|0;e=F[c>>2];d=F[a+100>>2]-e>>2;c:{if(b>>>0>d>>>0){Ia(c,b-d|0,g+12|0);break c}if(b>>>0>=d>>>0){break c}F[a+100>>2]=e+(b<<2)}e=a+8|0;b=F[a+116>>2];d:{if(b){c=F[b>>2];if((c|0)==F[b+4>>2]){d=1;break d}b=0;while(1){d=we(e,F[(b<<2)+c>>2]);if(!d){break d}f=F[a+116>>2];c=F[f>>2];b=b+1|0;if(b>>>0>2]-c>>2>>>0){continue}break}break d}d=1;a=F[a+12>>2];a=F[a+4>>2]-F[a>>2]|0;if(a>>>0<12){break d}a=(a>>2>>>0)/3|0;b=0;while(1){d=we(e,L(b,3));if(!d){break d}b=b+1|0;if((a|0)!=(b|0)){continue}break}}ea=g+16|0;return d|0}va();V()}function $a(a,b){var c=0,d=0,e=0,f=0,g=0,h=0;d=ea-16|0;ea=d;a:{e=F[a+4>>2];b:{if(e>>>0>>0){f=b-e|0;c=F[a+8>>2];g=c<<5;c:{if(!(f>>>0>g>>>0|e>>>0>g-f>>>0)){F[a+4>>2]=b;h=e&31;b=F[a>>2]+(e>>>3&536870908)|0;break c}F[d+8>>2]=0;F[d>>2]=0;F[d+4>>2]=0;if((b|0)<0){break a}if(g>>>0<=1073741822){c=c<<6;b=b+31&-32;b=b>>>0>>0?c:b}else{b=2147483647}fb(d,b);c=F[a+4>>2];F[d+4>>2]=c+f;e=F[a>>2];b=F[d>>2];d:{if((c|0)<=0){break d}g=c>>>5<<2;b=Ra(b,e,g)+g|0;h=c&31;e:{if(!h){h=0;break e}c=-1>>>32-h|0;F[b>>2]=F[b>>2]&(c^-1)|F[e+g>>2]&c}e=F[a>>2]}F[a>>2]=F[d>>2];F[d>>2]=e;c=F[a+4>>2];F[a+4>>2]=F[d+4>>2];F[d+4>>2]=c;c=F[a+8>>2];F[a+8>>2]=F[d+8>>2];F[d+8>>2]=c;if(!e){break c}ra(e)}if(!f){break b}if(h){c=32-h|0;a=c>>>0>>0?c:f;F[b>>2]=F[b>>2]&(-1<>>c-a^-1);f=f-a|0;b=b+4|0}a=b;b=f>>>5<<2;a=ua(a,0,b);if((f&-32)==(f|0)){break b}a=a+b|0;F[a>>2]=F[a>>2]&(-1>>>32-(f&31)^-1);break b}F[a+4>>2]=b}ea=d+16|0;return}va();V()}function Bc(a,b){var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0;d=G[a+11|0]>>>7|0?F[a+4>>2]:G[a+11|0];if(d>>>0>>0){h=ea-16|0;ea=h;f=b-d|0;if(f){b=G[a+11|0]>>>7|0;g=b?F[a+4>>2]:G[a+11|0];i=g+f|0;b=b?(F[a+8>>2]&2147483647)-1|0:10;if(b-g>>>0>>0){a:{d=ea-16|0;ea=d;c=i-b|0;if(c>>>0<=-17-b>>>0){j=G[a+11|0]>>>7|0?F[a>>2]:a;b:{if(b>>>0<2147483623){F[d+8>>2]=b<<1;F[d+12>>2]=b+c;c=ea-16|0;ea=c;ea=c+16|0;c=d+8|0;e=d+12|0;c=F[(I[e>>2]>2]?c:e)>>2];if(c>>>0>=11){e=c+16&-16;c=e-1|0;c=(c|0)==11?e:c}else{c=10}break b}c=-18}e=c+1|0;c=sa(e);if(g){Bb(c,j,g)}if((b|0)!=10){ra(j)}F[a>>2]=c;F[a+8>>2]=e|-2147483648;ea=d+16|0;break a}Pa();V()}}b=G[a+11|0]>>>7|0?F[a>>2]:a;d=g+b|0;if(f){ua(d,0,f)}c:{if(G[a+11|0]>>>7|0){F[a+4>>2]=i;break c}D[a+11|0]=i}D[h+15|0]=0;D[b+i|0]=G[h+15|0]}ea=h+16|0;return}c=G[a+11|0]>>>7|0;f=c?F[a>>2]:a;d=ea-16|0;ea=d;d:{if(c){F[a+4>>2]=b;break d}D[a+11|0]=b}D[d+15|0]=0;D[b+f|0]=G[d+15|0];ea=d+16|0}function Ge(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0;f=F[a+12>>2];h=F[a+8>>2];d=f-h>>2;b=D[b+24|0];a:{if(d>>>0>>0){Aa(a+8|0,b-d|0);h=F[a+8>>2];f=F[a+12>>2];break a}if(b>>>0>=d>>>0){break a}f=(b<<2)+h|0;F[a+12>>2]=f}b=0;i=F[c+20>>2];e=F[c+16>>2];d=f-h|0;f=d;g=e+d|0;j=F[c+12>>2];i=d>>>0>g>>>0?i+1|0:i;b:{if(g>>>0>I[c+8>>2]&(j|0)<=(i|0)|(i|0)>(j|0)){break b}ta(h,e+F[c>>2]|0,d);d=F[c+20>>2];e=f+F[c+16>>2]|0;d=e>>>0>>0?d+1|0:d;g=e;F[c+16>>2]=e;F[c+20>>2]=d;e=F[c+12>>2];f=g+4|0;d=f>>>0<4?d+1|0:d;if(f>>>0>I[c+8>>2]&(d|0)>=(e|0)|(d|0)>(e|0)){break b}d=g+F[c>>2]|0;F[a+20>>2]=G[d|0]|G[d+1|0]<<8|(G[d+2|0]<<16|G[d+3|0]<<24);d=F[c+20>>2];g=F[c+16>>2];e=g+4|0;f=e>>>0<4?d+1|0:d;j=e;F[c+16>>2]=e;F[c+20>>2]=f;e=F[c+12>>2];if((f|0)>=(e|0)&j>>>0>=I[c+8>>2]|(f|0)>(e|0)){break b}e=G[j+F[c>>2]|0];f=g+5|0;d=f>>>0<5?d+1|0:d;F[c+16>>2]=f;F[c+20>>2]=d;if(e-1>>>0>29){break b}F[a+4>>2]=e;b=1}return b|0}function vb(a,b){var c=0;a:{if(!wa(a,b)){break a}if(!wa(a+16|0,b)){break a}if(!wa(a+32|0,b)){break a}if(!wa(a+48|0,b)){break a}if(!wa(a- -64|0,b)){break a}if(!wa(a+80|0,b)){break a}if(!wa(a+96|0,b)){break a}if(!wa(a+112|0,b)){break a}if(!wa(a+128|0,b)){break a}if(!wa(a+144|0,b)){break a}if(!wa(a+160|0,b)){break a}if(!wa(a+176|0,b)){break a}if(!wa(a+192|0,b)){break a}if(!wa(a+208|0,b)){break a}if(!wa(a+224|0,b)){break a}if(!wa(a+240|0,b)){break a}if(!wa(a+256|0,b)){break a}if(!wa(a+272|0,b)){break a}if(!wa(a+288|0,b)){break a}if(!wa(a+304|0,b)){break a}if(!wa(a+320|0,b)){break a}if(!wa(a+336|0,b)){break a}if(!wa(a+352|0,b)){break a}if(!wa(a+368|0,b)){break a}if(!wa(a+384|0,b)){break a}if(!wa(a+400|0,b)){break a}if(!wa(a+416|0,b)){break a}if(!wa(a+432|0,b)){break a}if(!wa(a+448|0,b)){break a}if(!wa(a+464|0,b)){break a}if(!wa(a+480|0,b)){break a}if(!wa(a+496|0,b)){break a}c=wa(a+512|0,b)}return c}function Hc(a,b){var c=0,d=0,e=0,f=0,g=0,h=0;g=ea-16|0;ea=g;a:{b:{if(b){F[a+88>>2]=0;F[a+92>>2]=0;c=F[a+84>>2];F[a+84>>2]=0;if(c){ra(c)}F[a+76>>2]=0;F[a+80>>2]=0;c=F[a+72>>2];F[a+72>>2]=0;if(c){ra(c)}c=F[b>>2];d=F[b+4>>2];D[g+15|0]=0;Qa(a,d-c>>2,g+15|0);c=F[b+28>>2];d=F[b+24>>2];D[g+14|0]=0;Qa(a+12|0,c-d>>2,g+14|0);Ic(a+28|0,F[b+4>>2]-F[b>>2]>>2,13708);d=F[b+28>>2]-F[b+24>>2]|0;e=d>>2;c=F[a+52>>2];c:{if(e>>>0<=F[a+60>>2]-c>>2>>>0){break c}if((d|0)<0){break b}f=F[a+56>>2];d=sa(d);h=d+(e<<2)|0;e=f-c|0;f=e+d|0;if((e|0)>0){ta(d,c,e)}F[a+60>>2]=h;F[a+56>>2]=f;F[a+52>>2]=d;if(!c){break c}ra(c)}d=F[b+28>>2]-F[b+24>>2]|0;e=d>>2;c=F[a+40>>2];d:{if(e>>>0<=F[a+48>>2]-c>>2>>>0){break d}if((d|0)<0){break a}f=F[a+44>>2];d=sa(d);h=d+(e<<2)|0;e=f-c|0;f=e+d|0;if((e|0)>0){ta(d,c,e)}F[a+48>>2]=h;F[a+44>>2]=f;F[a+40>>2]=d;if(!c){break d}ra(c)}D[a+24|0]=1;F[a+64>>2]=b}ea=g+16|0;return}va();V()}va();V()}function fe(a,b,c,d){var e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0;j=+J[b>>2];k=+J[b+4>>2];l=+J[b+8>>2];g=N(j)+N(k)+N(l);a:{if(!(g>1e-6)){j=1;k=0;e=0;break a}g=1/g;k=g*k;j=g*j;e=g*l<0}h=F[a+16>>2];l=+(h|0);g=R(j*l+.5);b:{if(N(g)<2147483648){m=~~g;break b}m=-2147483648}f=m>>31;i=(f^m)-f|0;g=R(k*l+.5);c:{if(N(g)<2147483648){f=~~g;break c}f=-2147483648}b=f>>31;b=h-(i+((f^b)-b|0)|0)|0;i=(b|0)>0?b:0;e=e?0-i|0:i;f=f+(b>>31&((f|0)>0?b:0-b|0))|0;d:{if((m|0)>=0){b=e+h|0;a=F[a+8>>2];e=h+f|0;break d}b=f>>31;b=(b^f)-b|0;a=F[a+8>>2];b=(e|0)<0?b:a-b|0;e=(f|0)<0?i:a-i|0}e:{if(!(b|e)){b=a;break e}if(!((a|0)!=(b|0)|e)){b=a;break e}if(!((a|0)!=(e|0)|b)){b=a;break e}if(!((b|0)<=(h|0)|e)){b=(h<<1)-b|0;a=0;break e}if(!((a|0)!=(e|0)|(b|0)>=(h|0))){b=(h<<1)-b|0;break e}if(!((a|0)!=(b|0)|(e|0)>=(h|0))){b=a;a=(h<<1)-e|0;break e}if(b){a=e;break e}b=0;if((e|0)<=(h|0)){a=e;break e}a=(h<<1)-e|0}F[c>>2]=a;F[d>>2]=b}function Se(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0;f=F[b+12>>2];c=f;d=F[b+20>>2];g=d;i=F[b+16>>2];e=i+4|0;d=e>>>0<4?d+1|0:d;j=F[b+8>>2];a:{if(j>>>0>>0&(c|0)<=(d|0)|(c|0)<(d|0)){break a}k=F[b>>2];c=i+k|0;c=G[c|0]|G[c+1|0]<<8|(G[c+2|0]<<16|G[c+3|0]<<24);F[b+16>>2]=e;F[b+20>>2]=d;d=g;h=i+8|0;d=h>>>0<8?d+1|0:d;if(h>>>0>j>>>0&(d|0)>=(f|0)|(d|0)>(f|0)){break a}e=e+k|0;e=G[e|0]|G[e+1|0]<<8|(G[e+2|0]<<16|G[e+3|0]<<24);F[b+16>>2]=h;F[b+20>>2]=d;if((c|0)>(e|0)){break a}F[a+16>>2]=e;F[a+12>>2]=c;l=(e>>31)-((c>>31)+(c>>>0>e>>>0)|0)|0;c=e-c|0;if(!l&c>>>0>2147483646|l){break a}c=c+1|0;F[a+20>>2]=c;e=c>>>1|0;F[a+24>>2]=e;F[a+28>>2]=0-e;if(!(c&1)){F[a+24>>2]=e-1}if(H[b+38>>1]<=513){if((d|0)>=(f|0)&h>>>0>=j>>>0|(d|0)>(f|0)){break a}c=G[h+k|0];d=g;g=i+9|0;d=g>>>0<9?d+1|0:d;F[b+16>>2]=g;F[b+20>>2]=d;if(c>>>0>1){break a}F[a+88>>2]=c}m=wa(a+112|0,b)}return m|0}function Bd(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=M(0),f=M(0),g=M(0),h=M(0),i=M(0),j=0,k=M(0),l=M(0),m=M(0),n=M(0),o=0;a:{if(F[c+28>>2]!=9|G[c+24|0]!=3){break a}a=F[a+4>>2];if(a-31>>>0<4294967267){break a}o=1;j=F[c+80>>2];if(!j){break a}k=M(M(2)/M((1<>2]>>2]+F[c+48>>2]|0;a=F[F[b>>2]>>2]+F[b+48>>2]|0;b=0;while(1){g=M(0);l=M(0);m=M(0);e=M(M(M(F[a>>2])*k)+M(-1));f=M(M(M(F[a+4>>2])*k)+M(-1));i=M(M(M(1)-M(N(e)))-M(N(f)));h=M(Q(M(-i),M(0)));n=M(-h);f=M(f+(f>>8;D[c+10|0]=d>>>16;D[c+11|0]=d>>>24;d=(v(l),x(2));D[c+4|0]=d;D[c+5|0]=d>>>8;D[c+6|0]=d>>>16;D[c+7|0]=d>>>24;d=(v(g),x(2));D[c|0]=d;D[c+1|0]=d>>>8;D[c+2|0]=d>>>16;D[c+3|0]=d>>>24;c=c+12|0;b=b+1|0;if((j|0)!=(b|0)){continue}break}}return o|0}function Ud(a,b,c){var d=0,e=0,f=0,g=0,h=0,i=0,j=0;a:{if(b>>>0<=63){b=0;a=F[a+12>>2];if(a>>>0<2){break a}b=a-1|0;e=b&3;d=F[c>>2];c=0;b:{if(a-2>>>0<3){a=1;b=0;break b}f=b&-4;b=0;a=1;while(1){g=a+3|0;h=a+2|0;i=a+1|0;b=I[d+(b<<2)>>2]>I[d+(a<<2)>>2]?a:b;b=I[d+(b<<2)>>2]>I[d+(i<<2)>>2]?i:b;b=I[d+(b<<2)>>2]>I[d+(h<<2)>>2]?h:b;b=I[d+(b<<2)>>2]>I[d+(g<<2)>>2]?g:b;a=a+4|0;j=j+4|0;if((f|0)!=(j|0)){continue}break}}if(!e){break a}while(1){b=I[d+(b<<2)>>2]>I[d+(a<<2)>>2]?a:b;a=a+1|0;c=c+1|0;if((e|0)!=(c|0)){continue}break}break a}b=F[a+580>>2];d=32-b|0;if((d|0)>=4){c=F[a+576>>2];if((c|0)==F[a+568>>2]){return 0}d=F[c>>2];e=b+4|0;F[a+580>>2]=e;b=d<>>28|0;if((e|0)!=32){break a}F[a+580>>2]=0;F[a+576>>2]=c+4;return b}c=F[a+576>>2];e=c+4|0;if((e|0)==F[a+568>>2]){return 0}f=F[c>>2];F[a+576>>2]=e;F[a+580>>2]=b-28;a=60-b|0;b=F[c+4>>2]>>>a|f<>>a-d}return b}function ye(a){a=a|0;var b=0,c=0,d=0,e=0;F[a>>2]=11436;b=F[a+388>>2];if(b){F[a+392>>2]=b;ra(b)}d=F[a+368>>2];F[a+368>>2]=0;if(d){e=d-4|0;b=F[e>>2];if(b){c=(b<<4)+d|0;while(1){c=c-16|0;if((d|0)!=(c|0)){continue}break}}ra(e)}Vc(a+216|0);b=F[a+196>>2];if(b){F[a+200>>2]=b;ra(b)}b=F[a+184>>2];if(b){F[a+188>>2]=b;ra(b)}b=F[a+172>>2];if(b){F[a+176>>2]=b;ra(b)}b=F[a+160>>2];if(b){F[a+164>>2]=b;ra(b)}c=F[a+144>>2];if(c){while(1){b=F[c>>2];ra(c);c=b;if(b){continue}break}}b=F[a+136>>2];F[a+136>>2]=0;if(b){ra(b)}b=F[a+120>>2];if(b){ra(b)}b=F[a+108>>2];if(b){ra(b)}b=F[a+96>>2];if(b){ra(b)}b=F[a+72>>2];if(b){F[a+76>>2]=b;ra(b)}b=F[a+60>>2];if(b){ra(b)}b=F[a+48>>2];if(b){F[a+52>>2]=b;ra(b)}b=F[a+36>>2];if(b){F[a+40>>2]=b;ra(b)}b=F[a+24>>2];if(b){F[a+28>>2]=b;ra(b)}b=F[a+12>>2];if(b){F[a+16>>2]=b;ra(b)}b=F[a+8>>2];F[a+8>>2]=0;if(b){eb(b)}return a|0}function ze(a){a=a|0;var b=0,c=0,d=0,e=0;F[a>>2]=11384;d=F[a+368>>2];F[a+368>>2]=0;if(d){e=d-4|0;b=F[e>>2];if(b){c=(b<<4)+d|0;while(1){c=c-16|0;if((d|0)!=(c|0)){continue}break}}ra(e)}Vc(a+216|0);b=F[a+196>>2];if(b){F[a+200>>2]=b;ra(b)}b=F[a+184>>2];if(b){F[a+188>>2]=b;ra(b)}b=F[a+172>>2];if(b){F[a+176>>2]=b;ra(b)}b=F[a+160>>2];if(b){F[a+164>>2]=b;ra(b)}c=F[a+144>>2];if(c){while(1){b=F[c>>2];ra(c);c=b;if(b){continue}break}}b=F[a+136>>2];F[a+136>>2]=0;if(b){ra(b)}b=F[a+120>>2];if(b){ra(b)}b=F[a+108>>2];if(b){ra(b)}b=F[a+96>>2];if(b){ra(b)}b=F[a+72>>2];if(b){F[a+76>>2]=b;ra(b)}b=F[a+60>>2];if(b){ra(b)}b=F[a+48>>2];if(b){F[a+52>>2]=b;ra(b)}b=F[a+36>>2];if(b){F[a+40>>2]=b;ra(b)}b=F[a+24>>2];if(b){F[a+28>>2]=b;ra(b)}b=F[a+12>>2];if(b){F[a+16>>2]=b;ra(b)}b=F[a+8>>2];F[a+8>>2]=0;if(b){eb(b)}return a|0}function dd(a,b){var c=0,d=0;c=F[b+8>>2];F[a+4>>2]=F[b+4>>2];F[a+8>>2]=c;F[a+20>>2]=F[b+20>>2];c=F[b+16>>2];F[a+12>>2]=F[b+12>>2];F[a+16>>2]=c;a:{b:{if((a|0)!=(b|0)){c=F[b+28>>2];if(c){d=F[a+24>>2];if(F[a+32>>2]<<5>>>0>>0){if(d){ra(d);F[a+32>>2]=0;F[a+24>>2]=0;F[a+28>>2]=0;c=F[b+28>>2]}if((c|0)<0){break b}c=(c-1>>>5|0)+1|0;d=sa(c<<2);F[a+32>>2]=c;F[a+28>>2]=0;F[a+24>>2]=d;c=F[b+28>>2]}Ra(d,F[b+24>>2],(c-1>>>3&536870908)+4|0);c=F[b+28>>2]}else{c=0}F[a+28>>2]=c;c=F[b+40>>2];if(c){d=F[a+36>>2];if(F[a+44>>2]<<5>>>0>>0){if(d){ra(d);F[a+44>>2]=0;F[a+36>>2]=0;F[a+40>>2]=0;c=F[b+40>>2]}if((c|0)<0){break a}c=(c-1>>>5|0)+1|0;d=sa(c<<2);F[a+44>>2]=c;F[a+40>>2]=0;F[a+36>>2]=d;c=F[b+40>>2]}Ra(d,F[b+36>>2],(c-1>>>3&536870908)+4|0);b=F[b+40>>2]}else{b=0}F[a+40>>2]=b}return}va();V()}va();V()}function Qg(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,f=0,g=0;a:{a=ea-32|0;ea=a;e=Oa(c);if(e>>>0<4294967280){b:{c:{if(e>>>0>=11){g=e+16&-16;f=sa(g);F[a+24>>2]=g|-2147483648;F[a+16>>2]=f;F[a+20>>2]=e;break c}D[a+27|0]=e;f=a+16|0;if(!e){break b}}ta(f,c,e)}D[e+f|0]=0;F[a+8>>2]=0;F[a>>2]=0;F[a+4>>2]=0;d:{c=sb(b,a+16|0);if((c|0)==(b+4|0)){break d}b=F[c+28>>2];f=F[c+32>>2];if((b|0)==(f|0)){break d}b=f-b|0;if(b&3){break d}e=b>>>2|0;f=F[a+4>>2];b=F[a>>2];g=f-b>>2;e:{if(e>>>0>g>>>0){Aa(a,e-g|0);b=F[a>>2];f=F[a+4>>2];break e}if(e>>>0>=g>>>0){break e}f=(e<<2)+b|0;F[a+4>>2]=f}if((b|0)!=(f|0)){e=b;b=F[c+28>>2];ta(e,b,F[c+32>>2]-b|0);break d}Ea();V()}b=F[d>>2];if(b){F[d+4>>2]=b;ra(b)}F[d>>2]=F[a>>2];F[d+4>>2]=F[a+4>>2];F[d+8>>2]=F[a+8>>2];if(D[a+27|0]<0){ra(F[a+16>>2])}ea=a+32|0;break a}Pa();V()}}function Sg(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0;d=ea-16|0;ea=d;a:{e=Oa(c);if(e>>>0<4294967280){b:{c:{if(e>>>0>=11){f=e+16&-16;a=sa(f);F[d+8>>2]=f|-2147483648;F[d>>2]=a;F[d+4>>2]=e;break c}D[d+11|0]=e;a=d;if(!e){break b}}ta(a,c,e)}D[a+e|0]=0;c=G[d+11|0];e=c<<24>>24;b=F[b+4>>2];a=0;d:{if(!b){break d}a=c;c=(e|0)<0;a=c?F[d+4>>2]:a;f=c?F[d>>2]:d;while(1){c=G[b+27|0];g=c<<24>>24<0;c=g?F[b+20>>2]:c;j=c>>>0>>0;e:{f:{g:{h:{i:{j:{i=j?c:a;if(i){h=b+16|0;g=g?F[h>>2]:h;h=Ha(f,g,i);if(h){break j}if(a>>>0>=c>>>0){break i}break e}if(a>>>0>=c>>>0){break h}break e}if((h|0)<0){break e}}c=Ha(g,f,i);if(c){break g}}if(j){break f}a=1;break d}if((c|0)<0){break f}a=1;break d}b=b+4|0}b=F[b>>2];if(b){continue}break}a=0}if((e|0)<0){ra(F[d>>2])}ea=d+16|0;break a}Pa();V()}return a|0}function uc(a){var b=0,c=0,d=0;b=F[a+8>>2];d=F[a>>2];a:{if(G[a+12|0]){b:{c:{d:{e:{if((b|0)==-1){break e}c=b+1|0;b=(c>>>0)%3|0?c:b-2|0;if((b|0)==-1){break e}b=F[F[d+12>>2]+(b<<2)>>2];if((b|0)!=-1){break d}}F[a+8>>2]=-1;break c}c=b+1|0;b=(c>>>0)%3|0?c:b-2|0;F[a+8>>2]=b;if((b|0)!=-1){break b}}c=F[a+4>>2];b=-1;f:{if((c|0)==-1){break f}g:{if((c>>>0)%3|0){c=c-1|0;break g}c=c+2|0;b=-1;if((c|0)==-1){break f}}c=F[F[d+12>>2]+(c<<2)>>2];b=-1;if((c|0)==-1){break f}b=c-1|0;if((c>>>0)%3|0){break f}b=c+2|0}D[a+12|0]=0;F[a+8>>2]=b;return}if((b|0)!=F[a+4>>2]){break a}F[a+8>>2]=-1;return}c=-1;h:{if((b|0)==-1){break h}i:{if((b>>>0)%3|0){b=b-1|0;break i}b=b+2|0;c=-1;if((b|0)==-1){break h}}b=F[F[d+12>>2]+(b<<2)>>2];c=-1;if((b|0)==-1){break h}c=b-1|0;if((b>>>0)%3|0){break h}c=b+2|0}F[a+8>>2]=c}}function Qe(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0;f=F[b+12>>2];c=F[b+20>>2];d=c;i=F[b+16>>2];e=i+4|0;c=e>>>0<4?c+1|0:c;j=F[b+8>>2];g=e;a:{if(j>>>0>>0&(c|0)>=(f|0)|(c|0)>(f|0)){break a}k=F[b>>2];e=i+k|0;h=G[e|0]|G[e+1|0]<<8|(G[e+2|0]<<16|G[e+3|0]<<24);F[b+16>>2]=g;F[b+20>>2]=c;e=H[b+38>>1];if(e>>>0<=513){c=d;d=i+8|0;c=d>>>0<8?c+1|0:c;g=d;if(d>>>0>j>>>0&(c|0)>=(f|0)|(c|0)>(f|0)){break a}F[b+16>>2]=g;F[b+20>>2]=c}if(!(h&1)){break a}d=O(h)^31;if(d-30>>>0<4294967267){break a}F[a+8>>2]=d+1;d=-2<>2]=h;F[a+12>>2]=d^-1;F[a+24>>2]=(h|0)/2;J[a+20>>2]=M(2)/M(h|0);if(e>>>0<=513){if((c|0)>=(f|0)&g>>>0>=j>>>0|(c|0)>(f|0)){break a}f=G[g+k|0];d=g+1|0;c=d?c:c+1|0;F[b+16>>2]=d;F[b+20>>2]=c;if(f>>>0>1){break a}F[a+72>>2]=f}l=wa(a+96|0,b)}return l|0}function Pf(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0;f=ea-32|0;ea=f;d=F[a+28>>2];F[f+16>>2]=d;g=F[a+20>>2];F[f+28>>2]=c;F[f+24>>2]=b;b=g-d|0;F[f+20>>2]=b;g=b+c|0;i=2;a:{b:{b=f+16|0;d=$(F[a+60>>2],b|0,2,f+12|0)|0;if(d){F[3984]=d;d=-1}else{d=0}c:{d:{if(d){d=b;break d}while(1){e=F[f+12>>2];if((e|0)==(g|0)){break c}if((e|0)<0){d=b;break b}h=F[b+4>>2];j=h>>>0>>0;d=(j<<3)+b|0;h=e-(j?h:0)|0;F[d>>2]=h+F[d>>2];b=(j?12:4)+b|0;F[b>>2]=F[b>>2]-h;g=g-e|0;b=d;i=i-j|0;e=$(F[a+60>>2],b|0,i|0,f+12|0)|0;if(e){F[3984]=e;e=-1}else{e=0}if(!e){continue}break}}if((g|0)!=-1){break b}}b=F[a+44>>2];F[a+28>>2]=b;F[a+20>>2]=b;F[a+16>>2]=b+F[a+48>>2];a=c;break a}F[a+28>>2]=0;F[a+16>>2]=0;F[a+20>>2]=0;F[a>>2]=F[a>>2]|32;a=0;if((i|0)==2){break a}a=c-F[d+4>>2]|0}ea=f+32|0;return a|0}function Pe(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0;f=F[b+12>>2];c=F[b+20>>2];g=c;h=F[b+16>>2];d=h+4|0;c=d>>>0<4?c+1|0:c;i=F[b+8>>2];a:{if(i>>>0>>0&(c|0)>=(f|0)|(c|0)>(f|0)){break a}k=F[b>>2];e=h+k|0;e=G[e|0]|G[e+1|0]<<8|(G[e+2|0]<<16|G[e+3|0]<<24);F[b+16>>2]=d;F[b+20>>2]=c;c=g;d=h+8|0;c=d>>>0<8?c+1|0:c;j=d;if(d>>>0>i>>>0&(c|0)>=(f|0)|(c|0)>(f|0)){break a}F[b+16>>2]=j;F[b+20>>2]=c;if(!(e&1)){break a}d=O(e)^31;if(d-30>>>0<4294967267){break a}F[a+8>>2]=d+1;d=-2<>2]=e;F[a+12>>2]=d^-1;F[a+24>>2]=(e|0)/2;J[a+20>>2]=M(2)/M(e|0);if(H[b+38>>1]<=513){if((c|0)>=(f|0)&j>>>0>=i>>>0|(c|0)>(f|0)){break a}f=G[j+k|0];c=h+9|0;g=c>>>0<9?g+1|0:g;F[b+16>>2]=c;F[b+20>>2]=g;if(f>>>0>1){break a}F[a+72>>2]=f}l=wa(a+96|0,b)}return l|0}function Ra(a,b,c){var d=0,e=0;a:{if((a|0)==(b|0)){break a}e=a+c|0;if(b-e>>>0<=0-(c<<1)>>>0){return ta(a,b,c)}d=(a^b)&3;b:{c:{if(a>>>0>>0){if(d){d=a;break b}if(!(a&3)){d=a;break c}d=a;while(1){if(!c){break a}D[d|0]=G[b|0];b=b+1|0;c=c-1|0;d=d+1|0;if(d&3){continue}break}break c}d:{if(d){break d}if(e&3){while(1){if(!c){break a}c=c-1|0;d=c+a|0;D[d|0]=G[b+c|0];if(d&3){continue}break}}if(c>>>0<=3){break d}while(1){c=c-4|0;F[c+a>>2]=F[b+c>>2];if(c>>>0>3){continue}break}}if(!c){break a}while(1){c=c-1|0;D[c+a|0]=G[b+c|0];if(c){continue}break}break a}if(c>>>0<=3){break b}while(1){F[d>>2]=F[b>>2];b=b+4|0;d=d+4|0;c=c-4|0;if(c>>>0>3){continue}break}}if(!c){break a}while(1){D[d|0]=G[b|0];d=d+1|0;b=b+1|0;c=c-1|0;if(c){continue}break}}return a}function df(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0;h=F[c+12>>2];d=h;e=F[c+20>>2];i=F[c+8>>2];f=F[c+16>>2];a:{if((d|0)<=(e|0)&i>>>0<=f>>>0|(d|0)<(e|0)){break a}j=F[c>>2];k=D[j+f|0];d=e;g=f+1|0;d=g?d:d+1|0;F[c+16>>2]=g;F[c+20>>2]=d;b:{if((k|0)==-2){break b}if((d|0)>=(h|0)&g>>>0>=i>>>0|(d|0)>(h|0)){break a}d=D[g+j|0];f=f+2|0;e=f>>>0<2?e+1|0:e;F[c+16>>2]=f;F[c+20>>2]=e;if((d-4&255)>>>0<251){break a}e=ga[F[F[a>>2]+40>>2]](a,k,d)|0;d=F[a+20>>2];F[a+20>>2]=e;if(!d){break b}ga[F[F[d>>2]+4>>2]](d)}d=F[a+20>>2];if(d){if(!(ga[F[F[a>>2]+28>>2]](a,d)|0)){break a}}if(!(ga[F[F[a>>2]+36>>2]](a,b,c)|0)){break a}c=F[a+4>>2];if(!(!c|G[c+36|0]>1)){if(!(ga[F[F[a>>2]+48>>2]](a,F[b+4>>2]-F[b>>2]>>2)|0)){break a}}l=1}return l|0}function Md(a,b,c){a:{switch(b-9|0){case 0:b=F[c>>2];F[c>>2]=b+4;F[a>>2]=F[b>>2];return;case 6:b=F[c>>2];F[c>>2]=b+4;b=E[b>>1];F[a>>2]=b;F[a+4>>2]=b>>31;return;case 7:b=F[c>>2];F[c>>2]=b+4;F[a>>2]=H[b>>1];F[a+4>>2]=0;return;case 8:b=F[c>>2];F[c>>2]=b+4;b=D[b|0];F[a>>2]=b;F[a+4>>2]=b>>31;return;case 9:b=F[c>>2];F[c>>2]=b+4;F[a>>2]=G[b|0];F[a+4>>2]=0;return;case 16:b=F[c>>2]+7&-8;F[c>>2]=b+8;K[a>>3]=K[b>>3];return;case 17:ga[0](a,c);default:return;case 1:case 4:case 14:b=F[c>>2];F[c>>2]=b+4;b=F[b>>2];F[a>>2]=b;F[a+4>>2]=b>>31;return;case 2:case 5:case 11:case 15:b=F[c>>2];F[c>>2]=b+4;F[a>>2]=F[b>>2];F[a+4>>2]=0;return;case 3:case 10:case 12:case 13:break a}}b=F[c>>2]+7&-8;F[c>>2]=b+8;c=F[b+4>>2];F[a>>2]=F[b>>2];F[a+4>>2]=c}function Wb(a,b){var c=0,d=0,e=0,f=0,g=0,h=0,i=0;d=F[a+8>>2];c=F[a+4>>2];if(d-c>>2>>>0>=b>>>0){if(b){b=b<<2;c=ua(c,0,b)+b|0}F[a+4>>2]=c;return}a:{b:{c:{g=F[a>>2];f=c-g>>2;e=f+b|0;if(e>>>0<1073741824){d=d-g|0;h=d>>1;e=d>>>0<2147483644?e>>>0>>0?h:e:1073741823;if(e){if(e>>>0>=1073741824){break c}i=sa(e<<2)}d=(f<<2)+i|0;f=b<<2;b=ua(d,0,f);f=b+f|0;e=(e<<2)+i|0;if((c|0)==(g|0)){break b}while(1){c=c-4|0;b=F[c>>2];F[c>>2]=0;d=d-4|0;F[d>>2]=b;if((c|0)!=(g|0)){continue}break}F[a+8>>2]=e;b=F[a+4>>2];F[a+4>>2]=f;c=F[a>>2];F[a>>2]=d;if((b|0)==(c|0)){break a}while(1){b=b-4|0;a=F[b>>2];F[b>>2]=0;if(a){ga[F[F[a>>2]+4>>2]](a)}if((b|0)!=(c|0)){continue}break}break a}va();V()}za();V()}F[a+8>>2]=e;F[a+4>>2]=f;F[a>>2]=b}if(c){ra(c)}}function Ed(a,b){var c=0,d=0,e=0;c=ea+-64|0;ea=c;d=F[a>>2];e=F[d-4>>2];d=F[d-8>>2];F[c+32>>2]=0;F[c+36>>2]=0;F[c+40>>2]=0;F[c+44>>2]=0;F[c+48>>2]=0;F[c+52>>2]=0;D[c+55|0]=0;D[c+56|0]=0;D[c+57|0]=0;D[c+58|0]=0;D[c+59|0]=0;D[c+60|0]=0;D[c+61|0]=0;D[c+62|0]=0;F[c+24>>2]=0;F[c+28>>2]=0;F[c+20>>2]=0;F[c+16>>2]=14924;F[c+12>>2]=a;F[c+8>>2]=b;a=a+d|0;d=0;a:{if(Za(e,b,0)){F[c+56>>2]=1;ga[F[F[e>>2]+20>>2]](e,c+8|0,a,a,1,0);d=F[c+32>>2]==1?a:0;break a}ga[F[F[e>>2]+24>>2]](e,c+8|0,a,1,0);b:{switch(F[c+44>>2]){case 0:d=F[c+48>>2]==1?F[c+36>>2]==1?F[c+40>>2]==1?F[c+28>>2]:0:0:0;break a;case 1:break b;default:break a}}if(F[c+32>>2]!=1){if(F[c+48>>2]|F[c+36>>2]!=1|F[c+40>>2]!=1){break a}}d=F[c+24>>2]}ea=c- -64|0;return d}function xa(a,b){var c=0,d=0,e=0,f=0,g=0,h=0,i=0;F[a+16>>2]=0;c=F[a>>2];F[a+4>>2]=c;F[a+12>>2]=c;g=F[b+12>>2];c=g;d=F[b+20>>2];f=F[b+16>>2];e=f+4|0;d=e>>>0<4?d+1|0:d;h=F[b+8>>2];a:{if(h>>>0>>0&(c|0)<=(d|0)|(c|0)<(d|0)){break a}c=f+F[b>>2]|0;c=G[c|0]|G[c+1|0]<<8|(G[c+2|0]<<16|G[c+3|0]<<24);F[b+16>>2]=e;F[b+20>>2]=d;if(!c|c&3){break a}f=g-(d+(e>>>0>h>>>0)|0)|0;if(h-e>>>0>>0&(f|0)<=0|(f|0)<0){break a}if(c>>>0>=4){Aa(a,c>>>2|0);h=F[b+8>>2];g=F[b+12>>2];e=F[b+16>>2];d=F[b+20>>2]}f=c+e|0;d=c>>>0>f>>>0?d+1|0:d;if(f>>>0>h>>>0&(d|0)>=(g|0)|(d|0)>(g|0)){break a}ta(F[a>>2],e+F[b>>2]|0,c);d=F[b+20>>2];e=c+F[b+16>>2]|0;d=e>>>0>>0?d+1|0:d;F[b+16>>2]=e;F[b+20>>2]=d;F[a+16>>2]=0;F[a+12>>2]=F[a>>2];i=1}return i}function ce(a,b){var c=0,d=0,e=0,f=0;d=-1;e=-1;f=-1;a:{b:{if((b|0)==-1){break b}e=F[F[F[a+4>>2]+12>>2]+(b<<2)>>2];c=b+1|0;c=(c>>>0)%3|0?c:b-2|0;if((c|0)>=0){f=(c>>>0)/3|0;f=F[(F[F[a>>2]+96>>2]+L(f,12)|0)+(c-L(f,3)<<2)>>2]}c:{if((e|0)==-1){break c}c=((e>>>0)%3|0?-1:2)+e|0;if((c|0)<0){break c}d=(c>>>0)/3|0;d=F[(F[F[a>>2]+96>>2]+L(d,12)|0)+(c-L(d,3)<<2)>>2]}c=-1;if((d|0)!=(f|0)){break a}f=-1;d:{b=((b>>>0)%3|0?-1:2)+b|0;if((b|0)>=0){d=(b>>>0)/3|0;d=F[(F[F[a>>2]+96>>2]+L(d,12)|0)+(b-L(d,3)<<2)>>2];if((e|0)==-1){break b}break d}d=-1;if((e|0)!=-1){break d}break b}b=e+1|0;b=(b>>>0)%3|0?b:e-2|0;if((b|0)<0){break b}c=F[F[a>>2]+96>>2];a=(b>>>0)/3|0;f=F[(c+L(a,12)|0)+(b-L(a,3)<<2)>>2]}c=(d|0)==(f|0)?e:-1}return c}function yh(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0;c=sa(72);F[c+4>>2]=0;F[c+8>>2]=0;F[c>>2]=1984;F[c+12>>2]=0;F[c+16>>2]=0;F[c+20>>2]=0;F[c+24>>2]=0;F[c+28>>2]=0;F[c+32>>2]=0;F[c+36>>2]=0;F[c+40>>2]=0;F[c>>2]=2128;F[c+44>>2]=0;F[c+48>>2]=0;F[c+52>>2]=0;F[c+56>>2]=0;F[c+60>>2]=0;F[c+64>>2]=0;F[c+68>>2]=0;h=c;a:{if((b|0)>=0){g=a+8|0;c=F[a+12>>2];e=F[a+8>>2];f=c-e>>2;b:{if((f|0)>(b|0)){break b}d=b+1|0;if(b>>>0>=f>>>0){Wb(g,d-f|0);break b}if(d>>>0>=f>>>0){break b}e=(d<<2)+e|0;if((e|0)!=(c|0)){while(1){c=c-4|0;d=F[c>>2];F[c>>2]=0;if(d){ga[F[F[d>>2]+4>>2]](d)}if((c|0)!=(e|0)){continue}break}}F[a+12>>2]=e}a=F[g>>2]+(b<<2)|0;c=F[a>>2];F[a>>2]=h;if(!c){break a}}ga[F[F[c>>2]+4>>2]](c)}return(b^-1)>>>31|0}function ua(a,b,c){var d=0,e=0,f=0;a:{if(!c){break a}D[a|0]=b;e=a+c|0;D[e-1|0]=b;if(c>>>0<3){break a}D[a+2|0]=b;D[a+1|0]=b;D[e-3|0]=b;D[e-2|0]=b;if(c>>>0<7){break a}D[a+3|0]=b;D[e-4|0]=b;if(c>>>0<9){break a}e=0-a&3;f=e+a|0;d=L(b&255,16843009);F[f>>2]=d;b=c-e&-4;c=b+f|0;F[c-4>>2]=d;if(b>>>0<9){break a}F[f+8>>2]=d;F[f+4>>2]=d;F[c-8>>2]=d;F[c-12>>2]=d;if(b>>>0<25){break a}F[f+24>>2]=d;F[f+20>>2]=d;F[f+16>>2]=d;F[f+12>>2]=d;F[c-16>>2]=d;F[c-20>>2]=d;F[c-24>>2]=d;F[c-28>>2]=d;c=b;b=f&4|24;c=c-b|0;if(c>>>0<32){break a}d=Mj(d,0,1,1);e=fa;b=b+f|0;while(1){F[b+24>>2]=d;F[b+28>>2]=e;F[b+16>>2]=d;F[b+20>>2]=e;F[b+8>>2]=d;F[b+12>>2]=e;F[b>>2]=d;F[b+4>>2]=e;b=b+32|0;c=c-32|0;if(c>>>0>31){continue}break}}return a}function Ij(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0;d=F[b+12>>2];h=d;c=F[b+20>>2];e=c;f=F[b+16>>2];g=f+4|0;c=g>>>0<4?c+1|0:c;i=F[b+8>>2];a:{if(i>>>0>>0&(c|0)>=(d|0)|(c|0)>(d|0)){break a}j=F[b>>2];d=j+f|0;d=G[d|0]|G[d+1|0]<<8|(G[d+2|0]<<16|G[d+3|0]<<24);F[b+16>>2]=g;F[b+20>>2]=c;c=e;e=f+8|0;c=e>>>0<8?c+1|0:c;f=e;e=c;if(f>>>0>i>>>0&(c|0)>=(h|0)|(c|0)>(h|0)){break a}c=g+j|0;c=G[c|0]|G[c+1|0]<<8|(G[c+2|0]<<16|G[c+3|0]<<24);F[b+16>>2]=f;F[b+20>>2]=e;if((c|0)<(d|0)){break a}F[a+16>>2]=c;F[a+12>>2]=d;b=(c>>31)-((d>>31)+(c>>>0>>0)|0)|0;c=c-d|0;if(!b&c>>>0>2147483646|b){break a}k=1;b=c+1|0;F[a+20>>2]=b;c=b>>>1|0;F[a+24>>2]=c;F[a+28>>2]=0-c;if(b&1){break a}F[a+24>>2]=c-1}return k|0}function Hh(a){a=a|0;var b=0,c=0,d=0,e=0,f=0,g=0;b=F[a+4>>2];d=F[b>>2];a:{c=F[a+12>>2];c=F[c+56>>2]-F[c+52>>2]|0;e=c>>2;b:{if(e>>>0<=F[b+8>>2]-d>>2>>>0){break b}if((c|0)<0){break a}f=F[b+4>>2];c=sa(c);g=c+(e<<2)|0;e=f-d|0;f=e+c|0;if((e|0)>0){ta(c,d,e)}F[b+8>>2]=g;F[b+4>>2]=f;F[b>>2]=c;if(!d){break b}ra(d)}e=a+8|0;b=F[a+76>>2];c:{if(b){d=F[b>>2];if((d|0)==F[b+4>>2]){return 1}b=0;while(1){c=ue(e,F[(b<<2)+d>>2]);if(!c){break c}f=F[a+76>>2];d=F[f>>2];b=b+1|0;if(b>>>0>2]-d>>2>>>0){continue}break}break c}c=1;a=F[F[a+12>>2]+64>>2];a=F[a+4>>2]-F[a>>2]|0;if(a>>>0<12){break c}a=(a>>2>>>0)/3|0;b=0;while(1){c=ue(e,L(b,3));if(!c){break c}b=b+1|0;if((a|0)!=(b|0)){continue}break}}return c|0}va();V()}function rd(a,b,c){var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0;d=a+16|0;e=F[d>>2];a:{if(!e){break a}f=F[b>>2];b=d;while(1){g=(f|0)>F[e+16>>2];b=g?b:e;e=F[(g?e+4|0:e)>>2];if(e){continue}break}if((b|0)==(d|0)|(f|0)>2]){break a}e=F[b+24>>2];if(!e){break a}f=b+20|0;b=G[c+11|0];d=b<<24>>24<0;g=d?F[c>>2]:c;b=d?F[c+4>>2]:b;while(1){d=G[e+27|0];h=d<<24>>24<0;d=h?F[e+20>>2]:d;k=d>>>0>>0;b:{c:{d:{e:{f:{g:{j=k?d:b;if(j){i=e+16|0;h=h?F[i>>2]:i;i=Ha(g,h,j);if(i){break g}if(b>>>0>=d>>>0){break f}break b}if(b>>>0>=d>>>0){break e}break b}if((i|0)<0){break b}}d=Ha(h,g,j);if(d){break d}}if(k){break c}return Qc(f,c)}if((d|0)<0){break c}return Qc(f,c)}e=e+4|0}e=F[e>>2];if(e){continue}break}}return Qc(a,c)}function Mh(a){a=a|0;var b=0,c=0,d=0,e=0,f=0,g=0;b=F[a+4>>2];d=F[b>>2];a:{c=F[a+12>>2];c=F[c+28>>2]-F[c+24>>2]|0;e=c>>2;b:{if(e>>>0<=F[b+8>>2]-d>>2>>>0){break b}if((c|0)<0){break a}f=F[b+4>>2];c=sa(c);g=c+(e<<2)|0;e=f-d|0;f=e+c|0;if((e|0)>0){ta(c,d,e)}F[b+8>>2]=g;F[b+4>>2]=f;F[b>>2]=c;if(!d){break b}ra(d)}e=a+8|0;b=F[a+76>>2];c:{if(b){d=F[b>>2];if((d|0)==F[b+4>>2]){return 1}b=0;while(1){c=ve(e,F[(b<<2)+d>>2]);if(!c){break c}f=F[a+76>>2];d=F[f>>2];b=b+1|0;if(b>>>0>2]-d>>2>>>0){continue}break}break c}c=1;a=F[a+12>>2];a=F[a+4>>2]-F[a>>2]|0;if(a>>>0<12){break c}a=(a>>2>>>0)/3|0;b=0;while(1){c=ve(e,L(b,3));if(!c){break c}b=b+1|0;if((a|0)!=(b|0)){continue}break}}return c|0}va();V()}function ae(a,b,c){var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0;d=ea-16|0;ea=d;f=F[a+24>>2];k=F[a+28>>2];a:{if((f|0)!=(k|0)){while(1){F[d+8>>2]=0;F[d>>2]=0;F[d+4>>2]=0;a=_d(F[f>>2],b,d);g=G[d+11|0];h=g<<24>>24;i=3;b:{c:{d:{if(!a){break d}i=0;a=G[c+11|0];e=a<<24>>24;j=(h|0)<0?F[d+4>>2]:g;if((j|0)!=(((e|0)<0?F[c+4>>2]:a)|0)){break d}a=(e|0)<0?F[c>>2]:c;e=(h|0)<0;e:{if(!e){e=d;if(!h){break e}while(1){if(G[e|0]!=G[a|0]){break d}a=a+1|0;e=e+1|0;g=g-1|0;if(g){continue}break}break e}if(!j){break e}if(Ha(e?F[d>>2]:d,a,j)){break c}}l=F[f>>2];i=1}if((h|0)>=0){break b}}ra(F[d>>2])}f:{switch(i|0){case 0:case 3:break f;default:break a}}f=f+4|0;if((k|0)!=(f|0)){continue}break}}l=0}ea=d+16|0;return l}function Qa(a,b,c){var d=0,e=0,f=0;f=ea-16|0;ea=f;F[a+4>>2]=0;a:{b:{if(!b){break b}d=F[a+8>>2];e=d<<5;c:{if(e>>>0>=b>>>0){F[a+4>>2]=b;break c}F[f+8>>2]=0;F[f>>2]=0;F[f+4>>2]=0;if((b|0)<0){break a}if(e>>>0<=1073741822){d=d<<6;e=b+31&-32;d=d>>>0>e>>>0?d:e}else{d=2147483647}fb(f,d);d=F[a>>2];F[a>>2]=F[f>>2];F[f>>2]=d;e=F[a+4>>2];F[a+4>>2]=b;F[f+4>>2]=e;e=F[a+8>>2];F[a+8>>2]=F[f+8>>2];F[f+8>>2]=e;if(!d){break c}ra(d)}d=b>>>5|0;e=d<<2;a=F[a>>2];if(G[c|0]){a=ua(a,255,e);if((b&-32)==(b|0)){break b}a=a+(d<<2)|0;F[a>>2]=F[a>>2]|-1>>>32-(b&31);break b}a=ua(a,0,e);if((b&-32)==(b|0)){break b}a=a+(d<<2)|0;F[a>>2]=F[a>>2]&(-1>>>32-(b&31)^-1)}ea=f+16|0;return}va();V()}function rf(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0;d=F[b>>2];b=F[b+4>>2];f=F[F[a+8>>2]+40>>2];m=sa((f|0)>=0?f:-1);g=1;h=b-d|0;a:{if((h|0)<=0){break a}b=0;g=0;d=0+F[c+20>>2]|0;i=F[c+16>>2];e=f+i|0;d=e>>>0>>0?d+1|0:d;j=e;e=F[c+12>>2];if(j>>>0>I[c+8>>2]&(e|0)<=(d|0)|(d|0)>(e|0)){break a}k=h>>2;g=(k|0)>1?k:1;while(1){b:{e=ta(m,i+F[c>>2]|0,f);F[c+16>>2]=j;F[c+20>>2]=d;ta(F[F[F[a+8>>2]+64>>2]>>2]+b|0,e,f);l=l+1|0;if((g|0)==(l|0)){break b}b=b+f|0;d=n+F[c+20>>2]|0;i=F[c+16>>2];e=f+i|0;d=e>>>0>>0?d+1|0:d;j=e;h=e;e=F[c+12>>2];if((e|0)>=(d|0)&I[c+8>>2]>=h>>>0|(d|0)<(e|0)){continue}}break}g=(l|0)>=(k|0)}ra(m);return g|0}function ob(a,b){var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0;b=F[b>>2];h=F[b+8>>2];i=F[b+4>>2];j=F[b>>2];d=F[a>>2];b=F[d+4>>2];a=F[d+8>>2];if(b>>>0>>0){F[b+8>>2]=h;F[b+4>>2]=i;F[b>>2]=j;F[d+4>>2]=b+12;return}a:{e=F[d>>2];g=(b-e|0)/12|0;c=g+1|0;if(c>>>0<357913942){f=(a-e|0)/12|0;a=f<<1;c=f>>>0<178956970?a>>>0>c>>>0?a:c:357913941;if(c){if(c>>>0>=357913942){break a}f=sa(L(c,12))}else{f=0}a=f+L(g,12)|0;F[a+8>>2]=h;F[a+4>>2]=i;F[a>>2]=j;g=a+12|0;if((b|0)!=(e|0)){while(1){a=a-12|0;b=b-12|0;F[a>>2]=F[b>>2];F[a+4>>2]=F[b+4>>2];F[a+8>>2]=F[b+8>>2];if((b|0)!=(e|0)){continue}break}}F[d+8>>2]=f+L(c,12);F[d+4>>2]=g;F[d>>2]=a;if(e){ra(e)}return}va();V()}za();V()}function jf(a,b){a=a|0;b=b|0;a=0;a:{switch(b|0){case 0:a=sa(20);F[a+12>>2]=-1;F[a+16>>2]=0;F[a+4>>2]=0;F[a+8>>2]=0;F[a>>2]=2232;return a|0;case 1:a=sa(24);F[a+12>>2]=-1;F[a+16>>2]=0;F[a+4>>2]=0;F[a+8>>2]=0;F[a>>2]=2232;F[a+20>>2]=0;F[a>>2]=2448;return a|0;case 2:a=sa(48);F[a+12>>2]=-1;F[a+16>>2]=0;F[a+4>>2]=0;F[a+8>>2]=0;F[a>>2]=2232;F[a+20>>2]=0;F[a>>2]=2448;F[a+24>>2]=1832;F[a>>2]=11048;F[a+32>>2]=0;F[a+36>>2]=0;F[a+28>>2]=-1;F[a+40>>2]=0;F[a+44>>2]=0;return a|0;case 3:a=sa(32);F[a+12>>2]=-1;F[a+16>>2]=0;F[a+4>>2]=0;F[a+8>>2]=0;F[a>>2]=2232;F[a+20>>2]=0;F[a>>2]=2448;F[a+24>>2]=1032;F[a>>2]=7028;F[a+28>>2]=-1;break;default:break a}}return a|0}function Fg(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,f=0,g=0;e=ea-32|0;ea=e;a:{b:{f=Oa(c);if(f>>>0<4294967280){c:{d:{if(f>>>0>=11){g=f+16&-16;a=sa(g);F[e+24>>2]=g|-2147483648;F[e+16>>2]=a;F[e+20>>2]=f;break d}D[e+27|0]=f;a=e+16|0;if(!f){break c}}ta(a,c,f)}D[a+f|0]=0;c=Oa(d);if(c>>>0>=4294967280){break b}e:{f:{if(c>>>0>=11){f=c+16&-16;a=sa(f);F[e+8>>2]=f|-2147483648;F[e>>2]=a;F[e+4>>2]=c;break f}D[e+11|0]=c;a=e;if(!c){break e}}ta(a,d,c)}D[a+c|0]=0;c=F[b+4>>2];a=-1;g:{if(!c){break g}c=ae(c,e+16|0,e);a=-1;if(!c){break g}a=Xd(b,F[c+24>>2])}if(D[e+11|0]<0){ra(F[e>>2])}if(D[e+27|0]<0){ra(F[e+16>>2])}ea=e+32|0;break a}Pa();V()}Pa();V()}return a|0}function Qi(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0;F[b>>2]=1;f=b+8|0;c=F[b+8>>2];d=F[b+12>>2]-c|0;if(d>>>0<=4294967291){lc(f,d+4|0);c=F[f>>2]}c=c+d|0;d=F[a+4>>2];D[c|0]=d;D[c+1|0]=d>>>8;D[c+2|0]=d>>>16;D[c+3|0]=d>>>24;c=F[a+8>>2];if((c|0)!=F[a+12>>2]){d=0;while(1){g=(d<<2)+c|0;c=F[b+8>>2];e=F[b+12>>2]-c|0;if(e>>>0<=4294967291){lc(f,e+4|0);c=F[f>>2]}c=c+e|0;e=F[g>>2];D[c|0]=e;D[c+1|0]=e>>>8;D[c+2|0]=e>>>16;D[c+3|0]=e>>>24;d=d+1|0;c=F[a+8>>2];if(d>>>0>2]-c>>2>>>0){continue}break}}c=F[b+12>>2];b=F[b+8>>2];c=c-b|0;if(c>>>0<=4294967291){lc(f,c+4|0);b=F[f>>2]}b=b+c|0;a=F[a+20>>2];D[b|0]=a;D[b+1|0]=a>>>8;D[b+2|0]=a>>>16;D[b+3|0]=a>>>24}function Oi(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0;f=ea-32|0;ea=f;g=(e&1073741823)!=(e|0)?-1:e<<2;l=ua(sa(g),0,g);g=l;i=F[g>>2];g=F[g+4>>2];k=F[b+4>>2];F[f+24>>2]=F[b>>2];F[f+28>>2]=k;F[f+8>>2]=i;F[f+12>>2]=g;i=a+8|0;rc(f+16|0,i,f+8|0,f+24|0);F[c>>2]=F[f+16>>2];F[c+4>>2]=F[f+20>>2];if((d|0)>(e|0)){k=0-e<<2;a=e;while(1){h=a<<2;g=h+c|0;j=g+k|0;m=F[j>>2];j=F[j+4>>2];h=b+h|0;n=F[h+4>>2];F[f+24>>2]=F[h>>2];F[f+28>>2]=n;F[f+8>>2]=m;F[f+12>>2]=j;rc(f+16|0,i,f+8|0,f+24|0);F[g>>2]=F[f+16>>2];F[g+4>>2]=F[f+20>>2];a=a+e|0;if((d|0)>(a|0)){continue}break}}ra(l);ea=f+32|0;return 1}function Fi(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0;f=ea-32|0;ea=f;h=(e&1073741823)!=(e|0)?-1:e<<2;h=ua(sa(h),0,h);g=F[b>>2];i=F[b+4>>2];k=F[h+4>>2];F[f+16>>2]=F[h>>2];F[f+20>>2]=k;F[f+8>>2]=g;F[f+12>>2]=i;i=a+8|0;qc(f+24|0,i,f+16|0,f+8|0);F[c>>2]=F[f+24>>2];F[c+4>>2]=F[f+28>>2];if((d|0)>(e|0)){k=0-e<<2;a=e;while(1){g=a<<2;j=g+b|0;m=F[j>>2];j=F[j+4>>2];g=c+g|0;l=g+k|0;n=F[l+4>>2];F[f+16>>2]=F[l>>2];F[f+20>>2]=n;F[f+8>>2]=m;F[f+12>>2]=j;qc(f+24|0,i,f+16|0,f+8|0);F[g>>2]=F[f+24>>2];F[g+4>>2]=F[f+28>>2];a=a+e|0;if((d|0)>(a|0)){continue}break}}ra(h);ea=f+32|0;return 1}function Eb(a,b,c){var d=0,e=0,f=0,g=0,h=0;f=c-b|0;g=f>>2;d=F[a+8>>2];e=F[a>>2];if(g>>>0<=d-e>>2>>>0){d=F[a+4>>2];f=d-e|0;h=f>>2;f=g>>>0>h>>>0?b+f|0:c;if((f|0)!=(b|0)){while(1){F[e>>2]=F[b>>2];e=e+4|0;b=b+4|0;if((f|0)!=(b|0)){continue}break}}if(g>>>0>h>>>0){b=c-f|0;if((b|0)>0){d=ta(d,f,b)+b|0}F[a+4>>2]=d;return}F[a+4>>2]=e;return}if(e){F[a+4>>2]=e;ra(e);F[a+8>>2]=0;F[a>>2]=0;F[a+4>>2]=0;d=0}a:{if((f|0)<0){break a}e=d>>1;d=d>>>0<2147483644?e>>>0>g>>>0?e:g:1073741823;if(d>>>0>=1073741824){break a}e=d<<2;d=sa(e);F[a>>2]=d;F[a+4>>2]=d;F[a+8>>2]=d+e;if((b|0)!=(c|0)){d=ta(d,b,f)+f|0}F[a+4>>2]=d;return}va();V()}function yg(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0;a:{if(I[b+80>>2]>65535){break a}a=F[b+100>>2];b=F[b+96>>2];e=(a-b|0)/12|0;f=L(e,6);g=(f|0)==(c|0);if((a|0)==(b|0)|(c|0)!=(f|0)){break a}g=1;c=e>>>0>1?e:1;i=c&1;a=0;if(e>>>0>=2){j=c&-2;c=0;while(1){f=L(a,6);h=f+d|0;e=b+L(a,12)|0;E[h>>1]=F[e>>2];E[(f|2)+d>>1]=F[e+4>>2];E[h+4>>1]=F[e+8>>2];f=a|1;e=L(f,6)+d|0;f=b+L(f,12)|0;E[e>>1]=F[f>>2];E[e+2>>1]=F[f+4>>2];E[e+4>>1]=F[f+8>>2];a=a+2|0;c=c+2|0;if((j|0)!=(c|0)){continue}break}}if(!i){break a}c=L(a,6)+d|0;a=b+L(a,12)|0;E[c>>1]=F[a>>2];E[c+2>>1]=F[a+4>>2];E[c+4>>1]=F[a+8>>2]}return g|0}function Ti(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0;e=F[b+12>>2];c=F[b+20>>2];f=c;g=F[b+16>>2];d=g+4|0;c=d>>>0<4?c+1|0:c;h=F[b+8>>2];i=d;a:{if(h>>>0>>0&(c|0)>=(e|0)|(c|0)>(e|0)){break a}d=g+F[b>>2]|0;d=G[d|0]|G[d+1|0]<<8|(G[d+2|0]<<16|G[d+3|0]<<24);F[b+16>>2]=i;F[b+20>>2]=c;if(H[b+38>>1]<=513){c=f;f=g+8|0;c=f>>>0<8?c+1|0:c;if(f>>>0>h>>>0&(c|0)>=(e|0)|(c|0)>(e|0)){break a}F[b+16>>2]=f;F[b+20>>2]=c}if(!(d&1)){break a}b=O(d)^31;c=b-30|0;if(c>>>0>=4294967267){F[a+8>>2]=b+1;e=-2<>2]=b;F[a+12>>2]=e^-1;F[a+24>>2]=(b|0)/2;J[a+20>>2]=M(2)/M(b|0)}j=c>>>0>4294967266}return j|0}function sf(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0;f=1;a:{if((ga[F[F[b>>2]+20>>2]](b)|0)<=0){break a}while(1){f=0;c=Yd(F[F[a+4>>2]+4>>2],ga[F[F[b>>2]+24>>2]](b,g)|0);if((c|0)==-1){break a}e=F[a+4>>2];b:{if(G[e+36|0]<=1){if(ga[F[F[b>>2]+28>>2]](b,F[F[F[e+4>>2]+8>>2]+(c<<2)>>2])|0){break b}break a}d=0;c:{if((c|0)<0){break c}h=F[e+4>>2];if(F[h+12>>2]-F[h+8>>2]>>2<=(c|0)){break c}d=F[F[e+8>>2]+(F[F[e+20>>2]+(c<<2)>>2]<<2)>>2];d=ga[F[F[d>>2]+32>>2]](d,c)|0}if(!d){break a}if(!(ga[F[F[b>>2]+28>>2]](b,d)|0)){break a}}f=1;g=g+1|0;if((ga[F[F[b>>2]+20>>2]](b)|0)>(g|0)){continue}break}}return f|0}function Pg(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0,g=0;a=ea-32|0;ea=a;F[a+24>>2]=0;F[a+28>>2]=0;a:{d=Oa(c);if(d>>>0<4294967280){b:{c:{if(d>>>0>=11){f=d+16&-16;e=sa(f);F[a+16>>2]=f|-2147483648;F[a+8>>2]=e;F[a+12>>2]=d;break c}D[a+19|0]=d;e=a+8|0;if(!d){break b}}ta(e,c,d)}D[d+e|0]=0;c=b+4|0;b=sb(b,a+8|0);d:{if((c|0)==(b|0)){break d}c=F[b+32>>2];b=F[b+28>>2];if((c-b|0)!=8){break d}c=G[b+4|0]|G[b+5|0]<<8|(G[b+6|0]<<16|G[b+7|0]<<24);F[a+24>>2]=G[b|0]|G[b+1|0]<<8|(G[b+2|0]<<16|G[b+3|0]<<24);F[a+28>>2]=c}g=K[a+24>>3];if(D[a+19|0]<0){ra(F[a+8>>2])}ea=a+32|0;break a}Pa();V()}return+g}function Ce(a){var b=0,c=0,d=0,e=0,f=0;f=1;c=F[a+140>>2];a:{if((c|0)<=0){break a}b=c<<4;d=sa((c|0)!=(c&268435455)?-1:b|4);F[d>>2]=c;d=d+4|0;c=d+b|0;b=d;while(1){F[b>>2]=0;F[b+4>>2]=0;D[b+5|0]=0;D[b+6|0]=0;D[b+7|0]=0;D[b+8|0]=0;D[b+9|0]=0;D[b+10|0]=0;D[b+11|0]=0;D[b+12|0]=0;b=b+16|0;if((c|0)!=(b|0)){continue}break}e=F[a+136>>2];F[a+136>>2]=d;if(e){c=e-4|0;d=F[c>>2];if(d){b=(d<<4)+e|0;while(1){b=b-16|0;if((e|0)!=(b|0)){continue}break}}ra(c)}b=0;if(F[a+140>>2]<=0){break a}while(1){f=wa(F[a+136>>2]+(b<<4)|0,a);if(!f){break a}b=b+1|0;if((b|0)>2]){continue}break}}return f}function rb(a,b){var c=0,d=0,e=0,f=0,g=0;a:{if(F[a+64>>2]){break a}c=sa(32);F[c+16>>2]=0;F[c+20>>2]=0;F[c+8>>2]=0;F[c>>2]=0;F[c+4>>2]=0;F[c+24>>2]=0;F[c+28>>2]=0;d=F[a+64>>2];F[a+64>>2]=c;if(!d){break a}c=F[d>>2];if(c){F[d+4>>2]=c;ra(c)}ra(d)}e=F[a+64>>2];c=F[a+28>>2]-1|0;if(c>>>0<=10){d=F[(c<<2)+13584>>2]}else{d=-1}c=L(d,D[a+24|0]);d=c;g=c>>31;e=re(e,0,Mj(c,g,b,0),fa);if(e){c=F[a+64>>2];F[a>>2]=c;f=F[c+20>>2];F[a+8>>2]=F[c+16>>2];F[a+12>>2]=f;f=F[c+24>>2];c=F[c+28>>2];F[a+48>>2]=0;F[a+52>>2]=0;F[a+40>>2]=d;F[a+44>>2]=g;F[a+16>>2]=f;F[a+20>>2]=c;F[a+80>>2]=b}return e}function Ki(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0;f=F[b+12>>2];c=F[b+20>>2];e=c;g=F[b+16>>2];d=g+4|0;c=d>>>0<4?c+1|0:c;h=F[b+8>>2];i=d;a:{if(h>>>0>>0&(c|0)>=(f|0)|(c|0)>(f|0)){break a}d=g+F[b>>2]|0;d=G[d|0]|G[d+1|0]<<8|(G[d+2|0]<<16|G[d+3|0]<<24);F[b+16>>2]=i;F[b+20>>2]=c;c=e;e=g+8|0;c=e>>>0<8?c+1|0:c;if(e>>>0>h>>>0&(c|0)>=(f|0)|(c|0)>(f|0)){break a}F[b+16>>2]=e;F[b+20>>2]=c;if(!(d&1)){break a}b=O(d)^31;if(b-30>>>0<4294967267){break a}j=1;F[a+8>>2]=b+1;c=-2<>2]=b;F[a+12>>2]=c^-1;F[a+24>>2]=(b|0)/2;J[a+20>>2]=M(2)/M(b|0)}return j|0}function sb(a,b){var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0;h=a+4|0;a=F[a+4>>2];a:{b:{if(!a){break b}d=G[b+11|0];c=d<<24>>24<0;f=c?F[b>>2]:b;d=c?F[b+4>>2]:d;b=h;while(1){e=G[a+27|0];c=e<<24>>24<0;e=c?F[a+20>>2]:e;g=e>>>0>d>>>0;i=g?d:e;c:{if(i){j=a+16|0;c=Ha(c?F[j>>2]:j,f,i);if(c){break c}}c=d>>>0>e>>>0?-1:g}c=(c|0)<0;b=c?b:a;a=F[(c?a+4|0:a)>>2];if(a){continue}break}if((b|0)==(h|0)){break b}c=G[b+27|0];a=c<<24>>24<0;d:{c=a?F[b+20>>2]:c;e=c>>>0>>0?c:d;if(e){g=f;f=b+16|0;a=Ha(g,a?F[f>>2]:f,e);if(a){break d}}if(c>>>0>d>>>0){break b}break a}if((a|0)>=0){break a}}b=h}return b}function dc(a,b){var c=0;c=F[b+4>>2];F[a>>2]=F[b>>2];F[a+4>>2]=c;c=F[b+60>>2];F[a+56>>2]=F[b+56>>2];F[a+60>>2]=c;c=F[b+52>>2];F[a+48>>2]=F[b+48>>2];F[a+52>>2]=c;c=F[b+44>>2];F[a+40>>2]=F[b+40>>2];F[a+44>>2]=c;c=F[b+36>>2];F[a+32>>2]=F[b+32>>2];F[a+36>>2]=c;c=F[b+28>>2];F[a+24>>2]=F[b+24>>2];F[a+28>>2]=c;c=F[b+20>>2];F[a+16>>2]=F[b+16>>2];F[a+20>>2]=c;c=F[b+12>>2];F[a+8>>2]=F[b+8>>2];F[a+12>>2]=c;F[a+88>>2]=0;F[a+64>>2]=0;F[a+68>>2]=0;F[a+72>>2]=0;F[a+76>>2]=0;D[a+77|0]=0;D[a+78|0]=0;D[a+79|0]=0;D[a+80|0]=0;D[a+81|0]=0;D[a+82|0]=0;D[a+83|0]=0;D[a+84|0]=0;return a}function Ca(a,b,c){var d=0,e=0,f=0,g=0,h=0;g=c-b|0;f=g>>2;e=F[a+8>>2];d=F[a>>2];if(f>>>0<=e-d>>2>>>0){e=F[a+4>>2]-d|0;g=e>>2;e=g>>>0>>0?b+e|0:c;h=e-b|0;if((b|0)!=(e|0)){Ra(d,b,h)}if(g>>>0>>0){b=F[a+4>>2];c=c-e|0;if((c|0)>0){b=ta(b,e,c)+c|0}F[a+4>>2]=b;return}F[a+4>>2]=d+h;return}if(d){F[a+4>>2]=d;ra(d);F[a+8>>2]=0;F[a>>2]=0;F[a+4>>2]=0;e=0}a:{if((g|0)<0){break a}d=e>>1;d=e>>>0<2147483644?d>>>0>f>>>0?d:f:1073741823;if(d>>>0>=1073741824){break a}f=d<<2;d=sa(f);F[a>>2]=d;F[a+4>>2]=d;F[a+8>>2]=d+f;if((b|0)!=(c|0)){d=ta(d,b,g)+g|0}F[a+4>>2]=d;return}va();V()}function xg(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0;a=F[b+100>>2];b=F[b+96>>2];h=a-b|0;a:{if((h|0)!=(c|0)|(a|0)==(b|0)){break a}g=(c|0)/12|0;e=g>>>0>1?g:1;j=e&1;a=0;if(g>>>0>=2){k=e&-2;g=0;while(1){e=L(a,12);i=e+d|0;f=b+e|0;F[i>>2]=F[f>>2];F[(e|4)+d>>2]=F[f+4>>2];F[i+8>>2]=F[f+8>>2];f=L(a|1,12);e=f+d|0;f=b+f|0;F[e>>2]=F[f>>2];F[e+4>>2]=F[f+4>>2];F[e+8>>2]=F[f+8>>2];a=a+2|0;g=g+2|0;if((k|0)!=(g|0)){continue}break}}if(!j){break a}e=d;d=L(a,12);a=e+d|0;b=b+d|0;F[a>>2]=F[b>>2];F[a+4>>2]=F[b+4>>2];F[a+8>>2]=F[b+8>>2]}return(c|0)==(h|0)|0}function wb(a,b,c){var d=0,e=0,f=0,g=0,h=0,i=0,j=0;F[a+8>>2]=0;F[a>>2]=0;F[a+4>>2]=0;a:{b:{if(b){if(b>>>0>=357913942){break b}d=L(b,12);b=sa(d);F[a>>2]=b;F[a+4>>2]=b;e=b+d|0;F[a+8>>2]=e;f=F[c>>2];c=F[c+4>>2];c:{if((f|0)==(c|0)){c=b;b=d-12|0;ua(c,0,(b-((b>>>0)%12|0)|0)+12|0);break c}c=c-f|0;if((c|0)<0){break a}g=c>>2<<2;h=c>>>2<<2;while(1){F[b+8>>2]=0;F[b>>2]=0;F[b+4>>2]=0;d=sa(c);F[b>>2]=d;F[b+4>>2]=d;F[b+8>>2]=d+g;i=b,j=ta(d,f,c)+h|0,F[i+4>>2]=j;b=b+12|0;if((e|0)!=(b|0)){continue}break}}F[a+4>>2]=e}return}va();V()}F[b+8>>2]=0;F[b>>2]=0;F[b+4>>2]=0;va();V()}function Hf(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;if(Za(a,F[b+8>>2],e)){if(!(F[b+28>>2]==1|F[b+4>>2]!=(c|0))){F[b+28>>2]=d}return}a:{if(Za(a,F[b>>2],e)){if(!(F[b+16>>2]!=(c|0)&F[b+20>>2]!=(c|0))){if((d|0)!=1){break a}F[b+32>>2]=1;return}F[b+32>>2]=d;b:{if(F[b+44>>2]==4){break b}E[b+52>>1]=0;a=F[a+8>>2];ga[F[F[a>>2]+20>>2]](a,b,c,c,1,e);if(G[b+53|0]){F[b+44>>2]=3;if(!G[b+52|0]){break b}break a}F[b+44>>2]=4}F[b+20>>2]=c;F[b+40>>2]=F[b+40>>2]+1;if(F[b+36>>2]!=1|F[b+24>>2]!=2){break a}D[b+54|0]=1;return}a=F[a+8>>2];ga[F[F[a>>2]+24>>2]](a,b,c,d,e)}}function Fb(a,b,c){var d=0,e=0,f=0,g=0;a:{b:{if(!b){break b}if(H[a+38>>1]<=513){e=F[a+12>>2];b=F[a+20>>2];f=F[a+16>>2];g=f+8|0;b=g>>>0<8?b+1|0:b;if(g>>>0>I[a+8>>2]&(b|0)>=(e|0)|(b|0)>(e|0)){break a}b=f+F[a>>2]|0;d=G[b+4|0]|G[b+5|0]<<8|(G[b+6|0]<<16|G[b+7|0]<<24);F[c>>2]=G[b|0]|G[b+1|0]<<8|(G[b+2|0]<<16|G[b+3|0]<<24);F[c+4>>2]=d;b=F[a+20>>2];c=F[a+16>>2]+8|0;b=c>>>0<8?b+1|0:b;F[a+16>>2]=c;F[a+20>>2]=b;break b}if(!qe(1,c,a)){break a}}D[a+36|0]=1;F[a+32>>2]=0;b=F[a+16>>2];c=b+F[a>>2]|0;F[a+24>>2]=c;d=a;a=F[a+8>>2];F[d+28>>2]=c+(a-b|0);d=1}return d}function te(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0;f=sa(64);c=sa(12);F[c+8>>2]=F[F[a+4>>2]+80>>2];F[c>>2]=13216;F[c+4>>2]=0;f=md(f,c);a:{b:{if((b|0)<0){c=f;break b}h=a+8|0;c=F[a+12>>2];e=F[a+8>>2];g=c-e>>2;c:{if((g|0)>(b|0)){break c}d=b+1|0;if(b>>>0>=g>>>0){Wb(h,d-g|0);break c}if(d>>>0>=g>>>0){break c}e=e+(d<<2)|0;if((e|0)!=(c|0)){while(1){c=c-4|0;d=F[c>>2];F[c>>2]=0;if(d){ga[F[F[d>>2]+4>>2]](d)}if((c|0)!=(e|0)){continue}break}}F[a+12>>2]=e}a=F[h>>2]+(b<<2)|0;c=F[a>>2];F[a>>2]=f;if(!c){break a}}ga[F[F[c>>2]+4>>2]](c)}return(b^-1)>>>31|0}function Pd(a,b){var c=0,d=0,e=0,f=0;d=ea-16|0;ea=d;F[d+12>>2]=b;c=ea-208|0;ea=c;F[c+204>>2]=b;b=c+160|0;ua(b,0,40);F[c+200>>2]=F[c+204>>2];a:{if((Od(0,a,c+200|0,c+80|0,b)|0)<0){break a}f=F[3941]>=0;b=F[3922];if(F[3940]<=0){F[3922]=b&-33}b:{c:{d:{if(!F[3934]){F[3934]=80;F[3929]=0;F[3926]=0;F[3927]=0;e=F[3933];F[3933]=c;break d}if(F[3926]){break c}}if(Rd(15688)){break b}}Od(15688,a,c+200|0,c+80|0,c+160|0)}if(e){ga[F[3931]](15688,0,0)|0;F[3934]=0;F[3933]=e;F[3929]=0;F[3926]=0;F[3927]=0}F[3922]=F[3922]|b&32;if(!f){break a}}ea=c+208|0;ea=d+16|0}function Jc(a,b,c){var d=0,e=0,f=0,g=0;a:{if((b|c)>=0){b:{if(b>>>0>1431655765){break b}d=L(b,3);Ic(a,d,13648);Ic(a+12|0,d,13652);d=F[a+24>>2];c:{if(F[a+32>>2]-d>>2>>>0>=c>>>0){break c}if(c>>>0>=1073741824){break a}e=F[a+28>>2];f=c<<2;c=sa(f);f=c+f|0;e=e-d|0;g=e+c|0;if((e|0)>0){ta(c,d,e)}F[a+32>>2]=f;F[a+28>>2]=g;F[a+24>>2]=c;if(!d){break c}ra(d)}F[a+80>>2]=0;F[a+84>>2]=0;c=F[a+76>>2];F[a+76>>2]=0;if(c){ra(c)}F[a+68>>2]=0;F[a+72>>2]=0;c=a- -64|0;a=F[c>>2];F[c>>2]=0;if(!a){break b}ra(a)}a=b>>>0<1431655766}else{a=0}return a}va();V()}function nf(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0;c=F[a+60>>2];a:{if(!c){break a}F[c+4>>2]=a+48;if(!(ga[F[F[c>>2]+12>>2]](c)|0)){break a}b:{c=ga[F[F[a>>2]+24>>2]](a)|0;if((c|0)<=0){break b}while(1){c:{f=F[(ga[F[F[a>>2]+28>>2]](a)|0)+4>>2];g=ga[F[F[a>>2]+20>>2]](a,d)|0;e=F[a+60>>2];if(!(ga[F[F[e>>2]+8>>2]](e,F[F[f+8>>2]+(g<<2)>>2])|0)){break c}d=d+1|0;if((c|0)!=(d|0)){continue}break b}break}return 0}d=0;if(!(ga[F[F[a>>2]+36>>2]](a,b)|0)){break a}if(!(ga[F[F[a>>2]+40>>2]](a,b)|0)){break a}d=ga[F[F[a>>2]+44>>2]](a)|0}return d|0}function Sb(a,b){var c=0,d=0,e=0,f=0,g=0,h=0;c=F[a+4>>2];if((c|0)!=F[a+8>>2]){d=F[b+4>>2];F[c>>2]=F[b>>2];F[c+4>>2]=d;F[c+8>>2]=F[b+8>>2];F[a+4>>2]=c+12;return}a:{f=F[a>>2];g=c-f|0;d=(g|0)/12|0;c=d+1|0;if(c>>>0<357913942){e=d<<1;e=d>>>0<178956970?c>>>0>>0?e:c:357913941;if(e){if(e>>>0>=357913942){break a}c=sa(L(e,12))}else{c=0}d=c+L(d,12)|0;h=F[b+4>>2];F[d>>2]=F[b>>2];F[d+4>>2]=h;F[d+8>>2]=F[b+8>>2];b=d+L((g|0)/-12|0,12)|0;if((g|0)>0){ta(b,f,g)}F[a+8>>2]=c+L(e,12);F[a+4>>2]=d+12;F[a>>2]=b;if(f){ra(f)}return}va();V()}za();V()}function Fd(a,b,c,d,e,f,g){var h=0,i=0,j=0;h=ea-16|0;ea=h;if((b^-1)-17>>>0>=c>>>0){if(G[a+11|0]>>>7|0){j=F[a>>2]}else{j=a}a:{if(b>>>0<2147483623){F[h+8>>2]=b<<1;F[h+12>>2]=b+c;c=ea-16|0;ea=c;ea=c+16|0;c=h+8|0;i=h+12|0;c=F[(I[i>>2]>2]?c:i)>>2];if(c>>>0>=11){i=c+16&-16;c=i-1|0;c=(c|0)==11?i:c}else{c=10}break a}c=-18}i=c+1|0;c=sa(i);if(f){Bb(c,g,f)}g=d-e|0;if((d|0)!=(e|0)){Bb(c+f|0,e+j|0,g)}if((b|0)!=10){ra(j)}F[a>>2]=c;F[a+8>>2]=i|-2147483648;b=a;a=f+g|0;F[b+4>>2]=a;D[h+7|0]=0;D[a+c|0]=G[h+7|0];ea=h+16|0;return}Pa();V()}function gd(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0;c=F[a+216>>2];if((c|0)!=F[a+220>>2]){while(1){a:{c=F[L(e,144)+c>>2];if((c|0)<0){break a}d=F[a+4>>2];f=F[d+8>>2];if((c|0)>=F[d+12>>2]-f>>2){break a}d=0;c=F[(c<<2)+f>>2];if((ga[F[F[c>>2]+24>>2]](c)|0)<=0){break a}while(1){if((ga[F[F[c>>2]+20>>2]](c,d)|0)!=(b|0)){d=d+1|0;if((ga[F[F[c>>2]+24>>2]](c)|0)>(d|0)){continue}break a}break}a=F[a+216>>2]+L(e,144)|0;return(G[a+100|0]?a+4|0:0)|0}e=e+1|0;c=F[a+216>>2];if(e>>>0<(F[a+220>>2]-c|0)/144>>>0){continue}break}}return 0}function qd(a){a=a|0;var b=0,c=0,d=0;F[a>>2]=2128;d=F[a+60>>2];if(d){b=d;c=F[a- -64>>2];if((b|0)!=(c|0)){while(1){c=c-4|0;b=F[c>>2];F[c>>2]=0;if(b){Ja(b)}if((c|0)!=(d|0)){continue}break}b=F[a+60>>2]}F[a+64>>2]=d;ra(b)}b=F[a+48>>2];if(b){F[a+52>>2]=b;ra(b)}d=F[a+36>>2];if(d){b=d;c=F[a+40>>2];if((b|0)!=(c|0)){while(1){c=c-24|0;ga[F[F[c>>2]>>2]](c)|0;if((c|0)!=(d|0)){continue}break}b=F[a+36>>2]}F[a+40>>2]=d;ra(b)}F[a>>2]=1984;b=F[a+16>>2];if(b){F[a+20>>2]=b;ra(b)}b=F[a+4>>2];if(b){F[a+8>>2]=b;ra(b)}return a|0}function Ab(a){var b=0,c=0,d=0,e=0;c=F[a+132>>2];if(c){d=c;b=F[a+136>>2];if((c|0)!=(b|0)){while(1){d=b-12|0;e=F[d>>2];if(e){F[b-8>>2]=e;ra(e)}b=d;if((c|0)!=(b|0)){continue}break}d=F[a+132>>2]}F[a+136>>2]=c;ra(d)}c=F[a+120>>2];if(c){d=c;b=F[a+124>>2];if((c|0)!=(b|0)){while(1){d=b-12|0;e=F[d>>2];if(e){F[b-8>>2]=e;ra(e)}b=d;if((c|0)!=(b|0)){continue}break}d=F[a+120>>2]}F[a+124>>2]=c;ra(d)}b=F[a+108>>2];if(b){F[a+112>>2]=b;ra(b)}b=F[a+96>>2];if(b){F[a+100>>2]=b;ra(b)}_a(a+76|0);_a(a+56|0);_a(a+36|0);_a(a+16|0)}function ub(a){var b=0,c=0,d=0,e=0,f=0;d=F[a+8>>2];a:{if(G[d+84|0]){break a}b=F[a+16>>2];if(!b|!G[b+84|0]){break a}c=F[d+72>>2];e=F[d+68>>2];D[b+84|0]=0;c=c-e>>2;f=F[b+68>>2];e=F[b+72>>2]-f>>2;b:{if(c>>>0>e>>>0){Ia(b+68|0,c-e|0,2316);d=F[a+8>>2];break b}if(c>>>0>=e>>>0){break b}F[b+72>>2]=f+(c<<2)}if(G[d+84|0]){break a}c=F[d+68>>2];if((c|0)==F[d+72>>2]){break a}e=F[F[a+16>>2]+68>>2];b=0;while(1){f=b<<2;F[f+e>>2]=F[c+f>>2];b=b+1|0;c=F[d+68>>2];if(b>>>0>2]-c>>2>>>0){continue}break}}return F[a+16>>2]}function Jg(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,f=0,g=0;e=ea+-64|0;ea=e;f=Ka(e+8|0);F[f+16>>2]=0;F[f+20>>2]=0;F[f>>2]=b;F[f+8>>2]=c;F[f+12>>2]=0;b=e+48|0;Me(b,a,f,d);F[a+24>>2]=F[e+48>>2];d=a+24|0;a:{if((d|0)==(b|0)){break a}b=e+48|4;f=G[e+63|0];c=f<<24>>24;a=a+28|0;if(D[a+11|0]>=0){if((c|0)>=0){c=F[b+4>>2];F[a>>2]=F[b>>2];F[a+4>>2]=c;F[a+8>>2]=F[b+8>>2];break a}Yb(a,F[e+52>>2],F[e+56>>2]);break a}g=a;a=(c|0)<0;Zb(g,a?F[e+52>>2]:b,a?F[e+56>>2]:f)}if(D[e+63|0]<0){ra(F[e+52>>2])}ea=e- -64|0;return d|0}function Ig(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,f=0,g=0;e=ea+-64|0;ea=e;f=Ka(e+8|0);F[f+16>>2]=0;F[f+20>>2]=0;F[f>>2]=b;F[f+8>>2]=c;F[f+12>>2]=0;b=e+48|0;Le(b,a,f,d);F[a+24>>2]=F[e+48>>2];d=a+24|0;a:{if((d|0)==(b|0)){break a}b=e+48|4;f=G[e+63|0];c=f<<24>>24;a=a+28|0;if(D[a+11|0]>=0){if((c|0)>=0){c=F[b+4>>2];F[a>>2]=F[b>>2];F[a+4>>2]=c;F[a+8>>2]=F[b+8>>2];break a}Yb(a,F[e+52>>2],F[e+56>>2]);break a}g=a;a=(c|0)<0;Zb(g,a?F[e+52>>2]:b,a?F[e+56>>2]:f)}if(D[e+63|0]<0){ra(F[e+52>>2])}ea=e- -64|0;return d|0}function fd(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0;c=F[a+216>>2];if((c|0)!=F[a+220>>2]){while(1){a:{c=F[L(e,144)+c>>2];if((c|0)<0){break a}d=F[a+4>>2];f=F[d+8>>2];if((c|0)>=F[d+12>>2]-f>>2){break a}d=0;c=F[(c<<2)+f>>2];if((ga[F[F[c>>2]+24>>2]](c)|0)<=0){break a}while(1){if((ga[F[F[c>>2]+20>>2]](c,d)|0)!=(b|0)){d=d+1|0;if((ga[F[F[c>>2]+24>>2]](c)|0)>(d|0)){continue}break a}break}return(F[a+216>>2]+L(e,144)|0)+104|0}e=e+1|0;c=F[a+216>>2];if(e>>>0<(F[a+220>>2]-c|0)/144>>>0){continue}break}}return a+184|0}function db(a){var b=0,c=0,d=0,e=0;c=F[a+640>>2];if(c){d=c;b=F[a+644>>2];if((c|0)!=(b|0)){while(1){d=b-12|0;e=F[d>>2];if(e){F[b-8>>2]=e;ra(e)}b=d;if((c|0)!=(b|0)){continue}break}d=F[a+640>>2]}F[a+644>>2]=c;ra(d)}c=F[a+628>>2];if(c){d=c;b=F[a+632>>2];if((c|0)!=(b|0)){while(1){d=b-12|0;e=F[d>>2];if(e){F[b-8>>2]=e;ra(e)}b=d;if((c|0)!=(b|0)){continue}break}d=F[a+628>>2]}F[a+632>>2]=c;ra(d)}b=F[a+616>>2];if(b){F[a+620>>2]=b;ra(b)}b=F[a+604>>2];if(b){F[a+608>>2]=b;ra(b)}_a(a+584|0);_a(a+564|0);_a(a+544|0)}function lc(a,b){var c=0,d=0,e=0,f=0,g=0,h=0,i=0;a:{c=F[a+4>>2];d=F[a>>2];f=c-d|0;b:{if(f>>>0>>0){g=b-f|0;e=F[a+8>>2];if(g>>>0<=e-c>>>0){h=a,i=ua(c,0,g)+g|0,F[h+4>>2]=i;break b}if((b|0)<0){break a}c=e-d|0;e=c<<1;e=c>>>0<1073741823?b>>>0>>0?e:b:2147483647;c=sa(e);ua(c+f|0,0,g);if((f|0)>0){ta(c,d,f)}F[a+8>>2]=c+e;F[a+4>>2]=b+c;F[a>>2]=c;if(!d){break b}ra(d);break b}if(b>>>0>=f>>>0){break b}F[a+4>>2]=b+d}b=F[a+28>>2];c=b;d=b+1|0;b=F[a+24>>2]+1|0;d=b?c:d;F[a+24>>2]=b;F[a+28>>2]=d;return}va();V()}function yb(a){var b=0,c=0,d=0,e=0;c=F[a+128>>2];if(c){d=c;b=F[a+132>>2];if((c|0)!=(b|0)){while(1){d=b-12|0;e=F[d>>2];if(e){F[b-8>>2]=e;ra(e)}b=d;if((c|0)!=(b|0)){continue}break}d=F[a+128>>2]}F[a+132>>2]=c;ra(d)}c=F[a+116>>2];if(c){d=c;b=F[a+120>>2];if((c|0)!=(b|0)){while(1){d=b-12|0;e=F[d>>2];if(e){F[b-8>>2]=e;ra(e)}b=d;if((c|0)!=(b|0)){continue}break}d=F[a+116>>2]}F[a+120>>2]=c;ra(d)}b=F[a+104>>2];if(b){F[a+108>>2]=b;ra(b)}b=F[a+92>>2];if(b){F[a+96>>2]=b;ra(b)}_a(a+72|0);_a(a+52|0);_a(a+32|0)}function La(a){F[a>>2]=-1;F[a+4>>2]=0;F[a+8>>2]=0;F[a+32>>2]=0;F[a+36>>2]=0;D[a+28|0]=1;F[a+20>>2]=0;F[a+24>>2]=0;F[a+12>>2]=0;F[a+16>>2]=0;F[a+40>>2]=0;F[a+44>>2]=0;F[a+48>>2]=0;F[a+52>>2]=0;F[a+56>>2]=0;F[a+60>>2]=0;F[a+64>>2]=0;F[a+68>>2]=0;F[a+76>>2]=0;F[a+80>>2]=0;F[a+84>>2]=0;F[a+88>>2]=0;F[a+92>>2]=0;F[a+96>>2]=0;F[a+72>>2]=a+4;F[a+104>>2]=0;F[a+108>>2]=0;D[a+100|0]=1;F[a+112>>2]=0;F[a+116>>2]=0;F[a+120>>2]=0;F[a+124>>2]=0;F[a+128>>2]=0;F[a+132>>2]=0;F[a+136>>2]=0;F[a+140>>2]=0}function Gg(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0;a=ea-32|0;ea=a;a:{d=Oa(c);if(d>>>0<4294967280){b:{c:{if(d>>>0>=11){f=d+16&-16;e=sa(f);F[a+24>>2]=f|-2147483648;F[a+16>>2]=e;F[a+20>>2]=d;break c}D[a+27|0]=d;e=a+16|0;if(!d){break b}}ta(e,c,d)}D[d+e|0]=0;D[a+4|0]=0;F[a>>2]=1701667182;D[a+11|0]=4;d=F[b+4>>2];c=-1;d:{if(!d){break d}d=ae(d,a,a+16|0);c=-1;if(!d){break d}c=Xd(b,F[d+24>>2])}b=c;if(D[a+11|0]<0){ra(F[a>>2])}if(D[a+27|0]<0){ra(F[a+16>>2])}ea=a+32|0;break a}Pa();V()}return b|0}function Rg(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0;d=ea-16|0;ea=d;F[d+12>>2]=0;a:{e=Oa(c);if(e>>>0<4294967280){b:{c:{if(e>>>0>=11){f=e+16&-16;a=sa(f);F[d+8>>2]=f|-2147483648;F[d>>2]=a;F[d+4>>2]=e;break c}D[d+11|0]=e;a=d;if(!e){break b}}ta(a,c,e)}D[a+e|0]=0;a=sb(b,d);d:{if((a|0)==(b+4|0)){break d}b=F[a+32>>2];a=F[a+28>>2];if((b-a|0)!=4){break d}F[d+12>>2]=G[a|0]|G[a+1|0]<<8|(G[a+2|0]<<16|G[a+3|0]<<24)}a=F[d+12>>2];if(D[d+11|0]<0){ra(F[d>>2])}ea=d+16|0;break a}Pa();V()}return a|0}function Ld(a,b){if(!a){return 0}a:{b:{if(a){if(b>>>0<=127){break b}c:{if(!F[F[4282]>>2]){if((b&-128)==57216){break b}break c}if(b>>>0<=2047){D[a+1|0]=b&63|128;D[a|0]=b>>>6|192;a=2;break a}if(!((b&-8192)!=57344&b>>>0>=55296)){D[a+2|0]=b&63|128;D[a|0]=b>>>12|224;D[a+1|0]=b>>>6&63|128;a=3;break a}if(b-65536>>>0<=1048575){D[a+3|0]=b&63|128;D[a|0]=b>>>18|240;D[a+2|0]=b>>>6&63|128;D[a+1|0]=b>>>12&63|128;a=4;break a}}F[3984]=25;a=-1}else{a=1}break a}D[a|0]=b;a=1}return a}function _b(a){a=a|0;var b=0,c=0,d=0;F[a>>2]=13724;b=F[a+68>>2];if(b){F[a+72>>2]=b;ra(b)}b=F[a+56>>2];if(b){F[a+60>>2]=b;ra(b)}b=F[a+44>>2];if(b){F[a+48>>2]=b;ra(b)}b=F[a+32>>2];if(b){F[a+36>>2]=b;ra(b)}b=F[a+20>>2];if(b){F[a+24>>2]=b;ra(b)}b=F[a+8>>2];if(b){d=b;c=F[a+12>>2];if((b|0)!=(c|0)){while(1){c=c-4|0;d=F[c>>2];F[c>>2]=0;if(d){Ja(d)}if((b|0)!=(c|0)){continue}break}d=F[a+8>>2]}F[a+12>>2]=b;ra(d)}b=F[a+4>>2];F[a+4>>2]=0;if(b){Rc(b)}return a|0}function Aa(a,b){var c=0,d=0,e=0,f=0,g=0,h=0,i=0;e=F[a+8>>2];c=F[a+4>>2];if(e-c>>2>>>0>=b>>>0){if(b){b=b<<2;c=ua(c,0,b)+b|0}F[a+4>>2]=c;return}a:{f=F[a>>2];g=c-f|0;h=g>>2;d=h+b|0;if(d>>>0<1073741824){c=0;e=e-f|0;i=e>>1;d=e>>>0<2147483644?d>>>0>>0?i:d:1073741823;if(d){if(d>>>0>=1073741824){break a}c=sa(d<<2)}b=b<<2;b=ua((h<<2)+c|0,0,b)+b|0;if((g|0)>0){ta(c,f,g)}F[a+8>>2]=(d<<2)+c;F[a+4>>2]=b;F[a>>2]=c;if(f){ra(f)}return}va();V()}za();V()}function tb(a,b){var c=0,d=0,e=0,f=0,g=0,h=0,i=0;e=F[a+8>>2];c=F[a+4>>2];if(e-c>>3>>>0>=b>>>0){if(b){b=b<<3;c=ua(c,0,b)+b|0}F[a+4>>2]=c;return}a:{f=F[a>>2];g=c-f|0;h=g>>3;d=h+b|0;if(d>>>0<536870912){c=0;e=e-f|0;i=e>>2;d=e>>>0<2147483640?d>>>0>>0?i:d:536870911;if(d){if(d>>>0>=536870912){break a}c=sa(d<<3)}b=b<<3;b=ua((h<<3)+c|0,0,b)+b|0;if((g|0)>0){ta(c,f,g)}F[a+8>>2]=(d<<3)+c;F[a+4>>2]=b;F[a>>2]=c;if(f){ra(f)}return}va();V()}za();V()}function jb(a,b){var c=0,d=0,e=0,f=0,g=0,h=0;e=F[a>>2];a=F[e+4>>2];c=F[e+8>>2];if(a>>>0>>0){F[a>>2]=F[b>>2];F[e+4>>2]=a+4;return}a:{f=F[e>>2];g=a-f|0;d=g>>2;a=d+1|0;if(a>>>0<1073741824){h=d<<2;c=c-f|0;d=c>>1;c=c>>>0<2147483644?a>>>0>>0?d:a:1073741823;if(c){if(c>>>0>=1073741824){break a}a=sa(c<<2)}else{a=0}d=h+a|0;F[d>>2]=F[b>>2];if((g|0)>0){ta(a,f,g)}F[e+8>>2]=a+(c<<2);F[e+4>>2]=d+4;F[e>>2]=a;if(f){ra(f)}return}va();V()}za();V()}function Qc(a,b){var c=0,d=0,e=0,f=0;c=a+4|0;a=sb(a,b);a:{if((c|0)==(a|0)){break a}b=a+28|0;b=D[a+39|0]<0?F[b>>2]:b;while(1){a=b;b=a+1|0;c=D[a|0];if((c|0)==32|c-9>>>0<5){continue}break}b:{c:{d:{c=D[a|0];switch(c-43|0){case 0:break c;case 2:break d;default:break b}}e=1}c=D[b|0];a=b}if(c-48>>>0<10){while(1){d=(L(d,10)-D[a|0]|0)+48|0;b=D[a+1|0];a=a+1|0;if(b-48>>>0<10){continue}break}}a=e?d:0-d|0;if((a|0)==-1){break a}f=(a|0)!=0}return f}function hf(a){a=a|0;var b=0,c=0,d=0;F[a>>2]=2328;b=F[a+60>>2];F[a+60>>2]=0;if(b){ga[F[F[b>>2]+4>>2]](b)}b=F[a+48>>2];if(b){F[a+52>>2]=b;ra(b)}d=F[a+36>>2];if(d){c=F[a+40>>2];b=d;if((c|0)!=(b|0)){while(1){c=c-4|0;b=F[c>>2];F[c>>2]=0;if(b){ga[F[F[b>>2]+4>>2]](b)}if((c|0)!=(d|0)){continue}break}b=F[a+36>>2]}F[a+40>>2]=d;ra(b)}F[a>>2]=1984;b=F[a+16>>2];if(b){F[a+20>>2]=b;ra(b)}b=F[a+4>>2];if(b){F[a+8>>2]=b;ra(b)}return a|0}function gf(a){a=a|0;var b=0,c=0,d=0;F[a>>2]=2328;b=F[a+60>>2];F[a+60>>2]=0;if(b){ga[F[F[b>>2]+4>>2]](b)}b=F[a+48>>2];if(b){F[a+52>>2]=b;ra(b)}d=F[a+36>>2];if(d){c=F[a+40>>2];b=d;if((c|0)!=(b|0)){while(1){c=c-4|0;b=F[c>>2];F[c>>2]=0;if(b){ga[F[F[b>>2]+4>>2]](b)}if((c|0)!=(d|0)){continue}break}b=F[a+36>>2]}F[a+40>>2]=d;ra(b)}F[a>>2]=1984;b=F[a+16>>2];if(b){F[a+20>>2]=b;ra(b)}b=F[a+4>>2];if(b){F[a+8>>2]=b;ra(b)}ra(a)}function ui(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0;d=ea-16|0;ea=d;e=F[a+4>>2];a:{if((e|0)==-1){break a}c=F[b+20>>2];if(!!F[b+16>>2]&(c|0)>=0|(c|0)>0){break a}Xb(b,F[b+4>>2],F[a+8>>2],F[a+12>>2]);c=F[b+20>>2];if(!!F[b+16>>2]&(c|0)>=0|(c|0)>0){break a}Xb(b,F[b+4>>2],a+20|0,a+24|0);c=F[b+20>>2];f=F[b+16>>2];D[d+15|0]=F[a+4>>2];if(!!f&(c|0)>=0|(c|0)>0){break a}Xb(b,F[b+4>>2],d+15|0,d+16|0)}ea=d+16|0;return(e|0)!=-1|0}function pe(a,b){var c=0,d=0,e=0,f=0,g=0,h=0;e=F[a+8>>2];c=F[a+4>>2];if(e-c>>1>>>0>=b>>>0){if(b){b=b<<1;c=ua(c,0,b)+b|0}F[a+4>>2]=c;return}a:{f=F[a>>2];g=c-f|0;h=g>>1;d=h+b|0;if((d|0)>=0){c=0;e=e-f|0;d=e>>>0<2147483646?d>>>0>>0?e:d:2147483647;if(d){if((d|0)<0){break a}c=sa(d<<1)}b=b<<1;b=ua((h<<1)+c|0,0,b)+b|0;if((g|0)>0){ta(c,f,g)}F[a+8>>2]=(d<<1)+c;F[a+4>>2]=b;F[a>>2]=c;if(f){ra(f)}return}va();V()}za();V()}function Ch(a){a=a|0;var b=0,c=0,d=0,e=0,f=0;a:{b=F[a+8>>2];b:{if((b|0)<0){break b}c=F[a+4>>2];e=F[c>>2];d=F[c+4>>2]-e>>2;c:{if(d>>>0>>0){Aa(c,b-d|0);f=F[a+8>>2];break c}f=b;if(b>>>0>=d>>>0){break c}F[c+4>>2]=e+(b<<2);f=b}d=f;if((d|0)<=0){break b}a=F[a+4>>2];c=F[a>>2];e=F[a+4>>2]-c>>2;a=0;while(1){if((a|0)==(e|0)){break a}F[c+(a<<2)>>2]=a;a=a+1|0;if((d|0)!=(a|0)){continue}break}}return(b^-1)>>>31|0}Ea();V()}function mg(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0,g=0;d=ea-16|0;ea=d;Me(d,a,b,c);F[a+24>>2]=F[d>>2];e=a+24|0;a:{if((e|0)==(d|0)){break a}b=d|4;f=G[d+15|0];c=f<<24>>24;a=a+28|0;if(D[a+11|0]>=0){if((c|0)>=0){c=F[b+4>>2];F[a>>2]=F[b>>2];F[a+4>>2]=c;F[a+8>>2]=F[b+8>>2];break a}Yb(a,F[d+4>>2],F[d+8>>2]);break a}g=a;a=(c|0)<0;Zb(g,a?F[d+4>>2]:b,a?F[d+8>>2]:f)}if(D[d+15|0]<0){ra(F[d+4>>2])}ea=d+16|0;return e|0}function lg(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0,g=0;d=ea-16|0;ea=d;Le(d,a,b,c);F[a+24>>2]=F[d>>2];e=a+24|0;a:{if((e|0)==(d|0)){break a}b=d|4;f=G[d+15|0];c=f<<24>>24;a=a+28|0;if(D[a+11|0]>=0){if((c|0)>=0){c=F[b+4>>2];F[a>>2]=F[b>>2];F[a+4>>2]=c;F[a+8>>2]=F[b+8>>2];break a}Yb(a,F[d+4>>2],F[d+8>>2]);break a}g=a;a=(c|0)<0;Zb(g,a?F[d+4>>2]:b,a?F[d+8>>2]:f)}if(D[d+15|0]<0){ra(F[d+4>>2])}ea=d+16|0;return e|0}function wg(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,f=0,g=0;a=ea-32|0;ea=a;e=D[b+24|0];f=F[3411];F[a+24>>2]=F[3410];F[a+28>>2]=f;f=F[3409];F[a+16>>2]=F[3408];F[a+20>>2]=f;a:{b:{c=Ya(b,c,e,a+16|0);if(c){F[a+8>>2]=0;F[a>>2]=0;F[a+4>>2]=0;b=0;if(e){if((e|0)<0){break b}e=e<<2;b=sa(e);g=ta(b,a+16|0,e)+e|0}e=F[d>>2];if(e){F[d+4>>2]=e;ra(e)}F[d+8>>2]=g;F[d+4>>2]=g;F[d>>2]=b}ea=a+32|0;break a}va();V()}return c|0}function Ua(a){var b=0,c=0,d=0,e=0,f=0;b=F[a+4>>2];if((b|0)!=F[a+8>>2]){F[b>>2]=F[2856];F[a+4>>2]=b+4;return}a:{f=F[a>>2];d=b-f|0;e=d>>2;b=e+1|0;if(b>>>0<1073741824){c=d>>1;c=d>>>0<2147483644?b>>>0>>0?c:b:1073741823;if(c){if(c>>>0>=1073741824){break a}b=sa(c<<2)}else{b=0}e=b+(e<<2)|0;F[e>>2]=F[2856];if((d|0)>0){ta(b,f,d)}F[a+8>>2]=b+(c<<2);F[a+4>>2]=e+4;F[a>>2]=b;if(f){ra(f)}return}va();V()}za();V()}function Dc(a,b,c){var d=0,e=0,f=0;d=F[c+16>>2];a:{if(!d){if(Rd(c)){break a}d=F[c+16>>2]}f=F[c+20>>2];if(d-f>>>0>>0){return ga[F[c+36>>2]](c,a,b)|0}b:{if(F[c+80>>2]<0){d=0;break b}e=b;while(1){d=e;if(!d){d=0;break b}e=d-1|0;if(G[e+a|0]!=10){continue}break}e=ga[F[c+36>>2]](c,a,d)|0;if(e>>>0>>0){break a}a=a+d|0;b=b-d|0;f=F[c+20>>2]}ta(f,a,b);F[c+20>>2]=F[c+20>>2]+b;e=b+d|0}return e}function Ib(a,b){var c=0,d=0,e=0,f=0;d=F[a+12>>2];c=F[a+16>>2]-d>>2;a:{if(c>>>0>>0){Aa(a+12|0,b-c|0);break a}if(b>>>0>=c>>>0){break a}F[a+16>>2]=d+(b<<2)}b:{c=F[a>>2];c:{if(F[a+8>>2]-c>>2>>>0>=b>>>0){break c}if(b>>>0>=1073741824){break b}d=F[a+4>>2];e=b<<2;b=sa(e);e=b+e|0;d=d-c|0;f=d+b|0;if((d|0)>0){ta(b,c,d)}F[a+8>>2]=e;F[a+4>>2]=f;F[a>>2]=b;if(!c){break c}ra(c)}return}va();V()}function Og(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0,g=0;d=ea-16|0;ea=d;a:{e=Oa(c);if(e>>>0<4294967280){b:{c:{if(e>>>0>=11){g=e+16&-16;f=sa(g);F[d+8>>2]=g|-2147483648;F[d>>2]=f;F[d+4>>2]=e;break c}D[d+11|0]=e;f=d;if(!e){break b}}ta(f,c,e)}D[e+f|0]=0;f=a+16|0;c=_d(b,d,f);b=D[a+27|0];a=F[a+16>>2];if(D[d+11|0]<0){ra(F[d>>2])}ea=d+16|0;a=c?(b|0)<0?a:f:0;break a}Pa();V()}return a|0}function _c(a){var b=0,c=0,d=0,e=0;if(G[a+76|0]){D[a+76|0]=0;d=F[a+60>>2];c=F[a+72>>2]+7|0;b=c>>>0<7?1:b;e=b>>>3|0;c=b<<29|c>>>3;b=c+F[a+56>>2]|0;d=d+e|0;F[a+56>>2]=b;F[a+60>>2]=b>>>0>>0?d+1|0:d}if(H[a+38>>1]<=513){D[a+132|0]=0;d=F[a+116>>2];b=0;c=F[a+128>>2]+7|0;b=c>>>0<7?1:b;e=b>>>3|0;c=b<<29|c>>>3;b=c+F[a+112>>2]|0;d=d+e|0;F[a+112>>2]=b;F[a+116>>2]=b>>>0>>0?d+1|0:d}}function Eh(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0,g=0,h=0,i=0;d=ea+-64|0;ea=d;e=ga[F[F[a>>2]+44>>2]](a,b)|0;a=ga[F[F[a>>2]+40>>2]](a,b)|0;f=Gb(d);g=F[b+56>>2];h=e<<24>>24;i=a;a=a-1|0;if(a>>>0<=10){a=F[(a<<2)+13584>>2]}else{a=-1}a=L(a,e);kc(f,g,h,i,0,a,a>>31);a=dc(sa(96),f);rb(a,c);D[a+84|0]=1;F[a+72>>2]=F[a+68>>2];F[a+60>>2]=F[b+60>>2];ea=d- -64|0;return a|0}function qe(a,b,c){var d=0,e=0,f=0,g=0;a:{if(a>>>0>10){break a}d=F[c+20>>2];e=F[c+12>>2];f=F[c+16>>2];if((d|0)>=(e|0)&f>>>0>=I[c+8>>2]|(d|0)>(e|0)){break a}e=D[f+F[c>>2]|0];f=f+1|0;d=f?d:d+1|0;F[c+16>>2]=f;F[c+20>>2]=d;b:{if((e|0)<0){if(!qe(a+1|0,b,c)){break a}c=F[b>>2];a=F[b+4>>2]<<7|c>>>25;c=e&127|c<<7;break b}a=0;c=e&255}F[b>>2]=c;F[b+4>>2]=a;g=1}return g}function kb(a,b,c){var d=0,e=0,f=0,g=0;a:{if(a>>>0>10){break a}d=F[c+20>>2];e=F[c+12>>2];f=F[c+16>>2];if((d|0)>=(e|0)&f>>>0>=I[c+8>>2]|(d|0)>(e|0)){break a}e=D[f+F[c>>2]|0];f=f+1|0;d=f?d:d+1|0;F[c+16>>2]=f;F[c+20>>2]=d;b:{if((e|0)<0){if(!kb(a+1|0,b,c)){break a}c=F[b>>2];a=F[b+4>>2]<<7|c>>>25;c=e&127|c<<7;break b}a=0;c=e&255}F[b>>2]=c;F[b+4>>2]=a;g=1}return g}function Be(a,b){var c=0,d=0,e=0,f=0,g=0;F[a+144>>2]=b;c=F[(ga[F[F[b>>2]+32>>2]](b)|0)+32>>2];e=F[c>>2]+F[c+16>>2]|0;d=F[(ga[F[F[b>>2]+32>>2]](b)|0)+32>>2];c=F[d+8>>2];d=F[d+16>>2];c=c-d|0;f=a,g=H[F[(ga[F[F[b>>2]+32>>2]](b)|0)+32>>2]+38>>1],E[f+38>>1]=g;F[a>>2]=e;F[a+16>>2]=0;F[a+20>>2]=0;F[a+8>>2]=c;F[a+12>>2]=0;f=a,g=ga[F[F[b>>2]+36>>2]](b)|0,F[f+148>>2]=g}function Gf(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;if(Za(a,F[b+8>>2],e)){if(!(F[b+28>>2]==1|F[b+4>>2]!=(c|0))){F[b+28>>2]=d}return}a:{if(!Za(a,F[b>>2],e)){break a}if(!(F[b+16>>2]!=(c|0)&F[b+20>>2]!=(c|0))){if((d|0)!=1){break a}F[b+32>>2]=1;return}F[b+20>>2]=c;F[b+32>>2]=d;F[b+40>>2]=F[b+40>>2]+1;if(!(F[b+36>>2]!=1|F[b+24>>2]!=2)){D[b+54|0]=1}F[b+44>>2]=4}}function oi(a){a=a|0;var b=0,c=0,d=0;F[a>>2]=11276;b=F[a+48>>2];F[a+48>>2]=0;if(b){ga[F[F[b>>2]+4>>2]](b)}F[a>>2]=13280;b=F[a+20>>2];if(b){F[a+24>>2]=b;ra(b)}d=F[a+8>>2];if(d){c=F[a+12>>2];b=d;if((c|0)!=(b|0)){while(1){c=c-4|0;b=F[c>>2];F[c>>2]=0;if(b){ga[F[F[b>>2]+4>>2]](b)}if((c|0)!=(d|0)){continue}break}b=F[a+8>>2]}F[a+12>>2]=d;ra(b)}return a|0}function zh(a){a=a|0;var b=0,c=0,d=0,e=0,f=0,g=0,h=0;b=F[a+32>>2];f=F[b+8>>2];e=F[b+12>>2];d=F[b+20>>2];h=f;f=F[b+16>>2];g=f+4|0;d=g>>>0<4?d+1|0:d;a:{if(h>>>0>>0&(d|0)>=(e|0)|(d|0)>(e|0)){break a}c=f+F[b>>2]|0;e=G[c|0]|G[c+1|0]<<8|(G[c+2|0]<<16|G[c+3|0]<<24);F[b+16>>2]=g;F[b+20>>2]=d;c=0;if((e|0)<0){break a}F[F[a+4>>2]+80>>2]=e;c=1}return c|0}function pc(a,b,c){var d=0,e=0,f=0,g=0,h=0,i=0,j=0;if(!b){F[c>>2]=0;return}g=0-G[a+12|0]&255;e=F[a+8>>2];h=F[a>>2];while(1){i=d<<1;a:{if(e>>>0>4095){break a}d=F[a+4>>2];if((d|0)<=0){break a}d=d-1|0;F[a+4>>2]=d;e=G[d+h|0]|e<<8}f=e&255;d=f>>>0>>0;j=f;f=L(e>>>8|0,g);e=d?j+f|0:e-(g+f|0)|0;F[a+8>>2]=e;d=d|i;b=b-1|0;if(b){continue}break}F[c>>2]=d}function Cd(a,b,c,d){D[a+53|0]=1;a:{if(F[a+4>>2]!=(c|0)){break a}D[a+52|0]=1;c=F[a+16>>2];b:{if(!c){F[a+36>>2]=1;F[a+24>>2]=d;F[a+16>>2]=b;if((d|0)!=1){break a}if(F[a+48>>2]==1){break b}break a}if((b|0)==(c|0)){c=F[a+24>>2];if((c|0)==2){F[a+24>>2]=d;c=d}if(F[a+48>>2]!=1){break a}if((c|0)==1){break b}break a}F[a+36>>2]=F[a+36>>2]+1}D[a+54|0]=1}}function ni(a){a=a|0;var b=0,c=0,d=0;F[a>>2]=11276;b=F[a+48>>2];F[a+48>>2]=0;if(b){ga[F[F[b>>2]+4>>2]](b)}F[a>>2]=13280;b=F[a+20>>2];if(b){F[a+24>>2]=b;ra(b)}d=F[a+8>>2];if(d){c=F[a+12>>2];b=d;if((c|0)!=(b|0)){while(1){c=c-4|0;b=F[c>>2];F[c>>2]=0;if(b){ga[F[F[b>>2]+4>>2]](b)}if((c|0)!=(d|0)){continue}break}b=F[a+8>>2]}F[a+12>>2]=d;ra(b)}ra(a)}function xh(a){a=a|0;var b=0,c=0,d=0,e=0,f=0,g=0,h=0;d=F[a+32>>2];e=F[d+12>>2];g=F[d+8>>2];b=g;c=F[d+20>>2];h=F[d+16>>2];f=h+4|0;c=f>>>0<4?c+1|0:c;if((c|0)<=(e|0)&b>>>0>=f>>>0|(c|0)<(e|0)){b=h+F[d>>2]|0;b=G[b|0]|G[b+1|0]<<8|(G[b+2|0]<<16|G[b+3|0]<<24);F[d+16>>2]=f;F[d+20>>2]=c;F[F[a+4>>2]+80>>2]=b}return(c|0)<=(e|0)&f>>>0<=g>>>0|(c|0)<(e|0)}function Kf(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0;e=ea+-64|0;ea=e;d=1;a:{if(Za(a,b,0)){break a}d=0;if(!b){break a}b=Ed(b,14972);d=0;if(!b){break a}d=e+8|0;ua(d|4,0,52);F[e+56>>2]=1;F[e+20>>2]=-1;F[e+16>>2]=a;F[e+8>>2]=b;ga[F[F[b>>2]+28>>2]](b,d,F[c>>2],1);a=F[e+32>>2];if((a|0)==1){F[c>>2]=F[e+24>>2]}d=(a|0)==1}ea=e- -64|0;return d|0}function Fe(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0;d=ea-16|0;ea=d;F[a+4>>2]=b;b=F[b+64>>2];e=F[b>>2];b=F[b+4>>2];D[d+15|0]=0;Qa(a+24|0,(b-e>>2>>>0)/3|0,d+15|0);b=F[a+4>>2];e=F[b+56>>2];b=F[b+52>>2];D[d+14|0]=0;Qa(a+36|0,e-b>>2,d+14|0);b=F[c+12>>2];F[a+16>>2]=F[c+8>>2];F[a+20>>2]=b;b=F[c+4>>2];F[a+8>>2]=F[c>>2];F[a+12>>2]=b;ea=d+16|0}function mf(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0;f=ga[F[F[a>>2]+24>>2]](a)|0;c=1;a:{if((f|0)<=0){break a}d=F[F[a+36>>2]>>2];g=a+48|0;c=0;if(!(ga[F[F[d>>2]+16>>2]](d,g,b)|0)){break a}while(1){e=e+1|0;if((f|0)!=(e|0)){d=F[F[a+36>>2]+(e<<2)>>2];if(ga[F[F[d>>2]+16>>2]](d,g,b)|0){continue}}break}c=(e|0)>=(f|0)}return c|0}function lf(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0;f=ga[F[F[a>>2]+24>>2]](a)|0;c=1;a:{if((f|0)<=0){break a}d=F[F[a+36>>2]>>2];g=a+48|0;c=0;if(!(ga[F[F[d>>2]+20>>2]](d,g,b)|0)){break a}while(1){e=e+1|0;if((f|0)!=(e|0)){d=F[F[a+36>>2]+(e<<2)>>2];if(ga[F[F[d>>2]+20>>2]](d,g,b)|0){continue}}break}c=(e|0)>=(f|0)}return c|0}function Zh(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0;d=ea-16|0;ea=d;F[a+4>>2]=b;e=F[b>>2];b=F[b+4>>2];D[d+15|0]=0;Qa(a+24|0,(b-e>>2>>>0)/3|0,d+15|0);b=F[a+4>>2];e=F[b+28>>2];b=F[b+24>>2];D[d+14|0]=0;Qa(a+36|0,e-b>>2,d+14|0);b=F[c+12>>2];F[a+16>>2]=F[c+8>>2];F[a+20>>2]=b;b=F[c+4>>2];F[a+8>>2]=F[c>>2];F[a+12>>2]=b;ea=d+16|0}function $b(a){var b=0;F[a>>2]=0;F[a+4>>2]=0;F[a+56>>2]=0;F[a+48>>2]=0;F[a+52>>2]=0;F[a+40>>2]=0;F[a+44>>2]=0;F[a+32>>2]=0;F[a+36>>2]=0;F[a+24>>2]=0;F[a+28>>2]=0;F[a+16>>2]=0;F[a+20>>2]=0;F[a+8>>2]=0;F[a+12>>2]=0;b=a- -64|0;F[b>>2]=0;F[b+4>>2]=0;F[a+72>>2]=0;F[a+76>>2]=0;F[a+80>>2]=0;F[a+84>>2]=0;F[a+60>>2]=a;return a}function sd(a,b,c){var d=0,e=0,f=0,g=0,h=0;a:{if(a>>>0>5){break a}f=F[c+20>>2];d=f;g=F[c+12>>2];e=F[c+16>>2];if((d|0)>=(g|0)&e>>>0>=I[c+8>>2]|(d|0)>(g|0)){break a}d=G[e+F[c>>2]|0];e=e+1|0;f=e?f:f+1|0;F[c+16>>2]=e;F[c+20>>2]=f;if(d&128){if(!sd(a+1|0,b,c)){break a}d=d&127|F[b>>2]<<7}F[b>>2]=d;h=1}return h}function lb(a,b,c){var d=0,e=0,f=0,g=0,h=0;a:{if(a>>>0>5){break a}f=F[c+20>>2];d=f;g=F[c+12>>2];e=F[c+16>>2];if((d|0)>=(g|0)&e>>>0>=I[c+8>>2]|(d|0)>(g|0)){break a}d=G[e+F[c>>2]|0];e=e+1|0;f=e?f:f+1|0;F[c+16>>2]=e;F[c+20>>2]=f;if(d&128){if(!lb(a+1|0,b,c)){break a}d=d&127|F[b>>2]<<7}F[b>>2]=d;h=1}return h}function ab(a,b,c){var d=0,e=0,f=0,g=0,h=0;a:{if(a>>>0>5){break a}f=F[c+20>>2];d=f;g=F[c+12>>2];e=F[c+16>>2];if((d|0)>=(g|0)&e>>>0>=I[c+8>>2]|(d|0)>(g|0)){break a}d=G[e+F[c>>2]|0];e=e+1|0;f=e?f:f+1|0;F[c+16>>2]=e;F[c+20>>2]=f;if(d&128){if(!ab(a+1|0,b,c)){break a}d=d&127|F[b>>2]<<7}F[b>>2]=d;h=1}return h}function Ne(a,b,c){var d=0,e=0,f=0,g=0,h=0;a:{if(a>>>0>5){break a}f=F[c+20>>2];d=f;g=F[c+12>>2];e=F[c+16>>2];if((d|0)>=(g|0)&e>>>0>=I[c+8>>2]|(d|0)>(g|0)){break a}d=G[e+F[c>>2]|0];e=e+1|0;f=e?f:f+1|0;F[c+16>>2]=e;F[c+20>>2]=f;if(d&128){if(!Ne(a+1|0,b,c)){break a}d=d&127|F[b>>2]<<7}F[b>>2]=d;h=1}return h}function Mc(a,b,c){var d=0,e=0,f=0,g=0,h=0;a:{if(a>>>0>5){break a}f=F[c+20>>2];d=f;g=F[c+12>>2];e=F[c+16>>2];if((d|0)>=(g|0)&e>>>0>=I[c+8>>2]|(d|0)>(g|0)){break a}d=G[e+F[c>>2]|0];e=e+1|0;f=e?f:f+1|0;F[c+16>>2]=e;F[c+20>>2]=f;if(d&128){if(!Mc(a+1|0,b,c)){break a}d=d&127|F[b>>2]<<7}F[b>>2]=d;h=1}return h}function Hb(a,b,c){var d=0,e=0,f=0,g=0,h=0;a:{if(a>>>0>5){break a}f=F[c+20>>2];d=f;g=F[c+12>>2];e=F[c+16>>2];if((d|0)>=(g|0)&e>>>0>=I[c+8>>2]|(d|0)>(g|0)){break a}d=G[e+F[c>>2]|0];e=e+1|0;f=e?f:f+1|0;F[c+16>>2]=e;F[c+20>>2]=f;if(d&128){if(!Hb(a+1|0,b,c)){break a}d=d&127|F[b>>2]<<7}F[b>>2]=d;h=1}return h}function Ga(a,b,c){var d=0,e=0,f=0,g=0,h=0;a:{if(a>>>0>5){break a}f=F[c+20>>2];d=f;g=F[c+12>>2];e=F[c+16>>2];if((d|0)>=(g|0)&e>>>0>=I[c+8>>2]|(d|0)>(g|0)){break a}d=G[e+F[c>>2]|0];e=e+1|0;f=e?f:f+1|0;F[c+16>>2]=e;F[c+20>>2]=f;if(d&128){if(!Ga(a+1|0,b,c)){break a}d=d&127|F[b>>2]<<7}F[b>>2]=d;h=1}return h}function Db(a,b,c){var d=0,e=0,f=0,g=0,h=0;a:{if(a>>>0>5){break a}f=F[c+20>>2];d=f;g=F[c+12>>2];e=F[c+16>>2];if((d|0)>=(g|0)&e>>>0>=I[c+8>>2]|(d|0)>(g|0)){break a}d=G[e+F[c>>2]|0];e=e+1|0;f=e?f:f+1|0;F[c+16>>2]=e;F[c+20>>2]=f;if(d&128){if(!Db(a+1|0,b,c)){break a}d=d&127|F[b>>2]<<7}F[b>>2]=d;h=1}return h}function Ha(a,b,c){var d=0,e=0;a:{b:{if(c>>>0>=4){if((a|b)&3){break b}while(1){if(F[a>>2]!=F[b>>2]){break b}b=b+4|0;a=a+4|0;c=c-4|0;if(c>>>0>3){continue}break}}if(!c){break a}}while(1){d=G[a|0];e=G[b|0];if((d|0)==(e|0)){b=b+1|0;a=a+1|0;c=c-1|0;if(c){continue}break a}break}return d-e|0}return 0}function Vc(a){var b=0,c=0,d=0,e=0;d=F[a>>2];if(d){e=d;c=F[a+4>>2];if((d|0)!=(c|0)){while(1){e=c-144|0;b=F[e+132>>2];if(b){F[c-8>>2]=b;ra(b)}b=F[c-28>>2];if(b){F[c-24>>2]=b;ra(b)}b=F[c-40>>2];if(b){F[c-36>>2]=b;ra(b)}oc(c-140|0);c=e;if((d|0)!=(c|0)){continue}break}e=F[a>>2]}F[a+4>>2]=d;ra(e)}}function Bg(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0;d=F[b+4>>2];a:{if(!d){break a}b=F[F[F[b+8>>2]+(c<<2)>>2]+60>>2];if((b|0)<0){break a}a=F[d+24>>2];c=F[d+28>>2];if((a|0)==(c|0)){break a}b:{while(1){e=F[a>>2];if((b|0)==F[e+24>>2]){break b}a=a+4|0;if((c|0)!=(a|0)){continue}break}e=0}}return e|0}function Xh(a){a=a|0;var b=0;F[a+8>>2]=12384;F[a>>2]=12172;b=F[a+96>>2];if(b){F[a+100>>2]=b;ra(b)}b=F[a+80>>2];if(b){F[a+84>>2]=b;ra(b)}b=F[a+68>>2];if(b){F[a+72>>2]=b;ra(b)}b=F[a+56>>2];if(b){F[a+60>>2]=b;ra(b)}F[a+8>>2]=12620;b=F[a+44>>2];if(b){ra(b)}b=F[a+32>>2];if(b){ra(b)}return a|0}function Rc(a){var b=0,c=0,d=0;if(a){d=F[a+24>>2];if(d){b=d;c=F[a+28>>2];if((b|0)!=(c|0)){while(1){c=c-4|0;b=F[c>>2];F[c>>2]=0;if(b){Ta(b+12|0,F[b+16>>2]);Sa(b,F[b+4>>2]);ra(b)}if((c|0)!=(d|0)){continue}break}b=F[a+24>>2]}F[a+28>>2]=d;ra(b)}Ta(a+12|0,F[a+16>>2]);Sa(a,F[a+4>>2]);ra(a)}}function Wh(a){a=a|0;var b=0;F[a+8>>2]=12384;F[a>>2]=12172;b=F[a+96>>2];if(b){F[a+100>>2]=b;ra(b)}b=F[a+80>>2];if(b){F[a+84>>2]=b;ra(b)}b=F[a+68>>2];if(b){F[a+72>>2]=b;ra(b)}b=F[a+56>>2];if(b){F[a+60>>2]=b;ra(b)}F[a+8>>2]=12620;b=F[a+44>>2];if(b){ra(b)}b=F[a+32>>2];if(b){ra(b)}ra(a)}function ti(a){a=a|0;var b=0,c=0,d=0;F[a>>2]=13280;b=F[a+20>>2];if(b){F[a+24>>2]=b;ra(b)}d=F[a+8>>2];if(d){c=F[a+12>>2];b=d;if((c|0)!=(b|0)){while(1){c=c-4|0;b=F[c>>2];F[c>>2]=0;if(b){ga[F[F[b>>2]+4>>2]](b)}if((c|0)!=(d|0)){continue}break}b=F[a+8>>2]}F[a+12>>2]=d;ra(b)}return a|0}function xc(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0,g=0,h=0,i=0;h=F[c+8>>2];e=F[c+16>>2];g=F[c+12>>2];f=g;d=F[c+20>>2];if(h>>>0>e>>>0&(f|0)>=(d|0)|(d|0)<(f|0)){b=G[e+F[c>>2]|0];i=e+1|0;f=i?d:d+1|0;F[c+16>>2]=i;F[c+20>>2]=f;F[a+4>>2]=b}return e>>>0>>0&(d|0)<=(g|0)|(d|0)<(g|0)}function Tc(a){a=a|0;var b=0,c=0,d=0;F[a>>2]=13280;b=F[a+20>>2];if(b){F[a+24>>2]=b;ra(b)}d=F[a+8>>2];if(d){c=F[a+12>>2];b=d;if((c|0)!=(b|0)){while(1){c=c-4|0;b=F[c>>2];F[c>>2]=0;if(b){ga[F[F[b>>2]+4>>2]](b)}if((c|0)!=(d|0)){continue}break}b=F[a+8>>2]}F[a+12>>2]=d;ra(b)}ra(a)}function Za(a,b,c){var d=0;if(!c){return F[a+4>>2]==F[b+4>>2]}if((a|0)==(b|0)){return 1}d=F[a+4>>2];a=G[d|0];c=F[b+4>>2];b=G[c|0];a:{if(!a|(b|0)!=(a|0)){break a}while(1){b=G[c+1|0];a=G[d+1|0];if(!a){break a}c=c+1|0;d=d+1|0;if((a|0)==(b|0)){continue}break}}return(a|0)==(b|0)}function Yh(a){a=a|0;var b=0;F[a>>2]=12384;b=F[a+88>>2];if(b){F[a+92>>2]=b;ra(b)}b=F[a+72>>2];if(b){F[a+76>>2]=b;ra(b)}b=F[a+60>>2];if(b){F[a- -64>>2]=b;ra(b)}b=F[a+48>>2];if(b){F[a+52>>2]=b;ra(b)}F[a>>2]=12620;b=F[a+36>>2];if(b){ra(b)}b=F[a+24>>2];if(b){ra(b)}return a|0}function Dg(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0;d=F[b+12>>2];b=F[b+8>>2];a=0;a:{if((d|0)==(b|0)){break a}a=d-b>>2;d=a>>>0>1?a:1;a=0;b:{while(1){e=F[b+(a<<2)>>2];if(F[e+60>>2]==(c|0)){break b}a=a+1|0;if((d|0)!=(a|0)){continue}break}a=0;break a}a=(a|0)==-1?0:e}return a|0}function $d(a,b){var c=0,d=0,e=0;F[a+8>>2]=0;F[a>>2]=0;F[a+4>>2]=0;a:{c=F[b+4>>2];d=F[b>>2];b:{if((c|0)==(d|0)){a=c;break b}c=c-d|0;if((c|0)<0){break a}d=c;e=sa(c);c=ua(e,0,c);d=d+c|0;F[a+8>>2]=d;F[a+4>>2]=d;F[a>>2]=c;c=F[b>>2];a=F[b+4>>2]}ta(e,c,a-c|0);return}va();V()}function cd(a){var b=0,c=0,d=0,e=0;c=F[a+4>>2];d=F[a>>2];if((c|0)!=(d|0)){while(1){e=c-144|0;b=F[e+132>>2];if(b){F[c-8>>2]=b;ra(b)}b=F[c-28>>2];if(b){F[c-24>>2]=b;ra(b)}b=F[c-40>>2];if(b){F[c-36>>2]=b;ra(b)}oc(c-140|0);c=e;if((d|0)!=(c|0)){continue}break}}F[a+4>>2]=d}function Th(a){a=a|0;var b=0;F[a>>2]=12384;b=F[a+88>>2];if(b){F[a+92>>2]=b;ra(b)}b=F[a+72>>2];if(b){F[a+76>>2]=b;ra(b)}b=F[a+60>>2];if(b){F[a- -64>>2]=b;ra(b)}b=F[a+48>>2];if(b){F[a+52>>2]=b;ra(b)}F[a>>2]=12620;b=F[a+36>>2];if(b){ra(b)}b=F[a+24>>2];if(b){ra(b)}ra(a)}function Kb(a,b){var c=0,d=0,e=0,f=0;a:{c=F[a>>2];b:{if(F[a+8>>2]-c>>2>>>0>=b>>>0){break b}if(b>>>0>=1073741824){break a}d=F[a+4>>2];e=b<<2;b=sa(e);e=b+e|0;d=d-c|0;f=d+b|0;if((d|0)>0){ta(b,c,d)}F[a+8>>2]=e;F[a+4>>2]=f;F[a>>2]=b;if(!c){break b}ra(c)}return}va();V()}function eb(a){var b=0;if(a){b=F[a+76>>2];if(b){F[a+80>>2]=b;ra(b)}b=F[a- -64>>2];if(b){F[a+68>>2]=b;ra(b)}b=F[a+48>>2];if(b){F[a+52>>2]=b;ra(b)}b=F[a+24>>2];if(b){F[a+28>>2]=b;ra(b)}b=F[a+12>>2];if(b){F[a+16>>2]=b;ra(b)}b=F[a>>2];if(b){F[a+4>>2]=b;ra(b)}ra(a)}}function oc(a){var b=0;b=F[a+84>>2];if(b){F[a+88>>2]=b;ra(b)}b=F[a+72>>2];if(b){F[a+76>>2]=b;ra(b)}b=F[a+52>>2];if(b){F[a+56>>2]=b;ra(b)}b=F[a+40>>2];if(b){F[a+44>>2]=b;ra(b)}b=F[a+28>>2];if(b){F[a+32>>2]=b;ra(b)}b=F[a+12>>2];if(b){ra(b)}a=F[a>>2];if(a){ra(a)}}function Jd(a,b,c){var d=0,e=0,f=0,g=0,h=0;f=ea-16|0;ea=f;d=ea-16|0;ea=d;b=b-a>>2;while(1){if(b){F[d+12>>2]=a;e=b>>>1|0;F[d+12>>2]=F[d+12>>2]+(e<<2);h=(e^-1)+b|0;b=e;e=F[d+12>>2];g=I[e>>2]>2];b=g?h:b;a=g?e+4|0:a;continue}break}ea=d+16|0;ea=f+16|0;return a}function Ba(a,b,c){var d=0,e=0;a:{b:{if(c>>>0<11){d=a;D[d+11|0]=c;break b}if(c>>>0>4294967279){break a}if(c>>>0>=11){e=c+16&-16;d=e-1|0;d=(d|0)==11?e:d}else{d=10}e=d+1|0;d=sa(e);F[a>>2]=d;F[a+8>>2]=e|-2147483648;F[a+4>>2]=c}Bb(d,b,c+1|0);return}Pa();V()}function Uc(a,b){var c=0,d=0;d=sa(40);F[d>>2]=-1;c=d+8|0;F[c+16>>2]=0;F[c+20>>2]=0;F[c+8>>2]=0;F[c>>2]=0;F[c+4>>2]=0;F[c+24>>2]=0;F[c+28>>2]=0;ga[F[F[a>>2]+16>>2]](a,d);a=F[b+88>>2];F[b+88>>2]=d;if(a){b=F[a+8>>2];if(b){F[a+12>>2]=b;ra(b)}ra(a)}return 1}function Oa(a){var b=0,c=0,d=0;b=a;a:{if(b&3){while(1){if(!G[b|0]){break a}b=b+1|0;if(b&3){continue}break}}while(1){c=b;b=b+4|0;d=F[c>>2];if(!((d^-1)&d-16843009&-2139062144)){continue}break}while(1){b=c;c=b+1|0;if(G[b|0]){continue}break}}return b-a|0}function Da(a){var b=0,c=0,d=0,e=0,f=0;d=G[a+12|0];c=F[a+8>>2];a:{if(c>>>0>4095){break a}b=F[a+4>>2];if((b|0)<=0){break a}b=b-1|0;F[a+4>>2]=b;c=G[b+F[a>>2]|0]|c<<8}d=0-d&255;b=L(d,c>>>8|0);e=c&255;f=e>>>0>>0;F[a+8>>2]=f?b+e|0:c-(b+d|0)|0;return f}function md(a,b){F[a+4>>2]=0;F[a+8>>2]=0;F[a>>2]=1984;F[a+12>>2]=0;F[a+16>>2]=0;F[a+20>>2]=0;F[a+24>>2]=0;F[a+28>>2]=0;F[a+32>>2]=0;F[a+36>>2]=0;F[a+40>>2]=0;F[a>>2]=2328;F[a+60>>2]=b;F[a+44>>2]=0;F[a+48>>2]=0;F[a+52>>2]=0;F[a+56>>2]=0;return a}function Lg(a){a=a|0;var b=0,c=0,d=0;if(a){if(D[a+27|0]<0){ra(F[a+16>>2])}c=F[a>>2];if(c){d=c;b=F[a+4>>2];if((b|0)!=(c|0)){while(1){b=b-12|0;if(D[b+11|0]<0){ra(F[b>>2])}if((c|0)!=(b|0)){continue}break}d=F[a>>2]}F[a+4>>2]=c;ra(d)}ra(a)}}function Nd(a){var b=0,c=0,d=0;if(D[F[a>>2]]-48>>>0>=10){return 0}while(1){d=F[a>>2];c=-1;if(b>>>0<=214748364){c=D[d|0]-48|0;b=L(b,10);c=(c|0)>(2147483647-b|0)?-1:c+b|0}F[a>>2]=d+1;b=c;if(D[d+1|0]-48>>>0<10){continue}break}return b}function Ja(a){a=a|0;var b=0,c=0;if(a){b=F[a+88>>2];F[a+88>>2]=0;if(b){c=F[b+8>>2];if(c){F[b+12>>2]=c;ra(c)}ra(b)}b=F[a+68>>2];if(b){F[a+72>>2]=b;ra(b)}b=F[a+64>>2];F[a+64>>2]=0;if(b){c=F[b>>2];if(c){F[b+4>>2]=c;ra(c)}ra(b)}ra(a)}}function yi(a){a=a|0;var b=0;F[a+24>>2]=1832;F[a>>2]=11048;b=F[a+32>>2];if(b){F[a+36>>2]=b;ra(b)}F[a>>2]=2448;b=F[a+20>>2];F[a+20>>2]=0;if(b){ga[F[F[b>>2]+4>>2]](b)}F[a>>2]=2232;b=F[a+16>>2];F[a+16>>2]=0;if(b){Ja(b)}return a|0}function Ag(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;b=F[b+96>>2];a=sa(12);b=b+L(c,12)|0;c=F[b+4>>2];F[a>>2]=F[b>>2];F[a+4>>2]=c;F[a+8>>2]=F[b+8>>2];b=F[d>>2];if(b){F[d+4>>2]=b;ra(b)}F[d>>2]=a;a=a+12|0;F[d+8>>2]=a;F[d+4>>2]=a;return 1}function mc(a,b){var c=0,d=0,e=0;c=Oa(b);if(c>>>0<4294967280){a:{b:{if(c>>>0>=11){e=c+16&-16;d=sa(e);F[a+8>>2]=e|-2147483648;F[a>>2]=d;F[a+4>>2]=c;break b}D[a+11|0]=c;d=a;if(!c){break a}}ta(d,b,c)}D[c+d|0]=0;return a}Pa();V()}function Nj(a,b,c,d){var e=0,f=0,g=0,h=0;f=b^d;g=f>>31;e=b>>31;a=a^e;h=a-e|0;e=(b^e)-((a>>>0>>0)+e|0)|0;a=d>>31;b=c^a;f=f>>31;a=Oj(h,e,b-a|0,(a^d)-((a>>>0>b>>>0)+a|0)|0)^f;b=a-f|0;fa=(g^fa)-((a>>>0>>0)+g|0)|0;return b}function xi(a){a=a|0;var b=0;F[a+24>>2]=1832;F[a>>2]=11048;b=F[a+32>>2];if(b){F[a+36>>2]=b;ra(b)}F[a>>2]=2448;b=F[a+20>>2];F[a+20>>2]=0;if(b){ga[F[F[b>>2]+4>>2]](b)}F[a>>2]=2232;b=F[a+16>>2];F[a+16>>2]=0;if(b){Ja(b)}ra(a)}function Zb(a,b,c){var d=0,e=0,f=0;e=ea-16|0;ea=e;d=F[a+8>>2]&2147483647;a:{if(d>>>0>c>>>0){d=F[a>>2];F[a+4>>2]=c;Bb(d,b,c);D[e+15|0]=0;D[c+d|0]=G[e+15|0];break a}f=a;a=F[a+4>>2];Fd(f,d-1|0,(c-d|0)+1|0,a,a,c,b)}ea=e+16|0}function zf(a,b){a=a|0;b=b|0;var c=0,d=0;c=ea-16|0;ea=c;a=F[a+4>>2];a:{if((a|0)==-1){break a}D[c+15|0]=a;d=F[b+20>>2];if(!!F[b+16>>2]&(d|0)>=0|(d|0)>0){break a}Xb(b,F[b+4>>2],c+15|0,c+16|0)}ea=c+16|0;return(a|0)!=-1|0}function Mj(a,b,c,d){var e=0,f=0,g=0,h=0,i=0,j=0;e=c>>>16|0;f=a>>>16|0;j=L(e,f);g=c&65535;h=a&65535;i=L(g,h);f=(i>>>16|0)+L(f,g)|0;e=(f&65535)+L(e,h)|0;fa=(L(b,c)+j|0)+L(a,d)+(f>>>16)+(e>>>16)|0;return i&65535|e<<16}function Dd(a,b,c){var d=0;d=F[a+16>>2];if(!d){F[a+36>>2]=1;F[a+24>>2]=c;F[a+16>>2]=b;return}a:{if((b|0)==(d|0)){if(F[a+24>>2]!=2){break a}F[a+24>>2]=c;return}D[a+54|0]=1;F[a+24>>2]=2;F[a+36>>2]=F[a+36>>2]+1}}function rh(){var a=0;a=Gb(sa(96));F[a+64>>2]=0;F[a+68>>2]=0;F[a+88>>2]=0;F[a+72>>2]=0;F[a+76>>2]=0;D[a+77|0]=0;D[a+78|0]=0;D[a+79|0]=0;D[a+80|0]=0;D[a+81|0]=0;D[a+82|0]=0;D[a+83|0]=0;D[a+84|0]=0;return a|0}function wi(a,b){a=a|0;b=b|0;var c=0,d=0;F[b>>2]=2;c=F[b+8>>2];d=F[b+12>>2]-c|0;if(d>>>0<=4294967291){lc(b+8|0,d+4|0);c=F[b+8>>2]}b=c+d|0;a=F[a+4>>2];D[b|0]=a;D[b+1|0]=a>>>8;D[b+2|0]=a>>>16;D[b+3|0]=a>>>24}function oj(a){a=a|0;var b=0;F[a>>2]=5580;b=F[a+96>>2];if(b){ra(b)}b=F[a+84>>2];if(b){ra(b)}b=F[a+72>>2];if(b){ra(b)}b=F[a+60>>2];if(b){ra(b)}F[a>>2]=3272;b=F[a+32>>2];if(b){F[a+36>>2]=b;ra(b)}return a|0}function nb(a,b,c,d,e){var f=0;f=ea-256|0;ea=f;if(!(e&73728|(c|0)<=(d|0))){d=c-d|0;c=d>>>0<256;ua(f,b&255,c?d:256);if(!c){while(1){Cb(a,f,256);d=d-256|0;if(d>>>0>255){continue}break}}Cb(a,f,d)}ea=f+256|0}function Ej(a){a=a|0;var b=0;F[a>>2]=3564;b=F[a+96>>2];if(b){ra(b)}b=F[a+84>>2];if(b){ra(b)}b=F[a+72>>2];if(b){ra(b)}b=F[a+60>>2];if(b){ra(b)}F[a>>2]=3272;b=F[a+32>>2];if(b){F[a+36>>2]=b;ra(b)}return a|0}function Ah(a){a=a|0;var b=0,c=0,d=0;b=F[a+8>>2];d=F[a+12>>2];if((b|0)==(d|0)){return 1}while(1){c=F[b>>2];c=ga[F[F[c>>2]+16>>2]](c,F[a+32>>2])|0;if(c){b=b+4|0;if((d|0)!=(b|0)){continue}}break}return c|0}function Xd(a,b){var c=0,d=0;c=F[a+8>>2];a=F[a+12>>2];if((c|0)!=(a|0)){a=a-c>>2;d=a>>>0>1?a:1;a=0;while(1){if(F[F[(a<<2)+c>>2]+60>>2]==(b|0)){return a}a=a+1|0;if((d|0)!=(a|0)){continue}break}}return-1}function Uf(a,b){a=a|0;b=b|0;var c=0,d=0,e=0;Vd(a,b);a:{if((b|0)<0){break a}d=F[a+88>>2];c=F[a+84>>2];if(d-c>>2<=(b|0)){break a}b=c+(b<<2)|0;c=b+4|0;e=d-c|0;if((c|0)!=(d|0)){Ra(b,c,e)}F[a+88>>2]=b+e}}function nj(a){a=a|0;var b=0;F[a>>2]=5580;b=F[a+96>>2];if(b){ra(b)}b=F[a+84>>2];if(b){ra(b)}b=F[a+72>>2];if(b){ra(b)}b=F[a+60>>2];if(b){ra(b)}F[a>>2]=3272;b=F[a+32>>2];if(b){F[a+36>>2]=b;ra(b)}ra(a)}function Dj(a){a=a|0;var b=0;F[a>>2]=3564;b=F[a+96>>2];if(b){ra(b)}b=F[a+84>>2];if(b){ra(b)}b=F[a+72>>2];if(b){ra(b)}b=F[a+60>>2];if(b){ra(b)}F[a>>2]=3272;b=F[a+32>>2];if(b){F[a+36>>2]=b;ra(b)}ra(a)}function _d(a,b,c){var d=0,e=0;d=a+4|0;a=sb(a,b);if((d|0)==(a|0)){return 0}b=F[a+32>>2];d=F[a+28>>2];if((b|0)!=(d|0)){Bc(c,b-d|0);e=Cc(c);c=F[a+28>>2];ta(e,c,F[a+32>>2]-c|0)}return(b|0)!=(d|0)}function Of(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0;e=ea-16|0;ea=e;a=aa(F[a+60>>2],b|0,c|0,d&255,e+8|0)|0;if(a){F[3984]=a;a=-1}else{a=0}ea=e+16|0;fa=a?-1:F[e+12>>2];return(a?-1:F[e+8>>2])|0}function Rd(a){var b=0;b=F[a+72>>2];F[a+72>>2]=b-1|b;b=F[a>>2];if(b&8){F[a>>2]=b|32;return-1}F[a+4>>2]=0;F[a+8>>2]=0;b=F[a+44>>2];F[a+28>>2]=b;F[a+20>>2]=b;F[a+16>>2]=b+F[a+48>>2];return 0}function Gb(a){F[a+8>>2]=0;F[a+12>>2]=0;F[a>>2]=0;F[a+40>>2]=0;F[a+44>>2]=0;F[a+28>>2]=9;D[a+24|0]=1;F[a+56>>2]=-1;F[a+60>>2]=0;F[a+16>>2]=0;F[a+20>>2]=0;F[a+48>>2]=0;F[a+52>>2]=0;return a}function ff(a,b){a=a|0;b=b|0;var c=0,d=0;d=F[a+16>>2];c=0;a:{if(F[a+20>>2]-d>>2<=(b|0)){break a}b=F[(b<<2)+d>>2];c=0;if((b|0)<0){break a}c=ub(F[F[a+36>>2]+(b<<2)>>2])}return c|0}function mb(a){var b=0,c=0;b=F[3958];c=a+3&-4;a=b+c|0;a:{if(a>>>0<=b>>>0?c:0){break a}if(a>>>0>ha()<<16>>>0){if(!(ba(a|0)|0)){break a}}F[3958]=a;return b}F[3984]=48;return-1}function Yb(a,b,c){var d=0,e=0;d=ea-16|0;ea=d;a:{if(c>>>0<=10){D[a+11|0]=c;Bb(a,b,c);D[d+15|0]=0;D[a+c|0]=G[d+15|0];break a}e=a;a=G[a+11|0];Fd(e,10,c-10|0,a,a,c,b)}ea=d+16|0}function Ph(a){a=a|0;var b=0;F[a+8>>2]=12804;F[a>>2]=12640;b=F[a+56>>2];if(b){F[a+60>>2]=b;ra(b)}F[a+8>>2]=12620;b=F[a+44>>2];if(b){ra(b)}b=F[a+32>>2];if(b){ra(b)}return a|0}function Kh(a){a=a|0;var b=0;F[a+8>>2]=11872;F[a>>2]=12932;b=F[a+56>>2];if(b){F[a+60>>2]=b;ra(b)}F[a+8>>2]=12124;b=F[a+44>>2];if(b){ra(b)}b=F[a+32>>2];if(b){ra(b)}return a|0}function uf(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0;d=F[a+8>>2];a:{if(D[d+24|0]<=0){break a}if(!rb(d,F[b+4>>2]-F[b>>2]>>2)){break a}e=ga[F[F[a>>2]+32>>2]](a,b,c)|0}return e|0}function Kg(){var a=0;a=sa(40);F[a+4>>2]=0;F[a+8>>2]=0;F[a>>2]=a+4;F[a+24>>2]=0;F[a+28>>2]=0;F[a+12>>2]=a+16;F[a+16>>2]=0;F[a+20>>2]=0;F[a+32>>2]=0;F[a+36>>2]=0;return a|0}function $i(a,b,c){a=a|0;b=b|0;c=c|0;var d=0;F[a+4>>2]=b;b=F[F[F[b+4>>2]+8>>2]+(c<<2)>>2];F[a+12>>2]=c;F[a+8>>2]=b;a=F[a+8>>2];if(G[a+24|0]==3){d=F[a+28>>2]==9}return d|0}function Oh(a){a=a|0;var b=0;F[a+8>>2]=12804;F[a>>2]=12640;b=F[a+56>>2];if(b){F[a+60>>2]=b;ra(b)}F[a+8>>2]=12620;b=F[a+44>>2];if(b){ra(b)}b=F[a+32>>2];if(b){ra(b)}ra(a)}function Jh(a){a=a|0;var b=0;F[a+8>>2]=11872;F[a>>2]=12932;b=F[a+56>>2];if(b){F[a+60>>2]=b;ra(b)}F[a+8>>2]=12124;b=F[a+44>>2];if(b){ra(b)}b=F[a+32>>2];if(b){ra(b)}ra(a)}function kj(a){a=a|0;var b=0;F[a>>2]=5816;b=F[a+76>>2];if(b){ra(b)}b=F[a+68>>2];F[a+68>>2]=0;if(b){ra(b)}F[a>>2]=3272;b=F[a+32>>2];if(b){F[a+36>>2]=b;ra(b)}return a|0}function Ta(a,b){if(b){Ta(a,F[b>>2]);Ta(a,F[b+4>>2]);a=F[b+28>>2];F[b+28>>2]=0;if(a){Ta(a+12|0,F[a+16>>2]);Sa(a,F[a+4>>2]);ra(a)}if(D[b+27|0]<0){ra(F[b+16>>2])}ra(b)}}function Ei(a,b,c){a=a|0;b=b|0;c=c|0;var d=0;F[a+4>>2]=b;d=F[F[F[b+4>>2]+8>>2]+(c<<2)>>2];F[a+12>>2]=c;F[a+8>>2]=d;return F[F[F[F[b+4>>2]+8>>2]+(c<<2)>>2]+28>>2]==9|0}function Aj(a){a=a|0;var b=0;F[a>>2]=3812;b=F[a+76>>2];if(b){ra(b)}b=F[a+68>>2];F[a+68>>2]=0;if(b){ra(b)}F[a>>2]=3272;b=F[a+32>>2];if(b){F[a+36>>2]=b;ra(b)}return a|0}function Sc(a){F[a+40>>2]=0;F[a+4>>2]=0;F[a+8>>2]=0;F[a>>2]=13280;F[a+12>>2]=0;F[a+16>>2]=0;F[a+20>>2]=0;F[a+24>>2]=0;F[a+28>>2]=0;F[a+32>>2]=0;E[a+36>>1]=0;return a}function Gd(a,b){var c=0,d=0,e=0,f=0;F[a>>2]=15260;F[a>>2]=15372;c=Oa(b);d=sa(c+13|0);F[d+8>>2]=0;F[d+4>>2]=c;F[d>>2]=c;e=a,f=ta(d+12|0,b,c+1|0),F[e+4>>2]=f;return a}function Yf(a,b){a=a|0;b=b|0;var c=0;a:{if(!(ga[F[F[a>>2]+36>>2]](a,b)|0)){break a}if(!(ga[F[F[a>>2]+40>>2]](a,b)|0)){break a}c=ga[F[F[a>>2]+44>>2]](a)|0}return c|0}function zj(a){a=a|0;var b=0;F[a>>2]=3812;b=F[a+76>>2];if(b){ra(b)}b=F[a+68>>2];F[a+68>>2]=0;if(b){ra(b)}F[a>>2]=3272;b=F[a+32>>2];if(b){F[a+36>>2]=b;ra(b)}ra(a)}function jj(a){a=a|0;var b=0;F[a>>2]=5816;b=F[a+76>>2];if(b){ra(b)}b=F[a+68>>2];F[a+68>>2]=0;if(b){ra(b)}F[a>>2]=3272;b=F[a+32>>2];if(b){F[a+36>>2]=b;ra(b)}ra(a)}function Ue(a){a=a|0;var b=0;a:{if(!F[a- -64>>2]|!F[a+68>>2]|(!F[a+44>>2]|!F[a+48>>2])){break a}if(!F[a+52>>2]|!F[a+56>>2]){break a}b=F[a+92>>2]!=-1}return b|0}function af(a){a=a|0;var b=0;F[a>>2]=2448;b=F[a+20>>2];F[a+20>>2]=0;if(b){ga[F[F[b>>2]+4>>2]](b)}F[a>>2]=2232;b=F[a+16>>2];F[a+16>>2]=0;if(b){Ja(b)}return a|0}function Lj(a,b){a=a|0;b=b|0;var c=0;b=F[b+88>>2];if(!(!b|F[b>>2]!=2)){c=a;a=F[b+8>>2];F[c+4>>2]=G[a|0]|G[a+1|0]<<8|(G[a+2|0]<<16|G[a+3|0]<<24);c=1}return c|0}function tc(a){a=a|0;var b=0;a:{if(!F[a+48>>2]|!F[a+52>>2]|(!F[a+28>>2]|!F[a+32>>2])){break a}if(!F[a+36>>2]|!F[a+40>>2]){break a}b=F[a+76>>2]!=-1}return b|0}function Qh(a){a=a|0;var b=0;F[a>>2]=12804;b=F[a+48>>2];if(b){F[a+52>>2]=b;ra(b)}F[a>>2]=12620;b=F[a+36>>2];if(b){ra(b)}b=F[a+24>>2];if(b){ra(b)}return a|0}function Ee(a){a=a|0;var b=0;F[a>>2]=11872;b=F[a+48>>2];if(b){F[a+52>>2]=b;ra(b)}F[a>>2]=12124;b=F[a+36>>2];if(b){ra(b)}b=F[a+24>>2];if(b){ra(b)}return a|0}function $e(a){a=a|0;var b=0;F[a>>2]=2448;b=F[a+20>>2];F[a+20>>2]=0;if(b){ga[F[F[b>>2]+4>>2]](b)}F[a>>2]=2232;b=F[a+16>>2];F[a+16>>2]=0;if(b){Ja(b)}ra(a)}function uh(){var a=0,b=0;b=sa(40);F[b>>2]=-1;a=b+8|0;F[a+16>>2]=0;F[a+20>>2]=0;F[a+8>>2]=0;F[a>>2]=0;F[a+4>>2]=0;F[a+24>>2]=0;F[a+28>>2]=0;return b|0}function ef(a,b){a=a|0;b=b|0;var c=0,d=0;d=F[a+4>>2];a:{if(d){c=1;if(G[d+36|0]<2){break a}}c=ga[F[F[a>>2]+48>>2]](a,F[b+4>>2]-F[b>>2]>>2)|0}return c|0}function bi(a){a=a|0;var b=0;F[a>>2]=11872;b=F[a+48>>2];if(b){F[a+52>>2]=b;ra(b)}F[a>>2]=12124;b=F[a+36>>2];if(b){ra(b)}b=F[a+24>>2];if(b){ra(b)}ra(a)}function Lh(a){a=a|0;var b=0;F[a>>2]=12804;b=F[a+48>>2];if(b){F[a+52>>2]=b;ra(b)}F[a>>2]=12620;b=F[a+36>>2];if(b){ra(b)}b=F[a+24>>2];if(b){ra(b)}ra(a)}function Ka(a){F[a+8>>2]=0;F[a+12>>2]=0;F[a>>2]=0;F[a+16>>2]=0;F[a+20>>2]=0;F[a+32>>2]=0;F[a+24>>2]=0;F[a+28>>2]=0;E[a+38>>1]=0;D[a+36|0]=0;return a}function Ff(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;if(Za(a,F[b+8>>2],f)){Cd(b,c,d,e);return}a=F[a+8>>2];ga[F[F[a>>2]+20>>2]](a,b,c,d,e,f)}function Ci(a,b,c){a=a|0;b=b|0;c=c|0;a:{if(G[F[a+4>>2]+36|0]>=2){b=0;if(!(ga[F[F[a>>2]+52>>2]](a)|0)){break a}}b=Uc(a+24|0,F[a+16>>2])}return b|0}function Di(a,b,c){a=a|0;b=b|0;c=c|0;var d=0;a:{if(G[F[a+4>>2]+36|0]<=1){d=0;if(!(ga[F[F[a>>2]+52>>2]](a)|0)){break a}}d=ld(a,b,c)}return d|0}function eh(){var a=0;a=Zd(sa(108));F[a+84>>2]=0;F[a+88>>2]=0;F[a>>2]=13664;F[a+92>>2]=0;F[a+96>>2]=0;F[a+100>>2]=0;F[a+104>>2]=0;return a|0}function Yd(a,b){var c=0;c=-1;a:{if((b|0)==-1|(b|0)>4){break a}b=L(b,12)+a|0;a=F[b+20>>2];if((F[b+24>>2]-a|0)<=0){break a}c=F[a>>2]}return c}function kc(a,b,c,d,e,f,g){F[a>>2]=0;F[a+56>>2]=b;F[a+48>>2]=0;F[a+52>>2]=0;F[a+40>>2]=f;F[a+44>>2]=g;D[a+32|0]=e;F[a+28>>2]=d;D[a+24|0]=c}function _i(a,b,c){a=a|0;b=b|0;c=c|0;var d=0;a:{if(G[F[a+4>>2]+36|0]<=1){d=0;if(!xc(a+24|0,F[a+8>>2],c)){break a}}d=ld(a,b,c)}return d|0}function Zi(a,b,c){a=a|0;b=b|0;c=c|0;a:{if(G[F[a+4>>2]+36|0]>=2){b=0;if(!xc(a+24|0,ub(a),c)){break a}}b=Uc(a+24|0,F[a+16>>2])}return b|0}function Xf(a){a=a|0;var b=0;F[a>>2]=13664;b=F[a+96>>2];if(b){F[a+100>>2]=b;ra(b)}b=F[a+84>>2];if(b){F[a+88>>2]=b;ra(b)}return _b(a)|0}function Cc(a){var b=0;if(G[a+11|0]>>>7|0){b=F[a+4>>2]}else{b=G[a+11|0]}if(!b){_e(1232);V()}if(G[a+11|0]>>>7|0){a=F[a>>2]}return a}function Wf(a){a=a|0;var b=0;F[a>>2]=13664;b=F[a+96>>2];if(b){F[a+100>>2]=b;ra(b)}b=F[a+84>>2];if(b){F[a+88>>2]=b;ra(b)}ra(_b(a))}function wj(a){a=a|0;var b=0;F[a>>2]=4040;b=F[a+76>>2];if(b){ra(b)}F[a>>2]=3272;b=F[a+32>>2];if(b){F[a+36>>2]=b;ra(b)}return a|0}function hj(a){a=a|0;var b=0;F[a>>2]=6032;b=F[a+76>>2];if(b){ra(b)}F[a>>2]=3272;b=F[a+32>>2];if(b){F[a+36>>2]=b;ra(b)}return a|0}function Sa(a,b){if(b){Sa(a,F[b>>2]);Sa(a,F[b+4>>2]);a=F[b+28>>2];if(a){F[b+32>>2]=a;ra(a)}if(D[b+27|0]<0){ra(F[b+16>>2])}ra(b)}}function Tg(){var a=0;a=sa(28);F[a>>2]=0;F[a+4>>2]=0;F[a+24>>2]=0;F[a+16>>2]=0;F[a+20>>2]=0;F[a+8>>2]=0;F[a+12>>2]=0;return a|0}function jg(a){a=a|0;var b=0;F[a>>2]=1984;b=F[a+16>>2];if(b){F[a+20>>2]=b;ra(b)}b=F[a+4>>2];if(b){F[a+8>>2]=b;ra(b)}return a|0}function ch(){var a=0,b=0;a=sa(24);F[a+4>>2]=0;F[a+8>>2]=0;b=a+16|0;F[b>>2]=0;F[b+4>>2]=0;F[a>>2]=a+4;F[a+12>>2]=b;return a|0}function If(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;if(Za(a,F[b+8>>2],0)){Dd(b,c,d);return}a=F[a+8>>2];ga[F[F[a>>2]+28>>2]](a,b,c,d)}function vj(a){a=a|0;var b=0;F[a>>2]=4040;b=F[a+76>>2];if(b){ra(b)}F[a>>2]=3272;b=F[a+32>>2];if(b){F[a+36>>2]=b;ra(b)}ra(a)}function gj(a){a=a|0;var b=0;F[a>>2]=6032;b=F[a+76>>2];if(b){ra(b)}F[a>>2]=3272;b=F[a+32>>2];if(b){F[a+36>>2]=b;ra(b)}ra(a)}function sa(a){var b=0;a=a?a:1;a:{while(1){b=Id(a);if(b){break a}b=F[4412];if(b){ga[b|0]();continue}break}Y();V()}return b}function Lb(a,b){if(b){Lb(a,F[b>>2]);Lb(a,F[b+4>>2]);if(D[b+39|0]<0){ra(F[b+28>>2])}if(D[b+27|0]<0){ra(F[b+16>>2])}ra(b)}}function Ad(a){a=a|0;var b=0,c=0;F[a>>2]=15372;b=F[a+4>>2]-12|0;c=F[b+8>>2]-1|0;F[b+8>>2]=c;if((c|0)<0){ra(b)}return a|0}function jh(){var a=0;a=sa(24);F[a+8>>2]=0;F[a+12>>2]=0;F[a+4>>2]=-1;F[a>>2]=1832;F[a+16>>2]=0;F[a+20>>2]=0;return a|0}function nd(a,b,c){a=a|0;b=b|0;c=c|0;F[a+4>>2]=b;b=F[F[F[b+4>>2]+8>>2]+(c<<2)>>2];F[a+12>>2]=c;F[a+8>>2]=b;return 1}function wc(a){a=a|0;var b=0;if(!(!F[a+60>>2]|!F[a+44>>2]|(!F[a+48>>2]|!F[a+52>>2]))){b=F[a+56>>2]!=0}return b|0}function tj(a){a=a|0;var b=0;F[a>>2]=4276;F[a>>2]=3272;b=F[a+32>>2];if(b){F[a+36>>2]=b;ra(b)}return a|0}function ej(a){a=a|0;var b=0;F[a>>2]=6256;F[a>>2]=3272;b=F[a+32>>2];if(b){F[a+36>>2]=b;ra(b)}return a|0}function Sh(a){a=a|0;var b=0;F[a>>2]=12620;b=F[a+36>>2];if(b){ra(b)}b=F[a+24>>2];if(b){ra(b)}return a|0}function $h(a){a=a|0;var b=0;F[a>>2]=12124;b=F[a+36>>2];if(b){ra(b)}b=F[a+24>>2];if(b){ra(b)}return a|0}function kg(a){a=a|0;if(a){if(D[a+39|0]<0){ra(F[a+28>>2])}Lc(a+12|0,F[a+16>>2]);Lb(a,F[a+4>>2]);ra(a)}}function Qb(a){a=a|0;var b=0;if(!(!F[a+52>>2]|(!F[a+44>>2]|!F[a+48>>2]))){b=F[a+56>>2]!=0}return b|0}function vc(a,b){a=a|0;b=b|0;var c=0;if(!(F[b+56>>2]|!b|G[b+24|0]!=3)){F[a+60>>2]=b;c=1}return c|0}function sj(a){a=a|0;var b=0;F[a>>2]=4276;F[a>>2]=3272;b=F[a+32>>2];if(b){F[a+36>>2]=b;ra(b)}ra(a)}function cj(a){a=a|0;var b=0;F[a>>2]=6256;F[a>>2]=3272;b=F[a+32>>2];if(b){F[a+36>>2]=b;ra(b)}ra(a)}function _h(a){a=a|0;var b=0;F[a>>2]=12124;b=F[a+36>>2];if(b){ra(b)}b=F[a+24>>2];if(b){ra(b)}ra(a)}function Rh(a){a=a|0;var b=0;F[a>>2]=12620;b=F[a+36>>2];if(b){ra(b)}b=F[a+24>>2];if(b){ra(b)}ra(a)}function vh(a,b,c){a=a|0;b=b|0;c=c|0;F[a+16>>2]=0;F[a+20>>2]=0;F[a>>2]=b;F[a+8>>2]=c;F[a+12>>2]=0}function Te(a,b){a=a|0;b=b|0;var c=0;if(!(F[b+56>>2]|G[b+24|0]!=3)){F[a- -64>>2]=b;c=1}return c|0}function yc(a){var b=0;b=F[a+16>>2];if(b){F[a+20>>2]=b;ra(b)}b=F[a>>2];if(b){F[a+4>>2]=b;ra(b)}}function sc(a,b){a=a|0;b=b|0;var c=0;if(!(F[b+56>>2]|G[b+24|0]!=3)){F[a+48>>2]=b;c=1}return c|0}function Ef(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;if(Za(a,F[b+8>>2],f)){Cd(b,c,d,e)}}function za(){var a=0;a=_(4)|0;F[a>>2]=15260;F[a>>2]=15220;F[a>>2]=15240;Z(a|0,15352,14);V()}function qf(a){a=a|0;var b=0;F[a>>2]=2232;b=F[a+16>>2];F[a+16>>2]=0;if(b){Ja(b)}return a|0}function ii(a){a=a|0;var b=0;F[a>>2]=1832;b=F[a+8>>2];if(b){F[a+12>>2]=b;ra(b)}return a|0} -function Gj(a){a=a|0;var b=0;F[a>>2]=3272;b=F[a+32>>2];if(b){F[a+36>>2]=b;ra(b)}return a|0}function Ai(a){a=a|0;var b=0;b=ub(a);return Ge(a+24|0,b?b:F[a+8>>2],F[F[a+4>>2]+32>>2])|0}function pf(a){a=a|0;var b=0;F[a>>2]=2232;b=F[a+16>>2];F[a+16>>2]=0;if(b){Ja(b)}ra(a)}function Vb(a){a=a|0;var b=0;F[a>>2]=3272;b=F[a+32>>2];if(b){F[a+36>>2]=b;ra(b)}ra(a)}function hi(a){a=a|0;var b=0;F[a>>2]=1832;b=F[a+8>>2];if(b){F[a+12>>2]=b;ra(b)}ra(a)}function _a(a){var b=0;F[a+16>>2]=0;b=F[a>>2];F[a+4>>2]=b;F[a+12>>2]=b;if(b){ra(b)}}function Lc(a,b){if(b){Lc(a,F[b>>2]);Lc(a,F[b+4>>2]);Lb(b+20|0,F[b+24>>2]);ra(b)}}function vi(a){a=a|0;if(!F[a+44>>2]){return 0}return ga[F[F[a>>2]+48>>2]](a)|0}function th(a){a=a|0;var b=0;if(a){b=F[a+8>>2];if(b){F[a+12>>2]=b;ra(b)}ra(a)}}function Pj(a){var b=0;while(1){if(a){a=a-1&a;b=b+1|0;continue}break}return b}function Jf(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;if(Za(a,F[b+8>>2],0)){Dd(b,c,d)}}function si(a,b){a=a|0;b=b|0;a=F[a+48>>2];return ga[F[F[a>>2]+20>>2]](a,b)|0}function li(a,b){a=a|0;b=b|0;a=F[a+48>>2];return ga[F[F[a>>2]+12>>2]](a,b)|0}function ki(a,b){a=a|0;b=b|0;a=F[a+48>>2];return ga[F[F[a>>2]+16>>2]](a,b)|0}function qb(){var a=0;a=sa(12);F[a>>2]=0;F[a+4>>2]=0;F[a+8>>2]=0;return a|0}function pb(a){a=a|0;var b=0;if(a){b=F[a>>2];if(b){F[a+4>>2]=b;ra(b)}ra(a)}}function Qj(a){var b=0;b=a&31;a=0-a&31;return(-1>>>b&-2)<>>a}function bh(a){a=a|0;if(a){Ta(a+12|0,F[a+16>>2]);Sa(a,F[a+4>>2]);ra(a)}}function Vg(a,b,c){a=a|0;b=b|0;c=c|0;F[a+32>>2]=c;F[a+28>>2]=b;return 1}function Qd(a,b,c){a:{if(F[c+76>>2]<0){a=Dc(a,b,c);break a}a=Dc(a,b,c)}}function Nb(a,b){a=a|0;b=b|0;if(b>>>0<=1){F[a+28>>2]=b}return b>>>0<2|0}function Dh(a,b){a=a|0;b=b|0;D[b+84|0]=1;F[b+72>>2]=F[b+68>>2];return 1}function qi(a){a=a|0;a=F[a+48>>2];return ga[F[F[a>>2]+24>>2]](a)|0}function pi(a){a=a|0;a=F[a+48>>2];return ga[F[F[a>>2]+28>>2]](a)|0}function mi(a){a=a|0;a=F[a+48>>2];return ga[F[F[a>>2]+36>>2]](a)|0}function gh(){var a=0;a=sa(8);F[a+4>>2]=-1;F[a>>2]=1032;return a|0}function Eg(a,b,c){a=a|0;b=b|0;c=c|0;return F[F[b+8>>2]+(c<<2)>>2]}function zi(a,b){a=a|0;b=b|0;return Oe(a+24|0,ub(a),F[a+8>>2])|0}function Yi(a,b){a=a|0;b=b|0;return Bd(a+24|0,ub(a),F[a+8>>2])|0}function vf(a,b){a=a|0;b=b|0;F[a+12>>2]=-1;F[a+8>>2]=b;return 1}function ne(a,b){a=a|0;b=b|0;return ga[F[F[a>>2]+12>>2]](a,b)|0}function _g(a){a=a|0;if(a){if(D[a+15|0]<0){ra(F[a+4>>2])}ra(a)}}function Df(a){a=a|0;if(!a){return 0}return(Ed(a,15068)|0)!=0|0}function Bi(a,b){a=a|0;b=b|0;return ga[F[F[a>>2]+56>>2]](a,b)|0}function _e(a){a=Gd(_(8)|0,a);F[a>>2]=15472;Z(a|0,15504,1);V()}function Re(a){a=Gd(_(8)|0,a);F[a>>2]=15420;Z(a|0,15452,1);V()}function ih(a,b){a=a|0;b=b|0;return M(J[F[a+8>>2]+(b<<2)>>2])}function Zg(a,b){a=a|0;b=b|0;return M(J[F[a>>2]+(b<<2)>>2])}function dh(a){a=a|0;return(F[a+100>>2]-F[a+96>>2]|0)/12|0}function Tf(a,b){a=a|0;b=b|0;return F[F[a+4>>2]+(b<<2)>>2]}function Nf(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;fa=0;return 0}function He(a){a=Sc(a);F[a+44>>2]=0;F[a>>2]=11180;return a}function $g(a){a=a|0;return(D[a+15|0]<0?F[a+4>>2]:a+4|0)|0}function ie(a,b){a=a|0;b=b|0;return F[F[a>>2]+(b<<2)>>2]}function Wg(a,b){a=a|0;b=b|0;return E[F[a>>2]+(b<<1)>>1]}function Ug(a,b){a=a|0;b=b|0;return H[F[a>>2]+(b<<1)>>1]}function Hg(a,b,c){a=a|0;b=b|0;c=c|0;return Yd(b,c)|0}function Zd(a){F[a>>2]=13724;ua(a+4|0,0,80);return a}function Rj(a){if(a){return 31-O(a-1^a)|0}return 32} -function le(a){a=a|0;return F[a+12>>2]-F[a+8>>2]>>2}function cc(a){a=a|0;if(a){ga[F[F[a>>2]+4>>2]](a)}}function Yg(a,b){a=a|0;b=b|0;return D[F[a>>2]+b|0]}function Xg(a,b){a=a|0;b=b|0;return G[F[a>>2]+b|0]}function Sf(a){a=a|0;return F[a+8>>2]-F[a+4>>2]>>2}function hd(a,b){a=a|0;b=b|0;F[a+4>>2]=b;return 1}function je(a){a=a|0;return F[a+4>>2]-F[a>>2]>>1}function Nc(a){a=a|0;return F[a+4>>2]-F[a>>2]>>2}function ke(a){a=a|0;return F[a+4>>2]-F[a>>2]|0}function Cb(a,b,c){if(!(G[a|0]&32)){Dc(b,c,a)}}function tf(a,b,c){a=a|0;b=b|0;c=c|0;return 1}function ai(a,b){a=a|0;b=b|0;return D[b+24|0]}function Ng(a,b){a=a|0;b=b|0;return F[b+8>>2]}function Jj(a){a=a|0;return D[F[a+8>>2]+24|0]}function Ji(a){a=a|0;F[a>>2]=10032;return a|0}function Cg(a,b){a=a|0;b=b|0;return F[b+4>>2]}function Wi(a){a=a|0;F[a>>2]=7144;return a|0}function Si(a){a=a|0;F[a>>2]=8080;return a|0}function Qf(a){a=a|0;return ca(F[a+60>>2])|0}function Ni(a){a=a|0;F[a>>2]=9028;return a|0}function hh(a){a=a|0;return M(J[a+20>>2])}function Ii(a){a=a|0;F[a>>2]=10032;ra(a)}function Vi(a){a=a|0;F[a>>2]=7144;ra(a)}function Ri(a){a=a|0;F[a>>2]=8080;ra(a)}function Mi(a){a=a|0;F[a>>2]=9028;ra(a)}function qh(a){a=a|0;return F[a+88>>2]}function ph(a){a=a|0;return F[a+56>>2]}function mh(a){a=a|0;return F[a+40>>2]}function lh(a){a=a|0;return F[a+48>>2]}function kh(a){a=a|0;return F[a+60>>2]}function hb(a){a=a|0;return F[a+28>>2]}function bf(){F[4282]=17016;F[4264]=42}function Oc(a){a=a|0;return F[a+80>>2]}function yj(a,b){a=a|0;b=b|0;return 2}function oh(a){a=a|0;return D[a+24|0]}function nh(a){a=a|0;return G[a+32|0]}function kd(a,b){a=a|0;b=b|0;return-1}function gb(a){a=a|0;return F[a+4>>2]}function ah(a){a=a|0;return!F[a>>2]|0}function Ye(a,b){a=a|0;b=b|0;return 6}function Xc(a){a=a|0;return F[a+8>>2]}function Ma(a,b){a=a|0;b=b|0;return 0}function Hd(a,b){a=a|0;b=b|0;return 1}function oe(a){a=a|0;return F[a>>2]}function Bb(a,b,c){if(c){ta(a,b,c)}}function wh(){return Ka(sa(40))|0}function sh(){return Gb(sa(64))|0}function fh(){return Zd(sa(84))|0}function Pc(a){a=a|0;if(a){ra(a)}}function Cf(a){a=a|0;return 1171}function Bf(a){a=a|0;return 1245}function Af(a){a=a|0;return 1211}function Ac(a){a=a|0;Ad(a);ra(a)}function Wa(a){a=a|0;return a|0}function wf(a){a=a|0;ra(qd(a))}function ei(a){a=a|0;ra(ze(a))}function di(a){a=a|0;ra(ye(a))}function ci(a){a=a|0;ra(xe(a))}function We(a){a=a|0;return 5} -function Rf(a){a=a|0;ra(_b(a))}function jd(a){a=a|0;return 3}function bb(a){a=a|0;return 0}function Ze(a){a=a|0;return 4}function Ub(a){a=a|0;return 2}function Pb(a){a=a|0;return 6}function Fa(a){a=a|0;return 1}function va(){Re(1164);V()}function Pa(){Re(1232);V()}function Na(a){a=a|0;ra(a)}function Ea(){_e(1164);V()}function ib(a){a=a|0;V()}function dg(){return 10}function cg(){return 11}function bg(){return 12}function ig(){return 5}function hg(){return 6}function gg(){return 7}function fg(){return 8}function eg(){return 9}function ee(){return 3}function de(){return 4}function bc(){return-1}function ag(){return-2}function ac(){return 1}function _f(){return-4}function Zf(){return-5}function Rb(){return 0}function Kc(){return 2}function $f(){return-3}function Lf(){Y();V()}function Sd(a){a=a|0} +function Td(a,b,c){var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,w=0,x=0,y=0,z=0,A=0;x=fa-672|0;fa=x;d=H[b+12>>2];e=H[b+20>>2];i=H[b+16>>2];l=i+4|0;e=l>>>0<4?e+1|0:e;a:{b:{c:{if((d|0)<=(e|0)&l>>>0>K[b+8>>2]|(d|0)<(e|0)){break c}e=i+H[b>>2]|0;H[a>>2]=I[e|0]|I[e+1|0]<<8|(I[e+2|0]<<16|I[e+3|0]<<24);e=H[b+20>>2];d=e;l=H[b+16>>2];i=l+4|0;e=i>>>0<4?d+1|0:d;n=i;H[b+16>>2]=i;H[b+20>>2]=e;if(K[a>>2]>31){break c}i=H[b+12>>2];e=d;d=l+8|0;e=d>>>0<8?e+1|0:e;if(d>>>0>K[b+8>>2]&(e|0)>=(i|0)|(e|0)>(i|0)){break c}e=n+H[b>>2]|0;H[a+4>>2]=I[e|0]|I[e+1|0]<<8|(I[e+2|0]<<16|I[e+3|0]<<24);e=H[b+20>>2];d=e;l=H[b+16>>2];i=l+4|0;e=i>>>0<4?d+1|0:d;n=i;H[b+16>>2]=i;H[b+20>>2]=e;i=H[b+12>>2];e=d;d=l+8|0;e=d>>>0<8?e+1|0:e;if(d>>>0>K[b+8>>2]&(e|0)>=(i|0)|(e|0)>(i|0)){break c}e=n+H[b>>2]|0;H[a+12>>2]=I[e|0]|I[e+1|0]<<8|(I[e+2|0]<<16|I[e+3|0]<<24);e=H[b+20>>2];d=e;l=H[b+16>>2];i=l+4|0;e=i>>>0<4?d+1|0:d;t=i;H[b+16>>2]=i;H[b+20>>2]=e;e=H[a+20>>2];n=H[a+12>>2];if((n|0)!=(e|0)?e:0){break c}i=H[b+12>>2];e=d;d=l+8|0;e=d>>>0<8?e+1|0:e;if(d>>>0>K[b+8>>2]&(e|0)>=(i|0)|(e|0)>(i|0)){break c}e=t+H[b>>2]|0;d=I[e|0]|I[e+1|0]<<8|(I[e+2|0]<<16|I[e+3|0]<<24);H[a+16>>2]=d;e=H[b+20>>2];i=H[b+16>>2]+4|0;e=i>>>0<4?e+1|0:e;H[b+16>>2]=i;H[b+20>>2]=e;if(d>>>0>=7){H[x>>2]=d;Pd(1713,x);break c}H[x+664>>2]=c;d:{if(!n){break d}e:{l=H[c>>2];if(n>>>0<=(H[c+8>>2]-l|0)/12>>>0){break e}if(n>>>0<357913942){i=H[c+4>>2];d=N(n,12);e=sa(d);n=d+e|0;d=e+N((i-l|0)/12|0,12)|0;e=d;if((i|0)!=(l|0)){e=d;while(1){e=e-12|0;i=i-12|0;H[e>>2]=H[i>>2];H[e+4>>2]=H[i+4>>2];H[e+8>>2]=H[i+8>>2];if((i|0)!=(l|0)){continue}break}}H[c+8>>2]=n;H[c+4>>2]=d;H[c>>2]=e;if(!l){break e}ra(l);break e}break b}f:{switch(H[a+16>>2]){case 0:g=zb(x+8|0,3);t=x+664|0;d=H[b+12>>2];e=H[b+20>>2];h=H[b+16>>2];i=h+4|0;e=i>>>0<4?e+1|0:e;g:{if((d|0)<=(e|0)&i>>>0>K[b+8>>2]|(d|0)<(e|0)){break g}e=h+H[b>>2]|0;H[g>>2]=I[e|0]|I[e+1|0]<<8|(I[e+2|0]<<16|I[e+3|0]<<24);e=H[b+20>>2];d=e;i=H[b+16>>2];h=i+4|0;e=h>>>0<4?d+1|0:d;j=h;H[b+16>>2]=h;H[b+20>>2]=e;if(K[g>>2]>32){break g}h=H[b+12>>2];e=d;d=i+8|0;e=d>>>0<8?e+1|0:e;if(d>>>0>K[b+8>>2]&(e|0)>=(h|0)|(e|0)>(h|0)){break g}e=j+H[b>>2]|0;d=I[e|0]|I[e+1|0]<<8|(I[e+2|0]<<16|I[e+3|0]<<24);H[g+4>>2]=d;e=H[b+20>>2];h=H[b+16>>2]+4|0;e=h>>>0<4?e+1|0:e;H[b+16>>2]=h;H[b+20>>2]=e;if(!d){break g}H[g+8>>2]=0;if(!xa(g+16|0,b)){break g}if(!xa(g+36|0,b)){break g}if(!xa(g+56|0,b)){break g}if(!xa(g+76|0,b)){break g}q=H[g+4>>2];j=0;d=fa-32|0;fa=d;h=H[g+12>>2];H[d+16>>2]=0;H[d+8>>2]=0;H[d+12>>2]=0;if(h){if(h>>>0>=1073741824){break b}b=h<<2;j=sa(b);H[d+8>>2]=j;f=b+j|0;H[d+16>>2]=f;ua(j,0,b);H[d+12>>2]=f}b=H[g+120>>2];e=H[b>>2];if(e){H[b+4>>2]=e;ra(e);h=H[g+12>>2];j=H[d+8>>2];f=H[d+12>>2]}H[b+4>>2]=f;H[b>>2]=j;H[b+8>>2]=H[d+16>>2];j=0;H[d+16>>2]=0;H[d+8>>2]=0;H[d+12>>2]=0;h:{if(h){if(h>>>0>=1073741824){break b}b=h<<2;k=sa(b);H[d+8>>2]=k;j=b+k|0;H[d+16>>2]=j;ua(k,0,b);H[d+12>>2]=j}b=H[g+132>>2];e=H[b>>2];if(e){H[b+4>>2]=e;ra(e);k=H[d+8>>2];j=H[d+12>>2]}H[b+4>>2]=j;H[b>>2]=k;H[b+8>>2]=H[d+16>>2];H[d+24>>2]=0;H[d+28>>2]=0;H[d+16>>2]=0;H[d+20>>2]=0;H[d+8>>2]=0;H[d+12>>2]=0;ya(d+8|0);b=H[d+24>>2]+H[d+28>>2]|0;e=(b>>>0)/341|0;b=H[H[d+12>>2]+(e<<2)>>2]+N(b-N(e,341)|0,12)|0;H[b+4>>2]=0;H[b+8>>2]=0;H[b>>2]=q;h=H[d+28>>2]+1|0;H[d+28>>2]=h;i:{if(!h){break i}z=g+96|0;while(1){b=H[d+12>>2];j=H[d+24>>2];k=h-1|0;e=j+k|0;f=(e>>>0)/341|0;e=H[b+(f<<2)>>2]+N(e-N(f,341)|0,12)|0;n=H[e+8>>2];f=H[e+4>>2];i=H[e>>2];H[d+28>>2]=k;e=H[d+16>>2];if((((b|0)!=(e|0)?N(e-b>>2,341)-1|0:0)-(h+j|0)|0)+1>>>0>=682){ra(H[e-4>>2]);H[d+16>>2]=H[d+16>>2]-4}e=0;if(i>>>0>q>>>0){break i}b=H[g+12>>2];h=(f|0)!=(b-1|0)?f+1|0:0;if(h>>>0>=b>>>0){break i}j=N(n,12);m=j+H[g+132>>2]|0;l=j+H[g+120>>2]|0;f=H[g>>2];o=h<<2;k=H[o+H[m>>2]>>2];j:{k:{if((f|0)==(k|0)){if(!i){break k}while(1){b=H[l>>2];m=H[b+8>>2];o=H[b+4>>2];p=H[b>>2];f=H[t>>2];h=H[f+4>>2];k=H[f+8>>2];l:{if(h>>>0>>0){H[h+8>>2]=m;H[h+4>>2]=o;H[h>>2]=p;H[f+4>>2]=h+12;break l}j=H[f>>2];u=(h-j|0)/12|0;b=u+1|0;if(b>>>0>=357913942){break b}k=(k-j|0)/12|0;n=k<<1;n=k>>>0>=178956970?357913941:b>>>0>>0?n:b;if(n){if(n>>>0>=357913942){break a}b=sa(N(n,12))}else{b=0}k=b+N(u,12)|0;H[k+8>>2]=m;H[k+4>>2]=o;H[k>>2]=p;m=k+12|0;if((h|0)!=(j|0)){while(1){k=k-12|0;h=h-12|0;H[k>>2]=H[h>>2];H[k+4>>2]=H[h+4>>2];H[k+8>>2]=H[h+8>>2];if((h|0)!=(j|0)){continue}break}}H[f+8>>2]=b+N(n,12);H[f+4>>2]=m;H[f>>2]=k;if(!j){break l}ra(j)}H[g+8>>2]=H[g+8>>2]+1;e=e+1|0;if((i|0)!=(e|0)){continue}break}break k}m:{n:{o:{p:{if(i>>>0<=2){b=H[g+108>>2];H[b>>2]=h;k=1;j=H[g+12>>2];if(j>>>0>1){break p}break m}if(K[g+8>>2]>K[g+4>>2]){break i}b=H[g+120>>2];p=n+1|0;m=N(p,12);e=b+m|0;if((e|0)!=(l|0)){Ca(e,H[l>>2],H[l+4>>2]);b=H[g+120>>2]}b=o+H[b+m>>2]|0;H[b>>2]=H[b>>2]+(1<>2];k=32-e|0;q:{if((b|0)<=(k|0)){f=H[g+28>>2];if((f|0)==H[g+20>>2]){break o}k=H[f>>2];l=b+e|0;H[g+32>>2]=l;k=k<>>32-b|0;if((l|0)!=32){break q}H[g+32>>2]=0;H[g+28>>2]=f+4;break q}f=H[g+28>>2];l=f+4|0;if((l|0)==H[g+20>>2]){break o}u=H[f>>2];H[g+28>>2]=l;k=b-k|0;H[g+32>>2]=k;k=H[f+4>>2]>>>32-k|u<>>32-b}f=i>>>1|0;if(k>>>0>f>>>0){break i}break n}while(1){h=(j-1|0)!=(h|0)?h+1|0:0;H[b+(k<<2)>>2]=h;j=H[g+12>>2];k=k+1|0;if(j>>>0>k>>>0){continue}break}break m}f=i>>>1|0;k=0}r:{s:{b=f-k|0;e=i-b|0;t:{if((e|0)==(b|0)){e=b;break t}f=H[g+88>>2];if((f|0)==H[g+80>>2]){break s}i=H[f>>2];k=H[g+92>>2];l=k+1|0;H[g+92>>2]=l;i=i&-2147483648>>>k;u:{if((l|0)==32){H[g+92>>2]=0;H[g+88>>2]=f+4;if(i){break u}break s}if(!i){break s}}}f=e;e=b;break r}f=b}b=H[g+132>>2];i=b+j|0;j=H[i>>2];k=j+o|0;H[k>>2]=H[k>>2]+1;Ca(b+m|0,j,H[i+4>>2]);if(e){j=H[d+28>>2]+H[d+24>>2]|0;b=H[d+16>>2];k=H[d+12>>2];if((j|0)==(((b|0)!=(k|0)?N(b-k>>2,341)-1|0:0)|0)){ya(d+8|0);k=H[d+12>>2];j=H[d+24>>2]+H[d+28>>2]|0}b=(j>>>0)/341|0;b=H[(b<<2)+k>>2]+N(j-N(b,341)|0,12)|0;H[b+8>>2]=n;H[b+4>>2]=h;H[b>>2]=e;H[d+28>>2]=H[d+28>>2]+1}if(!f){break k}j=H[d+28>>2]+H[d+24>>2]|0;b=H[d+16>>2];k=H[d+12>>2];if((j|0)==(((b|0)!=(k|0)?N(b-k>>2,341)-1|0:0)|0)){ya(d+8|0);k=H[d+12>>2];j=H[d+24>>2]+H[d+28>>2]|0}b=(j>>>0)/341|0;b=H[(b<<2)+k>>2]+N(j-N(b,341)|0,12)|0;H[b+8>>2]=p;H[b+4>>2]=h;H[b>>2]=f;h=H[d+28>>2]+1|0;H[d+28>>2]=h;break j}if(!i){break k}while(1){if(H[g+12>>2]){j=H[g+40>>2];u=H[m>>2];f=H[g+96>>2];s=H[g+108>>2];h=0;while(1){k=s+(h<<2)|0;H[f+(H[k>>2]<<2)>>2]=0;b=H[g>>2];n=H[k>>2]<<2;o=H[n+u>>2];v:{if((b|0)==(o|0)){break v}n=f+n|0;b=b-o|0;o=H[g+52>>2];w=32-o|0;if((b|0)<=(w|0)){p=H[g+48>>2];if((p|0)==(j|0)){break i}H[n>>2]=H[p>>2]<>>32-b;b=b+H[g+52>>2]|0;H[g+52>>2]=b;if((b|0)!=32){break v}H[g+52>>2]=0;H[g+48>>2]=p+4;break v}p=H[g+48>>2];r=p+4|0;if((r|0)==(j|0)){break i}y=H[p>>2];H[g+48>>2]=r;w=b-w|0;H[g+52>>2]=w;H[n>>2]=H[p+4>>2]>>>32-w|y<>>32-b}b=H[k>>2]<<2;k=b+f|0;H[k>>2]=H[k>>2]|H[b+H[l>>2]>>2];h=h+1|0;if(h>>>0>2]){continue}break}}nb(t,z);H[g+8>>2]=H[g+8>>2]+1;e=e+1|0;if((i|0)!=(e|0)){continue}break}}h=H[d+28>>2]}if(h){continue}break}}H[d+28>>2]=0;k=H[d+16>>2];h=H[d+12>>2];j=k-h|0;if(j>>>0>=9){while(1){ra(H[h>>2]);h=H[d+12>>2]+4|0;H[d+12>>2]=h;k=H[d+16>>2];j=k-h|0;if(j>>>0>8){continue}break}}b=170;w:{switch((j>>>2|0)-1|0){case 1:b=341;case 0:H[d+24>>2]=b;break;default:break w}}x:{if((h|0)==(k|0)){break x}while(1){ra(H[h>>2]);h=h+4|0;if((k|0)!=(h|0)){continue}break}b=H[d+16>>2];e=H[d+12>>2];if((b|0)==(e|0)){break x}H[d+16>>2]=b+((e-b|0)+3&-4)}b=H[d+8>>2];if(b){ra(b)}fa=d+32|0;break h}}Ab(g);break d;case 1:g=zb(x+8|0,3);n=x+664|0;f=H[b+12>>2];e=H[b+20>>2];d=H[b+16>>2];h=d+4|0;e=h>>>0<4?e+1|0:e;y:{if(h>>>0>K[b+8>>2]&(e|0)>=(f|0)|(e|0)>(f|0)){break y}e=d+H[b>>2]|0;H[g>>2]=I[e|0]|I[e+1|0]<<8|(I[e+2|0]<<16|I[e+3|0]<<24);e=H[b+20>>2];f=e;h=H[b+16>>2];d=h+4|0;e=d>>>0<4?e+1|0:e;i=d;H[b+16>>2]=d;H[b+20>>2]=e;if(K[g>>2]>32){break y}d=H[b+12>>2];e=f;f=h+8|0;e=f>>>0<8?e+1|0:e;if((d|0)<=(e|0)&f>>>0>K[b+8>>2]|(d|0)<(e|0)){break y}e=i+H[b>>2]|0;f=I[e|0]|I[e+1|0]<<8|(I[e+2|0]<<16|I[e+3|0]<<24);H[g+4>>2]=f;e=H[b+20>>2];d=H[b+16>>2]+4|0;e=d>>>0<4?e+1|0:e;H[b+16>>2]=d;H[b+20>>2]=e;if(!f){break y}H[g+8>>2]=0;if(!xa(g+16|0,b)){break y}if(!xa(g+36|0,b)){break y}if(!xa(g+56|0,b)){break y}if(!xa(g+76|0,b)){break y}t=H[g+4>>2];f=0;d=fa-32|0;fa=d;h=H[g+12>>2];H[d+16>>2]=0;H[d+8>>2]=0;H[d+12>>2]=0;if(h){if(h>>>0>=1073741824){break b}b=h<<2;k=sa(b);H[d+8>>2]=k;f=b+k|0;H[d+16>>2]=f;ua(k,0,b);H[d+12>>2]=f}b=H[g+120>>2];e=H[b>>2];if(e){H[b+4>>2]=e;ra(e);h=H[g+12>>2];k=H[d+8>>2];f=H[d+12>>2]}H[b+4>>2]=f;H[b>>2]=k;H[b+8>>2]=H[d+16>>2];k=0;H[d+16>>2]=0;H[d+8>>2]=0;H[d+12>>2]=0;z:{if(h){if(h>>>0>=1073741824){break b}b=h<<2;j=sa(b);H[d+8>>2]=j;k=b+j|0;H[d+16>>2]=k;ua(j,0,b);H[d+12>>2]=k}b=H[g+132>>2];e=H[b>>2];if(e){H[b+4>>2]=e;ra(e);k=H[d+12>>2];j=H[d+8>>2]}H[b+4>>2]=k;H[b>>2]=j;H[b+8>>2]=H[d+16>>2];H[d+24>>2]=0;H[d+28>>2]=0;H[d+16>>2]=0;H[d+20>>2]=0;H[d+8>>2]=0;H[d+12>>2]=0;ya(d+8|0);b=H[d+24>>2]+H[d+28>>2]|0;e=(b>>>0)/341|0;b=H[H[d+12>>2]+(e<<2)>>2]+N(b-N(e,341)|0,12)|0;H[b+4>>2]=0;H[b+8>>2]=0;H[b>>2]=t;h=H[d+28>>2]+1|0;H[d+28>>2]=h;A:{if(!h){break A}z=g+96|0;while(1){b=H[d+12>>2];k=H[d+24>>2];j=h-1|0;e=k+j|0;f=(e>>>0)/341|0;e=H[b+(f<<2)>>2]+N(e-N(f,341)|0,12)|0;i=H[e+8>>2];f=H[e+4>>2];e=H[e>>2];H[d+28>>2]=j;j=H[d+16>>2];if((((b|0)!=(j|0)?N(j-b>>2,341)-1|0:0)-(h+k|0)|0)+1>>>0>=682){ra(H[j-4>>2]);H[d+16>>2]=H[d+16>>2]-4}if(e>>>0>t>>>0){break A}b=H[g+12>>2];h=(f|0)!=(b-1|0)?f+1|0:0;if(h>>>0>=b>>>0){break A}b=H[g+120>>2];k=N(i,12);l=b+k|0;f=H[g>>2];q=h<<2;p=k+H[g+132>>2]|0;j=H[q+H[p>>2]>>2];B:{C:{if((f|0)==(j|0)){q=0;if(!e){break C}while(1){b=H[l>>2];m=H[b+8>>2];o=H[b+4>>2];p=H[b>>2];f=H[n>>2];h=H[f+4>>2];j=H[f+8>>2];D:{if(h>>>0>>0){H[h+8>>2]=m;H[h+4>>2]=o;H[h>>2]=p;H[f+4>>2]=h+12;break D}i=H[f>>2];u=(h-i|0)/12|0;b=u+1|0;if(b>>>0>=357913942){break b}j=(j-i|0)/12|0;k=j<<1;k=j>>>0>=178956970?357913941:b>>>0>>0?k:b;if(k){if(k>>>0>=357913942){break a}b=sa(N(k,12))}else{b=0}j=b+N(u,12)|0;H[j+8>>2]=m;H[j+4>>2]=o;H[j>>2]=p;m=j+12|0;if((h|0)!=(i|0)){while(1){j=j-12|0;h=h-12|0;H[j>>2]=H[h>>2];H[j+4>>2]=H[h+4>>2];H[j+8>>2]=H[h+8>>2];if((h|0)!=(i|0)){continue}break}}H[f+8>>2]=b+N(k,12);H[f+4>>2]=m;H[f>>2]=j;if(!i){break D}ra(i)}H[g+8>>2]=H[g+8>>2]+1;q=q+1|0;if((e|0)!=(q|0)){continue}break}break C}E:{F:{G:{H:{if(e>>>0<=2){b=H[g+108>>2];H[b>>2]=h;j=1;k=H[g+12>>2];if(k>>>0>1){break H}break E}if(K[g+8>>2]>K[g+4>>2]){break A}m=b;b=k+12|0;Ca(m+b|0,H[l>>2],H[l+4>>2]);b=q+H[b+H[g+120>>2]>>2]|0;H[b>>2]=H[b>>2]+(1<>2];l=32-f|0;I:{if((b|0)<=(l|0)){j=H[g+28>>2];if((j|0)==H[g+20>>2]){break G}l=H[j>>2];m=b+f|0;H[g+32>>2]=m;f=l<>>32-b|0;if((m|0)!=32){break I}H[g+32>>2]=0;H[g+28>>2]=j+4;break I}j=H[g+28>>2];m=j+4|0;if((m|0)==H[g+20>>2]){break G}o=H[j>>2];H[g+28>>2]=m;l=b-l|0;H[g+32>>2]=l;f=H[j+4>>2]>>>32-l|o<>>32-b}j=e>>>1|0;if(j>>>0>>0){break A}break F}while(1){h=(k-1|0)!=(h|0)?h+1|0:0;H[b+(j<<2)>>2]=h;j=j+1|0;k=H[g+12>>2];if(j>>>0>>0){continue}break}break E}j=e>>>1|0;f=0}l=i+1|0;J:{K:{b=j-f|0;f=e-b|0;L:{if((f|0)==(b|0)){e=b;break L}e=H[g+88>>2];if((e|0)==H[g+80>>2]){break K}j=H[e>>2];m=H[g+92>>2];o=m+1|0;H[g+92>>2]=o;j=j&-2147483648>>>m;M:{if((o|0)==32){H[g+92>>2]=0;H[g+88>>2]=e+4;if(j){break M}break K}if(!j){break K}}e=f}f=b;break J}e=b}b=H[g+132>>2];j=b+k|0;k=H[j>>2];q=k+q|0;H[q>>2]=H[q>>2]+1;Ca(b+N(l,12)|0,k,H[j+4>>2]);if(f){k=H[d+28>>2]+H[d+24>>2]|0;b=H[d+16>>2];j=H[d+12>>2];if((k|0)==(((b|0)!=(j|0)?N(b-j>>2,341)-1|0:0)|0)){ya(d+8|0);k=H[d+24>>2]+H[d+28>>2]|0;j=H[d+12>>2]}b=(k>>>0)/341|0;b=H[j+(b<<2)>>2]+N(k-N(b,341)|0,12)|0;H[b+8>>2]=i;H[b+4>>2]=h;H[b>>2]=f;H[d+28>>2]=H[d+28>>2]+1}if(!e){break C}k=H[d+28>>2]+H[d+24>>2]|0;b=H[d+16>>2];j=H[d+12>>2];if((k|0)==(((b|0)!=(j|0)?N(b-j>>2,341)-1|0:0)|0)){ya(d+8|0);k=H[d+24>>2]+H[d+28>>2]|0;j=H[d+12>>2]}b=(k>>>0)/341|0;b=H[j+(b<<2)>>2]+N(k-N(b,341)|0,12)|0;H[b+8>>2]=l;H[b+4>>2]=h;H[b>>2]=e;h=H[d+28>>2]+1|0;H[d+28>>2]=h;break B}k=0;if(!e){break C}while(1){if(H[g+12>>2]){i=H[g+40>>2];u=H[p>>2];f=H[g+96>>2];s=H[g+108>>2];h=0;while(1){j=s+(h<<2)|0;H[f+(H[j>>2]<<2)>>2]=0;b=H[g>>2];q=H[j>>2]<<2;m=H[q+u>>2];N:{if((b|0)==(m|0)){break N}q=f+q|0;b=b-m|0;m=H[g+52>>2];w=32-m|0;if((b|0)<=(w|0)){o=H[g+48>>2];if((o|0)==(i|0)){break A}H[q>>2]=H[o>>2]<>>32-b;b=b+H[g+52>>2]|0;H[g+52>>2]=b;if((b|0)!=32){break N}H[g+52>>2]=0;H[g+48>>2]=o+4;break N}o=H[g+48>>2];r=o+4|0;if((r|0)==(i|0)){break A}y=H[o>>2];H[g+48>>2]=r;w=b-w|0;H[g+52>>2]=w;H[q>>2]=H[o+4>>2]>>>32-w|y<>>32-b}b=H[j>>2]<<2;j=b+f|0;H[j>>2]=H[j>>2]|H[b+H[l>>2]>>2];h=h+1|0;if(h>>>0>2]){continue}break}}nb(n,z);H[g+8>>2]=H[g+8>>2]+1;k=k+1|0;if((e|0)!=(k|0)){continue}break}}h=H[d+28>>2]}if(h){continue}break}}H[d+28>>2]=0;j=H[d+16>>2];h=H[d+12>>2];k=j-h|0;if(k>>>0>=9){while(1){ra(H[h>>2]);h=H[d+12>>2]+4|0;H[d+12>>2]=h;j=H[d+16>>2];k=j-h|0;if(k>>>0>8){continue}break}}b=170;O:{switch((k>>>2|0)-1|0){case 1:b=341;case 0:H[d+24>>2]=b;break;default:break O}}P:{if((h|0)==(j|0)){break P}while(1){ra(H[h>>2]);h=h+4|0;if((j|0)!=(h|0)){continue}break}b=H[d+16>>2];e=H[d+12>>2];if((b|0)==(e|0)){break P}H[d+16>>2]=b+((e-b|0)+3&-4)}b=H[d+8>>2];if(b){ra(b)}fa=d+32|0;break z}}Ab(g);break d;case 2:h=xb(x+8|0,3);t=x+664|0;f=H[b+12>>2];e=H[b+20>>2];d=H[b+16>>2];g=d+4|0;e=g>>>0<4?e+1|0:e;Q:{if(g>>>0>K[b+8>>2]&(e|0)>=(f|0)|(e|0)>(f|0)){break Q}e=d+H[b>>2]|0;H[h>>2]=I[e|0]|I[e+1|0]<<8|(I[e+2|0]<<16|I[e+3|0]<<24);e=H[b+20>>2];f=e;g=H[b+16>>2];d=g+4|0;e=d>>>0<4?e+1|0:e;i=d;H[b+16>>2]=d;H[b+20>>2]=e;if(K[h>>2]>32){break Q}d=H[b+12>>2];e=f;f=g+8|0;e=f>>>0<8?e+1|0:e;if((d|0)<=(e|0)&f>>>0>K[b+8>>2]|(d|0)<(e|0)){break Q}e=i+H[b>>2]|0;f=I[e|0]|I[e+1|0]<<8|(I[e+2|0]<<16|I[e+3|0]<<24);H[h+4>>2]=f;e=H[b+20>>2];d=H[b+16>>2]+4|0;e=d>>>0<4?e+1|0:e;H[b+16>>2]=d;H[b+20>>2]=e;if(!f){break Q}H[h+8>>2]=0;if(!wa(h+16|0,b)){break Q}if(!xa(h+32|0,b)){break Q}if(!xa(h+52|0,b)){break Q}if(!xa(h+72|0,b)){break Q}q=H[h+4>>2];e=0;d=fa-32|0;fa=d;g=H[h+12>>2];H[d+16>>2]=0;H[d+8>>2]=0;H[d+12>>2]=0;if(g){if(g>>>0>=1073741824){break b}b=g<<2;j=sa(b);H[d+8>>2]=j;e=b+j|0;H[d+16>>2]=e;ua(j,0,b);H[d+12>>2]=e}b=H[h+116>>2];f=H[b>>2];if(f){H[b+4>>2]=f;ra(f);g=H[h+12>>2];j=H[d+8>>2];e=H[d+12>>2]}H[b+4>>2]=e;H[b>>2]=j;H[b+8>>2]=H[d+16>>2];j=0;H[d+16>>2]=0;H[d+8>>2]=0;H[d+12>>2]=0;R:{if(g){if(g>>>0>=1073741824){break b}b=g<<2;k=sa(b);H[d+8>>2]=k;j=b+k|0;H[d+16>>2]=j;ua(k,0,b);H[d+12>>2]=j}b=H[h+128>>2];e=H[b>>2];if(e){H[b+4>>2]=e;ra(e);k=H[d+8>>2];j=H[d+12>>2]}H[b+4>>2]=j;H[b>>2]=k;H[b+8>>2]=H[d+16>>2];H[d+24>>2]=0;H[d+28>>2]=0;H[d+16>>2]=0;H[d+20>>2]=0;H[d+8>>2]=0;H[d+12>>2]=0;ya(d+8|0);b=H[d+24>>2]+H[d+28>>2]|0;e=(b>>>0)/341|0;b=H[H[d+12>>2]+(e<<2)>>2]+N(b-N(e,341)|0,12)|0;H[b+4>>2]=0;H[b+8>>2]=0;H[b>>2]=q;g=H[d+28>>2]+1|0;H[d+28>>2]=g;S:{if(!g){break S}z=h+92|0;u=h+16|0;while(1){b=H[d+12>>2];k=H[d+24>>2];f=g-1|0;e=k+f|0;i=(e>>>0)/341|0;e=H[b+(i<<2)>>2]+N(e-N(i,341)|0,12)|0;i=H[e+8>>2];j=H[e+4>>2];e=H[e>>2];H[d+28>>2]=f;f=H[d+16>>2];if((((b|0)!=(f|0)?N(f-b>>2,341)-1|0:0)-(g+k|0)|0)+1>>>0>=682){ra(H[f-4>>2]);H[d+16>>2]=H[d+16>>2]-4}f=0;if(e>>>0>q>>>0){break S}b=H[h+12>>2];g=(j|0)!=(b-1|0)?j+1|0:0;if(g>>>0>=b>>>0){break S}j=N(i,12);n=j+H[h+128>>2]|0;l=j+H[h+116>>2]|0;m=H[h>>2];k=g<<2;o=H[k+H[n>>2]>>2];T:{if((m|0)==(o|0)){if(!e){break T}while(1){b=H[l>>2];m=H[b+8>>2];o=H[b+4>>2];p=H[b>>2];i=H[t>>2];g=H[i+4>>2];k=H[i+8>>2];U:{if(g>>>0>>0){H[g+8>>2]=m;H[g+4>>2]=o;H[g>>2]=p;H[i+4>>2]=g+12;break U}j=H[i>>2];s=(g-j|0)/12|0;b=s+1|0;if(b>>>0>=357913942){break b}k=(k-j|0)/12|0;n=k<<1;n=k>>>0>=178956970?357913941:b>>>0>>0?n:b;if(n){if(n>>>0>=357913942){break a}b=sa(N(n,12))}else{b=0}k=b+N(s,12)|0;H[k+8>>2]=m;H[k+4>>2]=o;H[k>>2]=p;m=k+12|0;if((g|0)!=(j|0)){while(1){k=k-12|0;g=g-12|0;H[k>>2]=H[g>>2];H[k+4>>2]=H[g+4>>2];H[k+8>>2]=H[g+8>>2];if((g|0)!=(j|0)){continue}break}}H[i+8>>2]=b+N(n,12);H[i+4>>2]=m;H[i>>2]=k;if(!j){break U}ra(j)}H[h+8>>2]=H[h+8>>2]+1;f=f+1|0;if((e|0)!=(f|0)){continue}break}break T}V:{W:{X:{Y:{if(e>>>0<=2){b=H[h+104>>2];H[b>>2]=g;k=1;j=H[h+12>>2];if(j>>>0>1){break Y}break V}if(K[h+8>>2]>K[h+4>>2]){break S}b=H[h+116>>2];p=i+1|0;n=N(p,12);f=b+n|0;if((f|0)!=(l|0)){Ca(f,H[l>>2],H[l+4>>2]);b=H[h+116>>2]}b=k+H[b+n>>2]|0;H[b>>2]=H[b>>2]+(1<>2]=0;qc(u,Q(e)^31,d+4|0);b=e>>>1|0;f=H[d+4>>2];if(b>>>0>>0){break S}b=b-f|0;f=e-b|0;Z:{if((f|0)==(b|0)){e=b;break Z}e=H[h+84>>2];if((e|0)==H[h+76>>2]){break X}l=H[e>>2];m=H[h+88>>2];o=m+1|0;H[h+88>>2]=o;l=l&-2147483648>>>m;_:{if((o|0)==32){H[h+88>>2]=0;H[h+84>>2]=e+4;if(l){break _}break X}if(!l){break X}}e=f}f=b;break W}while(1){g=(j-1|0)!=(g|0)?g+1|0:0;H[b+(k<<2)>>2]=g;j=H[h+12>>2];k=k+1|0;if(j>>>0>k>>>0){continue}break}break V}e=b}l=k;b=H[h+128>>2];j=b+j|0;k=H[j>>2];l=l+k|0;H[l>>2]=H[l>>2]+1;Ca(b+n|0,k,H[j+4>>2]);if(f){j=H[d+28>>2]+H[d+24>>2]|0;b=H[d+16>>2];k=H[d+12>>2];if((j|0)==(((b|0)!=(k|0)?N(b-k>>2,341)-1|0:0)|0)){ya(d+8|0);k=H[d+12>>2];j=H[d+24>>2]+H[d+28>>2]|0}b=(j>>>0)/341|0;b=H[(b<<2)+k>>2]+N(j-N(b,341)|0,12)|0;H[b+8>>2]=i;H[b+4>>2]=g;H[b>>2]=f;H[d+28>>2]=H[d+28>>2]+1}if(!e){break T}j=H[d+28>>2]+H[d+24>>2]|0;b=H[d+16>>2];k=H[d+12>>2];if((j|0)==(((b|0)!=(k|0)?N(b-k>>2,341)-1|0:0)|0)){ya(d+8|0);k=H[d+12>>2];j=H[d+24>>2]+H[d+28>>2]|0}b=(j>>>0)/341|0;b=H[(b<<2)+k>>2]+N(j-N(b,341)|0,12)|0;H[b+8>>2]=p;H[b+4>>2]=g;H[b>>2]=e;H[d+28>>2]=H[d+28>>2]+1;break T}if(!e){break T}while(1){if(H[h+12>>2]){j=H[h+36>>2];s=H[n>>2];i=H[h+92>>2];w=H[h+104>>2];g=0;while(1){k=w+(g<<2)|0;H[i+(H[k>>2]<<2)>>2]=0;b=H[h>>2];m=H[k>>2]<<2;o=H[m+s>>2];$:{if((b|0)==(o|0)){break $}m=i+m|0;b=b-o|0;o=H[h+48>>2];r=32-o|0;if((b|0)<=(r|0)){p=H[h+44>>2];if((p|0)==(j|0)){break S}H[m>>2]=H[p>>2]<>>32-b;b=b+H[h+48>>2]|0;H[h+48>>2]=b;if((b|0)!=32){break $}H[h+48>>2]=0;H[h+44>>2]=p+4;break $}p=H[h+44>>2];y=p+4|0;if((y|0)==(j|0)){break S}A=H[p>>2];H[h+44>>2]=y;r=b-r|0;H[h+48>>2]=r;H[m>>2]=H[p+4>>2]>>>32-r|A<>>32-b}b=H[k>>2]<<2;k=b+i|0;H[k>>2]=H[k>>2]|H[b+H[l>>2]>>2];g=g+1|0;if(g>>>0>2]){continue}break}}nb(t,z);H[h+8>>2]=H[h+8>>2]+1;f=f+1|0;if((e|0)!=(f|0)){continue}break}}g=H[d+28>>2];if(g){continue}break}}H[d+28>>2]=0;k=H[d+16>>2];g=H[d+12>>2];j=k-g|0;if(j>>>0>=9){while(1){ra(H[g>>2]);g=H[d+12>>2]+4|0;H[d+12>>2]=g;k=H[d+16>>2];j=k-g|0;if(j>>>0>8){continue}break}}b=170;aa:{switch((j>>>2|0)-1|0){case 1:b=341;case 0:H[d+24>>2]=b;break;default:break aa}}ba:{if((g|0)==(k|0)){break ba}while(1){ra(H[g>>2]);g=g+4|0;if((k|0)!=(g|0)){continue}break}b=H[d+16>>2];e=H[d+12>>2];if((b|0)==(e|0)){break ba}H[d+16>>2]=b+((e-b|0)+3&-4)}b=H[d+8>>2];if(b){ra(b)}fa=d+32|0;break R}}yb(h);break d;case 3:i=xb(x+8|0,3);n=x+664|0;d=H[b+12>>2];e=H[b+20>>2];g=H[b+16>>2];k=g+4|0;e=k>>>0<4?e+1|0:e;ca:{if((d|0)<=(e|0)&k>>>0>K[b+8>>2]|(d|0)<(e|0)){break ca}e=g+H[b>>2]|0;H[i>>2]=I[e|0]|I[e+1|0]<<8|(I[e+2|0]<<16|I[e+3|0]<<24);e=H[b+20>>2];d=e;k=H[b+16>>2];g=k+4|0;e=g>>>0<4?d+1|0:d;l=g;H[b+16>>2]=g;H[b+20>>2]=e;if(K[i>>2]>32){break ca}g=H[b+12>>2];e=d;d=k+8|0;e=d>>>0<8?e+1|0:e;if(d>>>0>K[b+8>>2]&(e|0)>=(g|0)|(e|0)>(g|0)){break ca}e=l+H[b>>2]|0;d=I[e|0]|I[e+1|0]<<8|(I[e+2|0]<<16|I[e+3|0]<<24);H[i+4>>2]=d;e=H[b+20>>2];g=H[b+16>>2]+4|0;e=g>>>0<4?e+1|0:e;H[b+16>>2]=g;H[b+20>>2]=e;if(!d){break ca}H[i+8>>2]=0;if(!wa(i+16|0,b)){break ca}if(!xa(i+32|0,b)){break ca}if(!xa(i+52|0,b)){break ca}if(!xa(i+72|0,b)){break ca}t=H[i+4>>2];d=fa-32|0;fa=d;g=H[i+12>>2];H[d+16>>2]=0;H[d+8>>2]=0;H[d+12>>2]=0;if(g){if(g>>>0>=1073741824){break b}b=g<<2;h=sa(b);H[d+8>>2]=h;f=b+h|0;H[d+16>>2]=f;ua(h,0,b);H[d+12>>2]=f}b=H[i+116>>2];e=H[b>>2];if(e){H[b+4>>2]=e;ra(e);g=H[i+12>>2];h=H[d+8>>2];f=H[d+12>>2]}H[b+4>>2]=f;H[b>>2]=h;H[b+8>>2]=H[d+16>>2];h=0;H[d+16>>2]=0;H[d+8>>2]=0;H[d+12>>2]=0;da:{if(g){if(g>>>0>=1073741824){break b}b=g<<2;j=sa(b);H[d+8>>2]=j;h=b+j|0;H[d+16>>2]=h;ua(j,0,b);H[d+12>>2]=h}b=H[i+128>>2];e=H[b>>2];if(e){H[b+4>>2]=e;ra(e);j=H[d+8>>2];h=H[d+12>>2]}H[b+4>>2]=h;H[b>>2]=j;H[b+8>>2]=H[d+16>>2];H[d+24>>2]=0;H[d+28>>2]=0;H[d+16>>2]=0;H[d+20>>2]=0;H[d+8>>2]=0;H[d+12>>2]=0;ya(d+8|0);b=H[d+24>>2]+H[d+28>>2]|0;e=(b>>>0)/341|0;b=H[H[d+12>>2]+(e<<2)>>2]+N(b-N(e,341)|0,12)|0;H[b+4>>2]=0;H[b+8>>2]=0;H[b>>2]=t;g=H[d+28>>2]+1|0;H[d+28>>2]=g;ea:{if(!g){break ea}z=i+92|0;u=i+16|0;while(1){b=H[d+12>>2];j=H[d+24>>2];h=g-1|0;e=j+h|0;f=(e>>>0)/341|0;e=H[b+(f<<2)>>2]+N(e-N(f,341)|0,12)|0;l=H[e+8>>2];f=H[e+4>>2];e=H[e>>2];H[d+28>>2]=h;h=H[d+16>>2];if((((b|0)!=(h|0)?N(h-b>>2,341)-1|0:0)-(g+j|0)|0)+1>>>0>=682){ra(H[h-4>>2]);H[d+16>>2]=H[d+16>>2]-4}if(e>>>0>t>>>0){break ea}b=H[i+12>>2];g=(f|0)!=(b-1|0)?f+1|0:0;if(g>>>0>=b>>>0){break ea}b=H[i+116>>2];h=N(l,12);k=b+h|0;f=H[i>>2];j=g<<2;p=h+H[i+128>>2]|0;q=H[j+H[p>>2]>>2];fa:{if((f|0)==(q|0)){q=0;if(!e){break fa}while(1){b=H[k>>2];m=H[b+8>>2];o=H[b+4>>2];p=H[b>>2];f=H[n>>2];g=H[f+4>>2];j=H[f+8>>2];ga:{if(g>>>0>>0){H[g+8>>2]=m;H[g+4>>2]=o;H[g>>2]=p;H[f+4>>2]=g+12;break ga}h=H[f>>2];s=(g-h|0)/12|0;b=s+1|0;if(b>>>0>=357913942){break b}j=(j-h|0)/12|0;l=j<<1;l=j>>>0>=178956970?357913941:b>>>0>>0?l:b;if(l){if(l>>>0>=357913942){break a}b=sa(N(l,12))}else{b=0}j=b+N(s,12)|0;H[j+8>>2]=m;H[j+4>>2]=o;H[j>>2]=p;m=j+12|0;if((g|0)!=(h|0)){while(1){j=j-12|0;g=g-12|0;H[j>>2]=H[g>>2];H[j+4>>2]=H[g+4>>2];H[j+8>>2]=H[g+8>>2];if((g|0)!=(h|0)){continue}break}}H[f+8>>2]=b+N(l,12);H[f+4>>2]=m;H[f>>2]=j;if(!h){break ga}ra(h)}H[i+8>>2]=H[i+8>>2]+1;q=q+1|0;if((e|0)!=(q|0)){continue}break}break fa}ha:{ia:{ja:{ka:{if(e>>>0<=2){b=H[i+104>>2];H[b>>2]=g;j=1;h=H[i+12>>2];if(h>>>0>1){break ka}break ha}if(K[i+8>>2]>K[i+4>>2]){break ea}m=b;b=h+12|0;Ca(m+b|0,H[k>>2],H[k+4>>2]);b=j+H[b+H[i+116>>2]>>2]|0;H[b>>2]=H[b>>2]+(1<>2]=0;qc(u,Q(e)^31,d+4|0);b=e>>>1|0;f=H[d+4>>2];if(b>>>0>>0){break ea}k=l+1|0;b=b-f|0;f=e-b|0;la:{if((f|0)==(b|0)){e=b;break la}e=H[i+84>>2];if((e|0)==H[i+76>>2]){break ja}q=H[e>>2];m=H[i+88>>2];o=m+1|0;H[i+88>>2]=o;q=q&-2147483648>>>m;ma:{if((o|0)==32){H[i+88>>2]=0;H[i+84>>2]=e+4;if(q){break ma}break ja}if(!q){break ja}}e=f}f=b;break ia}while(1){g=(h-1|0)!=(g|0)?g+1|0:0;H[b+(j<<2)>>2]=g;h=H[i+12>>2];j=j+1|0;if(h>>>0>j>>>0){continue}break}break ha}e=b}m=j;b=H[i+128>>2];h=b+h|0;j=H[h>>2];q=m+j|0;H[q>>2]=H[q>>2]+1;Ca(b+N(k,12)|0,j,H[h+4>>2]);if(f){h=H[d+28>>2]+H[d+24>>2]|0;b=H[d+16>>2];j=H[d+12>>2];if((h|0)==(((b|0)!=(j|0)?N(b-j>>2,341)-1|0:0)|0)){ya(d+8|0);j=H[d+12>>2];h=H[d+24>>2]+H[d+28>>2]|0}b=(h>>>0)/341|0;b=H[(b<<2)+j>>2]+N(h-N(b,341)|0,12)|0;H[b+8>>2]=l;H[b+4>>2]=g;H[b>>2]=f;H[d+28>>2]=H[d+28>>2]+1}if(!e){break fa}h=H[d+28>>2]+H[d+24>>2]|0;b=H[d+16>>2];j=H[d+12>>2];if((h|0)==(((b|0)!=(j|0)?N(b-j>>2,341)-1|0:0)|0)){ya(d+8|0);j=H[d+12>>2];h=H[d+24>>2]+H[d+28>>2]|0}b=(h>>>0)/341|0;b=H[(b<<2)+j>>2]+N(h-N(b,341)|0,12)|0;H[b+8>>2]=k;H[b+4>>2]=g;H[b>>2]=e;H[d+28>>2]=H[d+28>>2]+1;break fa}h=0;if(!e){break fa}while(1){if(H[i+12>>2]){j=H[i+36>>2];s=H[p>>2];f=H[i+92>>2];w=H[i+104>>2];g=0;while(1){l=w+(g<<2)|0;H[f+(H[l>>2]<<2)>>2]=0;b=H[i>>2];q=H[l>>2]<<2;m=H[q+s>>2];na:{if((b|0)==(m|0)){break na}q=f+q|0;b=b-m|0;m=H[i+48>>2];r=32-m|0;if((b|0)<=(r|0)){o=H[i+44>>2];if((o|0)==(j|0)){break ea}H[q>>2]=H[o>>2]<>>32-b;b=b+H[i+48>>2]|0;H[i+48>>2]=b;if((b|0)!=32){break na}H[i+48>>2]=0;H[i+44>>2]=o+4;break na}o=H[i+44>>2];y=o+4|0;if((y|0)==(j|0)){break ea}A=H[o>>2];H[i+44>>2]=y;r=b-r|0;H[i+48>>2]=r;H[q>>2]=H[o+4>>2]>>>32-r|A<>>32-b}b=H[l>>2]<<2;l=b+f|0;H[l>>2]=H[l>>2]|H[b+H[k>>2]>>2];g=g+1|0;if(g>>>0>2]){continue}break}}nb(n,z);H[i+8>>2]=H[i+8>>2]+1;h=h+1|0;if((e|0)!=(h|0)){continue}break}}g=H[d+28>>2];if(g){continue}break}}H[d+28>>2]=0;j=H[d+16>>2];g=H[d+12>>2];h=j-g|0;if(h>>>0>=9){while(1){ra(H[g>>2]);g=H[d+12>>2]+4|0;H[d+12>>2]=g;j=H[d+16>>2];h=j-g|0;if(h>>>0>8){continue}break}}b=170;oa:{switch((h>>>2|0)-1|0){case 1:b=341;case 0:H[d+24>>2]=b;break;default:break oa}}pa:{if((g|0)==(j|0)){break pa}while(1){ra(H[g>>2]);g=g+4|0;if((j|0)!=(g|0)){continue}break}b=H[d+16>>2];e=H[d+12>>2];if((b|0)==(e|0)){break pa}H[d+16>>2]=b+((e-b|0)+3&-4)}b=H[d+8>>2];if(b){ra(b)}fa=d+32|0;break da}}yb(i);break d;case 4:h=cb(x+8|0,3);t=x+664|0;f=H[b+12>>2];e=H[b+20>>2];d=H[b+16>>2];i=d+4|0;e=i>>>0<4?e+1|0:e;qa:{if(i>>>0>K[b+8>>2]&(e|0)>=(f|0)|(e|0)>(f|0)){break qa}e=d+H[b>>2]|0;H[h>>2]=I[e|0]|I[e+1|0]<<8|(I[e+2|0]<<16|I[e+3|0]<<24);e=H[b+20>>2];f=e;i=H[b+16>>2];d=i+4|0;e=d>>>0<4?e+1|0:e;j=d;H[b+16>>2]=d;H[b+20>>2]=e;if(K[h>>2]>32){break qa}d=H[b+12>>2];e=f;f=i+8|0;e=f>>>0<8?e+1|0:e;if((d|0)<=(e|0)&f>>>0>K[b+8>>2]|(d|0)<(e|0)){break qa}e=j+H[b>>2]|0;f=I[e|0]|I[e+1|0]<<8|(I[e+2|0]<<16|I[e+3|0]<<24);H[h+4>>2]=f;e=H[b+20>>2];d=H[b+16>>2]+4|0;e=d>>>0<4?e+1|0:e;H[b+16>>2]=d;H[b+20>>2]=e;if(!f){break qa}H[h+8>>2]=0;if(!vb(h+16|0,b)){break qa}if(!xa(h+544|0,b)){break qa}if(!xa(h+564|0,b)){break qa}if(!xa(h+584|0,b)){break qa}q=H[h+4>>2];i=0;e=0;d=fa-32|0;fa=d;f=H[h+12>>2];H[d+16>>2]=0;H[d+8>>2]=0;H[d+12>>2]=0;if(f){if(f>>>0>=1073741824){break b}b=f<<2;i=sa(b);H[d+8>>2]=i;e=b+i|0;H[d+16>>2]=e;ua(i,0,b);H[d+12>>2]=e}b=H[h+628>>2];j=H[b>>2];if(j){H[b+4>>2]=j;ra(j);f=H[h+12>>2];i=H[d+8>>2];e=H[d+12>>2]}H[b+4>>2]=e;H[b>>2]=i;H[b+8>>2]=H[d+16>>2];i=0;H[d+16>>2]=0;H[d+8>>2]=0;H[d+12>>2]=0;ra:{if(f){if(f>>>0>=1073741824){break b}b=f<<2;g=sa(b);H[d+8>>2]=g;i=b+g|0;H[d+16>>2]=i;ua(g,0,b);H[d+12>>2]=i}b=H[h+640>>2];e=H[b>>2];if(e){H[b+4>>2]=e;ra(e);i=H[d+12>>2];g=H[d+8>>2]}H[b+4>>2]=i;H[b>>2]=g;H[b+8>>2]=H[d+16>>2];H[d+24>>2]=0;H[d+28>>2]=0;H[d+16>>2]=0;H[d+20>>2]=0;H[d+8>>2]=0;H[d+12>>2]=0;ya(d+8|0);b=H[d+24>>2]+H[d+28>>2]|0;e=(b>>>0)/341|0;b=H[H[d+12>>2]+(e<<2)>>2]+N(b-N(e,341)|0,12)|0;H[b+4>>2]=0;H[b+8>>2]=0;H[b>>2]=q;f=H[d+28>>2]+1|0;H[d+28>>2]=f;sa:{if(!f){break sa}z=h+604|0;u=h+16|0;while(1){b=H[d+12>>2];j=H[d+24>>2];i=f-1|0;e=j+i|0;g=(e>>>0)/341|0;e=H[b+(g<<2)>>2]+N(e-N(g,341)|0,12)|0;k=H[e+8>>2];g=H[e+4>>2];e=H[e>>2];H[d+28>>2]=i;i=H[d+16>>2];if((((b|0)!=(i|0)?N(i-b>>2,341)-1|0:0)-(f+j|0)|0)+1>>>0>=682){ra(H[i-4>>2]);H[d+16>>2]=H[d+16>>2]-4}if(e>>>0>q>>>0){break sa}b=H[h+12>>2];g=(g|0)!=(b-1|0)?g+1|0:0;if(g>>>0>=b>>>0){break sa}l=N(k,12);n=l+H[h+640>>2]|0;j=l+H[h+628>>2]|0;f=H[h>>2];m=g<<2;i=H[m+H[n>>2]>>2];ta:{ua:{if((f|0)==(i|0)){k=0;if(!e){break ua}while(1){b=H[j>>2];m=H[b+8>>2];o=H[b+4>>2];p=H[b>>2];i=H[t>>2];f=H[i+4>>2];g=H[i+8>>2];va:{if(f>>>0>>0){H[f+8>>2]=m;H[f+4>>2]=o;H[f>>2]=p;H[i+4>>2]=f+12;break va}l=H[i>>2];s=(f-l|0)/12|0;b=s+1|0;if(b>>>0>=357913942){break b}g=(g-l|0)/12|0;n=g<<1;n=g>>>0>=178956970?357913941:b>>>0>>0?n:b;if(n){if(n>>>0>=357913942){break a}b=sa(N(n,12))}else{b=0}g=b+N(s,12)|0;H[g+8>>2]=m;H[g+4>>2]=o;H[g>>2]=p;m=g+12|0;if((f|0)!=(l|0)){while(1){g=g-12|0;f=f-12|0;H[g>>2]=H[f>>2];H[g+4>>2]=H[f+4>>2];H[g+8>>2]=H[f+8>>2];if((f|0)!=(l|0)){continue}break}}H[i+8>>2]=b+N(n,12);H[i+4>>2]=m;H[i>>2]=g;if(!l){break va}ra(l)}H[h+8>>2]=H[h+8>>2]+1;k=k+1|0;if((e|0)!=(k|0)){continue}break}break ua}wa:{xa:{ya:{if(e>>>0<=2){b=H[h+616>>2];H[b>>2]=g;f=1;i=H[h+12>>2];if(i>>>0>1){break ya}break wa}if(K[h+8>>2]>K[h+4>>2]){break sa}b=H[h+628>>2];o=k+1|0;n=N(o,12);p=b+n|0;if((p|0)!=(j|0)){Ca(p,H[j>>2],H[j+4>>2]);b=H[h+628>>2]}b=m+H[b+n>>2]|0;H[b>>2]=H[b>>2]+(1<>>1|0;break xa}while(1){i=Da(u+(f<<4)|0)|i<<1;f=f+1|0;if((b|0)!=(f|0)){continue}break}f=e>>>1|0;if(i>>>0<=f>>>0){break xa}break sa}while(1){g=(i-1|0)!=(g|0)?g+1|0:0;H[b+(f<<2)>>2]=g;f=f+1|0;i=H[h+12>>2];if(f>>>0>>0){continue}break}break wa}za:{Aa:{b=f-i|0;f=e-b|0;Ba:{if((f|0)==(b|0)){e=b;break Ba}e=H[h+596>>2];if((e|0)==H[h+588>>2]){break Aa}i=H[e>>2];j=H[h+600>>2];p=j+1|0;H[h+600>>2]=p;i=i&-2147483648>>>j;Ca:{if((p|0)==32){H[h+600>>2]=0;H[h+596>>2]=e+4;if(i){break Ca}break Aa}if(!i){break Aa}}e=f}f=b;break za}e=b}b=H[h+640>>2];i=b+l|0;j=H[i>>2];l=j+m|0;H[l>>2]=H[l>>2]+1;Ca(b+n|0,j,H[i+4>>2]);if(f){j=H[d+28>>2]+H[d+24>>2]|0;b=H[d+16>>2];i=H[d+12>>2];if((j|0)==(((b|0)!=(i|0)?N(b-i>>2,341)-1|0:0)|0)){ya(d+8|0);j=H[d+24>>2]+H[d+28>>2]|0;i=H[d+12>>2]}b=(j>>>0)/341|0;b=H[i+(b<<2)>>2]+N(j-N(b,341)|0,12)|0;H[b+8>>2]=k;H[b+4>>2]=g;H[b>>2]=f;H[d+28>>2]=H[d+28>>2]+1}if(!e){break ua}i=H[d+28>>2]+H[d+24>>2]|0;b=H[d+16>>2];f=H[d+12>>2];if((i|0)==(((b|0)!=(f|0)?N(b-f>>2,341)-1|0:0)|0)){ya(d+8|0);i=H[d+24>>2]+H[d+28>>2]|0;f=H[d+12>>2]}b=(i>>>0)/341|0;b=H[f+(b<<2)>>2]+N(i-N(b,341)|0,12)|0;H[b+8>>2]=o;H[b+4>>2]=g;H[b>>2]=e;f=H[d+28>>2]+1|0;H[d+28>>2]=f;break ta}g=0;if(!e){break ua}while(1){if(H[h+12>>2]){k=H[h+548>>2];s=H[n>>2];i=H[h+604>>2];w=H[h+616>>2];f=0;while(1){l=w+(f<<2)|0;H[i+(H[l>>2]<<2)>>2]=0;b=H[h>>2];m=H[l>>2]<<2;o=H[m+s>>2];Da:{if((b|0)==(o|0)){break Da}m=i+m|0;b=b-o|0;o=H[h+560>>2];r=32-o|0;if((b|0)<=(r|0)){p=H[h+556>>2];if((p|0)==(k|0)){break sa}H[m>>2]=H[p>>2]<>>32-b;b=b+H[h+560>>2]|0;H[h+560>>2]=b;if((b|0)!=32){break Da}H[h+560>>2]=0;H[h+556>>2]=p+4;break Da}p=H[h+556>>2];y=p+4|0;if((y|0)==(k|0)){break sa}A=H[p>>2];H[h+556>>2]=y;r=b-r|0;H[h+560>>2]=r;H[m>>2]=H[p+4>>2]>>>32-r|A<>>32-b}b=H[l>>2]<<2;l=b+i|0;H[l>>2]=H[l>>2]|H[b+H[j>>2]>>2];f=f+1|0;if(f>>>0>2]){continue}break}}nb(t,z);H[h+8>>2]=H[h+8>>2]+1;g=g+1|0;if((e|0)!=(g|0)){continue}break}}f=H[d+28>>2]}if(f){continue}break}}H[d+28>>2]=0;g=H[d+16>>2];f=H[d+12>>2];i=g-f|0;if(i>>>0>=9){while(1){ra(H[f>>2]);f=H[d+12>>2]+4|0;H[d+12>>2]=f;g=H[d+16>>2];i=g-f|0;if(i>>>0>8){continue}break}}b=170;Ea:{switch((i>>>2|0)-1|0){case 1:b=341;case 0:H[d+24>>2]=b;break;default:break Ea}}Fa:{if((g|0)==(f|0)){break Fa}while(1){ra(H[f>>2]);f=f+4|0;if((g|0)!=(f|0)){continue}break}b=H[d+16>>2];e=H[d+12>>2];if((b|0)==(e|0)){break Fa}H[d+16>>2]=b+((e-b|0)+3&-4)}b=H[d+8>>2];if(b){ra(b)}fa=d+32|0;break ra}}db(h);break d;case 5:g=cb(x+8|0,3);t=x+664|0;f=H[b+12>>2];e=H[b+20>>2];d=H[b+16>>2];h=d+4|0;e=h>>>0<4?e+1|0:e;Ga:{if(h>>>0>K[b+8>>2]&(e|0)>=(f|0)|(e|0)>(f|0)){break Ga}e=d+H[b>>2]|0;H[g>>2]=I[e|0]|I[e+1|0]<<8|(I[e+2|0]<<16|I[e+3|0]<<24);e=H[b+20>>2];f=e;h=H[b+16>>2];d=h+4|0;e=d>>>0<4?e+1|0:e;i=d;H[b+16>>2]=d;H[b+20>>2]=e;if(K[g>>2]>32){break Ga}d=H[b+12>>2];e=f;f=h+8|0;e=f>>>0<8?e+1|0:e;if((d|0)<=(e|0)&f>>>0>K[b+8>>2]|(d|0)<(e|0)){break Ga}e=i+H[b>>2]|0;f=I[e|0]|I[e+1|0]<<8|(I[e+2|0]<<16|I[e+3|0]<<24);H[g+4>>2]=f;e=H[b+20>>2];d=H[b+16>>2]+4|0;e=d>>>0<4?e+1|0:e;H[b+16>>2]=d;H[b+20>>2]=e;if(!f){break Ga}H[g+8>>2]=0;if(!vb(g+16|0,b)){break Ga}if(!xa(g+544|0,b)){break Ga}if(!xa(g+564|0,b)){break Ga}if(!xa(g+584|0,b)){break Ga}q=H[g+4>>2];i=0;e=0;d=fa-32|0;fa=d;f=H[g+12>>2];H[d+16>>2]=0;H[d+8>>2]=0;H[d+12>>2]=0;if(f){if(f>>>0>=1073741824){break b}b=f<<2;i=sa(b);H[d+8>>2]=i;e=b+i|0;H[d+16>>2]=e;ua(i,0,b);H[d+12>>2]=e}b=H[g+628>>2];h=H[b>>2];if(h){H[b+4>>2]=h;ra(h);f=H[g+12>>2];i=H[d+8>>2];e=H[d+12>>2]}H[b+4>>2]=e;H[b>>2]=i;H[b+8>>2]=H[d+16>>2];i=0;H[d+16>>2]=0;H[d+8>>2]=0;H[d+12>>2]=0;Ha:{if(f){if(f>>>0>=1073741824){break b}b=f<<2;j=sa(b);H[d+8>>2]=j;i=b+j|0;H[d+16>>2]=i;ua(j,0,b);H[d+12>>2]=i}b=H[g+640>>2];e=H[b>>2];if(e){H[b+4>>2]=e;ra(e);j=H[d+8>>2];i=H[d+12>>2]}H[b+4>>2]=i;H[b>>2]=j;H[b+8>>2]=H[d+16>>2];H[d+24>>2]=0;H[d+28>>2]=0;H[d+16>>2]=0;H[d+20>>2]=0;H[d+8>>2]=0;H[d+12>>2]=0;ya(d+8|0);b=H[d+24>>2]+H[d+28>>2]|0;e=(b>>>0)/341|0;b=H[H[d+12>>2]+(e<<2)>>2]+N(b-N(e,341)|0,12)|0;H[b+4>>2]=0;H[b+8>>2]=0;H[b>>2]=q;f=H[d+28>>2]+1|0;H[d+28>>2]=f;Ia:{if(!f){break Ia}z=g+604|0;u=g+16|0;while(1){b=H[d+12>>2];j=H[d+24>>2];h=f-1|0;e=j+h|0;i=(e>>>0)/341|0;e=H[b+(i<<2)>>2]+N(e-N(i,341)|0,12)|0;k=H[e+8>>2];i=H[e+4>>2];e=H[e>>2];H[d+28>>2]=h;h=H[d+16>>2];if((((b|0)!=(h|0)?N(h-b>>2,341)-1|0:0)-(f+j|0)|0)+1>>>0>=682){ra(H[h-4>>2]);H[d+16>>2]=H[d+16>>2]-4}if(e>>>0>q>>>0){break Ia}h=0;b=H[g+12>>2];j=(i|0)!=(b-1|0)?i+1|0:0;if(j>>>0>=b>>>0){break Ia}b=H[g+628>>2];n=N(k,12);l=b+n|0;f=H[g>>2];m=j<<2;p=n+H[g+640>>2]|0;i=H[m+H[p>>2]>>2];Ja:{Ka:{if((f|0)==(i|0)){if(!e){break Ka}while(1){b=H[l>>2];m=H[b+8>>2];o=H[b+4>>2];p=H[b>>2];i=H[t>>2];f=H[i+4>>2];j=H[i+8>>2];La:{if(f>>>0>>0){H[f+8>>2]=m;H[f+4>>2]=o;H[f>>2]=p;H[i+4>>2]=f+12;break La}k=H[i>>2];s=(f-k|0)/12|0;b=s+1|0;if(b>>>0>=357913942){break b}j=(j-k|0)/12|0;n=j<<1;n=j>>>0>=178956970?357913941:b>>>0>>0?n:b;if(n){if(n>>>0>=357913942){break a}b=sa(N(n,12))}else{b=0}j=b+N(s,12)|0;H[j+8>>2]=m;H[j+4>>2]=o;H[j>>2]=p;m=j+12|0;if((f|0)!=(k|0)){while(1){j=j-12|0;f=f-12|0;H[j>>2]=H[f>>2];H[j+4>>2]=H[f+4>>2];H[j+8>>2]=H[f+8>>2];if((f|0)!=(k|0)){continue}break}}H[i+8>>2]=b+N(n,12);H[i+4>>2]=m;H[i>>2]=j;if(!k){break La}ra(k)}H[g+8>>2]=H[g+8>>2]+1;h=h+1|0;if((e|0)!=(h|0)){continue}break}break Ka}Ma:{Na:{Oa:{if(e>>>0<=2){b=H[g+616>>2];H[b>>2]=j;f=1;i=H[g+12>>2];if(i>>>0>1){break Oa}break Ma}if(K[g+8>>2]>K[g+4>>2]){break Ia}h=b;b=n+12|0;Ca(h+b|0,H[l>>2],H[l+4>>2]);b=m+H[b+H[g+628>>2]>>2]|0;H[b>>2]=H[b>>2]+(1<>>1|0;break Na}while(1){i=Da(u+(f<<4)|0)|i<<1;f=f+1|0;if((b|0)!=(f|0)){continue}break}f=e>>>1|0;if(i>>>0<=f>>>0){break Na}break Ia}while(1){j=(i-1|0)!=(j|0)?j+1|0:0;H[b+(f<<2)>>2]=j;f=f+1|0;i=H[g+12>>2];if(f>>>0>>0){continue}break}break Ma}l=k+1|0;Pa:{Qa:{b=f-i|0;f=e-b|0;Ra:{if((f|0)==(b|0)){e=b;break Ra}e=H[g+596>>2];if((e|0)==H[g+588>>2]){break Qa}h=H[e>>2];i=H[g+600>>2];o=i+1|0;H[g+600>>2]=o;h=h&-2147483648>>>i;Sa:{if((o|0)==32){H[g+600>>2]=0;H[g+596>>2]=e+4;if(h){break Sa}break Qa}if(!h){break Qa}}e=f}f=b;break Pa}e=b}b=H[g+640>>2];h=b+n|0;i=H[h>>2];n=i+m|0;H[n>>2]=H[n>>2]+1;Ca(b+N(l,12)|0,i,H[h+4>>2]);if(f){h=H[d+28>>2]+H[d+24>>2]|0;b=H[d+16>>2];i=H[d+12>>2];if((h|0)==(((b|0)!=(i|0)?N(b-i>>2,341)-1|0:0)|0)){ya(d+8|0);i=H[d+12>>2];h=H[d+24>>2]+H[d+28>>2]|0}b=(h>>>0)/341|0;b=H[(b<<2)+i>>2]+N(h-N(b,341)|0,12)|0;H[b+8>>2]=k;H[b+4>>2]=j;H[b>>2]=f;H[d+28>>2]=H[d+28>>2]+1}if(!e){break Ka}i=H[d+28>>2]+H[d+24>>2]|0;b=H[d+16>>2];f=H[d+12>>2];if((i|0)==(((b|0)!=(f|0)?N(b-f>>2,341)-1|0:0)|0)){ya(d+8|0);i=H[d+24>>2]+H[d+28>>2]|0;f=H[d+12>>2]}b=(i>>>0)/341|0;b=H[f+(b<<2)>>2]+N(i-N(b,341)|0,12)|0;H[b+8>>2]=l;H[b+4>>2]=j;H[b>>2]=e;f=H[d+28>>2]+1|0;H[d+28>>2]=f;break Ja}if(!e){break Ka}while(1){if(H[g+12>>2]){j=H[g+548>>2];s=H[p>>2];i=H[g+604>>2];w=H[g+616>>2];f=0;while(1){k=w+(f<<2)|0;H[i+(H[k>>2]<<2)>>2]=0;b=H[g>>2];n=H[k>>2]<<2;m=H[n+s>>2];Ta:{if((b|0)==(m|0)){break Ta}n=i+n|0;b=b-m|0;m=H[g+560>>2];r=32-m|0;if((b|0)<=(r|0)){o=H[g+556>>2];if((o|0)==(j|0)){break Ia}H[n>>2]=H[o>>2]<>>32-b;b=b+H[g+560>>2]|0;H[g+560>>2]=b;if((b|0)!=32){break Ta}H[g+560>>2]=0;H[g+556>>2]=o+4;break Ta}o=H[g+556>>2];y=o+4|0;if((y|0)==(j|0)){break Ia}A=H[o>>2];H[g+556>>2]=y;r=b-r|0;H[g+560>>2]=r;H[n>>2]=H[o+4>>2]>>>32-r|A<>>32-b}b=H[k>>2]<<2;k=b+i|0;H[k>>2]=H[k>>2]|H[b+H[l>>2]>>2];f=f+1|0;if(f>>>0>2]){continue}break}}nb(t,z);H[g+8>>2]=H[g+8>>2]+1;h=h+1|0;if((e|0)!=(h|0)){continue}break}}f=H[d+28>>2]}if(f){continue}break}}H[d+28>>2]=0;j=H[d+16>>2];f=H[d+12>>2];i=j-f|0;if(i>>>0>=9){while(1){ra(H[f>>2]);f=H[d+12>>2]+4|0;H[d+12>>2]=f;j=H[d+16>>2];i=j-f|0;if(i>>>0>8){continue}break}}b=170;Ua:{switch((i>>>2|0)-1|0){case 1:b=341;case 0:H[d+24>>2]=b;break;default:break Ua}}Va:{if((f|0)==(j|0)){break Va}while(1){ra(H[f>>2]);f=f+4|0;if((j|0)!=(f|0)){continue}break}b=H[d+16>>2];e=H[d+12>>2];if((b|0)==(e|0)){break Va}H[d+16>>2]=b+((e-b|0)+3&-4)}b=H[d+8>>2];if(b){ra(b)}fa=d+32|0;break Ha}}db(g);break d;case 6:break f;default:break c}}h=cb(x+8|0,3);t=x+664|0;f=H[b+12>>2];e=H[b+20>>2];d=H[b+16>>2];i=d+4|0;e=i>>>0<4?e+1|0:e;Wa:{if(i>>>0>K[b+8>>2]&(e|0)>=(f|0)|(e|0)>(f|0)){break Wa}e=d+H[b>>2]|0;H[h>>2]=I[e|0]|I[e+1|0]<<8|(I[e+2|0]<<16|I[e+3|0]<<24);e=H[b+20>>2];f=e;i=H[b+16>>2];d=i+4|0;e=d>>>0<4?e+1|0:e;j=d;H[b+16>>2]=d;H[b+20>>2]=e;if(K[h>>2]>32){break Wa}d=H[b+12>>2];e=f;f=i+8|0;e=f>>>0<8?e+1|0:e;if((d|0)<=(e|0)&f>>>0>K[b+8>>2]|(d|0)<(e|0)){break Wa}e=j+H[b>>2]|0;f=I[e|0]|I[e+1|0]<<8|(I[e+2|0]<<16|I[e+3|0]<<24);H[h+4>>2]=f;e=H[b+20>>2];d=H[b+16>>2]+4|0;e=d>>>0<4?e+1|0:e;H[b+16>>2]=d;H[b+20>>2]=e;if(!f){break Wa}H[h+8>>2]=0;if(!vb(h+16|0,b)){break Wa}if(!xa(h+544|0,b)){break Wa}if(!xa(h+564|0,b)){break Wa}if(!xa(h+584|0,b)){break Wa}q=H[h+4>>2];i=0;e=0;d=fa-32|0;fa=d;f=H[h+12>>2];H[d+16>>2]=0;H[d+8>>2]=0;H[d+12>>2]=0;if(f){if(f>>>0>=1073741824){break b}b=f<<2;i=sa(b);H[d+8>>2]=i;e=b+i|0;H[d+16>>2]=e;ua(i,0,b);H[d+12>>2]=e}b=H[h+628>>2];j=H[b>>2];if(j){H[b+4>>2]=j;ra(j);f=H[h+12>>2];i=H[d+8>>2];e=H[d+12>>2]}H[b+4>>2]=e;H[b>>2]=i;H[b+8>>2]=H[d+16>>2];i=0;H[d+16>>2]=0;H[d+8>>2]=0;H[d+12>>2]=0;Xa:{if(f){if(f>>>0>=1073741824){break b}b=f<<2;g=sa(b);H[d+8>>2]=g;i=b+g|0;H[d+16>>2]=i;ua(g,0,b);H[d+12>>2]=i}b=H[h+640>>2];e=H[b>>2];if(e){H[b+4>>2]=e;ra(e);i=H[d+12>>2];g=H[d+8>>2]}H[b+4>>2]=i;H[b>>2]=g;H[b+8>>2]=H[d+16>>2];H[d+24>>2]=0;H[d+28>>2]=0;H[d+16>>2]=0;H[d+20>>2]=0;H[d+8>>2]=0;H[d+12>>2]=0;ya(d+8|0);b=H[d+24>>2]+H[d+28>>2]|0;e=(b>>>0)/341|0;b=H[H[d+12>>2]+(e<<2)>>2]+N(b-N(e,341)|0,12)|0;H[b+4>>2]=0;H[b+8>>2]=0;H[b>>2]=q;f=H[d+28>>2]+1|0;H[d+28>>2]=f;Ya:{if(!f){break Ya}z=h+604|0;u=h+16|0;while(1){b=H[d+12>>2];i=H[d+24>>2];g=f-1|0;e=i+g|0;j=(e>>>0)/341|0;e=H[b+(j<<2)>>2]+N(e-N(j,341)|0,12)|0;k=H[e+8>>2];e=H[e>>2];H[d+28>>2]=g;g=H[d+16>>2];if((((b|0)!=(g|0)?N(g-b>>2,341)-1|0:0)-(f+i|0)|0)+1>>>0>=682){ra(H[g-4>>2]);H[d+16>>2]=H[d+16>>2]-4}if(e>>>0>q>>>0){break Ya}b=H[h+628>>2];l=N(k,12);n=l+H[h+640>>2]|0;g=Ud(h,e,n);if(g>>>0>=K[h+12>>2]){break Ya}j=b+l|0;f=H[h>>2];m=g<<2;i=H[m+H[n>>2]>>2];Za:{_a:{if((f|0)==(i|0)){k=0;if(!e){break _a}while(1){b=H[j>>2];m=H[b+8>>2];o=H[b+4>>2];p=H[b>>2];i=H[t>>2];f=H[i+4>>2];g=H[i+8>>2];$a:{if(f>>>0>>0){H[f+8>>2]=m;H[f+4>>2]=o;H[f>>2]=p;H[i+4>>2]=f+12;break $a}l=H[i>>2];s=(f-l|0)/12|0;b=s+1|0;if(b>>>0>=357913942){break b}g=(g-l|0)/12|0;n=g<<1;n=g>>>0>=178956970?357913941:b>>>0>>0?n:b;if(n){if(n>>>0>=357913942){break a}b=sa(N(n,12))}else{b=0}g=b+N(s,12)|0;H[g+8>>2]=m;H[g+4>>2]=o;H[g>>2]=p;m=g+12|0;if((f|0)!=(l|0)){while(1){g=g-12|0;f=f-12|0;H[g>>2]=H[f>>2];H[g+4>>2]=H[f+4>>2];H[g+8>>2]=H[f+8>>2];if((f|0)!=(l|0)){continue}break}}H[i+8>>2]=b+N(n,12);H[i+4>>2]=m;H[i>>2]=g;if(!l){break $a}ra(l)}H[h+8>>2]=H[h+8>>2]+1;k=k+1|0;if((e|0)!=(k|0)){continue}break}break _a}ab:{bb:{cb:{if(e>>>0<=2){b=H[h+616>>2];H[b>>2]=g;f=1;i=H[h+12>>2];if(i>>>0>1){break cb}break ab}if(K[h+8>>2]>K[h+4>>2]){break Ya}b=H[h+628>>2];o=k+1|0;n=N(o,12);p=b+n|0;if((p|0)!=(j|0)){Ca(p,H[j>>2],H[j+4>>2]);b=H[h+628>>2]}b=m+H[b+n>>2]|0;H[b>>2]=H[b>>2]+(1<>>1|0;break bb}while(1){i=Da(u+(f<<4)|0)|i<<1;f=f+1|0;if((b|0)!=(f|0)){continue}break}f=e>>>1|0;if(i>>>0<=f>>>0){break bb}break Ya}while(1){g=(i-1|0)!=(g|0)?g+1|0:0;H[b+(f<<2)>>2]=g;f=f+1|0;i=H[h+12>>2];if(f>>>0>>0){continue}break}break ab}db:{eb:{b=f-i|0;f=e-b|0;fb:{if((f|0)==(b|0)){e=b;break fb}e=H[h+596>>2];if((e|0)==H[h+588>>2]){break eb}i=H[e>>2];j=H[h+600>>2];p=j+1|0;H[h+600>>2]=p;i=i&-2147483648>>>j;gb:{if((p|0)==32){H[h+600>>2]=0;H[h+596>>2]=e+4;if(i){break gb}break eb}if(!i){break eb}}e=f}f=b;break db}e=b}b=H[h+640>>2];i=b+l|0;j=H[i>>2];l=j+m|0;H[l>>2]=H[l>>2]+1;Ca(b+n|0,j,H[i+4>>2]);if(f){j=H[d+28>>2]+H[d+24>>2]|0;b=H[d+16>>2];i=H[d+12>>2];if((j|0)==(((b|0)!=(i|0)?N(b-i>>2,341)-1|0:0)|0)){ya(d+8|0);j=H[d+24>>2]+H[d+28>>2]|0;i=H[d+12>>2]}b=(j>>>0)/341|0;b=H[i+(b<<2)>>2]+N(j-N(b,341)|0,12)|0;H[b+8>>2]=k;H[b+4>>2]=g;H[b>>2]=f;H[d+28>>2]=H[d+28>>2]+1}if(!e){break _a}i=H[d+28>>2]+H[d+24>>2]|0;b=H[d+16>>2];f=H[d+12>>2];if((i|0)==(((b|0)!=(f|0)?N(b-f>>2,341)-1|0:0)|0)){ya(d+8|0);i=H[d+24>>2]+H[d+28>>2]|0;f=H[d+12>>2]}b=(i>>>0)/341|0;b=H[f+(b<<2)>>2]+N(i-N(b,341)|0,12)|0;H[b+8>>2]=o;H[b+4>>2]=g;H[b>>2]=e;f=H[d+28>>2]+1|0;H[d+28>>2]=f;break Za}g=0;if(!e){break _a}while(1){if(H[h+12>>2]){k=H[h+548>>2];s=H[n>>2];i=H[h+604>>2];w=H[h+616>>2];f=0;while(1){l=w+(f<<2)|0;H[i+(H[l>>2]<<2)>>2]=0;b=H[h>>2];m=H[l>>2]<<2;o=H[m+s>>2];hb:{if((b|0)==(o|0)){break hb}m=i+m|0;b=b-o|0;o=H[h+560>>2];r=32-o|0;if((b|0)<=(r|0)){p=H[h+556>>2];if((p|0)==(k|0)){break Ya}H[m>>2]=H[p>>2]<>>32-b;b=b+H[h+560>>2]|0;H[h+560>>2]=b;if((b|0)!=32){break hb}H[h+560>>2]=0;H[h+556>>2]=p+4;break hb}p=H[h+556>>2];y=p+4|0;if((y|0)==(k|0)){break Ya}A=H[p>>2];H[h+556>>2]=y;r=b-r|0;H[h+560>>2]=r;H[m>>2]=H[p+4>>2]>>>32-r|A<>>32-b}b=H[l>>2]<<2;l=b+i|0;H[l>>2]=H[l>>2]|H[b+H[j>>2]>>2];f=f+1|0;if(f>>>0>2]){continue}break}}nb(t,z);H[h+8>>2]=H[h+8>>2]+1;g=g+1|0;if((e|0)!=(g|0)){continue}break}}f=H[d+28>>2]}if(f){continue}break}}H[d+28>>2]=0;g=H[d+16>>2];f=H[d+12>>2];i=g-f|0;if(i>>>0>=9){while(1){ra(H[f>>2]);f=H[d+12>>2]+4|0;H[d+12>>2]=f;g=H[d+16>>2];i=g-f|0;if(i>>>0>8){continue}break}}b=170;ib:{switch((i>>>2|0)-1|0){case 1:b=341;case 0:H[d+24>>2]=b;break;default:break ib}}jb:{if((g|0)==(f|0)){break jb}while(1){ra(H[f>>2]);f=f+4|0;if((g|0)!=(f|0)){continue}break}b=H[d+16>>2];e=H[d+12>>2];if((b|0)==(e|0)){break jb}H[d+16>>2]=b+((e-b|0)+3&-4)}b=H[d+8>>2];if(b){ra(b)}fa=d+32|0;break Xa}}db(h)}f=H[a+12>>2]==((H[c+4>>2]-H[c>>2]|0)/12|0)}fa=x+672|0;return f}va();v()}za();v()}function id(a,b,c,d){var e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0;if(!a){return 1}e=H[c+20>>2];g=H[c+12>>2];i=H[c+16>>2];a:{if((e|0)>=(g|0)&i>>>0>=K[c+8>>2]|(e|0)>(g|0)){break a}g=I[i+H[c>>2]|0];i=i+1|0;e=i?e:e+1|0;H[c+16>>2]=i;H[c+20>>2]=e;b:{switch(g|0){case 0:f=a;e=b;k=d;d=0;m=fa+-64|0;fa=m;H[m+56>>2]=0;H[m+48>>2]=0;H[m+52>>2]=0;H[m+40>>2]=0;H[m+44>>2]=0;H[m+32>>2]=0;H[m+36>>2]=0;H[m+24>>2]=0;H[m+28>>2]=0;H[m+16>>2]=0;H[m+20>>2]=0;H[m+8>>2]=0;H[m+12>>2]=0;c:{if(!Le(m+8|0,c)){break c}if(!Ke(m+8|0,c)|(H[m+20>>2]?0:f)){break c}Fb(c,0,0);b=(f|0)!=0;d:{if(f){n=e<<2;q=H[m+36>>2];r=H[m+48>>2];s=H[m+24>>2];while(1){l=H[m+56>>2];e:{if(l>>>0>16383){break e}a=H[m+52>>2];while(1){if((a|0)<=0){break e}a=a-1|0;H[m+52>>2]=a;l=I[a+r|0]|l<<8;H[m+56>>2]=l;if(l>>>0<16384){continue}break}}a=l&4095;t=H[(a<<2)+s>>2];i=(t<<3)+q|0;H[m+56>>2]=(N(H[i>>2],l>>>12|0)+a|0)-H[i+4>>2];f:{if((e|0)<=0){break f}if(!I[c+36|0]|t>>>0>32){break d}if(!t){ua(k+(d<<2)|0,0,n);d=d+e|0;break f}w=t&-2;x=t&1;g=d+e|0;b=H[c+32>>2];j=H[c+28>>2];h=H[c+24>>2];while(1){l=0;a=b;i=0;p=0;if((t|0)!=1){while(1){o=h+(a>>>3|0)|0;g:{if(o>>>0>=j>>>0){o=0;break g}o=I[o|0];b=a+1|0;H[c+32>>2]=b;o=o>>>(a&7)&1;a=b}o=o<>>3|0)|0;if(u>>>0>>0){i=I[u|0];b=a+1|0;H[c+32>>2]=b;i=i>>>(a&7)&1;a=b}u=l|1;l=l+2|0;i=o|i<>>3|0)|0;if(o>>>0>>0){o=I[o|0];b=a+1|0;H[c+32>>2]=b;a=o>>>(a&7)&1}else{a=0}i=a<>2]=i;d=d+1|0;if((g|0)!=(d|0)){continue}break}d=g}v=e+v|0;b=f>>>0>v>>>0;if(b){continue}break}}F[c+36|0]=0;d=H[c+20>>2];e=0;a=H[c+32>>2]+7|0;e=a>>>0<7?1:e;f=(e&7)<<29|a>>>3;a=f+H[c+16>>2]|0;e=(e>>>3|0)+d|0;H[c+16>>2]=a;H[c+20>>2]=a>>>0>>0?e+1|0:e}l=b^1}a=H[m+36>>2];if(a){H[m+40>>2]=a;ra(a)}a=H[m+24>>2];if(a){H[m+28>>2]=a;ra(a)}a=H[m+8>>2];if(a){H[m+12>>2]=a;ra(a)}fa=m- -64|0;return l&1;case 1:break b;default:break a}}b=0;e=H[c+20>>2];g=H[c+12>>2];i=H[c+16>>2];h:{if((e|0)>=(g|0)&i>>>0>=K[c+8>>2]|(e|0)>(g|0)){break h}g=I[i+H[c>>2]|0];i=i+1|0;e=i?e:e+1|0;H[c+16>>2]=i;H[c+20>>2]=e;i:{switch(g-1|0){case 8:m=a;t=d;g=fa+-64|0;fa=g;H[g+56>>2]=0;H[g+48>>2]=0;H[g+52>>2]=0;H[g+40>>2]=0;H[g+44>>2]=0;H[g+32>>2]=0;H[g+36>>2]=0;H[g+24>>2]=0;H[g+28>>2]=0;H[g+16>>2]=0;H[g+20>>2]=0;H[g+8>>2]=0;H[g+12>>2]=0;h=g+8|0;a=J[c+38>>1];j:{k:{if(!a){break k}l:{if(a>>>0<=511){a=H[c+12>>2];e=H[c+20>>2];b=H[c+16>>2];d=b+4|0;e=d>>>0<4?e+1|0:e;if((a|0)<=(e|0)&d>>>0>K[c+8>>2]|(a|0)<(e|0)){break k}a=b+H[c>>2]|0;j=I[a|0]|I[a+1|0]<<8|(I[a+2|0]<<16|I[a+3|0]<<24);H[h+12>>2]=j;e=H[c+20>>2];a=H[c+16>>2]+4|0;e=a>>>0<4?e+1|0:e;f=a;H[c+16>>2]=a;H[c+20>>2]=e;break l}if(!kb(1,h+12|0,c)){break k}f=H[c+16>>2];e=H[c+20>>2];j=H[h+12>>2]}a=H[c+8>>2];b=a-f|0;a=H[c+12>>2]-((a>>>0>>0)+e|0)|0;if(b>>>0>>6>>>0&(a|0)<=0|(a|0)<0){break k}b=H[h>>2];a=H[h+4>>2]-b>>2;m:{if(a>>>0>>0){Aa(h,j-a|0);j=H[h+12>>2];break m}if(a>>>0<=j>>>0){break m}H[h+4>>2]=b+(j<<2)}d=1;if(!j){break j}f=H[c+16>>2];e=H[c+20>>2];q=H[h>>2];r=H[c+8>>2];o=H[c+12>>2];b=0;while(1){d=0;if((e|0)>=(o|0)&f>>>0>=r>>>0|(e|0)>(o|0)){break j}d=H[c>>2];n=I[d+f|0];a=f+1|0;e=a?e:e+1|0;f=a;H[c+16>>2]=a;H[c+20>>2]=e;a=n>>>2|0;i=0;n:{o:{p:{q:{s=n&3;switch(s|0){case 0:break o;case 3:break q;default:break p}}a=a+b|0;d=0;if(a>>>0>=j>>>0){break j}ua(q+(b<<2)|0,0,(n&252)+4|0);b=a;break n}while(1){if((e|0)>=(o|0)&f>>>0>=r>>>0|(e|0)>(o|0)){break k}j=I[d+f|0];f=f+1|0;e=f?e:e+1|0;H[c+16>>2]=f;H[c+20>>2]=e;a=j<<(i<<3|6)|a;i=i+1|0;if((s|0)!=(i|0)){continue}break}}H[q+(b<<2)>>2]=a}b=b+1|0;j=H[h+12>>2];if(b>>>0>>0){continue}break}a=h+16|0;o=H[h>>2];d=H[h+16>>2];b=H[h+20>>2]-d|0;r:{if(b>>>0<=32767){Aa(a,8192-(b>>>2|0)|0);break r}if((b|0)==32768){break r}H[h+20>>2]=d+32768}d=h+28|0;b=H[d>>2];e=H[h+32>>2]-b>>3;s:{if(e>>>0>>0){sb(d,j-e|0);b=H[d>>2];break s}if(e>>>0>j>>>0){H[h+32>>2]=(j<<3)+b}if(!j){break k}}h=H[a>>2];e=0;d=0;while(1){f=o+(e<<2)|0;i=H[f>>2];n=(e<<3)+b|0;a=d;H[n+4>>2]=a;H[n>>2]=i;f=H[f>>2];d=f+a|0;if(d>>>0>8192){break k}t:{if(a>>>0>=d>>>0){break t}i=0;n=f&7;if(n){while(1){H[h+(a<<2)>>2]=e;a=a+1|0;i=i+1|0;if((n|0)!=(i|0)){continue}break}}if(f-1>>>0<=6){break t}while(1){f=h+(a<<2)|0;H[f>>2]=e;H[f+28>>2]=e;H[f+24>>2]=e;H[f+20>>2]=e;H[f+16>>2]=e;H[f+12>>2]=e;H[f+8>>2]=e;H[f+4>>2]=e;a=a+8|0;if((d|0)!=(a|0)){continue}break}}e=e+1|0;if((j|0)!=(e|0)){continue}break}k=(d|0)==8192}d=k}u:{if(!d|(H[g+20>>2]?0:m)){break u}d=0;i=fa-16|0;fa=i;v:{w:{if(J[c+38>>1]<=511){j=H[c+12>>2];a=j;e=H[c+20>>2];k=H[c+16>>2];f=k+8|0;e=f>>>0<8?e+1|0:e;b=H[c+8>>2];if(b>>>0>>0&(a|0)<=(e|0)|(a|0)<(e|0)){break v}k=k+H[c>>2]|0;a=I[k|0]|I[k+1|0]<<8|(I[k+2|0]<<16|I[k+3|0]<<24);k=I[k+4|0]|I[k+5|0]<<8|(I[k+6|0]<<16|I[k+7|0]<<24);H[c+16>>2]=f;H[c+20>>2]=e;break w}if(!jb(1,i+8|0,c)){break v}f=H[c+16>>2];e=H[c+20>>2];b=H[c+8>>2];j=H[c+12>>2];a=H[i+8>>2];k=H[i+12>>2]}h=b-f|0;b=j-((b>>>0>>0)+e|0)|0;if((b|0)==(k|0)&a>>>0>h>>>0|b>>>0>>0){break v}e=e+k|0;b=a+f|0;e=b>>>0>>0?e+1|0:e;H[c+16>>2]=b;H[c+20>>2]=e;if((a|0)<=0){break v}b=f+H[c>>2]|0;H[g+48>>2]=b;c=a-1|0;e=c+b|0;f=I[e|0];x:{if(f>>>0<=63){H[g+52>>2]=c;a=I[e|0]&63;break x}y:{switch((f>>>6|0)-1|0){case 0:if(a>>>0<2){break v}a=a-2|0;H[g+52>>2]=a;a=a+b|0;a=I[a+1|0]<<8&16128|I[a|0];break x;case 1:if(a>>>0<3){break v}a=a-3|0;H[g+52>>2]=a;a=a+b|0;a=I[a+1|0]<<8|I[a+2|0]<<16&4128768|I[a|0];break x;default:break y}}a=a-4|0;H[g+52>>2]=a;a=a+b|0;a=I[a+2|0]<<16|I[a+3|0]<<24&1056964608|I[a+1|0]<<8|I[a|0]}H[g+56>>2]=a+32768;d=a>>>0<8355840}fa=i+16|0;if(!d){break u}if(!m){l=1;break u}a=H[g+56>>2];b=H[g+36>>2];c=H[g+48>>2];d=H[g+24>>2];while(1){z:{if(a>>>0>32767){break z}l=H[g+52>>2];while(1){if((l|0)<=0){break z}l=l-1|0;H[g+52>>2]=l;a=I[c+l|0]|a<<8;H[g+56>>2]=a;if(a>>>0<32768){continue}break}}e=a&8191;f=H[d+(e<<2)>>2];l=b+(f<<3)|0;a=(N(H[l>>2],a>>>13|0)+e|0)-H[l+4>>2]|0;H[g+56>>2]=a;H[t+(p<<2)>>2]=f;l=1;p=p+1|0;if((m|0)!=(p|0)){continue}break}}a=H[g+36>>2];if(a){H[g+40>>2]=a;ra(a)}a=H[g+24>>2];if(a){H[g+28>>2]=a;ra(a)}a=H[g+8>>2];if(a){H[g+12>>2]=a;ra(a)}fa=g- -64|0;b=l;break h;case 9:m=a;t=d;g=fa+-64|0;fa=g;H[g+56>>2]=0;H[g+48>>2]=0;H[g+52>>2]=0;H[g+40>>2]=0;H[g+44>>2]=0;H[g+32>>2]=0;H[g+36>>2]=0;H[g+24>>2]=0;H[g+28>>2]=0;H[g+16>>2]=0;H[g+20>>2]=0;H[g+8>>2]=0;H[g+12>>2]=0;h=g+8|0;a=J[c+38>>1];A:{B:{if(!a){break B}C:{if(a>>>0<=511){a=H[c+12>>2];e=H[c+20>>2];b=H[c+16>>2];d=b+4|0;e=d>>>0<4?e+1|0:e;if((a|0)<=(e|0)&d>>>0>K[c+8>>2]|(a|0)<(e|0)){break B}a=b+H[c>>2]|0;j=I[a|0]|I[a+1|0]<<8|(I[a+2|0]<<16|I[a+3|0]<<24);H[h+12>>2]=j;e=H[c+20>>2];a=H[c+16>>2]+4|0;e=a>>>0<4?e+1|0:e;f=a;H[c+16>>2]=a;H[c+20>>2]=e;break C}if(!kb(1,h+12|0,c)){break B}f=H[c+16>>2];e=H[c+20>>2];j=H[h+12>>2]}a=H[c+8>>2];b=a-f|0;a=H[c+12>>2]-((a>>>0>>0)+e|0)|0;if(b>>>0>>6>>>0&(a|0)<=0|(a|0)<0){break B}b=H[h>>2];a=H[h+4>>2]-b>>2;D:{if(a>>>0>>0){Aa(h,j-a|0);j=H[h+12>>2];break D}if(a>>>0<=j>>>0){break D}H[h+4>>2]=b+(j<<2)}d=1;if(!j){break A}f=H[c+16>>2];e=H[c+20>>2];q=H[h>>2];r=H[c+8>>2];o=H[c+12>>2];b=0;while(1){d=0;if((e|0)>=(o|0)&f>>>0>=r>>>0|(e|0)>(o|0)){break A}d=H[c>>2];n=I[d+f|0];a=f+1|0;e=a?e:e+1|0;f=a;H[c+16>>2]=a;H[c+20>>2]=e;a=n>>>2|0;i=0;E:{F:{G:{H:{s=n&3;switch(s|0){case 0:break F;case 3:break H;default:break G}}a=a+b|0;d=0;if(a>>>0>=j>>>0){break A}ua(q+(b<<2)|0,0,(n&252)+4|0);b=a;break E}while(1){if((e|0)>=(o|0)&f>>>0>=r>>>0|(e|0)>(o|0)){break B}j=I[d+f|0];f=f+1|0;e=f?e:e+1|0;H[c+16>>2]=f;H[c+20>>2]=e;a=j<<(i<<3|6)|a;i=i+1|0;if((s|0)!=(i|0)){continue}break}}H[q+(b<<2)>>2]=a}b=b+1|0;j=H[h+12>>2];if(b>>>0>>0){continue}break}a=h+16|0;o=H[h>>2];d=H[h+16>>2];b=H[h+20>>2]-d|0;I:{if(b>>>0<=131071){Aa(a,32768-(b>>>2|0)|0);break I}if((b|0)==131072){break I}H[h+20>>2]=d+131072}d=h+28|0;b=H[d>>2];e=H[h+32>>2]-b>>3;J:{if(e>>>0>>0){sb(d,j-e|0);b=H[d>>2];break J}if(e>>>0>j>>>0){H[h+32>>2]=(j<<3)+b}if(!j){break B}}h=H[a>>2];e=0;d=0;while(1){f=o+(e<<2)|0;i=H[f>>2];n=(e<<3)+b|0;a=d;H[n+4>>2]=a;H[n>>2]=i;f=H[f>>2];d=f+a|0;if(d>>>0>32768){break B}K:{if(a>>>0>=d>>>0){break K}i=0;n=f&7;if(n){while(1){H[h+(a<<2)>>2]=e;a=a+1|0;i=i+1|0;if((n|0)!=(i|0)){continue}break}}if(f-1>>>0<=6){break K}while(1){f=h+(a<<2)|0;H[f>>2]=e;H[f+28>>2]=e;H[f+24>>2]=e;H[f+20>>2]=e;H[f+16>>2]=e;H[f+12>>2]=e;H[f+8>>2]=e;H[f+4>>2]=e;a=a+8|0;if((d|0)!=(a|0)){continue}break}}e=e+1|0;if((j|0)!=(e|0)){continue}break}k=(d|0)==32768}d=k}L:{if(!d|(H[g+20>>2]?0:m)){break L}d=0;h=fa-16|0;fa=h;M:{N:{if(J[c+38>>1]<=511){j=H[c+12>>2];a=j;e=H[c+20>>2];k=H[c+16>>2];f=k+8|0;e=f>>>0<8?e+1|0:e;b=H[c+8>>2];if(b>>>0>>0&(a|0)<=(e|0)|(a|0)<(e|0)){break M}k=k+H[c>>2]|0;a=I[k|0]|I[k+1|0]<<8|(I[k+2|0]<<16|I[k+3|0]<<24);k=I[k+4|0]|I[k+5|0]<<8|(I[k+6|0]<<16|I[k+7|0]<<24);H[c+16>>2]=f;H[c+20>>2]=e;break N}if(!jb(1,h+8|0,c)){break M}f=H[c+16>>2];e=H[c+20>>2];b=H[c+8>>2];j=H[c+12>>2];a=H[h+8>>2];k=H[h+12>>2]}i=b-f|0;b=j-((b>>>0>>0)+e|0)|0;if((b|0)==(k|0)&a>>>0>i>>>0|b>>>0>>0){break M}i=e+k|0;b=a+f|0;i=b>>>0>>0?i+1|0:i;H[c+16>>2]=b;H[c+20>>2]=i;if((a|0)<=0){break M}b=f+H[c>>2]|0;H[g+48>>2]=b;c=a-1|0;e=c+b|0;f=I[e|0];O:{if(f>>>0<=63){H[g+52>>2]=c;a=I[e|0]&63;break O}P:{switch((f>>>6|0)-1|0){case 0:if(a>>>0<2){break M}a=a-2|0;H[g+52>>2]=a;a=a+b|0;a=I[a+1|0]<<8&16128|I[a|0];break O;case 1:if(a>>>0<3){break M}a=a-3|0;H[g+52>>2]=a;a=a+b|0;a=I[a+1|0]<<8|I[a+2|0]<<16&4128768|I[a|0];break O;default:break P}}a=a-4|0;H[g+52>>2]=a;a=a+b|0;a=I[a+2|0]<<16|I[a+3|0]<<24&1056964608|I[a+1|0]<<8|I[a|0]}H[g+56>>2]=a+131072;d=a>>>0<33423360}fa=h+16|0;if(!d){break L}if(!m){l=1;break L}a=H[g+56>>2];b=H[g+36>>2];c=H[g+48>>2];d=H[g+24>>2];while(1){Q:{if(a>>>0>131071){break Q}l=H[g+52>>2];while(1){if((l|0)<=0){break Q}l=l-1|0;H[g+52>>2]=l;a=I[c+l|0]|a<<8;H[g+56>>2]=a;if(a>>>0<131072){continue}break}}e=a&32767;f=H[d+(e<<2)>>2];l=b+(f<<3)|0;a=(N(H[l>>2],a>>>15|0)+e|0)-H[l+4>>2]|0;H[g+56>>2]=a;H[t+(p<<2)>>2]=f;l=1;p=p+1|0;if((m|0)!=(p|0)){continue}break}}a=H[g+36>>2];if(a){H[g+40>>2]=a;ra(a)}a=H[g+24>>2];if(a){H[g+28>>2]=a;ra(a)}a=H[g+8>>2];if(a){H[g+12>>2]=a;ra(a)}fa=g- -64|0;b=l;break h;case 10:m=a;t=d;g=fa+-64|0;fa=g;H[g+56>>2]=0;H[g+48>>2]=0;H[g+52>>2]=0;H[g+40>>2]=0;H[g+44>>2]=0;H[g+32>>2]=0;H[g+36>>2]=0;H[g+24>>2]=0;H[g+28>>2]=0;H[g+16>>2]=0;H[g+20>>2]=0;H[g+8>>2]=0;H[g+12>>2]=0;h=g+8|0;a=J[c+38>>1];R:{S:{if(!a){break S}T:{if(a>>>0<=511){a=H[c+12>>2];e=H[c+20>>2];b=H[c+16>>2];d=b+4|0;e=d>>>0<4?e+1|0:e;if((a|0)<=(e|0)&d>>>0>K[c+8>>2]|(a|0)<(e|0)){break S}a=b+H[c>>2]|0;j=I[a|0]|I[a+1|0]<<8|(I[a+2|0]<<16|I[a+3|0]<<24);H[h+12>>2]=j;e=H[c+20>>2];a=H[c+16>>2]+4|0;e=a>>>0<4?e+1|0:e;f=a;H[c+16>>2]=a;H[c+20>>2]=e;break T}if(!kb(1,h+12|0,c)){break S}f=H[c+16>>2];e=H[c+20>>2];j=H[h+12>>2]}a=H[c+8>>2];b=a-f|0;a=H[c+12>>2]-((a>>>0>>0)+e|0)|0;if(b>>>0>>6>>>0&(a|0)<=0|(a|0)<0){break S}b=H[h>>2];a=H[h+4>>2]-b>>2;U:{if(a>>>0>>0){Aa(h,j-a|0);j=H[h+12>>2];break U}if(a>>>0<=j>>>0){break U}H[h+4>>2]=b+(j<<2)}d=1;if(!j){break R}f=H[c+16>>2];e=H[c+20>>2];q=H[h>>2];r=H[c+8>>2];o=H[c+12>>2];b=0;while(1){d=0;if((e|0)>=(o|0)&f>>>0>=r>>>0|(e|0)>(o|0)){break R}d=H[c>>2];n=I[d+f|0];a=f+1|0;i=a?e:e+1|0;f=a;H[c+16>>2]=a;e=i;H[c+20>>2]=e;a=n>>>2|0;i=0;V:{W:{X:{Y:{s=n&3;switch(s|0){case 0:break W;case 3:break Y;default:break X}}a=a+b|0;d=0;if(a>>>0>=j>>>0){break R}ua(q+(b<<2)|0,0,(n&252)+4|0);b=a;break V}while(1){if((e|0)>=(o|0)&f>>>0>=r>>>0|(e|0)>(o|0)){break S}j=I[d+f|0];f=f+1|0;e=f?e:e+1|0;H[c+16>>2]=f;H[c+20>>2]=e;a=j<<(i<<3|6)|a;i=i+1|0;if((s|0)!=(i|0)){continue}break}}H[q+(b<<2)>>2]=a}b=b+1|0;j=H[h+12>>2];if(b>>>0>>0){continue}break}a=h+16|0;o=H[h>>2];d=H[h+16>>2];b=H[h+20>>2]-d|0;Z:{if(b>>>0<=262143){Aa(a,65536-(b>>>2|0)|0);break Z}if((b|0)==262144){break Z}H[h+20>>2]=d+262144}d=h+28|0;b=H[d>>2];e=H[h+32>>2]-b>>3;_:{if(e>>>0>>0){sb(d,j-e|0);b=H[d>>2];break _}if(e>>>0>j>>>0){H[h+32>>2]=(j<<3)+b}if(!j){break S}}h=H[a>>2];e=0;d=0;while(1){f=o+(e<<2)|0;i=H[f>>2];n=(e<<3)+b|0;a=d;H[n+4>>2]=a;H[n>>2]=i;f=H[f>>2];d=f+a|0;if(d>>>0>65536){break S}$:{if(a>>>0>=d>>>0){break $}i=0;n=f&7;if(n){while(1){H[h+(a<<2)>>2]=e;a=a+1|0;i=i+1|0;if((n|0)!=(i|0)){continue}break}}if(f-1>>>0<=6){break $}while(1){f=h+(a<<2)|0;H[f>>2]=e;H[f+28>>2]=e;H[f+24>>2]=e;H[f+20>>2]=e;H[f+16>>2]=e;H[f+12>>2]=e;H[f+8>>2]=e;H[f+4>>2]=e;a=a+8|0;if((d|0)!=(a|0)){continue}break}}e=e+1|0;if((j|0)!=(e|0)){continue}break}k=(d|0)==65536}d=k}aa:{if(!d|(H[g+20>>2]?0:m)){break aa}d=0;i=fa-16|0;fa=i;ba:{ca:{if(J[c+38>>1]<=511){j=H[c+12>>2];a=j;e=H[c+20>>2];k=H[c+16>>2];f=k+8|0;e=f>>>0<8?e+1|0:e;b=H[c+8>>2];if(b>>>0>>0&(a|0)<=(e|0)|(a|0)<(e|0)){break ba}k=k+H[c>>2]|0;a=I[k|0]|I[k+1|0]<<8|(I[k+2|0]<<16|I[k+3|0]<<24);k=I[k+4|0]|I[k+5|0]<<8|(I[k+6|0]<<16|I[k+7|0]<<24);H[c+16>>2]=f;H[c+20>>2]=e;break ca}if(!jb(1,i+8|0,c)){break ba}f=H[c+16>>2];e=H[c+20>>2];b=H[c+8>>2];j=H[c+12>>2];a=H[i+8>>2];k=H[i+12>>2]}h=b-f|0;b=j-((b>>>0>>0)+e|0)|0;if((b|0)==(k|0)&a>>>0>h>>>0|b>>>0>>0){break ba}e=e+k|0;b=a+f|0;e=b>>>0>>0?e+1|0:e;H[c+16>>2]=b;H[c+20>>2]=e;if((a|0)<=0){break ba}b=f+H[c>>2]|0;H[g+48>>2]=b;c=a-1|0;e=c+b|0;f=I[e|0];da:{if(f>>>0<=63){H[g+52>>2]=c;a=I[e|0]&63;break da}ea:{switch((f>>>6|0)-1|0){case 0:if(a>>>0<2){break ba}a=a-2|0;H[g+52>>2]=a;a=a+b|0;a=I[a+1|0]<<8&16128|I[a|0];break da;case 1:if(a>>>0<3){break ba}a=a-3|0;H[g+52>>2]=a;a=a+b|0;a=I[a+1|0]<<8|I[a+2|0]<<16&4128768|I[a|0];break da;default:break ea}}a=a-4|0;H[g+52>>2]=a;a=a+b|0;a=I[a+2|0]<<16|I[a+3|0]<<24&1056964608|I[a+1|0]<<8|I[a|0]}H[g+56>>2]=a+262144;d=a>>>0<66846720}fa=i+16|0;if(!d){break aa}if(!m){l=1;break aa}a=H[g+56>>2];b=H[g+36>>2];c=H[g+48>>2];d=H[g+24>>2];while(1){fa:{if(a>>>0>262143){break fa}l=H[g+52>>2];while(1){if((l|0)<=0){break fa}l=l-1|0;H[g+52>>2]=l;a=I[c+l|0]|a<<8;H[g+56>>2]=a;if(a>>>0<262144){continue}break}}e=a&65535;f=H[d+(e<<2)>>2];l=b+(f<<3)|0;a=(N(H[l>>2],a>>>16|0)+e|0)-H[l+4>>2]|0;H[g+56>>2]=a;H[t+(p<<2)>>2]=f;l=1;p=p+1|0;if((m|0)!=(p|0)){continue}break}}a=H[g+36>>2];if(a){H[g+40>>2]=a;ra(a)}a=H[g+24>>2];if(a){H[g+28>>2]=a;ra(a)}a=H[g+8>>2];if(a){H[g+12>>2]=a;ra(a)}fa=g- -64|0;b=l;break h;case 11:m=a;t=d;g=fa+-64|0;fa=g;H[g+56>>2]=0;H[g+48>>2]=0;H[g+52>>2]=0;H[g+40>>2]=0;H[g+44>>2]=0;H[g+32>>2]=0;H[g+36>>2]=0;H[g+24>>2]=0;H[g+28>>2]=0;H[g+16>>2]=0;H[g+20>>2]=0;H[g+8>>2]=0;H[g+12>>2]=0;h=g+8|0;a=J[c+38>>1];ga:{ha:{if(!a){break ha}ia:{if(a>>>0<=511){a=H[c+12>>2];e=H[c+20>>2];b=H[c+16>>2];d=b+4|0;e=d>>>0<4?e+1|0:e;if((a|0)<=(e|0)&d>>>0>K[c+8>>2]|(a|0)<(e|0)){break ha}a=b+H[c>>2]|0;j=I[a|0]|I[a+1|0]<<8|(I[a+2|0]<<16|I[a+3|0]<<24);H[h+12>>2]=j;i=H[c+20>>2];a=H[c+16>>2]+4|0;i=a>>>0<4?i+1|0:i;f=a;H[c+16>>2]=a;e=i;H[c+20>>2]=e;break ia}if(!kb(1,h+12|0,c)){break ha}f=H[c+16>>2];e=H[c+20>>2];j=H[h+12>>2]}a=H[c+8>>2];b=a-f|0;a=H[c+12>>2]-((a>>>0>>0)+e|0)|0;if(b>>>0>>6>>>0&(a|0)<=0|(a|0)<0){break ha}b=H[h>>2];a=H[h+4>>2]-b>>2;ja:{if(a>>>0>>0){Aa(h,j-a|0);j=H[h+12>>2];break ja}if(a>>>0<=j>>>0){break ja}H[h+4>>2]=b+(j<<2)}d=1;if(!j){break ga}f=H[c+16>>2];e=H[c+20>>2];q=H[h>>2];r=H[c+8>>2];o=H[c+12>>2];b=0;while(1){d=0;if((e|0)>=(o|0)&f>>>0>=r>>>0|(e|0)>(o|0)){break ga}d=H[c>>2];n=I[d+f|0];a=f+1|0;e=a?e:e+1|0;f=a;H[c+16>>2]=a;H[c+20>>2]=e;a=n>>>2|0;i=0;ka:{la:{ma:{na:{s=n&3;switch(s|0){case 0:break la;case 3:break na;default:break ma}}a=a+b|0;d=0;if(a>>>0>=j>>>0){break ga}ua(q+(b<<2)|0,0,(n&252)+4|0);b=a;break ka}while(1){if((e|0)>=(o|0)&f>>>0>=r>>>0|(e|0)>(o|0)){break ha}j=I[d+f|0];f=f+1|0;e=f?e:e+1|0;H[c+16>>2]=f;H[c+20>>2]=e;a=j<<(i<<3|6)|a;i=i+1|0;if((s|0)!=(i|0)){continue}break}}H[q+(b<<2)>>2]=a}b=b+1|0;j=H[h+12>>2];if(b>>>0>>0){continue}break}a=h+16|0;o=H[h>>2];d=H[h+16>>2];b=H[h+20>>2]-d|0;oa:{if(b>>>0<=1048575){Aa(a,262144-(b>>>2|0)|0);break oa}if((b|0)==1048576){break oa}H[h+20>>2]=d- -1048576}d=h+28|0;b=H[d>>2];e=H[h+32>>2]-b>>3;pa:{if(e>>>0>>0){sb(d,j-e|0);b=H[d>>2];break pa}if(e>>>0>j>>>0){H[h+32>>2]=(j<<3)+b}if(!j){break ha}}h=H[a>>2];e=0;d=0;while(1){f=o+(e<<2)|0;i=H[f>>2];n=(e<<3)+b|0;a=d;H[n+4>>2]=a;H[n>>2]=i;f=H[f>>2];d=f+a|0;if(d>>>0>262144){break ha}qa:{if(a>>>0>=d>>>0){break qa}i=0;n=f&7;if(n){while(1){H[h+(a<<2)>>2]=e;a=a+1|0;i=i+1|0;if((n|0)!=(i|0)){continue}break}}if(f-1>>>0<=6){break qa}while(1){f=h+(a<<2)|0;H[f>>2]=e;H[f+28>>2]=e;H[f+24>>2]=e;H[f+20>>2]=e;H[f+16>>2]=e;H[f+12>>2]=e;H[f+8>>2]=e;H[f+4>>2]=e;a=a+8|0;if((d|0)!=(a|0)){continue}break}}e=e+1|0;if((j|0)!=(e|0)){continue}break}k=(d|0)==262144}d=k}ra:{if(!d|(H[g+20>>2]?0:m)){break ra}d=0;h=fa-16|0;fa=h;sa:{ta:{if(J[c+38>>1]<=511){j=H[c+12>>2];a=j;i=H[c+20>>2];k=H[c+16>>2];e=k+8|0;i=e>>>0<8?i+1|0:i;b=H[c+8>>2];f=e;e=i;if(b>>>0>>0&(e|0)>=(a|0)|(a|0)<(e|0)){break sa}k=k+H[c>>2]|0;a=I[k|0]|I[k+1|0]<<8|(I[k+2|0]<<16|I[k+3|0]<<24);k=I[k+4|0]|I[k+5|0]<<8|(I[k+6|0]<<16|I[k+7|0]<<24);H[c+16>>2]=f;H[c+20>>2]=e;break ta}if(!jb(1,h+8|0,c)){break sa}f=H[c+16>>2];e=H[c+20>>2];b=H[c+8>>2];j=H[c+12>>2];a=H[h+8>>2];k=H[h+12>>2]}i=b-f|0;b=j-((b>>>0>>0)+e|0)|0;if((b|0)==(k|0)&a>>>0>i>>>0|b>>>0>>0){break sa}e=e+k|0;b=a+f|0;e=b>>>0>>0?e+1|0:e;H[c+16>>2]=b;H[c+20>>2]=e;if((a|0)<=0){break sa}b=f+H[c>>2]|0;H[g+48>>2]=b;c=a-1|0;e=c+b|0;f=I[e|0];ua:{if(f>>>0<=63){H[g+52>>2]=c;a=I[e|0]&63;break ua}va:{switch((f>>>6|0)-1|0){case 0:if(a>>>0<2){break sa}a=a-2|0;H[g+52>>2]=a;a=a+b|0;a=I[a+1|0]<<8&16128|I[a|0];break ua;case 1:if(a>>>0<3){break sa}a=a-3|0;H[g+52>>2]=a;a=a+b|0;a=I[a+1|0]<<8|I[a+2|0]<<16&4128768|I[a|0];break ua;default:break va}}a=a-4|0;H[g+52>>2]=a;a=a+b|0;a=I[a+2|0]<<16|I[a+3|0]<<24&1056964608|I[a+1|0]<<8|I[a|0]}H[g+56>>2]=a- -1048576;d=a>>>0<267386880}fa=h+16|0;if(!d){break ra}if(!m){l=1;break ra}a=H[g+56>>2];b=H[g+36>>2];c=H[g+48>>2];d=H[g+24>>2];while(1){wa:{if(a>>>0>1048575){break wa}l=H[g+52>>2];while(1){if((l|0)<=0){break wa}l=l-1|0;H[g+52>>2]=l;a=I[c+l|0]|a<<8;H[g+56>>2]=a;if(a>>>0<1048576){continue}break}}e=a&262143;f=H[d+(e<<2)>>2];l=b+(f<<3)|0;a=(N(H[l>>2],a>>>18|0)+e|0)-H[l+4>>2]|0;H[g+56>>2]=a;H[t+(p<<2)>>2]=f;l=1;p=p+1|0;if((m|0)!=(p|0)){continue}break}}a=H[g+36>>2];if(a){H[g+40>>2]=a;ra(a)}a=H[g+24>>2];if(a){H[g+28>>2]=a;ra(a)}a=H[g+8>>2];if(a){H[g+12>>2]=a;ra(a)}fa=g- -64|0;b=l;break h;case 12:m=a;t=d;g=fa+-64|0;fa=g;H[g+56>>2]=0;H[g+48>>2]=0;H[g+52>>2]=0;H[g+40>>2]=0;H[g+44>>2]=0;H[g+32>>2]=0;H[g+36>>2]=0;H[g+24>>2]=0;H[g+28>>2]=0;H[g+16>>2]=0;H[g+20>>2]=0;H[g+8>>2]=0;H[g+12>>2]=0;h=g+8|0;a=J[c+38>>1];xa:{ya:{if(!a){break ya}za:{if(a>>>0<=511){a=H[c+12>>2];i=H[c+20>>2];b=H[c+16>>2];d=b+4|0;i=d>>>0<4?i+1|0:i;if((a|0)<=(i|0)&d>>>0>K[c+8>>2]|(a|0)<(i|0)){break ya}a=b+H[c>>2]|0;j=I[a|0]|I[a+1|0]<<8|(I[a+2|0]<<16|I[a+3|0]<<24);H[h+12>>2]=j;e=H[c+20>>2];a=H[c+16>>2]+4|0;e=a>>>0<4?e+1|0:e;f=a;H[c+16>>2]=a;H[c+20>>2]=e;break za}if(!kb(1,h+12|0,c)){break ya}f=H[c+16>>2];e=H[c+20>>2];j=H[h+12>>2]}a=H[c+8>>2];b=a-f|0;a=H[c+12>>2]-((a>>>0>>0)+e|0)|0;if(b>>>0>>6>>>0&(a|0)<=0|(a|0)<0){break ya}b=H[h>>2];a=H[h+4>>2]-b>>2;Aa:{if(a>>>0>>0){Aa(h,j-a|0);j=H[h+12>>2];break Aa}if(a>>>0<=j>>>0){break Aa}H[h+4>>2]=b+(j<<2)}d=1;if(!j){break xa}f=H[c+16>>2];e=H[c+20>>2];q=H[h>>2];r=H[c+8>>2];o=H[c+12>>2];b=0;while(1){d=0;if((e|0)>=(o|0)&f>>>0>=r>>>0|(e|0)>(o|0)){break xa}d=H[c>>2];n=I[d+f|0];a=f+1|0;e=a?e:e+1|0;f=a;H[c+16>>2]=a;H[c+20>>2]=e;a=n>>>2|0;i=0;Ba:{Ca:{Da:{Ea:{s=n&3;switch(s|0){case 0:break Ca;case 3:break Ea;default:break Da}}a=a+b|0;d=0;if(a>>>0>=j>>>0){break xa}ua(q+(b<<2)|0,0,(n&252)+4|0);b=a;break Ba}while(1){if((e|0)>=(o|0)&f>>>0>=r>>>0|(e|0)>(o|0)){break ya}j=I[d+f|0];f=f+1|0;e=f?e:e+1|0;H[c+16>>2]=f;H[c+20>>2]=e;a=j<<(i<<3|6)|a;i=i+1|0;if((s|0)!=(i|0)){continue}break}}H[q+(b<<2)>>2]=a}b=b+1|0;j=H[h+12>>2];if(b>>>0>>0){continue}break}a=h+16|0;o=H[h>>2];d=H[h+16>>2];b=H[h+20>>2]-d|0;Fa:{if(b>>>0<=2097151){Aa(a,524288-(b>>>2|0)|0);break Fa}if((b|0)==2097152){break Fa}H[h+20>>2]=d+2097152}d=h+28|0;b=H[d>>2];e=H[h+32>>2]-b>>3;Ga:{if(e>>>0>>0){sb(d,j-e|0);b=H[d>>2];break Ga}if(e>>>0>j>>>0){H[h+32>>2]=(j<<3)+b}if(!j){break ya}}h=H[a>>2];e=0;d=0;while(1){f=o+(e<<2)|0;i=H[f>>2];n=(e<<3)+b|0;a=d;H[n+4>>2]=a;H[n>>2]=i;f=H[f>>2];d=f+a|0;if(d>>>0>524288){break ya}Ha:{if(a>>>0>=d>>>0){break Ha}i=0;n=f&7;if(n){while(1){H[h+(a<<2)>>2]=e;a=a+1|0;i=i+1|0;if((n|0)!=(i|0)){continue}break}}if(f-1>>>0<=6){break Ha}while(1){f=h+(a<<2)|0;H[f>>2]=e;H[f+28>>2]=e;H[f+24>>2]=e;H[f+20>>2]=e;H[f+16>>2]=e;H[f+12>>2]=e;H[f+8>>2]=e;H[f+4>>2]=e;a=a+8|0;if((d|0)!=(a|0)){continue}break}}e=e+1|0;if((j|0)!=(e|0)){continue}break}k=(d|0)==524288}d=k}Ia:{if(!d|(H[g+20>>2]?0:m)){break Ia}d=0;i=fa-16|0;fa=i;Ja:{Ka:{if(J[c+38>>1]<=511){j=H[c+12>>2];a=j;e=H[c+20>>2];k=H[c+16>>2];f=k+8|0;e=f>>>0<8?e+1|0:e;b=H[c+8>>2];if(b>>>0>>0&(a|0)<=(e|0)|(a|0)<(e|0)){break Ja}k=k+H[c>>2]|0;a=I[k|0]|I[k+1|0]<<8|(I[k+2|0]<<16|I[k+3|0]<<24);k=I[k+4|0]|I[k+5|0]<<8|(I[k+6|0]<<16|I[k+7|0]<<24);H[c+16>>2]=f;H[c+20>>2]=e;break Ka}if(!jb(1,i+8|0,c)){break Ja}f=H[c+16>>2];e=H[c+20>>2];b=H[c+8>>2];j=H[c+12>>2];a=H[i+8>>2];k=H[i+12>>2]}h=b-f|0;b=j-((b>>>0>>0)+e|0)|0;if((b|0)==(k|0)&a>>>0>h>>>0|b>>>0>>0){break Ja}e=e+k|0;b=a+f|0;e=b>>>0>>0?e+1|0:e;H[c+16>>2]=b;H[c+20>>2]=e;if((a|0)<=0){break Ja}b=f+H[c>>2]|0;H[g+48>>2]=b;c=a-1|0;e=c+b|0;f=I[e|0];La:{if(f>>>0<=63){H[g+52>>2]=c;a=I[e|0]&63;break La}Ma:{switch((f>>>6|0)-1|0){case 0:if(a>>>0<2){break Ja}a=a-2|0;H[g+52>>2]=a;a=a+b|0;a=I[a+1|0]<<8&16128|I[a|0];break La;case 1:if(a>>>0<3){break Ja}a=a-3|0;H[g+52>>2]=a;a=a+b|0;a=I[a+1|0]<<8|I[a+2|0]<<16&4128768|I[a|0];break La;default:break Ma}}a=a-4|0;H[g+52>>2]=a;a=a+b|0;a=I[a+2|0]<<16|I[a+3|0]<<24&1056964608|I[a+1|0]<<8|I[a|0]}H[g+56>>2]=a+2097152;d=a>>>0<534773760}fa=i+16|0;if(!d){break Ia}if(!m){l=1;break Ia}a=H[g+56>>2];b=H[g+36>>2];c=H[g+48>>2];d=H[g+24>>2];while(1){Na:{if(a>>>0>2097151){break Na}l=H[g+52>>2];while(1){if((l|0)<=0){break Na}l=l-1|0;H[g+52>>2]=l;a=I[c+l|0]|a<<8;H[g+56>>2]=a;if(a>>>0<2097152){continue}break}}e=a&524287;f=H[d+(e<<2)>>2];l=b+(f<<3)|0;a=(N(H[l>>2],a>>>19|0)+e|0)-H[l+4>>2]|0;H[g+56>>2]=a;H[t+(p<<2)>>2]=f;l=1;p=p+1|0;if((m|0)!=(p|0)){continue}break}}a=H[g+36>>2];if(a){H[g+40>>2]=a;ra(a)}a=H[g+24>>2];if(a){H[g+28>>2]=a;ra(a)}a=H[g+8>>2];if(a){H[g+12>>2]=a;ra(a)}fa=g- -64|0;b=l;break h;case 17:b=Je(a,c,d);break h;case 0:case 1:case 2:case 3:case 4:case 5:case 6:case 7:e=fa+-64|0;fa=e;H[e+56>>2]=0;H[e+48>>2]=0;H[e+52>>2]=0;H[e+40>>2]=0;H[e+44>>2]=0;H[e+32>>2]=0;H[e+36>>2]=0;H[e+24>>2]=0;H[e+28>>2]=0;H[e+16>>2]=0;H[e+20>>2]=0;H[e+8>>2]=0;H[e+12>>2]=0;Oa:{if(!Le(e+8|0,c)|(H[e+20>>2]?0:a)){break Oa}if(!Ke(e+8|0,c)){break Oa}if(!a){b=1;break Oa}c=H[e+56>>2];l=H[e+36>>2];k=H[e+48>>2];i=H[e+24>>2];while(1){Pa:{if(c>>>0>16383){break Pa}b=H[e+52>>2];while(1){if((b|0)<=0){break Pa}b=b-1|0;H[e+52>>2]=b;c=I[b+k|0]|c<<8;H[e+56>>2]=c;if(c>>>0<16384){continue}break}}b=c&4095;g=H[i+(b<<2)>>2];m=l+(g<<3)|0;c=(N(H[m>>2],c>>>12|0)+b|0)-H[m+4>>2]|0;H[e+56>>2]=c;H[(f<<2)+d>>2]=g;b=1;f=f+1|0;if((f|0)!=(a|0)){continue}break}}a=H[e+36>>2];if(a){H[e+40>>2]=a;ra(a)}a=H[e+24>>2];if(a){H[e+28>>2]=a;ra(a)}a=H[e+8>>2];if(a){H[e+12>>2]=a;ra(a)}fa=e- -64|0;break h;case 13:case 14:case 15:case 16:break i;default:break h}}b=Je(a,c,d)}f=b}return f}function gi(a){a=a|0;var b=0,c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,L=0,M=0,O=0,P=0,Q=0,R=0;t=fa+-64|0;fa=t;H[a+132>>2]=0;if(H[a+148>>2]){c=H[a+144>>2];if(c){while(1){d=H[c>>2];ra(c);c=d;if(c){continue}break}}c=0;H[a+144>>2]=0;d=H[a+140>>2];a:{if(!d){break a}if(d>>>0>=4){f=d&-4;while(1){b=c<<2;H[b+H[a+136>>2]>>2]=0;H[H[a+136>>2]+(b|4)>>2]=0;H[H[a+136>>2]+(b|8)>>2]=0;H[H[a+136>>2]+(b|12)>>2]=0;c=c+4|0;g=g+4|0;if((f|0)!=(g|0)){continue}break}}d=d&3;if(!d){break a}while(1){H[H[a+136>>2]+(c<<2)>>2]=0;c=c+1|0;x=x+1|0;if((d|0)!=(x|0)){continue}break}}H[a+148>>2]=0}b:{c:{d:{c=H[a+4>>2];x=I[c+36|0];d=x<<8|I[c+37|0];if(d>>>0<=513){b=H[c+32>>2];e:{if(d>>>0<=511){g=H[b+20>>2];f=H[b+16>>2];d=f+4|0;g=d>>>0<4?g+1|0:g;e=d;d=g;i=H[b+12>>2];if(e>>>0>K[b+8>>2]&(d|0)>=(i|0)|(d|0)>(i|0)){break d}g=f+H[b>>2]|0;g=I[g|0]|I[g+1|0]<<8|(I[g+2|0]<<16|I[g+3|0]<<24);H[b+16>>2]=e;H[b+20>>2]=d;break e}if(!Ga(1,t,b)){break d}c=H[a+4>>2];x=I[c+36|0];g=H[t>>2]}H[a+132>>2]=g}g=H[c+32>>2];f:{g:{h:{if((x&255)>>>0<=1){x=0;d=H[g+20>>2];b=H[g+16>>2];f=b+4|0;d=f>>>0<4?d+1|0:d;e=H[g+12>>2];if((e|0)<=(d|0)&f>>>0>K[g+8>>2]|(d|0)>(e|0)){break c}b=b+H[g>>2]|0;b=I[b|0]|I[b+1|0]<<8|(I[b+2|0]<<16|I[b+3|0]<<24);H[t+60>>2]=b;H[g+16>>2]=f;H[g+20>>2]=d;H[a+156>>2]=b;q=a+156|0;break h}x=0;if(!Ga(1,t+60|0,g)){break c}c=H[a+4>>2];d=I[c+36|0];H[a+156>>2]=H[t+60>>2];q=a+156|0;if(d>>>0>1){break g}}d=H[c+32>>2];c=H[d+8>>2];g=H[d+12>>2];i=c;c=H[d+20>>2];b=H[d+16>>2];f=b+4|0;c=f>>>0<4?c+1|0:c;if(i>>>0>>0&(c|0)>=(g|0)|(c|0)>(g|0)){break c}g=b+H[d>>2]|0;g=I[g|0]|I[g+1|0]<<8|(I[g+2|0]<<16|I[g+3|0]<<24);H[t+56>>2]=g;H[d+16>>2]=f;H[d+20>>2]=c;break f}if(!Ga(1,t+56|0,H[c+32>>2])){break c}g=H[t+56>>2]}if(g>>>0>1431655765|K[q>>2]>N(g,3)>>>0){break c}l=H[a+4>>2];b=H[l+32>>2];B=H[b+8>>2];f=H[b+12>>2];d=H[b+20>>2];e=H[b+16>>2];if((f|0)<=(d|0)&B>>>0<=e>>>0|(d|0)>(f|0)){break c}j=H[b>>2];i=I[j+e|0];c=d;q=e+1|0;c=q?c:c+1|0;H[b+16>>2]=q;H[b+20>>2]=c;i:{if(I[l+36|0]<=1){c=f;f=e+5|0;d=f>>>0<5?d+1|0:d;if((c|0)<=(d|0)&f>>>0>B>>>0|(c|0)<(d|0)){break c}c=j+q|0;q=I[c|0]|I[c+1|0]<<8|(I[c+2|0]<<16|I[c+3|0]<<24);H[t+52>>2]=q;H[b+16>>2]=f;H[b+20>>2]=d;break i}if(!Ga(1,t+52|0,b)){break c}q=H[t+52>>2]}if(g>>>0>>0|((q>>>0)/3|0)+q>>>0>>0){break c}c=H[a+4>>2];b=H[c+32>>2];j:{if(I[c+36|0]<=1){c=H[b+20>>2];d=H[b+16>>2];f=d+4|0;c=f>>>0<4?c+1|0:c;e=H[b+12>>2];if((e|0)<=(c|0)&f>>>0>K[b+8>>2]|(c|0)>(e|0)){break c}d=d+H[b>>2]|0;d=I[d|0]|I[d+1|0]<<8|(I[d+2|0]<<16|I[d+3|0]<<24);H[t+48>>2]=d;H[b+16>>2]=f;H[b+20>>2]=c;break j}if(!Ga(1,t+48|0,b)){break c}d=H[t+48>>2]}if(d>>>0>q>>>0){break c}H[a+28>>2]=H[a+24>>2];b=ac(sa(88));c=H[a+8>>2];H[a+8>>2]=b;if(c){fb(c);if(!H[a+8>>2]){break c}}H[a+164>>2]=H[a+160>>2];Lb(a+160|0,g);H[a+176>>2]=H[a+172>>2];Lb(a+172|0,g);H[a- -64>>2]=0;H[a+92>>2]=-1;H[a+84>>2]=-1;H[a+88>>2]=-1;H[a+40>>2]=H[a+36>>2];H[a+52>>2]=H[a+48>>2];H[a+76>>2]=H[a+72>>2];C=a+216|0;cd(C);bd(C,i);if(!Kc(H[a+8>>2],g,H[a+156>>2]+d|0)){break c}c=H[a+156>>2];F[t|0]=1;Ra(a+120|0,c+d|0,t);c=H[a+4>>2];g=J[c+36>>1];g=(g<<8|g>>>8)&65535;k:{if(g>>>0<=513){b=H[c+32>>2];l:{if(g>>>0<=511){g=H[b+20>>2];f=H[b+16>>2];c=f+4|0;g=c>>>0<4?g+1|0:g;e=c;c=g;l=H[b+12>>2];if(e>>>0>K[b+8>>2]&(c|0)>=(l|0)|(c|0)>(l|0)){break c}g=f+H[b>>2]|0;g=I[g|0]|I[g+1|0]<<8|(I[g+2|0]<<16|I[g+3|0]<<24);H[b+16>>2]=e;H[b+20>>2]=c;break l}if(!Ga(1,t+44|0,b)){break c}g=H[t+44>>2]}if(!g){break c}c=H[H[a+4>>2]+32>>2];b=H[c+8>>2];f=H[c+16>>2];e=b-f|0;c=H[c+12>>2]-(H[c+20>>2]+(b>>>0>>0)|0)|0;if(e>>>0>>0&(c|0)<=0|(c|0)<0){break c}c=Ka(t);f=H[H[a+4>>2]+32>>2];b=H[f+16>>2];e=(b+H[f>>2]|0)+g|0;l=H[f+8>>2];g=(l-b|0)-g|0;G[c+38>>1]=J[f+38>>1];H[c>>2]=e;H[c+16>>2]=0;H[c+20>>2]=0;H[c+8>>2]=g;H[c+12>>2]=0;B=Kb(a,c);if((B|0)==-1){break c}O=B>>31;break k}B=-1;O=-1;if((Kb(a,H[c+32>>2])|0)==-1){break c}}e=a+232|0;Ce(e,a);H[a+372>>2]=i;H[a+384>>2]=H[a+156>>2]+d;E=Ka(t);b=E;g=0;i=fa-16|0;fa=i;m:{n:{c=H[e+144>>2];c=J[(ha[H[H[c>>2]+32>>2]](c)|0)+36>>1];if(((c<<8|c>>>8)&65535)>>>0<=513){c=H[e+4>>2];H[e+40>>2]=H[e>>2];H[e+44>>2]=c;c=H[e+36>>2];H[e+72>>2]=H[e+32>>2];H[e+76>>2]=c;d=H[e+28>>2];c=e- -64|0;H[c>>2]=H[e+24>>2];H[c+4>>2]=d;c=H[e+20>>2];H[e+56>>2]=H[e+16>>2];H[e+60>>2]=c;c=H[e+12>>2];H[e+48>>2]=H[e+8>>2];H[e+52>>2]=c;if(!Fb(e+40|0,1,i+8|0)){break n}c=H[e+44>>2];H[e>>2]=H[e+40>>2];H[e+4>>2]=c;c=H[e+76>>2];H[e+32>>2]=H[e+72>>2];H[e+36>>2]=c;c=H[e+68>>2];H[e+24>>2]=H[e+64>>2];H[e+28>>2]=c;d=H[e+60>>2];f=d;c=H[e+56>>2];H[e+16>>2]=c;H[e+20>>2]=d;l=H[e+52>>2];d=H[e+48>>2];H[e+8>>2]=d;H[e+12>>2]=l;j=d-c|0;m=H[i+12>>2];d=l-((c>>>0>d>>>0)+f|0)|0;l=H[i+8>>2];if((m|0)==(d|0)&j>>>0>>0|d>>>0>>0){break n}d=c;l=c+l|0;c=f+m|0;H[e+16>>2]=l;H[e+20>>2]=d>>>0>l>>>0?c+1|0:c}o:{if(J[e+38>>1]<=513){c=H[e+4>>2];H[e+96>>2]=H[e>>2];H[e+100>>2]=c;c=H[e+36>>2];H[e+128>>2]=H[e+32>>2];H[e+132>>2]=c;c=H[e+28>>2];H[e+120>>2]=H[e+24>>2];H[e+124>>2]=c;c=H[e+20>>2];H[e+112>>2]=H[e+16>>2];H[e+116>>2]=c;c=H[e+12>>2];H[e+104>>2]=H[e+8>>2];H[e+108>>2]=c;if(!Fb(e+96|0,1,i+8|0)){break n}c=H[e+100>>2];H[e>>2]=H[e+96>>2];H[e+4>>2]=c;c=H[e+132>>2];H[e+32>>2]=H[e+128>>2];H[e+36>>2]=c;c=H[e+124>>2];H[e+24>>2]=H[e+120>>2];H[e+28>>2]=c;d=H[e+116>>2];f=d;c=H[e+112>>2];H[e+16>>2]=c;H[e+20>>2]=d;l=H[e+108>>2];d=H[e+104>>2];H[e+8>>2]=d;H[e+12>>2]=l;j=d-c|0;m=H[i+12>>2];d=l-((c>>>0>d>>>0)+f|0)|0;l=H[i+8>>2];if((m|0)==(d|0)&j>>>0>>0|d>>>0>>0){break n}d=f+m|0;l=c+l|0;d=l>>>0>>0?d+1|0:d;H[e+16>>2]=l;H[e+20>>2]=d;break o}if(!wa(e+80|0,e)){break m}}if(!De(e)){break m}c=H[e+4>>2];H[b>>2]=H[e>>2];H[b+4>>2]=c;c=H[e+36>>2];H[b+32>>2]=H[e+32>>2];H[b+36>>2]=c;c=H[e+28>>2];H[b+24>>2]=H[e+24>>2];H[b+28>>2]=c;c=H[e+20>>2];H[b+16>>2]=H[e+16>>2];H[b+20>>2]=c;c=H[e+12>>2];H[b+8>>2]=H[e+8>>2];H[b+12>>2]=c;c=H[e+144>>2];c=J[(ha[H[H[c>>2]+32>>2]](c)|0)+36>>1];p:{if(((c<<8|c>>>8)&65535)>>>0<=513){c=H[e+144>>2];q:{if(I[(ha[H[H[c>>2]+32>>2]](c)|0)+36|0]<=1){c=H[b+20>>2];d=H[b+16>>2];f=d+4|0;c=f>>>0<4?c+1|0:c;l=H[b+12>>2];if((l|0)<=(c|0)&f>>>0>K[b+8>>2]|(c|0)>(l|0)){break m}d=d+H[b>>2]|0;d=I[d|0]|I[d+1|0]<<8|(I[d+2|0]<<16|I[d+3|0]<<24);H[b+16>>2]=f;H[b+20>>2]=c;break q}if(!Ga(1,i+8|0,b)){break m}d=H[i+8>>2]}c=H[e+152>>2];if(d>>>0>=c>>>0){break m}d=H[b+20>>2];l=H[b+12>>2];f=H[b+16>>2];if((d|0)>=(l|0)&f>>>0>=K[b+8>>2]|(d|0)>(l|0)){break m}l=I[f+H[b>>2]|0];f=f+1|0;d=f?d:d+1|0;H[b+16>>2]=f;H[b+20>>2]=d;if(l){break m}H[e+176>>2]=2;H[e+180>>2]=7;break p}H[e+176>>2]=2;H[e+180>>2]=7;c=H[e+152>>2]}if((c|0)<0){break m}H[i+8>>2]=0;g=2;l=H[e+156>>2];f=H[e+160>>2]-l>>2;r:{if(f>>>0>>0){Ia(e+156|0,c-f|0,i+8|0);g=H[e+176>>2];d=H[e+180>>2];break r}d=7;if(c>>>0>=f>>>0){break r}H[e+160>>2]=l+(c<<2)}f=e+184|0;d=(d-g|0)+1|0;c=H[e+188>>2];l=H[e+184>>2];g=(c-l|0)/12|0;s:{if(d>>>0>g>>>0){d=d-g|0;j=H[f+8>>2];c=H[f+4>>2];t:{if(d>>>0<=(j-c|0)/12>>>0){if(d){g=c;c=N(d,12)-12|0;c=(c-((c>>>0)%12|0)|0)+12|0;c=ua(g,0,c)+c|0}H[f+4>>2]=c;break t}u:{v:{w:{l=H[f>>2];m=(c-l|0)/12|0;g=m+d|0;if(g>>>0<357913942){j=(j-l|0)/12|0;h=j<<1;j=j>>>0>=178956970?357913941:g>>>0>>0?h:g;if(j){if(j>>>0>=357913942){break w}y=sa(N(j,12))}g=N(m,12)+y|0;d=N(d,12)-12|0;m=(d-((d>>>0)%12|0)|0)+12|0;d=ua(g,0,m);m=d+m|0;j=N(j,12)+y|0;if((c|0)==(l|0)){break v}while(1){g=g-12|0;c=c-12|0;H[g>>2]=H[c>>2];H[g+4>>2]=H[c+4>>2];H[g+8>>2]=H[c+8>>2];H[c+8>>2]=0;H[c>>2]=0;H[c+4>>2]=0;if((c|0)!=(l|0)){continue}break}H[f+8>>2]=j;d=H[f+4>>2];H[f+4>>2]=m;c=H[f>>2];H[f>>2]=g;if((c|0)==(d|0)){break u}while(1){g=d-12|0;l=H[g>>2];if(l){H[d-8>>2]=l;ra(l)}d=g;if((d|0)!=(c|0)){continue}break}break u}break b}za();v()}H[f+8>>2]=j;H[f+4>>2]=m;H[f>>2]=d}if(c){ra(c)}}d=H[e+188>>2];break s}if(d>>>0>=g>>>0){d=c;break s}d=l+N(d,12)|0;if((d|0)!=(c|0)){while(1){g=c-12|0;l=H[g>>2];if(l){H[c-8>>2]=l;ra(l)}c=g;if((d|0)!=(c|0)){continue}break}}H[e+188>>2]=d}j=e+196|0;g=H[e+184>>2];c=(d-g|0)/12|0;m=H[e+196>>2];l=H[e+200>>2]-m>>2;x:{if(c>>>0>l>>>0){Aa(j,c-l|0);g=H[e+184>>2];d=H[e+188>>2];break x}if(c>>>0>=l>>>0){break x}H[e+200>>2]=m+(c<<2)}if((d|0)==(g|0)){g=1;break m}c=0;while(1){if(!Ga(1,i+8|0,b)){break n}g=H[i+8>>2];d=H[e+148>>2];if(g>>>0>(H[d+4>>2]-H[d>>2]>>2>>>0)/3>>>0){break n}if(g){y=N(c,12);l=y+H[f>>2]|0;d=H[l>>2];m=H[l+4>>2]-d>>2;y:{if(m>>>0>>0){Aa(l,g-m|0);d=H[y+H[f>>2]>>2];break y}if(g>>>0>=m>>>0){break y}H[l+4>>2]=(g<<2)+d}id(g,1,b,d);H[H[j>>2]+(c<<2)>>2]=g}g=1;c=c+1|0;if(c>>>0<(H[e+188>>2]-H[e+184>>2]|0)/12>>>0){continue}break}break m}g=0}fa=i+16|0;z:{if(!g){break z}c=0;f=0;g=0;d=0;l=0;y=0;n=fa-96|0;fa=n;H[n+72>>2]=0;H[n+64>>2]=0;H[n+68>>2]=0;H[n+48>>2]=0;H[n+52>>2]=0;H[n+40>>2]=0;H[n+44>>2]=0;H[n+56>>2]=1065353216;H[n+32>>2]=0;H[n+24>>2]=0;H[n+28>>2]=0;j=a;L=H[a+124>>2];A:{B:{C:{D:{if((q|0)<=0){break D}r=j+232|0;P=H[j+216>>2]!=H[j+220>>2];D=1;while(1){i=l;l=i+1|0;a=H[r+172>>2];E:{F:{if((a|0)!=-1){b=H[r+196>>2]+(a<<2)|0;m=H[b>>2];a=m-1|0;H[b>>2]=a;b=9;if((m|0)<=0){break E}a=H[H[H[r+184>>2]+N(H[r+172>>2],12)>>2]+(a<<2)>>2];if(a>>>0>4){break E}b=H[(a<<2)+12144>>2];break F}b=7;a=H[r+144>>2];a=J[(ha[H[H[a>>2]+32>>2]](a)|0)+36>>1];if(((a<<8|a>>>8)&65535)>>>0>513|!I[r+76|0]){break F}b=0;p=H[r- -64>>2];h=H[r+72>>2];a=p+(h>>>3|0)|0;o=H[r+68>>2];if(a>>>0>=o>>>0){break F}m=I[a|0];a=h+1|0;H[r+72>>2]=a;m=m>>>(h&7)&1;if(!m){break F}k=a>>>3|0;b=p+k|0;G:{if(b>>>0>=o>>>0){b=a;a=0;break G}s=I[b|0];b=h+2|0;H[r+72>>2]=b;k=b>>>3|0;a=s>>>(a&7)&1}h=k+p|0;if(h>>>0>>0){h=I[h|0];H[r+72>>2]=b+1;b=h>>>(b&7)<<1&2}else{b=0}b=(a|b)<<1|m}H[r+168>>2]=b}H:{I:{if(!b){if((c|0)==(g|0)){m=-1;break C}a=-1;k=H[j+8>>2];s=H[k+24>>2];w=c-4|0;h=H[w>>2];b=-1;J:{if((h|0)==-1){break J}m=h+1|0;m=(m>>>0)%3|0?m:h-2|0;b=-1;if((m|0)==-1){break J}b=H[H[k>>2]+(m<<2)>>2]}f=H[s+(b<<2)>>2];if((f|0)!=-1){a=f+1|0;a=(a>>>0)%3|0?a:f-2|0}if((a|0)==(h|0)){m=-1;break C}if((h|0)!=-1){m=-1;if(H[H[k+12>>2]+(h<<2)>>2]!=-1){break C}}f=H[k+12>>2];if((a|0)!=-1){m=-1;if(H[f+(a<<2)>>2]!=-1){break C}}i=N(i,3);m=i+1|0;H[f+(h<<2)>>2]=m;D=m<<2;H[D+f>>2]=h;o=i+2|0;H[f+(a<<2)>>2]=o;z=o<<2;H[z+f>>2]=a;p=-1;f=-1;K:{if((h|0)==-1){break K}L:{if((h>>>0)%3|0){m=h-1|0;break L}m=h+2|0;f=-1;if((m|0)==-1){break K}}f=H[H[k>>2]+(m<<2)>>2]}M:{if((a|0)==-1){break M}m=a+1|0;a=(m>>>0)%3|0?m:a-2|0;if((a|0)==-1){break M}p=H[H[k>>2]+(a<<2)>>2]}m=-1;if((b|0)==(f|0)|(b|0)==(p|0)){break C}a=H[k>>2];H[a+(i<<2)>>2]=b;H[a+D>>2]=p;H[a+z>>2]=f;if((f|0)!=-1){H[s+(f<<2)>>2]=o}a=H[j+120>>2]+(b>>>3&536870908)|0;f=H[a>>2];Q=a,R=Rj(b)&f,H[Q>>2]=R;H[w>>2]=i;s=H[c-4>>2];break I}m=-1;N:{O:{P:{Q:{R:{S:{T:{U:{V:{switch(b-1|0){case 2:case 4:if((c|0)==(g|0)){break C}w=c-4|0;a=H[w>>2];h=H[j+8>>2];k=H[h+12>>2];if(!((a|0)==-1|H[k+(a<<2)>>2]==-1)){break C}f=N(i,3);o=(b|0)==5;s=f+(o?2:1)|0;z=s<<2;H[z+k>>2]=a;H[k+(a<<2)>>2]=s;Na(h+24|0,11424);b=H[j+8>>2];p=H[b+24>>2];if(H[b+28>>2]-p>>2>(L|0)){break C}b=H[b>>2];A=b+z|0;k=H[h+28>>2];h=H[h+24>>2];z=(k-h>>2)-1|0;H[A>>2]=z;if((h|0)!=(k|0)){H[p+(z<<2)>>2]=s}k=o?f:f+2|0;o=b+(f+o<<2)|0;W:{if((a|0)==-1){H[b+(k<<2)>>2]=-1;h=-1;break W}X:{Y:{Z:{if((a>>>0)%3|0){h=a-1|0;break Z}h=a+2|0;if((h|0)==-1){break Y}}h=H[b+(h<<2)>>2];H[b+(k<<2)>>2]=h;if((h|0)==-1){break X}H[p+(h<<2)>>2]=k;break X}H[b+(k<<2)>>2]=-1}k=a+1|0;a=(k>>>0)%3|0?k:a-2|0;h=-1;if((a|0)==-1){break W}h=H[b+(a<<2)>>2]}H[o>>2]=h;H[w>>2]=f;break U;case 0:if((c|0)==(f|0)){break C}a=c-4|0;p=H[a>>2];H[n+68>>2]=a;o=H[n+44>>2];_:{if(!o){c=a;break _}A=H[n+40>>2];s=Qj(o)>>>0>1;b=i&o+2147483647;$:{if(!s){break $}b=i;if(b>>>0>>0){break $}b=(i>>>0)%(o>>>0)|0}h=b;b=H[A+(h<<2)>>2];if(!b){c=a;break _}k=H[b>>2];if(!k){c=a;break _}aa:{if(!s){b=o-1|0;while(1){o=H[k+4>>2];ba:{if((o|0)!=(i|0)){if((h|0)==(b&o)){break ba}c=a;break _}if((i|0)==H[k+8>>2]){break aa}}k=H[k>>2];if(k){continue}break}c=a;break _}while(1){b=H[k+4>>2];ca:{if((b|0)!=(i|0)){if(b>>>0>=o>>>0){b=(b>>>0)%(o>>>0)|0}if((b|0)==(h|0)){break ca}c=a;break _}if((i|0)==H[k+8>>2]){break aa}}k=H[k>>2];if(k){continue}break}c=a;break _}if((a|0)!=(u|0)){H[a>>2]=H[k+12>>2];H[n+68>>2]=c;break _}a=u-f|0;b=a>>2;c=b+1|0;if(c>>>0>=1073741824){break b}g=a>>1;c=a>>>0>=2147483644?1073741823:c>>>0>>0?g:c;if(c){if(c>>>0>=1073741824){break B}g=sa(c<<2)}else{g=0}b=g+(b<<2)|0;H[b>>2]=H[k+12>>2];u=(c<<2)+g|0;c=b+4|0;if((a|0)>0){ta(g,f,a)}H[n+72>>2]=u;H[n+68>>2]=c;H[n+64>>2]=g;if(!f){break _}ra(f)}if((c|0)==(g|0)){break O}z=c-4|0;a=H[z>>2];if((a|0)==(p|0)){break O}b=(a|0)==-1;o=H[j+8>>2];if(!b&H[H[o+12>>2]+(a<<2)>>2]!=-1){break O}w=H[o+12>>2];if((p|0)!=-1&H[w+(p<<2)>>2]!=-1){break O}s=N(i,3);k=s+2|0;H[w+(a<<2)>>2]=k;i=k<<2;H[i+w>>2]=a;f=s+1|0;H[w+(p<<2)>>2]=f;A=f<<2;H[A+w>>2]=p;if(b){break S}if((a>>>0)%3|0){b=a-1|0;break R}b=a+2|0;if((b|0)!=-1){break R}h=H[o>>2];f=-1;break Q;case 6:break V;default:break C}}h=H[j+8>>2];Na(h+24|0,11424);b=H[j+8>>2];a=N(i,3);k=H[h+28>>2];p=H[h+24>>2];o=k-p|0;h=o>>2;s=h-1|0;H[H[b>>2]+(a<<2)>>2]=s;Na(b+24|0,11424);w=a+1|0;H[H[b>>2]+(w<<2)>>2]=(H[b+28>>2]-H[b+24>>2]>>2)-1;b=H[j+8>>2];Na(b+24|0,11424);z=a+2|0;H[H[b>>2]+(z<<2)>>2]=(H[b+28>>2]-H[b+24>>2]>>2)-1;A=H[j+8>>2];b=H[A+24>>2];if(H[A+28>>2]-b>>2>(L|0)){break C}da:{ea:{if((k|0)!=(p|0)){H[b+(s<<2)>>2]=a;p=0;if((o|0)==-4){break ea}}H[b+(h<<2)>>2]=w;p=h+1|0;if((p|0)==-1){break da}}H[b+(p<<2)>>2]=z}if((c|0)!=(u|0)){H[c>>2]=a;c=c+4|0;H[n+68>>2]=c;break T}b=c-f|0;h=b>>2;c=h+1|0;if(c>>>0>=1073741824){break b}g=b>>1;c=b>>>0>=2147483644?1073741823:c>>>0>>0?g:c;if(c){if(c>>>0>=1073741824){break B}g=sa(c<<2)}else{g=0}h=g+(h<<2)|0;H[h>>2]=a;u=(c<<2)+g|0;c=h+4|0;if((b|0)>0){ta(g,f,b)}H[n+72>>2]=u;H[n+68>>2]=c;H[n+64>>2]=g;if(!f){break U}ra(f)}f=g}Ae(r,H[c-4>>2]);a=H[j+40>>2];if((a|0)==H[j+36>>2]){break H}b=a-12|0;h=H[b+4>>2];i=(i^-1)+q|0;if(h>>>0>i>>>0){break O}if((h|0)!=(i|0)){break H}k=I[a-4|0];h=H[b>>2];H[j+40>>2]=b;if((h|0)<0){break O}p=c-4|0;a=H[p>>2];H[n+20>>2]=(h^-1)+q;b=n+20|0;H[n+88>>2]=b;Ib(n,n+40|0,b,n+88|0);h=H[n>>2];fa:{if(k&1){b=-1;if((a|0)==-1){break fa}b=a+1|0;b=(b>>>0)%3|0?b:a-2|0;break fa}b=-1;if((a|0)==-1){break fa}b=a-1|0;if((a>>>0)%3|0){break fa}b=a+2|0}H[h+12>>2]=b;b=H[j+40>>2];if((b|0)==H[j+36>>2]){break H}while(1){a=b-12|0;h=H[a+4>>2];if(h>>>0>i>>>0){break O}if((h|0)!=(i|0)){break H}h=I[b-4|0];b=H[a>>2];H[j+40>>2]=a;if((b|0)<0){break O}a=H[p>>2];H[n+20>>2]=(b^-1)+q;b=n+20|0;H[n+88>>2]=b;Ib(n,n+40|0,b,n+88|0);o=H[n>>2];ga:{if(h&1){b=-1;if((a|0)==-1){break ga}b=a+1|0;b=(b>>>0)%3|0?b:a-2|0;break ga}b=-1;if((a|0)==-1){break ga}b=a-1|0;if((a>>>0)%3|0){break ga}b=a+2|0}H[o+12>>2]=b;b=H[j+40>>2];if((b|0)!=H[j+36>>2]){continue}break}break H}f=-1;h=H[o>>2];H[h+(s<<2)>>2]=-1;b=-1;break P}h=H[o>>2];f=H[h+(b<<2)>>2]}H[(s<<2)+h>>2]=f;b=a+1|0;a=(b>>>0)%3|0?b:a-2|0;b=-1;if((a|0)==-1){break P}b=H[(a<<2)+h>>2]}H[h+A>>2]=b;ha:{if((p|0)==-1){H[h+i>>2]=-1;k=-1;a=-1;break ha}ia:{ja:{ka:{if((p>>>0)%3|0){b=p-1|0;break ka}b=p+2|0;if((b|0)==-1){break ja}}a=H[(b<<2)+h>>2];H[h+i>>2]=a;if((a|0)==-1){break ia}H[H[o+24>>2]+(a<<2)>>2]=k;break ia}H[h+i>>2]=-1}k=-1;b=p+1|0;b=(b>>>0)%3|0?b:p-2|0;a=-1;if((b|0)==-1){break ha}k=H[(b<<2)+h>>2];a=b}b=H[j+388>>2];i=f<<2;p=b+i|0;A=b;b=k<<2;H[p>>2]=H[p>>2]+H[A+b>>2];A=b;b=H[o+24>>2];p=A+b|0;if((f|0)!=-1){H[b+i>>2]=H[p>>2]}b=a;while(1){if((b|0)==-1){break N}H[(b<<2)+h>>2]=f;o=b+1|0;b=(o>>>0)%3|0?o:b-2|0;i=-1;la:{if((b|0)==-1){break la}b=H[w+(b<<2)>>2];i=-1;if((b|0)==-1){break la}i=b+1|0;i=(i>>>0)%3|0?i:b-2|0}b=i;if((a|0)!=(b|0)){continue}break}}if(!D){break D}break C}H[p>>2]=-1;ma:{if(P){break ma}if((y|0)!=(M|0)){H[y>>2]=k;y=y+4|0;H[n+28>>2]=y;break ma}b=M-d|0;i=b>>2;a=i+1|0;if(a>>>0>=1073741824){break b}f=b>>1;f=b>>>0>=2147483644?1073741823:a>>>0>>0?f:a;if(f){if(f>>>0>=1073741824){break B}a=sa(f<<2)}else{a=0}i=a+(i<<2)|0;H[i>>2]=k;M=a+(f<<2)|0;y=i+4|0;if((b|0)>0){ta(a,d,b)}H[n+32>>2]=M;H[n+28>>2]=y;H[n+24>>2]=a;if(d){ra(d)}d=a}H[z>>2]=s}Ae(r,s);f=g}D=(l|0)<(q|0);if((l|0)!=(q|0)){continue}break}l=q}m=-1;f=H[j+8>>2];if(H[f+28>>2]-H[f+24>>2]>>2>(L|0)){break C}if((c|0)!=(g|0)){s=j+72|0;f=j+60|0;w=j+312|0;while(1){c=c-4|0;q=H[c>>2];H[n+68>>2]=c;na:{oa:{pa:{if(J[j+270>>1]<=513){if(!I[j+364|0]){break oa}a=H[j+360>>2];b=H[j+352>>2]+(a>>>3|0)|0;if(b>>>0>=K[j+356>>2]){break pa}b=I[b|0];H[j+360>>2]=a+1;if(!(b>>>(a&7)&1)){break pa}break oa}if(Da(w)){break oa}}k=H[j+64>>2];a=H[j+68>>2];if((k|0)==a<<5){if((k+1|0)<0){break b}if(k>>>0<=1073741822){a=a<<6;b=(k&-32)+32|0;a=a>>>0>b>>>0?a:b}else{a=2147483647}tb(f,a);k=H[j+64>>2]}H[j+64>>2]=k+1;a=H[j+60>>2]+(k>>>3&536870908)|0;b=H[a>>2];Q=a,R=Rj(k)&b,H[Q>>2]=R;a=H[j+76>>2];if((a|0)!=H[j+80>>2]){H[a>>2]=q;H[j+76>>2]=a+4;break na}i=H[s>>2];b=a-i|0;k=b>>2;a=k+1|0;if(a>>>0<1073741824){h=b>>1;h=b>>>0>=2147483644?1073741823:a>>>0>>0?h:a;if(h){if(h>>>0>=1073741824){break B}a=sa(h<<2)}else{a=0}k=a+(k<<2)|0;H[k>>2]=q;if((b|0)>0){ta(a,i,b)}H[j+80>>2]=a+(h<<2);H[j+76>>2]=k+4;H[j+72>>2]=a;if(!i){break na}ra(i);break na}break b}o=H[j+8>>2];r=H[o>>2];if(((H[o+4>>2]-r>>2>>>0)/3|0)<=(l|0)){break C}a=-1;u=H[o+24>>2];i=-1;qa:{if((q|0)==-1){break qa}h=q+1|0;h=(h>>>0)%3|0?h:q-2|0;i=-1;if((h|0)==-1){break qa}i=H[r+(h<<2)>>2]}b=H[u+(i<<2)>>2];ra:{if((b|0)==-1){p=1;h=-1;break ra}p=1;h=-1;k=b+1|0;b=(k>>>0)%3|0?k:b-2|0;if((b|0)==-1){break ra}p=0;a=b+1|0;a=(a>>>0)%3|0?a:b-2|0;if((a|0)!=-1){h=H[r+(a<<2)>>2]}a=b}k=-1;b=H[u+(h<<2)>>2];if((b|0)!=-1){k=b+1|0;k=(k>>>0)%3|0?k:b-2|0}if((a|0)==(q|0)|(k|0)==(q|0)|(a|0)==(k|0)){break C}if(!((q|0)==-1|H[H[o+12>>2]+(q<<2)>>2]==-1)|!(H[H[o+12>>2]+(a<<2)>>2]==-1|p)){break C}p=-1;b=H[o+12>>2];o=-1;sa:{if((k|0)==-1){break sa}if(H[b+(k<<2)>>2]!=-1){break C}u=k+1|0;u=(u>>>0)%3|0?u:k-2|0;o=-1;if((u|0)==-1){break sa}o=H[r+(u<<2)>>2]}u=N(l,3);H[n>>2]=u;H[b+(u<<2)>>2]=q;H[b+(q<<2)>>2]=u;q=H[n>>2]+1|0;H[b+(q<<2)>>2]=a;H[b+(a<<2)>>2]=q;a=H[n>>2]+2|0;H[b+(a<<2)>>2]=k;H[b+(k<<2)>>2]=a;a=H[n>>2];H[r+(a<<2)>>2]=h;b=a+1|0;q=r+(b<<2)|0;H[q>>2]=o;k=a+2|0;r=r+(k<<2)|0;H[r>>2]=i;a=H[j+120>>2];i=b?h:-1;h=a+(i>>>3&536870908)|0;o=H[h>>2];Q=h,R=Rj(i)&o,H[Q>>2]=R;p=(b|0)!=-1?H[q>>2]:p;b=a+(p>>>3&536870908)|0;i=H[b>>2];Q=b,R=Rj(p)&i,H[Q>>2]=R;b=-1;b=(k|0)!=-1?H[r>>2]:b;a=a+(b>>>3&536870908)|0;i=H[a>>2];Q=a,R=Rj(b)&i,H[Q>>2]=R;F[n+88|0]=1;Yc(f,n+88|0);Na(s,n);l=l+1|0}if((c|0)!=(g|0)){continue}break}f=H[j+8>>2]}if(((H[f+4>>2]-H[f>>2]>>2>>>0)/3|0)!=(l|0)){break C}m=H[f+28>>2]-H[f+24>>2]>>2;if((d|0)==(y|0)){d=y;break C}a=d;while(1){i=H[a>>2];l=H[f+24>>2];b=m-1|0;c=l+(b<<2)|0;if(H[c>>2]==-1){while(1){b=m-2|0;m=m-1|0;c=l+(b<<2)|0;if(H[c>>2]==-1){continue}break}}if(b>>>0>=i>>>0){H[n>>2]=f;c=H[c>>2];F[n+12|0]=1;H[n+8>>2]=c;H[n+4>>2]=c;if((c|0)!=-1){while(1){c=H[H[j+8>>2]>>2]+(c<<2)|0;if(H[c>>2]!=(b|0)){m=-1;break C}H[c>>2]=i;vc(n);c=H[n+8>>2];if((c|0)!=-1){continue}break}f=H[j+8>>2]}l=H[f+24>>2];c=l+(b<<2)|0;if((i|0)!=-1){H[l+(i<<2)>>2]=H[c>>2]}H[c>>2]=-1;c=1<>2];i=l+(i>>>3&536870908)|0;l=l+(b>>>3&536870908)|0;b=1<>2]&b){c=c|H[i>>2]}else{c=H[i>>2]&(c^-1)}H[i>>2]=c;H[l>>2]=H[l>>2]&(b^-1);m=m-1|0}a=a+4|0;if((y|0)!=(a|0)){continue}break}}if(d){ra(d)}a=H[n+48>>2];if(a){while(1){c=H[a>>2];ra(a);a=c;if(a){continue}break}}a=H[n+40>>2];H[n+40>>2]=0;if(a){ra(a)}if(g){H[n+68>>2]=g;ra(g)}fa=n+96|0;a=m;break A}za();v()}g=a;if((a|0)==-1){break z}a=H[E+16>>2];c=a+H[E>>2]|0;d=H[E+8>>2];d=d-a|0;a=H[H[j+4>>2]+32>>2];G[a+38>>1]=J[a+38>>1];H[a>>2]=c;H[a+16>>2]=0;H[a+20>>2]=0;H[a+8>>2]=d;H[a+12>>2]=0;a=H[j+4>>2];c=J[a+36>>1];b=c<<8|c>>>8;if((b&65535)>>>0<=513){a=H[a+32>>2];d=O+H[a+20>>2]|0;c=B+H[a+16>>2]|0;d=c>>>0>>0?d+1|0:d;H[a+16>>2]=c;H[a+20>>2]=d}ta:{if(H[j+216>>2]==H[j+220>>2]){break ta}c=H[j+8>>2];a=H[c>>2];c=H[c+4>>2];ua:{if((b&65535)>>>0>=513){if((a|0)==(c|0)){break ta}c=0;break ua}if((a|0)==(c|0)){break ta}c=0;while(1){if(ad(j,c)){c=c+3|0;a=H[j+8>>2];if(c>>>0>2]-H[a>>2]>>2>>>0){continue}break ta}break}break z}while(1){if($c(j,c)){c=c+3|0;a=H[j+8>>2];if(c>>>0>2]-H[a>>2]>>2>>>0){continue}break ta}break}break z}_c(e);c=H[j+216>>2];if((c|0)!=H[j+220>>2]){q=0;while(1){d=N(q,144);Ic((d+c|0)+4|0,H[j+8>>2]);a=H[C>>2];b=a+d|0;c=H[b+132>>2];b=H[b+136>>2];if((c|0)!=(b|0)){while(1){Gc((d+H[C>>2]|0)+4|0,H[c>>2]);c=c+4|0;if((b|0)!=(c|0)){continue}break}a=H[C>>2]}if(!Hc((a+d|0)+4|0)){break z}q=q+1|0;c=H[j+216>>2];if(q>>>0<(H[j+220>>2]-c|0)/144>>>0){continue}break}}a=H[j+8>>2];Jb(j+184|0,H[a+28>>2]-H[a+24>>2]>>2);x=H[j+216>>2];if((x|0)!=H[j+220>>2]){c=0;while(1){a=N(c,144)+x|0;d=H[a+60>>2]-H[a+56>>2]>>2;b=a+104|0;a=H[j+8>>2];a=H[a+28>>2]-H[a+24>>2]>>2;Jb(b,(a|0)<(d|0)?d:a);c=c+1|0;x=H[j+216>>2];if(c>>>0<(H[j+220>>2]-x|0)/144>>>0){continue}break}}x=Zc(j,g)}break c}x=0}fa=t- -64|0;return x|0}va();v()}function hi(a){a=a|0;var b=0,c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,L=0,M=0,O=0,P=0,Q=0,R=0,S=0,T=0;t=fa+-64|0;fa=t;H[a+132>>2]=0;if(H[a+148>>2]){c=H[a+144>>2];if(c){while(1){d=H[c>>2];ra(c);c=d;if(c){continue}break}}c=0;H[a+144>>2]=0;o=H[a+140>>2];a:{if(!o){break a}if(o>>>0>=4){d=o&-4;while(1){h=c<<2;H[h+H[a+136>>2]>>2]=0;H[H[a+136>>2]+(h|4)>>2]=0;H[H[a+136>>2]+(h|8)>>2]=0;H[H[a+136>>2]+(h|12)>>2]=0;c=c+4|0;b=b+4|0;if((d|0)!=(b|0)){continue}break}}d=o&3;if(!d){break a}while(1){H[H[a+136>>2]+(c<<2)>>2]=0;c=c+1|0;z=z+1|0;if((d|0)!=(z|0)){continue}break}}H[a+148>>2]=0}b:{c:{c=H[a+4>>2];z=I[c+36|0];d=z<<8|I[c+37|0];if(d>>>0<=513){j=H[c+32>>2];d:{if(d>>>0<=511){d=H[j+20>>2];b=H[j+16>>2];h=b+4|0;d=h>>>0<4?d+1|0:d;o=h;h=H[j+12>>2];if(o>>>0>K[j+8>>2]&(h|0)<=(d|0)|(d|0)>(h|0)){break c}h=b+H[j>>2]|0;b=I[h|0]|I[h+1|0]<<8|(I[h+2|0]<<16|I[h+3|0]<<24);H[j+16>>2]=o;H[j+20>>2]=d;break d}if(!Ga(1,t,j)){break c}c=H[a+4>>2];z=I[c+36|0];b=H[t>>2]}H[a+132>>2]=b}j=H[c+32>>2];e:{f:{g:{if((z&255)>>>0<=1){z=0;d=H[j+20>>2];o=H[j+16>>2];h=o+4|0;d=h>>>0<4?d+1|0:d;b=h;h=H[j+12>>2];if(b>>>0>K[j+8>>2]&(h|0)<=(d|0)|(d|0)>(h|0)){break b}h=o+H[j>>2]|0;h=I[h|0]|I[h+1|0]<<8|(I[h+2|0]<<16|I[h+3|0]<<24);H[t+60>>2]=h;H[j+16>>2]=b;H[j+20>>2]=d;H[a+156>>2]=h;p=a+156|0;break g}z=0;if(!Ga(1,t+60|0,j)){break b}c=H[a+4>>2];d=I[c+36|0];H[a+156>>2]=H[t+60>>2];p=a+156|0;if(d>>>0>1){break f}}o=H[c+32>>2];c=H[o+8>>2];b=H[o+12>>2];e=c;c=H[o+20>>2];h=H[o+16>>2];d=h+4|0;c=d>>>0<4?c+1|0:c;if(e>>>0>>0&(c|0)>=(b|0)|(c|0)>(b|0)){break b}h=h+H[o>>2]|0;b=I[h|0]|I[h+1|0]<<8|(I[h+2|0]<<16|I[h+3|0]<<24);H[t+56>>2]=b;H[o+16>>2]=d;H[o+20>>2]=c;break e}if(!Ga(1,t+56|0,H[c+32>>2])){break b}b=H[t+56>>2]}if(b>>>0>1431655765|K[p>>2]>N(b,3)>>>0){break b}i=H[a+4>>2];d=H[i+32>>2];e=H[d+8>>2];h=H[d+12>>2];c=H[d+20>>2];f=H[d+16>>2];if((h|0)<=(c|0)&f>>>0>=e>>>0|(c|0)>(h|0)){break b}k=H[d>>2];g=I[k+f|0];j=f+1|0;o=j?c:c+1|0;H[d+16>>2]=j;H[d+20>>2]=o;h:{if(I[i+36|0]<=1){o=f+5|0;c=o>>>0<5?c+1|0:c;if(o>>>0>e>>>0&(c|0)>=(h|0)|(c|0)>(h|0)){break b}h=j+k|0;p=I[h|0]|I[h+1|0]<<8|(I[h+2|0]<<16|I[h+3|0]<<24);H[t+52>>2]=p;H[d+16>>2]=o;H[d+20>>2]=c;break h}if(!Ga(1,t+52|0,d)){break b}p=H[t+52>>2]}if(b>>>0

>>0|((p>>>0)/3|0)+p>>>0>>0){break b}c=H[a+4>>2];j=H[c+32>>2];i:{if(I[c+36|0]<=1){c=H[j+20>>2];h=H[j+16>>2];d=h+4|0;c=d>>>0<4?c+1|0:c;o=d;d=H[j+12>>2];if(o>>>0>K[j+8>>2]&(d|0)<=(c|0)|(c|0)>(d|0)){break b}d=h+H[j>>2]|0;h=I[d|0]|I[d+1|0]<<8|(I[d+2|0]<<16|I[d+3|0]<<24);H[t+48>>2]=h;H[j+16>>2]=o;H[j+20>>2]=c;break i}if(!Ga(1,t+48|0,j)){break b}h=H[t+48>>2]}if(h>>>0>p>>>0){break b}H[a+28>>2]=H[a+24>>2];c=ac(sa(88));d=H[a+8>>2];H[a+8>>2]=c;if(d){fb(d);if(!H[a+8>>2]){break b}}H[a+164>>2]=H[a+160>>2];Lb(a+160|0,b);H[a+176>>2]=H[a+172>>2];Lb(a+172|0,b);H[a- -64>>2]=0;H[a+92>>2]=-1;H[a+84>>2]=-1;H[a+88>>2]=-1;H[a+40>>2]=H[a+36>>2];H[a+52>>2]=H[a+48>>2];H[a+76>>2]=H[a+72>>2];E=a+216|0;cd(E);bd(E,g);if(!Kc(H[a+8>>2],b,H[a+156>>2]+h|0)){break b}c=H[a+156>>2];F[t|0]=1;Ra(a+120|0,c+h|0,t);d=H[a+4>>2];c=J[d+36>>1];c=(c<<8|c>>>8)&65535;j:{if(c>>>0<=513){j=H[d+32>>2];k:{if(c>>>0<=511){d=H[j+20>>2];b=H[j+16>>2];c=b+4|0;d=c>>>0<4?d+1|0:d;o=c;c=H[j+12>>2];if(o>>>0>K[j+8>>2]&(c|0)<=(d|0)|(c|0)<(d|0)){break b}c=b+H[j>>2]|0;b=I[c|0]|I[c+1|0]<<8|(I[c+2|0]<<16|I[c+3|0]<<24);H[j+16>>2]=o;H[j+20>>2]=d;break k}if(!Ga(1,t+44|0,j)){break b}b=H[t+44>>2]}if(!b){break b}j=H[H[a+4>>2]+32>>2];o=H[j+8>>2];c=H[j+16>>2];d=o-c|0;c=H[j+12>>2]-(H[j+20>>2]+(c>>>0>o>>>0)|0)|0;if((c|0)<=0&b>>>0>d>>>0|(c|0)<0){break b}d=Ka(t);k=H[H[a+4>>2]+32>>2];c=H[k+16>>2];j=(c+H[k>>2]|0)+b|0;o=H[k+8>>2];c=(o-c|0)-b|0;G[d+38>>1]=J[k+38>>1];H[d>>2]=j;H[d+16>>2]=0;H[d+20>>2]=0;H[d+8>>2]=c;H[d+12>>2]=0;o=Kb(a,d);if((o|0)==-1){break b}P=o>>31;break j}o=-1;P=-1;if((Kb(a,H[d+32>>2])|0)==-1){break b}}C=a+232|0;Ce(C,a);H[a+372>>2]=g;H[a+384>>2]=H[a+156>>2]+h;Q=Ka(t);k=Q;e=0;j=fa-16|0;fa=j;l:{if(!Ee(C,k)){break l}d=H[k+20>>2];b=H[k+16>>2];c=b+4|0;d=c>>>0<4?d+1|0:d;h=c;c=H[k+12>>2];if(h>>>0>K[k+8>>2]&(c|0)<=(d|0)|(c|0)<(d|0)){break l}c=b+H[k>>2]|0;c=I[c|0]|I[c+1|0]<<8|(I[c+2|0]<<16|I[c+3|0]<<24);H[k+16>>2]=h;H[k+20>>2]=d;if((c|0)<0){break l}h=H[C+152>>2];if((h|0)<=(c|0)){break l}H[j+12>>2]=0;c=H[C+156>>2];d=H[C+160>>2]-c>>2;m:{if(d>>>0>>0){Ia(C+156|0,h-d|0,j+12|0);break m}if(d>>>0<=h>>>0){break m}H[C+160>>2]=c+(h<<2)}e=wa(C+168|0,k)}fa=j+16|0;n:{if(!e){break n}e=0;c=0;d=0;h=0;j=0;l=fa-96|0;fa=l;H[l+72>>2]=0;H[l+64>>2]=0;H[l+68>>2]=0;H[l+48>>2]=0;H[l+52>>2]=0;H[l+40>>2]=0;H[l+44>>2]=0;H[l+56>>2]=1065353216;H[l+32>>2]=0;H[l+24>>2]=0;H[l+28>>2]=0;i=a;M=H[a+124>>2];o:{p:{q:{r:{s:{if((p|0)<=0){break s}L=i+400|0;R=i+232|0;y=H[i+216>>2]!=H[i+220>>2];B=1;while(1){k=j;j=j+1|0;t:{u:{v:{w:{x:{if(H[i+420>>2]!=-1){if(Da(L)){break x}}if(!I[i+308|0]){break w}y:{m=H[i+296>>2];s=H[i+304>>2];a=m+(s>>>3|0)|0;w=H[i+300>>2];if(a>>>0>=w>>>0){break y}b=I[a|0];a=s+1|0;H[i+304>>2]=a;g=b>>>(s&7)&1;if(!g){break y}n=a>>>3|0;b=m+n|0;z:{if(b>>>0>=w>>>0){b=a;a=0;break z}f=I[b|0];b=s+2|0;H[i+304>>2]=b;n=b>>>3|0;a=f>>>(a&7)&1}f=n+m|0;if(f>>>0>>0){f=I[f|0];H[i+304>>2]=b+1;b=f>>>(b&7)<<1&2}else{b=0}b=(a|b)<<1|g;H[i+416>>2]=b;break v}H[i+416>>2]=0;break w}b=H[i+420>>2];H[i+416>>2]=b;if(b){break v}}if((c|0)==(d|0)){w=-1;break r}e=-1;B=H[i+8>>2];s=H[B+24>>2];m=c-4|0;n=H[m>>2];g=-1;A:{if((n|0)==-1){break A}b=n+1|0;b=(b>>>0)%3|0?b:n-2|0;g=-1;if((b|0)==-1){break A}g=H[H[B>>2]+(b<<2)>>2]}b=H[s+(g<<2)>>2];if((b|0)!=-1){a=b+1|0;e=(a>>>0)%3|0?a:b-2|0}if((e|0)==(n|0)){w=-1;break r}if((n|0)!=-1){w=-1;if(H[H[B+12>>2]+(n<<2)>>2]!=-1){break r}}b=H[B+12>>2];if((e|0)!=-1){w=-1;if(H[b+(e<<2)>>2]!=-1){break r}}u=N(k,3);a=u+1|0;H[b+(n<<2)>>2]=a;f=a<<2;H[f+b>>2]=n;r=u+2|0;H[b+(e<<2)>>2]=r;k=r<<2;H[k+b>>2]=e;x=-1;a=-1;B:{if((n|0)==-1){break B}C:{if((n>>>0)%3|0){b=n-1|0;break C}b=n+2|0;a=-1;if((b|0)==-1){break B}}a=H[H[B>>2]+(b<<2)>>2]}D:{if((e|0)==-1){break D}b=e+1|0;b=(b>>>0)%3|0?b:e-2|0;if((b|0)==-1){break D}x=H[H[B>>2]+(b<<2)>>2]}w=-1;if((a|0)==(g|0)|(g|0)==(x|0)){break r}b=H[B>>2];H[b+(u<<2)>>2]=g;H[b+f>>2]=x;H[b+k>>2]=a;if((a|0)!=-1){H[s+(a<<2)>>2]=r}b=H[i+120>>2]+(g>>>3&536870908)|0;a=H[b>>2];S=b,T=Rj(g)&a,H[S>>2]=T;H[m>>2]=u;e=H[c-4>>2];break u}w=-1;E:{F:{G:{H:{I:{J:{K:{L:{M:{N:{O:{switch(b-1|0){case 2:case 4:if((c|0)==(d|0)){break r}g=c-4|0;q=H[g>>2];r=H[i+8>>2];e=H[r+12>>2];if(!((q|0)==-1|H[e+(q<<2)>>2]==-1)){break r}u=N(k,3);m=(b|0)==5;f=u+(m?2:1)|0;a=f<<2;H[a+e>>2]=q;H[e+(q<<2)>>2]=f;Na(r+24|0,11424);b=H[i+8>>2];s=H[b+24>>2];if(H[b+28>>2]-s>>2>(M|0)){break r}n=H[b>>2];x=n+a|0;e=H[r+28>>2];b=H[r+24>>2];a=(e-b>>2)-1|0;H[x>>2]=a;if((b|0)!=(e|0)){H[s+(a<<2)>>2]=f}f=m?u:u+2|0;m=n+(m+u<<2)|0;P:{if((q|0)==-1){H[n+(f<<2)>>2]=-1;b=-1;break P}Q:{R:{S:{if((q>>>0)%3|0){e=q-1|0;break S}e=q+2|0;if((e|0)==-1){break R}}a=H[n+(e<<2)>>2];H[n+(f<<2)>>2]=a;if((a|0)==-1){break Q}H[s+(a<<2)>>2]=f;break Q}H[n+(f<<2)>>2]=-1}a=q+1|0;a=(a>>>0)%3|0?a:q-2|0;b=-1;if((a|0)==-1){break P}b=H[n+(a<<2)>>2]}H[m>>2]=b;H[g>>2]=u;break N;case 0:if((c|0)==(e|0)){break r}a=c-4|0;q=H[a>>2];H[l+68>>2]=a;m=H[l+44>>2];T:{if(!m){c=a;break T}s=H[l+40>>2];g=Qj(m)>>>0>1;b=k&m+2147483647;U:{if(!g){break U}b=k;if(b>>>0>>0){break U}b=(k>>>0)%(m>>>0)|0}f=b;b=H[s+(f<<2)>>2];if(!b){c=a;break T}b=H[b>>2];if(!b){c=a;break T}V:{if(!g){m=m-1|0;while(1){g=H[b+4>>2];W:{if((g|0)!=(k|0)){if((f|0)==(g&m)){break W}c=a;break T}if((k|0)==H[b+8>>2]){break V}}b=H[b>>2];if(b){continue}break}c=a;break T}while(1){g=H[b+4>>2];X:{if((g|0)!=(k|0)){if(g>>>0>=m>>>0){g=(g>>>0)%(m>>>0)|0}if((f|0)==(g|0)){break X}c=a;break T}if((k|0)==H[b+8>>2]){break V}}b=H[b>>2];if(b){continue}break}c=a;break T}if((a|0)!=(A|0)){H[a>>2]=H[b+12>>2];H[l+68>>2]=c;break T}f=A-e|0;c=f>>2;d=c+1|0;if(d>>>0>=1073741824){break L}a=f>>1;g=f>>>0>=2147483644?1073741823:a>>>0>d>>>0?a:d;if(g){if(g>>>0>=1073741824){break p}d=sa(g<<2)}else{d=0}a=d+(c<<2)|0;H[a>>2]=H[b+12>>2];A=(g<<2)+d|0;c=a+4|0;if((f|0)>0){ta(d,e,f)}H[l+72>>2]=A;H[l+68>>2]=c;H[l+64>>2]=d;if(!e){break T}ra(e)}if((c|0)==(d|0)){break F}m=c-4|0;n=H[m>>2];if((n|0)==(q|0)){break F}g=(n|0)==-1;u=H[i+8>>2];if(!g&H[H[u+12>>2]+(n<<2)>>2]!=-1){break F}r=H[u+12>>2];if((q|0)!=-1&H[r+(q<<2)>>2]!=-1){break F}e=N(k,3);k=e+2|0;H[r+(n<<2)>>2]=k;s=k<<2;H[s+r>>2]=n;a=e+1|0;H[r+(q<<2)>>2]=a;b=a<<2;H[b+r>>2]=q;if(g){break K}if((n>>>0)%3|0){g=n-1|0;break I}g=n+2|0;if((g|0)!=-1){break I}x=H[u>>2];a=-1;break H;case 6:break O;default:break r}}a=H[i+8>>2];Na(a+24|0,11424);b=H[i+8>>2];q=N(k,3);r=H[a+28>>2];s=H[a+24>>2];m=r-s|0;u=m>>2;g=u-1|0;H[H[b>>2]+(q<<2)>>2]=g;Na(b+24|0,11424);f=q+1|0;H[H[b>>2]+(f<<2)>>2]=(H[b+28>>2]-H[b+24>>2]>>2)-1;a=H[i+8>>2];Na(a+24|0,11424);b=q+2|0;H[H[a>>2]+(b<<2)>>2]=(H[a+28>>2]-H[a+24>>2]>>2)-1;a=H[i+8>>2];n=H[a+24>>2];if(H[a+28>>2]-n>>2>(M|0)){break r}Y:{Z:{if((r|0)!=(s|0)){H[n+(g<<2)>>2]=q;g=0;if((m|0)==-4){break Z}}H[n+(u<<2)>>2]=f;g=u+1|0;if((g|0)==-1){break Y}}H[n+(g<<2)>>2]=b}if((c|0)!=(A|0)){H[c>>2]=q;c=c+4|0;H[l+68>>2]=c;break M}g=c-e|0;c=g>>2;d=c+1|0;if(d>>>0>=1073741824){break J}a=g>>1;b=g>>>0>=2147483644?1073741823:a>>>0>d>>>0?a:d;if(b){if(b>>>0>=1073741824){break p}d=sa(b<<2)}else{d=0}a=d+(c<<2)|0;H[a>>2]=q;A=(b<<2)+d|0;c=a+4|0;if((g|0)>0){ta(d,e,g)}H[l+72>>2]=A;H[l+68>>2]=c;H[l+64>>2]=d;if(!e){break N}ra(e)}e=d}Be(R,H[c-4>>2]);g=H[i+40>>2];if((g|0)==H[i+36>>2]){break t}b=g-12|0;a=H[b+4>>2];m=(k^-1)+p|0;if(a>>>0>m>>>0){break F}if((a|0)!=(m|0)){break t}k=I[g-4|0];a=H[b>>2];H[i+40>>2]=b;if((a|0)<0){break F}g=c-4|0;f=H[g>>2];H[l+20>>2]=(a^-1)+p;a=l+20|0;H[l+88>>2]=a;Ib(l,l+40|0,a,l+88|0);b=H[l>>2];_:{if(k&1){a=-1;if((f|0)==-1){break _}a=f+1|0;a=(a>>>0)%3|0?a:f-2|0;break _}a=-1;if((f|0)==-1){break _}a=f-1|0;if((f>>>0)%3|0){break _}a=f+2|0}H[b+12>>2]=a;b=H[i+40>>2];if((b|0)==H[i+36>>2]){break t}while(1){f=b-12|0;a=H[f+4>>2];if(a>>>0>m>>>0){break F}if((a|0)!=(m|0)){break t}k=I[b-4|0];a=H[f>>2];H[i+40>>2]=f;if((a|0)<0){break F}f=H[g>>2];H[l+20>>2]=(a^-1)+p;a=l+20|0;H[l+88>>2]=a;Ib(l,l+40|0,a,l+88|0);b=H[l>>2];$:{if(k&1){a=-1;if((f|0)==-1){break $}a=f+1|0;a=(a>>>0)%3|0?a:f-2|0;break $}a=-1;if((f|0)==-1){break $}a=f-1|0;if((f>>>0)%3|0){break $}a=f+2|0}H[b+12>>2]=a;b=H[i+40>>2];if((b|0)!=H[i+36>>2]){continue}break}break t}va();v()}g=-1;x=H[u>>2];H[x+(e<<2)>>2]=-1;f=-1;break G}va();v()}x=H[u>>2];a=H[x+(g<<2)>>2]}g=a;H[(e<<2)+x>>2]=a;a=n+1|0;a=(a>>>0)%3|0?a:n-2|0;f=-1;if((a|0)==-1){break G}f=H[(a<<2)+x>>2]}H[b+x>>2]=f;aa:{if((q|0)==-1){H[s+x>>2]=-1;n=-1;a=-1;break aa}ba:{ca:{da:{if((q>>>0)%3|0){b=q-1|0;break da}b=q+2|0;if((b|0)==-1){break ca}}a=H[(b<<2)+x>>2];H[s+x>>2]=a;if((a|0)==-1){break ba}H[H[u+24>>2]+(a<<2)>>2]=k;break ba}H[s+x>>2]=-1}n=-1;b=q+1|0;b=(b>>>0)%3|0?b:q-2|0;a=-1;if((b|0)==-1){break aa}n=H[(b<<2)+x>>2];a=b}f=H[i+388>>2];k=g<<2;b=f+k|0;s=b;q=H[b>>2];b=n<<2;H[s>>2]=q+H[b+f>>2];f=b;b=H[u+24>>2];s=f+b|0;if((g|0)!=-1){H[b+k>>2]=H[s>>2]}b=a;while(1){if((b|0)==-1){break E}H[(b<<2)+x>>2]=g;f=b+1|0;b=(f>>>0)%3|0?f:b-2|0;k=-1;ea:{if((b|0)==-1){break ea}f=H[r+(b<<2)>>2];k=-1;if((f|0)==-1){break ea}b=f+1|0;k=(b>>>0)%3|0?b:f-2|0}b=k;if((a|0)!=(b|0)){continue}break}}if(!B){break s}break r}H[s>>2]=-1;fa:{if(y){break fa}if((D|0)!=(O|0)){H[D>>2]=n;D=D+4|0;H[l+28>>2]=D;break fa}g=O-h|0;b=g>>2;k=b+1|0;if(k>>>0>=1073741824){break q}a=g>>1;k=g>>>0>=2147483644?1073741823:a>>>0>k>>>0?a:k;if(k){if(k>>>0>=1073741824){break p}a=sa(k<<2)}else{a=0}b=a+(b<<2)|0;H[b>>2]=n;O=a+(k<<2)|0;D=b+4|0;if((g|0)>0){ta(a,h,g)}H[l+32>>2]=O;H[l+28>>2]=D;H[l+24>>2]=a;if(h){ra(h)}h=a}H[m>>2]=e}Be(R,e);e=d}B=(j|0)<(p|0);if((j|0)!=(p|0)){continue}break}j=p}w=-1;e=H[i+8>>2];if(H[e+28>>2]-H[e+24>>2]>>2>(M|0)){break r}if((c|0)!=(d|0)){L=i+72|0;k=i+60|0;s=i+312|0;while(1){c=c-4|0;y=H[c>>2];H[l+68>>2]=c;ga:{ha:{ia:{if(J[i+270>>1]<=513){if(!I[i+364|0]){break ha}b=H[i+360>>2];a=H[i+352>>2]+(b>>>3|0)|0;if(a>>>0>=K[i+356>>2]){break ia}a=I[a|0];H[i+360>>2]=b+1;if(!(a>>>(b&7)&1)){break ia}break ha}if(Da(s)){break ha}}ja:{ka:{e=H[i+64>>2];b=H[i+68>>2];if((e|0)==b<<5){if((e+1|0)<0){break ka}if(e>>>0<=1073741822){g=b<<6;b=(e&-32)+32|0;a=b>>>0>>0?g:b}else{a=2147483647}tb(k,a);e=H[i+64>>2]}H[i+64>>2]=e+1;b=H[i+60>>2]+(e>>>3&536870908)|0;a=H[b>>2];S=b,T=Rj(e)&a,H[S>>2]=T;a=H[i+76>>2];if((a|0)!=H[i+80>>2]){H[a>>2]=y;H[i+76>>2]=a+4;break ga}g=H[L>>2];f=a-g|0;b=f>>2;e=b+1|0;if(e>>>0>=1073741824){break ja}a=f>>1;e=f>>>0>=2147483644?1073741823:a>>>0>e>>>0?a:e;if(e){if(e>>>0>=1073741824){break p}a=sa(e<<2)}else{a=0}b=a+(b<<2)|0;H[b>>2]=y;if((f|0)>0){ta(a,g,f)}H[i+80>>2]=a+(e<<2);H[i+76>>2]=b+4;H[i+72>>2]=a;if(!g){break ga}ra(g);break ga}va();v()}va();v()}m=H[i+8>>2];r=H[m>>2];if(((H[m+4>>2]-r>>2>>>0)/3|0)<=(j|0)){break r}a=-1;f=H[m+24>>2];b=-1;la:{if((y|0)==-1){break la}e=y+1|0;e=(e>>>0)%3|0?e:y-2|0;b=-1;if((e|0)==-1){break la}b=H[r+(e<<2)>>2]}p=H[f+(b<<2)>>2];ma:{if((p|0)==-1){g=1;A=-1;break ma}g=1;A=-1;e=p+1|0;e=(e>>>0)%3|0?e:p-2|0;if((e|0)==-1){break ma}g=0;a=e+1|0;a=(a>>>0)%3|0?a:e-2|0;if((a|0)!=-1){A=H[r+(a<<2)>>2]}a=e}e=-1;f=H[f+(A<<2)>>2];if((f|0)!=-1){e=f+1|0;e=(e>>>0)%3|0?e:f-2|0}if((a|0)==(y|0)|(e|0)==(y|0)|(a|0)==(e|0)){break r}if(!((y|0)==-1|H[H[m+12>>2]+(y<<2)>>2]==-1)|!(H[H[m+12>>2]+(a<<2)>>2]==-1|g)){break r}g=-1;m=H[m+12>>2];p=-1;na:{if((e|0)==-1){break na}if(H[m+(e<<2)>>2]!=-1){break r}f=e+1|0;f=(f>>>0)%3|0?f:e-2|0;p=-1;if((f|0)==-1){break na}p=H[r+(f<<2)>>2]}f=N(j,3);H[l>>2]=f;H[m+(f<<2)>>2]=y;H[m+(y<<2)>>2]=f;f=H[l>>2]+1|0;H[m+(f<<2)>>2]=a;H[m+(a<<2)>>2]=f;a=H[l>>2]+2|0;H[m+(a<<2)>>2]=e;H[m+(e<<2)>>2]=a;a=H[l>>2];H[r+(a<<2)>>2]=A;y=a+1|0;m=r+(y<<2)|0;H[m>>2]=p;p=a+2|0;f=r+(p<<2)|0;H[f>>2]=b;r=H[i+120>>2];e=y?A:-1;b=r+(e>>>3&536870908)|0;a=H[b>>2];S=b,T=Rj(e)&a,H[S>>2]=T;g=(y|0)!=-1?H[m>>2]:g;b=r+(g>>>3&536870908)|0;a=H[b>>2];S=b,T=Rj(g)&a,H[S>>2]=T;b=-1;b=(p|0)!=-1?H[f>>2]:b;e=r+(b>>>3&536870908)|0;a=H[e>>2];S=e,T=Rj(b)&a,H[S>>2]=T;F[l+88|0]=1;Yc(k,l+88|0);Na(L,l);j=j+1|0}if((c|0)!=(d|0)){continue}break}e=H[i+8>>2]}if(((H[e+4>>2]-H[e>>2]>>2>>>0)/3|0)!=(j|0)){break r}w=H[e+28>>2]-H[e+24>>2]>>2;if((h|0)==(D|0)){h=D;break r}a=h;while(1){k=H[a>>2];j=H[e+24>>2];b=w-1|0;c=j+(b<<2)|0;if(H[c>>2]==-1){while(1){b=w-2|0;w=w-1|0;c=j+(b<<2)|0;if(H[c>>2]==-1){continue}break}}if(b>>>0>=k>>>0){H[l>>2]=e;c=H[c>>2];F[l+12|0]=1;H[l+8>>2]=c;H[l+4>>2]=c;if((c|0)!=-1){while(1){c=H[H[i+8>>2]>>2]+(c<<2)|0;if(H[c>>2]!=(b|0)){w=-1;break r}H[c>>2]=k;vc(l);c=H[l+8>>2];if((c|0)!=-1){continue}break}e=H[i+8>>2]}c=H[e+24>>2];j=c+(b<<2)|0;if((k|0)!=-1){H[c+(k<<2)>>2]=H[j>>2]}H[j>>2]=-1;g=1<>2];j=c+(k>>>3&536870908)|0;k=c+(b>>>3&536870908)|0;c=1<>2]&c){b=g|H[j>>2]}else{b=H[j>>2]&(g^-1)}H[j>>2]=b;H[k>>2]=H[k>>2]&(c^-1);w=w-1|0}a=a+4|0;if((D|0)!=(a|0)){continue}break}}if(h){ra(h)}a=H[l+48>>2];if(a){while(1){c=H[a>>2];ra(a);a=c;if(a){continue}break}}a=H[l+40>>2];H[l+40>>2]=0;if(a){ra(a)}if(d){H[l+68>>2]=d;ra(d)}fa=l+96|0;a=w;break o}va();v()}za();v()}d=a;if((a|0)==-1){break n}c=Q;a=H[c+16>>2];h=a+H[c>>2]|0;c=H[c+8>>2];a=c-a|0;c=H[H[i+4>>2]+32>>2];G[c+38>>1]=J[c+38>>1];H[c>>2]=h;H[c+16>>2]=0;H[c+20>>2]=0;H[c+8>>2]=a;H[c+12>>2]=0;c=H[i+4>>2];a=J[c+36>>1];h=a<<8|a>>>8;if((h&65535)>>>0<=513){a=H[c+32>>2];c=P+H[a+20>>2]|0;b=o+H[a+16>>2]|0;c=b>>>0>>0?c+1|0:c;H[a+16>>2]=b;H[a+20>>2]=c}oa:{if(H[i+216>>2]==H[i+220>>2]){break oa}a=H[i+8>>2];c=H[a>>2];a=H[a+4>>2];pa:{if((h&65535)>>>0>=513){if((a|0)==(c|0)){break oa}c=0;break pa}if((a|0)==(c|0)){break oa}c=0;while(1){if(ad(i,c)){c=c+3|0;a=H[i+8>>2];if(c>>>0>2]-H[a>>2]>>2>>>0){continue}break oa}break}break n}while(1){if($c(i,c)){c=c+3|0;a=H[i+8>>2];if(c>>>0>2]-H[a>>2]>>2>>>0){continue}break oa}break}break n}_c(C);c=H[i+216>>2];if((c|0)!=H[i+220>>2]){p=0;while(1){b=N(p,144);Ic((b+c|0)+4|0,H[i+8>>2]);a=H[E>>2];h=a+b|0;c=H[h+132>>2];h=H[h+136>>2];if((c|0)!=(h|0)){while(1){Gc((b+H[E>>2]|0)+4|0,H[c>>2]);c=c+4|0;if((h|0)!=(c|0)){continue}break}a=H[E>>2]}if(!Hc((a+b|0)+4|0)){break n}p=p+1|0;c=H[i+216>>2];if(p>>>0<(H[i+220>>2]-c|0)/144>>>0){continue}break}}a=H[i+8>>2];Jb(i+184|0,H[a+28>>2]-H[a+24>>2]>>2);z=H[i+216>>2];if((z|0)!=H[i+220>>2]){c=0;while(1){a=N(c,144)+z|0;h=H[a+60>>2]-H[a+56>>2]>>2;b=a+104|0;a=H[i+8>>2];a=H[a+28>>2]-H[a+24>>2]>>2;Jb(b,(a|0)<(h|0)?h:a);c=c+1|0;z=H[i+216>>2];if(c>>>0<(H[i+220>>2]-z|0)/144>>>0){continue}break}}z=Zc(i,d)}break b}z=0}fa=t- -64|0;return z|0}function ki(a){a=a|0;var b=0,c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,L=0,M=0,O=0,P=0,Q=0;q=fa+-64|0;fa=q;H[a+132>>2]=0;if(H[a+148>>2]){d=H[a+144>>2];if(d){while(1){c=H[d>>2];ra(d);d=c;if(c){continue}break}}d=0;H[a+144>>2]=0;c=H[a+140>>2];a:{if(!c){break a}if(c>>>0>=4){m=c&-4;while(1){b=d<<2;H[b+H[a+136>>2]>>2]=0;H[H[a+136>>2]+(b|4)>>2]=0;H[H[a+136>>2]+(b|8)>>2]=0;H[H[a+136>>2]+(b|12)>>2]=0;d=d+4|0;e=e+4|0;if((m|0)!=(e|0)){continue}break}}e=c&3;if(!e){break a}while(1){H[H[a+136>>2]+(d<<2)>>2]=0;d=d+1|0;u=u+1|0;if((e|0)!=(u|0)){continue}break}}H[a+148>>2]=0}b:{c:{d=H[a+4>>2];u=I[d+36|0];e=u<<8|I[d+37|0];if(e>>>0<=513){b=H[d+32>>2];d:{if(e>>>0<=511){e=H[b+20>>2];m=H[b+16>>2];c=m+4|0;e=c>>>0<4?e+1|0:e;g=c;c=e;x=H[b+12>>2];if(g>>>0>K[b+8>>2]&(c|0)>=(x|0)|(c|0)>(x|0)){break c}e=m+H[b>>2]|0;e=I[e|0]|I[e+1|0]<<8|(I[e+2|0]<<16|I[e+3|0]<<24);H[b+16>>2]=g;H[b+20>>2]=c;break d}if(!Ga(1,q,b)){break c}d=H[a+4>>2];u=I[d+36|0];e=H[q>>2]}H[a+132>>2]=e}c=H[d+32>>2];e:{f:{g:{if((u&255)>>>0<=1){u=0;e=H[c+20>>2];b=H[c+16>>2];m=b+4|0;e=m>>>0<4?e+1|0:e;g=H[c+12>>2];if((g|0)<=(e|0)&m>>>0>K[c+8>>2]|(e|0)>(g|0)){break b}b=b+H[c>>2]|0;b=I[b|0]|I[b+1|0]<<8|(I[b+2|0]<<16|I[b+3|0]<<24);H[q+60>>2]=b;H[c+16>>2]=m;H[c+20>>2]=e;H[a+156>>2]=b;o=a+156|0;break g}u=0;if(!Ga(1,q+60|0,c)){break b}d=H[a+4>>2];e=I[d+36|0];H[a+156>>2]=H[q+60>>2];o=a+156|0;if(e>>>0>1){break f}}c=H[d+32>>2];d=H[c+8>>2];e=H[c+12>>2];g=d;d=H[c+20>>2];b=H[c+16>>2];m=b+4|0;d=m>>>0<4?d+1|0:d;if(g>>>0>>0&(d|0)>=(e|0)|(d|0)>(e|0)){break b}e=b+H[c>>2]|0;e=I[e|0]|I[e+1|0]<<8|(I[e+2|0]<<16|I[e+3|0]<<24);H[q+56>>2]=e;H[c+16>>2]=m;H[c+20>>2]=d;break e}if(!Ga(1,q+56|0,H[d+32>>2])){break b}e=H[q+56>>2]}if(e>>>0>1431655765|K[o>>2]>N(e,3)>>>0){break b}x=H[a+4>>2];c=H[x+32>>2];o=H[c+8>>2];b=o;m=H[c+12>>2];d=H[c+20>>2];g=H[c+16>>2];if((m|0)<=(d|0)&g>>>0>=b>>>0|(d|0)>(m|0)){break b}n=H[c>>2];h=I[n+g|0];b=d;f=g+1|0;b=f?b:b+1|0;H[c+16>>2]=f;H[c+20>>2]=b;h:{if(I[x+36|0]<=1){b=m;m=g+5|0;d=m>>>0<5?d+1|0:d;if((b|0)<=(d|0)&m>>>0>o>>>0|(b|0)<(d|0)){break b}b=f+n|0;o=I[b|0]|I[b+1|0]<<8|(I[b+2|0]<<16|I[b+3|0]<<24);H[q+52>>2]=o;H[c+16>>2]=m;H[c+20>>2]=d;break h}if(!Ga(1,q+52|0,c)){break b}o=H[q+52>>2]}if(e>>>0>>0|((o>>>0)/3|0)+o>>>0>>0){break b}d=H[a+4>>2];b=H[d+32>>2];i:{if(I[d+36|0]<=1){d=H[b+20>>2];c=H[b+16>>2];m=c+4|0;d=m>>>0<4?d+1|0:d;g=H[b+12>>2];if((g|0)<=(d|0)&m>>>0>K[b+8>>2]|(d|0)>(g|0)){break b}c=c+H[b>>2]|0;c=I[c|0]|I[c+1|0]<<8|(I[c+2|0]<<16|I[c+3|0]<<24);H[q+48>>2]=c;H[b+16>>2]=m;H[b+20>>2]=d;break i}if(!Ga(1,q+48|0,b)){break b}c=H[q+48>>2]}if(c>>>0>o>>>0){break b}H[a+28>>2]=H[a+24>>2];b=ac(sa(88));d=H[a+8>>2];H[a+8>>2]=b;if(d){fb(d);if(!H[a+8>>2]){break b}}H[a+164>>2]=H[a+160>>2];Lb(a+160|0,e);H[a+176>>2]=H[a+172>>2];Lb(a+172|0,e);H[a- -64>>2]=0;H[a+92>>2]=-1;H[a+84>>2]=-1;H[a+88>>2]=-1;H[a+40>>2]=H[a+36>>2];H[a+52>>2]=H[a+48>>2];H[a+76>>2]=H[a+72>>2];C=a+216|0;cd(C);bd(C,h);if(!Kc(H[a+8>>2],e,H[a+156>>2]+c|0)){break b}d=H[a+156>>2];F[q|0]=1;Ra(a+120|0,c+d|0,q);d=H[a+4>>2];e=J[d+36>>1];e=(e<<8|e>>>8)&65535;j:{if(e>>>0<=513){c=H[d+32>>2];k:{if(e>>>0<=511){e=H[c+20>>2];b=H[c+16>>2];d=b+4|0;e=d>>>0<4?e+1|0:e;m=d;d=e;g=H[c+12>>2];if(m>>>0>K[c+8>>2]&(d|0)>=(g|0)|(d|0)>(g|0)){break b}e=b+H[c>>2]|0;e=I[e|0]|I[e+1|0]<<8|(I[e+2|0]<<16|I[e+3|0]<<24);H[c+16>>2]=m;H[c+20>>2]=d;break k}if(!Ga(1,q+44|0,c)){break b}e=H[q+44>>2]}if(!e){break b}d=H[H[a+4>>2]+32>>2];c=H[d+8>>2];b=H[d+16>>2];m=c-b|0;d=H[d+12>>2]-(H[d+20>>2]+(b>>>0>c>>>0)|0)|0;if((d|0)<=0&e>>>0>m>>>0|(d|0)<0){break b}c=Ka(q);b=H[H[a+4>>2]+32>>2];d=H[b+16>>2];m=(d+H[b>>2]|0)+e|0;g=H[b+8>>2];d=(g-d|0)-e|0;G[c+38>>1]=J[b+38>>1];H[c>>2]=m;H[c+16>>2]=0;H[c+20>>2]=0;H[c+8>>2]=d;H[c+12>>2]=0;x=Kb(a,c);if((x|0)==-1){break b}L=x>>31;break j}x=-1;L=-1;if((Kb(a,H[d+32>>2])|0)==-1){break b}}M=a+232|0;e=M;H[e+144>>2]=a;d=H[(ha[H[H[a>>2]+32>>2]](a)|0)+32>>2];c=H[d>>2]+H[d+16>>2]|0;b=H[(ha[H[H[a>>2]+32>>2]](a)|0)+32>>2];d=H[b+8>>2];b=H[b+16>>2];d=d-b|0;P=e,Q=J[H[(ha[H[H[a>>2]+32>>2]](a)|0)+32>>2]+38>>1],G[P+38>>1]=Q;H[e>>2]=c;H[e+16>>2]=0;H[e+20>>2]=0;H[e+8>>2]=d;H[e+12>>2]=0;H[a+372>>2]=h;E=Ka(q);l:{if(!Ee(e,E)){break l}c=0;d=0;e=0;m=0;j=fa-96|0;fa=j;H[j+72>>2]=0;H[j+64>>2]=0;H[j+68>>2]=0;H[j+48>>2]=0;H[j+52>>2]=0;H[j+40>>2]=0;H[j+44>>2]=0;H[j+56>>2]=1065353216;H[j+32>>2]=0;H[j+24>>2]=0;H[j+28>>2]=0;h=a;w=H[a+124>>2];m:{n:{o:{p:{q:{if((o|0)<=0){break q}O=H[h+216>>2]!=H[h+220>>2];z=1;while(1){g=r;r=g+1|0;r:{s:{t:{u:{v:{w:{x:{y:{z:{A:{B:{C:{D:{E:{F:{if(!I[h+308|0]){break F}f=H[h+296>>2];b=H[h+304>>2];a=f+(b>>>3|0)|0;i=H[h+300>>2];if(a>>>0>=i>>>0){break F}n=I[a|0];a=b+1|0;H[h+304>>2]=a;l=n>>>(b&7)&1;if(!l){break F}k=0;n=a>>>3|0;p=f+n|0;G:{if(p>>>0>=i>>>0){b=a;a=0;break G}p=I[p|0];b=b+2|0;H[h+304>>2]=b;n=b>>>3|0;a=p>>>(a&7)&1}n=f+n|0;if(n>>>0>>0){n=I[n|0];H[h+304>>2]=b+1;k=n>>>(b&7)<<1&2}n=-1;f=l|(a|k)<<1;switch(f-1|0){case 6:break C;case 0:break D;case 2:case 4:break E;default:break p}}if((d|0)==(e|0)){n=-1;break p}c=-1;f=H[h+8>>2];p=H[f+24>>2];z=d-4|0;b=H[z>>2];a=-1;H:{if((b|0)==-1){break H}i=b+1|0;i=(i>>>0)%3|0?i:b-2|0;a=-1;if((i|0)==-1){break H}a=H[H[f>>2]+(i<<2)>>2]}n=H[p+(a<<2)>>2];if((n|0)!=-1){c=n+1|0;c=(c>>>0)%3|0?c:n-2|0}if((b|0)==(c|0)){n=-1;break p}if((b|0)!=-1){n=-1;if(H[H[f+12>>2]+(b<<2)>>2]!=-1){break p}}i=H[f+12>>2];if((c|0)!=-1){n=-1;if(H[i+(c<<2)>>2]!=-1){break p}}k=N(g,3);g=k+1|0;H[i+(b<<2)>>2]=g;t=g<<2;H[t+i>>2]=b;l=k+2|0;H[i+(c<<2)>>2]=l;g=i;i=l<<2;H[g+i>>2]=c;g=-1;n=-1;I:{if((b|0)==-1){break I}J:{if((b>>>0)%3|0){b=b-1|0;break J}b=b+2|0;n=-1;if((b|0)==-1){break I}}n=H[H[f>>2]+(b<<2)>>2]}b=n;K:{if((c|0)==-1){break K}n=c+1|0;c=(n>>>0)%3|0?n:c-2|0;if((c|0)==-1){break K}g=H[H[f>>2]+(c<<2)>>2]}n=-1;if((a|0)==(b|0)|(a|0)==(g|0)){break p}c=H[f>>2];H[c+(k<<2)>>2]=a;H[c+t>>2]=g;H[c+i>>2]=b;if((b|0)!=-1){H[p+(b<<2)>>2]=l}c=H[h+120>>2]+(a>>>3&536870908)|0;b=H[c>>2];P=c,Q=Rj(a)&b,H[P>>2]=Q;H[z>>2]=k;c=e;break r}if((d|0)==(e|0)){break p}p=d-4|0;c=H[p>>2];a=H[h+8>>2];b=H[a+12>>2];if(!((c|0)==-1|H[b+(c<<2)>>2]==-1)){break p}l=(f|0)==5;f=N(g,3);i=(l?2:1)+f|0;t=i<<2;H[t+b>>2]=c;H[b+(c<<2)>>2]=i;Na(a+24|0,11424);b=H[h+8>>2];k=H[b+24>>2];if(H[b+28>>2]-k>>2>(w|0)){break p}b=H[b>>2];B=b+t|0;t=H[a+28>>2];a=H[a+24>>2];A=(t-a>>2)-1|0;H[B>>2]=A;if((a|0)!=(t|0)){H[k+(A<<2)>>2]=i}i=l?f:f+2|0;l=b+(f+l<<2)|0;L:{if((c|0)==-1){H[b+(i<<2)>>2]=-1;a=-1;break L}M:{N:{O:{if((c>>>0)%3|0){a=c-1|0;break O}a=c+2|0;if((a|0)==-1){break N}}a=H[b+(a<<2)>>2];H[b+(i<<2)>>2]=a;if((a|0)==-1){break M}H[k+(a<<2)>>2]=i;break M}H[b+(i<<2)>>2]=-1}i=c+1|0;c=(i>>>0)%3|0?i:c-2|0;a=-1;if((c|0)==-1){break L}a=H[b+(c<<2)>>2]}H[l>>2]=a;H[p>>2]=f;break B}if((c|0)==(d|0)){break p}a=d-4|0;k=H[a>>2];H[j+68>>2]=a;l=H[j+44>>2];P:{if(!l){d=a;break P}f=H[j+40>>2];p=Qj(l)>>>0>1;b=g&l+2147483647;Q:{if(!p){break Q}b=g;if(b>>>0>>0){break Q}b=(g>>>0)%(l>>>0)|0}i=b;b=H[f+(i<<2)>>2];if(!b){d=a;break P}b=H[b>>2];if(!b){d=a;break P}R:{if(!p){f=l-1|0;while(1){l=H[b+4>>2];S:{if((l|0)!=(g|0)){if((i|0)==(f&l)){break S}d=a;break P}if((g|0)==H[b+8>>2]){break R}}b=H[b>>2];if(b){continue}break}d=a;break P}while(1){f=H[b+4>>2];T:{if((f|0)!=(g|0)){if(f>>>0>=l>>>0){f=(f>>>0)%(l>>>0)|0}if((f|0)==(i|0)){break T}d=a;break P}if((g|0)==H[b+8>>2]){break R}}b=H[b>>2];if(b){continue}break}d=a;break P}if((a|0)!=(s|0)){H[a>>2]=H[b+12>>2];H[j+68>>2]=d;break P}a=s-c|0;f=a>>2;d=f+1|0;if(d>>>0>=1073741824){break z}e=a>>1;d=a>>>0>=2147483644?1073741823:d>>>0>>0?e:d;if(d){if(d>>>0>=1073741824){break n}e=sa(d<<2)}else{e=0}f=e+(f<<2)|0;H[f>>2]=H[b+12>>2];s=(d<<2)+e|0;d=f+4|0;if((a|0)>0){ta(e,c,a)}H[j+72>>2]=s;H[j+68>>2]=d;H[j+64>>2]=e;if(!c){break P}ra(c)}if((d|0)==(e|0)){break t}A=d-4|0;c=H[A>>2];if((c|0)==(k|0)){break t}a=(c|0)==-1;f=H[h+8>>2];if(!a&H[H[f+12>>2]+(c<<2)>>2]!=-1){break t}i=H[f+12>>2];if((k|0)!=-1&H[i+(k<<2)>>2]!=-1){break t}p=N(g,3);t=p+2|0;H[i+(c<<2)>>2]=t;l=t<<2;H[l+i>>2]=c;b=p+1|0;H[i+(k<<2)>>2]=b;B=b<<2;H[B+i>>2]=k;if(a){break y}if((c>>>0)%3|0){g=c-1|0;break w}g=c+2|0;if((g|0)!=-1){break w}a=H[f>>2];g=-1;break v}f=H[h+8>>2];Na(f+24|0,11424);a=H[h+8>>2];b=N(g,3);k=H[f+28>>2];l=H[f+24>>2];p=k-l|0;i=p>>2;t=i-1|0;H[H[a>>2]+(b<<2)>>2]=t;Na(a+24|0,11424);A=b+1|0;H[H[a>>2]+(A<<2)>>2]=(H[a+28>>2]-H[a+24>>2]>>2)-1;a=H[h+8>>2];Na(a+24|0,11424);B=b+2|0;H[H[a>>2]+(B<<2)>>2]=(H[a+28>>2]-H[a+24>>2]>>2)-1;a=H[h+8>>2];f=H[a+24>>2];if(H[a+28>>2]-f>>2>(w|0)){break p}U:{V:{if((k|0)!=(l|0)){H[f+(t<<2)>>2]=b;a=0;if((p|0)==-4){break V}}H[f+(i<<2)>>2]=A;a=i+1|0;if((a|0)==-1){break U}}H[f+(a<<2)>>2]=B}if((d|0)!=(s|0)){H[d>>2]=b;d=d+4|0;H[j+68>>2]=d;break A}a=d-c|0;f=a>>2;d=f+1|0;if(d>>>0>=1073741824){break x}e=a>>1;d=a>>>0>=2147483644?1073741823:d>>>0>>0?e:d;if(d){if(d>>>0>=1073741824){break n}e=sa(d<<2)}else{e=0}f=e+(f<<2)|0;H[f>>2]=b;s=(d<<2)+e|0;d=f+4|0;if((a|0)>0){ta(e,c,a)}H[j+72>>2]=s;H[j+68>>2]=d;H[j+64>>2]=e;if(!c){break B}ra(c)}c=e}a=H[h+40>>2];if((a|0)==H[h+36>>2]){break r}b=a-12|0;f=H[b+4>>2];g=(g^-1)+o|0;if(f>>>0>g>>>0){break t}if((g|0)!=(f|0)){break r}i=I[a-4|0];f=H[b>>2];H[h+40>>2]=b;if((f|0)<0){break t}k=d-4|0;a=H[k>>2];H[j+20>>2]=(f^-1)+o;b=j+20|0;H[j+88>>2]=b;Ib(j,j+40|0,b,j+88|0);f=H[j>>2];W:{if(i&1){b=-1;if((a|0)==-1){break W}b=a+1|0;b=(b>>>0)%3|0?b:a-2|0;break W}b=-1;if((a|0)==-1){break W}b=a-1|0;if((a>>>0)%3|0){break W}b=a+2|0}H[f+12>>2]=b;b=H[h+40>>2];if((b|0)==H[h+36>>2]){break r}while(1){a=b-12|0;f=H[a+4>>2];if(f>>>0>g>>>0){break t}if((g|0)!=(f|0)){break r}f=I[b-4|0];b=H[a>>2];H[h+40>>2]=a;if((b|0)<0){break t}a=H[k>>2];H[j+20>>2]=(b^-1)+o;b=j+20|0;H[j+88>>2]=b;Ib(j,j+40|0,b,j+88|0);i=H[j>>2];X:{if(f&1){b=-1;if((a|0)==-1){break X}b=a+1|0;b=(b>>>0)%3|0?b:a-2|0;break X}b=-1;if((a|0)==-1){break X}b=a-1|0;if((a>>>0)%3|0){break X}b=a+2|0}H[i+12>>2]=b;b=H[h+40>>2];if((b|0)!=H[h+36>>2]){continue}break}break r}va();v()}g=-1;a=H[f>>2];H[a+(p<<2)>>2]=-1;b=-1;break u}va();v()}a=H[f>>2];g=H[a+(g<<2)>>2]}H[(p<<2)+a>>2]=g;b=c+1|0;c=(b>>>0)%3|0?b:c-2|0;b=-1;if((c|0)==-1){break u}b=H[(c<<2)+a>>2]}H[a+B>>2]=b;Y:{if((k|0)==-1){H[a+l>>2]=-1;l=-1;c=-1;break Y}Z:{_:{$:{if((k>>>0)%3|0){b=k-1|0;break $}b=k+2|0;if((b|0)==-1){break _}}c=H[(b<<2)+a>>2];H[a+l>>2]=c;if((c|0)==-1){break Z}H[H[f+24>>2]+(c<<2)>>2]=t;break Z}H[a+l>>2]=-1}l=-1;b=k+1|0;b=(b>>>0)%3|0?b:k-2|0;c=-1;if((b|0)==-1){break Y}l=H[(b<<2)+a>>2];c=b}b=H[f+24>>2];k=b+(l<<2)|0;if((g|0)!=-1){H[b+(g<<2)>>2]=H[k>>2]}b=c;while(1){if((b|0)==-1){break s}H[(b<<2)+a>>2]=g;t=b+1|0;b=(t>>>0)%3|0?t:b-2|0;f=-1;aa:{if((b|0)==-1){break aa}b=H[i+(b<<2)>>2];f=-1;if((b|0)==-1){break aa}f=b+1|0;f=(f>>>0)%3|0?f:b-2|0}b=f;if((c|0)!=(b|0)){continue}break}}if(!z){break q}break p}H[k>>2]=-1;ba:{if(O){break ba}if((y|0)!=(D|0)){H[y>>2]=l;y=y+4|0;H[j+28>>2]=y;break ba}c=D-m|0;g=c>>2;a=g+1|0;if(a>>>0>=1073741824){break o}b=c>>1;b=c>>>0>=2147483644?1073741823:a>>>0>>0?b:a;if(b){if(b>>>0>=1073741824){break n}a=sa(b<<2)}else{a=0}g=a+(g<<2)|0;H[g>>2]=l;D=a+(b<<2)|0;y=g+4|0;if((c|0)>0){ta(a,m,c)}H[j+32>>2]=D;H[j+28>>2]=y;H[j+24>>2]=a;if(m){ra(m)}m=a}H[A>>2]=p;c=e}z=(o|0)>(r|0);if((o|0)!=(r|0)){continue}break}r=o}n=-1;a=H[h+8>>2];if(H[a+28>>2]-H[a+24>>2]>>2>(w|0)){break p}if((d|0)!=(e|0)){p=h+72|0;o=h+60|0;D=h+312|0;while(1){d=d-4|0;k=H[d>>2];H[j+68>>2]=d;ca:{da:{ea:{if(J[h+270>>1]<=513){if(!I[h+364|0]){break da}a=H[h+360>>2];c=H[h+352>>2]+(a>>>3|0)|0;if(c>>>0>=K[h+356>>2]){break ea}c=I[c|0];H[h+360>>2]=a+1;if(!(c>>>(a&7)&1)){break ea}break da}if(Da(D)){break da}}fa:{ga:{c=H[h+64>>2];a=H[h+68>>2];if((c|0)==a<<5){if((c+1|0)<0){break ga}if(c>>>0<=1073741822){a=a<<6;c=(c&-32)+32|0;a=a>>>0>c>>>0?a:c}else{a=2147483647}tb(o,a);c=H[h+64>>2]}H[h+64>>2]=c+1;a=H[h+60>>2]+(c>>>3&536870908)|0;b=H[a>>2];P=a,Q=Rj(c)&b,H[P>>2]=Q;a=H[h+76>>2];if((a|0)!=H[h+80>>2]){H[a>>2]=k;H[h+76>>2]=a+4;break ca}b=H[p>>2];c=a-b|0;f=c>>2;a=f+1|0;if(a>>>0>=1073741824){break fa}g=c>>1;g=c>>>0>=2147483644?1073741823:a>>>0>>0?g:a;if(g){if(g>>>0>=1073741824){break n}a=sa(g<<2)}else{a=0}f=a+(f<<2)|0;H[f>>2]=k;if((c|0)>0){ta(a,b,c)}H[h+80>>2]=a+(g<<2);H[h+76>>2]=f+4;H[h+72>>2]=a;if(!b){break ca}ra(b);break ca}va();v()}va();v()}s=H[h+8>>2];l=H[s>>2];if(((H[s+4>>2]-l>>2>>>0)/3|0)<=(r|0)){break p}a=-1;c=-1;w=H[s+24>>2];b=-1;ha:{if((k|0)==-1){break ha}f=k+1|0;f=(f>>>0)%3|0?f:k-2|0;b=-1;if((f|0)==-1){break ha}b=H[l+(f<<2)>>2]}f=b;i=H[w+(f<<2)>>2];ia:{if((i|0)==-1){g=1;b=-1;break ia}g=1;z=i+1|0;i=(z>>>0)%3|0?z:i-2|0;b=-1;if((i|0)==-1){break ia}g=0;a=i;b=a+1|0;b=(b>>>0)%3|0?b:a-2|0;if((b|0)!=-1){b=H[l+(b<<2)>>2]}else{b=-1}}i=H[(b<<2)+w>>2];if((i|0)!=-1){c=i+1|0;c=(c>>>0)%3|0?c:i-2|0}if((a|0)==(k|0)|(c|0)==(k|0)|(a|0)==(c|0)){break p}if(!((k|0)==-1|H[H[s+12>>2]+(k<<2)>>2]==-1)|!(H[H[s+12>>2]+(a<<2)>>2]==-1|g)){break p}g=-1;i=H[s+12>>2];s=-1;ja:{if((c|0)==-1){break ja}if(H[i+(c<<2)>>2]!=-1){break p}w=c+1|0;w=(w>>>0)%3|0?w:c-2|0;s=-1;if((w|0)==-1){break ja}s=H[l+(w<<2)>>2]}w=N(r,3);H[j>>2]=w;H[i+(w<<2)>>2]=k;H[i+(k<<2)>>2]=w;k=H[j>>2]+1|0;H[i+(k<<2)>>2]=a;H[i+(a<<2)>>2]=k;a=H[j>>2]+2|0;H[i+(a<<2)>>2]=c;H[i+(c<<2)>>2]=a;a=H[j>>2];H[l+(a<<2)>>2]=b;c=a+1|0;i=l+(c<<2)|0;H[i>>2]=s;k=a+2|0;l=l+(k<<2)|0;H[l>>2]=f;a=H[h+120>>2];b=c?b:-1;f=a+(b>>>3&536870908)|0;s=H[f>>2];P=f,Q=Rj(b)&s,H[P>>2]=Q;g=(c|0)!=-1?H[i>>2]:g;c=a+(g>>>3&536870908)|0;b=H[c>>2];P=c,Q=Rj(g)&b,H[P>>2]=Q;b=-1;b=(k|0)!=-1?H[l>>2]:b;a=a+(b>>>3&536870908)|0;c=H[a>>2];P=a,Q=Rj(b)&c,H[P>>2]=Q;F[j+88|0]=1;Yc(o,j+88|0);Na(p,j);r=r+1|0}if((d|0)!=(e|0)){continue}break}a=H[h+8>>2]}if(((H[a+4>>2]-H[a>>2]>>2>>>0)/3|0)!=(r|0)){break p}n=H[a+28>>2]-H[a+24>>2]>>2;if((m|0)==(y|0)){m=y;break p}d=m;while(1){g=H[d>>2];r=H[a+24>>2];b=n-1|0;c=r+(b<<2)|0;if(H[c>>2]==-1){while(1){b=n-2|0;n=n-1|0;c=r+(b<<2)|0;if(H[c>>2]==-1){continue}break}}if(b>>>0>=g>>>0){H[j>>2]=a;c=H[c>>2];F[j+12|0]=1;H[j+8>>2]=c;H[j+4>>2]=c;if((c|0)!=-1){while(1){a=H[H[h+8>>2]>>2]+(c<<2)|0;if(H[a>>2]!=(b|0)){n=-1;break p}H[a>>2]=g;vc(j);c=H[j+8>>2];if((c|0)!=-1){continue}break}a=H[h+8>>2]}r=H[a+24>>2];c=r+(b<<2)|0;if((g|0)!=-1){H[r+(g<<2)>>2]=H[c>>2]}H[c>>2]=-1;c=1<>2];g=r+(g>>>3&536870908)|0;r=r+(b>>>3&536870908)|0;b=1<>2]&b){c=c|H[g>>2]}else{c=H[g>>2]&(c^-1)}H[g>>2]=c;H[r>>2]=H[r>>2]&(b^-1);n=n-1|0}d=d+4|0;if((y|0)!=(d|0)){continue}break}}if(m){ra(m)}a=H[j+48>>2];if(a){while(1){d=H[a>>2];ra(a);a=d;if(a){continue}break}}a=H[j+40>>2];H[j+40>>2]=0;if(a){ra(a)}if(e){H[j+68>>2]=e;ra(e)}fa=j+96|0;a=n;break m}va();v()}za();v()}c=a;if((a|0)==-1){break l}a=H[E+16>>2];d=a+H[E>>2]|0;e=H[E+8>>2];e=e-a|0;a=H[H[h+4>>2]+32>>2];G[a+38>>1]=J[a+38>>1];H[a>>2]=d;H[a+16>>2]=0;H[a+20>>2]=0;H[a+8>>2]=e;H[a+12>>2]=0;a=H[h+4>>2];d=J[a+36>>1];b=d<<8|d>>>8;if((b&65535)>>>0<=513){a=H[a+32>>2];e=L+H[a+20>>2]|0;d=x+H[a+16>>2]|0;e=d>>>0>>0?e+1|0:e;H[a+16>>2]=d;H[a+20>>2]=e}ka:{if(H[h+216>>2]==H[h+220>>2]){break ka}d=H[h+8>>2];a=H[d>>2];d=H[d+4>>2];la:{if((b&65535)>>>0>=513){if((a|0)==(d|0)){break ka}d=0;break la}if((a|0)==(d|0)){break ka}d=0;while(1){if(ad(h,d)){d=d+3|0;a=H[h+8>>2];if(d>>>0>2]-H[a>>2]>>2>>>0){continue}break ka}break}break l}while(1){if($c(h,d)){d=d+3|0;a=H[h+8>>2];if(d>>>0>2]-H[a>>2]>>2>>>0){continue}break ka}break}break l}_c(M);d=H[h+216>>2];if((d|0)!=H[h+220>>2]){o=0;while(1){e=N(o,144);Ic((e+d|0)+4|0,H[h+8>>2]);a=H[C>>2];b=a+e|0;d=H[b+132>>2];b=H[b+136>>2];if((d|0)!=(b|0)){while(1){Gc((e+H[C>>2]|0)+4|0,H[d>>2]);d=d+4|0;if((b|0)!=(d|0)){continue}break}a=H[C>>2]}if(!Hc((a+e|0)+4|0)){break l}o=o+1|0;d=H[h+216>>2];if(o>>>0<(H[h+220>>2]-d|0)/144>>>0){continue}break}}a=H[h+8>>2];Jb(h+184|0,H[a+28>>2]-H[a+24>>2]>>2);u=H[h+216>>2];if((u|0)!=H[h+220>>2]){d=0;while(1){a=N(d,144)+u|0;e=H[a+60>>2]-H[a+56>>2]>>2;b=a+104|0;a=H[h+8>>2];a=H[a+28>>2]-H[a+24>>2]>>2;Jb(b,(a|0)<(e|0)?e:a);d=d+1|0;u=H[h+216>>2];if(d>>>0<(H[h+220>>2]-u|0)/144>>>0){continue}break}}u=Zc(h,c)}break b}u=0}fa=q- -64|0;return u|0}function Ag(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,G=0,J=0,K=0,L=0,M=0;A=c;c=0;m=fa-96|0;fa=m;k=m+16|0;ua(k,0,76);H[m+92>>2]=-1;H[m+8>>2]=0;H[m>>2]=0;H[m+4>>2]=0;q=fa-16|0;fa=q;H[k+68>>2]=0;H[k+72>>2]=0;H[k>>2]=b;s=fa-16|0;fa=s;w=b;a=H[b+20>>2];a:{if((H[b+24>>2]-a|0)<=0){break a}a=H[a>>2];if((a|0)==-1){break a}c=H[H[w+8>>2]+(a<<2)>>2]}b:{c:{d:{if(!c){a=0;break d}a=H[w+100>>2];d=H[w+96>>2];H[s+8>>2]=0;H[s>>2]=0;H[s+4>>2]=0;e=a-d|0;b=(e|0)/12|0;e:{if((a|0)==(d|0)){break e}if(b>>>0>=357913942){break c}f=sa(e);H[s>>2]=f;H[s+8>>2]=f+N(b,12);a=0;g=f;e=e-12|0;f=(e-((e>>>0)%12|0)|0)+12|0;e=ua(g,0,f);H[s+4>>2]=e+f;if(I[c+84|0]){c=b>>>0<=1?1:b;g=c&1;if(b>>>0>=2){i=c&-2;c=0;while(1){f=N(a,12);b=f+d|0;h=H[b+4>>2];o=H[b>>2];f=e+f|0;H[f+8>>2]=H[b+8>>2];H[f>>2]=o;H[f+4>>2]=h;f=N(a|1,12);b=f+d|0;h=H[b+4>>2];o=H[b>>2];f=e+f|0;H[f+8>>2]=H[b+8>>2];H[f>>2]=o;H[f+4>>2]=h;a=a+2|0;c=c+2|0;if((i|0)!=(c|0)){continue}break}}if(!g){break e}b=N(a,12);a=b+d|0;c=H[a+4>>2];d=H[a>>2];b=b+e|0;H[b+8>>2]=H[a+8>>2];H[b>>2]=d;H[b+4>>2]=c;break e}g=b>>>0<=1?1:b;a=H[c+68>>2];c=0;while(1){f=N(c,12);b=f+d|0;i=H[a+(H[b>>2]<<2)>>2];h=H[a+(H[b+4>>2]<<2)>>2];f=e+f|0;H[f+8>>2]=H[a+(H[b+8>>2]<<2)>>2];H[f+4>>2]=h;H[f>>2]=i;c=c+1|0;if((g|0)!=(c|0)){continue}break}}c=0;D=fa-16|0;fa=D;h=sa(88);ac(h);B=fa-16|0;fa=B;H[h+80>>2]=0;H[h+84>>2]=0;a=H[h+76>>2];H[h+76>>2]=0;if(a){ra(a)}H[h+68>>2]=0;H[h+72>>2]=0;b=h- -64|0;a=H[b>>2];H[b>>2]=0;if(a){ra(a)}d=H[s+4>>2];g=H[s>>2];b=(d-g|0)/12|0;a=N(b,3);f=H[h>>2];e=H[h+4>>2]-f>>2;f:{if(a>>>0>e>>>0){Aa(h,a-e|0);d=H[s+4>>2];g=H[s>>2];b=(d-g|0)/12|0;break f}if(a>>>0>=e>>>0){break f}H[h+4>>2]=f+(a<<2)}g:{if((d|0)==(g|0)){break g}d=b>>>0<=1?1:b;f=d&1;a=H[h>>2];if(b>>>0>=2){i=d&-2;b=0;while(1){d=N(c,12);o=d+a|0;e=d+g|0;H[o>>2]=H[e>>2];H[a+(d|4)>>2]=H[e+4>>2];H[o+8>>2]=H[e+8>>2];e=N(c|1,12);d=e+a|0;e=e+g|0;H[d>>2]=H[e>>2];H[d+4>>2]=H[e+4>>2];H[d+8>>2]=H[e+8>>2];c=c+2|0;b=b+2|0;if((i|0)!=(b|0)){continue}break}}if(!f){break g}b=N(c,12);a=b+a|0;b=b+g|0;H[a>>2]=H[b>>2];H[a+4>>2]=H[b+4>>2];H[a+8>>2]=H[b+8>>2]}H[B+12>>2]=-1;a=0;e=0;d=0;i=fa-32|0;fa=i;h:{i:{x=B+12|0;j:{if(!x){break j}b=H[h+4>>2];o=H[h>>2];c=b-o|0;j=c>>2;g=H[h+12>>2];f=H[h+16>>2]-g>>2;k:{if(j>>>0>f>>>0){Ia(h+12|0,j-f|0,13652);b=H[h+4>>2];o=H[h>>2];c=b-o|0;j=c>>2;break k}if(f>>>0<=j>>>0){break k}H[h+16>>2]=g+(j<<2)}H[i+24>>2]=0;H[i+16>>2]=0;H[i+20>>2]=0;f=(b|0)==(o|0);if(!f){if((c|0)<0){break i}e=sa(c);H[i+20>>2]=e;H[i+16>>2]=e;H[i+24>>2]=(j<<2)+e}l:{m:{n:{o:{p:{if(c){while(1){g=H[(a<<2)+o>>2];c=H[i+20>>2]-e>>2;q:{if(g>>>0>>0){break q}H[i>>2]=0;f=g+1|0;if(f>>>0>c>>>0){Ia(i+16|0,f-c|0,i);o=H[h>>2];b=H[h+4>>2];e=H[i+16>>2];break q}if(c>>>0<=f>>>0){break q}H[i+20>>2]=(f<<2)+e}c=(g<<2)+e|0;H[c>>2]=H[c>>2]+1;a=a+1|0;c=b-o|0;j=c>>2;if(a>>>0>>0){continue}break}break p}c=0;if(!f){break o}break n}if((b|0)==(o|0)){c=0;break n}if(c>>>0>=2147483645){break m}}c=sa(c<<1);ua(c,255,j<<3)}H[i+8>>2]=0;H[i>>2]=0;H[i+4>>2]=0;b=H[i+20>>2];a=b-e|0;t=a>>2;r:{s:{if((b|0)==(e|0)){break s}if((a|0)<0){break r}n=sa(a);H[i>>2]=n;H[i+8>>2]=(t<<2)+n;b=ua(n,0,a);H[i+4>>2]=b+a;f=t>>>0<=1?1:t;g=f&3;a=0;if(f-1>>>0>=3){r=f&-4;while(1){f=d<<2;H[f+b>>2]=a;y=f|4;a=H[e+f>>2]+a|0;H[y+b>>2]=a;u=f|8;a=a+H[e+y>>2]|0;H[u+b>>2]=a;f=f|12;a=a+H[e+u>>2]|0;H[f+b>>2]=a;a=a+H[e+f>>2]|0;d=d+4|0;p=p+4|0;if((r|0)!=(p|0)){continue}break}}if(!g){break s}while(1){f=d<<2;H[f+b>>2]=a;d=d+1|0;a=H[e+f>>2]+a|0;l=l+1|0;if((g|0)!=(l|0)){continue}break}}if(!j){break l}y=H[h+12>>2];f=0;while(1){E=f<<2;a=E+o|0;l=-1;g=f+1|0;b=(g>>>0)%3|0?g:f-2|0;if((b|0)!=-1){l=H[(b<<2)+o>>2]}b=H[a>>2];t:{u:{if(!((f>>>0)%3|0)){p=-1;a=f+2|0;if((a|0)!=-1){p=H[(a<<2)+o>>2]}if(!((b|0)==(l|0)|(b|0)==(p|0))&(l|0)!=(p|0)){break u}H[h+40>>2]=H[h+40>>2]+1;f=f+3|0;break t}p=H[a-4>>2]}a=p<<2;u=H[a+e>>2];v:{w:{if((u|0)<=0){break w}a=H[a+n>>2];d=0;while(1){r=(a<<3)+c|0;z=H[r>>2];if((z|0)==-1){break w}x:{if((l|0)!=(z|0)){break x}r=H[r+4>>2];if((r|0)!=-1){z=H[(r<<2)+o>>2]}else{z=-1}if((z|0)==(b|0)){break x}while(1){y:{b=a;d=d+1|0;if((u|0)<=(d|0)){break y}a=b+1|0;G=(a<<3)+c|0;z=H[G>>2];J=(b<<3)+c|0;H[J+4>>2]=H[G+4>>2];H[J>>2]=z;if((z|0)!=-1){continue}}break}H[(b<<3)+c>>2]=-1;if((r|0)==-1){break w}H[y+E>>2]=r;H[y+(r<<2)>>2]=f;break v}a=a+1|0;d=d+1|0;if((u|0)!=(d|0)){continue}break}}a=l<<2;l=H[a+e>>2];if((l|0)<=0){break v}a=H[a+n>>2];d=0;while(1){b=(a<<3)+c|0;if(H[b>>2]==-1){H[b>>2]=p;H[b+4>>2]=f;break v}a=a+1|0;d=d+1|0;if((l|0)!=(d|0)){continue}break}}f=g}if(j>>>0>f>>>0){continue}break}break l}break i}va();v()}H[x>>2]=t;if(n){ra(n)}if(c){ra(c)}a=H[i+16>>2];if(!a){break j}H[i+20>>2]=a;ra(a)}fa=i+32|0;y=(x|0)!=0;if(y){l=fa-32|0;fa=l;n=H[h>>2];a=H[h+4>>2];H[l+24>>2]=0;H[l+16>>2]=0;H[l+20>>2]=0;z:{if((a|0)==(n|0)){break z}c=a-n|0;if((c|0)<0){break i}b=c>>2;e=b-1>>>5|0;d=sa((e<<2)+4|0);H[l+16>>2]=d;H[d+((c>>>0>=132?e:0)<<2)>>2]=0;c=b>>>5<<2;d=ua(d,0,c);if((b|0)==(b&-32)){break z}c=c+d|0;H[c>>2]=H[c>>2]&(-1>>>32-(b&31)^-1)}H[l+8>>2]=0;H[l>>2]=0;while(1){A:{r=0;o=0;if((a|0)==(n|0)){break A}while(1){b=H[l+16>>2];B:{if(H[b+(o>>>3&536870908)>>2]>>>o&1){break B}e=H[l>>2];H[l+4>>2]=e;c=H[h+12>>2];a=o;while(1){C:{d=a+1|0;i=a;a=(d>>>0)%3|0?d:a-2|0;if((a|0)==-1){break C}a=H[c+(a<<2)>>2];if((a|0)==-1){break C}d=a+1|0;a=(d>>>0)%3|0?d:a-2|0;if((o|0)==(a|0)|(a|0)==-1){break C}if(!(H[b+(a>>>3&536870908)>>2]>>>a&1)){continue}}break}d=i;D:{E:{F:{while(1){a=H[l+16>>2]+(d>>>3&536870908)|0;H[a>>2]=H[a>>2]|1<>>0)%3|0?a:d-2|0;n=H[h>>2];u=(d>>>0)%3|0;b=(u?-1:2)+d|0;j=H[l>>2];G:{if((j|0)==(e|0)){break G}x=H[(g<<2)+n>>2];p=H[h+12>>2];a=j;if((b|0)!=-1){c=p+(b<<2)|0;while(1){H:{if((x|0)!=H[a>>2]){break H}f=H[a+4>>2];t=H[c>>2];if((f|0)==(t|0)){break H}e=-1;c=b;a=-1;if((f|0)==-1){break D}break E}a=a+8|0;if((e|0)!=(a|0)){continue}break}break G}while(1){if((x|0)==H[a>>2]){t=-1;c=-1;f=H[a+4>>2];if((f|0)!=-1){break E}}a=a+8|0;if((e|0)!=(a|0)){continue}break}}f=H[(b<<2)+n>>2];I:{if(H[l+8>>2]!=(e|0)){H[e>>2]=f;H[e+4>>2]=g;e=e+8|0;H[l+4>>2]=e;break I}b=e-j|0;e=b>>3;a=e+1|0;if(a>>>0>=536870912){break i}c=b>>2;c=b>>>0>=2147483640?536870911:a>>>0>>0?c:a;if(c){if(c>>>0>=536870912){break F}a=sa(c<<3)}else{a=0}e=a+(e<<3)|0;H[e>>2]=f;H[e+4>>2]=g;e=e+8|0;if((b|0)>0){ta(a,j,b)}H[l+8>>2]=a+(c<<3);H[l+4>>2]=e;H[l>>2]=a;if(!j){break I}ra(j)}J:{K:{if(u){a=d-1|0;break K}a=d+2|0;if((a|0)==-1){break J}}a=H[H[h+12>>2]+(a<<2)>>2];if((a|0)==-1){break J}d=a+((a>>>0)%3|0?-1:2)|0;if((i|0)==(d|0)){break J}if((d|0)!=-1){continue}}break}n=H[h>>2];break B}za();v()}b=c;e=f;a=H[p+(e<<2)>>2]}if((t|0)!=-1){H[p+(t<<2)>>2]=-1}if((a|0)!=-1){H[H[h+12>>2]+(a<<2)>>2]=-1}a=H[h+12>>2];H[a+(b<<2)>>2]=-1;H[a+(e<<2)>>2]=-1;r=1}o=o+1|0;a=H[h+4>>2];if(o>>>0>2>>>0){continue}break}if(r){continue}}break}a=H[l>>2];if(a){ra(a)}a=H[l+16>>2];if(a){ra(a)}fa=l+32|0;c=0;f=0;l=0;i=fa-32|0;fa=i;a=H[B+12>>2];H[h+36>>2]=a;o=h+24|0;d=H[h+24>>2];b=H[h+28>>2]-d>>2;L:{M:{if(b>>>0>>0){Ia(o,a-b|0,13652);H[i+24>>2]=0;H[i+16>>2]=0;H[i+20>>2]=0;break M}if(a>>>0>>0){H[h+28>>2]=d+(a<<2)}H[i+24>>2]=0;H[i+16>>2]=0;H[i+20>>2]=0;if(!a){break L}}if((a|0)<0){break i}b=a-1>>>5|0;d=b+1|0;c=sa(d<<2);H[i+24>>2]=d;H[i+16>>2]=c;H[i+20>>2]=a;H[((a>>>0>=33?b:0)<<2)+c>>2]=0;b=a>>>5<<2;d=ua(c,0,b);if((a&-32)==(a|0)){break L}b=b+d|0;H[b>>2]=H[b>>2]&(-1>>>32-(a&31)^-1)}j=H[h>>2];e=H[h+4>>2];H[i+8>>2]=0;H[i>>2]=0;H[i+4>>2]=0;d=e-j|0;N:{if((e|0)==(j|0)){break N}if((d|0)<0){break i}b=d>>2;g=b-1>>>5|0;n=g+1|0;f=sa(n<<2);H[i+8>>2]=n;H[i>>2]=f;H[i+4>>2]=b;H[((d>>>0>=132?g:0)<<2)+f>>2]=0;g=b>>>5<<2;n=ua(f,0,g);if((b|0)==(b&-32)){break N}g=g+n|0;H[g>>2]=H[g>>2]&(-1>>>32-(b&31)^-1)}if(d>>>0>=12){O:{P:{while(1){p=N(l,3);d=(p<<2)+j|0;b=H[d>>2];g=-1;n=p+1|0;if((n|0)!=-1){g=H[(n<<2)+j>>2]}Q:{if((b|0)==(g|0)){break Q}n=b;b=H[d+8>>2];if((n|0)==(b|0)){break Q}n=0;if((b|0)==(g|0)){break Q}while(1){b=n+p|0;if(!(H[(b>>>3&536870908)+f>>2]>>>b&1)){d=H[(b<<2)+j>>2];g=1<>>5|0;t=g&H[(j<<2)+c>>2];if(t){c=H[h+28>>2];R:{if((c|0)!=H[h+32>>2]){H[c>>2]=-1;H[h+28>>2]=c+4;break R}f=H[o>>2];e=c-f|0;j=e>>2;c=j+1|0;if(c>>>0>=1073741824){break i}g=e>>1;g=e>>>0>=2147483644?1073741823:c>>>0>>0?g:c;if(g){if(g>>>0>=1073741824){break P}c=sa(g<<2)}else{c=0}j=c+(j<<2)|0;H[j>>2]=-1;if((e|0)>0){ta(c,f,e)}H[h+32>>2]=c+(g<<2);H[h+28>>2]=j+4;H[h+24>>2]=c;if(!f){break R}ra(f)}c=H[h+52>>2];S:{if((c|0)!=H[h+56>>2]){H[c>>2]=d;H[h+52>>2]=c+4;break S}f=H[h+48>>2];e=c-f|0;j=e>>2;c=j+1|0;if(c>>>0>=1073741824){break i}g=e>>1;g=e>>>0>=2147483644?1073741823:c>>>0>>0?g:c;if(g){if(g>>>0>=1073741824){break P}c=sa(g<<2)}else{c=0}j=c+(j<<2)|0;H[j>>2]=d;if((e|0)>0){ta(c,f,e)}H[h+56>>2]=c+(g<<2);H[h+52>>2]=j+4;H[h+48>>2]=c;if(!f){break S}ra(f)}g=H[i+20>>2];c=H[i+24>>2];if((g|0)==c<<5){if((g+1|0)<0){break i}d=i+16|0;if(g>>>0<=1073741822){c=c<<6;e=(g&-32)+32|0;c=c>>>0>e>>>0?c:e}else{c=2147483647}tb(d,c);g=H[i+20>>2]}H[i+20>>2]=g+1;c=H[i+16>>2]+(g>>>3&536870908)|0;d=H[c>>2];L=c,M=Rj(g)&d,H[L>>2]=M;g=1<>>5|0;d=a;a=a+1|0}e=a;c=H[i+16>>2];a=c+(j<<2)|0;H[a>>2]=H[a>>2]|g;x=H[h+24>>2]+(d<<2)|0;r=H[h+12>>2];j=H[h>>2];f=H[i>>2];a=b;T:{U:{V:{while(1){if((a|0)==-1){break V}g=(a>>>3&536870908)+f|0;H[g>>2]=H[g>>2]|1<>2]=a;if(t){H[(a<<2)+j>>2]=d}u=a+1|0;a=(u>>>0)%3|0?u:a-2|0;g=-1;W:{if((a|0)==-1){break W}a=H[r+(a<<2)>>2];g=-1;if((a|0)==-1){break W}g=a+1|0;g=(g>>>0)%3|0?g:a-2|0}a=g;if((b|0)!=(a|0)){continue}break}if((b|0)!=-1){break T}a=1;break U}if((b>>>0)%3|0){a=b-1|0;break U}a=b+2|0;if((a|0)==-1){break T}}a=H[r+(a<<2)>>2];if((a|0)==-1){break T}X:{if((a>>>0)%3|0){a=a-1|0;break X}a=a+2|0;if((a|0)==-1){break T}}b=H[h+12>>2];j=H[h>>2];f=H[i>>2];while(1){g=(a>>>3&536870908)+f|0;H[g>>2]=H[g>>2]|1<>2]=d}Y:{if((a>>>0)%3|0){a=a-1|0;break Y}a=a+2|0;if((a|0)==-1){break T}}a=H[b+(a<<2)>>2];if((a|0)==-1){break T}a=a+((a>>>0)%3|0?-1:2)|0;if((a|0)!=-1){continue}break}}a=e}n=n+1|0;if((n|0)!=3){continue}break}j=H[h>>2];e=H[h+4>>2]}l=l+1|0;if(l>>>0<(e-j>>2>>>0)/3>>>0){continue}break}break O}za();v()}c=H[i+16>>2]}a=0;H[h+44>>2]=0;b=H[i+20>>2];if(b){d=b&31;b=(b>>>3&536870908)+c|0;g=c;f=0;while(1){if(!(H[g>>2]>>>a&1)){f=f+1|0;H[h+44>>2]=f}e=(a|0)==31;a=e?0:a+1|0;g=(e<<2)+g|0;if((b|0)!=(g|0)|(a|0)!=(d|0)){continue}break}}a=H[i>>2];if(a){ra(a);c=H[i+16>>2]}if(c){ra(c)}fa=i+32|0}fa=B+16|0;if(!y){H[D+8>>2]=0;fb(h);h=0}fa=D+16|0;a=h;break h}va();v()}b=H[s>>2];if(!b){break d}H[s+4>>2]=b;ra(b)}fa=s+16|0;break b}va();v()}c=H[k+4>>2];b=a;H[k+4>>2]=a;if(c){fb(c);b=H[k+4>>2]}Z:{if(!b){break Z}a=H[w+100>>2];c=H[w+96>>2];F[q+12|0]=0;Ra(k+56|0,(a-c|0)/12|0,q+12|0);a=H[w+100>>2];c=H[w+96>>2];if((a|0)==(c|0)){break Z}while(1){if(!(H[H[k+56>>2]+(C>>>3&536870908)>>2]>>>C&1)){a=N(C,3);Fc(k,0,a);c=H[k+8>>2];d=H[k+12>>2];Fc(k,1,a+1|0);e=H[k+20>>2];f=H[k+24>>2];Fc(k,2,a+2|0);g=(c|0)==(d|0)?-1:0;a=f-e>>2;c=d-c>>2;d=a>>>0>c>>>0;c=H[k+36>>2]-H[k+32>>2]>>2>>>0>(d?a:c)>>>0?2:d?1:g;_:{if(H[k+68>>2]<=0){break _}H[q+12>>2]=H[k+76>>2];H[q+8>>2]=m;eb(q+8|0,q+12|0);a=H[((c<<2)+k|0)+44>>2];if((a|0)<0){a=-1}else{d=(a>>>0)/3|0;a=H[(H[H[k>>2]+96>>2]+N(d,12)|0)+(a-N(d,3)<<2)>>2]}H[q+12>>2]=a;H[q+8>>2]=m;eb(q+8|0,q+12|0);d=H[k+72>>2];H[k+72>>2]=d+2;if(!(d&1)){break _}H[q+12>>2]=a;H[q+8>>2]=m;eb(q+8|0,q+12|0);H[k+72>>2]=H[k+72>>2]+1}f=0;d=fa-16|0;fa=d;H[k+68>>2]=H[k+68>>2]+1;a=N(c,12)+k|0;a=H[a+12>>2]-H[a+8>>2]|0;if((a|0)>0){a=a>>>2|0;g=a>>>0<=1?1:a;c=H[((c<<2)+k|0)+44>>2];while(1){a=c;e=(a>>>0)/3|0;c=(a|0)==-1;i=c?-1:e;h=H[k+56>>2]+(i>>>3&536870908)|0;H[h>>2]=H[h>>2]|1<>2]=H[k+72>>2]+1;$:{aa:{ba:{ca:{da:{if(!f){ea:{if((a|0)>=0){H[d+12>>2]=H[(H[H[k>>2]+96>>2]+N(e,12)|0)+((a>>>0)%3<<2)>>2];H[d+8>>2]=m;eb(d+8|0,d+12|0);break ea}H[d+12>>2]=-1;H[d+8>>2]=m;eb(d+8|0,d+12|0);if(c){break da}}c=-1;e=a+1|0;e=(e>>>0)%3|0?e:a-2|0;if((e|0)>=0){i=(e>>>0)/3|0;e=H[(H[H[k>>2]+96>>2]+N(i,12)|0)+(e-N(i,3)<<2)>>2]}else{e=-1}H[d+12>>2]=e;H[d+8>>2]=m;eb(d+8|0,d+12|0);e=((a>>>0)%3|0?-1:2)+a|0;if((e|0)<0){break ca}c=(e>>>0)/3|0;c=H[(H[H[k>>2]+96>>2]+N(c,12)|0)+(e-N(c,3)<<2)>>2];break ca}c=(a|0)<0?-1:H[(H[H[k>>2]+96>>2]+N(e,12)|0)+((a>>>0)%3<<2)>>2];H[k+76>>2]=c;H[d+12>>2]=c;H[d+8>>2]=m;eb(d+8|0,d+12|0);if(f&1){c=-1;if((a|0)==-1){break $}if((N(e,3)|0)!=(a|0)){a=a-1|0;break aa}a=a+2|0;break ba}c=-1;if((a|0)==-1){break $}c=a+1|0;a=(c>>>0)%3|0?c:a-2|0;break ba}c=-1;H[d+12>>2]=-1;H[d+8>>2]=m;eb(d+8|0,d+12|0)}H[k+76>>2]=c;H[d+12>>2]=c;H[d+8>>2]=m;eb(d+8|0,d+12|0)}c=-1;if((a|0)==-1){break $}}c=H[H[H[k+4>>2]+12>>2]+(a<<2)>>2]}f=f+1|0;if((g|0)!=(f|0)){continue}break}}fa=d+16|0;c=H[w+96>>2];a=H[w+100>>2]}C=C+1|0;if(C>>>0<(a-c|0)/12>>>0){continue}break}}fa=q+16|0;fa:{if(b){a=H[A>>2];if(a){H[A+4>>2]=a;ra(a)}H[A>>2]=H[m>>2];H[A+4>>2]=H[m+4>>2];H[A+8>>2]=H[m+8>>2];K=H[m+84>>2];break fa}a=H[m>>2];if(!a){break fa}H[m+4>>2]=a;ra(a)}a=H[m+72>>2];if(a){ra(a)}a=H[m+48>>2];if(a){H[m+52>>2]=a;ra(a)}a=H[m+36>>2];if(a){H[m+40>>2]=a;ra(a)}a=H[m+24>>2];if(a){H[m+28>>2]=a;ra(a)}a=H[m+20>>2];H[m+20>>2]=0;if(a){fb(a)}fa=m+96|0;return K|0}function qg(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0;a:{b:{switch(d-1|0){case 0:a=0;i=H[b+80>>2];l=I[c+24|0];c:{if((N(i,l)|0)!=(e|0)){break c}b=H[c+28>>2]!=1;a=I[c+84|0];if(!(b|!a)){ta(f,H[H[c>>2]>>2]+H[c+48>>2]|0,e);a=1;break c}d=0;if(l){d=sa(l);ua(d,0,l)}d:{if(!i){break d}if(!b){if(l){b=0;a=0;while(1){h=H[H[c>>2]>>2];n=H[c+40>>2];e=H[c+48>>2]+Nj(n,H[c+44>>2],I[c+84|0]?a:H[H[c+68>>2]+(a<<2)>>2],0)|0;ta(b+f|0,ta(d,h+e|0,n),l);b=b+l|0;a=a+1|0;if((i|0)!=(a|0)){continue}break}break d}if(a){e=H[c>>2];a=H[c+48>>2];l=H[c+44>>2];p=H[c+40>>2];if((i|0)!=1){m=i&-2;c=0;b=0;while(1){f=H[e>>2];h=Nj(p,l,c,0)+a|0;f=ta(d,f+h|0,p);k=H[e>>2];h=Nj(p,l,c|1,0)+a|0;ta(f,k+h|0,p);c=c+2|0;b=b+2|0;if((m|0)!=(b|0)){continue}break}h=c}if(!(i&1)){break d}c=H[e>>2];b=Nj(h,0,p,l)+a|0;ta(d,c+b|0,p);break d}e=H[c>>2];a=H[c+48>>2];h=H[c+68>>2];l=H[c+44>>2];p=H[c+40>>2];c=0;if((i|0)!=1){j=i&-2;b=0;while(1){f=H[e>>2];k=c<<2;m=Nj(p,l,H[k+h>>2],0)+a|0;f=ta(d,f+m|0,p);o=H[e>>2];m=Nj(p,l,H[h+(k|4)>>2],0)+a|0;ta(f,o+m|0,p);c=c+2|0;b=b+2|0;if((j|0)!=(b|0)){continue}break}}if(!(i&1)){break d}e=H[e>>2];b=Nj(p,l,H[h+(c<<2)>>2],0)+a|0;ta(d,e+b|0,p);break d}a=0;g=1;if(!l){while(1){if(!kc(c,I[c+84|0]?a:H[H[c+68>>2]+(a<<2)>>2],F[c+24|0],d)){break d}a=a+1|0;g=i>>>0>a>>>0;if((a|0)!=(i|0)){continue}break d}}b=0;while(1){if(!kc(c,I[c+84|0]?b:H[H[c+68>>2]+(b<<2)>>2],F[c+24|0],d)){break d}ta(a+f|0,d,l);a=a+l|0;b=b+1|0;g=i>>>0>b>>>0;if((b|0)!=(i|0)){continue}break}}a=!g;if(!d){break c}ra(d)}g=a&1;break a;case 2:k=I[c+24|0];n=k<<1;b=H[b+80>>2];e:{f:{if((N(n,b)|0)!=(e|0)){break f}d=H[c+28>>2]!=3;q=I[c+84|0];if(!(d|!q)){ta(f,H[H[c>>2]>>2]+H[c+48>>2]|0,e);g=1;break e}a=0;if(k){a=sa(n);ua(a,0,n)}g:{if(!b){break g}if(!d){d=H[c+68>>2];i=H[c>>2];e=H[c+48>>2];m=H[c+44>>2];j=H[c+40>>2];if(k){if(!q){c=0;while(1){o=H[i>>2];h=Nj(j,m,H[d+(g<<2)>>2],0)+e|0;ta((c<<1)+f|0,ta(a,o+h|0,j),n);c=c+k|0;g=g+1|0;if((b|0)!=(g|0)){continue}break}break g}c=0;while(1){o=H[i>>2];d=Nj(h,g,j,m)+e|0;ta((c<<1)+f|0,ta(a,o+d|0,j),n);c=c+k|0;d=g;g=h+1|0;d=g?d:d+1|0;h=g;g=d;if((b|0)!=(h|0)|d){continue}break}break g}if(!q){c=0;if((b|0)!=1){h=b&-2;while(1){o=H[i>>2];k=c<<2;f=Nj(j,m,H[k+d>>2],0)+e|0;o=ta(a,o+f|0,j);n=H[i>>2];f=Nj(j,m,H[d+(k|4)>>2],0)+e|0;ta(o,n+f|0,j);c=c+2|0;g=g+2|0;if((h|0)!=(g|0)){continue}break}}if(!(b&1)){break g}f=H[i>>2];b=Nj(j,m,H[d+(c<<2)>>2],0)+e|0;ta(a,f+b|0,j);break g}f=b&1;if((b|0)!=1){k=b&-2;c=0;b=0;while(1){o=H[i>>2];d=Nj(h,g,j,m)+e|0;o=ta(a,o+d|0,j);n=H[i>>2];d=Nj(j,m,h|1,g)+e|0;ta(o,n+d|0,j);d=h+2|0;g=d>>>0<2?g+1|0:g;h=d;d=b;b=c+2|0;d=b>>>0<2?d+1|0:d;c=b;b=d;if((k|0)!=(c|0)|b){continue}break}}if(!f){break g}c=H[i>>2];b=Nj(h,g,j,m)+e|0;ta(a,c+b|0,j);break g}d=0;l=1;if(!k){while(1){if(!ic(c,I[c+84|0]?d:H[H[c+68>>2]+(d<<2)>>2],F[c+24|0],a)){break g}d=d+1|0;l=b>>>0>d>>>0;if((b|0)!=(d|0)){continue}break g}}while(1){if(!ic(c,I[c+84|0]?g:H[H[c+68>>2]+(g<<2)>>2],F[c+24|0],a)){break g}ta((d<<1)+f|0,a,n);d=d+k|0;g=g+1|0;l=b>>>0>g>>>0;if((b|0)!=(g|0)){continue}break}}g=!l;if(!a){break f}ra(a)}g=g&1}break a;case 4:k=I[c+24|0];n=k<<2;b=H[b+80>>2];h:{if((N(n,b)|0)!=(e|0)){break h}i=H[c+28>>2]!=5;d=I[c+84|0];if(!(i|!d)){ta(f,H[H[c>>2]>>2]+H[c+48>>2]|0,e);g=1;break h}a=0;if(k){a=sa(n);ua(a,0,n)}i:{if(!b){break i}if(!i){q=H[c+68>>2];i=H[c>>2];e=H[c+48>>2];m=H[c+44>>2];j=H[c+40>>2];if(k){if(!d){c=0;d=0;while(1){h=H[i>>2];g=Nj(j,m,H[q+(d<<2)>>2],0)+e|0;ta((c<<2)+f|0,ta(a,h+g|0,j),n);c=c+k|0;d=d+1|0;if((b|0)!=(d|0)){continue}break}break i}d=b;c=0;while(1){o=H[i>>2];b=Nj(h,g,j,m)+e|0;ta((c<<2)+f|0,ta(a,o+b|0,j),n);c=c+k|0;b=g;g=h+1|0;b=g?b:b+1|0;h=g;g=b;if((d|0)!=(h|0)|b){continue}break}break i}if(!d){c=0;if((b|0)!=1){g=b&-2;d=0;while(1){k=H[i>>2];h=c<<2;f=Nj(j,m,H[h+q>>2],0)+e|0;k=ta(a,k+f|0,j);o=H[i>>2];f=Nj(j,m,H[q+(h|4)>>2],0)+e|0;ta(k,o+f|0,j);c=c+2|0;d=d+2|0;if((g|0)!=(d|0)){continue}break}}if(!(b&1)){break i}d=H[i>>2];b=Nj(j,m,H[q+(c<<2)>>2],0)+e|0;ta(a,d+b|0,j);break i}f=b&1;if((b|0)!=1){k=b&-2;c=0;b=0;while(1){o=H[i>>2];d=Nj(h,g,j,m)+e|0;o=ta(a,o+d|0,j);n=H[i>>2];d=Nj(j,m,h|1,g)+e|0;ta(o,n+d|0,j);d=g;g=h+2|0;d=g>>>0<2?d+1|0:d;h=g;g=d;c=c+2|0;b=c>>>0<2?b+1|0:b;if((k|0)!=(c|0)|b){continue}break}}if(!f){break i}c=H[i>>2];b=Nj(h,g,j,m)+e|0;ta(a,c+b|0,j);break i}l=1;if(!k){while(1){if(!gc(c,I[c+84|0]?g:H[H[c+68>>2]+(g<<2)>>2],F[c+24|0],a)){break i}g=g+1|0;l=b>>>0>g>>>0;if((b|0)!=(g|0)){continue}break i}}d=0;while(1){if(!gc(c,I[c+84|0]?d:H[H[c+68>>2]+(d<<2)>>2],F[c+24|0],a)){break i}ta((g<<2)+f|0,a,n);g=g+k|0;d=d+1|0;l=b>>>0>d>>>0;if((b|0)!=(d|0)){continue}break}}g=!l;if(!a){break h}ra(a)}g=g&1;break a;case 1:a=0;i=H[b+80>>2];l=I[c+24|0];j:{if((N(i,l)|0)!=(e|0)){break j}b=H[c+28>>2]!=2;a=I[c+84|0];if(!(b|!a)){ta(f,H[H[c>>2]>>2]+H[c+48>>2]|0,e);a=1;break j}d=0;if(l){d=sa(l);ua(d,0,l)}k:{if(!i){break k}if(!b){if(l){b=0;a=0;while(1){h=H[H[c>>2]>>2];n=H[c+40>>2];e=H[c+48>>2]+Nj(n,H[c+44>>2],I[c+84|0]?a:H[H[c+68>>2]+(a<<2)>>2],0)|0;ta(b+f|0,ta(d,h+e|0,n),l);b=b+l|0;a=a+1|0;if((i|0)!=(a|0)){continue}break}break k}if(a){e=H[c>>2];a=H[c+48>>2];l=H[c+44>>2];p=H[c+40>>2];if((i|0)!=1){m=i&-2;c=0;b=0;while(1){f=H[e>>2];h=Nj(p,l,c,0)+a|0;f=ta(d,f+h|0,p);k=H[e>>2];h=Nj(p,l,c|1,0)+a|0;ta(f,k+h|0,p);c=c+2|0;b=b+2|0;if((m|0)!=(b|0)){continue}break}h=c}if(!(i&1)){break k}c=H[e>>2];b=Nj(h,0,p,l)+a|0;ta(d,c+b|0,p);break k}e=H[c>>2];a=H[c+48>>2];h=H[c+68>>2];l=H[c+44>>2];p=H[c+40>>2];c=0;if((i|0)!=1){j=i&-2;b=0;while(1){f=H[e>>2];k=c<<2;m=Nj(p,l,H[k+h>>2],0)+a|0;f=ta(d,f+m|0,p);o=H[e>>2];m=Nj(p,l,H[h+(k|4)>>2],0)+a|0;ta(f,o+m|0,p);c=c+2|0;b=b+2|0;if((j|0)!=(b|0)){continue}break}}if(!(i&1)){break k}e=H[e>>2];b=Nj(p,l,H[h+(c<<2)>>2],0)+a|0;ta(d,e+b|0,p);break k}a=0;g=1;if(!l){while(1){if(!jc(c,I[c+84|0]?a:H[H[c+68>>2]+(a<<2)>>2],F[c+24|0],d)){break k}a=a+1|0;g=i>>>0>a>>>0;if((a|0)!=(i|0)){continue}break k}}b=0;while(1){if(!jc(c,I[c+84|0]?b:H[H[c+68>>2]+(b<<2)>>2],F[c+24|0],d)){break k}ta(a+f|0,d,l);a=a+l|0;b=b+1|0;g=i>>>0>b>>>0;if((b|0)!=(i|0)){continue}break}}a=!g;if(!d){break j}ra(d)}g=a&1;break a;case 3:k=I[c+24|0];n=k<<1;b=H[b+80>>2];l:{m:{if((N(n,b)|0)!=(e|0)){break m}d=H[c+28>>2]!=4;q=I[c+84|0];if(!(d|!q)){ta(f,H[H[c>>2]>>2]+H[c+48>>2]|0,e);g=1;break l}a=0;if(k){a=sa(n);ua(a,0,n)}n:{if(!b){break n}if(!d){d=H[c+68>>2];i=H[c>>2];e=H[c+48>>2];m=H[c+44>>2];j=H[c+40>>2];if(k){if(!q){c=0;while(1){o=H[i>>2];h=Nj(j,m,H[d+(g<<2)>>2],0)+e|0;ta((c<<1)+f|0,ta(a,o+h|0,j),n);c=c+k|0;g=g+1|0;if((b|0)!=(g|0)){continue}break}break n}c=0;while(1){o=H[i>>2];d=Nj(h,g,j,m)+e|0;ta((c<<1)+f|0,ta(a,o+d|0,j),n);c=c+k|0;d=g;g=h+1|0;d=g?d:d+1|0;h=g;g=d;if((b|0)!=(h|0)|d){continue}break}break n}if(!q){c=0;if((b|0)!=1){h=b&-2;while(1){o=H[i>>2];k=c<<2;f=Nj(j,m,H[k+d>>2],0)+e|0;o=ta(a,o+f|0,j);n=H[i>>2];f=Nj(j,m,H[d+(k|4)>>2],0)+e|0;ta(o,n+f|0,j);c=c+2|0;g=g+2|0;if((h|0)!=(g|0)){continue}break}}if(!(b&1)){break n}f=H[i>>2];b=Nj(j,m,H[d+(c<<2)>>2],0)+e|0;ta(a,f+b|0,j);break n}f=b&1;if((b|0)!=1){k=b&-2;c=0;b=0;while(1){o=H[i>>2];d=Nj(h,g,j,m)+e|0;o=ta(a,o+d|0,j);n=H[i>>2];d=Nj(j,m,h|1,g)+e|0;ta(o,n+d|0,j);d=h+2|0;g=d>>>0<2?g+1|0:g;h=d;d=b;b=c+2|0;d=b>>>0<2?d+1|0:d;c=b;b=d;if((k|0)!=(c|0)|b){continue}break}}if(!f){break n}c=H[i>>2];b=Nj(h,g,j,m)+e|0;ta(a,c+b|0,j);break n}d=0;l=1;if(!k){while(1){if(!hc(c,I[c+84|0]?d:H[H[c+68>>2]+(d<<2)>>2],F[c+24|0],a)){break n}d=d+1|0;l=b>>>0>d>>>0;if((b|0)!=(d|0)){continue}break n}}while(1){if(!hc(c,I[c+84|0]?g:H[H[c+68>>2]+(g<<2)>>2],F[c+24|0],a)){break n}ta((d<<1)+f|0,a,n);d=d+k|0;g=g+1|0;l=b>>>0>g>>>0;if((b|0)!=(g|0)){continue}break}}g=!l;if(!a){break m}ra(a)}g=g&1}break a;case 5:k=I[c+24|0];n=k<<2;b=H[b+80>>2];o:{if((N(n,b)|0)!=(e|0)){break o}i=H[c+28>>2]!=6;d=I[c+84|0];if(!(i|!d)){ta(f,H[H[c>>2]>>2]+H[c+48>>2]|0,e);g=1;break o}a=0;if(k){a=sa(n);ua(a,0,n)}p:{if(!b){break p}if(!i){q=H[c+68>>2];i=H[c>>2];e=H[c+48>>2];m=H[c+44>>2];j=H[c+40>>2];if(k){if(!d){c=0;d=0;while(1){h=H[i>>2];g=Nj(j,m,H[q+(d<<2)>>2],0)+e|0;ta((c<<2)+f|0,ta(a,h+g|0,j),n);c=c+k|0;d=d+1|0;if((b|0)!=(d|0)){continue}break}break p}d=b;c=0;while(1){o=H[i>>2];b=Nj(h,g,j,m)+e|0;ta((c<<2)+f|0,ta(a,o+b|0,j),n);c=c+k|0;b=g;g=h+1|0;b=g?b:b+1|0;h=g;g=b;if((d|0)!=(h|0)|b){continue}break}break p}if(!d){c=0;if((b|0)!=1){g=b&-2;d=0;while(1){k=H[i>>2];h=c<<2;f=Nj(j,m,H[h+q>>2],0)+e|0;k=ta(a,k+f|0,j);o=H[i>>2];f=Nj(j,m,H[q+(h|4)>>2],0)+e|0;ta(k,o+f|0,j);c=c+2|0;d=d+2|0;if((g|0)!=(d|0)){continue}break}}if(!(b&1)){break p}d=H[i>>2];b=Nj(j,m,H[q+(c<<2)>>2],0)+e|0;ta(a,d+b|0,j);break p}f=b&1;if((b|0)!=1){k=b&-2;c=0;b=0;while(1){o=H[i>>2];d=Nj(h,g,j,m)+e|0;o=ta(a,o+d|0,j);n=H[i>>2];d=Nj(j,m,h|1,g)+e|0;ta(o,n+d|0,j);d=g;g=h+2|0;d=g>>>0<2?d+1|0:d;h=g;g=d;c=c+2|0;b=c>>>0<2?b+1|0:b;if((k|0)!=(c|0)|b){continue}break}}if(!f){break p}c=H[i>>2];b=Nj(h,g,j,m)+e|0;ta(a,c+b|0,j);break p}l=1;if(!k){while(1){if(!ec(c,I[c+84|0]?g:H[H[c+68>>2]+(g<<2)>>2],F[c+24|0],a)){break p}g=g+1|0;l=b>>>0>g>>>0;if((b|0)!=(g|0)){continue}break p}}d=0;while(1){if(!ec(c,I[c+84|0]?d:H[H[c+68>>2]+(d<<2)>>2],F[c+24|0],a)){break p}ta((g<<2)+f|0,a,n);g=g+k|0;d=d+1|0;l=b>>>0>d>>>0;if((b|0)!=(d|0)){continue}break}}g=!l;if(!a){break o}ra(a)}g=g&1;break a;case 8:break b;default:break a}}a=0;n=I[c+24|0];q=n<<2;i=H[b+80>>2];q:{if((N(q,i)|0)!=(e|0)){break q}e=H[c+28>>2];b=0;r:{if(!n){break r}b=sa(q);a=b;p=q-4|0;m=(p>>>2|0)+1&7;if(m){d=0;a=b;while(1){H[a>>2]=-1073741824;a=a+4|0;d=d+1|0;if((m|0)!=(d|0)){continue}break}}if(p>>>0<28){break r}d=(n<<2)+b|0;while(1){H[a+24>>2]=-1073741824;H[a+28>>2]=-1073741824;H[a+16>>2]=-1073741824;H[a+20>>2]=-1073741824;H[a+8>>2]=-1073741824;H[a+12>>2]=-1073741824;H[a>>2]=-1073741824;H[a+4>>2]=-1073741824;a=a+32|0;if((d|0)!=(a|0)){continue}break}}s:{if(!i){break s}if((e|0)==9){j=H[c+68>>2];m=H[c>>2];e=H[c+48>>2];s=I[c+84|0];p=H[c+44>>2];c=H[c+40>>2];k=c;if(n){d=0;a=0;while(1){h=H[m>>2];g=Nj(c,p,s?a:H[j+(a<<2)>>2],0)+e|0;ta((d<<2)+f|0,ta(b,h+g|0,k),q);d=d+n|0;a=a+1|0;if((i|0)!=(a|0)){continue}break}break s}if(!s){a=0;if((i|0)!=1){g=i&-2;d=0;while(1){l=H[m>>2];h=a<<2;f=Nj(c,p,H[h+j>>2],0)+e|0;l=ta(b,l+f|0,k);o=H[m>>2];f=Nj(c,p,H[j+(h|4)>>2],0)+e|0;ta(l,o+f|0,k);a=a+2|0;d=d+2|0;if((g|0)!=(d|0)){continue}break}}if(!(i&1)){break s}d=H[m>>2];a=Nj(c,p,H[j+(a<<2)>>2],0)+e|0;ta(b,d+a|0,k);break s}f=i&1;if((i|0)!=1){i=i&-2;while(1){d=H[m>>2];a=Nj(h,g,c,p)+e|0;d=ta(b,d+a|0,k);j=H[m>>2];a=Nj(c,p,h|1,g)+e|0;ta(d,j+a|0,k);a=h+2|0;g=a>>>0<2?g+1|0:g;h=a;d=l;a=o+2|0;d=a>>>0<2?d+1|0:d;o=a;l=d;if((i|0)!=(a|0)|d){continue}break}}if(!f){break s}d=H[m>>2];a=Nj(h,g,c,p)+e|0;ta(b,d+a|0,k);break s}a=0;r=1;if(!n){while(1){if(!Ya(c,I[c+84|0]?a:H[H[c+68>>2]+(a<<2)>>2],F[c+24|0],b)){break s}a=a+1|0;r=i>>>0>a>>>0;if((a|0)!=(i|0)){continue}break s}}d=0;while(1){if(!Ya(c,I[c+84|0]?d:H[H[c+68>>2]+(d<<2)>>2],F[c+24|0],b)){break s}ta((a<<2)+f|0,b,q);a=a+n|0;d=d+1|0;r=i>>>0>d>>>0;if((d|0)!=(i|0)){continue}break}}a=!r;if(!b){break q}ra(b)}g=a&1}return g|0}function Hd(a){a=a|0;var b=0,c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0;l=fa-16|0;fa=l;a:{b:{c:{d:{e:{f:{g:{h:{i:{j:{k:{if(a>>>0<=244){e=H[4296];h=a>>>0<11?16:a+11&-8;c=h>>>3|0;b=e>>>c|0;if(b&3){c=c+((b^-1)&1)|0;a=c<<3;b=a+17224|0;d=H[a+17232>>2];a=H[d+8>>2];l:{if((b|0)==(a|0)){m=17184,n=Rj(c)&e,H[m>>2]=n;break l}H[a+12>>2]=b;H[b+8>>2]=a}a=d+8|0;b=c<<3;H[d+4>>2]=b|3;b=b+d|0;H[b+4>>2]=H[b+4>>2]|1;break a}k=H[4298];if(k>>>0>=h>>>0){break k}if(b){a=2<>>12&16;c=a;b=b>>>a|0;a=b>>>5&8;c=c|a;b=b>>>a|0;a=b>>>2&4;c=c|a;b=b>>>a|0;a=b>>>1&2;c=c|a;b=b>>>a|0;a=b>>>1&1;d=(c|a)+(b>>>a|0)|0;a=d<<3;b=a+17224|0;g=H[a+17232>>2];a=H[g+8>>2];m:{if((b|0)==(a|0)){e=Rj(d)&e;H[4296]=e;break m}H[a+12>>2]=b;H[b+8>>2]=a}H[g+4>>2]=h|3;c=g+h|0;a=d<<3;d=a-h|0;H[c+4>>2]=d|1;H[a+g>>2]=d;if(k){b=(k&-8)+17224|0;f=H[4301];a=1<<(k>>>3);n:{if(!(a&e)){H[4296]=a|e;a=b;break n}a=H[b+8>>2]}H[b+8>>2]=f;H[a+12>>2]=f;H[f+12>>2]=b;H[f+8>>2]=a}a=g+8|0;H[4301]=c;H[4298]=d;break a}j=H[4297];if(!j){break k}b=j-1&(j^-1);a=b>>>12&16;c=a;b=b>>>a|0;a=b>>>5&8;c=c|a;b=b>>>a|0;a=b>>>2&4;c=c|a;b=b>>>a|0;a=b>>>1&2;c=c|a;b=b>>>a|0;a=b>>>1&1;c=H[((c|a)+(b>>>a|0)<<2)+17488>>2];f=(H[c+4>>2]&-8)-h|0;b=c;while(1){o:{a=H[b+16>>2];if(!a){a=H[b+20>>2];if(!a){break o}}b=(H[a+4>>2]&-8)-h|0;d=b>>>0>>0;f=d?b:f;c=d?a:c;b=a;continue}break}i=H[c+24>>2];d=H[c+12>>2];if((d|0)!=(c|0)){a=H[c+8>>2];H[a+12>>2]=d;H[d+8>>2]=a;break b}b=c+20|0;a=H[b>>2];if(!a){a=H[c+16>>2];if(!a){break j}b=c+16|0}while(1){g=b;d=a;b=a+20|0;a=H[b>>2];if(a){continue}b=d+16|0;a=H[d+16>>2];if(a){continue}break}H[g>>2]=0;break b}h=-1;if(a>>>0>4294967231){break k}a=a+11|0;h=a&-8;j=H[4297];if(!j){break k}f=0-h|0;e=0;p:{if(h>>>0<256){break p}e=31;if(h>>>0>16777215){break p}a=a>>>8|0;g=a+1048320>>>16&8;a=a<>>16&4;a=a<>>16&2;a=(a<>>15|0)-(b|(c|g))|0;e=(a<<1|h>>>a+21&1)+28|0}b=H[(e<<2)+17488>>2];q:{r:{s:{if(!b){a=0;break s}a=0;c=h<<((e|0)!=31?25-(e>>>1|0)|0:0);while(1){t:{g=(H[b+4>>2]&-8)-h|0;if(g>>>0>=f>>>0){break t}d=b;f=g;if(f){break t}f=0;a=b;break r}g=H[b+20>>2];b=H[((c>>>29&4)+b|0)+16>>2];a=g?(g|0)==(b|0)?a:g:a;c=c<<1;if(b){continue}break}}if(!(a|d)){d=0;a=2<>>12&16;c=a;b=b>>>a|0;a=b>>>5&8;c=c|a;b=b>>>a|0;a=b>>>2&4;c=c|a;b=b>>>a|0;a=b>>>1&2;c=c|a;b=b>>>a|0;a=b>>>1&1;a=H[((c|a)+(b>>>a|0)<<2)+17488>>2]}if(!a){break q}}while(1){b=(H[a+4>>2]&-8)-h|0;c=b>>>0>>0;f=c?b:f;d=c?a:d;b=H[a+16>>2];if(b){a=b}else{a=H[a+20>>2]}if(a){continue}break}}if(!d|H[4298]-h>>>0<=f>>>0){break k}e=H[d+24>>2];c=H[d+12>>2];if((d|0)!=(c|0)){a=H[d+8>>2];H[a+12>>2]=c;H[c+8>>2]=a;break c}b=d+20|0;a=H[b>>2];if(!a){a=H[d+16>>2];if(!a){break i}b=d+16|0}while(1){g=b;c=a;b=a+20|0;a=H[b>>2];if(a){continue}b=c+16|0;a=H[c+16>>2];if(a){continue}break}H[g>>2]=0;break c}c=H[4298];if(c>>>0>=h>>>0){d=H[4301];b=c-h|0;u:{if(b>>>0>=16){H[4298]=b;a=d+h|0;H[4301]=a;H[a+4>>2]=b|1;H[c+d>>2]=b;H[d+4>>2]=h|3;break u}H[4301]=0;H[4298]=0;H[d+4>>2]=c|3;a=c+d|0;H[a+4>>2]=H[a+4>>2]|1}a=d+8|0;break a}i=H[4299];if(i>>>0>h>>>0){b=i-h|0;H[4299]=b;c=H[4302];a=c+h|0;H[4302]=a;H[a+4>>2]=b|1;H[c+4>>2]=h|3;a=c+8|0;break a}a=0;j=h+47|0;if(H[4414]){c=H[4416]}else{H[4417]=-1;H[4418]=-1;H[4415]=4096;H[4416]=4096;H[4414]=l+12&-16^1431655768;H[4419]=0;H[4407]=0;c=4096}g=j+c|0;f=0-c|0;b=g&f;if(b>>>0<=h>>>0){break a}d=H[4406];if(d){c=H[4404];e=c+b|0;if(d>>>0>>0|c>>>0>=e>>>0){break a}}if(I[17628]&4){break f}v:{w:{d=H[4302];if(d){a=17632;while(1){c=H[a>>2];if(c>>>0<=d>>>0&d>>>0>2]>>>0){break w}a=H[a+8>>2];if(a){continue}break}}c=lb(0);if((c|0)==-1){break g}e=b;d=H[4415];a=d-1|0;if(a&c){e=(b-c|0)+(a+c&0-d)|0}if(e>>>0<=h>>>0|e>>>0>2147483646){break g}d=H[4406];if(d){a=H[4404];f=a+e|0;if(d>>>0>>0|a>>>0>=f>>>0){break g}}a=lb(e);if((c|0)!=(a|0)){break v}break e}e=f&g-i;if(e>>>0>2147483646){break g}c=lb(e);if((c|0)==(H[a>>2]+H[a+4>>2]|0)){break h}a=c}if(!((a|0)==-1|h+48>>>0<=e>>>0)){c=H[4416];c=c+(j-e|0)&0-c;if(c>>>0>2147483646){c=a;break e}if((lb(c)|0)!=-1){e=c+e|0;c=a;break e}lb(0-e|0);break g}c=a;if((a|0)!=-1){break e}break g}d=0;break b}c=0;break c}if((c|0)!=-1){break e}}H[4407]=H[4407]|4}if(b>>>0>2147483646){break d}c=lb(b);a=lb(0);if((c|0)==-1|(a|0)==-1|a>>>0<=c>>>0){break d}e=a-c|0;if(e>>>0<=h+40>>>0){break d}}a=H[4404]+e|0;H[4404]=a;if(a>>>0>K[4405]){H[4405]=a}x:{y:{z:{g=H[4302];if(g){a=17632;while(1){d=H[a>>2];b=H[a+4>>2];if((d+b|0)==(c|0)){break z}a=H[a+8>>2];if(a){continue}break}break y}a=H[4300];if(!(a>>>0<=c>>>0?a:0)){H[4300]=c}a=0;H[4409]=e;H[4408]=c;H[4304]=-1;H[4305]=H[4414];H[4411]=0;while(1){d=a<<3;b=d+17224|0;H[d+17232>>2]=b;H[d+17236>>2]=b;a=a+1|0;if((a|0)!=32){continue}break}d=e-40|0;a=c+8&7?-8-c&7:0;b=d-a|0;H[4299]=b;a=a+c|0;H[4302]=a;H[a+4>>2]=b|1;H[(c+d|0)+4>>2]=40;H[4303]=H[4418];break x}if(I[a+12|0]&8|d>>>0>g>>>0|c>>>0<=g>>>0){break y}H[a+4>>2]=b+e;a=g+8&7?-8-g&7:0;c=a+g|0;H[4302]=c;b=H[4299]+e|0;a=b-a|0;H[4299]=a;H[c+4>>2]=a|1;H[(b+g|0)+4>>2]=40;H[4303]=H[4418];break x}if(K[4300]>c>>>0){H[4300]=c}b=c+e|0;a=17632;A:{B:{C:{D:{E:{F:{while(1){if((b|0)!=H[a>>2]){a=H[a+8>>2];if(a){continue}break F}break}if(!(I[a+12|0]&8)){break E}}a=17632;while(1){b=H[a>>2];if(b>>>0<=g>>>0){f=b+H[a+4>>2]|0;if(f>>>0>g>>>0){break D}}a=H[a+8>>2];continue}}H[a>>2]=c;H[a+4>>2]=H[a+4>>2]+e;j=(c+8&7?-8-c&7:0)+c|0;H[j+4>>2]=h|3;e=b+(b+8&7?-8-b&7:0)|0;i=h+j|0;a=e-i|0;if((e|0)==(g|0)){H[4302]=i;a=H[4299]+a|0;H[4299]=a;H[i+4>>2]=a|1;break B}if(H[4301]==(e|0)){H[4301]=i;a=H[4298]+a|0;H[4298]=a;H[i+4>>2]=a|1;H[a+i>>2]=a;break B}f=H[e+4>>2];if((f&3)==1){g=f&-8;G:{if(f>>>0<=255){d=H[e+8>>2];b=f>>>3|0;c=H[e+12>>2];if((c|0)==(d|0)){m=17184,n=H[4296]&Rj(b),H[m>>2]=n;break G}H[d+12>>2]=c;H[c+8>>2]=d;break G}h=H[e+24>>2];c=H[e+12>>2];H:{if((e|0)!=(c|0)){b=H[e+8>>2];H[b+12>>2]=c;H[c+8>>2]=b;break H}I:{f=e+20|0;b=H[f>>2];if(b){break I}f=e+16|0;b=H[f>>2];if(b){break I}c=0;break H}while(1){d=f;c=b;f=b+20|0;b=H[f>>2];if(b){continue}f=c+16|0;b=H[c+16>>2];if(b){continue}break}H[d>>2]=0}if(!h){break G}d=H[e+28>>2];b=(d<<2)+17488|0;J:{if(H[b>>2]==(e|0)){H[b>>2]=c;if(c){break J}m=17188,n=H[4297]&Rj(d),H[m>>2]=n;break G}H[h+(H[h+16>>2]==(e|0)?16:20)>>2]=c;if(!c){break G}}H[c+24>>2]=h;b=H[e+16>>2];if(b){H[c+16>>2]=b;H[b+24>>2]=c}b=H[e+20>>2];if(!b){break G}H[c+20>>2]=b;H[b+24>>2]=c}e=e+g|0;f=H[e+4>>2];a=a+g|0}H[e+4>>2]=f&-2;H[i+4>>2]=a|1;H[a+i>>2]=a;if(a>>>0<=255){b=(a&-8)+17224|0;c=H[4296];a=1<<(a>>>3);K:{if(!(c&a)){H[4296]=a|c;a=b;break K}a=H[b+8>>2]}H[b+8>>2]=i;H[a+12>>2]=i;H[i+12>>2]=b;H[i+8>>2]=a;break B}f=31;if(a>>>0<=16777215){b=a>>>8|0;f=b+1048320>>>16&8;b=b<>>16&4;b=b<>>16&2;b=(b<>>15|0)-(c|(d|f))|0;f=(b<<1|a>>>b+21&1)+28|0}H[i+28>>2]=f;H[i+16>>2]=0;H[i+20>>2]=0;b=(f<<2)+17488|0;d=H[4297];c=1<>2]=i;break L}f=a<<((f|0)!=31?25-(f>>>1|0)|0:0);c=H[b>>2];while(1){b=c;if((H[b+4>>2]&-8)==(a|0)){break C}c=f>>>29|0;f=f<<1;d=(c&4)+b|0;c=H[d+16>>2];if(c){continue}break}H[d+16>>2]=i}H[i+24>>2]=b;H[i+12>>2]=i;H[i+8>>2]=i;break B}d=e-40|0;a=c+8&7?-8-c&7:0;b=d-a|0;H[4299]=b;a=a+c|0;H[4302]=a;H[a+4>>2]=b|1;H[(c+d|0)+4>>2]=40;H[4303]=H[4418];a=(f+(f-39&7?39-f&7:0)|0)-47|0;d=a>>>0>>0?g:a;H[d+4>>2]=27;a=H[4411];H[d+16>>2]=H[4410];H[d+20>>2]=a;a=H[4409];H[d+8>>2]=H[4408];H[d+12>>2]=a;H[4410]=d+8;H[4409]=e;H[4408]=c;H[4411]=0;a=d+24|0;while(1){H[a+4>>2]=7;b=a+8|0;a=a+4|0;if(b>>>0>>0){continue}break}if((d|0)==(g|0)){break x}H[d+4>>2]=H[d+4>>2]&-2;f=d-g|0;H[g+4>>2]=f|1;H[d>>2]=f;if(f>>>0<=255){b=(f&-8)+17224|0;c=H[4296];a=1<<(f>>>3);M:{if(!(c&a)){H[4296]=a|c;a=b;break M}a=H[b+8>>2]}H[b+8>>2]=g;H[a+12>>2]=g;H[g+12>>2]=b;H[g+8>>2]=a;break x}a=31;if(f>>>0<=16777215){a=f>>>8|0;d=a+1048320>>>16&8;a=a<>>16&4;a=a<>>16&2;a=(a<>>15|0)-(b|(c|d))|0;a=(a<<1|f>>>a+21&1)+28|0}H[g+28>>2]=a;H[g+16>>2]=0;H[g+20>>2]=0;b=(a<<2)+17488|0;d=H[4297];c=1<>2]=g;break N}a=f<<((a|0)!=31?25-(a>>>1|0)|0:0);d=H[b>>2];while(1){b=d;if((f|0)==(H[b+4>>2]&-8)){break A}c=a>>>29|0;a=a<<1;c=(c&4)+b|0;d=H[c+16>>2];if(d){continue}break}H[c+16>>2]=g}H[g+24>>2]=b;H[g+12>>2]=g;H[g+8>>2]=g;break x}a=H[b+8>>2];H[a+12>>2]=i;H[b+8>>2]=i;H[i+24>>2]=0;H[i+12>>2]=b;H[i+8>>2]=a}a=j+8|0;break a}a=H[b+8>>2];H[a+12>>2]=g;H[b+8>>2]=g;H[g+24>>2]=0;H[g+12>>2]=b;H[g+8>>2]=a}a=H[4299];if(a>>>0<=h>>>0){break d}b=a-h|0;H[4299]=b;c=H[4302];a=c+h|0;H[4302]=a;H[a+4>>2]=b|1;H[c+4>>2]=h|3;a=c+8|0;break a}H[3992]=48;a=0;break a}O:{if(!e){break O}b=H[d+28>>2];a=(b<<2)+17488|0;P:{if(H[a>>2]==(d|0)){H[a>>2]=c;if(c){break P}j=Rj(b)&j;H[4297]=j;break O}H[e+(H[e+16>>2]==(d|0)?16:20)>>2]=c;if(!c){break O}}H[c+24>>2]=e;a=H[d+16>>2];if(a){H[c+16>>2]=a;H[a+24>>2]=c}a=H[d+20>>2];if(!a){break O}H[c+20>>2]=a;H[a+24>>2]=c}Q:{if(f>>>0<=15){a=f+h|0;H[d+4>>2]=a|3;a=a+d|0;H[a+4>>2]=H[a+4>>2]|1;break Q}H[d+4>>2]=h|3;e=d+h|0;H[e+4>>2]=f|1;H[e+f>>2]=f;if(f>>>0<=255){b=(f&-8)+17224|0;c=H[4296];a=1<<(f>>>3);R:{if(!(c&a)){H[4296]=a|c;a=b;break R}a=H[b+8>>2]}H[b+8>>2]=e;H[a+12>>2]=e;H[e+12>>2]=b;H[e+8>>2]=a;break Q}a=31;if(f>>>0<=16777215){a=f>>>8|0;g=a+1048320>>>16&8;a=a<>>16&4;a=a<>>16&2;a=(a<>>15|0)-(b|(c|g))|0;a=(a<<1|f>>>a+21&1)+28|0}H[e+28>>2]=a;H[e+16>>2]=0;H[e+20>>2]=0;b=(a<<2)+17488|0;S:{c=1<>2]=e;break T}a=f<<((a|0)!=31?25-(a>>>1|0)|0:0);h=H[b>>2];while(1){b=h;if((H[b+4>>2]&-8)==(f|0)){break S}c=a>>>29|0;a=a<<1;c=(c&4)+b|0;h=H[c+16>>2];if(h){continue}break}H[c+16>>2]=e}H[e+24>>2]=b;H[e+12>>2]=e;H[e+8>>2]=e;break Q}a=H[b+8>>2];H[a+12>>2]=e;H[b+8>>2]=e;H[e+24>>2]=0;H[e+12>>2]=b;H[e+8>>2]=a}a=d+8|0;break a}U:{if(!i){break U}b=H[c+28>>2];a=(b<<2)+17488|0;V:{if(H[a>>2]==(c|0)){H[a>>2]=d;if(d){break V}m=17188,n=Rj(b)&j,H[m>>2]=n;break U}H[i+(H[i+16>>2]==(c|0)?16:20)>>2]=d;if(!d){break U}}H[d+24>>2]=i;a=H[c+16>>2];if(a){H[d+16>>2]=a;H[a+24>>2]=d}a=H[c+20>>2];if(!a){break U}H[d+20>>2]=a;H[a+24>>2]=d}W:{if(f>>>0<=15){a=f+h|0;H[c+4>>2]=a|3;a=a+c|0;H[a+4>>2]=H[a+4>>2]|1;break W}H[c+4>>2]=h|3;d=c+h|0;H[d+4>>2]=f|1;H[d+f>>2]=f;if(k){b=(k&-8)+17224|0;g=H[4301];a=1<<(k>>>3);X:{if(!(a&e)){H[4296]=a|e;a=b;break X}a=H[b+8>>2]}H[b+8>>2]=g;H[a+12>>2]=g;H[g+12>>2]=b;H[g+8>>2]=a}H[4301]=d;H[4298]=f}a=c+8|0}fa=l+16|0;return a|0}function df(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0;h=fa-48|0;fa=h;a:{b:{if((c|0)!=1){break b}g=H[a+4>>2];f=H[a+12>>2];H[h+40>>2]=0;H[h+32>>2]=0;H[h+36>>2]=0;H[h+24>>2]=0;H[h+28>>2]=0;H[h+16>>2]=0;H[h+20>>2]=0;H[h+8>>2]=0;H[h+12>>2]=0;d=h+8|0;c:{if((b|0)==-2){break c}m=H[H[H[g+4>>2]+8>>2]+(f<<2)>>2];if((ha[H[H[g>>2]+8>>2]](g)|0)==1){a=J[g+36>>1];l=(a<<8|a>>>8)&65535;a=0;i=fa-32|0;fa=i;j=H[H[H[g+4>>2]+8>>2]+(f<<2)>>2];d:{if((ha[H[H[g>>2]+8>>2]](g)|0)!=1|b-1>>>0>5){break d}e=ha[H[H[g>>2]+36>>2]](g)|0;k=ha[H[H[g>>2]+44>>2]](g,f)|0;if(!e|!k){break d}c=ha[H[H[g>>2]+40>>2]](g,f)|0;if(c){a=H[g+44>>2];H[i+12>>2]=c;H[i+8>>2]=a;H[i+20>>2]=k;H[i+16>>2]=k+12;f=i+8|0;a=0;e:{f:{switch(b-1|0){case 0:a=sa(60);H[a+4>>2]=j;H[a>>2]=3272;b=H[d+4>>2];H[a+8>>2]=H[d>>2];H[a+12>>2]=b;b=H[d+12>>2];H[a+16>>2]=H[d+8>>2];H[a+20>>2]=b;b=H[d+20>>2];H[a+24>>2]=H[d+16>>2];H[a+28>>2]=b;H[a+40>>2]=0;H[a+32>>2]=0;H[a+36>>2]=0;b=H[d+28>>2];c=H[d+24>>2];if((b|0)!=(c|0)){e=b-c|0;if((e|0)<0){break a}b=sa(e);H[a+32>>2]=b;H[a+40>>2]=b+(e&-4);n=a,o=ta(b,c,e)+e|0,H[n+36>>2]=o}b=H[f+4>>2];H[a+44>>2]=H[f>>2];H[a+48>>2]=b;b=H[f+12>>2];H[a+52>>2]=H[f+8>>2];H[a+56>>2]=b;H[a>>2]=2564;break e;case 1:a=sa(60);H[a+4>>2]=j;H[a>>2]=3272;b=H[d+4>>2];H[a+8>>2]=H[d>>2];H[a+12>>2]=b;b=H[d+12>>2];H[a+16>>2]=H[d+8>>2];H[a+20>>2]=b;b=H[d+20>>2];H[a+24>>2]=H[d+16>>2];H[a+28>>2]=b;H[a+40>>2]=0;H[a+32>>2]=0;H[a+36>>2]=0;b=H[d+28>>2];c=H[d+24>>2];if((b|0)!=(c|0)){e=b-c|0;if((e|0)<0){break a}b=sa(e);H[a+32>>2]=b;H[a+40>>2]=b+(e&-4);n=a,o=ta(b,c,e)+e|0,H[n+36>>2]=o}b=H[f+4>>2];H[a+44>>2]=H[f>>2];H[a+48>>2]=b;b=H[f+12>>2];H[a+52>>2]=H[f+8>>2];H[a+56>>2]=b;H[a>>2]=3328;break e;case 3:a=sa(112);H[a+4>>2]=j;H[a>>2]=3272;b=H[d+4>>2];H[a+8>>2]=H[d>>2];H[a+12>>2]=b;b=H[d+12>>2];H[a+16>>2]=H[d+8>>2];H[a+20>>2]=b;b=H[d+20>>2];H[a+24>>2]=H[d+16>>2];H[a+28>>2]=b;H[a+40>>2]=0;H[a+32>>2]=0;H[a+36>>2]=0;b=H[d+28>>2];c=H[d+24>>2];if((b|0)!=(c|0)){e=b-c|0;if((e|0)<0){break a}b=sa(e);H[a+32>>2]=b;H[a+40>>2]=b+(e&-4);n=a,o=ta(b,c,e)+e|0,H[n+36>>2]=o}b=H[f+4>>2];H[a+44>>2]=H[f>>2];H[a+48>>2]=b;b=H[f+12>>2];H[a+52>>2]=H[f+8>>2];H[a+56>>2]=b;H[a+60>>2]=0;H[a+64>>2]=0;H[a>>2]=3564;H[a+68>>2]=0;H[a+72>>2]=0;H[a+76>>2]=0;H[a+80>>2]=0;H[a+84>>2]=0;H[a+88>>2]=0;H[a+92>>2]=0;H[a+96>>2]=0;H[a+100>>2]=0;H[a+104>>2]=0;H[a+108>>2]=0;break e;case 2:a=sa(92);H[a+4>>2]=j;H[a>>2]=3272;b=H[d+4>>2];H[a+8>>2]=H[d>>2];H[a+12>>2]=b;b=H[d+12>>2];H[a+16>>2]=H[d+8>>2];H[a+20>>2]=b;b=H[d+20>>2];H[a+24>>2]=H[d+16>>2];H[a+28>>2]=b;H[a+40>>2]=0;H[a+32>>2]=0;H[a+36>>2]=0;b=H[d+28>>2];c=H[d+24>>2];if((b|0)!=(c|0)){e=b-c|0;if((e|0)<0){break a}b=sa(e);H[a+32>>2]=b;H[a+40>>2]=b+(e&-4);n=a,o=ta(b,c,e)+e|0,H[n+36>>2]=o}b=H[f+4>>2];H[a+44>>2]=H[f>>2];H[a+48>>2]=b;b=H[f+12>>2];H[a+52>>2]=H[f+8>>2];H[a+56>>2]=b;H[a+60>>2]=0;H[a+64>>2]=0;H[a>>2]=3812;H[a+68>>2]=0;H[a+72>>2]=0;H[a+76>>2]=0;H[a+80>>2]=0;H[a+84>>2]=0;H[a+88>>2]=l;break e;case 4:a=sa(104);H[a+4>>2]=j;H[a>>2]=3272;b=H[d+4>>2];H[a+8>>2]=H[d>>2];H[a+12>>2]=b;b=H[d+12>>2];H[a+16>>2]=H[d+8>>2];H[a+20>>2]=b;b=H[d+20>>2];H[a+24>>2]=H[d+16>>2];H[a+28>>2]=b;H[a+40>>2]=0;H[a+32>>2]=0;H[a+36>>2]=0;b=H[d+28>>2];c=H[d+24>>2];if((b|0)!=(c|0)){e=b-c|0;if((e|0)<0){break a}b=sa(e);H[a+32>>2]=b;H[a+40>>2]=b+(e&-4);n=a,o=ta(b,c,e)+e|0,H[n+36>>2]=o}b=H[f+4>>2];H[a+44>>2]=H[f>>2];H[a+48>>2]=b;b=H[f+12>>2];H[a+52>>2]=H[f+8>>2];H[a+56>>2]=b;H[a+84>>2]=0;H[a+76>>2]=0;H[a+80>>2]=0;H[a+60>>2]=0;H[a+64>>2]=0;H[a>>2]=4040;b=H[f+4>>2];H[a+88>>2]=H[f>>2];H[a+92>>2]=b;b=H[f+12>>2];H[a+96>>2]=H[f+8>>2];H[a+100>>2]=b;break e;case 5:break f;default:break e}}a=sa(128);H[a+4>>2]=j;H[a>>2]=3272;b=H[d+4>>2];H[a+8>>2]=H[d>>2];H[a+12>>2]=b;b=H[d+12>>2];H[a+16>>2]=H[d+8>>2];H[a+20>>2]=b;b=H[d+20>>2];H[a+24>>2]=H[d+16>>2];H[a+28>>2]=b;H[a+40>>2]=0;H[a+32>>2]=0;H[a+36>>2]=0;g:{c=H[d+28>>2];b=H[d+24>>2];if((c|0)!=(b|0)){c=c-b|0;if((c|0)<0){break a}b=sa(c);H[a+32>>2]=b;H[a+36>>2]=b;H[a+40>>2]=b+(c&-4);c=H[d+24>>2];e=H[d+28>>2]-c|0;if((e|0)>0){b=ta(b,c,e)+e|0}H[a+36>>2]=b}H[a>>2]=3216;b=H[f+4>>2];H[a+44>>2]=H[f>>2];H[a+48>>2]=b;b=H[f+12>>2];H[a+52>>2]=H[f+8>>2];H[a+56>>2]=b;b=a- -64|0;H[b>>2]=0;H[b+4>>2]=0;H[a+60>>2]=4904;H[a>>2]=4276;b=H[f+4>>2];H[a+72>>2]=H[f>>2];H[a+76>>2]=b;b=H[f+12>>2];H[a+80>>2]=H[f+8>>2];H[a+84>>2]=b;H[a+104>>2]=1065353216;H[a+108>>2]=-1;H[a+96>>2]=-1;H[a+100>>2]=-1;H[a+88>>2]=1;H[a+92>>2]=-1;H[a+60>>2]=4512;H[a+112>>2]=0;H[a+116>>2]=0;F[a+117|0]=0;F[a+118|0]=0;F[a+119|0]=0;F[a+120|0]=0;F[a+121|0]=0;F[a+122|0]=0;F[a+123|0]=0;F[a+124|0]=0;break g}}break d}a=H[g+44>>2];H[i+12>>2]=e;H[i+8>>2]=a;H[i+20>>2]=k;H[i+16>>2]=k+12;f=i+8|0;a=0;h:{i:{switch(b-1|0){case 0:a=sa(60);H[a+4>>2]=j;H[a>>2]=3272;b=H[d+4>>2];H[a+8>>2]=H[d>>2];H[a+12>>2]=b;b=H[d+12>>2];H[a+16>>2]=H[d+8>>2];H[a+20>>2]=b;b=H[d+20>>2];H[a+24>>2]=H[d+16>>2];H[a+28>>2]=b;H[a+40>>2]=0;H[a+32>>2]=0;H[a+36>>2]=0;b=H[d+28>>2];c=H[d+24>>2];if((b|0)!=(c|0)){e=b-c|0;if((e|0)<0){break a}b=sa(e);H[a+32>>2]=b;H[a+40>>2]=b+(e&-4);n=a,o=ta(b,c,e)+e|0,H[n+36>>2]=o}b=H[f+4>>2];H[a+44>>2]=H[f>>2];H[a+48>>2]=b;b=H[f+12>>2];H[a+52>>2]=H[f+8>>2];H[a+56>>2]=b;H[a>>2]=4932;break h;case 1:a=sa(60);H[a+4>>2]=j;H[a>>2]=3272;b=H[d+4>>2];H[a+8>>2]=H[d>>2];H[a+12>>2]=b;b=H[d+12>>2];H[a+16>>2]=H[d+8>>2];H[a+20>>2]=b;b=H[d+20>>2];H[a+24>>2]=H[d+16>>2];H[a+28>>2]=b;H[a+40>>2]=0;H[a+32>>2]=0;H[a+36>>2]=0;b=H[d+28>>2];c=H[d+24>>2];if((b|0)!=(c|0)){e=b-c|0;if((e|0)<0){break a}b=sa(e);H[a+32>>2]=b;H[a+40>>2]=b+(e&-4);n=a,o=ta(b,c,e)+e|0,H[n+36>>2]=o}b=H[f+4>>2];H[a+44>>2]=H[f>>2];H[a+48>>2]=b;b=H[f+12>>2];H[a+52>>2]=H[f+8>>2];H[a+56>>2]=b;H[a>>2]=5356;break h;case 3:a=sa(112);H[a+4>>2]=j;H[a>>2]=3272;b=H[d+4>>2];H[a+8>>2]=H[d>>2];H[a+12>>2]=b;b=H[d+12>>2];H[a+16>>2]=H[d+8>>2];H[a+20>>2]=b;b=H[d+20>>2];H[a+24>>2]=H[d+16>>2];H[a+28>>2]=b;H[a+40>>2]=0;H[a+32>>2]=0;H[a+36>>2]=0;b=H[d+28>>2];c=H[d+24>>2];if((b|0)!=(c|0)){e=b-c|0;if((e|0)<0){break a}b=sa(e);H[a+32>>2]=b;H[a+40>>2]=b+(e&-4);n=a,o=ta(b,c,e)+e|0,H[n+36>>2]=o}b=H[f+4>>2];H[a+44>>2]=H[f>>2];H[a+48>>2]=b;b=H[f+12>>2];H[a+52>>2]=H[f+8>>2];H[a+56>>2]=b;H[a+60>>2]=0;H[a+64>>2]=0;H[a>>2]=5580;H[a+68>>2]=0;H[a+72>>2]=0;H[a+76>>2]=0;H[a+80>>2]=0;H[a+84>>2]=0;H[a+88>>2]=0;H[a+92>>2]=0;H[a+96>>2]=0;H[a+100>>2]=0;H[a+104>>2]=0;H[a+108>>2]=0;break h;case 2:a=sa(92);H[a+4>>2]=j;H[a>>2]=3272;b=H[d+4>>2];H[a+8>>2]=H[d>>2];H[a+12>>2]=b;b=H[d+12>>2];H[a+16>>2]=H[d+8>>2];H[a+20>>2]=b;b=H[d+20>>2];H[a+24>>2]=H[d+16>>2];H[a+28>>2]=b;H[a+40>>2]=0;H[a+32>>2]=0;H[a+36>>2]=0;b=H[d+28>>2];c=H[d+24>>2];if((b|0)!=(c|0)){e=b-c|0;if((e|0)<0){break a}b=sa(e);H[a+32>>2]=b;H[a+40>>2]=b+(e&-4);n=a,o=ta(b,c,e)+e|0,H[n+36>>2]=o}b=H[f+4>>2];H[a+44>>2]=H[f>>2];H[a+48>>2]=b;b=H[f+12>>2];H[a+52>>2]=H[f+8>>2];H[a+56>>2]=b;H[a+60>>2]=0;H[a+64>>2]=0;H[a>>2]=5816;H[a+68>>2]=0;H[a+72>>2]=0;H[a+76>>2]=0;H[a+80>>2]=0;H[a+84>>2]=0;H[a+88>>2]=l;break h;case 4:a=sa(104);H[a+4>>2]=j;H[a>>2]=3272;b=H[d+4>>2];H[a+8>>2]=H[d>>2];H[a+12>>2]=b;b=H[d+12>>2];H[a+16>>2]=H[d+8>>2];H[a+20>>2]=b;b=H[d+20>>2];H[a+24>>2]=H[d+16>>2];H[a+28>>2]=b;H[a+40>>2]=0;H[a+32>>2]=0;H[a+36>>2]=0;b=H[d+28>>2];c=H[d+24>>2];if((b|0)!=(c|0)){e=b-c|0;if((e|0)<0){break a}b=sa(e);H[a+32>>2]=b;H[a+40>>2]=b+(e&-4);n=a,o=ta(b,c,e)+e|0,H[n+36>>2]=o}b=H[f+4>>2];H[a+44>>2]=H[f>>2];H[a+48>>2]=b;b=H[f+12>>2];H[a+52>>2]=H[f+8>>2];H[a+56>>2]=b;H[a+84>>2]=0;H[a+76>>2]=0;H[a+80>>2]=0;H[a+60>>2]=0;H[a+64>>2]=0;H[a>>2]=6032;b=H[f+4>>2];H[a+88>>2]=H[f>>2];H[a+92>>2]=b;b=H[f+12>>2];H[a+96>>2]=H[f+8>>2];H[a+100>>2]=b;break h;case 5:break i;default:break h}}a=sa(128);H[a+4>>2]=j;H[a>>2]=3272;b=H[d+4>>2];H[a+8>>2]=H[d>>2];H[a+12>>2]=b;b=H[d+12>>2];H[a+16>>2]=H[d+8>>2];H[a+20>>2]=b;b=H[d+20>>2];H[a+24>>2]=H[d+16>>2];H[a+28>>2]=b;H[a+40>>2]=0;H[a+32>>2]=0;H[a+36>>2]=0;j:{c=H[d+28>>2];b=H[d+24>>2];if((c|0)!=(b|0)){c=c-b|0;if((c|0)<0){break a}b=sa(c);H[a+32>>2]=b;H[a+36>>2]=b;H[a+40>>2]=b+(c&-4);c=H[d+24>>2];e=H[d+28>>2]-c|0;if((e|0)>0){b=ta(b,c,e)+e|0}H[a+36>>2]=b}H[a>>2]=5300;b=H[f+4>>2];H[a+44>>2]=H[f>>2];H[a+48>>2]=b;b=H[f+12>>2];H[a+52>>2]=H[f+8>>2];H[a+56>>2]=b;b=a- -64|0;H[b>>2]=0;H[b+4>>2]=0;H[a+60>>2]=6840;H[a>>2]=6256;b=H[f+4>>2];H[a+72>>2]=H[f>>2];H[a+76>>2]=b;b=H[f+12>>2];H[a+80>>2]=H[f+8>>2];H[a+84>>2]=b;H[a+104>>2]=1065353216;H[a+108>>2]=-1;H[a+96>>2]=-1;H[a+100>>2]=-1;H[a+88>>2]=1;H[a+92>>2]=-1;H[a+60>>2]=6476;H[a+112>>2]=0;H[a+116>>2]=0;F[a+117|0]=0;F[a+118|0]=0;F[a+119|0]=0;F[a+120|0]=0;F[a+121|0]=0;F[a+122|0]=0;F[a+123|0]=0;F[a+124|0]=0;break j}}}fa=i+32|0;e=a;if(a){break c}}e=sa(44);H[e+4>>2]=m;H[e>>2]=3272;a=H[d+4>>2];H[e+8>>2]=H[d>>2];H[e+12>>2]=a;a=H[d+12>>2];H[e+16>>2]=H[d+8>>2];H[e+20>>2]=a;a=H[d+20>>2];H[e+24>>2]=H[d+16>>2];H[e+28>>2]=a;H[e+40>>2]=0;H[e+32>>2]=0;H[e+36>>2]=0;a=H[d+28>>2];b=H[d+24>>2];if((a|0)!=(b|0)){c=a-b|0;if((c|0)<0){break a}a=sa(c);H[e+32>>2]=a;H[e+40>>2]=a+(c&-4);n=e,o=ta(a,b,c)+c|0,H[n+36>>2]=o}H[e>>2]=6868;break c}a=H[h+32>>2];if(!a){break b}H[h+36>>2]=a;ra(a)}fa=h+48|0;return e|0}va();v()}function be(a,b){var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,w=0,x=0,y=0,z=0,A=0;n=fa-32|0;fa=n;o=sa(12);H[o+8>>2]=0;H[o+4>>2]=b;H[o>>2]=0;t=o+12|0;b=t;a:{b:{c:{d:{while(1){b=b-12|0;w=H[b+8>>2];j=H[b+4>>2];u=H[b>>2];if(u){q=0;if((w|0)>1e3){break a}H[n+24>>2]=0;H[n+16>>2]=0;H[n+20>>2]=0;f=1;c=H[a>>2];d=H[c+8>>2];g=H[c+12>>2];e=H[c+20>>2];l=d;d=H[c+16>>2];e:{if((g|0)<=(e|0)&l>>>0<=d>>>0|(e|0)>(g|0)){break e}g=I[d+H[c>>2]|0];d=d+1|0;e=d?e:e+1|0;H[c+16>>2]=d;H[c+20>>2]=e;Cc(n+16|0,g);if(g){d=H[a>>2];m=Dc(n+16|0);e=H[d+20>>2];i=H[d+16>>2];c=g;l=i+c|0;h=H[d+12>>2];e=c>>>0>l>>>0?e+1|0:e;if(l>>>0>K[d+8>>2]&(h|0)<=(e|0)|(e|0)>(h|0)){break e}ta(m,i+H[d>>2]|0,g);e=H[d+20>>2];f=c+H[d+16>>2]|0;e=f>>>0>>0?e+1|0:e;H[d+16>>2]=f;H[d+20>>2]=e}j=sa(24);c=j;H[c+4>>2]=0;H[c+8>>2]=0;c=c+16|0;H[c>>2]=0;H[c+4>>2]=0;H[j>>2]=j+4;H[j+12>>2]=c;e=fa-32|0;fa=e;g=u+12|0;c=n+16|0;p=rb(g,c);k=u+16|0;f:{if((p|0)==(k|0)){H[e+16>>2]=c;g:{h:{d=H[g+4>>2];i:{if(!d){f=g+4|0;c=f;break i}f=I[c+11|0];h=f<<24>>24<0;l=h?H[c>>2]:c;h=h?H[c+4>>2]:f;while(1){c=d;d=I[c+27|0];f=d<<24>>24<0;d=f?H[c+20>>2]:d;m=d>>>0>>0;j:{k:{l:{m:{i=m?d:h;n:{if(i){f=f?H[c+16>>2]:c+16|0;r=Ha(l,f,i);if(!r){if(d>>>0>h>>>0){break n}break m}if((r|0)>=0){break m}break n}if(d>>>0<=h>>>0){break l}}f=c;d=H[c>>2];if(d){continue}break i}d=Ha(f,l,i);if(d){break k}}if(m){break j}break h}if((d|0)>=0){break h}}d=H[c+4>>2];if(d){continue}break}f=c+4|0}d=sa(32);l=d+16|0;h=H[e+16>>2];o:{if(F[h+11|0]>=0){m=H[h+4>>2];H[l>>2]=H[h>>2];H[l+4>>2]=m;H[l+8>>2]=H[h+8>>2];break o}Ba(l,H[h>>2],H[h+4>>2])}H[d+8>>2]=c;H[d>>2]=0;H[d+4>>2]=0;H[d+28>>2]=0;H[f>>2]=d;c=d;h=H[H[g>>2]>>2];if(h){H[g>>2]=h;c=H[f>>2]}Ub(H[g+4>>2],c);H[g+8>>2]=H[g+8>>2]+1;c=1;break g}d=c;c=0}F[e+28|0]=c;H[e+24>>2]=d;d=H[e+24>>2];c=H[d+28>>2];H[d+28>>2]=j;if(!c){break f}Ua(c+12|0,H[c+16>>2]);Ta(c,H[c+4>>2]);ra(c);break f}if(!j){break f}Ua(j+12|0,H[j+16>>2]);Ta(j,H[j+4>>2]);ra(j)}fa=e+32|0;f=(k|0)!=(p|0)}if(F[n+27|0]<0){ra(H[n+16>>2])}if(f){break a}}q=0;if(!j){break a}H[n+16>>2]=0;if(!Db(1,n+16|0,H[a>>2])){break a}p=0;x=H[n+16>>2];if(x){while(1){c=0;i=fa-32|0;fa=i;H[i+24>>2]=0;H[i+16>>2]=0;H[i+20>>2]=0;d=H[a>>2];f=H[d+8>>2];p:{q:{g=H[d+12>>2];e=H[d+20>>2];l=f;f=H[d+16>>2];r:{if((g|0)<=(e|0)&l>>>0<=f>>>0|(e|0)>(g|0)){break r}g=I[f+H[d>>2]|0];f=f+1|0;e=f?e:e+1|0;H[d+16>>2]=f;H[d+20>>2]=e;Cc(i+16|0,g);if(g){f=H[a>>2];m=Dc(i+16|0);e=H[f+20>>2];k=H[f+16>>2];d=g;l=k+d|0;h=H[f+12>>2];e=d>>>0>l>>>0?e+1|0:e;if(l>>>0>K[f+8>>2]&(h|0)<=(e|0)|(e|0)>(h|0)){break r}ta(m,k+H[f>>2]|0,g);e=H[f+20>>2];g=d+H[f+16>>2]|0;e=g>>>0>>0?e+1|0:e;H[f+16>>2]=g;H[f+20>>2]=e}H[i+12>>2]=0;if(!Db(1,i+12|0,H[a>>2])){break r}d=H[i+12>>2];if(!d){break r}f=H[a>>2];e=H[f+8>>2];g=H[f+16>>2];h=e-g|0;e=H[f+12>>2]-(H[f+20>>2]+(e>>>0>>0)|0)|0;if((e|0)<=0&d>>>0>h>>>0|(e|0)<0){break r}H[i+8>>2]=0;H[i>>2]=0;H[i+4>>2]=0;if((d|0)<0){break q}c=sa(d);H[i>>2]=c;e=c+d|0;H[i+8>>2]=e;m=ua(c,0,d);H[i+4>>2]=e;g=H[f+12>>2];r=g;e=H[f+20>>2];s:{y=H[f+8>>2];k=H[f+16>>2];l=d+k|0;z=l;e=d>>>0>l>>>0?e+1|0:e;l=e;if(y>>>0>>0&(e|0)>=(g|0)|(e|0)>(g|0)){break s}ta(m,k+H[f>>2]|0,d);e=H[f+20>>2];c=d+H[f+16>>2]|0;e=c>>>0>>0?e+1|0:e;H[f+16>>2]=c;H[f+20>>2]=e;g=fa-48|0;fa=g;e=rb(j,i+16|0);if((e|0)!=(j+4|0)){c=H[e+4>>2];t:{if(!c){c=e;while(1){d=H[c+8>>2];f=H[d>>2]!=(c|0);c=d;if(f){continue}break}break t}while(1){d=c;c=H[c>>2];if(c){continue}break}}if((e|0)==H[j>>2]){H[j>>2]=d}H[j+8>>2]=H[j+8>>2]-1;f=H[j+4>>2];u:{v:{h=e;d=e;e=H[d>>2];if(e){c=H[h+4>>2];if(!c){break v}while(1){d=c;c=H[c>>2];if(c){continue}break}}e=H[d+4>>2];if(e){break v}e=0;m=1;break u}H[e+8>>2]=H[d+8>>2];m=0}k=H[d+8>>2];c=H[k>>2];w:{if((d|0)==(c|0)){H[k>>2]=e;if((d|0)==(f|0)){c=0;f=e;break w}c=H[k+4>>2];break w}H[k+4>>2]=e}s=!I[d+12|0];if((d|0)!=(h|0)){k=H[h+8>>2];H[d+8>>2]=k;H[k+(((h|0)!=H[H[h+8>>2]>>2])<<2)>>2]=d;k=H[h>>2];H[d>>2]=k;H[k+8>>2]=d;k=H[h+4>>2];H[d+4>>2]=k;if(k){H[k+8>>2]=d}F[d+12|0]=I[h+12|0];f=(f|0)==(h|0)?d:f}x:{if(s|!f){break x}if(m){while(1){e=I[c+12|0];y:{d=H[c+8>>2];if(H[d>>2]!=(c|0)){if(!e){F[c+12|0]=1;F[d+12|0]=0;e=H[d+4>>2];m=H[e>>2];H[d+4>>2]=m;if(m){H[m+8>>2]=d}H[e+8>>2]=H[d+8>>2];m=H[d+8>>2];H[(((d|0)!=H[m>>2])<<2)+m>>2]=e;H[e>>2]=d;H[d+8>>2]=e;d=c;c=H[c>>2];f=(c|0)==(f|0)?d:f;c=H[c+4>>2]}z:{A:{d=H[c>>2];B:{if(!(I[d+12|0]?0:d)){e=H[c+4>>2];if(I[e+12|0]?0:e){break B}F[c+12|0]=0;c=H[c+8>>2];C:{if((f|0)==(c|0)){c=f;break C}if(I[c+12|0]){break y}}F[c+12|0]=1;break x}e=H[c+4>>2];if(!e){break A}}if(I[e+12|0]){break A}d=c;break z}F[d+12|0]=1;F[c+12|0]=0;e=H[d+4>>2];H[c>>2]=e;if(e){H[e+8>>2]=c}H[d+8>>2]=H[c+8>>2];e=H[c+8>>2];H[((H[e>>2]!=(c|0))<<2)+e>>2]=d;H[d+4>>2]=c;H[c+8>>2]=d;e=c}c=H[d+8>>2];F[d+12|0]=I[c+12|0];F[c+12|0]=1;F[e+12|0]=1;d=H[c+4>>2];e=H[d>>2];H[c+4>>2]=e;if(e){H[e+8>>2]=c}H[d+8>>2]=H[c+8>>2];e=H[c+8>>2];H[(((c|0)!=H[e>>2])<<2)+e>>2]=d;H[d>>2]=c;H[c+8>>2]=d;break x}if(!e){F[c+12|0]=1;F[d+12|0]=0;e=H[c+4>>2];H[d>>2]=e;if(e){H[e+8>>2]=d}H[c+8>>2]=H[d+8>>2];e=H[d+8>>2];H[(((d|0)!=H[e>>2])<<2)+e>>2]=c;H[c+4>>2]=d;H[d+8>>2]=c;f=(d|0)==(f|0)?c:f;c=H[d>>2]}e=H[c>>2];D:{if(!(!e|I[e+12|0])){d=c;break D}d=H[c+4>>2];if(!(I[d+12|0]?0:d)){F[c+12|0]=0;c=H[c+8>>2];if((c|0)!=(f|0)?I[c+12|0]:0){break y}F[c+12|0]=1;break x}if(e){if(!I[e+12|0]){d=c;break D}d=H[c+4>>2]}F[d+12|0]=1;F[c+12|0]=0;e=H[d>>2];H[c+4>>2]=e;if(e){H[e+8>>2]=c}H[d+8>>2]=H[c+8>>2];e=H[c+8>>2];H[((H[e>>2]!=(c|0))<<2)+e>>2]=d;H[d>>2]=c;H[c+8>>2]=d;e=c}c=H[d+8>>2];F[d+12|0]=I[c+12|0];F[c+12|0]=1;F[e+12|0]=1;d=H[c>>2];e=H[d+4>>2];H[c>>2]=e;if(e){H[e+8>>2]=c}H[d+8>>2]=H[c+8>>2];e=H[c+8>>2];H[(((c|0)!=H[e>>2])<<2)+e>>2]=d;H[d+4>>2]=c;H[c+8>>2]=d;break x}d=c;c=H[c+8>>2];c=H[(((d|0)==H[c>>2])<<2)+c>>2];continue}}F[e+12|0]=1}c=H[h+28>>2];if(c){H[h+32>>2]=c;ra(c)}if(F[h+27|0]<0){ra(H[h+16>>2])}ra(h)}H[g+8>>2]=0;H[g>>2]=0;H[g+4>>2]=0;c=H[i+4>>2];d=H[i>>2];f=c-d|0;e=0;E:{F:{if((c|0)!=(d|0)){if((f|0)<0){break F}e=sa(f);c=ua(e,0,f);h=c+f|0;H[g+8>>2]=h;H[g+4>>2]=h;H[g>>2]=c;c=d}ta(e,c,f);G:{if(F[i+27|0]>=0){H[g+24>>2]=H[i+24>>2];c=H[i+20>>2];H[g+16>>2]=H[i+16>>2];H[g+20>>2]=c;break G}Ba(g+16|0,H[i+16>>2],H[i+20>>2])}$d(g+28|0,g);f=g+16|0;c=f;H:{I:{d=H[j+4>>2];J:{if(!d){e=j+4|0;c=e;break J}e=I[c+11|0];h=e<<24>>24<0;m=h?H[c>>2]:c;h=h?H[c+4>>2]:e;while(1){c=d;d=I[c+27|0];e=d<<24>>24<0;d=e?H[c+20>>2]:d;k=d>>>0>>0;K:{L:{M:{N:{s=k?d:h;O:{if(s){e=e?H[c+16>>2]:c+16|0;A=Ha(m,e,s);if(!A){if(d>>>0>h>>>0){break O}break N}if((A|0)>=0){break N}break O}if(d>>>0<=h>>>0){break M}}e=c;d=H[c>>2];if(d){continue}break J}d=Ha(e,m,s);if(d){break L}}if(k){break K}break I}if((d|0)>=0){break I}}d=H[c+4>>2];if(d){continue}break}e=c+4|0}d=sa(40);H[d+24>>2]=H[f+8>>2];h=H[f+4>>2];H[d+16>>2]=H[f>>2];H[d+20>>2]=h;H[f>>2]=0;H[f+4>>2]=0;H[f+8>>2]=0;$d(d+28|0,f+12|0);H[d+8>>2]=c;H[d>>2]=0;H[d+4>>2]=0;H[e>>2]=d;c=d;f=H[H[j>>2]>>2];if(f){H[j>>2]=f;c=H[e>>2]}Ub(H[j+4>>2],c);H[j+8>>2]=H[j+8>>2]+1;c=1;break H}d=c;c=0}F[g+44|0]=c;H[g+40>>2]=d;c=H[g+28>>2];if(c){H[g+32>>2]=c;ra(c)}if(F[g+27|0]<0){ra(H[g+16>>2])}c=H[g>>2];if(c){H[g+4>>2]=c;ra(c)}fa=g+48|0;break E}va();v()}c=H[i>>2];if(c){break s}c=1;break r}H[i+4>>2]=c;ra(c);c=(l|0)<=(r|0)&y>>>0>=z>>>0|(l|0)<(r|0)}if(F[i+27|0]<0){ra(H[i+16>>2])}fa=i+32|0;break p}va();v()}if(!c){break a}p=p+1|0;if((x|0)!=(p|0)){continue}break}}H[n+12>>2]=0;if(!Db(1,n+12|0,H[a>>2])){break b}c=H[a>>2];d=H[c+8>>2];e=H[c+16>>2];f=d-e|0;q=H[n+12>>2];c=H[c+12>>2]-(H[c+20>>2]+(d>>>0>>0)|0)|0;if(f>>>0>>0&(c|0)<=0|(c|0)<0){break b}if(q){p=0;g=((u|0)!=0)+w|0;while(1){P:{if(b>>>0>>0){H[b+8>>2]=g;H[b+4>>2]=0;H[b>>2]=j;b=b+12|0;q=H[n+12>>2];break P}e=b-o|0;c=(e|0)/12|0;b=c+1|0;if(b>>>0>=357913942){break d}d=(t-o|0)/12|0;f=d<<1;f=d>>>0>=178956970?357913941:b>>>0>>0?f:b;if(f){if(f>>>0>=357913942){break c}b=sa(N(f,12))}else{b=0}d=b+N(c,12)|0;H[d+8>>2]=g;H[d+4>>2]=0;H[d>>2]=j;c=d+N((e|0)/-12|0,12)|0;if((e|0)>0){ta(c,o,e)}t=b+N(f,12)|0;b=d+12|0;if(o){ra(o)}o=c}p=p+1|0;if(p>>>0>>0){continue}break}}if((b|0)!=(o|0)){continue}break}q=1;break a}va();v()}za();v()}q=0}if(o){ra(o)}fa=n+32|0;return q}function se(a,b,c,d,e){var f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0;h=fa-32|0;fa=h;H[b+32>>2]=d;H[b+40>>2]=c;H[b+4>>2]=e;oc(a,d,h+16|0);a:{if(H[a>>2]){break a}if(F[a+15|0]<0){ra(H[a+4>>2])}d=I[h+23|0];if((ha[H[H[b>>2]+8>>2]](b)|0)!=(d|0)){b=sa(64);F[b+50|0]=0;c=I[1314]|I[1315]<<8;F[b+48|0]=c;F[b+49|0]=c>>>8;c=I[1310]|I[1311]<<8|(I[1312]<<16|I[1313]<<24);d=I[1306]|I[1307]<<8|(I[1308]<<16|I[1309]<<24);F[b+40|0]=d;F[b+41|0]=d>>>8;F[b+42|0]=d>>>16;F[b+43|0]=d>>>24;F[b+44|0]=c;F[b+45|0]=c>>>8;F[b+46|0]=c>>>16;F[b+47|0]=c>>>24;c=I[1302]|I[1303]<<8|(I[1304]<<16|I[1305]<<24);d=I[1298]|I[1299]<<8|(I[1300]<<16|I[1301]<<24);F[b+32|0]=d;F[b+33|0]=d>>>8;F[b+34|0]=d>>>16;F[b+35|0]=d>>>24;F[b+36|0]=c;F[b+37|0]=c>>>8;F[b+38|0]=c>>>16;F[b+39|0]=c>>>24;c=I[1294]|I[1295]<<8|(I[1296]<<16|I[1297]<<24);d=I[1290]|I[1291]<<8|(I[1292]<<16|I[1293]<<24);F[b+24|0]=d;F[b+25|0]=d>>>8;F[b+26|0]=d>>>16;F[b+27|0]=d>>>24;F[b+28|0]=c;F[b+29|0]=c>>>8;F[b+30|0]=c>>>16;F[b+31|0]=c>>>24;c=I[1286]|I[1287]<<8|(I[1288]<<16|I[1289]<<24);d=I[1282]|I[1283]<<8|(I[1284]<<16|I[1285]<<24);F[b+16|0]=d;F[b+17|0]=d>>>8;F[b+18|0]=d>>>16;F[b+19|0]=d>>>24;F[b+20|0]=c;F[b+21|0]=c>>>8;F[b+22|0]=c>>>16;F[b+23|0]=c>>>24;c=I[1278]|I[1279]<<8|(I[1280]<<16|I[1281]<<24);d=I[1274]|I[1275]<<8|(I[1276]<<16|I[1277]<<24);F[b+8|0]=d;F[b+9|0]=d>>>8;F[b+10|0]=d>>>16;F[b+11|0]=d>>>24;F[b+12|0]=c;F[b+13|0]=c>>>8;F[b+14|0]=c>>>16;F[b+15|0]=c>>>24;c=I[1270]|I[1271]<<8|(I[1272]<<16|I[1273]<<24);d=I[1266]|I[1267]<<8|(I[1268]<<16|I[1269]<<24);F[b|0]=d;F[b+1|0]=d>>>8;F[b+2|0]=d>>>16;F[b+3|0]=d>>>24;F[b+4|0]=c;F[b+5|0]=c>>>8;F[b+6|0]=c>>>16;F[b+7|0]=c>>>24;H[a>>2]=-1;Ba(a+4|0,b,50);ra(b);break a}c=I[h+21|0];F[b+36|0]=c;e=I[h+22|0];F[b+37|0]=e;if((c-3&255)>>>0<=253){b=sa(32);F[b+22|0]=0;c=I[1427]|I[1428]<<8|(I[1429]<<16|I[1430]<<24);d=I[1423]|I[1424]<<8|(I[1425]<<16|I[1426]<<24);F[b+14|0]=d;F[b+15|0]=d>>>8;F[b+16|0]=d>>>16;F[b+17|0]=d>>>24;F[b+18|0]=c;F[b+19|0]=c>>>8;F[b+20|0]=c>>>16;F[b+21|0]=c>>>24;c=I[1421]|I[1422]<<8|(I[1423]<<16|I[1424]<<24);d=I[1417]|I[1418]<<8|(I[1419]<<16|I[1420]<<24);F[b+8|0]=d;F[b+9|0]=d>>>8;F[b+10|0]=d>>>16;F[b+11|0]=d>>>24;F[b+12|0]=c;F[b+13|0]=c>>>8;F[b+14|0]=c>>>16;F[b+15|0]=c>>>24;c=I[1413]|I[1414]<<8|(I[1415]<<16|I[1416]<<24);d=I[1409]|I[1410]<<8|(I[1411]<<16|I[1412]<<24);F[b|0]=d;F[b+1|0]=d>>>8;F[b+2|0]=d>>>16;F[b+3|0]=d>>>24;F[b+4|0]=c;F[b+5|0]=c>>>8;F[b+6|0]=c>>>16;F[b+7|0]=c>>>24;H[a>>2]=-5;Ba(a+4|0,b,22);ra(b);break a}if(!((c|0)!=2|e>>>0<=(d?2:3)>>>0)){b=sa(32);F[b+22|0]=0;c=I[1404]|I[1405]<<8|(I[1406]<<16|I[1407]<<24);d=I[1400]|I[1401]<<8|(I[1402]<<16|I[1403]<<24);F[b+14|0]=d;F[b+15|0]=d>>>8;F[b+16|0]=d>>>16;F[b+17|0]=d>>>24;F[b+18|0]=c;F[b+19|0]=c>>>8;F[b+20|0]=c>>>16;F[b+21|0]=c>>>24;c=I[1398]|I[1399]<<8|(I[1400]<<16|I[1401]<<24);d=I[1394]|I[1395]<<8|(I[1396]<<16|I[1397]<<24);F[b+8|0]=d;F[b+9|0]=d>>>8;F[b+10|0]=d>>>16;F[b+11|0]=d>>>24;F[b+12|0]=c;F[b+13|0]=c>>>8;F[b+14|0]=c>>>16;F[b+15|0]=c>>>24;c=I[1390]|I[1391]<<8|(I[1392]<<16|I[1393]<<24);d=I[1386]|I[1387]<<8|(I[1388]<<16|I[1389]<<24);F[b|0]=d;F[b+1|0]=d>>>8;F[b+2|0]=d>>>16;F[b+3|0]=d>>>24;F[b+4|0]=c;F[b+5|0]=c>>>8;F[b+6|0]=c>>>16;F[b+7|0]=c>>>24;H[a>>2]=-5;Ba(a+4|0,b,22);ra(b);break a}c=e|c<<8;G[H[b+32>>2]+38>>1]=c;b:{if((c&65535)>>>0<259|G[h+26>>1]>=0){break b}i=fa-16|0;fa=i;e=sa(36);c=e;H[c+4>>2]=0;H[c+8>>2]=0;H[c+24>>2]=0;H[c+28>>2]=0;c=c+16|0;H[c>>2]=0;H[c+4>>2]=0;H[e>>2]=e+4;H[e+32>>2]=0;H[e+12>>2]=c;H[i>>2]=0;d=H[b+32>>2];j=fa-16|0;fa=j;c=0;c:{if(!e){break c}H[i>>2]=d;H[j+12>>2]=0;c=0;if(!Db(1,j+12|0,d)){break c}m=H[j+12>>2];if(m){while(1){d:{if(Db(1,j+8|0,H[i>>2])){c=sa(28);H[c+4>>2]=0;H[c+8>>2]=0;d=c+16|0;H[d>>2]=0;H[d+4>>2]=0;H[c>>2]=c+4;H[c+12>>2]=d;H[c+24>>2]=H[j+8>>2];if(be(i,c)){break d}Ua(c+12|0,H[c+16>>2]);Ta(c,H[c+4>>2]);ra(c)}c=0;break c}f=fa-16|0;fa=f;H[f+8>>2]=c;e:{if(!c){break e}d=H[e+28>>2];f:{if(d>>>0>2]){H[f+8>>2]=0;H[d>>2]=c;H[e+28>>2]=d+4;break f}d=0;g:{h:{i:{g=H[e+24>>2];l=H[e+28>>2]-g>>2;c=l+1|0;if(c>>>0<1073741824){g=H[e+32>>2]-g|0;k=g>>1;c=g>>>0>=2147483644?1073741823:c>>>0>>0?k:c;if(c){if(c>>>0>=1073741824){break i}d=sa(c<<2)}k=H[f+8>>2];H[f+8>>2]=0;g=(l<<2)+d|0;H[g>>2]=k;l=(c<<2)+d|0;k=g+4|0;d=H[e+28>>2];c=H[e+24>>2];if((d|0)==(c|0)){break h}while(1){d=d-4|0;o=H[d>>2];H[d>>2]=0;g=g-4|0;H[g>>2]=o;if((c|0)!=(d|0)){continue}break}H[e+32>>2]=l;d=H[e+28>>2];H[e+28>>2]=k;c=H[e+24>>2];H[e+24>>2]=g;if((c|0)==(d|0)){break g}while(1){d=d-4|0;g=H[d>>2];H[d>>2]=0;if(g){Ua(g+12|0,H[g+16>>2]);Ta(g,H[g+4>>2]);ra(g)}if((c|0)!=(d|0)){continue}break}break g}va();v()}za();v()}H[e+32>>2]=l;H[e+28>>2]=k;H[e+24>>2]=g}if(c){ra(c)}}c=H[f+8>>2];H[f+8>>2]=0;if(!c){break e}Ua(c+12|0,H[c+16>>2]);Ta(c,H[c+4>>2]);ra(c)}fa=f+16|0;n=n+1|0;if((m|0)!=(n|0)){continue}break}}c=be(i,e)}fa=j+16|0;j:{if(c){d=H[b+4>>2];c=H[d+4>>2];H[d+4>>2]=e;if(c){Sc(c)}H[a>>2]=0;H[a+4>>2]=0;H[a+8>>2]=0;H[a+12>>2]=0;break j}c=sa(32);F[c+26|0]=0;d=I[1579]|I[1580]<<8;F[c+24|0]=d;F[c+25|0]=d>>>8;d=I[1575]|I[1576]<<8|(I[1577]<<16|I[1578]<<24);f=I[1571]|I[1572]<<8|(I[1573]<<16|I[1574]<<24);F[c+16|0]=f;F[c+17|0]=f>>>8;F[c+18|0]=f>>>16;F[c+19|0]=f>>>24;F[c+20|0]=d;F[c+21|0]=d>>>8;F[c+22|0]=d>>>16;F[c+23|0]=d>>>24;d=I[1567]|I[1568]<<8|(I[1569]<<16|I[1570]<<24);f=I[1563]|I[1564]<<8|(I[1565]<<16|I[1566]<<24);F[c+8|0]=f;F[c+9|0]=f>>>8;F[c+10|0]=f>>>16;F[c+11|0]=f>>>24;F[c+12|0]=d;F[c+13|0]=d>>>8;F[c+14|0]=d>>>16;F[c+15|0]=d>>>24;d=I[1559]|I[1560]<<8|(I[1561]<<16|I[1562]<<24);f=I[1555]|I[1556]<<8|(I[1557]<<16|I[1558]<<24);F[c|0]=f;F[c+1|0]=f>>>8;F[c+2|0]=f>>>16;F[c+3|0]=f>>>24;F[c+4|0]=d;F[c+5|0]=d>>>8;F[c+6|0]=d>>>16;F[c+7|0]=d>>>24;H[a>>2]=-1;Ba(a+4|0,c,26);ra(c);H[i+8>>2]=0;Sc(e)}fa=i+16|0;if(H[a>>2]){break a}if(F[a+15|0]>=0){break b}ra(H[a+4>>2])}if(!(ha[H[H[b>>2]+12>>2]](b)|0)){b=sa(48);F[b+33|0]=0;F[b+32|0]=I[1384];c=I[1380]|I[1381]<<8|(I[1382]<<16|I[1383]<<24);d=I[1376]|I[1377]<<8|(I[1378]<<16|I[1379]<<24);F[b+24|0]=d;F[b+25|0]=d>>>8;F[b+26|0]=d>>>16;F[b+27|0]=d>>>24;F[b+28|0]=c;F[b+29|0]=c>>>8;F[b+30|0]=c>>>16;F[b+31|0]=c>>>24;c=I[1372]|I[1373]<<8|(I[1374]<<16|I[1375]<<24);d=I[1368]|I[1369]<<8|(I[1370]<<16|I[1371]<<24);F[b+16|0]=d;F[b+17|0]=d>>>8;F[b+18|0]=d>>>16;F[b+19|0]=d>>>24;F[b+20|0]=c;F[b+21|0]=c>>>8;F[b+22|0]=c>>>16;F[b+23|0]=c>>>24;c=I[1364]|I[1365]<<8|(I[1366]<<16|I[1367]<<24);d=I[1360]|I[1361]<<8|(I[1362]<<16|I[1363]<<24);F[b+8|0]=d;F[b+9|0]=d>>>8;F[b+10|0]=d>>>16;F[b+11|0]=d>>>24;F[b+12|0]=c;F[b+13|0]=c>>>8;F[b+14|0]=c>>>16;F[b+15|0]=c>>>24;c=I[1356]|I[1357]<<8|(I[1358]<<16|I[1359]<<24);d=I[1352]|I[1353]<<8|(I[1354]<<16|I[1355]<<24);F[b|0]=d;F[b+1|0]=d>>>8;F[b+2|0]=d>>>16;F[b+3|0]=d>>>24;F[b+4|0]=c;F[b+5|0]=c>>>8;F[b+6|0]=c>>>16;F[b+7|0]=c>>>24;H[a>>2]=-1;Ba(a+4|0,b,33);ra(b);break a}if(!(ha[H[H[b>>2]+20>>2]](b)|0)){b=nc(h,1582);H[a>>2]=-1;a=a+4|0;if(F[b+11|0]>=0){c=H[b+4>>2];H[a>>2]=H[b>>2];H[a+4>>2]=c;H[a+8>>2]=H[b+8>>2];break a}Ba(a,H[b>>2],H[b+4>>2]);if(F[b+11|0]>=0){break a}ra(H[b>>2]);break a}if(!(ha[H[H[b>>2]+24>>2]](b)|0)){b=nc(h,1317);H[a>>2]=-1;a=a+4|0;if(F[b+11|0]>=0){c=H[b+4>>2];H[a>>2]=H[b>>2];H[a+4>>2]=c;H[a+8>>2]=H[b+8>>2];break a}Ba(a,H[b>>2],H[b+4>>2]);if(F[b+11|0]>=0){break a}ra(H[b>>2]);break a}H[a>>2]=0;H[a+4>>2]=0;H[a+8>>2]=0;H[a+12>>2]=0}fa=h+32|0}function zf(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=O(0),q=0,r=0,s=0;f=fa-720|0;fa=f;a:{b:{c:{d:{e:{f:{g:{h:{i:{if(J[b+38>>1]>=515){H[f+680>>2]=0;H[f+672>>2]=0;H[f+676>>2]=0;if((ha[H[H[a>>2]+24>>2]](a)|0)<=0){break d}while(1){c=ha[H[H[a>>2]+20>>2]](a,m)|0;d=H[H[H[(ha[H[H[a>>2]+28>>2]](a)|0)+4>>2]+8>>2]+(c<<2)>>2];if(H[d+28>>2]==9){g=H[f+672>>2];c=H[f+676>>2]-g>>2;e=I[d+24|0];j:{if(c>>>0>>0){Aa(f+672|0,e-c|0);break j}if(c>>>0<=e>>>0){break j}H[f+676>>2]=g+(e<<2)}k=0;c=H[b+20>>2];j=H[b+16>>2];d=e<<2;h=j+d|0;g=H[b+12>>2];c=d>>>0>h>>>0?c+1|0:c;if(h>>>0>K[b+8>>2]&(g|0)<=(c|0)|(c|0)>(g|0)){break b}ta(H[f+672>>2],j+H[b>>2]|0,d);c=H[b+20>>2];g=d+H[b+16>>2]|0;c=g>>>0>>0?c+1|0:c;H[b+16>>2]=g;H[b+20>>2]=c;l=H[b+12>>2];j=l;h=g+4|0;d=h>>>0<4?c+1|0:c;n=H[b+8>>2];if(n>>>0>>0&(d|0)>=(j|0)|(d|0)>(j|0)){break b}o=H[b>>2];j=o+g|0;j=I[j|0]|I[j+1|0]<<8|(I[j+2|0]<<16|I[j+3|0]<<24);H[b+16>>2]=h;H[b+20>>2]=d;if((d|0)>=(l|0)&h>>>0>=n>>>0|(d|0)>(l|0)){break b}d=I[h+o|0];g=g+5|0;c=g>>>0<5?c+1|0:c;H[b+16>>2]=g;H[b+20>>2]=c;if(d>>>0>31){break b}p=(A(2,j),B());H[f+20>>2]=-1;H[f+16>>2]=1832;H[f+32>>2]=0;H[f+36>>2]=0;H[f+24>>2]=0;H[f+28>>2]=0;c=f+16|0;g=H[f+672>>2];h=d-1|0;if(h>>>0<=29){H[c+4>>2]=d;Ca(c+8|0,g,g+(e<<2)|0);L[c+20>>2]=p}k:{if(h>>>0>=30){break k}if(!Vc(f+16|0,H[H[a+60>>2]+((H[a+40>>2]-H[a+36>>2]|0)/24<<2)>>2])){break k}c=H[a+40>>2];l:{if((c|0)!=H[a+44>>2]){H[c>>2]=1832;d=H[f+20>>2];H[c+16>>2]=0;H[c+8>>2]=0;H[c+12>>2]=0;H[c+4>>2]=d;d=H[f+28>>2];e=H[f+24>>2];if((d|0)!=(e|0)){e=d-e|0;if((e|0)<0){break i}d=sa(e);H[c+8>>2]=d;H[c+12>>2]=d;H[c+16>>2]=d+(e&-4);g=H[f+24>>2];e=H[f+28>>2]-g|0;if((e|0)>0){d=ta(d,g,e)+e|0}H[c+12>>2]=d}L[c+20>>2]=L[f+36>>2];H[a+40>>2]=c+24;break l}m:{n:{o:{p:{g=H[a+40>>2];d=H[a+36>>2];e=(g-d|0)/24|0;c=e+1|0;if(c>>>0<178956971){h=(H[a+44>>2]-d|0)/24|0;j=h<<1;h=h>>>0>=89478485?178956970:c>>>0>>0?j:c;if(h){if(h>>>0>=178956971){break p}k=sa(N(h,24))}e=N(e,24)+k|0;H[e>>2]=1832;c=H[f+20>>2];H[e+16>>2]=0;H[e+8>>2]=0;H[e+12>>2]=0;H[e+4>>2]=c;c=H[f+28>>2];j=H[f+24>>2];if((c|0)!=(j|0)){c=c-j|0;if((c|0)<0){break o}l=sa(c);H[e+8>>2]=l;H[e+16>>2]=l+(c&-4);r=e,s=ta(l,j,c)+c|0,H[r+12>>2]=s}c=N(h,24)+k|0;L[e+20>>2]=L[f+36>>2];h=e+24|0;if((d|0)==(g|0)){break n}while(1){e=e-24|0;H[e>>2]=1832;g=g-24|0;H[e+4>>2]=H[g+4>>2];H[e+8>>2]=H[g+8>>2];H[e+12>>2]=H[g+12>>2];H[e+16>>2]=H[g+16>>2];H[g+16>>2]=0;H[g+8>>2]=0;H[g+12>>2]=0;L[e+20>>2]=L[g+20>>2];if((d|0)!=(g|0)){continue}break}H[a+44>>2]=c;k=H[a+40>>2];H[a+40>>2]=h;g=H[a+36>>2];H[a+36>>2]=e;if((g|0)==(k|0)){break m}while(1){k=k-24|0;ha[H[H[k>>2]>>2]](k)|0;if((g|0)!=(k|0)){continue}break}break m}va();v()}za();v()}va();v()}H[a+44>>2]=c;H[a+40>>2]=h;H[a+36>>2]=e}if(g){ra(g)}}k=1}H[f+16>>2]=1832;c=H[f+24>>2];if(c){H[f+28>>2]=c;ra(c)}if(!k){break c}}m=m+1|0;if((ha[H[H[a>>2]+24>>2]](a)|0)>(m|0)){continue}break}break d}m=ha[H[H[a>>2]+24>>2]](a)|0;H[f+712>>2]=0;H[f+704>>2]=0;H[f+708>>2]=0;if(m){if(m>>>0>=214748365){break h}c=N(m,20);d=sa(c);H[f+704>>2]=d;H[f+712>>2]=c+d;c=c-20|0;c=(c-((c>>>0)%20|0)|0)+20|0;r=f,s=ua(d,0,c)+c|0,H[r+708>>2]=s;while(1){c=ha[H[H[a>>2]+20>>2]](a,i)|0;d=H[H[H[(ha[H[H[a>>2]+28>>2]](a)|0)+4>>2]+8>>2]+(c<<2)>>2];h=H[d+28>>2];c=h-1|0;if(c>>>0<=10){c=H[(c<<2)+13584>>2]}else{c=-1}j=(c|0)>0?c:0;if(j>>>0>4){break f}c=H[f+704>>2]+N(i,20)|0;l=I[d+24|0];H[c+16>>2]=l;H[c+12>>2]=j;H[c+8>>2]=h;H[c+4>>2]=e;H[c>>2]=d;e=e+l|0;i=i+1|0;if((m|0)!=(i|0)){continue}break}}c=ha[H[H[a>>2]+20>>2]](a,0)|0;n=H[H[H[(ha[H[H[a>>2]+28>>2]](a)|0)+4>>2]+8>>2]+(c<<2)>>2];F[n+84|0]=1;H[n+72>>2]=H[n+68>>2];i=H[b+12>>2];c=i;d=H[b+20>>2];j=H[b+8>>2];h=H[b+16>>2];if((c|0)<=(d|0)&j>>>0<=h>>>0|(c|0)<(d|0)){break f}o=H[b>>2];q=I[o+h|0];c=d;l=h+1|0;c=l?c:c+1|0;H[b+16>>2]=l;H[b+20>>2]=c;q:{switch(q|0){case 0:a=H[f+704>>2];if((H[f+708>>2]-a|0)!=20){break e}if(H[a+16>>2]!=3){break f}r:{if(j>>>0<=l>>>0&(c|0)>=(i|0)|(c|0)>(i|0)){break r}c=d;a=h+2|0;c=a>>>0<2?c+1|0:c;H[b+16>>2]=a;H[b+20>>2]=c;c=d;d=h+6|0;c=d>>>0<6?c+1|0:c;if(d>>>0>j>>>0&(c|0)>=(i|0)|(c|0)>(i|0)){break r}a=a+o|0;a=I[a|0]|I[a+1|0]<<8|(I[a+2|0]<<16|I[a+3|0]<<24);H[b+16>>2]=d;H[b+20>>2]=c;qb(n,a);i=f+672|0;H[i+20>>2]=0;H[i+12>>2]=0;H[i+16>>2]=0;H[i>>2]=0;H[i+4>>2]=0;H[i+20>>2]=a;d=Bc(f+16|0,f+704|0);e=fa-32|0;fa=e;H[e+24>>2]=0;H[e+16>>2]=0;H[e+20>>2]=0;h=H[b+12>>2];c=H[b+20>>2];a=c;j=H[b+16>>2];k=j+4|0;c=k>>>0<4?c+1|0:c;l=H[b+8>>2];s:{if(l>>>0>>0&(c|0)>=(h|0)|(c|0)>(h|0)){break s}n=H[b>>2];m=n+j|0;m=I[m|0]|I[m+1|0]<<8|(I[m+2|0]<<16|I[m+3|0]<<24);H[b+16>>2]=k;H[b+20>>2]=c;t:{u:{switch(m-2|0){case 1:if((c|0)>=(h|0)&k>>>0>=l>>>0|(c|0)>(h|0)){break s}k=F[k+n|0];c=a;a=j+5|0;c=a>>>0<5?c+1|0:c;H[b+16>>2]=a;H[b+20>>2]=c;H[i+8>>2]=k;if((k|0)==1){if(Td(i,b,e+16|0)){break t}break s}Qd(1799,23,H[3443]);break s;default:Qd(1774,24,H[3443]);break s;case 0:break u}}if(!Td(i,b,e+16|0)){break s}}H[e+8>>2]=H[e+16>>2];H[e>>2]=H[e+20>>2];c=fa-32|0;fa=c;a=H[i>>2];p=L[i+4>>2];h=c+24|0;H[h>>2]=1065353216;k=-1<0){L[h>>2]=p/O(a|0)}i=H[e+8>>2];m=H[e>>2];if((i|0)!=(m|0)){a=H[d+28>>2];while(1){b=H[i>>2];g=H[i+4>>2];p=L[h>>2];L[c+16>>2]=p*O(H[i+8>>2]-k|0);L[c+12>>2]=p*O(g-k|0);L[c+8>>2]=p*O(b-k|0);b=a;j=H[d+16>>2];g=H[j>>2];if(!I[g+84|0]){b=H[H[g+68>>2]+(a<<2)>>2]}if(K[g+80>>2]>b>>>0){a=H[g+40>>2];ta(H[H[g>>2]>>2]+N(a,b)|0,(c+8|0)+(H[j+4>>2]<<2)|0,a);m=H[e>>2];a=H[d+28>>2]}a=a+1|0;H[d+28>>2]=a;i=i+12|0;if((m|0)!=(i|0)){continue}break}}fa=c+32|0;g=1}a=H[e+16>>2];if(a){H[e+20>>2]=a;ra(a)}fa=e+32|0;zc(d);k=1;if(g){break f}}k=0;break f;case 1:break q;default:break f}}if(j>>>0<=l>>>0&(c|0)>=(i|0)|(c|0)>(i|0)){break f}g=I[l+o|0];c=d;l=h+2|0;c=l>>>0<2?c+1|0:c;H[b+16>>2]=l;H[b+20>>2]=c;if(g>>>0>=7){H[f>>2]=g;Pd(1651,f);break f}c=d;d=h+6|0;c=d>>>0<6?c+1|0:c;h=d;if(d>>>0>j>>>0&(c|0)>=(i|0)|(c|0)>(i|0)){break f}d=l+o|0;d=I[d|0]|I[d+1|0]<<8|(I[d+2|0]<<16|I[d+3|0]<<24);H[b+16>>2]=h;H[b+20>>2]=c;if(m){i=0;while(1){c=ha[H[H[a>>2]+20>>2]](a,i)|0;c=H[H[H[(ha[H[H[a>>2]+28>>2]](a)|0)+4>>2]+8>>2]+(c<<2)>>2];qb(c,d);F[c+84|0]=1;H[c+72>>2]=H[c+68>>2];i=i+1|0;if((m|0)!=(i|0)){continue}break}}a=Bc(f+672|0,f+704|0);v:{w:{switch(g|0){case 1:c=zb(f+16|0,e);b=yd(c,b,a);Ab(c);if(!b){break g}break v;case 2:c=xb(f+16|0,e);b=xd(c,b,a);yb(c);if(!b){break g}break v;case 3:c=xb(f+16|0,e);b=wd(c,b,a);yb(c);if(!b){break g}break v;case 4:c=cb(f+16|0,e);b=vd(c,b,a);db(c);if(!b){break g}break v;case 5:c=cb(f+16|0,e);b=ud(c,b,a);db(c);if(!b){break g}break v;case 6:c=cb(f+16|0,e);b=td(c,b,a);db(c);if(b){break v}break g;case 0:break w;default:break g}}c=zb(f+16|0,e);b=zd(c,b,a);Ab(c);if(!b){break g}}zc(a);k=1;break f}va();v()}va();v()}zc(a)}a=H[f+704>>2]}if(!a){break a}H[f+708>>2]=a;ra(a);break a}k=1;if(H[a+52>>2]==H[a+48>>2]){break b}while(1){if(!sd(1,f+16|0,b)){break c}c=H[a+48>>2];d=H[f+16>>2];H[c+(i<<2)>>2]=d>>>1^0-(d&1);i=i+1|0;if(i>>>0>2]-c>>2>>>0){continue}break}break b}k=0}a=H[f+672>>2];if(!a){break a}H[f+676>>2]=a;ra(a)}fa=f+720|0;return k|0}function pg(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,w=0,x=0,y=0,z=0,A=0,B=0;m=fa-16|0;fa=m;H[m+12>>2]=b;c=sa(32);H[m>>2]=c;H[m+4>>2]=24;H[m+8>>2]=-2147483616;d=I[1206]|I[1207]<<8|(I[1208]<<16|I[1209]<<24);b=I[1202]|I[1203]<<8|(I[1204]<<16|I[1205]<<24);F[c+16|0]=b;F[c+17|0]=b>>>8;F[c+18|0]=b>>>16;F[c+19|0]=b>>>24;F[c+20|0]=d;F[c+21|0]=d>>>8;F[c+22|0]=d>>>16;F[c+23|0]=d>>>24;d=I[1198]|I[1199]<<8|(I[1200]<<16|I[1201]<<24);b=I[1194]|I[1195]<<8|(I[1196]<<16|I[1197]<<24);F[c+8|0]=b;F[c+9|0]=b>>>8;F[c+10|0]=b>>>16;F[c+11|0]=b>>>24;F[c+12|0]=d;F[c+13|0]=d>>>8;F[c+14|0]=d>>>16;F[c+15|0]=d>>>24;d=I[1190]|I[1191]<<8|(I[1192]<<16|I[1193]<<24);b=I[1186]|I[1187]<<8|(I[1188]<<16|I[1189]<<24);F[c|0]=b;F[c+1|0]=b>>>8;F[c+2|0]=b>>>16;F[c+3|0]=b>>>24;F[c+4|0]=d;F[c+5|0]=d>>>8;F[c+6|0]=d>>>16;F[c+7|0]=d>>>24;F[c+24|0]=0;k=fa-48|0;fa=k;e=H[m+12>>2];c=a+16|0;b=H[c>>2];a:{b:{if(!b){break b}d=c;while(1){f=(e|0)>H[b+16>>2];d=f?d:b;b=H[(f?b+4|0:b)>>2];if(b){continue}break}if((d|0)==(c|0)){break b}if((e|0)>=H[d+16>>2]){break a}}H[k+28>>2]=0;H[k+32>>2]=0;A=k+24|0;H[k+24>>2]=A|4;b=k+16|0;H[b>>2]=0;H[b+4>>2]=0;H[k+8>>2]=e;H[k+12>>2]=b;x=k+8|0;b=x;y=fa-16|0;fa=y;u=a+12|0;d=H[u+4>>2];c:{d:{if(!d){o=u+4|0;c=o;break d}b=H[b>>2];while(1){c=d;a=H[c+16>>2];if((a|0)>(b|0)){o=c;d=H[c>>2];if(d){continue}break d}if((a|0)>=(b|0)){i=c;a=0;break c}d=H[c+4>>2];if(d){continue}break}o=c+4|0}i=sa(32);a=H[x>>2];r=i+24|0;b=r;H[b>>2]=0;H[b+4>>2]=0;H[i+16>>2]=a;t=i+20|0;H[t>>2]=b;d=H[x+4>>2];B=x+8|0;if((d|0)!=(B|0)){while(1){p=fa-16|0;fa=p;a=p+8|0;n=d+16|0;e:{f:{g:{h:{i:{j:{k:{f=r;e=t+4|0;l:{if((f|0)==(e|0)){break l}g=I[f+27|0];s=g<<24>>24<0;b=I[n+11|0];w=b<<24>>24;h=(w|0)<0;q=h?H[n+4>>2]:b;z=s?H[f+20>>2]:g;l=q>>>0>z>>>0;j=l?z:q;if(j){h=h?H[n>>2]:n;g=s?H[f+16>>2]:f+16|0;b=Ha(h,g,j);if(!b){if(q>>>0>>0){break l}break k}if((b|0)>=0){break k}break l}if(q>>>0>=z>>>0){break j}}g=H[f>>2];m:{a=f;n:{if((a|0)==H[t>>2]){break n}o:{if(!g){b=f;while(1){a=H[b+8>>2];h=H[a>>2]==(b|0);b=a;if(h){continue}break}break o}b=g;while(1){a=b;b=H[b+4>>2];if(b){continue}break}}j=I[n+11|0];h=j<<24>>24;w=(h|0)<0;b=I[a+27|0];l=b<<24>>24<0;p:{s=w?H[n+4>>2]:j;j=l?H[a+20>>2]:b;b=j>>>0>s>>>0?s:j;if(b){b=Ha(l?H[a+16>>2]:a+16|0,w?H[n>>2]:n,b);if(b){break p}}if(j>>>0>>0){break n}break m}if((b|0)>=0){break m}}if(!g){H[p+12>>2]=f;a=f;break e}H[p+12>>2]=a;a=a+4|0;break e}b=H[e>>2];if(!b){H[p+12>>2]=e;a=e;break e}j=(h|0)<0?H[n>>2]:n;f=e;while(1){a=b;b=I[b+27|0];e=b<<24>>24<0;l=e?H[a+20>>2]:b;h=l>>>0>>0;q:{r:{s:{t:{g=h?l:s;u:{if(g){e=e?H[a+16>>2]:a+16|0;b=Ha(j,e,g);if(!b){if(l>>>0>s>>>0){break u}break t}if((b|0)>=0){break t}break u}if(l>>>0<=s>>>0){break s}}f=a;b=H[a>>2];if(b){continue}break g}b=Ha(e,j,g);if(b){break r}}if(h){break q}break g}if((b|0)>=0){break g}}f=a+4|0;b=H[a+4>>2];if(b){continue}break}break g}b=Ha(g,h,j);if(b){break i}}if(l){break h}break f}if((b|0)>=0){break f}}g=H[f+4>>2];v:{if(!g){b=f;while(1){a=H[b+8>>2];h=H[a>>2]!=(b|0);b=a;if(h){continue}break}break v}b=g;while(1){a=b;b=H[b>>2];if(b){continue}break}}w:{x:{if((a|0)==(e|0)){break x}b=I[a+27|0];j=b<<24>>24<0;y:{h=j?H[a+20>>2]:b;b=h>>>0>>0?h:q;if(b){b=Ha((w|0)<0?H[n>>2]:n,j?H[a+16>>2]:a+16|0,b);if(b){break y}}if(h>>>0>q>>>0){break x}break w}if((b|0)>=0){break w}}if(!g){H[p+12>>2]=f;a=f+4|0;break e}H[p+12>>2]=a;break e}b=H[e>>2];if(!b){H[p+12>>2]=e;a=e;break e}j=(w|0)<0?H[n>>2]:n;f=e;while(1){a=b;b=I[b+27|0];e=b<<24>>24<0;l=e?H[a+20>>2]:b;h=l>>>0>>0;z:{A:{B:{C:{g=h?l:q;D:{if(g){e=e?H[a+16>>2]:a+16|0;b=Ha(j,e,g);if(!b){if(l>>>0>q>>>0){break D}break C}if((b|0)>=0){break C}break D}if(l>>>0<=q>>>0){break B}}f=a;b=H[a>>2];if(b){continue}break g}b=Ha(e,j,g);if(b){break A}}if(h){break z}break g}if((b|0)>=0){break g}}f=a+4|0;b=H[a+4>>2];if(b){continue}break}}H[p+12>>2]=a;a=f;break e}H[p+12>>2]=f;H[a>>2]=f}f=a;a=H[a>>2];if(a){b=0}else{a=sa(40);e=a+16|0;E:{if(F[d+27|0]>=0){b=H[d+20>>2];H[e>>2]=H[d+16>>2];H[e+4>>2]=b;H[e+8>>2]=H[d+24>>2];break E}Ba(e,H[d+16>>2],H[d+20>>2])}e=a+28|0;F:{if(F[d+39|0]>=0){b=H[d+32>>2];H[e>>2]=H[d+28>>2];H[e+4>>2]=b;H[e+8>>2]=H[d+36>>2];break F}Ba(e,H[d+28>>2],H[d+32>>2])}H[a+8>>2]=H[p+12>>2];H[a>>2]=0;H[a+4>>2]=0;H[f>>2]=a;b=a;e=H[H[t>>2]>>2];if(e){H[t>>2]=e;b=H[f>>2]}Ub(H[t+4>>2],b);H[t+8>>2]=H[t+8>>2]+1;b=1}F[y+12|0]=b;H[y+8>>2]=a;fa=p+16|0;b=H[d+4>>2];G:{if(b){while(1){d=b;b=H[b>>2];if(b){continue}break G}}while(1){a=d;d=H[d+8>>2];if((a|0)!=H[d>>2]){continue}break}}if((d|0)!=(B|0)){continue}break}}H[i+8>>2]=c;H[i>>2]=0;H[i+4>>2]=0;H[o>>2]=i;d=i;a=H[H[u>>2]>>2];if(a){H[u>>2]=a;d=H[o>>2]}Ub(H[u+4>>2],d);H[u+8>>2]=H[u+8>>2]+1;a=1}F[k+44|0]=a;H[k+40>>2]=i;fa=y+16|0;d=H[k+40>>2];Mb(x|4,H[k+16>>2]);Mb(A,H[k+28>>2])}h=fa-48|0;fa=h;c=h+8|0;e=fa-32|0;fa=e;r=e+32|0;b=r;a=e+21|0;H:{if((b|0)==(a|0)){break H}}f=b-a|0;I:{if((f|0)<=9){i=61;if((f|0)<(K[3712]<=1|0)){break I}}F[a|0]=49;b=a+1|0;i=0}H[e+12>>2]=i;H[e+8>>2]=b;i=fa-16|0;fa=i;g=fa-16|0;fa=g;J:{e=H[e+8>>2];o=e-a|0;if(o>>>0<=4294967279){K:{if(o>>>0<11){F[c+11|0]=o;b=c;break K}if(o>>>0>=11){b=o+16&-16;f=b-1|0;b=(f|0)==11?b:f}else{b=10}f=b+1|0;b=sa(f);H[c>>2]=b;H[c+8>>2]=f|-2147483648;H[c+4>>2]=o}while(1){if((a|0)!=(e|0)){F[b|0]=I[a|0];b=b+1|0;a=a+1|0;continue}break}F[g+15|0]=0;F[b|0]=I[g+15|0];fa=g+16|0;break J}Qa();v()}fa=i+16|0;fa=r;H[h+32>>2]=m;L:{M:{g=d+20|0;c=H[g+4>>2];N:{if(!c){i=g+4|0;d=i;break N}b=I[m+11|0];a=b<<24>>24<0;e=a?H[m>>2]:m;r=a?H[m+4>>2]:b;while(1){d=c;a=I[c+27|0];b=a<<24>>24<0;i=b?H[c+20>>2]:a;f=i>>>0>>0;O:{P:{Q:{R:{c=f?i:r;S:{if(c){b=b?H[d+16>>2]:d+16|0;a=Ha(e,b,c);if(!a){if(i>>>0>r>>>0){break S}break R}if((a|0)>=0){break R}break S}if(i>>>0<=r>>>0){break Q}}i=d;c=H[d>>2];if(c){continue}break N}a=Ha(b,e,c);if(a){break P}}if(f){break O}break M}if((a|0)>=0){break M}}c=H[d+4>>2];if(c){continue}break}i=d+4|0}c=sa(40);b=c+16|0;f=H[h+32>>2];T:{if(F[f+11|0]>=0){a=H[f+4>>2];H[b>>2]=H[f>>2];H[b+4>>2]=a;H[b+8>>2]=H[f+8>>2];break T}Ba(b,H[f>>2],H[f+4>>2])}H[c+8>>2]=d;H[c>>2]=0;H[c+4>>2]=0;H[c+36>>2]=0;H[c+28>>2]=0;H[c+32>>2]=0;H[i>>2]=c;d=c;a=H[H[g>>2]>>2];if(a){H[g>>2]=a;d=H[i>>2]}Ub(H[g+4>>2],d);H[g+8>>2]=H[g+8>>2]+1;a=1;break L}c=d;a=0}F[h+44|0]=a;H[h+40>>2]=c;b=H[h+40>>2];if(F[b+39|0]<0){ra(H[b+28>>2])}a=H[h+12>>2];H[b+28>>2]=H[h+8>>2];H[b+32>>2]=a;H[b+36>>2]=H[h+16>>2];fa=h+48|0;fa=k+48|0;if(F[m+11|0]<0){ra(H[m>>2])}fa=m+16|0}function zd(a,b,c){var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0;i=H[b+12>>2];e=H[b+20>>2];d=H[b+16>>2];j=d+4|0;e=j>>>0<4?e+1|0:e;a:{if(j>>>0>K[b+8>>2]&(e|0)>=(i|0)|(e|0)>(i|0)){break a}e=d+H[b>>2]|0;H[a>>2]=I[e|0]|I[e+1|0]<<8|(I[e+2|0]<<16|I[e+3|0]<<24);e=H[b+20>>2];i=e;j=H[b+16>>2];d=j+4|0;e=d>>>0<4?e+1|0:e;k=d;H[b+16>>2]=d;H[b+20>>2]=e;if(K[a>>2]>32){break a}d=H[b+12>>2];e=i;i=j+8|0;e=i>>>0<8?e+1|0:e;if((d|0)<=(e|0)&i>>>0>K[b+8>>2]|(d|0)<(e|0)){break a}e=k+H[b>>2]|0;f=I[e|0]|I[e+1|0]<<8|(I[e+2|0]<<16|I[e+3|0]<<24);H[a+4>>2]=f;e=H[b+20>>2];i=H[b+16>>2]+4|0;e=i>>>0<4?e+1|0:e;H[b+16>>2]=i;H[b+20>>2]=e;if(!f){return 1}f=0;H[a+8>>2]=0;if(!xa(a+16|0,b)){break a}if(!xa(a+36|0,b)){break a}if(!xa(a+56|0,b)){break a}if(!xa(a+76|0,b)){break a}s=H[a+4>>2];i=c;b=0;d=fa-32|0;fa=d;f=a;a=H[a+12>>2];H[d+16>>2]=0;H[d+8>>2]=0;H[d+12>>2]=0;b:{c:{if(a){if(a>>>0>=1073741824){break c}c=a<<2;b=sa(c);H[d+8>>2]=b;h=b+c|0;H[d+16>>2]=h;ua(b,0,c);H[d+12>>2]=h}c=H[f+120>>2];e=H[c>>2];if(e){H[c+4>>2]=e;ra(e);h=H[d+12>>2];b=H[d+8>>2];a=H[f+12>>2]}H[c+4>>2]=h;H[c>>2]=b;H[c+8>>2]=H[d+16>>2];b=0;H[d+16>>2]=0;H[d+8>>2]=0;H[d+12>>2]=0;d:{if(a){if(a>>>0>=1073741824){break d}a=a<<2;g=sa(a);H[d+8>>2]=g;b=a+g|0;H[d+16>>2]=b;ua(g,0,a);H[d+12>>2]=b}a=H[f+132>>2];c=H[a>>2];if(c){H[a+4>>2]=c;ra(c);g=H[d+8>>2];b=H[d+12>>2]}H[a+4>>2]=b;H[a>>2]=g;H[a+8>>2]=H[d+16>>2];H[d+24>>2]=0;H[d+28>>2]=0;H[d+16>>2]=0;H[d+20>>2]=0;H[d+8>>2]=0;H[d+12>>2]=0;ya(d+8|0);a=H[d+24>>2]+H[d+28>>2]|0;b=(a>>>0)/341|0;a=H[H[d+12>>2]+(b<<2)>>2]+N(a-N(b,341)|0,12)|0;H[a+4>>2]=0;H[a+8>>2]=0;H[a>>2]=s;c=1;a=H[d+28>>2]+1|0;H[d+28>>2]=a;e:{if(!a){break e}while(1){b=H[d+12>>2];g=H[d+24>>2];k=a-1|0;c=g+k|0;e=(c>>>0)/341|0;c=H[b+(e<<2)>>2]+N(c-N(e,341)|0,12)|0;h=H[c+8>>2];e=H[c+4>>2];j=H[c>>2];H[d+28>>2]=k;c=H[d+16>>2];if((((b|0)!=(c|0)?N(c-b>>2,341)-1|0:0)-(a+g|0)|0)+1>>>0>=682){ra(H[c-4>>2]);H[d+16>>2]=H[d+16>>2]-4}c=0;if(j>>>0>s>>>0){break e}b=H[f+12>>2];a=(b-1|0)!=(e|0)?e+1|0:0;if(a>>>0>=b>>>0){break e}g=N(h,12);o=g+H[f+132>>2]|0;k=g+H[f+120>>2]|0;e=H[f>>2];l=a<<2;m=H[l+H[o>>2]>>2];f:{g:{if((e|0)==(m|0)){if(!j){break g}o=0;b=H[i+20>>2];h=H[i+16>>2];if((b|0)==(h|0)){a=H[f+8>>2];H[i+28>>2]=j+H[i+28>>2];H[f+8>>2]=a+j;break g}while(1){c=(b|0)==(h|0);a=b;e=0;b=h;h:{if(c){break h}while(1){g=H[i+28>>2];b=a;c=N(e,20)+h|0;l=H[c>>2];if(!I[l+84|0]){g=H[H[l+68>>2]+(g<<2)>>2]}if(K[l+80>>2]<=g>>>0){break h}m=H[k>>2]+(H[c+4>>2]<<2)|0;h=H[c+12>>2];b=m;i:{if(h>>>0>3){break i}a=0;b=H[i+12>>2];if(!H[c+16>>2]){break i}while(1){b=ta(b,m+(a<<2)|0,h);h=H[c+12>>2];b=b+h|0;a=a+1|0;if(a>>>0>2]){continue}break}b=H[i+12>>2]}a=H[l+40>>2];ta(H[H[l>>2]>>2]+N(a,g)|0,b,a);e=e+1|0;a=H[i+20>>2];b=a;h=H[i+16>>2];if(e>>>0<(b-h|0)/20>>>0){continue}break}}H[i+28>>2]=H[i+28>>2]+1;H[f+8>>2]=H[f+8>>2]+1;o=o+1|0;if((j|0)!=(o|0)){continue}break}break g}j:{k:{l:{m:{if(j>>>0<=2){c=H[f+108>>2];H[c>>2]=a;g=1;b=H[f+12>>2];if(b>>>0>1){break m}break j}if(K[f+8>>2]>K[f+4>>2]){break e}b=H[f+120>>2];n=h+1|0;o=N(n,12);p=b+o|0;if((p|0)!=(k|0)){Ca(p,H[k>>2],H[k+4>>2]);b=H[f+120>>2]}b=l+H[b+o>>2]|0;H[b>>2]=H[b>>2]+(1<>2];m=32-e|0;n:{if((b|0)<=(m|0)){k=H[f+28>>2];if((k|0)==H[f+20>>2]){break l}m=H[k>>2];p=b+e|0;H[f+32>>2]=p;b=m<>>32-b|0;if((p|0)!=32){break n}H[f+32>>2]=0;H[f+28>>2]=k+4;break n}k=H[f+28>>2];p=k+4|0;if((p|0)==H[f+20>>2]){break l}r=H[k>>2];H[f+28>>2]=p;m=b-m|0;H[f+32>>2]=m;b=H[k+4>>2]>>>32-m|r<>>32-b}e=j>>>1|0;if(e>>>0>>0){break e}break k}while(1){a=(b-1|0)!=(a|0)?a+1|0:0;H[c+(g<<2)>>2]=a;b=H[f+12>>2];g=g+1|0;if(b>>>0>g>>>0){continue}break}break j}e=j>>>1|0;b=0}o:{p:{b=e-b|0;c=j-b|0;q:{if((c|0)==(b|0)){c=b;break q}e=H[f+88>>2];if((e|0)==H[f+80>>2]){break p}j=H[e>>2];k=H[f+92>>2];m=k+1|0;H[f+92>>2]=m;j=j&-2147483648>>>k;r:{if((m|0)==32){H[f+92>>2]=0;H[f+88>>2]=e+4;if(j){break r}break p}if(!j){break p}}}e=c;c=b;break o}e=b}b=H[f+132>>2];g=b+g|0;j=H[g>>2];k=j+l|0;H[k>>2]=H[k>>2]+1;Ca(b+o|0,j,H[g+4>>2]);if(c){b=H[d+28>>2]+H[d+24>>2]|0;j=H[d+16>>2];g=H[d+12>>2];if((b|0)==(((g|0)!=(j|0)?N(j-g>>2,341)-1|0:0)|0)){ya(d+8|0);g=H[d+12>>2];b=H[d+24>>2]+H[d+28>>2]|0}m=g;g=(b>>>0)/341|0;b=H[m+(g<<2)>>2]+N(b-N(g,341)|0,12)|0;H[b+8>>2]=h;H[b+4>>2]=a;H[b>>2]=c;H[d+28>>2]=H[d+28>>2]+1}if(!e){break g}b=H[d+28>>2]+H[d+24>>2]|0;c=H[d+16>>2];g=H[d+12>>2];if((b|0)==(((c|0)!=(g|0)?N(c-g>>2,341)-1|0:0)|0)){ya(d+8|0);g=H[d+12>>2];b=H[d+24>>2]+H[d+28>>2]|0}c=(b>>>0)/341|0;b=H[(c<<2)+g>>2]+N(b-N(c,341)|0,12)|0;H[b+8>>2]=n;H[b+4>>2]=a;H[b>>2]=e;a=H[d+28>>2]+1|0;H[d+28>>2]=a;break f}m=0;if(!j){break g}while(1){if(H[f+12>>2]){e=H[f+40>>2];p=H[o>>2];c=H[f+96>>2];r=H[f+108>>2];a=0;while(1){h=r+(a<<2)|0;H[c+(H[h>>2]<<2)>>2]=0;b=H[f>>2];g=H[h>>2]<<2;l=H[g+p>>2];s:{if((b|0)==(l|0)){break s}g=c+g|0;b=b-l|0;l=H[f+52>>2];q=32-l|0;if((b|0)<=(q|0)){n=H[f+48>>2];if((n|0)==(e|0)){c=0;break e}H[g>>2]=H[n>>2]<>>32-b;b=b+H[f+52>>2]|0;H[f+52>>2]=b;if((b|0)!=32){break s}H[f+52>>2]=0;H[f+48>>2]=n+4;break s}n=H[f+48>>2];t=n+4|0;if((e|0)==(t|0)){c=0;break e}u=H[n>>2];H[f+48>>2]=t;q=b-q|0;H[f+52>>2]=q;H[g>>2]=H[n+4>>2]>>>32-q|u<>>32-b}b=H[h>>2]<<2;h=b+c|0;H[h>>2]=H[h>>2]|H[b+H[k>>2]>>2];a=a+1|0;if(a>>>0>2]){continue}break}}e=0;a=H[i+16>>2];t:{if((a|0)==H[i+20>>2]){break t}while(1){g=H[i+28>>2];c=N(e,20)+a|0;l=H[c>>2];if(!I[l+84|0]){g=H[H[l+68>>2]+(g<<2)>>2]}if(K[l+80>>2]<=g>>>0){break t}n=H[f+96>>2]+(H[c+4>>2]<<2)|0;h=H[c+12>>2];b=n;u:{if(h>>>0>3){break u}a=0;b=H[i+12>>2];if(!H[c+16>>2]){break u}while(1){b=ta(b,n+(a<<2)|0,h);h=H[c+12>>2];b=b+h|0;a=a+1|0;if(a>>>0>2]){continue}break}b=H[i+12>>2]}a=H[l+40>>2];ta(H[H[l>>2]>>2]+N(a,g)|0,b,a);e=e+1|0;a=H[i+16>>2];if(e>>>0<(H[i+20>>2]-a|0)/20>>>0){continue}break}}H[i+28>>2]=H[i+28>>2]+1;H[f+8>>2]=H[f+8>>2]+1;m=m+1|0;if((j|0)!=(m|0)){continue}break}}a=H[d+28>>2]}if(a){continue}break}c=1}H[d+28>>2]=0;g=H[d+16>>2];a=H[d+12>>2];b=g-a|0;if(b>>>0>=9){while(1){ra(H[a>>2]);a=H[d+12>>2]+4|0;H[d+12>>2]=a;g=H[d+16>>2];b=g-a|0;if(b>>>0>8){continue}break}}h=170;v:{switch((b>>>2|0)-1|0){case 1:h=341;case 0:H[d+24>>2]=h;break;default:break v}}w:{if((a|0)==(g|0)){break w}while(1){ra(H[a>>2]);a=a+4|0;if((g|0)!=(a|0)){continue}break}a=H[d+16>>2];b=H[d+12>>2];if((a|0)==(b|0)){break w}H[d+16>>2]=a+((b-a|0)+3&-4)}a=H[d+8>>2];if(a){ra(a)}fa=d+32|0;break b}va();v()}va();v()}f=c}return f}function yd(a,b,c){var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0;i=H[b+12>>2];d=H[b+20>>2];h=H[b+16>>2];e=h+4|0;d=e>>>0<4?d+1|0:d;a:{if(e>>>0>K[b+8>>2]&(d|0)>=(i|0)|(d|0)>(i|0)){break a}d=h+H[b>>2]|0;H[a>>2]=I[d|0]|I[d+1|0]<<8|(I[d+2|0]<<16|I[d+3|0]<<24);d=H[b+20>>2];i=d;e=H[b+16>>2];h=e+4|0;d=h>>>0<4?d+1|0:d;k=h;H[b+16>>2]=h;H[b+20>>2]=d;if(K[a>>2]>32){break a}h=H[b+12>>2];d=i;i=e+8|0;d=i>>>0<8?d+1|0:d;if(i>>>0>K[b+8>>2]&(d|0)>=(h|0)|(d|0)>(h|0)){break a}d=k+H[b>>2]|0;f=I[d|0]|I[d+1|0]<<8|(I[d+2|0]<<16|I[d+3|0]<<24);H[a+4>>2]=f;d=H[b+20>>2];i=H[b+16>>2]+4|0;d=i>>>0<4?d+1|0:d;H[b+16>>2]=i;H[b+20>>2]=d;if(!f){return 1}f=0;H[a+8>>2]=0;if(!xa(a+16|0,b)){break a}if(!xa(a+36|0,b)){break a}if(!xa(a+56|0,b)){break a}if(!xa(a+76|0,b)){break a}q=H[a+4>>2];i=c;b=0;c=0;e=fa-32|0;fa=e;f=a;a=H[a+12>>2];H[e+16>>2]=0;H[e+8>>2]=0;H[e+12>>2]=0;b:{c:{if(a){if(a>>>0>=1073741824){break c}d=a<<2;b=sa(d);H[e+8>>2]=b;c=b+d|0;H[e+16>>2]=c;ua(b,0,d);H[e+12>>2]=c}d=H[f+120>>2];h=H[d>>2];if(h){H[d+4>>2]=h;ra(h);c=H[e+12>>2];b=H[e+8>>2];a=H[f+12>>2]}H[d+4>>2]=c;H[d>>2]=b;H[d+8>>2]=H[e+16>>2];b=0;H[e+16>>2]=0;H[e+8>>2]=0;H[e+12>>2]=0;d:{if(a){if(a>>>0>=1073741824){break d}a=a<<2;g=sa(a);H[e+8>>2]=g;b=a+g|0;H[e+16>>2]=b;ua(g,0,a);H[e+12>>2]=b}a=H[f+132>>2];c=H[a>>2];if(c){H[a+4>>2]=c;ra(c);g=H[e+8>>2];b=H[e+12>>2]}H[a+4>>2]=b;H[a>>2]=g;H[a+8>>2]=H[e+16>>2];H[e+24>>2]=0;H[e+28>>2]=0;H[e+16>>2]=0;H[e+20>>2]=0;H[e+8>>2]=0;H[e+12>>2]=0;ya(e+8|0);a=H[e+24>>2]+H[e+28>>2]|0;b=(a>>>0)/341|0;a=H[H[e+12>>2]+(b<<2)>>2]+N(a-N(b,341)|0,12)|0;H[a+4>>2]=0;H[a+8>>2]=0;H[a>>2]=q;h=1;a=H[e+28>>2]+1|0;H[e+28>>2]=a;e:{if(!a){break e}while(1){b=H[e+12>>2];h=H[e+24>>2];g=a-1|0;c=h+g|0;d=(c>>>0)/341|0;c=H[b+(d<<2)>>2]+N(c-N(d,341)|0,12)|0;l=H[c+8>>2];d=H[c+4>>2];k=H[c>>2];H[e+28>>2]=g;c=H[e+16>>2];if((((b|0)!=(c|0)?N(c-b>>2,341)-1|0:0)-(a+h|0)|0)+1>>>0>=682){ra(H[c-4>>2]);H[e+16>>2]=H[e+16>>2]-4}if(k>>>0>q>>>0){h=0;break e}h=0;b=H[f+12>>2];a=(d|0)!=(b-1|0)?d+1|0:0;if(a>>>0>=b>>>0){break e}b=H[f+120>>2];g=N(l,12);m=b+g|0;c=H[f>>2];n=a<<2;p=g+H[f+132>>2]|0;d=H[n+H[p>>2]>>2];f:{g:{if((c|0)==(d|0)){if(!k){break g}g=0;b=H[i+20>>2];c=H[i+16>>2];if((b|0)==(c|0)){a=H[f+8>>2];H[i+28>>2]=k+H[i+28>>2];H[f+8>>2]=a+k;break g}while(1){h=(b|0)==(c|0);a=b;d=0;b=c;h:{if(h){break h}while(1){h=H[i+28>>2];b=a;l=N(d,20)+c|0;n=H[l>>2];if(!I[n+84|0]){h=H[H[n+68>>2]+(h<<2)>>2]}if(K[n+80>>2]<=h>>>0){break h}j=H[m>>2]+(H[l+4>>2]<<2)|0;c=H[l+12>>2];b=j;i:{if(c>>>0>3){break i}a=0;b=H[i+12>>2];if(!H[l+16>>2]){break i}while(1){b=ta(b,j+(a<<2)|0,c);c=H[l+12>>2];b=b+c|0;a=a+1|0;if(a>>>0>2]){continue}break}b=H[i+12>>2]}a=H[n+40>>2];ta(H[H[n>>2]>>2]+N(a,h)|0,b,a);d=d+1|0;a=H[i+20>>2];b=a;c=H[i+16>>2];if(d>>>0<(b-c|0)/20>>>0){continue}break}}H[i+28>>2]=H[i+28>>2]+1;H[f+8>>2]=H[f+8>>2]+1;g=g+1|0;if((k|0)!=(g|0)){continue}break}break g}j:{k:{l:{m:{if(k>>>0<=2){c=H[f+108>>2];H[c>>2]=a;g=1;b=H[f+12>>2];if(b>>>0>1){break m}break j}if(K[f+8>>2]>K[f+4>>2]){break e}j=b;b=g+12|0;Ca(j+b|0,H[m>>2],H[m+4>>2]);b=n+H[b+H[f+120>>2]>>2]|0;H[b>>2]=H[b>>2]+(1<>2];m=32-c|0;n:{if((b|0)<=(m|0)){d=H[f+28>>2];if((d|0)==H[f+20>>2]){break l}m=H[d>>2];j=b+c|0;H[f+32>>2]=j;c=m<>>32-b|0;if((j|0)!=32){break n}H[f+32>>2]=0;H[f+28>>2]=d+4;break n}d=H[f+28>>2];j=d+4|0;if((j|0)==H[f+20>>2]){break l}p=H[d>>2];H[f+28>>2]=j;m=b-m|0;H[f+32>>2]=m;c=H[d+4>>2]>>>32-m|p<>>32-b}d=k>>>1|0;if(d>>>0>>0){break e}break k}while(1){a=(b-1|0)!=(a|0)?a+1|0:0;H[c+(g<<2)>>2]=a;b=H[f+12>>2];g=g+1|0;if(b>>>0>g>>>0){continue}break}break j}d=k>>>1|0;c=0}h=l+1|0;o:{p:{b=d-c|0;c=k-b|0;q:{if((c|0)==(b|0)){c=b;break q}d=H[f+88>>2];if((d|0)==H[f+80>>2]){break p}k=H[d>>2];m=H[f+92>>2];j=m+1|0;H[f+92>>2]=j;k=k&-2147483648>>>m;r:{if((j|0)==32){H[f+92>>2]=0;H[f+88>>2]=d+4;if(k){break r}break p}if(!k){break p}}}d=c;c=b;break o}d=b}b=H[f+132>>2];g=b+g|0;k=H[g>>2];m=k+n|0;H[m>>2]=H[m>>2]+1;Ca(b+N(h,12)|0,k,H[g+4>>2]);if(c){b=H[e+28>>2]+H[e+24>>2]|0;k=H[e+16>>2];g=H[e+12>>2];if((b|0)==(((g|0)!=(k|0)?N(k-g>>2,341)-1|0:0)|0)){ya(e+8|0);g=H[e+12>>2];b=H[e+24>>2]+H[e+28>>2]|0}j=g;g=(b>>>0)/341|0;b=H[j+(g<<2)>>2]+N(b-N(g,341)|0,12)|0;H[b+8>>2]=l;H[b+4>>2]=a;H[b>>2]=c;H[e+28>>2]=H[e+28>>2]+1}if(!d){break g}b=H[e+28>>2]+H[e+24>>2]|0;c=H[e+16>>2];g=H[e+12>>2];if((b|0)==(((c|0)!=(g|0)?N(c-g>>2,341)-1|0:0)|0)){ya(e+8|0);g=H[e+12>>2];b=H[e+24>>2]+H[e+28>>2]|0}c=(b>>>0)/341|0;b=H[(c<<2)+g>>2]+N(b-N(c,341)|0,12)|0;H[b+8>>2]=h;H[b+4>>2]=a;H[b>>2]=d;a=H[e+28>>2]+1|0;H[e+28>>2]=a;break f}n=0;if(!k){break g}while(1){if(H[f+12>>2]){d=H[f+40>>2];s=H[p>>2];c=H[f+96>>2];t=H[f+108>>2];a=0;while(1){h=(a<<2)+t|0;H[c+(H[h>>2]<<2)>>2]=0;b=H[f>>2];g=H[h>>2]<<2;l=H[g+s>>2];s:{if((b|0)==(l|0)){break s}g=c+g|0;b=b-l|0;l=H[f+52>>2];o=32-l|0;if((b|0)<=(o|0)){j=H[f+48>>2];if((j|0)==(d|0)){h=0;break e}H[g>>2]=H[j>>2]<>>32-b;b=b+H[f+52>>2]|0;H[f+52>>2]=b;if((b|0)!=32){break s}H[f+52>>2]=0;H[f+48>>2]=j+4;break s}j=H[f+48>>2];r=j+4|0;if((d|0)==(r|0)){h=0;break e}u=H[j>>2];H[f+48>>2]=r;o=b-o|0;H[f+52>>2]=o;H[g>>2]=H[j+4>>2]>>>32-o|u<>>32-b}b=H[h>>2]<<2;h=b+c|0;H[h>>2]=H[h>>2]|H[b+H[m>>2]>>2];a=a+1|0;if(a>>>0>2]){continue}break}}d=0;a=H[i+16>>2];t:{if((a|0)==H[i+20>>2]){break t}while(1){h=H[i+28>>2];g=N(d,20)+a|0;l=H[g>>2];if(!I[l+84|0]){h=H[H[l+68>>2]+(h<<2)>>2]}if(K[l+80>>2]<=h>>>0){break t}j=H[f+96>>2]+(H[g+4>>2]<<2)|0;c=H[g+12>>2];b=j;u:{if(c>>>0>3){break u}a=0;b=H[i+12>>2];if(!H[g+16>>2]){break u}while(1){b=ta(b,j+(a<<2)|0,c);c=H[g+12>>2];b=b+c|0;a=a+1|0;if(a>>>0>2]){continue}break}b=H[i+12>>2]}a=H[l+40>>2];ta(H[H[l>>2]>>2]+N(a,h)|0,b,a);d=d+1|0;a=H[i+16>>2];if(d>>>0<(H[i+20>>2]-a|0)/20>>>0){continue}break}}H[i+28>>2]=H[i+28>>2]+1;H[f+8>>2]=H[f+8>>2]+1;n=n+1|0;if((k|0)!=(n|0)){continue}break}}a=H[e+28>>2]}if(a){continue}break}h=1}H[e+28>>2]=0;g=H[e+16>>2];a=H[e+12>>2];b=g-a|0;if(b>>>0>=9){while(1){ra(H[a>>2]);a=H[e+12>>2]+4|0;H[e+12>>2]=a;g=H[e+16>>2];b=g-a|0;if(b>>>0>8){continue}break}}c=170;v:{switch((b>>>2|0)-1|0){case 1:c=341;case 0:H[e+24>>2]=c;break;default:break v}}w:{if((a|0)==(g|0)){break w}while(1){ra(H[a>>2]);a=a+4|0;if((g|0)!=(a|0)){continue}break}a=H[e+16>>2];b=H[e+12>>2];if((a|0)==(b|0)){break w}H[e+16>>2]=a+((b-a|0)+3&-4)}a=H[e+8>>2];if(a){ra(a)}fa=e+32|0;a=h;break b}va();v()}va();v()}f=a}return f}function vd(a,b,c){var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,w=0;d=H[b+12>>2];g=H[b+20>>2];f=H[b+16>>2];k=f+4|0;g=k>>>0<4?g+1|0:g;a:{if((d|0)<=(g|0)&k>>>0>K[b+8>>2]|(d|0)<(g|0)){break a}g=f+H[b>>2]|0;H[a>>2]=I[g|0]|I[g+1|0]<<8|(I[g+2|0]<<16|I[g+3|0]<<24);g=H[b+20>>2];d=g;k=H[b+16>>2];f=k+4|0;g=f>>>0<4?d+1|0:d;j=f;H[b+16>>2]=f;H[b+20>>2]=g;if(K[a>>2]>32){break a}f=H[b+12>>2];g=d;d=k+8|0;g=d>>>0<8?g+1|0:g;if(d>>>0>K[b+8>>2]&(g|0)>=(f|0)|(g|0)>(f|0)){break a}e=j+H[b>>2]|0;g=I[e|0]|I[e+1|0]<<8|(I[e+2|0]<<16|I[e+3|0]<<24);H[a+4>>2]=g;e=H[b+20>>2];d=H[b+16>>2]+4|0;e=d>>>0<4?e+1|0:e;H[b+16>>2]=d;H[b+20>>2]=e;if(!g){return 1}e=0;H[a+8>>2]=0;if(!vb(a+16|0,b)){break a}if(!xa(a+544|0,b)){break a}if(!xa(a+564|0,b)){break a}if(!xa(a+584|0,b)){break a}q=H[a+4>>2];g=c;b=0;c=0;d=fa-32|0;fa=d;e=a;a=H[a+12>>2];H[d+16>>2]=0;H[d+8>>2]=0;H[d+12>>2]=0;b:{c:{if(a){if(a>>>0>=1073741824){break c}f=a<<2;b=sa(f);H[d+8>>2]=b;c=b+f|0;H[d+16>>2]=c;ua(b,0,f);H[d+12>>2]=c}f=H[e+628>>2];k=H[f>>2];if(k){H[f+4>>2]=k;ra(k);c=H[d+12>>2];b=H[d+8>>2];a=H[e+12>>2]}H[f+4>>2]=c;H[f>>2]=b;H[f+8>>2]=H[d+16>>2];b=0;H[d+16>>2]=0;H[d+8>>2]=0;H[d+12>>2]=0;d:{if(a){if(a>>>0>=1073741824){break d}a=a<<2;h=sa(a);H[d+8>>2]=h;b=a+h|0;H[d+16>>2]=b;ua(h,0,a);H[d+12>>2]=b}a=H[e+640>>2];c=H[a>>2];if(c){H[a+4>>2]=c;ra(c);h=H[d+8>>2];b=H[d+12>>2]}H[a+4>>2]=b;H[a>>2]=h;H[a+8>>2]=H[d+16>>2];H[d+24>>2]=0;H[d+28>>2]=0;H[d+16>>2]=0;H[d+20>>2]=0;H[d+8>>2]=0;H[d+12>>2]=0;ya(d+8|0);a=H[d+24>>2]+H[d+28>>2]|0;b=(a>>>0)/341|0;a=H[H[d+12>>2]+(b<<2)>>2]+N(a-N(b,341)|0,12)|0;H[a+4>>2]=0;H[a+8>>2]=0;H[a>>2]=q;c=1;a=H[d+28>>2]+1|0;H[d+28>>2]=a;e:{if(!a){break e}s=e+16|0;while(1){b=H[d+12>>2];j=H[d+24>>2];i=a-1|0;c=j+i|0;h=(c>>>0)/341|0;c=H[b+(h<<2)>>2]+N(c-N(h,341)|0,12)|0;k=H[c+8>>2];h=H[c+4>>2];f=H[c>>2];H[d+28>>2]=i;c=H[d+16>>2];if((((b|0)!=(c|0)?N(c-b>>2,341)-1|0:0)-(a+j|0)|0)+1>>>0>=682){ra(H[c-4>>2]);H[d+16>>2]=H[d+16>>2]-4}c=0;if(f>>>0>q>>>0){break e}a=H[e+12>>2];h=(h|0)!=(a-1|0)?h+1|0:0;if(h>>>0>=a>>>0){break e}j=N(k,12);n=j+H[e+640>>2]|0;o=j+H[e+628>>2]|0;b=H[e>>2];i=h<<2;l=H[i+H[n>>2]>>2];f:{g:{if((b|0)==(l|0)){if(!f){break g}c=H[g+16>>2];b=H[g+20>>2];i=0;while(1){h=(b|0)==(c|0);a=b;j=0;b=c;h:{if(h){break h}while(1){k=H[g+28>>2];b=a;h=N(j,20)+c|0;m=H[h>>2];if(!I[m+84|0]){k=H[H[m+68>>2]+(k<<2)>>2]}if(K[m+80>>2]<=k>>>0){break h}n=H[o>>2]+(H[h+4>>2]<<2)|0;c=H[h+12>>2];b=n;i:{if(c>>>0>3){break i}a=0;b=H[g+12>>2];if(!H[h+16>>2]){break i}while(1){b=ta(b,n+(a<<2)|0,c);c=H[h+12>>2];b=b+c|0;a=a+1|0;if(a>>>0>2]){continue}break}b=H[g+12>>2]}a=H[m+40>>2];ta(H[H[m>>2]>>2]+N(a,k)|0,b,a);a=H[g+20>>2];b=a;j=j+1|0;c=H[g+16>>2];if(j>>>0<(a-c|0)/20>>>0){continue}break}}H[g+28>>2]=H[g+28>>2]+1;H[e+8>>2]=H[e+8>>2]+1;i=i+1|0;if((f|0)!=(i|0)){continue}break}break g}j:{k:{l:{if(f>>>0<=2){c=H[e+616>>2];H[c>>2]=h;a=1;b=H[e+12>>2];if(b>>>0>1){break l}break j}if(K[e+8>>2]>K[e+4>>2]){break e}a=H[e+628>>2];n=k+1|0;m=N(n,12);c=a+m|0;if((c|0)!=(o|0)){Ca(c,H[o>>2],H[o+4>>2]);a=H[e+628>>2]}a=i+H[a+m>>2]|0;H[a>>2]=H[a>>2]+(1<>>1|0;break k}while(1){b=Da((a<<4)+s|0)|b<<1;a=a+1|0;if((c|0)!=(a|0)){continue}break}a=f>>>1|0;if(b>>>0<=a>>>0){break k}c=0;break e}while(1){h=(b-1|0)!=(h|0)?h+1|0:0;H[c+(a<<2)>>2]=h;a=a+1|0;b=H[e+12>>2];if(a>>>0>>0){continue}break}break j}m:{n:{b=a-b|0;a=f-b|0;o:{if((a|0)==(b|0)){a=b;break o}c=H[e+596>>2];if((c|0)==H[e+588>>2]){break n}f=H[c>>2];o=H[e+600>>2];l=o+1|0;H[e+600>>2]=l;f=f&-2147483648>>>o;p:{if((l|0)==32){H[e+600>>2]=0;H[e+596>>2]=c+4;if(f){break p}break n}if(!f){break n}}}c=a;a=b;break m}c=b}b=H[e+640>>2];f=b+j|0;j=H[f>>2];i=j+i|0;H[i>>2]=H[i>>2]+1;Ca(b+m|0,j,H[f+4>>2]);if(a){i=H[d+28>>2]+H[d+24>>2]|0;f=H[d+16>>2];b=H[d+12>>2];if((i|0)==(((b|0)!=(f|0)?N(f-b>>2,341)-1|0:0)|0)){ya(d+8|0);i=H[d+24>>2]+H[d+28>>2]|0;l=H[d+12>>2]}else{l=b}b=(i>>>0)/341|0;b=H[l+(b<<2)>>2]+N(i-N(b,341)|0,12)|0;H[b+8>>2]=k;H[b+4>>2]=h;H[b>>2]=a;H[d+28>>2]=H[d+28>>2]+1}if(!c){break g}b=H[d+28>>2]+H[d+24>>2]|0;f=H[d+16>>2];a=H[d+12>>2];if((b|0)==(((a|0)!=(f|0)?N(f-a>>2,341)-1|0:0)|0)){ya(d+8|0);b=H[d+24>>2]+H[d+28>>2]|0;l=H[d+12>>2]}else{l=a}a=(b>>>0)/341|0;a=H[l+(a<<2)>>2]+N(b-N(a,341)|0,12)|0;H[a+8>>2]=n;H[a+4>>2]=h;H[a>>2]=c;a=H[d+28>>2]+1|0;H[d+28>>2]=a;break f}h=0;if(!f){break g}while(1){if(H[e+12>>2]){k=H[e+548>>2];t=H[n>>2];c=H[e+604>>2];u=H[e+616>>2];a=0;while(1){j=(a<<2)+u|0;H[c+(H[j>>2]<<2)>>2]=0;b=H[e>>2];i=H[j>>2]<<2;m=H[i+t>>2];q:{if((b|0)==(m|0)){break q}i=c+i|0;b=b-m|0;m=H[e+560>>2];p=32-m|0;if((b|0)<=(p|0)){l=H[e+556>>2];if((l|0)==(k|0)){c=0;break e}H[i>>2]=H[l>>2]<>>32-b;b=b+H[e+560>>2]|0;H[e+560>>2]=b;if((b|0)!=32){break q}H[e+560>>2]=0;H[e+556>>2]=l+4;break q}l=H[e+556>>2];r=l+4|0;if((k|0)==(r|0)){c=0;break e}w=H[l>>2];H[e+556>>2]=r;p=b-p|0;H[e+560>>2]=p;H[i>>2]=H[l+4>>2]>>>32-p|w<>>32-b}b=H[j>>2]<<2;j=b+c|0;H[j>>2]=H[j>>2]|H[b+H[o>>2]>>2];a=a+1|0;if(a>>>0>2]){continue}break}}j=0;a=H[g+16>>2];r:{if((a|0)==H[g+20>>2]){break r}while(1){k=H[g+28>>2];i=N(j,20)+a|0;m=H[i>>2];if(!I[m+84|0]){k=H[H[m+68>>2]+(k<<2)>>2]}if(K[m+80>>2]<=k>>>0){break r}l=H[e+604>>2]+(H[i+4>>2]<<2)|0;c=H[i+12>>2];b=l;s:{if(c>>>0>3){break s}a=0;b=H[g+12>>2];if(!H[i+16>>2]){break s}while(1){b=ta(b,l+(a<<2)|0,c);c=H[i+12>>2];b=b+c|0;a=a+1|0;if(a>>>0>2]){continue}break}b=H[g+12>>2]}a=H[m+40>>2];ta(H[H[m>>2]>>2]+N(a,k)|0,b,a);j=j+1|0;a=H[g+16>>2];if(j>>>0<(H[g+20>>2]-a|0)/20>>>0){continue}break}}H[g+28>>2]=H[g+28>>2]+1;H[e+8>>2]=H[e+8>>2]+1;h=h+1|0;if((f|0)!=(h|0)){continue}break}}a=H[d+28>>2]}if(a){continue}break}c=1}H[d+28>>2]=0;h=H[d+16>>2];a=H[d+12>>2];b=h-a|0;if(b>>>0>=9){while(1){ra(H[a>>2]);a=H[d+12>>2]+4|0;H[d+12>>2]=a;h=H[d+16>>2];b=h-a|0;if(b>>>0>8){continue}break}}e=170;t:{switch((b>>>2|0)-1|0){case 1:e=341;case 0:H[d+24>>2]=e;break;default:break t}}u:{if((a|0)==(h|0)){break u}while(1){ra(H[a>>2]);a=a+4|0;if((h|0)!=(a|0)){continue}break}a=H[d+16>>2];b=H[d+12>>2];if((a|0)==(b|0)){break u}H[d+16>>2]=a+((b-a|0)+3&-4)}a=H[d+8>>2];if(a){ra(a)}fa=d+32|0;break b}va();v()}va();v()}e=c}return e}function td(a,b,c){var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,w=0;d=H[b+12>>2];g=H[b+20>>2];f=H[b+16>>2];i=f+4|0;g=i>>>0<4?g+1|0:g;a:{if((d|0)<=(g|0)&i>>>0>K[b+8>>2]|(d|0)<(g|0)){break a}g=f+H[b>>2]|0;H[a>>2]=I[g|0]|I[g+1|0]<<8|(I[g+2|0]<<16|I[g+3|0]<<24);g=H[b+20>>2];d=g;i=H[b+16>>2];f=i+4|0;g=f>>>0<4?d+1|0:d;k=f;H[b+16>>2]=f;H[b+20>>2]=g;if(K[a>>2]>32){break a}f=H[b+12>>2];g=d;d=i+8|0;g=d>>>0<8?g+1|0:g;if(d>>>0>K[b+8>>2]&(g|0)>=(f|0)|(g|0)>(f|0)){break a}e=k+H[b>>2]|0;g=I[e|0]|I[e+1|0]<<8|(I[e+2|0]<<16|I[e+3|0]<<24);H[a+4>>2]=g;e=H[b+20>>2];d=H[b+16>>2]+4|0;e=d>>>0<4?e+1|0:e;H[b+16>>2]=d;H[b+20>>2]=e;if(!g){return 1}e=0;H[a+8>>2]=0;if(!vb(a+16|0,b)){break a}if(!xa(a+544|0,b)){break a}if(!xa(a+564|0,b)){break a}if(!xa(a+584|0,b)){break a}q=H[a+4>>2];g=c;b=0;c=0;d=fa-32|0;fa=d;e=a;a=H[a+12>>2];H[d+16>>2]=0;H[d+8>>2]=0;H[d+12>>2]=0;b:{c:{if(a){if(a>>>0>=1073741824){break c}f=a<<2;b=sa(f);H[d+8>>2]=b;c=b+f|0;H[d+16>>2]=c;ua(b,0,f);H[d+12>>2]=c}f=H[e+628>>2];i=H[f>>2];if(i){H[f+4>>2]=i;ra(i);c=H[d+12>>2];b=H[d+8>>2];a=H[e+12>>2]}H[f+4>>2]=c;H[f>>2]=b;H[f+8>>2]=H[d+16>>2];b=0;H[d+16>>2]=0;H[d+8>>2]=0;H[d+12>>2]=0;d:{if(a){if(a>>>0>=1073741824){break d}a=a<<2;h=sa(a);H[d+8>>2]=h;b=a+h|0;H[d+16>>2]=b;ua(h,0,a);H[d+12>>2]=b}a=H[e+640>>2];c=H[a>>2];if(c){H[a+4>>2]=c;ra(c);h=H[d+8>>2];b=H[d+12>>2]}H[a+4>>2]=b;H[a>>2]=h;H[a+8>>2]=H[d+16>>2];H[d+24>>2]=0;H[d+28>>2]=0;H[d+16>>2]=0;H[d+20>>2]=0;H[d+8>>2]=0;H[d+12>>2]=0;ya(d+8|0);a=H[d+24>>2]+H[d+28>>2]|0;b=(a>>>0)/341|0;a=H[H[d+12>>2]+(b<<2)>>2]+N(a-N(b,341)|0,12)|0;H[a+4>>2]=0;H[a+8>>2]=0;H[a>>2]=q;c=1;a=H[d+28>>2]+1|0;H[d+28>>2]=a;e:{if(!a){break e}s=e+16|0;while(1){b=H[d+12>>2];h=H[d+24>>2];c=a-1|0;f=h+c|0;i=(f>>>0)/341|0;f=H[b+(i<<2)>>2]+N(f-N(i,341)|0,12)|0;i=H[f+8>>2];f=H[f>>2];H[d+28>>2]=c;c=H[d+16>>2];if((((b|0)!=(c|0)?N(c-b>>2,341)-1|0:0)-(a+h|0)|0)+1>>>0>=682){ra(H[c-4>>2]);H[d+16>>2]=H[d+16>>2]-4}c=0;if(f>>>0>q>>>0){break e}a=H[e+628>>2];k=N(i,12);n=k+H[e+640>>2]|0;h=Ud(e,f,n);if(h>>>0>=K[e+12>>2]){break e}o=a+k|0;b=H[e>>2];j=h<<2;m=H[j+H[n>>2]>>2];f:{g:{if((b|0)==(m|0)){if(!f){break g}c=H[g+16>>2];b=H[g+20>>2];j=0;while(1){h=(b|0)==(c|0);a=b;k=0;b=c;h:{if(h){break h}while(1){i=H[g+28>>2];b=a;h=N(k,20)+c|0;l=H[h>>2];if(!I[l+84|0]){i=H[H[l+68>>2]+(i<<2)>>2]}if(K[l+80>>2]<=i>>>0){break h}n=H[o>>2]+(H[h+4>>2]<<2)|0;c=H[h+12>>2];b=n;i:{if(c>>>0>3){break i}a=0;b=H[g+12>>2];if(!H[h+16>>2]){break i}while(1){b=ta(b,n+(a<<2)|0,c);c=H[h+12>>2];b=b+c|0;a=a+1|0;if(a>>>0>2]){continue}break}b=H[g+12>>2]}a=H[l+40>>2];ta(H[H[l>>2]>>2]+N(a,i)|0,b,a);a=H[g+20>>2];b=a;k=k+1|0;c=H[g+16>>2];if(k>>>0<(a-c|0)/20>>>0){continue}break}}H[g+28>>2]=H[g+28>>2]+1;H[e+8>>2]=H[e+8>>2]+1;j=j+1|0;if((f|0)!=(j|0)){continue}break}break g}j:{k:{l:{if(f>>>0<=2){c=H[e+616>>2];H[c>>2]=h;a=1;b=H[e+12>>2];if(b>>>0>1){break l}break j}if(K[e+8>>2]>K[e+4>>2]){break e}a=H[e+628>>2];n=i+1|0;l=N(n,12);c=a+l|0;if((c|0)!=(o|0)){Ca(c,H[o>>2],H[o+4>>2]);a=H[e+628>>2]}a=j+H[a+l>>2]|0;H[a>>2]=H[a>>2]+(1<>>1|0;break k}while(1){b=Da((a<<4)+s|0)|b<<1;a=a+1|0;if((c|0)!=(a|0)){continue}break}a=f>>>1|0;if(b>>>0<=a>>>0){break k}c=0;break e}while(1){h=(b-1|0)!=(h|0)?h+1|0:0;H[c+(a<<2)>>2]=h;a=a+1|0;b=H[e+12>>2];if(a>>>0>>0){continue}break}break j}m:{n:{b=a-b|0;a=f-b|0;o:{if((a|0)==(b|0)){a=b;break o}c=H[e+596>>2];if((c|0)==H[e+588>>2]){break n}f=H[c>>2];o=H[e+600>>2];m=o+1|0;H[e+600>>2]=m;f=f&-2147483648>>>o;p:{if((m|0)==32){H[e+600>>2]=0;H[e+596>>2]=c+4;if(f){break p}break n}if(!f){break n}}}c=a;a=b;break m}c=b}b=H[e+640>>2];f=b+k|0;k=H[f>>2];j=k+j|0;H[j>>2]=H[j>>2]+1;Ca(b+l|0,k,H[f+4>>2]);if(a){j=H[d+28>>2]+H[d+24>>2]|0;f=H[d+16>>2];b=H[d+12>>2];if((j|0)==(((b|0)!=(f|0)?N(f-b>>2,341)-1|0:0)|0)){ya(d+8|0);j=H[d+24>>2]+H[d+28>>2]|0;f=H[d+12>>2]}else{f=b}b=(j>>>0)/341|0;b=H[f+(b<<2)>>2]+N(j-N(b,341)|0,12)|0;H[b+8>>2]=i;H[b+4>>2]=h;H[b>>2]=a;H[d+28>>2]=H[d+28>>2]+1}if(!c){break g}b=H[d+28>>2]+H[d+24>>2]|0;f=H[d+16>>2];a=H[d+12>>2];if((b|0)==(((a|0)!=(f|0)?N(f-a>>2,341)-1|0:0)|0)){ya(d+8|0);b=H[d+24>>2]+H[d+28>>2]|0;f=H[d+12>>2]}else{f=a}a=(b>>>0)/341|0;a=H[f+(a<<2)>>2]+N(b-N(a,341)|0,12)|0;H[a+8>>2]=n;H[a+4>>2]=h;H[a>>2]=c;a=H[d+28>>2]+1|0;H[d+28>>2]=a;break f}h=0;if(!f){break g}while(1){if(H[e+12>>2]){i=H[e+548>>2];t=H[n>>2];c=H[e+604>>2];u=H[e+616>>2];a=0;while(1){k=(a<<2)+u|0;H[c+(H[k>>2]<<2)>>2]=0;b=H[e>>2];j=H[k>>2]<<2;l=H[j+t>>2];q:{if((b|0)==(l|0)){break q}j=c+j|0;b=b-l|0;l=H[e+560>>2];p=32-l|0;if((b|0)<=(p|0)){m=H[e+556>>2];if((m|0)==(i|0)){c=0;break e}H[j>>2]=H[m>>2]<>>32-b;b=b+H[e+560>>2]|0;H[e+560>>2]=b;if((b|0)!=32){break q}H[e+560>>2]=0;H[e+556>>2]=m+4;break q}m=H[e+556>>2];r=m+4|0;if((i|0)==(r|0)){c=0;break e}w=H[m>>2];H[e+556>>2]=r;p=b-p|0;H[e+560>>2]=p;H[j>>2]=H[m+4>>2]>>>32-p|w<>>32-b}b=H[k>>2]<<2;k=b+c|0;H[k>>2]=H[k>>2]|H[b+H[o>>2]>>2];a=a+1|0;if(a>>>0>2]){continue}break}}k=0;a=H[g+16>>2];r:{if((a|0)==H[g+20>>2]){break r}while(1){i=H[g+28>>2];j=N(k,20)+a|0;l=H[j>>2];if(!I[l+84|0]){i=H[H[l+68>>2]+(i<<2)>>2]}if(K[l+80>>2]<=i>>>0){break r}m=H[e+604>>2]+(H[j+4>>2]<<2)|0;c=H[j+12>>2];b=m;s:{if(c>>>0>3){break s}a=0;b=H[g+12>>2];if(!H[j+16>>2]){break s}while(1){b=ta(b,m+(a<<2)|0,c);c=H[j+12>>2];b=b+c|0;a=a+1|0;if(a>>>0>2]){continue}break}b=H[g+12>>2]}a=H[l+40>>2];ta(H[H[l>>2]>>2]+N(a,i)|0,b,a);k=k+1|0;a=H[g+16>>2];if(k>>>0<(H[g+20>>2]-a|0)/20>>>0){continue}break}}H[g+28>>2]=H[g+28>>2]+1;H[e+8>>2]=H[e+8>>2]+1;h=h+1|0;if((f|0)!=(h|0)){continue}break}}a=H[d+28>>2]}if(a){continue}break}c=1}H[d+28>>2]=0;h=H[d+16>>2];a=H[d+12>>2];b=h-a|0;if(b>>>0>=9){while(1){ra(H[a>>2]);a=H[d+12>>2]+4|0;H[d+12>>2]=a;h=H[d+16>>2];b=h-a|0;if(b>>>0>8){continue}break}}e=170;t:{switch((b>>>2|0)-1|0){case 1:e=341;case 0:H[d+24>>2]=e;break;default:break t}}u:{if((a|0)==(h|0)){break u}while(1){ra(H[a>>2]);a=a+4|0;if((h|0)!=(a|0)){continue}break}a=H[d+16>>2];b=H[d+12>>2];if((a|0)==(b|0)){break u}H[d+16>>2]=a+((b-a|0)+3&-4)}a=H[d+8>>2];if(a){ra(a)}fa=d+32|0;break b}va();v()}va();v()}e=c}return e}function ud(a,b,c){var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,w=0;d=H[b+12>>2];f=H[b+20>>2];h=H[b+16>>2];k=h+4|0;f=k>>>0<4?f+1|0:f;a:{if((d|0)<=(f|0)&k>>>0>K[b+8>>2]|(d|0)<(f|0)){break a}f=h+H[b>>2]|0;H[a>>2]=I[f|0]|I[f+1|0]<<8|(I[f+2|0]<<16|I[f+3|0]<<24);f=H[b+20>>2];d=f;k=H[b+16>>2];h=k+4|0;f=h>>>0<4?d+1|0:d;j=h;H[b+16>>2]=h;H[b+20>>2]=f;if(K[a>>2]>32){break a}h=H[b+12>>2];f=d;d=k+8|0;f=d>>>0<8?f+1|0:f;if(d>>>0>K[b+8>>2]&(f|0)>=(h|0)|(f|0)>(h|0)){break a}e=j+H[b>>2]|0;f=I[e|0]|I[e+1|0]<<8|(I[e+2|0]<<16|I[e+3|0]<<24);H[a+4>>2]=f;e=H[b+20>>2];d=H[b+16>>2]+4|0;e=d>>>0<4?e+1|0:e;H[b+16>>2]=d;H[b+20>>2]=e;if(!f){return 1}e=0;H[a+8>>2]=0;if(!vb(a+16|0,b)){break a}if(!xa(a+544|0,b)){break a}if(!xa(a+564|0,b)){break a}if(!xa(a+584|0,b)){break a}p=H[a+4>>2];b=0;d=fa-32|0;fa=d;f=a;a=H[a+12>>2];H[d+16>>2]=0;H[d+8>>2]=0;H[d+12>>2]=0;b:{c:{if(a){if(a>>>0>=1073741824){break c}e=a<<2;b=sa(e);H[d+8>>2]=b;i=b+e|0;H[d+16>>2]=i;ua(b,0,e);H[d+12>>2]=i}e=H[f+628>>2];h=H[e>>2];if(h){H[e+4>>2]=h;ra(h);i=H[d+12>>2];b=H[d+8>>2];a=H[f+12>>2]}H[e+4>>2]=i;H[e>>2]=b;H[e+8>>2]=H[d+16>>2];b=0;H[d+16>>2]=0;H[d+8>>2]=0;H[d+12>>2]=0;d:{if(a){if(a>>>0>=1073741824){break d}a=a<<2;g=sa(a);H[d+8>>2]=g;b=a+g|0;H[d+16>>2]=b;ua(g,0,a);H[d+12>>2]=b}a=H[f+640>>2];e=H[a>>2];if(e){H[a+4>>2]=e;ra(e);g=H[d+8>>2];b=H[d+12>>2]}H[a+4>>2]=b;H[a>>2]=g;H[a+8>>2]=H[d+16>>2];H[d+24>>2]=0;H[d+28>>2]=0;H[d+16>>2]=0;H[d+20>>2]=0;H[d+8>>2]=0;H[d+12>>2]=0;ya(d+8|0);a=H[d+24>>2]+H[d+28>>2]|0;b=(a>>>0)/341|0;a=H[H[d+12>>2]+(b<<2)>>2]+N(a-N(b,341)|0,12)|0;H[a+4>>2]=0;H[a+8>>2]=0;H[a>>2]=p;e=1;a=H[d+28>>2]+1|0;H[d+28>>2]=a;e:{if(!a){break e}s=f+16|0;while(1){b=H[d+12>>2];k=H[d+24>>2];j=a-1|0;e=k+j|0;i=(e>>>0)/341|0;e=H[b+(i<<2)>>2]+N(e-N(i,341)|0,12)|0;i=H[e+8>>2];g=H[e+4>>2];h=H[e>>2];H[d+28>>2]=j;e=H[d+16>>2];if((((b|0)!=(e|0)?N(e-b>>2,341)-1|0:0)-(a+k|0)|0)+1>>>0>=682){ra(H[e-4>>2]);H[d+16>>2]=H[d+16>>2]-4}if(h>>>0>p>>>0){e=0;break e}e=0;a=H[f+12>>2];g=(g|0)!=(a-1|0)?g+1|0:0;if(g>>>0>=a>>>0){break e}a=H[f+628>>2];k=N(i,12);n=a+k|0;b=H[f>>2];j=g<<2;q=k+H[f+640>>2]|0;l=H[j+H[q>>2]>>2];f:{g:{if((b|0)==(l|0)){if(!h){break g}i=H[c+16>>2];b=H[c+20>>2];k=0;while(1){e=(b|0)==(i|0);a=b;g=0;b=i;h:{if(e){break h}while(1){e=H[c+28>>2];b=a;j=N(g,20)+i|0;l=H[j>>2];if(!I[l+84|0]){e=H[H[l+68>>2]+(e<<2)>>2]}if(K[l+80>>2]<=e>>>0){break h}m=H[n>>2]+(H[j+4>>2]<<2)|0;i=H[j+12>>2];b=m;i:{if(i>>>0>3){break i}a=0;b=H[c+12>>2];if(!H[j+16>>2]){break i}while(1){b=ta(b,m+(a<<2)|0,i);i=H[j+12>>2];b=b+i|0;a=a+1|0;if(a>>>0>2]){continue}break}b=H[c+12>>2]}a=H[l+40>>2];ta(H[H[l>>2]>>2]+N(a,e)|0,b,a);a=H[c+20>>2];b=a;g=g+1|0;i=H[c+16>>2];if(g>>>0<(a-i|0)/20>>>0){continue}break}}H[c+28>>2]=H[c+28>>2]+1;H[f+8>>2]=H[f+8>>2]+1;k=k+1|0;if((k|0)!=(h|0)){continue}break}break g}j:{k:{l:{if(h>>>0<=2){e=H[f+616>>2];H[e>>2]=g;a=1;b=H[f+12>>2];if(b>>>0>1){break l}break j}if(K[f+8>>2]>K[f+4>>2]){break e}m=a;a=k+12|0;Ca(m+a|0,H[n>>2],H[n+4>>2]);a=j+H[a+H[f+628>>2]>>2]|0;H[a>>2]=H[a>>2]+(1<>>1|0;break k}while(1){b=Da((a<<4)+s|0)|b<<1;a=a+1|0;if((n|0)!=(a|0)){continue}break}a=h>>>1|0;if(b>>>0<=a>>>0){break k}break e}while(1){g=(b-1|0)!=(g|0)?g+1|0:0;H[e+(a<<2)>>2]=g;a=a+1|0;b=H[f+12>>2];if(a>>>0>>0){continue}break}break j}n=i+1|0;m:{n:{b=a-b|0;a=h-b|0;o:{if((a|0)==(b|0)){a=b;break o}e=H[f+596>>2];if((e|0)==H[f+588>>2]){break n}h=H[e>>2];l=H[f+600>>2];m=l+1|0;H[f+600>>2]=m;h=h&-2147483648>>>l;p:{if((m|0)==32){H[f+600>>2]=0;H[f+596>>2]=e+4;if(h){break p}break n}if(!h){break n}}}e=a;a=b;break m}e=b}b=H[f+640>>2];h=b+k|0;k=H[h>>2];j=k+j|0;H[j>>2]=H[j>>2]+1;Ca(b+N(n,12)|0,k,H[h+4>>2]);if(a){h=H[d+28>>2]+H[d+24>>2]|0;k=H[d+16>>2];b=H[d+12>>2];if((h|0)==(((b|0)!=(k|0)?N(k-b>>2,341)-1|0:0)|0)){ya(d+8|0);h=H[d+24>>2]+H[d+28>>2]|0;m=H[d+12>>2]}else{m=b}b=(h>>>0)/341|0;b=H[m+(b<<2)>>2]+N(h-N(b,341)|0,12)|0;H[b+8>>2]=i;H[b+4>>2]=g;H[b>>2]=a;H[d+28>>2]=H[d+28>>2]+1}if(!e){break g}b=H[d+28>>2]+H[d+24>>2]|0;i=H[d+16>>2];a=H[d+12>>2];if((b|0)==(((a|0)!=(i|0)?N(i-a>>2,341)-1|0:0)|0)){ya(d+8|0);b=H[d+24>>2]+H[d+28>>2]|0;m=H[d+12>>2]}else{m=a}a=(b>>>0)/341|0;a=H[m+(a<<2)>>2]+N(b-N(a,341)|0,12)|0;H[a+8>>2]=n;H[a+4>>2]=g;H[a>>2]=e;a=H[d+28>>2]+1|0;H[d+28>>2]=a;break f}k=0;if(!h){break g}while(1){if(H[f+12>>2]){i=H[f+548>>2];t=H[q>>2];e=H[f+604>>2];u=H[f+616>>2];a=0;while(1){g=u+(a<<2)|0;H[(H[g>>2]<<2)+e>>2]=0;b=H[f>>2];j=H[g>>2]<<2;l=H[j+t>>2];q:{if((b|0)==(l|0)){break q}j=e+j|0;b=b-l|0;l=H[f+560>>2];o=32-l|0;if((b|0)<=(o|0)){m=H[f+556>>2];if((m|0)==(i|0)){e=0;break e}H[j>>2]=H[m>>2]<>>32-b;b=H[f+560>>2]+b|0;H[f+560>>2]=b;if((b|0)!=32){break q}H[f+560>>2]=0;H[f+556>>2]=m+4;break q}m=H[f+556>>2];r=m+4|0;if((r|0)==(i|0)){e=0;break e}w=H[m>>2];H[f+556>>2]=r;o=b-o|0;H[f+560>>2]=o;H[j>>2]=H[m+4>>2]>>>32-o|w<>>32-b}b=H[g>>2]<<2;g=b+e|0;H[g>>2]=H[g>>2]|H[b+H[n>>2]>>2];a=a+1|0;if(a>>>0>2]){continue}break}}g=0;a=H[c+16>>2];r:{if((a|0)==H[c+20>>2]){break r}while(1){e=H[c+28>>2];j=N(g,20)+a|0;l=H[j>>2];if(!I[l+84|0]){e=H[H[l+68>>2]+(e<<2)>>2]}if(K[l+80>>2]<=e>>>0){break r}m=H[f+604>>2]+(H[j+4>>2]<<2)|0;i=H[j+12>>2];b=m;s:{if(i>>>0>3){break s}a=0;b=H[c+12>>2];if(!H[j+16>>2]){break s}while(1){b=ta(b,m+(a<<2)|0,i);i=H[j+12>>2];b=b+i|0;a=a+1|0;if(a>>>0>2]){continue}break}b=H[c+12>>2]}a=H[l+40>>2];ta(H[H[l>>2]>>2]+N(a,e)|0,b,a);g=g+1|0;a=H[c+16>>2];if(g>>>0<(H[c+20>>2]-a|0)/20>>>0){continue}break}}H[c+28>>2]=H[c+28>>2]+1;H[f+8>>2]=H[f+8>>2]+1;k=k+1|0;if((k|0)!=(h|0)){continue}break}}a=H[d+28>>2]}if(a){continue}break}e=1}H[d+28>>2]=0;g=H[d+16>>2];a=H[d+12>>2];b=g-a|0;if(b>>>0>=9){while(1){ra(H[a>>2]);a=H[d+12>>2]+4|0;H[d+12>>2]=a;g=H[d+16>>2];b=g-a|0;if(b>>>0>8){continue}break}}i=170;t:{switch((b>>>2|0)-1|0){case 1:i=341;case 0:H[d+24>>2]=i;break;default:break t}}u:{if((a|0)==(g|0)){break u}while(1){ra(H[a>>2]);a=a+4|0;if((g|0)!=(a|0)){continue}break}a=H[d+16>>2];b=H[d+12>>2];if((a|0)==(b|0)){break u}H[d+16>>2]=a+((b-a|0)+3&-4)}a=H[d+8>>2];if(a){ra(a)}fa=d+32|0;break b}va();v()}va();v()}}return e} +function xd(a,b,c){var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,w=0;i=H[b+12>>2];e=H[b+20>>2];d=H[b+16>>2];j=d+4|0;e=j>>>0<4?e+1|0:e;a:{if(j>>>0>K[b+8>>2]&(e|0)>=(i|0)|(e|0)>(i|0)){break a}e=d+H[b>>2]|0;H[a>>2]=I[e|0]|I[e+1|0]<<8|(I[e+2|0]<<16|I[e+3|0]<<24);e=H[b+20>>2];i=e;j=H[b+16>>2];d=j+4|0;e=d>>>0<4?e+1|0:e;l=d;H[b+16>>2]=d;H[b+20>>2]=e;if(K[a>>2]>32){break a}d=H[b+12>>2];e=i;i=j+8|0;e=i>>>0<8?e+1|0:e;if((d|0)<=(e|0)&i>>>0>K[b+8>>2]|(d|0)<(e|0)){break a}e=l+H[b>>2]|0;g=I[e|0]|I[e+1|0]<<8|(I[e+2|0]<<16|I[e+3|0]<<24);H[a+4>>2]=g;e=H[b+20>>2];i=H[b+16>>2]+4|0;e=i>>>0<4?e+1|0:e;H[b+16>>2]=i;H[b+20>>2]=e;if(!g){return 1}g=0;H[a+8>>2]=0;if(!wa(a+16|0,b)){break a}if(!xa(a+32|0,b)){break a}if(!xa(a+52|0,b)){break a}if(!xa(a+72|0,b)){break a}r=H[a+4>>2];i=c;b=0;d=fa-32|0;fa=d;g=a;a=H[a+12>>2];H[d+16>>2]=0;H[d+8>>2]=0;H[d+12>>2]=0;b:{c:{if(a){if(a>>>0>=1073741824){break c}c=a<<2;b=sa(c);H[d+8>>2]=b;h=b+c|0;H[d+16>>2]=h;ua(b,0,c);H[d+12>>2]=h}c=H[g+116>>2];e=H[c>>2];if(e){H[c+4>>2]=e;ra(e);h=H[d+12>>2];b=H[d+8>>2];a=H[g+12>>2]}H[c+4>>2]=h;H[c>>2]=b;H[c+8>>2]=H[d+16>>2];b=0;H[d+16>>2]=0;H[d+8>>2]=0;H[d+12>>2]=0;d:{if(a){if(a>>>0>=1073741824){break d}a=a<<2;f=sa(a);H[d+8>>2]=f;b=a+f|0;H[d+16>>2]=b;ua(f,0,a);H[d+12>>2]=b}a=H[g+128>>2];c=H[a>>2];if(c){H[a+4>>2]=c;ra(c);f=H[d+8>>2];b=H[d+12>>2]}H[a+4>>2]=b;H[a>>2]=f;H[a+8>>2]=H[d+16>>2];H[d+24>>2]=0;H[d+28>>2]=0;H[d+16>>2]=0;H[d+20>>2]=0;H[d+8>>2]=0;H[d+12>>2]=0;ya(d+8|0);a=H[d+24>>2]+H[d+28>>2]|0;b=(a>>>0)/341|0;a=H[H[d+12>>2]+(b<<2)>>2]+N(a-N(b,341)|0,12)|0;H[a+4>>2]=0;H[a+8>>2]=0;H[a>>2]=r;c=1;a=H[d+28>>2]+1|0;H[d+28>>2]=a;e:{if(!a){break e}t=g+16|0;while(1){b=H[d+12>>2];f=H[d+24>>2];l=a-1|0;c=f+l|0;e=(c>>>0)/341|0;c=H[b+(e<<2)>>2]+N(c-N(e,341)|0,12)|0;h=H[c+8>>2];e=H[c+4>>2];j=H[c>>2];H[d+28>>2]=l;c=H[d+16>>2];if((((b|0)!=(c|0)?N(c-b>>2,341)-1|0:0)-(a+f|0)|0)+1>>>0>=682){ra(H[c-4>>2]);H[d+16>>2]=H[d+16>>2]-4}c=0;if(j>>>0>r>>>0){break e}b=H[g+12>>2];a=(b-1|0)!=(e|0)?e+1|0:0;if(a>>>0>=b>>>0){break e}f=N(h,12);o=f+H[g+128>>2]|0;l=f+H[g+116>>2]|0;e=H[g>>2];k=a<<2;m=H[k+H[o>>2]>>2];f:{if((e|0)==(m|0)){if(!j){break f}o=0;b=H[i+20>>2];h=H[i+16>>2];if((b|0)==(h|0)){a=H[g+8>>2];H[i+28>>2]=j+H[i+28>>2];H[g+8>>2]=a+j;break f}while(1){c=(b|0)==(h|0);a=b;e=0;b=h;g:{if(c){break g}while(1){f=H[i+28>>2];b=a;c=N(e,20)+h|0;k=H[c>>2];if(!I[k+84|0]){f=H[H[k+68>>2]+(f<<2)>>2]}if(K[k+80>>2]<=f>>>0){break g}m=H[l>>2]+(H[c+4>>2]<<2)|0;h=H[c+12>>2];b=m;h:{if(h>>>0>3){break h}a=0;b=H[i+12>>2];if(!H[c+16>>2]){break h}while(1){b=ta(b,m+(a<<2)|0,h);h=H[c+12>>2];b=b+h|0;a=a+1|0;if(a>>>0>2]){continue}break}b=H[i+12>>2]}a=H[k+40>>2];ta(H[H[k>>2]>>2]+N(a,f)|0,b,a);e=e+1|0;a=H[i+20>>2];b=a;h=H[i+16>>2];if(e>>>0<(b-h|0)/20>>>0){continue}break}}H[i+28>>2]=H[i+28>>2]+1;H[g+8>>2]=H[g+8>>2]+1;o=o+1|0;if((j|0)!=(o|0)){continue}break}break f}i:{j:{k:{l:{if(j>>>0<=2){c=H[g+104>>2];H[c>>2]=a;f=1;b=H[g+12>>2];if(b>>>0>1){break l}break i}if(K[g+8>>2]>K[g+4>>2]){break e}b=H[g+116>>2];n=h+1|0;o=N(n,12);q=b+o|0;if((q|0)!=(l|0)){Ca(q,H[l>>2],H[l+4>>2]);b=H[g+116>>2]}b=k+H[b+o>>2]|0;H[b>>2]=H[b>>2]+(1<>2]=0;qc(t,Q(j)^31,d+4|0);b=j>>>1|0;e=H[d+4>>2];if(b>>>0>>0){break e}b=b-e|0;c=j-b|0;m:{if((c|0)==(b|0)){c=b;break m}e=H[g+84>>2];if((e|0)==H[g+76>>2]){break k}j=H[e>>2];l=H[g+88>>2];m=l+1|0;H[g+88>>2]=m;j=j&-2147483648>>>l;n:{if((m|0)==32){H[g+88>>2]=0;H[g+84>>2]=e+4;if(j){break n}break k}if(!j){break k}}}e=c;c=b;break j}while(1){a=(b-1|0)!=(a|0)?a+1|0:0;H[c+(f<<2)>>2]=a;b=H[g+12>>2];f=f+1|0;if(b>>>0>f>>>0){continue}break}break i}e=b}b=H[g+128>>2];f=b+f|0;j=H[f>>2];l=j+k|0;H[l>>2]=H[l>>2]+1;Ca(b+o|0,j,H[f+4>>2]);if(c){b=H[d+28>>2]+H[d+24>>2]|0;j=H[d+16>>2];f=H[d+12>>2];if((b|0)==(((f|0)!=(j|0)?N(j-f>>2,341)-1|0:0)|0)){ya(d+8|0);f=H[d+12>>2];b=H[d+24>>2]+H[d+28>>2]|0}m=f;f=(b>>>0)/341|0;b=H[m+(f<<2)>>2]+N(b-N(f,341)|0,12)|0;H[b+8>>2]=h;H[b+4>>2]=a;H[b>>2]=c;H[d+28>>2]=H[d+28>>2]+1}if(!e){break f}b=H[d+28>>2]+H[d+24>>2]|0;c=H[d+16>>2];f=H[d+12>>2];if((b|0)==(((c|0)!=(f|0)?N(c-f>>2,341)-1|0:0)|0)){ya(d+8|0);f=H[d+12>>2];b=H[d+24>>2]+H[d+28>>2]|0}c=(b>>>0)/341|0;b=H[(c<<2)+f>>2]+N(b-N(c,341)|0,12)|0;H[b+8>>2]=n;H[b+4>>2]=a;H[b>>2]=e;H[d+28>>2]=H[d+28>>2]+1;break f}m=0;if(!j){break f}while(1){if(H[g+12>>2]){e=H[g+36>>2];q=H[o>>2];c=H[g+92>>2];u=H[g+104>>2];a=0;while(1){h=(a<<2)+u|0;H[c+(H[h>>2]<<2)>>2]=0;b=H[g>>2];f=H[h>>2]<<2;k=H[f+q>>2];o:{if((b|0)==(k|0)){break o}f=c+f|0;b=b-k|0;k=H[g+48>>2];p=32-k|0;if((b|0)<=(p|0)){n=H[g+44>>2];if((n|0)==(e|0)){c=0;break e}H[f>>2]=H[n>>2]<>>32-b;b=b+H[g+48>>2]|0;H[g+48>>2]=b;if((b|0)!=32){break o}H[g+48>>2]=0;H[g+44>>2]=n+4;break o}n=H[g+44>>2];s=n+4|0;if((e|0)==(s|0)){c=0;break e}w=H[n>>2];H[g+44>>2]=s;p=b-p|0;H[g+48>>2]=p;H[f>>2]=H[n+4>>2]>>>32-p|w<>>32-b}b=H[h>>2]<<2;h=b+c|0;H[h>>2]=H[h>>2]|H[b+H[l>>2]>>2];a=a+1|0;if(a>>>0>2]){continue}break}}e=0;a=H[i+16>>2];p:{if((a|0)==H[i+20>>2]){break p}while(1){f=H[i+28>>2];c=N(e,20)+a|0;k=H[c>>2];if(!I[k+84|0]){f=H[H[k+68>>2]+(f<<2)>>2]}if(K[k+80>>2]<=f>>>0){break p}n=H[g+92>>2]+(H[c+4>>2]<<2)|0;h=H[c+12>>2];b=n;q:{if(h>>>0>3){break q}a=0;b=H[i+12>>2];if(!H[c+16>>2]){break q}while(1){b=ta(b,n+(a<<2)|0,h);h=H[c+12>>2];b=b+h|0;a=a+1|0;if(a>>>0>2]){continue}break}b=H[i+12>>2]}a=H[k+40>>2];ta(H[H[k>>2]>>2]+N(a,f)|0,b,a);e=e+1|0;a=H[i+16>>2];if(e>>>0<(H[i+20>>2]-a|0)/20>>>0){continue}break}}H[i+28>>2]=H[i+28>>2]+1;H[g+8>>2]=H[g+8>>2]+1;m=m+1|0;if((j|0)!=(m|0)){continue}break}}a=H[d+28>>2];if(a){continue}break}c=1}H[d+28>>2]=0;f=H[d+16>>2];a=H[d+12>>2];b=f-a|0;if(b>>>0>=9){while(1){ra(H[a>>2]);a=H[d+12>>2]+4|0;H[d+12>>2]=a;f=H[d+16>>2];b=f-a|0;if(b>>>0>8){continue}break}}h=170;r:{switch((b>>>2|0)-1|0){case 1:h=341;case 0:H[d+24>>2]=h;break;default:break r}}s:{if((a|0)==(f|0)){break s}while(1){ra(H[a>>2]);a=a+4|0;if((f|0)!=(a|0)){continue}break}a=H[d+16>>2];b=H[d+12>>2];if((a|0)==(b|0)){break s}H[d+16>>2]=a+((b-a|0)+3&-4)}a=H[d+8>>2];if(a){ra(a)}fa=d+32|0;break b}va();v()}va();v()}g=c}return g}function wd(a,b,c){var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,w=0;i=H[b+12>>2];e=H[b+20>>2];h=H[b+16>>2];d=h+4|0;e=d>>>0<4?e+1|0:e;a:{if(d>>>0>K[b+8>>2]&(e|0)>=(i|0)|(e|0)>(i|0)){break a}e=h+H[b>>2]|0;H[a>>2]=I[e|0]|I[e+1|0]<<8|(I[e+2|0]<<16|I[e+3|0]<<24);e=H[b+20>>2];i=e;d=H[b+16>>2];h=d+4|0;e=h>>>0<4?e+1|0:e;j=h;H[b+16>>2]=h;H[b+20>>2]=e;if(K[a>>2]>32){break a}h=H[b+12>>2];e=i;i=d+8|0;e=i>>>0<8?e+1|0:e;if(i>>>0>K[b+8>>2]&(e|0)>=(h|0)|(e|0)>(h|0)){break a}e=j+H[b>>2]|0;g=I[e|0]|I[e+1|0]<<8|(I[e+2|0]<<16|I[e+3|0]<<24);H[a+4>>2]=g;e=H[b+20>>2];i=H[b+16>>2]+4|0;e=i>>>0<4?e+1|0:e;H[b+16>>2]=i;H[b+20>>2]=e;if(!g){return 1}g=0;H[a+8>>2]=0;if(!wa(a+16|0,b)){break a}if(!xa(a+32|0,b)){break a}if(!xa(a+52|0,b)){break a}if(!xa(a+72|0,b)){break a}p=H[a+4>>2];i=c;b=0;c=0;d=fa-32|0;fa=d;g=a;a=H[a+12>>2];H[d+16>>2]=0;H[d+8>>2]=0;H[d+12>>2]=0;b:{c:{if(a){if(a>>>0>=1073741824){break c}e=a<<2;b=sa(e);H[d+8>>2]=b;c=b+e|0;H[d+16>>2]=c;ua(b,0,e);H[d+12>>2]=c}e=H[g+116>>2];h=H[e>>2];if(h){H[e+4>>2]=h;ra(h);c=H[d+12>>2];b=H[d+8>>2];a=H[g+12>>2]}H[e+4>>2]=c;H[e>>2]=b;H[e+8>>2]=H[d+16>>2];b=0;H[d+16>>2]=0;H[d+8>>2]=0;H[d+12>>2]=0;d:{if(a){if(a>>>0>=1073741824){break d}a=a<<2;f=sa(a);H[d+8>>2]=f;b=a+f|0;H[d+16>>2]=b;ua(f,0,a);H[d+12>>2]=b}a=H[g+128>>2];c=H[a>>2];if(c){H[a+4>>2]=c;ra(c);f=H[d+8>>2];b=H[d+12>>2]}H[a+4>>2]=b;H[a>>2]=f;H[a+8>>2]=H[d+16>>2];H[d+24>>2]=0;H[d+28>>2]=0;H[d+16>>2]=0;H[d+20>>2]=0;H[d+8>>2]=0;H[d+12>>2]=0;ya(d+8|0);a=H[d+24>>2]+H[d+28>>2]|0;b=(a>>>0)/341|0;a=H[H[d+12>>2]+(b<<2)>>2]+N(a-N(b,341)|0,12)|0;H[a+4>>2]=0;H[a+8>>2]=0;H[a>>2]=p;h=1;a=H[d+28>>2]+1|0;H[d+28>>2]=a;e:{if(!a){break e}s=g+16|0;while(1){b=H[d+12>>2];h=H[d+24>>2];f=a-1|0;c=h+f|0;e=(c>>>0)/341|0;c=H[b+(e<<2)>>2]+N(c-N(e,341)|0,12)|0;k=H[c+8>>2];e=H[c+4>>2];j=H[c>>2];H[d+28>>2]=f;c=H[d+16>>2];if((((b|0)!=(c|0)?N(c-b>>2,341)-1|0:0)-(a+h|0)|0)+1>>>0>=682){ra(H[c-4>>2]);H[d+16>>2]=H[d+16>>2]-4}if(j>>>0>p>>>0){h=0;break e}h=0;b=H[g+12>>2];a=(e|0)!=(b-1|0)?e+1|0:0;if(a>>>0>=b>>>0){break e}b=H[g+116>>2];f=N(k,12);n=b+f|0;c=H[g>>2];m=a<<2;q=f+H[g+128>>2]|0;e=H[m+H[q>>2]>>2];f:{if((c|0)==(e|0)){if(!j){break f}b=H[i+20>>2];c=H[i+16>>2];if((b|0)==(c|0)){a=H[g+8>>2];H[i+28>>2]=j+H[i+28>>2];H[g+8>>2]=a+j;break f}while(1){f=(b|0)==(c|0);a=b;e=0;b=c;g:{if(f){break g}while(1){f=H[i+28>>2];b=a;k=N(e,20)+c|0;m=H[k>>2];if(!I[m+84|0]){f=H[H[m+68>>2]+(f<<2)>>2]}if(K[m+80>>2]<=f>>>0){break g}l=H[n>>2]+(H[k+4>>2]<<2)|0;c=H[k+12>>2];b=l;h:{if(c>>>0>3){break h}a=0;b=H[i+12>>2];if(!H[k+16>>2]){break h}while(1){b=ta(b,l+(a<<2)|0,c);c=H[k+12>>2];b=b+c|0;a=a+1|0;if(a>>>0>2]){continue}break}b=H[i+12>>2]}a=H[m+40>>2];ta(H[H[m>>2]>>2]+N(a,f)|0,b,a);e=e+1|0;a=H[i+20>>2];b=a;c=H[i+16>>2];if(e>>>0<(b-c|0)/20>>>0){continue}break}}H[i+28>>2]=H[i+28>>2]+1;H[g+8>>2]=H[g+8>>2]+1;h=h+1|0;if((j|0)!=(h|0)){continue}break}break f}i:{j:{k:{l:{if(j>>>0<=2){c=H[g+104>>2];H[c>>2]=a;f=1;b=H[g+12>>2];if(b>>>0>1){break l}break i}if(K[g+8>>2]>K[g+4>>2]){break e}l=b;b=f+12|0;Ca(l+b|0,H[n>>2],H[n+4>>2]);b=m+H[b+H[g+116>>2]>>2]|0;H[b>>2]=H[b>>2]+(1<>2]=0;qc(s,Q(j)^31,d+4|0);b=j>>>1|0;c=H[d+4>>2];if(b>>>0>>0){break e}h=k+1|0;b=b-c|0;c=j-b|0;m:{if((c|0)==(b|0)){c=b;break m}e=H[g+84>>2];if((e|0)==H[g+76>>2]){break k}j=H[e>>2];n=H[g+88>>2];l=n+1|0;H[g+88>>2]=l;j=j&-2147483648>>>n;n:{if((l|0)==32){H[g+88>>2]=0;H[g+84>>2]=e+4;if(j){break n}break k}if(!j){break k}}}e=c;c=b;break j}while(1){a=(b-1|0)!=(a|0)?a+1|0:0;H[c+(f<<2)>>2]=a;b=H[g+12>>2];f=f+1|0;if(b>>>0>f>>>0){continue}break}break i}e=b}b=H[g+128>>2];f=b+f|0;j=H[f>>2];n=j+m|0;H[n>>2]=H[n>>2]+1;Ca(b+N(h,12)|0,j,H[f+4>>2]);if(c){b=H[d+28>>2]+H[d+24>>2]|0;j=H[d+16>>2];f=H[d+12>>2];if((b|0)==(((f|0)!=(j|0)?N(j-f>>2,341)-1|0:0)|0)){ya(d+8|0);f=H[d+12>>2];b=H[d+24>>2]+H[d+28>>2]|0}l=f;f=(b>>>0)/341|0;b=H[l+(f<<2)>>2]+N(b-N(f,341)|0,12)|0;H[b+8>>2]=k;H[b+4>>2]=a;H[b>>2]=c;H[d+28>>2]=H[d+28>>2]+1}if(!e){break f}b=H[d+28>>2]+H[d+24>>2]|0;c=H[d+16>>2];f=H[d+12>>2];if((b|0)==(((c|0)!=(f|0)?N(c-f>>2,341)-1|0:0)|0)){ya(d+8|0);f=H[d+12>>2];b=H[d+24>>2]+H[d+28>>2]|0}c=(b>>>0)/341|0;b=H[(c<<2)+f>>2]+N(b-N(c,341)|0,12)|0;H[b+8>>2]=h;H[b+4>>2]=a;H[b>>2]=e;H[d+28>>2]=H[d+28>>2]+1;break f}m=0;if(!j){break f}while(1){if(H[g+12>>2]){e=H[g+36>>2];t=H[q>>2];c=H[g+92>>2];u=H[g+104>>2];a=0;while(1){h=(a<<2)+u|0;H[c+(H[h>>2]<<2)>>2]=0;b=H[g>>2];f=H[h>>2]<<2;k=H[f+t>>2];o:{if((b|0)==(k|0)){break o}f=c+f|0;b=b-k|0;k=H[g+48>>2];o=32-k|0;if((b|0)<=(o|0)){l=H[g+44>>2];if((l|0)==(e|0)){h=0;break e}H[f>>2]=H[l>>2]<>>32-b;b=b+H[g+48>>2]|0;H[g+48>>2]=b;if((b|0)!=32){break o}H[g+48>>2]=0;H[g+44>>2]=l+4;break o}l=H[g+44>>2];r=l+4|0;if((e|0)==(r|0)){h=0;break e}w=H[l>>2];H[g+44>>2]=r;o=b-o|0;H[g+48>>2]=o;H[f>>2]=H[l+4>>2]>>>32-o|w<>>32-b}b=H[h>>2]<<2;h=b+c|0;H[h>>2]=H[h>>2]|H[b+H[n>>2]>>2];a=a+1|0;if(a>>>0>2]){continue}break}}e=0;a=H[i+16>>2];p:{if((a|0)==H[i+20>>2]){break p}while(1){f=H[i+28>>2];h=N(e,20)+a|0;k=H[h>>2];if(!I[k+84|0]){f=H[H[k+68>>2]+(f<<2)>>2]}if(K[k+80>>2]<=f>>>0){break p}l=H[g+92>>2]+(H[h+4>>2]<<2)|0;c=H[h+12>>2];b=l;q:{if(c>>>0>3){break q}a=0;b=H[i+12>>2];if(!H[h+16>>2]){break q}while(1){b=ta(b,l+(a<<2)|0,c);c=H[h+12>>2];b=b+c|0;a=a+1|0;if(a>>>0>2]){continue}break}b=H[i+12>>2]}a=H[k+40>>2];ta(H[H[k>>2]>>2]+N(a,f)|0,b,a);e=e+1|0;a=H[i+16>>2];if(e>>>0<(H[i+20>>2]-a|0)/20>>>0){continue}break}}H[i+28>>2]=H[i+28>>2]+1;H[g+8>>2]=H[g+8>>2]+1;m=m+1|0;if((j|0)!=(m|0)){continue}break}}a=H[d+28>>2];if(a){continue}break}h=1}H[d+28>>2]=0;f=H[d+16>>2];a=H[d+12>>2];b=f-a|0;if(b>>>0>=9){while(1){ra(H[a>>2]);a=H[d+12>>2]+4|0;H[d+12>>2]=a;f=H[d+16>>2];b=f-a|0;if(b>>>0>8){continue}break}}c=170;r:{switch((b>>>2|0)-1|0){case 1:c=341;case 0:H[d+24>>2]=c;break;default:break r}}s:{if((a|0)==(f|0)){break s}while(1){ra(H[a>>2]);a=a+4|0;if((f|0)!=(a|0)){continue}break}a=H[d+16>>2];b=H[d+12>>2];if((a|0)==(b|0)){break s}H[d+16>>2]=a+((b-a|0)+3&-4)}a=H[d+8>>2];if(a){ra(a)}fa=d+32|0;a=h;break b}va();v()}va();v()}g=a}return g}function Cj(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,I=0,J=0,K=0,L=0,M=0,O=0,P=0;g=fa+-64|0;fa=g;H[a+8>>2]=e;y=a+32|0;f=H[y>>2];d=H[a+36>>2]-f>>2;a:{b:{if(d>>>0>>0){Aa(y,e-d|0);H[g+56>>2]=0;H[g+60>>2]=0;H[g+48>>2]=0;H[g+52>>2]=0;H[g+40>>2]=0;H[g+44>>2]=0;H[g+32>>2]=0;H[g+36>>2]=0;H[g+24>>2]=0;H[g+28>>2]=0;H[g+16>>2]=0;H[g+20>>2]=0;H[g>>2]=0;break b}if(d>>>0>e>>>0){H[a+36>>2]=f+(e<<2)}H[g+56>>2]=0;H[g+60>>2]=0;H[g+48>>2]=0;H[g+52>>2]=0;H[g+40>>2]=0;H[g+44>>2]=0;H[g+32>>2]=0;H[g+36>>2]=0;H[g+24>>2]=0;H[g+28>>2]=0;H[g+16>>2]=0;H[g+20>>2]=0;H[g>>2]=0;d=0;if(!e){break a}}Ia(g+16|0,e,g);h=H[g+28>>2];d=H[g+32>>2]}H[g>>2]=0;d=d-h>>2;c:{if(d>>>0>=e>>>0){if(d>>>0<=e>>>0){break c}H[g+32>>2]=(e<<2)+h;break c}Ia(g+16|12,e-d|0,g)}H[g>>2]=0;f=H[g+40>>2];d=H[g+44>>2]-f>>2;d:{if(d>>>0>=e>>>0){if(d>>>0<=e>>>0){break d}H[g+44>>2]=f+(e<<2);break d}Ia(g+40|0,e-d|0,g)}H[g>>2]=0;f=H[g+52>>2];d=H[g+56>>2]-f>>2;e:{if(d>>>0>=e>>>0){if(d>>>0<=e>>>0){break e}H[g+56>>2]=f+(e<<2);break e}Ia(g+52|0,e-d|0,g)}f:{if(H[a+8>>2]<=0){break f}i=H[g+16>>2];j=H[a+32>>2];h=0;while(1){d=h<<2;f=H[d+i>>2];n=H[a+16>>2];g:{if((f|0)>(n|0)){H[d+j>>2]=n;break g}d=d+j|0;n=H[a+12>>2];if((n|0)>(f|0)){H[d>>2]=n;break g}H[d>>2]=f}h=h+1|0;d=H[a+8>>2];if((h|0)<(d|0)){continue}break}if((d|0)<=0){break f}d=0;while(1){i=d<<2;f=i+c|0;i=H[b+i>>2]+H[j+i>>2]|0;H[f>>2]=i;h:{if((i|0)>H[a+16>>2]){i=i-H[a+20>>2]|0}else{if((i|0)>=H[a+12>>2]){break h}i=i+H[a+20>>2]|0}H[f>>2]=i}d=d+1|0;if((d|0)>2]){continue}break}}G=H[a+52>>2];q=H[a+48>>2];z=sa(16);d=z;H[d>>2]=0;H[d+4>>2]=0;H[d+8>>2]=0;H[d+12>>2]=0;H[g+8>>2]=0;H[g>>2]=0;H[g+4>>2]=0;i:{if(e){if(e>>>0>=1073741824){break i}d=e<<2;s=sa(d);H[g>>2]=s;H[g+8>>2]=d+s;ua(s,0,d)}d=H[a+56>>2];A=H[d>>2];d=H[d+4>>2]-A|0;j:{if((d|0)<5){break j}u=d>>2;I=(u|0)<=2?2:u;J=u>>>0<=1?1:u;B=e&-2;C=e&1;K=e&-4;D=e&3;E=e-1|0;L=e<<2;M=e>>>0<4;F=1;n=1;while(1){k:{l:{m:{n:{if((n|0)!=(J|0)){o:{p:{f=H[(n<<2)+A>>2];if((f|0)==-1){break p}k=1;d=f+2|0;j=(f>>>0)%3|0;w=j?f-1|0:d;o=1<>>5|0;i=0;O=(j|0)!=0|(d|0)!=-1;P=H[q>>2];d=f;q:{while(1){r:{if(H[(d>>>3&536870908)+P>>2]>>>d&1){break r}j=H[H[H[q+64>>2]+12>>2]+(d<<2)>>2];if((j|0)==-1){break r}m=H[G>>2];h=H[q+28>>2];r=H[m+(H[h+(j<<2)>>2]<<2)>>2];if((r|0)>=(n|0)){break r}l=j+1|0;l=H[m+(H[h+(((l>>>0)%3|0?l:j-2|0)<<2)>>2]<<2)>>2];if((l|0)>=(n|0)){break r}h=H[m+(H[h+(j+((j>>>0)%3|0?-1:2)<<2)>>2]<<2)>>2];if((h|0)>=(n|0)){break r}s:{if(!e){break s}j=H[(g+16|0)+N(i,12)>>2];m=N(e,h);l=N(e,l);r=N(e,r);h=0;x=0;if(E){while(1){H[j+(h<<2)>>2]=(H[(h+m<<2)+c>>2]+H[(h+l<<2)+c>>2]|0)-H[(h+r<<2)+c>>2];p=h|1;H[j+(p<<2)>>2]=(H[(m+p<<2)+c>>2]+H[(l+p<<2)+c>>2]|0)-H[(r+p<<2)+c>>2];h=h+2|0;x=x+2|0;if((B|0)!=(x|0)){continue}break}}if(!C){break s}H[j+(h<<2)>>2]=(H[(h+m<<2)+c>>2]+H[(h+l<<2)+c>>2]|0)-H[(h+r<<2)+c>>2]}j=4;i=i+1|0;if((i|0)==4){break q}}t:{if(k&1){h=d-2|0;j=d+1|0;d=-1;j=(j>>>0)%3|0?j:h;if((j|0)==-1|H[H[q>>2]+(j>>>3&536870908)>>2]>>>j&1){break t}j=H[H[H[q+64>>2]+12>>2]+(j<<2)>>2];if((j|0)==-1){break t}d=j+1|0;d=(d>>>0)%3|0?d:j-2|0;break t}u:{if((d>>>0)%3|0){h=d-1|0;break u}h=d+2|0;d=-1;if((h|0)==-1){break t}}d=-1;if(H[H[q>>2]+(h>>>3&536870908)>>2]>>>h&1){break t}j=H[H[H[q+64>>2]+12>>2]+(h<<2)>>2];if((j|0)==-1){break t}if((j>>>0)%3|0){d=j-1|0;break t}d=j+2|0}v:{if((d|0)==(f|0)){break v}if(!((k^1)&1|(d|0)!=-1)){if(!O|o&H[H[q>>2]+(t<<2)>>2]){break v}d=H[H[H[q+64>>2]+12>>2]+(w<<2)>>2];if((d|0)==-1){break v}k=0;d=(d>>>0)%3|0?d-1|0:d+2|0}if((d|0)!=-1){continue}}break}j=i;if((j|0)<=0){break p}}if(e){ua(s,0,L)}d=j-1|0;r=(d<<2)+z|0;d=N(d,12)+a|0;w=d;x=H[d- -64>>2];k=0;d=H[g>>2];f=0;while(1){i=H[r>>2];H[r>>2]=i+1;if(i>>>0>=x>>>0){break j}w:{if(H[H[w+60>>2]+(i>>>3&536870908)>>2]>>>i&1){break w}f=f+1|0;if(!e){break w}m=H[(g+16|0)+N(k,12)>>2];i=0;h=0;p=0;if(!M){while(1){l=h<<2;o=l+d|0;H[o>>2]=H[m+l>>2]+H[o>>2];o=l|4;t=o+d|0;H[t>>2]=H[m+o>>2]+H[t>>2];o=l|8;t=o+d|0;H[t>>2]=H[m+o>>2]+H[t>>2];l=l|12;o=l+d|0;H[o>>2]=H[m+l>>2]+H[o>>2];h=h+4|0;p=p+4|0;if((K|0)!=(p|0)){continue}break}}if(!D){break w}while(1){l=h<<2;p=l+d|0;H[p>>2]=H[m+l>>2]+H[p>>2];h=h+1|0;i=i+1|0;if((D|0)!=(i|0)){continue}break}}k=k+1|0;if((k|0)!=(j|0)){continue}break}i=N(e,n);if(!f){break o}if(!e){break l}h=0;d=0;if(E){break n}break m}i=N(e,n)}if(H[a+8>>2]<=0){break k}k=(N(n-1|0,e)<<2)+c|0;j=H[y>>2];h=0;while(1){d=h<<2;f=H[d+k>>2];m=H[a+16>>2];x:{if((f|0)>(m|0)){H[d+j>>2]=m;break x}d=d+j|0;m=H[a+12>>2];if((m|0)>(f|0)){H[d>>2]=m;break x}H[d>>2]=f}h=h+1|0;f=H[a+8>>2];if((h|0)<(f|0)){continue}break}d=0;if((f|0)<=0){break k}f=i<<2;h=f+c|0;k=b+f|0;while(1){i=d<<2;f=i+h|0;i=H[i+k>>2]+H[j+i>>2]|0;H[f>>2]=i;y:{if((i|0)>H[a+16>>2]){i=i-H[a+20>>2]|0}else{if((i|0)>=H[a+12>>2]){break y}i=i+H[a+20>>2]|0}H[f>>2]=i}d=d+1|0;if((d|0)>2]){continue}break}break k}Ea();v()}while(1){j=h<<2;k=j+s|0;H[k>>2]=H[k>>2]/(f|0);j=(j|4)+s|0;H[j>>2]=H[j>>2]/(f|0);h=h+2|0;d=d+2|0;if((B|0)!=(d|0)){continue}break}}if(!C){break l}d=(h<<2)+s|0;H[d>>2]=H[d>>2]/(f|0)}if(H[a+8>>2]<=0){break k}j=H[y>>2];h=0;while(1){d=h<<2;f=H[d+s>>2];k=H[a+16>>2];z:{if((f|0)>(k|0)){H[d+j>>2]=k;break z}d=d+j|0;k=H[a+12>>2];if((k|0)>(f|0)){H[d>>2]=k;break z}H[d>>2]=f}h=h+1|0;f=H[a+8>>2];if((h|0)<(f|0)){continue}break}d=0;if((f|0)<=0){break k}f=i<<2;h=f+c|0;k=b+f|0;while(1){i=d<<2;f=i+h|0;i=H[i+k>>2]+H[j+i>>2]|0;H[f>>2]=i;A:{if((i|0)>H[a+16>>2]){i=i-H[a+20>>2]|0}else{if((i|0)>=H[a+12>>2]){break A}i=i+H[a+20>>2]|0}H[f>>2]=i}d=d+1|0;if((d|0)>2]){continue}break}}n=n+1|0;F=(u|0)>(n|0);if((n|0)!=(I|0)){continue}break}}a=H[g>>2];if(a){ra(a)}ra(z);a=H[g+52>>2];if(a){H[g+56>>2]=a;ra(a)}a=H[g+40>>2];if(a){H[g+44>>2]=a;ra(a)}a=H[g+28>>2];if(a){H[g+32>>2]=a;ra(a)}a=H[g+16>>2];if(a){H[g+20>>2]=a;ra(a)}fa=g- -64|0;return(F^-1)&1}va();v()}function Zc(a,b){var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,w=0;f=fa-32|0;fa=f;k=H[H[a+4>>2]+44>>2];d=H[a+8>>2];h=H[d>>2];d=H[d+4>>2];H[f+24>>2]=0;H[f+16>>2]=0;H[f+20>>2]=0;e=(d-h>>2>>>0)/3|0;d=H[k+96>>2];g=(H[k+100>>2]-d|0)/12|0;a:{if(e>>>0>g>>>0){j=e-g|0;c=H[k+104>>2];h=H[k+100>>2];if(j>>>0<=(c-h|0)/12>>>0){b:{if(!j){break b}d=N(j,12);j=d;e=d-12|0;g=((e>>>0)/12|0)+1&3;c:{if(!g){d=h;break c}d=h;while(1){c=H[f+20>>2];H[d>>2]=H[f+16>>2];H[d+4>>2]=c;H[d+8>>2]=H[f+24>>2];d=d+12|0;i=i+1|0;if((g|0)!=(i|0)){continue}break}}h=h+j|0;if(e>>>0<36){break b}while(1){c=H[f+20>>2];H[d>>2]=H[f+16>>2];H[d+4>>2]=c;H[d+8>>2]=H[f+24>>2];H[d+20>>2]=H[f+24>>2];c=H[f+20>>2];H[d+12>>2]=H[f+16>>2];H[d+16>>2]=c;H[d+32>>2]=H[f+24>>2];c=H[f+20>>2];H[d+24>>2]=H[f+16>>2];H[d+28>>2]=c;c=H[f+20>>2];H[d+36>>2]=H[f+16>>2];H[d+40>>2]=c;H[d+44>>2]=H[f+24>>2];d=d+48|0;if((h|0)!=(d|0)){continue}break}}H[k+100>>2]=h;break a}d:{d=H[k+96>>2];g=(h-d|0)/12|0;e=g+j|0;if(e>>>0<357913942){c=(c-d|0)/12|0;d=c<<1;l=c>>>0>=178956970?357913941:d>>>0>e>>>0?d:e;if(l){if(l>>>0>=357913942){break d}o=sa(N(l,12))}c=N(g,12)+o|0;d=c;m=N(j,12);j=m-12|0;e=((j>>>0)/12|0)+1&3;if(e){d=c;while(1){g=H[f+20>>2];H[d>>2]=H[f+16>>2];H[d+4>>2]=g;H[d+8>>2]=H[f+24>>2];d=d+12|0;i=i+1|0;if((e|0)!=(i|0)){continue}break}}e=c+m|0;if(j>>>0>=36){while(1){g=H[f+20>>2];H[d>>2]=H[f+16>>2];H[d+4>>2]=g;H[d+8>>2]=H[f+24>>2];H[d+20>>2]=H[f+24>>2];g=H[f+20>>2];H[d+12>>2]=H[f+16>>2];H[d+16>>2]=g;H[d+32>>2]=H[f+24>>2];g=H[f+20>>2];H[d+24>>2]=H[f+16>>2];H[d+28>>2]=g;g=H[f+20>>2];H[d+36>>2]=H[f+16>>2];H[d+40>>2]=g;H[d+44>>2]=H[f+24>>2];d=d+48|0;if((e|0)!=(d|0)){continue}break}}g=H[k+96>>2];h=h-g|0;d=c+N((h|0)/-12|0,12)|0;if((h|0)>0){ta(d,g,h)}H[k+104>>2]=N(l,12)+o;H[k+100>>2]=e;H[k+96>>2]=d;if(g){ra(g)}break a}va();v()}za();v()}if(e>>>0>=g>>>0){break a}H[k+100>>2]=d+N(e,12)}e:{if(H[a+216>>2]==H[a+220>>2]){e=H[a+4>>2];h=H[e+44>>2];d=H[h+100>>2];m=H[h+96>>2];if((d|0)!=(m|0)){d=(d-m|0)/12|0;g=d>>>0<=1?1:d;c=0;while(1){k=H[a+8>>2];h=m+N(c,12)|0;l=N(c,3);f:{g:{if((l|0)==-1){i=H[(H[k>>2]+(l<<2)|0)+4>>2];n=-1;d=1;break g}i=-1;n=H[H[k>>2]+(l<<2)>>2];d=l+1|0;if((d|0)==-1){d=0;break g}i=H[H[k>>2]+(d<<2)>>2];d=l+2|0;j=-1;if((d|0)==-1){break f}}j=H[H[k>>2]+(d<<2)>>2]}H[h+8>>2]=j;H[h+4>>2]=i;H[h>>2]=n;c=c+1|0;if((g|0)!=(c|0)){continue}break}}H[H[e+4>>2]+80>>2]=b;c=1;break e}h=0;H[f+24>>2]=0;H[f+16>>2]=0;H[f+20>>2]=0;o=H[a+8>>2];c=H[o>>2];d=H[o+4>>2];H[f+8>>2]=0;H[f>>2]=0;H[f+4>>2]=0;b=0;h:{i:{j:{k:{l:{m:{if((d|0)!=(c|0)){d=d-c|0;if((d|0)<0){break m}b=sa(d);H[f>>2]=b;H[f+8>>2]=(d&-4)+b;u=f,w=ua(b,0,d)+d|0,H[u+4>>2]=w}c=H[o+24>>2];if((H[o+28>>2]-c|0)<=0){break i}d=0;while(1){g=H[(q<<2)+c>>2];n:{if((g|0)==-1){break n}o:{if(H[H[a+120>>2]+(q>>>3&536870908)>>2]>>>q&1){break o}s=H[a+216>>2];c=H[a+220>>2];if((s|0)==(c|0)){break o}i=g+2|0;e=(g>>>0)%3|0;t=e?g-1|0:i;c=(c-s|0)/144|0;k=c>>>0<=1?1:c;r=0;l=(e|0)!=0|(i|0)!=-1;while(1){e=g<<2;i=N(r,144)+s|0;c=H[e+H[H[i+68>>2]>>2]>>2];p:{if(!(H[H[i+16>>2]+(c>>>3&536870908)>>2]>>>c&1)){break p}c=-1;q:{if(!l){break q}j=H[H[o+12>>2]+(t<<2)>>2];c=-1;if((j|0)==-1){break q}c=j-1|0;if((j>>>0)%3|0){break q}c=j+2|0}if((g|0)==(c|0)){break p}m=H[i+32>>2];j=H[m+e>>2];while(1){i=0;if((c|0)==-1){break h}if((j|0)!=H[m+(c<<2)>>2]){g=c;break o}r:{s:{if((c>>>0)%3|0){i=c-1|0;break s}i=c+2|0;e=-1;if((i|0)==-1){break r}}c=H[H[o+12>>2]+(i<<2)>>2];e=-1;if((c|0)==-1){break r}e=c-1|0;if((c>>>0)%3|0){break r}e=c+2|0}c=e;if((g|0)!=(c|0)){continue}break}}r=r+1|0;if((k|0)!=(r|0)){continue}break}}j=n-d|0;i=j>>2;H[(g<<2)+b>>2]=i;t:{if(n>>>0

>>0){H[n>>2]=g;n=n+4|0;H[f+20>>2]=n;break t}e=i+1|0;if(e>>>0>=1073741824){break l}c=p-d|0;h=c>>1;e=c>>>0>=2147483644?1073741823:e>>>0>>0?h:e;if(e){if(e>>>0>=1073741824){break k}h=sa(e<<2)}else{h=0}c=h+(i<<2)|0;H[c>>2]=g;p=(e<<2)+h|0;n=c+4|0;if((j|0)>0){ta(h,d,j)}H[f+24>>2]=p;H[f+20>>2]=n;H[f+16>>2]=h;if(d){ra(d);o=H[a+8>>2]}d=h}if((g|0)==-1){break n}u:{if((g>>>0)%3|0){c=g-1|0;break u}c=g+2|0;if((c|0)==-1){break n}}c=H[H[o+12>>2]+(c<<2)>>2];if((c|0)==-1){break n}c=c+((c>>>0)%3|0?-1:2)|0;if((c|0)==-1){break n}i=g;if((g|0)==(c|0)){break n}while(1){e=c;v:{w:{c=H[a+220>>2];k=H[a+216>>2];if((c|0)==(k|0)){break w}c=(c-k|0)/144|0;l=c>>>0<=1?1:c;c=0;while(1){m=H[(k+N(c,144)|0)+32>>2];j=e<<2;if(H[m+j>>2]==H[m+(i<<2)>>2]){c=c+1|0;if((l|0)!=(c|0)){continue}break w}break}d=b+j|0;m=n-h|0;j=m>>2;H[d>>2]=j;if(n>>>0

>>0){H[n>>2]=e;n=n+4|0;H[f+20>>2]=n;d=h;break v}i=j+1|0;if(i>>>0>=1073741824){break j}c=p-h|0;d=c>>1;i=c>>>0>=2147483644?1073741823:d>>>0>i>>>0?d:i;if(i){if(i>>>0>=1073741824){break k}d=sa(i<<2)}else{d=0}c=d+(j<<2)|0;H[c>>2]=e;p=(i<<2)+d|0;n=c+4|0;if((m|0)>0){ta(d,h,m)}H[f+24>>2]=p;H[f+20>>2]=n;H[f+16>>2]=d;if(!h){h=d;break v}ra(h);o=H[a+8>>2];h=d;break v}H[(e<<2)+b>>2]=H[(i<<2)+b>>2]}if((e|0)==-1){break n}x:{if((e>>>0)%3|0){c=e-1|0;break x}c=e+2|0;if((c|0)==-1){break n}}c=H[H[o+12>>2]+(c<<2)>>2];if((c|0)==-1){break n}c=c+((c>>>0)%3|0?-1:2)|0;if((c|0)==-1){break n}i=e;if((c|0)!=(g|0)){continue}break}}q=q+1|0;c=H[o+24>>2];if((q|0)>2]-c>>2){continue}break}break i}va();v()}va();v()}za();v()}va();v()}m=H[a+4>>2];d=H[m+44>>2];a=H[d+100>>2];k=H[d+96>>2];y:{if((a|0)==(k|0)){break y}d=(a-k|0)/12|0;a=d>>>0<=1?1:d;j=a&1;c=0;if(d>>>0>=2){i=a&-2;d=0;while(1){e=N(c,12);l=e+b|0;g=H[l+4>>2];a=H[l>>2];e=e+k|0;H[e+8>>2]=H[l+8>>2];H[e>>2]=a;H[e+4>>2]=g;e=N(c|1,12);l=e+b|0;g=H[l+4>>2];a=H[l>>2];e=e+k|0;H[e+8>>2]=H[l+8>>2];H[e>>2]=a;H[e+4>>2]=g;c=c+2|0;d=d+2|0;if((i|0)!=(d|0)){continue}break}}if(!j){break y}c=N(c,12);g=c+b|0;d=H[g+4>>2];a=H[g>>2];c=c+k|0;H[c+8>>2]=H[g+8>>2];H[c>>2]=a;H[c+4>>2]=d}H[H[m+4>>2]+80>>2]=n-h>>2;i=1}c=i;if(b){ra(b)}if(!h){break e}H[f+20>>2]=h;ra(h)}fa=f+32|0;return c}function mj(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,I=0,J=0,K=0,L=0,M=0;h=fa+-64|0;fa=h;H[a+8>>2]=e;x=a+32|0;f=H[x>>2];d=H[a+36>>2]-f>>2;a:{b:{if(d>>>0>>0){Aa(x,e-d|0);H[h+56>>2]=0;H[h+60>>2]=0;H[h+48>>2]=0;H[h+52>>2]=0;H[h+40>>2]=0;H[h+44>>2]=0;H[h+32>>2]=0;H[h+36>>2]=0;H[h+24>>2]=0;H[h+28>>2]=0;H[h+16>>2]=0;H[h+20>>2]=0;H[h>>2]=0;break b}if(d>>>0>e>>>0){H[a+36>>2]=f+(e<<2)}H[h+56>>2]=0;H[h+60>>2]=0;H[h+48>>2]=0;H[h+52>>2]=0;H[h+40>>2]=0;H[h+44>>2]=0;H[h+32>>2]=0;H[h+36>>2]=0;H[h+24>>2]=0;H[h+28>>2]=0;H[h+16>>2]=0;H[h+20>>2]=0;H[h>>2]=0;d=0;if(!e){break a}}Ia(h+16|0,e,h);i=H[h+28>>2];d=H[h+32>>2]}H[h>>2]=0;d=d-i>>2;c:{if(d>>>0>=e>>>0){if(d>>>0<=e>>>0){break c}H[h+32>>2]=(e<<2)+i;break c}Ia(h+16|12,e-d|0,h)}H[h>>2]=0;f=H[h+40>>2];d=H[h+44>>2]-f>>2;d:{if(d>>>0>=e>>>0){if(d>>>0<=e>>>0){break d}H[h+44>>2]=f+(e<<2);break d}Ia(h+40|0,e-d|0,h)}H[h>>2]=0;f=H[h+52>>2];d=H[h+56>>2]-f>>2;e:{if(d>>>0>=e>>>0){if(d>>>0<=e>>>0){break e}H[h+56>>2]=f+(e<<2);break e}Ia(h+52|0,e-d|0,h)}f:{if(H[a+8>>2]<=0){break f}g=H[h+16>>2];j=H[a+32>>2];i=0;while(1){d=i<<2;f=H[d+g>>2];m=H[a+16>>2];g:{if((f|0)>(m|0)){H[d+j>>2]=m;break g}d=d+j|0;m=H[a+12>>2];if((m|0)>(f|0)){H[d>>2]=m;break g}H[d>>2]=f}i=i+1|0;d=H[a+8>>2];if((i|0)<(d|0)){continue}break}if((d|0)<=0){break f}d=0;while(1){g=d<<2;f=g+c|0;g=H[b+g>>2]+H[g+j>>2]|0;H[f>>2]=g;h:{if((g|0)>H[a+16>>2]){g=g-H[a+20>>2]|0}else{if((g|0)>=H[a+12>>2]){break h}g=g+H[a+20>>2]|0}H[f>>2]=g}d=d+1|0;if((d|0)>2]){continue}break}}G=H[a+52>>2];z=H[a+48>>2];y=sa(16);d=y;H[d>>2]=0;H[d+4>>2]=0;H[d+8>>2]=0;H[d+12>>2]=0;H[h+8>>2]=0;H[h>>2]=0;H[h+4>>2]=0;i:{if(e){if(e>>>0>=1073741824){break i}d=e<<2;t=sa(d);H[h>>2]=t;H[h+8>>2]=d+t;ua(t,0,d)}d=H[a+56>>2];A=H[d>>2];d=H[d+4>>2]-A|0;j:{if((d|0)<5){break j}w=d>>2;I=(w|0)<=2?2:w;J=w>>>0<=1?1:w;B=e&-2;C=e&1;K=e&-4;D=e&3;E=e-1|0;L=e<<2;M=e>>>0<4;F=1;m=1;while(1){k:{l:{m:{n:{if((m|0)!=(J|0)){o:{p:{f=H[(m<<2)+A>>2];if((f|0)==-1){break p}n=H[z+12>>2];d=f+2|0;g=(f>>>0)%3|0;q=n+((g?f-1|0:d)<<2)|0;j=0;u=(g|0)!=0|(d|0)!=-1;k=1;d=f;q:{while(1){g=H[n+(d<<2)>>2];r:{if((g|0)==-1){break r}l=-1;p=H[G>>2];r=H[z>>2];i=p+(H[r+(g<<2)>>2]<<2)|0;o=g+1|0;o=(o>>>0)%3|0?o:g-2|0;if((o|0)!=-1){l=H[r+(o<<2)>>2]}o=H[i>>2];s:{t:{if((g>>>0)%3|0){i=g-1|0;break t}i=g+2|0;s=-1;if((i|0)==-1){break s}}s=H[r+(i<<2)>>2]}if((m|0)<=(o|0)){break r}i=H[p+(l<<2)>>2];if((i|0)>=(m|0)){break r}l=H[p+(s<<2)>>2];if((l|0)>=(m|0)){break r}g=H[(h+16|0)+N(j,12)>>2];u:{if(!e){break u}l=N(e,l);r=N(e,i);p=N(e,o);i=0;s=0;if(E){while(1){H[g+(i<<2)>>2]=(H[(i+l<<2)+c>>2]+H[(i+r<<2)+c>>2]|0)-H[(i+p<<2)+c>>2];o=i|1;H[g+(o<<2)>>2]=(H[(l+o<<2)+c>>2]+H[(o+r<<2)+c>>2]|0)-H[(o+p<<2)+c>>2];i=i+2|0;s=s+2|0;if((B|0)!=(s|0)){continue}break}}if(!C){break u}H[g+(i<<2)>>2]=(H[(i+l<<2)+c>>2]+H[(i+r<<2)+c>>2]|0)-H[(i+p<<2)+c>>2]}g=4;j=j+1|0;if((j|0)==4){break q}}v:{if(k&1){i=d+1|0;d=(i>>>0)%3|0?i:d-2|0;g=-1;if((d|0)==-1){break v}d=H[n+(d<<2)>>2];g=-1;if((d|0)==-1){break v}g=d+1|0;g=(g>>>0)%3|0?g:d-2|0;break v}w:{if((d>>>0)%3|0){i=d-1|0;break w}i=d+2|0;g=-1;if((i|0)==-1){break v}}d=H[n+(i<<2)>>2];g=-1;if((d|0)==-1){break v}g=d-1|0;if((d>>>0)%3|0){break v}g=d+2|0}d=g;x:{if((f|0)==(d|0)){break x}if(!((k^1)&1|(d|0)!=-1)){if(!u){break x}d=H[q>>2];if((d|0)==-1){break x}k=0;d=(d>>>0)%3|0?d-1|0:d+2|0}if((d|0)!=-1){continue}}break}g=j;if((g|0)<=0){break p}}if(e){ua(t,0,L)}d=g-1|0;r=(d<<2)+y|0;d=N(d,12)+a|0;o=d;s=H[d- -64>>2];k=0;d=H[h>>2];f=0;while(1){j=H[r>>2];H[r>>2]=j+1;if(j>>>0>=s>>>0){break j}y:{if(H[H[o+60>>2]+(j>>>3&536870908)>>2]>>>j&1){break y}f=f+1|0;if(!e){break y}j=H[(h+16|0)+N(k,12)>>2];l=0;i=0;p=0;if(!M){while(1){n=i<<2;q=n+d|0;H[q>>2]=H[j+n>>2]+H[q>>2];q=n|4;u=q+d|0;H[u>>2]=H[j+q>>2]+H[u>>2];q=n|8;u=q+d|0;H[u>>2]=H[j+q>>2]+H[u>>2];n=n|12;q=n+d|0;H[q>>2]=H[j+n>>2]+H[q>>2];i=i+4|0;p=p+4|0;if((K|0)!=(p|0)){continue}break}}if(!D){break y}while(1){n=i<<2;p=n+d|0;H[p>>2]=H[j+n>>2]+H[p>>2];i=i+1|0;l=l+1|0;if((D|0)!=(l|0)){continue}break}}k=k+1|0;if((k|0)!=(g|0)){continue}break}g=N(e,m);if(!f){break o}if(!e){break l}i=0;d=0;if(E){break n}break m}g=N(e,m)}if(H[a+8>>2]<=0){break k}k=(N(m-1|0,e)<<2)+c|0;j=H[x>>2];i=0;while(1){d=i<<2;f=H[d+k>>2];l=H[a+16>>2];z:{if((f|0)>(l|0)){H[d+j>>2]=l;break z}d=d+j|0;l=H[a+12>>2];if((l|0)>(f|0)){H[d>>2]=l;break z}H[d>>2]=f}i=i+1|0;f=H[a+8>>2];if((i|0)<(f|0)){continue}break}d=0;if((f|0)<=0){break k}f=g<<2;i=f+c|0;k=b+f|0;while(1){g=d<<2;f=g+i|0;g=H[g+k>>2]+H[g+j>>2]|0;H[f>>2]=g;A:{if((g|0)>H[a+16>>2]){g=g-H[a+20>>2]|0}else{if((g|0)>=H[a+12>>2]){break A}g=g+H[a+20>>2]|0}H[f>>2]=g}d=d+1|0;if((d|0)>2]){continue}break}break k}Ea();v()}while(1){j=i<<2;k=j+t|0;H[k>>2]=H[k>>2]/(f|0);j=(j|4)+t|0;H[j>>2]=H[j>>2]/(f|0);i=i+2|0;d=d+2|0;if((B|0)!=(d|0)){continue}break}}if(!C){break l}d=(i<<2)+t|0;H[d>>2]=H[d>>2]/(f|0)}if(H[a+8>>2]<=0){break k}j=H[x>>2];i=0;while(1){d=i<<2;f=H[d+t>>2];k=H[a+16>>2];B:{if((f|0)>(k|0)){H[d+j>>2]=k;break B}d=d+j|0;k=H[a+12>>2];if((k|0)>(f|0)){H[d>>2]=k;break B}H[d>>2]=f}i=i+1|0;f=H[a+8>>2];if((i|0)<(f|0)){continue}break}d=0;if((f|0)<=0){break k}f=g<<2;i=f+c|0;k=b+f|0;while(1){g=d<<2;f=g+i|0;g=H[g+k>>2]+H[g+j>>2]|0;H[f>>2]=g;C:{if((g|0)>H[a+16>>2]){g=g-H[a+20>>2]|0}else{if((g|0)>=H[a+12>>2]){break C}g=g+H[a+20>>2]|0}H[f>>2]=g}d=d+1|0;if((d|0)>2]){continue}break}}m=m+1|0;F=(w|0)>(m|0);if((m|0)!=(I|0)){continue}break}}a=H[h>>2];if(a){ra(a)}ra(y);a=H[h+52>>2];if(a){H[h+56>>2]=a;ra(a)}a=H[h+40>>2];if(a){H[h+44>>2]=a;ra(a)}a=H[h+28>>2];if(a){H[h+32>>2]=a;ra(a)}a=H[h+16>>2];if(a){H[h+20>>2]=a;ra(a)}fa=h- -64|0;return(F^-1)&1}va();v()}function Od(a,b,c,d,e){var f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,w=0,x=0,y=0,z=0,A=0,B=0;i=fa-80|0;fa=i;H[i+76>>2]=b;y=i+55|0;r=i+56|0;a:{b:{c:{d:{e:while(1){h=b;if((o^2147483647)<(f|0)){break d}o=f+o|0;f:{g:{h:{f=h;g=I[f|0];if(g){while(1){i:{b=g&255;j:{if(!b){b=f;break j}if((b|0)!=37){break i}g=f;while(1){if(I[g+1|0]!=37){b=g;break j}f=f+1|0;j=I[g+2|0];b=g+2|0;g=b;if((j|0)==37){continue}break}}f=f-h|0;x=o^2147483647;if((f|0)>(x|0)){break d}if(a){Cb(a,h,f)}if(f){continue e}H[i+76>>2]=b;f=b+1|0;p=-1;if(!(I[b+2|0]!=36|F[b+1|0]-48>>>0>=10)){p=F[b+1|0]-48|0;s=1;f=b+3|0}H[i+76>>2]=f;n=0;g=F[f|0];b=g-32|0;k:{if(b>>>0>31){k=f;break k}k=f;b=1<>2]=k;n=b|n;g=F[f+1|0];b=g-32|0;if(b>>>0>=32){break k}f=k;b=1<>>0>=10)){H[((F[k+1|0]<<2)+e|0)-192>>2]=10;g=k+3|0;s=1;b=H[((F[k+1|0]<<3)+d|0)-384>>2];break m}if(s){break h}g=k+1|0;if(!a){H[i+76>>2]=g;s=0;q=0;break l}b=H[c>>2];H[c>>2]=b+4;s=0;b=H[b>>2]}H[i+76>>2]=g;q=b;if((b|0)>=0){break l}q=0-q|0;n=n|8192;break l}q=Nd(i+76|0);if((q|0)<0){break d}g=H[i+76>>2]}f=0;m=-1;n:{if(I[g|0]!=46){b=g;u=0;break n}if(I[g+1|0]==42){o:{if(!(I[g+3|0]!=36|F[g+2|0]-48>>>0>=10)){H[((F[g+2|0]<<2)+e|0)-192>>2]=10;b=g+4|0;m=H[((F[g+2|0]<<3)+d|0)-384>>2];break o}if(s){break h}b=g+2|0;m=0;if(!a){break o}j=H[c>>2];H[c>>2]=j+4;m=H[j>>2]}H[i+76>>2]=b;u=(m^-1)>>>31|0;break n}H[i+76>>2]=g+1;m=Nd(i+76|0);b=H[i+76>>2];u=1}while(1){l=f;k=28;g=b;f=F[g|0];if(f-123>>>0<4294967238){break c}b=g+1|0;f=I[(f+N(l,58)|0)+13711|0];if(f-1>>>0<8){continue}break}H[i+76>>2]=b;p:{q:{if((f|0)!=27){if(!f){break c}if((p|0)>=0){H[(p<<2)+e>>2]=f;j=(p<<3)+d|0;f=H[j+4>>2];H[i+64>>2]=H[j>>2];H[i+68>>2]=f;break q}if(!a){break f}Md(i- -64|0,f,c);break p}if((p|0)>=0){break c}}f=0;if(!a){continue e}}j=n&-65537;n=n&8192?j:n;p=0;t=1132;k=r;r:{s:{t:{u:{v:{w:{x:{y:{z:{A:{B:{C:{D:{E:{F:{G:{f=F[g|0];f=l?(f&15)==3?f&-33:f:f;switch(f-88|0){case 11:break r;case 9:case 13:case 14:case 15:break s;case 27:break x;case 12:case 17:break A;case 23:break B;case 0:case 32:break C;case 24:break D;case 22:break E;case 29:break F;case 1:case 2:case 3:case 4:case 5:case 6:case 7:case 8:case 10:case 16:case 18:case 19:case 20:case 21:case 25:case 26:case 28:case 30:case 31:break g;default:break G}}H:{switch(f-65|0){case 0:case 4:case 5:case 6:break s;case 2:break v;case 1:case 3:break g;default:break H}}if((f|0)==83){break w}break g}l=H[i+64>>2];j=H[i+68>>2];t=1132;break z}f=0;I:{switch(l&255){case 0:H[H[i+64>>2]>>2]=o;continue e;case 1:H[H[i+64>>2]>>2]=o;continue e;case 2:h=H[i+64>>2];H[h>>2]=o;H[h+4>>2]=o>>31;continue e;case 3:G[H[i+64>>2]>>1]=o;continue e;case 4:F[H[i+64>>2]]=o;continue e;case 6:H[H[i+64>>2]>>2]=o;continue e;case 7:break I;default:continue e}}h=H[i+64>>2];H[h>>2]=o;H[h+4>>2]=o>>31;continue e}m=m>>>0<=8?8:m;n=n|8;f=120}h=r;z=f&32;l=H[i+64>>2];j=H[i+68>>2];if(l|j){while(1){h=h-1|0;F[h|0]=z|I[(l&15)+14240|0];w=!j&l>>>0>15|(j|0)!=0;g=j;j=g>>>4|0;l=(g&15)<<28|l>>>4;if(w){continue}break}}if(!(H[i+64>>2]|H[i+68>>2])|!(n&8)){break y}t=(f>>>4|0)+1132|0;p=2;break y}f=r;h=H[i+68>>2];j=h;l=H[i+64>>2];if(h|l){while(1){f=f-1|0;F[f|0]=l&7|48;w=!j&l>>>0>7|(j|0)!=0;h=j;j=h>>>3|0;l=(h&7)<<29|l>>>3;if(w){continue}break}}h=f;if(!(n&8)){break y}f=r-h|0;m=(f|0)<(m|0)?m:f+1|0;break y}h=H[i+68>>2];j=h;l=H[i+64>>2];if((h|0)<0){j=0-(((l|0)!=0)+j|0)|0;l=0-l|0;H[i+64>>2]=l;H[i+68>>2]=j;p=1;t=1132;break z}if(n&2048){p=1;t=1133;break z}p=n&1;t=p?1134:1132}g=r;J:{if(!j){h=l;break J}while(1){g=g-1|0;h=Pj(l,j,10,0);f=ga;A=g,B=l-Nj(h,f,10,0)|48,F[A|0]=B;w=j>>>0>9;l=h;j=f;if(w){continue}break}}if(h){while(1){g=g-1|0;f=(h>>>0)/10|0;F[g|0]=h-N(f,10)|48;j=h>>>0>9;h=f;if(j){continue}break}}h=g}if((m|0)<0?u:0){break d}n=u?n&-65537:n;f=H[i+64>>2];j=H[i+68>>2];if(!(m|(f|j)!=0)){h=r;k=h;m=0;break g}f=!(f|j)+(r-h|0)|0;m=(f|0)<(m|0)?m:f;break g}l=m>>>0>=2147483647?2147483647:m;k=l;n=(l|0)!=0;h=H[i+64>>2];h=h?h:1614;f=h;K:{L:{M:{N:{if(!(f&3)|!l){break N}while(1){if(!I[f|0]){break M}k=k-1|0;n=(k|0)!=0;f=f+1|0;if(!(f&3)){break N}if(k){continue}break}}if(!n){break L}if(!(!I[f|0]|k>>>0<4)){while(1){g=H[f>>2];if((g^-1)&g-16843009&-2139062144){break M}f=f+4|0;k=k-4|0;if(k>>>0>3){continue}break}}if(!k){break L}}while(1){if(!I[f|0]){break K}f=f+1|0;k=k-1|0;if(k){continue}break}}f=0}f=f?f-h|0:l;k=f+h|0;if((m|0)>=0){n=j;m=f;break g}n=j;m=f;if(I[k|0]){break d}break g}if(m){g=H[i+64>>2];break u}f=0;mb(a,32,q,0,n);break t}H[i+12>>2]=0;H[i+8>>2]=H[i+64>>2];g=i+8|0;H[i+64>>2]=g;m=-1}f=0;O:{while(1){h=H[g>>2];if(!h){break O}j=Ld(i+4|0,h);h=(j|0)<0;if(!(h|j>>>0>m-f>>>0)){g=g+4|0;f=f+j|0;if(m>>>0>f>>>0){continue}break O}break}if(h){break b}}k=61;if((f|0)<0){break c}mb(a,32,q,f,n);if(!f){f=0;break t}k=0;g=H[i+64>>2];while(1){h=H[g>>2];if(!h){break t}h=Ld(i+4|0,h);k=h+k|0;if(k>>>0>f>>>0){break t}Cb(a,i+4|0,h);g=g+4|0;if(f>>>0>k>>>0){continue}break}}mb(a,32,q,f,n^8192);f=(f|0)<(q|0)?q:f;continue e}if((m|0)<0?u:0){break d}v()}F[i+55|0]=H[i+64>>2];m=1;h=y;n=j;break g}g=I[f+1|0];f=f+1|0;continue}}if(a){break a}if(!s){break f}f=1;while(1){a=H[(f<<2)+e>>2];if(a){Md((f<<3)+d|0,a,c);o=1;f=f+1|0;if((f|0)!=10){continue}break a}break}o=1;if(f>>>0>=10){break a}while(1){if(H[(f<<2)+e>>2]){break h}f=f+1|0;if((f|0)!=10){continue}break}break a}k=28;break c}g=k-h|0;j=(g|0)<(m|0)?m:g;if((j|0)>(p^2147483647)){break d}k=61;l=j+p|0;f=(l|0)<(q|0)?q:l;if((x|0)<(f|0)){break c}mb(a,32,f,l,n);Cb(a,t,p);mb(a,48,f,l,n^65536);mb(a,48,j,g,0);Cb(a,h,g);mb(a,32,f,l,n^8192);continue}break}o=0;break a}k=61}H[3992]=k}o=-1}fa=i+80|0;return o}function gj(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,G=0,J=0,K=0,L=0,M=0,N=0,O=0,P=0,Q=0,R=0,S=0,T=0,U=0,V=0,W=0,X=0,Y=0;a:{if((e|0)==2){H[a+8>>2]=2;H[a- -64>>2]=f;O=a+32|0;e=H[O>>2];d=H[a+36>>2]-e|0;b:{if(d>>>0<=7){Aa(O,2-(d>>>2|0)|0);break b}if((d|0)==8){break b}H[a+36>>2]=e+8}d=H[a+56>>2];d=H[d+4>>2]-H[d>>2]|0;c:{if((d|0)<=0){f=0;break c}p=a+60|0;P=d>>2;V=(P|0)<=1?1:P;W=a+68|0;f=1;while(1){e=H[a+56>>2];d=H[e>>2];if(H[e+4>>2]-d>>2>>>0<=u>>>0){break a}k=fa-80|0;fa=k;n=-1;d:{e:{d=H[d+(u<<2)>>2];if((d|0)==-1){break e}m=H[p+32>>2];e=d+1|0;e=(e>>>0)%3|0?e:d-2|0;if((e|0)!=-1){n=H[H[m>>2]+(e<<2)>>2]}e=-1;d=d+((d>>>0)%3|0?-1:2)|0;if((d|0)!=-1){e=H[H[m>>2]+(d<<2)>>2]}d=H[p+36>>2];m=H[d>>2];d=H[d+4>>2]-m>>2;if(d>>>0<=n>>>0|d>>>0<=e>>>0){break e}f:{g:{h:{i:{j:{k:{h=H[m+(e<<2)>>2];d=H[m+(n<<2)>>2];if((h|0)>=(u|0)|(d|0)>=(u|0)){break k}e=(h<<3)+c|0;y=H[e+4>>2];n=(d<<3)+c|0;m=H[n+4>>2];J=H[e>>2];n=H[n>>2];if(!((J|0)!=(n|0)|(m|0)!=(y|0))){H[p+8>>2]=n;H[p+12>>2]=m;break j}e=H[H[p+4>>2]+(u<<2)>>2];H[k+72>>2]=0;H[k+76>>2]=0;g=k- -64|0;H[g>>2]=0;H[g+4>>2]=0;H[k+56>>2]=0;H[k+60>>2]=0;g=H[p>>2];if(!I[g+84|0]){e=H[H[g+68>>2]+(e<<2)>>2]}Va(g,e,F[g+24|0],k+56|0);e=H[H[p+4>>2]+(d<<2)>>2];H[k+48>>2]=0;H[k+52>>2]=0;H[k+40>>2]=0;H[k+44>>2]=0;H[k+32>>2]=0;H[k+36>>2]=0;g=H[p>>2];if(!I[g+84|0]){e=H[H[g+68>>2]+(e<<2)>>2]}Va(g,e,F[g+24|0],k+32|0);e=H[H[p+4>>2]+(h<<2)>>2];H[k+24>>2]=0;H[k+28>>2]=0;H[k+16>>2]=0;H[k+20>>2]=0;H[k+8>>2]=0;H[k+12>>2]=0;g=H[p>>2];if(!I[g+84|0]){e=H[H[g+68>>2]+(e<<2)>>2]}Va(g,e,F[g+24|0],k+8|0);Q=H[k+44>>2];e=H[k+16>>2];K=H[k+40>>2];g=K;i=H[k+20>>2]-(Q+(e>>>0>>0)|0)|0;s=e-g|0;e=Nj(s,i,s,i);h=ga;l=e;R=H[k+36>>2];e=H[k+8>>2];L=H[k+32>>2];g=L;o=H[k+12>>2]-(R+(e>>>0>>0)|0)|0;g=e-g|0;r=Nj(g,o,g,o);e=l+r|0;l=ga+h|0;l=e>>>0>>0?l+1|0:l;j=e;S=H[k+52>>2];e=H[k+24>>2];M=H[k+48>>2];h=M;r=H[k+28>>2]-(S+(e>>>0>>0)|0)|0;w=e-h|0;t=Nj(w,r,w,r);h=j+t|0;e=ga+l|0;x=h;t=h>>>0>>0?e+1|0:e;if(!(h|t)){break k}e=0;N=Pj(-1,2147483647,x,t);d=n>>31;T=d;l=d>>31;h=l;j=d^h;d=h^n;h=j-((h>>>0>d>>>0)+h|0)|0;A=d-l|0;d=m>>31;U=d;q=d>>31;B=q^m;C=B-q|0;l=d>>31;d=(l^d)-((q>>>0>B>>>0)+l|0)|0;l=(h|0)==(d|0)&A>>>0>C>>>0|d>>>0>>0;q=l?A:C;D=ga;d=l?h:d;if((D|0)==(d|0)&q>>>0>N>>>0|d>>>0>D>>>0){break f}l=H[k+64>>2];d=l;D=H[k+68>>2];d=Nj(d-K|0,D-((d>>>0>>0)+Q|0)|0,s,i);h=ga;j=d;A=H[k+56>>2];d=A;N=H[k+60>>2];q=Nj(d-L|0,N-((d>>>0>>0)+R|0)|0,g,o);d=j+q|0;j=ga+h|0;j=d>>>0>>0?j+1|0:j;h=d;B=H[k+72>>2];d=B;C=H[k+76>>2];q=Nj(d-M|0,C-((d>>>0>>0)+S|0)|0,w,r);h=h+q|0;d=ga+j|0;z=h;q=h>>>0>>0?d+1|0:d;d=o>>31;h=d;j=g^d;d=(d^o)-(d+(d>>>0>j>>>0)|0)|0;E=j-h|0;j=i>>31;h=j;j=h^s;G=j-h|0;h=(i^h)-((h>>>0>j>>>0)+h|0)|0;j=(d|0)==(h|0)&E>>>0>G>>>0|d>>>0>h>>>0;E=j?E:G;d=j?d:h;j=r>>31;h=j;j=h^w;G=j-h|0;h=(h^r)-((h>>>0>j>>>0)+h|0)|0;j=(d|0)==(h|0)&E>>>0>G>>>0|d>>>0>h>>>0;h=Pj(-1,2147483647,j?E:G,j?d:h)>>>0>>0;d=ga;if(h&(d|0)<=(q|0)|(d|0)<(q|0)){break f}h=1;d=0;e=l;s=Oj(Nj(s,i,z,q),ga,x,t);l=s+K|0;i=ga+Q|0;i=l>>>0>>0?i+1|0:i;i=D-((e>>>0>>0)+i|0)|0;e=e-l|0;e=Nj(e,i,e,i);l=ga;i=A;j=e;o=Oj(Nj(g,o,z,q),ga,x,t);g=o+L|0;e=ga+R|0;e=g>>>0>>0?e+1|0:e;e=N-((g>>>0>i>>>0)+e|0)|0;g=i-g|0;g=Nj(g,e,g,e);e=j+g|0;l=ga+l|0;l=e>>>0>>0?l+1|0:l;g=e;e=B;j=g;o=Oj(Nj(w,r,z,q),ga,x,t);g=o+M|0;i=ga+S|0;i=g>>>0>>0?i+1|0:i;i=C-((e>>>0>>0)+i|0)|0;e=e-g|0;i=Nj(e,i,e,i);g=j+i|0;e=ga+l|0;i=Nj(g,g>>>0>>0?e+1|0:e,x,t);e=ga;o=e;if(!e&i>>>0<=1){break i}r=i;g=o;while(1){e=d<<1|h>>>31;h=h<<1;d=e;l=!g&r>>>0>7|(g|0)!=0;r=(g&3)<<30|r>>>2;g=g>>>2|0;if(l){continue}break}break h}if((d|0)<(u|0)){d=d<<1}else{if((u|0)<=0){H[p+8>>2]=0;H[p+12>>2]=0;break j}d=(u<<1)-2|0}d=(d<<2)+c|0;H[p+8>>2]=H[d>>2];H[p+12>>2]=H[d+4>>2]}e=1;break f}d=o;h=i;if(h-1|0){break g}}while(1){e=Pj(i,o,h,d)+h|0;j=d+ga|0;j=e>>>0>>0?j+1|0:j;h=(j&1)<<31|e>>>1;d=j>>>1|0;e=Nj(h,d,h,d);g=ga;if((o|0)==(g|0)&e>>>0>i>>>0|g>>>0>o>>>0){continue}break}}e=H[p+20>>2];if(e){g=e-1|0;o=H[H[p+16>>2]+(g>>>3&536870908)>>2];H[p+20>>2]=g;r=y-m|0;l=(y>>31)-((m>>>0>y>>>0)+U|0)|0;i=Nj(z,q,r,l);s=ga;w=Nj(x,t,m,U);m=w+i|0;i=ga+s|0;i=m>>>0>>0?i+1|0:i;j=m;s=J-n|0;w=(J>>31)-((n>>>0>J>>>0)+T|0)|0;m=Nj(h,d,s,w);y=m;m=o>>>g&1;o=m?0-y|0:y;g=j+o|0;j=i;i=ga;j=j+(m?0-(i+((y|0)!=0)|0)|0:i)|0;X=p,Y=Oj(g,g>>>0>>0?j+1|0:j,x,t),H[X+12>>2]=Y;g=Nj(s,w,z,q);i=ga;j=g;g=Nj(x,t,n,T);n=j+g|0;i=ga+i|0;i=g>>>0>n>>>0?i+1|0:i;d=Nj(h,d,r,l);g=m?d:0-d|0;n=g+n|0;h=ga;l=(m?h:0-(((d|0)!=0)+h|0)|0)+i|0;X=p,Y=Oj(n,g>>>0>n>>>0?l+1|0:l,x,t),H[X+8>>2]=Y}e=(e|0)!=0}fa=k+80|0;break d}Ea();v()}if(!e){break c}l:{if(H[a+8>>2]<=0){break l}n=H[O>>2];d=0;while(1){e=d<<2;f=H[e+W>>2];m=H[a+16>>2];m:{if((f|0)>(m|0)){H[e+n>>2]=m;break m}e=e+n|0;m=H[a+12>>2];if((m|0)>(f|0)){H[e>>2]=m;break m}H[e>>2]=f}d=d+1|0;f=H[a+8>>2];if((d|0)<(f|0)){continue}break}e=0;if((f|0)<=0){break l}d=u<<3;m=d+c|0;g=b+d|0;while(1){f=e<<2;d=f+m|0;f=H[f+g>>2]+H[f+n>>2]|0;H[d>>2]=f;n:{if((f|0)>H[a+16>>2]){f=f-H[a+20>>2]|0}else{if((f|0)>=H[a+12>>2]){break n}f=f+H[a+20>>2]|0}H[d>>2]=f}e=e+1|0;if((e|0)>2]){continue}break}}u=u+1|0;f=(P|0)>(u|0);if((u|0)!=(V|0)){continue}break}}a=f^1}else{a=0}return a&1}Ea();v()}function vj(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,G=0,J=0,K=0,L=0,M=0,N=0,O=0,P=0,Q=0,R=0,S=0,T=0,U=0,V=0,W=0,X=0,Y=0;a:{if((e|0)==2){H[a+8>>2]=2;H[a- -64>>2]=f;O=a+32|0;e=H[O>>2];d=H[a+36>>2]-e|0;b:{if(d>>>0<=7){Aa(O,2-(d>>>2|0)|0);break b}if((d|0)==8){break b}H[a+36>>2]=e+8}d=H[a+56>>2];d=H[d+4>>2]-H[d>>2]|0;c:{if((d|0)<=0){f=0;break c}o=a+60|0;P=d>>2;V=(P|0)<=1?1:P;W=a+68|0;f=1;while(1){d=H[a+56>>2];m=H[d>>2];if(H[d+4>>2]-m>>2>>>0<=u>>>0){break a}k=fa-80|0;fa=k;e=-1;m=H[m+(u<<2)>>2];d=-1;d:{if((m|0)==-1){break d}d=m+1|0;e=(d>>>0)%3|0?d:m-2|0;d=m-1|0;if((m>>>0)%3|0){break d}d=m+2|0}l=H[o+36>>2];m=H[l>>2];e:{f:{g:{h:{i:{l=H[l+4>>2]-m>>2;g=e<<2;e=H[H[o+32>>2]+28>>2];j=H[g+e>>2];if(l>>>0<=j>>>0){break i}e=H[e+(d<<2)>>2];if(e>>>0>=l>>>0){break i}d=H[m+(j<<2)>>2];j:{k:{j=H[m+(e<<2)>>2];if((j|0)>=(u|0)|(d|0)>=(u|0)){break k}e=(j<<3)+c|0;w=H[e+4>>2];m=(d<<3)+c|0;l=H[m+4>>2];A=H[e>>2];m=H[m>>2];if(!((A|0)!=(m|0)|(l|0)!=(w|0))){H[o+8>>2]=m;H[o+12>>2]=l;break j}t=H[H[o+4>>2]+(u<<2)>>2];H[k+72>>2]=0;H[k+76>>2]=0;e=k- -64|0;H[e>>2]=0;H[e+4>>2]=0;H[k+56>>2]=0;H[k+60>>2]=0;e=H[o>>2];if(!I[e+84|0]){t=H[H[e+68>>2]+(t<<2)>>2]}Va(e,t,F[e+24|0],k+56|0);t=H[H[o+4>>2]+(d<<2)>>2];H[k+48>>2]=0;H[k+52>>2]=0;H[k+40>>2]=0;H[k+44>>2]=0;H[k+32>>2]=0;H[k+36>>2]=0;e=H[o>>2];if(!I[e+84|0]){t=H[H[e+68>>2]+(t<<2)>>2]}Va(e,t,F[e+24|0],k+32|0);t=H[H[o+4>>2]+(j<<2)>>2];H[k+24>>2]=0;H[k+28>>2]=0;H[k+16>>2]=0;H[k+20>>2]=0;H[k+8>>2]=0;H[k+12>>2]=0;e=H[o>>2];if(!I[e+84|0]){t=H[H[e+68>>2]+(t<<2)>>2]}Va(e,t,F[e+24|0],k+8|0);Q=H[k+44>>2];e=H[k+16>>2];z=H[k+40>>2];j=z;h=H[k+20>>2]-(Q+(e>>>0>>0)|0)|0;s=e-j|0;e=Nj(s,h,s,h);r=ga;g=e;R=H[k+36>>2];e=H[k+8>>2];L=H[k+32>>2];j=L;n=H[k+12>>2]-(R+(e>>>0>>0)|0)|0;j=e-j|0;p=Nj(j,n,j,n);g=g+p|0;e=ga+r|0;e=g>>>0

>>0?e+1|0:e;i=g;S=H[k+52>>2];g=H[k+24>>2];M=H[k+48>>2];p=M;r=H[k+28>>2]-(S+(g>>>0

>>0)|0)|0;x=g-p|0;p=Nj(x,r,x,r);g=i+p|0;e=ga+e|0;y=g;p=g>>>0

>>0?e+1|0:e;if(!(g|p)){break k}t=0;N=Pj(-1,2147483647,y,p);d=m>>31;T=d;e=d>>31;g=d^e;d=e^m;g=g-((e>>>0>d>>>0)+e|0)|0;C=d-e|0;d=l>>31;U=d;q=d>>31;D=q^l;E=D-q|0;e=d>>31;d=(e^d)-((q>>>0>D>>>0)+e|0)|0;e=(g|0)==(d|0)&C>>>0>E>>>0|d>>>0>>0;q=e?C:E;G=ga;d=e?g:d;if((G|0)==(d|0)&q>>>0>N>>>0|d>>>0>G>>>0){break e}e=H[k+64>>2];G=H[k+68>>2];d=Nj(e-z|0,G-((e>>>0>>0)+Q|0)|0,s,h);g=ga;i=d;C=H[k+56>>2];d=C;N=H[k+60>>2];q=Nj(d-L|0,N-((d>>>0>>0)+R|0)|0,j,n);d=i+q|0;i=ga+g|0;i=d>>>0>>0?i+1|0:i;g=d;D=H[k+72>>2];d=D;E=H[k+76>>2];q=Nj(d-M|0,E-((d>>>0>>0)+S|0)|0,x,r);g=g+q|0;d=ga+i|0;B=g;q=g>>>0>>0?d+1|0:d;d=n>>31;g=d;i=d^j;d=(d^n)-(d+(d>>>0>i>>>0)|0)|0;J=i-g|0;i=h>>31;g=i;i=g^s;K=i-g|0;g=(h^g)-((g>>>0>i>>>0)+g|0)|0;i=(d|0)==(g|0)&J>>>0>K>>>0|d>>>0>g>>>0;J=i?J:K;d=i?d:g;i=r>>31;g=i;i=g^x;K=i-g|0;g=(g^r)-((g>>>0>i>>>0)+g|0)|0;i=(d|0)==(g|0)&J>>>0>K>>>0|d>>>0>g>>>0;g=Pj(-1,2147483647,i?J:K,i?d:g)>>>0>>0;d=ga;if(g&(d|0)<=(q|0)|(d|0)<(q|0)){break e}g=1;d=0;i=z;z=Oj(Nj(s,h,B,q),ga,y,p);s=i+z|0;h=ga+Q|0;h=s>>>0>>0?h+1|0:h;h=G-((e>>>0>>0)+h|0)|0;e=e-s|0;e=Nj(e,h,e,h);s=ga;h=C;i=e;n=Oj(Nj(j,n,B,q),ga,y,p);j=n+L|0;e=ga+R|0;e=j>>>0>>0?e+1|0:e;e=N-((h>>>0>>0)+e|0)|0;j=h-j|0;h=Nj(j,e,j,e);j=i+h|0;e=ga+s|0;e=h>>>0>j>>>0?e+1|0:e;h=j;j=e;e=D;i=h;r=Oj(Nj(x,r,B,q),ga,y,p);n=r+M|0;h=ga+S|0;h=n>>>0>>0?h+1|0:h;h=E-((e>>>0>>0)+h|0)|0;e=e-n|0;n=Nj(e,h,e,h);h=i+n|0;e=ga+j|0;h=Nj(h,h>>>0>>0?e+1|0:e,y,p);e=ga;n=e;if(!e&h>>>0<=1){break h}r=h;j=n;while(1){e=d<<1|g>>>31;g=g<<1;d=e;s=!j&r>>>0>7|(j|0)!=0;r=(j&3)<<30|r>>>2;j=j>>>2|0;if(s){continue}break}break g}if((d|0)<(u|0)){d=d<<1}else{if((u|0)<=0){H[o+8>>2]=0;H[o+12>>2]=0;break j}d=(u<<1)-2|0}d=(d<<2)+c|0;H[o+8>>2]=H[d>>2];H[o+12>>2]=H[d+4>>2]}t=1;break e}Ea();v()}d=n;g=h;if(g-1|0){break f}}while(1){e=Pj(h,n,g,d)+g|0;i=d+ga|0;i=e>>>0>>0?i+1|0:i;g=(i&1)<<31|e>>>1;d=i>>>1|0;e=Nj(g,d,g,d);j=ga;if((n|0)==(j|0)&e>>>0>h>>>0|j>>>0>n>>>0){continue}break}}j=H[o+20>>2];if(j){e=j-1|0;n=H[H[o+16>>2]+(e>>>3&536870908)>>2];H[o+20>>2]=e;r=w-l|0;s=(w>>31)-((l>>>0>w>>>0)+U|0)|0;h=Nj(B,q,r,s);x=ga;w=Nj(y,p,l,U);l=w+h|0;h=ga+x|0;h=l>>>0>>0?h+1|0:h;i=l;x=A-m|0;w=(A>>31)-((m>>>0>A>>>0)+T|0)|0;l=Nj(g,d,x,w);A=l;e=n>>>e&1;n=e?0-l|0:l;l=i+n|0;i=h;h=ga;i=i+(e?0-(h+((A|0)!=0)|0)|0:h)|0;X=o,Y=Oj(l,l>>>0>>0?i+1|0:i,y,p),H[X+12>>2]=Y;l=Nj(x,w,B,q);h=ga;n=l;l=Nj(y,p,m,T);m=n+l|0;h=ga+h|0;h=m>>>0>>0?h+1|0:h;d=Nj(g,d,r,s);l=e?d:0-d|0;m=l+m|0;g=ga;e=(e?g:0-(((d|0)!=0)+g|0)|0)+h|0;X=o,Y=Oj(m,m>>>0>>0?e+1|0:e,y,p),H[X+8>>2]=Y}t=(j|0)!=0}fa=k+80|0;if(!t){break c}l:{if(H[a+8>>2]<=0){break l}m=H[O>>2];d=0;while(1){e=d<<2;f=H[e+W>>2];l=H[a+16>>2];m:{if((f|0)>(l|0)){H[e+m>>2]=l;break m}e=e+m|0;l=H[a+12>>2];if((l|0)>(f|0)){H[e>>2]=l;break m}H[e>>2]=f}d=d+1|0;f=H[a+8>>2];if((d|0)<(f|0)){continue}break}e=0;if((f|0)<=0){break l}d=u<<3;l=d+c|0;j=b+d|0;while(1){f=e<<2;d=f+l|0;f=H[f+j>>2]+H[f+m>>2]|0;H[d>>2]=f;n:{if((f|0)>H[a+16>>2]){f=f-H[a+20>>2]|0}else{if((f|0)>=H[a+12>>2]){break n}f=f+H[a+20>>2]|0}H[d>>2]=f}e=e+1|0;if((e|0)>2]){continue}break}}u=u+1|0;f=(P|0)>(u|0);if((u|0)!=(V|0)){continue}break}}a=f^1}else{a=0}return a&1}Ea();v()}function cb(a,b){var c=0,d=0,e=0,f=0,g=0;e=fa-16|0;fa=e;H[a+12>>2]=b;H[a+8>>2]=0;H[a>>2]=0;H[a+4>>2]=0;d=a+16|0;H[d>>2]=0;H[d+4>>2]=0;F[d+5|0]=0;F[d+6|0]=0;F[d+7|0]=0;F[d+8|0]=0;F[d+9|0]=0;F[d+10|0]=0;F[d+11|0]=0;F[d+12|0]=0;c=d+16|0;H[c>>2]=0;H[c+4>>2]=0;F[c+5|0]=0;F[c+6|0]=0;F[c+7|0]=0;F[c+8|0]=0;F[c+9|0]=0;F[c+10|0]=0;F[c+11|0]=0;F[c+12|0]=0;c=d+32|0;H[c>>2]=0;H[c+4>>2]=0;F[c+5|0]=0;F[c+6|0]=0;F[c+7|0]=0;F[c+8|0]=0;F[c+9|0]=0;F[c+10|0]=0;F[c+11|0]=0;F[c+12|0]=0;c=d+48|0;H[c>>2]=0;H[c+4>>2]=0;F[c+5|0]=0;F[c+6|0]=0;F[c+7|0]=0;F[c+8|0]=0;F[c+9|0]=0;F[c+10|0]=0;F[c+11|0]=0;F[c+12|0]=0;c=d- -64|0;H[c>>2]=0;H[c+4>>2]=0;F[c+5|0]=0;F[c+6|0]=0;F[c+7|0]=0;F[c+8|0]=0;F[c+9|0]=0;F[c+10|0]=0;F[c+11|0]=0;F[c+12|0]=0;c=d+80|0;H[c>>2]=0;H[c+4>>2]=0;F[c+5|0]=0;F[c+6|0]=0;F[c+7|0]=0;F[c+8|0]=0;F[c+9|0]=0;F[c+10|0]=0;F[c+11|0]=0;F[c+12|0]=0;c=d+96|0;H[c>>2]=0;H[c+4>>2]=0;F[c+5|0]=0;F[c+6|0]=0;F[c+7|0]=0;F[c+8|0]=0;F[c+9|0]=0;F[c+10|0]=0;F[c+11|0]=0;F[c+12|0]=0;c=d+112|0;H[c>>2]=0;H[c+4>>2]=0;F[c+5|0]=0;F[c+6|0]=0;F[c+7|0]=0;F[c+8|0]=0;F[c+9|0]=0;F[c+10|0]=0;F[c+11|0]=0;F[c+12|0]=0;c=d+128|0;H[c>>2]=0;H[c+4>>2]=0;F[c+5|0]=0;F[c+6|0]=0;F[c+7|0]=0;F[c+8|0]=0;F[c+9|0]=0;F[c+10|0]=0;F[c+11|0]=0;F[c+12|0]=0;c=d+144|0;H[c>>2]=0;H[c+4>>2]=0;F[c+5|0]=0;F[c+6|0]=0;F[c+7|0]=0;F[c+8|0]=0;F[c+9|0]=0;F[c+10|0]=0;F[c+11|0]=0;F[c+12|0]=0;c=d+160|0;H[c>>2]=0;H[c+4>>2]=0;F[c+5|0]=0;F[c+6|0]=0;F[c+7|0]=0;F[c+8|0]=0;F[c+9|0]=0;F[c+10|0]=0;F[c+11|0]=0;F[c+12|0]=0;c=d+176|0;H[c>>2]=0;H[c+4>>2]=0;F[c+5|0]=0;F[c+6|0]=0;F[c+7|0]=0;F[c+8|0]=0;F[c+9|0]=0;F[c+10|0]=0;F[c+11|0]=0;F[c+12|0]=0;c=d+192|0;H[c>>2]=0;H[c+4>>2]=0;F[c+5|0]=0;F[c+6|0]=0;F[c+7|0]=0;F[c+8|0]=0;F[c+9|0]=0;F[c+10|0]=0;F[c+11|0]=0;F[c+12|0]=0;c=d+208|0;H[c>>2]=0;H[c+4>>2]=0;F[c+5|0]=0;F[c+6|0]=0;F[c+7|0]=0;F[c+8|0]=0;F[c+9|0]=0;F[c+10|0]=0;F[c+11|0]=0;F[c+12|0]=0;c=d+224|0;H[c>>2]=0;H[c+4>>2]=0;F[c+5|0]=0;F[c+6|0]=0;F[c+7|0]=0;F[c+8|0]=0;F[c+9|0]=0;F[c+10|0]=0;F[c+11|0]=0;F[c+12|0]=0;c=d+240|0;H[c>>2]=0;H[c+4>>2]=0;F[c+5|0]=0;F[c+6|0]=0;F[c+7|0]=0;F[c+8|0]=0;F[c+9|0]=0;F[c+10|0]=0;F[c+11|0]=0;F[c+12|0]=0;c=d+256|0;H[c>>2]=0;H[c+4>>2]=0;F[c+5|0]=0;F[c+6|0]=0;F[c+7|0]=0;F[c+8|0]=0;F[c+9|0]=0;F[c+10|0]=0;F[c+11|0]=0;F[c+12|0]=0;c=d+272|0;H[c>>2]=0;H[c+4>>2]=0;F[c+5|0]=0;F[c+6|0]=0;F[c+7|0]=0;F[c+8|0]=0;F[c+9|0]=0;F[c+10|0]=0;F[c+11|0]=0;F[c+12|0]=0;c=d+288|0;H[c>>2]=0;H[c+4>>2]=0;F[c+5|0]=0;F[c+6|0]=0;F[c+7|0]=0;F[c+8|0]=0;F[c+9|0]=0;F[c+10|0]=0;F[c+11|0]=0;F[c+12|0]=0;c=d+304|0;H[c>>2]=0;H[c+4>>2]=0;F[c+5|0]=0;F[c+6|0]=0;F[c+7|0]=0;F[c+8|0]=0;F[c+9|0]=0;F[c+10|0]=0;F[c+11|0]=0;F[c+12|0]=0;c=d+320|0;H[c>>2]=0;H[c+4>>2]=0;F[c+5|0]=0;F[c+6|0]=0;F[c+7|0]=0;F[c+8|0]=0;F[c+9|0]=0;F[c+10|0]=0;F[c+11|0]=0;F[c+12|0]=0;c=d+336|0;H[c>>2]=0;H[c+4>>2]=0;F[c+5|0]=0;F[c+6|0]=0;F[c+7|0]=0;F[c+8|0]=0;F[c+9|0]=0;F[c+10|0]=0;F[c+11|0]=0;F[c+12|0]=0;c=d+352|0;H[c>>2]=0;H[c+4>>2]=0;F[c+5|0]=0;F[c+6|0]=0;F[c+7|0]=0;F[c+8|0]=0;F[c+9|0]=0;F[c+10|0]=0;F[c+11|0]=0;F[c+12|0]=0;c=d+368|0;H[c>>2]=0;H[c+4>>2]=0;F[c+5|0]=0;F[c+6|0]=0;F[c+7|0]=0;F[c+8|0]=0;F[c+9|0]=0;F[c+10|0]=0;F[c+11|0]=0;F[c+12|0]=0;c=d+384|0;H[c>>2]=0;H[c+4>>2]=0;F[c+5|0]=0;F[c+6|0]=0;F[c+7|0]=0;F[c+8|0]=0;F[c+9|0]=0;F[c+10|0]=0;F[c+11|0]=0;F[c+12|0]=0;c=d+400|0;H[c>>2]=0;H[c+4>>2]=0;F[c+5|0]=0;F[c+6|0]=0;F[c+7|0]=0;F[c+8|0]=0;F[c+9|0]=0;F[c+10|0]=0;F[c+11|0]=0;F[c+12|0]=0;c=d+416|0;H[c>>2]=0;H[c+4>>2]=0;F[c+5|0]=0;F[c+6|0]=0;F[c+7|0]=0;F[c+8|0]=0;F[c+9|0]=0;F[c+10|0]=0;F[c+11|0]=0;F[c+12|0]=0;c=d+432|0;H[c>>2]=0;H[c+4>>2]=0;F[c+5|0]=0;F[c+6|0]=0;F[c+7|0]=0;F[c+8|0]=0;F[c+9|0]=0;F[c+10|0]=0;F[c+11|0]=0;F[c+12|0]=0;c=d+448|0;H[c>>2]=0;H[c+4>>2]=0;F[c+5|0]=0;F[c+6|0]=0;F[c+7|0]=0;F[c+8|0]=0;F[c+9|0]=0;F[c+10|0]=0;F[c+11|0]=0;F[c+12|0]=0;c=d+464|0;H[c>>2]=0;H[c+4>>2]=0;F[c+5|0]=0;F[c+6|0]=0;F[c+7|0]=0;F[c+8|0]=0;F[c+9|0]=0;F[c+10|0]=0;F[c+11|0]=0;F[c+12|0]=0;c=d+480|0;H[c>>2]=0;H[c+4>>2]=0;F[c+5|0]=0;F[c+6|0]=0;F[c+7|0]=0;F[c+8|0]=0;F[c+9|0]=0;F[c+10|0]=0;F[c+11|0]=0;F[c+12|0]=0;d=d+496|0;H[d>>2]=0;H[d+4>>2]=0;F[d+5|0]=0;F[d+6|0]=0;F[d+7|0]=0;F[d+8|0]=0;F[d+9|0]=0;F[d+10|0]=0;F[d+11|0]=0;F[d+12|0]=0;H[a+528>>2]=0;H[a+532>>2]=0;F[a+533|0]=0;F[a+534|0]=0;F[a+535|0]=0;F[a+536|0]=0;F[a+537|0]=0;F[a+538|0]=0;F[a+539|0]=0;F[a+540|0]=0;H[a+544>>2]=0;H[a+548>>2]=0;H[a+560>>2]=0;H[a+552>>2]=0;H[a+556>>2]=0;H[a+564>>2]=0;H[a+568>>2]=0;H[a+580>>2]=0;H[a+572>>2]=0;H[a+576>>2]=0;H[a+584>>2]=0;H[a+588>>2]=0;H[a+600>>2]=0;H[a+592>>2]=0;H[a+596>>2]=0;H[a+612>>2]=0;H[a+604>>2]=0;H[a+608>>2]=0;g=a+628|0;a:{b:{if(b){if(b>>>0<1073741824){break b}va();v()}H[a+616>>2]=0;H[a+620>>2]=0;H[a+624>>2]=0;H[e+8>>2]=0;H[e>>2]=0;H[e+4>>2]=0;d=1;break a}d=b<<2;c=sa(d);H[a+604>>2]=c;f=c+d|0;H[a+612>>2]=f;ua(c,0,d);H[a+624>>2]=0;H[a+616>>2]=0;H[a+620>>2]=0;H[a+608>>2]=f;c=sa(d);H[a+616>>2]=c;f=c+d|0;H[a+624>>2]=f;ua(c,0,d);H[a+620>>2]=f;c=sa(d);H[e>>2]=c;f=c+d|0;H[e+8>>2]=f;ua(c,0,d);H[e+4>>2]=f;d=b<<5|1}wb(g,d,e);c=H[e>>2];if(c){H[e+4>>2]=c;ra(c)}H[e+8>>2]=0;H[e>>2]=0;H[e+4>>2]=0;if(b){b=b<<2;c=sa(b);H[e>>2]=c;f=b+c|0;H[e+8>>2]=f;ua(c,0,b);H[e+4>>2]=f}wb(a+640|0,d,e);b=H[e>>2];if(b){H[e+4>>2]=b;ra(b)}fa=e+16|0;return a}function ic(a,b,c,d){var e=0,f=0,g=0,h=0,i=0,j=0,k=O(0),l=0,m=O(0),n=0;a:{b:{if(!d){break b}c:{switch(H[a+28>>2]-1|0){case 0:e=I[a+24|0];f=c&255;if(e>>>0>>0?e:f){g=H[a>>2];e=H[g>>2];b=H[a+48>>2]+Nj(H[a+40>>2],H[a+44>>2],b,0)|0;b=e+b|0;g=H[g+4>>2];while(1){if(b>>>0>=g>>>0){break b}G[(h<<1)+d>>1]=F[b|0];b=b+1|0;h=h+1|0;e=I[a+24|0];if(h>>>0<(e>>>0>>0?e:f)>>>0){continue}break}}i=1;if(e>>>0>=f>>>0){break b}break a;case 1:e=I[a+24|0];f=c&255;if(e>>>0>>0?e:f){g=H[a>>2];e=H[g>>2];b=H[a+48>>2]+Nj(H[a+40>>2],H[a+44>>2],b,0)|0;b=e+b|0;g=H[g+4>>2];while(1){if(b>>>0>=g>>>0){break b}G[(h<<1)+d>>1]=I[b|0];b=b+1|0;h=h+1|0;e=I[a+24|0];if(h>>>0<(e>>>0>>0?e:f)>>>0){continue}break}}i=1;if(e>>>0>=f>>>0){break b}break a;case 2:e=I[a+24|0];f=c&255;if(e>>>0>>0?e:f){g=H[a>>2];e=H[g>>2];b=H[a+48>>2]+Nj(H[a+40>>2],H[a+44>>2],b,0)|0;b=e+b|0;g=H[g+4>>2];while(1){if(b>>>0>=g>>>0){break b}G[(h<<1)+d>>1]=J[b>>1];b=b+2|0;h=h+1|0;e=I[a+24|0];if(h>>>0<(e>>>0>>0?e:f)>>>0){continue}break}}i=1;if(e>>>0>=f>>>0){break b}break a;case 3:e=I[a+24|0];f=c&255;if(e>>>0>>0?e:f){g=H[a>>2];e=H[g>>2];b=H[a+48>>2]+Nj(H[a+40>>2],H[a+44>>2],b,0)|0;b=e+b|0;g=H[g+4>>2];while(1){if(b>>>0>=g>>>0){return 0}e=G[b>>1];if((e|0)<0){break b}G[(h<<1)+d>>1]=e;b=b+2|0;h=h+1|0;e=I[a+24|0];if(h>>>0<(e>>>0>>0?e:f)>>>0){continue}break}}i=1;if(e>>>0>=f>>>0){break b}break a;case 4:e=I[a+24|0];f=c&255;if(e>>>0>>0?e:f){g=H[a>>2];e=H[g>>2];b=H[a+48>>2]+Nj(H[a+40>>2],H[a+44>>2],b,0)|0;b=e+b|0;g=H[g+4>>2];while(1){if(b>>>0>=g>>>0){break b}e=H[b>>2];if(e-32768>>>0<4294901760){break b}G[(h<<1)+d>>1]=e;b=b+4|0;h=h+1|0;e=I[a+24|0];if(h>>>0<(e>>>0>>0?e:f)>>>0){continue}break}}i=1;if(e>>>0>=f>>>0){break b}break a;case 5:e=I[a+24|0];f=c&255;if(e>>>0>>0?e:f){g=H[a>>2];e=H[g>>2];b=H[a+48>>2]+Nj(H[a+40>>2],H[a+44>>2],b,0)|0;b=e+b|0;g=H[g+4>>2];while(1){if(b>>>0>=g>>>0){break b}e=H[b>>2];if(e>>>0>32767){break b}G[(h<<1)+d>>1]=e;b=b+4|0;h=h+1|0;e=I[a+24|0];if(h>>>0<(e>>>0>>0?e:f)>>>0){continue}break}}i=1;if(e>>>0>=f>>>0){break b}break a;case 6:e=I[a+24|0];f=c&255;if(e>>>0>>0?e:f){g=H[a>>2];e=H[g>>2];b=H[a+48>>2]+Nj(H[a+40>>2],H[a+44>>2],b,0)|0;b=e+b|0;g=H[g+4>>2];while(1){if(b>>>0>=g>>>0){break b}l=H[b>>2];e=H[b+4>>2]-(l>>>0<32768)|0;if((e|0)==-1&l-32768>>>0<4294901760|(e|0)!=-1){break b}G[(h<<1)+d>>1]=l;b=b+8|0;h=h+1|0;e=I[a+24|0];if(h>>>0<(e>>>0>>0?e:f)>>>0){continue}break}}i=1;if(e>>>0>=f>>>0){break b}break a;case 7:e=I[a+24|0];f=c&255;if(e>>>0>>0?e:f){g=H[a>>2];e=H[g>>2];b=H[a+48>>2]+Nj(H[a+40>>2],H[a+44>>2],b,0)|0;b=e+b|0;g=H[g+4>>2];while(1){if(b>>>0>=g>>>0){break b}e=H[b+4>>2];l=H[b>>2];if(!e&l>>>0>32767|e){break b}G[(h<<1)+d>>1]=l;b=b+8|0;h=h+1|0;e=I[a+24|0];if(h>>>0<(e>>>0>>0?e:f)>>>0){continue}break}}i=1;if(e>>>0>=f>>>0){break b}break a;case 8:d:{e:{e=I[a+24|0];c=c&255;if(!(c>>>0>e>>>0?e:c)){break e}i=H[a>>2];g=H[i>>2];b=H[a+48>>2]+Nj(H[a+40>>2],H[a+44>>2],b,0)|0;h=g+b|0;f=H[i+4>>2];e=f-g|0;if(!I[a+32|0]){i=0;if((b|0)>=(e|0)){break d}b=0;while(1){k=L[h>>2];if(k=O(32767)){break d}g=(b<<1)+d|0;if(m>1]=e;b=b+1|0;e=I[a+24|0];if(b>>>0>=(c>>>0>e>>>0?e:c)>>>0){break e}h=h+4|0;if(f>>>0>h>>>0){continue}break}break d}i=0;if((b|0)>=(e|0)){break d}b=0;while(1){k=L[h>>2];if(k=O(32767))){break d}if(kO(1)){break d}g=(b<<1)+d|0;j=T(+k*32767+.5);f:{if(P(j)<2147483648){e=~~j;break f}e=-2147483648}G[g>>1]=e;b=b+1|0;e=I[a+24|0];if(b>>>0>=(c>>>0>e>>>0?e:c)>>>0){break e}h=h+4|0;if(f>>>0>h>>>0){continue}break}break d}i=1;if(c>>>0<=e>>>0){break d}ua((e<<1)+d|0,0,c-e<<1)}return i;case 9:g:{h:{e=I[a+24|0];c=c&255;if(!(c>>>0>e>>>0?e:c)){break h}i=H[a>>2];g=H[i>>2];b=H[a+48>>2]+Nj(H[a+40>>2],H[a+44>>2],b,0)|0;h=g+b|0;f=H[i+4>>2];e=f-g|0;if(!I[a+32|0]){i=0;if((b|0)>=(e|0)){break g}b=0;while(1){j=M[h>>3];if(j<-32768|j!=j){break g}n=P(j);if(n==Y|j>=32767){break g}g=(b<<1)+d|0;if(n<2147483648){e=~~j}else{e=-2147483648}G[g>>1]=e;b=b+1|0;e=I[a+24|0];if(b>>>0>=(c>>>0>e>>>0?e:c)>>>0){break h}h=h+8|0;if(f>>>0>h>>>0){continue}break}break g}i=0;if((b|0)>=(e|0)){break g}b=0;while(1){j=M[h>>3];if(j<-32768|j!=j|(P(j)==Y|j>=32767)){break g}if(j<0|j>1){break g}g=(b<<1)+d|0;j=T(j*32767+.5);i:{if(P(j)<2147483648){e=~~j;break i}e=-2147483648}G[g>>1]=e;b=b+1|0;e=I[a+24|0];if(b>>>0>=(c>>>0>e>>>0?e:c)>>>0){break h}h=h+8|0;if(f>>>0>h>>>0){continue}break}break g}i=1;if(c>>>0<=e>>>0){break g}ua((e<<1)+d|0,0,c-e<<1)}return i;case 10:break c;default:break b}}e=I[a+24|0];f=c&255;if(e>>>0>>0?e:f){g=H[a>>2];e=H[g>>2];b=H[a+48>>2]+Nj(H[a+40>>2],H[a+44>>2],b,0)|0;b=e+b|0;g=H[g+4>>2];while(1){if(b>>>0>=g>>>0){break b}G[(h<<1)+d>>1]=I[b|0];b=b+1|0;h=h+1|0;e=I[a+24|0];if(h>>>0<(e>>>0>>0?e:f)>>>0){continue}break}}i=1;if(e>>>0>=f>>>0){break b}ua((e<<1)+d|0,0,(c&255)-e<<1)}return i}ua((e<<1)+d|0,0,(c&255)-e<<1);return 1}function Lj(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0;j=a;a:{b:{c:{d:{e:{f:{g:{h:{a=H[a+8>>2];switch(H[a+28>>2]-1|0){case 4:break c;case 5:break d;case 2:break e;case 3:break f;case 0:break g;case 1:break h;default:break a}}f=I[a+24|0];c=sa(f);a=H[j+16>>2];if(H[a+80>>2]){g=H[H[a>>2]>>2]+H[a+48>>2]|0}else{g=0}if(!b){break b}if(f){o=f&252;l=f&3;h=f>>>0<4;while(1){a=0;e=0;if(!h){while(1){k=g+(d<<2)|0;F[a+c|0]=H[k>>2];F[(a|1)+c|0]=H[k+4>>2];F[(a|2)+c|0]=H[k+8>>2];F[(a|3)+c|0]=H[k+12>>2];a=a+4|0;d=d+4|0;e=e+4|0;if((o|0)!=(e|0)){continue}break}}e=0;if(l){while(1){F[a+c|0]=H[g+(d<<2)>>2];a=a+1|0;d=d+1|0;e=e+1|0;if((l|0)!=(e|0)){continue}break}}ta(H[H[H[j+8>>2]+64>>2]>>2]+m|0,c,f);m=f+m|0;n=n+1|0;if((n|0)!=(b|0)){continue}break}break b}a=0;if((b|0)!=1){g=b&-2;while(1){ta(H[H[H[j+8>>2]+64>>2]>>2]+a|0,c,f);a=a+f|0;ta(a+H[H[H[j+8>>2]+64>>2]>>2]|0,c,f);a=a+f|0;d=d+2|0;if((g|0)!=(d|0)){continue}break}}if(!(b&1)){break b}ta(H[H[H[j+8>>2]+64>>2]>>2]+a|0,c,f);break b}f=I[a+24|0];c=sa(f);a=H[j+16>>2];if(H[a+80>>2]){g=H[H[a>>2]>>2]+H[a+48>>2]|0}else{g=0}if(!b){break b}if(f){o=f&252;l=f&3;h=f>>>0<4;while(1){a=0;e=0;if(!h){while(1){k=g+(d<<2)|0;F[a+c|0]=H[k>>2];F[(a|1)+c|0]=H[k+4>>2];F[(a|2)+c|0]=H[k+8>>2];F[(a|3)+c|0]=H[k+12>>2];a=a+4|0;d=d+4|0;e=e+4|0;if((o|0)!=(e|0)){continue}break}}e=0;if(l){while(1){F[a+c|0]=H[g+(d<<2)>>2];a=a+1|0;d=d+1|0;e=e+1|0;if((l|0)!=(e|0)){continue}break}}ta(H[H[H[j+8>>2]+64>>2]>>2]+m|0,c,f);m=f+m|0;n=n+1|0;if((n|0)!=(b|0)){continue}break}break b}a=0;if((b|0)!=1){g=b&-2;while(1){ta(H[H[H[j+8>>2]+64>>2]>>2]+a|0,c,f);a=a+f|0;ta(a+H[H[H[j+8>>2]+64>>2]>>2]|0,c,f);a=a+f|0;d=d+2|0;if((g|0)!=(d|0)){continue}break}}if(!(b&1)){break b}ta(H[H[H[j+8>>2]+64>>2]>>2]+a|0,c,f);break b}h=I[a+24|0];i=h<<1;c=sa(i);a=H[j+16>>2];if(H[a+80>>2]){g=H[H[a>>2]>>2]+H[a+48>>2]|0}else{g=0}if(!b){break b}if(h){o=h&252;l=h&3;h=h>>>0<4;while(1){a=0;e=0;if(!h){while(1){f=a<<1;k=g+(d<<2)|0;G[f+c>>1]=H[k>>2];G[(f|2)+c>>1]=H[k+4>>2];G[(f|4)+c>>1]=H[k+8>>2];G[(f|6)+c>>1]=H[k+12>>2];a=a+4|0;d=d+4|0;e=e+4|0;if((o|0)!=(e|0)){continue}break}}e=0;if(l){while(1){G[(a<<1)+c>>1]=H[g+(d<<2)>>2];a=a+1|0;d=d+1|0;e=e+1|0;if((l|0)!=(e|0)){continue}break}}ta(H[H[H[j+8>>2]+64>>2]>>2]+n|0,c,i);n=i+n|0;m=m+1|0;if((m|0)!=(b|0)){continue}break}break b}a=0;if((b|0)!=1){g=b&-2;while(1){ta(H[H[H[j+8>>2]+64>>2]>>2]+a|0,c,i);a=a+i|0;ta(a+H[H[H[j+8>>2]+64>>2]>>2]|0,c,i);a=a+i|0;d=d+2|0;if((g|0)!=(d|0)){continue}break}}if(!(b&1)){break b}ta(H[H[H[j+8>>2]+64>>2]>>2]+a|0,c,i);break b}h=I[a+24|0];i=h<<1;c=sa(i);a=H[j+16>>2];if(H[a+80>>2]){g=H[H[a>>2]>>2]+H[a+48>>2]|0}else{g=0}if(!b){break b}if(h){o=h&252;l=h&3;h=h>>>0<4;while(1){a=0;e=0;if(!h){while(1){f=a<<1;k=g+(d<<2)|0;G[f+c>>1]=H[k>>2];G[(f|2)+c>>1]=H[k+4>>2];G[(f|4)+c>>1]=H[k+8>>2];G[(f|6)+c>>1]=H[k+12>>2];a=a+4|0;d=d+4|0;e=e+4|0;if((o|0)!=(e|0)){continue}break}}e=0;if(l){while(1){G[(a<<1)+c>>1]=H[g+(d<<2)>>2];a=a+1|0;d=d+1|0;e=e+1|0;if((l|0)!=(e|0)){continue}break}}ta(H[H[H[j+8>>2]+64>>2]>>2]+n|0,c,i);n=i+n|0;m=m+1|0;if((m|0)!=(b|0)){continue}break}break b}a=0;if((b|0)!=1){g=b&-2;while(1){ta(H[H[H[j+8>>2]+64>>2]>>2]+a|0,c,i);a=a+i|0;ta(a+H[H[H[j+8>>2]+64>>2]>>2]|0,c,i);a=a+i|0;d=d+2|0;if((g|0)!=(d|0)){continue}break}}if(!(b&1)){break b}ta(H[H[H[j+8>>2]+64>>2]>>2]+a|0,c,i);break b}h=I[a+24|0];i=h<<2;c=sa(i);a=H[j+16>>2];if(H[a+80>>2]){g=H[H[a>>2]>>2]+H[a+48>>2]|0}else{g=0}if(!b){break b}if(h){o=h&252;l=h&3;h=h>>>0<4;while(1){a=0;e=0;if(!h){while(1){f=a<<2;k=g+(d<<2)|0;H[f+c>>2]=H[k>>2];H[(f|4)+c>>2]=H[k+4>>2];H[(f|8)+c>>2]=H[k+8>>2];H[(f|12)+c>>2]=H[k+12>>2];a=a+4|0;d=d+4|0;e=e+4|0;if((o|0)!=(e|0)){continue}break}}e=0;if(l){while(1){H[(a<<2)+c>>2]=H[g+(d<<2)>>2];a=a+1|0;d=d+1|0;e=e+1|0;if((l|0)!=(e|0)){continue}break}}ta(H[H[H[j+8>>2]+64>>2]>>2]+n|0,c,i);n=i+n|0;m=m+1|0;if((m|0)!=(b|0)){continue}break}break b}a=0;if((b|0)!=1){g=b&-2;while(1){ta(H[H[H[j+8>>2]+64>>2]>>2]+a|0,c,i);a=a+i|0;ta(a+H[H[H[j+8>>2]+64>>2]>>2]|0,c,i);a=a+i|0;d=d+2|0;if((g|0)!=(d|0)){continue}break}}if(!(b&1)){break b}ta(H[H[H[j+8>>2]+64>>2]>>2]+a|0,c,i);break b}h=I[a+24|0];i=h<<2;c=sa(i);a=H[j+16>>2];if(H[a+80>>2]){g=H[H[a>>2]>>2]+H[a+48>>2]|0}else{g=0}if(!b){break b}if(h){o=h&252;l=h&3;h=h>>>0<4;while(1){a=0;e=0;if(!h){while(1){f=a<<2;k=g+(d<<2)|0;H[f+c>>2]=H[k>>2];H[(f|4)+c>>2]=H[k+4>>2];H[(f|8)+c>>2]=H[k+8>>2];H[(f|12)+c>>2]=H[k+12>>2];a=a+4|0;d=d+4|0;e=e+4|0;if((o|0)!=(e|0)){continue}break}}e=0;if(l){while(1){H[(a<<2)+c>>2]=H[g+(d<<2)>>2];a=a+1|0;d=d+1|0;e=e+1|0;if((l|0)!=(e|0)){continue}break}}ta(H[H[H[j+8>>2]+64>>2]>>2]+n|0,c,i);n=i+n|0;m=m+1|0;if((m|0)!=(b|0)){continue}break}break b}a=0;if((b|0)!=1){g=b&-2;while(1){ta(H[H[H[j+8>>2]+64>>2]>>2]+a|0,c,i);a=a+i|0;ta(a+H[H[H[j+8>>2]+64>>2]>>2]|0,c,i);a=a+i|0;d=d+2|0;if((g|0)!=(d|0)){continue}break}}if(!(b&1)){break b}ta(H[H[H[j+8>>2]+64>>2]>>2]+a|0,c,i)}ra(c);c=1}return c|0}function gc(a,b,c,d){var e=0,f=0,g=0,h=0,i=0,j=0,k=O(0),l=0,m=O(0),n=0;a:{b:{if(!d){break b}c:{switch(H[a+28>>2]-1|0){case 0:e=I[a+24|0];f=c&255;if(e>>>0>>0?e:f){g=H[a>>2];e=H[g>>2];b=H[a+48>>2]+Nj(H[a+40>>2],H[a+44>>2],b,0)|0;b=e+b|0;g=H[g+4>>2];while(1){if(b>>>0>=g>>>0){break b}H[(h<<2)+d>>2]=F[b|0];b=b+1|0;h=h+1|0;e=I[a+24|0];if(h>>>0<(e>>>0>>0?e:f)>>>0){continue}break}}i=1;if(e>>>0>=f>>>0){break b}break a;case 1:e=I[a+24|0];f=c&255;if(e>>>0>>0?e:f){g=H[a>>2];e=H[g>>2];b=H[a+48>>2]+Nj(H[a+40>>2],H[a+44>>2],b,0)|0;b=e+b|0;g=H[g+4>>2];while(1){if(b>>>0>=g>>>0){break b}H[(h<<2)+d>>2]=I[b|0];b=b+1|0;h=h+1|0;e=I[a+24|0];if(h>>>0<(e>>>0>>0?e:f)>>>0){continue}break}}i=1;if(e>>>0>=f>>>0){break b}break a;case 2:e=I[a+24|0];f=c&255;if(e>>>0>>0?e:f){g=H[a>>2];e=H[g>>2];b=H[a+48>>2]+Nj(H[a+40>>2],H[a+44>>2],b,0)|0;b=e+b|0;g=H[g+4>>2];while(1){if(b>>>0>=g>>>0){break b}H[(h<<2)+d>>2]=G[b>>1];b=b+2|0;h=h+1|0;e=I[a+24|0];if(h>>>0<(e>>>0>>0?e:f)>>>0){continue}break}}i=1;if(e>>>0>=f>>>0){break b}break a;case 3:e=I[a+24|0];f=c&255;if(e>>>0>>0?e:f){g=H[a>>2];e=H[g>>2];b=H[a+48>>2]+Nj(H[a+40>>2],H[a+44>>2],b,0)|0;b=e+b|0;g=H[g+4>>2];while(1){if(b>>>0>=g>>>0){break b}H[(h<<2)+d>>2]=J[b>>1];b=b+2|0;h=h+1|0;e=I[a+24|0];if(h>>>0<(e>>>0>>0?e:f)>>>0){continue}break}}i=1;if(e>>>0>=f>>>0){break b}break a;case 4:e=I[a+24|0];f=c&255;if(e>>>0>>0?e:f){g=H[a>>2];e=H[g>>2];b=H[a+48>>2]+Nj(H[a+40>>2],H[a+44>>2],b,0)|0;b=e+b|0;g=H[g+4>>2];while(1){if(b>>>0>=g>>>0){break b}H[(h<<2)+d>>2]=H[b>>2];b=b+4|0;h=h+1|0;e=I[a+24|0];if(h>>>0<(e>>>0>>0?e:f)>>>0){continue}break}}i=1;if(e>>>0>=f>>>0){break b}break a;case 5:e=I[a+24|0];f=c&255;if(e>>>0>>0?e:f){g=H[a>>2];e=H[g>>2];b=H[a+48>>2]+Nj(H[a+40>>2],H[a+44>>2],b,0)|0;b=e+b|0;g=H[g+4>>2];while(1){if(b>>>0>=g>>>0){return 0}e=H[b>>2];if((e|0)<0){break b}H[(h<<2)+d>>2]=e;b=b+4|0;h=h+1|0;e=I[a+24|0];if(h>>>0<(e>>>0>>0?e:f)>>>0){continue}break}}i=1;if(e>>>0>=f>>>0){break b}break a;case 6:e=I[a+24|0];f=c&255;if(e>>>0>>0?e:f){g=H[a>>2];e=H[g>>2];b=H[a+48>>2]+Nj(H[a+40>>2],H[a+44>>2],b,0)|0;b=e+b|0;g=H[g+4>>2];while(1){if(b>>>0>=g>>>0){break b}l=H[b>>2];if((H[b+4>>2]-(l>>>0<2147483648)|0)!=-1){break b}H[(h<<2)+d>>2]=l;b=b+8|0;h=h+1|0;e=I[a+24|0];if(h>>>0<(e>>>0>>0?e:f)>>>0){continue}break}}i=1;if(e>>>0>=f>>>0){break b}break a;case 7:e=I[a+24|0];f=c&255;if(e>>>0>>0?e:f){g=H[a>>2];e=H[g>>2];b=H[a+48>>2]+Nj(H[a+40>>2],H[a+44>>2],b,0)|0;b=e+b|0;g=H[g+4>>2];while(1){if(b>>>0>=g>>>0){break b}e=H[b+4>>2];l=H[b>>2];if(!e&l>>>0>2147483647|e){break b}H[(h<<2)+d>>2]=l;b=b+8|0;h=h+1|0;e=I[a+24|0];if(h>>>0<(e>>>0>>0?e:f)>>>0){continue}break}}i=1;if(e>>>0>=f>>>0){break b}break a;case 8:d:{e:{e=I[a+24|0];c=c&255;if(!(c>>>0>e>>>0?e:c)){break e}i=H[a>>2];g=H[i>>2];b=H[a+48>>2]+Nj(H[a+40>>2],H[a+44>>2],b,0)|0;h=g+b|0;f=H[i+4>>2];e=f-g|0;if(!I[a+32|0]){i=0;if((b|0)>=(e|0)){break d}b=0;while(1){k=L[h>>2];if(k=O(2147483648)){break d}g=(b<<2)+d|0;if(m>2]=e;b=b+1|0;e=I[a+24|0];if(b>>>0>=(c>>>0>e>>>0?e:c)>>>0){break e}h=h+4|0;if(f>>>0>h>>>0){continue}break}break d}i=0;if((b|0)>=(e|0)){break d}b=0;while(1){k=L[h>>2];if(k=O(2147483648))){break d}if(kO(1)){break d}g=(b<<2)+d|0;j=T(+k*2147483647+.5);f:{if(P(j)<2147483648){e=~~j;break f}e=-2147483648}H[g>>2]=e;b=b+1|0;e=I[a+24|0];if(b>>>0>=(c>>>0>e>>>0?e:c)>>>0){break e}h=h+4|0;if(f>>>0>h>>>0){continue}break}break d}i=1;if(c>>>0<=e>>>0){break d}ua((e<<2)+d|0,0,c-e<<2)}return i;case 9:g:{h:{e=I[a+24|0];c=c&255;if(!(c>>>0>e>>>0?e:c)){break h}i=H[a>>2];g=H[i>>2];b=H[a+48>>2]+Nj(H[a+40>>2],H[a+44>>2],b,0)|0;h=g+b|0;f=H[i+4>>2];e=f-g|0;if(!I[a+32|0]){i=0;if((b|0)>=(e|0)){break g}b=0;while(1){j=M[h>>3];if(j<-2147483648|j!=j){break g}n=P(j);if(n==Y|j>=2147483647){break g}g=(b<<2)+d|0;if(n<2147483648){e=~~j}else{e=-2147483648}H[g>>2]=e;b=b+1|0;e=I[a+24|0];if(b>>>0>=(c>>>0>e>>>0?e:c)>>>0){break h}h=h+8|0;if(f>>>0>h>>>0){continue}break}break g}i=0;if((b|0)>=(e|0)){break g}b=0;while(1){j=M[h>>3];if(j<-2147483648|j!=j|(P(j)==Y|j>=2147483647)){break g}if(j<0|j>1){break g}g=(b<<2)+d|0;j=T(j*2147483647+.5);i:{if(P(j)<2147483648){e=~~j;break i}e=-2147483648}H[g>>2]=e;b=b+1|0;e=I[a+24|0];if(b>>>0>=(c>>>0>e>>>0?e:c)>>>0){break h}h=h+8|0;if(f>>>0>h>>>0){continue}break}break g}i=1;if(c>>>0<=e>>>0){break g}ua((e<<2)+d|0,0,c-e<<2)}return i;case 10:break c;default:break b}}e=I[a+24|0];f=c&255;if(e>>>0>>0?e:f){g=H[a>>2];e=H[g>>2];b=H[a+48>>2]+Nj(H[a+40>>2],H[a+44>>2],b,0)|0;b=e+b|0;g=H[g+4>>2];while(1){if(b>>>0>=g>>>0){break b}H[(h<<2)+d>>2]=I[b|0];b=b+1|0;h=h+1|0;e=I[a+24|0];if(h>>>0<(e>>>0>>0?e:f)>>>0){continue}break}}i=1;if(e>>>0>=f>>>0){break b}ua((e<<2)+d|0,0,(c&255)-e<<2)}return i}ua((e<<2)+d|0,0,(c&255)-e<<2);return 1}function hc(a,b,c,d){var e=0,f=0,g=0,h=0,i=0,j=0,k=O(0),l=0;a:{b:{if(!d){break b}c:{switch(H[a+28>>2]-1|0){case 0:e=I[a+24|0];f=c&255;if(e>>>0>>0?e:f){g=H[a>>2];e=H[g>>2];b=H[a+48>>2]+Nj(H[a+40>>2],H[a+44>>2],b,0)|0;b=e+b|0;g=H[g+4>>2];while(1){if(b>>>0>=g>>>0){return 0}e=F[b|0];if((e|0)<0){break b}G[(h<<1)+d>>1]=e&255;b=b+1|0;h=h+1|0;e=I[a+24|0];if(h>>>0<(e>>>0>>0?e:f)>>>0){continue}break}}j=1;if(e>>>0>=f>>>0){break b}break a;case 1:e=I[a+24|0];f=c&255;if(e>>>0>>0?e:f){g=H[a>>2];e=H[g>>2];b=H[a+48>>2]+Nj(H[a+40>>2],H[a+44>>2],b,0)|0;b=e+b|0;g=H[g+4>>2];while(1){if(b>>>0>=g>>>0){break b}G[(h<<1)+d>>1]=I[b|0];b=b+1|0;h=h+1|0;e=I[a+24|0];if(h>>>0<(e>>>0>>0?e:f)>>>0){continue}break}}j=1;if(e>>>0>=f>>>0){break b}break a;case 2:e=I[a+24|0];f=c&255;if(e>>>0>>0?e:f){g=H[a>>2];e=H[g>>2];b=H[a+48>>2]+Nj(H[a+40>>2],H[a+44>>2],b,0)|0;b=e+b|0;g=H[g+4>>2];while(1){if(b>>>0>=g>>>0){return 0}e=G[b>>1];if((e|0)<0){break b}G[(h<<1)+d>>1]=e;b=b+2|0;h=h+1|0;e=I[a+24|0];if(h>>>0<(e>>>0>>0?e:f)>>>0){continue}break}}j=1;if(e>>>0>=f>>>0){break b}break a;case 3:e=I[a+24|0];f=c&255;if(e>>>0>>0?e:f){g=H[a>>2];e=H[g>>2];b=H[a+48>>2]+Nj(H[a+40>>2],H[a+44>>2],b,0)|0;b=e+b|0;g=H[g+4>>2];while(1){if(b>>>0>=g>>>0){break b}G[(h<<1)+d>>1]=J[b>>1];b=b+2|0;h=h+1|0;e=I[a+24|0];if(h>>>0<(e>>>0>>0?e:f)>>>0){continue}break}}j=1;if(e>>>0>=f>>>0){break b}break a;case 4:e=I[a+24|0];f=c&255;if(e>>>0>>0?e:f){g=H[a>>2];e=H[g>>2];b=H[a+48>>2]+Nj(H[a+40>>2],H[a+44>>2],b,0)|0;b=e+b|0;g=H[g+4>>2];while(1){if(b>>>0>=g>>>0){break b}e=H[b>>2];if(e>>>0>65535){break b}G[(h<<1)+d>>1]=e;b=b+4|0;h=h+1|0;e=I[a+24|0];if(h>>>0<(e>>>0>>0?e:f)>>>0){continue}break}}j=1;if(e>>>0>=f>>>0){break b}break a;case 5:e=I[a+24|0];f=c&255;if(e>>>0>>0?e:f){g=H[a>>2];e=H[g>>2];b=H[a+48>>2]+Nj(H[a+40>>2],H[a+44>>2],b,0)|0;b=e+b|0;g=H[g+4>>2];while(1){if(b>>>0>=g>>>0){break b}e=H[b>>2];if(e>>>0>65535){break b}G[(h<<1)+d>>1]=e;b=b+4|0;h=h+1|0;e=I[a+24|0];if(h>>>0<(e>>>0>>0?e:f)>>>0){continue}break}}j=1;if(e>>>0>=f>>>0){break b}break a;case 6:e=I[a+24|0];f=c&255;if(e>>>0>>0?e:f){g=H[a>>2];e=H[g>>2];b=H[a+48>>2]+Nj(H[a+40>>2],H[a+44>>2],b,0)|0;b=e+b|0;g=H[g+4>>2];while(1){if(b>>>0>=g>>>0){break b}e=H[b+4>>2];l=H[b>>2];if(!e&l>>>0>65535|e){break b}G[(h<<1)+d>>1]=l;b=b+8|0;h=h+1|0;e=I[a+24|0];if(h>>>0<(e>>>0>>0?e:f)>>>0){continue}break}}j=1;if(e>>>0>=f>>>0){break b}break a;case 7:e=I[a+24|0];f=c&255;if(e>>>0>>0?e:f){g=H[a>>2];e=H[g>>2];b=H[a+48>>2]+Nj(H[a+40>>2],H[a+44>>2],b,0)|0;b=e+b|0;g=H[g+4>>2];while(1){if(b>>>0>=g>>>0){break b}e=H[b+4>>2];l=H[b>>2];if(!e&l>>>0>65535|e){break b}G[(h<<1)+d>>1]=l;b=b+8|0;h=h+1|0;e=I[a+24|0];if(h>>>0<(e>>>0>>0?e:f)>>>0){continue}break}}j=1;if(e>>>0>=f>>>0){break b}break a;case 8:d:{e:{e=I[a+24|0];c=c&255;if(!(c>>>0>e>>>0?e:c)){break e}j=H[a>>2];g=H[j>>2];b=H[a+48>>2]+Nj(H[a+40>>2],H[a+44>>2],b,0)|0;h=g+b|0;f=H[j+4>>2];e=f-g|0;if(!I[a+32|0]){j=0;if((b|0)>=(e|0)){break d}b=0;while(1){k=L[h>>2];if(k=O(65535))){break d}g=(b<<1)+d|0;if(k=O(0)){e=~~k>>>0}else{e=0}G[g>>1]=e;b=b+1|0;e=I[a+24|0];if(b>>>0>=(c>>>0>e>>>0?e:c)>>>0){break e}h=h+4|0;if(f>>>0>h>>>0){continue}break}break d}j=0;if((b|0)>=(e|0)){break d}b=0;while(1){k=L[h>>2];if(k=O(65535))){break d}if(k>O(1)){break d}g=(b<<1)+d|0;i=T(+k*65535+.5);f:{if(i<4294967296&i>=0){e=~~i>>>0;break f}e=0}G[g>>1]=e;b=b+1|0;e=I[a+24|0];if(b>>>0>=(c>>>0>e>>>0?e:c)>>>0){break e}h=h+4|0;if(f>>>0>h>>>0){continue}break}break d}j=1;if(c>>>0<=e>>>0){break d}ua((e<<1)+d|0,0,c-e<<1)}return j;case 9:g:{h:{e=I[a+24|0];c=c&255;if(!(c>>>0>e>>>0?e:c)){break h}j=H[a>>2];g=H[j>>2];b=H[a+48>>2]+Nj(H[a+40>>2],H[a+44>>2],b,0)|0;h=g+b|0;f=H[j+4>>2];e=f-g|0;if(!I[a+32|0]){j=0;if((b|0)>=(e|0)){break g}b=0;while(1){i=M[h>>3];if(i<0|i!=i|(P(i)==Y|i>=65535)){break g}g=(b<<1)+d|0;if(i<4294967296&i>=0){e=~~i>>>0}else{e=0}G[g>>1]=e;b=b+1|0;e=I[a+24|0];if(b>>>0>=(c>>>0>e>>>0?e:c)>>>0){break h}h=h+8|0;if(f>>>0>h>>>0){continue}break}break g}j=0;if((b|0)>=(e|0)){break g}b=0;while(1){i=M[h>>3];if(i<0|i!=i|(P(i)==Y|i>=65535)){break g}if(i>1){break g}g=(b<<1)+d|0;i=T(i*65535+.5);i:{if(i<4294967296&i>=0){e=~~i>>>0;break i}e=0}G[g>>1]=e;b=b+1|0;e=I[a+24|0];if(b>>>0>=(c>>>0>e>>>0?e:c)>>>0){break h}h=h+8|0;if(f>>>0>h>>>0){continue}break}break g}j=1;if(c>>>0<=e>>>0){break g}ua((e<<1)+d|0,0,c-e<<1)}return j;case 10:break c;default:break b}}e=I[a+24|0];f=c&255;if(e>>>0>>0?e:f){g=H[a>>2];e=H[g>>2];b=H[a+48>>2]+Nj(H[a+40>>2],H[a+44>>2],b,0)|0;b=e+b|0;g=H[g+4>>2];while(1){if(b>>>0>=g>>>0){break b}G[(h<<1)+d>>1]=I[b|0];b=b+1|0;h=h+1|0;e=I[a+24|0];if(h>>>0<(e>>>0>>0?e:f)>>>0){continue}break}}j=1;if(e>>>0>=f>>>0){break b}ua((e<<1)+d|0,0,(c&255)-e<<1)}return j}ua((e<<1)+d|0,0,(c&255)-e<<1);return 1}function Va(a,b,c,d){var e=0,f=0,g=0,h=0,i=0,j=O(0),k=0,l=0,m=0,n=O(0),o=0;a:{if(!d){break a}b:{c:{switch(H[a+28>>2]-1|0){case 0:e=I[a+24|0];f=c&255;if(e>>>0>>0?e:f){e=H[a>>2];h=H[e>>2];b=H[a+48>>2]+Nj(H[a+40>>2],H[a+44>>2],b,0)|0;b=h+b|0;h=H[e+4>>2];while(1){if(b>>>0>=h>>>0){break a}e=(g<<3)+d|0;i=F[b|0];H[e>>2]=i;H[e+4>>2]=i>>31;b=b+1|0;g=g+1|0;e=I[a+24|0];if(g>>>0<(e>>>0>>0?e:f)>>>0){continue}break}}if(e>>>0>=f>>>0){break a}d=(e<<3)+d|0;a=(c&255)-e|0;break b;case 1:e=I[a+24|0];f=c&255;if(e>>>0>>0?e:f){e=H[a>>2];h=H[e>>2];b=H[a+48>>2]+Nj(H[a+40>>2],H[a+44>>2],b,0)|0;b=h+b|0;h=H[e+4>>2];while(1){if(b>>>0>=h>>>0){break a}e=(g<<3)+d|0;H[e>>2]=I[b|0];H[e+4>>2]=0;b=b+1|0;g=g+1|0;e=I[a+24|0];if(g>>>0<(e>>>0>>0?e:f)>>>0){continue}break}}if(e>>>0>=f>>>0){break a}d=(e<<3)+d|0;a=(c&255)-e|0;break b;case 2:e=I[a+24|0];f=c&255;if(e>>>0>>0?e:f){e=H[a>>2];h=H[e>>2];b=H[a+48>>2]+Nj(H[a+40>>2],H[a+44>>2],b,0)|0;b=h+b|0;h=H[e+4>>2];while(1){if(b>>>0>=h>>>0){break a}e=(g<<3)+d|0;i=G[b>>1];H[e>>2]=i;H[e+4>>2]=i>>31;b=b+2|0;g=g+1|0;e=I[a+24|0];if(g>>>0<(e>>>0>>0?e:f)>>>0){continue}break}}if(e>>>0>=f>>>0){break a}d=(e<<3)+d|0;a=(c&255)-e|0;break b;case 3:e=I[a+24|0];f=c&255;if(e>>>0>>0?e:f){e=H[a>>2];h=H[e>>2];b=H[a+48>>2]+Nj(H[a+40>>2],H[a+44>>2],b,0)|0;b=h+b|0;h=H[e+4>>2];while(1){if(b>>>0>=h>>>0){break a}e=(g<<3)+d|0;H[e>>2]=J[b>>1];H[e+4>>2]=0;b=b+2|0;g=g+1|0;e=I[a+24|0];if(g>>>0<(e>>>0>>0?e:f)>>>0){continue}break}}if(e>>>0>=f>>>0){break a}d=(e<<3)+d|0;a=(c&255)-e|0;break b;case 4:e=I[a+24|0];f=c&255;if(e>>>0>>0?e:f){e=H[a>>2];h=H[e>>2];b=H[a+48>>2]+Nj(H[a+40>>2],H[a+44>>2],b,0)|0;b=h+b|0;h=H[e+4>>2];while(1){if(b>>>0>=h>>>0){break a}e=(g<<3)+d|0;i=H[b>>2];H[e>>2]=i;H[e+4>>2]=i>>31;b=b+4|0;g=g+1|0;e=I[a+24|0];if(g>>>0<(e>>>0>>0?e:f)>>>0){continue}break}}if(e>>>0>=f>>>0){break a}d=(e<<3)+d|0;a=(c&255)-e|0;break b;case 5:e=I[a+24|0];f=c&255;if(e>>>0>>0?e:f){e=H[a>>2];h=H[e>>2];b=H[a+48>>2]+Nj(H[a+40>>2],H[a+44>>2],b,0)|0;b=h+b|0;h=H[e+4>>2];while(1){if(b>>>0>=h>>>0){break a}e=(g<<3)+d|0;H[e>>2]=H[b>>2];H[e+4>>2]=0;b=b+4|0;g=g+1|0;e=I[a+24|0];if(g>>>0<(e>>>0>>0?e:f)>>>0){continue}break}}if(e>>>0>=f>>>0){break a}d=(e<<3)+d|0;a=(c&255)-e|0;break b;case 6:e=I[a+24|0];f=c&255;if(e>>>0>>0?e:f){e=H[a>>2];h=H[e>>2];b=H[a+48>>2]+Nj(H[a+40>>2],H[a+44>>2],b,0)|0;b=h+b|0;h=H[e+4>>2];while(1){if(b>>>0>=h>>>0){break a}i=H[b+4>>2];e=(g<<3)+d|0;H[e>>2]=H[b>>2];H[e+4>>2]=i;b=b+8|0;g=g+1|0;e=I[a+24|0];if(g>>>0<(e>>>0>>0?e:f)>>>0){continue}break}}if(e>>>0>=f>>>0){break a}d=(e<<3)+d|0;a=(c&255)-e|0;break b;case 7:e=I[a+24|0];f=c&255;if(e>>>0>>0?e:f){e=H[a>>2];h=H[e>>2];b=H[a+48>>2]+Nj(H[a+40>>2],H[a+44>>2],b,0)|0;b=h+b|0;h=H[e+4>>2];while(1){if(b>>>0>=h>>>0){break a}e=H[b>>2];i=H[b+4>>2];if((i|0)<0){break a}l=(g<<3)+d|0;H[l>>2]=e;H[l+4>>2]=i;b=b+8|0;g=g+1|0;e=I[a+24|0];if(g>>>0<(e>>>0>>0?e:f)>>>0){continue}break}}if(e>>>0>=f>>>0){break a}d=(e<<3)+d|0;a=(c&255)-e|0;break b;case 8:d:{e=I[a+24|0];f=c&255;if(!(e>>>0>>0?e:f)){break d}if(I[a+32|0]){break a}b=H[a+48>>2]+Nj(H[a+40>>2],H[a+44>>2],b,0)|0;e=H[a>>2];i=H[e+4>>2];e=H[e>>2];if((b|0)>=(i-e|0)){break a}g=b+e|0;h=c&255;b=0;while(1){j=L[g>>2];if(j>=O(0x8000000000000000)|j=O(1)?~~(j>O(0)?O(R(O(T(O(j*O(2.3283064365386963e-10)))),O(4294967296))):O(U(O(O(j-O(~~j>>>0>>>0))*O(2.3283064365386963e-10)))))>>>0:0;m=~~j>>>0;break e}l=-2147483648;m=0}H[e>>2]=m;H[e+4>>2]=l;b=b+1|0;e=I[a+24|0];if(b>>>0>=(e>>>0>>0?e:h)>>>0){break d}g=g+4|0;if(i>>>0>g>>>0){continue}break}break a}if(e>>>0>=f>>>0){break a}d=(e<<3)+d|0;a=(c&255)-e|0;break b;case 9:f:{e=I[a+24|0];f=c&255;if(!(e>>>0>>0?e:f)){break f}if(I[a+32|0]){break a}b=H[a+48>>2]+Nj(H[a+40>>2],H[a+44>>2],b,0)|0;e=H[a>>2];i=H[e+4>>2];e=H[e>>2];if((b|0)>=(i-e|0)){break a}g=b+e|0;h=c&255;b=0;while(1){k=M[g>>3];if(k>=0x8000000000000000|k<-0x8000000000000000|k!=k){break a}o=P(k);if(o==Y){break a}e=(b<<3)+d|0;g:{if(o<0x8000000000000000){l=P(k)>=1?~~(k>0?R(T(k*2.3283064365386963e-10),4294967295):U((k-+(~~k>>>0>>>0))*2.3283064365386963e-10))>>>0:0;m=~~k>>>0;break g}l=-2147483648;m=0}H[e>>2]=m;H[e+4>>2]=l;b=b+1|0;e=I[a+24|0];if(b>>>0>=(e>>>0>>0?e:h)>>>0){break f}g=g+8|0;if(i>>>0>g>>>0){continue}break}break a}if(e>>>0>=f>>>0){break a}d=(e<<3)+d|0;a=(c&255)-e|0;break b;case 10:break c;default:break a}}e=I[a+24|0];f=c&255;if(e>>>0>>0?e:f){e=H[a>>2];h=H[e>>2];b=H[a+48>>2]+Nj(H[a+40>>2],H[a+44>>2],b,0)|0;b=h+b|0;h=H[e+4>>2];while(1){if(b>>>0>=h>>>0){break a}e=(g<<3)+d|0;H[e>>2]=I[b|0];H[e+4>>2]=0;b=b+1|0;g=g+1|0;e=I[a+24|0];if(g>>>0<(e>>>0>>0?e:f)>>>0){continue}break}}if(e>>>0>=f>>>0){break a}d=(e<<3)+d|0;a=(c&255)-e|0}ua(d,0,a<<3)}}function ed(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0;g=fa-96|0;fa=g;n=H[a+4>>2];e=H[n+32>>2];k=H[e+8>>2];f=k;l=H[e+12>>2];d=l;c=H[e+20>>2];o=H[e+16>>2];a:{if((d|0)<=(c|0)&o>>>0>=f>>>0|(c|0)>(d|0)){break a}m=H[e>>2];p=I[m+o|0];f=o+1|0;d=f?c:c+1|0;H[e+16>>2]=f;H[e+20>>2]=d;if((d|0)>=(l|0)&f>>>0>=k>>>0|(d|0)>(l|0)){break a}j=I[f+m|0];f=o+2|0;d=f>>>0<2?c+1|0:c;i=f;H[e+16>>2]=f;H[e+20>>2]=d;q=p<<24>>24;b:{if((q|0)>=0){f=H[a+216>>2];if(p>>>0>=(H[a+220>>2]-f|0)/144>>>0){break a}f=f+N(p,144)|0;if(H[f>>2]<0){break b}break a}if(H[a+212>>2]>=0){break a}f=a+212|0}H[f>>2]=b;c:{d:{e:{f:{g:{h:{f=J[n+36>>1];i:{if(((f<<8|f>>>8)&65535)>>>0>=258){if((d|0)>=(l|0)&i>>>0>=k>>>0|(d|0)>(l|0)){break a}f=I[i+m|0];d=o+3|0;c=d>>>0<3?c+1|0:c;H[e+16>>2]=d;H[e+20>>2]=c;c=f>>>0>1;if(c){break a}c=c?0:f;if(!j){break i}if(!c){break h}break a}if(j){break g}c=0}if((q|0)<0){e=a+184|0}else{e=H[a+216>>2]+N(p,144)|0;F[e+100|0]=0;e=e+104|0}if((c|0)!=1){break e}c=fa-112|0;fa=c;m=H[H[a+4>>2]+44>>2];d=sa(120);H[d>>2]=12172;H[d+4>>2]=0;H[d+116>>2]=0;H[d+112>>2]=e;H[d+108>>2]=m;H[d+12>>2]=0;H[d+16>>2]=0;H[d+20>>2]=0;H[d+24>>2]=0;H[d+28>>2]=0;H[d+32>>2]=0;H[d+36>>2]=0;H[d+40>>2]=0;H[d+44>>2]=0;H[d+48>>2]=0;H[d+52>>2]=0;H[d+56>>2]=0;H[d+60>>2]=0;H[d+8>>2]=12384;f=d- -64|0;H[f>>2]=0;H[f+4>>2]=0;H[d+72>>2]=0;H[d+76>>2]=0;H[d+80>>2]=0;H[d+84>>2]=0;H[d+88>>2]=0;H[d+104>>2]=0;H[d+96>>2]=0;H[d+100>>2]=0;k=H[a+8>>2];H[c+48>>2]=0;H[c+52>>2]=0;H[c+40>>2]=0;H[c+44>>2]=0;j=c+32|0;f=j;H[f>>2]=0;H[f+4>>2]=0;H[c+24>>2]=0;H[c+28>>2]=0;f=c- -64|0;H[f>>2]=0;H[f+4>>2]=0;H[c+72>>2]=0;H[c+76>>2]=0;H[c+80>>2]=0;H[c+84>>2]=0;H[c+88>>2]=0;H[c+104>>2]=0;H[c+16>>2]=0;H[c+20>>2]=0;H[c+56>>2]=0;H[c+60>>2]=0;H[c+8>>2]=12384;H[c+96>>2]=0;H[c+100>>2]=0;H[c+12>>2]=k;i=H[k>>2];f=H[k+4>>2];F[c+111|0]=0;l=j;j=c+111|0;Ra(l,(f-i>>2>>>0)/3|0,j);f=H[c+12>>2];i=H[f+28>>2];f=H[f+24>>2];F[c+111|0]=0;Ra(c+44|0,i-f>>2,j);H[c+28>>2]=d;H[c+24>>2]=m;H[c+20>>2]=e;H[c+16>>2]=k;e=d+8|0;f=c+8|0;dd(e,f);j:{if((f|0)==(e|0)){H[d+92>>2]=H[f+84>>2];break j}Eb(d+56|0,H[f+48>>2],H[f+52>>2]);Eb(d+68|0,H[f+60>>2],H[f- -64>>2]);Eb(d+80|0,H[f+72>>2],H[f+76>>2]);H[d+92>>2]=H[f+84>>2];Ca(d+96|0,H[f+88>>2],H[f+92>>2])}H[c+8>>2]=12384;e=H[c+96>>2];if(e){H[c+100>>2]=e;ra(e)}e=H[c+80>>2];if(e){H[c+84>>2]=e;ra(e)}e=H[c+68>>2];if(e){H[c+72>>2]=e;ra(e)}e=H[c+56>>2];if(e){H[c+60>>2]=e;ra(e)}H[c+8>>2]=12620;e=H[c+44>>2];if(e){ra(e)}e=H[c+32>>2];if(e){ra(e)}fa=c+112|0;c=d;break d}if((q|0)>=0){break f}break a}if((q|0)<0){break a}}e=H[a+216>>2];f=H[n+44>>2];c=sa(80);H[c>>2]=12932;H[c+4>>2]=0;H[c+76>>2]=0;H[c+68>>2]=f;H[c+8>>2]=11872;H[c+12>>2]=0;H[c+16>>2]=0;H[c+20>>2]=0;H[c+24>>2]=0;H[c+28>>2]=0;H[c+32>>2]=0;H[c+36>>2]=0;H[c+40>>2]=0;H[c+44>>2]=0;H[c+48>>2]=0;H[c+52>>2]=0;h=e+N(p,144)|0;d=h+104|0;H[c+72>>2]=d;H[c- -64>>2]=0;H[c+56>>2]=0;H[c+60>>2]=0;H[g+24>>2]=f;H[g+68>>2]=0;H[g+72>>2]=0;H[g+60>>2]=0;H[g+64>>2]=0;H[g+52>>2]=0;H[g+56>>2]=0;H[g+44>>2]=0;H[g+48>>2]=0;H[g+84>>2]=0;H[g+88>>2]=0;H[g+76>>2]=0;H[g+80>>2]=0;H[g+28>>2]=c;e=H[g+28>>2];H[g+8>>2]=H[g+24>>2];H[g+12>>2]=e;H[g+20>>2]=d;d=h+4|0;H[g+16>>2]=d;H[g+36>>2]=0;H[g+40>>2]=0;H[g+32>>2]=11872;e=H[g+20>>2];H[g>>2]=H[g+16>>2];H[g+4>>2]=e;h=g+32|0;Ge(h,d,g);e=c+8|0;dd(e,h);if((e|0)!=(h|0)){Eb(c+56|0,H[h+48>>2],H[h+52>>2])}Fe(h);break c}d=fa+-64|0;fa=d;k=H[H[a+4>>2]+44>>2];c=sa(80);H[c>>2]=12640;H[c+4>>2]=0;H[c+76>>2]=0;H[c+72>>2]=e;H[c+68>>2]=k;H[c+8>>2]=12804;H[c+12>>2]=0;H[c+16>>2]=0;H[c+20>>2]=0;H[c+24>>2]=0;H[c+28>>2]=0;H[c+32>>2]=0;H[c+36>>2]=0;H[c+40>>2]=0;H[c+44>>2]=0;H[c+48>>2]=0;H[c+52>>2]=0;H[c- -64>>2]=0;m=c+56|0;f=m;H[f>>2]=0;H[f+4>>2]=0;n=H[a+8>>2];H[d+40>>2]=0;H[d+44>>2]=0;H[d+32>>2]=0;H[d+36>>2]=0;j=d+24|0;f=j;H[f>>2]=0;H[f+4>>2]=0;H[d+16>>2]=0;H[d+20>>2]=0;H[d+56>>2]=0;H[d+8>>2]=0;H[d+12>>2]=0;H[d+48>>2]=0;H[d+52>>2]=0;H[d>>2]=12804;H[d+4>>2]=n;i=H[n>>2];f=H[n+4>>2];F[d+63|0]=0;l=j;j=d+63|0;Ra(l,(f-i>>2>>>0)/3|0,j);f=H[d+4>>2];i=H[f+28>>2];f=H[f+24>>2];F[d+63|0]=0;Ra(d+36|0,i-f>>2,j);H[d+20>>2]=c;H[d+16>>2]=k;H[d+12>>2]=e;H[d+8>>2]=n;dd(c+8|0,d);Eb(m,H[d+48>>2],H[d+52>>2]);H[d>>2]=12804;e=H[d+48>>2];if(e){H[d+52>>2]=e;ra(e)}H[d>>2]=12620;e=H[d+36>>2];if(e){ra(e)}e=H[d+24>>2];if(e){ra(e)}fa=d- -64|0}if(!c){break a}}c=md(sa(64),c);i=H[a+4>>2];a=c;c=b;k:{l:{if((c|0)>=0){d=i+8|0;b=H[i+12>>2];e=H[i+8>>2];f=b-e>>2;m:{if((f|0)>(c|0)){break m}h=c+1|0;if(c>>>0>=f>>>0){Xb(d,h-f|0);break m}if(f>>>0<=h>>>0){break m}e=e+(h<<2)|0;if((e|0)!=(b|0)){while(1){b=b-4|0;h=H[b>>2];H[b>>2]=0;if(h){ha[H[H[h>>2]+4>>2]](h)}if((b|0)!=(e|0)){continue}break}}H[i+12>>2]=e}e=H[d>>2]+(c<<2)|0;b=H[e>>2];H[e>>2]=a;if(b){break l}break k}b=a;if(!a){break k}}ha[H[H[b>>2]+4>>2]](b)}h=(c^-1)>>>31|0}fa=g+96|0;return h|0}function ec(a,b,c,d){var e=0,f=0,g=0,h=0,i=0,j=0,k=O(0);a:{b:{if(!d){break b}c:{switch(H[a+28>>2]-1|0){case 0:e=I[a+24|0];f=c&255;if(e>>>0>>0?e:f){g=H[a>>2];e=H[g>>2];b=H[a+48>>2]+Nj(H[a+40>>2],H[a+44>>2],b,0)|0;b=e+b|0;g=H[g+4>>2];while(1){if(b>>>0>=g>>>0){break b}H[(h<<2)+d>>2]=F[b|0];b=b+1|0;h=h+1|0;e=I[a+24|0];if(h>>>0<(e>>>0>>0?e:f)>>>0){continue}break}}j=1;if(e>>>0>=f>>>0){break b}break a;case 1:e=I[a+24|0];f=c&255;if(e>>>0>>0?e:f){g=H[a>>2];e=H[g>>2];b=H[a+48>>2]+Nj(H[a+40>>2],H[a+44>>2],b,0)|0;b=e+b|0;g=H[g+4>>2];while(1){if(b>>>0>=g>>>0){break b}H[(h<<2)+d>>2]=I[b|0];b=b+1|0;h=h+1|0;e=I[a+24|0];if(h>>>0<(e>>>0>>0?e:f)>>>0){continue}break}}j=1;if(e>>>0>=f>>>0){break b}break a;case 2:e=I[a+24|0];f=c&255;if(e>>>0>>0?e:f){g=H[a>>2];e=H[g>>2];b=H[a+48>>2]+Nj(H[a+40>>2],H[a+44>>2],b,0)|0;b=e+b|0;g=H[g+4>>2];while(1){if(b>>>0>=g>>>0){break b}H[(h<<2)+d>>2]=G[b>>1];b=b+2|0;h=h+1|0;e=I[a+24|0];if(h>>>0<(e>>>0>>0?e:f)>>>0){continue}break}}j=1;if(e>>>0>=f>>>0){break b}break a;case 3:e=I[a+24|0];f=c&255;if(e>>>0>>0?e:f){g=H[a>>2];e=H[g>>2];b=H[a+48>>2]+Nj(H[a+40>>2],H[a+44>>2],b,0)|0;b=e+b|0;g=H[g+4>>2];while(1){if(b>>>0>=g>>>0){break b}H[(h<<2)+d>>2]=J[b>>1];b=b+2|0;h=h+1|0;e=I[a+24|0];if(h>>>0<(e>>>0>>0?e:f)>>>0){continue}break}}j=1;if(e>>>0>=f>>>0){break b}break a;case 4:e=I[a+24|0];f=c&255;if(e>>>0>>0?e:f){g=H[a>>2];e=H[g>>2];b=H[a+48>>2]+Nj(H[a+40>>2],H[a+44>>2],b,0)|0;b=e+b|0;g=H[g+4>>2];while(1){if(b>>>0>=g>>>0){break b}H[(h<<2)+d>>2]=H[b>>2];b=b+4|0;h=h+1|0;e=I[a+24|0];if(h>>>0<(e>>>0>>0?e:f)>>>0){continue}break}}j=1;if(e>>>0>=f>>>0){break b}break a;case 5:e=I[a+24|0];f=c&255;if(e>>>0>>0?e:f){g=H[a>>2];e=H[g>>2];b=H[a+48>>2]+Nj(H[a+40>>2],H[a+44>>2],b,0)|0;b=e+b|0;g=H[g+4>>2];while(1){if(b>>>0>=g>>>0){break b}H[(h<<2)+d>>2]=H[b>>2];b=b+4|0;h=h+1|0;e=I[a+24|0];if(h>>>0<(e>>>0>>0?e:f)>>>0){continue}break}}j=1;if(e>>>0>=f>>>0){break b}break a;case 6:e=I[a+24|0];f=c&255;if(e>>>0>>0?e:f){g=H[a>>2];e=H[g>>2];b=H[a+48>>2]+Nj(H[a+40>>2],H[a+44>>2],b,0)|0;b=e+b|0;g=H[g+4>>2];while(1){if(b>>>0>=g>>>0){break b}e=H[b>>2];if(H[b+4>>2]){break b}H[(h<<2)+d>>2]=e;b=b+8|0;h=h+1|0;e=I[a+24|0];if(h>>>0<(e>>>0>>0?e:f)>>>0){continue}break}}j=1;if(e>>>0>=f>>>0){break b}break a;case 7:e=I[a+24|0];f=c&255;if(e>>>0>>0?e:f){g=H[a>>2];e=H[g>>2];b=H[a+48>>2]+Nj(H[a+40>>2],H[a+44>>2],b,0)|0;b=e+b|0;g=H[g+4>>2];while(1){if(b>>>0>=g>>>0){break b}e=H[b>>2];if(H[b+4>>2]){break b}H[(h<<2)+d>>2]=e;b=b+8|0;h=h+1|0;e=I[a+24|0];if(h>>>0<(e>>>0>>0?e:f)>>>0){continue}break}}j=1;if(e>>>0>=f>>>0){break b}break a;case 8:d:{e:{e=I[a+24|0];c=c&255;if(!(c>>>0>e>>>0?e:c)){break e}j=H[a>>2];g=H[j>>2];b=H[a+48>>2]+Nj(H[a+40>>2],H[a+44>>2],b,0)|0;h=g+b|0;f=H[j+4>>2];e=f-g|0;if(!I[a+32|0]){j=0;if((b|0)>=(e|0)){break d}b=0;while(1){k=L[h>>2];if(k=O(4294967296))){break d}g=(b<<2)+d|0;if(k=O(0)){e=~~k>>>0}else{e=0}H[g>>2]=e;b=b+1|0;e=I[a+24|0];if(b>>>0>=(c>>>0>e>>>0?e:c)>>>0){break e}h=h+4|0;if(f>>>0>h>>>0){continue}break}break d}j=0;if((b|0)>=(e|0)){break d}b=0;while(1){k=L[h>>2];if(k=O(4294967296))){break d}if(k>O(1)){break d}g=(b<<2)+d|0;i=T(+k*4294967295+.5);f:{if(i<4294967296&i>=0){e=~~i>>>0;break f}e=0}H[g>>2]=e;b=b+1|0;e=I[a+24|0];if(b>>>0>=(c>>>0>e>>>0?e:c)>>>0){break e}h=h+4|0;if(f>>>0>h>>>0){continue}break}break d}j=1;if(c>>>0<=e>>>0){break d}ua((e<<2)+d|0,0,c-e<<2)}return j;case 9:g:{h:{e=I[a+24|0];c=c&255;if(!(c>>>0>e>>>0?e:c)){break h}j=H[a>>2];g=H[j>>2];b=H[a+48>>2]+Nj(H[a+40>>2],H[a+44>>2],b,0)|0;h=g+b|0;f=H[j+4>>2];e=f-g|0;if(!I[a+32|0]){j=0;if((b|0)>=(e|0)){break g}b=0;while(1){i=M[h>>3];if(i<0|i!=i|(P(i)==Y|i>=4294967295)){break g}g=(b<<2)+d|0;if(i<4294967296&i>=0){e=~~i>>>0}else{e=0}H[g>>2]=e;b=b+1|0;e=I[a+24|0];if(b>>>0>=(c>>>0>e>>>0?e:c)>>>0){break h}h=h+8|0;if(f>>>0>h>>>0){continue}break}break g}j=0;if((b|0)>=(e|0)){break g}b=0;while(1){i=M[h>>3];if(i<0|i!=i|(P(i)==Y|i>=4294967295)){break g}if(i>1){break g}g=(b<<2)+d|0;i=T(i*4294967295+.5);i:{if(i<4294967296&i>=0){e=~~i>>>0;break i}e=0}H[g>>2]=e;b=b+1|0;e=I[a+24|0];if(b>>>0>=(c>>>0>e>>>0?e:c)>>>0){break h}h=h+8|0;if(f>>>0>h>>>0){continue}break}break g}j=1;if(c>>>0<=e>>>0){break g}ua((e<<2)+d|0,0,c-e<<2)}return j;case 10:break c;default:break b}}e=I[a+24|0];f=c&255;if(e>>>0>>0?e:f){g=H[a>>2];e=H[g>>2];b=H[a+48>>2]+Nj(H[a+40>>2],H[a+44>>2],b,0)|0;b=e+b|0;g=H[g+4>>2];while(1){if(b>>>0>=g>>>0){break b}H[(h<<2)+d>>2]=I[b|0];b=b+1|0;h=h+1|0;e=I[a+24|0];if(h>>>0<(e>>>0>>0?e:f)>>>0){continue}break}}j=1;if(e>>>0>=f>>>0){break b}ua((e<<2)+d|0,0,(c&255)-e<<2)}return j}ua((e<<2)+d|0,0,(c&255)-e<<2);return 1}function Kd(a){var b=0,c=0,d=0,e=0,f=0,g=0;e=fa-16|0;fa=e;H[e+12>>2]=a;a:{if(a>>>0<=211){d=H[Jd(14256,14448,e+12|0)>>2];break a}if(a>>>0>=4294967292){Z();v()}f=(a>>>0)/210|0;d=N(f,210);H[e+8>>2]=a-d;g=Jd(14448,14640,e+8|0)-14448>>2;while(1){d=H[(g<<2)+14448>>2]+d|0;a=5;while(1){b:{if((a|0)==47){a=211;while(1){b=(d>>>0)/(a>>>0)|0;if(b>>>0>>0){break a}if((N(a,b)|0)==(d|0)){break b}b=a+10|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}if((N(b,c)|0)==(d|0)){break b}b=a+12|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}if((N(b,c)|0)==(d|0)){break b}b=a+16|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}if((N(b,c)|0)==(d|0)){break b}b=a+18|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}if((N(b,c)|0)==(d|0)){break b}b=a+22|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}if((N(b,c)|0)==(d|0)){break b}b=a+28|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}if((N(b,c)|0)==(d|0)){break b}b=a+30|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}if((N(b,c)|0)==(d|0)){break b}b=a+36|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}if((N(b,c)|0)==(d|0)){break b}b=a+40|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}if((N(b,c)|0)==(d|0)){break b}b=a+42|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}if((N(b,c)|0)==(d|0)){break b}b=a+46|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}if((N(b,c)|0)==(d|0)){break b}b=a+52|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}if((N(b,c)|0)==(d|0)){break b}b=a+58|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}if((N(b,c)|0)==(d|0)){break b}b=a+60|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}if((N(b,c)|0)==(d|0)){break b}b=a+66|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}if((N(b,c)|0)==(d|0)){break b}b=a+70|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}if((N(b,c)|0)==(d|0)){break b}b=a+72|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}if((N(b,c)|0)==(d|0)){break b}b=a+78|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}if((N(b,c)|0)==(d|0)){break b}b=a+82|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}if((N(b,c)|0)==(d|0)){break b}b=a+88|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}if((N(b,c)|0)==(d|0)){break b}b=a+96|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}if((N(b,c)|0)==(d|0)){break b}b=a+100|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}if((N(b,c)|0)==(d|0)){break b}b=a+102|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}if((N(b,c)|0)==(d|0)){break b}b=a+106|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}if((N(b,c)|0)==(d|0)){break b}b=a+108|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}if((N(b,c)|0)==(d|0)){break b}b=a+112|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}if((N(b,c)|0)==(d|0)){break b}b=a+120|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}if((N(b,c)|0)==(d|0)){break b}b=a+126|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}if((N(b,c)|0)==(d|0)){break b}b=a+130|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}if((N(b,c)|0)==(d|0)){break b}b=a+136|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}if((N(b,c)|0)==(d|0)){break b}b=a+138|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}if((N(b,c)|0)==(d|0)){break b}b=a+142|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}if((N(b,c)|0)==(d|0)){break b}b=a+148|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}if((N(b,c)|0)==(d|0)){break b}b=a+150|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}if((N(b,c)|0)==(d|0)){break b}b=a+156|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}if((N(b,c)|0)==(d|0)){break b}b=a+162|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}if((N(b,c)|0)==(d|0)){break b}b=a+166|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}if((N(b,c)|0)==(d|0)){break b}b=a+168|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}if((N(b,c)|0)==(d|0)){break b}b=a+172|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}if((N(b,c)|0)==(d|0)){break b}b=a+178|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}if((N(b,c)|0)==(d|0)){break b}b=a+180|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}if((N(b,c)|0)==(d|0)){break b}b=a+186|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}if((N(b,c)|0)==(d|0)){break b}b=a+190|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}if((N(b,c)|0)==(d|0)){break b}b=a+192|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}if((N(b,c)|0)==(d|0)){break b}b=a+196|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}if((N(b,c)|0)==(d|0)){break b}b=a+198|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}if((N(b,c)|0)==(d|0)){break b}b=a+208|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}a=a+210|0;if((N(b,c)|0)!=(d|0)){continue}break}break b}b=H[(a<<2)+14256>>2];c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}a=a+1|0;if((N(b,c)|0)!=(d|0)){continue}}break}d=g+1|0;a=(d|0)==48;g=a?0:d;f=a+f|0;d=N(f,210);continue}}fa=e+16|0;return d}function Kb(a,b){var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0;j=fa-16|0;fa=j;a:{b:{c:{d:{if(I[H[a+4>>2]+36|0]<=1){l=-1;c=H[b+20>>2];g=H[b+16>>2];d=g+4|0;c=d>>>0<4?c+1|0:c;f=d;d=H[b+12>>2];if(f>>>0>K[b+8>>2]&(d|0)<=(c|0)|(c|0)>(d|0)){break c}d=g+H[b>>2]|0;m=I[d|0]|I[d+1|0]<<8|(I[d+2|0]<<16|I[d+3|0]<<24);H[j+12>>2]=m;H[b+16>>2]=f;H[b+20>>2]=c;break d}l=-1;if(!Ga(1,j+12|0,b)){break c}m=H[j+12>>2]}e:{f:{g:{h:{i:{if(!m){break i}c=H[a+8>>2];if((H[c+4>>2]-H[c>>2]>>2>>>0)/3>>>0>>0){break c}c=J[H[a+4>>2]+36>>1];if(((c<<8|c>>>8)&65535)>>>0>=258){j:{while(1){if(!Ga(1,j+8|0,b)){break c}c=H[j+8>>2];if(!Ga(1,j+8|0,b)){break c}e=c+e|0;c=H[j+8>>2];if(e>>>0>>0){break c}f=e-c|0;c=H[a+40>>2];k:{if((c|0)!=H[a+44>>2]){H[c+4>>2]=e;H[c>>2]=f;H[a+40>>2]=c+12;m=H[j+12>>2];break k}n=H[a+36>>2];h=c-n|0;g=(h|0)/12|0;d=g+1|0;if(d>>>0>=357913942){break j}c=g<<1;i=g>>>0>=178956970?357913941:c>>>0>d>>>0?c:d;if(i){if(i>>>0>=357913942){break b}c=sa(N(i,12))}else{c=0}g=c+N(g,12)|0;H[g+4>>2]=e;H[g>>2]=f;d=g+N((h|0)/-12|0,12)|0;if((h|0)>0){ta(d,n,h)}H[a+44>>2]=c+N(i,12);H[a+40>>2]=g+12;H[a+36>>2]=d;if(!n){break k}ra(n)}k=k+1|0;if(k>>>0>>0){continue}break}l=0;Fb(b,0,0);if(m){while(1){e=I[b+36|0];c=J[H[a+4>>2]+36>>1];l:{m:{if(((c<<8|c>>>8)&65535)>>>0<=513){if(!e){break l}k=0;c=H[b+32>>2];o=c>>>3|0;g=H[b+24>>2];e=o+g|0;f=H[b+28>>2];n:{if(e>>>0>=f>>>0){e=c;break n}d=I[e|0];e=c+1|0;H[b+32>>2]=e;o=e>>>3|0;k=d>>>(c&7)&1}if(f>>>0>g+o>>>0){break m}break l}if(!e){break l}k=0;e=H[b+32>>2];c=H[b+24>>2]+(e>>>3|0)|0;if(c>>>0>=K[b+28>>2]){break l}k=I[c|0]>>>(e&7)&1}H[b+32>>2]=e+1}c=H[a+36>>2]+N(l,12)|0;F[c+8|0]=I[c+8|0]&254|k&1;l=l+1|0;if((m|0)!=(l|0)){continue}break}}F[b+36|0]=0;f=H[b+20>>2];e=0;c=H[b+32>>2]+7|0;e=c>>>0<7?1:e;d=c;c=e>>>3|0;e=(e&7)<<29|d>>>3;d=e+H[b+16>>2]|0;c=c+f|0;H[b+16>>2]=d;H[b+20>>2]=d>>>0>>0?c+1|0:c;break i}va();v()}while(1){d=H[b+12>>2];c=H[b+20>>2];e=c;p=H[b+16>>2];f=p+4|0;c=f>>>0<4?c+1|0:c;n=H[b+8>>2];h=f;if(n>>>0>>0&(c|0)>=(d|0)|(c|0)>(d|0)){break c}i=H[b>>2];f=i+p|0;g=I[f|0]|I[f+1|0]<<8|(I[f+2|0]<<16|I[f+3|0]<<24);H[b+16>>2]=h;H[b+20>>2]=c;c=e;f=p+8|0;c=f>>>0<8?c+1|0:c;k=f;if(f>>>0>n>>>0&(c|0)>=(d|0)|(c|0)>(d|0)){break c}f=h+i|0;f=I[f|0]|I[f+1|0]<<8|(I[f+2|0]<<16|I[f+3|0]<<24);H[b+16>>2]=k;H[b+20>>2]=c;if((c|0)>=(d|0)&k>>>0>=n>>>0|(c|0)>(d|0)){break c}d=I[i+k|0];c=p+9|0;e=c>>>0<9?e+1|0:e;H[b+16>>2]=c;H[b+20>>2]=e;d=d&1;c=H[a+40>>2];o:{if((c|0)!=H[a+44>>2]){F[c+8|0]=d;H[c+4>>2]=f;H[c>>2]=g;H[a+40>>2]=c+12;m=H[j+12>>2];break o}k=H[a+36>>2];n=c-k|0;h=(n|0)/12|0;e=h+1|0;if(e>>>0>=357913942){break h}c=h<<1;i=h>>>0>=178956970?357913941:c>>>0>e>>>0?c:e;if(i){if(i>>>0>=357913942){break b}c=sa(N(i,12))}else{c=0}h=c+N(h,12)|0;F[h+8|0]=d;H[h+4>>2]=f;H[h>>2]=g;e=h+N((n|0)/-12|0,12)|0;if((n|0)>0){ta(e,k,n)}H[a+44>>2]=c+N(i,12);H[a+40>>2]=h+12;H[a+36>>2]=e;if(!k){break o}ra(k)}o=o+1|0;if(o>>>0>>0){continue}break}}H[j+8>>2]=0;c=J[H[a+4>>2]+36>>1];c=(c<<8|c>>>8)&65535;p:{if(c>>>0<=511){l=-1;c=H[b+20>>2];f=H[b+16>>2];e=f+4|0;c=e>>>0<4?c+1|0:c;d=e;e=H[b+12>>2];if(d>>>0>K[b+8>>2]&(e|0)<=(c|0)|(c|0)>(e|0)){break c}e=f+H[b>>2]|0;e=I[e|0]|I[e+1|0]<<8|(I[e+2|0]<<16|I[e+3|0]<<24);H[b+16>>2]=d;H[b+20>>2]=c;break p}if((c|0)!=512){break e}l=-1;if(!Ga(1,j+8|0,b)){break c}e=H[j+8>>2]}if(!e){break e}c=J[H[a+4>>2]+36>>1];if(((c<<8|c>>>8)&65535)>>>0<258){break f}o=0;m=0;while(1){if(!Ga(1,j+4|0,b)){break c}m=H[j+4>>2]+m|0;c=H[a+52>>2];q:{if((c|0)!=H[a+56>>2]){H[c>>2]=m;H[a+52>>2]=c+4;break q}g=H[a+48>>2];i=c-g|0;d=i>>2;f=d+1|0;if(f>>>0>=1073741824){break g}c=i>>1;f=i>>>0>=2147483644?1073741823:c>>>0>f>>>0?c:f;if(f){if(f>>>0>=1073741824){break b}c=sa(f<<2)}else{c=0}d=c+(d<<2)|0;H[d>>2]=m;if((i|0)>0){ta(c,g,i)}H[a+56>>2]=c+(f<<2);H[a+52>>2]=d+4;H[a+48>>2]=c;if(!g){break q}ra(g)}o=o+1|0;if((o|0)!=(e|0)){continue}break}break e}va();v()}va();v()}l=0;while(1){c=H[b+20>>2];g=H[b+16>>2];d=g+4|0;c=d>>>0<4?c+1|0:c;f=d;d=H[b+12>>2];if(f>>>0>K[b+8>>2]&(d|0)<=(c|0)|(c|0)>(d|0)){l=-1;break c}d=g+H[b>>2]|0;g=I[d|0]|I[d+1|0]<<8|(I[d+2|0]<<16|I[d+3|0]<<24);H[b+16>>2]=f;H[b+20>>2]=c;c=H[a+52>>2];r:{if((c|0)!=H[a+56>>2]){H[c>>2]=g;H[a+52>>2]=c+4;break r}i=H[a+48>>2];h=c-i|0;d=h>>2;f=d+1|0;if(f>>>0>=1073741824){break a}c=h>>1;f=h>>>0>=2147483644?1073741823:c>>>0>f>>>0?c:f;if(f){if(f>>>0>=1073741824){break b}c=sa(f<<2)}else{c=0}d=c+(d<<2)|0;H[d>>2]=g;if((h|0)>0){ta(c,i,h)}H[a+56>>2]=c+(f<<2);H[a+52>>2]=d+4;H[a+48>>2]=c;if(!i){break r}ra(i)}l=l+1|0;if((l|0)!=(e|0)){continue}break}}l=H[b+16>>2]}fa=j+16|0;return l}za();v()}va();v()}function we(a,b){var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0;a:{b:{c:{d:{e:{if(H[a+92>>2]==H[a+88>>2]){break e}c=H[a+52>>2];f:{if((c|0)!=H[a+56>>2]){H[c>>2]=b;H[a+52>>2]=c+4;break f}d=H[a+48>>2];h=c-d|0;f=h>>2;e=f+1|0;if(e>>>0>=1073741824){break a}c=h>>1;e=h>>>0>=2147483644?1073741823:c>>>0>e>>>0?c:e;if(e){if(e>>>0>=1073741824){break d}c=sa(e<<2)}else{c=0}f=c+(f<<2)|0;H[f>>2]=b;if((h|0)>0){ta(c,d,h)}H[a+56>>2]=c+(e<<2);H[a+52>>2]=f+4;H[a+48>>2]=c;if(!d){break f}ra(d)}H[a+84>>2]=0;f=-1;c=-1;g:{if((b|0)==-1){break g}e=H[a+4>>2];c=b+1|0;c=(c>>>0)%3|0?c:b-2|0;if((c|0)!=-1){f=H[H[e>>2]+(c<<2)>>2]}h:{if((b>>>0)%3|0){d=b-1|0;break h}d=b+2|0;c=-1;if((d|0)==-1){break g}}c=H[H[e>>2]+(d<<2)>>2]}i=c>>>3&536870908;e=H[a+36>>2];g=e+(f>>>3&536870908)|0;h=H[g>>2];d=1<>2]=d|h;g=a+8|0;if((b|0)!=-1){e=b+1|0;d=(e>>>0)%3|0?e:b-2|0}else{d=-1}Xa(g,f,d);e=H[a+36>>2]}d=e+i|0;e=H[d>>2];f=1<>2]=e|f;d=a+8|0;f=-1;i:{if((b|0)==-1){break i}f=b-1|0;if((b>>>0)%3|0){break i}f=b+2|0}Xa(d,c,f)}f=-1;f=(b|0)!=-1?H[H[H[a+4>>2]>>2]+(b<<2)>>2]:f;d=H[a+36>>2]+(f>>>3&536870908)|0;e=H[d>>2];c=1<>2]=c|e;Xa(a+8|0,f,b)}d=H[a+84>>2];if((d|0)>2){break e}while(1){f=N(d,12)+a|0;b=H[f+52>>2];if((b|0)==H[f+48>>2]){d=d+1|0;if((d|0)!=3){continue}break e}c=b-4|0;b=H[c>>2];H[f+52>>2]=c;H[a+84>>2]=d;if((b|0)==-1){break e}f=H[a+24>>2];c=(b>>>0)/3|0;j:{if(H[f+(c>>>3&268435452)>>2]>>>c&1){break j}k:{while(1){i=(b>>>0)/3|0;c=(i>>>3&268435452)+f|0;H[c>>2]=H[c>>2]|1<>2]>>2]+(b<<2)>>2]:f;d=H[a+36>>2]+(f>>>3&536870908)|0;e=H[d>>2];c=1<>2]=c|e;h=H[(H[H[a+16>>2]+96>>2]+N(i,12)|0)+((b>>>0)%3<<2)>>2];k=H[H[a+20>>2]+4>>2];c=H[k+4>>2];t:{if((c|0)!=H[k+8>>2]){H[c>>2]=h;H[k+4>>2]=c+4;break t}g=H[k>>2];j=c-g|0;e=j>>2;d=e+1|0;if(d>>>0>=1073741824){break s}c=j>>1;d=j>>>0>=2147483644?1073741823:c>>>0>d>>>0?c:d;if(d){if(d>>>0>=1073741824){break d}c=sa(d<<2)}else{c=0}e=c+(e<<2)|0;H[e>>2]=h;if((j|0)>0){ta(c,g,j)}H[k+8>>2]=c+(d<<2);H[k+4>>2]=e+4;H[k>>2]=c;if(!g){break t}ra(g)}j=H[a+12>>2];c=H[j+4>>2];u:{if((c|0)!=H[j+8>>2]){H[c>>2]=b;H[j+4>>2]=c+4;break u}h=H[j>>2];g=c-h|0;e=g>>2;d=e+1|0;if(d>>>0>=1073741824){break r}c=g>>1;d=g>>>0>=2147483644?1073741823:c>>>0>d>>>0?c:d;if(d){if(d>>>0>=1073741824){break d}c=sa(d<<2)}else{c=0}e=c+(e<<2)|0;H[e>>2]=b;if((g|0)>0){ta(c,h,g)}H[j+8>>2]=c+(d<<2);H[j+4>>2]=e+4;H[j>>2]=c;if(!h){break u}ra(h)}c=H[a+12>>2];H[H[c+12>>2]+(f<<2)>>2]=H[c+24>>2];H[c+24>>2]=H[c+24>>2]+1}if((b|0)==-1){break k}g=H[a+4>>2];f=-1;c=b+1|0;c=(c>>>0)%3|0?c:b-2|0;if((c|0)!=-1){f=H[H[g+12>>2]+(c<<2)>>2]}v:{w:{if((N(i,3)|0)!=(b|0)){e=b-1|0;break w}e=b+2|0;b=-1;if((e|0)==-1){break v}}b=H[H[g+12>>2]+(e<<2)>>2]}h=(b|0)==-1;e=(b>>>0)/3|0;if((f|0)!=-1){c=(f>>>0)/3|0;c=H[H[a+24>>2]+(c>>>3&268435452)>>2]&1<>2]+(c>>>3&536870908)>>2]>>>c&1){break x}e=0;c=H[H[g>>2]+(b<<2)>>2];if(!(H[H[a+36>>2]+(c>>>3&536870908)>>2]>>>c&1)){c=H[a+88>>2]+(c<<2)|0;e=H[c>>2];H[c>>2]=e+1;e=(e|0)<=0?2:1}if(H[a+84>>2]>=(e|0)?d:0){break m}k=N(e,12)+a|0;c=H[k+52>>2];y:{if((c|0)!=H[k+56>>2]){H[c>>2]=b;H[k+52>>2]=c+4;break y}i=H[k+48>>2];j=c-i|0;h=j>>2;g=h+1|0;if(g>>>0>=1073741824){break c}c=j>>1;g=j>>>0>=2147483644?1073741823:c>>>0>g>>>0?c:g;if(g){if(g>>>0>=1073741824){break d}c=sa(g<<2)}else{c=0}h=c+(h<<2)|0;H[h>>2]=b;if((j|0)>0){ta(c,i,j)}H[k+48>>2]=c;H[k+52>>2]=h+4;H[k+56>>2]=c+(g<<2);if(!i){break y}ra(i)}if(H[a+84>>2]<=(e|0)){break x}H[a+84>>2]=e}if(d){break k}b=-1;if((f|0)==-1){break n}}b=H[H[H[a+4>>2]>>2]+(f<<2)>>2]}e=0;if(!(H[H[a+36>>2]+(b>>>3&536870908)>>2]>>>b&1)){b=H[a+88>>2]+(b<<2)|0;c=H[b>>2];H[b>>2]=c+1;e=(c|0)<=0?2:1}if(H[a+84>>2]<(e|0)){break l}b=f}f=H[a+24>>2];continue}break}i=N(e,12)+a|0;b=H[i+52>>2];z:{if((b|0)!=H[i+56>>2]){H[b>>2]=f;H[i+52>>2]=b+4;break z}h=H[i+48>>2];g=b-h|0;c=g>>2;d=c+1|0;if(d>>>0>=1073741824){break b}b=g>>1;d=g>>>0>=2147483644?1073741823:b>>>0>d>>>0?b:d;if(d){if(d>>>0>=1073741824){break d}b=sa(d<<2)}else{b=0}c=b+(c<<2)|0;H[c>>2]=f;if((g|0)>0){ta(b,h,g)}H[i+48>>2]=b;H[i+52>>2]=c+4;H[i+56>>2]=b+(d<<2);if(!h){break z}ra(h)}d=H[a+84>>2];if((d|0)<=(e|0)){break j}H[a+84>>2]=e;d=e;break j}d=H[a+84>>2]}if((d|0)<3){continue}break}}return 1}za();v()}va();v()}va();v()}va();v()}function Ya(a,b,c,d){var e=0,f=0,g=0,h=0,i=O(0),j=0,k=0;a:{if(!d){break a}b:{c:{switch(H[a+28>>2]-1|0){case 0:e=I[a+24|0];f=c&255;if(e>>>0>>0?e:f){g=H[a>>2];e=H[g>>2];b=H[a+48>>2]+Nj(H[a+40>>2],H[a+44>>2],b,0)|0;b=e+b|0;g=H[g+4>>2];j=I[a+32|0];while(1){if(b>>>0>=g>>>0){break a}i=O(F[b|0]);L[(h<<2)+d>>2]=j?O(i/O(127)):i;b=b+1|0;h=h+1|0;e=I[a+24|0];if(h>>>0<(e>>>0>>0?e:f)>>>0){continue}break}}k=1;if(e>>>0>=f>>>0){break a}d=(e<<2)+d|0;a=(c&255)-e|0;break b;case 1:e=I[a+24|0];f=c&255;if(e>>>0>>0?e:f){g=H[a>>2];e=H[g>>2];b=H[a+48>>2]+Nj(H[a+40>>2],H[a+44>>2],b,0)|0;b=e+b|0;g=H[g+4>>2];j=I[a+32|0];while(1){if(b>>>0>=g>>>0){break a}i=O(I[b|0]);L[(h<<2)+d>>2]=j?O(i/O(255)):i;b=b+1|0;h=h+1|0;e=I[a+24|0];if(h>>>0<(e>>>0>>0?e:f)>>>0){continue}break}}k=1;if(e>>>0>=f>>>0){break a}d=(e<<2)+d|0;a=(c&255)-e|0;break b;case 2:e=I[a+24|0];f=c&255;if(e>>>0>>0?e:f){g=H[a>>2];e=H[g>>2];b=H[a+48>>2]+Nj(H[a+40>>2],H[a+44>>2],b,0)|0;b=e+b|0;g=H[g+4>>2];j=I[a+32|0];while(1){if(b>>>0>=g>>>0){break a}i=O(G[b>>1]);L[(h<<2)+d>>2]=j?O(i/O(32767)):i;b=b+2|0;h=h+1|0;e=I[a+24|0];if(h>>>0<(e>>>0>>0?e:f)>>>0){continue}break}}k=1;if(e>>>0>=f>>>0){break a}d=(e<<2)+d|0;a=(c&255)-e|0;break b;case 3:e=I[a+24|0];f=c&255;if(e>>>0>>0?e:f){g=H[a>>2];e=H[g>>2];b=H[a+48>>2]+Nj(H[a+40>>2],H[a+44>>2],b,0)|0;b=e+b|0;g=H[g+4>>2];j=I[a+32|0];while(1){if(b>>>0>=g>>>0){break a}i=O(J[b>>1]);L[(h<<2)+d>>2]=j?O(i/O(65535)):i;b=b+2|0;h=h+1|0;e=I[a+24|0];if(h>>>0<(e>>>0>>0?e:f)>>>0){continue}break}}k=1;if(e>>>0>=f>>>0){break a}d=(e<<2)+d|0;a=(c&255)-e|0;break b;case 4:e=I[a+24|0];f=c&255;if(e>>>0>>0?e:f){g=H[a>>2];e=H[g>>2];b=H[a+48>>2]+Nj(H[a+40>>2],H[a+44>>2],b,0)|0;b=e+b|0;g=H[g+4>>2];j=I[a+32|0];while(1){if(b>>>0>=g>>>0){break a}i=O(H[b>>2]);L[(h<<2)+d>>2]=j?O(i*O(4.656612873077393e-10)):i;b=b+4|0;h=h+1|0;e=I[a+24|0];if(h>>>0<(e>>>0>>0?e:f)>>>0){continue}break}}k=1;if(e>>>0>=f>>>0){break a}d=(e<<2)+d|0;a=(c&255)-e|0;break b;case 5:e=I[a+24|0];f=c&255;if(e>>>0>>0?e:f){g=H[a>>2];e=H[g>>2];b=H[a+48>>2]+Nj(H[a+40>>2],H[a+44>>2],b,0)|0;b=e+b|0;g=H[g+4>>2];j=I[a+32|0];while(1){if(b>>>0>=g>>>0){break a}i=O(K[b>>2]);L[(h<<2)+d>>2]=j?O(i*O(2.3283064365386963e-10)):i;b=b+4|0;h=h+1|0;e=I[a+24|0];if(h>>>0<(e>>>0>>0?e:f)>>>0){continue}break}}k=1;if(e>>>0>=f>>>0){break a}d=(e<<2)+d|0;a=(c&255)-e|0;break b;case 6:e=I[a+24|0];f=c&255;if(e>>>0>>0?e:f){g=H[a>>2];e=H[g>>2];b=H[a+48>>2]+Nj(H[a+40>>2],H[a+44>>2],b,0)|0;b=e+b|0;g=H[g+4>>2];j=I[a+32|0];while(1){if(b>>>0>=g>>>0){break a}i=O(+K[b>>2]+ +H[b+4>>2]*4294967296);L[(h<<2)+d>>2]=j?O(i*O(10842021724855044e-35)):i;b=b+8|0;h=h+1|0;e=I[a+24|0];if(h>>>0<(e>>>0>>0?e:f)>>>0){continue}break}}k=1;if(e>>>0>=f>>>0){break a}d=(e<<2)+d|0;a=(c&255)-e|0;break b;case 7:e=I[a+24|0];f=c&255;if(e>>>0>>0?e:f){g=H[a>>2];e=H[g>>2];b=H[a+48>>2]+Nj(H[a+40>>2],H[a+44>>2],b,0)|0;b=e+b|0;g=H[g+4>>2];j=I[a+32|0];while(1){if(b>>>0>=g>>>0){break a}i=O(+K[b>>2]+ +K[b+4>>2]*4294967296);L[(h<<2)+d>>2]=j?O(i*O(5.421010862427522e-20)):i;b=b+8|0;h=h+1|0;e=I[a+24|0];if(h>>>0<(e>>>0>>0?e:f)>>>0){continue}break}}k=1;if(e>>>0>=f>>>0){break a}d=(e<<2)+d|0;a=(c&255)-e|0;break b;case 8:e=I[a+24|0];f=c&255;if(e>>>0>>0?e:f){g=H[a>>2];e=H[g>>2];b=H[a+48>>2]+Nj(H[a+40>>2],H[a+44>>2],b,0)|0;b=e+b|0;g=H[g+4>>2];while(1){if(b>>>0>=g>>>0){break a}L[(h<<2)+d>>2]=L[b>>2];b=b+4|0;h=h+1|0;e=I[a+24|0];if(h>>>0<(e>>>0>>0?e:f)>>>0){continue}break}}k=1;if(e>>>0>=f>>>0){break a}d=(e<<2)+d|0;a=(c&255)-e|0;break b;case 9:e=I[a+24|0];f=c&255;if(e>>>0>>0?e:f){g=H[a>>2];e=H[g>>2];b=H[a+48>>2]+Nj(H[a+40>>2],H[a+44>>2],b,0)|0;b=e+b|0;g=H[g+4>>2];while(1){if(b>>>0>=g>>>0){break a}L[(h<<2)+d>>2]=M[b>>3];b=b+8|0;h=h+1|0;e=I[a+24|0];if(h>>>0<(e>>>0>>0?e:f)>>>0){continue}break}}k=1;if(e>>>0>=f>>>0){break a}d=(e<<2)+d|0;a=(c&255)-e|0;break b;case 10:break c;default:break a}}e=I[a+24|0];f=c&255;if(e>>>0>>0?e:f){g=H[a>>2];e=H[g>>2];b=H[a+48>>2]+Nj(H[a+40>>2],H[a+44>>2],b,0)|0;b=e+b|0;g=H[g+4>>2];while(1){if(b>>>0>=g>>>0){break a}L[(h<<2)+d>>2]=I[b|0]?O(1):O(0);b=b+1|0;h=h+1|0;e=I[a+24|0];if(h>>>0<(e>>>0>>0?e:f)>>>0){continue}break}}k=1;if(e>>>0>=f>>>0){break a}d=(e<<2)+d|0;a=(c&255)-e|0}ua(d,0,a<<2)}return k}function Hh(a){a=a|0;var b=0,c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0;g=fa-32|0;fa=g;c=H[a+32>>2];b=J[a+36>>1];a:{b:{if(((b<<8|b>>>8)&65535)>>>0<=513){d=H[c+12>>2];b=H[c+20>>2];f=b;n=H[c+16>>2];j=n+4|0;b=j>>>0<4?b+1|0:b;e=H[c+8>>2];h=j;if(e>>>0>>0&(b|0)>=(d|0)|(b|0)>(d|0)){break a}i=H[c>>2];j=i+n|0;j=I[j|0]|I[j+1|0]<<8|(I[j+2|0]<<16|I[j+3|0]<<24);H[c+16>>2]=h;H[c+20>>2]=b;b=f;f=n+8|0;b=f>>>0<8?b+1|0:b;if(f>>>0>e>>>0&(b|0)>=(d|0)|(b|0)>(d|0)){break a}d=i+h|0;n=I[d|0]|I[d+1|0]<<8|(I[d+2|0]<<16|I[d+3|0]<<24);H[c+16>>2]=f;H[c+20>>2]=b;break b}if(!Hb(1,g+28|0,c)){break a}if(!Hb(1,g+24|0,H[a+32>>2])){break a}j=H[g+28>>2];n=H[g+24>>2]}if(j>>>0>1431655765){break a}d=H[a+32>>2];b=d;h=H[b+8>>2];f=H[b+16>>2];c=H[b+12>>2];b=H[b+20>>2];e=Oj(h-f|0,c-(b+(f>>>0>h>>>0)|0)|0,3,0);if(!ga&e>>>0>>0){break a}e=Nj(j,0,3,0);if(!ga&e>>>0>>0|((b|0)>=(c|0)&f>>>0>=h>>>0|(b|0)>(c|0))){break a}c=I[f+H[d>>2]|0];f=f+1|0;b=f?b:b+1|0;H[d+16>>2]=f;H[d+20>>2]=b;c:{d:{if(!c){d=0;b=fa-32|0;fa=b;H[b+24>>2]=0;H[b+16>>2]=0;H[b+20>>2]=0;e:{f:{f=N(j,3);if(f){if(f>>>0>=1073741824){break f}c=N(j,12);d=sa(c);ua(d,0,c)}if(id(f,1,H[a+32>>2],d)){g:{if(!j){f=0;break g}f=1;c=H[d>>2];h=c>>>1|0;c=c&1?0-h|0:h;if((c|0)<0){break g}h=0;while(1){H[b>>2]=c;o=c;e=(k<<2)+d|0;c=H[e+4>>2];i=c>>>1|0;c=o+(c&1?0-i|0:i)|0;if((c|0)<0){break g}H[b+4>>2]=c;e=H[e+8>>2];i=e>>>1|0;c=c+(e&1?0-i|0:i)|0;if((c|0)<0){break g}H[b+8>>2]=c;Tb(H[a+44>>2]+96|0,b);h=h+1|0;f=h>>>0>>0;if((j|0)==(h|0)){break g}k=k+3|0;e=H[(k<<2)+d>>2];i=e>>>1|0;c=c+(e&1?0-i|0:i)|0;if((c|0)>=0){continue}break}}k=!f}if(d){ra(d)}fa=b+32|0;b=k&1;break e}va();v()}if(b){break d}break a}if(n>>>0<=255){if(!j){break d}while(1){h:{H[g+16>>2]=0;H[g+8>>2]=0;H[g+12>>2]=0;d=H[a+32>>2];b=d;h=H[b+8>>2];c=H[b+12>>2];f=H[b+20>>2];k=H[b+16>>2];if((c|0)<=(f|0)&h>>>0<=k>>>0|(c|0)<(f|0)){break h}e=H[d>>2];l=I[e+k|0];b=f;i=k+1|0;b=i?b:b+1|0;H[d+16>>2]=i;H[d+20>>2]=b;H[g+8>>2]=l;if((b|0)>=(c|0)&i>>>0>=h>>>0|(b|0)>(c|0)){break h}l=I[e+i|0];b=f;i=k+2|0;b=i>>>0<2?b+1|0:b;H[d+16>>2]=i;H[d+20>>2]=b;H[g+12>>2]=l;if((b|0)>=(c|0)&i>>>0>=h>>>0|(b|0)>(c|0)){break h}c=I[e+i|0];b=f;f=k+3|0;b=f>>>0<3?b+1|0:b;H[d+16>>2]=f;H[d+20>>2]=b;H[g+16>>2]=c;Tb(H[a+44>>2]+96|0,g+8|0);m=m+1|0;if((m|0)!=(j|0)){continue}break d}break}m=0;break a}if(n>>>0<=65535){if(!j){break d}while(1){i:{H[g+16>>2]=0;H[g+8>>2]=0;H[g+12>>2]=0;c=H[a+32>>2];d=H[c+12>>2];k=H[c+8>>2];b=H[c+20>>2];f=b;h=H[c+16>>2];e=h+2|0;b=e>>>0<2?b+1|0:b;if(e>>>0>k>>>0&(b|0)>=(d|0)|(b|0)>(d|0)){break i}i=H[c>>2];l=i+h|0;l=I[l|0]|I[l+1|0]<<8;H[c+16>>2]=e;H[c+20>>2]=b;H[g+8>>2]=l;b=f;l=h+4|0;b=l>>>0<4?b+1|0:b;if(l>>>0>k>>>0&(b|0)>=(d|0)|(b|0)>(d|0)){break i}e=e+i|0;e=I[e|0]|I[e+1|0]<<8;H[c+16>>2]=l;H[c+20>>2]=b;H[g+12>>2]=e;b=f;f=h+6|0;b=f>>>0<6?b+1|0:b;if(f>>>0>k>>>0&(b|0)>=(d|0)|(b|0)>(d|0)){break i}d=i+l|0;d=I[d|0]|I[d+1|0]<<8;H[c+16>>2]=f;H[c+20>>2]=b;H[g+16>>2]=d;Tb(H[a+44>>2]+96|0,g+8|0);m=m+1|0;if((m|0)!=(j|0)){continue}break d}break}m=0;break a}j:{if(n>>>0>2097151){break j}b=J[a+36>>1];if(((b<<8|b>>>8)&65535)>>>0<514){break j}if(!j){break d}while(1){k:{H[g+16>>2]=0;H[g+8>>2]=0;H[g+12>>2]=0;if(!Hb(1,g+4|0,H[a+32>>2])){break k}H[g+8>>2]=H[g+4>>2];if(!Hb(1,g+4|0,H[a+32>>2])){break k}H[g+12>>2]=H[g+4>>2];if(!Hb(1,g+4|0,H[a+32>>2])){break k}H[g+16>>2]=H[g+4>>2];Tb(H[a+44>>2]+96|0,g+8|0);m=m+1|0;if((m|0)!=(j|0)){continue}break d}break}m=0;break a}if(!j){break d}while(1){H[g+16>>2]=0;H[g+8>>2]=0;H[g+12>>2]=0;c=H[a+32>>2];d=H[c+12>>2];k=H[c+8>>2];b=H[c+20>>2];f=b;h=H[c+16>>2];e=h+4|0;b=e>>>0<4?b+1|0:b;i=e;if(e>>>0>k>>>0&(b|0)>=(d|0)|(b|0)>(d|0)){break c}l=H[c>>2];e=l+h|0;e=I[e|0]|I[e+1|0]<<8|(I[e+2|0]<<16|I[e+3|0]<<24);H[c+16>>2]=i;H[c+20>>2]=b;H[g+8>>2]=e;b=f;e=h+8|0;b=e>>>0<8?b+1|0:b;o=e;if(e>>>0>k>>>0&(b|0)>=(d|0)|(b|0)>(d|0)){break c}e=i+l|0;e=I[e|0]|I[e+1|0]<<8|(I[e+2|0]<<16|I[e+3|0]<<24);H[c+16>>2]=o;H[c+20>>2]=b;H[g+12>>2]=e;b=f;f=h+12|0;b=f>>>0<12?b+1|0:b;if(f>>>0>k>>>0&(b|0)>=(d|0)|(b|0)>(d|0)){break c}d=l+o|0;d=I[d|0]|I[d+1|0]<<8|(I[d+2|0]<<16|I[d+3|0]<<24);H[c+16>>2]=f;H[c+20>>2]=b;H[g+16>>2]=d;Tb(H[a+44>>2]+96|0,g+8|0);m=m+1|0;if((m|0)!=(j|0)){continue}break}}H[H[a+4>>2]+80>>2]=n;m=1;break a}m=0}fa=g+32|0;return m|0}function kc(a,b,c,d){var e=0,f=0,g=0,h=0,i=0,j=O(0),k=0,l=O(0);a:{b:{if(!d){break b}c:{switch(H[a+28>>2]-1|0){case 0:e=I[a+24|0];f=c&255;if(e>>>0>>0?e:f){e=H[H[a>>2]>>2];b=H[a+48>>2]+Nj(H[a+40>>2],H[a+44>>2],b,0)|0;b=e+b|0;while(1){if(K[H[a>>2]+4>>2]<=b>>>0){break b}F[d+g|0]=I[b|0];b=b+1|0;g=g+1|0;e=I[a+24|0];if(g>>>0<(e>>>0>>0?e:f)>>>0){continue}break}}i=1;if(e>>>0>=f>>>0){break b}break a;case 1:e=I[a+24|0];f=c&255;if(e>>>0>>0?e:f){e=H[H[a>>2]>>2];b=H[a+48>>2]+Nj(H[a+40>>2],H[a+44>>2],b,0)|0;b=e+b|0;while(1){if(K[H[a>>2]+4>>2]<=b>>>0){return 0}e=F[b|0];if((e|0)<0){break b}F[d+g|0]=e;b=b+1|0;g=g+1|0;e=I[a+24|0];if(g>>>0<(e>>>0>>0?e:f)>>>0){continue}break}}i=1;if(e>>>0>=f>>>0){break b}break a;case 2:e=I[a+24|0];f=c&255;if(e>>>0>>0?e:f){e=H[H[a>>2]>>2];b=H[a+48>>2]+Nj(H[a+40>>2],H[a+44>>2],b,0)|0;b=e+b|0;while(1){if(K[H[a>>2]+4>>2]<=b>>>0){break b}e=J[b>>1];if((e-128&65535)>>>0<65280){break b}F[d+g|0]=e;b=b+2|0;g=g+1|0;e=I[a+24|0];if(g>>>0<(e>>>0>>0?e:f)>>>0){continue}break}}i=1;if(e>>>0>=f>>>0){break b}break a;case 3:e=I[a+24|0];f=c&255;if(e>>>0>>0?e:f){e=H[H[a>>2]>>2];b=H[a+48>>2]+Nj(H[a+40>>2],H[a+44>>2],b,0)|0;b=e+b|0;while(1){if(K[H[a>>2]+4>>2]<=b>>>0){break b}e=J[b>>1];if(e>>>0>127){break b}F[d+g|0]=e;b=b+2|0;g=g+1|0;e=I[a+24|0];if(g>>>0<(e>>>0>>0?e:f)>>>0){continue}break}}i=1;if(e>>>0>=f>>>0){break b}break a;case 4:e=I[a+24|0];f=c&255;if(e>>>0>>0?e:f){e=H[H[a>>2]>>2];b=H[a+48>>2]+Nj(H[a+40>>2],H[a+44>>2],b,0)|0;b=e+b|0;while(1){if(K[H[a>>2]+4>>2]<=b>>>0){break b}e=H[b>>2];if(e-128>>>0<4294967040){break b}F[d+g|0]=e;b=b+4|0;g=g+1|0;e=I[a+24|0];if(g>>>0<(e>>>0>>0?e:f)>>>0){continue}break}}i=1;if(e>>>0>=f>>>0){break b}break a;case 5:e=I[a+24|0];f=c&255;if(e>>>0>>0?e:f){e=H[H[a>>2]>>2];b=H[a+48>>2]+Nj(H[a+40>>2],H[a+44>>2],b,0)|0;b=e+b|0;while(1){if(K[H[a>>2]+4>>2]<=b>>>0){break b}e=H[b>>2];if(e>>>0>127){break b}F[d+g|0]=e;b=b+4|0;g=g+1|0;e=I[a+24|0];if(g>>>0<(e>>>0>>0?e:f)>>>0){continue}break}}i=1;if(e>>>0>=f>>>0){break b}break a;case 6:e=I[a+24|0];f=c&255;if(e>>>0>>0?e:f){e=H[H[a>>2]>>2];b=H[a+48>>2]+Nj(H[a+40>>2],H[a+44>>2],b,0)|0;b=e+b|0;while(1){if(K[H[a>>2]+4>>2]<=b>>>0){break b}k=H[b>>2];e=H[b+4>>2]-(k>>>0<128)|0;if((e|0)==-1&k-128>>>0<4294967040|(e|0)!=-1){break b}F[d+g|0]=k;b=b+8|0;g=g+1|0;e=I[a+24|0];if(g>>>0<(e>>>0>>0?e:f)>>>0){continue}break}}i=1;if(e>>>0>=f>>>0){break b}break a;case 7:e=I[a+24|0];f=c&255;if(e>>>0>>0?e:f){e=H[H[a>>2]>>2];b=H[a+48>>2]+Nj(H[a+40>>2],H[a+44>>2],b,0)|0;b=e+b|0;while(1){if(K[H[a>>2]+4>>2]<=b>>>0){break b}e=H[b+4>>2];k=H[b>>2];if(!e&k>>>0>127|e){break b}F[d+g|0]=k;b=b+8|0;g=g+1|0;e=I[a+24|0];if(g>>>0<(e>>>0>>0?e:f)>>>0){continue}break}}i=1;if(e>>>0>=f>>>0){break b}break a;case 8:e=I[a+24|0];c=c&255;d:{if(c>>>0>e>>>0?e:c){e=H[H[a>>2]>>2];b=H[a+48>>2]+Nj(H[a+40>>2],H[a+44>>2],b,0)|0;b=e+b|0;while(1){if(K[H[a>>2]+4>>2]<=b>>>0){break d}j=L[b>>2];if(j=O(127)){break d}f=d+g|0;e:{f:{if(I[a+32|0]){if(jO(1)){break d}h=T(+j*127+.5);if(!(P(h)<2147483648)){break f}e=~~h;break e}if(!(l>>0<(c>>>0>e>>>0?e:c)>>>0){continue}break}}i=1;if(c>>>0<=e>>>0){break d}ua(d+e|0,0,c-e|0)}return i;case 9:e=I[a+24|0];c=c&255;g:{if(c>>>0>e>>>0?e:c){e=H[H[a>>2]>>2];b=H[a+48>>2]+Nj(H[a+40>>2],H[a+44>>2],b,0)|0;b=e+b|0;while(1){if(K[H[a>>2]+4>>2]<=b>>>0){break g}h=M[b>>3];if(h<-128|h!=h|(P(h)==Y|h>=127)){break g}f=d+g|0;if(I[a+32|0]){if(h<0|h>1){break g}h=T(h*127+.5)}h:{if(P(h)<2147483648){e=~~h;break h}e=-2147483648}F[f|0]=e;b=b+8|0;g=g+1|0;e=I[a+24|0];if(g>>>0<(c>>>0>e>>>0?e:c)>>>0){continue}break}}i=1;if(c>>>0<=e>>>0){break g}ua(d+e|0,0,c-e|0)}return i;case 10:break c;default:break b}}e=I[a+24|0];f=c&255;if(e>>>0>>0?e:f){e=H[H[a>>2]>>2];b=H[a+48>>2]+Nj(H[a+40>>2],H[a+44>>2],b,0)|0;b=e+b|0;while(1){if(K[H[a>>2]+4>>2]<=b>>>0){break b}F[d+g|0]=I[b|0];b=b+1|0;g=g+1|0;e=I[a+24|0];if(g>>>0<(e>>>0>>0?e:f)>>>0){continue}break}}i=1;if(e>>>0>=f>>>0){break b}ua(d+e|0,0,(c&255)-e|0)}return i}ua(d+e|0,0,(c&255)-e|0);return 1}function yf(a){a=a|0;var b=0,c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=O(0),w=0;q=fa-16|0;fa=q;a:{if(!(H[a+60>>2]!=H[a- -64>>2]|H[a+48>>2]!=H[a+52>>2])){f=1;break a}f=1;if((ha[H[H[a>>2]+24>>2]](a)|0)<=0){break a}while(1){b:{c=ha[H[H[a>>2]+20>>2]](a,w)|0;c:{d:{e:{e=H[H[H[(ha[H[H[a>>2]+28>>2]](a)|0)+4>>2]+8>>2]+(c<<2)>>2];switch(H[e+28>>2]-1|0){case 8:break d;case 0:case 2:case 4:break e;default:break c}}c=I[e+24|0];f:{if(!c){k=0;f=0;break f}f=0;c=c<<2;k=sa(c);ua(k,0,c);c=I[e+24|0];if(!c){break f}c=c<<2;f=sa(c);ua(f,0,c)}g:{h:{i:{switch(H[e+28>>2]-1|0){case 4:j=0;g=0;i=0;c=0;l=0;b=I[e+24|0];j:{if(!b){d=0;break j}b=b<<2;g=sa(b);ua(g,0,b);d=sa(b);ua(d,0,b)}k:{if(H[e+80>>2]){while(1){o=H[e>>2];p=H[o>>2];b=H[e+40>>2];h=H[e+48>>2]+Nj(b,H[e+44>>2],i,c)|0;m=ta(g,p+h|0,b);n=I[e+24|0];if(n){t=H[a+48>>2];h=0;while(1){r=h<<2;p=H[r+m>>2];if((p|0)<0){break k}H[d+r>>2]=p+H[t+(h+u<<2)>>2];h=h+1|0;if((n|0)!=(h|0)){continue}break}}ta(H[o>>2]+N(b,i)|0,d,b);b=i+1|0;c=b?c:c+1|0;i=b;if(!c&K[e+80>>2]>b>>>0){continue}break}}l=1}if(d){ra(d)}if(g){ra(g)}if(l){break h}break g;case 2:d=0;h=0;i=0;c=0;b=I[e+24|0];if(b){b=b<<1;h=sa(b);ua(h,0,b);d=sa(b);ua(d,0,b)}if(H[e+80>>2]){while(1){n=H[e>>2];p=H[n>>2];b=H[e+40>>2];g=H[e+48>>2]+Nj(b,H[e+44>>2],i,c)|0;m=ta(h,p+g|0,b);l=I[e+24|0];l:{if(!l){break l}o=H[a+48>>2];g=0;if((l|0)!=1){t=l&254;j=0;while(1){r=g<<1;G[r+d>>1]=J[m+r>>1]+J[o+(g+u<<2)>>1];r=g|1;p=r<<1;G[p+d>>1]=J[m+p>>1]+J[o+(r+u<<2)>>1];g=g+2|0;j=j+2|0;if((t|0)!=(j|0)){continue}break}}if(!(l&1)){break l}j=g<<1;G[j+d>>1]=J[m+j>>1]+J[o+(g+u<<2)>>1]}ta(H[n>>2]+N(b,i)|0,d,b);b=i+1|0;c=b?c:c+1|0;i=b;if(!c&K[e+80>>2]>b>>>0){continue}break}}if(d){ra(d)}if(h){ra(h)}break h;case 0:break i;default:break h}}g=0;h=0;i=0;c=0;b=I[e+24|0];if(b){h=sa(b);ua(h,0,b);g=sa(b);ua(g,0,b)}if(H[e+80>>2]){while(1){t=H[e>>2];p=H[t>>2];b=H[e+40>>2];d=H[e+48>>2]+Nj(b,H[e+44>>2],i,c)|0;m=ta(h,p+d|0,b);l=I[e+24|0];m:{if(!l){break m}o=H[a+48>>2];d=0;if((l|0)!=1){r=l&254;j=0;while(1){F[d+g|0]=I[d+m|0]+I[o+(d+u<<2)|0];n=d|1;F[n+g|0]=I[m+n|0]+I[o+(n+u<<2)|0];d=d+2|0;j=j+2|0;if((r|0)!=(j|0)){continue}break}}if(!(l&1)){break m}F[d+g|0]=I[d+m|0]+I[o+(d+u<<2)|0]}ta(H[t>>2]+N(b,i)|0,g,b);b=i+1|0;c=b?c:c+1|0;i=b;if(!c&K[e+80>>2]>b>>>0){continue}break}}if(g){ra(g)}if(h){ra(h)}}u=I[e+24|0]+u|0;j=1}if(f){ra(f)}if(k){ra(k)}if(j){break c}f=0;break a}m=H[H[a+60>>2]+(s<<2)>>2];f=H[a+36>>2];g=H[(ha[H[H[a>>2]+28>>2]](a)|0)+40>>2];H[q+12>>2]=H[e+56>>2];c=sa(32);H[q>>2]=c;H[q+4>>2]=24;H[q+8>>2]=-2147483616;b=I[1206]|I[1207]<<8|(I[1208]<<16|I[1209]<<24);d=I[1202]|I[1203]<<8|(I[1204]<<16|I[1205]<<24);F[c+16|0]=d;F[c+17|0]=d>>>8;F[c+18|0]=d>>>16;F[c+19|0]=d>>>24;F[c+20|0]=b;F[c+21|0]=b>>>8;F[c+22|0]=b>>>16;F[c+23|0]=b>>>24;b=I[1198]|I[1199]<<8|(I[1200]<<16|I[1201]<<24);d=I[1194]|I[1195]<<8|(I[1196]<<16|I[1197]<<24);F[c+8|0]=d;F[c+9|0]=d>>>8;F[c+10|0]=d>>>16;F[c+11|0]=d>>>24;F[c+12|0]=b;F[c+13|0]=b>>>8;F[c+14|0]=b>>>16;F[c+15|0]=b>>>24;b=I[1190]|I[1191]<<8|(I[1192]<<16|I[1193]<<24);d=I[1186]|I[1187]<<8|(I[1188]<<16|I[1189]<<24);F[c|0]=d;F[c+1|0]=d>>>8;F[c+2|0]=d>>>16;F[c+3|0]=d>>>24;F[c+4|0]=b;F[c+5|0]=b>>>8;F[c+6|0]=b>>>16;F[c+7|0]=b>>>24;F[c+24|0]=0;b=rd(g,q+12|0,q);if(F[q+11|0]<0){ra(H[q>>2])}c=s+1|0;n:{if(b){me(e,m);break n}i=f+N(s,24)|0;f=H[i+4>>2];s=I[e+24|0];d=s<<2;b=sa(d);H[q>>2]=1065353216;v=L[i+20>>2];f=-1<0){L[q>>2]=v/O(f|0)}if((f|0)<=0){break b}o:{if(!H[m+80>>2]){break o}if(!s){k=0;f=0;while(1){ta(H[H[e+64>>2]>>2]+f|0,b,d);f=d+f|0;k=k+1|0;if(k>>>0>2]){continue}break}break o}h=H[H[m>>2]>>2]+H[m+48>>2]|0;t=s&254;r=s&1;j=0;l=0;f=0;while(1){g=H[i+8>>2];v=L[q>>2];k=0;o=0;if((s|0)!=1){while(1){n=k<<2;p=h+(f<<2)|0;L[n+b>>2]=O(v*O(H[p>>2]))+L[g+n>>2];n=n|4;L[n+b>>2]=O(v*O(H[p+4>>2]))+L[g+n>>2];k=k+2|0;f=f+2|0;o=o+2|0;if((t|0)!=(o|0)){continue}break}}if(r){k=k<<2;L[k+b>>2]=O(v*O(H[h+(f<<2)>>2]))+L[g+k>>2];f=f+1|0}ta(H[H[e+64>>2]>>2]+l|0,b,d);l=d+l|0;j=j+1|0;if(j>>>0>2]){continue}break}}ra(b)}s=c}f=1;w=w+1|0;if((ha[H[H[a>>2]+24>>2]](a)|0)>(w|0)){continue}break a}break}ra(b);f=0}fa=q+16|0;return f|0}function jc(a,b,c,d){var e=0,f=0,g=0,h=0,i=0,j=O(0),k=0;a:{b:{if(!d){break b}c:{switch(H[a+28>>2]-1|0){case 0:e=I[a+24|0];f=c&255;if(e>>>0>>0?e:f){e=H[H[a>>2]>>2];b=H[a+48>>2]+Nj(H[a+40>>2],H[a+44>>2],b,0)|0;b=e+b|0;while(1){if(K[H[a>>2]+4>>2]<=b>>>0){return 0}e=F[b|0];if((e|0)<0){break b}F[d+g|0]=e;b=b+1|0;g=g+1|0;e=I[a+24|0];if(g>>>0<(e>>>0>>0?e:f)>>>0){continue}break}}i=1;if(e>>>0>=f>>>0){break b}break a;case 1:e=I[a+24|0];f=c&255;if(e>>>0>>0?e:f){e=H[H[a>>2]>>2];b=H[a+48>>2]+Nj(H[a+40>>2],H[a+44>>2],b,0)|0;b=e+b|0;while(1){if(K[H[a>>2]+4>>2]<=b>>>0){break b}F[d+g|0]=I[b|0];b=b+1|0;g=g+1|0;e=I[a+24|0];if(g>>>0<(e>>>0>>0?e:f)>>>0){continue}break}}i=1;if(e>>>0>=f>>>0){break b}break a;case 2:e=I[a+24|0];f=c&255;if(e>>>0>>0?e:f){e=H[H[a>>2]>>2];b=H[a+48>>2]+Nj(H[a+40>>2],H[a+44>>2],b,0)|0;b=e+b|0;while(1){if(K[H[a>>2]+4>>2]<=b>>>0){break b}e=J[b>>1];if(e>>>0>255){break b}F[d+g|0]=e;b=b+2|0;g=g+1|0;e=I[a+24|0];if(g>>>0<(e>>>0>>0?e:f)>>>0){continue}break}}i=1;if(e>>>0>=f>>>0){break b}break a;case 3:e=I[a+24|0];f=c&255;if(e>>>0>>0?e:f){e=H[H[a>>2]>>2];b=H[a+48>>2]+Nj(H[a+40>>2],H[a+44>>2],b,0)|0;b=e+b|0;while(1){if(K[H[a>>2]+4>>2]<=b>>>0){break b}e=J[b>>1];if(e>>>0>255){break b}F[d+g|0]=e;b=b+2|0;g=g+1|0;e=I[a+24|0];if(g>>>0<(e>>>0>>0?e:f)>>>0){continue}break}}i=1;if(e>>>0>=f>>>0){break b}break a;case 4:e=I[a+24|0];f=c&255;if(e>>>0>>0?e:f){e=H[H[a>>2]>>2];b=H[a+48>>2]+Nj(H[a+40>>2],H[a+44>>2],b,0)|0;b=e+b|0;while(1){if(K[H[a>>2]+4>>2]<=b>>>0){break b}e=H[b>>2];if(e>>>0>255){break b}F[d+g|0]=e;b=b+4|0;g=g+1|0;e=I[a+24|0];if(g>>>0<(e>>>0>>0?e:f)>>>0){continue}break}}i=1;if(e>>>0>=f>>>0){break b}break a;case 5:e=I[a+24|0];f=c&255;if(e>>>0>>0?e:f){e=H[H[a>>2]>>2];b=H[a+48>>2]+Nj(H[a+40>>2],H[a+44>>2],b,0)|0;b=e+b|0;while(1){if(K[H[a>>2]+4>>2]<=b>>>0){break b}e=H[b>>2];if(e>>>0>255){break b}F[d+g|0]=e;b=b+4|0;g=g+1|0;e=I[a+24|0];if(g>>>0<(e>>>0>>0?e:f)>>>0){continue}break}}i=1;if(e>>>0>=f>>>0){break b}break a;case 6:e=I[a+24|0];f=c&255;if(e>>>0>>0?e:f){e=H[H[a>>2]>>2];b=H[a+48>>2]+Nj(H[a+40>>2],H[a+44>>2],b,0)|0;b=e+b|0;while(1){if(K[H[a>>2]+4>>2]<=b>>>0){break b}e=H[b+4>>2];k=H[b>>2];if(!e&k>>>0>255|e){break b}F[d+g|0]=k;b=b+8|0;g=g+1|0;e=I[a+24|0];if(g>>>0<(e>>>0>>0?e:f)>>>0){continue}break}}i=1;if(e>>>0>=f>>>0){break b}break a;case 7:e=I[a+24|0];f=c&255;if(e>>>0>>0?e:f){e=H[H[a>>2]>>2];b=H[a+48>>2]+Nj(H[a+40>>2],H[a+44>>2],b,0)|0;b=e+b|0;while(1){if(K[H[a>>2]+4>>2]<=b>>>0){break b}e=H[b+4>>2];k=H[b>>2];if(!e&k>>>0>255|e){break b}F[d+g|0]=k;b=b+8|0;g=g+1|0;e=I[a+24|0];if(g>>>0<(e>>>0>>0?e:f)>>>0){continue}break}}i=1;if(e>>>0>=f>>>0){break b}break a;case 8:e=I[a+24|0];c=c&255;d:{if(c>>>0>e>>>0?e:c){e=H[H[a>>2]>>2];b=H[a+48>>2]+Nj(H[a+40>>2],H[a+44>>2],b,0)|0;b=e+b|0;while(1){if(K[H[a>>2]+4>>2]<=b>>>0){break d}j=L[b>>2];if(j=O(255))){break d}f=d+g|0;e:{f:{if(I[a+32|0]){if(j>O(1)){break d}h=T(+j*255+.5);if(!(h<4294967296&h>=0)){break f}e=~~h>>>0;break e}if(!(j=O(0))){break f}e=~~j>>>0;break e}e=0}F[f|0]=e;b=b+4|0;g=g+1|0;e=I[a+24|0];if(g>>>0<(c>>>0>e>>>0?e:c)>>>0){continue}break}}i=1;if(c>>>0<=e>>>0){break d}ua(d+e|0,0,c-e|0)}return i;case 9:e=I[a+24|0];f=c&255;if(e>>>0>>0?e:f){e=H[H[a>>2]>>2];b=H[a+48>>2]+Nj(H[a+40>>2],H[a+44>>2],b,0)|0;b=e+b|0;while(1){if(K[H[a>>2]+4>>2]<=b>>>0){break b}h=M[b>>3];if(h<0|h!=h|(P(h)==Y|h>=255)){break b}k=d+g|0;if(I[a+32|0]){if(h>1){break b}h=T(h*255+.5)}g:{if(h<4294967296&h>=0){e=~~h>>>0;break g}e=0}F[k|0]=e;b=b+8|0;g=g+1|0;e=I[a+24|0];if(g>>>0<(e>>>0>>0?e:f)>>>0){continue}break}}i=1;if(e>>>0>=f>>>0){break b}break a;case 10:break c;default:break b}}e=I[a+24|0];f=c&255;if(e>>>0>>0?e:f){e=H[H[a>>2]>>2];b=H[a+48>>2]+Nj(H[a+40>>2],H[a+44>>2],b,0)|0;b=e+b|0;while(1){if(K[H[a>>2]+4>>2]<=b>>>0){break b}F[d+g|0]=I[b|0];b=b+1|0;g=g+1|0;e=I[a+24|0];if(g>>>0<(e>>>0>>0?e:f)>>>0){continue}break}}i=1;if(e>>>0>=f>>>0){break b}ua(d+e|0,0,(c&255)-e|0)}return i}ua(d+e|0,0,(c&255)-e|0);return 1}function Je(a,b,c){var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0;g=fa+-64|0;fa=g;H[g+56>>2]=0;H[g+48>>2]=0;H[g+52>>2]=0;H[g+40>>2]=0;H[g+44>>2]=0;H[g+32>>2]=0;H[g+36>>2]=0;H[g+24>>2]=0;H[g+28>>2]=0;H[g+16>>2]=0;H[g+20>>2]=0;H[g+8>>2]=0;H[g+12>>2]=0;i=g+8|0;d=J[b+38>>1];a:{b:{if(!d){break b}c:{if(d>>>0<=511){e=H[b+12>>2];d=H[b+20>>2];f=H[b+16>>2];h=f+4|0;d=h>>>0<4?d+1|0:d;if(h>>>0>K[b+8>>2]&(d|0)>=(e|0)|(d|0)>(e|0)){break b}d=f+H[b>>2]|0;j=I[d|0]|I[d+1|0]<<8|(I[d+2|0]<<16|I[d+3|0]<<24);H[i+12>>2]=j;d=H[b+20>>2];e=H[b+16>>2]+4|0;d=e>>>0<4?d+1|0:d;H[b+16>>2]=e;H[b+20>>2]=d;break c}if(!kb(1,i+12|0,b)){break b}e=H[b+16>>2];d=H[b+20>>2];j=H[i+12>>2]}f=H[b+8>>2];h=f-e|0;d=H[b+12>>2]-((e>>>0>f>>>0)+d|0)|0;if(h>>>0>>6>>>0&(d|0)<=0|(d|0)<0){break b}e=H[i>>2];d=H[i+4>>2]-e>>2;d:{if(d>>>0>>0){Aa(i,j-d|0);j=H[i+12>>2];break d}if(d>>>0<=j>>>0){break d}H[i+4>>2]=e+(j<<2)}k=1;if(!j){break a}e=H[b+16>>2];d=H[b+20>>2];r=H[i>>2];s=H[b+8>>2];p=H[b+12>>2];h=0;while(1){k=0;if((d|0)>=(p|0)&e>>>0>=s>>>0|(d|0)>(p|0)){break a}k=H[b>>2];n=I[k+e|0];e=e+1|0;d=e?d:d+1|0;H[b+16>>2]=e;H[b+20>>2]=d;f=n>>>2|0;m=0;e:{f:{g:{h:{t=n&3;switch(t|0){case 0:break f;case 3:break h;default:break g}}f=f+h|0;k=0;if(f>>>0>=j>>>0){break a}ua(r+(h<<2)|0,0,(n&252)+4|0);h=f;break e}while(1){if((d|0)>=(p|0)&e>>>0>=s>>>0|(d|0)>(p|0)){break b}j=I[e+k|0];e=e+1|0;d=e?d:d+1|0;H[b+16>>2]=e;H[b+20>>2]=d;f=j<<(m<<3|6)|f;m=m+1|0;if((t|0)!=(m|0)){continue}break}}H[r+(h<<2)>>2]=f}j=H[i+12>>2];h=h+1|0;if(j>>>0>h>>>0){continue}break}d=i+16|0;p=H[i>>2];f=H[i+16>>2];e=H[i+20>>2]-f|0;i:{if(e>>>0<=4194303){Aa(d,1048576-(e>>>2|0)|0);break i}if((e|0)==4194304){break i}H[i+20>>2]=f+4194304}e=i+28|0;h=H[e>>2];f=H[i+32>>2]-h>>3;j:{if(f>>>0>>0){sb(e,j-f|0);h=H[e>>2];break j}if(f>>>0>j>>>0){H[i+32>>2]=(j<<3)+h}if(!j){break b}}i=H[d>>2];d=0;k=0;while(1){e=p+(d<<2)|0;m=H[e>>2];n=(d<<3)+h|0;f=k;H[n+4>>2]=f;H[n>>2]=m;e=H[e>>2];k=e+f|0;if(k>>>0>1048576){break b}k:{if(f>>>0>=k>>>0){break k}m=0;n=e&7;if(n){while(1){H[i+(f<<2)>>2]=d;f=f+1|0;m=m+1|0;if((n|0)!=(m|0)){continue}break}}if(e-1>>>0<=6){break k}while(1){e=i+(f<<2)|0;H[e>>2]=d;H[e+28>>2]=d;H[e+24>>2]=d;H[e+20>>2]=d;H[e+16>>2]=d;H[e+12>>2]=d;H[e+8>>2]=d;H[e+4>>2]=d;f=f+8|0;if((k|0)!=(f|0)){continue}break}}d=d+1|0;if((j|0)!=(d|0)){continue}break}l=(k|0)==1048576}k=l}l:{if(!k|(H[g+20>>2]?0:a)){break l}k=0;i=fa-16|0;fa=i;m:{n:{if(J[b+38>>1]<=511){f=H[b+12>>2];j=f;d=H[b+20>>2];l=H[b+16>>2];e=l+8|0;d=e>>>0<8?d+1|0:d;h=H[b+8>>2];if(h>>>0>>0&(d|0)>=(f|0)|(d|0)>(f|0)){break m}l=l+H[b>>2]|0;f=I[l|0]|I[l+1|0]<<8|(I[l+2|0]<<16|I[l+3|0]<<24);l=I[l+4|0]|I[l+5|0]<<8|(I[l+6|0]<<16|I[l+7|0]<<24);H[b+16>>2]=e;H[b+20>>2]=d;break n}if(!jb(1,i+8|0,b)){break m}e=H[b+16>>2];d=H[b+20>>2];h=H[b+8>>2];j=H[b+12>>2];f=H[i+8>>2];l=H[i+12>>2]}m=h-e|0;h=j-((e>>>0>h>>>0)+d|0)|0;if((h|0)==(l|0)&f>>>0>m>>>0|h>>>0>>0){break m}d=d+l|0;h=e+f|0;d=h>>>0>>0?d+1|0:d;H[b+16>>2]=h;H[b+20>>2]=d;if((f|0)<=0){break m}b=e+H[b>>2]|0;H[g+48>>2]=b;d=f-1|0;e=d+b|0;h=I[e|0];o:{if(h>>>0<=63){H[g+52>>2]=d;b=I[e|0]&63;break o}p:{switch((h>>>6|0)-1|0){case 0:if(f>>>0<2){break m}d=f-2|0;H[g+52>>2]=d;b=b+d|0;b=I[b+1|0]<<8&16128|I[b|0];break o;case 1:if(f>>>0<3){break m}d=f-3|0;H[g+52>>2]=d;b=b+d|0;b=I[b+1|0]<<8|I[b+2|0]<<16&4128768|I[b|0];break o;default:break p}}d=f-4|0;H[g+52>>2]=d;b=b+d|0;b=I[b+2|0]<<16|I[b+3|0]<<24&1056964608|I[b+1|0]<<8|I[b|0]}H[g+56>>2]=b+4194304;k=b>>>0<1069547520}fa=i+16|0;if(!k){break l}if(!a){o=1;break l}b=H[g+56>>2];d=H[g+36>>2];e=H[g+48>>2];f=H[g+24>>2];while(1){q:{if(b>>>0>4194303){break q}o=H[g+52>>2];while(1){if((o|0)<=0){break q}o=o-1|0;H[g+52>>2]=o;b=I[e+o|0]|b<<8;H[g+56>>2]=b;if(b>>>0<4194304){continue}break}}h=b&1048575;k=H[f+(h<<2)>>2];l=d+(k<<3)|0;b=(N(H[l>>2],b>>>20|0)+h|0)-H[l+4>>2]|0;H[g+56>>2]=b;H[(q<<2)+c>>2]=k;o=1;q=q+1|0;if((q|0)!=(a|0)){continue}break}}a=H[g+36>>2];if(a){H[g+40>>2]=a;ra(a)}a=H[g+24>>2];if(a){H[g+28>>2]=a;ra(a)}a=H[g+8>>2];if(a){H[g+12>>2]=a;ra(a)}fa=g- -64|0;return o}function Pb(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,w=0,x=0,y=0;f=fa-96|0;fa=f;e=H[a+16>>2];F[f+92|0]=1;H[f+88>>2]=b;H[f+84>>2]=b;H[f+80>>2]=e;k=H[a+20>>2];d=H[k>>2];a:{b:{e=H[H[e+28>>2]+(b<<2)>>2];if(e>>>0>2]-d>>2>>>0){d=H[H[a+8>>2]+(H[d+(e<<2)>>2]<<2)>>2];e=H[a+4>>2];if(!I[e+84|0]){d=H[H[e+68>>2]+(d<<2)>>2]}H[f+72>>2]=0;H[f+76>>2]=0;k=f- -64|0;H[k>>2]=0;H[k+4>>2]=0;H[f+56>>2]=0;H[f+60>>2]=0;Va(e,d,F[e+24|0],f+56|0);if((b|0)!=-1){e=b+1|0;k=(e>>>0)%3|0?e:b-2|0;i=((b>>>0)%3|0?-1:2)+b|0;while(1){d=k;e=i;c:{if(!H[a+28>>2]){break c}e=b+1|0;d=(e>>>0)%3|0?e:b-2|0;e=b-1|0;if((b>>>0)%3|0){break c}e=b+2|0}h=H[a+20>>2];b=H[h>>2];d=H[H[H[a+16>>2]+28>>2]+(d<<2)>>2];if(d>>>0>=H[h+4>>2]-b>>2>>>0){break b}d=H[H[a+8>>2]+(H[b+(d<<2)>>2]<<2)>>2];b=H[a+4>>2];if(!I[b+84|0]){d=H[H[b+68>>2]+(d<<2)>>2]}H[f+48>>2]=0;H[f+52>>2]=0;H[f+40>>2]=0;H[f+44>>2]=0;H[f+32>>2]=0;H[f+36>>2]=0;Va(b,d,F[b+24|0],f+32|0);d=H[a+20>>2];b=H[d>>2];e=H[H[H[a+16>>2]+28>>2]+(e<<2)>>2];if(e>>>0>=H[d+4>>2]-b>>2>>>0){break a}d=H[H[a+8>>2]+(H[b+(e<<2)>>2]<<2)>>2];b=H[a+4>>2];if(!I[b+84|0]){d=H[H[b+68>>2]+(d<<2)>>2]}H[f+24>>2]=0;H[f+28>>2]=0;H[f+16>>2]=0;H[f+20>>2]=0;H[f+8>>2]=0;H[f+12>>2]=0;Va(b,d,F[b+24|0],f+8|0);e=H[f+8>>2];b=H[f+56>>2];d=e-b|0;h=H[f+60>>2];j=H[f+12>>2]-(h+(b>>>0>e>>>0)|0)|0;p=H[f+40>>2];e=H[f+64>>2];s=p-e|0;t=H[f+68>>2];p=H[f+44>>2]-(t+(e>>>0>p>>>0)|0)|0;u=Nj(d,j,s,p);w=n-u|0;n=g-(ga+(n>>>0>>0)|0)|0;o=w;g=H[f+16>>2];u=g-e|0;t=H[f+20>>2]-((e>>>0>g>>>0)+t|0)|0;g=H[f+32>>2];w=g-b|0;h=H[f+36>>2]-((b>>>0>g>>>0)+h|0)|0;e=Nj(u,t,w,h);b=o+e|0;g=ga+n|0;g=b>>>0>>0?g+1|0:g;n=b;e=l;o=d;y=j;b=H[f+48>>2];l=H[f+72>>2];d=b-l|0;j=H[f+76>>2];x=H[f+52>>2]-(j+(b>>>0>>0)|0)|0;o=Nj(o,y,d,x);e=e+o|0;b=ga+m|0;b=e>>>0>>0?b+1|0:b;m=H[f+24>>2];o=m-l|0;j=H[f+28>>2]-((l>>>0>m>>>0)+j|0)|0;m=Nj(o,j,w,h);l=e-m|0;m=b-(ga+(e>>>0>>0)|0)|0;b=Nj(u,t,d,x);e=q-b|0;b=r-(ga+(b>>>0>q>>>0)|0)|0;r=Nj(o,j,s,p);q=r+e|0;b=ga+b|0;b=q>>>0>>0?b+1|0:b;r=b;b=H[f+88>>2];e=H[f+80>>2];d:{if(I[f+92|0]){e:{f:{g:{h:{if((b|0)==-1){break h}d=b+1|0;b=(d>>>0)%3|0?d:b-2|0;if((b|0)==-1|H[H[e>>2]+(b>>>3&536870908)>>2]>>>b&1){break h}b=H[H[H[e+64>>2]+12>>2]+(b<<2)>>2];if((b|0)!=-1){break g}}H[f+88>>2]=-1;break f}d=b+1|0;b=(d>>>0)%3|0?d:b-2|0;H[f+88>>2]=b;if((b|0)!=-1){break e}}b=H[f+84>>2];d=-1;i:{if((b|0)==-1){break i}j:{if((b>>>0)%3|0){b=b-1|0;break j}b=b+2|0;d=-1;if((b|0)==-1){break i}}d=-1;if(H[H[e>>2]+(b>>>3&536870908)>>2]>>>b&1){break i}b=H[H[H[e+64>>2]+12>>2]+(b<<2)>>2];d=-1;if((b|0)==-1){break i}d=b-1|0;if((b>>>0)%3|0){break i}d=b+2|0}F[f+92|0]=0;H[f+88>>2]=d;break d}if((b|0)!=H[f+84>>2]){break d}H[f+88>>2]=-1;break d}d=-1;k:{if((b|0)==-1){break k}l:{if((b>>>0)%3|0){b=b-1|0;break l}b=b+2|0;d=-1;if((b|0)==-1){break k}}d=-1;if(H[H[e>>2]+(b>>>3&536870908)>>2]>>>b&1){break k}b=H[H[H[e+64>>2]+12>>2]+(b<<2)>>2];d=-1;if((b|0)==-1){break k}d=b-1|0;if((b>>>0)%3|0){break k}d=b+2|0}H[f+88>>2]=d}b=H[f+88>>2];if((b|0)!=-1){continue}break}}b=r>>31;e=b^q;j=e-b|0;h=(b^r)-((b>>>0>e>>>0)+b|0)|0;p=-1;e=2147483647;b=m>>31;k=b^l;d=(b^m)-((b>>>0>k>>>0)+b|0)|0;b=k-b|0;s=b^-1;i=d^2147483647;k=g;m:{n:{if(!H[a+28>>2]){if((i|0)==(h|0)&j>>>0>s>>>0|i>>>0>>0){break m}i=g;a=b;e=b+j|0;b=d+h|0;b=a>>>0>e>>>0?b+1|0:b;a=g>>31;d=a;h=d^n;j=h-d|0;g=e+j|0;d=(d^i)-((d>>>0>h>>>0)+d|0)|0;a=g;g=d^2147483647;g=(g|0)==(b|0)&(j^-1)>>>0>>0|b>>>0>g>>>0;a=g?-1:a;if(!(g&0)&(a|0)<=536870912|(a|0)<536870912){break m}b=0;a=a>>>29|0;break n}o:{if((i|0)==(h|0)&j>>>0>s>>>0|i>>>0>>0){break o}a=b;i=b+j|0;b=d+h|0;b=a>>>0>i>>>0?b+1|0:b;a=i;h=g;d=g>>31;g=d;i=d^n;d=(d^h)-(d+(d>>>0>i>>>0)|0)|0;g=i-g|0;i=d^2147483647;if((i|0)==(b|0)&(g^-1)>>>0>>0|b>>>0>i>>>0){break o}b=b+d|0;a=a+g|0;b=a>>>0>>0?b+1|0:b;p=a;e=b;if(!b&a>>>0<536870913){break m}}b=e>>>29|0;a=(e&536870911)<<3|p>>>29}n=Oj(n,k,a,b);l=Oj(l,m,a,b);q=Oj(q,r,a,b)}H[c+8>>2]=n;H[c+4>>2]=l;H[c>>2]=q;fa=f+96|0;return}Ea();v()}Ea();v()}Ea();v()}function Gj(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0;H[a+8>>2]=e;s=a+32|0;g=H[s>>2];f=H[a+36>>2]-g>>2;a:{if(f>>>0>>0){Aa(s,e-f|0);d=H[a+8>>2];break a}d=e;if(d>>>0>=f>>>0){break a}H[a+36>>2]=g+(e<<2);d=e}w=e<<2;f=e>>>0>1073741823?-1:w;m=ua(sa(f),0,f);p=ua(sa(f),0,f);b:{if((d|0)<=0){break b}i=H[a+32>>2];while(1){d=h<<2;f=H[d+m>>2];g=H[a+16>>2];c:{if((f|0)>(g|0)){H[d+i>>2]=g;break c}d=d+i|0;g=H[a+12>>2];if((g|0)>(f|0)){H[d>>2]=g;break c}H[d>>2]=f}d=H[a+8>>2];h=h+1|0;if((d|0)>(h|0)){continue}break}if((d|0)<=0){break b}f=0;while(1){g=f<<2;d=g+c|0;g=H[b+g>>2]+H[g+i>>2]|0;H[d>>2]=g;d:{if((g|0)>H[a+16>>2]){g=g-H[a+20>>2]|0}else{if((g|0)>=H[a+12>>2]){break d}g=g+H[a+20>>2]|0}H[d>>2]=g}d=H[a+8>>2];f=f+1|0;if((d|0)>(f|0)){continue}break}}f=H[a+56>>2];x=H[f>>2];f=H[f+4>>2]-x|0;if((f|0)>=5){C=H[a+52>>2];r=H[a+48>>2];u=f>>>2|0;D=u>>>0<=2?2:u;y=e&-2;z=e&1;E=e&-4;A=e&3;B=e-1|0;n=1;while(1){e:{f:{g:{h:{if((n|0)!=(u|0)){g=H[(n<<2)+x>>2];t=(e|0)<=0;if(!t){ua(m,0,w)}if((g|0)==-1){i=N(e,n);break f}F=H[r>>2];l=0;f=g;while(1){i:{if(H[(f>>>3&536870908)+F>>2]>>>f&1){break i}i=H[H[H[r+64>>2]+12>>2]+(f<<2)>>2];if((i|0)==-1){break i}j=H[C>>2];h=H[r+28>>2];o=H[j+(H[h+(i<<2)>>2]<<2)>>2];if((o|0)>=(n|0)){break i}k=i+1|0;k=H[j+(H[h+(((k>>>0)%3|0?k:i-2|0)<<2)>>2]<<2)>>2];if((k|0)>=(n|0)){break i}i=H[j+(H[h+(i+((i>>>0)%3|0?-1:2)<<2)>>2]<<2)>>2];if((i|0)>=(n|0)){break i}j:{if(t){break j}i=N(e,i);j=N(e,k);o=N(e,o);h=0;q=0;if(B){while(1){H[(h<<2)+p>>2]=(H[(h+i<<2)+c>>2]+H[(h+j<<2)+c>>2]|0)-H[(h+o<<2)+c>>2];k=h|1;H[(k<<2)+p>>2]=(H[(i+k<<2)+c>>2]+H[(j+k<<2)+c>>2]|0)-H[(k+o<<2)+c>>2];h=h+2|0;q=q+2|0;if((y|0)!=(q|0)){continue}break}}if(z){H[(h<<2)+p>>2]=(H[(h+i<<2)+c>>2]+H[(h+j<<2)+c>>2]|0)-H[(h+o<<2)+c>>2]}if(t){break j}o=0;h=0;i=0;if(e>>>0>3){while(1){j=h<<2;k=j+m|0;H[k>>2]=H[j+p>>2]+H[k>>2];k=j|4;q=k+m|0;H[q>>2]=H[k+p>>2]+H[q>>2];k=j|8;q=k+m|0;H[q>>2]=H[k+p>>2]+H[q>>2];j=j|12;k=j+m|0;H[k>>2]=H[j+p>>2]+H[k>>2];h=h+4|0;i=i+4|0;if((E|0)!=(i|0)){continue}break}}if(!A){break j}while(1){i=h<<2;j=i+m|0;H[j>>2]=H[i+p>>2]+H[j>>2];h=h+1|0;o=o+1|0;if((A|0)!=(o|0)){continue}break}}l=l+1|0}k:{l:{if((f>>>0)%3|0){h=f-1|0;break l}h=f+2|0;i=-1;if((h|0)==-1){break k}}i=-1;if(H[H[r>>2]+(h>>>3&536870908)>>2]>>>h&1){break k}f=H[H[H[r+64>>2]+12>>2]+(h<<2)>>2];i=-1;if((f|0)==-1){break k}i=f-1|0;if((f>>>0)%3|0){break k}i=f+2|0}f=i;if((g|0)!=(f|0)&(f|0)!=-1){continue}break}i=N(e,n);if(!l){break f}if(t){break g}h=0;f=0;if(!B){break h}while(1){g=h<<2;j=g+m|0;H[j>>2]=H[j>>2]/(l|0);g=(g|4)+m|0;H[g>>2]=H[g>>2]/(l|0);h=h+2|0;f=f+2|0;if((y|0)!=(f|0)){continue}break}break h}Ea();v()}if(!z){break g}f=(h<<2)+m|0;H[f>>2]=H[f>>2]/(l|0)}if((d|0)<=0){break e}l=H[s>>2];h=0;while(1){d=h<<2;f=H[d+m>>2];g=H[a+16>>2];m:{if((f|0)>(g|0)){H[d+l>>2]=g;break m}d=d+l|0;g=H[a+12>>2];if((g|0)>(f|0)){H[d>>2]=g;break m}H[d>>2]=f}d=H[a+8>>2];h=h+1|0;if((d|0)>(h|0)){continue}break}f=0;if((d|0)<=0){break e}d=i<<2;i=d+c|0;h=b+d|0;while(1){g=f<<2;d=g+i|0;g=H[h+g>>2]+H[g+l>>2]|0;H[d>>2]=g;n:{if((g|0)>H[a+16>>2]){g=g-H[a+20>>2]|0}else{if((g|0)>=H[a+12>>2]){break n}g=g+H[a+20>>2]|0}H[d>>2]=g}d=H[a+8>>2];f=f+1|0;if((d|0)>(f|0)){continue}break}break e}if((d|0)<=0){break e}g=(N(n-1|0,e)<<2)+c|0;l=H[s>>2];h=0;while(1){d=h<<2;f=H[d+g>>2];j=H[a+16>>2];o:{if((f|0)>(j|0)){H[d+l>>2]=j;break o}d=d+l|0;j=H[a+12>>2];if((j|0)>(f|0)){H[d>>2]=j;break o}H[d>>2]=f}d=H[a+8>>2];h=h+1|0;if((d|0)>(h|0)){continue}break}f=0;if((d|0)<=0){break e}d=i<<2;i=d+c|0;h=b+d|0;while(1){g=f<<2;d=g+i|0;g=H[h+g>>2]+H[g+l>>2]|0;H[d>>2]=g;p:{if((g|0)>H[a+16>>2]){g=g-H[a+20>>2]|0}else{if((g|0)>=H[a+12>>2]){break p}g=g+H[a+20>>2]|0}H[d>>2]=g}d=H[a+8>>2];f=f+1|0;if((d|0)>(f|0)){continue}break}}n=n+1|0;if((D|0)!=(n|0)){continue}break}}ra(p);ra(m);return 1}function oc(a,b,c){var d=0,e=0,f=0,g=0,h=0,i=0;e=fa-48|0;fa=e;d=J[6677]|J[6678]<<16;f=J[6675]|J[6676]<<16;G[e+38>>1]=f;G[e+40>>1]=f>>>16;G[e+42>>1]=d;G[e+44>>1]=d>>>16;d=H[3337];H[e+32>>2]=H[3336];H[e+36>>2]=d;d=H[3335];H[e+24>>2]=H[3334];H[e+28>>2]=d;d=H[3333];H[e+16>>2]=H[3332];H[e+20>>2]=d;f=H[b+12>>2];d=H[b+20>>2];g=H[b+16>>2];h=g+5|0;d=h>>>0<5?d+1|0:d;a:{b:{if(h>>>0>K[b+8>>2]&(d|0)>=(f|0)|(d|0)>(f|0)){b=Pa(e+16|0);if(b>>>0>=4294967280){break a}c:{d:{if(b>>>0>=11){d=(b|15)+1|0;c=sa(d);H[e+8>>2]=d|-2147483648;H[e>>2]=c;H[e+4>>2]=b;break d}F[e+11|0]=b;c=e;if(!b){break c}}ta(c,e+16|0,b)}F[b+c|0]=0;H[a>>2]=-2;a=a+4|0;if(F[e+11|0]>=0){b=H[e+4>>2];H[a>>2]=H[e>>2];H[a+4>>2]=b;H[a+8>>2]=H[e+8>>2];break b}b=a;a=H[e>>2];Ba(b,a,H[e+4>>2]);ra(a);break b}d=g+H[b>>2]|0;f=I[d|0]|I[d+1|0]<<8|(I[d+2|0]<<16|I[d+3|0]<<24);F[c|0]=f;F[c+1|0]=f>>>8;F[c+2|0]=f>>>16;F[c+3|0]=f>>>24;F[c+4|0]=I[d+4|0];d=H[b+20>>2];f=H[b+16>>2]+5|0;d=f>>>0<5?d+1|0:d;H[b+16>>2]=f;H[b+20>>2]=d;if(Ha(c,1260,5)){b=sa(32);F[b+17|0]=0;F[b+16|0]=I[1496];c=I[1492]|I[1493]<<8|(I[1494]<<16|I[1495]<<24);d=I[1488]|I[1489]<<8|(I[1490]<<16|I[1491]<<24);F[b+8|0]=d;F[b+9|0]=d>>>8;F[b+10|0]=d>>>16;F[b+11|0]=d>>>24;F[b+12|0]=c;F[b+13|0]=c>>>8;F[b+14|0]=c>>>16;F[b+15|0]=c>>>24;c=I[1484]|I[1485]<<8|(I[1486]<<16|I[1487]<<24);d=I[1480]|I[1481]<<8|(I[1482]<<16|I[1483]<<24);F[b|0]=d;F[b+1|0]=d>>>8;F[b+2|0]=d>>>16;F[b+3|0]=d>>>24;F[b+4|0]=c;F[b+5|0]=c>>>8;F[b+6|0]=c>>>16;F[b+7|0]=c>>>24;H[a>>2]=-1;Ba(a+4|0,b,17);ra(b);break b}g=H[b+12>>2];if((g|0)<=(d|0)&K[b+8>>2]<=f>>>0|(d|0)>(g|0)){b=Pa(e+16|0);if(b>>>0>=4294967280){break a}e:{f:{if(b>>>0>=11){d=(b|15)+1|0;c=sa(d);H[e+8>>2]=d|-2147483648;H[e>>2]=c;H[e+4>>2]=b;break f}F[e+11|0]=b;c=e;if(!b){break e}}ta(c,e+16|0,b)}F[b+c|0]=0;H[a>>2]=-2;a=a+4|0;if(F[e+11|0]>=0){b=H[e+4>>2];H[a>>2]=H[e>>2];H[a+4>>2]=b;H[a+8>>2]=H[e+8>>2];break b}b=a;a=H[e>>2];Ba(b,a,H[e+4>>2]);ra(a);break b}F[c+5|0]=I[f+H[b>>2]|0];d=H[b+20>>2];f=H[b+16>>2]+1|0;d=f?d:d+1|0;H[b+16>>2]=f;H[b+20>>2]=d;g=H[b+12>>2];if((g|0)<=(d|0)&K[b+8>>2]<=f>>>0|(d|0)>(g|0)){b=Pa(e+16|0);if(b>>>0>=4294967280){break a}g:{h:{if(b>>>0>=11){d=(b|15)+1|0;c=sa(d);H[e+8>>2]=d|-2147483648;H[e>>2]=c;H[e+4>>2]=b;break h}F[e+11|0]=b;c=e;if(!b){break g}}ta(c,e+16|0,b)}F[b+c|0]=0;H[a>>2]=-2;a=a+4|0;if(F[e+11|0]>=0){b=H[e+4>>2];H[a>>2]=H[e>>2];H[a+4>>2]=b;H[a+8>>2]=H[e+8>>2];break b}b=a;a=H[e>>2];Ba(b,a,H[e+4>>2]);ra(a);break b}F[c+6|0]=I[f+H[b>>2]|0];d=H[b+20>>2];f=H[b+16>>2]+1|0;d=f?d:d+1|0;H[b+16>>2]=f;H[b+20>>2]=d;g=H[b+12>>2];if((g|0)<=(d|0)&K[b+8>>2]<=f>>>0|(d|0)>(g|0)){b=Pa(e+16|0);if(b>>>0>=4294967280){break a}i:{j:{if(b>>>0>=11){d=(b|15)+1|0;c=sa(d);H[e+8>>2]=d|-2147483648;H[e>>2]=c;H[e+4>>2]=b;break j}F[e+11|0]=b;c=e;if(!b){break i}}ta(c,e+16|0,b)}F[b+c|0]=0;H[a>>2]=-2;a=a+4|0;if(F[e+11|0]>=0){b=H[e+4>>2];H[a>>2]=H[e>>2];H[a+4>>2]=b;H[a+8>>2]=H[e+8>>2];break b}b=a;a=H[e>>2];Ba(b,a,H[e+4>>2]);ra(a);break b}F[c+7|0]=I[f+H[b>>2]|0];d=H[b+20>>2];f=H[b+16>>2]+1|0;d=f?d:d+1|0;H[b+16>>2]=f;H[b+20>>2]=d;g=H[b+12>>2];if((g|0)<=(d|0)&K[b+8>>2]<=f>>>0|(d|0)>(g|0)){b=nc(e,e+16|0);H[a>>2]=-2;a=a+4|0;if(F[b+11|0]>=0){c=H[b+4>>2];H[a>>2]=H[b>>2];H[a+4>>2]=c;H[a+8>>2]=H[b+8>>2];break b}Ba(a,H[b>>2],H[b+4>>2]);if(F[b+11|0]>=0){break b}ra(H[b>>2]);break b}F[c+8|0]=I[f+H[b>>2]|0];d=H[b+20>>2];f=d;i=H[b+16>>2];g=i+1|0;d=g?d:d+1|0;H[b+16>>2]=g;H[b+20>>2]=d;h=H[b+12>>2];d=f;f=i+3|0;d=f>>>0<3?d+1|0:d;if(f>>>0>K[b+8>>2]&(d|0)>=(h|0)|(d|0)>(h|0)){b=nc(e,e+16|0);H[a>>2]=-2;a=a+4|0;if(F[b+11|0]>=0){c=H[b+4>>2];H[a>>2]=H[b>>2];H[a+4>>2]=c;H[a+8>>2]=H[b+8>>2];break b}Ba(a,H[b>>2],H[b+4>>2]);if(F[b+11|0]>=0){break b}ra(H[b>>2]);break b}f=c;c=g+H[b>>2]|0;G[f+10>>1]=I[c|0]|I[c+1|0]<<8;d=H[b+20>>2];c=H[b+16>>2]+2|0;d=c>>>0<2?d+1|0:d;H[b+16>>2]=c;H[b+20>>2]=d;H[a+8>>2]=0;H[a+12>>2]=0;H[a>>2]=0;H[a+4>>2]=0}fa=e+48|0;return}Qa();v()}function qj(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0;H[a+8>>2]=e;r=a+32|0;f=H[r>>2];j=H[a+36>>2]-f>>2;a:{if(j>>>0>>0){Aa(r,e-j|0);d=H[a+8>>2];break a}d=e;if(e>>>0>=j>>>0){break a}H[a+36>>2]=f+(e<<2);d=e}u=e<<2;f=e>>>0>1073741823?-1:u;m=ua(sa(f),0,f);p=ua(sa(f),0,f);b:{if((d|0)<=0){break b}i=H[a+32>>2];while(1){f=h<<2;j=H[f+m>>2];d=H[a+16>>2];c:{if((j|0)>(d|0)){H[f+i>>2]=d;break c}f=f+i|0;d=H[a+12>>2];if((d|0)>(j|0)){H[f>>2]=d;break c}H[f>>2]=j}d=H[a+8>>2];h=h+1|0;if((d|0)>(h|0)){continue}break}if((d|0)<=0){break b}f=0;while(1){j=f<<2;d=j+c|0;j=H[b+j>>2]+H[j+i>>2]|0;H[d>>2]=j;d:{if((j|0)>H[a+16>>2]){j=j-H[a+20>>2]|0}else{if((j|0)>=H[a+12>>2]){break d}j=j+H[a+20>>2]|0}H[d>>2]=j}d=H[a+8>>2];f=f+1|0;if((d|0)>(f|0)){continue}break}}f=H[a+56>>2];w=H[f>>2];f=H[f+4>>2]-w|0;if((f|0)>=5){D=H[a+52>>2];x=H[a+48>>2];t=f>>>2|0;E=t>>>0<=2?2:t;y=e&-2;z=e&1;F=e&-4;A=e&3;B=e-1|0;n=1;while(1){e:{f:{g:{h:{if((n|0)!=(t|0)){j=H[(n<<2)+w>>2];s=(e|0)<=0;if(!s){ua(m,0,u)}if((j|0)==-1){g=N(e,n);break f}C=H[x+12>>2];q=0;f=j;while(1){h=H[(f<<2)+C>>2];i:{if((h|0)==-1){break i}o=H[D>>2];l=H[x>>2];k=H[o+(H[l+(h<<2)>>2]<<2)>>2];i=h+1|0;i=(i>>>0)%3|0?i:h-2|0;if((i|0)!=-1){g=H[l+(i<<2)>>2]}else{g=-1}j:{k:{if((h>>>0)%3|0){h=h-1|0;break k}h=h+2|0;i=-1;if((h|0)==-1){break j}}i=H[l+(h<<2)>>2]}if((k|0)>=(n|0)){break i}g=H[(g<<2)+o>>2];if((g|0)>=(n|0)){break i}i=H[o+(i<<2)>>2];if((i|0)>=(n|0)){break i}l:{if(s){break l}l=N(e,i);o=N(e,g);k=N(e,k);h=0;i=0;if(B){while(1){H[(h<<2)+p>>2]=(H[(h+l<<2)+c>>2]+H[(h+o<<2)+c>>2]|0)-H[(h+k<<2)+c>>2];g=h|1;H[(g<<2)+p>>2]=(H[(g+l<<2)+c>>2]+H[(g+o<<2)+c>>2]|0)-H[(g+k<<2)+c>>2];h=h+2|0;i=i+2|0;if((y|0)!=(i|0)){continue}break}}if(z){H[(h<<2)+p>>2]=(H[(h+l<<2)+c>>2]+H[(h+o<<2)+c>>2]|0)-H[(h+k<<2)+c>>2]}if(s){break l}o=0;h=0;k=0;if(e>>>0>3){while(1){l=h<<2;i=l+m|0;H[i>>2]=H[l+p>>2]+H[i>>2];g=l|4;i=g+m|0;H[i>>2]=H[g+p>>2]+H[i>>2];g=l|8;i=g+m|0;H[i>>2]=H[g+p>>2]+H[i>>2];g=l|12;i=g+m|0;H[i>>2]=H[g+p>>2]+H[i>>2];h=h+4|0;k=k+4|0;if((F|0)!=(k|0)){continue}break}}if(!A){break l}while(1){g=h<<2;i=g+m|0;H[i>>2]=H[g+p>>2]+H[i>>2];h=h+1|0;o=o+1|0;if((A|0)!=(o|0)){continue}break}}q=q+1|0}m:{n:{if((f>>>0)%3|0){h=f-1|0;break n}h=f+2|0;g=-1;if((h|0)==-1){break m}}f=H[(h<<2)+C>>2];g=-1;if((f|0)==-1){break m}g=f-1|0;if((f>>>0)%3|0){break m}g=f+2|0}f=g;if((j|0)!=(f|0)&(f|0)!=-1){continue}break}g=N(e,n);if(!q){break f}if(s){break g}h=0;f=0;if(!B){break h}while(1){i=h<<2;j=i+m|0;H[j>>2]=H[j>>2]/(q|0);j=(i|4)+m|0;H[j>>2]=H[j>>2]/(q|0);h=h+2|0;f=f+2|0;if((y|0)!=(f|0)){continue}break}break h}Ea();v()}if(!z){break g}f=(h<<2)+m|0;H[f>>2]=H[f>>2]/(q|0)}if((d|0)<=0){break e}k=H[r>>2];h=0;while(1){f=h<<2;j=H[f+m>>2];d=H[a+16>>2];o:{if((j|0)>(d|0)){H[f+k>>2]=d;break o}f=f+k|0;d=H[a+12>>2];if((d|0)>(j|0)){H[f>>2]=d;break o}H[f>>2]=j}d=H[a+8>>2];h=h+1|0;if((d|0)>(h|0)){continue}break}f=0;if((d|0)<=0){break e}d=g<<2;i=d+c|0;j=b+d|0;while(1){g=f<<2;d=g+i|0;g=H[g+j>>2]+H[g+k>>2]|0;H[d>>2]=g;p:{if((g|0)>H[a+16>>2]){g=g-H[a+20>>2]|0}else{if((g|0)>=H[a+12>>2]){break p}g=g+H[a+20>>2]|0}H[d>>2]=g}d=H[a+8>>2];f=f+1|0;if((d|0)>(f|0)){continue}break}break e}if((d|0)<=0){break e}f=(N(n-1|0,e)<<2)+c|0;k=H[r>>2];h=0;while(1){j=h<<2;i=H[j+f>>2];d=H[a+16>>2];q:{if((i|0)>(d|0)){H[j+k>>2]=d;break q}j=j+k|0;d=H[a+12>>2];if((d|0)>(i|0)){H[j>>2]=d;break q}H[j>>2]=i}d=H[a+8>>2];h=h+1|0;if((d|0)>(h|0)){continue}break}f=0;if((d|0)<=0){break e}d=g<<2;i=d+c|0;j=b+d|0;while(1){g=f<<2;d=g+i|0;g=H[g+j>>2]+H[g+k>>2]|0;H[d>>2]=g;r:{if((g|0)>H[a+16>>2]){g=g-H[a+20>>2]|0}else{if((g|0)>=H[a+12>>2]){break r}g=g+H[a+20>>2]|0}H[d>>2]=g}d=H[a+8>>2];f=f+1|0;if((d|0)>(f|0)){continue}break}}n=n+1|0;if((E|0)!=(n|0)){continue}break}}ra(p);ra(m);return 1}function yj(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=O(0),k=0,l=0,m=O(0),n=O(0),o=O(0),p=O(0),q=O(0),r=O(0),s=O(0),t=0,u=O(0),w=O(0),x=0,y=0,z=O(0),A=O(0),B=O(0),C=0;a:{if((e|0)==2){H[a+64>>2]=f;H[a+72>>2]=2;e=sa(8);d=H[a+68>>2];H[a+68>>2]=e;if(d){ra(d)}H[a+8>>2]=2;x=a+32|0;e=H[x>>2];d=H[a+36>>2]-e|0;b:{if(d>>>0<=7){Aa(x,2-(d>>>2|0)|0);break b}if((d|0)==8){break b}H[a+36>>2]=e+8}d=H[a+56>>2];d=H[d+4>>2]-H[d>>2]|0;c:{if((d|0)<=0){f=0;break c}y=d>>2;C=(y|0)<=1?1:y;f=1;while(1){d=H[a+56>>2];g=H[d>>2];if(H[d+4>>2]-g>>2>>>0<=l>>>0){break a}q=O(0);h=fa-48|0;fa=h;d=-1;g=H[g+(l<<2)>>2];e=-1;d:{if((g|0)==-1){break d}d=g+1|0;d=(d>>>0)%3|0?d:g-2|0;e=g-1|0;if((g>>>0)%3|0){break d}e=g+2|0}i=H[a+52>>2];g=H[i>>2];e:{f:{i=H[i+4>>2]-g>>2;t=d<<2;d=H[H[a+48>>2]+28>>2];t=H[t+d>>2];if(i>>>0<=t>>>0){break f}d=H[d+(e<<2)>>2];if(d>>>0>=i>>>0){break f}i=H[g+(d<<2)>>2];e=H[g+(t<<2)>>2];g:{if(!((i|0)>=(l|0)|(e|0)>=(l|0))){d=H[a+72>>2];g=(N(d,i)<<2)+c|0;m=O(H[g+4>>2]);d=(N(d,e)<<2)+c|0;p=O(H[d+4>>2]);z=O(H[d>>2]);n=O(H[g>>2]);if(!(z!=n|m!=p)){g=+m>2147483647;d=H[a+68>>2];if(O(P(m))>2]=m2147483647;if(O(P(n))>2]=n>2]+(l<<2)>>2];H[h+40>>2]=0;H[h+32>>2]=0;H[h+36>>2]=0;g=H[a+60>>2];if(!I[g+84|0]){d=H[H[g+68>>2]+(d<<2)>>2]}Ya(g,d,F[g+24|0],h+32|0);e=H[H[a+64>>2]+(e<<2)>>2];H[h+24>>2]=0;H[h+16>>2]=0;H[h+20>>2]=0;d=H[a+60>>2];if(!I[d+84|0]){e=H[H[d+68>>2]+(e<<2)>>2]}Ya(d,e,F[d+24|0],h+16|0);e=H[H[a+64>>2]+(i<<2)>>2];H[h+8>>2]=0;H[h>>2]=0;H[h+4>>2]=0;d=H[a+60>>2];if(!I[d+84|0]){e=H[H[d+68>>2]+(e<<2)>>2]}Ya(d,e,F[d+24|0],h);o=L[h+24>>2];r=O(L[h+8>>2]-o);s=L[h+20>>2];u=O(L[h+4>>2]-s);B=L[h+16>>2];w=O(L[h>>2]-B);A=O(O(r*r)+O(O(u*u)+O(O(w*w)+O(0))));h:{if(H[a+88>>2]>=258){j=O(0);if(!(A>O(0))){break h}}j=O(L[h+40>>2]-o);o=O(L[h+36>>2]-s);s=O(L[h+32>>2]-B);q=O(O(O(r*j)+O(O(u*o)+O(O(w*s)+O(0))))/A);j=O(j-O(r*q));r=O(j*j);j=O(o-O(u*q));o=O(j*j);j=O(s-O(w*q));j=O(W(O(O(r+O(o+O(O(j*j)+O(0))))/A)))}e=H[a+80>>2];if(e){d=e-1|0;g=H[H[a+76>>2]+(d>>>3&536870908)>>2];H[a+80>>2]=d;m=O(m-p);o=O(O(m*q)+p);n=O(n-z);p=O(n*j);d=g>>>d&1;p=O(o+(d?p:O(-p)));j=O(j*m);k=T(+O(O(O(n*q)+z)+(d?O(-j):j))+.5);i:{if(k<-2147483648|k!=k|k>2147483647){d=H[a+68>>2];H[d>>2]=-2147483648;break i}d=H[a+68>>2];if(P(k)<2147483648){g=~~k}else{g=-2147483648}H[d>>2]=g}k=T(+p+.5);i=k>2147483647;if(P(k)<2147483648){g=~~k}else{g=-2147483648}H[d+4>>2]=k<-2147483648?-2147483648:k!=k?-2147483648:i?-2147483648:g}e=(e|0)!=0;break g}j:{if((e|0)<(l|0)){d=H[a+72>>2];g=N(e,d);break j}if((l|0)<=0){e=1;if(H[a+72>>2]<=0){break g}g=H[a+68>>2];d=0;while(1){H[g+(d<<2)>>2]=0;d=d+1|0;if((d|0)>2]){continue}break}break g}d=H[a+72>>2];g=N(d,l-1|0)}e=1;if((d|0)<=0){break g}i=H[a+68>>2];d=0;while(1){H[i+(d<<2)>>2]=H[(d+g<<2)+c>>2];d=d+1|0;if((d|0)>2]){continue}break}}fa=h+48|0;break e}Ea();v()}if(!e){break c}k:{if(H[a+8>>2]<=0){break k}h=H[a+68>>2];g=H[x>>2];d=0;while(1){e=d<<2;f=H[e+h>>2];i=H[a+16>>2];l:{if((f|0)>(i|0)){H[e+g>>2]=i;break l}e=e+g|0;i=H[a+12>>2];if((i|0)>(f|0)){H[e>>2]=i;break l}H[e>>2]=f}d=d+1|0;f=H[a+8>>2];if((d|0)<(f|0)){continue}break}e=0;if((f|0)<=0){break k}d=l<<3;h=d+c|0;i=b+d|0;while(1){f=e<<2;d=f+h|0;f=H[f+i>>2]+H[f+g>>2]|0;H[d>>2]=f;m:{if((f|0)>H[a+16>>2]){f=f-H[a+20>>2]|0}else{if((f|0)>=H[a+12>>2]){break m}f=f+H[a+20>>2]|0}H[d>>2]=f}e=e+1|0;if((e|0)>2]){continue}break}}l=l+1|0;f=(y|0)>(l|0);if((l|0)!=(C|0)){continue}break}}a=f^1}else{a=0}return a&1}Ea();v()}function jj(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=O(0),k=0,l=0,m=O(0),n=O(0),o=O(0),p=O(0),q=O(0),r=O(0),s=O(0),t=O(0),u=O(0),w=0,x=0,y=O(0),z=O(0),A=O(0),B=0;a:{if((e|0)==2){H[a+64>>2]=f;H[a+72>>2]=2;e=sa(8);d=H[a+68>>2];H[a+68>>2]=e;if(d){ra(d)}H[a+8>>2]=2;w=a+32|0;e=H[w>>2];d=H[a+36>>2]-e|0;b:{if(d>>>0<=7){Aa(w,2-(d>>>2|0)|0);break b}if((d|0)==8){break b}H[a+36>>2]=e+8}d=H[a+56>>2];d=H[d+4>>2]-H[d>>2]|0;c:{if((d|0)<=0){f=0;break c}x=d>>2;B=(x|0)<=1?1:x;f=1;while(1){e=H[a+56>>2];d=H[e>>2];if(H[e+4>>2]-d>>2>>>0<=l>>>0){break a}q=O(0);h=fa-48|0;fa=h;g=-1;d:{e:{d=H[d+(l<<2)>>2];if((d|0)==-1){break e}i=H[a+48>>2];e=d+1|0;e=(e>>>0)%3|0?e:d-2|0;if((e|0)!=-1){g=H[H[i>>2]+(e<<2)>>2]}e=-1;d=d+((d>>>0)%3|0?-1:2)|0;if((d|0)!=-1){e=H[H[i>>2]+(d<<2)>>2]}d=H[a+52>>2];i=H[d>>2];d=H[d+4>>2]-i>>2;if(d>>>0<=g>>>0|d>>>0<=e>>>0){break e}d=H[i+(g<<2)>>2];i=H[i+(e<<2)>>2];f:{if(!((i|0)>=(l|0)|(d|0)>=(l|0))){e=H[a+72>>2];g=(N(e,i)<<2)+c|0;m=O(H[g+4>>2]);e=(N(d,e)<<2)+c|0;p=O(H[e+4>>2]);y=O(H[e>>2]);n=O(H[g>>2]);if(!(y!=n|m!=p)){g=+m>2147483647;d=H[a+68>>2];if(O(P(m))>2]=m2147483647;if(O(P(n))>2]=n>2]+(l<<2)>>2];H[h+40>>2]=0;H[h+32>>2]=0;H[h+36>>2]=0;g=H[a+60>>2];if(!I[g+84|0]){e=H[H[g+68>>2]+(e<<2)>>2]}Ya(g,e,F[g+24|0],h+32|0);e=H[H[a+64>>2]+(d<<2)>>2];H[h+24>>2]=0;H[h+16>>2]=0;H[h+20>>2]=0;d=H[a+60>>2];if(!I[d+84|0]){e=H[H[d+68>>2]+(e<<2)>>2]}Ya(d,e,F[d+24|0],h+16|0);d=H[H[a+64>>2]+(i<<2)>>2];H[h+8>>2]=0;H[h>>2]=0;H[h+4>>2]=0;e=H[a+60>>2];if(!I[e+84|0]){d=H[H[e+68>>2]+(d<<2)>>2]}Ya(e,d,F[e+24|0],h);o=L[h+24>>2];r=O(L[h+8>>2]-o);s=L[h+20>>2];t=O(L[h+4>>2]-s);A=L[h+16>>2];u=O(L[h>>2]-A);z=O(O(r*r)+O(O(t*t)+O(O(u*u)+O(0))));g:{if(H[a+88>>2]>=258){j=O(0);if(!(z>O(0))){break g}}j=O(L[h+40>>2]-o);o=O(L[h+36>>2]-s);s=O(L[h+32>>2]-A);q=O(O(O(r*j)+O(O(t*o)+O(O(u*s)+O(0))))/z);j=O(j-O(r*q));r=O(j*j);j=O(o-O(t*q));o=O(j*j);j=O(s-O(u*q));j=O(W(O(O(r+O(o+O(O(j*j)+O(0))))/z)))}e=H[a+80>>2];if(e){d=e-1|0;g=H[H[a+76>>2]+(d>>>3&536870908)>>2];H[a+80>>2]=d;m=O(m-p);o=O(O(m*q)+p);n=O(n-y);p=O(n*j);d=g>>>d&1;p=O(o+(d?p:O(-p)));j=O(j*m);k=T(+O(O(O(n*q)+y)+(d?O(-j):j))+.5);h:{if(k<-2147483648|k!=k|k>2147483647){d=H[a+68>>2];H[d>>2]=-2147483648;break h}d=H[a+68>>2];if(P(k)<2147483648){g=~~k}else{g=-2147483648}H[d>>2]=g}k=T(+p+.5);i=k>2147483647;if(P(k)<2147483648){g=~~k}else{g=-2147483648}H[d+4>>2]=k<-2147483648?-2147483648:k!=k?-2147483648:i?-2147483648:g}d=(e|0)!=0;break f}i:{if((d|0)<(l|0)){e=H[a+72>>2];g=N(d,e);break i}if((l|0)<=0){d=1;if(H[a+72>>2]<=0){break f}g=H[a+68>>2];e=0;while(1){H[g+(e<<2)>>2]=0;e=e+1|0;if((e|0)>2]){continue}break}break f}e=H[a+72>>2];g=N(e,l-1|0)}d=1;if((e|0)<=0){break f}i=H[a+68>>2];e=0;while(1){H[i+(e<<2)>>2]=H[(e+g<<2)+c>>2];e=e+1|0;if((e|0)>2]){continue}break}}fa=h+48|0;break d}Ea();v()}if(!d){break c}j:{if(H[a+8>>2]<=0){break j}h=H[a+68>>2];g=H[w>>2];d=0;while(1){e=d<<2;f=H[e+h>>2];i=H[a+16>>2];k:{if((f|0)>(i|0)){H[e+g>>2]=i;break k}e=e+g|0;i=H[a+12>>2];if((i|0)>(f|0)){H[e>>2]=i;break k}H[e>>2]=f}d=d+1|0;f=H[a+8>>2];if((d|0)<(f|0)){continue}break}e=0;if((f|0)<=0){break j}d=l<<3;h=d+c|0;i=b+d|0;while(1){f=e<<2;d=f+h|0;f=H[f+i>>2]+H[f+g>>2]|0;H[d>>2]=f;l:{if((f|0)>H[a+16>>2]){f=f-H[a+20>>2]|0}else{if((f|0)>=H[a+12>>2]){break l}f=f+H[a+20>>2]|0}H[d>>2]=f}e=e+1|0;if((e|0)>2]){continue}break}}l=l+1|0;f=(x|0)>(l|0);if((l|0)!=(B|0)){continue}break}}a=f^1}else{a=0}return a&1}Ea();v()}function Nf(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0;f=fa-704|0;fa=f;n=1;a:{b:{c:{d:{if(J[b+38>>1]<515){break d}n=0;c=H[b+20>>2];i=H[b+12>>2];d=H[b+16>>2];if((c|0)>=(i|0)&d>>>0>=K[b+8>>2]|(c|0)>(i|0)){break d}o=I[d+H[b>>2]|0];d=d+1|0;c=d?c:c+1|0;H[b+16>>2]=d;H[b+20>>2]=c;i=H[H[(ha[H[H[a>>2]+28>>2]](a)|0)+4>>2]+80>>2];c=ha[H[H[a>>2]+24>>2]](a)|0;H[f+40>>2]=0;H[f+32>>2]=0;H[f+36>>2]=0;if(c){if(c>>>0>=214748365){break c}c=N(c,20);d=sa(c);H[f+32>>2]=d;H[f+40>>2]=c+d;c=c-20|0;c=(c-((c>>>0)%20|0)|0)+20|0;q=f,r=ua(d,0,c)+c|0,H[q+36>>2]=r}e:{if((ha[H[H[a>>2]+24>>2]](a)|0)>0){while(1){c=ha[H[H[a>>2]+20>>2]](a,m)|0;d=H[H[H[(ha[H[H[a>>2]+28>>2]](a)|0)+4>>2]+8>>2]+(c<<2)>>2];qb(d,i);F[d+84|0]=1;H[d+72>>2]=H[d+68>>2];c=H[d+28>>2];if(c>>>0>9){break e}f:{g:{h:{e=1<>2],g,6,0,c,c>>31);c=fc(sa(96),e);H[f>>2]=c;F[c+84|0]=1;H[c+72>>2]=H[c+68>>2];qb(c,i);c=H[a+64>>2];if(c>>>0>=K[a+68>>2]){break h}d=H[f>>2];H[f>>2]=0;H[c>>2]=d;d=c+4|0;H[a+64>>2]=d;break g}h=0;if(!I[d+24|0]){break f}while(1){c=H[a+52>>2];g=H[a+56>>2];i:{if(c>>>0>>0){H[c>>2]=0;H[a+52>>2]=c+4;break i}e=H[a+48>>2];l=c-e|0;k=l>>2;c=k+1|0;if(c>>>0>=1073741824){break b}p=k<<2;g=g-e|0;k=g>>1;g=g>>>0>=2147483644?1073741823:c>>>0>>0?k:c;if(g){if(g>>>0>=1073741824){break a}c=sa(g<<2)}else{c=0}k=p+c|0;H[k>>2]=0;if((l|0)>0){ta(c,e,l)}H[a+56>>2]=c+(g<<2);H[a+52>>2]=k+4;H[a+48>>2]=c;if(!e){break i}ra(e)}h=h+1|0;if(h>>>0>2];g=H[a+64>>2]-e>>2;c=g+1|0;if(c>>>0<1073741824){e=H[a+68>>2]-e|0;h=e>>1;c=e>>>0>=2147483644?1073741823:c>>>0>>0?h:c;if(c){if(c>>>0>=1073741824){break l}d=sa(c<<2)}h=H[f>>2];H[f>>2]=0;e=(g<<2)+d|0;H[e>>2]=h;g=(c<<2)+d|0;h=e+4|0;d=H[a+64>>2];c=H[a+60>>2];if((d|0)==(c|0)){break k}while(1){d=d-4|0;l=H[d>>2];H[d>>2]=0;e=e-4|0;H[e>>2]=l;if((c|0)!=(d|0)){continue}break}H[a+68>>2]=g;d=H[a+64>>2];H[a+64>>2]=h;c=H[a+60>>2];H[a+60>>2]=e;if((c|0)==(d|0)){break j}while(1){d=d-4|0;e=H[d>>2];H[d>>2]=0;if(e){Ja(e)}if((c|0)!=(d|0)){continue}break}break j}va();v()}za();v()}H[a+68>>2]=g;H[a+64>>2]=h;H[a+60>>2]=e}if(c){ra(c)}d=H[a+64>>2]}d=H[d-4>>2];c=H[f>>2];H[f>>2]=0;if(!c){break f}Ja(c)}g=H[d+28>>2];c=g-1|0;if(c>>>0<=10){e=H[(c<<2)+13584>>2]}else{e=-1}c=H[f+32>>2]+N(m,20)|0;h=I[d+24|0];H[c+16>>2]=h;H[c+12>>2]=(e|0)>0?e:0;H[c+8>>2]=g;H[c+4>>2]=j;H[c>>2]=d;j=h+j|0;m=m+1|0;if((ha[H[H[a>>2]+24>>2]](a)|0)>(m|0)){continue}break}}a=Bc(f,f+32|0);m:{n:{o:{switch(o|0){case 0:c=zb(f+48|0,j);b=zd(c,b,a);d=H[c+8>>2];Ab(c);if(!b){break m}if((d|0)==(i|0)){break n}break m;case 1:c=zb(f+48|0,j);b=yd(c,b,a);d=H[c+8>>2];Ab(c);if(!b){break m}if((d|0)==(i|0)){break n}break m;case 2:c=xb(f+48|0,j);b=xd(c,b,a);d=H[c+8>>2];yb(c);if(!b){break m}if((d|0)==(i|0)){break n}break m;case 3:c=xb(f+48|0,j);b=wd(c,b,a);d=H[c+8>>2];yb(c);if(!b){break m}if((d|0)==(i|0)){break n}break m;case 4:c=cb(f+48|0,j);b=vd(c,b,a);d=H[c+8>>2];db(c);if(!b){break m}if((d|0)==(i|0)){break n}break m;case 5:c=cb(f+48|0,j);b=ud(c,b,a);d=H[c+8>>2];db(c);if(!b){break m}if((d|0)==(i|0)){break n}break m;case 6:break o;default:break m}}c=cb(f+48|0,j);b=td(c,b,a);d=H[c+8>>2];db(c);if(!b|(d|0)!=(i|0)){break m}}n=1}b=H[a+16>>2];if(b){H[a+20>>2]=b;ra(b)}b=H[a>>2];if(!b){break e}H[a+4>>2]=b;ra(b)}a=H[f+32>>2];if(!a){break d}H[f+36>>2]=a;ra(a)}fa=f+704|0;return n|0}va();v()}va();v()}za();v()}function Yi(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0,g=0,h=0,i=0;e=fa-32|0;fa=e;a:{b:{switch(c-2|0){case 0:c=H[a+4>>2];f=H[a+12>>2];H[e+24>>2]=-1;H[e+16>>2]=-1;H[e+20>>2]=1065353216;H[e+8>>2]=-1;H[e+12>>2]=-1;if((b|0)==-2){break a}i=H[H[H[c+4>>2]+8>>2]+(f<<2)>>2];if((ha[H[H[c>>2]+8>>2]](c)|0)==1){h=H[H[H[c+4>>2]+8>>2]+(f<<2)>>2];c:{if((ha[H[H[c>>2]+8>>2]](c)|0)!=1|b-1>>>0>5){break c}g=ha[H[H[c>>2]+36>>2]](c)|0;a=ha[H[H[c>>2]+44>>2]](c,f)|0;if(!g|!a){break c}f=ha[H[H[c>>2]+40>>2]](c,f)|0;d:{if(f){if((b|0)!=6){break c}b=H[c+44>>2];d=sa(112);H[d+4>>2]=h;c=H[e+12>>2];H[d+8>>2]=H[e+8>>2];H[d+12>>2]=c;c=H[e+20>>2];H[d+16>>2]=H[e+16>>2];H[d+20>>2]=c;H[d+24>>2]=H[e+24>>2];H[d+40>>2]=a;c=a+12|0;H[d+36>>2]=c;H[d+32>>2]=f;H[d+28>>2]=b;H[d+68>>2]=a;H[d- -64>>2]=c;H[d+60>>2]=f;H[d+56>>2]=b;H[d+48>>2]=0;H[d+52>>2]=0;H[d>>2]=7144;H[d+88>>2]=1065353216;H[d+92>>2]=-1;H[d+80>>2]=-1;H[d+84>>2]=-1;H[d+72>>2]=1;H[d+76>>2]=-1;H[d+44>>2]=7668;a=d+96|0;break d}if((b|0)!=6){break c}b=H[c+44>>2];d=sa(112);H[d+4>>2]=h;c=H[e+12>>2];H[d+8>>2]=H[e+8>>2];H[d+12>>2]=c;c=H[e+20>>2];H[d+16>>2]=H[e+16>>2];H[d+20>>2]=c;H[d+24>>2]=H[e+24>>2];H[d+40>>2]=a;c=a+12|0;H[d+36>>2]=c;H[d+32>>2]=g;H[d+28>>2]=b;H[d+68>>2]=a;H[d- -64>>2]=c;H[d+60>>2]=g;H[d+56>>2]=b;H[d+48>>2]=0;H[d+52>>2]=0;H[d>>2]=8080;H[d+88>>2]=1065353216;H[d+92>>2]=-1;H[d+80>>2]=-1;H[d+84>>2]=-1;H[d+72>>2]=1;H[d+76>>2]=-1;H[d+44>>2]=8472;a=d+96|0}H[a>>2]=0;H[a+4>>2]=0;F[a+5|0]=0;F[a+6|0]=0;F[a+7|0]=0;F[a+8|0]=0;F[a+9|0]=0;F[a+10|0]=0;F[a+11|0]=0;F[a+12|0]=0}if(d){break a}}d=sa(28);H[d+4>>2]=i;a=H[e+12>>2];H[d+8>>2]=H[e+8>>2];H[d+12>>2]=a;a=H[e+20>>2];H[d+16>>2]=H[e+16>>2];H[d+20>>2]=a;H[d+24>>2]=H[e+24>>2];H[d>>2]=8860;break a;case 1:break b;default:break a}}c=H[a+4>>2];f=H[a+12>>2];H[e+24>>2]=-1;H[e+16>>2]=-1;H[e+20>>2]=1065353216;H[e+8>>2]=-1;H[e+12>>2]=-1;if((b|0)==-2){break a}i=H[H[H[c+4>>2]+8>>2]+(f<<2)>>2];if((ha[H[H[c>>2]+8>>2]](c)|0)==1){h=H[H[H[c+4>>2]+8>>2]+(f<<2)>>2];e:{if((ha[H[H[c>>2]+8>>2]](c)|0)!=1|b-1>>>0>5){break e}g=ha[H[H[c>>2]+36>>2]](c)|0;a=ha[H[H[c>>2]+44>>2]](c,f)|0;if(!g|!a){break e}f=ha[H[H[c>>2]+40>>2]](c,f)|0;f:{if(f){if((b|0)!=6){break e}b=H[c+44>>2];d=sa(112);H[d+4>>2]=h;c=H[e+12>>2];H[d+8>>2]=H[e+8>>2];H[d+12>>2]=c;c=H[e+20>>2];H[d+16>>2]=H[e+16>>2];H[d+20>>2]=c;H[d+24>>2]=H[e+24>>2];H[d+40>>2]=a;c=a+12|0;H[d+36>>2]=c;H[d+32>>2]=f;H[d+28>>2]=b;H[d+68>>2]=a;H[d- -64>>2]=c;H[d+60>>2]=f;H[d+56>>2]=b;H[d+48>>2]=0;H[d+52>>2]=0;H[d>>2]=9028;H[d+88>>2]=1065353216;H[d+92>>2]=-1;H[d+80>>2]=-1;H[d+84>>2]=-1;H[d+72>>2]=1;H[d+76>>2]=-1;H[d+44>>2]=9592;a=d+96|0;break f}if((b|0)!=6){break e}b=H[c+44>>2];d=sa(112);H[d+4>>2]=h;c=H[e+12>>2];H[d+8>>2]=H[e+8>>2];H[d+12>>2]=c;c=H[e+20>>2];H[d+16>>2]=H[e+16>>2];H[d+20>>2]=c;H[d+24>>2]=H[e+24>>2];H[d+40>>2]=a;c=a+12|0;H[d+36>>2]=c;H[d+32>>2]=g;H[d+28>>2]=b;H[d+68>>2]=a;H[d- -64>>2]=c;H[d+60>>2]=g;H[d+56>>2]=b;H[d+48>>2]=0;H[d+52>>2]=0;H[d>>2]=10032;H[d+88>>2]=1065353216;H[d+92>>2]=-1;H[d+80>>2]=-1;H[d+84>>2]=-1;H[d+72>>2]=1;H[d+76>>2]=-1;H[d+44>>2]=10452;a=d+96|0}H[a>>2]=0;H[a+4>>2]=0;F[a+5|0]=0;F[a+6|0]=0;F[a+7|0]=0;F[a+8|0]=0;F[a+9|0]=0;F[a+10|0]=0;F[a+11|0]=0;F[a+12|0]=0}if(d){break a}}d=sa(28);H[d+4>>2]=i;a=H[e+12>>2];H[d+8>>2]=H[e+8>>2];H[d+12>>2]=a;a=H[e+20>>2];H[d+16>>2]=H[e+16>>2];H[d+20>>2]=a;H[d+24>>2]=H[e+24>>2];H[d>>2]=10864}fa=e+32|0;return d|0}function Ii(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=O(0),f=0,g=0,h=0,i=0,j=0,k=0,l=O(0),m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0;if(H[c>>2]==H[c+4>>2]){h=H[d+80>>2];u=fa-16|0;fa=u;q=H[a+4>>2];i=I[b+24|0];j=H[d+48>>2];d=H[H[d>>2]>>2];c=u+8|0;H[c>>2]=1065353216;L[c>>2]=O(-1<>2];s=sa(i<<2);a:{if(!h|!i){break a}t=d+j|0;l=L[c>>2];k=H[a+8>>2];w=H[b>>2];c=H[b+48>>2];n=H[b+44>>2];v=H[b+40>>2];if(!I[b+84|0]){r=H[b+68>>2];q=i&254;j=i&1;a=0;while(1){d=H[w>>2];b=Nj(v,n,H[r+(o<<2)>>2],0)+c|0;p=ta(s,d+b|0,v);b=0;m=0;if((i|0)!=1){while(1){d=t+(a<<2)|0;g=b<<2;e=O(T(O(O(l*O(L[g+p>>2]-L[k+g>>2]))+O(.5))));b:{if(O(P(e))>2]=f;f=g|4;e=O(T(O(O(l*O(L[f+p>>2]-L[f+k>>2]))+O(.5))));c:{if(O(P(e))>2]=f;b=b+2|0;a=a+2|0;m=m+2|0;if((q|0)!=(m|0)){continue}break}}if(j){d=t+(a<<2)|0;b=b<<2;e=O(T(O(O(l*O(L[b+p>>2]-L[b+k>>2]))+O(.5))));d:{if(O(P(e))>2]=b;a=a+1|0}o=o+1|0;if((h|0)!=(o|0)){continue}break}break a}r=i&254;q=i&1;a=0;while(1){d=H[w>>2];b=Nj(v,n,p,f)+c|0;o=ta(s,d+b|0,v);b=0;m=0;if((i|0)!=1){while(1){d=t+(a<<2)|0;g=b<<2;e=O(T(O(O(l*O(L[g+o>>2]-L[k+g>>2]))+O(.5))));e:{if(O(P(e))>2]=j;j=g|4;e=O(T(O(O(l*O(L[j+o>>2]-L[k+j>>2]))+O(.5))));f:{if(O(P(e))>2]=g;b=b+2|0;a=a+2|0;m=m+2|0;if((r|0)!=(m|0)){continue}break}}if(q){d=t+(a<<2)|0;b=b<<2;e=O(T(O(O(l*O(L[b+o>>2]-L[b+k>>2]))+O(.5))));g:{if(O(P(e))>2]=b;a=a+1|0}b=p+1|0;f=b?f:f+1|0;p=b;if((h|0)!=(b|0)|f){continue}break}}ra(s);fa=u+16|0;return 1}u=fa-16|0;fa=u;f=H[a+4>>2];n=I[b+24|0];j=H[d+48>>2];h=H[H[d>>2]>>2];d=u+8|0;H[d>>2]=1065353216;L[d>>2]=O(-1<>2];t=sa(n<<2);f=H[c+4>>2];s=H[c>>2];h:{if(!n|(f|0)==(s|0)){break h}m=j+h|0;c=f-s>>2;w=c>>>0<=1?1:c;l=L[d>>2];i=H[a+8>>2];x=H[b>>2];d=H[b+48>>2];v=H[b+44>>2];p=H[b+40>>2];if(I[b+84|0]){q=n&254;j=n&1;a=0;c=0;while(1){f=H[x>>2];b=Nj(p,v,H[s+(c<<2)>>2],0)+d|0;g=ta(t,f+b|0,p);b=0;k=0;if((n|0)!=1){while(1){f=m+(a<<2)|0;r=b<<2;e=O(T(O(O(l*O(L[r+g>>2]-L[i+r>>2]))+O(.5))));i:{if(O(P(e))>2]=h;h=r|4;e=O(T(O(O(l*O(L[h+g>>2]-L[i+h>>2]))+O(.5))));j:{if(O(P(e))>2]=h;b=b+2|0;a=a+2|0;k=k+2|0;if((q|0)!=(k|0)){continue}break}}if(j){f=m+(a<<2)|0;b=b<<2;e=O(T(O(O(l*O(L[b+g>>2]-L[b+i>>2]))+O(.5))));k:{if(O(P(e))>2]=b;a=a+1|0}c=c+1|0;if((w|0)!=(c|0)){continue}break}break h}r=H[b+68>>2];q=n&254;j=n&1;a=0;c=0;while(1){f=H[x>>2];b=Nj(p,v,H[r+(H[s+(c<<2)>>2]<<2)>>2],0)+d|0;o=ta(t,f+b|0,p);b=0;k=0;if((n|0)!=1){while(1){f=m+(a<<2)|0;g=b<<2;e=O(T(O(O(l*O(L[g+o>>2]-L[i+g>>2]))+O(.5))));l:{if(O(P(e))>2]=h;h=g|4;e=O(T(O(O(l*O(L[h+o>>2]-L[i+h>>2]))+O(.5))));m:{if(O(P(e))>2]=g;b=b+2|0;a=a+2|0;k=k+2|0;if((q|0)!=(k|0)){continue}break}}if(j){f=m+(a<<2)|0;b=b<<2;e=O(T(O(O(l*O(L[b+o>>2]-L[b+i>>2]))+O(.5))));n:{if(O(P(e))>2]=b;a=a+1|0}c=c+1|0;if((w|0)!=(c|0)){continue}break}}ra(t);fa=u+16|0;return 1}function bd(a,b){var c=0,d=0,e=0,f=0,g=0,h=0;d=H[a+4>>2];c=H[a>>2];e=(d-c|0)/144|0;if(e>>>0>>0){c=a;e=b-e|0;f=H[a+8>>2];d=H[a+4>>2];a:{if(e>>>0<=(f-d|0)/144>>>0){b:{if(!e){break b}a=d;f=e&7;if(f){b=0;while(1){La(a);a=a+144|0;b=b+1|0;if((f|0)!=(b|0)){continue}break}}d=N(e,144)+d|0;if((e-1&268435455)>>>0<7){break b}while(1){La(a);La(a+144|0);La(a+288|0);La(a+432|0);La(a+576|0);La(a+720|0);La(a+864|0);La(a+1008|0);a=a+1152|0;if((d|0)!=(a|0)){continue}break}}H[c+4>>2]=d;break a}c:{d:{e:{b=H[c>>2];g=(d-b|0)/144|0;a=g+e|0;if(a>>>0<29826162){d=0;b=(f-b|0)/144|0;f=b<<1;f=b>>>0>=14913080?29826161:a>>>0>>0?f:a;if(f){if(f>>>0>=29826162){break e}h=sa(N(f,144))}b=N(g,144)+h|0;a=b;g=e&7;if(g){a=b;while(1){La(a);a=a+144|0;d=d+1|0;if((g|0)!=(d|0)){continue}break}}g=N(e,144)+b|0;if((e-1&268435455)>>>0>=7){while(1){La(a);La(a+144|0);La(a+288|0);La(a+432|0);La(a+576|0);La(a+720|0);La(a+864|0);La(a+1008|0);a=a+1152|0;if((g|0)!=(a|0)){continue}break}}e=N(f,144)+h|0;a=H[c+4>>2];d=H[c>>2];if((a|0)==(d|0)){break d}while(1){b=b-144|0;a=a-144|0;H[b>>2]=H[a>>2];H[b+4>>2]=H[a+4>>2];H[b+8>>2]=H[a+8>>2];H[b+12>>2]=H[a+12>>2];H[a+12>>2]=0;H[a+4>>2]=0;H[a+8>>2]=0;H[b+16>>2]=H[a+16>>2];H[b+20>>2]=H[a+20>>2];H[b+24>>2]=H[a+24>>2];H[a+24>>2]=0;H[a+16>>2]=0;H[a+20>>2]=0;f=I[a+28|0];H[b+40>>2]=0;H[b+32>>2]=0;H[b+36>>2]=0;F[b+28|0]=f;H[b+32>>2]=H[a+32>>2];H[b+36>>2]=H[a+36>>2];H[b+40>>2]=H[a+40>>2];H[a+40>>2]=0;H[a+32>>2]=0;H[a+36>>2]=0;H[b+52>>2]=0;H[b+44>>2]=0;H[b+48>>2]=0;H[b+44>>2]=H[a+44>>2];H[b+48>>2]=H[a+48>>2];H[b+52>>2]=H[a+52>>2];H[a+52>>2]=0;H[a+44>>2]=0;H[a+48>>2]=0;f=b- -64|0;H[f>>2]=0;H[b+56>>2]=0;H[b+60>>2]=0;H[b+56>>2]=H[a+56>>2];H[b+60>>2]=H[a+60>>2];h=f;f=a- -64|0;H[h>>2]=H[f>>2];H[f>>2]=0;H[a+56>>2]=0;H[a+60>>2]=0;H[b+68>>2]=H[a+68>>2];f=H[a+72>>2];H[b+84>>2]=0;H[b+76>>2]=0;H[b+80>>2]=0;H[b+72>>2]=f;H[b+76>>2]=H[a+76>>2];H[b+80>>2]=H[a+80>>2];H[b+84>>2]=H[a+84>>2];H[a+84>>2]=0;H[a+76>>2]=0;H[a+80>>2]=0;H[b+96>>2]=0;H[b+88>>2]=0;H[b+92>>2]=0;H[b+88>>2]=H[a+88>>2];H[b+92>>2]=H[a+92>>2];H[b+96>>2]=H[a+96>>2];H[a+96>>2]=0;H[a+88>>2]=0;H[a+92>>2]=0;f=I[a+100|0];H[b+112>>2]=0;H[b+104>>2]=0;H[b+108>>2]=0;F[b+100|0]=f;H[b+104>>2]=H[a+104>>2];H[b+108>>2]=H[a+108>>2];H[b+112>>2]=H[a+112>>2];H[a+112>>2]=0;H[a+104>>2]=0;H[a+108>>2]=0;H[b+124>>2]=0;H[b+116>>2]=0;H[b+120>>2]=0;H[b+116>>2]=H[a+116>>2];H[b+120>>2]=H[a+120>>2];H[b+124>>2]=H[a+124>>2];H[a+124>>2]=0;H[a+116>>2]=0;H[a+120>>2]=0;f=H[a+128>>2];H[b+140>>2]=0;H[b+132>>2]=0;H[b+136>>2]=0;H[b+128>>2]=f;H[b+132>>2]=H[a+132>>2];H[b+136>>2]=H[a+136>>2];H[b+140>>2]=H[a+140>>2];H[a+140>>2]=0;H[a+132>>2]=0;H[a+136>>2]=0;if((a|0)!=(d|0)){continue}break}H[c+8>>2]=e;a=H[c+4>>2];H[c+4>>2]=g;d=H[c>>2];H[c>>2]=b;if((a|0)==(d|0)){break c}while(1){b=a-144|0;c=H[b+132>>2];if(c){H[a-8>>2]=c;ra(c)}c=H[a-28>>2];if(c){H[a-24>>2]=c;ra(c)}c=H[a-40>>2];if(c){H[a-36>>2]=c;ra(c)}pc(a-140|0);a=b;if((d|0)!=(a|0)){continue}break}break c}va();v()}za();v()}H[c+8>>2]=e;H[c+4>>2]=g;H[c>>2]=b}if(d){ra(d)}}return}if(b>>>0>>0){c=c+N(b,144)|0;if((c|0)!=(d|0)){while(1){b=d-144|0;e=H[b+132>>2];if(e){H[d-8>>2]=e;ra(e)}e=H[d-28>>2];if(e){H[d-24>>2]=e;ra(e)}e=H[d-40>>2];if(e){H[d-36>>2]=e;ra(e)}pc(d-140|0);d=b;if((b|0)!=(c|0)){continue}break}}H[a+4>>2]=c}}function Ne(a,b,c,d){var e=0,f=0,g=0,h=0,i=0,j=0;f=fa-80|0;fa=f;e=H[c+36>>2];H[f+72>>2]=H[c+32>>2];H[f+76>>2]=e;g=H[c+28>>2];e=f- -64|0;H[e>>2]=H[c+24>>2];H[e+4>>2]=g;e=H[c+20>>2];H[f+56>>2]=H[c+16>>2];H[f+60>>2]=e;e=H[c+12>>2];H[f+48>>2]=H[c+8>>2];H[f+52>>2]=e;e=H[c+4>>2];H[f+40>>2]=H[c>>2];H[f+44>>2]=e;oc(a,f+40|0,f+24|0);a:{if(H[a>>2]){break a}if(F[a+15|0]<0){ra(H[a+4>>2])}if(I[f+31|0]){b=sa(32);F[b+27|0]=0;c=I[1521]|I[1522]<<8|(I[1523]<<16|I[1524]<<24);F[b+23|0]=c;F[b+24|0]=c>>>8;F[b+25|0]=c>>>16;F[b+26|0]=c>>>24;c=I[1518]|I[1519]<<8|(I[1520]<<16|I[1521]<<24);d=I[1514]|I[1515]<<8|(I[1516]<<16|I[1517]<<24);F[b+16|0]=d;F[b+17|0]=d>>>8;F[b+18|0]=d>>>16;F[b+19|0]=d>>>24;F[b+20|0]=c;F[b+21|0]=c>>>8;F[b+22|0]=c>>>16;F[b+23|0]=c>>>24;c=I[1510]|I[1511]<<8|(I[1512]<<16|I[1513]<<24);d=I[1506]|I[1507]<<8|(I[1508]<<16|I[1509]<<24);F[b+8|0]=d;F[b+9|0]=d>>>8;F[b+10|0]=d>>>16;F[b+11|0]=d>>>24;F[b+12|0]=c;F[b+13|0]=c>>>8;F[b+14|0]=c>>>16;F[b+15|0]=c>>>24;c=I[1502]|I[1503]<<8|(I[1504]<<16|I[1505]<<24);d=I[1498]|I[1499]<<8|(I[1500]<<16|I[1501]<<24);F[b|0]=d;F[b+1|0]=d>>>8;F[b+2|0]=d>>>16;F[b+3|0]=d>>>24;F[b+4|0]=c;F[b+5|0]=c>>>8;F[b+6|0]=c>>>16;F[b+7|0]=c>>>24;H[a>>2]=-1;Ba(a+4|0,b,27);ra(b);break a}i=fa-16|0;fa=i;b:{c:{switch(F[f+32|0]){case 0:e=sa(44);H[e>>2]=0;H[e+4>>2]=0;H[e+40>>2]=0;H[e+32>>2]=0;H[e+36>>2]=0;H[e+24>>2]=0;H[e+28>>2]=0;H[e+16>>2]=0;H[e+20>>2]=0;H[e+8>>2]=0;H[e+12>>2]=0;e=Tc(e);H[e>>2]=13496;H[f+8>>2]=0;H[f+12>>2]=0;H[f>>2]=0;H[f+4>>2]=0;H[f+16>>2]=e;break b;case 1:e=sa(44);H[e>>2]=0;H[e+4>>2]=0;H[e+40>>2]=0;H[e+32>>2]=0;H[e+36>>2]=0;H[e+24>>2]=0;H[e+28>>2]=0;H[e+16>>2]=0;H[e+20>>2]=0;H[e+8>>2]=0;H[e+12>>2]=0;e=Tc(e);H[e>>2]=13404;H[f+8>>2]=0;H[f+12>>2]=0;H[f>>2]=0;H[f+4>>2]=0;H[f+16>>2]=e;break b;default:break c}}g=sa(32);F[g+28|0]=0;e=I[1550]|I[1551]<<8|(I[1552]<<16|I[1553]<<24);F[g+24|0]=e;F[g+25|0]=e>>>8;F[g+26|0]=e>>>16;F[g+27|0]=e>>>24;e=I[1546]|I[1547]<<8|(I[1548]<<16|I[1549]<<24);h=I[1542]|I[1543]<<8|(I[1544]<<16|I[1545]<<24);F[g+16|0]=h;F[g+17|0]=h>>>8;F[g+18|0]=h>>>16;F[g+19|0]=h>>>24;F[g+20|0]=e;F[g+21|0]=e>>>8;F[g+22|0]=e>>>16;F[g+23|0]=e>>>24;e=I[1538]|I[1539]<<8|(I[1540]<<16|I[1541]<<24);h=I[1534]|I[1535]<<8|(I[1536]<<16|I[1537]<<24);F[g+8|0]=h;F[g+9|0]=h>>>8;F[g+10|0]=h>>>16;F[g+11|0]=h>>>24;F[g+12|0]=e;F[g+13|0]=e>>>8;F[g+14|0]=e>>>16;F[g+15|0]=e>>>24;e=I[1530]|I[1531]<<8|(I[1532]<<16|I[1533]<<24);h=I[1526]|I[1527]<<8|(I[1528]<<16|I[1529]<<24);F[g|0]=h;F[g+1|0]=h>>>8;F[g+2|0]=h>>>16;F[g+3|0]=h>>>24;F[g+4|0]=e;F[g+5|0]=e>>>8;F[g+6|0]=e>>>16;F[g+7|0]=e>>>24;H[i>>2]=-1;e=i|4;Ba(e,g,28);j=F[i+15|0];H[f>>2]=H[i>>2];h=f+4|0;d:{if((j|0)>=0){j=H[e+4>>2];H[h>>2]=H[e>>2];H[h+4>>2]=j;H[h+8>>2]=H[e+8>>2];H[f+16>>2]=0;break d}Ba(h,H[i+4>>2],H[i+8>>2]);e=F[i+15|0];H[f+16>>2]=0;if((e|0)>=0){break d}ra(H[i+4>>2])}ra(g)}fa=i+16|0;e=H[f>>2];e:{if(e){H[a>>2]=e;a=a+4|0;if(F[f+15|0]>=0){b=f|4;c=H[b+4>>2];H[a>>2]=H[b>>2];H[a+4>>2]=c;H[a+8>>2]=H[b+8>>2];break e}Ba(a,H[f+4>>2],H[f+8>>2]);break e}e=H[f+16>>2];H[f+16>>2]=0;se(a,e,b,c,d);if(!H[a>>2]){if(F[a+15|0]<0){ra(H[a+4>>2])}H[a>>2]=0;H[a+4>>2]=0;H[a+8>>2]=0;H[a+12>>2]=0}ha[H[H[e>>2]+4>>2]](e)}a=H[f+16>>2];H[f+16>>2]=0;if(a){ha[H[H[a>>2]+4>>2]](a)}if(F[f+15|0]>=0){break a}ra(H[f+4>>2])}fa=f+80|0}function si(a){a=a|0;var b=0,c=0,d=0,e=0,f=0;b=H[a+32>>2];e=H[b+16>>2];d=H[b+12>>2];c=H[b+20>>2];if(K[b+8>>2]>e>>>0&(d|0)>=(c|0)|(c|0)<(d|0)){f=I[e+H[b>>2]|0];d=e+1|0;c=d?c:c+1|0;H[b+16>>2]=d;H[b+20>>2]=c;b=H[a+48>>2];H[a+48>>2]=0;if(b){ha[H[H[b>>2]+4>>2]](b)}a:{b:{c:{d:{switch(f|0){case 0:b=sa(384);H[b>>2]=11384;ua(b+4|0,0,80);H[b+96>>2]=0;H[b+100>>2]=0;H[b+92>>2]=-1;H[b+84>>2]=-1;H[b+88>>2]=-1;H[b+104>>2]=0;H[b+108>>2]=0;H[b+112>>2]=0;H[b+116>>2]=0;H[b+120>>2]=0;H[b+124>>2]=0;H[b+128>>2]=0;H[b+132>>2]=0;H[b+136>>2]=0;H[b+140>>2]=0;H[b+144>>2]=0;H[b+148>>2]=0;H[b+156>>2]=0;H[b+160>>2]=0;H[b+152>>2]=1065353216;H[b+164>>2]=0;H[b+168>>2]=0;H[b+172>>2]=0;H[b+176>>2]=0;H[b+180>>2]=0;H[b+184>>2]=0;H[b+188>>2]=0;H[b+192>>2]=0;H[b+196>>2]=0;H[b+200>>2]=0;H[b+204>>2]=0;H[b+208>>2]=0;H[b+212>>2]=-1;H[b+216>>2]=0;H[b+220>>2]=0;H[b+224>>2]=0;Ka(b+232|0);Ka(b+272|0);c=b+312|0;H[c>>2]=0;H[c+4>>2]=0;F[c+5|0]=0;F[c+6|0]=0;F[c+7|0]=0;F[c+8|0]=0;F[c+9|0]=0;F[c+10|0]=0;F[c+11|0]=0;F[c+12|0]=0;Ka(b+328|0);H[b+376>>2]=0;H[b+368>>2]=0;H[b+372>>2]=0;break c;case 1:b=sa(424);H[b>>2]=11436;ua(b+4|0,0,80);H[b+96>>2]=0;H[b+100>>2]=0;H[b+92>>2]=-1;H[b+84>>2]=-1;H[b+88>>2]=-1;H[b+104>>2]=0;H[b+108>>2]=0;H[b+112>>2]=0;H[b+116>>2]=0;H[b+120>>2]=0;H[b+124>>2]=0;H[b+128>>2]=0;H[b+132>>2]=0;H[b+136>>2]=0;H[b+140>>2]=0;H[b+144>>2]=0;H[b+148>>2]=0;H[b+156>>2]=0;H[b+160>>2]=0;H[b+152>>2]=1065353216;H[b+164>>2]=0;H[b+168>>2]=0;H[b+172>>2]=0;H[b+176>>2]=0;H[b+180>>2]=0;H[b+184>>2]=0;H[b+188>>2]=0;H[b+192>>2]=0;H[b+196>>2]=0;H[b+200>>2]=0;H[b+204>>2]=0;H[b+208>>2]=0;H[b+212>>2]=-1;H[b+216>>2]=0;H[b+220>>2]=0;H[b+224>>2]=0;Ka(b+232|0);Ka(b+272|0);c=b+312|0;H[c>>2]=0;H[c+4>>2]=0;F[c+5|0]=0;F[c+6|0]=0;F[c+7|0]=0;F[c+8|0]=0;F[c+9|0]=0;F[c+10|0]=0;F[c+11|0]=0;F[c+12|0]=0;Ka(b+328|0);H[b+392>>2]=0;H[b+396>>2]=0;H[b+384>>2]=0;H[b+388>>2]=0;H[b+376>>2]=0;H[b+380>>2]=0;H[b+368>>2]=0;H[b+372>>2]=0;c=b+400|0;H[c>>2]=0;H[c+4>>2]=0;F[c+5|0]=0;F[c+6|0]=0;F[c+7|0]=0;F[c+8|0]=0;F[c+9|0]=0;F[c+10|0]=0;F[c+11|0]=0;F[c+12|0]=0;H[b+416>>2]=-1;H[b+420>>2]=-1;break c;case 2:break d;default:break b}}b=sa(440);H[b>>2]=11484;ua(b+4|0,0,80);H[b+96>>2]=0;H[b+100>>2]=0;H[b+92>>2]=-1;H[b+84>>2]=-1;H[b+88>>2]=-1;H[b+104>>2]=0;H[b+108>>2]=0;H[b+112>>2]=0;H[b+116>>2]=0;H[b+120>>2]=0;H[b+124>>2]=0;H[b+128>>2]=0;H[b+132>>2]=0;H[b+136>>2]=0;H[b+140>>2]=0;H[b+144>>2]=0;H[b+148>>2]=0;H[b+156>>2]=0;H[b+160>>2]=0;H[b+152>>2]=1065353216;H[b+164>>2]=0;H[b+168>>2]=0;H[b+172>>2]=0;H[b+176>>2]=0;H[b+180>>2]=0;H[b+184>>2]=0;H[b+188>>2]=0;H[b+192>>2]=0;H[b+196>>2]=0;H[b+200>>2]=0;H[b+204>>2]=0;H[b+208>>2]=0;H[b+212>>2]=-1;H[b+216>>2]=0;H[b+220>>2]=0;H[b+224>>2]=0;Ka(b+232|0);Ka(b+272|0);c=b+312|0;H[c>>2]=0;H[c+4>>2]=0;F[c+5|0]=0;F[c+6|0]=0;F[c+7|0]=0;F[c+8|0]=0;F[c+9|0]=0;F[c+10|0]=0;F[c+11|0]=0;F[c+12|0]=0;Ka(b+328|0);H[b+392>>2]=0;H[b+396>>2]=0;H[b+384>>2]=0;H[b+388>>2]=0;H[b+376>>2]=0;H[b+380>>2]=0;H[b+368>>2]=0;H[b+372>>2]=0;H[b+416>>2]=0;H[b+420>>2]=0;H[b+408>>2]=2;H[b+412>>2]=7;H[b+400>>2]=-1;H[b+404>>2]=-1;H[b+424>>2]=0;H[b+428>>2]=0;H[b+432>>2]=0;H[b+436>>2]=0}c=H[a+48>>2];H[a+48>>2]=b;if(!c){break a}ha[H[H[c>>2]+4>>2]](c)}b=H[a+48>>2];if(b){break a}return 0}a=ha[H[H[b>>2]+8>>2]](b,a)|0}else{a=0}return a|0}function Nb(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,w=0,x=0,y=0;f=fa-96|0;fa=f;d=H[a+16>>2];F[f+92|0]=1;H[f+88>>2]=b;H[f+84>>2]=b;H[f+80>>2]=d;a:{if((b|0)==-1){break a}l=H[a+20>>2];e=H[l>>2];d=H[H[d>>2]+(b<<2)>>2];if(d>>>0>=H[l+4>>2]-e>>2>>>0){break a}d=H[H[a+8>>2]+(H[e+(d<<2)>>2]<<2)>>2];e=H[a+4>>2];if(!I[e+84|0]){d=H[H[e+68>>2]+(d<<2)>>2]}H[f+72>>2]=0;H[f+76>>2]=0;l=f- -64|0;H[l>>2]=0;H[l+4>>2]=0;H[f+56>>2]=0;H[f+60>>2]=0;Va(e,d,F[e+24|0],f+56|0);d=b+1|0;l=(d>>>0)%3|0?d:b-2|0;i=((b>>>0)%3|0?-1:2)+b|0;b:{c:{while(1){e=l;d=i;d:{if(!H[a+28>>2]){break d}d=b+1|0;e=(d>>>0)%3|0?d:b-2|0;d=b-1|0;if((b>>>0)%3|0){break d}d=b+2|0}if((e|0)==-1){break b}h=H[a+20>>2];b=H[h>>2];e=H[H[H[a+16>>2]>>2]+(e<<2)>>2];if(e>>>0>=H[h+4>>2]-b>>2>>>0){break b}e=H[H[a+8>>2]+(H[(e<<2)+b>>2]<<2)>>2];b=H[a+4>>2];if(!I[b+84|0]){e=H[H[b+68>>2]+(e<<2)>>2]}H[f+48>>2]=0;H[f+52>>2]=0;H[f+40>>2]=0;H[f+44>>2]=0;H[f+32>>2]=0;H[f+36>>2]=0;Va(b,e,F[b+24|0],f+32|0);if((d|0)==-1){break c}e=H[a+20>>2];b=H[e>>2];d=H[H[H[a+16>>2]>>2]+(d<<2)>>2];if(d>>>0>=H[e+4>>2]-b>>2>>>0){break c}e=H[H[a+8>>2]+(H[b+(d<<2)>>2]<<2)>>2];b=H[a+4>>2];if(!I[b+84|0]){e=H[H[b+68>>2]+(e<<2)>>2]}H[f+24>>2]=0;H[f+28>>2]=0;H[f+16>>2]=0;H[f+20>>2]=0;H[f+8>>2]=0;H[f+12>>2]=0;Va(b,e,F[b+24|0],f+8|0);d=H[f+8>>2];b=H[f+56>>2];e=d-b|0;h=H[f+60>>2];j=H[f+12>>2]-(h+(b>>>0>d>>>0)|0)|0;p=H[f+40>>2];d=H[f+64>>2];s=p-d|0;t=H[f+68>>2];p=H[f+44>>2]-(t+(d>>>0>p>>>0)|0)|0;u=Nj(e,j,s,p);w=o-u|0;o=g-(ga+(o>>>0>>0)|0)|0;k=w;g=H[f+16>>2];u=g-d|0;t=H[f+20>>2]-((d>>>0>g>>>0)+t|0)|0;g=H[f+32>>2];w=g-b|0;h=H[f+36>>2]-((b>>>0>g>>>0)+h|0)|0;d=Nj(u,t,w,h);b=k+d|0;g=ga+o|0;g=b>>>0>>0?g+1|0:g;o=b;y=m;k=e;d=j;b=H[f+48>>2];m=H[f+72>>2];e=b-m|0;j=H[f+76>>2];x=H[f+52>>2]-(j+(b>>>0>>0)|0)|0;k=Nj(k,d,e,x);d=y+k|0;b=ga+n|0;b=d>>>0>>0?b+1|0:b;n=H[f+24>>2];k=n-m|0;j=H[f+28>>2]-((m>>>0>n>>>0)+j|0)|0;n=Nj(k,j,w,h);m=d-n|0;n=b-(ga+(d>>>0>>0)|0)|0;b=Nj(u,t,e,x);d=q-b|0;b=r-(ga+(b>>>0>q>>>0)|0)|0;r=Nj(k,j,s,p);q=r+d|0;b=ga+b|0;b=q>>>0>>0?b+1|0:b;r=b;vc(f+80|0);b=H[f+88>>2];if((b|0)!=-1){continue}break}b=r>>31;d=b^q;j=d-b|0;h=(b^r)-((b>>>0>d>>>0)+b|0)|0;p=-1;d=2147483647;b=n>>31;l=b^m;e=(b^n)-((b>>>0>l>>>0)+b|0)|0;b=l-b|0;s=b^-1;i=e^2147483647;k=g;e:{f:{if(!H[a+28>>2]){if((i|0)==(h|0)&j>>>0>s>>>0|i>>>0>>0){break e}i=g;a=b;d=b+j|0;b=e+h|0;b=a>>>0>d>>>0?b+1|0:b;a=g>>31;h=a^o;j=h-a|0;g=d+j|0;e=(a^i)-((a>>>0>h>>>0)+a|0)|0;a=g;g=e^2147483647;g=(g|0)==(b|0)&(j^-1)>>>0>>0|b>>>0>g>>>0;a=g?-1:a;if(!(g&0)&(a|0)<=536870912|(a|0)<536870912){break e}b=0;a=a>>>29|0;break f}g:{if((i|0)==(h|0)&j>>>0>s>>>0|i>>>0>>0){break g}a=b;i=b+j|0;b=e+h|0;b=a>>>0>i>>>0?b+1|0:b;a=i;h=g;e=g>>31;g=e;i=e^o;e=(e^h)-(e+(e>>>0>i>>>0)|0)|0;g=i-g|0;i=e^2147483647;if((i|0)==(b|0)&(g^-1)>>>0>>0|b>>>0>i>>>0){break g}b=b+e|0;a=a+g|0;b=a>>>0>>0?b+1|0:b;p=a;d=b;if(!b&a>>>0<536870913){break e}}b=d>>>29|0;a=(d&536870911)<<3|p>>>29}o=Oj(o,k,a,b);m=Oj(m,n,a,b);q=Oj(q,r,a,b)}H[c+8>>2]=o;H[c+4>>2]=m;H[c>>2]=q;fa=f+96|0;return}Ea();v()}Ea();v()}Ea();v()}function Vd(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0;a:{if((b|0)<0){break a}c=H[a+12>>2];d=H[a+8>>2];if(c-d>>2>>>0<=b>>>0){break a}e=d+(b<<2)|0;d=H[e>>2];i=H[d+60>>2];g=H[d+56>>2];d=e+4|0;b:{if((d|0)!=(c|0)){while(1){h=H[d>>2];H[d>>2]=0;f=H[e>>2];H[e>>2]=h;if(f){Ja(f)}e=e+4|0;d=d+4|0;if((d|0)!=(c|0)){continue}break}c=H[a+12>>2];if((e|0)==(c|0)){break b}}while(1){c=c-4|0;d=H[c>>2];H[c>>2]=0;if(d){Ja(d)}if((c|0)!=(e|0)){continue}break}}H[a+12>>2]=e;f=H[a+4>>2];c:{if(!f|(i|0)<0){break c}c=H[f+24>>2];d=H[f+28>>2];if((c|0)==(d|0)){break c}while(1){if((i|0)==H[H[c>>2]+24>>2]){e=c+4|0;i=H[f+28>>2];d:{if((e|0)!=(i|0)){while(1){h=H[e>>2];H[e>>2]=0;d=H[c>>2];H[c>>2]=h;if(d){Ua(d+12|0,H[d+16>>2]);Ta(d,H[d+4>>2]);ra(d)}c=c+4|0;e=e+4|0;if((i|0)!=(e|0)){continue}break}e=H[f+28>>2];if((e|0)==(c|0)){break d}}while(1){e=e-4|0;d=H[e>>2];H[e>>2]=0;if(d){Ua(d+12|0,H[d+16>>2]);Ta(d,H[d+4>>2]);ra(d)}if((c|0)!=(e|0)){continue}break}}H[f+28>>2]=c;break c}c=c+4|0;if((d|0)!=(c|0)){continue}break}}e:{if((g|0)>4){break e}f:{e=N(g,12)+a|0;c=H[e+20>>2];d=H[e+24>>2];if((c|0)==(d|0)){break f}while(1){if(H[c>>2]==(b|0)){break f}c=c+4|0;if((d|0)!=(c|0)){continue}break}break e}if((c|0)==(d|0)){break e}f=c+4|0;i=d-f|0;if((d|0)!=(f|0)){Sa(c,f,i)}H[e+24>>2]=c+i}c=H[a+24>>2];e=H[a+20>>2];g:{if((c|0)==(e|0)){break g}d=c-e|0;c=d>>2;f=c>>>0<=1?1:c;i=f&1;c=0;if(d>>>0>=8){f=f&-2;d=0;while(1){g=c<<2;h=g+e|0;j=H[h>>2];if((j|0)>(b|0)){H[h>>2]=j-1}g=e+(g|4)|0;h=H[g>>2];if((h|0)>(b|0)){H[g>>2]=h-1}c=c+2|0;d=d+2|0;if((f|0)!=(d|0)){continue}break}}if(!i){break g}c=e+(c<<2)|0;d=H[c>>2];if((d|0)<=(b|0)){break g}H[c>>2]=d-1}c=H[a+36>>2];e=H[a+32>>2];h:{if((c|0)==(e|0)){break h}d=c-e|0;c=d>>2;f=c>>>0<=1?1:c;i=f&1;c=0;if(d>>>0>=8){f=f&-2;d=0;while(1){g=c<<2;h=g+e|0;j=H[h>>2];if((j|0)>(b|0)){H[h>>2]=j-1}g=e+(g|4)|0;h=H[g>>2];if((h|0)>(b|0)){H[g>>2]=h-1}c=c+2|0;d=d+2|0;if((f|0)!=(d|0)){continue}break}}if(!i){break h}c=e+(c<<2)|0;d=H[c>>2];if((d|0)<=(b|0)){break h}H[c>>2]=d-1}c=H[a+48>>2];e=H[a+44>>2];i:{if((c|0)==(e|0)){break i}d=c-e|0;c=d>>2;f=c>>>0<=1?1:c;i=f&1;c=0;if(d>>>0>=8){f=f&-2;d=0;while(1){g=c<<2;h=g+e|0;j=H[h>>2];if((j|0)>(b|0)){H[h>>2]=j-1}g=e+(g|4)|0;h=H[g>>2];if((h|0)>(b|0)){H[g>>2]=h-1}c=c+2|0;d=d+2|0;if((f|0)!=(d|0)){continue}break}}if(!i){break i}c=e+(c<<2)|0;d=H[c>>2];if((d|0)<=(b|0)){break i}H[c>>2]=d-1}c=H[a+60>>2];e=H[a+56>>2];j:{if((c|0)==(e|0)){break j}d=c-e|0;c=d>>2;f=c>>>0<=1?1:c;i=f&1;c=0;if(d>>>0>=8){f=f&-2;d=0;while(1){g=c<<2;h=g+e|0;j=H[h>>2];if((j|0)>(b|0)){H[h>>2]=j-1}g=e+(g|4)|0;h=H[g>>2];if((h|0)>(b|0)){H[g>>2]=h-1}c=c+2|0;d=d+2|0;if((f|0)!=(d|0)){continue}break}}if(!i){break j}c=e+(c<<2)|0;d=H[c>>2];if((d|0)<=(b|0)){break j}H[c>>2]=d-1}c=H[a+72>>2];a=H[a+68>>2];if((c|0)==(a|0)){break a}d=c-a|0;c=d>>2;e=c>>>0<=1?1:c;f=e&1;c=0;if(d>>>0>=8){e=e&-2;d=0;while(1){i=c<<2;g=i+a|0;h=H[g>>2];if((h|0)>(b|0)){H[g>>2]=h-1}i=a+(i|4)|0;g=H[i>>2];if((g|0)>(b|0)){H[i>>2]=g-1}c=c+2|0;d=d+2|0;if((e|0)!=(d|0)){continue}break}}if(!f){break a}d=b;a=a+(c<<2)|0;b=H[a>>2];if((d|0)>=(b|0)){break a}H[a>>2]=b-1}}function ra(a){a=a|0;var b=0,c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0;a:{if(!a){break a}d=a-8|0;b=H[a-4>>2];a=b&-8;f=d+a|0;b:{if(b&1){break b}if(!(b&3)){break a}b=H[d>>2];d=d-b|0;if(d>>>0>>0<=255){e=H[d+8>>2];b=b>>>3|0;c=H[d+12>>2];if((c|0)==(e|0)){i=17184,j=H[4296]&Rj(b),H[i>>2]=j;break b}H[e+12>>2]=c;H[c+8>>2]=e;break b}h=H[d+24>>2];b=H[d+12>>2];c:{if((d|0)!=(b|0)){c=H[d+8>>2];H[c+12>>2]=b;H[b+8>>2]=c;break c}d:{e=d+20|0;c=H[e>>2];if(c){break d}e=d+16|0;c=H[e>>2];if(c){break d}b=0;break c}while(1){g=e;b=c;e=b+20|0;c=H[e>>2];if(c){continue}e=b+16|0;c=H[b+16>>2];if(c){continue}break}H[g>>2]=0}if(!h){break b}e=H[d+28>>2];c=(e<<2)+17488|0;e:{if(H[c>>2]==(d|0)){H[c>>2]=b;if(b){break e}i=17188,j=H[4297]&Rj(e),H[i>>2]=j;break b}H[h+(H[h+16>>2]==(d|0)?16:20)>>2]=b;if(!b){break b}}H[b+24>>2]=h;c=H[d+16>>2];if(c){H[b+16>>2]=c;H[c+24>>2]=b}c=H[d+20>>2];if(!c){break b}H[b+20>>2]=c;H[c+24>>2]=b;break b}b=H[f+4>>2];if((b&3)!=3){break b}H[4298]=a;H[f+4>>2]=b&-2;H[d+4>>2]=a|1;H[a+d>>2]=a;return}if(d>>>0>=f>>>0){break a}b=H[f+4>>2];if(!(b&1)){break a}f:{if(!(b&2)){if(H[4302]==(f|0)){H[4302]=d;a=H[4299]+a|0;H[4299]=a;H[d+4>>2]=a|1;if(H[4301]!=(d|0)){break a}H[4298]=0;H[4301]=0;return}if(H[4301]==(f|0)){H[4301]=d;a=H[4298]+a|0;H[4298]=a;H[d+4>>2]=a|1;H[a+d>>2]=a;return}a=(b&-8)+a|0;g:{if(b>>>0<=255){e=H[f+8>>2];b=b>>>3|0;c=H[f+12>>2];if((c|0)==(e|0)){i=17184,j=H[4296]&Rj(b),H[i>>2]=j;break g}H[e+12>>2]=c;H[c+8>>2]=e;break g}h=H[f+24>>2];b=H[f+12>>2];h:{if((f|0)!=(b|0)){c=H[f+8>>2];H[c+12>>2]=b;H[b+8>>2]=c;break h}i:{e=f+20|0;c=H[e>>2];if(c){break i}e=f+16|0;c=H[e>>2];if(c){break i}b=0;break h}while(1){g=e;b=c;e=b+20|0;c=H[e>>2];if(c){continue}e=b+16|0;c=H[b+16>>2];if(c){continue}break}H[g>>2]=0}if(!h){break g}e=H[f+28>>2];c=(e<<2)+17488|0;j:{if(H[c>>2]==(f|0)){H[c>>2]=b;if(b){break j}i=17188,j=H[4297]&Rj(e),H[i>>2]=j;break g}H[h+(H[h+16>>2]==(f|0)?16:20)>>2]=b;if(!b){break g}}H[b+24>>2]=h;c=H[f+16>>2];if(c){H[b+16>>2]=c;H[c+24>>2]=b}c=H[f+20>>2];if(!c){break g}H[b+20>>2]=c;H[c+24>>2]=b}H[d+4>>2]=a|1;H[a+d>>2]=a;if(H[4301]!=(d|0)){break f}H[4298]=a;return}H[f+4>>2]=b&-2;H[d+4>>2]=a|1;H[a+d>>2]=a}if(a>>>0<=255){b=(a&-8)+17224|0;c=H[4296];a=1<<(a>>>3);k:{if(!(c&a)){H[4296]=a|c;a=b;break k}a=H[b+8>>2]}H[b+8>>2]=d;H[a+12>>2]=d;H[d+12>>2]=b;H[d+8>>2]=a;return}e=31;if(a>>>0<=16777215){b=a>>>8|0;g=b+1048320>>>16&8;b=b<>>16&4;b=b<>>16&2;b=(b<>>15|0)-(c|(e|g))|0;e=(b<<1|a>>>b+21&1)+28|0}H[d+28>>2]=e;H[d+16>>2]=0;H[d+20>>2]=0;g=(e<<2)+17488|0;l:{m:{c=H[4297];b=1<>2]=d;H[d+24>>2]=g;break n}e=a<<((e|0)!=31?25-(e>>>1|0)|0:0);b=H[g>>2];while(1){c=b;if((H[b+4>>2]&-8)==(a|0)){break m}b=e>>>29|0;e=e<<1;g=c+(b&4)|0;b=H[g+16>>2];if(b){continue}break}H[g+16>>2]=d;H[d+24>>2]=c}H[d+12>>2]=d;H[d+8>>2]=d;break l}a=H[c+8>>2];H[a+12>>2]=d;H[c+8>>2]=d;H[d+24>>2]=0;H[d+12>>2]=c;H[d+8>>2]=a}a=H[4304]-1|0;H[4304]=a?a:-1}}function Ib(a,b,c,d){var e=0,f=0,g=0,h=0,i=0,j=0,k=O(0),l=0,m=0,n=O(0);j=H[c>>2];a:{b:{f=H[b+4>>2];if(!f){break b}g=Qj(f);c:{if(g>>>0>=2){e=j;if(e>>>0>=f>>>0){e=(j>>>0)%(f>>>0)|0}c=H[H[b>>2]+(e<<2)>>2];if(!c){break b}if(g>>>0<=1){break c}while(1){c=H[c>>2];if(!c){break b}g=H[c+4>>2];if((g|0)!=(j|0)){if(f>>>0<=g>>>0){g=(g>>>0)%(f>>>0)|0}if((e|0)!=(g|0)){break b}}if(H[c+8>>2]!=(j|0)){continue}break}b=0;break a}e=f-1&j;c=H[H[b>>2]+(e<<2)>>2];if(!c){break b}}g=f-1|0;while(1){c=H[c>>2];if(!c){break b}h=H[c+4>>2];if((h|0)!=(j|0)&(g&h)!=(e|0)){break b}if(H[c+8>>2]!=(j|0)){continue}break}b=0;break a}c=sa(16);d=H[H[d>>2]>>2];H[c+12>>2]=0;H[c+8>>2]=d;H[c+4>>2]=j;H[c>>2]=0;n=O(H[b+12>>2]+1>>>0);k=L[b+16>>2];d:{if(n>O(k*O(f>>>0))?0:f){break d}e=2;g=(f-1&f)!=0|f>>>0<3|f<<1;k=O(U(O(n/k)));e:{if(k=O(0)){d=~~k>>>0;break e}d=0}d=d>>>0>>0?g:d;f:{if((d|0)==1){break f}if(!(d&d-1)){e=d;break f}e=Kd(d);f=H[b+4>>2]}g:{if(e>>>0<=f>>>0){if(e>>>0>=f>>>0){break g}g=f>>>0<3;k=O(U(O(O(K[b+12>>2])/L[b+16>>2])));h:{if(k=O(0)){d=~~k>>>0;break h}d=0}i:{j:{if(g){break j}if(Qj(f)>>>0>1){break j}d=d>>>0<2?d:1<<32-Q(d-1|0);break i}d=Kd(d)}e=d>>>0>>0?e:d;if(e>>>0>=f>>>0){break g}}f=0;h=e;k:{l:{m:{n:{if(e){if(h>>>0>=1073741824){break n}e=sa(h<<2);d=H[b>>2];H[b>>2]=e;if(d){ra(d)}H[b+4>>2]=h;e=0;if(h>>>0>=4){g=h&-4;while(1){d=e<<2;H[d+H[b>>2]>>2]=0;H[H[b>>2]+(d|4)>>2]=0;H[H[b>>2]+(d|8)>>2]=0;H[H[b>>2]+(d|12)>>2]=0;e=e+4|0;f=f+4|0;if((g|0)!=(f|0)){continue}break}}d=h&3;if(d){while(1){H[H[b>>2]+(e<<2)>>2]=0;e=e+1|0;i=i+1|0;if((d|0)!=(i|0)){continue}break}}f=H[b+8>>2];if(!f){break k}d=b+8|0;g=H[f+4>>2];e=Qj(h);if(e>>>0<2){break m}g=g>>>0>=h>>>0?(g>>>0)%(h>>>0)|0:g;H[H[b>>2]+(g<<2)>>2]=d;d=H[f>>2];if(!d){break k}if(e>>>0<=1){break l}while(1){i=H[d+4>>2];if(h>>>0<=i>>>0){i=(i>>>0)%(h>>>0)|0}o:{if((g|0)==(i|0)){f=d;break o}e=d;l=i<<2;m=l+H[b>>2]|0;if(!H[m>>2]){H[m>>2]=f;f=d;g=i;break o}while(1){i=e;e=H[e>>2];if(H[d+8>>2]==H[e+8>>2]?e:0){continue}break}H[f>>2]=e;H[i>>2]=H[H[l+H[b>>2]>>2]>>2];H[H[l+H[b>>2]>>2]>>2]=d}d=H[f>>2];if(d){continue}break}break k}d=H[b>>2];H[b>>2]=0;if(d){ra(d)}H[b+4>>2]=0;break k}za();v()}g=h-1&g;H[H[b>>2]+(g<<2)>>2]=d;d=H[f>>2];if(!d){break k}}l=h-1|0;while(1){h=l&H[d+4>>2];p:{if((h|0)==(g|0)){f=d;break p}e=d;i=h<<2;m=i+H[b>>2]|0;if(H[m>>2]){while(1){h=e;e=H[e>>2];if(H[d+8>>2]==H[e+8>>2]?e:0){continue}break}H[f>>2]=e;H[h>>2]=H[H[i+H[b>>2]>>2]>>2];H[H[i+H[b>>2]>>2]>>2]=d;break p}H[m>>2]=f;f=d;g=h}d=H[f>>2];if(d){continue}break}}}f=H[b+4>>2];d=f-1|0;if(!(d&f)){e=d&j;break d}if(f>>>0>j>>>0){e=j;break d}e=(j>>>0)%(f>>>0)|0}e=H[b>>2]+(e<<2)|0;d=H[e>>2];q:{r:{if(!d){d=b+8|0;H[c>>2]=H[d>>2];H[b+8>>2]=c;H[e>>2]=d;d=H[c>>2];if(!d){break q}d=H[d+4>>2];e=f-1|0;s:{if(!(e&f)){d=d&e;break s}if(d>>>0>>0){break s}d=(d>>>0)%(f>>>0)|0}d=H[b>>2]+(d<<2)|0;break r}H[c>>2]=H[d>>2]}H[d>>2]=c}H[b+12>>2]=H[b+12>>2]+1;b=1}F[a+4|0]=b;H[a>>2]=c}function Hc(a){var b=0,c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0;H[a+56>>2]=H[a+52>>2];H[a+44>>2]=H[a+40>>2];d=H[a+64>>2];c=H[d+24>>2];if((c|0)==H[d+28>>2]){return 1}a:{b:{c:{while(1){e=b;c=H[(j<<2)+c>>2];d:{if((c|0)==-1){break d}b=H[a+56>>2];e:{if((b|0)!=H[a+60>>2]){H[b>>2]=e;H[a+56>>2]=b+4;break e}d=H[a+52>>2];h=b-d|0;g=h>>2;b=g+1|0;if(b>>>0>=1073741824){break c}f=h>>1;f=h>>>0>=2147483644?1073741823:b>>>0>>0?f:b;if(f){if(f>>>0>=1073741824){break b}b=sa(f<<2)}else{b=0}g=b+(g<<2)|0;H[g>>2]=e;if((h|0)>0){ta(b,d,h)}H[a+60>>2]=b+(f<<2);H[a+56>>2]=g+4;H[a+52>>2]=b;if(!d){break e}ra(d)}f:{g:{if(!(H[H[a+12>>2]+(j>>>3&536870908)>>2]>>>j&1)){break g}b=c+1|0;b=(b>>>0)%3|0?b:c-2|0;if((b|0)==-1|H[H[a>>2]+(b>>>3&536870908)>>2]>>>b&1){break g}b=H[H[H[a+64>>2]+12>>2]+(b<<2)>>2];if((b|0)==-1){break g}h=b+1|0;d=(h>>>0)%3|0?h:b-2|0;if((d|0)==-1){break g}f=H[a+64>>2];g=H[a>>2];while(1){h=d;d=-1;b=h+1|0;b=(b>>>0)%3|0?b:h-2|0;h:{if((b|0)==-1|H[g+(b>>>3&536870908)>>2]>>>b&1){break h}b=H[H[f+12>>2]+(b<<2)>>2];if((b|0)==-1){break h}d=b+1|0;d=(d>>>0)%3|0?d:b-2|0}if((d|0)!=(c|0)){if((d|0)==-1){break f}continue}break}return 0}h=c}H[H[a+28>>2]+(h<<2)>>2]=e;b=H[a+44>>2];i:{if((b|0)!=H[a+48>>2]){H[b>>2]=h;H[a+44>>2]=b+4;break i}c=H[a+40>>2];d=b-c|0;g=d>>2;b=g+1|0;if(b>>>0>=1073741824){break a}f=d>>1;f=d>>>0>=2147483644?1073741823:b>>>0>>0?f:b;if(f){if(f>>>0>=1073741824){break b}b=sa(f<<2)}else{b=0}g=b+(g<<2)|0;H[g>>2]=h;if((d|0)>0){ta(b,c,d)}H[a+48>>2]=b+(f<<2);H[a+44>>2]=g+4;H[a+40>>2]=b;if(!c){break i}ra(c)}b=e+1|0;d=H[a+64>>2];j:{if((h>>>0)%3|0){c=h-1|0;break j}c=h+2|0;if((c|0)==-1){break d}}c=H[H[d+12>>2]+(c<<2)>>2];if((c|0)==-1){break d}c=c+((c>>>0)%3|0?-1:2)|0;if((c|0)==-1|(c|0)==(h|0)){break d}while(1){d=c+1|0;d=(d>>>0)%3|0?d:c-2|0;if(H[H[a>>2]+(d>>>3&536870908)>>2]>>>d&1){e=H[a+56>>2];k:{if((e|0)!=H[a+60>>2]){H[e>>2]=b;H[a+56>>2]=e+4;break k}f=H[a+52>>2];d=e-f|0;i=d>>2;e=i+1|0;if(e>>>0>=1073741824){break c}g=d>>1;g=d>>>0>=2147483644?1073741823:e>>>0>>0?g:e;if(g){if(g>>>0>=1073741824){break b}e=sa(g<<2)}else{e=0}i=e+(i<<2)|0;H[i>>2]=b;if((d|0)>0){ta(e,f,d)}H[a+60>>2]=e+(g<<2);H[a+56>>2]=i+4;H[a+52>>2]=e;if(!f){break k}ra(f)}d=b+1|0;e=H[a+44>>2];l:{if((e|0)!=H[a+48>>2]){H[e>>2]=c;H[a+44>>2]=e+4;break l}g=H[a+40>>2];f=e-g|0;k=f>>2;e=k+1|0;if(e>>>0>=1073741824){break a}i=f>>1;i=f>>>0>=2147483644?1073741823:e>>>0>>0?i:e;if(i){if(i>>>0>=1073741824){break b}e=sa(i<<2)}else{e=0}k=e+(k<<2)|0;H[k>>2]=c;if((f|0)>0){ta(e,g,f)}H[a+48>>2]=e+(i<<2);H[a+44>>2]=k+4;H[a+40>>2]=e;if(!g){break l}ra(g)}e=b;b=d}H[H[a+28>>2]+(c<<2)>>2]=e;d=H[a+64>>2];m:{if((c>>>0)%3|0){c=c-1|0;break m}c=c+2|0;if((c|0)==-1){break d}}c=H[H[d+12>>2]+(c<<2)>>2];if((c|0)==-1){break d}c=c+((c>>>0)%3|0?-1:2)|0;if((c|0)==-1){break d}if((c|0)!=(h|0)){continue}break}}j=j+1|0;c=H[d+24>>2];if(j>>>0>2]-c>>2>>>0){continue}break}return 1}va();v()}za();v()}va();v()}function rj(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,w=0;H[a+8>>2]=e;n=a+32|0;h=H[n>>2];f=H[a+36>>2]-h>>2;a:{if(f>>>0>>0){Aa(n,e-f|0);d=H[a+8>>2];break a}d=e;if(d>>>0>=f>>>0){break a}H[a+36>>2]=h+(e<<2);d=e}s=H[a+52>>2];p=H[a+48>>2];f=0;h=e>>>0>1073741823?-1:e<<2;m=ua(sa(h),0,h);b:{if((d|0)<=0){break b}g=H[a+32>>2];while(1){d=f<<2;h=H[d+m>>2];j=H[a+16>>2];c:{if((h|0)>(j|0)){H[d+g>>2]=j;break c}d=d+g|0;j=H[a+12>>2];if((j|0)>(h|0)){H[d>>2]=j;break c}H[d>>2]=h}d=H[a+8>>2];f=f+1|0;if((d|0)>(f|0)){continue}break}if((d|0)<=0){break b}f=0;while(1){h=f<<2;d=h+c|0;h=H[b+h>>2]+H[g+h>>2]|0;H[d>>2]=h;d:{if((h|0)>H[a+16>>2]){i=h-H[a+20>>2]|0}else{if((h|0)>=H[a+12>>2]){break d}i=h+H[a+20>>2]|0}H[d>>2]=i}d=H[a+8>>2];f=f+1|0;if((d|0)>(f|0)){continue}break}}f=H[a+56>>2];q=H[f>>2];f=H[f+4>>2]-q|0;if((f|0)>=5){o=f>>>2|0;t=o>>>0<=2?2:o;u=e&-2;w=e&1;h=1;while(1){e:{f:{if((h|0)!=(o|0)){r=N(e,h);f=H[(h<<2)+q>>2];if((f|0)==-1){break f}f=H[H[p+12>>2]+(f<<2)>>2];if((f|0)==-1){break f}j=H[s>>2];g=H[p>>2];k=H[j+(H[g+(f<<2)>>2]<<2)>>2];i=f+1|0;i=(i>>>0)%3|0?i:f-2|0;if((i|0)!=-1){i=H[g+(i<<2)>>2]}else{i=-1}g:{h:{if((f>>>0)%3|0){f=f-1|0;break h}f=f+2|0;l=-1;if((f|0)==-1){break g}}l=H[g+(f<<2)>>2]}if((h|0)<=(k|0)){break f}f=H[(i<<2)+j>>2];if((f|0)>=(h|0)){break f}g=H[j+(l<<2)>>2];if((g|0)>=(h|0)){break f}i:{if((e|0)<=0){break i}g=N(e,g);j=N(e,f);k=N(e,k);f=0;l=0;if((e|0)!=1){while(1){H[(f<<2)+m>>2]=(H[(f+g<<2)+c>>2]+H[(f+j<<2)+c>>2]|0)-H[(f+k<<2)+c>>2];i=f|1;H[(i<<2)+m>>2]=(H[(g+i<<2)+c>>2]+H[(j+i<<2)+c>>2]|0)-H[(i+k<<2)+c>>2];f=f+2|0;l=l+2|0;if((u|0)!=(l|0)){continue}break}}if(!w){break i}H[(f<<2)+m>>2]=(H[(f+g<<2)+c>>2]+H[(f+j<<2)+c>>2]|0)-H[(f+k<<2)+c>>2]}if((d|0)<=0){break e}j=H[n>>2];f=0;while(1){d=f<<2;g=H[d+m>>2];k=H[a+16>>2];j:{if((g|0)>(k|0)){H[d+j>>2]=k;break j}d=d+j|0;k=H[a+12>>2];if((k|0)>(g|0)){H[d>>2]=k;break j}H[d>>2]=g}d=H[a+8>>2];f=f+1|0;if((d|0)>(f|0)){continue}break}f=0;if((d|0)<=0){break e}d=r<<2;k=d+c|0;i=b+d|0;while(1){g=f<<2;d=g+k|0;g=H[g+i>>2]+H[g+j>>2]|0;H[d>>2]=g;k:{if((g|0)>H[a+16>>2]){l=g-H[a+20>>2]|0}else{if((g|0)>=H[a+12>>2]){break k}l=g+H[a+20>>2]|0}H[d>>2]=l}d=H[a+8>>2];f=f+1|0;if((d|0)>(f|0)){continue}break}break e}Ea();v()}if((d|0)<=0){break e}k=(N(h-1|0,e)<<2)+c|0;j=H[n>>2];f=0;while(1){d=f<<2;g=H[d+k>>2];i=H[a+16>>2];l:{if((g|0)>(i|0)){H[d+j>>2]=i;break l}d=d+j|0;i=H[a+12>>2];if((i|0)>(g|0)){H[d>>2]=i;break l}H[d>>2]=g}d=H[a+8>>2];f=f+1|0;if((d|0)>(f|0)){continue}break}f=0;if((d|0)<=0){break e}d=r<<2;k=d+c|0;i=b+d|0;while(1){g=f<<2;d=g+k|0;g=H[g+i>>2]+H[g+j>>2]|0;H[d>>2]=g;m:{if((g|0)>H[a+16>>2]){l=g-H[a+20>>2]|0}else{if((g|0)>=H[a+12>>2]){break m}l=g+H[a+20>>2]|0}H[d>>2]=l}d=H[a+8>>2];f=f+1|0;if((d|0)>(f|0)){continue}break}}h=h+1|0;if((t|0)!=(h|0)){continue}break}}ra(m);return 1}function Ij(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,w=0;H[a+8>>2]=e;m=a+32|0;h=H[m>>2];f=H[a+36>>2]-h>>2;a:{if(f>>>0>>0){Aa(m,e-f|0);d=H[a+8>>2];break a}d=e;if(d>>>0>=f>>>0){break a}H[a+36>>2]=h+(e<<2);d=e}s=H[a+52>>2];n=H[a+48>>2];f=0;h=e>>>0>1073741823?-1:e<<2;l=ua(sa(h),0,h);b:{if((d|0)<=0){break b}g=H[a+32>>2];while(1){d=f<<2;h=H[d+l>>2];i=H[a+16>>2];c:{if((h|0)>(i|0)){H[d+g>>2]=i;break c}d=d+g|0;i=H[a+12>>2];if((i|0)>(h|0)){H[d>>2]=i;break c}H[d>>2]=h}d=H[a+8>>2];f=f+1|0;if((d|0)>(f|0)){continue}break}if((d|0)<=0){break b}f=0;while(1){h=f<<2;d=h+c|0;h=H[b+h>>2]+H[g+h>>2]|0;H[d>>2]=h;d:{if((h|0)>H[a+16>>2]){h=h-H[a+20>>2]|0}else{if((h|0)>=H[a+12>>2]){break d}h=h+H[a+20>>2]|0}H[d>>2]=h}d=H[a+8>>2];f=f+1|0;if((d|0)>(f|0)){continue}break}}f=H[a+56>>2];q=H[f>>2];f=H[f+4>>2]-q|0;if((f|0)>=5){o=f>>>2|0;t=o>>>0<=2?2:o;u=e&-2;w=e&1;h=1;while(1){e:{f:{if((h|0)!=(o|0)){r=N(e,h);f=H[(h<<2)+q>>2];if((f|0)==-1|H[H[n>>2]+(f>>>3&536870908)>>2]>>>f&1){break f}f=H[H[H[n+64>>2]+12>>2]+(f<<2)>>2];if((f|0)==-1){break f}i=H[s>>2];g=H[n+28>>2];k=H[i+(H[g+(f<<2)>>2]<<2)>>2];if((k|0)>=(h|0)){break f}j=f+1|0;j=H[i+(H[g+(((j>>>0)%3|0?j:f-2|0)<<2)>>2]<<2)>>2];if((j|0)>=(h|0)){break f}f=H[i+(H[g+(f+((f>>>0)%3|0?-1:2)<<2)>>2]<<2)>>2];if((f|0)>=(h|0)){break f}g:{if((e|0)<=0){break g}g=N(e,f);i=N(e,j);k=N(e,k);f=0;p=0;if((e|0)!=1){while(1){H[(f<<2)+l>>2]=(H[(f+g<<2)+c>>2]+H[(f+i<<2)+c>>2]|0)-H[(f+k<<2)+c>>2];j=f|1;H[(j<<2)+l>>2]=(H[(g+j<<2)+c>>2]+H[(i+j<<2)+c>>2]|0)-H[(k+j<<2)+c>>2];f=f+2|0;p=p+2|0;if((u|0)!=(p|0)){continue}break}}if(!w){break g}H[(f<<2)+l>>2]=(H[(f+g<<2)+c>>2]+H[(f+i<<2)+c>>2]|0)-H[(f+k<<2)+c>>2]}if((d|0)<=0){break e}i=H[m>>2];f=0;while(1){d=f<<2;g=H[d+l>>2];k=H[a+16>>2];h:{if((g|0)>(k|0)){H[d+i>>2]=k;break h}d=d+i|0;k=H[a+12>>2];if((k|0)>(g|0)){H[d>>2]=k;break h}H[d>>2]=g}d=H[a+8>>2];f=f+1|0;if((d|0)>(f|0)){continue}break}f=0;if((d|0)<=0){break e}d=r<<2;k=d+c|0;j=b+d|0;while(1){g=f<<2;d=g+k|0;g=H[g+j>>2]+H[g+i>>2]|0;H[d>>2]=g;i:{if((g|0)>H[a+16>>2]){g=g-H[a+20>>2]|0}else{if((g|0)>=H[a+12>>2]){break i}g=g+H[a+20>>2]|0}H[d>>2]=g}d=H[a+8>>2];f=f+1|0;if((d|0)>(f|0)){continue}break}break e}Ea();v()}if((d|0)<=0){break e}k=(N(h-1|0,e)<<2)+c|0;i=H[m>>2];f=0;while(1){d=f<<2;g=H[d+k>>2];j=H[a+16>>2];j:{if((g|0)>(j|0)){H[d+i>>2]=j;break j}d=d+i|0;j=H[a+12>>2];if((j|0)>(g|0)){H[d>>2]=j;break j}H[d>>2]=g}d=H[a+8>>2];f=f+1|0;if((d|0)>(f|0)){continue}break}f=0;if((d|0)<=0){break e}d=r<<2;k=d+c|0;j=b+d|0;while(1){g=f<<2;d=g+k|0;g=H[g+j>>2]+H[g+i>>2]|0;H[d>>2]=g;k:{if((g|0)>H[a+16>>2]){g=g-H[a+20>>2]|0}else{if((g|0)>=H[a+12>>2]){break k}g=g+H[a+20>>2]|0}H[d>>2]=g}d=H[a+8>>2];f=f+1|0;if((d|0)>(f|0)){continue}break}}h=h+1|0;if((t|0)!=(h|0)){continue}break}}ra(l);return 1}function Me(a,b,c,d){var e=0,f=0,g=0,h=0,i=0,j=0;f=fa-80|0;fa=f;e=H[c+36>>2];H[f+72>>2]=H[c+32>>2];H[f+76>>2]=e;g=H[c+28>>2];e=f- -64|0;H[e>>2]=H[c+24>>2];H[e+4>>2]=g;e=H[c+20>>2];H[f+56>>2]=H[c+16>>2];H[f+60>>2]=e;e=H[c+12>>2];H[f+48>>2]=H[c+8>>2];H[f+52>>2]=e;e=H[c+4>>2];H[f+40>>2]=H[c>>2];H[f+44>>2]=e;oc(a,f+40|0,f+24|0);a:{if(H[a>>2]){break a}if(F[a+15|0]<0){ra(H[a+4>>2])}if(I[f+31|0]!=1){b=sa(32);F[b+20|0]=0;c=I[1448]|I[1449]<<8|(I[1450]<<16|I[1451]<<24);F[b+16|0]=c;F[b+17|0]=c>>>8;F[b+18|0]=c>>>16;F[b+19|0]=c>>>24;c=I[1444]|I[1445]<<8|(I[1446]<<16|I[1447]<<24);d=I[1440]|I[1441]<<8|(I[1442]<<16|I[1443]<<24);F[b+8|0]=d;F[b+9|0]=d>>>8;F[b+10|0]=d>>>16;F[b+11|0]=d>>>24;F[b+12|0]=c;F[b+13|0]=c>>>8;F[b+14|0]=c>>>16;F[b+15|0]=c>>>24;c=I[1436]|I[1437]<<8|(I[1438]<<16|I[1439]<<24);d=I[1432]|I[1433]<<8|(I[1434]<<16|I[1435]<<24);F[b|0]=d;F[b+1|0]=d>>>8;F[b+2|0]=d>>>16;F[b+3|0]=d>>>24;F[b+4|0]=c;F[b+5|0]=c>>>8;F[b+6|0]=c>>>16;F[b+7|0]=c>>>24;H[a>>2]=-1;Ba(a+4|0,b,20);ra(b);break a}i=fa-16|0;fa=i;b:{c:{switch(I[f+32|0]){case 0:e=Ie(sa(48));H[e>>2]=13112;H[f+8>>2]=0;H[f+12>>2]=0;H[f>>2]=0;H[f+4>>2]=0;H[f+16>>2]=e;break b;case 1:e=Ie(sa(52));H[e+48>>2]=0;H[e>>2]=11276;H[f+8>>2]=0;H[f+12>>2]=0;H[f>>2]=0;H[f+4>>2]=0;H[f+16>>2]=e;break b;default:break c}}g=sa(32);F[g+28|0]=0;e=I[1550]|I[1551]<<8|(I[1552]<<16|I[1553]<<24);F[g+24|0]=e;F[g+25|0]=e>>>8;F[g+26|0]=e>>>16;F[g+27|0]=e>>>24;e=I[1546]|I[1547]<<8|(I[1548]<<16|I[1549]<<24);h=I[1542]|I[1543]<<8|(I[1544]<<16|I[1545]<<24);F[g+16|0]=h;F[g+17|0]=h>>>8;F[g+18|0]=h>>>16;F[g+19|0]=h>>>24;F[g+20|0]=e;F[g+21|0]=e>>>8;F[g+22|0]=e>>>16;F[g+23|0]=e>>>24;e=I[1538]|I[1539]<<8|(I[1540]<<16|I[1541]<<24);h=I[1534]|I[1535]<<8|(I[1536]<<16|I[1537]<<24);F[g+8|0]=h;F[g+9|0]=h>>>8;F[g+10|0]=h>>>16;F[g+11|0]=h>>>24;F[g+12|0]=e;F[g+13|0]=e>>>8;F[g+14|0]=e>>>16;F[g+15|0]=e>>>24;e=I[1530]|I[1531]<<8|(I[1532]<<16|I[1533]<<24);h=I[1526]|I[1527]<<8|(I[1528]<<16|I[1529]<<24);F[g|0]=h;F[g+1|0]=h>>>8;F[g+2|0]=h>>>16;F[g+3|0]=h>>>24;F[g+4|0]=e;F[g+5|0]=e>>>8;F[g+6|0]=e>>>16;F[g+7|0]=e>>>24;H[i>>2]=-1;e=i|4;Ba(e,g,28);j=F[i+15|0];H[f>>2]=H[i>>2];h=f+4|0;d:{if((j|0)>=0){j=H[e+4>>2];H[h>>2]=H[e>>2];H[h+4>>2]=j;H[h+8>>2]=H[e+8>>2];H[f+16>>2]=0;break d}Ba(h,H[i+4>>2],H[i+8>>2]);e=F[i+15|0];H[f+16>>2]=0;if((e|0)>=0){break d}ra(H[i+4>>2])}ra(g)}fa=i+16|0;e=H[f>>2];e:{if(e){H[a>>2]=e;a=a+4|0;if(F[f+15|0]>=0){b=f|4;c=H[b+4>>2];H[a>>2]=H[b>>2];H[a+4>>2]=c;H[a+8>>2]=H[b+8>>2];break e}Ba(a,H[f+4>>2],H[f+8>>2]);break e}e=H[f+16>>2];H[f+16>>2]=0;H[e+44>>2]=d;se(a,e,b,c,d);if(!H[a>>2]){if(F[a+15|0]<0){ra(H[a+4>>2])}H[a>>2]=0;H[a+4>>2]=0;H[a+8>>2]=0;H[a+12>>2]=0}ha[H[H[e>>2]+4>>2]](e)}a=H[f+16>>2];H[f+16>>2]=0;if(a){ha[H[H[a>>2]+4>>2]](a)}if(F[f+15|0]>=0){break a}ra(H[f+4>>2])}fa=f+80|0}function ue(a,b){var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0;if((b|0)==-1){return 1}c=(b>>>0)/3|0;if(!(H[H[a+24>>2]+(c>>>3&268435452)>>2]>>>c&1)){d=H[a+48>>2];H[a+52>>2]=d;a:{if((d|0)!=H[a+56>>2]){H[d>>2]=b;H[a+52>>2]=d+4;break a}e=sa(4);H[e>>2]=b;f=e+4|0;H[a+56>>2]=f;H[a+52>>2]=f;H[a+48>>2]=e;if(!d){break a}ra(d)}f=H[H[a+4>>2]+28>>2];d=b+1|0;e=(d>>>0)%3|0?d:b-2|0;d=H[f+(e<<2)>>2];if((d|0)==-1){return 0}g=(b-N(c,3)|0?-1:2)+b|0;c=H[f+(g<<2)>>2];if((c|0)==-1){return 0}b=H[a+36>>2];f=b+(d>>>3&536870908)|0;h=H[f>>2];i=1<>2]=h|i;Xa(a+8|0,d,e);b=H[a+36>>2]}b=(c>>>3&536870908)+b|0;d=H[b>>2];e=1<>2]=d|e;Xa(a+8|0,c,g)}c=H[a+52>>2];if((c|0)==H[a+48>>2]){return 1}k=a+8|0;while(1){b:{c:{c=c-4|0;b=H[c>>2];if((b|0)==-1){break c}d=(b>>>0)/3|0;e=H[a+24>>2]+(d>>>3&268435452)|0;f=H[e>>2];d=1<>2]=d|f;e=H[a+4>>2];d=H[H[e+28>>2]+(b<<2)>>2];if((d|0)==-1){return 0}while(1){c=b;d:{e:{f=H[a+36>>2]+(d>>>3&536870908)|0;g=H[f>>2];h=1<>2]+(d<<2)>>2];g:{if((b|0)==-1){break g}i=b+1|0;b=(i>>>0)%3|0?i:b-2|0;if((b|0)==-1|H[H[e>>2]+(b>>>3&536870908)>>2]>>>b&1){break g}b=H[H[H[e+64>>2]+12>>2]+(b<<2)>>2];if((b|0)!=-1){break f}}H[f>>2]=g|h;Xa(k,d,c);break e}H[f>>2]=g|h;Xa(k,d,c);d=b+1|0;if((((d>>>0)%3|0?d:b-2|0)|0)==-1){break e}b=-1;e=H[a+4>>2];h:{if((c|0)==-1){break h}d=c+1|0;d=(d>>>0)%3|0?d:c-2|0;if((d|0)==-1|H[H[e>>2]+(d>>>3&536870908)>>2]>>>d&1){break h}b=H[H[H[e+64>>2]+12>>2]+(d<<2)>>2]}d=(b>>>0)/3|0;h=1<>2];i=d>>>5|0;f=H[c+(i<<2)>>2];break d}i:{j:{if((c|0)==-1){break j}d=-1;b=c+1|0;b=(b>>>0)%3|0?b:c-2|0;e=H[a+4>>2];if(!((b|0)==-1|H[H[e>>2]+(b>>>3&536870908)>>2]>>>b&1)){d=H[H[H[e+64>>2]+12>>2]+(b<<2)>>2]}k:{l:{if((c>>>0)%3|0){c=c-1|0;break l}c=c+2|0;b=-1;if((c|0)==-1){break k}}b=-1;if(H[H[e>>2]+(c>>>3&536870908)>>2]>>>c&1){break k}b=H[H[H[e+64>>2]+12>>2]+(c<<2)>>2]}j=(b|0)==-1;g=j?-1:(b>>>0)/3|0;if((d|0)!=-1){c=H[a+24>>2];h=(d>>>0)/3|0;i=h>>>5|0;f=H[c+(i<<2)>>2];h=1<>2];i=g>>>5|0;f=H[c+(i<<2)>>2];if(!(h&f)){break d}}c=H[a+52>>2]-4|0;H[a+52>>2]=c;break b}if(j){b=d;break d}if(H[(g>>>3&536870908)+c>>2]>>>g&1){b=d;break d}c=H[a+52>>2];H[c-4>>2]=b;if((c|0)!=H[a+56>>2]){H[c>>2]=d;c=c+4|0;break c}m:{f=H[a+48>>2];e=c-f|0;c=e>>2;b=c+1|0;if(b>>>0<1073741824){g=e>>1;g=e>>>0>=2147483644?1073741823:b>>>0>>0?g:b;if(g){if(g>>>0>=1073741824){break m}b=sa(g<<2)}else{b=0}c=b+(c<<2)|0;H[c>>2]=d;c=c+4|0;if((e|0)>0){ta(b,f,e)}H[a+56>>2]=b+(g<<2);H[a+52>>2]=c;H[a+48>>2]=b;if(!f){break b}ra(f);c=H[a+52>>2];break b}va();v()}za();v()}H[(i<<2)+c>>2]=f|h;d=H[H[e+28>>2]+(b<<2)>>2];if((d|0)!=-1){continue}break}return 0}H[a+52>>2]=c}if(H[a+48>>2]!=(c|0)){continue}break}}return 1}function ya(a){var b=0,c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0;f=fa-32|0;fa=f;a:{b:{c:{d:{b=H[a+16>>2];if(b>>>0>=341){H[a+16>>2]=b-341;b=H[a+4>>2];k=H[b>>2];c=b+4|0;H[a+4>>2]=c;b=H[a+8>>2];e:{if((b|0)!=H[a+12>>2]){d=b;break e}h=H[a>>2];if(h>>>0>>0){g=b-c|0;e=((c-h>>2)+1|0)/-2<<2;d=e+c|0;if((b|0)!=(c|0)){Sa(d,c,g);c=H[a+4>>2]}d=d+g|0;H[a+8>>2]=d;H[a+4>>2]=c+e;break e}d=(b|0)==(h|0)?1:b-h>>1;if(d>>>0>=1073741824){break d}e=d<<2;i=sa(e);l=e+i|0;e=i+(d&-4)|0;d=e;f:{if((b|0)==(c|0)){break f}b=b-c|0;m=b&-4;j=b-4|0;g=(j>>>2|0)+1&7;g:{if(!g){b=e;break g}d=0;b=e;while(1){H[b>>2]=H[c>>2];c=c+4|0;b=b+4|0;d=d+1|0;if((g|0)!=(d|0)){continue}break}}d=e+m|0;if(j>>>0<28){break f}while(1){H[b>>2]=H[c>>2];H[b+4>>2]=H[c+4>>2];H[b+8>>2]=H[c+8>>2];H[b+12>>2]=H[c+12>>2];H[b+16>>2]=H[c+16>>2];H[b+20>>2]=H[c+20>>2];H[b+24>>2]=H[c+24>>2];H[b+28>>2]=H[c+28>>2];c=c+32|0;b=b+32|0;if((d|0)!=(b|0)){continue}break}}H[a+12>>2]=l;H[a+8>>2]=d;H[a+4>>2]=e;H[a>>2]=i;if(!h){break e}ra(h);d=H[a+8>>2]}H[d>>2]=k;H[a+8>>2]=H[a+8>>2]+4;break a}b=H[a+8>>2];d=b-H[a+4>>2]>>2;g=H[a+12>>2];c=H[a>>2];e=g-c|0;if(d>>>0>2>>>0){if((b|0)!=(g|0)){n=f,o=sa(4092),H[n+8>>2]=o;pd(a,f+8|0);break a}n=f,o=sa(4092),H[n+8>>2]=o;od(a,f+8|0);b=H[a+4>>2];k=H[b>>2];c=b+4|0;H[a+4>>2]=c;b=H[a+8>>2];h:{if((b|0)!=H[a+12>>2]){d=b;break h}h=H[a>>2];if(h>>>0>>0){g=b-c|0;e=((c-h>>2)+1|0)/-2<<2;d=e+c|0;if((b|0)!=(c|0)){Sa(d,c,g);c=H[a+4>>2]}d=d+g|0;H[a+8>>2]=d;H[a+4>>2]=c+e;break h}d=(b|0)==(h|0)?1:b-h>>1;if(d>>>0>=1073741824){break d}e=d<<2;i=sa(e);l=e+i|0;e=i+(d&-4)|0;d=e;i:{if((b|0)==(c|0)){break i}b=b-c|0;m=b&-4;j=b-4|0;g=(j>>>2|0)+1&7;j:{if(!g){b=e;break j}d=0;b=e;while(1){H[b>>2]=H[c>>2];c=c+4|0;b=b+4|0;d=d+1|0;if((g|0)!=(d|0)){continue}break}}d=e+m|0;if(j>>>0<28){break i}while(1){H[b>>2]=H[c>>2];H[b+4>>2]=H[c+4>>2];H[b+8>>2]=H[c+8>>2];H[b+12>>2]=H[c+12>>2];H[b+16>>2]=H[c+16>>2];H[b+20>>2]=H[c+20>>2];H[b+24>>2]=H[c+24>>2];H[b+28>>2]=H[c+28>>2];c=c+32|0;b=b+32|0;if((d|0)!=(b|0)){continue}break}}H[a+12>>2]=l;H[a+8>>2]=d;H[a+4>>2]=e;H[a>>2]=i;if(!h){break h}ra(h);d=H[a+8>>2]}H[d>>2]=k;H[a+8>>2]=H[a+8>>2]+4;break a}H[f+24>>2]=a+12;b=(c|0)==(g|0)?1:e>>1;if(b>>>0>=1073741824){break d}e=b<<2;c=sa(e);H[f+8>>2]=c;b=c+(d<<2)|0;H[f+16>>2]=b;H[f+20>>2]=c+e;H[f+12>>2]=b;n=f,o=sa(4092),H[n+4>>2]=o;pd(f+8|0,f+4|0);c=H[a+8>>2];if((c|0)==H[a+4>>2]){b=c;break b}while(1){c=c-4|0;od(f+8|0,c);if(H[a+4>>2]!=(c|0)){continue}break}break c}za();v()}b=H[a+8>>2]}d=H[a>>2];H[a>>2]=H[f+8>>2];H[f+8>>2]=d;H[a+4>>2]=H[f+12>>2];H[f+12>>2]=c;H[a+8>>2]=H[f+16>>2];H[f+16>>2]=b;e=H[a+12>>2];H[a+12>>2]=H[f+20>>2];H[f+20>>2]=e;if((b|0)!=(c|0)){H[f+16>>2]=b+((c-b|0)+3&-4)}if(!d){break a}ra(d)}fa=f+32|0}function Dj(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0;i=fa-32|0;fa=i;a:{if(J[b+38>>1]<=513){c=H[b+20>>2];h=H[b+12>>2];d=H[b+16>>2];if((c|0)>=(h|0)&d>>>0>=K[b+8>>2]|(c|0)>(h|0)){break a}h=I[d+H[b>>2]|0];d=d+1|0;c=d?c:c+1|0;H[b+16>>2]=d;H[b+20>>2]=c;if(h){break a}}b:{if(!ab(1,i+28|0,b)){break b}d=H[i+28>>2];c=H[H[a+48>>2]+64>>2];if(d>>>0>H[c+4>>2]-H[c>>2]>>2>>>0){break b}c:{if(d){$a(a+60|0,d);c=i+8|0;H[c>>2]=0;H[c+4>>2]=0;F[c+5|0]=0;F[c+6|0]=0;F[c+7|0]=0;F[c+8|0]=0;F[c+9|0]=0;F[c+10|0]=0;F[c+11|0]=0;F[c+12|0]=0;if(!wa(c,b)){break c}while(1){h=1<>2]+(e>>>3&536870908)|0;if(f){f=h|H[g>>2]}else{f=H[g>>2]&(h^-1)}H[g>>2]=f;e=e+1|0;if((d|0)!=(e|0)){continue}break}}if(!ab(1,i+28|0,b)){break b}d=H[i+28>>2];c=H[H[a+48>>2]+64>>2];if(d>>>0>H[c+4>>2]-H[c>>2]>>2>>>0){break b}if(d){e=0;$a(a+72|0,d);c=i+8|0;H[c>>2]=0;H[c+4>>2]=0;F[c+5|0]=0;F[c+6|0]=0;F[c+7|0]=0;F[c+8|0]=0;F[c+9|0]=0;F[c+10|0]=0;F[c+11|0]=0;F[c+12|0]=0;if(!wa(c,b)){break c}while(1){h=1<>2]+(e>>>3&536870908)|0;if(f){f=h|H[g>>2]}else{f=H[g>>2]&(h^-1)}H[g>>2]=f;e=e+1|0;if((d|0)!=(e|0)){continue}break}}if(!ab(1,i+28|0,b)){break b}d=H[i+28>>2];c=H[H[a+48>>2]+64>>2];if(d>>>0>H[c+4>>2]-H[c>>2]>>2>>>0){break b}if(d){e=0;$a(a+84|0,d);c=i+8|0;H[c>>2]=0;H[c+4>>2]=0;F[c+5|0]=0;F[c+6|0]=0;F[c+7|0]=0;F[c+8|0]=0;F[c+9|0]=0;F[c+10|0]=0;F[c+11|0]=0;F[c+12|0]=0;if(!wa(c,b)){break c}while(1){h=1<>2]+(e>>>3&536870908)|0;if(f){f=h|H[g>>2]}else{f=H[g>>2]&(h^-1)}H[g>>2]=f;e=e+1|0;if((d|0)!=(e|0)){continue}break}}if(!ab(1,i+28|0,b)){break b}d=H[i+28>>2];c=H[H[a+48>>2]+64>>2];if(d>>>0>H[c+4>>2]-H[c>>2]>>2>>>0){break b}if(d){e=0;$a(a+96|0,d);c=i+8|0;H[c>>2]=0;H[c+4>>2]=0;F[c+5|0]=0;F[c+6|0]=0;F[c+7|0]=0;F[c+8|0]=0;F[c+9|0]=0;F[c+10|0]=0;F[c+11|0]=0;F[c+12|0]=0;if(!wa(c,b)){break c}while(1){h=1<>2]+(e>>>3&536870908)|0;if(f){f=h|H[g>>2]}else{f=H[g>>2]&(h^-1)}H[g>>2]=f;e=e+1|0;if((d|0)!=(e|0)){continue}break}}e=0;d=H[b+12>>2];h=d;c=H[b+20>>2];g=c;f=H[b+16>>2];j=f+4|0;c=j>>>0<4?c+1|0:c;k=H[b+8>>2];if(k>>>0>>0&(c|0)>=(d|0)|(c|0)>(d|0)){break a}l=H[b>>2];d=l+f|0;d=I[d|0]|I[d+1|0]<<8|(I[d+2|0]<<16|I[d+3|0]<<24);H[b+16>>2]=j;H[b+20>>2]=c;c=g;g=f+8|0;c=g>>>0<8?c+1|0:c;f=g;g=c;if(f>>>0>k>>>0&(c|0)>=(h|0)|(c|0)>(h|0)){break a}c=j+l|0;c=I[c|0]|I[c+1|0]<<8|(I[c+2|0]<<16|I[c+3|0]<<24);H[b+16>>2]=f;H[b+20>>2]=g;if((c|0)<(d|0)){break a}H[a+16>>2]=c;H[a+12>>2]=d;b=(c>>31)-((d>>31)+(c>>>0>>0)|0)|0;c=c-d|0;if(!b&c>>>0>2147483646|b){break a}e=1;b=c+1|0;H[a+20>>2]=b;c=b>>>1|0;H[a+24>>2]=c;H[a+28>>2]=0-c;if(b&1){break a}H[a+24>>2]=c-1;break a}}e=0}fa=i+32|0;return e|0}function nj(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0;i=fa-32|0;fa=i;a:{if(J[b+38>>1]<=513){c=H[b+20>>2];h=H[b+12>>2];d=H[b+16>>2];if((c|0)>=(h|0)&d>>>0>=K[b+8>>2]|(c|0)>(h|0)){break a}h=I[d+H[b>>2]|0];d=d+1|0;c=d?c:c+1|0;H[b+16>>2]=d;H[b+20>>2]=c;if(h){break a}}b:{if(!ab(1,i+28|0,b)){break b}d=H[i+28>>2];c=H[a+48>>2];if(d>>>0>H[c+4>>2]-H[c>>2]>>2>>>0){break b}c:{if(d){$a(a+60|0,d);c=i+8|0;H[c>>2]=0;H[c+4>>2]=0;F[c+5|0]=0;F[c+6|0]=0;F[c+7|0]=0;F[c+8|0]=0;F[c+9|0]=0;F[c+10|0]=0;F[c+11|0]=0;F[c+12|0]=0;if(!wa(c,b)){break c}while(1){h=1<>2]+(e>>>3&536870908)|0;if(f){f=h|H[g>>2]}else{f=H[g>>2]&(h^-1)}H[g>>2]=f;e=e+1|0;if((d|0)!=(e|0)){continue}break}}if(!ab(1,i+28|0,b)){break b}d=H[i+28>>2];c=H[a+48>>2];if(d>>>0>H[c+4>>2]-H[c>>2]>>2>>>0){break b}if(d){e=0;$a(a+72|0,d);c=i+8|0;H[c>>2]=0;H[c+4>>2]=0;F[c+5|0]=0;F[c+6|0]=0;F[c+7|0]=0;F[c+8|0]=0;F[c+9|0]=0;F[c+10|0]=0;F[c+11|0]=0;F[c+12|0]=0;if(!wa(c,b)){break c}while(1){h=1<>2]+(e>>>3&536870908)|0;if(f){f=h|H[g>>2]}else{f=H[g>>2]&(h^-1)}H[g>>2]=f;e=e+1|0;if((d|0)!=(e|0)){continue}break}}if(!ab(1,i+28|0,b)){break b}d=H[i+28>>2];c=H[a+48>>2];if(d>>>0>H[c+4>>2]-H[c>>2]>>2>>>0){break b}if(d){e=0;$a(a+84|0,d);c=i+8|0;H[c>>2]=0;H[c+4>>2]=0;F[c+5|0]=0;F[c+6|0]=0;F[c+7|0]=0;F[c+8|0]=0;F[c+9|0]=0;F[c+10|0]=0;F[c+11|0]=0;F[c+12|0]=0;if(!wa(c,b)){break c}while(1){h=1<>2]+(e>>>3&536870908)|0;if(f){f=h|H[g>>2]}else{f=H[g>>2]&(h^-1)}H[g>>2]=f;e=e+1|0;if((d|0)!=(e|0)){continue}break}}if(!ab(1,i+28|0,b)){break b}d=H[i+28>>2];c=H[a+48>>2];if(d>>>0>H[c+4>>2]-H[c>>2]>>2>>>0){break b}if(d){e=0;$a(a+96|0,d);c=i+8|0;H[c>>2]=0;H[c+4>>2]=0;F[c+5|0]=0;F[c+6|0]=0;F[c+7|0]=0;F[c+8|0]=0;F[c+9|0]=0;F[c+10|0]=0;F[c+11|0]=0;F[c+12|0]=0;if(!wa(c,b)){break c}while(1){h=1<>2]+(e>>>3&536870908)|0;if(f){f=h|H[g>>2]}else{f=H[g>>2]&(h^-1)}H[g>>2]=f;e=e+1|0;if((d|0)!=(e|0)){continue}break}}e=0;d=H[b+12>>2];h=d;c=H[b+20>>2];g=c;f=H[b+16>>2];j=f+4|0;c=j>>>0<4?c+1|0:c;k=H[b+8>>2];if(k>>>0>>0&(c|0)>=(d|0)|(c|0)>(d|0)){break a}l=H[b>>2];d=l+f|0;d=I[d|0]|I[d+1|0]<<8|(I[d+2|0]<<16|I[d+3|0]<<24);H[b+16>>2]=j;H[b+20>>2]=c;c=g;g=f+8|0;c=g>>>0<8?c+1|0:c;f=g;g=c;if(f>>>0>k>>>0&(c|0)>=(h|0)|(c|0)>(h|0)){break a}c=j+l|0;c=I[c|0]|I[c+1|0]<<8|(I[c+2|0]<<16|I[c+3|0]<<24);H[b+16>>2]=f;H[b+20>>2]=g;if((c|0)<(d|0)){break a}H[a+16>>2]=c;H[a+12>>2]=d;b=(c>>31)-((d>>31)+(c>>>0>>0)|0)|0;c=c-d|0;if(!b&c>>>0>2147483646|b){break a}e=1;b=c+1|0;H[a+20>>2]=b;c=b>>>1|0;H[a+24>>2]=c;H[a+28>>2]=0-c;if(b&1){break a}H[a+24>>2]=c-1;break a}}e=0}fa=i+32|0;return e|0}function Fc(a,b,c){var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0;i=N(b,12)+a|0;H[i+12>>2]=H[i+8>>2];j=(c|0)==-1?-1:(c>>>0)/3|0;l=1;k=c;a:{b:{c:{while(1){d:{n=e&1;if(n){if((k|0)==-1){break d}if((ce(a,((k>>>0)%3|0?-1:2)+k|0)|0)==-1){break a}c=k+1|0;c=(c>>>0)%3|0?c:k-2|0;if((c|0)==-1){break a}e=c+1|0;c=(e>>>0)%3|0?e:c-2|0;if((c|0)==-1){break a}c=H[H[H[a+4>>2]+12>>2]+(c<<2)>>2];if((c|0)==-1){break a}e=c+1|0;c=(e>>>0)%3|0?e:c-2|0;if((c|0)==-1){break a}j=(c>>>0)/3|0}d=H[a+56>>2]+(j>>>3&536870908)|0;g=H[d>>2];f=1<>2]=g|f;d=H[i+12>>2];f:{if((d|0)!=H[i+16>>2]){H[d>>2]=j;H[i+12>>2]=d+4;break f}g=H[i+8>>2];h=d-g|0;m=h>>2;d=m+1|0;if(d>>>0>=1073741824){break c}f=h>>1;f=h>>>0>=2147483644?1073741823:d>>>0>>0?f:d;if(f){if(f>>>0>=1073741824){break b}d=sa(f<<2)}else{d=0}m=d+(m<<2)|0;H[m>>2]=j;if((h|0)>0){ta(d,g,h)}H[i+8>>2]=d;H[i+12>>2]=m+4;H[i+16>>2]=d+(f<<2);if(!g){break f}ra(g)}h=e+1|0;g:{h:{i:{if(!e){break i}if(h&1){if((c|0)==-1){c=-1;break g}e=c+1|0;c=(e>>>0)%3|0?e:c-2|0;break i}k=n?c:k;if((c|0)==-1){c=-1;break g}if((c>>>0)%3|0){e=c-1|0;break h}c=c+2|0}d=c;c=-1;e=d;if((d|0)==-1){break g}}c=H[H[H[a+4>>2]+12>>2]+(e<<2)>>2];d=-1;g=-1;f=e+1|0;f=(f>>>0)%3|0?f:e-2|0;if((f|0)>=0){g=(f>>>0)/3|0;g=H[(H[H[a>>2]+96>>2]+N(g,12)|0)+(f-N(g,3)<<2)>>2]}j:{if((c|0)==-1){break j}f=((c>>>0)%3|0?-1:2)+c|0;if((f|0)<0){break j}d=(f>>>0)/3|0;d=H[(H[H[a>>2]+96>>2]+N(d,12)|0)+(f-N(d,3)<<2)>>2]}if((d|0)!=(g|0)){c=-1;break g}k:{l:{e=((e>>>0)%3|0?-1:2)+e|0;if((e|0)>=0){d=(e>>>0)/3|0;if((c|0)!=-1){break l}c=-1;break g}e=-1;if((c|0)!=-1){break k}c=-1;break g}e=H[(H[H[a>>2]+96>>2]+N(d,12)|0)+(e-N(d,3)<<2)>>2]}d=c+1|0;d=(d>>>0)%3|0?d:c-2|0;if((d|0)>=0){g=(d>>>0)/3|0;d=H[(H[H[a>>2]+96>>2]+N(g,12)|0)+(d-N(g,3)<<2)>>2]}else{d=-1}if((d|0)!=(e|0)){c=-1;break g}e=h;j=(c>>>0)/3|0;d=H[a+56>>2]+(j>>>3&268435452)|0;g=H[d>>2];f=1<>2]-4|0;d=H[e>>2];h=H[a+56>>2]+(d>>>3&536870908)|0;g=H[h>>2];o=h,p=Rj(d)&g,H[o>>2]=p;H[i+12>>2]=e}e=1;d=l;l=0;if(d){continue}break a}break}k=-1;ce(a,-1);break a}va();v()}za();v()}H[((b<<2)+a|0)+44>>2]=k;c=H[i+12>>2];b=H[i+8>>2];m:{if((c|0)==(b|0)){break m}e=c-b|0;c=e>>2;d=c>>>0<=1?1:c;k=d&1;a=H[a+56>>2];c=0;if(e>>>0>=8){e=d&-2;j=0;while(1){d=c<<2;h=H[d+b>>2];l=a+(h>>>3&536870908)|0;i=H[l>>2];o=l,p=Rj(h)&i,H[o>>2]=p;d=H[b+(d|4)>>2];h=a+(d>>>3&536870908)|0;l=H[h>>2];o=h,p=Rj(d)&l,H[o>>2]=p;c=c+2|0;j=j+2|0;if((e|0)!=(j|0)){continue}break}}if(!k){break m}b=H[b+(c<<2)>>2];a=a+(b>>>3&536870908)|0;c=H[a>>2];o=a,p=Rj(b)&c,H[o>>2]=p}}function ve(a,b){var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0;if((b|0)==-1){return 1}d=(b>>>0)/3|0;if(!(H[H[a+24>>2]+(d>>>3&268435452)>>2]>>>d&1)){c=H[a+48>>2];H[a+52>>2]=c;a:{if((c|0)!=H[a+56>>2]){H[c>>2]=b;H[a+52>>2]=c+4;break a}e=sa(4);H[e>>2]=b;f=e+4|0;H[a+56>>2]=f;H[a+52>>2]=f;H[a+48>>2]=e;if(!c){break a}ra(c)}e=-1;f=H[a+4>>2];c=b+1|0;g=(c>>>0)%3|0?c:b-2|0;if((g|0)!=-1){e=H[H[f>>2]+(g<<2)>>2]}b:{h=b-N(d,3)|0;if(h){c=b-1|0;break b}c=b+2|0;if((c|0)!=-1){break b}return 0}if((e|0)==-1){return 0}d=H[H[f>>2]+(c<<2)>>2];if((d|0)==-1){return 0}c=H[a+36>>2];f=c+(e>>>3&536870908)|0;i=H[f>>2];j=1<>2]=i|j;Xa(a+8|0,e,g);c=H[a+36>>2]}c=(d>>>3&536870908)+c|0;e=H[c>>2];f=1<>2]=e|f;Xa(a+8|0,d,(h?-1:2)+b|0)}c=H[a+52>>2];if((c|0)==H[a+48>>2]){return 1}j=a+8|0;while(1){c:{d:{c=c-4|0;b=H[c>>2];if((b|0)==-1){break d}d=(b>>>0)/3|0;e=H[a+24>>2]+(d>>>3&268435452)|0;f=H[e>>2];d=1<>2]=d|f;while(1){d=H[a+4>>2];c=H[H[d>>2]+(b<<2)>>2];if((c|0)==-1){return 0}e:{f:{e=H[a+36>>2]+(c>>>3&536870908)|0;f=H[e>>2];g=1<>2]+(c<<2)>>2];h:{if((h|0)==-1){break h}i=h+1|0;h=(i>>>0)%3|0?i:h-2|0;if((h|0)==-1){break h}d=H[H[d+12>>2]+(h<<2)>>2];if((d|0)!=-1){break g}}H[e>>2]=f|g;Xa(j,c,b);break f}H[e>>2]=f|g;Xa(j,c,b);c=d+1|0;if((((c>>>0)%3|0?c:d-2|0)|0)==-1){break f}d=b-2|0;c=b+1|0;b=-1;c=(c>>>0)%3|0?c:d;if((c|0)!=-1){b=H[H[H[a+4>>2]+12>>2]+(c<<2)>>2]}c=(b>>>0)/3|0;g=1<>2];h=c>>>5|0;d=H[e+(h<<2)>>2];break e}c=-1;f=H[a+4>>2];d=b+1|0;d=(d>>>0)%3|0?d:b-2|0;if((d|0)!=-1){c=H[H[f+12>>2]+(d<<2)>>2]}i:{j:{if((b>>>0)%3|0){e=b-1|0;break j}e=b+2|0;b=-1;if((e|0)==-1){break i}}b=H[H[f+12>>2]+(e<<2)>>2]}i=(b|0)==-1;f=i?-1:(b>>>0)/3|0;k:{if((c|0)!=-1){e=H[a+24>>2];g=(c>>>0)/3|0;h=g>>>5|0;d=H[e+(h<<2)>>2];g=1<>2];h=f>>>5|0;d=H[e+(h<<2)>>2];if(!(g&d)){break e}}c=H[a+52>>2]-4|0;H[a+52>>2]=c;break c}if(i){b=c;break e}if(H[(f>>>3&536870908)+e>>2]>>>f&1){b=c;break e}d=H[a+52>>2];H[d-4>>2]=b;if((d|0)!=H[a+56>>2]){H[d>>2]=c;c=d+4|0;break d}l:{e=H[a+48>>2];d=d-e|0;g=d>>2;b=g+1|0;if(b>>>0<1073741824){f=d>>1;f=d>>>0>=2147483644?1073741823:b>>>0>>0?f:b;if(f){if(f>>>0>=1073741824){break l}b=sa(f<<2)}else{b=0}g=b+(g<<2)|0;H[g>>2]=c;c=g+4|0;if((d|0)>0){ta(b,e,d)}H[a+56>>2]=b+(f<<2);H[a+52>>2]=c;H[a+48>>2]=b;if(!e){break c}ra(e);c=H[a+52>>2];break c}va();v()}za();v()}H[(h<<2)+e>>2]=d|g;if((b|0)!=-1){continue}break}return 0}H[a+52>>2]=c}if(H[a+48>>2]!=(c|0)){continue}break}}return 1}function sj(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0;g=fa-32|0;fa=g;H[a+68>>2]=f;d=H[a+56>>2];e=H[d>>2];d=H[d+4>>2];H[g+24>>2]=0;H[g+16>>2]=0;H[g+20>>2]=0;a:{d=d-e|0;if((d|0)>0){m=a+60|0;d=d>>>2|0;n=d>>>0<=1?1:d;o=a+112|0;while(1){e=H[a+56>>2];d=H[e>>2];if(H[e+4>>2]-d>>2>>>0<=k>>>0){break a}Pb(m,H[d+(k<<2)>>2],g+16|0);e=H[g+20>>2];d=e>>31;f=H[g+16>>2];h=f>>31;j=H[g+24>>2];i=j>>31;i=(i^j)-i|0;h=i+((d^e)-d+((f^h)-h)|0)|0;d=0;d=h>>>0>>0?1:d;b:{if(!(d|h)){H[g+16>>2]=H[a+108>>2];break b}i=H[a+108>>2];l=i>>31;f=Oj(Nj(i,l,f,f>>31),ga,h,d);H[g+16>>2]=f;d=Oj(Nj(i,l,e,e>>31),ga,h,d);H[g+20>>2]=d;e=d;d=d>>31;e=(e^d)-d|0;d=f>>31;d=e+((d^f)-d|0)|0;if((j|0)>=0){H[g+24>>2]=i-d;break b}H[g+24>>2]=d-i}d=Da(o);f=H[g+16>>2];c:{if(d){H[g+24>>2]=0-H[g+24>>2];e=0-H[g+20>>2]|0;H[g+20>>2]=e;f=0-f|0;H[g+16>>2]=f;break c}e=H[g+20>>2]}d:{if((f|0)>=0){f=H[a+108>>2];d=f+H[g+24>>2]|0;f=e+f|0;break d}e:{if((e|0)<0){d=H[g+24>>2];f=d>>31;f=(d^f)-f|0;break e}d=H[g+24>>2];f=d>>31;f=H[a+100>>2]+(f-(d^f)|0)|0}if((d|0)<0){d=e>>31;d=(d^e)-d|0;break d}d=e>>31;d=H[a+100>>2]+(d-(d^e)|0)|0}e=H[a+100>>2];f:{if(!(d|f)){d=e;f=d;break f}if(!((d|0)!=(e|0)|f)){f=d;break f}if(!((e|0)!=(f|0)|d)){d=f;break f}g:{if(f){break g}h=H[a+108>>2];if((h|0)>=(d|0)){break g}d=(h<<1)-d|0;f=0;break f}h:{if((e|0)!=(f|0)){break h}h=H[a+108>>2];if((h|0)<=(d|0)){break h}d=(h<<1)-d|0;break f}i:{if((d|0)!=(e|0)){break i}e=H[a+108>>2];if((e|0)<=(f|0)){break i}f=(e<<1)-f|0;break f}if(d){break f}d=0;e=H[a+108>>2];if((e|0)>=(f|0)){break f}f=(e<<1)-f|0}H[g+12>>2]=d;H[g+8>>2]=f;j:{if(H[a+8>>2]<=0){break j}h=H[a+32>>2];f=0;while(1){d=f<<2;e=H[d+(g+8|0)>>2];j=H[a+16>>2];k:{if((e|0)>(j|0)){H[d+h>>2]=j;break k}d=d+h|0;j=H[a+12>>2];if((j|0)>(e|0)){H[d>>2]=j;break k}H[d>>2]=e}f=f+1|0;e=H[a+8>>2];if((f|0)<(e|0)){continue}break}d=0;if((e|0)<=0){break j}e=k<<3;j=e+c|0;i=b+e|0;while(1){f=d<<2;e=f+j|0;f=H[f+i>>2]+H[f+h>>2]|0;H[e>>2]=f;l:{if((f|0)>H[a+16>>2]){f=f-H[a+20>>2]|0}else{if((f|0)>=H[a+12>>2]){break l}f=f+H[a+20>>2]|0}H[e>>2]=f}d=d+1|0;if((d|0)>2]){continue}break}}k=k+1|0;if((n|0)!=(k|0)){continue}break}}fa=g+32|0;return 1}Ea();v()}function cj(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0;g=fa-32|0;fa=g;H[a+68>>2]=f;d=H[a+56>>2];e=H[d>>2];d=H[d+4>>2];H[g+24>>2]=0;H[g+16>>2]=0;H[g+20>>2]=0;a:{d=d-e|0;if((d|0)>0){m=a+60|0;d=d>>>2|0;n=d>>>0<=1?1:d;o=a+112|0;while(1){e=H[a+56>>2];d=H[e>>2];if(H[e+4>>2]-d>>2>>>0<=k>>>0){break a}Nb(m,H[d+(k<<2)>>2],g+16|0);e=H[g+20>>2];d=e>>31;f=H[g+16>>2];h=f>>31;j=H[g+24>>2];i=j>>31;i=(i^j)-i|0;h=i+((d^e)-d+((f^h)-h)|0)|0;d=0;d=h>>>0>>0?1:d;b:{if(!(d|h)){H[g+16>>2]=H[a+108>>2];break b}i=H[a+108>>2];l=i>>31;f=Oj(Nj(i,l,f,f>>31),ga,h,d);H[g+16>>2]=f;d=Oj(Nj(i,l,e,e>>31),ga,h,d);H[g+20>>2]=d;e=d;d=d>>31;e=(e^d)-d|0;d=f>>31;d=e+((d^f)-d|0)|0;if((j|0)>=0){H[g+24>>2]=i-d;break b}H[g+24>>2]=d-i}d=Da(o);f=H[g+16>>2];c:{if(d){H[g+24>>2]=0-H[g+24>>2];e=0-H[g+20>>2]|0;H[g+20>>2]=e;f=0-f|0;H[g+16>>2]=f;break c}e=H[g+20>>2]}d:{if((f|0)>=0){f=H[a+108>>2];d=f+H[g+24>>2]|0;f=e+f|0;break d}e:{if((e|0)<0){d=H[g+24>>2];f=d>>31;f=(d^f)-f|0;break e}d=H[g+24>>2];f=d>>31;f=H[a+100>>2]+(f-(d^f)|0)|0}if((d|0)<0){d=e>>31;d=(d^e)-d|0;break d}d=e>>31;d=H[a+100>>2]+(d-(d^e)|0)|0}e=H[a+100>>2];f:{if(!(d|f)){d=e;f=d;break f}if(!((d|0)!=(e|0)|f)){f=d;break f}if(!((e|0)!=(f|0)|d)){d=f;break f}g:{if(f){break g}h=H[a+108>>2];if((h|0)>=(d|0)){break g}d=(h<<1)-d|0;f=0;break f}h:{if((e|0)!=(f|0)){break h}h=H[a+108>>2];if((h|0)<=(d|0)){break h}d=(h<<1)-d|0;break f}i:{if((d|0)!=(e|0)){break i}e=H[a+108>>2];if((e|0)<=(f|0)){break i}f=(e<<1)-f|0;break f}if(d){break f}d=0;e=H[a+108>>2];if((e|0)>=(f|0)){break f}f=(e<<1)-f|0}H[g+12>>2]=d;H[g+8>>2]=f;j:{if(H[a+8>>2]<=0){break j}h=H[a+32>>2];f=0;while(1){d=f<<2;e=H[d+(g+8|0)>>2];j=H[a+16>>2];k:{if((e|0)>(j|0)){H[d+h>>2]=j;break k}d=d+h|0;j=H[a+12>>2];if((j|0)>(e|0)){H[d>>2]=j;break k}H[d>>2]=e}f=f+1|0;e=H[a+8>>2];if((f|0)<(e|0)){continue}break}d=0;if((e|0)<=0){break j}e=k<<3;j=e+c|0;i=b+e|0;while(1){f=d<<2;e=f+j|0;f=H[f+i>>2]+H[f+h>>2]|0;H[e>>2]=f;l:{if((f|0)>H[a+16>>2]){f=f-H[a+20>>2]|0}else{if((f|0)>=H[a+12>>2]){break l}f=f+H[a+20>>2]|0}H[e>>2]=f}d=d+1|0;if((d|0)>2]){continue}break}}k=k+1|0;if((n|0)!=(k|0)){continue}break}}fa=g+32|0;return 1}Ea();v()}function ld(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0;l=ha[H[H[a>>2]+44>>2]](a)|0;a:{if((l|0)<=0){break a}h=H[b+4>>2]-H[b>>2]>>2;e=fa+-64|0;fa=e;d=Gb(e);f=N(H[3400],l);lc(d,H[H[a+8>>2]+56>>2],l&255,5,0,f,f>>31);d=fc(sa(96),d);F[d+84|0]=1;H[d+72>>2]=H[d+68>>2];qb(d,h);H[d+60>>2]=H[H[a+8>>2]+60>>2];f=H[a+16>>2];H[a+16>>2]=d;if(f){Ja(f)}fa=e- -64|0;d=H[a+16>>2];if(!H[d+80>>2]){break a}j=H[H[d>>2]>>2];if(!j){break a}i=H[c+12>>2];g=i;e=H[c+20>>2];k=H[c+8>>2];f=H[c+16>>2];if((g|0)<=(e|0)&k>>>0<=f>>>0|(e|0)>(g|0)){break a}h=N(h,l);j=j+H[d+48>>2]|0;m=H[c>>2];n=I[m+f|0];d=e;g=f+1|0;d=g?d:d+1|0;H[c+16>>2]=g;H[c+20>>2]=d;b:{c:{if(n){if(id(h,l,c,j)){break c}break a}if((d|0)>=(i|0)&g>>>0>=k>>>0|(d|0)>(i|0)){break a}d=I[g+m|0];f=f+2|0;e=f>>>0<2?e+1|0:e;H[c+16>>2]=f;H[c+20>>2]=e;e=H[H[a+16>>2]+64>>2];e=H[e+4>>2]-H[e>>2]|0;if((d|0)==H[3400]){d=h<<2;if(d>>>0>e>>>0){break a}f=H[c+12>>2];e=H[c+20>>2];i=H[c+16>>2];g=d+i|0;e=g>>>0>>0?e+1|0:e;if(g>>>0>K[c+8>>2]&(e|0)>=(f|0)|(e|0)>(f|0)){break a}ta(j,i+H[c>>2]|0,d);e=d;f=d+H[c+16>>2]|0;d=H[c+20>>2];H[c+16>>2]=f;H[c+20>>2]=e>>>0>f>>>0?d+1|0:d;break c}if(e>>>0>>0){break a}e=H[c+8>>2];i=H[c+16>>2];f=i;g=e-f|0;f=e>>>0>>0;e=H[c+20>>2];f=H[c+12>>2]-(f+e|0)|0;k=Nj(d,0,h,0)>>>0>g>>>0;g=ga;if(k&(g|0)>=(f|0)|(f|0)<(g|0)){break a}f=1;if(!h){break b}g=0;while(1){m=d+i|0;k=H[c+12>>2];e=d>>>0>m>>>0?e+1|0:e;if(m>>>0>K[c+8>>2]&(k|0)<=(e|0)|(e|0)>(k|0)){return 0}ta(j+(g<<2)|0,i+H[c>>2]|0,d);e=H[c+20>>2];i=d+H[c+16>>2]|0;e=i>>>0>>0?e+1|0:e;H[c+16>>2]=i;H[c+20>>2]=e;g=g+1|0;if((h|0)!=(g|0)){continue}break}}f=1;if(!h){break b}d=H[a+20>>2];if(d){f=0;if(ha[H[H[d>>2]+32>>2]](d)|0){break b}}d=0;g=0;d:{if((h|0)<=0){break d}if((h|0)!=1){i=h&-2;while(1){e=d<<2;f=H[e+j>>2];H[e+j>>2]=0-(f&1)^f>>>1;f=e|4;e=H[f+j>>2];H[f+j>>2]=0-(e&1)^e>>>1;d=d+2|0;g=g+2|0;if((i|0)!=(g|0)){continue}break}}if(!(h&1)){break d}e=d<<2;d=H[e+j>>2];H[e+j>>2]=0-(d&1)^d>>>1}f=0}d=H[a+20>>2];e:{if(!d){break e}if(!(ha[H[H[d>>2]+40>>2]](d,c)|0)){break a}if(f){break e}a=H[a+20>>2];if(!(ha[H[H[a>>2]+44>>2]](a,j,j,h,l,H[b>>2])|0)){break a}}o=1}return o|0}function tb(a,b){var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0;g=fa-32|0;fa=g;a:{b:{if(H[a+8>>2]<<5>>>0>=b>>>0){break b}if((b|0)<0){break a}b=(b-1>>>5|0)+1|0;c=sa(b<<2);H[g+24>>2]=b;H[g+20>>2]=0;H[g+16>>2]=c;b=H[a>>2];H[g+12>>2]=0;H[g+8>>2]=b;c=H[a+4>>2];H[g+4>>2]=c&31;H[g>>2]=b+(c>>>3&536870908);f=fa-32|0;fa=f;i=H[g+4>>2];e=H[g+12>>2];j=H[g>>2];h=H[g+8>>2];b=(i-e|0)+(j-h<<3)|0;d=H[g+20>>2];c=b+d|0;H[g+20>>2]=c;if(!((c-1^d-1)>>>0<32?d:0)){H[H[g+16>>2]+((c>>>0>=33?c-1>>>5|0:0)<<2)>>2]=0}c=H[g+16>>2]+(d>>>3&536870908)|0;d=d&31;c:{if((d|0)==(e|0)){if((b|0)<=0){break c}if(e){i=32-e|0;d=(b|0)<(i|0)?b:i;i=-1<>>i-d;H[c>>2]=H[c>>2]&(i^-1)|i&H[h>>2];b=b-d|0;h=h+4|0;c=c+(d+e>>>3&536870908)|0}j=c;e=(b|0)/32|0;c=e<<2;d=Sa(j,h,c);b=b-(e<<5)|0;if((b|0)<=0){break c}e=c+d|0;b=-1>>>32-b|0;H[e>>2]=H[e>>2]&(b^-1)|b&H[c+h>>2];break c}H[f+28>>2]=e;H[f+24>>2]=h;H[f+20>>2]=i;H[f+16>>2]=j;H[f+12>>2]=d;H[f+8>>2]=c;b=H[f+28>>2];c=H[f+24>>2];h=(H[f+20>>2]-b|0)+(H[f+16>>2]-c<<3)|0;d:{if((h|0)<=0){b=H[f+12>>2];break d}e:{if(!b){b=H[f+12>>2];break e}e=H[f+12>>2];j=32-e|0;k=32-b|0;d=(h|0)<(k|0)?h:k;i=d>>>0>j>>>0?j:d;l=H[f+8>>2];m=H[l>>2]&(-1<>>j-i^-1);j=H[c>>2]&(-1<>>k-d);H[l>>2]=m|(b>>>0>>0?j<>>b-e|0);c=e+i|0;b=c&31;H[f+12>>2]=b;e=l+(c>>>3&536870908)|0;H[f+8>>2]=e;c=d-i|0;if((c|0)>0){H[e>>2]=H[e>>2]&(-1>>>32-c^-1)|j>>>i+H[f+28>>2];H[f+12>>2]=c;b=c}h=h-d|0;c=H[f+24>>2]+4|0;H[f+24>>2]=c}i=-1<=32){j=i^-1;while(1){d=H[f+8>>2];c=H[c>>2];H[d>>2]=j&H[d>>2]|c<>2]=d+4;H[d+4>>2]=i&H[d+4>>2]|c>>>e;c=H[f+24>>2]+4|0;H[f+24>>2]=c;d=h>>>0>63;h=h-32|0;if(d){continue}break}}if((h|0)<=0){break d}d=H[f+8>>2];j=e;e=(e|0)<(h|0)?e:h;j=H[d>>2]&(i&-1>>>j-e^-1);i=H[c>>2]&-1>>>32-h;H[d>>2]=j|i<>2]=b;d=d+(c>>>3&536870908)|0;H[f+8>>2]=d;c=h-e|0;if((c|0)<=0){break d}H[d>>2]=H[d>>2]&(-1>>>32-c^-1)|i>>>e;H[f+12>>2]=c;b=c}c=H[f+8>>2];H[f+4>>2]=b;H[f>>2]=c}fa=f+32|0;b=H[a>>2];H[a>>2]=H[g+16>>2];H[g+16>>2]=b;c=H[a+4>>2];H[a+4>>2]=H[g+20>>2];H[g+20>>2]=c;c=H[a+8>>2];H[a+8>>2]=H[g+24>>2];H[g+24>>2]=c;if(!b){break b}ra(b)}fa=g+32|0;return}va();v()}function he(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0;i=fa-80|0;fa=i;a:{b:{if(I[H[a+28>>2]+36|0]<=1){d=H[b+20>>2];c=H[b+16>>2];e=c+4|0;d=e>>>0<4?d+1|0:d;f=H[b+12>>2];if((f|0)<=(d|0)&e>>>0>K[b+8>>2]|(d|0)>(f|0)){break a}c=c+H[b>>2]|0;j=I[c|0]|I[c+1|0]<<8|(I[c+2|0]<<16|I[c+3|0]<<24);H[b+16>>2]=e;H[b+20>>2]=d;break b}if(!Nc(1,i+76|0,b)){break a}j=H[i+76>>2]}if(!j){break a}d=H[b+8>>2];c=H[b+16>>2];d=Nj(d-c|0,H[b+12>>2]-(H[b+20>>2]+(c>>>0>d>>>0)|0)|0,5,0);c=ga;if(d>>>0>>0&(c|0)<=0|(c|0)<0){break a}c=H[a+4>>2];d=H[a+8>>2]-c>>2;c:{if(d>>>0>>0){Aa(a+4|0,j-d|0);break c}if(d>>>0<=j>>>0){break c}H[a+8>>2]=c+(j<<2)}q=a+16|0;l=H[a+32>>2];g=1;while(1){d:{h=H[b+12>>2];c=h;d=H[b+20>>2];n=H[b+8>>2];k=H[b+16>>2];if((c|0)<=(d|0)&n>>>0<=k>>>0|(c|0)<(d|0)){break d}o=H[b>>2];r=I[o+k|0];c=d;e=k+1|0;c=e?c:c+1|0;H[b+16>>2]=e;H[b+20>>2]=c;if((c|0)>=(h|0)&e>>>0>=n>>>0|(c|0)>(h|0)){break d}e=I[e+o|0];c=d;f=k+2|0;c=f>>>0<2?c+1|0:c;H[b+16>>2]=f;H[b+20>>2]=c;if((c|0)>=(h|0)&f>>>0>=n>>>0|(c|0)>(h|0)){break d}f=I[f+o|0];c=d;p=k+3|0;c=p>>>0<3?c+1|0:c;H[b+16>>2]=p;H[b+20>>2]=c;if((c|0)>=(h|0)&p>>>0>=n>>>0|(c|0)>(h|0)){break d}h=I[p+o|0];c=d;d=k+4|0;c=d>>>0<4?c+1|0:c;H[b+16>>2]=d;H[b+20>>2]=c;if(!f|((e-12&255)>>>0<245|r>>>0>4)){break d}k=Gb(i+8|0);h=(h|0)!=0;d=e-1|0;if(d>>>0<=10){c=H[(d<<2)+13584>>2]}else{c=-1}d=N(c,f);lc(k,r,f,e,h,d,d>>31);d=J[H[a+28>>2]+36>>1];e:{if(((d<<8|d>>>8)&65535)>>>0<=258){c=H[b+20>>2];d=H[b+16>>2];e=d+2|0;c=e>>>0<2?c+1|0:c;f=H[b+12>>2];if((f|0)<=(c|0)&e>>>0>K[b+8>>2]|(c|0)>(f|0)){break d}d=d+H[b>>2]|0;g=I[d|0]|I[d+1|0]<<8;H[b+16>>2]=e;H[b+20>>2]=c;break e}if(!Nc(1,i+4|0,b)){break d}g=H[i+4>>2]}H[i+68>>2]=g;d=fc(sa(96),k);ha[H[H[l>>2]+8>>2]](l,H[l+12>>2]-H[l+8>>2]>>2,d);d=(H[l+12>>2]-H[l+8>>2]>>2)-1|0;e=d<<2;H[H[e+H[l+8>>2]>>2]+60>>2]=g;H[H[a+4>>2]+(m<<2)>>2]=d;g=H[a+16>>2];c=H[a+20>>2]-g>>2;f:{if((c|0)>(d|0)){break f}H[i>>2]=-1;d=d+1|0;if(d>>>0>c>>>0){Ia(q,d-c|0,i);g=H[q>>2];break f}if(c>>>0<=d>>>0){break f}H[a+20>>2]=(d<<2)+g}H[e+g>>2]=m;m=m+1|0;g=m>>>0>>0;if((j|0)!=(m|0)){continue}}break}m=!g}fa=i+80|0;return m&1}function Le(a,b){var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0;c=J[b+38>>1];a:{if(!c){break a}b:{if(c>>>0<=511){d=H[b+12>>2];c=H[b+20>>2];e=H[b+16>>2];g=e+4|0;c=g>>>0<4?c+1|0:c;if(g>>>0>K[b+8>>2]&(c|0)>=(d|0)|(c|0)>(d|0)){break a}c=e+H[b>>2]|0;f=I[c|0]|I[c+1|0]<<8|(I[c+2|0]<<16|I[c+3|0]<<24);H[a+12>>2]=f;c=H[b+20>>2];d=H[b+16>>2]+4|0;c=d>>>0<4?c+1|0:c;e=d;H[b+16>>2]=d;H[b+20>>2]=c;break b}if(!kb(1,a+12|0,b)){break a}e=H[b+16>>2];c=H[b+20>>2];f=H[a+12>>2]}d=H[b+8>>2];g=d-e|0;c=H[b+12>>2]-(c+(d>>>0>>0)|0)|0;if(g>>>0>>6>>>0&(c|0)<=0|(c|0)<0){break a}d=H[a>>2];c=H[a+4>>2]-d>>2;c:{if(c>>>0>>0){Aa(a,f-c|0);f=H[a+12>>2];break c}if(c>>>0<=f>>>0){break c}H[a+4>>2]=d+(f<<2)}if(!f){return 1}e=H[b+16>>2];c=H[b+20>>2];k=H[a>>2];l=H[b+8>>2];j=H[b+12>>2];g=0;while(1){if((c|0)>=(j|0)&e>>>0>=l>>>0|(c|0)>(j|0)){return 0}m=H[b>>2];i=I[m+e|0];d=e+1|0;c=d?c:c+1|0;e=d;H[b+16>>2]=d;H[b+20>>2]=c;d=i>>>2|0;h=0;d:{e:{f:{g:{n=i&3;switch(n|0){case 0:break e;case 3:break g;default:break f}}d=d+g|0;if(d>>>0>=f>>>0){return 0}ua(k+(g<<2)|0,0,(i&252)+4|0);g=d;break d}while(1){if((c|0)>=(j|0)&e>>>0>=l>>>0|(c|0)>(j|0)){break a}f=I[e+m|0];e=e+1|0;c=e?c:c+1|0;H[b+16>>2]=e;H[b+20>>2]=c;d=f<<(h<<3|6)|d;h=h+1|0;if((n|0)!=(h|0)){continue}break}}H[k+(g<<2)>>2]=d}f=H[a+12>>2];g=g+1|0;if(f>>>0>g>>>0){continue}break}b=a+16|0;j=H[a>>2];d=H[a+16>>2];c=H[a+20>>2]-d|0;h:{if(c>>>0<=16383){Aa(b,4096-(c>>>2|0)|0);break h}if((c|0)==16384){break h}H[a+20>>2]=d+16384}c=a+28|0;g=H[c>>2];d=H[a+32>>2]-g>>3;i:{if(d>>>0>>0){sb(c,f-d|0);g=H[c>>2];break i}if(d>>>0>f>>>0){H[a+32>>2]=(f<<3)+g}if(!f){break a}}e=H[b>>2];b=0;a=0;while(1){c=j+(b<<2)|0;h=H[c>>2];d=a;i=(b<<3)+g|0;H[i+4>>2]=d;H[i>>2]=h;c=H[c>>2];a=c+d|0;if(a>>>0>4096){break a}j:{if(a>>>0<=d>>>0){break j}h=0;i=c&7;if(i){while(1){H[e+(d<<2)>>2]=b;d=d+1|0;h=h+1|0;if((i|0)!=(h|0)){continue}break}}if(c-1>>>0<=6){break j}while(1){c=e+(d<<2)|0;H[c>>2]=b;H[c+28>>2]=b;H[c+24>>2]=b;H[c+20>>2]=b;H[c+16>>2]=b;H[c+12>>2]=b;H[c+8>>2]=b;H[c+4>>2]=b;d=d+8|0;if((d|0)!=(a|0)){continue}break}}b=b+1|0;if((f|0)!=(b|0)){continue}break}o=(a|0)==4096}return o}function Mi(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0;g=fa-48|0;fa=g;d=H[a+8>>2];if(d-31>>>0>=4294967267){H[a+76>>2]=d;e=-1<>2]=d;H[a+80>>2]=e^-1;H[a+92>>2]=(d|0)/2;L[a+88>>2]=O(2)/O(d|0)}H[a+52>>2]=f;d=H[a+40>>2];e=H[d>>2];d=H[d+4>>2];H[g+16>>2]=0;H[g+8>>2]=0;H[g+12>>2]=0;a:{d=d-e|0;if((d|0)>0){m=a+8|0;n=a+44|0;d=d>>>2|0;o=d>>>0<=1?1:d;p=a+96|0;while(1){e=H[a+40>>2];d=H[e>>2];if(H[e+4>>2]-d>>2>>>0<=j>>>0){break a}Pb(n,H[d+(j<<2)>>2],g+8|0);e=H[g+12>>2];d=e>>31;f=H[g+8>>2];h=f>>31;k=H[g+16>>2];i=k>>31;i=(i^k)-i|0;h=i+((d^e)-d+((f^h)-h)|0)|0;d=0;d=h>>>0>>0?1:d;b:{if(!(d|h)){H[g+8>>2]=H[a+92>>2];break b}i=H[a+92>>2];l=i>>31;f=Oj(Nj(i,l,f,f>>31),ga,h,d);H[g+8>>2]=f;d=Oj(Nj(i,l,e,e>>31),ga,h,d);H[g+12>>2]=d;e=d>>31;e=(d^e)-e|0;d=f>>31;d=e+((d^f)-d|0)|0;if((k|0)>=0){H[g+16>>2]=i-d;break b}H[g+16>>2]=d-i}d=Da(p);f=H[g+8>>2];c:{if(d){H[g+16>>2]=0-H[g+16>>2];e=0-H[g+12>>2]|0;H[g+12>>2]=e;f=0-f|0;H[g+8>>2]=f;break c}e=H[g+12>>2]}d:{if((f|0)>=0){f=H[a+92>>2];d=f+H[g+16>>2]|0;f=e+f|0;break d}e:{if((e|0)<0){d=H[g+16>>2];f=d>>31;f=(d^f)-f|0;break e}d=H[g+16>>2];f=d>>31;f=H[a+84>>2]+(f-(d^f)|0)|0}if((d|0)<0){d=e>>31;d=(d^e)-d|0;break d}d=e>>31;d=H[a+84>>2]+(d-(d^e)|0)|0}e=H[a+84>>2];f:{if(!(d|f)){d=e;f=d;break f}if(!((d|0)!=(e|0)|f)){f=d;break f}if(!((e|0)!=(f|0)|d)){d=f;break f}g:{if(f){break g}h=H[a+92>>2];if((h|0)>=(d|0)){break g}d=(h<<1)-d|0;f=0;break f}h:{if((e|0)!=(f|0)){break h}h=H[a+92>>2];if((h|0)<=(d|0)){break h}d=(h<<1)-d|0;break f}i:{if((d|0)!=(e|0)){break i}e=H[a+92>>2];if((e|0)<=(f|0)){break i}f=(e<<1)-f|0;break f}if(d){break f}d=0;e=H[a+92>>2];if((e|0)>=(f|0)){break f}f=(e<<1)-f|0}e=j<<3;h=e+b|0;k=H[h+4>>2];h=H[h>>2];H[g+36>>2]=d;H[g+32>>2]=f;H[g+24>>2]=h;H[g+28>>2]=k;rc(g+40|0,m,g+32|0,g+24|0);d=c+e|0;H[d>>2]=H[g+40>>2];H[d+4>>2]=H[g+44>>2];j=j+1|0;if((o|0)!=(j|0)){continue}break}}fa=g+48|0;return 1}Ea();v()}function Hi(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0;g=fa-48|0;fa=g;d=H[a+8>>2];if(d-31>>>0>=4294967267){H[a+76>>2]=d;e=-1<>2]=d;H[a+80>>2]=e^-1;H[a+92>>2]=(d|0)/2;L[a+88>>2]=O(2)/O(d|0)}H[a+52>>2]=f;d=H[a+40>>2];e=H[d>>2];d=H[d+4>>2];H[g+16>>2]=0;H[g+8>>2]=0;H[g+12>>2]=0;a:{d=d-e|0;if((d|0)>0){m=a+8|0;n=a+44|0;d=d>>>2|0;o=d>>>0<=1?1:d;p=a+96|0;while(1){e=H[a+40>>2];d=H[e>>2];if(H[e+4>>2]-d>>2>>>0<=j>>>0){break a}Nb(n,H[d+(j<<2)>>2],g+8|0);e=H[g+12>>2];d=e>>31;f=H[g+8>>2];h=f>>31;k=H[g+16>>2];i=k>>31;i=(i^k)-i|0;h=i+((d^e)-d+((f^h)-h)|0)|0;d=0;d=h>>>0>>0?1:d;b:{if(!(d|h)){H[g+8>>2]=H[a+92>>2];break b}i=H[a+92>>2];l=i>>31;f=Oj(Nj(i,l,f,f>>31),ga,h,d);H[g+8>>2]=f;d=Oj(Nj(i,l,e,e>>31),ga,h,d);H[g+12>>2]=d;e=d>>31;e=(d^e)-e|0;d=f>>31;d=e+((d^f)-d|0)|0;if((k|0)>=0){H[g+16>>2]=i-d;break b}H[g+16>>2]=d-i}d=Da(p);f=H[g+8>>2];c:{if(d){H[g+16>>2]=0-H[g+16>>2];e=0-H[g+12>>2]|0;H[g+12>>2]=e;f=0-f|0;H[g+8>>2]=f;break c}e=H[g+12>>2]}d:{if((f|0)>=0){f=H[a+92>>2];d=f+H[g+16>>2]|0;f=e+f|0;break d}e:{if((e|0)<0){d=H[g+16>>2];f=d>>31;f=(d^f)-f|0;break e}d=H[g+16>>2];f=d>>31;f=H[a+84>>2]+(f-(d^f)|0)|0}if((d|0)<0){d=e>>31;d=(d^e)-d|0;break d}d=e>>31;d=H[a+84>>2]+(d-(d^e)|0)|0}e=H[a+84>>2];f:{if(!(d|f)){d=e;f=d;break f}if(!((d|0)!=(e|0)|f)){f=d;break f}if(!((e|0)!=(f|0)|d)){d=f;break f}g:{if(f){break g}h=H[a+92>>2];if((h|0)>=(d|0)){break g}d=(h<<1)-d|0;f=0;break f}h:{if((e|0)!=(f|0)){break h}h=H[a+92>>2];if((h|0)<=(d|0)){break h}d=(h<<1)-d|0;break f}i:{if((d|0)!=(e|0)){break i}e=H[a+92>>2];if((e|0)<=(f|0)){break i}f=(e<<1)-f|0;break f}if(d){break f}d=0;e=H[a+92>>2];if((e|0)>=(f|0)){break f}f=(e<<1)-f|0}e=j<<3;h=e+b|0;k=H[h+4>>2];h=H[h>>2];H[g+36>>2]=d;H[g+32>>2]=f;H[g+24>>2]=h;H[g+28>>2]=k;rc(g+40|0,m,g+32|0,g+24|0);d=c+e|0;H[d>>2]=H[g+40>>2];H[d+4>>2]=H[g+44>>2];j=j+1|0;if((o|0)!=(j|0)){continue}break}}fa=g+48|0;return 1}Ea();v()}function Vi(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0;g=fa-48|0;fa=g;d=H[a+8>>2];if(d-31>>>0>=4294967267){H[a+76>>2]=d;e=-1<>2]=d;H[a+80>>2]=e^-1;H[a+92>>2]=(d|0)/2;L[a+88>>2]=O(2)/O(d|0)}H[a+52>>2]=f;d=H[a+40>>2];e=H[d>>2];d=H[d+4>>2];H[g+16>>2]=0;H[g+8>>2]=0;H[g+12>>2]=0;a:{d=d-e|0;if((d|0)>0){m=a+8|0;n=a+44|0;d=d>>>2|0;o=d>>>0<=1?1:d;p=a+96|0;while(1){e=H[a+40>>2];d=H[e>>2];if(H[e+4>>2]-d>>2>>>0<=j>>>0){break a}Pb(n,H[d+(j<<2)>>2],g+8|0);e=H[g+12>>2];d=e>>31;f=H[g+8>>2];h=f>>31;k=H[g+16>>2];i=k>>31;i=(i^k)-i|0;h=i+((d^e)-d+((f^h)-h)|0)|0;d=0;d=h>>>0>>0?1:d;b:{if(!(d|h)){H[g+8>>2]=H[a+92>>2];break b}i=H[a+92>>2];l=i>>31;f=Oj(Nj(i,l,f,f>>31),ga,h,d);H[g+8>>2]=f;d=Oj(Nj(i,l,e,e>>31),ga,h,d);H[g+12>>2]=d;e=d>>31;e=(d^e)-e|0;d=f>>31;d=e+((d^f)-d|0)|0;if((k|0)>=0){H[g+16>>2]=i-d;break b}H[g+16>>2]=d-i}d=Da(p);f=H[g+8>>2];c:{if(d){H[g+16>>2]=0-H[g+16>>2];e=0-H[g+12>>2]|0;H[g+12>>2]=e;f=0-f|0;H[g+8>>2]=f;break c}e=H[g+12>>2]}d:{if((f|0)>=0){f=H[a+92>>2];d=f+H[g+16>>2]|0;f=e+f|0;break d}e:{if((e|0)<0){d=H[g+16>>2];f=d>>31;f=(d^f)-f|0;break e}d=H[g+16>>2];f=d>>31;f=H[a+84>>2]+(f-(d^f)|0)|0}if((d|0)<0){d=e>>31;d=(d^e)-d|0;break d}d=e>>31;d=H[a+84>>2]+(d-(d^e)|0)|0}e=H[a+84>>2];f:{if(!(d|f)){d=e;f=d;break f}if(!((d|0)!=(e|0)|f)){f=d;break f}if(!((e|0)!=(f|0)|d)){d=f;break f}g:{if(f){break g}h=H[a+92>>2];if((h|0)>=(d|0)){break g}d=(h<<1)-d|0;f=0;break f}h:{if((e|0)!=(f|0)){break h}h=H[a+92>>2];if((h|0)<=(d|0)){break h}d=(h<<1)-d|0;break f}i:{if((d|0)!=(e|0)){break i}e=H[a+92>>2];if((e|0)<=(f|0)){break i}f=(e<<1)-f|0;break f}if(d){break f}d=0;e=H[a+92>>2];if((e|0)>=(f|0)){break f}f=(e<<1)-f|0}e=j<<3;h=e+b|0;k=H[h+4>>2];H[g+40>>2]=H[h>>2];H[g+44>>2]=k;H[g+28>>2]=d;H[g+24>>2]=f;sc(g+32|0,m,g+24|0,g+40|0);d=c+e|0;H[d>>2]=H[g+32>>2];H[d+4>>2]=H[g+36>>2];j=j+1|0;if((o|0)!=(j|0)){continue}break}}fa=g+48|0;return 1}Ea();v()}function Qi(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0;g=fa-48|0;fa=g;d=H[a+8>>2];if(d-31>>>0>=4294967267){H[a+76>>2]=d;e=-1<>2]=d;H[a+80>>2]=e^-1;H[a+92>>2]=(d|0)/2;L[a+88>>2]=O(2)/O(d|0)}H[a+52>>2]=f;d=H[a+40>>2];e=H[d>>2];d=H[d+4>>2];H[g+16>>2]=0;H[g+8>>2]=0;H[g+12>>2]=0;a:{d=d-e|0;if((d|0)>0){m=a+8|0;n=a+44|0;d=d>>>2|0;o=d>>>0<=1?1:d;p=a+96|0;while(1){e=H[a+40>>2];d=H[e>>2];if(H[e+4>>2]-d>>2>>>0<=j>>>0){break a}Nb(n,H[d+(j<<2)>>2],g+8|0);e=H[g+12>>2];d=e>>31;f=H[g+8>>2];h=f>>31;k=H[g+16>>2];i=k>>31;i=(i^k)-i|0;h=i+((d^e)-d+((f^h)-h)|0)|0;d=0;d=h>>>0>>0?1:d;b:{if(!(d|h)){H[g+8>>2]=H[a+92>>2];break b}i=H[a+92>>2];l=i>>31;f=Oj(Nj(i,l,f,f>>31),ga,h,d);H[g+8>>2]=f;d=Oj(Nj(i,l,e,e>>31),ga,h,d);H[g+12>>2]=d;e=d>>31;e=(d^e)-e|0;d=f>>31;d=e+((d^f)-d|0)|0;if((k|0)>=0){H[g+16>>2]=i-d;break b}H[g+16>>2]=d-i}d=Da(p);f=H[g+8>>2];c:{if(d){H[g+16>>2]=0-H[g+16>>2];e=0-H[g+12>>2]|0;H[g+12>>2]=e;f=0-f|0;H[g+8>>2]=f;break c}e=H[g+12>>2]}d:{if((f|0)>=0){f=H[a+92>>2];d=f+H[g+16>>2]|0;f=e+f|0;break d}e:{if((e|0)<0){d=H[g+16>>2];f=d>>31;f=(d^f)-f|0;break e}d=H[g+16>>2];f=d>>31;f=H[a+84>>2]+(f-(d^f)|0)|0}if((d|0)<0){d=e>>31;d=(d^e)-d|0;break d}d=e>>31;d=H[a+84>>2]+(d-(d^e)|0)|0}e=H[a+84>>2];f:{if(!(d|f)){d=e;f=d;break f}if(!((d|0)!=(e|0)|f)){f=d;break f}if(!((e|0)!=(f|0)|d)){d=f;break f}g:{if(f){break g}h=H[a+92>>2];if((h|0)>=(d|0)){break g}d=(h<<1)-d|0;f=0;break f}h:{if((e|0)!=(f|0)){break h}h=H[a+92>>2];if((h|0)<=(d|0)){break h}d=(h<<1)-d|0;break f}i:{if((d|0)!=(e|0)){break i}e=H[a+92>>2];if((e|0)<=(f|0)){break i}f=(e<<1)-f|0;break f}if(d){break f}d=0;e=H[a+92>>2];if((e|0)>=(f|0)){break f}f=(e<<1)-f|0}e=j<<3;h=e+b|0;k=H[h+4>>2];H[g+40>>2]=H[h>>2];H[g+44>>2]=k;H[g+28>>2]=d;H[g+24>>2]=f;sc(g+32|0,m,g+24|0,g+40|0);d=c+e|0;H[d>>2]=H[g+32>>2];H[d+4>>2]=H[g+36>>2];j=j+1|0;if((o|0)!=(j|0)){continue}break}}fa=g+48|0;return 1}Ea();v()}function Ee(a,b){var c=0,d=0,e=0,f=0,g=0,h=0,i=0;f=fa-16|0;fa=f;c=H[a+4>>2];H[a+40>>2]=H[a>>2];H[a+44>>2]=c;c=H[a+36>>2];H[a+72>>2]=H[a+32>>2];H[a+76>>2]=c;d=H[a+28>>2];c=a- -64|0;H[c>>2]=H[a+24>>2];H[c+4>>2]=d;c=H[a+20>>2];H[a+56>>2]=H[a+16>>2];H[a+60>>2]=c;c=H[a+12>>2];H[a+48>>2]=H[a+8>>2];H[a+52>>2]=c;a:{b:{if(Fb(a+40|0,1,f+8|0)){c=H[a+44>>2];H[a>>2]=H[a+40>>2];H[a+4>>2]=c;c=H[a+76>>2];H[a+32>>2]=H[a+72>>2];H[a+36>>2]=c;c=H[a+68>>2];H[a+24>>2]=H[a+64>>2];H[a+28>>2]=c;d=H[a+60>>2];h=d;c=H[a+56>>2];H[a+16>>2]=c;H[a+20>>2]=d;e=H[a+52>>2];d=H[a+48>>2];H[a+8>>2]=d;H[a+12>>2]=e;i=d-c|0;g=H[f+12>>2];e=e-((c>>>0>d>>>0)+h|0)|0;d=H[f+8>>2];if((g|0)==(e|0)&i>>>0>=d>>>0|e>>>0>g>>>0){break b}}c=0;break a}e=c+d|0;c=h+g|0;H[a+16>>2]=e;H[a+20>>2]=d>>>0>e>>>0?c+1|0:c;c:{if(J[a+38>>1]<=513){c=H[a+4>>2];H[a+96>>2]=H[a>>2];H[a+100>>2]=c;c=H[a+36>>2];H[a+128>>2]=H[a+32>>2];H[a+132>>2]=c;c=H[a+28>>2];H[a+120>>2]=H[a+24>>2];H[a+124>>2]=c;c=H[a+20>>2];H[a+112>>2]=H[a+16>>2];H[a+116>>2]=c;c=H[a+12>>2];H[a+104>>2]=H[a+8>>2];H[a+108>>2]=c;d:{if(Fb(a+96|0,1,f+8|0)){c=H[a+100>>2];H[a>>2]=H[a+96>>2];H[a+4>>2]=c;c=H[a+132>>2];H[a+32>>2]=H[a+128>>2];H[a+36>>2]=c;c=H[a+124>>2];H[a+24>>2]=H[a+120>>2];H[a+28>>2]=c;d=H[a+116>>2];h=d;c=H[a+112>>2];H[a+16>>2]=c;H[a+20>>2]=d;e=H[a+108>>2];d=H[a+104>>2];H[a+8>>2]=d;H[a+12>>2]=e;i=d-c|0;g=H[f+12>>2];e=e-((c>>>0>d>>>0)+h|0)|0;d=H[f+8>>2];if((g|0)==(e|0)&i>>>0>=d>>>0|e>>>0>g>>>0){break d}}c=0;break a}e=c+d|0;c=h+g|0;H[a+16>>2]=e;H[a+20>>2]=d>>>0>e>>>0?c+1|0:c;break c}c=0;if(!wa(a+80|0,a)){break a}}c=0;if(!De(a)){break a}c=H[a+4>>2];H[b>>2]=H[a>>2];H[b+4>>2]=c;c=H[a+36>>2];H[b+32>>2]=H[a+32>>2];H[b+36>>2]=c;c=H[a+28>>2];H[b+24>>2]=H[a+24>>2];H[b+28>>2]=c;c=H[a+20>>2];H[b+16>>2]=H[a+16>>2];H[b+20>>2]=c;c=H[a+12>>2];H[b+8>>2]=H[a+8>>2];H[b+12>>2]=c;c=1}fa=f+16|0;return c}function og(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0;f=fa-32|0;fa=f;e=f+8|0;c=fa-80|0;fa=c;a=H[b+36>>2];H[c+72>>2]=H[b+32>>2];H[c+76>>2]=a;d=H[b+28>>2];a=c- -64|0;H[a>>2]=H[b+24>>2];H[a+4>>2]=d;a=H[b+20>>2];H[c+56>>2]=H[b+16>>2];H[c+60>>2]=a;a=H[b+12>>2];H[c+48>>2]=H[b+8>>2];H[c+52>>2]=a;a=H[b+4>>2];H[c+40>>2]=H[b>>2];H[c+44>>2]=a;oc(c+8|0,c+40|0,c+24|0);a=H[c+8>>2];a:{if(a){H[e>>2]=a;a=e+4|0;if(F[c+23|0]>=0){b=c+8|4;e=H[b+4>>2];H[a>>2]=H[b>>2];H[a+4>>2]=e;H[a+8>>2]=H[b+8>>2];break a}Ba(a,H[c+12>>2],H[c+16>>2]);if(F[c+23|0]>=0){break a}ra(H[c+12>>2]);break a}if(F[c+23|0]<0){ra(H[c+12>>2])}a=I[c+31|0];if(a>>>0>=2){b=sa(32);F[b+26|0]=0;a=I[1477]|I[1478]<<8;F[b+24|0]=a;F[b+25|0]=a>>>8;a=I[1473]|I[1474]<<8|(I[1475]<<16|I[1476]<<24);d=I[1469]|I[1470]<<8|(I[1471]<<16|I[1472]<<24);F[b+16|0]=d;F[b+17|0]=d>>>8;F[b+18|0]=d>>>16;F[b+19|0]=d>>>24;F[b+20|0]=a;F[b+21|0]=a>>>8;F[b+22|0]=a>>>16;F[b+23|0]=a>>>24;a=I[1465]|I[1466]<<8|(I[1467]<<16|I[1468]<<24);d=I[1461]|I[1462]<<8|(I[1463]<<16|I[1464]<<24);F[b+8|0]=d;F[b+9|0]=d>>>8;F[b+10|0]=d>>>16;F[b+11|0]=d>>>24;F[b+12|0]=a;F[b+13|0]=a>>>8;F[b+14|0]=a>>>16;F[b+15|0]=a>>>24;a=I[1457]|I[1458]<<8|(I[1459]<<16|I[1460]<<24);d=I[1453]|I[1454]<<8|(I[1455]<<16|I[1456]<<24);F[b|0]=d;F[b+1|0]=d>>>8;F[b+2|0]=d>>>16;F[b+3|0]=d>>>24;F[b+4|0]=a;F[b+5|0]=a>>>8;F[b+6|0]=a>>>16;F[b+7|0]=a>>>24;H[c+8>>2]=-1;a=c+8|4;Ba(a,b,26);d=F[c+23|0];H[e>>2]=H[c+8>>2];e=e+4|0;if((d|0)>=0){d=H[a+4>>2];H[e>>2]=H[a>>2];H[e+4>>2]=d;H[e+8>>2]=H[a+8>>2];ra(b);break a}Ba(e,H[c+12>>2],H[c+16>>2]);if(F[c+23|0]<0){ra(H[c+12>>2])}ra(b);break a}H[e>>2]=0;H[e+4>>2]=0;H[e+16>>2]=a;H[e+8>>2]=0;H[e+12>>2]=0}fa=c+80|0;a=H[f+24>>2];if(F[f+23|0]<0){ra(H[f+12>>2])}fa=f+32|0;return a|0}function Wd(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0;k=fa-16|0;fa=k;H[k+8>>2]=c;e=H[a+12>>2];d=H[a+8>>2];f=e-d>>2;a:{if((f|0)>(b|0)){break a}h=b+1|0;if(h>>>0>f>>>0){f=h-f|0;g=H[a+16>>2];d=H[a+12>>2];if(f>>>0<=g-d>>2>>>0){if(f){e=d;d=f<<2;d=ua(e,0,d)+d|0}H[a+12>>2]=d;break a}b:{c:{d:{h=H[a+8>>2];i=d-h>>2;e=i+f|0;if(e>>>0<1073741824){g=g-h|0;l=g>>1;g=g>>>0>=2147483644?1073741823:e>>>0>>0?l:e;if(g){if(g>>>0>=1073741824){break d}j=sa(g<<2)}e=(i<<2)+j|0;i=f<<2;f=ua(e,0,i);i=f+i|0;g=(g<<2)+j|0;if((d|0)==(h|0)){break c}while(1){d=d-4|0;f=H[d>>2];H[d>>2]=0;e=e-4|0;H[e>>2]=f;if((d|0)!=(h|0)){continue}break}H[a+16>>2]=g;f=H[a+12>>2];H[a+12>>2]=i;d=H[a+8>>2];H[a+8>>2]=e;if((d|0)==(f|0)){break b}while(1){f=f-4|0;e=H[f>>2];H[f>>2]=0;if(e){Ja(e)}if((d|0)!=(f|0)){continue}break}break b}va();v()}za();v()}H[a+16>>2]=g;H[a+12>>2]=i;H[a+8>>2]=f}if(d){ra(d)}break a}if(f>>>0<=h>>>0){break a}d=d+(h<<2)|0;if((d|0)!=(e|0)){while(1){e=e-4|0;c=H[e>>2];H[e>>2]=0;if(c){Ja(c)}if((d|0)!=(e|0)){continue}break}c=H[k+8>>2]}H[a+12>>2]=d}e:{f:{d=H[c+56>>2];g:{if((d|0)>4){break g}e=N(d,12)+a|0;d=H[e+24>>2];if((d|0)!=H[e+28>>2]){H[d>>2]=b;H[e+24>>2]=d+4;break g}h=H[e+20>>2];f=d-h|0;j=f>>2;d=j+1|0;if(d>>>0>=1073741824){break f}g=f>>1;g=f>>>0>=2147483644?1073741823:d>>>0>>0?g:d;if(g){if(g>>>0>=1073741824){break e}d=sa(g<<2)}else{d=0}j=d+(j<<2)|0;H[j>>2]=b;if((f|0)>0){ta(d,h,f)}H[e+20>>2]=d;H[e+24>>2]=j+4;H[e+28>>2]=d+(g<<2);if(!h){break g}ra(h)}H[c+60>>2]=b;a=H[a+8>>2];H[k+8>>2]=0;b=a+(b<<2)|0;a=H[b>>2];H[b>>2]=c;if(a){Ja(a)}a=H[k+8>>2];H[k+8>>2]=0;if(a){Ja(a)}fa=k+16|0;return}va();v()}za();v()}function Ng(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0;i=c;d=a;a:{if(H[a+12>>2]==(b|0)){break a}a=b;b=H[d+4>>2];e=H[d>>2];if((b|0)!=(e|0)){while(1){c=b-12|0;if(F[b-1|0]<0){ra(H[c>>2])}b=c;if((e|0)!=(b|0)){continue}break}}H[d+12>>2]=a;H[d+4>>2]=e;c=H[a>>2];j=a+4|0;if((c|0)==(j|0)){break a}while(1){a=H[d+4>>2];b:{if((a|0)!=H[d+8>>2]){c:{if(F[c+27|0]>=0){b=H[c+20>>2];H[a>>2]=H[c+16>>2];H[a+4>>2]=b;H[a+8>>2]=H[c+24>>2];break c}Ba(a,H[c+16>>2],H[c+20>>2])}H[d+4>>2]=a+12;break b}g=0;d:{e:{f:{e=H[d+4>>2];a=H[d>>2];f=(e-a|0)/12|0;b=f+1|0;if(b>>>0<357913942){h=(H[d+8>>2]-a|0)/12|0;k=h<<1;b=h>>>0>=178956970?357913941:b>>>0>>0?k:b;if(b){if(b>>>0>=357913942){break f}g=sa(N(b,12))}h=N(b,12);b=N(f,12)+g|0;g:{if(F[c+27|0]>=0){f=H[c+20>>2];H[b>>2]=H[c+16>>2];H[b+4>>2]=f;H[b+8>>2]=H[c+24>>2];break g}Ba(b,H[c+16>>2],H[c+20>>2]);e=H[d+4>>2];a=H[d>>2]}g=g+h|0;f=b+12|0;if((a|0)==(e|0)){break e}while(1){e=e-12|0;h=H[e+4>>2];b=b-12|0;H[b>>2]=H[e>>2];H[b+4>>2]=h;H[b+8>>2]=H[e+8>>2];H[e>>2]=0;H[e+4>>2]=0;H[e+8>>2]=0;if((a|0)!=(e|0)){continue}break}H[d+8>>2]=g;a=H[d+4>>2];H[d+4>>2]=f;e=H[d>>2];H[d>>2]=b;if((a|0)==(e|0)){break d}while(1){b=a-12|0;if(F[a-1|0]<0){ra(H[b>>2])}a=b;if((b|0)!=(e|0)){continue}break}break d}va();v()}za();v()}H[d+8>>2]=g;H[d+4>>2]=f;H[d>>2]=b}if(e){ra(e)}}b=H[c+4>>2];h:{if(b){while(1){a=b;b=H[b>>2];if(b){continue}break h}}while(1){a=H[c+8>>2];b=H[a>>2]!=(c|0);c=a;if(b){continue}break}}c=a;if((j|0)!=(a|0)){continue}break}}a=0;i:{if((i|0)<0){break i}b=H[d>>2];if((H[d+4>>2]-b|0)/12>>>0<=i>>>0){break i}a=b+N(i,12)|0;a=F[a+11|0]<0?H[a>>2]:a}return a|0}function $c(a,b){var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0;i=fa-16|0;fa=i;H[i>>2]=b;g=-1;a:{if((b|0)==-1){H[i+4>>2]=-1;break a}c=b+1|0;H[i+4>>2]=(c>>>0)%3|0?c:b-2|0;if((b>>>0)%3|0){g=b-1|0;break a}g=b+2|0}H[i+8>>2]=g;n=(b>>>0)/3|0;b:{c:{d:{while(1){e:{f:{k=H[(l<<2)+i>>2];if((k|0)!=-1){c=H[H[H[a+8>>2]+12>>2]+(k<<2)>>2];if((c|0)!=-1){break f}}g=0;c=H[a+216>>2];if((c|0)==H[a+220>>2]){break e}while(1){f=N(g,144)+c|0;c=H[f+136>>2];d=H[f+140>>2];g:{if(c>>>0>>0){H[c>>2]=k;H[f+136>>2]=c+4;break g}h=H[f+132>>2];j=c-h|0;e=j>>2;c=e+1|0;if(c>>>0>=1073741824){break d}m=e<<2;d=d-h|0;e=d>>1;d=d>>>0>=2147483644?1073741823:c>>>0>>0?e:c;if(d){if(d>>>0>=1073741824){break c}c=sa(d<<2)}else{c=0}e=m+c|0;H[e>>2]=k;if((j|0)>0){ta(c,h,j)}H[f+132>>2]=c;H[f+136>>2]=e+4;H[f+140>>2]=c+(d<<2);if(!h){break g}ra(h)}g=g+1|0;c=H[a+216>>2];if(g>>>0<(H[a+220>>2]-c|0)/144>>>0){continue}break}break e}if((b|0)==-1|(c>>>0)/3>>>0>>0){break e}g=0;if(H[a+220>>2]==H[a+216>>2]){break e}while(1){h:{if(!Da(H[a+368>>2]+(g<<4)|0)){break h}f=H[a+216>>2]+N(g,144)|0;c=H[f+136>>2];d=H[f+140>>2];if(c>>>0>>0){H[c>>2]=k;H[f+136>>2]=c+4;break h}h=H[f+132>>2];j=c-h|0;e=j>>2;c=e+1|0;if(c>>>0>=1073741824){break b}m=e<<2;d=d-h|0;e=d>>1;d=d>>>0>=2147483644?1073741823:c>>>0>>0?e:c;if(d){if(d>>>0>=1073741824){break c}c=sa(d<<2)}else{c=0}e=m+c|0;H[e>>2]=k;if((j|0)>0){ta(c,h,j)}H[f+132>>2]=c;H[f+136>>2]=e+4;H[f+140>>2]=c+(d<<2);if(!h){break h}ra(h)}g=g+1|0;if(g>>>0<(H[a+220>>2]-H[a+216>>2]|0)/144>>>0){continue}break}}l=l+1|0;if((l|0)!=3){continue}break}fa=i+16|0;return 1}va();v()}za();v()}va();v()}function vg(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0;m=fa-16|0;fa=m;k=H[b+80>>2];b=I[c+24|0];a=N(k,b);a:{b:{c:{d:{e=H[c+28>>2];if(!(!I[c+84|0]|(e|0)!=1&(e|0)!=2)){b=H[c+48>>2];c=H[H[c>>2]>>2];H[m+8>>2]=0;H[m>>2]=0;H[m+4>>2]=0;if(a){if((a|0)<0){break d}g=sa(a);h=ta(g,b+c|0,a)+a|0}a=H[d>>2];if(a){H[d+4>>2]=a;ra(a)}H[d+8>>2]=h;H[d+4>>2]=h;H[d>>2]=g;a=1;break a}if(b){g=sa(b);ua(g,0,b)}e:{f=H[d+4>>2];e=H[d>>2];j=f-e|0;f:{if(j>>>0>>0){l=a-j|0;i=H[d+8>>2];if(l>>>0<=i-f>>>0){n=d,o=ua(f,0,l)+l|0,H[n+4>>2]=o;break f}if((a|0)<0){break e}f=i-e|0;i=f<<1;i=f>>>0>=1073741823?2147483647:a>>>0>>0?i:a;f=sa(i);ua(f+j|0,0,l);if((j|0)>0){ta(f,e,j)}H[d+8>>2]=f+i;H[d+4>>2]=a+f;H[d>>2]=f;if(!e){break f}ra(e);break f}if(a>>>0>=j>>>0){break f}H[d+4>>2]=a+e}if(!k){b=0;break c}if(!b){a=0;b=1;while(1){if(!kc(c,I[c+84|0]?a:H[H[c+68>>2]+(a<<2)>>2],F[c+24|0],g)){break c}a=a+1|0;b=k>>>0>a>>>0;if((a|0)!=(k|0)){continue}break}break c}l=b&252;j=b&3;i=b>>>0<4;b=1;e=0;while(1){if(!kc(c,I[c+84|0]?e:H[H[c+68>>2]+(e<<2)>>2],F[c+24|0],g)){break c}b=0;a=0;f=0;if(!i){while(1){F[H[d>>2]+h|0]=I[a+g|0];F[(H[d>>2]+h|0)+1|0]=I[(a|1)+g|0];F[(H[d>>2]+h|0)+2|0]=I[(a|2)+g|0];F[(H[d>>2]+h|0)+3|0]=I[(a|3)+g|0];a=a+4|0;h=h+4|0;f=f+4|0;if((l|0)!=(f|0)){continue}break}}if(j){while(1){F[H[d>>2]+h|0]=I[a+g|0];a=a+1|0;h=h+1|0;b=b+1|0;if((j|0)!=(b|0)){continue}break}}e=e+1|0;b=k>>>0>e>>>0;if((e|0)!=(k|0)){continue}break}a=e>>>0>=k>>>0;break b}va();v()}va();v()}a=b^1;if(!g){break a}}ra(g)}fa=m+16|0;return a&1}function ug(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0;m=fa-16|0;fa=m;k=H[b+80>>2];b=I[c+24|0];a=N(k,b);a:{b:{c:{d:{e=H[c+28>>2];if(!(!I[c+84|0]|(e|0)!=1&(e|0)!=2)){b=H[c+48>>2];c=H[H[c>>2]>>2];H[m+8>>2]=0;H[m>>2]=0;H[m+4>>2]=0;if(a){if((a|0)<0){break d}g=sa(a);h=ta(g,b+c|0,a)+a|0}a=H[d>>2];if(a){H[d+4>>2]=a;ra(a)}H[d+8>>2]=h;H[d+4>>2]=h;H[d>>2]=g;a=1;break a}if(b){g=sa(b);ua(g,0,b)}e:{f=H[d+4>>2];e=H[d>>2];j=f-e|0;f:{if(j>>>0>>0){l=a-j|0;i=H[d+8>>2];if(l>>>0<=i-f>>>0){n=d,o=ua(f,0,l)+l|0,H[n+4>>2]=o;break f}if((a|0)<0){break e}f=i-e|0;i=f<<1;i=f>>>0>=1073741823?2147483647:a>>>0>>0?i:a;f=sa(i);ua(f+j|0,0,l);if((j|0)>0){ta(f,e,j)}H[d+8>>2]=f+i;H[d+4>>2]=a+f;H[d>>2]=f;if(!e){break f}ra(e);break f}if(a>>>0>=j>>>0){break f}H[d+4>>2]=a+e}if(!k){b=0;break c}if(!b){a=0;b=1;while(1){if(!jc(c,I[c+84|0]?a:H[H[c+68>>2]+(a<<2)>>2],F[c+24|0],g)){break c}a=a+1|0;b=k>>>0>a>>>0;if((a|0)!=(k|0)){continue}break}break c}l=b&252;j=b&3;i=b>>>0<4;b=1;e=0;while(1){if(!jc(c,I[c+84|0]?e:H[H[c+68>>2]+(e<<2)>>2],F[c+24|0],g)){break c}b=0;a=0;f=0;if(!i){while(1){F[H[d>>2]+h|0]=I[a+g|0];F[(H[d>>2]+h|0)+1|0]=I[(a|1)+g|0];F[(H[d>>2]+h|0)+2|0]=I[(a|2)+g|0];F[(H[d>>2]+h|0)+3|0]=I[(a|3)+g|0];a=a+4|0;h=h+4|0;f=f+4|0;if((l|0)!=(f|0)){continue}break}}if(j){while(1){F[H[d>>2]+h|0]=I[a+g|0];a=a+1|0;h=h+1|0;b=b+1|0;if((j|0)!=(b|0)){continue}break}}e=e+1|0;b=k>>>0>e>>>0;if((e|0)!=(k|0)){continue}break}a=e>>>0>=k>>>0;break b}va();v()}va();v()}a=b^1;if(!g){break a}}ra(g)}fa=m+16|0;return a&1}function ad(a,b){var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0;h=fa-16|0;fa=h;H[h>>2]=b;c=-1;a:{if((b|0)==-1){H[h+4>>2]=-1;break a}c=b+1|0;H[h+4>>2]=(c>>>0)%3|0?c:b-2|0;if((b>>>0)%3|0){c=b-1|0;break a}c=b+2|0}H[h+8>>2]=c;b:{c:{while(1){j=H[(k<<2)+h>>2];d:{if(!((j|0)==-1|H[H[H[a+8>>2]+12>>2]+(j<<2)>>2]==-1)){b=0;if(H[a+220>>2]==H[a+216>>2]){break d}while(1){e:{f:{if(!Da(H[a+368>>2]+(b<<4)|0)){break f}f=H[a+216>>2]+N(b,144)|0;c=H[f+136>>2];d=H[f+140>>2];if(c>>>0>>0){H[c>>2]=j;H[f+136>>2]=c+4;break f}g=H[f+132>>2];i=c-g|0;e=i>>2;c=e+1|0;if(c>>>0>=1073741824){break e}l=e<<2;d=d-g|0;e=d>>1;d=d>>>0>=2147483644?1073741823:c>>>0>>0?e:c;if(d){if(d>>>0>=1073741824){break b}c=sa(d<<2)}else{c=0}e=l+c|0;H[e>>2]=j;if((i|0)>0){ta(c,g,i)}H[f+132>>2]=c;H[f+136>>2]=e+4;H[f+140>>2]=c+(d<<2);if(!g){break f}ra(g)}b=b+1|0;if(b>>>0<(H[a+220>>2]-H[a+216>>2]|0)/144>>>0){continue}break d}break}va();v()}b=0;c=H[a+216>>2];if((c|0)==H[a+220>>2]){break d}while(1){f=N(b,144)+c|0;c=H[f+136>>2];d=H[f+140>>2];g:{if(c>>>0>>0){H[c>>2]=j;H[f+136>>2]=c+4;break g}g=H[f+132>>2];i=c-g|0;e=i>>2;c=e+1|0;if(c>>>0>=1073741824){break c}l=e<<2;d=d-g|0;e=d>>1;d=d>>>0>=2147483644?1073741823:c>>>0>>0?e:c;if(d){if(d>>>0>=1073741824){break b}c=sa(d<<2)}else{c=0}e=l+c|0;H[e>>2]=j;if((i|0)>0){ta(c,g,i)}H[f+132>>2]=c;H[f+136>>2]=e+4;H[f+140>>2]=c+(d<<2);if(!g){break g}ra(g)}b=b+1|0;c=H[a+216>>2];if(b>>>0<(H[a+220>>2]-c|0)/144>>>0){continue}break}}k=k+1|0;if((k|0)!=3){continue}break}fa=h+16|0;return 1}va();v()}za();v()}function rc(a,b,c,d){var e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0;k=H[b+16>>2];h=H[c+4>>2]-k|0;f=h;e=H[c>>2]-k|0;H[c>>2]=e;H[c+4>>2]=f;l=H[b+16>>2];f=f>>31;g=(f^h)-f|0;f=e>>31;m=l>>>0>=g+((f^e)-f|0)>>>0;a:{if(m){f=h;break a}b:{c:{if((e|0)>=0){g=1;j=1;if((h|0)>=0){break b}i=1;g=-1;j=-1;if(e){break c}break b}i=-1;g=-1;j=-1;if((h|0)<=0){break b}}g=(h|0)<=0?-1:1;j=i}n=N(j,l);f=(e<<1)-n|0;i=(N(g,j)|0)>=0;e=N(g,l);f=((i?0-f|0:f)+e|0)/2|0;H[c+4>>2]=f;e=(h<<1)-e|0;e=((i?0-e|0:e)+n|0)/2|0;H[c>>2]=e}d:{e:{f:{g:{h:{i:{j:{if(e){if((e|0)<0){break j}if((f|0)>=0){break i}break f}if(f){break h}j=1;g=0;f=0;i=0;break d}j=1;if((f|0)>0){break g}i=(f|0)>0?253:0;g=f;f=e;break d}g=0-f|0;f=0-e|0;i=254;break e}if((f|0)<=0){break f}}f=0-f|0;g=e;i=253;break e}g=0-e|0;i=255}H[c>>2]=f;H[c+4>>2]=g;j=0}e=H[d>>2]+f|0;h=H[b+16>>2];k:{if((e|0)>(h|0)){e=e-H[b+4>>2]|0;break k}if((0-h|0)<=(e|0)){break k}e=H[b+4>>2]+e|0}c=H[d+4>>2]+g|0;l:{if((h|0)<(c|0)){c=c-H[b+4>>2]|0;break l}if((0-h|0)<=(c|0)){break l}c=H[b+4>>2]+c|0}m:{if(j){b=c;break m}b=c;n:{switch((i&3)-1|0){case 0:b=0-e|0;e=c;break m;case 1:b=0-c|0;e=0-e|0;break m;case 2:break n;default:break m}}b=e;e=0-c|0}o:{if(m){c=b;break o}p:{q:{if((e|0)>=0){c=1;f=1;if((b|0)>=0){break p}d=1;c=-1;f=-1;if(e){break q}break p}d=-1;c=-1;f=-1;if((b|0)<=0){break p}}c=(b|0)<=0?-1:1;f=d}d=e<<1;e=N(f,h);d=d-e|0;f=(N(c,f)|0)>=0;g=f?0-d|0:d;d=N(c,h);c=(g+d|0)/2|0;b=(b<<1)-d|0;e=(e+(f?0-b|0:b)|0)/2|0}b=a;H[b>>2]=e+k;H[b+4>>2]=c+k}function Yb(a,b,c,d){var e=0,f=0,g=0,h=0,i=0,j=0,k=0;i=d-c|0;if((i|0)<=0){return}a:{g=H[a+8>>2];h=H[a+4>>2];if((g-h|0)>=(i|0)){j=h-b|0;if((j|0)>=(i|0)){f=h;g=d;break a}f=h;g=c+j|0;if((g|0)!=(d|0)){e=g;while(1){F[f|0]=I[e|0];f=f+1|0;e=e+1|0;if((e|0)!=(d|0)){continue}break}}H[a+4>>2]=f;if((j|0)>0){break a}return}f=H[a>>2];e=(h-f|0)+i|0;if((e|0)>=0){j=b-f|0;g=g-f|0;k=g<<1;k=g>>>0>=1073741823?2147483647:e>>>0>>0?k:e;if(k){g=sa(k)}else{g=0}e=j+g|0;if((c|0)!=(d|0)){e=ta(e,c,i)+i|0}if((j|0)>0){ta(g,f,j)}if((b|0)!=(h|0)){d=(b^-1)+h|0;f=h-b&7;if(f){c=0;while(1){F[e|0]=I[b|0];e=e+1|0;b=b+1|0;c=c+1|0;if((f|0)!=(c|0)){continue}break}}if(d>>>0>=7){while(1){F[e|0]=I[b|0];F[e+1|0]=I[b+1|0];F[e+2|0]=I[b+2|0];F[e+3|0]=I[b+3|0];F[e+4|0]=I[b+4|0];F[e+5|0]=I[b+5|0];F[e+6|0]=I[b+6|0];F[e+7|0]=I[b+7|0];e=e+8|0;b=b+8|0;if((h|0)!=(b|0)){continue}break}}f=H[a>>2]}H[a+8>>2]=g+k;H[a+4>>2]=e;H[a>>2]=g;if(f){ra(f)}return}va();v()}e=f;d=e-i|0;if(h>>>0>d>>>0){while(1){F[e|0]=I[d|0];e=e+1|0;d=d+1|0;if(h>>>0>d>>>0){continue}break}}H[a+4>>2]=e;a=b+i|0;if((a|0)!=(f|0)){a=f-a|0;Sa(f-a|0,b,a)}if((c|0)==(g|0)){return}a=(c^-1)+g|0;f=g-c&7;b:{if(!f){e=b;break b}d=0;e=b;while(1){F[e|0]=I[c|0];e=e+1|0;c=c+1|0;d=d+1|0;if((f|0)!=(d|0)){continue}break}}if(a>>>0<7){return}while(1){F[e|0]=I[c|0];F[e+1|0]=I[c+1|0];F[e+2|0]=I[c+2|0];F[e+3|0]=I[c+3|0];F[e+4|0]=I[c+4|0];F[e+5|0]=I[c+5|0];F[e+6|0]=I[c+6|0];F[e+7|0]=I[c+7|0];e=e+8|0;c=c+8|0;if((g|0)!=(c|0)){continue}break}}function me(a,b){var c=0,d=0,e=0,f=0;if(!H[a+64>>2]){c=sa(32);H[c+16>>2]=0;H[c+20>>2]=0;H[c+8>>2]=0;H[c>>2]=0;H[c+4>>2]=0;H[c+24>>2]=0;H[c+28>>2]=0;d=H[a+64>>2];H[a+64>>2]=c;if(d){c=H[d>>2];if(c){H[d+4>>2]=c;ra(c)}ra(d);c=H[a+64>>2]}H[a>>2]=c;d=H[c+20>>2];H[a+8>>2]=H[c+16>>2];H[a+12>>2]=d;d=H[c+24>>2];c=H[c+28>>2];H[a+48>>2]=0;H[a+52>>2]=0;H[a+40>>2]=0;H[a+44>>2]=0;H[a+16>>2]=d;H[a+20>>2]=c}a:{F[a+24|0]=I[b+24|0];H[a+28>>2]=H[b+28>>2];F[a+32|0]=I[b+32|0];c=H[b+44>>2];H[a+40>>2]=H[b+40>>2];H[a+44>>2]=c;c=H[b+52>>2];H[a+48>>2]=H[b+48>>2];H[a+52>>2]=c;H[a+56>>2]=H[b+56>>2];c=H[b+12>>2];H[a+8>>2]=H[b+8>>2];H[a+12>>2]=c;c=H[b+20>>2];H[a+16>>2]=H[b+16>>2];H[a+20>>2]=c;H[a+60>>2]=H[b+60>>2];d=H[b>>2];b:{if(!d){H[a>>2]=0;c=1;break b}e=H[a>>2];c=0;if(!e){break b}c=H[d>>2];re(e,c,H[d+4>>2]-c|0,0);c=1}c:{if(!c){break c}F[a+84|0]=I[b+84|0];H[a+80>>2]=H[b+80>>2];if((a|0)!=(b|0)){Eb(a+68|0,H[b+68>>2],H[b+72>>2])}d=H[b+88>>2];d:{if(d){b=sa(40);c=H[d>>2];H[b+16>>2]=0;H[b+8>>2]=0;H[b+12>>2]=0;H[b>>2]=c;c=H[d+12>>2];e=H[d+8>>2];if((c|0)!=(e|0)){e=c-e|0;if((e|0)<0){break a}c=sa(e);H[b+8>>2]=c;H[b+12>>2]=c;H[b+16>>2]=c+e;f=H[d+8>>2];e=H[d+12>>2]-f|0;if((e|0)>0){c=ta(c,f,e)+e|0}H[b+12>>2]=c}c=H[d+36>>2];H[b+32>>2]=H[d+32>>2];H[b+36>>2]=c;c=H[d+28>>2];H[b+24>>2]=H[d+24>>2];H[b+28>>2]=c;c=H[a+88>>2];H[a+88>>2]=b;if(c){break d}break c}c=H[a+88>>2];H[a+88>>2]=0;if(!c){break c}}a=H[c+8>>2];if(a){H[c+12>>2]=a;ra(a)}ra(c)}return}va();v()}function bj(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0;H[a+8>>2]=e;m=a+32|0;h=H[m>>2];g=H[a+36>>2]-h>>2;a:{if(g>>>0>>0){Aa(m,e-g|0);f=H[a+8>>2];break a}f=e;if(f>>>0>=g>>>0){break a}H[a+36>>2]=h+(e<<2);f=e}g=e>>>0>1073741823?-1:e<<2;n=ua(sa(g),0,g);b:{if((f|0)<=0){break b}h=H[a+32>>2];while(1){f=i<<2;g=H[f+n>>2];j=H[a+16>>2];c:{if((g|0)>(j|0)){H[f+h>>2]=j;break c}f=f+h|0;j=H[a+12>>2];if((j|0)>(g|0)){H[f>>2]=j;break c}H[f>>2]=g}f=H[a+8>>2];i=i+1|0;if((f|0)>(i|0)){continue}break}if((f|0)<=0){break b}i=0;while(1){g=i<<2;f=g+c|0;g=H[b+g>>2]+H[g+h>>2]|0;H[f>>2]=g;d:{if((g|0)>H[a+16>>2]){g=g-H[a+20>>2]|0}else{if((g|0)>=H[a+12>>2]){break d}g=g+H[a+20>>2]|0}H[f>>2]=g}f=H[a+8>>2];i=i+1|0;if((f|0)>(i|0)){continue}break}}if(!((d|0)<=(e|0)|(f|0)<=0)){p=0-e<<2;g=e;while(1){e:{if((f|0)<=0){break e}l=g<<2;o=l+c|0;q=o+p|0;j=H[m>>2];i=0;while(1){f=i<<2;h=H[f+q>>2];k=H[a+16>>2];f:{if((h|0)>(k|0)){H[f+j>>2]=k;break f}f=f+j|0;k=H[a+12>>2];if((k|0)>(h|0)){H[f>>2]=k;break f}H[f>>2]=h}f=H[a+8>>2];i=i+1|0;if((f|0)>(i|0)){continue}break}i=0;if((f|0)<=0){break e}l=b+l|0;while(1){h=i<<2;f=h+o|0;h=H[h+l>>2]+H[h+j>>2]|0;H[f>>2]=h;g:{if((h|0)>H[a+16>>2]){h=h-H[a+20>>2]|0}else{if((h|0)>=H[a+12>>2]){break g}h=h+H[a+20>>2]|0}H[f>>2]=h}f=H[a+8>>2];i=i+1|0;if((f|0)>(i|0)){continue}break}}g=e+g|0;if((g|0)<(d|0)){continue}break}}ra(n);return 1}function Be(a,b){var c=0,d=0,e=0,f=0,g=0;d=-1;f=-1;a:{if((b|0)==-1){break a}c=b+1|0;d=(c>>>0)%3|0?c:b-2|0;f=b-1|0;if((b>>>0)%3|0){break a}f=b+2|0}b:{c:{d:{e:{f:{g:{e=H[a+184>>2];switch(e|0){case 7:break d;case 3:break e;case 5:break f;case 0:case 1:break g;default:break b}}g=H[a+148>>2];c=-1;e=1;d=((d|0)!=-1?H[H[g>>2]+(d<<2)>>2]:c)<<2;c=H[a+156>>2];d=d+c|0;H[d>>2]=H[d>>2]+1;c=(((f|0)==-1?-1:H[H[g>>2]+(f<<2)>>2])<<2)+c|0;break c}g=H[a+148>>2];c=H[a+156>>2];e=c+(((b|0)==-1?-1:H[H[g>>2]+(b<<2)>>2])<<2)|0;H[e>>2]=H[e>>2]+1;d=(((d|0)==-1?-1:H[H[g>>2]+(d<<2)>>2])<<2)+c|0;H[d>>2]=H[d>>2]+1;e=2;c=(((f|0)==-1?-1:H[H[g>>2]+(f<<2)>>2])<<2)+c|0;break c}g=H[a+148>>2];c=H[a+156>>2];e=c+(((b|0)==-1?-1:H[H[g>>2]+(b<<2)>>2])<<2)|0;H[e>>2]=H[e>>2]+1;d=(((d|0)==-1?-1:H[H[g>>2]+(d<<2)>>2])<<2)+c|0;H[d>>2]=H[d>>2]+2;e=1;c=(((f|0)==-1?-1:H[H[g>>2]+(f<<2)>>2])<<2)+c|0;break c}g=H[a+148>>2];c=H[a+156>>2];e=c+(((b|0)==-1?-1:H[H[g>>2]+(b<<2)>>2])<<2)|0;H[e>>2]=H[e>>2]+2;d=(((d|0)==-1?-1:H[H[g>>2]+(d<<2)>>2])<<2)+c|0;H[d>>2]=H[d>>2]+2;e=2;c=(((f|0)==-1?-1:H[H[g>>2]+(f<<2)>>2])<<2)+c|0}H[c>>2]=H[c>>2]+e;e=H[a+184>>2]}h:{switch(e|0){case 0:case 5:f=H[a+156>>2];c=-1;i:{if((b|0)==-1){break i}d=b+1|0;b=(d>>>0)%3|0?d:b-2|0;c=-1;if((b|0)==-1){break i}c=H[H[H[a+148>>2]>>2]+(b<<2)>>2]}if(H[f+(c<<2)>>2]<=5){H[a+188>>2]=5;return}H[a+188>>2]=0;return;default:break h}}H[a+188>>2]=-1}function Ye(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0;i=fa-32|0;fa=i;H[i+28>>2]=0;a:{b:{if(J[b+38>>1]<=513){c=H[b+20>>2];d=H[b+16>>2];f=d+4|0;c=f>>>0<4?c+1|0:c;e=H[b+12>>2];if((e|0)<=(c|0)&f>>>0>K[b+8>>2]|(c|0)>(e|0)){break a}d=d+H[b>>2]|0;d=I[d|0]|I[d+1|0]<<8|(I[d+2|0]<<16|I[d+3|0]<<24);H[b+16>>2]=f;H[b+20>>2]=c;break b}if(!ab(1,i+28|0,b)){break a}d=H[i+28>>2]}if(!d){break a}$a(a+76|0,d);c=i+8|0;H[c>>2]=0;H[c+4>>2]=0;F[c+5|0]=0;F[c+6|0]=0;F[c+7|0]=0;F[c+8|0]=0;F[c+9|0]=0;F[c+10|0]=0;F[c+11|0]=0;F[c+12|0]=0;c:{if(!wa(c,b)){break c}e=1;while(1){g=1<>2]+(h>>>3&536870908)|0;e=e^j;if(e&1){g=H[f>>2]&(g^-1)}else{g=g|H[f>>2]}e=e^1;H[f>>2]=g;h=h+1|0;if((h|0)!=(d|0)){continue}break}d=H[b+12>>2];h=d;c=H[b+20>>2];f=c;e=H[b+16>>2];g=e+4|0;c=g>>>0<4?c+1|0:c;j=H[b+8>>2];if(j>>>0>>0&(c|0)>=(d|0)|(c|0)>(d|0)){break c}k=H[b>>2];d=k+e|0;d=I[d|0]|I[d+1|0]<<8|(I[d+2|0]<<16|I[d+3|0]<<24);H[b+16>>2]=g;H[b+20>>2]=c;c=f;f=e+8|0;c=f>>>0<8?c+1|0:c;e=f;f=c;if(e>>>0>j>>>0&(c|0)>=(h|0)|(c|0)>(h|0)){break c}c=g+k|0;c=I[c|0]|I[c+1|0]<<8|(I[c+2|0]<<16|I[c+3|0]<<24);H[b+16>>2]=e;H[b+20>>2]=f;if((c|0)<(d|0)){break c}H[a+16>>2]=c;H[a+12>>2]=d;b=(c>>31)-((d>>31)+(c>>>0>>0)|0)|0;c=c-d|0;if(!b&c>>>0>2147483646|b){break c}l=1;b=c+1|0;H[a+20>>2]=b;c=b>>>1|0;H[a+24>>2]=c;H[a+28>>2]=0-c;if(b&1){break c}H[a+24>>2]=c-1}}fa=i+32|0;return l|0}function wg(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0;a=0;i=H[b+80>>2];e=I[c+24|0];g=N(i,e);a:{if(!e){break a}j=e<<2;a=sa(j);b=a;k=e&7;if(k){b=a;while(1){H[b>>2]=-1073741824;b=b+4|0;f=f+1|0;if((k|0)!=(f|0)){continue}break}}if((e-1&1073741823)>>>0<7){break a}f=a+j|0;while(1){H[b+24>>2]=-1073741824;H[b+28>>2]=-1073741824;H[b+16>>2]=-1073741824;H[b+20>>2]=-1073741824;H[b+8>>2]=-1073741824;H[b+12>>2]=-1073741824;H[b>>2]=-1073741824;H[b+4>>2]=-1073741824;b=b+32|0;if((f|0)!=(b|0)){continue}break}}f=H[d>>2];b=H[d+4>>2]-f>>2;b:{if(b>>>0>>0){Aa(d,g-b|0);break b}if(b>>>0<=g>>>0){break b}H[d+4>>2]=f+(g<<2)}c:{d:{e:{if(!i){break e}if(!e){b=0;h=1;while(1){if(!Ya(c,I[c+84|0]?b:H[H[c+68>>2]+(b<<2)>>2],F[c+24|0],a)){break e}b=b+1|0;h=i>>>0>b>>>0;if((b|0)!=(i|0)){continue}break}break e}n=e&252;j=e&3;f=0;o=e>>>0<4;h=1;while(1){if(!Ya(c,I[c+84|0]?l:H[H[c+68>>2]+(l<<2)>>2],F[c+24|0],a)){break e}k=H[d>>2];m=0;b=0;h=0;if(!o){while(1){e=k+(f<<2)|0;g=b<<2;L[e>>2]=L[g+a>>2];L[e+4>>2]=L[(g|4)+a>>2];L[e+8>>2]=L[(g|8)+a>>2];L[e+12>>2]=L[(g|12)+a>>2];b=b+4|0;f=f+4|0;h=h+4|0;if((n|0)!=(h|0)){continue}break}}if(j){while(1){L[k+(f<<2)>>2]=L[(b<<2)+a>>2];b=b+1|0;f=f+1|0;m=m+1|0;if((j|0)!=(m|0)){continue}break}}l=l+1|0;h=l>>>0>>0;if((i|0)!=(l|0)){continue}break}break d}if(!a){break c}}ra(a)}return(h^-1)&1}function lf(a){a=a|0;var b=0,c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0;e=fa-16|0;fa=e;h=ha[H[H[a>>2]+24>>2]](a)|0;a:{if((h|0)<=0){break a}l=a+48|0;i=1;while(1){b:{c:{if(!H[(ha[H[H[a>>2]+28>>2]](a)|0)+40>>2]){break c}j=f<<2;g=H[j+H[a+36>>2]>>2];b=H[g+8>>2];k=ub(g);if(!k){break c}g=H[(ha[H[H[a>>2]+28>>2]](a)|0)+40>>2];H[e+12>>2]=H[b+56>>2];b=sa(32);H[e>>2]=b;H[e+4>>2]=24;H[e+8>>2]=-2147483616;c=I[1206]|I[1207]<<8|(I[1208]<<16|I[1209]<<24);d=I[1202]|I[1203]<<8|(I[1204]<<16|I[1205]<<24);F[b+16|0]=d;F[b+17|0]=d>>>8;F[b+18|0]=d>>>16;F[b+19|0]=d>>>24;F[b+20|0]=c;F[b+21|0]=c>>>8;F[b+22|0]=c>>>16;F[b+23|0]=c>>>24;c=I[1198]|I[1199]<<8|(I[1200]<<16|I[1201]<<24);d=I[1194]|I[1195]<<8|(I[1196]<<16|I[1197]<<24);F[b+8|0]=d;F[b+9|0]=d>>>8;F[b+10|0]=d>>>16;F[b+11|0]=d>>>24;F[b+12|0]=c;F[b+13|0]=c>>>8;F[b+14|0]=c>>>16;F[b+15|0]=c>>>24;c=I[1190]|I[1191]<<8|(I[1192]<<16|I[1193]<<24);d=I[1186]|I[1187]<<8|(I[1188]<<16|I[1189]<<24);F[b|0]=d;F[b+1|0]=d>>>8;F[b+2|0]=d>>>16;F[b+3|0]=d>>>24;F[b+4|0]=c;F[b+5|0]=c>>>8;F[b+6|0]=c>>>16;F[b+7|0]=c>>>24;F[b+24|0]=0;b=rd(g,e+12|0,e);if(F[e+11|0]<0){ra(H[e>>2])}if(!b){break c}me(H[H[H[a+36>>2]+j>>2]+8>>2],k);break b}b=H[H[a+36>>2]+(f<<2)>>2];if(!(ha[H[H[b>>2]+24>>2]](b,l)|0)){break a}}f=f+1|0;i=(h|0)>(f|0);if((f|0)!=(h|0)){continue}break}}fa=e+16|0;return(i^-1)&1}function We(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0;j=fa-16|0;fa=j;c=H[b+20>>2];d=H[b+16>>2];g=d+4|0;c=g>>>0<4?c+1|0:c;e=H[b+12>>2];a:{if((e|0)<=(c|0)&g>>>0>K[b+8>>2]|(c|0)>(e|0)){break a}d=d+H[b>>2]|0;d=I[d|0]|I[d+1|0]<<8|(I[d+2|0]<<16|I[d+3|0]<<24);H[b+16>>2]=g;H[b+20>>2]=c;if((d|0)<0){break a}$a(a+76|0,d);c=j;H[c>>2]=0;H[c+4>>2]=0;F[c+5|0]=0;F[c+6|0]=0;F[c+7|0]=0;F[c+8|0]=0;F[c+9|0]=0;F[c+10|0]=0;F[c+11|0]=0;F[c+12|0]=0;b:{if(!wa(c,b)){break b}if(d){e=1;while(1){f=1<>2]+(h>>>3&536870908)|0;e=e^i;if(e&1){f=H[g>>2]&(f^-1)}else{f=f|H[g>>2]}e=e^1;H[g>>2]=f;h=h+1|0;if((d|0)!=(h|0)){continue}break}}h=0;d=H[b+12>>2];g=d;c=H[b+20>>2];e=c;f=H[b+16>>2];i=f+4|0;c=i>>>0<4?c+1|0:c;k=H[b+8>>2];if(k>>>0>>0&(c|0)>=(d|0)|(c|0)>(d|0)){break b}l=H[b>>2];d=l+f|0;d=I[d|0]|I[d+1|0]<<8|(I[d+2|0]<<16|I[d+3|0]<<24);H[b+16>>2]=i;H[b+20>>2]=c;c=e;e=f+8|0;c=e>>>0<8?c+1|0:c;f=e;e=c;if(f>>>0>k>>>0&(c|0)>=(g|0)|(c|0)>(g|0)){break b}c=i+l|0;c=I[c|0]|I[c+1|0]<<8|(I[c+2|0]<<16|I[c+3|0]<<24);H[b+16>>2]=f;H[b+20>>2]=e;if((c|0)<(d|0)){break b}H[a+16>>2]=c;H[a+12>>2]=d;b=(c>>31)-((d>>31)+(c>>>0>>0)|0)|0;c=c-d|0;if(!b&c>>>0>2147483646|b){break b}h=1;b=c+1|0;H[a+20>>2]=b;c=b>>>1|0;H[a+24>>2]=c;H[a+28>>2]=0-c;if(b&1){break b}H[a+24>>2]=c-1}}fa=j+16|0;return h|0}function rg(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0;k=fa-16|0;fa=k;i=H[b+80>>2];b=I[c+24|0];a=N(i,b);a:{b:{c:{d:{e=H[c+28>>2];if(!(!I[c+84|0]|(e|0)!=5&(e|0)!=6)){b=H[c+48>>2];c=H[H[c>>2]>>2];H[k+8>>2]=0;H[k>>2]=0;H[k+4>>2]=0;if(a){if((a|0)<0){break d}a=a<<2;f=sa(a);g=ta(f,b+c|0,a)+a|0}a=H[d>>2];if(a){H[d+4>>2]=a;ra(a)}H[d+8>>2]=g;H[d+4>>2]=g;H[d>>2]=f;a=1;break a}if(b){e=b<<2;f=sa(e);ua(f,0,e)}j=H[d>>2];e=H[d+4>>2]-j>>2;e:{if(e>>>0>>0){Aa(d,a-e|0);break e}if(a>>>0>=e>>>0){break e}H[d+4>>2]=j+(a<<2)}if(!i){break c}if(!b){a=0;h=1;while(1){if(!ec(c,I[c+84|0]?a:H[H[c+68>>2]+(a<<2)>>2],F[c+24|0],f)){break c}a=a+1|0;h=i>>>0>a>>>0;if((a|0)!=(i|0)){continue}break}break c}o=b&252;m=b&3;p=b>>>0<4;h=1;b=0;while(1){if(!ec(c,I[c+84|0]?b:H[H[c+68>>2]+(b<<2)>>2],F[c+24|0],f)){break c}n=H[d>>2];l=0;a=0;h=0;if(!p){while(1){e=(g<<2)+n|0;j=a<<2;H[e>>2]=H[j+f>>2];H[e+4>>2]=H[(j|4)+f>>2];H[e+8>>2]=H[(j|8)+f>>2];H[e+12>>2]=H[(j|12)+f>>2];a=a+4|0;g=g+4|0;h=h+4|0;if((o|0)!=(h|0)){continue}break}}if(m){while(1){H[(g<<2)+n>>2]=H[(a<<2)+f>>2];a=a+1|0;g=g+1|0;l=l+1|0;if((l|0)!=(m|0)){continue}break}}b=b+1|0;h=i>>>0>b>>>0;if((b|0)!=(i|0)){continue}break}a=b>>>0>=i>>>0;break b}va();v()}a=!h;if(!f){break a}}ra(f)}fa=k+16|0;return a&1}function ge(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0;k=fa-16|0;fa=k;i=H[b+80>>2];b=I[c+24|0];a=N(i,b);a:{b:{c:{d:{e=H[c+28>>2];if(!(!I[c+84|0]|(e|0)!=5&(e|0)!=6)){b=H[c+48>>2];c=H[H[c>>2]>>2];H[k+8>>2]=0;H[k>>2]=0;H[k+4>>2]=0;if(a){if((a|0)<0){break d}a=a<<2;f=sa(a);g=ta(f,b+c|0,a)+a|0}a=H[d>>2];if(a){H[d+4>>2]=a;ra(a)}H[d+8>>2]=g;H[d+4>>2]=g;H[d>>2]=f;a=1;break a}if(b){e=b<<2;f=sa(e);ua(f,0,e)}j=H[d>>2];e=H[d+4>>2]-j>>2;e:{if(e>>>0>>0){Aa(d,a-e|0);break e}if(a>>>0>=e>>>0){break e}H[d+4>>2]=j+(a<<2)}if(!i){break c}if(!b){a=0;h=1;while(1){if(!gc(c,I[c+84|0]?a:H[H[c+68>>2]+(a<<2)>>2],F[c+24|0],f)){break c}a=a+1|0;h=i>>>0>a>>>0;if((a|0)!=(i|0)){continue}break}break c}o=b&252;m=b&3;p=b>>>0<4;h=1;b=0;while(1){if(!gc(c,I[c+84|0]?b:H[H[c+68>>2]+(b<<2)>>2],F[c+24|0],f)){break c}n=H[d>>2];l=0;a=0;h=0;if(!p){while(1){e=(g<<2)+n|0;j=a<<2;H[e>>2]=H[j+f>>2];H[e+4>>2]=H[(j|4)+f>>2];H[e+8>>2]=H[(j|8)+f>>2];H[e+12>>2]=H[(j|12)+f>>2];a=a+4|0;g=g+4|0;h=h+4|0;if((o|0)!=(h|0)){continue}break}}if(m){while(1){H[(g<<2)+n>>2]=H[(a<<2)+f>>2];a=a+1|0;g=g+1|0;l=l+1|0;if((l|0)!=(m|0)){continue}break}}b=b+1|0;h=i>>>0>b>>>0;if((b|0)!=(i|0)){continue}break}a=b>>>0>=i>>>0;break b}va();v()}a=!h;if(!f){break a}}ra(f)}fa=k+16|0;return a&1}function tg(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0;k=fa-16|0;fa=k;i=H[b+80>>2];b=I[c+24|0];a=N(i,b);a:{b:{c:{d:{e=H[c+28>>2];if(!(!I[c+84|0]|(e|0)!=3&(e|0)!=4)){b=H[c+48>>2];c=H[H[c>>2]>>2];H[k+8>>2]=0;H[k>>2]=0;H[k+4>>2]=0;if(a){if((a|0)<0){break d}a=a<<1;f=sa(a);g=ta(f,b+c|0,a)+a|0}a=H[d>>2];if(a){H[d+4>>2]=a;ra(a)}H[d+8>>2]=g;H[d+4>>2]=g;H[d>>2]=f;a=1;break a}if(b){e=b<<1;f=sa(e);ua(f,0,e)}j=H[d>>2];e=H[d+4>>2]-j>>1;e:{if(e>>>0>>0){pe(d,a-e|0);break e}if(a>>>0>=e>>>0){break e}H[d+4>>2]=j+(a<<1)}if(!i){break c}if(!b){a=0;h=1;while(1){if(!ic(c,I[c+84|0]?a:H[H[c+68>>2]+(a<<2)>>2],F[c+24|0],f)){break c}a=a+1|0;h=i>>>0>a>>>0;if((a|0)!=(i|0)){continue}break}break c}o=b&252;m=b&3;p=b>>>0<4;h=1;b=0;while(1){if(!ic(c,I[c+84|0]?b:H[H[c+68>>2]+(b<<2)>>2],F[c+24|0],f)){break c}n=H[d>>2];l=0;a=0;h=0;if(!p){while(1){e=(g<<1)+n|0;j=a<<1;G[e>>1]=J[j+f>>1];G[e+2>>1]=J[(j|2)+f>>1];G[e+4>>1]=J[(j|4)+f>>1];G[e+6>>1]=J[(j|6)+f>>1];a=a+4|0;g=g+4|0;h=h+4|0;if((o|0)!=(h|0)){continue}break}}if(m){while(1){G[(g<<1)+n>>1]=J[(a<<1)+f>>1];a=a+1|0;g=g+1|0;l=l+1|0;if((l|0)!=(m|0)){continue}break}}b=b+1|0;h=i>>>0>b>>>0;if((b|0)!=(i|0)){continue}break}a=b>>>0>=i>>>0;break b}va();v()}a=!h;if(!f){break a}}ra(f)}fa=k+16|0;return a&1}function sg(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0;k=fa-16|0;fa=k;i=H[b+80>>2];b=I[c+24|0];a=N(i,b);a:{b:{c:{d:{e=H[c+28>>2];if(!(!I[c+84|0]|(e|0)!=3&(e|0)!=4)){b=H[c+48>>2];c=H[H[c>>2]>>2];H[k+8>>2]=0;H[k>>2]=0;H[k+4>>2]=0;if(a){if((a|0)<0){break d}a=a<<1;f=sa(a);g=ta(f,b+c|0,a)+a|0}a=H[d>>2];if(a){H[d+4>>2]=a;ra(a)}H[d+8>>2]=g;H[d+4>>2]=g;H[d>>2]=f;a=1;break a}if(b){e=b<<1;f=sa(e);ua(f,0,e)}j=H[d>>2];e=H[d+4>>2]-j>>1;e:{if(e>>>0>>0){pe(d,a-e|0);break e}if(a>>>0>=e>>>0){break e}H[d+4>>2]=j+(a<<1)}if(!i){break c}if(!b){a=0;h=1;while(1){if(!hc(c,I[c+84|0]?a:H[H[c+68>>2]+(a<<2)>>2],F[c+24|0],f)){break c}a=a+1|0;h=i>>>0>a>>>0;if((a|0)!=(i|0)){continue}break}break c}o=b&252;m=b&3;p=b>>>0<4;h=1;b=0;while(1){if(!hc(c,I[c+84|0]?b:H[H[c+68>>2]+(b<<2)>>2],F[c+24|0],f)){break c}n=H[d>>2];l=0;a=0;h=0;if(!p){while(1){e=(g<<1)+n|0;j=a<<1;G[e>>1]=J[j+f>>1];G[e+2>>1]=J[(j|2)+f>>1];G[e+4>>1]=J[(j|4)+f>>1];G[e+6>>1]=J[(j|6)+f>>1];a=a+4|0;g=g+4|0;h=h+4|0;if((o|0)!=(h|0)){continue}break}}if(m){while(1){G[(g<<1)+n>>1]=J[(a<<1)+f>>1];a=a+1|0;g=g+1|0;l=l+1|0;if((l|0)!=(m|0)){continue}break}}b=b+1|0;h=i>>>0>b>>>0;if((b|0)!=(i|0)){continue}break}a=b>>>0>=i>>>0;break b}va();v()}a=!h;if(!f){break a}}ra(f)}fa=k+16|0;return a&1}function Ae(a,b){var c=0,d=0,e=0,f=0,g=0;f=-1;d=-1;a:{if((b|0)==-1){break a}d=b+1|0;f=(d>>>0)%3|0?d:b-2|0;d=b-1|0;if((b>>>0)%3|0){break a}d=b+2|0}b:{c:{d:{switch(H[a+168>>2]){case 0:case 1:e=H[a+148>>2];c=1;b=H[a+156>>2];g=b+(((f|0)==-1?-1:H[H[e>>2]+(f<<2)>>2])<<2)|0;H[g>>2]=H[g>>2]+1;b=(((d|0)==-1?-1:H[H[e>>2]+(d<<2)>>2])<<2)+b|0;break c;case 5:e=H[a+148>>2];c=-1;c=((b|0)!=-1?H[H[e>>2]+(b<<2)>>2]:c)<<2;b=H[a+156>>2];c=c+b|0;H[c>>2]=H[c>>2]+1;c=(((f|0)==-1?-1:H[H[e>>2]+(f<<2)>>2])<<2)+b|0;H[c>>2]=H[c>>2]+1;c=2;b=(((d|0)==-1?-1:H[H[e>>2]+(d<<2)>>2])<<2)+b|0;break c;case 3:e=H[a+148>>2];c=-1;c=((b|0)!=-1?H[H[e>>2]+(b<<2)>>2]:c)<<2;b=H[a+156>>2];c=c+b|0;H[c>>2]=H[c>>2]+1;c=(((f|0)==-1?-1:H[H[e>>2]+(f<<2)>>2])<<2)+b|0;H[c>>2]=H[c>>2]+2;c=1;b=(((d|0)==-1?-1:H[H[e>>2]+(d<<2)>>2])<<2)+b|0;break c;case 7:break d;default:break b}}e=H[a+148>>2];c=-1;c=((b|0)!=-1?H[H[e>>2]+(b<<2)>>2]:c)<<2;b=H[a+156>>2];c=c+b|0;H[c>>2]=H[c>>2]+2;c=(((f|0)==-1?-1:H[H[e>>2]+(f<<2)>>2])<<2)+b|0;H[c>>2]=H[c>>2]+2;c=2;b=(((d|0)==-1?-1:H[H[e>>2]+(d<<2)>>2])<<2)+b|0}H[b>>2]=H[b>>2]+c}c=a;b=H[H[a+156>>2]+(((f|0)==-1?-1:H[H[H[a+148>>2]>>2]+(f<<2)>>2])<<2)>>2];d=H[a+180>>2];a=H[a+176>>2];H[c+172>>2]=(a|0)<=(b|0)?((b|0)<(d|0)?b:d)-a|0:0}function Ch(a){a=a|0;var b=0,c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0;a:{c=H[a+32>>2];e=H[c+8>>2];f=H[c+12>>2];d=H[c+20>>2];g=e;e=H[c+16>>2];b=0;b:{if((f|0)<=(d|0)&g>>>0<=e>>>0|(d|0)>(f|0)){break b}g=I[e+H[c>>2]|0];f=e+1|0;d=f?d:d+1|0;H[c+16>>2]=f;H[c+20>>2]=d;c:{if(!g){break c}while(1){if(ha[H[H[a>>2]+16>>2]](a,b)|0){b=b+1|0;if((g|0)!=(b|0)){continue}break c}break}return 0}b=H[a+8>>2];d=H[a+12>>2];if((b|0)!=(d|0)){while(1){c=H[b>>2];if(!(ha[H[H[c>>2]+8>>2]](c,a,H[a+4>>2])|0)){break a}b=b+4|0;if((d|0)!=(b|0)){continue}break}}d:{if(!g){break d}b=0;while(1){c=H[H[a+8>>2]+(b<<2)>>2];if(!(ha[H[H[c>>2]+12>>2]](c,H[a+32>>2])|0)){break a}b=b+1|0;if((g|0)!=(b|0)){continue}break}if(!g){break d}e=a+20|0;while(1){b=0;f=h<<2;c=H[f+H[a+8>>2]>>2];d=ha[H[H[c>>2]+24>>2]](c)|0;if((d|0)>0){while(1){c=H[H[a+8>>2]+f>>2];k=ha[H[H[c>>2]+20>>2]](c,b)|0;i=H[a+20>>2];j=H[a+24>>2]-i>>2;e:{if(k>>>0>>0){break e}c=k+1|0;if(c>>>0>j>>>0){Aa(e,c-j|0);i=H[e>>2];break e}if(c>>>0>=j>>>0){break e}H[a+24>>2]=(c<<2)+i}H[(k<<2)+i>>2]=h;b=b+1|0;if((d|0)!=(b|0)){continue}break}}h=h+1|0;if((g|0)!=(h|0)){continue}break}}b=0;if(!(ha[H[H[a>>2]+28>>2]](a)|0)){break b}b=ha[H[H[a>>2]+32>>2]](a)|0}return b|0}return 0}function wa(a,b){var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0;i=fa-16|0;fa=i;e=H[b+20>>2];c=H[b+12>>2];g=H[b+16>>2];a:{if((e|0)>=(c|0)&g>>>0>=K[b+8>>2]|(c|0)<(e|0)){break a}F[a+12|0]=I[g+H[b>>2]|0];e=H[b+20>>2];c=e;g=H[b+16>>2];d=g+1|0;e=d?c:c+1|0;h=d;H[b+16>>2]=d;H[b+20>>2]=e;b:{if(J[b+38>>1]<=513){f=H[b+12>>2];e=c;c=g+5|0;e=c>>>0<5?e+1|0:e;d=H[b+8>>2];g=c;if(d>>>0>>0&(e|0)>=(f|0)|(e|0)>(f|0)){break a}c=h+H[b>>2]|0;c=I[c|0]|I[c+1|0]<<8|(I[c+2|0]<<16|I[c+3|0]<<24);H[b+16>>2]=g;H[b+20>>2]=e;break b}if(!Oe(1,i+12|0,b)){break a}g=H[b+16>>2];e=H[b+20>>2];d=H[b+8>>2];f=H[b+12>>2];c=H[i+12>>2]}h=d-g|0;d=f-(e+(d>>>0>>0)|0)|0;if((d|0)<=0&c>>>0>h>>>0|(d|0)<0|(c|0)<=0){break a}d=g+H[b>>2]|0;H[a>>2]=d;c:{d:{f=c-1|0;h=f+d|0;j=I[h|0];e:{if(j>>>0<=63){H[a+4>>2]=f;d=I[h|0]&63;break e}f:{switch((j>>>6|0)-1|0){case 1:break d;case 0:break f;default:break a}}if(c>>>0<2){break a}f=c-2|0;H[a+4>>2]=f;d=d+f|0;d=I[d+1|0]<<8&16128|I[d|0]}H[a+8>>2]=d+4096;break c}if(c>>>0<3){break a}f=c-3|0;H[a+4>>2]=f;h=a;a=d+f|0;a=I[a+1|0]<<8|I[a+2|0]<<16&4128768|I[a|0];H[h+8>>2]=a+4096;if(a>>>0>1044479){break a}}a=c+g|0;e=a>>>0>>0?e+1|0:e;H[b+16>>2]=a;H[b+20>>2]=e;k=1}fa=i+16|0;return k}function Wf(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0;Wd(a,b,c);c=H[a+84>>2];d=H[a+88>>2]-c>>2;a:{if((d|0)>(b|0)){break a}b=b+1|0;if(b>>>0>d>>>0){b:{d=b-d|0;e=H[a+92>>2];c=H[a+88>>2];if(d>>>0<=e-c>>2>>>0){c:{if(!d){break c}b=c;f=d&7;if(f){while(1){H[b>>2]=1;b=b+4|0;g=g+1|0;if((f|0)!=(g|0)){continue}break}}c=(d<<2)+c|0;if((d-1&1073741823)>>>0<7){break c}while(1){H[b+24>>2]=1;H[b+28>>2]=1;H[b+16>>2]=1;H[b+20>>2]=1;H[b+8>>2]=1;H[b+12>>2]=1;H[b>>2]=1;H[b+4>>2]=1;b=b+32|0;if((c|0)!=(b|0)){continue}break}}H[a+88>>2]=c;break b}d:{f=H[a+84>>2];j=c-f|0;c=j>>2;b=c+d|0;if(b>>>0<1073741824){e=e-f|0;h=e>>1;e=e>>>0>=2147483644?1073741823:b>>>0>>0?h:b;if(e){if(e>>>0>=1073741824){break d}i=sa(e<<2)}c=(c<<2)+i|0;b=c;h=d&7;if(h){b=c;while(1){H[b>>2]=1;b=b+4|0;g=g+1|0;if((h|0)!=(g|0)){continue}break}}c=c+(d<<2)|0;if((d-1&1073741823)>>>0>=7){while(1){H[b+24>>2]=1;H[b+28>>2]=1;H[b+16>>2]=1;H[b+20>>2]=1;H[b+8>>2]=1;H[b+12>>2]=1;H[b>>2]=1;H[b+4>>2]=1;b=b+32|0;if((c|0)!=(b|0)){continue}break}}if((j|0)>0){ta(i,f,j)}H[a+92>>2]=(e<<2)+i;H[a+88>>2]=c;H[a+84>>2]=i;if(f){ra(f)}break b}va();v()}za();v()}return}if(b>>>0>=d>>>0){break a}H[a+88>>2]=c+(b<<2)}}function Jc(a,b,c){var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0;d=H[a+8>>2];e=H[a>>2];if(d-e>>2>>>0>=b>>>0){f=H[a+4>>2];h=f-e>>2;i=b>>>0>h>>>0?h:b;a:{if(!i){break a}d=e;g=i;j=g&7;if(j){while(1){H[d>>2]=H[c>>2];g=g-1|0;d=d+4|0;k=k+1|0;if((k|0)!=(j|0)){continue}break}}if(i>>>0<8){break a}while(1){H[d>>2]=H[c>>2];H[d+4>>2]=H[c>>2];H[d+8>>2]=H[c>>2];H[d+12>>2]=H[c>>2];H[d+16>>2]=H[c>>2];H[d+20>>2]=H[c>>2];H[d+24>>2]=H[c>>2];H[d+28>>2]=H[c>>2];d=d+32|0;g=g-8|0;if(g){continue}break}}if(b>>>0>h>>>0){b=(b-h<<2)+f|0;while(1){H[f>>2]=H[c>>2];f=f+4|0;if((b|0)!=(f|0)){continue}break}H[a+4>>2]=b;return}H[a+4>>2]=e+(b<<2);return}if(e){H[a+4>>2]=e;ra(e);H[a+8>>2]=0;H[a>>2]=0;H[a+4>>2]=0;d=0}b:{if(b>>>0>=1073741824){break b}e=d>>1;d=d>>>0>=2147483644?1073741823:b>>>0>>0?e:b;if(d>>>0>=1073741824){break b}d=d<<2;e=sa(d);H[a>>2]=e;H[a+8>>2]=d+e;c=H[c>>2];d=e;g=b&7;if(g){while(1){H[d>>2]=c;d=d+4|0;f=f+1|0;if((g|0)!=(f|0)){continue}break}}e=e+(b<<2)|0;if((b-1&1073741823)>>>0>=7){while(1){H[d+28>>2]=c;H[d+24>>2]=c;H[d+20>>2]=c;H[d+16>>2]=c;H[d+12>>2]=c;H[d+8>>2]=c;H[d+4>>2]=c;H[d>>2]=c;d=d+32|0;if((e|0)!=(d|0)){continue}break}}H[a+4>>2]=e;return}va();v()}function Ke(a,b){var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0;h=fa-16|0;fa=h;a:{b:{if(J[b+38>>1]<=511){g=H[b+12>>2];i=g;c=H[b+20>>2];e=H[b+16>>2];d=e+8|0;c=d>>>0<8?c+1|0:c;f=H[b+8>>2];if(f>>>0>>0&(c|0)>=(g|0)|(c|0)>(g|0)){break a}e=e+H[b>>2]|0;g=I[e|0]|I[e+1|0]<<8|(I[e+2|0]<<16|I[e+3|0]<<24);e=I[e+4|0]|I[e+5|0]<<8|(I[e+6|0]<<16|I[e+7|0]<<24);H[b+16>>2]=d;H[b+20>>2]=c;break b}if(!jb(1,h+8|0,b)){break a}d=H[b+16>>2];c=H[b+20>>2];f=H[b+8>>2];i=H[b+12>>2];g=H[h+8>>2];e=H[h+12>>2]}j=f-d|0;f=i-(c+(d>>>0>f>>>0)|0)|0;if((f|0)==(e|0)&g>>>0>j>>>0|e>>>0>f>>>0){break a}c=c+e|0;f=d+g|0;c=f>>>0>>0?c+1|0:c;H[b+16>>2]=f;H[b+20>>2]=c;c=g;if((c|0)<=0){break a}b=d+H[b>>2]|0;H[a+40>>2]=b;d=c-1|0;g=b+d|0;f=I[g|0];c:{if(f>>>0<=63){H[a+44>>2]=d;b=I[g|0]&63;break c}d:{switch((f>>>6|0)-1|0){case 0:if(c>>>0<2){break a}d=c-2|0;H[a+44>>2]=d;b=b+d|0;b=I[b+1|0]<<8&16128|I[b|0];break c;case 1:if(c>>>0<3){break a}d=c-3|0;H[a+44>>2]=d;b=b+d|0;b=I[b+1|0]<<8|I[b+2|0]<<16&4128768|I[b|0];break c;default:break d}}d=c-4|0;H[a+44>>2]=d;b=b+d|0;b=I[b+2|0]<<16|I[b+3|0]<<24&1056964608|I[b+1|0]<<8|I[b|0]}H[a+48>>2]=b+16384;k=b>>>0<4177920}fa=h+16|0;return k}function ta(a,b,c){var d=0,e=0,f=0;if(c>>>0>=512){ea(a|0,b|0,c|0);return a}e=a+c|0;a:{if(!((a^b)&3)){b:{if(!(a&3)){c=a;break b}if(!c){c=a;break b}c=a;while(1){F[c|0]=I[b|0];b=b+1|0;c=c+1|0;if(!(c&3)){break b}if(c>>>0>>0){continue}break}}d=e&-4;c:{if(d>>>0<64){break c}f=d+-64|0;if(f>>>0>>0){break c}while(1){H[c>>2]=H[b>>2];H[c+4>>2]=H[b+4>>2];H[c+8>>2]=H[b+8>>2];H[c+12>>2]=H[b+12>>2];H[c+16>>2]=H[b+16>>2];H[c+20>>2]=H[b+20>>2];H[c+24>>2]=H[b+24>>2];H[c+28>>2]=H[b+28>>2];H[c+32>>2]=H[b+32>>2];H[c+36>>2]=H[b+36>>2];H[c+40>>2]=H[b+40>>2];H[c+44>>2]=H[b+44>>2];H[c+48>>2]=H[b+48>>2];H[c+52>>2]=H[b+52>>2];H[c+56>>2]=H[b+56>>2];H[c+60>>2]=H[b+60>>2];b=b- -64|0;c=c- -64|0;if(f>>>0>=c>>>0){continue}break}}if(c>>>0>=d>>>0){break a}while(1){H[c>>2]=H[b>>2];b=b+4|0;c=c+4|0;if(d>>>0>c>>>0){continue}break}break a}if(e>>>0<4){c=a;break a}d=e-4|0;if(d>>>0>>0){c=a;break a}c=a;while(1){F[c|0]=I[b|0];F[c+1|0]=I[b+1|0];F[c+2|0]=I[b+2|0];F[c+3|0]=I[b+3|0];b=b+4|0;c=c+4|0;if(d>>>0>=c>>>0){continue}break}}if(c>>>0>>0){while(1){F[c|0]=I[b|0];b=b+1|0;c=c+1|0;if((e|0)!=(c|0)){continue}break}}return a}function Ia(a,b,c){var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0;f=H[a+8>>2];e=H[a+4>>2];if(f-e>>2>>>0>=b>>>0){a:{if(!b){break a}d=e;g=b&7;if(g){while(1){H[d>>2]=H[c>>2];d=d+4|0;h=h+1|0;if((g|0)!=(h|0)){continue}break}}e=(b<<2)+e|0;if((b-1&1073741823)>>>0<7){break a}while(1){H[d>>2]=H[c>>2];H[d+4>>2]=H[c>>2];H[d+8>>2]=H[c>>2];H[d+12>>2]=H[c>>2];H[d+16>>2]=H[c>>2];H[d+20>>2]=H[c>>2];H[d+24>>2]=H[c>>2];H[d+28>>2]=H[c>>2];d=d+32|0;if((e|0)!=(d|0)){continue}break}}H[a+4>>2]=e;return}b:{g=H[a>>2];k=e-g|0;e=k>>2;d=e+b|0;if(d>>>0<1073741824){f=f-g|0;i=f>>1;f=f>>>0>=2147483644?1073741823:d>>>0>>0?i:d;if(f){if(f>>>0>=1073741824){break b}j=sa(f<<2)}e=(e<<2)+j|0;d=e;i=b&7;if(i){d=e;while(1){H[d>>2]=H[c>>2];d=d+4|0;h=h+1|0;if((i|0)!=(h|0)){continue}break}}e=e+(b<<2)|0;if((b-1&1073741823)>>>0>=7){while(1){H[d>>2]=H[c>>2];H[d+4>>2]=H[c>>2];H[d+8>>2]=H[c>>2];H[d+12>>2]=H[c>>2];H[d+16>>2]=H[c>>2];H[d+20>>2]=H[c>>2];H[d+24>>2]=H[c>>2];H[d+28>>2]=H[c>>2];d=d+32|0;if((e|0)!=(d|0)){continue}break}}if((k|0)>0){ta(j,g,k)}H[a+8>>2]=(f<<2)+j;H[a+4>>2]=e;H[a>>2]=j;if(g){ra(g)}return}va();v()}za();v()}function xb(a,b){var c=0,d=0,e=0,f=0,g=0;d=fa-16|0;fa=d;H[a+12>>2]=b;H[a+8>>2]=0;H[a>>2]=0;H[a+4>>2]=0;c=a+16|0;H[c>>2]=0;H[c+4>>2]=0;F[c+5|0]=0;F[c+6|0]=0;F[c+7|0]=0;F[c+8|0]=0;F[c+9|0]=0;F[c+10|0]=0;F[c+11|0]=0;F[c+12|0]=0;H[a+32>>2]=0;H[a+36>>2]=0;H[a+48>>2]=0;H[a+40>>2]=0;H[a+44>>2]=0;H[a+52>>2]=0;H[a+56>>2]=0;H[a+68>>2]=0;H[a+60>>2]=0;H[a+64>>2]=0;H[a+72>>2]=0;H[a+76>>2]=0;H[a+88>>2]=0;H[a+80>>2]=0;H[a+84>>2]=0;H[a+100>>2]=0;H[a+92>>2]=0;H[a+96>>2]=0;g=a+116|0;a:{b:{if(b){if(b>>>0<1073741824){break b}va();v()}H[a+104>>2]=0;H[a+108>>2]=0;H[a+112>>2]=0;H[d+8>>2]=0;H[d>>2]=0;H[d+4>>2]=0;c=1;break a}c=b<<2;e=sa(c);H[a+92>>2]=e;f=c+e|0;H[a+100>>2]=f;ua(e,0,c);H[a+112>>2]=0;H[a+104>>2]=0;H[a+108>>2]=0;H[a+96>>2]=f;e=sa(c);H[a+104>>2]=e;f=c+e|0;H[a+112>>2]=f;ua(e,0,c);H[a+108>>2]=f;e=sa(c);H[d>>2]=e;f=c+e|0;H[d+8>>2]=f;ua(e,0,c);H[d+4>>2]=f;c=b<<5|1}wb(g,c,d);e=H[d>>2];if(e){H[d+4>>2]=e;ra(e)}H[d+8>>2]=0;H[d>>2]=0;H[d+4>>2]=0;if(b){b=b<<2;e=sa(b);H[d>>2]=e;f=b+e|0;H[d+8>>2]=f;ua(e,0,b);H[d+4>>2]=f}wb(a+128|0,c,d);b=H[d>>2];if(b){H[d+4>>2]=b;ra(b)}fa=d+16|0;return a}function xe(a){a=a|0;var b=0,c=0,d=0,e=0,f=0;H[a>>2]=11484;d=a+232|0;b=H[d+196>>2];if(b){H[d+200>>2]=b;ra(b)}c=H[d+184>>2];if(c){b=c;e=H[d+188>>2];if((b|0)!=(e|0)){while(1){b=e-12|0;f=H[b>>2];if(f){H[e-8>>2]=f;ra(f)}e=b;if((b|0)!=(c|0)){continue}break}b=H[d+184>>2]}H[d+188>>2]=c;ra(b)}b=H[d+156>>2];if(b){H[d+160>>2]=b;ra(b)}c=H[d+136>>2];H[d+136>>2]=0;if(c){e=c-4|0;b=H[e>>2];if(b){b=c+(b<<4)|0;while(1){b=b-16|0;if((c|0)!=(b|0)){continue}break}}ra(e)}Wc(a+216|0);b=H[a+196>>2];if(b){H[a+200>>2]=b;ra(b)}b=H[a+184>>2];if(b){H[a+188>>2]=b;ra(b)}b=H[a+172>>2];if(b){H[a+176>>2]=b;ra(b)}b=H[a+160>>2];if(b){H[a+164>>2]=b;ra(b)}b=H[a+144>>2];if(b){while(1){c=H[b>>2];ra(b);b=c;if(b){continue}break}}b=H[a+136>>2];H[a+136>>2]=0;if(b){ra(b)}b=H[a+120>>2];if(b){ra(b)}b=H[a+108>>2];if(b){ra(b)}b=H[a+96>>2];if(b){ra(b)}b=H[a+72>>2];if(b){H[a+76>>2]=b;ra(b)}b=H[a+60>>2];if(b){ra(b)}b=H[a+48>>2];if(b){H[a+52>>2]=b;ra(b)}b=H[a+36>>2];if(b){H[a+40>>2]=b;ra(b)}b=H[a+24>>2];if(b){H[a+28>>2]=b;ra(b)}b=H[a+12>>2];if(b){H[a+16>>2]=b;ra(b)}b=H[a+8>>2];H[a+8>>2]=0;if(b){fb(b)}return a|0}function Bc(a,b){var c=0,d=0,e=0,f=0,g=0,h=0,i=0;H[a+16>>2]=0;H[a+20>>2]=0;H[a+8>>2]=0;H[a>>2]=0;H[a+4>>2]=0;H[a+24>>2]=0;c=H[b+4>>2];g=H[b>>2];e=c-g|0;f=(e|0)/20|0;a:{if((c|0)==(g|0)){break a}b:{if(f>>>0<214748365){c=sa(e);H[a+16>>2]=c;H[a+20>>2]=c;H[a+24>>2]=c+N(f,20);f=H[b>>2];b=H[b+4>>2]-f|0;if((b|0)<=0){break a}f=ta(c,f,b);g=0;H[a+28>>2]=0;H[a+20>>2]=f+N((b>>>0)/20|0,20);b=(b|0)/20|0;e=b>>>0<=1?1:b;h=e&3;b=0;c=0;if(e-1>>>0>=3){i=e&-4;e=0;while(1){d=f+N(b,20)|0;d=N(H[d+16>>2],H[d+12>>2]);c=c>>>0>d>>>0?c:d;d=f+N(b|1,20)|0;d=N(H[d+16>>2],H[d+12>>2]);c=c>>>0>d>>>0?c:d;d=f+N(b|2,20)|0;d=N(H[d+16>>2],H[d+12>>2]);c=c>>>0>d>>>0?c:d;d=f+N(b|3,20)|0;d=N(H[d+16>>2],H[d+12>>2]);c=c>>>0>d>>>0?c:d;b=b+4|0;e=e+4|0;if((i|0)!=(e|0)){continue}break}}if(h){while(1){e=f+N(b,20)|0;e=N(H[e+16>>2],H[e+12>>2]);c=c>>>0>e>>>0?c:e;b=b+1|0;g=g+1|0;if((h|0)!=(g|0)){continue}break}}if(!c){H[a+12>>2]=0;return a}if((c|0)<0){break b}b=ua(sa(c),0,c);c=b+c|0;H[a+8>>2]=c;H[a+4>>2]=c;H[a>>2]=b;H[a+12>>2]=b;return a}va();v()}va();v()}H[a+28>>2]=0;H[a+12>>2]=0;return a}function Pj(a,b,c,d){var e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0;g=c;a:{b:{c:{d:{e:{f:{g:{h:{i:{j:{k:{if(b){if(!g){break k}if(!d){break j}c=Q(d)-Q(b)|0;if(c>>>0<=31){break i}break c}if((d|0)==1|d>>>0>1){break c}a=(a>>>0)/(g>>>0)|0;ga=0;break a}if(!a){break h}if(!d){break g}if(d-1&d){break g}a=b>>>Sj(d)|0;ga=0;break a}if(!(g-1&g)){break f}h=(Q(g)+33|0)-Q(b)|0;e=0-h|0;break d}h=c+1|0;e=63-c|0;break d}a=(b>>>0)/(d>>>0)|0;ga=0;break a}c=Q(d)-Q(b)|0;if(c>>>0<31){break e}break c}if((g|0)==1){break b}c=Sj(g);d=c&31;if((c&63)>>>0>=32){c=0;a=b>>>d|0}else{c=b>>>d|0;a=((1<>>d}ga=c;break a}h=c+1|0;e=63-c|0}c=h&63;f=c&31;if(c>>>0>=32){c=0;i=b>>>f|0}else{c=b>>>f|0;i=((1<>>f}f=c;c=e&63;e=c&31;if(c>>>0>=32){c=a<>>32-e|b<>>31;f=f<<1|i>>>31;j=m-(f+(c>>>0>e>>>0)|0)>>31;k=g&j;i=c-k|0;f=f-((d&j)+(c>>>0>>0)|0)|0;b=b<<1|a>>>31;a=l|a<<1;l=j&1;h=h-1|0;if(h){continue}break}}ga=b<<1|a>>>31;a=l|a<<1;break a}a=0;b=0}ga=b}return a}function zb(a,b){var c=0,d=0,e=0,f=0,g=0;c=fa-16|0;fa=c;H[a+12>>2]=b;H[a+8>>2]=0;H[a>>2]=0;H[a+4>>2]=0;H[a+16>>2]=0;H[a+20>>2]=0;H[a+32>>2]=0;H[a+24>>2]=0;H[a+28>>2]=0;H[a+36>>2]=0;H[a+40>>2]=0;H[a+52>>2]=0;H[a+44>>2]=0;H[a+48>>2]=0;H[a+56>>2]=0;H[a+60>>2]=0;H[a+72>>2]=0;H[a+64>>2]=0;H[a+68>>2]=0;H[a+76>>2]=0;H[a+80>>2]=0;H[a+92>>2]=0;H[a+84>>2]=0;H[a+88>>2]=0;H[a+104>>2]=0;H[a+96>>2]=0;H[a+100>>2]=0;g=a+120|0;a:{b:{if(b){if(b>>>0<1073741824){break b}va();v()}H[a+108>>2]=0;H[a+112>>2]=0;H[a+116>>2]=0;H[c+8>>2]=0;H[c>>2]=0;H[c+4>>2]=0;e=1;break a}e=b<<2;d=sa(e);H[a+96>>2]=d;f=d+e|0;H[a+104>>2]=f;ua(d,0,e);H[a+116>>2]=0;H[a+108>>2]=0;H[a+112>>2]=0;H[a+100>>2]=f;d=sa(e);H[a+108>>2]=d;f=d+e|0;H[a+116>>2]=f;ua(d,0,e);H[a+112>>2]=f;d=sa(e);H[c>>2]=d;f=d+e|0;H[c+8>>2]=f;ua(d,0,e);H[c+4>>2]=f;e=b<<5|1}wb(g,e,c);d=H[c>>2];if(d){H[c+4>>2]=d;ra(d)}H[c+8>>2]=0;H[c>>2]=0;H[c+4>>2]=0;if(b){b=b<<2;d=sa(b);H[c>>2]=d;f=b+d|0;H[c+8>>2]=f;ua(d,0,b);H[c+4>>2]=f}wb(a+132|0,e,c);b=H[c>>2];if(b){H[c+4>>2]=b;ra(b)}fa=c+16|0;return a}function Ub(a,b){var c=0,d=0,e=0;c=(a|0)==(b|0);F[b+12|0]=c;a:{if(c){break a}while(1){d=H[b+8>>2];if(I[d+12|0]){break a}b:{c=H[d+8>>2];e=H[c>>2];if((e|0)==(d|0)){e=H[c+4>>2];if(!(!e|I[e+12|0])){break b}c:{if(H[d>>2]==(b|0)){b=d;break c}b=H[d+4>>2];a=H[b>>2];H[d+4>>2]=a;if(a){H[a+8>>2]=d;c=H[d+8>>2]}H[b+8>>2]=c;a=H[d+8>>2];H[((H[a>>2]!=(d|0))<<2)+a>>2]=b;H[b>>2]=d;H[d+8>>2]=b;c=H[b+8>>2];d=H[c>>2]}F[b+12|0]=1;F[c+12|0]=0;a=H[d+4>>2];H[c>>2]=a;if(a){H[a+8>>2]=c}H[d+8>>2]=H[c+8>>2];a=H[c+8>>2];H[((H[a>>2]!=(c|0))<<2)+a>>2]=d;H[d+4>>2]=c;H[c+8>>2]=d;return}if(!(I[e+12|0]|!e)){break b}d:{if(H[d>>2]!=(b|0)){b=d;break d}a=H[b+4>>2];H[d>>2]=a;if(a){H[a+8>>2]=d;c=H[d+8>>2]}H[b+8>>2]=c;a=H[d+8>>2];H[((H[a>>2]!=(d|0))<<2)+a>>2]=b;H[b+4>>2]=d;H[d+8>>2]=b;c=H[b+8>>2]}F[b+12|0]=1;F[c+12|0]=0;a=H[c+4>>2];b=H[a>>2];H[c+4>>2]=b;if(b){H[b+8>>2]=c}H[a+8>>2]=H[c+8>>2];b=H[c+8>>2];H[((H[b>>2]!=(c|0))<<2)+b>>2]=a;H[a>>2]=c;H[c+8>>2]=a;break a}F[d+12|0]=1;F[c+12|0]=(a|0)==(c|0);F[e+12|0]=1;b=c;if((c|0)!=(a|0)){continue}break}}}function sc(a,b,c,d){var e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0;k=H[b+16>>2];h=H[c+4>>2]-k|0;e=h;f=H[c>>2]-k|0;H[c>>2]=f;H[c+4>>2]=e;g=H[b+16>>2];e=e>>31;i=(e^h)-e|0;e=f>>31;l=g>>>0>=i+((e^f)-e|0)>>>0;a:{if(l){e=h;break a}b:{c:{if((f|0)>=0){e=1;i=1;if((h|0)>=0){break b}j=1;e=-1;i=-1;if(f){break c}break b}j=-1;e=-1;i=-1;if((h|0)<=0){break b}}e=(h|0)<=0?-1:1;i=j}j=N(g,i);f=(f<<1)-j|0;i=(N(e,i)|0)>=0;g=N(e,g);e=((i?0-f|0:f)+g|0)/2|0;H[c+4>>2]=e;m=c;c=(h<<1)-g|0;f=(j+(i?0-c|0:c)|0)/2|0;H[m>>2]=f;g=H[b+16>>2]}c=H[d+4>>2]+e|0;f=H[d>>2]+f|0;d:{if((g|0)<(f|0)){f=f-H[b+4>>2]|0;break d}if((0-g|0)<=(f|0)){break d}f=H[b+4>>2]+f|0}e:{if((c|0)>(g|0)){c=c-H[b+4>>2]|0;break e}if((0-g|0)<=(c|0)){break e}c=H[b+4>>2]+c|0}f:{if(l){g=c;break f}g:{h:{if((f|0)>=0){b=1;e=1;if((c|0)>=0){break g}d=1;b=-1;e=-1;if(f){break h}break g}d=-1;b=-1;e=-1;if((c|0)<=0){break g}}b=(c|0)<=0?-1:1;e=d}d=N(e,g);h=(f<<1)-d|0;e=(N(b,e)|0)>=0;b=N(b,g);g=((e?0-h|0:h)+b|0)/2|0;b=(c<<1)-b|0;f=(d+(e?0-b|0:b)|0)/2|0}H[a>>2]=f+k;H[a+4>>2]=g+k}function re(a,b,c,d){var e=0,f=0,g=0,h=0,i=0,j=0;a:{b:{c:{if(!b){if((d|0)<0){break a}e=H[a+4>>2];b=H[a>>2];d=e-b|0;if(c>>>0>d>>>0){g=c-d|0;f=H[a+8>>2];if(g>>>0<=f-e>>>0){i=a,j=ua(e,0,g)+g|0,H[i+4>>2]=j;break c}if((c|0)<0){break b}e=f-b|0;f=e<<1;f=e>>>0>=1073741823?2147483647:c>>>0>>0?f:c;e=sa(f);ua(e+d|0,0,g);if((d|0)>0){ta(e,b,d)}H[a+8>>2]=e+f;H[a+4>>2]=c+e;H[a>>2]=e;if(!b){break c}ra(b);break c}if(c>>>0>=d>>>0){break c}H[a+4>>2]=b+c;break c}if((d|0)<0){break a}h=H[a+4>>2];g=H[a>>2];e=h-g|0;d:{if((d|0)<=0&c>>>0<=e>>>0|(d|0)<0){break d}if(c>>>0>e>>>0){f=c-e|0;d=H[a+8>>2];if(f>>>0<=d-h>>>0){i=a,j=ua(h,0,f)+f|0,H[i+4>>2]=j;break d}if((c|0)<0){break b}d=d-g|0;h=d<<1;h=d>>>0>=1073741823?2147483647:c>>>0>>0?h:c;d=sa(h);ua(d+e|0,0,f);if((e|0)>0){ta(d,g,e)}H[a+8>>2]=d+h;H[a+4>>2]=c+d;H[a>>2]=d;if(!g){break d}ra(g);break d}if(c>>>0>=e>>>0){break d}H[a+4>>2]=c+g}if(!c){break c}Sa(H[a>>2],b,c)}b=H[a+28>>2];c=H[a+24>>2]+1|0;b=c?b:b+1|0;H[a+24>>2]=c;H[a+28>>2]=b;e=1;break a}va();v()}return e}function pf(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0;if(he(a,b)){i=a+36|0;g=ha[H[H[a>>2]+24>>2]](a)|0;d=H[a+40>>2];e=H[a+36>>2];c=d-e>>2;a:{if(g>>>0>c>>>0){Xb(i,g-c|0);break a}if(c>>>0<=g>>>0){break a}e=e+(g<<2)|0;if((e|0)!=(d|0)){while(1){d=d-4|0;c=H[d>>2];H[d>>2]=0;if(c){ha[H[H[c>>2]+4>>2]](c)}if((d|0)!=(e|0)){continue}break}}H[a+40>>2]=e}b:{if((g|0)<=0){e=0;break b}e=1;c=H[b+20>>2];d=H[b+12>>2];f=H[b+16>>2];if((c|0)>=(d|0)&f>>>0>=K[b+8>>2]|(c|0)>(d|0)){break b}d=0;while(1){h=I[f+H[b>>2]|0];f=f+1|0;c=f?c:c+1|0;H[b+16>>2]=f;H[b+20>>2]=c;f=ha[H[H[a>>2]+48>>2]](a,h)|0;h=d<<2;j=h+H[a+36>>2]|0;c=H[j>>2];H[j>>2]=f;if(c){ha[H[H[c>>2]+4>>2]](c)}c=H[H[i>>2]+h>>2];if(!c){break b}if(!(l=c,m=ha[H[H[a>>2]+28>>2]](a)|0,n=ha[H[H[a>>2]+20>>2]](a,d)|0,k=H[H[c>>2]+8>>2],ha[k](l|0,m|0,n|0)|0)){break b}d=d+1|0;e=(g|0)>(d|0);if((d|0)==(g|0)){break b}f=H[b+16>>2];c=H[b+20>>2];h=H[b+12>>2];if(f>>>0>2]&(c|0)<=(h|0)|(c|0)<(h|0)){continue}break}}a=!e}else{a=0}return a|0}function ej(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0;c=H[b+88>>2];if(!(!c|H[c>>2]!=1)){d=H[c+8>>2];H[a+4>>2]=I[d|0]|I[d+1|0]<<8|(I[d+2|0]<<16|I[d+3|0]<<24);e=a+8|0;d=I[b+24|0];f=H[a+8>>2];g=H[a+12>>2]-f>>2;a:{if(d>>>0>g>>>0){Aa(e,d-g|0);d=I[b+24|0];break a}if(d>>>0>=g>>>0){break a}H[a+12>>2]=f+(d<<2)}g=H[c+8>>2];b:{if(!d){b=4;break b}h=d&3;e=H[e>>2];c:{if(d-1>>>0<3){b=4;d=0;break c}k=d&252;d=0;b=4;while(1){f=d<<2;c=b+g|0;H[f+e>>2]=I[c|0]|I[c+1|0]<<8|(I[c+2|0]<<16|I[c+3|0]<<24);H[e+(f|4)>>2]=I[c+4|0]|I[c+5|0]<<8|(I[c+6|0]<<16|I[c+7|0]<<24);H[e+(f|8)>>2]=I[c+8|0]|I[c+9|0]<<8|(I[c+10|0]<<16|I[c+11|0]<<24);H[e+(f|12)>>2]=I[c+12|0]|I[c+13|0]<<8|(I[c+14|0]<<16|I[c+15|0]<<24);d=d+4|0;b=b+16|0;i=i+4|0;if((k|0)!=(i|0)){continue}break}}if(!h){break b}while(1){c=b+g|0;H[e+(d<<2)>>2]=I[c|0]|I[c+1|0]<<8|(I[c+2|0]<<16|I[c+3|0]<<24);d=d+1|0;b=b+4|0;j=j+1|0;if((j|0)!=(h|0)){continue}break}}d=a;a=b+g|0;H[d+20>>2]=I[a|0]|I[a+1|0]<<8|(I[a+2|0]<<16|I[a+3|0]<<24);d=1}return d|0}function Jh(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0;k=H[a+12>>2];c=H[a+68>>2];d=H[c+80>>2];F[b+84|0]=0;m=b+68|0;i=H[b+68>>2];e=H[b+72>>2]-i>>2;a:{if(e>>>0>>0){Ia(m,d-e|0,12372);c=H[a+68>>2];d=H[c+80>>2];break a}if(d>>>0>=e>>>0){break a}H[b+72>>2]=i+(d<<2)}b=H[c+100>>2];e=H[c+96>>2];i=(b-e|0)/12|0;b:{if((b|0)==(e|0)){break b}n=1;k=H[k+28>>2];f=H[k>>2];if((f|0)==-1){break b}o=i>>>0<=1?1:i;c=e;b=0;while(1){g=H[c>>2];if(g>>>0>=d>>>0){break b}j=H[H[a+72>>2]+12>>2];h=H[j+(f<<2)>>2];if(h>>>0>=d>>>0){break b}f=H[m>>2];H[f+(g<<2)>>2]=h;g=k+(l<<2)|0;h=H[g+4>>2];if((h|0)==-1){break b}l=H[c+4>>2];if(l>>>0>=d>>>0){break b}h=H[(h<<2)+j>>2];if(h>>>0>=d>>>0){break b}H[f+(l<<2)>>2]=h;g=H[g+8>>2];if((g|0)==-1){break b}c=H[c+8>>2];if(c>>>0>=d>>>0){break b}j=H[(g<<2)+j>>2];if(j>>>0>=d>>>0){break b}H[f+(c<<2)>>2]=j;b=b+1|0;n=i>>>0>b>>>0;if((b|0)==(o|0)){break b}c=e+N(b,12)|0;l=N(b,3);f=H[k+(l<<2)>>2];if((f|0)!=-1){continue}break}}return(n^-1)&1}function Pe(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0,g=0,h=0,i=O(0),j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0;k=fa-16|0;fa=k;if(H[c+28>>2]==9){d=H[a+4>>2];h=I[c+24|0];e=h<<2;f=sa(e);l=k+8|0;H[l>>2]=1065353216;i=L[a+20>>2];d=-1<0){L[l>>2]=i/O(d|0)}o=(d|0)>0;a:{if(!o){break a}j=H[c+80>>2];if(!j){break a}if(h){p=H[H[b>>2]>>2]+H[b+48>>2]|0;t=h&254;u=h&1;b=0;while(1){m=H[a+8>>2];i=L[l>>2];d=0;n=0;if((h|0)!=1){while(1){g=d<<2;q=(b<<2)+p|0;L[g+f>>2]=O(i*O(H[q>>2]))+L[g+m>>2];g=g|4;L[g+f>>2]=O(i*O(H[q+4>>2]))+L[g+m>>2];d=d+2|0;b=b+2|0;n=n+2|0;if((t|0)!=(n|0)){continue}break}}if(u){d=d<<2;L[d+f>>2]=O(i*O(H[(b<<2)+p>>2]))+L[d+m>>2];b=b+1|0}ta(H[H[c+64>>2]>>2]+r|0,f,e);r=e+r|0;s=s+1|0;if((s|0)!=(j|0)){continue}break}break a}b=0;if((j|0)!=1){a=j&-2;d=0;while(1){ta(H[H[c+64>>2]>>2]+b|0,f,e);b=b+e|0;ta(b+H[H[c+64>>2]>>2]|0,f,e);b=b+e|0;d=d+2|0;if((a|0)!=(d|0)){continue}break}}if(!(j&1)){break a}ta(H[H[c+64>>2]>>2]+b|0,f,e)}ra(f)}fa=k+16|0;return o|0}function Gh(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0;h=H[d+80>>2];e=fa-48|0;fa=e;a=H[a+4>>2];k=a-31|0;a:{if(k>>>0<4294967267){break a}i=H[H[d>>2]>>2]+H[d+48>>2]|0;H[e+16>>2]=a;a=-1<>2]=a^-1;a=-2-a|0;H[e+24>>2]=a;H[e+32>>2]=(a|0)/2;L[e+28>>2]=O(2)/O(a|0);f=H[c>>2];if((f|0)!=H[c+4>>2]){a=0;d=0;while(1){g=H[(d<<2)+f>>2];h=e+36|0;j=H[H[b>>2]>>2];m=H[b+48>>2];f=H[b+44>>2];l=H[b+40>>2];if(!I[b+84|0]){g=H[H[b+68>>2]+(g<<2)>>2]}g=Nj(l,f,g,0)+m|0;ta(h,g+j|0,l);fe(e+16|0,h,e+12|0,e+8|0);f=a<<2;H[f+i>>2]=H[e+12>>2];H[(f|4)+i>>2]=H[e+8>>2];a=a+2|0;d=d+1|0;f=H[c>>2];if(d>>>0>2]-f>>2>>>0){continue}break}break a}if(!h){break a}d=0;a=0;while(1){j=e+36|0;c=H[H[b>>2]>>2];g=H[b+40>>2];f=H[b+48>>2]+Nj(g,H[b+44>>2],I[b+84|0]?a:H[H[b+68>>2]+(a<<2)>>2],0)|0;ta(j,c+f|0,g);fe(e+16|0,j,e+12|0,e+8|0);c=d<<2;H[c+i>>2]=H[e+12>>2];H[(c|4)+i>>2]=H[e+8>>2];d=d+2|0;a=a+1|0;if((h|0)!=(a|0)){continue}break}}fa=e+48|0;return k>>>0>4294967266|0}function Wh(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0;j=H[a+12>>2];c=H[a+108>>2];d=H[c+80>>2];F[b+84|0]=0;m=b+68|0;h=H[b+68>>2];f=H[b+72>>2]-h>>2;a:{if(f>>>0>>0){Ia(m,d-f|0,12372);c=H[a+108>>2];d=H[c+80>>2];break a}if(d>>>0>=f>>>0){break a}H[b+72>>2]=h+(d<<2)}b=H[c+100>>2];f=H[c+96>>2];h=(b-f|0)/12|0;b:{if((b|0)==(f|0)){j=0;break b}n=h>>>0<=1?1:h;o=H[j>>2];c=f;b=0;j=1;while(1){e=(e<<2)+o|0;i=H[e>>2];if((i|0)==-1){break b}g=H[c>>2];if(g>>>0>=d>>>0){break b}l=H[H[a+112>>2]+12>>2];k=H[l+(i<<2)>>2];if(k>>>0>=d>>>0){break b}i=H[m>>2];H[i+(g<<2)>>2]=k;g=H[e+4>>2];if((g|0)==-1){break b}k=H[c+4>>2];if(k>>>0>=d>>>0){break b}g=H[(g<<2)+l>>2];if(g>>>0>=d>>>0){break b}H[i+(k<<2)>>2]=g;e=H[e+8>>2];if((e|0)==-1){break b}c=H[c+8>>2];if(c>>>0>=d>>>0){break b}e=H[(e<<2)+l>>2];if(e>>>0>=d>>>0){break b}H[i+(c<<2)>>2]=e;b=b+1|0;j=h>>>0>b>>>0;if((b|0)==(n|0)){break b}e=N(b,3);c=f+N(b,12)|0;if((b|0)!=1431655765){continue}break}}return(j^-1)&1}function Oh(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0;j=H[a+12>>2];c=H[a+68>>2];d=H[c+80>>2];F[b+84|0]=0;m=b+68|0;h=H[b+68>>2];f=H[b+72>>2]-h>>2;a:{if(f>>>0>>0){Ia(m,d-f|0,12372);c=H[a+68>>2];d=H[c+80>>2];break a}if(d>>>0>=f>>>0){break a}H[b+72>>2]=h+(d<<2)}b=H[c+100>>2];f=H[c+96>>2];h=(b-f|0)/12|0;b:{if((b|0)==(f|0)){j=0;break b}n=h>>>0<=1?1:h;o=H[j>>2];c=f;b=0;j=1;while(1){e=(e<<2)+o|0;i=H[e>>2];if((i|0)==-1){break b}g=H[c>>2];if(g>>>0>=d>>>0){break b}l=H[H[a+72>>2]+12>>2];k=H[l+(i<<2)>>2];if(k>>>0>=d>>>0){break b}i=H[m>>2];H[i+(g<<2)>>2]=k;g=H[e+4>>2];if((g|0)==-1){break b}k=H[c+4>>2];if(k>>>0>=d>>>0){break b}g=H[(g<<2)+l>>2];if(g>>>0>=d>>>0){break b}H[i+(k<<2)>>2]=g;e=H[e+8>>2];if((e|0)==-1){break b}c=H[c+8>>2];if(c>>>0>=d>>>0){break b}e=H[(e<<2)+l>>2];if(e>>>0>=d>>>0){break b}H[i+(c<<2)>>2]=e;b=b+1|0;j=h>>>0>b>>>0;if((b|0)==(n|0)){break b}e=N(b,3);c=f+N(b,12)|0;if((b|0)!=1431655765){continue}break}}return(j^-1)&1}function Xa(a,b,c){var d=0,e=0,f=0,g=0,h=0,i=0,j=0;d=(c>>>0)/3|0;i=H[(H[H[a+8>>2]+96>>2]+N(d,12)|0)+(c-N(d,3)<<2)>>2];e=H[H[a+12>>2]+4>>2];d=H[e+4>>2];a:{if((d|0)!=H[e+8>>2]){H[d>>2]=i;H[e+4>>2]=d+4;break a}b:{h=H[e>>2];g=d-h|0;j=g>>2;d=j+1|0;if(d>>>0<1073741824){f=g>>1;f=g>>>0>=2147483644?1073741823:d>>>0>>0?f:d;if(f){if(f>>>0>=1073741824){break b}d=sa(f<<2)}else{d=0}j=d+(j<<2)|0;H[j>>2]=i;if((g|0)>0){ta(d,h,g)}H[e+8>>2]=d+(f<<2);H[e+4>>2]=j+4;H[e>>2]=d;if(h){ra(h)}break a}va();v()}za();v()}e=H[a+4>>2];d=H[e+4>>2];c:{d:{e:{if((d|0)!=H[e+8>>2]){H[d>>2]=c;H[e+4>>2]=d+4;break e}h=H[e>>2];g=d-h|0;i=g>>2;d=i+1|0;if(d>>>0>=1073741824){break d}f=g>>1;f=g>>>0>=2147483644?1073741823:d>>>0>>0?f:d;if(f){if(f>>>0>=1073741824){break c}d=sa(f<<2)}else{d=0}i=d+(i<<2)|0;H[i>>2]=c;if((g|0)>0){ta(d,h,g)}H[e+8>>2]=d+(f<<2);H[e+4>>2]=i+4;H[e>>2]=d;if(!h){break e}ra(h)}a=H[a+4>>2];H[H[a+12>>2]+(b<<2)>>2]=H[a+24>>2];H[a+24>>2]=H[a+24>>2]+1;return}va();v()}za();v()}function pd(a,b){var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0;a:{c=H[a+8>>2];b:{if((c|0)!=H[a+12>>2]){e=c;break b}d=H[a+4>>2];g=H[a>>2];if(d>>>0>g>>>0){f=c-d|0;g=((d-g>>2)+1|0)/-2<<2;e=g+d|0;if((c|0)!=(d|0)){Sa(e,d,f);c=H[a+4>>2]}e=e+f|0;H[a+8>>2]=e;H[a+4>>2]=c+g;break b}f=(c|0)==(g|0)?1:c-g>>1;if(f>>>0>=1073741824){break a}e=f<<2;h=sa(e);k=h+e|0;f=(f&-4)+h|0;e=f;c:{if((c|0)==(d|0)){break c}c=c-d|0;l=c&-4;i=c-4|0;j=(i>>>2|0)+1&7;d:{if(!j){c=f;break d}e=0;c=f;while(1){H[c>>2]=H[d>>2];d=d+4|0;c=c+4|0;e=e+1|0;if((j|0)!=(e|0)){continue}break}}e=f+l|0;if(i>>>0<28){break c}while(1){H[c>>2]=H[d>>2];H[c+4>>2]=H[d+4>>2];H[c+8>>2]=H[d+8>>2];H[c+12>>2]=H[d+12>>2];H[c+16>>2]=H[d+16>>2];H[c+20>>2]=H[d+20>>2];H[c+24>>2]=H[d+24>>2];H[c+28>>2]=H[d+28>>2];d=d+32|0;c=c+32|0;if((e|0)!=(c|0)){continue}break}}H[a+12>>2]=k;H[a+8>>2]=e;H[a+4>>2]=f;H[a>>2]=h;if(!g){break b}ra(g);e=H[a+8>>2]}H[e>>2]=H[b>>2];H[a+8>>2]=H[a+8>>2]+4;return}za();v()}function od(a,b){var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0;a:{f=H[a+4>>2];b:{if((f|0)!=H[a>>2]){c=f;break b}g=H[a+8>>2];c=H[a+12>>2];if(g>>>0>>0){e=((c-g>>2)+1|0)/2<<2;c=e+g|0;if((f|0)!=(g|0)){d=g-f|0;c=c-d|0;Sa(c,f,d);f=H[a+8>>2]}H[a+4>>2]=c;H[a+8>>2]=e+f;break b}d=(c|0)==(f|0)?1:c-f>>1;if(d>>>0>=1073741824){break a}c=d<<2;i=sa(c);k=i+c|0;c=(d+3&-4)+i|0;h=c;c:{if((f|0)==(g|0)){break c}g=g-f|0;l=g&-4;e=c;d=f;j=g-4|0;g=(j>>>2|0)+1&7;if(g){h=0;while(1){H[e>>2]=H[d>>2];d=d+4|0;e=e+4|0;h=h+1|0;if((g|0)!=(h|0)){continue}break}}h=c+l|0;if(j>>>0<28){break c}while(1){H[e>>2]=H[d>>2];H[e+4>>2]=H[d+4>>2];H[e+8>>2]=H[d+8>>2];H[e+12>>2]=H[d+12>>2];H[e+16>>2]=H[d+16>>2];H[e+20>>2]=H[d+20>>2];H[e+24>>2]=H[d+24>>2];H[e+28>>2]=H[d+28>>2];d=d+32|0;e=e+32|0;if((h|0)!=(e|0)){continue}break}}H[a+12>>2]=k;H[a+8>>2]=h;H[a+4>>2]=c;H[a>>2]=i;if(!f){break b}ra(f);c=H[a+4>>2]}H[c-4>>2]=H[b>>2];H[a+4>>2]=H[a+4>>2]-4;return}za();v()}function Vh(a){a=a|0;var b=0,c=0,d=0,e=0,f=0,g=0,h=0;g=fa-16|0;fa=g;b=H[a+4>>2];d=H[b>>2];a:{c=H[a+12>>2];c=H[c+28>>2]-H[c+24>>2]|0;e=c>>2;b:{if(e>>>0<=H[b+8>>2]-d>>2>>>0){break b}if((c|0)<0){break a}f=H[b+4>>2];c=sa(c);h=c+(e<<2)|0;e=f-d|0;f=e+c|0;if((e|0)>0){ta(c,d,e)}H[b+8>>2]=h;H[b+4>>2]=f;H[b>>2]=c;if(!d){break b}ra(d)}b=H[a+12>>2];d=H[b+28>>2];b=H[b+24>>2];H[g+12>>2]=0;b=d-b>>2;c=a+96|0;e=H[c>>2];d=H[a+100>>2]-e>>2;c:{if(b>>>0>d>>>0){Ia(c,b-d|0,g+12|0);break c}if(b>>>0>=d>>>0){break c}H[a+100>>2]=e+(b<<2)}e=a+8|0;b=H[a+116>>2];d:{if(b){c=H[b>>2];if((c|0)==H[b+4>>2]){d=1;break d}b=0;while(1){d=we(e,H[(b<<2)+c>>2]);if(!d){break d}f=H[a+116>>2];c=H[f>>2];b=b+1|0;if(b>>>0>2]-c>>2>>>0){continue}break}break d}d=1;a=H[a+12>>2];a=H[a+4>>2]-H[a>>2]|0;if(a>>>0<12){break d}a=(a>>2>>>0)/3|0;b=0;while(1){d=we(e,N(b,3));if(!d){break d}b=b+1|0;if((a|0)!=(b|0)){continue}break}}fa=g+16|0;return d|0}va();v()}function He(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0;f=H[a+12>>2];h=H[a+8>>2];d=f-h>>2;b=I[b+24|0];a:{if(d>>>0>>0){Aa(a+8|0,b-d|0);h=H[a+8>>2];f=H[a+12>>2];break a}if(b>>>0>=d>>>0){break a}f=(b<<2)+h|0;H[a+12>>2]=f}b=0;i=H[c+20>>2];e=H[c+16>>2];d=f-h|0;f=d;g=e+d|0;j=H[c+12>>2];i=d>>>0>g>>>0?i+1|0:i;b:{if(g>>>0>K[c+8>>2]&(j|0)<=(i|0)|(i|0)>(j|0)){break b}ta(h,e+H[c>>2]|0,d);d=H[c+20>>2];e=f+H[c+16>>2]|0;d=e>>>0>>0?d+1|0:d;g=e;H[c+16>>2]=e;H[c+20>>2]=d;e=H[c+12>>2];f=g+4|0;d=f>>>0<4?d+1|0:d;if(f>>>0>K[c+8>>2]&(d|0)>=(e|0)|(d|0)>(e|0)){break b}d=g+H[c>>2]|0;H[a+20>>2]=I[d|0]|I[d+1|0]<<8|(I[d+2|0]<<16|I[d+3|0]<<24);d=H[c+20>>2];g=H[c+16>>2];e=g+4|0;f=e>>>0<4?d+1|0:d;j=e;H[c+16>>2]=e;H[c+20>>2]=f;e=H[c+12>>2];if((f|0)>=(e|0)&j>>>0>=K[c+8>>2]|(f|0)>(e|0)){break b}e=I[j+H[c>>2]|0];f=g+5|0;d=f>>>0<5?d+1|0:d;H[c+16>>2]=f;H[c+20>>2]=d;if(e-1>>>0>29){break b}H[a+4>>2]=e;b=1}return b|0}function vb(a,b){var c=0;a:{if(!wa(a,b)){break a}if(!wa(a+16|0,b)){break a}if(!wa(a+32|0,b)){break a}if(!wa(a+48|0,b)){break a}if(!wa(a- -64|0,b)){break a}if(!wa(a+80|0,b)){break a}if(!wa(a+96|0,b)){break a}if(!wa(a+112|0,b)){break a}if(!wa(a+128|0,b)){break a}if(!wa(a+144|0,b)){break a}if(!wa(a+160|0,b)){break a}if(!wa(a+176|0,b)){break a}if(!wa(a+192|0,b)){break a}if(!wa(a+208|0,b)){break a}if(!wa(a+224|0,b)){break a}if(!wa(a+240|0,b)){break a}if(!wa(a+256|0,b)){break a}if(!wa(a+272|0,b)){break a}if(!wa(a+288|0,b)){break a}if(!wa(a+304|0,b)){break a}if(!wa(a+320|0,b)){break a}if(!wa(a+336|0,b)){break a}if(!wa(a+352|0,b)){break a}if(!wa(a+368|0,b)){break a}if(!wa(a+384|0,b)){break a}if(!wa(a+400|0,b)){break a}if(!wa(a+416|0,b)){break a}if(!wa(a+432|0,b)){break a}if(!wa(a+448|0,b)){break a}if(!wa(a+464|0,b)){break a}if(!wa(a+480|0,b)){break a}if(!wa(a+496|0,b)){break a}c=wa(a+512|0,b)}return c}function $a(a,b){var c=0,d=0,e=0,f=0,g=0,h=0;d=fa-16|0;fa=d;a:{e=H[a+4>>2];b:{if(e>>>0>>0){f=b-e|0;c=H[a+8>>2];g=c<<5;c:{if(!(f>>>0>g>>>0|e>>>0>g-f>>>0)){H[a+4>>2]=b;h=e&31;b=H[a>>2]+(e>>>3&536870908)|0;break c}H[d+8>>2]=0;H[d>>2]=0;H[d+4>>2]=0;if((b|0)<0){break a}if(g>>>0<=1073741822){c=c<<6;b=b+31&-32;b=b>>>0>>0?c:b}else{b=2147483647}tb(d,b);c=H[a+4>>2];H[d+4>>2]=c+f;e=H[a>>2];b=H[d>>2];d:{if((c|0)<=0){break d}g=c>>>5<<2;b=Sa(b,e,g)+g|0;h=c&31;if(h){c=-1>>>32-h|0;H[b>>2]=H[b>>2]&(c^-1)|H[e+g>>2]&c}e=H[a>>2]}H[a>>2]=H[d>>2];H[d>>2]=e;c=H[a+4>>2];H[a+4>>2]=H[d+4>>2];H[d+4>>2]=c;c=H[a+8>>2];H[a+8>>2]=H[d+8>>2];H[d+8>>2]=c;if(!e){break c}ra(e)}if(!f){break b}if(h){c=32-h|0;a=c>>>0>>0?c:f;H[b>>2]=H[b>>2]&(-1<>>c-a^-1);f=f-a|0;b=b+4|0}a=b;b=f>>>5<<2;a=ua(a,0,b);if((f&-32)==(f|0)){break b}a=a+b|0;H[a>>2]=H[a>>2]&(-1>>>32-(f&31)^-1);break b}H[a+4>>2]=b}fa=d+16|0;return}va();v()}function Cc(a,b){var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0;d=I[a+11|0]>>>7|0?H[a+4>>2]:I[a+11|0];if(d>>>0>>0){h=fa-16|0;fa=h;f=b-d|0;if(f){b=I[a+11|0]>>>7|0;g=b?H[a+4>>2]:I[a+11|0];i=g+f|0;b=b?(H[a+8>>2]&2147483647)-1|0:10;if(b-g>>>0>>0){a:{d=fa-16|0;fa=d;c=-17;e=i-b|0;if(e>>>0<=-17-b>>>0){j=I[a+11|0]>>>7|0?H[a>>2]:a;if(b>>>0<2147483623){H[d+8>>2]=b<<1;H[d+12>>2]=b+e;c=fa-16|0;fa=c;fa=c+16|0;c=d+8|0;e=d+12|0;c=H[(K[e>>2]>2]?c:e)>>2];if(c>>>0>=11){e=c+16&-16;c=e-1|0;c=(c|0)==11?e:c}else{c=10}c=c+1|0}e=sa(c);if(g){Bb(e,j,g)}if((b|0)!=10){ra(j)}H[a>>2]=e;H[a+8>>2]=c|-2147483648;fa=d+16|0;break a}Qa();v()}}b=I[a+11|0]>>>7|0?H[a>>2]:a;d=g+b|0;if(f){ua(d,0,f)}b:{if(I[a+11|0]>>>7|0){H[a+4>>2]=i;break b}F[a+11|0]=i}F[h+15|0]=0;F[b+i|0]=I[h+15|0]}fa=h+16|0;return}c=I[a+11|0]>>>7|0;f=c?H[a>>2]:a;d=fa-16|0;fa=d;c:{if(c){H[a+4>>2]=b;break c}F[a+11|0]=b}F[d+15|0]=0;F[b+f|0]=I[d+15|0];fa=d+16|0}function Ic(a,b){var c=0,d=0,e=0,f=0,g=0,h=0;g=fa-16|0;fa=g;a:{b:{if(b){H[a+88>>2]=0;H[a+92>>2]=0;c=H[a+84>>2];H[a+84>>2]=0;if(c){ra(c)}H[a+76>>2]=0;H[a+80>>2]=0;c=H[a+72>>2];H[a+72>>2]=0;if(c){ra(c)}c=H[b>>2];d=H[b+4>>2];F[g+15|0]=0;Ra(a,d-c>>2,g+15|0);c=H[b+28>>2];d=H[b+24>>2];F[g+14|0]=0;Ra(a+12|0,c-d>>2,g+14|0);Jc(a+28|0,H[b+4>>2]-H[b>>2]>>2,13708);d=H[b+28>>2]-H[b+24>>2]|0;e=d>>2;c=H[a+52>>2];c:{if(e>>>0<=H[a+60>>2]-c>>2>>>0){break c}if((d|0)<0){break b}f=H[a+56>>2];d=sa(d);h=d+(e<<2)|0;e=f-c|0;f=e+d|0;if((e|0)>0){ta(d,c,e)}H[a+60>>2]=h;H[a+56>>2]=f;H[a+52>>2]=d;if(!c){break c}ra(c)}d=H[b+28>>2]-H[b+24>>2]|0;e=d>>2;c=H[a+40>>2];d:{if(e>>>0<=H[a+48>>2]-c>>2>>>0){break d}if((d|0)<0){break a}f=H[a+44>>2];d=sa(d);h=d+(e<<2)|0;e=f-c|0;f=e+d|0;if((e|0)>0){ta(d,c,e)}H[a+48>>2]=h;H[a+44>>2]=f;H[a+40>>2]=d;if(!c){break d}ra(c)}F[a+24|0]=1;H[a+64>>2]=b}fa=g+16|0;return}va();v()}va();v()}function fe(a,b,c,d){var e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0;j=+L[b>>2];k=+L[b+4>>2];l=+L[b+8>>2];g=P(j)+P(k)+P(l);a:{if(!(g>1e-6)){j=1;k=0;e=0;break a}g=1/g;k=g*k;j=g*j;e=g*l<0}h=H[a+16>>2];l=+(h|0);g=T(j*l+.5);b:{if(P(g)<2147483648){m=~~g;break b}m=-2147483648}f=m>>31;i=(f^m)-f|0;g=T(k*l+.5);c:{if(P(g)<2147483648){f=~~g;break c}f=-2147483648}b=f>>31;b=h-(i+((f^b)-b|0)|0)|0;i=(b|0)>0?b:0;e=e?0-i|0:i;f=f+(b>>31&((f|0)>0?b:0-b|0))|0;d:{if((m|0)>=0){b=e+h|0;a=H[a+8>>2];e=h+f|0;break d}b=f>>31;b=(b^f)-b|0;a=H[a+8>>2];b=(e|0)<0?b:a-b|0;e=(f|0)<0?i:a-i|0}e:{if(!(b|e)){b=a;break e}if(!((a|0)!=(b|0)|e)){b=a;break e}if(!((a|0)!=(e|0)|b)){b=a;break e}if(!((b|0)<=(h|0)|e)){b=(h<<1)-b|0;a=0;break e}if(!((a|0)!=(e|0)|(b|0)>=(h|0))){b=(h<<1)-b|0;break e}if(!((a|0)!=(b|0)|(e|0)>=(h|0))){b=a;a=(h<<1)-e|0;break e}if(b){a=e;break e}b=0;if((e|0)<=(h|0)){a=e;break e}a=(h<<1)-e|0}H[c>>2]=a;H[d>>2]=b}function Te(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0;f=H[b+12>>2];c=f;d=H[b+20>>2];g=d;i=H[b+16>>2];e=i+4|0;d=e>>>0<4?d+1|0:d;j=H[b+8>>2];a:{if(j>>>0>>0&(c|0)<=(d|0)|(c|0)<(d|0)){break a}k=H[b>>2];c=i+k|0;c=I[c|0]|I[c+1|0]<<8|(I[c+2|0]<<16|I[c+3|0]<<24);H[b+16>>2]=e;H[b+20>>2]=d;d=g;h=i+8|0;d=h>>>0<8?d+1|0:d;if(h>>>0>j>>>0&(d|0)>=(f|0)|(d|0)>(f|0)){break a}e=e+k|0;e=I[e|0]|I[e+1|0]<<8|(I[e+2|0]<<16|I[e+3|0]<<24);H[b+16>>2]=h;H[b+20>>2]=d;if((c|0)>(e|0)){break a}H[a+16>>2]=e;H[a+12>>2]=c;l=(e>>31)-((c>>31)+(c>>>0>e>>>0)|0)|0;c=e-c|0;if(!l&c>>>0>2147483646|l){break a}c=c+1|0;H[a+20>>2]=c;e=c>>>1|0;H[a+24>>2]=e;H[a+28>>2]=0-e;if(!(c&1)){H[a+24>>2]=e-1}if(J[b+38>>1]<=513){if((d|0)>=(f|0)&h>>>0>=j>>>0|(d|0)>(f|0)){break a}c=I[h+k|0];d=g;g=i+9|0;d=g>>>0<9?d+1|0:d;H[b+16>>2]=g;H[b+20>>2]=d;if(c>>>0>1){break a}H[a+88>>2]=c}m=wa(a+112|0,b)}return m|0}function Cd(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=O(0),f=O(0),g=O(0),h=O(0),i=O(0),j=0,k=O(0),l=O(0),m=O(0),n=O(0),o=0;a:{if(H[c+28>>2]!=9|I[c+24|0]!=3){break a}a=H[a+4>>2];if(a-31>>>0<4294967267){break a}o=1;j=H[c+80>>2];if(!j){break a}k=O(O(2)/O((1<>2]>>2]+H[c+48>>2]|0;a=H[H[b>>2]>>2]+H[b+48>>2]|0;b=0;while(1){g=O(0);l=O(0);m=O(0);e=O(O(O(H[a>>2])*k)+O(-1));f=O(O(O(H[a+4>>2])*k)+O(-1));i=O(O(O(1)-O(P(e)))-O(P(f)));h=O(S(O(-i),O(0)));n=O(-h);f=O(f+(f>>8;F[c+10|0]=d>>>16;F[c+11|0]=d>>>24;d=(w(l),y(2));F[c+4|0]=d;F[c+5|0]=d>>>8;F[c+6|0]=d>>>16;F[c+7|0]=d>>>24;d=(w(g),y(2));F[c|0]=d;F[c+1|0]=d>>>8;F[c+2|0]=d>>>16;F[c+3|0]=d>>>24;c=c+12|0;b=b+1|0;if((j|0)!=(b|0)){continue}break}}return o|0}function Gc(a,b){var c=0,d=0,e=0,f=0,g=0,h=0;g=H[a>>2];c=g+(b>>>3&536870908)|0;H[c>>2]=H[c>>2]|1<>2];e=(b|0)==-1;d=-1;a:{if(e){break a}c=b+1|0;c=(c>>>0)%3|0?c:b-2|0;d=-1;if((c|0)==-1){break a}d=H[H[f>>2]+(c<<2)>>2]}c=H[a+12>>2];h=(d>>>3&536870908)+c|0;H[h>>2]=H[h>>2]|1<>>0)%3|0){e=b-1|0;break e}e=b+2|0;d=-1;if((e|0)==-1){break d}}d=H[H[f>>2]+(e<<2)>>2]}e=(d>>>3&536870908)+c|0;H[e>>2]=H[e>>2]|1<>2]+(b<<2)>>2];if((b|0)==-1){break b}F[a+24|0]=0;a=(b>>>3&536870908)+g|0;H[a>>2]=H[a>>2]|1<>>0)%3|0?a:b-2|0;if((a|0)!=-1){d=H[H[f>>2]+(a<<2)>>2]}a=c+(d>>>3&536870908)|0;H[a>>2]=H[a>>2]|1<>>0)%3|0){b=b-1|0;break g}b=b+2|0;a=-1;if((b|0)==-1){break f}}a=H[H[f>>2]+(b<<2)>>2]}b=1<>>3&536870908)|0;c=H[a>>2];break c}a=c+536870908|0;b=H[c+536870908>>2];c=-2147483648}H[a>>2]=b|c}}function Ud(a,b,c){var d=0,e=0,f=0,g=0,h=0,i=0,j=0;a:{if(b>>>0<=63){b=0;a=H[a+12>>2];if(a>>>0<2){break a}b=a-1|0;e=b&3;d=H[c>>2];c=0;b:{if(a-2>>>0<3){a=1;b=0;break b}f=b&-4;b=0;a=1;while(1){g=a+3|0;h=a+2|0;i=a+1|0;b=K[d+(b<<2)>>2]>K[d+(a<<2)>>2]?a:b;b=K[d+(b<<2)>>2]>K[d+(i<<2)>>2]?i:b;b=K[d+(b<<2)>>2]>K[d+(h<<2)>>2]?h:b;b=K[d+(b<<2)>>2]>K[d+(g<<2)>>2]?g:b;a=a+4|0;j=j+4|0;if((f|0)!=(j|0)){continue}break}}if(!e){break a}while(1){b=K[d+(b<<2)>>2]>K[d+(a<<2)>>2]?a:b;a=a+1|0;c=c+1|0;if((e|0)!=(c|0)){continue}break}break a}b=H[a+580>>2];d=32-b|0;if((d|0)>=4){c=H[a+576>>2];if((c|0)==H[a+568>>2]){return 0}d=H[c>>2];e=b+4|0;H[a+580>>2]=e;b=d<>>28|0;if((e|0)!=32){break a}H[a+580>>2]=0;H[a+576>>2]=c+4;return b}c=H[a+576>>2];e=c+4|0;if((e|0)==H[a+568>>2]){return 0}f=H[c>>2];H[a+576>>2]=e;H[a+580>>2]=b-28;a=60-b|0;b=H[c+4>>2]>>>a|f<>>a-d}return b}function ye(a){a=a|0;var b=0,c=0,d=0,e=0;H[a>>2]=11436;b=H[a+388>>2];if(b){H[a+392>>2]=b;ra(b)}d=H[a+368>>2];H[a+368>>2]=0;if(d){e=d-4|0;b=H[e>>2];if(b){c=(b<<4)+d|0;while(1){c=c-16|0;if((d|0)!=(c|0)){continue}break}}ra(e)}Wc(a+216|0);b=H[a+196>>2];if(b){H[a+200>>2]=b;ra(b)}b=H[a+184>>2];if(b){H[a+188>>2]=b;ra(b)}b=H[a+172>>2];if(b){H[a+176>>2]=b;ra(b)}b=H[a+160>>2];if(b){H[a+164>>2]=b;ra(b)}c=H[a+144>>2];if(c){while(1){b=H[c>>2];ra(c);c=b;if(b){continue}break}}b=H[a+136>>2];H[a+136>>2]=0;if(b){ra(b)}b=H[a+120>>2];if(b){ra(b)}b=H[a+108>>2];if(b){ra(b)}b=H[a+96>>2];if(b){ra(b)}b=H[a+72>>2];if(b){H[a+76>>2]=b;ra(b)}b=H[a+60>>2];if(b){ra(b)}b=H[a+48>>2];if(b){H[a+52>>2]=b;ra(b)}b=H[a+36>>2];if(b){H[a+40>>2]=b;ra(b)}b=H[a+24>>2];if(b){H[a+28>>2]=b;ra(b)}b=H[a+12>>2];if(b){H[a+16>>2]=b;ra(b)}b=H[a+8>>2];H[a+8>>2]=0;if(b){fb(b)}return a|0}function ze(a){a=a|0;var b=0,c=0,d=0,e=0;H[a>>2]=11384;d=H[a+368>>2];H[a+368>>2]=0;if(d){e=d-4|0;b=H[e>>2];if(b){c=(b<<4)+d|0;while(1){c=c-16|0;if((d|0)!=(c|0)){continue}break}}ra(e)}Wc(a+216|0);b=H[a+196>>2];if(b){H[a+200>>2]=b;ra(b)}b=H[a+184>>2];if(b){H[a+188>>2]=b;ra(b)}b=H[a+172>>2];if(b){H[a+176>>2]=b;ra(b)}b=H[a+160>>2];if(b){H[a+164>>2]=b;ra(b)}c=H[a+144>>2];if(c){while(1){b=H[c>>2];ra(c);c=b;if(b){continue}break}}b=H[a+136>>2];H[a+136>>2]=0;if(b){ra(b)}b=H[a+120>>2];if(b){ra(b)}b=H[a+108>>2];if(b){ra(b)}b=H[a+96>>2];if(b){ra(b)}b=H[a+72>>2];if(b){H[a+76>>2]=b;ra(b)}b=H[a+60>>2];if(b){ra(b)}b=H[a+48>>2];if(b){H[a+52>>2]=b;ra(b)}b=H[a+36>>2];if(b){H[a+40>>2]=b;ra(b)}b=H[a+24>>2];if(b){H[a+28>>2]=b;ra(b)}b=H[a+12>>2];if(b){H[a+16>>2]=b;ra(b)}b=H[a+8>>2];H[a+8>>2]=0;if(b){fb(b)}return a|0}function Rg(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,f=0,g=0;a:{a=fa-32|0;fa=a;e=Pa(c);if(e>>>0<4294967280){b:{c:{if(e>>>0>=11){g=(e|15)+1|0;f=sa(g);H[a+24>>2]=g|-2147483648;H[a+16>>2]=f;H[a+20>>2]=e;break c}F[a+27|0]=e;f=a+16|0;if(!e){break b}}ta(f,c,e)}F[e+f|0]=0;H[a+8>>2]=0;H[a>>2]=0;H[a+4>>2]=0;d:{c=rb(b,a+16|0);if((c|0)==(b+4|0)){break d}b=H[c+28>>2];f=H[c+32>>2];if((b|0)==(f|0)){break d}b=f-b|0;if(b&3){break d}e=b>>>2|0;f=H[a+4>>2];b=H[a>>2];g=f-b>>2;e:{if(e>>>0>g>>>0){Aa(a,e-g|0);b=H[a>>2];f=H[a+4>>2];break e}if(e>>>0>=g>>>0){break e}f=(e<<2)+b|0;H[a+4>>2]=f}if((b|0)!=(f|0)){e=b;b=H[c+28>>2];ta(e,b,H[c+32>>2]-b|0);break d}Ea();v()}b=H[d>>2];if(b){H[d+4>>2]=b;ra(b)}H[d>>2]=H[a>>2];H[d+4>>2]=H[a+4>>2];H[d+8>>2]=H[a+8>>2];if(F[a+27|0]<0){ra(H[a+16>>2])}fa=a+32|0;break a}Qa();v()}}function dd(a,b){var c=0,d=0;c=H[b+8>>2];H[a+4>>2]=H[b+4>>2];H[a+8>>2]=c;H[a+20>>2]=H[b+20>>2];c=H[b+16>>2];H[a+12>>2]=H[b+12>>2];H[a+16>>2]=c;a:{b:{if((a|0)!=(b|0)){c=H[b+28>>2];if(c){d=H[a+24>>2];if(H[a+32>>2]<<5>>>0>>0){if(d){ra(d);H[a+32>>2]=0;H[a+24>>2]=0;H[a+28>>2]=0;c=H[b+28>>2]}if((c|0)<0){break b}c=(c-1>>>5|0)+1|0;d=sa(c<<2);H[a+32>>2]=c;H[a+28>>2]=0;H[a+24>>2]=d;c=H[b+28>>2]}Sa(d,H[b+24>>2],(c-1>>>3&536870908)+4|0);c=H[b+28>>2]}else{c=0}H[a+28>>2]=c;c=H[b+40>>2];if(c){d=H[a+36>>2];if(H[a+44>>2]<<5>>>0>>0){if(d){ra(d);H[a+44>>2]=0;H[a+36>>2]=0;H[a+40>>2]=0;c=H[b+40>>2]}if((c|0)<0){break a}c=(c-1>>>5|0)+1|0;d=sa(c<<2);H[a+44>>2]=c;H[a+40>>2]=0;H[a+36>>2]=d;c=H[b+40>>2]}Sa(d,H[b+36>>2],(c-1>>>3&536870908)+4|0);b=H[b+40>>2]}else{b=0}H[a+40>>2]=b}return}va();v()}va();v()}function Tg(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0;d=fa-16|0;fa=d;a:{e=Pa(c);if(e>>>0<4294967280){b:{c:{if(e>>>0>=11){f=(e|15)+1|0;a=sa(f);H[d+8>>2]=f|-2147483648;H[d>>2]=a;H[d+4>>2]=e;break c}F[d+11|0]=e;a=d;if(!e){break b}}ta(a,c,e)}F[a+e|0]=0;c=I[d+11|0];e=c<<24>>24;b=H[b+4>>2];a=0;d:{if(!b){break d}a=c;c=(e|0)<0;a=c?H[d+4>>2]:a;f=c?H[d>>2]:d;while(1){c=I[b+27|0];g=c<<24>>24<0;c=g?H[b+20>>2]:c;i=c>>>0>>0;e:{f:{g:{h:{i:{j:{h=i?c:a;if(h){g=g?H[b+16>>2]:b+16|0;j=Ha(f,g,h);if(j){break j}if(a>>>0>=c>>>0){break i}break e}if(a>>>0>=c>>>0){break h}break e}if((j|0)<0){break e}}c=Ha(g,f,h);if(c){break g}}if(i){break f}a=1;break d}if((c|0)<0){break f}a=1;break d}b=b+4|0}b=H[b>>2];if(b){continue}break}a=0}if((e|0)<0){ra(H[d>>2])}fa=d+16|0;break a}Qa();v()}return a|0}function vc(a){var b=0,c=0,d=0;b=H[a+8>>2];d=H[a>>2];a:{if(I[a+12|0]){b:{c:{d:{e:{if((b|0)==-1){break e}c=b+1|0;b=(c>>>0)%3|0?c:b-2|0;if((b|0)==-1){break e}b=H[H[d+12>>2]+(b<<2)>>2];if((b|0)!=-1){break d}}H[a+8>>2]=-1;break c}c=b+1|0;b=(c>>>0)%3|0?c:b-2|0;H[a+8>>2]=b;if((b|0)!=-1){break b}}c=H[a+4>>2];b=-1;f:{if((c|0)==-1){break f}g:{if((c>>>0)%3|0){c=c-1|0;break g}c=c+2|0;b=-1;if((c|0)==-1){break f}}c=H[H[d+12>>2]+(c<<2)>>2];b=-1;if((c|0)==-1){break f}b=c-1|0;if((c>>>0)%3|0){break f}b=c+2|0}F[a+12|0]=0;H[a+8>>2]=b;return}if((b|0)!=H[a+4>>2]){break a}H[a+8>>2]=-1;return}c=-1;h:{if((b|0)==-1){break h}i:{if((b>>>0)%3|0){b=b-1|0;break i}b=b+2|0;c=-1;if((b|0)==-1){break h}}b=H[H[d+12>>2]+(b<<2)>>2];c=-1;if((b|0)==-1){break h}c=b-1|0;if((b>>>0)%3|0){break h}c=b+2|0}H[a+8>>2]=c}}function Qf(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0;f=fa-32|0;fa=f;d=H[a+28>>2];H[f+16>>2]=d;g=H[a+20>>2];H[f+28>>2]=c;H[f+24>>2]=b;b=g-d|0;H[f+20>>2]=b;g=b+c|0;i=2;a:{b:{b=f+16|0;d=aa(H[a+60>>2],b|0,2,f+12|0)|0;if(d){H[3992]=d;d=-1}else{d=0}c:{d:{if(d){d=b;break d}while(1){e=H[f+12>>2];if((e|0)==(g|0)){break c}if((e|0)<0){d=b;break b}h=H[b+4>>2];j=h>>>0>>0;d=(j<<3)+b|0;h=e-(j?h:0)|0;H[d>>2]=h+H[d>>2];b=(j?12:4)+b|0;H[b>>2]=H[b>>2]-h;g=g-e|0;b=d;i=i-j|0;e=aa(H[a+60>>2],b|0,i|0,f+12|0)|0;if(e){H[3992]=e;e=-1}else{e=0}if(!e){continue}break}}if((g|0)!=-1){break b}}b=H[a+44>>2];H[a+28>>2]=b;H[a+20>>2]=b;H[a+16>>2]=b+H[a+48>>2];a=c;break a}H[a+28>>2]=0;H[a+16>>2]=0;H[a+20>>2]=0;H[a>>2]=H[a>>2]|32;a=0;if((i|0)==2){break a}a=c-H[d+4>>2]|0}fa=f+32|0;return a|0}function Re(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0;f=H[b+12>>2];c=H[b+20>>2];d=c;i=H[b+16>>2];e=i+4|0;c=e>>>0<4?c+1|0:c;j=H[b+8>>2];g=e;a:{if(j>>>0>>0&(c|0)>=(f|0)|(c|0)>(f|0)){break a}k=H[b>>2];e=i+k|0;h=I[e|0]|I[e+1|0]<<8|(I[e+2|0]<<16|I[e+3|0]<<24);H[b+16>>2]=g;H[b+20>>2]=c;e=J[b+38>>1];if(e>>>0<=513){c=d;d=i+8|0;c=d>>>0<8?c+1|0:c;g=d;if(d>>>0>j>>>0&(c|0)>=(f|0)|(c|0)>(f|0)){break a}H[b+16>>2]=g;H[b+20>>2]=c}if(!(h&1)){break a}d=Q(h)^31;if(d-30>>>0<4294967267){break a}H[a+8>>2]=d+1;d=-2<>2]=h;H[a+12>>2]=d^-1;H[a+24>>2]=(h|0)/2;L[a+20>>2]=O(2)/O(h|0);if(e>>>0<=513){if((c|0)>=(f|0)&g>>>0>=j>>>0|(c|0)>(f|0)){break a}f=I[g+k|0];d=g+1|0;c=d?c:c+1|0;H[b+16>>2]=d;H[b+20>>2]=c;if(f>>>0>1){break a}H[a+72>>2]=f}l=wa(a+96|0,b)}return l|0}function Qe(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0;f=H[b+12>>2];c=H[b+20>>2];g=c;h=H[b+16>>2];d=h+4|0;c=d>>>0<4?c+1|0:c;i=H[b+8>>2];a:{if(i>>>0>>0&(c|0)>=(f|0)|(c|0)>(f|0)){break a}k=H[b>>2];e=h+k|0;e=I[e|0]|I[e+1|0]<<8|(I[e+2|0]<<16|I[e+3|0]<<24);H[b+16>>2]=d;H[b+20>>2]=c;c=g;d=h+8|0;c=d>>>0<8?c+1|0:c;j=d;if(d>>>0>i>>>0&(c|0)>=(f|0)|(c|0)>(f|0)){break a}H[b+16>>2]=j;H[b+20>>2]=c;if(!(e&1)){break a}d=Q(e)^31;if(d-30>>>0<4294967267){break a}H[a+8>>2]=d+1;d=-2<>2]=e;H[a+12>>2]=d^-1;H[a+24>>2]=(e|0)/2;L[a+20>>2]=O(2)/O(e|0);if(J[b+38>>1]<=513){if((c|0)>=(f|0)&j>>>0>=i>>>0|(c|0)>(f|0)){break a}f=I[j+k|0];c=h+9|0;g=c>>>0<9?g+1|0:g;H[b+16>>2]=c;H[b+20>>2]=g;if(f>>>0>1){break a}H[a+72>>2]=f}l=wa(a+96|0,b)}return l|0}function Sa(a,b,c){var d=0,e=0;a:{if((a|0)==(b|0)){break a}e=a+c|0;if(b-e>>>0<=0-(c<<1)>>>0){return ta(a,b,c)}d=(a^b)&3;b:{c:{if(a>>>0>>0){if(d){d=a;break b}if(!(a&3)){d=a;break c}d=a;while(1){if(!c){break a}F[d|0]=I[b|0];b=b+1|0;c=c-1|0;d=d+1|0;if(d&3){continue}break}break c}d:{if(d){break d}if(e&3){while(1){if(!c){break a}c=c-1|0;d=c+a|0;F[d|0]=I[b+c|0];if(d&3){continue}break}}if(c>>>0<=3){break d}while(1){c=c-4|0;H[c+a>>2]=H[b+c>>2];if(c>>>0>3){continue}break}}if(!c){break a}while(1){c=c-1|0;F[c+a|0]=I[b+c|0];if(c){continue}break}break a}if(c>>>0<=3){break b}while(1){H[d>>2]=H[b>>2];b=b+4|0;d=d+4|0;c=c-4|0;if(c>>>0>3){continue}break}}if(!c){break a}while(1){F[d|0]=I[b|0];d=d+1|0;b=b+1|0;c=c-1|0;if(c){continue}break}}return a}function ef(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0;h=H[c+12>>2];d=h;e=H[c+20>>2];i=H[c+8>>2];f=H[c+16>>2];a:{if((d|0)<=(e|0)&i>>>0<=f>>>0|(d|0)<(e|0)){break a}j=H[c>>2];k=F[j+f|0];d=e;g=f+1|0;d=g?d:d+1|0;H[c+16>>2]=g;H[c+20>>2]=d;b:{if((k|0)==-2){break b}if((d|0)>=(h|0)&g>>>0>=i>>>0|(d|0)>(h|0)){break a}d=F[g+j|0];f=f+2|0;e=f>>>0<2?e+1|0:e;H[c+16>>2]=f;H[c+20>>2]=e;if((d-4&255)>>>0<251){break a}e=ha[H[H[a>>2]+40>>2]](a,k,d)|0;d=H[a+20>>2];H[a+20>>2]=e;if(!d){break b}ha[H[H[d>>2]+4>>2]](d)}d=H[a+20>>2];if(d){if(!(ha[H[H[a>>2]+28>>2]](a,d)|0)){break a}}if(!(ha[H[H[a>>2]+36>>2]](a,b,c)|0)){break a}c=H[a+4>>2];if(!(!c|I[c+36|0]>1)){if(!(ha[H[H[a>>2]+48>>2]](a,H[b+4>>2]-H[b>>2]>>2)|0)){break a}}l=1}return l|0}function Xb(a,b){var c=0,d=0,e=0,f=0,g=0,h=0,i=0;d=H[a+8>>2];c=H[a+4>>2];if(d-c>>2>>>0>=b>>>0){if(b){b=b<<2;c=ua(c,0,b)+b|0}H[a+4>>2]=c;return}a:{b:{c:{g=H[a>>2];f=c-g>>2;e=f+b|0;if(e>>>0<1073741824){d=d-g|0;h=d>>1;e=d>>>0>=2147483644?1073741823:e>>>0>>0?h:e;if(e){if(e>>>0>=1073741824){break c}i=sa(e<<2)}d=(f<<2)+i|0;f=b<<2;b=ua(d,0,f);f=b+f|0;e=(e<<2)+i|0;if((c|0)==(g|0)){break b}while(1){c=c-4|0;b=H[c>>2];H[c>>2]=0;d=d-4|0;H[d>>2]=b;if((c|0)!=(g|0)){continue}break}H[a+8>>2]=e;b=H[a+4>>2];H[a+4>>2]=f;c=H[a>>2];H[a>>2]=d;if((b|0)==(c|0)){break a}while(1){b=b-4|0;a=H[b>>2];H[b>>2]=0;if(a){ha[H[H[a>>2]+4>>2]](a)}if((b|0)!=(c|0)){continue}break}break a}va();v()}za();v()}H[a+8>>2]=e;H[a+4>>2]=f;H[a>>2]=b}if(c){ra(c)}}function Md(a,b,c){a:{switch(b-9|0){case 0:b=H[c>>2];H[c>>2]=b+4;H[a>>2]=H[b>>2];return;case 6:b=H[c>>2];H[c>>2]=b+4;b=G[b>>1];H[a>>2]=b;H[a+4>>2]=b>>31;return;case 7:b=H[c>>2];H[c>>2]=b+4;H[a>>2]=J[b>>1];H[a+4>>2]=0;return;case 8:b=H[c>>2];H[c>>2]=b+4;b=F[b|0];H[a>>2]=b;H[a+4>>2]=b>>31;return;case 9:b=H[c>>2];H[c>>2]=b+4;H[a>>2]=I[b|0];H[a+4>>2]=0;return;case 16:b=H[c>>2]+7&-8;H[c>>2]=b+8;M[a>>3]=M[b>>3];return;case 17:v();default:return;case 1:case 4:case 14:b=H[c>>2];H[c>>2]=b+4;b=H[b>>2];H[a>>2]=b;H[a+4>>2]=b>>31;return;case 2:case 5:case 11:case 15:b=H[c>>2];H[c>>2]=b+4;H[a>>2]=H[b>>2];H[a+4>>2]=0;return;case 3:case 10:case 12:case 13:break a}}b=H[c>>2]+7&-8;H[c>>2]=b+8;c=H[b+4>>2];H[a>>2]=H[b>>2];H[a+4>>2]=c}function Ed(a,b){var c=0,d=0,e=0;c=fa+-64|0;fa=c;d=H[a>>2];e=H[d-4>>2];d=H[d-8>>2];H[c+32>>2]=0;H[c+36>>2]=0;H[c+40>>2]=0;H[c+44>>2]=0;H[c+48>>2]=0;H[c+52>>2]=0;F[c+55|0]=0;F[c+56|0]=0;F[c+57|0]=0;F[c+58|0]=0;F[c+59|0]=0;F[c+60|0]=0;F[c+61|0]=0;F[c+62|0]=0;H[c+24>>2]=0;H[c+28>>2]=0;H[c+20>>2]=0;H[c+16>>2]=14924;H[c+12>>2]=a;H[c+8>>2]=b;a=a+d|0;d=0;a:{if(Za(e,b,0)){H[c+56>>2]=1;ha[H[H[e>>2]+20>>2]](e,c+8|0,a,a,1,0);d=H[c+32>>2]==1?a:0;break a}ha[H[H[e>>2]+24>>2]](e,c+8|0,a,1,0);b:{switch(H[c+44>>2]){case 0:d=H[c+48>>2]==1?H[c+36>>2]==1?H[c+40>>2]==1?H[c+28>>2]:0:0:0;break a;case 1:break b;default:break a}}if(H[c+32>>2]!=1){if(H[c+48>>2]|H[c+36>>2]!=1|H[c+40>>2]!=1){break a}}d=H[c+24>>2]}fa=c- -64|0;return d}function xa(a,b){var c=0,d=0,e=0,f=0,g=0,h=0,i=0;H[a+16>>2]=0;c=H[a>>2];H[a+4>>2]=c;H[a+12>>2]=c;g=H[b+12>>2];c=g;d=H[b+20>>2];f=H[b+16>>2];e=f+4|0;d=e>>>0<4?d+1|0:d;h=H[b+8>>2];a:{if(h>>>0>>0&(c|0)<=(d|0)|(c|0)<(d|0)){break a}c=f+H[b>>2]|0;c=I[c|0]|I[c+1|0]<<8|(I[c+2|0]<<16|I[c+3|0]<<24);H[b+16>>2]=e;H[b+20>>2]=d;if(!c|c&3){break a}f=g-(d+(e>>>0>h>>>0)|0)|0;if(h-e>>>0>>0&(f|0)<=0|(f|0)<0){break a}if(c>>>0>=4){Aa(a,c>>>2|0);h=H[b+8>>2];g=H[b+12>>2];e=H[b+16>>2];d=H[b+20>>2]}f=c+e|0;d=c>>>0>f>>>0?d+1|0:d;if(f>>>0>h>>>0&(d|0)>=(g|0)|(d|0)>(g|0)){break a}ta(H[a>>2],e+H[b>>2]|0,c);d=H[b+20>>2];e=c+H[b+16>>2]|0;d=e>>>0>>0?d+1|0:d;H[b+16>>2]=e;H[b+20>>2]=d;H[a+16>>2]=0;H[a+12>>2]=H[a>>2];i=1}return i}function ce(a,b){var c=0,d=0,e=0,f=0;d=-1;e=-1;f=-1;a:{b:{if((b|0)==-1){break b}e=H[H[H[a+4>>2]+12>>2]+(b<<2)>>2];c=b+1|0;c=(c>>>0)%3|0?c:b-2|0;if((c|0)>=0){f=(c>>>0)/3|0;f=H[(H[H[a>>2]+96>>2]+N(f,12)|0)+(c-N(f,3)<<2)>>2]}c:{if((e|0)==-1){break c}c=((e>>>0)%3|0?-1:2)+e|0;if((c|0)<0){break c}d=(c>>>0)/3|0;d=H[(H[H[a>>2]+96>>2]+N(d,12)|0)+(c-N(d,3)<<2)>>2]}c=-1;if((d|0)!=(f|0)){break a}f=-1;d:{b=((b>>>0)%3|0?-1:2)+b|0;if((b|0)>=0){d=(b>>>0)/3|0;d=H[(H[H[a>>2]+96>>2]+N(d,12)|0)+(b-N(d,3)<<2)>>2];if((e|0)==-1){break b}break d}d=-1;if((e|0)!=-1){break d}break b}b=e+1|0;b=(b>>>0)%3|0?b:e-2|0;if((b|0)<0){break b}c=H[H[a>>2]+96>>2];a=(b>>>0)/3|0;f=H[(c+N(a,12)|0)+(b-N(a,3)<<2)>>2]}c=(d|0)!=(f|0)?-1:e}return c}function zh(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0;c=sa(72);H[c+4>>2]=0;H[c+8>>2]=0;H[c>>2]=1984;H[c+12>>2]=0;H[c+16>>2]=0;H[c+20>>2]=0;H[c+24>>2]=0;H[c+28>>2]=0;H[c+32>>2]=0;H[c+36>>2]=0;H[c+40>>2]=0;H[c>>2]=2128;H[c+44>>2]=0;H[c+48>>2]=0;H[c+52>>2]=0;H[c+56>>2]=0;H[c+60>>2]=0;H[c+64>>2]=0;H[c+68>>2]=0;h=c;a:{if((b|0)>=0){g=a+8|0;c=H[a+12>>2];e=H[a+8>>2];f=c-e>>2;b:{if((f|0)>(b|0)){break b}d=b+1|0;if(b>>>0>=f>>>0){Xb(g,d-f|0);break b}if(d>>>0>=f>>>0){break b}e=(d<<2)+e|0;if((e|0)!=(c|0)){while(1){c=c-4|0;d=H[c>>2];H[c>>2]=0;if(d){ha[H[H[d>>2]+4>>2]](d)}if((c|0)!=(e|0)){continue}break}}H[a+12>>2]=e}a=H[g>>2]+(b<<2)|0;c=H[a>>2];H[a>>2]=h;if(!c){break a}}ha[H[H[c>>2]+4>>2]](c)}return(b^-1)>>>31|0}function ua(a,b,c){var d=0,e=0,f=0;a:{if(!c){break a}F[a|0]=b;e=a+c|0;F[e-1|0]=b;if(c>>>0<3){break a}F[a+2|0]=b;F[a+1|0]=b;F[e-3|0]=b;F[e-2|0]=b;if(c>>>0<7){break a}F[a+3|0]=b;F[e-4|0]=b;if(c>>>0<9){break a}e=0-a&3;f=e+a|0;d=N(b&255,16843009);H[f>>2]=d;b=c-e&-4;c=b+f|0;H[c-4>>2]=d;if(b>>>0<9){break a}H[f+8>>2]=d;H[f+4>>2]=d;H[c-8>>2]=d;H[c-12>>2]=d;if(b>>>0<25){break a}H[f+24>>2]=d;H[f+20>>2]=d;H[f+16>>2]=d;H[f+12>>2]=d;H[c-16>>2]=d;H[c-20>>2]=d;H[c-24>>2]=d;H[c-28>>2]=d;c=b;b=f&4|24;c=c-b|0;if(c>>>0<32){break a}d=Nj(d,0,1,1);e=ga;b=b+f|0;while(1){H[b+24>>2]=d;H[b+28>>2]=e;H[b+16>>2]=d;H[b+20>>2]=e;H[b+8>>2]=d;H[b+12>>2]=e;H[b>>2]=d;H[b+4>>2]=e;b=b+32|0;c=c-32|0;if(c>>>0>31){continue}break}}return a}function Jj(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0;d=H[b+12>>2];h=d;c=H[b+20>>2];e=c;f=H[b+16>>2];g=f+4|0;c=g>>>0<4?c+1|0:c;i=H[b+8>>2];a:{if(i>>>0>>0&(c|0)>=(d|0)|(c|0)>(d|0)){break a}j=H[b>>2];d=j+f|0;d=I[d|0]|I[d+1|0]<<8|(I[d+2|0]<<16|I[d+3|0]<<24);H[b+16>>2]=g;H[b+20>>2]=c;c=e;e=f+8|0;c=e>>>0<8?c+1|0:c;f=e;e=c;if(f>>>0>i>>>0&(c|0)>=(h|0)|(c|0)>(h|0)){break a}c=g+j|0;c=I[c|0]|I[c+1|0]<<8|(I[c+2|0]<<16|I[c+3|0]<<24);H[b+16>>2]=f;H[b+20>>2]=e;if((c|0)<(d|0)){break a}H[a+16>>2]=c;H[a+12>>2]=d;b=(c>>31)-((d>>31)+(c>>>0>>0)|0)|0;c=c-d|0;if(!b&c>>>0>2147483646|b){break a}k=1;b=c+1|0;H[a+20>>2]=b;c=b>>>1|0;H[a+24>>2]=c;H[a+28>>2]=0-c;if(b&1){break a}H[a+24>>2]=c-1}return k|0}function Ih(a){a=a|0;var b=0,c=0,d=0,e=0,f=0,g=0;b=H[a+4>>2];d=H[b>>2];a:{c=H[a+12>>2];c=H[c+56>>2]-H[c+52>>2]|0;e=c>>2;b:{if(e>>>0<=H[b+8>>2]-d>>2>>>0){break b}if((c|0)<0){break a}f=H[b+4>>2];c=sa(c);g=c+(e<<2)|0;e=f-d|0;f=e+c|0;if((e|0)>0){ta(c,d,e)}H[b+8>>2]=g;H[b+4>>2]=f;H[b>>2]=c;if(!d){break b}ra(d)}e=a+8|0;b=H[a+76>>2];c:{if(b){d=H[b>>2];if((d|0)==H[b+4>>2]){return 1}b=0;while(1){c=ue(e,H[(b<<2)+d>>2]);if(!c){break c}f=H[a+76>>2];d=H[f>>2];b=b+1|0;if(b>>>0>2]-d>>2>>>0){continue}break}break c}c=1;a=H[H[a+12>>2]+64>>2];a=H[a+4>>2]-H[a>>2]|0;if(a>>>0<12){break c}a=(a>>2>>>0)/3|0;b=0;while(1){c=ue(e,N(b,3));if(!c){break c}b=b+1|0;if((a|0)!=(b|0)){continue}break}}return c|0}va();v()}function rd(a,b,c){var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0;e=a+16|0;d=H[e>>2];a:{if(!d){break a}f=H[b>>2];b=e;while(1){g=(f|0)>H[d+16>>2];b=g?b:d;d=H[(g?d+4|0:d)>>2];if(d){continue}break}if((b|0)==(e|0)|(f|0)>2]){break a}d=H[b+24>>2];if(!d){break a}f=b+20|0;b=I[c+11|0];e=b<<24>>24<0;g=e?H[c>>2]:c;b=e?H[c+4>>2]:b;while(1){e=I[d+27|0];h=e<<24>>24<0;e=h?H[d+20>>2]:e;j=e>>>0>>0;b:{c:{d:{e:{f:{g:{i=j?e:b;if(i){h=h?H[d+16>>2]:d+16|0;k=Ha(g,h,i);if(k){break g}if(b>>>0>=e>>>0){break f}break b}if(b>>>0>=e>>>0){break e}break b}if((k|0)<0){break b}}e=Ha(h,g,i);if(e){break d}}if(j){break c}return Rc(f,c)}if((e|0)<0){break c}return Rc(f,c)}d=d+4|0}d=H[d>>2];if(d){continue}break}}return Rc(a,c)}function Nh(a){a=a|0;var b=0,c=0,d=0,e=0,f=0,g=0;b=H[a+4>>2];d=H[b>>2];a:{c=H[a+12>>2];c=H[c+28>>2]-H[c+24>>2]|0;e=c>>2;b:{if(e>>>0<=H[b+8>>2]-d>>2>>>0){break b}if((c|0)<0){break a}f=H[b+4>>2];c=sa(c);g=c+(e<<2)|0;e=f-d|0;f=e+c|0;if((e|0)>0){ta(c,d,e)}H[b+8>>2]=g;H[b+4>>2]=f;H[b>>2]=c;if(!d){break b}ra(d)}e=a+8|0;b=H[a+76>>2];c:{if(b){d=H[b>>2];if((d|0)==H[b+4>>2]){return 1}b=0;while(1){c=ve(e,H[(b<<2)+d>>2]);if(!c){break c}f=H[a+76>>2];d=H[f>>2];b=b+1|0;if(b>>>0>2]-d>>2>>>0){continue}break}break c}c=1;a=H[a+12>>2];a=H[a+4>>2]-H[a>>2]|0;if(a>>>0<12){break c}a=(a>>2>>>0)/3|0;b=0;while(1){c=ve(e,N(b,3));if(!c){break c}b=b+1|0;if((a|0)!=(b|0)){continue}break}}return c|0}va();v()}function ae(a,b,c){var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0;d=fa-16|0;fa=d;f=H[a+24>>2];k=H[a+28>>2];a:{if((f|0)!=(k|0)){while(1){H[d+8>>2]=0;H[d>>2]=0;H[d+4>>2]=0;a=_d(H[f>>2],b,d);g=I[d+11|0];h=g<<24>>24;i=3;b:{c:{d:{if(!a){break d}i=0;a=I[c+11|0];e=a<<24>>24;j=(h|0)<0?H[d+4>>2]:g;if((j|0)!=(((e|0)<0?H[c+4>>2]:a)|0)){break d}a=(e|0)<0?H[c>>2]:c;e=(h|0)<0;e:{if(!e){e=d;if(!h){break e}while(1){if(I[e|0]!=I[a|0]){break d}a=a+1|0;e=e+1|0;g=g-1|0;if(g){continue}break}break e}if(!j){break e}if(Ha(e?H[d>>2]:d,a,j)){break c}}l=H[f>>2];i=1}if((h|0)>=0){break b}}ra(H[d>>2])}f:{switch(i|0){case 0:case 3:break f;default:break a}}f=f+4|0;if((k|0)!=(f|0)){continue}break}}l=0}fa=d+16|0;return l}function Ra(a,b,c){var d=0,e=0,f=0,g=0;f=fa-16|0;fa=f;H[a+4>>2]=0;a:{b:{if(!b){break b}d=H[a+8>>2];e=d<<5;c:{if(e>>>0>=b>>>0){H[a+4>>2]=b;break c}H[f+8>>2]=0;H[f>>2]=0;H[f+4>>2]=0;if((b|0)<0){break a}if(e>>>0<=1073741822){d=d<<6;e=b+31&-32;d=d>>>0>e>>>0?d:e}else{d=2147483647}tb(f,d);d=H[a>>2];H[a>>2]=H[f>>2];H[f>>2]=d;e=H[a+4>>2];H[a+4>>2]=b;H[f+4>>2]=e;e=H[a+8>>2];H[a+8>>2]=H[f+8>>2];H[f+8>>2]=e;if(!d){break c}ra(d)}g=b&-32;d=b>>>5|0;e=d<<2;a=H[a>>2];if(I[c|0]){a=ua(a,255,e);if((b|0)==(g|0)){break b}a=a+(d<<2)|0;H[a>>2]=H[a>>2]|-1>>>32-(b&31);break b}a=ua(a,0,e);if((b|0)==(g|0)){break b}a=a+(d<<2)|0;H[a>>2]=H[a>>2]&(-1>>>32-(b&31)^-1)}fa=f+16|0;return}va();v()}function sf(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0;d=H[b>>2];b=H[b+4>>2];f=H[H[a+8>>2]+40>>2];m=sa((f|0)<0?-1:f);g=1;h=b-d|0;a:{if((h|0)<=0){break a}b=0;g=0;d=0+H[c+20>>2]|0;i=H[c+16>>2];e=f+i|0;d=e>>>0>>0?d+1|0:d;j=e;e=H[c+12>>2];if(j>>>0>K[c+8>>2]&(e|0)<=(d|0)|(d|0)>(e|0)){break a}k=h>>2;g=(k|0)<=1?1:k;while(1){b:{e=ta(m,i+H[c>>2]|0,f);H[c+16>>2]=j;H[c+20>>2]=d;ta(H[H[H[a+8>>2]+64>>2]>>2]+b|0,e,f);l=l+1|0;if((g|0)==(l|0)){break b}b=b+f|0;d=n+H[c+20>>2]|0;i=H[c+16>>2];e=f+i|0;d=e>>>0>>0?d+1|0:d;j=e;h=e;e=H[c+12>>2];if((e|0)>=(d|0)&K[c+8>>2]>=h>>>0|(d|0)<(e|0)){continue}}break}g=(l|0)>=(k|0)}ra(m);return g|0}function nb(a,b){var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0;b=H[b>>2];h=H[b+8>>2];i=H[b+4>>2];j=H[b>>2];d=H[a>>2];b=H[d+4>>2];a=H[d+8>>2];if(b>>>0>>0){H[b+8>>2]=h;H[b+4>>2]=i;H[b>>2]=j;H[d+4>>2]=b+12;return}a:{e=H[d>>2];g=(b-e|0)/12|0;c=g+1|0;if(c>>>0<357913942){f=(a-e|0)/12|0;a=f<<1;c=f>>>0>=178956970?357913941:a>>>0>c>>>0?a:c;if(c){if(c>>>0>=357913942){break a}f=sa(N(c,12))}else{f=0}a=f+N(g,12)|0;H[a+8>>2]=h;H[a+4>>2]=i;H[a>>2]=j;g=a+12|0;if((b|0)!=(e|0)){while(1){a=a-12|0;b=b-12|0;H[a>>2]=H[b>>2];H[a+4>>2]=H[b+4>>2];H[a+8>>2]=H[b+8>>2];if((b|0)!=(e|0)){continue}break}}H[d+8>>2]=f+N(c,12);H[d+4>>2]=g;H[d>>2]=a;if(e){ra(e)}return}va();v()}za();v()}function kf(a,b){a=a|0;b=b|0;a=0;a:{switch(b|0){case 0:a=sa(20);H[a+12>>2]=-1;H[a+16>>2]=0;H[a+4>>2]=0;H[a+8>>2]=0;H[a>>2]=2232;return a|0;case 1:a=sa(24);H[a+12>>2]=-1;H[a+16>>2]=0;H[a+4>>2]=0;H[a+8>>2]=0;H[a>>2]=2232;H[a+20>>2]=0;H[a>>2]=2448;return a|0;case 2:a=sa(48);H[a+12>>2]=-1;H[a+16>>2]=0;H[a+4>>2]=0;H[a+8>>2]=0;H[a>>2]=2232;H[a+20>>2]=0;H[a>>2]=2448;H[a+24>>2]=1832;H[a>>2]=11048;H[a+32>>2]=0;H[a+36>>2]=0;H[a+28>>2]=-1;H[a+40>>2]=0;H[a+44>>2]=0;return a|0;case 3:a=sa(32);H[a+12>>2]=-1;H[a+16>>2]=0;H[a+4>>2]=0;H[a+8>>2]=0;H[a>>2]=2232;H[a+20>>2]=0;H[a>>2]=2448;H[a+24>>2]=1032;H[a>>2]=7028;H[a+28>>2]=-1;break;default:break a}}return a|0}function Gg(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,f=0,g=0;e=fa-32|0;fa=e;a:{b:{f=Pa(c);if(f>>>0<4294967280){c:{d:{if(f>>>0>=11){g=(f|15)+1|0;a=sa(g);H[e+24>>2]=g|-2147483648;H[e+16>>2]=a;H[e+20>>2]=f;break d}F[e+27|0]=f;a=e+16|0;if(!f){break c}}ta(a,c,f)}F[a+f|0]=0;c=Pa(d);if(c>>>0>=4294967280){break b}e:{f:{if(c>>>0>=11){f=(c|15)+1|0;a=sa(f);H[e+8>>2]=f|-2147483648;H[e>>2]=a;H[e+4>>2]=c;break f}F[e+11|0]=c;a=e;if(!c){break e}}ta(a,d,c)}F[a+c|0]=0;c=H[b+4>>2];a=-1;g:{if(!c){break g}c=ae(c,e+16|0,e);a=-1;if(!c){break g}a=Xd(b,H[c+24>>2])}if(F[e+11|0]<0){ra(H[e>>2])}if(F[e+27|0]<0){ra(H[e+16>>2])}fa=e+32|0;break a}Qa();v()}Qa();v()}return a|0}function Ri(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0;H[b>>2]=1;f=b+8|0;c=H[b+8>>2];d=H[b+12>>2]-c|0;if(d>>>0<=4294967291){mc(f,d+4|0);c=H[f>>2]}c=c+d|0;d=H[a+4>>2];F[c|0]=d;F[c+1|0]=d>>>8;F[c+2|0]=d>>>16;F[c+3|0]=d>>>24;c=H[a+8>>2];if((c|0)!=H[a+12>>2]){d=0;while(1){g=(d<<2)+c|0;c=H[b+8>>2];e=H[b+12>>2]-c|0;if(e>>>0<=4294967291){mc(f,e+4|0);c=H[f>>2]}c=c+e|0;e=H[g>>2];F[c|0]=e;F[c+1|0]=e>>>8;F[c+2|0]=e>>>16;F[c+3|0]=e>>>24;d=d+1|0;c=H[a+8>>2];if(d>>>0>2]-c>>2>>>0){continue}break}}c=H[b+12>>2];b=H[b+8>>2];c=c-b|0;if(c>>>0<=4294967291){mc(f,c+4|0);b=H[f>>2]}b=b+c|0;a=H[a+20>>2];F[b|0]=a;F[b+1|0]=a>>>8;F[b+2|0]=a>>>16;F[b+3|0]=a>>>24}function Pi(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0;f=fa-32|0;fa=f;g=e>>>0>1073741823?-1:e<<2;l=ua(sa(g),0,g);g=l;i=H[g>>2];g=H[g+4>>2];k=H[b+4>>2];H[f+24>>2]=H[b>>2];H[f+28>>2]=k;H[f+8>>2]=i;H[f+12>>2]=g;i=a+8|0;sc(f+16|0,i,f+8|0,f+24|0);H[c>>2]=H[f+16>>2];H[c+4>>2]=H[f+20>>2];if((d|0)>(e|0)){k=0-e<<2;a=e;while(1){h=a<<2;g=h+c|0;j=g+k|0;m=H[j>>2];j=H[j+4>>2];h=b+h|0;n=H[h+4>>2];H[f+24>>2]=H[h>>2];H[f+28>>2]=n;H[f+8>>2]=m;H[f+12>>2]=j;sc(f+16|0,i,f+8|0,f+24|0);H[g>>2]=H[f+16>>2];H[g+4>>2]=H[f+20>>2];a=a+e|0;if((d|0)>(a|0)){continue}break}}ra(l);fa=f+32|0;return 1}function Eb(a,b,c){var d=0,e=0,f=0,g=0,h=0;f=c-b|0;g=f>>2;d=H[a+8>>2];e=H[a>>2];if(g>>>0<=d-e>>2>>>0){d=H[a+4>>2];f=d-e|0;h=f>>2;f=g>>>0>h>>>0?b+f|0:c;if((f|0)!=(b|0)){while(1){H[e>>2]=H[b>>2];e=e+4|0;b=b+4|0;if((f|0)!=(b|0)){continue}break}}if(g>>>0>h>>>0){b=c-f|0;if((b|0)>0){d=ta(d,f,b)+b|0}H[a+4>>2]=d;return}H[a+4>>2]=e;return}if(e){H[a+4>>2]=e;ra(e);H[a+8>>2]=0;H[a>>2]=0;H[a+4>>2]=0;d=0}a:{if((f|0)<0){break a}e=d>>1;d=d>>>0>=2147483644?1073741823:e>>>0>g>>>0?e:g;if(d>>>0>=1073741824){break a}e=d<<2;d=sa(e);H[a>>2]=d;H[a+4>>2]=d;H[a+8>>2]=d+e;if((b|0)!=(c|0)){d=ta(d,b,f)+f|0}H[a+4>>2]=d;return}va();v()}function Gi(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0;f=fa-32|0;fa=f;h=e>>>0>1073741823?-1:e<<2;h=ua(sa(h),0,h);g=H[b>>2];i=H[b+4>>2];k=H[h+4>>2];H[f+16>>2]=H[h>>2];H[f+20>>2]=k;H[f+8>>2]=g;H[f+12>>2]=i;i=a+8|0;rc(f+24|0,i,f+16|0,f+8|0);H[c>>2]=H[f+24>>2];H[c+4>>2]=H[f+28>>2];if((d|0)>(e|0)){k=0-e<<2;a=e;while(1){g=a<<2;j=g+b|0;m=H[j>>2];j=H[j+4>>2];g=c+g|0;l=g+k|0;n=H[l+4>>2];H[f+16>>2]=H[l>>2];H[f+20>>2]=n;H[f+8>>2]=m;H[f+12>>2]=j;rc(f+24|0,i,f+16|0,f+8|0);H[g>>2]=H[f+24>>2];H[g+4>>2]=H[f+28>>2];a=a+e|0;if((d|0)>(a|0)){continue}break}}ra(h);fa=f+32|0;return 1}function zg(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0;a:{if(K[b+80>>2]>65535){break a}a=H[b+100>>2];b=H[b+96>>2];e=(a-b|0)/12|0;f=N(e,6);g=(f|0)==(c|0);if((a|0)==(b|0)|(c|0)!=(f|0)){break a}g=1;c=e>>>0<=1?1:e;i=c&1;a=0;if(e>>>0>=2){j=c&-2;c=0;while(1){f=N(a,6);h=f+d|0;e=b+N(a,12)|0;G[h>>1]=H[e>>2];G[(f|2)+d>>1]=H[e+4>>2];G[h+4>>1]=H[e+8>>2];f=a|1;e=N(f,6)+d|0;f=b+N(f,12)|0;G[e>>1]=H[f>>2];G[e+2>>1]=H[f+4>>2];G[e+4>>1]=H[f+8>>2];a=a+2|0;c=c+2|0;if((j|0)!=(c|0)){continue}break}}if(!i){break a}c=N(a,6)+d|0;a=b+N(a,12)|0;G[c>>1]=H[a>>2];G[c+2>>1]=H[a+4>>2];G[c+4>>1]=H[a+8>>2]}return g|0}function Ui(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0;e=H[b+12>>2];c=H[b+20>>2];f=c;g=H[b+16>>2];d=g+4|0;c=d>>>0<4?c+1|0:c;h=H[b+8>>2];i=d;a:{if(h>>>0>>0&(c|0)>=(e|0)|(c|0)>(e|0)){break a}d=g+H[b>>2]|0;d=I[d|0]|I[d+1|0]<<8|(I[d+2|0]<<16|I[d+3|0]<<24);H[b+16>>2]=i;H[b+20>>2]=c;if(J[b+38>>1]<=513){c=f;f=g+8|0;c=f>>>0<8?c+1|0:c;if(f>>>0>h>>>0&(c|0)>=(e|0)|(c|0)>(e|0)){break a}H[b+16>>2]=f;H[b+20>>2]=c}if(!(d&1)){break a}b=Q(d)^31;c=b-30|0;if(c>>>0>=4294967267){H[a+8>>2]=b+1;e=-2<>2]=b;H[a+12>>2]=e^-1;H[a+24>>2]=(b|0)/2;L[a+20>>2]=O(2)/O(b|0)}j=c>>>0>4294967266}return j|0}function tf(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0;f=1;a:{if((ha[H[H[b>>2]+20>>2]](b)|0)<=0){break a}while(1){f=0;c=Yd(H[H[a+4>>2]+4>>2],ha[H[H[b>>2]+24>>2]](b,g)|0);if((c|0)==-1){break a}e=H[a+4>>2];b:{if(I[e+36|0]<=1){if(ha[H[H[b>>2]+28>>2]](b,H[H[H[e+4>>2]+8>>2]+(c<<2)>>2])|0){break b}break a}d=0;c:{if((c|0)<0){break c}h=H[e+4>>2];if(H[h+12>>2]-H[h+8>>2]>>2<=(c|0)){break c}d=H[H[e+8>>2]+(H[H[e+20>>2]+(c<<2)>>2]<<2)>>2];d=ha[H[H[d>>2]+32>>2]](d,c)|0}if(!d){break a}if(!(ha[H[H[b>>2]+28>>2]](b,d)|0)){break a}}f=1;g=g+1|0;if((ha[H[H[b>>2]+20>>2]](b)|0)>(g|0)){continue}break}}return f|0}function Qg(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0,g=0;a=fa-32|0;fa=a;H[a+24>>2]=0;H[a+28>>2]=0;a:{d=Pa(c);if(d>>>0<4294967280){b:{c:{if(d>>>0>=11){f=(d|15)+1|0;e=sa(f);H[a+16>>2]=f|-2147483648;H[a+8>>2]=e;H[a+12>>2]=d;break c}F[a+19|0]=d;e=a+8|0;if(!d){break b}}ta(e,c,d)}F[d+e|0]=0;c=b+4|0;b=rb(b,a+8|0);d:{if((c|0)==(b|0)){break d}c=H[b+32>>2];b=H[b+28>>2];if((c-b|0)!=8){break d}c=I[b+4|0]|I[b+5|0]<<8|(I[b+6|0]<<16|I[b+7|0]<<24);H[a+24>>2]=I[b|0]|I[b+1|0]<<8|(I[b+2|0]<<16|I[b+3|0]<<24);H[a+28>>2]=c}g=M[a+24>>3];if(F[a+19|0]<0){ra(H[a+8>>2])}fa=a+32|0;break a}Qa();v()}return+g}function De(a){var b=0,c=0,d=0,e=0,f=0;f=1;c=H[a+140>>2];a:{if((c|0)<=0){break a}b=c<<4;d=sa(c>>>0>268435455?-1:b|4);H[d>>2]=c;d=d+4|0;c=d+b|0;b=d;while(1){H[b>>2]=0;H[b+4>>2]=0;F[b+5|0]=0;F[b+6|0]=0;F[b+7|0]=0;F[b+8|0]=0;F[b+9|0]=0;F[b+10|0]=0;F[b+11|0]=0;F[b+12|0]=0;b=b+16|0;if((c|0)!=(b|0)){continue}break}e=H[a+136>>2];H[a+136>>2]=d;if(e){c=e-4|0;d=H[c>>2];if(d){b=(d<<4)+e|0;while(1){b=b-16|0;if((e|0)!=(b|0)){continue}break}}ra(c)}b=0;if(H[a+140>>2]<=0){break a}while(1){f=wa(H[a+136>>2]+(b<<4)|0,a);if(!f){break a}b=b+1|0;if((b|0)>2]){continue}break}}return f}function qb(a,b){var c=0,d=0,e=0,f=0,g=0;a:{if(H[a+64>>2]){break a}c=sa(32);H[c+16>>2]=0;H[c+20>>2]=0;H[c+8>>2]=0;H[c>>2]=0;H[c+4>>2]=0;H[c+24>>2]=0;H[c+28>>2]=0;d=H[a+64>>2];H[a+64>>2]=c;if(!d){break a}c=H[d>>2];if(c){H[d+4>>2]=c;ra(c)}ra(d)}e=H[a+64>>2];c=H[a+28>>2]-1|0;if(c>>>0<=10){d=H[(c<<2)+13584>>2]}else{d=-1}c=N(d,I[a+24|0]);d=c;g=c>>31;e=re(e,0,Nj(c,g,b,0),ga);if(e){c=H[a+64>>2];H[a>>2]=c;f=H[c+20>>2];H[a+8>>2]=H[c+16>>2];H[a+12>>2]=f;f=H[c+24>>2];c=H[c+28>>2];H[a+48>>2]=0;H[a+52>>2]=0;H[a+40>>2]=d;H[a+44>>2]=g;H[a+16>>2]=f;H[a+20>>2]=c;H[a+80>>2]=b}return e}function Li(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0;f=H[b+12>>2];c=H[b+20>>2];e=c;g=H[b+16>>2];d=g+4|0;c=d>>>0<4?c+1|0:c;h=H[b+8>>2];i=d;a:{if(h>>>0>>0&(c|0)>=(f|0)|(c|0)>(f|0)){break a}d=g+H[b>>2]|0;d=I[d|0]|I[d+1|0]<<8|(I[d+2|0]<<16|I[d+3|0]<<24);H[b+16>>2]=i;H[b+20>>2]=c;c=e;e=g+8|0;c=e>>>0<8?c+1|0:c;if(e>>>0>h>>>0&(c|0)>=(f|0)|(c|0)>(f|0)){break a}H[b+16>>2]=e;H[b+20>>2]=c;if(!(d&1)){break a}b=Q(d)^31;if(b-30>>>0<4294967267){break a}j=1;H[a+8>>2]=b+1;c=-2<>2]=b;H[a+12>>2]=c^-1;H[a+24>>2]=(b|0)/2;L[a+20>>2]=O(2)/O(b|0)}return j|0}function fc(a,b){var c=0;c=H[b+4>>2];H[a>>2]=H[b>>2];H[a+4>>2]=c;c=H[b+60>>2];H[a+56>>2]=H[b+56>>2];H[a+60>>2]=c;c=H[b+52>>2];H[a+48>>2]=H[b+48>>2];H[a+52>>2]=c;c=H[b+44>>2];H[a+40>>2]=H[b+40>>2];H[a+44>>2]=c;c=H[b+36>>2];H[a+32>>2]=H[b+32>>2];H[a+36>>2]=c;c=H[b+28>>2];H[a+24>>2]=H[b+24>>2];H[a+28>>2]=c;c=H[b+20>>2];H[a+16>>2]=H[b+16>>2];H[a+20>>2]=c;c=H[b+12>>2];H[a+8>>2]=H[b+8>>2];H[a+12>>2]=c;H[a+88>>2]=0;H[a+64>>2]=0;H[a+68>>2]=0;H[a+72>>2]=0;H[a+76>>2]=0;F[a+77|0]=0;F[a+78|0]=0;F[a+79|0]=0;F[a+80|0]=0;F[a+81|0]=0;F[a+82|0]=0;F[a+83|0]=0;F[a+84|0]=0;return a}function Ca(a,b,c){var d=0,e=0,f=0,g=0,h=0;g=c-b|0;f=g>>2;e=H[a+8>>2];d=H[a>>2];if(f>>>0<=e-d>>2>>>0){e=H[a+4>>2]-d|0;g=e>>2;e=g>>>0>>0?b+e|0:c;h=e-b|0;if((b|0)!=(e|0)){Sa(d,b,h)}if(g>>>0>>0){b=H[a+4>>2];c=c-e|0;if((c|0)>0){b=ta(b,e,c)+c|0}H[a+4>>2]=b;return}H[a+4>>2]=d+h;return}if(d){H[a+4>>2]=d;ra(d);H[a+8>>2]=0;H[a>>2]=0;H[a+4>>2]=0;e=0}a:{if((g|0)<0){break a}d=e>>1;d=e>>>0>=2147483644?1073741823:d>>>0>f>>>0?d:f;if(d>>>0>=1073741824){break a}f=d<<2;d=sa(f);H[a>>2]=d;H[a+4>>2]=d;H[a+8>>2]=d+f;if((b|0)!=(c|0)){d=ta(d,b,g)+g|0}H[a+4>>2]=d;return}va();v()}function yg(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0;a=H[b+100>>2];b=H[b+96>>2];h=a-b|0;a:{if((h|0)!=(c|0)|(a|0)==(b|0)){break a}g=(c|0)/12|0;e=g>>>0<=1?1:g;j=e&1;a=0;if(g>>>0>=2){k=e&-2;g=0;while(1){e=N(a,12);i=e+d|0;f=b+e|0;H[i>>2]=H[f>>2];H[(e|4)+d>>2]=H[f+4>>2];H[i+8>>2]=H[f+8>>2];f=N(a|1,12);e=f+d|0;f=b+f|0;H[e>>2]=H[f>>2];H[e+4>>2]=H[f+4>>2];H[e+8>>2]=H[f+8>>2];a=a+2|0;g=g+2|0;if((k|0)!=(g|0)){continue}break}}if(!j){break a}e=d;d=N(a,12);a=e+d|0;b=b+d|0;H[a>>2]=H[b>>2];H[a+4>>2]=H[b+4>>2];H[a+8>>2]=H[b+8>>2]}return(c|0)==(h|0)|0}function rb(a,b){var c=0,d=0,e=0,f=0,g=0,h=0,i=0;f=a+4|0;a=H[a+4>>2];a:{b:{if(!a){break b}d=I[b+11|0];c=d<<24>>24<0;g=c?H[b>>2]:b;d=c?H[b+4>>2]:d;b=f;while(1){e=I[a+27|0];c=e<<24>>24<0;e=c?H[a+20>>2]:e;h=e>>>0>d>>>0;i=h?d:e;c:{if(i){c=Ha(c?H[a+16>>2]:a+16|0,g,i);if(c){break c}}c=d>>>0>e>>>0?-1:h}c=(c|0)<0;b=c?b:a;a=H[(c?a+4|0:a)>>2];if(a){continue}break}if((b|0)==(f|0)){break b}c=I[b+27|0];a=c<<24>>24<0;d:{c=a?H[b+20>>2]:c;e=c>>>0>>0?c:d;if(e){a=Ha(g,a?H[b+16>>2]:b+16|0,e);if(a){break d}}if(c>>>0>d>>>0){break b}break a}if((a|0)>=0){break a}}b=f}return b}function If(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;if(Za(a,H[b+8>>2],e)){if(!(H[b+28>>2]==1|H[b+4>>2]!=(c|0))){H[b+28>>2]=d}return}a:{if(Za(a,H[b>>2],e)){if(!(H[b+16>>2]!=(c|0)&H[b+20>>2]!=(c|0))){if((d|0)!=1){break a}H[b+32>>2]=1;return}H[b+32>>2]=d;b:{if(H[b+44>>2]==4){break b}G[b+52>>1]=0;a=H[a+8>>2];ha[H[H[a>>2]+20>>2]](a,b,c,c,1,e);if(I[b+53|0]){H[b+44>>2]=3;if(!I[b+52|0]){break b}break a}H[b+44>>2]=4}H[b+20>>2]=c;H[b+40>>2]=H[b+40>>2]+1;if(H[b+36>>2]!=1|H[b+24>>2]!=2){break a}F[b+54|0]=1;return}a=H[a+8>>2];ha[H[H[a>>2]+24>>2]](a,b,c,d,e)}}function Fb(a,b,c){var d=0,e=0,f=0,g=0;a:{b:{if(!b){break b}if(J[a+38>>1]<=513){e=H[a+12>>2];b=H[a+20>>2];f=H[a+16>>2];g=f+8|0;b=g>>>0<8?b+1|0:b;if(g>>>0>K[a+8>>2]&(b|0)>=(e|0)|(b|0)>(e|0)){break a}b=f+H[a>>2]|0;d=I[b+4|0]|I[b+5|0]<<8|(I[b+6|0]<<16|I[b+7|0]<<24);H[c>>2]=I[b|0]|I[b+1|0]<<8|(I[b+2|0]<<16|I[b+3|0]<<24);H[c+4>>2]=d;b=H[a+20>>2];c=H[a+16>>2]+8|0;b=c>>>0<8?b+1|0:b;H[a+16>>2]=c;H[a+20>>2]=b;break b}if(!qe(1,c,a)){break a}}F[a+36|0]=1;H[a+32>>2]=0;b=H[a+16>>2];c=b+H[a>>2]|0;H[a+24>>2]=c;d=a;a=H[a+8>>2];H[d+28>>2]=c+(a-b|0);d=1}return d}function te(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0;f=sa(64);c=sa(12);H[c+8>>2]=H[H[a+4>>2]+80>>2];H[c>>2]=13216;H[c+4>>2]=0;f=md(f,c);a:{b:{if((b|0)<0){c=f;break b}h=a+8|0;c=H[a+12>>2];e=H[a+8>>2];g=c-e>>2;c:{if((g|0)>(b|0)){break c}d=b+1|0;if(b>>>0>=g>>>0){Xb(h,d-g|0);break c}if(d>>>0>=g>>>0){break c}e=e+(d<<2)|0;if((e|0)!=(c|0)){while(1){c=c-4|0;d=H[c>>2];H[c>>2]=0;if(d){ha[H[H[d>>2]+4>>2]](d)}if((c|0)!=(e|0)){continue}break}}H[a+12>>2]=e}a=H[h>>2]+(b<<2)|0;c=H[a>>2];H[a>>2]=f;if(!c){break a}}ha[H[H[c>>2]+4>>2]](c)}return(b^-1)>>>31|0}function Pd(a,b){var c=0,d=0,e=0,f=0;d=fa-16|0;fa=d;H[d+12>>2]=b;c=fa-208|0;fa=c;H[c+204>>2]=b;b=c+160|0;ua(b,0,40);H[c+200>>2]=H[c+204>>2];a:{if((Od(0,a,c+200|0,c+80|0,b)|0)<0){break a}f=H[3941]>=0;b=H[3922];if(H[3940]<=0){H[3922]=b&-33}b:{c:{d:{if(!H[3934]){H[3934]=80;H[3929]=0;H[3926]=0;H[3927]=0;e=H[3933];H[3933]=c;break d}if(H[3926]){break c}}if(Rd(15688)){break b}}Od(15688,a,c+200|0,c+80|0,c+160|0)}if(e){ha[H[3931]](15688,0,0)|0;H[3934]=0;H[3933]=e;H[3929]=0;H[3926]=0;H[3927]=0}H[3922]=H[3922]|b&32;if(!f){break a}}fa=c+208|0;fa=d+16|0}function wb(a,b,c){var d=0,e=0,f=0,g=0,h=0,i=0;H[a+8>>2]=0;H[a>>2]=0;H[a+4>>2]=0;a:{b:{if(b){if(b>>>0>=357913942){break b}d=N(b,12);b=sa(d);H[a>>2]=b;H[a+4>>2]=b;e=b+d|0;H[a+8>>2]=e;f=H[c>>2];c=H[c+4>>2];c:{if((f|0)==(c|0)){c=b;b=d-12|0;ua(c,0,(b-((b>>>0)%12|0)|0)+12|0);break c}c=c-f|0;if((c|0)<0){break a}g=c&-4;while(1){H[b+8>>2]=0;H[b>>2]=0;H[b+4>>2]=0;d=sa(c);H[b>>2]=d;H[b+4>>2]=d;H[b+8>>2]=d+g;h=b,i=ta(d,f,c)+g|0,H[h+4>>2]=i;b=b+12|0;if((e|0)!=(b|0)){continue}break}}H[a+4>>2]=e}return}va();v()}H[b+8>>2]=0;H[b>>2]=0;H[b+4>>2]=0;va();v()}function Kc(a,b,c){var d=0,e=0,f=0,g=0;a:{if((b|c)>=0){b:{if(b>>>0>1431655765){break b}d=N(b,3);Jc(a,d,13648);Jc(a+12|0,d,13652);d=H[a+24>>2];c:{if(H[a+32>>2]-d>>2>>>0>=c>>>0){break c}if(c>>>0>=1073741824){break a}e=H[a+28>>2];f=c<<2;c=sa(f);f=c+f|0;e=e-d|0;g=e+c|0;if((e|0)>0){ta(c,d,e)}H[a+32>>2]=f;H[a+28>>2]=g;H[a+24>>2]=c;if(!d){break c}ra(d)}H[a+80>>2]=0;H[a+84>>2]=0;c=H[a+76>>2];H[a+76>>2]=0;if(c){ra(c)}H[a+68>>2]=0;H[a+72>>2]=0;c=a- -64|0;a=H[c>>2];H[c>>2]=0;if(!a){break b}ra(a)}a=b>>>0<1431655766}else{a=0}return a}va();v()}function of(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0;c=H[a+60>>2];a:{if(!c){break a}H[c+4>>2]=a+48;if(!(ha[H[H[c>>2]+12>>2]](c)|0)){break a}b:{c=ha[H[H[a>>2]+24>>2]](a)|0;if((c|0)<=0){break b}while(1){c:{f=H[(ha[H[H[a>>2]+28>>2]](a)|0)+4>>2];g=ha[H[H[a>>2]+20>>2]](a,d)|0;e=H[a+60>>2];if(!(ha[H[H[e>>2]+8>>2]](e,H[H[f+8>>2]+(g<<2)>>2])|0)){break c}d=d+1|0;if((c|0)!=(d|0)){continue}break b}break}return 0}d=0;if(!(ha[H[H[a>>2]+36>>2]](a,b)|0)){break a}if(!(ha[H[H[a>>2]+40>>2]](a,b)|0)){break a}d=ha[H[H[a>>2]+44>>2]](a)|0}return d|0}function Tb(a,b){var c=0,d=0,e=0,f=0,g=0,h=0;c=H[a+4>>2];if((c|0)!=H[a+8>>2]){d=H[b+4>>2];H[c>>2]=H[b>>2];H[c+4>>2]=d;H[c+8>>2]=H[b+8>>2];H[a+4>>2]=c+12;return}a:{f=H[a>>2];g=c-f|0;d=(g|0)/12|0;c=d+1|0;if(c>>>0<357913942){e=d<<1;e=d>>>0>=178956970?357913941:c>>>0>>0?e:c;if(e){if(e>>>0>=357913942){break a}c=sa(N(e,12))}else{c=0}d=c+N(d,12)|0;h=H[b+4>>2];H[d>>2]=H[b>>2];H[d+4>>2]=h;H[d+8>>2]=H[b+8>>2];b=d+N((g|0)/-12|0,12)|0;if((g|0)>0){ta(b,f,g)}H[a+8>>2]=c+N(e,12);H[a+4>>2]=d+12;H[a>>2]=b;if(f){ra(f)}return}va();v()}za();v()}function Fd(a,b,c,d,e,f,g){var h=0,i=0,j=0;i=fa-16|0;fa=i;h=-17;if((b^-1)-17>>>0>=c>>>0){if(I[a+11|0]>>>7|0){j=H[a>>2]}else{j=a}if(b>>>0<2147483623){H[i+8>>2]=b<<1;H[i+12>>2]=b+c;c=fa-16|0;fa=c;fa=c+16|0;c=i+8|0;h=i+12|0;c=H[(K[h>>2]>2]?c:h)>>2];if(c>>>0>=11){h=c+16&-16;c=h-1|0;c=(c|0)==11?h:c}else{c=10}h=c+1|0}c=sa(h);if(f){Bb(c,g,f)}g=d-e|0;if((d|0)!=(e|0)){Bb(c+f|0,e+j|0,g)}if((b|0)!=10){ra(j)}H[a>>2]=c;H[a+8>>2]=h|-2147483648;b=a;a=f+g|0;H[b+4>>2]=a;F[i+7|0]=0;F[a+c|0]=I[i+7|0];fa=i+16|0;return}Qa();v()}function gd(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0;c=H[a+216>>2];if((c|0)!=H[a+220>>2]){while(1){a:{c=H[N(e,144)+c>>2];if((c|0)<0){break a}d=H[a+4>>2];f=H[d+8>>2];if((c|0)>=H[d+12>>2]-f>>2){break a}d=0;c=H[(c<<2)+f>>2];if((ha[H[H[c>>2]+24>>2]](c)|0)<=0){break a}while(1){if((ha[H[H[c>>2]+20>>2]](c,d)|0)!=(b|0)){d=d+1|0;if((ha[H[H[c>>2]+24>>2]](c)|0)>(d|0)){continue}break a}break}a=H[a+216>>2]+N(e,144)|0;return(I[a+100|0]?a+4|0:0)|0}e=e+1|0;c=H[a+216>>2];if(e>>>0<(H[a+220>>2]-c|0)/144>>>0){continue}break}}return 0}function qd(a){a=a|0;var b=0,c=0,d=0;H[a>>2]=2128;d=H[a+60>>2];if(d){b=d;c=H[a- -64>>2];if((b|0)!=(c|0)){while(1){c=c-4|0;b=H[c>>2];H[c>>2]=0;if(b){Ja(b)}if((c|0)!=(d|0)){continue}break}b=H[a+60>>2]}H[a+64>>2]=d;ra(b)}b=H[a+48>>2];if(b){H[a+52>>2]=b;ra(b)}d=H[a+36>>2];if(d){b=d;c=H[a+40>>2];if((b|0)!=(c|0)){while(1){c=c-24|0;ha[H[H[c>>2]>>2]](c)|0;if((c|0)!=(d|0)){continue}break}b=H[a+36>>2]}H[a+40>>2]=d;ra(b)}H[a>>2]=1984;b=H[a+16>>2];if(b){H[a+20>>2]=b;ra(b)}b=H[a+4>>2];if(b){H[a+8>>2]=b;ra(b)}return a|0}function Ab(a){var b=0,c=0,d=0,e=0;c=H[a+132>>2];if(c){d=c;b=H[a+136>>2];if((c|0)!=(b|0)){while(1){d=b-12|0;e=H[d>>2];if(e){H[b-8>>2]=e;ra(e)}b=d;if((c|0)!=(b|0)){continue}break}d=H[a+132>>2]}H[a+136>>2]=c;ra(d)}c=H[a+120>>2];if(c){d=c;b=H[a+124>>2];if((c|0)!=(b|0)){while(1){d=b-12|0;e=H[d>>2];if(e){H[b-8>>2]=e;ra(e)}b=d;if((c|0)!=(b|0)){continue}break}d=H[a+120>>2]}H[a+124>>2]=c;ra(d)}b=H[a+108>>2];if(b){H[a+112>>2]=b;ra(b)}b=H[a+96>>2];if(b){H[a+100>>2]=b;ra(b)}_a(a+76|0);_a(a+56|0);_a(a+36|0);_a(a+16|0)}function ub(a){var b=0,c=0,d=0,e=0,f=0;d=H[a+8>>2];a:{if(I[d+84|0]){break a}b=H[a+16>>2];if(!b|!I[b+84|0]){break a}c=H[d+72>>2];e=H[d+68>>2];F[b+84|0]=0;c=c-e>>2;f=H[b+68>>2];e=H[b+72>>2]-f>>2;b:{if(c>>>0>e>>>0){Ia(b+68|0,c-e|0,2316);d=H[a+8>>2];break b}if(c>>>0>=e>>>0){break b}H[b+72>>2]=f+(c<<2)}if(I[d+84|0]){break a}c=H[d+68>>2];if((c|0)==H[d+72>>2]){break a}e=H[H[a+16>>2]+68>>2];b=0;while(1){f=b<<2;H[f+e>>2]=H[c+f>>2];b=b+1|0;c=H[d+68>>2];if(b>>>0>2]-c>>2>>>0){continue}break}}return H[a+16>>2]}function Kg(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,f=0,g=0;e=fa+-64|0;fa=e;f=Ka(e+8|0);H[f+16>>2]=0;H[f+20>>2]=0;H[f>>2]=b;H[f+8>>2]=c;H[f+12>>2]=0;b=e+48|0;Ne(b,a,f,d);H[a+24>>2]=H[e+48>>2];f=a+24|0;a:{if((f|0)==(b|0)){break a}b=a+28|0;c=e+48|4;g=I[e+63|0];d=g<<24>>24;if(F[a+39|0]>=0){if((d|0)>=0){a=H[c+4>>2];H[b>>2]=H[c>>2];H[b+4>>2]=a;H[b+8>>2]=H[c+8>>2];break a}Zb(b,H[e+52>>2],H[e+56>>2]);break a}a=(d|0)<0;_b(b,a?H[e+52>>2]:c,a?H[e+56>>2]:g)}if(F[e+63|0]<0){ra(H[e+52>>2])}fa=e- -64|0;return f|0}function Jg(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,f=0,g=0;e=fa+-64|0;fa=e;f=Ka(e+8|0);H[f+16>>2]=0;H[f+20>>2]=0;H[f>>2]=b;H[f+8>>2]=c;H[f+12>>2]=0;b=e+48|0;Me(b,a,f,d);H[a+24>>2]=H[e+48>>2];f=a+24|0;a:{if((f|0)==(b|0)){break a}b=a+28|0;c=e+48|4;g=I[e+63|0];d=g<<24>>24;if(F[a+39|0]>=0){if((d|0)>=0){a=H[c+4>>2];H[b>>2]=H[c>>2];H[b+4>>2]=a;H[b+8>>2]=H[c+8>>2];break a}Zb(b,H[e+52>>2],H[e+56>>2]);break a}a=(d|0)<0;_b(b,a?H[e+52>>2]:c,a?H[e+56>>2]:g)}if(F[e+63|0]<0){ra(H[e+52>>2])}fa=e- -64|0;return f|0}function fd(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0;c=H[a+216>>2];if((c|0)!=H[a+220>>2]){while(1){a:{c=H[N(e,144)+c>>2];if((c|0)<0){break a}d=H[a+4>>2];f=H[d+8>>2];if((c|0)>=H[d+12>>2]-f>>2){break a}d=0;c=H[(c<<2)+f>>2];if((ha[H[H[c>>2]+24>>2]](c)|0)<=0){break a}while(1){if((ha[H[H[c>>2]+20>>2]](c,d)|0)!=(b|0)){d=d+1|0;if((ha[H[H[c>>2]+24>>2]](c)|0)>(d|0)){continue}break a}break}return(H[a+216>>2]+N(e,144)|0)+104|0}e=e+1|0;c=H[a+216>>2];if(e>>>0<(H[a+220>>2]-c|0)/144>>>0){continue}break}}return a+184|0}function db(a){var b=0,c=0,d=0,e=0;c=H[a+640>>2];if(c){d=c;b=H[a+644>>2];if((c|0)!=(b|0)){while(1){d=b-12|0;e=H[d>>2];if(e){H[b-8>>2]=e;ra(e)}b=d;if((c|0)!=(b|0)){continue}break}d=H[a+640>>2]}H[a+644>>2]=c;ra(d)}c=H[a+628>>2];if(c){d=c;b=H[a+632>>2];if((c|0)!=(b|0)){while(1){d=b-12|0;e=H[d>>2];if(e){H[b-8>>2]=e;ra(e)}b=d;if((c|0)!=(b|0)){continue}break}d=H[a+628>>2]}H[a+632>>2]=c;ra(d)}b=H[a+616>>2];if(b){H[a+620>>2]=b;ra(b)}b=H[a+604>>2];if(b){H[a+608>>2]=b;ra(b)}_a(a+584|0);_a(a+564|0);_a(a+544|0)}function mc(a,b){var c=0,d=0,e=0,f=0,g=0,h=0,i=0;a:{c=H[a+4>>2];d=H[a>>2];f=c-d|0;b:{if(f>>>0>>0){g=b-f|0;e=H[a+8>>2];if(g>>>0<=e-c>>>0){h=a,i=ua(c,0,g)+g|0,H[h+4>>2]=i;break b}if((b|0)<0){break a}c=e-d|0;e=c<<1;e=c>>>0>=1073741823?2147483647:b>>>0>>0?e:b;c=sa(e);ua(c+f|0,0,g);if((f|0)>0){ta(c,d,f)}H[a+8>>2]=c+e;H[a+4>>2]=b+c;H[a>>2]=c;if(!d){break b}ra(d);break b}if(b>>>0>=f>>>0){break b}H[a+4>>2]=b+d}b=H[a+28>>2];c=b;d=b+1|0;b=H[a+24>>2]+1|0;d=b?c:d;H[a+24>>2]=b;H[a+28>>2]=d;return}va();v()}function yb(a){var b=0,c=0,d=0,e=0;c=H[a+128>>2];if(c){d=c;b=H[a+132>>2];if((c|0)!=(b|0)){while(1){d=b-12|0;e=H[d>>2];if(e){H[b-8>>2]=e;ra(e)}b=d;if((c|0)!=(b|0)){continue}break}d=H[a+128>>2]}H[a+132>>2]=c;ra(d)}c=H[a+116>>2];if(c){d=c;b=H[a+120>>2];if((c|0)!=(b|0)){while(1){d=b-12|0;e=H[d>>2];if(e){H[b-8>>2]=e;ra(e)}b=d;if((c|0)!=(b|0)){continue}break}d=H[a+116>>2]}H[a+120>>2]=c;ra(d)}b=H[a+104>>2];if(b){H[a+108>>2]=b;ra(b)}b=H[a+92>>2];if(b){H[a+96>>2]=b;ra(b)}_a(a+72|0);_a(a+52|0);_a(a+32|0)}function Hg(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0;a=fa-32|0;fa=a;a:{d=Pa(c);if(d>>>0<4294967280){b:{c:{if(d>>>0>=11){f=(d|15)+1|0;e=sa(f);H[a+24>>2]=f|-2147483648;H[a+16>>2]=e;H[a+20>>2]=d;break c}F[a+27|0]=d;e=a+16|0;if(!d){break b}}ta(e,c,d)}F[d+e|0]=0;F[a+4|0]=0;H[a>>2]=1701667182;F[a+11|0]=4;d=H[b+4>>2];c=-1;d:{if(!d){break d}d=ae(d,a,a+16|0);c=-1;if(!d){break d}c=Xd(b,H[d+24>>2])}b=c;if(F[a+11|0]<0){ra(H[a>>2])}if(F[a+27|0]<0){ra(H[a+16>>2])}fa=a+32|0;break a}Qa();v()}return b|0}function La(a){H[a>>2]=-1;H[a+4>>2]=0;H[a+8>>2]=0;H[a+32>>2]=0;H[a+36>>2]=0;F[a+28|0]=1;H[a+20>>2]=0;H[a+24>>2]=0;H[a+12>>2]=0;H[a+16>>2]=0;H[a+40>>2]=0;H[a+44>>2]=0;H[a+48>>2]=0;H[a+52>>2]=0;H[a+56>>2]=0;H[a+60>>2]=0;H[a+64>>2]=0;H[a+68>>2]=0;H[a+76>>2]=0;H[a+80>>2]=0;H[a+84>>2]=0;H[a+88>>2]=0;H[a+92>>2]=0;H[a+96>>2]=0;H[a+72>>2]=a+4;H[a+104>>2]=0;H[a+108>>2]=0;F[a+100|0]=1;H[a+112>>2]=0;H[a+116>>2]=0;H[a+120>>2]=0;H[a+124>>2]=0;H[a+128>>2]=0;H[a+132>>2]=0;H[a+136>>2]=0;H[a+140>>2]=0}function Sg(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0;d=fa-16|0;fa=d;H[d+12>>2]=0;a:{e=Pa(c);if(e>>>0<4294967280){b:{c:{if(e>>>0>=11){f=(e|15)+1|0;a=sa(f);H[d+8>>2]=f|-2147483648;H[d>>2]=a;H[d+4>>2]=e;break c}F[d+11|0]=e;a=d;if(!e){break b}}ta(a,c,e)}F[a+e|0]=0;a=rb(b,d);d:{if((a|0)==(b+4|0)){break d}b=H[a+32>>2];a=H[a+28>>2];if((b-a|0)!=4){break d}H[d+12>>2]=I[a|0]|I[a+1|0]<<8|(I[a+2|0]<<16|I[a+3|0]<<24)}a=H[d+12>>2];if(F[d+11|0]<0){ra(H[d>>2])}fa=d+16|0;break a}Qa();v()}return a|0}function Ld(a,b){if(!a){return 0}a:{b:{if(a){if(b>>>0<=127){break b}c:{if(!H[H[4290]>>2]){if((b&-128)==57216){break b}break c}if(b>>>0<=2047){F[a+1|0]=b&63|128;F[a|0]=b>>>6|192;a=2;break a}if(!((b&-8192)!=57344&b>>>0>=55296)){F[a+2|0]=b&63|128;F[a|0]=b>>>12|224;F[a+1|0]=b>>>6&63|128;a=3;break a}if(b-65536>>>0<=1048575){F[a+3|0]=b&63|128;F[a|0]=b>>>18|240;F[a+2|0]=b>>>6&63|128;F[a+1|0]=b>>>12&63|128;a=4;break a}}H[3992]=25;a=-1}else{a=1}break a}F[a|0]=b;a=1}return a}function $b(a){a=a|0;var b=0,c=0,d=0;H[a>>2]=13724;b=H[a+68>>2];if(b){H[a+72>>2]=b;ra(b)}b=H[a+56>>2];if(b){H[a+60>>2]=b;ra(b)}b=H[a+44>>2];if(b){H[a+48>>2]=b;ra(b)}b=H[a+32>>2];if(b){H[a+36>>2]=b;ra(b)}b=H[a+20>>2];if(b){H[a+24>>2]=b;ra(b)}b=H[a+8>>2];if(b){d=b;c=H[a+12>>2];if((b|0)!=(c|0)){while(1){c=c-4|0;d=H[c>>2];H[c>>2]=0;if(d){Ja(d)}if((b|0)!=(c|0)){continue}break}d=H[a+8>>2]}H[a+12>>2]=b;ra(d)}b=H[a+4>>2];H[a+4>>2]=0;if(b){Sc(b)}return a|0}function Aa(a,b){var c=0,d=0,e=0,f=0,g=0,h=0,i=0;e=H[a+8>>2];c=H[a+4>>2];if(e-c>>2>>>0>=b>>>0){if(b){b=b<<2;c=ua(c,0,b)+b|0}H[a+4>>2]=c;return}a:{f=H[a>>2];g=c-f|0;h=g>>2;d=h+b|0;if(d>>>0<1073741824){c=0;e=e-f|0;i=e>>1;d=e>>>0>=2147483644?1073741823:d>>>0>>0?i:d;if(d){if(d>>>0>=1073741824){break a}c=sa(d<<2)}b=b<<2;b=ua((h<<2)+c|0,0,b)+b|0;if((g|0)>0){ta(c,f,g)}H[a+8>>2]=(d<<2)+c;H[a+4>>2]=b;H[a>>2]=c;if(f){ra(f)}return}va();v()}za();v()}function sb(a,b){var c=0,d=0,e=0,f=0,g=0,h=0,i=0;e=H[a+8>>2];c=H[a+4>>2];if(e-c>>3>>>0>=b>>>0){if(b){b=b<<3;c=ua(c,0,b)+b|0}H[a+4>>2]=c;return}a:{f=H[a>>2];g=c-f|0;h=g>>3;d=h+b|0;if(d>>>0<536870912){c=0;e=e-f|0;i=e>>2;d=e>>>0>=2147483640?536870911:d>>>0>>0?i:d;if(d){if(d>>>0>=536870912){break a}c=sa(d<<3)}b=b<<3;b=ua((h<<3)+c|0,0,b)+b|0;if((g|0)>0){ta(c,f,g)}H[a+8>>2]=(d<<3)+c;H[a+4>>2]=b;H[a>>2]=c;if(f){ra(f)}return}va();v()}za();v()}function eb(a,b){var c=0,d=0,e=0,f=0,g=0,h=0;e=H[a>>2];a=H[e+4>>2];c=H[e+8>>2];if(a>>>0>>0){H[a>>2]=H[b>>2];H[e+4>>2]=a+4;return}a:{f=H[e>>2];g=a-f|0;d=g>>2;a=d+1|0;if(a>>>0<1073741824){h=d<<2;c=c-f|0;d=c>>1;c=c>>>0>=2147483644?1073741823:a>>>0>>0?d:a;if(c){if(c>>>0>=1073741824){break a}a=sa(c<<2)}else{a=0}d=h+a|0;H[d>>2]=H[b>>2];if((g|0)>0){ta(a,f,g)}H[e+8>>2]=a+(c<<2);H[e+4>>2]=d+4;H[e>>2]=a;if(f){ra(f)}return}va();v()}za();v()}function Rc(a,b){var c=0,d=0,e=0,f=0;c=a+4|0;a=rb(a,b);a:{if((c|0)==(a|0)){break a}b=a+28|0;b=F[a+39|0]<0?H[b>>2]:b;while(1){a=b;b=a+1|0;c=F[a|0];if((c|0)==32|c-9>>>0<5){continue}break}b:{c:{d:{c=F[a|0];switch(c-43|0){case 0:break c;case 2:break d;default:break b}}e=1}c=F[b|0];a=b}if(c-48>>>0<10){while(1){d=(N(d,10)-F[a|0]|0)+48|0;b=F[a+1|0];a=a+1|0;if(b-48>>>0<10){continue}break}}a=e?d:0-d|0;if((a|0)==-1){break a}f=(a|0)!=0}return f}function jf(a){a=a|0;var b=0,c=0,d=0;H[a>>2]=2328;b=H[a+60>>2];H[a+60>>2]=0;if(b){ha[H[H[b>>2]+4>>2]](b)}b=H[a+48>>2];if(b){H[a+52>>2]=b;ra(b)}d=H[a+36>>2];if(d){c=H[a+40>>2];b=d;if((c|0)!=(b|0)){while(1){c=c-4|0;b=H[c>>2];H[c>>2]=0;if(b){ha[H[H[b>>2]+4>>2]](b)}if((c|0)!=(d|0)){continue}break}b=H[a+36>>2]}H[a+40>>2]=d;ra(b)}H[a>>2]=1984;b=H[a+16>>2];if(b){H[a+20>>2]=b;ra(b)}b=H[a+4>>2];if(b){H[a+8>>2]=b;ra(b)}return a|0}function hf(a){a=a|0;var b=0,c=0,d=0;H[a>>2]=2328;b=H[a+60>>2];H[a+60>>2]=0;if(b){ha[H[H[b>>2]+4>>2]](b)}b=H[a+48>>2];if(b){H[a+52>>2]=b;ra(b)}d=H[a+36>>2];if(d){c=H[a+40>>2];b=d;if((c|0)!=(b|0)){while(1){c=c-4|0;b=H[c>>2];H[c>>2]=0;if(b){ha[H[H[b>>2]+4>>2]](b)}if((c|0)!=(d|0)){continue}break}b=H[a+36>>2]}H[a+40>>2]=d;ra(b)}H[a>>2]=1984;b=H[a+16>>2];if(b){H[a+20>>2]=b;ra(b)}b=H[a+4>>2];if(b){H[a+8>>2]=b;ra(b)}ra(a)}function pe(a,b){var c=0,d=0,e=0,f=0,g=0,h=0;e=H[a+8>>2];c=H[a+4>>2];if(e-c>>1>>>0>=b>>>0){if(b){b=b<<1;c=ua(c,0,b)+b|0}H[a+4>>2]=c;return}a:{f=H[a>>2];g=c-f|0;h=g>>1;d=h+b|0;if((d|0)>=0){c=0;e=e-f|0;d=e>>>0>=2147483646?2147483647:d>>>0>>0?e:d;if(d){if((d|0)<0){break a}c=sa(d<<1)}b=b<<1;b=ua((h<<1)+c|0,0,b)+b|0;if((g|0)>0){ta(c,f,g)}H[a+8>>2]=(d<<1)+c;H[a+4>>2]=b;H[a>>2]=c;if(f){ra(f)}return}va();v()}za();v()}function vi(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0;d=fa-16|0;fa=d;e=H[a+4>>2];a:{if((e|0)==-1){break a}c=H[b+20>>2];if(!!H[b+16>>2]&(c|0)>=0|(c|0)>0){break a}Yb(b,H[b+4>>2],H[a+8>>2],H[a+12>>2]);c=H[b+20>>2];if(!!H[b+16>>2]&(c|0)>=0|(c|0)>0){break a}Yb(b,H[b+4>>2],a+20|0,a+24|0);c=H[b+20>>2];f=H[b+16>>2];F[d+15|0]=H[a+4>>2];if(!!f&(c|0)>=0|(c|0)>0){break a}Yb(b,H[b+4>>2],d+15|0,d+16|0)}fa=d+16|0;return(e|0)!=-1|0}function Dh(a){a=a|0;var b=0,c=0,d=0,e=0,f=0;a:{b=H[a+8>>2];b:{if((b|0)<0){break b}c=H[a+4>>2];e=H[c>>2];d=H[c+4>>2]-e>>2;c:{if(d>>>0>>0){Aa(c,b-d|0);f=H[a+8>>2];break c}f=b;if(b>>>0>=d>>>0){break c}H[c+4>>2]=e+(b<<2);f=b}d=f;if((d|0)<=0){break b}a=H[a+4>>2];c=H[a>>2];e=H[a+4>>2]-c>>2;a=0;while(1){if((a|0)==(e|0)){break a}H[c+(a<<2)>>2]=a;a=a+1|0;if((d|0)!=(a|0)){continue}break}}return(b^-1)>>>31|0}Ea();v()}function Na(a,b){var c=0,d=0,e=0,f=0,g=0;c=H[a+4>>2];if((c|0)!=H[a+8>>2]){H[c>>2]=H[b>>2];H[a+4>>2]=c+4;return}a:{g=H[a>>2];e=c-g|0;f=e>>2;c=f+1|0;if(c>>>0<1073741824){d=e>>1;d=e>>>0>=2147483644?1073741823:c>>>0>>0?d:c;if(d){if(d>>>0>=1073741824){break a}c=sa(d<<2)}else{c=0}f=c+(f<<2)|0;H[f>>2]=H[b>>2];if((e|0)>0){ta(c,g,e)}H[a+8>>2]=c+(d<<2);H[a+4>>2]=f+4;H[a>>2]=c;if(g){ra(g)}return}va();v()}za();v()}function ng(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0,g=0;d=fa-16|0;fa=d;Ne(d,a,b,c);H[a+24>>2]=H[d>>2];e=a+24|0;a:{if((e|0)==(d|0)){break a}b=a+28|0;c=d|4;f=I[d+15|0];g=f<<24>>24;if(F[a+39|0]>=0){if((g|0)>=0){a=H[c+4>>2];H[b>>2]=H[c>>2];H[b+4>>2]=a;H[b+8>>2]=H[c+8>>2];break a}Zb(b,H[d+4>>2],H[d+8>>2]);break a}a=(g|0)<0;_b(b,a?H[d+4>>2]:c,a?H[d+8>>2]:f)}if(F[d+15|0]<0){ra(H[d+4>>2])}fa=d+16|0;return e|0}function mg(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0,g=0;d=fa-16|0;fa=d;Me(d,a,b,c);H[a+24>>2]=H[d>>2];e=a+24|0;a:{if((e|0)==(d|0)){break a}b=a+28|0;c=d|4;f=I[d+15|0];g=f<<24>>24;if(F[a+39|0]>=0){if((g|0)>=0){a=H[c+4>>2];H[b>>2]=H[c>>2];H[b+4>>2]=a;H[b+8>>2]=H[c+8>>2];break a}Zb(b,H[d+4>>2],H[d+8>>2]);break a}a=(g|0)<0;_b(b,a?H[d+4>>2]:c,a?H[d+8>>2]:f)}if(F[d+15|0]<0){ra(H[d+4>>2])}fa=d+16|0;return e|0}function Ec(a,b,c){var d=0,e=0,f=0;d=H[c+16>>2];a:{if(!d){if(Rd(c)){break a}d=H[c+16>>2]}f=H[c+20>>2];if(d-f>>>0>>0){return ha[H[c+36>>2]](c,a,b)|0}b:{if(H[c+80>>2]<0){d=0;break b}e=b;while(1){d=e;if(!d){d=0;break b}e=d-1|0;if(I[e+a|0]!=10){continue}break}e=ha[H[c+36>>2]](c,a,d)|0;if(e>>>0>>0){break a}a=a+d|0;b=b-d|0;f=H[c+20>>2]}ta(f,a,b);H[c+20>>2]=H[c+20>>2]+b;e=b+d|0}return e}function Jb(a,b){var c=0,d=0,e=0,f=0;d=H[a+12>>2];c=H[a+16>>2]-d>>2;a:{if(c>>>0>>0){Aa(a+12|0,b-c|0);break a}if(b>>>0>=c>>>0){break a}H[a+16>>2]=d+(b<<2)}b:{c=H[a>>2];c:{if(H[a+8>>2]-c>>2>>>0>=b>>>0){break c}if(b>>>0>=1073741824){break b}d=H[a+4>>2];e=b<<2;b=sa(e);e=b+e|0;d=d-c|0;f=d+b|0;if((d|0)>0){ta(b,c,d)}H[a+8>>2]=e;H[a+4>>2]=f;H[a>>2]=b;if(!c){break c}ra(c)}return}va();v()}function Pg(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0,g=0;d=fa-16|0;fa=d;a:{e=Pa(c);if(e>>>0<4294967280){b:{c:{if(e>>>0>=11){g=(e|15)+1|0;f=sa(g);H[d+8>>2]=g|-2147483648;H[d>>2]=f;H[d+4>>2]=e;break c}F[d+11|0]=e;f=d;if(!e){break b}}ta(f,c,e)}F[e+f|0]=0;f=a+16|0;c=_d(b,d,f);b=H[a+16>>2];a=F[a+27|0];if(F[d+11|0]<0){ra(H[d>>2])}fa=d+16|0;a=c?(a|0)<0?b:f:0;break a}Qa();v()}return a|0}function _c(a){var b=0,c=0,d=0,e=0;if(I[a+76|0]){F[a+76|0]=0;d=H[a+60>>2];c=H[a+72>>2]+7|0;b=c>>>0<7?1:b;e=b>>>3|0;c=b<<29|c>>>3;b=c+H[a+56>>2]|0;d=d+e|0;H[a+56>>2]=b;H[a+60>>2]=b>>>0>>0?d+1|0:d}if(J[a+38>>1]<=513){F[a+132|0]=0;d=H[a+116>>2];b=0;c=H[a+128>>2]+7|0;b=c>>>0<7?1:b;e=b>>>3|0;c=b<<29|c>>>3;b=c+H[a+112>>2]|0;d=d+e|0;H[a+112>>2]=b;H[a+116>>2]=b>>>0>>0?d+1|0:d}}function qe(a,b,c){var d=0,e=0,f=0,g=0;a:{if(a>>>0>10){break a}d=H[c+20>>2];e=H[c+12>>2];f=H[c+16>>2];if((d|0)>=(e|0)&f>>>0>=K[c+8>>2]|(d|0)>(e|0)){break a}e=F[f+H[c>>2]|0];f=f+1|0;d=f?d:d+1|0;H[c+16>>2]=f;H[c+20>>2]=d;b:{if((e|0)<0){if(!qe(a+1|0,b,c)){break a}c=H[b>>2];a=H[b+4>>2]<<7|c>>>25;c=e&127|c<<7;break b}a=0;c=e&255}H[b>>2]=c;H[b+4>>2]=a;g=1}return g}function jb(a,b,c){var d=0,e=0,f=0,g=0;a:{if(a>>>0>10){break a}d=H[c+20>>2];e=H[c+12>>2];f=H[c+16>>2];if((d|0)>=(e|0)&f>>>0>=K[c+8>>2]|(d|0)>(e|0)){break a}e=F[f+H[c>>2]|0];f=f+1|0;d=f?d:d+1|0;H[c+16>>2]=f;H[c+20>>2]=d;b:{if((e|0)<0){if(!jb(a+1|0,b,c)){break a}c=H[b>>2];a=H[b+4>>2]<<7|c>>>25;c=e&127|c<<7;break b}a=0;c=e&255}H[b>>2]=c;H[b+4>>2]=a;g=1}return g}function Ce(a,b){var c=0,d=0,e=0,f=0,g=0;H[a+144>>2]=b;c=H[(ha[H[H[b>>2]+32>>2]](b)|0)+32>>2];e=H[c>>2]+H[c+16>>2]|0;d=H[(ha[H[H[b>>2]+32>>2]](b)|0)+32>>2];c=H[d+8>>2];d=H[d+16>>2];c=c-d|0;f=a,g=J[H[(ha[H[H[b>>2]+32>>2]](b)|0)+32>>2]+38>>1],G[f+38>>1]=g;H[a>>2]=e;H[a+16>>2]=0;H[a+20>>2]=0;H[a+8>>2]=c;H[a+12>>2]=0;f=a,g=ha[H[H[b>>2]+36>>2]](b)|0,H[f+148>>2]=g}function Hf(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;if(Za(a,H[b+8>>2],e)){if(!(H[b+28>>2]==1|H[b+4>>2]!=(c|0))){H[b+28>>2]=d}return}a:{if(!Za(a,H[b>>2],e)){break a}if(!(H[b+16>>2]!=(c|0)&H[b+20>>2]!=(c|0))){if((d|0)!=1){break a}H[b+32>>2]=1;return}H[b+20>>2]=c;H[b+32>>2]=d;H[b+40>>2]=H[b+40>>2]+1;if(!(H[b+36>>2]!=1|H[b+24>>2]!=2)){F[b+54|0]=1}H[b+44>>2]=4}}function Fh(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0,g=0,h=0,i=0;d=fa+-64|0;fa=d;e=ha[H[H[a>>2]+44>>2]](a,b)|0;a=ha[H[H[a>>2]+40>>2]](a,b)|0;f=Gb(d);g=H[b+56>>2];h=e&255;i=a;a=a-1|0;if(a>>>0<=10){a=H[(a<<2)+13584>>2]}else{a=-1}a=N(a,e);lc(f,g,h,i,0,a,a>>31);a=fc(sa(96),f);qb(a,c);F[a+84|0]=1;H[a+72>>2]=H[a+68>>2];H[a+60>>2]=H[b+60>>2];fa=d- -64|0;return a|0}function pi(a){a=a|0;var b=0,c=0,d=0;H[a>>2]=11276;b=H[a+48>>2];H[a+48>>2]=0;if(b){ha[H[H[b>>2]+4>>2]](b)}H[a>>2]=13280;b=H[a+20>>2];if(b){H[a+24>>2]=b;ra(b)}d=H[a+8>>2];if(d){c=H[a+12>>2];b=d;if((c|0)!=(b|0)){while(1){c=c-4|0;b=H[c>>2];H[c>>2]=0;if(b){ha[H[H[b>>2]+4>>2]](b)}if((c|0)!=(d|0)){continue}break}b=H[a+8>>2]}H[a+12>>2]=d;ra(b)}return a|0}function Ah(a){a=a|0;var b=0,c=0,d=0,e=0,f=0,g=0,h=0;b=H[a+32>>2];f=H[b+8>>2];e=H[b+12>>2];d=H[b+20>>2];h=f;f=H[b+16>>2];g=f+4|0;d=g>>>0<4?d+1|0:d;a:{if(h>>>0>>0&(d|0)>=(e|0)|(d|0)>(e|0)){break a}c=f+H[b>>2]|0;e=I[c|0]|I[c+1|0]<<8|(I[c+2|0]<<16|I[c+3|0]<<24);H[b+16>>2]=g;H[b+20>>2]=d;c=0;if((e|0)<0){break a}H[H[a+4>>2]+80>>2]=e;c=1}return c|0}function qc(a,b,c){var d=0,e=0,f=0,g=0,h=0,i=0,j=0;if(!b){H[c>>2]=0;return}g=0-I[a+12|0]&255;e=H[a+8>>2];h=H[a>>2];while(1){i=d<<1;a:{if(e>>>0>4095){break a}d=H[a+4>>2];if((d|0)<=0){break a}d=d-1|0;H[a+4>>2]=d;e=I[d+h|0]|e<<8}f=e&255;d=f>>>0>>0;j=f;f=N(e>>>8|0,g);e=d?j+f|0:e-(g+f|0)|0;H[a+8>>2]=e;d=d|i;b=b-1|0;if(b){continue}break}H[c>>2]=d}function Bd(a,b,c,d){F[a+53|0]=1;a:{if(H[a+4>>2]!=(c|0)){break a}F[a+52|0]=1;c=H[a+16>>2];b:{if(!c){H[a+36>>2]=1;H[a+24>>2]=d;H[a+16>>2]=b;if((d|0)!=1){break a}if(H[a+48>>2]==1){break b}break a}if((b|0)==(c|0)){c=H[a+24>>2];if((c|0)==2){H[a+24>>2]=d;c=d}if(H[a+48>>2]!=1){break a}if((c|0)==1){break b}break a}H[a+36>>2]=H[a+36>>2]+1}F[a+54|0]=1}}function oi(a){a=a|0;var b=0,c=0,d=0;H[a>>2]=11276;b=H[a+48>>2];H[a+48>>2]=0;if(b){ha[H[H[b>>2]+4>>2]](b)}H[a>>2]=13280;b=H[a+20>>2];if(b){H[a+24>>2]=b;ra(b)}d=H[a+8>>2];if(d){c=H[a+12>>2];b=d;if((c|0)!=(b|0)){while(1){c=c-4|0;b=H[c>>2];H[c>>2]=0;if(b){ha[H[H[b>>2]+4>>2]](b)}if((c|0)!=(d|0)){continue}break}b=H[a+8>>2]}H[a+12>>2]=d;ra(b)}ra(a)}function yh(a){a=a|0;var b=0,c=0,d=0,e=0,f=0,g=0,h=0;d=H[a+32>>2];e=H[d+12>>2];g=H[d+8>>2];b=g;c=H[d+20>>2];h=H[d+16>>2];f=h+4|0;c=f>>>0<4?c+1|0:c;if((c|0)<=(e|0)&b>>>0>=f>>>0|(c|0)<(e|0)){b=h+H[d>>2]|0;b=I[b|0]|I[b+1|0]<<8|(I[b+2|0]<<16|I[b+3|0]<<24);H[d+16>>2]=f;H[d+20>>2]=c;H[H[a+4>>2]+80>>2]=b}return(c|0)<=(e|0)&f>>>0<=g>>>0|(c|0)<(e|0)}function Lf(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0;e=fa+-64|0;fa=e;d=1;a:{if(Za(a,b,0)){break a}d=0;if(!b){break a}b=Ed(b,14972);d=0;if(!b){break a}d=e+8|0;ua(d|4,0,52);H[e+56>>2]=1;H[e+20>>2]=-1;H[e+16>>2]=a;H[e+8>>2]=b;ha[H[H[b>>2]+28>>2]](b,d,H[c>>2],1);a=H[e+32>>2];if((a|0)==1){H[c>>2]=H[e+24>>2]}d=(a|0)==1}fa=e- -64|0;return d|0}function Ge(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0;d=fa-16|0;fa=d;H[a+4>>2]=b;b=H[b+64>>2];e=H[b>>2];b=H[b+4>>2];F[d+15|0]=0;Ra(a+24|0,(b-e>>2>>>0)/3|0,d+15|0);b=H[a+4>>2];e=H[b+56>>2];b=H[b+52>>2];F[d+14|0]=0;Ra(a+36|0,e-b>>2,d+14|0);b=H[c+12>>2];H[a+16>>2]=H[c+8>>2];H[a+20>>2]=b;b=H[c+4>>2];H[a+8>>2]=H[c>>2];H[a+12>>2]=b;fa=d+16|0}function xg(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,f=0,g=0;a=fa-16|0;fa=a;f=F[b+24|0];e=H[3411];H[a+8>>2]=H[3410];H[a+12>>2]=e;e=H[3409];H[a>>2]=H[3408];H[a+4>>2]=e;e=Ya(b,c,f,a);if(e){b=0;if(f){c=(f&255)<<2;b=sa(c);g=ta(b,a,c)+c|0}c=H[d>>2];if(c){H[d+4>>2]=c;ra(c)}H[d+8>>2]=g;H[d+4>>2]=g;H[d>>2]=b}fa=a+16|0;return e|0}function nf(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0;f=ha[H[H[a>>2]+24>>2]](a)|0;c=1;a:{if((f|0)<=0){break a}d=H[H[a+36>>2]>>2];g=a+48|0;c=0;if(!(ha[H[H[d>>2]+16>>2]](d,g,b)|0)){break a}while(1){e=e+1|0;if((f|0)!=(e|0)){d=H[H[a+36>>2]+(e<<2)>>2];if(ha[H[H[d>>2]+16>>2]](d,g,b)|0){continue}}break}c=(e|0)>=(f|0)}return c|0}function mf(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0;f=ha[H[H[a>>2]+24>>2]](a)|0;c=1;a:{if((f|0)<=0){break a}d=H[H[a+36>>2]>>2];g=a+48|0;c=0;if(!(ha[H[H[d>>2]+20>>2]](d,g,b)|0)){break a}while(1){e=e+1|0;if((f|0)!=(e|0)){d=H[H[a+36>>2]+(e<<2)>>2];if(ha[H[H[d>>2]+20>>2]](d,g,b)|0){continue}}break}c=(e|0)>=(f|0)}return c|0}function ac(a){var b=0;H[a>>2]=0;H[a+4>>2]=0;H[a+56>>2]=0;H[a+48>>2]=0;H[a+52>>2]=0;H[a+40>>2]=0;H[a+44>>2]=0;H[a+32>>2]=0;H[a+36>>2]=0;H[a+24>>2]=0;H[a+28>>2]=0;H[a+16>>2]=0;H[a+20>>2]=0;H[a+8>>2]=0;H[a+12>>2]=0;b=a- -64|0;H[b>>2]=0;H[b+4>>2]=0;H[a+72>>2]=0;H[a+76>>2]=0;H[a+80>>2]=0;H[a+84>>2]=0;H[a+60>>2]=a;return a}function _h(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0;d=fa-16|0;fa=d;H[a+4>>2]=b;e=H[b>>2];b=H[b+4>>2];F[d+15|0]=0;Ra(a+24|0,(b-e>>2>>>0)/3|0,d+15|0);b=H[a+4>>2];e=H[b+28>>2];b=H[b+24>>2];F[d+14|0]=0;Ra(a+36|0,e-b>>2,d+14|0);b=H[c+12>>2];H[a+16>>2]=H[c+8>>2];H[a+20>>2]=b;b=H[c+4>>2];H[a+8>>2]=H[c>>2];H[a+12>>2]=b;fa=d+16|0}function Yc(a,b){var c=0,d=0;a:{c=H[a+4>>2];d=H[a+8>>2];if((c|0)==d<<5){if((c+1|0)<0){break a}if(c>>>0<=1073741822){d=d<<6;c=(c&-32)+32|0;c=c>>>0>>0?d:c}else{c=2147483647}tb(a,c);c=H[a+4>>2]}H[a+4>>2]=c+1;d=1<>2]+(c>>>3&536870908)|0;if(I[b|0]){H[a>>2]=d|H[a>>2];return}H[a>>2]=H[a>>2]&(d^-1);return}va();v()}function sd(a,b,c){var d=0,e=0,f=0,g=0;a:{if(a>>>0>5){break a}d=H[c+20>>2];e=H[c+12>>2];f=H[c+16>>2];if((d|0)>=(e|0)&f>>>0>=K[c+8>>2]|(d|0)>(e|0)){break a}e=I[f+H[c>>2]|0];f=f+1|0;d=f?d:d+1|0;H[c+16>>2]=f;H[c+20>>2]=d;d=e<<24>>24;if((d|0)<0){if(!sd(a+1|0,b,c)){break a}e=d&127|H[b>>2]<<7}H[b>>2]=e;g=1}return g}function kb(a,b,c){var d=0,e=0,f=0,g=0;a:{if(a>>>0>5){break a}d=H[c+20>>2];e=H[c+12>>2];f=H[c+16>>2];if((d|0)>=(e|0)&f>>>0>=K[c+8>>2]|(d|0)>(e|0)){break a}e=I[f+H[c>>2]|0];f=f+1|0;d=f?d:d+1|0;H[c+16>>2]=f;H[c+20>>2]=d;d=e<<24>>24;if((d|0)<0){if(!kb(a+1|0,b,c)){break a}e=d&127|H[b>>2]<<7}H[b>>2]=e;g=1}return g}function ab(a,b,c){var d=0,e=0,f=0,g=0;a:{if(a>>>0>5){break a}d=H[c+20>>2];e=H[c+12>>2];f=H[c+16>>2];if((d|0)>=(e|0)&f>>>0>=K[c+8>>2]|(d|0)>(e|0)){break a}e=I[f+H[c>>2]|0];f=f+1|0;d=f?d:d+1|0;H[c+16>>2]=f;H[c+20>>2]=d;d=e<<24>>24;if((d|0)<0){if(!ab(a+1|0,b,c)){break a}e=d&127|H[b>>2]<<7}H[b>>2]=e;g=1}return g}function Oe(a,b,c){var d=0,e=0,f=0,g=0;a:{if(a>>>0>5){break a}d=H[c+20>>2];e=H[c+12>>2];f=H[c+16>>2];if((d|0)>=(e|0)&f>>>0>=K[c+8>>2]|(d|0)>(e|0)){break a}e=I[f+H[c>>2]|0];f=f+1|0;d=f?d:d+1|0;H[c+16>>2]=f;H[c+20>>2]=d;d=e<<24>>24;if((d|0)<0){if(!Oe(a+1|0,b,c)){break a}e=d&127|H[b>>2]<<7}H[b>>2]=e;g=1}return g}function Nc(a,b,c){var d=0,e=0,f=0,g=0;a:{if(a>>>0>5){break a}d=H[c+20>>2];e=H[c+12>>2];f=H[c+16>>2];if((d|0)>=(e|0)&f>>>0>=K[c+8>>2]|(d|0)>(e|0)){break a}e=I[f+H[c>>2]|0];f=f+1|0;d=f?d:d+1|0;H[c+16>>2]=f;H[c+20>>2]=d;d=e<<24>>24;if((d|0)<0){if(!Nc(a+1|0,b,c)){break a}e=d&127|H[b>>2]<<7}H[b>>2]=e;g=1}return g}function Hb(a,b,c){var d=0,e=0,f=0,g=0;a:{if(a>>>0>5){break a}d=H[c+20>>2];e=H[c+12>>2];f=H[c+16>>2];if((d|0)>=(e|0)&f>>>0>=K[c+8>>2]|(d|0)>(e|0)){break a}e=I[f+H[c>>2]|0];f=f+1|0;d=f?d:d+1|0;H[c+16>>2]=f;H[c+20>>2]=d;d=e<<24>>24;if((d|0)<0){if(!Hb(a+1|0,b,c)){break a}e=d&127|H[b>>2]<<7}H[b>>2]=e;g=1}return g}function Ga(a,b,c){var d=0,e=0,f=0,g=0;a:{if(a>>>0>5){break a}d=H[c+20>>2];e=H[c+12>>2];f=H[c+16>>2];if((d|0)>=(e|0)&f>>>0>=K[c+8>>2]|(d|0)>(e|0)){break a}e=I[f+H[c>>2]|0];f=f+1|0;d=f?d:d+1|0;H[c+16>>2]=f;H[c+20>>2]=d;d=e<<24>>24;if((d|0)<0){if(!Ga(a+1|0,b,c)){break a}e=d&127|H[b>>2]<<7}H[b>>2]=e;g=1}return g}function Db(a,b,c){var d=0,e=0,f=0,g=0;a:{if(a>>>0>5){break a}d=H[c+20>>2];e=H[c+12>>2];f=H[c+16>>2];if((d|0)>=(e|0)&f>>>0>=K[c+8>>2]|(d|0)>(e|0)){break a}e=I[f+H[c>>2]|0];f=f+1|0;d=f?d:d+1|0;H[c+16>>2]=f;H[c+20>>2]=d;d=e<<24>>24;if((d|0)<0){if(!Db(a+1|0,b,c)){break a}e=d&127|H[b>>2]<<7}H[b>>2]=e;g=1}return g}function Ha(a,b,c){var d=0,e=0;a:{b:{if(c>>>0>=4){if((a|b)&3){break b}while(1){if(H[a>>2]!=H[b>>2]){break b}b=b+4|0;a=a+4|0;c=c-4|0;if(c>>>0>3){continue}break}}if(!c){break a}}while(1){d=I[a|0];e=I[b|0];if((d|0)==(e|0)){b=b+1|0;a=a+1|0;c=c-1|0;if(c){continue}break a}break}return d-e|0}return 0}function Wc(a){var b=0,c=0,d=0,e=0;d=H[a>>2];if(d){e=d;c=H[a+4>>2];if((d|0)!=(c|0)){while(1){e=c-144|0;b=H[e+132>>2];if(b){H[c-8>>2]=b;ra(b)}b=H[c-28>>2];if(b){H[c-24>>2]=b;ra(b)}b=H[c-40>>2];if(b){H[c-36>>2]=b;ra(b)}pc(c-140|0);c=e;if((d|0)!=(c|0)){continue}break}e=H[a>>2]}H[a+4>>2]=d;ra(e)}}function Cg(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0;d=H[b+4>>2];a:{if(!d){break a}b=H[H[H[b+8>>2]+(c<<2)>>2]+60>>2];if((b|0)<0){break a}a=H[d+24>>2];c=H[d+28>>2];if((a|0)==(c|0)){break a}b:{while(1){e=H[a>>2];if((b|0)==H[e+24>>2]){break b}a=a+4|0;if((c|0)!=(a|0)){continue}break}e=0}}return e|0}function Yh(a){a=a|0;var b=0;H[a+8>>2]=12384;H[a>>2]=12172;b=H[a+96>>2];if(b){H[a+100>>2]=b;ra(b)}b=H[a+80>>2];if(b){H[a+84>>2]=b;ra(b)}b=H[a+68>>2];if(b){H[a+72>>2]=b;ra(b)}b=H[a+56>>2];if(b){H[a+60>>2]=b;ra(b)}H[a+8>>2]=12620;b=H[a+44>>2];if(b){ra(b)}b=H[a+32>>2];if(b){ra(b)}return a|0}function Sc(a){var b=0,c=0,d=0;if(a){d=H[a+24>>2];if(d){b=d;c=H[a+28>>2];if((b|0)!=(c|0)){while(1){c=c-4|0;b=H[c>>2];H[c>>2]=0;if(b){Ua(b+12|0,H[b+16>>2]);Ta(b,H[b+4>>2]);ra(b)}if((c|0)!=(d|0)){continue}break}b=H[a+24>>2]}H[a+28>>2]=d;ra(b)}Ua(a+12|0,H[a+16>>2]);Ta(a,H[a+4>>2]);ra(a)}}function Xh(a){a=a|0;var b=0;H[a+8>>2]=12384;H[a>>2]=12172;b=H[a+96>>2];if(b){H[a+100>>2]=b;ra(b)}b=H[a+80>>2];if(b){H[a+84>>2]=b;ra(b)}b=H[a+68>>2];if(b){H[a+72>>2]=b;ra(b)}b=H[a+56>>2];if(b){H[a+60>>2]=b;ra(b)}H[a+8>>2]=12620;b=H[a+44>>2];if(b){ra(b)}b=H[a+32>>2];if(b){ra(b)}ra(a)}function ui(a){a=a|0;var b=0,c=0,d=0;H[a>>2]=13280;b=H[a+20>>2];if(b){H[a+24>>2]=b;ra(b)}d=H[a+8>>2];if(d){c=H[a+12>>2];b=d;if((c|0)!=(b|0)){while(1){c=c-4|0;b=H[c>>2];H[c>>2]=0;if(b){ha[H[H[b>>2]+4>>2]](b)}if((c|0)!=(d|0)){continue}break}b=H[a+8>>2]}H[a+12>>2]=d;ra(b)}return a|0}function yc(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0,g=0,h=0,i=0;h=H[c+8>>2];e=H[c+16>>2];g=H[c+12>>2];f=g;d=H[c+20>>2];if(h>>>0>e>>>0&(f|0)>=(d|0)|(d|0)<(f|0)){b=I[e+H[c>>2]|0];i=e+1|0;f=i?d:d+1|0;H[c+16>>2]=i;H[c+20>>2]=f;H[a+4>>2]=b}return e>>>0>>0&(d|0)<=(g|0)|(d|0)<(g|0)}function Uc(a){a=a|0;var b=0,c=0,d=0;H[a>>2]=13280;b=H[a+20>>2];if(b){H[a+24>>2]=b;ra(b)}d=H[a+8>>2];if(d){c=H[a+12>>2];b=d;if((c|0)!=(b|0)){while(1){c=c-4|0;b=H[c>>2];H[c>>2]=0;if(b){ha[H[H[b>>2]+4>>2]](b)}if((c|0)!=(d|0)){continue}break}b=H[a+8>>2]}H[a+12>>2]=d;ra(b)}ra(a)}function Za(a,b,c){var d=0;if(!c){return H[a+4>>2]==H[b+4>>2]}if((a|0)==(b|0)){return 1}d=H[a+4>>2];a=I[d|0];c=H[b+4>>2];b=I[c|0];a:{if(!a|(b|0)!=(a|0)){break a}while(1){b=I[c+1|0];a=I[d+1|0];if(!a){break a}c=c+1|0;d=d+1|0;if((a|0)==(b|0)){continue}break}}return(a|0)==(b|0)}function Zh(a){a=a|0;var b=0;H[a>>2]=12384;b=H[a+88>>2];if(b){H[a+92>>2]=b;ra(b)}b=H[a+72>>2];if(b){H[a+76>>2]=b;ra(b)}b=H[a+60>>2];if(b){H[a- -64>>2]=b;ra(b)}b=H[a+48>>2];if(b){H[a+52>>2]=b;ra(b)}H[a>>2]=12620;b=H[a+36>>2];if(b){ra(b)}b=H[a+24>>2];if(b){ra(b)}return a|0}function Eg(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0;d=H[b+12>>2];b=H[b+8>>2];a=0;a:{if((d|0)==(b|0)){break a}a=d-b>>2;d=a>>>0<=1?1:a;a=0;b:{while(1){e=H[b+(a<<2)>>2];if(H[e+60>>2]==(c|0)){break b}a=a+1|0;if((d|0)!=(a|0)){continue}break}a=0;break a}a=(a|0)!=-1?e:0}return a|0}function $d(a,b){var c=0,d=0,e=0;H[a+8>>2]=0;H[a>>2]=0;H[a+4>>2]=0;a:{c=H[b+4>>2];d=H[b>>2];b:{if((c|0)==(d|0)){a=c;break b}c=c-d|0;if((c|0)<0){break a}d=c;e=sa(c);c=ua(e,0,c);d=d+c|0;H[a+8>>2]=d;H[a+4>>2]=d;H[a>>2]=c;c=H[b>>2];a=H[b+4>>2]}ta(e,c,a-c|0);return}va();v()}function cd(a){var b=0,c=0,d=0,e=0;c=H[a+4>>2];d=H[a>>2];if((c|0)!=(d|0)){while(1){e=c-144|0;b=H[e+132>>2];if(b){H[c-8>>2]=b;ra(b)}b=H[c-28>>2];if(b){H[c-24>>2]=b;ra(b)}b=H[c-40>>2];if(b){H[c-36>>2]=b;ra(b)}pc(c-140|0);c=e;if((d|0)!=(c|0)){continue}break}}H[a+4>>2]=d}function Uh(a){a=a|0;var b=0;H[a>>2]=12384;b=H[a+88>>2];if(b){H[a+92>>2]=b;ra(b)}b=H[a+72>>2];if(b){H[a+76>>2]=b;ra(b)}b=H[a+60>>2];if(b){H[a- -64>>2]=b;ra(b)}b=H[a+48>>2];if(b){H[a+52>>2]=b;ra(b)}H[a>>2]=12620;b=H[a+36>>2];if(b){ra(b)}b=H[a+24>>2];if(b){ra(b)}ra(a)}function Lb(a,b){var c=0,d=0,e=0,f=0;a:{c=H[a>>2];b:{if(H[a+8>>2]-c>>2>>>0>=b>>>0){break b}if(b>>>0>=1073741824){break a}d=H[a+4>>2];e=b<<2;b=sa(e);e=b+e|0;d=d-c|0;f=d+b|0;if((d|0)>0){ta(b,c,d)}H[a+8>>2]=e;H[a+4>>2]=f;H[a>>2]=b;if(!c){break b}ra(c)}return}va();v()}function fb(a){var b=0;if(a){b=H[a+76>>2];if(b){H[a+80>>2]=b;ra(b)}b=H[a- -64>>2];if(b){H[a+68>>2]=b;ra(b)}b=H[a+48>>2];if(b){H[a+52>>2]=b;ra(b)}b=H[a+24>>2];if(b){H[a+28>>2]=b;ra(b)}b=H[a+12>>2];if(b){H[a+16>>2]=b;ra(b)}b=H[a>>2];if(b){H[a+4>>2]=b;ra(b)}ra(a)}}function pc(a){var b=0;b=H[a+84>>2];if(b){H[a+88>>2]=b;ra(b)}b=H[a+72>>2];if(b){H[a+76>>2]=b;ra(b)}b=H[a+52>>2];if(b){H[a+56>>2]=b;ra(b)}b=H[a+40>>2];if(b){H[a+44>>2]=b;ra(b)}b=H[a+28>>2];if(b){H[a+32>>2]=b;ra(b)}b=H[a+12>>2];if(b){ra(b)}a=H[a>>2];if(a){ra(a)}}function Jd(a,b,c){var d=0,e=0,f=0,g=0,h=0;f=fa-16|0;fa=f;d=fa-16|0;fa=d;b=b-a>>2;while(1){if(b){H[d+12>>2]=a;e=b>>>1|0;H[d+12>>2]=H[d+12>>2]+(e<<2);h=(e^-1)+b|0;b=e;e=H[d+12>>2];g=K[e>>2]>2];b=g?h:b;a=g?e+4|0:a;continue}break}fa=d+16|0;fa=f+16|0;return a}function Ba(a,b,c){var d=0,e=0;a:{b:{if(c>>>0<11){d=a;F[d+11|0]=c;break b}if(c>>>0>4294967279){break a}if(c>>>0>=11){e=c+16&-16;d=e-1|0;d=(d|0)==11?e:d}else{d=10}e=d+1|0;d=sa(e);H[a>>2]=d;H[a+8>>2]=e|-2147483648;H[a+4>>2]=c}Bb(d,b,c+1|0);return}Qa();v()}function Vc(a,b){var c=0,d=0;d=sa(40);H[d>>2]=-1;c=d+8|0;H[c+16>>2]=0;H[c+20>>2]=0;H[c+8>>2]=0;H[c>>2]=0;H[c+4>>2]=0;H[c+24>>2]=0;H[c+28>>2]=0;ha[H[H[a>>2]+16>>2]](a,d);a=H[b+88>>2];H[b+88>>2]=d;if(a){b=H[a+8>>2];if(b){H[a+12>>2]=b;ra(b)}ra(a)}return 1}function Pa(a){var b=0,c=0,d=0;b=a;a:{if(b&3){while(1){if(!I[b|0]){break a}b=b+1|0;if(b&3){continue}break}}while(1){c=b;b=b+4|0;d=H[c>>2];if(!((d^-1)&d-16843009&-2139062144)){continue}break}while(1){b=c;c=b+1|0;if(I[b|0]){continue}break}}return b-a|0}function Da(a){var b=0,c=0,d=0,e=0,f=0;d=I[a+12|0];c=H[a+8>>2];a:{if(c>>>0>4095){break a}b=H[a+4>>2];if((b|0)<=0){break a}b=b-1|0;H[a+4>>2]=b;c=I[b+H[a>>2]|0]|c<<8}d=0-d&255;b=N(d,c>>>8|0);e=c&255;f=e>>>0>>0;H[a+8>>2]=f?b+e|0:c-(b+d|0)|0;return f}function md(a,b){H[a+4>>2]=0;H[a+8>>2]=0;H[a>>2]=1984;H[a+12>>2]=0;H[a+16>>2]=0;H[a+20>>2]=0;H[a+24>>2]=0;H[a+28>>2]=0;H[a+32>>2]=0;H[a+36>>2]=0;H[a+40>>2]=0;H[a>>2]=2328;H[a+60>>2]=b;H[a+44>>2]=0;H[a+48>>2]=0;H[a+52>>2]=0;H[a+56>>2]=0;return a}function Mg(a){a=a|0;var b=0,c=0,d=0;if(a){if(F[a+27|0]<0){ra(H[a+16>>2])}b=H[a>>2];if(b){c=b;d=H[a+4>>2];if((b|0)!=(d|0)){while(1){c=d-12|0;if(F[d-1|0]<0){ra(H[c>>2])}d=c;if((d|0)!=(b|0)){continue}break}c=H[a>>2]}H[a+4>>2]=b;ra(c)}ra(a)}}function Ja(a){a=a|0;var b=0,c=0;if(a){b=H[a+88>>2];H[a+88>>2]=0;if(b){c=H[b+8>>2];if(c){H[b+12>>2]=c;ra(c)}ra(b)}b=H[a+68>>2];if(b){H[a+72>>2]=b;ra(b)}b=H[a+64>>2];H[a+64>>2]=0;if(b){c=H[b>>2];if(c){H[b+4>>2]=c;ra(c)}ra(b)}ra(a)}}function Nd(a){var b=0,c=0,d=0;if(F[H[a>>2]]-48>>>0>=10){return 0}while(1){d=H[a>>2];c=-1;if(b>>>0<=214748364){c=F[d|0]-48|0;b=N(b,10);c=(c|0)>(b^2147483647)?-1:c+b|0}H[a>>2]=d+1;b=c;if(F[d+1|0]-48>>>0<10){continue}break}return b}function nc(a,b){var c=0,d=0,e=0;c=Pa(b);if(c>>>0<4294967280){a:{b:{if(c>>>0>=11){e=(c|15)+1|0;d=sa(e);H[a+8>>2]=e|-2147483648;H[a>>2]=d;H[a+4>>2]=c;break b}F[a+11|0]=c;d=a;if(!c){break a}}ta(d,b,c)}F[c+d|0]=0;return a}Qa();v()}function zi(a){a=a|0;var b=0;H[a+24>>2]=1832;H[a>>2]=11048;b=H[a+32>>2];if(b){H[a+36>>2]=b;ra(b)}H[a>>2]=2448;b=H[a+20>>2];H[a+20>>2]=0;if(b){ha[H[H[b>>2]+4>>2]](b)}H[a>>2]=2232;b=H[a+16>>2];H[a+16>>2]=0;if(b){Ja(b)}return a|0}function Bg(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;b=H[b+96>>2];a=sa(12);b=b+N(c,12)|0;c=H[b+4>>2];H[a>>2]=H[b>>2];H[a+4>>2]=c;H[a+8>>2]=H[b+8>>2];b=H[d>>2];if(b){H[d+4>>2]=b;ra(b)}H[d>>2]=a;a=a+12|0;H[d+8>>2]=a;H[d+4>>2]=a;return 1}function Oj(a,b,c,d){var e=0,f=0,g=0,h=0;f=b^d;g=f>>31;e=b>>31;a=a^e;h=a-e|0;e=(b^e)-((a>>>0>>0)+e|0)|0;a=d>>31;b=c^a;f=f>>31;a=Pj(h,e,b-a|0,(a^d)-((a>>>0>b>>>0)+a|0)|0)^f;b=a-f|0;ga=(g^ga)-((a>>>0>>0)+g|0)|0;return b}function yi(a){a=a|0;var b=0;H[a+24>>2]=1832;H[a>>2]=11048;b=H[a+32>>2];if(b){H[a+36>>2]=b;ra(b)}H[a>>2]=2448;b=H[a+20>>2];H[a+20>>2]=0;if(b){ha[H[H[b>>2]+4>>2]](b)}H[a>>2]=2232;b=H[a+16>>2];H[a+16>>2]=0;if(b){Ja(b)}ra(a)}function _b(a,b,c){var d=0,e=0,f=0;e=fa-16|0;fa=e;d=H[a+8>>2]&2147483647;a:{if(d>>>0>c>>>0){d=H[a>>2];H[a+4>>2]=c;Bb(d,b,c);F[e+15|0]=0;F[c+d|0]=I[e+15|0];break a}f=a;a=H[a+4>>2];Fd(f,d-1|0,(c-d|0)+1|0,a,a,c,b)}fa=e+16|0}function Af(a,b){a=a|0;b=b|0;var c=0,d=0;c=fa-16|0;fa=c;a=H[a+4>>2];a:{if((a|0)==-1){break a}F[c+15|0]=a;d=H[b+20>>2];if(!!H[b+16>>2]&(d|0)>=0|(d|0)>0){break a}Yb(b,H[b+4>>2],c+15|0,c+16|0)}fa=c+16|0;return(a|0)!=-1|0}function Nj(a,b,c,d){var e=0,f=0,g=0,h=0,i=0,j=0;e=c>>>16|0;f=a>>>16|0;j=N(e,f);g=c&65535;h=a&65535;i=N(g,h);f=(i>>>16|0)+N(f,g)|0;e=(f&65535)+N(e,h)|0;ga=(N(b,c)+j|0)+N(a,d)+(f>>>16)+(e>>>16)|0;return i&65535|e<<16}function Dd(a,b,c){var d=0;d=H[a+16>>2];if(!d){H[a+36>>2]=1;H[a+24>>2]=c;H[a+16>>2]=b;return}a:{if((b|0)==(d|0)){if(H[a+24>>2]!=2){break a}H[a+24>>2]=c;return}F[a+54|0]=1;H[a+24>>2]=2;H[a+36>>2]=H[a+36>>2]+1}}function sh(){var a=0;a=Gb(sa(96));H[a+64>>2]=0;H[a+68>>2]=0;H[a+88>>2]=0;H[a+72>>2]=0;H[a+76>>2]=0;F[a+77|0]=0;F[a+78|0]=0;F[a+79|0]=0;F[a+80|0]=0;F[a+81|0]=0;F[a+82|0]=0;F[a+83|0]=0;F[a+84|0]=0;return a|0}function xi(a,b){a=a|0;b=b|0;var c=0,d=0;H[b>>2]=2;c=H[b+8>>2];d=H[b+12>>2]-c|0;if(d>>>0<=4294967291){mc(b+8|0,d+4|0);c=H[b+8>>2]}b=c+d|0;a=H[a+4>>2];F[b|0]=a;F[b+1|0]=a>>>8;F[b+2|0]=a>>>16;F[b+3|0]=a>>>24}function pj(a){a=a|0;var b=0;H[a>>2]=5580;b=H[a+96>>2];if(b){ra(b)}b=H[a+84>>2];if(b){ra(b)}b=H[a+72>>2];if(b){ra(b)}b=H[a+60>>2];if(b){ra(b)}H[a>>2]=3272;b=H[a+32>>2];if(b){H[a+36>>2]=b;ra(b)}return a|0}function mb(a,b,c,d,e){var f=0;f=fa-256|0;fa=f;if(!(e&73728|(c|0)<=(d|0))){d=c-d|0;c=d>>>0<256;ua(f,b&255,c?d:256);if(!c){while(1){Cb(a,f,256);d=d-256|0;if(d>>>0>255){continue}break}}Cb(a,f,d)}fa=f+256|0}function Fj(a){a=a|0;var b=0;H[a>>2]=3564;b=H[a+96>>2];if(b){ra(b)}b=H[a+84>>2];if(b){ra(b)}b=H[a+72>>2];if(b){ra(b)}b=H[a+60>>2];if(b){ra(b)}H[a>>2]=3272;b=H[a+32>>2];if(b){H[a+36>>2]=b;ra(b)}return a|0}function Bh(a){a=a|0;var b=0,c=0,d=0;b=H[a+8>>2];d=H[a+12>>2];if((b|0)==(d|0)){return 1}while(1){c=H[b>>2];c=ha[H[H[c>>2]+16>>2]](c,H[a+32>>2])|0;if(c){b=b+4|0;if((d|0)!=(b|0)){continue}}break}return c|0}function Xd(a,b){var c=0,d=0;c=H[a+8>>2];a=H[a+12>>2];if((c|0)!=(a|0)){a=a-c>>2;d=a>>>0<=1?1:a;a=0;while(1){if(H[H[(a<<2)+c>>2]+60>>2]==(b|0)){return a}a=a+1|0;if((d|0)!=(a|0)){continue}break}}return-1}function Vf(a,b){a=a|0;b=b|0;var c=0,d=0,e=0;Vd(a,b);a:{if((b|0)<0){break a}d=H[a+88>>2];c=H[a+84>>2];if(d-c>>2<=(b|0)){break a}b=c+(b<<2)|0;c=b+4|0;e=d-c|0;if((c|0)!=(d|0)){Sa(b,c,e)}H[a+88>>2]=b+e}}function oj(a){a=a|0;var b=0;H[a>>2]=5580;b=H[a+96>>2];if(b){ra(b)}b=H[a+84>>2];if(b){ra(b)}b=H[a+72>>2];if(b){ra(b)}b=H[a+60>>2];if(b){ra(b)}H[a>>2]=3272;b=H[a+32>>2];if(b){H[a+36>>2]=b;ra(b)}ra(a)}function Ej(a){a=a|0;var b=0;H[a>>2]=3564;b=H[a+96>>2];if(b){ra(b)}b=H[a+84>>2];if(b){ra(b)}b=H[a+72>>2];if(b){ra(b)}b=H[a+60>>2];if(b){ra(b)}H[a>>2]=3272;b=H[a+32>>2];if(b){H[a+36>>2]=b;ra(b)}ra(a)}function _d(a,b,c){var d=0,e=0;d=a+4|0;a=rb(a,b);if((d|0)==(a|0)){return 0}b=H[a+32>>2];d=H[a+28>>2];if((b|0)!=(d|0)){Cc(c,b-d|0);e=Dc(c);c=H[a+28>>2];ta(e,c,H[a+32>>2]-c|0)}return(b|0)!=(d|0)}function Pf(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0;e=fa-16|0;fa=e;a=ba(H[a+60>>2],b|0,c|0,d&255,e+8|0)|0;if(a){H[3992]=a;a=-1}else{a=0}fa=e+16|0;ga=a?-1:H[e+12>>2];return(a?-1:H[e+8>>2])|0}function Rd(a){var b=0;b=H[a+72>>2];H[a+72>>2]=b-1|b;b=H[a>>2];if(b&8){H[a>>2]=b|32;return-1}H[a+4>>2]=0;H[a+8>>2]=0;b=H[a+44>>2];H[a+28>>2]=b;H[a+20>>2]=b;H[a+16>>2]=b+H[a+48>>2];return 0}function Gb(a){H[a+8>>2]=0;H[a+12>>2]=0;H[a>>2]=0;H[a+40>>2]=0;H[a+44>>2]=0;H[a+28>>2]=9;F[a+24|0]=1;H[a+56>>2]=-1;H[a+60>>2]=0;H[a+16>>2]=0;H[a+20>>2]=0;H[a+48>>2]=0;H[a+52>>2]=0;return a}function gf(a,b){a=a|0;b=b|0;var c=0,d=0;d=H[a+16>>2];c=0;a:{if(H[a+20>>2]-d>>2<=(b|0)){break a}b=H[(b<<2)+d>>2];c=0;if((b|0)<0){break a}c=ub(H[H[a+36>>2]+(b<<2)>>2])}return c|0}function Lg(){var a=0,b=0;a=sa(40);H[a+4>>2]=0;H[a+8>>2]=0;H[a+24>>2]=0;H[a+28>>2]=0;b=a+16|0;H[b>>2]=0;H[b+4>>2]=0;H[a>>2]=a+4;H[a+12>>2]=b;H[a+32>>2]=0;H[a+36>>2]=0;return a|0}function lb(a){var b=0,c=0;b=H[3958];c=a+7&-8;a=b+c|0;a:{if(a>>>0<=b>>>0?c:0){break a}if(a>>>0>ia()<<16>>>0){if(!(ca(a|0)|0)){break a}}H[3958]=a;return b}H[3992]=48;return-1}function Zb(a,b,c){var d=0,e=0;d=fa-16|0;fa=d;a:{if(c>>>0<=10){F[a+11|0]=c;Bb(a,b,c);F[d+15|0]=0;F[a+c|0]=I[d+15|0];break a}e=a;a=I[a+11|0];Fd(e,10,c-10|0,a,a,c,b)}fa=d+16|0}function Qh(a){a=a|0;var b=0;H[a+8>>2]=12804;H[a>>2]=12640;b=H[a+56>>2];if(b){H[a+60>>2]=b;ra(b)}H[a+8>>2]=12620;b=H[a+44>>2];if(b){ra(b)}b=H[a+32>>2];if(b){ra(b)}return a|0}function Lh(a){a=a|0;var b=0;H[a+8>>2]=11872;H[a>>2]=12932;b=H[a+56>>2];if(b){H[a+60>>2]=b;ra(b)}H[a+8>>2]=12124;b=H[a+44>>2];if(b){ra(b)}b=H[a+32>>2];if(b){ra(b)}return a|0}function aj(a,b,c){a=a|0;b=b|0;c=c|0;var d=0;H[a+4>>2]=b;b=H[H[H[b+4>>2]+8>>2]+(c<<2)>>2];H[a+12>>2]=c;H[a+8>>2]=b;a=H[a+8>>2];if(I[a+24|0]==3){d=H[a+28>>2]==9}return d|0}function vf(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0;d=H[a+8>>2];a:{if(!I[d+24|0]){break a}if(!qb(d,H[b+4>>2]-H[b>>2]>>2)){break a}e=ha[H[H[a>>2]+32>>2]](a,b,c)|0}return e|0}function Ph(a){a=a|0;var b=0;H[a+8>>2]=12804;H[a>>2]=12640;b=H[a+56>>2];if(b){H[a+60>>2]=b;ra(b)}H[a+8>>2]=12620;b=H[a+44>>2];if(b){ra(b)}b=H[a+32>>2];if(b){ra(b)}ra(a)}function Kh(a){a=a|0;var b=0;H[a+8>>2]=11872;H[a>>2]=12932;b=H[a+56>>2];if(b){H[a+60>>2]=b;ra(b)}H[a+8>>2]=12124;b=H[a+44>>2];if(b){ra(b)}b=H[a+32>>2];if(b){ra(b)}ra(a)}function lj(a){a=a|0;var b=0;H[a>>2]=5816;b=H[a+76>>2];if(b){ra(b)}b=H[a+68>>2];H[a+68>>2]=0;if(b){ra(b)}H[a>>2]=3272;b=H[a+32>>2];if(b){H[a+36>>2]=b;ra(b)}return a|0}function Ua(a,b){if(b){Ua(a,H[b>>2]);Ua(a,H[b+4>>2]);a=H[b+28>>2];H[b+28>>2]=0;if(a){Ua(a+12|0,H[a+16>>2]);Ta(a,H[a+4>>2]);ra(a)}if(F[b+27|0]<0){ra(H[b+16>>2])}ra(b)}}function Fi(a,b,c){a=a|0;b=b|0;c=c|0;var d=0;H[a+4>>2]=b;d=H[H[H[b+4>>2]+8>>2]+(c<<2)>>2];H[a+12>>2]=c;H[a+8>>2]=d;return H[H[H[H[b+4>>2]+8>>2]+(c<<2)>>2]+28>>2]==9|0}function Bj(a){a=a|0;var b=0;H[a>>2]=3812;b=H[a+76>>2];if(b){ra(b)}b=H[a+68>>2];H[a+68>>2]=0;if(b){ra(b)}H[a>>2]=3272;b=H[a+32>>2];if(b){H[a+36>>2]=b;ra(b)}return a|0}function Tc(a){H[a+40>>2]=0;H[a+4>>2]=0;H[a+8>>2]=0;H[a>>2]=13280;H[a+12>>2]=0;H[a+16>>2]=0;H[a+20>>2]=0;H[a+24>>2]=0;H[a+28>>2]=0;H[a+32>>2]=0;G[a+36>>1]=0;return a}function Gd(a,b){var c=0,d=0,e=0,f=0;H[a>>2]=15260;H[a>>2]=15372;c=Pa(b);d=sa(c+13|0);H[d+8>>2]=0;H[d+4>>2]=c;H[d>>2]=c;e=a,f=ta(d+12|0,b,c+1|0),H[e+4>>2]=f;return a}function Zf(a,b){a=a|0;b=b|0;var c=0;a:{if(!(ha[H[H[a>>2]+36>>2]](a,b)|0)){break a}if(!(ha[H[H[a>>2]+40>>2]](a,b)|0)){break a}c=ha[H[H[a>>2]+44>>2]](a)|0}return c|0}function kj(a){a=a|0;var b=0;H[a>>2]=5816;b=H[a+76>>2];if(b){ra(b)}b=H[a+68>>2];H[a+68>>2]=0;if(b){ra(b)}H[a>>2]=3272;b=H[a+32>>2];if(b){H[a+36>>2]=b;ra(b)}ra(a)}function Aj(a){a=a|0;var b=0;H[a>>2]=3812;b=H[a+76>>2];if(b){ra(b)}b=H[a+68>>2];H[a+68>>2]=0;if(b){ra(b)}H[a>>2]=3272;b=H[a+32>>2];if(b){H[a+36>>2]=b;ra(b)}ra(a)}function Ve(a){a=a|0;var b=0;a:{if(!H[a- -64>>2]|!H[a+68>>2]|(!H[a+44>>2]|!H[a+48>>2])){break a}if(!H[a+52>>2]|!H[a+56>>2]){break a}b=H[a+92>>2]!=-1}return b|0}function bf(a){a=a|0;var b=0;H[a>>2]=2448;b=H[a+20>>2];H[a+20>>2]=0;if(b){ha[H[H[b>>2]+4>>2]](b)}H[a>>2]=2232;b=H[a+16>>2];H[a+16>>2]=0;if(b){Ja(b)}return a|0}function Mj(a,b){a=a|0;b=b|0;var c=0;b=H[b+88>>2];if(!(!b|H[b>>2]!=2)){c=a;a=H[b+8>>2];H[c+4>>2]=I[a|0]|I[a+1|0]<<8|(I[a+2|0]<<16|I[a+3|0]<<24);c=1}return c|0}function uc(a){a=a|0;var b=0;a:{if(!H[a+48>>2]|!H[a+52>>2]|(!H[a+28>>2]|!H[a+32>>2])){break a}if(!H[a+36>>2]|!H[a+40>>2]){break a}b=H[a+76>>2]!=-1}return b|0}function Rh(a){a=a|0;var b=0;H[a>>2]=12804;b=H[a+48>>2];if(b){H[a+52>>2]=b;ra(b)}H[a>>2]=12620;b=H[a+36>>2];if(b){ra(b)}b=H[a+24>>2];if(b){ra(b)}return a|0}function Fe(a){a=a|0;var b=0;H[a>>2]=11872;b=H[a+48>>2];if(b){H[a+52>>2]=b;ra(b)}H[a>>2]=12124;b=H[a+36>>2];if(b){ra(b)}b=H[a+24>>2];if(b){ra(b)}return a|0}function af(a){a=a|0;var b=0;H[a>>2]=2448;b=H[a+20>>2];H[a+20>>2]=0;if(b){ha[H[H[b>>2]+4>>2]](b)}H[a>>2]=2232;b=H[a+16>>2];H[a+16>>2]=0;if(b){Ja(b)}ra(a)}function vh(){var a=0,b=0;b=sa(40);H[b>>2]=-1;a=b+8|0;H[a+16>>2]=0;H[a+20>>2]=0;H[a+8>>2]=0;H[a>>2]=0;H[a+4>>2]=0;H[a+24>>2]=0;H[a+28>>2]=0;return b|0}function ff(a,b){a=a|0;b=b|0;var c=0,d=0;d=H[a+4>>2];a:{if(d){c=1;if(I[d+36|0]<2){break a}}c=ha[H[H[a>>2]+48>>2]](a,H[b+4>>2]-H[b>>2]>>2)|0}return c|0}function bi(a){a=a|0;var b=0;H[a>>2]=11872;b=H[a+48>>2];if(b){H[a+52>>2]=b;ra(b)}H[a>>2]=12124;b=H[a+36>>2];if(b){ra(b)}b=H[a+24>>2];if(b){ra(b)}ra(a)}function Mh(a){a=a|0;var b=0;H[a>>2]=12804;b=H[a+48>>2];if(b){H[a+52>>2]=b;ra(b)}H[a>>2]=12620;b=H[a+36>>2];if(b){ra(b)}b=H[a+24>>2];if(b){ra(b)}ra(a)}function Ka(a){H[a+8>>2]=0;H[a+12>>2]=0;H[a>>2]=0;H[a+16>>2]=0;H[a+20>>2]=0;H[a+32>>2]=0;H[a+24>>2]=0;H[a+28>>2]=0;G[a+38>>1]=0;F[a+36|0]=0;return a}function Gf(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;if(Za(a,H[b+8>>2],f)){Bd(b,c,d,e);return}a=H[a+8>>2];ha[H[H[a>>2]+20>>2]](a,b,c,d,e,f)}function Di(a,b,c){a=a|0;b=b|0;c=c|0;a:{if(I[H[a+4>>2]+36|0]>=2){b=0;if(!(ha[H[H[a>>2]+52>>2]](a)|0)){break a}}b=Vc(a+24|0,H[a+16>>2])}return b|0}function Ei(a,b,c){a=a|0;b=b|0;c=c|0;var d=0;a:{if(I[H[a+4>>2]+36|0]<=1){d=0;if(!(ha[H[H[a>>2]+52>>2]](a)|0)){break a}}d=ld(a,b,c)}return d|0}function fh(){var a=0;a=Zd(sa(108));H[a+84>>2]=0;H[a+88>>2]=0;H[a>>2]=13664;H[a+92>>2]=0;H[a+96>>2]=0;H[a+100>>2]=0;H[a+104>>2]=0;return a|0}function Yd(a,b){var c=0;c=-1;a:{if((b|0)==-1|(b|0)>4){break a}b=N(b,12)+a|0;a=H[b+20>>2];if((H[b+24>>2]-a|0)<=0){break a}c=H[a>>2]}return c}function lc(a,b,c,d,e,f,g){H[a>>2]=0;H[a+56>>2]=b;H[a+48>>2]=0;H[a+52>>2]=0;H[a+40>>2]=f;H[a+44>>2]=g;F[a+32|0]=e;H[a+28>>2]=d;F[a+24|0]=c}function _i(a,b,c){a=a|0;b=b|0;c=c|0;a:{if(I[H[a+4>>2]+36|0]>=2){b=0;if(!yc(a+24|0,ub(a),c)){break a}}b=Vc(a+24|0,H[a+16>>2])}return b|0}function $i(a,b,c){a=a|0;b=b|0;c=c|0;var d=0;a:{if(I[H[a+4>>2]+36|0]<=1){d=0;if(!yc(a+24|0,H[a+8>>2],c)){break a}}d=ld(a,b,c)}return d|0}function Yf(a){a=a|0;var b=0;H[a>>2]=13664;b=H[a+96>>2];if(b){H[a+100>>2]=b;ra(b)}b=H[a+84>>2];if(b){H[a+88>>2]=b;ra(b)}return $b(a)|0}function Dc(a){var b=0;if(I[a+11|0]>>>7|0){b=H[a+4>>2]}else{b=I[a+11|0]}if(!b){$e(1232);v()}if(I[a+11|0]>>>7|0){a=H[a>>2]}return a}function Xf(a){a=a|0;var b=0;H[a>>2]=13664;b=H[a+96>>2];if(b){H[a+100>>2]=b;ra(b)}b=H[a+84>>2];if(b){H[a+88>>2]=b;ra(b)}ra($b(a))}function xj(a){a=a|0;var b=0;H[a>>2]=4040;b=H[a+76>>2];if(b){ra(b)}H[a>>2]=3272;b=H[a+32>>2];if(b){H[a+36>>2]=b;ra(b)}return a|0}function ij(a){a=a|0;var b=0;H[a>>2]=6032;b=H[a+76>>2];if(b){ra(b)}H[a>>2]=3272;b=H[a+32>>2];if(b){H[a+36>>2]=b;ra(b)}return a|0}function Ta(a,b){if(b){Ta(a,H[b>>2]);Ta(a,H[b+4>>2]);a=H[b+28>>2];if(a){H[b+32>>2]=a;ra(a)}if(F[b+27|0]<0){ra(H[b+16>>2])}ra(b)}}function Ug(){var a=0;a=sa(28);H[a>>2]=0;H[a+4>>2]=0;H[a+24>>2]=0;H[a+16>>2]=0;H[a+20>>2]=0;H[a+8>>2]=0;H[a+12>>2]=0;return a|0}function kg(a){a=a|0;var b=0;H[a>>2]=1984;b=H[a+16>>2];if(b){H[a+20>>2]=b;ra(b)}b=H[a+4>>2];if(b){H[a+8>>2]=b;ra(b)}return a|0}function dh(){var a=0,b=0;a=sa(24);H[a+4>>2]=0;H[a+8>>2]=0;b=a+16|0;H[b>>2]=0;H[b+4>>2]=0;H[a>>2]=a+4;H[a+12>>2]=b;return a|0}function Jf(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;if(Za(a,H[b+8>>2],0)){Dd(b,c,d);return}a=H[a+8>>2];ha[H[H[a>>2]+28>>2]](a,b,c,d)}function wj(a){a=a|0;var b=0;H[a>>2]=4040;b=H[a+76>>2];if(b){ra(b)}H[a>>2]=3272;b=H[a+32>>2];if(b){H[a+36>>2]=b;ra(b)}ra(a)}function hj(a){a=a|0;var b=0;H[a>>2]=6032;b=H[a+76>>2];if(b){ra(b)}H[a>>2]=3272;b=H[a+32>>2];if(b){H[a+36>>2]=b;ra(b)}ra(a)}function sa(a){var b=0;a=a?a:1;a:{while(1){b=Hd(a);if(b){break a}b=H[4420];if(b){ha[b|0]();continue}break}Z();v()}return b}function Mb(a,b){if(b){Mb(a,H[b>>2]);Mb(a,H[b+4>>2]);if(F[b+39|0]<0){ra(H[b+28>>2])}if(F[b+27|0]<0){ra(H[b+16>>2])}ra(b)}}function Ad(a){a=a|0;var b=0,c=0;H[a>>2]=15372;b=H[a+4>>2]-12|0;c=H[b+8>>2]-1|0;H[b+8>>2]=c;if((c|0)<0){ra(b)}return a|0}function kh(){var a=0;a=sa(24);H[a+8>>2]=0;H[a+12>>2]=0;H[a+4>>2]=-1;H[a>>2]=1832;H[a+16>>2]=0;H[a+20>>2]=0;return a|0}function nd(a,b,c){a=a|0;b=b|0;c=c|0;H[a+4>>2]=b;b=H[H[H[b+4>>2]+8>>2]+(c<<2)>>2];H[a+12>>2]=c;H[a+8>>2]=b;return 1}function xc(a){a=a|0;var b=0;if(!(!H[a+60>>2]|!H[a+44>>2]|(!H[a+48>>2]|!H[a+52>>2]))){b=H[a+56>>2]!=0}return b|0}function uj(a){a=a|0;var b=0;H[a>>2]=4276;H[a>>2]=3272;b=H[a+32>>2];if(b){H[a+36>>2]=b;ra(b)}return a|0}function fj(a){a=a|0;var b=0;H[a>>2]=6256;H[a>>2]=3272;b=H[a+32>>2];if(b){H[a+36>>2]=b;ra(b)}return a|0}function ai(a){a=a|0;var b=0;H[a>>2]=12124;b=H[a+36>>2];if(b){ra(b)}b=H[a+24>>2];if(b){ra(b)}return a|0}function Th(a){a=a|0;var b=0;H[a>>2]=12620;b=H[a+36>>2];if(b){ra(b)}b=H[a+24>>2];if(b){ra(b)}return a|0}function lg(a){a=a|0;if(a){if(F[a+39|0]<0){ra(H[a+28>>2])}Mc(a+12|0,H[a+16>>2]);Mb(a,H[a+4>>2]);ra(a)}}function Rb(a){a=a|0;var b=0;if(!(!H[a+52>>2]|(!H[a+44>>2]|!H[a+48>>2]))){b=H[a+56>>2]!=0}return b|0}function wc(a,b){a=a|0;b=b|0;var c=0;if(!(H[b+56>>2]|!b|I[b+24|0]!=3)){H[a+60>>2]=b;c=1}return c|0}function tj(a){a=a|0;var b=0;H[a>>2]=4276;H[a>>2]=3272;b=H[a+32>>2];if(b){H[a+36>>2]=b;ra(b)}ra(a)}function dj(a){a=a|0;var b=0;H[a>>2]=6256;H[a>>2]=3272;b=H[a+32>>2];if(b){H[a+36>>2]=b;ra(b)}ra(a)}function Sh(a){a=a|0;var b=0;H[a>>2]=12620;b=H[a+36>>2];if(b){ra(b)}b=H[a+24>>2];if(b){ra(b)}ra(a)}function $h(a){a=a|0;var b=0;H[a>>2]=12124;b=H[a+36>>2];if(b){ra(b)}b=H[a+24>>2];if(b){ra(b)}ra(a)}function wh(a,b,c){a=a|0;b=b|0;c=c|0;H[a+16>>2]=0;H[a+20>>2]=0;H[a>>2]=b;H[a+8>>2]=c;H[a+12>>2]=0}function Ue(a,b){a=a|0;b=b|0;var c=0;if(!(H[b+56>>2]|I[b+24|0]!=3)){H[a- -64>>2]=b;c=1}return c|0}function zc(a){var b=0;b=H[a+16>>2];if(b){H[a+20>>2]=b;ra(b)}b=H[a>>2];if(b){H[a+4>>2]=b;ra(b)}}function tc(a,b){a=a|0;b=b|0;var c=0;if(!(H[b+56>>2]|I[b+24|0]!=3)){H[a+48>>2]=b;c=1}return c|0}function Ff(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;if(Za(a,H[b+8>>2],f)){Bd(b,c,d,e)}}function za(){var a=0;a=$(4)|0;H[a>>2]=15260;H[a>>2]=15220;H[a>>2]=15240;_(a|0,15352,14);v()}function rf(a){a=a|0;var b=0;H[a>>2]=2232;b=H[a+16>>2];H[a+16>>2]=0;if(b){Ja(b)}return a|0}function Hj(a){a=a|0;var b=0;H[a>>2]=3272;b=H[a+32>>2];if(b){H[a+36>>2]=b;ra(b)}return a|0}function ji(a){a=a|0;var b=0;H[a>>2]=1832;b=H[a+8>>2];if(b){H[a+12>>2]=b;ra(b)}return a|0}function Bi(a){a=a|0;var b=0;b=ub(a);return He(a+24|0,b?b:H[a+8>>2],H[H[a+4>>2]+32>>2])|0}function qf(a){a=a|0;var b=0;H[a>>2]=2232;b=H[a+16>>2];H[a+16>>2]=0;if(b){Ja(b)}ra(a)}function Wb(a){a=a|0;var b=0;H[a>>2]=3272;b=H[a+32>>2];if(b){H[a+36>>2]=b;ra(b)}ra(a)}function ii(a){a=a|0;var b=0;H[a>>2]=1832;b=H[a+8>>2];if(b){H[a+12>>2]=b;ra(b)}ra(a)}function _a(a){var b=0;H[a+16>>2]=0;b=H[a>>2];H[a+4>>2]=b;H[a+12>>2]=b;if(b){ra(b)}}function Mc(a,b){if(b){Mc(a,H[b>>2]);Mc(a,H[b+4>>2]);Mb(b+20|0,H[b+24>>2]);ra(b)}}function wi(a){a=a|0;if(!H[a+44>>2]){return 0}return ha[H[H[a>>2]+48>>2]](a)|0}function uh(a){a=a|0;var b=0;if(a){b=H[a+8>>2];if(b){H[a+12>>2]=b;ra(b)}ra(a)}}function ti(a,b){a=a|0;b=b|0;a=H[a+48>>2];return ha[H[H[a>>2]+20>>2]](a,b)|0} +function Qj(a){var b=0;while(1){if(a){a=a-1&a;b=b+1|0;continue}break}return b}function Kf(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;if(Za(a,H[b+8>>2],0)){Dd(b,c,d)}}function mi(a,b){a=a|0;b=b|0;a=H[a+48>>2];return ha[H[H[a>>2]+12>>2]](a,b)|0}function li(a,b){a=a|0;b=b|0;a=H[a+48>>2];return ha[H[H[a>>2]+16>>2]](a,b)|0}function pb(){var a=0;a=sa(12);H[a>>2]=0;H[a+4>>2]=0;H[a+8>>2]=0;return a|0}function ob(a){a=a|0;var b=0;if(a){b=H[a>>2];if(b){H[a+4>>2]=b;ra(b)}ra(a)}}function Rj(a){var b=0;b=a&31;a=0-a&31;return(-1>>>b&-2)<>>a}function ch(a){a=a|0;if(a){Ua(a+12|0,H[a+16>>2]);Ta(a,H[a+4>>2]);ra(a)}}function Wg(a,b,c){a=a|0;b=b|0;c=c|0;H[a+32>>2]=c;H[a+28>>2]=b;return 1}function Qd(a,b,c){a:{if(H[c+76>>2]<0){a=Ec(a,b,c);break a}a=Ec(a,b,c)}}function Ob(a,b){a=a|0;b=b|0;if(b>>>0<=1){H[a+28>>2]=b}return b>>>0<2|0}function Eh(a,b){a=a|0;b=b|0;F[b+84|0]=1;H[b+72>>2]=H[b+68>>2];return 1}function ri(a){a=a|0;a=H[a+48>>2];return ha[H[H[a>>2]+24>>2]](a)|0}function qi(a){a=a|0;a=H[a+48>>2];return ha[H[H[a>>2]+28>>2]](a)|0}function ni(a){a=a|0;a=H[a+48>>2];return ha[H[H[a>>2]+36>>2]](a)|0}function hh(){var a=0;a=sa(8);H[a+4>>2]=-1;H[a>>2]=1032;return a|0}function Fg(a,b,c){a=a|0;b=b|0;c=c|0;return H[H[b+8>>2]+(c<<2)>>2]}function Zi(a,b){a=a|0;b=b|0;return Cd(a+24|0,ub(a),H[a+8>>2])|0}function Ai(a,b){a=a|0;b=b|0;return Pe(a+24|0,ub(a),H[a+8>>2])|0}function wf(a,b){a=a|0;b=b|0;H[a+12>>2]=-1;H[a+8>>2]=b;return 1}function ne(a,b){a=a|0;b=b|0;return ha[H[H[a>>2]+12>>2]](a,b)|0}function Ef(a){a=a|0;if(!a){return 0}return(Ed(a,15068)|0)!=0|0}function Ci(a,b){a=a|0;b=b|0;return ha[H[H[a>>2]+56>>2]](a,b)|0}function $g(a){a=a|0;if(a){if(F[a+15|0]<0){ra(H[a+4>>2])}ra(a)}}function Se(a){a=Gd($(8)|0,a);H[a>>2]=15420;_(a|0,15452,1);v()}function $e(a){a=Gd($(8)|0,a);H[a>>2]=15472;_(a|0,15504,1);v()}function jh(a,b){a=a|0;b=b|0;return O(L[H[a+8>>2]+(b<<2)>>2])}function _g(a,b){a=a|0;b=b|0;return O(L[H[a>>2]+(b<<2)>>2])}function eh(a){a=a|0;return(H[a+100>>2]-H[a+96>>2]|0)/12|0}function ah(a){a=a|0;return(F[a+15|0]<0?H[a+4>>2]:a+4|0)|0}function Uf(a,b){a=a|0;b=b|0;return H[H[a+4>>2]+(b<<2)>>2]}function Of(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;ga=0;return 0}function Ie(a){a=Tc(a);H[a+44>>2]=0;H[a>>2]=11180;return a}function ie(a,b){a=a|0;b=b|0;return H[H[a>>2]+(b<<2)>>2]}function Xg(a,b){a=a|0;b=b|0;return G[H[a>>2]+(b<<1)>>1]}function Vg(a,b){a=a|0;b=b|0;return J[H[a>>2]+(b<<1)>>1]}function Ig(a,b,c){a=a|0;b=b|0;c=c|0;return Yd(b,c)|0}function Zd(a){H[a>>2]=13724;ua(a+4|0,0,80);return a}function Sj(a){if(a){return 31-Q(a-1^a)|0}return 32} +function le(a){a=a|0;return H[a+12>>2]-H[a+8>>2]>>2}function dc(a){a=a|0;if(a){ha[H[H[a>>2]+4>>2]](a)}}function Zg(a,b){a=a|0;b=b|0;return F[H[a>>2]+b|0]}function Yg(a,b){a=a|0;b=b|0;return I[H[a>>2]+b|0]}function Tf(a){a=a|0;return H[a+8>>2]-H[a+4>>2]>>2}function hd(a,b){a=a|0;b=b|0;H[a+4>>2]=b;return 1}function je(a){a=a|0;return H[a+4>>2]-H[a>>2]>>1}function Oc(a){a=a|0;return H[a+4>>2]-H[a>>2]>>2}function ke(a){a=a|0;return H[a+4>>2]-H[a>>2]|0}function Cb(a,b,c){if(!(I[a|0]&32)){Ec(b,c,a)}}function uf(a,b,c){a=a|0;b=b|0;c=c|0;return 1}function ci(a,b){a=a|0;b=b|0;return I[b+24|0]}function Og(a,b){a=a|0;b=b|0;return H[b+8>>2]}function Kj(a){a=a|0;return I[H[a+8>>2]+24|0]}function Ki(a){a=a|0;H[a>>2]=10032;return a|0}function Dg(a,b){a=a|0;b=b|0;return H[b+4>>2]}function Xi(a){a=a|0;H[a>>2]=7144;return a|0}function Ti(a){a=a|0;H[a>>2]=8080;return a|0}function Rf(a){a=a|0;return da(H[a+60>>2])|0}function Oi(a){a=a|0;H[a>>2]=9028;return a|0}function ih(a){a=a|0;return O(L[a+20>>2])}function Ji(a){a=a|0;H[a>>2]=10032;ra(a)}function Wi(a){a=a|0;H[a>>2]=7144;ra(a)}function Si(a){a=a|0;H[a>>2]=8080;ra(a)}function Ni(a){a=a|0;H[a>>2]=9028;ra(a)}function rh(a){a=a|0;return H[a+88>>2]}function qh(a){a=a|0;return H[a+56>>2]}function nh(a){a=a|0;return H[a+40>>2]}function mh(a){a=a|0;return H[a+48>>2]}function lh(a){a=a|0;return H[a+60>>2]}function hb(a){a=a|0;return H[a+28>>2]}function cf(){H[4290]=17048;H[4272]=42}function Pc(a){a=a|0;return H[a+80>>2]}function zj(a,b){a=a|0;b=b|0;return 2}function ph(a){a=a|0;return F[a+24|0]}function oh(a){a=a|0;return I[a+32|0]}function kd(a,b){a=a|0;b=b|0;return-1}function gb(a){a=a|0;return H[a+4>>2]}function bh(a){a=a|0;return!H[a>>2]|0}function Ze(a,b){a=a|0;b=b|0;return 6}function Xc(a){a=a|0;return H[a+8>>2]}function Ma(a,b){a=a|0;b=b|0;return 0}function Id(a,b){a=a|0;b=b|0;return 1}function oe(a){a=a|0;return H[a>>2]}function Bb(a,b,c){if(c){ta(a,b,c)}}function xh(){return Ka(sa(40))|0}function th(){return Gb(sa(64))|0}function gh(){return Zd(sa(84))|0}function Qc(a){a=a|0;if(a){ra(a)}}function Df(a){a=a|0;return 1171}function Cf(a){a=a|0;return 1245}function Bf(a){a=a|0;return 1211}function Ac(a){a=a|0;Ad(a);ra(a)}function Wa(a){a=a|0;return a|0}function xf(a){a=a|0;ra(qd(a))}function fi(a){a=a|0;ra(ze(a))}function ei(a){a=a|0;ra(ye(a))}function di(a){a=a|0;ra(xe(a))}function Xe(a){a=a|0;return 5} +function Sf(a){a=a|0;ra($b(a))}function jd(a){a=a|0;return 3}function bb(a){a=a|0;return 0}function _e(a){a=a|0;return 4}function Vb(a){a=a|0;return 2}function Qb(a){a=a|0;return 6}function Fa(a){a=a|0;return 1}function va(){Se(1164);v()}function Qa(){Se(1232);v()}function Oa(a){a=a|0;ra(a)}function Ea(){$e(1164);v()}function ib(a){a=a|0;v()}function eg(){return 10}function dg(){return 11}function cg(){return 12}function jg(){return 5}function ig(){return 6}function hg(){return 7}function gg(){return 8}function fg(){return 9}function ee(){return 3}function de(){return 4}function cc(){return-1}function bg(){return-2}function bc(){return 1}function ag(){return-3}function _f(){return-5}function Sb(){return 0}function Lc(){return 2}function $f(){return-4}function Mf(){Z();v()}function Sd(a){a=a|0} // EMSCRIPTEN_END_FUNCS -e=G;p(pa);var ga=c([null,Ad,Wa,Na,Ub,Lj,wi,Fh,Bd,zf,xc,Eh,Ye,yj,Wa,ii,hi,Fa,dj,Qi,Hi,Oe,ui,Ge,Ye,ai,jg,ib,Vg,he,Yf,Tf,Sf,hb,Ma,Lf,Hd,Fa,qd,wf,Mf,yf,xf,qf,pf,nd,vf,uf,tf,Hd,sf,rf,hf,gf,of,nf,ff,mf,lf,kf,jf,af,$e,nd,ef,df,ld,cf,Jj,Kj,Gj,Vb,Fa,gb,Qb,bb,kd,Ma,bb,Fa,Ij,Hj,ib,ib,Vb,Ub,Qb,Fj,Ej,Dj,Ze,Qb,Cj,Bj,Aj,zj,jd,wc,Fa,Ma,vc,Xe,xj,wj,vj,We,wc,Fa,Ma,vc,Ve,uj,tj,sj,Pb,Ue,Fa,Ma,Te,Se,rj,Wa,Na,Nb,hb,Ob,ib,Vb,Fa,Qb,qj,ib,Vb,Ub,Qb,pj,oj,nj,Ze,Qb,mj,lj,kj,jj,jd,wc,Fa,Ma,vc,Xe,ij,hj,gj,We,wc,Fa,Ma,vc,Ve,fj,ej,cj,Pb,Ue,Fa,Ma,Te,Se,bj,Wa,Na,Nb,hb,Mb,ib,Vb,bb,Fa,aj,af,$e,$i,Zi,_i,Xi,Ub,Yi,Wi,Vi,Pb,gb,tc,Fa,Ma,sc,Fa,Ub,Qe,Ui,Wa,Na,Nb,hb,Ob,Si,Ri,Pb,tc,Fa,Ma,sc,Qe,Pi,Wa,Na,Nb,hb,Mb,Wa,Na,bb,Fa,bb,kd,Ma,Ti,Oi,Ni,Mi,Pb,gb,tc,Fa,Ma,sc,Fa,jd,Pe,Li,Wa,Na,Nb,hb,Ob,Ji,Ii,Pb,tc,Fa,Ma,sc,Pe,Gi,Wa,Na,Nb,hb,Mb,Na,bb,Fa,bb,kd,Ma,Ki,Fi,yi,xi,Ei,Ci,Di,Bi,Ai,zi,ti,ib,Fa,Fa,vi,Bh,Ah,Fa,bb,Ma,Ma,oi,ni,ri,si,pi,mi,li,ki,qi,ze,ei,hd,gd,fd,ed,ji,Fa,gb,Xc,ye,di,hd,gd,fd,ed,gi,Fa,gb,Xc,xe,ci,hd,gd,fd,ed,fi,Fa,gb,Xc,Ee,bi,Fe,$h,_h,Xh,Wh,Vh,Uh,Yh,Th,Zh,Sh,Rh,Ph,Oh,Nh,Mh,Qh,Lh,Kh,Jh,Ih,Hh,Tc,te,Gh,Wa,Na,Dh,Ch,ib,bb,Fa,Tc,yh,zh,Tc,te,xh,Xf,Wf,Vf,Uf,_b,Rf,Wd,Vd,Qf,Pf,Of,bb,Nf,Wa,Na,Sd,Sd,Kf,Ef,Gf,Jf,Na,Ff,Hf,If,Na,Bf,Na,Af,Na,Cf,Ac,gb,Ac,Ac]);function ha(){return C.byteLength/65536|0}function ma(na){na=na|0;var ia=ha()|0;var ja=ia+na|0;if(ia=endIdx))++endPtr;if(endPtr-idx>16&&heapOrArray.buffer&&UTF8Decoder){return UTF8Decoder.decode(heapOrArray.subarray(idx,endPtr))}else{var str="";while(idx>10,56320|ch&1023)}}}return str}function UTF8ToString(ptr,maxBytesToRead){return ptr?UTF8ArrayToString(HEAPU8,ptr,maxBytesToRead):""}function stringToUTF8Array(str,heap,outIdx,maxBytesToWrite){if(!(maxBytesToWrite>0))return 0;var startIdx=outIdx;var endIdx=outIdx+maxBytesToWrite-1;for(var i=0;i=55296&&u<=57343){var u1=str.charCodeAt(++i);u=65536+((u&1023)<<10)|u1&1023}if(u<=127){if(outIdx>=endIdx)break;heap[outIdx++]=u}else if(u<=2047){if(outIdx+1>=endIdx)break;heap[outIdx++]=192|u>>6;heap[outIdx++]=128|u&63}else if(u<=65535){if(outIdx+2>=endIdx)break;heap[outIdx++]=224|u>>12;heap[outIdx++]=128|u>>6&63;heap[outIdx++]=128|u&63}else{if(outIdx+3>=endIdx)break;heap[outIdx++]=240|u>>18;heap[outIdx++]=128|u>>12&63;heap[outIdx++]=128|u>>6&63;heap[outIdx++]=128|u&63}}heap[outIdx]=0;return outIdx-startIdx}function lengthBytesUTF8(str){var len=0;for(var i=0;i=55296&&u<=57343)u=65536+((u&1023)<<10)|str.charCodeAt(++i)&1023;if(u<=127)++len;else if(u<=2047)len+=2;else if(u<=65535)len+=3;else len+=4}return len}var buffer,HEAP8,HEAPU8,HEAP16,HEAPU16,HEAP32,HEAPU32,HEAPF32,HEAPF64;function updateGlobalBufferAndViews(buf){buffer=buf;Module["HEAP8"]=HEAP8=new Int8Array(buf);Module["HEAP16"]=HEAP16=new Int16Array(buf);Module["HEAP32"]=HEAP32=new Int32Array(buf);Module["HEAPU8"]=HEAPU8=new Uint8Array(buf);Module["HEAPU16"]=HEAPU16=new Uint16Array(buf);Module["HEAPU32"]=HEAPU32=new Uint32Array(buf);Module["HEAPF32"]=HEAPF32=new Float32Array(buf);Module["HEAPF64"]=HEAPF64=new Float64Array(buf)}var INITIAL_MEMORY=Module["INITIAL_MEMORY"]||16777216;if(Module["wasmMemory"]){wasmMemory=Module["wasmMemory"]}else{wasmMemory=new WebAssembly.Memory({"initial":INITIAL_MEMORY/65536,"maximum":2147483648/65536})}if(wasmMemory){buffer=wasmMemory.buffer}INITIAL_MEMORY=buffer.byteLength;updateGlobalBufferAndViews(buffer);var wasmTable;var __ATPRERUN__=[];var __ATINIT__=[];var __ATPOSTRUN__=[];var runtimeInitialized=false;function keepRuntimeAlive(){return noExitRuntime}function preRun(){if(Module["preRun"]){if(typeof Module["preRun"]=="function")Module["preRun"]=[Module["preRun"]];while(Module["preRun"].length){addOnPreRun(Module["preRun"].shift())}}callRuntimeCallbacks(__ATPRERUN__)}function initRuntime(){runtimeInitialized=true;callRuntimeCallbacks(__ATINIT__)}function postRun(){if(Module["postRun"]){if(typeof Module["postRun"]=="function")Module["postRun"]=[Module["postRun"]];while(Module["postRun"].length){addOnPostRun(Module["postRun"].shift())}}callRuntimeCallbacks(__ATPOSTRUN__)}function addOnPreRun(cb){__ATPRERUN__.unshift(cb)}function addOnInit(cb){__ATINIT__.unshift(cb)}function addOnPostRun(cb){__ATPOSTRUN__.unshift(cb)}var runDependencies=0;var runDependencyWatcher=null;var dependenciesFulfilled=null;function addRunDependency(id){runDependencies++;if(Module["monitorRunDependencies"]){Module["monitorRunDependencies"](runDependencies)}}function removeRunDependency(id){runDependencies--;if(Module["monitorRunDependencies"]){Module["monitorRunDependencies"](runDependencies)}if(runDependencies==0){if(runDependencyWatcher!==null){clearInterval(runDependencyWatcher);runDependencyWatcher=null}if(dependenciesFulfilled){var callback=dependenciesFulfilled;dependenciesFulfilled=null;callback()}}}function abort(what){{if(Module["onAbort"]){Module["onAbort"](what)}}what="Aborted("+what+")";err(what);ABORT=true;EXITSTATUS=1;what+=". Build with -sASSERTIONS for more info.";var e=new WebAssembly.RuntimeError(what);readyPromiseReject(e);throw e}var dataURIPrefix="data:application/octet-stream;base64,";function isDataURI(filename){return filename.startsWith(dataURIPrefix)}function isFileURI(filename){return filename.startsWith("file://")}var wasmBinaryFile;wasmBinaryFile="draco_decoder.wasm";if(!isDataURI(wasmBinaryFile)){wasmBinaryFile=locateFile(wasmBinaryFile)}function getBinary(file){try{if(file==wasmBinaryFile&&wasmBinary){return new Uint8Array(wasmBinary)}var binary=tryParseAsDataURI(file);if(binary){return binary}if(readBinary){return readBinary(file)}else{throw"both async and sync fetching of the wasm failed"}}catch(err){abort(err)}}function getBinaryPromise(){if(!wasmBinary&&(ENVIRONMENT_IS_WEB||ENVIRONMENT_IS_WORKER)){if(typeof fetch=="function"&&!isFileURI(wasmBinaryFile)){return fetch(wasmBinaryFile,{credentials:"same-origin"}).then(function(response){if(!response["ok"]){throw"failed to load wasm binary file at '"+wasmBinaryFile+"'"}return response["arrayBuffer"]()}).catch(function(){return getBinary(wasmBinaryFile)})}else{if(readAsync){return new Promise(function(resolve,reject){readAsync(wasmBinaryFile,function(response){resolve(new Uint8Array(response))},reject)})}}}return Promise.resolve().then(function(){return getBinary(wasmBinaryFile)})}function createWasm(){var info={"a":asmLibraryArg};function receiveInstance(instance,module){var exports=instance.exports;Module["asm"]=exports;wasmTable=Module["asm"]["k"];addOnInit(Module["asm"]["j"]);removeRunDependency("wasm-instantiate")}addRunDependency("wasm-instantiate");function receiveInstantiationResult(result){receiveInstance(result["instance"])}function instantiateArrayBuffer(receiver){return getBinaryPromise().then(function(binary){return WebAssembly.instantiate(binary,info)}).then(function(instance){return instance}).then(receiver,function(reason){err("failed to asynchronously prepare wasm: "+reason);abort(reason)})}function instantiateAsync(){if(!wasmBinary&&typeof WebAssembly.instantiateStreaming=="function"&&!isDataURI(wasmBinaryFile)&&!isFileURI(wasmBinaryFile)&&!ENVIRONMENT_IS_NODE&&typeof fetch=="function"){return fetch(wasmBinaryFile,{credentials:"same-origin"}).then(function(response){var result=WebAssembly.instantiateStreaming(response,info);return result.then(receiveInstantiationResult,function(reason){err("wasm streaming compile failed: "+reason);err("falling back to ArrayBuffer instantiation");return instantiateArrayBuffer(receiveInstantiationResult)})})}else{return instantiateArrayBuffer(receiveInstantiationResult)}}if(Module["instantiateWasm"]){try{var exports=Module["instantiateWasm"](info,receiveInstance);return exports}catch(e){err("Module.instantiateWasm callback failed with error: "+e);return false}}instantiateAsync().catch(readyPromiseReject);return{}}function callRuntimeCallbacks(callbacks){while(callbacks.length>0){var callback=callbacks.shift();if(typeof callback=="function"){callback(Module);continue}var func=callback.func;if(typeof func=="number"){if(callback.arg===undefined){getWasmTableEntry(func)()}else{getWasmTableEntry(func)(callback.arg)}}else{func(callback.arg===undefined?null:callback.arg)}}}var wasmTableMirror=[];function getWasmTableEntry(funcPtr){var func=wasmTableMirror[funcPtr];if(!func){if(funcPtr>=wasmTableMirror.length)wasmTableMirror.length=funcPtr+1;wasmTableMirror[funcPtr]=func=wasmTable.get(funcPtr)}return func}function ___cxa_allocate_exception(size){return _malloc(size+24)+24}function ExceptionInfo(excPtr){this.excPtr=excPtr;this.ptr=excPtr-24;this.set_type=function(type){HEAPU32[this.ptr+4>>2]=type};this.get_type=function(){return HEAPU32[this.ptr+4>>2]};this.set_destructor=function(destructor){HEAPU32[this.ptr+8>>2]=destructor};this.get_destructor=function(){return HEAPU32[this.ptr+8>>2]};this.set_refcount=function(refcount){HEAP32[this.ptr>>2]=refcount};this.set_caught=function(caught){caught=caught?1:0;HEAP8[this.ptr+12>>0]=caught};this.get_caught=function(){return HEAP8[this.ptr+12>>0]!=0};this.set_rethrown=function(rethrown){rethrown=rethrown?1:0;HEAP8[this.ptr+13>>0]=rethrown};this.get_rethrown=function(){return HEAP8[this.ptr+13>>0]!=0};this.init=function(type,destructor){this.set_adjusted_ptr(0);this.set_type(type);this.set_destructor(destructor);this.set_refcount(0);this.set_caught(false);this.set_rethrown(false)};this.add_ref=function(){var value=HEAP32[this.ptr>>2];HEAP32[this.ptr>>2]=value+1};this.release_ref=function(){var prev=HEAP32[this.ptr>>2];HEAP32[this.ptr>>2]=prev-1;return prev===1};this.set_adjusted_ptr=function(adjustedPtr){HEAPU32[this.ptr+16>>2]=adjustedPtr};this.get_adjusted_ptr=function(){return HEAPU32[this.ptr+16>>2]};this.get_exception_ptr=function(){var isPointer=___cxa_is_pointer_type(this.get_type());if(isPointer){return HEAPU32[this.excPtr>>2]}var adjusted=this.get_adjusted_ptr();if(adjusted!==0)return adjusted;return this.excPtr}}var exceptionLast=0;var uncaughtExceptionCount=0;function ___cxa_throw(ptr,type,destructor){var info=new ExceptionInfo(ptr);info.init(type,destructor);exceptionLast=ptr;uncaughtExceptionCount++;throw ptr}function _abort(){abort("")}function _emscripten_memcpy_big(dest,src,num){HEAPU8.copyWithin(dest,src,src+num)}function getHeapMax(){return 2147483648}function emscripten_realloc_buffer(size){try{wasmMemory.grow(size-buffer.byteLength+65535>>>16);updateGlobalBufferAndViews(wasmMemory.buffer);return 1}catch(e){}}function _emscripten_resize_heap(requestedSize){var oldSize=HEAPU8.length;requestedSize=requestedSize>>>0;var maxHeapSize=getHeapMax();if(requestedSize>maxHeapSize){return false}let alignUp=(x,multiple)=>x+(multiple-x%multiple)%multiple;for(var cutDown=1;cutDown<=4;cutDown*=2){var overGrownHeapSize=oldSize*(1+.2/cutDown);overGrownHeapSize=Math.min(overGrownHeapSize,requestedSize+100663296);var newSize=Math.min(maxHeapSize,alignUp(Math.max(requestedSize,overGrownHeapSize),65536));var replacement=emscripten_realloc_buffer(newSize);if(replacement){return true}}return false}var SYSCALLS={varargs:undefined,get:function(){SYSCALLS.varargs+=4;var ret=HEAP32[SYSCALLS.varargs-4>>2];return ret},getStr:function(ptr){var ret=UTF8ToString(ptr);return ret}};function _fd_close(fd){return 52}function _fd_seek(fd,offset_low,offset_high,whence,newOffset){return 70}var printCharBuffers=[null,[],[]];function printChar(stream,curr){var buffer=printCharBuffers[stream];if(curr===0||curr===10){(stream===1?out:err)(UTF8ArrayToString(buffer,0));buffer.length=0}else{buffer.push(curr)}}function _fd_write(fd,iov,iovcnt,pnum){var num=0;for(var i=0;i>2];var len=HEAPU32[iov+4>>2];iov+=8;for(var j=0;j>2]=num;return 0}var ASSERTIONS=false;function intArrayFromString(stringy,dontAddNull,length){var len=length>0?length:lengthBytesUTF8(stringy)+1;var u8array=new Array(len);var numBytesWritten=stringToUTF8Array(stringy,u8array,0,u8array.length);if(dontAddNull)u8array.length=numBytesWritten;return u8array}function intArrayToString(array){var ret=[];for(var i=0;i255){if(ASSERTIONS){assert(false,"Character code "+chr+" ("+String.fromCharCode(chr)+") at offset "+i+" not in 0x00-0xFF.")}chr&=255}ret.push(String.fromCharCode(chr))}return ret.join("")}var decodeBase64=typeof atob=="function"?atob:function(input){var keyStr="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=";var output="";var chr1,chr2,chr3;var enc1,enc2,enc3,enc4;var i=0;input=input.replace(/[^A-Za-z0-9\+\/\=]/g,"");do{enc1=keyStr.indexOf(input.charAt(i++));enc2=keyStr.indexOf(input.charAt(i++));enc3=keyStr.indexOf(input.charAt(i++));enc4=keyStr.indexOf(input.charAt(i++));chr1=enc1<<2|enc2>>4;chr2=(enc2&15)<<4|enc3>>2;chr3=(enc3&3)<<6|enc4;output=output+String.fromCharCode(chr1);if(enc3!==64){output=output+String.fromCharCode(chr2)}if(enc4!==64){output=output+String.fromCharCode(chr3)}}while(i0){return}preRun();if(runDependencies>0){return}function doRun(){if(calledRun)return;calledRun=true;Module["calledRun"]=true;if(ABORT)return;initRuntime();readyPromiseResolve(Module);if(Module["onRuntimeInitialized"])Module["onRuntimeInitialized"]();postRun()}if(Module["setStatus"]){Module["setStatus"]("Running...");setTimeout(function(){setTimeout(function(){Module["setStatus"]("")},1);doRun()},1)}else{doRun()}}Module["run"]=run;if(Module["preInit"]){if(typeof Module["preInit"]=="function")Module["preInit"]=[Module["preInit"]];while(Module["preInit"].length>0){Module["preInit"].pop()()}}run();function WrapperObject(){}WrapperObject.prototype=Object.create(WrapperObject.prototype);WrapperObject.prototype.constructor=WrapperObject;WrapperObject.prototype.__class__=WrapperObject;WrapperObject.__cache__={};Module["WrapperObject"]=WrapperObject;function getCache(__class__){return(__class__||WrapperObject).__cache__}Module["getCache"]=getCache;function wrapPointer(ptr,__class__){var cache=getCache(__class__);var ret=cache[ptr];if(ret)return ret;ret=Object.create((__class__||WrapperObject).prototype);ret.ptr=ptr;return cache[ptr]=ret}Module["wrapPointer"]=wrapPointer;function castObject(obj,__class__){return wrapPointer(obj.ptr,__class__)}Module["castObject"]=castObject;Module["NULL"]=wrapPointer(0);function destroy(obj){if(!obj["__destroy__"])throw"Error: Cannot destroy object. (Did you create it yourself?)";obj["__destroy__"]();delete getCache(obj.__class__)[obj.ptr]}Module["destroy"]=destroy;function compare(obj1,obj2){return obj1.ptr===obj2.ptr}Module["compare"]=compare;function getPointer(obj){return obj.ptr}Module["getPointer"]=getPointer;function getClass(obj){return obj.__class__}Module["getClass"]=getClass;var ensureCache={buffer:0,size:0,pos:0,temps:[],needed:0,prepare:function(){if(ensureCache.needed){for(var i=0;i=ensureCache.size){assert(len>0);ensureCache.needed+=len;ret=Module["_malloc"](len);ensureCache.temps.push(ret)}else{ret=ensureCache.buffer+ensureCache.pos;ensureCache.pos+=len}return ret},copy:function(array,view,offset){offset>>>=0;var bytes=view.BYTES_PER_ELEMENT;switch(bytes){case 2:offset>>>=1;break;case 4:offset>>>=2;break;case 8:offset>>>=3;break}for(var i=0;i=endIdx))++endPtr;if(endPtr-idx>16&&heapOrArray.buffer&&UTF8Decoder){return UTF8Decoder.decode(heapOrArray.subarray(idx,endPtr))}var str="";while(idx>10,56320|ch&1023)}}return str}function UTF8ToString(ptr,maxBytesToRead){return ptr?UTF8ArrayToString(HEAPU8,ptr,maxBytesToRead):""}function stringToUTF8Array(str,heap,outIdx,maxBytesToWrite){if(!(maxBytesToWrite>0))return 0;var startIdx=outIdx;var endIdx=outIdx+maxBytesToWrite-1;for(var i=0;i=55296&&u<=57343){var u1=str.charCodeAt(++i);u=65536+((u&1023)<<10)|u1&1023}if(u<=127){if(outIdx>=endIdx)break;heap[outIdx++]=u}else if(u<=2047){if(outIdx+1>=endIdx)break;heap[outIdx++]=192|u>>6;heap[outIdx++]=128|u&63}else if(u<=65535){if(outIdx+2>=endIdx)break;heap[outIdx++]=224|u>>12;heap[outIdx++]=128|u>>6&63;heap[outIdx++]=128|u&63}else{if(outIdx+3>=endIdx)break;heap[outIdx++]=240|u>>18;heap[outIdx++]=128|u>>12&63;heap[outIdx++]=128|u>>6&63;heap[outIdx++]=128|u&63}}heap[outIdx]=0;return outIdx-startIdx}function lengthBytesUTF8(str){var len=0;for(var i=0;i=55296&&c<=57343){len+=4;++i}else{len+=3}}return len}var buffer,HEAP8,HEAPU8,HEAP16,HEAPU16,HEAP32,HEAPU32,HEAPF32,HEAPF64;function updateGlobalBufferAndViews(buf){buffer=buf;Module["HEAP8"]=HEAP8=new Int8Array(buf);Module["HEAP16"]=HEAP16=new Int16Array(buf);Module["HEAP32"]=HEAP32=new Int32Array(buf);Module["HEAPU8"]=HEAPU8=new Uint8Array(buf);Module["HEAPU16"]=HEAPU16=new Uint16Array(buf);Module["HEAPU32"]=HEAPU32=new Uint32Array(buf);Module["HEAPF32"]=HEAPF32=new Float32Array(buf);Module["HEAPF64"]=HEAPF64=new Float64Array(buf)}var INITIAL_MEMORY=Module["INITIAL_MEMORY"]||16777216;if(Module["wasmMemory"]){wasmMemory=Module["wasmMemory"]}else{wasmMemory=new WebAssembly.Memory({"initial":INITIAL_MEMORY/65536,"maximum":2147483648/65536})}if(wasmMemory){buffer=wasmMemory.buffer}INITIAL_MEMORY=buffer.byteLength;updateGlobalBufferAndViews(buffer);var wasmTable;var __ATPRERUN__=[];var __ATINIT__=[];var __ATPOSTRUN__=[];var runtimeInitialized=false;function keepRuntimeAlive(){return noExitRuntime}function preRun(){if(Module["preRun"]){if(typeof Module["preRun"]=="function")Module["preRun"]=[Module["preRun"]];while(Module["preRun"].length){addOnPreRun(Module["preRun"].shift())}}callRuntimeCallbacks(__ATPRERUN__)}function initRuntime(){runtimeInitialized=true;callRuntimeCallbacks(__ATINIT__)}function postRun(){if(Module["postRun"]){if(typeof Module["postRun"]=="function")Module["postRun"]=[Module["postRun"]];while(Module["postRun"].length){addOnPostRun(Module["postRun"].shift())}}callRuntimeCallbacks(__ATPOSTRUN__)}function addOnPreRun(cb){__ATPRERUN__.unshift(cb)}function addOnInit(cb){__ATINIT__.unshift(cb)}function addOnPostRun(cb){__ATPOSTRUN__.unshift(cb)}var runDependencies=0;var runDependencyWatcher=null;var dependenciesFulfilled=null;function addRunDependency(id){runDependencies++;if(Module["monitorRunDependencies"]){Module["monitorRunDependencies"](runDependencies)}}function removeRunDependency(id){runDependencies--;if(Module["monitorRunDependencies"]){Module["monitorRunDependencies"](runDependencies)}if(runDependencies==0){if(runDependencyWatcher!==null){clearInterval(runDependencyWatcher);runDependencyWatcher=null}if(dependenciesFulfilled){var callback=dependenciesFulfilled;dependenciesFulfilled=null;callback()}}}function abort(what){{if(Module["onAbort"]){Module["onAbort"](what)}}what="Aborted("+what+")";err(what);ABORT=true;EXITSTATUS=1;what+=". Build with -sASSERTIONS for more info.";var e=new WebAssembly.RuntimeError(what);readyPromiseReject(e);throw e}var dataURIPrefix="data:application/octet-stream;base64,";function isDataURI(filename){return filename.startsWith(dataURIPrefix)}function isFileURI(filename){return filename.startsWith("file://")}var wasmBinaryFile;wasmBinaryFile="draco_decoder.wasm";if(!isDataURI(wasmBinaryFile)){wasmBinaryFile=locateFile(wasmBinaryFile)}function getBinary(file){try{if(file==wasmBinaryFile&&wasmBinary){return new Uint8Array(wasmBinary)}var binary=tryParseAsDataURI(file);if(binary){return binary}if(readBinary){return readBinary(file)}throw"both async and sync fetching of the wasm failed"}catch(err){abort(err)}}function getBinaryPromise(){if(!wasmBinary&&(ENVIRONMENT_IS_WEB||ENVIRONMENT_IS_WORKER)){if(typeof fetch=="function"&&!isFileURI(wasmBinaryFile)){return fetch(wasmBinaryFile,{credentials:"same-origin"}).then(function(response){if(!response["ok"]){throw"failed to load wasm binary file at '"+wasmBinaryFile+"'"}return response["arrayBuffer"]()}).catch(function(){return getBinary(wasmBinaryFile)})}else{if(readAsync){return new Promise(function(resolve,reject){readAsync(wasmBinaryFile,function(response){resolve(new Uint8Array(response))},reject)})}}}return Promise.resolve().then(function(){return getBinary(wasmBinaryFile)})}function createWasm(){var info={"a":asmLibraryArg};function receiveInstance(instance,module){var exports=instance.exports;Module["asm"]=exports;wasmTable=Module["asm"]["k"];addOnInit(Module["asm"]["j"]);removeRunDependency("wasm-instantiate")}addRunDependency("wasm-instantiate");function receiveInstantiationResult(result){receiveInstance(result["instance"])}function instantiateArrayBuffer(receiver){return getBinaryPromise().then(function(binary){return WebAssembly.instantiate(binary,info)}).then(function(instance){return instance}).then(receiver,function(reason){err("failed to asynchronously prepare wasm: "+reason);abort(reason)})}function instantiateAsync(){if(!wasmBinary&&typeof WebAssembly.instantiateStreaming=="function"&&!isDataURI(wasmBinaryFile)&&!isFileURI(wasmBinaryFile)&&!ENVIRONMENT_IS_NODE&&typeof fetch=="function"){return fetch(wasmBinaryFile,{credentials:"same-origin"}).then(function(response){var result=WebAssembly.instantiateStreaming(response,info);return result.then(receiveInstantiationResult,function(reason){err("wasm streaming compile failed: "+reason);err("falling back to ArrayBuffer instantiation");return instantiateArrayBuffer(receiveInstantiationResult)})})}else{return instantiateArrayBuffer(receiveInstantiationResult)}}if(Module["instantiateWasm"]){try{var exports=Module["instantiateWasm"](info,receiveInstance);return exports}catch(e){err("Module.instantiateWasm callback failed with error: "+e);readyPromiseReject(e)}}instantiateAsync().catch(readyPromiseReject);return{}}function ExitStatus(status){this.name="ExitStatus";this.message="Program terminated with exit("+status+")";this.status=status}function callRuntimeCallbacks(callbacks){while(callbacks.length>0){callbacks.shift()(Module)}}function intArrayToString(array){var ret=[];for(var i=0;i255){if(ASSERTIONS){assert(false,"Character code "+chr+" ("+String.fromCharCode(chr)+") at offset "+i+" not in 0x00-0xFF.")}chr&=255}ret.push(String.fromCharCode(chr))}return ret.join("")}function ___cxa_allocate_exception(size){return _malloc(size+24)+24}function ExceptionInfo(excPtr){this.excPtr=excPtr;this.ptr=excPtr-24;this.set_type=function(type){HEAPU32[this.ptr+4>>2]=type};this.get_type=function(){return HEAPU32[this.ptr+4>>2]};this.set_destructor=function(destructor){HEAPU32[this.ptr+8>>2]=destructor};this.get_destructor=function(){return HEAPU32[this.ptr+8>>2]};this.set_refcount=function(refcount){HEAP32[this.ptr>>2]=refcount};this.set_caught=function(caught){caught=caught?1:0;HEAP8[this.ptr+12>>0]=caught};this.get_caught=function(){return HEAP8[this.ptr+12>>0]!=0};this.set_rethrown=function(rethrown){rethrown=rethrown?1:0;HEAP8[this.ptr+13>>0]=rethrown};this.get_rethrown=function(){return HEAP8[this.ptr+13>>0]!=0};this.init=function(type,destructor){this.set_adjusted_ptr(0);this.set_type(type);this.set_destructor(destructor);this.set_refcount(0);this.set_caught(false);this.set_rethrown(false)};this.add_ref=function(){var value=HEAP32[this.ptr>>2];HEAP32[this.ptr>>2]=value+1};this.release_ref=function(){var prev=HEAP32[this.ptr>>2];HEAP32[this.ptr>>2]=prev-1;return prev===1};this.set_adjusted_ptr=function(adjustedPtr){HEAPU32[this.ptr+16>>2]=adjustedPtr};this.get_adjusted_ptr=function(){return HEAPU32[this.ptr+16>>2]};this.get_exception_ptr=function(){var isPointer=___cxa_is_pointer_type(this.get_type());if(isPointer){return HEAPU32[this.excPtr>>2]}var adjusted=this.get_adjusted_ptr();if(adjusted!==0)return adjusted;return this.excPtr}}var exceptionLast=0;var uncaughtExceptionCount=0;function ___cxa_throw(ptr,type,destructor){var info=new ExceptionInfo(ptr);info.init(type,destructor);exceptionLast=ptr;uncaughtExceptionCount++;throw ptr}function _abort(){abort("")}function _emscripten_memcpy_big(dest,src,num){HEAPU8.copyWithin(dest,src,src+num)}function getHeapMax(){return 2147483648}function emscripten_realloc_buffer(size){try{wasmMemory.grow(size-buffer.byteLength+65535>>>16);updateGlobalBufferAndViews(wasmMemory.buffer);return 1}catch(e){}}function _emscripten_resize_heap(requestedSize){var oldSize=HEAPU8.length;requestedSize=requestedSize>>>0;var maxHeapSize=getHeapMax();if(requestedSize>maxHeapSize){return false}let alignUp=(x,multiple)=>x+(multiple-x%multiple)%multiple;for(var cutDown=1;cutDown<=4;cutDown*=2){var overGrownHeapSize=oldSize*(1+.2/cutDown);overGrownHeapSize=Math.min(overGrownHeapSize,requestedSize+100663296);var newSize=Math.min(maxHeapSize,alignUp(Math.max(requestedSize,overGrownHeapSize),65536));var replacement=emscripten_realloc_buffer(newSize);if(replacement){return true}}return false}var SYSCALLS={varargs:undefined,get:function(){SYSCALLS.varargs+=4;var ret=HEAP32[SYSCALLS.varargs-4>>2];return ret},getStr:function(ptr){var ret=UTF8ToString(ptr);return ret}};function _fd_close(fd){return 52}function _fd_seek(fd,offset_low,offset_high,whence,newOffset){return 70}var printCharBuffers=[null,[],[]];function printChar(stream,curr){var buffer=printCharBuffers[stream];if(curr===0||curr===10){(stream===1?out:err)(UTF8ArrayToString(buffer,0));buffer.length=0}else{buffer.push(curr)}}function _fd_write(fd,iov,iovcnt,pnum){var num=0;for(var i=0;i>2];var len=HEAPU32[iov+4>>2];iov+=8;for(var j=0;j>2]=num;return 0}function intArrayFromString(stringy,dontAddNull,length){var len=length>0?length:lengthBytesUTF8(stringy)+1;var u8array=new Array(len);var numBytesWritten=stringToUTF8Array(stringy,u8array,0,u8array.length);if(dontAddNull)u8array.length=numBytesWritten;return u8array}var ASSERTIONS=false;var decodeBase64=typeof atob=="function"?atob:function(input){var keyStr="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=";var output="";var chr1,chr2,chr3;var enc1,enc2,enc3,enc4;var i=0;input=input.replace(/[^A-Za-z0-9\+\/\=]/g,"");do{enc1=keyStr.indexOf(input.charAt(i++));enc2=keyStr.indexOf(input.charAt(i++));enc3=keyStr.indexOf(input.charAt(i++));enc4=keyStr.indexOf(input.charAt(i++));chr1=enc1<<2|enc2>>4;chr2=(enc2&15)<<4|enc3>>2;chr3=(enc3&3)<<6|enc4;output=output+String.fromCharCode(chr1);if(enc3!==64){output=output+String.fromCharCode(chr2)}if(enc4!==64){output=output+String.fromCharCode(chr3)}}while(i0){return}preRun();if(runDependencies>0){return}function doRun(){if(calledRun)return;calledRun=true;Module["calledRun"]=true;if(ABORT)return;initRuntime();readyPromiseResolve(Module);if(Module["onRuntimeInitialized"])Module["onRuntimeInitialized"]();postRun()}if(Module["setStatus"]){Module["setStatus"]("Running...");setTimeout(function(){setTimeout(function(){Module["setStatus"]("")},1);doRun()},1)}else{doRun()}}if(Module["preInit"]){if(typeof Module["preInit"]=="function")Module["preInit"]=[Module["preInit"]];while(Module["preInit"].length>0){Module["preInit"].pop()()}}run();function WrapperObject(){}WrapperObject.prototype=Object.create(WrapperObject.prototype);WrapperObject.prototype.constructor=WrapperObject;WrapperObject.prototype.__class__=WrapperObject;WrapperObject.__cache__={};Module["WrapperObject"]=WrapperObject;function getCache(__class__){return(__class__||WrapperObject).__cache__}Module["getCache"]=getCache;function wrapPointer(ptr,__class__){var cache=getCache(__class__);var ret=cache[ptr];if(ret)return ret;ret=Object.create((__class__||WrapperObject).prototype);ret.ptr=ptr;return cache[ptr]=ret}Module["wrapPointer"]=wrapPointer;function castObject(obj,__class__){return wrapPointer(obj.ptr,__class__)}Module["castObject"]=castObject;Module["NULL"]=wrapPointer(0);function destroy(obj){if(!obj["__destroy__"])throw"Error: Cannot destroy object. (Did you create it yourself?)";obj["__destroy__"]();delete getCache(obj.__class__)[obj.ptr]}Module["destroy"]=destroy;function compare(obj1,obj2){return obj1.ptr===obj2.ptr}Module["compare"]=compare;function getPointer(obj){return obj.ptr}Module["getPointer"]=getPointer;function getClass(obj){return obj.__class__}Module["getClass"]=getClass;var ensureCache={buffer:0,size:0,pos:0,temps:[],needed:0,prepare:function(){if(ensureCache.needed){for(var i=0;i=ensureCache.size){assert(len>0);ensureCache.needed+=len;ret=Module["_malloc"](len);ensureCache.temps.push(ret)}else{ret=ensureCache.buffer+ensureCache.pos;ensureCache.pos+=len}return ret},copy:function(array,view,offset){offset>>>=0;var bytes=view.BYTES_PER_ELEMENT;switch(bytes){case 2:offset>>>=1;break;case 4:offset>>>=2;break;case 8:offset>>>=3;break}for(var i=0;i { function(DracoDecoderModule) { DracoDecoderModule = DracoDecoderModule || {}; -var Module=typeof DracoDecoderModule!="undefined"?DracoDecoderModule:{};var readyPromiseResolve,readyPromiseReject;Module["ready"]=new Promise(function(resolve,reject){readyPromiseResolve=resolve;readyPromiseReject=reject});var isRuntimeInitialized=false;var isModuleParsed=false;Module["onRuntimeInitialized"]=function(){isRuntimeInitialized=true;if(isModuleParsed){if(typeof Module["onModuleLoaded"]==="function"){Module["onModuleLoaded"](Module)}}};Module["onModuleParsed"]=function(){isModuleParsed=true;if(isRuntimeInitialized){if(typeof Module["onModuleLoaded"]==="function"){Module["onModuleLoaded"](Module)}}};function isVersionSupported(versionString){if(typeof versionString!=="string")return false;const version=versionString.split(".");if(version.length<2||version.length>3)return false;if(version[0]==1&&version[1]>=0&&version[1]<=5)return true;if(version[0]!=0||version[1]>10)return false;return true}Module["isVersionSupported"]=isVersionSupported;var moduleOverrides=Object.assign({},Module);var arguments_=[];var thisProgram="./this.program";var quit_=(status,toThrow)=>{throw toThrow};var ENVIRONMENT_IS_WEB=typeof window=="object";var ENVIRONMENT_IS_WORKER=typeof importScripts=="function";var ENVIRONMENT_IS_NODE=typeof process=="object"&&typeof process.versions=="object"&&typeof process.versions.node=="string";var scriptDirectory="";function locateFile(path){if(Module["locateFile"]){return Module["locateFile"](path,scriptDirectory)}return scriptDirectory+path}var read_,readAsync,readBinary,setWindowTitle;function logExceptionOnExit(e){if(e instanceof ExitStatus)return;let toLog=e;err("exiting due to exception: "+toLog)}var fs;var nodePath;var requireNodeFS;if(ENVIRONMENT_IS_NODE){if(ENVIRONMENT_IS_WORKER){scriptDirectory=require("path").dirname(scriptDirectory)+"/"}else{scriptDirectory=__dirname+"/"}requireNodeFS=()=>{if(!nodePath){fs=require("fs");nodePath=require("path")}};read_=function shell_read(filename,binary){var ret=tryParseAsDataURI(filename);if(ret){return binary?ret:ret.toString()}requireNodeFS();filename=nodePath["normalize"](filename);return fs.readFileSync(filename,binary?undefined:"utf8")};readBinary=filename=>{var ret=read_(filename,true);if(!ret.buffer){ret=new Uint8Array(ret)}return ret};readAsync=(filename,onload,onerror)=>{var ret=tryParseAsDataURI(filename);if(ret){onload(ret)}requireNodeFS();filename=nodePath["normalize"](filename);fs.readFile(filename,function(err,data){if(err)onerror(err);else onload(data.buffer)})};if(process["argv"].length>1){thisProgram=process["argv"][1].replace(/\\/g,"/")}arguments_=process["argv"].slice(2);quit_=(status,toThrow)=>{if(keepRuntimeAlive()){process["exitCode"]=status;throw toThrow}logExceptionOnExit(toThrow);process["exit"](status)};Module["inspect"]=function(){return"[Emscripten Module object]"}}else if(ENVIRONMENT_IS_WEB||ENVIRONMENT_IS_WORKER){if(ENVIRONMENT_IS_WORKER){scriptDirectory=self.location.href}else if(typeof document!="undefined"&&document.currentScript){scriptDirectory=document.currentScript.src}if(_scriptDir){scriptDirectory=_scriptDir}if(scriptDirectory.indexOf("blob:")!==0){scriptDirectory=scriptDirectory.substr(0,scriptDirectory.replace(/[?#].*/,"").lastIndexOf("/")+1)}else{scriptDirectory=""}{read_=url=>{try{var xhr=new XMLHttpRequest;xhr.open("GET",url,false);xhr.send(null);return xhr.responseText}catch(err){var data=tryParseAsDataURI(url);if(data){return intArrayToString(data)}throw err}};if(ENVIRONMENT_IS_WORKER){readBinary=url=>{try{var xhr=new XMLHttpRequest;xhr.open("GET",url,false);xhr.responseType="arraybuffer";xhr.send(null);return new Uint8Array(xhr.response)}catch(err){var data=tryParseAsDataURI(url);if(data){return data}throw err}}}readAsync=(url,onload,onerror)=>{var xhr=new XMLHttpRequest;xhr.open("GET",url,true);xhr.responseType="arraybuffer";xhr.onload=()=>{if(xhr.status==200||xhr.status==0&&xhr.response){onload(xhr.response);return}var data=tryParseAsDataURI(url);if(data){onload(data.buffer);return}onerror()};xhr.onerror=onerror;xhr.send(null)}}setWindowTitle=title=>document.title=title}else{}var out=Module["print"]||console.log.bind(console);var err=Module["printErr"]||console.warn.bind(console);Object.assign(Module,moduleOverrides);moduleOverrides=null;if(Module["arguments"])arguments_=Module["arguments"];if(Module["thisProgram"])thisProgram=Module["thisProgram"];if(Module["quit"])quit_=Module["quit"];var wasmBinary;if(Module["wasmBinary"])wasmBinary=Module["wasmBinary"];var noExitRuntime=Module["noExitRuntime"]||true;var WebAssembly={Memory:function(opts){this.buffer=new ArrayBuffer(opts["initial"]*65536)},Module:function(binary){},Instance:function(module,info){this.exports=( +var Module=typeof DracoDecoderModule!="undefined"?DracoDecoderModule:{};var readyPromiseResolve,readyPromiseReject;Module["ready"]=new Promise(function(resolve,reject){readyPromiseResolve=resolve;readyPromiseReject=reject});var isRuntimeInitialized=false;var isModuleParsed=false;Module["onRuntimeInitialized"]=function(){isRuntimeInitialized=true;if(isModuleParsed){if(typeof Module["onModuleLoaded"]==="function"){Module["onModuleLoaded"](Module)}}};Module["onModuleParsed"]=function(){isModuleParsed=true;if(isRuntimeInitialized){if(typeof Module["onModuleLoaded"]==="function"){Module["onModuleLoaded"](Module)}}};function isVersionSupported(versionString){if(typeof versionString!=="string")return false;const version=versionString.split(".");if(version.length<2||version.length>3)return false;if(version[0]==1&&version[1]>=0&&version[1]<=5)return true;if(version[0]!=0||version[1]>10)return false;return true}Module["isVersionSupported"]=isVersionSupported;var moduleOverrides=Object.assign({},Module);var arguments_=[];var thisProgram="./this.program";var quit_=(status,toThrow)=>{throw toThrow};var ENVIRONMENT_IS_WEB=typeof window=="object";var ENVIRONMENT_IS_WORKER=typeof importScripts=="function";var ENVIRONMENT_IS_NODE=typeof process=="object"&&typeof process.versions=="object"&&typeof process.versions.node=="string";var scriptDirectory="";function locateFile(path){if(Module["locateFile"]){return Module["locateFile"](path,scriptDirectory)}return scriptDirectory+path}var read_,readAsync,readBinary,setWindowTitle;function logExceptionOnExit(e){if(e instanceof ExitStatus)return;let toLog=e;err("exiting due to exception: "+toLog)}if(ENVIRONMENT_IS_NODE){if(ENVIRONMENT_IS_WORKER){scriptDirectory=require("path").dirname(scriptDirectory)+"/"}else{scriptDirectory=__dirname+"/"}var fs,nodePath;if(typeof require==="function"){fs=require("fs");nodePath=require("path")}read_=(filename,binary)=>{var ret=tryParseAsDataURI(filename);if(ret){return binary?ret:ret.toString()}filename=nodePath["normalize"](filename);return fs.readFileSync(filename,binary?undefined:"utf8")};readBinary=filename=>{var ret=read_(filename,true);if(!ret.buffer){ret=new Uint8Array(ret)}return ret};readAsync=(filename,onload,onerror)=>{var ret=tryParseAsDataURI(filename);if(ret){onload(ret)}filename=nodePath["normalize"](filename);fs.readFile(filename,function(err,data){if(err)onerror(err);else onload(data.buffer)})};if(process["argv"].length>1){thisProgram=process["argv"][1].replace(/\\/g,"/")}arguments_=process["argv"].slice(2);quit_=(status,toThrow)=>{if(keepRuntimeAlive()){process["exitCode"]=status;throw toThrow}logExceptionOnExit(toThrow);process["exit"](status)};Module["inspect"]=function(){return"[Emscripten Module object]"}}else if(ENVIRONMENT_IS_WEB||ENVIRONMENT_IS_WORKER){if(ENVIRONMENT_IS_WORKER){scriptDirectory=self.location.href}else if(typeof document!="undefined"&&document.currentScript){scriptDirectory=document.currentScript.src}if(_scriptDir){scriptDirectory=_scriptDir}if(scriptDirectory.indexOf("blob:")!==0){scriptDirectory=scriptDirectory.substr(0,scriptDirectory.replace(/[?#].*/,"").lastIndexOf("/")+1)}else{scriptDirectory=""}{read_=url=>{try{var xhr=new XMLHttpRequest;xhr.open("GET",url,false);xhr.send(null);return xhr.responseText}catch(err){var data=tryParseAsDataURI(url);if(data){return intArrayToString(data)}throw err}};if(ENVIRONMENT_IS_WORKER){readBinary=url=>{try{var xhr=new XMLHttpRequest;xhr.open("GET",url,false);xhr.responseType="arraybuffer";xhr.send(null);return new Uint8Array(xhr.response)}catch(err){var data=tryParseAsDataURI(url);if(data){return data}throw err}}}readAsync=(url,onload,onerror)=>{var xhr=new XMLHttpRequest;xhr.open("GET",url,true);xhr.responseType="arraybuffer";xhr.onload=()=>{if(xhr.status==200||xhr.status==0&&xhr.response){onload(xhr.response);return}var data=tryParseAsDataURI(url);if(data){onload(data.buffer);return}onerror()};xhr.onerror=onerror;xhr.send(null)}}setWindowTitle=title=>document.title=title}else{}var out=Module["print"]||console.log.bind(console);var err=Module["printErr"]||console.warn.bind(console);Object.assign(Module,moduleOverrides);moduleOverrides=null;if(Module["arguments"])arguments_=Module["arguments"];if(Module["thisProgram"])thisProgram=Module["thisProgram"];if(Module["quit"])quit_=Module["quit"];var wasmBinary;if(Module["wasmBinary"])wasmBinary=Module["wasmBinary"];var noExitRuntime=Module["noExitRuntime"]||true;var WebAssembly={Memory:function(opts){this.buffer=new ArrayBuffer(opts["initial"]*65536)},Module:function(binary){},Instance:function(module,info){this.exports=( // EMSCRIPTEN_START_ASM -function instantiate(la){function c(d){d.set=function(a,b){this[a]=b};d.get=function(a){return this[a]};return d}var e;var f=new Uint8Array(123);for(var a=25;a>=0;--a){f[48+a]=52+a;f[65+a]=a;f[97+a]=26+a}f[43]=62;f[47]=63;function l(m,n,o){var g,h,a=0,i=n,j=o.length,k=n+(j*3>>2)-(o[j-2]=="=")-(o[j-1]=="=");for(;a>4;if(i>2;if(i=0;--a){f[48+a]=52+a;f[65+a]=a;f[97+a]=26+a}f[43]=62;f[47]=63;function l(m,n,o){var g,h,a=0,i=n,j=o.length,k=n+(j*3>>2)-(o[j-2]=="=")-(o[j-1]=="=");for(;a>4;if(i>2;if(i>2];h=D[c+12>>2];f=D[c+16>>2];a:{if((e|0)>=(h|0)&f>>>0>=G[c+8>>2]|(e|0)>(h|0)){break a}h=E[f+D[c>>2]|0];f=f+1|0;e=f?e:e+1|0;D[c+16>>2]=f;D[c+20>>2]=e;b:{switch(h|0){case 0:m=a;e=b;h=d;a=0;d=0;j=$+-64|0;$=j;D[j+56>>2]=0;D[j+48>>2]=0;D[j+52>>2]=0;D[j+40>>2]=0;D[j+44>>2]=0;D[j+32>>2]=0;D[j+36>>2]=0;D[j+24>>2]=0;D[j+28>>2]=0;D[j+16>>2]=0;D[j+20>>2]=0;D[j+8>>2]=0;D[j+12>>2]=0;c:{if(!Kd(j+8|0,c)){break c}if(!Jd(j+8|0,c)|(D[j+20>>2]?0:m)){break c}ec(c,0,0);if(m){n=e<<2;r=D[j+36>>2];s=D[j+48>>2];t=D[j+24>>2];while(1){l=D[j+56>>2];d:{if(l>>>0>16383){break d}a=D[j+52>>2];while(1){if((a|0)<=0){break d}a=a-1|0;D[j+52>>2]=a;l=E[a+s|0]|l<<8;D[j+56>>2]=l;if(l>>>0<16384){continue}break}}a=l&4095;i=D[(a<<2)+t>>2];b=(i<<3)+r|0;D[j+56>>2]=(J(D[b>>2],l>>>12|0)+a|0)-D[b+4>>2];e:{if((e|0)<=0){break e}a=0;if(!E[c+36|0]|i>>>0>32){break c}if(!i){qa(h+(d<<2)|0,0,n);d=d+e|0;break e}u=i&-2;x=i&1;q=d+e|0;b=D[c+32>>2];g=D[c+28>>2];k=D[c+24>>2];while(1){l=0;a=b;f=0;p=0;if((i|0)!=1){while(1){o=k+(a>>>3|0)|0;f:{if(o>>>0>=g>>>0){o=0;break f}o=E[o|0];b=a+1|0;D[c+32>>2]=b;o=o>>>(a&7)&1;a=b}o=o<>>3|0)|0;if(v>>>0>>0){f=E[v|0];b=a+1|0;D[c+32>>2]=b;f=f>>>(a&7)&1;a=b}v=l|1;l=l+2|0;f=o|f<>>3|0)|0;if(o>>>0>>0){o=E[o|0];b=a+1|0;D[c+32>>2]=b;a=o>>>(a&7)&1}else{a=0}f=a<>2]=f;d=d+1|0;if((q|0)!=(d|0)){continue}break}d=q}w=e+w|0;if(m>>>0>w>>>0){continue}break}}B[c+36|0]=0;l=D[c+20>>2];a=0;b=D[c+32>>2]+7|0;a=b>>>0<7?1:a;e=a<<29|b>>>3;b=e+D[c+16>>2]|0;a=(a>>>3|0)+l|0;D[c+16>>2]=b;D[c+20>>2]=b>>>0>>0?a+1|0:a;a=1}b=D[j+36>>2];if(b){D[j+40>>2]=b;ma(b)}b=D[j+24>>2];if(b){D[j+28>>2]=b;ma(b)}b=D[j+8>>2];if(b){D[j+12>>2]=b;ma(b)}$=j- -64|0;return a;case 1:break b;default:break a}}b=0;e=D[c+20>>2];h=D[c+12>>2];f=D[c+16>>2];g:{if((e|0)>=(h|0)&f>>>0>=G[c+8>>2]|(e|0)>(h|0)){break g}h=E[f+D[c>>2]|0];f=f+1|0;e=f?e:e+1|0;D[c+16>>2]=f;D[c+20>>2]=e;h:{switch(h-1|0){case 8:h=a;q=d;e=$+-64|0;$=e;D[e+56>>2]=0;D[e+48>>2]=0;D[e+52>>2]=0;D[e+40>>2]=0;D[e+44>>2]=0;D[e+32>>2]=0;D[e+36>>2]=0;D[e+24>>2]=0;D[e+28>>2]=0;D[e+16>>2]=0;D[e+20>>2]=0;D[e+8>>2]=0;D[e+12>>2]=0;j=e+8|0;i:{j:{if(!F[c+38>>1]){break j}if(!Wa(1,j+12|0,c)){break j}a=D[c+8>>2];b=D[c+16>>2];d=a-b|0;i=D[j+12>>2];a=D[c+12>>2]-(D[c+20>>2]+(a>>>0>>0)|0)|0;if(d>>>0>>6>>>0&(a|0)<=0|(a|0)<0){break j}b=D[j>>2];a=D[j+4>>2]-b>>2;k:{if(a>>>0>>0){ra(j,i-a|0);i=D[j+12>>2];break k}if(a>>>0<=i>>>0){break k}D[j+4>>2]=b+(i<<2)}f=1;if(!i){break i}g=D[c+16>>2];d=D[c+20>>2];n=D[j>>2];r=D[c+8>>2];k=D[c+12>>2];b=0;while(1){f=0;if((d|0)>=(k|0)&g>>>0>=r>>>0|(d|0)>(k|0)){break i}s=D[c>>2];o=E[s+g|0];a=d;d=g+1|0;a=d?a:a+1|0;g=d;D[c+16>>2]=d;d=a;D[c+20>>2]=a;a=o>>>2|0;f=0;l:{m:{n:{o:{t=o&3;switch(t|0){case 0:break m;case 3:break o;default:break n}}a=a+b|0;f=0;if(a>>>0>=i>>>0){break i}qa(n+(b<<2)|0,0,(o&252)+4|0);b=a;break l}while(1){if((d|0)>=(k|0)&g>>>0>=r>>>0|(d|0)>(k|0)){break j}i=E[g+s|0];g=g+1|0;d=g?d:d+1|0;D[c+16>>2]=g;D[c+20>>2]=d;a=i<<(f<<3|6)|a;f=f+1|0;if((t|0)!=(f|0)){continue}break}}D[n+(b<<2)>>2]=a}b=b+1|0;i=D[j+12>>2];if(b>>>0>>0){continue}break}a=j+16|0;o=D[j>>2];d=D[j+16>>2];b=D[j+20>>2]-d|0;p:{if(b>>>0<=32767){ra(a,8192-(b>>>2|0)|0);break p}if((b|0)==32768){break p}D[j+20>>2]=d+32768}d=j+28|0;b=D[d>>2];f=D[j+32>>2]-b>>3;q:{if(f>>>0>>0){db(d,i-f|0);b=D[d>>2];break q}if(f>>>0>i>>>0){D[j+32>>2]=(i<<3)+b}if(!i){break j}}j=D[a>>2];g=0;d=0;while(1){f=o+(g<<2)|0;k=D[f>>2];n=(g<<3)+b|0;a=d;D[n+4>>2]=a;D[n>>2]=k;k=D[f>>2];d=k+a|0;if(d>>>0>8192){break j}r:{if(a>>>0>=d>>>0){break r}f=0;n=k&7;if(n){while(1){D[j+(a<<2)>>2]=g;a=a+1|0;f=f+1|0;if((n|0)!=(f|0)){continue}break}}if(k-1>>>0<=6){break r}while(1){f=j+(a<<2)|0;D[f>>2]=g;D[f+28>>2]=g;D[f+24>>2]=g;D[f+20>>2]=g;D[f+16>>2]=g;D[f+12>>2]=g;D[f+8>>2]=g;D[f+4>>2]=g;a=a+8|0;if((d|0)!=(a|0)){continue}break}}g=g+1|0;if((i|0)!=(g|0)){continue}break}m=(d|0)==8192}f=m}s:{if(!f|(D[e+20>>2]?0:h)){break s}d=0;f=$-16|0;$=f;t:{if(!Va(1,f+8|0,c)){break t}a=D[c+8>>2];b=D[c+16>>2];j=a-b|0;i=D[f+12>>2];g=D[c+20>>2];a=D[c+12>>2]-(g+(a>>>0>>0)|0)|0;m=D[f+8>>2];if((i|0)==(a|0)&j>>>0>>0|a>>>0>>0){break t}a=g+i|0;j=b+m|0;a=j>>>0>>0?a+1|0:a;D[c+16>>2]=j;D[c+20>>2]=a;a=m;if((a|0)<=0){break t}b=b+D[c>>2]|0;D[e+48>>2]=b;c=a-1|0;m=c+b|0;j=E[m|0];u:{if(j>>>0<=63){D[e+52>>2]=c;a=E[m|0]&63;break u}v:{switch((j>>>6|0)-1|0){case 0:if(a>>>0<2){break t}D[e+52>>2]=a-2;a=(a+b|0)-2|0;a=E[a+1|0]<<8&16128|E[a|0];break u;case 1:if(a>>>0<3){break t}D[e+52>>2]=a-3;a=(a+b|0)-3|0;a=E[a+1|0]<<8|E[a+2|0]<<16&4128768|E[a|0];break u;default:break v}}D[e+52>>2]=a-4;a=(a+b|0)-4|0;a=E[a+2|0]<<16|E[a+3|0]<<24&1056964608|E[a+1|0]<<8|E[a|0]}D[e+56>>2]=a+32768;d=a>>>0<8355840}$=f+16|0;if(!d){break s}if(!h){l=1;break s}a=D[e+56>>2];b=D[e+36>>2];c=D[e+48>>2];d=D[e+24>>2];while(1){w:{if(a>>>0>32767){break w}l=D[e+52>>2];while(1){if((l|0)<=0){break w}l=l-1|0;D[e+52>>2]=l;a=E[c+l|0]|a<<8;D[e+56>>2]=a;if(a>>>0<32768){continue}break}}l=a&8191;m=D[d+(l<<2)>>2];f=b+(m<<3)|0;a=(J(D[f>>2],a>>>13|0)+l|0)-D[f+4>>2]|0;D[e+56>>2]=a;D[q+(p<<2)>>2]=m;l=1;p=p+1|0;if((h|0)!=(p|0)){continue}break}}a=D[e+36>>2];if(a){D[e+40>>2]=a;ma(a)}a=D[e+24>>2];if(a){D[e+28>>2]=a;ma(a)}a=D[e+8>>2];if(a){D[e+12>>2]=a;ma(a)}$=e- -64|0;b=l;break g;case 9:q=a;j=d;h=$+-64|0;$=h;D[h+56>>2]=0;D[h+48>>2]=0;D[h+52>>2]=0;D[h+40>>2]=0;D[h+44>>2]=0;D[h+32>>2]=0;D[h+36>>2]=0;D[h+24>>2]=0;D[h+28>>2]=0;D[h+16>>2]=0;D[h+20>>2]=0;D[h+8>>2]=0;D[h+12>>2]=0;k=h+8|0;x:{y:{if(!F[c+38>>1]){break y}if(!Wa(1,k+12|0,c)){break y}a=D[c+8>>2];b=D[c+16>>2];d=a-b|0;i=D[k+12>>2];a=D[c+12>>2]-(D[c+20>>2]+(a>>>0>>0)|0)|0;if(d>>>0>>6>>>0&(a|0)<=0|(a|0)<0){break y}b=D[k>>2];a=D[k+4>>2]-b>>2;z:{if(a>>>0>>0){ra(k,i-a|0);i=D[k+12>>2];break z}if(a>>>0<=i>>>0){break z}D[k+4>>2]=b+(i<<2)}e=1;if(!i){break x}g=D[c+16>>2];d=D[c+20>>2];r=D[k>>2];s=D[c+8>>2];o=D[c+12>>2];b=0;while(1){e=0;if((d|0)>=(o|0)&g>>>0>=s>>>0|(d|0)>(o|0)){break x}t=D[c>>2];n=E[t+g|0];e=d;a=g+1|0;e=a?e:e+1|0;g=a;D[c+16>>2]=a;d=e;D[c+20>>2]=e;a=n>>>2|0;f=0;A:{B:{C:{D:{e=n&3;switch(e|0){case 0:break B;case 3:break D;default:break C}}a=a+b|0;e=0;if(a>>>0>=i>>>0){break x}qa(r+(b<<2)|0,0,(n&252)+4|0);b=a;break A}while(1){if((d|0)>=(o|0)&g>>>0>=s>>>0|(d|0)>(o|0)){break y}i=E[g+t|0];g=g+1|0;d=g?d:d+1|0;D[c+16>>2]=g;D[c+20>>2]=d;a=i<<(f<<3|6)|a;f=f+1|0;if((e|0)!=(f|0)){continue}break}}D[r+(b<<2)>>2]=a}b=b+1|0;i=D[k+12>>2];if(b>>>0>>0){continue}break}a=k+16|0;o=D[k>>2];d=D[k+16>>2];b=D[k+20>>2]-d|0;E:{if(b>>>0<=131071){ra(a,32768-(b>>>2|0)|0);break E}if((b|0)==131072){break E}D[k+20>>2]=d+131072}d=k+28|0;b=D[d>>2];e=D[k+32>>2]-b>>3;F:{if(e>>>0>>0){db(d,i-e|0);b=D[d>>2];break F}if(e>>>0>i>>>0){D[k+32>>2]=(i<<3)+b}if(!i){break y}}k=D[a>>2];g=0;d=0;while(1){e=o+(g<<2)|0;f=D[e>>2];n=(g<<3)+b|0;a=d;D[n+4>>2]=a;D[n>>2]=f;e=D[e>>2];d=e+a|0;if(d>>>0>32768){break y}G:{if(a>>>0>=d>>>0){break G}f=0;n=e&7;if(n){while(1){D[k+(a<<2)>>2]=g;a=a+1|0;f=f+1|0;if((n|0)!=(f|0)){continue}break}}if(e-1>>>0<=6){break G}while(1){e=k+(a<<2)|0;D[e>>2]=g;D[e+28>>2]=g;D[e+24>>2]=g;D[e+20>>2]=g;D[e+16>>2]=g;D[e+12>>2]=g;D[e+8>>2]=g;D[e+4>>2]=g;a=a+8|0;if((d|0)!=(a|0)){continue}break}}g=g+1|0;if((i|0)!=(g|0)){continue}break}m=(d|0)==32768}e=m}H:{if(!e|(D[h+20>>2]?0:q)){break H}d=0;m=$-16|0;$=m;I:{if(!Va(1,m+8|0,c)){break I}a=D[c+8>>2];b=D[c+16>>2];e=a-b|0;i=D[m+12>>2];f=i;g=D[c+20>>2];k=D[c+12>>2]-(g+(a>>>0>>0)|0)|0;a=D[m+8>>2];if((f|0)==(k|0)&e>>>0>>0|f>>>0>k>>>0){break I}e=g+i|0;f=a+b|0;e=f>>>0>>0?e+1|0:e;D[c+16>>2]=f;D[c+20>>2]=e;if((a|0)<=0){break I}b=b+D[c>>2]|0;D[h+48>>2]=b;c=a-1|0;e=c+b|0;f=E[e|0];J:{if(f>>>0<=63){D[h+52>>2]=c;a=E[e|0]&63;break J}K:{switch((f>>>6|0)-1|0){case 0:if(a>>>0<2){break I}D[h+52>>2]=a-2;a=(a+b|0)-2|0;a=E[a+1|0]<<8&16128|E[a|0];break J;case 1:if(a>>>0<3){break I}D[h+52>>2]=a-3;a=(a+b|0)-3|0;a=E[a+1|0]<<8|E[a+2|0]<<16&4128768|E[a|0];break J;default:break K}}D[h+52>>2]=a-4;a=(a+b|0)-4|0;a=E[a+2|0]<<16|E[a+3|0]<<24&1056964608|E[a+1|0]<<8|E[a|0]}D[h+56>>2]=a+131072;d=a>>>0<33423360}$=m+16|0;if(!d){break H}if(!q){l=1;break H}a=D[h+56>>2];b=D[h+36>>2];c=D[h+48>>2];d=D[h+24>>2];while(1){L:{if(a>>>0>131071){break L}l=D[h+52>>2];while(1){if((l|0)<=0){break L}l=l-1|0;D[h+52>>2]=l;a=E[c+l|0]|a<<8;D[h+56>>2]=a;if(a>>>0<131072){continue}break}}l=a&32767;e=D[d+(l<<2)>>2];m=b+(e<<3)|0;a=(J(D[m>>2],a>>>15|0)+l|0)-D[m+4>>2]|0;D[h+56>>2]=a;D[j+(p<<2)>>2]=e;l=1;p=p+1|0;if((q|0)!=(p|0)){continue}break}}a=D[h+36>>2];if(a){D[h+40>>2]=a;ma(a)}a=D[h+24>>2];if(a){D[h+28>>2]=a;ma(a)}a=D[h+8>>2];if(a){D[h+12>>2]=a;ma(a)}$=h- -64|0;b=l;break g;case 10:q=a;j=d;h=$+-64|0;$=h;D[h+56>>2]=0;D[h+48>>2]=0;D[h+52>>2]=0;D[h+40>>2]=0;D[h+44>>2]=0;D[h+32>>2]=0;D[h+36>>2]=0;D[h+24>>2]=0;D[h+28>>2]=0;D[h+16>>2]=0;D[h+20>>2]=0;D[h+8>>2]=0;D[h+12>>2]=0;k=h+8|0;M:{N:{if(!F[c+38>>1]){break N}if(!Wa(1,k+12|0,c)){break N}a=D[c+8>>2];b=D[c+16>>2];d=a-b|0;i=D[k+12>>2];a=D[c+12>>2]-(D[c+20>>2]+(a>>>0>>0)|0)|0;if(d>>>0>>6>>>0&(a|0)<=0|(a|0)<0){break N}b=D[k>>2];a=D[k+4>>2]-b>>2;O:{if(a>>>0>>0){ra(k,i-a|0);i=D[k+12>>2];break O}if(a>>>0<=i>>>0){break O}D[k+4>>2]=b+(i<<2)}e=1;if(!i){break M}g=D[c+16>>2];d=D[c+20>>2];r=D[k>>2];s=D[c+8>>2];o=D[c+12>>2];b=0;while(1){e=0;if((d|0)>=(o|0)&g>>>0>=s>>>0|(d|0)>(o|0)){break M}t=D[c>>2];n=E[t+g|0];a=d;d=g+1|0;a=d?a:a+1|0;g=d;D[c+16>>2]=d;d=a;D[c+20>>2]=a;a=n>>>2|0;f=0;P:{Q:{R:{S:{u=n&3;switch(u|0){case 0:break Q;case 3:break S;default:break R}}a=a+b|0;e=0;if(a>>>0>=i>>>0){break M}qa(r+(b<<2)|0,0,(n&252)+4|0);b=a;break P}while(1){if((d|0)>=(o|0)&g>>>0>=s>>>0|(d|0)>(o|0)){break N}i=E[g+t|0];e=d;d=g+1|0;e=d?e:e+1|0;g=d;D[c+16>>2]=d;d=e;D[c+20>>2]=e;a=i<<(f<<3|6)|a;f=f+1|0;if((u|0)!=(f|0)){continue}break}}D[r+(b<<2)>>2]=a}b=b+1|0;i=D[k+12>>2];if(b>>>0>>0){continue}break}a=k+16|0;o=D[k>>2];d=D[k+16>>2];b=D[k+20>>2]-d|0;T:{if(b>>>0<=262143){ra(a,65536-(b>>>2|0)|0);break T}if((b|0)==262144){break T}D[k+20>>2]=d+262144}d=k+28|0;b=D[d>>2];e=D[k+32>>2]-b>>3;U:{if(e>>>0>>0){db(d,i-e|0);b=D[d>>2];break U}if(e>>>0>i>>>0){D[k+32>>2]=(i<<3)+b}if(!i){break N}}k=D[a>>2];g=0;d=0;while(1){e=o+(g<<2)|0;f=D[e>>2];n=(g<<3)+b|0;a=d;D[n+4>>2]=a;D[n>>2]=f;e=D[e>>2];d=e+a|0;if(d>>>0>65536){break N}V:{if(a>>>0>=d>>>0){break V}f=0;n=e&7;if(n){while(1){D[k+(a<<2)>>2]=g;a=a+1|0;f=f+1|0;if((n|0)!=(f|0)){continue}break}}if(e-1>>>0<=6){break V}while(1){e=k+(a<<2)|0;D[e>>2]=g;D[e+28>>2]=g;D[e+24>>2]=g;D[e+20>>2]=g;D[e+16>>2]=g;D[e+12>>2]=g;D[e+8>>2]=g;D[e+4>>2]=g;a=a+8|0;if((d|0)!=(a|0)){continue}break}}g=g+1|0;if((i|0)!=(g|0)){continue}break}m=(d|0)==65536}e=m}W:{if(!e|(D[h+20>>2]?0:q)){break W}d=0;m=$-16|0;$=m;X:{if(!Va(1,m+8|0,c)){break X}a=D[c+8>>2];b=D[c+16>>2];f=a-b|0;i=D[m+12>>2];g=D[c+20>>2];a=D[c+12>>2]-(g+(a>>>0>>0)|0)|0;e=D[m+8>>2];if((i|0)==(a|0)&f>>>0>>0|a>>>0>>0){break X}a=g+i|0;f=b+e|0;a=f>>>0>>0?a+1|0:a;D[c+16>>2]=f;D[c+20>>2]=a;a=e;if((a|0)<=0){break X}b=b+D[c>>2]|0;D[h+48>>2]=b;c=a-1|0;e=c+b|0;f=E[e|0];Y:{if(f>>>0<=63){D[h+52>>2]=c;a=E[e|0]&63;break Y}Z:{switch((f>>>6|0)-1|0){case 0:if(a>>>0<2){break X}D[h+52>>2]=a-2;a=(a+b|0)-2|0;a=E[a+1|0]<<8&16128|E[a|0];break Y;case 1:if(a>>>0<3){break X}D[h+52>>2]=a-3;a=(a+b|0)-3|0;a=E[a+1|0]<<8|E[a+2|0]<<16&4128768|E[a|0];break Y;default:break Z}}D[h+52>>2]=a-4;a=(a+b|0)-4|0;a=E[a+2|0]<<16|E[a+3|0]<<24&1056964608|E[a+1|0]<<8|E[a|0]}D[h+56>>2]=a+262144;d=a>>>0<66846720}$=m+16|0;if(!d){break W}if(!q){l=1;break W}a=D[h+56>>2];b=D[h+36>>2];c=D[h+48>>2];d=D[h+24>>2];while(1){_:{if(a>>>0>262143){break _}l=D[h+52>>2];while(1){if((l|0)<=0){break _}l=l-1|0;D[h+52>>2]=l;a=E[c+l|0]|a<<8;D[h+56>>2]=a;if(a>>>0<262144){continue}break}}l=a&65535;e=D[d+(l<<2)>>2];m=b+(e<<3)|0;a=(J(D[m>>2],a>>>16|0)+l|0)-D[m+4>>2]|0;D[h+56>>2]=a;D[j+(p<<2)>>2]=e;l=1;p=p+1|0;if((q|0)!=(p|0)){continue}break}}a=D[h+36>>2];if(a){D[h+40>>2]=a;ma(a)}a=D[h+24>>2];if(a){D[h+28>>2]=a;ma(a)}a=D[h+8>>2];if(a){D[h+12>>2]=a;ma(a)}$=h- -64|0;b=l;break g;case 11:q=a;j=d;h=$+-64|0;$=h;D[h+56>>2]=0;D[h+48>>2]=0;D[h+52>>2]=0;D[h+40>>2]=0;D[h+44>>2]=0;D[h+32>>2]=0;D[h+36>>2]=0;D[h+24>>2]=0;D[h+28>>2]=0;D[h+16>>2]=0;D[h+20>>2]=0;D[h+8>>2]=0;D[h+12>>2]=0;k=h+8|0;$:{aa:{if(!F[c+38>>1]){break aa}if(!Wa(1,k+12|0,c)){break aa}a=D[c+8>>2];b=D[c+16>>2];d=a-b|0;i=D[k+12>>2];a=D[c+12>>2]-(D[c+20>>2]+(a>>>0>>0)|0)|0;if(d>>>0>>6>>>0&(a|0)<=0|(a|0)<0){break aa}b=D[k>>2];a=D[k+4>>2]-b>>2;ba:{if(a>>>0>>0){ra(k,i-a|0);i=D[k+12>>2];break ba}if(a>>>0<=i>>>0){break ba}D[k+4>>2]=b+(i<<2)}e=1;if(!i){break $}g=D[c+16>>2];d=D[c+20>>2];r=D[k>>2];s=D[c+8>>2];o=D[c+12>>2];b=0;while(1){e=0;if((d|0)>=(o|0)&g>>>0>=s>>>0|(d|0)>(o|0)){break $}t=D[c>>2];n=E[t+g|0];e=d;a=g+1|0;e=a?e:e+1|0;g=a;D[c+16>>2]=a;d=e;D[c+20>>2]=e;a=n>>>2|0;f=0;ca:{da:{ea:{fa:{e=n&3;switch(e|0){case 0:break da;case 3:break fa;default:break ea}}a=a+b|0;e=0;if(a>>>0>=i>>>0){break $}qa(r+(b<<2)|0,0,(n&252)+4|0);b=a;break ca}while(1){if((d|0)>=(o|0)&g>>>0>=s>>>0|(d|0)>(o|0)){break aa}i=E[g+t|0];g=g+1|0;d=g?d:d+1|0;D[c+16>>2]=g;D[c+20>>2]=d;a=i<<(f<<3|6)|a;f=f+1|0;if((e|0)!=(f|0)){continue}break}}D[r+(b<<2)>>2]=a}b=b+1|0;i=D[k+12>>2];if(b>>>0>>0){continue}break}a=k+16|0;o=D[k>>2];d=D[k+16>>2];b=D[k+20>>2]-d|0;ga:{if(b>>>0<=1048575){ra(a,262144-(b>>>2|0)|0);break ga}if((b|0)==1048576){break ga}D[k+20>>2]=d- -1048576}d=k+28|0;b=D[d>>2];e=D[k+32>>2]-b>>3;ha:{if(e>>>0>>0){db(d,i-e|0);b=D[d>>2];break ha}if(e>>>0>i>>>0){D[k+32>>2]=(i<<3)+b}if(!i){break aa}}k=D[a>>2];g=0;d=0;while(1){e=o+(g<<2)|0;f=D[e>>2];n=(g<<3)+b|0;a=d;D[n+4>>2]=a;D[n>>2]=f;e=D[e>>2];d=e+a|0;if(d>>>0>262144){break aa}ia:{if(a>>>0>=d>>>0){break ia}f=0;n=e&7;if(n){while(1){D[k+(a<<2)>>2]=g;a=a+1|0;f=f+1|0;if((n|0)!=(f|0)){continue}break}}if(e-1>>>0<=6){break ia}while(1){e=k+(a<<2)|0;D[e>>2]=g;D[e+28>>2]=g;D[e+24>>2]=g;D[e+20>>2]=g;D[e+16>>2]=g;D[e+12>>2]=g;D[e+8>>2]=g;D[e+4>>2]=g;a=a+8|0;if((d|0)!=(a|0)){continue}break}}g=g+1|0;if((i|0)!=(g|0)){continue}break}m=(d|0)==262144}e=m}ja:{if(!e|(D[h+20>>2]?0:q)){break ja}d=0;m=$-16|0;$=m;ka:{if(!Va(1,m+8|0,c)){break ka}a=D[c+8>>2];b=D[c+16>>2];e=a-b|0;i=D[m+12>>2];f=i;g=D[c+20>>2];k=D[c+12>>2]-(g+(a>>>0>>0)|0)|0;a=D[m+8>>2];if((f|0)==(k|0)&e>>>0>>0|f>>>0>k>>>0){break ka}e=g+i|0;f=a+b|0;e=f>>>0>>0?e+1|0:e;D[c+16>>2]=f;D[c+20>>2]=e;if((a|0)<=0){break ka}b=b+D[c>>2]|0;D[h+48>>2]=b;c=a-1|0;e=c+b|0;f=E[e|0];la:{if(f>>>0<=63){D[h+52>>2]=c;a=E[e|0]&63;break la}ma:{switch((f>>>6|0)-1|0){case 0:if(a>>>0<2){break ka}D[h+52>>2]=a-2;a=(a+b|0)-2|0;a=E[a+1|0]<<8&16128|E[a|0];break la;case 1:if(a>>>0<3){break ka}D[h+52>>2]=a-3;a=(a+b|0)-3|0;a=E[a+1|0]<<8|E[a+2|0]<<16&4128768|E[a|0];break la;default:break ma}}D[h+52>>2]=a-4;a=(a+b|0)-4|0;a=E[a+2|0]<<16|E[a+3|0]<<24&1056964608|E[a+1|0]<<8|E[a|0]}D[h+56>>2]=a- -1048576;d=a>>>0<267386880}$=m+16|0;if(!d){break ja}if(!q){l=1;break ja}a=D[h+56>>2];b=D[h+36>>2];c=D[h+48>>2];d=D[h+24>>2];while(1){na:{if(a>>>0>1048575){break na}l=D[h+52>>2];while(1){if((l|0)<=0){break na}l=l-1|0;D[h+52>>2]=l;a=E[c+l|0]|a<<8;D[h+56>>2]=a;if(a>>>0<1048576){continue}break}}l=a&262143;e=D[d+(l<<2)>>2];m=b+(e<<3)|0;a=(J(D[m>>2],a>>>18|0)+l|0)-D[m+4>>2]|0;D[h+56>>2]=a;D[j+(p<<2)>>2]=e;l=1;p=p+1|0;if((q|0)!=(p|0)){continue}break}}a=D[h+36>>2];if(a){D[h+40>>2]=a;ma(a)}a=D[h+24>>2];if(a){D[h+28>>2]=a;ma(a)}a=D[h+8>>2];if(a){D[h+12>>2]=a;ma(a)}$=h- -64|0;b=l;break g;case 12:h=a;q=d;e=$+-64|0;$=e;D[e+56>>2]=0;D[e+48>>2]=0;D[e+52>>2]=0;D[e+40>>2]=0;D[e+44>>2]=0;D[e+32>>2]=0;D[e+36>>2]=0;D[e+24>>2]=0;D[e+28>>2]=0;D[e+16>>2]=0;D[e+20>>2]=0;D[e+8>>2]=0;D[e+12>>2]=0;j=e+8|0;oa:{pa:{if(!F[c+38>>1]){break pa}if(!Wa(1,j+12|0,c)){break pa}a=D[c+8>>2];b=D[c+16>>2];d=a-b|0;i=D[j+12>>2];a=D[c+12>>2]-(D[c+20>>2]+(a>>>0>>0)|0)|0;if(d>>>0>>6>>>0&(a|0)<=0|(a|0)<0){break pa}b=D[j>>2];a=D[j+4>>2]-b>>2;qa:{if(a>>>0>>0){ra(j,i-a|0);i=D[j+12>>2];break qa}if(a>>>0<=i>>>0){break qa}D[j+4>>2]=b+(i<<2)}f=1;if(!i){break oa}g=D[c+16>>2];d=D[c+20>>2];n=D[j>>2];r=D[c+8>>2];k=D[c+12>>2];b=0;while(1){f=0;if((d|0)>=(k|0)&g>>>0>=r>>>0|(d|0)>(k|0)){break oa}s=D[c>>2];o=E[s+g|0];a=d;d=g+1|0;a=d?a:a+1|0;g=d;D[c+16>>2]=d;d=a;D[c+20>>2]=a;a=o>>>2|0;f=0;ra:{sa:{ta:{ua:{t=o&3;switch(t|0){case 0:break sa;case 3:break ua;default:break ta}}a=a+b|0;f=0;if(a>>>0>=i>>>0){break oa}qa(n+(b<<2)|0,0,(o&252)+4|0);b=a;break ra}while(1){if((d|0)>=(k|0)&g>>>0>=r>>>0|(d|0)>(k|0)){break pa}i=E[g+s|0];g=g+1|0;d=g?d:d+1|0;D[c+16>>2]=g;D[c+20>>2]=d;a=i<<(f<<3|6)|a;f=f+1|0;if((t|0)!=(f|0)){continue}break}}D[n+(b<<2)>>2]=a}b=b+1|0;i=D[j+12>>2];if(b>>>0>>0){continue}break}a=j+16|0;o=D[j>>2];d=D[j+16>>2];b=D[j+20>>2]-d|0;va:{if(b>>>0<=2097151){ra(a,524288-(b>>>2|0)|0);break va}if((b|0)==2097152){break va}D[j+20>>2]=d+2097152}d=j+28|0;b=D[d>>2];f=D[j+32>>2]-b>>3;wa:{if(f>>>0>>0){db(d,i-f|0);b=D[d>>2];break wa}if(f>>>0>i>>>0){D[j+32>>2]=(i<<3)+b}if(!i){break pa}}j=D[a>>2];g=0;d=0;while(1){f=o+(g<<2)|0;k=D[f>>2];n=(g<<3)+b|0;a=d;D[n+4>>2]=a;D[n>>2]=k;k=D[f>>2];d=k+a|0;if(d>>>0>524288){break pa}xa:{if(a>>>0>=d>>>0){break xa}f=0;n=k&7;if(n){while(1){D[j+(a<<2)>>2]=g;a=a+1|0;f=f+1|0;if((n|0)!=(f|0)){continue}break}}if(k-1>>>0<=6){break xa}while(1){f=j+(a<<2)|0;D[f>>2]=g;D[f+28>>2]=g;D[f+24>>2]=g;D[f+20>>2]=g;D[f+16>>2]=g;D[f+12>>2]=g;D[f+8>>2]=g;D[f+4>>2]=g;a=a+8|0;if((d|0)!=(a|0)){continue}break}}g=g+1|0;if((i|0)!=(g|0)){continue}break}m=(d|0)==524288}f=m}ya:{if(!f|(D[e+20>>2]?0:h)){break ya}d=0;f=$-16|0;$=f;za:{if(!Va(1,f+8|0,c)){break za}a=D[c+8>>2];b=D[c+16>>2];j=a-b|0;i=D[f+12>>2];g=D[c+20>>2];a=D[c+12>>2]-(g+(a>>>0>>0)|0)|0;m=D[f+8>>2];if((i|0)==(a|0)&j>>>0>>0|a>>>0>>0){break za}a=g+i|0;j=b+m|0;a=j>>>0>>0?a+1|0:a;D[c+16>>2]=j;D[c+20>>2]=a;a=m;if((a|0)<=0){break za}b=b+D[c>>2]|0;D[e+48>>2]=b;c=a-1|0;m=c+b|0;j=E[m|0];Aa:{if(j>>>0<=63){D[e+52>>2]=c;a=E[m|0]&63;break Aa}Ba:{switch((j>>>6|0)-1|0){case 0:if(a>>>0<2){break za}D[e+52>>2]=a-2;a=(a+b|0)-2|0;a=E[a+1|0]<<8&16128|E[a|0];break Aa;case 1:if(a>>>0<3){break za}D[e+52>>2]=a-3;a=(a+b|0)-3|0;a=E[a+1|0]<<8|E[a+2|0]<<16&4128768|E[a|0];break Aa;default:break Ba}}D[e+52>>2]=a-4;a=(a+b|0)-4|0;a=E[a+2|0]<<16|E[a+3|0]<<24&1056964608|E[a+1|0]<<8|E[a|0]}D[e+56>>2]=a+2097152;d=a>>>0<534773760}$=f+16|0;if(!d){break ya}if(!h){l=1;break ya}a=D[e+56>>2];b=D[e+36>>2];c=D[e+48>>2];d=D[e+24>>2];while(1){Ca:{if(a>>>0>2097151){break Ca}l=D[e+52>>2];while(1){if((l|0)<=0){break Ca}l=l-1|0;D[e+52>>2]=l;a=E[c+l|0]|a<<8;D[e+56>>2]=a;if(a>>>0<2097152){continue}break}}l=a&524287;m=D[d+(l<<2)>>2];f=b+(m<<3)|0;a=(J(D[f>>2],a>>>19|0)+l|0)-D[f+4>>2]|0;D[e+56>>2]=a;D[q+(p<<2)>>2]=m;l=1;p=p+1|0;if((h|0)!=(p|0)){continue}break}}a=D[e+36>>2];if(a){D[e+40>>2]=a;ma(a)}a=D[e+24>>2];if(a){D[e+28>>2]=a;ma(a)}a=D[e+8>>2];if(a){D[e+12>>2]=a;ma(a)}$=e- -64|0;b=l;break g;case 17:b=Id(a,c,d);break g;case 0:case 1:case 2:case 3:case 4:case 5:case 6:case 7:e=$+-64|0;$=e;D[e+56>>2]=0;D[e+48>>2]=0;D[e+52>>2]=0;D[e+40>>2]=0;D[e+44>>2]=0;D[e+32>>2]=0;D[e+36>>2]=0;D[e+24>>2]=0;D[e+28>>2]=0;D[e+16>>2]=0;D[e+20>>2]=0;D[e+8>>2]=0;D[e+12>>2]=0;Da:{if(!Kd(e+8|0,c)|(D[e+20>>2]?0:a)){break Da}if(!Jd(e+8|0,c)){break Da}if(!a){b=1;break Da}c=D[e+56>>2];m=D[e+36>>2];f=D[e+48>>2];h=D[e+24>>2];while(1){Ea:{if(c>>>0>16383){break Ea}b=D[e+52>>2];while(1){if((b|0)<=0){break Ea}b=b-1|0;D[e+52>>2]=b;c=E[b+f|0]|c<<8;D[e+56>>2]=c;if(c>>>0<16384){continue}break}}b=c&4095;q=D[h+(b<<2)>>2];j=m+(q<<3)|0;c=(J(D[j>>2],c>>>12|0)+b|0)-D[j+4>>2]|0;D[e+56>>2]=c;D[(l<<2)+d>>2]=q;b=1;l=l+1|0;if((l|0)!=(a|0)){continue}break}}a=D[e+36>>2];if(a){D[e+40>>2]=a;ma(a)}a=D[e+24>>2];if(a){D[e+28>>2]=a;ma(a)}a=D[e+8>>2];if(a){D[e+12>>2]=a;ma(a)}$=e- -64|0;break g;case 13:case 14:case 15:case 16:break h;default:break g}}b=Id(a,c,d)}l=b}return l}function eh(a){a=a|0;var b=0,c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,H=0,I=0,K=0,L=0,M=0,N=0;v=$+-64|0;$=v;D[a+132>>2]=0;if(D[a+148>>2]){d=D[a+144>>2];if(d){while(1){g=D[d>>2];ma(d);d=g;if(d){continue}break}}d=0;D[a+144>>2]=0;g=D[a+140>>2];a:{if(!g){break a}if(g-1>>>0>=3){k=g&-4;while(1){b=d<<2;D[b+D[a+136>>2]>>2]=0;D[D[a+136>>2]+(b|4)>>2]=0;D[D[a+136>>2]+(b|8)>>2]=0;D[D[a+136>>2]+(b|12)>>2]=0;d=d+4|0;f=f+4|0;if((k|0)!=(f|0)){continue}break}}g=g&3;if(!g){break a}f=0;while(1){D[D[a+136>>2]+(d<<2)>>2]=0;d=d+1|0;f=f+1|0;if((g|0)!=(f|0)){continue}break}}D[a+148>>2]=0}b:{c:{if(!Ga(1,v+60|0,D[D[a+4>>2]+32>>2])){break c}D[a+156>>2]=D[v+60>>2];if(!Ga(1,v+56|0,D[D[a+4>>2]+32>>2])){break c}b=D[v+56>>2];if(b>>>0>1431655765|G[a+156>>2]>J(b,3)>>>0){break c}d=D[D[a+4>>2]+32>>2];f=D[d+8>>2];k=D[d+12>>2];g=D[d+20>>2];c=f;f=D[d+16>>2];if((k|0)<=(g|0)&c>>>0<=f>>>0|(g|0)>(k|0)){break c}i=E[f+D[d>>2]|0];f=f+1|0;g=f?g:g+1|0;D[d+16>>2]=f;D[d+20>>2]=g;if(!Ga(1,v+52|0,d)){break c}n=D[v+52>>2];if(n>>>0>b>>>0|b>>>0>n+((n>>>0)/3|0)>>>0){break c}if(!Ga(1,v+48|0,D[D[a+4>>2]+32>>2])){break c}f=D[v+48>>2];if(f>>>0>n>>>0){break c}D[a+28>>2]=D[a+24>>2];g=Wb(na(88));d=D[a+8>>2];D[a+8>>2]=g;if(d){cb(d);if(!D[a+8>>2]){break c}}D[a+164>>2]=D[a+160>>2];Ib(a+160|0,b);D[a+176>>2]=D[a+172>>2];Ib(a+172|0,b);D[a- -64>>2]=0;D[a+92>>2]=-1;D[a+84>>2]=-1;D[a+88>>2]=-1;D[a+40>>2]=D[a+36>>2];D[a+52>>2]=D[a+48>>2];D[a+76>>2]=D[a+72>>2];z=a+216|0;Ad(z);zd(z,i);if(!Yc(D[a+8>>2],b,f+D[a+156>>2]|0)){break c}d=D[a+156>>2];B[v+8|0]=1;Ha(a+120|0,d+f|0,v+8|0);if((yd(a,D[D[a+4>>2]+32>>2])|0)==-1){break c}k=a+232|0;g=k;D[g+144>>2]=a;d=D[(ba[D[D[a>>2]+32>>2]](a)|0)+32>>2];b=D[d>>2]+D[d+16>>2]|0;e=D[(ba[D[D[a>>2]+32>>2]](a)|0)+32>>2];d=D[e+8>>2];e=D[e+16>>2];d=d-e|0;M=g,N=F[D[(ba[D[D[a>>2]+32>>2]](a)|0)+32>>2]+38>>1],C[M+38>>1]=N;D[g>>2]=b;D[g+16>>2]=0;D[g+20>>2]=0;D[g+8>>2]=d;D[g+12>>2]=0;M=g,N=ba[D[D[a>>2]+36>>2]](a)|0,D[M+148>>2]=N;D[a+372>>2]=i;D[a+384>>2]=f+D[a+156>>2];K=La(v+8|0);i=K;b=0;e=$-16|0;$=e;d:{if(!Da(g+80|0,g)){break d}if(!vd(k)){break d}d=D[k+4>>2];D[i>>2]=D[k>>2];D[i+4>>2]=d;d=D[k+36>>2];D[i+32>>2]=D[k+32>>2];D[i+36>>2]=d;d=D[k+28>>2];D[i+24>>2]=D[k+24>>2];D[i+28>>2]=d;d=D[k+20>>2];D[i+16>>2]=D[k+16>>2];D[i+20>>2]=d;d=D[k+12>>2];D[i+8>>2]=D[k+8>>2];D[i+12>>2]=d;D[k+176>>2]=2;D[k+180>>2]=7;d=D[k+152>>2];if((d|0)<0){break d}D[e+12>>2]=0;b=2;c=D[k+156>>2];g=D[k+160>>2]-c>>2;e:{if(g>>>0>>0){xa(k+156|0,d-g|0,e+12|0);b=D[k+176>>2];f=D[k+180>>2];break e}f=7;if(d>>>0>=g>>>0){break e}D[k+160>>2]=c+(d<<2)}g=k+184|0;f=(f-b|0)+1|0;d=D[k+188>>2];b=D[k+184>>2];c=(d-b|0)/12|0;f:{if(f>>>0>c>>>0){d=f-c|0;o=D[g+8>>2];b=D[g+4>>2];g:{if(d>>>0<=(o-b|0)/12>>>0){if(d){d=J(d,12)-12|0;d=(d-((d>>>0)%12|0)|0)+12|0;b=qa(b,0,d)+d|0}D[g+4>>2]=b;break g}h:{i:{j:{c=D[g>>2];q=(b-c|0)/12|0;f=q+d|0;if(f>>>0<357913942){o=(o-c|0)/12|0;m=o<<1;o=o>>>0<178956970?f>>>0>>0?m:f:357913941;if(o){if(o>>>0>=357913942){break j}h=na(J(o,12))}f=J(q,12)+h|0;d=J(d,12)-12|0;q=(d-((d>>>0)%12|0)|0)+12|0;d=qa(f,0,q);q=d+q|0;o=J(o,12)+h|0;if((b|0)==(c|0)){break i}while(1){f=f-12|0;b=b-12|0;D[f>>2]=D[b>>2];D[f+4>>2]=D[b+4>>2];D[f+8>>2]=D[b+8>>2];D[b+8>>2]=0;D[b>>2]=0;D[b+4>>2]=0;if((b|0)!=(c|0)){continue}break}D[g+8>>2]=o;d=D[g+4>>2];D[g+4>>2]=q;b=D[g>>2];D[g>>2]=f;if((b|0)==(d|0)){break h}while(1){f=d-12|0;c=D[f>>2];if(c){D[d-8>>2]=c;ma(c)}d=f;if((d|0)!=(b|0)){continue}break}break h}break b}sa();T()}D[g+8>>2]=o;D[g+4>>2]=q;D[g>>2]=d}if(b){ma(b)}}f=D[k+188>>2];break f}if(f>>>0>=c>>>0){f=d;break f}f=b+J(f,12)|0;if((f|0)!=(d|0)){while(1){b=d-12|0;c=D[b>>2];if(c){D[d-8>>2]=c;ma(c)}d=b;if((b|0)!=(f|0)){continue}break}}D[k+188>>2]=f}o=k+196|0;b=D[k+184>>2];d=(f-b|0)/12|0;q=D[k+196>>2];c=D[k+200>>2]-q>>2;k:{if(d>>>0>c>>>0){ra(o,d-c|0);b=D[k+184>>2];f=D[k+188>>2];break k}if(d>>>0>=c>>>0){break k}D[k+200>>2]=q+(d<<2)}if((b|0)==(f|0)){b=1;break d}d=0;while(1){l:{if(!Ga(1,e+8|0,i)){break l}b=D[k+148>>2];c=(D[b+4>>2]-D[b>>2]>>2>>>0)/3|0;b=D[e+8>>2];if(c>>>0>>0){break l}if(b){h=J(d,12);c=h+D[g>>2]|0;f=D[c>>2];q=D[c+4>>2]-f>>2;m:{if(q>>>0>>0){ra(c,b-q|0);f=D[h+D[g>>2]>>2];break m}if(b>>>0>=q>>>0){break m}D[c+4>>2]=(b<<2)+f}jc(b,1,i,f);D[D[o>>2]+(d<<2)>>2]=b}b=1;d=d+1|0;if(d>>>0<(D[k+188>>2]-D[k+184>>2]|0)/12>>>0){continue}break d}break}b=0}$=e+16|0;n:{if(!b){break n}b=0;g=0;f=0;d=0;q=0;k=0;o=0;m=$-96|0;$=m;D[m+72>>2]=0;D[m+64>>2]=0;D[m+68>>2]=0;D[m+48>>2]=0;D[m+52>>2]=0;D[m+40>>2]=0;D[m+44>>2]=0;D[m+56>>2]=1065353216;D[m+32>>2]=0;D[m+24>>2]=0;D[m+28>>2]=0;i=a;A=D[a+124>>2];o:{p:{q:{r:{if((n|0)<=0){break r}x=i+232|0;L=D[i+216>>2]!=D[i+220>>2];s=1;s:{while(1){c=o;o=c+1|0;t:{u:{v:{a=D[i+404>>2];if((a|0)==-1){D[i+400>>2]=7;break v}e=-1;h=D[i+428>>2]+(a<<2)|0;j=D[h>>2];a=j-1|0;D[h>>2]=a;if((j|0)<=0){break q}a=D[D[D[i+416>>2]+J(D[i+404>>2],12)>>2]+(a<<2)>>2];if(a>>>0>4){break q}h=D[(a<<2)+8896>>2];D[i+400>>2]=h;if(!a){if((b|0)==(d|0)){break q}a=-1;j=D[i+8>>2];s=D[j+24>>2];r=b-4|0;e=D[r>>2];h=-1;w:{if((e|0)==-1){break w}l=e+1|0;l=(l>>>0)%3|0?l:e-2|0;h=-1;if((l|0)==-1){break w}h=D[D[j>>2]+(l<<2)>>2]}g=D[s+(h<<2)>>2];if((g|0)!=-1){a=g+1|0;a=(a>>>0)%3|0?a:g-2|0}g=D[j+12>>2];l=J(c,3);c=l+1|0;D[g+(e<<2)>>2]=c;w=c<<2;D[w+g>>2]=e;p=l+2|0;D[g+(a<<2)>>2]=p;t=p<<2;D[t+g>>2]=a;g=-1;c=-1;x:{if((e|0)==-1){break x}y:{if((e>>>0)%3|0){e=e-1|0;break y}e=e+2|0;c=-1;if((e|0)==-1){break x}}c=D[D[j>>2]+(e<<2)>>2]}z:{if((a|0)==-1){break z}e=a+1|0;a=(e>>>0)%3|0?e:a-2|0;if((a|0)==-1){break z}g=D[D[j>>2]+(a<<2)>>2]}e=-1;if((c|0)==(h|0)|(g|0)==(h|0)){break q}a=D[j>>2];D[a+(l<<2)>>2]=h;D[a+w>>2]=g;D[a+t>>2]=c;if((c|0)!=-1){D[s+(c<<2)>>2]=p}a=D[i+120>>2]+(h>>>3&536870908)|0;g=D[a>>2];M=a,N=ji(h)&g,D[M>>2]=N;D[r>>2]=l;g=d;hc(x,l);break t}A:{switch(h-1|0){case 2:case 4:if((b|0)==(d|0)){break q}j=D[i+8>>2];e=D[j+12>>2];h=J(c,3);a=(a|0)==3;p=h+(a?2:1)|0;r=p<<2;w=b-4|0;g=D[w>>2];D[e+r>>2]=g;D[e+(g<<2)>>2]=p;Ua(j+24|0);e=-1;b=D[i+8>>2];l=D[b+24>>2];if((A|0)>2]-l>>2){break q}b=D[b>>2];t=b+r|0;e=D[j+28>>2];j=D[j+24>>2];r=(e-j>>2)-1|0;D[t>>2]=r;if((e|0)!=(j|0)){D[l+(r<<2)>>2]=p}e=a?h:h+2|0;t=b+(a+h<<2)|0;B:{if((g|0)==-1){D[b+(e<<2)>>2]=-1;a=-1;break B}C:{D:{E:{if((g>>>0)%3|0){a=g-1|0;break E}a=g+2|0;if((a|0)==-1){break D}}a=D[b+(a<<2)>>2];D[b+(e<<2)>>2]=a;if((a|0)==-1){break C}D[l+(a<<2)>>2]=e;break C}D[b+(e<<2)>>2]=-1}e=g+1|0;g=(e>>>0)%3|0?e:g-2|0;a=-1;if((g|0)==-1){break B}a=D[b+(g<<2)>>2]}D[t>>2]=a;D[w>>2]=h;g=d;break u;case 6:break v;case 0:break A;default:break q}}if((b|0)==(g|0)){break q}f=b-4|0;j=D[f>>2];D[m+68>>2]=f;l=D[m+44>>2];F:{if(!l){break F}e=D[m+40>>2];p=ii(l)>>>0>1;a=c&l+2147483647;G:{if(!p){break G}a=c;if(a>>>0>>0){break G}a=(c>>>0)%(l>>>0)|0}h=a;a=D[e+(h<<2)>>2];if(!a){break F}e=D[a>>2];if(!e){break F}H:{if(!p){a=l-1|0;while(1){l=D[e+4>>2];I:{if((l|0)!=(c|0)){if((h|0)==(a&l)){break I}break F}if((c|0)==D[e+8>>2]){break H}}e=D[e>>2];if(e){continue}break}break F}while(1){a=D[e+4>>2];J:{if((a|0)!=(c|0)){if(a>>>0>=l>>>0){a=(a>>>0)%(l>>>0)|0}if((a|0)==(h|0)){break J}break F}if((c|0)==D[e+8>>2]){break H}}e=D[e>>2];if(e){continue}break}break F}if((f|0)!=(u|0)){D[f>>2]=D[e+12>>2];D[m+68>>2]=b;f=b;break F}a=u-g|0;f=a>>2;d=f+1|0;if(d>>>0>=1073741824){break b}b=a>>1;b=a>>>0<2147483644?b>>>0>d>>>0?b:d:1073741823;if(b){if(b>>>0>=1073741824){break p}d=na(b<<2)}else{d=0}f=d+(f<<2)|0;D[f>>2]=D[e+12>>2];u=(b<<2)+d|0;f=f+4|0;if((a|0)>0){oa(d,g,a)}D[m+72>>2]=u;D[m+68>>2]=f;D[m+64>>2]=d;if(g){ma(g)}g=d}if((g|0)==(f|0)){break s}w=f-4|0;e=D[w>>2];a=(e|0)==-1;l=D[i+8>>2];if(!a&D[D[l+12>>2]+(e<<2)>>2]!=-1){break s}p=D[l+12>>2];if((j|0)!=-1&D[p+(j<<2)>>2]!=-1){break s}s=J(c,3);r=s+2|0;D[p+(e<<2)>>2]=r;c=r<<2;D[c+p>>2]=e;b=s+1|0;D[p+(j<<2)>>2]=b;t=b<<2;D[t+p>>2]=j;K:{L:{M:{if(!a){if((e>>>0)%3|0){h=e-1|0;break M}h=e+2|0;if((h|0)!=-1){break M}b=D[l>>2];a=-1;break L}a=-1;b=D[l>>2];D[b+(s<<2)>>2]=-1;h=-1;break K}b=D[l>>2];a=D[b+(h<<2)>>2]}D[(s<<2)+b>>2]=a;H=e+1|0;e=(H>>>0)%3|0?H:e-2|0;h=-1;if((e|0)==-1){break K}h=D[(e<<2)+b>>2]}D[b+t>>2]=h;N:{if((j|0)==-1){D[b+c>>2]=-1;h=-1;e=-1;break N}O:{P:{Q:{if((j>>>0)%3|0){e=j-1|0;break Q}e=j+2|0;if((e|0)==-1){break P}}e=D[(e<<2)+b>>2];D[b+c>>2]=e;if((e|0)==-1){break O}D[D[l+24>>2]+(e<<2)>>2]=r;break O}D[b+c>>2]=-1}h=-1;c=j+1|0;c=(c>>>0)%3|0?c:j-2|0;e=-1;if((c|0)==-1){break N}h=D[(c<<2)+b>>2];e=c}c=D[i+388>>2];j=a<<2;r=c+j|0;t=c;c=h<<2;D[r>>2]=D[r>>2]+D[t+c>>2];l=D[l+24>>2];c=l+c|0;if((a|0)!=-1){D[j+l>>2]=D[c>>2]}R:{if((e|0)==-1){break R}while(1){D[(e<<2)+b>>2]=a;j=e+1|0;e=(j>>>0)%3|0?j:e-2|0;if((e|0)==-1){break R}e=D[p+(e<<2)>>2];if((e|0)==-1){break R}j=e+1|0;e=(j>>>0)%3|0?j:e-2|0;if((e|0)!=-1){continue}break}}D[c>>2]=-1;S:{if(L){break S}if((q|0)!=(y|0)){D[q>>2]=h;q=q+4|0;D[m+28>>2]=q;break S}b=y-k|0;c=b>>2;a=c+1|0;if(a>>>0<1073741824){e=b>>1;e=b>>>0<2147483644?a>>>0>>0?e:a:1073741823;if(e){if(e>>>0>=1073741824){break p}a=na(e<<2)}else{a=0}c=a+(c<<2)|0;D[c>>2]=h;y=a+(e<<2)|0;q=c+4|0;if((b|0)>0){oa(a,k,b)}D[m+32>>2]=y;D[m+28>>2]=q;D[m+24>>2]=a;if(k){ma(k)}k=a;break S}break b}D[w>>2]=s;b=f;hc(x,s);break t}h=D[i+8>>2];Ua(h+24|0);e=-1;f=D[i+8>>2];a=J(c,3);j=D[h+28>>2];l=D[h+24>>2];p=j-l|0;h=p>>2;r=h-1|0;D[D[f>>2]+(a<<2)>>2]=r;Ua(f+24|0);w=a+1|0;D[D[f>>2]+(w<<2)>>2]=(D[f+28>>2]-D[f+24>>2]>>2)-1;f=D[i+8>>2];Ua(f+24|0);t=a+2|0;D[D[f>>2]+(t<<2)>>2]=(D[f+28>>2]-D[f+24>>2]>>2)-1;H=D[i+8>>2];f=D[H+24>>2];if((A|0)>2]-f>>2){break q}T:{U:{if((j|0)!=(l|0)){D[f+(r<<2)>>2]=a;e=0;if((p|0)==-4){break U}}D[f+(h<<2)>>2]=w;e=h+1|0;if((e|0)==-1){break T}}D[f+(e<<2)>>2]=t}if((b|0)!=(u|0)){D[b>>2]=a;f=b+4|0;D[m+68>>2]=f;break u}b=u-d|0;e=b>>2;g=e+1|0;if(g>>>0>=1073741824){break b}f=b>>1;f=b>>>0<2147483644?g>>>0>>0?f:g:1073741823;if(f){if(f>>>0>=1073741824){break p}g=na(f<<2)}else{g=0}e=g+(e<<2)|0;D[e>>2]=a;u=(f<<2)+g|0;f=e+4|0;if((b|0)>0){oa(g,d,b)}D[m+72>>2]=u;D[m+68>>2]=f;D[m+64>>2]=g;if(d){ma(d)}d=g}hc(x,D[f-4>>2]);e=D[i+40>>2];V:{if((e|0)==D[i+36>>2]){break V}c=n+(c^-1)|0;h=f-4|0;while(1){a=e-12|0;b=D[a+4>>2];if(b>>>0>c>>>0){break s}if((b|0)!=(c|0)){break V}e=E[e-4|0];b=D[a>>2];D[i+40>>2]=a;if((b|0)<0){break s}a=D[h>>2];D[m+20>>2]=n+(b^-1);b=m+20|0;D[m+88>>2]=b;ud(m,m+40|0,b,m+88|0);t=D[m>>2];W:{if(e&1){b=-1;if((a|0)==-1){break W}b=a+1|0;b=(b>>>0)%3|0?b:a-2|0;break W}b=-1;if((a|0)==-1){break W}b=a-1|0;if((a>>>0)%3|0){break W}b=a+2|0}D[t+12>>2]=b;e=D[i+40>>2];if((e|0)!=D[i+36>>2]){continue}break}}b=f}s=(n|0)>(o|0);if((n|0)!=(o|0)){continue}break}o=n;break r}e=-1;if(s&1){break q}}e=-1;b=D[i+8>>2];if((A|0)>2]-D[b+24>>2]>>2){break q}X:{if((d|0)!=(f|0)){g=i+60|0;A=i+312|0;while(1){f=f-4|0;j=D[f>>2];D[m+68>>2]=f;Y:{if(za(A)){p=D[i+8>>2];l=D[p>>2];if(((D[p+4>>2]-l>>2>>>0)/3|0)<=(o|0)){break X}a=-1;b=-1;n=D[p+24>>2];c=-1;Z:{if((j|0)==-1){break Z}h=j+1|0;h=(h>>>0)%3|0?h:j-2|0;c=-1;if((h|0)==-1){break Z}c=D[l+(h<<2)>>2]}h=c;c=D[n+(h<<2)>>2];_:{if((c|0)==-1){break _}u=c+1|0;c=(u>>>0)%3|0?u:c-2|0;if((c|0)==-1){break _}a=c+1|0;a=(a>>>0)%3|0?a:c-2|0;if((a|0)!=-1){b=D[l+(a<<2)>>2]}a=c}u=-1;s=-1;n=D[n+(b<<2)>>2];c=-1;$:{if((n|0)==-1){break $}x=n+1|0;n=(x>>>0)%3|0?x:n-2|0;c=-1;if((n|0)==-1){break $}c=n+1|0;c=(c>>>0)%3|0?c:n-2|0;if((c|0)!=-1){s=D[l+(c<<2)>>2]}c=n}n=D[p+12>>2];p=J(o,3);x=p<<2;D[n+x>>2]=j;D[n+(j<<2)>>2]=p;j=p+1|0;y=j<<2;D[y+n>>2]=a;D[n+(a<<2)>>2]=j;a=p+2|0;r=a<<2;D[r+n>>2]=c;D[n+(c<<2)>>2]=a;D[l+x>>2]=b;c=l+y|0;D[c>>2]=s;n=l+r|0;D[n>>2]=h;h=j?b:-1;b=D[i+120>>2];l=(h>>>3&536870908)+b|0;s=D[l>>2];M=l,N=ji(h)&s,D[M>>2]=N;u=(j|0)!=-1?D[c>>2]:u;c=b+(u>>>3&536870908)|0;h=D[c>>2];M=c,N=ji(u)&h,D[M>>2]=N;h=-1;h=(a|0)!=-1?D[n>>2]:h;a=b+(h>>>3&536870908)|0;b=D[a>>2];M=a,N=ji(h)&b,D[M>>2]=N;h=D[i+64>>2];a=D[i+68>>2];if((h|0)==a<<5){if((h+1|0)<0){break b}if(h>>>0<=1073741822){a=a<<6;b=h+32&-32;a=a>>>0>b>>>0?a:b}else{a=2147483647}Xa(g,a);h=D[i+64>>2]}o=o+1|0;D[i+64>>2]=h+1;a=D[i+60>>2]+(h>>>3&536870908)|0;D[a>>2]=D[a>>2]|1<>2];if((a|0)!=D[i+80>>2]){D[a>>2]=p;D[i+76>>2]=a+4;break Y}c=D[i+72>>2];b=a-c|0;h=b>>2;a=h+1|0;if(a>>>0>=1073741824){break b}n=b>>1;n=b>>>0<2147483644?a>>>0>>0?n:a:1073741823;if(n){if(n>>>0>=1073741824){break p}a=na(n<<2)}else{a=0}h=a+(h<<2)|0;D[h>>2]=p;if((b|0)>0){oa(a,c,b)}D[i+80>>2]=a+(n<<2);D[i+76>>2]=h+4;D[i+72>>2]=a;if(!c){break Y}ma(c);break Y}b=D[i+64>>2];a=D[i+68>>2];if((b|0)==a<<5){if((b+1|0)<0){break b}if(b>>>0<=1073741822){a=a<<6;b=b+32&-32;a=a>>>0>b>>>0?a:b}else{a=2147483647}Xa(g,a);b=D[i+64>>2]}D[i+64>>2]=b+1;a=D[i+60>>2]+(b>>>3&536870908)|0;c=D[a>>2];M=a,N=ji(b)&c,D[M>>2]=N;a=D[i+76>>2];if((a|0)!=D[i+80>>2]){D[a>>2]=j;D[i+76>>2]=a+4;break Y}c=D[i+72>>2];b=a-c|0;h=b>>2;a=h+1|0;if(a>>>0>=1073741824){break b}n=b>>1;n=b>>>0<2147483644?a>>>0>>0?n:a:1073741823;if(n){if(n>>>0>=1073741824){break p}a=na(n<<2)}else{a=0}h=a+(h<<2)|0;D[h>>2]=j;if((b|0)>0){oa(a,c,b)}D[i+80>>2]=a+(n<<2);D[i+76>>2]=h+4;D[i+72>>2]=a;if(!c){break Y}ma(c)}if((d|0)!=(f|0)){continue}break}b=D[i+8>>2]}if(((D[b+4>>2]-D[b>>2]>>2>>>0)/3|0)!=(o|0)){break q}e=D[b+28>>2]-D[b+24>>2]>>2;if((k|0)==(q|0)){k=q;break q}a=k;while(1){g=D[a>>2];c=D[b+24>>2];f=e-1|0;h=c+(f<<2)|0;if(D[h>>2]==-1){while(1){f=e-2|0;e=e-1|0;h=c+(f<<2)|0;if(D[h>>2]==-1){continue}break}}if(g>>>0<=f>>>0){D[m>>2]=b;h=D[h>>2];B[m+12|0]=1;D[m+8>>2]=h;D[m+4>>2]=h;if((h|0)!=-1){while(1){b=D[D[i+8>>2]>>2]+(h<<2)|0;if(D[b>>2]!=(f|0)){break X}D[b>>2]=g;kc(m);h=D[m+8>>2];if((h|0)!=-1){continue}break}b=D[i+8>>2]}o=D[b+24>>2];c=o+(f<<2)|0;if((g|0)!=-1){D[o+(g<<2)>>2]=D[c>>2]}D[c>>2]=-1;c=1<>2];g=o+(g>>>3&536870908)|0;o=o+(f>>>3&536870908)|0;f=1<>2]&f){c=c|D[g>>2]}else{c=D[g>>2]&(c^-1)}D[g>>2]=c;D[o>>2]=D[o>>2]&(f^-1);e=e-1|0}a=a+4|0;if((q|0)!=(a|0)){continue}break}break q}e=-1}if(k){ma(k)}a=D[m+48>>2];if(a){while(1){g=D[a>>2];ma(a);a=g;if(a){continue}break}}a=D[m+40>>2];D[m+40>>2]=0;if(a){ma(a)}if(d){D[m+68>>2]=d;ma(d)}$=m+96|0;break o}sa();T()}if((e|0)==-1){break n}a=D[K+16>>2];d=a+D[K>>2]|0;g=D[K+8>>2];g=g-a|0;a=D[D[i+4>>2]+32>>2];C[a+38>>1]=F[a+38>>1];D[a>>2]=d;D[a+16>>2]=0;D[a+20>>2]=0;D[a+8>>2]=g;D[a+12>>2]=0;aa:{if(D[i+216>>2]==D[i+220>>2]){break aa}a=D[i+8>>2];if(D[a+4>>2]==D[a>>2]){break aa}d=0;while(1){if(xd(i,d)){d=d+3|0;a=D[i+8>>2];if(d>>>0>2]-D[a>>2]>>2>>>0){continue}break aa}break}break n}if(E[i+308|0]){B[i+308|0]=0;g=D[i+292>>2];a=0;d=D[i+304>>2]+7|0;a=d>>>0<7?1:a;f=a<<29|d>>>3;d=f+D[i+288>>2]|0;a=(a>>>3|0)+g|0;D[i+288>>2]=d;D[i+292>>2]=d>>>0>>0?a+1|0:a}d=D[i+216>>2];if((d|0)!=D[i+220>>2]){while(1){g=J(I,144);Xc((g+d|0)+4|0,D[i+8>>2]);a=D[z>>2];b=a+g|0;d=D[b+132>>2];b=D[b+136>>2];if((d|0)!=(b|0)){while(1){Vc((g+D[z>>2]|0)+4|0,D[d>>2]);d=d+4|0;if((b|0)!=(d|0)){continue}break}a=D[z>>2]}Wc((a+g|0)+4|0);I=I+1|0;d=D[i+216>>2];if(I>>>0<(D[i+220>>2]-d|0)/144>>>0){continue}break}}a=D[i+8>>2];Hb(i+184|0,D[a+28>>2]-D[a+24>>2]>>2);f=D[i+216>>2];if((f|0)!=D[i+220>>2]){d=0;while(1){a=J(d,144)+f|0;g=D[a+60>>2]-D[a+56>>2]>>2;c=a+104|0;a=D[i+8>>2];a=D[a+28>>2]-D[a+24>>2]>>2;Hb(c,(a|0)<(g|0)?g:a);d=d+1|0;f=D[i+216>>2];if(d>>>0<(D[i+220>>2]-f|0)/144>>>0){continue}break}}I=wd(i,e)}}$=v- -64|0;return I|0}pa();T()}function hh(a){a=a|0;var b=0,c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,H=0,I=0,K=0,L=0,M=0,N=0;t=$+-64|0;$=t;D[a+132>>2]=0;if(D[a+148>>2]){d=D[a+144>>2];if(d){while(1){c=D[d>>2];ma(d);d=c;if(d){continue}break}}d=0;D[a+144>>2]=0;c=D[a+140>>2];a:{if(!c){break a}if(c-1>>>0>=3){f=c&-4;while(1){j=d<<2;D[j+D[a+136>>2]>>2]=0;D[D[a+136>>2]+(j|4)>>2]=0;D[D[a+136>>2]+(j|8)>>2]=0;D[D[a+136>>2]+(j|12)>>2]=0;d=d+4|0;k=k+4|0;if((f|0)!=(k|0)){continue}break}}c=c&3;if(!c){break a}k=0;while(1){D[D[a+136>>2]+(d<<2)>>2]=0;d=d+1|0;k=k+1|0;if((c|0)!=(k|0)){continue}break}}D[a+148>>2]=0}b:{if(!Ga(1,t+60|0,D[D[a+4>>2]+32>>2])){break b}D[a+156>>2]=D[t+60>>2];if(!Ga(1,t+56|0,D[D[a+4>>2]+32>>2])){break b}j=D[t+56>>2];if(j>>>0>1431655765|G[a+156>>2]>J(j,3)>>>0){break b}d=D[D[a+4>>2]+32>>2];k=D[d+8>>2];f=D[d+12>>2];c=D[d+20>>2];b=k;k=D[d+16>>2];if((f|0)<=(c|0)&b>>>0<=k>>>0|(c|0)>(f|0)){break b}f=E[k+D[d>>2]|0];k=k+1|0;c=k?c:c+1|0;D[d+16>>2]=k;D[d+20>>2]=c;if(!Ga(1,t+52|0,d)){break b}n=D[t+52>>2];if(n>>>0>j>>>0|j>>>0>n+((n>>>0)/3|0)>>>0){break b}if(!Ga(1,t+48|0,D[D[a+4>>2]+32>>2])){break b}d=D[t+48>>2];if(d>>>0>n>>>0){break b}D[a+28>>2]=D[a+24>>2];k=Wb(na(88));c=D[a+8>>2];D[a+8>>2]=k;if(c){cb(c);if(!D[a+8>>2]){break b}}D[a+164>>2]=D[a+160>>2];Ib(a+160|0,j);D[a+176>>2]=D[a+172>>2];Ib(a+172|0,j);D[a- -64>>2]=0;D[a+92>>2]=-1;D[a+84>>2]=-1;D[a+88>>2]=-1;D[a+40>>2]=D[a+36>>2];D[a+52>>2]=D[a+48>>2];D[a+76>>2]=D[a+72>>2];y=a+216|0;Ad(y);zd(y,f);if(!Yc(D[a+8>>2],j,d+D[a+156>>2]|0)){break b}c=D[a+156>>2];B[t+8|0]=1;Ha(a+120|0,d+c|0,t+8|0);if((yd(a,D[D[a+4>>2]+32>>2])|0)==-1){break b}d=a+232|0;D[d+144>>2]=a;c=D[(ba[D[D[a>>2]+32>>2]](a)|0)+32>>2];j=D[c>>2]+D[c+16>>2]|0;k=D[(ba[D[D[a>>2]+32>>2]](a)|0)+32>>2];c=D[k+8>>2];k=D[k+16>>2];c=c-k|0;M=d,N=F[D[(ba[D[D[a>>2]+32>>2]](a)|0)+32>>2]+38>>1],C[M+38>>1]=N;D[d>>2]=j;D[d+16>>2]=0;D[d+20>>2]=0;D[d+8>>2]=c;D[d+12>>2]=0;D[a+372>>2]=f;H=La(t+8|0);f=H;j=0;g=$-16|0;$=g;c=D[d+4>>2];D[d+40>>2]=D[d>>2];D[d+44>>2]=c;c=D[d+36>>2];D[d+72>>2]=D[d+32>>2];D[d+76>>2]=c;k=D[d+28>>2];c=d- -64|0;D[c>>2]=D[d+24>>2];D[c+4>>2]=k;c=D[d+20>>2];D[d+56>>2]=D[d+16>>2];D[d+60>>2]=c;c=D[d+12>>2];D[d+48>>2]=D[d+8>>2];D[d+52>>2]=c;c:{d:{if(ec(d+40|0,1,g+8|0)){c=D[d+44>>2];D[d>>2]=D[d+40>>2];D[d+4>>2]=c;c=D[d+76>>2];D[d+32>>2]=D[d+72>>2];D[d+36>>2]=c;c=D[d+68>>2];D[d+24>>2]=D[d+64>>2];D[d+28>>2]=c;k=D[d+60>>2];b=k;c=D[d+56>>2];D[d+16>>2]=c;D[d+20>>2]=b;e=D[d+52>>2];k=D[d+48>>2];D[d+8>>2]=k;D[d+12>>2]=e;h=k-c|0;m=D[g+12>>2];e=e-((c>>>0>k>>>0)+b|0)|0;k=D[g+8>>2];if((m|0)==(e|0)&h>>>0>=k>>>0|e>>>0>m>>>0){break d}}break c}b=b+m|0;c=c+k|0;b=c>>>0>>0?b+1|0:b;D[d+16>>2]=c;D[d+20>>2]=b;if(!Da(d+80|0,d)){break c}if(!vd(d)){break c}c=D[d+4>>2];D[f>>2]=D[d>>2];D[f+4>>2]=c;c=D[d+36>>2];D[f+32>>2]=D[d+32>>2];D[f+36>>2]=c;c=D[d+28>>2];D[f+24>>2]=D[d+24>>2];D[f+28>>2]=c;c=D[d+20>>2];D[f+16>>2]=D[d+16>>2];D[f+20>>2]=c;c=D[d+12>>2];D[f+8>>2]=D[d+8>>2];D[f+12>>2]=c;j=1}$=g+16|0;e:{if(!j){break e}e=0;c=0;d=0;j=0;k=0;m=$-96|0;$=m;D[m+72>>2]=0;D[m+64>>2]=0;D[m+68>>2]=0;D[m+48>>2]=0;D[m+52>>2]=0;D[m+40>>2]=0;D[m+44>>2]=0;D[m+56>>2]=1065353216;D[m+32>>2]=0;D[m+24>>2]=0;D[m+28>>2]=0;f=a;z=D[a+124>>2];f:{g:{h:{i:{j:{k:{l:{if((n|0)<=0){break l}I=D[f+216>>2]!=D[f+220>>2];p=1;while(1){g=v;v=g+1|0;m:{n:{o:{p:{q:{r:{s:{t:{u:{v:{w:{x:{if(!E[f+308|0]){break x}y:{z:{h=D[f+296>>2];b=D[f+304>>2];a=h+(b>>>3|0)|0;i=D[f+300>>2];if(a>>>0>=i>>>0){break z}l=E[a|0];a=b+1|0;D[f+304>>2]=a;if(!(l>>>(b&7)&1)){break z}o=a>>>3|0;l=h+o|0;A:{if(l>>>0>=i>>>0){b=a;a=0;break A}l=E[l|0];b=b+2|0;D[f+304>>2]=b;o=b>>>3|0;a=l>>>(a&7)&1}h=h+o|0;if(h>>>0>>0){h=E[h|0];D[f+304>>2]=b+1;b=h>>>(b&7)<<1&2}else{b=0}b=(a|b)<<1;switch(b-1|0){case 0:case 2:case 4:break t;case 5:break w;case 1:case 3:break y;default:break x}}if((d|0)==(c|0)){break k}i=-1;l=D[f+8>>2];o=D[l+24>>2];r=d-4|0;h=D[r>>2];a=-1;B:{if((h|0)==-1){break B}e=h+1|0;e=(e>>>0)%3|0?e:h-2|0;a=-1;if((e|0)==-1){break B}a=D[D[l>>2]+(e<<2)>>2]}b=D[o+(a<<2)>>2];if((b|0)!=-1){e=b+1|0;i=(e>>>0)%3|0?e:b-2|0}b=D[l+12>>2];g=J(g,3);e=g+1|0;D[b+(h<<2)>>2]=e;s=e<<2;D[s+b>>2]=h;p=g+2|0;D[b+(i<<2)>>2]=p;u=p<<2;D[u+b>>2]=i;e=-1;b=-1;C:{if((h|0)==-1){break C}D:{if((h>>>0)%3|0){h=h-1|0;break D}h=h+2|0;b=-1;if((h|0)==-1){break C}}b=D[D[l>>2]+(h<<2)>>2]}E:{if((i|0)==-1){break E}h=i+1|0;h=(h>>>0)%3|0?h:i-2|0;if((h|0)==-1){break E}e=D[D[l>>2]+(h<<2)>>2]}h=-1;if((a|0)==(b|0)|(a|0)==(e|0)){break j}h=D[l>>2];D[h+(g<<2)>>2]=a;D[h+s>>2]=e;D[h+u>>2]=b;if((b|0)!=-1){D[o+(b<<2)>>2]=p}b=D[f+120>>2]+(a>>>3&536870908)|0;e=D[b>>2];M=b,N=ji(a)&e,D[M>>2]=N;D[r>>2]=g;e=c;break m}if((d|0)==(c|0)){break k}a=D[f+8>>2];e=D[a+12>>2];i=J(g,3);o=(b|1)==5;r=i+(o?2:1)|0;s=r<<2;u=d-4|0;b=D[u>>2];D[e+s>>2]=b;D[e+(b<<2)>>2]=r;Ua(a+24|0);h=-1;e=D[f+8>>2];l=D[e+24>>2];if((z|0)>2]-l>>2){break j}e=D[e>>2];K=e+s|0;h=D[a+28>>2];a=D[a+24>>2];s=(h-a>>2)-1|0;D[K>>2]=s;if((a|0)!=(h|0)){D[l+(s<<2)>>2]=r}h=o?i:i+2|0;o=e+(i+o<<2)|0;F:{if((b|0)==-1){D[e+(h<<2)>>2]=-1;a=-1;break F}G:{H:{I:{if((b>>>0)%3|0){a=b-1|0;break I}a=b+2|0;if((a|0)==-1){break H}}a=D[e+(a<<2)>>2];D[e+(h<<2)>>2]=a;if((a|0)==-1){break G}D[l+(a<<2)>>2]=h;break G}D[e+(h<<2)>>2]=-1}h=b+1|0;b=(h>>>0)%3|0?h:b-2|0;a=-1;if((b|0)==-1){break F}a=D[e+(b<<2)>>2]}D[o>>2]=a;D[u>>2]=i;e=c;break v}if((d|0)==(c|0)){break k}a=d-4|0;i=D[a>>2];D[m+68>>2]=a;l=D[m+44>>2];J:{if(!l){d=a;break J}e=D[m+40>>2];o=ii(l)>>>0>1;b=g&l+2147483647;K:{if(!o){break K}b=g;if(b>>>0>>0){break K}b=(g>>>0)%(l>>>0)|0}h=b;b=D[e+(h<<2)>>2];if(!b){d=a;break J}b=D[b>>2];if(!b){d=a;break J}L:{if(!o){e=l-1|0;while(1){l=D[b+4>>2];M:{if((l|0)!=(g|0)){if((h|0)==(e&l)){break M}d=a;break J}if((g|0)==D[b+8>>2]){break L}}b=D[b>>2];if(b){continue}break}d=a;break J}while(1){e=D[b+4>>2];N:{if((e|0)!=(g|0)){if(e>>>0>=l>>>0){e=(e>>>0)%(l>>>0)|0}if((e|0)==(h|0)){break N}d=a;break J}if((g|0)==D[b+8>>2]){break L}}b=D[b>>2];if(b){continue}break}d=a;break J}if((a|0)!=(q|0)){D[a>>2]=D[b+12>>2];D[m+68>>2]=d;break J}a=q-c|0;e=a>>2;d=e+1|0;if(d>>>0>=1073741824){break s}j=a>>1;d=a>>>0<2147483644?d>>>0>>0?j:d:1073741823;if(d){if(d>>>0>=1073741824){break i}j=na(d<<2)}else{j=0}e=j+(e<<2)|0;D[e>>2]=D[b+12>>2];q=(d<<2)+j|0;d=e+4|0;if((a|0)>0){oa(j,c,a)}D[m+72>>2]=q;D[m+68>>2]=d;D[m+64>>2]=j;if(!c){break J}ma(c)}if((d|0)==(j|0)){break u}r=d-4|0;b=D[r>>2];a=(b|0)==-1;e=D[f+8>>2];if(!a&D[D[e+12>>2]+(b<<2)>>2]!=-1){break u}h=D[e+12>>2];if((i|0)!=-1&D[h+(i<<2)>>2]!=-1){break u}p=J(g,3);o=p+2|0;D[h+(b<<2)>>2]=o;g=o<<2;D[g+h>>2]=b;c=p+1|0;D[h+(i<<2)>>2]=c;s=c<<2;D[s+h>>2]=i;if(a){break r}if((b>>>0)%3|0){a=b-1|0;break p}a=b+2|0;if((a|0)!=-1){break p}c=D[e>>2];a=-1;break o}i=D[f+8>>2];Ua(i+24|0);h=-1;b=D[f+8>>2];a=J(g,3);l=D[i+28>>2];o=D[i+24>>2];r=l-o|0;i=r>>2;s=i-1|0;D[D[b>>2]+(a<<2)>>2]=s;Ua(b+24|0);u=a+1|0;D[D[b>>2]+(u<<2)>>2]=(D[b+28>>2]-D[b+24>>2]>>2)-1;b=D[f+8>>2];Ua(b+24|0);K=a+2|0;D[D[b>>2]+(K<<2)>>2]=(D[b+28>>2]-D[b+24>>2]>>2)-1;L=D[f+8>>2];b=D[L+24>>2];if((z|0)>2]-b>>2){break j}O:{P:{if((l|0)!=(o|0)){D[b+(s<<2)>>2]=a;h=0;if((r|0)==-4){break P}}D[b+(i<<2)>>2]=u;h=i+1|0;if((h|0)==-1){break O}}D[b+(h<<2)>>2]=K}if((d|0)!=(q|0)){D[d>>2]=a;d=d+4|0;D[m+68>>2]=d;break v}c=d-e|0;b=c>>2;d=b+1|0;if(d>>>0>=1073741824){break q}j=c>>1;d=c>>>0<2147483644?d>>>0>>0?j:d:1073741823;if(d){if(d>>>0>=1073741824){break i}j=na(d<<2)}else{j=0}b=j+(b<<2)|0;D[b>>2]=a;q=(d<<2)+j|0;d=b+4|0;if((c|0)>0){oa(j,e,c)}D[m+72>>2]=q;D[m+68>>2]=d;D[m+64>>2]=j;if(e){ma(e)}c=j;e=c}b=D[f+40>>2];if((b|0)==D[f+36>>2]){break m}g=n+(g^-1)|0;h=d-4|0;while(1){a=b-12|0;i=D[a+4>>2];if(i>>>0>g>>>0){break u}if((g|0)!=(i|0)){break m}i=E[b-4|0];b=D[a>>2];D[f+40>>2]=a;if((b|0)<0){break u}a=D[h>>2];D[m+20>>2]=n+(b^-1);b=m+20|0;D[m+88>>2]=b;ud(m,m+40|0,b,m+88|0);l=D[m>>2];Q:{if(i&1){b=-1;if((a|0)==-1){break Q}b=a+1|0;b=(b>>>0)%3|0?b:a-2|0;break Q}b=-1;if((a|0)==-1){break Q}b=a-1|0;if((a>>>0)%3|0){break Q}b=a+2|0}D[l+12>>2]=b;b=D[f+40>>2];if((b|0)!=D[f+36>>2]){continue}break}break m}h=-1;if(p&1){break j}break l}T()}pa();T()}a=-1;c=D[e>>2];D[c+(p<<2)>>2]=-1;l=-1;break n}pa();T()}c=D[e>>2];a=D[c+(a<<2)>>2]}D[(p<<2)+c>>2]=a;u=b+1|0;b=(u>>>0)%3|0?u:b-2|0;l=-1;if((b|0)==-1){break n}l=D[(b<<2)+c>>2]}D[c+s>>2]=l;R:{if((i|0)==-1){D[c+g>>2]=-1;l=-1;b=-1;break R}S:{T:{U:{if((i>>>0)%3|0){b=i-1|0;break U}b=i+2|0;if((b|0)==-1){break T}}b=D[(b<<2)+c>>2];D[c+g>>2]=b;if((b|0)==-1){break S}D[D[e+24>>2]+(b<<2)>>2]=o;break S}D[c+g>>2]=-1}l=-1;g=i+1|0;g=(g>>>0)%3|0?g:i-2|0;b=-1;if((g|0)==-1){break R}l=D[(g<<2)+c>>2];b=g}e=D[e+24>>2];g=e+(l<<2)|0;if((a|0)!=-1){D[e+(a<<2)>>2]=D[g>>2]}V:{if((b|0)==-1){break V}while(1){D[(b<<2)+c>>2]=a;e=b+1|0;b=(e>>>0)%3|0?e:b-2|0;if((b|0)==-1){break V}b=D[h+(b<<2)>>2];if((b|0)==-1){break V}e=b+1|0;b=(e>>>0)%3|0?e:b-2|0;if((b|0)!=-1){continue}break}}D[g>>2]=-1;W:{if(I){break W}if((w|0)!=(x|0)){D[w>>2]=l;w=w+4|0;D[m+28>>2]=w;break W}c=x-k|0;g=c>>2;a=g+1|0;if(a>>>0<1073741824){b=c>>1;b=c>>>0<2147483644?a>>>0>>0?b:a:1073741823;if(b){if(b>>>0>=1073741824){break i}a=na(b<<2)}else{a=0}g=a+(g<<2)|0;D[g>>2]=l;x=a+(b<<2)|0;w=g+4|0;if((c|0)>0){oa(a,k,c)}D[m+32>>2]=x;D[m+28>>2]=w;D[m+24>>2]=a;if(k){ma(k)}k=a;break W}pa();T()}D[r>>2]=p;c=j;e=c}p=(n|0)>(v|0);if((n|0)!=(v|0)){continue}break}v=n}h=-1;i=D[f+8>>2];if((z|0)>2]-D[i+24>>2]>>2){break j}if((d|0)!=(j|0)){a=f+60|0;z=f+312|0;while(1){d=d-4|0;n=D[d>>2];D[m+68>>2]=d;X:{if(za(z)){q=D[f+8>>2];l=D[q>>2];if(((D[q+4>>2]-l>>2>>>0)/3|0)<=(v|0)){break k}c=-1;i=-1;g=D[q+24>>2];b=-1;Y:{if((n|0)==-1){break Y}e=n+1|0;e=(e>>>0)%3|0?e:n-2|0;b=-1;if((e|0)==-1){break Y}b=D[l+(e<<2)>>2]}e=b;b=D[g+(e<<2)>>2];Z:{if((b|0)==-1){break Z}p=b+1|0;b=(p>>>0)%3|0?p:b-2|0;if((b|0)==-1){break Z}c=b+1|0;c=(c>>>0)%3|0?c:b-2|0;if((c|0)!=-1){i=D[l+(c<<2)>>2]}c=b}p=-1;o=-1;g=D[g+(i<<2)>>2];b=-1;_:{if((g|0)==-1){break _}x=g+1|0;g=(x>>>0)%3|0?x:g-2|0;b=-1;if((g|0)==-1){break _}b=g+1|0;b=(b>>>0)%3|0?b:g-2|0;if((b|0)!=-1){o=D[l+(b<<2)>>2]}b=g}g=D[q+12>>2];q=J(v,3);x=q<<2;D[g+x>>2]=n;D[g+(n<<2)>>2]=q;n=q+1|0;r=n<<2;D[r+g>>2]=c;D[g+(c<<2)>>2]=n;c=q+2|0;I=c<<2;D[I+g>>2]=b;D[g+(b<<2)>>2]=c;D[l+x>>2]=i;b=l+r|0;D[b>>2]=o;l=l+I|0;D[l>>2]=e;g=D[f+120>>2];e=n?i:-1;i=g+(e>>>3&536870908)|0;o=D[i>>2];M=i,N=ji(e)&o,D[M>>2]=N;p=(n|0)!=-1?D[b>>2]:p;b=g+(p>>>3&536870908)|0;e=D[b>>2];M=b,N=ji(p)&e,D[M>>2]=N;b=-1;b=(c|0)!=-1?D[l>>2]:b;c=g+(b>>>3&536870908)|0;g=D[c>>2];M=c,N=ji(b)&g,D[M>>2]=N;b=D[f+64>>2];c=D[f+68>>2];if((b|0)==c<<5){if((b+1|0)<0){break h}if(b>>>0<=1073741822){c=c<<6;b=b+32&-32;c=b>>>0>>0?c:b}else{c=2147483647}Xa(a,c);b=D[f+64>>2]}v=v+1|0;D[f+64>>2]=b+1;c=D[f+60>>2]+(b>>>3&536870908)|0;D[c>>2]=D[c>>2]|1<>2];if((c|0)!=D[f+80>>2]){D[c>>2]=q;D[f+76>>2]=c+4;break X}g=D[f+72>>2];b=c-g|0;n=b>>2;c=n+1|0;if(c>>>0>=1073741824){break g}e=b>>1;e=b>>>0<2147483644?c>>>0>>0?e:c:1073741823;if(e){if(e>>>0>=1073741824){break i}c=na(e<<2)}else{c=0}n=c+(n<<2)|0;D[n>>2]=q;if((b|0)>0){oa(c,g,b)}D[f+80>>2]=c+(e<<2);D[f+76>>2]=n+4;D[f+72>>2]=c;if(!g){break X}ma(g);break X}c=D[f+64>>2];b=D[f+68>>2];if((c|0)==b<<5){if((c+1|0)<0){break h}if(c>>>0<=1073741822){b=b<<6;c=c+32&-32;c=b>>>0>c>>>0?b:c}else{c=2147483647}Xa(a,c);c=D[f+64>>2]}D[f+64>>2]=c+1;b=D[f+60>>2]+(c>>>3&536870908)|0;g=D[b>>2];M=b,N=ji(c)&g,D[M>>2]=N;c=D[f+76>>2];if((c|0)!=D[f+80>>2]){D[c>>2]=n;D[f+76>>2]=c+4;break X}g=D[f+72>>2];b=c-g|0;i=b>>2;c=i+1|0;if(c>>>0>=1073741824){break g}e=b>>1;e=b>>>0<2147483644?c>>>0>>0?e:c:1073741823;if(e){if(e>>>0>=1073741824){break i}c=na(e<<2)}else{c=0}i=c+(i<<2)|0;D[i>>2]=n;if((b|0)>0){oa(c,g,b)}D[f+80>>2]=c+(e<<2);D[f+76>>2]=i+4;D[f+72>>2]=c;if(!g){break X}ma(g)}if((d|0)!=(j|0)){continue}break}i=D[f+8>>2]}if(((D[i+4>>2]-D[i>>2]>>2>>>0)/3|0)!=(v|0)){break j}h=D[i+28>>2]-D[i+24>>2]>>2;if((k|0)==(w|0)){k=w;break j}a=k;while(1){c=D[a>>2];g=D[i+24>>2];b=h-1|0;d=g+(b<<2)|0;if(D[d>>2]==-1){while(1){b=h-2|0;h=h-1|0;d=g+(b<<2)|0;if(D[d>>2]==-1){continue}break}}if(b>>>0>=c>>>0){D[m>>2]=i;d=D[d>>2];B[m+12|0]=1;D[m+8>>2]=d;D[m+4>>2]=d;if((d|0)!=-1){while(1){d=D[D[f+8>>2]>>2]+(d<<2)|0;if(D[d>>2]!=(b|0)){break k}D[d>>2]=c;kc(m);d=D[m+8>>2];if((d|0)!=-1){continue}break}i=D[f+8>>2]}g=D[i+24>>2];d=g+(b<<2)|0;if((c|0)!=-1){D[g+(c<<2)>>2]=D[d>>2]}D[d>>2]=-1;d=1<>2];c=g+(c>>>3&536870908)|0;g=g+(b>>>3&536870908)|0;b=1<>2]&b){d=d|D[c>>2]}else{d=D[c>>2]&(d^-1)}D[c>>2]=d;D[g>>2]=D[g>>2]&(b^-1);h=h-1|0}a=a+4|0;if((w|0)!=(a|0)){continue}break}break j}h=-1}if(k){ma(k)}a=D[m+48>>2];if(a){while(1){d=D[a>>2];ma(a);a=d;if(a){continue}break}}a=D[m+40>>2];D[m+40>>2]=0;if(a){ma(a)}if(j){D[m+68>>2]=j;ma(j)}$=m+96|0;a=h;break f}sa();T()}pa();T()}pa();T()}c=a;if((a|0)==-1){break e}a=D[H+16>>2];d=a+D[H>>2]|0;j=D[H+8>>2];j=j-a|0;a=D[D[f+4>>2]+32>>2];C[a+38>>1]=F[a+38>>1];D[a>>2]=d;D[a+16>>2]=0;D[a+20>>2]=0;D[a+8>>2]=j;D[a+12>>2]=0;$:{if(D[f+216>>2]==D[f+220>>2]){break $}a=D[f+8>>2];if(D[a+4>>2]==D[a>>2]){break $}d=0;while(1){if(xd(f,d)){d=d+3|0;a=D[f+8>>2];if(d>>>0>2]-D[a>>2]>>2>>>0){continue}break $}break}break e}if(E[f+308|0]){B[f+308|0]=0;d=D[f+292>>2];a=0;j=D[f+304>>2]+7|0;a=j>>>0<7?1:a;k=a>>>3|0;j=a<<29|j>>>3;a=j+D[f+288>>2]|0;b=d+k|0;D[f+288>>2]=a;D[f+292>>2]=a>>>0>>0?b+1|0:b}d=D[f+216>>2];if((d|0)!=D[f+220>>2]){while(1){j=J(A,144);Xc((j+d|0)+4|0,D[f+8>>2]);a=D[y>>2];k=a+j|0;d=D[k+132>>2];k=D[k+136>>2];if((d|0)!=(k|0)){while(1){Vc((j+D[y>>2]|0)+4|0,D[d>>2]);d=d+4|0;if((k|0)!=(d|0)){continue}break}a=D[y>>2]}Wc((a+j|0)+4|0);A=A+1|0;d=D[f+216>>2];if(A>>>0<(D[f+220>>2]-d|0)/144>>>0){continue}break}}a=D[f+8>>2];Hb(f+184|0,D[a+28>>2]-D[a+24>>2]>>2);k=D[f+216>>2];if((k|0)!=D[f+220>>2]){d=0;while(1){a=J(d,144)+k|0;j=D[a+60>>2]-D[a+56>>2]>>2;b=a+104|0;a=D[f+8>>2];a=D[a+28>>2]-D[a+24>>2]>>2;Hb(b,(a|0)<(j|0)?j:a);d=d+1|0;k=D[f+216>>2];if(d>>>0<(D[f+220>>2]-k|0)/144>>>0){continue}break}}A=wd(f,c)}}$=t- -64|0;return A|0}function of(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0;a:{b:{c:{d:{switch(d-1|0){case 0:a=0;m=$-16|0;$=m;j=D[b+80>>2];d=B[c+24|0];e:{if((J(j,d)|0)!=(e|0)){break e}a=D[c+28>>2]!=1;k=E[c+84|0];if(!(a|!k)){oa(f,D[D[c>>2]>>2]+D[c+48>>2]|0,e);a=1;break e}D[m+8>>2]=0;D[m>>2]=0;D[m+4>>2]=0;if(d){if((d|0)<0){break c}h=na(d);D[m>>2]=h;qa(h,0,d)}f:{g:{if(!j){break g}if(!a){if(d){n=d&-4;l=d&3;b=0;o=d-1>>>0<3;d=0;while(1){e=D[D[c>>2]>>2];t=D[c+40>>2];a=D[c+48>>2]+fi(t,D[c+44>>2],E[c+84|0]?d:D[D[c+68>>2]+(d<<2)>>2],0)|0;e=oa(h,e+a|0,t);k=0;a=0;g=0;if(!o){while(1){i=b+f|0;B[i|0]=E[a+e|0];B[i+1|0]=E[e+(a|1)|0];B[i+2|0]=E[e+(a|2)|0];B[i+3|0]=E[e+(a|3)|0];a=a+4|0;b=b+4|0;g=g+4|0;if((n|0)!=(g|0)){continue}break}}if(l){while(1){B[b+f|0]=E[a+e|0];a=a+1|0;b=b+1|0;k=k+1|0;if((l|0)!=(k|0)){continue}break}}a=1;d=d+1|0;if((j|0)!=(d|0)){continue}break}break f}l=D[c>>2];b=D[c+48>>2];o=D[c+68>>2];d=D[c+44>>2];c=D[c+40>>2];t=c;a=0;if((j|0)!=1){q=j&-2;while(1){e=a|1;p=D[l>>2];f=fi(c,d,k?a:D[o+(a<<2)>>2],0)+b|0;f=oa(h,p+f|0,t);p=D[l>>2];if(!k){e=D[o+(e<<2)>>2]}e=fi(c,d,e,0)+b|0;oa(f,e+p|0,t);a=a+2|0;g=g+2|0;if((q|0)!=(g|0)){continue}break}}if(!(j&1)){break g}e=D[l>>2];if(!k){a=D[o+(a<<2)>>2]}a=fi(c,d,a,0)+b|0;oa(h,a+e|0,t);break g}if(!d){a=0;i=1;while(1){if(!Db(c,E[c+84|0]?a:D[D[c+68>>2]+(a<<2)>>2],B[c+24|0],h)){break g}a=a+1|0;i=j>>>0>a>>>0;if((a|0)!=(j|0)){continue}break}break g}l=d&-4;g=d&3;b=0;n=d-1>>>0<3;i=1;d=0;while(1){if(!Db(c,E[c+84|0]?d:D[D[c+68>>2]+(d<<2)>>2],B[c+24|0],h)){break g}i=0;a=0;k=0;if(!n){while(1){e=b+f|0;B[e|0]=E[a+h|0];B[e+1|0]=E[(a|1)+h|0];B[e+2|0]=E[(a|2)+h|0];B[e+3|0]=E[(a|3)+h|0];a=a+4|0;b=b+4|0;k=k+4|0;if((l|0)!=(k|0)){continue}break}}if(g){while(1){B[b+f|0]=E[a+h|0];a=a+1|0;b=b+1|0;i=i+1|0;if((g|0)!=(i|0)){continue}break}}d=d+1|0;i=j>>>0>d>>>0;if((d|0)!=(j|0)){continue}break}a=d>>>0>=j>>>0;break f}a=i^1;if(!h){break e}}ma(h)}break b;case 2:a=0;m=$-16|0;$=m;g=B[c+24|0];d=g<<1;l=D[b+80>>2];h:{if((J(d,l)|0)!=(e|0)){break h}b=D[c+28>>2]!=3;n=E[c+84|0];if(!(b|!n)){oa(f,D[D[c>>2]>>2]+D[c+48>>2]|0,e);a=1;break h}D[m+8>>2]=0;D[m>>2]=0;D[m+4>>2]=0;if(g){if((g|0)<0){break c}h=na(d);D[m>>2]=h;qa(h,0,d)}i:{j:{if(!l){break j}if(!b){o=D[c>>2];e=D[c+48>>2];q=D[c+68>>2];j=D[c+44>>2];k=D[c+40>>2];p=k;if(g){v=g&-4;u=g&3;d=0;w=g-1>>>0<3;b=0;while(1){c=D[o>>2];a=fi(k,j,n?b:D[q+(b<<2)>>2],0)+e|0;g=oa(h,c+a|0,p);i=0;a=0;c=0;if(!w){while(1){r=(d<<1)+f|0;s=a<<1;C[r>>1]=F[s+g>>1];C[r+2>>1]=F[g+(s|2)>>1];C[r+4>>1]=F[g+(s|4)>>1];C[r+6>>1]=F[g+(s|6)>>1];a=a+4|0;d=d+4|0;c=c+4|0;if((v|0)!=(c|0)){continue}break}}if(u){while(1){C[(d<<1)+f>>1]=F[g+(a<<1)>>1];a=a+1|0;d=d+1|0;i=i+1|0;if((u|0)!=(i|0)){continue}break}}a=1;b=b+1|0;if((l|0)!=(b|0)){continue}break}break i}if((l|0)!=1){d=l&-2;g=0;while(1){b=a|1;f=D[o>>2];c=fi(k,j,n?a:D[q+(a<<2)>>2],0)+e|0;c=oa(h,f+c|0,p);f=D[o>>2];if(!n){b=D[q+(b<<2)>>2]}b=fi(k,j,b,0)+e|0;oa(c,b+f|0,p);a=a+2|0;g=g+2|0;if((d|0)!=(g|0)){continue}break}}if(!(l&1)){break j}b=D[o>>2];if(!n){a=D[q+(a<<2)>>2]}a=fi(k,j,a,0)+e|0;oa(h,a+b|0,p);break j}if(!g){i=1;while(1){if(!Bb(c,E[c+84|0]?a:D[D[c+68>>2]+(a<<2)>>2],B[c+24|0],h)){break j}a=a+1|0;i=l>>>0>a>>>0;if((a|0)!=(l|0)){continue}break}break j}n=g&-4;k=g&3;d=0;o=g-1>>>0<3;i=1;b=0;while(1){if(!Bb(c,E[c+84|0]?b:D[D[c+68>>2]+(b<<2)>>2],B[c+24|0],h)){break j}g=0;a=0;i=0;if(!o){while(1){e=(d<<1)+f|0;j=a<<1;C[e>>1]=F[j+h>>1];C[e+2>>1]=F[(j|2)+h>>1];C[e+4>>1]=F[(j|4)+h>>1];C[e+6>>1]=F[(j|6)+h>>1];a=a+4|0;d=d+4|0;i=i+4|0;if((n|0)!=(i|0)){continue}break}}if(k){while(1){C[(d<<1)+f>>1]=F[(a<<1)+h>>1];a=a+1|0;d=d+1|0;g=g+1|0;if((k|0)!=(g|0)){continue}break}}b=b+1|0;i=l>>>0>b>>>0;if((b|0)!=(l|0)){continue}break}a=b>>>0>=l>>>0;break i}a=!i;if(!h){break h}}ma(h)}break b;case 4:a=0;m=$-16|0;$=m;g=B[c+24|0];d=g<<2;l=D[b+80>>2];k:{if((J(d,l)|0)!=(e|0)){break k}b=D[c+28>>2]!=5;n=E[c+84|0];if(!(b|!n)){oa(f,D[D[c>>2]>>2]+D[c+48>>2]|0,e);a=1;break k}D[m+8>>2]=0;D[m>>2]=0;D[m+4>>2]=0;if(g){if((g|0)<0){break c}h=na(d);D[m>>2]=h;qa(h,0,d)}l:{m:{if(!l){break m}if(!b){o=D[c>>2];e=D[c+48>>2];q=D[c+68>>2];j=D[c+44>>2];k=D[c+40>>2];p=k;if(g){v=g&-4;u=g&3;d=0;w=g-1>>>0<3;b=0;while(1){c=D[o>>2];a=fi(k,j,n?b:D[q+(b<<2)>>2],0)+e|0;g=oa(h,c+a|0,p);i=0;a=0;c=0;if(!w){while(1){r=(d<<2)+f|0;s=a<<2;D[r>>2]=D[s+g>>2];D[r+4>>2]=D[g+(s|4)>>2];D[r+8>>2]=D[g+(s|8)>>2];D[r+12>>2]=D[g+(s|12)>>2];a=a+4|0;d=d+4|0;c=c+4|0;if((v|0)!=(c|0)){continue}break}}if(u){while(1){D[(d<<2)+f>>2]=D[g+(a<<2)>>2];a=a+1|0;d=d+1|0;i=i+1|0;if((u|0)!=(i|0)){continue}break}}a=1;b=b+1|0;if((l|0)!=(b|0)){continue}break}break l}if((l|0)!=1){d=l&-2;g=0;while(1){b=a|1;f=D[o>>2];c=fi(k,j,n?a:D[q+(a<<2)>>2],0)+e|0;c=oa(h,f+c|0,p);f=D[o>>2];if(!n){b=D[q+(b<<2)>>2]}b=fi(k,j,b,0)+e|0;oa(c,b+f|0,p);a=a+2|0;g=g+2|0;if((d|0)!=(g|0)){continue}break}}if(!(l&1)){break m}b=D[o>>2];if(!n){a=D[q+(a<<2)>>2]}a=fi(k,j,a,0)+e|0;oa(h,a+b|0,p);break m}if(!g){i=1;while(1){if(!zb(c,E[c+84|0]?a:D[D[c+68>>2]+(a<<2)>>2],B[c+24|0],h)){break m}a=a+1|0;i=l>>>0>a>>>0;if((a|0)!=(l|0)){continue}break}break m}n=g&-4;k=g&3;d=0;o=g-1>>>0<3;i=1;b=0;while(1){if(!zb(c,E[c+84|0]?b:D[D[c+68>>2]+(b<<2)>>2],B[c+24|0],h)){break m}g=0;a=0;i=0;if(!o){while(1){e=(d<<2)+f|0;j=a<<2;D[e>>2]=D[j+h>>2];D[e+4>>2]=D[(j|4)+h>>2];D[e+8>>2]=D[(j|8)+h>>2];D[e+12>>2]=D[(j|12)+h>>2];a=a+4|0;d=d+4|0;i=i+4|0;if((n|0)!=(i|0)){continue}break}}if(k){while(1){D[(d<<2)+f>>2]=D[(a<<2)+h>>2];a=a+1|0;d=d+1|0;g=g+1|0;if((k|0)!=(g|0)){continue}break}}b=b+1|0;i=l>>>0>b>>>0;if((b|0)!=(l|0)){continue}break}a=b>>>0>=l>>>0;break l}a=!i;if(!h){break k}}ma(h)}break b;case 1:a=0;m=$-16|0;$=m;j=D[b+80>>2];d=B[c+24|0];n:{if((J(j,d)|0)!=(e|0)){break n}a=D[c+28>>2]!=2;k=E[c+84|0];if(!(a|!k)){oa(f,D[D[c>>2]>>2]+D[c+48>>2]|0,e);a=1;break n}D[m+8>>2]=0;D[m>>2]=0;D[m+4>>2]=0;if(d){if((d|0)<0){break c}h=na(d);D[m>>2]=h;qa(h,0,d)}o:{p:{if(!j){break p}if(!a){if(d){n=d&-4;l=d&3;b=0;o=d-1>>>0<3;d=0;while(1){e=D[D[c>>2]>>2];t=D[c+40>>2];a=D[c+48>>2]+fi(t,D[c+44>>2],E[c+84|0]?d:D[D[c+68>>2]+(d<<2)>>2],0)|0;e=oa(h,e+a|0,t);k=0;a=0;g=0;if(!o){while(1){i=b+f|0;B[i|0]=E[a+e|0];B[i+1|0]=E[e+(a|1)|0];B[i+2|0]=E[e+(a|2)|0];B[i+3|0]=E[e+(a|3)|0];a=a+4|0;b=b+4|0;g=g+4|0;if((n|0)!=(g|0)){continue}break}}if(l){while(1){B[b+f|0]=E[a+e|0];a=a+1|0;b=b+1|0;k=k+1|0;if((l|0)!=(k|0)){continue}break}}a=1;d=d+1|0;if((j|0)!=(d|0)){continue}break}break o}l=D[c>>2];b=D[c+48>>2];o=D[c+68>>2];d=D[c+44>>2];c=D[c+40>>2];t=c;a=0;if((j|0)!=1){q=j&-2;while(1){e=a|1;p=D[l>>2];f=fi(c,d,k?a:D[o+(a<<2)>>2],0)+b|0;f=oa(h,p+f|0,t);p=D[l>>2];if(!k){e=D[o+(e<<2)>>2]}e=fi(c,d,e,0)+b|0;oa(f,e+p|0,t);a=a+2|0;g=g+2|0;if((q|0)!=(g|0)){continue}break}}if(!(j&1)){break p}e=D[l>>2];if(!k){a=D[o+(a<<2)>>2]}a=fi(c,d,a,0)+b|0;oa(h,a+e|0,t);break p}if(!d){a=0;i=1;while(1){if(!Cb(c,E[c+84|0]?a:D[D[c+68>>2]+(a<<2)>>2],B[c+24|0],h)){break p}a=a+1|0;i=j>>>0>a>>>0;if((a|0)!=(j|0)){continue}break}break p}l=d&-4;g=d&3;b=0;n=d-1>>>0<3;i=1;d=0;while(1){if(!Cb(c,E[c+84|0]?d:D[D[c+68>>2]+(d<<2)>>2],B[c+24|0],h)){break p}i=0;a=0;k=0;if(!n){while(1){e=b+f|0;B[e|0]=E[a+h|0];B[e+1|0]=E[(a|1)+h|0];B[e+2|0]=E[(a|2)+h|0];B[e+3|0]=E[(a|3)+h|0];a=a+4|0;b=b+4|0;k=k+4|0;if((l|0)!=(k|0)){continue}break}}if(g){while(1){B[b+f|0]=E[a+h|0];a=a+1|0;b=b+1|0;i=i+1|0;if((g|0)!=(i|0)){continue}break}}d=d+1|0;i=j>>>0>d>>>0;if((d|0)!=(j|0)){continue}break}a=d>>>0>=j>>>0;break o}a=i^1;if(!h){break n}}ma(h)}break b;case 3:a=0;m=$-16|0;$=m;g=B[c+24|0];d=g<<1;l=D[b+80>>2];q:{if((J(d,l)|0)!=(e|0)){break q}b=D[c+28>>2]!=4;n=E[c+84|0];if(!(b|!n)){oa(f,D[D[c>>2]>>2]+D[c+48>>2]|0,e);a=1;break q}D[m+8>>2]=0;D[m>>2]=0;D[m+4>>2]=0;if(g){if((g|0)<0){break c}h=na(d);D[m>>2]=h;qa(h,0,d)}r:{s:{if(!l){break s}if(!b){o=D[c>>2];e=D[c+48>>2];q=D[c+68>>2];j=D[c+44>>2];k=D[c+40>>2];p=k;if(g){v=g&-4;u=g&3;d=0;w=g-1>>>0<3;b=0;while(1){c=D[o>>2];a=fi(k,j,n?b:D[q+(b<<2)>>2],0)+e|0;g=oa(h,c+a|0,p);i=0;a=0;c=0;if(!w){while(1){r=(d<<1)+f|0;s=a<<1;C[r>>1]=F[s+g>>1];C[r+2>>1]=F[g+(s|2)>>1];C[r+4>>1]=F[g+(s|4)>>1];C[r+6>>1]=F[g+(s|6)>>1];a=a+4|0;d=d+4|0;c=c+4|0;if((v|0)!=(c|0)){continue}break}}if(u){while(1){C[(d<<1)+f>>1]=F[g+(a<<1)>>1];a=a+1|0;d=d+1|0;i=i+1|0;if((u|0)!=(i|0)){continue}break}}a=1;b=b+1|0;if((l|0)!=(b|0)){continue}break}break r}if((l|0)!=1){d=l&-2;g=0;while(1){b=a|1;f=D[o>>2];c=fi(k,j,n?a:D[q+(a<<2)>>2],0)+e|0;c=oa(h,f+c|0,p);f=D[o>>2];if(!n){b=D[q+(b<<2)>>2]}b=fi(k,j,b,0)+e|0;oa(c,b+f|0,p);a=a+2|0;g=g+2|0;if((d|0)!=(g|0)){continue}break}}if(!(l&1)){break s}b=D[o>>2];if(!n){a=D[q+(a<<2)>>2]}a=fi(k,j,a,0)+e|0;oa(h,a+b|0,p);break s}if(!g){i=1;while(1){if(!Ab(c,E[c+84|0]?a:D[D[c+68>>2]+(a<<2)>>2],B[c+24|0],h)){break s}a=a+1|0;i=l>>>0>a>>>0;if((a|0)!=(l|0)){continue}break}break s}n=g&-4;k=g&3;d=0;o=g-1>>>0<3;i=1;b=0;while(1){if(!Ab(c,E[c+84|0]?b:D[D[c+68>>2]+(b<<2)>>2],B[c+24|0],h)){break s}g=0;a=0;i=0;if(!o){while(1){e=(d<<1)+f|0;j=a<<1;C[e>>1]=F[j+h>>1];C[e+2>>1]=F[(j|2)+h>>1];C[e+4>>1]=F[(j|4)+h>>1];C[e+6>>1]=F[(j|6)+h>>1];a=a+4|0;d=d+4|0;i=i+4|0;if((n|0)!=(i|0)){continue}break}}if(k){while(1){C[(d<<1)+f>>1]=F[(a<<1)+h>>1];a=a+1|0;d=d+1|0;g=g+1|0;if((k|0)!=(g|0)){continue}break}}b=b+1|0;i=l>>>0>b>>>0;if((b|0)!=(l|0)){continue}break}a=b>>>0>=l>>>0;break r}a=!i;if(!h){break q}}ma(h)}break b;case 5:a=0;m=$-16|0;$=m;g=B[c+24|0];d=g<<2;l=D[b+80>>2];t:{if((J(d,l)|0)!=(e|0)){break t}b=D[c+28>>2]!=6;n=E[c+84|0];if(!(b|!n)){oa(f,D[D[c>>2]>>2]+D[c+48>>2]|0,e);a=1;break t}D[m+8>>2]=0;D[m>>2]=0;D[m+4>>2]=0;if(g){if((g|0)<0){break c}h=na(d);D[m>>2]=h;qa(h,0,d)}u:{v:{if(!l){break v}if(!b){o=D[c>>2];e=D[c+48>>2];q=D[c+68>>2];j=D[c+44>>2];k=D[c+40>>2];p=k;if(g){v=g&-4;u=g&3;d=0;w=g-1>>>0<3;b=0;while(1){c=D[o>>2];a=fi(k,j,n?b:D[q+(b<<2)>>2],0)+e|0;g=oa(h,c+a|0,p);i=0;a=0;c=0;if(!w){while(1){r=(d<<2)+f|0;s=a<<2;D[r>>2]=D[s+g>>2];D[r+4>>2]=D[g+(s|4)>>2];D[r+8>>2]=D[g+(s|8)>>2];D[r+12>>2]=D[g+(s|12)>>2];a=a+4|0;d=d+4|0;c=c+4|0;if((v|0)!=(c|0)){continue}break}}if(u){while(1){D[(d<<2)+f>>2]=D[g+(a<<2)>>2];a=a+1|0;d=d+1|0;i=i+1|0;if((u|0)!=(i|0)){continue}break}}a=1;b=b+1|0;if((l|0)!=(b|0)){continue}break}break u}if((l|0)!=1){d=l&-2;g=0;while(1){b=a|1;f=D[o>>2];c=fi(k,j,n?a:D[q+(a<<2)>>2],0)+e|0;c=oa(h,f+c|0,p);f=D[o>>2];if(!n){b=D[q+(b<<2)>>2]}b=fi(k,j,b,0)+e|0;oa(c,b+f|0,p);a=a+2|0;g=g+2|0;if((d|0)!=(g|0)){continue}break}}if(!(l&1)){break v}b=D[o>>2];if(!n){a=D[q+(a<<2)>>2]}a=fi(k,j,a,0)+e|0;oa(h,a+b|0,p);break v}if(!g){i=1;while(1){if(!yb(c,E[c+84|0]?a:D[D[c+68>>2]+(a<<2)>>2],B[c+24|0],h)){break v}a=a+1|0;i=l>>>0>a>>>0;if((a|0)!=(l|0)){continue}break}break v}n=g&-4;k=g&3;d=0;o=g-1>>>0<3;i=1;b=0;while(1){if(!yb(c,E[c+84|0]?b:D[D[c+68>>2]+(b<<2)>>2],B[c+24|0],h)){break v}g=0;a=0;i=0;if(!o){while(1){e=(d<<2)+f|0;j=a<<2;D[e>>2]=D[j+h>>2];D[e+4>>2]=D[(j|4)+h>>2];D[e+8>>2]=D[(j|8)+h>>2];D[e+12>>2]=D[(j|12)+h>>2];a=a+4|0;d=d+4|0;i=i+4|0;if((n|0)!=(i|0)){continue}break}}if(k){while(1){D[(d<<2)+f>>2]=D[(a<<2)+h>>2];a=a+1|0;d=d+1|0;g=g+1|0;if((k|0)!=(g|0)){continue}break}}b=b+1|0;i=l>>>0>b>>>0;if((b|0)!=(l|0)){continue}break}a=b>>>0>=l>>>0;break u}a=!i;if(!h){break t}}ma(h)}break b;case 8:break d;default:break a}}a=0;l=$-16|0;$=l;i=B[c+24|0];d=i<<2;g=D[b+80>>2];w:{if((J(d,g)|0)!=(e|0)){break w}e=D[c+28>>2];D[l+8>>2]=0;D[l>>2]=0;D[l+4>>2]=0;b=0;x:{y:{z:{A:{if(!i){break A}if((i|0)<0){break z}b=na(d);D[l>>2]=b;j=(i<<2)+b|0;D[l+8>>2]=j;a=b;d=d-4|0;m=(d>>>2|0)+1&7;if(m){while(1){D[a>>2]=-1073741824;a=a+4|0;h=h+1|0;if((m|0)!=(h|0)){continue}break}}if(d>>>0<28){break A}while(1){D[a+24>>2]=-1073741824;D[a+28>>2]=-1073741824;D[a+16>>2]=-1073741824;D[a+20>>2]=-1073741824;D[a+8>>2]=-1073741824;D[a+12>>2]=-1073741824;D[a>>2]=-1073741824;D[a+4>>2]=-1073741824;a=a+32|0;if((j|0)!=(a|0)){continue}break}}if(!g){break y}if((e|0)==9){a=0;n=D[c>>2];d=D[c+48>>2];t=D[c+68>>2];q=E[c+84|0];e=D[c+44>>2];j=D[c+40>>2];p=j;if((i|0)<=0){if((g|0)!=1){i=g&-2;c=0;while(1){f=a|1;m=D[n>>2];h=fi(j,e,q?a:D[t+(a<<2)>>2],0)+d|0;h=oa(b,m+h|0,p);m=D[n>>2];if(!q){f=D[t+(f<<2)>>2]}f=fi(j,e,f,0)+d|0;oa(h,f+m|0,p);a=a+2|0;c=c+2|0;if((i|0)!=(c|0)){continue}break}}if(!(g&1)){break y}c=D[n>>2];if(!q){a=D[t+(a<<2)>>2]}a=fi(j,e,a,0)+d|0;oa(b,a+c|0,p);break y}v=i&-4;s=i&3;h=0;w=i-1>>>0<3;i=0;while(1){c=D[n>>2];a=fi(j,e,q?i:D[t+(i<<2)>>2],0)+d|0;c=oa(b,c+a|0,p);m=0;a=0;u=0;if(!w){while(1){k=(h<<2)+f|0;r=a<<2;H[k>>2]=H[r+c>>2];H[k+4>>2]=H[c+(r|4)>>2];H[k+8>>2]=H[c+(r|8)>>2];H[k+12>>2]=H[c+(r|12)>>2];a=a+4|0;h=h+4|0;u=u+4|0;if((v|0)!=(u|0)){continue}break}}if(s){while(1){H[(h<<2)+f>>2]=H[c+(a<<2)>>2];a=a+1|0;h=h+1|0;m=m+1|0;if((s|0)!=(m|0)){continue}break}}a=1;i=i+1|0;if((g|0)!=(i|0)){continue}break}break x}k=1;if((i|0)<=0){a=0;while(1){if(!nb(c,E[c+84|0]?a:D[D[c+68>>2]+(a<<2)>>2],B[c+24|0],b)){break y}a=a+1|0;k=g>>>0>a>>>0;if((a|0)!=(g|0)){continue}break}break y}n=i&-4;j=i&3;h=0;o=i-1>>>0<3;i=0;while(1){if(!nb(c,E[c+84|0]?i:D[D[c+68>>2]+(i<<2)>>2],B[c+24|0],b)){break y}k=0;a=0;m=0;if(!o){while(1){d=(h<<2)+f|0;e=a<<2;H[d>>2]=H[e+b>>2];H[d+4>>2]=H[(e|4)+b>>2];H[d+8>>2]=H[(e|8)+b>>2];H[d+12>>2]=H[(e|12)+b>>2];a=a+4|0;h=h+4|0;m=m+4|0;if((n|0)!=(m|0)){continue}break}}if(j){while(1){H[(h<<2)+f>>2]=H[(a<<2)+b>>2];a=a+1|0;h=h+1|0;k=k+1|0;if((j|0)!=(k|0)){continue}break}}i=i+1|0;k=g>>>0>i>>>0;if((g|0)!=(i|0)){continue}break}a=g>>>0<=i>>>0;break x}pa();T()}a=k^1;if(!b){break w}}ma(b)}$=l+16|0;h=a&1;break a}pa();T()}$=m+16|0;h=a&1}return h|0}function yf(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,C=0,F=0,G=0,H=0,I=0,K=0,L=0,M=0;z=c;c=0;n=$-96|0;$=n;k=n+16|0;qa(k,0,76);D[n+92>>2]=-1;D[n+8>>2]=0;D[n>>2]=0;D[n+4>>2]=0;q=$-16|0;$=q;D[k+68>>2]=0;D[k+72>>2]=0;D[k>>2]=b;s=$-16|0;$=s;v=b;a=D[b+20>>2];a:{if((D[b+24>>2]-a|0)<=0){break a}a=D[a>>2];if((a|0)==-1){break a}c=D[D[v+8>>2]+(a<<2)>>2]}b:{c:{d:{if(!c){a=0;break d}a=D[v+100>>2];d=D[v+96>>2];D[s+8>>2]=0;D[s>>2]=0;D[s+4>>2]=0;e=a-d|0;b=(e|0)/12|0;e:{if((a|0)==(d|0)){break e}if(b>>>0>=357913942){break c}f=na(e);D[s>>2]=f;D[s+8>>2]=f+J(b,12);a=0;g=f;e=e-12|0;f=(e-((e>>>0)%12|0)|0)+12|0;e=qa(g,0,f);D[s+4>>2]=e+f;if(E[c+84|0]){c=b>>>0>1?b:1;g=c&1;if(b>>>0>=2){i=c&-2;c=0;while(1){f=J(a,12);b=f+d|0;h=D[b+4>>2];o=D[b>>2];f=e+f|0;D[f+8>>2]=D[b+8>>2];D[f>>2]=o;D[f+4>>2]=h;f=J(a|1,12);b=f+d|0;h=D[b+4>>2];o=D[b>>2];f=e+f|0;D[f+8>>2]=D[b+8>>2];D[f>>2]=o;D[f+4>>2]=h;a=a+2|0;c=c+2|0;if((i|0)!=(c|0)){continue}break}}if(!g){break e}b=J(a,12);a=b+d|0;c=D[a+4>>2];d=D[a>>2];b=b+e|0;D[b+8>>2]=D[a+8>>2];D[b>>2]=d;D[b+4>>2]=c;break e}g=b>>>0>1?b:1;a=D[c+68>>2];c=0;while(1){f=J(c,12);b=f+d|0;i=D[a+(D[b>>2]<<2)>>2];h=D[a+(D[b+4>>2]<<2)>>2];f=e+f|0;D[f+8>>2]=D[a+(D[b+8>>2]<<2)>>2];D[f+4>>2]=h;D[f>>2]=i;c=c+1|0;if((g|0)!=(c|0)){continue}break}}c=0;F=$-16|0;$=F;h=na(88);Wb(h);A=$-16|0;$=A;D[h+80>>2]=0;D[h+84>>2]=0;a=D[h+76>>2];D[h+76>>2]=0;if(a){ma(a)}D[h+68>>2]=0;D[h+72>>2]=0;b=h- -64|0;a=D[b>>2];D[b>>2]=0;if(a){ma(a)}d=D[s+4>>2];g=D[s>>2];b=(d-g|0)/12|0;a=J(b,3);f=D[h>>2];e=D[h+4>>2]-f>>2;f:{if(a>>>0>e>>>0){ra(h,a-e|0);d=D[s+4>>2];g=D[s>>2];b=(d-g|0)/12|0;break f}if(a>>>0>=e>>>0){break f}D[h+4>>2]=f+(a<<2)}g:{if((d|0)==(g|0)){break g}d=b>>>0>1?b:1;f=d&1;a=D[h>>2];if(b>>>0>=2){i=d&-2;b=0;while(1){d=J(c,12);o=d+a|0;e=d+g|0;D[o>>2]=D[e>>2];D[a+(d|4)>>2]=D[e+4>>2];D[o+8>>2]=D[e+8>>2];e=J(c|1,12);d=e+a|0;e=e+g|0;D[d>>2]=D[e>>2];D[d+4>>2]=D[e+4>>2];D[d+8>>2]=D[e+8>>2];c=c+2|0;b=b+2|0;if((i|0)!=(b|0)){continue}break}}if(!f){break g}b=J(c,12);a=b+a|0;b=b+g|0;D[a>>2]=D[b>>2];D[a+4>>2]=D[b+4>>2];D[a+8>>2]=D[b+8>>2]}D[A+12>>2]=-1;a=0;e=0;d=0;i=$-32|0;$=i;h:{i:{w=A+12|0;j:{if(!w){break j}b=D[h+4>>2];o=D[h>>2];c=b-o|0;j=c>>2;g=D[h+12>>2];f=D[h+16>>2]-g>>2;k:{if(j>>>0>f>>>0){xa(h+12|0,j-f|0,10228);b=D[h+4>>2];o=D[h>>2];c=b-o|0;j=c>>2;break k}if(f>>>0<=j>>>0){break k}D[h+16>>2]=g+(j<<2)}D[i+24>>2]=0;D[i+16>>2]=0;D[i+20>>2]=0;f=(b|0)==(o|0);if(!f){if((c|0)<0){break i}e=na(c);D[i+20>>2]=e;D[i+16>>2]=e;D[i+24>>2]=(j<<2)+e}l:{m:{n:{o:{p:{if(c){while(1){g=D[(a<<2)+o>>2];c=D[i+20>>2]-e>>2;q:{if(g>>>0>>0){break q}D[i>>2]=0;f=g+1|0;if(f>>>0>c>>>0){xa(i+16|0,f-c|0,i);o=D[h>>2];b=D[h+4>>2];e=D[i+16>>2];break q}if(c>>>0<=f>>>0){break q}D[i+20>>2]=(f<<2)+e}c=(g<<2)+e|0;D[c>>2]=D[c>>2]+1;a=a+1|0;c=b-o|0;j=c>>2;if(a>>>0>>0){continue}break}break p}c=0;if(!f){break o}break n}if((b|0)==(o|0)){c=0;break n}if(c>>>0>=2147483645){break m}}c=na(c<<1);qa(c,255,j<<3)}D[i+8>>2]=0;D[i>>2]=0;D[i+4>>2]=0;b=D[i+20>>2];a=b-e|0;t=a>>2;r:{s:{if((b|0)==(e|0)){break s}if((a|0)<0){break r}m=na(a);D[i>>2]=m;D[i+8>>2]=(t<<2)+m;b=qa(m,0,a);D[i+4>>2]=b+a;f=t>>>0>1?t:1;g=f&3;a=0;if(f-1>>>0>=3){r=f&-4;while(1){f=d<<2;D[f+b>>2]=a;x=f|4;a=D[e+f>>2]+a|0;D[x+b>>2]=a;u=f|8;a=a+D[e+x>>2]|0;D[u+b>>2]=a;f=f|12;a=a+D[e+u>>2]|0;D[f+b>>2]=a;a=a+D[e+f>>2]|0;d=d+4|0;p=p+4|0;if((r|0)!=(p|0)){continue}break}}if(!g){break s}while(1){f=d<<2;D[f+b>>2]=a;d=d+1|0;a=D[e+f>>2]+a|0;l=l+1|0;if((g|0)!=(l|0)){continue}break}}if(!j){break l}x=D[h+12>>2];f=0;while(1){G=f<<2;a=G+o|0;l=-1;g=f+1|0;b=(g>>>0)%3|0?g:f-2|0;if((b|0)!=-1){l=D[(b<<2)+o>>2]}b=D[a>>2];t:{u:{if(!((f>>>0)%3|0)){p=-1;a=f+2|0;if((a|0)!=-1){p=D[(a<<2)+o>>2]}if(!((b|0)==(l|0)|(b|0)==(p|0))&(l|0)!=(p|0)){break u}D[h+40>>2]=D[h+40>>2]+1;f=f+3|0;break t}p=D[a-4>>2]}a=p<<2;u=D[a+e>>2];v:{w:{if((u|0)<=0){break w}a=D[a+m>>2];d=0;while(1){r=(a<<3)+c|0;y=D[r>>2];if((y|0)==-1){break w}x:{if((l|0)!=(y|0)){break x}r=D[r+4>>2];if((r|0)!=-1){y=D[(r<<2)+o>>2]}else{y=-1}if((y|0)==(b|0)){break x}while(1){y:{b=a;d=d+1|0;if((u|0)<=(d|0)){break y}a=b+1|0;H=(a<<3)+c|0;y=D[H>>2];I=(b<<3)+c|0;D[I+4>>2]=D[H+4>>2];D[I>>2]=y;if((y|0)!=-1){continue}}break}D[(b<<3)+c>>2]=-1;if((r|0)==-1){break w}D[x+G>>2]=r;D[x+(r<<2)>>2]=f;break v}a=a+1|0;d=d+1|0;if((u|0)!=(d|0)){continue}break}}a=l<<2;l=D[a+e>>2];if((l|0)<=0){break v}a=D[a+m>>2];d=0;while(1){b=(a<<3)+c|0;if(D[b>>2]==-1){D[b>>2]=p;D[b+4>>2]=f;break v}a=a+1|0;d=d+1|0;if((l|0)!=(d|0)){continue}break}}f=g}if(j>>>0>f>>>0){continue}break}break l}break i}pa();T()}D[w>>2]=t;if(m){ma(m)}if(c){ma(c)}a=D[i+16>>2];if(!a){break j}D[i+20>>2]=a;ma(a)}$=i+32|0;x=(w|0)!=0;if(x){l=$-32|0;$=l;m=D[h>>2];a=D[h+4>>2];D[l+24>>2]=0;D[l+16>>2]=0;D[l+20>>2]=0;z:{if((a|0)==(m|0)){break z}d=a-m|0;if((d|0)<0){break i}b=d>>2;e=b-1>>>5|0;f=e+1|0;c=na(f<<2);D[l+24>>2]=f;D[l+16>>2]=c;D[l+20>>2]=b;D[c+((d>>>0<132?0:e)<<2)>>2]=0;d=c;c=b>>>5<<2;d=qa(d,0,c);if((b|0)==(b&-32)){break z}c=c+d|0;D[c>>2]=D[c>>2]&(-1>>>32-(b&31)^-1)}D[l+8>>2]=0;D[l>>2]=0;while(1){A:{r=0;o=0;if((a|0)==(m|0)){break A}while(1){b=D[l+16>>2];B:{if(D[b+(o>>>3&536870908)>>2]>>>o&1){break B}e=D[l>>2];D[l+4>>2]=e;c=D[h+12>>2];a=o;while(1){C:{d=a+1|0;i=a;a=(d>>>0)%3|0?d:a-2|0;if((a|0)==-1){break C}a=D[c+(a<<2)>>2];if((a|0)==-1){break C}d=a+1|0;a=(d>>>0)%3|0?d:a-2|0;if((o|0)==(a|0)|(a|0)==-1){break C}if(!(D[b+(a>>>3&536870908)>>2]>>>a&1)){continue}}break}d=i;D:{E:{F:{while(1){a=D[l+16>>2]+(d>>>3&536870908)|0;D[a>>2]=D[a>>2]|1<>>0)%3|0?a:d-2|0;m=D[h>>2];u=(d>>>0)%3|0;b=(u?-1:2)+d|0;j=D[l>>2];G:{if((j|0)==(e|0)){break G}w=D[(g<<2)+m>>2];p=D[h+12>>2];a=j;if((b|0)!=-1){c=p+(b<<2)|0;while(1){H:{if((w|0)!=D[a>>2]){break H}f=D[a+4>>2];t=D[c>>2];if((f|0)==(t|0)){break H}e=-1;c=b;a=-1;if((f|0)==-1){break D}break E}a=a+8|0;if((e|0)!=(a|0)){continue}break}break G}while(1){if((w|0)==D[a>>2]){t=-1;c=-1;f=D[a+4>>2];if((f|0)!=-1){break E}}a=a+8|0;if((e|0)!=(a|0)){continue}break}}f=D[(b<<2)+m>>2];I:{if(D[l+8>>2]!=(e|0)){D[e>>2]=f;D[e+4>>2]=g;e=e+8|0;D[l+4>>2]=e;break I}b=e-j|0;e=b>>3;a=e+1|0;if(a>>>0>=536870912){break i}c=b>>2;c=b>>>0<2147483640?a>>>0>>0?c:a:536870911;if(c){if(c>>>0>=536870912){break F}a=na(c<<3)}else{a=0}e=a+(e<<3)|0;D[e>>2]=f;D[e+4>>2]=g;e=e+8|0;if((b|0)>0){oa(a,j,b)}D[l+8>>2]=a+(c<<3);D[l+4>>2]=e;D[l>>2]=a;if(!j){break I}ma(j)}J:{K:{if(u){a=d-1|0;break K}a=d+2|0;if((a|0)==-1){break J}}a=D[D[h+12>>2]+(a<<2)>>2];if((a|0)==-1){break J}d=a+((a>>>0)%3|0?-1:2)|0;if((i|0)==(d|0)){break J}if((d|0)!=-1){continue}}break}m=D[h>>2];break B}sa();T()}b=c;e=f;a=D[p+(e<<2)>>2]}if((t|0)!=-1){D[p+(t<<2)>>2]=-1}if((a|0)!=-1){D[D[h+12>>2]+(a<<2)>>2]=-1}a=D[h+12>>2];D[a+(b<<2)>>2]=-1;D[a+(e<<2)>>2]=-1;r=1}o=o+1|0;a=D[h+4>>2];if(o>>>0>2>>>0){continue}break}if(r){continue}}break}a=D[l>>2];if(a){ma(a)}a=D[l+16>>2];if(a){ma(a)}$=l+32|0;c=0;f=0;l=0;i=$-32|0;$=i;a=D[A+12>>2];D[h+36>>2]=a;o=h+24|0;d=D[h+24>>2];b=D[h+28>>2]-d>>2;L:{M:{if(b>>>0>>0){xa(o,a-b|0,10228);D[i+24>>2]=0;D[i+16>>2]=0;D[i+20>>2]=0;break M}if(a>>>0>>0){D[h+28>>2]=d+(a<<2)}D[i+24>>2]=0;D[i+16>>2]=0;D[i+20>>2]=0;if(!a){break L}}if((a|0)<0){break i}b=a-1>>>5|0;d=b+1|0;c=na(d<<2);D[i+24>>2]=d;D[i+16>>2]=c;D[i+20>>2]=a;D[((a>>>0<33?0:b)<<2)+c>>2]=0;b=a>>>5<<2;d=qa(c,0,b);if((a&-32)==(a|0)){break L}b=b+d|0;D[b>>2]=D[b>>2]&(-1>>>32-(a&31)^-1)}j=D[h>>2];e=D[h+4>>2];D[i+8>>2]=0;D[i>>2]=0;D[i+4>>2]=0;d=e-j|0;N:{if((e|0)==(j|0)){break N}if((d|0)<0){break i}b=d>>2;g=b-1>>>5|0;m=g+1|0;f=na(m<<2);D[i+8>>2]=m;D[i>>2]=f;D[i+4>>2]=b;D[((d>>>0<132?0:g)<<2)+f>>2]=0;g=b>>>5<<2;m=qa(f,0,g);if((b|0)==(b&-32)){break N}g=g+m|0;D[g>>2]=D[g>>2]&(-1>>>32-(b&31)^-1)}if(d>>>0>=12){O:{P:{while(1){p=J(l,3);d=(p<<2)+j|0;b=D[d>>2];g=-1;m=p+1|0;if((m|0)!=-1){g=D[(m<<2)+j>>2]}Q:{if((b|0)==(g|0)){break Q}m=b;b=D[d+8>>2];if((m|0)==(b|0)){break Q}m=0;if((b|0)==(g|0)){break Q}while(1){b=m+p|0;if(!(D[(b>>>3&536870908)+f>>2]>>>b&1)){d=D[(b<<2)+j>>2];g=1<>>5|0;t=g&D[(j<<2)+c>>2];if(t){c=D[h+28>>2];R:{if((c|0)!=D[h+32>>2]){D[c>>2]=-1;D[h+28>>2]=c+4;break R}f=D[o>>2];e=c-f|0;j=e>>2;c=j+1|0;if(c>>>0>=1073741824){break i}g=e>>1;g=e>>>0<2147483644?c>>>0>>0?g:c:1073741823;if(g){if(g>>>0>=1073741824){break P}c=na(g<<2)}else{c=0}j=c+(j<<2)|0;D[j>>2]=-1;if((e|0)>0){oa(c,f,e)}D[h+32>>2]=c+(g<<2);D[h+28>>2]=j+4;D[h+24>>2]=c;if(!f){break R}ma(f)}c=D[h+52>>2];S:{if((c|0)!=D[h+56>>2]){D[c>>2]=d;D[h+52>>2]=c+4;break S}f=D[h+48>>2];e=c-f|0;j=e>>2;c=j+1|0;if(c>>>0>=1073741824){break i}g=e>>1;g=e>>>0<2147483644?c>>>0>>0?g:c:1073741823;if(g){if(g>>>0>=1073741824){break P}c=na(g<<2)}else{c=0}j=c+(j<<2)|0;D[j>>2]=d;if((e|0)>0){oa(c,f,e)}D[h+56>>2]=c+(g<<2);D[h+52>>2]=j+4;D[h+48>>2]=c;if(!f){break S}ma(f)}g=D[i+20>>2];c=D[i+24>>2];if((g|0)==c<<5){if((g+1|0)<0){break i}d=i+16|0;if(g>>>0<=1073741822){c=c<<6;e=g+32&-32;c=c>>>0>e>>>0?c:e}else{c=2147483647}Xa(d,c);g=D[i+20>>2]}D[i+20>>2]=g+1;c=D[i+16>>2]+(g>>>3&536870908)|0;d=D[c>>2];L=c,M=ji(g)&d,D[L>>2]=M;g=1<>>5|0;d=a;a=a+1|0}e=a;c=D[i+16>>2];a=c+(j<<2)|0;D[a>>2]=D[a>>2]|g;w=D[h+24>>2]+(d<<2)|0;r=D[h+12>>2];j=D[h>>2];f=D[i>>2];a=b;T:{U:{V:{while(1){if((a|0)==-1){break V}g=(a>>>3&536870908)+f|0;D[g>>2]=D[g>>2]|1<>2]=a;if(t){D[(a<<2)+j>>2]=d}u=a+1|0;a=(u>>>0)%3|0?u:a-2|0;g=-1;W:{if((a|0)==-1){break W}a=D[r+(a<<2)>>2];g=-1;if((a|0)==-1){break W}g=a+1|0;g=(g>>>0)%3|0?g:a-2|0}a=g;if((b|0)!=(a|0)){continue}break}if((b|0)!=-1){break T}a=1;break U}if((b>>>0)%3|0){a=b-1|0;break U}a=b+2|0;if((a|0)==-1){break T}}a=D[r+(a<<2)>>2];if((a|0)==-1){break T}X:{if((a>>>0)%3|0){a=a-1|0;break X}a=a+2|0;if((a|0)==-1){break T}}b=D[h+12>>2];j=D[h>>2];f=D[i>>2];while(1){g=(a>>>3&536870908)+f|0;D[g>>2]=D[g>>2]|1<>2]=d}Y:{if((a>>>0)%3|0){a=a-1|0;break Y}a=a+2|0;if((a|0)==-1){break T}}a=D[b+(a<<2)>>2];if((a|0)==-1){break T}a=a+((a>>>0)%3|0?-1:2)|0;if((a|0)!=-1){continue}break}}a=e}m=m+1|0;if((m|0)!=3){continue}break}j=D[h>>2];e=D[h+4>>2]}l=l+1|0;if(l>>>0<(e-j>>2>>>0)/3>>>0){continue}break}break O}sa();T()}c=D[i+16>>2]}a=0;D[h+44>>2]=0;b=D[i+20>>2];if(b){d=b&31;b=(b>>>3&536870908)+c|0;g=c;f=0;while(1){if(!(D[g>>2]>>>a&1)){f=f+1|0;D[h+44>>2]=f}e=(a|0)==31;a=e?0:a+1|0;g=(e<<2)+g|0;if((b|0)!=(g|0)|(a|0)!=(d|0)){continue}break}}a=D[i>>2];if(a){ma(a);c=D[i+16>>2]}if(c){ma(c)}$=i+32|0}$=A+16|0;if(!x){D[F+8>>2]=0;cb(h);h=0}$=F+16|0;a=h;break h}pa();T()}b=D[s>>2];if(!b){break d}D[s+4>>2]=b;ma(b)}$=s+16|0;break b}pa();T()}c=D[k+4>>2];b=a;D[k+4>>2]=a;if(c){cb(c);b=D[k+4>>2]}Z:{if(!b){break Z}a=D[v+100>>2];c=D[v+96>>2];B[q+12|0]=0;Ha(k+56|0,(a-c|0)/12|0,q+12|0);a=D[v+100>>2];c=D[v+96>>2];if((a|0)==(c|0)){break Z}while(1){if(!(D[D[k+56>>2]+(C>>>3&536870908)>>2]>>>C&1)){a=J(C,3);Tb(k,0,a);c=D[k+8>>2];d=D[k+12>>2];Tb(k,1,a+1|0);e=D[k+20>>2];f=D[k+24>>2];Tb(k,2,a+2|0);g=(c|0)==(d|0)?-1:0;a=f-e>>2;c=d-c>>2;d=a>>>0>c>>>0;c=D[k+36>>2]-D[k+32>>2]>>2>>>0>(d?a:c)>>>0?2:d?1:g;_:{if(D[k+68>>2]<=0){break _}D[q+12>>2]=D[k+76>>2];D[q+8>>2]=n;Ta(q+8|0,q+12|0);a=D[((c<<2)+k|0)+44>>2];if((a|0)<0){a=-1}else{d=(a>>>0)/3|0;a=D[(D[D[k>>2]+96>>2]+J(d,12)|0)+(a-J(d,3)<<2)>>2]}D[q+12>>2]=a;D[q+8>>2]=n;Ta(q+8|0,q+12|0);d=D[k+72>>2];D[k+72>>2]=d+2;if(!(d&1)){break _}D[q+12>>2]=a;D[q+8>>2]=n;Ta(q+8|0,q+12|0);D[k+72>>2]=D[k+72>>2]+1}f=0;d=$-16|0;$=d;D[k+68>>2]=D[k+68>>2]+1;a=J(c,12)+k|0;a=D[a+12>>2]-D[a+8>>2]|0;if((a|0)>0){a=a>>>2|0;g=a>>>0>1?a:1;c=D[((c<<2)+k|0)+44>>2];while(1){a=c;e=(a>>>0)/3|0;i=(a|0)==-1;c=i?-1:e;h=D[k+56>>2]+(c>>>3&536870908)|0;D[h>>2]=D[h>>2]|1<>2]=D[k+72>>2]+1;$:{aa:{ba:{ca:{da:{if(!f){D[d+12>>2]=(a|0)<0?-1:D[(D[D[k>>2]+96>>2]+J(e,12)|0)+((a>>>0)%3<<2)>>2];D[d+8>>2]=n;Ta(d+8|0,d+12|0);if(i){break da}c=-1;e=a+1|0;e=(e>>>0)%3|0?e:a-2|0;if((e|0)>=0){i=(e>>>0)/3|0;e=D[(D[D[k>>2]+96>>2]+J(i,12)|0)+(e-J(i,3)<<2)>>2]}else{e=-1}D[d+12>>2]=e;D[d+8>>2]=n;Ta(d+8|0,d+12|0);e=((a>>>0)%3|0?-1:2)+a|0;if((e|0)<0){break ca}c=(e>>>0)/3|0;c=D[(D[D[k>>2]+96>>2]+J(c,12)|0)+(e-J(c,3)<<2)>>2];break ca}c=(a|0)<0?-1:D[(D[D[k>>2]+96>>2]+J(e,12)|0)+((a>>>0)%3<<2)>>2];D[k+76>>2]=c;D[d+12>>2]=c;D[d+8>>2]=n;Ta(d+8|0,d+12|0);if(f&1){c=-1;if((a|0)==-1){break $}if((J(e,3)|0)!=(a|0)){a=a-1|0;break aa}a=a+2|0;break ba}c=-1;if((a|0)==-1){break $}c=a+1|0;a=(c>>>0)%3|0?c:a-2|0;break ba}c=-1;D[d+12>>2]=-1;D[d+8>>2]=n;Ta(d+8|0,d+12|0)}D[k+76>>2]=c;D[d+12>>2]=c;D[d+8>>2]=n;Ta(d+8|0,d+12|0)}c=-1;if((a|0)==-1){break $}}c=D[D[D[k+4>>2]+12>>2]+(a<<2)>>2]}f=f+1|0;if((g|0)!=(f|0)){continue}break}}$=d+16|0;c=D[v+96>>2];a=D[v+100>>2]}C=C+1|0;if(C>>>0<(a-c|0)/12>>>0){continue}break}}$=q+16|0;ea:{if(b){a=D[z>>2];if(a){D[z+4>>2]=a;ma(a)}D[z>>2]=D[n>>2];D[z+4>>2]=D[n+4>>2];D[z+8>>2]=D[n+8>>2];K=D[n+84>>2];break ea}a=D[n>>2];if(!a){break ea}D[n+4>>2]=a;ma(a)}a=D[n+72>>2];if(a){ma(a)}a=D[n+48>>2];if(a){D[n+52>>2]=a;ma(a)}a=D[n+36>>2];if(a){D[n+40>>2]=a;ma(a)}a=D[n+24>>2];if(a){D[n+28>>2]=a;ma(a)}a=D[n+20>>2];D[n+20>>2]=0;if(a){cb(a)}$=n+96|0;return K|0}function Ic(a){a=a|0;var b=0,c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0;l=$-16|0;$=l;a:{b:{c:{d:{e:{f:{g:{h:{i:{j:{k:{if(a>>>0<=244){e=D[2936];h=a>>>0<11?16:a+11&-8;c=h>>>3|0;b=e>>>c|0;if(b&3){c=c+((b^-1)&1)|0;a=c<<3;b=a+11784|0;d=D[a+11792>>2];a=D[d+8>>2];l:{if((b|0)==(a|0)){m=11744,n=ji(c)&e,D[m>>2]=n;break l}D[a+12>>2]=b;D[b+8>>2]=a}a=d+8|0;b=c<<3;D[d+4>>2]=b|3;b=b+d|0;D[b+4>>2]=D[b+4>>2]|1;break a}k=D[2938];if(k>>>0>=h>>>0){break k}if(b){a=2<>>12&16;c=a;b=b>>>a|0;a=b>>>5&8;c=c|a;b=b>>>a|0;a=b>>>2&4;c=c|a;b=b>>>a|0;a=b>>>1&2;c=c|a;b=b>>>a|0;a=b>>>1&1;d=(c|a)+(b>>>a|0)|0;a=d<<3;b=a+11784|0;g=D[a+11792>>2];a=D[g+8>>2];m:{if((b|0)==(a|0)){e=ji(d)&e;D[2936]=e;break m}D[a+12>>2]=b;D[b+8>>2]=a}D[g+4>>2]=h|3;c=g+h|0;a=d<<3;d=a-h|0;D[c+4>>2]=d|1;D[a+g>>2]=d;if(k){b=(k&-8)+11784|0;f=D[2941];a=1<<(k>>>3);n:{if(!(a&e)){D[2936]=a|e;a=b;break n}a=D[b+8>>2]}D[b+8>>2]=f;D[a+12>>2]=f;D[f+12>>2]=b;D[f+8>>2]=a}a=g+8|0;D[2941]=c;D[2938]=d;break a}j=D[2937];if(!j){break k}b=(0-j&j)-1|0;a=b>>>12&16;c=a;b=b>>>a|0;a=b>>>5&8;c=c|a;b=b>>>a|0;a=b>>>2&4;c=c|a;b=b>>>a|0;a=b>>>1&2;c=c|a;b=b>>>a|0;a=b>>>1&1;c=D[((c|a)+(b>>>a|0)<<2)+12048>>2];f=(D[c+4>>2]&-8)-h|0;b=c;while(1){o:{a=D[b+16>>2];if(!a){a=D[b+20>>2];if(!a){break o}}b=(D[a+4>>2]&-8)-h|0;d=b>>>0>>0;f=d?b:f;c=d?a:c;b=a;continue}break}i=D[c+24>>2];d=D[c+12>>2];if((d|0)!=(c|0)){a=D[c+8>>2];D[a+12>>2]=d;D[d+8>>2]=a;break b}b=c+20|0;a=D[b>>2];if(!a){a=D[c+16>>2];if(!a){break j}b=c+16|0}while(1){g=b;d=a;b=a+20|0;a=D[b>>2];if(a){continue}b=d+16|0;a=D[d+16>>2];if(a){continue}break}D[g>>2]=0;break b}h=-1;if(a>>>0>4294967231){break k}a=a+11|0;h=a&-8;j=D[2937];if(!j){break k}f=0-h|0;e=0;p:{if(h>>>0<256){break p}e=31;if(h>>>0>16777215){break p}a=a>>>8|0;g=a+1048320>>>16&8;a=a<>>16&4;a=a<>>16&2;a=(a<>>15|0)-(b|(c|g))|0;e=(a<<1|h>>>a+21&1)+28|0}b=D[(e<<2)+12048>>2];q:{r:{s:{if(!b){a=0;break s}a=0;c=h<<((e|0)==31?0:25-(e>>>1|0)|0);while(1){t:{g=(D[b+4>>2]&-8)-h|0;if(g>>>0>=f>>>0){break t}d=b;f=g;if(f){break t}f=0;a=b;break r}g=D[b+20>>2];b=D[((c>>>29&4)+b|0)+16>>2];a=g?(g|0)==(b|0)?a:g:a;c=c<<1;if(b){continue}break}}if(!(a|d)){d=0;a=2<>>12&16;c=a;b=b>>>a|0;a=b>>>5&8;c=c|a;b=b>>>a|0;a=b>>>2&4;c=c|a;b=b>>>a|0;a=b>>>1&2;c=c|a;b=b>>>a|0;a=b>>>1&1;a=D[((c|a)+(b>>>a|0)<<2)+12048>>2]}if(!a){break q}}while(1){b=(D[a+4>>2]&-8)-h|0;c=b>>>0>>0;f=c?b:f;d=c?a:d;b=D[a+16>>2];if(b){a=b}else{a=D[a+20>>2]}if(a){continue}break}}if(!d|D[2938]-h>>>0<=f>>>0){break k}e=D[d+24>>2];c=D[d+12>>2];if((d|0)!=(c|0)){a=D[d+8>>2];D[a+12>>2]=c;D[c+8>>2]=a;break c}b=d+20|0;a=D[b>>2];if(!a){a=D[d+16>>2];if(!a){break i}b=d+16|0}while(1){g=b;c=a;b=a+20|0;a=D[b>>2];if(a){continue}b=c+16|0;a=D[c+16>>2];if(a){continue}break}D[g>>2]=0;break c}c=D[2938];if(c>>>0>=h>>>0){d=D[2941];b=c-h|0;u:{if(b>>>0>=16){D[2938]=b;a=d+h|0;D[2941]=a;D[a+4>>2]=b|1;D[c+d>>2]=b;D[d+4>>2]=h|3;break u}D[2941]=0;D[2938]=0;D[d+4>>2]=c|3;a=c+d|0;D[a+4>>2]=D[a+4>>2]|1}a=d+8|0;break a}i=D[2939];if(i>>>0>h>>>0){b=i-h|0;D[2939]=b;c=D[2942];a=c+h|0;D[2942]=a;D[a+4>>2]=b|1;D[c+4>>2]=h|3;a=c+8|0;break a}a=0;j=h+47|0;if(D[3054]){c=D[3056]}else{D[3057]=-1;D[3058]=-1;D[3055]=4096;D[3056]=4096;D[3054]=l+12&-16^1431655768;D[3059]=0;D[3047]=0;c=4096}g=j+c|0;f=0-c|0;b=g&f;if(b>>>0<=h>>>0){break a}d=D[3046];if(d){c=D[3044];e=c+b|0;if(d>>>0>>0|c>>>0>=e>>>0){break a}}if(E[12188]&4){break f}v:{w:{d=D[2942];if(d){a=12192;while(1){c=D[a>>2];if(c>>>0<=d>>>0&d>>>0>2]>>>0){break w}a=D[a+8>>2];if(a){continue}break}}c=_a(0);if((c|0)==-1){break g}e=b;d=D[3055];a=d-1|0;if(a&c){e=(b-c|0)+(a+c&0-d)|0}if(e>>>0<=h>>>0|e>>>0>2147483646){break g}d=D[3046];if(d){a=D[3044];f=a+e|0;if(d>>>0>>0|a>>>0>=f>>>0){break g}}a=_a(e);if((c|0)!=(a|0)){break v}break e}e=f&g-i;if(e>>>0>2147483646){break g}c=_a(e);if((c|0)==(D[a>>2]+D[a+4>>2]|0)){break h}a=c}if(!((a|0)==-1|h+48>>>0<=e>>>0)){c=D[3056];c=c+(j-e|0)&0-c;if(c>>>0>2147483646){c=a;break e}if((_a(c)|0)!=-1){e=c+e|0;c=a;break e}_a(0-e|0);break g}c=a;if((a|0)!=-1){break e}break g}d=0;break b}c=0;break c}if((c|0)!=-1){break e}}D[3047]=D[3047]|4}if(b>>>0>2147483646){break d}c=_a(b);a=_a(0);if((c|0)==-1|(a|0)==-1|a>>>0<=c>>>0){break d}e=a-c|0;if(e>>>0<=h+40>>>0){break d}}a=D[3044]+e|0;D[3044]=a;if(a>>>0>G[3045]){D[3045]=a}x:{y:{z:{g=D[2942];if(g){a=12192;while(1){d=D[a>>2];b=D[a+4>>2];if((d+b|0)==(c|0)){break z}a=D[a+8>>2];if(a){continue}break}break y}a=D[2940];if(!(a>>>0<=c>>>0?a:0)){D[2940]=c}a=0;D[3049]=e;D[3048]=c;D[2944]=-1;D[2945]=D[3054];D[3051]=0;while(1){d=a<<3;b=d+11784|0;D[d+11792>>2]=b;D[d+11796>>2]=b;a=a+1|0;if((a|0)!=32){continue}break}d=e-40|0;a=c+8&7?-8-c&7:0;b=d-a|0;D[2939]=b;a=a+c|0;D[2942]=a;D[a+4>>2]=b|1;D[(c+d|0)+4>>2]=40;D[2943]=D[3058];break x}if(E[a+12|0]&8|d>>>0>g>>>0|c>>>0<=g>>>0){break y}D[a+4>>2]=b+e;a=g+8&7?-8-g&7:0;c=a+g|0;D[2942]=c;b=D[2939]+e|0;a=b-a|0;D[2939]=a;D[c+4>>2]=a|1;D[(b+g|0)+4>>2]=40;D[2943]=D[3058];break x}if(G[2940]>c>>>0){D[2940]=c}b=c+e|0;a=12192;A:{B:{C:{D:{E:{F:{while(1){if((b|0)!=D[a>>2]){a=D[a+8>>2];if(a){continue}break F}break}if(!(E[a+12|0]&8)){break E}}a=12192;while(1){b=D[a>>2];if(b>>>0<=g>>>0){f=b+D[a+4>>2]|0;if(f>>>0>g>>>0){break D}}a=D[a+8>>2];continue}}D[a>>2]=c;D[a+4>>2]=D[a+4>>2]+e;j=(c+8&7?-8-c&7:0)+c|0;D[j+4>>2]=h|3;e=b+(b+8&7?-8-b&7:0)|0;i=h+j|0;a=e-i|0;if((e|0)==(g|0)){D[2942]=i;a=D[2939]+a|0;D[2939]=a;D[i+4>>2]=a|1;break B}if(D[2941]==(e|0)){D[2941]=i;a=D[2938]+a|0;D[2938]=a;D[i+4>>2]=a|1;D[a+i>>2]=a;break B}f=D[e+4>>2];if((f&3)==1){g=f&-8;G:{if(f>>>0<=255){d=D[e+8>>2];b=f>>>3|0;c=D[e+12>>2];if((c|0)==(d|0)){m=11744,n=D[2936]&ji(b),D[m>>2]=n;break G}D[d+12>>2]=c;D[c+8>>2]=d;break G}h=D[e+24>>2];c=D[e+12>>2];H:{if((e|0)!=(c|0)){b=D[e+8>>2];D[b+12>>2]=c;D[c+8>>2]=b;break H}I:{f=e+20|0;b=D[f>>2];if(b){break I}f=e+16|0;b=D[f>>2];if(b){break I}c=0;break H}while(1){d=f;c=b;f=b+20|0;b=D[f>>2];if(b){continue}f=c+16|0;b=D[c+16>>2];if(b){continue}break}D[d>>2]=0}if(!h){break G}d=D[e+28>>2];b=(d<<2)+12048|0;J:{if(D[b>>2]==(e|0)){D[b>>2]=c;if(c){break J}m=11748,n=D[2937]&ji(d),D[m>>2]=n;break G}D[h+(D[h+16>>2]==(e|0)?16:20)>>2]=c;if(!c){break G}}D[c+24>>2]=h;b=D[e+16>>2];if(b){D[c+16>>2]=b;D[b+24>>2]=c}b=D[e+20>>2];if(!b){break G}D[c+20>>2]=b;D[b+24>>2]=c}e=e+g|0;f=D[e+4>>2];a=a+g|0}D[e+4>>2]=f&-2;D[i+4>>2]=a|1;D[a+i>>2]=a;if(a>>>0<=255){b=(a&-8)+11784|0;c=D[2936];a=1<<(a>>>3);K:{if(!(c&a)){D[2936]=a|c;a=b;break K}a=D[b+8>>2]}D[b+8>>2]=i;D[a+12>>2]=i;D[i+12>>2]=b;D[i+8>>2]=a;break B}f=31;if(a>>>0<=16777215){b=a>>>8|0;f=b+1048320>>>16&8;b=b<>>16&4;b=b<>>16&2;b=(b<>>15|0)-(c|(d|f))|0;f=(b<<1|a>>>b+21&1)+28|0}D[i+28>>2]=f;D[i+16>>2]=0;D[i+20>>2]=0;b=(f<<2)+12048|0;d=D[2937];c=1<>2]=i;break L}f=a<<((f|0)==31?0:25-(f>>>1|0)|0);c=D[b>>2];while(1){b=c;if((D[b+4>>2]&-8)==(a|0)){break C}c=f>>>29|0;f=f<<1;d=(c&4)+b|0;c=D[d+16>>2];if(c){continue}break}D[d+16>>2]=i}D[i+24>>2]=b;D[i+12>>2]=i;D[i+8>>2]=i;break B}d=e-40|0;a=c+8&7?-8-c&7:0;b=d-a|0;D[2939]=b;a=a+c|0;D[2942]=a;D[a+4>>2]=b|1;D[(c+d|0)+4>>2]=40;D[2943]=D[3058];a=(f+(f-39&7?39-f&7:0)|0)-47|0;d=a>>>0>>0?g:a;D[d+4>>2]=27;a=D[3051];D[d+16>>2]=D[3050];D[d+20>>2]=a;a=D[3049];D[d+8>>2]=D[3048];D[d+12>>2]=a;D[3050]=d+8;D[3049]=e;D[3048]=c;D[3051]=0;a=d+24|0;while(1){D[a+4>>2]=7;b=a+8|0;a=a+4|0;if(b>>>0>>0){continue}break}if((d|0)==(g|0)){break x}D[d+4>>2]=D[d+4>>2]&-2;f=d-g|0;D[g+4>>2]=f|1;D[d>>2]=f;if(f>>>0<=255){b=(f&-8)+11784|0;c=D[2936];a=1<<(f>>>3);M:{if(!(c&a)){D[2936]=a|c;a=b;break M}a=D[b+8>>2]}D[b+8>>2]=g;D[a+12>>2]=g;D[g+12>>2]=b;D[g+8>>2]=a;break x}a=31;if(f>>>0<=16777215){a=f>>>8|0;d=a+1048320>>>16&8;a=a<>>16&4;a=a<>>16&2;a=(a<>>15|0)-(b|(c|d))|0;a=(a<<1|f>>>a+21&1)+28|0}D[g+28>>2]=a;D[g+16>>2]=0;D[g+20>>2]=0;b=(a<<2)+12048|0;d=D[2937];c=1<>2]=g;break N}a=f<<((a|0)==31?0:25-(a>>>1|0)|0);d=D[b>>2];while(1){b=d;if((f|0)==(D[b+4>>2]&-8)){break A}c=a>>>29|0;a=a<<1;c=(c&4)+b|0;d=D[c+16>>2];if(d){continue}break}D[c+16>>2]=g}D[g+24>>2]=b;D[g+12>>2]=g;D[g+8>>2]=g;break x}a=D[b+8>>2];D[a+12>>2]=i;D[b+8>>2]=i;D[i+24>>2]=0;D[i+12>>2]=b;D[i+8>>2]=a}a=j+8|0;break a}a=D[b+8>>2];D[a+12>>2]=g;D[b+8>>2]=g;D[g+24>>2]=0;D[g+12>>2]=b;D[g+8>>2]=a}a=D[2939];if(a>>>0<=h>>>0){break d}b=a-h|0;D[2939]=b;c=D[2942];a=c+h|0;D[2942]=a;D[a+4>>2]=b|1;D[c+4>>2]=h|3;a=c+8|0;break a}D[2935]=48;a=0;break a}O:{if(!e){break O}b=D[d+28>>2];a=(b<<2)+12048|0;P:{if(D[a>>2]==(d|0)){D[a>>2]=c;if(c){break P}j=ji(b)&j;D[2937]=j;break O}D[e+(D[e+16>>2]==(d|0)?16:20)>>2]=c;if(!c){break O}}D[c+24>>2]=e;a=D[d+16>>2];if(a){D[c+16>>2]=a;D[a+24>>2]=c}a=D[d+20>>2];if(!a){break O}D[c+20>>2]=a;D[a+24>>2]=c}Q:{if(f>>>0<=15){a=f+h|0;D[d+4>>2]=a|3;a=a+d|0;D[a+4>>2]=D[a+4>>2]|1;break Q}D[d+4>>2]=h|3;e=d+h|0;D[e+4>>2]=f|1;D[e+f>>2]=f;if(f>>>0<=255){b=(f&-8)+11784|0;c=D[2936];a=1<<(f>>>3);R:{if(!(c&a)){D[2936]=a|c;a=b;break R}a=D[b+8>>2]}D[b+8>>2]=e;D[a+12>>2]=e;D[e+12>>2]=b;D[e+8>>2]=a;break Q}a=31;if(f>>>0<=16777215){a=f>>>8|0;g=a+1048320>>>16&8;a=a<>>16&4;a=a<>>16&2;a=(a<>>15|0)-(b|(c|g))|0;a=(a<<1|f>>>a+21&1)+28|0}D[e+28>>2]=a;D[e+16>>2]=0;D[e+20>>2]=0;b=(a<<2)+12048|0;S:{c=1<>2]=e;break T}a=f<<((a|0)==31?0:25-(a>>>1|0)|0);h=D[b>>2];while(1){b=h;if((D[b+4>>2]&-8)==(f|0)){break S}c=a>>>29|0;a=a<<1;c=(c&4)+b|0;h=D[c+16>>2];if(h){continue}break}D[c+16>>2]=e}D[e+24>>2]=b;D[e+12>>2]=e;D[e+8>>2]=e;break Q}a=D[b+8>>2];D[a+12>>2]=e;D[b+8>>2]=e;D[e+24>>2]=0;D[e+12>>2]=b;D[e+8>>2]=a}a=d+8|0;break a}U:{if(!i){break U}b=D[c+28>>2];a=(b<<2)+12048|0;V:{if(D[a>>2]==(c|0)){D[a>>2]=d;if(d){break V}m=11748,n=ji(b)&j,D[m>>2]=n;break U}D[i+(D[i+16>>2]==(c|0)?16:20)>>2]=d;if(!d){break U}}D[d+24>>2]=i;a=D[c+16>>2];if(a){D[d+16>>2]=a;D[a+24>>2]=d}a=D[c+20>>2];if(!a){break U}D[d+20>>2]=a;D[a+24>>2]=d}W:{if(f>>>0<=15){a=f+h|0;D[c+4>>2]=a|3;a=a+c|0;D[a+4>>2]=D[a+4>>2]|1;break W}D[c+4>>2]=h|3;d=c+h|0;D[d+4>>2]=f|1;D[d+f>>2]=f;if(k){b=(k&-8)+11784|0;g=D[2941];a=1<<(k>>>3);X:{if(!(a&e)){D[2936]=a|e;a=b;break X}a=D[b+8>>2]}D[b+8>>2]=g;D[a+12>>2]=g;D[g+12>>2]=b;D[g+8>>2]=a}D[2941]=d;D[2938]=f}a=c+8|0}$=l+16|0;return a|0}function Md(a,b,c,d){var e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0;h=$-80|0;$=h;e=D[c+36>>2];D[h+72>>2]=D[c+32>>2];D[h+76>>2]=e;f=D[c+28>>2];e=h- -64|0;D[e>>2]=D[c+24>>2];D[e+4>>2]=f;e=D[c+20>>2];D[h+56>>2]=D[c+16>>2];D[h+60>>2]=e;e=D[c+12>>2];D[h+48>>2]=D[c+8>>2];D[h+52>>2]=e;e=D[c+4>>2];D[h+40>>2]=D[c>>2];D[h+44>>2]=e;gc(a,h+40|0,h+24|0);a:{if(D[a>>2]){break a}l=a+4|0;if(B[a+15|0]<0){ma(D[l>>2])}if(E[h+31|0]!=1){b=na(32);c=E[1446]|E[1447]<<8|(E[1448]<<16|E[1449]<<24);B[b+16|0]=c;B[b+17|0]=c>>>8;B[b+18|0]=c>>>16;B[b+19|0]=c>>>24;c=E[1442]|E[1443]<<8|(E[1444]<<16|E[1445]<<24);d=E[1438]|E[1439]<<8|(E[1440]<<16|E[1441]<<24);B[b+8|0]=d;B[b+9|0]=d>>>8;B[b+10|0]=d>>>16;B[b+11|0]=d>>>24;B[b+12|0]=c;B[b+13|0]=c>>>8;B[b+14|0]=c>>>16;B[b+15|0]=c>>>24;c=E[1434]|E[1435]<<8|(E[1436]<<16|E[1437]<<24);d=E[1430]|E[1431]<<8|(E[1432]<<16|E[1433]<<24);B[b|0]=d;B[b+1|0]=d>>>8;B[b+2|0]=d>>>16;B[b+3|0]=d>>>24;B[b+4|0]=c;B[b+5|0]=c>>>8;B[b+6|0]=c>>>16;B[b+7|0]=c>>>24;B[b+20|0]=0;D[a>>2]=-1;ta(l,b,20);ma(b);break a}i=$-16|0;$=i;b:{c:{switch(E[h+32|0]){case 0:e=Hd(na(48));D[e>>2]=9864;D[h+8>>2]=0;D[h+12>>2]=0;D[h>>2]=0;D[h+4>>2]=0;D[h+16>>2]=e;break b;case 1:e=Hd(na(52));D[e+48>>2]=0;D[e>>2]=8176;D[h+8>>2]=0;D[h+12>>2]=0;D[h>>2]=0;D[h+4>>2]=0;D[h+16>>2]=e;break b;default:break c}}f=na(32);e=E[1520]|E[1521]<<8|(E[1522]<<16|E[1523]<<24);B[f+24|0]=e;B[f+25|0]=e>>>8;B[f+26|0]=e>>>16;B[f+27|0]=e>>>24;e=E[1516]|E[1517]<<8|(E[1518]<<16|E[1519]<<24);g=E[1512]|E[1513]<<8|(E[1514]<<16|E[1515]<<24);B[f+16|0]=g;B[f+17|0]=g>>>8;B[f+18|0]=g>>>16;B[f+19|0]=g>>>24;B[f+20|0]=e;B[f+21|0]=e>>>8;B[f+22|0]=e>>>16;B[f+23|0]=e>>>24;e=E[1508]|E[1509]<<8|(E[1510]<<16|E[1511]<<24);g=E[1504]|E[1505]<<8|(E[1506]<<16|E[1507]<<24);B[f+8|0]=g;B[f+9|0]=g>>>8;B[f+10|0]=g>>>16;B[f+11|0]=g>>>24;B[f+12|0]=e;B[f+13|0]=e>>>8;B[f+14|0]=e>>>16;B[f+15|0]=e>>>24;e=E[1500]|E[1501]<<8|(E[1502]<<16|E[1503]<<24);g=E[1496]|E[1497]<<8|(E[1498]<<16|E[1499]<<24);B[f|0]=g;B[f+1|0]=g>>>8;B[f+2|0]=g>>>16;B[f+3|0]=g>>>24;B[f+4|0]=e;B[f+5|0]=e>>>8;B[f+6|0]=e>>>16;B[f+7|0]=e>>>24;B[f+28|0]=0;D[i>>2]=-1;e=i|4;ta(e,f,28);k=B[i+15|0];D[h>>2]=D[i>>2];g=h+4|0;d:{if((k|0)>=0){k=D[e+4>>2];D[g>>2]=D[e>>2];D[g+4>>2]=k;D[g+8>>2]=D[e+8>>2];D[h+16>>2]=0;break d}ta(g,D[i+4>>2],D[i+8>>2]);e=B[i+15|0];D[h+16>>2]=0;if((e|0)>=0){break d}ma(D[i+4>>2])}ma(f)}$=i+16|0;e=D[h>>2];e:{if(e){D[a>>2]=e;if(B[h+15|0]>=0){a=h|4;b=D[a+4>>2];D[l>>2]=D[a>>2];D[l+4>>2]=b;D[l+8>>2]=D[a+8>>2];break e}ta(l,D[h+4>>2],D[h+8>>2]);break e}e=D[h+16>>2];D[h+16>>2]=0;D[e+44>>2]=d;i=$-32|0;$=i;D[e+32>>2]=c;D[e+40>>2]=b;D[e+4>>2]=d;gc(a,c,i+16|0);f:{if(D[a>>2]){break f}f=a+4|0;if(B[a+15|0]<0){ma(D[f>>2])}b=E[i+23|0];if((ba[D[D[e>>2]+8>>2]](e)|0)!=(b|0)){b=na(64);c=E[1304]|E[1305]<<8;B[b+48|0]=c;B[b+49|0]=c>>>8;c=E[1300]|E[1301]<<8|(E[1302]<<16|E[1303]<<24);d=E[1296]|E[1297]<<8|(E[1298]<<16|E[1299]<<24);B[b+40|0]=d;B[b+41|0]=d>>>8;B[b+42|0]=d>>>16;B[b+43|0]=d>>>24;B[b+44|0]=c;B[b+45|0]=c>>>8;B[b+46|0]=c>>>16;B[b+47|0]=c>>>24;c=E[1292]|E[1293]<<8|(E[1294]<<16|E[1295]<<24);d=E[1288]|E[1289]<<8|(E[1290]<<16|E[1291]<<24);B[b+32|0]=d;B[b+33|0]=d>>>8;B[b+34|0]=d>>>16;B[b+35|0]=d>>>24;B[b+36|0]=c;B[b+37|0]=c>>>8;B[b+38|0]=c>>>16;B[b+39|0]=c>>>24;c=E[1284]|E[1285]<<8|(E[1286]<<16|E[1287]<<24);d=E[1280]|E[1281]<<8|(E[1282]<<16|E[1283]<<24);B[b+24|0]=d;B[b+25|0]=d>>>8;B[b+26|0]=d>>>16;B[b+27|0]=d>>>24;B[b+28|0]=c;B[b+29|0]=c>>>8;B[b+30|0]=c>>>16;B[b+31|0]=c>>>24;c=E[1276]|E[1277]<<8|(E[1278]<<16|E[1279]<<24);d=E[1272]|E[1273]<<8|(E[1274]<<16|E[1275]<<24);B[b+16|0]=d;B[b+17|0]=d>>>8;B[b+18|0]=d>>>16;B[b+19|0]=d>>>24;B[b+20|0]=c;B[b+21|0]=c>>>8;B[b+22|0]=c>>>16;B[b+23|0]=c>>>24;c=E[1268]|E[1269]<<8|(E[1270]<<16|E[1271]<<24);d=E[1264]|E[1265]<<8|(E[1266]<<16|E[1267]<<24);B[b+8|0]=d;B[b+9|0]=d>>>8;B[b+10|0]=d>>>16;B[b+11|0]=d>>>24;B[b+12|0]=c;B[b+13|0]=c>>>8;B[b+14|0]=c>>>16;B[b+15|0]=c>>>24;c=E[1260]|E[1261]<<8|(E[1262]<<16|E[1263]<<24);d=E[1256]|E[1257]<<8|(E[1258]<<16|E[1259]<<24);B[b|0]=d;B[b+1|0]=d>>>8;B[b+2|0]=d>>>16;B[b+3|0]=d>>>24;B[b+4|0]=c;B[b+5|0]=c>>>8;B[b+6|0]=c>>>16;B[b+7|0]=c>>>24;B[b+50|0]=0;D[a>>2]=-1;ta(f,b,50);ma(b);break f}c=E[i+21|0];B[e+36|0]=c;d=E[i+22|0];B[e+37|0]=d;if((c|0)!=2){b=na(32);c=E[1427]|E[1428]<<8;B[b+24|0]=c;B[b+25|0]=c>>>8;c=E[1423]|E[1424]<<8|(E[1425]<<16|E[1426]<<24);d=E[1419]|E[1420]<<8|(E[1421]<<16|E[1422]<<24);B[b+16|0]=d;B[b+17|0]=d>>>8;B[b+18|0]=d>>>16;B[b+19|0]=d>>>24;B[b+20|0]=c;B[b+21|0]=c>>>8;B[b+22|0]=c>>>16;B[b+23|0]=c>>>24;c=E[1415]|E[1416]<<8|(E[1417]<<16|E[1418]<<24);d=E[1411]|E[1412]<<8|(E[1413]<<16|E[1414]<<24);B[b+8|0]=d;B[b+9|0]=d>>>8;B[b+10|0]=d>>>16;B[b+11|0]=d>>>24;B[b+12|0]=c;B[b+13|0]=c>>>8;B[b+14|0]=c>>>16;B[b+15|0]=c>>>24;c=E[1407]|E[1408]<<8|(E[1409]<<16|E[1410]<<24);d=E[1403]|E[1404]<<8|(E[1405]<<16|E[1406]<<24);B[b|0]=d;B[b+1|0]=d>>>8;B[b+2|0]=d>>>16;B[b+3|0]=d>>>24;B[b+4|0]=c;B[b+5|0]=c>>>8;B[b+6|0]=c>>>16;B[b+7|0]=c>>>24;B[b+26|0]=0;D[a>>2]=-5;ta(f,b,26);ma(b);break f}b=b?2:3;if((b|0)!=(d|0)){b=na(32);c=E[1400]|E[1401]<<8;B[b+24|0]=c;B[b+25|0]=c>>>8;c=E[1396]|E[1397]<<8|(E[1398]<<16|E[1399]<<24);d=E[1392]|E[1393]<<8|(E[1394]<<16|E[1395]<<24);B[b+16|0]=d;B[b+17|0]=d>>>8;B[b+18|0]=d>>>16;B[b+19|0]=d>>>24;B[b+20|0]=c;B[b+21|0]=c>>>8;B[b+22|0]=c>>>16;B[b+23|0]=c>>>24;c=E[1388]|E[1389]<<8|(E[1390]<<16|E[1391]<<24);d=E[1384]|E[1385]<<8|(E[1386]<<16|E[1387]<<24);B[b+8|0]=d;B[b+9|0]=d>>>8;B[b+10|0]=d>>>16;B[b+11|0]=d>>>24;B[b+12|0]=c;B[b+13|0]=c>>>8;B[b+14|0]=c>>>16;B[b+15|0]=c>>>24;c=E[1380]|E[1381]<<8|(E[1382]<<16|E[1383]<<24);d=E[1376]|E[1377]<<8|(E[1378]<<16|E[1379]<<24);B[b|0]=d;B[b+1|0]=d>>>8;B[b+2|0]=d>>>16;B[b+3|0]=d>>>24;B[b+4|0]=c;B[b+5|0]=c>>>8;B[b+6|0]=c>>>16;B[b+7|0]=c>>>24;B[b+26|0]=0;D[a>>2]=-5;ta(f,b,26);ma(b);break f}C[D[e+32>>2]+38>>1]=b|512;g:{if(C[i+26>>1]>=0){break g}k=$-16|0;$=k;d=na(36);b=d;D[b+4>>2]=0;D[b+8>>2]=0;D[b+24>>2]=0;D[b+28>>2]=0;b=b+16|0;D[b>>2]=0;D[b+4>>2]=0;D[d>>2]=d+4;D[d+32>>2]=0;D[d+12>>2]=b;D[k>>2]=0;c=D[e+32>>2];m=$-16|0;$=m;b=0;h:{if(!d){break h}D[k>>2]=c;D[m+12>>2]=0;b=0;if(!hb(1,m+12|0,c)){break h}p=D[m+12>>2];if(p){while(1){i:{if(hb(1,m+8|0,D[k>>2])){b=na(28);D[b+4>>2]=0;D[b+8>>2]=0;c=b+16|0;D[c>>2]=0;D[c+4>>2]=0;D[b>>2]=b+4;D[b+12>>2]=c;D[b+24>>2]=D[m+8>>2];if(Tc(k,b)){break i}Fa(b+12|0,D[b+16>>2]);Ea(b,D[b+4>>2]);ma(b)}b=0;break h}g=$-16|0;$=g;D[g+8>>2]=b;j:{if(!b){D[g+8>>2]=0;break j}c=D[d+28>>2];k:{if(c>>>0>2]){D[g+8>>2]=0;D[c>>2]=b;D[d+28>>2]=c+4;break k}c=0;l:{m:{n:{j=D[d+24>>2];o=D[d+28>>2]-j>>2;b=o+1|0;if(b>>>0<1073741824){j=D[d+32>>2]-j|0;n=j>>1;b=j>>>0<2147483644?b>>>0>>0?n:b:1073741823;if(b){if(b>>>0>=1073741824){break n}c=na(b<<2)}n=D[g+8>>2];D[g+8>>2]=0;j=(o<<2)+c|0;D[j>>2]=n;o=(b<<2)+c|0;n=j+4|0;c=D[d+28>>2];b=D[d+24>>2];if((c|0)==(b|0)){break m}while(1){c=c-4|0;r=D[c>>2];D[c>>2]=0;j=j-4|0;D[j>>2]=r;if((b|0)!=(c|0)){continue}break}D[d+32>>2]=o;c=D[d+28>>2];D[d+28>>2]=n;b=D[d+24>>2];D[d+24>>2]=j;if((b|0)==(c|0)){break l}while(1){c=c-4|0;j=D[c>>2];D[c>>2]=0;if(j){Fa(j+12|0,D[j+16>>2]);Ea(j,D[j+4>>2]);ma(j)}if((b|0)!=(c|0)){continue}break}break l}pa();T()}sa();T()}D[d+32>>2]=o;D[d+28>>2]=n;D[d+24>>2]=j}if(b){ma(b)}}b=D[g+8>>2];D[g+8>>2]=0;if(!b){break j}Fa(b+12|0,D[b+16>>2]);Ea(b,D[b+4>>2]);ma(b)}$=g+16|0;q=q+1|0;if((q|0)!=(p|0)){continue}break}}b=Tc(k,d)}$=m+16|0;o:{if(b){c=D[e+4>>2];b=D[c+4>>2];D[c+4>>2]=d;if(b){fc(b)}D[a>>2]=0;D[a+4>>2]=0;D[a+8>>2]=0;D[a+12>>2]=0;break o}b=na(32);c=E[1549]|E[1550]<<8;B[b+24|0]=c;B[b+25|0]=c>>>8;c=E[1545]|E[1546]<<8|(E[1547]<<16|E[1548]<<24);g=E[1541]|E[1542]<<8|(E[1543]<<16|E[1544]<<24);B[b+16|0]=g;B[b+17|0]=g>>>8;B[b+18|0]=g>>>16;B[b+19|0]=g>>>24;B[b+20|0]=c;B[b+21|0]=c>>>8;B[b+22|0]=c>>>16;B[b+23|0]=c>>>24;c=E[1537]|E[1538]<<8|(E[1539]<<16|E[1540]<<24);g=E[1533]|E[1534]<<8|(E[1535]<<16|E[1536]<<24);B[b+8|0]=g;B[b+9|0]=g>>>8;B[b+10|0]=g>>>16;B[b+11|0]=g>>>24;B[b+12|0]=c;B[b+13|0]=c>>>8;B[b+14|0]=c>>>16;B[b+15|0]=c>>>24;c=E[1529]|E[1530]<<8|(E[1531]<<16|E[1532]<<24);g=E[1525]|E[1526]<<8|(E[1527]<<16|E[1528]<<24);B[b|0]=g;B[b+1|0]=g>>>8;B[b+2|0]=g>>>16;B[b+3|0]=g>>>24;B[b+4|0]=c;B[b+5|0]=c>>>8;B[b+6|0]=c>>>16;B[b+7|0]=c>>>24;B[b+26|0]=0;D[a>>2]=-1;ta(a+4|0,b,26);ma(b);D[k+8>>2]=0;fc(d)}$=k+16|0;if(D[a>>2]){break f}if(B[f+11|0]>=0){break g}ma(D[f>>2])}if(!(ba[D[D[e>>2]+12>>2]](e)|0)){b=na(48);B[b+32|0]=E[1374];c=E[1370]|E[1371]<<8|(E[1372]<<16|E[1373]<<24);d=E[1366]|E[1367]<<8|(E[1368]<<16|E[1369]<<24);B[b+24|0]=d;B[b+25|0]=d>>>8;B[b+26|0]=d>>>16;B[b+27|0]=d>>>24;B[b+28|0]=c;B[b+29|0]=c>>>8;B[b+30|0]=c>>>16;B[b+31|0]=c>>>24;c=E[1362]|E[1363]<<8|(E[1364]<<16|E[1365]<<24);d=E[1358]|E[1359]<<8|(E[1360]<<16|E[1361]<<24);B[b+16|0]=d;B[b+17|0]=d>>>8;B[b+18|0]=d>>>16;B[b+19|0]=d>>>24;B[b+20|0]=c;B[b+21|0]=c>>>8;B[b+22|0]=c>>>16;B[b+23|0]=c>>>24;c=E[1354]|E[1355]<<8|(E[1356]<<16|E[1357]<<24);d=E[1350]|E[1351]<<8|(E[1352]<<16|E[1353]<<24);B[b+8|0]=d;B[b+9|0]=d>>>8;B[b+10|0]=d>>>16;B[b+11|0]=d>>>24;B[b+12|0]=c;B[b+13|0]=c>>>8;B[b+14|0]=c>>>16;B[b+15|0]=c>>>24;c=E[1346]|E[1347]<<8|(E[1348]<<16|E[1349]<<24);d=E[1342]|E[1343]<<8|(E[1344]<<16|E[1345]<<24);B[b|0]=d;B[b+1|0]=d>>>8;B[b+2|0]=d>>>16;B[b+3|0]=d>>>24;B[b+4|0]=c;B[b+5|0]=c>>>8;B[b+6|0]=c>>>16;B[b+7|0]=c>>>24;B[b+33|0]=0;D[a>>2]=-1;ta(f,b,33);ma(b);break f}if(!(ba[D[D[e>>2]+20>>2]](e)|0)){b=Fb(i,1552);D[a>>2]=-1;if(B[b+11|0]>=0){c=D[b+4>>2];D[f>>2]=D[b>>2];D[f+4>>2]=c;D[f+8>>2]=D[b+8>>2];break f}ta(f,D[b>>2],D[b+4>>2]);if(B[b+11|0]>=0){break f}ma(D[b>>2]);break f}if(!(ba[D[D[e>>2]+24>>2]](e)|0)){b=Fb(i,1307);D[a>>2]=-1;if(B[b+11|0]>=0){c=D[b+4>>2];D[f>>2]=D[b>>2];D[f+4>>2]=c;D[f+8>>2]=D[b+8>>2];break f}ta(f,D[b>>2],D[b+4>>2]);if(B[b+11|0]>=0){break f}ma(D[b>>2]);break f}D[a>>2]=0;D[a+4>>2]=0;D[a+8>>2]=0;D[a+12>>2]=0}$=i+32|0;if(!D[a>>2]){if(B[l+11|0]<0){ma(D[l>>2])}D[a>>2]=0;D[a+4>>2]=0;D[a+8>>2]=0;D[a+12>>2]=0}ba[D[D[e>>2]+4>>2]](e)}a=D[h+16>>2];D[h+16>>2]=0;if(a){ba[D[D[a>>2]+4>>2]](a)}if(B[h+15|0]>=0){break a}ma(D[h+4>>2])}$=h+80|0}function Tc(a,b){var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0;m=$-32|0;$=m;o=na(12);D[o+8>>2]=0;D[o+4>>2]=b;D[o>>2]=0;t=o+12|0;b=t;a:{b:{c:{d:{while(1){b=b-12|0;w=D[b+8>>2];j=D[b+4>>2];u=D[b>>2];if(u){q=0;if((w|0)>1e3){break a}D[m+24>>2]=0;D[m+16>>2]=0;D[m+20>>2]=0;f=1;c=D[a>>2];d=D[c+8>>2];h=D[c+12>>2];e=D[c+20>>2];g=d;d=D[c+16>>2];e:{if((h|0)<=(e|0)&g>>>0<=d>>>0|(e|0)>(h|0)){break e}h=E[d+D[c>>2]|0];d=d+1|0;e=d?e:e+1|0;D[c+16>>2]=d;D[c+20>>2]=e;Rb(m+16|0,h);if(h){d=D[a>>2];l=Sb(m+16|0);e=D[d+20>>2];i=D[d+16>>2];c=h;n=i+c|0;g=D[d+12>>2];e=c>>>0>n>>>0?e+1|0:e;if(n>>>0>G[d+8>>2]&(g|0)<=(e|0)|(e|0)>(g|0)){break e}oa(l,i+D[d>>2]|0,h);e=D[d+20>>2];f=c+D[d+16>>2]|0;e=f>>>0>>0?e+1|0:e;D[d+16>>2]=f;D[d+20>>2]=e}j=na(24);c=j;D[c+4>>2]=0;D[c+8>>2]=0;c=c+16|0;D[c>>2]=0;D[c+4>>2]=0;D[j>>2]=j+4;D[j+12>>2]=c;e=$-32|0;$=e;h=u+12|0;c=m+16|0;p=bb(h,c);k=u+16|0;f:{if((p|0)==(k|0)){D[e+16>>2]=c;g:{h:{d=D[h+4>>2];i:{if(!d){f=h+4|0;c=f;break i}f=E[c+11|0];g=f<<24>>24<0;n=g?D[c>>2]:c;g=g?D[c+4>>2]:f;while(1){c=d;d=E[c+27|0];f=d<<24>>24<0;d=f?D[c+20>>2]:d;l=d>>>0>>0;j:{k:{l:{m:{i=l?d:g;n:{if(i){r=c+16|0;f=f?D[r>>2]:r;r=ua(n,f,i);if(!r){if(d>>>0>g>>>0){break n}break m}if((r|0)>=0){break m}break n}if(d>>>0<=g>>>0){break l}}f=c;d=D[c>>2];if(d){continue}break i}d=ua(f,n,i);if(d){break k}}if(l){break j}break h}if((d|0)>=0){break h}}d=D[c+4>>2];if(d){continue}break}f=c+4|0}d=na(32);n=d+16|0;g=D[e+16>>2];o:{if(B[g+11|0]>=0){l=D[g+4>>2];D[n>>2]=D[g>>2];D[n+4>>2]=l;D[n+8>>2]=D[g+8>>2];break o}ta(n,D[g>>2],D[g+4>>2])}D[d+8>>2]=c;D[d>>2]=0;D[d+4>>2]=0;D[d+28>>2]=0;D[f>>2]=d;c=d;g=D[D[h>>2]>>2];if(g){D[h>>2]=g;c=D[f>>2]}pb(D[h+4>>2],c);D[h+8>>2]=D[h+8>>2]+1;c=1;break g}d=c;c=0}B[e+28|0]=c;D[e+24>>2]=d;d=D[e+24>>2];c=D[d+28>>2];D[d+28>>2]=j;if(!c){break f}Fa(c+12|0,D[c+16>>2]);Ea(c,D[c+4>>2]);ma(c);break f}if(!j){break f}Fa(j+12|0,D[j+16>>2]);Ea(j,D[j+4>>2]);ma(j)}$=e+32|0;f=(k|0)!=(p|0)}if(B[m+27|0]<0){ma(D[m+16>>2])}if(f){break a}}q=0;if(!j){break a}D[m+16>>2]=0;if(!hb(1,m+16|0,D[a>>2])){break a}p=0;x=D[m+16>>2];if(x){while(1){c=0;i=$-32|0;$=i;D[i+24>>2]=0;D[i+16>>2]=0;D[i+20>>2]=0;d=D[a>>2];f=D[d+8>>2];p:{q:{h=D[d+12>>2];e=D[d+20>>2];g=D[d+16>>2];r:{if((h|0)<=(e|0)&g>>>0>=f>>>0|(e|0)>(h|0)){break r}h=E[g+D[d>>2]|0];f=d;d=e;e=g+1|0;d=e?d:d+1|0;D[f+16>>2]=e;D[f+20>>2]=d;Rb(i+16|0,h);if(h){f=D[a>>2];l=Sb(i+16|0);e=D[f+20>>2];k=D[f+16>>2];d=h;n=k+d|0;g=D[f+12>>2];e=d>>>0>n>>>0?e+1|0:e;if(n>>>0>G[f+8>>2]&(g|0)<=(e|0)|(e|0)>(g|0)){break r}oa(l,k+D[f>>2]|0,h);e=D[f+20>>2];h=d+D[f+16>>2]|0;e=h>>>0>>0?e+1|0:e;D[f+16>>2]=h;D[f+20>>2]=e}D[i+12>>2]=0;if(!hb(1,i+12|0,D[a>>2])){break r}d=D[i+12>>2];if(!d){break r}D[i+8>>2]=0;D[i>>2]=0;D[i+4>>2]=0;if((d|0)<0){break q}c=na(d);D[i>>2]=c;e=c+d|0;D[i+8>>2]=e;l=qa(c,0,d);D[i+4>>2]=e;e=D[a>>2];r=D[e+8>>2];h=D[e+12>>2];y=h;f=D[e+20>>2];k=D[e+16>>2];g=d+k|0;f=g>>>0>>0?f+1|0:f;s:{z=g;n=f;if(g>>>0>r>>>0&(f|0)>=(h|0)|(f|0)>(h|0)){break s}oa(l,k+D[e>>2]|0,d);c=d;f=c+D[e+16>>2]|0;d=D[e+20>>2];D[e+16>>2]=f;D[e+20>>2]=c>>>0>f>>>0?d+1|0:d;h=$-48|0;$=h;e=bb(j,i+16|0);if((e|0)!=(j+4|0)){c=D[e+4>>2];t:{if(!c){c=e;while(1){d=D[c+8>>2];f=D[d>>2]!=(c|0);c=d;if(f){continue}break}break t}while(1){d=c;c=D[c>>2];if(c){continue}break}}if((e|0)==D[j>>2]){D[j>>2]=d}D[j+8>>2]=D[j+8>>2]-1;f=D[j+4>>2];u:{v:{g=e;d=e;e=D[d>>2];if(e){c=D[g+4>>2];if(!c){break v}while(1){d=c;c=D[c>>2];if(c){continue}break}}e=D[d+4>>2];if(e){break v}e=0;l=1;break u}D[e+8>>2]=D[d+8>>2];l=0}k=D[d+8>>2];c=D[k>>2];w:{if((d|0)==(c|0)){D[k>>2]=e;if((d|0)==(f|0)){c=0;f=e;break w}c=D[k+4>>2];break w}D[k+4>>2]=e}s=!E[d+12|0];if((d|0)!=(g|0)){k=D[g+8>>2];D[d+8>>2]=k;D[k+(((g|0)!=D[D[g+8>>2]>>2])<<2)>>2]=d;k=D[g>>2];D[d>>2]=k;D[k+8>>2]=d;k=D[g+4>>2];D[d+4>>2]=k;if(k){D[k+8>>2]=d}B[d+12|0]=E[g+12|0];f=(f|0)==(g|0)?d:f}x:{if(s|!f){break x}if(l){while(1){e=E[c+12|0];y:{d=D[c+8>>2];if(D[d>>2]!=(c|0)){if(!e){B[c+12|0]=1;B[d+12|0]=0;e=D[d+4>>2];l=D[e>>2];D[d+4>>2]=l;if(l){D[l+8>>2]=d}D[e+8>>2]=D[d+8>>2];l=D[d+8>>2];D[(((d|0)!=D[l>>2])<<2)+l>>2]=e;D[e>>2]=d;D[d+8>>2]=e;d=c;c=D[c>>2];f=(c|0)==(f|0)?d:f;c=D[c+4>>2]}z:{A:{d=D[c>>2];B:{if(!(E[d+12|0]?0:d)){e=D[c+4>>2];if(E[e+12|0]?0:e){break B}B[c+12|0]=0;c=D[c+8>>2];C:{if((f|0)==(c|0)){c=f;break C}if(E[c+12|0]){break y}}B[c+12|0]=1;break x}e=D[c+4>>2];if(!e){break A}}if(E[e+12|0]){break A}d=c;break z}B[d+12|0]=1;B[c+12|0]=0;e=D[d+4>>2];D[c>>2]=e;if(e){D[e+8>>2]=c}D[d+8>>2]=D[c+8>>2];e=D[c+8>>2];D[((D[e>>2]!=(c|0))<<2)+e>>2]=d;D[d+4>>2]=c;D[c+8>>2]=d;e=c}c=D[d+8>>2];B[d+12|0]=E[c+12|0];B[c+12|0]=1;B[e+12|0]=1;d=D[c+4>>2];e=D[d>>2];D[c+4>>2]=e;if(e){D[e+8>>2]=c}D[d+8>>2]=D[c+8>>2];e=D[c+8>>2];D[(((c|0)!=D[e>>2])<<2)+e>>2]=d;D[d>>2]=c;D[c+8>>2]=d;break x}if(!e){B[c+12|0]=1;B[d+12|0]=0;e=D[c+4>>2];D[d>>2]=e;if(e){D[e+8>>2]=d}D[c+8>>2]=D[d+8>>2];e=D[d+8>>2];D[(((d|0)!=D[e>>2])<<2)+e>>2]=c;D[c+4>>2]=d;D[d+8>>2]=c;f=(d|0)==(f|0)?c:f;c=D[d>>2]}e=D[c>>2];D:{if(!(!e|E[e+12|0])){d=c;break D}d=D[c+4>>2];if(!(E[d+12|0]?0:d)){B[c+12|0]=0;c=D[c+8>>2];if((c|0)!=(f|0)?E[c+12|0]:0){break y}B[c+12|0]=1;break x}if(e){if(!E[e+12|0]){d=c;break D}d=D[c+4>>2]}B[d+12|0]=1;B[c+12|0]=0;e=D[d>>2];D[c+4>>2]=e;if(e){D[e+8>>2]=c}D[d+8>>2]=D[c+8>>2];e=D[c+8>>2];D[((D[e>>2]!=(c|0))<<2)+e>>2]=d;D[d>>2]=c;D[c+8>>2]=d;e=c}c=D[d+8>>2];B[d+12|0]=E[c+12|0];B[c+12|0]=1;B[e+12|0]=1;d=D[c>>2];e=D[d+4>>2];D[c>>2]=e;if(e){D[e+8>>2]=c}D[d+8>>2]=D[c+8>>2];e=D[c+8>>2];D[(((c|0)!=D[e>>2])<<2)+e>>2]=d;D[d+4>>2]=c;D[c+8>>2]=d;break x}d=c;c=D[c+8>>2];c=D[(((d|0)==D[c>>2])<<2)+c>>2];continue}}B[e+12|0]=1}c=D[g+28>>2];if(c){D[g+32>>2]=c;ma(c)}if(B[g+27|0]<0){ma(D[g+16>>2])}ma(g)}D[h+8>>2]=0;D[h>>2]=0;D[h+4>>2]=0;c=D[i+4>>2];d=D[i>>2];f=c-d|0;e=0;E:{F:{if((c|0)!=(d|0)){if((f|0)<0){break F}e=na(f);c=qa(e,0,f);g=c+f|0;D[h+8>>2]=g;D[h+4>>2]=g;D[h>>2]=c;c=d}oa(e,c,f);G:{if(B[i+27|0]>=0){D[h+24>>2]=D[i+24>>2];c=D[i+20>>2];D[h+16>>2]=D[i+16>>2];D[h+20>>2]=c;break G}ta(h+16|0,D[i+16>>2],D[i+20>>2])}Rc(h+28|0,h);f=h+16|0;c=f;H:{I:{d=D[j+4>>2];J:{if(!d){e=j+4|0;c=e;break J}e=E[c+11|0];g=e<<24>>24<0;l=g?D[c>>2]:c;g=g?D[c+4>>2]:e;while(1){c=d;d=E[c+27|0];e=d<<24>>24<0;d=e?D[c+20>>2]:d;k=d>>>0>>0;K:{L:{M:{N:{v=k?d:g;O:{if(v){s=c+16|0;e=e?D[s>>2]:s;s=ua(l,e,v);if(!s){if(d>>>0>g>>>0){break O}break N}if((s|0)>=0){break N}break O}if(d>>>0<=g>>>0){break M}}e=c;d=D[c>>2];if(d){continue}break J}d=ua(e,l,v);if(d){break L}}if(k){break K}break I}if((d|0)>=0){break I}}d=D[c+4>>2];if(d){continue}break}e=c+4|0}d=na(40);D[d+24>>2]=D[f+8>>2];g=D[f+4>>2];D[d+16>>2]=D[f>>2];D[d+20>>2]=g;D[f>>2]=0;D[f+4>>2]=0;D[f+8>>2]=0;Rc(d+28|0,f+12|0);D[d+8>>2]=c;D[d>>2]=0;D[d+4>>2]=0;D[e>>2]=d;c=d;f=D[D[j>>2]>>2];if(f){D[j>>2]=f;c=D[e>>2]}pb(D[j+4>>2],c);D[j+8>>2]=D[j+8>>2]+1;c=1;break H}d=c;c=0}B[h+44|0]=c;D[h+40>>2]=d;c=D[h+28>>2];if(c){D[h+32>>2]=c;ma(c)}if(B[h+27|0]<0){ma(D[h+16>>2])}c=D[h>>2];if(c){D[h+4>>2]=c;ma(c)}$=h+48|0;break E}pa();T()}c=D[i>>2];if(c){break s}c=1;break r}D[i+4>>2]=c;ma(c);c=(n|0)<=(y|0)&r>>>0>=z>>>0|(n|0)<(y|0)}if(B[i+27|0]<0){ma(D[i+16>>2])}$=i+32|0;break p}pa();T()}if(!c){break a}p=p+1|0;if((x|0)!=(p|0)){continue}break}}D[m+12>>2]=0;if(!hb(1,m+12|0,D[a>>2])){break b}c=D[a>>2];d=D[c+8>>2];e=D[c+16>>2];f=d-e|0;q=D[m+12>>2];c=D[c+12>>2]-(D[c+20>>2]+(d>>>0>>0)|0)|0;if(f>>>0>>0&(c|0)<=0|(c|0)<0){break b}if(q){p=0;h=((u|0)!=0)+w|0;while(1){P:{if(b>>>0>>0){D[b+8>>2]=h;D[b+4>>2]=0;D[b>>2]=j;b=b+12|0;q=D[m+12>>2];break P}e=b-o|0;c=(e|0)/12|0;b=c+1|0;if(b>>>0>=357913942){break d}d=(t-o|0)/12|0;f=d<<1;f=d>>>0<178956970?b>>>0>>0?f:b:357913941;if(f){if(f>>>0>=357913942){break c}b=na(J(f,12))}else{b=0}d=b+J(c,12)|0;D[d+8>>2]=h;D[d+4>>2]=0;D[d>>2]=j;c=d+J((e|0)/-12|0,12)|0;if((e|0)>0){oa(c,o,e)}t=b+J(f,12)|0;b=d+12|0;if(o){ma(o)}o=c}p=p+1|0;if(p>>>0>>0){continue}break}}if((b|0)!=(o|0)){continue}break}q=1;break a}pa();T()}sa();T()}q=0}if(o){ma(o)}$=m+32|0;return q}function ie(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0;h=$-48|0;$=h;a:{if((c|0)!=1){break a}e=D[a+4>>2];i=D[a+12>>2];D[h+40>>2]=0;a=h;D[a+32>>2]=0;D[a+36>>2]=0;D[a+24>>2]=0;D[a+28>>2]=0;D[a+16>>2]=0;D[a+20>>2]=0;D[a+8>>2]=0;D[a+12>>2]=0;c=a+8|0;b:{if((b|0)==-2){break b}k=D[D[D[e+4>>2]+8>>2]+(i<<2)>>2];if((ba[D[D[e>>2]+8>>2]](e)|0)==1){g=$-32|0;$=g;f=D[D[D[e+4>>2]+8>>2]+(i<<2)>>2];c:{d:{e:{if((ba[D[D[e>>2]+8>>2]](e)|0)!=1|b-1>>>0>5){break e}j=ba[D[D[e>>2]+36>>2]](e)|0;a=ba[D[D[e>>2]+44>>2]](e,i)|0;if(!j|!a){break e}d=ba[D[D[e>>2]+40>>2]](e,i)|0;if(d){e=D[e+44>>2];D[g+12>>2]=d;D[g+8>>2]=e;D[g+20>>2]=a;D[g+16>>2]=a+12;d=g+8|0;a=0;f:{g:{switch(b-1|0){case 0:a=na(60);D[a+4>>2]=f;D[a>>2]=2960;b=D[c+4>>2];D[a+8>>2]=D[c>>2];D[a+12>>2]=b;b=D[c+12>>2];D[a+16>>2]=D[c+8>>2];D[a+20>>2]=b;b=D[c+20>>2];D[a+24>>2]=D[c+16>>2];D[a+28>>2]=b;D[a+40>>2]=0;D[a+32>>2]=0;D[a+36>>2]=0;b=D[c+28>>2];e=D[c+24>>2];if((b|0)!=(e|0)){b=b-e|0;if((b|0)<0){break d}f=na(b);D[a+32>>2]=f;D[a+40>>2]=f+(b>>2<<2);l=a,m=oa(f,e,b)+b|0,D[l+36>>2]=m}b=D[d+4>>2];D[a+44>>2]=D[d>>2];D[a+48>>2]=b;b=D[d+12>>2];D[a+52>>2]=D[d+8>>2];D[a+56>>2]=b;D[a>>2]=2252;break f;case 3:a=na(112);D[a+4>>2]=f;D[a>>2]=2960;b=D[c+4>>2];D[a+8>>2]=D[c>>2];D[a+12>>2]=b;b=D[c+12>>2];D[a+16>>2]=D[c+8>>2];D[a+20>>2]=b;b=D[c+20>>2];D[a+24>>2]=D[c+16>>2];D[a+28>>2]=b;D[a+40>>2]=0;D[a+32>>2]=0;D[a+36>>2]=0;b=D[c+28>>2];e=D[c+24>>2];if((b|0)!=(e|0)){b=b-e|0;if((b|0)<0){break d}f=na(b);D[a+32>>2]=f;D[a+40>>2]=f+(b>>2<<2);l=a,m=oa(f,e,b)+b|0,D[l+36>>2]=m}b=D[d+4>>2];D[a+44>>2]=D[d>>2];D[a+48>>2]=b;b=D[d+12>>2];D[a+52>>2]=D[d+8>>2];D[a+56>>2]=b;D[a+60>>2]=0;D[a+64>>2]=0;D[a>>2]=3016;D[a+68>>2]=0;D[a+72>>2]=0;D[a+76>>2]=0;D[a+80>>2]=0;D[a+84>>2]=0;D[a+88>>2]=0;D[a+92>>2]=0;D[a+96>>2]=0;D[a+100>>2]=0;D[a+104>>2]=0;D[a+108>>2]=0;break f;case 4:a=na(104);D[a+4>>2]=f;D[a>>2]=2960;b=D[c+4>>2];D[a+8>>2]=D[c>>2];D[a+12>>2]=b;b=D[c+12>>2];D[a+16>>2]=D[c+8>>2];D[a+20>>2]=b;b=D[c+20>>2];D[a+24>>2]=D[c+16>>2];D[a+28>>2]=b;D[a+40>>2]=0;D[a+32>>2]=0;D[a+36>>2]=0;b=D[c+28>>2];e=D[c+24>>2];if((b|0)!=(e|0)){b=b-e|0;if((b|0)<0){break d}f=na(b);D[a+32>>2]=f;D[a+40>>2]=f+(b>>2<<2);l=a,m=oa(f,e,b)+b|0,D[l+36>>2]=m}b=D[d+4>>2];D[a+44>>2]=D[d>>2];D[a+48>>2]=b;b=D[d+12>>2];D[a+52>>2]=D[d+8>>2];D[a+56>>2]=b;D[a+84>>2]=0;D[a+76>>2]=0;D[a+80>>2]=0;D[a+60>>2]=0;D[a+64>>2]=0;D[a>>2]=3264;b=D[d+4>>2];D[a+88>>2]=D[d>>2];D[a+92>>2]=b;b=D[d+12>>2];D[a+96>>2]=D[d+8>>2];D[a+100>>2]=b;break f;case 5:break g;default:break f}}a=na(128);D[a+4>>2]=f;D[a>>2]=2960;b=D[c+4>>2];D[a+8>>2]=D[c>>2];D[a+12>>2]=b;b=D[c+12>>2];D[a+16>>2]=D[c+8>>2];D[a+20>>2]=b;b=D[c+20>>2];D[a+24>>2]=D[c+16>>2];D[a+28>>2]=b;D[a+40>>2]=0;D[a+32>>2]=0;D[a+36>>2]=0;h:{i:{b=D[c+28>>2];e=D[c+24>>2];if((b|0)!=(e|0)){e=b-e|0;if((e|0)<0){break i}b=na(e);D[a+32>>2]=b;D[a+36>>2]=b;D[a+40>>2]=b+(e>>2<<2);f=D[c+24>>2];e=D[c+28>>2]-f|0;if((e|0)>0){b=oa(b,f,e)+e|0}D[a+36>>2]=b}D[a>>2]=2904;b=D[d+4>>2];D[a+44>>2]=D[d>>2];D[a+48>>2]=b;b=D[d+12>>2];D[a+52>>2]=D[d+8>>2];D[a+56>>2]=b;b=a- -64|0;D[b>>2]=0;D[b+4>>2]=0;D[a+60>>2]=4128;D[a>>2]=3500;b=D[d+4>>2];D[a+72>>2]=D[d>>2];D[a+76>>2]=b;b=D[d+12>>2];D[a+80>>2]=D[d+8>>2];D[a+84>>2]=b;D[a+104>>2]=1065353216;D[a+108>>2]=-1;D[a+96>>2]=-1;D[a+100>>2]=-1;D[a+88>>2]=1;D[a+92>>2]=-1;D[a+60>>2]=3736;D[a+112>>2]=0;D[a+116>>2]=0;B[a+117|0]=0;B[a+118|0]=0;B[a+119|0]=0;B[a+120|0]=0;B[a+121|0]=0;B[a+122|0]=0;B[a+123|0]=0;B[a+124|0]=0;break h}pa();T()}break f}d=a;break e}d=D[e+44>>2];D[g+12>>2]=j;D[g+8>>2]=d;D[g+20>>2]=a;D[g+16>>2]=a+12;d=g+8|0;a=0;j:{k:{switch(b-1|0){case 0:a=na(60);D[a+4>>2]=f;D[a>>2]=2960;b=D[c+4>>2];D[a+8>>2]=D[c>>2];D[a+12>>2]=b;b=D[c+12>>2];D[a+16>>2]=D[c+8>>2];D[a+20>>2]=b;b=D[c+20>>2];D[a+24>>2]=D[c+16>>2];D[a+28>>2]=b;D[a+40>>2]=0;D[a+32>>2]=0;D[a+36>>2]=0;b=D[c+28>>2];e=D[c+24>>2];if((b|0)!=(e|0)){b=b-e|0;if((b|0)<0){break d}f=na(b);D[a+32>>2]=f;D[a+40>>2]=f+(b>>2<<2);l=a,m=oa(f,e,b)+b|0,D[l+36>>2]=m}b=D[d+4>>2];D[a+44>>2]=D[d>>2];D[a+48>>2]=b;b=D[d+12>>2];D[a+52>>2]=D[d+8>>2];D[a+56>>2]=b;D[a>>2]=4156;break j;case 3:a=na(112);D[a+4>>2]=f;D[a>>2]=2960;b=D[c+4>>2];D[a+8>>2]=D[c>>2];D[a+12>>2]=b;b=D[c+12>>2];D[a+16>>2]=D[c+8>>2];D[a+20>>2]=b;b=D[c+20>>2];D[a+24>>2]=D[c+16>>2];D[a+28>>2]=b;D[a+40>>2]=0;D[a+32>>2]=0;D[a+36>>2]=0;b=D[c+28>>2];e=D[c+24>>2];if((b|0)!=(e|0)){b=b-e|0;if((b|0)<0){break d}f=na(b);D[a+32>>2]=f;D[a+40>>2]=f+(b>>2<<2);l=a,m=oa(f,e,b)+b|0,D[l+36>>2]=m}b=D[d+4>>2];D[a+44>>2]=D[d>>2];D[a+48>>2]=b;b=D[d+12>>2];D[a+52>>2]=D[d+8>>2];D[a+56>>2]=b;D[a+60>>2]=0;D[a+64>>2]=0;D[a>>2]=4580;D[a+68>>2]=0;D[a+72>>2]=0;D[a+76>>2]=0;D[a+80>>2]=0;D[a+84>>2]=0;D[a+88>>2]=0;D[a+92>>2]=0;D[a+96>>2]=0;D[a+100>>2]=0;D[a+104>>2]=0;D[a+108>>2]=0;break j;case 4:a=na(104);D[a+4>>2]=f;D[a>>2]=2960;b=D[c+4>>2];D[a+8>>2]=D[c>>2];D[a+12>>2]=b;b=D[c+12>>2];D[a+16>>2]=D[c+8>>2];D[a+20>>2]=b;b=D[c+20>>2];D[a+24>>2]=D[c+16>>2];D[a+28>>2]=b;D[a+40>>2]=0;D[a+32>>2]=0;D[a+36>>2]=0;b=D[c+28>>2];e=D[c+24>>2];if((b|0)!=(e|0)){b=b-e|0;if((b|0)<0){break d}f=na(b);D[a+32>>2]=f;D[a+40>>2]=f+(b>>2<<2);l=a,m=oa(f,e,b)+b|0,D[l+36>>2]=m}b=D[d+4>>2];D[a+44>>2]=D[d>>2];D[a+48>>2]=b;b=D[d+12>>2];D[a+52>>2]=D[d+8>>2];D[a+56>>2]=b;D[a+84>>2]=0;D[a+76>>2]=0;D[a+80>>2]=0;D[a+60>>2]=0;D[a+64>>2]=0;D[a>>2]=4816;b=D[d+4>>2];D[a+88>>2]=D[d>>2];D[a+92>>2]=b;b=D[d+12>>2];D[a+96>>2]=D[d+8>>2];D[a+100>>2]=b;break j;case 5:break k;default:break j}}a=na(128);D[a+4>>2]=f;D[a>>2]=2960;b=D[c+4>>2];D[a+8>>2]=D[c>>2];D[a+12>>2]=b;b=D[c+12>>2];D[a+16>>2]=D[c+8>>2];D[a+20>>2]=b;b=D[c+20>>2];D[a+24>>2]=D[c+16>>2];D[a+28>>2]=b;D[a+40>>2]=0;D[a+32>>2]=0;D[a+36>>2]=0;l:{m:{b=D[c+28>>2];e=D[c+24>>2];if((b|0)!=(e|0)){e=b-e|0;if((e|0)<0){break m}b=na(e);D[a+32>>2]=b;D[a+36>>2]=b;D[a+40>>2]=b+(e>>2<<2);f=D[c+24>>2];e=D[c+28>>2]-f|0;if((e|0)>0){b=oa(b,f,e)+e|0}D[a+36>>2]=b}D[a>>2]=4524;b=D[d+4>>2];D[a+44>>2]=D[d>>2];D[a+48>>2]=b;b=D[d+12>>2];D[a+52>>2]=D[d+8>>2];D[a+56>>2]=b;b=a- -64|0;D[b>>2]=0;D[b+4>>2]=0;D[a+60>>2]=5624;D[a>>2]=5040;b=D[d+4>>2];D[a+72>>2]=D[d>>2];D[a+76>>2]=b;b=D[d+12>>2];D[a+80>>2]=D[d+8>>2];D[a+84>>2]=b;D[a+104>>2]=1065353216;D[a+108>>2]=-1;D[a+96>>2]=-1;D[a+100>>2]=-1;D[a+88>>2]=1;D[a+92>>2]=-1;D[a+60>>2]=5260;D[a+112>>2]=0;D[a+116>>2]=0;B[a+117|0]=0;B[a+118|0]=0;B[a+119|0]=0;B[a+120|0]=0;B[a+121|0]=0;B[a+122|0]=0;B[a+123|0]=0;B[a+124|0]=0;break l}pa();T()}break j}d=a}$=g+32|0;break c}pa();T()}if(d){break b}}d=na(44);D[d+4>>2]=k;D[d>>2]=2960;a=D[c+4>>2];D[d+8>>2]=D[c>>2];D[d+12>>2]=a;a=D[c+12>>2];D[d+16>>2]=D[c+8>>2];D[d+20>>2]=a;a=D[c+20>>2];D[d+24>>2]=D[c+16>>2];D[d+28>>2]=a;D[d+40>>2]=0;D[d+32>>2]=0;D[d+36>>2]=0;n:{a=D[c+28>>2];b=D[c+24>>2];if((a|0)!=(b|0)){a=a-b|0;if((a|0)<0){break n}c=na(a);D[d+32>>2]=c;D[d+40>>2]=c+(a>>2<<2);l=d,m=oa(c,b,a)+a|0,D[l+36>>2]=m}D[d>>2]=5652;break b}pa();T()}a=D[h+32>>2];if(!a){break a}D[h+36>>2]=a;ma(a)}$=h+48|0;return d|0}function nf(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0;o=$-16|0;$=o;D[o+12>>2]=b;b=na(32);D[o>>2]=b;D[o+4>>2]=24;D[o+8>>2]=-2147483616;B[b+24|0]=0;d=E[1196]|E[1197]<<8|(E[1198]<<16|E[1199]<<24);c=E[1192]|E[1193]<<8|(E[1194]<<16|E[1195]<<24);B[b+16|0]=c;B[b+17|0]=c>>>8;B[b+18|0]=c>>>16;B[b+19|0]=c>>>24;B[b+20|0]=d;B[b+21|0]=d>>>8;B[b+22|0]=d>>>16;B[b+23|0]=d>>>24;d=E[1188]|E[1189]<<8|(E[1190]<<16|E[1191]<<24);c=E[1184]|E[1185]<<8|(E[1186]<<16|E[1187]<<24);B[b+8|0]=c;B[b+9|0]=c>>>8;B[b+10|0]=c>>>16;B[b+11|0]=c>>>24;B[b+12|0]=d;B[b+13|0]=d>>>8;B[b+14|0]=d>>>16;B[b+15|0]=d>>>24;d=E[1180]|E[1181]<<8|(E[1182]<<16|E[1183]<<24);c=E[1176]|E[1177]<<8|(E[1178]<<16|E[1179]<<24);B[b|0]=c;B[b+1|0]=c>>>8;B[b+2|0]=c>>>16;B[b+3|0]=c>>>24;B[b+4|0]=d;B[b+5|0]=d>>>8;B[b+6|0]=d>>>16;B[b+7|0]=d>>>24;k=$-48|0;$=k;m=a;f=a+16|0;d=D[f>>2];a:{b:{if(!d){break b}b=D[o+12>>2];a=f;while(1){c=(b|0)>D[d+16>>2];a=c?a:d;d=D[(c?d+4|0:d)>>2];if(d){continue}break}if((a|0)==(f|0)){break b}if((b|0)>=D[a+16>>2]){break a}}u=k+24|0;a=u;D[a+4>>2]=0;D[a+8>>2]=0;v=a+4|0;D[a>>2]=v;b=D[o+12>>2];p=k+16|0;a=p;D[a>>2]=0;D[a+4>>2]=0;D[k+8>>2]=b;D[k+12>>2]=a;s=k+8|4;d=D[u>>2];if((v|0)!=(d|0)){while(1){g=d+16|0;q=$-16|0;$=q;b=q+8|0;c:{d:{e:{f:{g:{h:{i:{c=p;e=s+4|0;j:{if((c|0)==(e|0)){break j}a=E[c+27|0];h=a<<24>>24<0;j=E[g+11|0];n=j<<24>>24;i=(n|0)<0;a=h?D[c+20>>2]:a;j=i?D[g+4>>2]:j;l=a>>>0>>0;r=l?a:j;if(r){i=i?D[g>>2]:g;t=c+16|0;h=h?D[t>>2]:t;t=ua(i,h,r);if(!t){if(a>>>0>j>>>0){break j}break i}if((t|0)>=0){break i}break j}if(a>>>0<=j>>>0){break h}}h=D[c>>2];k:{b=c;l:{if((b|0)==D[s>>2]){break l}m:{if(!h){a=c;while(1){b=D[a+8>>2];j=D[b>>2]==(a|0);a=b;if(j){continue}break}break m}a=h;while(1){b=a;a=D[a+4>>2];if(a){continue}break}}j=E[g+11|0];l=j<<24>>24;a=(l|0)<0;i=E[b+27|0];n=i<<24>>24<0;n:{j=a?D[g+4>>2]:j;i=n?D[b+20>>2]:i;r=j>>>0>>0?j:i;if(r){t=b+16|0;a=ua(n?D[t>>2]:t,a?D[g>>2]:g,r);if(a){break n}}if(j>>>0>i>>>0){break l}break k}if((a|0)>=0){break k}}if(!h){D[q+12>>2]=c;b=c;break c}D[q+12>>2]=b;b=b+4|0;break c}a=D[e>>2];if(!a){D[q+12>>2]=e;b=e;break c}h=(l|0)<0?D[g>>2]:g;c=e;while(1){b=a;n=E[a+27|0];e=n<<24>>24<0;a=e?D[a+20>>2]:n;n=a>>>0>>0;o:{p:{q:{r:{i=n?a:j;s:{if(i){l=b+16|0;e=e?D[l>>2]:l;l=ua(h,e,i);if(!l){if(a>>>0>j>>>0){break s}break r}if((l|0)>=0){break r}break s}if(a>>>0<=j>>>0){break q}}c=b;a=D[b>>2];if(a){continue}break e}a=ua(e,h,i);if(a){break p}}if(n){break o}break e}if((a|0)>=0){break e}}c=b+4|0;a=D[b+4>>2];if(a){continue}break}break e}a=ua(h,i,r);if(a){break g}}if(l){break f}break d}if((a|0)>=0){break d}}h=D[c+4>>2];t:{if(!h){a=c;while(1){b=D[a+8>>2];i=D[b>>2]!=(a|0);a=b;if(i){continue}break}break t}a=h;while(1){b=a;a=D[a>>2];if(a){continue}break}}u:{v:{if((b|0)==(e|0)){break v}i=E[b+27|0];a=i<<24>>24<0;w:{i=a?D[b+20>>2]:i;l=j>>>0>i>>>0?i:j;if(l){r=b+16|0;a=ua((n|0)<0?D[g>>2]:g,a?D[r>>2]:r,l);if(a){break w}}if(j>>>0>>0){break v}break u}if((a|0)>=0){break u}}if(!h){D[q+12>>2]=c;b=c+4|0;break c}D[q+12>>2]=b;break c}a=D[e>>2];if(!a){D[q+12>>2]=e;b=e;break c}h=(n|0)<0?D[g>>2]:g;c=e;while(1){b=a;n=E[a+27|0];e=n<<24>>24<0;a=e?D[a+20>>2]:n;n=a>>>0>>0;x:{y:{z:{A:{i=n?a:j;B:{if(i){l=b+16|0;e=e?D[l>>2]:l;l=ua(h,e,i);if(!l){if(a>>>0>j>>>0){break B}break A}if((l|0)>=0){break A}break B}if(a>>>0<=j>>>0){break z}}c=b;a=D[b>>2];if(a){continue}break e}a=ua(e,h,i);if(a){break y}}if(n){break x}break e}if((a|0)>=0){break e}}c=b+4|0;a=D[b+4>>2];if(a){continue}break}}D[q+12>>2]=b;b=c;break c}D[q+12>>2]=c;D[b>>2]=c}c=D[b>>2];if(c){a=0}else{c=na(40);a=c+16|0;C:{if(B[g+11|0]>=0){e=D[g+4>>2];D[a>>2]=D[g>>2];D[a+4>>2]=e;D[a+8>>2]=D[g+8>>2];break C}ta(a,D[g>>2],D[g+4>>2])}a=c+28|0;D:{if(B[g+23|0]>=0){e=D[g+16>>2];D[a>>2]=D[g+12>>2];D[a+4>>2]=e;D[a+8>>2]=D[g+20>>2];break D}ta(a,D[g+12>>2],D[g+16>>2])}D[c+8>>2]=D[q+12>>2];D[c>>2]=0;D[c+4>>2]=0;D[b>>2]=c;a=c;e=D[D[s>>2]>>2];if(e){D[s>>2]=e;a=D[b>>2]}pb(D[s+4>>2],a);D[s+8>>2]=D[s+8>>2]+1;a=1}B[k+44|0]=a;D[k+40>>2]=c;$=q+16|0;a=D[d+4>>2];E:{if(a){while(1){d=a;a=D[a>>2];if(a){continue}break E}}while(1){a=d;d=D[d+8>>2];if((a|0)!=D[d>>2]){continue}break}}if((d|0)!=(v|0)){continue}break}b=D[k+8>>2]}d=f;a=D[d>>2];F:{G:{if(!a){break G}while(1){d=a;a=D[a+16>>2];if((a|0)>(b|0)){f=d;a=D[d>>2];if(a){continue}break G}if((a|0)>=(b|0)){a=d;break F}a=D[d+4>>2];if(a){continue}break}f=d+4|0}a=na(32);D[a+16>>2]=b;D[a+20>>2]=D[k+12>>2];b=a+24|0;c=D[k+16>>2];D[b>>2]=c;e=D[k+20>>2];D[a+28>>2]=e;H:{if(!e){D[a+20>>2]=b;break H}D[c+8>>2]=b;D[k+16>>2]=0;D[k+20>>2]=0;D[k+12>>2]=p}D[a+8>>2]=d;D[a>>2]=0;D[a+4>>2]=0;D[f>>2]=a;d=a;b=D[D[m+12>>2]>>2];if(b){D[m+12>>2]=b;d=D[f>>2]}pb(D[m+16>>2],d);D[m+20>>2]=D[m+20>>2]+1}kb(s,D[k+16>>2]);kb(u,D[u+4>>2])}$=k+48|0;e=$-48|0;$=e;f=$-32|0;$=f;d=f+21|0;h=f+32|0;c=h;I:{if((d|0)==(c|0)){break I}}b=c-d|0;J:{if((b|0)<=9){p=61;if((b|0)<(G[2736]<=1|0)){break J}}B[d|0]=49;c=d+1|0;p=0}D[f+12>>2]=p;D[f+8>>2]=c;p=$-16|0;$=p;b=e+8|0;m=$-16|0;$=m;K:{g=D[f+8>>2];f=g-d|0;if(f>>>0<=4294967279){L:{if(f>>>0<11){B[b+11|0]=f;c=b;break L}if(f>>>0>=11){k=f+16&-16;c=k-1|0;c=(c|0)==11?k:c}else{c=10}k=c+1|0;c=na(k);D[b>>2]=c;D[b+8>>2]=k|-2147483648;D[b+4>>2]=f}while(1){if((d|0)!=(g|0)){B[c|0]=E[d|0];c=c+1|0;d=d+1|0;continue}break}B[m+15|0]=0;B[c|0]=E[m+15|0];$=m+16|0;break K}Ca();T()}$=p+16|0;$=h;D[e+32>>2]=o;M:{N:{c=a+20|0;a=D[c+4>>2];O:{if(!a){b=c+4|0;d=b;break O}b=E[o+11|0];d=b<<24>>24<0;m=d?D[o>>2]:o;f=d?D[o+4>>2]:b;while(1){d=a;h=E[a+27|0];b=h<<24>>24<0;a=b?D[a+20>>2]:h;h=a>>>0>>0;P:{Q:{R:{S:{p=h?a:f;T:{if(p){g=d+16|0;b=b?D[g>>2]:g;g=ua(m,b,p);if(!g){if(a>>>0>f>>>0){break T}break S}if((g|0)>=0){break S}break T}if(a>>>0<=f>>>0){break R}}b=d;a=D[b>>2];if(a){continue}break O}a=ua(b,m,p);if(a){break Q}}if(h){break P}break N}if((a|0)>=0){break N}}a=D[d+4>>2];if(a){continue}break}b=d+4|0}a=na(40);m=a+16|0;f=D[e+32>>2];U:{if(B[f+11|0]>=0){h=D[f+4>>2];D[m>>2]=D[f>>2];D[m+4>>2]=h;D[m+8>>2]=D[f+8>>2];break U}ta(m,D[f>>2],D[f+4>>2])}D[a+8>>2]=d;D[a>>2]=0;D[a+4>>2]=0;D[a+36>>2]=0;D[a+28>>2]=0;D[a+32>>2]=0;D[b>>2]=a;d=a;f=D[D[c>>2]>>2];if(f){D[c>>2]=f;d=D[b>>2]}pb(D[c+4>>2],d);D[c+8>>2]=D[c+8>>2]+1;b=1;break M}a=d;b=0}B[e+44|0]=b;D[e+40>>2]=a;a=D[e+40>>2];if(B[a+39|0]<0){ma(D[a+28>>2])}b=D[e+12>>2];D[a+28>>2]=D[e+8>>2];D[a+32>>2]=b;D[a+36>>2]=D[e+16>>2];$=e+48|0;if(B[o+11|0]<0){ma(D[o>>2])}$=o+16|0}function nb(a,b,c,d){var e=0,f=0,g=0,h=0,i=0;a:{b:{if(!d){break b}c:{d:{switch(D[a+28>>2]-1|0){case 0:i=1;e:{e=B[a+24|0];if((((c|0)>(e|0)?e:c)|0)<=0){break e}e=D[a>>2];h=D[e>>2];b=D[a+48>>2]+fi(D[a+40>>2],D[a+44>>2],b,0)|0;f=b;b=h+f|0;g=D[e+4>>2];e=g-h|0;if(!E[a+32|0]){if((e|0)<=(f|0)){break a}f=0;while(1){H[(f<<2)+d>>2]=B[b|0];f=f+1|0;e=B[a+24|0];if((f|0)>=(((c|0)>(e|0)?e:c)|0)){break e}b=b+1|0;if(g>>>0>b>>>0){continue}break}break a}if((e|0)<=(f|0)){break a}f=0;while(1){H[(f<<2)+d>>2]=K(B[b|0])/K(127);f=f+1|0;e=B[a+24|0];if((f|0)>=(((c|0)>(e|0)?e:c)|0)){break e}b=b+1|0;if(g>>>0>b>>>0){continue}break}break a}if((c|0)<=(e|0)){break b}c=c-e|0;a=(e<<2)+d|0;break c;case 1:i=1;f:{e=B[a+24|0];if((((c|0)>(e|0)?e:c)|0)<=0){break f}e=D[a>>2];h=D[e>>2];b=D[a+48>>2]+fi(D[a+40>>2],D[a+44>>2],b,0)|0;f=b;b=h+f|0;g=D[e+4>>2];e=g-h|0;if(!E[a+32|0]){if((e|0)<=(f|0)){break a}f=0;while(1){H[(f<<2)+d>>2]=E[b|0];f=f+1|0;e=B[a+24|0];if((f|0)>=(((c|0)>(e|0)?e:c)|0)){break f}b=b+1|0;if(g>>>0>b>>>0){continue}break}break a}if((e|0)<=(f|0)){break a}f=0;while(1){H[(f<<2)+d>>2]=K(E[b|0])/K(255);f=f+1|0;e=B[a+24|0];if((f|0)>=(((c|0)>(e|0)?e:c)|0)){break f}b=b+1|0;if(g>>>0>b>>>0){continue}break}break a}if((c|0)<=(e|0)){break b}c=c-e|0;a=(e<<2)+d|0;break c;case 2:i=1;g:{e=B[a+24|0];if((((c|0)>(e|0)?e:c)|0)<=0){break g}e=D[a>>2];h=D[e>>2];b=D[a+48>>2]+fi(D[a+40>>2],D[a+44>>2],b,0)|0;f=b;b=h+f|0;g=D[e+4>>2];e=g-h|0;if(!E[a+32|0]){if((e|0)<=(f|0)){break a}f=0;while(1){H[(f<<2)+d>>2]=C[b>>1];f=f+1|0;e=B[a+24|0];if((f|0)>=(((c|0)>(e|0)?e:c)|0)){break g}b=b+2|0;if(g>>>0>b>>>0){continue}break}break a}if((e|0)<=(f|0)){break a}f=0;while(1){H[(f<<2)+d>>2]=K(C[b>>1])/K(32767);f=f+1|0;e=B[a+24|0];if((f|0)>=(((c|0)>(e|0)?e:c)|0)){break g}b=b+2|0;if(g>>>0>b>>>0){continue}break}break a}if((c|0)<=(e|0)){break b}c=c-e|0;a=(e<<2)+d|0;break c;case 3:i=1;h:{e=B[a+24|0];if((((c|0)>(e|0)?e:c)|0)<=0){break h}e=D[a>>2];h=D[e>>2];b=D[a+48>>2]+fi(D[a+40>>2],D[a+44>>2],b,0)|0;f=b;b=h+f|0;g=D[e+4>>2];e=g-h|0;if(!E[a+32|0]){if((e|0)<=(f|0)){break a}f=0;while(1){H[(f<<2)+d>>2]=F[b>>1];f=f+1|0;e=B[a+24|0];if((f|0)>=(((c|0)>(e|0)?e:c)|0)){break h}b=b+2|0;if(g>>>0>b>>>0){continue}break}break a}if((e|0)<=(f|0)){break a}f=0;while(1){H[(f<<2)+d>>2]=K(F[b>>1])/K(65535);f=f+1|0;e=B[a+24|0];if((f|0)>=(((c|0)>(e|0)?e:c)|0)){break h}b=b+2|0;if(g>>>0>b>>>0){continue}break}break a}if((c|0)<=(e|0)){break b}c=c-e|0;a=(e<<2)+d|0;break c;case 4:i=1;i:{e=B[a+24|0];if((((c|0)>(e|0)?e:c)|0)<=0){break i}e=D[a>>2];h=D[e>>2];b=D[a+48>>2]+fi(D[a+40>>2],D[a+44>>2],b,0)|0;f=b;b=h+f|0;g=D[e+4>>2];e=g-h|0;if(!E[a+32|0]){if((e|0)<=(f|0)){break a}f=0;while(1){H[(f<<2)+d>>2]=D[b>>2];f=f+1|0;e=B[a+24|0];if((f|0)>=(((c|0)>(e|0)?e:c)|0)){break i}b=b+4|0;if(g>>>0>b>>>0){continue}break}break a}if((e|0)<=(f|0)){break a}f=0;while(1){H[(f<<2)+d>>2]=K(D[b>>2])*K(4.656612873077393e-10);f=f+1|0;e=B[a+24|0];if((f|0)>=(((c|0)>(e|0)?e:c)|0)){break i}b=b+4|0;if(g>>>0>b>>>0){continue}break}break a}if((c|0)<=(e|0)){break b}c=c-e|0;a=(e<<2)+d|0;break c;case 5:i=1;j:{e=B[a+24|0];if((((c|0)>(e|0)?e:c)|0)<=0){break j}e=D[a>>2];h=D[e>>2];b=D[a+48>>2]+fi(D[a+40>>2],D[a+44>>2],b,0)|0;f=b;b=h+f|0;g=D[e+4>>2];e=g-h|0;if(!E[a+32|0]){if((e|0)<=(f|0)){break a}f=0;while(1){H[(f<<2)+d>>2]=G[b>>2];f=f+1|0;e=B[a+24|0];if((f|0)>=(((c|0)>(e|0)?e:c)|0)){break j}b=b+4|0;if(g>>>0>b>>>0){continue}break}break a}if((e|0)<=(f|0)){break a}f=0;while(1){H[(f<<2)+d>>2]=K(G[b>>2])*K(2.3283064365386963e-10);f=f+1|0;e=B[a+24|0];if((f|0)>=(((c|0)>(e|0)?e:c)|0)){break j}b=b+4|0;if(g>>>0>b>>>0){continue}break}break a}if((c|0)<=(e|0)){break b}c=c-e|0;a=(e<<2)+d|0;break c;case 6:i=1;k:{e=B[a+24|0];if((((c|0)>(e|0)?e:c)|0)<=0){break k}e=D[a>>2];h=D[e>>2];b=D[a+48>>2]+fi(D[a+40>>2],D[a+44>>2],b,0)|0;f=b;b=h+f|0;g=D[e+4>>2];e=g-h|0;if(!E[a+32|0]){if((e|0)<=(f|0)){break a}f=0;while(1){H[(f<<2)+d>>2]=+G[b>>2]+ +D[b+4>>2]*4294967296;f=f+1|0;e=B[a+24|0];if((f|0)>=(((c|0)>(e|0)?e:c)|0)){break k}b=b+8|0;if(g>>>0>b>>>0){continue}break}break a}if((e|0)<=(f|0)){break a}f=0;while(1){H[(f<<2)+d>>2]=K(+G[b>>2]+ +D[b+4>>2]*4294967296)*K(10842021724855044e-35);f=f+1|0;e=B[a+24|0];if((f|0)>=(((c|0)>(e|0)?e:c)|0)){break k}b=b+8|0;if(g>>>0>b>>>0){continue}break}break a}if((c|0)<=(e|0)){break b}c=c-e|0;a=(e<<2)+d|0;break c;case 7:i=1;l:{e=B[a+24|0];if((((c|0)>(e|0)?e:c)|0)<=0){break l}e=D[a>>2];h=D[e>>2];b=D[a+48>>2]+fi(D[a+40>>2],D[a+44>>2],b,0)|0;f=b;b=h+f|0;g=D[e+4>>2];e=g-h|0;if(!E[a+32|0]){if((e|0)<=(f|0)){break a}f=0;while(1){H[(f<<2)+d>>2]=+G[b>>2]+ +G[b+4>>2]*4294967296;f=f+1|0;e=B[a+24|0];if((f|0)>=(((c|0)>(e|0)?e:c)|0)){break l}b=b+8|0;if(g>>>0>b>>>0){continue}break}break a}if((e|0)<=(f|0)){break a}f=0;while(1){H[(f<<2)+d>>2]=K(+G[b>>2]+ +G[b+4>>2]*4294967296)*K(5.421010862427522e-20);f=f+1|0;e=B[a+24|0];if((f|0)>=(((c|0)>(e|0)?e:c)|0)){break l}b=b+8|0;if(g>>>0>b>>>0){continue}break}break a}if((c|0)<=(e|0)){break b}c=c-e|0;a=(e<<2)+d|0;break c;case 8:i=1;f=B[a+24|0];if((((c|0)>(f|0)?f:c)|0)>0){g=D[a>>2];f=D[g>>2];b=D[a+48>>2]+fi(D[a+40>>2],D[a+44>>2],b,0)|0;b=f+b|0;g=D[g+4>>2];while(1){if(b>>>0>=g>>>0){break a}H[(e<<2)+d>>2]=H[b>>2];b=b+4|0;e=e+1|0;f=B[a+24|0];if((e|0)<(((c|0)>(f|0)?f:c)|0)){continue}break}}if((c|0)<=(f|0)){break b}c=c-f|0;a=(f<<2)+d|0;break c;case 9:i=1;f=B[a+24|0];if((((c|0)>(f|0)?f:c)|0)>0){g=D[a>>2];f=D[g>>2];b=D[a+48>>2]+fi(D[a+40>>2],D[a+44>>2],b,0)|0;b=f+b|0;g=D[g+4>>2];while(1){if(b>>>0>=g>>>0){break a}H[(e<<2)+d>>2]=I[b>>3];b=b+8|0;e=e+1|0;f=B[a+24|0];if((e|0)<(((c|0)>(f|0)?f:c)|0)){continue}break}}if((c|0)<=(f|0)){break b}c=c-f|0;a=(f<<2)+d|0;break c;case 10:break d;default:break b}}i=1;f=B[a+24|0];if((((c|0)>(f|0)?f:c)|0)>0){g=D[a>>2];f=D[g>>2];b=D[a+48>>2]+fi(D[a+40>>2],D[a+44>>2],b,0)|0;b=f+b|0;while(1){if(G[g+4>>2]<=b>>>0){break a}H[(e<<2)+d>>2]=E[b|0]?K(1):K(0);b=b+1|0;e=e+1|0;f=B[a+24|0];if((e|0)<(((c|0)>(f|0)?f:c)|0)){continue}break}}if((c|0)<=(f|0)){break b}c=c-f|0;a=(f<<2)+d|0}qa(a,0,c<<2)}return i}return 0}function $d(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,E=0,F=0,G=0,H=0,I=0,K=0,L=0,M=0,N=0;g=$+-64|0;$=g;D[a+8>>2]=e;x=a+32|0;f=D[x>>2];d=D[a+36>>2]-f>>2;a:{b:{if(d>>>0>>0){ra(x,e-d|0);D[g+56>>2]=0;D[g+60>>2]=0;D[g+48>>2]=0;D[g+52>>2]=0;D[g+40>>2]=0;D[g+44>>2]=0;D[g+32>>2]=0;D[g+36>>2]=0;D[g+24>>2]=0;D[g+28>>2]=0;D[g+16>>2]=0;D[g+20>>2]=0;D[g>>2]=0;break b}if(d>>>0>e>>>0){D[a+36>>2]=f+(e<<2)}D[g+56>>2]=0;D[g+60>>2]=0;D[g+48>>2]=0;D[g+52>>2]=0;D[g+40>>2]=0;D[g+44>>2]=0;D[g+32>>2]=0;D[g+36>>2]=0;D[g+24>>2]=0;D[g+28>>2]=0;D[g+16>>2]=0;D[g+20>>2]=0;D[g>>2]=0;d=0;if(!e){break a}}xa(g+16|0,e,g);h=D[g+28>>2];d=D[g+32>>2]}D[g>>2]=0;d=d-h>>2;c:{if(d>>>0>=e>>>0){if(d>>>0<=e>>>0){break c}D[g+32>>2]=(e<<2)+h;break c}xa(g+16|12,e-d|0,g)}D[g>>2]=0;f=D[g+40>>2];d=D[g+44>>2]-f>>2;d:{if(d>>>0>=e>>>0){if(d>>>0<=e>>>0){break d}D[g+44>>2]=f+(e<<2);break d}xa(g+40|0,e-d|0,g)}D[g>>2]=0;f=D[g+52>>2];d=D[g+56>>2]-f>>2;e:{if(d>>>0>=e>>>0){if(d>>>0<=e>>>0){break e}D[g+56>>2]=f+(e<<2);break e}xa(g+52|0,e-d|0,g)}f:{if(D[a+8>>2]<=0){break f}i=D[g+16>>2];j=D[a+32>>2];h=0;while(1){d=h<<2;f=D[d+i>>2];n=D[a+16>>2];g:{if((f|0)>(n|0)){D[d+j>>2]=n;break g}d=d+j|0;n=D[a+12>>2];if((n|0)>(f|0)){D[d>>2]=n;break g}D[d>>2]=f}h=h+1|0;d=D[a+8>>2];if((h|0)<(d|0)){continue}break}if((d|0)<=0){break f}d=0;while(1){i=d<<2;f=i+c|0;i=D[b+i>>2]+D[j+i>>2]|0;D[f>>2]=i;h:{if((i|0)>D[a+16>>2]){i=i-D[a+20>>2]|0}else{if((i|0)>=D[a+12>>2]){break h}i=i+D[a+20>>2]|0}D[f>>2]=i}d=d+1|0;if((d|0)>2]){continue}break}}G=D[a+52>>2];q=D[a+48>>2];y=na(16);d=y;D[d>>2]=0;D[d+4>>2]=0;D[d+8>>2]=0;D[d+12>>2]=0;D[g+8>>2]=0;D[g>>2]=0;D[g+4>>2]=0;i:{if(e){if(e>>>0>=1073741824){break i}d=e<<2;s=na(d);D[g>>2]=s;D[g+8>>2]=d+s;qa(s,0,d)}d=D[a+56>>2];A=D[d>>2];d=D[d+4>>2]-A|0;j:{if((d|0)<5){break j}u=d>>2;H=(u|0)>2?u:2;I=u>>>0>1?u:1;B=e&-2;C=e&1;K=e&-4;E=e&3;z=e-1|0;L=e<<2;F=1;n=1;while(1){k:{l:{m:{n:{if((n|0)!=(I|0)){o:{p:{f=D[(n<<2)+A>>2];if((f|0)==-1){break p}k=1;d=f+2|0;j=(f>>>0)%3|0;v=j?f-1|0:d;o=1<>>5|0;i=0;M=(j|0)!=0|(d|0)!=-1;N=D[q>>2];d=f;q:{while(1){r:{if(D[(d>>>3&536870908)+N>>2]>>>d&1){break r}j=D[D[D[q+64>>2]+12>>2]+(d<<2)>>2];if((j|0)==-1){break r}m=D[G>>2];h=D[q+28>>2];r=D[m+(D[h+(j<<2)>>2]<<2)>>2];if((r|0)>=(n|0)){break r}l=j+1|0;l=D[m+(D[h+(((l>>>0)%3|0?l:j-2|0)<<2)>>2]<<2)>>2];if((l|0)>=(n|0)){break r}h=D[m+(D[h+(j+((j>>>0)%3|0?-1:2)<<2)>>2]<<2)>>2];if((h|0)>=(n|0)){break r}s:{if(!e){break s}j=D[(g+16|0)+J(i,12)>>2];m=J(e,h);l=J(e,l);r=J(e,r);h=0;w=0;if(z){while(1){D[j+(h<<2)>>2]=(D[(h+m<<2)+c>>2]+D[(h+l<<2)+c>>2]|0)-D[(h+r<<2)+c>>2];p=h|1;D[j+(p<<2)>>2]=(D[(m+p<<2)+c>>2]+D[(l+p<<2)+c>>2]|0)-D[(r+p<<2)+c>>2];h=h+2|0;w=w+2|0;if((B|0)!=(w|0)){continue}break}}if(!C){break s}D[j+(h<<2)>>2]=(D[(h+m<<2)+c>>2]+D[(h+l<<2)+c>>2]|0)-D[(h+r<<2)+c>>2]}j=4;i=i+1|0;if((i|0)==4){break q}}t:{if(k&1){h=d-2|0;j=d+1|0;d=-1;j=(j>>>0)%3|0?j:h;if((j|0)==-1|D[D[q>>2]+(j>>>3&536870908)>>2]>>>j&1){break t}j=D[D[D[q+64>>2]+12>>2]+(j<<2)>>2];if((j|0)==-1){break t}d=j+1|0;d=(d>>>0)%3|0?d:j-2|0;break t}u:{if((d>>>0)%3|0){h=d-1|0;break u}h=d+2|0;d=-1;if((h|0)==-1){break t}}d=-1;if(D[D[q>>2]+(h>>>3&536870908)>>2]>>>h&1){break t}j=D[D[D[q+64>>2]+12>>2]+(h<<2)>>2];if((j|0)==-1){break t}if((j>>>0)%3|0){d=j-1|0;break t}d=j+2|0}v:{if((d|0)==(f|0)){break v}if(!((k^1)&1|(d|0)!=-1)){if(!M|o&D[D[q>>2]+(t<<2)>>2]){break v}d=D[D[D[q+64>>2]+12>>2]+(v<<2)>>2];if((d|0)==-1){break v}k=0;d=(d>>>0)%3|0?d-1|0:d+2|0}if((d|0)!=-1){continue}}break}j=i;if((j|0)<=0){break p}}if(e){qa(s,0,L)}d=j-1|0;r=(d<<2)+y|0;d=J(d,12)+a|0;v=d;w=D[d- -64>>2];k=0;d=D[g>>2];f=0;while(1){i=D[r>>2];D[r>>2]=i+1;if(i>>>0>=w>>>0){break j}w:{if(D[D[v+60>>2]+(i>>>3&536870908)>>2]>>>i&1){break w}f=f+1|0;if(!e){break w}m=D[(g+16|0)+J(k,12)>>2];i=0;h=0;p=0;if(z>>>0>=3){while(1){l=h<<2;o=l+d|0;D[o>>2]=D[o>>2]+D[m+l>>2];o=l|4;t=o+d|0;D[t>>2]=D[t>>2]+D[m+o>>2];o=l|8;t=o+d|0;D[t>>2]=D[t>>2]+D[m+o>>2];l=l|12;o=l+d|0;D[o>>2]=D[o>>2]+D[m+l>>2];h=h+4|0;p=p+4|0;if((K|0)!=(p|0)){continue}break}}if(!E){break w}while(1){l=h<<2;p=l+d|0;D[p>>2]=D[p>>2]+D[m+l>>2];h=h+1|0;i=i+1|0;if((E|0)!=(i|0)){continue}break}}k=k+1|0;if((k|0)!=(j|0)){continue}break}i=J(e,n);if(!f){break o}if(!e){break l}h=0;d=0;if(z){break n}break m}i=J(e,n)}if(D[a+8>>2]<=0){break k}k=(J(n-1|0,e)<<2)+c|0;j=D[x>>2];h=0;while(1){d=h<<2;f=D[d+k>>2];m=D[a+16>>2];x:{if((f|0)>(m|0)){D[d+j>>2]=m;break x}d=d+j|0;m=D[a+12>>2];if((m|0)>(f|0)){D[d>>2]=m;break x}D[d>>2]=f}h=h+1|0;f=D[a+8>>2];if((h|0)<(f|0)){continue}break}d=0;if((f|0)<=0){break k}f=i<<2;h=f+c|0;k=b+f|0;while(1){i=d<<2;f=i+h|0;i=D[i+k>>2]+D[j+i>>2]|0;D[f>>2]=i;y:{if((i|0)>D[a+16>>2]){i=i-D[a+20>>2]|0}else{if((i|0)>=D[a+12>>2]){break y}i=i+D[a+20>>2]|0}D[f>>2]=i}d=d+1|0;if((d|0)>2]){continue}break}break k}va();T()}while(1){j=h<<2;k=j+s|0;D[k>>2]=D[k>>2]/(f|0);j=(j|4)+s|0;D[j>>2]=D[j>>2]/(f|0);h=h+2|0;d=d+2|0;if((B|0)!=(d|0)){continue}break}}if(!C){break l}d=(h<<2)+s|0;D[d>>2]=D[d>>2]/(f|0)}if(D[a+8>>2]<=0){break k}j=D[x>>2];h=0;while(1){d=h<<2;f=D[d+s>>2];k=D[a+16>>2];z:{if((f|0)>(k|0)){D[d+j>>2]=k;break z}d=d+j|0;k=D[a+12>>2];if((k|0)>(f|0)){D[d>>2]=k;break z}D[d>>2]=f}h=h+1|0;f=D[a+8>>2];if((h|0)<(f|0)){continue}break}d=0;if((f|0)<=0){break k}f=i<<2;h=f+c|0;k=b+f|0;while(1){i=d<<2;f=i+h|0;i=D[i+k>>2]+D[j+i>>2]|0;D[f>>2]=i;A:{if((i|0)>D[a+16>>2]){i=i-D[a+20>>2]|0}else{if((i|0)>=D[a+12>>2]){break A}i=i+D[a+20>>2]|0}D[f>>2]=i}d=d+1|0;if((d|0)>2]){continue}break}}n=n+1|0;F=(u|0)>(n|0);if((n|0)!=(H|0)){continue}break}}a=D[g>>2];if(a){ma(a)}ma(y);a=D[g+52>>2];if(a){D[g+56>>2]=a;ma(a)}a=D[g+40>>2];if(a){D[g+44>>2]=a;ma(a)}a=D[g+28>>2];if(a){D[g+32>>2]=a;ma(a)}a=D[g+16>>2];if(a){D[g+20>>2]=a;ma(a)}$=g- -64|0;return(F^-1)&1}pa();T()}function wd(a,b){var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0;f=$-32|0;$=f;k=D[D[a+4>>2]+44>>2];d=D[a+8>>2];h=D[d>>2];d=D[d+4>>2];D[f+24>>2]=0;D[f+16>>2]=0;D[f+20>>2]=0;e=(d-h>>2>>>0)/3|0;d=D[k+96>>2];g=(D[k+100>>2]-d|0)/12|0;a:{if(e>>>0>g>>>0){j=e-g|0;c=D[k+104>>2];h=D[k+100>>2];if(j>>>0<=(c-h|0)/12>>>0){b:{if(!j){break b}d=J(j,12);j=d;e=d-12|0;g=((e>>>0)/12|0)+1&3;c:{if(!g){d=h;break c}d=h;while(1){c=D[f+20>>2];D[d>>2]=D[f+16>>2];D[d+4>>2]=c;D[d+8>>2]=D[f+24>>2];d=d+12|0;i=i+1|0;if((g|0)!=(i|0)){continue}break}}h=h+j|0;if(e>>>0<36){break b}while(1){c=D[f+20>>2];D[d>>2]=D[f+16>>2];D[d+4>>2]=c;D[d+8>>2]=D[f+24>>2];D[d+20>>2]=D[f+24>>2];c=D[f+20>>2];D[d+12>>2]=D[f+16>>2];D[d+16>>2]=c;D[d+32>>2]=D[f+24>>2];c=D[f+20>>2];D[d+24>>2]=D[f+16>>2];D[d+28>>2]=c;c=D[f+20>>2];D[d+36>>2]=D[f+16>>2];D[d+40>>2]=c;D[d+44>>2]=D[f+24>>2];d=d+48|0;if((h|0)!=(d|0)){continue}break}}D[k+100>>2]=h;break a}d:{d=D[k+96>>2];g=(h-d|0)/12|0;e=g+j|0;if(e>>>0<357913942){c=(c-d|0)/12|0;d=c<<1;l=c>>>0<178956970?d>>>0>e>>>0?d:e:357913941;if(l){if(l>>>0>=357913942){break d}o=na(J(l,12))}c=J(g,12)+o|0;d=c;m=J(j,12);j=m-12|0;e=((j>>>0)/12|0)+1&3;if(e){d=c;while(1){g=D[f+20>>2];D[d>>2]=D[f+16>>2];D[d+4>>2]=g;D[d+8>>2]=D[f+24>>2];d=d+12|0;i=i+1|0;if((e|0)!=(i|0)){continue}break}}e=c+m|0;if(j>>>0>=36){while(1){g=D[f+20>>2];D[d>>2]=D[f+16>>2];D[d+4>>2]=g;D[d+8>>2]=D[f+24>>2];D[d+20>>2]=D[f+24>>2];g=D[f+20>>2];D[d+12>>2]=D[f+16>>2];D[d+16>>2]=g;D[d+32>>2]=D[f+24>>2];g=D[f+20>>2];D[d+24>>2]=D[f+16>>2];D[d+28>>2]=g;g=D[f+20>>2];D[d+36>>2]=D[f+16>>2];D[d+40>>2]=g;D[d+44>>2]=D[f+24>>2];d=d+48|0;if((e|0)!=(d|0)){continue}break}}g=D[k+96>>2];h=h-g|0;d=c+J((h|0)/-12|0,12)|0;if((h|0)>0){oa(d,g,h)}D[k+104>>2]=J(l,12)+o;D[k+100>>2]=e;D[k+96>>2]=d;if(g){ma(g)}break a}pa();T()}sa();T()}if(e>>>0>=g>>>0){break a}D[k+100>>2]=d+J(e,12)}e:{if(D[a+216>>2]==D[a+220>>2]){e=D[a+4>>2];h=D[e+44>>2];d=D[h+100>>2];m=D[h+96>>2];if((d|0)!=(m|0)){d=(d-m|0)/12|0;g=d>>>0>1?d:1;c=0;while(1){k=D[a+8>>2];h=m+J(c,12)|0;l=J(c,3);f:{g:{if((l|0)==-1){i=D[(D[k>>2]+(l<<2)|0)+4>>2];n=-1;d=1;break g}i=-1;n=D[D[k>>2]+(l<<2)>>2];d=l+1|0;if((d|0)==-1){d=0;break g}i=D[D[k>>2]+(d<<2)>>2];d=l+2|0;j=-1;if((d|0)==-1){break f}}j=D[D[k>>2]+(d<<2)>>2]}D[h+8>>2]=j;D[h+4>>2]=i;D[h>>2]=n;c=c+1|0;if((g|0)!=(c|0)){continue}break}}D[D[e+4>>2]+80>>2]=b;c=1;break e}h=0;D[f+24>>2]=0;D[f+16>>2]=0;D[f+20>>2]=0;o=D[a+8>>2];c=D[o>>2];d=D[o+4>>2];D[f+8>>2]=0;D[f>>2]=0;D[f+4>>2]=0;b=0;h:{i:{j:{k:{l:{m:{if((d|0)!=(c|0)){d=d-c|0;if((d|0)<0){break m}b=na(d);D[f>>2]=b;D[f+8>>2]=(d>>2<<2)+b;u=f,v=qa(b,0,d)+d|0,D[u+4>>2]=v}c=D[o+24>>2];if((D[o+28>>2]-c|0)<=0){break i}d=0;while(1){g=D[(q<<2)+c>>2];n:{if((g|0)==-1){break n}o:{if(D[D[a+120>>2]+(q>>>3&536870908)>>2]>>>q&1){break o}s=D[a+216>>2];c=D[a+220>>2];if((s|0)==(c|0)){break o}i=g+2|0;e=(g>>>0)%3|0;t=e?g-1|0:i;c=(c-s|0)/144|0;k=c>>>0>1?c:1;r=0;l=(e|0)!=0|(i|0)!=-1;while(1){e=g<<2;i=J(r,144)+s|0;c=D[e+D[D[i+68>>2]>>2]>>2];p:{if(!(D[D[i+16>>2]+(c>>>3&536870908)>>2]>>>c&1)){break p}c=-1;q:{if(!l){break q}j=D[D[o+12>>2]+(t<<2)>>2];c=-1;if((j|0)==-1){break q}c=j-1|0;if((j>>>0)%3|0){break q}c=j+2|0}if((g|0)==(c|0)){break p}m=D[i+32>>2];j=D[m+e>>2];while(1){i=0;if((c|0)==-1){break h}if((j|0)!=D[m+(c<<2)>>2]){g=c;break o}r:{s:{if((c>>>0)%3|0){i=c-1|0;break s}i=c+2|0;e=-1;if((i|0)==-1){break r}}c=D[D[o+12>>2]+(i<<2)>>2];e=-1;if((c|0)==-1){break r}e=c-1|0;if((c>>>0)%3|0){break r}e=c+2|0}c=e;if((g|0)!=(c|0)){continue}break}}r=r+1|0;if((k|0)!=(r|0)){continue}break}}j=n-d|0;i=j>>2;D[(g<<2)+b>>2]=i;t:{if(n>>>0

>>0){D[n>>2]=g;n=n+4|0;D[f+20>>2]=n;break t}e=i+1|0;if(e>>>0>=1073741824){break l}c=p-d|0;h=c>>1;e=c>>>0<2147483644?e>>>0>>0?h:e:1073741823;if(e){if(e>>>0>=1073741824){break k}h=na(e<<2)}else{h=0}c=h+(i<<2)|0;D[c>>2]=g;p=(e<<2)+h|0;n=c+4|0;if((j|0)>0){oa(h,d,j)}D[f+24>>2]=p;D[f+20>>2]=n;D[f+16>>2]=h;if(d){ma(d);o=D[a+8>>2]}d=h}if((g|0)==-1){break n}u:{if((g>>>0)%3|0){c=g-1|0;break u}c=g+2|0;if((c|0)==-1){break n}}c=D[D[o+12>>2]+(c<<2)>>2];if((c|0)==-1){break n}c=c+((c>>>0)%3|0?-1:2)|0;if((c|0)==-1){break n}i=g;if((g|0)==(c|0)){break n}while(1){e=c;v:{w:{c=D[a+220>>2];k=D[a+216>>2];if((c|0)==(k|0)){break w}c=(c-k|0)/144|0;l=c>>>0>1?c:1;c=0;while(1){m=D[(k+J(c,144)|0)+32>>2];j=e<<2;if(D[m+j>>2]==D[m+(i<<2)>>2]){c=c+1|0;if((l|0)!=(c|0)){continue}break w}break}d=b+j|0;m=n-h|0;j=m>>2;D[d>>2]=j;if(n>>>0

>>0){D[n>>2]=e;n=n+4|0;D[f+20>>2]=n;d=h;break v}i=j+1|0;if(i>>>0>=1073741824){break j}c=p-h|0;d=c>>1;i=c>>>0<2147483644?d>>>0>i>>>0?d:i:1073741823;if(i){if(i>>>0>=1073741824){break k}d=na(i<<2)}else{d=0}c=d+(j<<2)|0;D[c>>2]=e;p=(i<<2)+d|0;n=c+4|0;if((m|0)>0){oa(d,h,m)}D[f+24>>2]=p;D[f+20>>2]=n;D[f+16>>2]=d;if(!h){h=d;break v}ma(h);o=D[a+8>>2];h=d;break v}D[(e<<2)+b>>2]=D[(i<<2)+b>>2]}if((e|0)==-1){break n}x:{if((e>>>0)%3|0){c=e-1|0;break x}c=e+2|0;if((c|0)==-1){break n}}c=D[D[o+12>>2]+(c<<2)>>2];if((c|0)==-1){break n}c=c+((c>>>0)%3|0?-1:2)|0;if((c|0)==-1){break n}i=e;if((c|0)!=(g|0)){continue}break}}q=q+1|0;c=D[o+24>>2];if((q|0)>2]-c>>2){continue}break}break i}pa();T()}pa();T()}sa();T()}pa();T()}m=D[a+4>>2];d=D[m+44>>2];a=D[d+100>>2];k=D[d+96>>2];y:{if((a|0)==(k|0)){break y}d=(a-k|0)/12|0;a=d>>>0>1?d:1;j=a&1;c=0;if(d>>>0>=2){i=a&-2;d=0;while(1){e=J(c,12);l=e+b|0;g=D[l+4>>2];a=D[l>>2];e=e+k|0;D[e+8>>2]=D[l+8>>2];D[e>>2]=a;D[e+4>>2]=g;e=J(c|1,12);l=e+b|0;g=D[l+4>>2];a=D[l>>2];e=e+k|0;D[e+8>>2]=D[l+8>>2];D[e>>2]=a;D[e+4>>2]=g;c=c+2|0;d=d+2|0;if((i|0)!=(d|0)){continue}break}}if(!j){break y}c=J(c,12);g=c+b|0;d=D[g+4>>2];a=D[g>>2];c=c+k|0;D[c+8>>2]=D[g+8>>2];D[c>>2]=a;D[c+4>>2]=d}D[D[m+4>>2]+80>>2]=n-h>>2;i=1}c=i;if(b){ma(b)}if(!h){break e}D[f+20>>2]=h;ma(h)}$=f+32|0;return c} -function Xh(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,E=0,F=0,G=0,H=0,I=0,K=0,L=0;h=$+-64|0;$=h;D[a+8>>2]=e;w=a+32|0;f=D[w>>2];d=D[a+36>>2]-f>>2;a:{b:{if(d>>>0>>0){ra(w,e-d|0);D[h+56>>2]=0;D[h+60>>2]=0;D[h+48>>2]=0;D[h+52>>2]=0;D[h+40>>2]=0;D[h+44>>2]=0;D[h+32>>2]=0;D[h+36>>2]=0;D[h+24>>2]=0;D[h+28>>2]=0;D[h+16>>2]=0;D[h+20>>2]=0;D[h>>2]=0;break b}if(d>>>0>e>>>0){D[a+36>>2]=f+(e<<2)}D[h+56>>2]=0;D[h+60>>2]=0;D[h+48>>2]=0;D[h+52>>2]=0;D[h+40>>2]=0;D[h+44>>2]=0;D[h+32>>2]=0;D[h+36>>2]=0;D[h+24>>2]=0;D[h+28>>2]=0;D[h+16>>2]=0;D[h+20>>2]=0;D[h>>2]=0;d=0;if(!e){break a}}xa(h+16|0,e,h);i=D[h+28>>2];d=D[h+32>>2]}D[h>>2]=0;d=d-i>>2;c:{if(d>>>0>=e>>>0){if(d>>>0<=e>>>0){break c}D[h+32>>2]=(e<<2)+i;break c}xa(h+16|12,e-d|0,h)}D[h>>2]=0;f=D[h+40>>2];d=D[h+44>>2]-f>>2;d:{if(d>>>0>=e>>>0){if(d>>>0<=e>>>0){break d}D[h+44>>2]=f+(e<<2);break d}xa(h+40|0,e-d|0,h)}D[h>>2]=0;f=D[h+52>>2];d=D[h+56>>2]-f>>2;e:{if(d>>>0>=e>>>0){if(d>>>0<=e>>>0){break e}D[h+56>>2]=f+(e<<2);break e}xa(h+52|0,e-d|0,h)}f:{if(D[a+8>>2]<=0){break f}g=D[h+16>>2];j=D[a+32>>2];i=0;while(1){d=i<<2;f=D[d+g>>2];m=D[a+16>>2];g:{if((f|0)>(m|0)){D[d+j>>2]=m;break g}d=d+j|0;m=D[a+12>>2];if((m|0)>(f|0)){D[d>>2]=m;break g}D[d>>2]=f}i=i+1|0;d=D[a+8>>2];if((i|0)<(d|0)){continue}break}if((d|0)<=0){break f}d=0;while(1){g=d<<2;f=g+c|0;g=D[b+g>>2]+D[g+j>>2]|0;D[f>>2]=g;h:{if((g|0)>D[a+16>>2]){g=g-D[a+20>>2]|0}else{if((g|0)>=D[a+12>>2]){break h}g=g+D[a+20>>2]|0}D[f>>2]=g}d=d+1|0;if((d|0)>2]){continue}break}}G=D[a+52>>2];z=D[a+48>>2];x=na(16);d=x;D[d>>2]=0;D[d+4>>2]=0;D[d+8>>2]=0;D[d+12>>2]=0;D[h+8>>2]=0;D[h>>2]=0;D[h+4>>2]=0;i:{if(e){if(e>>>0>=1073741824){break i}d=e<<2;t=na(d);D[h>>2]=t;D[h+8>>2]=d+t;qa(t,0,d)}d=D[a+56>>2];A=D[d>>2];d=D[d+4>>2]-A|0;j:{if((d|0)<5){break j}v=d>>2;H=(v|0)>2?v:2;I=v>>>0>1?v:1;B=e&-2;C=e&1;K=e&-4;E=e&3;y=e-1|0;L=e<<2;F=1;m=1;while(1){k:{l:{m:{n:{if((m|0)!=(I|0)){o:{p:{f=D[(m<<2)+A>>2];if((f|0)==-1){break p}n=D[z+12>>2];d=f+2|0;g=(f>>>0)%3|0;q=n+((g?f-1|0:d)<<2)|0;j=0;u=(g|0)!=0|(d|0)!=-1;k=1;d=f;q:{while(1){g=D[n+(d<<2)>>2];r:{if((g|0)==-1){break r}l=-1;p=D[G>>2];r=D[z>>2];i=p+(D[r+(g<<2)>>2]<<2)|0;o=g+1|0;o=(o>>>0)%3|0?o:g-2|0;if((o|0)!=-1){l=D[r+(o<<2)>>2]}o=D[i>>2];s:{t:{if((g>>>0)%3|0){i=g-1|0;break t}i=g+2|0;s=-1;if((i|0)==-1){break s}}s=D[r+(i<<2)>>2]}if((m|0)<=(o|0)){break r}i=D[p+(l<<2)>>2];if((i|0)>=(m|0)){break r}l=D[p+(s<<2)>>2];if((l|0)>=(m|0)){break r}g=D[(h+16|0)+J(j,12)>>2];u:{if(!e){break u}l=J(e,l);r=J(e,i);p=J(e,o);i=0;s=0;if(y){while(1){D[g+(i<<2)>>2]=(D[(i+l<<2)+c>>2]+D[(i+r<<2)+c>>2]|0)-D[(i+p<<2)+c>>2];o=i|1;D[g+(o<<2)>>2]=(D[(l+o<<2)+c>>2]+D[(o+r<<2)+c>>2]|0)-D[(o+p<<2)+c>>2];i=i+2|0;s=s+2|0;if((B|0)!=(s|0)){continue}break}}if(!C){break u}D[g+(i<<2)>>2]=(D[(i+l<<2)+c>>2]+D[(i+r<<2)+c>>2]|0)-D[(i+p<<2)+c>>2]}g=4;j=j+1|0;if((j|0)==4){break q}}v:{if(k&1){i=d+1|0;d=(i>>>0)%3|0?i:d-2|0;g=-1;if((d|0)==-1){break v}d=D[n+(d<<2)>>2];g=-1;if((d|0)==-1){break v}g=d+1|0;g=(g>>>0)%3|0?g:d-2|0;break v}w:{if((d>>>0)%3|0){i=d-1|0;break w}i=d+2|0;g=-1;if((i|0)==-1){break v}}d=D[n+(i<<2)>>2];g=-1;if((d|0)==-1){break v}g=d-1|0;if((d>>>0)%3|0){break v}g=d+2|0}d=g;x:{if((f|0)==(d|0)){break x}if(!((k^1)&1|(d|0)!=-1)){if(!u){break x}d=D[q>>2];if((d|0)==-1){break x}k=0;d=(d>>>0)%3|0?d-1|0:d+2|0}if((d|0)!=-1){continue}}break}g=j;if((g|0)<=0){break p}}if(e){qa(t,0,L)}d=g-1|0;r=(d<<2)+x|0;d=J(d,12)+a|0;o=d;s=D[d- -64>>2];k=0;d=D[h>>2];f=0;while(1){j=D[r>>2];D[r>>2]=j+1;if(j>>>0>=s>>>0){break j}y:{if(D[D[o+60>>2]+(j>>>3&536870908)>>2]>>>j&1){break y}f=f+1|0;if(!e){break y}j=D[(h+16|0)+J(k,12)>>2];l=0;i=0;p=0;if(y>>>0>=3){while(1){n=i<<2;q=n+d|0;D[q>>2]=D[q>>2]+D[j+n>>2];q=n|4;u=q+d|0;D[u>>2]=D[u>>2]+D[j+q>>2];q=n|8;u=q+d|0;D[u>>2]=D[u>>2]+D[j+q>>2];n=n|12;q=n+d|0;D[q>>2]=D[q>>2]+D[j+n>>2];i=i+4|0;p=p+4|0;if((K|0)!=(p|0)){continue}break}}if(!E){break y}while(1){n=i<<2;p=n+d|0;D[p>>2]=D[p>>2]+D[j+n>>2];i=i+1|0;l=l+1|0;if((E|0)!=(l|0)){continue}break}}k=k+1|0;if((k|0)!=(g|0)){continue}break}g=J(e,m);if(!f){break o}if(!e){break l}i=0;d=0;if(y){break n}break m}g=J(e,m)}if(D[a+8>>2]<=0){break k}k=(J(m-1|0,e)<<2)+c|0;j=D[w>>2];i=0;while(1){d=i<<2;f=D[d+k>>2];l=D[a+16>>2];z:{if((f|0)>(l|0)){D[d+j>>2]=l;break z}d=d+j|0;l=D[a+12>>2];if((l|0)>(f|0)){D[d>>2]=l;break z}D[d>>2]=f}i=i+1|0;f=D[a+8>>2];if((i|0)<(f|0)){continue}break}d=0;if((f|0)<=0){break k}f=g<<2;i=f+c|0;k=b+f|0;while(1){g=d<<2;f=g+i|0;g=D[g+k>>2]+D[g+j>>2]|0;D[f>>2]=g;A:{if((g|0)>D[a+16>>2]){g=g-D[a+20>>2]|0}else{if((g|0)>=D[a+12>>2]){break A}g=g+D[a+20>>2]|0}D[f>>2]=g}d=d+1|0;if((d|0)>2]){continue}break}break k}va();T()}while(1){j=i<<2;k=j+t|0;D[k>>2]=D[k>>2]/(f|0);j=(j|4)+t|0;D[j>>2]=D[j>>2]/(f|0);i=i+2|0;d=d+2|0;if((B|0)!=(d|0)){continue}break}}if(!C){break l}d=(i<<2)+t|0;D[d>>2]=D[d>>2]/(f|0)}if(D[a+8>>2]<=0){break k}j=D[w>>2];i=0;while(1){d=i<<2;f=D[d+t>>2];k=D[a+16>>2];B:{if((f|0)>(k|0)){D[d+j>>2]=k;break B}d=d+j|0;k=D[a+12>>2];if((k|0)>(f|0)){D[d>>2]=k;break B}D[d>>2]=f}i=i+1|0;f=D[a+8>>2];if((i|0)<(f|0)){continue}break}d=0;if((f|0)<=0){break k}f=g<<2;i=f+c|0;k=b+f|0;while(1){g=d<<2;f=g+i|0;g=D[g+k>>2]+D[g+j>>2]|0;D[f>>2]=g;C:{if((g|0)>D[a+16>>2]){g=g-D[a+20>>2]|0}else{if((g|0)>=D[a+12>>2]){break C}g=g+D[a+20>>2]|0}D[f>>2]=g}d=d+1|0;if((d|0)>2]){continue}break}}m=m+1|0;F=(v|0)>(m|0);if((m|0)!=(H|0)){continue}break}}a=D[h>>2];if(a){ma(a)}ma(x);a=D[h+52>>2];if(a){D[h+56>>2]=a;ma(a)}a=D[h+40>>2];if(a){D[h+44>>2]=a;ma(a)}a=D[h+28>>2];if(a){D[h+32>>2]=a;ma(a)}a=D[h+16>>2];if(a){D[h+20>>2]=a;ma(a)}$=h- -64|0;return(F^-1)&1}pa();T()}function Dd(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0;i=$-96|0;$=i;g=D[a+4>>2];d=D[g+32>>2];j=D[d+8>>2];f=j;n=D[d+12>>2];e=n;c=D[d+20>>2];o=D[d+16>>2];a:{if((e|0)<=(c|0)&o>>>0>=f>>>0|(c|0)>(e|0)){break a}m=D[d>>2];p=E[m+o|0];f=o+1|0;e=f?c:c+1|0;D[d+16>>2]=f;D[d+20>>2]=e;if((e|0)>=(n|0)&f>>>0>=j>>>0|(e|0)>(n|0)){break a}l=E[f+m|0];f=o+2|0;e=f>>>0<2?c+1|0:c;h=f;D[d+16>>2]=f;D[d+20>>2]=e;q=p<<24>>24;b:{if((q|0)>=0){f=D[a+216>>2];if(p>>>0>=(D[a+220>>2]-f|0)/144>>>0){break a}f=f+J(p,144)|0;if(D[f>>2]<0){break b}break a}if(D[a+212>>2]>=0){break a}f=a+212|0}D[f>>2]=b;c:{d:{e:{f:{g:{h:{f=F[g+36>>1];i:{if(((f<<8|f>>>8)&65535)>>>0>=258){if((e|0)>=(n|0)&h>>>0>=j>>>0|(e|0)>(n|0)){break a}f=E[h+m|0];e=o+3|0;c=e>>>0<3?c+1|0:c;D[d+16>>2]=e;D[d+20>>2]=c;c=f>>>0>1;if(c){break a}c=c?0:f;if(!l){break i}if(!c){break h}break a}if(l){break g}c=0}if((q|0)<0){e=a+184|0}else{d=D[a+216>>2]+J(p,144)|0;B[d+100|0]=0;e=d+104|0}d=e;if((c|0)!=1){break e}e=$-112|0;$=e;m=D[D[a+4>>2]+44>>2];c=na(120);D[c>>2]=8924;D[c+4>>2]=0;D[c+116>>2]=0;D[c+112>>2]=d;D[c+108>>2]=m;D[c+12>>2]=0;D[c+16>>2]=0;D[c+20>>2]=0;D[c+24>>2]=0;D[c+28>>2]=0;D[c+32>>2]=0;D[c+36>>2]=0;D[c+40>>2]=0;D[c+44>>2]=0;D[c+48>>2]=0;D[c+52>>2]=0;D[c+56>>2]=0;D[c+60>>2]=0;D[c+8>>2]=9136;f=c- -64|0;D[f>>2]=0;D[f+4>>2]=0;D[c+72>>2]=0;D[c+76>>2]=0;D[c+80>>2]=0;D[c+84>>2]=0;D[c+88>>2]=0;D[c+104>>2]=0;D[c+96>>2]=0;D[c+100>>2]=0;j=D[a+8>>2];D[e+48>>2]=0;D[e+52>>2]=0;D[e+40>>2]=0;D[e+44>>2]=0;l=e+32|0;f=l;D[f>>2]=0;D[f+4>>2]=0;D[e+24>>2]=0;D[e+28>>2]=0;f=e- -64|0;D[f>>2]=0;D[f+4>>2]=0;D[e+72>>2]=0;D[e+76>>2]=0;D[e+80>>2]=0;D[e+84>>2]=0;D[e+88>>2]=0;D[e+104>>2]=0;D[e+16>>2]=0;D[e+20>>2]=0;D[e+56>>2]=0;D[e+60>>2]=0;D[e+8>>2]=9136;D[e+96>>2]=0;D[e+100>>2]=0;D[e+12>>2]=j;h=D[j>>2];f=D[j+4>>2];B[e+111|0]=0;n=l;l=e+111|0;Ha(n,(f-h>>2>>>0)/3|0,l);f=D[e+12>>2];h=D[f+28>>2];f=D[f+24>>2];B[e+111|0]=0;Ha(e+44|0,h-f>>2,l);D[e+28>>2]=c;D[e+24>>2]=m;D[e+20>>2]=d;D[e+16>>2]=j;d=c+8|0;h=e+8|0;ic(d,h);j:{if((d|0)==(h|0)){D[c+92>>2]=D[h+84>>2];break j}ib(c+56|0,D[h+48>>2],D[h+52>>2]);ib(c+68|0,D[h+60>>2],D[h- -64>>2]);ib(c+80|0,D[h+72>>2],D[h+76>>2]);D[c+92>>2]=D[h+84>>2];k:{l=D[h+92>>2];j=D[h+88>>2];h=l-j|0;m=h>>2;f=D[c+104>>2];g=D[c+96>>2];if(m>>>0<=f-g>>2>>>0){d=D[c+100>>2]-g|0;f=d>>2;h=f>>>0>>0?d+j|0:l;d=h-j|0;if((h|0)!=(j|0)){Ra(g,j,d)}if(f>>>0>>0){d=D[c+100>>2];f=l-h|0;if((f|0)>0){d=oa(d,h,f)+f|0}D[c+100>>2]=d;break k}D[c+100>>2]=d+g;break k}if(g){D[c+100>>2]=g;ma(g);D[c+104>>2]=0;D[c+96>>2]=0;D[c+100>>2]=0;f=0}l:{if((h|0)<0){break l}d=f>>1;d=f>>>0<2147483644?d>>>0>m>>>0?d:m:1073741823;if(d>>>0>=1073741824){break l}f=d<<2;d=na(f);D[c+96>>2]=d;D[c+100>>2]=d;D[c+104>>2]=d+f;if((j|0)!=(l|0)){d=oa(d,j,h)+h|0}D[c+100>>2]=d;break k}pa();T()}}D[e+8>>2]=9136;d=D[e+96>>2];if(d){D[e+100>>2]=d;ma(d)}d=D[e+80>>2];if(d){D[e+84>>2]=d;ma(d)}d=D[e+68>>2];if(d){D[e+72>>2]=d;ma(d)}d=D[e+56>>2];if(d){D[e+60>>2]=d;ma(d)}D[e+8>>2]=9372;d=D[e+44>>2];if(d){ma(d)}d=D[e+32>>2];if(d){ma(d)}$=e+112|0;break d}if((q|0)>=0){break f}break a}if((q|0)<0){break a}}d=D[a+216>>2];f=D[g+44>>2];c=na(80);D[c>>2]=9684;D[c+4>>2]=0;D[c+76>>2]=0;D[c+68>>2]=f;D[c+8>>2]=8624;D[c+12>>2]=0;D[c+16>>2]=0;D[c+20>>2]=0;D[c+24>>2]=0;D[c+28>>2]=0;D[c+32>>2]=0;D[c+36>>2]=0;D[c+40>>2]=0;D[c+44>>2]=0;D[c+48>>2]=0;D[c+52>>2]=0;k=d+J(p,144)|0;e=k+104|0;D[c+72>>2]=e;D[c- -64>>2]=0;D[c+56>>2]=0;D[c+60>>2]=0;D[i+24>>2]=f;D[i+68>>2]=0;D[i+72>>2]=0;D[i+60>>2]=0;D[i+64>>2]=0;D[i+52>>2]=0;D[i+56>>2]=0;D[i+44>>2]=0;D[i+48>>2]=0;D[i+84>>2]=0;D[i+88>>2]=0;D[i+76>>2]=0;D[i+80>>2]=0;D[i+28>>2]=c;d=D[i+28>>2];D[i+8>>2]=D[i+24>>2];D[i+12>>2]=d;D[i+20>>2]=e;e=k+4|0;D[i+16>>2]=e;D[i+36>>2]=0;D[i+40>>2]=0;D[i+32>>2]=8624;d=D[i+20>>2];D[i>>2]=D[i+16>>2];D[i+4>>2]=d;k=i+32|0;Cd(k,e,i);d=c+8|0;ic(d,k);if((d|0)!=(k|0)){ib(c+56|0,D[k+48>>2],D[k+52>>2])}Bd(k);break c}g=$+-64|0;$=g;m=D[D[a+4>>2]+44>>2];c=na(80);D[c>>2]=9392;D[c+4>>2]=0;D[c+76>>2]=0;D[c+72>>2]=d;D[c+68>>2]=m;D[c+8>>2]=9556;D[c+12>>2]=0;D[c+16>>2]=0;D[c+20>>2]=0;D[c+24>>2]=0;D[c+28>>2]=0;D[c+32>>2]=0;D[c+36>>2]=0;D[c+40>>2]=0;D[c+44>>2]=0;D[c+48>>2]=0;D[c+52>>2]=0;D[c- -64>>2]=0;l=c+56|0;e=l;D[e>>2]=0;D[e+4>>2]=0;j=D[a+8>>2];D[g+40>>2]=0;D[g+44>>2]=0;D[g+32>>2]=0;D[g+36>>2]=0;h=g+24|0;e=h;D[e>>2]=0;D[e+4>>2]=0;D[g+16>>2]=0;D[g+20>>2]=0;D[g+56>>2]=0;D[g+8>>2]=0;D[g+12>>2]=0;D[g+48>>2]=0;D[g+52>>2]=0;D[g>>2]=9556;D[g+4>>2]=j;f=D[j>>2];e=D[j+4>>2];B[g+63|0]=0;n=h;h=g+63|0;Ha(n,(e-f>>2>>>0)/3|0,h);e=D[g+4>>2];f=D[e+28>>2];e=D[e+24>>2];B[g+63|0]=0;Ha(g+36|0,f-e>>2,h);D[g+20>>2]=c;D[g+16>>2]=m;D[g+12>>2]=d;D[g+8>>2]=j;ic(c+8|0,g);ib(l,D[g+48>>2],D[g+52>>2]);D[g>>2]=9556;d=D[g+48>>2];if(d){D[g+52>>2]=d;ma(d)}D[g>>2]=9372;d=D[g+36>>2];if(d){ma(d)}d=D[g+24>>2];if(d){ma(d)}$=g- -64|0}if(!c){break a}}c=wc(na(64),c);h=D[a+4>>2];a=c;c=b;m:{n:{if((c|0)>=0){e=h+8|0;b=D[h+12>>2];d=D[h+8>>2];f=b-d>>2;o:{if((f|0)>(c|0)){break o}k=c+1|0;if(c>>>0>=f>>>0){Pb(e,k-f|0);break o}if(f>>>0<=k>>>0){break o}d=d+(k<<2)|0;if((d|0)!=(b|0)){while(1){b=b-4|0;k=D[b>>2];D[b>>2]=0;if(k){ba[D[D[k>>2]+4>>2]](k)}if((b|0)!=(d|0)){continue}break}}D[h+12>>2]=d}d=D[e>>2]+(c<<2)|0;b=D[d>>2];D[d>>2]=a;if(b){break n}break m}b=a;if(!a){break m}}ba[D[D[b>>2]+4>>2]](b)}k=(c^-1)>>>31|0}$=i+96|0;return k|0}function he(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0;j=a;a:{b:{c:{d:{e:{f:{g:{h:{a=D[a+8>>2];switch(D[a+28>>2]-1|0){case 4:break c;case 5:break d;case 2:break e;case 3:break f;case 0:break g;case 1:break h;default:break a}}e=B[a+24|0];c=na((e|0)>=0?e:-1);a=D[j+16>>2];if(D[a+80>>2]){h=D[D[a>>2]>>2]+D[a+48>>2]|0}else{h=0}if(!b){break b}a=0;if((e|0)<=0){if((b|0)!=1){h=b&-2;while(1){oa(D[D[D[j+8>>2]+64>>2]>>2]+a|0,c,e);a=a+e|0;oa(a+D[D[D[j+8>>2]+64>>2]>>2]|0,c,e);a=a+e|0;d=d+2|0;if((h|0)!=(d|0)){continue}break}}if(!(b&1)){break b}oa(D[D[D[j+8>>2]+64>>2]>>2]+a|0,c,e);break b}o=e&-4;l=e&3;g=e-1>>>0<3;while(1){a=0;f=0;if(!g){while(1){k=h+(d<<2)|0;B[a+c|0]=D[k>>2];B[(a|1)+c|0]=D[k+4>>2];B[(a|2)+c|0]=D[k+8>>2];B[(a|3)+c|0]=D[k+12>>2];a=a+4|0;d=d+4|0;f=f+4|0;if((o|0)!=(f|0)){continue}break}}f=0;if(l){while(1){B[a+c|0]=D[h+(d<<2)>>2];a=a+1|0;d=d+1|0;f=f+1|0;if((l|0)!=(f|0)){continue}break}}oa(D[D[D[j+8>>2]+64>>2]>>2]+m|0,c,e);m=e+m|0;n=n+1|0;if((n|0)!=(b|0)){continue}break}break b}e=B[a+24|0];c=na((e|0)>=0?e:-1);a=D[j+16>>2];if(D[a+80>>2]){h=D[D[a>>2]>>2]+D[a+48>>2]|0}else{h=0}if(!b){break b}a=0;if((e|0)<=0){if((b|0)!=1){h=b&-2;while(1){oa(D[D[D[j+8>>2]+64>>2]>>2]+a|0,c,e);a=a+e|0;oa(a+D[D[D[j+8>>2]+64>>2]>>2]|0,c,e);a=a+e|0;d=d+2|0;if((h|0)!=(d|0)){continue}break}}if(!(b&1)){break b}oa(D[D[D[j+8>>2]+64>>2]>>2]+a|0,c,e);break b}o=e&-4;l=e&3;g=e-1>>>0<3;while(1){a=0;f=0;if(!g){while(1){k=h+(d<<2)|0;B[a+c|0]=D[k>>2];B[(a|1)+c|0]=D[k+4>>2];B[(a|2)+c|0]=D[k+8>>2];B[(a|3)+c|0]=D[k+12>>2];a=a+4|0;d=d+4|0;f=f+4|0;if((o|0)!=(f|0)){continue}break}}f=0;if(l){while(1){B[a+c|0]=D[h+(d<<2)>>2];a=a+1|0;d=d+1|0;f=f+1|0;if((l|0)!=(f|0)){continue}break}}oa(D[D[D[j+8>>2]+64>>2]>>2]+m|0,c,e);m=e+m|0;n=n+1|0;if((n|0)!=(b|0)){continue}break}break b}g=B[a+24|0];a=g+g|0;c=na(a>>>0>>0?-1:a);a=D[j+16>>2];if(D[a+80>>2]){h=D[D[a>>2]>>2]+D[a+48>>2]|0}else{h=0}if(!b){break b}i=g<<1;a=0;if((g|0)<=0){if((b|0)!=1){h=b&-2;while(1){oa(D[D[D[j+8>>2]+64>>2]>>2]+a|0,c,i);a=a+i|0;oa(a+D[D[D[j+8>>2]+64>>2]>>2]|0,c,i);a=a+i|0;d=d+2|0;if((h|0)!=(d|0)){continue}break}}if(!(b&1)){break b}oa(D[D[D[j+8>>2]+64>>2]>>2]+a|0,c,i);break b}o=g&-4;l=g&3;g=g-1>>>0<3;while(1){a=0;f=0;if(!g){while(1){e=a<<1;k=h+(d<<2)|0;C[e+c>>1]=D[k>>2];C[(e|2)+c>>1]=D[k+4>>2];C[(e|4)+c>>1]=D[k+8>>2];C[(e|6)+c>>1]=D[k+12>>2];a=a+4|0;d=d+4|0;f=f+4|0;if((o|0)!=(f|0)){continue}break}}f=0;if(l){while(1){C[(a<<1)+c>>1]=D[h+(d<<2)>>2];a=a+1|0;d=d+1|0;f=f+1|0;if((l|0)!=(f|0)){continue}break}}oa(D[D[D[j+8>>2]+64>>2]>>2]+n|0,c,i);n=i+n|0;m=m+1|0;if((m|0)!=(b|0)){continue}break}break b}g=B[a+24|0];a=g+g|0;c=na(a>>>0>>0?-1:a);a=D[j+16>>2];if(D[a+80>>2]){h=D[D[a>>2]>>2]+D[a+48>>2]|0}else{h=0}if(!b){break b}i=g<<1;a=0;if((g|0)<=0){if((b|0)!=1){h=b&-2;while(1){oa(D[D[D[j+8>>2]+64>>2]>>2]+a|0,c,i);a=a+i|0;oa(a+D[D[D[j+8>>2]+64>>2]>>2]|0,c,i);a=a+i|0;d=d+2|0;if((h|0)!=(d|0)){continue}break}}if(!(b&1)){break b}oa(D[D[D[j+8>>2]+64>>2]>>2]+a|0,c,i);break b}o=g&-4;l=g&3;g=g-1>>>0<3;while(1){a=0;f=0;if(!g){while(1){e=a<<1;k=h+(d<<2)|0;C[e+c>>1]=D[k>>2];C[(e|2)+c>>1]=D[k+4>>2];C[(e|4)+c>>1]=D[k+8>>2];C[(e|6)+c>>1]=D[k+12>>2];a=a+4|0;d=d+4|0;f=f+4|0;if((o|0)!=(f|0)){continue}break}}f=0;if(l){while(1){C[(a<<1)+c>>1]=D[h+(d<<2)>>2];a=a+1|0;d=d+1|0;f=f+1|0;if((l|0)!=(f|0)){continue}break}}oa(D[D[D[j+8>>2]+64>>2]>>2]+n|0,c,i);n=i+n|0;m=m+1|0;if((m|0)!=(b|0)){continue}break}break b}g=B[a+24|0];i=g<<2;c=na((g|0)!=(g&1073741823)?-1:i);a=D[j+16>>2];if(D[a+80>>2]){h=D[D[a>>2]>>2]+D[a+48>>2]|0}else{h=0}if(!b){break b}a=0;if((g|0)<=0){if((b|0)!=1){h=b&-2;while(1){oa(D[D[D[j+8>>2]+64>>2]>>2]+a|0,c,i);a=a+i|0;oa(a+D[D[D[j+8>>2]+64>>2]>>2]|0,c,i);a=a+i|0;d=d+2|0;if((h|0)!=(d|0)){continue}break}}if(!(b&1)){break b}oa(D[D[D[j+8>>2]+64>>2]>>2]+a|0,c,i);break b}o=g&-4;l=g&3;g=g-1>>>0<3;while(1){a=0;f=0;if(!g){while(1){e=a<<2;k=h+(d<<2)|0;D[e+c>>2]=D[k>>2];D[(e|4)+c>>2]=D[k+4>>2];D[(e|8)+c>>2]=D[k+8>>2];D[(e|12)+c>>2]=D[k+12>>2];a=a+4|0;d=d+4|0;f=f+4|0;if((o|0)!=(f|0)){continue}break}}f=0;if(l){while(1){D[(a<<2)+c>>2]=D[h+(d<<2)>>2];a=a+1|0;d=d+1|0;f=f+1|0;if((l|0)!=(f|0)){continue}break}}oa(D[D[D[j+8>>2]+64>>2]>>2]+n|0,c,i);n=i+n|0;m=m+1|0;if((m|0)!=(b|0)){continue}break}break b}g=B[a+24|0];i=g<<2;c=na((g|0)!=(g&1073741823)?-1:i);a=D[j+16>>2];if(D[a+80>>2]){h=D[D[a>>2]>>2]+D[a+48>>2]|0}else{h=0}if(!b){break b}a=0;if((g|0)<=0){if((b|0)!=1){h=b&-2;while(1){oa(D[D[D[j+8>>2]+64>>2]>>2]+a|0,c,i);a=a+i|0;oa(a+D[D[D[j+8>>2]+64>>2]>>2]|0,c,i);a=a+i|0;d=d+2|0;if((h|0)!=(d|0)){continue}break}}if(!(b&1)){break b}oa(D[D[D[j+8>>2]+64>>2]>>2]+a|0,c,i);break b}o=g&-4;l=g&3;g=g-1>>>0<3;while(1){a=0;f=0;if(!g){while(1){e=a<<2;k=h+(d<<2)|0;D[e+c>>2]=D[k>>2];D[(e|4)+c>>2]=D[k+4>>2];D[(e|8)+c>>2]=D[k+8>>2];D[(e|12)+c>>2]=D[k+12>>2];a=a+4|0;d=d+4|0;f=f+4|0;if((o|0)!=(f|0)){continue}break}}f=0;if(l){while(1){D[(a<<2)+c>>2]=D[h+(d<<2)>>2];a=a+1|0;d=d+1|0;f=f+1|0;if((l|0)!=(f|0)){continue}break}}oa(D[D[D[j+8>>2]+64>>2]>>2]+n|0,c,i);n=i+n|0;m=m+1|0;if((m|0)!=(b|0)){continue}break}}ma(c);c=1}return c|0}function Uh(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,C=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0,N=0,O=0,P=0,Q=0,R=0,S=0,U=0,V=0,W=0;a:{if((e|0)==2){D[a+8>>2]=2;D[a- -64>>2]=f;H=a+32|0;e=D[H>>2];d=D[a+36>>2]-e|0;b:{if(d>>>0<=7){ra(H,2-(d>>>2|0)|0);break b}if((d|0)==8){break b}D[a+36>>2]=e+8}d=D[a+56>>2];d=D[d+4>>2]-D[d>>2]|0;c:{if((d|0)<=0){f=0;break c}n=a+60|0;I=d>>2;S=(I|0)>1?I:1;U=a+68|0;f=1;while(1){e=D[a+56>>2];d=D[e>>2];if(D[e+4>>2]-d>>2>>>0<=r>>>0){break a}k=$-80|0;$=k;e=-1;d:{e:{i=D[d+(r<<2)>>2];if((i|0)==-1){break e}h=D[n+32>>2];d=i+1|0;d=(d>>>0)%3|0?d:i-2|0;if((d|0)!=-1){e=D[D[h>>2]+(d<<2)>>2]}d=-1;i=i+((i>>>0)%3|0?-1:2)|0;if((i|0)!=-1){d=D[D[h>>2]+(i<<2)>>2]}h=D[n+36>>2];i=D[h>>2];h=D[h+4>>2]-i>>2;if(h>>>0<=e>>>0|d>>>0>=h>>>0){break e}h=D[i+(e<<2)>>2];f:{g:{h:{i:{j:{k:{i=D[i+(d<<2)>>2];if((i|0)>=(r|0)|(h|0)>=(r|0)){break k}d=(i<<3)+c|0;v=D[d+4>>2];e=(h<<3)+c|0;w=D[e+4>>2];x=D[d>>2];C=D[e>>2];if(!((x|0)!=(C|0)|(v|0)!=(w|0))){D[n+8>>2]=C;D[n+12>>2]=w;break j}d=D[D[n+4>>2]+(r<<2)>>2];D[k+72>>2]=0;D[k+76>>2]=0;e=k- -64|0;D[e>>2]=0;D[e+4>>2]=0;D[k+56>>2]=0;D[k+60>>2]=0;e=D[n>>2];if(!E[e+84|0]){d=D[D[e+68>>2]+(d<<2)>>2]}Ia(e,d,B[e+24|0],k+56|0);d=D[D[n+4>>2]+(h<<2)>>2];D[k+48>>2]=0;D[k+52>>2]=0;D[k+40>>2]=0;D[k+44>>2]=0;D[k+32>>2]=0;D[k+36>>2]=0;e=D[n>>2];if(!E[e+84|0]){d=D[D[e+68>>2]+(d<<2)>>2]}Ia(e,d,B[e+24|0],k+32|0);e=D[D[n+4>>2]+(i<<2)>>2];D[k+24>>2]=0;D[k+28>>2]=0;D[k+16>>2]=0;D[k+20>>2]=0;D[k+8>>2]=0;D[k+12>>2]=0;d=D[n>>2];if(!E[d+84|0]){e=D[D[d+68>>2]+(e<<2)>>2]}Ia(d,e,B[d+24|0],k+8|0);J=D[k+44>>2];d=D[k+16>>2];s=D[k+40>>2];e=s;i=D[k+20>>2]-(J+(d>>>0>>0)|0)|0;l=d-e|0;d=fi(l,i,l,i);g=aa;m=d;K=D[k+36>>2];d=D[k+8>>2];F=D[k+32>>2];e=F;j=D[k+12>>2]-(K+(d>>>0>>0)|0)|0;e=d-e|0;o=fi(e,j,e,j);m=m+o|0;d=aa+g|0;d=m>>>0>>0?d+1|0:d;q=m;L=D[k+52>>2];g=D[k+24>>2];G=D[k+48>>2];o=G;m=D[k+28>>2]-(L+(g>>>0>>0)|0)|0;u=g-o|0;p=fi(u,m,u,m);o=q+p|0;g=aa+d|0;t=o;o=o>>>0

>>0?g+1|0:g;if(!(t|o)){break k}M=D[k+64>>2];d=M;N=D[k+68>>2];d=fi(d-s|0,N-((d>>>0>>0)+J|0)|0,l,i);h=aa;g=d;O=D[k+56>>2];d=O;P=D[k+60>>2];p=fi(d-F|0,P-((d>>>0>>0)+K|0)|0,e,j);d=g+p|0;g=aa+h|0;g=d>>>0

>>0?g+1|0:g;h=d;Q=D[k+72>>2];d=Q;R=D[k+76>>2];p=fi(d-G|0,R-((d>>>0>>0)+L|0)|0,u,m);h=h+p|0;d=aa+g|0;y=h;p=h>>>0

>>0?d+1|0:d;d=j>>31;h=d;g=e^d;d=(j^d)-((d>>>0>g>>>0)+d|0)|0;g=g-h|0;q=g;h=i>>31;z=h^l;A=z-h|0;h=(i^h)-((h>>>0>z>>>0)+h|0)|0;g=(d|0)==(h|0)&g>>>0>A>>>0|d>>>0>h>>>0;z=g?q:A;d=g?d:h;h=d;d=m>>31;g=d;A=d^u;d=A-d|0;g=(m^g)-((g>>>0>A>>>0)+g|0)|0;q=(h|0)==(g|0)&d>>>0>>0|h>>>0>g>>>0;g=hi(-1,2147483647,q?z:d,q?h:g)>>>0>>0;h=aa;d=0;if(g&(h|0)<=(p|0)|(h|0)<(p|0)){break f}h=1;d=0;g=M;q=s;s=gi(fi(l,i,y,p),aa,t,o);i=q+s|0;l=aa+J|0;l=i>>>0>>0?l+1|0:l;l=N-((i>>>0>g>>>0)+l|0)|0;i=g-i|0;i=fi(i,l,i,l);l=aa;g=O;q=i;j=gi(fi(e,j,y,p),aa,t,o);e=j+F|0;i=aa+K|0;i=e>>>0>>0?i+1|0:i;i=P-((e>>>0>g>>>0)+i|0)|0;e=g-e|0;j=fi(e,i,e,i);i=q+j|0;e=aa+l|0;e=i>>>0>>0?e+1|0:e;j=i;i=e;e=Q;g=j;m=gi(fi(u,m,y,p),aa,t,o);j=m+G|0;l=aa+L|0;l=j>>>0>>0?l+1|0:l;m=R-((e>>>0>>0)+l|0)|0;e=e-j|0;j=fi(e,m,e,m);e=g+j|0;i=aa+i|0;j=fi(e,e>>>0>>0?i+1|0:i,t,o);e=aa;m=e;if(!e&j>>>0<=1){break i}g=j;e=m;while(1){i=d<<1|h>>>31;h=h<<1;d=i;l=!e&g>>>0>7|(e|0)!=0;g=(e&3)<<30|g>>>2;e=e>>>2|0;if(l){continue}break}break h}if((h|0)<(r|0)){d=h<<1}else{if((r|0)<=0){D[n+8>>2]=0;D[n+12>>2]=0;break j}d=(r<<1)-2|0}d=(d<<2)+c|0;D[n+8>>2]=D[d>>2];D[n+12>>2]=D[d+4>>2]}d=1;break f}d=m;h=j;if(h-1|0){break g}}while(1){e=hi(j,m,h,d)+h|0;g=d+aa|0;g=e>>>0>>0?g+1|0:g;h=(g&1)<<31|e>>>1;d=g>>>1|0;e=fi(h,d,h,d);i=aa;if((m|0)==(i|0)&e>>>0>j>>>0|i>>>0>m>>>0){continue}break}}i=D[n+20>>2];if(i){e=i-1|0;m=D[D[n+16>>2]+(e>>>3&536870908)>>2];D[n+20>>2]=e;j=w;u=v-j|0;g=j>>31;v=(v>>31)-(g+(j>>>0>v>>>0)|0)|0;j=fi(y,p,u,v);l=aa;g=fi(w,g,t,o);j=g+j|0;l=aa+l|0;l=j>>>0>>0?l+1|0:l;q=j;j=C;w=x-j|0;s=j>>31;x=(x>>31)-(s+(j>>>0>x>>>0)|0)|0;j=fi(h,d,w,x);g=j;e=m>>>e&1;m=e?0-j|0:j;j=q+m|0;q=l;l=aa;g=q+(e?0-(l+((g|0)!=0)|0)|0:l)|0;V=n,W=gi(j,j>>>0>>0?g+1|0:g,t,o),D[V+12>>2]=W;j=fi(w,x,y,p);m=aa;g=fi(t,o,C,s);j=g+j|0;l=aa+m|0;l=j>>>0>>0?l+1|0:l;g=j;d=fi(h,d,u,v);j=e?d:0-d|0;h=g+j|0;m=aa;e=(e?m:0-(((d|0)!=0)+m|0)|0)+l|0;V=n,W=gi(h,h>>>0>>0?e+1|0:e,t,o),D[V+8>>2]=W}d=(i|0)!=0}$=k+80|0;break d}va();T()}if(!d){break c}l:{if(D[a+8>>2]<=0){break l}i=D[H>>2];d=0;while(1){e=d<<2;f=D[e+U>>2];h=D[a+16>>2];m:{if((f|0)>(h|0)){D[e+i>>2]=h;break m}e=e+i|0;h=D[a+12>>2];if((h|0)>(f|0)){D[e>>2]=h;break m}D[e>>2]=f}d=d+1|0;f=D[a+8>>2];if((d|0)<(f|0)){continue}break}e=0;if((f|0)<=0){break l}d=r<<3;h=d+c|0;j=b+d|0;while(1){f=e<<2;d=f+h|0;f=D[f+j>>2]+D[f+i>>2]|0;D[d>>2]=f;n:{if((f|0)>D[a+16>>2]){f=f-D[a+20>>2]|0}else{if((f|0)>=D[a+12>>2]){break n}f=f+D[a+20>>2]|0}D[d>>2]=f}e=e+1|0;if((e|0)>2]){continue}break}}r=r+1|0;f=(I|0)>(r|0);if((r|0)!=(S|0)){continue}break}}a=f^1}else{a=0}return a&1}va();T()}function di(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,C=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0,N=0,O=0,P=0,Q=0,R=0,S=0,U=0,V=0,W=0;a:{if((e|0)==2){D[a+8>>2]=2;D[a- -64>>2]=f;I=a+32|0;e=D[I>>2];d=D[a+36>>2]-e|0;b:{if(d>>>0<=7){ra(I,2-(d>>>2|0)|0);break b}if((d|0)==8){break b}D[a+36>>2]=e+8}d=D[a+56>>2];d=D[d+4>>2]-D[d>>2]|0;c:{if((d|0)<=0){f=0;break c}n=a+60|0;J=d>>2;S=(J|0)>1?J:1;U=a+68|0;f=1;while(1){d=D[a+56>>2];i=D[d>>2];if(D[d+4>>2]-i>>2>>>0<=q>>>0){break a}k=$-80|0;$=k;e=-1;i=D[i+(q<<2)>>2];d=-1;d:{if((i|0)==-1){break d}d=i+1|0;e=(d>>>0)%3|0?d:i-2|0;d=i-1|0;if((i>>>0)%3|0){break d}d=i+2|0}g=D[n+36>>2];i=D[g>>2];e:{f:{g:{h:{i:{g=D[g+4>>2]-i>>2;j=e<<2;e=D[D[n+32>>2]+28>>2];j=D[j+e>>2];if(g>>>0<=j>>>0){break i}d=D[e+(d<<2)>>2];if(d>>>0>=g>>>0){break i}g=D[i+(j<<2)>>2];j:{k:{i=D[i+(d<<2)>>2];if((i|0)>=(q|0)|(g|0)>=(q|0)){break k}d=(i<<3)+c|0;w=D[d+4>>2];e=(g<<3)+c|0;x=D[e+4>>2];y=D[d>>2];F=D[e>>2];if(!((y|0)!=(F|0)|(w|0)!=(x|0))){D[n+8>>2]=F;D[n+12>>2]=x;break j}d=D[D[n+4>>2]+(q<<2)>>2];D[k+72>>2]=0;D[k+76>>2]=0;e=k- -64|0;D[e>>2]=0;D[e+4>>2]=0;D[k+56>>2]=0;D[k+60>>2]=0;e=D[n>>2];if(!E[e+84|0]){d=D[D[e+68>>2]+(d<<2)>>2]}Ia(e,d,B[e+24|0],k+56|0);d=D[D[n+4>>2]+(g<<2)>>2];D[k+48>>2]=0;D[k+52>>2]=0;D[k+40>>2]=0;D[k+44>>2]=0;D[k+32>>2]=0;D[k+36>>2]=0;e=D[n>>2];if(!E[e+84|0]){d=D[D[e+68>>2]+(d<<2)>>2]}Ia(e,d,B[e+24|0],k+32|0);d=D[D[n+4>>2]+(i<<2)>>2];D[k+24>>2]=0;D[k+28>>2]=0;D[k+16>>2]=0;D[k+20>>2]=0;D[k+8>>2]=0;D[k+12>>2]=0;e=D[n>>2];if(!E[e+84|0]){d=D[D[e+68>>2]+(d<<2)>>2]}Ia(e,d,B[e+24|0],k+8|0);K=D[k+44>>2];d=D[k+16>>2];r=D[k+40>>2];e=r;i=D[k+20>>2]-(K+(d>>>0>>0)|0)|0;l=d-e|0;d=fi(l,i,l,i);h=aa;m=d;L=D[k+36>>2];d=D[k+8>>2];G=D[k+32>>2];e=G;j=D[k+12>>2]-(L+(d>>>0>>0)|0)|0;e=d-e|0;o=fi(e,j,e,j);m=m+o|0;d=aa+h|0;d=m>>>0>>0?d+1|0:d;s=m;M=D[k+52>>2];h=D[k+24>>2];H=D[k+48>>2];o=H;m=D[k+28>>2]-(M+(h>>>0>>0)|0)|0;v=h-o|0;p=fi(v,m,v,m);o=s+p|0;h=aa+d|0;u=o;o=o>>>0

>>0?h+1|0:h;if(!(u|o)){break k}s=D[k+64>>2];d=s;N=D[k+68>>2];d=fi(d-r|0,N-((d>>>0>>0)+K|0)|0,l,i);g=aa;h=d;O=D[k+56>>2];d=O;P=D[k+60>>2];p=fi(d-G|0,P-((d>>>0>>0)+L|0)|0,e,j);d=h+p|0;h=aa+g|0;h=d>>>0

>>0?h+1|0:h;g=d;Q=D[k+72>>2];d=Q;R=D[k+76>>2];p=fi(d-H|0,R-((d>>>0>>0)+M|0)|0,v,m);g=g+p|0;d=aa+h|0;z=g;p=g>>>0

>>0?d+1|0:d;d=j>>31;g=d;h=e^d;d=(d^j)-(d+(d>>>0>h>>>0)|0)|0;t=h-g|0;h=i>>31;g=h;A=g^l;C=A-g|0;g=(i^g)-((g>>>0>A>>>0)+g|0)|0;h=(d|0)==(g|0)&t>>>0>C>>>0|d>>>0>g>>>0;A=h?t:C;d=h?d:g;h=m>>31;g=h;C=g^v;t=C-g|0;g=(g^m)-((g>>>0>C>>>0)+g|0)|0;h=(d|0)==(g|0)&t>>>0>>0|d>>>0>g>>>0;h=hi(-1,2147483647,h?A:t,h?d:g)>>>0>>0;d=aa;t=0;if(h&(d|0)<=(p|0)|(d|0)<(p|0)){break e}g=1;d=0;h=s;s=r;r=gi(fi(l,i,z,p),aa,u,o);i=s+r|0;l=aa+K|0;l=i>>>0>>0?l+1|0:l;l=N-((i>>>0>h>>>0)+l|0)|0;i=h-i|0;i=fi(i,l,i,l);l=aa;h=O;r=i;j=gi(fi(e,j,z,p),aa,u,o);e=j+G|0;i=aa+L|0;i=e>>>0>>0?i+1|0:i;i=P-((e>>>0>h>>>0)+i|0)|0;e=h-e|0;j=fi(e,i,e,i);i=r+j|0;e=aa+l|0;e=i>>>0>>0?e+1|0:e;j=i;i=e;e=Q;h=j;m=gi(fi(v,m,z,p),aa,u,o);j=m+H|0;l=aa+M|0;l=j>>>0>>0?l+1|0:l;m=R-((e>>>0>>0)+l|0)|0;e=e-j|0;j=fi(e,m,e,m);e=h+j|0;i=aa+i|0;j=fi(e,e>>>0>>0?i+1|0:i,u,o);e=aa;m=e;if(!e&j>>>0<=1){break h}h=j;e=m;while(1){i=d<<1|g>>>31;g=g<<1;d=i;l=!e&h>>>0>7|(e|0)!=0;h=(e&3)<<30|h>>>2;e=e>>>2|0;if(l){continue}break}break g}if((g|0)<(q|0)){d=g<<1}else{if((q|0)<=0){D[n+8>>2]=0;D[n+12>>2]=0;break j}d=(q<<1)-2|0}d=(d<<2)+c|0;D[n+8>>2]=D[d>>2];D[n+12>>2]=D[d+4>>2]}t=1;break e}va();T()}d=m;g=j;if(g-1|0){break f}}while(1){e=hi(j,m,g,d)+g|0;h=d+aa|0;h=e>>>0>>0?h+1|0:h;g=(h&1)<<31|e>>>1;d=h>>>1|0;e=fi(g,d,g,d);i=aa;if((m|0)==(i|0)&e>>>0>j>>>0|i>>>0>m>>>0){continue}break}}i=D[n+20>>2];if(i){e=i-1|0;m=D[D[n+16>>2]+(e>>>3&536870908)>>2];D[n+20>>2]=e;j=x;v=w-j|0;h=j>>31;w=(w>>31)-(h+(j>>>0>w>>>0)|0)|0;j=fi(z,p,v,w);l=aa;h=fi(x,h,u,o);j=h+j|0;l=aa+l|0;l=h>>>0>j>>>0?l+1|0:l;s=j;j=F;x=y-j|0;r=j>>31;y=(y>>31)-(r+(j>>>0>y>>>0)|0)|0;j=fi(g,d,x,y);h=j;e=m>>>e&1;m=e?0-j|0:j;j=s+m|0;s=l;l=aa;h=s+(e?0-(l+((h|0)!=0)|0)|0:l)|0;V=n,W=gi(j,j>>>0>>0?h+1|0:h,u,o),D[V+12>>2]=W;j=fi(x,y,z,p);m=aa;h=fi(u,o,F,r);j=h+j|0;l=aa+m|0;l=h>>>0>j>>>0?l+1|0:l;h=j;d=fi(g,d,v,w);j=e?d:0-d|0;g=h+j|0;m=aa;e=(e?m:0-(((d|0)!=0)+m|0)|0)+l|0;V=n,W=gi(g,j>>>0>g>>>0?e+1|0:e,u,o),D[V+8>>2]=W}t=(i|0)!=0}$=k+80|0;if(!t){break c}l:{if(D[a+8>>2]<=0){break l}i=D[I>>2];d=0;while(1){e=d<<2;f=D[e+U>>2];g=D[a+16>>2];m:{if((f|0)>(g|0)){D[e+i>>2]=g;break m}e=e+i|0;g=D[a+12>>2];if((g|0)>(f|0)){D[e>>2]=g;break m}D[e>>2]=f}d=d+1|0;f=D[a+8>>2];if((d|0)<(f|0)){continue}break}e=0;if((f|0)<=0){break l}d=q<<3;g=d+c|0;j=b+d|0;while(1){f=e<<2;d=f+g|0;f=D[f+j>>2]+D[f+i>>2]|0;D[d>>2]=f;n:{if((f|0)>D[a+16>>2]){f=f-D[a+20>>2]|0}else{if((f|0)>=D[a+12>>2]){break n}f=f+D[a+20>>2]|0}D[d>>2]=f}e=e+1|0;if((e|0)>2]){continue}break}}q=q+1|0;f=(J|0)>(q|0);if((q|0)!=(S|0)){continue}break}}a=f^1}else{a=0}return a&1}va();T()}function Kc(a){var b=0,c=0,d=0,e=0,f=0,g=0;e=$-16|0;$=e;D[e+12>>2]=a;a:{if(a>>>0<=211){d=D[Jc(10352,10544,e+12|0)>>2];break a}if(a>>>0>=4294967292){W();T()}f=(a>>>0)/210|0;d=J(f,210);D[e+8>>2]=a-d;g=Jc(10544,10736,e+8|0)-10544>>2;while(1){d=D[(g<<2)+10544>>2]+d|0;a=5;b:{while(1){c:{if((a|0)==47){a=211;while(1){b=(d>>>0)/(a>>>0)|0;if(b>>>0>>0){break b}if((J(a,b)|0)==(d|0)){break c}b=a+10|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break b}if((J(b,c)|0)==(d|0)){break c}b=a+12|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break b}if((J(b,c)|0)==(d|0)){break c}b=a+16|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break b}if((J(b,c)|0)==(d|0)){break c}b=a+18|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break b}if((J(b,c)|0)==(d|0)){break c}b=a+22|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break b}if((J(b,c)|0)==(d|0)){break c}b=a+28|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break b}if((J(b,c)|0)==(d|0)){break c}b=a+30|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break b}if((J(b,c)|0)==(d|0)){break c}b=a+36|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break b}if((J(b,c)|0)==(d|0)){break c}b=a+40|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break b}if((J(b,c)|0)==(d|0)){break c}b=a+42|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break b}if((J(b,c)|0)==(d|0)){break c}b=a+46|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break b}if((J(b,c)|0)==(d|0)){break c}b=a+52|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break b}if((J(b,c)|0)==(d|0)){break c}b=a+58|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break b}if((J(b,c)|0)==(d|0)){break c}b=a+60|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break b}if((J(b,c)|0)==(d|0)){break c}b=a+66|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break b}if((J(b,c)|0)==(d|0)){break c}b=a+70|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break b}if((J(b,c)|0)==(d|0)){break c}b=a+72|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break b}if((J(b,c)|0)==(d|0)){break c}b=a+78|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break b}if((J(b,c)|0)==(d|0)){break c}b=a+82|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break b}if((J(b,c)|0)==(d|0)){break c}b=a+88|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break b}if((J(b,c)|0)==(d|0)){break c}b=a+96|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break b}if((J(b,c)|0)==(d|0)){break c}b=a+100|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break b}if((J(b,c)|0)==(d|0)){break c}b=a+102|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break b}if((J(b,c)|0)==(d|0)){break c}b=a+106|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break b}if((J(b,c)|0)==(d|0)){break c}b=a+108|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break b}if((J(b,c)|0)==(d|0)){break c}b=a+112|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break b}if((J(b,c)|0)==(d|0)){break c}b=a+120|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break b}if((J(b,c)|0)==(d|0)){break c}b=a+126|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break b}if((J(b,c)|0)==(d|0)){break c}b=a+130|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break b}if((J(b,c)|0)==(d|0)){break c}b=a+136|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break b}if((J(b,c)|0)==(d|0)){break c}b=a+138|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break b}if((J(b,c)|0)==(d|0)){break c}b=a+142|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break b}if((J(b,c)|0)==(d|0)){break c}b=a+148|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break b}if((J(b,c)|0)==(d|0)){break c}b=a+150|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break b}if((J(b,c)|0)==(d|0)){break c}b=a+156|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break b}if((J(b,c)|0)==(d|0)){break c}b=a+162|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break b}if((J(b,c)|0)==(d|0)){break c}b=a+166|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break b}if((J(b,c)|0)==(d|0)){break c}b=a+168|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break b}if((J(b,c)|0)==(d|0)){break c}b=a+172|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break b}if((J(b,c)|0)==(d|0)){break c}b=a+178|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break b}if((J(b,c)|0)==(d|0)){break c}b=a+180|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break b}if((J(b,c)|0)==(d|0)){break c}b=a+186|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break b}if((J(b,c)|0)==(d|0)){break c}b=a+190|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break b}if((J(b,c)|0)==(d|0)){break c}b=a+192|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break b}if((J(b,c)|0)==(d|0)){break c}b=a+196|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break b}if((J(b,c)|0)==(d|0)){break c}b=a+198|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break b}if((J(b,c)|0)==(d|0)){break c}b=a+208|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break b}a=a+210|0;if((J(b,c)|0)!=(d|0)){continue}break}break c}b=D[(a<<2)+10352>>2];c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break b}a=a+1|0;if((J(b,c)|0)!=(d|0)){continue}}break}d=g+1|0;a=(d|0)==48;g=a?0:d;f=a+f|0;d=J(f,210);continue}break}D[e+12>>2]=d}$=e+16|0;return d}function Ia(a,b,c,d){var e=0,f=0,g=0,h=0,i=K(0),j=0,k=0,l=K(0),m=0;a:{if(!d){break a}b:{c:{switch(D[a+28>>2]-1|0){case 0:e=B[a+24|0];if((((c|0)>(e|0)?e:c)|0)>0){e=D[a>>2];g=D[e>>2];b=D[a+48>>2]+fi(D[a+40>>2],D[a+44>>2],b,0)|0;b=g+b|0;h=D[e+4>>2];while(1){if(b>>>0>=h>>>0){break a}e=(f<<3)+d|0;g=B[b|0];D[e>>2]=g;D[e+4>>2]=g>>31;b=b+1|0;f=f+1|0;e=B[a+24|0];if((f|0)<(((c|0)>(e|0)?e:c)|0)){continue}break}}if((c|0)<=(e|0)){break a}c=c-e|0;a=(e<<3)+d|0;break b;case 1:e=B[a+24|0];if((((c|0)>(e|0)?e:c)|0)>0){e=D[a>>2];g=D[e>>2];b=D[a+48>>2]+fi(D[a+40>>2],D[a+44>>2],b,0)|0;b=g+b|0;h=D[e+4>>2];while(1){if(b>>>0>=h>>>0){break a}e=(f<<3)+d|0;D[e>>2]=E[b|0];D[e+4>>2]=0;b=b+1|0;f=f+1|0;e=B[a+24|0];if((f|0)<(((c|0)>(e|0)?e:c)|0)){continue}break}}if((c|0)<=(e|0)){break a}c=c-e|0;a=(e<<3)+d|0;break b;case 2:e=B[a+24|0];if((((c|0)>(e|0)?e:c)|0)>0){e=D[a>>2];g=D[e>>2];b=D[a+48>>2]+fi(D[a+40>>2],D[a+44>>2],b,0)|0;b=g+b|0;h=D[e+4>>2];while(1){if(b>>>0>=h>>>0){break a}e=(f<<3)+d|0;g=C[b>>1];D[e>>2]=g;D[e+4>>2]=g>>31;b=b+2|0;f=f+1|0;e=B[a+24|0];if((f|0)<(((c|0)>(e|0)?e:c)|0)){continue}break}}if((c|0)<=(e|0)){break a}c=c-e|0;a=(e<<3)+d|0;break b;case 3:e=B[a+24|0];if((((c|0)>(e|0)?e:c)|0)>0){e=D[a>>2];g=D[e>>2];b=D[a+48>>2]+fi(D[a+40>>2],D[a+44>>2],b,0)|0;b=g+b|0;h=D[e+4>>2];while(1){if(b>>>0>=h>>>0){break a}e=(f<<3)+d|0;D[e>>2]=F[b>>1];D[e+4>>2]=0;b=b+2|0;f=f+1|0;e=B[a+24|0];if((f|0)<(((c|0)>(e|0)?e:c)|0)){continue}break}}if((c|0)<=(e|0)){break a}c=c-e|0;a=(e<<3)+d|0;break b;case 4:e=B[a+24|0];if((((c|0)>(e|0)?e:c)|0)>0){e=D[a>>2];g=D[e>>2];b=D[a+48>>2]+fi(D[a+40>>2],D[a+44>>2],b,0)|0;b=g+b|0;h=D[e+4>>2];while(1){if(b>>>0>=h>>>0){break a}e=(f<<3)+d|0;g=D[b>>2];D[e>>2]=g;D[e+4>>2]=g>>31;b=b+4|0;f=f+1|0;e=B[a+24|0];if((f|0)<(((c|0)>(e|0)?e:c)|0)){continue}break}}if((c|0)<=(e|0)){break a}c=c-e|0;a=(e<<3)+d|0;break b;case 5:e=B[a+24|0];if((((c|0)>(e|0)?e:c)|0)>0){e=D[a>>2];g=D[e>>2];b=D[a+48>>2]+fi(D[a+40>>2],D[a+44>>2],b,0)|0;b=g+b|0;h=D[e+4>>2];while(1){if(b>>>0>=h>>>0){break a}e=(f<<3)+d|0;D[e>>2]=D[b>>2];D[e+4>>2]=0;b=b+4|0;f=f+1|0;e=B[a+24|0];if((f|0)<(((c|0)>(e|0)?e:c)|0)){continue}break}}if((c|0)<=(e|0)){break a}c=c-e|0;a=(e<<3)+d|0;break b;case 6:e=B[a+24|0];if((((c|0)>(e|0)?e:c)|0)>0){e=D[a>>2];g=D[e>>2];b=D[a+48>>2]+fi(D[a+40>>2],D[a+44>>2],b,0)|0;b=g+b|0;h=D[e+4>>2];while(1){if(b>>>0>=h>>>0){break a}g=D[b+4>>2];e=(f<<3)+d|0;D[e>>2]=D[b>>2];D[e+4>>2]=g;b=b+8|0;f=f+1|0;e=B[a+24|0];if((f|0)<(((c|0)>(e|0)?e:c)|0)){continue}break}}if((c|0)<=(e|0)){break a}c=c-e|0;a=(e<<3)+d|0;break b;case 7:e=B[a+24|0];if((((c|0)>(e|0)?e:c)|0)>0){e=D[a>>2];g=D[e>>2];b=D[a+48>>2]+fi(D[a+40>>2],D[a+44>>2],b,0)|0;b=g+b|0;h=D[e+4>>2];while(1){if(b>>>0>=h>>>0){break a}e=D[b>>2];g=D[b+4>>2];if((g|0)<0){break a}k=(f<<3)+d|0;D[k>>2]=e;D[k+4>>2]=g;b=b+8|0;f=f+1|0;e=B[a+24|0];if((f|0)<(((c|0)>(e|0)?e:c)|0)){continue}break}}if((c|0)<=(e|0)){break a}c=c-e|0;a=(e<<3)+d|0;break b;case 8:e=B[a+24|0];if((((c|0)>(e|0)?e:c)|0)>0){e=D[a>>2];g=D[e>>2];b=D[a+48>>2]+fi(D[a+40>>2],D[a+44>>2],b,0)|0;b=g+b|0;k=D[e+4>>2];while(1){if(b>>>0>=k>>>0){break a}i=H[b>>2];if(i>K(0x8000000000000000)|i=K(1)?~~(i>K(0)?K(N(K(P(K(i*K(2.3283064365386963e-10)))),K(4294967296))):K(Q(K(K(i-K(~~i>>>0>>>0))*K(2.3283064365386963e-10)))))>>>0:0;h=~~i>>>0;break d}g=-2147483648;h=0}D[e>>2]=h;D[e+4>>2]=g;b=b+4|0;f=f+1|0;e=B[a+24|0];if((f|0)<(((c|0)>(e|0)?e:c)|0)){continue}break}}if((c|0)<=(e|0)){break a}c=c-e|0;a=(e<<3)+d|0;break b;case 9:e=B[a+24|0];if((((c|0)>(e|0)?e:c)|0)>0){e=D[a>>2];g=D[e>>2];b=D[a+48>>2]+fi(D[a+40>>2],D[a+44>>2],b,0)|0;b=g+b|0;k=D[e+4>>2];while(1){if(b>>>0>=k>>>0){break a}j=I[b>>3];if(j>0x8000000000000000|j<-0x8000000000000000|j!=j){break a}m=L(j);if(m==V){break a}e=(f<<3)+d|0;e:{if(m<0x8000000000000000){g=L(j)>=1?~~(j>0?N(P(j*2.3283064365386963e-10),4294967295):Q((j-+(~~j>>>0>>>0))*2.3283064365386963e-10))>>>0:0;h=~~j>>>0;break e}g=-2147483648;h=0}D[e>>2]=h;D[e+4>>2]=g;b=b+8|0;f=f+1|0;e=B[a+24|0];if((f|0)<(((c|0)>(e|0)?e:c)|0)){continue}break}}if((c|0)<=(e|0)){break a}c=c-e|0;a=(e<<3)+d|0;break b;case 10:break c;default:break a}}e=B[a+24|0];if((((c|0)>(e|0)?e:c)|0)>0){e=D[a>>2];g=D[e>>2];b=D[a+48>>2]+fi(D[a+40>>2],D[a+44>>2],b,0)|0;b=g+b|0;h=D[e+4>>2];while(1){if(b>>>0>=h>>>0){break a}e=(f<<3)+d|0;D[e>>2]=E[b|0];D[e+4>>2]=0;b=b+1|0;f=f+1|0;e=B[a+24|0];if((f|0)<(((c|0)>(e|0)?e:c)|0)){continue}break}}if((c|0)<=(e|0)){break a}c=c-e|0;a=(e<<3)+d|0}qa(a,0,c<<3)}}function od(a,b){var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0;a:{b:{c:{d:{e:{if(D[a+92>>2]==D[a+88>>2]){break e}c=D[a+52>>2];f:{if((c|0)!=D[a+56>>2]){D[c>>2]=b;D[a+52>>2]=c+4;break f}d=D[a+48>>2];h=c-d|0;f=h>>2;e=f+1|0;if(e>>>0>=1073741824){break a}c=h>>1;e=h>>>0<2147483644?c>>>0>e>>>0?c:e:1073741823;if(e){if(e>>>0>=1073741824){break d}c=na(e<<2)}else{c=0}f=c+(f<<2)|0;D[f>>2]=b;if((h|0)>0){oa(c,d,h)}D[a+56>>2]=c+(e<<2);D[a+52>>2]=f+4;D[a+48>>2]=c;if(!d){break f}ma(d)}D[a+84>>2]=0;f=-1;c=-1;g:{if((b|0)==-1){break g}e=D[a+4>>2];c=b+1|0;c=(c>>>0)%3|0?c:b-2|0;if((c|0)!=-1){f=D[D[e>>2]+(c<<2)>>2]}h:{if((b>>>0)%3|0){d=b-1|0;break h}d=b+2|0;c=-1;if((d|0)==-1){break g}}c=D[D[e>>2]+(d<<2)>>2]}i=c>>>3&536870908;e=D[a+36>>2];g=e+(f>>>3&536870908)|0;h=D[g>>2];d=1<>2]=d|h;g=a+8|0;if((b|0)!=-1){e=b+1|0;d=(e>>>0)%3|0?e:b-2|0}else{d=-1}Ma(g,f,d);e=D[a+36>>2]}d=e+i|0;e=D[d>>2];f=1<>2]=e|f;d=a+8|0;f=-1;i:{if((b|0)==-1){break i}f=b-1|0;if((b>>>0)%3|0){break i}f=b+2|0}Ma(d,c,f)}f=-1;f=(b|0)!=-1?D[D[D[a+4>>2]>>2]+(b<<2)>>2]:f;d=D[a+36>>2]+(f>>>3&536870908)|0;e=D[d>>2];c=1<>2]=c|e;Ma(a+8|0,f,b)}d=D[a+84>>2];if((d|0)>2){break e}while(1){f=J(d,12)+a|0;b=D[f+52>>2];if((b|0)==D[f+48>>2]){d=d+1|0;if((d|0)!=3){continue}break e}c=b-4|0;b=D[c>>2];D[f+52>>2]=c;D[a+84>>2]=d;if((b|0)==-1){break e}f=D[a+24>>2];c=(b>>>0)/3|0;j:{if(D[f+(c>>>3&268435452)>>2]>>>c&1){break j}k:{while(1){i=(b>>>0)/3|0;c=(i>>>3&268435452)+f|0;D[c>>2]=D[c>>2]|1<>2]>>2]+(b<<2)>>2]:f;d=D[a+36>>2]+(f>>>3&536870908)|0;e=D[d>>2];c=1<>2]=c|e;h=D[(D[D[a+16>>2]+96>>2]+J(i,12)|0)+((b>>>0)%3<<2)>>2];k=D[D[a+20>>2]+4>>2];c=D[k+4>>2];t:{if((c|0)!=D[k+8>>2]){D[c>>2]=h;D[k+4>>2]=c+4;break t}g=D[k>>2];j=c-g|0;e=j>>2;d=e+1|0;if(d>>>0>=1073741824){break s}c=j>>1;d=j>>>0<2147483644?c>>>0>d>>>0?c:d:1073741823;if(d){if(d>>>0>=1073741824){break d}c=na(d<<2)}else{c=0}e=c+(e<<2)|0;D[e>>2]=h;if((j|0)>0){oa(c,g,j)}D[k+8>>2]=c+(d<<2);D[k+4>>2]=e+4;D[k>>2]=c;if(!g){break t}ma(g)}j=D[a+12>>2];c=D[j+4>>2];u:{if((c|0)!=D[j+8>>2]){D[c>>2]=b;D[j+4>>2]=c+4;break u}h=D[j>>2];g=c-h|0;e=g>>2;d=e+1|0;if(d>>>0>=1073741824){break r}c=g>>1;d=g>>>0<2147483644?c>>>0>d>>>0?c:d:1073741823;if(d){if(d>>>0>=1073741824){break d}c=na(d<<2)}else{c=0}e=c+(e<<2)|0;D[e>>2]=b;if((g|0)>0){oa(c,h,g)}D[j+8>>2]=c+(d<<2);D[j+4>>2]=e+4;D[j>>2]=c;if(!h){break u}ma(h)}c=D[a+12>>2];D[D[c+12>>2]+(f<<2)>>2]=D[c+24>>2];D[c+24>>2]=D[c+24>>2]+1}if((b|0)==-1){break k}g=D[a+4>>2];f=-1;c=b+1|0;c=(c>>>0)%3|0?c:b-2|0;if((c|0)!=-1){f=D[D[g+12>>2]+(c<<2)>>2]}v:{w:{if((J(i,3)|0)!=(b|0)){e=b-1|0;break w}e=b+2|0;b=-1;if((e|0)==-1){break v}}b=D[D[g+12>>2]+(e<<2)>>2]}h=(b|0)==-1;e=(b>>>0)/3|0;if((f|0)!=-1){c=(f>>>0)/3|0;c=D[D[a+24>>2]+(c>>>3&268435452)>>2]&1<>2]+(c>>>3&536870908)>>2]>>>c&1){break x}e=0;c=D[D[g>>2]+(b<<2)>>2];if(!(D[D[a+36>>2]+(c>>>3&536870908)>>2]>>>c&1)){c=D[a+88>>2]+(c<<2)|0;e=D[c>>2];D[c>>2]=e+1;e=(e|0)<=0?2:1}if(D[a+84>>2]>=(e|0)?d:0){break m}k=J(e,12)+a|0;c=D[k+52>>2];y:{if((c|0)!=D[k+56>>2]){D[c>>2]=b;D[k+52>>2]=c+4;break y}i=D[k+48>>2];j=c-i|0;h=j>>2;g=h+1|0;if(g>>>0>=1073741824){break c}c=j>>1;g=j>>>0<2147483644?c>>>0>g>>>0?c:g:1073741823;if(g){if(g>>>0>=1073741824){break d}c=na(g<<2)}else{c=0}h=c+(h<<2)|0;D[h>>2]=b;if((j|0)>0){oa(c,i,j)}D[k+48>>2]=c;D[k+52>>2]=h+4;D[k+56>>2]=c+(g<<2);if(!i){break y}ma(i)}if(D[a+84>>2]<=(e|0)){break x}D[a+84>>2]=e}if(d){break k}b=-1;if((f|0)==-1){break n}}b=D[D[D[a+4>>2]>>2]+(f<<2)>>2]}e=0;if(!(D[D[a+36>>2]+(b>>>3&536870908)>>2]>>>b&1)){b=D[a+88>>2]+(b<<2)|0;c=D[b>>2];D[b>>2]=c+1;e=(c|0)<=0?2:1}if(D[a+84>>2]<(e|0)){break l}b=f}f=D[a+24>>2];continue}break}i=J(e,12)+a|0;b=D[i+52>>2];z:{if((b|0)!=D[i+56>>2]){D[b>>2]=f;D[i+52>>2]=b+4;break z}h=D[i+48>>2];g=b-h|0;c=g>>2;d=c+1|0;if(d>>>0>=1073741824){break b}b=g>>1;d=g>>>0<2147483644?b>>>0>d>>>0?b:d:1073741823;if(d){if(d>>>0>=1073741824){break d}b=na(d<<2)}else{b=0}c=b+(c<<2)|0;D[c>>2]=f;if((g|0)>0){oa(b,h,g)}D[i+48>>2]=b;D[i+52>>2]=c+4;D[i+56>>2]=b+(d<<2);if(!h){break z}ma(h)}d=D[a+84>>2];if((d|0)<=(e|0)){break j}D[a+84>>2]=e;d=e;break j}d=D[a+84>>2]}if((d|0)<3){continue}break}}return 1}sa();T()}pa();T()}pa();T()}pa();T()}function Bb(a,b,c,d){var e=0,f=0,g=0,h=0,i=0,j=K(0),k=0,l=K(0),m=0;a:{b:{if(!d){break b}c:{d:{switch(D[a+28>>2]-1|0){case 0:h=1;e=B[a+24|0];if((((c|0)>(e|0)?e:c)|0)>0){e=D[a>>2];f=D[e>>2];b=D[a+48>>2]+fi(D[a+40>>2],D[a+44>>2],b,0)|0;b=f+b|0;f=D[e+4>>2];while(1){if(b>>>0>=f>>>0){break a}C[(g<<1)+d>>1]=B[b|0];b=b+1|0;g=g+1|0;e=B[a+24|0];if((g|0)<(((c|0)>(e|0)?e:c)|0)){continue}break}}if((c|0)<=(e|0)){break b}c=c-e|0;a=(e<<1)+d|0;break c;case 1:h=1;e=B[a+24|0];if((((c|0)>(e|0)?e:c)|0)>0){e=D[a>>2];f=D[e>>2];b=D[a+48>>2]+fi(D[a+40>>2],D[a+44>>2],b,0)|0;b=f+b|0;f=D[e+4>>2];while(1){if(b>>>0>=f>>>0){break a}C[(g<<1)+d>>1]=E[b|0];b=b+1|0;g=g+1|0;e=B[a+24|0];if((g|0)<(((c|0)>(e|0)?e:c)|0)){continue}break}}if((c|0)<=(e|0)){break b}c=c-e|0;a=(e<<1)+d|0;break c;case 2:h=1;e=B[a+24|0];if((((c|0)>(e|0)?e:c)|0)>0){e=D[a>>2];f=D[e>>2];b=D[a+48>>2]+fi(D[a+40>>2],D[a+44>>2],b,0)|0;b=f+b|0;f=D[e+4>>2];while(1){if(b>>>0>=f>>>0){break a}C[(g<<1)+d>>1]=F[b>>1];b=b+2|0;g=g+1|0;e=B[a+24|0];if((g|0)<(((c|0)>(e|0)?e:c)|0)){continue}break}}if((c|0)<=(e|0)){break b}c=c-e|0;a=(e<<1)+d|0;break c;case 3:e=B[a+24|0];if((((c|0)>(e|0)?e:c)|0)>0){e=D[a>>2];f=D[e>>2];b=D[a+48>>2]+fi(D[a+40>>2],D[a+44>>2],b,0)|0;b=f+b|0;f=D[e+4>>2];while(1){if(b>>>0>=f>>>0){break a}e=C[b>>1];if((e|0)<0){break b}C[(g<<1)+d>>1]=e;b=b+2|0;g=g+1|0;e=B[a+24|0];if((g|0)<(((c|0)>(e|0)?e:c)|0)){continue}break}}h=1;if((c|0)<=(e|0)){break b}c=c-e|0;a=(e<<1)+d|0;break c;case 4:h=1;e=B[a+24|0];if((((c|0)>(e|0)?e:c)|0)>0){e=D[a>>2];f=D[e>>2];b=D[a+48>>2]+fi(D[a+40>>2],D[a+44>>2],b,0)|0;b=f+b|0;f=D[e+4>>2];while(1){if(b>>>0>=f>>>0){break a}e=D[b>>2];if(e-32768>>>0<4294901760){break a}C[(g<<1)+d>>1]=e;b=b+4|0;g=g+1|0;e=B[a+24|0];if((g|0)<(((c|0)>(e|0)?e:c)|0)){continue}break}}if((c|0)<=(e|0)){break b}c=c-e|0;a=(e<<1)+d|0;break c;case 5:h=1;e=B[a+24|0];if((((c|0)>(e|0)?e:c)|0)>0){e=D[a>>2];f=D[e>>2];b=D[a+48>>2]+fi(D[a+40>>2],D[a+44>>2],b,0)|0;b=f+b|0;f=D[e+4>>2];while(1){if(b>>>0>=f>>>0){break a}e=D[b>>2];if(e>>>0>32767){break a}C[(g<<1)+d>>1]=e;b=b+4|0;g=g+1|0;e=B[a+24|0];if((g|0)<(((c|0)>(e|0)?e:c)|0)){continue}break}}if((c|0)<=(e|0)){break b}c=c-e|0;a=(e<<1)+d|0;break c;case 6:h=1;e=B[a+24|0];if((((c|0)>(e|0)?e:c)|0)>0){e=D[a>>2];f=D[e>>2];b=D[a+48>>2]+fi(D[a+40>>2],D[a+44>>2],b,0)|0;b=f+b|0;f=D[e+4>>2];while(1){if(b>>>0>=f>>>0){break a}i=D[b>>2];e=D[b+4>>2]-(i>>>0<32768)|0;if((e|0)==-1&i-32768>>>0<4294901760|(e|0)!=-1){break a}C[(g<<1)+d>>1]=i;b=b+8|0;g=g+1|0;e=B[a+24|0];if((g|0)<(((c|0)>(e|0)?e:c)|0)){continue}break}}if((c|0)<=(e|0)){break b}c=c-e|0;a=(e<<1)+d|0;break c;case 7:h=1;e=B[a+24|0];if((((c|0)>(e|0)?e:c)|0)>0){e=D[a>>2];f=D[e>>2];b=D[a+48>>2]+fi(D[a+40>>2],D[a+44>>2],b,0)|0;b=f+b|0;f=D[e+4>>2];while(1){if(b>>>0>=f>>>0){break a}e=D[b+4>>2];i=D[b>>2];if(!e&i>>>0>32767|e){break a}C[(g<<1)+d>>1]=i;b=b+8|0;g=g+1|0;e=B[a+24|0];if((g|0)<(((c|0)>(e|0)?e:c)|0)){continue}break}}if((c|0)<=(e|0)){break b}c=c-e|0;a=(e<<1)+d|0;break c;case 8:h=1;e=B[a+24|0];if((((c|0)>(e|0)?e:c)|0)>0){e=D[a>>2];f=D[e>>2];b=D[a+48>>2]+fi(D[a+40>>2],D[a+44>>2],b,0)|0;b=f+b|0;f=D[e+4>>2];while(1){if(b>>>0>=f>>>0){break a}j=H[b>>2];if(j>K(32767)|j>1]=e;b=b+4|0;g=g+1|0;e=B[a+24|0];if((g|0)<(((c|0)>(e|0)?e:c)|0)){continue}break}}if((c|0)<=(e|0)){break b}c=c-e|0;a=(e<<1)+d|0;break c;case 9:h=1;e=B[a+24|0];if((((c|0)>(e|0)?e:c)|0)>0){e=D[a>>2];f=D[e>>2];b=D[a+48>>2]+fi(D[a+40>>2],D[a+44>>2],b,0)|0;b=f+b|0;f=D[e+4>>2];while(1){if(b>>>0>=f>>>0){break a}k=I[b>>3];if(k>32767|k<-32768|k!=k){break a}m=L(k);if(m==V){break a}i=(g<<1)+d|0;if(m<2147483648){e=~~k}else{e=-2147483648}C[i>>1]=e;b=b+8|0;g=g+1|0;e=B[a+24|0];if((g|0)<(((c|0)>(e|0)?e:c)|0)){continue}break}}if((c|0)<=(e|0)){break b}c=c-e|0;a=(e<<1)+d|0;break c;case 10:break d;default:break b}}h=1;e=B[a+24|0];if((((c|0)>(e|0)?e:c)|0)>0){e=D[a>>2];f=D[e>>2];b=D[a+48>>2]+fi(D[a+40>>2],D[a+44>>2],b,0)|0;b=f+b|0;f=D[e+4>>2];while(1){if(b>>>0>=f>>>0){break a}C[(g<<1)+d>>1]=E[b|0];b=b+1|0;g=g+1|0;e=B[a+24|0];if((g|0)<(((c|0)>(e|0)?e:c)|0)){continue}break}}if((c|0)<=(e|0)){break b}c=c-e|0;a=(e<<1)+d|0}qa(a,0,c<<1)}return h}return 0}function Ab(a,b,c,d){var e=0,f=0,g=0,h=0,i=0,j=K(0),k=0;a:{b:{if(!d){break b}c:{d:{switch(D[a+28>>2]-1|0){case 0:e=B[a+24|0];if((((c|0)>(e|0)?e:c)|0)>0){e=D[a>>2];f=D[e>>2];b=D[a+48>>2]+fi(D[a+40>>2],D[a+44>>2],b,0)|0;b=f+b|0;f=D[e+4>>2];while(1){if(b>>>0>=f>>>0){break a}e=B[b|0];if((e|0)<0){break b}C[(g<<1)+d>>1]=e&255;b=b+1|0;g=g+1|0;e=B[a+24|0];if((g|0)<(((c|0)>(e|0)?e:c)|0)){continue}break}}h=1;if((c|0)<=(e|0)){break b}c=c-e|0;a=(e<<1)+d|0;break c;case 1:h=1;e=B[a+24|0];if((((c|0)>(e|0)?e:c)|0)>0){e=D[a>>2];f=D[e>>2];b=D[a+48>>2]+fi(D[a+40>>2],D[a+44>>2],b,0)|0;b=f+b|0;f=D[e+4>>2];while(1){if(b>>>0>=f>>>0){break a}C[(g<<1)+d>>1]=E[b|0];b=b+1|0;g=g+1|0;e=B[a+24|0];if((g|0)<(((c|0)>(e|0)?e:c)|0)){continue}break}}if((c|0)<=(e|0)){break b}c=c-e|0;a=(e<<1)+d|0;break c;case 2:e=B[a+24|0];if((((c|0)>(e|0)?e:c)|0)>0){e=D[a>>2];f=D[e>>2];b=D[a+48>>2]+fi(D[a+40>>2],D[a+44>>2],b,0)|0;b=f+b|0;f=D[e+4>>2];while(1){if(b>>>0>=f>>>0){break a}e=C[b>>1];if((e|0)<0){break b}C[(g<<1)+d>>1]=e;b=b+2|0;g=g+1|0;e=B[a+24|0];if((g|0)<(((c|0)>(e|0)?e:c)|0)){continue}break}}h=1;if((c|0)<=(e|0)){break b}c=c-e|0;a=(e<<1)+d|0;break c;case 3:h=1;e=B[a+24|0];if((((c|0)>(e|0)?e:c)|0)>0){e=D[a>>2];f=D[e>>2];b=D[a+48>>2]+fi(D[a+40>>2],D[a+44>>2],b,0)|0;b=f+b|0;f=D[e+4>>2];while(1){if(b>>>0>=f>>>0){break a}C[(g<<1)+d>>1]=F[b>>1];b=b+2|0;g=g+1|0;e=B[a+24|0];if((g|0)<(((c|0)>(e|0)?e:c)|0)){continue}break}}if((c|0)<=(e|0)){break b}c=c-e|0;a=(e<<1)+d|0;break c;case 4:h=1;e=B[a+24|0];if((((c|0)>(e|0)?e:c)|0)>0){e=D[a>>2];f=D[e>>2];b=D[a+48>>2]+fi(D[a+40>>2],D[a+44>>2],b,0)|0;b=f+b|0;f=D[e+4>>2];while(1){if(b>>>0>=f>>>0){break a}e=D[b>>2];if(e>>>0>65535){break a}C[(g<<1)+d>>1]=e;b=b+4|0;g=g+1|0;e=B[a+24|0];if((g|0)<(((c|0)>(e|0)?e:c)|0)){continue}break}}if((c|0)<=(e|0)){break b}c=c-e|0;a=(e<<1)+d|0;break c;case 5:h=1;e=B[a+24|0];if((((c|0)>(e|0)?e:c)|0)>0){e=D[a>>2];f=D[e>>2];b=D[a+48>>2]+fi(D[a+40>>2],D[a+44>>2],b,0)|0;b=f+b|0;f=D[e+4>>2];while(1){if(b>>>0>=f>>>0){break a}e=D[b>>2];if(e>>>0>65535){break a}C[(g<<1)+d>>1]=e;b=b+4|0;g=g+1|0;e=B[a+24|0];if((g|0)<(((c|0)>(e|0)?e:c)|0)){continue}break}}if((c|0)<=(e|0)){break b}c=c-e|0;a=(e<<1)+d|0;break c;case 6:h=1;e=B[a+24|0];if((((c|0)>(e|0)?e:c)|0)>0){e=D[a>>2];f=D[e>>2];b=D[a+48>>2]+fi(D[a+40>>2],D[a+44>>2],b,0)|0;b=f+b|0;f=D[e+4>>2];while(1){if(b>>>0>=f>>>0){break a}e=D[b+4>>2];i=D[b>>2];if(!e&i>>>0>65535|e){break a}C[(g<<1)+d>>1]=i;b=b+8|0;g=g+1|0;e=B[a+24|0];if((g|0)<(((c|0)>(e|0)?e:c)|0)){continue}break}}if((c|0)<=(e|0)){break b}c=c-e|0;a=(e<<1)+d|0;break c;case 7:h=1;e=B[a+24|0];if((((c|0)>(e|0)?e:c)|0)>0){e=D[a>>2];f=D[e>>2];b=D[a+48>>2]+fi(D[a+40>>2],D[a+44>>2],b,0)|0;b=f+b|0;f=D[e+4>>2];while(1){if(b>>>0>=f>>>0){break a}e=D[b+4>>2];i=D[b>>2];if(!e&i>>>0>65535|e){break a}C[(g<<1)+d>>1]=i;b=b+8|0;g=g+1|0;e=B[a+24|0];if((g|0)<(((c|0)>(e|0)?e:c)|0)){continue}break}}if((c|0)<=(e|0)){break b}c=c-e|0;a=(e<<1)+d|0;break c;case 8:h=1;e=B[a+24|0];if((((c|0)>(e|0)?e:c)|0)>0){e=D[a>>2];f=D[e>>2];b=D[a+48>>2]+fi(D[a+40>>2],D[a+44>>2],b,0)|0;b=f+b|0;f=D[e+4>>2];while(1){if(b>>>0>=f>>>0){break a}j=H[b>>2];if(j>K(65535)|j=K(0)){e=~~j>>>0}else{e=0}C[i>>1]=e;b=b+4|0;g=g+1|0;e=B[a+24|0];if((g|0)<(((c|0)>(e|0)?e:c)|0)){continue}break}}if((c|0)<=(e|0)){break b}c=c-e|0;a=(e<<1)+d|0;break c;case 9:h=1;e=B[a+24|0];if((((c|0)>(e|0)?e:c)|0)>0){e=D[a>>2];f=D[e>>2];b=D[a+48>>2]+fi(D[a+40>>2],D[a+44>>2],b,0)|0;b=f+b|0;f=D[e+4>>2];while(1){if(b>>>0>=f>>>0){break a}k=I[b>>3];if(k>65535|k<0|(L(k)==V|k!=k)){break a}i=(g<<1)+d|0;if(k<4294967296&k>=0){e=~~k>>>0}else{e=0}C[i>>1]=e;b=b+8|0;g=g+1|0;e=B[a+24|0];if((g|0)<(((c|0)>(e|0)?e:c)|0)){continue}break}}if((c|0)<=(e|0)){break b}c=c-e|0;a=(e<<1)+d|0;break c;case 10:break d;default:break b}}h=1;e=B[a+24|0];if((((c|0)>(e|0)?e:c)|0)>0){e=D[a>>2];f=D[e>>2];b=D[a+48>>2]+fi(D[a+40>>2],D[a+44>>2],b,0)|0;b=f+b|0;f=D[e+4>>2];while(1){if(b>>>0>=f>>>0){break a}C[(g<<1)+d>>1]=E[b|0];b=b+1|0;g=g+1|0;e=B[a+24|0];if((g|0)<(((c|0)>(e|0)?e:c)|0)){continue}break}}if((c|0)<=(e|0)){break b}c=c-e|0;a=(e<<1)+d|0}qa(a,0,c<<1)}return h}return 0}function zb(a,b,c,d){var e=0,f=0,g=0,h=0,i=0,j=K(0),k=0,l=K(0),m=0;a:{b:{if(!d){break b}c:{d:{switch(D[a+28>>2]-1|0){case 0:h=1;e=B[a+24|0];if((((c|0)>(e|0)?e:c)|0)>0){e=D[a>>2];f=D[e>>2];b=D[a+48>>2]+fi(D[a+40>>2],D[a+44>>2],b,0)|0;b=f+b|0;f=D[e+4>>2];while(1){if(b>>>0>=f>>>0){break a}D[(g<<2)+d>>2]=B[b|0];b=b+1|0;g=g+1|0;e=B[a+24|0];if((g|0)<(((c|0)>(e|0)?e:c)|0)){continue}break}}if((c|0)<=(e|0)){break b}c=c-e|0;a=(e<<2)+d|0;break c;case 1:h=1;e=B[a+24|0];if((((c|0)>(e|0)?e:c)|0)>0){e=D[a>>2];f=D[e>>2];b=D[a+48>>2]+fi(D[a+40>>2],D[a+44>>2],b,0)|0;b=f+b|0;f=D[e+4>>2];while(1){if(b>>>0>=f>>>0){break a}D[(g<<2)+d>>2]=E[b|0];b=b+1|0;g=g+1|0;e=B[a+24|0];if((g|0)<(((c|0)>(e|0)?e:c)|0)){continue}break}}if((c|0)<=(e|0)){break b}c=c-e|0;a=(e<<2)+d|0;break c;case 2:h=1;e=B[a+24|0];if((((c|0)>(e|0)?e:c)|0)>0){e=D[a>>2];f=D[e>>2];b=D[a+48>>2]+fi(D[a+40>>2],D[a+44>>2],b,0)|0;b=f+b|0;f=D[e+4>>2];while(1){if(b>>>0>=f>>>0){break a}D[(g<<2)+d>>2]=C[b>>1];b=b+2|0;g=g+1|0;e=B[a+24|0];if((g|0)<(((c|0)>(e|0)?e:c)|0)){continue}break}}if((c|0)<=(e|0)){break b}c=c-e|0;a=(e<<2)+d|0;break c;case 3:h=1;e=B[a+24|0];if((((c|0)>(e|0)?e:c)|0)>0){e=D[a>>2];f=D[e>>2];b=D[a+48>>2]+fi(D[a+40>>2],D[a+44>>2],b,0)|0;b=f+b|0;f=D[e+4>>2];while(1){if(b>>>0>=f>>>0){break a}D[(g<<2)+d>>2]=F[b>>1];b=b+2|0;g=g+1|0;e=B[a+24|0];if((g|0)<(((c|0)>(e|0)?e:c)|0)){continue}break}}if((c|0)<=(e|0)){break b}c=c-e|0;a=(e<<2)+d|0;break c;case 4:h=1;e=B[a+24|0];if((((c|0)>(e|0)?e:c)|0)>0){e=D[a>>2];f=D[e>>2];b=D[a+48>>2]+fi(D[a+40>>2],D[a+44>>2],b,0)|0;b=f+b|0;f=D[e+4>>2];while(1){if(b>>>0>=f>>>0){break a}D[(g<<2)+d>>2]=D[b>>2];b=b+4|0;g=g+1|0;e=B[a+24|0];if((g|0)<(((c|0)>(e|0)?e:c)|0)){continue}break}}if((c|0)<=(e|0)){break b}c=c-e|0;a=(e<<2)+d|0;break c;case 5:e=B[a+24|0];if((((c|0)>(e|0)?e:c)|0)>0){e=D[a>>2];f=D[e>>2];b=D[a+48>>2]+fi(D[a+40>>2],D[a+44>>2],b,0)|0;b=f+b|0;f=D[e+4>>2];while(1){if(b>>>0>=f>>>0){break a}e=D[b>>2];if((e|0)<0){break b}D[(g<<2)+d>>2]=e;b=b+4|0;g=g+1|0;e=B[a+24|0];if((g|0)<(((c|0)>(e|0)?e:c)|0)){continue}break}}h=1;if((c|0)<=(e|0)){break b}c=c-e|0;a=(e<<2)+d|0;break c;case 6:h=1;e=B[a+24|0];if((((c|0)>(e|0)?e:c)|0)>0){e=D[a>>2];f=D[e>>2];b=D[a+48>>2]+fi(D[a+40>>2],D[a+44>>2],b,0)|0;b=f+b|0;f=D[e+4>>2];while(1){if(b>>>0>=f>>>0){break a}e=D[b>>2];if((D[b+4>>2]-(e>>>0<2147483648)|0)!=-1){break a}D[(g<<2)+d>>2]=e;b=b+8|0;g=g+1|0;e=B[a+24|0];if((g|0)<(((c|0)>(e|0)?e:c)|0)){continue}break}}if((c|0)<=(e|0)){break b}c=c-e|0;a=(e<<2)+d|0;break c;case 7:h=1;e=B[a+24|0];if((((c|0)>(e|0)?e:c)|0)>0){e=D[a>>2];f=D[e>>2];b=D[a+48>>2]+fi(D[a+40>>2],D[a+44>>2],b,0)|0;b=f+b|0;f=D[e+4>>2];while(1){if(b>>>0>=f>>>0){break a}e=D[b+4>>2];i=D[b>>2];if(!e&i>>>0>2147483647|e){break a}D[(g<<2)+d>>2]=i;b=b+8|0;g=g+1|0;e=B[a+24|0];if((g|0)<(((c|0)>(e|0)?e:c)|0)){continue}break}}if((c|0)<=(e|0)){break b}c=c-e|0;a=(e<<2)+d|0;break c;case 8:h=1;e=B[a+24|0];if((((c|0)>(e|0)?e:c)|0)>0){e=D[a>>2];f=D[e>>2];b=D[a+48>>2]+fi(D[a+40>>2],D[a+44>>2],b,0)|0;b=f+b|0;f=D[e+4>>2];while(1){if(b>>>0>=f>>>0){break a}j=H[b>>2];if(j>K(2147483648)|j>2]=e;b=b+4|0;g=g+1|0;e=B[a+24|0];if((g|0)<(((c|0)>(e|0)?e:c)|0)){continue}break}}if((c|0)<=(e|0)){break b}c=c-e|0;a=(e<<2)+d|0;break c;case 9:h=1;e=B[a+24|0];if((((c|0)>(e|0)?e:c)|0)>0){e=D[a>>2];f=D[e>>2];b=D[a+48>>2]+fi(D[a+40>>2],D[a+44>>2],b,0)|0;b=f+b|0;f=D[e+4>>2];while(1){if(b>>>0>=f>>>0){break a}k=I[b>>3];if(k>2147483647|k<-2147483648|k!=k){break a}m=L(k);if(m==V){break a}i=(g<<2)+d|0;if(m<2147483648){e=~~k}else{e=-2147483648}D[i>>2]=e;b=b+8|0;g=g+1|0;e=B[a+24|0];if((g|0)<(((c|0)>(e|0)?e:c)|0)){continue}break}}if((c|0)<=(e|0)){break b}c=c-e|0;a=(e<<2)+d|0;break c;case 10:break d;default:break b}}h=1;e=B[a+24|0];if((((c|0)>(e|0)?e:c)|0)>0){e=D[a>>2];f=D[e>>2];b=D[a+48>>2]+fi(D[a+40>>2],D[a+44>>2],b,0)|0;b=f+b|0;f=D[e+4>>2];while(1){if(b>>>0>=f>>>0){break a}D[(g<<2)+d>>2]=E[b|0];b=b+1|0;g=g+1|0;e=B[a+24|0];if((g|0)<(((c|0)>(e|0)?e:c)|0)){continue}break}}if((c|0)<=(e|0)){break b}c=c-e|0;a=(e<<2)+d|0}qa(a,0,c<<2)}return h}return 0}function yb(a,b,c,d){var e=0,f=0,g=0,h=0,i=K(0),j=0,k=0;a:{b:{if(!d){break b}c:{d:{switch(D[a+28>>2]-1|0){case 0:h=1;e=B[a+24|0];if((((c|0)>(e|0)?e:c)|0)>0){e=D[a>>2];f=D[e>>2];b=D[a+48>>2]+fi(D[a+40>>2],D[a+44>>2],b,0)|0;b=f+b|0;f=D[e+4>>2];while(1){if(b>>>0>=f>>>0){break a}D[(g<<2)+d>>2]=B[b|0];b=b+1|0;g=g+1|0;e=B[a+24|0];if((g|0)<(((c|0)>(e|0)?e:c)|0)){continue}break}}if((c|0)<=(e|0)){break b}c=c-e|0;a=(e<<2)+d|0;break c;case 1:h=1;e=B[a+24|0];if((((c|0)>(e|0)?e:c)|0)>0){e=D[a>>2];f=D[e>>2];b=D[a+48>>2]+fi(D[a+40>>2],D[a+44>>2],b,0)|0;b=f+b|0;f=D[e+4>>2];while(1){if(b>>>0>=f>>>0){break a}D[(g<<2)+d>>2]=E[b|0];b=b+1|0;g=g+1|0;e=B[a+24|0];if((g|0)<(((c|0)>(e|0)?e:c)|0)){continue}break}}if((c|0)<=(e|0)){break b}c=c-e|0;a=(e<<2)+d|0;break c;case 2:h=1;e=B[a+24|0];if((((c|0)>(e|0)?e:c)|0)>0){e=D[a>>2];f=D[e>>2];b=D[a+48>>2]+fi(D[a+40>>2],D[a+44>>2],b,0)|0;b=f+b|0;f=D[e+4>>2];while(1){if(b>>>0>=f>>>0){break a}D[(g<<2)+d>>2]=C[b>>1];b=b+2|0;g=g+1|0;e=B[a+24|0];if((g|0)<(((c|0)>(e|0)?e:c)|0)){continue}break}}if((c|0)<=(e|0)){break b}c=c-e|0;a=(e<<2)+d|0;break c;case 3:h=1;e=B[a+24|0];if((((c|0)>(e|0)?e:c)|0)>0){e=D[a>>2];f=D[e>>2];b=D[a+48>>2]+fi(D[a+40>>2],D[a+44>>2],b,0)|0;b=f+b|0;f=D[e+4>>2];while(1){if(b>>>0>=f>>>0){break a}D[(g<<2)+d>>2]=F[b>>1];b=b+2|0;g=g+1|0;e=B[a+24|0];if((g|0)<(((c|0)>(e|0)?e:c)|0)){continue}break}}if((c|0)<=(e|0)){break b}c=c-e|0;a=(e<<2)+d|0;break c;case 4:h=1;e=B[a+24|0];if((((c|0)>(e|0)?e:c)|0)>0){e=D[a>>2];f=D[e>>2];b=D[a+48>>2]+fi(D[a+40>>2],D[a+44>>2],b,0)|0;b=f+b|0;f=D[e+4>>2];while(1){if(b>>>0>=f>>>0){break a}D[(g<<2)+d>>2]=D[b>>2];b=b+4|0;g=g+1|0;e=B[a+24|0];if((g|0)<(((c|0)>(e|0)?e:c)|0)){continue}break}}if((c|0)<=(e|0)){break b}c=c-e|0;a=(e<<2)+d|0;break c;case 5:h=1;e=B[a+24|0];if((((c|0)>(e|0)?e:c)|0)>0){e=D[a>>2];f=D[e>>2];b=D[a+48>>2]+fi(D[a+40>>2],D[a+44>>2],b,0)|0;b=f+b|0;f=D[e+4>>2];while(1){if(b>>>0>=f>>>0){break a}D[(g<<2)+d>>2]=D[b>>2];b=b+4|0;g=g+1|0;e=B[a+24|0];if((g|0)<(((c|0)>(e|0)?e:c)|0)){continue}break}}if((c|0)<=(e|0)){break b}c=c-e|0;a=(e<<2)+d|0;break c;case 6:h=1;e=B[a+24|0];if((((c|0)>(e|0)?e:c)|0)>0){e=D[a>>2];f=D[e>>2];b=D[a+48>>2]+fi(D[a+40>>2],D[a+44>>2],b,0)|0;b=f+b|0;f=D[e+4>>2];while(1){if(b>>>0>=f>>>0){break a}e=D[b>>2];if(D[b+4>>2]){break a}D[(g<<2)+d>>2]=e;b=b+8|0;g=g+1|0;e=B[a+24|0];if((g|0)<(((c|0)>(e|0)?e:c)|0)){continue}break}}if((c|0)<=(e|0)){break b}c=c-e|0;a=(e<<2)+d|0;break c;case 7:h=1;e=B[a+24|0];if((((c|0)>(e|0)?e:c)|0)>0){e=D[a>>2];f=D[e>>2];b=D[a+48>>2]+fi(D[a+40>>2],D[a+44>>2],b,0)|0;b=f+b|0;f=D[e+4>>2];while(1){if(b>>>0>=f>>>0){break a}e=D[b>>2];if(D[b+4>>2]){break a}D[(g<<2)+d>>2]=e;b=b+8|0;g=g+1|0;e=B[a+24|0];if((g|0)<(((c|0)>(e|0)?e:c)|0)){continue}break}}if((c|0)<=(e|0)){break b}c=c-e|0;a=(e<<2)+d|0;break c;case 8:h=1;e=B[a+24|0];if((((c|0)>(e|0)?e:c)|0)>0){e=D[a>>2];f=D[e>>2];b=D[a+48>>2]+fi(D[a+40>>2],D[a+44>>2],b,0)|0;b=f+b|0;f=D[e+4>>2];while(1){if(b>>>0>=f>>>0){break a}i=H[b>>2];if(i>K(4294967296)|i=K(0)){e=~~i>>>0}else{e=0}D[k>>2]=e;b=b+4|0;g=g+1|0;e=B[a+24|0];if((g|0)<(((c|0)>(e|0)?e:c)|0)){continue}break}}if((c|0)<=(e|0)){break b}c=c-e|0;a=(e<<2)+d|0;break c;case 9:h=1;e=B[a+24|0];if((((c|0)>(e|0)?e:c)|0)>0){e=D[a>>2];f=D[e>>2];b=D[a+48>>2]+fi(D[a+40>>2],D[a+44>>2],b,0)|0;b=f+b|0;f=D[e+4>>2];while(1){if(b>>>0>=f>>>0){break a}j=I[b>>3];if(j>4294967295|j<0|(L(j)==V|j!=j)){break a}k=(g<<2)+d|0;if(j<4294967296&j>=0){e=~~j>>>0}else{e=0}D[k>>2]=e;b=b+8|0;g=g+1|0;e=B[a+24|0];if((g|0)<(((c|0)>(e|0)?e:c)|0)){continue}break}}if((c|0)<=(e|0)){break b}c=c-e|0;a=(e<<2)+d|0;break c;case 10:break d;default:break b}}h=1;e=B[a+24|0];if((((c|0)>(e|0)?e:c)|0)>0){e=D[a>>2];f=D[e>>2];b=D[a+48>>2]+fi(D[a+40>>2],D[a+44>>2],b,0)|0;b=f+b|0;f=D[e+4>>2];while(1){if(b>>>0>=f>>>0){break a}D[(g<<2)+d>>2]=E[b|0];b=b+1|0;g=g+1|0;e=B[a+24|0];if((g|0)<(((c|0)>(e|0)?e:c)|0)){continue}break}}if((c|0)<=(e|0)){break b}c=c-e|0;a=(e<<2)+d|0}qa(a,0,c<<2)}return h}return 0}function Mb(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0;f=$-96|0;$=f;e=D[a+16>>2];B[f+92|0]=1;D[f+88>>2]=b;D[f+84>>2]=b;D[f+80>>2]=e;k=D[a+20>>2];d=D[k>>2];a:{b:{e=D[D[e+28>>2]+(b<<2)>>2];if(e>>>0>2]-d>>2>>>0){d=D[D[a+8>>2]+(D[d+(e<<2)>>2]<<2)>>2];e=D[a+4>>2];if(!E[e+84|0]){d=D[D[e+68>>2]+(d<<2)>>2]}D[f+72>>2]=0;D[f+76>>2]=0;k=f- -64|0;D[k>>2]=0;D[k+4>>2]=0;D[f+56>>2]=0;D[f+60>>2]=0;Ia(e,d,B[e+24|0],f+56|0);if((b|0)!=-1){e=b+1|0;k=(e>>>0)%3|0?e:b-2|0;i=((b>>>0)%3|0?-1:2)+b|0;while(1){d=k;e=i;c:{if(!D[a+28>>2]){break c}e=b+1|0;d=(e>>>0)%3|0?e:b-2|0;e=b-1|0;if((b>>>0)%3|0){break c}e=b+2|0}h=D[a+20>>2];b=D[h>>2];d=D[D[D[a+16>>2]+28>>2]+(d<<2)>>2];if(d>>>0>=D[h+4>>2]-b>>2>>>0){break b}d=D[D[a+8>>2]+(D[b+(d<<2)>>2]<<2)>>2];b=D[a+4>>2];if(!E[b+84|0]){d=D[D[b+68>>2]+(d<<2)>>2]}D[f+48>>2]=0;D[f+52>>2]=0;D[f+40>>2]=0;D[f+44>>2]=0;D[f+32>>2]=0;D[f+36>>2]=0;Ia(b,d,B[b+24|0],f+32|0);d=D[a+20>>2];b=D[d>>2];e=D[D[D[a+16>>2]+28>>2]+(e<<2)>>2];if(e>>>0>=D[d+4>>2]-b>>2>>>0){break a}d=D[D[a+8>>2]+(D[b+(e<<2)>>2]<<2)>>2];b=D[a+4>>2];if(!E[b+84|0]){d=D[D[b+68>>2]+(d<<2)>>2]}D[f+24>>2]=0;D[f+28>>2]=0;D[f+16>>2]=0;D[f+20>>2]=0;D[f+8>>2]=0;D[f+12>>2]=0;Ia(b,d,B[b+24|0],f+8|0);e=D[f+8>>2];b=D[f+56>>2];d=e-b|0;h=D[f+60>>2];j=D[f+12>>2]-(h+(b>>>0>e>>>0)|0)|0;p=D[f+40>>2];e=D[f+64>>2];s=p-e|0;t=D[f+68>>2];p=D[f+44>>2]-(t+(e>>>0>p>>>0)|0)|0;u=fi(d,j,s,p);v=n-u|0;n=g-(aa+(n>>>0>>0)|0)|0;o=v;g=D[f+16>>2];u=g-e|0;t=D[f+20>>2]-((e>>>0>g>>>0)+t|0)|0;g=D[f+32>>2];v=g-b|0;h=D[f+36>>2]-((b>>>0>g>>>0)+h|0)|0;e=fi(u,t,v,h);b=o+e|0;g=aa+n|0;g=b>>>0>>0?g+1|0:g;n=b;e=l;o=d;x=j;b=D[f+48>>2];l=D[f+72>>2];d=b-l|0;j=D[f+76>>2];w=D[f+52>>2]-(j+(b>>>0>>0)|0)|0;o=fi(o,x,d,w);e=e+o|0;b=aa+m|0;b=e>>>0>>0?b+1|0:b;m=D[f+24>>2];o=m-l|0;j=D[f+28>>2]-((l>>>0>m>>>0)+j|0)|0;m=fi(o,j,v,h);l=e-m|0;m=b-(aa+(e>>>0>>0)|0)|0;b=fi(u,t,d,w);e=q-b|0;b=r-(aa+(b>>>0>q>>>0)|0)|0;r=fi(o,j,s,p);q=r+e|0;b=aa+b|0;b=q>>>0>>0?b+1|0:b;r=b;b=D[f+88>>2];e=D[f+80>>2];d:{if(E[f+92|0]){e:{f:{g:{h:{if((b|0)==-1){break h}d=b+1|0;b=(d>>>0)%3|0?d:b-2|0;if((b|0)==-1|D[D[e>>2]+(b>>>3&536870908)>>2]>>>b&1){break h}b=D[D[D[e+64>>2]+12>>2]+(b<<2)>>2];if((b|0)!=-1){break g}}D[f+88>>2]=-1;break f}d=b+1|0;b=(d>>>0)%3|0?d:b-2|0;D[f+88>>2]=b;if((b|0)!=-1){break e}}b=D[f+84>>2];d=-1;i:{if((b|0)==-1){break i}j:{if((b>>>0)%3|0){b=b-1|0;break j}b=b+2|0;d=-1;if((b|0)==-1){break i}}d=-1;if(D[D[e>>2]+(b>>>3&536870908)>>2]>>>b&1){break i}b=D[D[D[e+64>>2]+12>>2]+(b<<2)>>2];d=-1;if((b|0)==-1){break i}d=b-1|0;if((b>>>0)%3|0){break i}d=b+2|0}B[f+92|0]=0;D[f+88>>2]=d;break d}if((b|0)!=D[f+84>>2]){break d}D[f+88>>2]=-1;break d}d=-1;k:{if((b|0)==-1){break k}l:{if((b>>>0)%3|0){b=b-1|0;break l}b=b+2|0;d=-1;if((b|0)==-1){break k}}d=-1;if(D[D[e>>2]+(b>>>3&536870908)>>2]>>>b&1){break k}b=D[D[D[e+64>>2]+12>>2]+(b<<2)>>2];d=-1;if((b|0)==-1){break k}d=b-1|0;if((b>>>0)%3|0){break k}d=b+2|0}D[f+88>>2]=d}b=D[f+88>>2];if((b|0)!=-1){continue}break}}b=r>>31;e=b^q;j=e-b|0;h=(b^r)-((b>>>0>e>>>0)+b|0)|0;p=-1;e=2147483647;b=m>>31;k=b^l;d=(b^m)-((b>>>0>k>>>0)+b|0)|0;b=k-b|0;s=b^-1;i=d^2147483647;k=g;m:{n:{if(!D[a+28>>2]){if((i|0)==(h|0)&j>>>0>s>>>0|i>>>0>>0){break m}i=g;a=b;e=b+j|0;b=d+h|0;b=a>>>0>e>>>0?b+1|0:b;a=g>>31;d=a;h=d^n;j=h-d|0;g=e+j|0;d=(d^i)-((d>>>0>h>>>0)+d|0)|0;a=g;g=d^2147483647;g=(g|0)==(b|0)&(j^-1)>>>0>>0|b>>>0>g>>>0;a=g?-1:a;if(!(g&0)&(a|0)<=536870912|(a|0)<536870912){break m}b=0;a=a>>>29|0;break n}o:{if((i|0)==(h|0)&j>>>0>s>>>0|i>>>0>>0){break o}a=b;i=b+j|0;b=d+h|0;b=a>>>0>i>>>0?b+1|0:b;a=i;h=g;d=g>>31;g=d;i=d^n;d=(d^h)-(d+(d>>>0>i>>>0)|0)|0;g=i-g|0;i=d^2147483647;if((i|0)==(b|0)&(g^-1)>>>0>>0|b>>>0>i>>>0){break o}b=b+d|0;a=a+g|0;b=a>>>0>>0?b+1|0:b;p=a;e=b;if(!b&a>>>0<536870913){break m}}b=e>>>29|0;a=(e&536870911)<<3|p>>>29}n=gi(n,k,a,b);l=gi(l,m,a,b);q=gi(q,r,a,b)}D[c+8>>2]=n;D[c+4>>2]=l;D[c>>2]=q;$=f+96|0;return}va();T()}va();T()}va();T()}function Db(a,b,c,d){var e=0,f=0,g=0,h=0,i=K(0),j=0,k=K(0),l=0;a:{b:{c:{if(!d){break c}d:{switch(D[a+28>>2]-1|0){case 0:g=1;e=B[a+24|0];if((((c|0)>(e|0)?e:c)|0)>0){e=D[D[a>>2]>>2];b=D[a+48>>2]+fi(D[a+40>>2],D[a+44>>2],b,0)|0;b=e+b|0;while(1){if(G[D[a>>2]+4>>2]<=b>>>0){break b}B[d+f|0]=E[b|0];b=b+1|0;f=f+1|0;e=B[a+24|0];if((f|0)<(((c|0)>(e|0)?e:c)|0)){continue}break}}if((c|0)<=(e|0)){break c}break a;case 1:g=B[a+24|0];if((((c|0)>(g|0)?g:c)|0)>0){e=D[D[a>>2]>>2];b=D[a+48>>2]+fi(D[a+40>>2],D[a+44>>2],b,0)|0;b=e+b|0;while(1){if(G[D[a>>2]+4>>2]<=b>>>0){break b}g=0;e=B[b|0];if((e|0)<0){break c}B[d+f|0]=e;b=b+1|0;f=f+1|0;g=B[a+24|0];if((f|0)<(((c|0)>(g|0)?g:c)|0)){continue}break}}if((c|0)<=(g|0)){return 1}qa(d+g|0,0,c-g|0);return 1;case 2:g=1;e=B[a+24|0];if((((c|0)>(e|0)?e:c)|0)>0){e=D[D[a>>2]>>2];b=D[a+48>>2]+fi(D[a+40>>2],D[a+44>>2],b,0)|0;b=e+b|0;while(1){if(G[D[a>>2]+4>>2]<=b>>>0){break b}e=F[b>>1];if((e-128&65535)>>>0<65280){break b}B[d+f|0]=e;b=b+2|0;f=f+1|0;e=B[a+24|0];if((f|0)<(((c|0)>(e|0)?e:c)|0)){continue}break}}if((c|0)<=(e|0)){break c}break a;case 3:g=1;e=B[a+24|0];if((((c|0)>(e|0)?e:c)|0)>0){e=D[D[a>>2]>>2];b=D[a+48>>2]+fi(D[a+40>>2],D[a+44>>2],b,0)|0;b=e+b|0;while(1){if(G[D[a>>2]+4>>2]<=b>>>0){break b}e=F[b>>1];if(e>>>0>127){break b}B[d+f|0]=e;b=b+2|0;f=f+1|0;e=B[a+24|0];if((f|0)<(((c|0)>(e|0)?e:c)|0)){continue}break}}if((c|0)<=(e|0)){break c}break a;case 4:g=1;e=B[a+24|0];if((((c|0)>(e|0)?e:c)|0)>0){e=D[D[a>>2]>>2];b=D[a+48>>2]+fi(D[a+40>>2],D[a+44>>2],b,0)|0;b=e+b|0;while(1){if(G[D[a>>2]+4>>2]<=b>>>0){break b}e=D[b>>2];if(e-128>>>0<4294967040){break b}B[d+f|0]=e;b=b+4|0;f=f+1|0;e=B[a+24|0];if((f|0)<(((c|0)>(e|0)?e:c)|0)){continue}break}}if((c|0)<=(e|0)){break c}break a;case 5:g=1;e=B[a+24|0];if((((c|0)>(e|0)?e:c)|0)>0){e=D[D[a>>2]>>2];b=D[a+48>>2]+fi(D[a+40>>2],D[a+44>>2],b,0)|0;b=e+b|0;while(1){if(G[D[a>>2]+4>>2]<=b>>>0){break b}e=D[b>>2];if(e>>>0>127){break b}B[d+f|0]=e;b=b+4|0;f=f+1|0;e=B[a+24|0];if((f|0)<(((c|0)>(e|0)?e:c)|0)){continue}break}}if((c|0)<=(e|0)){break c}break a;case 6:g=1;e=B[a+24|0];if((((c|0)>(e|0)?e:c)|0)>0){e=D[D[a>>2]>>2];b=D[a+48>>2]+fi(D[a+40>>2],D[a+44>>2],b,0)|0;b=e+b|0;while(1){if(G[D[a>>2]+4>>2]<=b>>>0){break b}h=D[b>>2];e=D[b+4>>2]-(h>>>0<128)|0;if((e|0)==-1&h-128>>>0<4294967040|(e|0)!=-1){break b}B[d+f|0]=h;b=b+8|0;f=f+1|0;e=B[a+24|0];if((f|0)<(((c|0)>(e|0)?e:c)|0)){continue}break}}if((c|0)<=(e|0)){break c}break a;case 7:g=1;e=B[a+24|0];if((((c|0)>(e|0)?e:c)|0)>0){e=D[D[a>>2]>>2];b=D[a+48>>2]+fi(D[a+40>>2],D[a+44>>2],b,0)|0;b=e+b|0;while(1){if(G[D[a>>2]+4>>2]<=b>>>0){break b}e=D[b+4>>2];h=D[b>>2];if(!e&h>>>0>127|e){break b}B[d+f|0]=h;b=b+8|0;f=f+1|0;e=B[a+24|0];if((f|0)<(((c|0)>(e|0)?e:c)|0)){continue}break}}if((c|0)<=(e|0)){break c}break a;case 8:g=1;e=B[a+24|0];if((((c|0)>(e|0)?e:c)|0)>0){e=D[D[a>>2]>>2];b=D[a+48>>2]+fi(D[a+40>>2],D[a+44>>2],b,0)|0;b=e+b|0;while(1){if(G[D[a>>2]+4>>2]<=b>>>0){break b}i=H[b>>2];if(i>K(127)|i(e|0)?e:c)|0)){continue}break}}if((c|0)<=(e|0)){break c}break a;case 9:g=1;e=B[a+24|0];if((((c|0)>(e|0)?e:c)|0)>0){e=D[D[a>>2]>>2];b=D[a+48>>2]+fi(D[a+40>>2],D[a+44>>2],b,0)|0;b=e+b|0;while(1){if(G[D[a>>2]+4>>2]<=b>>>0){break b}j=I[b>>3];if(j>127|j<-128|j!=j){break b}l=L(j);if(l==V){break b}h=d+f|0;if(l<2147483648){e=~~j}else{e=-2147483648}B[h|0]=e;b=b+8|0;f=f+1|0;e=B[a+24|0];if((f|0)<(((c|0)>(e|0)?e:c)|0)){continue}break}}if((c|0)<=(e|0)){break c}break a;case 10:break d;default:break c}}g=1;e=B[a+24|0];if((((c|0)>(e|0)?e:c)|0)>0){e=D[D[a>>2]>>2];b=D[a+48>>2]+fi(D[a+40>>2],D[a+44>>2],b,0)|0;b=e+b|0;while(1){if(G[D[a>>2]+4>>2]<=b>>>0){break b}B[d+f|0]=E[b|0];b=b+1|0;f=f+1|0;e=B[a+24|0];if((f|0)<(((c|0)>(e|0)?e:c)|0)){continue}break}}if((c|0)<=(e|0)){break c}qa(d+e|0,0,c-e|0)}return g}return 0}qa(d+e|0,0,c-e|0);return 1}function Cb(a,b,c,d){var e=0,f=0,g=0,h=0,i=K(0),j=0;a:{b:{c:{if(!d){break c}d:{switch(D[a+28>>2]-1|0){case 0:g=B[a+24|0];if((((c|0)>(g|0)?g:c)|0)>0){e=D[D[a>>2]>>2];b=D[a+48>>2]+fi(D[a+40>>2],D[a+44>>2],b,0)|0;b=e+b|0;while(1){if(G[D[a>>2]+4>>2]<=b>>>0){break b}g=0;e=B[b|0];if((e|0)<0){break c}B[d+f|0]=e;b=b+1|0;f=f+1|0;g=B[a+24|0];if((f|0)<(((c|0)>(g|0)?g:c)|0)){continue}break}}if((c|0)<=(g|0)){return 1}qa(d+g|0,0,c-g|0);return 1;case 1:g=1;e=B[a+24|0];if((((c|0)>(e|0)?e:c)|0)>0){e=D[D[a>>2]>>2];b=D[a+48>>2]+fi(D[a+40>>2],D[a+44>>2],b,0)|0;b=e+b|0;while(1){if(G[D[a>>2]+4>>2]<=b>>>0){break b}B[d+f|0]=E[b|0];b=b+1|0;f=f+1|0;e=B[a+24|0];if((f|0)<(((c|0)>(e|0)?e:c)|0)){continue}break}}if((c|0)<=(e|0)){break c}break a;case 2:g=1;e=B[a+24|0];if((((c|0)>(e|0)?e:c)|0)>0){e=D[D[a>>2]>>2];b=D[a+48>>2]+fi(D[a+40>>2],D[a+44>>2],b,0)|0;b=e+b|0;while(1){if(G[D[a>>2]+4>>2]<=b>>>0){break b}e=F[b>>1];if(e>>>0>255){break b}B[d+f|0]=e;b=b+2|0;f=f+1|0;e=B[a+24|0];if((f|0)<(((c|0)>(e|0)?e:c)|0)){continue}break}}if((c|0)<=(e|0)){break c}break a;case 3:g=1;e=B[a+24|0];if((((c|0)>(e|0)?e:c)|0)>0){e=D[D[a>>2]>>2];b=D[a+48>>2]+fi(D[a+40>>2],D[a+44>>2],b,0)|0;b=e+b|0;while(1){if(G[D[a>>2]+4>>2]<=b>>>0){break b}e=F[b>>1];if(e>>>0>255){break b}B[d+f|0]=e;b=b+2|0;f=f+1|0;e=B[a+24|0];if((f|0)<(((c|0)>(e|0)?e:c)|0)){continue}break}}if((c|0)<=(e|0)){break c}break a;case 4:g=1;e=B[a+24|0];if((((c|0)>(e|0)?e:c)|0)>0){e=D[D[a>>2]>>2];b=D[a+48>>2]+fi(D[a+40>>2],D[a+44>>2],b,0)|0;b=e+b|0;while(1){if(G[D[a>>2]+4>>2]<=b>>>0){break b}e=D[b>>2];if(e>>>0>255){break b}B[d+f|0]=e;b=b+4|0;f=f+1|0;e=B[a+24|0];if((f|0)<(((c|0)>(e|0)?e:c)|0)){continue}break}}if((c|0)<=(e|0)){break c}break a;case 5:g=1;e=B[a+24|0];if((((c|0)>(e|0)?e:c)|0)>0){e=D[D[a>>2]>>2];b=D[a+48>>2]+fi(D[a+40>>2],D[a+44>>2],b,0)|0;b=e+b|0;while(1){if(G[D[a>>2]+4>>2]<=b>>>0){break b}e=D[b>>2];if(e>>>0>255){break b}B[d+f|0]=e;b=b+4|0;f=f+1|0;e=B[a+24|0];if((f|0)<(((c|0)>(e|0)?e:c)|0)){continue}break}}if((c|0)<=(e|0)){break c}break a;case 6:g=1;e=B[a+24|0];if((((c|0)>(e|0)?e:c)|0)>0){e=D[D[a>>2]>>2];b=D[a+48>>2]+fi(D[a+40>>2],D[a+44>>2],b,0)|0;b=e+b|0;while(1){if(G[D[a>>2]+4>>2]<=b>>>0){break b}e=D[b+4>>2];h=D[b>>2];if(!e&h>>>0>255|e){break b}B[d+f|0]=h;b=b+8|0;f=f+1|0;e=B[a+24|0];if((f|0)<(((c|0)>(e|0)?e:c)|0)){continue}break}}if((c|0)<=(e|0)){break c}break a;case 7:g=1;e=B[a+24|0];if((((c|0)>(e|0)?e:c)|0)>0){e=D[D[a>>2]>>2];b=D[a+48>>2]+fi(D[a+40>>2],D[a+44>>2],b,0)|0;b=e+b|0;while(1){if(G[D[a>>2]+4>>2]<=b>>>0){break b}e=D[b+4>>2];h=D[b>>2];if(!e&h>>>0>255|e){break b}B[d+f|0]=h;b=b+8|0;f=f+1|0;e=B[a+24|0];if((f|0)<(((c|0)>(e|0)?e:c)|0)){continue}break}}if((c|0)<=(e|0)){break c}break a;case 8:g=1;e=B[a+24|0];if((((c|0)>(e|0)?e:c)|0)>0){e=D[D[a>>2]>>2];b=D[a+48>>2]+fi(D[a+40>>2],D[a+44>>2],b,0)|0;b=e+b|0;while(1){if(G[D[a>>2]+4>>2]<=b>>>0){break b}i=H[b>>2];if(i>K(255)|i=K(0)){e=~~i>>>0}else{e=0}B[h|0]=e;b=b+4|0;f=f+1|0;e=B[a+24|0];if((f|0)<(((c|0)>(e|0)?e:c)|0)){continue}break}}if((c|0)<=(e|0)){break c}break a;case 9:g=1;e=B[a+24|0];if((((c|0)>(e|0)?e:c)|0)>0){e=D[D[a>>2]>>2];b=D[a+48>>2]+fi(D[a+40>>2],D[a+44>>2],b,0)|0;b=e+b|0;while(1){if(G[D[a>>2]+4>>2]<=b>>>0){break b}j=I[b>>3];if(j>255|j<0|(L(j)==V|j!=j)){break b}h=d+f|0;if(j<4294967296&j>=0){e=~~j>>>0}else{e=0}B[h|0]=e;b=b+8|0;f=f+1|0;e=B[a+24|0];if((f|0)<(((c|0)>(e|0)?e:c)|0)){continue}break}}if((c|0)<=(e|0)){break c}break a;case 10:break d;default:break c}}g=1;e=B[a+24|0];if((((c|0)>(e|0)?e:c)|0)>0){e=D[D[a>>2]>>2];b=D[a+48>>2]+fi(D[a+40>>2],D[a+44>>2],b,0)|0;b=e+b|0;while(1){if(G[D[a>>2]+4>>2]<=b>>>0){break b}B[d+f|0]=E[b|0];b=b+1|0;f=f+1|0;e=B[a+24|0];if((f|0)<(((c|0)>(e|0)?e:c)|0)){continue}break}}if((c|0)<=(e|0)){break c}qa(d+e|0,0,c-e|0)}return g}return 0}qa(d+e|0,0,c-e|0);return 1}function gc(a,b,c){var d=0,e=0,f=0,g=0,h=0,i=0;e=$-48|0;$=e;d=F[5053]|F[5054]<<16;f=F[5051]|F[5052]<<16;C[e+38>>1]=f;C[e+40>>1]=f>>>16;C[e+42>>1]=d;C[e+44>>1]=d>>>16;d=D[2525];D[e+32>>2]=D[2524];D[e+36>>2]=d;d=D[2523];D[e+24>>2]=D[2522];D[e+28>>2]=d;d=D[2521];D[e+16>>2]=D[2520];D[e+20>>2]=d;f=D[b+12>>2];d=D[b+20>>2];g=D[b+16>>2];h=g+5|0;d=h>>>0<5?d+1|0:d;a:{b:{if(h>>>0>G[b+8>>2]&(d|0)>=(f|0)|(d|0)>(f|0)){b=Ba(e+16|0);if(b>>>0>=4294967280){break a}c:{d:{if(b>>>0>=11){d=b+16&-16;c=na(d);D[e+8>>2]=d|-2147483648;D[e>>2]=c;D[e+4>>2]=b;break d}B[e+11|0]=b;c=e;if(!b){break c}}oa(c,e+16|0,b)}B[b+c|0]=0;D[a>>2]=-2;a=a+4|0;if(B[e+11|0]>=0){b=D[e+4>>2];D[a>>2]=D[e>>2];D[a+4>>2]=b;D[a+8>>2]=D[e+8>>2];break b}b=a;a=D[e>>2];ta(b,a,D[e+4>>2]);ma(a);break b}d=g+D[b>>2]|0;f=E[d|0]|E[d+1|0]<<8|(E[d+2|0]<<16|E[d+3|0]<<24);B[c|0]=f;B[c+1|0]=f>>>8;B[c+2|0]=f>>>16;B[c+3|0]=f>>>24;B[c+4|0]=E[d+4|0];d=D[b+20>>2];f=D[b+16>>2]+5|0;d=f>>>0<5?d+1|0:d;D[b+16>>2]=f;D[b+20>>2]=d;if(ua(c,1250,5)){b=na(32);B[b+16|0]=E[1494];c=E[1490]|E[1491]<<8|(E[1492]<<16|E[1493]<<24);d=E[1486]|E[1487]<<8|(E[1488]<<16|E[1489]<<24);B[b+8|0]=d;B[b+9|0]=d>>>8;B[b+10|0]=d>>>16;B[b+11|0]=d>>>24;B[b+12|0]=c;B[b+13|0]=c>>>8;B[b+14|0]=c>>>16;B[b+15|0]=c>>>24;c=E[1482]|E[1483]<<8|(E[1484]<<16|E[1485]<<24);d=E[1478]|E[1479]<<8|(E[1480]<<16|E[1481]<<24);B[b|0]=d;B[b+1|0]=d>>>8;B[b+2|0]=d>>>16;B[b+3|0]=d>>>24;B[b+4|0]=c;B[b+5|0]=c>>>8;B[b+6|0]=c>>>16;B[b+7|0]=c>>>24;B[b+17|0]=0;D[a>>2]=-1;ta(a+4|0,b,17);ma(b);break b}g=D[b+12>>2];if((g|0)<=(d|0)&G[b+8>>2]<=f>>>0|(d|0)>(g|0)){b=Ba(e+16|0);if(b>>>0>=4294967280){break a}e:{f:{if(b>>>0>=11){d=b+16&-16;c=na(d);D[e+8>>2]=d|-2147483648;D[e>>2]=c;D[e+4>>2]=b;break f}B[e+11|0]=b;c=e;if(!b){break e}}oa(c,e+16|0,b)}B[b+c|0]=0;D[a>>2]=-2;a=a+4|0;if(B[e+11|0]>=0){b=D[e+4>>2];D[a>>2]=D[e>>2];D[a+4>>2]=b;D[a+8>>2]=D[e+8>>2];break b}b=a;a=D[e>>2];ta(b,a,D[e+4>>2]);ma(a);break b}B[c+5|0]=E[f+D[b>>2]|0];d=D[b+20>>2];f=D[b+16>>2]+1|0;d=f?d:d+1|0;D[b+16>>2]=f;D[b+20>>2]=d;g=D[b+12>>2];if((g|0)<=(d|0)&G[b+8>>2]<=f>>>0|(d|0)>(g|0)){b=Ba(e+16|0);if(b>>>0>=4294967280){break a}g:{h:{if(b>>>0>=11){d=b+16&-16;c=na(d);D[e+8>>2]=d|-2147483648;D[e>>2]=c;D[e+4>>2]=b;break h}B[e+11|0]=b;c=e;if(!b){break g}}oa(c,e+16|0,b)}B[b+c|0]=0;D[a>>2]=-2;a=a+4|0;if(B[e+11|0]>=0){b=D[e+4>>2];D[a>>2]=D[e>>2];D[a+4>>2]=b;D[a+8>>2]=D[e+8>>2];break b}b=a;a=D[e>>2];ta(b,a,D[e+4>>2]);ma(a);break b}B[c+6|0]=E[f+D[b>>2]|0];d=D[b+20>>2];f=D[b+16>>2]+1|0;d=f?d:d+1|0;D[b+16>>2]=f;D[b+20>>2]=d;g=D[b+12>>2];if((g|0)<=(d|0)&G[b+8>>2]<=f>>>0|(d|0)>(g|0)){b=Ba(e+16|0);if(b>>>0>=4294967280){break a}i:{j:{if(b>>>0>=11){d=b+16&-16;c=na(d);D[e+8>>2]=d|-2147483648;D[e>>2]=c;D[e+4>>2]=b;break j}B[e+11|0]=b;c=e;if(!b){break i}}oa(c,e+16|0,b)}B[b+c|0]=0;D[a>>2]=-2;a=a+4|0;if(B[e+11|0]>=0){b=D[e+4>>2];D[a>>2]=D[e>>2];D[a+4>>2]=b;D[a+8>>2]=D[e+8>>2];break b}b=a;a=D[e>>2];ta(b,a,D[e+4>>2]);ma(a);break b}B[c+7|0]=E[f+D[b>>2]|0];d=D[b+20>>2];f=D[b+16>>2]+1|0;d=f?d:d+1|0;D[b+16>>2]=f;D[b+20>>2]=d;g=D[b+12>>2];if((g|0)<=(d|0)&G[b+8>>2]<=f>>>0|(d|0)>(g|0)){b=Fb(e,e+16|0);D[a>>2]=-2;a=a+4|0;if(B[b+11|0]>=0){c=D[b+4>>2];D[a>>2]=D[b>>2];D[a+4>>2]=c;D[a+8>>2]=D[b+8>>2];break b}ta(a,D[b>>2],D[b+4>>2]);if(B[b+11|0]>=0){break b}ma(D[b>>2]);break b}B[c+8|0]=E[f+D[b>>2]|0];d=D[b+20>>2];f=d;i=D[b+16>>2];g=i+1|0;d=g?d:d+1|0;D[b+16>>2]=g;D[b+20>>2]=d;h=D[b+12>>2];d=f;f=i+3|0;d=f>>>0<3?d+1|0:d;if(f>>>0>G[b+8>>2]&(d|0)>=(h|0)|(d|0)>(h|0)){b=Fb(e,e+16|0);D[a>>2]=-2;a=a+4|0;if(B[b+11|0]>=0){c=D[b+4>>2];D[a>>2]=D[b>>2];D[a+4>>2]=c;D[a+8>>2]=D[b+8>>2];break b}ta(a,D[b>>2],D[b+4>>2]);if(B[b+11|0]>=0){break b}ma(D[b>>2]);break b}f=c;c=g+D[b>>2]|0;C[f+10>>1]=E[c|0]|E[c+1|0]<<8;d=D[b+20>>2];c=D[b+16>>2]+2|0;d=c>>>0<2?d+1|0:d;D[b+16>>2]=c;D[b+20>>2]=d;D[a+8>>2]=0;D[a+12>>2]=0;D[a>>2]=0;D[a+4>>2]=0}$=e+48|0;return}Ca();T()}function Fg(a){a=a|0;var b=0,c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0;g=$-32|0;$=g;a:{if(!jb(1,g+28|0,D[a+32>>2])){break a}if(!jb(1,g+24|0,D[a+32>>2])){break a}m=D[g+28>>2];if(m>>>0>1431655765){break a}b=D[a+32>>2];j=D[b+8>>2];f=j;c=D[b+16>>2];h=f-c|0;e=D[b+12>>2];o=c>>>0>f>>>0;f=D[b+20>>2];n=gi(h,e-(o+f|0)|0,3,0);if(!aa&m>>>0>n>>>0){break a}n=D[g+24>>2];h=fi(m,0,3,0);if(!aa&h>>>0>>0|((e|0)<=(f|0)&c>>>0>=j>>>0|(e|0)<(f|0))){break a}e=E[c+D[b>>2]|0];c=c+1|0;f=c?f:f+1|0;D[b+16>>2]=c;D[b+20>>2]=f;b:{c:{if(!e){f=0;c=$-32|0;$=c;D[c+24>>2]=0;D[c+16>>2]=0;D[c+20>>2]=0;d:{e:{b=J(m,3);if(b){if(b>>>0>=1073741824){break e}e=J(m,12);f=na(e);D[c+16>>2]=f;qa(f,0,e)}b=jc(b,1,D[a+32>>2],f);f:{g:{if(!(!b|!m)){j=0;e=0;while(1){o=d;h=(e<<2)+f|0;d=D[h>>2];i=d>>>1|0;d=o+(d&1?0-i|0:i)|0;D[c>>2]=d;i=D[h+4>>2];k=i>>>1|0;d=d+(i&1?0-k|0:k)|0;D[c+4>>2]=d;h=D[h+8>>2];i=h>>>1|0;d=d+(h&1?0-i|0:i)|0;D[c+8>>2]=d;ob(D[a+44>>2]+96|0,c);e=e+3|0;j=j+1|0;if((j|0)!=(m|0)){continue}break}break g}if(!f){break f}}ma(f)}$=c+32|0;break d}pa();T()}if(b){break c}break a}if(n>>>0<=255){if(!m){break c}while(1){h:{D[g+16>>2]=0;D[g+8>>2]=0;D[g+12>>2]=0;c=D[a+32>>2];b=c;h=D[b+8>>2];e=D[b+12>>2];f=D[b+20>>2];j=D[b+16>>2];if((e|0)<=(f|0)&h>>>0<=j>>>0|(e|0)<(f|0)){break h}d=D[c>>2];k=E[d+j|0];b=f;i=j+1|0;b=i?b:b+1|0;D[c+16>>2]=i;D[c+20>>2]=b;D[g+8>>2]=k;if((b|0)>=(e|0)&i>>>0>=h>>>0|(b|0)>(e|0)){break h}k=E[d+i|0];b=f;i=j+2|0;b=i>>>0<2?b+1|0:b;D[c+16>>2]=i;D[c+20>>2]=b;D[g+12>>2]=k;if((b|0)>=(e|0)&i>>>0>=h>>>0|(b|0)>(e|0)){break h}b=E[d+i|0];e=j+3|0;f=e>>>0<3?f+1|0:f;D[c+16>>2]=e;D[c+20>>2]=f;D[g+16>>2]=b;ob(D[a+44>>2]+96|0,g+8|0);l=l+1|0;if((m|0)!=(l|0)){continue}break c}break}l=0;break a}if(n>>>0<=65535){if(!m){break c}while(1){i:{D[g+16>>2]=0;D[g+8>>2]=0;D[g+12>>2]=0;e=D[a+32>>2];c=D[e+12>>2];j=D[e+8>>2];b=D[e+20>>2];f=b;h=D[e+16>>2];d=h+2|0;b=d>>>0<2?b+1|0:b;if(d>>>0>j>>>0&(b|0)>=(c|0)|(b|0)>(c|0)){break i}i=D[e>>2];k=i+h|0;k=E[k|0]|E[k+1|0]<<8;D[e+16>>2]=d;D[e+20>>2]=b;D[g+8>>2]=k;b=f;k=h+4|0;b=k>>>0<4?b+1|0:b;if(k>>>0>j>>>0&(b|0)>=(c|0)|(b|0)>(c|0)){break i}d=d+i|0;d=E[d|0]|E[d+1|0]<<8;D[e+16>>2]=k;D[e+20>>2]=b;D[g+12>>2]=d;b=f;f=h+6|0;b=f>>>0<6?b+1|0:b;if(f>>>0>j>>>0&(b|0)>=(c|0)|(b|0)>(c|0)){break i}c=i+k|0;c=E[c|0]|E[c+1|0]<<8;D[e+16>>2]=f;D[e+20>>2]=b;D[g+16>>2]=c;ob(D[a+44>>2]+96|0,g+8|0);l=l+1|0;if((m|0)!=(l|0)){continue}break c}break}l=0;break a}j:{if(n>>>0>2097151){break j}b=F[a+36>>1];if(((b<<8|b>>>8)&65535)>>>0<514){break j}if(!m){break c}while(1){k:{D[g+16>>2]=0;D[g+8>>2]=0;D[g+12>>2]=0;if(!jb(1,g+4|0,D[a+32>>2])){break k}D[g+8>>2]=D[g+4>>2];if(!jb(1,g+4|0,D[a+32>>2])){break k}D[g+12>>2]=D[g+4>>2];if(!jb(1,g+4|0,D[a+32>>2])){break k}D[g+16>>2]=D[g+4>>2];ob(D[a+44>>2]+96|0,g+8|0);l=l+1|0;if((m|0)!=(l|0)){continue}break c}break}l=0;break a}if(!m){break c}while(1){D[g+16>>2]=0;D[g+8>>2]=0;D[g+12>>2]=0;e=D[a+32>>2];c=D[e+12>>2];j=D[e+8>>2];b=D[e+20>>2];f=b;h=D[e+16>>2];d=h+4|0;b=d>>>0<4?b+1|0:b;i=d;if(d>>>0>j>>>0&(b|0)>=(c|0)|(b|0)>(c|0)){break b}k=D[e>>2];d=k+h|0;d=E[d|0]|E[d+1|0]<<8|(E[d+2|0]<<16|E[d+3|0]<<24);D[e+16>>2]=i;D[e+20>>2]=b;D[g+8>>2]=d;b=f;d=h+8|0;b=d>>>0<8?b+1|0:b;o=d;if(d>>>0>j>>>0&(b|0)>=(c|0)|(b|0)>(c|0)){break b}d=i+k|0;d=E[d|0]|E[d+1|0]<<8|(E[d+2|0]<<16|E[d+3|0]<<24);D[e+16>>2]=o;D[e+20>>2]=b;D[g+12>>2]=d;b=f;f=h+12|0;b=f>>>0<12?b+1|0:b;if(f>>>0>j>>>0&(b|0)>=(c|0)|(b|0)>(c|0)){break b}c=k+o|0;c=E[c|0]|E[c+1|0]<<8|(E[c+2|0]<<16|E[c+3|0]<<24);D[e+16>>2]=f;D[e+20>>2]=b;D[g+16>>2]=c;ob(D[a+44>>2]+96|0,g+8|0);l=l+1|0;if((m|0)!=(l|0)){continue}break}}D[D[a+4>>2]+80>>2]=n;l=1;break a}l=0}$=g+32|0;return l|0}function Id(a,b,c){var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0;g=$+-64|0;$=g;D[g+56>>2]=0;D[g+48>>2]=0;D[g+52>>2]=0;D[g+40>>2]=0;D[g+44>>2]=0;D[g+32>>2]=0;D[g+36>>2]=0;D[g+24>>2]=0;D[g+28>>2]=0;D[g+16>>2]=0;D[g+20>>2]=0;D[g+8>>2]=0;D[g+12>>2]=0;f=g+8|0;a:{b:{if(!F[b+38>>1]){break b}if(!Wa(1,f+12|0,b)){break b}d=D[b+8>>2];e=D[b+16>>2];i=d-e|0;j=D[f+12>>2];d=D[b+12>>2]-(D[b+20>>2]+(d>>>0>>0)|0)|0;if(i>>>0>>6>>>0&(d|0)<=0|(d|0)<0){break b}e=D[f>>2];d=D[f+4>>2]-e>>2;c:{if(d>>>0>>0){ra(f,j-d|0);j=D[f+12>>2];break c}if(d>>>0<=j>>>0){break c}D[f+4>>2]=e+(j<<2)}h=1;if(!j){break a}k=D[b+16>>2];d=D[b+20>>2];r=D[f>>2];s=D[b+8>>2];p=D[b+12>>2];i=0;while(1){h=0;if((d|0)>=(p|0)&k>>>0>=s>>>0|(d|0)>(p|0)){break a}h=D[b>>2];n=E[h+k|0];e=k+1|0;d=e?d:d+1|0;k=e;D[b+16>>2]=e;D[b+20>>2]=d;e=n>>>2|0;l=0;d:{e:{f:{g:{t=n&3;switch(t|0){case 3:break g;case 0:break e;default:break f}}e=e+i|0;h=0;if(e>>>0>=j>>>0){break a}qa(r+(i<<2)|0,0,(n&252)+4|0);i=e;break d}while(1){if((d|0)>=(p|0)&k>>>0>=s>>>0|(d|0)>(p|0)){break b}j=E[k+h|0];k=k+1|0;d=k?d:d+1|0;D[b+16>>2]=k;D[b+20>>2]=d;e=j<<(l<<3|6)|e;l=l+1|0;if((t|0)!=(l|0)){continue}break}}D[r+(i<<2)>>2]=e}i=i+1|0;j=D[f+12>>2];if(i>>>0>>0){continue}break}d=f+16|0;p=D[f>>2];i=D[f+16>>2];e=D[f+20>>2]-i|0;h:{if(e>>>0<=4194303){ra(d,1048576-(e>>>2|0)|0);break h}if((e|0)==4194304){break h}D[f+20>>2]=i+4194304}e=f+28|0;i=D[e>>2];h=D[f+32>>2]-i>>3;i:{if(h>>>0>>0){db(e,j-h|0);i=D[e>>2];break i}if(j>>>0>>0){D[f+32>>2]=(j<<3)+i}if(!j){break b}}k=D[d>>2];d=0;h=0;while(1){f=p+(d<<2)|0;l=D[f>>2];n=(d<<3)+i|0;e=h;D[n+4>>2]=e;D[n>>2]=l;f=D[f>>2];h=f+e|0;if(h>>>0>1048576){break b}j:{if(e>>>0>=h>>>0){break j}l=0;n=f&7;if(n){while(1){D[k+(e<<2)>>2]=d;e=e+1|0;l=l+1|0;if((n|0)!=(l|0)){continue}break}}if(f-1>>>0<=6){break j}while(1){f=k+(e<<2)|0;D[f>>2]=d;D[f+28>>2]=d;D[f+24>>2]=d;D[f+20>>2]=d;D[f+16>>2]=d;D[f+12>>2]=d;D[f+8>>2]=d;D[f+4>>2]=d;e=e+8|0;if((h|0)!=(e|0)){continue}break}}d=d+1|0;if((j|0)!=(d|0)){continue}break}m=(h|0)==1048576}h=m}k:{if(!h|(D[g+20>>2]?0:a)){break k}h=0;m=$-16|0;$=m;l:{if(!Va(1,m+8|0,b)){break l}d=D[b+8>>2];e=D[b+16>>2];f=d-e|0;j=D[m+12>>2];k=D[b+20>>2];d=D[b+12>>2]-(k+(d>>>0>>0)|0)|0;i=D[m+8>>2];if((j|0)==(d|0)&f>>>0>>0|d>>>0>>0){break l}d=j+k|0;f=e+i|0;d=f>>>0>>0?d+1|0:d;D[b+16>>2]=f;D[b+20>>2]=d;d=i;if((d|0)<=0){break l}b=e+D[b>>2]|0;D[g+48>>2]=b;e=d-1|0;i=e+b|0;f=E[i|0];m:{if(f>>>0<=63){D[g+52>>2]=e;b=E[i|0]&63;break m}n:{switch((f>>>6|0)-1|0){case 0:if(d>>>0<2){break l}D[g+52>>2]=d-2;b=(b+d|0)-2|0;b=E[b+1|0]<<8&16128|E[b|0];break m;case 1:if(d>>>0<3){break l}D[g+52>>2]=d-3;b=(b+d|0)-3|0;b=E[b+1|0]<<8|E[b+2|0]<<16&4128768|E[b|0];break m;default:break n}}D[g+52>>2]=d-4;b=(b+d|0)-4|0;b=E[b+2|0]<<16|E[b+3|0]<<24&1056964608|E[b+1|0]<<8|E[b|0]}D[g+56>>2]=b+4194304;h=b>>>0<1069547520}$=m+16|0;if(!h){break k}if(!a){o=1;break k}b=D[g+56>>2];d=D[g+36>>2];e=D[g+48>>2];i=D[g+24>>2];while(1){o:{if(b>>>0>4194303){break o}o=D[g+52>>2];while(1){if((o|0)<=0){break o}o=o-1|0;D[g+52>>2]=o;b=E[e+o|0]|b<<8;D[g+56>>2]=b;if(b>>>0<4194304){continue}break}}h=b&1048575;m=D[i+(h<<2)>>2];f=d+(m<<3)|0;b=(J(D[f>>2],b>>>20|0)+h|0)-D[f+4>>2]|0;D[g+56>>2]=b;D[(q<<2)+c>>2]=m;o=1;q=q+1|0;if((q|0)!=(a|0)){continue}break}}a=D[g+36>>2];if(a){D[g+40>>2]=a;ma(a)}a=D[g+24>>2];if(a){D[g+28>>2]=a;ma(a)}a=D[g+8>>2];if(a){D[g+12>>2]=a;ma(a)}$=g- -64|0;return o}function pe(a){a=a|0;var b=0,c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0;f=$-16|0;$=f;n=ba[D[D[a>>2]+24>>2]](a)|0;a:{if((n|0)<=0){break a}r=a+48|0;g=1;while(1){b:{c:{if(!D[(ba[D[D[a>>2]+28>>2]](a)|0)+40>>2]){break c}p=h<<2;b=D[p+D[a+36>>2]>>2];d=D[b+8>>2];e=eb(b);if(!e){break c}i=D[(ba[D[D[a>>2]+28>>2]](a)|0)+40>>2];D[f+12>>2]=D[d+56>>2];b=na(32);D[f>>2]=b;D[f+4>>2]=24;D[f+8>>2]=-2147483616;B[b+24|0]=0;d=E[1196]|E[1197]<<8|(E[1198]<<16|E[1199]<<24);c=E[1192]|E[1193]<<8|(E[1194]<<16|E[1195]<<24);B[b+16|0]=c;B[b+17|0]=c>>>8;B[b+18|0]=c>>>16;B[b+19|0]=c>>>24;B[b+20|0]=d;B[b+21|0]=d>>>8;B[b+22|0]=d>>>16;B[b+23|0]=d>>>24;d=E[1188]|E[1189]<<8|(E[1190]<<16|E[1191]<<24);c=E[1184]|E[1185]<<8|(E[1186]<<16|E[1187]<<24);B[b+8|0]=c;B[b+9|0]=c>>>8;B[b+10|0]=c>>>16;B[b+11|0]=c>>>24;B[b+12|0]=d;B[b+13|0]=d>>>8;B[b+14|0]=d>>>16;B[b+15|0]=d>>>24;d=E[1180]|E[1181]<<8|(E[1182]<<16|E[1183]<<24);c=E[1176]|E[1177]<<8|(E[1178]<<16|E[1179]<<24);B[b|0]=c;B[b+1|0]=c>>>8;B[b+2|0]=c>>>16;B[b+3|0]=c>>>24;B[b+4|0]=d;B[b+5|0]=d>>>8;B[b+6|0]=d>>>16;B[b+7|0]=d>>>24;d=i+16|0;c=D[d>>2];d:{e:{if(!c){break e}j=D[f+12>>2];b=d;while(1){k=(j|0)>D[c+16>>2];b=k?b:c;c=D[(k?c+4|0:c)>>2];if(c){continue}break}if((b|0)==(d|0)|(j|0)>2]){break e}c=D[b+24>>2];if(!c){break e}j=b+20|0;b=E[f+11|0];d=b<<24>>24<0;k=d?D[f>>2]:f;b=d?D[f+4>>2]:b;while(1){d=E[c+27|0];l=d<<24>>24<0;d=l?D[c+20>>2]:d;q=d>>>0>>0;f:{g:{h:{i:{j:{k:{o=q?d:b;if(o){m=c+16|0;l=l?D[m>>2]:m;m=ua(k,l,o);if(m){break k}if(b>>>0>=d>>>0){break j}break f}if(b>>>0>=d>>>0){break i}break f}if((m|0)<0){break f}}d=ua(l,k,o);if(d){break h}}if(q){break g}b=dc(j,f);break d}if((d|0)<0){break g}b=dc(j,f);break d}c=c+4|0}c=D[c>>2];if(c){continue}break}}b=dc(i,f)}if(B[f+11|0]<0){ma(D[f>>2])}if(!b){break c}c=D[D[p+D[a+36>>2]>>2]+8>>2];if(!D[c+64>>2]){b=na(32);D[b+16>>2]=0;D[b+20>>2]=0;D[b+8>>2]=0;D[b>>2]=0;D[b+4>>2]=0;D[b+24>>2]=0;D[b+28>>2]=0;d=D[c+64>>2];D[c+64>>2]=b;if(d){b=D[d>>2];if(b){D[d+4>>2]=b;ma(b)}ma(d);b=D[c+64>>2]}D[c>>2]=b;d=D[b+20>>2];D[c+8>>2]=D[b+16>>2];D[c+12>>2]=d;d=D[b+24>>2];b=D[b+28>>2];D[c+48>>2]=0;D[c+52>>2]=0;D[c+40>>2]=0;D[c+44>>2]=0;D[c+16>>2]=d;D[c+20>>2]=b}l:{B[c+24|0]=E[e+24|0];D[c+28>>2]=D[e+28>>2];B[c+32|0]=E[e+32|0];b=D[e+44>>2];D[c+40>>2]=D[e+40>>2];D[c+44>>2]=b;b=D[e+52>>2];D[c+48>>2]=D[e+48>>2];D[c+52>>2]=b;D[c+56>>2]=D[e+56>>2];b=D[e+12>>2];D[c+8>>2]=D[e+8>>2];D[c+12>>2]=b;b=D[e+20>>2];D[c+16>>2]=D[e+16>>2];D[c+20>>2]=b;D[c+60>>2]=D[e+60>>2];d=D[e>>2];m:{if(!d){D[c>>2]=0;b=1;break m}g=D[c>>2];b=0;if(!g){break m}b=D[d>>2];kd(g,b,D[d+4>>2]-b|0,0);b=1}if(!b){break l}B[c+84|0]=E[e+84|0];D[c+80>>2]=D[e+80>>2];if((c|0)!=(e|0)){ib(c+68|0,D[e+68>>2],D[e+72>>2])}n:{e=D[e+88>>2];o:{if(e){d=na(40);b=D[e>>2];D[d+16>>2]=0;D[d+8>>2]=0;D[d+12>>2]=0;D[d>>2]=b;b=D[e+12>>2];g=D[e+8>>2];if((b|0)!=(g|0)){g=b-g|0;if((g|0)<0){break n}b=na(g);D[d+8>>2]=b;D[d+12>>2]=b;D[d+16>>2]=b+g;i=D[e+8>>2];g=D[e+12>>2]-i|0;if((g|0)>0){b=oa(b,i,g)+g|0}D[d+12>>2]=b}b=D[e+36>>2];D[d+32>>2]=D[e+32>>2];D[d+36>>2]=b;b=D[e+28>>2];D[d+24>>2]=D[e+24>>2];D[d+28>>2]=b;b=D[c+88>>2];D[c+88>>2]=d;if(b){break o}break l}b=D[c+88>>2];D[c+88>>2]=0;if(!b){break l}}d=D[b+8>>2];if(d){D[b+12>>2]=d;ma(d)}ma(b);break l}pa();T()}break b}b=D[D[a+36>>2]+(h<<2)>>2];if(!(ba[D[D[b>>2]+24>>2]](b,r)|0)){break a}}h=h+1|0;g=(n|0)>(h|0);if((h|0)!=(n|0)){continue}break}}$=f+16|0;return(g^-1)&1}function gh(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=K(0),f=0,g=0,h=0,i=0,j=0,k=0,l=K(0),m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0;if(D[c>>2]==D[c+4>>2]){h=D[d+80>>2];u=$-16|0;$=u;q=D[a+4>>2];j=D[d+48>>2];d=D[D[d>>2]>>2];i=B[b+24|0];c=u+8|0;D[c>>2]=1065353216;H[c>>2]=K(-1<>2];s=na((i|0)!=(i&1073741823)?-1:i<<2);a:{if(!h|(i|0)<=0){break a}t=d+j|0;l=H[c>>2];k=D[a+8>>2];w=D[b>>2];c=D[b+48>>2];m=D[b+44>>2];v=D[b+40>>2];if(!E[b+84|0]){r=D[b+68>>2];q=i&-2;j=i&1;a=0;while(1){d=D[w>>2];b=fi(v,m,D[r+(o<<2)>>2],0)+c|0;p=oa(s,d+b|0,v);b=0;n=0;if((i|0)!=1){while(1){d=t+(a<<2)|0;g=b<<2;e=K(P(K(K(l*K(H[g+p>>2]-H[k+g>>2]))+K(.5))));b:{if(K(L(e))>2]=f;f=g|4;e=K(P(K(K(l*K(H[f+p>>2]-H[f+k>>2]))+K(.5))));c:{if(K(L(e))>2]=f;b=b+2|0;a=a+2|0;n=n+2|0;if((q|0)!=(n|0)){continue}break}}if(j){d=t+(a<<2)|0;b=b<<2;e=K(P(K(K(l*K(H[b+p>>2]-H[b+k>>2]))+K(.5))));d:{if(K(L(e))>2]=b;a=a+1|0}o=o+1|0;if((h|0)!=(o|0)){continue}break}break a}r=i&-2;q=i&1;a=0;while(1){d=D[w>>2];b=fi(v,m,p,f)+c|0;o=oa(s,d+b|0,v);b=0;n=0;if((i|0)!=1){while(1){d=t+(a<<2)|0;g=b<<2;e=K(P(K(K(l*K(H[g+o>>2]-H[k+g>>2]))+K(.5))));e:{if(K(L(e))>2]=j;j=g|4;e=K(P(K(K(l*K(H[j+o>>2]-H[k+j>>2]))+K(.5))));f:{if(K(L(e))>2]=g;b=b+2|0;a=a+2|0;n=n+2|0;if((r|0)!=(n|0)){continue}break}}if(q){d=t+(a<<2)|0;b=b<<2;e=K(P(K(K(l*K(H[b+o>>2]-H[b+k>>2]))+K(.5))));g:{if(K(L(e))>2]=b;a=a+1|0}b=p+1|0;f=b?f:f+1|0;p=b;if((h|0)!=(b|0)|f){continue}break}}ma(s);$=u+16|0;return 1}u=$-16|0;$=u;f=D[a+4>>2];j=D[d+48>>2];h=D[D[d>>2]>>2];m=B[b+24|0];d=u+8|0;D[d>>2]=1065353216;H[d>>2]=K(-1<>2];t=na((m|0)!=(m&1073741823)?-1:m<<2);f=D[c+4>>2];s=D[c>>2];h:{if((f|0)==(s|0)|(m|0)<=0){break h}n=j+h|0;c=f-s>>2;w=c>>>0>1?c:1;l=H[d>>2];i=D[a+8>>2];x=D[b>>2];d=D[b+48>>2];v=D[b+44>>2];p=D[b+40>>2];if(E[b+84|0]){q=m&-2;j=m&1;a=0;c=0;while(1){f=D[x>>2];b=fi(p,v,D[s+(c<<2)>>2],0)+d|0;g=oa(t,f+b|0,p);b=0;k=0;if((m|0)!=1){while(1){f=n+(a<<2)|0;r=b<<2;e=K(P(K(K(l*K(H[r+g>>2]-H[i+r>>2]))+K(.5))));i:{if(K(L(e))>2]=h;h=r|4;e=K(P(K(K(l*K(H[h+g>>2]-H[i+h>>2]))+K(.5))));j:{if(K(L(e))>2]=h;b=b+2|0;a=a+2|0;k=k+2|0;if((q|0)!=(k|0)){continue}break}}if(j){f=n+(a<<2)|0;b=b<<2;e=K(P(K(K(l*K(H[b+g>>2]-H[b+i>>2]))+K(.5))));k:{if(K(L(e))>2]=b;a=a+1|0}c=c+1|0;if((w|0)!=(c|0)){continue}break}break h}r=D[b+68>>2];q=m&-2;j=m&1;a=0;c=0;while(1){f=D[x>>2];b=fi(p,v,D[r+(D[s+(c<<2)>>2]<<2)>>2],0)+d|0;o=oa(t,f+b|0,p);b=0;k=0;if((m|0)!=1){while(1){f=n+(a<<2)|0;g=b<<2;e=K(P(K(K(l*K(H[g+o>>2]-H[i+g>>2]))+K(.5))));l:{if(K(L(e))>2]=h;h=g|4;e=K(P(K(K(l*K(H[h+o>>2]-H[i+h>>2]))+K(.5))));m:{if(K(L(e))>2]=g;b=b+2|0;a=a+2|0;k=k+2|0;if((q|0)!=(k|0)){continue}break}}if(j){f=n+(a<<2)|0;b=b<<2;e=K(P(K(K(l*K(H[b+o>>2]-H[b+i>>2]))+K(.5))));n:{if(K(L(e))>2]=b;a=a+1|0}c=c+1|0;if((w|0)!=(c|0)){continue}break}}ma(t);$=u+16|0;return 1} -function zd(a,b){var c=0,d=0,e=0,f=0,g=0,h=0;d=D[a+4>>2];c=D[a>>2];e=(d-c|0)/144|0;if(e>>>0>>0){c=a;e=b-e|0;f=D[a+8>>2];d=D[a+4>>2];a:{if(e>>>0<=(f-d|0)/144>>>0){b:{if(!e){break b}a=d;f=e&7;if(f){b=0;while(1){ya(a);a=a+144|0;b=b+1|0;if((f|0)!=(b|0)){continue}break}}d=J(e,144)+d|0;if((e-1&268435455)>>>0<7){break b}while(1){ya(a);ya(a+144|0);ya(a+288|0);ya(a+432|0);ya(a+576|0);ya(a+720|0);ya(a+864|0);ya(a+1008|0);a=a+1152|0;if((d|0)!=(a|0)){continue}break}}D[c+4>>2]=d;break a}c:{d:{e:{b=D[c>>2];g=(d-b|0)/144|0;a=g+e|0;if(a>>>0<29826162){d=0;b=(f-b|0)/144|0;f=b<<1;f=b>>>0<14913080?a>>>0>>0?f:a:29826161;if(f){if(f>>>0>=29826162){break e}h=na(J(f,144))}b=J(g,144)+h|0;a=b;g=e&7;if(g){a=b;while(1){ya(a);a=a+144|0;d=d+1|0;if((g|0)!=(d|0)){continue}break}}g=J(e,144)+b|0;if((e-1&268435455)>>>0>=7){while(1){ya(a);ya(a+144|0);ya(a+288|0);ya(a+432|0);ya(a+576|0);ya(a+720|0);ya(a+864|0);ya(a+1008|0);a=a+1152|0;if((g|0)!=(a|0)){continue}break}}e=J(f,144)+h|0;a=D[c+4>>2];d=D[c>>2];if((a|0)==(d|0)){break d}while(1){b=b-144|0;a=a-144|0;D[b>>2]=D[a>>2];D[b+4>>2]=D[a+4>>2];D[b+8>>2]=D[a+8>>2];D[b+12>>2]=D[a+12>>2];D[a+12>>2]=0;D[a+4>>2]=0;D[a+8>>2]=0;D[b+16>>2]=D[a+16>>2];D[b+20>>2]=D[a+20>>2];D[b+24>>2]=D[a+24>>2];D[a+24>>2]=0;D[a+16>>2]=0;D[a+20>>2]=0;f=E[a+28|0];D[b+40>>2]=0;D[b+32>>2]=0;D[b+36>>2]=0;B[b+28|0]=f;D[b+32>>2]=D[a+32>>2];D[b+36>>2]=D[a+36>>2];D[b+40>>2]=D[a+40>>2];D[a+40>>2]=0;D[a+32>>2]=0;D[a+36>>2]=0;D[b+52>>2]=0;D[b+44>>2]=0;D[b+48>>2]=0;D[b+44>>2]=D[a+44>>2];D[b+48>>2]=D[a+48>>2];D[b+52>>2]=D[a+52>>2];D[a+52>>2]=0;D[a+44>>2]=0;D[a+48>>2]=0;f=b- -64|0;D[f>>2]=0;D[b+56>>2]=0;D[b+60>>2]=0;D[b+56>>2]=D[a+56>>2];D[b+60>>2]=D[a+60>>2];h=f;f=a- -64|0;D[h>>2]=D[f>>2];D[f>>2]=0;D[a+56>>2]=0;D[a+60>>2]=0;D[b+68>>2]=D[a+68>>2];f=D[a+72>>2];D[b+84>>2]=0;D[b+76>>2]=0;D[b+80>>2]=0;D[b+72>>2]=f;D[b+76>>2]=D[a+76>>2];D[b+80>>2]=D[a+80>>2];D[b+84>>2]=D[a+84>>2];D[a+84>>2]=0;D[a+76>>2]=0;D[a+80>>2]=0;D[b+96>>2]=0;D[b+88>>2]=0;D[b+92>>2]=0;D[b+88>>2]=D[a+88>>2];D[b+92>>2]=D[a+92>>2];D[b+96>>2]=D[a+96>>2];D[a+96>>2]=0;D[a+88>>2]=0;D[a+92>>2]=0;f=E[a+100|0];D[b+112>>2]=0;D[b+104>>2]=0;D[b+108>>2]=0;B[b+100|0]=f;D[b+104>>2]=D[a+104>>2];D[b+108>>2]=D[a+108>>2];D[b+112>>2]=D[a+112>>2];D[a+112>>2]=0;D[a+104>>2]=0;D[a+108>>2]=0;D[b+124>>2]=0;D[b+116>>2]=0;D[b+120>>2]=0;D[b+116>>2]=D[a+116>>2];D[b+120>>2]=D[a+120>>2];D[b+124>>2]=D[a+124>>2];D[a+124>>2]=0;D[a+116>>2]=0;D[a+120>>2]=0;f=D[a+128>>2];D[b+140>>2]=0;D[b+132>>2]=0;D[b+136>>2]=0;D[b+128>>2]=f;D[b+132>>2]=D[a+132>>2];D[b+136>>2]=D[a+136>>2];D[b+140>>2]=D[a+140>>2];D[a+140>>2]=0;D[a+132>>2]=0;D[a+136>>2]=0;if((a|0)!=(d|0)){continue}break}D[c+8>>2]=e;a=D[c+4>>2];D[c+4>>2]=g;d=D[c>>2];D[c>>2]=b;if((a|0)==(d|0)){break c}while(1){b=a-144|0;c=D[b+132>>2];if(c){D[a-8>>2]=c;ma(c)}c=D[a-28>>2];if(c){D[a-24>>2]=c;ma(c)}c=D[a-40>>2];if(c){D[a-36>>2]=c;ma(c)}Gb(a-140|0);a=b;if((d|0)!=(a|0)){continue}break}break c}pa();T()}sa();T()}D[c+8>>2]=e;D[c+4>>2]=g;D[c>>2]=b}if(d){ma(d)}}return}if(b>>>0>>0){c=c+J(b,144)|0;if((c|0)!=(d|0)){while(1){b=d-144|0;e=D[b+132>>2];if(e){D[d-8>>2]=e;ma(e)}e=D[d-28>>2];if(e){D[d-24>>2]=e;ma(e)}e=D[d-40>>2];if(e){D[d-36>>2]=e;ma(e)}Gb(d-140|0);d=b;if((b|0)!=(c|0)){continue}break}}D[a+4>>2]=c}}function Kb(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0;f=$-96|0;$=f;d=D[a+16>>2];B[f+92|0]=1;D[f+88>>2]=b;D[f+84>>2]=b;D[f+80>>2]=d;a:{if((b|0)==-1){break a}l=D[a+20>>2];e=D[l>>2];d=D[D[d>>2]+(b<<2)>>2];if(d>>>0>=D[l+4>>2]-e>>2>>>0){break a}d=D[D[a+8>>2]+(D[e+(d<<2)>>2]<<2)>>2];e=D[a+4>>2];if(!E[e+84|0]){d=D[D[e+68>>2]+(d<<2)>>2]}D[f+72>>2]=0;D[f+76>>2]=0;l=f- -64|0;D[l>>2]=0;D[l+4>>2]=0;D[f+56>>2]=0;D[f+60>>2]=0;Ia(e,d,B[e+24|0],f+56|0);d=b+1|0;l=(d>>>0)%3|0?d:b-2|0;i=((b>>>0)%3|0?-1:2)+b|0;b:{c:{while(1){e=l;d=i;d:{if(!D[a+28>>2]){break d}d=b+1|0;e=(d>>>0)%3|0?d:b-2|0;d=b-1|0;if((b>>>0)%3|0){break d}d=b+2|0}if((e|0)==-1){break b}h=D[a+20>>2];b=D[h>>2];e=D[D[D[a+16>>2]>>2]+(e<<2)>>2];if(e>>>0>=D[h+4>>2]-b>>2>>>0){break b}e=D[D[a+8>>2]+(D[(e<<2)+b>>2]<<2)>>2];b=D[a+4>>2];if(!E[b+84|0]){e=D[D[b+68>>2]+(e<<2)>>2]}D[f+48>>2]=0;D[f+52>>2]=0;D[f+40>>2]=0;D[f+44>>2]=0;D[f+32>>2]=0;D[f+36>>2]=0;Ia(b,e,B[b+24|0],f+32|0);if((d|0)==-1){break c}e=D[a+20>>2];b=D[e>>2];d=D[D[D[a+16>>2]>>2]+(d<<2)>>2];if(d>>>0>=D[e+4>>2]-b>>2>>>0){break c}e=D[D[a+8>>2]+(D[b+(d<<2)>>2]<<2)>>2];b=D[a+4>>2];if(!E[b+84|0]){e=D[D[b+68>>2]+(e<<2)>>2]}D[f+24>>2]=0;D[f+28>>2]=0;D[f+16>>2]=0;D[f+20>>2]=0;D[f+8>>2]=0;D[f+12>>2]=0;Ia(b,e,B[b+24|0],f+8|0);d=D[f+8>>2];b=D[f+56>>2];e=d-b|0;h=D[f+60>>2];j=D[f+12>>2]-(h+(b>>>0>d>>>0)|0)|0;p=D[f+40>>2];d=D[f+64>>2];s=p-d|0;t=D[f+68>>2];p=D[f+44>>2]-(t+(d>>>0>p>>>0)|0)|0;u=fi(e,j,s,p);v=o-u|0;o=g-(aa+(o>>>0>>0)|0)|0;k=v;g=D[f+16>>2];u=g-d|0;t=D[f+20>>2]-((d>>>0>g>>>0)+t|0)|0;g=D[f+32>>2];v=g-b|0;h=D[f+36>>2]-((b>>>0>g>>>0)+h|0)|0;d=fi(u,t,v,h);b=k+d|0;g=aa+o|0;g=b>>>0>>0?g+1|0:g;o=b;x=m;k=e;d=j;b=D[f+48>>2];m=D[f+72>>2];e=b-m|0;j=D[f+76>>2];w=D[f+52>>2]-(j+(b>>>0>>0)|0)|0;k=fi(k,d,e,w);d=x+k|0;b=aa+n|0;b=d>>>0>>0?b+1|0:b;n=D[f+24>>2];k=n-m|0;j=D[f+28>>2]-((m>>>0>n>>>0)+j|0)|0;n=fi(k,j,v,h);m=d-n|0;n=b-(aa+(d>>>0>>0)|0)|0;b=fi(u,t,e,w);d=q-b|0;b=r-(aa+(b>>>0>q>>>0)|0)|0;r=fi(k,j,s,p);q=r+d|0;b=aa+b|0;b=q>>>0>>0?b+1|0:b;r=b;kc(f+80|0);b=D[f+88>>2];if((b|0)!=-1){continue}break}b=r>>31;d=b^q;j=d-b|0;h=(b^r)-((b>>>0>d>>>0)+b|0)|0;p=-1;d=2147483647;b=n>>31;l=b^m;e=(b^n)-((b>>>0>l>>>0)+b|0)|0;b=l-b|0;s=b^-1;i=e^2147483647;k=g;e:{f:{if(!D[a+28>>2]){if((i|0)==(h|0)&j>>>0>s>>>0|i>>>0>>0){break e}i=g;a=b;d=b+j|0;b=e+h|0;b=a>>>0>d>>>0?b+1|0:b;a=g>>31;h=a^o;j=h-a|0;g=d+j|0;e=(a^i)-((a>>>0>h>>>0)+a|0)|0;a=g;g=e^2147483647;g=(g|0)==(b|0)&(j^-1)>>>0>>0|b>>>0>g>>>0;a=g?-1:a;if(!(g&0)&(a|0)<=536870912|(a|0)<536870912){break e}b=0;a=a>>>29|0;break f}g:{if((i|0)==(h|0)&j>>>0>s>>>0|i>>>0>>0){break g}a=b;i=b+j|0;b=e+h|0;b=a>>>0>i>>>0?b+1|0:b;a=i;h=g;e=g>>31;g=e;i=e^o;e=(e^h)-(e+(e>>>0>i>>>0)|0)|0;g=i-g|0;i=e^2147483647;if((i|0)==(b|0)&(g^-1)>>>0>>0|b>>>0>i>>>0){break g}b=b+e|0;a=a+g|0;b=a>>>0>>0?b+1|0:b;p=a;d=b;if(!b&a>>>0<536870913){break e}}b=d>>>29|0;a=(d&536870911)<<3|p>>>29}o=gi(o,k,a,b);m=gi(m,n,a,b);q=gi(q,r,a,b)}D[c+8>>2]=o;D[c+4>>2]=m;D[c>>2]=q;$=f+96|0;return}va();T()}va();T()}va();T()}function Lc(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0;a:{if((b|0)<0){break a}c=D[a+12>>2];d=D[a+8>>2];if(c-d>>2>>>0<=b>>>0){break a}e=d+(b<<2)|0;d=D[e>>2];i=D[d+60>>2];g=D[d+56>>2];d=e+4|0;b:{if((d|0)!=(c|0)){while(1){h=D[d>>2];D[d>>2]=0;f=D[e>>2];D[e>>2]=h;if(f){Aa(f)}e=e+4|0;d=d+4|0;if((d|0)!=(c|0)){continue}break}c=D[a+12>>2];if((e|0)==(c|0)){break b}}while(1){c=c-4|0;d=D[c>>2];D[c>>2]=0;if(d){Aa(d)}if((c|0)!=(e|0)){continue}break}}D[a+12>>2]=e;f=D[a+4>>2];c:{if(!f|(i|0)<0){break c}c=D[f+24>>2];d=D[f+28>>2];if((c|0)==(d|0)){break c}while(1){if((i|0)==D[D[c>>2]+24>>2]){e=c+4|0;i=D[f+28>>2];d:{if((e|0)!=(i|0)){while(1){h=D[e>>2];D[e>>2]=0;d=D[c>>2];D[c>>2]=h;if(d){Fa(d+12|0,D[d+16>>2]);Ea(d,D[d+4>>2]);ma(d)}c=c+4|0;e=e+4|0;if((i|0)!=(e|0)){continue}break}e=D[f+28>>2];if((e|0)==(c|0)){break d}}while(1){e=e-4|0;d=D[e>>2];D[e>>2]=0;if(d){Fa(d+12|0,D[d+16>>2]);Ea(d,D[d+4>>2]);ma(d)}if((c|0)!=(e|0)){continue}break}}D[f+28>>2]=c;break c}c=c+4|0;if((d|0)!=(c|0)){continue}break}}e:{if((g|0)>4){break e}f:{e=J(g,12)+a|0;c=D[e+20>>2];d=D[e+24>>2];if((c|0)==(d|0)){break f}while(1){if(D[c>>2]==(b|0)){break f}c=c+4|0;if((d|0)!=(c|0)){continue}break}break e}if((c|0)==(d|0)){break e}f=c+4|0;i=d-f|0;if((d|0)!=(f|0)){Ra(c,f,i)}D[e+24>>2]=c+i}c=D[a+24>>2];e=D[a+20>>2];g:{if((c|0)==(e|0)){break g}d=c-e|0;c=d>>2;f=c>>>0>1?c:1;i=f&1;c=0;if(d>>>0>=8){f=f&-2;d=0;while(1){g=c<<2;h=g+e|0;j=D[h>>2];if((j|0)>(b|0)){D[h>>2]=j-1}g=e+(g|4)|0;h=D[g>>2];if((h|0)>(b|0)){D[g>>2]=h-1}c=c+2|0;d=d+2|0;if((f|0)!=(d|0)){continue}break}}if(!i){break g}c=e+(c<<2)|0;d=D[c>>2];if((d|0)<=(b|0)){break g}D[c>>2]=d-1}c=D[a+36>>2];e=D[a+32>>2];h:{if((c|0)==(e|0)){break h}d=c-e|0;c=d>>2;f=c>>>0>1?c:1;i=f&1;c=0;if(d>>>0>=8){f=f&-2;d=0;while(1){g=c<<2;h=g+e|0;j=D[h>>2];if((j|0)>(b|0)){D[h>>2]=j-1}g=e+(g|4)|0;h=D[g>>2];if((h|0)>(b|0)){D[g>>2]=h-1}c=c+2|0;d=d+2|0;if((f|0)!=(d|0)){continue}break}}if(!i){break h}c=e+(c<<2)|0;d=D[c>>2];if((d|0)<=(b|0)){break h}D[c>>2]=d-1}c=D[a+48>>2];e=D[a+44>>2];i:{if((c|0)==(e|0)){break i}d=c-e|0;c=d>>2;f=c>>>0>1?c:1;i=f&1;c=0;if(d>>>0>=8){f=f&-2;d=0;while(1){g=c<<2;h=g+e|0;j=D[h>>2];if((j|0)>(b|0)){D[h>>2]=j-1}g=e+(g|4)|0;h=D[g>>2];if((h|0)>(b|0)){D[g>>2]=h-1}c=c+2|0;d=d+2|0;if((f|0)!=(d|0)){continue}break}}if(!i){break i}c=e+(c<<2)|0;d=D[c>>2];if((d|0)<=(b|0)){break i}D[c>>2]=d-1}c=D[a+60>>2];e=D[a+56>>2];j:{if((c|0)==(e|0)){break j}d=c-e|0;c=d>>2;f=c>>>0>1?c:1;i=f&1;c=0;if(d>>>0>=8){f=f&-2;d=0;while(1){g=c<<2;h=g+e|0;j=D[h>>2];if((j|0)>(b|0)){D[h>>2]=j-1}g=e+(g|4)|0;h=D[g>>2];if((h|0)>(b|0)){D[g>>2]=h-1}c=c+2|0;d=d+2|0;if((f|0)!=(d|0)){continue}break}}if(!i){break j}c=e+(c<<2)|0;d=D[c>>2];if((d|0)<=(b|0)){break j}D[c>>2]=d-1}c=D[a+72>>2];a=D[a+68>>2];if((c|0)==(a|0)){break a}d=c-a|0;c=d>>2;e=c>>>0>1?c:1;f=e&1;c=0;if(d>>>0>=8){e=e&-2;d=0;while(1){i=c<<2;g=i+a|0;h=D[g>>2];if((h|0)>(b|0)){D[g>>2]=h-1}i=a+(i|4)|0;g=D[i>>2];if((g|0)>(b|0)){D[i>>2]=g-1}c=c+2|0;d=d+2|0;if((e|0)!=(d|0)){continue}break}}if(!f){break a}d=b;a=a+(c<<2)|0;b=D[a>>2];if((d|0)>=(b|0)){break a}D[a>>2]=b-1}}function ma(a){a=a|0;var b=0,c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0;a:{if(!a){break a}d=a-8|0;b=D[a-4>>2];a=b&-8;f=d+a|0;b:{if(b&1){break b}if(!(b&3)){break a}b=D[d>>2];d=d-b|0;if(d>>>0>>0<=255){e=D[d+8>>2];b=b>>>3|0;c=D[d+12>>2];if((c|0)==(e|0)){i=11744,j=D[2936]&ji(b),D[i>>2]=j;break b}D[e+12>>2]=c;D[c+8>>2]=e;break b}h=D[d+24>>2];b=D[d+12>>2];c:{if((d|0)!=(b|0)){c=D[d+8>>2];D[c+12>>2]=b;D[b+8>>2]=c;break c}d:{e=d+20|0;c=D[e>>2];if(c){break d}e=d+16|0;c=D[e>>2];if(c){break d}b=0;break c}while(1){g=e;b=c;e=b+20|0;c=D[e>>2];if(c){continue}e=b+16|0;c=D[b+16>>2];if(c){continue}break}D[g>>2]=0}if(!h){break b}e=D[d+28>>2];c=(e<<2)+12048|0;e:{if(D[c>>2]==(d|0)){D[c>>2]=b;if(b){break e}i=11748,j=D[2937]&ji(e),D[i>>2]=j;break b}D[h+(D[h+16>>2]==(d|0)?16:20)>>2]=b;if(!b){break b}}D[b+24>>2]=h;c=D[d+16>>2];if(c){D[b+16>>2]=c;D[c+24>>2]=b}c=D[d+20>>2];if(!c){break b}D[b+20>>2]=c;D[c+24>>2]=b;break b}b=D[f+4>>2];if((b&3)!=3){break b}D[2938]=a;D[f+4>>2]=b&-2;D[d+4>>2]=a|1;D[a+d>>2]=a;return}if(d>>>0>=f>>>0){break a}b=D[f+4>>2];if(!(b&1)){break a}f:{if(!(b&2)){if(D[2942]==(f|0)){D[2942]=d;a=D[2939]+a|0;D[2939]=a;D[d+4>>2]=a|1;if(D[2941]!=(d|0)){break a}D[2938]=0;D[2941]=0;return}if(D[2941]==(f|0)){D[2941]=d;a=D[2938]+a|0;D[2938]=a;D[d+4>>2]=a|1;D[a+d>>2]=a;return}a=(b&-8)+a|0;g:{if(b>>>0<=255){e=D[f+8>>2];b=b>>>3|0;c=D[f+12>>2];if((c|0)==(e|0)){i=11744,j=D[2936]&ji(b),D[i>>2]=j;break g}D[e+12>>2]=c;D[c+8>>2]=e;break g}h=D[f+24>>2];b=D[f+12>>2];h:{if((f|0)!=(b|0)){c=D[f+8>>2];D[c+12>>2]=b;D[b+8>>2]=c;break h}i:{e=f+20|0;c=D[e>>2];if(c){break i}e=f+16|0;c=D[e>>2];if(c){break i}b=0;break h}while(1){g=e;b=c;e=b+20|0;c=D[e>>2];if(c){continue}e=b+16|0;c=D[b+16>>2];if(c){continue}break}D[g>>2]=0}if(!h){break g}e=D[f+28>>2];c=(e<<2)+12048|0;j:{if(D[c>>2]==(f|0)){D[c>>2]=b;if(b){break j}i=11748,j=D[2937]&ji(e),D[i>>2]=j;break g}D[h+(D[h+16>>2]==(f|0)?16:20)>>2]=b;if(!b){break g}}D[b+24>>2]=h;c=D[f+16>>2];if(c){D[b+16>>2]=c;D[c+24>>2]=b}c=D[f+20>>2];if(!c){break g}D[b+20>>2]=c;D[c+24>>2]=b}D[d+4>>2]=a|1;D[a+d>>2]=a;if(D[2941]!=(d|0)){break f}D[2938]=a;return}D[f+4>>2]=b&-2;D[d+4>>2]=a|1;D[a+d>>2]=a}if(a>>>0<=255){b=(a&-8)+11784|0;c=D[2936];a=1<<(a>>>3);k:{if(!(c&a)){D[2936]=a|c;a=b;break k}a=D[b+8>>2]}D[b+8>>2]=d;D[a+12>>2]=d;D[d+12>>2]=b;D[d+8>>2]=a;return}e=31;if(a>>>0<=16777215){b=a>>>8|0;g=b+1048320>>>16&8;b=b<>>16&4;b=b<>>16&2;b=(b<>>15|0)-(c|(e|g))|0;e=(b<<1|a>>>b+21&1)+28|0}D[d+28>>2]=e;D[d+16>>2]=0;D[d+20>>2]=0;g=(e<<2)+12048|0;l:{m:{c=D[2937];b=1<>2]=d;D[d+24>>2]=g;break n}e=a<<((e|0)==31?0:25-(e>>>1|0)|0);b=D[g>>2];while(1){c=b;if((D[b+4>>2]&-8)==(a|0)){break m}b=e>>>29|0;e=e<<1;g=c+(b&4)|0;b=D[g+16>>2];if(b){continue}break}D[g+16>>2]=d;D[d+24>>2]=c}D[d+12>>2]=d;D[d+8>>2]=d;break l}a=D[c+8>>2];D[a+12>>2]=d;D[c+8>>2]=d;D[d+24>>2]=0;D[d+12>>2]=c;D[d+8>>2]=a}a=D[2944]-1|0;D[2944]=a?a:-1}}function $h(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0;D[a+8>>2]=e;n=a+32|0;h=D[n>>2];f=D[a+36>>2]-h>>2;a:{if(f>>>0>>0){ra(n,e-f|0);d=D[a+8>>2];break a}d=e;if(d>>>0>=f>>>0){break a}D[a+36>>2]=h+(e<<2);d=e}s=D[a+52>>2];p=D[a+48>>2];f=0;h=(e&1073741823)!=(e|0)?-1:e<<2;m=qa(na(h),0,h);b:{if((d|0)<=0){break b}g=D[a+32>>2];while(1){d=f<<2;h=D[d+m>>2];j=D[a+16>>2];c:{if((h|0)>(j|0)){D[d+g>>2]=j;break c}d=d+g|0;j=D[a+12>>2];if((j|0)>(h|0)){D[d>>2]=j;break c}D[d>>2]=h}d=D[a+8>>2];f=f+1|0;if((d|0)>(f|0)){continue}break}if((d|0)<=0){break b}f=0;while(1){h=f<<2;d=h+c|0;h=D[b+h>>2]+D[g+h>>2]|0;D[d>>2]=h;d:{if((h|0)>D[a+16>>2]){i=h-D[a+20>>2]|0}else{if((h|0)>=D[a+12>>2]){break d}i=h+D[a+20>>2]|0}D[d>>2]=i}d=D[a+8>>2];f=f+1|0;if((d|0)>(f|0)){continue}break}}f=D[a+56>>2];q=D[f>>2];f=D[f+4>>2]-q|0;if((f|0)>=5){o=f>>>2|0;t=o>>>0>2?o:2;u=e&-2;v=e&1;h=1;while(1){e:{f:{if((h|0)!=(o|0)){r=J(e,h);f=D[(h<<2)+q>>2];if((f|0)==-1){break f}f=D[D[p+12>>2]+(f<<2)>>2];if((f|0)==-1){break f}j=D[s>>2];g=D[p>>2];k=D[j+(D[g+(f<<2)>>2]<<2)>>2];i=f+1|0;i=(i>>>0)%3|0?i:f-2|0;if((i|0)!=-1){i=D[g+(i<<2)>>2]}else{i=-1}g:{h:{if((f>>>0)%3|0){f=f-1|0;break h}f=f+2|0;l=-1;if((f|0)==-1){break g}}l=D[g+(f<<2)>>2]}if((h|0)<=(k|0)){break f}f=D[(i<<2)+j>>2];if((f|0)>=(h|0)){break f}g=D[j+(l<<2)>>2];if((g|0)>=(h|0)){break f}i:{if((e|0)<=0){break i}g=J(e,g);j=J(e,f);k=J(e,k);f=0;l=0;if((e|0)!=1){while(1){D[(f<<2)+m>>2]=(D[(f+g<<2)+c>>2]+D[(f+j<<2)+c>>2]|0)-D[(f+k<<2)+c>>2];i=f|1;D[(i<<2)+m>>2]=(D[(g+i<<2)+c>>2]+D[(j+i<<2)+c>>2]|0)-D[(i+k<<2)+c>>2];f=f+2|0;l=l+2|0;if((u|0)!=(l|0)){continue}break}}if(!v){break i}D[(f<<2)+m>>2]=(D[(f+g<<2)+c>>2]+D[(f+j<<2)+c>>2]|0)-D[(f+k<<2)+c>>2]}if((d|0)<=0){break e}j=D[n>>2];f=0;while(1){d=f<<2;g=D[d+m>>2];k=D[a+16>>2];j:{if((g|0)>(k|0)){D[d+j>>2]=k;break j}d=d+j|0;k=D[a+12>>2];if((k|0)>(g|0)){D[d>>2]=k;break j}D[d>>2]=g}d=D[a+8>>2];f=f+1|0;if((d|0)>(f|0)){continue}break}f=0;if((d|0)<=0){break e}d=r<<2;k=d+c|0;i=b+d|0;while(1){g=f<<2;d=g+k|0;g=D[g+i>>2]+D[g+j>>2]|0;D[d>>2]=g;k:{if((g|0)>D[a+16>>2]){l=g-D[a+20>>2]|0}else{if((g|0)>=D[a+12>>2]){break k}l=g+D[a+20>>2]|0}D[d>>2]=l}d=D[a+8>>2];f=f+1|0;if((d|0)>(f|0)){continue}break}break e}va();T()}if((d|0)<=0){break e}k=(J(h-1|0,e)<<2)+c|0;j=D[n>>2];f=0;while(1){d=f<<2;g=D[d+k>>2];i=D[a+16>>2];l:{if((g|0)>(i|0)){D[d+j>>2]=i;break l}d=d+j|0;i=D[a+12>>2];if((i|0)>(g|0)){D[d>>2]=i;break l}D[d>>2]=g}d=D[a+8>>2];f=f+1|0;if((d|0)>(f|0)){continue}break}f=0;if((d|0)<=0){break e}d=r<<2;k=d+c|0;i=b+d|0;while(1){g=f<<2;d=g+k|0;g=D[g+i>>2]+D[g+j>>2]|0;D[d>>2]=g;m:{if((g|0)>D[a+16>>2]){l=g-D[a+20>>2]|0}else{if((g|0)>=D[a+12>>2]){break m}l=g+D[a+20>>2]|0}D[d>>2]=l}d=D[a+8>>2];f=f+1|0;if((d|0)>(f|0)){continue}break}}h=h+1|0;if((t|0)!=(h|0)){continue}break}}ma(m);return 1}function ud(a,b,c,d){var e=0,f=0,g=0,h=0,i=0,j=0,k=K(0),l=0,m=0,n=K(0);j=D[c>>2];a:{b:{f=D[b+4>>2];if(!f){break b}c=f-1|0;if(c&f){e=j;if(e>>>0>=f>>>0){e=(j>>>0)%(f>>>0)|0}c=D[D[b>>2]+(e<<2)>>2];if(!c){break b}while(1){c=D[c>>2];if(!c){break b}g=D[c+4>>2];if((g|0)!=(j|0)){if(f>>>0<=g>>>0){g=(g>>>0)%(f>>>0)|0}if((e|0)!=(g|0)){break b}}if(D[c+8>>2]!=(j|0)){continue}break}b=0;break a}e=c&j;c=D[D[b>>2]+(e<<2)>>2];if(!c){break b}g=f-1|0;while(1){c=D[c>>2];if(!c){break b}h=D[c+4>>2];if((h|0)!=(j|0)&(g&h)!=(e|0)){break b}if(D[c+8>>2]!=(j|0)){continue}break}b=0;break a}c=na(16);d=D[D[d>>2]>>2];D[c+12>>2]=0;D[c+8>>2]=d;D[c+4>>2]=j;D[c>>2]=0;n=K(D[b+12>>2]+1>>>0);k=H[b+16>>2];c:{if(n>K(k*K(f>>>0))?0:f){break c}d=2;g=(f-1&f)!=0|f>>>0<3|f<<1;k=K(Q(K(n/k)));d:{if(k=K(0)){e=~~k>>>0;break d}e=0}e=e>>>0>>0?g:e;e:{if((e|0)==1){break e}if(!(e&e-1)){d=e;break e}d=Kc(e);f=D[b+4>>2]}f:{if(d>>>0<=f>>>0){if(d>>>0>=f>>>0){break f}g=f>>>0<3;k=K(Q(K(K(G[b+12>>2])/H[b+16>>2])));g:{if(k=K(0)){e=~~k>>>0;break g}e=0}h:{i:{if(g){break i}if(ii(f)>>>0>1){break i}e=e>>>0<2?e:1<<32-M(e-1|0);break h}e=Kc(e)}d=d>>>0>e>>>0?d:e;if(f>>>0<=d>>>0){break f}}e=0;h=d;j:{k:{l:{if(d){if(h>>>0>=1073741824){break l}f=na(h<<2);d=D[b>>2];D[b>>2]=f;if(d){ma(d)}D[b+4>>2]=h;if(h-1>>>0>=3){g=h&-4;d=0;while(1){f=e<<2;D[f+D[b>>2]>>2]=0;D[D[b>>2]+(f|4)>>2]=0;D[D[b>>2]+(f|8)>>2]=0;D[D[b>>2]+(f|12)>>2]=0;e=e+4|0;d=d+4|0;if((g|0)!=(d|0)){continue}break}}d=h&3;if(d){while(1){D[D[b>>2]+(e<<2)>>2]=0;e=e+1|0;i=i+1|0;if((d|0)!=(i|0)){continue}break}}d=D[b+8>>2];if(!d){break j}e=b+8|0;g=D[d+4>>2];f=h-1|0;if(!(f&h)){break k}g=g>>>0>=h>>>0?(g>>>0)%(h>>>0)|0:g;D[D[b>>2]+(g<<2)>>2]=e;while(1){f=D[d>>2];if(!f){break j}i=D[f+4>>2];if(h>>>0<=i>>>0){i=(i>>>0)%(h>>>0)|0}if((g|0)==(i|0)){d=f;continue}e=f;l=i<<2;m=l+D[b>>2]|0;if(D[m>>2]){while(1){i=e;e=D[e>>2];if(D[f+8>>2]==D[e+8>>2]?e:0){continue}break}D[d>>2]=e;D[i>>2]=D[D[l+D[b>>2]>>2]>>2];D[D[l+D[b>>2]>>2]>>2]=f}else{D[m>>2]=d;d=f;g=i}continue}}d=D[b>>2];D[b>>2]=0;if(d){ma(d)}D[b+4>>2]=0;break j}sa();T()}g=f&g;D[D[b>>2]+(g<<2)>>2]=e;f=D[d>>2];if(!f){break j}l=h-1|0;while(1){h=l&D[f+4>>2];m:{if((h|0)==(g|0)){d=f;break m}e=f;i=h<<2;m=i+D[b>>2]|0;if(D[m>>2]){while(1){h=e;e=D[e>>2];if(D[f+8>>2]==D[e+8>>2]?e:0){continue}break}D[d>>2]=e;D[h>>2]=D[D[i+D[b>>2]>>2]>>2];D[D[i+D[b>>2]>>2]>>2]=f;break m}D[m>>2]=d;d=f;g=h}f=D[d>>2];if(f){continue}break}}}f=D[b+4>>2];d=f-1|0;if(!(d&f)){e=d&j;break c}if(f>>>0>j>>>0){e=j;break c}e=(j>>>0)%(f>>>0)|0}e=D[b>>2]+(e<<2)|0;d=D[e>>2];n:{o:{if(!d){d=b+8|0;D[c>>2]=D[d>>2];D[b+8>>2]=c;D[e>>2]=d;d=D[c>>2];if(!d){break n}d=D[d+4>>2];e=f-1|0;p:{if(!(e&f)){d=d&e;break p}if(d>>>0>>0){break p}d=(d>>>0)%(f>>>0)|0}d=D[b>>2]+(d<<2)|0;break o}D[c>>2]=D[d>>2]}D[d>>2]=c}D[b+12>>2]=D[b+12>>2]+1;b=1}B[a+4|0]=b;D[a>>2]=c}function Wc(a){var b=0,c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0;D[a+56>>2]=D[a+52>>2];D[a+44>>2]=D[a+40>>2];a:{b:{c:{e=D[a+64>>2];c=D[e+24>>2];if((c|0)!=D[e+28>>2]){while(1){d=b;i=D[(j<<2)+c>>2];d:{if((i|0)==-1){break d}b=D[a+56>>2];e:{if((b|0)!=D[a+60>>2]){D[b>>2]=d;D[a+56>>2]=b+4;break e}e=D[a+52>>2];c=b-e|0;g=c>>2;b=g+1|0;if(b>>>0>=1073741824){break c}f=c>>1;f=c>>>0<2147483644?b>>>0>>0?f:b:1073741823;if(f){if(f>>>0>=1073741824){break b}b=na(f<<2)}else{b=0}g=b+(g<<2)|0;D[g>>2]=d;if((c|0)>0){oa(b,e,c)}D[a+60>>2]=b+(f<<2);D[a+56>>2]=g+4;D[a+52>>2]=b;if(!e){break e}ma(e)}f:{if(!(D[D[a+12>>2]+(j>>>3&536870908)>>2]>>>j&1)){break f}b=i+1|0;b=(b>>>0)%3|0?b:i-2|0;if((b|0)==-1|D[D[a>>2]+(b>>>3&536870908)>>2]>>>b&1){break f}b=D[D[D[a+64>>2]+12>>2]+(b<<2)>>2];if((b|0)==-1){break f}c=b+1|0;c=(c>>>0)%3|0?c:b-2|0;if((c|0)==-1){break f}e=D[a+64>>2];f=D[a>>2];while(1){i=c;b=c+1|0;b=(b>>>0)%3|0?b:c-2|0;if((b|0)==-1|D[f+(b>>>3&536870908)>>2]>>>b&1){break f}b=D[D[e+12>>2]+(b<<2)>>2];if((b|0)==-1){break f}c=b+1|0;c=(c>>>0)%3|0?c:b-2|0;if((c|0)!=-1){continue}break}}D[D[a+28>>2]+(i<<2)>>2]=d;b=D[a+44>>2];g:{if((b|0)!=D[a+48>>2]){D[b>>2]=i;D[a+44>>2]=b+4;break g}e=D[a+40>>2];c=b-e|0;g=c>>2;b=g+1|0;if(b>>>0>=1073741824){break a}f=c>>1;f=c>>>0<2147483644?b>>>0>>0?f:b:1073741823;if(f){if(f>>>0>=1073741824){break b}b=na(f<<2)}else{b=0}g=b+(g<<2)|0;D[g>>2]=i;if((c|0)>0){oa(b,e,c)}D[a+48>>2]=b+(f<<2);D[a+44>>2]=g+4;D[a+40>>2]=b;if(!e){break g}ma(e)}b=d+1|0;e=D[a+64>>2];h:{if((i>>>0)%3|0){c=i-1|0;break h}c=i+2|0;if((c|0)==-1){break d}}c=D[D[e+12>>2]+(c<<2)>>2];if((c|0)==-1){break d}c=c+((c>>>0)%3|0?-1:2)|0;if((c|0)==-1|(c|0)==(i|0)){break d}while(1){e=c+1|0;e=(e>>>0)%3|0?e:c-2|0;if(D[D[a>>2]+(e>>>3&536870908)>>2]>>>e&1){d=D[a+56>>2];i:{if((d|0)!=D[a+60>>2]){D[d>>2]=b;D[a+56>>2]=d+4;break i}f=D[a+52>>2];e=d-f|0;h=e>>2;d=h+1|0;if(d>>>0>=1073741824){break c}g=e>>1;g=e>>>0<2147483644?d>>>0>>0?g:d:1073741823;if(g){if(g>>>0>=1073741824){break b}d=na(g<<2)}else{d=0}h=d+(h<<2)|0;D[h>>2]=b;if((e|0)>0){oa(d,f,e)}D[a+60>>2]=d+(g<<2);D[a+56>>2]=h+4;D[a+52>>2]=d;if(!f){break i}ma(f)}e=b+1|0;d=D[a+44>>2];j:{if((d|0)!=D[a+48>>2]){D[d>>2]=c;D[a+44>>2]=d+4;break j}g=D[a+40>>2];f=d-g|0;k=f>>2;d=k+1|0;if(d>>>0>=1073741824){break a}h=f>>1;h=f>>>0<2147483644?d>>>0>>0?h:d:1073741823;if(h){if(h>>>0>=1073741824){break b}d=na(h<<2)}else{d=0}k=d+(k<<2)|0;D[k>>2]=c;if((f|0)>0){oa(d,g,f)}D[a+48>>2]=d+(h<<2);D[a+44>>2]=k+4;D[a+40>>2]=d;if(!g){break j}ma(g)}d=b;b=e}D[D[a+28>>2]+(c<<2)>>2]=d;e=D[a+64>>2];k:{if((c>>>0)%3|0){c=c-1|0;break k}c=c+2|0;if((c|0)==-1){break d}}c=D[D[e+12>>2]+(c<<2)>>2];if((c|0)==-1){break d}c=c+((c>>>0)%3|0?-1:2)|0;if((c|0)==-1){break d}if((c|0)!=(i|0)){continue}break}}j=j+1|0;c=D[e+24>>2];if(j>>>0>2]-c>>2>>>0){continue}break}}return}pa();T()}sa();T()}pa();T()}function de(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0;D[a+8>>2]=e;m=a+32|0;h=D[m>>2];f=D[a+36>>2]-h>>2;a:{if(f>>>0>>0){ra(m,e-f|0);d=D[a+8>>2];break a}d=e;if(d>>>0>=f>>>0){break a}D[a+36>>2]=h+(e<<2);d=e}s=D[a+52>>2];n=D[a+48>>2];f=0;h=(e&1073741823)!=(e|0)?-1:e<<2;l=qa(na(h),0,h);b:{if((d|0)<=0){break b}g=D[a+32>>2];while(1){d=f<<2;h=D[d+l>>2];i=D[a+16>>2];c:{if((h|0)>(i|0)){D[d+g>>2]=i;break c}d=d+g|0;i=D[a+12>>2];if((i|0)>(h|0)){D[d>>2]=i;break c}D[d>>2]=h}d=D[a+8>>2];f=f+1|0;if((d|0)>(f|0)){continue}break}if((d|0)<=0){break b}f=0;while(1){h=f<<2;d=h+c|0;h=D[b+h>>2]+D[g+h>>2]|0;D[d>>2]=h;d:{if((h|0)>D[a+16>>2]){h=h-D[a+20>>2]|0}else{if((h|0)>=D[a+12>>2]){break d}h=h+D[a+20>>2]|0}D[d>>2]=h}d=D[a+8>>2];f=f+1|0;if((d|0)>(f|0)){continue}break}}f=D[a+56>>2];q=D[f>>2];f=D[f+4>>2]-q|0;if((f|0)>=5){o=f>>>2|0;t=o>>>0>2?o:2;u=e&-2;v=e&1;h=1;while(1){e:{f:{if((h|0)!=(o|0)){r=J(e,h);f=D[(h<<2)+q>>2];if((f|0)==-1|D[D[n>>2]+(f>>>3&536870908)>>2]>>>f&1){break f}f=D[D[D[n+64>>2]+12>>2]+(f<<2)>>2];if((f|0)==-1){break f}i=D[s>>2];g=D[n+28>>2];k=D[i+(D[g+(f<<2)>>2]<<2)>>2];if((k|0)>=(h|0)){break f}j=f+1|0;j=D[i+(D[g+(((j>>>0)%3|0?j:f-2|0)<<2)>>2]<<2)>>2];if((j|0)>=(h|0)){break f}f=D[i+(D[g+(f+((f>>>0)%3|0?-1:2)<<2)>>2]<<2)>>2];if((f|0)>=(h|0)){break f}g:{if((e|0)<=0){break g}g=J(e,f);i=J(e,j);k=J(e,k);f=0;p=0;if((e|0)!=1){while(1){D[(f<<2)+l>>2]=(D[(f+g<<2)+c>>2]+D[(f+i<<2)+c>>2]|0)-D[(f+k<<2)+c>>2];j=f|1;D[(j<<2)+l>>2]=(D[(g+j<<2)+c>>2]+D[(i+j<<2)+c>>2]|0)-D[(k+j<<2)+c>>2];f=f+2|0;p=p+2|0;if((u|0)!=(p|0)){continue}break}}if(!v){break g}D[(f<<2)+l>>2]=(D[(f+g<<2)+c>>2]+D[(f+i<<2)+c>>2]|0)-D[(f+k<<2)+c>>2]}if((d|0)<=0){break e}i=D[m>>2];f=0;while(1){d=f<<2;g=D[d+l>>2];k=D[a+16>>2];h:{if((g|0)>(k|0)){D[d+i>>2]=k;break h}d=d+i|0;k=D[a+12>>2];if((k|0)>(g|0)){D[d>>2]=k;break h}D[d>>2]=g}d=D[a+8>>2];f=f+1|0;if((d|0)>(f|0)){continue}break}f=0;if((d|0)<=0){break e}d=r<<2;k=d+c|0;j=b+d|0;while(1){g=f<<2;d=g+k|0;g=D[g+j>>2]+D[g+i>>2]|0;D[d>>2]=g;i:{if((g|0)>D[a+16>>2]){g=g-D[a+20>>2]|0}else{if((g|0)>=D[a+12>>2]){break i}g=g+D[a+20>>2]|0}D[d>>2]=g}d=D[a+8>>2];f=f+1|0;if((d|0)>(f|0)){continue}break}break e}va();T()}if((d|0)<=0){break e}k=(J(h-1|0,e)<<2)+c|0;i=D[m>>2];f=0;while(1){d=f<<2;g=D[d+k>>2];j=D[a+16>>2];j:{if((g|0)>(j|0)){D[d+i>>2]=j;break j}d=d+i|0;j=D[a+12>>2];if((j|0)>(g|0)){D[d>>2]=j;break j}D[d>>2]=g}d=D[a+8>>2];f=f+1|0;if((d|0)>(f|0)){continue}break}f=0;if((d|0)<=0){break e}d=r<<2;k=d+c|0;j=b+d|0;while(1){g=f<<2;d=g+k|0;g=D[g+j>>2]+D[g+i>>2]|0;D[d>>2]=g;k:{if((g|0)>D[a+16>>2]){g=g-D[a+20>>2]|0}else{if((g|0)>=D[a+12>>2]){break k}g=g+D[a+20>>2]|0}D[d>>2]=g}d=D[a+8>>2];f=f+1|0;if((d|0)>(f|0)){continue}break}}h=h+1|0;if((t|0)!=(h|0)){continue}break}}ma(l);return 1}function ld(a,b){var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0;if((b|0)==-1){return 1}c=(b>>>0)/3|0;if(!(D[D[a+24>>2]+(c>>>3&268435452)>>2]>>>c&1)){d=D[a+48>>2];D[a+52>>2]=d;a:{if((d|0)!=D[a+56>>2]){D[d>>2]=b;D[a+52>>2]=d+4;break a}e=na(4);D[e>>2]=b;f=e+4|0;D[a+56>>2]=f;D[a+52>>2]=f;D[a+48>>2]=e;if(!d){break a}ma(d)}f=D[D[a+4>>2]+28>>2];d=b+1|0;e=(d>>>0)%3|0?d:b-2|0;d=D[f+(e<<2)>>2];if((d|0)==-1){return 0}g=(b-J(c,3)|0?-1:2)+b|0;c=D[f+(g<<2)>>2];if((c|0)==-1){return 0}b=D[a+36>>2];f=b+(d>>>3&536870908)|0;h=D[f>>2];i=1<>2]=h|i;Ma(a+8|0,d,e);b=D[a+36>>2]}b=(c>>>3&536870908)+b|0;d=D[b>>2];e=1<>2]=d|e;Ma(a+8|0,c,g)}c=D[a+52>>2];if((c|0)==D[a+48>>2]){return 1}k=a+8|0;while(1){b:{c:{c=c-4|0;b=D[c>>2];if((b|0)==-1){break c}d=(b>>>0)/3|0;e=D[a+24>>2]+(d>>>3&268435452)|0;f=D[e>>2];d=1<>2]=d|f;e=D[a+4>>2];d=D[D[e+28>>2]+(b<<2)>>2];if((d|0)==-1){return 0}while(1){c=b;d:{e:{f=D[a+36>>2]+(d>>>3&536870908)|0;g=D[f>>2];h=1<>2]+(d<<2)>>2];g:{if((b|0)==-1){break g}i=b+1|0;b=(i>>>0)%3|0?i:b-2|0;if((b|0)==-1|D[D[e>>2]+(b>>>3&536870908)>>2]>>>b&1){break g}b=D[D[D[e+64>>2]+12>>2]+(b<<2)>>2];if((b|0)!=-1){break f}}D[f>>2]=g|h;Ma(k,d,c);break e}D[f>>2]=g|h;Ma(k,d,c);d=b+1|0;if((((d>>>0)%3|0?d:b-2|0)|0)==-1){break e}b=-1;e=D[a+4>>2];h:{if((c|0)==-1){break h}d=c+1|0;d=(d>>>0)%3|0?d:c-2|0;if((d|0)==-1|D[D[e>>2]+(d>>>3&536870908)>>2]>>>d&1){break h}b=D[D[D[e+64>>2]+12>>2]+(d<<2)>>2]}d=(b>>>0)/3|0;h=1<>2];i=d>>>5|0;f=D[c+(i<<2)>>2];break d}i:{j:{if((c|0)==-1){break j}d=-1;b=c+1|0;b=(b>>>0)%3|0?b:c-2|0;e=D[a+4>>2];if(!((b|0)==-1|D[D[e>>2]+(b>>>3&536870908)>>2]>>>b&1)){d=D[D[D[e+64>>2]+12>>2]+(b<<2)>>2]}k:{l:{if((c>>>0)%3|0){c=c-1|0;break l}c=c+2|0;b=-1;if((c|0)==-1){break k}}b=-1;if(D[D[e>>2]+(c>>>3&536870908)>>2]>>>c&1){break k}b=D[D[D[e+64>>2]+12>>2]+(c<<2)>>2]}j=(b|0)==-1;g=j?-1:(b>>>0)/3|0;if((d|0)!=-1){c=D[a+24>>2];h=(d>>>0)/3|0;i=h>>>5|0;f=D[c+(i<<2)>>2];h=1<>2];i=g>>>5|0;f=D[c+(i<<2)>>2];if(!(h&f)){break d}}c=D[a+52>>2]-4|0;D[a+52>>2]=c;break b}if(j){b=d;break d}if(D[(g>>>3&536870908)+c>>2]>>>g&1){b=d;break d}c=D[a+52>>2];D[c-4>>2]=b;if((c|0)!=D[a+56>>2]){D[c>>2]=d;c=c+4|0;break c}m:{f=D[a+48>>2];e=c-f|0;c=e>>2;b=c+1|0;if(b>>>0<1073741824){g=e>>1;g=e>>>0<2147483644?b>>>0>>0?g:b:1073741823;if(g){if(g>>>0>=1073741824){break m}b=na(g<<2)}else{b=0}c=b+(c<<2)|0;D[c>>2]=d;c=c+4|0;if((e|0)>0){oa(b,f,e)}D[a+56>>2]=b+(g<<2);D[a+52>>2]=c;D[a+48>>2]=b;if(!f){break b}ma(f);c=D[a+52>>2];break b}pa();T()}sa();T()}D[(i<<2)+c>>2]=f|h;d=D[D[e+28>>2]+(b<<2)>>2];if((d|0)!=-1){continue}break}return 0}D[a+52>>2]=c}if(D[a+48>>2]!=(c|0)){continue}break}}return 1}function Tb(a,b,c){var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0;i=J(b,12)+a|0;D[i+12>>2]=D[i+8>>2];j=(c|0)==-1?-1:(c>>>0)/3|0;l=1;k=c;a:{b:{c:{while(1){d:{n=e&1;if(n){if((k|0)==-1){break d}if((Uc(a,((k>>>0)%3|0?-1:2)+k|0)|0)==-1){break a}c=k+1|0;c=(c>>>0)%3|0?c:k-2|0;if((c|0)==-1){break a}e=c+1|0;c=(e>>>0)%3|0?e:c-2|0;if((c|0)==-1){break a}c=D[D[D[a+4>>2]+12>>2]+(c<<2)>>2];if((c|0)==-1){break a}e=c+1|0;c=(e>>>0)%3|0?e:c-2|0;if((c|0)==-1){break a}j=(c>>>0)/3|0}d=D[a+56>>2]+(j>>>3&536870908)|0;g=D[d>>2];f=1<>2]=g|f;d=D[i+12>>2];f:{if((d|0)!=D[i+16>>2]){D[d>>2]=j;D[i+12>>2]=d+4;break f}g=D[i+8>>2];h=d-g|0;m=h>>2;d=m+1|0;if(d>>>0>=1073741824){break c}f=h>>1;f=h>>>0<2147483644?d>>>0>>0?f:d:1073741823;if(f){if(f>>>0>=1073741824){break b}d=na(f<<2)}else{d=0}m=d+(m<<2)|0;D[m>>2]=j;if((h|0)>0){oa(d,g,h)}D[i+8>>2]=d;D[i+12>>2]=m+4;D[i+16>>2]=d+(f<<2);if(!g){break f}ma(g)}h=e+1|0;g:{h:{i:{if(!e){break i}if(h&1){if((c|0)==-1){c=-1;break g}e=c+1|0;c=(e>>>0)%3|0?e:c-2|0;break i}k=n?c:k;if((c|0)==-1){c=-1;break g}if((c>>>0)%3|0){e=c-1|0;break h}c=c+2|0}d=c;c=-1;e=d;if((d|0)==-1){break g}}c=D[D[D[a+4>>2]+12>>2]+(e<<2)>>2];d=-1;g=-1;f=e+1|0;f=(f>>>0)%3|0?f:e-2|0;if((f|0)>=0){g=(f>>>0)/3|0;g=D[(D[D[a>>2]+96>>2]+J(g,12)|0)+(f-J(g,3)<<2)>>2]}j:{if((c|0)==-1){break j}f=((c>>>0)%3|0?-1:2)+c|0;if((f|0)<0){break j}d=(f>>>0)/3|0;d=D[(D[D[a>>2]+96>>2]+J(d,12)|0)+(f-J(d,3)<<2)>>2]}if((d|0)!=(g|0)){c=-1;break g}k:{l:{e=((e>>>0)%3|0?-1:2)+e|0;if((e|0)>=0){d=(e>>>0)/3|0;if((c|0)!=-1){break l}c=-1;break g}e=-1;if((c|0)!=-1){break k}c=-1;break g}e=D[(D[D[a>>2]+96>>2]+J(d,12)|0)+(e-J(d,3)<<2)>>2]}d=c+1|0;d=(d>>>0)%3|0?d:c-2|0;if((d|0)>=0){g=(d>>>0)/3|0;d=D[(D[D[a>>2]+96>>2]+J(g,12)|0)+(d-J(g,3)<<2)>>2]}else{d=-1}if((d|0)!=(e|0)){c=-1;break g}e=h;j=(c>>>0)/3|0;d=D[a+56>>2]+(j>>>3&268435452)|0;g=D[d>>2];f=1<>2]-4|0;d=D[e>>2];h=D[a+56>>2]+(d>>>3&536870908)|0;g=D[h>>2];o=h,p=ji(d)&g,D[o>>2]=p;D[i+12>>2]=e}e=1;d=l;l=0;if(d){continue}break a}break}k=-1;Uc(a,-1);break a}pa();T()}sa();T()}D[((b<<2)+a|0)+44>>2]=k;c=D[i+12>>2];b=D[i+8>>2];m:{if((c|0)==(b|0)){break m}e=c-b|0;c=e>>2;d=c>>>0>1?c:1;k=d&1;a=D[a+56>>2];c=0;if(e>>>0>=8){e=d&-2;j=0;while(1){d=c<<2;h=D[d+b>>2];l=a+(h>>>3&536870908)|0;i=D[l>>2];o=l,p=ji(h)&i,D[o>>2]=p;d=D[b+(d|4)>>2];h=a+(d>>>3&536870908)|0;l=D[h>>2];o=h,p=ji(d)&l,D[o>>2]=p;c=c+2|0;j=j+2|0;if((e|0)!=(j|0)){continue}break}}if(!k){break m}b=D[b+(c<<2)>>2];a=a+(b>>>3&536870908)|0;c=D[a>>2];o=a,p=ji(b)&c,D[o>>2]=p}}function md(a,b){var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0;if((b|0)==-1){return 1}d=(b>>>0)/3|0;if(!(D[D[a+24>>2]+(d>>>3&268435452)>>2]>>>d&1)){c=D[a+48>>2];D[a+52>>2]=c;a:{if((c|0)!=D[a+56>>2]){D[c>>2]=b;D[a+52>>2]=c+4;break a}e=na(4);D[e>>2]=b;f=e+4|0;D[a+56>>2]=f;D[a+52>>2]=f;D[a+48>>2]=e;if(!c){break a}ma(c)}e=-1;f=D[a+4>>2];c=b+1|0;g=(c>>>0)%3|0?c:b-2|0;if((g|0)!=-1){e=D[D[f>>2]+(g<<2)>>2]}b:{h=b-J(d,3)|0;if(h){c=b-1|0;break b}c=b+2|0;if((c|0)!=-1){break b}return 0}if((e|0)==-1){return 0}d=D[D[f>>2]+(c<<2)>>2];if((d|0)==-1){return 0}c=D[a+36>>2];f=c+(e>>>3&536870908)|0;i=D[f>>2];j=1<>2]=i|j;Ma(a+8|0,e,g);c=D[a+36>>2]}c=(d>>>3&536870908)+c|0;e=D[c>>2];f=1<>2]=e|f;Ma(a+8|0,d,(h?-1:2)+b|0)}c=D[a+52>>2];if((c|0)==D[a+48>>2]){return 1}j=a+8|0;while(1){c:{d:{c=c-4|0;b=D[c>>2];if((b|0)==-1){break d}d=(b>>>0)/3|0;e=D[a+24>>2]+(d>>>3&268435452)|0;f=D[e>>2];d=1<>2]=d|f;while(1){d=D[a+4>>2];c=D[D[d>>2]+(b<<2)>>2];if((c|0)==-1){return 0}e:{f:{e=D[a+36>>2]+(c>>>3&536870908)|0;f=D[e>>2];g=1<>2]+(c<<2)>>2];h:{if((h|0)==-1){break h}i=h+1|0;h=(i>>>0)%3|0?i:h-2|0;if((h|0)==-1){break h}d=D[D[d+12>>2]+(h<<2)>>2];if((d|0)!=-1){break g}}D[e>>2]=f|g;Ma(j,c,b);break f}D[e>>2]=f|g;Ma(j,c,b);c=d+1|0;if((((c>>>0)%3|0?c:d-2|0)|0)==-1){break f}d=b-2|0;c=b+1|0;b=-1;c=(c>>>0)%3|0?c:d;if((c|0)!=-1){b=D[D[D[a+4>>2]+12>>2]+(c<<2)>>2]}c=(b>>>0)/3|0;g=1<>2];h=c>>>5|0;d=D[e+(h<<2)>>2];break e}c=-1;f=D[a+4>>2];d=b+1|0;d=(d>>>0)%3|0?d:b-2|0;if((d|0)!=-1){c=D[D[f+12>>2]+(d<<2)>>2]}i:{j:{if((b>>>0)%3|0){e=b-1|0;break j}e=b+2|0;b=-1;if((e|0)==-1){break i}}b=D[D[f+12>>2]+(e<<2)>>2]}i=(b|0)==-1;f=i?-1:(b>>>0)/3|0;k:{if((c|0)!=-1){e=D[a+24>>2];g=(c>>>0)/3|0;h=g>>>5|0;d=D[e+(h<<2)>>2];g=1<>2];h=f>>>5|0;d=D[e+(h<<2)>>2];if(!(g&d)){break e}}c=D[a+52>>2]-4|0;D[a+52>>2]=c;break c}if(i){b=c;break e}if(D[(f>>>3&536870908)+e>>2]>>>f&1){b=c;break e}d=D[a+52>>2];D[d-4>>2]=b;if((d|0)!=D[a+56>>2]){D[d>>2]=c;c=d+4|0;break d}l:{e=D[a+48>>2];d=d-e|0;g=d>>2;b=g+1|0;if(b>>>0<1073741824){f=d>>1;f=d>>>0<2147483644?b>>>0>>0?f:b:1073741823;if(f){if(f>>>0>=1073741824){break l}b=na(f<<2)}else{b=0}g=b+(g<<2)|0;D[g>>2]=c;c=g+4|0;if((d|0)>0){oa(b,e,d)}D[a+56>>2]=b+(f<<2);D[a+52>>2]=c;D[a+48>>2]=b;if(!e){break c}ma(e);c=D[a+52>>2];break c}pa();T()}sa();T()}D[(h<<2)+e>>2]=d|g;if((b|0)!=-1){continue}break}return 0}D[a+52>>2]=c}if(D[a+48>>2]!=(c|0)){continue}break}}return 1}function ae(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0;h=$-32|0;$=h;a:{b:{if(!Pa(1,h+28|0,b)){break b}d=D[h+28>>2];c=D[D[a+48>>2]+64>>2];if(d>>>0>D[c+4>>2]-D[c>>2]>>2>>>0){break b}c:{if(d){Oa(a+60|0,d);c=h+8|0;D[c>>2]=0;D[c+4>>2]=0;B[c+5|0]=0;B[c+6|0]=0;B[c+7|0]=0;B[c+8|0]=0;B[c+9|0]=0;B[c+10|0]=0;B[c+11|0]=0;B[c+12|0]=0;if(!Da(c,b)){break c}while(1){f=1<>2]+(e>>>3&536870908)|0;if(i){f=f|D[g>>2]}else{f=D[g>>2]&(f^-1)}D[g>>2]=f;e=e+1|0;if((d|0)!=(e|0)){continue}break}}if(!Pa(1,h+28|0,b)){break b}d=D[h+28>>2];c=D[D[a+48>>2]+64>>2];if(d>>>0>D[c+4>>2]-D[c>>2]>>2>>>0){break b}if(d){e=0;Oa(a+72|0,d);c=h+8|0;D[c>>2]=0;D[c+4>>2]=0;B[c+5|0]=0;B[c+6|0]=0;B[c+7|0]=0;B[c+8|0]=0;B[c+9|0]=0;B[c+10|0]=0;B[c+11|0]=0;B[c+12|0]=0;if(!Da(c,b)){break c}while(1){f=1<>2]+(e>>>3&536870908)|0;if(i){f=f|D[g>>2]}else{f=D[g>>2]&(f^-1)}D[g>>2]=f;e=e+1|0;if((d|0)!=(e|0)){continue}break}}if(!Pa(1,h+28|0,b)){break b}d=D[h+28>>2];c=D[D[a+48>>2]+64>>2];if(d>>>0>D[c+4>>2]-D[c>>2]>>2>>>0){break b}if(d){e=0;Oa(a+84|0,d);c=h+8|0;D[c>>2]=0;D[c+4>>2]=0;B[c+5|0]=0;B[c+6|0]=0;B[c+7|0]=0;B[c+8|0]=0;B[c+9|0]=0;B[c+10|0]=0;B[c+11|0]=0;B[c+12|0]=0;if(!Da(c,b)){break c}while(1){f=1<>2]+(e>>>3&536870908)|0;if(i){f=f|D[g>>2]}else{f=D[g>>2]&(f^-1)}D[g>>2]=f;e=e+1|0;if((d|0)!=(e|0)){continue}break}}if(!Pa(1,h+28|0,b)){break b}d=D[h+28>>2];c=D[D[a+48>>2]+64>>2];if(d>>>0>D[c+4>>2]-D[c>>2]>>2>>>0){break b}if(d){e=0;Oa(a+96|0,d);c=h+8|0;D[c>>2]=0;D[c+4>>2]=0;B[c+5|0]=0;B[c+6|0]=0;B[c+7|0]=0;B[c+8|0]=0;B[c+9|0]=0;B[c+10|0]=0;B[c+11|0]=0;B[c+12|0]=0;if(!Da(c,b)){break c}while(1){f=1<>2]+(e>>>3&536870908)|0;if(i){f=f|D[g>>2]}else{f=D[g>>2]&(f^-1)}D[g>>2]=f;e=e+1|0;if((d|0)!=(e|0)){continue}break}}e=0;d=D[b+12>>2];f=d;c=D[b+20>>2];g=c;i=D[b+16>>2];j=i+4|0;c=j>>>0<4?c+1|0:c;k=D[b+8>>2];if(k>>>0>>0&(c|0)>=(d|0)|(c|0)>(d|0)){break a}l=D[b>>2];d=l+i|0;d=E[d|0]|E[d+1|0]<<8|(E[d+2|0]<<16|E[d+3|0]<<24);D[b+16>>2]=j;D[b+20>>2]=c;c=g;g=i+8|0;c=g>>>0<8?c+1|0:c;i=g;g=c;if(i>>>0>k>>>0&(c|0)>=(f|0)|(c|0)>(f|0)){break a}c=j+l|0;c=E[c|0]|E[c+1|0]<<8|(E[c+2|0]<<16|E[c+3|0]<<24);D[b+16>>2]=i;D[b+20>>2]=g;if((c|0)<(d|0)){break a}D[a+16>>2]=c;D[a+12>>2]=d;b=(c>>31)-((d>>31)+(c>>>0>>0)|0)|0;c=c-d|0;if(!b&c>>>0>2147483646|b){break a}e=1;b=c+1|0;D[a+20>>2]=b;c=b>>>1|0;D[a+24>>2]=c;D[a+28>>2]=0-c;if(b&1){break a}D[a+24>>2]=c-1;break a}}e=0}$=h+32|0;return e|0}function Yh(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0;h=$-32|0;$=h;a:{b:{if(!Pa(1,h+28|0,b)){break b}d=D[h+28>>2];c=D[a+48>>2];if(d>>>0>D[c+4>>2]-D[c>>2]>>2>>>0){break b}c:{if(d){Oa(a+60|0,d);c=h+8|0;D[c>>2]=0;D[c+4>>2]=0;B[c+5|0]=0;B[c+6|0]=0;B[c+7|0]=0;B[c+8|0]=0;B[c+9|0]=0;B[c+10|0]=0;B[c+11|0]=0;B[c+12|0]=0;if(!Da(c,b)){break c}while(1){f=1<>2]+(e>>>3&536870908)|0;if(i){f=f|D[g>>2]}else{f=D[g>>2]&(f^-1)}D[g>>2]=f;e=e+1|0;if((d|0)!=(e|0)){continue}break}}if(!Pa(1,h+28|0,b)){break b}d=D[h+28>>2];c=D[a+48>>2];if(d>>>0>D[c+4>>2]-D[c>>2]>>2>>>0){break b}if(d){e=0;Oa(a+72|0,d);c=h+8|0;D[c>>2]=0;D[c+4>>2]=0;B[c+5|0]=0;B[c+6|0]=0;B[c+7|0]=0;B[c+8|0]=0;B[c+9|0]=0;B[c+10|0]=0;B[c+11|0]=0;B[c+12|0]=0;if(!Da(c,b)){break c}while(1){f=1<>2]+(e>>>3&536870908)|0;if(i){f=f|D[g>>2]}else{f=D[g>>2]&(f^-1)}D[g>>2]=f;e=e+1|0;if((d|0)!=(e|0)){continue}break}}if(!Pa(1,h+28|0,b)){break b}d=D[h+28>>2];c=D[a+48>>2];if(d>>>0>D[c+4>>2]-D[c>>2]>>2>>>0){break b}if(d){e=0;Oa(a+84|0,d);c=h+8|0;D[c>>2]=0;D[c+4>>2]=0;B[c+5|0]=0;B[c+6|0]=0;B[c+7|0]=0;B[c+8|0]=0;B[c+9|0]=0;B[c+10|0]=0;B[c+11|0]=0;B[c+12|0]=0;if(!Da(c,b)){break c}while(1){f=1<>2]+(e>>>3&536870908)|0;if(i){f=f|D[g>>2]}else{f=D[g>>2]&(f^-1)}D[g>>2]=f;e=e+1|0;if((d|0)!=(e|0)){continue}break}}if(!Pa(1,h+28|0,b)){break b}d=D[h+28>>2];c=D[a+48>>2];if(d>>>0>D[c+4>>2]-D[c>>2]>>2>>>0){break b}if(d){e=0;Oa(a+96|0,d);c=h+8|0;D[c>>2]=0;D[c+4>>2]=0;B[c+5|0]=0;B[c+6|0]=0;B[c+7|0]=0;B[c+8|0]=0;B[c+9|0]=0;B[c+10|0]=0;B[c+11|0]=0;B[c+12|0]=0;if(!Da(c,b)){break c}while(1){f=1<>2]+(e>>>3&536870908)|0;if(i){f=f|D[g>>2]}else{f=D[g>>2]&(f^-1)}D[g>>2]=f;e=e+1|0;if((d|0)!=(e|0)){continue}break}}e=0;d=D[b+12>>2];f=d;c=D[b+20>>2];g=c;i=D[b+16>>2];j=i+4|0;c=j>>>0<4?c+1|0:c;k=D[b+8>>2];if(k>>>0>>0&(c|0)>=(d|0)|(c|0)>(d|0)){break a}l=D[b>>2];d=l+i|0;d=E[d|0]|E[d+1|0]<<8|(E[d+2|0]<<16|E[d+3|0]<<24);D[b+16>>2]=j;D[b+20>>2]=c;c=g;g=i+8|0;c=g>>>0<8?c+1|0:c;i=g;g=c;if(i>>>0>k>>>0&(c|0)>=(f|0)|(c|0)>(f|0)){break a}c=j+l|0;c=E[c|0]|E[c+1|0]<<8|(E[c+2|0]<<16|E[c+3|0]<<24);D[b+16>>2]=i;D[b+20>>2]=g;if((c|0)<(d|0)){break a}D[a+16>>2]=c;D[a+12>>2]=d;b=(c>>31)-((d>>31)+(c>>>0>>0)|0)|0;c=c-d|0;if(!b&c>>>0>2147483646|b){break a}e=1;b=c+1|0;D[a+20>>2]=b;c=b>>>1|0;D[a+24>>2]=c;D[a+28>>2]=0-c;if(b&1){break a}D[a+24>>2]=c-1;break a}}e=0}$=h+32|0;return e|0}function qh(a){a=a|0;var b=0,c=0,d=0,e=0,f=0;b=D[a+32>>2];e=D[b+16>>2];d=D[b+12>>2];c=D[b+20>>2];if(G[b+8>>2]>e>>>0&(d|0)>=(c|0)|(c|0)<(d|0)){f=E[e+D[b>>2]|0];d=e+1|0;c=d?c:c+1|0;D[b+16>>2]=d;D[b+20>>2]=c;b=D[a+48>>2];D[a+48>>2]=0;if(b){ba[D[D[b>>2]+4>>2]](b)}a:{b:{c:{d:{switch(f|0){case 0:b=na(384);D[b>>2]=8284;qa(b+4|0,0,80);D[b+96>>2]=0;D[b+100>>2]=0;D[b+92>>2]=-1;D[b+84>>2]=-1;D[b+88>>2]=-1;D[b+104>>2]=0;D[b+108>>2]=0;D[b+112>>2]=0;D[b+116>>2]=0;D[b+120>>2]=0;D[b+124>>2]=0;D[b+128>>2]=0;D[b+132>>2]=0;D[b+136>>2]=0;D[b+140>>2]=0;D[b+144>>2]=0;D[b+148>>2]=0;D[b+156>>2]=0;D[b+160>>2]=0;D[b+152>>2]=1065353216;D[b+164>>2]=0;D[b+168>>2]=0;D[b+172>>2]=0;D[b+176>>2]=0;D[b+180>>2]=0;D[b+184>>2]=0;D[b+188>>2]=0;D[b+192>>2]=0;D[b+196>>2]=0;D[b+200>>2]=0;D[b+204>>2]=0;D[b+208>>2]=0;D[b+212>>2]=-1;D[b+216>>2]=0;D[b+220>>2]=0;D[b+224>>2]=0;La(b+232|0);La(b+272|0);c=b+312|0;D[c>>2]=0;D[c+4>>2]=0;B[c+5|0]=0;B[c+6|0]=0;B[c+7|0]=0;B[c+8|0]=0;B[c+9|0]=0;B[c+10|0]=0;B[c+11|0]=0;B[c+12|0]=0;La(b+328|0);D[b+376>>2]=0;D[b+368>>2]=0;D[b+372>>2]=0;break c;case 2:break d;default:break b}}b=na(440);D[b>>2]=8336;qa(b+4|0,0,80);D[b+96>>2]=0;D[b+100>>2]=0;D[b+92>>2]=-1;D[b+84>>2]=-1;D[b+88>>2]=-1;D[b+104>>2]=0;D[b+108>>2]=0;D[b+112>>2]=0;D[b+116>>2]=0;D[b+120>>2]=0;D[b+124>>2]=0;D[b+128>>2]=0;D[b+132>>2]=0;D[b+136>>2]=0;D[b+140>>2]=0;D[b+144>>2]=0;D[b+148>>2]=0;D[b+156>>2]=0;D[b+160>>2]=0;D[b+152>>2]=1065353216;D[b+164>>2]=0;D[b+168>>2]=0;D[b+172>>2]=0;D[b+176>>2]=0;D[b+180>>2]=0;D[b+184>>2]=0;D[b+188>>2]=0;D[b+192>>2]=0;D[b+196>>2]=0;D[b+200>>2]=0;D[b+204>>2]=0;D[b+208>>2]=0;D[b+212>>2]=-1;D[b+216>>2]=0;D[b+220>>2]=0;D[b+224>>2]=0;La(b+232|0);La(b+272|0);c=b+312|0;D[c>>2]=0;D[c+4>>2]=0;B[c+5|0]=0;B[c+6|0]=0;B[c+7|0]=0;B[c+8|0]=0;B[c+9|0]=0;B[c+10|0]=0;B[c+11|0]=0;B[c+12|0]=0;La(b+328|0);D[b+392>>2]=0;D[b+396>>2]=0;D[b+384>>2]=0;D[b+388>>2]=0;D[b+376>>2]=0;D[b+380>>2]=0;D[b+368>>2]=0;D[b+372>>2]=0;D[b+416>>2]=0;D[b+420>>2]=0;D[b+408>>2]=2;D[b+412>>2]=7;D[b+400>>2]=-1;D[b+404>>2]=-1;D[b+424>>2]=0;D[b+428>>2]=0;D[b+432>>2]=0;D[b+436>>2]=0}c=D[a+48>>2];D[a+48>>2]=b;if(!c){break a}ba[D[D[c>>2]+4>>2]](c)}b=D[a+48>>2];if(b){break a}return 0}a=ba[D[D[b>>2]+8>>2]](b,a)|0}else{a=0}return a|0}function ai(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0;g=$-32|0;$=g;D[a+68>>2]=f;d=D[a+56>>2];e=D[d>>2];d=D[d+4>>2];D[g+24>>2]=0;D[g+16>>2]=0;D[g+20>>2]=0;a:{d=d-e|0;if((d|0)>0){m=a+60|0;d=d>>>2|0;n=d>>>0>1?d:1;o=a+112|0;while(1){e=D[a+56>>2];d=D[e>>2];if(D[e+4>>2]-d>>2>>>0<=k>>>0){break a}Mb(m,D[d+(k<<2)>>2],g+16|0);e=D[g+20>>2];d=e>>31;f=D[g+16>>2];h=f>>31;j=D[g+24>>2];i=j>>31;i=(i^j)-i|0;h=i+((d^e)-d+((f^h)-h)|0)|0;d=0;d=h>>>0>>0?1:d;b:{if(!(d|h)){D[g+16>>2]=D[a+108>>2];break b}i=D[a+108>>2];l=i>>31;f=gi(fi(i,l,f,f>>31),aa,h,d);D[g+16>>2]=f;d=gi(fi(i,l,e,e>>31),aa,h,d);D[g+20>>2]=d;e=d;d=d>>31;e=(e^d)-d|0;d=f>>31;d=e+((d^f)-d|0)|0;if((j|0)>=0){D[g+24>>2]=i-d;break b}D[g+24>>2]=d-i}d=za(o);f=D[g+16>>2];c:{if(d){D[g+24>>2]=0-D[g+24>>2];e=0-D[g+20>>2]|0;D[g+20>>2]=e;f=0-f|0;D[g+16>>2]=f;break c}e=D[g+20>>2]}d:{if((f|0)>=0){f=D[a+108>>2];d=f+D[g+24>>2]|0;f=e+f|0;break d}e:{if((e|0)<0){d=D[g+24>>2];f=d>>31;f=(d^f)-f|0;break e}d=D[g+24>>2];f=d>>31;f=D[a+100>>2]+(f-(d^f)|0)|0}if((d|0)<0){d=e>>31;d=(d^e)-d|0;break d}d=e>>31;d=D[a+100>>2]+(d-(d^e)|0)|0}e=D[a+100>>2];f:{if(!(d|f)){d=e;f=d;break f}if(!((d|0)!=(e|0)|f)){f=d;break f}if(!((e|0)!=(f|0)|d)){d=f;break f}g:{if(f){break g}h=D[a+108>>2];if((h|0)>=(d|0)){break g}d=(h<<1)-d|0;f=0;break f}h:{if((e|0)!=(f|0)){break h}h=D[a+108>>2];if((h|0)<=(d|0)){break h}d=(h<<1)-d|0;break f}i:{if((d|0)!=(e|0)){break i}e=D[a+108>>2];if((e|0)<=(f|0)){break i}f=(e<<1)-f|0;break f}if(d){break f}d=0;e=D[a+108>>2];if((e|0)>=(f|0)){break f}f=(e<<1)-f|0}D[g+12>>2]=d;D[g+8>>2]=f;j:{if(D[a+8>>2]<=0){break j}h=D[a+32>>2];f=0;while(1){d=f<<2;e=D[d+(g+8|0)>>2];j=D[a+16>>2];k:{if((e|0)>(j|0)){D[d+h>>2]=j;break k}d=d+h|0;j=D[a+12>>2];if((j|0)>(e|0)){D[d>>2]=j;break k}D[d>>2]=e}f=f+1|0;e=D[a+8>>2];if((f|0)<(e|0)){continue}break}d=0;if((e|0)<=0){break j}e=k<<3;j=e+c|0;i=b+e|0;while(1){f=d<<2;e=f+j|0;f=D[f+i>>2]+D[f+h>>2]|0;D[e>>2]=f;l:{if((f|0)>D[a+16>>2]){f=f-D[a+20>>2]|0}else{if((f|0)>=D[a+12>>2]){break l}f=f+D[a+20>>2]|0}D[e>>2]=f}d=d+1|0;if((d|0)>2]){continue}break}}k=k+1|0;if((n|0)!=(k|0)){continue}break}}$=g+32|0;return 1}va();T()}function Rh(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0;g=$-32|0;$=g;D[a+68>>2]=f;d=D[a+56>>2];e=D[d>>2];d=D[d+4>>2];D[g+24>>2]=0;D[g+16>>2]=0;D[g+20>>2]=0;a:{d=d-e|0;if((d|0)>0){m=a+60|0;d=d>>>2|0;n=d>>>0>1?d:1;o=a+112|0;while(1){e=D[a+56>>2];d=D[e>>2];if(D[e+4>>2]-d>>2>>>0<=k>>>0){break a}Kb(m,D[d+(k<<2)>>2],g+16|0);e=D[g+20>>2];d=e>>31;f=D[g+16>>2];h=f>>31;j=D[g+24>>2];i=j>>31;i=(i^j)-i|0;h=i+((d^e)-d+((f^h)-h)|0)|0;d=0;d=h>>>0>>0?1:d;b:{if(!(d|h)){D[g+16>>2]=D[a+108>>2];break b}i=D[a+108>>2];l=i>>31;f=gi(fi(i,l,f,f>>31),aa,h,d);D[g+16>>2]=f;d=gi(fi(i,l,e,e>>31),aa,h,d);D[g+20>>2]=d;e=d;d=d>>31;e=(e^d)-d|0;d=f>>31;d=e+((d^f)-d|0)|0;if((j|0)>=0){D[g+24>>2]=i-d;break b}D[g+24>>2]=d-i}d=za(o);f=D[g+16>>2];c:{if(d){D[g+24>>2]=0-D[g+24>>2];e=0-D[g+20>>2]|0;D[g+20>>2]=e;f=0-f|0;D[g+16>>2]=f;break c}e=D[g+20>>2]}d:{if((f|0)>=0){f=D[a+108>>2];d=f+D[g+24>>2]|0;f=e+f|0;break d}e:{if((e|0)<0){d=D[g+24>>2];f=d>>31;f=(d^f)-f|0;break e}d=D[g+24>>2];f=d>>31;f=D[a+100>>2]+(f-(d^f)|0)|0}if((d|0)<0){d=e>>31;d=(d^e)-d|0;break d}d=e>>31;d=D[a+100>>2]+(d-(d^e)|0)|0}e=D[a+100>>2];f:{if(!(d|f)){d=e;f=d;break f}if(!((d|0)!=(e|0)|f)){f=d;break f}if(!((e|0)!=(f|0)|d)){d=f;break f}g:{if(f){break g}h=D[a+108>>2];if((h|0)>=(d|0)){break g}d=(h<<1)-d|0;f=0;break f}h:{if((e|0)!=(f|0)){break h}h=D[a+108>>2];if((h|0)<=(d|0)){break h}d=(h<<1)-d|0;break f}i:{if((d|0)!=(e|0)){break i}e=D[a+108>>2];if((e|0)<=(f|0)){break i}f=(e<<1)-f|0;break f}if(d){break f}d=0;e=D[a+108>>2];if((e|0)>=(f|0)){break f}f=(e<<1)-f|0}D[g+12>>2]=d;D[g+8>>2]=f;j:{if(D[a+8>>2]<=0){break j}h=D[a+32>>2];f=0;while(1){d=f<<2;e=D[d+(g+8|0)>>2];j=D[a+16>>2];k:{if((e|0)>(j|0)){D[d+h>>2]=j;break k}d=d+h|0;j=D[a+12>>2];if((j|0)>(e|0)){D[d>>2]=j;break k}D[d>>2]=e}f=f+1|0;e=D[a+8>>2];if((f|0)<(e|0)){continue}break}d=0;if((e|0)<=0){break j}e=k<<3;j=e+c|0;i=b+e|0;while(1){f=d<<2;e=f+j|0;f=D[f+i>>2]+D[f+h>>2]|0;D[e>>2]=f;l:{if((f|0)>D[a+16>>2]){f=f-D[a+20>>2]|0}else{if((f|0)>=D[a+12>>2]){break l}f=f+D[a+20>>2]|0}D[e>>2]=f}d=d+1|0;if((d|0)>2]){continue}break}}k=k+1|0;if((n|0)!=(k|0)){continue}break}}$=g+32|0;return 1}va();T()}function vc(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0;l=ba[D[D[a>>2]+44>>2]](a)|0;a:{if((l|0)<=0){break a}h=D[b+4>>2]-D[b>>2]>>2;e=$+-64|0;$=e;d=mb(e);f=J(D[2541],l);$b(d,D[D[a+8>>2]+56>>2],l<<24>>24,5,0,f,f>>31);d=_b(na(96),d);B[d+84|0]=1;D[d+72>>2]=D[d+68>>2];Zb(d,h);D[d+60>>2]=D[D[a+8>>2]+60>>2];f=D[a+16>>2];D[a+16>>2]=d;if(f){Aa(f)}$=e- -64|0;d=D[a+16>>2];if(!D[d+80>>2]){break a}j=D[D[d>>2]>>2];if(!j){break a}i=D[c+12>>2];g=i;e=D[c+20>>2];k=D[c+8>>2];f=D[c+16>>2];if((g|0)<=(e|0)&k>>>0<=f>>>0|(e|0)>(g|0)){break a}h=J(h,l);j=j+D[d+48>>2]|0;m=D[c>>2];n=E[m+f|0];d=e;g=f+1|0;d=g?d:d+1|0;D[c+16>>2]=g;D[c+20>>2]=d;b:{c:{if(n){if(jc(h,l,c,j)){break c}break a}if((d|0)>=(i|0)&g>>>0>=k>>>0|(d|0)>(i|0)){break a}d=E[g+m|0];f=f+2|0;e=f>>>0<2?e+1|0:e;D[c+16>>2]=f;D[c+20>>2]=e;e=D[D[a+16>>2]+64>>2];e=D[e+4>>2]-D[e>>2]|0;if((d|0)==D[2541]){d=h<<2;if(d>>>0>e>>>0){break a}f=D[c+12>>2];e=D[c+20>>2];i=D[c+16>>2];g=d+i|0;e=g>>>0>>0?e+1|0:e;if(g>>>0>G[c+8>>2]&(e|0)>=(f|0)|(e|0)>(f|0)){break a}oa(j,i+D[c>>2]|0,d);e=d;f=d+D[c+16>>2]|0;d=D[c+20>>2];D[c+16>>2]=f;D[c+20>>2]=e>>>0>f>>>0?d+1|0:d;break c}if(e>>>0>>0){break a}e=D[c+8>>2];i=D[c+16>>2];f=i;g=e-f|0;f=e>>>0>>0;e=D[c+20>>2];f=D[c+12>>2]-(f+e|0)|0;k=fi(d,0,h,0)>>>0>g>>>0;g=aa;if(k&(g|0)>=(f|0)|(f|0)<(g|0)){break a}f=1;if(!h){break b}g=0;while(1){m=d+i|0;k=D[c+12>>2];e=d>>>0>m>>>0?e+1|0:e;if(m>>>0>G[c+8>>2]&(k|0)<=(e|0)|(e|0)>(k|0)){return 0}oa(j+(g<<2)|0,i+D[c>>2]|0,d);e=D[c+20>>2];i=d+D[c+16>>2]|0;e=i>>>0>>0?e+1|0:e;D[c+16>>2]=i;D[c+20>>2]=e;g=g+1|0;if((h|0)!=(g|0)){continue}break}}f=1;if(!h){break b}d=D[a+20>>2];if(d){f=0;if(ba[D[D[d>>2]+32>>2]](d)|0){break b}}d=0;g=0;d:{if((h|0)<=0){break d}if((h|0)!=1){i=h&-2;while(1){e=d<<2;f=D[e+j>>2];D[e+j>>2]=0-(f&1)^f>>>1;f=e|4;e=D[f+j>>2];D[f+j>>2]=0-(e&1)^e>>>1;d=d+2|0;g=g+2|0;if((i|0)!=(g|0)){continue}break}}if(!(h&1)){break d}e=d<<2;d=D[e+j>>2];D[e+j>>2]=0-(d&1)^d>>>1}f=0}d=D[a+20>>2];e:{if(!d){break e}if(!(ba[D[D[d>>2]+40>>2]](d,c)|0)){break a}if(f){break e}a=D[a+20>>2];if(!(ba[D[D[a>>2]+44>>2]](a,j,j,h,l,D[b>>2])|0)){break a}}o=1}return o|0}function Xa(a,b){var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0;g=$-32|0;$=g;a:{b:{if(D[a+8>>2]<<5>>>0>=b>>>0){break b}if((b|0)<0){break a}b=(b-1>>>5|0)+1|0;c=na(b<<2);D[g+24>>2]=b;D[g+20>>2]=0;D[g+16>>2]=c;b=D[a>>2];D[g+12>>2]=0;D[g+8>>2]=b;c=D[a+4>>2];D[g+4>>2]=c&31;D[g>>2]=b+(c>>>3&536870908);f=$-32|0;$=f;i=D[g+4>>2];e=D[g+12>>2];j=D[g>>2];h=D[g+8>>2];b=(i-e|0)+(j-h<<3)|0;d=D[g+20>>2];c=b+d|0;D[g+20>>2]=c;if(!((c-1^d-1)>>>0<32?d:0)){D[D[g+16>>2]+((c>>>0<33?0:c-1>>>5|0)<<2)>>2]=0}c=D[g+16>>2]+(d>>>3&536870908)|0;d=d&31;c:{if((d|0)==(e|0)){if((b|0)<=0){break c}if(e){i=32-e|0;d=(b|0)<(i|0)?b:i;i=-1<>>i-d;D[c>>2]=D[c>>2]&(i^-1)|i&D[h>>2];b=b-d|0;h=h+4|0;c=c+(d+e>>>3&536870908)|0}j=c;e=(b|0)/32|0;c=e<<2;d=Ra(j,h,c);b=b-(e<<5)|0;if((b|0)<=0){break c}e=c+d|0;b=-1>>>32-b|0;D[e>>2]=D[e>>2]&(b^-1)|b&D[c+h>>2];break c}D[f+28>>2]=e;D[f+24>>2]=h;D[f+20>>2]=i;D[f+16>>2]=j;D[f+12>>2]=d;D[f+8>>2]=c;b=D[f+28>>2];c=D[f+24>>2];h=(D[f+20>>2]-b|0)+(D[f+16>>2]-c<<3)|0;d:{if((h|0)<=0){b=D[f+12>>2];break d}e:{if(!b){b=D[f+12>>2];break e}e=D[f+12>>2];j=32-e|0;k=32-b|0;d=(h|0)<(k|0)?h:k;i=d>>>0>j>>>0?j:d;l=D[f+8>>2];m=D[l>>2]&(-1<>>j-i^-1);j=D[c>>2]&(-1<>>k-d);D[l>>2]=m|(b>>>0>>0?j<>>b-e|0);c=e+i|0;b=c&31;D[f+12>>2]=b;e=l+(c>>>3&536870908)|0;D[f+8>>2]=e;c=d-i|0;if((c|0)>0){D[e>>2]=D[e>>2]&(-1>>>32-c^-1)|j>>>i+D[f+28>>2];D[f+12>>2]=c;b=c}h=h-d|0;c=D[f+24>>2]+4|0;D[f+24>>2]=c}i=-1<=32){j=i^-1;while(1){d=D[f+8>>2];c=D[c>>2];D[d>>2]=j&D[d>>2]|c<>2]=d+4;D[d+4>>2]=i&D[d+4>>2]|c>>>e;c=D[f+24>>2]+4|0;D[f+24>>2]=c;d=h>>>0>63;h=h-32|0;if(d){continue}break}}if((h|0)<=0){break d}d=D[f+8>>2];j=e;e=(e|0)<(h|0)?e:h;j=D[d>>2]&(i&-1>>>j-e^-1);i=D[c>>2]&-1>>>32-h;D[d>>2]=j|i<>2]=b;d=d+(c>>>3&536870908)|0;D[f+8>>2]=d;c=h-e|0;if((c|0)<=0){break d}D[d>>2]=D[d>>2]&(-1>>>32-c^-1)|i>>>e;D[f+12>>2]=c;b=c}c=D[f+8>>2];D[f+4>>2]=b;D[f>>2]=c}$=f+32|0;b=D[a>>2];D[a>>2]=D[g+16>>2];D[g+16>>2]=b;c=D[a+4>>2];D[a+4>>2]=D[g+20>>2];D[g+20>>2]=c;c=D[a+8>>2];D[a+8>>2]=D[g+24>>2];D[g+24>>2]=c;if(!b){break b}ma(b)}$=g+32|0;return}pa();T()}function Hh(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0;g=$-48|0;$=g;d=D[a+8>>2];if(d-31>>>0>=4294967267){D[a+76>>2]=d;e=-1<>2]=d;D[a+80>>2]=e^-1;D[a+92>>2]=(d|0)/2;H[a+88>>2]=K(2)/K(d|0)}D[a+52>>2]=f;d=D[a+40>>2];e=D[d>>2];d=D[d+4>>2];D[g+16>>2]=0;D[g+8>>2]=0;D[g+12>>2]=0;a:{d=d-e|0;if((d|0)>0){m=a+8|0;n=a+44|0;d=d>>>2|0;o=d>>>0>1?d:1;p=a+96|0;while(1){e=D[a+40>>2];d=D[e>>2];if(D[e+4>>2]-d>>2>>>0<=j>>>0){break a}Mb(n,D[d+(j<<2)>>2],g+8|0);e=D[g+12>>2];d=e>>31;f=D[g+8>>2];h=f>>31;k=D[g+16>>2];i=k>>31;i=(i^k)-i|0;h=i+((d^e)-d+((f^h)-h)|0)|0;d=0;d=h>>>0>>0?1:d;b:{if(!(d|h)){D[g+8>>2]=D[a+92>>2];break b}i=D[a+92>>2];l=i>>31;f=gi(fi(i,l,f,f>>31),aa,h,d);D[g+8>>2]=f;d=gi(fi(i,l,e,e>>31),aa,h,d);D[g+12>>2]=d;e=d>>31;e=(d^e)-e|0;d=f>>31;d=e+((d^f)-d|0)|0;if((k|0)>=0){D[g+16>>2]=i-d;break b}D[g+16>>2]=d-i}d=za(p);f=D[g+8>>2];c:{if(d){D[g+16>>2]=0-D[g+16>>2];e=0-D[g+12>>2]|0;D[g+12>>2]=e;f=0-f|0;D[g+8>>2]=f;break c}e=D[g+12>>2]}d:{if((f|0)>=0){f=D[a+92>>2];d=f+D[g+16>>2]|0;f=e+f|0;break d}e:{if((e|0)<0){d=D[g+16>>2];f=d>>31;f=(d^f)-f|0;break e}d=D[g+16>>2];f=d>>31;f=D[a+84>>2]+(f-(d^f)|0)|0}if((d|0)<0){d=e>>31;d=(d^e)-d|0;break d}d=e>>31;d=D[a+84>>2]+(d-(d^e)|0)|0}e=D[a+84>>2];f:{if(!(d|f)){d=e;f=d;break f}if(!((d|0)!=(e|0)|f)){f=d;break f}if(!((e|0)!=(f|0)|d)){d=f;break f}g:{if(f){break g}h=D[a+92>>2];if((h|0)>=(d|0)){break g}d=(h<<1)-d|0;f=0;break f}h:{if((e|0)!=(f|0)){break h}h=D[a+92>>2];if((h|0)<=(d|0)){break h}d=(h<<1)-d|0;break f}i:{if((d|0)!=(e|0)){break i}e=D[a+92>>2];if((e|0)<=(f|0)){break i}f=(e<<1)-f|0;break f}if(d){break f}d=0;e=D[a+92>>2];if((e|0)>=(f|0)){break f}f=(e<<1)-f|0}e=j<<3;h=e+b|0;k=D[h+4>>2];h=D[h>>2];D[g+36>>2]=d;D[g+32>>2]=f;D[g+24>>2]=h;D[g+28>>2]=k;Jb(g+40|0,m,g+32|0,g+24|0);d=c+e|0;D[d>>2]=D[g+40>>2];D[d+4>>2]=D[g+44>>2];j=j+1|0;if((o|0)!=(j|0)){continue}break}}$=g+48|0;return 1}va();T()}function Dh(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0;g=$-48|0;$=g;d=D[a+8>>2];if(d-31>>>0>=4294967267){D[a+76>>2]=d;e=-1<>2]=d;D[a+80>>2]=e^-1;D[a+92>>2]=(d|0)/2;H[a+88>>2]=K(2)/K(d|0)}D[a+52>>2]=f;d=D[a+40>>2];e=D[d>>2];d=D[d+4>>2];D[g+16>>2]=0;D[g+8>>2]=0;D[g+12>>2]=0;a:{d=d-e|0;if((d|0)>0){m=a+8|0;n=a+44|0;d=d>>>2|0;o=d>>>0>1?d:1;p=a+96|0;while(1){e=D[a+40>>2];d=D[e>>2];if(D[e+4>>2]-d>>2>>>0<=j>>>0){break a}Kb(n,D[d+(j<<2)>>2],g+8|0);e=D[g+12>>2];d=e>>31;f=D[g+8>>2];h=f>>31;k=D[g+16>>2];i=k>>31;i=(i^k)-i|0;h=i+((d^e)-d+((f^h)-h)|0)|0;d=0;d=h>>>0>>0?1:d;b:{if(!(d|h)){D[g+8>>2]=D[a+92>>2];break b}i=D[a+92>>2];l=i>>31;f=gi(fi(i,l,f,f>>31),aa,h,d);D[g+8>>2]=f;d=gi(fi(i,l,e,e>>31),aa,h,d);D[g+12>>2]=d;e=d>>31;e=(d^e)-e|0;d=f>>31;d=e+((d^f)-d|0)|0;if((k|0)>=0){D[g+16>>2]=i-d;break b}D[g+16>>2]=d-i}d=za(p);f=D[g+8>>2];c:{if(d){D[g+16>>2]=0-D[g+16>>2];e=0-D[g+12>>2]|0;D[g+12>>2]=e;f=0-f|0;D[g+8>>2]=f;break c}e=D[g+12>>2]}d:{if((f|0)>=0){f=D[a+92>>2];d=f+D[g+16>>2]|0;f=e+f|0;break d}e:{if((e|0)<0){d=D[g+16>>2];f=d>>31;f=(d^f)-f|0;break e}d=D[g+16>>2];f=d>>31;f=D[a+84>>2]+(f-(d^f)|0)|0}if((d|0)<0){d=e>>31;d=(d^e)-d|0;break d}d=e>>31;d=D[a+84>>2]+(d-(d^e)|0)|0}e=D[a+84>>2];f:{if(!(d|f)){d=e;f=d;break f}if(!((d|0)!=(e|0)|f)){f=d;break f}if(!((e|0)!=(f|0)|d)){d=f;break f}g:{if(f){break g}h=D[a+92>>2];if((h|0)>=(d|0)){break g}d=(h<<1)-d|0;f=0;break f}h:{if((e|0)!=(f|0)){break h}h=D[a+92>>2];if((h|0)<=(d|0)){break h}d=(h<<1)-d|0;break f}i:{if((d|0)!=(e|0)){break i}e=D[a+92>>2];if((e|0)<=(f|0)){break i}f=(e<<1)-f|0;break f}if(d){break f}d=0;e=D[a+92>>2];if((e|0)>=(f|0)){break f}f=(e<<1)-f|0}e=j<<3;h=e+b|0;k=D[h+4>>2];h=D[h>>2];D[g+36>>2]=d;D[g+32>>2]=f;D[g+24>>2]=h;D[g+28>>2]=k;Jb(g+40|0,m,g+32|0,g+24|0);d=c+e|0;D[d>>2]=D[g+40>>2];D[d+4>>2]=D[g+44>>2];j=j+1|0;if((o|0)!=(j|0)){continue}break}}$=g+48|0;return 1}va();T()}function Kd(a,b){var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0;a:{if(!F[b+38>>1]){break a}if(!Wa(1,a+12|0,b)){break a}c=D[b+8>>2];d=D[b+16>>2];f=c-d|0;e=D[a+12>>2];c=D[b+12>>2]-(D[b+20>>2]+(c>>>0>>0)|0)|0;if(f>>>0>>6>>>0&(c|0)<=0|(c|0)<0){break a}d=D[a>>2];c=D[a+4>>2]-d>>2;b:{if(c>>>0>>0){ra(a,e-c|0);e=D[a+12>>2];break b}if(c>>>0<=e>>>0){break b}D[a+4>>2]=d+(e<<2)}if(!e){return 1}g=D[b+16>>2];c=D[b+20>>2];k=D[a>>2];l=D[b+8>>2];j=D[b+12>>2];f=0;while(1){if((c|0)>=(j|0)&g>>>0>=l>>>0|(c|0)>(j|0)){return 0}m=D[b>>2];i=E[m+g|0];d=g+1|0;c=d?c:c+1|0;g=d;D[b+16>>2]=d;D[b+20>>2]=c;d=i>>>2|0;h=0;c:{d:{e:{f:{n=i&3;switch(n|0){case 3:break f;case 0:break d;default:break e}}d=d+f|0;if(d>>>0>=e>>>0){return 0}qa(k+(f<<2)|0,0,(i&252)+4|0);f=d;break c}while(1){if((c|0)>=(j|0)&g>>>0>=l>>>0|(c|0)>(j|0)){break a}e=E[g+m|0];g=g+1|0;c=g?c:c+1|0;D[b+16>>2]=g;D[b+20>>2]=c;d=e<<(h<<3|6)|d;h=h+1|0;if((n|0)!=(h|0)){continue}break}}D[k+(f<<2)>>2]=d}e=D[a+12>>2];f=f+1|0;if(e>>>0>f>>>0){continue}break}b=a+16|0;j=D[a>>2];d=D[a+16>>2];c=D[a+20>>2]-d|0;g:{if(c>>>0<=16383){ra(b,4096-(c>>>2|0)|0);break g}if((c|0)==16384){break g}D[a+20>>2]=d+16384}c=a+28|0;f=D[c>>2];d=D[a+32>>2]-f>>3;h:{if(d>>>0>>0){db(c,e-d|0);f=D[c>>2];break h}if(d>>>0>e>>>0){D[a+32>>2]=(e<<3)+f}if(!e){break a}}g=D[b>>2];b=0;a=0;while(1){c=j+(b<<2)|0;h=D[c>>2];d=a;i=(b<<3)+f|0;D[i+4>>2]=a;D[i>>2]=h;c=D[c>>2];a=c+a|0;if(a>>>0>4096){break a}i:{if(a>>>0<=d>>>0){break i}h=0;i=c&7;if(i){while(1){D[g+(d<<2)>>2]=b;d=d+1|0;h=h+1|0;if((i|0)!=(h|0)){continue}break}}if(c-1>>>0<=6){break i}while(1){c=g+(d<<2)|0;D[c>>2]=b;D[c+28>>2]=b;D[c+24>>2]=b;D[c+20>>2]=b;D[c+16>>2]=b;D[c+12>>2]=b;D[c+8>>2]=b;D[c+4>>2]=b;d=d+8|0;if((d|0)!=(a|0)){continue}break}}b=b+1|0;if((e|0)!=(b|0)){continue}break}o=(a|0)==4096}return o}function mf(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0;f=$-32|0;$=f;e=f+8|0;c=$-80|0;$=c;a=D[b+36>>2];D[c+72>>2]=D[b+32>>2];D[c+76>>2]=a;d=D[b+28>>2];a=c- -64|0;D[a>>2]=D[b+24>>2];D[a+4>>2]=d;a=D[b+20>>2];D[c+56>>2]=D[b+16>>2];D[c+60>>2]=a;a=D[b+12>>2];D[c+48>>2]=D[b+8>>2];D[c+52>>2]=a;a=D[b+4>>2];D[c+40>>2]=D[b>>2];D[c+44>>2]=a;gc(c+8|0,c+40|0,c+24|0);a=D[c+8>>2];a:{if(a){D[e>>2]=a;a=e+4|0;if(B[c+23|0]>=0){b=c+8|4;e=D[b+4>>2];D[a>>2]=D[b>>2];D[a+4>>2]=e;D[a+8>>2]=D[b+8>>2];break a}ta(a,D[c+12>>2],D[c+16>>2]);if(B[c+23|0]>=0){break a}ma(D[c+12>>2]);break a}if(B[c+23|0]<0){ma(D[c+12>>2])}a=E[c+31|0];if(a>>>0>=2){b=na(32);a=E[1475]|E[1476]<<8;B[b+24|0]=a;B[b+25|0]=a>>>8;a=E[1471]|E[1472]<<8|(E[1473]<<16|E[1474]<<24);d=E[1467]|E[1468]<<8|(E[1469]<<16|E[1470]<<24);B[b+16|0]=d;B[b+17|0]=d>>>8;B[b+18|0]=d>>>16;B[b+19|0]=d>>>24;B[b+20|0]=a;B[b+21|0]=a>>>8;B[b+22|0]=a>>>16;B[b+23|0]=a>>>24;a=E[1463]|E[1464]<<8|(E[1465]<<16|E[1466]<<24);d=E[1459]|E[1460]<<8|(E[1461]<<16|E[1462]<<24);B[b+8|0]=d;B[b+9|0]=d>>>8;B[b+10|0]=d>>>16;B[b+11|0]=d>>>24;B[b+12|0]=a;B[b+13|0]=a>>>8;B[b+14|0]=a>>>16;B[b+15|0]=a>>>24;a=E[1455]|E[1456]<<8|(E[1457]<<16|E[1458]<<24);d=E[1451]|E[1452]<<8|(E[1453]<<16|E[1454]<<24);B[b|0]=d;B[b+1|0]=d>>>8;B[b+2|0]=d>>>16;B[b+3|0]=d>>>24;B[b+4|0]=a;B[b+5|0]=a>>>8;B[b+6|0]=a>>>16;B[b+7|0]=a>>>24;B[b+26|0]=0;D[c+8>>2]=-1;a=c+8|4;ta(a,b,26);d=B[c+23|0];D[e>>2]=D[c+8>>2];e=e+4|0;if((d|0)>=0){d=D[a+4>>2];D[e>>2]=D[a>>2];D[e+4>>2]=d;D[e+8>>2]=D[a+8>>2];ma(b);break a}ta(e,D[c+12>>2],D[c+16>>2]);if(B[c+23|0]<0){ma(D[c+12>>2])}ma(b);break a}D[e>>2]=0;D[e+4>>2]=0;D[e+16>>2]=a;D[e+8>>2]=0;D[e+12>>2]=0}$=c+80|0;a=D[f+24>>2];if(B[f+23|0]<0){ma(D[f+12>>2])}$=f+32|0;return a|0}function Mh(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0,g=0,h=0,i=0;e=$-32|0;$=e;a:{if((c|0)!=3){break a}c=D[a+4>>2];f=D[a+12>>2];D[e+24>>2]=-1;D[e+16>>2]=-1;D[e+20>>2]=1065353216;D[e+8>>2]=-1;D[e+12>>2]=-1;if((b|0)==-2){break a}i=D[D[D[c+4>>2]+8>>2]+(f<<2)>>2];if((ba[D[D[c>>2]+8>>2]](c)|0)==1){h=D[D[D[c+4>>2]+8>>2]+(f<<2)>>2];b:{if((ba[D[D[c>>2]+8>>2]](c)|0)!=1|b-1>>>0>5){break b}g=ba[D[D[c>>2]+36>>2]](c)|0;a=ba[D[D[c>>2]+44>>2]](c,f)|0;if(!g|!a){break b}f=ba[D[D[c>>2]+40>>2]](c,f)|0;c:{if(f){if((b|0)!=6){break b}b=D[c+44>>2];d=na(112);D[d+4>>2]=h;c=D[e+12>>2];D[d+8>>2]=D[e+8>>2];D[d+12>>2]=c;c=D[e+20>>2];D[d+16>>2]=D[e+16>>2];D[d+20>>2]=c;D[d+24>>2]=D[e+24>>2];D[d+40>>2]=a;c=a+12|0;D[d+36>>2]=c;D[d+32>>2]=f;D[d+28>>2]=b;D[d+68>>2]=a;D[d- -64>>2]=c;D[d+60>>2]=f;D[d+56>>2]=b;D[d+48>>2]=0;D[d+52>>2]=0;D[d>>2]=5928;D[d+88>>2]=1065353216;D[d+92>>2]=-1;D[d+80>>2]=-1;D[d+84>>2]=-1;D[d+72>>2]=1;D[d+76>>2]=-1;D[d+44>>2]=6492;a=d+96|0;break c}if((b|0)!=6){break b}b=D[c+44>>2];d=na(112);D[d+4>>2]=h;c=D[e+12>>2];D[d+8>>2]=D[e+8>>2];D[d+12>>2]=c;c=D[e+20>>2];D[d+16>>2]=D[e+16>>2];D[d+20>>2]=c;D[d+24>>2]=D[e+24>>2];D[d+40>>2]=a;c=a+12|0;D[d+36>>2]=c;D[d+32>>2]=g;D[d+28>>2]=b;D[d+68>>2]=a;D[d- -64>>2]=c;D[d+60>>2]=g;D[d+56>>2]=b;D[d+48>>2]=0;D[d+52>>2]=0;D[d>>2]=6932;D[d+88>>2]=1065353216;D[d+92>>2]=-1;D[d+80>>2]=-1;D[d+84>>2]=-1;D[d+72>>2]=1;D[d+76>>2]=-1;D[d+44>>2]=7352;a=d+96|0}D[a>>2]=0;D[a+4>>2]=0;B[a+5|0]=0;B[a+6|0]=0;B[a+7|0]=0;B[a+8|0]=0;B[a+9|0]=0;B[a+10|0]=0;B[a+11|0]=0;B[a+12|0]=0}if(d){break a}}d=na(28);D[d+4>>2]=i;a=D[e+12>>2];D[d+8>>2]=D[e+8>>2];D[d+12>>2]=a;a=D[e+20>>2];D[d+16>>2]=D[e+16>>2];D[d+20>>2]=a;D[d+24>>2]=D[e+24>>2];D[d>>2]=7764}$=e+32|0;return d|0}function Zc(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0;g=$-80|0;$=g;a:{if(!Ub(1,g+76|0,b)){break a}h=D[g+76>>2];if(!h){break a}d=D[b+8>>2];c=D[b+16>>2];d=fi(d-c|0,D[b+12>>2]-(D[b+20>>2]+(c>>>0>d>>>0)|0)|0,5,0);c=aa;if(d>>>0>>0&(c|0)<=0|(c|0)<0){break a}c=D[a+4>>2];d=D[a+8>>2]-c>>2;b:{if(d>>>0>>0){ra(a+4|0,h-d|0);break b}if(d>>>0<=h>>>0){break b}D[a+8>>2]=c+(h<<2)}r=a+16|0;j=D[a+32>>2];k=1;while(1){c:{e=D[b+12>>2];c=e;d=D[b+20>>2];p=D[b+8>>2];m=D[b+16>>2];if((c|0)<=(d|0)&p>>>0<=m>>>0|(c|0)<(d|0)){break c}q=D[b>>2];o=E[q+m|0];c=d;f=m+1|0;c=f?c:c+1|0;D[b+16>>2]=f;D[b+20>>2]=c;if((c|0)>=(e|0)&f>>>0>=p>>>0|(c|0)>(e|0)){break c}f=E[f+q|0];c=d;i=m+2|0;c=i>>>0<2?c+1|0:c;D[b+16>>2]=i;D[b+20>>2]=c;if((c|0)>=(e|0)&i>>>0>=p>>>0|(c|0)>(e|0)){break c}i=E[i+q|0];c=d;n=m+3|0;c=n>>>0<3?c+1|0:c;D[b+16>>2]=n;D[b+20>>2]=c;if((c|0)>=(e|0)&n>>>0>=p>>>0|(c|0)>(e|0)){break c}e=E[n+q|0];c=d;d=m+4|0;c=d>>>0<4?c+1|0:c;D[b+16>>2]=d;D[b+20>>2]=c;if(!i|((f-12&255)>>>0<245|o>>>0>4)){break c}c=mb(g+8|0);n=i<<24>>24;e=(e|0)!=0;d=f-1|0;if(d>>>0<=10){d=D[(d<<2)+10148>>2]}else{d=-1}d=J(d,i);$b(c,o,n,f,e,d,d>>31);if(!Ub(1,g+4|0,b)){break c}f=D[g+4>>2];D[g+68>>2]=f;d=_b(na(96),c);ba[D[D[j>>2]+8>>2]](j,D[j+12>>2]-D[j+8>>2]>>2,d);d=(D[j+12>>2]-D[j+8>>2]>>2)-1|0;o=d<<2;D[D[o+D[j+8>>2]>>2]+60>>2]=f;D[D[a+4>>2]+(l<<2)>>2]=d;k=D[a+16>>2];c=D[a+20>>2]-k>>2;d:{if((c|0)>(d|0)){break d}D[g>>2]=-1;d=d+1|0;if(d>>>0>c>>>0){xa(r,d-c|0,g);k=D[r>>2];break d}if(c>>>0<=d>>>0){break d}D[a+20>>2]=(d<<2)+k}D[k+o>>2]=l;l=l+1|0;k=l>>>0>>0;if((h|0)!=(l|0)){continue}}break}l=!k}$=g+80|0;return l&1}function Mc(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0;k=$-16|0;$=k;D[k+8>>2]=c;e=D[a+12>>2];d=D[a+8>>2];f=e-d>>2;a:{if((f|0)>(b|0)){break a}h=b+1|0;if(h>>>0>f>>>0){f=h-f|0;g=D[a+16>>2];d=D[a+12>>2];if(f>>>0<=g-d>>2>>>0){if(f){e=d;d=f<<2;d=qa(e,0,d)+d|0}D[a+12>>2]=d;break a}b:{c:{d:{h=D[a+8>>2];i=d-h>>2;e=i+f|0;if(e>>>0<1073741824){g=g-h|0;l=g>>1;g=g>>>0<2147483644?e>>>0>>0?l:e:1073741823;if(g){if(g>>>0>=1073741824){break d}j=na(g<<2)}e=(i<<2)+j|0;i=f<<2;f=qa(e,0,i);i=f+i|0;g=(g<<2)+j|0;if((d|0)==(h|0)){break c}while(1){d=d-4|0;f=D[d>>2];D[d>>2]=0;e=e-4|0;D[e>>2]=f;if((d|0)!=(h|0)){continue}break}D[a+16>>2]=g;f=D[a+12>>2];D[a+12>>2]=i;d=D[a+8>>2];D[a+8>>2]=e;if((d|0)==(f|0)){break b}while(1){f=f-4|0;e=D[f>>2];D[f>>2]=0;if(e){Aa(e)}if((d|0)!=(f|0)){continue}break}break b}pa();T()}sa();T()}D[a+16>>2]=g;D[a+12>>2]=i;D[a+8>>2]=f}if(d){ma(d)}break a}if(f>>>0<=h>>>0){break a}d=d+(h<<2)|0;if((d|0)!=(e|0)){while(1){e=e-4|0;c=D[e>>2];D[e>>2]=0;if(c){Aa(c)}if((d|0)!=(e|0)){continue}break}c=D[k+8>>2]}D[a+12>>2]=d}e:{f:{d=D[c+56>>2];g:{if((d|0)>4){break g}e=J(d,12)+a|0;d=D[e+24>>2];if((d|0)!=D[e+28>>2]){D[d>>2]=b;D[e+24>>2]=d+4;break g}h=D[e+20>>2];f=d-h|0;j=f>>2;d=j+1|0;if(d>>>0>=1073741824){break f}g=f>>1;g=f>>>0<2147483644?d>>>0>>0?g:d:1073741823;if(g){if(g>>>0>=1073741824){break e}d=na(g<<2)}else{d=0}j=d+(j<<2)|0;D[j>>2]=b;if((f|0)>0){oa(d,h,f)}D[e+20>>2]=d;D[e+24>>2]=j+4;D[e+28>>2]=d+(g<<2);if(!h){break g}ma(h)}D[c+60>>2]=b;a=D[a+8>>2];D[k+8>>2]=0;b=a+(b<<2)|0;a=D[b>>2];D[b>>2]=c;if(a){Aa(a)}a=D[k+8>>2];D[k+8>>2]=0;if(a){Aa(a)}$=k+16|0;return}pa();T()}sa();T()}function xd(a,b){var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0;i=$-16|0;$=i;D[i>>2]=b;g=-1;a:{if((b|0)==-1){D[i+4>>2]=-1;break a}c=b+1|0;D[i+4>>2]=(c>>>0)%3|0?c:b-2|0;if((b>>>0)%3|0){g=b-1|0;break a}g=b+2|0}D[i+8>>2]=g;n=(b>>>0)/3|0;b:{c:{d:{while(1){e:{f:{k=D[(l<<2)+i>>2];if((k|0)!=-1){c=D[D[D[a+8>>2]+12>>2]+(k<<2)>>2];if((c|0)!=-1){break f}}g=0;c=D[a+216>>2];if((c|0)==D[a+220>>2]){break e}while(1){f=J(g,144)+c|0;c=D[f+136>>2];d=D[f+140>>2];g:{if(c>>>0>>0){D[c>>2]=k;D[f+136>>2]=c+4;break g}h=D[f+132>>2];j=c-h|0;e=j>>2;c=e+1|0;if(c>>>0>=1073741824){break d}m=e<<2;d=d-h|0;e=d>>1;d=d>>>0<2147483644?c>>>0>>0?e:c:1073741823;if(d){if(d>>>0>=1073741824){break c}c=na(d<<2)}else{c=0}e=m+c|0;D[e>>2]=k;if((j|0)>0){oa(c,h,j)}D[f+132>>2]=c;D[f+136>>2]=e+4;D[f+140>>2]=c+(d<<2);if(!h){break g}ma(h)}g=g+1|0;c=D[a+216>>2];if(g>>>0<(D[a+220>>2]-c|0)/144>>>0){continue}break}break e}if((b|0)==-1|(c>>>0)/3>>>0>>0){break e}g=0;if(D[a+220>>2]==D[a+216>>2]){break e}while(1){h:{if(!za(D[a+368>>2]+(g<<4)|0)){break h}f=D[a+216>>2]+J(g,144)|0;c=D[f+136>>2];d=D[f+140>>2];if(c>>>0>>0){D[c>>2]=k;D[f+136>>2]=c+4;break h}h=D[f+132>>2];j=c-h|0;e=j>>2;c=e+1|0;if(c>>>0>=1073741824){break b}m=e<<2;d=d-h|0;e=d>>1;d=d>>>0<2147483644?c>>>0>>0?e:c:1073741823;if(d){if(d>>>0>=1073741824){break c}c=na(d<<2)}else{c=0}e=m+c|0;D[e>>2]=k;if((j|0)>0){oa(c,h,j)}D[f+132>>2]=c;D[f+136>>2]=e+4;D[f+140>>2]=c+(d<<2);if(!h){break h}ma(h)}g=g+1|0;if(g>>>0<(D[a+220>>2]-D[a+216>>2]|0)/144>>>0){continue}break}}l=l+1|0;if((l|0)!=3){continue}break}$=i+16|0;return 1}pa();T()}sa();T()}pa();T()}function Lf(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0;e=a;a:{if(D[a+12>>2]==(b|0)){break a}d=D[e+4>>2];a=D[e>>2];if((d|0)!=(a|0)){while(1){d=d-12|0;if(B[d+11|0]<0){ma(D[d>>2])}if((a|0)!=(d|0)){continue}break}}D[e+12>>2]=b;D[e+4>>2]=a;d=D[b>>2];j=b+4|0;if((d|0)==(j|0)){break a}while(1){a=D[e+4>>2];b:{if((a|0)!=D[e+8>>2]){c:{if(B[d+27|0]>=0){b=D[d+20>>2];D[a>>2]=D[d+16>>2];D[a+4>>2]=b;D[a+8>>2]=D[d+24>>2];break c}ta(a,D[d+16>>2],D[d+20>>2])}D[e+4>>2]=a+12;break b}h=0;d:{e:{f:{b=D[e+4>>2];a=D[e>>2];g=(b-a|0)/12|0;f=g+1|0;if(f>>>0<357913942){i=(D[e+8>>2]-a|0)/12|0;k=i<<1;f=i>>>0<178956970?f>>>0>>0?k:f:357913941;if(f){if(f>>>0>=357913942){break f}h=na(J(f,12))}i=J(f,12);f=J(g,12)+h|0;g:{if(B[d+27|0]>=0){g=D[d+20>>2];D[f>>2]=D[d+16>>2];D[f+4>>2]=g;D[f+8>>2]=D[d+24>>2];break g}ta(f,D[d+16>>2],D[d+20>>2]);b=D[e+4>>2];a=D[e>>2]}h=h+i|0;g=f+12|0;if((a|0)==(b|0)){break e}while(1){b=b-12|0;i=D[b+4>>2];f=f-12|0;D[f>>2]=D[b>>2];D[f+4>>2]=i;D[f+8>>2]=D[b+8>>2];D[b>>2]=0;D[b+4>>2]=0;D[b+8>>2]=0;if((a|0)!=(b|0)){continue}break}D[e+8>>2]=h;a=D[e+4>>2];D[e+4>>2]=g;b=D[e>>2];D[e>>2]=f;if((a|0)==(b|0)){break d}while(1){a=a-12|0;if(B[a+11|0]<0){ma(D[a>>2])}if((a|0)!=(b|0)){continue}break}break d}pa();T()}sa();T()}D[e+8>>2]=h;D[e+4>>2]=g;D[e>>2]=f}if(b){ma(b)}}a=D[d+4>>2];h:{if(a){while(1){d=a;a=D[a>>2];if(a){continue}break h}}while(1){a=d;d=D[d+8>>2];if((a|0)!=D[d>>2]){continue}break}}if((d|0)!=(j|0)){continue}break}}d=0;i:{if((c|0)<0){break i}a=D[e>>2];if((D[e+4>>2]-a|0)/12>>>0<=c>>>0){break i}a=a+J(c,12)|0;d=B[a+11|0]<0?D[a>>2]:a}return d|0}function yd(a,b){var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0;h=$-16|0;$=h;m=-1;a:{b:{c:{if(!Ga(1,h+12|0,b)){break c}k=D[h+12>>2];if(k){c=D[a+8>>2];if((D[c+4>>2]-D[c>>2]>>2>>>0)/3>>>0>>0){break c}while(1){if(!Ga(1,h+8|0,b)){break c}c=D[h+8>>2];if(!Ga(1,h+8|0,b)){break c}e=c+e|0;c=D[h+8>>2];if(e>>>0>>0){break c}f=e-c|0;c=D[a+40>>2];d:{if((c|0)!=D[a+44>>2]){D[c+4>>2]=e;D[c>>2]=f;D[a+40>>2]=c+12;k=D[h+12>>2];break d}d=D[a+36>>2];i=c-d|0;g=(i|0)/12|0;c=g+1|0;if(c>>>0>=357913942){break b}j=g<<1;j=g>>>0<178956970?c>>>0>>0?j:c:357913941;if(j){if(j>>>0>=357913942){break a}c=na(J(j,12))}else{c=0}g=c+J(g,12)|0;D[g+4>>2]=e;D[g>>2]=f;f=g+J((i|0)/-12|0,12)|0;if((i|0)>0){oa(f,d,i)}D[a+44>>2]=c+J(j,12);D[a+40>>2]=g+12;D[a+36>>2]=f;if(!d){break d}ma(d)}l=l+1|0;if(l>>>0>>0){continue}break}e=0;ec(b,0,0);if(k){while(1){c=E[b+36|0];d=F[D[a+4>>2]+36>>1];e:{f:{if(((d<<8|d>>>8)&65535)>>>0<=513){if(!c){break e}f=0;d=D[b+32>>2];l=d>>>3|0;i=D[b+24>>2];c=l+i|0;g=D[b+28>>2];g:{if(c>>>0>=g>>>0){c=d;break g}f=E[c|0];c=d+1|0;D[b+32>>2]=c;l=c>>>3|0;f=f>>>(d&7)&1}if(g>>>0>i+l>>>0){break f}break e}if(!c){break e}f=0;c=D[b+32>>2];d=D[b+24>>2]+(c>>>3|0)|0;if(d>>>0>=G[b+28>>2]){break e}f=E[d|0]>>>(c&7)&1}D[b+32>>2]=c+1}c=D[a+36>>2]+J(e,12)|0;B[c+8|0]=E[c+8|0]&254|f&1;e=e+1|0;if((k|0)!=(e|0)){continue}break}}B[b+36|0]=0;d=D[b+20>>2];a=0;c=D[b+32>>2]+7|0;a=c>>>0<7?1:a;e=a<<29|c>>>3;c=e+D[b+16>>2]|0;a=(a>>>3|0)+d|0;D[b+16>>2]=c;D[b+20>>2]=c>>>0>>0?a+1|0:a}m=D[b+16>>2]}$=h+16|0;return m}pa();T()}sa();T()}function tf(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0;a=0;g=$-16|0;$=g;i=B[c+24|0];k=D[b+80>>2];b=J(i,k);a:{b:{c:{e=D[c+28>>2];d:{if(!(!E[c+84|0]|(e|0)!=1&(e|0)!=2)){a=D[c+48>>2];c=D[D[c>>2]>>2];D[g+8>>2]=0;D[g>>2]=0;D[g+4>>2]=0;e=0;if(b){if((b|0)<0){break b}e=na(b);f=oa(e,a+c|0,b)+b|0}a=D[d>>2];if(a){D[d+4>>2]=a;ma(a)}D[d+8>>2]=f;D[d+4>>2]=f;D[d>>2]=e;a=1;break d}D[g+8>>2]=0;D[g>>2]=0;D[g+4>>2]=0;if(i){if((i|0)<0){break b}a=na(i);D[g>>2]=a;f=a+i|0;D[g+8>>2]=f;qa(a,0,i);D[g+4>>2]=f}h=D[d+4>>2];f=D[d>>2];e=h-f|0;e:{if(e>>>0>>0){l=b-e|0;j=D[d+8>>2];if(l>>>0<=j-h>>>0){m=d,n=qa(h,0,l)+l|0,D[m+4>>2]=n;break e}if((b|0)<0){break c}h=j-f|0;j=h<<1;j=h>>>0<1073741823?b>>>0>>0?j:b:2147483647;h=na(j);qa(h+e|0,0,l);if((e|0)>0){oa(h,f,e)}D[d+8>>2]=h+j;D[d+4>>2]=b+h;D[d>>2]=h;if(!f){break e}ma(f);break e}if(b>>>0>=e>>>0){break e}D[d+4>>2]=b+f}f:{if(!k){e=0;break f}if(!i){b=0;e=1;while(1){if(!Db(c,E[c+84|0]?b:D[D[c+68>>2]+(b<<2)>>2],B[c+24|0],a)){break f}b=b+1|0;e=k>>>0>b>>>0;if((b|0)!=(k|0)){continue}break}break f}h=i&-2;l=i&1;b=0;e=1;a=0;while(1){if(Db(c,E[c+84|0]?a:D[D[c+68>>2]+(a<<2)>>2],B[c+24|0],D[g>>2])){f=0;e=0;if((i|0)!=1){while(1){B[D[d>>2]+b|0]=E[D[g>>2]+f|0];B[(D[d>>2]+b|0)+1|0]=E[D[g>>2]+(f|1)|0];f=f+2|0;b=b+2|0;e=e+2|0;if((h|0)!=(e|0)){continue}break}}if(l){B[D[d>>2]+b|0]=E[D[g>>2]+f|0];b=b+1|0}a=a+1|0;e=k>>>0>a>>>0;if((a|0)!=(k|0)){continue}}break}a=D[g>>2]}if(a){ma(a)}a=e^1}$=g+16|0;a=a&1;break a}pa();T()}pa();T()}return a|0}function sf(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0;a=0;g=$-16|0;$=g;i=B[c+24|0];k=D[b+80>>2];b=J(i,k);a:{b:{c:{e=D[c+28>>2];d:{if(!(!E[c+84|0]|(e|0)!=1&(e|0)!=2)){a=D[c+48>>2];c=D[D[c>>2]>>2];D[g+8>>2]=0;D[g>>2]=0;D[g+4>>2]=0;e=0;if(b){if((b|0)<0){break b}e=na(b);f=oa(e,a+c|0,b)+b|0}a=D[d>>2];if(a){D[d+4>>2]=a;ma(a)}D[d+8>>2]=f;D[d+4>>2]=f;D[d>>2]=e;a=1;break d}D[g+8>>2]=0;D[g>>2]=0;D[g+4>>2]=0;if(i){if((i|0)<0){break b}a=na(i);D[g>>2]=a;f=a+i|0;D[g+8>>2]=f;qa(a,0,i);D[g+4>>2]=f}h=D[d+4>>2];f=D[d>>2];e=h-f|0;e:{if(e>>>0>>0){l=b-e|0;j=D[d+8>>2];if(l>>>0<=j-h>>>0){m=d,n=qa(h,0,l)+l|0,D[m+4>>2]=n;break e}if((b|0)<0){break c}h=j-f|0;j=h<<1;j=h>>>0<1073741823?b>>>0>>0?j:b:2147483647;h=na(j);qa(h+e|0,0,l);if((e|0)>0){oa(h,f,e)}D[d+8>>2]=h+j;D[d+4>>2]=b+h;D[d>>2]=h;if(!f){break e}ma(f);break e}if(b>>>0>=e>>>0){break e}D[d+4>>2]=b+f}f:{if(!k){e=0;break f}if(!i){b=0;e=1;while(1){if(!Cb(c,E[c+84|0]?b:D[D[c+68>>2]+(b<<2)>>2],B[c+24|0],a)){break f}b=b+1|0;e=k>>>0>b>>>0;if((b|0)!=(k|0)){continue}break}break f}h=i&-2;l=i&1;b=0;e=1;a=0;while(1){if(Cb(c,E[c+84|0]?a:D[D[c+68>>2]+(a<<2)>>2],B[c+24|0],D[g>>2])){f=0;e=0;if((i|0)!=1){while(1){B[D[d>>2]+b|0]=E[D[g>>2]+f|0];B[(D[d>>2]+b|0)+1|0]=E[D[g>>2]+(f|1)|0];f=f+2|0;b=b+2|0;e=e+2|0;if((h|0)!=(e|0)){continue}break}}if(l){B[D[d>>2]+b|0]=E[D[g>>2]+f|0];b=b+1|0}a=a+1|0;e=k>>>0>a>>>0;if((a|0)!=(k|0)){continue}}break}a=D[g>>2]}if(a){ma(a)}a=e^1}$=g+16|0;a=a&1;break a}pa();T()}pa();T()}return a|0}function Jb(a,b,c,d){var e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0;k=D[b+16>>2];g=D[c+4>>2]-k|0;e=g;f=D[c>>2]-k|0;D[c>>2]=f;D[c+4>>2]=e;j=D[b+16>>2];e=e>>31;h=(e^g)-e|0;e=f>>31;l=(j|0)>=(h+((e^f)-e|0)|0);a:{if(l){e=g;break a}b:{c:{if((f|0)>=0){i=1;h=1;if((g|0)>=0){break b}e=1;i=-1;h=-1;if(f){break c}break b}e=-1;i=-1;h=-1;if((g|0)<=0){break b}}i=(g|0)<=0?-1:1;h=e}e=f<<1;f=J(h,j);e=e-f|0;h=(J(i,h)|0)>=0;i=J(i,j);e=((h?0-e|0:e)+i|0)/2|0;D[c+4>>2]=e;j=f;f=(g<<1)-i|0;f=(j+(h?0-f|0:f)|0)/2|0;D[c>>2]=f}d:{e:{f:{g:{h:{i:{j:{if(f){if((f|0)<0){break j}if((e|0)>=0){break i}break f}if(e){break h}i=1;g=0;e=0;h=0;break d}i=1;if((e|0)>0){break g}h=(e|0)>0?253:0;g=e;e=f;break d}g=0-e|0;e=0-f|0;h=254;break e}if((e|0)<=0){break f}}e=0-e|0;g=f;h=253;break e}g=0-f|0;h=255}D[c>>2]=e;D[c+4>>2]=g;i=0}c=D[d+4>>2]+g|0;f=D[d>>2]+e|0;g=D[b+16>>2];k:{if((f|0)>(g|0)){f=f-D[b+4>>2]|0;break k}if((0-g|0)<=(f|0)){break k}f=D[b+4>>2]+f|0}l:{if((c|0)>(g|0)){c=c-D[b+4>>2]|0;break l}if((0-g|0)<=(c|0)){break l}c=D[b+4>>2]+c|0}m:{if(i){b=c;break m}b=c;n:{switch((h&3)-1|0){case 0:b=0-f|0;f=c;break m;case 1:b=0-c|0;f=0-f|0;break m;case 2:break n;default:break m}}b=f;f=0-c|0}o:{if(l){c=b;break o}p:{q:{if((f|0)>=0){c=1;e=1;if((b|0)>=0){break p}d=1;c=-1;e=-1;if(f){break q}break p}d=-1;c=-1;e=-1;if((b|0)<=0){break p}}c=(b|0)<=0?-1:1;e=d}d=f<<1;f=J(e,g);d=d-f|0;D[a>>2]=d;j=0-d|0;h=d;d=(J(c,e)|0)>=0;e=J(c,g);c=((d?j:h)+e|0)/2|0;b=(b<<1)-e|0;f=(f+(d?0-b|0:b)|0)/2|0}D[a>>2]=f+k;D[a+4>>2]=c+k}function uf(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0;a=0;h=$-16|0;$=h;j=D[b+80>>2];b=E[c+24|0];D[h+8>>2]=0;D[h>>2]=0;D[h+4>>2]=0;e=b<<24>>24;a:{b:{c:{d:{if(b){if((e|0)<0){break d}b=e<<2;a=na(b);D[h>>2]=a;g=a+b|0;D[h+8>>2]=g;b=a;k=e&7;if(k){while(1){D[b>>2]=-1073741824;b=b+4|0;f=f+1|0;if((k|0)!=(f|0)){continue}break}}if((e-1&1073741823)>>>0>=7){while(1){D[b+24>>2]=-1073741824;D[b+28>>2]=-1073741824;D[b+16>>2]=-1073741824;D[b+20>>2]=-1073741824;D[b+8>>2]=-1073741824;D[b+12>>2]=-1073741824;D[b>>2]=-1073741824;D[b+4>>2]=-1073741824;b=b+32|0;if((g|0)!=(b|0)){continue}break}}D[h+4>>2]=g}b=J(e,j);g=D[d>>2];f=D[d+4>>2]-g>>2;e:{if(b>>>0>f>>>0){ra(d,b-f|0);break e}if(b>>>0>=f>>>0){break e}D[d+4>>2]=g+(b<<2)}if(!j){break c}i=1;if((e|0)<=0){b=0;while(1){if(!nb(c,E[c+84|0]?b:D[D[c+68>>2]+(b<<2)>>2],B[c+24|0],a)){break c}b=b+1|0;i=j>>>0>b>>>0;if((b|0)!=(j|0)){continue}break}break c}o=e&-4;k=e&3;f=0;p=e-1>>>0<3;while(1){if(!nb(c,E[c+84|0]?l:D[D[c+68>>2]+(l<<2)>>2],B[c+24|0],a)){break c}n=D[d>>2];m=0;b=0;i=0;if(!p){while(1){e=(f<<2)+n|0;g=b<<2;H[e>>2]=H[g+a>>2];H[e+4>>2]=H[(g|4)+a>>2];H[e+8>>2]=H[(g|8)+a>>2];H[e+12>>2]=H[(g|12)+a>>2];b=b+4|0;f=f+4|0;i=i+4|0;if((o|0)!=(i|0)){continue}break}}if(k){while(1){H[(f<<2)+n>>2]=H[(b<<2)+a>>2];b=b+1|0;f=f+1|0;m=m+1|0;if((k|0)!=(m|0)){continue}break}}l=l+1|0;i=l>>>0>>0;if((j|0)!=(l|0)){continue}break}break b}pa();T()}if(!a){break a}}ma(a)}$=h+16|0;return(i^-1)&1}function rb(a,b,c,d){var e=0,f=0,g=0,h=0,i=0,j=0,k=0;i=d-c|0;if((i|0)<=0){return}a:{g=D[a+8>>2];h=D[a+4>>2];if((g-h|0)>=(i|0)){j=h-b|0;if((j|0)>=(i|0)){f=h;g=d;break a}f=h;g=c+j|0;if((g|0)!=(d|0)){e=g;while(1){B[f|0]=E[e|0];f=f+1|0;e=e+1|0;if((e|0)!=(d|0)){continue}break}}D[a+4>>2]=f;if((j|0)>0){break a}return}f=D[a>>2];e=(h-f|0)+i|0;if((e|0)>=0){j=b-f|0;g=g-f|0;k=g<<1;k=g>>>0<1073741823?e>>>0>>0?k:e:2147483647;if(k){g=na(k)}else{g=0}e=j+g|0;if((c|0)!=(d|0)){e=oa(e,c,i)+i|0}if((j|0)>0){oa(g,f,j)}if((b|0)!=(h|0)){d=(b^-1)+h|0;f=h-b&7;if(f){c=0;while(1){B[e|0]=E[b|0];e=e+1|0;b=b+1|0;c=c+1|0;if((f|0)!=(c|0)){continue}break}}if(d>>>0>=7){while(1){B[e|0]=E[b|0];B[e+1|0]=E[b+1|0];B[e+2|0]=E[b+2|0];B[e+3|0]=E[b+3|0];B[e+4|0]=E[b+4|0];B[e+5|0]=E[b+5|0];B[e+6|0]=E[b+6|0];B[e+7|0]=E[b+7|0];e=e+8|0;b=b+8|0;if((h|0)!=(b|0)){continue}break}}f=D[a>>2]}D[a+8>>2]=g+k;D[a+4>>2]=e;D[a>>2]=g;if(f){ma(f)}return}pa();T()}e=f;d=e-i|0;if(h>>>0>d>>>0){while(1){B[e|0]=E[d|0];e=e+1|0;d=d+1|0;if(h>>>0>d>>>0){continue}break}}D[a+4>>2]=e;a=b+i|0;if((a|0)!=(f|0)){a=f-a|0;Ra(f-a|0,b,a)}if((c|0)==(g|0)){return}a=(c^-1)+g|0;f=g-c&7;b:{if(!f){e=b;break b}d=0;e=b;while(1){B[e|0]=E[c|0];e=e+1|0;c=c+1|0;d=d+1|0;if((f|0)!=(d|0)){continue}break}}if(a>>>0<7){return}while(1){B[e|0]=E[c|0];B[e+1|0]=E[c+1|0];B[e+2|0]=E[c+2|0];B[e+3|0]=E[c+3|0];B[e+4|0]=E[c+4|0];B[e+5|0]=E[c+5|0];B[e+6|0]=E[c+6|0];B[e+7|0]=E[c+7|0];e=e+8|0;c=c+8|0;if((g|0)!=(c|0)){continue}break}}function Qh(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0;D[a+8>>2]=e;m=a+32|0;h=D[m>>2];g=D[a+36>>2]-h>>2;a:{if(g>>>0>>0){ra(m,e-g|0);f=D[a+8>>2];break a}f=e;if(f>>>0>=g>>>0){break a}D[a+36>>2]=h+(e<<2);f=e}g=(e&1073741823)!=(e|0)?-1:e<<2;n=qa(na(g),0,g);b:{if((f|0)<=0){break b}h=D[a+32>>2];while(1){f=i<<2;g=D[f+n>>2];j=D[a+16>>2];c:{if((g|0)>(j|0)){D[f+h>>2]=j;break c}f=f+h|0;j=D[a+12>>2];if((j|0)>(g|0)){D[f>>2]=j;break c}D[f>>2]=g}f=D[a+8>>2];i=i+1|0;if((f|0)>(i|0)){continue}break}if((f|0)<=0){break b}i=0;while(1){g=i<<2;f=g+c|0;g=D[b+g>>2]+D[g+h>>2]|0;D[f>>2]=g;d:{if((g|0)>D[a+16>>2]){g=g-D[a+20>>2]|0}else{if((g|0)>=D[a+12>>2]){break d}g=g+D[a+20>>2]|0}D[f>>2]=g}f=D[a+8>>2];i=i+1|0;if((f|0)>(i|0)){continue}break}}if(!((d|0)<=(e|0)|(f|0)<=0)){p=0-e<<2;g=e;while(1){e:{if((f|0)<=0){break e}l=g<<2;o=l+c|0;q=o+p|0;j=D[m>>2];i=0;while(1){f=i<<2;h=D[f+q>>2];k=D[a+16>>2];f:{if((h|0)>(k|0)){D[f+j>>2]=k;break f}f=f+j|0;k=D[a+12>>2];if((k|0)>(h|0)){D[f>>2]=k;break f}D[f>>2]=h}f=D[a+8>>2];i=i+1|0;if((f|0)>(i|0)){continue}break}i=0;if((f|0)<=0){break e}l=b+l|0;while(1){h=i<<2;f=h+o|0;h=D[h+l>>2]+D[h+j>>2]|0;D[f>>2]=h;g:{if((h|0)>D[a+16>>2]){h=h-D[a+20>>2]|0}else{if((h|0)>=D[a+12>>2]){break g}h=h+D[a+20>>2]|0}D[f>>2]=h}f=D[a+8>>2];i=i+1|0;if((f|0)>(i|0)){continue}break}}g=e+g|0;if((g|0)<(d|0)){continue}break}}ma(n);return 1}function pf(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0;g=$-16|0;$=g;j=D[b+80>>2];a=B[c+24|0];b=J(j,a);a:{b:{c:{d:{e=D[c+28>>2];if(!(!E[c+84|0]|(e|0)!=5&(e|0)!=6)){e=D[c+48>>2];c=D[D[c>>2]>>2];D[g+8>>2]=0;D[g>>2]=0;D[g+4>>2]=0;if(b){if((b|0)<0){break d}a=b<<2;f=na(a);i=oa(f,c+e|0,a)+a|0}a=D[d>>2];if(a){D[d+4>>2]=a;ma(a)}D[d+8>>2]=i;D[d+4>>2]=i;D[d>>2]=f;a=1;break a}D[g+8>>2]=0;D[g>>2]=0;D[g+4>>2]=0;if(a){if((a|0)<0){break d}e=a<<2;f=na(e);D[g>>2]=f;h=e+f|0;D[g+8>>2]=h;qa(f,0,e);D[g+4>>2]=h}h=D[d>>2];e=D[d+4>>2]-h>>2;e:{if(e>>>0>>0){ra(d,b-e|0);break e}if(b>>>0>=e>>>0){break e}D[d+4>>2]=h+(b<<2)}if(!j){b=0;break c}if(!a){a=0;b=1;while(1){if(!yb(c,E[c+84|0]?a:D[D[c+68>>2]+(a<<2)>>2],B[c+24|0],f)){break c}a=a+1|0;b=j>>>0>a>>>0;if((a|0)!=(j|0)){continue}break}break c}o=a&-4;m=a&3;p=a-1>>>0<3;b=1;e=0;while(1){if(!yb(c,E[c+84|0]?e:D[D[c+68>>2]+(e<<2)>>2],B[c+24|0],f)){break c}n=D[d>>2];l=0;a=0;b=0;if(!p){while(1){h=(i<<2)+n|0;k=a<<2;D[h>>2]=D[k+f>>2];D[h+4>>2]=D[(k|4)+f>>2];D[h+8>>2]=D[(k|8)+f>>2];D[h+12>>2]=D[(k|12)+f>>2];a=a+4|0;i=i+4|0;b=b+4|0;if((o|0)!=(b|0)){continue}break}}if(m){while(1){D[(i<<2)+n>>2]=D[(a<<2)+f>>2];a=a+1|0;i=i+1|0;l=l+1|0;if((l|0)!=(m|0)){continue}break}}e=e+1|0;b=j>>>0>e>>>0;if((e|0)!=(j|0)){continue}break}a=e>>>0>=j>>>0;break b}pa();T()}a=!b;if(!f){break a}}ma(f)}$=g+16|0;return a&1}function ad(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0;g=$-16|0;$=g;j=D[b+80>>2];a=B[c+24|0];b=J(j,a);a:{b:{c:{d:{e=D[c+28>>2];if(!(!E[c+84|0]|(e|0)!=5&(e|0)!=6)){e=D[c+48>>2];c=D[D[c>>2]>>2];D[g+8>>2]=0;D[g>>2]=0;D[g+4>>2]=0;if(b){if((b|0)<0){break d}a=b<<2;f=na(a);i=oa(f,c+e|0,a)+a|0}a=D[d>>2];if(a){D[d+4>>2]=a;ma(a)}D[d+8>>2]=i;D[d+4>>2]=i;D[d>>2]=f;a=1;break a}D[g+8>>2]=0;D[g>>2]=0;D[g+4>>2]=0;if(a){if((a|0)<0){break d}e=a<<2;f=na(e);D[g>>2]=f;h=e+f|0;D[g+8>>2]=h;qa(f,0,e);D[g+4>>2]=h}h=D[d>>2];e=D[d+4>>2]-h>>2;e:{if(e>>>0>>0){ra(d,b-e|0);break e}if(b>>>0>=e>>>0){break e}D[d+4>>2]=h+(b<<2)}if(!j){b=0;break c}if(!a){a=0;b=1;while(1){if(!zb(c,E[c+84|0]?a:D[D[c+68>>2]+(a<<2)>>2],B[c+24|0],f)){break c}a=a+1|0;b=j>>>0>a>>>0;if((a|0)!=(j|0)){continue}break}break c}o=a&-4;m=a&3;p=a-1>>>0<3;b=1;e=0;while(1){if(!zb(c,E[c+84|0]?e:D[D[c+68>>2]+(e<<2)>>2],B[c+24|0],f)){break c}n=D[d>>2];l=0;a=0;b=0;if(!p){while(1){h=(i<<2)+n|0;k=a<<2;D[h>>2]=D[k+f>>2];D[h+4>>2]=D[(k|4)+f>>2];D[h+8>>2]=D[(k|8)+f>>2];D[h+12>>2]=D[(k|12)+f>>2];a=a+4|0;i=i+4|0;b=b+4|0;if((o|0)!=(b|0)){continue}break}}if(m){while(1){D[(i<<2)+n>>2]=D[(a<<2)+f>>2];a=a+1|0;i=i+1|0;l=l+1|0;if((l|0)!=(m|0)){continue}break}}e=e+1|0;b=j>>>0>e>>>0;if((e|0)!=(j|0)){continue}break}a=e>>>0>=j>>>0;break b}pa();T()}a=!b;if(!f){break a}}ma(f)}$=g+16|0;return a&1}function rf(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0;g=$-16|0;$=g;j=D[b+80>>2];a=B[c+24|0];b=J(j,a);a:{b:{c:{d:{e=D[c+28>>2];if(!(!E[c+84|0]|(e|0)!=3&(e|0)!=4)){e=D[c+48>>2];c=D[D[c>>2]>>2];D[g+8>>2]=0;D[g>>2]=0;D[g+4>>2]=0;if(b){if((b|0)<0){break d}a=b<<1;f=na(a);i=oa(f,c+e|0,a)+a|0}a=D[d>>2];if(a){D[d+4>>2]=a;ma(a)}D[d+8>>2]=i;D[d+4>>2]=i;D[d>>2]=f;a=1;break a}D[g+8>>2]=0;D[g>>2]=0;D[g+4>>2]=0;if(a){if((a|0)<0){break d}e=a<<1;f=na(e);D[g>>2]=f;h=e+f|0;D[g+8>>2]=h;qa(f,0,e);D[g+4>>2]=h}h=D[d>>2];e=D[d+4>>2]-h>>1;e:{if(e>>>0>>0){id(d,b-e|0);break e}if(b>>>0>=e>>>0){break e}D[d+4>>2]=h+(b<<1)}if(!j){b=0;break c}if(!a){a=0;b=1;while(1){if(!Bb(c,E[c+84|0]?a:D[D[c+68>>2]+(a<<2)>>2],B[c+24|0],f)){break c}a=a+1|0;b=j>>>0>a>>>0;if((a|0)!=(j|0)){continue}break}break c}o=a&-4;m=a&3;p=a-1>>>0<3;b=1;e=0;while(1){if(!Bb(c,E[c+84|0]?e:D[D[c+68>>2]+(e<<2)>>2],B[c+24|0],f)){break c}n=D[d>>2];l=0;a=0;b=0;if(!p){while(1){h=(i<<1)+n|0;k=a<<1;C[h>>1]=F[k+f>>1];C[h+2>>1]=F[(k|2)+f>>1];C[h+4>>1]=F[(k|4)+f>>1];C[h+6>>1]=F[(k|6)+f>>1];a=a+4|0;i=i+4|0;b=b+4|0;if((o|0)!=(b|0)){continue}break}}if(m){while(1){C[(i<<1)+n>>1]=F[(a<<1)+f>>1];a=a+1|0;i=i+1|0;l=l+1|0;if((l|0)!=(m|0)){continue}break}}e=e+1|0;b=j>>>0>e>>>0;if((e|0)!=(j|0)){continue}break}a=e>>>0>=j>>>0;break b}pa();T()}a=!b;if(!f){break a}}ma(f)}$=g+16|0;return a&1}function qf(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0;g=$-16|0;$=g;j=D[b+80>>2];a=B[c+24|0];b=J(j,a);a:{b:{c:{d:{e=D[c+28>>2];if(!(!E[c+84|0]|(e|0)!=3&(e|0)!=4)){e=D[c+48>>2];c=D[D[c>>2]>>2];D[g+8>>2]=0;D[g>>2]=0;D[g+4>>2]=0;if(b){if((b|0)<0){break d}a=b<<1;f=na(a);i=oa(f,c+e|0,a)+a|0}a=D[d>>2];if(a){D[d+4>>2]=a;ma(a)}D[d+8>>2]=i;D[d+4>>2]=i;D[d>>2]=f;a=1;break a}D[g+8>>2]=0;D[g>>2]=0;D[g+4>>2]=0;if(a){if((a|0)<0){break d}e=a<<1;f=na(e);D[g>>2]=f;h=e+f|0;D[g+8>>2]=h;qa(f,0,e);D[g+4>>2]=h}h=D[d>>2];e=D[d+4>>2]-h>>1;e:{if(e>>>0>>0){id(d,b-e|0);break e}if(b>>>0>=e>>>0){break e}D[d+4>>2]=h+(b<<1)}if(!j){b=0;break c}if(!a){a=0;b=1;while(1){if(!Ab(c,E[c+84|0]?a:D[D[c+68>>2]+(a<<2)>>2],B[c+24|0],f)){break c}a=a+1|0;b=j>>>0>a>>>0;if((a|0)!=(j|0)){continue}break}break c}o=a&-4;m=a&3;p=a-1>>>0<3;b=1;e=0;while(1){if(!Ab(c,E[c+84|0]?e:D[D[c+68>>2]+(e<<2)>>2],B[c+24|0],f)){break c}n=D[d>>2];l=0;a=0;b=0;if(!p){while(1){h=(i<<1)+n|0;k=a<<1;C[h>>1]=F[k+f>>1];C[h+2>>1]=F[(k|2)+f>>1];C[h+4>>1]=F[(k|4)+f>>1];C[h+6>>1]=F[(k|6)+f>>1];a=a+4|0;i=i+4|0;b=b+4|0;if((o|0)!=(b|0)){continue}break}}if(m){while(1){C[(i<<1)+n>>1]=F[(a<<1)+f>>1];a=a+1|0;i=i+1|0;l=l+1|0;if((l|0)!=(m|0)){continue}break}}e=e+1|0;b=j>>>0>e>>>0;if((e|0)!=(j|0)){continue}break}a=e>>>0>=j>>>0;break b}pa();T()}a=!b;if(!f){break a}}ma(f)}$=g+16|0;return a&1}function lc(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0;j=$-16|0;$=j;c=D[b+20>>2];d=D[b+16>>2];g=d+4|0;c=g>>>0<4?c+1|0:c;e=D[b+12>>2];a:{if((e|0)<=(c|0)&g>>>0>G[b+8>>2]|(c|0)>(e|0)){break a}d=d+D[b>>2]|0;d=E[d|0]|E[d+1|0]<<8|(E[d+2|0]<<16|E[d+3|0]<<24);D[b+16>>2]=g;D[b+20>>2]=c;if((d|0)<0){break a}Oa(a+76|0,d);c=j;D[c>>2]=0;D[c+4>>2]=0;B[c+5|0]=0;B[c+6|0]=0;B[c+7|0]=0;B[c+8|0]=0;B[c+9|0]=0;B[c+10|0]=0;B[c+11|0]=0;B[c+12|0]=0;b:{if(!Da(c,b)){break b}if(d){e=1;while(1){f=1<>2]+(h>>>3&536870908)|0;e=e^i;if(e&1){f=D[g>>2]&(f^-1)}else{f=f|D[g>>2]}e=e^1;D[g>>2]=f;h=h+1|0;if((d|0)!=(h|0)){continue}break}}h=0;d=D[b+12>>2];g=d;c=D[b+20>>2];e=c;f=D[b+16>>2];i=f+4|0;c=i>>>0<4?c+1|0:c;k=D[b+8>>2];if(k>>>0>>0&(c|0)>=(d|0)|(c|0)>(d|0)){break b}l=D[b>>2];d=l+f|0;d=E[d|0]|E[d+1|0]<<8|(E[d+2|0]<<16|E[d+3|0]<<24);D[b+16>>2]=i;D[b+20>>2]=c;c=e;e=f+8|0;c=e>>>0<8?c+1|0:c;f=e;e=c;if(f>>>0>k>>>0&(c|0)>=(g|0)|(c|0)>(g|0)){break b}c=i+l|0;c=E[c|0]|E[c+1|0]<<8|(E[c+2|0]<<16|E[c+3|0]<<24);D[b+16>>2]=f;D[b+20>>2]=e;if((c|0)<(d|0)){break b}D[a+16>>2]=c;D[a+12>>2]=d;b=(c>>31)-((d>>31)+(c>>>0>>0)|0)|0;c=c-d|0;if(!b&c>>>0>2147483646|b){break b}h=1;b=c+1|0;D[a+20>>2]=b;c=b>>>1|0;D[a+24>>2]=c;D[a+28>>2]=0-c;if(b&1){break b}D[a+24>>2]=c-1}}$=j+16|0;return h|0}function hc(a,b){var c=0,d=0,e=0,f=0,g=0;f=-1;d=-1;a:{if((b|0)==-1){break a}d=b+1|0;f=(d>>>0)%3|0?d:b-2|0;d=b-1|0;if((b>>>0)%3|0){break a}d=b+2|0}b:{c:{d:{switch(D[a+168>>2]){case 0:case 1:e=D[a+148>>2];c=1;b=D[a+156>>2];g=b+(((f|0)!=-1?D[D[e>>2]+(f<<2)>>2]:-1)<<2)|0;D[g>>2]=D[g>>2]+1;b=(((d|0)!=-1?D[D[e>>2]+(d<<2)>>2]:-1)<<2)+b|0;break c;case 5:e=D[a+148>>2];c=-1;c=((b|0)!=-1?D[D[e>>2]+(b<<2)>>2]:c)<<2;b=D[a+156>>2];c=c+b|0;D[c>>2]=D[c>>2]+1;c=(((f|0)!=-1?D[D[e>>2]+(f<<2)>>2]:-1)<<2)+b|0;D[c>>2]=D[c>>2]+1;c=2;b=(((d|0)!=-1?D[D[e>>2]+(d<<2)>>2]:-1)<<2)+b|0;break c;case 3:e=D[a+148>>2];c=-1;c=((b|0)!=-1?D[D[e>>2]+(b<<2)>>2]:c)<<2;b=D[a+156>>2];c=c+b|0;D[c>>2]=D[c>>2]+1;c=(((f|0)!=-1?D[D[e>>2]+(f<<2)>>2]:-1)<<2)+b|0;D[c>>2]=D[c>>2]+2;c=1;b=(((d|0)!=-1?D[D[e>>2]+(d<<2)>>2]:-1)<<2)+b|0;break c;case 7:break d;default:break b}}e=D[a+148>>2];c=-1;c=((b|0)!=-1?D[D[e>>2]+(b<<2)>>2]:c)<<2;b=D[a+156>>2];c=c+b|0;D[c>>2]=D[c>>2]+2;c=(((f|0)!=-1?D[D[e>>2]+(f<<2)>>2]:-1)<<2)+b|0;D[c>>2]=D[c>>2]+2;c=2;b=(((d|0)!=-1?D[D[e>>2]+(d<<2)>>2]:-1)<<2)+b|0}D[b>>2]=D[b>>2]+c}c=a;b=D[D[a+156>>2]+(((f|0)!=-1?D[D[D[a+148>>2]>>2]+(f<<2)>>2]:-1)<<2)>>2];d=D[a+180>>2];a=D[a+176>>2];D[c+172>>2]=(a|0)>(b|0)?0:((b|0)<(d|0)?b:d)-a|0}function zg(a){a=a|0;var b=0,c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0;a:{c=D[a+32>>2];e=D[c+8>>2];f=D[c+12>>2];d=D[c+20>>2];g=e;e=D[c+16>>2];b=0;b:{if((f|0)<=(d|0)&g>>>0<=e>>>0|(d|0)>(f|0)){break b}g=E[e+D[c>>2]|0];f=e+1|0;d=f?d:d+1|0;D[c+16>>2]=f;D[c+20>>2]=d;c:{if(!g){break c}while(1){if(ba[D[D[a>>2]+16>>2]](a,b)|0){b=b+1|0;if((g|0)!=(b|0)){continue}break c}break}return 0}b=D[a+8>>2];d=D[a+12>>2];if((b|0)!=(d|0)){while(1){c=D[b>>2];if(!(ba[D[D[c>>2]+8>>2]](c,a,D[a+4>>2])|0)){break a}b=b+4|0;if((d|0)!=(b|0)){continue}break}}d:{if(!g){break d}b=0;while(1){c=D[D[a+8>>2]+(b<<2)>>2];if(!(ba[D[D[c>>2]+12>>2]](c,D[a+32>>2])|0)){break a}b=b+1|0;if((g|0)!=(b|0)){continue}break}if(!g){break d}e=a+20|0;while(1){b=0;f=h<<2;c=D[f+D[a+8>>2]>>2];d=ba[D[D[c>>2]+24>>2]](c)|0;if((d|0)>0){while(1){c=D[D[a+8>>2]+f>>2];k=ba[D[D[c>>2]+20>>2]](c,b)|0;i=D[a+20>>2];j=D[a+24>>2]-i>>2;e:{if(k>>>0>>0){break e}c=k+1|0;if(c>>>0>j>>>0){ra(e,c-j|0);i=D[e>>2];break e}if(c>>>0>=j>>>0){break e}D[a+24>>2]=(c<<2)+i}D[(k<<2)+i>>2]=h;b=b+1|0;if((d|0)!=(b|0)){continue}break}}h=h+1|0;if((g|0)!=(h|0)){continue}break}}b=0;if(!(ba[D[D[a>>2]+28>>2]](a)|0)){break b}b=ba[D[D[a>>2]+32>>2]](a)|0}return b|0}return 0}function Vb(a,b,c){var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0;d=D[a+8>>2];e=D[a>>2];if(d-e>>2>>>0>=b>>>0){g=D[a+4>>2];h=g-e>>2;f=b>>>0>h>>>0?h:b;a:{if(!f){break a}k=f-1|0;i=f&7;b:{if(!i){d=e;break b}d=e;while(1){D[d>>2]=D[c>>2];f=f-1|0;d=d+4|0;j=j+1|0;if((j|0)!=(i|0)){continue}break}}if(k>>>0<7){break a}while(1){D[d>>2]=D[c>>2];D[d+4>>2]=D[c>>2];D[d+8>>2]=D[c>>2];D[d+12>>2]=D[c>>2];D[d+16>>2]=D[c>>2];D[d+20>>2]=D[c>>2];D[d+24>>2]=D[c>>2];D[d+28>>2]=D[c>>2];d=d+32|0;f=f-8|0;if(f){continue}break}}if(b>>>0>h>>>0){b=(b-h<<2)+g|0;while(1){D[g>>2]=D[c>>2];g=g+4|0;if((b|0)!=(g|0)){continue}break}D[a+4>>2]=b;return}D[a+4>>2]=e+(b<<2);return}if(e){D[a+4>>2]=e;ma(e);D[a+8>>2]=0;D[a>>2]=0;D[a+4>>2]=0;d=0}c:{if(b>>>0>=1073741824){break c}e=d>>1;d=d>>>0<2147483644?b>>>0>>0?e:b:1073741823;if(d>>>0>=1073741824){break c}d=d<<2;e=na(d);D[a>>2]=e;D[a+8>>2]=d+e;c=D[c>>2];d=e;f=b&7;if(f){while(1){D[d>>2]=c;d=d+4|0;g=g+1|0;if((f|0)!=(g|0)){continue}break}}e=e+(b<<2)|0;if((b-1&1073741823)>>>0>=7){while(1){D[d+28>>2]=c;D[d+24>>2]=c;D[d+20>>2]=c;D[d+16>>2]=c;D[d+12>>2]=c;D[d+8>>2]=c;D[d+4>>2]=c;D[d>>2]=c;d=d+32|0;if((e|0)!=(d|0)){continue}break}}D[a+4>>2]=e;return}pa();T()}function Ue(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0;Mc(a,b,c);c=D[a+84>>2];d=D[a+88>>2]-c>>2;a:{if((d|0)>(b|0)){break a}b=b+1|0;if(b>>>0>d>>>0){b:{d=b-d|0;e=D[a+92>>2];c=D[a+88>>2];if(d>>>0<=e-c>>2>>>0){c:{if(!d){break c}b=c;f=d&7;if(f){while(1){D[b>>2]=1;b=b+4|0;g=g+1|0;if((f|0)!=(g|0)){continue}break}}c=(d<<2)+c|0;if((d-1&1073741823)>>>0<7){break c}while(1){D[b+24>>2]=1;D[b+28>>2]=1;D[b+16>>2]=1;D[b+20>>2]=1;D[b+8>>2]=1;D[b+12>>2]=1;D[b>>2]=1;D[b+4>>2]=1;b=b+32|0;if((c|0)!=(b|0)){continue}break}}D[a+88>>2]=c;break b}d:{f=D[a+84>>2];j=c-f|0;c=j>>2;b=c+d|0;if(b>>>0<1073741824){e=e-f|0;h=e>>1;e=e>>>0<2147483644?b>>>0>>0?h:b:1073741823;if(e){if(e>>>0>=1073741824){break d}i=na(e<<2)}c=(c<<2)+i|0;b=c;h=d&7;if(h){b=c;while(1){D[b>>2]=1;b=b+4|0;g=g+1|0;if((h|0)!=(g|0)){continue}break}}c=c+(d<<2)|0;if((d-1&1073741823)>>>0>=7){while(1){D[b+24>>2]=1;D[b+28>>2]=1;D[b+16>>2]=1;D[b+20>>2]=1;D[b+8>>2]=1;D[b+12>>2]=1;D[b>>2]=1;D[b+4>>2]=1;b=b+32|0;if((c|0)!=(b|0)){continue}break}}if((j|0)>0){oa(i,f,j)}D[a+92>>2]=(e<<2)+i;D[a+88>>2]=c;D[a+84>>2]=i;if(f){ma(f)}break b}pa();T()}sa();T()}return}if(b>>>0>=d>>>0){break a}D[a+88>>2]=c+(b<<2)}}function oa(a,b,c){var d=0,e=0,f=0;if(c>>>0>=512){_(a|0,b|0,c|0);return a}e=a+c|0;a:{if(!((a^b)&3)){b:{if(!(a&3)){c=a;break b}if(!c){c=a;break b}c=a;while(1){B[c|0]=E[b|0];b=b+1|0;c=c+1|0;if(!(c&3)){break b}if(c>>>0>>0){continue}break}}d=e&-4;c:{if(d>>>0<64){break c}f=d+-64|0;if(f>>>0>>0){break c}while(1){D[c>>2]=D[b>>2];D[c+4>>2]=D[b+4>>2];D[c+8>>2]=D[b+8>>2];D[c+12>>2]=D[b+12>>2];D[c+16>>2]=D[b+16>>2];D[c+20>>2]=D[b+20>>2];D[c+24>>2]=D[b+24>>2];D[c+28>>2]=D[b+28>>2];D[c+32>>2]=D[b+32>>2];D[c+36>>2]=D[b+36>>2];D[c+40>>2]=D[b+40>>2];D[c+44>>2]=D[b+44>>2];D[c+48>>2]=D[b+48>>2];D[c+52>>2]=D[b+52>>2];D[c+56>>2]=D[b+56>>2];D[c+60>>2]=D[b+60>>2];b=b- -64|0;c=c- -64|0;if(f>>>0>=c>>>0){continue}break}}if(c>>>0>=d>>>0){break a}while(1){D[c>>2]=D[b>>2];b=b+4|0;c=c+4|0;if(d>>>0>c>>>0){continue}break}break a}if(e>>>0<4){c=a;break a}d=e-4|0;if(d>>>0>>0){c=a;break a}c=a;while(1){B[c|0]=E[b|0];B[c+1|0]=E[b+1|0];B[c+2|0]=E[b+2|0];B[c+3|0]=E[b+3|0];b=b+4|0;c=c+4|0;if(d>>>0>=c>>>0){continue}break}}if(c>>>0>>0){while(1){B[c|0]=E[b|0];b=b+1|0;c=c+1|0;if((e|0)!=(c|0)){continue}break}}return a}function xa(a,b,c){var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0;f=D[a+8>>2];e=D[a+4>>2];if(f-e>>2>>>0>=b>>>0){a:{if(!b){break a}d=e;g=b&7;if(g){while(1){D[d>>2]=D[c>>2];d=d+4|0;h=h+1|0;if((g|0)!=(h|0)){continue}break}}e=(b<<2)+e|0;if((b-1&1073741823)>>>0<7){break a}while(1){D[d>>2]=D[c>>2];D[d+4>>2]=D[c>>2];D[d+8>>2]=D[c>>2];D[d+12>>2]=D[c>>2];D[d+16>>2]=D[c>>2];D[d+20>>2]=D[c>>2];D[d+24>>2]=D[c>>2];D[d+28>>2]=D[c>>2];d=d+32|0;if((e|0)!=(d|0)){continue}break}}D[a+4>>2]=e;return}b:{g=D[a>>2];k=e-g|0;e=k>>2;d=e+b|0;if(d>>>0<1073741824){f=f-g|0;i=f>>1;f=f>>>0<2147483644?d>>>0>>0?i:d:1073741823;if(f){if(f>>>0>=1073741824){break b}j=na(f<<2)}e=(e<<2)+j|0;d=e;i=b&7;if(i){d=e;while(1){D[d>>2]=D[c>>2];d=d+4|0;h=h+1|0;if((i|0)!=(h|0)){continue}break}}e=e+(b<<2)|0;if((b-1&1073741823)>>>0>=7){while(1){D[d>>2]=D[c>>2];D[d+4>>2]=D[c>>2];D[d+8>>2]=D[c>>2];D[d+12>>2]=D[c>>2];D[d+16>>2]=D[c>>2];D[d+20>>2]=D[c>>2];D[d+24>>2]=D[c>>2];D[d+28>>2]=D[c>>2];d=d+32|0;if((e|0)!=(d|0)){continue}break}}if((k|0)>0){oa(j,g,k)}D[a+8>>2]=(f<<2)+j;D[a+4>>2]=e;D[a>>2]=j;if(g){ma(g)}return}pa();T()}sa();T()}function pd(a){a=a|0;var b=0,c=0,d=0,e=0,f=0;D[a>>2]=8336;d=a+232|0;b=D[d+196>>2];if(b){D[d+200>>2]=b;ma(b)}c=D[d+184>>2];if(c){b=c;e=D[d+188>>2];if((b|0)!=(e|0)){while(1){b=e-12|0;f=D[b>>2];if(f){D[e-8>>2]=f;ma(f)}e=b;if((b|0)!=(c|0)){continue}break}b=D[d+184>>2]}D[d+188>>2]=c;ma(b)}b=D[d+156>>2];if(b){D[d+160>>2]=b;ma(b)}c=D[d+136>>2];D[d+136>>2]=0;if(c){e=c-4|0;b=D[e>>2];if(b){b=c+(b<<4)|0;while(1){b=b-16|0;if((c|0)!=(b|0)){continue}break}}ma(e)}qd(a+216|0);b=D[a+196>>2];if(b){D[a+200>>2]=b;ma(b)}b=D[a+184>>2];if(b){D[a+188>>2]=b;ma(b)}b=D[a+172>>2];if(b){D[a+176>>2]=b;ma(b)}b=D[a+160>>2];if(b){D[a+164>>2]=b;ma(b)}b=D[a+144>>2];if(b){while(1){c=D[b>>2];ma(b);b=c;if(b){continue}break}}b=D[a+136>>2];D[a+136>>2]=0;if(b){ma(b)}b=D[a+120>>2];if(b){ma(b)}b=D[a+108>>2];if(b){ma(b)}b=D[a+96>>2];if(b){ma(b)}b=D[a+72>>2];if(b){D[a+76>>2]=b;ma(b)}b=D[a+60>>2];if(b){ma(b)}b=D[a+48>>2];if(b){D[a+52>>2]=b;ma(b)}b=D[a+36>>2];if(b){D[a+40>>2]=b;ma(b)}b=D[a+24>>2];if(b){D[a+28>>2]=b;ma(b)}b=D[a+12>>2];if(b){D[a+16>>2]=b;ma(b)}b=D[a+8>>2];D[a+8>>2]=0;if(b){cb(b)}return a|0}function hi(a,b,c,d){var e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0;g=c;a:{b:{c:{d:{e:{f:{g:{h:{i:{j:{k:{if(b){if(!g){break k}if(!d){break j}c=M(d)-M(b)|0;if(c>>>0<=31){break i}break c}if((d|0)==1|d>>>0>1){break c}a=(a>>>0)/(g>>>0)|0;aa=0;break a}if(!a){break h}if(!d){break g}if(d-1&d){break g}a=b>>>ki(d)|0;aa=0;break a}if(!(g-1&g)){break f}h=(M(g)+33|0)-M(b)|0;e=0-h|0;break d}h=c+1|0;e=63-c|0;break d}a=(b>>>0)/(d>>>0)|0;aa=0;break a}c=M(d)-M(b)|0;if(c>>>0<31){break e}break c}if((g|0)==1){break b}c=ki(g);d=c&31;if((c&63)>>>0>=32){c=0;a=b>>>d|0}else{c=b>>>d|0;a=((1<>>d}aa=c;break a}h=c+1|0;e=63-c|0}c=h&63;f=c&31;if(c>>>0>=32){c=0;i=b>>>f|0}else{c=b>>>f|0;i=((1<>>f}f=c;c=e&63;e=c&31;if(c>>>0>=32){c=a<>>32-e|b<>>31;f=f<<1|i>>>31;j=m-(f+(c>>>0>e>>>0)|0)>>31;k=g&j;i=c-k|0;f=f-((d&j)+(c>>>0>>0)|0)|0;b=b<<1|a>>>31;a=l|a<<1;l=j&1;h=h-1|0;if(h){continue}break}}aa=b<<1|a>>>31;a=l|a<<1;break a}a=0;b=0}aa=b}return a}function pb(a,b){var c=0,d=0,e=0;c=(a|0)==(b|0);B[b+12|0]=c;a:{if(c){break a}while(1){d=D[b+8>>2];if(E[d+12|0]){break a}b:{c=D[d+8>>2];e=D[c>>2];if((e|0)==(d|0)){e=D[c+4>>2];if(!(!e|E[e+12|0])){break b}c:{if(D[d>>2]==(b|0)){b=d;break c}b=D[d+4>>2];a=D[b>>2];D[d+4>>2]=a;if(a){D[a+8>>2]=d;c=D[d+8>>2]}D[b+8>>2]=c;a=D[d+8>>2];D[((D[a>>2]!=(d|0))<<2)+a>>2]=b;D[b>>2]=d;D[d+8>>2]=b;c=D[b+8>>2];d=D[c>>2]}B[b+12|0]=1;B[c+12|0]=0;a=D[d+4>>2];D[c>>2]=a;if(a){D[a+8>>2]=c}D[d+8>>2]=D[c+8>>2];a=D[c+8>>2];D[((D[a>>2]!=(c|0))<<2)+a>>2]=d;D[d+4>>2]=c;D[c+8>>2]=d;return}if(!(E[e+12|0]|!e)){break b}d:{if(D[d>>2]!=(b|0)){b=d;break d}a=D[b+4>>2];D[d>>2]=a;if(a){D[a+8>>2]=d;c=D[d+8>>2]}D[b+8>>2]=c;a=D[d+8>>2];D[((D[a>>2]!=(d|0))<<2)+a>>2]=b;D[b+4>>2]=d;D[d+8>>2]=b;c=D[b+8>>2]}B[b+12|0]=1;B[c+12|0]=0;a=D[c+4>>2];b=D[a>>2];D[c+4>>2]=b;if(b){D[b+8>>2]=c}D[a+8>>2]=D[c+8>>2];b=D[c+8>>2];D[((D[b>>2]!=(c|0))<<2)+b>>2]=a;D[a>>2]=c;D[c+8>>2]=a;break a}B[d+12|0]=1;B[c+12|0]=(a|0)==(c|0);B[e+12|0]=1;b=c;if((c|0)!=(a|0)){continue}break}}}function kd(a,b,c,d){var e=0,f=0,g=0,h=0,i=0,j=0;a:{b:{c:{if(!b){if((d|0)<0){break a}e=D[a+4>>2];b=D[a>>2];d=e-b|0;if(c>>>0>d>>>0){g=c-d|0;f=D[a+8>>2];if(g>>>0<=f-e>>>0){i=a,j=qa(e,0,g)+g|0,D[i+4>>2]=j;break c}if((c|0)<0){break b}e=f-b|0;f=e<<1;f=e>>>0<1073741823?c>>>0>>0?f:c:2147483647;e=na(f);qa(e+d|0,0,g);if((d|0)>0){oa(e,b,d)}D[a+8>>2]=e+f;D[a+4>>2]=c+e;D[a>>2]=e;if(!b){break c}ma(b);break c}if(c>>>0>=d>>>0){break c}D[a+4>>2]=b+c;break c}if((d|0)<0){break a}h=D[a+4>>2];g=D[a>>2];e=h-g|0;d:{if((d|0)<=0&c>>>0<=e>>>0|(d|0)<0){break d}if(c>>>0>e>>>0){f=c-e|0;d=D[a+8>>2];if(f>>>0<=d-h>>>0){i=a,j=qa(h,0,f)+f|0,D[i+4>>2]=j;break d}if((c|0)<0){break b}d=d-g|0;h=d<<1;h=d>>>0<1073741823?c>>>0>>0?h:c:2147483647;d=na(h);qa(d+e|0,0,f);if((e|0)>0){oa(d,g,e)}D[a+8>>2]=d+h;D[a+4>>2]=c+d;D[a>>2]=d;if(!g){break d}ma(g);break d}if(c>>>0>=e>>>0){break d}D[a+4>>2]=c+g}if(!c){break c}Ra(D[a>>2],b,c)}b=D[a+28>>2];c=D[a+24>>2]+1|0;b=c?b:b+1|0;D[a+24>>2]=c;D[a+28>>2]=b;e=1;break a}pa();T()}return e}function uh(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0;c=D[b+88>>2];if(!(!c|D[c>>2]!=1)){d=D[c+8>>2];D[a+4>>2]=E[d|0]|E[d+1|0]<<8|(E[d+2|0]<<16|E[d+3|0]<<24);e=a+8|0;d=B[b+24|0];f=D[a+8>>2];g=D[a+12>>2]-f>>2;a:{if(d>>>0>g>>>0){ra(e,d-g|0);d=B[b+24|0];break a}if(d>>>0>=g>>>0){break a}D[a+12>>2]=f+(d<<2)}k=1;g=D[c+8>>2];b:{if((d|0)<=0){b=4;break b}h=d&3;e=D[e>>2];c:{if(d-1>>>0<3){b=4;d=0;break c}l=d&-4;d=0;b=4;while(1){f=d<<2;c=b+g|0;D[f+e>>2]=E[c|0]|E[c+1|0]<<8|(E[c+2|0]<<16|E[c+3|0]<<24);D[e+(f|4)>>2]=E[c+4|0]|E[c+5|0]<<8|(E[c+6|0]<<16|E[c+7|0]<<24);D[e+(f|8)>>2]=E[c+8|0]|E[c+9|0]<<8|(E[c+10|0]<<16|E[c+11|0]<<24);D[e+(f|12)>>2]=E[c+12|0]|E[c+13|0]<<8|(E[c+14|0]<<16|E[c+15|0]<<24);d=d+4|0;b=b+16|0;i=i+4|0;if((l|0)!=(i|0)){continue}break}}if(!h){break b}while(1){c=b+g|0;D[e+(d<<2)>>2]=E[c|0]|E[c+1|0]<<8|(E[c+2|0]<<16|E[c+3|0]<<24);d=d+1|0;b=b+4|0;j=j+1|0;if((j|0)!=(h|0)){continue}break}}c=a;a=b+g|0;D[c+20>>2]=E[a|0]|E[a+1|0]<<8|(E[a+2|0]<<16|E[a+3|0]<<24)}return k|0}function ue(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0;if(Zc(a,b)){i=a+36|0;g=ba[D[D[a>>2]+24>>2]](a)|0;d=D[a+40>>2];e=D[a+36>>2];c=d-e>>2;a:{if(g>>>0>c>>>0){Pb(i,g-c|0);break a}if(c>>>0<=g>>>0){break a}e=e+(g<<2)|0;if((e|0)!=(d|0)){while(1){d=d-4|0;c=D[d>>2];D[d>>2]=0;if(c){ba[D[D[c>>2]+4>>2]](c)}if((d|0)!=(e|0)){continue}break}}D[a+40>>2]=e}b:{if((g|0)<=0){e=0;break b}e=1;c=D[b+20>>2];d=D[b+12>>2];f=D[b+16>>2];if((c|0)>=(d|0)&f>>>0>=G[b+8>>2]|(c|0)>(d|0)){break b}d=0;while(1){h=E[f+D[b>>2]|0];f=f+1|0;c=f?c:c+1|0;D[b+16>>2]=f;D[b+20>>2]=c;f=ba[D[D[a>>2]+48>>2]](a,h)|0;h=d<<2;j=h+D[a+36>>2]|0;c=D[j>>2];D[j>>2]=f;if(c){ba[D[D[c>>2]+4>>2]](c)}c=D[D[i>>2]+h>>2];if(!c){break b}if(!(l=c,m=ba[D[D[a>>2]+28>>2]](a)|0,n=ba[D[D[a>>2]+20>>2]](a,d)|0,k=D[D[c>>2]+8>>2],ba[k](l|0,m|0,n|0)|0)){break b}d=d+1|0;e=(g|0)>(d|0);if((d|0)==(g|0)){break b}f=D[b+16>>2];c=D[b+20>>2];h=D[b+12>>2];if(f>>>0>2]&(c|0)<=(h|0)|(c|0)<(h|0)){continue}break}}a=!e}else{a=0}return a|0}function sd(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0,g=0,h=0,i=K(0),j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0;k=$-16|0;$=k;if(D[c+28>>2]==9){d=D[a+4>>2];g=B[c+24|0];e=g<<2;f=na((g&1073741823)!=(g|0)?-1:e);l=k+8|0;D[l>>2]=1065353216;i=H[a+20>>2];d=-1<0){H[l>>2]=i/K(d|0)}o=(d|0)>0;a:{if(!o){break a}j=D[c+80>>2];if(!j){break a}d=0;if((g|0)<=0){if((j|0)!=1){a=j&-2;b=0;while(1){oa(D[D[c+64>>2]>>2]+d|0,f,e);d=d+e|0;oa(d+D[D[c+64>>2]>>2]|0,f,e);d=d+e|0;b=b+2|0;if((a|0)!=(b|0)){continue}break}}if(!(j&1)){break a}oa(D[D[c+64>>2]>>2]+d|0,f,e);break a}p=D[D[b>>2]>>2]+D[b+48>>2]|0;t=g&-2;u=g&1;while(1){m=D[a+8>>2];i=H[l>>2];b=0;n=0;if((g|0)!=1){while(1){h=b<<2;q=(d<<2)+p|0;H[h+f>>2]=K(i*K(D[q>>2]))+H[h+m>>2];h=h|4;H[h+f>>2]=K(i*K(D[q+4>>2]))+H[h+m>>2];b=b+2|0;d=d+2|0;n=n+2|0;if((t|0)!=(n|0)){continue}break}}if(u){b=b<<2;H[b+f>>2]=K(i*K(D[(d<<2)+p>>2]))+H[b+m>>2];d=d+1|0}oa(D[D[c+64>>2]>>2]+r|0,f,e);r=e+r|0;s=s+1|0;if((s|0)!=(j|0)){continue}break}}ma(f)}$=k+16|0;return o|0}function Hg(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0;k=D[a+12>>2];c=D[a+68>>2];d=D[c+80>>2];B[b+84|0]=0;m=b+68|0;i=D[b+68>>2];e=D[b+72>>2]-i>>2;a:{if(e>>>0>>0){xa(m,d-e|0,9124);c=D[a+68>>2];d=D[c+80>>2];break a}if(d>>>0>=e>>>0){break a}D[b+72>>2]=i+(d<<2)}b=D[c+100>>2];e=D[c+96>>2];i=(b-e|0)/12|0;b:{if((b|0)==(e|0)){break b}n=1;k=D[k+28>>2];f=D[k>>2];if((f|0)==-1){break b}o=i>>>0>1?i:1;c=e;b=0;while(1){g=D[c>>2];if(g>>>0>=d>>>0){break b}j=D[D[a+72>>2]+12>>2];h=D[j+(f<<2)>>2];if(h>>>0>=d>>>0){break b}f=D[m>>2];D[f+(g<<2)>>2]=h;g=k+(l<<2)|0;h=D[g+4>>2];if((h|0)==-1){break b}l=D[c+4>>2];if(l>>>0>=d>>>0){break b}h=D[(h<<2)+j>>2];if(h>>>0>=d>>>0){break b}D[f+(l<<2)>>2]=h;g=D[g+8>>2];if((g|0)==-1){break b}c=D[c+8>>2];if(c>>>0>=d>>>0){break b}j=D[(g<<2)+j>>2];if(j>>>0>=d>>>0){break b}D[f+(c<<2)>>2]=j;b=b+1|0;n=i>>>0>b>>>0;if((b|0)==(o|0)){break b}c=e+J(b,12)|0;l=J(b,3);f=D[k+(l<<2)>>2];if((f|0)!=-1){continue}break}}return(n^-1)&1}function Xf(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0;h=D[d+80>>2];e=$-48|0;$=e;a=D[a+4>>2];k=a-31|0;a:{if(k>>>0<4294967267){break a}i=D[D[d>>2]>>2]+D[d+48>>2]|0;D[e+16>>2]=a;a=-1<>2]=a^-1;a=-2-a|0;D[e+24>>2]=a;D[e+32>>2]=(a|0)/2;H[e+28>>2]=K(2)/K(a|0);f=D[c>>2];if((f|0)!=D[c+4>>2]){a=0;d=0;while(1){g=D[(d<<2)+f>>2];h=e+36|0;j=D[D[b>>2]>>2];m=D[b+48>>2];f=D[b+44>>2];l=D[b+40>>2];if(!E[b+84|0]){g=D[D[b+68>>2]+(g<<2)>>2]}g=fi(l,f,g,0)+m|0;oa(h,g+j|0,l);Gc(e+16|0,h,e+12|0,e+8|0);f=a<<2;D[f+i>>2]=D[e+12>>2];D[(f|4)+i>>2]=D[e+8>>2];a=a+2|0;d=d+1|0;f=D[c>>2];if(d>>>0>2]-f>>2>>>0){continue}break}break a}if(!h){break a}d=0;a=0;while(1){j=e+36|0;c=D[D[b>>2]>>2];g=D[b+40>>2];f=D[b+48>>2]+fi(g,D[b+44>>2],E[b+84|0]?a:D[D[b+68>>2]+(a<<2)>>2],0)|0;oa(j,c+f|0,g);Gc(e+16|0,j,e+12|0,e+8|0);c=d<<2;D[c+i>>2]=D[e+12>>2];D[(c|4)+i>>2]=D[e+8>>2];d=d+2|0;a=a+1|0;if((h|0)!=(a|0)){continue}break}}$=e+48|0;return k>>>0>4294967266|0}function Vg(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0;j=D[a+12>>2];c=D[a+108>>2];d=D[c+80>>2];B[b+84|0]=0;m=b+68|0;h=D[b+68>>2];f=D[b+72>>2]-h>>2;a:{if(f>>>0>>0){xa(m,d-f|0,9124);c=D[a+108>>2];d=D[c+80>>2];break a}if(d>>>0>=f>>>0){break a}D[b+72>>2]=h+(d<<2)}b=D[c+100>>2];f=D[c+96>>2];h=(b-f|0)/12|0;b:{if((b|0)==(f|0)){j=0;break b}n=h>>>0>1?h:1;o=D[j>>2];c=f;b=0;j=1;while(1){e=(e<<2)+o|0;i=D[e>>2];if((i|0)==-1){break b}g=D[c>>2];if(g>>>0>=d>>>0){break b}l=D[D[a+112>>2]+12>>2];k=D[l+(i<<2)>>2];if(k>>>0>=d>>>0){break b}i=D[m>>2];D[i+(g<<2)>>2]=k;g=D[e+4>>2];if((g|0)==-1){break b}k=D[c+4>>2];if(k>>>0>=d>>>0){break b}g=D[(g<<2)+l>>2];if(g>>>0>=d>>>0){break b}D[i+(k<<2)>>2]=g;e=D[e+8>>2];if((e|0)==-1){break b}c=D[c+8>>2];if(c>>>0>=d>>>0){break b}e=D[(e<<2)+l>>2];if(e>>>0>=d>>>0){break b}D[i+(c<<2)>>2]=e;b=b+1|0;j=h>>>0>b>>>0;if((b|0)==(n|0)){break b}e=J(b,3);c=f+J(b,12)|0;if((b|0)!=1431655765){continue}break}}return(j^-1)&1}function Ng(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0;j=D[a+12>>2];c=D[a+68>>2];d=D[c+80>>2];B[b+84|0]=0;m=b+68|0;h=D[b+68>>2];f=D[b+72>>2]-h>>2;a:{if(f>>>0>>0){xa(m,d-f|0,9124);c=D[a+68>>2];d=D[c+80>>2];break a}if(d>>>0>=f>>>0){break a}D[b+72>>2]=h+(d<<2)}b=D[c+100>>2];f=D[c+96>>2];h=(b-f|0)/12|0;b:{if((b|0)==(f|0)){j=0;break b}n=h>>>0>1?h:1;o=D[j>>2];c=f;b=0;j=1;while(1){e=(e<<2)+o|0;i=D[e>>2];if((i|0)==-1){break b}g=D[c>>2];if(g>>>0>=d>>>0){break b}l=D[D[a+72>>2]+12>>2];k=D[l+(i<<2)>>2];if(k>>>0>=d>>>0){break b}i=D[m>>2];D[i+(g<<2)>>2]=k;g=D[e+4>>2];if((g|0)==-1){break b}k=D[c+4>>2];if(k>>>0>=d>>>0){break b}g=D[(g<<2)+l>>2];if(g>>>0>=d>>>0){break b}D[i+(k<<2)>>2]=g;e=D[e+8>>2];if((e|0)==-1){break b}c=D[c+8>>2];if(c>>>0>=d>>>0){break b}e=D[(e<<2)+l>>2];if(e>>>0>=d>>>0){break b}D[i+(c<<2)>>2]=e;b=b+1|0;j=h>>>0>b>>>0;if((b|0)==(n|0)){break b}e=J(b,3);c=f+J(b,12)|0;if((b|0)!=1431655765){continue}break}}return(j^-1)&1}function Ma(a,b,c){var d=0,e=0,f=0,g=0,h=0,i=0,j=0;d=(c>>>0)/3|0;i=D[(D[D[a+8>>2]+96>>2]+J(d,12)|0)+(c-J(d,3)<<2)>>2];e=D[D[a+12>>2]+4>>2];d=D[e+4>>2];a:{if((d|0)!=D[e+8>>2]){D[d>>2]=i;D[e+4>>2]=d+4;break a}b:{h=D[e>>2];g=d-h|0;j=g>>2;d=j+1|0;if(d>>>0<1073741824){f=g>>1;f=g>>>0<2147483644?d>>>0>>0?f:d:1073741823;if(f){if(f>>>0>=1073741824){break b}d=na(f<<2)}else{d=0}j=d+(j<<2)|0;D[j>>2]=i;if((g|0)>0){oa(d,h,g)}D[e+8>>2]=d+(f<<2);D[e+4>>2]=j+4;D[e>>2]=d;if(h){ma(h)}break a}pa();T()}sa();T()}e=D[a+4>>2];d=D[e+4>>2];c:{d:{e:{if((d|0)!=D[e+8>>2]){D[d>>2]=c;D[e+4>>2]=d+4;break e}h=D[e>>2];g=d-h|0;i=g>>2;d=i+1|0;if(d>>>0>=1073741824){break d}f=g>>1;f=g>>>0<2147483644?d>>>0>>0?f:d:1073741823;if(f){if(f>>>0>=1073741824){break c}d=na(f<<2)}else{d=0}i=d+(i<<2)|0;D[i>>2]=c;if((g|0)>0){oa(d,h,g)}D[e+8>>2]=d+(f<<2);D[e+4>>2]=i+4;D[e>>2]=d;if(!h){break e}ma(h)}a=D[a+4>>2];D[D[a+12>>2]+(b<<2)>>2]=D[a+24>>2];D[a+24>>2]=D[a+24>>2]+1;return}pa();T()}sa();T()}function Vc(a,b){var c=0,d=0,e=0,f=0,g=0,h=0;h=D[a>>2];c=h+(b>>>3&536870908)|0;D[c>>2]=D[c>>2]|1<>2];e=(b|0)==-1;c=-1;a:{if(e){break a}d=b+1|0;d=(d>>>0)%3|0?d:b-2|0;c=-1;if((d|0)==-1){break a}c=D[D[f>>2]+(d<<2)>>2]}d=D[a+12>>2];g=(c>>>3&536870908)+d|0;D[g>>2]=D[g>>2]|1<>>0)%3|0){c=b-1|0;break f}c=b+2|0;if((c|0)==-1){break e}}e=D[D[f>>2]+(c<<2)>>2];c=1<>>3&536870908)|0;g=D[e>>2];break d}e=d+536870908|0;c=D[d+536870908>>2];g=-2147483648}D[e>>2]=c|g;c=-1;b=D[D[f+12>>2]+(b<<2)>>2];if((b|0)==-1){break b}B[a+24|0]=0;a=(b>>>3&536870908)+h|0;D[a>>2]=D[a>>2]|1<>>0)%3|0?a:b-2|0;if((a|0)!=-1){c=D[D[f>>2]+(a<<2)>>2]}a=d+(c>>>3&536870908)|0;D[a>>2]=D[a>>2]|1<>>0)%3|0){b=b-1|0;break h}b=b+2|0;a=-1;if((b|0)==-1){break g}}a=D[D[f>>2]+(b<<2)>>2]}b=1<>>3&536870908)|0;c=D[a>>2];break c}a=d+536870908|0;b=D[d+536870908>>2];c=-2147483648}D[a>>2]=b|c}}function Da(a,b){var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0;g=$-16|0;$=g;e=D[b+20>>2];c=D[b+12>>2];d=D[b+16>>2];a:{if((e|0)>=(c|0)&d>>>0>=G[b+8>>2]|(c|0)<(e|0)){break a}B[a+12|0]=E[d+D[b>>2]|0];e=D[b+20>>2];c=D[b+16>>2]+1|0;e=c?e:e+1|0;D[b+16>>2]=c;D[b+20>>2]=e;if(!Nd(1,g+12|0,b)){break a}e=D[b+8>>2];h=D[b+16>>2];c=h;d=e-c|0;c=c>>>0>e>>>0;e=D[b+20>>2];f=D[b+12>>2]-(c+e|0)|0;c=D[g+12>>2];if((f|0)<=0&d>>>0>>0|(f|0)<0|(c|0)<=0){break a}d=h+D[b>>2]|0;D[a>>2]=d;b:{c:{f=c-1|0;i=f+d|0;j=E[i|0];d:{if(j>>>0<=63){D[a+4>>2]=f;f=E[i|0]&63;break d}e:{switch((j>>>6|0)-1|0){case 1:break c;case 0:break e;default:break a}}if(c>>>0<2){break a}D[a+4>>2]=c-2;d=(c+d|0)-2|0;f=E[d+1|0]<<8&16128|E[d|0]}D[a+8>>2]=f+4096;break b}if(c>>>0<3){break a}D[a+4>>2]=c-3;f=a;a=(c+d|0)-3|0;a=E[a+1|0]<<8|E[a+2|0]<<16&4128768|E[a|0];D[f+8>>2]=a+4096;if(a>>>0>1044479){break a}}a=e;d=c+h|0;a=d>>>0>>0?a+1|0:a;D[b+16>>2]=d;D[b+20>>2]=a;k=1}$=g+16|0;return k}function Ug(a){a=a|0;var b=0,c=0,d=0,e=0,f=0,g=0,h=0;g=$-16|0;$=g;b=D[a+4>>2];d=D[b>>2];a:{c=D[a+12>>2];c=D[c+28>>2]-D[c+24>>2]|0;e=c>>2;b:{if(e>>>0<=D[b+8>>2]-d>>2>>>0){break b}if((c|0)<0){break a}f=D[b+4>>2];c=na(c);h=c+(e<<2)|0;e=f-d|0;f=e+c|0;if((e|0)>0){oa(c,d,e)}D[b+8>>2]=h;D[b+4>>2]=f;D[b>>2]=c;if(!d){break b}ma(d)}b=D[a+12>>2];d=D[b+28>>2];b=D[b+24>>2];D[g+12>>2]=0;b=d-b>>2;c=a+96|0;e=D[c>>2];d=D[a+100>>2]-e>>2;c:{if(b>>>0>d>>>0){xa(c,b-d|0,g+12|0);break c}if(b>>>0>=d>>>0){break c}D[a+100>>2]=e+(b<<2)}e=a+8|0;b=D[a+116>>2];d:{if(b){c=D[b>>2];if((c|0)==D[b+4>>2]){d=1;break d}b=0;while(1){d=od(e,D[(b<<2)+c>>2]);if(!d){break d}f=D[a+116>>2];c=D[f>>2];b=b+1|0;if(b>>>0>2]-c>>2>>>0){continue}break}break d}d=1;a=D[a+12>>2];a=D[a+4>>2]-D[a>>2]|0;if(a>>>0<12){break d}a=(a>>2>>>0)/3|0;b=0;while(1){d=od(e,J(b,3));if(!d){break d}b=b+1|0;if((a|0)!=(b|0)){continue}break}}$=g+16|0;return d|0}pa();T()}function Oa(a,b){var c=0,d=0,e=0,f=0,g=0,h=0;d=$-16|0;$=d;a:{e=D[a+4>>2];b:{if(e>>>0>>0){f=b-e|0;c=D[a+8>>2];g=c<<5;c:{if(!(f>>>0>g>>>0|e>>>0>g-f>>>0)){D[a+4>>2]=b;h=e&31;b=D[a>>2]+(e>>>3&536870908)|0;break c}D[d+8>>2]=0;D[d>>2]=0;D[d+4>>2]=0;if((b|0)<0){break a}if(g>>>0<=1073741822){c=c<<6;b=b+31&-32;b=b>>>0>>0?c:b}else{b=2147483647}Xa(d,b);c=D[a+4>>2];D[d+4>>2]=c+f;e=D[a>>2];b=D[d>>2];d:{if((c|0)<=0){break d}g=c>>>5<<2;b=Ra(b,e,g)+g|0;h=c&31;e:{if(!h){h=0;break e}c=-1>>>32-h|0;D[b>>2]=D[b>>2]&(c^-1)|D[e+g>>2]&c}e=D[a>>2]}D[a>>2]=D[d>>2];D[d>>2]=e;c=D[a+4>>2];D[a+4>>2]=D[d+4>>2];D[d+4>>2]=c;c=D[a+8>>2];D[a+8>>2]=D[d+8>>2];D[d+8>>2]=c;if(!e){break c}ma(e)}if(!f){break b}if(h){c=32-h|0;a=c>>>0>>0?c:f;D[b>>2]=D[b>>2]&(-1<>>c-a^-1);f=f-a|0;b=b+4|0}a=b;b=f>>>5<<2;a=qa(a,0,b);if((f&-32)==(f|0)){break b}a=a+b|0;D[a>>2]=D[a>>2]&(-1>>>32-(f&31)^-1);break b}D[a+4>>2]=b}$=d+16|0;return}pa();T()}function nd(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0;f=D[a+12>>2];h=D[a+8>>2];d=f-h>>2;b=B[b+24|0];a:{if(d>>>0>>0){ra(a+8|0,b-d|0);h=D[a+8>>2];f=D[a+12>>2];break a}if(b>>>0>=d>>>0){break a}f=(b<<2)+h|0;D[a+12>>2]=f}b=0;i=D[c+20>>2];e=D[c+16>>2];d=f-h|0;f=d;g=e+d|0;j=D[c+12>>2];i=d>>>0>g>>>0?i+1|0:i;b:{if(g>>>0>G[c+8>>2]&(j|0)<=(i|0)|(i|0)>(j|0)){break b}oa(h,e+D[c>>2]|0,d);d=D[c+20>>2];e=f+D[c+16>>2]|0;d=e>>>0>>0?d+1|0:d;g=e;D[c+16>>2]=e;D[c+20>>2]=d;e=D[c+12>>2];f=g+4|0;d=f>>>0<4?d+1|0:d;if(f>>>0>G[c+8>>2]&(d|0)>=(e|0)|(d|0)>(e|0)){break b}d=g+D[c>>2]|0;D[a+20>>2]=E[d|0]|E[d+1|0]<<8|(E[d+2|0]<<16|E[d+3|0]<<24);d=D[c+20>>2];g=D[c+16>>2];e=g+4|0;f=e>>>0<4?d+1|0:d;j=e;D[c+16>>2]=e;D[c+20>>2]=f;e=D[c+12>>2];if((f|0)>=(e|0)&j>>>0>=G[c+8>>2]|(f|0)>(e|0)){break b}e=E[j+D[c>>2]|0];f=g+5|0;d=f>>>0<5?d+1|0:d;D[c+16>>2]=f;D[c+20>>2]=d;if(e-1>>>0>29){break b}D[a+4>>2]=e;b=1}return b|0}function Rb(a,b){var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0;d=E[a+11|0]>>>7|0?D[a+4>>2]:E[a+11|0];if(d>>>0>>0){h=$-16|0;$=h;f=b-d|0;if(f){b=E[a+11|0]>>>7|0;g=b?D[a+4>>2]:E[a+11|0];i=g+f|0;b=b?(D[a+8>>2]&2147483647)-1|0:10;if(b-g>>>0>>0){a:{d=$-16|0;$=d;c=i-b|0;if(c>>>0<=-17-b>>>0){j=E[a+11|0]>>>7|0?D[a>>2]:a;b:{if(b>>>0<2147483623){D[d+8>>2]=b<<1;D[d+12>>2]=b+c;c=$-16|0;$=c;$=c+16|0;c=d+8|0;e=d+12|0;c=D[(G[e>>2]>2]?c:e)>>2];if(c>>>0>=11){e=c+16&-16;c=e-1|0;c=(c|0)==11?e:c}else{c=10}break b}c=-18}e=c+1|0;c=na(e);if(g){gb(c,j,g)}if((b|0)!=10){ma(j)}D[a>>2]=c;D[a+8>>2]=e|-2147483648;$=d+16|0;break a}Ca();T()}}b=E[a+11|0]>>>7|0?D[a>>2]:a;d=g+b|0;if(f){qa(d,0,f)}c:{if(E[a+11|0]>>>7|0){D[a+4>>2]=i;break c}B[a+11|0]=i}B[h+15|0]=0;B[b+i|0]=E[h+15|0]}$=h+16|0;return}c=E[a+11|0]>>>7|0;f=c?D[a>>2]:a;d=$-16|0;$=d;d:{if(c){D[a+4>>2]=b;break d}B[a+11|0]=b}B[d+15|0]=0;B[b+f|0]=E[d+15|0];$=d+16|0}function Gc(a,b,c,d){var e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0;j=+H[b>>2];k=+H[b+4>>2];l=+H[b+8>>2];g=L(j)+L(k)+L(l);a:{if(!(g>1e-6)){j=1;k=0;e=0;break a}g=1/g;k=g*k;j=g*j;e=g*l<0}h=D[a+16>>2];l=+(h|0);g=P(j*l+.5);b:{if(L(g)<2147483648){m=~~g;break b}m=-2147483648}f=m>>31;i=(f^m)-f|0;g=P(k*l+.5);c:{if(L(g)<2147483648){f=~~g;break c}f=-2147483648}b=f>>31;b=h-(i+((f^b)-b|0)|0)|0;i=(b|0)>0?b:0;e=e?0-i|0:i;f=f+(b>>31&((f|0)>0?b:0-b|0))|0;d:{if((m|0)>=0){b=e+h|0;a=D[a+8>>2];e=h+f|0;break d}b=f>>31;b=(b^f)-b|0;a=D[a+8>>2];b=(e|0)<0?b:a-b|0;e=(f|0)<0?i:a-i|0}e:{if(!(b|e)){b=a;break e}if(!((a|0)!=(b|0)|e)){b=a;break e}if(!((a|0)!=(e|0)|b)){b=a;break e}if(!((b|0)<=(h|0)|e)){b=(h<<1)-b|0;a=0;break e}if(!((a|0)!=(e|0)|(b|0)>=(h|0))){b=(h<<1)-b|0;break e}if(!((a|0)!=(b|0)|(e|0)>=(h|0))){b=a;a=(h<<1)-e|0;break e}if(b){a=e;break e}b=0;if((e|0)<=(h|0)){a=e;break e}a=(h<<1)-e|0}D[c>>2]=a;D[d>>2]=b}function Xc(a,b){var c=0,d=0,e=0,f=0,g=0,h=0;g=$-16|0;$=g;a:{b:{if(b){D[a+88>>2]=0;D[a+92>>2]=0;c=D[a+84>>2];D[a+84>>2]=0;if(c){ma(c)}D[a+76>>2]=0;D[a+80>>2]=0;c=D[a+72>>2];D[a+72>>2]=0;if(c){ma(c)}c=D[b>>2];d=D[b+4>>2];B[g+15|0]=0;Ha(a,d-c>>2,g+15|0);c=D[b+28>>2];d=D[b+24>>2];B[g+14|0]=0;Ha(a+12|0,c-d>>2,g+14|0);Vb(a+28|0,D[b+4>>2]-D[b>>2]>>2,10284);d=D[b+28>>2]-D[b+24>>2]|0;e=d>>2;c=D[a+52>>2];c:{if(e>>>0<=D[a+60>>2]-c>>2>>>0){break c}if((d|0)<0){break b}f=D[a+56>>2];d=na(d);h=d+(e<<2)|0;e=f-c|0;f=e+d|0;if((e|0)>0){oa(d,c,e)}D[a+60>>2]=h;D[a+56>>2]=f;D[a+52>>2]=d;if(!c){break c}ma(c)}d=D[b+28>>2]-D[b+24>>2]|0;e=d>>2;c=D[a+40>>2];d:{if(e>>>0<=D[a+48>>2]-c>>2>>>0){break d}if((d|0)<0){break a}f=D[a+44>>2];d=na(d);h=d+(e<<2)|0;e=f-c|0;f=e+d|0;if((e|0)>0){oa(d,c,e)}D[a+48>>2]=h;D[a+44>>2]=f;D[a+40>>2]=d;if(!c){break d}ma(c)}B[a+24|0]=1;D[a+64>>2]=b}$=g+16|0;return}pa();T()}pa();T()}function xc(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=K(0),f=K(0),g=K(0),h=K(0),i=K(0),j=0,k=K(0),l=K(0),m=K(0),n=K(0),o=0;a:{if(D[c+28>>2]!=9|E[c+24|0]!=3){break a}a=D[a+4>>2];if(a-31>>>0<4294967267){break a}o=1;j=D[c+80>>2];if(!j){break a}k=K(K(2)/K((1<>2]>>2]+D[c+48>>2]|0;a=D[D[b>>2]>>2]+D[b+48>>2]|0;b=0;while(1){g=K(0);l=K(0);m=K(0);e=K(K(K(D[a>>2])*k)+K(-1));f=K(K(K(D[a+4>>2])*k)+K(-1));i=K(K(K(1)-K(L(e)))-K(L(f)));h=K(O(K(-i),K(0)));n=K(-h);f=K(f+(f>>8;B[c+10|0]=d>>>16;B[c+11|0]=d>>>24;d=(v(l),x(2));B[c+4|0]=d;B[c+5|0]=d>>>8;B[c+6|0]=d>>>16;B[c+7|0]=d>>>24;d=(v(g),x(2));B[c|0]=d;B[c+1|0]=d>>>8;B[c+2|0]=d>>>16;B[c+3|0]=d>>>24;c=c+12|0;b=b+1|0;if((j|0)!=(b|0)){continue}break}}return o|0}function Jd(a,b){var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0;g=$-16|0;$=g;a:{if(!Va(1,g+8|0,b)){break a}c=D[b+8>>2];e=D[b+16>>2];h=D[g+12>>2];d=D[b+20>>2];f=D[b+12>>2]-(d+(c>>>0>>0)|0)|0;i=c-e|0;c=D[g+8>>2];if((h|0)==(f|0)&i>>>0>>0|f>>>0>>0){break a}d=d+h|0;f=c+e|0;d=f>>>0>>0?d+1|0:d;D[b+16>>2]=f;D[b+20>>2]=d;if((c|0)<=0){break a}d=e+D[b>>2]|0;D[a+40>>2]=d;f=c-1|0;e=d+f|0;b=E[e|0];b:{if(b>>>0<=63){D[a+44>>2]=f;b=E[e|0]&63;break b}c:{switch((b>>>6|0)-1|0){case 0:if(c>>>0<2){break a}D[a+44>>2]=c-2;b=(c+d|0)-2|0;b=E[b+1|0]<<8&16128|E[b|0];break b;case 1:if(c>>>0<3){break a}D[a+44>>2]=c-3;b=(c+d|0)-3|0;b=E[b+1|0]<<8|E[b+2|0]<<16&4128768|E[b|0];break b;default:break c}}D[a+44>>2]=c-4;b=(c+d|0)-4|0;b=E[b+2|0]<<16|E[b+3|0]<<24&1056964608|E[b+1|0]<<8|E[b|0]}D[a+48>>2]=b+16384;j=b>>>0<4177920}$=g+16|0;return j}function rd(a){a=a|0;var b=0,c=0,d=0,e=0;D[a>>2]=8284;d=D[a+368>>2];D[a+368>>2]=0;if(d){e=d-4|0;b=D[e>>2];if(b){c=(b<<4)+d|0;while(1){c=c-16|0;if((d|0)!=(c|0)){continue}break}}ma(e)}qd(a+216|0);b=D[a+196>>2];if(b){D[a+200>>2]=b;ma(b)}b=D[a+184>>2];if(b){D[a+188>>2]=b;ma(b)}b=D[a+172>>2];if(b){D[a+176>>2]=b;ma(b)}b=D[a+160>>2];if(b){D[a+164>>2]=b;ma(b)}c=D[a+144>>2];if(c){while(1){b=D[c>>2];ma(c);c=b;if(b){continue}break}}b=D[a+136>>2];D[a+136>>2]=0;if(b){ma(b)}b=D[a+120>>2];if(b){ma(b)}b=D[a+108>>2];if(b){ma(b)}b=D[a+96>>2];if(b){ma(b)}b=D[a+72>>2];if(b){D[a+76>>2]=b;ma(b)}b=D[a+60>>2];if(b){ma(b)}b=D[a+48>>2];if(b){D[a+52>>2]=b;ma(b)}b=D[a+36>>2];if(b){D[a+40>>2]=b;ma(b)}b=D[a+24>>2];if(b){D[a+28>>2]=b;ma(b)}b=D[a+12>>2];if(b){D[a+16>>2]=b;ma(b)}b=D[a+8>>2];D[a+8>>2]=0;if(b){cb(b)}return a|0}function ic(a,b){var c=0,d=0;c=D[b+8>>2];D[a+4>>2]=D[b+4>>2];D[a+8>>2]=c;D[a+20>>2]=D[b+20>>2];c=D[b+16>>2];D[a+12>>2]=D[b+12>>2];D[a+16>>2]=c;a:{b:{if((a|0)!=(b|0)){c=D[b+28>>2];if(c){d=D[a+24>>2];if(D[a+32>>2]<<5>>>0>>0){if(d){ma(d);D[a+32>>2]=0;D[a+24>>2]=0;D[a+28>>2]=0;c=D[b+28>>2]}if((c|0)<0){break b}c=(c-1>>>5|0)+1|0;d=na(c<<2);D[a+32>>2]=c;D[a+28>>2]=0;D[a+24>>2]=d;c=D[b+28>>2]}Ra(d,D[b+24>>2],(c-1>>>3&536870908)+4|0);c=D[b+28>>2]}else{c=0}D[a+28>>2]=c;c=D[b+40>>2];if(c){d=D[a+36>>2];if(D[a+44>>2]<<5>>>0>>0){if(d){ma(d);D[a+44>>2]=0;D[a+36>>2]=0;D[a+40>>2]=0;c=D[b+40>>2]}if((c|0)<0){break a}c=(c-1>>>5|0)+1|0;d=na(c<<2);D[a+44>>2]=c;D[a+40>>2]=0;D[a+36>>2]=d;c=D[b+40>>2]}Ra(d,D[b+36>>2],(c-1>>>3&536870908)+4|0);b=D[b+40>>2]}else{b=0}D[a+40>>2]=b}return}pa();T()}pa();T()}function Pf(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,f=0,g=0;a:{a=$-32|0;$=a;e=Ba(c);if(e>>>0<4294967280){b:{c:{if(e>>>0>=11){g=e+16&-16;f=na(g);D[a+24>>2]=g|-2147483648;D[a+16>>2]=f;D[a+20>>2]=e;break c}B[a+27|0]=e;f=a+16|0;if(!e){break b}}oa(f,c,e)}B[e+f|0]=0;D[a+8>>2]=0;D[a>>2]=0;D[a+4>>2]=0;d:{c=bb(b,a+16|0);if((c|0)==(b+4|0)){break d}b=D[c+28>>2];f=D[c+32>>2];if((b|0)==(f|0)){break d}b=f-b|0;if(b&3){break d}e=b>>>2|0;f=D[a+4>>2];b=D[a>>2];g=f-b>>2;e:{if(e>>>0>g>>>0){ra(a,e-g|0);b=D[a>>2];f=D[a+4>>2];break e}if(e>>>0>=g>>>0){break e}f=(e<<2)+b|0;D[a+4>>2]=f}if((b|0)!=(f|0)){e=b;b=D[c+28>>2];oa(e,b,D[c+32>>2]-b|0);break d}va();T()}b=D[d>>2];if(b){D[d+4>>2]=b;ma(b)}D[d>>2]=D[a>>2];D[d+4>>2]=D[a+4>>2];D[d+8>>2]=D[a+8>>2];if(B[a+27|0]<0){ma(D[a+16>>2])}$=a+32|0;break a}Ca();T()}}function Rf(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0;d=$-16|0;$=d;a:{e=Ba(c);if(e>>>0<4294967280){b:{c:{if(e>>>0>=11){f=e+16&-16;a=na(f);D[d+8>>2]=f|-2147483648;D[d>>2]=a;D[d+4>>2]=e;break c}B[d+11|0]=e;a=d;if(!e){break b}}oa(a,c,e)}B[a+e|0]=0;c=E[d+11|0];e=c<<24>>24;b=D[b+4>>2];a=0;d:{if(!b){break d}a=c;c=(e|0)<0;a=c?D[d+4>>2]:a;f=c?D[d>>2]:d;while(1){c=E[b+27|0];g=c<<24>>24<0;c=g?D[b+20>>2]:c;j=c>>>0>>0;e:{f:{g:{h:{i:{j:{i=j?c:a;if(i){h=b+16|0;g=g?D[h>>2]:h;h=ua(f,g,i);if(h){break j}if(a>>>0>=c>>>0){break i}break e}if(a>>>0>=c>>>0){break h}break e}if((h|0)<0){break e}}c=ua(g,f,i);if(c){break g}}if(j){break f}a=1;break d}if((c|0)<0){break f}a=1;break d}b=b+4|0}b=D[b>>2];if(b){continue}break}a=0}if((e|0)<0){ma(D[d>>2])}$=d+16|0;break a}Ca();T()}return a|0}function kc(a){var b=0,c=0,d=0;b=D[a+8>>2];d=D[a>>2];a:{if(E[a+12|0]){b:{c:{d:{e:{if((b|0)==-1){break e}c=b+1|0;b=(c>>>0)%3|0?c:b-2|0;if((b|0)==-1){break e}b=D[D[d+12>>2]+(b<<2)>>2];if((b|0)!=-1){break d}}D[a+8>>2]=-1;break c}c=b+1|0;b=(c>>>0)%3|0?c:b-2|0;D[a+8>>2]=b;if((b|0)!=-1){break b}}c=D[a+4>>2];b=-1;f:{if((c|0)==-1){break f}g:{if((c>>>0)%3|0){c=c-1|0;break g}c=c+2|0;b=-1;if((c|0)==-1){break f}}c=D[D[d+12>>2]+(c<<2)>>2];b=-1;if((c|0)==-1){break f}b=c-1|0;if((c>>>0)%3|0){break f}b=c+2|0}B[a+12|0]=0;D[a+8>>2]=b;return}if((b|0)!=D[a+4>>2]){break a}D[a+8>>2]=-1;return}c=-1;h:{if((b|0)==-1){break h}i:{if((b>>>0)%3|0){b=b-1|0;break i}b=b+2|0;c=-1;if((b|0)==-1){break h}}b=D[D[d+12>>2]+(b<<2)>>2];c=-1;if((b|0)==-1){break h}c=b-1|0;if((b>>>0)%3|0){break h}c=b+2|0}D[a+8>>2]=c}}function Ld(a){var b=0,c=0,d=0;b=na(32);c=E[1475]|E[1476]<<8;B[b+24|0]=c;B[b+25|0]=c>>>8;c=E[1471]|E[1472]<<8|(E[1473]<<16|E[1474]<<24);d=E[1467]|E[1468]<<8|(E[1469]<<16|E[1470]<<24);B[b+16|0]=d;B[b+17|0]=d>>>8;B[b+18|0]=d>>>16;B[b+19|0]=d>>>24;B[b+20|0]=c;B[b+21|0]=c>>>8;B[b+22|0]=c>>>16;B[b+23|0]=c>>>24;c=E[1463]|E[1464]<<8|(E[1465]<<16|E[1466]<<24);d=E[1459]|E[1460]<<8|(E[1461]<<16|E[1462]<<24);B[b+8|0]=d;B[b+9|0]=d>>>8;B[b+10|0]=d>>>16;B[b+11|0]=d>>>24;B[b+12|0]=c;B[b+13|0]=c>>>8;B[b+14|0]=c>>>16;B[b+15|0]=c>>>24;c=E[1455]|E[1456]<<8|(E[1457]<<16|E[1458]<<24);d=E[1451]|E[1452]<<8|(E[1453]<<16|E[1454]<<24);B[b|0]=d;B[b+1|0]=d>>>8;B[b+2|0]=d>>>16;B[b+3|0]=d>>>24;B[b+4|0]=c;B[b+5|0]=c>>>8;B[b+6|0]=c>>>16;B[b+7|0]=c>>>24;B[b+26|0]=0;D[a>>2]=-1;ta(a+4|0,b,26);ma(b)}function Ra(a,b,c){var d=0,e=0;a:{if((a|0)==(b|0)){break a}e=a+c|0;if(b-e>>>0<=0-(c<<1)>>>0){return oa(a,b,c)}d=(a^b)&3;b:{c:{if(a>>>0>>0){if(d){d=a;break b}if(!(a&3)){d=a;break c}d=a;while(1){if(!c){break a}B[d|0]=E[b|0];b=b+1|0;c=c-1|0;d=d+1|0;if(d&3){continue}break}break c}d:{if(d){break d}if(e&3){while(1){if(!c){break a}c=c-1|0;d=c+a|0;B[d|0]=E[b+c|0];if(d&3){continue}break}}if(c>>>0<=3){break d}while(1){c=c-4|0;D[c+a>>2]=D[b+c>>2];if(c>>>0>3){continue}break}}if(!c){break a}while(1){c=c-1|0;B[c+a|0]=E[b+c|0];if(c){continue}break}break a}if(c>>>0<=3){break b}while(1){D[d>>2]=D[b>>2];b=b+4|0;d=d+4|0;c=c-4|0;if(c>>>0>3){continue}break}}if(!c){break a}while(1){B[d|0]=E[b|0];d=d+1|0;b=b+1|0;c=c-1|0;if(c){continue}break}}return a}function Pb(a,b){var c=0,d=0,e=0,f=0,g=0,h=0,i=0;d=D[a+8>>2];c=D[a+4>>2];if(d-c>>2>>>0>=b>>>0){if(b){b=b<<2;c=qa(c,0,b)+b|0}D[a+4>>2]=c;return}a:{b:{c:{g=D[a>>2];f=c-g>>2;e=f+b|0;if(e>>>0<1073741824){d=d-g|0;h=d>>1;e=d>>>0<2147483644?e>>>0>>0?h:e:1073741823;if(e){if(e>>>0>=1073741824){break c}i=na(e<<2)}d=(f<<2)+i|0;f=b<<2;b=qa(d,0,f);f=b+f|0;e=(e<<2)+i|0;if((c|0)==(g|0)){break b}while(1){c=c-4|0;b=D[c>>2];D[c>>2]=0;d=d-4|0;D[d>>2]=b;if((c|0)!=(g|0)){continue}break}D[a+8>>2]=e;b=D[a+4>>2];D[a+4>>2]=f;c=D[a>>2];D[a>>2]=d;if((b|0)==(c|0)){break a}while(1){b=b-4|0;a=D[b>>2];D[b>>2]=0;if(a){ba[D[D[a>>2]+4>>2]](a)}if((b|0)!=(c|0)){continue}break}break a}pa();T()}sa();T()}D[a+8>>2]=e;D[a+4>>2]=f;D[a>>2]=b}if(c){ma(c)}}function Dc(a,b){var c=0,d=0,e=0;c=$+-64|0;$=c;d=D[a>>2];e=D[d-4>>2];d=D[d-8>>2];D[c+32>>2]=0;D[c+36>>2]=0;D[c+40>>2]=0;D[c+44>>2]=0;D[c+48>>2]=0;D[c+52>>2]=0;B[c+55|0]=0;B[c+56|0]=0;B[c+57|0]=0;B[c+58|0]=0;B[c+59|0]=0;B[c+60|0]=0;B[c+61|0]=0;B[c+62|0]=0;D[c+24>>2]=0;D[c+28>>2]=0;D[c+20>>2]=0;D[c+16>>2]=11020;D[c+12>>2]=a;D[c+8>>2]=b;a=a+d|0;d=0;a:{if(Na(e,b,0)){D[c+56>>2]=1;ba[D[D[e>>2]+20>>2]](e,c+8|0,a,a,1,0);d=D[c+32>>2]==1?a:0;break a}ba[D[D[e>>2]+24>>2]](e,c+8|0,a,1,0);b:{switch(D[c+44>>2]){case 0:d=D[c+48>>2]==1?D[c+36>>2]==1?D[c+40>>2]==1?D[c+28>>2]:0:0:0;break a;case 1:break b;default:break a}}if(D[c+32>>2]!=1){if(D[c+48>>2]|D[c+36>>2]!=1|D[c+40>>2]!=1){break a}}d=D[c+24>>2]}$=c- -64|0;return d}function Vd(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0;d=D[b+12>>2];g=d;c=D[b+20>>2];e=c;f=D[b+16>>2];h=f+4|0;c=h>>>0<4?c+1|0:c;i=D[b+8>>2];a:{if(i>>>0>>0&(c|0)>=(d|0)|(c|0)>(d|0)){break a}j=D[b>>2];d=j+f|0;d=E[d|0]|E[d+1|0]<<8|(E[d+2|0]<<16|E[d+3|0]<<24);D[b+16>>2]=h;D[b+20>>2]=c;c=e;e=f+8|0;c=e>>>0<8?c+1|0:c;f=e;e=c;if(f>>>0>i>>>0&(c|0)>=(g|0)|(c|0)>(g|0)){break a}c=h+j|0;c=E[c|0]|E[c+1|0]<<8|(E[c+2|0]<<16|E[c+3|0]<<24);D[b+16>>2]=f;D[b+20>>2]=e;if((c|0)<(d|0)){break a}D[a+16>>2]=c;D[a+12>>2]=d;g=(c>>31)-((d>>31)+(c>>>0>>0)|0)|0;c=c-d|0;if(!g&c>>>0>2147483646|g){break a}c=c+1|0;D[a+20>>2]=c;d=c>>>1|0;D[a+24>>2]=d;D[a+28>>2]=0-d;if(!(c&1)){D[a+24>>2]=d-1}k=Da(a+112|0,b)}return k|0}function Uc(a,b){var c=0,d=0,e=0,f=0;d=-1;e=-1;f=-1;a:{b:{if((b|0)==-1){break b}e=D[D[D[a+4>>2]+12>>2]+(b<<2)>>2];c=b+1|0;c=(c>>>0)%3|0?c:b-2|0;if((c|0)>=0){f=(c>>>0)/3|0;f=D[(D[D[a>>2]+96>>2]+J(f,12)|0)+(c-J(f,3)<<2)>>2]}c:{if((e|0)==-1){break c}c=((e>>>0)%3|0?-1:2)+e|0;if((c|0)<0){break c}d=(c>>>0)/3|0;d=D[(D[D[a>>2]+96>>2]+J(d,12)|0)+(c-J(d,3)<<2)>>2]}c=-1;if((d|0)!=(f|0)){break a}f=-1;d:{b=((b>>>0)%3|0?-1:2)+b|0;if((b|0)>=0){d=(b>>>0)/3|0;d=D[(D[D[a>>2]+96>>2]+J(d,12)|0)+(b-J(d,3)<<2)>>2];if((e|0)==-1){break b}break d}d=-1;if((e|0)!=-1){break d}break b}b=e+1|0;b=(b>>>0)%3|0?b:e-2|0;if((b|0)<0){break b}c=D[D[a>>2]+96>>2];a=(b>>>0)/3|0;f=D[(c+J(a,12)|0)+(b-J(a,3)<<2)>>2]}c=(d|0)==(f|0)?e:-1}return c}function qa(a,b,c){var d=0,e=0,f=0;a:{if(!c){break a}B[a|0]=b;e=a+c|0;B[e-1|0]=b;if(c>>>0<3){break a}B[a+2|0]=b;B[a+1|0]=b;B[e-3|0]=b;B[e-2|0]=b;if(c>>>0<7){break a}B[a+3|0]=b;B[e-4|0]=b;if(c>>>0<9){break a}e=0-a&3;f=e+a|0;d=J(b&255,16843009);D[f>>2]=d;b=c-e&-4;c=b+f|0;D[c-4>>2]=d;if(b>>>0<9){break a}D[f+8>>2]=d;D[f+4>>2]=d;D[c-8>>2]=d;D[c-12>>2]=d;if(b>>>0<25){break a}D[f+24>>2]=d;D[f+20>>2]=d;D[f+16>>2]=d;D[f+12>>2]=d;D[c-16>>2]=d;D[c-20>>2]=d;D[c-24>>2]=d;D[c-28>>2]=d;c=b;b=f&4|24;c=c-b|0;if(c>>>0<32){break a}d=fi(d,0,1,1);e=aa;b=b+f|0;while(1){D[b+24>>2]=d;D[b+28>>2]=e;D[b+16>>2]=d;D[b+20>>2]=e;D[b+8>>2]=d;D[b+12>>2]=e;D[b>>2]=d;D[b+4>>2]=e;b=b+32|0;c=c-32|0;if(c>>>0>31){continue}break}}return a}function ee(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0;d=D[b+12>>2];h=d;c=D[b+20>>2];e=c;f=D[b+16>>2];g=f+4|0;c=g>>>0<4?c+1|0:c;i=D[b+8>>2];a:{if(i>>>0>>0&(c|0)>=(d|0)|(c|0)>(d|0)){break a}j=D[b>>2];d=j+f|0;d=E[d|0]|E[d+1|0]<<8|(E[d+2|0]<<16|E[d+3|0]<<24);D[b+16>>2]=g;D[b+20>>2]=c;c=e;e=f+8|0;c=e>>>0<8?c+1|0:c;f=e;e=c;if(f>>>0>i>>>0&(c|0)>=(h|0)|(c|0)>(h|0)){break a}c=g+j|0;c=E[c|0]|E[c+1|0]<<8|(E[c+2|0]<<16|E[c+3|0]<<24);D[b+16>>2]=f;D[b+20>>2]=e;if((c|0)<(d|0)){break a}D[a+16>>2]=c;D[a+12>>2]=d;b=(c>>31)-((d>>31)+(c>>>0>>0)|0)|0;c=c-d|0;if(!b&c>>>0>2147483646|b){break a}k=1;b=c+1|0;D[a+20>>2]=b;c=b>>>1|0;D[a+24>>2]=c;D[a+28>>2]=0-c;if(b&1){break a}D[a+24>>2]=c-1}return k|0}function Gg(a){a=a|0;var b=0,c=0,d=0,e=0,f=0,g=0;b=D[a+4>>2];d=D[b>>2];a:{c=D[a+12>>2];c=D[c+56>>2]-D[c+52>>2]|0;e=c>>2;b:{if(e>>>0<=D[b+8>>2]-d>>2>>>0){break b}if((c|0)<0){break a}f=D[b+4>>2];c=na(c);g=c+(e<<2)|0;e=f-d|0;f=e+c|0;if((e|0)>0){oa(c,d,e)}D[b+8>>2]=g;D[b+4>>2]=f;D[b>>2]=c;if(!d){break b}ma(d)}e=a+8|0;b=D[a+76>>2];c:{if(b){d=D[b>>2];if((d|0)==D[b+4>>2]){return 1}b=0;while(1){c=ld(e,D[(b<<2)+d>>2]);if(!c){break c}f=D[a+76>>2];d=D[f>>2];b=b+1|0;if(b>>>0>2]-d>>2>>>0){continue}break}break c}c=1;a=D[D[a+12>>2]+64>>2];a=D[a+4>>2]-D[a>>2]|0;if(a>>>0<12){break c}a=(a>>2>>>0)/3|0;b=0;while(1){c=ld(e,J(b,3));if(!c){break c}b=b+1|0;if((a|0)!=(b|0)){continue}break}}return c|0}pa();T()}function Mg(a){a=a|0;var b=0,c=0,d=0,e=0,f=0,g=0;b=D[a+4>>2];d=D[b>>2];a:{c=D[a+12>>2];c=D[c+28>>2]-D[c+24>>2]|0;e=c>>2;b:{if(e>>>0<=D[b+8>>2]-d>>2>>>0){break b}if((c|0)<0){break a}f=D[b+4>>2];c=na(c);g=c+(e<<2)|0;e=f-d|0;f=e+c|0;if((e|0)>0){oa(c,d,e)}D[b+8>>2]=g;D[b+4>>2]=f;D[b>>2]=c;if(!d){break b}ma(d)}e=a+8|0;b=D[a+76>>2];c:{if(b){d=D[b>>2];if((d|0)==D[b+4>>2]){return 1}b=0;while(1){c=md(e,D[(b<<2)+d>>2]);if(!c){break c}f=D[a+76>>2];d=D[f>>2];b=b+1|0;if(b>>>0>2]-d>>2>>>0){continue}break}break c}c=1;a=D[a+12>>2];a=D[a+4>>2]-D[a>>2]|0;if(a>>>0<12){break c}a=(a>>2>>>0)/3|0;b=0;while(1){c=md(e,J(b,3));if(!c){break c}b=b+1|0;if((a|0)!=(b|0)){continue}break}}return c|0}pa();T()}function Sc(a,b,c){var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0;d=$-16|0;$=d;f=D[a+24>>2];k=D[a+28>>2];a:{if((f|0)!=(k|0)){while(1){D[d+8>>2]=0;D[d>>2]=0;D[d+4>>2]=0;a=Qc(D[f>>2],b,d);g=E[d+11|0];h=g<<24>>24;i=3;b:{c:{d:{if(!a){break d}i=0;a=E[c+11|0];e=a<<24>>24;j=(h|0)<0?D[d+4>>2]:g;if((j|0)!=(((e|0)<0?D[c+4>>2]:a)|0)){break d}a=(e|0)<0?D[c>>2]:c;e=(h|0)<0;e:{if(!e){e=d;if(!h){break e}while(1){if(E[e|0]!=E[a|0]){break d}a=a+1|0;e=e+1|0;g=g-1|0;if(g){continue}break}break e}if(!j){break e}if(ua(e?D[d>>2]:d,a,j)){break c}}l=D[f>>2];i=1}if((h|0)>=0){break b}}ma(D[d>>2])}f:{switch(i|0){case 0:case 3:break f;default:break a}}f=f+4|0;if((k|0)!=(f|0)){continue}break}}l=0}$=d+16|0;return l}function Ha(a,b,c){var d=0,e=0,f=0;f=$-16|0;$=f;D[a+4>>2]=0;a:{b:{if(!b){break b}d=D[a+8>>2];e=d<<5;c:{if(e>>>0>=b>>>0){D[a+4>>2]=b;break c}D[f+8>>2]=0;D[f>>2]=0;D[f+4>>2]=0;if((b|0)<0){break a}if(e>>>0<=1073741822){d=d<<6;e=b+31&-32;d=d>>>0>e>>>0?d:e}else{d=2147483647}Xa(f,d);d=D[a>>2];D[a>>2]=D[f>>2];D[f>>2]=d;e=D[a+4>>2];D[a+4>>2]=b;D[f+4>>2]=e;e=D[a+8>>2];D[a+8>>2]=D[f+8>>2];D[f+8>>2]=e;if(!d){break c}ma(d)}d=b>>>5|0;e=d<<2;a=D[a>>2];if(E[c|0]){a=qa(a,255,e);if((b&-32)==(b|0)){break b}a=a+(d<<2)|0;D[a>>2]=D[a>>2]|-1>>>32-(b&31);break b}a=qa(a,0,e);if((b&-32)==(b|0)){break b}a=a+(d<<2)|0;D[a>>2]=D[a>>2]&(-1>>>32-(b&31)^-1)}$=f+16|0;return}pa();T()}function xe(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0;d=D[b>>2];b=D[b+4>>2];f=D[D[a+8>>2]+40>>2];m=na((f|0)>=0?f:-1);g=1;h=b-d|0;a:{if((h|0)<=0){break a}b=0;g=0;d=0+D[c+20>>2]|0;i=D[c+16>>2];e=f+i|0;d=e>>>0>>0?d+1|0:d;j=e;e=D[c+12>>2];if(j>>>0>G[c+8>>2]&(e|0)<=(d|0)|(d|0)>(e|0)){break a}k=h>>2;g=(k|0)>1?k:1;while(1){b:{e=oa(m,i+D[c>>2]|0,f);D[c+16>>2]=j;D[c+20>>2]=d;oa(D[D[D[a+8>>2]+64>>2]>>2]+b|0,e,f);l=l+1|0;if((g|0)==(l|0)){break b}b=b+f|0;d=n+D[c+20>>2]|0;i=D[c+16>>2];e=f+i|0;d=e>>>0>>0?d+1|0:d;j=e;h=e;e=D[c+12>>2];if((e|0)>=(d|0)&G[c+8>>2]>=h>>>0|(d|0)<(e|0)){continue}}break}g=(l|0)>=(k|0)}ma(m);return g|0}function oe(a,b){a=a|0;b=b|0;a=0;a:{switch(b|0){case 0:a=na(20);D[a+12>>2]=-1;D[a+16>>2]=0;D[a+4>>2]=0;D[a+8>>2]=0;D[a>>2]=1920;return a|0;case 1:a=na(24);D[a+12>>2]=-1;D[a+16>>2]=0;D[a+4>>2]=0;D[a+8>>2]=0;D[a>>2]=1920;D[a+20>>2]=0;D[a>>2]=2136;return a|0;case 2:a=na(48);D[a+12>>2]=-1;D[a+16>>2]=0;D[a+4>>2]=0;D[a+8>>2]=0;D[a>>2]=1920;D[a+20>>2]=0;D[a>>2]=2136;D[a+24>>2]=1624;D[a>>2]=7948;D[a+32>>2]=0;D[a+36>>2]=0;D[a+28>>2]=-1;D[a+40>>2]=0;D[a+44>>2]=0;return a|0;case 3:a=na(32);D[a+12>>2]=-1;D[a+16>>2]=0;D[a+4>>2]=0;D[a+8>>2]=0;D[a>>2]=1920;D[a+20>>2]=0;D[a>>2]=2136;D[a+24>>2]=1032;D[a>>2]=5812;D[a+28>>2]=-1;break;default:break a}}return a|0}function ih(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0;D[b>>2]=1;f=b+8|0;c=D[b+8>>2];d=D[b+12>>2]-c|0;if(d>>>0<=4294967291){Eb(f,d+4|0);c=D[f>>2]}c=c+d|0;d=D[a+4>>2];B[c|0]=d;B[c+1|0]=d>>>8;B[c+2|0]=d>>>16;B[c+3|0]=d>>>24;c=D[a+8>>2];if((c|0)!=D[a+12>>2]){d=0;while(1){g=(d<<2)+c|0;c=D[b+8>>2];e=D[b+12>>2]-c|0;if(e>>>0<=4294967291){Eb(f,e+4|0);c=D[f>>2]}c=c+e|0;e=D[g>>2];B[c|0]=e;B[c+1|0]=e>>>8;B[c+2|0]=e>>>16;B[c+3|0]=e>>>24;d=d+1|0;c=D[a+8>>2];if(d>>>0>2]-c>>2>>>0){continue}break}}c=D[b+12>>2];b=D[b+8>>2];c=c-b|0;if(c>>>0<=4294967291){Eb(f,c+4|0);b=D[f>>2]}b=b+c|0;a=D[a+20>>2];B[b|0]=a;B[b+1|0]=a>>>8;B[b+2|0]=a>>>16;B[b+3|0]=a>>>24}function Ef(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,f=0,g=0;e=$-32|0;$=e;a:{b:{f=Ba(c);if(f>>>0<4294967280){c:{d:{if(f>>>0>=11){g=f+16&-16;a=na(g);D[e+24>>2]=g|-2147483648;D[e+16>>2]=a;D[e+20>>2]=f;break d}B[e+27|0]=f;a=e+16|0;if(!f){break c}}oa(a,c,f)}B[a+f|0]=0;c=Ba(d);if(c>>>0>=4294967280){break b}e:{f:{if(c>>>0>=11){f=c+16&-16;a=na(f);D[e+8>>2]=f|-2147483648;D[e>>2]=a;D[e+4>>2]=c;break f}B[e+11|0]=c;a=e;if(!c){break e}}oa(a,d,c)}B[a+c|0]=0;c=D[b+4>>2];a=-1;g:{if(!c){break g}c=Sc(c,e+16|0,e);a=-1;if(!c){break g}a=Nc(b,D[c+24>>2])}if(B[e+11|0]<0){ma(D[e>>2])}if(B[e+27|0]<0){ma(D[e+16>>2])}$=e+32|0;break a}Ca();T()}Ca();T()}return a|0}function je(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0;h=D[c+12>>2];d=h;e=D[c+20>>2];i=D[c+8>>2];f=D[c+16>>2];a:{if((d|0)<=(e|0)&i>>>0<=f>>>0|(d|0)<(e|0)){break a}j=D[c>>2];k=B[j+f|0];d=e;g=f+1|0;d=g?d:d+1|0;D[c+16>>2]=g;D[c+20>>2]=d;b:{if((k|0)==-2){break b}if((d|0)>=(h|0)&g>>>0>=i>>>0|(d|0)>(h|0)){break a}d=B[g+j|0];f=f+2|0;e=f>>>0<2?e+1|0:e;D[c+16>>2]=f;D[c+20>>2]=e;if((d-4&255)>>>0<251){break a}e=ba[D[D[a>>2]+40>>2]](a,k,d)|0;d=D[a+20>>2];D[a+20>>2]=e;if(!d){break b}ba[D[D[d>>2]+4>>2]](d)}d=D[a+20>>2];if(d){if(!(ba[D[D[a>>2]+28>>2]](a,d)|0)){break a}}l=ba[D[D[a>>2]+36>>2]](a,b,c)|0}return l|0}function Ch(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0;f=$-32|0;$=f;h=(e&1073741823)!=(e|0)?-1:e<<2;h=qa(na(h),0,h);g=D[b>>2];i=D[b+4>>2];k=D[h+4>>2];D[f+16>>2]=D[h>>2];D[f+20>>2]=k;D[f+8>>2]=g;D[f+12>>2]=i;i=a+8|0;Jb(f+24|0,i,f+16|0,f+8|0);D[c>>2]=D[f+24>>2];D[c+4>>2]=D[f+28>>2];if((d|0)>(e|0)){k=0-e<<2;a=e;while(1){g=a<<2;j=g+b|0;m=D[j>>2];j=D[j+4>>2];g=c+g|0;l=g+k|0;n=D[l+4>>2];D[f+16>>2]=D[l>>2];D[f+20>>2]=n;D[f+8>>2]=m;D[f+12>>2]=j;Jb(f+24|0,i,f+16|0,f+8|0);D[g>>2]=D[f+24>>2];D[g+4>>2]=D[f+28>>2];a=a+e|0;if((d|0)>(a|0)){continue}break}}ma(h);$=f+32|0;return 1}function ib(a,b,c){var d=0,e=0,f=0,g=0,h=0;f=c-b|0;g=f>>2;d=D[a+8>>2];e=D[a>>2];if(g>>>0<=d-e>>2>>>0){d=D[a+4>>2];f=d-e|0;h=f>>2;f=g>>>0>h>>>0?b+f|0:c;if((f|0)!=(b|0)){while(1){D[e>>2]=D[b>>2];e=e+4|0;b=b+4|0;if((f|0)!=(b|0)){continue}break}}if(g>>>0>h>>>0){b=c-f|0;if((b|0)>0){d=oa(d,f,b)+b|0}D[a+4>>2]=d;return}D[a+4>>2]=e;return}if(e){D[a+4>>2]=e;ma(e);D[a+8>>2]=0;D[a>>2]=0;D[a+4>>2]=0;d=0}a:{if((f|0)<0){break a}e=d>>1;d=d>>>0<2147483644?e>>>0>g>>>0?e:g:1073741823;if(d>>>0>=1073741824){break a}e=d<<2;d=na(e);D[a>>2]=d;D[a+4>>2]=d;D[a+8>>2]=d+e;if((b|0)!=(c|0)){d=oa(d,b,f)+f|0}D[a+4>>2]=d;return}pa();T()}function xf(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0;a:{if(G[b+80>>2]>65535){break a}a=D[b+100>>2];b=D[b+96>>2];e=(a-b|0)/12|0;f=J(e,6);g=(f|0)==(c|0);if((a|0)==(b|0)|(c|0)!=(f|0)){break a}g=1;c=e>>>0>1?e:1;i=c&1;a=0;if(e>>>0>=2){j=c&-2;c=0;while(1){f=J(a,6);h=f+d|0;e=b+J(a,12)|0;C[h>>1]=D[e>>2];C[(f|2)+d>>1]=D[e+4>>2];C[h+4>>1]=D[e+8>>2];f=a|1;e=J(f,6)+d|0;f=b+J(f,12)|0;C[e>>1]=D[f>>2];C[e+2>>1]=D[f+4>>2];C[e+4>>1]=D[f+8>>2];a=a+2|0;c=c+2|0;if((j|0)!=(c|0)){continue}break}}if(!i){break a}c=J(a,6)+d|0;a=b+J(a,12)|0;C[c>>1]=D[a>>2];C[c+2>>1]=D[a+4>>2];C[c+4>>1]=D[a+8>>2]}return g|0}function Pd(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0;e=D[b+12>>2];c=D[b+20>>2];f=c;g=D[b+16>>2];d=g+4|0;c=d>>>0<4?c+1|0:c;h=D[b+8>>2];i=d;a:{if(h>>>0>>0&(c|0)>=(e|0)|(c|0)>(e|0)){break a}d=g+D[b>>2]|0;d=E[d|0]|E[d+1|0]<<8|(E[d+2|0]<<16|E[d+3|0]<<24);D[b+16>>2]=i;D[b+20>>2]=c;c=f;f=g+8|0;c=f>>>0<8?c+1|0:c;if(f>>>0>h>>>0&(c|0)>=(e|0)|(c|0)>(e|0)){break a}D[b+16>>2]=f;D[b+20>>2]=c;if(!(d&1)){break a}c=M(d)^31;if(c-30>>>0<4294967267){break a}D[a+8>>2]=c+1;e=-2<>2]=c;D[a+12>>2]=e^-1;D[a+24>>2]=(c|0)/2;H[a+20>>2]=K(2)/K(c|0);j=Da(a+96|0,b)}return j|0}function vd(a){var b=0,c=0,d=0,e=0,f=0;f=1;c=D[a+140>>2];a:{if((c|0)<=0){break a}b=c<<4;d=na((c|0)!=(c&268435455)?-1:b|4);D[d>>2]=c;d=d+4|0;c=d+b|0;b=d;while(1){D[b>>2]=0;D[b+4>>2]=0;B[b+5|0]=0;B[b+6|0]=0;B[b+7|0]=0;B[b+8|0]=0;B[b+9|0]=0;B[b+10|0]=0;B[b+11|0]=0;B[b+12|0]=0;b=b+16|0;if((c|0)!=(b|0)){continue}break}e=D[a+136>>2];D[a+136>>2]=d;if(e){c=e-4|0;d=D[c>>2];if(d){b=(d<<4)+e|0;while(1){b=b-16|0;if((e|0)!=(b|0)){continue}break}}ma(c)}b=0;if(D[a+140>>2]<=0){break a}while(1){f=Da(D[a+136>>2]+(b<<4)|0,a);if(!f){break a}b=b+1|0;if((b|0)>2]){continue}break}}return f}function Of(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0,g=0;a=$-32|0;$=a;D[a+24>>2]=0;D[a+28>>2]=0;a:{d=Ba(c);if(d>>>0<4294967280){b:{c:{if(d>>>0>=11){f=d+16&-16;e=na(f);D[a+16>>2]=f|-2147483648;D[a+8>>2]=e;D[a+12>>2]=d;break c}B[a+19|0]=d;e=a+8|0;if(!d){break b}}oa(e,c,d)}B[d+e|0]=0;c=b+4|0;b=bb(b,a+8|0);d:{if((c|0)==(b|0)){break d}c=D[b+32>>2];b=D[b+28>>2];if((c-b|0)!=8){break d}c=E[b+4|0]|E[b+5|0]<<8|(E[b+6|0]<<16|E[b+7|0]<<24);D[a+24>>2]=E[b|0]|E[b+1|0]<<8|(E[b+2|0]<<16|E[b+3|0]<<24);D[a+28>>2]=c}g=I[a+24>>3];if(B[a+19|0]<0){ma(D[a+8>>2])}$=a+32|0;break a}Ca();T()}return+g}function Zb(a,b){var c=0,d=0,e=0,f=0,g=0;a:{if(D[a+64>>2]){break a}c=na(32);D[c+16>>2]=0;D[c+20>>2]=0;D[c+8>>2]=0;D[c>>2]=0;D[c+4>>2]=0;D[c+24>>2]=0;D[c+28>>2]=0;d=D[a+64>>2];D[a+64>>2]=c;if(!d){break a}c=D[d>>2];if(c){D[d+4>>2]=c;ma(c)}ma(d)}e=D[a+64>>2];c=D[a+28>>2]-1|0;if(c>>>0<=10){d=D[(c<<2)+10148>>2]}else{d=-1}c=J(d,B[a+24|0]);d=c;g=c>>31;e=kd(e,0,fi(c,g,b,0),aa);if(e){c=D[a+64>>2];D[a>>2]=c;f=D[c+20>>2];D[a+8>>2]=D[c+16>>2];D[a+12>>2]=f;f=D[c+24>>2];c=D[c+28>>2];D[a+48>>2]=0;D[a+52>>2]=0;D[a+40>>2]=d;D[a+44>>2]=g;D[a+16>>2]=f;D[a+20>>2]=c;D[a+80>>2]=b}return e}function Gh(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0;f=D[b+12>>2];c=D[b+20>>2];e=c;g=D[b+16>>2];d=g+4|0;c=d>>>0<4?c+1|0:c;h=D[b+8>>2];i=d;a:{if(h>>>0>>0&(c|0)>=(f|0)|(c|0)>(f|0)){break a}d=g+D[b>>2]|0;d=E[d|0]|E[d+1|0]<<8|(E[d+2|0]<<16|E[d+3|0]<<24);D[b+16>>2]=i;D[b+20>>2]=c;c=e;e=g+8|0;c=e>>>0<8?c+1|0:c;if(e>>>0>h>>>0&(c|0)>=(f|0)|(c|0)>(f|0)){break a}D[b+16>>2]=e;D[b+20>>2]=c;if(!(d&1)){break a}b=M(d)^31;if(b-30>>>0<4294967267){break a}j=1;D[a+8>>2]=b+1;c=-2<>2]=b;D[a+12>>2]=c^-1;D[a+24>>2]=(b|0)/2;H[a+20>>2]=K(2)/K(b|0)}return j|0}function bb(a,b){var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0;h=a+4|0;a=D[a+4>>2];a:{b:{if(!a){break b}d=E[b+11|0];c=d<<24>>24<0;f=c?D[b>>2]:b;d=c?D[b+4>>2]:d;b=h;while(1){e=E[a+27|0];c=e<<24>>24<0;e=c?D[a+20>>2]:e;g=e>>>0>d>>>0;i=g?d:e;c:{if(i){j=a+16|0;c=ua(c?D[j>>2]:j,f,i);if(c){break c}}c=d>>>0>e>>>0?-1:g}c=(c|0)<0;b=c?b:a;a=D[(c?a+4|0:a)>>2];if(a){continue}break}if((b|0)==(h|0)){break b}c=E[b+27|0];a=c<<24>>24<0;d:{c=a?D[b+20>>2]:c;e=c>>>0>>0?c:d;if(e){g=f;f=b+16|0;a=ua(g,a?D[f>>2]:f,e);if(a){break d}}if(c>>>0>d>>>0){break b}break a}if((a|0)>=0){break a}}b=h}return b}function _b(a,b){var c=0;c=D[b+4>>2];D[a>>2]=D[b>>2];D[a+4>>2]=c;c=D[b+60>>2];D[a+56>>2]=D[b+56>>2];D[a+60>>2]=c;c=D[b+52>>2];D[a+48>>2]=D[b+48>>2];D[a+52>>2]=c;c=D[b+44>>2];D[a+40>>2]=D[b+40>>2];D[a+44>>2]=c;c=D[b+36>>2];D[a+32>>2]=D[b+32>>2];D[a+36>>2]=c;c=D[b+28>>2];D[a+24>>2]=D[b+24>>2];D[a+28>>2]=c;c=D[b+20>>2];D[a+16>>2]=D[b+16>>2];D[a+20>>2]=c;c=D[b+12>>2];D[a+8>>2]=D[b+8>>2];D[a+12>>2]=c;D[a+88>>2]=0;D[a+64>>2]=0;D[a+68>>2]=0;D[a+72>>2]=0;D[a+76>>2]=0;B[a+77|0]=0;B[a+78|0]=0;B[a+79|0]=0;B[a+80|0]=0;B[a+81|0]=0;B[a+82|0]=0;B[a+83|0]=0;B[a+84|0]=0;return a}function wf(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0;a=D[b+100>>2];b=D[b+96>>2];h=a-b|0;a:{if((h|0)!=(c|0)|(a|0)==(b|0)){break a}g=(c|0)/12|0;e=g>>>0>1?g:1;j=e&1;a=0;if(g>>>0>=2){k=e&-2;g=0;while(1){e=J(a,12);i=e+d|0;f=b+e|0;D[i>>2]=D[f>>2];D[(e|4)+d>>2]=D[f+4>>2];D[i+8>>2]=D[f+8>>2];f=J(a|1,12);e=f+d|0;f=b+f|0;D[e>>2]=D[f>>2];D[e+4>>2]=D[f+4>>2];D[e+8>>2]=D[f+8>>2];a=a+2|0;g=g+2|0;if((k|0)!=(g|0)){continue}break}}if(!j){break a}e=d;d=J(a,12);a=e+d|0;b=b+d|0;D[a>>2]=D[b>>2];D[a+4>>2]=D[b+4>>2];D[a+8>>2]=D[b+8>>2]}return(c|0)==(h|0)|0}function Le(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;if(Na(a,D[b+8>>2],e)){if(!(D[b+28>>2]==1|D[b+4>>2]!=(c|0))){D[b+28>>2]=d}return}a:{if(Na(a,D[b>>2],e)){if(!(D[b+16>>2]!=(c|0)&D[b+20>>2]!=(c|0))){if((d|0)!=1){break a}D[b+32>>2]=1;return}D[b+32>>2]=d;b:{if(D[b+44>>2]==4){break b}C[b+52>>1]=0;a=D[a+8>>2];ba[D[D[a>>2]+20>>2]](a,b,c,c,1,e);if(E[b+53|0]){D[b+44>>2]=3;if(!E[b+52|0]){break b}break a}D[b+44>>2]=4}D[b+20>>2]=c;D[b+40>>2]=D[b+40>>2]+1;if(D[b+36>>2]!=1|D[b+24>>2]!=2){break a}B[b+54|0]=1;return}a=D[a+8>>2];ba[D[D[a>>2]+24>>2]](a,b,c,d,e)}}function Eg(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0;f=na(64);c=na(12);D[c+8>>2]=D[D[a+4>>2]+80>>2];D[c>>2]=9968;D[c+4>>2]=0;f=wc(f,c);a:{b:{if((b|0)<0){c=f;break b}h=a+8|0;c=D[a+12>>2];e=D[a+8>>2];g=c-e>>2;c:{if((g|0)>(b|0)){break c}d=b+1|0;if(b>>>0>=g>>>0){Pb(h,d-g|0);break c}if(d>>>0>=g>>>0){break c}e=e+(d<<2)|0;if((e|0)!=(c|0)){while(1){c=c-4|0;d=D[c>>2];D[c>>2]=0;if(d){ba[D[D[d>>2]+4>>2]](d)}if((c|0)!=(e|0)){continue}break}}D[a+12>>2]=e}a=D[h>>2]+(b<<2)|0;c=D[a>>2];D[a>>2]=f;if(!c){break a}}ba[D[D[c>>2]+4>>2]](c)}return(b^-1)>>>31|0}function Yc(a,b,c){var d=0,e=0,f=0,g=0;a:{if((b|c)>=0){b:{if(b>>>0>1431655765){break b}d=J(b,3);Vb(a,d,10224);Vb(a+12|0,d,10228);d=D[a+24>>2];c:{if(D[a+32>>2]-d>>2>>>0>=c>>>0){break c}if(c>>>0>=1073741824){break a}e=D[a+28>>2];f=c<<2;c=na(f);f=c+f|0;e=e-d|0;g=e+c|0;if((e|0)>0){oa(c,d,e)}D[a+32>>2]=f;D[a+28>>2]=g;D[a+24>>2]=c;if(!d){break c}ma(d)}D[a+80>>2]=0;D[a+84>>2]=0;c=D[a+76>>2];D[a+76>>2]=0;if(c){ma(c)}D[a+68>>2]=0;D[a+72>>2]=0;c=a- -64|0;a=D[c>>2];D[c>>2]=0;if(!a){break b}ma(a)}a=b>>>0<1431655766}else{a=0}return a}pa();T()}function se(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0;c=D[a+60>>2];a:{if(!c){break a}D[c+4>>2]=a+48;if(!(ba[D[D[c>>2]+12>>2]](c)|0)){break a}b:{c=ba[D[D[a>>2]+24>>2]](a)|0;if((c|0)<=0){break b}while(1){c:{f=D[(ba[D[D[a>>2]+28>>2]](a)|0)+4>>2];g=ba[D[D[a>>2]+20>>2]](a,d)|0;e=D[a+60>>2];if(!(ba[D[D[e>>2]+8>>2]](e,D[D[f+8>>2]+(g<<2)>>2])|0)){break c}d=d+1|0;if((c|0)!=(d|0)){continue}break b}break}return 0}d=0;if(!(ba[D[D[a>>2]+36>>2]](a,b)|0)){break a}if(!(ba[D[D[a>>2]+40>>2]](a,b)|0)){break a}d=ba[D[D[a>>2]+44>>2]](a)|0}return d|0}function ob(a,b){var c=0,d=0,e=0,f=0,g=0,h=0;c=D[a+4>>2];if((c|0)!=D[a+8>>2]){d=D[b+4>>2];D[c>>2]=D[b>>2];D[c+4>>2]=d;D[c+8>>2]=D[b+8>>2];D[a+4>>2]=c+12;return}a:{f=D[a>>2];g=c-f|0;d=(g|0)/12|0;c=d+1|0;if(c>>>0<357913942){e=d<<1;e=d>>>0<178956970?c>>>0>>0?e:c:357913941;if(e){if(e>>>0>=357913942){break a}c=na(J(e,12))}else{c=0}d=c+J(d,12)|0;h=D[b+4>>2];D[d>>2]=D[b>>2];D[d+4>>2]=h;D[d+8>>2]=D[b+8>>2];b=d+J((g|0)/-12|0,12)|0;if((g|0)>0){oa(b,f,g)}D[a+8>>2]=c+J(e,12);D[a+4>>2]=d+12;D[a>>2]=b;if(f){ma(f)}return}pa();T()}sa();T()}function Ec(a,b,c,d,e,f,g){var h=0,i=0,j=0;h=$-16|0;$=h;if((b^-1)-17>>>0>=c>>>0){if(E[a+11|0]>>>7|0){j=D[a>>2]}else{j=a}a:{if(b>>>0<2147483623){D[h+8>>2]=b<<1;D[h+12>>2]=b+c;c=$-16|0;$=c;$=c+16|0;c=h+8|0;i=h+12|0;c=D[(G[i>>2]>2]?c:i)>>2];if(c>>>0>=11){i=c+16&-16;c=i-1|0;c=(c|0)==11?i:c}else{c=10}break a}c=-18}i=c+1|0;c=na(i);if(f){gb(c,g,f)}g=d-e|0;if((d|0)!=(e|0)){gb(c+f|0,e+j|0,g)}if((b|0)!=10){ma(j)}D[a>>2]=c;D[a+8>>2]=i|-2147483648;b=a;a=f+g|0;D[b+4>>2]=a;B[h+7|0]=0;B[a+c|0]=E[h+7|0];$=h+16|0;return}Ca();T()}function Fd(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0;c=D[a+216>>2];if((c|0)!=D[a+220>>2]){while(1){a:{c=D[J(e,144)+c>>2];if((c|0)<0){break a}d=D[a+4>>2];f=D[d+8>>2];if((c|0)>=D[d+12>>2]-f>>2){break a}d=0;c=D[(c<<2)+f>>2];if((ba[D[D[c>>2]+24>>2]](c)|0)<=0){break a}while(1){if((ba[D[D[c>>2]+20>>2]](c,d)|0)!=(b|0)){d=d+1|0;if((ba[D[D[c>>2]+24>>2]](c)|0)>(d|0)){continue}break a}break}a=D[a+216>>2]+J(e,144)|0;return(E[a+100|0]?a+4|0:0)|0}e=e+1|0;c=D[a+216>>2];if(e>>>0<(D[a+220>>2]-c|0)/144>>>0){continue}break}}return 0}function eb(a){var b=0,c=0,d=0,e=0,f=0;d=D[a+8>>2];a:{if(E[d+84|0]){break a}b=D[a+16>>2];if(!b|!E[b+84|0]){break a}c=D[d+72>>2];e=D[d+68>>2];B[b+84|0]=0;c=c-e>>2;f=D[b+68>>2];e=D[b+72>>2]-f>>2;b:{if(c>>>0>e>>>0){xa(b+68|0,c-e|0,2004);d=D[a+8>>2];break b}if(c>>>0>=e>>>0){break b}D[b+72>>2]=f+(c<<2)}if(E[d+84|0]){break a}c=D[d+68>>2];if((c|0)==D[d+72>>2]){break a}e=D[D[a+16>>2]+68>>2];b=0;while(1){f=b<<2;D[f+e>>2]=D[c+f>>2];b=b+1|0;c=D[d+68>>2];if(b>>>0>2]-c>>2>>>0){continue}break}}return D[a+16>>2]}function Hf(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,f=0,g=0;e=$+-64|0;$=e;f=La(e+8|0);D[f+16>>2]=0;D[f+20>>2]=0;D[f>>2]=b;D[f+8>>2]=c;D[f+12>>2]=0;b=e+48|0;Md(b,a,f,d);D[a+24>>2]=D[e+48>>2];d=a+24|0;a:{if((d|0)==(b|0)){break a}b=e+48|4;f=E[e+63|0];c=f<<24>>24;a=a+28|0;if(B[a+11|0]>=0){if((c|0)>=0){c=D[b+4>>2];D[a>>2]=D[b>>2];D[a+4>>2]=c;D[a+8>>2]=D[b+8>>2];break a}sb(a,D[e+52>>2],D[e+56>>2]);break a}g=a;a=(c|0)<0;tb(g,a?D[e+52>>2]:b,a?D[e+56>>2]:f)}if(B[e+63|0]<0){ma(D[e+52>>2])}$=e- -64|0;return d|0}function Ed(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0;c=D[a+216>>2];if((c|0)!=D[a+220>>2]){while(1){a:{c=D[J(e,144)+c>>2];if((c|0)<0){break a}d=D[a+4>>2];f=D[d+8>>2];if((c|0)>=D[d+12>>2]-f>>2){break a}d=0;c=D[(c<<2)+f>>2];if((ba[D[D[c>>2]+24>>2]](c)|0)<=0){break a}while(1){if((ba[D[D[c>>2]+20>>2]](c,d)|0)!=(b|0)){d=d+1|0;if((ba[D[D[c>>2]+24>>2]](c)|0)>(d|0)){continue}break a}break}return(D[a+216>>2]+J(e,144)|0)+104|0}e=e+1|0;c=D[a+216>>2];if(e>>>0<(D[a+220>>2]-c|0)/144>>>0){continue}break}}return a+184|0}function Eb(a,b){var c=0,d=0,e=0,f=0,g=0,h=0,i=0;a:{c=D[a+4>>2];d=D[a>>2];f=c-d|0;b:{if(f>>>0>>0){g=b-f|0;e=D[a+8>>2];if(g>>>0<=e-c>>>0){h=a,i=qa(c,0,g)+g|0,D[h+4>>2]=i;break b}if((b|0)<0){break a}c=e-d|0;e=c<<1;e=c>>>0<1073741823?b>>>0>>0?e:b:2147483647;c=na(e);qa(c+f|0,0,g);if((f|0)>0){oa(c,d,f)}D[a+8>>2]=c+e;D[a+4>>2]=b+c;D[a>>2]=c;if(!d){break b}ma(d);break b}if(b>>>0>=f>>>0){break b}D[a+4>>2]=b+d}b=D[a+28>>2];c=b;d=b+1|0;b=D[a+24>>2]+1|0;d=b?c:d;D[a+24>>2]=b;D[a+28>>2]=d;return}pa();T()}function If(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,f=0,g=0;d=$+-64|0;$=d;e=La(d+8|0);D[e+16>>2]=0;D[e+20>>2]=0;D[e>>2]=b;D[e+8>>2]=c;D[e+12>>2]=0;b=d+48|0;Ld(b);D[a+24>>2]=D[d+48>>2];e=a+24|0;a:{if((e|0)==(b|0)){break a}b=d+48|4;f=E[d+63|0];c=f<<24>>24;a=a+28|0;if(B[a+11|0]>=0){if((c|0)>=0){c=D[b+4>>2];D[a>>2]=D[b>>2];D[a+4>>2]=c;D[a+8>>2]=D[b+8>>2];break a}sb(a,D[d+52>>2],D[d+56>>2]);break a}g=a;a=(c|0)<0;tb(g,a?D[d+52>>2]:b,a?D[d+56>>2]:f)}if(B[d+63|0]<0){ma(D[d+52>>2])}$=d- -64|0;return e|0}function ye(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0;if((ba[D[D[b>>2]+20>>2]](b)|0)<=0){return 1}while(1){a:{g=0;d=Oc(D[D[a+4>>2]+4>>2],ba[D[D[b>>2]+24>>2]](b,e)|0);if((d|0)==-1){break a}f=D[a+4>>2];c=0;b:{if((d|0)<0){break b}h=D[f+4>>2];if((d|0)>=D[h+12>>2]-D[h+8>>2]>>2){break b}c=D[D[f+8>>2]+(D[D[f+20>>2]+(d<<2)>>2]<<2)>>2];c=ba[D[D[c>>2]+32>>2]](c,d)|0}if(!c){break a}if(!(ba[D[D[b>>2]+28>>2]](b,c)|0)){break a}g=1;e=e+1|0;if((ba[D[D[b>>2]+20>>2]](b)|0)>(e|0)){continue}}break}return g|0}function ya(a){D[a>>2]=-1;D[a+4>>2]=0;D[a+8>>2]=0;D[a+32>>2]=0;D[a+36>>2]=0;B[a+28|0]=1;D[a+20>>2]=0;D[a+24>>2]=0;D[a+12>>2]=0;D[a+16>>2]=0;D[a+40>>2]=0;D[a+44>>2]=0;D[a+48>>2]=0;D[a+52>>2]=0;D[a+56>>2]=0;D[a+60>>2]=0;D[a+64>>2]=0;D[a+68>>2]=0;D[a+76>>2]=0;D[a+80>>2]=0;D[a+84>>2]=0;D[a+88>>2]=0;D[a+92>>2]=0;D[a+96>>2]=0;D[a+72>>2]=a+4;D[a+104>>2]=0;D[a+108>>2]=0;B[a+100|0]=1;D[a+112>>2]=0;D[a+116>>2]=0;D[a+120>>2]=0;D[a+124>>2]=0;D[a+128>>2]=0;D[a+132>>2]=0;D[a+136>>2]=0;D[a+140>>2]=0}function Ff(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0;a=$-32|0;$=a;a:{d=Ba(c);if(d>>>0<4294967280){b:{c:{if(d>>>0>=11){f=d+16&-16;e=na(f);D[a+24>>2]=f|-2147483648;D[a+16>>2]=e;D[a+20>>2]=d;break c}B[a+27|0]=d;e=a+16|0;if(!d){break b}}oa(e,c,d)}B[d+e|0]=0;B[a+4|0]=0;D[a>>2]=1701667182;B[a+11|0]=4;d=D[b+4>>2];c=-1;d:{if(!d){break d}d=Sc(d,a,a+16|0);c=-1;if(!d){break d}c=Nc(b,D[d+24>>2])}b=c;if(B[a+11|0]<0){ma(D[a>>2])}if(B[a+27|0]<0){ma(D[a+16>>2])}$=a+32|0;break a}Ca();T()}return b|0}function Qf(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0;d=$-16|0;$=d;D[d+12>>2]=0;a:{e=Ba(c);if(e>>>0<4294967280){b:{c:{if(e>>>0>=11){f=e+16&-16;a=na(f);D[d+8>>2]=f|-2147483648;D[d>>2]=a;D[d+4>>2]=e;break c}B[d+11|0]=e;a=d;if(!e){break b}}oa(a,c,e)}B[a+e|0]=0;a=bb(b,d);d:{if((a|0)==(b+4|0)){break d}b=D[a+32>>2];a=D[a+28>>2];if((b-a|0)!=4){break d}D[d+12>>2]=E[a|0]|E[a+1|0]<<8|(E[a+2|0]<<16|E[a+3|0]<<24)}a=D[d+12>>2];if(B[d+11|0]<0){ma(D[d>>2])}$=d+16|0;break a}Ca();T()}return a|0}function ub(a){a=a|0;var b=0,c=0,d=0;D[a>>2]=10300;b=D[a+68>>2];if(b){D[a+72>>2]=b;ma(b)}b=D[a+56>>2];if(b){D[a+60>>2]=b;ma(b)}b=D[a+44>>2];if(b){D[a+48>>2]=b;ma(b)}b=D[a+32>>2];if(b){D[a+36>>2]=b;ma(b)}b=D[a+20>>2];if(b){D[a+24>>2]=b;ma(b)}b=D[a+8>>2];if(b){d=b;c=D[a+12>>2];if((b|0)!=(c|0)){while(1){c=c-4|0;d=D[c>>2];D[c>>2]=0;if(d){Aa(d)}if((b|0)!=(c|0)){continue}break}d=D[a+8>>2]}D[a+12>>2]=b;ma(d)}b=D[a+4>>2];D[a+4>>2]=0;if(b){fc(b)}return a|0}function ra(a,b){var c=0,d=0,e=0,f=0,g=0,h=0,i=0;e=D[a+8>>2];c=D[a+4>>2];if(e-c>>2>>>0>=b>>>0){if(b){b=b<<2;c=qa(c,0,b)+b|0}D[a+4>>2]=c;return}a:{f=D[a>>2];g=c-f|0;h=g>>2;d=h+b|0;if(d>>>0<1073741824){c=0;e=e-f|0;i=e>>1;d=e>>>0<2147483644?d>>>0>>0?i:d:1073741823;if(d){if(d>>>0>=1073741824){break a}c=na(d<<2)}b=b<<2;b=qa((h<<2)+c|0,0,b)+b|0;if((g|0)>0){oa(c,f,g)}D[a+8>>2]=(d<<2)+c;D[a+4>>2]=b;D[a>>2]=c;if(f){ma(f)}return}pa();T()}sa();T()}function db(a,b){var c=0,d=0,e=0,f=0,g=0,h=0,i=0;e=D[a+8>>2];c=D[a+4>>2];if(e-c>>3>>>0>=b>>>0){if(b){b=b<<3;c=qa(c,0,b)+b|0}D[a+4>>2]=c;return}a:{f=D[a>>2];g=c-f|0;h=g>>3;d=h+b|0;if(d>>>0<536870912){c=0;e=e-f|0;i=e>>2;d=e>>>0<2147483640?d>>>0>>0?i:d:536870911;if(d){if(d>>>0>=536870912){break a}c=na(d<<3)}b=b<<3;b=qa((h<<3)+c|0,0,b)+b|0;if((g|0)>0){oa(c,f,g)}D[a+8>>2]=(d<<3)+c;D[a+4>>2]=b;D[a>>2]=c;if(f){ma(f)}return}pa();T()}sa();T()}function Ta(a,b){var c=0,d=0,e=0,f=0,g=0,h=0;e=D[a>>2];a=D[e+4>>2];c=D[e+8>>2];if(a>>>0>>0){D[a>>2]=D[b>>2];D[e+4>>2]=a+4;return}a:{f=D[e>>2];g=a-f|0;d=g>>2;a=d+1|0;if(a>>>0<1073741824){h=d<<2;c=c-f|0;d=c>>1;c=c>>>0<2147483644?a>>>0>>0?d:a:1073741823;if(c){if(c>>>0>=1073741824){break a}a=na(c<<2)}else{a=0}d=h+a|0;D[d>>2]=D[b>>2];if((g|0)>0){oa(a,f,g)}D[e+8>>2]=a+(c<<2);D[e+4>>2]=d+4;D[e>>2]=a;if(f){ma(f)}return}pa();T()}sa();T()}function dc(a,b){var c=0,d=0,e=0,f=0;c=a+4|0;a=bb(a,b);a:{if((c|0)==(a|0)){break a}b=a+28|0;b=B[a+39|0]<0?D[b>>2]:b;while(1){a=b;b=a+1|0;c=B[a|0];if((c|0)==32|c-9>>>0<5){continue}break}b:{c:{d:{c=B[a|0];switch(c-43|0){case 0:break c;case 2:break d;default:break b}}e=1}c=B[b|0];a=b}if(c-48>>>0<10){while(1){d=(J(d,10)-B[a|0]|0)+48|0;b=B[a+1|0];a=a+1|0;if(b-48>>>0<10){continue}break}}a=e?d:0-d|0;if((a|0)==-1){break a}f=(a|0)!=0}return f}function ne(a){a=a|0;var b=0,c=0,d=0;D[a>>2]=2016;b=D[a+60>>2];D[a+60>>2]=0;if(b){ba[D[D[b>>2]+4>>2]](b)}b=D[a+48>>2];if(b){D[a+52>>2]=b;ma(b)}d=D[a+36>>2];if(d){c=D[a+40>>2];b=d;if((c|0)!=(b|0)){while(1){c=c-4|0;b=D[c>>2];D[c>>2]=0;if(b){ba[D[D[b>>2]+4>>2]](b)}if((c|0)!=(d|0)){continue}break}b=D[a+36>>2]}D[a+40>>2]=d;ma(b)}D[a>>2]=1776;b=D[a+16>>2];if(b){D[a+20>>2]=b;ma(b)}b=D[a+4>>2];if(b){D[a+8>>2]=b;ma(b)}return a|0}function me(a){a=a|0;var b=0,c=0,d=0;D[a>>2]=2016;b=D[a+60>>2];D[a+60>>2]=0;if(b){ba[D[D[b>>2]+4>>2]](b)}b=D[a+48>>2];if(b){D[a+52>>2]=b;ma(b)}d=D[a+36>>2];if(d){c=D[a+40>>2];b=d;if((c|0)!=(b|0)){while(1){c=c-4|0;b=D[c>>2];D[c>>2]=0;if(b){ba[D[D[b>>2]+4>>2]](b)}if((c|0)!=(d|0)){continue}break}b=D[a+36>>2]}D[a+40>>2]=d;ma(b)}D[a>>2]=1776;b=D[a+16>>2];if(b){D[a+20>>2]=b;ma(b)}b=D[a+4>>2];if(b){D[a+8>>2]=b;ma(b)}ma(a)}function id(a,b){var c=0,d=0,e=0,f=0,g=0,h=0;e=D[a+8>>2];c=D[a+4>>2];if(e-c>>1>>>0>=b>>>0){if(b){b=b<<1;c=qa(c,0,b)+b|0}D[a+4>>2]=c;return}a:{f=D[a>>2];g=c-f|0;h=g>>1;d=h+b|0;if((d|0)>=0){c=0;e=e-f|0;d=e>>>0<2147483646?d>>>0>>0?e:d:2147483647;if(d){if((d|0)<0){break a}c=na(d<<1)}b=b<<1;b=qa((h<<1)+c|0,0,b)+b|0;if((g|0)>0){oa(c,f,g)}D[a+8>>2]=(d<<1)+c;D[a+4>>2]=b;D[a>>2]=c;if(f){ma(f)}return}pa();T()}sa();T()}function Ag(a){a=a|0;var b=0,c=0,d=0,e=0,f=0;a:{b=D[a+8>>2];b:{if((b|0)<0){break b}c=D[a+4>>2];e=D[c>>2];d=D[c+4>>2]-e>>2;c:{if(d>>>0>>0){ra(c,b-d|0);f=D[a+8>>2];break c}f=b;if(b>>>0>=d>>>0){break c}D[c+4>>2]=e+(b<<2);f=b}d=f;if((d|0)<=0){break b}a=D[a+4>>2];c=D[a>>2];e=D[a+4>>2]-c>>2;a=0;while(1){if((a|0)==(e|0)){break a}D[c+(a<<2)>>2]=a;a=a+1|0;if((d|0)!=(a|0)){continue}break}}return(b^-1)>>>31|0}va();T()}function $g(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0;d=$-16|0;$=d;e=D[a+4>>2];a:{if((e|0)==-1){break a}c=D[b+20>>2];if(!!D[b+16>>2]&(c|0)>=0|(c|0)>0){break a}rb(b,D[b+4>>2],D[a+8>>2],D[a+12>>2]);c=D[b+20>>2];if(!!D[b+16>>2]&(c|0)>=0|(c|0)>0){break a}rb(b,D[b+4>>2],a+20|0,a+24|0);c=D[b+20>>2];f=D[b+16>>2];B[d+15|0]=D[a+4>>2];if(!!f&(c|0)>=0|(c|0)>0){break a}rb(b,D[b+4>>2],d+15|0,d+16|0)}$=d+16|0;return(e|0)!=-1|0}function kf(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0,g=0;d=$-16|0;$=d;Md(d,a,b,c);D[a+24>>2]=D[d>>2];e=a+24|0;a:{if((e|0)==(d|0)){break a}b=d|4;f=E[d+15|0];c=f<<24>>24;a=a+28|0;if(B[a+11|0]>=0){if((c|0)>=0){c=D[b+4>>2];D[a>>2]=D[b>>2];D[a+4>>2]=c;D[a+8>>2]=D[b+8>>2];break a}sb(a,D[d+4>>2],D[d+8>>2]);break a}g=a;a=(c|0)<0;tb(g,a?D[d+4>>2]:b,a?D[d+8>>2]:f)}if(B[d+15|0]<0){ma(D[d+4>>2])}$=d+16|0;return e|0}function vf(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,f=0,g=0;a=$-32|0;$=a;e=B[b+24|0];f=D[2555];D[a+24>>2]=D[2554];D[a+28>>2]=f;f=D[2553];D[a+16>>2]=D[2552];D[a+20>>2]=f;a:{b:{c=nb(b,c,e,a+16|0);if(c){D[a+8>>2]=0;D[a>>2]=0;D[a+4>>2]=0;b=0;if(e){if((e|0)<0){break b}e=e<<2;b=na(e);g=oa(b,a+16|0,e)+e|0}e=D[d>>2];if(e){D[d+4>>2]=e;ma(e)}D[d+8>>2]=g;D[d+4>>2]=g;D[d>>2]=b}$=a+32|0;break a}pa();T()}return c|0}function Ua(a){var b=0,c=0,d=0,e=0,f=0;b=D[a+4>>2];if((b|0)!=D[a+8>>2]){D[b>>2]=D[2081];D[a+4>>2]=b+4;return}a:{f=D[a>>2];d=b-f|0;e=d>>2;b=e+1|0;if(b>>>0<1073741824){c=d>>1;c=d>>>0<2147483644?b>>>0>>0?c:b:1073741823;if(c){if(c>>>0>=1073741824){break a}b=na(c<<2)}else{b=0}e=b+(e<<2)|0;D[e>>2]=D[2081];if((d|0)>0){oa(b,f,d)}D[a+8>>2]=b+(c<<2);D[a+4>>2]=e+4;D[a>>2]=b;if(f){ma(f)}return}pa();T()}sa();T()}function lf(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0,g=0;b=$-16|0;$=b;Ld(b);D[a+24>>2]=D[b>>2];e=a+24|0;a:{if((e|0)==(b|0)){break a}c=b|4;f=E[b+15|0];d=f<<24>>24;a=a+28|0;if(B[a+11|0]>=0){if((d|0)>=0){d=D[c+4>>2];D[a>>2]=D[c>>2];D[a+4>>2]=d;D[a+8>>2]=D[c+8>>2];break a}sb(a,D[b+4>>2],D[b+8>>2]);break a}g=a;a=(d|0)<0;tb(g,a?D[b+4>>2]:c,a?D[b+8>>2]:f)}if(B[b+15|0]<0){ma(D[b+4>>2])}$=b+16|0;return e|0}function Hb(a,b){var c=0,d=0,e=0,f=0;d=D[a+12>>2];c=D[a+16>>2]-d>>2;a:{if(c>>>0>>0){ra(a+12|0,b-c|0);break a}if(b>>>0>=c>>>0){break a}D[a+16>>2]=d+(b<<2)}b:{c=D[a>>2];c:{if(D[a+8>>2]-c>>2>>>0>=b>>>0){break c}if(b>>>0>=1073741824){break b}d=D[a+4>>2];e=b<<2;b=na(e);e=b+e|0;d=d-c|0;f=d+b|0;if((d|0)>0){oa(b,c,d)}D[a+8>>2]=e;D[a+4>>2]=f;D[a>>2]=b;if(!c){break c}ma(c)}return}pa();T()}function Nf(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0,g=0;d=$-16|0;$=d;a:{e=Ba(c);if(e>>>0<4294967280){b:{c:{if(e>>>0>=11){g=e+16&-16;f=na(g);D[d+8>>2]=g|-2147483648;D[d>>2]=f;D[d+4>>2]=e;break c}B[d+11|0]=e;f=d;if(!e){break b}}oa(f,c,e)}B[e+f|0]=0;f=a+16|0;c=Qc(b,d,f);b=B[a+27|0];a=D[a+16>>2];if(B[d+11|0]<0){ma(D[d>>2])}$=d+16|0;a=c?(b|0)<0?a:f:0;break a}Ca();T()}return a|0}function jd(a,b,c){var d=0,e=0,f=0,g=0;a:{if(a>>>0>10){break a}d=D[c+20>>2];e=D[c+12>>2];f=D[c+16>>2];if((d|0)>=(e|0)&f>>>0>=G[c+8>>2]|(d|0)>(e|0)){break a}e=B[f+D[c>>2]|0];f=f+1|0;d=f?d:d+1|0;D[c+16>>2]=f;D[c+20>>2]=d;b:{if((e|0)<0){if(!jd(a+1|0,b,c)){break a}c=D[b>>2];a=D[b+4>>2]<<7|c>>>25;c=e&127|c<<7;break b}a=0;c=e&255}D[b>>2]=c;D[b+4>>2]=a;g=1}return g}function dg(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0,g=0,h=0,i=0;d=$+-64|0;$=d;e=ba[D[D[a>>2]+44>>2]](a,b)|0;a=ba[D[D[a>>2]+40>>2]](a,b)|0;f=mb(d);g=D[b+56>>2];h=e<<24>>24;i=a;a=a-1|0;if(a>>>0<=10){a=D[(a<<2)+10148>>2]}else{a=-1}a=J(a,e);$b(f,g,h,i,0,a,a>>31);a=_b(na(96),f);Zb(a,c);B[a+84|0]=1;D[a+72>>2]=D[a+68>>2];D[a+60>>2]=D[b+60>>2];$=d- -64|0;return a|0}function Va(a,b,c){var d=0,e=0,f=0,g=0;a:{if(a>>>0>10){break a}d=D[c+20>>2];e=D[c+12>>2];f=D[c+16>>2];if((d|0)>=(e|0)&f>>>0>=G[c+8>>2]|(d|0)>(e|0)){break a}e=B[f+D[c>>2]|0];f=f+1|0;d=f?d:d+1|0;D[c+16>>2]=f;D[c+20>>2]=d;b:{if((e|0)<0){if(!Va(a+1|0,b,c)){break a}c=D[b>>2];a=D[b+4>>2]<<7|c>>>25;c=e&127|c<<7;break b}a=0;c=e&255}D[b>>2]=c;D[b+4>>2]=a;g=1}return g}function Ke(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;if(Na(a,D[b+8>>2],e)){if(!(D[b+28>>2]==1|D[b+4>>2]!=(c|0))){D[b+28>>2]=d}return}a:{if(!Na(a,D[b>>2],e)){break a}if(!(D[b+16>>2]!=(c|0)&D[b+20>>2]!=(c|0))){if((d|0)!=1){break a}D[b+32>>2]=1;return}D[b+20>>2]=c;D[b+32>>2]=d;D[b+40>>2]=D[b+40>>2]+1;if(!(D[b+36>>2]!=1|D[b+24>>2]!=2)){B[b+54|0]=1}D[b+44>>2]=4}}function nh(a){a=a|0;var b=0,c=0,d=0;D[a>>2]=8176;b=D[a+48>>2];D[a+48>>2]=0;if(b){ba[D[D[b>>2]+4>>2]](b)}D[a>>2]=10032;b=D[a+20>>2];if(b){D[a+24>>2]=b;ma(b)}d=D[a+8>>2];if(d){c=D[a+12>>2];b=d;if((c|0)!=(b|0)){while(1){c=c-4|0;b=D[c>>2];D[c>>2]=0;if(b){ba[D[D[b>>2]+4>>2]](b)}if((c|0)!=(d|0)){continue}break}b=D[a+8>>2]}D[a+12>>2]=d;ma(b)}return a|0}function Bc(a,b,c,d){B[a+53|0]=1;a:{if(D[a+4>>2]!=(c|0)){break a}B[a+52|0]=1;c=D[a+16>>2];b:{if(!c){D[a+36>>2]=1;D[a+24>>2]=d;D[a+16>>2]=b;if((d|0)!=1){break a}if(D[a+48>>2]==1){break b}break a}if((b|0)==(c|0)){c=D[a+24>>2];if((c|0)==2){D[a+24>>2]=d;c=d}if(D[a+48>>2]!=1){break a}if((c|0)==1){break b}break a}D[a+36>>2]=D[a+36>>2]+1}B[a+54|0]=1}}function mh(a){a=a|0;var b=0,c=0,d=0;D[a>>2]=8176;b=D[a+48>>2];D[a+48>>2]=0;if(b){ba[D[D[b>>2]+4>>2]](b)}D[a>>2]=10032;b=D[a+20>>2];if(b){D[a+24>>2]=b;ma(b)}d=D[a+8>>2];if(d){c=D[a+12>>2];b=d;if((c|0)!=(b|0)){while(1){c=c-4|0;b=D[c>>2];D[c>>2]=0;if(b){ba[D[D[b>>2]+4>>2]](b)}if((c|0)!=(d|0)){continue}break}b=D[a+8>>2]}D[a+12>>2]=d;ma(b)}ma(a)}function Oe(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0;e=$+-64|0;$=e;d=1;a:{if(Na(a,b,0)){break a}d=0;if(!b){break a}b=Dc(b,11068);d=0;if(!b){break a}d=e+8|0;qa(d|4,0,52);D[e+56>>2]=1;D[e+20>>2]=-1;D[e+16>>2]=a;D[e+8>>2]=b;ba[D[D[b>>2]+28>>2]](b,d,D[c>>2],1);a=D[e+32>>2];if((a|0)==1){D[c>>2]=D[e+24>>2]}d=(a|0)==1}$=e- -64|0;return d|0}function Cd(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0;d=$-16|0;$=d;D[a+4>>2]=b;b=D[b+64>>2];e=D[b>>2];b=D[b+4>>2];B[d+15|0]=0;Ha(a+24|0,(b-e>>2>>>0)/3|0,d+15|0);b=D[a+4>>2];e=D[b+56>>2];b=D[b+52>>2];B[d+14|0]=0;Ha(a+36|0,e-b>>2,d+14|0);b=D[c+12>>2];D[a+16>>2]=D[c+8>>2];D[a+20>>2]=b;b=D[c+4>>2];D[a+8>>2]=D[c>>2];D[a+12>>2]=b;$=d+16|0}function re(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0;f=ba[D[D[a>>2]+24>>2]](a)|0;c=1;a:{if((f|0)<=0){break a}d=D[D[a+36>>2]>>2];g=a+48|0;c=0;if(!(ba[D[D[d>>2]+16>>2]](d,g,b)|0)){break a}while(1){e=e+1|0;if((f|0)!=(e|0)){d=D[D[a+36>>2]+(e<<2)>>2];if(ba[D[D[d>>2]+16>>2]](d,g,b)|0){continue}}break}c=(e|0)>=(f|0)}return c|0}function qe(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0;f=ba[D[D[a>>2]+24>>2]](a)|0;c=1;a:{if((f|0)<=0){break a}d=D[D[a+36>>2]>>2];g=a+48|0;c=0;if(!(ba[D[D[d>>2]+20>>2]](d,g,b)|0)){break a}while(1){e=e+1|0;if((f|0)!=(e|0)){d=D[D[a+36>>2]+(e<<2)>>2];if(ba[D[D[d>>2]+20>>2]](d,g,b)|0){continue}}break}c=(e|0)>=(f|0)}return c|0}function Wb(a){var b=0;D[a>>2]=0;D[a+4>>2]=0;D[a+56>>2]=0;D[a+48>>2]=0;D[a+52>>2]=0;D[a+40>>2]=0;D[a+44>>2]=0;D[a+32>>2]=0;D[a+36>>2]=0;D[a+24>>2]=0;D[a+28>>2]=0;D[a+16>>2]=0;D[a+20>>2]=0;D[a+8>>2]=0;D[a+12>>2]=0;b=a- -64|0;D[b>>2]=0;D[b+4>>2]=0;D[a+72>>2]=0;D[a+76>>2]=0;D[a+80>>2]=0;D[a+84>>2]=0;D[a+60>>2]=a;return a}function Zg(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0;d=$-16|0;$=d;D[a+4>>2]=b;e=D[b>>2];b=D[b+4>>2];B[d+15|0]=0;Ha(a+24|0,(b-e>>2>>>0)/3|0,d+15|0);b=D[a+4>>2];e=D[b+28>>2];b=D[b+24>>2];B[d+14|0]=0;Ha(a+36|0,e-b>>2,d+14|0);b=D[c+12>>2];D[a+16>>2]=D[c+8>>2];D[a+20>>2]=b;b=D[c+4>>2];D[a+8>>2]=D[c>>2];D[a+12>>2]=b;$=d+16|0}function jb(a,b,c){var d=0,e=0,f=0,g=0,h=0;a:{if(a>>>0>5){break a}f=D[c+20>>2];d=f;g=D[c+12>>2];e=D[c+16>>2];if((d|0)>=(g|0)&e>>>0>=G[c+8>>2]|(d|0)>(g|0)){break a}d=E[e+D[c>>2]|0];e=e+1|0;f=e?f:f+1|0;D[c+16>>2]=e;D[c+20>>2]=f;if(d&128){if(!jb(a+1|0,b,c)){break a}d=d&127|D[b>>2]<<7}D[b>>2]=d;h=1}return h}function hb(a,b,c){var d=0,e=0,f=0,g=0,h=0;a:{if(a>>>0>5){break a}f=D[c+20>>2];d=f;g=D[c+12>>2];e=D[c+16>>2];if((d|0)>=(g|0)&e>>>0>=G[c+8>>2]|(d|0)>(g|0)){break a}d=E[e+D[c>>2]|0];e=e+1|0;f=e?f:f+1|0;D[c+16>>2]=e;D[c+20>>2]=f;if(d&128){if(!hb(a+1|0,b,c)){break a}d=d&127|D[b>>2]<<7}D[b>>2]=d;h=1}return h}function Wa(a,b,c){var d=0,e=0,f=0,g=0,h=0;a:{if(a>>>0>5){break a}f=D[c+20>>2];d=f;g=D[c+12>>2];e=D[c+16>>2];if((d|0)>=(g|0)&e>>>0>=G[c+8>>2]|(d|0)>(g|0)){break a}d=E[e+D[c>>2]|0];e=e+1|0;f=e?f:f+1|0;D[c+16>>2]=e;D[c+20>>2]=f;if(d&128){if(!Wa(a+1|0,b,c)){break a}d=d&127|D[b>>2]<<7}D[b>>2]=d;h=1}return h}function Ub(a,b,c){var d=0,e=0,f=0,g=0,h=0;a:{if(a>>>0>5){break a}f=D[c+20>>2];d=f;g=D[c+12>>2];e=D[c+16>>2];if((d|0)>=(g|0)&e>>>0>=G[c+8>>2]|(d|0)>(g|0)){break a}d=E[e+D[c>>2]|0];e=e+1|0;f=e?f:f+1|0;D[c+16>>2]=e;D[c+20>>2]=f;if(d&128){if(!Ub(a+1|0,b,c)){break a}d=d&127|D[b>>2]<<7}D[b>>2]=d;h=1}return h}function Pa(a,b,c){var d=0,e=0,f=0,g=0,h=0;a:{if(a>>>0>5){break a}f=D[c+20>>2];d=f;g=D[c+12>>2];e=D[c+16>>2];if((d|0)>=(g|0)&e>>>0>=G[c+8>>2]|(d|0)>(g|0)){break a}d=E[e+D[c>>2]|0];e=e+1|0;f=e?f:f+1|0;D[c+16>>2]=e;D[c+20>>2]=f;if(d&128){if(!Pa(a+1|0,b,c)){break a}d=d&127|D[b>>2]<<7}D[b>>2]=d;h=1}return h}function Nd(a,b,c){var d=0,e=0,f=0,g=0,h=0;a:{if(a>>>0>5){break a}f=D[c+20>>2];d=f;g=D[c+12>>2];e=D[c+16>>2];if((d|0)>=(g|0)&e>>>0>=G[c+8>>2]|(d|0)>(g|0)){break a}d=E[e+D[c>>2]|0];e=e+1|0;f=e?f:f+1|0;D[c+16>>2]=e;D[c+20>>2]=f;if(d&128){if(!Nd(a+1|0,b,c)){break a}d=d&127|D[b>>2]<<7}D[b>>2]=d;h=1}return h}function Ga(a,b,c){var d=0,e=0,f=0,g=0,h=0;a:{if(a>>>0>5){break a}f=D[c+20>>2];d=f;g=D[c+12>>2];e=D[c+16>>2];if((d|0)>=(g|0)&e>>>0>=G[c+8>>2]|(d|0)>(g|0)){break a}d=E[e+D[c>>2]|0];e=e+1|0;f=e?f:f+1|0;D[c+16>>2]=e;D[c+20>>2]=f;if(d&128){if(!Ga(a+1|0,b,c)){break a}d=d&127|D[b>>2]<<7}D[b>>2]=d;h=1}return h}function ua(a,b,c){var d=0,e=0;a:{b:{if(c>>>0>=4){if((a|b)&3){break b}while(1){if(D[a>>2]!=D[b>>2]){break b}b=b+4|0;a=a+4|0;c=c-4|0;if(c>>>0>3){continue}break}}if(!c){break a}}while(1){d=E[a|0];e=E[b|0];if((d|0)==(e|0)){b=b+1|0;a=a+1|0;c=c-1|0;if(c){continue}break a}break}return d-e|0}return 0}function qd(a){var b=0,c=0,d=0,e=0;d=D[a>>2];if(d){e=d;c=D[a+4>>2];if((d|0)!=(c|0)){while(1){e=c-144|0;b=D[e+132>>2];if(b){D[c-8>>2]=b;ma(b)}b=D[c-28>>2];if(b){D[c-24>>2]=b;ma(b)}b=D[c-40>>2];if(b){D[c-36>>2]=b;ma(b)}Gb(c-140|0);c=e;if((d|0)!=(c|0)){continue}break}e=D[a>>2]}D[a+4>>2]=d;ma(e)}}function Af(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0;d=D[b+4>>2];a:{if(!d){break a}b=D[D[D[b+8>>2]+(c<<2)>>2]+60>>2];if((b|0)<0){break a}a=D[d+24>>2];c=D[d+28>>2];if((a|0)==(c|0)){break a}b:{while(1){e=D[a>>2];if((b|0)==D[e+24>>2]){break b}a=a+4|0;if((c|0)!=(a|0)){continue}break}e=0}}return e|0}function fc(a){var b=0,c=0,d=0;if(a){d=D[a+24>>2];if(d){b=d;c=D[a+28>>2];if((b|0)!=(c|0)){while(1){c=c-4|0;b=D[c>>2];D[c>>2]=0;if(b){Fa(b+12|0,D[b+16>>2]);Ea(b,D[b+4>>2]);ma(b)}if((c|0)!=(d|0)){continue}break}b=D[a+24>>2]}D[a+28>>2]=d;ma(b)}Fa(a+12|0,D[a+16>>2]);Ea(a,D[a+4>>2]);ma(a)}}function Xg(a){a=a|0;var b=0;D[a+8>>2]=9136;D[a>>2]=8924;b=D[a+96>>2];if(b){D[a+100>>2]=b;ma(b)}b=D[a+80>>2];if(b){D[a+84>>2]=b;ma(b)}b=D[a+68>>2];if(b){D[a+72>>2]=b;ma(b)}b=D[a+56>>2];if(b){D[a+60>>2]=b;ma(b)}D[a+8>>2]=9372;b=D[a+44>>2];if(b){ma(b)}b=D[a+32>>2];if(b){ma(b)}return a|0}function sh(a){a=a|0;var b=0,c=0,d=0;D[a>>2]=10032;b=D[a+20>>2];if(b){D[a+24>>2]=b;ma(b)}d=D[a+8>>2];if(d){c=D[a+12>>2];b=d;if((c|0)!=(b|0)){while(1){c=c-4|0;b=D[c>>2];D[c>>2]=0;if(b){ba[D[D[b>>2]+4>>2]](b)}if((c|0)!=(d|0)){continue}break}b=D[a+8>>2]}D[a+12>>2]=d;ma(b)}return a|0}function Wg(a){a=a|0;var b=0;D[a+8>>2]=9136;D[a>>2]=8924;b=D[a+96>>2];if(b){D[a+100>>2]=b;ma(b)}b=D[a+80>>2];if(b){D[a+84>>2]=b;ma(b)}b=D[a+68>>2];if(b){D[a+72>>2]=b;ma(b)}b=D[a+56>>2];if(b){D[a+60>>2]=b;ma(b)}D[a+8>>2]=9372;b=D[a+44>>2];if(b){ma(b)}b=D[a+32>>2];if(b){ma(b)}ma(a)}function sc(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0,g=0,h=0,i=0;h=D[c+8>>2];e=D[c+16>>2];g=D[c+12>>2];f=g;d=D[c+20>>2];if(h>>>0>e>>>0&(f|0)>=(d|0)|(d|0)<(f|0)){b=E[e+D[c>>2]|0];i=e+1|0;f=i?d:d+1|0;D[c+16>>2]=i;D[c+20>>2]=f;D[a+4>>2]=b}return e>>>0>>0&(d|0)<=(g|0)|(d|0)<(g|0)}function Dg(a){a=a|0;var b=0,c=0,d=0;D[a>>2]=10032;b=D[a+20>>2];if(b){D[a+24>>2]=b;ma(b)}d=D[a+8>>2];if(d){c=D[a+12>>2];b=d;if((c|0)!=(b|0)){while(1){c=c-4|0;b=D[c>>2];D[c>>2]=0;if(b){ba[D[D[b>>2]+4>>2]](b)}if((c|0)!=(d|0)){continue}break}b=D[a+8>>2]}D[a+12>>2]=d;ma(b)}ma(a)}function Na(a,b,c){var d=0;if(!c){return D[a+4>>2]==D[b+4>>2]}if((a|0)==(b|0)){return 1}d=D[a+4>>2];a=E[d|0];c=D[b+4>>2];b=E[c|0];a:{if(!a|(b|0)!=(a|0)){break a}while(1){b=E[c+1|0];a=E[d+1|0];if(!a){break a}c=c+1|0;d=d+1|0;if((a|0)==(b|0)){continue}break}}return(a|0)==(b|0)}function Cf(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0;d=D[b+12>>2];b=D[b+8>>2];a=0;a:{if((d|0)==(b|0)){break a}a=d-b>>2;d=a>>>0>1?a:1;a=0;b:{while(1){e=D[b+(a<<2)>>2];if(D[e+60>>2]==(c|0)){break b}a=a+1|0;if((d|0)!=(a|0)){continue}break}a=0;break a}a=(a|0)==-1?0:e}return a|0}function Yg(a){a=a|0;var b=0;D[a>>2]=9136;b=D[a+88>>2];if(b){D[a+92>>2]=b;ma(b)}b=D[a+72>>2];if(b){D[a+76>>2]=b;ma(b)}b=D[a+60>>2];if(b){D[a- -64>>2]=b;ma(b)}b=D[a+48>>2];if(b){D[a+52>>2]=b;ma(b)}D[a>>2]=9372;b=D[a+36>>2];if(b){ma(b)}b=D[a+24>>2];if(b){ma(b)}return a|0}function Rc(a,b){var c=0,d=0,e=0;D[a+8>>2]=0;D[a>>2]=0;D[a+4>>2]=0;a:{c=D[b+4>>2];d=D[b>>2];b:{if((c|0)==(d|0)){a=c;break b}c=c-d|0;if((c|0)<0){break a}d=c;e=na(c);c=qa(e,0,c);d=d+c|0;D[a+8>>2]=d;D[a+4>>2]=d;D[a>>2]=c;c=D[b>>2];a=D[b+4>>2]}oa(e,c,a-c|0);return}pa();T()}function Ad(a){var b=0,c=0,d=0,e=0;c=D[a+4>>2];d=D[a>>2];if((c|0)!=(d|0)){while(1){e=c-144|0;b=D[e+132>>2];if(b){D[c-8>>2]=b;ma(b)}b=D[c-28>>2];if(b){D[c-24>>2]=b;ma(b)}b=D[c-40>>2];if(b){D[c-36>>2]=b;ma(b)}Gb(c-140|0);c=e;if((d|0)!=(c|0)){continue}break}}D[a+4>>2]=d}function Tg(a){a=a|0;var b=0;D[a>>2]=9136;b=D[a+88>>2];if(b){D[a+92>>2]=b;ma(b)}b=D[a+72>>2];if(b){D[a+76>>2]=b;ma(b)}b=D[a+60>>2];if(b){D[a- -64>>2]=b;ma(b)}b=D[a+48>>2];if(b){D[a+52>>2]=b;ma(b)}D[a>>2]=9372;b=D[a+36>>2];if(b){ma(b)}b=D[a+24>>2];if(b){ma(b)}ma(a)}function Ib(a,b){var c=0,d=0,e=0,f=0;a:{c=D[a>>2];b:{if(D[a+8>>2]-c>>2>>>0>=b>>>0){break b}if(b>>>0>=1073741824){break a}d=D[a+4>>2];e=b<<2;b=na(e);e=b+e|0;d=d-c|0;f=d+b|0;if((d|0)>0){oa(b,c,d)}D[a+8>>2]=e;D[a+4>>2]=f;D[a>>2]=b;if(!c){break b}ma(c)}return}pa();T()}function cb(a){var b=0;if(a){b=D[a+76>>2];if(b){D[a+80>>2]=b;ma(b)}b=D[a- -64>>2];if(b){D[a+68>>2]=b;ma(b)}b=D[a+48>>2];if(b){D[a+52>>2]=b;ma(b)}b=D[a+24>>2];if(b){D[a+28>>2]=b;ma(b)}b=D[a+12>>2];if(b){D[a+16>>2]=b;ma(b)}b=D[a>>2];if(b){D[a+4>>2]=b;ma(b)}ma(a)}}function Gb(a){var b=0;b=D[a+84>>2];if(b){D[a+88>>2]=b;ma(b)}b=D[a+72>>2];if(b){D[a+76>>2]=b;ma(b)}b=D[a+52>>2];if(b){D[a+56>>2]=b;ma(b)}b=D[a+40>>2];if(b){D[a+44>>2]=b;ma(b)}b=D[a+28>>2];if(b){D[a+32>>2]=b;ma(b)}b=D[a+12>>2];if(b){ma(b)}a=D[a>>2];if(a){ma(a)}}function Jc(a,b,c){var d=0,e=0,f=0,g=0,h=0;f=$-16|0;$=f;d=$-16|0;$=d;b=b-a>>2;while(1){if(b){D[d+12>>2]=a;e=b>>>1|0;D[d+12>>2]=D[d+12>>2]+(e<<2);h=(e^-1)+b|0;b=e;e=D[d+12>>2];g=G[e>>2]>2];b=g?h:b;a=g?e+4|0:a;continue}break}$=d+16|0;$=f+16|0;return a}function ta(a,b,c){var d=0,e=0;a:{b:{if(c>>>0<11){d=a;B[d+11|0]=c;break b}if(c>>>0>4294967279){break a}if(c>>>0>=11){e=c+16&-16;d=e-1|0;d=(d|0)==11?e:d}else{d=10}e=d+1|0;d=na(e);D[a>>2]=d;D[a+8>>2]=e|-2147483648;D[a+4>>2]=c}gb(d,b,c+1|0);return}Ca();T()}function gd(a,b){var c=0,d=0;d=na(40);D[d>>2]=-1;c=d+8|0;D[c+16>>2]=0;D[c+20>>2]=0;D[c+8>>2]=0;D[c>>2]=0;D[c+4>>2]=0;D[c+24>>2]=0;D[c+28>>2]=0;ba[D[D[a>>2]+16>>2]](a,d);a=D[b+88>>2];D[b+88>>2]=d;if(a){b=D[a+8>>2];if(b){D[a+12>>2]=b;ma(b)}ma(a)}return 1}function Ba(a){var b=0,c=0,d=0;b=a;a:{if(b&3){while(1){if(!E[b|0]){break a}b=b+1|0;if(b&3){continue}break}}while(1){c=b;b=b+4|0;d=D[c>>2];if(!((d^-1)&d-16843009&-2139062144)){continue}break}while(1){b=c;c=b+1|0;if(E[b|0]){continue}break}}return b-a|0}function za(a){var b=0,c=0,d=0,e=0,f=0;d=E[a+12|0];c=D[a+8>>2];a:{if(c>>>0>4095){break a}b=D[a+4>>2];if((b|0)<=0){break a}b=b-1|0;D[a+4>>2]=b;c=E[b+D[a>>2]|0]|c<<8}d=0-d&255;b=J(d,c>>>8|0);e=c&255;f=e>>>0>>0;D[a+8>>2]=f?b+e|0:c-(b+d|0)|0;return f}function wc(a,b){D[a+4>>2]=0;D[a+8>>2]=0;D[a>>2]=1776;D[a+12>>2]=0;D[a+16>>2]=0;D[a+20>>2]=0;D[a+24>>2]=0;D[a+28>>2]=0;D[a+32>>2]=0;D[a+36>>2]=0;D[a+40>>2]=0;D[a>>2]=2016;D[a+60>>2]=b;D[a+44>>2]=0;D[a+48>>2]=0;D[a+52>>2]=0;D[a+56>>2]=0;return a}function Kf(a){a=a|0;var b=0,c=0,d=0;if(a){if(B[a+27|0]<0){ma(D[a+16>>2])}c=D[a>>2];if(c){d=c;b=D[a+4>>2];if((b|0)!=(c|0)){while(1){b=b-12|0;if(B[b+11|0]<0){ma(D[b>>2])}if((c|0)!=(b|0)){continue}break}d=D[a>>2]}D[a+4>>2]=c;ma(d)}ma(a)}}function Aa(a){a=a|0;var b=0,c=0;if(a){b=D[a+88>>2];D[a+88>>2]=0;if(b){c=D[b+8>>2];if(c){D[b+12>>2]=c;ma(c)}ma(b)}b=D[a+68>>2];if(b){D[a+72>>2]=b;ma(b)}b=D[a+64>>2];D[a+64>>2]=0;if(b){c=D[b>>2];if(c){D[b+4>>2]=c;ma(c)}ma(b)}ma(a)}}function zf(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;b=D[b+96>>2];a=na(12);b=b+J(c,12)|0;c=D[b+4>>2];D[a>>2]=D[b>>2];D[a+4>>2]=c;D[a+8>>2]=D[b+8>>2];b=D[d>>2];if(b){D[d+4>>2]=b;ma(b)}D[d>>2]=a;a=a+12|0;D[d+8>>2]=a;D[d+4>>2]=a;return 1}function wh(a){a=a|0;var b=0;D[a+24>>2]=1624;D[a>>2]=7948;b=D[a+32>>2];if(b){D[a+36>>2]=b;ma(b)}D[a>>2]=2136;b=D[a+20>>2];D[a+20>>2]=0;if(b){ba[D[D[b>>2]+4>>2]](b)}D[a>>2]=1920;b=D[a+16>>2];D[a+16>>2]=0;if(b){Aa(b)}return a|0}function Fb(a,b){var c=0,d=0,e=0;c=Ba(b);if(c>>>0<4294967280){a:{b:{if(c>>>0>=11){e=c+16&-16;d=na(e);D[a+8>>2]=e|-2147483648;D[a>>2]=d;D[a+4>>2]=c;break b}B[a+11|0]=c;d=a;if(!c){break a}}oa(d,b,c)}B[c+d|0]=0;return a}Ca();T()}function gi(a,b,c,d){var e=0,f=0,g=0,h=0;f=b^d;g=f>>31;e=b>>31;a=a^e;h=a-e|0;e=(b^e)-((a>>>0>>0)+e|0)|0;a=d>>31;b=c^a;f=f>>31;a=hi(h,e,b-a|0,(a^d)-((a>>>0>b>>>0)+a|0)|0)^f;b=a-f|0;aa=(g^aa)-((a>>>0>>0)+g|0)|0;return b}function vh(a){a=a|0;var b=0;D[a+24>>2]=1624;D[a>>2]=7948;b=D[a+32>>2];if(b){D[a+36>>2]=b;ma(b)}D[a>>2]=2136;b=D[a+20>>2];D[a+20>>2]=0;if(b){ba[D[D[b>>2]+4>>2]](b)}D[a>>2]=1920;b=D[a+16>>2];D[a+16>>2]=0;if(b){Aa(b)}ma(a)}function tb(a,b,c){var d=0,e=0,f=0;e=$-16|0;$=e;d=D[a+8>>2]&2147483647;a:{if(d>>>0>c>>>0){d=D[a>>2];D[a+4>>2]=c;gb(d,b,c);B[e+15|0]=0;B[c+d|0]=E[e+15|0];break a}f=a;a=D[a+4>>2];Ec(f,d-1|0,(c-d|0)+1|0,a,a,c,b)}$=e+16|0}function fi(a,b,c,d){var e=0,f=0,g=0,h=0,i=0,j=0;e=c>>>16|0;f=a>>>16|0;j=J(e,f);g=c&65535;h=a&65535;i=J(g,h);f=(i>>>16|0)+J(f,g)|0;e=(f&65535)+J(e,h)|0;aa=(J(b,c)+j|0)+J(a,d)+(f>>>16)+(e>>>16)|0;return i&65535|e<<16}function te(a,b){a=a|0;b=b|0;var c=0,d=0;c=$-16|0;$=c;a=D[a+4>>2];a:{if((a|0)==-1){break a}B[c+15|0]=a;d=D[b+20>>2];if(!!D[b+16>>2]&(d|0)>=0|(d|0)>0){break a}rb(b,D[b+4>>2],c+15|0,c+16|0)}$=c+16|0;return(a|0)!=-1|0}function Cc(a,b,c){var d=0;d=D[a+16>>2];if(!d){D[a+36>>2]=1;D[a+24>>2]=c;D[a+16>>2]=b;return}a:{if((b|0)==(d|0)){if(D[a+24>>2]!=2){break a}D[a+24>>2]=c;return}B[a+54|0]=1;D[a+24>>2]=2;D[a+36>>2]=D[a+36>>2]+1}}function rg(){var a=0;a=mb(na(96));D[a+64>>2]=0;D[a+68>>2]=0;D[a+88>>2]=0;D[a+72>>2]=0;D[a+76>>2]=0;B[a+77|0]=0;B[a+78|0]=0;B[a+79|0]=0;B[a+80|0]=0;B[a+81|0]=0;B[a+82|0]=0;B[a+83|0]=0;B[a+84|0]=0;return a|0}function fh(a,b){a=a|0;b=b|0;var c=0,d=0;D[b>>2]=2;c=D[b+8>>2];d=D[b+12>>2]-c|0;if(d>>>0<=4294967291){Eb(b+8|0,d+4|0);c=D[b+8>>2]}b=c+d|0;a=D[a+4>>2];B[b|0]=a;B[b+1|0]=a>>>8;B[b+2|0]=a>>>16;B[b+3|0]=a>>>24}function yg(a){a=a|0;var b=0,c=0,d=0;b=D[a+8>>2];d=D[a+12>>2];if((b|0)==(d|0)){return 1}while(1){c=D[b>>2];c=ba[D[D[c>>2]+16>>2]](c,D[a+32>>2])|0;if(c){b=b+4|0;if((d|0)!=(b|0)){continue}}break}return c|0}function ce(a){a=a|0;var b=0;D[a>>2]=3016;b=D[a+96>>2];if(b){ma(b)}b=D[a+84>>2];if(b){ma(b)}b=D[a+72>>2];if(b){ma(b)}b=D[a+60>>2];if(b){ma(b)}D[a>>2]=2960;b=D[a+32>>2];if(b){D[a+36>>2]=b;ma(b)}return a|0}function _h(a){a=a|0;var b=0;D[a>>2]=4580;b=D[a+96>>2];if(b){ma(b)}b=D[a+84>>2];if(b){ma(b)}b=D[a+72>>2];if(b){ma(b)}b=D[a+60>>2];if(b){ma(b)}D[a>>2]=2960;b=D[a+32>>2];if(b){D[a+36>>2]=b;ma(b)}return a|0}function Nc(a,b){var c=0,d=0;c=D[a+8>>2];a=D[a+12>>2];if((c|0)!=(a|0)){a=a-c>>2;d=a>>>0>1?a:1;a=0;while(1){if(D[D[(a<<2)+c>>2]+60>>2]==(b|0)){return a}a=a+1|0;if((d|0)!=(a|0)){continue}break}}return-1}function Te(a,b){a=a|0;b=b|0;var c=0,d=0,e=0;Lc(a,b);a:{if((b|0)<0){break a}d=D[a+88>>2];c=D[a+84>>2];if(d-c>>2<=(b|0)){break a}b=c+(b<<2)|0;c=b+4|0;e=d-c|0;if((c|0)!=(d|0)){Ra(b,c,e)}D[a+88>>2]=b+e}}function be(a){a=a|0;var b=0;D[a>>2]=3016;b=D[a+96>>2];if(b){ma(b)}b=D[a+84>>2];if(b){ma(b)}b=D[a+72>>2];if(b){ma(b)}b=D[a+60>>2];if(b){ma(b)}D[a>>2]=2960;b=D[a+32>>2];if(b){D[a+36>>2]=b;ma(b)}ma(a)}function Zh(a){a=a|0;var b=0;D[a>>2]=4580;b=D[a+96>>2];if(b){ma(b)}b=D[a+84>>2];if(b){ma(b)}b=D[a+72>>2];if(b){ma(b)}b=D[a+60>>2];if(b){ma(b)}D[a>>2]=2960;b=D[a+32>>2];if(b){D[a+36>>2]=b;ma(b)}ma(a)}function Qc(a,b,c){var d=0,e=0;d=a+4|0;a=bb(a,b);if((d|0)==(a|0)){return 0}b=D[a+32>>2];d=D[a+28>>2];if((b|0)!=(d|0)){Rb(c,b-d|0);e=Sb(c);c=D[a+28>>2];oa(e,c,D[a+32>>2]-c|0)}return(b|0)!=(d|0)}function Hd(a){D[a+40>>2]=0;D[a+4>>2]=0;D[a+8>>2]=0;D[a>>2]=10032;D[a+12>>2]=0;D[a+16>>2]=0;D[a+20>>2]=0;D[a+24>>2]=0;D[a+28>>2]=0;D[a+32>>2]=0;C[a+36>>1]=0;D[a+44>>2]=0;D[a>>2]=8080;return a}function mb(a){D[a+8>>2]=0;D[a+12>>2]=0;D[a>>2]=0;D[a+40>>2]=0;D[a+44>>2]=0;D[a+28>>2]=9;B[a+24|0]=1;D[a+56>>2]=-1;D[a+60>>2]=0;D[a+16>>2]=0;D[a+20>>2]=0;D[a+48>>2]=0;D[a+52>>2]=0;return a}function ec(a,b,c){var d=0;a:{if(b){b=0;if(!jd(1,c,a)){break a}}B[a+36|0]=1;D[a+32>>2]=0;b=D[a+16>>2];c=b+D[a>>2]|0;D[a+24>>2]=c;d=a;a=D[a+8>>2];D[d+28>>2]=c+(a-b|0);b=1}return b}function le(a,b){a=a|0;b=b|0;var c=0,d=0;d=D[a+16>>2];c=0;a:{if(D[a+20>>2]-d>>2<=(b|0)){break a}b=D[(b<<2)+d>>2];c=0;if((b|0)<0){break a}c=eb(D[D[a+36>>2]+(b<<2)>>2])}return c|0}function _a(a){var b=0,c=0;b=D[2909];c=a+3&-4;a=b+c|0;a:{if(a>>>0<=b>>>0?c:0){break a}if(a>>>0>ca()<<16>>>0){if(!(Z(a|0)|0)){break a}}D[2909]=a;return b}D[2935]=48;return-1}function Jf(){var a=0;a=na(40);D[a+4>>2]=0;D[a+8>>2]=0;D[a>>2]=a+4;D[a+24>>2]=0;D[a+28>>2]=0;D[a+12>>2]=a+16;D[a+16>>2]=0;D[a+20>>2]=0;D[a+32>>2]=0;D[a+36>>2]=0;return a|0}function Ae(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0;d=D[a+8>>2];a:{if(B[d+24|0]<=0){break a}if(!Zb(d,D[b+4>>2]-D[b>>2]>>2)){break a}e=ba[D[D[a>>2]+32>>2]](a,b,c)|0}return e|0}function sb(a,b,c){var d=0,e=0;d=$-16|0;$=d;a:{if(c>>>0<=10){B[a+11|0]=c;gb(a,b,c);B[d+15|0]=0;B[a+c|0]=E[d+15|0];break a}e=a;a=E[a+11|0];Ec(e,10,c-10|0,a,a,c,b)}$=d+16|0}function Ph(a,b,c){a=a|0;b=b|0;c=c|0;var d=0;D[a+4>>2]=b;b=D[D[D[b+4>>2]+8>>2]+(c<<2)>>2];D[a+12>>2]=c;D[a+8>>2]=b;a=D[a+8>>2];if(E[a+24|0]==3){d=D[a+28>>2]==9}return d|0}function Pg(a){a=a|0;var b=0;D[a+8>>2]=9556;D[a>>2]=9392;b=D[a+56>>2];if(b){D[a+60>>2]=b;ma(b)}D[a+8>>2]=9372;b=D[a+44>>2];if(b){ma(b)}b=D[a+32>>2];if(b){ma(b)}return a|0}function Kg(a){a=a|0;var b=0;D[a+8>>2]=8624;D[a>>2]=9684;b=D[a+56>>2];if(b){D[a+60>>2]=b;ma(b)}D[a+8>>2]=8876;b=D[a+44>>2];if(b){ma(b)}b=D[a+32>>2];if(b){ma(b)}return a|0}function Fa(a,b){if(b){Fa(a,D[b>>2]);Fa(a,D[b+4>>2]);a=D[b+28>>2];D[b+28>>2]=0;if(a){Fa(a+12|0,D[a+16>>2]);Ea(a,D[a+4>>2]);ma(a)}if(B[b+27|0]<0){ma(D[b+16>>2])}ma(b)}}function Bh(a,b,c){a=a|0;b=b|0;c=c|0;var d=0;D[a+4>>2]=b;d=D[D[D[b+4>>2]+8>>2]+(c<<2)>>2];D[a+12>>2]=c;D[a+8>>2]=d;return D[D[D[D[b+4>>2]+8>>2]+(c<<2)>>2]+28>>2]==9|0}function Og(a){a=a|0;var b=0;D[a+8>>2]=9556;D[a>>2]=9392;b=D[a+56>>2];if(b){D[a+60>>2]=b;ma(b)}D[a+8>>2]=9372;b=D[a+44>>2];if(b){ma(b)}b=D[a+32>>2];if(b){ma(b)}ma(a)}function Ig(a){a=a|0;var b=0;D[a+8>>2]=8624;D[a>>2]=9684;b=D[a+56>>2];if(b){D[a+60>>2]=b;ma(b)}D[a+8>>2]=8876;b=D[a+44>>2];if(b){ma(b)}b=D[a+32>>2];if(b){ma(b)}ma(a)}function Fc(a,b){var c=0,d=0,e=0,f=0;D[a>>2]=11356;D[a>>2]=11468;c=Ba(b);d=na(c+13|0);D[d+8>>2]=0;D[d+4>>2]=c;D[d>>2]=c;e=a,f=oa(d+12|0,b,c+1|0),D[e+4>>2]=f;return a}function Qe(a,b){a=a|0;b=b|0;var c=0;a:{if(!(ba[D[D[a>>2]+36>>2]](a,b)|0)){break a}if(!(ba[D[D[a>>2]+40>>2]](a,b)|0)){break a}c=ba[D[D[a>>2]+44>>2]](a)|0}return c|0}function Xd(a){a=a|0;var b=0;a:{if(!D[a- -64>>2]|!D[a+68>>2]|(!D[a+44>>2]|!D[a+48>>2])){break a}if(!D[a+52>>2]|!D[a+56>>2]){break a}b=D[a+92>>2]!=-1}return b|0}function uc(a){a=a|0;var b=0;D[a>>2]=2136;b=D[a+20>>2];D[a+20>>2]=0;if(b){ba[D[D[b>>2]+4>>2]](b)}D[a>>2]=1920;b=D[a+16>>2];D[a+16>>2]=0;if(b){Aa(b)}return a|0}function ei(a,b){a=a|0;b=b|0;var c=0;b=D[b+88>>2];if(!(!b|D[b>>2]!=2)){c=a;a=D[b+8>>2];D[c+4>>2]=E[a|0]|E[a+1|0]<<8|(E[a+2|0]<<16|E[a+3|0]<<24);c=1}return c|0}function Rd(a){a=a|0;var b=0;a:{if(!D[a+48>>2]|!D[a+52>>2]|(!D[a+28>>2]|!D[a+32>>2])){break a}if(!D[a+36>>2]|!D[a+40>>2]){break a}b=D[a+76>>2]!=-1}return b|0}function tc(a){a=a|0;var b=0;D[a>>2]=2136;b=D[a+20>>2];D[a+20>>2]=0;if(b){ba[D[D[b>>2]+4>>2]](b)}D[a>>2]=1920;b=D[a+16>>2];D[a+16>>2]=0;if(b){Aa(b)}ma(a)}function Qg(a){a=a|0;var b=0;D[a>>2]=9556;b=D[a+48>>2];if(b){D[a+52>>2]=b;ma(b)}D[a>>2]=9372;b=D[a+36>>2];if(b){ma(b)}b=D[a+24>>2];if(b){ma(b)}return a|0}function Bd(a){a=a|0;var b=0;D[a>>2]=8624;b=D[a+48>>2];if(b){D[a+52>>2]=b;ma(b)}D[a>>2]=8876;b=D[a+36>>2];if(b){ma(b)}b=D[a+24>>2];if(b){ma(b)}return a|0}function ug(){var a=0,b=0;b=na(40);D[b>>2]=-1;a=b+8|0;D[a+16>>2]=0;D[a+20>>2]=0;D[a+8>>2]=0;D[a>>2]=0;D[a+4>>2]=0;D[a+24>>2]=0;D[a+28>>2]=0;return b|0}function bh(a){a=a|0;var b=0;D[a>>2]=8624;b=D[a+48>>2];if(b){D[a+52>>2]=b;ma(b)}D[a>>2]=8876;b=D[a+36>>2];if(b){ma(b)}b=D[a+24>>2];if(b){ma(b)}ma(a)}function Lg(a){a=a|0;var b=0;D[a>>2]=9556;b=D[a+48>>2];if(b){D[a+52>>2]=b;ma(b)}D[a>>2]=9372;b=D[a+36>>2];if(b){ma(b)}b=D[a+24>>2];if(b){ma(b)}ma(a)}function La(a){D[a+8>>2]=0;D[a+12>>2]=0;D[a>>2]=0;D[a+16>>2]=0;D[a+20>>2]=0;D[a+32>>2]=0;D[a+24>>2]=0;D[a+28>>2]=0;C[a+38>>1]=0;B[a+36|0]=0;return a}function Ie(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;if(Na(a,D[b+8>>2],f)){Bc(b,c,d,e);return}a=D[a+8>>2];ba[D[D[a>>2]+20>>2]](a,b,c,d,e,f)}function Ah(a,b,c){a=a|0;b=b|0;c=c|0;a:{if(E[D[a+4>>2]+36|0]>=2){b=0;if(!(ba[D[D[a>>2]+52>>2]](a)|0)){break a}}b=gd(a+24|0,D[a+16>>2])}return b|0}function eg(){var a=0;a=Pc(na(108));D[a+84>>2]=0;D[a+88>>2]=0;D[a>>2]=10240;D[a+92>>2]=0;D[a+96>>2]=0;D[a+100>>2]=0;D[a+104>>2]=0;return a|0}function Oc(a,b){var c=0;c=-1;a:{if((b|0)==-1|(b|0)>4){break a}b=J(b,12)+a|0;a=D[b+20>>2];if((D[b+24>>2]-a|0)<=0){break a}c=D[a>>2]}return c}function $b(a,b,c,d,e,f,g){D[a>>2]=0;D[a+56>>2]=b;D[a+48>>2]=0;D[a+52>>2]=0;D[a+40>>2]=f;D[a+44>>2]=g;B[a+32|0]=e;D[a+28>>2]=d;B[a+24|0]=c}function Oh(a,b,c){a=a|0;b=b|0;c=c|0;a:{if(E[D[a+4>>2]+36|0]>=2){b=0;if(!sc(a+24|0,eb(a),c)){break a}}b=gd(a+24|0,D[a+16>>2])}return b|0}function We(a){a=a|0;var b=0;D[a>>2]=10240;b=D[a+96>>2];if(b){D[a+100>>2]=b;ma(b)}b=D[a+84>>2];if(b){D[a+88>>2]=b;ma(b)}return ub(a)|0}function Sb(a){var b=0;if(E[a+11|0]>>>7|0){b=D[a+4>>2]}else{b=E[a+11|0]}if(!b){qc(1222);T()}if(E[a+11|0]>>>7|0){a=D[a>>2]}return a}function Ve(a){a=a|0;var b=0;D[a>>2]=10240;b=D[a+96>>2];if(b){D[a+100>>2]=b;ma(b)}b=D[a+84>>2];if(b){D[a+88>>2]=b;ma(b)}ma(ub(a))}function _d(a){a=a|0;var b=0;D[a>>2]=3264;b=D[a+76>>2];if(b){ma(b)}D[a>>2]=2960;b=D[a+32>>2];if(b){D[a+36>>2]=b;ma(b)}return a|0}function Wh(a){a=a|0;var b=0;D[a>>2]=4816;b=D[a+76>>2];if(b){ma(b)}D[a>>2]=2960;b=D[a+32>>2];if(b){D[a+36>>2]=b;ma(b)}return a|0}function Ea(a,b){if(b){Ea(a,D[b>>2]);Ea(a,D[b+4>>2]);a=D[b+28>>2];if(a){D[b+32>>2]=a;ma(a)}if(B[b+27|0]<0){ma(D[b+16>>2])}ma(b)}}function Sf(){var a=0;a=na(28);D[a>>2]=0;D[a+4>>2]=0;D[a+24>>2]=0;D[a+16>>2]=0;D[a+20>>2]=0;D[a+8>>2]=0;D[a+12>>2]=0;return a|0}function Re(a){a=a|0;var b=0;D[a>>2]=1776;b=D[a+16>>2];if(b){D[a+20>>2]=b;ma(b)}b=D[a+4>>2];if(b){D[a+8>>2]=b;ma(b)}return a|0}function bg(){var a=0,b=0;a=na(24);D[a+4>>2]=0;D[a+8>>2]=0;b=a+16|0;D[b>>2]=0;D[b+4>>2]=0;D[a>>2]=a+4;D[a+12>>2]=b;return a|0}function Me(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;if(Na(a,D[b+8>>2],0)){Cc(b,c,d);return}a=D[a+8>>2];ba[D[D[a>>2]+28>>2]](a,b,c,d)}function Zd(a){a=a|0;var b=0;D[a>>2]=3264;b=D[a+76>>2];if(b){ma(b)}D[a>>2]=2960;b=D[a+32>>2];if(b){D[a+36>>2]=b;ma(b)}ma(a)}function Vh(a){a=a|0;var b=0;D[a>>2]=4816;b=D[a+76>>2];if(b){ma(b)}D[a>>2]=2960;b=D[a+32>>2];if(b){D[a+36>>2]=b;ma(b)}ma(a)}function na(a){var b=0;a=a?a:1;a:{while(1){b=Ic(a);if(b){break a}b=D[3060];if(b){ba[b|0]();continue}break}W();T()}return b}function kb(a,b){if(b){kb(a,D[b>>2]);kb(a,D[b+4>>2]);if(B[b+39|0]<0){ma(D[b+28>>2])}if(B[b+27|0]<0){ma(D[b+16>>2])}ma(b)}}function Ac(a){a=a|0;var b=0,c=0;D[a>>2]=11468;b=D[a+4>>2]-12|0;c=D[b+8>>2]-1|0;D[b+8>>2]=c;if((c|0)<0){ma(b)}return a|0}function jg(){var a=0;a=na(24);D[a+8>>2]=0;D[a+12>>2]=0;D[a+4>>2]=-1;D[a>>2]=1624;D[a+16>>2]=0;D[a+20>>2]=0;return a|0}function yc(a,b,c){a=a|0;b=b|0;c=c|0;D[a+4>>2]=b;b=D[D[D[b+4>>2]+8>>2]+(c<<2)>>2];D[a+12>>2]=c;D[a+8>>2]=b;return 1}function nc(a){a=a|0;var b=0;if(!(!D[a+60>>2]|!D[a+44>>2]|(!D[a+48>>2]|!D[a+52>>2]))){b=D[a+56>>2]!=0}return b|0}function ci(a){a=a|0;var b=0;D[a>>2]=3500;D[a>>2]=2960;b=D[a+32>>2];if(b){D[a+36>>2]=b;ma(b)}return a|0}function Th(a){a=a|0;var b=0;D[a>>2]=5040;D[a>>2]=2960;b=D[a+32>>2];if(b){D[a+36>>2]=b;ma(b)}return a|0}function jf(a){a=a|0;if(a){if(B[a+39|0]<0){ma(D[a+28>>2])}Yb(a+12|0,D[a+16>>2]);kb(a,D[a+4>>2]);ma(a)}}function ah(a){a=a|0;var b=0;D[a>>2]=8876;b=D[a+36>>2];if(b){ma(b)}b=D[a+24>>2];if(b){ma(b)}return a|0}function Sg(a){a=a|0;var b=0;D[a>>2]=9372;b=D[a+36>>2];if(b){ma(b)}b=D[a+24>>2];if(b){ma(b)}return a|0}function qb(a){a=a|0;var b=0;if(!(!D[a+52>>2]|(!D[a+44>>2]|!D[a+48>>2]))){b=D[a+56>>2]!=0}return b|0}function mc(a,b){a=a|0;b=b|0;var c=0;if(!(D[b+56>>2]|!b|E[b+24|0]!=3)){D[a+60>>2]=b;c=1}return c|0}function bi(a){a=a|0;var b=0;D[a>>2]=3500;D[a>>2]=2960;b=D[a+32>>2];if(b){D[a+36>>2]=b;ma(b)}ma(a)}function Sh(a){a=a|0;var b=0;D[a>>2]=5040;D[a>>2]=2960;b=D[a+32>>2];if(b){D[a+36>>2]=b;ma(b)}ma(a)}function vg(a,b,c){a=a|0;b=b|0;c=c|0;D[a+16>>2]=0;D[a+20>>2]=0;D[a>>2]=b;D[a+8>>2]=c;D[a+12>>2]=0}function _g(a){a=a|0;var b=0;D[a>>2]=8876;b=D[a+36>>2];if(b){ma(b)}b=D[a+24>>2];if(b){ma(b)}ma(a)}function Wd(a,b){a=a|0;b=b|0;var c=0;if(!(D[b+56>>2]|E[b+24|0]!=3)){D[a- -64>>2]=b;c=1}return c|0}function Rg(a){a=a|0;var b=0;D[a>>2]=9372;b=D[a+36>>2];if(b){ma(b)}b=D[a+24>>2];if(b){ma(b)}ma(a)}function Qd(a,b){a=a|0;b=b|0;var c=0;if(!(D[b+56>>2]|E[b+24|0]!=3)){D[a+48>>2]=b;c=1}return c|0}function He(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;if(Na(a,D[b+8>>2],f)){Bc(b,c,d,e)}}function sa(){var a=0;a=Y(4)|0;D[a>>2]=11356;D[a>>2]=11316;D[a>>2]=11336;X(a|0,11448,14);T()}function we(a){a=a|0;var b=0;D[a>>2]=1920;b=D[a+16>>2];D[a+16>>2]=0;if(b){Aa(b)}return a|0}function fe(a){a=a|0;var b=0;D[a>>2]=2960;b=D[a+32>>2];if(b){D[a+36>>2]=b;ma(b)}return a|0}function yh(a){a=a|0;var b=0;b=eb(a);return nd(a+24|0,b?b:D[a+8>>2],D[D[a+4>>2]+32>>2])|0}function Jg(a){a=a|0;var b=0;D[a>>2]=1624;b=D[a+8>>2];if(b){D[a+12>>2]=b;ma(b)}return a|0}function ve(a){a=a|0;var b=0;D[a>>2]=1920;b=D[a+16>>2];D[a+16>>2]=0;if(b){Aa(b)}ma(a)}function Ob(a){a=a|0;var b=0;D[a>>2]=2960;b=D[a+32>>2];if(b){D[a+36>>2]=b;ma(b)}ma(a)}function Bg(a){a=a|0;var b=0;D[a>>2]=1624;b=D[a+8>>2];if(b){D[a+12>>2]=b;ma(b)}ma(a)}function ke(a,b){a=a|0;b=b|0;return ba[D[D[a>>2]+48>>2]](a,D[b+4>>2]-D[b>>2]>>2)|0}function Yb(a,b){if(b){Yb(a,D[b>>2]);Yb(a,D[b+4>>2]);kb(b+20|0,D[b+24>>2]);ma(b)}}function th(a){a=a|0;if(!D[a+44>>2]){return 0}return ba[D[D[a>>2]+48>>2]](a)|0}function tg(a){a=a|0;var b=0;if(a){b=D[a+8>>2];if(b){D[a+12>>2]=b;ma(b)}ma(a)}}function ii(a){var b=0;while(1){if(a){a=a-1&a;b=b+1|0;continue}break}return b}function Ne(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;if(Na(a,D[b+8>>2],0)){Cc(b,c,d)}}function rh(a,b){a=a|0;b=b|0;a=D[a+48>>2];return ba[D[D[a>>2]+20>>2]](a,b)|0}function kh(a,b){a=a|0;b=b|0;a=D[a+48>>2];return ba[D[D[a>>2]+12>>2]](a,b)|0}function jh(a,b){a=a|0;b=b|0;a=D[a+48>>2];return ba[D[D[a>>2]+16>>2]](a,b)|0}function ab(){var a=0;a=na(12);D[a>>2]=0;D[a+4>>2]=0;D[a+8>>2]=0;return a|0}function $a(a){a=a|0;var b=0;if(a){b=D[a>>2];if(b){D[a+4>>2]=b;ma(b)}ma(a)}}function ji(a){var b=0;b=a&31;a=0-a&31;return(-1>>>b&-2)<>>a}function hf(a,b,c){a=a|0;b=b|0;c=c|0;D[a+32>>2]=c;D[a+28>>2]=b;return 1}function ag(a){a=a|0;if(a){Fa(a+12|0,D[a+16>>2]);Ea(a,D[a+4>>2]);ma(a)}}function Lb(a,b){a=a|0;b=b|0;if(b>>>0<=1){D[a+28>>2]=b}return b>>>0<2|0}function Cg(a,b){a=a|0;b=b|0;B[b+84|0]=1;D[b+72>>2]=D[b+68>>2];return 1}function ph(a){a=a|0;a=D[a+48>>2];return ba[D[D[a>>2]+24>>2]](a)|0}function oh(a){a=a|0;a=D[a+48>>2];return ba[D[D[a>>2]+28>>2]](a)|0}function lh(a){a=a|0;a=D[a+48>>2];return ba[D[D[a>>2]+36>>2]](a)|0}function gg(){var a=0;a=na(8);D[a+4>>2]=-1;D[a>>2]=1032;return a|0}function Df(a,b,c){a=a|0;b=b|0;c=c|0;return D[D[b+8>>2]+(c<<2)>>2]}function xh(a,b){a=a|0;b=b|0;return sd(a+24|0,eb(a),D[a+8>>2])|0}function Nh(a,b){a=a|0;b=b|0;return xc(a+24|0,eb(a),D[a+8>>2])|0}function zh(a,b){a=a|0;b=b|0;return ba[D[D[a>>2]+56>>2]](a,b)|0}function fd(a,b){a=a|0;b=b|0;return ba[D[D[a>>2]+12>>2]](a,b)|0}function Zf(a){a=a|0;if(a){if(B[a+15|0]<0){ma(D[a+4>>2])}ma(a)}}function Ge(a){a=a|0;if(!a){return 0}return(Dc(a,11164)|0)!=0|0}function Be(a,b){a=a|0;b=b|0;D[a+12>>2]=-1;D[a+8>>2]=b;return 1}function qc(a){a=Fc(Y(8)|0,a);D[a>>2]=11568;X(a|0,11600,1);T()}function Od(a){a=Fc(Y(8)|0,a);D[a>>2]=11516;X(a|0,11548,1);T()}function ig(a,b){a=a|0;b=b|0;return K(H[D[a+8>>2]+(b<<2)>>2])}function Yf(a,b){a=a|0;b=b|0;return K(H[D[a>>2]+(b<<2)>>2])}function cg(a){a=a|0;return(D[a+100>>2]-D[a+96>>2]|0)/12|0}function _f(a){a=a|0;return(B[a+15|0]<0?D[a+4>>2]:a+4|0)|0}function Je(a,b){a=a|0;b=b|0;return D[D[a+4>>2]+(b<<2)>>2]}function bd(a,b){a=a|0;b=b|0;return D[D[a>>2]+(b<<2)>>2]}function Uf(a,b){a=a|0;b=b|0;return C[D[a>>2]+(b<<1)>>1]}function Tf(a,b){a=a|0;b=b|0;return F[D[a>>2]+(b<<1)>>1]}function Sd(a,b,c){a=a|0;b=b|0;c=c|0;return vc(a,b,c)|0}function Gf(a,b,c){a=a|0;b=b|0;c=c|0;return Oc(b,c)|0}function ki(a){if(a){return 31-M(a-1^a)|0}return 32} -function Pc(a){D[a>>2]=10300;qa(a+4|0,0,80);return a}function ed(a){a=a|0;return D[a+12>>2]-D[a+8>>2]>>2}function xb(a){a=a|0;if(a){ba[D[D[a>>2]+4>>2]](a)}}function Wf(a,b){a=a|0;b=b|0;return B[D[a>>2]+b|0]}function Vf(a,b){a=a|0;b=b|0;return E[D[a>>2]+b|0]}function Ce(a){a=a|0;return D[a+8>>2]-D[a+4>>2]>>2}function Gd(a,b){a=a|0;b=b|0;D[a+4>>2]=b;return 1}function cd(a){a=a|0;return D[a+4>>2]-D[a>>2]>>1}function ac(a){a=a|0;return D[a+4>>2]-D[a>>2]>>2}function dd(a){a=a|0;return D[a+4>>2]-D[a>>2]|0}function ze(a,b,c){a=a|0;b=b|0;c=c|0;return 1}function xg(a,b){a=a|0;b=b|0;return B[b+24|0]}function ge(a){a=a|0;return B[D[a+8>>2]+24|0]}function Mf(a,b){a=a|0;b=b|0;return D[b+8>>2]}function Bf(a,b){a=a|0;b=b|0;return D[b+4>>2]}function Kh(a){a=a|0;D[a>>2]=5928;return a|0}function Fh(a){a=a|0;D[a>>2]=6932;return a|0}function hg(a){a=a|0;return K(H[a+20>>2])}function Jh(a){a=a|0;D[a>>2]=5928;ma(a)}function Eh(a){a=a|0;D[a>>2]=6932;ma(a)}function qg(a){a=a|0;return D[a+88>>2]}function pg(a){a=a|0;return D[a+56>>2]}function mg(a){a=a|0;return D[a+40>>2]}function lg(a){a=a|0;return D[a+48>>2]}function kg(a){a=a|0;return D[a+60>>2]}function fb(a){a=a|0;return D[a+28>>2]}function bc(a){a=a|0;return D[a+80>>2]}function zc(a,b){a=a|0;b=b|0;return 1}function td(a){a=a|0;return D[a+8>>2]}function rc(a,b){a=a|0;b=b|0;return-1}function og(a){a=a|0;return B[a+24|0]}function ng(a){a=a|0;return E[a+32|0]}function Za(a){a=a|0;return D[a+4>>2]}function Td(a,b){a=a|0;b=b|0;return 6}function Lh(a,b){a=a|0;b=b|0;return 2}function Ka(a,b){a=a|0;b=b|0;return 0}function $f(a){a=a|0;return!D[a>>2]|0}function hd(a){a=a|0;return D[a>>2]}function gb(a,b,c){if(c){oa(a,b,c)}}function wg(){return La(na(40))|0}function sg(){return mb(na(64))|0}function fg(){return Pc(na(84))|0}function cc(a){a=a|0;if(a){ma(a)}}function Qb(a){a=a|0;Ac(a);ma(a)}function Fe(a){a=a|0;return 1161}function Ee(a){a=a|0;return 1235}function De(a){a=a|0;return 1201}function Qa(a){a=a|0;return a|0}function dh(a){a=a|0;ma(rd(a))}function ch(a){a=a|0;ma(pd(a))}function Se(a){a=a|0;ma(ub(a))}function wa(a){a=a|0;return 1}function pc(a){a=a|0;return 4}function oc(a){a=a|0;return 5}function Ya(a){a=a|0;return 0}function Ud(a){a=a|0;return 2}function Nb(a){a=a|0;return 6}function Ih(a){a=a|0;return 3}function va(){qc(1154);T()}function pa(){Od(1154);T()}function Ja(a){a=a|0;ma(a)}function Ca(){Od(1222);T()}function Sa(a){a=a|0;T()}function bf(){return 10}function af(){return 11}function $e(){return 12}function wb(){return-1}function vb(){return 1}function lb(){return 0}function gf(){return 5}function ff(){return 6}function ef(){return 7}function df(){return 8}function cf(){return 9}function _e(){return-2}function _c(){return 4}function Ze(){return-3}function Ye(){return-4}function Xe(){return-5}function Xb(){return 2}function $c(){return 3}function Pe(){W();T()}function Hc(a){a=a|0}function Yd(){} +function kc(a,b,c,d){var e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0;if(!a){return 1}e=F[c+20>>2];h=F[c+12>>2];f=F[c+16>>2];a:{if((e|0)>=(h|0)&f>>>0>=I[c+8>>2]|(e|0)>(h|0)){break a}h=G[f+F[c>>2]|0];f=f+1|0;e=f?e:e+1|0;F[c+16>>2]=f;F[c+20>>2]=e;b:{switch(h|0){case 0:m=a;e=b;h=d;d=0;j=aa+-64|0;aa=j;F[j+56>>2]=0;F[j+48>>2]=0;F[j+52>>2]=0;F[j+40>>2]=0;F[j+44>>2]=0;F[j+32>>2]=0;F[j+36>>2]=0;F[j+24>>2]=0;F[j+28>>2]=0;F[j+16>>2]=0;F[j+20>>2]=0;F[j+8>>2]=0;F[j+12>>2]=0;c:{if(!Ld(j+8|0,c)){break c}if(!Kd(j+8|0,c)|(F[j+20>>2]?0:m)){break c}fc(c,0,0);b=(m|0)!=0;d:{if(m){n=e<<2;r=F[j+36>>2];s=F[j+48>>2];t=F[j+24>>2];while(1){l=F[j+56>>2];e:{if(l>>>0>16383){break e}a=F[j+52>>2];while(1){if((a|0)<=0){break e}a=a-1|0;F[j+52>>2]=a;l=G[a+s|0]|l<<8;F[j+56>>2]=l;if(l>>>0<16384){continue}break}}a=l&4095;i=F[(a<<2)+t>>2];f=(i<<3)+r|0;F[j+56>>2]=(L(F[f>>2],l>>>12|0)+a|0)-F[f+4>>2];f:{if((e|0)<=0){break f}if(!G[c+36|0]|i>>>0>32){break d}if(!i){pa(h+(d<<2)|0,0,n);d=d+e|0;break f}u=i&-2;x=i&1;q=d+e|0;b=F[c+32>>2];g=F[c+28>>2];k=F[c+24>>2];while(1){l=0;a=b;f=0;p=0;if((i|0)!=1){while(1){o=k+(a>>>3|0)|0;g:{if(o>>>0>=g>>>0){o=0;break g}o=G[o|0];b=a+1|0;F[c+32>>2]=b;o=o>>>(a&7)&1;a=b}o=o<>>3|0)|0;if(v>>>0>>0){f=G[v|0];b=a+1|0;F[c+32>>2]=b;f=f>>>(a&7)&1;a=b}v=l|1;l=l+2|0;f=o|f<>>3|0)|0;if(o>>>0>>0){o=G[o|0];b=a+1|0;F[c+32>>2]=b;a=o>>>(a&7)&1}else{a=0}f=a<>2]=f;d=d+1|0;if((q|0)!=(d|0)){continue}break}d=q}w=e+w|0;b=m>>>0>w>>>0;if(b){continue}break}}D[c+36|0]=0;e=F[c+20>>2];a=0;d=F[c+32>>2]+7|0;a=d>>>0<7?1:a;m=a<<29|d>>>3;l=m+F[c+16>>2]|0;a=(a>>>3|0)+e|0;F[c+16>>2]=l;F[c+20>>2]=l>>>0>>0?a+1|0:a}l=b^1}a=F[j+36>>2];if(a){F[j+40>>2]=a;ma(a)}a=F[j+24>>2];if(a){F[j+28>>2]=a;ma(a)}a=F[j+8>>2];if(a){F[j+12>>2]=a;ma(a)}aa=j- -64|0;return l&1;case 1:break b;default:break a}}b=0;e=F[c+20>>2];h=F[c+12>>2];f=F[c+16>>2];h:{if((e|0)>=(h|0)&f>>>0>=I[c+8>>2]|(e|0)>(h|0)){break h}h=G[f+F[c>>2]|0];f=f+1|0;e=f?e:e+1|0;F[c+16>>2]=f;F[c+20>>2]=e;i:{switch(h-1|0){case 8:h=a;q=d;e=aa+-64|0;aa=e;F[e+56>>2]=0;F[e+48>>2]=0;F[e+52>>2]=0;F[e+40>>2]=0;F[e+44>>2]=0;F[e+32>>2]=0;F[e+36>>2]=0;F[e+24>>2]=0;F[e+28>>2]=0;F[e+16>>2]=0;F[e+20>>2]=0;F[e+8>>2]=0;F[e+12>>2]=0;j=e+8|0;j:{k:{if(!H[c+38>>1]){break k}if(!Wa(1,j+12|0,c)){break k}a=F[c+8>>2];b=F[c+16>>2];d=a-b|0;i=F[j+12>>2];a=F[c+12>>2]-(F[c+20>>2]+(a>>>0>>0)|0)|0;if(d>>>0>>6>>>0&(a|0)<=0|(a|0)<0){break k}b=F[j>>2];a=F[j+4>>2]-b>>2;l:{if(a>>>0>>0){ra(j,i-a|0);i=F[j+12>>2];break l}if(a>>>0<=i>>>0){break l}F[j+4>>2]=b+(i<<2)}f=1;if(!i){break j}g=F[c+16>>2];d=F[c+20>>2];n=F[j>>2];r=F[c+8>>2];k=F[c+12>>2];b=0;while(1){f=0;if((d|0)>=(k|0)&g>>>0>=r>>>0|(d|0)>(k|0)){break j}s=F[c>>2];o=G[s+g|0];a=d;d=g+1|0;a=d?a:a+1|0;g=d;F[c+16>>2]=d;d=a;F[c+20>>2]=a;a=o>>>2|0;f=0;m:{n:{o:{p:{t=o&3;switch(t|0){case 0:break n;case 3:break p;default:break o}}a=a+b|0;f=0;if(a>>>0>=i>>>0){break j}pa(n+(b<<2)|0,0,(o&252)+4|0);b=a;break m}while(1){if((d|0)>=(k|0)&g>>>0>=r>>>0|(d|0)>(k|0)){break k}i=G[g+s|0];g=g+1|0;d=g?d:d+1|0;F[c+16>>2]=g;F[c+20>>2]=d;a=i<<(f<<3|6)|a;f=f+1|0;if((t|0)!=(f|0)){continue}break}}F[n+(b<<2)>>2]=a}b=b+1|0;i=F[j+12>>2];if(b>>>0>>0){continue}break}a=j+16|0;o=F[j>>2];d=F[j+16>>2];b=F[j+20>>2]-d|0;q:{if(b>>>0<=32767){ra(a,8192-(b>>>2|0)|0);break q}if((b|0)==32768){break q}F[j+20>>2]=d+32768}d=j+28|0;b=F[d>>2];f=F[j+32>>2]-b>>3;r:{if(f>>>0>>0){cb(d,i-f|0);b=F[d>>2];break r}if(f>>>0>i>>>0){F[j+32>>2]=(i<<3)+b}if(!i){break k}}j=F[a>>2];g=0;d=0;while(1){f=o+(g<<2)|0;k=F[f>>2];n=(g<<3)+b|0;a=d;F[n+4>>2]=a;F[n>>2]=k;k=F[f>>2];d=k+a|0;if(d>>>0>8192){break k}s:{if(a>>>0>=d>>>0){break s}f=0;n=k&7;if(n){while(1){F[j+(a<<2)>>2]=g;a=a+1|0;f=f+1|0;if((n|0)!=(f|0)){continue}break}}if(k-1>>>0<=6){break s}while(1){f=j+(a<<2)|0;F[f>>2]=g;F[f+28>>2]=g;F[f+24>>2]=g;F[f+20>>2]=g;F[f+16>>2]=g;F[f+12>>2]=g;F[f+8>>2]=g;F[f+4>>2]=g;a=a+8|0;if((d|0)!=(a|0)){continue}break}}g=g+1|0;if((i|0)!=(g|0)){continue}break}m=(d|0)==8192}f=m}t:{if(!f|(F[e+20>>2]?0:h)){break t}d=0;f=aa-16|0;aa=f;u:{if(!Va(1,f+8|0,c)){break u}a=F[c+8>>2];b=F[c+16>>2];j=a-b|0;i=F[f+12>>2];g=F[c+20>>2];a=F[c+12>>2]-(g+(a>>>0>>0)|0)|0;m=F[f+8>>2];if((i|0)==(a|0)&j>>>0>>0|a>>>0>>0){break u}a=g+i|0;j=b+m|0;a=j>>>0>>0?a+1|0:a;F[c+16>>2]=j;F[c+20>>2]=a;a=m;if((a|0)<=0){break u}b=b+F[c>>2]|0;F[e+48>>2]=b;c=a-1|0;m=c+b|0;j=G[m|0];v:{if(j>>>0<=63){F[e+52>>2]=c;a=G[m|0]&63;break v}w:{switch((j>>>6|0)-1|0){case 0:if(a>>>0<2){break u}a=a-2|0;F[e+52>>2]=a;a=a+b|0;a=G[a+1|0]<<8&16128|G[a|0];break v;case 1:if(a>>>0<3){break u}a=a-3|0;F[e+52>>2]=a;a=a+b|0;a=G[a+1|0]<<8|G[a+2|0]<<16&4128768|G[a|0];break v;default:break w}}a=a-4|0;F[e+52>>2]=a;a=a+b|0;a=G[a+2|0]<<16|G[a+3|0]<<24&1056964608|G[a+1|0]<<8|G[a|0]}F[e+56>>2]=a+32768;d=a>>>0<8355840}aa=f+16|0;if(!d){break t}if(!h){l=1;break t}a=F[e+56>>2];b=F[e+36>>2];c=F[e+48>>2];d=F[e+24>>2];while(1){x:{if(a>>>0>32767){break x}l=F[e+52>>2];while(1){if((l|0)<=0){break x}l=l-1|0;F[e+52>>2]=l;a=G[c+l|0]|a<<8;F[e+56>>2]=a;if(a>>>0<32768){continue}break}}l=a&8191;m=F[d+(l<<2)>>2];f=b+(m<<3)|0;a=(L(F[f>>2],a>>>13|0)+l|0)-F[f+4>>2]|0;F[e+56>>2]=a;F[q+(p<<2)>>2]=m;l=1;p=p+1|0;if((h|0)!=(p|0)){continue}break}}a=F[e+36>>2];if(a){F[e+40>>2]=a;ma(a)}a=F[e+24>>2];if(a){F[e+28>>2]=a;ma(a)}a=F[e+8>>2];if(a){F[e+12>>2]=a;ma(a)}aa=e- -64|0;b=l;break h;case 9:q=a;j=d;h=aa+-64|0;aa=h;F[h+56>>2]=0;F[h+48>>2]=0;F[h+52>>2]=0;F[h+40>>2]=0;F[h+44>>2]=0;F[h+32>>2]=0;F[h+36>>2]=0;F[h+24>>2]=0;F[h+28>>2]=0;F[h+16>>2]=0;F[h+20>>2]=0;F[h+8>>2]=0;F[h+12>>2]=0;k=h+8|0;y:{z:{if(!H[c+38>>1]){break z}if(!Wa(1,k+12|0,c)){break z}a=F[c+8>>2];b=F[c+16>>2];d=a-b|0;i=F[k+12>>2];a=F[c+12>>2]-(F[c+20>>2]+(a>>>0>>0)|0)|0;if(d>>>0>>6>>>0&(a|0)<=0|(a|0)<0){break z}b=F[k>>2];a=F[k+4>>2]-b>>2;A:{if(a>>>0>>0){ra(k,i-a|0);i=F[k+12>>2];break A}if(a>>>0<=i>>>0){break A}F[k+4>>2]=b+(i<<2)}e=1;if(!i){break y}g=F[c+16>>2];d=F[c+20>>2];r=F[k>>2];s=F[c+8>>2];o=F[c+12>>2];b=0;while(1){e=0;if((d|0)>=(o|0)&g>>>0>=s>>>0|(d|0)>(o|0)){break y}t=F[c>>2];n=G[t+g|0];e=d;a=g+1|0;e=a?e:e+1|0;g=a;F[c+16>>2]=a;d=e;F[c+20>>2]=e;a=n>>>2|0;f=0;B:{C:{D:{E:{e=n&3;switch(e|0){case 0:break C;case 3:break E;default:break D}}a=a+b|0;e=0;if(a>>>0>=i>>>0){break y}pa(r+(b<<2)|0,0,(n&252)+4|0);b=a;break B}while(1){if((d|0)>=(o|0)&g>>>0>=s>>>0|(d|0)>(o|0)){break z}i=G[g+t|0];g=g+1|0;d=g?d:d+1|0;F[c+16>>2]=g;F[c+20>>2]=d;a=i<<(f<<3|6)|a;f=f+1|0;if((e|0)!=(f|0)){continue}break}}F[r+(b<<2)>>2]=a}b=b+1|0;i=F[k+12>>2];if(b>>>0>>0){continue}break}a=k+16|0;o=F[k>>2];d=F[k+16>>2];b=F[k+20>>2]-d|0;F:{if(b>>>0<=131071){ra(a,32768-(b>>>2|0)|0);break F}if((b|0)==131072){break F}F[k+20>>2]=d+131072}d=k+28|0;b=F[d>>2];e=F[k+32>>2]-b>>3;G:{if(e>>>0>>0){cb(d,i-e|0);b=F[d>>2];break G}if(e>>>0>i>>>0){F[k+32>>2]=(i<<3)+b}if(!i){break z}}k=F[a>>2];g=0;d=0;while(1){e=o+(g<<2)|0;f=F[e>>2];n=(g<<3)+b|0;a=d;F[n+4>>2]=a;F[n>>2]=f;e=F[e>>2];d=e+a|0;if(d>>>0>32768){break z}H:{if(a>>>0>=d>>>0){break H}f=0;n=e&7;if(n){while(1){F[k+(a<<2)>>2]=g;a=a+1|0;f=f+1|0;if((n|0)!=(f|0)){continue}break}}if(e-1>>>0<=6){break H}while(1){e=k+(a<<2)|0;F[e>>2]=g;F[e+28>>2]=g;F[e+24>>2]=g;F[e+20>>2]=g;F[e+16>>2]=g;F[e+12>>2]=g;F[e+8>>2]=g;F[e+4>>2]=g;a=a+8|0;if((d|0)!=(a|0)){continue}break}}g=g+1|0;if((i|0)!=(g|0)){continue}break}m=(d|0)==32768}e=m}I:{if(!e|(F[h+20>>2]?0:q)){break I}d=0;m=aa-16|0;aa=m;J:{if(!Va(1,m+8|0,c)){break J}a=F[c+8>>2];b=F[c+16>>2];e=a-b|0;i=F[m+12>>2];f=i;g=F[c+20>>2];k=F[c+12>>2]-(g+(a>>>0>>0)|0)|0;a=F[m+8>>2];if((f|0)==(k|0)&e>>>0>>0|f>>>0>k>>>0){break J}e=g+i|0;f=a+b|0;e=f>>>0>>0?e+1|0:e;F[c+16>>2]=f;F[c+20>>2]=e;if((a|0)<=0){break J}b=b+F[c>>2]|0;F[h+48>>2]=b;c=a-1|0;e=c+b|0;f=G[e|0];K:{if(f>>>0<=63){F[h+52>>2]=c;a=G[e|0]&63;break K}L:{switch((f>>>6|0)-1|0){case 0:if(a>>>0<2){break J}a=a-2|0;F[h+52>>2]=a;a=a+b|0;a=G[a+1|0]<<8&16128|G[a|0];break K;case 1:if(a>>>0<3){break J}a=a-3|0;F[h+52>>2]=a;a=a+b|0;a=G[a+1|0]<<8|G[a+2|0]<<16&4128768|G[a|0];break K;default:break L}}a=a-4|0;F[h+52>>2]=a;a=a+b|0;a=G[a+2|0]<<16|G[a+3|0]<<24&1056964608|G[a+1|0]<<8|G[a|0]}F[h+56>>2]=a+131072;d=a>>>0<33423360}aa=m+16|0;if(!d){break I}if(!q){l=1;break I}a=F[h+56>>2];b=F[h+36>>2];c=F[h+48>>2];d=F[h+24>>2];while(1){M:{if(a>>>0>131071){break M}l=F[h+52>>2];while(1){if((l|0)<=0){break M}l=l-1|0;F[h+52>>2]=l;a=G[c+l|0]|a<<8;F[h+56>>2]=a;if(a>>>0<131072){continue}break}}l=a&32767;e=F[d+(l<<2)>>2];m=b+(e<<3)|0;a=(L(F[m>>2],a>>>15|0)+l|0)-F[m+4>>2]|0;F[h+56>>2]=a;F[j+(p<<2)>>2]=e;l=1;p=p+1|0;if((q|0)!=(p|0)){continue}break}}a=F[h+36>>2];if(a){F[h+40>>2]=a;ma(a)}a=F[h+24>>2];if(a){F[h+28>>2]=a;ma(a)}a=F[h+8>>2];if(a){F[h+12>>2]=a;ma(a)}aa=h- -64|0;b=l;break h;case 10:q=a;j=d;h=aa+-64|0;aa=h;F[h+56>>2]=0;F[h+48>>2]=0;F[h+52>>2]=0;F[h+40>>2]=0;F[h+44>>2]=0;F[h+32>>2]=0;F[h+36>>2]=0;F[h+24>>2]=0;F[h+28>>2]=0;F[h+16>>2]=0;F[h+20>>2]=0;F[h+8>>2]=0;F[h+12>>2]=0;k=h+8|0;N:{O:{if(!H[c+38>>1]){break O}if(!Wa(1,k+12|0,c)){break O}a=F[c+8>>2];b=F[c+16>>2];d=a-b|0;i=F[k+12>>2];a=F[c+12>>2]-(F[c+20>>2]+(a>>>0>>0)|0)|0;if(d>>>0>>6>>>0&(a|0)<=0|(a|0)<0){break O}b=F[k>>2];a=F[k+4>>2]-b>>2;P:{if(a>>>0>>0){ra(k,i-a|0);i=F[k+12>>2];break P}if(a>>>0<=i>>>0){break P}F[k+4>>2]=b+(i<<2)}e=1;if(!i){break N}g=F[c+16>>2];d=F[c+20>>2];r=F[k>>2];s=F[c+8>>2];o=F[c+12>>2];b=0;while(1){e=0;if((d|0)>=(o|0)&g>>>0>=s>>>0|(d|0)>(o|0)){break N}t=F[c>>2];n=G[t+g|0];a=d;d=g+1|0;a=d?a:a+1|0;g=d;F[c+16>>2]=d;d=a;F[c+20>>2]=a;a=n>>>2|0;f=0;Q:{R:{S:{T:{u=n&3;switch(u|0){case 0:break R;case 3:break T;default:break S}}a=a+b|0;e=0;if(a>>>0>=i>>>0){break N}pa(r+(b<<2)|0,0,(n&252)+4|0);b=a;break Q}while(1){if((d|0)>=(o|0)&g>>>0>=s>>>0|(d|0)>(o|0)){break O}i=G[g+t|0];e=d;d=g+1|0;e=d?e:e+1|0;g=d;F[c+16>>2]=d;d=e;F[c+20>>2]=e;a=i<<(f<<3|6)|a;f=f+1|0;if((u|0)!=(f|0)){continue}break}}F[r+(b<<2)>>2]=a}b=b+1|0;i=F[k+12>>2];if(b>>>0>>0){continue}break}a=k+16|0;o=F[k>>2];d=F[k+16>>2];b=F[k+20>>2]-d|0;U:{if(b>>>0<=262143){ra(a,65536-(b>>>2|0)|0);break U}if((b|0)==262144){break U}F[k+20>>2]=d+262144}d=k+28|0;b=F[d>>2];e=F[k+32>>2]-b>>3;V:{if(e>>>0>>0){cb(d,i-e|0);b=F[d>>2];break V}if(e>>>0>i>>>0){F[k+32>>2]=(i<<3)+b}if(!i){break O}}k=F[a>>2];g=0;d=0;while(1){e=o+(g<<2)|0;f=F[e>>2];n=(g<<3)+b|0;a=d;F[n+4>>2]=a;F[n>>2]=f;e=F[e>>2];d=e+a|0;if(d>>>0>65536){break O}W:{if(a>>>0>=d>>>0){break W}f=0;n=e&7;if(n){while(1){F[k+(a<<2)>>2]=g;a=a+1|0;f=f+1|0;if((n|0)!=(f|0)){continue}break}}if(e-1>>>0<=6){break W}while(1){e=k+(a<<2)|0;F[e>>2]=g;F[e+28>>2]=g;F[e+24>>2]=g;F[e+20>>2]=g;F[e+16>>2]=g;F[e+12>>2]=g;F[e+8>>2]=g;F[e+4>>2]=g;a=a+8|0;if((d|0)!=(a|0)){continue}break}}g=g+1|0;if((i|0)!=(g|0)){continue}break}m=(d|0)==65536}e=m}X:{if(!e|(F[h+20>>2]?0:q)){break X}d=0;m=aa-16|0;aa=m;Y:{if(!Va(1,m+8|0,c)){break Y}a=F[c+8>>2];b=F[c+16>>2];f=a-b|0;i=F[m+12>>2];g=F[c+20>>2];a=F[c+12>>2]-(g+(a>>>0>>0)|0)|0;e=F[m+8>>2];if((i|0)==(a|0)&f>>>0>>0|a>>>0>>0){break Y}a=g+i|0;f=b+e|0;a=f>>>0>>0?a+1|0:a;F[c+16>>2]=f;F[c+20>>2]=a;a=e;if((a|0)<=0){break Y}b=b+F[c>>2]|0;F[h+48>>2]=b;c=a-1|0;e=c+b|0;f=G[e|0];Z:{if(f>>>0<=63){F[h+52>>2]=c;a=G[e|0]&63;break Z}_:{switch((f>>>6|0)-1|0){case 0:if(a>>>0<2){break Y}a=a-2|0;F[h+52>>2]=a;a=a+b|0;a=G[a+1|0]<<8&16128|G[a|0];break Z;case 1:if(a>>>0<3){break Y}a=a-3|0;F[h+52>>2]=a;a=a+b|0;a=G[a+1|0]<<8|G[a+2|0]<<16&4128768|G[a|0];break Z;default:break _}}a=a-4|0;F[h+52>>2]=a;a=a+b|0;a=G[a+2|0]<<16|G[a+3|0]<<24&1056964608|G[a+1|0]<<8|G[a|0]}F[h+56>>2]=a+262144;d=a>>>0<66846720}aa=m+16|0;if(!d){break X}if(!q){l=1;break X}a=F[h+56>>2];b=F[h+36>>2];c=F[h+48>>2];d=F[h+24>>2];while(1){$:{if(a>>>0>262143){break $}l=F[h+52>>2];while(1){if((l|0)<=0){break $}l=l-1|0;F[h+52>>2]=l;a=G[c+l|0]|a<<8;F[h+56>>2]=a;if(a>>>0<262144){continue}break}}l=a&65535;e=F[d+(l<<2)>>2];m=b+(e<<3)|0;a=(L(F[m>>2],a>>>16|0)+l|0)-F[m+4>>2]|0;F[h+56>>2]=a;F[j+(p<<2)>>2]=e;l=1;p=p+1|0;if((q|0)!=(p|0)){continue}break}}a=F[h+36>>2];if(a){F[h+40>>2]=a;ma(a)}a=F[h+24>>2];if(a){F[h+28>>2]=a;ma(a)}a=F[h+8>>2];if(a){F[h+12>>2]=a;ma(a)}aa=h- -64|0;b=l;break h;case 11:q=a;j=d;h=aa+-64|0;aa=h;F[h+56>>2]=0;F[h+48>>2]=0;F[h+52>>2]=0;F[h+40>>2]=0;F[h+44>>2]=0;F[h+32>>2]=0;F[h+36>>2]=0;F[h+24>>2]=0;F[h+28>>2]=0;F[h+16>>2]=0;F[h+20>>2]=0;F[h+8>>2]=0;F[h+12>>2]=0;k=h+8|0;aa:{ba:{if(!H[c+38>>1]){break ba}if(!Wa(1,k+12|0,c)){break ba}a=F[c+8>>2];b=F[c+16>>2];d=a-b|0;i=F[k+12>>2];a=F[c+12>>2]-(F[c+20>>2]+(a>>>0>>0)|0)|0;if(d>>>0>>6>>>0&(a|0)<=0|(a|0)<0){break ba}b=F[k>>2];a=F[k+4>>2]-b>>2;ca:{if(a>>>0>>0){ra(k,i-a|0);i=F[k+12>>2];break ca}if(a>>>0<=i>>>0){break ca}F[k+4>>2]=b+(i<<2)}e=1;if(!i){break aa}g=F[c+16>>2];d=F[c+20>>2];r=F[k>>2];s=F[c+8>>2];o=F[c+12>>2];b=0;while(1){e=0;if((d|0)>=(o|0)&g>>>0>=s>>>0|(d|0)>(o|0)){break aa}t=F[c>>2];n=G[t+g|0];e=d;a=g+1|0;e=a?e:e+1|0;g=a;F[c+16>>2]=a;d=e;F[c+20>>2]=e;a=n>>>2|0;f=0;da:{ea:{fa:{ga:{e=n&3;switch(e|0){case 0:break ea;case 3:break ga;default:break fa}}a=a+b|0;e=0;if(a>>>0>=i>>>0){break aa}pa(r+(b<<2)|0,0,(n&252)+4|0);b=a;break da}while(1){if((d|0)>=(o|0)&g>>>0>=s>>>0|(d|0)>(o|0)){break ba}i=G[g+t|0];g=g+1|0;d=g?d:d+1|0;F[c+16>>2]=g;F[c+20>>2]=d;a=i<<(f<<3|6)|a;f=f+1|0;if((e|0)!=(f|0)){continue}break}}F[r+(b<<2)>>2]=a}b=b+1|0;i=F[k+12>>2];if(b>>>0>>0){continue}break}a=k+16|0;o=F[k>>2];d=F[k+16>>2];b=F[k+20>>2]-d|0;ha:{if(b>>>0<=1048575){ra(a,262144-(b>>>2|0)|0);break ha}if((b|0)==1048576){break ha}F[k+20>>2]=d- -1048576}d=k+28|0;b=F[d>>2];e=F[k+32>>2]-b>>3;ia:{if(e>>>0>>0){cb(d,i-e|0);b=F[d>>2];break ia}if(e>>>0>i>>>0){F[k+32>>2]=(i<<3)+b}if(!i){break ba}}k=F[a>>2];g=0;d=0;while(1){e=o+(g<<2)|0;f=F[e>>2];n=(g<<3)+b|0;a=d;F[n+4>>2]=a;F[n>>2]=f;e=F[e>>2];d=e+a|0;if(d>>>0>262144){break ba}ja:{if(a>>>0>=d>>>0){break ja}f=0;n=e&7;if(n){while(1){F[k+(a<<2)>>2]=g;a=a+1|0;f=f+1|0;if((n|0)!=(f|0)){continue}break}}if(e-1>>>0<=6){break ja}while(1){e=k+(a<<2)|0;F[e>>2]=g;F[e+28>>2]=g;F[e+24>>2]=g;F[e+20>>2]=g;F[e+16>>2]=g;F[e+12>>2]=g;F[e+8>>2]=g;F[e+4>>2]=g;a=a+8|0;if((d|0)!=(a|0)){continue}break}}g=g+1|0;if((i|0)!=(g|0)){continue}break}m=(d|0)==262144}e=m}ka:{if(!e|(F[h+20>>2]?0:q)){break ka}d=0;m=aa-16|0;aa=m;la:{if(!Va(1,m+8|0,c)){break la}a=F[c+8>>2];b=F[c+16>>2];e=a-b|0;i=F[m+12>>2];f=i;g=F[c+20>>2];k=F[c+12>>2]-(g+(a>>>0>>0)|0)|0;a=F[m+8>>2];if((f|0)==(k|0)&e>>>0>>0|f>>>0>k>>>0){break la}e=g+i|0;f=a+b|0;e=f>>>0>>0?e+1|0:e;F[c+16>>2]=f;F[c+20>>2]=e;if((a|0)<=0){break la}b=b+F[c>>2]|0;F[h+48>>2]=b;c=a-1|0;e=c+b|0;f=G[e|0];ma:{if(f>>>0<=63){F[h+52>>2]=c;a=G[e|0]&63;break ma}na:{switch((f>>>6|0)-1|0){case 0:if(a>>>0<2){break la}a=a-2|0;F[h+52>>2]=a;a=a+b|0;a=G[a+1|0]<<8&16128|G[a|0];break ma;case 1:if(a>>>0<3){break la}a=a-3|0;F[h+52>>2]=a;a=a+b|0;a=G[a+1|0]<<8|G[a+2|0]<<16&4128768|G[a|0];break ma;default:break na}}a=a-4|0;F[h+52>>2]=a;a=a+b|0;a=G[a+2|0]<<16|G[a+3|0]<<24&1056964608|G[a+1|0]<<8|G[a|0]}F[h+56>>2]=a- -1048576;d=a>>>0<267386880}aa=m+16|0;if(!d){break ka}if(!q){l=1;break ka}a=F[h+56>>2];b=F[h+36>>2];c=F[h+48>>2];d=F[h+24>>2];while(1){oa:{if(a>>>0>1048575){break oa}l=F[h+52>>2];while(1){if((l|0)<=0){break oa}l=l-1|0;F[h+52>>2]=l;a=G[c+l|0]|a<<8;F[h+56>>2]=a;if(a>>>0<1048576){continue}break}}l=a&262143;e=F[d+(l<<2)>>2];m=b+(e<<3)|0;a=(L(F[m>>2],a>>>18|0)+l|0)-F[m+4>>2]|0;F[h+56>>2]=a;F[j+(p<<2)>>2]=e;l=1;p=p+1|0;if((q|0)!=(p|0)){continue}break}}a=F[h+36>>2];if(a){F[h+40>>2]=a;ma(a)}a=F[h+24>>2];if(a){F[h+28>>2]=a;ma(a)}a=F[h+8>>2];if(a){F[h+12>>2]=a;ma(a)}aa=h- -64|0;b=l;break h;case 12:h=a;q=d;e=aa+-64|0;aa=e;F[e+56>>2]=0;F[e+48>>2]=0;F[e+52>>2]=0;F[e+40>>2]=0;F[e+44>>2]=0;F[e+32>>2]=0;F[e+36>>2]=0;F[e+24>>2]=0;F[e+28>>2]=0;F[e+16>>2]=0;F[e+20>>2]=0;F[e+8>>2]=0;F[e+12>>2]=0;j=e+8|0;pa:{qa:{if(!H[c+38>>1]){break qa}if(!Wa(1,j+12|0,c)){break qa}a=F[c+8>>2];b=F[c+16>>2];d=a-b|0;i=F[j+12>>2];a=F[c+12>>2]-(F[c+20>>2]+(a>>>0>>0)|0)|0;if(d>>>0>>6>>>0&(a|0)<=0|(a|0)<0){break qa}b=F[j>>2];a=F[j+4>>2]-b>>2;ra:{if(a>>>0>>0){ra(j,i-a|0);i=F[j+12>>2];break ra}if(a>>>0<=i>>>0){break ra}F[j+4>>2]=b+(i<<2)}f=1;if(!i){break pa}g=F[c+16>>2];d=F[c+20>>2];n=F[j>>2];r=F[c+8>>2];k=F[c+12>>2];b=0;while(1){f=0;if((d|0)>=(k|0)&g>>>0>=r>>>0|(d|0)>(k|0)){break pa}s=F[c>>2];o=G[s+g|0];a=d;d=g+1|0;a=d?a:a+1|0;g=d;F[c+16>>2]=d;d=a;F[c+20>>2]=a;a=o>>>2|0;f=0;sa:{ta:{ua:{va:{t=o&3;switch(t|0){case 0:break ta;case 3:break va;default:break ua}}a=a+b|0;f=0;if(a>>>0>=i>>>0){break pa}pa(n+(b<<2)|0,0,(o&252)+4|0);b=a;break sa}while(1){if((d|0)>=(k|0)&g>>>0>=r>>>0|(d|0)>(k|0)){break qa}i=G[g+s|0];g=g+1|0;d=g?d:d+1|0;F[c+16>>2]=g;F[c+20>>2]=d;a=i<<(f<<3|6)|a;f=f+1|0;if((t|0)!=(f|0)){continue}break}}F[n+(b<<2)>>2]=a}b=b+1|0;i=F[j+12>>2];if(b>>>0>>0){continue}break}a=j+16|0;o=F[j>>2];d=F[j+16>>2];b=F[j+20>>2]-d|0;wa:{if(b>>>0<=2097151){ra(a,524288-(b>>>2|0)|0);break wa}if((b|0)==2097152){break wa}F[j+20>>2]=d+2097152}d=j+28|0;b=F[d>>2];f=F[j+32>>2]-b>>3;xa:{if(f>>>0>>0){cb(d,i-f|0);b=F[d>>2];break xa}if(f>>>0>i>>>0){F[j+32>>2]=(i<<3)+b}if(!i){break qa}}j=F[a>>2];g=0;d=0;while(1){f=o+(g<<2)|0;k=F[f>>2];n=(g<<3)+b|0;a=d;F[n+4>>2]=a;F[n>>2]=k;k=F[f>>2];d=k+a|0;if(d>>>0>524288){break qa}ya:{if(a>>>0>=d>>>0){break ya}f=0;n=k&7;if(n){while(1){F[j+(a<<2)>>2]=g;a=a+1|0;f=f+1|0;if((n|0)!=(f|0)){continue}break}}if(k-1>>>0<=6){break ya}while(1){f=j+(a<<2)|0;F[f>>2]=g;F[f+28>>2]=g;F[f+24>>2]=g;F[f+20>>2]=g;F[f+16>>2]=g;F[f+12>>2]=g;F[f+8>>2]=g;F[f+4>>2]=g;a=a+8|0;if((d|0)!=(a|0)){continue}break}}g=g+1|0;if((i|0)!=(g|0)){continue}break}m=(d|0)==524288}f=m}za:{if(!f|(F[e+20>>2]?0:h)){break za}d=0;f=aa-16|0;aa=f;Aa:{if(!Va(1,f+8|0,c)){break Aa}a=F[c+8>>2];b=F[c+16>>2];j=a-b|0;i=F[f+12>>2];g=F[c+20>>2];a=F[c+12>>2]-(g+(a>>>0>>0)|0)|0;m=F[f+8>>2];if((i|0)==(a|0)&j>>>0>>0|a>>>0>>0){break Aa}a=g+i|0;j=b+m|0;a=j>>>0>>0?a+1|0:a;F[c+16>>2]=j;F[c+20>>2]=a;a=m;if((a|0)<=0){break Aa}b=b+F[c>>2]|0;F[e+48>>2]=b;c=a-1|0;m=c+b|0;j=G[m|0];Ba:{if(j>>>0<=63){F[e+52>>2]=c;a=G[m|0]&63;break Ba}Ca:{switch((j>>>6|0)-1|0){case 0:if(a>>>0<2){break Aa}a=a-2|0;F[e+52>>2]=a;a=a+b|0;a=G[a+1|0]<<8&16128|G[a|0];break Ba;case 1:if(a>>>0<3){break Aa}a=a-3|0;F[e+52>>2]=a;a=a+b|0;a=G[a+1|0]<<8|G[a+2|0]<<16&4128768|G[a|0];break Ba;default:break Ca}}a=a-4|0;F[e+52>>2]=a;a=a+b|0;a=G[a+2|0]<<16|G[a+3|0]<<24&1056964608|G[a+1|0]<<8|G[a|0]}F[e+56>>2]=a+2097152;d=a>>>0<534773760}aa=f+16|0;if(!d){break za}if(!h){l=1;break za}a=F[e+56>>2];b=F[e+36>>2];c=F[e+48>>2];d=F[e+24>>2];while(1){Da:{if(a>>>0>2097151){break Da}l=F[e+52>>2];while(1){if((l|0)<=0){break Da}l=l-1|0;F[e+52>>2]=l;a=G[c+l|0]|a<<8;F[e+56>>2]=a;if(a>>>0<2097152){continue}break}}l=a&524287;m=F[d+(l<<2)>>2];f=b+(m<<3)|0;a=(L(F[f>>2],a>>>19|0)+l|0)-F[f+4>>2]|0;F[e+56>>2]=a;F[q+(p<<2)>>2]=m;l=1;p=p+1|0;if((h|0)!=(p|0)){continue}break}}a=F[e+36>>2];if(a){F[e+40>>2]=a;ma(a)}a=F[e+24>>2];if(a){F[e+28>>2]=a;ma(a)}a=F[e+8>>2];if(a){F[e+12>>2]=a;ma(a)}aa=e- -64|0;b=l;break h;case 17:b=Jd(a,c,d);break h;case 0:case 1:case 2:case 3:case 4:case 5:case 6:case 7:e=aa+-64|0;aa=e;F[e+56>>2]=0;F[e+48>>2]=0;F[e+52>>2]=0;F[e+40>>2]=0;F[e+44>>2]=0;F[e+32>>2]=0;F[e+36>>2]=0;F[e+24>>2]=0;F[e+28>>2]=0;F[e+16>>2]=0;F[e+20>>2]=0;F[e+8>>2]=0;F[e+12>>2]=0;Ea:{if(!Ld(e+8|0,c)|(F[e+20>>2]?0:a)){break Ea}if(!Kd(e+8|0,c)){break Ea}if(!a){b=1;break Ea}c=F[e+56>>2];m=F[e+36>>2];f=F[e+48>>2];h=F[e+24>>2];while(1){Fa:{if(c>>>0>16383){break Fa}b=F[e+52>>2];while(1){if((b|0)<=0){break Fa}b=b-1|0;F[e+52>>2]=b;c=G[b+f|0]|c<<8;F[e+56>>2]=c;if(c>>>0<16384){continue}break}}b=c&4095;q=F[h+(b<<2)>>2];j=m+(q<<3)|0;c=(L(F[j>>2],c>>>12|0)+b|0)-F[j+4>>2]|0;F[e+56>>2]=c;F[(l<<2)+d>>2]=q;b=1;l=l+1|0;if((l|0)!=(a|0)){continue}break}}a=F[e+36>>2];if(a){F[e+40>>2]=a;ma(a)}a=F[e+24>>2];if(a){F[e+28>>2]=a;ma(a)}a=F[e+8>>2];if(a){F[e+12>>2]=a;ma(a)}aa=e- -64|0;break h;case 13:case 14:case 15:case 16:break i;default:break h}}b=Jd(a,c,d)}l=b}return l}function fh(a){a=a|0;var b=0,c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,J=0,K=0,M=0,N=0,O=0;x=aa+-64|0;aa=x;F[a+132>>2]=0;if(F[a+148>>2]){c=F[a+144>>2];if(c){while(1){f=F[c>>2];ma(c);c=f;if(c){continue}break}}c=0;F[a+144>>2]=0;f=F[a+140>>2];a:{if(!f){break a}if(f>>>0>=4){d=f&-4;while(1){b=c<<2;F[b+F[a+136>>2]>>2]=0;F[F[a+136>>2]+(b|4)>>2]=0;F[F[a+136>>2]+(b|8)>>2]=0;F[F[a+136>>2]+(b|12)>>2]=0;c=c+4|0;g=g+4|0;if((d|0)!=(g|0)){continue}break}}f=f&3;if(!f){break a}g=0;while(1){F[F[a+136>>2]+(c<<2)>>2]=0;c=c+1|0;g=g+1|0;if((f|0)!=(g|0)){continue}break}}F[a+148>>2]=0}b:{c:{if(!Ga(1,x+60|0,F[F[a+4>>2]+32>>2])){break c}F[a+156>>2]=F[x+60>>2];if(!Ga(1,x+56|0,F[F[a+4>>2]+32>>2])){break c}g=F[x+56>>2];if(g>>>0>1431655765|I[a+156>>2]>L(g,3)>>>0){break c}c=F[F[a+4>>2]+32>>2];b=F[c+8>>2];d=F[c+12>>2];f=F[c+20>>2];l=b;b=F[c+16>>2];if((d|0)<=(f|0)&l>>>0<=b>>>0|(d|0)<(f|0)){break c}d=G[b+F[c>>2]|0];b=b+1|0;f=b?f:f+1|0;F[c+16>>2]=b;F[c+20>>2]=f;if(!Ga(1,x+52|0,c)){break c}p=F[x+52>>2];if(p>>>0>g>>>0|g>>>0>p+((p>>>0)/3|0)>>>0){break c}if(!Ga(1,x+48|0,F[F[a+4>>2]+32>>2])){break c}b=F[x+48>>2];if(b>>>0>p>>>0){break c}F[a+28>>2]=F[a+24>>2];f=Xb(na(88));c=F[a+8>>2];F[a+8>>2]=f;if(c){bb(c);if(!F[a+8>>2]){break c}}F[a+164>>2]=F[a+160>>2];Jb(a+160|0,g);F[a+176>>2]=F[a+172>>2];Jb(a+172|0,g);F[a- -64>>2]=0;F[a+92>>2]=-1;F[a+84>>2]=-1;F[a+88>>2]=-1;F[a+40>>2]=F[a+36>>2];F[a+52>>2]=F[a+48>>2];F[a+76>>2]=F[a+72>>2];z=a+216|0;Bd(z);Ad(z,d);if(!Zc(F[a+8>>2],g,b+F[a+156>>2]|0)){break c}c=F[a+156>>2];D[x+8|0]=1;Ha(a+120|0,c+b|0,x+8|0);if((zd(a,F[F[a+4>>2]+32>>2])|0)==-1){break c}l=a+232|0;f=l;F[f+144>>2]=a;c=F[(ca[F[F[a>>2]+32>>2]](a)|0)+32>>2];g=F[c>>2]+F[c+16>>2]|0;i=F[(ca[F[F[a>>2]+32>>2]](a)|0)+32>>2];c=F[i+8>>2];i=F[i+16>>2];c=c-i|0;N=f,O=H[F[(ca[F[F[a>>2]+32>>2]](a)|0)+32>>2]+38>>1],E[N+38>>1]=O;F[f>>2]=g;F[f+16>>2]=0;F[f+20>>2]=0;F[f+8>>2]=c;F[f+12>>2]=0;N=f,O=ca[F[F[a>>2]+36>>2]](a)|0,F[N+148>>2]=O;F[a+372>>2]=d;F[a+384>>2]=b+F[a+156>>2];B=La(x+8|0);i=B;d=0;n=aa-16|0;aa=n;d:{if(!Da(f+80|0,f)){break d}if(!wd(l)){break d}c=F[l+4>>2];F[i>>2]=F[l>>2];F[i+4>>2]=c;c=F[l+36>>2];F[i+32>>2]=F[l+32>>2];F[i+36>>2]=c;c=F[l+28>>2];F[i+24>>2]=F[l+24>>2];F[i+28>>2]=c;c=F[l+20>>2];F[i+16>>2]=F[l+16>>2];F[i+20>>2]=c;c=F[l+12>>2];F[i+8>>2]=F[l+8>>2];F[i+12>>2]=c;F[l+176>>2]=2;F[l+180>>2]=7;c=F[l+152>>2];if((c|0)<0){break d}F[n+12>>2]=0;d=2;b=F[l+156>>2];f=F[l+160>>2]-b>>2;e:{if(f>>>0>>0){xa(l+156|0,c-f|0,n+12|0);d=F[l+176>>2];g=F[l+180>>2];break e}g=7;if(c>>>0>=f>>>0){break e}F[l+160>>2]=b+(c<<2)}b=l+184|0;f=(g-d|0)+1|0;c=F[l+188>>2];d=F[l+184>>2];g=(c-d|0)/12|0;f:{if(f>>>0>g>>>0){f=f-g|0;e=F[b+8>>2];c=F[b+4>>2];g:{if(f>>>0<=(e-c|0)/12>>>0){if(f){d=c;c=L(f,12)-12|0;c=(c-((c>>>0)%12|0)|0)+12|0;c=pa(d,0,c)+c|0}F[b+4>>2]=c;break g}h:{i:{j:{d=F[b>>2];h=(c-d|0)/12|0;g=h+f|0;if(g>>>0<357913942){e=(e-d|0)/12|0;k=e<<1;e=e>>>0>=178956970?357913941:g>>>0>>0?k:g;if(e){if(e>>>0>=357913942){break j}u=na(L(e,12))}g=L(h,12)+u|0;f=L(f,12)-12|0;h=(f-((f>>>0)%12|0)|0)+12|0;f=pa(g,0,h);h=f+h|0;e=L(e,12)+u|0;if((c|0)==(d|0)){break i}while(1){g=g-12|0;c=c-12|0;F[g>>2]=F[c>>2];F[g+4>>2]=F[c+4>>2];F[g+8>>2]=F[c+8>>2];F[c+8>>2]=0;F[c>>2]=0;F[c+4>>2]=0;if((c|0)!=(d|0)){continue}break}F[b+8>>2]=e;f=F[b+4>>2];F[b+4>>2]=h;c=F[b>>2];F[b>>2]=g;if((c|0)==(f|0)){break h}while(1){g=f-12|0;d=F[g>>2];if(d){F[f-8>>2]=d;ma(d)}f=g;if((f|0)!=(c|0)){continue}break}break h}break b}sa();v()}F[b+8>>2]=e;F[b+4>>2]=h;F[b>>2]=f}if(c){ma(c)}}g=F[l+188>>2];break f}if(f>>>0>=g>>>0){g=c;break f}g=d+L(f,12)|0;if((g|0)!=(c|0)){while(1){f=c-12|0;d=F[f>>2];if(d){F[c-8>>2]=d;ma(d)}c=f;if((g|0)!=(c|0)){continue}break}}F[l+188>>2]=g}e=l+196|0;d=F[l+184>>2];c=(g-d|0)/12|0;u=F[l+196>>2];f=F[l+200>>2]-u>>2;k:{if(c>>>0>f>>>0){ra(e,c-f|0);d=F[l+184>>2];g=F[l+188>>2];break k}if(c>>>0>=f>>>0){break k}F[l+200>>2]=u+(c<<2)}if((d|0)==(g|0)){d=1;break d}c=0;while(1){l:{if(!Ga(1,n+8|0,i)){break l}f=F[l+148>>2];d=(F[f+4>>2]-F[f>>2]>>2>>>0)/3|0;f=F[n+8>>2];if(d>>>0>>0){break l}if(f){h=L(c,12);d=h+F[b>>2]|0;g=F[d>>2];u=F[d+4>>2]-g>>2;m:{if(u>>>0>>0){ra(d,f-u|0);g=F[h+F[b>>2]>>2];break m}if(f>>>0>=u>>>0){break m}F[d+4>>2]=(f<<2)+g}kc(f,1,i,g);F[F[e>>2]+(c<<2)>>2]=f}d=1;c=c+1|0;if(c>>>0<(F[l+188>>2]-F[l+184>>2]|0)/12>>>0){continue}break d}break}d=0}aa=n+16|0;n:{if(!d){break n}d=0;c=0;g=0;f=0;n=0;l=0;u=0;k=aa-96|0;aa=k;F[k+72>>2]=0;F[k+64>>2]=0;F[k+68>>2]=0;F[k+48>>2]=0;F[k+52>>2]=0;F[k+40>>2]=0;F[k+44>>2]=0;F[k+56>>2]=1065353216;F[k+32>>2]=0;F[k+24>>2]=0;F[k+28>>2]=0;i=a;A=F[a+124>>2];o:{p:{q:{r:{if((p|0)<=0){break r}C=i+232|0;K=F[i+216>>2]!=F[i+220>>2];q=1;s:{while(1){a=n;n=a+1|0;t:{u:{v:{e=F[i+404>>2];if((e|0)==-1){F[i+400>>2]=7;break v}b=-1;h=F[i+428>>2]+(e<<2)|0;j=F[h>>2];e=j-1|0;F[h>>2]=e;if((j|0)<=0){break q}e=F[F[F[i+416>>2]+L(F[i+404>>2],12)>>2]+(e<<2)>>2];if(e>>>0>4){break q}h=F[(e<<2)+8896>>2];F[i+400>>2]=h;if(!e){if((d|0)==(f|0)){break q}e=-1;j=F[i+8>>2];o=F[j+24>>2];t=d-4|0;h=F[t>>2];c=-1;w:{if((h|0)==-1){break w}q=h+1|0;q=(q>>>0)%3|0?q:h-2|0;c=-1;if((q|0)==-1){break w}c=F[F[j>>2]+(q<<2)>>2]}b=F[o+(c<<2)>>2];if((b|0)!=-1){e=b+1|0;e=(e>>>0)%3|0?e:b-2|0}if((e|0)==(h|0)){b=-1;break q}if((h|0)!=-1){b=-1;if(F[F[j+12>>2]+(h<<2)>>2]!=-1){break q}}q=F[j+12>>2];if((e|0)!=-1){b=-1;if(F[q+(e<<2)>>2]!=-1){break q}}m=L(a,3);a=m+1|0;F[q+(h<<2)>>2]=a;y=a<<2;F[y+q>>2]=h;r=m+2|0;F[q+(e<<2)>>2]=r;w=r<<2;F[w+q>>2]=e;q=-1;a=-1;x:{if((h|0)==-1){break x}y:{if((h>>>0)%3|0){b=h-1|0;break y}b=h+2|0;a=-1;if((b|0)==-1){break x}}a=F[F[j>>2]+(b<<2)>>2]}z:{if((e|0)==-1){break z}b=e+1|0;b=(b>>>0)%3|0?b:e-2|0;if((b|0)==-1){break z}q=F[F[j>>2]+(b<<2)>>2]}b=-1;if((a|0)==(c|0)|(c|0)==(q|0)){break q}b=F[j>>2];F[b+(m<<2)>>2]=c;F[b+y>>2]=q;F[b+w>>2]=a;if((a|0)!=-1){F[o+(a<<2)>>2]=r}a=F[i+120>>2]+(c>>>3&536870908)|0;b=F[a>>2];N=a,O=ki(c)&b,F[N>>2]=O;F[t>>2]=m;c=f;ic(C,m);break t}A:{switch(h-1|0){case 2:case 4:if((d|0)==(f|0)){break q}o=d-4|0;c=F[o>>2];h=F[i+8>>2];j=F[h+12>>2];if((c|0)!=-1&F[j+(c<<2)>>2]!=-1){break q}d=L(a,3);e=(e|0)==3;m=d+(e?2:1)|0;t=m<<2;F[t+j>>2]=c;F[j+(c<<2)>>2]=m;Oa(h+24|0,8324);r=F[i+8>>2];j=F[r+24>>2];if(F[r+28>>2]-j>>2>(A|0)){break q}b=F[r>>2];w=b+t|0;r=F[h+28>>2];h=F[h+24>>2];t=(r-h>>2)-1|0;F[w>>2]=t;if((h|0)!=(r|0)){F[j+(t<<2)>>2]=m}h=e?d:d+2|0;w=b+(d+e<<2)|0;B:{if((c|0)==-1){F[b+(h<<2)>>2]=-1;e=-1;break B}C:{D:{E:{if((c>>>0)%3|0){e=c-1|0;break E}e=c+2|0;if((e|0)==-1){break D}}e=F[b+(e<<2)>>2];F[b+(h<<2)>>2]=e;if((e|0)==-1){break C}F[j+(e<<2)>>2]=h;break C}F[b+(h<<2)>>2]=-1}h=c+1|0;c=(h>>>0)%3|0?h:c-2|0;e=-1;if((c|0)==-1){break B}e=F[b+(c<<2)>>2]}F[w>>2]=e;F[o>>2]=d;c=f;break u;case 6:break v;case 0:break A;default:break q}}if((c|0)==(d|0)){break q}g=d-4|0;m=F[g>>2];F[k+68>>2]=g;j=F[k+44>>2];F:{if(!j){break F}e=F[k+40>>2];r=ji(j)>>>0>1;b=a&j+2147483647;G:{if(!r){break G}b=a;if(a>>>0>>0){break G}b=(a>>>0)%(j>>>0)|0}h=b;b=F[e+(h<<2)>>2];if(!b){break F}b=F[b>>2];if(!b){break F}H:{if(!r){e=j-1|0;while(1){j=F[b+4>>2];I:{if((j|0)!=(a|0)){if((h|0)==(e&j)){break I}break F}if((a|0)==F[b+8>>2]){break H}}b=F[b>>2];if(b){continue}break}break F}while(1){e=F[b+4>>2];J:{if((e|0)!=(a|0)){if(e>>>0>=j>>>0){e=(e>>>0)%(j>>>0)|0}if((e|0)==(h|0)){break J}break F}if((a|0)==F[b+8>>2]){break H}}b=F[b>>2];if(b){continue}break}break F}if((g|0)!=(s|0)){F[g>>2]=F[b+12>>2];F[k+68>>2]=d;g=d;break F}d=s-c|0;e=d>>2;f=e+1|0;if(f>>>0>=1073741824){break b}g=d>>1;g=d>>>0>=2147483644?1073741823:f>>>0>>0?g:f;if(g){if(g>>>0>=1073741824){break p}f=na(g<<2)}else{f=0}e=f+(e<<2)|0;F[e>>2]=F[b+12>>2];s=(g<<2)+f|0;g=e+4|0;if((d|0)>0){oa(f,c,d)}F[k+72>>2]=s;F[k+68>>2]=g;F[k+64>>2]=f;if(c){ma(c)}c=f}if((c|0)==(g|0)){break s}y=g-4|0;b=F[y>>2];if((b|0)==(m|0)){break s}e=(b|0)==-1;h=F[i+8>>2];if(!e&F[F[h+12>>2]+(b<<2)>>2]!=-1){break s}r=F[h+12>>2];if((m|0)!=-1&F[r+(m<<2)>>2]!=-1){break s}o=L(a,3);t=o+2|0;F[r+(b<<2)>>2]=t;d=t<<2;F[d+r>>2]=b;a=o+1|0;F[r+(m<<2)>>2]=a;w=a<<2;F[w+r>>2]=m;K:{L:{M:{if(!e){if((b>>>0)%3|0){j=b-1|0;break M}j=b+2|0;if((j|0)!=-1){break M}a=F[h>>2];e=-1;break L}e=-1;a=F[h>>2];F[a+(o<<2)>>2]=-1;j=-1;break K}a=F[h>>2];e=F[a+(j<<2)>>2]}F[(o<<2)+a>>2]=e;j=b+1|0;b=(j>>>0)%3|0?j:b-2|0;j=-1;if((b|0)==-1){break K}j=F[(b<<2)+a>>2]}F[a+w>>2]=j;N:{if((m|0)==-1){F[a+d>>2]=-1;j=-1;d=-1;break N}O:{P:{Q:{if((m>>>0)%3|0){b=m-1|0;break Q}b=m+2|0;if((b|0)==-1){break P}}b=F[(b<<2)+a>>2];F[a+d>>2]=b;if((b|0)==-1){break O}F[F[h+24>>2]+(b<<2)>>2]=t;break O}F[a+d>>2]=-1}j=-1;b=m+1|0;b=(b>>>0)%3|0?b:m-2|0;d=-1;if((b|0)==-1){break N}j=F[(b<<2)+a>>2];d=b}b=F[i+388>>2];t=e<<2;m=b+t|0;w=b;b=j<<2;F[m>>2]=F[m>>2]+F[w+b>>2];w=b;b=F[h+24>>2];m=w+b|0;if((e|0)!=-1){F[b+t>>2]=F[m>>2]}b=d;while(1){if((b|0)!=-1){F[(b<<2)+a>>2]=e;t=b+1|0;b=(t>>>0)%3|0?t:b-2|0;h=-1;R:{if((b|0)==-1){break R}b=F[r+(b<<2)>>2];h=-1;if((b|0)==-1){break R}h=b+1|0;h=(h>>>0)%3|0?h:b-2|0}b=h;if((d|0)!=(b|0)){continue}break s}break}F[m>>2]=-1;S:{T:{if(K){break T}if((u|0)!=(J|0)){F[u>>2]=j;u=u+4|0;F[k+28>>2]=u;break T}b=J-l|0;e=b>>2;a=e+1|0;if(a>>>0>=1073741824){break S}d=b>>1;d=b>>>0>=2147483644?1073741823:a>>>0>>0?d:a;if(d){if(d>>>0>=1073741824){break p}a=na(d<<2)}else{a=0}e=a+(e<<2)|0;F[e>>2]=j;J=a+(d<<2)|0;u=e+4|0;if((b|0)>0){oa(a,l,b)}F[k+32>>2]=J;F[k+28>>2]=u;F[k+24>>2]=a;if(l){ma(l)}l=a}F[y>>2]=o;d=g;ic(C,o);break t}break b}h=F[i+8>>2];Oa(h+24|0,8324);b=-1;e=F[i+8>>2];g=L(a,3);j=F[h+28>>2];m=F[h+24>>2];r=j-m|0;h=r>>2;o=h-1|0;F[F[e>>2]+(g<<2)>>2]=o;Oa(e+24|0,8324);t=g+1|0;F[F[e>>2]+(t<<2)>>2]=(F[e+28>>2]-F[e+24>>2]>>2)-1;e=F[i+8>>2];Oa(e+24|0,8324);y=g+2|0;F[F[e>>2]+(y<<2)>>2]=(F[e+28>>2]-F[e+24>>2]>>2)-1;w=F[i+8>>2];e=F[w+24>>2];if(F[w+28>>2]-e>>2>(A|0)){break q}U:{V:{if((j|0)!=(m|0)){F[e+(o<<2)>>2]=g;b=0;if((r|0)==-4){break V}}F[e+(h<<2)>>2]=t;b=h+1|0;if((b|0)==-1){break U}}F[e+(b<<2)>>2]=y}if((d|0)!=(s|0)){F[d>>2]=g;g=d+4|0;F[k+68>>2]=g;break u}b=s-f|0;e=b>>2;c=e+1|0;if(c>>>0>=1073741824){break b}d=b>>1;d=b>>>0>=2147483644?1073741823:c>>>0>>0?d:c;if(d){if(d>>>0>=1073741824){break p}c=na(d<<2)}else{c=0}e=c+(e<<2)|0;F[e>>2]=g;s=(d<<2)+c|0;g=e+4|0;if((b|0)>0){oa(c,f,b)}F[k+72>>2]=s;F[k+68>>2]=g;F[k+64>>2]=c;if(f){ma(f)}f=c}ic(C,F[g-4>>2]);b=F[i+40>>2];W:{if((b|0)==F[i+36>>2]){break W}e=b-12|0;h=F[e+4>>2];d=p+(a^-1)|0;if(h>>>0>d>>>0){break s}if((d|0)!=(h|0)){break W}h=G[b-4|0];b=F[e>>2];F[i+40>>2]=e;if((b|0)<0){break s}e=g-4|0;a=F[e>>2];F[k+20>>2]=p+(b^-1);b=k+20|0;F[k+88>>2]=b;Gb(k,k+40|0,b,k+88|0);o=F[k>>2];X:{if(h&1){b=-1;if((a|0)==-1){break X}b=a+1|0;b=(b>>>0)%3|0?b:a-2|0;break X}b=-1;if((a|0)==-1){break X}b=a-1|0;if((a>>>0)%3|0){break X}b=a+2|0}F[o+12>>2]=b;b=F[i+40>>2];if((b|0)==F[i+36>>2]){break W}while(1){a=b-12|0;h=F[a+4>>2];if(h>>>0>d>>>0){break s}if((d|0)!=(h|0)){break W}h=G[b-4|0];b=F[a>>2];F[i+40>>2]=a;if((b|0)<0){break s}a=F[e>>2];F[k+20>>2]=p+(b^-1);b=k+20|0;F[k+88>>2]=b;Gb(k,k+40|0,b,k+88|0);o=F[k>>2];Y:{if(h&1){b=-1;if((a|0)==-1){break Y}b=a+1|0;b=(b>>>0)%3|0?b:a-2|0;break Y}b=-1;if((a|0)==-1){break Y}b=a-1|0;if((a>>>0)%3|0){break Y}b=a+2|0}F[o+12>>2]=b;b=F[i+40>>2];if((b|0)!=F[i+36>>2]){continue}break}}d=g}q=(n|0)<(p|0);if((n|0)!=(p|0)){continue}break}n=p;break r}b=-1;if(q&1){break q}}b=-1;d=F[i+8>>2];if(F[d+28>>2]-F[d+24>>2]>>2>(A|0)){break q}if((f|0)!=(g|0)){r=i+72|0;e=i+60|0;A=i+312|0;while(1){g=g-4|0;h=F[g>>2];F[k+68>>2]=g;Z:{if(za(A)){s=F[i+8>>2];m=F[s>>2];if(((F[s+4>>2]-m>>2>>>0)/3|0)<=(n|0)){break q}a=-1;o=F[s+24>>2];c=-1;_:{if((h|0)==-1){break _}p=h+1|0;p=(p>>>0)%3|0?p:h-2|0;c=-1;if((p|0)==-1){break _}c=F[m+(p<<2)>>2]}p=c;d=F[o+(p<<2)>>2];$:{if((d|0)==-1){q=1;c=-1;break $}q=1;c=-1;j=d+1|0;d=(j>>>0)%3|0?j:d-2|0;if((d|0)==-1){break $}q=0;a=d+1|0;a=(a>>>0)%3|0?a:d-2|0;if((a|0)!=-1){c=F[m+(a<<2)>>2]}a=d}j=-1;d=F[o+(c<<2)>>2];if((d|0)!=-1){j=d+1|0;j=(j>>>0)%3|0?j:d-2|0}if((a|0)==(h|0)|(h|0)==(j|0)|(a|0)==(j|0)){break q}if(!((h|0)==-1|F[F[s+12>>2]+(h<<2)>>2]==-1)|!(F[F[s+12>>2]+(a<<2)>>2]==-1|q)){break q}q=-1;d=F[s+12>>2];s=-1;aa:{if((j|0)==-1){break aa}if(F[d+(j<<2)>>2]!=-1){break q}o=j+1|0;o=(o>>>0)%3|0?o:j-2|0;s=-1;if((o|0)==-1){break aa}s=F[m+(o<<2)>>2]}o=L(n,3);F[k>>2]=o;F[d+(o<<2)>>2]=h;F[d+(h<<2)>>2]=o;h=F[k>>2]+1|0;F[d+(h<<2)>>2]=a;F[d+(a<<2)>>2]=h;a=F[k>>2]+2|0;F[d+(a<<2)>>2]=j;F[d+(j<<2)>>2]=a;a=F[k>>2];F[m+(a<<2)>>2]=c;d=a+1|0;h=m+(d<<2)|0;F[h>>2]=s;j=a+2|0;m=m+(j<<2)|0;F[m>>2]=p;a=d?c:-1;c=F[i+120>>2];p=(a>>>3&536870908)+c|0;s=F[p>>2];N=p,O=ki(a)&s,F[N>>2]=O;q=(d|0)!=-1?F[h>>2]:q;a=c+(q>>>3&536870908)|0;d=F[a>>2];N=a,O=ki(q)&d,F[N>>2]=O;a=-1;a=(j|0)!=-1?F[m>>2]:a;c=c+(a>>>3&536870908)|0;d=F[c>>2];N=c,O=ki(a)&d,F[N>>2]=O;D[k+88|0]=1;vd(e,k+88|0);Oa(r,k);n=n+1|0;break Z}j=F[i+64>>2];a=F[i+68>>2];if((j|0)==a<<5){if((j+1|0)<0){break b}if(j>>>0<=1073741822){a=a<<6;c=(j&-32)+32|0;a=a>>>0>c>>>0?a:c}else{a=2147483647}db(e,a);j=F[i+64>>2]}F[i+64>>2]=j+1;a=F[i+60>>2]+(j>>>3&536870908)|0;c=F[a>>2];N=a,O=ki(j)&c,F[N>>2]=O;a=F[i+76>>2];if((a|0)!=F[i+80>>2]){F[a>>2]=h;F[i+76>>2]=a+4;break Z}d=F[r>>2];c=a-d|0;j=c>>2;a=j+1|0;if(a>>>0>=1073741824){break b}p=c>>1;p=c>>>0>=2147483644?1073741823:a>>>0

>>0?p:a;if(p){if(p>>>0>=1073741824){break p}a=na(p<<2)}else{a=0}j=a+(j<<2)|0;F[j>>2]=h;if((c|0)>0){oa(a,d,c)}F[i+80>>2]=a+(p<<2);F[i+76>>2]=j+4;F[i+72>>2]=a;if(!d){break Z}ma(d)}if((f|0)!=(g|0)){continue}break}d=F[i+8>>2]}if(((F[d+4>>2]-F[d>>2]>>2>>>0)/3|0)!=(n|0)){break q}b=F[d+28>>2]-F[d+24>>2]>>2;if((l|0)==(u|0)){l=u;break q}a=l;while(1){c=F[a>>2];e=F[d+24>>2];g=b-1|0;n=e+(g<<2)|0;if(F[n>>2]==-1){while(1){g=b-2|0;b=b-1|0;n=e+(g<<2)|0;if(F[n>>2]==-1){continue}break}}if(c>>>0<=g>>>0){F[k>>2]=d;n=F[n>>2];D[k+12|0]=1;F[k+8>>2]=n;F[k+4>>2]=n;if((n|0)!=-1){while(1){d=F[F[i+8>>2]>>2]+(n<<2)|0;if(F[d>>2]!=(g|0)){b=-1;break q}F[d>>2]=c;lc(k);n=F[k+8>>2];if((n|0)!=-1){continue}break}d=F[i+8>>2]}e=F[d+24>>2];n=e+(g<<2)|0;if((c|0)!=-1){F[e+(c<<2)>>2]=F[n>>2]}F[n>>2]=-1;n=1<>2];c=e+(c>>>3&536870908)|0;e=e+(g>>>3&536870908)|0;g=1<>2]&g){n=n|F[c>>2]}else{n=F[c>>2]&(n^-1)}F[c>>2]=n;F[e>>2]=F[e>>2]&(g^-1);b=b-1|0}a=a+4|0;if((u|0)!=(a|0)){continue}break}}if(l){ma(l)}a=F[k+48>>2];if(a){while(1){c=F[a>>2];ma(a);a=c;if(a){continue}break}}a=F[k+40>>2];F[k+40>>2]=0;if(a){ma(a)}if(f){F[k+68>>2]=f;ma(f)}aa=k+96|0;break o}sa();v()}if((b|0)==-1){break n}a=F[B+16>>2];c=a+F[B>>2]|0;f=F[B+8>>2];f=f-a|0;a=F[F[i+4>>2]+32>>2];E[a+38>>1]=H[a+38>>1];F[a>>2]=c;F[a+16>>2]=0;F[a+20>>2]=0;F[a+8>>2]=f;F[a+12>>2]=0;ba:{if(F[i+216>>2]==F[i+220>>2]){break ba}a=F[i+8>>2];if(F[a+4>>2]==F[a>>2]){break ba}c=0;while(1){if(yd(i,c)){c=c+3|0;a=F[i+8>>2];if(c>>>0>2]-F[a>>2]>>2>>>0){continue}break ba}break}break n}if(G[i+308|0]){D[i+308|0]=0;f=F[i+292>>2];a=0;c=F[i+304>>2]+7|0;a=c>>>0<7?1:a;d=a<<29|c>>>3;c=d+F[i+288>>2]|0;a=(a>>>3|0)+f|0;F[i+288>>2]=c;F[i+292>>2]=c>>>0>>0?a+1|0:a}c=F[i+216>>2];if((c|0)!=F[i+220>>2]){a=0;while(1){g=L(a,144);Yc((g+c|0)+4|0,F[i+8>>2]);f=F[z>>2];d=f+g|0;c=F[d+132>>2];d=F[d+136>>2];if((c|0)!=(d|0)){while(1){Wc((g+F[z>>2]|0)+4|0,F[c>>2]);c=c+4|0;if((d|0)!=(c|0)){continue}break}f=F[z>>2]}if(!Xc((f+g|0)+4|0)){break n}a=a+1|0;c=F[i+216>>2];if(a>>>0<(F[i+220>>2]-c|0)/144>>>0){continue}break}}a=F[i+8>>2];Ib(i+184|0,F[a+28>>2]-F[a+24>>2]>>2);g=F[i+216>>2];if((g|0)!=F[i+220>>2]){c=0;while(1){a=L(c,144)+g|0;f=F[a+60>>2]-F[a+56>>2]>>2;d=a+104|0;a=F[i+8>>2];a=F[a+28>>2]-F[a+24>>2]>>2;Ib(d,(a|0)<(f|0)?f:a);c=c+1|0;g=F[i+216>>2];if(c>>>0<(F[i+220>>2]-g|0)/144>>>0){continue}break}}M=xd(i,b)}}aa=x- -64|0;return M|0}qa();v()}function ih(a){a=a|0;var b=0,c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,J=0,K=0,M=0,N=0;u=aa+-64|0;aa=u;F[a+132>>2]=0;if(F[a+148>>2]){d=F[a+144>>2];if(d){while(1){c=F[d>>2];ma(d);d=c;if(d){continue}break}}d=0;F[a+144>>2]=0;c=F[a+140>>2];a:{if(!c){break a}if(c>>>0>=4){n=c&-4;while(1){b=d<<2;F[b+F[a+136>>2]>>2]=0;F[F[a+136>>2]+(b|4)>>2]=0;F[F[a+136>>2]+(b|8)>>2]=0;F[F[a+136>>2]+(b|12)>>2]=0;d=d+4|0;e=e+4|0;if((n|0)!=(e|0)){continue}break}}c=c&3;if(!c){break a}e=0;while(1){F[F[a+136>>2]+(d<<2)>>2]=0;d=d+1|0;e=e+1|0;if((c|0)!=(e|0)){continue}break}}F[a+148>>2]=0}b:{if(!Ga(1,u+60|0,F[F[a+4>>2]+32>>2])){break b}F[a+156>>2]=F[u+60>>2];if(!Ga(1,u+56|0,F[F[a+4>>2]+32>>2])){break b}c=F[u+56>>2];if(c>>>0>1431655765|I[a+156>>2]>L(c,3)>>>0){break b}d=F[F[a+4>>2]+32>>2];b=F[d+8>>2];n=F[d+12>>2];e=F[d+20>>2];i=b;b=F[d+16>>2];if((n|0)<=(e|0)&i>>>0<=b>>>0|(e|0)>(n|0)){break b}n=G[b+F[d>>2]|0];b=b+1|0;e=b?e:e+1|0;F[d+16>>2]=b;F[d+20>>2]=e;if(!Ga(1,u+52|0,d)){break b}t=F[u+52>>2];if(t>>>0>c>>>0|c>>>0>t+((t>>>0)/3|0)>>>0){break b}if(!Ga(1,u+48|0,F[F[a+4>>2]+32>>2])){break b}d=F[u+48>>2];if(d>>>0>t>>>0){break b}F[a+28>>2]=F[a+24>>2];b=Xb(na(88));e=F[a+8>>2];F[a+8>>2]=b;if(e){bb(e);if(!F[a+8>>2]){break b}}F[a+164>>2]=F[a+160>>2];Jb(a+160|0,c);F[a+176>>2]=F[a+172>>2];Jb(a+172|0,c);F[a- -64>>2]=0;F[a+92>>2]=-1;F[a+84>>2]=-1;F[a+88>>2]=-1;F[a+40>>2]=F[a+36>>2];F[a+52>>2]=F[a+48>>2];F[a+76>>2]=F[a+72>>2];A=a+216|0;Bd(A);Ad(A,n);if(!Zc(F[a+8>>2],c,d+F[a+156>>2]|0)){break b}e=F[a+156>>2];D[u+8|0]=1;Ha(a+120|0,d+e|0,u+8|0);if((zd(a,F[F[a+4>>2]+32>>2])|0)==-1){break b}d=a+232|0;F[d+144>>2]=a;e=F[(ca[F[F[a>>2]+32>>2]](a)|0)+32>>2];c=F[e>>2]+F[e+16>>2]|0;b=F[(ca[F[F[a>>2]+32>>2]](a)|0)+32>>2];e=F[b+8>>2];b=F[b+16>>2];e=e-b|0;M=d,N=H[F[(ca[F[F[a>>2]+32>>2]](a)|0)+32>>2]+38>>1],E[M+38>>1]=N;F[d>>2]=c;F[d+16>>2]=0;F[d+20>>2]=0;F[d+8>>2]=e;F[d+12>>2]=0;F[a+372>>2]=n;C=La(u+8|0);b=C;n=0;g=aa-16|0;aa=g;e=F[d+4>>2];F[d+40>>2]=F[d>>2];F[d+44>>2]=e;e=F[d+36>>2];F[d+72>>2]=F[d+32>>2];F[d+76>>2]=e;c=F[d+28>>2];e=d- -64|0;F[e>>2]=F[d+24>>2];F[e+4>>2]=c;e=F[d+20>>2];F[d+56>>2]=F[d+16>>2];F[d+60>>2]=e;e=F[d+12>>2];F[d+48>>2]=F[d+8>>2];F[d+52>>2]=e;c:{d:{if(fc(d+40|0,1,g+8|0)){e=F[d+44>>2];F[d>>2]=F[d+40>>2];F[d+4>>2]=e;e=F[d+76>>2];F[d+32>>2]=F[d+72>>2];F[d+36>>2]=e;e=F[d+68>>2];F[d+24>>2]=F[d+64>>2];F[d+28>>2]=e;c=F[d+60>>2];i=c;e=F[d+56>>2];F[d+16>>2]=e;F[d+20>>2]=c;m=F[d+52>>2];c=F[d+48>>2];F[d+8>>2]=c;F[d+12>>2]=m;f=c-e|0;h=F[g+12>>2];m=m-((c>>>0>>0)+i|0)|0;c=F[g+8>>2];if((h|0)==(m|0)&f>>>0>=c>>>0|h>>>0>>0){break d}}break c}m=c+e|0;e=i+h|0;F[d+16>>2]=m;F[d+20>>2]=c>>>0>m>>>0?e+1|0:e;if(!Da(d+80|0,d)){break c}if(!wd(d)){break c}e=F[d+4>>2];F[b>>2]=F[d>>2];F[b+4>>2]=e;e=F[d+36>>2];F[b+32>>2]=F[d+32>>2];F[b+36>>2]=e;e=F[d+28>>2];F[b+24>>2]=F[d+24>>2];F[b+28>>2]=e;e=F[d+20>>2];F[b+16>>2]=F[d+16>>2];F[b+20>>2]=e;e=F[d+12>>2];F[b+8>>2]=F[d+8>>2];F[b+12>>2]=e;n=1}aa=g+16|0;e:{if(!n){break e}c=0;d=0;e=0;n=0;j=aa-96|0;aa=j;F[j+72>>2]=0;F[j+64>>2]=0;F[j+68>>2]=0;F[j+48>>2]=0;F[j+52>>2]=0;F[j+40>>2]=0;F[j+44>>2]=0;F[j+56>>2]=1065353216;F[j+32>>2]=0;F[j+24>>2]=0;F[j+28>>2]=0;g=a;s=F[a+124>>2];f:{g:{h:{i:{j:{k:{l:{if((t|0)<=0){break l}J=F[g+216>>2]!=F[g+220>>2];x=1;while(1){i=p;p=i+1|0;m:{n:{o:{p:{q:{r:{s:{t:{u:{v:{w:{x:{y:{z:{A:{if(!G[g+308|0]){break A}f=F[g+296>>2];b=F[g+304>>2];a=f+(b>>>3|0)|0;h=F[g+300>>2];if(a>>>0>=h>>>0){break A}m=G[a|0];a=b+1|0;F[g+304>>2]=a;l=m>>>(b&7)&1;if(!l){break A}k=0;m=a>>>3|0;o=f+m|0;B:{if(o>>>0>=h>>>0){b=a;a=0;break B}o=G[o|0];b=b+2|0;F[g+304>>2]=b;m=b>>>3|0;a=o>>>(a&7)&1}m=f+m|0;if(m>>>0>>0){m=G[m|0];F[g+304>>2]=b+1;k=m>>>(b&7)<<1&2}m=-1;f=l|(a|k)<<1;switch(f-1|0){case 6:break x;case 0:break y;case 2:case 4:break z;default:break k}}if((d|0)==(e|0)){m=-1;break k}c=-1;f=F[g+8>>2];o=F[f+24>>2];x=d-4|0;b=F[x>>2];a=-1;C:{if((b|0)==-1){break C}h=b+1|0;h=(h>>>0)%3|0?h:b-2|0;a=-1;if((h|0)==-1){break C}a=F[F[f>>2]+(h<<2)>>2]}m=F[o+(a<<2)>>2];if((m|0)!=-1){c=m+1|0;c=(c>>>0)%3|0?c:m-2|0}if((b|0)==(c|0)){m=-1;break k}if((b|0)!=-1){m=-1;if(F[F[f+12>>2]+(b<<2)>>2]!=-1){break k}}h=F[f+12>>2];if((c|0)!=-1){m=-1;if(F[h+(c<<2)>>2]!=-1){break k}}k=L(i,3);i=k+1|0;F[h+(b<<2)>>2]=i;r=i<<2;F[r+h>>2]=b;l=k+2|0;F[h+(c<<2)>>2]=l;i=h;h=l<<2;F[i+h>>2]=c;i=-1;m=-1;D:{if((b|0)==-1){break D}E:{if((b>>>0)%3|0){b=b-1|0;break E}b=b+2|0;m=-1;if((b|0)==-1){break D}}m=F[F[f>>2]+(b<<2)>>2]}b=m;F:{if((c|0)==-1){break F}m=c+1|0;c=(m>>>0)%3|0?m:c-2|0;if((c|0)==-1){break F}i=F[F[f>>2]+(c<<2)>>2]}m=-1;if((a|0)==(b|0)|(a|0)==(i|0)){break k}c=F[f>>2];F[c+(k<<2)>>2]=a;F[c+r>>2]=i;F[c+h>>2]=b;if((b|0)!=-1){F[o+(b<<2)>>2]=l}c=F[g+120>>2]+(a>>>3&536870908)|0;b=F[c>>2];M=c,N=ki(a)&b,F[M>>2]=N;F[x>>2]=k;c=e;break m}if((d|0)==(e|0)){break k}o=d-4|0;c=F[o>>2];a=F[g+8>>2];b=F[a+12>>2];if(!((c|0)==-1|F[b+(c<<2)>>2]==-1)){break k}l=(f|0)==5;f=L(i,3);h=(l?2:1)+f|0;r=h<<2;F[r+b>>2]=c;F[b+(c<<2)>>2]=h;Oa(a+24|0,8324);b=F[g+8>>2];k=F[b+24>>2];if((s|0)>2]-k>>2){break k}b=F[b>>2];z=b+r|0;r=F[a+28>>2];a=F[a+24>>2];y=(r-a>>2)-1|0;F[z>>2]=y;if((a|0)!=(r|0)){F[k+(y<<2)>>2]=h}h=l?f:f+2|0;l=b+(f+l<<2)|0;G:{if((c|0)==-1){F[b+(h<<2)>>2]=-1;a=-1;break G}H:{I:{J:{if((c>>>0)%3|0){a=c-1|0;break J}a=c+2|0;if((a|0)==-1){break I}}a=F[b+(a<<2)>>2];F[b+(h<<2)>>2]=a;if((a|0)==-1){break H}F[k+(a<<2)>>2]=h;break H}F[b+(h<<2)>>2]=-1}h=c+1|0;c=(h>>>0)%3|0?h:c-2|0;a=-1;if((c|0)==-1){break G}a=F[b+(c<<2)>>2]}F[l>>2]=a;F[o>>2]=f;break w}if((d|0)==(c|0)){break k}a=d-4|0;k=F[a>>2];F[j+68>>2]=a;l=F[j+44>>2];K:{if(!l){d=a;break K}f=F[j+40>>2];o=ji(l)>>>0>1;b=i&l+2147483647;L:{if(!o){break L}b=i;if(b>>>0>>0){break L}b=(i>>>0)%(l>>>0)|0}h=b;b=F[f+(h<<2)>>2];if(!b){d=a;break K}b=F[b>>2];if(!b){d=a;break K}M:{if(!o){f=l-1|0;while(1){l=F[b+4>>2];N:{if((l|0)!=(i|0)){if((h|0)==(f&l)){break N}d=a;break K}if((i|0)==F[b+8>>2]){break M}}b=F[b>>2];if(b){continue}break}d=a;break K}while(1){f=F[b+4>>2];O:{if((f|0)!=(i|0)){if(f>>>0>=l>>>0){f=(f>>>0)%(l>>>0)|0}if((f|0)==(h|0)){break O}d=a;break K}if((i|0)==F[b+8>>2]){break M}}b=F[b>>2];if(b){continue}break}d=a;break K}if((a|0)!=(q|0)){F[a>>2]=F[b+12>>2];F[j+68>>2]=d;break K}a=q-c|0;f=a>>2;d=f+1|0;if(d>>>0>=1073741824){break u}e=a>>1;d=a>>>0>=2147483644?1073741823:d>>>0>>0?e:d;if(d){if(d>>>0>=1073741824){break j}e=na(d<<2)}else{e=0}f=e+(f<<2)|0;F[f>>2]=F[b+12>>2];q=(d<<2)+e|0;d=f+4|0;if((a|0)>0){oa(e,c,a)}F[j+72>>2]=q;F[j+68>>2]=d;F[j+64>>2]=e;if(!c){break K}ma(c)}if((d|0)==(e|0)){break o}y=d-4|0;c=F[y>>2];if((c|0)==(k|0)){break o}a=(c|0)==-1;f=F[g+8>>2];if(!a&F[F[f+12>>2]+(c<<2)>>2]!=-1){break o}h=F[f+12>>2];if((k|0)!=-1&F[h+(k<<2)>>2]!=-1){break o}o=L(i,3);r=o+2|0;F[h+(c<<2)>>2]=r;l=r<<2;F[l+h>>2]=c;b=o+1|0;F[h+(k<<2)>>2]=b;z=b<<2;F[z+h>>2]=k;if(a){break t}if((c>>>0)%3|0){i=c-1|0;break r}i=c+2|0;if((i|0)!=-1){break r}a=F[f>>2];i=-1;break q}f=F[g+8>>2];Oa(f+24|0,8324);b=F[g+8>>2];a=L(i,3);h=F[f+28>>2];k=F[f+24>>2];l=h-k|0;f=l>>2;o=f-1|0;F[F[b>>2]+(a<<2)>>2]=o;Oa(b+24|0,8324);r=a+1|0;F[F[b>>2]+(r<<2)>>2]=(F[b+28>>2]-F[b+24>>2]>>2)-1;b=F[g+8>>2];Oa(b+24|0,8324);y=a+2|0;F[F[b>>2]+(y<<2)>>2]=(F[b+28>>2]-F[b+24>>2]>>2)-1;z=F[g+8>>2];b=F[z+24>>2];if((s|0)>2]-b>>2){break k}P:{Q:{if((h|0)!=(k|0)){F[b+(o<<2)>>2]=a;h=0;if((l|0)==-4){break Q}}F[b+(f<<2)>>2]=r;h=f+1|0;if((h|0)==-1){break P}}F[b+(h<<2)>>2]=y}if((d|0)!=(q|0)){F[d>>2]=a;d=d+4|0;F[j+68>>2]=d;break v}b=d-c|0;f=b>>2;d=f+1|0;if(d>>>0>=1073741824){break s}e=b>>1;d=b>>>0>=2147483644?1073741823:d>>>0>>0?e:d;if(d){if(d>>>0>=1073741824){break j}e=na(d<<2)}else{e=0}f=e+(f<<2)|0;F[f>>2]=a;q=(d<<2)+e|0;d=f+4|0;if((b|0)>0){oa(e,c,b)}F[j+72>>2]=q;F[j+68>>2]=d;F[j+64>>2]=e;if(!c){break w}ma(c)}c=e}a=F[g+40>>2];if((a|0)==F[g+36>>2]){break m}b=a-12|0;f=F[b+4>>2];i=t+(i^-1)|0;if(f>>>0>i>>>0){break o}if((f|0)!=(i|0)){break m}h=G[a-4|0];f=F[b>>2];F[g+40>>2]=b;if((f|0)<0){break o}k=d-4|0;a=F[k>>2];F[j+20>>2]=t+(f^-1);b=j+20|0;F[j+88>>2]=b;Gb(j,j+40|0,b,j+88|0);f=F[j>>2];R:{if(h&1){b=-1;if((a|0)==-1){break R}b=a+1|0;b=(b>>>0)%3|0?b:a-2|0;break R}b=-1;if((a|0)==-1){break R}b=a-1|0;if((a>>>0)%3|0){break R}b=a+2|0}F[f+12>>2]=b;b=F[g+40>>2];if((b|0)==F[g+36>>2]){break m}while(1){a=b-12|0;f=F[a+4>>2];if(f>>>0>i>>>0){break o}if((f|0)!=(i|0)){break m}f=G[b-4|0];b=F[a>>2];F[g+40>>2]=a;if((b|0)<0){break o}a=F[k>>2];F[j+20>>2]=t+(b^-1);b=j+20|0;F[j+88>>2]=b;Gb(j,j+40|0,b,j+88|0);h=F[j>>2];S:{if(f&1){b=-1;if((a|0)==-1){break S}b=a+1|0;b=(b>>>0)%3|0?b:a-2|0;break S}b=-1;if((a|0)==-1){break S}b=a-1|0;if((a>>>0)%3|0){break S}b=a+2|0}F[h+12>>2]=b;b=F[g+40>>2];if((b|0)!=F[g+36>>2]){continue}break}break m}qa();v()}i=-1;a=F[f>>2];F[a+(o<<2)>>2]=-1;b=-1;break p}qa();v()}a=F[f>>2];i=F[a+(i<<2)>>2]}F[(o<<2)+a>>2]=i;b=c+1|0;c=(b>>>0)%3|0?b:c-2|0;b=-1;if((c|0)==-1){break p}b=F[(c<<2)+a>>2]}F[a+z>>2]=b;T:{if((k|0)==-1){F[a+l>>2]=-1;l=-1;c=-1;break T}U:{V:{W:{if((k>>>0)%3|0){b=k-1|0;break W}b=k+2|0;if((b|0)==-1){break V}}c=F[(b<<2)+a>>2];F[a+l>>2]=c;if((c|0)==-1){break U}F[F[f+24>>2]+(c<<2)>>2]=r;break U}F[a+l>>2]=-1}l=-1;b=k+1|0;b=(b>>>0)%3|0?b:k-2|0;c=-1;if((b|0)==-1){break T}l=F[(b<<2)+a>>2];c=b}b=F[f+24>>2];k=b+(l<<2)|0;if((i|0)!=-1){F[b+(i<<2)>>2]=F[k>>2]}b=c;while(1){if((b|0)==-1){break n}F[(b<<2)+a>>2]=i;r=b+1|0;b=(r>>>0)%3|0?r:b-2|0;f=-1;X:{if((b|0)==-1){break X}b=F[h+(b<<2)>>2];f=-1;if((b|0)==-1){break X}f=b+1|0;f=(f>>>0)%3|0?f:b-2|0}b=f;if((c|0)!=(b|0)){continue}break}}if(!x){break l}break k}F[k>>2]=-1;Y:{if(J){break Y}if((w|0)!=(B|0)){F[w>>2]=l;w=w+4|0;F[j+28>>2]=w;break Y}c=B-n|0;i=c>>2;a=i+1|0;if(a>>>0>=1073741824){break i}b=c>>1;b=c>>>0>=2147483644?1073741823:a>>>0>>0?b:a;if(b){if(b>>>0>=1073741824){break j}a=na(b<<2)}else{a=0}i=a+(i<<2)|0;F[i>>2]=l;B=a+(b<<2)|0;w=i+4|0;if((c|0)>0){oa(a,n,c)}F[j+32>>2]=B;F[j+28>>2]=w;F[j+24>>2]=a;if(n){ma(n)}n=a}F[y>>2]=o;c=e}x=(p|0)<(t|0);if((p|0)!=(t|0)){continue}break}p=t}m=-1;a=F[g+8>>2];if((s|0)>2]-F[a+24>>2]>>2){break k}if((d|0)!=(e|0)){o=g+72|0;t=g+60|0;B=g+312|0;while(1){d=d-4|0;k=F[d>>2];F[j+68>>2]=d;Z:{if(za(B)){q=F[g+8>>2];l=F[q>>2];if(((F[q+4>>2]-l>>2>>>0)/3|0)<=(p|0)){break k}a=-1;c=-1;s=F[q+24>>2];b=-1;_:{if((k|0)==-1){break _}f=k+1|0;f=(f>>>0)%3|0?f:k-2|0;b=-1;if((f|0)==-1){break _}b=F[l+(f<<2)>>2]}f=b;h=F[s+(f<<2)>>2];$:{if((h|0)==-1){i=1;b=-1;break $}i=1;x=h+1|0;h=(x>>>0)%3|0?x:h-2|0;b=-1;if((h|0)==-1){break $}i=0;a=h;b=a+1|0;b=(b>>>0)%3|0?b:a-2|0;if((b|0)!=-1){b=F[l+(b<<2)>>2]}else{b=-1}}h=F[(b<<2)+s>>2];if((h|0)!=-1){c=h+1|0;c=(c>>>0)%3|0?c:h-2|0}if((a|0)==(k|0)|(c|0)==(k|0)|(a|0)==(c|0)){break k}if(!((k|0)==-1|F[F[q+12>>2]+(k<<2)>>2]==-1)|!(F[F[q+12>>2]+(a<<2)>>2]==-1|i)){break k}i=-1;h=F[q+12>>2];q=-1;aa:{if((c|0)==-1){break aa}if(F[h+(c<<2)>>2]!=-1){break k}s=c+1|0;s=(s>>>0)%3|0?s:c-2|0;q=-1;if((s|0)==-1){break aa}q=F[l+(s<<2)>>2]}s=L(p,3);F[j>>2]=s;F[h+(s<<2)>>2]=k;F[h+(k<<2)>>2]=s;k=F[j>>2]+1|0;F[h+(k<<2)>>2]=a;F[h+(a<<2)>>2]=k;a=F[j>>2]+2|0;F[h+(a<<2)>>2]=c;F[h+(c<<2)>>2]=a;a=F[j>>2];F[l+(a<<2)>>2]=b;c=a+1|0;h=l+(c<<2)|0;F[h>>2]=q;k=a+2|0;l=l+(k<<2)|0;F[l>>2]=f;a=F[g+120>>2];b=c?b:-1;f=a+(b>>>3&536870908)|0;q=F[f>>2];M=f,N=ki(b)&q,F[M>>2]=N;i=(c|0)!=-1?F[h>>2]:i;c=a+(i>>>3&536870908)|0;b=F[c>>2];M=c,N=ki(i)&b,F[M>>2]=N;b=-1;b=(k|0)!=-1?F[l>>2]:b;a=a+(b>>>3&536870908)|0;c=F[a>>2];M=a,N=ki(b)&c,F[M>>2]=N;D[j+88|0]=1;vd(t,j+88|0);Oa(o,j);p=p+1|0;break Z}c=F[g+64>>2];a=F[g+68>>2];if((c|0)==a<<5){if((c+1|0)<0){break h}if(c>>>0<=1073741822){a=a<<6;c=(c&-32)+32|0;a=a>>>0>c>>>0?a:c}else{a=2147483647}db(t,a);c=F[g+64>>2]}F[g+64>>2]=c+1;a=F[g+60>>2]+(c>>>3&536870908)|0;b=F[a>>2];M=a,N=ki(c)&b,F[M>>2]=N;a=F[g+76>>2];if((a|0)!=F[g+80>>2]){F[a>>2]=k;F[g+76>>2]=a+4;break Z}b=F[o>>2];c=a-b|0;f=c>>2;a=f+1|0;if(a>>>0>=1073741824){break g}i=c>>1;i=c>>>0>=2147483644?1073741823:a>>>0>>0?i:a;if(i){if(i>>>0>=1073741824){break j}a=na(i<<2)}else{a=0}f=a+(f<<2)|0;F[f>>2]=k;if((c|0)>0){oa(a,b,c)}F[g+80>>2]=a+(i<<2);F[g+76>>2]=f+4;F[g+72>>2]=a;if(!b){break Z}ma(b)}if((d|0)!=(e|0)){continue}break}a=F[g+8>>2]}if(((F[a+4>>2]-F[a>>2]>>2>>>0)/3|0)!=(p|0)){break k}m=F[a+28>>2]-F[a+24>>2]>>2;if((n|0)==(w|0)){n=w;break k}d=n;while(1){i=F[d>>2];p=F[a+24>>2];b=m-1|0;c=p+(b<<2)|0;if(F[c>>2]==-1){while(1){b=m-2|0;m=m-1|0;c=p+(b<<2)|0;if(F[c>>2]==-1){continue}break}}if(b>>>0>=i>>>0){F[j>>2]=a;c=F[c>>2];D[j+12|0]=1;F[j+8>>2]=c;F[j+4>>2]=c;if((c|0)!=-1){while(1){a=F[F[g+8>>2]>>2]+(c<<2)|0;if(F[a>>2]!=(b|0)){m=-1;break k}F[a>>2]=i;lc(j);c=F[j+8>>2];if((c|0)!=-1){continue}break}a=F[g+8>>2]}p=F[a+24>>2];c=p+(b<<2)|0;if((i|0)!=-1){F[p+(i<<2)>>2]=F[c>>2]}F[c>>2]=-1;c=1<>2];i=p+(i>>>3&536870908)|0;p=p+(b>>>3&536870908)|0;b=1<>2]&b){c=c|F[i>>2]}else{c=F[i>>2]&(c^-1)}F[i>>2]=c;F[p>>2]=F[p>>2]&(b^-1);m=m-1|0}d=d+4|0;if((w|0)!=(d|0)){continue}break}}if(n){ma(n)}a=F[j+48>>2];if(a){while(1){d=F[a>>2];ma(a);a=d;if(a){continue}break}}a=F[j+40>>2];F[j+40>>2]=0;if(a){ma(a)}if(e){F[j+68>>2]=e;ma(e)}aa=j+96|0;a=m;break f}sa();v()}qa();v()}qa();v()}qa();v()}c=a;if((a|0)==-1){break e}a=F[C+16>>2];d=a+F[C>>2]|0;e=F[C+8>>2];e=e-a|0;a=F[F[g+4>>2]+32>>2];E[a+38>>1]=H[a+38>>1];F[a>>2]=d;F[a+16>>2]=0;F[a+20>>2]=0;F[a+8>>2]=e;F[a+12>>2]=0;ba:{if(F[g+216>>2]==F[g+220>>2]){break ba}a=F[g+8>>2];if(F[a+4>>2]==F[a>>2]){break ba}d=0;while(1){if(yd(g,d)){d=d+3|0;a=F[g+8>>2];if(d>>>0>2]-F[a>>2]>>2>>>0){continue}break ba}break}break e}if(G[g+308|0]){D[g+308|0]=0;d=F[g+292>>2];a=0;e=F[g+304>>2]+7|0;a=e>>>0<7?1:a;b=a>>>3|0;n=a<<29|e>>>3;a=n+F[g+288>>2]|0;e=b+d|0;F[g+288>>2]=a;F[g+292>>2]=a>>>0>>0?e+1|0:e}d=F[g+216>>2];if((d|0)!=F[g+220>>2]){a=0;while(1){b=L(a,144);Yc((b+d|0)+4|0,F[g+8>>2]);e=F[A>>2];n=e+b|0;d=F[n+132>>2];n=F[n+136>>2];if((d|0)!=(n|0)){while(1){Wc((b+F[A>>2]|0)+4|0,F[d>>2]);d=d+4|0;if((n|0)!=(d|0)){continue}break}e=F[A>>2]}if(!Xc((e+b|0)+4|0)){break e}a=a+1|0;d=F[g+216>>2];if(a>>>0<(F[g+220>>2]-d|0)/144>>>0){continue}break}}a=F[g+8>>2];Ib(g+184|0,F[a+28>>2]-F[a+24>>2]>>2);e=F[g+216>>2];if((e|0)!=F[g+220>>2]){d=0;while(1){a=L(d,144)+e|0;e=F[a+60>>2]-F[a+56>>2]>>2;b=a+104|0;a=F[g+8>>2];a=F[a+28>>2]-F[a+24>>2]>>2;Ib(b,(a|0)<(e|0)?e:a);d=d+1|0;e=F[g+216>>2];if(d>>>0<(F[g+220>>2]-e|0)/144>>>0){continue}break}}K=xd(g,c)}}aa=u- -64|0;return K|0}function zf(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,E=0,H=0,I=0,J=0,K=0,M=0,N=0;A=c;c=0;m=aa-96|0;aa=m;k=m+16|0;pa(k,0,76);F[m+92>>2]=-1;F[m+8>>2]=0;F[m>>2]=0;F[m+4>>2]=0;q=aa-16|0;aa=q;F[k+68>>2]=0;F[k+72>>2]=0;F[k>>2]=b;s=aa-16|0;aa=s;w=b;a=F[b+20>>2];a:{if((F[b+24>>2]-a|0)<=0){break a}a=F[a>>2];if((a|0)==-1){break a}c=F[F[w+8>>2]+(a<<2)>>2]}b:{c:{d:{if(!c){a=0;break d}a=F[w+100>>2];d=F[w+96>>2];F[s+8>>2]=0;F[s>>2]=0;F[s+4>>2]=0;e=a-d|0;b=(e|0)/12|0;e:{if((a|0)==(d|0)){break e}if(b>>>0>=357913942){break c}f=na(e);F[s>>2]=f;F[s+8>>2]=f+L(b,12);a=0;g=f;e=e-12|0;f=(e-((e>>>0)%12|0)|0)+12|0;e=pa(g,0,f);F[s+4>>2]=e+f;if(G[c+84|0]){c=b>>>0<=1?1:b;g=c&1;if(b>>>0>=2){i=c&-2;c=0;while(1){f=L(a,12);b=f+d|0;h=F[b+4>>2];o=F[b>>2];f=e+f|0;F[f+8>>2]=F[b+8>>2];F[f>>2]=o;F[f+4>>2]=h;f=L(a|1,12);b=f+d|0;h=F[b+4>>2];o=F[b>>2];f=e+f|0;F[f+8>>2]=F[b+8>>2];F[f>>2]=o;F[f+4>>2]=h;a=a+2|0;c=c+2|0;if((i|0)!=(c|0)){continue}break}}if(!g){break e}b=L(a,12);a=b+d|0;c=F[a+4>>2];d=F[a>>2];b=b+e|0;F[b+8>>2]=F[a+8>>2];F[b>>2]=d;F[b+4>>2]=c;break e}g=b>>>0<=1?1:b;a=F[c+68>>2];c=0;while(1){f=L(c,12);b=f+d|0;i=F[a+(F[b>>2]<<2)>>2];h=F[a+(F[b+4>>2]<<2)>>2];f=e+f|0;F[f+8>>2]=F[a+(F[b+8>>2]<<2)>>2];F[f+4>>2]=h;F[f>>2]=i;c=c+1|0;if((g|0)!=(c|0)){continue}break}}c=0;E=aa-16|0;aa=E;h=na(88);Xb(h);B=aa-16|0;aa=B;F[h+80>>2]=0;F[h+84>>2]=0;a=F[h+76>>2];F[h+76>>2]=0;if(a){ma(a)}F[h+68>>2]=0;F[h+72>>2]=0;b=h- -64|0;a=F[b>>2];F[b>>2]=0;if(a){ma(a)}d=F[s+4>>2];g=F[s>>2];b=(d-g|0)/12|0;a=L(b,3);f=F[h>>2];e=F[h+4>>2]-f>>2;f:{if(a>>>0>e>>>0){ra(h,a-e|0);d=F[s+4>>2];g=F[s>>2];b=(d-g|0)/12|0;break f}if(a>>>0>=e>>>0){break f}F[h+4>>2]=f+(a<<2)}g:{if((d|0)==(g|0)){break g}d=b>>>0<=1?1:b;f=d&1;a=F[h>>2];if(b>>>0>=2){i=d&-2;b=0;while(1){d=L(c,12);o=d+a|0;e=d+g|0;F[o>>2]=F[e>>2];F[a+(d|4)>>2]=F[e+4>>2];F[o+8>>2]=F[e+8>>2];e=L(c|1,12);d=e+a|0;e=e+g|0;F[d>>2]=F[e>>2];F[d+4>>2]=F[e+4>>2];F[d+8>>2]=F[e+8>>2];c=c+2|0;b=b+2|0;if((i|0)!=(b|0)){continue}break}}if(!f){break g}b=L(c,12);a=b+a|0;b=b+g|0;F[a>>2]=F[b>>2];F[a+4>>2]=F[b+4>>2];F[a+8>>2]=F[b+8>>2]}F[B+12>>2]=-1;a=0;e=0;d=0;i=aa-32|0;aa=i;h:{i:{x=B+12|0;j:{if(!x){break j}b=F[h+4>>2];o=F[h>>2];c=b-o|0;j=c>>2;g=F[h+12>>2];f=F[h+16>>2]-g>>2;k:{if(j>>>0>f>>>0){xa(h+12|0,j-f|0,10228);b=F[h+4>>2];o=F[h>>2];c=b-o|0;j=c>>2;break k}if(f>>>0<=j>>>0){break k}F[h+16>>2]=g+(j<<2)}F[i+24>>2]=0;F[i+16>>2]=0;F[i+20>>2]=0;f=(b|0)==(o|0);if(!f){if((c|0)<0){break i}e=na(c);F[i+20>>2]=e;F[i+16>>2]=e;F[i+24>>2]=(j<<2)+e}l:{m:{n:{o:{p:{if(c){while(1){g=F[(a<<2)+o>>2];c=F[i+20>>2]-e>>2;q:{if(g>>>0>>0){break q}F[i>>2]=0;f=g+1|0;if(f>>>0>c>>>0){xa(i+16|0,f-c|0,i);o=F[h>>2];b=F[h+4>>2];e=F[i+16>>2];break q}if(c>>>0<=f>>>0){break q}F[i+20>>2]=(f<<2)+e}c=(g<<2)+e|0;F[c>>2]=F[c>>2]+1;a=a+1|0;c=b-o|0;j=c>>2;if(a>>>0>>0){continue}break}break p}c=0;if(!f){break o}break n}if((b|0)==(o|0)){c=0;break n}if(c>>>0>=2147483645){break m}}c=na(c<<1);pa(c,255,j<<3)}F[i+8>>2]=0;F[i>>2]=0;F[i+4>>2]=0;b=F[i+20>>2];a=b-e|0;t=a>>2;r:{s:{if((b|0)==(e|0)){break s}if((a|0)<0){break r}n=na(a);F[i>>2]=n;F[i+8>>2]=(t<<2)+n;b=pa(n,0,a);F[i+4>>2]=b+a;f=t>>>0<=1?1:t;g=f&3;a=0;if(f-1>>>0>=3){r=f&-4;while(1){f=d<<2;F[f+b>>2]=a;y=f|4;a=F[e+f>>2]+a|0;F[y+b>>2]=a;u=f|8;a=a+F[e+y>>2]|0;F[u+b>>2]=a;f=f|12;a=a+F[e+u>>2]|0;F[f+b>>2]=a;a=a+F[e+f>>2]|0;d=d+4|0;p=p+4|0;if((r|0)!=(p|0)){continue}break}}if(!g){break s}while(1){f=d<<2;F[f+b>>2]=a;d=d+1|0;a=F[e+f>>2]+a|0;l=l+1|0;if((g|0)!=(l|0)){continue}break}}if(!j){break l}y=F[h+12>>2];f=0;while(1){H=f<<2;a=H+o|0;l=-1;g=f+1|0;b=(g>>>0)%3|0?g:f-2|0;if((b|0)!=-1){l=F[(b<<2)+o>>2]}b=F[a>>2];t:{u:{if(!((f>>>0)%3|0)){p=-1;a=f+2|0;if((a|0)!=-1){p=F[(a<<2)+o>>2]}if(!((b|0)==(l|0)|(b|0)==(p|0))&(l|0)!=(p|0)){break u}F[h+40>>2]=F[h+40>>2]+1;f=f+3|0;break t}p=F[a-4>>2]}a=p<<2;u=F[a+e>>2];v:{w:{if((u|0)<=0){break w}a=F[a+n>>2];d=0;while(1){r=(a<<3)+c|0;z=F[r>>2];if((z|0)==-1){break w}x:{if((l|0)!=(z|0)){break x}r=F[r+4>>2];if((r|0)!=-1){z=F[(r<<2)+o>>2]}else{z=-1}if((z|0)==(b|0)){break x}while(1){y:{b=a;d=d+1|0;if((u|0)<=(d|0)){break y}a=b+1|0;I=(a<<3)+c|0;z=F[I>>2];J=(b<<3)+c|0;F[J+4>>2]=F[I+4>>2];F[J>>2]=z;if((z|0)!=-1){continue}}break}F[(b<<3)+c>>2]=-1;if((r|0)==-1){break w}F[y+H>>2]=r;F[y+(r<<2)>>2]=f;break v}a=a+1|0;d=d+1|0;if((u|0)!=(d|0)){continue}break}}a=l<<2;l=F[a+e>>2];if((l|0)<=0){break v}a=F[a+n>>2];d=0;while(1){b=(a<<3)+c|0;if(F[b>>2]==-1){F[b>>2]=p;F[b+4>>2]=f;break v}a=a+1|0;d=d+1|0;if((l|0)!=(d|0)){continue}break}}f=g}if(j>>>0>f>>>0){continue}break}break l}break i}qa();v()}F[x>>2]=t;if(n){ma(n)}if(c){ma(c)}a=F[i+16>>2];if(!a){break j}F[i+20>>2]=a;ma(a)}aa=i+32|0;y=(x|0)!=0;if(y){l=aa-32|0;aa=l;n=F[h>>2];a=F[h+4>>2];F[l+24>>2]=0;F[l+16>>2]=0;F[l+20>>2]=0;z:{if((a|0)==(n|0)){break z}c=a-n|0;if((c|0)<0){break i}b=c>>2;e=b-1>>>5|0;d=na((e<<2)+4|0);F[l+16>>2]=d;F[d+((c>>>0>=132?e:0)<<2)>>2]=0;c=b>>>5<<2;d=pa(d,0,c);if((b|0)==(b&-32)){break z}c=c+d|0;F[c>>2]=F[c>>2]&(-1>>>32-(b&31)^-1)}F[l+8>>2]=0;F[l>>2]=0;while(1){A:{r=0;o=0;if((a|0)==(n|0)){break A}while(1){b=F[l+16>>2];B:{if(F[b+(o>>>3&536870908)>>2]>>>o&1){break B}e=F[l>>2];F[l+4>>2]=e;c=F[h+12>>2];a=o;while(1){C:{d=a+1|0;i=a;a=(d>>>0)%3|0?d:a-2|0;if((a|0)==-1){break C}a=F[c+(a<<2)>>2];if((a|0)==-1){break C}d=a+1|0;a=(d>>>0)%3|0?d:a-2|0;if((o|0)==(a|0)|(a|0)==-1){break C}if(!(F[b+(a>>>3&536870908)>>2]>>>a&1)){continue}}break}d=i;D:{E:{F:{while(1){a=F[l+16>>2]+(d>>>3&536870908)|0;F[a>>2]=F[a>>2]|1<>>0)%3|0?a:d-2|0;n=F[h>>2];u=(d>>>0)%3|0;b=(u?-1:2)+d|0;j=F[l>>2];G:{if((j|0)==(e|0)){break G}x=F[(g<<2)+n>>2];p=F[h+12>>2];a=j;if((b|0)!=-1){c=p+(b<<2)|0;while(1){H:{if((x|0)!=F[a>>2]){break H}f=F[a+4>>2];t=F[c>>2];if((f|0)==(t|0)){break H}e=-1;c=b;a=-1;if((f|0)==-1){break D}break E}a=a+8|0;if((e|0)!=(a|0)){continue}break}break G}while(1){if((x|0)==F[a>>2]){t=-1;c=-1;f=F[a+4>>2];if((f|0)!=-1){break E}}a=a+8|0;if((e|0)!=(a|0)){continue}break}}f=F[(b<<2)+n>>2];I:{if(F[l+8>>2]!=(e|0)){F[e>>2]=f;F[e+4>>2]=g;e=e+8|0;F[l+4>>2]=e;break I}b=e-j|0;e=b>>3;a=e+1|0;if(a>>>0>=536870912){break i}c=b>>2;c=b>>>0>=2147483640?536870911:a>>>0>>0?c:a;if(c){if(c>>>0>=536870912){break F}a=na(c<<3)}else{a=0}e=a+(e<<3)|0;F[e>>2]=f;F[e+4>>2]=g;e=e+8|0;if((b|0)>0){oa(a,j,b)}F[l+8>>2]=a+(c<<3);F[l+4>>2]=e;F[l>>2]=a;if(!j){break I}ma(j)}J:{K:{if(u){a=d-1|0;break K}a=d+2|0;if((a|0)==-1){break J}}a=F[F[h+12>>2]+(a<<2)>>2];if((a|0)==-1){break J}d=a+((a>>>0)%3|0?-1:2)|0;if((i|0)==(d|0)){break J}if((d|0)!=-1){continue}}break}n=F[h>>2];break B}sa();v()}b=c;e=f;a=F[p+(e<<2)>>2]}if((t|0)!=-1){F[p+(t<<2)>>2]=-1}if((a|0)!=-1){F[F[h+12>>2]+(a<<2)>>2]=-1}a=F[h+12>>2];F[a+(b<<2)>>2]=-1;F[a+(e<<2)>>2]=-1;r=1}o=o+1|0;a=F[h+4>>2];if(o>>>0>2>>>0){continue}break}if(r){continue}}break}a=F[l>>2];if(a){ma(a)}a=F[l+16>>2];if(a){ma(a)}aa=l+32|0;c=0;f=0;l=0;i=aa-32|0;aa=i;a=F[B+12>>2];F[h+36>>2]=a;o=h+24|0;d=F[h+24>>2];b=F[h+28>>2]-d>>2;L:{M:{if(b>>>0>>0){xa(o,a-b|0,10228);F[i+24>>2]=0;F[i+16>>2]=0;F[i+20>>2]=0;break M}if(a>>>0>>0){F[h+28>>2]=d+(a<<2)}F[i+24>>2]=0;F[i+16>>2]=0;F[i+20>>2]=0;if(!a){break L}}if((a|0)<0){break i}b=a-1>>>5|0;d=b+1|0;c=na(d<<2);F[i+24>>2]=d;F[i+16>>2]=c;F[i+20>>2]=a;F[((a>>>0>=33?b:0)<<2)+c>>2]=0;b=a>>>5<<2;d=pa(c,0,b);if((a&-32)==(a|0)){break L}b=b+d|0;F[b>>2]=F[b>>2]&(-1>>>32-(a&31)^-1)}j=F[h>>2];e=F[h+4>>2];F[i+8>>2]=0;F[i>>2]=0;F[i+4>>2]=0;d=e-j|0;N:{if((e|0)==(j|0)){break N}if((d|0)<0){break i}b=d>>2;g=b-1>>>5|0;n=g+1|0;f=na(n<<2);F[i+8>>2]=n;F[i>>2]=f;F[i+4>>2]=b;F[((d>>>0>=132?g:0)<<2)+f>>2]=0;g=b>>>5<<2;n=pa(f,0,g);if((b|0)==(b&-32)){break N}g=g+n|0;F[g>>2]=F[g>>2]&(-1>>>32-(b&31)^-1)}if(d>>>0>=12){O:{P:{while(1){p=L(l,3);d=(p<<2)+j|0;b=F[d>>2];g=-1;n=p+1|0;if((n|0)!=-1){g=F[(n<<2)+j>>2]}Q:{if((b|0)==(g|0)){break Q}n=b;b=F[d+8>>2];if((n|0)==(b|0)){break Q}n=0;if((b|0)==(g|0)){break Q}while(1){b=n+p|0;if(!(F[(b>>>3&536870908)+f>>2]>>>b&1)){d=F[(b<<2)+j>>2];g=1<>>5|0;t=g&F[(j<<2)+c>>2];if(t){c=F[h+28>>2];R:{if((c|0)!=F[h+32>>2]){F[c>>2]=-1;F[h+28>>2]=c+4;break R}f=F[o>>2];e=c-f|0;j=e>>2;c=j+1|0;if(c>>>0>=1073741824){break i}g=e>>1;g=e>>>0>=2147483644?1073741823:c>>>0>>0?g:c;if(g){if(g>>>0>=1073741824){break P}c=na(g<<2)}else{c=0}j=c+(j<<2)|0;F[j>>2]=-1;if((e|0)>0){oa(c,f,e)}F[h+32>>2]=c+(g<<2);F[h+28>>2]=j+4;F[h+24>>2]=c;if(!f){break R}ma(f)}c=F[h+52>>2];S:{if((c|0)!=F[h+56>>2]){F[c>>2]=d;F[h+52>>2]=c+4;break S}f=F[h+48>>2];e=c-f|0;j=e>>2;c=j+1|0;if(c>>>0>=1073741824){break i}g=e>>1;g=e>>>0>=2147483644?1073741823:c>>>0>>0?g:c;if(g){if(g>>>0>=1073741824){break P}c=na(g<<2)}else{c=0}j=c+(j<<2)|0;F[j>>2]=d;if((e|0)>0){oa(c,f,e)}F[h+56>>2]=c+(g<<2);F[h+52>>2]=j+4;F[h+48>>2]=c;if(!f){break S}ma(f)}g=F[i+20>>2];c=F[i+24>>2];if((g|0)==c<<5){if((g+1|0)<0){break i}d=i+16|0;if(g>>>0<=1073741822){c=c<<6;e=(g&-32)+32|0;c=c>>>0>e>>>0?c:e}else{c=2147483647}db(d,c);g=F[i+20>>2]}F[i+20>>2]=g+1;c=F[i+16>>2]+(g>>>3&536870908)|0;d=F[c>>2];M=c,N=ki(g)&d,F[M>>2]=N;g=1<>>5|0;d=a;a=a+1|0}e=a;c=F[i+16>>2];a=c+(j<<2)|0;F[a>>2]=F[a>>2]|g;x=F[h+24>>2]+(d<<2)|0;r=F[h+12>>2];j=F[h>>2];f=F[i>>2];a=b;T:{U:{V:{while(1){if((a|0)==-1){break V}g=(a>>>3&536870908)+f|0;F[g>>2]=F[g>>2]|1<>2]=a;if(t){F[(a<<2)+j>>2]=d}u=a+1|0;a=(u>>>0)%3|0?u:a-2|0;g=-1;W:{if((a|0)==-1){break W}a=F[r+(a<<2)>>2];g=-1;if((a|0)==-1){break W}g=a+1|0;g=(g>>>0)%3|0?g:a-2|0}a=g;if((b|0)!=(a|0)){continue}break}if((b|0)!=-1){break T}a=1;break U}if((b>>>0)%3|0){a=b-1|0;break U}a=b+2|0;if((a|0)==-1){break T}}a=F[r+(a<<2)>>2];if((a|0)==-1){break T}X:{if((a>>>0)%3|0){a=a-1|0;break X}a=a+2|0;if((a|0)==-1){break T}}b=F[h+12>>2];j=F[h>>2];f=F[i>>2];while(1){g=(a>>>3&536870908)+f|0;F[g>>2]=F[g>>2]|1<>2]=d}Y:{if((a>>>0)%3|0){a=a-1|0;break Y}a=a+2|0;if((a|0)==-1){break T}}a=F[b+(a<<2)>>2];if((a|0)==-1){break T}a=a+((a>>>0)%3|0?-1:2)|0;if((a|0)!=-1){continue}break}}a=e}n=n+1|0;if((n|0)!=3){continue}break}j=F[h>>2];e=F[h+4>>2]}l=l+1|0;if(l>>>0<(e-j>>2>>>0)/3>>>0){continue}break}break O}sa();v()}c=F[i+16>>2]}a=0;F[h+44>>2]=0;b=F[i+20>>2];if(b){d=b&31;b=(b>>>3&536870908)+c|0;g=c;f=0;while(1){if(!(F[g>>2]>>>a&1)){f=f+1|0;F[h+44>>2]=f}e=(a|0)==31;a=e?0:a+1|0;g=(e<<2)+g|0;if((b|0)!=(g|0)|(a|0)!=(d|0)){continue}break}}a=F[i>>2];if(a){ma(a);c=F[i+16>>2]}if(c){ma(c)}aa=i+32|0}aa=B+16|0;if(!y){F[E+8>>2]=0;bb(h);h=0}aa=E+16|0;a=h;break h}qa();v()}b=F[s>>2];if(!b){break d}F[s+4>>2]=b;ma(b)}aa=s+16|0;break b}qa();v()}c=F[k+4>>2];b=a;F[k+4>>2]=a;if(c){bb(c);b=F[k+4>>2]}Z:{if(!b){break Z}a=F[w+100>>2];c=F[w+96>>2];D[q+12|0]=0;Ha(k+56|0,(a-c|0)/12|0,q+12|0);a=F[w+100>>2];c=F[w+96>>2];if((a|0)==(c|0)){break Z}while(1){if(!(F[F[k+56>>2]+(C>>>3&536870908)>>2]>>>C&1)){a=L(C,3);Ub(k,0,a);c=F[k+8>>2];d=F[k+12>>2];Ub(k,1,a+1|0);e=F[k+20>>2];f=F[k+24>>2];Ub(k,2,a+2|0);g=(c|0)==(d|0)?-1:0;a=f-e>>2;c=d-c>>2;d=a>>>0>c>>>0;c=F[k+36>>2]-F[k+32>>2]>>2>>>0>(d?a:c)>>>0?2:d?1:g;_:{if(F[k+68>>2]<=0){break _}F[q+12>>2]=F[k+76>>2];F[q+8>>2]=m;Ta(q+8|0,q+12|0);a=F[((c<<2)+k|0)+44>>2];if((a|0)<0){a=-1}else{d=(a>>>0)/3|0;a=F[(F[F[k>>2]+96>>2]+L(d,12)|0)+(a-L(d,3)<<2)>>2]}F[q+12>>2]=a;F[q+8>>2]=m;Ta(q+8|0,q+12|0);d=F[k+72>>2];F[k+72>>2]=d+2;if(!(d&1)){break _}F[q+12>>2]=a;F[q+8>>2]=m;Ta(q+8|0,q+12|0);F[k+72>>2]=F[k+72>>2]+1}f=0;d=aa-16|0;aa=d;F[k+68>>2]=F[k+68>>2]+1;a=L(c,12)+k|0;a=F[a+12>>2]-F[a+8>>2]|0;if((a|0)>0){a=a>>>2|0;g=a>>>0<=1?1:a;c=F[((c<<2)+k|0)+44>>2];while(1){a=c;e=(a>>>0)/3|0;c=(a|0)==-1;i=c?-1:e;h=F[k+56>>2]+(i>>>3&536870908)|0;F[h>>2]=F[h>>2]|1<>2]=F[k+72>>2]+1;$:{aa:{ba:{ca:{da:{if(!f){ea:{if((a|0)>=0){F[d+12>>2]=F[(F[F[k>>2]+96>>2]+L(e,12)|0)+((a>>>0)%3<<2)>>2];F[d+8>>2]=m;Ta(d+8|0,d+12|0);break ea}F[d+12>>2]=-1;F[d+8>>2]=m;Ta(d+8|0,d+12|0);if(c){break da}}c=-1;e=a+1|0;e=(e>>>0)%3|0?e:a-2|0;if((e|0)>=0){i=(e>>>0)/3|0;e=F[(F[F[k>>2]+96>>2]+L(i,12)|0)+(e-L(i,3)<<2)>>2]}else{e=-1}F[d+12>>2]=e;F[d+8>>2]=m;Ta(d+8|0,d+12|0);e=((a>>>0)%3|0?-1:2)+a|0;if((e|0)<0){break ca}c=(e>>>0)/3|0;c=F[(F[F[k>>2]+96>>2]+L(c,12)|0)+(e-L(c,3)<<2)>>2];break ca}c=(a|0)<0?-1:F[(F[F[k>>2]+96>>2]+L(e,12)|0)+((a>>>0)%3<<2)>>2];F[k+76>>2]=c;F[d+12>>2]=c;F[d+8>>2]=m;Ta(d+8|0,d+12|0);if(f&1){c=-1;if((a|0)==-1){break $}if((L(e,3)|0)!=(a|0)){a=a-1|0;break aa}a=a+2|0;break ba}c=-1;if((a|0)==-1){break $}c=a+1|0;a=(c>>>0)%3|0?c:a-2|0;break ba}c=-1;F[d+12>>2]=-1;F[d+8>>2]=m;Ta(d+8|0,d+12|0)}F[k+76>>2]=c;F[d+12>>2]=c;F[d+8>>2]=m;Ta(d+8|0,d+12|0)}c=-1;if((a|0)==-1){break $}}c=F[F[F[k+4>>2]+12>>2]+(a<<2)>>2]}f=f+1|0;if((g|0)!=(f|0)){continue}break}}aa=d+16|0;c=F[w+96>>2];a=F[w+100>>2]}C=C+1|0;if(C>>>0<(a-c|0)/12>>>0){continue}break}}aa=q+16|0;fa:{if(b){a=F[A>>2];if(a){F[A+4>>2]=a;ma(a)}F[A>>2]=F[m>>2];F[A+4>>2]=F[m+4>>2];F[A+8>>2]=F[m+8>>2];K=F[m+84>>2];break fa}a=F[m>>2];if(!a){break fa}F[m+4>>2]=a;ma(a)}a=F[m+72>>2];if(a){ma(a)}a=F[m+48>>2];if(a){F[m+52>>2]=a;ma(a)}a=F[m+36>>2];if(a){F[m+40>>2]=a;ma(a)}a=F[m+24>>2];if(a){F[m+28>>2]=a;ma(a)}a=F[m+20>>2];F[m+20>>2]=0;if(a){bb(a)}aa=m+96|0;return K|0}function pf(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0;a:{b:{switch(d-1|0){case 0:a=0;i=F[b+80>>2];l=G[c+24|0];c:{if((L(i,l)|0)!=(e|0)){break c}b=F[c+28>>2]!=1;a=G[c+84|0];if(!(b|!a)){oa(f,F[F[c>>2]>>2]+F[c+48>>2]|0,e);a=1;break c}d=0;if(l){d=na(l);pa(d,0,l)}d:{if(!i){break d}if(!b){if(l){b=0;a=0;while(1){h=F[F[c>>2]>>2];n=F[c+40>>2];e=F[c+48>>2]+gi(n,F[c+44>>2],G[c+84|0]?a:F[F[c+68>>2]+(a<<2)>>2],0)|0;oa(b+f|0,oa(d,h+e|0,n),l);b=b+l|0;a=a+1|0;if((i|0)!=(a|0)){continue}break}break d}if(a){e=F[c>>2];a=F[c+48>>2];l=F[c+44>>2];p=F[c+40>>2];if((i|0)!=1){m=i&-2;c=0;b=0;while(1){f=F[e>>2];h=gi(p,l,c,0)+a|0;f=oa(d,f+h|0,p);k=F[e>>2];h=gi(p,l,c|1,0)+a|0;oa(f,k+h|0,p);c=c+2|0;b=b+2|0;if((m|0)!=(b|0)){continue}break}h=c}if(!(i&1)){break d}c=F[e>>2];b=gi(h,0,p,l)+a|0;oa(d,c+b|0,p);break d}e=F[c>>2];a=F[c+48>>2];h=F[c+68>>2];l=F[c+44>>2];p=F[c+40>>2];c=0;if((i|0)!=1){j=i&-2;b=0;while(1){f=F[e>>2];k=c<<2;m=gi(p,l,F[k+h>>2],0)+a|0;f=oa(d,f+m|0,p);o=F[e>>2];m=gi(p,l,F[h+(k|4)>>2],0)+a|0;oa(f,o+m|0,p);c=c+2|0;b=b+2|0;if((j|0)!=(b|0)){continue}break}}if(!(i&1)){break d}e=F[e>>2];b=gi(p,l,F[h+(c<<2)>>2],0)+a|0;oa(d,e+b|0,p);break d}a=0;g=1;if(!l){while(1){if(!Db(c,G[c+84|0]?a:F[F[c+68>>2]+(a<<2)>>2],D[c+24|0],d)){break d}a=a+1|0;g=i>>>0>a>>>0;if((a|0)!=(i|0)){continue}break d}}b=0;while(1){if(!Db(c,G[c+84|0]?b:F[F[c+68>>2]+(b<<2)>>2],D[c+24|0],d)){break d}oa(a+f|0,d,l);a=a+l|0;b=b+1|0;g=i>>>0>b>>>0;if((b|0)!=(i|0)){continue}break}}a=!g;if(!d){break c}ma(d)}g=a&1;break a;case 2:k=G[c+24|0];n=k<<1;b=F[b+80>>2];e:{f:{if((L(n,b)|0)!=(e|0)){break f}d=F[c+28>>2]!=3;q=G[c+84|0];if(!(d|!q)){oa(f,F[F[c>>2]>>2]+F[c+48>>2]|0,e);g=1;break e}a=0;if(k){a=na(n);pa(a,0,n)}g:{if(!b){break g}if(!d){d=F[c+68>>2];i=F[c>>2];e=F[c+48>>2];m=F[c+44>>2];j=F[c+40>>2];if(k){if(!q){c=0;while(1){o=F[i>>2];h=gi(j,m,F[d+(g<<2)>>2],0)+e|0;oa((c<<1)+f|0,oa(a,o+h|0,j),n);c=c+k|0;g=g+1|0;if((b|0)!=(g|0)){continue}break}break g}c=0;while(1){o=F[i>>2];d=gi(h,g,j,m)+e|0;oa((c<<1)+f|0,oa(a,o+d|0,j),n);c=c+k|0;d=g;g=h+1|0;d=g?d:d+1|0;h=g;g=d;if((b|0)!=(h|0)|d){continue}break}break g}if(!q){c=0;if((b|0)!=1){h=b&-2;while(1){o=F[i>>2];k=c<<2;f=gi(j,m,F[k+d>>2],0)+e|0;o=oa(a,o+f|0,j);n=F[i>>2];f=gi(j,m,F[d+(k|4)>>2],0)+e|0;oa(o,n+f|0,j);c=c+2|0;g=g+2|0;if((h|0)!=(g|0)){continue}break}}if(!(b&1)){break g}f=F[i>>2];b=gi(j,m,F[d+(c<<2)>>2],0)+e|0;oa(a,f+b|0,j);break g}f=b&1;if((b|0)!=1){k=b&-2;c=0;b=0;while(1){o=F[i>>2];d=gi(h,g,j,m)+e|0;o=oa(a,o+d|0,j);n=F[i>>2];d=gi(j,m,h|1,g)+e|0;oa(o,n+d|0,j);d=h+2|0;g=d>>>0<2?g+1|0:g;h=d;d=b;b=c+2|0;d=b>>>0<2?d+1|0:d;c=b;b=d;if((k|0)!=(c|0)|b){continue}break}}if(!f){break g}c=F[i>>2];b=gi(h,g,j,m)+e|0;oa(a,c+b|0,j);break g}d=0;l=1;if(!k){while(1){if(!Bb(c,G[c+84|0]?d:F[F[c+68>>2]+(d<<2)>>2],D[c+24|0],a)){break g}d=d+1|0;l=b>>>0>d>>>0;if((b|0)!=(d|0)){continue}break g}}while(1){if(!Bb(c,G[c+84|0]?g:F[F[c+68>>2]+(g<<2)>>2],D[c+24|0],a)){break g}oa((d<<1)+f|0,a,n);d=d+k|0;g=g+1|0;l=b>>>0>g>>>0;if((b|0)!=(g|0)){continue}break}}g=!l;if(!a){break f}ma(a)}g=g&1}break a;case 4:k=G[c+24|0];n=k<<2;b=F[b+80>>2];h:{if((L(n,b)|0)!=(e|0)){break h}i=F[c+28>>2]!=5;d=G[c+84|0];if(!(i|!d)){oa(f,F[F[c>>2]>>2]+F[c+48>>2]|0,e);g=1;break h}a=0;if(k){a=na(n);pa(a,0,n)}i:{if(!b){break i}if(!i){q=F[c+68>>2];i=F[c>>2];e=F[c+48>>2];m=F[c+44>>2];j=F[c+40>>2];if(k){if(!d){c=0;d=0;while(1){h=F[i>>2];g=gi(j,m,F[q+(d<<2)>>2],0)+e|0;oa((c<<2)+f|0,oa(a,h+g|0,j),n);c=c+k|0;d=d+1|0;if((b|0)!=(d|0)){continue}break}break i}d=b;c=0;while(1){o=F[i>>2];b=gi(h,g,j,m)+e|0;oa((c<<2)+f|0,oa(a,o+b|0,j),n);c=c+k|0;b=g;g=h+1|0;b=g?b:b+1|0;h=g;g=b;if((d|0)!=(h|0)|b){continue}break}break i}if(!d){c=0;if((b|0)!=1){g=b&-2;d=0;while(1){k=F[i>>2];h=c<<2;f=gi(j,m,F[h+q>>2],0)+e|0;k=oa(a,k+f|0,j);o=F[i>>2];f=gi(j,m,F[q+(h|4)>>2],0)+e|0;oa(k,o+f|0,j);c=c+2|0;d=d+2|0;if((g|0)!=(d|0)){continue}break}}if(!(b&1)){break i}d=F[i>>2];b=gi(j,m,F[q+(c<<2)>>2],0)+e|0;oa(a,d+b|0,j);break i}f=b&1;if((b|0)!=1){k=b&-2;c=0;b=0;while(1){o=F[i>>2];d=gi(h,g,j,m)+e|0;o=oa(a,o+d|0,j);n=F[i>>2];d=gi(j,m,h|1,g)+e|0;oa(o,n+d|0,j);d=g;g=h+2|0;d=g>>>0<2?d+1|0:d;h=g;g=d;c=c+2|0;b=c>>>0<2?b+1|0:b;if((k|0)!=(c|0)|b){continue}break}}if(!f){break i}c=F[i>>2];b=gi(h,g,j,m)+e|0;oa(a,c+b|0,j);break i}l=1;if(!k){while(1){if(!zb(c,G[c+84|0]?g:F[F[c+68>>2]+(g<<2)>>2],D[c+24|0],a)){break i}g=g+1|0;l=b>>>0>g>>>0;if((b|0)!=(g|0)){continue}break i}}d=0;while(1){if(!zb(c,G[c+84|0]?d:F[F[c+68>>2]+(d<<2)>>2],D[c+24|0],a)){break i}oa((g<<2)+f|0,a,n);g=g+k|0;d=d+1|0;l=b>>>0>d>>>0;if((b|0)!=(d|0)){continue}break}}g=!l;if(!a){break h}ma(a)}g=g&1;break a;case 1:a=0;i=F[b+80>>2];l=G[c+24|0];j:{if((L(i,l)|0)!=(e|0)){break j}b=F[c+28>>2]!=2;a=G[c+84|0];if(!(b|!a)){oa(f,F[F[c>>2]>>2]+F[c+48>>2]|0,e);a=1;break j}d=0;if(l){d=na(l);pa(d,0,l)}k:{if(!i){break k}if(!b){if(l){b=0;a=0;while(1){h=F[F[c>>2]>>2];n=F[c+40>>2];e=F[c+48>>2]+gi(n,F[c+44>>2],G[c+84|0]?a:F[F[c+68>>2]+(a<<2)>>2],0)|0;oa(b+f|0,oa(d,h+e|0,n),l);b=b+l|0;a=a+1|0;if((i|0)!=(a|0)){continue}break}break k}if(a){e=F[c>>2];a=F[c+48>>2];l=F[c+44>>2];p=F[c+40>>2];if((i|0)!=1){m=i&-2;c=0;b=0;while(1){f=F[e>>2];h=gi(p,l,c,0)+a|0;f=oa(d,f+h|0,p);k=F[e>>2];h=gi(p,l,c|1,0)+a|0;oa(f,k+h|0,p);c=c+2|0;b=b+2|0;if((m|0)!=(b|0)){continue}break}h=c}if(!(i&1)){break k}c=F[e>>2];b=gi(h,0,p,l)+a|0;oa(d,c+b|0,p);break k}e=F[c>>2];a=F[c+48>>2];h=F[c+68>>2];l=F[c+44>>2];p=F[c+40>>2];c=0;if((i|0)!=1){j=i&-2;b=0;while(1){f=F[e>>2];k=c<<2;m=gi(p,l,F[k+h>>2],0)+a|0;f=oa(d,f+m|0,p);o=F[e>>2];m=gi(p,l,F[h+(k|4)>>2],0)+a|0;oa(f,o+m|0,p);c=c+2|0;b=b+2|0;if((j|0)!=(b|0)){continue}break}}if(!(i&1)){break k}e=F[e>>2];b=gi(p,l,F[h+(c<<2)>>2],0)+a|0;oa(d,e+b|0,p);break k}a=0;g=1;if(!l){while(1){if(!Cb(c,G[c+84|0]?a:F[F[c+68>>2]+(a<<2)>>2],D[c+24|0],d)){break k}a=a+1|0;g=i>>>0>a>>>0;if((a|0)!=(i|0)){continue}break k}}b=0;while(1){if(!Cb(c,G[c+84|0]?b:F[F[c+68>>2]+(b<<2)>>2],D[c+24|0],d)){break k}oa(a+f|0,d,l);a=a+l|0;b=b+1|0;g=i>>>0>b>>>0;if((b|0)!=(i|0)){continue}break}}a=!g;if(!d){break j}ma(d)}g=a&1;break a;case 3:k=G[c+24|0];n=k<<1;b=F[b+80>>2];l:{m:{if((L(n,b)|0)!=(e|0)){break m}d=F[c+28>>2]!=4;q=G[c+84|0];if(!(d|!q)){oa(f,F[F[c>>2]>>2]+F[c+48>>2]|0,e);g=1;break l}a=0;if(k){a=na(n);pa(a,0,n)}n:{if(!b){break n}if(!d){d=F[c+68>>2];i=F[c>>2];e=F[c+48>>2];m=F[c+44>>2];j=F[c+40>>2];if(k){if(!q){c=0;while(1){o=F[i>>2];h=gi(j,m,F[d+(g<<2)>>2],0)+e|0;oa((c<<1)+f|0,oa(a,o+h|0,j),n);c=c+k|0;g=g+1|0;if((b|0)!=(g|0)){continue}break}break n}c=0;while(1){o=F[i>>2];d=gi(h,g,j,m)+e|0;oa((c<<1)+f|0,oa(a,o+d|0,j),n);c=c+k|0;d=g;g=h+1|0;d=g?d:d+1|0;h=g;g=d;if((b|0)!=(h|0)|d){continue}break}break n}if(!q){c=0;if((b|0)!=1){h=b&-2;while(1){o=F[i>>2];k=c<<2;f=gi(j,m,F[k+d>>2],0)+e|0;o=oa(a,o+f|0,j);n=F[i>>2];f=gi(j,m,F[d+(k|4)>>2],0)+e|0;oa(o,n+f|0,j);c=c+2|0;g=g+2|0;if((h|0)!=(g|0)){continue}break}}if(!(b&1)){break n}f=F[i>>2];b=gi(j,m,F[d+(c<<2)>>2],0)+e|0;oa(a,f+b|0,j);break n}f=b&1;if((b|0)!=1){k=b&-2;c=0;b=0;while(1){o=F[i>>2];d=gi(h,g,j,m)+e|0;o=oa(a,o+d|0,j);n=F[i>>2];d=gi(j,m,h|1,g)+e|0;oa(o,n+d|0,j);d=h+2|0;g=d>>>0<2?g+1|0:g;h=d;d=b;b=c+2|0;d=b>>>0<2?d+1|0:d;c=b;b=d;if((k|0)!=(c|0)|b){continue}break}}if(!f){break n}c=F[i>>2];b=gi(h,g,j,m)+e|0;oa(a,c+b|0,j);break n}d=0;l=1;if(!k){while(1){if(!Ab(c,G[c+84|0]?d:F[F[c+68>>2]+(d<<2)>>2],D[c+24|0],a)){break n}d=d+1|0;l=b>>>0>d>>>0;if((b|0)!=(d|0)){continue}break n}}while(1){if(!Ab(c,G[c+84|0]?g:F[F[c+68>>2]+(g<<2)>>2],D[c+24|0],a)){break n}oa((d<<1)+f|0,a,n);d=d+k|0;g=g+1|0;l=b>>>0>g>>>0;if((b|0)!=(g|0)){continue}break}}g=!l;if(!a){break m}ma(a)}g=g&1}break a;case 5:k=G[c+24|0];n=k<<2;b=F[b+80>>2];o:{if((L(n,b)|0)!=(e|0)){break o}i=F[c+28>>2]!=6;d=G[c+84|0];if(!(i|!d)){oa(f,F[F[c>>2]>>2]+F[c+48>>2]|0,e);g=1;break o}a=0;if(k){a=na(n);pa(a,0,n)}p:{if(!b){break p}if(!i){q=F[c+68>>2];i=F[c>>2];e=F[c+48>>2];m=F[c+44>>2];j=F[c+40>>2];if(k){if(!d){c=0;d=0;while(1){h=F[i>>2];g=gi(j,m,F[q+(d<<2)>>2],0)+e|0;oa((c<<2)+f|0,oa(a,h+g|0,j),n);c=c+k|0;d=d+1|0;if((b|0)!=(d|0)){continue}break}break p}d=b;c=0;while(1){o=F[i>>2];b=gi(h,g,j,m)+e|0;oa((c<<2)+f|0,oa(a,o+b|0,j),n);c=c+k|0;b=g;g=h+1|0;b=g?b:b+1|0;h=g;g=b;if((d|0)!=(h|0)|b){continue}break}break p}if(!d){c=0;if((b|0)!=1){g=b&-2;d=0;while(1){k=F[i>>2];h=c<<2;f=gi(j,m,F[h+q>>2],0)+e|0;k=oa(a,k+f|0,j);o=F[i>>2];f=gi(j,m,F[q+(h|4)>>2],0)+e|0;oa(k,o+f|0,j);c=c+2|0;d=d+2|0;if((g|0)!=(d|0)){continue}break}}if(!(b&1)){break p}d=F[i>>2];b=gi(j,m,F[q+(c<<2)>>2],0)+e|0;oa(a,d+b|0,j);break p}f=b&1;if((b|0)!=1){k=b&-2;c=0;b=0;while(1){o=F[i>>2];d=gi(h,g,j,m)+e|0;o=oa(a,o+d|0,j);n=F[i>>2];d=gi(j,m,h|1,g)+e|0;oa(o,n+d|0,j);d=g;g=h+2|0;d=g>>>0<2?d+1|0:d;h=g;g=d;c=c+2|0;b=c>>>0<2?b+1|0:b;if((k|0)!=(c|0)|b){continue}break}}if(!f){break p}c=F[i>>2];b=gi(h,g,j,m)+e|0;oa(a,c+b|0,j);break p}l=1;if(!k){while(1){if(!yb(c,G[c+84|0]?g:F[F[c+68>>2]+(g<<2)>>2],D[c+24|0],a)){break p}g=g+1|0;l=b>>>0>g>>>0;if((b|0)!=(g|0)){continue}break p}}d=0;while(1){if(!yb(c,G[c+84|0]?d:F[F[c+68>>2]+(d<<2)>>2],D[c+24|0],a)){break p}oa((g<<2)+f|0,a,n);g=g+k|0;d=d+1|0;l=b>>>0>d>>>0;if((b|0)!=(d|0)){continue}break}}g=!l;if(!a){break o}ma(a)}g=g&1;break a;case 8:break b;default:break a}}a=0;n=G[c+24|0];q=n<<2;i=F[b+80>>2];q:{if((L(q,i)|0)!=(e|0)){break q}e=F[c+28>>2];b=0;r:{if(!n){break r}b=na(q);a=b;p=q-4|0;m=(p>>>2|0)+1&7;if(m){d=0;a=b;while(1){F[a>>2]=-1073741824;a=a+4|0;d=d+1|0;if((m|0)!=(d|0)){continue}break}}if(p>>>0<28){break r}d=(n<<2)+b|0;while(1){F[a+24>>2]=-1073741824;F[a+28>>2]=-1073741824;F[a+16>>2]=-1073741824;F[a+20>>2]=-1073741824;F[a+8>>2]=-1073741824;F[a+12>>2]=-1073741824;F[a>>2]=-1073741824;F[a+4>>2]=-1073741824;a=a+32|0;if((d|0)!=(a|0)){continue}break}}s:{if(!i){break s}if((e|0)==9){j=F[c+68>>2];m=F[c>>2];e=F[c+48>>2];s=G[c+84|0];p=F[c+44>>2];c=F[c+40>>2];k=c;if(n){d=0;a=0;while(1){h=F[m>>2];g=gi(c,p,s?a:F[j+(a<<2)>>2],0)+e|0;oa((d<<2)+f|0,oa(b,h+g|0,k),q);d=d+n|0;a=a+1|0;if((i|0)!=(a|0)){continue}break}break s}if(!s){a=0;if((i|0)!=1){g=i&-2;d=0;while(1){l=F[m>>2];h=a<<2;f=gi(c,p,F[h+j>>2],0)+e|0;l=oa(b,l+f|0,k);o=F[m>>2];f=gi(c,p,F[j+(h|4)>>2],0)+e|0;oa(l,o+f|0,k);a=a+2|0;d=d+2|0;if((g|0)!=(d|0)){continue}break}}if(!(i&1)){break s}d=F[m>>2];a=gi(c,p,F[j+(a<<2)>>2],0)+e|0;oa(b,d+a|0,k);break s}f=i&1;if((i|0)!=1){i=i&-2;while(1){d=F[m>>2];a=gi(h,g,c,p)+e|0;d=oa(b,d+a|0,k);j=F[m>>2];a=gi(c,p,h|1,g)+e|0;oa(d,j+a|0,k);a=h+2|0;g=a>>>0<2?g+1|0:g;h=a;d=l;a=o+2|0;d=a>>>0<2?d+1|0:d;o=a;l=d;if((i|0)!=(a|0)|d){continue}break}}if(!f){break s}d=F[m>>2];a=gi(h,g,c,p)+e|0;oa(b,d+a|0,k);break s}a=0;r=1;if(!n){while(1){if(!nb(c,G[c+84|0]?a:F[F[c+68>>2]+(a<<2)>>2],D[c+24|0],b)){break s}a=a+1|0;r=i>>>0>a>>>0;if((a|0)!=(i|0)){continue}break s}}d=0;while(1){if(!nb(c,G[c+84|0]?d:F[F[c+68>>2]+(d<<2)>>2],D[c+24|0],b)){break s}oa((a<<2)+f|0,b,q);a=a+n|0;d=d+1|0;r=i>>>0>d>>>0;if((d|0)!=(i|0)){continue}break}}a=!r;if(!b){break q}ma(b)}g=a&1}return g|0}function Jc(a){a=a|0;var b=0,c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0;l=aa-16|0;aa=l;a:{b:{c:{d:{e:{f:{g:{h:{i:{j:{k:{if(a>>>0<=244){e=F[2941];h=a>>>0<11?16:a+11&-8;c=h>>>3|0;b=e>>>c|0;if(b&3){c=c+((b^-1)&1)|0;a=c<<3;b=a+11804|0;d=F[a+11812>>2];a=F[d+8>>2];l:{if((b|0)==(a|0)){m=11764,n=ki(c)&e,F[m>>2]=n;break l}F[a+12>>2]=b;F[b+8>>2]=a}a=d+8|0;b=c<<3;F[d+4>>2]=b|3;b=b+d|0;F[b+4>>2]=F[b+4>>2]|1;break a}k=F[2943];if(k>>>0>=h>>>0){break k}if(b){a=2<>>12&16;c=a;b=b>>>a|0;a=b>>>5&8;c=c|a;b=b>>>a|0;a=b>>>2&4;c=c|a;b=b>>>a|0;a=b>>>1&2;c=c|a;b=b>>>a|0;a=b>>>1&1;d=(c|a)+(b>>>a|0)|0;a=d<<3;b=a+11804|0;g=F[a+11812>>2];a=F[g+8>>2];m:{if((b|0)==(a|0)){e=ki(d)&e;F[2941]=e;break m}F[a+12>>2]=b;F[b+8>>2]=a}F[g+4>>2]=h|3;c=g+h|0;a=d<<3;d=a-h|0;F[c+4>>2]=d|1;F[a+g>>2]=d;if(k){b=(k&-8)+11804|0;f=F[2946];a=1<<(k>>>3);n:{if(!(a&e)){F[2941]=a|e;a=b;break n}a=F[b+8>>2]}F[b+8>>2]=f;F[a+12>>2]=f;F[f+12>>2]=b;F[f+8>>2]=a}a=g+8|0;F[2946]=c;F[2943]=d;break a}j=F[2942];if(!j){break k}b=j-1&(j^-1);a=b>>>12&16;c=a;b=b>>>a|0;a=b>>>5&8;c=c|a;b=b>>>a|0;a=b>>>2&4;c=c|a;b=b>>>a|0;a=b>>>1&2;c=c|a;b=b>>>a|0;a=b>>>1&1;c=F[((c|a)+(b>>>a|0)<<2)+12068>>2];f=(F[c+4>>2]&-8)-h|0;b=c;while(1){o:{a=F[b+16>>2];if(!a){a=F[b+20>>2];if(!a){break o}}b=(F[a+4>>2]&-8)-h|0;d=b>>>0>>0;f=d?b:f;c=d?a:c;b=a;continue}break}i=F[c+24>>2];d=F[c+12>>2];if((d|0)!=(c|0)){a=F[c+8>>2];F[a+12>>2]=d;F[d+8>>2]=a;break b}b=c+20|0;a=F[b>>2];if(!a){a=F[c+16>>2];if(!a){break j}b=c+16|0}while(1){g=b;d=a;b=a+20|0;a=F[b>>2];if(a){continue}b=d+16|0;a=F[d+16>>2];if(a){continue}break}F[g>>2]=0;break b}h=-1;if(a>>>0>4294967231){break k}a=a+11|0;h=a&-8;j=F[2942];if(!j){break k}f=0-h|0;e=0;p:{if(h>>>0<256){break p}e=31;if(h>>>0>16777215){break p}a=a>>>8|0;g=a+1048320>>>16&8;a=a<>>16&4;a=a<>>16&2;a=(a<>>15|0)-(b|(c|g))|0;e=(a<<1|h>>>a+21&1)+28|0}b=F[(e<<2)+12068>>2];q:{r:{s:{if(!b){a=0;break s}a=0;c=h<<((e|0)!=31?25-(e>>>1|0)|0:0);while(1){t:{g=(F[b+4>>2]&-8)-h|0;if(g>>>0>=f>>>0){break t}d=b;f=g;if(f){break t}f=0;a=b;break r}g=F[b+20>>2];b=F[((c>>>29&4)+b|0)+16>>2];a=g?(g|0)==(b|0)?a:g:a;c=c<<1;if(b){continue}break}}if(!(a|d)){d=0;a=2<>>12&16;c=a;b=b>>>a|0;a=b>>>5&8;c=c|a;b=b>>>a|0;a=b>>>2&4;c=c|a;b=b>>>a|0;a=b>>>1&2;c=c|a;b=b>>>a|0;a=b>>>1&1;a=F[((c|a)+(b>>>a|0)<<2)+12068>>2]}if(!a){break q}}while(1){b=(F[a+4>>2]&-8)-h|0;c=b>>>0>>0;f=c?b:f;d=c?a:d;b=F[a+16>>2];if(b){a=b}else{a=F[a+20>>2]}if(a){continue}break}}if(!d|F[2943]-h>>>0<=f>>>0){break k}e=F[d+24>>2];c=F[d+12>>2];if((d|0)!=(c|0)){a=F[d+8>>2];F[a+12>>2]=c;F[c+8>>2]=a;break c}b=d+20|0;a=F[b>>2];if(!a){a=F[d+16>>2];if(!a){break i}b=d+16|0}while(1){g=b;c=a;b=a+20|0;a=F[b>>2];if(a){continue}b=c+16|0;a=F[c+16>>2];if(a){continue}break}F[g>>2]=0;break c}c=F[2943];if(c>>>0>=h>>>0){d=F[2946];b=c-h|0;u:{if(b>>>0>=16){F[2943]=b;a=d+h|0;F[2946]=a;F[a+4>>2]=b|1;F[c+d>>2]=b;F[d+4>>2]=h|3;break u}F[2946]=0;F[2943]=0;F[d+4>>2]=c|3;a=c+d|0;F[a+4>>2]=F[a+4>>2]|1}a=d+8|0;break a}i=F[2944];if(i>>>0>h>>>0){b=i-h|0;F[2944]=b;c=F[2947];a=c+h|0;F[2947]=a;F[a+4>>2]=b|1;F[c+4>>2]=h|3;a=c+8|0;break a}a=0;j=h+47|0;if(F[3059]){c=F[3061]}else{F[3062]=-1;F[3063]=-1;F[3060]=4096;F[3061]=4096;F[3059]=l+12&-16^1431655768;F[3064]=0;F[3052]=0;c=4096}g=j+c|0;f=0-c|0;b=g&f;if(b>>>0<=h>>>0){break a}d=F[3051];if(d){c=F[3049];e=c+b|0;if(d>>>0>>0|c>>>0>=e>>>0){break a}}if(G[12208]&4){break f}v:{w:{d=F[2947];if(d){a=12212;while(1){c=F[a>>2];if(c>>>0<=d>>>0&d>>>0>2]>>>0){break w}a=F[a+8>>2];if(a){continue}break}}c=Za(0);if((c|0)==-1){break g}e=b;d=F[3060];a=d-1|0;if(a&c){e=(b-c|0)+(a+c&0-d)|0}if(e>>>0<=h>>>0|e>>>0>2147483646){break g}d=F[3051];if(d){a=F[3049];f=a+e|0;if(d>>>0>>0|a>>>0>=f>>>0){break g}}a=Za(e);if((c|0)!=(a|0)){break v}break e}e=f&g-i;if(e>>>0>2147483646){break g}c=Za(e);if((c|0)==(F[a>>2]+F[a+4>>2]|0)){break h}a=c}if(!((a|0)==-1|h+48>>>0<=e>>>0)){c=F[3061];c=c+(j-e|0)&0-c;if(c>>>0>2147483646){c=a;break e}if((Za(c)|0)!=-1){e=c+e|0;c=a;break e}Za(0-e|0);break g}c=a;if((a|0)!=-1){break e}break g}d=0;break b}c=0;break c}if((c|0)!=-1){break e}}F[3052]=F[3052]|4}if(b>>>0>2147483646){break d}c=Za(b);a=Za(0);if((c|0)==-1|(a|0)==-1|a>>>0<=c>>>0){break d}e=a-c|0;if(e>>>0<=h+40>>>0){break d}}a=F[3049]+e|0;F[3049]=a;if(a>>>0>I[3050]){F[3050]=a}x:{y:{z:{g=F[2947];if(g){a=12212;while(1){d=F[a>>2];b=F[a+4>>2];if((d+b|0)==(c|0)){break z}a=F[a+8>>2];if(a){continue}break}break y}a=F[2945];if(!(a>>>0<=c>>>0?a:0)){F[2945]=c}a=0;F[3054]=e;F[3053]=c;F[2949]=-1;F[2950]=F[3059];F[3056]=0;while(1){d=a<<3;b=d+11804|0;F[d+11812>>2]=b;F[d+11816>>2]=b;a=a+1|0;if((a|0)!=32){continue}break}d=e-40|0;a=c+8&7?-8-c&7:0;b=d-a|0;F[2944]=b;a=a+c|0;F[2947]=a;F[a+4>>2]=b|1;F[(c+d|0)+4>>2]=40;F[2948]=F[3063];break x}if(G[a+12|0]&8|d>>>0>g>>>0|c>>>0<=g>>>0){break y}F[a+4>>2]=b+e;a=g+8&7?-8-g&7:0;c=a+g|0;F[2947]=c;b=F[2944]+e|0;a=b-a|0;F[2944]=a;F[c+4>>2]=a|1;F[(b+g|0)+4>>2]=40;F[2948]=F[3063];break x}if(I[2945]>c>>>0){F[2945]=c}b=c+e|0;a=12212;A:{B:{C:{D:{E:{F:{while(1){if((b|0)!=F[a>>2]){a=F[a+8>>2];if(a){continue}break F}break}if(!(G[a+12|0]&8)){break E}}a=12212;while(1){b=F[a>>2];if(b>>>0<=g>>>0){f=b+F[a+4>>2]|0;if(f>>>0>g>>>0){break D}}a=F[a+8>>2];continue}}F[a>>2]=c;F[a+4>>2]=F[a+4>>2]+e;j=(c+8&7?-8-c&7:0)+c|0;F[j+4>>2]=h|3;e=b+(b+8&7?-8-b&7:0)|0;i=h+j|0;a=e-i|0;if((e|0)==(g|0)){F[2947]=i;a=F[2944]+a|0;F[2944]=a;F[i+4>>2]=a|1;break B}if(F[2946]==(e|0)){F[2946]=i;a=F[2943]+a|0;F[2943]=a;F[i+4>>2]=a|1;F[a+i>>2]=a;break B}f=F[e+4>>2];if((f&3)==1){g=f&-8;G:{if(f>>>0<=255){d=F[e+8>>2];b=f>>>3|0;c=F[e+12>>2];if((c|0)==(d|0)){m=11764,n=F[2941]&ki(b),F[m>>2]=n;break G}F[d+12>>2]=c;F[c+8>>2]=d;break G}h=F[e+24>>2];c=F[e+12>>2];H:{if((e|0)!=(c|0)){b=F[e+8>>2];F[b+12>>2]=c;F[c+8>>2]=b;break H}I:{f=e+20|0;b=F[f>>2];if(b){break I}f=e+16|0;b=F[f>>2];if(b){break I}c=0;break H}while(1){d=f;c=b;f=b+20|0;b=F[f>>2];if(b){continue}f=c+16|0;b=F[c+16>>2];if(b){continue}break}F[d>>2]=0}if(!h){break G}d=F[e+28>>2];b=(d<<2)+12068|0;J:{if(F[b>>2]==(e|0)){F[b>>2]=c;if(c){break J}m=11768,n=F[2942]&ki(d),F[m>>2]=n;break G}F[h+(F[h+16>>2]==(e|0)?16:20)>>2]=c;if(!c){break G}}F[c+24>>2]=h;b=F[e+16>>2];if(b){F[c+16>>2]=b;F[b+24>>2]=c}b=F[e+20>>2];if(!b){break G}F[c+20>>2]=b;F[b+24>>2]=c}e=e+g|0;f=F[e+4>>2];a=a+g|0}F[e+4>>2]=f&-2;F[i+4>>2]=a|1;F[a+i>>2]=a;if(a>>>0<=255){b=(a&-8)+11804|0;c=F[2941];a=1<<(a>>>3);K:{if(!(c&a)){F[2941]=a|c;a=b;break K}a=F[b+8>>2]}F[b+8>>2]=i;F[a+12>>2]=i;F[i+12>>2]=b;F[i+8>>2]=a;break B}f=31;if(a>>>0<=16777215){b=a>>>8|0;f=b+1048320>>>16&8;b=b<>>16&4;b=b<>>16&2;b=(b<>>15|0)-(c|(d|f))|0;f=(b<<1|a>>>b+21&1)+28|0}F[i+28>>2]=f;F[i+16>>2]=0;F[i+20>>2]=0;b=(f<<2)+12068|0;d=F[2942];c=1<>2]=i;break L}f=a<<((f|0)!=31?25-(f>>>1|0)|0:0);c=F[b>>2];while(1){b=c;if((F[b+4>>2]&-8)==(a|0)){break C}c=f>>>29|0;f=f<<1;d=(c&4)+b|0;c=F[d+16>>2];if(c){continue}break}F[d+16>>2]=i}F[i+24>>2]=b;F[i+12>>2]=i;F[i+8>>2]=i;break B}d=e-40|0;a=c+8&7?-8-c&7:0;b=d-a|0;F[2944]=b;a=a+c|0;F[2947]=a;F[a+4>>2]=b|1;F[(c+d|0)+4>>2]=40;F[2948]=F[3063];a=(f+(f-39&7?39-f&7:0)|0)-47|0;d=a>>>0>>0?g:a;F[d+4>>2]=27;a=F[3056];F[d+16>>2]=F[3055];F[d+20>>2]=a;a=F[3054];F[d+8>>2]=F[3053];F[d+12>>2]=a;F[3055]=d+8;F[3054]=e;F[3053]=c;F[3056]=0;a=d+24|0;while(1){F[a+4>>2]=7;b=a+8|0;a=a+4|0;if(b>>>0>>0){continue}break}if((d|0)==(g|0)){break x}F[d+4>>2]=F[d+4>>2]&-2;f=d-g|0;F[g+4>>2]=f|1;F[d>>2]=f;if(f>>>0<=255){b=(f&-8)+11804|0;c=F[2941];a=1<<(f>>>3);M:{if(!(c&a)){F[2941]=a|c;a=b;break M}a=F[b+8>>2]}F[b+8>>2]=g;F[a+12>>2]=g;F[g+12>>2]=b;F[g+8>>2]=a;break x}a=31;if(f>>>0<=16777215){a=f>>>8|0;d=a+1048320>>>16&8;a=a<>>16&4;a=a<>>16&2;a=(a<>>15|0)-(b|(c|d))|0;a=(a<<1|f>>>a+21&1)+28|0}F[g+28>>2]=a;F[g+16>>2]=0;F[g+20>>2]=0;b=(a<<2)+12068|0;d=F[2942];c=1<>2]=g;break N}a=f<<((a|0)!=31?25-(a>>>1|0)|0:0);d=F[b>>2];while(1){b=d;if((f|0)==(F[b+4>>2]&-8)){break A}c=a>>>29|0;a=a<<1;c=(c&4)+b|0;d=F[c+16>>2];if(d){continue}break}F[c+16>>2]=g}F[g+24>>2]=b;F[g+12>>2]=g;F[g+8>>2]=g;break x}a=F[b+8>>2];F[a+12>>2]=i;F[b+8>>2]=i;F[i+24>>2]=0;F[i+12>>2]=b;F[i+8>>2]=a}a=j+8|0;break a}a=F[b+8>>2];F[a+12>>2]=g;F[b+8>>2]=g;F[g+24>>2]=0;F[g+12>>2]=b;F[g+8>>2]=a}a=F[2944];if(a>>>0<=h>>>0){break d}b=a-h|0;F[2944]=b;c=F[2947];a=c+h|0;F[2947]=a;F[a+4>>2]=b|1;F[c+4>>2]=h|3;a=c+8|0;break a}F[2940]=48;a=0;break a}O:{if(!e){break O}b=F[d+28>>2];a=(b<<2)+12068|0;P:{if(F[a>>2]==(d|0)){F[a>>2]=c;if(c){break P}j=ki(b)&j;F[2942]=j;break O}F[e+(F[e+16>>2]==(d|0)?16:20)>>2]=c;if(!c){break O}}F[c+24>>2]=e;a=F[d+16>>2];if(a){F[c+16>>2]=a;F[a+24>>2]=c}a=F[d+20>>2];if(!a){break O}F[c+20>>2]=a;F[a+24>>2]=c}Q:{if(f>>>0<=15){a=f+h|0;F[d+4>>2]=a|3;a=a+d|0;F[a+4>>2]=F[a+4>>2]|1;break Q}F[d+4>>2]=h|3;e=d+h|0;F[e+4>>2]=f|1;F[e+f>>2]=f;if(f>>>0<=255){b=(f&-8)+11804|0;c=F[2941];a=1<<(f>>>3);R:{if(!(c&a)){F[2941]=a|c;a=b;break R}a=F[b+8>>2]}F[b+8>>2]=e;F[a+12>>2]=e;F[e+12>>2]=b;F[e+8>>2]=a;break Q}a=31;if(f>>>0<=16777215){a=f>>>8|0;g=a+1048320>>>16&8;a=a<>>16&4;a=a<>>16&2;a=(a<>>15|0)-(b|(c|g))|0;a=(a<<1|f>>>a+21&1)+28|0}F[e+28>>2]=a;F[e+16>>2]=0;F[e+20>>2]=0;b=(a<<2)+12068|0;S:{c=1<>2]=e;break T}a=f<<((a|0)!=31?25-(a>>>1|0)|0:0);h=F[b>>2];while(1){b=h;if((F[b+4>>2]&-8)==(f|0)){break S}c=a>>>29|0;a=a<<1;c=(c&4)+b|0;h=F[c+16>>2];if(h){continue}break}F[c+16>>2]=e}F[e+24>>2]=b;F[e+12>>2]=e;F[e+8>>2]=e;break Q}a=F[b+8>>2];F[a+12>>2]=e;F[b+8>>2]=e;F[e+24>>2]=0;F[e+12>>2]=b;F[e+8>>2]=a}a=d+8|0;break a}U:{if(!i){break U}b=F[c+28>>2];a=(b<<2)+12068|0;V:{if(F[a>>2]==(c|0)){F[a>>2]=d;if(d){break V}m=11768,n=ki(b)&j,F[m>>2]=n;break U}F[i+(F[i+16>>2]==(c|0)?16:20)>>2]=d;if(!d){break U}}F[d+24>>2]=i;a=F[c+16>>2];if(a){F[d+16>>2]=a;F[a+24>>2]=d}a=F[c+20>>2];if(!a){break U}F[d+20>>2]=a;F[a+24>>2]=d}W:{if(f>>>0<=15){a=f+h|0;F[c+4>>2]=a|3;a=a+c|0;F[a+4>>2]=F[a+4>>2]|1;break W}F[c+4>>2]=h|3;d=c+h|0;F[d+4>>2]=f|1;F[d+f>>2]=f;if(k){b=(k&-8)+11804|0;g=F[2946];a=1<<(k>>>3);X:{if(!(a&e)){F[2941]=a|e;a=b;break X}a=F[b+8>>2]}F[b+8>>2]=g;F[a+12>>2]=g;F[g+12>>2]=b;F[g+8>>2]=a}F[2946]=d;F[2943]=f}a=c+8|0}aa=l+16|0;return a|0}function Nd(a,b,c,d){var e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0;h=aa-80|0;aa=h;e=F[c+36>>2];F[h+72>>2]=F[c+32>>2];F[h+76>>2]=e;f=F[c+28>>2];e=h- -64|0;F[e>>2]=F[c+24>>2];F[e+4>>2]=f;e=F[c+20>>2];F[h+56>>2]=F[c+16>>2];F[h+60>>2]=e;e=F[c+12>>2];F[h+48>>2]=F[c+8>>2];F[h+52>>2]=e;e=F[c+4>>2];F[h+40>>2]=F[c>>2];F[h+44>>2]=e;hc(a,h+40|0,h+24|0);a:{if(F[a>>2]){break a}if(D[a+15|0]<0){ma(F[a+4>>2])}if(G[h+31|0]!=1){b=na(32);D[b+20|0]=0;c=G[1446]|G[1447]<<8|(G[1448]<<16|G[1449]<<24);D[b+16|0]=c;D[b+17|0]=c>>>8;D[b+18|0]=c>>>16;D[b+19|0]=c>>>24;c=G[1442]|G[1443]<<8|(G[1444]<<16|G[1445]<<24);d=G[1438]|G[1439]<<8|(G[1440]<<16|G[1441]<<24);D[b+8|0]=d;D[b+9|0]=d>>>8;D[b+10|0]=d>>>16;D[b+11|0]=d>>>24;D[b+12|0]=c;D[b+13|0]=c>>>8;D[b+14|0]=c>>>16;D[b+15|0]=c>>>24;c=G[1434]|G[1435]<<8|(G[1436]<<16|G[1437]<<24);d=G[1430]|G[1431]<<8|(G[1432]<<16|G[1433]<<24);D[b|0]=d;D[b+1|0]=d>>>8;D[b+2|0]=d>>>16;D[b+3|0]=d>>>24;D[b+4|0]=c;D[b+5|0]=c>>>8;D[b+6|0]=c>>>16;D[b+7|0]=c>>>24;F[a>>2]=-1;ta(a+4|0,b,20);ma(b);break a}j=aa-16|0;aa=j;b:{c:{switch(G[h+32|0]){case 0:e=Id(na(48));F[e>>2]=9864;F[h+8>>2]=0;F[h+12>>2]=0;F[h>>2]=0;F[h+4>>2]=0;F[h+16>>2]=e;break b;case 1:e=Id(na(52));F[e+48>>2]=0;F[e>>2]=8176;F[h+8>>2]=0;F[h+12>>2]=0;F[h>>2]=0;F[h+4>>2]=0;F[h+16>>2]=e;break b;default:break c}}f=na(32);D[f+28|0]=0;e=G[1520]|G[1521]<<8|(G[1522]<<16|G[1523]<<24);D[f+24|0]=e;D[f+25|0]=e>>>8;D[f+26|0]=e>>>16;D[f+27|0]=e>>>24;e=G[1516]|G[1517]<<8|(G[1518]<<16|G[1519]<<24);g=G[1512]|G[1513]<<8|(G[1514]<<16|G[1515]<<24);D[f+16|0]=g;D[f+17|0]=g>>>8;D[f+18|0]=g>>>16;D[f+19|0]=g>>>24;D[f+20|0]=e;D[f+21|0]=e>>>8;D[f+22|0]=e>>>16;D[f+23|0]=e>>>24;e=G[1508]|G[1509]<<8|(G[1510]<<16|G[1511]<<24);g=G[1504]|G[1505]<<8|(G[1506]<<16|G[1507]<<24);D[f+8|0]=g;D[f+9|0]=g>>>8;D[f+10|0]=g>>>16;D[f+11|0]=g>>>24;D[f+12|0]=e;D[f+13|0]=e>>>8;D[f+14|0]=e>>>16;D[f+15|0]=e>>>24;e=G[1500]|G[1501]<<8|(G[1502]<<16|G[1503]<<24);g=G[1496]|G[1497]<<8|(G[1498]<<16|G[1499]<<24);D[f|0]=g;D[f+1|0]=g>>>8;D[f+2|0]=g>>>16;D[f+3|0]=g>>>24;D[f+4|0]=e;D[f+5|0]=e>>>8;D[f+6|0]=e>>>16;D[f+7|0]=e>>>24;F[j>>2]=-1;e=j|4;ta(e,f,28);k=D[j+15|0];F[h>>2]=F[j>>2];g=h+4|0;d:{if((k|0)>=0){k=F[e+4>>2];F[g>>2]=F[e>>2];F[g+4>>2]=k;F[g+8>>2]=F[e+8>>2];F[h+16>>2]=0;break d}ta(g,F[j+4>>2],F[j+8>>2]);e=D[j+15|0];F[h+16>>2]=0;if((e|0)>=0){break d}ma(F[j+4>>2])}ma(f)}aa=j+16|0;e=F[h>>2];e:{if(e){F[a>>2]=e;a=a+4|0;if(D[h+15|0]>=0){b=h|4;c=F[b+4>>2];F[a>>2]=F[b>>2];F[a+4>>2]=c;F[a+8>>2]=F[b+8>>2];break e}ta(a,F[h+4>>2],F[h+8>>2]);break e}e=F[h+16>>2];F[h+16>>2]=0;F[e+44>>2]=d;f=aa-32|0;aa=f;F[e+32>>2]=c;F[e+40>>2]=b;F[e+4>>2]=d;hc(a,c,f+16|0);f:{if(F[a>>2]){break f}if(D[a+15|0]<0){ma(F[a+4>>2])}b=G[f+23|0];if((ca[F[F[e>>2]+8>>2]](e)|0)!=(b|0)){b=na(64);D[b+50|0]=0;c=G[1304]|G[1305]<<8;D[b+48|0]=c;D[b+49|0]=c>>>8;c=G[1300]|G[1301]<<8|(G[1302]<<16|G[1303]<<24);d=G[1296]|G[1297]<<8|(G[1298]<<16|G[1299]<<24);D[b+40|0]=d;D[b+41|0]=d>>>8;D[b+42|0]=d>>>16;D[b+43|0]=d>>>24;D[b+44|0]=c;D[b+45|0]=c>>>8;D[b+46|0]=c>>>16;D[b+47|0]=c>>>24;c=G[1292]|G[1293]<<8|(G[1294]<<16|G[1295]<<24);d=G[1288]|G[1289]<<8|(G[1290]<<16|G[1291]<<24);D[b+32|0]=d;D[b+33|0]=d>>>8;D[b+34|0]=d>>>16;D[b+35|0]=d>>>24;D[b+36|0]=c;D[b+37|0]=c>>>8;D[b+38|0]=c>>>16;D[b+39|0]=c>>>24;c=G[1284]|G[1285]<<8|(G[1286]<<16|G[1287]<<24);d=G[1280]|G[1281]<<8|(G[1282]<<16|G[1283]<<24);D[b+24|0]=d;D[b+25|0]=d>>>8;D[b+26|0]=d>>>16;D[b+27|0]=d>>>24;D[b+28|0]=c;D[b+29|0]=c>>>8;D[b+30|0]=c>>>16;D[b+31|0]=c>>>24;c=G[1276]|G[1277]<<8|(G[1278]<<16|G[1279]<<24);d=G[1272]|G[1273]<<8|(G[1274]<<16|G[1275]<<24);D[b+16|0]=d;D[b+17|0]=d>>>8;D[b+18|0]=d>>>16;D[b+19|0]=d>>>24;D[b+20|0]=c;D[b+21|0]=c>>>8;D[b+22|0]=c>>>16;D[b+23|0]=c>>>24;c=G[1268]|G[1269]<<8|(G[1270]<<16|G[1271]<<24);d=G[1264]|G[1265]<<8|(G[1266]<<16|G[1267]<<24);D[b+8|0]=d;D[b+9|0]=d>>>8;D[b+10|0]=d>>>16;D[b+11|0]=d>>>24;D[b+12|0]=c;D[b+13|0]=c>>>8;D[b+14|0]=c>>>16;D[b+15|0]=c>>>24;c=G[1260]|G[1261]<<8|(G[1262]<<16|G[1263]<<24);d=G[1256]|G[1257]<<8|(G[1258]<<16|G[1259]<<24);D[b|0]=d;D[b+1|0]=d>>>8;D[b+2|0]=d>>>16;D[b+3|0]=d>>>24;D[b+4|0]=c;D[b+5|0]=c>>>8;D[b+6|0]=c>>>16;D[b+7|0]=c>>>24;F[a>>2]=-1;ta(a+4|0,b,50);ma(b);break f}c=G[f+21|0];D[e+36|0]=c;d=G[f+22|0];D[e+37|0]=d;if((c|0)!=2){b=na(32);D[b+26|0]=0;c=G[1427]|G[1428]<<8;D[b+24|0]=c;D[b+25|0]=c>>>8;c=G[1423]|G[1424]<<8|(G[1425]<<16|G[1426]<<24);d=G[1419]|G[1420]<<8|(G[1421]<<16|G[1422]<<24);D[b+16|0]=d;D[b+17|0]=d>>>8;D[b+18|0]=d>>>16;D[b+19|0]=d>>>24;D[b+20|0]=c;D[b+21|0]=c>>>8;D[b+22|0]=c>>>16;D[b+23|0]=c>>>24;c=G[1415]|G[1416]<<8|(G[1417]<<16|G[1418]<<24);d=G[1411]|G[1412]<<8|(G[1413]<<16|G[1414]<<24);D[b+8|0]=d;D[b+9|0]=d>>>8;D[b+10|0]=d>>>16;D[b+11|0]=d>>>24;D[b+12|0]=c;D[b+13|0]=c>>>8;D[b+14|0]=c>>>16;D[b+15|0]=c>>>24;c=G[1407]|G[1408]<<8|(G[1409]<<16|G[1410]<<24);d=G[1403]|G[1404]<<8|(G[1405]<<16|G[1406]<<24);D[b|0]=d;D[b+1|0]=d>>>8;D[b+2|0]=d>>>16;D[b+3|0]=d>>>24;D[b+4|0]=c;D[b+5|0]=c>>>8;D[b+6|0]=c>>>16;D[b+7|0]=c>>>24;F[a>>2]=-5;ta(a+4|0,b,26);ma(b);break f}b=b?2:3;if((b|0)!=(d|0)){b=na(32);D[b+26|0]=0;c=G[1400]|G[1401]<<8;D[b+24|0]=c;D[b+25|0]=c>>>8;c=G[1396]|G[1397]<<8|(G[1398]<<16|G[1399]<<24);d=G[1392]|G[1393]<<8|(G[1394]<<16|G[1395]<<24);D[b+16|0]=d;D[b+17|0]=d>>>8;D[b+18|0]=d>>>16;D[b+19|0]=d>>>24;D[b+20|0]=c;D[b+21|0]=c>>>8;D[b+22|0]=c>>>16;D[b+23|0]=c>>>24;c=G[1388]|G[1389]<<8|(G[1390]<<16|G[1391]<<24);d=G[1384]|G[1385]<<8|(G[1386]<<16|G[1387]<<24);D[b+8|0]=d;D[b+9|0]=d>>>8;D[b+10|0]=d>>>16;D[b+11|0]=d>>>24;D[b+12|0]=c;D[b+13|0]=c>>>8;D[b+14|0]=c>>>16;D[b+15|0]=c>>>24;c=G[1380]|G[1381]<<8|(G[1382]<<16|G[1383]<<24);d=G[1376]|G[1377]<<8|(G[1378]<<16|G[1379]<<24);D[b|0]=d;D[b+1|0]=d>>>8;D[b+2|0]=d>>>16;D[b+3|0]=d>>>24;D[b+4|0]=c;D[b+5|0]=c>>>8;D[b+6|0]=c>>>16;D[b+7|0]=c>>>24;F[a>>2]=-5;ta(a+4|0,b,26);ma(b);break f}E[F[e+32>>2]+38>>1]=b|512;g:{if(E[f+26>>1]>=0){break g}j=aa-16|0;aa=j;d=na(36);b=d;F[b+4>>2]=0;F[b+8>>2]=0;F[b+24>>2]=0;F[b+28>>2]=0;b=b+16|0;F[b>>2]=0;F[b+4>>2]=0;F[d>>2]=d+4;F[d+32>>2]=0;F[d+12>>2]=b;F[j>>2]=0;c=F[e+32>>2];k=aa-16|0;aa=k;b=0;h:{if(!d){break h}F[j>>2]=c;F[k+12>>2]=0;b=0;if(!hb(1,k+12|0,c)){break h}n=F[k+12>>2];if(n){while(1){i:{if(hb(1,k+8|0,F[j>>2])){b=na(28);F[b+4>>2]=0;F[b+8>>2]=0;c=b+16|0;F[c>>2]=0;F[c+4>>2]=0;F[b>>2]=b+4;F[b+12>>2]=c;F[b+24>>2]=F[k+8>>2];if(Uc(j,b)){break i}Fa(b+12|0,F[b+16>>2]);Ea(b,F[b+4>>2]);ma(b)}b=0;break h}g=aa-16|0;aa=g;F[g+8>>2]=b;j:{if(!b){break j}c=F[d+28>>2];k:{if(c>>>0>2]){F[g+8>>2]=0;F[c>>2]=b;F[d+28>>2]=c+4;break k}c=0;l:{m:{n:{i=F[d+24>>2];m=F[d+28>>2]-i>>2;b=m+1|0;if(b>>>0<1073741824){i=F[d+32>>2]-i|0;l=i>>1;b=i>>>0>=2147483644?1073741823:b>>>0>>0?l:b;if(b){if(b>>>0>=1073741824){break n}c=na(b<<2)}l=F[g+8>>2];F[g+8>>2]=0;i=(m<<2)+c|0;F[i>>2]=l;m=(b<<2)+c|0;l=i+4|0;c=F[d+28>>2];b=F[d+24>>2];if((c|0)==(b|0)){break m}while(1){c=c-4|0;p=F[c>>2];F[c>>2]=0;i=i-4|0;F[i>>2]=p;if((b|0)!=(c|0)){continue}break}F[d+32>>2]=m;c=F[d+28>>2];F[d+28>>2]=l;b=F[d+24>>2];F[d+24>>2]=i;if((b|0)==(c|0)){break l}while(1){c=c-4|0;i=F[c>>2];F[c>>2]=0;if(i){Fa(i+12|0,F[i+16>>2]);Ea(i,F[i+4>>2]);ma(i)}if((b|0)!=(c|0)){continue}break}break l}qa();v()}sa();v()}F[d+32>>2]=m;F[d+28>>2]=l;F[d+24>>2]=i}if(b){ma(b)}}b=F[g+8>>2];F[g+8>>2]=0;if(!b){break j}Fa(b+12|0,F[b+16>>2]);Ea(b,F[b+4>>2]);ma(b)}aa=g+16|0;o=o+1|0;if((n|0)!=(o|0)){continue}break}}b=Uc(j,d)}aa=k+16|0;o:{if(b){c=F[e+4>>2];b=F[c+4>>2];F[c+4>>2]=d;if(b){gc(b)}F[a>>2]=0;F[a+4>>2]=0;F[a+8>>2]=0;F[a+12>>2]=0;break o}b=na(32);D[b+26|0]=0;c=G[1549]|G[1550]<<8;D[b+24|0]=c;D[b+25|0]=c>>>8;c=G[1545]|G[1546]<<8|(G[1547]<<16|G[1548]<<24);g=G[1541]|G[1542]<<8|(G[1543]<<16|G[1544]<<24);D[b+16|0]=g;D[b+17|0]=g>>>8;D[b+18|0]=g>>>16;D[b+19|0]=g>>>24;D[b+20|0]=c;D[b+21|0]=c>>>8;D[b+22|0]=c>>>16;D[b+23|0]=c>>>24;c=G[1537]|G[1538]<<8|(G[1539]<<16|G[1540]<<24);g=G[1533]|G[1534]<<8|(G[1535]<<16|G[1536]<<24);D[b+8|0]=g;D[b+9|0]=g>>>8;D[b+10|0]=g>>>16;D[b+11|0]=g>>>24;D[b+12|0]=c;D[b+13|0]=c>>>8;D[b+14|0]=c>>>16;D[b+15|0]=c>>>24;c=G[1529]|G[1530]<<8|(G[1531]<<16|G[1532]<<24);g=G[1525]|G[1526]<<8|(G[1527]<<16|G[1528]<<24);D[b|0]=g;D[b+1|0]=g>>>8;D[b+2|0]=g>>>16;D[b+3|0]=g>>>24;D[b+4|0]=c;D[b+5|0]=c>>>8;D[b+6|0]=c>>>16;D[b+7|0]=c>>>24;F[a>>2]=-1;ta(a+4|0,b,26);ma(b);F[j+8>>2]=0;gc(d)}aa=j+16|0;if(F[a>>2]){break f}if(D[a+15|0]>=0){break g}ma(F[a+4>>2])}if(!(ca[F[F[e>>2]+12>>2]](e)|0)){b=na(48);D[b+33|0]=0;D[b+32|0]=G[1374];c=G[1370]|G[1371]<<8|(G[1372]<<16|G[1373]<<24);d=G[1366]|G[1367]<<8|(G[1368]<<16|G[1369]<<24);D[b+24|0]=d;D[b+25|0]=d>>>8;D[b+26|0]=d>>>16;D[b+27|0]=d>>>24;D[b+28|0]=c;D[b+29|0]=c>>>8;D[b+30|0]=c>>>16;D[b+31|0]=c>>>24;c=G[1362]|G[1363]<<8|(G[1364]<<16|G[1365]<<24);d=G[1358]|G[1359]<<8|(G[1360]<<16|G[1361]<<24);D[b+16|0]=d;D[b+17|0]=d>>>8;D[b+18|0]=d>>>16;D[b+19|0]=d>>>24;D[b+20|0]=c;D[b+21|0]=c>>>8;D[b+22|0]=c>>>16;D[b+23|0]=c>>>24;c=G[1354]|G[1355]<<8|(G[1356]<<16|G[1357]<<24);d=G[1350]|G[1351]<<8|(G[1352]<<16|G[1353]<<24);D[b+8|0]=d;D[b+9|0]=d>>>8;D[b+10|0]=d>>>16;D[b+11|0]=d>>>24;D[b+12|0]=c;D[b+13|0]=c>>>8;D[b+14|0]=c>>>16;D[b+15|0]=c>>>24;c=G[1346]|G[1347]<<8|(G[1348]<<16|G[1349]<<24);d=G[1342]|G[1343]<<8|(G[1344]<<16|G[1345]<<24);D[b|0]=d;D[b+1|0]=d>>>8;D[b+2|0]=d>>>16;D[b+3|0]=d>>>24;D[b+4|0]=c;D[b+5|0]=c>>>8;D[b+6|0]=c>>>16;D[b+7|0]=c>>>24;F[a>>2]=-1;ta(a+4|0,b,33);ma(b);break f}if(!(ca[F[F[e>>2]+20>>2]](e)|0)){b=Fb(f,1552);F[a>>2]=-1;c=a+4|0;if(D[b+11|0]>=0){d=F[b+4>>2];F[c>>2]=F[b>>2];F[c+4>>2]=d;F[c+8>>2]=F[b+8>>2];break f}ta(c,F[b>>2],F[b+4>>2]);if(D[b+11|0]>=0){break f}ma(F[b>>2]);break f}if(!(ca[F[F[e>>2]+24>>2]](e)|0)){b=Fb(f,1307);F[a>>2]=-1;c=a+4|0;if(D[b+11|0]>=0){d=F[b+4>>2];F[c>>2]=F[b>>2];F[c+4>>2]=d;F[c+8>>2]=F[b+8>>2];break f}ta(c,F[b>>2],F[b+4>>2]);if(D[b+11|0]>=0){break f}ma(F[b>>2]);break f}F[a>>2]=0;F[a+4>>2]=0;F[a+8>>2]=0;F[a+12>>2]=0}aa=f+32|0;if(!F[a>>2]){if(D[a+15|0]<0){ma(F[a+4>>2])}F[a>>2]=0;F[a+4>>2]=0;F[a+8>>2]=0;F[a+12>>2]=0}ca[F[F[e>>2]+4>>2]](e)}a=F[h+16>>2];F[h+16>>2]=0;if(a){ca[F[F[a>>2]+4>>2]](a)}if(D[h+15|0]>=0){break a}ma(F[h+4>>2])}aa=h+80|0}function Uc(a,b){var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,w=0,x=0,y=0,z=0,A=0;n=aa-32|0;aa=n;o=na(12);F[o+8>>2]=0;F[o+4>>2]=b;F[o>>2]=0;t=o+12|0;b=t;a:{b:{c:{d:{while(1){b=b-12|0;w=F[b+8>>2];j=F[b+4>>2];u=F[b>>2];if(u){q=0;if((w|0)>1e3){break a}F[n+24>>2]=0;F[n+16>>2]=0;F[n+20>>2]=0;f=1;c=F[a>>2];d=F[c+8>>2];g=F[c+12>>2];e=F[c+20>>2];l=d;d=F[c+16>>2];e:{if((g|0)<=(e|0)&l>>>0<=d>>>0|(e|0)>(g|0)){break e}g=G[d+F[c>>2]|0];d=d+1|0;e=d?e:e+1|0;F[c+16>>2]=d;F[c+20>>2]=e;Sb(n+16|0,g);if(g){d=F[a>>2];m=Tb(n+16|0);e=F[d+20>>2];i=F[d+16>>2];c=g;l=i+c|0;h=F[d+12>>2];e=c>>>0>l>>>0?e+1|0:e;if(l>>>0>I[d+8>>2]&(h|0)<=(e|0)|(e|0)>(h|0)){break e}oa(m,i+F[d>>2]|0,g);e=F[d+20>>2];f=c+F[d+16>>2]|0;e=f>>>0>>0?e+1|0:e;F[d+16>>2]=f;F[d+20>>2]=e}j=na(24);c=j;F[c+4>>2]=0;F[c+8>>2]=0;c=c+16|0;F[c>>2]=0;F[c+4>>2]=0;F[j>>2]=j+4;F[j+12>>2]=c;e=aa-32|0;aa=e;g=u+12|0;c=n+16|0;p=ab(g,c);k=u+16|0;f:{if((p|0)==(k|0)){F[e+16>>2]=c;g:{h:{d=F[g+4>>2];i:{if(!d){f=g+4|0;c=f;break i}f=G[c+11|0];h=f<<24>>24<0;l=h?F[c>>2]:c;h=h?F[c+4>>2]:f;while(1){c=d;d=G[c+27|0];f=d<<24>>24<0;d=f?F[c+20>>2]:d;m=d>>>0>>0;j:{k:{l:{m:{i=m?d:h;n:{if(i){f=f?F[c+16>>2]:c+16|0;r=ua(l,f,i);if(!r){if(d>>>0>h>>>0){break n}break m}if((r|0)>=0){break m}break n}if(d>>>0<=h>>>0){break l}}f=c;d=F[c>>2];if(d){continue}break i}d=ua(f,l,i);if(d){break k}}if(m){break j}break h}if((d|0)>=0){break h}}d=F[c+4>>2];if(d){continue}break}f=c+4|0}d=na(32);l=d+16|0;h=F[e+16>>2];o:{if(D[h+11|0]>=0){m=F[h+4>>2];F[l>>2]=F[h>>2];F[l+4>>2]=m;F[l+8>>2]=F[h+8>>2];break o}ta(l,F[h>>2],F[h+4>>2])}F[d+8>>2]=c;F[d>>2]=0;F[d+4>>2]=0;F[d+28>>2]=0;F[f>>2]=d;c=d;h=F[F[g>>2]>>2];if(h){F[g>>2]=h;c=F[f>>2]}pb(F[g+4>>2],c);F[g+8>>2]=F[g+8>>2]+1;c=1;break g}d=c;c=0}D[e+28|0]=c;F[e+24>>2]=d;d=F[e+24>>2];c=F[d+28>>2];F[d+28>>2]=j;if(!c){break f}Fa(c+12|0,F[c+16>>2]);Ea(c,F[c+4>>2]);ma(c);break f}if(!j){break f}Fa(j+12|0,F[j+16>>2]);Ea(j,F[j+4>>2]);ma(j)}aa=e+32|0;f=(k|0)!=(p|0)}if(D[n+27|0]<0){ma(F[n+16>>2])}if(f){break a}}q=0;if(!j){break a}F[n+16>>2]=0;if(!hb(1,n+16|0,F[a>>2])){break a}p=0;x=F[n+16>>2];if(x){while(1){c=0;i=aa-32|0;aa=i;F[i+24>>2]=0;F[i+16>>2]=0;F[i+20>>2]=0;d=F[a>>2];f=F[d+8>>2];p:{q:{g=F[d+12>>2];e=F[d+20>>2];l=f;f=F[d+16>>2];r:{if((g|0)<=(e|0)&l>>>0<=f>>>0|(e|0)>(g|0)){break r}g=G[f+F[d>>2]|0];f=f+1|0;e=f?e:e+1|0;F[d+16>>2]=f;F[d+20>>2]=e;Sb(i+16|0,g);if(g){f=F[a>>2];m=Tb(i+16|0);e=F[f+20>>2];k=F[f+16>>2];d=g;l=k+d|0;h=F[f+12>>2];e=d>>>0>l>>>0?e+1|0:e;if(l>>>0>I[f+8>>2]&(h|0)<=(e|0)|(e|0)>(h|0)){break r}oa(m,k+F[f>>2]|0,g);e=F[f+20>>2];g=d+F[f+16>>2]|0;e=g>>>0>>0?e+1|0:e;F[f+16>>2]=g;F[f+20>>2]=e}F[i+12>>2]=0;if(!hb(1,i+12|0,F[a>>2])){break r}d=F[i+12>>2];if(!d){break r}f=F[a>>2];e=F[f+8>>2];g=F[f+16>>2];h=e-g|0;e=F[f+12>>2]-(F[f+20>>2]+(e>>>0>>0)|0)|0;if((e|0)<=0&d>>>0>h>>>0|(e|0)<0){break r}F[i+8>>2]=0;F[i>>2]=0;F[i+4>>2]=0;if((d|0)<0){break q}c=na(d);F[i>>2]=c;e=c+d|0;F[i+8>>2]=e;m=pa(c,0,d);F[i+4>>2]=e;g=F[f+12>>2];r=g;e=F[f+20>>2];s:{y=F[f+8>>2];k=F[f+16>>2];l=d+k|0;z=l;e=d>>>0>l>>>0?e+1|0:e;l=e;if(y>>>0>>0&(e|0)>=(g|0)|(e|0)>(g|0)){break s}oa(m,k+F[f>>2]|0,d);e=F[f+20>>2];c=d+F[f+16>>2]|0;e=c>>>0>>0?e+1|0:e;F[f+16>>2]=c;F[f+20>>2]=e;g=aa-48|0;aa=g;e=ab(j,i+16|0);if((e|0)!=(j+4|0)){c=F[e+4>>2];t:{if(!c){c=e;while(1){d=F[c+8>>2];f=F[d>>2]!=(c|0);c=d;if(f){continue}break}break t}while(1){d=c;c=F[c>>2];if(c){continue}break}}if((e|0)==F[j>>2]){F[j>>2]=d}F[j+8>>2]=F[j+8>>2]-1;f=F[j+4>>2];u:{v:{h=e;d=e;e=F[d>>2];if(e){c=F[h+4>>2];if(!c){break v}while(1){d=c;c=F[c>>2];if(c){continue}break}}e=F[d+4>>2];if(e){break v}e=0;m=1;break u}F[e+8>>2]=F[d+8>>2];m=0}k=F[d+8>>2];c=F[k>>2];w:{if((d|0)==(c|0)){F[k>>2]=e;if((d|0)==(f|0)){c=0;f=e;break w}c=F[k+4>>2];break w}F[k+4>>2]=e}s=!G[d+12|0];if((d|0)!=(h|0)){k=F[h+8>>2];F[d+8>>2]=k;F[k+(((h|0)!=F[F[h+8>>2]>>2])<<2)>>2]=d;k=F[h>>2];F[d>>2]=k;F[k+8>>2]=d;k=F[h+4>>2];F[d+4>>2]=k;if(k){F[k+8>>2]=d}D[d+12|0]=G[h+12|0];f=(f|0)==(h|0)?d:f}x:{if(s|!f){break x}if(m){while(1){e=G[c+12|0];y:{d=F[c+8>>2];if(F[d>>2]!=(c|0)){if(!e){D[c+12|0]=1;D[d+12|0]=0;e=F[d+4>>2];m=F[e>>2];F[d+4>>2]=m;if(m){F[m+8>>2]=d}F[e+8>>2]=F[d+8>>2];m=F[d+8>>2];F[(((d|0)!=F[m>>2])<<2)+m>>2]=e;F[e>>2]=d;F[d+8>>2]=e;d=c;c=F[c>>2];f=(c|0)==(f|0)?d:f;c=F[c+4>>2]}z:{A:{d=F[c>>2];B:{if(!(G[d+12|0]?0:d)){e=F[c+4>>2];if(G[e+12|0]?0:e){break B}D[c+12|0]=0;c=F[c+8>>2];C:{if((f|0)==(c|0)){c=f;break C}if(G[c+12|0]){break y}}D[c+12|0]=1;break x}e=F[c+4>>2];if(!e){break A}}if(G[e+12|0]){break A}d=c;break z}D[d+12|0]=1;D[c+12|0]=0;e=F[d+4>>2];F[c>>2]=e;if(e){F[e+8>>2]=c}F[d+8>>2]=F[c+8>>2];e=F[c+8>>2];F[((F[e>>2]!=(c|0))<<2)+e>>2]=d;F[d+4>>2]=c;F[c+8>>2]=d;e=c}c=F[d+8>>2];D[d+12|0]=G[c+12|0];D[c+12|0]=1;D[e+12|0]=1;d=F[c+4>>2];e=F[d>>2];F[c+4>>2]=e;if(e){F[e+8>>2]=c}F[d+8>>2]=F[c+8>>2];e=F[c+8>>2];F[(((c|0)!=F[e>>2])<<2)+e>>2]=d;F[d>>2]=c;F[c+8>>2]=d;break x}if(!e){D[c+12|0]=1;D[d+12|0]=0;e=F[c+4>>2];F[d>>2]=e;if(e){F[e+8>>2]=d}F[c+8>>2]=F[d+8>>2];e=F[d+8>>2];F[(((d|0)!=F[e>>2])<<2)+e>>2]=c;F[c+4>>2]=d;F[d+8>>2]=c;f=(d|0)==(f|0)?c:f;c=F[d>>2]}e=F[c>>2];D:{if(!(!e|G[e+12|0])){d=c;break D}d=F[c+4>>2];if(!(G[d+12|0]?0:d)){D[c+12|0]=0;c=F[c+8>>2];if((c|0)!=(f|0)?G[c+12|0]:0){break y}D[c+12|0]=1;break x}if(e){if(!G[e+12|0]){d=c;break D}d=F[c+4>>2]}D[d+12|0]=1;D[c+12|0]=0;e=F[d>>2];F[c+4>>2]=e;if(e){F[e+8>>2]=c}F[d+8>>2]=F[c+8>>2];e=F[c+8>>2];F[((F[e>>2]!=(c|0))<<2)+e>>2]=d;F[d>>2]=c;F[c+8>>2]=d;e=c}c=F[d+8>>2];D[d+12|0]=G[c+12|0];D[c+12|0]=1;D[e+12|0]=1;d=F[c>>2];e=F[d+4>>2];F[c>>2]=e;if(e){F[e+8>>2]=c}F[d+8>>2]=F[c+8>>2];e=F[c+8>>2];F[(((c|0)!=F[e>>2])<<2)+e>>2]=d;F[d+4>>2]=c;F[c+8>>2]=d;break x}d=c;c=F[c+8>>2];c=F[(((d|0)==F[c>>2])<<2)+c>>2];continue}}D[e+12|0]=1}c=F[h+28>>2];if(c){F[h+32>>2]=c;ma(c)}if(D[h+27|0]<0){ma(F[h+16>>2])}ma(h)}F[g+8>>2]=0;F[g>>2]=0;F[g+4>>2]=0;c=F[i+4>>2];d=F[i>>2];f=c-d|0;e=0;E:{F:{if((c|0)!=(d|0)){if((f|0)<0){break F}e=na(f);c=pa(e,0,f);h=c+f|0;F[g+8>>2]=h;F[g+4>>2]=h;F[g>>2]=c;c=d}oa(e,c,f);G:{if(D[i+27|0]>=0){F[g+24>>2]=F[i+24>>2];c=F[i+20>>2];F[g+16>>2]=F[i+16>>2];F[g+20>>2]=c;break G}ta(g+16|0,F[i+16>>2],F[i+20>>2])}Sc(g+28|0,g);f=g+16|0;c=f;H:{I:{d=F[j+4>>2];J:{if(!d){e=j+4|0;c=e;break J}e=G[c+11|0];h=e<<24>>24<0;m=h?F[c>>2]:c;h=h?F[c+4>>2]:e;while(1){c=d;d=G[c+27|0];e=d<<24>>24<0;d=e?F[c+20>>2]:d;k=d>>>0>>0;K:{L:{M:{N:{s=k?d:h;O:{if(s){e=e?F[c+16>>2]:c+16|0;A=ua(m,e,s);if(!A){if(d>>>0>h>>>0){break O}break N}if((A|0)>=0){break N}break O}if(d>>>0<=h>>>0){break M}}e=c;d=F[c>>2];if(d){continue}break J}d=ua(e,m,s);if(d){break L}}if(k){break K}break I}if((d|0)>=0){break I}}d=F[c+4>>2];if(d){continue}break}e=c+4|0}d=na(40);F[d+24>>2]=F[f+8>>2];h=F[f+4>>2];F[d+16>>2]=F[f>>2];F[d+20>>2]=h;F[f>>2]=0;F[f+4>>2]=0;F[f+8>>2]=0;Sc(d+28|0,f+12|0);F[d+8>>2]=c;F[d>>2]=0;F[d+4>>2]=0;F[e>>2]=d;c=d;f=F[F[j>>2]>>2];if(f){F[j>>2]=f;c=F[e>>2]}pb(F[j+4>>2],c);F[j+8>>2]=F[j+8>>2]+1;c=1;break H}d=c;c=0}D[g+44|0]=c;F[g+40>>2]=d;c=F[g+28>>2];if(c){F[g+32>>2]=c;ma(c)}if(D[g+27|0]<0){ma(F[g+16>>2])}c=F[g>>2];if(c){F[g+4>>2]=c;ma(c)}aa=g+48|0;break E}qa();v()}c=F[i>>2];if(c){break s}c=1;break r}F[i+4>>2]=c;ma(c);c=(l|0)<=(r|0)&y>>>0>=z>>>0|(l|0)<(r|0)}if(D[i+27|0]<0){ma(F[i+16>>2])}aa=i+32|0;break p}qa();v()}if(!c){break a}p=p+1|0;if((x|0)!=(p|0)){continue}break}}F[n+12>>2]=0;if(!hb(1,n+12|0,F[a>>2])){break b}c=F[a>>2];d=F[c+8>>2];e=F[c+16>>2];f=d-e|0;q=F[n+12>>2];c=F[c+12>>2]-(F[c+20>>2]+(d>>>0>>0)|0)|0;if(f>>>0>>0&(c|0)<=0|(c|0)<0){break b}if(q){p=0;g=((u|0)!=0)+w|0;while(1){P:{if(b>>>0>>0){F[b+8>>2]=g;F[b+4>>2]=0;F[b>>2]=j;b=b+12|0;q=F[n+12>>2];break P}e=b-o|0;c=(e|0)/12|0;b=c+1|0;if(b>>>0>=357913942){break d}d=(t-o|0)/12|0;f=d<<1;f=d>>>0>=178956970?357913941:b>>>0>>0?f:b;if(f){if(f>>>0>=357913942){break c}b=na(L(f,12))}else{b=0}d=b+L(c,12)|0;F[d+8>>2]=g;F[d+4>>2]=0;F[d>>2]=j;c=d+L((e|0)/-12|0,12)|0;if((e|0)>0){oa(c,o,e)}t=b+L(f,12)|0;b=d+12|0;if(o){ma(o)}o=c}p=p+1|0;if(p>>>0>>0){continue}break}}if((b|0)!=(o|0)){continue}break}q=1;break a}qa();v()}sa();v()}q=0}if(o){ma(o)}aa=n+32|0;return q}function je(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0;h=aa-48|0;aa=h;a:{if((c|0)!=1){break a}e=F[a+4>>2];i=F[a+12>>2];F[h+40>>2]=0;a=h;F[a+32>>2]=0;F[a+36>>2]=0;F[a+24>>2]=0;F[a+28>>2]=0;F[a+16>>2]=0;F[a+20>>2]=0;F[a+8>>2]=0;F[a+12>>2]=0;c=a+8|0;b:{if((b|0)==-2){break b}k=F[F[F[e+4>>2]+8>>2]+(i<<2)>>2];if((ca[F[F[e>>2]+8>>2]](e)|0)==1){g=aa-32|0;aa=g;f=F[F[F[e+4>>2]+8>>2]+(i<<2)>>2];c:{d:{e:{if((ca[F[F[e>>2]+8>>2]](e)|0)!=1|b-1>>>0>5){break e}j=ca[F[F[e>>2]+36>>2]](e)|0;a=ca[F[F[e>>2]+44>>2]](e,i)|0;if(!j|!a){break e}d=ca[F[F[e>>2]+40>>2]](e,i)|0;if(d){e=F[e+44>>2];F[g+12>>2]=d;F[g+8>>2]=e;F[g+20>>2]=a;F[g+16>>2]=a+12;d=g+8|0;a=0;f:{g:{switch(b-1|0){case 0:a=na(60);F[a+4>>2]=f;F[a>>2]=2960;b=F[c+4>>2];F[a+8>>2]=F[c>>2];F[a+12>>2]=b;b=F[c+12>>2];F[a+16>>2]=F[c+8>>2];F[a+20>>2]=b;b=F[c+20>>2];F[a+24>>2]=F[c+16>>2];F[a+28>>2]=b;F[a+40>>2]=0;F[a+32>>2]=0;F[a+36>>2]=0;b=F[c+28>>2];e=F[c+24>>2];if((b|0)!=(e|0)){b=b-e|0;if((b|0)<0){break d}f=na(b);F[a+32>>2]=f;F[a+40>>2]=f+(b&-4);l=a,m=oa(f,e,b)+b|0,F[l+36>>2]=m}b=F[d+4>>2];F[a+44>>2]=F[d>>2];F[a+48>>2]=b;b=F[d+12>>2];F[a+52>>2]=F[d+8>>2];F[a+56>>2]=b;F[a>>2]=2252;break f;case 3:a=na(112);F[a+4>>2]=f;F[a>>2]=2960;b=F[c+4>>2];F[a+8>>2]=F[c>>2];F[a+12>>2]=b;b=F[c+12>>2];F[a+16>>2]=F[c+8>>2];F[a+20>>2]=b;b=F[c+20>>2];F[a+24>>2]=F[c+16>>2];F[a+28>>2]=b;F[a+40>>2]=0;F[a+32>>2]=0;F[a+36>>2]=0;b=F[c+28>>2];e=F[c+24>>2];if((b|0)!=(e|0)){b=b-e|0;if((b|0)<0){break d}f=na(b);F[a+32>>2]=f;F[a+40>>2]=f+(b&-4);l=a,m=oa(f,e,b)+b|0,F[l+36>>2]=m}b=F[d+4>>2];F[a+44>>2]=F[d>>2];F[a+48>>2]=b;b=F[d+12>>2];F[a+52>>2]=F[d+8>>2];F[a+56>>2]=b;F[a+60>>2]=0;F[a+64>>2]=0;F[a>>2]=3016;F[a+68>>2]=0;F[a+72>>2]=0;F[a+76>>2]=0;F[a+80>>2]=0;F[a+84>>2]=0;F[a+88>>2]=0;F[a+92>>2]=0;F[a+96>>2]=0;F[a+100>>2]=0;F[a+104>>2]=0;F[a+108>>2]=0;break f;case 4:a=na(104);F[a+4>>2]=f;F[a>>2]=2960;b=F[c+4>>2];F[a+8>>2]=F[c>>2];F[a+12>>2]=b;b=F[c+12>>2];F[a+16>>2]=F[c+8>>2];F[a+20>>2]=b;b=F[c+20>>2];F[a+24>>2]=F[c+16>>2];F[a+28>>2]=b;F[a+40>>2]=0;F[a+32>>2]=0;F[a+36>>2]=0;b=F[c+28>>2];e=F[c+24>>2];if((b|0)!=(e|0)){b=b-e|0;if((b|0)<0){break d}f=na(b);F[a+32>>2]=f;F[a+40>>2]=f+(b&-4);l=a,m=oa(f,e,b)+b|0,F[l+36>>2]=m}b=F[d+4>>2];F[a+44>>2]=F[d>>2];F[a+48>>2]=b;b=F[d+12>>2];F[a+52>>2]=F[d+8>>2];F[a+56>>2]=b;F[a+84>>2]=0;F[a+76>>2]=0;F[a+80>>2]=0;F[a+60>>2]=0;F[a+64>>2]=0;F[a>>2]=3264;b=F[d+4>>2];F[a+88>>2]=F[d>>2];F[a+92>>2]=b;b=F[d+12>>2];F[a+96>>2]=F[d+8>>2];F[a+100>>2]=b;break f;case 5:break g;default:break f}}a=na(128);F[a+4>>2]=f;F[a>>2]=2960;b=F[c+4>>2];F[a+8>>2]=F[c>>2];F[a+12>>2]=b;b=F[c+12>>2];F[a+16>>2]=F[c+8>>2];F[a+20>>2]=b;b=F[c+20>>2];F[a+24>>2]=F[c+16>>2];F[a+28>>2]=b;F[a+40>>2]=0;F[a+32>>2]=0;F[a+36>>2]=0;h:{i:{b=F[c+28>>2];e=F[c+24>>2];if((b|0)!=(e|0)){e=b-e|0;if((e|0)<0){break i}b=na(e);F[a+32>>2]=b;F[a+36>>2]=b;F[a+40>>2]=b+(e&-4);f=F[c+24>>2];e=F[c+28>>2]-f|0;if((e|0)>0){b=oa(b,f,e)+e|0}F[a+36>>2]=b}F[a>>2]=2904;b=F[d+4>>2];F[a+44>>2]=F[d>>2];F[a+48>>2]=b;b=F[d+12>>2];F[a+52>>2]=F[d+8>>2];F[a+56>>2]=b;b=a- -64|0;F[b>>2]=0;F[b+4>>2]=0;F[a+60>>2]=4128;F[a>>2]=3500;b=F[d+4>>2];F[a+72>>2]=F[d>>2];F[a+76>>2]=b;b=F[d+12>>2];F[a+80>>2]=F[d+8>>2];F[a+84>>2]=b;F[a+104>>2]=1065353216;F[a+108>>2]=-1;F[a+96>>2]=-1;F[a+100>>2]=-1;F[a+88>>2]=1;F[a+92>>2]=-1;F[a+60>>2]=3736;F[a+112>>2]=0;F[a+116>>2]=0;D[a+117|0]=0;D[a+118|0]=0;D[a+119|0]=0;D[a+120|0]=0;D[a+121|0]=0;D[a+122|0]=0;D[a+123|0]=0;D[a+124|0]=0;break h}qa();v()}break f}d=a;break e}d=F[e+44>>2];F[g+12>>2]=j;F[g+8>>2]=d;F[g+20>>2]=a;F[g+16>>2]=a+12;d=g+8|0;a=0;j:{k:{switch(b-1|0){case 0:a=na(60);F[a+4>>2]=f;F[a>>2]=2960;b=F[c+4>>2];F[a+8>>2]=F[c>>2];F[a+12>>2]=b;b=F[c+12>>2];F[a+16>>2]=F[c+8>>2];F[a+20>>2]=b;b=F[c+20>>2];F[a+24>>2]=F[c+16>>2];F[a+28>>2]=b;F[a+40>>2]=0;F[a+32>>2]=0;F[a+36>>2]=0;b=F[c+28>>2];e=F[c+24>>2];if((b|0)!=(e|0)){b=b-e|0;if((b|0)<0){break d}f=na(b);F[a+32>>2]=f;F[a+40>>2]=f+(b&-4);l=a,m=oa(f,e,b)+b|0,F[l+36>>2]=m}b=F[d+4>>2];F[a+44>>2]=F[d>>2];F[a+48>>2]=b;b=F[d+12>>2];F[a+52>>2]=F[d+8>>2];F[a+56>>2]=b;F[a>>2]=4156;break j;case 3:a=na(112);F[a+4>>2]=f;F[a>>2]=2960;b=F[c+4>>2];F[a+8>>2]=F[c>>2];F[a+12>>2]=b;b=F[c+12>>2];F[a+16>>2]=F[c+8>>2];F[a+20>>2]=b;b=F[c+20>>2];F[a+24>>2]=F[c+16>>2];F[a+28>>2]=b;F[a+40>>2]=0;F[a+32>>2]=0;F[a+36>>2]=0;b=F[c+28>>2];e=F[c+24>>2];if((b|0)!=(e|0)){b=b-e|0;if((b|0)<0){break d}f=na(b);F[a+32>>2]=f;F[a+40>>2]=f+(b&-4);l=a,m=oa(f,e,b)+b|0,F[l+36>>2]=m}b=F[d+4>>2];F[a+44>>2]=F[d>>2];F[a+48>>2]=b;b=F[d+12>>2];F[a+52>>2]=F[d+8>>2];F[a+56>>2]=b;F[a+60>>2]=0;F[a+64>>2]=0;F[a>>2]=4580;F[a+68>>2]=0;F[a+72>>2]=0;F[a+76>>2]=0;F[a+80>>2]=0;F[a+84>>2]=0;F[a+88>>2]=0;F[a+92>>2]=0;F[a+96>>2]=0;F[a+100>>2]=0;F[a+104>>2]=0;F[a+108>>2]=0;break j;case 4:a=na(104);F[a+4>>2]=f;F[a>>2]=2960;b=F[c+4>>2];F[a+8>>2]=F[c>>2];F[a+12>>2]=b;b=F[c+12>>2];F[a+16>>2]=F[c+8>>2];F[a+20>>2]=b;b=F[c+20>>2];F[a+24>>2]=F[c+16>>2];F[a+28>>2]=b;F[a+40>>2]=0;F[a+32>>2]=0;F[a+36>>2]=0;b=F[c+28>>2];e=F[c+24>>2];if((b|0)!=(e|0)){b=b-e|0;if((b|0)<0){break d}f=na(b);F[a+32>>2]=f;F[a+40>>2]=f+(b&-4);l=a,m=oa(f,e,b)+b|0,F[l+36>>2]=m}b=F[d+4>>2];F[a+44>>2]=F[d>>2];F[a+48>>2]=b;b=F[d+12>>2];F[a+52>>2]=F[d+8>>2];F[a+56>>2]=b;F[a+84>>2]=0;F[a+76>>2]=0;F[a+80>>2]=0;F[a+60>>2]=0;F[a+64>>2]=0;F[a>>2]=4816;b=F[d+4>>2];F[a+88>>2]=F[d>>2];F[a+92>>2]=b;b=F[d+12>>2];F[a+96>>2]=F[d+8>>2];F[a+100>>2]=b;break j;case 5:break k;default:break j}}a=na(128);F[a+4>>2]=f;F[a>>2]=2960;b=F[c+4>>2];F[a+8>>2]=F[c>>2];F[a+12>>2]=b;b=F[c+12>>2];F[a+16>>2]=F[c+8>>2];F[a+20>>2]=b;b=F[c+20>>2];F[a+24>>2]=F[c+16>>2];F[a+28>>2]=b;F[a+40>>2]=0;F[a+32>>2]=0;F[a+36>>2]=0;l:{m:{b=F[c+28>>2];e=F[c+24>>2];if((b|0)!=(e|0)){e=b-e|0;if((e|0)<0){break m}b=na(e);F[a+32>>2]=b;F[a+36>>2]=b;F[a+40>>2]=b+(e&-4);f=F[c+24>>2];e=F[c+28>>2]-f|0;if((e|0)>0){b=oa(b,f,e)+e|0}F[a+36>>2]=b}F[a>>2]=4524;b=F[d+4>>2];F[a+44>>2]=F[d>>2];F[a+48>>2]=b;b=F[d+12>>2];F[a+52>>2]=F[d+8>>2];F[a+56>>2]=b;b=a- -64|0;F[b>>2]=0;F[b+4>>2]=0;F[a+60>>2]=5624;F[a>>2]=5040;b=F[d+4>>2];F[a+72>>2]=F[d>>2];F[a+76>>2]=b;b=F[d+12>>2];F[a+80>>2]=F[d+8>>2];F[a+84>>2]=b;F[a+104>>2]=1065353216;F[a+108>>2]=-1;F[a+96>>2]=-1;F[a+100>>2]=-1;F[a+88>>2]=1;F[a+92>>2]=-1;F[a+60>>2]=5260;F[a+112>>2]=0;F[a+116>>2]=0;D[a+117|0]=0;D[a+118|0]=0;D[a+119|0]=0;D[a+120|0]=0;D[a+121|0]=0;D[a+122|0]=0;D[a+123|0]=0;D[a+124|0]=0;break l}qa();v()}break j}d=a}aa=g+32|0;break c}qa();v()}if(d){break b}}d=na(44);F[d+4>>2]=k;F[d>>2]=2960;a=F[c+4>>2];F[d+8>>2]=F[c>>2];F[d+12>>2]=a;a=F[c+12>>2];F[d+16>>2]=F[c+8>>2];F[d+20>>2]=a;a=F[c+20>>2];F[d+24>>2]=F[c+16>>2];F[d+28>>2]=a;F[d+40>>2]=0;F[d+32>>2]=0;F[d+36>>2]=0;n:{a=F[c+28>>2];b=F[c+24>>2];if((a|0)!=(b|0)){a=a-b|0;if((a|0)<0){break n}c=na(a);F[d+32>>2]=c;F[d+40>>2]=c+(a&-4);l=d,m=oa(c,b,a)+a|0,F[l+36>>2]=m}F[d>>2]=5652;break b}qa();v()}a=F[h+32>>2];if(!a){break a}F[h+36>>2]=a;ma(a)}aa=h+48|0;return d|0}function of(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,w=0,x=0,y=0,z=0,A=0,B=0;m=aa-16|0;aa=m;F[m+12>>2]=b;c=na(32);F[m>>2]=c;F[m+4>>2]=24;F[m+8>>2]=-2147483616;d=G[1196]|G[1197]<<8|(G[1198]<<16|G[1199]<<24);b=G[1192]|G[1193]<<8|(G[1194]<<16|G[1195]<<24);D[c+16|0]=b;D[c+17|0]=b>>>8;D[c+18|0]=b>>>16;D[c+19|0]=b>>>24;D[c+20|0]=d;D[c+21|0]=d>>>8;D[c+22|0]=d>>>16;D[c+23|0]=d>>>24;d=G[1188]|G[1189]<<8|(G[1190]<<16|G[1191]<<24);b=G[1184]|G[1185]<<8|(G[1186]<<16|G[1187]<<24);D[c+8|0]=b;D[c+9|0]=b>>>8;D[c+10|0]=b>>>16;D[c+11|0]=b>>>24;D[c+12|0]=d;D[c+13|0]=d>>>8;D[c+14|0]=d>>>16;D[c+15|0]=d>>>24;d=G[1180]|G[1181]<<8|(G[1182]<<16|G[1183]<<24);b=G[1176]|G[1177]<<8|(G[1178]<<16|G[1179]<<24);D[c|0]=b;D[c+1|0]=b>>>8;D[c+2|0]=b>>>16;D[c+3|0]=b>>>24;D[c+4|0]=d;D[c+5|0]=d>>>8;D[c+6|0]=d>>>16;D[c+7|0]=d>>>24;D[c+24|0]=0;k=aa-48|0;aa=k;e=F[m+12>>2];c=a+16|0;b=F[c>>2];a:{b:{if(!b){break b}d=c;while(1){f=(e|0)>F[b+16>>2];d=f?d:b;b=F[(f?b+4|0:b)>>2];if(b){continue}break}if((d|0)==(c|0)){break b}if((e|0)>=F[d+16>>2]){break a}}F[k+28>>2]=0;F[k+32>>2]=0;A=k+24|0;F[k+24>>2]=A|4;b=k+16|0;F[b>>2]=0;F[b+4>>2]=0;F[k+8>>2]=e;F[k+12>>2]=b;x=k+8|0;b=x;y=aa-16|0;aa=y;u=a+12|0;d=F[u+4>>2];c:{d:{if(!d){o=u+4|0;c=o;break d}b=F[b>>2];while(1){c=d;a=F[c+16>>2];if((a|0)>(b|0)){o=c;d=F[c>>2];if(d){continue}break d}if((a|0)>=(b|0)){i=c;a=0;break c}d=F[c+4>>2];if(d){continue}break}o=c+4|0}i=na(32);a=F[x>>2];r=i+24|0;b=r;F[b>>2]=0;F[b+4>>2]=0;F[i+16>>2]=a;t=i+20|0;F[t>>2]=b;d=F[x+4>>2];B=x+8|0;if((d|0)!=(B|0)){while(1){p=aa-16|0;aa=p;a=p+8|0;n=d+16|0;e:{f:{g:{h:{i:{j:{k:{f=r;e=t+4|0;l:{if((f|0)==(e|0)){break l}g=G[f+27|0];s=g<<24>>24<0;b=G[n+11|0];w=b<<24>>24;h=(w|0)<0;q=h?F[n+4>>2]:b;z=s?F[f+20>>2]:g;l=q>>>0>z>>>0;j=l?z:q;if(j){h=h?F[n>>2]:n;g=s?F[f+16>>2]:f+16|0;b=ua(h,g,j);if(!b){if(q>>>0>>0){break l}break k}if((b|0)>=0){break k}break l}if(q>>>0>=z>>>0){break j}}g=F[f>>2];m:{a=f;n:{if((a|0)==F[t>>2]){break n}o:{if(!g){b=f;while(1){a=F[b+8>>2];h=F[a>>2]==(b|0);b=a;if(h){continue}break}break o}b=g;while(1){a=b;b=F[b+4>>2];if(b){continue}break}}j=G[n+11|0];h=j<<24>>24;w=(h|0)<0;b=G[a+27|0];l=b<<24>>24<0;p:{s=w?F[n+4>>2]:j;j=l?F[a+20>>2]:b;b=j>>>0>s>>>0?s:j;if(b){b=ua(l?F[a+16>>2]:a+16|0,w?F[n>>2]:n,b);if(b){break p}}if(j>>>0>>0){break n}break m}if((b|0)>=0){break m}}if(!g){F[p+12>>2]=f;a=f;break e}F[p+12>>2]=a;a=a+4|0;break e}b=F[e>>2];if(!b){F[p+12>>2]=e;a=e;break e}j=(h|0)<0?F[n>>2]:n;f=e;while(1){a=b;b=G[b+27|0];e=b<<24>>24<0;l=e?F[a+20>>2]:b;h=l>>>0>>0;q:{r:{s:{t:{g=h?l:s;u:{if(g){e=e?F[a+16>>2]:a+16|0;b=ua(j,e,g);if(!b){if(l>>>0>s>>>0){break u}break t}if((b|0)>=0){break t}break u}if(l>>>0<=s>>>0){break s}}f=a;b=F[a>>2];if(b){continue}break g}b=ua(e,j,g);if(b){break r}}if(h){break q}break g}if((b|0)>=0){break g}}f=a+4|0;b=F[a+4>>2];if(b){continue}break}break g}b=ua(g,h,j);if(b){break i}}if(l){break h}break f}if((b|0)>=0){break f}}g=F[f+4>>2];v:{if(!g){b=f;while(1){a=F[b+8>>2];h=F[a>>2]!=(b|0);b=a;if(h){continue}break}break v}b=g;while(1){a=b;b=F[b>>2];if(b){continue}break}}w:{x:{if((a|0)==(e|0)){break x}b=G[a+27|0];j=b<<24>>24<0;y:{h=j?F[a+20>>2]:b;b=h>>>0>>0?h:q;if(b){b=ua((w|0)<0?F[n>>2]:n,j?F[a+16>>2]:a+16|0,b);if(b){break y}}if(h>>>0>q>>>0){break x}break w}if((b|0)>=0){break w}}if(!g){F[p+12>>2]=f;a=f+4|0;break e}F[p+12>>2]=a;break e}b=F[e>>2];if(!b){F[p+12>>2]=e;a=e;break e}j=(w|0)<0?F[n>>2]:n;f=e;while(1){a=b;b=G[b+27|0];e=b<<24>>24<0;l=e?F[a+20>>2]:b;h=l>>>0>>0;z:{A:{B:{C:{g=h?l:q;D:{if(g){e=e?F[a+16>>2]:a+16|0;b=ua(j,e,g);if(!b){if(l>>>0>q>>>0){break D}break C}if((b|0)>=0){break C}break D}if(l>>>0<=q>>>0){break B}}f=a;b=F[a>>2];if(b){continue}break g}b=ua(e,j,g);if(b){break A}}if(h){break z}break g}if((b|0)>=0){break g}}f=a+4|0;b=F[a+4>>2];if(b){continue}break}}F[p+12>>2]=a;a=f;break e}F[p+12>>2]=f;F[a>>2]=f}f=a;a=F[a>>2];if(a){b=0}else{a=na(40);e=a+16|0;E:{if(D[d+27|0]>=0){b=F[d+20>>2];F[e>>2]=F[d+16>>2];F[e+4>>2]=b;F[e+8>>2]=F[d+24>>2];break E}ta(e,F[d+16>>2],F[d+20>>2])}e=a+28|0;F:{if(D[d+39|0]>=0){b=F[d+32>>2];F[e>>2]=F[d+28>>2];F[e+4>>2]=b;F[e+8>>2]=F[d+36>>2];break F}ta(e,F[d+28>>2],F[d+32>>2])}F[a+8>>2]=F[p+12>>2];F[a>>2]=0;F[a+4>>2]=0;F[f>>2]=a;b=a;e=F[F[t>>2]>>2];if(e){F[t>>2]=e;b=F[f>>2]}pb(F[t+4>>2],b);F[t+8>>2]=F[t+8>>2]+1;b=1}D[y+12|0]=b;F[y+8>>2]=a;aa=p+16|0;b=F[d+4>>2];G:{if(b){while(1){d=b;b=F[b>>2];if(b){continue}break G}}while(1){a=d;d=F[d+8>>2];if((a|0)!=F[d>>2]){continue}break}}if((d|0)!=(B|0)){continue}break}}F[i+8>>2]=c;F[i>>2]=0;F[i+4>>2]=0;F[o>>2]=i;d=i;a=F[F[u>>2]>>2];if(a){F[u>>2]=a;d=F[o>>2]}pb(F[u+4>>2],d);F[u+8>>2]=F[u+8>>2]+1;a=1}D[k+44|0]=a;F[k+40>>2]=i;aa=y+16|0;d=F[k+40>>2];kb(x|4,F[k+16>>2]);kb(A,F[k+28>>2])}h=aa-48|0;aa=h;c=h+8|0;e=aa-32|0;aa=e;r=e+32|0;b=r;a=e+21|0;H:{if((b|0)==(a|0)){break H}}f=b-a|0;I:{if((f|0)<=9){i=61;if((f|0)<(I[2736]<=1|0)){break I}}D[a|0]=49;b=a+1|0;i=0}F[e+12>>2]=i;F[e+8>>2]=b;i=aa-16|0;aa=i;g=aa-16|0;aa=g;J:{e=F[e+8>>2];o=e-a|0;if(o>>>0<=4294967279){K:{if(o>>>0<11){D[c+11|0]=o;b=c;break K}if(o>>>0>=11){b=o+16&-16;f=b-1|0;b=(f|0)==11?b:f}else{b=10}f=b+1|0;b=na(f);F[c>>2]=b;F[c+8>>2]=f|-2147483648;F[c+4>>2]=o}while(1){if((a|0)!=(e|0)){D[b|0]=G[a|0];b=b+1|0;a=a+1|0;continue}break}D[g+15|0]=0;D[b|0]=G[g+15|0];aa=g+16|0;break J}Ca();v()}aa=i+16|0;aa=r;F[h+32>>2]=m;L:{M:{g=d+20|0;c=F[g+4>>2];N:{if(!c){i=g+4|0;d=i;break N}b=G[m+11|0];a=b<<24>>24<0;e=a?F[m>>2]:m;r=a?F[m+4>>2]:b;while(1){d=c;a=G[c+27|0];b=a<<24>>24<0;i=b?F[c+20>>2]:a;f=i>>>0>>0;O:{P:{Q:{R:{c=f?i:r;S:{if(c){b=b?F[d+16>>2]:d+16|0;a=ua(e,b,c);if(!a){if(i>>>0>r>>>0){break S}break R}if((a|0)>=0){break R}break S}if(i>>>0<=r>>>0){break Q}}i=d;c=F[d>>2];if(c){continue}break N}a=ua(b,e,c);if(a){break P}}if(f){break O}break M}if((a|0)>=0){break M}}c=F[d+4>>2];if(c){continue}break}i=d+4|0}c=na(40);b=c+16|0;f=F[h+32>>2];T:{if(D[f+11|0]>=0){a=F[f+4>>2];F[b>>2]=F[f>>2];F[b+4>>2]=a;F[b+8>>2]=F[f+8>>2];break T}ta(b,F[f>>2],F[f+4>>2])}F[c+8>>2]=d;F[c>>2]=0;F[c+4>>2]=0;F[c+36>>2]=0;F[c+28>>2]=0;F[c+32>>2]=0;F[i>>2]=c;d=c;a=F[F[g>>2]>>2];if(a){F[g>>2]=a;d=F[i>>2]}pb(F[g+4>>2],d);F[g+8>>2]=F[g+8>>2]+1;a=1;break L}c=d;a=0}D[h+44|0]=a;F[h+40>>2]=c;b=F[h+40>>2];if(D[b+39|0]<0){ma(F[b+28>>2])}a=F[h+12>>2];F[b+28>>2]=F[h+8>>2];F[b+32>>2]=a;F[b+36>>2]=F[h+16>>2];aa=h+48|0;aa=k+48|0;if(D[m+11|0]<0){ma(F[m>>2])}aa=m+16|0}function ae(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,G=0,H=0,I=0,J=0,K=0,M=0,N=0,O=0,P=0;g=aa+-64|0;aa=g;F[a+8>>2]=e;y=a+32|0;f=F[y>>2];d=F[a+36>>2]-f>>2;a:{b:{if(d>>>0>>0){ra(y,e-d|0);F[g+56>>2]=0;F[g+60>>2]=0;F[g+48>>2]=0;F[g+52>>2]=0;F[g+40>>2]=0;F[g+44>>2]=0;F[g+32>>2]=0;F[g+36>>2]=0;F[g+24>>2]=0;F[g+28>>2]=0;F[g+16>>2]=0;F[g+20>>2]=0;F[g>>2]=0;break b}if(d>>>0>e>>>0){F[a+36>>2]=f+(e<<2)}F[g+56>>2]=0;F[g+60>>2]=0;F[g+48>>2]=0;F[g+52>>2]=0;F[g+40>>2]=0;F[g+44>>2]=0;F[g+32>>2]=0;F[g+36>>2]=0;F[g+24>>2]=0;F[g+28>>2]=0;F[g+16>>2]=0;F[g+20>>2]=0;F[g>>2]=0;d=0;if(!e){break a}}xa(g+16|0,e,g);h=F[g+28>>2];d=F[g+32>>2]}F[g>>2]=0;d=d-h>>2;c:{if(d>>>0>=e>>>0){if(d>>>0<=e>>>0){break c}F[g+32>>2]=(e<<2)+h;break c}xa(g+16|12,e-d|0,g)}F[g>>2]=0;f=F[g+40>>2];d=F[g+44>>2]-f>>2;d:{if(d>>>0>=e>>>0){if(d>>>0<=e>>>0){break d}F[g+44>>2]=f+(e<<2);break d}xa(g+40|0,e-d|0,g)}F[g>>2]=0;f=F[g+52>>2];d=F[g+56>>2]-f>>2;e:{if(d>>>0>=e>>>0){if(d>>>0<=e>>>0){break e}F[g+56>>2]=f+(e<<2);break e}xa(g+52|0,e-d|0,g)}f:{if(F[a+8>>2]<=0){break f}i=F[g+16>>2];j=F[a+32>>2];h=0;while(1){d=h<<2;f=F[d+i>>2];n=F[a+16>>2];g:{if((f|0)>(n|0)){F[d+j>>2]=n;break g}d=d+j|0;n=F[a+12>>2];if((n|0)>(f|0)){F[d>>2]=n;break g}F[d>>2]=f}h=h+1|0;d=F[a+8>>2];if((h|0)<(d|0)){continue}break}if((d|0)<=0){break f}d=0;while(1){i=d<<2;f=i+c|0;i=F[b+i>>2]+F[j+i>>2]|0;F[f>>2]=i;h:{if((i|0)>F[a+16>>2]){i=i-F[a+20>>2]|0}else{if((i|0)>=F[a+12>>2]){break h}i=i+F[a+20>>2]|0}F[f>>2]=i}d=d+1|0;if((d|0)>2]){continue}break}}H=F[a+52>>2];q=F[a+48>>2];z=na(16);d=z;F[d>>2]=0;F[d+4>>2]=0;F[d+8>>2]=0;F[d+12>>2]=0;F[g+8>>2]=0;F[g>>2]=0;F[g+4>>2]=0;i:{if(e){if(e>>>0>=1073741824){break i}d=e<<2;s=na(d);F[g>>2]=s;F[g+8>>2]=d+s;pa(s,0,d)}d=F[a+56>>2];A=F[d>>2];d=F[d+4>>2]-A|0;j:{if((d|0)<5){break j}u=d>>2;I=(u|0)<=2?2:u;J=u>>>0<=1?1:u;B=e&-2;C=e&1;K=e&-4;D=e&3;E=e-1|0;M=e<<2;N=e>>>0<4;G=1;n=1;while(1){k:{l:{m:{n:{if((n|0)!=(J|0)){o:{p:{f=F[(n<<2)+A>>2];if((f|0)==-1){break p}k=1;d=f+2|0;j=(f>>>0)%3|0;w=j?f-1|0:d;o=1<>>5|0;i=0;O=(j|0)!=0|(d|0)!=-1;P=F[q>>2];d=f;q:{while(1){r:{if(F[(d>>>3&536870908)+P>>2]>>>d&1){break r}j=F[F[F[q+64>>2]+12>>2]+(d<<2)>>2];if((j|0)==-1){break r}m=F[H>>2];h=F[q+28>>2];r=F[m+(F[h+(j<<2)>>2]<<2)>>2];if((r|0)>=(n|0)){break r}l=j+1|0;l=F[m+(F[h+(((l>>>0)%3|0?l:j-2|0)<<2)>>2]<<2)>>2];if((l|0)>=(n|0)){break r}h=F[m+(F[h+(j+((j>>>0)%3|0?-1:2)<<2)>>2]<<2)>>2];if((h|0)>=(n|0)){break r}s:{if(!e){break s}j=F[(g+16|0)+L(i,12)>>2];m=L(e,h);l=L(e,l);r=L(e,r);h=0;x=0;if(E){while(1){F[j+(h<<2)>>2]=(F[(h+m<<2)+c>>2]+F[(h+l<<2)+c>>2]|0)-F[(h+r<<2)+c>>2];p=h|1;F[j+(p<<2)>>2]=(F[(m+p<<2)+c>>2]+F[(l+p<<2)+c>>2]|0)-F[(r+p<<2)+c>>2];h=h+2|0;x=x+2|0;if((B|0)!=(x|0)){continue}break}}if(!C){break s}F[j+(h<<2)>>2]=(F[(h+m<<2)+c>>2]+F[(h+l<<2)+c>>2]|0)-F[(h+r<<2)+c>>2]}j=4;i=i+1|0;if((i|0)==4){break q}}t:{if(k&1){h=d-2|0;j=d+1|0;d=-1;j=(j>>>0)%3|0?j:h;if((j|0)==-1|F[F[q>>2]+(j>>>3&536870908)>>2]>>>j&1){break t}j=F[F[F[q+64>>2]+12>>2]+(j<<2)>>2];if((j|0)==-1){break t}d=j+1|0;d=(d>>>0)%3|0?d:j-2|0;break t}u:{if((d>>>0)%3|0){h=d-1|0;break u}h=d+2|0;d=-1;if((h|0)==-1){break t}}d=-1;if(F[F[q>>2]+(h>>>3&536870908)>>2]>>>h&1){break t}j=F[F[F[q+64>>2]+12>>2]+(h<<2)>>2];if((j|0)==-1){break t}if((j>>>0)%3|0){d=j-1|0;break t}d=j+2|0}v:{if((d|0)==(f|0)){break v}if(!((k^1)&1|(d|0)!=-1)){if(!O|o&F[F[q>>2]+(t<<2)>>2]){break v}d=F[F[F[q+64>>2]+12>>2]+(w<<2)>>2];if((d|0)==-1){break v}k=0;d=(d>>>0)%3|0?d-1|0:d+2|0}if((d|0)!=-1){continue}}break}j=i;if((j|0)<=0){break p}}if(e){pa(s,0,M)}d=j-1|0;r=(d<<2)+z|0;d=L(d,12)+a|0;w=d;x=F[d- -64>>2];k=0;d=F[g>>2];f=0;while(1){i=F[r>>2];F[r>>2]=i+1;if(i>>>0>=x>>>0){break j}w:{if(F[F[w+60>>2]+(i>>>3&536870908)>>2]>>>i&1){break w}f=f+1|0;if(!e){break w}m=F[(g+16|0)+L(k,12)>>2];i=0;h=0;p=0;if(!N){while(1){l=h<<2;o=l+d|0;F[o>>2]=F[m+l>>2]+F[o>>2];o=l|4;t=o+d|0;F[t>>2]=F[m+o>>2]+F[t>>2];o=l|8;t=o+d|0;F[t>>2]=F[m+o>>2]+F[t>>2];l=l|12;o=l+d|0;F[o>>2]=F[m+l>>2]+F[o>>2];h=h+4|0;p=p+4|0;if((K|0)!=(p|0)){continue}break}}if(!D){break w}while(1){l=h<<2;p=l+d|0;F[p>>2]=F[m+l>>2]+F[p>>2];h=h+1|0;i=i+1|0;if((D|0)!=(i|0)){continue}break}}k=k+1|0;if((k|0)!=(j|0)){continue}break}i=L(e,n);if(!f){break o}if(!e){break l}h=0;d=0;if(E){break n}break m}i=L(e,n)}if(F[a+8>>2]<=0){break k}k=(L(n-1|0,e)<<2)+c|0;j=F[y>>2];h=0;while(1){d=h<<2;f=F[d+k>>2];m=F[a+16>>2];x:{if((f|0)>(m|0)){F[d+j>>2]=m;break x}d=d+j|0;m=F[a+12>>2];if((m|0)>(f|0)){F[d>>2]=m;break x}F[d>>2]=f}h=h+1|0;f=F[a+8>>2];if((h|0)<(f|0)){continue}break}d=0;if((f|0)<=0){break k}f=i<<2;h=f+c|0;k=b+f|0;while(1){i=d<<2;f=i+h|0;i=F[i+k>>2]+F[j+i>>2]|0;F[f>>2]=i;y:{if((i|0)>F[a+16>>2]){i=i-F[a+20>>2]|0}else{if((i|0)>=F[a+12>>2]){break y}i=i+F[a+20>>2]|0}F[f>>2]=i}d=d+1|0;if((d|0)>2]){continue}break}break k}va();v()}while(1){j=h<<2;k=j+s|0;F[k>>2]=F[k>>2]/(f|0);j=(j|4)+s|0;F[j>>2]=F[j>>2]/(f|0);h=h+2|0;d=d+2|0;if((B|0)!=(d|0)){continue}break}}if(!C){break l}d=(h<<2)+s|0;F[d>>2]=F[d>>2]/(f|0)}if(F[a+8>>2]<=0){break k}j=F[y>>2];h=0;while(1){d=h<<2;f=F[d+s>>2];k=F[a+16>>2];z:{if((f|0)>(k|0)){F[d+j>>2]=k;break z}d=d+j|0;k=F[a+12>>2];if((k|0)>(f|0)){F[d>>2]=k;break z}F[d>>2]=f}h=h+1|0;f=F[a+8>>2];if((h|0)<(f|0)){continue}break}d=0;if((f|0)<=0){break k}f=i<<2;h=f+c|0;k=b+f|0;while(1){i=d<<2;f=i+h|0;i=F[i+k>>2]+F[j+i>>2]|0;F[f>>2]=i;A:{if((i|0)>F[a+16>>2]){i=i-F[a+20>>2]|0}else{if((i|0)>=F[a+12>>2]){break A}i=i+F[a+20>>2]|0}F[f>>2]=i}d=d+1|0;if((d|0)>2]){continue}break}}n=n+1|0;G=(u|0)>(n|0);if((n|0)!=(I|0)){continue}break}}a=F[g>>2];if(a){ma(a)}ma(z);a=F[g+52>>2];if(a){F[g+56>>2]=a;ma(a)}a=F[g+40>>2];if(a){F[g+44>>2]=a;ma(a)}a=F[g+28>>2];if(a){F[g+32>>2]=a;ma(a)}a=F[g+16>>2];if(a){F[g+20>>2]=a;ma(a)}aa=g- -64|0;return(G^-1)&1}qa();v()}function xd(a,b){var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,w=0;f=aa-32|0;aa=f;k=F[F[a+4>>2]+44>>2];d=F[a+8>>2];h=F[d>>2];d=F[d+4>>2];F[f+24>>2]=0;F[f+16>>2]=0;F[f+20>>2]=0;e=(d-h>>2>>>0)/3|0;d=F[k+96>>2];g=(F[k+100>>2]-d|0)/12|0;a:{if(e>>>0>g>>>0){j=e-g|0;c=F[k+104>>2];h=F[k+100>>2];if(j>>>0<=(c-h|0)/12>>>0){b:{if(!j){break b}d=L(j,12);j=d;e=d-12|0;g=((e>>>0)/12|0)+1&3;c:{if(!g){d=h;break c}d=h;while(1){c=F[f+20>>2];F[d>>2]=F[f+16>>2];F[d+4>>2]=c;F[d+8>>2]=F[f+24>>2];d=d+12|0;i=i+1|0;if((g|0)!=(i|0)){continue}break}}h=h+j|0;if(e>>>0<36){break b}while(1){c=F[f+20>>2];F[d>>2]=F[f+16>>2];F[d+4>>2]=c;F[d+8>>2]=F[f+24>>2];F[d+20>>2]=F[f+24>>2];c=F[f+20>>2];F[d+12>>2]=F[f+16>>2];F[d+16>>2]=c;F[d+32>>2]=F[f+24>>2];c=F[f+20>>2];F[d+24>>2]=F[f+16>>2];F[d+28>>2]=c;c=F[f+20>>2];F[d+36>>2]=F[f+16>>2];F[d+40>>2]=c;F[d+44>>2]=F[f+24>>2];d=d+48|0;if((h|0)!=(d|0)){continue}break}}F[k+100>>2]=h;break a}d:{d=F[k+96>>2];g=(h-d|0)/12|0;e=g+j|0;if(e>>>0<357913942){c=(c-d|0)/12|0;d=c<<1;l=c>>>0>=178956970?357913941:d>>>0>e>>>0?d:e;if(l){if(l>>>0>=357913942){break d}o=na(L(l,12))}c=L(g,12)+o|0;d=c;m=L(j,12);j=m-12|0;e=((j>>>0)/12|0)+1&3;if(e){d=c;while(1){g=F[f+20>>2];F[d>>2]=F[f+16>>2];F[d+4>>2]=g;F[d+8>>2]=F[f+24>>2];d=d+12|0;i=i+1|0;if((e|0)!=(i|0)){continue}break}}e=c+m|0;if(j>>>0>=36){while(1){g=F[f+20>>2];F[d>>2]=F[f+16>>2];F[d+4>>2]=g;F[d+8>>2]=F[f+24>>2];F[d+20>>2]=F[f+24>>2];g=F[f+20>>2];F[d+12>>2]=F[f+16>>2];F[d+16>>2]=g;F[d+32>>2]=F[f+24>>2];g=F[f+20>>2];F[d+24>>2]=F[f+16>>2];F[d+28>>2]=g;g=F[f+20>>2];F[d+36>>2]=F[f+16>>2];F[d+40>>2]=g;F[d+44>>2]=F[f+24>>2];d=d+48|0;if((e|0)!=(d|0)){continue}break}}g=F[k+96>>2];h=h-g|0;d=c+L((h|0)/-12|0,12)|0;if((h|0)>0){oa(d,g,h)}F[k+104>>2]=L(l,12)+o;F[k+100>>2]=e;F[k+96>>2]=d;if(g){ma(g)}break a}qa();v()}sa();v()}if(e>>>0>=g>>>0){break a}F[k+100>>2]=d+L(e,12)}e:{if(F[a+216>>2]==F[a+220>>2]){e=F[a+4>>2];h=F[e+44>>2];d=F[h+100>>2];m=F[h+96>>2];if((d|0)!=(m|0)){d=(d-m|0)/12|0;g=d>>>0<=1?1:d;c=0;while(1){k=F[a+8>>2];h=m+L(c,12)|0;l=L(c,3);f:{g:{if((l|0)==-1){i=F[(F[k>>2]+(l<<2)|0)+4>>2];n=-1;d=1;break g}i=-1;n=F[F[k>>2]+(l<<2)>>2];d=l+1|0;if((d|0)==-1){d=0;break g}i=F[F[k>>2]+(d<<2)>>2];d=l+2|0;j=-1;if((d|0)==-1){break f}}j=F[F[k>>2]+(d<<2)>>2]}F[h+8>>2]=j;F[h+4>>2]=i;F[h>>2]=n;c=c+1|0;if((g|0)!=(c|0)){continue}break}}F[F[e+4>>2]+80>>2]=b;c=1;break e}h=0;F[f+24>>2]=0;F[f+16>>2]=0;F[f+20>>2]=0;o=F[a+8>>2];c=F[o>>2];d=F[o+4>>2];F[f+8>>2]=0;F[f>>2]=0;F[f+4>>2]=0;b=0;h:{i:{j:{k:{l:{m:{if((d|0)!=(c|0)){d=d-c|0;if((d|0)<0){break m}b=na(d);F[f>>2]=b;F[f+8>>2]=(d&-4)+b;u=f,w=pa(b,0,d)+d|0,F[u+4>>2]=w}c=F[o+24>>2];if((F[o+28>>2]-c|0)<=0){break i}d=0;while(1){g=F[(q<<2)+c>>2];n:{if((g|0)==-1){break n}o:{if(F[F[a+120>>2]+(q>>>3&536870908)>>2]>>>q&1){break o}s=F[a+216>>2];c=F[a+220>>2];if((s|0)==(c|0)){break o}i=g+2|0;e=(g>>>0)%3|0;t=e?g-1|0:i;c=(c-s|0)/144|0;k=c>>>0<=1?1:c;r=0;l=(e|0)!=0|(i|0)!=-1;while(1){e=g<<2;i=L(r,144)+s|0;c=F[e+F[F[i+68>>2]>>2]>>2];p:{if(!(F[F[i+16>>2]+(c>>>3&536870908)>>2]>>>c&1)){break p}c=-1;q:{if(!l){break q}j=F[F[o+12>>2]+(t<<2)>>2];c=-1;if((j|0)==-1){break q}c=j-1|0;if((j>>>0)%3|0){break q}c=j+2|0}if((g|0)==(c|0)){break p}m=F[i+32>>2];j=F[m+e>>2];while(1){i=0;if((c|0)==-1){break h}if((j|0)!=F[m+(c<<2)>>2]){g=c;break o}r:{s:{if((c>>>0)%3|0){i=c-1|0;break s}i=c+2|0;e=-1;if((i|0)==-1){break r}}c=F[F[o+12>>2]+(i<<2)>>2];e=-1;if((c|0)==-1){break r}e=c-1|0;if((c>>>0)%3|0){break r}e=c+2|0}c=e;if((g|0)!=(c|0)){continue}break}}r=r+1|0;if((k|0)!=(r|0)){continue}break}}j=n-d|0;i=j>>2;F[(g<<2)+b>>2]=i;t:{if(n>>>0

>>0){F[n>>2]=g;n=n+4|0;F[f+20>>2]=n;break t}e=i+1|0;if(e>>>0>=1073741824){break l}c=p-d|0;h=c>>1;e=c>>>0>=2147483644?1073741823:e>>>0>>0?h:e;if(e){if(e>>>0>=1073741824){break k}h=na(e<<2)}else{h=0}c=h+(i<<2)|0;F[c>>2]=g;p=(e<<2)+h|0;n=c+4|0;if((j|0)>0){oa(h,d,j)}F[f+24>>2]=p;F[f+20>>2]=n;F[f+16>>2]=h;if(d){ma(d);o=F[a+8>>2]}d=h}if((g|0)==-1){break n}u:{if((g>>>0)%3|0){c=g-1|0;break u}c=g+2|0;if((c|0)==-1){break n}}c=F[F[o+12>>2]+(c<<2)>>2];if((c|0)==-1){break n}c=c+((c>>>0)%3|0?-1:2)|0;if((c|0)==-1){break n}i=g;if((g|0)==(c|0)){break n}while(1){e=c;v:{w:{c=F[a+220>>2];k=F[a+216>>2];if((c|0)==(k|0)){break w}c=(c-k|0)/144|0;l=c>>>0<=1?1:c;c=0;while(1){m=F[(k+L(c,144)|0)+32>>2];j=e<<2;if(F[m+j>>2]==F[m+(i<<2)>>2]){c=c+1|0;if((l|0)!=(c|0)){continue}break w}break}d=b+j|0;m=n-h|0;j=m>>2;F[d>>2]=j;if(n>>>0

>>0){F[n>>2]=e;n=n+4|0;F[f+20>>2]=n;d=h;break v}i=j+1|0;if(i>>>0>=1073741824){break j}c=p-h|0;d=c>>1;i=c>>>0>=2147483644?1073741823:d>>>0>i>>>0?d:i;if(i){if(i>>>0>=1073741824){break k}d=na(i<<2)}else{d=0}c=d+(j<<2)|0;F[c>>2]=e;p=(i<<2)+d|0;n=c+4|0;if((m|0)>0){oa(d,h,m)}F[f+24>>2]=p;F[f+20>>2]=n;F[f+16>>2]=d;if(!h){h=d;break v}ma(h);o=F[a+8>>2];h=d;break v}F[(e<<2)+b>>2]=F[(i<<2)+b>>2]}if((e|0)==-1){break n}x:{if((e>>>0)%3|0){c=e-1|0;break x}c=e+2|0;if((c|0)==-1){break n}}c=F[F[o+12>>2]+(c<<2)>>2];if((c|0)==-1){break n}c=c+((c>>>0)%3|0?-1:2)|0;if((c|0)==-1){break n}i=e;if((c|0)!=(g|0)){continue}break}}q=q+1|0;c=F[o+24>>2];if((q|0)>2]-c>>2){continue}break}break i}qa();v()}qa();v()}sa();v()}qa();v()}m=F[a+4>>2];d=F[m+44>>2];a=F[d+100>>2];k=F[d+96>>2];y:{if((a|0)==(k|0)){break y}d=(a-k|0)/12|0;a=d>>>0<=1?1:d;j=a&1;c=0;if(d>>>0>=2){i=a&-2;d=0;while(1){e=L(c,12);l=e+b|0;g=F[l+4>>2];a=F[l>>2];e=e+k|0;F[e+8>>2]=F[l+8>>2];F[e>>2]=a;F[e+4>>2]=g;e=L(c|1,12);l=e+b|0;g=F[l+4>>2];a=F[l>>2];e=e+k|0;F[e+8>>2]=F[l+8>>2];F[e>>2]=a;F[e+4>>2]=g;c=c+2|0;d=d+2|0;if((i|0)!=(d|0)){continue}break}}if(!j){break y}c=L(c,12);g=c+b|0;d=F[g+4>>2];a=F[g>>2];c=c+k|0;F[c+8>>2]=F[g+8>>2];F[c>>2]=a;F[c+4>>2]=d}F[F[m+4>>2]+80>>2]=n-h>>2;i=1}c=i;if(b){ma(b)}if(!h){break e}F[f+20>>2]=h;ma(h)}aa=f+32|0;return c}function Yh(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,G=0,H=0,I=0,J=0,K=0,M=0,N=0;h=aa+-64|0;aa=h;F[a+8>>2]=e;x=a+32|0;f=F[x>>2];d=F[a+36>>2]-f>>2;a:{b:{if(d>>>0>>0){ra(x,e-d|0);F[h+56>>2]=0;F[h+60>>2]=0;F[h+48>>2]=0;F[h+52>>2]=0;F[h+40>>2]=0;F[h+44>>2]=0;F[h+32>>2]=0;F[h+36>>2]=0;F[h+24>>2]=0;F[h+28>>2]=0;F[h+16>>2]=0;F[h+20>>2]=0;F[h>>2]=0;break b}if(d>>>0>e>>>0){F[a+36>>2]=f+(e<<2)}F[h+56>>2]=0;F[h+60>>2]=0;F[h+48>>2]=0;F[h+52>>2]=0;F[h+40>>2]=0;F[h+44>>2]=0;F[h+32>>2]=0;F[h+36>>2]=0;F[h+24>>2]=0;F[h+28>>2]=0;F[h+16>>2]=0;F[h+20>>2]=0;F[h>>2]=0;d=0;if(!e){break a}}xa(h+16|0,e,h);i=F[h+28>>2];d=F[h+32>>2]}F[h>>2]=0;d=d-i>>2;c:{if(d>>>0>=e>>>0){if(d>>>0<=e>>>0){break c}F[h+32>>2]=(e<<2)+i;break c}xa(h+16|12,e-d|0,h)}F[h>>2]=0;f=F[h+40>>2];d=F[h+44>>2]-f>>2;d:{if(d>>>0>=e>>>0){if(d>>>0<=e>>>0){break d}F[h+44>>2]=f+(e<<2);break d}xa(h+40|0,e-d|0,h)}F[h>>2]=0;f=F[h+52>>2];d=F[h+56>>2]-f>>2;e:{if(d>>>0>=e>>>0){if(d>>>0<=e>>>0){break e}F[h+56>>2]=f+(e<<2);break e}xa(h+52|0,e-d|0,h)}f:{if(F[a+8>>2]<=0){break f}g=F[h+16>>2];j=F[a+32>>2];i=0;while(1){d=i<<2;f=F[d+g>>2];m=F[a+16>>2];g:{if((f|0)>(m|0)){F[d+j>>2]=m;break g}d=d+j|0;m=F[a+12>>2];if((m|0)>(f|0)){F[d>>2]=m;break g}F[d>>2]=f}i=i+1|0;d=F[a+8>>2];if((i|0)<(d|0)){continue}break}if((d|0)<=0){break f}d=0;while(1){g=d<<2;f=g+c|0;g=F[b+g>>2]+F[g+j>>2]|0;F[f>>2]=g;h:{if((g|0)>F[a+16>>2]){g=g-F[a+20>>2]|0}else{if((g|0)>=F[a+12>>2]){break h}g=g+F[a+20>>2]|0}F[f>>2]=g}d=d+1|0;if((d|0)>2]){continue}break}}H=F[a+52>>2];z=F[a+48>>2];y=na(16);d=y;F[d>>2]=0;F[d+4>>2]=0;F[d+8>>2]=0;F[d+12>>2]=0;F[h+8>>2]=0;F[h>>2]=0;F[h+4>>2]=0;i:{if(e){if(e>>>0>=1073741824){break i}d=e<<2;t=na(d);F[h>>2]=t;F[h+8>>2]=d+t;pa(t,0,d)}d=F[a+56>>2];A=F[d>>2];d=F[d+4>>2]-A|0;j:{if((d|0)<5){break j}w=d>>2;I=(w|0)<=2?2:w;J=w>>>0<=1?1:w;B=e&-2;C=e&1;K=e&-4;D=e&3;E=e-1|0;M=e<<2;N=e>>>0<4;G=1;m=1;while(1){k:{l:{m:{n:{if((m|0)!=(J|0)){o:{p:{f=F[(m<<2)+A>>2];if((f|0)==-1){break p}n=F[z+12>>2];d=f+2|0;g=(f>>>0)%3|0;q=n+((g?f-1|0:d)<<2)|0;j=0;u=(g|0)!=0|(d|0)!=-1;k=1;d=f;q:{while(1){g=F[n+(d<<2)>>2];r:{if((g|0)==-1){break r}l=-1;p=F[H>>2];r=F[z>>2];i=p+(F[r+(g<<2)>>2]<<2)|0;o=g+1|0;o=(o>>>0)%3|0?o:g-2|0;if((o|0)!=-1){l=F[r+(o<<2)>>2]}o=F[i>>2];s:{t:{if((g>>>0)%3|0){i=g-1|0;break t}i=g+2|0;s=-1;if((i|0)==-1){break s}}s=F[r+(i<<2)>>2]}if((m|0)<=(o|0)){break r}i=F[p+(l<<2)>>2];if((i|0)>=(m|0)){break r}l=F[p+(s<<2)>>2];if((l|0)>=(m|0)){break r}g=F[(h+16|0)+L(j,12)>>2];u:{if(!e){break u}l=L(e,l);r=L(e,i);p=L(e,o);i=0;s=0;if(E){while(1){F[g+(i<<2)>>2]=(F[(i+l<<2)+c>>2]+F[(i+r<<2)+c>>2]|0)-F[(i+p<<2)+c>>2];o=i|1;F[g+(o<<2)>>2]=(F[(l+o<<2)+c>>2]+F[(o+r<<2)+c>>2]|0)-F[(o+p<<2)+c>>2];i=i+2|0;s=s+2|0;if((B|0)!=(s|0)){continue}break}}if(!C){break u}F[g+(i<<2)>>2]=(F[(i+l<<2)+c>>2]+F[(i+r<<2)+c>>2]|0)-F[(i+p<<2)+c>>2]}g=4;j=j+1|0;if((j|0)==4){break q}}v:{if(k&1){i=d+1|0;d=(i>>>0)%3|0?i:d-2|0;g=-1;if((d|0)==-1){break v}d=F[n+(d<<2)>>2];g=-1;if((d|0)==-1){break v}g=d+1|0;g=(g>>>0)%3|0?g:d-2|0;break v}w:{if((d>>>0)%3|0){i=d-1|0;break w}i=d+2|0;g=-1;if((i|0)==-1){break v}}d=F[n+(i<<2)>>2];g=-1;if((d|0)==-1){break v}g=d-1|0;if((d>>>0)%3|0){break v}g=d+2|0}d=g;x:{if((f|0)==(d|0)){break x}if(!((k^1)&1|(d|0)!=-1)){if(!u){break x}d=F[q>>2];if((d|0)==-1){break x}k=0;d=(d>>>0)%3|0?d-1|0:d+2|0}if((d|0)!=-1){continue}}break}g=j;if((g|0)<=0){break p}}if(e){pa(t,0,M)}d=g-1|0;r=(d<<2)+y|0;d=L(d,12)+a|0;o=d;s=F[d- -64>>2];k=0;d=F[h>>2];f=0;while(1){j=F[r>>2];F[r>>2]=j+1;if(j>>>0>=s>>>0){break j}y:{if(F[F[o+60>>2]+(j>>>3&536870908)>>2]>>>j&1){break y}f=f+1|0;if(!e){break y}j=F[(h+16|0)+L(k,12)>>2];l=0;i=0;p=0;if(!N){while(1){n=i<<2;q=n+d|0;F[q>>2]=F[j+n>>2]+F[q>>2];q=n|4;u=q+d|0;F[u>>2]=F[j+q>>2]+F[u>>2];q=n|8;u=q+d|0;F[u>>2]=F[j+q>>2]+F[u>>2];n=n|12;q=n+d|0;F[q>>2]=F[j+n>>2]+F[q>>2];i=i+4|0;p=p+4|0;if((K|0)!=(p|0)){continue}break}}if(!D){break y}while(1){n=i<<2;p=n+d|0;F[p>>2]=F[j+n>>2]+F[p>>2];i=i+1|0;l=l+1|0;if((D|0)!=(l|0)){continue}break}}k=k+1|0;if((k|0)!=(g|0)){continue}break}g=L(e,m);if(!f){break o}if(!e){break l}i=0;d=0;if(E){break n}break m}g=L(e,m)}if(F[a+8>>2]<=0){break k}k=(L(m-1|0,e)<<2)+c|0;j=F[x>>2];i=0;while(1){d=i<<2;f=F[d+k>>2];l=F[a+16>>2];z:{if((f|0)>(l|0)){F[d+j>>2]=l;break z}d=d+j|0;l=F[a+12>>2];if((l|0)>(f|0)){F[d>>2]=l;break z}F[d>>2]=f}i=i+1|0;f=F[a+8>>2];if((i|0)<(f|0)){continue}break}d=0;if((f|0)<=0){break k}f=g<<2;i=f+c|0;k=b+f|0;while(1){g=d<<2;f=g+i|0;g=F[g+k>>2]+F[g+j>>2]|0;F[f>>2]=g;A:{if((g|0)>F[a+16>>2]){g=g-F[a+20>>2]|0}else{if((g|0)>=F[a+12>>2]){break A}g=g+F[a+20>>2]|0}F[f>>2]=g}d=d+1|0;if((d|0)>2]){continue}break}break k}va();v()}while(1){j=i<<2;k=j+t|0;F[k>>2]=F[k>>2]/(f|0);j=(j|4)+t|0;F[j>>2]=F[j>>2]/(f|0);i=i+2|0;d=d+2|0;if((B|0)!=(d|0)){continue}break}}if(!C){break l}d=(i<<2)+t|0;F[d>>2]=F[d>>2]/(f|0)}if(F[a+8>>2]<=0){break k}j=F[x>>2];i=0;while(1){d=i<<2;f=F[d+t>>2];k=F[a+16>>2];B:{if((f|0)>(k|0)){F[d+j>>2]=k;break B}d=d+j|0;k=F[a+12>>2];if((k|0)>(f|0)){F[d>>2]=k;break B}F[d>>2]=f}i=i+1|0;f=F[a+8>>2];if((i|0)<(f|0)){continue}break}d=0;if((f|0)<=0){break k}f=g<<2;i=f+c|0;k=b+f|0;while(1){g=d<<2;f=g+i|0;g=F[g+k>>2]+F[g+j>>2]|0;F[f>>2]=g;C:{if((g|0)>F[a+16>>2]){g=g-F[a+20>>2]|0}else{if((g|0)>=F[a+12>>2]){break C}g=g+F[a+20>>2]|0}F[f>>2]=g}d=d+1|0;if((d|0)>2]){continue}break}}m=m+1|0;G=(w|0)>(m|0);if((m|0)!=(I|0)){continue}break}}a=F[h>>2];if(a){ma(a)}ma(y);a=F[h+52>>2];if(a){F[h+56>>2]=a;ma(a)}a=F[h+40>>2];if(a){F[h+44>>2]=a;ma(a)}a=F[h+28>>2];if(a){F[h+32>>2]=a;ma(a)}a=F[h+16>>2];if(a){F[h+20>>2]=a;ma(a)}aa=h- -64|0;return(G^-1)&1}qa();v()}function Ed(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0;i=aa-96|0;aa=i;g=F[a+4>>2];d=F[g+32>>2];j=F[d+8>>2];f=j;n=F[d+12>>2];e=n;c=F[d+20>>2];o=F[d+16>>2];a:{if((e|0)<=(c|0)&o>>>0>=f>>>0|(c|0)>(e|0)){break a}m=F[d>>2];p=G[m+o|0];f=o+1|0;e=f?c:c+1|0;F[d+16>>2]=f;F[d+20>>2]=e;if((e|0)>=(n|0)&f>>>0>=j>>>0|(e|0)>(n|0)){break a}l=G[f+m|0];f=o+2|0;e=f>>>0<2?c+1|0:c;h=f;F[d+16>>2]=f;F[d+20>>2]=e;q=p<<24>>24;b:{if((q|0)>=0){f=F[a+216>>2];if(p>>>0>=(F[a+220>>2]-f|0)/144>>>0){break a}f=f+L(p,144)|0;if(F[f>>2]<0){break b}break a}if(F[a+212>>2]>=0){break a}f=a+212|0}F[f>>2]=b;c:{d:{e:{f:{g:{h:{f=H[g+36>>1];i:{if(((f<<8|f>>>8)&65535)>>>0>=258){if((e|0)>=(n|0)&h>>>0>=j>>>0|(e|0)>(n|0)){break a}f=G[h+m|0];e=o+3|0;c=e>>>0<3?c+1|0:c;F[d+16>>2]=e;F[d+20>>2]=c;c=f>>>0>1;if(c){break a}c=c?0:f;if(!l){break i}if(!c){break h}break a}if(l){break g}c=0}if((q|0)<0){e=a+184|0}else{d=F[a+216>>2]+L(p,144)|0;D[d+100|0]=0;e=d+104|0}d=e;if((c|0)!=1){break e}e=aa-112|0;aa=e;m=F[F[a+4>>2]+44>>2];c=na(120);F[c>>2]=8924;F[c+4>>2]=0;F[c+116>>2]=0;F[c+112>>2]=d;F[c+108>>2]=m;F[c+12>>2]=0;F[c+16>>2]=0;F[c+20>>2]=0;F[c+24>>2]=0;F[c+28>>2]=0;F[c+32>>2]=0;F[c+36>>2]=0;F[c+40>>2]=0;F[c+44>>2]=0;F[c+48>>2]=0;F[c+52>>2]=0;F[c+56>>2]=0;F[c+60>>2]=0;F[c+8>>2]=9136;f=c- -64|0;F[f>>2]=0;F[f+4>>2]=0;F[c+72>>2]=0;F[c+76>>2]=0;F[c+80>>2]=0;F[c+84>>2]=0;F[c+88>>2]=0;F[c+104>>2]=0;F[c+96>>2]=0;F[c+100>>2]=0;j=F[a+8>>2];F[e+48>>2]=0;F[e+52>>2]=0;F[e+40>>2]=0;F[e+44>>2]=0;l=e+32|0;f=l;F[f>>2]=0;F[f+4>>2]=0;F[e+24>>2]=0;F[e+28>>2]=0;f=e- -64|0;F[f>>2]=0;F[f+4>>2]=0;F[e+72>>2]=0;F[e+76>>2]=0;F[e+80>>2]=0;F[e+84>>2]=0;F[e+88>>2]=0;F[e+104>>2]=0;F[e+16>>2]=0;F[e+20>>2]=0;F[e+56>>2]=0;F[e+60>>2]=0;F[e+8>>2]=9136;F[e+96>>2]=0;F[e+100>>2]=0;F[e+12>>2]=j;h=F[j>>2];f=F[j+4>>2];D[e+111|0]=0;n=l;l=e+111|0;Ha(n,(f-h>>2>>>0)/3|0,l);f=F[e+12>>2];h=F[f+28>>2];f=F[f+24>>2];D[e+111|0]=0;Ha(e+44|0,h-f>>2,l);F[e+28>>2]=c;F[e+24>>2]=m;F[e+20>>2]=d;F[e+16>>2]=j;d=c+8|0;h=e+8|0;jc(d,h);j:{if((d|0)==(h|0)){F[c+92>>2]=F[h+84>>2];break j}ib(c+56|0,F[h+48>>2],F[h+52>>2]);ib(c+68|0,F[h+60>>2],F[h- -64>>2]);ib(c+80|0,F[h+72>>2],F[h+76>>2]);F[c+92>>2]=F[h+84>>2];k:{l=F[h+92>>2];j=F[h+88>>2];h=l-j|0;m=h>>2;f=F[c+104>>2];g=F[c+96>>2];if(m>>>0<=f-g>>2>>>0){d=F[c+100>>2]-g|0;f=d>>2;h=f>>>0>>0?d+j|0:l;d=h-j|0;if((h|0)!=(j|0)){Sa(g,j,d)}if(f>>>0>>0){d=F[c+100>>2];f=l-h|0;if((f|0)>0){d=oa(d,h,f)+f|0}F[c+100>>2]=d;break k}F[c+100>>2]=d+g;break k}if(g){F[c+100>>2]=g;ma(g);F[c+104>>2]=0;F[c+96>>2]=0;F[c+100>>2]=0;f=0}l:{if((h|0)<0){break l}d=f>>1;d=f>>>0>=2147483644?1073741823:d>>>0>m>>>0?d:m;if(d>>>0>=1073741824){break l}f=d<<2;d=na(f);F[c+96>>2]=d;F[c+100>>2]=d;F[c+104>>2]=d+f;if((j|0)!=(l|0)){d=oa(d,j,h)+h|0}F[c+100>>2]=d;break k}qa();v()}}F[e+8>>2]=9136;d=F[e+96>>2];if(d){F[e+100>>2]=d;ma(d)}d=F[e+80>>2];if(d){F[e+84>>2]=d;ma(d)}d=F[e+68>>2];if(d){F[e+72>>2]=d;ma(d)}d=F[e+56>>2];if(d){F[e+60>>2]=d;ma(d)}F[e+8>>2]=9372;d=F[e+44>>2];if(d){ma(d)}d=F[e+32>>2];if(d){ma(d)}aa=e+112|0;break d}if((q|0)>=0){break f}break a}if((q|0)<0){break a}}d=F[a+216>>2];f=F[g+44>>2];c=na(80);F[c>>2]=9684;F[c+4>>2]=0;F[c+76>>2]=0;F[c+68>>2]=f;F[c+8>>2]=8624;F[c+12>>2]=0;F[c+16>>2]=0;F[c+20>>2]=0;F[c+24>>2]=0;F[c+28>>2]=0;F[c+32>>2]=0;F[c+36>>2]=0;F[c+40>>2]=0;F[c+44>>2]=0;F[c+48>>2]=0;F[c+52>>2]=0;k=d+L(p,144)|0;e=k+104|0;F[c+72>>2]=e;F[c- -64>>2]=0;F[c+56>>2]=0;F[c+60>>2]=0;F[i+24>>2]=f;F[i+68>>2]=0;F[i+72>>2]=0;F[i+60>>2]=0;F[i+64>>2]=0;F[i+52>>2]=0;F[i+56>>2]=0;F[i+44>>2]=0;F[i+48>>2]=0;F[i+84>>2]=0;F[i+88>>2]=0;F[i+76>>2]=0;F[i+80>>2]=0;F[i+28>>2]=c;d=F[i+28>>2];F[i+8>>2]=F[i+24>>2];F[i+12>>2]=d;F[i+20>>2]=e;e=k+4|0;F[i+16>>2]=e;F[i+36>>2]=0;F[i+40>>2]=0;F[i+32>>2]=8624;d=F[i+20>>2];F[i>>2]=F[i+16>>2];F[i+4>>2]=d;k=i+32|0;Dd(k,e,i);d=c+8|0;jc(d,k);if((d|0)!=(k|0)){ib(c+56|0,F[k+48>>2],F[k+52>>2])}Cd(k);break c}g=aa+-64|0;aa=g;m=F[F[a+4>>2]+44>>2];c=na(80);F[c>>2]=9392;F[c+4>>2]=0;F[c+76>>2]=0;F[c+72>>2]=d;F[c+68>>2]=m;F[c+8>>2]=9556;F[c+12>>2]=0;F[c+16>>2]=0;F[c+20>>2]=0;F[c+24>>2]=0;F[c+28>>2]=0;F[c+32>>2]=0;F[c+36>>2]=0;F[c+40>>2]=0;F[c+44>>2]=0;F[c+48>>2]=0;F[c+52>>2]=0;F[c- -64>>2]=0;l=c+56|0;e=l;F[e>>2]=0;F[e+4>>2]=0;j=F[a+8>>2];F[g+40>>2]=0;F[g+44>>2]=0;F[g+32>>2]=0;F[g+36>>2]=0;h=g+24|0;e=h;F[e>>2]=0;F[e+4>>2]=0;F[g+16>>2]=0;F[g+20>>2]=0;F[g+56>>2]=0;F[g+8>>2]=0;F[g+12>>2]=0;F[g+48>>2]=0;F[g+52>>2]=0;F[g>>2]=9556;F[g+4>>2]=j;f=F[j>>2];e=F[j+4>>2];D[g+63|0]=0;n=h;h=g+63|0;Ha(n,(e-f>>2>>>0)/3|0,h);e=F[g+4>>2];f=F[e+28>>2];e=F[e+24>>2];D[g+63|0]=0;Ha(g+36|0,f-e>>2,h);F[g+20>>2]=c;F[g+16>>2]=m;F[g+12>>2]=d;F[g+8>>2]=j;jc(c+8|0,g);ib(l,F[g+48>>2],F[g+52>>2]);F[g>>2]=9556;d=F[g+48>>2];if(d){F[g+52>>2]=d;ma(d)}F[g>>2]=9372;d=F[g+36>>2];if(d){ma(d)}d=F[g+24>>2];if(d){ma(d)}aa=g- -64|0}if(!c){break a}}c=xc(na(64),c);h=F[a+4>>2];a=c;c=b;m:{n:{if((c|0)>=0){e=h+8|0;b=F[h+12>>2];d=F[h+8>>2];f=b-d>>2;o:{if((f|0)>(c|0)){break o}k=c+1|0;if(c>>>0>=f>>>0){Qb(e,k-f|0);break o}if(f>>>0<=k>>>0){break o}d=d+(k<<2)|0;if((d|0)!=(b|0)){while(1){b=b-4|0;k=F[b>>2];F[b>>2]=0;if(k){ca[F[F[k>>2]+4>>2]](k)}if((b|0)!=(d|0)){continue}break}}F[h+12>>2]=d}d=F[e>>2]+(c<<2)|0;b=F[d>>2];F[d>>2]=a;if(b){break n}break m}b=a;if(!a){break m}}ca[F[F[b>>2]+4>>2]](b)}k=(c^-1)>>>31|0}aa=i+96|0;return k|0}function Vh(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,E=0,H=0,I=0,J=0,K=0,L=0,M=0,N=0,O=0,P=0,Q=0,R=0,S=0,T=0,U=0,V=0,W=0,X=0,Y=0;a:{if((e|0)==2){F[a+8>>2]=2;F[a- -64>>2]=f;O=a+32|0;e=F[O>>2];d=F[a+36>>2]-e|0;b:{if(d>>>0<=7){ra(O,2-(d>>>2|0)|0);break b}if((d|0)==8){break b}F[a+36>>2]=e+8}d=F[a+56>>2];d=F[d+4>>2]-F[d>>2]|0;c:{if((d|0)<=0){f=0;break c}p=a+60|0;P=d>>2;V=(P|0)<=1?1:P;W=a+68|0;f=1;while(1){e=F[a+56>>2];d=F[e>>2];if(F[e+4>>2]-d>>2>>>0<=u>>>0){break a}k=aa-80|0;aa=k;n=-1;d:{e:{d=F[d+(u<<2)>>2];if((d|0)==-1){break e}m=F[p+32>>2];e=d+1|0;e=(e>>>0)%3|0?e:d-2|0;if((e|0)!=-1){n=F[F[m>>2]+(e<<2)>>2]}e=-1;d=d+((d>>>0)%3|0?-1:2)|0;if((d|0)!=-1){e=F[F[m>>2]+(d<<2)>>2]}d=F[p+36>>2];m=F[d>>2];d=F[d+4>>2]-m>>2;if(d>>>0<=n>>>0|d>>>0<=e>>>0){break e}f:{g:{h:{i:{j:{k:{h=F[m+(e<<2)>>2];d=F[m+(n<<2)>>2];if((h|0)>=(u|0)|(d|0)>=(u|0)){break k}e=(h<<3)+c|0;y=F[e+4>>2];n=(d<<3)+c|0;m=F[n+4>>2];J=F[e>>2];n=F[n>>2];if(!((J|0)!=(n|0)|(m|0)!=(y|0))){F[p+8>>2]=n;F[p+12>>2]=m;break j}e=F[F[p+4>>2]+(u<<2)>>2];F[k+72>>2]=0;F[k+76>>2]=0;g=k- -64|0;F[g>>2]=0;F[g+4>>2]=0;F[k+56>>2]=0;F[k+60>>2]=0;g=F[p>>2];if(!G[g+84|0]){e=F[F[g+68>>2]+(e<<2)>>2]}Ia(g,e,D[g+24|0],k+56|0);e=F[F[p+4>>2]+(d<<2)>>2];F[k+48>>2]=0;F[k+52>>2]=0;F[k+40>>2]=0;F[k+44>>2]=0;F[k+32>>2]=0;F[k+36>>2]=0;g=F[p>>2];if(!G[g+84|0]){e=F[F[g+68>>2]+(e<<2)>>2]}Ia(g,e,D[g+24|0],k+32|0);e=F[F[p+4>>2]+(h<<2)>>2];F[k+24>>2]=0;F[k+28>>2]=0;F[k+16>>2]=0;F[k+20>>2]=0;F[k+8>>2]=0;F[k+12>>2]=0;g=F[p>>2];if(!G[g+84|0]){e=F[F[g+68>>2]+(e<<2)>>2]}Ia(g,e,D[g+24|0],k+8|0);Q=F[k+44>>2];e=F[k+16>>2];K=F[k+40>>2];g=K;i=F[k+20>>2]-(Q+(e>>>0>>0)|0)|0;s=e-g|0;e=gi(s,i,s,i);h=ba;l=e;R=F[k+36>>2];e=F[k+8>>2];L=F[k+32>>2];g=L;o=F[k+12>>2]-(R+(e>>>0>>0)|0)|0;g=e-g|0;r=gi(g,o,g,o);e=l+r|0;l=ba+h|0;l=e>>>0>>0?l+1|0:l;j=e;S=F[k+52>>2];e=F[k+24>>2];M=F[k+48>>2];h=M;r=F[k+28>>2]-(S+(e>>>0>>0)|0)|0;w=e-h|0;t=gi(w,r,w,r);h=j+t|0;e=ba+l|0;x=h;t=h>>>0>>0?e+1|0:e;if(!(h|t)){break k}e=0;N=ii(-1,2147483647,x,t);d=n>>31;T=d;l=d>>31;h=l;j=d^h;d=h^n;h=j-((h>>>0>d>>>0)+h|0)|0;A=d-l|0;d=m>>31;U=d;q=d>>31;B=q^m;C=B-q|0;l=d>>31;d=(l^d)-((q>>>0>B>>>0)+l|0)|0;l=(h|0)==(d|0)&A>>>0>C>>>0|d>>>0>>0;q=l?A:C;E=ba;d=l?h:d;if((E|0)==(d|0)&q>>>0>N>>>0|d>>>0>E>>>0){break f}l=F[k+64>>2];d=l;E=F[k+68>>2];d=gi(d-K|0,E-((d>>>0>>0)+Q|0)|0,s,i);h=ba;j=d;A=F[k+56>>2];d=A;N=F[k+60>>2];q=gi(d-L|0,N-((d>>>0>>0)+R|0)|0,g,o);d=j+q|0;j=ba+h|0;j=d>>>0>>0?j+1|0:j;h=d;B=F[k+72>>2];d=B;C=F[k+76>>2];q=gi(d-M|0,C-((d>>>0>>0)+S|0)|0,w,r);h=h+q|0;d=ba+j|0;z=h;q=h>>>0>>0?d+1|0:d;d=o>>31;h=d;j=g^d;d=(d^o)-(d+(d>>>0>j>>>0)|0)|0;H=j-h|0;j=i>>31;h=j;j=h^s;I=j-h|0;h=(i^h)-((h>>>0>j>>>0)+h|0)|0;j=(d|0)==(h|0)&H>>>0>I>>>0|d>>>0>h>>>0;H=j?H:I;d=j?d:h;j=r>>31;h=j;j=h^w;I=j-h|0;h=(h^r)-((h>>>0>j>>>0)+h|0)|0;j=(d|0)==(h|0)&H>>>0>I>>>0|d>>>0>h>>>0;h=ii(-1,2147483647,j?H:I,j?d:h)>>>0>>0;d=ba;if(h&(d|0)<=(q|0)|(d|0)<(q|0)){break f}h=1;d=0;e=l;s=hi(gi(s,i,z,q),ba,x,t);l=s+K|0;i=ba+Q|0;i=l>>>0>>0?i+1|0:i;i=E-((e>>>0>>0)+i|0)|0;e=e-l|0;e=gi(e,i,e,i);l=ba;i=A;j=e;o=hi(gi(g,o,z,q),ba,x,t);g=o+L|0;e=ba+R|0;e=g>>>0>>0?e+1|0:e;e=N-((g>>>0>i>>>0)+e|0)|0;g=i-g|0;g=gi(g,e,g,e);e=j+g|0;l=ba+l|0;l=e>>>0>>0?l+1|0:l;g=e;e=B;j=g;o=hi(gi(w,r,z,q),ba,x,t);g=o+M|0;i=ba+S|0;i=g>>>0>>0?i+1|0:i;i=C-((e>>>0>>0)+i|0)|0;e=e-g|0;i=gi(e,i,e,i);g=j+i|0;e=ba+l|0;i=gi(g,g>>>0>>0?e+1|0:e,x,t);e=ba;o=e;if(!e&i>>>0<=1){break i}r=i;g=o;while(1){e=d<<1|h>>>31;h=h<<1;d=e;l=!g&r>>>0>7|(g|0)!=0;r=(g&3)<<30|r>>>2;g=g>>>2|0;if(l){continue}break}break h}if((d|0)<(u|0)){d=d<<1}else{if((u|0)<=0){F[p+8>>2]=0;F[p+12>>2]=0;break j}d=(u<<1)-2|0}d=(d<<2)+c|0;F[p+8>>2]=F[d>>2];F[p+12>>2]=F[d+4>>2]}e=1;break f}d=o;h=i;if(h-1|0){break g}}while(1){e=ii(i,o,h,d)+h|0;j=d+ba|0;j=e>>>0>>0?j+1|0:j;h=(j&1)<<31|e>>>1;d=j>>>1|0;e=gi(h,d,h,d);g=ba;if((o|0)==(g|0)&e>>>0>i>>>0|g>>>0>o>>>0){continue}break}}e=F[p+20>>2];if(e){g=e-1|0;o=F[F[p+16>>2]+(g>>>3&536870908)>>2];F[p+20>>2]=g;r=y-m|0;l=(y>>31)-((m>>>0>y>>>0)+U|0)|0;i=gi(z,q,r,l);s=ba;w=gi(x,t,m,U);m=w+i|0;i=ba+s|0;i=m>>>0>>0?i+1|0:i;j=m;s=J-n|0;w=(J>>31)-((n>>>0>J>>>0)+T|0)|0;m=gi(h,d,s,w);y=m;m=o>>>g&1;o=m?0-y|0:y;g=j+o|0;j=i;i=ba;j=j+(m?0-(i+((y|0)!=0)|0)|0:i)|0;X=p,Y=hi(g,g>>>0>>0?j+1|0:j,x,t),F[X+12>>2]=Y;g=gi(s,w,z,q);i=ba;j=g;g=gi(x,t,n,T);n=j+g|0;i=ba+i|0;i=g>>>0>n>>>0?i+1|0:i;d=gi(h,d,r,l);g=m?d:0-d|0;n=g+n|0;h=ba;l=(m?h:0-(((d|0)!=0)+h|0)|0)+i|0;X=p,Y=hi(n,g>>>0>n>>>0?l+1|0:l,x,t),F[X+8>>2]=Y}e=(e|0)!=0}aa=k+80|0;break d}va();v()}if(!e){break c}l:{if(F[a+8>>2]<=0){break l}n=F[O>>2];d=0;while(1){e=d<<2;f=F[e+W>>2];m=F[a+16>>2];m:{if((f|0)>(m|0)){F[e+n>>2]=m;break m}e=e+n|0;m=F[a+12>>2];if((m|0)>(f|0)){F[e>>2]=m;break m}F[e>>2]=f}d=d+1|0;f=F[a+8>>2];if((d|0)<(f|0)){continue}break}e=0;if((f|0)<=0){break l}d=u<<3;m=d+c|0;g=b+d|0;while(1){f=e<<2;d=f+m|0;f=F[f+g>>2]+F[f+n>>2]|0;F[d>>2]=f;n:{if((f|0)>F[a+16>>2]){f=f-F[a+20>>2]|0}else{if((f|0)>=F[a+12>>2]){break n}f=f+F[a+20>>2]|0}F[d>>2]=f}e=e+1|0;if((e|0)>2]){continue}break}}u=u+1|0;f=(P|0)>(u|0);if((u|0)!=(V|0)){continue}break}}a=f^1}else{a=0}return a&1}va();v()}function ei(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,E=0,H=0,I=0,J=0,K=0,L=0,M=0,N=0,O=0,P=0,Q=0,R=0,S=0,T=0,U=0,V=0,W=0,X=0,Y=0;a:{if((e|0)==2){F[a+8>>2]=2;F[a- -64>>2]=f;O=a+32|0;e=F[O>>2];d=F[a+36>>2]-e|0;b:{if(d>>>0<=7){ra(O,2-(d>>>2|0)|0);break b}if((d|0)==8){break b}F[a+36>>2]=e+8}d=F[a+56>>2];d=F[d+4>>2]-F[d>>2]|0;c:{if((d|0)<=0){f=0;break c}o=a+60|0;P=d>>2;V=(P|0)<=1?1:P;W=a+68|0;f=1;while(1){d=F[a+56>>2];m=F[d>>2];if(F[d+4>>2]-m>>2>>>0<=u>>>0){break a}k=aa-80|0;aa=k;e=-1;m=F[m+(u<<2)>>2];d=-1;d:{if((m|0)==-1){break d}d=m+1|0;e=(d>>>0)%3|0?d:m-2|0;d=m-1|0;if((m>>>0)%3|0){break d}d=m+2|0}l=F[o+36>>2];m=F[l>>2];e:{f:{g:{h:{i:{l=F[l+4>>2]-m>>2;g=e<<2;e=F[F[o+32>>2]+28>>2];j=F[g+e>>2];if(l>>>0<=j>>>0){break i}e=F[e+(d<<2)>>2];if(e>>>0>=l>>>0){break i}d=F[m+(j<<2)>>2];j:{k:{j=F[m+(e<<2)>>2];if((j|0)>=(u|0)|(d|0)>=(u|0)){break k}e=(j<<3)+c|0;w=F[e+4>>2];m=(d<<3)+c|0;l=F[m+4>>2];A=F[e>>2];m=F[m>>2];if(!((A|0)!=(m|0)|(l|0)!=(w|0))){F[o+8>>2]=m;F[o+12>>2]=l;break j}t=F[F[o+4>>2]+(u<<2)>>2];F[k+72>>2]=0;F[k+76>>2]=0;e=k- -64|0;F[e>>2]=0;F[e+4>>2]=0;F[k+56>>2]=0;F[k+60>>2]=0;e=F[o>>2];if(!G[e+84|0]){t=F[F[e+68>>2]+(t<<2)>>2]}Ia(e,t,D[e+24|0],k+56|0);t=F[F[o+4>>2]+(d<<2)>>2];F[k+48>>2]=0;F[k+52>>2]=0;F[k+40>>2]=0;F[k+44>>2]=0;F[k+32>>2]=0;F[k+36>>2]=0;e=F[o>>2];if(!G[e+84|0]){t=F[F[e+68>>2]+(t<<2)>>2]}Ia(e,t,D[e+24|0],k+32|0);t=F[F[o+4>>2]+(j<<2)>>2];F[k+24>>2]=0;F[k+28>>2]=0;F[k+16>>2]=0;F[k+20>>2]=0;F[k+8>>2]=0;F[k+12>>2]=0;e=F[o>>2];if(!G[e+84|0]){t=F[F[e+68>>2]+(t<<2)>>2]}Ia(e,t,D[e+24|0],k+8|0);Q=F[k+44>>2];e=F[k+16>>2];z=F[k+40>>2];j=z;h=F[k+20>>2]-(Q+(e>>>0>>0)|0)|0;s=e-j|0;e=gi(s,h,s,h);r=ba;g=e;R=F[k+36>>2];e=F[k+8>>2];L=F[k+32>>2];j=L;n=F[k+12>>2]-(R+(e>>>0>>0)|0)|0;j=e-j|0;p=gi(j,n,j,n);g=g+p|0;e=ba+r|0;e=g>>>0

>>0?e+1|0:e;i=g;S=F[k+52>>2];g=F[k+24>>2];M=F[k+48>>2];p=M;r=F[k+28>>2]-(S+(g>>>0

>>0)|0)|0;x=g-p|0;p=gi(x,r,x,r);g=i+p|0;e=ba+e|0;y=g;p=g>>>0

>>0?e+1|0:e;if(!(g|p)){break k}t=0;N=ii(-1,2147483647,y,p);d=m>>31;T=d;e=d>>31;g=d^e;d=e^m;g=g-((e>>>0>d>>>0)+e|0)|0;C=d-e|0;d=l>>31;U=d;q=d>>31;E=q^l;H=E-q|0;e=d>>31;d=(e^d)-((q>>>0>E>>>0)+e|0)|0;e=(g|0)==(d|0)&C>>>0>H>>>0|d>>>0>>0;q=e?C:H;I=ba;d=e?g:d;if((I|0)==(d|0)&q>>>0>N>>>0|d>>>0>I>>>0){break e}e=F[k+64>>2];I=F[k+68>>2];d=gi(e-z|0,I-((e>>>0>>0)+Q|0)|0,s,h);g=ba;i=d;C=F[k+56>>2];d=C;N=F[k+60>>2];q=gi(d-L|0,N-((d>>>0>>0)+R|0)|0,j,n);d=i+q|0;i=ba+g|0;i=d>>>0>>0?i+1|0:i;g=d;E=F[k+72>>2];d=E;H=F[k+76>>2];q=gi(d-M|0,H-((d>>>0>>0)+S|0)|0,x,r);g=g+q|0;d=ba+i|0;B=g;q=g>>>0>>0?d+1|0:d;d=n>>31;g=d;i=d^j;d=(d^n)-(d+(d>>>0>i>>>0)|0)|0;J=i-g|0;i=h>>31;g=i;i=g^s;K=i-g|0;g=(h^g)-((g>>>0>i>>>0)+g|0)|0;i=(d|0)==(g|0)&J>>>0>K>>>0|d>>>0>g>>>0;J=i?J:K;d=i?d:g;i=r>>31;g=i;i=g^x;K=i-g|0;g=(g^r)-((g>>>0>i>>>0)+g|0)|0;i=(d|0)==(g|0)&J>>>0>K>>>0|d>>>0>g>>>0;g=ii(-1,2147483647,i?J:K,i?d:g)>>>0>>0;d=ba;if(g&(d|0)<=(q|0)|(d|0)<(q|0)){break e}g=1;d=0;i=z;z=hi(gi(s,h,B,q),ba,y,p);s=i+z|0;h=ba+Q|0;h=s>>>0>>0?h+1|0:h;h=I-((e>>>0>>0)+h|0)|0;e=e-s|0;e=gi(e,h,e,h);s=ba;h=C;i=e;n=hi(gi(j,n,B,q),ba,y,p);j=n+L|0;e=ba+R|0;e=j>>>0>>0?e+1|0:e;e=N-((h>>>0>>0)+e|0)|0;j=h-j|0;h=gi(j,e,j,e);j=i+h|0;e=ba+s|0;e=h>>>0>j>>>0?e+1|0:e;h=j;j=e;e=E;i=h;r=hi(gi(x,r,B,q),ba,y,p);n=r+M|0;h=ba+S|0;h=n>>>0>>0?h+1|0:h;h=H-((e>>>0>>0)+h|0)|0;e=e-n|0;n=gi(e,h,e,h);h=i+n|0;e=ba+j|0;h=gi(h,h>>>0>>0?e+1|0:e,y,p);e=ba;n=e;if(!e&h>>>0<=1){break h}r=h;j=n;while(1){e=d<<1|g>>>31;g=g<<1;d=e;s=!j&r>>>0>7|(j|0)!=0;r=(j&3)<<30|r>>>2;j=j>>>2|0;if(s){continue}break}break g}if((d|0)<(u|0)){d=d<<1}else{if((u|0)<=0){F[o+8>>2]=0;F[o+12>>2]=0;break j}d=(u<<1)-2|0}d=(d<<2)+c|0;F[o+8>>2]=F[d>>2];F[o+12>>2]=F[d+4>>2]}t=1;break e}va();v()}d=n;g=h;if(g-1|0){break f}}while(1){e=ii(h,n,g,d)+g|0;i=d+ba|0;i=e>>>0>>0?i+1|0:i;g=(i&1)<<31|e>>>1;d=i>>>1|0;e=gi(g,d,g,d);j=ba;if((n|0)==(j|0)&e>>>0>h>>>0|j>>>0>n>>>0){continue}break}}j=F[o+20>>2];if(j){e=j-1|0;n=F[F[o+16>>2]+(e>>>3&536870908)>>2];F[o+20>>2]=e;r=w-l|0;s=(w>>31)-((l>>>0>w>>>0)+U|0)|0;h=gi(B,q,r,s);x=ba;w=gi(y,p,l,U);l=w+h|0;h=ba+x|0;h=l>>>0>>0?h+1|0:h;i=l;x=A-m|0;w=(A>>31)-((m>>>0>A>>>0)+T|0)|0;l=gi(g,d,x,w);A=l;e=n>>>e&1;n=e?0-l|0:l;l=i+n|0;i=h;h=ba;i=i+(e?0-(h+((A|0)!=0)|0)|0:h)|0;X=o,Y=hi(l,l>>>0>>0?i+1|0:i,y,p),F[X+12>>2]=Y;l=gi(x,w,B,q);h=ba;n=l;l=gi(y,p,m,T);m=n+l|0;h=ba+h|0;h=m>>>0>>0?h+1|0:h;d=gi(g,d,r,s);l=e?d:0-d|0;m=l+m|0;g=ba;e=(e?g:0-(((d|0)!=0)+g|0)|0)+h|0;X=o,Y=hi(m,m>>>0>>0?e+1|0:e,y,p),F[X+8>>2]=Y}t=(j|0)!=0}aa=k+80|0;if(!t){break c}l:{if(F[a+8>>2]<=0){break l}m=F[O>>2];d=0;while(1){e=d<<2;f=F[e+W>>2];l=F[a+16>>2];m:{if((f|0)>(l|0)){F[e+m>>2]=l;break m}e=e+m|0;l=F[a+12>>2];if((l|0)>(f|0)){F[e>>2]=l;break m}F[e>>2]=f}d=d+1|0;f=F[a+8>>2];if((d|0)<(f|0)){continue}break}e=0;if((f|0)<=0){break l}d=u<<3;l=d+c|0;j=b+d|0;while(1){f=e<<2;d=f+l|0;f=F[f+j>>2]+F[f+m>>2]|0;F[d>>2]=f;n:{if((f|0)>F[a+16>>2]){f=f-F[a+20>>2]|0}else{if((f|0)>=F[a+12>>2]){break n}f=f+F[a+20>>2]|0}F[d>>2]=f}e=e+1|0;if((e|0)>2]){continue}break}}u=u+1|0;f=(P|0)>(u|0);if((u|0)!=(V|0)){continue}break}}a=f^1}else{a=0}return a&1}va();v()}function Bb(a,b,c,d){var e=0,f=0,g=0,h=0,i=0,j=0,k=M(0),l=0,m=M(0),n=0;a:{b:{if(!d){break b}c:{switch(F[a+28>>2]-1|0){case 0:e=G[a+24|0];f=c&255;if(e>>>0>>0?e:f){g=F[a>>2];e=F[g>>2];b=F[a+48>>2]+gi(F[a+40>>2],F[a+44>>2],b,0)|0;b=e+b|0;g=F[g+4>>2];while(1){if(b>>>0>=g>>>0){break b}E[(h<<1)+d>>1]=D[b|0];b=b+1|0;h=h+1|0;e=G[a+24|0];if(h>>>0<(e>>>0>>0?e:f)>>>0){continue}break}}i=1;if(e>>>0>=f>>>0){break b}break a;case 1:e=G[a+24|0];f=c&255;if(e>>>0>>0?e:f){g=F[a>>2];e=F[g>>2];b=F[a+48>>2]+gi(F[a+40>>2],F[a+44>>2],b,0)|0;b=e+b|0;g=F[g+4>>2];while(1){if(b>>>0>=g>>>0){break b}E[(h<<1)+d>>1]=G[b|0];b=b+1|0;h=h+1|0;e=G[a+24|0];if(h>>>0<(e>>>0>>0?e:f)>>>0){continue}break}}i=1;if(e>>>0>=f>>>0){break b}break a;case 2:e=G[a+24|0];f=c&255;if(e>>>0>>0?e:f){g=F[a>>2];e=F[g>>2];b=F[a+48>>2]+gi(F[a+40>>2],F[a+44>>2],b,0)|0;b=e+b|0;g=F[g+4>>2];while(1){if(b>>>0>=g>>>0){break b}E[(h<<1)+d>>1]=H[b>>1];b=b+2|0;h=h+1|0;e=G[a+24|0];if(h>>>0<(e>>>0>>0?e:f)>>>0){continue}break}}i=1;if(e>>>0>=f>>>0){break b}break a;case 3:e=G[a+24|0];f=c&255;if(e>>>0>>0?e:f){g=F[a>>2];e=F[g>>2];b=F[a+48>>2]+gi(F[a+40>>2],F[a+44>>2],b,0)|0;b=e+b|0;g=F[g+4>>2];while(1){if(b>>>0>=g>>>0){return 0}e=E[b>>1];if((e|0)<0){break b}E[(h<<1)+d>>1]=e;b=b+2|0;h=h+1|0;e=G[a+24|0];if(h>>>0<(e>>>0>>0?e:f)>>>0){continue}break}}i=1;if(e>>>0>=f>>>0){break b}break a;case 4:e=G[a+24|0];f=c&255;if(e>>>0>>0?e:f){g=F[a>>2];e=F[g>>2];b=F[a+48>>2]+gi(F[a+40>>2],F[a+44>>2],b,0)|0;b=e+b|0;g=F[g+4>>2];while(1){if(b>>>0>=g>>>0){break b}e=F[b>>2];if(e-32768>>>0<4294901760){break b}E[(h<<1)+d>>1]=e;b=b+4|0;h=h+1|0;e=G[a+24|0];if(h>>>0<(e>>>0>>0?e:f)>>>0){continue}break}}i=1;if(e>>>0>=f>>>0){break b}break a;case 5:e=G[a+24|0];f=c&255;if(e>>>0>>0?e:f){g=F[a>>2];e=F[g>>2];b=F[a+48>>2]+gi(F[a+40>>2],F[a+44>>2],b,0)|0;b=e+b|0;g=F[g+4>>2];while(1){if(b>>>0>=g>>>0){break b}e=F[b>>2];if(e>>>0>32767){break b}E[(h<<1)+d>>1]=e;b=b+4|0;h=h+1|0;e=G[a+24|0];if(h>>>0<(e>>>0>>0?e:f)>>>0){continue}break}}i=1;if(e>>>0>=f>>>0){break b}break a;case 6:e=G[a+24|0];f=c&255;if(e>>>0>>0?e:f){g=F[a>>2];e=F[g>>2];b=F[a+48>>2]+gi(F[a+40>>2],F[a+44>>2],b,0)|0;b=e+b|0;g=F[g+4>>2];while(1){if(b>>>0>=g>>>0){break b}l=F[b>>2];e=F[b+4>>2]-(l>>>0<32768)|0;if((e|0)==-1&l-32768>>>0<4294901760|(e|0)!=-1){break b}E[(h<<1)+d>>1]=l;b=b+8|0;h=h+1|0;e=G[a+24|0];if(h>>>0<(e>>>0>>0?e:f)>>>0){continue}break}}i=1;if(e>>>0>=f>>>0){break b}break a;case 7:e=G[a+24|0];f=c&255;if(e>>>0>>0?e:f){g=F[a>>2];e=F[g>>2];b=F[a+48>>2]+gi(F[a+40>>2],F[a+44>>2],b,0)|0;b=e+b|0;g=F[g+4>>2];while(1){if(b>>>0>=g>>>0){break b}e=F[b+4>>2];l=F[b>>2];if(!e&l>>>0>32767|e){break b}E[(h<<1)+d>>1]=l;b=b+8|0;h=h+1|0;e=G[a+24|0];if(h>>>0<(e>>>0>>0?e:f)>>>0){continue}break}}i=1;if(e>>>0>=f>>>0){break b}break a;case 8:d:{e:{e=G[a+24|0];c=c&255;if(!(c>>>0>e>>>0?e:c)){break e}i=F[a>>2];g=F[i>>2];b=F[a+48>>2]+gi(F[a+40>>2],F[a+44>>2],b,0)|0;h=g+b|0;f=F[i+4>>2];e=f-g|0;if(!G[a+32|0]){i=0;if((b|0)>=(e|0)){break d}b=0;while(1){k=J[h>>2];if(k=M(32767)){break d}g=(b<<1)+d|0;if(m>1]=e;b=b+1|0;e=G[a+24|0];if(b>>>0>=(c>>>0>e>>>0?e:c)>>>0){break e}h=h+4|0;if(f>>>0>h>>>0){continue}break}break d}i=0;if((b|0)>=(e|0)){break d}b=0;while(1){k=J[h>>2];if(k=M(32767))){break d}if(kM(1)){break d}g=(b<<1)+d|0;j=R(+k*32767+.5);f:{if(N(j)<2147483648){e=~~j;break f}e=-2147483648}E[g>>1]=e;b=b+1|0;e=G[a+24|0];if(b>>>0>=(c>>>0>e>>>0?e:c)>>>0){break e}h=h+4|0;if(f>>>0>h>>>0){continue}break}break d}i=1;if(c>>>0<=e>>>0){break d}pa((e<<1)+d|0,0,c-e<<1)}return i;case 9:g:{h:{e=G[a+24|0];c=c&255;if(!(c>>>0>e>>>0?e:c)){break h}i=F[a>>2];g=F[i>>2];b=F[a+48>>2]+gi(F[a+40>>2],F[a+44>>2],b,0)|0;h=g+b|0;f=F[i+4>>2];e=f-g|0;if(!G[a+32|0]){i=0;if((b|0)>=(e|0)){break g}b=0;while(1){j=K[h>>3];if(j<-32768|j!=j){break g}n=N(j);if(n==W|j>=32767){break g}g=(b<<1)+d|0;if(n<2147483648){e=~~j}else{e=-2147483648}E[g>>1]=e;b=b+1|0;e=G[a+24|0];if(b>>>0>=(c>>>0>e>>>0?e:c)>>>0){break h}h=h+8|0;if(f>>>0>h>>>0){continue}break}break g}i=0;if((b|0)>=(e|0)){break g}b=0;while(1){j=K[h>>3];if(j<-32768|j!=j|(N(j)==W|j>=32767)){break g}if(j<0|j>1){break g}g=(b<<1)+d|0;j=R(j*32767+.5);i:{if(N(j)<2147483648){e=~~j;break i}e=-2147483648}E[g>>1]=e;b=b+1|0;e=G[a+24|0];if(b>>>0>=(c>>>0>e>>>0?e:c)>>>0){break h}h=h+8|0;if(f>>>0>h>>>0){continue}break}break g}i=1;if(c>>>0<=e>>>0){break g}pa((e<<1)+d|0,0,c-e<<1)}return i;case 10:break c;default:break b}}e=G[a+24|0];f=c&255;if(e>>>0>>0?e:f){g=F[a>>2];e=F[g>>2];b=F[a+48>>2]+gi(F[a+40>>2],F[a+44>>2],b,0)|0;b=e+b|0;g=F[g+4>>2];while(1){if(b>>>0>=g>>>0){break b}E[(h<<1)+d>>1]=G[b|0];b=b+1|0;h=h+1|0;e=G[a+24|0];if(h>>>0<(e>>>0>>0?e:f)>>>0){continue}break}}i=1;if(e>>>0>=f>>>0){break b}pa((e<<1)+d|0,0,(c&255)-e<<1)}return i}pa((e<<1)+d|0,0,(c&255)-e<<1);return 1}function ie(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0;j=a;a:{b:{c:{d:{e:{f:{g:{h:{a=F[a+8>>2];switch(F[a+28>>2]-1|0){case 4:break c;case 5:break d;case 2:break e;case 3:break f;case 0:break g;case 1:break h;default:break a}}f=G[a+24|0];c=na(f);a=F[j+16>>2];if(F[a+80>>2]){g=F[F[a>>2]>>2]+F[a+48>>2]|0}else{g=0}if(!b){break b}if(f){o=f&252;l=f&3;h=f>>>0<4;while(1){a=0;e=0;if(!h){while(1){k=g+(d<<2)|0;D[a+c|0]=F[k>>2];D[(a|1)+c|0]=F[k+4>>2];D[(a|2)+c|0]=F[k+8>>2];D[(a|3)+c|0]=F[k+12>>2];a=a+4|0;d=d+4|0;e=e+4|0;if((o|0)!=(e|0)){continue}break}}e=0;if(l){while(1){D[a+c|0]=F[g+(d<<2)>>2];a=a+1|0;d=d+1|0;e=e+1|0;if((l|0)!=(e|0)){continue}break}}oa(F[F[F[j+8>>2]+64>>2]>>2]+m|0,c,f);m=f+m|0;n=n+1|0;if((n|0)!=(b|0)){continue}break}break b}a=0;if((b|0)!=1){g=b&-2;while(1){oa(F[F[F[j+8>>2]+64>>2]>>2]+a|0,c,f);a=a+f|0;oa(a+F[F[F[j+8>>2]+64>>2]>>2]|0,c,f);a=a+f|0;d=d+2|0;if((g|0)!=(d|0)){continue}break}}if(!(b&1)){break b}oa(F[F[F[j+8>>2]+64>>2]>>2]+a|0,c,f);break b}f=G[a+24|0];c=na(f);a=F[j+16>>2];if(F[a+80>>2]){g=F[F[a>>2]>>2]+F[a+48>>2]|0}else{g=0}if(!b){break b}if(f){o=f&252;l=f&3;h=f>>>0<4;while(1){a=0;e=0;if(!h){while(1){k=g+(d<<2)|0;D[a+c|0]=F[k>>2];D[(a|1)+c|0]=F[k+4>>2];D[(a|2)+c|0]=F[k+8>>2];D[(a|3)+c|0]=F[k+12>>2];a=a+4|0;d=d+4|0;e=e+4|0;if((o|0)!=(e|0)){continue}break}}e=0;if(l){while(1){D[a+c|0]=F[g+(d<<2)>>2];a=a+1|0;d=d+1|0;e=e+1|0;if((l|0)!=(e|0)){continue}break}}oa(F[F[F[j+8>>2]+64>>2]>>2]+m|0,c,f);m=f+m|0;n=n+1|0;if((n|0)!=(b|0)){continue}break}break b}a=0;if((b|0)!=1){g=b&-2;while(1){oa(F[F[F[j+8>>2]+64>>2]>>2]+a|0,c,f);a=a+f|0;oa(a+F[F[F[j+8>>2]+64>>2]>>2]|0,c,f);a=a+f|0;d=d+2|0;if((g|0)!=(d|0)){continue}break}}if(!(b&1)){break b}oa(F[F[F[j+8>>2]+64>>2]>>2]+a|0,c,f);break b}h=G[a+24|0];i=h<<1;c=na(i);a=F[j+16>>2];if(F[a+80>>2]){g=F[F[a>>2]>>2]+F[a+48>>2]|0}else{g=0}if(!b){break b}if(h){o=h&252;l=h&3;h=h>>>0<4;while(1){a=0;e=0;if(!h){while(1){f=a<<1;k=g+(d<<2)|0;E[f+c>>1]=F[k>>2];E[(f|2)+c>>1]=F[k+4>>2];E[(f|4)+c>>1]=F[k+8>>2];E[(f|6)+c>>1]=F[k+12>>2];a=a+4|0;d=d+4|0;e=e+4|0;if((o|0)!=(e|0)){continue}break}}e=0;if(l){while(1){E[(a<<1)+c>>1]=F[g+(d<<2)>>2];a=a+1|0;d=d+1|0;e=e+1|0;if((l|0)!=(e|0)){continue}break}}oa(F[F[F[j+8>>2]+64>>2]>>2]+n|0,c,i);n=i+n|0;m=m+1|0;if((m|0)!=(b|0)){continue}break}break b}a=0;if((b|0)!=1){g=b&-2;while(1){oa(F[F[F[j+8>>2]+64>>2]>>2]+a|0,c,i);a=a+i|0;oa(a+F[F[F[j+8>>2]+64>>2]>>2]|0,c,i);a=a+i|0;d=d+2|0;if((g|0)!=(d|0)){continue}break}}if(!(b&1)){break b}oa(F[F[F[j+8>>2]+64>>2]>>2]+a|0,c,i);break b}h=G[a+24|0];i=h<<1;c=na(i);a=F[j+16>>2];if(F[a+80>>2]){g=F[F[a>>2]>>2]+F[a+48>>2]|0}else{g=0}if(!b){break b}if(h){o=h&252;l=h&3;h=h>>>0<4;while(1){a=0;e=0;if(!h){while(1){f=a<<1;k=g+(d<<2)|0;E[f+c>>1]=F[k>>2];E[(f|2)+c>>1]=F[k+4>>2];E[(f|4)+c>>1]=F[k+8>>2];E[(f|6)+c>>1]=F[k+12>>2];a=a+4|0;d=d+4|0;e=e+4|0;if((o|0)!=(e|0)){continue}break}}e=0;if(l){while(1){E[(a<<1)+c>>1]=F[g+(d<<2)>>2];a=a+1|0;d=d+1|0;e=e+1|0;if((l|0)!=(e|0)){continue}break}}oa(F[F[F[j+8>>2]+64>>2]>>2]+n|0,c,i);n=i+n|0;m=m+1|0;if((m|0)!=(b|0)){continue}break}break b}a=0;if((b|0)!=1){g=b&-2;while(1){oa(F[F[F[j+8>>2]+64>>2]>>2]+a|0,c,i);a=a+i|0;oa(a+F[F[F[j+8>>2]+64>>2]>>2]|0,c,i);a=a+i|0;d=d+2|0;if((g|0)!=(d|0)){continue}break}}if(!(b&1)){break b}oa(F[F[F[j+8>>2]+64>>2]>>2]+a|0,c,i);break b}h=G[a+24|0];i=h<<2;c=na(i);a=F[j+16>>2];if(F[a+80>>2]){g=F[F[a>>2]>>2]+F[a+48>>2]|0}else{g=0}if(!b){break b}if(h){o=h&252;l=h&3;h=h>>>0<4;while(1){a=0;e=0;if(!h){while(1){f=a<<2;k=g+(d<<2)|0;F[f+c>>2]=F[k>>2];F[(f|4)+c>>2]=F[k+4>>2];F[(f|8)+c>>2]=F[k+8>>2];F[(f|12)+c>>2]=F[k+12>>2];a=a+4|0;d=d+4|0;e=e+4|0;if((o|0)!=(e|0)){continue}break}}e=0;if(l){while(1){F[(a<<2)+c>>2]=F[g+(d<<2)>>2];a=a+1|0;d=d+1|0;e=e+1|0;if((l|0)!=(e|0)){continue}break}}oa(F[F[F[j+8>>2]+64>>2]>>2]+n|0,c,i);n=i+n|0;m=m+1|0;if((m|0)!=(b|0)){continue}break}break b}a=0;if((b|0)!=1){g=b&-2;while(1){oa(F[F[F[j+8>>2]+64>>2]>>2]+a|0,c,i);a=a+i|0;oa(a+F[F[F[j+8>>2]+64>>2]>>2]|0,c,i);a=a+i|0;d=d+2|0;if((g|0)!=(d|0)){continue}break}}if(!(b&1)){break b}oa(F[F[F[j+8>>2]+64>>2]>>2]+a|0,c,i);break b}h=G[a+24|0];i=h<<2;c=na(i);a=F[j+16>>2];if(F[a+80>>2]){g=F[F[a>>2]>>2]+F[a+48>>2]|0}else{g=0}if(!b){break b}if(h){o=h&252;l=h&3;h=h>>>0<4;while(1){a=0;e=0;if(!h){while(1){f=a<<2;k=g+(d<<2)|0;F[f+c>>2]=F[k>>2];F[(f|4)+c>>2]=F[k+4>>2];F[(f|8)+c>>2]=F[k+8>>2];F[(f|12)+c>>2]=F[k+12>>2];a=a+4|0;d=d+4|0;e=e+4|0;if((o|0)!=(e|0)){continue}break}}e=0;if(l){while(1){F[(a<<2)+c>>2]=F[g+(d<<2)>>2];a=a+1|0;d=d+1|0;e=e+1|0;if((l|0)!=(e|0)){continue}break}}oa(F[F[F[j+8>>2]+64>>2]>>2]+n|0,c,i);n=i+n|0;m=m+1|0;if((m|0)!=(b|0)){continue}break}break b}a=0;if((b|0)!=1){g=b&-2;while(1){oa(F[F[F[j+8>>2]+64>>2]>>2]+a|0,c,i);a=a+i|0;oa(a+F[F[F[j+8>>2]+64>>2]>>2]|0,c,i);a=a+i|0;d=d+2|0;if((g|0)!=(d|0)){continue}break}}if(!(b&1)){break b}oa(F[F[F[j+8>>2]+64>>2]>>2]+a|0,c,i)}ma(c);c=1}return c|0}function zb(a,b,c,d){var e=0,f=0,g=0,h=0,i=0,j=0,k=M(0),l=0,m=M(0),n=0;a:{b:{if(!d){break b}c:{switch(F[a+28>>2]-1|0){case 0:e=G[a+24|0];f=c&255;if(e>>>0>>0?e:f){g=F[a>>2];e=F[g>>2];b=F[a+48>>2]+gi(F[a+40>>2],F[a+44>>2],b,0)|0;b=e+b|0;g=F[g+4>>2];while(1){if(b>>>0>=g>>>0){break b}F[(h<<2)+d>>2]=D[b|0];b=b+1|0;h=h+1|0;e=G[a+24|0];if(h>>>0<(e>>>0>>0?e:f)>>>0){continue}break}}i=1;if(e>>>0>=f>>>0){break b}break a;case 1:e=G[a+24|0];f=c&255;if(e>>>0>>0?e:f){g=F[a>>2];e=F[g>>2];b=F[a+48>>2]+gi(F[a+40>>2],F[a+44>>2],b,0)|0;b=e+b|0;g=F[g+4>>2];while(1){if(b>>>0>=g>>>0){break b}F[(h<<2)+d>>2]=G[b|0];b=b+1|0;h=h+1|0;e=G[a+24|0];if(h>>>0<(e>>>0>>0?e:f)>>>0){continue}break}}i=1;if(e>>>0>=f>>>0){break b}break a;case 2:e=G[a+24|0];f=c&255;if(e>>>0>>0?e:f){g=F[a>>2];e=F[g>>2];b=F[a+48>>2]+gi(F[a+40>>2],F[a+44>>2],b,0)|0;b=e+b|0;g=F[g+4>>2];while(1){if(b>>>0>=g>>>0){break b}F[(h<<2)+d>>2]=E[b>>1];b=b+2|0;h=h+1|0;e=G[a+24|0];if(h>>>0<(e>>>0>>0?e:f)>>>0){continue}break}}i=1;if(e>>>0>=f>>>0){break b}break a;case 3:e=G[a+24|0];f=c&255;if(e>>>0>>0?e:f){g=F[a>>2];e=F[g>>2];b=F[a+48>>2]+gi(F[a+40>>2],F[a+44>>2],b,0)|0;b=e+b|0;g=F[g+4>>2];while(1){if(b>>>0>=g>>>0){break b}F[(h<<2)+d>>2]=H[b>>1];b=b+2|0;h=h+1|0;e=G[a+24|0];if(h>>>0<(e>>>0>>0?e:f)>>>0){continue}break}}i=1;if(e>>>0>=f>>>0){break b}break a;case 4:e=G[a+24|0];f=c&255;if(e>>>0>>0?e:f){g=F[a>>2];e=F[g>>2];b=F[a+48>>2]+gi(F[a+40>>2],F[a+44>>2],b,0)|0;b=e+b|0;g=F[g+4>>2];while(1){if(b>>>0>=g>>>0){break b}F[(h<<2)+d>>2]=F[b>>2];b=b+4|0;h=h+1|0;e=G[a+24|0];if(h>>>0<(e>>>0>>0?e:f)>>>0){continue}break}}i=1;if(e>>>0>=f>>>0){break b}break a;case 5:e=G[a+24|0];f=c&255;if(e>>>0>>0?e:f){g=F[a>>2];e=F[g>>2];b=F[a+48>>2]+gi(F[a+40>>2],F[a+44>>2],b,0)|0;b=e+b|0;g=F[g+4>>2];while(1){if(b>>>0>=g>>>0){return 0}e=F[b>>2];if((e|0)<0){break b}F[(h<<2)+d>>2]=e;b=b+4|0;h=h+1|0;e=G[a+24|0];if(h>>>0<(e>>>0>>0?e:f)>>>0){continue}break}}i=1;if(e>>>0>=f>>>0){break b}break a;case 6:e=G[a+24|0];f=c&255;if(e>>>0>>0?e:f){g=F[a>>2];e=F[g>>2];b=F[a+48>>2]+gi(F[a+40>>2],F[a+44>>2],b,0)|0;b=e+b|0;g=F[g+4>>2];while(1){if(b>>>0>=g>>>0){break b}l=F[b>>2];if((F[b+4>>2]-(l>>>0<2147483648)|0)!=-1){break b}F[(h<<2)+d>>2]=l;b=b+8|0;h=h+1|0;e=G[a+24|0];if(h>>>0<(e>>>0>>0?e:f)>>>0){continue}break}}i=1;if(e>>>0>=f>>>0){break b}break a;case 7:e=G[a+24|0];f=c&255;if(e>>>0>>0?e:f){g=F[a>>2];e=F[g>>2];b=F[a+48>>2]+gi(F[a+40>>2],F[a+44>>2],b,0)|0;b=e+b|0;g=F[g+4>>2];while(1){if(b>>>0>=g>>>0){break b}e=F[b+4>>2];l=F[b>>2];if(!e&l>>>0>2147483647|e){break b}F[(h<<2)+d>>2]=l;b=b+8|0;h=h+1|0;e=G[a+24|0];if(h>>>0<(e>>>0>>0?e:f)>>>0){continue}break}}i=1;if(e>>>0>=f>>>0){break b}break a;case 8:d:{e:{e=G[a+24|0];c=c&255;if(!(c>>>0>e>>>0?e:c)){break e}i=F[a>>2];g=F[i>>2];b=F[a+48>>2]+gi(F[a+40>>2],F[a+44>>2],b,0)|0;h=g+b|0;f=F[i+4>>2];e=f-g|0;if(!G[a+32|0]){i=0;if((b|0)>=(e|0)){break d}b=0;while(1){k=J[h>>2];if(k=M(2147483648)){break d}g=(b<<2)+d|0;if(m>2]=e;b=b+1|0;e=G[a+24|0];if(b>>>0>=(c>>>0>e>>>0?e:c)>>>0){break e}h=h+4|0;if(f>>>0>h>>>0){continue}break}break d}i=0;if((b|0)>=(e|0)){break d}b=0;while(1){k=J[h>>2];if(k=M(2147483648))){break d}if(kM(1)){break d}g=(b<<2)+d|0;j=R(+k*2147483647+.5);f:{if(N(j)<2147483648){e=~~j;break f}e=-2147483648}F[g>>2]=e;b=b+1|0;e=G[a+24|0];if(b>>>0>=(c>>>0>e>>>0?e:c)>>>0){break e}h=h+4|0;if(f>>>0>h>>>0){continue}break}break d}i=1;if(c>>>0<=e>>>0){break d}pa((e<<2)+d|0,0,c-e<<2)}return i;case 9:g:{h:{e=G[a+24|0];c=c&255;if(!(c>>>0>e>>>0?e:c)){break h}i=F[a>>2];g=F[i>>2];b=F[a+48>>2]+gi(F[a+40>>2],F[a+44>>2],b,0)|0;h=g+b|0;f=F[i+4>>2];e=f-g|0;if(!G[a+32|0]){i=0;if((b|0)>=(e|0)){break g}b=0;while(1){j=K[h>>3];if(j<-2147483648|j!=j){break g}n=N(j);if(n==W|j>=2147483647){break g}g=(b<<2)+d|0;if(n<2147483648){e=~~j}else{e=-2147483648}F[g>>2]=e;b=b+1|0;e=G[a+24|0];if(b>>>0>=(c>>>0>e>>>0?e:c)>>>0){break h}h=h+8|0;if(f>>>0>h>>>0){continue}break}break g}i=0;if((b|0)>=(e|0)){break g}b=0;while(1){j=K[h>>3];if(j<-2147483648|j!=j|(N(j)==W|j>=2147483647)){break g}if(j<0|j>1){break g}g=(b<<2)+d|0;j=R(j*2147483647+.5);i:{if(N(j)<2147483648){e=~~j;break i}e=-2147483648}F[g>>2]=e;b=b+1|0;e=G[a+24|0];if(b>>>0>=(c>>>0>e>>>0?e:c)>>>0){break h}h=h+8|0;if(f>>>0>h>>>0){continue}break}break g}i=1;if(c>>>0<=e>>>0){break g}pa((e<<2)+d|0,0,c-e<<2)}return i;case 10:break c;default:break b}}e=G[a+24|0];f=c&255;if(e>>>0>>0?e:f){g=F[a>>2];e=F[g>>2];b=F[a+48>>2]+gi(F[a+40>>2],F[a+44>>2],b,0)|0;b=e+b|0;g=F[g+4>>2];while(1){if(b>>>0>=g>>>0){break b}F[(h<<2)+d>>2]=G[b|0];b=b+1|0;h=h+1|0;e=G[a+24|0];if(h>>>0<(e>>>0>>0?e:f)>>>0){continue}break}}i=1;if(e>>>0>=f>>>0){break b}pa((e<<2)+d|0,0,(c&255)-e<<2)}return i}pa((e<<2)+d|0,0,(c&255)-e<<2);return 1}function Ab(a,b,c,d){var e=0,f=0,g=0,h=0,i=0,j=0,k=M(0),l=0;a:{b:{if(!d){break b}c:{switch(F[a+28>>2]-1|0){case 0:e=G[a+24|0];f=c&255;if(e>>>0>>0?e:f){g=F[a>>2];e=F[g>>2];b=F[a+48>>2]+gi(F[a+40>>2],F[a+44>>2],b,0)|0;b=e+b|0;g=F[g+4>>2];while(1){if(b>>>0>=g>>>0){return 0}e=D[b|0];if((e|0)<0){break b}E[(h<<1)+d>>1]=e&255;b=b+1|0;h=h+1|0;e=G[a+24|0];if(h>>>0<(e>>>0>>0?e:f)>>>0){continue}break}}j=1;if(e>>>0>=f>>>0){break b}break a;case 1:e=G[a+24|0];f=c&255;if(e>>>0>>0?e:f){g=F[a>>2];e=F[g>>2];b=F[a+48>>2]+gi(F[a+40>>2],F[a+44>>2],b,0)|0;b=e+b|0;g=F[g+4>>2];while(1){if(b>>>0>=g>>>0){break b}E[(h<<1)+d>>1]=G[b|0];b=b+1|0;h=h+1|0;e=G[a+24|0];if(h>>>0<(e>>>0>>0?e:f)>>>0){continue}break}}j=1;if(e>>>0>=f>>>0){break b}break a;case 2:e=G[a+24|0];f=c&255;if(e>>>0>>0?e:f){g=F[a>>2];e=F[g>>2];b=F[a+48>>2]+gi(F[a+40>>2],F[a+44>>2],b,0)|0;b=e+b|0;g=F[g+4>>2];while(1){if(b>>>0>=g>>>0){return 0}e=E[b>>1];if((e|0)<0){break b}E[(h<<1)+d>>1]=e;b=b+2|0;h=h+1|0;e=G[a+24|0];if(h>>>0<(e>>>0>>0?e:f)>>>0){continue}break}}j=1;if(e>>>0>=f>>>0){break b}break a;case 3:e=G[a+24|0];f=c&255;if(e>>>0>>0?e:f){g=F[a>>2];e=F[g>>2];b=F[a+48>>2]+gi(F[a+40>>2],F[a+44>>2],b,0)|0;b=e+b|0;g=F[g+4>>2];while(1){if(b>>>0>=g>>>0){break b}E[(h<<1)+d>>1]=H[b>>1];b=b+2|0;h=h+1|0;e=G[a+24|0];if(h>>>0<(e>>>0>>0?e:f)>>>0){continue}break}}j=1;if(e>>>0>=f>>>0){break b}break a;case 4:e=G[a+24|0];f=c&255;if(e>>>0>>0?e:f){g=F[a>>2];e=F[g>>2];b=F[a+48>>2]+gi(F[a+40>>2],F[a+44>>2],b,0)|0;b=e+b|0;g=F[g+4>>2];while(1){if(b>>>0>=g>>>0){break b}e=F[b>>2];if(e>>>0>65535){break b}E[(h<<1)+d>>1]=e;b=b+4|0;h=h+1|0;e=G[a+24|0];if(h>>>0<(e>>>0>>0?e:f)>>>0){continue}break}}j=1;if(e>>>0>=f>>>0){break b}break a;case 5:e=G[a+24|0];f=c&255;if(e>>>0>>0?e:f){g=F[a>>2];e=F[g>>2];b=F[a+48>>2]+gi(F[a+40>>2],F[a+44>>2],b,0)|0;b=e+b|0;g=F[g+4>>2];while(1){if(b>>>0>=g>>>0){break b}e=F[b>>2];if(e>>>0>65535){break b}E[(h<<1)+d>>1]=e;b=b+4|0;h=h+1|0;e=G[a+24|0];if(h>>>0<(e>>>0>>0?e:f)>>>0){continue}break}}j=1;if(e>>>0>=f>>>0){break b}break a;case 6:e=G[a+24|0];f=c&255;if(e>>>0>>0?e:f){g=F[a>>2];e=F[g>>2];b=F[a+48>>2]+gi(F[a+40>>2],F[a+44>>2],b,0)|0;b=e+b|0;g=F[g+4>>2];while(1){if(b>>>0>=g>>>0){break b}e=F[b+4>>2];l=F[b>>2];if(!e&l>>>0>65535|e){break b}E[(h<<1)+d>>1]=l;b=b+8|0;h=h+1|0;e=G[a+24|0];if(h>>>0<(e>>>0>>0?e:f)>>>0){continue}break}}j=1;if(e>>>0>=f>>>0){break b}break a;case 7:e=G[a+24|0];f=c&255;if(e>>>0>>0?e:f){g=F[a>>2];e=F[g>>2];b=F[a+48>>2]+gi(F[a+40>>2],F[a+44>>2],b,0)|0;b=e+b|0;g=F[g+4>>2];while(1){if(b>>>0>=g>>>0){break b}e=F[b+4>>2];l=F[b>>2];if(!e&l>>>0>65535|e){break b}E[(h<<1)+d>>1]=l;b=b+8|0;h=h+1|0;e=G[a+24|0];if(h>>>0<(e>>>0>>0?e:f)>>>0){continue}break}}j=1;if(e>>>0>=f>>>0){break b}break a;case 8:d:{e:{e=G[a+24|0];c=c&255;if(!(c>>>0>e>>>0?e:c)){break e}j=F[a>>2];g=F[j>>2];b=F[a+48>>2]+gi(F[a+40>>2],F[a+44>>2],b,0)|0;h=g+b|0;f=F[j+4>>2];e=f-g|0;if(!G[a+32|0]){j=0;if((b|0)>=(e|0)){break d}b=0;while(1){k=J[h>>2];if(k=M(65535))){break d}g=(b<<1)+d|0;if(k=M(0)){e=~~k>>>0}else{e=0}E[g>>1]=e;b=b+1|0;e=G[a+24|0];if(b>>>0>=(c>>>0>e>>>0?e:c)>>>0){break e}h=h+4|0;if(f>>>0>h>>>0){continue}break}break d}j=0;if((b|0)>=(e|0)){break d}b=0;while(1){k=J[h>>2];if(k=M(65535))){break d}if(k>M(1)){break d}g=(b<<1)+d|0;i=R(+k*65535+.5);f:{if(i<4294967296&i>=0){e=~~i>>>0;break f}e=0}E[g>>1]=e;b=b+1|0;e=G[a+24|0];if(b>>>0>=(c>>>0>e>>>0?e:c)>>>0){break e}h=h+4|0;if(f>>>0>h>>>0){continue}break}break d}j=1;if(c>>>0<=e>>>0){break d}pa((e<<1)+d|0,0,c-e<<1)}return j;case 9:g:{h:{e=G[a+24|0];c=c&255;if(!(c>>>0>e>>>0?e:c)){break h}j=F[a>>2];g=F[j>>2];b=F[a+48>>2]+gi(F[a+40>>2],F[a+44>>2],b,0)|0;h=g+b|0;f=F[j+4>>2];e=f-g|0;if(!G[a+32|0]){j=0;if((b|0)>=(e|0)){break g}b=0;while(1){i=K[h>>3];if(i<0|i!=i|(N(i)==W|i>=65535)){break g}g=(b<<1)+d|0;if(i<4294967296&i>=0){e=~~i>>>0}else{e=0}E[g>>1]=e;b=b+1|0;e=G[a+24|0];if(b>>>0>=(c>>>0>e>>>0?e:c)>>>0){break h}h=h+8|0;if(f>>>0>h>>>0){continue}break}break g}j=0;if((b|0)>=(e|0)){break g}b=0;while(1){i=K[h>>3];if(i<0|i!=i|(N(i)==W|i>=65535)){break g}if(i>1){break g}g=(b<<1)+d|0;i=R(i*65535+.5);i:{if(i<4294967296&i>=0){e=~~i>>>0;break i}e=0}E[g>>1]=e;b=b+1|0;e=G[a+24|0];if(b>>>0>=(c>>>0>e>>>0?e:c)>>>0){break h}h=h+8|0;if(f>>>0>h>>>0){continue}break}break g}j=1;if(c>>>0<=e>>>0){break g}pa((e<<1)+d|0,0,c-e<<1)}return j;case 10:break c;default:break b}}e=G[a+24|0];f=c&255;if(e>>>0>>0?e:f){g=F[a>>2];e=F[g>>2];b=F[a+48>>2]+gi(F[a+40>>2],F[a+44>>2],b,0)|0;b=e+b|0;g=F[g+4>>2];while(1){if(b>>>0>=g>>>0){break b}E[(h<<1)+d>>1]=G[b|0];b=b+1|0;h=h+1|0;e=G[a+24|0];if(h>>>0<(e>>>0>>0?e:f)>>>0){continue}break}}j=1;if(e>>>0>=f>>>0){break b}pa((e<<1)+d|0,0,(c&255)-e<<1)}return j}pa((e<<1)+d|0,0,(c&255)-e<<1);return 1}function Ia(a,b,c,d){var e=0,f=0,g=0,h=0,i=0,j=M(0),k=0,l=0,m=0,n=M(0),o=0;a:{if(!d){break a}b:{c:{switch(F[a+28>>2]-1|0){case 0:e=G[a+24|0];f=c&255;if(e>>>0>>0?e:f){e=F[a>>2];h=F[e>>2];b=F[a+48>>2]+gi(F[a+40>>2],F[a+44>>2],b,0)|0;b=h+b|0;h=F[e+4>>2];while(1){if(b>>>0>=h>>>0){break a}e=(g<<3)+d|0;i=D[b|0];F[e>>2]=i;F[e+4>>2]=i>>31;b=b+1|0;g=g+1|0;e=G[a+24|0];if(g>>>0<(e>>>0>>0?e:f)>>>0){continue}break}}if(e>>>0>=f>>>0){break a}d=(e<<3)+d|0;a=(c&255)-e|0;break b;case 1:e=G[a+24|0];f=c&255;if(e>>>0>>0?e:f){e=F[a>>2];h=F[e>>2];b=F[a+48>>2]+gi(F[a+40>>2],F[a+44>>2],b,0)|0;b=h+b|0;h=F[e+4>>2];while(1){if(b>>>0>=h>>>0){break a}e=(g<<3)+d|0;F[e>>2]=G[b|0];F[e+4>>2]=0;b=b+1|0;g=g+1|0;e=G[a+24|0];if(g>>>0<(e>>>0>>0?e:f)>>>0){continue}break}}if(e>>>0>=f>>>0){break a}d=(e<<3)+d|0;a=(c&255)-e|0;break b;case 2:e=G[a+24|0];f=c&255;if(e>>>0>>0?e:f){e=F[a>>2];h=F[e>>2];b=F[a+48>>2]+gi(F[a+40>>2],F[a+44>>2],b,0)|0;b=h+b|0;h=F[e+4>>2];while(1){if(b>>>0>=h>>>0){break a}e=(g<<3)+d|0;i=E[b>>1];F[e>>2]=i;F[e+4>>2]=i>>31;b=b+2|0;g=g+1|0;e=G[a+24|0];if(g>>>0<(e>>>0>>0?e:f)>>>0){continue}break}}if(e>>>0>=f>>>0){break a}d=(e<<3)+d|0;a=(c&255)-e|0;break b;case 3:e=G[a+24|0];f=c&255;if(e>>>0>>0?e:f){e=F[a>>2];h=F[e>>2];b=F[a+48>>2]+gi(F[a+40>>2],F[a+44>>2],b,0)|0;b=h+b|0;h=F[e+4>>2];while(1){if(b>>>0>=h>>>0){break a}e=(g<<3)+d|0;F[e>>2]=H[b>>1];F[e+4>>2]=0;b=b+2|0;g=g+1|0;e=G[a+24|0];if(g>>>0<(e>>>0>>0?e:f)>>>0){continue}break}}if(e>>>0>=f>>>0){break a}d=(e<<3)+d|0;a=(c&255)-e|0;break b;case 4:e=G[a+24|0];f=c&255;if(e>>>0>>0?e:f){e=F[a>>2];h=F[e>>2];b=F[a+48>>2]+gi(F[a+40>>2],F[a+44>>2],b,0)|0;b=h+b|0;h=F[e+4>>2];while(1){if(b>>>0>=h>>>0){break a}e=(g<<3)+d|0;i=F[b>>2];F[e>>2]=i;F[e+4>>2]=i>>31;b=b+4|0;g=g+1|0;e=G[a+24|0];if(g>>>0<(e>>>0>>0?e:f)>>>0){continue}break}}if(e>>>0>=f>>>0){break a}d=(e<<3)+d|0;a=(c&255)-e|0;break b;case 5:e=G[a+24|0];f=c&255;if(e>>>0>>0?e:f){e=F[a>>2];h=F[e>>2];b=F[a+48>>2]+gi(F[a+40>>2],F[a+44>>2],b,0)|0;b=h+b|0;h=F[e+4>>2];while(1){if(b>>>0>=h>>>0){break a}e=(g<<3)+d|0;F[e>>2]=F[b>>2];F[e+4>>2]=0;b=b+4|0;g=g+1|0;e=G[a+24|0];if(g>>>0<(e>>>0>>0?e:f)>>>0){continue}break}}if(e>>>0>=f>>>0){break a}d=(e<<3)+d|0;a=(c&255)-e|0;break b;case 6:e=G[a+24|0];f=c&255;if(e>>>0>>0?e:f){e=F[a>>2];h=F[e>>2];b=F[a+48>>2]+gi(F[a+40>>2],F[a+44>>2],b,0)|0;b=h+b|0;h=F[e+4>>2];while(1){if(b>>>0>=h>>>0){break a}i=F[b+4>>2];e=(g<<3)+d|0;F[e>>2]=F[b>>2];F[e+4>>2]=i;b=b+8|0;g=g+1|0;e=G[a+24|0];if(g>>>0<(e>>>0>>0?e:f)>>>0){continue}break}}if(e>>>0>=f>>>0){break a}d=(e<<3)+d|0;a=(c&255)-e|0;break b;case 7:e=G[a+24|0];f=c&255;if(e>>>0>>0?e:f){e=F[a>>2];h=F[e>>2];b=F[a+48>>2]+gi(F[a+40>>2],F[a+44>>2],b,0)|0;b=h+b|0;h=F[e+4>>2];while(1){if(b>>>0>=h>>>0){break a}e=F[b>>2];i=F[b+4>>2];if((i|0)<0){break a}l=(g<<3)+d|0;F[l>>2]=e;F[l+4>>2]=i;b=b+8|0;g=g+1|0;e=G[a+24|0];if(g>>>0<(e>>>0>>0?e:f)>>>0){continue}break}}if(e>>>0>=f>>>0){break a}d=(e<<3)+d|0;a=(c&255)-e|0;break b;case 8:d:{e=G[a+24|0];f=c&255;if(!(e>>>0>>0?e:f)){break d}if(G[a+32|0]){break a}b=F[a+48>>2]+gi(F[a+40>>2],F[a+44>>2],b,0)|0;e=F[a>>2];i=F[e+4>>2];e=F[e>>2];if((b|0)>=(i-e|0)){break a}g=b+e|0;h=c&255;b=0;while(1){j=J[g>>2];if(j>=M(0x8000000000000000)|j=M(1)?~~(j>M(0)?M(P(M(R(M(j*M(2.3283064365386963e-10)))),M(4294967296))):M(S(M(M(j-M(~~j>>>0>>>0))*M(2.3283064365386963e-10)))))>>>0:0;m=~~j>>>0;break e}l=-2147483648;m=0}F[e>>2]=m;F[e+4>>2]=l;b=b+1|0;e=G[a+24|0];if(b>>>0>=(e>>>0>>0?e:h)>>>0){break d}g=g+4|0;if(i>>>0>g>>>0){continue}break}break a}if(e>>>0>=f>>>0){break a}d=(e<<3)+d|0;a=(c&255)-e|0;break b;case 9:f:{e=G[a+24|0];f=c&255;if(!(e>>>0>>0?e:f)){break f}if(G[a+32|0]){break a}b=F[a+48>>2]+gi(F[a+40>>2],F[a+44>>2],b,0)|0;e=F[a>>2];i=F[e+4>>2];e=F[e>>2];if((b|0)>=(i-e|0)){break a}g=b+e|0;h=c&255;b=0;while(1){k=K[g>>3];if(k>=0x8000000000000000|k<-0x8000000000000000|k!=k){break a}o=N(k);if(o==W){break a}e=(b<<3)+d|0;g:{if(o<0x8000000000000000){l=N(k)>=1?~~(k>0?P(R(k*2.3283064365386963e-10),4294967295):S((k-+(~~k>>>0>>>0))*2.3283064365386963e-10))>>>0:0;m=~~k>>>0;break g}l=-2147483648;m=0}F[e>>2]=m;F[e+4>>2]=l;b=b+1|0;e=G[a+24|0];if(b>>>0>=(e>>>0>>0?e:h)>>>0){break f}g=g+8|0;if(i>>>0>g>>>0){continue}break}break a}if(e>>>0>=f>>>0){break a}d=(e<<3)+d|0;a=(c&255)-e|0;break b;case 10:break c;default:break a}}e=G[a+24|0];f=c&255;if(e>>>0>>0?e:f){e=F[a>>2];h=F[e>>2];b=F[a+48>>2]+gi(F[a+40>>2],F[a+44>>2],b,0)|0;b=h+b|0;h=F[e+4>>2];while(1){if(b>>>0>=h>>>0){break a}e=(g<<3)+d|0;F[e>>2]=G[b|0];F[e+4>>2]=0;b=b+1|0;g=g+1|0;e=G[a+24|0];if(g>>>0<(e>>>0>>0?e:f)>>>0){continue}break}}if(e>>>0>=f>>>0){break a}d=(e<<3)+d|0;a=(c&255)-e|0}pa(d,0,a<<3)}}function yb(a,b,c,d){var e=0,f=0,g=0,h=0,i=0,j=0,k=M(0);a:{b:{if(!d){break b}c:{switch(F[a+28>>2]-1|0){case 0:e=G[a+24|0];f=c&255;if(e>>>0>>0?e:f){g=F[a>>2];e=F[g>>2];b=F[a+48>>2]+gi(F[a+40>>2],F[a+44>>2],b,0)|0;b=e+b|0;g=F[g+4>>2];while(1){if(b>>>0>=g>>>0){break b}F[(h<<2)+d>>2]=D[b|0];b=b+1|0;h=h+1|0;e=G[a+24|0];if(h>>>0<(e>>>0>>0?e:f)>>>0){continue}break}}j=1;if(e>>>0>=f>>>0){break b}break a;case 1:e=G[a+24|0];f=c&255;if(e>>>0>>0?e:f){g=F[a>>2];e=F[g>>2];b=F[a+48>>2]+gi(F[a+40>>2],F[a+44>>2],b,0)|0;b=e+b|0;g=F[g+4>>2];while(1){if(b>>>0>=g>>>0){break b}F[(h<<2)+d>>2]=G[b|0];b=b+1|0;h=h+1|0;e=G[a+24|0];if(h>>>0<(e>>>0>>0?e:f)>>>0){continue}break}}j=1;if(e>>>0>=f>>>0){break b}break a;case 2:e=G[a+24|0];f=c&255;if(e>>>0>>0?e:f){g=F[a>>2];e=F[g>>2];b=F[a+48>>2]+gi(F[a+40>>2],F[a+44>>2],b,0)|0;b=e+b|0;g=F[g+4>>2];while(1){if(b>>>0>=g>>>0){break b}F[(h<<2)+d>>2]=E[b>>1];b=b+2|0;h=h+1|0;e=G[a+24|0];if(h>>>0<(e>>>0>>0?e:f)>>>0){continue}break}}j=1;if(e>>>0>=f>>>0){break b}break a;case 3:e=G[a+24|0];f=c&255;if(e>>>0>>0?e:f){g=F[a>>2];e=F[g>>2];b=F[a+48>>2]+gi(F[a+40>>2],F[a+44>>2],b,0)|0;b=e+b|0;g=F[g+4>>2];while(1){if(b>>>0>=g>>>0){break b}F[(h<<2)+d>>2]=H[b>>1];b=b+2|0;h=h+1|0;e=G[a+24|0];if(h>>>0<(e>>>0>>0?e:f)>>>0){continue}break}}j=1;if(e>>>0>=f>>>0){break b}break a;case 4:e=G[a+24|0];f=c&255;if(e>>>0>>0?e:f){g=F[a>>2];e=F[g>>2];b=F[a+48>>2]+gi(F[a+40>>2],F[a+44>>2],b,0)|0;b=e+b|0;g=F[g+4>>2];while(1){if(b>>>0>=g>>>0){break b}F[(h<<2)+d>>2]=F[b>>2];b=b+4|0;h=h+1|0;e=G[a+24|0];if(h>>>0<(e>>>0>>0?e:f)>>>0){continue}break}}j=1;if(e>>>0>=f>>>0){break b}break a;case 5:e=G[a+24|0];f=c&255;if(e>>>0>>0?e:f){g=F[a>>2];e=F[g>>2];b=F[a+48>>2]+gi(F[a+40>>2],F[a+44>>2],b,0)|0;b=e+b|0;g=F[g+4>>2];while(1){if(b>>>0>=g>>>0){break b}F[(h<<2)+d>>2]=F[b>>2];b=b+4|0;h=h+1|0;e=G[a+24|0];if(h>>>0<(e>>>0>>0?e:f)>>>0){continue}break}}j=1;if(e>>>0>=f>>>0){break b}break a;case 6:e=G[a+24|0];f=c&255;if(e>>>0>>0?e:f){g=F[a>>2];e=F[g>>2];b=F[a+48>>2]+gi(F[a+40>>2],F[a+44>>2],b,0)|0;b=e+b|0;g=F[g+4>>2];while(1){if(b>>>0>=g>>>0){break b}e=F[b>>2];if(F[b+4>>2]){break b}F[(h<<2)+d>>2]=e;b=b+8|0;h=h+1|0;e=G[a+24|0];if(h>>>0<(e>>>0>>0?e:f)>>>0){continue}break}}j=1;if(e>>>0>=f>>>0){break b}break a;case 7:e=G[a+24|0];f=c&255;if(e>>>0>>0?e:f){g=F[a>>2];e=F[g>>2];b=F[a+48>>2]+gi(F[a+40>>2],F[a+44>>2],b,0)|0;b=e+b|0;g=F[g+4>>2];while(1){if(b>>>0>=g>>>0){break b}e=F[b>>2];if(F[b+4>>2]){break b}F[(h<<2)+d>>2]=e;b=b+8|0;h=h+1|0;e=G[a+24|0];if(h>>>0<(e>>>0>>0?e:f)>>>0){continue}break}}j=1;if(e>>>0>=f>>>0){break b}break a;case 8:d:{e:{e=G[a+24|0];c=c&255;if(!(c>>>0>e>>>0?e:c)){break e}j=F[a>>2];g=F[j>>2];b=F[a+48>>2]+gi(F[a+40>>2],F[a+44>>2],b,0)|0;h=g+b|0;f=F[j+4>>2];e=f-g|0;if(!G[a+32|0]){j=0;if((b|0)>=(e|0)){break d}b=0;while(1){k=J[h>>2];if(k=M(4294967296))){break d}g=(b<<2)+d|0;if(k=M(0)){e=~~k>>>0}else{e=0}F[g>>2]=e;b=b+1|0;e=G[a+24|0];if(b>>>0>=(c>>>0>e>>>0?e:c)>>>0){break e}h=h+4|0;if(f>>>0>h>>>0){continue}break}break d}j=0;if((b|0)>=(e|0)){break d}b=0;while(1){k=J[h>>2];if(k=M(4294967296))){break d}if(k>M(1)){break d}g=(b<<2)+d|0;i=R(+k*4294967295+.5);f:{if(i<4294967296&i>=0){e=~~i>>>0;break f}e=0}F[g>>2]=e;b=b+1|0;e=G[a+24|0];if(b>>>0>=(c>>>0>e>>>0?e:c)>>>0){break e}h=h+4|0;if(f>>>0>h>>>0){continue}break}break d}j=1;if(c>>>0<=e>>>0){break d}pa((e<<2)+d|0,0,c-e<<2)}return j;case 9:g:{h:{e=G[a+24|0];c=c&255;if(!(c>>>0>e>>>0?e:c)){break h}j=F[a>>2];g=F[j>>2];b=F[a+48>>2]+gi(F[a+40>>2],F[a+44>>2],b,0)|0;h=g+b|0;f=F[j+4>>2];e=f-g|0;if(!G[a+32|0]){j=0;if((b|0)>=(e|0)){break g}b=0;while(1){i=K[h>>3];if(i<0|i!=i|(N(i)==W|i>=4294967295)){break g}g=(b<<2)+d|0;if(i<4294967296&i>=0){e=~~i>>>0}else{e=0}F[g>>2]=e;b=b+1|0;e=G[a+24|0];if(b>>>0>=(c>>>0>e>>>0?e:c)>>>0){break h}h=h+8|0;if(f>>>0>h>>>0){continue}break}break g}j=0;if((b|0)>=(e|0)){break g}b=0;while(1){i=K[h>>3];if(i<0|i!=i|(N(i)==W|i>=4294967295)){break g}if(i>1){break g}g=(b<<2)+d|0;i=R(i*4294967295+.5);i:{if(i<4294967296&i>=0){e=~~i>>>0;break i}e=0}F[g>>2]=e;b=b+1|0;e=G[a+24|0];if(b>>>0>=(c>>>0>e>>>0?e:c)>>>0){break h}h=h+8|0;if(f>>>0>h>>>0){continue}break}break g}j=1;if(c>>>0<=e>>>0){break g}pa((e<<2)+d|0,0,c-e<<2)}return j;case 10:break c;default:break b}}e=G[a+24|0];f=c&255;if(e>>>0>>0?e:f){g=F[a>>2];e=F[g>>2];b=F[a+48>>2]+gi(F[a+40>>2],F[a+44>>2],b,0)|0;b=e+b|0;g=F[g+4>>2];while(1){if(b>>>0>=g>>>0){break b}F[(h<<2)+d>>2]=G[b|0];b=b+1|0;h=h+1|0;e=G[a+24|0];if(h>>>0<(e>>>0>>0?e:f)>>>0){continue}break}}j=1;if(e>>>0>=f>>>0){break b}pa((e<<2)+d|0,0,(c&255)-e<<2)}return j}pa((e<<2)+d|0,0,(c&255)-e<<2);return 1}function Lc(a){var b=0,c=0,d=0,e=0,f=0,g=0;e=aa-16|0;aa=e;F[e+12>>2]=a;a:{if(a>>>0<=211){d=F[Kc(10352,10544,e+12|0)>>2];break a}if(a>>>0>=4294967292){X();v()}f=(a>>>0)/210|0;d=L(f,210);F[e+8>>2]=a-d;g=Kc(10544,10736,e+8|0)-10544>>2;while(1){d=F[(g<<2)+10544>>2]+d|0;a=5;while(1){b:{if((a|0)==47){a=211;while(1){b=(d>>>0)/(a>>>0)|0;if(b>>>0>>0){break a}if((L(a,b)|0)==(d|0)){break b}b=a+10|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}if((L(b,c)|0)==(d|0)){break b}b=a+12|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}if((L(b,c)|0)==(d|0)){break b}b=a+16|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}if((L(b,c)|0)==(d|0)){break b}b=a+18|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}if((L(b,c)|0)==(d|0)){break b}b=a+22|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}if((L(b,c)|0)==(d|0)){break b}b=a+28|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}if((L(b,c)|0)==(d|0)){break b}b=a+30|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}if((L(b,c)|0)==(d|0)){break b}b=a+36|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}if((L(b,c)|0)==(d|0)){break b}b=a+40|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}if((L(b,c)|0)==(d|0)){break b}b=a+42|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}if((L(b,c)|0)==(d|0)){break b}b=a+46|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}if((L(b,c)|0)==(d|0)){break b}b=a+52|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}if((L(b,c)|0)==(d|0)){break b}b=a+58|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}if((L(b,c)|0)==(d|0)){break b}b=a+60|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}if((L(b,c)|0)==(d|0)){break b}b=a+66|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}if((L(b,c)|0)==(d|0)){break b}b=a+70|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}if((L(b,c)|0)==(d|0)){break b}b=a+72|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}if((L(b,c)|0)==(d|0)){break b}b=a+78|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}if((L(b,c)|0)==(d|0)){break b}b=a+82|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}if((L(b,c)|0)==(d|0)){break b}b=a+88|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}if((L(b,c)|0)==(d|0)){break b}b=a+96|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}if((L(b,c)|0)==(d|0)){break b}b=a+100|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}if((L(b,c)|0)==(d|0)){break b}b=a+102|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}if((L(b,c)|0)==(d|0)){break b}b=a+106|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}if((L(b,c)|0)==(d|0)){break b}b=a+108|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}if((L(b,c)|0)==(d|0)){break b}b=a+112|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}if((L(b,c)|0)==(d|0)){break b}b=a+120|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}if((L(b,c)|0)==(d|0)){break b}b=a+126|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}if((L(b,c)|0)==(d|0)){break b}b=a+130|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}if((L(b,c)|0)==(d|0)){break b}b=a+136|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}if((L(b,c)|0)==(d|0)){break b}b=a+138|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}if((L(b,c)|0)==(d|0)){break b}b=a+142|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}if((L(b,c)|0)==(d|0)){break b}b=a+148|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}if((L(b,c)|0)==(d|0)){break b}b=a+150|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}if((L(b,c)|0)==(d|0)){break b}b=a+156|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}if((L(b,c)|0)==(d|0)){break b}b=a+162|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}if((L(b,c)|0)==(d|0)){break b}b=a+166|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}if((L(b,c)|0)==(d|0)){break b}b=a+168|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}if((L(b,c)|0)==(d|0)){break b}b=a+172|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}if((L(b,c)|0)==(d|0)){break b}b=a+178|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}if((L(b,c)|0)==(d|0)){break b}b=a+180|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}if((L(b,c)|0)==(d|0)){break b}b=a+186|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}if((L(b,c)|0)==(d|0)){break b}b=a+190|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}if((L(b,c)|0)==(d|0)){break b}b=a+192|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}if((L(b,c)|0)==(d|0)){break b}b=a+196|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}if((L(b,c)|0)==(d|0)){break b}b=a+198|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}if((L(b,c)|0)==(d|0)){break b}b=a+208|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}a=a+210|0;if((L(b,c)|0)!=(d|0)){continue}break}break b}b=F[(a<<2)+10352>>2];c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}a=a+1|0;if((L(b,c)|0)!=(d|0)){continue}}break}d=g+1|0;a=(d|0)==48;g=a?0:d;f=a+f|0;d=L(f,210);continue}}aa=e+16|0;return d}function pd(a,b){var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0;a:{b:{c:{d:{e:{if(F[a+92>>2]==F[a+88>>2]){break e}c=F[a+52>>2];f:{if((c|0)!=F[a+56>>2]){F[c>>2]=b;F[a+52>>2]=c+4;break f}d=F[a+48>>2];h=c-d|0;f=h>>2;e=f+1|0;if(e>>>0>=1073741824){break a}c=h>>1;e=h>>>0>=2147483644?1073741823:c>>>0>e>>>0?c:e;if(e){if(e>>>0>=1073741824){break d}c=na(e<<2)}else{c=0}f=c+(f<<2)|0;F[f>>2]=b;if((h|0)>0){oa(c,d,h)}F[a+56>>2]=c+(e<<2);F[a+52>>2]=f+4;F[a+48>>2]=c;if(!d){break f}ma(d)}F[a+84>>2]=0;f=-1;c=-1;g:{if((b|0)==-1){break g}e=F[a+4>>2];c=b+1|0;c=(c>>>0)%3|0?c:b-2|0;if((c|0)!=-1){f=F[F[e>>2]+(c<<2)>>2]}h:{if((b>>>0)%3|0){d=b-1|0;break h}d=b+2|0;c=-1;if((d|0)==-1){break g}}c=F[F[e>>2]+(d<<2)>>2]}i=c>>>3&536870908;e=F[a+36>>2];g=e+(f>>>3&536870908)|0;h=F[g>>2];d=1<>2]=d|h;g=a+8|0;if((b|0)!=-1){e=b+1|0;d=(e>>>0)%3|0?e:b-2|0}else{d=-1}Ma(g,f,d);e=F[a+36>>2]}d=e+i|0;e=F[d>>2];f=1<>2]=e|f;d=a+8|0;f=-1;i:{if((b|0)==-1){break i}f=b-1|0;if((b>>>0)%3|0){break i}f=b+2|0}Ma(d,c,f)}f=-1;f=(b|0)!=-1?F[F[F[a+4>>2]>>2]+(b<<2)>>2]:f;d=F[a+36>>2]+(f>>>3&536870908)|0;e=F[d>>2];c=1<>2]=c|e;Ma(a+8|0,f,b)}d=F[a+84>>2];if((d|0)>2){break e}while(1){f=L(d,12)+a|0;b=F[f+52>>2];if((b|0)==F[f+48>>2]){d=d+1|0;if((d|0)!=3){continue}break e}c=b-4|0;b=F[c>>2];F[f+52>>2]=c;F[a+84>>2]=d;if((b|0)==-1){break e}f=F[a+24>>2];c=(b>>>0)/3|0;j:{if(F[f+(c>>>3&268435452)>>2]>>>c&1){break j}k:{while(1){i=(b>>>0)/3|0;c=(i>>>3&268435452)+f|0;F[c>>2]=F[c>>2]|1<>2]>>2]+(b<<2)>>2]:f;d=F[a+36>>2]+(f>>>3&536870908)|0;e=F[d>>2];c=1<>2]=c|e;h=F[(F[F[a+16>>2]+96>>2]+L(i,12)|0)+((b>>>0)%3<<2)>>2];k=F[F[a+20>>2]+4>>2];c=F[k+4>>2];t:{if((c|0)!=F[k+8>>2]){F[c>>2]=h;F[k+4>>2]=c+4;break t}g=F[k>>2];j=c-g|0;e=j>>2;d=e+1|0;if(d>>>0>=1073741824){break s}c=j>>1;d=j>>>0>=2147483644?1073741823:c>>>0>d>>>0?c:d;if(d){if(d>>>0>=1073741824){break d}c=na(d<<2)}else{c=0}e=c+(e<<2)|0;F[e>>2]=h;if((j|0)>0){oa(c,g,j)}F[k+8>>2]=c+(d<<2);F[k+4>>2]=e+4;F[k>>2]=c;if(!g){break t}ma(g)}j=F[a+12>>2];c=F[j+4>>2];u:{if((c|0)!=F[j+8>>2]){F[c>>2]=b;F[j+4>>2]=c+4;break u}h=F[j>>2];g=c-h|0;e=g>>2;d=e+1|0;if(d>>>0>=1073741824){break r}c=g>>1;d=g>>>0>=2147483644?1073741823:c>>>0>d>>>0?c:d;if(d){if(d>>>0>=1073741824){break d}c=na(d<<2)}else{c=0}e=c+(e<<2)|0;F[e>>2]=b;if((g|0)>0){oa(c,h,g)}F[j+8>>2]=c+(d<<2);F[j+4>>2]=e+4;F[j>>2]=c;if(!h){break u}ma(h)}c=F[a+12>>2];F[F[c+12>>2]+(f<<2)>>2]=F[c+24>>2];F[c+24>>2]=F[c+24>>2]+1}if((b|0)==-1){break k}g=F[a+4>>2];f=-1;c=b+1|0;c=(c>>>0)%3|0?c:b-2|0;if((c|0)!=-1){f=F[F[g+12>>2]+(c<<2)>>2]}v:{w:{if((L(i,3)|0)!=(b|0)){e=b-1|0;break w}e=b+2|0;b=-1;if((e|0)==-1){break v}}b=F[F[g+12>>2]+(e<<2)>>2]}h=(b|0)==-1;e=(b>>>0)/3|0;if((f|0)!=-1){c=(f>>>0)/3|0;c=F[F[a+24>>2]+(c>>>3&268435452)>>2]&1<>2]+(c>>>3&536870908)>>2]>>>c&1){break x}e=0;c=F[F[g>>2]+(b<<2)>>2];if(!(F[F[a+36>>2]+(c>>>3&536870908)>>2]>>>c&1)){c=F[a+88>>2]+(c<<2)|0;e=F[c>>2];F[c>>2]=e+1;e=(e|0)<=0?2:1}if(F[a+84>>2]>=(e|0)?d:0){break m}k=L(e,12)+a|0;c=F[k+52>>2];y:{if((c|0)!=F[k+56>>2]){F[c>>2]=b;F[k+52>>2]=c+4;break y}i=F[k+48>>2];j=c-i|0;h=j>>2;g=h+1|0;if(g>>>0>=1073741824){break c}c=j>>1;g=j>>>0>=2147483644?1073741823:c>>>0>g>>>0?c:g;if(g){if(g>>>0>=1073741824){break d}c=na(g<<2)}else{c=0}h=c+(h<<2)|0;F[h>>2]=b;if((j|0)>0){oa(c,i,j)}F[k+48>>2]=c;F[k+52>>2]=h+4;F[k+56>>2]=c+(g<<2);if(!i){break y}ma(i)}if(F[a+84>>2]<=(e|0)){break x}F[a+84>>2]=e}if(d){break k}b=-1;if((f|0)==-1){break n}}b=F[F[F[a+4>>2]>>2]+(f<<2)>>2]}e=0;if(!(F[F[a+36>>2]+(b>>>3&536870908)>>2]>>>b&1)){b=F[a+88>>2]+(b<<2)|0;c=F[b>>2];F[b>>2]=c+1;e=(c|0)<=0?2:1}if(F[a+84>>2]<(e|0)){break l}b=f}f=F[a+24>>2];continue}break}i=L(e,12)+a|0;b=F[i+52>>2];z:{if((b|0)!=F[i+56>>2]){F[b>>2]=f;F[i+52>>2]=b+4;break z}h=F[i+48>>2];g=b-h|0;c=g>>2;d=c+1|0;if(d>>>0>=1073741824){break b}b=g>>1;d=g>>>0>=2147483644?1073741823:b>>>0>d>>>0?b:d;if(d){if(d>>>0>=1073741824){break d}b=na(d<<2)}else{b=0}c=b+(c<<2)|0;F[c>>2]=f;if((g|0)>0){oa(b,h,g)}F[i+48>>2]=b;F[i+52>>2]=c+4;F[i+56>>2]=b+(d<<2);if(!h){break z}ma(h)}d=F[a+84>>2];if((d|0)<=(e|0)){break j}F[a+84>>2]=e;d=e;break j}d=F[a+84>>2]}if((d|0)<3){continue}break}}return 1}sa();v()}qa();v()}qa();v()}qa();v()}function nb(a,b,c,d){var e=0,f=0,g=0,h=0,i=M(0),j=0,k=0;a:{if(!d){break a}b:{c:{switch(F[a+28>>2]-1|0){case 0:e=G[a+24|0];f=c&255;if(e>>>0>>0?e:f){g=F[a>>2];e=F[g>>2];b=F[a+48>>2]+gi(F[a+40>>2],F[a+44>>2],b,0)|0;b=e+b|0;g=F[g+4>>2];j=G[a+32|0];while(1){if(b>>>0>=g>>>0){break a}i=M(D[b|0]);J[(h<<2)+d>>2]=j?M(i/M(127)):i;b=b+1|0;h=h+1|0;e=G[a+24|0];if(h>>>0<(e>>>0>>0?e:f)>>>0){continue}break}}k=1;if(e>>>0>=f>>>0){break a}d=(e<<2)+d|0;a=(c&255)-e|0;break b;case 1:e=G[a+24|0];f=c&255;if(e>>>0>>0?e:f){g=F[a>>2];e=F[g>>2];b=F[a+48>>2]+gi(F[a+40>>2],F[a+44>>2],b,0)|0;b=e+b|0;g=F[g+4>>2];j=G[a+32|0];while(1){if(b>>>0>=g>>>0){break a}i=M(G[b|0]);J[(h<<2)+d>>2]=j?M(i/M(255)):i;b=b+1|0;h=h+1|0;e=G[a+24|0];if(h>>>0<(e>>>0>>0?e:f)>>>0){continue}break}}k=1;if(e>>>0>=f>>>0){break a}d=(e<<2)+d|0;a=(c&255)-e|0;break b;case 2:e=G[a+24|0];f=c&255;if(e>>>0>>0?e:f){g=F[a>>2];e=F[g>>2];b=F[a+48>>2]+gi(F[a+40>>2],F[a+44>>2],b,0)|0;b=e+b|0;g=F[g+4>>2];j=G[a+32|0];while(1){if(b>>>0>=g>>>0){break a}i=M(E[b>>1]);J[(h<<2)+d>>2]=j?M(i/M(32767)):i;b=b+2|0;h=h+1|0;e=G[a+24|0];if(h>>>0<(e>>>0>>0?e:f)>>>0){continue}break}}k=1;if(e>>>0>=f>>>0){break a}d=(e<<2)+d|0;a=(c&255)-e|0;break b;case 3:e=G[a+24|0];f=c&255;if(e>>>0>>0?e:f){g=F[a>>2];e=F[g>>2];b=F[a+48>>2]+gi(F[a+40>>2],F[a+44>>2],b,0)|0;b=e+b|0;g=F[g+4>>2];j=G[a+32|0];while(1){if(b>>>0>=g>>>0){break a}i=M(H[b>>1]);J[(h<<2)+d>>2]=j?M(i/M(65535)):i;b=b+2|0;h=h+1|0;e=G[a+24|0];if(h>>>0<(e>>>0>>0?e:f)>>>0){continue}break}}k=1;if(e>>>0>=f>>>0){break a}d=(e<<2)+d|0;a=(c&255)-e|0;break b;case 4:e=G[a+24|0];f=c&255;if(e>>>0>>0?e:f){g=F[a>>2];e=F[g>>2];b=F[a+48>>2]+gi(F[a+40>>2],F[a+44>>2],b,0)|0;b=e+b|0;g=F[g+4>>2];j=G[a+32|0];while(1){if(b>>>0>=g>>>0){break a}i=M(F[b>>2]);J[(h<<2)+d>>2]=j?M(i*M(4.656612873077393e-10)):i;b=b+4|0;h=h+1|0;e=G[a+24|0];if(h>>>0<(e>>>0>>0?e:f)>>>0){continue}break}}k=1;if(e>>>0>=f>>>0){break a}d=(e<<2)+d|0;a=(c&255)-e|0;break b;case 5:e=G[a+24|0];f=c&255;if(e>>>0>>0?e:f){g=F[a>>2];e=F[g>>2];b=F[a+48>>2]+gi(F[a+40>>2],F[a+44>>2],b,0)|0;b=e+b|0;g=F[g+4>>2];j=G[a+32|0];while(1){if(b>>>0>=g>>>0){break a}i=M(I[b>>2]);J[(h<<2)+d>>2]=j?M(i*M(2.3283064365386963e-10)):i;b=b+4|0;h=h+1|0;e=G[a+24|0];if(h>>>0<(e>>>0>>0?e:f)>>>0){continue}break}}k=1;if(e>>>0>=f>>>0){break a}d=(e<<2)+d|0;a=(c&255)-e|0;break b;case 6:e=G[a+24|0];f=c&255;if(e>>>0>>0?e:f){g=F[a>>2];e=F[g>>2];b=F[a+48>>2]+gi(F[a+40>>2],F[a+44>>2],b,0)|0;b=e+b|0;g=F[g+4>>2];j=G[a+32|0];while(1){if(b>>>0>=g>>>0){break a}i=M(+I[b>>2]+ +F[b+4>>2]*4294967296);J[(h<<2)+d>>2]=j?M(i*M(10842021724855044e-35)):i;b=b+8|0;h=h+1|0;e=G[a+24|0];if(h>>>0<(e>>>0>>0?e:f)>>>0){continue}break}}k=1;if(e>>>0>=f>>>0){break a}d=(e<<2)+d|0;a=(c&255)-e|0;break b;case 7:e=G[a+24|0];f=c&255;if(e>>>0>>0?e:f){g=F[a>>2];e=F[g>>2];b=F[a+48>>2]+gi(F[a+40>>2],F[a+44>>2],b,0)|0;b=e+b|0;g=F[g+4>>2];j=G[a+32|0];while(1){if(b>>>0>=g>>>0){break a}i=M(+I[b>>2]+ +I[b+4>>2]*4294967296);J[(h<<2)+d>>2]=j?M(i*M(5.421010862427522e-20)):i;b=b+8|0;h=h+1|0;e=G[a+24|0];if(h>>>0<(e>>>0>>0?e:f)>>>0){continue}break}}k=1;if(e>>>0>=f>>>0){break a}d=(e<<2)+d|0;a=(c&255)-e|0;break b;case 8:e=G[a+24|0];f=c&255;if(e>>>0>>0?e:f){g=F[a>>2];e=F[g>>2];b=F[a+48>>2]+gi(F[a+40>>2],F[a+44>>2],b,0)|0;b=e+b|0;g=F[g+4>>2];while(1){if(b>>>0>=g>>>0){break a}J[(h<<2)+d>>2]=J[b>>2];b=b+4|0;h=h+1|0;e=G[a+24|0];if(h>>>0<(e>>>0>>0?e:f)>>>0){continue}break}}k=1;if(e>>>0>=f>>>0){break a}d=(e<<2)+d|0;a=(c&255)-e|0;break b;case 9:e=G[a+24|0];f=c&255;if(e>>>0>>0?e:f){g=F[a>>2];e=F[g>>2];b=F[a+48>>2]+gi(F[a+40>>2],F[a+44>>2],b,0)|0;b=e+b|0;g=F[g+4>>2];while(1){if(b>>>0>=g>>>0){break a}J[(h<<2)+d>>2]=K[b>>3];b=b+8|0;h=h+1|0;e=G[a+24|0];if(h>>>0<(e>>>0>>0?e:f)>>>0){continue}break}}k=1;if(e>>>0>=f>>>0){break a}d=(e<<2)+d|0;a=(c&255)-e|0;break b;case 10:break c;default:break a}}e=G[a+24|0];f=c&255;if(e>>>0>>0?e:f){g=F[a>>2];e=F[g>>2];b=F[a+48>>2]+gi(F[a+40>>2],F[a+44>>2],b,0)|0;b=e+b|0;g=F[g+4>>2];while(1){if(b>>>0>=g>>>0){break a}J[(h<<2)+d>>2]=G[b|0]?M(1):M(0);b=b+1|0;h=h+1|0;e=G[a+24|0];if(h>>>0<(e>>>0>>0?e:f)>>>0){continue}break}}k=1;if(e>>>0>=f>>>0){break a}d=(e<<2)+d|0;a=(c&255)-e|0}pa(d,0,a<<2)}return k}function Db(a,b,c,d){var e=0,f=0,g=0,h=0,i=0,j=M(0),k=0,l=M(0);a:{b:{if(!d){break b}c:{switch(F[a+28>>2]-1|0){case 0:e=G[a+24|0];f=c&255;if(e>>>0>>0?e:f){e=F[F[a>>2]>>2];b=F[a+48>>2]+gi(F[a+40>>2],F[a+44>>2],b,0)|0;b=e+b|0;while(1){if(I[F[a>>2]+4>>2]<=b>>>0){break b}D[d+g|0]=G[b|0];b=b+1|0;g=g+1|0;e=G[a+24|0];if(g>>>0<(e>>>0>>0?e:f)>>>0){continue}break}}i=1;if(e>>>0>=f>>>0){break b}break a;case 1:e=G[a+24|0];f=c&255;if(e>>>0>>0?e:f){e=F[F[a>>2]>>2];b=F[a+48>>2]+gi(F[a+40>>2],F[a+44>>2],b,0)|0;b=e+b|0;while(1){if(I[F[a>>2]+4>>2]<=b>>>0){return 0}e=D[b|0];if((e|0)<0){break b}D[d+g|0]=e;b=b+1|0;g=g+1|0;e=G[a+24|0];if(g>>>0<(e>>>0>>0?e:f)>>>0){continue}break}}i=1;if(e>>>0>=f>>>0){break b}break a;case 2:e=G[a+24|0];f=c&255;if(e>>>0>>0?e:f){e=F[F[a>>2]>>2];b=F[a+48>>2]+gi(F[a+40>>2],F[a+44>>2],b,0)|0;b=e+b|0;while(1){if(I[F[a>>2]+4>>2]<=b>>>0){break b}e=H[b>>1];if((e-128&65535)>>>0<65280){break b}D[d+g|0]=e;b=b+2|0;g=g+1|0;e=G[a+24|0];if(g>>>0<(e>>>0>>0?e:f)>>>0){continue}break}}i=1;if(e>>>0>=f>>>0){break b}break a;case 3:e=G[a+24|0];f=c&255;if(e>>>0>>0?e:f){e=F[F[a>>2]>>2];b=F[a+48>>2]+gi(F[a+40>>2],F[a+44>>2],b,0)|0;b=e+b|0;while(1){if(I[F[a>>2]+4>>2]<=b>>>0){break b}e=H[b>>1];if(e>>>0>127){break b}D[d+g|0]=e;b=b+2|0;g=g+1|0;e=G[a+24|0];if(g>>>0<(e>>>0>>0?e:f)>>>0){continue}break}}i=1;if(e>>>0>=f>>>0){break b}break a;case 4:e=G[a+24|0];f=c&255;if(e>>>0>>0?e:f){e=F[F[a>>2]>>2];b=F[a+48>>2]+gi(F[a+40>>2],F[a+44>>2],b,0)|0;b=e+b|0;while(1){if(I[F[a>>2]+4>>2]<=b>>>0){break b}e=F[b>>2];if(e-128>>>0<4294967040){break b}D[d+g|0]=e;b=b+4|0;g=g+1|0;e=G[a+24|0];if(g>>>0<(e>>>0>>0?e:f)>>>0){continue}break}}i=1;if(e>>>0>=f>>>0){break b}break a;case 5:e=G[a+24|0];f=c&255;if(e>>>0>>0?e:f){e=F[F[a>>2]>>2];b=F[a+48>>2]+gi(F[a+40>>2],F[a+44>>2],b,0)|0;b=e+b|0;while(1){if(I[F[a>>2]+4>>2]<=b>>>0){break b}e=F[b>>2];if(e>>>0>127){break b}D[d+g|0]=e;b=b+4|0;g=g+1|0;e=G[a+24|0];if(g>>>0<(e>>>0>>0?e:f)>>>0){continue}break}}i=1;if(e>>>0>=f>>>0){break b}break a;case 6:e=G[a+24|0];f=c&255;if(e>>>0>>0?e:f){e=F[F[a>>2]>>2];b=F[a+48>>2]+gi(F[a+40>>2],F[a+44>>2],b,0)|0;b=e+b|0;while(1){if(I[F[a>>2]+4>>2]<=b>>>0){break b}k=F[b>>2];e=F[b+4>>2]-(k>>>0<128)|0;if((e|0)==-1&k-128>>>0<4294967040|(e|0)!=-1){break b}D[d+g|0]=k;b=b+8|0;g=g+1|0;e=G[a+24|0];if(g>>>0<(e>>>0>>0?e:f)>>>0){continue}break}}i=1;if(e>>>0>=f>>>0){break b}break a;case 7:e=G[a+24|0];f=c&255;if(e>>>0>>0?e:f){e=F[F[a>>2]>>2];b=F[a+48>>2]+gi(F[a+40>>2],F[a+44>>2],b,0)|0;b=e+b|0;while(1){if(I[F[a>>2]+4>>2]<=b>>>0){break b}e=F[b+4>>2];k=F[b>>2];if(!e&k>>>0>127|e){break b}D[d+g|0]=k;b=b+8|0;g=g+1|0;e=G[a+24|0];if(g>>>0<(e>>>0>>0?e:f)>>>0){continue}break}}i=1;if(e>>>0>=f>>>0){break b}break a;case 8:e=G[a+24|0];c=c&255;d:{if(c>>>0>e>>>0?e:c){e=F[F[a>>2]>>2];b=F[a+48>>2]+gi(F[a+40>>2],F[a+44>>2],b,0)|0;b=e+b|0;while(1){if(I[F[a>>2]+4>>2]<=b>>>0){break d}j=J[b>>2];if(j=M(127)){break d}f=d+g|0;e:{f:{if(G[a+32|0]){if(jM(1)){break d}h=R(+j*127+.5);if(!(N(h)<2147483648)){break f}e=~~h;break e}if(!(l>>0<(c>>>0>e>>>0?e:c)>>>0){continue}break}}i=1;if(c>>>0<=e>>>0){break d}pa(d+e|0,0,c-e|0)}return i;case 9:e=G[a+24|0];c=c&255;g:{if(c>>>0>e>>>0?e:c){e=F[F[a>>2]>>2];b=F[a+48>>2]+gi(F[a+40>>2],F[a+44>>2],b,0)|0;b=e+b|0;while(1){if(I[F[a>>2]+4>>2]<=b>>>0){break g}h=K[b>>3];if(h<-128|h!=h|(N(h)==W|h>=127)){break g}f=d+g|0;if(G[a+32|0]){if(h<0|h>1){break g}h=R(h*127+.5)}h:{if(N(h)<2147483648){e=~~h;break h}e=-2147483648}D[f|0]=e;b=b+8|0;g=g+1|0;e=G[a+24|0];if(g>>>0<(c>>>0>e>>>0?e:c)>>>0){continue}break}}i=1;if(c>>>0<=e>>>0){break g}pa(d+e|0,0,c-e|0)}return i;case 10:break c;default:break b}}e=G[a+24|0];f=c&255;if(e>>>0>>0?e:f){e=F[F[a>>2]>>2];b=F[a+48>>2]+gi(F[a+40>>2],F[a+44>>2],b,0)|0;b=e+b|0;while(1){if(I[F[a>>2]+4>>2]<=b>>>0){break b}D[d+g|0]=G[b|0];b=b+1|0;g=g+1|0;e=G[a+24|0];if(g>>>0<(e>>>0>>0?e:f)>>>0){continue}break}}i=1;if(e>>>0>=f>>>0){break b}pa(d+e|0,0,(c&255)-e|0)}return i}pa(d+e|0,0,(c&255)-e|0);return 1}function Cb(a,b,c,d){var e=0,f=0,g=0,h=0,i=0,j=M(0),k=0;a:{b:{if(!d){break b}c:{switch(F[a+28>>2]-1|0){case 0:e=G[a+24|0];f=c&255;if(e>>>0>>0?e:f){e=F[F[a>>2]>>2];b=F[a+48>>2]+gi(F[a+40>>2],F[a+44>>2],b,0)|0;b=e+b|0;while(1){if(I[F[a>>2]+4>>2]<=b>>>0){return 0}e=D[b|0];if((e|0)<0){break b}D[d+g|0]=e;b=b+1|0;g=g+1|0;e=G[a+24|0];if(g>>>0<(e>>>0>>0?e:f)>>>0){continue}break}}i=1;if(e>>>0>=f>>>0){break b}break a;case 1:e=G[a+24|0];f=c&255;if(e>>>0>>0?e:f){e=F[F[a>>2]>>2];b=F[a+48>>2]+gi(F[a+40>>2],F[a+44>>2],b,0)|0;b=e+b|0;while(1){if(I[F[a>>2]+4>>2]<=b>>>0){break b}D[d+g|0]=G[b|0];b=b+1|0;g=g+1|0;e=G[a+24|0];if(g>>>0<(e>>>0>>0?e:f)>>>0){continue}break}}i=1;if(e>>>0>=f>>>0){break b}break a;case 2:e=G[a+24|0];f=c&255;if(e>>>0>>0?e:f){e=F[F[a>>2]>>2];b=F[a+48>>2]+gi(F[a+40>>2],F[a+44>>2],b,0)|0;b=e+b|0;while(1){if(I[F[a>>2]+4>>2]<=b>>>0){break b}e=H[b>>1];if(e>>>0>255){break b}D[d+g|0]=e;b=b+2|0;g=g+1|0;e=G[a+24|0];if(g>>>0<(e>>>0>>0?e:f)>>>0){continue}break}}i=1;if(e>>>0>=f>>>0){break b}break a;case 3:e=G[a+24|0];f=c&255;if(e>>>0>>0?e:f){e=F[F[a>>2]>>2];b=F[a+48>>2]+gi(F[a+40>>2],F[a+44>>2],b,0)|0;b=e+b|0;while(1){if(I[F[a>>2]+4>>2]<=b>>>0){break b}e=H[b>>1];if(e>>>0>255){break b}D[d+g|0]=e;b=b+2|0;g=g+1|0;e=G[a+24|0];if(g>>>0<(e>>>0>>0?e:f)>>>0){continue}break}}i=1;if(e>>>0>=f>>>0){break b}break a;case 4:e=G[a+24|0];f=c&255;if(e>>>0>>0?e:f){e=F[F[a>>2]>>2];b=F[a+48>>2]+gi(F[a+40>>2],F[a+44>>2],b,0)|0;b=e+b|0;while(1){if(I[F[a>>2]+4>>2]<=b>>>0){break b}e=F[b>>2];if(e>>>0>255){break b}D[d+g|0]=e;b=b+4|0;g=g+1|0;e=G[a+24|0];if(g>>>0<(e>>>0>>0?e:f)>>>0){continue}break}}i=1;if(e>>>0>=f>>>0){break b}break a;case 5:e=G[a+24|0];f=c&255;if(e>>>0>>0?e:f){e=F[F[a>>2]>>2];b=F[a+48>>2]+gi(F[a+40>>2],F[a+44>>2],b,0)|0;b=e+b|0;while(1){if(I[F[a>>2]+4>>2]<=b>>>0){break b}e=F[b>>2];if(e>>>0>255){break b}D[d+g|0]=e;b=b+4|0;g=g+1|0;e=G[a+24|0];if(g>>>0<(e>>>0>>0?e:f)>>>0){continue}break}}i=1;if(e>>>0>=f>>>0){break b}break a;case 6:e=G[a+24|0];f=c&255;if(e>>>0>>0?e:f){e=F[F[a>>2]>>2];b=F[a+48>>2]+gi(F[a+40>>2],F[a+44>>2],b,0)|0;b=e+b|0;while(1){if(I[F[a>>2]+4>>2]<=b>>>0){break b}e=F[b+4>>2];k=F[b>>2];if(!e&k>>>0>255|e){break b}D[d+g|0]=k;b=b+8|0;g=g+1|0;e=G[a+24|0];if(g>>>0<(e>>>0>>0?e:f)>>>0){continue}break}}i=1;if(e>>>0>=f>>>0){break b}break a;case 7:e=G[a+24|0];f=c&255;if(e>>>0>>0?e:f){e=F[F[a>>2]>>2];b=F[a+48>>2]+gi(F[a+40>>2],F[a+44>>2],b,0)|0;b=e+b|0;while(1){if(I[F[a>>2]+4>>2]<=b>>>0){break b}e=F[b+4>>2];k=F[b>>2];if(!e&k>>>0>255|e){break b}D[d+g|0]=k;b=b+8|0;g=g+1|0;e=G[a+24|0];if(g>>>0<(e>>>0>>0?e:f)>>>0){continue}break}}i=1;if(e>>>0>=f>>>0){break b}break a;case 8:e=G[a+24|0];c=c&255;d:{if(c>>>0>e>>>0?e:c){e=F[F[a>>2]>>2];b=F[a+48>>2]+gi(F[a+40>>2],F[a+44>>2],b,0)|0;b=e+b|0;while(1){if(I[F[a>>2]+4>>2]<=b>>>0){break d}j=J[b>>2];if(j=M(255))){break d}f=d+g|0;e:{f:{if(G[a+32|0]){if(j>M(1)){break d}h=R(+j*255+.5);if(!(h<4294967296&h>=0)){break f}e=~~h>>>0;break e}if(!(j=M(0))){break f}e=~~j>>>0;break e}e=0}D[f|0]=e;b=b+4|0;g=g+1|0;e=G[a+24|0];if(g>>>0<(c>>>0>e>>>0?e:c)>>>0){continue}break}}i=1;if(c>>>0<=e>>>0){break d}pa(d+e|0,0,c-e|0)}return i;case 9:e=G[a+24|0];f=c&255;if(e>>>0>>0?e:f){e=F[F[a>>2]>>2];b=F[a+48>>2]+gi(F[a+40>>2],F[a+44>>2],b,0)|0;b=e+b|0;while(1){if(I[F[a>>2]+4>>2]<=b>>>0){break b}h=K[b>>3];if(h<0|h!=h|(N(h)==W|h>=255)){break b}k=d+g|0;if(G[a+32|0]){if(h>1){break b}h=R(h*255+.5)}g:{if(h<4294967296&h>=0){e=~~h>>>0;break g}e=0}D[k|0]=e;b=b+8|0;g=g+1|0;e=G[a+24|0];if(g>>>0<(e>>>0>>0?e:f)>>>0){continue}break}}i=1;if(e>>>0>=f>>>0){break b}break a;case 10:break c;default:break b}}e=G[a+24|0];f=c&255;if(e>>>0>>0?e:f){e=F[F[a>>2]>>2];b=F[a+48>>2]+gi(F[a+40>>2],F[a+44>>2],b,0)|0;b=e+b|0;while(1){if(I[F[a>>2]+4>>2]<=b>>>0){break b}D[d+g|0]=G[b|0];b=b+1|0;g=g+1|0;e=G[a+24|0];if(g>>>0<(e>>>0>>0?e:f)>>>0){continue}break}}i=1;if(e>>>0>=f>>>0){break b}pa(d+e|0,0,(c&255)-e|0)}return i}pa(d+e|0,0,(c&255)-e|0);return 1}function Nb(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,w=0,x=0,y=0;f=aa-96|0;aa=f;e=F[a+16>>2];D[f+92|0]=1;F[f+88>>2]=b;F[f+84>>2]=b;F[f+80>>2]=e;k=F[a+20>>2];d=F[k>>2];a:{b:{e=F[F[e+28>>2]+(b<<2)>>2];if(e>>>0>2]-d>>2>>>0){d=F[F[a+8>>2]+(F[d+(e<<2)>>2]<<2)>>2];e=F[a+4>>2];if(!G[e+84|0]){d=F[F[e+68>>2]+(d<<2)>>2]}F[f+72>>2]=0;F[f+76>>2]=0;k=f- -64|0;F[k>>2]=0;F[k+4>>2]=0;F[f+56>>2]=0;F[f+60>>2]=0;Ia(e,d,D[e+24|0],f+56|0);if((b|0)!=-1){e=b+1|0;k=(e>>>0)%3|0?e:b-2|0;i=((b>>>0)%3|0?-1:2)+b|0;while(1){d=k;e=i;c:{if(!F[a+28>>2]){break c}e=b+1|0;d=(e>>>0)%3|0?e:b-2|0;e=b-1|0;if((b>>>0)%3|0){break c}e=b+2|0}h=F[a+20>>2];b=F[h>>2];d=F[F[F[a+16>>2]+28>>2]+(d<<2)>>2];if(d>>>0>=F[h+4>>2]-b>>2>>>0){break b}d=F[F[a+8>>2]+(F[b+(d<<2)>>2]<<2)>>2];b=F[a+4>>2];if(!G[b+84|0]){d=F[F[b+68>>2]+(d<<2)>>2]}F[f+48>>2]=0;F[f+52>>2]=0;F[f+40>>2]=0;F[f+44>>2]=0;F[f+32>>2]=0;F[f+36>>2]=0;Ia(b,d,D[b+24|0],f+32|0);d=F[a+20>>2];b=F[d>>2];e=F[F[F[a+16>>2]+28>>2]+(e<<2)>>2];if(e>>>0>=F[d+4>>2]-b>>2>>>0){break a}d=F[F[a+8>>2]+(F[b+(e<<2)>>2]<<2)>>2];b=F[a+4>>2];if(!G[b+84|0]){d=F[F[b+68>>2]+(d<<2)>>2]}F[f+24>>2]=0;F[f+28>>2]=0;F[f+16>>2]=0;F[f+20>>2]=0;F[f+8>>2]=0;F[f+12>>2]=0;Ia(b,d,D[b+24|0],f+8|0);e=F[f+8>>2];b=F[f+56>>2];d=e-b|0;h=F[f+60>>2];j=F[f+12>>2]-(h+(b>>>0>e>>>0)|0)|0;p=F[f+40>>2];e=F[f+64>>2];s=p-e|0;t=F[f+68>>2];p=F[f+44>>2]-(t+(e>>>0>p>>>0)|0)|0;u=gi(d,j,s,p);w=n-u|0;n=g-(ba+(n>>>0>>0)|0)|0;o=w;g=F[f+16>>2];u=g-e|0;t=F[f+20>>2]-((e>>>0>g>>>0)+t|0)|0;g=F[f+32>>2];w=g-b|0;h=F[f+36>>2]-((b>>>0>g>>>0)+h|0)|0;e=gi(u,t,w,h);b=o+e|0;g=ba+n|0;g=b>>>0>>0?g+1|0:g;n=b;e=l;o=d;y=j;b=F[f+48>>2];l=F[f+72>>2];d=b-l|0;j=F[f+76>>2];x=F[f+52>>2]-(j+(b>>>0>>0)|0)|0;o=gi(o,y,d,x);e=e+o|0;b=ba+m|0;b=e>>>0>>0?b+1|0:b;m=F[f+24>>2];o=m-l|0;j=F[f+28>>2]-((l>>>0>m>>>0)+j|0)|0;m=gi(o,j,w,h);l=e-m|0;m=b-(ba+(e>>>0>>0)|0)|0;b=gi(u,t,d,x);e=q-b|0;b=r-(ba+(b>>>0>q>>>0)|0)|0;r=gi(o,j,s,p);q=r+e|0;b=ba+b|0;b=q>>>0>>0?b+1|0:b;r=b;b=F[f+88>>2];e=F[f+80>>2];d:{if(G[f+92|0]){e:{f:{g:{h:{if((b|0)==-1){break h}d=b+1|0;b=(d>>>0)%3|0?d:b-2|0;if((b|0)==-1|F[F[e>>2]+(b>>>3&536870908)>>2]>>>b&1){break h}b=F[F[F[e+64>>2]+12>>2]+(b<<2)>>2];if((b|0)!=-1){break g}}F[f+88>>2]=-1;break f}d=b+1|0;b=(d>>>0)%3|0?d:b-2|0;F[f+88>>2]=b;if((b|0)!=-1){break e}}b=F[f+84>>2];d=-1;i:{if((b|0)==-1){break i}j:{if((b>>>0)%3|0){b=b-1|0;break j}b=b+2|0;d=-1;if((b|0)==-1){break i}}d=-1;if(F[F[e>>2]+(b>>>3&536870908)>>2]>>>b&1){break i}b=F[F[F[e+64>>2]+12>>2]+(b<<2)>>2];d=-1;if((b|0)==-1){break i}d=b-1|0;if((b>>>0)%3|0){break i}d=b+2|0}D[f+92|0]=0;F[f+88>>2]=d;break d}if((b|0)!=F[f+84>>2]){break d}F[f+88>>2]=-1;break d}d=-1;k:{if((b|0)==-1){break k}l:{if((b>>>0)%3|0){b=b-1|0;break l}b=b+2|0;d=-1;if((b|0)==-1){break k}}d=-1;if(F[F[e>>2]+(b>>>3&536870908)>>2]>>>b&1){break k}b=F[F[F[e+64>>2]+12>>2]+(b<<2)>>2];d=-1;if((b|0)==-1){break k}d=b-1|0;if((b>>>0)%3|0){break k}d=b+2|0}F[f+88>>2]=d}b=F[f+88>>2];if((b|0)!=-1){continue}break}}b=r>>31;e=b^q;j=e-b|0;h=(b^r)-((b>>>0>e>>>0)+b|0)|0;p=-1;e=2147483647;b=m>>31;k=b^l;d=(b^m)-((b>>>0>k>>>0)+b|0)|0;b=k-b|0;s=b^-1;i=d^2147483647;k=g;m:{n:{if(!F[a+28>>2]){if((i|0)==(h|0)&j>>>0>s>>>0|i>>>0>>0){break m}i=g;a=b;e=b+j|0;b=d+h|0;b=a>>>0>e>>>0?b+1|0:b;a=g>>31;d=a;h=d^n;j=h-d|0;g=e+j|0;d=(d^i)-((d>>>0>h>>>0)+d|0)|0;a=g;g=d^2147483647;g=(g|0)==(b|0)&(j^-1)>>>0>>0|b>>>0>g>>>0;a=g?-1:a;if(!(g&0)&(a|0)<=536870912|(a|0)<536870912){break m}b=0;a=a>>>29|0;break n}o:{if((i|0)==(h|0)&j>>>0>s>>>0|i>>>0>>0){break o}a=b;i=b+j|0;b=d+h|0;b=a>>>0>i>>>0?b+1|0:b;a=i;h=g;d=g>>31;g=d;i=d^n;d=(d^h)-(d+(d>>>0>i>>>0)|0)|0;g=i-g|0;i=d^2147483647;if((i|0)==(b|0)&(g^-1)>>>0>>0|b>>>0>i>>>0){break o}b=b+d|0;a=a+g|0;b=a>>>0>>0?b+1|0:b;p=a;e=b;if(!b&a>>>0<536870913){break m}}b=e>>>29|0;a=(e&536870911)<<3|p>>>29}n=hi(n,k,a,b);l=hi(l,m,a,b);q=hi(q,r,a,b)}F[c+8>>2]=n;F[c+4>>2]=l;F[c>>2]=q;aa=f+96|0;return}va();v()}va();v()}va();v()}function hc(a,b,c){var d=0,e=0,f=0,g=0,h=0,i=0;e=aa-48|0;aa=e;d=H[5053]|H[5054]<<16;f=H[5051]|H[5052]<<16;E[e+38>>1]=f;E[e+40>>1]=f>>>16;E[e+42>>1]=d;E[e+44>>1]=d>>>16;d=F[2525];F[e+32>>2]=F[2524];F[e+36>>2]=d;d=F[2523];F[e+24>>2]=F[2522];F[e+28>>2]=d;d=F[2521];F[e+16>>2]=F[2520];F[e+20>>2]=d;f=F[b+12>>2];d=F[b+20>>2];g=F[b+16>>2];h=g+5|0;d=h>>>0<5?d+1|0:d;a:{b:{if(h>>>0>I[b+8>>2]&(d|0)>=(f|0)|(d|0)>(f|0)){b=Ba(e+16|0);if(b>>>0>=4294967280){break a}c:{d:{if(b>>>0>=11){d=(b|15)+1|0;c=na(d);F[e+8>>2]=d|-2147483648;F[e>>2]=c;F[e+4>>2]=b;break d}D[e+11|0]=b;c=e;if(!b){break c}}oa(c,e+16|0,b)}D[b+c|0]=0;F[a>>2]=-2;a=a+4|0;if(D[e+11|0]>=0){b=F[e+4>>2];F[a>>2]=F[e>>2];F[a+4>>2]=b;F[a+8>>2]=F[e+8>>2];break b}b=a;a=F[e>>2];ta(b,a,F[e+4>>2]);ma(a);break b}d=g+F[b>>2]|0;f=G[d|0]|G[d+1|0]<<8|(G[d+2|0]<<16|G[d+3|0]<<24);D[c|0]=f;D[c+1|0]=f>>>8;D[c+2|0]=f>>>16;D[c+3|0]=f>>>24;D[c+4|0]=G[d+4|0];d=F[b+20>>2];f=F[b+16>>2]+5|0;d=f>>>0<5?d+1|0:d;F[b+16>>2]=f;F[b+20>>2]=d;if(ua(c,1250,5)){b=na(32);D[b+17|0]=0;D[b+16|0]=G[1494];c=G[1490]|G[1491]<<8|(G[1492]<<16|G[1493]<<24);d=G[1486]|G[1487]<<8|(G[1488]<<16|G[1489]<<24);D[b+8|0]=d;D[b+9|0]=d>>>8;D[b+10|0]=d>>>16;D[b+11|0]=d>>>24;D[b+12|0]=c;D[b+13|0]=c>>>8;D[b+14|0]=c>>>16;D[b+15|0]=c>>>24;c=G[1482]|G[1483]<<8|(G[1484]<<16|G[1485]<<24);d=G[1478]|G[1479]<<8|(G[1480]<<16|G[1481]<<24);D[b|0]=d;D[b+1|0]=d>>>8;D[b+2|0]=d>>>16;D[b+3|0]=d>>>24;D[b+4|0]=c;D[b+5|0]=c>>>8;D[b+6|0]=c>>>16;D[b+7|0]=c>>>24;F[a>>2]=-1;ta(a+4|0,b,17);ma(b);break b}g=F[b+12>>2];if((g|0)<=(d|0)&I[b+8>>2]<=f>>>0|(d|0)>(g|0)){b=Ba(e+16|0);if(b>>>0>=4294967280){break a}e:{f:{if(b>>>0>=11){d=(b|15)+1|0;c=na(d);F[e+8>>2]=d|-2147483648;F[e>>2]=c;F[e+4>>2]=b;break f}D[e+11|0]=b;c=e;if(!b){break e}}oa(c,e+16|0,b)}D[b+c|0]=0;F[a>>2]=-2;a=a+4|0;if(D[e+11|0]>=0){b=F[e+4>>2];F[a>>2]=F[e>>2];F[a+4>>2]=b;F[a+8>>2]=F[e+8>>2];break b}b=a;a=F[e>>2];ta(b,a,F[e+4>>2]);ma(a);break b}D[c+5|0]=G[f+F[b>>2]|0];d=F[b+20>>2];f=F[b+16>>2]+1|0;d=f?d:d+1|0;F[b+16>>2]=f;F[b+20>>2]=d;g=F[b+12>>2];if((g|0)<=(d|0)&I[b+8>>2]<=f>>>0|(d|0)>(g|0)){b=Ba(e+16|0);if(b>>>0>=4294967280){break a}g:{h:{if(b>>>0>=11){d=(b|15)+1|0;c=na(d);F[e+8>>2]=d|-2147483648;F[e>>2]=c;F[e+4>>2]=b;break h}D[e+11|0]=b;c=e;if(!b){break g}}oa(c,e+16|0,b)}D[b+c|0]=0;F[a>>2]=-2;a=a+4|0;if(D[e+11|0]>=0){b=F[e+4>>2];F[a>>2]=F[e>>2];F[a+4>>2]=b;F[a+8>>2]=F[e+8>>2];break b}b=a;a=F[e>>2];ta(b,a,F[e+4>>2]);ma(a);break b}D[c+6|0]=G[f+F[b>>2]|0];d=F[b+20>>2];f=F[b+16>>2]+1|0;d=f?d:d+1|0;F[b+16>>2]=f;F[b+20>>2]=d;g=F[b+12>>2];if((g|0)<=(d|0)&I[b+8>>2]<=f>>>0|(d|0)>(g|0)){b=Ba(e+16|0);if(b>>>0>=4294967280){break a}i:{j:{if(b>>>0>=11){d=(b|15)+1|0;c=na(d);F[e+8>>2]=d|-2147483648;F[e>>2]=c;F[e+4>>2]=b;break j}D[e+11|0]=b;c=e;if(!b){break i}}oa(c,e+16|0,b)}D[b+c|0]=0;F[a>>2]=-2;a=a+4|0;if(D[e+11|0]>=0){b=F[e+4>>2];F[a>>2]=F[e>>2];F[a+4>>2]=b;F[a+8>>2]=F[e+8>>2];break b}b=a;a=F[e>>2];ta(b,a,F[e+4>>2]);ma(a);break b}D[c+7|0]=G[f+F[b>>2]|0];d=F[b+20>>2];f=F[b+16>>2]+1|0;d=f?d:d+1|0;F[b+16>>2]=f;F[b+20>>2]=d;g=F[b+12>>2];if((g|0)<=(d|0)&I[b+8>>2]<=f>>>0|(d|0)>(g|0)){b=Fb(e,e+16|0);F[a>>2]=-2;a=a+4|0;if(D[b+11|0]>=0){c=F[b+4>>2];F[a>>2]=F[b>>2];F[a+4>>2]=c;F[a+8>>2]=F[b+8>>2];break b}ta(a,F[b>>2],F[b+4>>2]);if(D[b+11|0]>=0){break b}ma(F[b>>2]);break b}D[c+8|0]=G[f+F[b>>2]|0];d=F[b+20>>2];f=d;i=F[b+16>>2];g=i+1|0;d=g?d:d+1|0;F[b+16>>2]=g;F[b+20>>2]=d;h=F[b+12>>2];d=f;f=i+3|0;d=f>>>0<3?d+1|0:d;if(f>>>0>I[b+8>>2]&(d|0)>=(h|0)|(d|0)>(h|0)){b=Fb(e,e+16|0);F[a>>2]=-2;a=a+4|0;if(D[b+11|0]>=0){c=F[b+4>>2];F[a>>2]=F[b>>2];F[a+4>>2]=c;F[a+8>>2]=F[b+8>>2];break b}ta(a,F[b>>2],F[b+4>>2]);if(D[b+11|0]>=0){break b}ma(F[b>>2]);break b}f=c;c=g+F[b>>2]|0;E[f+10>>1]=G[c|0]|G[c+1|0]<<8;d=F[b+20>>2];c=F[b+16>>2]+2|0;d=c>>>0<2?d+1|0:d;F[b+16>>2]=c;F[b+20>>2]=d;F[a+8>>2]=0;F[a+12>>2]=0;F[a>>2]=0;F[a+4>>2]=0}aa=e+48|0;return}Ca();v()}function Gg(a){a=a|0;var b=0,c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0;g=aa-32|0;aa=g;a:{if(!jb(1,g+28|0,F[a+32>>2])){break a}if(!jb(1,g+24|0,F[a+32>>2])){break a}m=F[g+28>>2];if(m>>>0>1431655765){break a}b=F[a+32>>2];i=F[b+8>>2];f=i;c=F[b+16>>2];o=f-c|0;e=F[b+12>>2];d=c>>>0>f>>>0;f=F[b+20>>2];n=hi(o,e-(d+f|0)|0,3,0);if(!ba&m>>>0>n>>>0){break a}n=F[g+24>>2];d=gi(m,0,3,0);if(!ba&d>>>0>>0|((f|0)>=(e|0)&c>>>0>=i>>>0|(f|0)>(e|0))){break a}e=G[c+F[b>>2]|0];c=c+1|0;f=c?f:f+1|0;F[b+16>>2]=c;F[b+20>>2]=f;b:{c:{if(!e){c=0;b=aa-32|0;aa=b;F[b+24>>2]=0;F[b+16>>2]=0;F[b+20>>2]=0;d:{e:{f=L(m,3);if(f){if(f>>>0>=1073741824){break e}e=L(m,12);c=na(e);pa(c,0,e)}if(kc(f,1,F[a+32>>2],c)){f:{if(!m){f=0;break f}f=1;e=F[c>>2];i=e>>>1|0;e=e&1?0-i|0:i;if((e|0)<0){break f}i=0;while(1){F[b>>2]=e;o=e;d=(h<<2)+c|0;e=F[d+4>>2];j=e>>>1|0;e=o+(e&1?0-j|0:j)|0;if((e|0)<0){break f}F[b+4>>2]=e;d=F[d+8>>2];j=d>>>1|0;e=e+(d&1?0-j|0:j)|0;if((e|0)<0){break f}F[b+8>>2]=e;ob(F[a+44>>2]+96|0,b);i=i+1|0;f=i>>>0>>0;if((i|0)==(m|0)){break f}h=h+3|0;d=F[(h<<2)+c>>2];j=d>>>1|0;e=e+(d&1?0-j|0:j)|0;if((e|0)>=0){continue}break}}h=!f}if(c){ma(c)}aa=b+32|0;b=h&1;break d}qa();v()}if(b){break c}break a}if(n>>>0<=255){if(!m){break c}while(1){g:{F[g+16>>2]=0;F[g+8>>2]=0;F[g+12>>2]=0;c=F[a+32>>2];b=c;i=F[b+8>>2];h=F[b+12>>2];f=F[b+20>>2];e=F[b+16>>2];if((h|0)<=(f|0)&i>>>0<=e>>>0|(f|0)>(h|0)){break g}d=F[c>>2];k=G[d+e|0];b=f;j=e+1|0;b=j?b:b+1|0;F[c+16>>2]=j;F[c+20>>2]=b;F[g+8>>2]=k;if((b|0)>=(h|0)&j>>>0>=i>>>0|(b|0)>(h|0)){break g}k=G[d+j|0];b=f;j=e+2|0;b=j>>>0<2?b+1|0:b;F[c+16>>2]=j;F[c+20>>2]=b;F[g+12>>2]=k;if((b|0)>=(h|0)&j>>>0>=i>>>0|(b|0)>(h|0)){break g}b=G[d+j|0];h=e+3|0;f=h>>>0<3?f+1|0:f;F[c+16>>2]=h;F[c+20>>2]=f;F[g+16>>2]=b;ob(F[a+44>>2]+96|0,g+8|0);l=l+1|0;if((m|0)!=(l|0)){continue}break c}break}l=0;break a}if(n>>>0<=65535){if(!m){break c}while(1){h:{F[g+16>>2]=0;F[g+8>>2]=0;F[g+12>>2]=0;h=F[a+32>>2];c=F[h+12>>2];e=F[h+8>>2];b=F[h+20>>2];f=b;i=F[h+16>>2];d=i+2|0;b=d>>>0<2?b+1|0:b;if(d>>>0>e>>>0&(b|0)>=(c|0)|(b|0)>(c|0)){break h}j=F[h>>2];k=j+i|0;k=G[k|0]|G[k+1|0]<<8;F[h+16>>2]=d;F[h+20>>2]=b;F[g+8>>2]=k;b=f;k=i+4|0;b=k>>>0<4?b+1|0:b;if(k>>>0>e>>>0&(b|0)>=(c|0)|(b|0)>(c|0)){break h}d=d+j|0;d=G[d|0]|G[d+1|0]<<8;F[h+16>>2]=k;F[h+20>>2]=b;F[g+12>>2]=d;b=f;f=i+6|0;b=f>>>0<6?b+1|0:b;if(f>>>0>e>>>0&(b|0)>=(c|0)|(b|0)>(c|0)){break h}c=j+k|0;c=G[c|0]|G[c+1|0]<<8;F[h+16>>2]=f;F[h+20>>2]=b;F[g+16>>2]=c;ob(F[a+44>>2]+96|0,g+8|0);l=l+1|0;if((m|0)!=(l|0)){continue}break c}break}l=0;break a}i:{if(n>>>0>2097151){break i}b=H[a+36>>1];if(((b<<8|b>>>8)&65535)>>>0<514){break i}if(!m){break c}while(1){j:{F[g+16>>2]=0;F[g+8>>2]=0;F[g+12>>2]=0;if(!jb(1,g+4|0,F[a+32>>2])){break j}F[g+8>>2]=F[g+4>>2];if(!jb(1,g+4|0,F[a+32>>2])){break j}F[g+12>>2]=F[g+4>>2];if(!jb(1,g+4|0,F[a+32>>2])){break j}F[g+16>>2]=F[g+4>>2];ob(F[a+44>>2]+96|0,g+8|0);l=l+1|0;if((m|0)!=(l|0)){continue}break c}break}l=0;break a}if(!m){break c}while(1){F[g+16>>2]=0;F[g+8>>2]=0;F[g+12>>2]=0;h=F[a+32>>2];c=F[h+12>>2];e=F[h+8>>2];b=F[h+20>>2];f=b;i=F[h+16>>2];d=i+4|0;b=d>>>0<4?b+1|0:b;j=d;if(d>>>0>e>>>0&(b|0)>=(c|0)|(b|0)>(c|0)){break b}k=F[h>>2];d=k+i|0;d=G[d|0]|G[d+1|0]<<8|(G[d+2|0]<<16|G[d+3|0]<<24);F[h+16>>2]=j;F[h+20>>2]=b;F[g+8>>2]=d;b=f;d=i+8|0;b=d>>>0<8?b+1|0:b;o=d;if(d>>>0>e>>>0&(b|0)>=(c|0)|(b|0)>(c|0)){break b}d=j+k|0;d=G[d|0]|G[d+1|0]<<8|(G[d+2|0]<<16|G[d+3|0]<<24);F[h+16>>2]=o;F[h+20>>2]=b;F[g+12>>2]=d;b=f;f=i+12|0;b=f>>>0<12?b+1|0:b;if(f>>>0>e>>>0&(b|0)>=(c|0)|(b|0)>(c|0)){break b}c=k+o|0;c=G[c|0]|G[c+1|0]<<8|(G[c+2|0]<<16|G[c+3|0]<<24);F[h+16>>2]=f;F[h+20>>2]=b;F[g+16>>2]=c;ob(F[a+44>>2]+96|0,g+8|0);l=l+1|0;if((m|0)!=(l|0)){continue}break}}F[F[a+4>>2]+80>>2]=n;l=1;break a}l=0}aa=g+32|0;return l|0}function Jd(a,b,c){var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0;g=aa+-64|0;aa=g;F[g+56>>2]=0;F[g+48>>2]=0;F[g+52>>2]=0;F[g+40>>2]=0;F[g+44>>2]=0;F[g+32>>2]=0;F[g+36>>2]=0;F[g+24>>2]=0;F[g+28>>2]=0;F[g+16>>2]=0;F[g+20>>2]=0;F[g+8>>2]=0;F[g+12>>2]=0;f=g+8|0;a:{b:{if(!H[b+38>>1]){break b}if(!Wa(1,f+12|0,b)){break b}d=F[b+8>>2];e=F[b+16>>2];i=d-e|0;j=F[f+12>>2];d=F[b+12>>2]-(F[b+20>>2]+(d>>>0>>0)|0)|0;if(i>>>0>>6>>>0&(d|0)<=0|(d|0)<0){break b}e=F[f>>2];d=F[f+4>>2]-e>>2;c:{if(d>>>0>>0){ra(f,j-d|0);j=F[f+12>>2];break c}if(d>>>0<=j>>>0){break c}F[f+4>>2]=e+(j<<2)}h=1;if(!j){break a}k=F[b+16>>2];d=F[b+20>>2];r=F[f>>2];s=F[b+8>>2];p=F[b+12>>2];i=0;while(1){h=0;if((d|0)>=(p|0)&k>>>0>=s>>>0|(d|0)>(p|0)){break a}h=F[b>>2];n=G[h+k|0];e=k+1|0;d=e?d:d+1|0;k=e;F[b+16>>2]=e;F[b+20>>2]=d;e=n>>>2|0;l=0;d:{e:{f:{g:{t=n&3;switch(t|0){case 3:break g;case 0:break e;default:break f}}e=e+i|0;h=0;if(e>>>0>=j>>>0){break a}pa(r+(i<<2)|0,0,(n&252)+4|0);i=e;break d}while(1){if((d|0)>=(p|0)&k>>>0>=s>>>0|(d|0)>(p|0)){break b}j=G[k+h|0];k=k+1|0;d=k?d:d+1|0;F[b+16>>2]=k;F[b+20>>2]=d;e=j<<(l<<3|6)|e;l=l+1|0;if((t|0)!=(l|0)){continue}break}}F[r+(i<<2)>>2]=e}i=i+1|0;j=F[f+12>>2];if(i>>>0>>0){continue}break}d=f+16|0;p=F[f>>2];i=F[f+16>>2];e=F[f+20>>2]-i|0;h:{if(e>>>0<=4194303){ra(d,1048576-(e>>>2|0)|0);break h}if((e|0)==4194304){break h}F[f+20>>2]=i+4194304}e=f+28|0;i=F[e>>2];h=F[f+32>>2]-i>>3;i:{if(h>>>0>>0){cb(e,j-h|0);i=F[e>>2];break i}if(j>>>0>>0){F[f+32>>2]=(j<<3)+i}if(!j){break b}}k=F[d>>2];d=0;h=0;while(1){f=p+(d<<2)|0;l=F[f>>2];n=(d<<3)+i|0;e=h;F[n+4>>2]=e;F[n>>2]=l;f=F[f>>2];h=f+e|0;if(h>>>0>1048576){break b}j:{if(e>>>0>=h>>>0){break j}l=0;n=f&7;if(n){while(1){F[k+(e<<2)>>2]=d;e=e+1|0;l=l+1|0;if((n|0)!=(l|0)){continue}break}}if(f-1>>>0<=6){break j}while(1){f=k+(e<<2)|0;F[f>>2]=d;F[f+28>>2]=d;F[f+24>>2]=d;F[f+20>>2]=d;F[f+16>>2]=d;F[f+12>>2]=d;F[f+8>>2]=d;F[f+4>>2]=d;e=e+8|0;if((h|0)!=(e|0)){continue}break}}d=d+1|0;if((j|0)!=(d|0)){continue}break}m=(h|0)==1048576}h=m}k:{if(!h|(F[g+20>>2]?0:a)){break k}h=0;m=aa-16|0;aa=m;l:{if(!Va(1,m+8|0,b)){break l}d=F[b+8>>2];e=F[b+16>>2];f=d-e|0;j=F[m+12>>2];k=F[b+20>>2];d=F[b+12>>2]-(k+(d>>>0>>0)|0)|0;i=F[m+8>>2];if((j|0)==(d|0)&f>>>0>>0|d>>>0>>0){break l}d=j+k|0;f=e+i|0;d=f>>>0>>0?d+1|0:d;F[b+16>>2]=f;F[b+20>>2]=d;d=i;if((d|0)<=0){break l}b=e+F[b>>2]|0;F[g+48>>2]=b;e=d-1|0;i=e+b|0;f=G[i|0];m:{if(f>>>0<=63){F[g+52>>2]=e;b=G[i|0]&63;break m}n:{switch((f>>>6|0)-1|0){case 0:if(d>>>0<2){break l}d=d-2|0;F[g+52>>2]=d;b=b+d|0;b=G[b+1|0]<<8&16128|G[b|0];break m;case 1:if(d>>>0<3){break l}d=d-3|0;F[g+52>>2]=d;b=b+d|0;b=G[b+1|0]<<8|G[b+2|0]<<16&4128768|G[b|0];break m;default:break n}}d=d-4|0;F[g+52>>2]=d;b=b+d|0;b=G[b+2|0]<<16|G[b+3|0]<<24&1056964608|G[b+1|0]<<8|G[b|0]}F[g+56>>2]=b+4194304;h=b>>>0<1069547520}aa=m+16|0;if(!h){break k}if(!a){o=1;break k}b=F[g+56>>2];d=F[g+36>>2];e=F[g+48>>2];i=F[g+24>>2];while(1){o:{if(b>>>0>4194303){break o}o=F[g+52>>2];while(1){if((o|0)<=0){break o}o=o-1|0;F[g+52>>2]=o;b=G[e+o|0]|b<<8;F[g+56>>2]=b;if(b>>>0<4194304){continue}break}}h=b&1048575;m=F[i+(h<<2)>>2];f=d+(m<<3)|0;b=(L(F[f>>2],b>>>20|0)+h|0)-F[f+4>>2]|0;F[g+56>>2]=b;F[(q<<2)+c>>2]=m;o=1;q=q+1|0;if((q|0)!=(a|0)){continue}break}}a=F[g+36>>2];if(a){F[g+40>>2]=a;ma(a)}a=F[g+24>>2];if(a){F[g+28>>2]=a;ma(a)}a=F[g+8>>2];if(a){F[g+12>>2]=a;ma(a)}aa=g- -64|0;return o}function qe(a){a=a|0;var b=0,c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0;f=aa-16|0;aa=f;m=ca[F[F[a>>2]+24>>2]](a)|0;a:{if((m|0)<=0){break a}r=a+48|0;g=1;while(1){b:{c:{if(!F[(ca[F[F[a>>2]+28>>2]](a)|0)+40>>2]){break c}o=h<<2;b=F[o+F[a+36>>2]>>2];d=F[b+8>>2];e=eb(b);if(!e){break c}i=F[(ca[F[F[a>>2]+28>>2]](a)|0)+40>>2];F[f+12>>2]=F[d+56>>2];b=na(32);F[f>>2]=b;F[f+4>>2]=24;F[f+8>>2]=-2147483616;d=G[1196]|G[1197]<<8|(G[1198]<<16|G[1199]<<24);c=G[1192]|G[1193]<<8|(G[1194]<<16|G[1195]<<24);D[b+16|0]=c;D[b+17|0]=c>>>8;D[b+18|0]=c>>>16;D[b+19|0]=c>>>24;D[b+20|0]=d;D[b+21|0]=d>>>8;D[b+22|0]=d>>>16;D[b+23|0]=d>>>24;d=G[1188]|G[1189]<<8|(G[1190]<<16|G[1191]<<24);c=G[1184]|G[1185]<<8|(G[1186]<<16|G[1187]<<24);D[b+8|0]=c;D[b+9|0]=c>>>8;D[b+10|0]=c>>>16;D[b+11|0]=c>>>24;D[b+12|0]=d;D[b+13|0]=d>>>8;D[b+14|0]=d>>>16;D[b+15|0]=d>>>24;d=G[1180]|G[1181]<<8|(G[1182]<<16|G[1183]<<24);c=G[1176]|G[1177]<<8|(G[1178]<<16|G[1179]<<24);D[b|0]=c;D[b+1|0]=c>>>8;D[b+2|0]=c>>>16;D[b+3|0]=c>>>24;D[b+4|0]=d;D[b+5|0]=d>>>8;D[b+6|0]=d>>>16;D[b+7|0]=d>>>24;D[b+24|0]=0;d=i+16|0;c=F[d>>2];d:{e:{if(!c){break e}j=F[f+12>>2];b=d;while(1){k=(j|0)>F[c+16>>2];b=k?b:c;c=F[(k?c+4|0:c)>>2];if(c){continue}break}if((b|0)==(d|0)|(j|0)>2]){break e}c=F[b+24>>2];if(!c){break e}j=b+20|0;b=G[f+11|0];d=b<<24>>24<0;k=d?F[f>>2]:f;b=d?F[f+4>>2]:b;while(1){d=G[c+27|0];l=d<<24>>24<0;d=l?F[c+20>>2]:d;p=d>>>0>>0;f:{g:{h:{i:{j:{k:{n=p?d:b;if(n){l=l?F[c+16>>2]:c+16|0;q=ua(k,l,n);if(q){break k}if(b>>>0>=d>>>0){break j}break f}if(b>>>0>=d>>>0){break i}break f}if((q|0)<0){break f}}d=ua(l,k,n);if(d){break h}}if(p){break g}b=ec(j,f);break d}if((d|0)<0){break g}b=ec(j,f);break d}c=c+4|0}c=F[c>>2];if(c){continue}break}}b=ec(i,f)}if(D[f+11|0]<0){ma(F[f>>2])}if(!b){break c}c=F[F[o+F[a+36>>2]>>2]+8>>2];if(!F[c+64>>2]){b=na(32);F[b+16>>2]=0;F[b+20>>2]=0;F[b+8>>2]=0;F[b>>2]=0;F[b+4>>2]=0;F[b+24>>2]=0;F[b+28>>2]=0;d=F[c+64>>2];F[c+64>>2]=b;if(d){b=F[d>>2];if(b){F[d+4>>2]=b;ma(b)}ma(d);b=F[c+64>>2]}F[c>>2]=b;d=F[b+20>>2];F[c+8>>2]=F[b+16>>2];F[c+12>>2]=d;d=F[b+24>>2];b=F[b+28>>2];F[c+48>>2]=0;F[c+52>>2]=0;F[c+40>>2]=0;F[c+44>>2]=0;F[c+16>>2]=d;F[c+20>>2]=b}l:{D[c+24|0]=G[e+24|0];F[c+28>>2]=F[e+28>>2];D[c+32|0]=G[e+32|0];b=F[e+44>>2];F[c+40>>2]=F[e+40>>2];F[c+44>>2]=b;b=F[e+52>>2];F[c+48>>2]=F[e+48>>2];F[c+52>>2]=b;F[c+56>>2]=F[e+56>>2];b=F[e+12>>2];F[c+8>>2]=F[e+8>>2];F[c+12>>2]=b;b=F[e+20>>2];F[c+16>>2]=F[e+16>>2];F[c+20>>2]=b;F[c+60>>2]=F[e+60>>2];d=F[e>>2];m:{if(!d){F[c>>2]=0;b=1;break m}g=F[c>>2];b=0;if(!g){break m}b=F[d>>2];ld(g,b,F[d+4>>2]-b|0,0);b=1}if(!b){break l}D[c+84|0]=G[e+84|0];F[c+80>>2]=F[e+80>>2];if((c|0)!=(e|0)){ib(c+68|0,F[e+68>>2],F[e+72>>2])}n:{e=F[e+88>>2];o:{if(e){d=na(40);b=F[e>>2];F[d+16>>2]=0;F[d+8>>2]=0;F[d+12>>2]=0;F[d>>2]=b;b=F[e+12>>2];g=F[e+8>>2];if((b|0)!=(g|0)){g=b-g|0;if((g|0)<0){break n}b=na(g);F[d+8>>2]=b;F[d+12>>2]=b;F[d+16>>2]=b+g;i=F[e+8>>2];g=F[e+12>>2]-i|0;if((g|0)>0){b=oa(b,i,g)+g|0}F[d+12>>2]=b}b=F[e+36>>2];F[d+32>>2]=F[e+32>>2];F[d+36>>2]=b;b=F[e+28>>2];F[d+24>>2]=F[e+24>>2];F[d+28>>2]=b;b=F[c+88>>2];F[c+88>>2]=d;if(b){break o}break l}b=F[c+88>>2];F[c+88>>2]=0;if(!b){break l}}d=F[b+8>>2];if(d){F[b+12>>2]=d;ma(d)}ma(b);break l}qa();v()}break b}b=F[F[a+36>>2]+(h<<2)>>2];if(!(ca[F[F[b>>2]+24>>2]](b,r)|0)){break a}}h=h+1|0;g=(m|0)>(h|0);if((h|0)!=(m|0)){continue}break}}aa=f+16|0;return(g^-1)&1}function hh(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=M(0),f=0,g=0,h=0,i=0,j=0,k=0,l=M(0),m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0;if(F[c>>2]==F[c+4>>2]){h=F[d+80>>2];u=aa-16|0;aa=u;q=F[a+4>>2];i=G[b+24|0];j=F[d+48>>2];d=F[F[d>>2]>>2];c=u+8|0;F[c>>2]=1065353216;J[c>>2]=M(-1<>2];s=na(i<<2);a:{if(!h|!i){break a}t=d+j|0;l=J[c>>2];k=F[a+8>>2];w=F[b>>2];c=F[b+48>>2];n=F[b+44>>2];v=F[b+40>>2];if(!G[b+84|0]){r=F[b+68>>2];q=i&254;j=i&1;a=0;while(1){d=F[w>>2];b=gi(v,n,F[r+(o<<2)>>2],0)+c|0;p=oa(s,d+b|0,v);b=0;m=0;if((i|0)!=1){while(1){d=t+(a<<2)|0;g=b<<2;e=M(R(M(M(l*M(J[g+p>>2]-J[k+g>>2]))+M(.5))));b:{if(M(N(e))>2]=f;f=g|4;e=M(R(M(M(l*M(J[f+p>>2]-J[f+k>>2]))+M(.5))));c:{if(M(N(e))>2]=f;b=b+2|0;a=a+2|0;m=m+2|0;if((q|0)!=(m|0)){continue}break}}if(j){d=t+(a<<2)|0;b=b<<2;e=M(R(M(M(l*M(J[b+p>>2]-J[b+k>>2]))+M(.5))));d:{if(M(N(e))>2]=b;a=a+1|0}o=o+1|0;if((h|0)!=(o|0)){continue}break}break a}r=i&254;q=i&1;a=0;while(1){d=F[w>>2];b=gi(v,n,p,f)+c|0;o=oa(s,d+b|0,v);b=0;m=0;if((i|0)!=1){while(1){d=t+(a<<2)|0;g=b<<2;e=M(R(M(M(l*M(J[g+o>>2]-J[k+g>>2]))+M(.5))));e:{if(M(N(e))>2]=j;j=g|4;e=M(R(M(M(l*M(J[j+o>>2]-J[k+j>>2]))+M(.5))));f:{if(M(N(e))>2]=g;b=b+2|0;a=a+2|0;m=m+2|0;if((r|0)!=(m|0)){continue}break}}if(q){d=t+(a<<2)|0;b=b<<2;e=M(R(M(M(l*M(J[b+o>>2]-J[b+k>>2]))+M(.5))));g:{if(M(N(e))>2]=b;a=a+1|0}b=p+1|0;f=b?f:f+1|0;p=b;if((h|0)!=(b|0)|f){continue}break}}ma(s);aa=u+16|0;return 1}u=aa-16|0;aa=u;f=F[a+4>>2];n=G[b+24|0];j=F[d+48>>2];h=F[F[d>>2]>>2];d=u+8|0;F[d>>2]=1065353216;J[d>>2]=M(-1<>2];t=na(n<<2);f=F[c+4>>2];s=F[c>>2];h:{if(!n|(f|0)==(s|0)){break h}m=j+h|0;c=f-s>>2;w=c>>>0<=1?1:c;l=J[d>>2];i=F[a+8>>2];x=F[b>>2];d=F[b+48>>2];v=F[b+44>>2];p=F[b+40>>2];if(G[b+84|0]){q=n&254;j=n&1;a=0;c=0;while(1){f=F[x>>2];b=gi(p,v,F[s+(c<<2)>>2],0)+d|0;g=oa(t,f+b|0,p);b=0;k=0;if((n|0)!=1){while(1){f=m+(a<<2)|0;r=b<<2;e=M(R(M(M(l*M(J[r+g>>2]-J[i+r>>2]))+M(.5))));i:{if(M(N(e))>2]=h;h=r|4;e=M(R(M(M(l*M(J[h+g>>2]-J[i+h>>2]))+M(.5))));j:{if(M(N(e))>2]=h;b=b+2|0;a=a+2|0;k=k+2|0;if((q|0)!=(k|0)){continue}break}}if(j){f=m+(a<<2)|0;b=b<<2;e=M(R(M(M(l*M(J[b+g>>2]-J[b+i>>2]))+M(.5))));k:{if(M(N(e))>2]=b;a=a+1|0}c=c+1|0;if((w|0)!=(c|0)){continue}break}break h}r=F[b+68>>2];q=n&254;j=n&1;a=0;c=0;while(1){f=F[x>>2];b=gi(p,v,F[r+(F[s+(c<<2)>>2]<<2)>>2],0)+d|0;o=oa(t,f+b|0,p);b=0;k=0;if((n|0)!=1){while(1){f=m+(a<<2)|0;g=b<<2;e=M(R(M(M(l*M(J[g+o>>2]-J[i+g>>2]))+M(.5))));l:{if(M(N(e))>2]=h;h=g|4;e=M(R(M(M(l*M(J[h+o>>2]-J[i+h>>2]))+M(.5))));m:{if(M(N(e))>2]=g;b=b+2|0;a=a+2|0;k=k+2|0;if((q|0)!=(k|0)){continue}break}}if(j){f=m+(a<<2)|0;b=b<<2;e=M(R(M(M(l*M(J[b+o>>2]-J[b+i>>2]))+M(.5))));n:{if(M(N(e))>2]=b;a=a+1|0}c=c+1|0;if((w|0)!=(c|0)){continue}break}}ma(t);aa=u+16|0;return 1} +function Ad(a,b){var c=0,d=0,e=0,f=0,g=0,h=0;d=F[a+4>>2];c=F[a>>2];e=(d-c|0)/144|0;if(e>>>0>>0){c=a;e=b-e|0;f=F[a+8>>2];d=F[a+4>>2];a:{if(e>>>0<=(f-d|0)/144>>>0){b:{if(!e){break b}a=d;f=e&7;if(f){b=0;while(1){ya(a);a=a+144|0;b=b+1|0;if((f|0)!=(b|0)){continue}break}}d=L(e,144)+d|0;if((e-1&268435455)>>>0<7){break b}while(1){ya(a);ya(a+144|0);ya(a+288|0);ya(a+432|0);ya(a+576|0);ya(a+720|0);ya(a+864|0);ya(a+1008|0);a=a+1152|0;if((d|0)!=(a|0)){continue}break}}F[c+4>>2]=d;break a}c:{d:{e:{b=F[c>>2];g=(d-b|0)/144|0;a=g+e|0;if(a>>>0<29826162){d=0;b=(f-b|0)/144|0;f=b<<1;f=b>>>0>=14913080?29826161:a>>>0>>0?f:a;if(f){if(f>>>0>=29826162){break e}h=na(L(f,144))}b=L(g,144)+h|0;a=b;g=e&7;if(g){a=b;while(1){ya(a);a=a+144|0;d=d+1|0;if((g|0)!=(d|0)){continue}break}}g=L(e,144)+b|0;if((e-1&268435455)>>>0>=7){while(1){ya(a);ya(a+144|0);ya(a+288|0);ya(a+432|0);ya(a+576|0);ya(a+720|0);ya(a+864|0);ya(a+1008|0);a=a+1152|0;if((g|0)!=(a|0)){continue}break}}e=L(f,144)+h|0;a=F[c+4>>2];d=F[c>>2];if((a|0)==(d|0)){break d}while(1){b=b-144|0;a=a-144|0;F[b>>2]=F[a>>2];F[b+4>>2]=F[a+4>>2];F[b+8>>2]=F[a+8>>2];F[b+12>>2]=F[a+12>>2];F[a+12>>2]=0;F[a+4>>2]=0;F[a+8>>2]=0;F[b+16>>2]=F[a+16>>2];F[b+20>>2]=F[a+20>>2];F[b+24>>2]=F[a+24>>2];F[a+24>>2]=0;F[a+16>>2]=0;F[a+20>>2]=0;f=G[a+28|0];F[b+40>>2]=0;F[b+32>>2]=0;F[b+36>>2]=0;D[b+28|0]=f;F[b+32>>2]=F[a+32>>2];F[b+36>>2]=F[a+36>>2];F[b+40>>2]=F[a+40>>2];F[a+40>>2]=0;F[a+32>>2]=0;F[a+36>>2]=0;F[b+52>>2]=0;F[b+44>>2]=0;F[b+48>>2]=0;F[b+44>>2]=F[a+44>>2];F[b+48>>2]=F[a+48>>2];F[b+52>>2]=F[a+52>>2];F[a+52>>2]=0;F[a+44>>2]=0;F[a+48>>2]=0;f=b- -64|0;F[f>>2]=0;F[b+56>>2]=0;F[b+60>>2]=0;F[b+56>>2]=F[a+56>>2];F[b+60>>2]=F[a+60>>2];h=f;f=a- -64|0;F[h>>2]=F[f>>2];F[f>>2]=0;F[a+56>>2]=0;F[a+60>>2]=0;F[b+68>>2]=F[a+68>>2];f=F[a+72>>2];F[b+84>>2]=0;F[b+76>>2]=0;F[b+80>>2]=0;F[b+72>>2]=f;F[b+76>>2]=F[a+76>>2];F[b+80>>2]=F[a+80>>2];F[b+84>>2]=F[a+84>>2];F[a+84>>2]=0;F[a+76>>2]=0;F[a+80>>2]=0;F[b+96>>2]=0;F[b+88>>2]=0;F[b+92>>2]=0;F[b+88>>2]=F[a+88>>2];F[b+92>>2]=F[a+92>>2];F[b+96>>2]=F[a+96>>2];F[a+96>>2]=0;F[a+88>>2]=0;F[a+92>>2]=0;f=G[a+100|0];F[b+112>>2]=0;F[b+104>>2]=0;F[b+108>>2]=0;D[b+100|0]=f;F[b+104>>2]=F[a+104>>2];F[b+108>>2]=F[a+108>>2];F[b+112>>2]=F[a+112>>2];F[a+112>>2]=0;F[a+104>>2]=0;F[a+108>>2]=0;F[b+124>>2]=0;F[b+116>>2]=0;F[b+120>>2]=0;F[b+116>>2]=F[a+116>>2];F[b+120>>2]=F[a+120>>2];F[b+124>>2]=F[a+124>>2];F[a+124>>2]=0;F[a+116>>2]=0;F[a+120>>2]=0;f=F[a+128>>2];F[b+140>>2]=0;F[b+132>>2]=0;F[b+136>>2]=0;F[b+128>>2]=f;F[b+132>>2]=F[a+132>>2];F[b+136>>2]=F[a+136>>2];F[b+140>>2]=F[a+140>>2];F[a+140>>2]=0;F[a+132>>2]=0;F[a+136>>2]=0;if((a|0)!=(d|0)){continue}break}F[c+8>>2]=e;a=F[c+4>>2];F[c+4>>2]=g;d=F[c>>2];F[c>>2]=b;if((a|0)==(d|0)){break c}while(1){b=a-144|0;c=F[b+132>>2];if(c){F[a-8>>2]=c;ma(c)}c=F[a-28>>2];if(c){F[a-24>>2]=c;ma(c)}c=F[a-40>>2];if(c){F[a-36>>2]=c;ma(c)}Hb(a-140|0);a=b;if((d|0)!=(a|0)){continue}break}break c}qa();v()}sa();v()}F[c+8>>2]=e;F[c+4>>2]=g;F[c>>2]=b}if(d){ma(d)}}return}if(b>>>0>>0){c=c+L(b,144)|0;if((c|0)!=(d|0)){while(1){b=d-144|0;e=F[b+132>>2];if(e){F[d-8>>2]=e;ma(e)}e=F[d-28>>2];if(e){F[d-24>>2]=e;ma(e)}e=F[d-40>>2];if(e){F[d-36>>2]=e;ma(e)}Hb(d-140|0);d=b;if((b|0)!=(c|0)){continue}break}}F[a+4>>2]=c}}function Lb(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,w=0,x=0,y=0;f=aa-96|0;aa=f;d=F[a+16>>2];D[f+92|0]=1;F[f+88>>2]=b;F[f+84>>2]=b;F[f+80>>2]=d;a:{if((b|0)==-1){break a}l=F[a+20>>2];e=F[l>>2];d=F[F[d>>2]+(b<<2)>>2];if(d>>>0>=F[l+4>>2]-e>>2>>>0){break a}d=F[F[a+8>>2]+(F[e+(d<<2)>>2]<<2)>>2];e=F[a+4>>2];if(!G[e+84|0]){d=F[F[e+68>>2]+(d<<2)>>2]}F[f+72>>2]=0;F[f+76>>2]=0;l=f- -64|0;F[l>>2]=0;F[l+4>>2]=0;F[f+56>>2]=0;F[f+60>>2]=0;Ia(e,d,D[e+24|0],f+56|0);d=b+1|0;l=(d>>>0)%3|0?d:b-2|0;i=((b>>>0)%3|0?-1:2)+b|0;b:{c:{while(1){e=l;d=i;d:{if(!F[a+28>>2]){break d}d=b+1|0;e=(d>>>0)%3|0?d:b-2|0;d=b-1|0;if((b>>>0)%3|0){break d}d=b+2|0}if((e|0)==-1){break b}h=F[a+20>>2];b=F[h>>2];e=F[F[F[a+16>>2]>>2]+(e<<2)>>2];if(e>>>0>=F[h+4>>2]-b>>2>>>0){break b}e=F[F[a+8>>2]+(F[(e<<2)+b>>2]<<2)>>2];b=F[a+4>>2];if(!G[b+84|0]){e=F[F[b+68>>2]+(e<<2)>>2]}F[f+48>>2]=0;F[f+52>>2]=0;F[f+40>>2]=0;F[f+44>>2]=0;F[f+32>>2]=0;F[f+36>>2]=0;Ia(b,e,D[b+24|0],f+32|0);if((d|0)==-1){break c}e=F[a+20>>2];b=F[e>>2];d=F[F[F[a+16>>2]>>2]+(d<<2)>>2];if(d>>>0>=F[e+4>>2]-b>>2>>>0){break c}e=F[F[a+8>>2]+(F[b+(d<<2)>>2]<<2)>>2];b=F[a+4>>2];if(!G[b+84|0]){e=F[F[b+68>>2]+(e<<2)>>2]}F[f+24>>2]=0;F[f+28>>2]=0;F[f+16>>2]=0;F[f+20>>2]=0;F[f+8>>2]=0;F[f+12>>2]=0;Ia(b,e,D[b+24|0],f+8|0);d=F[f+8>>2];b=F[f+56>>2];e=d-b|0;h=F[f+60>>2];j=F[f+12>>2]-(h+(b>>>0>d>>>0)|0)|0;p=F[f+40>>2];d=F[f+64>>2];s=p-d|0;t=F[f+68>>2];p=F[f+44>>2]-(t+(d>>>0>p>>>0)|0)|0;u=gi(e,j,s,p);w=o-u|0;o=g-(ba+(o>>>0>>0)|0)|0;k=w;g=F[f+16>>2];u=g-d|0;t=F[f+20>>2]-((d>>>0>g>>>0)+t|0)|0;g=F[f+32>>2];w=g-b|0;h=F[f+36>>2]-((b>>>0>g>>>0)+h|0)|0;d=gi(u,t,w,h);b=k+d|0;g=ba+o|0;g=b>>>0>>0?g+1|0:g;o=b;y=m;k=e;d=j;b=F[f+48>>2];m=F[f+72>>2];e=b-m|0;j=F[f+76>>2];x=F[f+52>>2]-(j+(b>>>0>>0)|0)|0;k=gi(k,d,e,x);d=y+k|0;b=ba+n|0;b=d>>>0>>0?b+1|0:b;n=F[f+24>>2];k=n-m|0;j=F[f+28>>2]-((m>>>0>n>>>0)+j|0)|0;n=gi(k,j,w,h);m=d-n|0;n=b-(ba+(d>>>0>>0)|0)|0;b=gi(u,t,e,x);d=q-b|0;b=r-(ba+(b>>>0>q>>>0)|0)|0;r=gi(k,j,s,p);q=r+d|0;b=ba+b|0;b=q>>>0>>0?b+1|0:b;r=b;lc(f+80|0);b=F[f+88>>2];if((b|0)!=-1){continue}break}b=r>>31;d=b^q;j=d-b|0;h=(b^r)-((b>>>0>d>>>0)+b|0)|0;p=-1;d=2147483647;b=n>>31;l=b^m;e=(b^n)-((b>>>0>l>>>0)+b|0)|0;b=l-b|0;s=b^-1;i=e^2147483647;k=g;e:{f:{if(!F[a+28>>2]){if((i|0)==(h|0)&j>>>0>s>>>0|i>>>0>>0){break e}i=g;a=b;d=b+j|0;b=e+h|0;b=a>>>0>d>>>0?b+1|0:b;a=g>>31;h=a^o;j=h-a|0;g=d+j|0;e=(a^i)-((a>>>0>h>>>0)+a|0)|0;a=g;g=e^2147483647;g=(g|0)==(b|0)&(j^-1)>>>0>>0|b>>>0>g>>>0;a=g?-1:a;if(!(g&0)&(a|0)<=536870912|(a|0)<536870912){break e}b=0;a=a>>>29|0;break f}g:{if((i|0)==(h|0)&j>>>0>s>>>0|i>>>0>>0){break g}a=b;i=b+j|0;b=e+h|0;b=a>>>0>i>>>0?b+1|0:b;a=i;h=g;e=g>>31;g=e;i=e^o;e=(e^h)-(e+(e>>>0>i>>>0)|0)|0;g=i-g|0;i=e^2147483647;if((i|0)==(b|0)&(g^-1)>>>0>>0|b>>>0>i>>>0){break g}b=b+e|0;a=a+g|0;b=a>>>0>>0?b+1|0:b;p=a;d=b;if(!b&a>>>0<536870913){break e}}b=d>>>29|0;a=(d&536870911)<<3|p>>>29}o=hi(o,k,a,b);m=hi(m,n,a,b);q=hi(q,r,a,b)}F[c+8>>2]=o;F[c+4>>2]=m;F[c>>2]=q;aa=f+96|0;return}va();v()}va();v()}va();v()}function Mc(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0;a:{if((b|0)<0){break a}c=F[a+12>>2];d=F[a+8>>2];if(c-d>>2>>>0<=b>>>0){break a}e=d+(b<<2)|0;d=F[e>>2];i=F[d+60>>2];g=F[d+56>>2];d=e+4|0;b:{if((d|0)!=(c|0)){while(1){h=F[d>>2];F[d>>2]=0;f=F[e>>2];F[e>>2]=h;if(f){Aa(f)}e=e+4|0;d=d+4|0;if((d|0)!=(c|0)){continue}break}c=F[a+12>>2];if((e|0)==(c|0)){break b}}while(1){c=c-4|0;d=F[c>>2];F[c>>2]=0;if(d){Aa(d)}if((c|0)!=(e|0)){continue}break}}F[a+12>>2]=e;f=F[a+4>>2];c:{if(!f|(i|0)<0){break c}c=F[f+24>>2];d=F[f+28>>2];if((c|0)==(d|0)){break c}while(1){if((i|0)==F[F[c>>2]+24>>2]){e=c+4|0;i=F[f+28>>2];d:{if((e|0)!=(i|0)){while(1){h=F[e>>2];F[e>>2]=0;d=F[c>>2];F[c>>2]=h;if(d){Fa(d+12|0,F[d+16>>2]);Ea(d,F[d+4>>2]);ma(d)}c=c+4|0;e=e+4|0;if((i|0)!=(e|0)){continue}break}e=F[f+28>>2];if((e|0)==(c|0)){break d}}while(1){e=e-4|0;d=F[e>>2];F[e>>2]=0;if(d){Fa(d+12|0,F[d+16>>2]);Ea(d,F[d+4>>2]);ma(d)}if((c|0)!=(e|0)){continue}break}}F[f+28>>2]=c;break c}c=c+4|0;if((d|0)!=(c|0)){continue}break}}e:{if((g|0)>4){break e}f:{e=L(g,12)+a|0;c=F[e+20>>2];d=F[e+24>>2];if((c|0)==(d|0)){break f}while(1){if(F[c>>2]==(b|0)){break f}c=c+4|0;if((d|0)!=(c|0)){continue}break}break e}if((c|0)==(d|0)){break e}f=c+4|0;i=d-f|0;if((d|0)!=(f|0)){Sa(c,f,i)}F[e+24>>2]=c+i}c=F[a+24>>2];e=F[a+20>>2];g:{if((c|0)==(e|0)){break g}d=c-e|0;c=d>>2;f=c>>>0<=1?1:c;i=f&1;c=0;if(d>>>0>=8){f=f&-2;d=0;while(1){g=c<<2;h=g+e|0;j=F[h>>2];if((j|0)>(b|0)){F[h>>2]=j-1}g=e+(g|4)|0;h=F[g>>2];if((h|0)>(b|0)){F[g>>2]=h-1}c=c+2|0;d=d+2|0;if((f|0)!=(d|0)){continue}break}}if(!i){break g}c=e+(c<<2)|0;d=F[c>>2];if((d|0)<=(b|0)){break g}F[c>>2]=d-1}c=F[a+36>>2];e=F[a+32>>2];h:{if((c|0)==(e|0)){break h}d=c-e|0;c=d>>2;f=c>>>0<=1?1:c;i=f&1;c=0;if(d>>>0>=8){f=f&-2;d=0;while(1){g=c<<2;h=g+e|0;j=F[h>>2];if((j|0)>(b|0)){F[h>>2]=j-1}g=e+(g|4)|0;h=F[g>>2];if((h|0)>(b|0)){F[g>>2]=h-1}c=c+2|0;d=d+2|0;if((f|0)!=(d|0)){continue}break}}if(!i){break h}c=e+(c<<2)|0;d=F[c>>2];if((d|0)<=(b|0)){break h}F[c>>2]=d-1}c=F[a+48>>2];e=F[a+44>>2];i:{if((c|0)==(e|0)){break i}d=c-e|0;c=d>>2;f=c>>>0<=1?1:c;i=f&1;c=0;if(d>>>0>=8){f=f&-2;d=0;while(1){g=c<<2;h=g+e|0;j=F[h>>2];if((j|0)>(b|0)){F[h>>2]=j-1}g=e+(g|4)|0;h=F[g>>2];if((h|0)>(b|0)){F[g>>2]=h-1}c=c+2|0;d=d+2|0;if((f|0)!=(d|0)){continue}break}}if(!i){break i}c=e+(c<<2)|0;d=F[c>>2];if((d|0)<=(b|0)){break i}F[c>>2]=d-1}c=F[a+60>>2];e=F[a+56>>2];j:{if((c|0)==(e|0)){break j}d=c-e|0;c=d>>2;f=c>>>0<=1?1:c;i=f&1;c=0;if(d>>>0>=8){f=f&-2;d=0;while(1){g=c<<2;h=g+e|0;j=F[h>>2];if((j|0)>(b|0)){F[h>>2]=j-1}g=e+(g|4)|0;h=F[g>>2];if((h|0)>(b|0)){F[g>>2]=h-1}c=c+2|0;d=d+2|0;if((f|0)!=(d|0)){continue}break}}if(!i){break j}c=e+(c<<2)|0;d=F[c>>2];if((d|0)<=(b|0)){break j}F[c>>2]=d-1}c=F[a+72>>2];a=F[a+68>>2];if((c|0)==(a|0)){break a}d=c-a|0;c=d>>2;e=c>>>0<=1?1:c;f=e&1;c=0;if(d>>>0>=8){e=e&-2;d=0;while(1){i=c<<2;g=i+a|0;h=F[g>>2];if((h|0)>(b|0)){F[g>>2]=h-1}i=a+(i|4)|0;g=F[i>>2];if((g|0)>(b|0)){F[i>>2]=g-1}c=c+2|0;d=d+2|0;if((e|0)!=(d|0)){continue}break}}if(!f){break a}d=b;a=a+(c<<2)|0;b=F[a>>2];if((d|0)>=(b|0)){break a}F[a>>2]=b-1}}function ma(a){a=a|0;var b=0,c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0;a:{if(!a){break a}d=a-8|0;b=F[a-4>>2];a=b&-8;f=d+a|0;b:{if(b&1){break b}if(!(b&3)){break a}b=F[d>>2];d=d-b|0;if(d>>>0>>0<=255){e=F[d+8>>2];b=b>>>3|0;c=F[d+12>>2];if((c|0)==(e|0)){i=11764,j=F[2941]&ki(b),F[i>>2]=j;break b}F[e+12>>2]=c;F[c+8>>2]=e;break b}h=F[d+24>>2];b=F[d+12>>2];c:{if((d|0)!=(b|0)){c=F[d+8>>2];F[c+12>>2]=b;F[b+8>>2]=c;break c}d:{e=d+20|0;c=F[e>>2];if(c){break d}e=d+16|0;c=F[e>>2];if(c){break d}b=0;break c}while(1){g=e;b=c;e=b+20|0;c=F[e>>2];if(c){continue}e=b+16|0;c=F[b+16>>2];if(c){continue}break}F[g>>2]=0}if(!h){break b}e=F[d+28>>2];c=(e<<2)+12068|0;e:{if(F[c>>2]==(d|0)){F[c>>2]=b;if(b){break e}i=11768,j=F[2942]&ki(e),F[i>>2]=j;break b}F[h+(F[h+16>>2]==(d|0)?16:20)>>2]=b;if(!b){break b}}F[b+24>>2]=h;c=F[d+16>>2];if(c){F[b+16>>2]=c;F[c+24>>2]=b}c=F[d+20>>2];if(!c){break b}F[b+20>>2]=c;F[c+24>>2]=b;break b}b=F[f+4>>2];if((b&3)!=3){break b}F[2943]=a;F[f+4>>2]=b&-2;F[d+4>>2]=a|1;F[a+d>>2]=a;return}if(d>>>0>=f>>>0){break a}b=F[f+4>>2];if(!(b&1)){break a}f:{if(!(b&2)){if(F[2947]==(f|0)){F[2947]=d;a=F[2944]+a|0;F[2944]=a;F[d+4>>2]=a|1;if(F[2946]!=(d|0)){break a}F[2943]=0;F[2946]=0;return}if(F[2946]==(f|0)){F[2946]=d;a=F[2943]+a|0;F[2943]=a;F[d+4>>2]=a|1;F[a+d>>2]=a;return}a=(b&-8)+a|0;g:{if(b>>>0<=255){e=F[f+8>>2];b=b>>>3|0;c=F[f+12>>2];if((c|0)==(e|0)){i=11764,j=F[2941]&ki(b),F[i>>2]=j;break g}F[e+12>>2]=c;F[c+8>>2]=e;break g}h=F[f+24>>2];b=F[f+12>>2];h:{if((f|0)!=(b|0)){c=F[f+8>>2];F[c+12>>2]=b;F[b+8>>2]=c;break h}i:{e=f+20|0;c=F[e>>2];if(c){break i}e=f+16|0;c=F[e>>2];if(c){break i}b=0;break h}while(1){g=e;b=c;e=b+20|0;c=F[e>>2];if(c){continue}e=b+16|0;c=F[b+16>>2];if(c){continue}break}F[g>>2]=0}if(!h){break g}e=F[f+28>>2];c=(e<<2)+12068|0;j:{if(F[c>>2]==(f|0)){F[c>>2]=b;if(b){break j}i=11768,j=F[2942]&ki(e),F[i>>2]=j;break g}F[h+(F[h+16>>2]==(f|0)?16:20)>>2]=b;if(!b){break g}}F[b+24>>2]=h;c=F[f+16>>2];if(c){F[b+16>>2]=c;F[c+24>>2]=b}c=F[f+20>>2];if(!c){break g}F[b+20>>2]=c;F[c+24>>2]=b}F[d+4>>2]=a|1;F[a+d>>2]=a;if(F[2946]!=(d|0)){break f}F[2943]=a;return}F[f+4>>2]=b&-2;F[d+4>>2]=a|1;F[a+d>>2]=a}if(a>>>0<=255){b=(a&-8)+11804|0;c=F[2941];a=1<<(a>>>3);k:{if(!(c&a)){F[2941]=a|c;a=b;break k}a=F[b+8>>2]}F[b+8>>2]=d;F[a+12>>2]=d;F[d+12>>2]=b;F[d+8>>2]=a;return}e=31;if(a>>>0<=16777215){b=a>>>8|0;g=b+1048320>>>16&8;b=b<>>16&4;b=b<>>16&2;b=(b<>>15|0)-(c|(e|g))|0;e=(b<<1|a>>>b+21&1)+28|0}F[d+28>>2]=e;F[d+16>>2]=0;F[d+20>>2]=0;g=(e<<2)+12068|0;l:{m:{c=F[2942];b=1<>2]=d;F[d+24>>2]=g;break n}e=a<<((e|0)!=31?25-(e>>>1|0)|0:0);b=F[g>>2];while(1){c=b;if((F[b+4>>2]&-8)==(a|0)){break m}b=e>>>29|0;e=e<<1;g=c+(b&4)|0;b=F[g+16>>2];if(b){continue}break}F[g+16>>2]=d;F[d+24>>2]=c}F[d+12>>2]=d;F[d+8>>2]=d;break l}a=F[c+8>>2];F[a+12>>2]=d;F[c+8>>2]=d;F[d+24>>2]=0;F[d+12>>2]=c;F[d+8>>2]=a}a=F[2949]-1|0;F[2949]=a?a:-1}}function Gb(a,b,c,d){var e=0,f=0,g=0,h=0,i=0,j=0,k=M(0),l=0,m=0,n=M(0);j=F[c>>2];a:{b:{f=F[b+4>>2];if(!f){break b}g=ji(f);c:{if(g>>>0>=2){e=j;if(e>>>0>=f>>>0){e=(j>>>0)%(f>>>0)|0}c=F[F[b>>2]+(e<<2)>>2];if(!c){break b}if(g>>>0<=1){break c}while(1){c=F[c>>2];if(!c){break b}g=F[c+4>>2];if((g|0)!=(j|0)){if(f>>>0<=g>>>0){g=(g>>>0)%(f>>>0)|0}if((e|0)!=(g|0)){break b}}if(F[c+8>>2]!=(j|0)){continue}break}b=0;break a}e=f-1&j;c=F[F[b>>2]+(e<<2)>>2];if(!c){break b}}g=f-1|0;while(1){c=F[c>>2];if(!c){break b}h=F[c+4>>2];if((h|0)!=(j|0)&(g&h)!=(e|0)){break b}if(F[c+8>>2]!=(j|0)){continue}break}b=0;break a}c=na(16);d=F[F[d>>2]>>2];F[c+12>>2]=0;F[c+8>>2]=d;F[c+4>>2]=j;F[c>>2]=0;n=M(F[b+12>>2]+1>>>0);k=J[b+16>>2];d:{if(n>M(k*M(f>>>0))?0:f){break d}e=2;g=(f-1&f)!=0|f>>>0<3|f<<1;k=M(S(M(n/k)));e:{if(k=M(0)){d=~~k>>>0;break e}d=0}d=d>>>0>>0?g:d;f:{if((d|0)==1){break f}if(!(d&d-1)){e=d;break f}e=Lc(d);f=F[b+4>>2]}g:{if(e>>>0<=f>>>0){if(e>>>0>=f>>>0){break g}g=f>>>0<3;k=M(S(M(M(I[b+12>>2])/J[b+16>>2])));h:{if(k=M(0)){d=~~k>>>0;break h}d=0}i:{j:{if(g){break j}if(ji(f)>>>0>1){break j}d=d>>>0<2?d:1<<32-O(d-1|0);break i}d=Lc(d)}e=d>>>0>>0?e:d;if(e>>>0>=f>>>0){break g}}f=0;h=e;k:{l:{m:{n:{if(e){if(h>>>0>=1073741824){break n}e=na(h<<2);d=F[b>>2];F[b>>2]=e;if(d){ma(d)}F[b+4>>2]=h;e=0;if(h>>>0>=4){g=h&-4;while(1){d=e<<2;F[d+F[b>>2]>>2]=0;F[F[b>>2]+(d|4)>>2]=0;F[F[b>>2]+(d|8)>>2]=0;F[F[b>>2]+(d|12)>>2]=0;e=e+4|0;f=f+4|0;if((g|0)!=(f|0)){continue}break}}d=h&3;if(d){while(1){F[F[b>>2]+(e<<2)>>2]=0;e=e+1|0;i=i+1|0;if((d|0)!=(i|0)){continue}break}}f=F[b+8>>2];if(!f){break k}d=b+8|0;g=F[f+4>>2];e=ji(h);if(e>>>0<2){break m}g=g>>>0>=h>>>0?(g>>>0)%(h>>>0)|0:g;F[F[b>>2]+(g<<2)>>2]=d;d=F[f>>2];if(!d){break k}if(e>>>0<=1){break l}while(1){i=F[d+4>>2];if(h>>>0<=i>>>0){i=(i>>>0)%(h>>>0)|0}o:{if((g|0)==(i|0)){f=d;break o}e=d;l=i<<2;m=l+F[b>>2]|0;if(!F[m>>2]){F[m>>2]=f;f=d;g=i;break o}while(1){i=e;e=F[e>>2];if(F[d+8>>2]==F[e+8>>2]?e:0){continue}break}F[f>>2]=e;F[i>>2]=F[F[l+F[b>>2]>>2]>>2];F[F[l+F[b>>2]>>2]>>2]=d}d=F[f>>2];if(d){continue}break}break k}d=F[b>>2];F[b>>2]=0;if(d){ma(d)}F[b+4>>2]=0;break k}sa();v()}g=h-1&g;F[F[b>>2]+(g<<2)>>2]=d;d=F[f>>2];if(!d){break k}}l=h-1|0;while(1){h=l&F[d+4>>2];p:{if((h|0)==(g|0)){f=d;break p}e=d;i=h<<2;m=i+F[b>>2]|0;if(F[m>>2]){while(1){h=e;e=F[e>>2];if(F[d+8>>2]==F[e+8>>2]?e:0){continue}break}F[f>>2]=e;F[h>>2]=F[F[i+F[b>>2]>>2]>>2];F[F[i+F[b>>2]>>2]>>2]=d;break p}F[m>>2]=f;f=d;g=h}d=F[f>>2];if(d){continue}break}}}f=F[b+4>>2];d=f-1|0;if(!(d&f)){e=d&j;break d}if(f>>>0>j>>>0){e=j;break d}e=(j>>>0)%(f>>>0)|0}e=F[b>>2]+(e<<2)|0;d=F[e>>2];q:{r:{if(!d){d=b+8|0;F[c>>2]=F[d>>2];F[b+8>>2]=c;F[e>>2]=d;d=F[c>>2];if(!d){break q}d=F[d+4>>2];e=f-1|0;s:{if(!(e&f)){d=d&e;break s}if(d>>>0>>0){break s}d=(d>>>0)%(f>>>0)|0}d=F[b>>2]+(d<<2)|0;break r}F[c>>2]=F[d>>2]}F[d>>2]=c}F[b+12>>2]=F[b+12>>2]+1;b=1}D[a+4|0]=b;F[a>>2]=c}function Xc(a){var b=0,c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0;F[a+56>>2]=F[a+52>>2];F[a+44>>2]=F[a+40>>2];d=F[a+64>>2];c=F[d+24>>2];if((c|0)==F[d+28>>2]){return 1}a:{b:{c:{while(1){e=b;c=F[(j<<2)+c>>2];d:{if((c|0)==-1){break d}b=F[a+56>>2];e:{if((b|0)!=F[a+60>>2]){F[b>>2]=e;F[a+56>>2]=b+4;break e}d=F[a+52>>2];h=b-d|0;g=h>>2;b=g+1|0;if(b>>>0>=1073741824){break c}f=h>>1;f=h>>>0>=2147483644?1073741823:b>>>0>>0?f:b;if(f){if(f>>>0>=1073741824){break b}b=na(f<<2)}else{b=0}g=b+(g<<2)|0;F[g>>2]=e;if((h|0)>0){oa(b,d,h)}F[a+60>>2]=b+(f<<2);F[a+56>>2]=g+4;F[a+52>>2]=b;if(!d){break e}ma(d)}f:{g:{if(!(F[F[a+12>>2]+(j>>>3&536870908)>>2]>>>j&1)){break g}b=c+1|0;b=(b>>>0)%3|0?b:c-2|0;if((b|0)==-1|F[F[a>>2]+(b>>>3&536870908)>>2]>>>b&1){break g}b=F[F[F[a+64>>2]+12>>2]+(b<<2)>>2];if((b|0)==-1){break g}h=b+1|0;d=(h>>>0)%3|0?h:b-2|0;if((d|0)==-1){break g}f=F[a+64>>2];g=F[a>>2];while(1){h=d;d=-1;b=h+1|0;b=(b>>>0)%3|0?b:h-2|0;h:{if((b|0)==-1|F[g+(b>>>3&536870908)>>2]>>>b&1){break h}b=F[F[f+12>>2]+(b<<2)>>2];if((b|0)==-1){break h}d=b+1|0;d=(d>>>0)%3|0?d:b-2|0}if((d|0)!=(c|0)){if((d|0)==-1){break f}continue}break}return 0}h=c}F[F[a+28>>2]+(h<<2)>>2]=e;b=F[a+44>>2];i:{if((b|0)!=F[a+48>>2]){F[b>>2]=h;F[a+44>>2]=b+4;break i}c=F[a+40>>2];d=b-c|0;g=d>>2;b=g+1|0;if(b>>>0>=1073741824){break a}f=d>>1;f=d>>>0>=2147483644?1073741823:b>>>0>>0?f:b;if(f){if(f>>>0>=1073741824){break b}b=na(f<<2)}else{b=0}g=b+(g<<2)|0;F[g>>2]=h;if((d|0)>0){oa(b,c,d)}F[a+48>>2]=b+(f<<2);F[a+44>>2]=g+4;F[a+40>>2]=b;if(!c){break i}ma(c)}b=e+1|0;d=F[a+64>>2];j:{if((h>>>0)%3|0){c=h-1|0;break j}c=h+2|0;if((c|0)==-1){break d}}c=F[F[d+12>>2]+(c<<2)>>2];if((c|0)==-1){break d}c=c+((c>>>0)%3|0?-1:2)|0;if((c|0)==-1|(c|0)==(h|0)){break d}while(1){d=c+1|0;d=(d>>>0)%3|0?d:c-2|0;if(F[F[a>>2]+(d>>>3&536870908)>>2]>>>d&1){e=F[a+56>>2];k:{if((e|0)!=F[a+60>>2]){F[e>>2]=b;F[a+56>>2]=e+4;break k}f=F[a+52>>2];d=e-f|0;i=d>>2;e=i+1|0;if(e>>>0>=1073741824){break c}g=d>>1;g=d>>>0>=2147483644?1073741823:e>>>0>>0?g:e;if(g){if(g>>>0>=1073741824){break b}e=na(g<<2)}else{e=0}i=e+(i<<2)|0;F[i>>2]=b;if((d|0)>0){oa(e,f,d)}F[a+60>>2]=e+(g<<2);F[a+56>>2]=i+4;F[a+52>>2]=e;if(!f){break k}ma(f)}d=b+1|0;e=F[a+44>>2];l:{if((e|0)!=F[a+48>>2]){F[e>>2]=c;F[a+44>>2]=e+4;break l}g=F[a+40>>2];f=e-g|0;k=f>>2;e=k+1|0;if(e>>>0>=1073741824){break a}i=f>>1;i=f>>>0>=2147483644?1073741823:e>>>0>>0?i:e;if(i){if(i>>>0>=1073741824){break b}e=na(i<<2)}else{e=0}k=e+(k<<2)|0;F[k>>2]=c;if((f|0)>0){oa(e,g,f)}F[a+48>>2]=e+(i<<2);F[a+44>>2]=k+4;F[a+40>>2]=e;if(!g){break l}ma(g)}e=b;b=d}F[F[a+28>>2]+(c<<2)>>2]=e;d=F[a+64>>2];m:{if((c>>>0)%3|0){c=c-1|0;break m}c=c+2|0;if((c|0)==-1){break d}}c=F[F[d+12>>2]+(c<<2)>>2];if((c|0)==-1){break d}c=c+((c>>>0)%3|0?-1:2)|0;if((c|0)==-1){break d}if((c|0)!=(h|0)){continue}break}}j=j+1|0;c=F[d+24>>2];if(j>>>0>2]-c>>2>>>0){continue}break}return 1}qa();v()}sa();v()}qa();v()}function ai(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,w=0;F[a+8>>2]=e;n=a+32|0;h=F[n>>2];f=F[a+36>>2]-h>>2;a:{if(f>>>0>>0){ra(n,e-f|0);d=F[a+8>>2];break a}d=e;if(d>>>0>=f>>>0){break a}F[a+36>>2]=h+(e<<2);d=e}s=F[a+52>>2];p=F[a+48>>2];f=0;h=e>>>0>1073741823?-1:e<<2;m=pa(na(h),0,h);b:{if((d|0)<=0){break b}g=F[a+32>>2];while(1){d=f<<2;h=F[d+m>>2];j=F[a+16>>2];c:{if((h|0)>(j|0)){F[d+g>>2]=j;break c}d=d+g|0;j=F[a+12>>2];if((j|0)>(h|0)){F[d>>2]=j;break c}F[d>>2]=h}d=F[a+8>>2];f=f+1|0;if((d|0)>(f|0)){continue}break}if((d|0)<=0){break b}f=0;while(1){h=f<<2;d=h+c|0;h=F[b+h>>2]+F[g+h>>2]|0;F[d>>2]=h;d:{if((h|0)>F[a+16>>2]){i=h-F[a+20>>2]|0}else{if((h|0)>=F[a+12>>2]){break d}i=h+F[a+20>>2]|0}F[d>>2]=i}d=F[a+8>>2];f=f+1|0;if((d|0)>(f|0)){continue}break}}f=F[a+56>>2];q=F[f>>2];f=F[f+4>>2]-q|0;if((f|0)>=5){o=f>>>2|0;t=o>>>0<=2?2:o;u=e&-2;w=e&1;h=1;while(1){e:{f:{if((h|0)!=(o|0)){r=L(e,h);f=F[(h<<2)+q>>2];if((f|0)==-1){break f}f=F[F[p+12>>2]+(f<<2)>>2];if((f|0)==-1){break f}j=F[s>>2];g=F[p>>2];k=F[j+(F[g+(f<<2)>>2]<<2)>>2];i=f+1|0;i=(i>>>0)%3|0?i:f-2|0;if((i|0)!=-1){i=F[g+(i<<2)>>2]}else{i=-1}g:{h:{if((f>>>0)%3|0){f=f-1|0;break h}f=f+2|0;l=-1;if((f|0)==-1){break g}}l=F[g+(f<<2)>>2]}if((h|0)<=(k|0)){break f}f=F[(i<<2)+j>>2];if((f|0)>=(h|0)){break f}g=F[j+(l<<2)>>2];if((g|0)>=(h|0)){break f}i:{if((e|0)<=0){break i}g=L(e,g);j=L(e,f);k=L(e,k);f=0;l=0;if((e|0)!=1){while(1){F[(f<<2)+m>>2]=(F[(f+g<<2)+c>>2]+F[(f+j<<2)+c>>2]|0)-F[(f+k<<2)+c>>2];i=f|1;F[(i<<2)+m>>2]=(F[(g+i<<2)+c>>2]+F[(j+i<<2)+c>>2]|0)-F[(i+k<<2)+c>>2];f=f+2|0;l=l+2|0;if((u|0)!=(l|0)){continue}break}}if(!w){break i}F[(f<<2)+m>>2]=(F[(f+g<<2)+c>>2]+F[(f+j<<2)+c>>2]|0)-F[(f+k<<2)+c>>2]}if((d|0)<=0){break e}j=F[n>>2];f=0;while(1){d=f<<2;g=F[d+m>>2];k=F[a+16>>2];j:{if((g|0)>(k|0)){F[d+j>>2]=k;break j}d=d+j|0;k=F[a+12>>2];if((k|0)>(g|0)){F[d>>2]=k;break j}F[d>>2]=g}d=F[a+8>>2];f=f+1|0;if((d|0)>(f|0)){continue}break}f=0;if((d|0)<=0){break e}d=r<<2;k=d+c|0;i=b+d|0;while(1){g=f<<2;d=g+k|0;g=F[g+i>>2]+F[g+j>>2]|0;F[d>>2]=g;k:{if((g|0)>F[a+16>>2]){l=g-F[a+20>>2]|0}else{if((g|0)>=F[a+12>>2]){break k}l=g+F[a+20>>2]|0}F[d>>2]=l}d=F[a+8>>2];f=f+1|0;if((d|0)>(f|0)){continue}break}break e}va();v()}if((d|0)<=0){break e}k=(L(h-1|0,e)<<2)+c|0;j=F[n>>2];f=0;while(1){d=f<<2;g=F[d+k>>2];i=F[a+16>>2];l:{if((g|0)>(i|0)){F[d+j>>2]=i;break l}d=d+j|0;i=F[a+12>>2];if((i|0)>(g|0)){F[d>>2]=i;break l}F[d>>2]=g}d=F[a+8>>2];f=f+1|0;if((d|0)>(f|0)){continue}break}f=0;if((d|0)<=0){break e}d=r<<2;k=d+c|0;i=b+d|0;while(1){g=f<<2;d=g+k|0;g=F[g+i>>2]+F[g+j>>2]|0;F[d>>2]=g;m:{if((g|0)>F[a+16>>2]){l=g-F[a+20>>2]|0}else{if((g|0)>=F[a+12>>2]){break m}l=g+F[a+20>>2]|0}F[d>>2]=l}d=F[a+8>>2];f=f+1|0;if((d|0)>(f|0)){continue}break}}h=h+1|0;if((t|0)!=(h|0)){continue}break}}ma(m);return 1}function ee(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,w=0;F[a+8>>2]=e;m=a+32|0;h=F[m>>2];f=F[a+36>>2]-h>>2;a:{if(f>>>0>>0){ra(m,e-f|0);d=F[a+8>>2];break a}d=e;if(d>>>0>=f>>>0){break a}F[a+36>>2]=h+(e<<2);d=e}s=F[a+52>>2];n=F[a+48>>2];f=0;h=e>>>0>1073741823?-1:e<<2;l=pa(na(h),0,h);b:{if((d|0)<=0){break b}g=F[a+32>>2];while(1){d=f<<2;h=F[d+l>>2];i=F[a+16>>2];c:{if((h|0)>(i|0)){F[d+g>>2]=i;break c}d=d+g|0;i=F[a+12>>2];if((i|0)>(h|0)){F[d>>2]=i;break c}F[d>>2]=h}d=F[a+8>>2];f=f+1|0;if((d|0)>(f|0)){continue}break}if((d|0)<=0){break b}f=0;while(1){h=f<<2;d=h+c|0;h=F[b+h>>2]+F[g+h>>2]|0;F[d>>2]=h;d:{if((h|0)>F[a+16>>2]){h=h-F[a+20>>2]|0}else{if((h|0)>=F[a+12>>2]){break d}h=h+F[a+20>>2]|0}F[d>>2]=h}d=F[a+8>>2];f=f+1|0;if((d|0)>(f|0)){continue}break}}f=F[a+56>>2];q=F[f>>2];f=F[f+4>>2]-q|0;if((f|0)>=5){o=f>>>2|0;t=o>>>0<=2?2:o;u=e&-2;w=e&1;h=1;while(1){e:{f:{if((h|0)!=(o|0)){r=L(e,h);f=F[(h<<2)+q>>2];if((f|0)==-1|F[F[n>>2]+(f>>>3&536870908)>>2]>>>f&1){break f}f=F[F[F[n+64>>2]+12>>2]+(f<<2)>>2];if((f|0)==-1){break f}i=F[s>>2];g=F[n+28>>2];k=F[i+(F[g+(f<<2)>>2]<<2)>>2];if((k|0)>=(h|0)){break f}j=f+1|0;j=F[i+(F[g+(((j>>>0)%3|0?j:f-2|0)<<2)>>2]<<2)>>2];if((j|0)>=(h|0)){break f}f=F[i+(F[g+(f+((f>>>0)%3|0?-1:2)<<2)>>2]<<2)>>2];if((f|0)>=(h|0)){break f}g:{if((e|0)<=0){break g}g=L(e,f);i=L(e,j);k=L(e,k);f=0;p=0;if((e|0)!=1){while(1){F[(f<<2)+l>>2]=(F[(f+g<<2)+c>>2]+F[(f+i<<2)+c>>2]|0)-F[(f+k<<2)+c>>2];j=f|1;F[(j<<2)+l>>2]=(F[(g+j<<2)+c>>2]+F[(i+j<<2)+c>>2]|0)-F[(k+j<<2)+c>>2];f=f+2|0;p=p+2|0;if((u|0)!=(p|0)){continue}break}}if(!w){break g}F[(f<<2)+l>>2]=(F[(f+g<<2)+c>>2]+F[(f+i<<2)+c>>2]|0)-F[(f+k<<2)+c>>2]}if((d|0)<=0){break e}i=F[m>>2];f=0;while(1){d=f<<2;g=F[d+l>>2];k=F[a+16>>2];h:{if((g|0)>(k|0)){F[d+i>>2]=k;break h}d=d+i|0;k=F[a+12>>2];if((k|0)>(g|0)){F[d>>2]=k;break h}F[d>>2]=g}d=F[a+8>>2];f=f+1|0;if((d|0)>(f|0)){continue}break}f=0;if((d|0)<=0){break e}d=r<<2;k=d+c|0;j=b+d|0;while(1){g=f<<2;d=g+k|0;g=F[g+j>>2]+F[g+i>>2]|0;F[d>>2]=g;i:{if((g|0)>F[a+16>>2]){g=g-F[a+20>>2]|0}else{if((g|0)>=F[a+12>>2]){break i}g=g+F[a+20>>2]|0}F[d>>2]=g}d=F[a+8>>2];f=f+1|0;if((d|0)>(f|0)){continue}break}break e}va();v()}if((d|0)<=0){break e}k=(L(h-1|0,e)<<2)+c|0;i=F[m>>2];f=0;while(1){d=f<<2;g=F[d+k>>2];j=F[a+16>>2];j:{if((g|0)>(j|0)){F[d+i>>2]=j;break j}d=d+i|0;j=F[a+12>>2];if((j|0)>(g|0)){F[d>>2]=j;break j}F[d>>2]=g}d=F[a+8>>2];f=f+1|0;if((d|0)>(f|0)){continue}break}f=0;if((d|0)<=0){break e}d=r<<2;k=d+c|0;j=b+d|0;while(1){g=f<<2;d=g+k|0;g=F[g+j>>2]+F[g+i>>2]|0;F[d>>2]=g;k:{if((g|0)>F[a+16>>2]){g=g-F[a+20>>2]|0}else{if((g|0)>=F[a+12>>2]){break k}g=g+F[a+20>>2]|0}F[d>>2]=g}d=F[a+8>>2];f=f+1|0;if((d|0)>(f|0)){continue}break}}h=h+1|0;if((t|0)!=(h|0)){continue}break}}ma(l);return 1}function md(a,b){var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0;if((b|0)==-1){return 1}c=(b>>>0)/3|0;if(!(F[F[a+24>>2]+(c>>>3&268435452)>>2]>>>c&1)){d=F[a+48>>2];F[a+52>>2]=d;a:{if((d|0)!=F[a+56>>2]){F[d>>2]=b;F[a+52>>2]=d+4;break a}e=na(4);F[e>>2]=b;f=e+4|0;F[a+56>>2]=f;F[a+52>>2]=f;F[a+48>>2]=e;if(!d){break a}ma(d)}f=F[F[a+4>>2]+28>>2];d=b+1|0;e=(d>>>0)%3|0?d:b-2|0;d=F[f+(e<<2)>>2];if((d|0)==-1){return 0}g=(b-L(c,3)|0?-1:2)+b|0;c=F[f+(g<<2)>>2];if((c|0)==-1){return 0}b=F[a+36>>2];f=b+(d>>>3&536870908)|0;h=F[f>>2];i=1<>2]=h|i;Ma(a+8|0,d,e);b=F[a+36>>2]}b=(c>>>3&536870908)+b|0;d=F[b>>2];e=1<>2]=d|e;Ma(a+8|0,c,g)}c=F[a+52>>2];if((c|0)==F[a+48>>2]){return 1}k=a+8|0;while(1){b:{c:{c=c-4|0;b=F[c>>2];if((b|0)==-1){break c}d=(b>>>0)/3|0;e=F[a+24>>2]+(d>>>3&268435452)|0;f=F[e>>2];d=1<>2]=d|f;e=F[a+4>>2];d=F[F[e+28>>2]+(b<<2)>>2];if((d|0)==-1){return 0}while(1){c=b;d:{e:{f=F[a+36>>2]+(d>>>3&536870908)|0;g=F[f>>2];h=1<>2]+(d<<2)>>2];g:{if((b|0)==-1){break g}i=b+1|0;b=(i>>>0)%3|0?i:b-2|0;if((b|0)==-1|F[F[e>>2]+(b>>>3&536870908)>>2]>>>b&1){break g}b=F[F[F[e+64>>2]+12>>2]+(b<<2)>>2];if((b|0)!=-1){break f}}F[f>>2]=g|h;Ma(k,d,c);break e}F[f>>2]=g|h;Ma(k,d,c);d=b+1|0;if((((d>>>0)%3|0?d:b-2|0)|0)==-1){break e}b=-1;e=F[a+4>>2];h:{if((c|0)==-1){break h}d=c+1|0;d=(d>>>0)%3|0?d:c-2|0;if((d|0)==-1|F[F[e>>2]+(d>>>3&536870908)>>2]>>>d&1){break h}b=F[F[F[e+64>>2]+12>>2]+(d<<2)>>2]}d=(b>>>0)/3|0;h=1<>2];i=d>>>5|0;f=F[c+(i<<2)>>2];break d}i:{j:{if((c|0)==-1){break j}d=-1;b=c+1|0;b=(b>>>0)%3|0?b:c-2|0;e=F[a+4>>2];if(!((b|0)==-1|F[F[e>>2]+(b>>>3&536870908)>>2]>>>b&1)){d=F[F[F[e+64>>2]+12>>2]+(b<<2)>>2]}k:{l:{if((c>>>0)%3|0){c=c-1|0;break l}c=c+2|0;b=-1;if((c|0)==-1){break k}}b=-1;if(F[F[e>>2]+(c>>>3&536870908)>>2]>>>c&1){break k}b=F[F[F[e+64>>2]+12>>2]+(c<<2)>>2]}j=(b|0)==-1;g=j?-1:(b>>>0)/3|0;if((d|0)!=-1){c=F[a+24>>2];h=(d>>>0)/3|0;i=h>>>5|0;f=F[c+(i<<2)>>2];h=1<>2];i=g>>>5|0;f=F[c+(i<<2)>>2];if(!(h&f)){break d}}c=F[a+52>>2]-4|0;F[a+52>>2]=c;break b}if(j){b=d;break d}if(F[(g>>>3&536870908)+c>>2]>>>g&1){b=d;break d}c=F[a+52>>2];F[c-4>>2]=b;if((c|0)!=F[a+56>>2]){F[c>>2]=d;c=c+4|0;break c}m:{f=F[a+48>>2];e=c-f|0;c=e>>2;b=c+1|0;if(b>>>0<1073741824){g=e>>1;g=e>>>0>=2147483644?1073741823:b>>>0>>0?g:b;if(g){if(g>>>0>=1073741824){break m}b=na(g<<2)}else{b=0}c=b+(c<<2)|0;F[c>>2]=d;c=c+4|0;if((e|0)>0){oa(b,f,e)}F[a+56>>2]=b+(g<<2);F[a+52>>2]=c;F[a+48>>2]=b;if(!f){break b}ma(f);c=F[a+52>>2];break b}qa();v()}sa();v()}F[(i<<2)+c>>2]=f|h;d=F[F[e+28>>2]+(b<<2)>>2];if((d|0)!=-1){continue}break}return 0}F[a+52>>2]=c}if(F[a+48>>2]!=(c|0)){continue}break}}return 1}function Ub(a,b,c){var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0;i=L(b,12)+a|0;F[i+12>>2]=F[i+8>>2];j=(c|0)==-1?-1:(c>>>0)/3|0;l=1;k=c;a:{b:{c:{while(1){d:{n=e&1;if(n){if((k|0)==-1){break d}if((Vc(a,((k>>>0)%3|0?-1:2)+k|0)|0)==-1){break a}c=k+1|0;c=(c>>>0)%3|0?c:k-2|0;if((c|0)==-1){break a}e=c+1|0;c=(e>>>0)%3|0?e:c-2|0;if((c|0)==-1){break a}c=F[F[F[a+4>>2]+12>>2]+(c<<2)>>2];if((c|0)==-1){break a}e=c+1|0;c=(e>>>0)%3|0?e:c-2|0;if((c|0)==-1){break a}j=(c>>>0)/3|0}d=F[a+56>>2]+(j>>>3&536870908)|0;g=F[d>>2];f=1<>2]=g|f;d=F[i+12>>2];f:{if((d|0)!=F[i+16>>2]){F[d>>2]=j;F[i+12>>2]=d+4;break f}g=F[i+8>>2];h=d-g|0;m=h>>2;d=m+1|0;if(d>>>0>=1073741824){break c}f=h>>1;f=h>>>0>=2147483644?1073741823:d>>>0>>0?f:d;if(f){if(f>>>0>=1073741824){break b}d=na(f<<2)}else{d=0}m=d+(m<<2)|0;F[m>>2]=j;if((h|0)>0){oa(d,g,h)}F[i+8>>2]=d;F[i+12>>2]=m+4;F[i+16>>2]=d+(f<<2);if(!g){break f}ma(g)}h=e+1|0;g:{h:{i:{if(!e){break i}if(h&1){if((c|0)==-1){c=-1;break g}e=c+1|0;c=(e>>>0)%3|0?e:c-2|0;break i}k=n?c:k;if((c|0)==-1){c=-1;break g}if((c>>>0)%3|0){e=c-1|0;break h}c=c+2|0}d=c;c=-1;e=d;if((d|0)==-1){break g}}c=F[F[F[a+4>>2]+12>>2]+(e<<2)>>2];d=-1;g=-1;f=e+1|0;f=(f>>>0)%3|0?f:e-2|0;if((f|0)>=0){g=(f>>>0)/3|0;g=F[(F[F[a>>2]+96>>2]+L(g,12)|0)+(f-L(g,3)<<2)>>2]}j:{if((c|0)==-1){break j}f=((c>>>0)%3|0?-1:2)+c|0;if((f|0)<0){break j}d=(f>>>0)/3|0;d=F[(F[F[a>>2]+96>>2]+L(d,12)|0)+(f-L(d,3)<<2)>>2]}if((d|0)!=(g|0)){c=-1;break g}k:{l:{e=((e>>>0)%3|0?-1:2)+e|0;if((e|0)>=0){d=(e>>>0)/3|0;if((c|0)!=-1){break l}c=-1;break g}e=-1;if((c|0)!=-1){break k}c=-1;break g}e=F[(F[F[a>>2]+96>>2]+L(d,12)|0)+(e-L(d,3)<<2)>>2]}d=c+1|0;d=(d>>>0)%3|0?d:c-2|0;if((d|0)>=0){g=(d>>>0)/3|0;d=F[(F[F[a>>2]+96>>2]+L(g,12)|0)+(d-L(g,3)<<2)>>2]}else{d=-1}if((d|0)!=(e|0)){c=-1;break g}e=h;j=(c>>>0)/3|0;d=F[a+56>>2]+(j>>>3&268435452)|0;g=F[d>>2];f=1<>2]-4|0;d=F[e>>2];h=F[a+56>>2]+(d>>>3&536870908)|0;g=F[h>>2];o=h,p=ki(d)&g,F[o>>2]=p;F[i+12>>2]=e}e=1;d=l;l=0;if(d){continue}break a}break}k=-1;Vc(a,-1);break a}qa();v()}sa();v()}F[((b<<2)+a|0)+44>>2]=k;c=F[i+12>>2];b=F[i+8>>2];m:{if((c|0)==(b|0)){break m}e=c-b|0;c=e>>2;d=c>>>0<=1?1:c;k=d&1;a=F[a+56>>2];c=0;if(e>>>0>=8){e=d&-2;j=0;while(1){d=c<<2;h=F[d+b>>2];l=a+(h>>>3&536870908)|0;i=F[l>>2];o=l,p=ki(h)&i,F[o>>2]=p;d=F[b+(d|4)>>2];h=a+(d>>>3&536870908)|0;l=F[h>>2];o=h,p=ki(d)&l,F[o>>2]=p;c=c+2|0;j=j+2|0;if((e|0)!=(j|0)){continue}break}}if(!k){break m}b=F[b+(c<<2)>>2];a=a+(b>>>3&536870908)|0;c=F[a>>2];o=a,p=ki(b)&c,F[o>>2]=p}}function nd(a,b){var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0;if((b|0)==-1){return 1}d=(b>>>0)/3|0;if(!(F[F[a+24>>2]+(d>>>3&268435452)>>2]>>>d&1)){c=F[a+48>>2];F[a+52>>2]=c;a:{if((c|0)!=F[a+56>>2]){F[c>>2]=b;F[a+52>>2]=c+4;break a}e=na(4);F[e>>2]=b;f=e+4|0;F[a+56>>2]=f;F[a+52>>2]=f;F[a+48>>2]=e;if(!c){break a}ma(c)}e=-1;f=F[a+4>>2];c=b+1|0;g=(c>>>0)%3|0?c:b-2|0;if((g|0)!=-1){e=F[F[f>>2]+(g<<2)>>2]}b:{h=b-L(d,3)|0;if(h){c=b-1|0;break b}c=b+2|0;if((c|0)!=-1){break b}return 0}if((e|0)==-1){return 0}d=F[F[f>>2]+(c<<2)>>2];if((d|0)==-1){return 0}c=F[a+36>>2];f=c+(e>>>3&536870908)|0;i=F[f>>2];j=1<>2]=i|j;Ma(a+8|0,e,g);c=F[a+36>>2]}c=(d>>>3&536870908)+c|0;e=F[c>>2];f=1<>2]=e|f;Ma(a+8|0,d,(h?-1:2)+b|0)}c=F[a+52>>2];if((c|0)==F[a+48>>2]){return 1}j=a+8|0;while(1){c:{d:{c=c-4|0;b=F[c>>2];if((b|0)==-1){break d}d=(b>>>0)/3|0;e=F[a+24>>2]+(d>>>3&268435452)|0;f=F[e>>2];d=1<>2]=d|f;while(1){d=F[a+4>>2];c=F[F[d>>2]+(b<<2)>>2];if((c|0)==-1){return 0}e:{f:{e=F[a+36>>2]+(c>>>3&536870908)|0;f=F[e>>2];g=1<>2]+(c<<2)>>2];h:{if((h|0)==-1){break h}i=h+1|0;h=(i>>>0)%3|0?i:h-2|0;if((h|0)==-1){break h}d=F[F[d+12>>2]+(h<<2)>>2];if((d|0)!=-1){break g}}F[e>>2]=f|g;Ma(j,c,b);break f}F[e>>2]=f|g;Ma(j,c,b);c=d+1|0;if((((c>>>0)%3|0?c:d-2|0)|0)==-1){break f}d=b-2|0;c=b+1|0;b=-1;c=(c>>>0)%3|0?c:d;if((c|0)!=-1){b=F[F[F[a+4>>2]+12>>2]+(c<<2)>>2]}c=(b>>>0)/3|0;g=1<>2];h=c>>>5|0;d=F[e+(h<<2)>>2];break e}c=-1;f=F[a+4>>2];d=b+1|0;d=(d>>>0)%3|0?d:b-2|0;if((d|0)!=-1){c=F[F[f+12>>2]+(d<<2)>>2]}i:{j:{if((b>>>0)%3|0){e=b-1|0;break j}e=b+2|0;b=-1;if((e|0)==-1){break i}}b=F[F[f+12>>2]+(e<<2)>>2]}i=(b|0)==-1;f=i?-1:(b>>>0)/3|0;k:{if((c|0)!=-1){e=F[a+24>>2];g=(c>>>0)/3|0;h=g>>>5|0;d=F[e+(h<<2)>>2];g=1<>2];h=f>>>5|0;d=F[e+(h<<2)>>2];if(!(g&d)){break e}}c=F[a+52>>2]-4|0;F[a+52>>2]=c;break c}if(i){b=c;break e}if(F[(f>>>3&536870908)+e>>2]>>>f&1){b=c;break e}d=F[a+52>>2];F[d-4>>2]=b;if((d|0)!=F[a+56>>2]){F[d>>2]=c;c=d+4|0;break d}l:{e=F[a+48>>2];d=d-e|0;g=d>>2;b=g+1|0;if(b>>>0<1073741824){f=d>>1;f=d>>>0>=2147483644?1073741823:b>>>0>>0?f:b;if(f){if(f>>>0>=1073741824){break l}b=na(f<<2)}else{b=0}g=b+(g<<2)|0;F[g>>2]=c;c=g+4|0;if((d|0)>0){oa(b,e,d)}F[a+56>>2]=b+(f<<2);F[a+52>>2]=c;F[a+48>>2]=b;if(!e){break c}ma(e);c=F[a+52>>2];break c}qa();v()}sa();v()}F[(h<<2)+e>>2]=d|g;if((b|0)!=-1){continue}break}return 0}F[a+52>>2]=c}if(F[a+48>>2]!=(c|0)){continue}break}}return 1}function be(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0;h=aa-32|0;aa=h;a:{b:{if(!Qa(1,h+28|0,b)){break b}d=F[h+28>>2];c=F[F[a+48>>2]+64>>2];if(d>>>0>F[c+4>>2]-F[c>>2]>>2>>>0){break b}c:{if(d){Pa(a+60|0,d);c=h+8|0;F[c>>2]=0;F[c+4>>2]=0;D[c+5|0]=0;D[c+6|0]=0;D[c+7|0]=0;D[c+8|0]=0;D[c+9|0]=0;D[c+10|0]=0;D[c+11|0]=0;D[c+12|0]=0;if(!Da(c,b)){break c}while(1){f=1<>2]+(e>>>3&536870908)|0;if(i){f=f|F[g>>2]}else{f=F[g>>2]&(f^-1)}F[g>>2]=f;e=e+1|0;if((d|0)!=(e|0)){continue}break}}if(!Qa(1,h+28|0,b)){break b}d=F[h+28>>2];c=F[F[a+48>>2]+64>>2];if(d>>>0>F[c+4>>2]-F[c>>2]>>2>>>0){break b}if(d){e=0;Pa(a+72|0,d);c=h+8|0;F[c>>2]=0;F[c+4>>2]=0;D[c+5|0]=0;D[c+6|0]=0;D[c+7|0]=0;D[c+8|0]=0;D[c+9|0]=0;D[c+10|0]=0;D[c+11|0]=0;D[c+12|0]=0;if(!Da(c,b)){break c}while(1){f=1<>2]+(e>>>3&536870908)|0;if(i){f=f|F[g>>2]}else{f=F[g>>2]&(f^-1)}F[g>>2]=f;e=e+1|0;if((d|0)!=(e|0)){continue}break}}if(!Qa(1,h+28|0,b)){break b}d=F[h+28>>2];c=F[F[a+48>>2]+64>>2];if(d>>>0>F[c+4>>2]-F[c>>2]>>2>>>0){break b}if(d){e=0;Pa(a+84|0,d);c=h+8|0;F[c>>2]=0;F[c+4>>2]=0;D[c+5|0]=0;D[c+6|0]=0;D[c+7|0]=0;D[c+8|0]=0;D[c+9|0]=0;D[c+10|0]=0;D[c+11|0]=0;D[c+12|0]=0;if(!Da(c,b)){break c}while(1){f=1<>2]+(e>>>3&536870908)|0;if(i){f=f|F[g>>2]}else{f=F[g>>2]&(f^-1)}F[g>>2]=f;e=e+1|0;if((d|0)!=(e|0)){continue}break}}if(!Qa(1,h+28|0,b)){break b}d=F[h+28>>2];c=F[F[a+48>>2]+64>>2];if(d>>>0>F[c+4>>2]-F[c>>2]>>2>>>0){break b}if(d){e=0;Pa(a+96|0,d);c=h+8|0;F[c>>2]=0;F[c+4>>2]=0;D[c+5|0]=0;D[c+6|0]=0;D[c+7|0]=0;D[c+8|0]=0;D[c+9|0]=0;D[c+10|0]=0;D[c+11|0]=0;D[c+12|0]=0;if(!Da(c,b)){break c}while(1){f=1<>2]+(e>>>3&536870908)|0;if(i){f=f|F[g>>2]}else{f=F[g>>2]&(f^-1)}F[g>>2]=f;e=e+1|0;if((d|0)!=(e|0)){continue}break}}e=0;d=F[b+12>>2];f=d;c=F[b+20>>2];g=c;i=F[b+16>>2];j=i+4|0;c=j>>>0<4?c+1|0:c;k=F[b+8>>2];if(k>>>0>>0&(c|0)>=(d|0)|(c|0)>(d|0)){break a}l=F[b>>2];d=l+i|0;d=G[d|0]|G[d+1|0]<<8|(G[d+2|0]<<16|G[d+3|0]<<24);F[b+16>>2]=j;F[b+20>>2]=c;c=g;g=i+8|0;c=g>>>0<8?c+1|0:c;i=g;g=c;if(i>>>0>k>>>0&(c|0)>=(f|0)|(c|0)>(f|0)){break a}c=j+l|0;c=G[c|0]|G[c+1|0]<<8|(G[c+2|0]<<16|G[c+3|0]<<24);F[b+16>>2]=i;F[b+20>>2]=g;if((c|0)<(d|0)){break a}F[a+16>>2]=c;F[a+12>>2]=d;b=(c>>31)-((d>>31)+(c>>>0>>0)|0)|0;c=c-d|0;if(!b&c>>>0>2147483646|b){break a}e=1;b=c+1|0;F[a+20>>2]=b;c=b>>>1|0;F[a+24>>2]=c;F[a+28>>2]=0-c;if(b&1){break a}F[a+24>>2]=c-1;break a}}e=0}aa=h+32|0;return e|0}function Zh(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0;h=aa-32|0;aa=h;a:{b:{if(!Qa(1,h+28|0,b)){break b}d=F[h+28>>2];c=F[a+48>>2];if(d>>>0>F[c+4>>2]-F[c>>2]>>2>>>0){break b}c:{if(d){Pa(a+60|0,d);c=h+8|0;F[c>>2]=0;F[c+4>>2]=0;D[c+5|0]=0;D[c+6|0]=0;D[c+7|0]=0;D[c+8|0]=0;D[c+9|0]=0;D[c+10|0]=0;D[c+11|0]=0;D[c+12|0]=0;if(!Da(c,b)){break c}while(1){f=1<>2]+(e>>>3&536870908)|0;if(i){f=f|F[g>>2]}else{f=F[g>>2]&(f^-1)}F[g>>2]=f;e=e+1|0;if((d|0)!=(e|0)){continue}break}}if(!Qa(1,h+28|0,b)){break b}d=F[h+28>>2];c=F[a+48>>2];if(d>>>0>F[c+4>>2]-F[c>>2]>>2>>>0){break b}if(d){e=0;Pa(a+72|0,d);c=h+8|0;F[c>>2]=0;F[c+4>>2]=0;D[c+5|0]=0;D[c+6|0]=0;D[c+7|0]=0;D[c+8|0]=0;D[c+9|0]=0;D[c+10|0]=0;D[c+11|0]=0;D[c+12|0]=0;if(!Da(c,b)){break c}while(1){f=1<>2]+(e>>>3&536870908)|0;if(i){f=f|F[g>>2]}else{f=F[g>>2]&(f^-1)}F[g>>2]=f;e=e+1|0;if((d|0)!=(e|0)){continue}break}}if(!Qa(1,h+28|0,b)){break b}d=F[h+28>>2];c=F[a+48>>2];if(d>>>0>F[c+4>>2]-F[c>>2]>>2>>>0){break b}if(d){e=0;Pa(a+84|0,d);c=h+8|0;F[c>>2]=0;F[c+4>>2]=0;D[c+5|0]=0;D[c+6|0]=0;D[c+7|0]=0;D[c+8|0]=0;D[c+9|0]=0;D[c+10|0]=0;D[c+11|0]=0;D[c+12|0]=0;if(!Da(c,b)){break c}while(1){f=1<>2]+(e>>>3&536870908)|0;if(i){f=f|F[g>>2]}else{f=F[g>>2]&(f^-1)}F[g>>2]=f;e=e+1|0;if((d|0)!=(e|0)){continue}break}}if(!Qa(1,h+28|0,b)){break b}d=F[h+28>>2];c=F[a+48>>2];if(d>>>0>F[c+4>>2]-F[c>>2]>>2>>>0){break b}if(d){e=0;Pa(a+96|0,d);c=h+8|0;F[c>>2]=0;F[c+4>>2]=0;D[c+5|0]=0;D[c+6|0]=0;D[c+7|0]=0;D[c+8|0]=0;D[c+9|0]=0;D[c+10|0]=0;D[c+11|0]=0;D[c+12|0]=0;if(!Da(c,b)){break c}while(1){f=1<>2]+(e>>>3&536870908)|0;if(i){f=f|F[g>>2]}else{f=F[g>>2]&(f^-1)}F[g>>2]=f;e=e+1|0;if((d|0)!=(e|0)){continue}break}}e=0;d=F[b+12>>2];f=d;c=F[b+20>>2];g=c;i=F[b+16>>2];j=i+4|0;c=j>>>0<4?c+1|0:c;k=F[b+8>>2];if(k>>>0>>0&(c|0)>=(d|0)|(c|0)>(d|0)){break a}l=F[b>>2];d=l+i|0;d=G[d|0]|G[d+1|0]<<8|(G[d+2|0]<<16|G[d+3|0]<<24);F[b+16>>2]=j;F[b+20>>2]=c;c=g;g=i+8|0;c=g>>>0<8?c+1|0:c;i=g;g=c;if(i>>>0>k>>>0&(c|0)>=(f|0)|(c|0)>(f|0)){break a}c=j+l|0;c=G[c|0]|G[c+1|0]<<8|(G[c+2|0]<<16|G[c+3|0]<<24);F[b+16>>2]=i;F[b+20>>2]=g;if((c|0)<(d|0)){break a}F[a+16>>2]=c;F[a+12>>2]=d;b=(c>>31)-((d>>31)+(c>>>0>>0)|0)|0;c=c-d|0;if(!b&c>>>0>2147483646|b){break a}e=1;b=c+1|0;F[a+20>>2]=b;c=b>>>1|0;F[a+24>>2]=c;F[a+28>>2]=0-c;if(b&1){break a}F[a+24>>2]=c-1;break a}}e=0}aa=h+32|0;return e|0}function rh(a){a=a|0;var b=0,c=0,d=0,e=0,f=0;b=F[a+32>>2];e=F[b+16>>2];d=F[b+12>>2];c=F[b+20>>2];if(I[b+8>>2]>e>>>0&(d|0)>=(c|0)|(c|0)<(d|0)){f=G[e+F[b>>2]|0];d=e+1|0;c=d?c:c+1|0;F[b+16>>2]=d;F[b+20>>2]=c;b=F[a+48>>2];F[a+48>>2]=0;if(b){ca[F[F[b>>2]+4>>2]](b)}a:{b:{c:{d:{switch(f|0){case 0:b=na(384);F[b>>2]=8284;pa(b+4|0,0,80);F[b+96>>2]=0;F[b+100>>2]=0;F[b+92>>2]=-1;F[b+84>>2]=-1;F[b+88>>2]=-1;F[b+104>>2]=0;F[b+108>>2]=0;F[b+112>>2]=0;F[b+116>>2]=0;F[b+120>>2]=0;F[b+124>>2]=0;F[b+128>>2]=0;F[b+132>>2]=0;F[b+136>>2]=0;F[b+140>>2]=0;F[b+144>>2]=0;F[b+148>>2]=0;F[b+156>>2]=0;F[b+160>>2]=0;F[b+152>>2]=1065353216;F[b+164>>2]=0;F[b+168>>2]=0;F[b+172>>2]=0;F[b+176>>2]=0;F[b+180>>2]=0;F[b+184>>2]=0;F[b+188>>2]=0;F[b+192>>2]=0;F[b+196>>2]=0;F[b+200>>2]=0;F[b+204>>2]=0;F[b+208>>2]=0;F[b+212>>2]=-1;F[b+216>>2]=0;F[b+220>>2]=0;F[b+224>>2]=0;La(b+232|0);La(b+272|0);c=b+312|0;F[c>>2]=0;F[c+4>>2]=0;D[c+5|0]=0;D[c+6|0]=0;D[c+7|0]=0;D[c+8|0]=0;D[c+9|0]=0;D[c+10|0]=0;D[c+11|0]=0;D[c+12|0]=0;La(b+328|0);F[b+376>>2]=0;F[b+368>>2]=0;F[b+372>>2]=0;break c;case 2:break d;default:break b}}b=na(440);F[b>>2]=8336;pa(b+4|0,0,80);F[b+96>>2]=0;F[b+100>>2]=0;F[b+92>>2]=-1;F[b+84>>2]=-1;F[b+88>>2]=-1;F[b+104>>2]=0;F[b+108>>2]=0;F[b+112>>2]=0;F[b+116>>2]=0;F[b+120>>2]=0;F[b+124>>2]=0;F[b+128>>2]=0;F[b+132>>2]=0;F[b+136>>2]=0;F[b+140>>2]=0;F[b+144>>2]=0;F[b+148>>2]=0;F[b+156>>2]=0;F[b+160>>2]=0;F[b+152>>2]=1065353216;F[b+164>>2]=0;F[b+168>>2]=0;F[b+172>>2]=0;F[b+176>>2]=0;F[b+180>>2]=0;F[b+184>>2]=0;F[b+188>>2]=0;F[b+192>>2]=0;F[b+196>>2]=0;F[b+200>>2]=0;F[b+204>>2]=0;F[b+208>>2]=0;F[b+212>>2]=-1;F[b+216>>2]=0;F[b+220>>2]=0;F[b+224>>2]=0;La(b+232|0);La(b+272|0);c=b+312|0;F[c>>2]=0;F[c+4>>2]=0;D[c+5|0]=0;D[c+6|0]=0;D[c+7|0]=0;D[c+8|0]=0;D[c+9|0]=0;D[c+10|0]=0;D[c+11|0]=0;D[c+12|0]=0;La(b+328|0);F[b+392>>2]=0;F[b+396>>2]=0;F[b+384>>2]=0;F[b+388>>2]=0;F[b+376>>2]=0;F[b+380>>2]=0;F[b+368>>2]=0;F[b+372>>2]=0;F[b+416>>2]=0;F[b+420>>2]=0;F[b+408>>2]=2;F[b+412>>2]=7;F[b+400>>2]=-1;F[b+404>>2]=-1;F[b+424>>2]=0;F[b+428>>2]=0;F[b+432>>2]=0;F[b+436>>2]=0}c=F[a+48>>2];F[a+48>>2]=b;if(!c){break a}ca[F[F[c>>2]+4>>2]](c)}b=F[a+48>>2];if(b){break a}return 0}a=ca[F[F[b>>2]+8>>2]](b,a)|0}else{a=0}return a|0}function bi(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0;g=aa-32|0;aa=g;F[a+68>>2]=f;d=F[a+56>>2];e=F[d>>2];d=F[d+4>>2];F[g+24>>2]=0;F[g+16>>2]=0;F[g+20>>2]=0;a:{d=d-e|0;if((d|0)>0){m=a+60|0;d=d>>>2|0;n=d>>>0<=1?1:d;o=a+112|0;while(1){e=F[a+56>>2];d=F[e>>2];if(F[e+4>>2]-d>>2>>>0<=k>>>0){break a}Nb(m,F[d+(k<<2)>>2],g+16|0);e=F[g+20>>2];d=e>>31;f=F[g+16>>2];h=f>>31;j=F[g+24>>2];i=j>>31;i=(i^j)-i|0;h=i+((d^e)-d+((f^h)-h)|0)|0;d=0;d=h>>>0>>0?1:d;b:{if(!(d|h)){F[g+16>>2]=F[a+108>>2];break b}i=F[a+108>>2];l=i>>31;f=hi(gi(i,l,f,f>>31),ba,h,d);F[g+16>>2]=f;d=hi(gi(i,l,e,e>>31),ba,h,d);F[g+20>>2]=d;e=d;d=d>>31;e=(e^d)-d|0;d=f>>31;d=e+((d^f)-d|0)|0;if((j|0)>=0){F[g+24>>2]=i-d;break b}F[g+24>>2]=d-i}d=za(o);f=F[g+16>>2];c:{if(d){F[g+24>>2]=0-F[g+24>>2];e=0-F[g+20>>2]|0;F[g+20>>2]=e;f=0-f|0;F[g+16>>2]=f;break c}e=F[g+20>>2]}d:{if((f|0)>=0){f=F[a+108>>2];d=f+F[g+24>>2]|0;f=e+f|0;break d}e:{if((e|0)<0){d=F[g+24>>2];f=d>>31;f=(d^f)-f|0;break e}d=F[g+24>>2];f=d>>31;f=F[a+100>>2]+(f-(d^f)|0)|0}if((d|0)<0){d=e>>31;d=(d^e)-d|0;break d}d=e>>31;d=F[a+100>>2]+(d-(d^e)|0)|0}e=F[a+100>>2];f:{if(!(d|f)){d=e;f=d;break f}if(!((d|0)!=(e|0)|f)){f=d;break f}if(!((e|0)!=(f|0)|d)){d=f;break f}g:{if(f){break g}h=F[a+108>>2];if((h|0)>=(d|0)){break g}d=(h<<1)-d|0;f=0;break f}h:{if((e|0)!=(f|0)){break h}h=F[a+108>>2];if((h|0)<=(d|0)){break h}d=(h<<1)-d|0;break f}i:{if((d|0)!=(e|0)){break i}e=F[a+108>>2];if((e|0)<=(f|0)){break i}f=(e<<1)-f|0;break f}if(d){break f}d=0;e=F[a+108>>2];if((e|0)>=(f|0)){break f}f=(e<<1)-f|0}F[g+12>>2]=d;F[g+8>>2]=f;j:{if(F[a+8>>2]<=0){break j}h=F[a+32>>2];f=0;while(1){d=f<<2;e=F[d+(g+8|0)>>2];j=F[a+16>>2];k:{if((e|0)>(j|0)){F[d+h>>2]=j;break k}d=d+h|0;j=F[a+12>>2];if((j|0)>(e|0)){F[d>>2]=j;break k}F[d>>2]=e}f=f+1|0;e=F[a+8>>2];if((f|0)<(e|0)){continue}break}d=0;if((e|0)<=0){break j}e=k<<3;j=e+c|0;i=b+e|0;while(1){f=d<<2;e=f+j|0;f=F[f+i>>2]+F[f+h>>2]|0;F[e>>2]=f;l:{if((f|0)>F[a+16>>2]){f=f-F[a+20>>2]|0}else{if((f|0)>=F[a+12>>2]){break l}f=f+F[a+20>>2]|0}F[e>>2]=f}d=d+1|0;if((d|0)>2]){continue}break}}k=k+1|0;if((n|0)!=(k|0)){continue}break}}aa=g+32|0;return 1}va();v()}function Sh(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0;g=aa-32|0;aa=g;F[a+68>>2]=f;d=F[a+56>>2];e=F[d>>2];d=F[d+4>>2];F[g+24>>2]=0;F[g+16>>2]=0;F[g+20>>2]=0;a:{d=d-e|0;if((d|0)>0){m=a+60|0;d=d>>>2|0;n=d>>>0<=1?1:d;o=a+112|0;while(1){e=F[a+56>>2];d=F[e>>2];if(F[e+4>>2]-d>>2>>>0<=k>>>0){break a}Lb(m,F[d+(k<<2)>>2],g+16|0);e=F[g+20>>2];d=e>>31;f=F[g+16>>2];h=f>>31;j=F[g+24>>2];i=j>>31;i=(i^j)-i|0;h=i+((d^e)-d+((f^h)-h)|0)|0;d=0;d=h>>>0>>0?1:d;b:{if(!(d|h)){F[g+16>>2]=F[a+108>>2];break b}i=F[a+108>>2];l=i>>31;f=hi(gi(i,l,f,f>>31),ba,h,d);F[g+16>>2]=f;d=hi(gi(i,l,e,e>>31),ba,h,d);F[g+20>>2]=d;e=d;d=d>>31;e=(e^d)-d|0;d=f>>31;d=e+((d^f)-d|0)|0;if((j|0)>=0){F[g+24>>2]=i-d;break b}F[g+24>>2]=d-i}d=za(o);f=F[g+16>>2];c:{if(d){F[g+24>>2]=0-F[g+24>>2];e=0-F[g+20>>2]|0;F[g+20>>2]=e;f=0-f|0;F[g+16>>2]=f;break c}e=F[g+20>>2]}d:{if((f|0)>=0){f=F[a+108>>2];d=f+F[g+24>>2]|0;f=e+f|0;break d}e:{if((e|0)<0){d=F[g+24>>2];f=d>>31;f=(d^f)-f|0;break e}d=F[g+24>>2];f=d>>31;f=F[a+100>>2]+(f-(d^f)|0)|0}if((d|0)<0){d=e>>31;d=(d^e)-d|0;break d}d=e>>31;d=F[a+100>>2]+(d-(d^e)|0)|0}e=F[a+100>>2];f:{if(!(d|f)){d=e;f=d;break f}if(!((d|0)!=(e|0)|f)){f=d;break f}if(!((e|0)!=(f|0)|d)){d=f;break f}g:{if(f){break g}h=F[a+108>>2];if((h|0)>=(d|0)){break g}d=(h<<1)-d|0;f=0;break f}h:{if((e|0)!=(f|0)){break h}h=F[a+108>>2];if((h|0)<=(d|0)){break h}d=(h<<1)-d|0;break f}i:{if((d|0)!=(e|0)){break i}e=F[a+108>>2];if((e|0)<=(f|0)){break i}f=(e<<1)-f|0;break f}if(d){break f}d=0;e=F[a+108>>2];if((e|0)>=(f|0)){break f}f=(e<<1)-f|0}F[g+12>>2]=d;F[g+8>>2]=f;j:{if(F[a+8>>2]<=0){break j}h=F[a+32>>2];f=0;while(1){d=f<<2;e=F[d+(g+8|0)>>2];j=F[a+16>>2];k:{if((e|0)>(j|0)){F[d+h>>2]=j;break k}d=d+h|0;j=F[a+12>>2];if((j|0)>(e|0)){F[d>>2]=j;break k}F[d>>2]=e}f=f+1|0;e=F[a+8>>2];if((f|0)<(e|0)){continue}break}d=0;if((e|0)<=0){break j}e=k<<3;j=e+c|0;i=b+e|0;while(1){f=d<<2;e=f+j|0;f=F[f+i>>2]+F[f+h>>2]|0;F[e>>2]=f;l:{if((f|0)>F[a+16>>2]){f=f-F[a+20>>2]|0}else{if((f|0)>=F[a+12>>2]){break l}f=f+F[a+20>>2]|0}F[e>>2]=f}d=d+1|0;if((d|0)>2]){continue}break}}k=k+1|0;if((n|0)!=(k|0)){continue}break}}aa=g+32|0;return 1}va();v()}function wc(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0;l=ca[F[F[a>>2]+44>>2]](a)|0;a:{if((l|0)<=0){break a}h=F[b+4>>2]-F[b>>2]>>2;e=aa+-64|0;aa=e;d=mb(e);f=L(F[2541],l);ac(d,F[F[a+8>>2]+56>>2],l&255,5,0,f,f>>31);d=$b(na(96),d);D[d+84|0]=1;F[d+72>>2]=F[d+68>>2];_b(d,h);F[d+60>>2]=F[F[a+8>>2]+60>>2];f=F[a+16>>2];F[a+16>>2]=d;if(f){Aa(f)}aa=e- -64|0;d=F[a+16>>2];if(!F[d+80>>2]){break a}j=F[F[d>>2]>>2];if(!j){break a}i=F[c+12>>2];g=i;e=F[c+20>>2];k=F[c+8>>2];f=F[c+16>>2];if((g|0)<=(e|0)&k>>>0<=f>>>0|(e|0)>(g|0)){break a}h=L(h,l);j=j+F[d+48>>2]|0;m=F[c>>2];n=G[m+f|0];d=e;g=f+1|0;d=g?d:d+1|0;F[c+16>>2]=g;F[c+20>>2]=d;b:{c:{if(n){if(kc(h,l,c,j)){break c}break a}if((d|0)>=(i|0)&g>>>0>=k>>>0|(d|0)>(i|0)){break a}d=G[g+m|0];f=f+2|0;e=f>>>0<2?e+1|0:e;F[c+16>>2]=f;F[c+20>>2]=e;e=F[F[a+16>>2]+64>>2];e=F[e+4>>2]-F[e>>2]|0;if((d|0)==F[2541]){d=h<<2;if(d>>>0>e>>>0){break a}f=F[c+12>>2];e=F[c+20>>2];i=F[c+16>>2];g=d+i|0;e=g>>>0>>0?e+1|0:e;if(g>>>0>I[c+8>>2]&(e|0)>=(f|0)|(e|0)>(f|0)){break a}oa(j,i+F[c>>2]|0,d);e=d;f=d+F[c+16>>2]|0;d=F[c+20>>2];F[c+16>>2]=f;F[c+20>>2]=e>>>0>f>>>0?d+1|0:d;break c}if(e>>>0>>0){break a}e=F[c+8>>2];i=F[c+16>>2];f=i;g=e-f|0;f=e>>>0>>0;e=F[c+20>>2];f=F[c+12>>2]-(f+e|0)|0;k=gi(d,0,h,0)>>>0>g>>>0;g=ba;if(k&(g|0)>=(f|0)|(f|0)<(g|0)){break a}f=1;if(!h){break b}g=0;while(1){m=d+i|0;k=F[c+12>>2];e=d>>>0>m>>>0?e+1|0:e;if(m>>>0>I[c+8>>2]&(k|0)<=(e|0)|(e|0)>(k|0)){return 0}oa(j+(g<<2)|0,i+F[c>>2]|0,d);e=F[c+20>>2];i=d+F[c+16>>2]|0;e=i>>>0>>0?e+1|0:e;F[c+16>>2]=i;F[c+20>>2]=e;g=g+1|0;if((h|0)!=(g|0)){continue}break}}f=1;if(!h){break b}d=F[a+20>>2];if(d){f=0;if(ca[F[F[d>>2]+32>>2]](d)|0){break b}}d=0;g=0;d:{if((h|0)<=0){break d}if((h|0)!=1){i=h&-2;while(1){e=d<<2;f=F[e+j>>2];F[e+j>>2]=0-(f&1)^f>>>1;f=e|4;e=F[f+j>>2];F[f+j>>2]=0-(e&1)^e>>>1;d=d+2|0;g=g+2|0;if((i|0)!=(g|0)){continue}break}}if(!(h&1)){break d}e=d<<2;d=F[e+j>>2];F[e+j>>2]=0-(d&1)^d>>>1}f=0}d=F[a+20>>2];e:{if(!d){break e}if(!(ca[F[F[d>>2]+40>>2]](d,c)|0)){break a}if(f){break e}a=F[a+20>>2];if(!(ca[F[F[a>>2]+44>>2]](a,j,j,h,l,F[b>>2])|0)){break a}}o=1}return o|0}function db(a,b){var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0;g=aa-32|0;aa=g;a:{b:{if(F[a+8>>2]<<5>>>0>=b>>>0){break b}if((b|0)<0){break a}b=(b-1>>>5|0)+1|0;c=na(b<<2);F[g+24>>2]=b;F[g+20>>2]=0;F[g+16>>2]=c;b=F[a>>2];F[g+12>>2]=0;F[g+8>>2]=b;c=F[a+4>>2];F[g+4>>2]=c&31;F[g>>2]=b+(c>>>3&536870908);f=aa-32|0;aa=f;i=F[g+4>>2];e=F[g+12>>2];j=F[g>>2];h=F[g+8>>2];b=(i-e|0)+(j-h<<3)|0;d=F[g+20>>2];c=b+d|0;F[g+20>>2]=c;if(!((c-1^d-1)>>>0<32?d:0)){F[F[g+16>>2]+((c>>>0>=33?c-1>>>5|0:0)<<2)>>2]=0}c=F[g+16>>2]+(d>>>3&536870908)|0;d=d&31;c:{if((d|0)==(e|0)){if((b|0)<=0){break c}if(e){i=32-e|0;d=(b|0)<(i|0)?b:i;i=-1<>>i-d;F[c>>2]=F[c>>2]&(i^-1)|i&F[h>>2];b=b-d|0;h=h+4|0;c=c+(d+e>>>3&536870908)|0}j=c;e=(b|0)/32|0;c=e<<2;d=Sa(j,h,c);b=b-(e<<5)|0;if((b|0)<=0){break c}e=c+d|0;b=-1>>>32-b|0;F[e>>2]=F[e>>2]&(b^-1)|b&F[c+h>>2];break c}F[f+28>>2]=e;F[f+24>>2]=h;F[f+20>>2]=i;F[f+16>>2]=j;F[f+12>>2]=d;F[f+8>>2]=c;b=F[f+28>>2];c=F[f+24>>2];h=(F[f+20>>2]-b|0)+(F[f+16>>2]-c<<3)|0;d:{if((h|0)<=0){b=F[f+12>>2];break d}e:{if(!b){b=F[f+12>>2];break e}e=F[f+12>>2];j=32-e|0;k=32-b|0;d=(h|0)<(k|0)?h:k;i=d>>>0>j>>>0?j:d;l=F[f+8>>2];m=F[l>>2]&(-1<>>j-i^-1);j=F[c>>2]&(-1<>>k-d);F[l>>2]=m|(b>>>0>>0?j<>>b-e|0);c=e+i|0;b=c&31;F[f+12>>2]=b;e=l+(c>>>3&536870908)|0;F[f+8>>2]=e;c=d-i|0;if((c|0)>0){F[e>>2]=F[e>>2]&(-1>>>32-c^-1)|j>>>i+F[f+28>>2];F[f+12>>2]=c;b=c}h=h-d|0;c=F[f+24>>2]+4|0;F[f+24>>2]=c}i=-1<=32){j=i^-1;while(1){d=F[f+8>>2];c=F[c>>2];F[d>>2]=j&F[d>>2]|c<>2]=d+4;F[d+4>>2]=i&F[d+4>>2]|c>>>e;c=F[f+24>>2]+4|0;F[f+24>>2]=c;d=h>>>0>63;h=h-32|0;if(d){continue}break}}if((h|0)<=0){break d}d=F[f+8>>2];j=e;e=(e|0)<(h|0)?e:h;j=F[d>>2]&(i&-1>>>j-e^-1);i=F[c>>2]&-1>>>32-h;F[d>>2]=j|i<>2]=b;d=d+(c>>>3&536870908)|0;F[f+8>>2]=d;c=h-e|0;if((c|0)<=0){break d}F[d>>2]=F[d>>2]&(-1>>>32-c^-1)|i>>>e;F[f+12>>2]=c;b=c}c=F[f+8>>2];F[f+4>>2]=b;F[f>>2]=c}aa=f+32|0;b=F[a>>2];F[a>>2]=F[g+16>>2];F[g+16>>2]=b;c=F[a+4>>2];F[a+4>>2]=F[g+20>>2];F[g+20>>2]=c;c=F[a+8>>2];F[a+8>>2]=F[g+24>>2];F[g+24>>2]=c;if(!b){break b}ma(b)}aa=g+32|0;return}qa();v()}function Ih(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0;g=aa-48|0;aa=g;d=F[a+8>>2];if(d-31>>>0>=4294967267){F[a+76>>2]=d;e=-1<>2]=d;F[a+80>>2]=e^-1;F[a+92>>2]=(d|0)/2;J[a+88>>2]=M(2)/M(d|0)}F[a+52>>2]=f;d=F[a+40>>2];e=F[d>>2];d=F[d+4>>2];F[g+16>>2]=0;F[g+8>>2]=0;F[g+12>>2]=0;a:{d=d-e|0;if((d|0)>0){m=a+8|0;n=a+44|0;d=d>>>2|0;o=d>>>0<=1?1:d;p=a+96|0;while(1){e=F[a+40>>2];d=F[e>>2];if(F[e+4>>2]-d>>2>>>0<=j>>>0){break a}Nb(n,F[d+(j<<2)>>2],g+8|0);e=F[g+12>>2];d=e>>31;f=F[g+8>>2];h=f>>31;k=F[g+16>>2];i=k>>31;i=(i^k)-i|0;h=i+((d^e)-d+((f^h)-h)|0)|0;d=0;d=h>>>0>>0?1:d;b:{if(!(d|h)){F[g+8>>2]=F[a+92>>2];break b}i=F[a+92>>2];l=i>>31;f=hi(gi(i,l,f,f>>31),ba,h,d);F[g+8>>2]=f;d=hi(gi(i,l,e,e>>31),ba,h,d);F[g+12>>2]=d;e=d>>31;e=(d^e)-e|0;d=f>>31;d=e+((d^f)-d|0)|0;if((k|0)>=0){F[g+16>>2]=i-d;break b}F[g+16>>2]=d-i}d=za(p);f=F[g+8>>2];c:{if(d){F[g+16>>2]=0-F[g+16>>2];e=0-F[g+12>>2]|0;F[g+12>>2]=e;f=0-f|0;F[g+8>>2]=f;break c}e=F[g+12>>2]}d:{if((f|0)>=0){f=F[a+92>>2];d=f+F[g+16>>2]|0;f=e+f|0;break d}e:{if((e|0)<0){d=F[g+16>>2];f=d>>31;f=(d^f)-f|0;break e}d=F[g+16>>2];f=d>>31;f=F[a+84>>2]+(f-(d^f)|0)|0}if((d|0)<0){d=e>>31;d=(d^e)-d|0;break d}d=e>>31;d=F[a+84>>2]+(d-(d^e)|0)|0}e=F[a+84>>2];f:{if(!(d|f)){d=e;f=d;break f}if(!((d|0)!=(e|0)|f)){f=d;break f}if(!((e|0)!=(f|0)|d)){d=f;break f}g:{if(f){break g}h=F[a+92>>2];if((h|0)>=(d|0)){break g}d=(h<<1)-d|0;f=0;break f}h:{if((e|0)!=(f|0)){break h}h=F[a+92>>2];if((h|0)<=(d|0)){break h}d=(h<<1)-d|0;break f}i:{if((d|0)!=(e|0)){break i}e=F[a+92>>2];if((e|0)<=(f|0)){break i}f=(e<<1)-f|0;break f}if(d){break f}d=0;e=F[a+92>>2];if((e|0)>=(f|0)){break f}f=(e<<1)-f|0}e=j<<3;h=e+b|0;k=F[h+4>>2];h=F[h>>2];F[g+36>>2]=d;F[g+32>>2]=f;F[g+24>>2]=h;F[g+28>>2]=k;Kb(g+40|0,m,g+32|0,g+24|0);d=c+e|0;F[d>>2]=F[g+40>>2];F[d+4>>2]=F[g+44>>2];j=j+1|0;if((o|0)!=(j|0)){continue}break}}aa=g+48|0;return 1}va();v()}function Eh(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0;g=aa-48|0;aa=g;d=F[a+8>>2];if(d-31>>>0>=4294967267){F[a+76>>2]=d;e=-1<>2]=d;F[a+80>>2]=e^-1;F[a+92>>2]=(d|0)/2;J[a+88>>2]=M(2)/M(d|0)}F[a+52>>2]=f;d=F[a+40>>2];e=F[d>>2];d=F[d+4>>2];F[g+16>>2]=0;F[g+8>>2]=0;F[g+12>>2]=0;a:{d=d-e|0;if((d|0)>0){m=a+8|0;n=a+44|0;d=d>>>2|0;o=d>>>0<=1?1:d;p=a+96|0;while(1){e=F[a+40>>2];d=F[e>>2];if(F[e+4>>2]-d>>2>>>0<=j>>>0){break a}Lb(n,F[d+(j<<2)>>2],g+8|0);e=F[g+12>>2];d=e>>31;f=F[g+8>>2];h=f>>31;k=F[g+16>>2];i=k>>31;i=(i^k)-i|0;h=i+((d^e)-d+((f^h)-h)|0)|0;d=0;d=h>>>0>>0?1:d;b:{if(!(d|h)){F[g+8>>2]=F[a+92>>2];break b}i=F[a+92>>2];l=i>>31;f=hi(gi(i,l,f,f>>31),ba,h,d);F[g+8>>2]=f;d=hi(gi(i,l,e,e>>31),ba,h,d);F[g+12>>2]=d;e=d>>31;e=(d^e)-e|0;d=f>>31;d=e+((d^f)-d|0)|0;if((k|0)>=0){F[g+16>>2]=i-d;break b}F[g+16>>2]=d-i}d=za(p);f=F[g+8>>2];c:{if(d){F[g+16>>2]=0-F[g+16>>2];e=0-F[g+12>>2]|0;F[g+12>>2]=e;f=0-f|0;F[g+8>>2]=f;break c}e=F[g+12>>2]}d:{if((f|0)>=0){f=F[a+92>>2];d=f+F[g+16>>2]|0;f=e+f|0;break d}e:{if((e|0)<0){d=F[g+16>>2];f=d>>31;f=(d^f)-f|0;break e}d=F[g+16>>2];f=d>>31;f=F[a+84>>2]+(f-(d^f)|0)|0}if((d|0)<0){d=e>>31;d=(d^e)-d|0;break d}d=e>>31;d=F[a+84>>2]+(d-(d^e)|0)|0}e=F[a+84>>2];f:{if(!(d|f)){d=e;f=d;break f}if(!((d|0)!=(e|0)|f)){f=d;break f}if(!((e|0)!=(f|0)|d)){d=f;break f}g:{if(f){break g}h=F[a+92>>2];if((h|0)>=(d|0)){break g}d=(h<<1)-d|0;f=0;break f}h:{if((e|0)!=(f|0)){break h}h=F[a+92>>2];if((h|0)<=(d|0)){break h}d=(h<<1)-d|0;break f}i:{if((d|0)!=(e|0)){break i}e=F[a+92>>2];if((e|0)<=(f|0)){break i}f=(e<<1)-f|0;break f}if(d){break f}d=0;e=F[a+92>>2];if((e|0)>=(f|0)){break f}f=(e<<1)-f|0}e=j<<3;h=e+b|0;k=F[h+4>>2];h=F[h>>2];F[g+36>>2]=d;F[g+32>>2]=f;F[g+24>>2]=h;F[g+28>>2]=k;Kb(g+40|0,m,g+32|0,g+24|0);d=c+e|0;F[d>>2]=F[g+40>>2];F[d+4>>2]=F[g+44>>2];j=j+1|0;if((o|0)!=(j|0)){continue}break}}aa=g+48|0;return 1}va();v()}function Ld(a,b){var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0;a:{if(!H[b+38>>1]){break a}if(!Wa(1,a+12|0,b)){break a}c=F[b+8>>2];d=F[b+16>>2];f=c-d|0;e=F[a+12>>2];c=F[b+12>>2]-(F[b+20>>2]+(c>>>0>>0)|0)|0;if(f>>>0>>6>>>0&(c|0)<=0|(c|0)<0){break a}d=F[a>>2];c=F[a+4>>2]-d>>2;b:{if(c>>>0>>0){ra(a,e-c|0);e=F[a+12>>2];break b}if(c>>>0<=e>>>0){break b}F[a+4>>2]=d+(e<<2)}if(!e){return 1}g=F[b+16>>2];c=F[b+20>>2];k=F[a>>2];l=F[b+8>>2];j=F[b+12>>2];f=0;while(1){if((c|0)>=(j|0)&g>>>0>=l>>>0|(c|0)>(j|0)){return 0}m=F[b>>2];i=G[m+g|0];d=g+1|0;c=d?c:c+1|0;g=d;F[b+16>>2]=d;F[b+20>>2]=c;d=i>>>2|0;h=0;c:{d:{e:{f:{n=i&3;switch(n|0){case 3:break f;case 0:break d;default:break e}}d=d+f|0;if(d>>>0>=e>>>0){return 0}pa(k+(f<<2)|0,0,(i&252)+4|0);f=d;break c}while(1){if((c|0)>=(j|0)&g>>>0>=l>>>0|(c|0)>(j|0)){break a}e=G[g+m|0];g=g+1|0;c=g?c:c+1|0;F[b+16>>2]=g;F[b+20>>2]=c;d=e<<(h<<3|6)|d;h=h+1|0;if((n|0)!=(h|0)){continue}break}}F[k+(f<<2)>>2]=d}e=F[a+12>>2];f=f+1|0;if(e>>>0>f>>>0){continue}break}b=a+16|0;j=F[a>>2];d=F[a+16>>2];c=F[a+20>>2]-d|0;g:{if(c>>>0<=16383){ra(b,4096-(c>>>2|0)|0);break g}if((c|0)==16384){break g}F[a+20>>2]=d+16384}c=a+28|0;f=F[c>>2];d=F[a+32>>2]-f>>3;h:{if(d>>>0>>0){cb(c,e-d|0);f=F[c>>2];break h}if(d>>>0>e>>>0){F[a+32>>2]=(e<<3)+f}if(!e){break a}}g=F[b>>2];b=0;a=0;while(1){c=j+(b<<2)|0;h=F[c>>2];d=a;i=(b<<3)+f|0;F[i+4>>2]=a;F[i>>2]=h;c=F[c>>2];a=c+a|0;if(a>>>0>4096){break a}i:{if(a>>>0<=d>>>0){break i}h=0;i=c&7;if(i){while(1){F[g+(d<<2)>>2]=b;d=d+1|0;h=h+1|0;if((i|0)!=(h|0)){continue}break}}if(c-1>>>0<=6){break i}while(1){c=g+(d<<2)|0;F[c>>2]=b;F[c+28>>2]=b;F[c+24>>2]=b;F[c+20>>2]=b;F[c+16>>2]=b;F[c+12>>2]=b;F[c+8>>2]=b;F[c+4>>2]=b;d=d+8|0;if((d|0)!=(a|0)){continue}break}}b=b+1|0;if((e|0)!=(b|0)){continue}break}o=(a|0)==4096}return o}function nf(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0;f=aa-32|0;aa=f;e=f+8|0;c=aa-80|0;aa=c;a=F[b+36>>2];F[c+72>>2]=F[b+32>>2];F[c+76>>2]=a;d=F[b+28>>2];a=c- -64|0;F[a>>2]=F[b+24>>2];F[a+4>>2]=d;a=F[b+20>>2];F[c+56>>2]=F[b+16>>2];F[c+60>>2]=a;a=F[b+12>>2];F[c+48>>2]=F[b+8>>2];F[c+52>>2]=a;a=F[b+4>>2];F[c+40>>2]=F[b>>2];F[c+44>>2]=a;hc(c+8|0,c+40|0,c+24|0);a=F[c+8>>2];a:{if(a){F[e>>2]=a;a=e+4|0;if(D[c+23|0]>=0){b=c+8|4;e=F[b+4>>2];F[a>>2]=F[b>>2];F[a+4>>2]=e;F[a+8>>2]=F[b+8>>2];break a}ta(a,F[c+12>>2],F[c+16>>2]);if(D[c+23|0]>=0){break a}ma(F[c+12>>2]);break a}if(D[c+23|0]<0){ma(F[c+12>>2])}a=G[c+31|0];if(a>>>0>=2){b=na(32);D[b+26|0]=0;a=G[1475]|G[1476]<<8;D[b+24|0]=a;D[b+25|0]=a>>>8;a=G[1471]|G[1472]<<8|(G[1473]<<16|G[1474]<<24);d=G[1467]|G[1468]<<8|(G[1469]<<16|G[1470]<<24);D[b+16|0]=d;D[b+17|0]=d>>>8;D[b+18|0]=d>>>16;D[b+19|0]=d>>>24;D[b+20|0]=a;D[b+21|0]=a>>>8;D[b+22|0]=a>>>16;D[b+23|0]=a>>>24;a=G[1463]|G[1464]<<8|(G[1465]<<16|G[1466]<<24);d=G[1459]|G[1460]<<8|(G[1461]<<16|G[1462]<<24);D[b+8|0]=d;D[b+9|0]=d>>>8;D[b+10|0]=d>>>16;D[b+11|0]=d>>>24;D[b+12|0]=a;D[b+13|0]=a>>>8;D[b+14|0]=a>>>16;D[b+15|0]=a>>>24;a=G[1455]|G[1456]<<8|(G[1457]<<16|G[1458]<<24);d=G[1451]|G[1452]<<8|(G[1453]<<16|G[1454]<<24);D[b|0]=d;D[b+1|0]=d>>>8;D[b+2|0]=d>>>16;D[b+3|0]=d>>>24;D[b+4|0]=a;D[b+5|0]=a>>>8;D[b+6|0]=a>>>16;D[b+7|0]=a>>>24;F[c+8>>2]=-1;a=c+8|4;ta(a,b,26);d=D[c+23|0];F[e>>2]=F[c+8>>2];e=e+4|0;if((d|0)>=0){d=F[a+4>>2];F[e>>2]=F[a>>2];F[e+4>>2]=d;F[e+8>>2]=F[a+8>>2];ma(b);break a}ta(e,F[c+12>>2],F[c+16>>2]);if(D[c+23|0]<0){ma(F[c+12>>2])}ma(b);break a}F[e>>2]=0;F[e+4>>2]=0;F[e+16>>2]=a;F[e+8>>2]=0;F[e+12>>2]=0}aa=c+80|0;a=F[f+24>>2];if(D[f+23|0]<0){ma(F[f+12>>2])}aa=f+32|0;return a|0}function Nh(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0,g=0,h=0,i=0;e=aa-32|0;aa=e;a:{if((c|0)!=3){break a}c=F[a+4>>2];f=F[a+12>>2];F[e+24>>2]=-1;F[e+16>>2]=-1;F[e+20>>2]=1065353216;F[e+8>>2]=-1;F[e+12>>2]=-1;if((b|0)==-2){break a}i=F[F[F[c+4>>2]+8>>2]+(f<<2)>>2];if((ca[F[F[c>>2]+8>>2]](c)|0)==1){h=F[F[F[c+4>>2]+8>>2]+(f<<2)>>2];b:{if((ca[F[F[c>>2]+8>>2]](c)|0)!=1|b-1>>>0>5){break b}g=ca[F[F[c>>2]+36>>2]](c)|0;a=ca[F[F[c>>2]+44>>2]](c,f)|0;if(!g|!a){break b}f=ca[F[F[c>>2]+40>>2]](c,f)|0;c:{if(f){if((b|0)!=6){break b}b=F[c+44>>2];d=na(112);F[d+4>>2]=h;c=F[e+12>>2];F[d+8>>2]=F[e+8>>2];F[d+12>>2]=c;c=F[e+20>>2];F[d+16>>2]=F[e+16>>2];F[d+20>>2]=c;F[d+24>>2]=F[e+24>>2];F[d+40>>2]=a;c=a+12|0;F[d+36>>2]=c;F[d+32>>2]=f;F[d+28>>2]=b;F[d+68>>2]=a;F[d- -64>>2]=c;F[d+60>>2]=f;F[d+56>>2]=b;F[d+48>>2]=0;F[d+52>>2]=0;F[d>>2]=5928;F[d+88>>2]=1065353216;F[d+92>>2]=-1;F[d+80>>2]=-1;F[d+84>>2]=-1;F[d+72>>2]=1;F[d+76>>2]=-1;F[d+44>>2]=6492;a=d+96|0;break c}if((b|0)!=6){break b}b=F[c+44>>2];d=na(112);F[d+4>>2]=h;c=F[e+12>>2];F[d+8>>2]=F[e+8>>2];F[d+12>>2]=c;c=F[e+20>>2];F[d+16>>2]=F[e+16>>2];F[d+20>>2]=c;F[d+24>>2]=F[e+24>>2];F[d+40>>2]=a;c=a+12|0;F[d+36>>2]=c;F[d+32>>2]=g;F[d+28>>2]=b;F[d+68>>2]=a;F[d- -64>>2]=c;F[d+60>>2]=g;F[d+56>>2]=b;F[d+48>>2]=0;F[d+52>>2]=0;F[d>>2]=6932;F[d+88>>2]=1065353216;F[d+92>>2]=-1;F[d+80>>2]=-1;F[d+84>>2]=-1;F[d+72>>2]=1;F[d+76>>2]=-1;F[d+44>>2]=7352;a=d+96|0}F[a>>2]=0;F[a+4>>2]=0;D[a+5|0]=0;D[a+6|0]=0;D[a+7|0]=0;D[a+8|0]=0;D[a+9|0]=0;D[a+10|0]=0;D[a+11|0]=0;D[a+12|0]=0}if(d){break a}}d=na(28);F[d+4>>2]=i;a=F[e+12>>2];F[d+8>>2]=F[e+8>>2];F[d+12>>2]=a;a=F[e+20>>2];F[d+16>>2]=F[e+16>>2];F[d+20>>2]=a;F[d+24>>2]=F[e+24>>2];F[d>>2]=7764}aa=e+32|0;return d|0}function Nc(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0;k=aa-16|0;aa=k;F[k+8>>2]=c;e=F[a+12>>2];d=F[a+8>>2];f=e-d>>2;a:{if((f|0)>(b|0)){break a}h=b+1|0;if(h>>>0>f>>>0){f=h-f|0;g=F[a+16>>2];d=F[a+12>>2];if(f>>>0<=g-d>>2>>>0){if(f){e=d;d=f<<2;d=pa(e,0,d)+d|0}F[a+12>>2]=d;break a}b:{c:{d:{h=F[a+8>>2];i=d-h>>2;e=i+f|0;if(e>>>0<1073741824){g=g-h|0;l=g>>1;g=g>>>0>=2147483644?1073741823:e>>>0>>0?l:e;if(g){if(g>>>0>=1073741824){break d}j=na(g<<2)}e=(i<<2)+j|0;i=f<<2;f=pa(e,0,i);i=f+i|0;g=(g<<2)+j|0;if((d|0)==(h|0)){break c}while(1){d=d-4|0;f=F[d>>2];F[d>>2]=0;e=e-4|0;F[e>>2]=f;if((d|0)!=(h|0)){continue}break}F[a+16>>2]=g;f=F[a+12>>2];F[a+12>>2]=i;d=F[a+8>>2];F[a+8>>2]=e;if((d|0)==(f|0)){break b}while(1){f=f-4|0;e=F[f>>2];F[f>>2]=0;if(e){Aa(e)}if((d|0)!=(f|0)){continue}break}break b}qa();v()}sa();v()}F[a+16>>2]=g;F[a+12>>2]=i;F[a+8>>2]=f}if(d){ma(d)}break a}if(f>>>0<=h>>>0){break a}d=d+(h<<2)|0;if((d|0)!=(e|0)){while(1){e=e-4|0;c=F[e>>2];F[e>>2]=0;if(c){Aa(c)}if((d|0)!=(e|0)){continue}break}c=F[k+8>>2]}F[a+12>>2]=d}e:{f:{d=F[c+56>>2];g:{if((d|0)>4){break g}e=L(d,12)+a|0;d=F[e+24>>2];if((d|0)!=F[e+28>>2]){F[d>>2]=b;F[e+24>>2]=d+4;break g}h=F[e+20>>2];f=d-h|0;j=f>>2;d=j+1|0;if(d>>>0>=1073741824){break f}g=f>>1;g=f>>>0>=2147483644?1073741823:d>>>0>>0?g:d;if(g){if(g>>>0>=1073741824){break e}d=na(g<<2)}else{d=0}j=d+(j<<2)|0;F[j>>2]=b;if((f|0)>0){oa(d,h,f)}F[e+20>>2]=d;F[e+24>>2]=j+4;F[e+28>>2]=d+(g<<2);if(!h){break g}ma(h)}F[c+60>>2]=b;a=F[a+8>>2];F[k+8>>2]=0;b=a+(b<<2)|0;a=F[b>>2];F[b>>2]=c;if(a){Aa(a)}a=F[k+8>>2];F[k+8>>2]=0;if(a){Aa(a)}aa=k+16|0;return}qa();v()}sa();v()}function _c(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0;h=aa-80|0;aa=h;a:{if(!Vb(1,h+76|0,b)){break a}i=F[h+76>>2];if(!i){break a}d=F[b+8>>2];c=F[b+16>>2];d=gi(d-c|0,F[b+12>>2]-(F[b+20>>2]+(c>>>0>d>>>0)|0)|0,5,0);c=ba;if(d>>>0>>0&(c|0)<=0|(c|0)<0){break a}c=F[a+4>>2];d=F[a+8>>2]-c>>2;b:{if(d>>>0>>0){ra(a+4|0,i-d|0);break b}if(d>>>0<=i>>>0){break b}F[a+8>>2]=c+(i<<2)}q=a+16|0;j=F[a+32>>2];k=1;while(1){c:{e=F[b+12>>2];c=e;d=F[b+20>>2];n=F[b+8>>2];m=F[b+16>>2];if((c|0)<=(d|0)&n>>>0<=m>>>0|(c|0)<(d|0)){break c}o=F[b>>2];r=G[o+m|0];c=d;f=m+1|0;c=f?c:c+1|0;F[b+16>>2]=f;F[b+20>>2]=c;if((c|0)>=(e|0)&f>>>0>=n>>>0|(c|0)>(e|0)){break c}f=G[f+o|0];c=d;g=m+2|0;c=g>>>0<2?c+1|0:c;F[b+16>>2]=g;F[b+20>>2]=c;if((c|0)>=(e|0)&g>>>0>=n>>>0|(c|0)>(e|0)){break c}g=G[g+o|0];c=d;p=m+3|0;c=p>>>0<3?c+1|0:c;F[b+16>>2]=p;F[b+20>>2]=c;if((c|0)>=(e|0)&p>>>0>=n>>>0|(c|0)>(e|0)){break c}e=G[p+o|0];c=d;d=m+4|0;c=d>>>0<4?c+1|0:c;F[b+16>>2]=d;F[b+20>>2]=c;if(!g|((f-12&255)>>>0<245|r>>>0>4)){break c}c=mb(h+8|0);e=(e|0)!=0;d=f-1|0;if(d>>>0<=10){d=F[(d<<2)+10148>>2]}else{d=-1}d=L(d,g);ac(c,r,g,f,e,d,d>>31);if(!Vb(1,h+4|0,b)){break c}f=F[h+4>>2];F[h+68>>2]=f;d=$b(na(96),c);ca[F[F[j>>2]+8>>2]](j,F[j+12>>2]-F[j+8>>2]>>2,d);d=(F[j+12>>2]-F[j+8>>2]>>2)-1|0;g=d<<2;F[F[g+F[j+8>>2]>>2]+60>>2]=f;F[F[a+4>>2]+(l<<2)>>2]=d;k=F[a+16>>2];c=F[a+20>>2]-k>>2;d:{if((c|0)>(d|0)){break d}F[h>>2]=-1;d=d+1|0;if(d>>>0>c>>>0){xa(q,d-c|0,h);k=F[q>>2];break d}if(c>>>0<=d>>>0){break d}F[a+20>>2]=(d<<2)+k}F[g+k>>2]=l;l=l+1|0;k=l>>>0>>0;if((i|0)!=(l|0)){continue}}break}l=!k}aa=h+80|0;return l&1}function Mf(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0;i=c;d=a;a:{if(F[a+12>>2]==(b|0)){break a}a=b;b=F[d+4>>2];e=F[d>>2];if((b|0)!=(e|0)){while(1){c=b-12|0;if(D[b-1|0]<0){ma(F[c>>2])}b=c;if((e|0)!=(b|0)){continue}break}}F[d+12>>2]=a;F[d+4>>2]=e;c=F[a>>2];j=a+4|0;if((c|0)==(j|0)){break a}while(1){a=F[d+4>>2];b:{if((a|0)!=F[d+8>>2]){c:{if(D[c+27|0]>=0){b=F[c+20>>2];F[a>>2]=F[c+16>>2];F[a+4>>2]=b;F[a+8>>2]=F[c+24>>2];break c}ta(a,F[c+16>>2],F[c+20>>2])}F[d+4>>2]=a+12;break b}g=0;d:{e:{f:{e=F[d+4>>2];a=F[d>>2];f=(e-a|0)/12|0;b=f+1|0;if(b>>>0<357913942){h=(F[d+8>>2]-a|0)/12|0;k=h<<1;b=h>>>0>=178956970?357913941:b>>>0>>0?k:b;if(b){if(b>>>0>=357913942){break f}g=na(L(b,12))}h=L(b,12);b=L(f,12)+g|0;g:{if(D[c+27|0]>=0){f=F[c+20>>2];F[b>>2]=F[c+16>>2];F[b+4>>2]=f;F[b+8>>2]=F[c+24>>2];break g}ta(b,F[c+16>>2],F[c+20>>2]);e=F[d+4>>2];a=F[d>>2]}g=g+h|0;f=b+12|0;if((a|0)==(e|0)){break e}while(1){e=e-12|0;h=F[e+4>>2];b=b-12|0;F[b>>2]=F[e>>2];F[b+4>>2]=h;F[b+8>>2]=F[e+8>>2];F[e>>2]=0;F[e+4>>2]=0;F[e+8>>2]=0;if((a|0)!=(e|0)){continue}break}F[d+8>>2]=g;a=F[d+4>>2];F[d+4>>2]=f;e=F[d>>2];F[d>>2]=b;if((a|0)==(e|0)){break d}while(1){b=a-12|0;if(D[a-1|0]<0){ma(F[b>>2])}a=b;if((b|0)!=(e|0)){continue}break}break d}qa();v()}sa();v()}F[d+8>>2]=g;F[d+4>>2]=f;F[d>>2]=b}if(e){ma(e)}}b=F[c+4>>2];h:{if(b){while(1){a=b;b=F[b>>2];if(b){continue}break h}}while(1){a=F[c+8>>2];b=F[a>>2]!=(c|0);c=a;if(b){continue}break}}c=a;if((j|0)!=(a|0)){continue}break}}a=0;i:{if((i|0)<0){break i}b=F[d>>2];if((F[d+4>>2]-b|0)/12>>>0<=i>>>0){break i}a=b+L(i,12)|0;a=D[a+11|0]<0?F[a>>2]:a}return a|0}function yd(a,b){var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0;i=aa-16|0;aa=i;F[i>>2]=b;g=-1;a:{if((b|0)==-1){F[i+4>>2]=-1;break a}c=b+1|0;F[i+4>>2]=(c>>>0)%3|0?c:b-2|0;if((b>>>0)%3|0){g=b-1|0;break a}g=b+2|0}F[i+8>>2]=g;n=(b>>>0)/3|0;b:{c:{d:{while(1){e:{f:{k=F[(l<<2)+i>>2];if((k|0)!=-1){c=F[F[F[a+8>>2]+12>>2]+(k<<2)>>2];if((c|0)!=-1){break f}}g=0;c=F[a+216>>2];if((c|0)==F[a+220>>2]){break e}while(1){f=L(g,144)+c|0;c=F[f+136>>2];d=F[f+140>>2];g:{if(c>>>0>>0){F[c>>2]=k;F[f+136>>2]=c+4;break g}h=F[f+132>>2];j=c-h|0;e=j>>2;c=e+1|0;if(c>>>0>=1073741824){break d}m=e<<2;d=d-h|0;e=d>>1;d=d>>>0>=2147483644?1073741823:c>>>0>>0?e:c;if(d){if(d>>>0>=1073741824){break c}c=na(d<<2)}else{c=0}e=m+c|0;F[e>>2]=k;if((j|0)>0){oa(c,h,j)}F[f+132>>2]=c;F[f+136>>2]=e+4;F[f+140>>2]=c+(d<<2);if(!h){break g}ma(h)}g=g+1|0;c=F[a+216>>2];if(g>>>0<(F[a+220>>2]-c|0)/144>>>0){continue}break}break e}if((b|0)==-1|(c>>>0)/3>>>0>>0){break e}g=0;if(F[a+220>>2]==F[a+216>>2]){break e}while(1){h:{if(!za(F[a+368>>2]+(g<<4)|0)){break h}f=F[a+216>>2]+L(g,144)|0;c=F[f+136>>2];d=F[f+140>>2];if(c>>>0>>0){F[c>>2]=k;F[f+136>>2]=c+4;break h}h=F[f+132>>2];j=c-h|0;e=j>>2;c=e+1|0;if(c>>>0>=1073741824){break b}m=e<<2;d=d-h|0;e=d>>1;d=d>>>0>=2147483644?1073741823:c>>>0>>0?e:c;if(d){if(d>>>0>=1073741824){break c}c=na(d<<2)}else{c=0}e=m+c|0;F[e>>2]=k;if((j|0)>0){oa(c,h,j)}F[f+132>>2]=c;F[f+136>>2]=e+4;F[f+140>>2]=c+(d<<2);if(!h){break h}ma(h)}g=g+1|0;if(g>>>0<(F[a+220>>2]-F[a+216>>2]|0)/144>>>0){continue}break}}l=l+1|0;if((l|0)!=3){continue}break}aa=i+16|0;return 1}qa();v()}sa();v()}qa();v()}function uf(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0;m=aa-16|0;aa=m;k=F[b+80>>2];b=G[c+24|0];a=L(k,b);a:{b:{c:{d:{e=F[c+28>>2];if(!(!G[c+84|0]|(e|0)!=1&(e|0)!=2)){b=F[c+48>>2];c=F[F[c>>2]>>2];F[m+8>>2]=0;F[m>>2]=0;F[m+4>>2]=0;if(a){if((a|0)<0){break d}g=na(a);h=oa(g,b+c|0,a)+a|0}a=F[d>>2];if(a){F[d+4>>2]=a;ma(a)}F[d+8>>2]=h;F[d+4>>2]=h;F[d>>2]=g;a=1;break a}if(b){g=na(b);pa(g,0,b)}e:{f=F[d+4>>2];e=F[d>>2];j=f-e|0;f:{if(j>>>0>>0){l=a-j|0;i=F[d+8>>2];if(l>>>0<=i-f>>>0){n=d,o=pa(f,0,l)+l|0,F[n+4>>2]=o;break f}if((a|0)<0){break e}f=i-e|0;i=f<<1;i=f>>>0>=1073741823?2147483647:a>>>0>>0?i:a;f=na(i);pa(f+j|0,0,l);if((j|0)>0){oa(f,e,j)}F[d+8>>2]=f+i;F[d+4>>2]=a+f;F[d>>2]=f;if(!e){break f}ma(e);break f}if(a>>>0>=j>>>0){break f}F[d+4>>2]=a+e}if(!k){b=0;break c}if(!b){a=0;b=1;while(1){if(!Db(c,G[c+84|0]?a:F[F[c+68>>2]+(a<<2)>>2],D[c+24|0],g)){break c}a=a+1|0;b=k>>>0>a>>>0;if((a|0)!=(k|0)){continue}break}break c}l=b&252;j=b&3;i=b>>>0<4;b=1;e=0;while(1){if(!Db(c,G[c+84|0]?e:F[F[c+68>>2]+(e<<2)>>2],D[c+24|0],g)){break c}b=0;a=0;f=0;if(!i){while(1){D[F[d>>2]+h|0]=G[a+g|0];D[(F[d>>2]+h|0)+1|0]=G[(a|1)+g|0];D[(F[d>>2]+h|0)+2|0]=G[(a|2)+g|0];D[(F[d>>2]+h|0)+3|0]=G[(a|3)+g|0];a=a+4|0;h=h+4|0;f=f+4|0;if((l|0)!=(f|0)){continue}break}}if(j){while(1){D[F[d>>2]+h|0]=G[a+g|0];a=a+1|0;h=h+1|0;b=b+1|0;if((j|0)!=(b|0)){continue}break}}e=e+1|0;b=k>>>0>e>>>0;if((e|0)!=(k|0)){continue}break}a=e>>>0>=k>>>0;break b}qa();v()}qa();v()}a=b^1;if(!g){break a}}ma(g)}aa=m+16|0;return a&1}function tf(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0;m=aa-16|0;aa=m;k=F[b+80>>2];b=G[c+24|0];a=L(k,b);a:{b:{c:{d:{e=F[c+28>>2];if(!(!G[c+84|0]|(e|0)!=1&(e|0)!=2)){b=F[c+48>>2];c=F[F[c>>2]>>2];F[m+8>>2]=0;F[m>>2]=0;F[m+4>>2]=0;if(a){if((a|0)<0){break d}g=na(a);h=oa(g,b+c|0,a)+a|0}a=F[d>>2];if(a){F[d+4>>2]=a;ma(a)}F[d+8>>2]=h;F[d+4>>2]=h;F[d>>2]=g;a=1;break a}if(b){g=na(b);pa(g,0,b)}e:{f=F[d+4>>2];e=F[d>>2];j=f-e|0;f:{if(j>>>0>>0){l=a-j|0;i=F[d+8>>2];if(l>>>0<=i-f>>>0){n=d,o=pa(f,0,l)+l|0,F[n+4>>2]=o;break f}if((a|0)<0){break e}f=i-e|0;i=f<<1;i=f>>>0>=1073741823?2147483647:a>>>0>>0?i:a;f=na(i);pa(f+j|0,0,l);if((j|0)>0){oa(f,e,j)}F[d+8>>2]=f+i;F[d+4>>2]=a+f;F[d>>2]=f;if(!e){break f}ma(e);break f}if(a>>>0>=j>>>0){break f}F[d+4>>2]=a+e}if(!k){b=0;break c}if(!b){a=0;b=1;while(1){if(!Cb(c,G[c+84|0]?a:F[F[c+68>>2]+(a<<2)>>2],D[c+24|0],g)){break c}a=a+1|0;b=k>>>0>a>>>0;if((a|0)!=(k|0)){continue}break}break c}l=b&252;j=b&3;i=b>>>0<4;b=1;e=0;while(1){if(!Cb(c,G[c+84|0]?e:F[F[c+68>>2]+(e<<2)>>2],D[c+24|0],g)){break c}b=0;a=0;f=0;if(!i){while(1){D[F[d>>2]+h|0]=G[a+g|0];D[(F[d>>2]+h|0)+1|0]=G[(a|1)+g|0];D[(F[d>>2]+h|0)+2|0]=G[(a|2)+g|0];D[(F[d>>2]+h|0)+3|0]=G[(a|3)+g|0];a=a+4|0;h=h+4|0;f=f+4|0;if((l|0)!=(f|0)){continue}break}}if(j){while(1){D[F[d>>2]+h|0]=G[a+g|0];a=a+1|0;h=h+1|0;b=b+1|0;if((j|0)!=(b|0)){continue}break}}e=e+1|0;b=k>>>0>e>>>0;if((e|0)!=(k|0)){continue}break}a=e>>>0>=k>>>0;break b}qa();v()}qa();v()}a=b^1;if(!g){break a}}ma(g)}aa=m+16|0;return a&1}function zd(a,b){var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0;h=aa-16|0;aa=h;m=-1;a:{b:{c:{if(!Ga(1,h+12|0,b)){break c}k=F[h+12>>2];if(k){c=F[a+8>>2];if((F[c+4>>2]-F[c>>2]>>2>>>0)/3>>>0>>0){break c}while(1){if(!Ga(1,h+8|0,b)){break c}c=F[h+8>>2];if(!Ga(1,h+8|0,b)){break c}e=c+e|0;c=F[h+8>>2];if(e>>>0>>0){break c}f=e-c|0;c=F[a+40>>2];d:{if((c|0)!=F[a+44>>2]){F[c+4>>2]=e;F[c>>2]=f;F[a+40>>2]=c+12;k=F[h+12>>2];break d}d=F[a+36>>2];i=c-d|0;g=(i|0)/12|0;c=g+1|0;if(c>>>0>=357913942){break b}j=g<<1;j=g>>>0>=178956970?357913941:c>>>0>>0?j:c;if(j){if(j>>>0>=357913942){break a}c=na(L(j,12))}else{c=0}g=c+L(g,12)|0;F[g+4>>2]=e;F[g>>2]=f;f=g+L((i|0)/-12|0,12)|0;if((i|0)>0){oa(f,d,i)}F[a+44>>2]=c+L(j,12);F[a+40>>2]=g+12;F[a+36>>2]=f;if(!d){break d}ma(d)}l=l+1|0;if(l>>>0>>0){continue}break}e=0;fc(b,0,0);if(k){while(1){c=G[b+36|0];d=H[F[a+4>>2]+36>>1];e:{f:{if(((d<<8|d>>>8)&65535)>>>0<=513){if(!c){break e}f=0;d=F[b+32>>2];l=d>>>3|0;i=F[b+24>>2];c=l+i|0;g=F[b+28>>2];g:{if(c>>>0>=g>>>0){c=d;break g}f=G[c|0];c=d+1|0;F[b+32>>2]=c;l=c>>>3|0;f=f>>>(d&7)&1}if(g>>>0>i+l>>>0){break f}break e}if(!c){break e}f=0;c=F[b+32>>2];d=F[b+24>>2]+(c>>>3|0)|0;if(d>>>0>=I[b+28>>2]){break e}f=G[d|0]>>>(c&7)&1}F[b+32>>2]=c+1}c=F[a+36>>2]+L(e,12)|0;D[c+8|0]=G[c+8|0]&254|f&1;e=e+1|0;if((k|0)!=(e|0)){continue}break}}D[b+36|0]=0;d=F[b+20>>2];a=0;c=F[b+32>>2]+7|0;a=c>>>0<7?1:a;e=a<<29|c>>>3;c=e+F[b+16>>2]|0;a=(a>>>3|0)+d|0;F[b+16>>2]=c;F[b+20>>2]=c>>>0>>0?a+1|0:a}m=F[b+16>>2]}aa=h+16|0;return m}qa();v()}sa();v()}function Kb(a,b,c,d){var e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0;k=F[b+16>>2];h=F[c+4>>2]-k|0;f=h;e=F[c>>2]-k|0;F[c>>2]=e;F[c+4>>2]=f;l=F[b+16>>2];f=f>>31;g=(f^h)-f|0;f=e>>31;m=l>>>0>=g+((f^e)-f|0)>>>0;a:{if(m){f=h;break a}b:{c:{if((e|0)>=0){g=1;j=1;if((h|0)>=0){break b}i=1;g=-1;j=-1;if(e){break c}break b}i=-1;g=-1;j=-1;if((h|0)<=0){break b}}g=(h|0)<=0?-1:1;j=i}n=L(j,l);f=(e<<1)-n|0;i=(L(g,j)|0)>=0;e=L(g,l);f=((i?0-f|0:f)+e|0)/2|0;F[c+4>>2]=f;e=(h<<1)-e|0;e=((i?0-e|0:e)+n|0)/2|0;F[c>>2]=e}d:{e:{f:{g:{h:{i:{j:{if(e){if((e|0)<0){break j}if((f|0)>=0){break i}break f}if(f){break h}j=1;g=0;f=0;i=0;break d}j=1;if((f|0)>0){break g}i=(f|0)>0?253:0;g=f;f=e;break d}g=0-f|0;f=0-e|0;i=254;break e}if((f|0)<=0){break f}}f=0-f|0;g=e;i=253;break e}g=0-e|0;i=255}F[c>>2]=f;F[c+4>>2]=g;j=0}e=F[d>>2]+f|0;h=F[b+16>>2];k:{if((e|0)>(h|0)){e=e-F[b+4>>2]|0;break k}if((0-h|0)<=(e|0)){break k}e=F[b+4>>2]+e|0}c=F[d+4>>2]+g|0;l:{if((h|0)<(c|0)){c=c-F[b+4>>2]|0;break l}if((0-h|0)<=(c|0)){break l}c=F[b+4>>2]+c|0}m:{if(j){b=c;break m}b=c;n:{switch((i&3)-1|0){case 0:b=0-e|0;e=c;break m;case 1:b=0-c|0;e=0-e|0;break m;case 2:break n;default:break m}}b=e;e=0-c|0}o:{if(m){c=b;break o}p:{q:{if((e|0)>=0){c=1;f=1;if((b|0)>=0){break p}d=1;c=-1;f=-1;if(e){break q}break p}d=-1;c=-1;f=-1;if((b|0)<=0){break p}}c=(b|0)<=0?-1:1;f=d}d=e<<1;e=L(f,h);d=d-e|0;f=(L(c,f)|0)>=0;g=f?0-d|0:d;d=L(c,h);c=(g+d|0)/2|0;b=(b<<1)-d|0;e=(e+(f?0-b|0:b)|0)/2|0}b=a;F[b>>2]=e+k;F[b+4>>2]=c+k}function rb(a,b,c,d){var e=0,f=0,g=0,h=0,i=0,j=0,k=0;i=d-c|0;if((i|0)<=0){return}a:{g=F[a+8>>2];h=F[a+4>>2];if((g-h|0)>=(i|0)){j=h-b|0;if((j|0)>=(i|0)){f=h;g=d;break a}f=h;g=c+j|0;if((g|0)!=(d|0)){e=g;while(1){D[f|0]=G[e|0];f=f+1|0;e=e+1|0;if((e|0)!=(d|0)){continue}break}}F[a+4>>2]=f;if((j|0)>0){break a}return}f=F[a>>2];e=(h-f|0)+i|0;if((e|0)>=0){j=b-f|0;g=g-f|0;k=g<<1;k=g>>>0>=1073741823?2147483647:e>>>0>>0?k:e;if(k){g=na(k)}else{g=0}e=j+g|0;if((c|0)!=(d|0)){e=oa(e,c,i)+i|0}if((j|0)>0){oa(g,f,j)}if((b|0)!=(h|0)){d=(b^-1)+h|0;f=h-b&7;if(f){c=0;while(1){D[e|0]=G[b|0];e=e+1|0;b=b+1|0;c=c+1|0;if((f|0)!=(c|0)){continue}break}}if(d>>>0>=7){while(1){D[e|0]=G[b|0];D[e+1|0]=G[b+1|0];D[e+2|0]=G[b+2|0];D[e+3|0]=G[b+3|0];D[e+4|0]=G[b+4|0];D[e+5|0]=G[b+5|0];D[e+6|0]=G[b+6|0];D[e+7|0]=G[b+7|0];e=e+8|0;b=b+8|0;if((h|0)!=(b|0)){continue}break}}f=F[a>>2]}F[a+8>>2]=g+k;F[a+4>>2]=e;F[a>>2]=g;if(f){ma(f)}return}qa();v()}e=f;d=e-i|0;if(h>>>0>d>>>0){while(1){D[e|0]=G[d|0];e=e+1|0;d=d+1|0;if(h>>>0>d>>>0){continue}break}}F[a+4>>2]=e;a=b+i|0;if((a|0)!=(f|0)){a=f-a|0;Sa(f-a|0,b,a)}if((c|0)==(g|0)){return}a=(c^-1)+g|0;f=g-c&7;b:{if(!f){e=b;break b}d=0;e=b;while(1){D[e|0]=G[c|0];e=e+1|0;c=c+1|0;d=d+1|0;if((f|0)!=(d|0)){continue}break}}if(a>>>0<7){return}while(1){D[e|0]=G[c|0];D[e+1|0]=G[c+1|0];D[e+2|0]=G[c+2|0];D[e+3|0]=G[c+3|0];D[e+4|0]=G[c+4|0];D[e+5|0]=G[c+5|0];D[e+6|0]=G[c+6|0];D[e+7|0]=G[c+7|0];e=e+8|0;c=c+8|0;if((g|0)!=(c|0)){continue}break}}function Rh(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0;F[a+8>>2]=e;m=a+32|0;h=F[m>>2];g=F[a+36>>2]-h>>2;a:{if(g>>>0>>0){ra(m,e-g|0);f=F[a+8>>2];break a}f=e;if(f>>>0>=g>>>0){break a}F[a+36>>2]=h+(e<<2);f=e}g=e>>>0>1073741823?-1:e<<2;n=pa(na(g),0,g);b:{if((f|0)<=0){break b}h=F[a+32>>2];while(1){f=i<<2;g=F[f+n>>2];j=F[a+16>>2];c:{if((g|0)>(j|0)){F[f+h>>2]=j;break c}f=f+h|0;j=F[a+12>>2];if((j|0)>(g|0)){F[f>>2]=j;break c}F[f>>2]=g}f=F[a+8>>2];i=i+1|0;if((f|0)>(i|0)){continue}break}if((f|0)<=0){break b}i=0;while(1){g=i<<2;f=g+c|0;g=F[b+g>>2]+F[g+h>>2]|0;F[f>>2]=g;d:{if((g|0)>F[a+16>>2]){g=g-F[a+20>>2]|0}else{if((g|0)>=F[a+12>>2]){break d}g=g+F[a+20>>2]|0}F[f>>2]=g}f=F[a+8>>2];i=i+1|0;if((f|0)>(i|0)){continue}break}}if(!((d|0)<=(e|0)|(f|0)<=0)){p=0-e<<2;g=e;while(1){e:{if((f|0)<=0){break e}l=g<<2;o=l+c|0;q=o+p|0;j=F[m>>2];i=0;while(1){f=i<<2;h=F[f+q>>2];k=F[a+16>>2];f:{if((h|0)>(k|0)){F[f+j>>2]=k;break f}f=f+j|0;k=F[a+12>>2];if((k|0)>(h|0)){F[f>>2]=k;break f}F[f>>2]=h}f=F[a+8>>2];i=i+1|0;if((f|0)>(i|0)){continue}break}i=0;if((f|0)<=0){break e}l=b+l|0;while(1){h=i<<2;f=h+o|0;h=F[h+l>>2]+F[h+j>>2]|0;F[f>>2]=h;g:{if((h|0)>F[a+16>>2]){h=h-F[a+20>>2]|0}else{if((h|0)>=F[a+12>>2]){break g}h=h+F[a+20>>2]|0}F[f>>2]=h}f=F[a+8>>2];i=i+1|0;if((f|0)>(i|0)){continue}break}}g=e+g|0;if((g|0)<(d|0)){continue}break}}ma(n);return 1}function vf(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0;a=0;i=F[b+80>>2];e=G[c+24|0];g=L(i,e);a:{if(!e){break a}j=e<<2;a=na(j);b=a;k=e&7;if(k){b=a;while(1){F[b>>2]=-1073741824;b=b+4|0;f=f+1|0;if((k|0)!=(f|0)){continue}break}}if((e-1&1073741823)>>>0<7){break a}f=a+j|0;while(1){F[b+24>>2]=-1073741824;F[b+28>>2]=-1073741824;F[b+16>>2]=-1073741824;F[b+20>>2]=-1073741824;F[b+8>>2]=-1073741824;F[b+12>>2]=-1073741824;F[b>>2]=-1073741824;F[b+4>>2]=-1073741824;b=b+32|0;if((f|0)!=(b|0)){continue}break}}f=F[d>>2];b=F[d+4>>2]-f>>2;b:{if(b>>>0>>0){ra(d,g-b|0);break b}if(b>>>0<=g>>>0){break b}F[d+4>>2]=f+(g<<2)}c:{d:{e:{if(!i){break e}if(!e){b=0;h=1;while(1){if(!nb(c,G[c+84|0]?b:F[F[c+68>>2]+(b<<2)>>2],D[c+24|0],a)){break e}b=b+1|0;h=i>>>0>b>>>0;if((b|0)!=(i|0)){continue}break}break e}n=e&252;j=e&3;f=0;o=e>>>0<4;h=1;while(1){if(!nb(c,G[c+84|0]?l:F[F[c+68>>2]+(l<<2)>>2],D[c+24|0],a)){break e}k=F[d>>2];m=0;b=0;h=0;if(!o){while(1){e=k+(f<<2)|0;g=b<<2;J[e>>2]=J[g+a>>2];J[e+4>>2]=J[(g|4)+a>>2];J[e+8>>2]=J[(g|8)+a>>2];J[e+12>>2]=J[(g|12)+a>>2];b=b+4|0;f=f+4|0;h=h+4|0;if((n|0)!=(h|0)){continue}break}}if(j){while(1){J[k+(f<<2)>>2]=J[(b<<2)+a>>2];b=b+1|0;f=f+1|0;m=m+1|0;if((j|0)!=(m|0)){continue}break}}l=l+1|0;h=l>>>0>>0;if((i|0)!=(l|0)){continue}break}break d}if(!a){break c}}ma(a)}return(h^-1)&1}function mc(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0;j=aa-16|0;aa=j;c=F[b+20>>2];d=F[b+16>>2];g=d+4|0;c=g>>>0<4?c+1|0:c;e=F[b+12>>2];a:{if((e|0)<=(c|0)&g>>>0>I[b+8>>2]|(c|0)>(e|0)){break a}d=d+F[b>>2]|0;d=G[d|0]|G[d+1|0]<<8|(G[d+2|0]<<16|G[d+3|0]<<24);F[b+16>>2]=g;F[b+20>>2]=c;if((d|0)<0){break a}Pa(a+76|0,d);c=j;F[c>>2]=0;F[c+4>>2]=0;D[c+5|0]=0;D[c+6|0]=0;D[c+7|0]=0;D[c+8|0]=0;D[c+9|0]=0;D[c+10|0]=0;D[c+11|0]=0;D[c+12|0]=0;b:{if(!Da(c,b)){break b}if(d){e=1;while(1){f=1<>2]+(h>>>3&536870908)|0;e=e^i;if(e&1){f=F[g>>2]&(f^-1)}else{f=f|F[g>>2]}e=e^1;F[g>>2]=f;h=h+1|0;if((d|0)!=(h|0)){continue}break}}h=0;d=F[b+12>>2];g=d;c=F[b+20>>2];e=c;f=F[b+16>>2];i=f+4|0;c=i>>>0<4?c+1|0:c;k=F[b+8>>2];if(k>>>0>>0&(c|0)>=(d|0)|(c|0)>(d|0)){break b}l=F[b>>2];d=l+f|0;d=G[d|0]|G[d+1|0]<<8|(G[d+2|0]<<16|G[d+3|0]<<24);F[b+16>>2]=i;F[b+20>>2]=c;c=e;e=f+8|0;c=e>>>0<8?c+1|0:c;f=e;e=c;if(f>>>0>k>>>0&(c|0)>=(g|0)|(c|0)>(g|0)){break b}c=i+l|0;c=G[c|0]|G[c+1|0]<<8|(G[c+2|0]<<16|G[c+3|0]<<24);F[b+16>>2]=f;F[b+20>>2]=e;if((c|0)<(d|0)){break b}F[a+16>>2]=c;F[a+12>>2]=d;b=(c>>31)-((d>>31)+(c>>>0>>0)|0)|0;c=c-d|0;if(!b&c>>>0>2147483646|b){break b}h=1;b=c+1|0;F[a+20>>2]=b;c=b>>>1|0;F[a+24>>2]=c;F[a+28>>2]=0-c;if(b&1){break b}F[a+24>>2]=c-1}}aa=j+16|0;return h|0}function qf(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0;k=aa-16|0;aa=k;i=F[b+80>>2];b=G[c+24|0];a=L(i,b);a:{b:{c:{d:{e=F[c+28>>2];if(!(!G[c+84|0]|(e|0)!=5&(e|0)!=6)){b=F[c+48>>2];c=F[F[c>>2]>>2];F[k+8>>2]=0;F[k>>2]=0;F[k+4>>2]=0;if(a){if((a|0)<0){break d}a=a<<2;f=na(a);g=oa(f,b+c|0,a)+a|0}a=F[d>>2];if(a){F[d+4>>2]=a;ma(a)}F[d+8>>2]=g;F[d+4>>2]=g;F[d>>2]=f;a=1;break a}if(b){e=b<<2;f=na(e);pa(f,0,e)}j=F[d>>2];e=F[d+4>>2]-j>>2;e:{if(e>>>0>>0){ra(d,a-e|0);break e}if(a>>>0>=e>>>0){break e}F[d+4>>2]=j+(a<<2)}if(!i){break c}if(!b){a=0;h=1;while(1){if(!yb(c,G[c+84|0]?a:F[F[c+68>>2]+(a<<2)>>2],D[c+24|0],f)){break c}a=a+1|0;h=i>>>0>a>>>0;if((a|0)!=(i|0)){continue}break}break c}o=b&252;m=b&3;p=b>>>0<4;h=1;b=0;while(1){if(!yb(c,G[c+84|0]?b:F[F[c+68>>2]+(b<<2)>>2],D[c+24|0],f)){break c}n=F[d>>2];l=0;a=0;h=0;if(!p){while(1){e=(g<<2)+n|0;j=a<<2;F[e>>2]=F[j+f>>2];F[e+4>>2]=F[(j|4)+f>>2];F[e+8>>2]=F[(j|8)+f>>2];F[e+12>>2]=F[(j|12)+f>>2];a=a+4|0;g=g+4|0;h=h+4|0;if((o|0)!=(h|0)){continue}break}}if(m){while(1){F[(g<<2)+n>>2]=F[(a<<2)+f>>2];a=a+1|0;g=g+1|0;l=l+1|0;if((l|0)!=(m|0)){continue}break}}b=b+1|0;h=i>>>0>b>>>0;if((b|0)!=(i|0)){continue}break}a=b>>>0>=i>>>0;break b}qa();v()}a=!h;if(!f){break a}}ma(f)}aa=k+16|0;return a&1}function bd(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0;k=aa-16|0;aa=k;i=F[b+80>>2];b=G[c+24|0];a=L(i,b);a:{b:{c:{d:{e=F[c+28>>2];if(!(!G[c+84|0]|(e|0)!=5&(e|0)!=6)){b=F[c+48>>2];c=F[F[c>>2]>>2];F[k+8>>2]=0;F[k>>2]=0;F[k+4>>2]=0;if(a){if((a|0)<0){break d}a=a<<2;f=na(a);g=oa(f,b+c|0,a)+a|0}a=F[d>>2];if(a){F[d+4>>2]=a;ma(a)}F[d+8>>2]=g;F[d+4>>2]=g;F[d>>2]=f;a=1;break a}if(b){e=b<<2;f=na(e);pa(f,0,e)}j=F[d>>2];e=F[d+4>>2]-j>>2;e:{if(e>>>0>>0){ra(d,a-e|0);break e}if(a>>>0>=e>>>0){break e}F[d+4>>2]=j+(a<<2)}if(!i){break c}if(!b){a=0;h=1;while(1){if(!zb(c,G[c+84|0]?a:F[F[c+68>>2]+(a<<2)>>2],D[c+24|0],f)){break c}a=a+1|0;h=i>>>0>a>>>0;if((a|0)!=(i|0)){continue}break}break c}o=b&252;m=b&3;p=b>>>0<4;h=1;b=0;while(1){if(!zb(c,G[c+84|0]?b:F[F[c+68>>2]+(b<<2)>>2],D[c+24|0],f)){break c}n=F[d>>2];l=0;a=0;h=0;if(!p){while(1){e=(g<<2)+n|0;j=a<<2;F[e>>2]=F[j+f>>2];F[e+4>>2]=F[(j|4)+f>>2];F[e+8>>2]=F[(j|8)+f>>2];F[e+12>>2]=F[(j|12)+f>>2];a=a+4|0;g=g+4|0;h=h+4|0;if((o|0)!=(h|0)){continue}break}}if(m){while(1){F[(g<<2)+n>>2]=F[(a<<2)+f>>2];a=a+1|0;g=g+1|0;l=l+1|0;if((l|0)!=(m|0)){continue}break}}b=b+1|0;h=i>>>0>b>>>0;if((b|0)!=(i|0)){continue}break}a=b>>>0>=i>>>0;break b}qa();v()}a=!h;if(!f){break a}}ma(f)}aa=k+16|0;return a&1}function sf(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0;k=aa-16|0;aa=k;i=F[b+80>>2];b=G[c+24|0];a=L(i,b);a:{b:{c:{d:{e=F[c+28>>2];if(!(!G[c+84|0]|(e|0)!=3&(e|0)!=4)){b=F[c+48>>2];c=F[F[c>>2]>>2];F[k+8>>2]=0;F[k>>2]=0;F[k+4>>2]=0;if(a){if((a|0)<0){break d}a=a<<1;f=na(a);g=oa(f,b+c|0,a)+a|0}a=F[d>>2];if(a){F[d+4>>2]=a;ma(a)}F[d+8>>2]=g;F[d+4>>2]=g;F[d>>2]=f;a=1;break a}if(b){e=b<<1;f=na(e);pa(f,0,e)}j=F[d>>2];e=F[d+4>>2]-j>>1;e:{if(e>>>0>>0){jd(d,a-e|0);break e}if(a>>>0>=e>>>0){break e}F[d+4>>2]=j+(a<<1)}if(!i){break c}if(!b){a=0;h=1;while(1){if(!Bb(c,G[c+84|0]?a:F[F[c+68>>2]+(a<<2)>>2],D[c+24|0],f)){break c}a=a+1|0;h=i>>>0>a>>>0;if((a|0)!=(i|0)){continue}break}break c}o=b&252;m=b&3;p=b>>>0<4;h=1;b=0;while(1){if(!Bb(c,G[c+84|0]?b:F[F[c+68>>2]+(b<<2)>>2],D[c+24|0],f)){break c}n=F[d>>2];l=0;a=0;h=0;if(!p){while(1){e=(g<<1)+n|0;j=a<<1;E[e>>1]=H[j+f>>1];E[e+2>>1]=H[(j|2)+f>>1];E[e+4>>1]=H[(j|4)+f>>1];E[e+6>>1]=H[(j|6)+f>>1];a=a+4|0;g=g+4|0;h=h+4|0;if((o|0)!=(h|0)){continue}break}}if(m){while(1){E[(g<<1)+n>>1]=H[(a<<1)+f>>1];a=a+1|0;g=g+1|0;l=l+1|0;if((l|0)!=(m|0)){continue}break}}b=b+1|0;h=i>>>0>b>>>0;if((b|0)!=(i|0)){continue}break}a=b>>>0>=i>>>0;break b}qa();v()}a=!h;if(!f){break a}}ma(f)}aa=k+16|0;return a&1}function rf(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0;k=aa-16|0;aa=k;i=F[b+80>>2];b=G[c+24|0];a=L(i,b);a:{b:{c:{d:{e=F[c+28>>2];if(!(!G[c+84|0]|(e|0)!=3&(e|0)!=4)){b=F[c+48>>2];c=F[F[c>>2]>>2];F[k+8>>2]=0;F[k>>2]=0;F[k+4>>2]=0;if(a){if((a|0)<0){break d}a=a<<1;f=na(a);g=oa(f,b+c|0,a)+a|0}a=F[d>>2];if(a){F[d+4>>2]=a;ma(a)}F[d+8>>2]=g;F[d+4>>2]=g;F[d>>2]=f;a=1;break a}if(b){e=b<<1;f=na(e);pa(f,0,e)}j=F[d>>2];e=F[d+4>>2]-j>>1;e:{if(e>>>0>>0){jd(d,a-e|0);break e}if(a>>>0>=e>>>0){break e}F[d+4>>2]=j+(a<<1)}if(!i){break c}if(!b){a=0;h=1;while(1){if(!Ab(c,G[c+84|0]?a:F[F[c+68>>2]+(a<<2)>>2],D[c+24|0],f)){break c}a=a+1|0;h=i>>>0>a>>>0;if((a|0)!=(i|0)){continue}break}break c}o=b&252;m=b&3;p=b>>>0<4;h=1;b=0;while(1){if(!Ab(c,G[c+84|0]?b:F[F[c+68>>2]+(b<<2)>>2],D[c+24|0],f)){break c}n=F[d>>2];l=0;a=0;h=0;if(!p){while(1){e=(g<<1)+n|0;j=a<<1;E[e>>1]=H[j+f>>1];E[e+2>>1]=H[(j|2)+f>>1];E[e+4>>1]=H[(j|4)+f>>1];E[e+6>>1]=H[(j|6)+f>>1];a=a+4|0;g=g+4|0;h=h+4|0;if((o|0)!=(h|0)){continue}break}}if(m){while(1){E[(g<<1)+n>>1]=H[(a<<1)+f>>1];a=a+1|0;g=g+1|0;l=l+1|0;if((l|0)!=(m|0)){continue}break}}b=b+1|0;h=i>>>0>b>>>0;if((b|0)!=(i|0)){continue}break}a=b>>>0>=i>>>0;break b}qa();v()}a=!h;if(!f){break a}}ma(f)}aa=k+16|0;return a&1}function ic(a,b){var c=0,d=0,e=0,f=0,g=0;f=-1;d=-1;a:{if((b|0)==-1){break a}d=b+1|0;f=(d>>>0)%3|0?d:b-2|0;d=b-1|0;if((b>>>0)%3|0){break a}d=b+2|0}b:{c:{d:{switch(F[a+168>>2]){case 0:case 1:e=F[a+148>>2];c=1;b=F[a+156>>2];g=b+(((f|0)==-1?-1:F[F[e>>2]+(f<<2)>>2])<<2)|0;F[g>>2]=F[g>>2]+1;b=(((d|0)==-1?-1:F[F[e>>2]+(d<<2)>>2])<<2)+b|0;break c;case 5:e=F[a+148>>2];c=-1;c=((b|0)!=-1?F[F[e>>2]+(b<<2)>>2]:c)<<2;b=F[a+156>>2];c=c+b|0;F[c>>2]=F[c>>2]+1;c=(((f|0)==-1?-1:F[F[e>>2]+(f<<2)>>2])<<2)+b|0;F[c>>2]=F[c>>2]+1;c=2;b=(((d|0)==-1?-1:F[F[e>>2]+(d<<2)>>2])<<2)+b|0;break c;case 3:e=F[a+148>>2];c=-1;c=((b|0)!=-1?F[F[e>>2]+(b<<2)>>2]:c)<<2;b=F[a+156>>2];c=c+b|0;F[c>>2]=F[c>>2]+1;c=(((f|0)==-1?-1:F[F[e>>2]+(f<<2)>>2])<<2)+b|0;F[c>>2]=F[c>>2]+2;c=1;b=(((d|0)==-1?-1:F[F[e>>2]+(d<<2)>>2])<<2)+b|0;break c;case 7:break d;default:break b}}e=F[a+148>>2];c=-1;c=((b|0)!=-1?F[F[e>>2]+(b<<2)>>2]:c)<<2;b=F[a+156>>2];c=c+b|0;F[c>>2]=F[c>>2]+2;c=(((f|0)==-1?-1:F[F[e>>2]+(f<<2)>>2])<<2)+b|0;F[c>>2]=F[c>>2]+2;c=2;b=(((d|0)==-1?-1:F[F[e>>2]+(d<<2)>>2])<<2)+b|0}F[b>>2]=F[b>>2]+c}c=a;b=F[F[a+156>>2]+(((f|0)==-1?-1:F[F[F[a+148>>2]>>2]+(f<<2)>>2])<<2)>>2];d=F[a+180>>2];a=F[a+176>>2];F[c+172>>2]=(a|0)<=(b|0)?((b|0)<(d|0)?b:d)-a|0:0}function Ag(a){a=a|0;var b=0,c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0;a:{c=F[a+32>>2];e=F[c+8>>2];f=F[c+12>>2];d=F[c+20>>2];g=e;e=F[c+16>>2];b=0;b:{if((f|0)<=(d|0)&g>>>0<=e>>>0|(d|0)>(f|0)){break b}g=G[e+F[c>>2]|0];f=e+1|0;d=f?d:d+1|0;F[c+16>>2]=f;F[c+20>>2]=d;c:{if(!g){break c}while(1){if(ca[F[F[a>>2]+16>>2]](a,b)|0){b=b+1|0;if((g|0)!=(b|0)){continue}break c}break}return 0}b=F[a+8>>2];d=F[a+12>>2];if((b|0)!=(d|0)){while(1){c=F[b>>2];if(!(ca[F[F[c>>2]+8>>2]](c,a,F[a+4>>2])|0)){break a}b=b+4|0;if((d|0)!=(b|0)){continue}break}}d:{if(!g){break d}b=0;while(1){c=F[F[a+8>>2]+(b<<2)>>2];if(!(ca[F[F[c>>2]+12>>2]](c,F[a+32>>2])|0)){break a}b=b+1|0;if((g|0)!=(b|0)){continue}break}if(!g){break d}e=a+20|0;while(1){b=0;f=h<<2;c=F[f+F[a+8>>2]>>2];d=ca[F[F[c>>2]+24>>2]](c)|0;if((d|0)>0){while(1){c=F[F[a+8>>2]+f>>2];k=ca[F[F[c>>2]+20>>2]](c,b)|0;i=F[a+20>>2];j=F[a+24>>2]-i>>2;e:{if(k>>>0>>0){break e}c=k+1|0;if(c>>>0>j>>>0){ra(e,c-j|0);i=F[e>>2];break e}if(c>>>0>=j>>>0){break e}F[a+24>>2]=(c<<2)+i}F[(k<<2)+i>>2]=h;b=b+1|0;if((d|0)!=(b|0)){continue}break}}h=h+1|0;if((g|0)!=(h|0)){continue}break}}b=0;if(!(ca[F[F[a>>2]+28>>2]](a)|0)){break b}b=ca[F[F[a>>2]+32>>2]](a)|0}return b|0}return 0}function Ve(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0;Nc(a,b,c);c=F[a+84>>2];d=F[a+88>>2]-c>>2;a:{if((d|0)>(b|0)){break a}b=b+1|0;if(b>>>0>d>>>0){b:{d=b-d|0;e=F[a+92>>2];c=F[a+88>>2];if(d>>>0<=e-c>>2>>>0){c:{if(!d){break c}b=c;f=d&7;if(f){while(1){F[b>>2]=1;b=b+4|0;g=g+1|0;if((f|0)!=(g|0)){continue}break}}c=(d<<2)+c|0;if((d-1&1073741823)>>>0<7){break c}while(1){F[b+24>>2]=1;F[b+28>>2]=1;F[b+16>>2]=1;F[b+20>>2]=1;F[b+8>>2]=1;F[b+12>>2]=1;F[b>>2]=1;F[b+4>>2]=1;b=b+32|0;if((c|0)!=(b|0)){continue}break}}F[a+88>>2]=c;break b}d:{f=F[a+84>>2];j=c-f|0;c=j>>2;b=c+d|0;if(b>>>0<1073741824){e=e-f|0;h=e>>1;e=e>>>0>=2147483644?1073741823:b>>>0>>0?h:b;if(e){if(e>>>0>=1073741824){break d}i=na(e<<2)}c=(c<<2)+i|0;b=c;h=d&7;if(h){b=c;while(1){F[b>>2]=1;b=b+4|0;g=g+1|0;if((h|0)!=(g|0)){continue}break}}c=c+(d<<2)|0;if((d-1&1073741823)>>>0>=7){while(1){F[b+24>>2]=1;F[b+28>>2]=1;F[b+16>>2]=1;F[b+20>>2]=1;F[b+8>>2]=1;F[b+12>>2]=1;F[b>>2]=1;F[b+4>>2]=1;b=b+32|0;if((c|0)!=(b|0)){continue}break}}if((j|0)>0){oa(i,f,j)}F[a+92>>2]=(e<<2)+i;F[a+88>>2]=c;F[a+84>>2]=i;if(f){ma(f)}break b}qa();v()}sa();v()}return}if(b>>>0>=d>>>0){break a}F[a+88>>2]=c+(b<<2)}}function Wb(a,b,c){var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0;d=F[a+8>>2];e=F[a>>2];if(d-e>>2>>>0>=b>>>0){f=F[a+4>>2];h=f-e>>2;i=b>>>0>h>>>0?h:b;a:{if(!i){break a}d=e;g=i;j=g&7;if(j){while(1){F[d>>2]=F[c>>2];g=g-1|0;d=d+4|0;k=k+1|0;if((k|0)!=(j|0)){continue}break}}if(i>>>0<8){break a}while(1){F[d>>2]=F[c>>2];F[d+4>>2]=F[c>>2];F[d+8>>2]=F[c>>2];F[d+12>>2]=F[c>>2];F[d+16>>2]=F[c>>2];F[d+20>>2]=F[c>>2];F[d+24>>2]=F[c>>2];F[d+28>>2]=F[c>>2];d=d+32|0;g=g-8|0;if(g){continue}break}}if(b>>>0>h>>>0){b=(b-h<<2)+f|0;while(1){F[f>>2]=F[c>>2];f=f+4|0;if((b|0)!=(f|0)){continue}break}F[a+4>>2]=b;return}F[a+4>>2]=e+(b<<2);return}if(e){F[a+4>>2]=e;ma(e);F[a+8>>2]=0;F[a>>2]=0;F[a+4>>2]=0;d=0}b:{if(b>>>0>=1073741824){break b}e=d>>1;d=d>>>0>=2147483644?1073741823:b>>>0>>0?e:b;if(d>>>0>=1073741824){break b}d=d<<2;e=na(d);F[a>>2]=e;F[a+8>>2]=d+e;c=F[c>>2];d=e;g=b&7;if(g){while(1){F[d>>2]=c;d=d+4|0;f=f+1|0;if((g|0)!=(f|0)){continue}break}}e=e+(b<<2)|0;if((b-1&1073741823)>>>0>=7){while(1){F[d+28>>2]=c;F[d+24>>2]=c;F[d+20>>2]=c;F[d+16>>2]=c;F[d+12>>2]=c;F[d+8>>2]=c;F[d+4>>2]=c;F[d>>2]=c;d=d+32|0;if((e|0)!=(d|0)){continue}break}}F[a+4>>2]=e;return}qa();v()}function oa(a,b,c){var d=0,e=0,f=0;if(c>>>0>=512){$(a|0,b|0,c|0);return a}e=a+c|0;a:{if(!((a^b)&3)){b:{if(!(a&3)){c=a;break b}if(!c){c=a;break b}c=a;while(1){D[c|0]=G[b|0];b=b+1|0;c=c+1|0;if(!(c&3)){break b}if(c>>>0>>0){continue}break}}d=e&-4;c:{if(d>>>0<64){break c}f=d+-64|0;if(f>>>0>>0){break c}while(1){F[c>>2]=F[b>>2];F[c+4>>2]=F[b+4>>2];F[c+8>>2]=F[b+8>>2];F[c+12>>2]=F[b+12>>2];F[c+16>>2]=F[b+16>>2];F[c+20>>2]=F[b+20>>2];F[c+24>>2]=F[b+24>>2];F[c+28>>2]=F[b+28>>2];F[c+32>>2]=F[b+32>>2];F[c+36>>2]=F[b+36>>2];F[c+40>>2]=F[b+40>>2];F[c+44>>2]=F[b+44>>2];F[c+48>>2]=F[b+48>>2];F[c+52>>2]=F[b+52>>2];F[c+56>>2]=F[b+56>>2];F[c+60>>2]=F[b+60>>2];b=b- -64|0;c=c- -64|0;if(f>>>0>=c>>>0){continue}break}}if(c>>>0>=d>>>0){break a}while(1){F[c>>2]=F[b>>2];b=b+4|0;c=c+4|0;if(d>>>0>c>>>0){continue}break}break a}if(e>>>0<4){c=a;break a}d=e-4|0;if(d>>>0>>0){c=a;break a}c=a;while(1){D[c|0]=G[b|0];D[c+1|0]=G[b+1|0];D[c+2|0]=G[b+2|0];D[c+3|0]=G[b+3|0];b=b+4|0;c=c+4|0;if(d>>>0>=c>>>0){continue}break}}if(c>>>0>>0){while(1){D[c|0]=G[b|0];b=b+1|0;c=c+1|0;if((e|0)!=(c|0)){continue}break}}return a}function xa(a,b,c){var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0;f=F[a+8>>2];e=F[a+4>>2];if(f-e>>2>>>0>=b>>>0){a:{if(!b){break a}d=e;g=b&7;if(g){while(1){F[d>>2]=F[c>>2];d=d+4|0;h=h+1|0;if((g|0)!=(h|0)){continue}break}}e=(b<<2)+e|0;if((b-1&1073741823)>>>0<7){break a}while(1){F[d>>2]=F[c>>2];F[d+4>>2]=F[c>>2];F[d+8>>2]=F[c>>2];F[d+12>>2]=F[c>>2];F[d+16>>2]=F[c>>2];F[d+20>>2]=F[c>>2];F[d+24>>2]=F[c>>2];F[d+28>>2]=F[c>>2];d=d+32|0;if((e|0)!=(d|0)){continue}break}}F[a+4>>2]=e;return}b:{g=F[a>>2];k=e-g|0;e=k>>2;d=e+b|0;if(d>>>0<1073741824){f=f-g|0;i=f>>1;f=f>>>0>=2147483644?1073741823:d>>>0>>0?i:d;if(f){if(f>>>0>=1073741824){break b}j=na(f<<2)}e=(e<<2)+j|0;d=e;i=b&7;if(i){d=e;while(1){F[d>>2]=F[c>>2];d=d+4|0;h=h+1|0;if((i|0)!=(h|0)){continue}break}}e=e+(b<<2)|0;if((b-1&1073741823)>>>0>=7){while(1){F[d>>2]=F[c>>2];F[d+4>>2]=F[c>>2];F[d+8>>2]=F[c>>2];F[d+12>>2]=F[c>>2];F[d+16>>2]=F[c>>2];F[d+20>>2]=F[c>>2];F[d+24>>2]=F[c>>2];F[d+28>>2]=F[c>>2];d=d+32|0;if((e|0)!=(d|0)){continue}break}}if((k|0)>0){oa(j,g,k)}F[a+8>>2]=(f<<2)+j;F[a+4>>2]=e;F[a>>2]=j;if(g){ma(g)}return}qa();v()}sa();v()}function qd(a){a=a|0;var b=0,c=0,d=0,e=0,f=0;F[a>>2]=8336;d=a+232|0;b=F[d+196>>2];if(b){F[d+200>>2]=b;ma(b)}c=F[d+184>>2];if(c){b=c;e=F[d+188>>2];if((b|0)!=(e|0)){while(1){b=e-12|0;f=F[b>>2];if(f){F[e-8>>2]=f;ma(f)}e=b;if((b|0)!=(c|0)){continue}break}b=F[d+184>>2]}F[d+188>>2]=c;ma(b)}b=F[d+156>>2];if(b){F[d+160>>2]=b;ma(b)}c=F[d+136>>2];F[d+136>>2]=0;if(c){e=c-4|0;b=F[e>>2];if(b){b=c+(b<<4)|0;while(1){b=b-16|0;if((c|0)!=(b|0)){continue}break}}ma(e)}rd(a+216|0);b=F[a+196>>2];if(b){F[a+200>>2]=b;ma(b)}b=F[a+184>>2];if(b){F[a+188>>2]=b;ma(b)}b=F[a+172>>2];if(b){F[a+176>>2]=b;ma(b)}b=F[a+160>>2];if(b){F[a+164>>2]=b;ma(b)}b=F[a+144>>2];if(b){while(1){c=F[b>>2];ma(b);b=c;if(b){continue}break}}b=F[a+136>>2];F[a+136>>2]=0;if(b){ma(b)}b=F[a+120>>2];if(b){ma(b)}b=F[a+108>>2];if(b){ma(b)}b=F[a+96>>2];if(b){ma(b)}b=F[a+72>>2];if(b){F[a+76>>2]=b;ma(b)}b=F[a+60>>2];if(b){ma(b)}b=F[a+48>>2];if(b){F[a+52>>2]=b;ma(b)}b=F[a+36>>2];if(b){F[a+40>>2]=b;ma(b)}b=F[a+24>>2];if(b){F[a+28>>2]=b;ma(b)}b=F[a+12>>2];if(b){F[a+16>>2]=b;ma(b)}b=F[a+8>>2];F[a+8>>2]=0;if(b){bb(b)}return a|0}function ii(a,b,c,d){var e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0;g=c;a:{b:{c:{d:{e:{f:{g:{h:{i:{j:{k:{if(b){if(!g){break k}if(!d){break j}c=O(d)-O(b)|0;if(c>>>0<=31){break i}break c}if((d|0)==1|d>>>0>1){break c}a=(a>>>0)/(g>>>0)|0;ba=0;break a}if(!a){break h}if(!d){break g}if(d-1&d){break g}a=b>>>li(d)|0;ba=0;break a}if(!(g-1&g)){break f}h=(O(g)+33|0)-O(b)|0;e=0-h|0;break d}h=c+1|0;e=63-c|0;break d}a=(b>>>0)/(d>>>0)|0;ba=0;break a}c=O(d)-O(b)|0;if(c>>>0<31){break e}break c}if((g|0)==1){break b}c=li(g);d=c&31;if((c&63)>>>0>=32){c=0;a=b>>>d|0}else{c=b>>>d|0;a=((1<>>d}ba=c;break a}h=c+1|0;e=63-c|0}c=h&63;f=c&31;if(c>>>0>=32){c=0;i=b>>>f|0}else{c=b>>>f|0;i=((1<>>f}f=c;c=e&63;e=c&31;if(c>>>0>=32){c=a<>>32-e|b<>>31;f=f<<1|i>>>31;j=m-(f+(c>>>0>e>>>0)|0)>>31;k=g&j;i=c-k|0;f=f-((d&j)+(c>>>0>>0)|0)|0;b=b<<1|a>>>31;a=l|a<<1;l=j&1;h=h-1|0;if(h){continue}break}}ba=b<<1|a>>>31;a=l|a<<1;break a}a=0;b=0}ba=b}return a}function pb(a,b){var c=0,d=0,e=0;c=(a|0)==(b|0);D[b+12|0]=c;a:{if(c){break a}while(1){d=F[b+8>>2];if(G[d+12|0]){break a}b:{c=F[d+8>>2];e=F[c>>2];if((e|0)==(d|0)){e=F[c+4>>2];if(!(!e|G[e+12|0])){break b}c:{if(F[d>>2]==(b|0)){b=d;break c}b=F[d+4>>2];a=F[b>>2];F[d+4>>2]=a;if(a){F[a+8>>2]=d;c=F[d+8>>2]}F[b+8>>2]=c;a=F[d+8>>2];F[((F[a>>2]!=(d|0))<<2)+a>>2]=b;F[b>>2]=d;F[d+8>>2]=b;c=F[b+8>>2];d=F[c>>2]}D[b+12|0]=1;D[c+12|0]=0;a=F[d+4>>2];F[c>>2]=a;if(a){F[a+8>>2]=c}F[d+8>>2]=F[c+8>>2];a=F[c+8>>2];F[((F[a>>2]!=(c|0))<<2)+a>>2]=d;F[d+4>>2]=c;F[c+8>>2]=d;return}if(!(G[e+12|0]|!e)){break b}d:{if(F[d>>2]!=(b|0)){b=d;break d}a=F[b+4>>2];F[d>>2]=a;if(a){F[a+8>>2]=d;c=F[d+8>>2]}F[b+8>>2]=c;a=F[d+8>>2];F[((F[a>>2]!=(d|0))<<2)+a>>2]=b;F[b+4>>2]=d;F[d+8>>2]=b;c=F[b+8>>2]}D[b+12|0]=1;D[c+12|0]=0;a=F[c+4>>2];b=F[a>>2];F[c+4>>2]=b;if(b){F[b+8>>2]=c}F[a+8>>2]=F[c+8>>2];b=F[c+8>>2];F[((F[b>>2]!=(c|0))<<2)+b>>2]=a;F[a>>2]=c;F[c+8>>2]=a;break a}D[d+12|0]=1;D[c+12|0]=(a|0)==(c|0);D[e+12|0]=1;b=c;if((c|0)!=(a|0)){continue}break}}}function ld(a,b,c,d){var e=0,f=0,g=0,h=0,i=0,j=0;a:{b:{c:{if(!b){if((d|0)<0){break a}e=F[a+4>>2];b=F[a>>2];d=e-b|0;if(c>>>0>d>>>0){g=c-d|0;f=F[a+8>>2];if(g>>>0<=f-e>>>0){i=a,j=pa(e,0,g)+g|0,F[i+4>>2]=j;break c}if((c|0)<0){break b}e=f-b|0;f=e<<1;f=e>>>0>=1073741823?2147483647:c>>>0>>0?f:c;e=na(f);pa(e+d|0,0,g);if((d|0)>0){oa(e,b,d)}F[a+8>>2]=e+f;F[a+4>>2]=c+e;F[a>>2]=e;if(!b){break c}ma(b);break c}if(c>>>0>=d>>>0){break c}F[a+4>>2]=b+c;break c}if((d|0)<0){break a}h=F[a+4>>2];g=F[a>>2];e=h-g|0;d:{if((d|0)<=0&c>>>0<=e>>>0|(d|0)<0){break d}if(c>>>0>e>>>0){f=c-e|0;d=F[a+8>>2];if(f>>>0<=d-h>>>0){i=a,j=pa(h,0,f)+f|0,F[i+4>>2]=j;break d}if((c|0)<0){break b}d=d-g|0;h=d<<1;h=d>>>0>=1073741823?2147483647:c>>>0>>0?h:c;d=na(h);pa(d+e|0,0,f);if((e|0)>0){oa(d,g,e)}F[a+8>>2]=d+h;F[a+4>>2]=c+d;F[a>>2]=d;if(!g){break d}ma(g);break d}if(c>>>0>=e>>>0){break d}F[a+4>>2]=c+g}if(!c){break c}Sa(F[a>>2],b,c)}b=F[a+28>>2];c=F[a+24>>2]+1|0;b=c?b:b+1|0;F[a+24>>2]=c;F[a+28>>2]=b;e=1;break a}qa();v()}return e}function ve(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0;if(_c(a,b)){i=a+36|0;g=ca[F[F[a>>2]+24>>2]](a)|0;d=F[a+40>>2];e=F[a+36>>2];c=d-e>>2;a:{if(g>>>0>c>>>0){Qb(i,g-c|0);break a}if(c>>>0<=g>>>0){break a}e=e+(g<<2)|0;if((e|0)!=(d|0)){while(1){d=d-4|0;c=F[d>>2];F[d>>2]=0;if(c){ca[F[F[c>>2]+4>>2]](c)}if((d|0)!=(e|0)){continue}break}}F[a+40>>2]=e}b:{if((g|0)<=0){e=0;break b}e=1;c=F[b+20>>2];d=F[b+12>>2];f=F[b+16>>2];if((c|0)>=(d|0)&f>>>0>=I[b+8>>2]|(c|0)>(d|0)){break b}d=0;while(1){h=G[f+F[b>>2]|0];f=f+1|0;c=f?c:c+1|0;F[b+16>>2]=f;F[b+20>>2]=c;f=ca[F[F[a>>2]+48>>2]](a,h)|0;h=d<<2;j=h+F[a+36>>2]|0;c=F[j>>2];F[j>>2]=f;if(c){ca[F[F[c>>2]+4>>2]](c)}c=F[F[i>>2]+h>>2];if(!c){break b}if(!(l=c,m=ca[F[F[a>>2]+28>>2]](a)|0,n=ca[F[F[a>>2]+20>>2]](a,d)|0,k=F[F[c>>2]+8>>2],ca[k](l|0,m|0,n|0)|0)){break b}d=d+1|0;e=(g|0)>(d|0);if((d|0)==(g|0)){break b}f=F[b+16>>2];c=F[b+20>>2];h=F[b+12>>2];if(f>>>0>2]&(c|0)<=(h|0)|(c|0)<(h|0)){continue}break}}a=!e}else{a=0}return a|0}function vh(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0;c=F[b+88>>2];if(!(!c|F[c>>2]!=1)){d=F[c+8>>2];F[a+4>>2]=G[d|0]|G[d+1|0]<<8|(G[d+2|0]<<16|G[d+3|0]<<24);e=a+8|0;d=G[b+24|0];f=F[a+8>>2];g=F[a+12>>2]-f>>2;a:{if(d>>>0>g>>>0){ra(e,d-g|0);d=G[b+24|0];break a}if(d>>>0>=g>>>0){break a}F[a+12>>2]=f+(d<<2)}g=F[c+8>>2];b:{if(!d){b=4;break b}h=d&3;e=F[e>>2];c:{if(d-1>>>0<3){b=4;d=0;break c}k=d&252;d=0;b=4;while(1){f=d<<2;c=b+g|0;F[f+e>>2]=G[c|0]|G[c+1|0]<<8|(G[c+2|0]<<16|G[c+3|0]<<24);F[e+(f|4)>>2]=G[c+4|0]|G[c+5|0]<<8|(G[c+6|0]<<16|G[c+7|0]<<24);F[e+(f|8)>>2]=G[c+8|0]|G[c+9|0]<<8|(G[c+10|0]<<16|G[c+11|0]<<24);F[e+(f|12)>>2]=G[c+12|0]|G[c+13|0]<<8|(G[c+14|0]<<16|G[c+15|0]<<24);d=d+4|0;b=b+16|0;i=i+4|0;if((k|0)!=(i|0)){continue}break}}if(!h){break b}while(1){c=b+g|0;F[e+(d<<2)>>2]=G[c|0]|G[c+1|0]<<8|(G[c+2|0]<<16|G[c+3|0]<<24);d=d+1|0;b=b+4|0;j=j+1|0;if((j|0)!=(h|0)){continue}break}}d=a;a=b+g|0;F[d+20>>2]=G[a|0]|G[a+1|0]<<8|(G[a+2|0]<<16|G[a+3|0]<<24);d=1}return d|0}function Ig(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0;k=F[a+12>>2];c=F[a+68>>2];d=F[c+80>>2];D[b+84|0]=0;m=b+68|0;i=F[b+68>>2];e=F[b+72>>2]-i>>2;a:{if(e>>>0>>0){xa(m,d-e|0,9124);c=F[a+68>>2];d=F[c+80>>2];break a}if(d>>>0>=e>>>0){break a}F[b+72>>2]=i+(d<<2)}b=F[c+100>>2];e=F[c+96>>2];i=(b-e|0)/12|0;b:{if((b|0)==(e|0)){break b}n=1;k=F[k+28>>2];f=F[k>>2];if((f|0)==-1){break b}o=i>>>0<=1?1:i;c=e;b=0;while(1){g=F[c>>2];if(g>>>0>=d>>>0){break b}j=F[F[a+72>>2]+12>>2];h=F[j+(f<<2)>>2];if(h>>>0>=d>>>0){break b}f=F[m>>2];F[f+(g<<2)>>2]=h;g=k+(l<<2)|0;h=F[g+4>>2];if((h|0)==-1){break b}l=F[c+4>>2];if(l>>>0>=d>>>0){break b}h=F[(h<<2)+j>>2];if(h>>>0>=d>>>0){break b}F[f+(l<<2)>>2]=h;g=F[g+8>>2];if((g|0)==-1){break b}c=F[c+8>>2];if(c>>>0>=d>>>0){break b}j=F[(g<<2)+j>>2];if(j>>>0>=d>>>0){break b}F[f+(c<<2)>>2]=j;b=b+1|0;n=i>>>0>b>>>0;if((b|0)==(o|0)){break b}c=e+L(b,12)|0;l=L(b,3);f=F[k+(l<<2)>>2];if((f|0)!=-1){continue}break}}return(n^-1)&1}function ud(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0,g=0,h=0,i=M(0),j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0;k=aa-16|0;aa=k;if(F[c+28>>2]==9){d=F[a+4>>2];h=G[c+24|0];e=h<<2;f=na(e);l=k+8|0;F[l>>2]=1065353216;i=J[a+20>>2];d=-1<0){J[l>>2]=i/M(d|0)}o=(d|0)>0;a:{if(!o){break a}j=F[c+80>>2];if(!j){break a}if(h){p=F[F[b>>2]>>2]+F[b+48>>2]|0;t=h&254;u=h&1;b=0;while(1){m=F[a+8>>2];i=J[l>>2];d=0;n=0;if((h|0)!=1){while(1){g=d<<2;q=(b<<2)+p|0;J[g+f>>2]=M(i*M(F[q>>2]))+J[g+m>>2];g=g|4;J[g+f>>2]=M(i*M(F[q+4>>2]))+J[g+m>>2];d=d+2|0;b=b+2|0;n=n+2|0;if((t|0)!=(n|0)){continue}break}}if(u){d=d<<2;J[d+f>>2]=M(i*M(F[(b<<2)+p>>2]))+J[d+m>>2];b=b+1|0}oa(F[F[c+64>>2]>>2]+r|0,f,e);r=e+r|0;s=s+1|0;if((s|0)!=(j|0)){continue}break}break a}b=0;if((j|0)!=1){a=j&-2;d=0;while(1){oa(F[F[c+64>>2]>>2]+b|0,f,e);b=b+e|0;oa(b+F[F[c+64>>2]>>2]|0,f,e);b=b+e|0;d=d+2|0;if((a|0)!=(d|0)){continue}break}}if(!(j&1)){break a}oa(F[F[c+64>>2]>>2]+b|0,f,e)}ma(f)}aa=k+16|0;return o|0}function Yf(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0;h=F[d+80>>2];e=aa-48|0;aa=e;a=F[a+4>>2];k=a-31|0;a:{if(k>>>0<4294967267){break a}i=F[F[d>>2]>>2]+F[d+48>>2]|0;F[e+16>>2]=a;a=-1<>2]=a^-1;a=-2-a|0;F[e+24>>2]=a;F[e+32>>2]=(a|0)/2;J[e+28>>2]=M(2)/M(a|0);f=F[c>>2];if((f|0)!=F[c+4>>2]){a=0;d=0;while(1){g=F[(d<<2)+f>>2];h=e+36|0;j=F[F[b>>2]>>2];m=F[b+48>>2];f=F[b+44>>2];l=F[b+40>>2];if(!G[b+84|0]){g=F[F[b+68>>2]+(g<<2)>>2]}g=gi(l,f,g,0)+m|0;oa(h,g+j|0,l);Ic(e+16|0,h,e+12|0,e+8|0);f=a<<2;F[f+i>>2]=F[e+12>>2];F[(f|4)+i>>2]=F[e+8>>2];a=a+2|0;d=d+1|0;f=F[c>>2];if(d>>>0>2]-f>>2>>>0){continue}break}break a}if(!h){break a}d=0;a=0;while(1){j=e+36|0;c=F[F[b>>2]>>2];g=F[b+40>>2];f=F[b+48>>2]+gi(g,F[b+44>>2],G[b+84|0]?a:F[F[b+68>>2]+(a<<2)>>2],0)|0;oa(j,c+f|0,g);Ic(e+16|0,j,e+12|0,e+8|0);c=d<<2;F[c+i>>2]=F[e+12>>2];F[(c|4)+i>>2]=F[e+8>>2];d=d+2|0;a=a+1|0;if((h|0)!=(a|0)){continue}break}}aa=e+48|0;return k>>>0>4294967266|0}function Wg(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0;j=F[a+12>>2];c=F[a+108>>2];d=F[c+80>>2];D[b+84|0]=0;m=b+68|0;h=F[b+68>>2];f=F[b+72>>2]-h>>2;a:{if(f>>>0>>0){xa(m,d-f|0,9124);c=F[a+108>>2];d=F[c+80>>2];break a}if(d>>>0>=f>>>0){break a}F[b+72>>2]=h+(d<<2)}b=F[c+100>>2];f=F[c+96>>2];h=(b-f|0)/12|0;b:{if((b|0)==(f|0)){j=0;break b}n=h>>>0<=1?1:h;o=F[j>>2];c=f;b=0;j=1;while(1){e=(e<<2)+o|0;i=F[e>>2];if((i|0)==-1){break b}g=F[c>>2];if(g>>>0>=d>>>0){break b}l=F[F[a+112>>2]+12>>2];k=F[l+(i<<2)>>2];if(k>>>0>=d>>>0){break b}i=F[m>>2];F[i+(g<<2)>>2]=k;g=F[e+4>>2];if((g|0)==-1){break b}k=F[c+4>>2];if(k>>>0>=d>>>0){break b}g=F[(g<<2)+l>>2];if(g>>>0>=d>>>0){break b}F[i+(k<<2)>>2]=g;e=F[e+8>>2];if((e|0)==-1){break b}c=F[c+8>>2];if(c>>>0>=d>>>0){break b}e=F[(e<<2)+l>>2];if(e>>>0>=d>>>0){break b}F[i+(c<<2)>>2]=e;b=b+1|0;j=h>>>0>b>>>0;if((b|0)==(n|0)){break b}e=L(b,3);c=f+L(b,12)|0;if((b|0)!=1431655765){continue}break}}return(j^-1)&1}function Og(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0;j=F[a+12>>2];c=F[a+68>>2];d=F[c+80>>2];D[b+84|0]=0;m=b+68|0;h=F[b+68>>2];f=F[b+72>>2]-h>>2;a:{if(f>>>0>>0){xa(m,d-f|0,9124);c=F[a+68>>2];d=F[c+80>>2];break a}if(d>>>0>=f>>>0){break a}F[b+72>>2]=h+(d<<2)}b=F[c+100>>2];f=F[c+96>>2];h=(b-f|0)/12|0;b:{if((b|0)==(f|0)){j=0;break b}n=h>>>0<=1?1:h;o=F[j>>2];c=f;b=0;j=1;while(1){e=(e<<2)+o|0;i=F[e>>2];if((i|0)==-1){break b}g=F[c>>2];if(g>>>0>=d>>>0){break b}l=F[F[a+72>>2]+12>>2];k=F[l+(i<<2)>>2];if(k>>>0>=d>>>0){break b}i=F[m>>2];F[i+(g<<2)>>2]=k;g=F[e+4>>2];if((g|0)==-1){break b}k=F[c+4>>2];if(k>>>0>=d>>>0){break b}g=F[(g<<2)+l>>2];if(g>>>0>=d>>>0){break b}F[i+(k<<2)>>2]=g;e=F[e+8>>2];if((e|0)==-1){break b}c=F[c+8>>2];if(c>>>0>=d>>>0){break b}e=F[(e<<2)+l>>2];if(e>>>0>=d>>>0){break b}F[i+(c<<2)>>2]=e;b=b+1|0;j=h>>>0>b>>>0;if((b|0)==(n|0)){break b}e=L(b,3);c=f+L(b,12)|0;if((b|0)!=1431655765){continue}break}}return(j^-1)&1}function Ma(a,b,c){var d=0,e=0,f=0,g=0,h=0,i=0,j=0;d=(c>>>0)/3|0;i=F[(F[F[a+8>>2]+96>>2]+L(d,12)|0)+(c-L(d,3)<<2)>>2];e=F[F[a+12>>2]+4>>2];d=F[e+4>>2];a:{if((d|0)!=F[e+8>>2]){F[d>>2]=i;F[e+4>>2]=d+4;break a}b:{h=F[e>>2];g=d-h|0;j=g>>2;d=j+1|0;if(d>>>0<1073741824){f=g>>1;f=g>>>0>=2147483644?1073741823:d>>>0>>0?f:d;if(f){if(f>>>0>=1073741824){break b}d=na(f<<2)}else{d=0}j=d+(j<<2)|0;F[j>>2]=i;if((g|0)>0){oa(d,h,g)}F[e+8>>2]=d+(f<<2);F[e+4>>2]=j+4;F[e>>2]=d;if(h){ma(h)}break a}qa();v()}sa();v()}e=F[a+4>>2];d=F[e+4>>2];c:{d:{e:{if((d|0)!=F[e+8>>2]){F[d>>2]=c;F[e+4>>2]=d+4;break e}h=F[e>>2];g=d-h|0;i=g>>2;d=i+1|0;if(d>>>0>=1073741824){break d}f=g>>1;f=g>>>0>=2147483644?1073741823:d>>>0>>0?f:d;if(f){if(f>>>0>=1073741824){break c}d=na(f<<2)}else{d=0}i=d+(i<<2)|0;F[i>>2]=c;if((g|0)>0){oa(d,h,g)}F[e+8>>2]=d+(f<<2);F[e+4>>2]=i+4;F[e>>2]=d;if(!h){break e}ma(h)}a=F[a+4>>2];F[F[a+12>>2]+(b<<2)>>2]=F[a+24>>2];F[a+24>>2]=F[a+24>>2]+1;return}qa();v()}sa();v()}function Da(a,b){var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0;h=aa-16|0;aa=h;e=F[b+20>>2];c=F[b+12>>2];d=F[b+16>>2];a:{if((e|0)>=(c|0)&d>>>0>=I[b+8>>2]|(c|0)<(e|0)){break a}D[a+12|0]=G[d+F[b>>2]|0];e=F[b+20>>2];c=F[b+16>>2]+1|0;e=c?e:e+1|0;F[b+16>>2]=c;F[b+20>>2]=e;if(!Od(1,h+12|0,b)){break a}e=F[b+8>>2];i=F[b+16>>2];c=i;d=e-c|0;c=c>>>0>e>>>0;e=F[b+20>>2];f=F[b+12>>2]-(c+e|0)|0;c=F[h+12>>2];if((f|0)<=0&d>>>0>>0|(f|0)<0|(c|0)<=0){break a}d=i+F[b>>2]|0;F[a>>2]=d;b:{c:{f=c-1|0;g=f+d|0;j=G[g|0];d:{if(j>>>0<=63){F[a+4>>2]=f;g=G[g|0]&63;break d}e:{switch((j>>>6|0)-1|0){case 1:break c;case 0:break e;default:break a}}if(c>>>0<2){break a}f=c-2|0;F[a+4>>2]=f;d=d+f|0;g=G[d+1|0]<<8&16128|G[d|0]}F[a+8>>2]=g+4096;break b}if(c>>>0<3){break a}f=c-3|0;F[a+4>>2]=f;g=a;a=d+f|0;a=G[a+1|0]<<8|G[a+2|0]<<16&4128768|G[a|0];F[g+8>>2]=a+4096;if(a>>>0>1044479){break a}}a=e;d=c+i|0;a=d>>>0>>0?a+1|0:a;F[b+16>>2]=d;F[b+20>>2]=a;k=1}aa=h+16|0;return k}function Vg(a){a=a|0;var b=0,c=0,d=0,e=0,f=0,g=0,h=0;g=aa-16|0;aa=g;b=F[a+4>>2];d=F[b>>2];a:{c=F[a+12>>2];c=F[c+28>>2]-F[c+24>>2]|0;e=c>>2;b:{if(e>>>0<=F[b+8>>2]-d>>2>>>0){break b}if((c|0)<0){break a}f=F[b+4>>2];c=na(c);h=c+(e<<2)|0;e=f-d|0;f=e+c|0;if((e|0)>0){oa(c,d,e)}F[b+8>>2]=h;F[b+4>>2]=f;F[b>>2]=c;if(!d){break b}ma(d)}b=F[a+12>>2];d=F[b+28>>2];b=F[b+24>>2];F[g+12>>2]=0;b=d-b>>2;c=a+96|0;e=F[c>>2];d=F[a+100>>2]-e>>2;c:{if(b>>>0>d>>>0){xa(c,b-d|0,g+12|0);break c}if(b>>>0>=d>>>0){break c}F[a+100>>2]=e+(b<<2)}e=a+8|0;b=F[a+116>>2];d:{if(b){c=F[b>>2];if((c|0)==F[b+4>>2]){d=1;break d}b=0;while(1){d=pd(e,F[(b<<2)+c>>2]);if(!d){break d}f=F[a+116>>2];c=F[f>>2];b=b+1|0;if(b>>>0>2]-c>>2>>>0){continue}break}break d}d=1;a=F[a+12>>2];a=F[a+4>>2]-F[a>>2]|0;if(a>>>0<12){break d}a=(a>>2>>>0)/3|0;b=0;while(1){d=pd(e,L(b,3));if(!d){break d}b=b+1|0;if((a|0)!=(b|0)){continue}break}}aa=g+16|0;return d|0}qa();v()}function od(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0;f=F[a+12>>2];h=F[a+8>>2];d=f-h>>2;b=G[b+24|0];a:{if(d>>>0>>0){ra(a+8|0,b-d|0);h=F[a+8>>2];f=F[a+12>>2];break a}if(b>>>0>=d>>>0){break a}f=(b<<2)+h|0;F[a+12>>2]=f}b=0;i=F[c+20>>2];e=F[c+16>>2];d=f-h|0;f=d;g=e+d|0;j=F[c+12>>2];i=d>>>0>g>>>0?i+1|0:i;b:{if(g>>>0>I[c+8>>2]&(j|0)<=(i|0)|(i|0)>(j|0)){break b}oa(h,e+F[c>>2]|0,d);d=F[c+20>>2];e=f+F[c+16>>2]|0;d=e>>>0>>0?d+1|0:d;g=e;F[c+16>>2]=e;F[c+20>>2]=d;e=F[c+12>>2];f=g+4|0;d=f>>>0<4?d+1|0:d;if(f>>>0>I[c+8>>2]&(d|0)>=(e|0)|(d|0)>(e|0)){break b}d=g+F[c>>2]|0;F[a+20>>2]=G[d|0]|G[d+1|0]<<8|(G[d+2|0]<<16|G[d+3|0]<<24);d=F[c+20>>2];g=F[c+16>>2];e=g+4|0;f=e>>>0<4?d+1|0:d;j=e;F[c+16>>2]=e;F[c+20>>2]=f;e=F[c+12>>2];if((f|0)>=(e|0)&j>>>0>=I[c+8>>2]|(f|0)>(e|0)){break b}e=G[j+F[c>>2]|0];f=g+5|0;d=f>>>0<5?d+1|0:d;F[c+16>>2]=f;F[c+20>>2]=d;if(e-1>>>0>29){break b}F[a+4>>2]=e;b=1}return b|0}function Pa(a,b){var c=0,d=0,e=0,f=0,g=0,h=0;d=aa-16|0;aa=d;a:{e=F[a+4>>2];b:{if(e>>>0>>0){f=b-e|0;c=F[a+8>>2];g=c<<5;c:{if(!(f>>>0>g>>>0|e>>>0>g-f>>>0)){F[a+4>>2]=b;h=e&31;b=F[a>>2]+(e>>>3&536870908)|0;break c}F[d+8>>2]=0;F[d>>2]=0;F[d+4>>2]=0;if((b|0)<0){break a}if(g>>>0<=1073741822){c=c<<6;b=b+31&-32;b=b>>>0>>0?c:b}else{b=2147483647}db(d,b);c=F[a+4>>2];F[d+4>>2]=c+f;e=F[a>>2];b=F[d>>2];d:{if((c|0)<=0){break d}g=c>>>5<<2;b=Sa(b,e,g)+g|0;h=c&31;if(h){c=-1>>>32-h|0;F[b>>2]=F[b>>2]&(c^-1)|F[e+g>>2]&c}e=F[a>>2]}F[a>>2]=F[d>>2];F[d>>2]=e;c=F[a+4>>2];F[a+4>>2]=F[d+4>>2];F[d+4>>2]=c;c=F[a+8>>2];F[a+8>>2]=F[d+8>>2];F[d+8>>2]=c;if(!e){break c}ma(e)}if(!f){break b}if(h){c=32-h|0;a=c>>>0>>0?c:f;F[b>>2]=F[b>>2]&(-1<>>c-a^-1);f=f-a|0;b=b+4|0}a=b;b=f>>>5<<2;a=pa(a,0,b);if((f&-32)==(f|0)){break b}a=a+b|0;F[a>>2]=F[a>>2]&(-1>>>32-(f&31)^-1);break b}F[a+4>>2]=b}aa=d+16|0;return}qa();v()}function Sb(a,b){var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0;d=G[a+11|0]>>>7|0?F[a+4>>2]:G[a+11|0];if(d>>>0>>0){h=aa-16|0;aa=h;f=b-d|0;if(f){b=G[a+11|0]>>>7|0;g=b?F[a+4>>2]:G[a+11|0];i=g+f|0;b=b?(F[a+8>>2]&2147483647)-1|0:10;if(b-g>>>0>>0){a:{d=aa-16|0;aa=d;c=-17;e=i-b|0;if(e>>>0<=-17-b>>>0){j=G[a+11|0]>>>7|0?F[a>>2]:a;if(b>>>0<2147483623){F[d+8>>2]=b<<1;F[d+12>>2]=b+e;c=aa-16|0;aa=c;aa=c+16|0;c=d+8|0;e=d+12|0;c=F[(I[e>>2]>2]?c:e)>>2];if(c>>>0>=11){e=c+16&-16;c=e-1|0;c=(c|0)==11?e:c}else{c=10}c=c+1|0}e=na(c);if(g){gb(e,j,g)}if((b|0)!=10){ma(j)}F[a>>2]=e;F[a+8>>2]=c|-2147483648;aa=d+16|0;break a}Ca();v()}}b=G[a+11|0]>>>7|0?F[a>>2]:a;d=g+b|0;if(f){pa(d,0,f)}b:{if(G[a+11|0]>>>7|0){F[a+4>>2]=i;break b}D[a+11|0]=i}D[h+15|0]=0;D[b+i|0]=G[h+15|0]}aa=h+16|0;return}c=G[a+11|0]>>>7|0;f=c?F[a>>2]:a;d=aa-16|0;aa=d;c:{if(c){F[a+4>>2]=b;break c}D[a+11|0]=b}D[d+15|0]=0;D[b+f|0]=G[d+15|0];aa=d+16|0}function Yc(a,b){var c=0,d=0,e=0,f=0,g=0,h=0;g=aa-16|0;aa=g;a:{b:{if(b){F[a+88>>2]=0;F[a+92>>2]=0;c=F[a+84>>2];F[a+84>>2]=0;if(c){ma(c)}F[a+76>>2]=0;F[a+80>>2]=0;c=F[a+72>>2];F[a+72>>2]=0;if(c){ma(c)}c=F[b>>2];d=F[b+4>>2];D[g+15|0]=0;Ha(a,d-c>>2,g+15|0);c=F[b+28>>2];d=F[b+24>>2];D[g+14|0]=0;Ha(a+12|0,c-d>>2,g+14|0);Wb(a+28|0,F[b+4>>2]-F[b>>2]>>2,10284);d=F[b+28>>2]-F[b+24>>2]|0;e=d>>2;c=F[a+52>>2];c:{if(e>>>0<=F[a+60>>2]-c>>2>>>0){break c}if((d|0)<0){break b}f=F[a+56>>2];d=na(d);h=d+(e<<2)|0;e=f-c|0;f=e+d|0;if((e|0)>0){oa(d,c,e)}F[a+60>>2]=h;F[a+56>>2]=f;F[a+52>>2]=d;if(!c){break c}ma(c)}d=F[b+28>>2]-F[b+24>>2]|0;e=d>>2;c=F[a+40>>2];d:{if(e>>>0<=F[a+48>>2]-c>>2>>>0){break d}if((d|0)<0){break a}f=F[a+44>>2];d=na(d);h=d+(e<<2)|0;e=f-c|0;f=e+d|0;if((e|0)>0){oa(d,c,e)}F[a+48>>2]=h;F[a+44>>2]=f;F[a+40>>2]=d;if(!c){break d}ma(c)}D[a+24|0]=1;F[a+64>>2]=b}aa=g+16|0;return}qa();v()}qa();v()}function Ic(a,b,c,d){var e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0;j=+J[b>>2];k=+J[b+4>>2];l=+J[b+8>>2];g=N(j)+N(k)+N(l);a:{if(!(g>1e-6)){j=1;k=0;e=0;break a}g=1/g;k=g*k;j=g*j;e=g*l<0}h=F[a+16>>2];l=+(h|0);g=R(j*l+.5);b:{if(N(g)<2147483648){m=~~g;break b}m=-2147483648}f=m>>31;i=(f^m)-f|0;g=R(k*l+.5);c:{if(N(g)<2147483648){f=~~g;break c}f=-2147483648}b=f>>31;b=h-(i+((f^b)-b|0)|0)|0;i=(b|0)>0?b:0;e=e?0-i|0:i;f=f+(b>>31&((f|0)>0?b:0-b|0))|0;d:{if((m|0)>=0){b=e+h|0;a=F[a+8>>2];e=h+f|0;break d}b=f>>31;b=(b^f)-b|0;a=F[a+8>>2];b=(e|0)<0?b:a-b|0;e=(f|0)<0?i:a-i|0}e:{if(!(b|e)){b=a;break e}if(!((a|0)!=(b|0)|e)){b=a;break e}if(!((a|0)!=(e|0)|b)){b=a;break e}if(!((b|0)<=(h|0)|e)){b=(h<<1)-b|0;a=0;break e}if(!((a|0)!=(e|0)|(b|0)>=(h|0))){b=(h<<1)-b|0;break e}if(!((a|0)!=(b|0)|(e|0)>=(h|0))){b=a;a=(h<<1)-e|0;break e}if(b){a=e;break e}b=0;if((e|0)<=(h|0)){a=e;break e}a=(h<<1)-e|0}F[c>>2]=a;F[d>>2]=b}function yc(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=M(0),f=M(0),g=M(0),h=M(0),i=M(0),j=0,k=M(0),l=M(0),m=M(0),n=M(0),o=0;a:{if(F[c+28>>2]!=9|G[c+24|0]!=3){break a}a=F[a+4>>2];if(a-31>>>0<4294967267){break a}o=1;j=F[c+80>>2];if(!j){break a}k=M(M(2)/M((1<>2]>>2]+F[c+48>>2]|0;a=F[F[b>>2]>>2]+F[b+48>>2]|0;b=0;while(1){g=M(0);l=M(0);m=M(0);e=M(M(M(F[a>>2])*k)+M(-1));f=M(M(M(F[a+4>>2])*k)+M(-1));i=M(M(M(1)-M(N(e)))-M(N(f)));h=M(Q(M(-i),M(0)));n=M(-h);f=M(f+(f>>8;D[c+10|0]=d>>>16;D[c+11|0]=d>>>24;d=(w(l),y(2));D[c+4|0]=d;D[c+5|0]=d>>>8;D[c+6|0]=d>>>16;D[c+7|0]=d>>>24;d=(w(g),y(2));D[c|0]=d;D[c+1|0]=d>>>8;D[c+2|0]=d>>>16;D[c+3|0]=d>>>24;c=c+12|0;b=b+1|0;if((j|0)!=(b|0)){continue}break}}return o|0}function Wc(a,b){var c=0,d=0,e=0,f=0,g=0,h=0;g=F[a>>2];c=g+(b>>>3&536870908)|0;F[c>>2]=F[c>>2]|1<>2];e=(b|0)==-1;d=-1;a:{if(e){break a}c=b+1|0;c=(c>>>0)%3|0?c:b-2|0;d=-1;if((c|0)==-1){break a}d=F[F[f>>2]+(c<<2)>>2]}c=F[a+12>>2];h=(d>>>3&536870908)+c|0;F[h>>2]=F[h>>2]|1<>>0)%3|0){e=b-1|0;break e}e=b+2|0;d=-1;if((e|0)==-1){break d}}d=F[F[f>>2]+(e<<2)>>2]}e=(d>>>3&536870908)+c|0;F[e>>2]=F[e>>2]|1<>2]+(b<<2)>>2];if((b|0)==-1){break b}D[a+24|0]=0;a=(b>>>3&536870908)+g|0;F[a>>2]=F[a>>2]|1<>>0)%3|0?a:b-2|0;if((a|0)!=-1){d=F[F[f>>2]+(a<<2)>>2]}a=c+(d>>>3&536870908)|0;F[a>>2]=F[a>>2]|1<>>0)%3|0){b=b-1|0;break g}b=b+2|0;a=-1;if((b|0)==-1){break f}}a=F[F[f>>2]+(b<<2)>>2]}b=1<>>3&536870908)|0;c=F[a>>2];break c}a=c+536870908|0;b=F[c+536870908>>2];c=-2147483648}F[a>>2]=b|c}}function Kd(a,b){var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0;g=aa-16|0;aa=g;a:{if(!Va(1,g+8|0,b)){break a}d=F[b+8>>2];e=F[b+16>>2];h=F[g+12>>2];c=F[b+20>>2];f=F[b+12>>2]-(c+(d>>>0>>0)|0)|0;i=d-e|0;d=F[g+8>>2];if((h|0)==(f|0)&i>>>0>>0|f>>>0>>0){break a}c=c+h|0;f=d+e|0;c=f>>>0>>0?c+1|0:c;F[b+16>>2]=f;F[b+20>>2]=c;if((d|0)<=0){break a}c=e+F[b>>2]|0;F[a+40>>2]=c;f=d-1|0;e=c+f|0;b=G[e|0];b:{if(b>>>0<=63){F[a+44>>2]=f;b=G[e|0]&63;break b}c:{switch((b>>>6|0)-1|0){case 0:if(d>>>0<2){break a}b=d-2|0;F[a+44>>2]=b;b=b+c|0;b=G[b+1|0]<<8&16128|G[b|0];break b;case 1:if(d>>>0<3){break a}b=d-3|0;F[a+44>>2]=b;b=b+c|0;b=G[b+1|0]<<8|G[b+2|0]<<16&4128768|G[b|0];break b;default:break c}}b=d-4|0;F[a+44>>2]=b;b=b+c|0;b=G[b+2|0]<<16|G[b+3|0]<<24&1056964608|G[b+1|0]<<8|G[b|0]}F[a+48>>2]=b+16384;j=b>>>0<4177920}aa=g+16|0;return j}function sd(a){a=a|0;var b=0,c=0,d=0,e=0;F[a>>2]=8284;d=F[a+368>>2];F[a+368>>2]=0;if(d){e=d-4|0;b=F[e>>2];if(b){c=(b<<4)+d|0;while(1){c=c-16|0;if((d|0)!=(c|0)){continue}break}}ma(e)}rd(a+216|0);b=F[a+196>>2];if(b){F[a+200>>2]=b;ma(b)}b=F[a+184>>2];if(b){F[a+188>>2]=b;ma(b)}b=F[a+172>>2];if(b){F[a+176>>2]=b;ma(b)}b=F[a+160>>2];if(b){F[a+164>>2]=b;ma(b)}c=F[a+144>>2];if(c){while(1){b=F[c>>2];ma(c);c=b;if(b){continue}break}}b=F[a+136>>2];F[a+136>>2]=0;if(b){ma(b)}b=F[a+120>>2];if(b){ma(b)}b=F[a+108>>2];if(b){ma(b)}b=F[a+96>>2];if(b){ma(b)}b=F[a+72>>2];if(b){F[a+76>>2]=b;ma(b)}b=F[a+60>>2];if(b){ma(b)}b=F[a+48>>2];if(b){F[a+52>>2]=b;ma(b)}b=F[a+36>>2];if(b){F[a+40>>2]=b;ma(b)}b=F[a+24>>2];if(b){F[a+28>>2]=b;ma(b)}b=F[a+12>>2];if(b){F[a+16>>2]=b;ma(b)}b=F[a+8>>2];F[a+8>>2]=0;if(b){bb(b)}return a|0}function Qf(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,f=0,g=0;a:{a=aa-32|0;aa=a;e=Ba(c);if(e>>>0<4294967280){b:{c:{if(e>>>0>=11){g=(e|15)+1|0;f=na(g);F[a+24>>2]=g|-2147483648;F[a+16>>2]=f;F[a+20>>2]=e;break c}D[a+27|0]=e;f=a+16|0;if(!e){break b}}oa(f,c,e)}D[e+f|0]=0;F[a+8>>2]=0;F[a>>2]=0;F[a+4>>2]=0;d:{c=ab(b,a+16|0);if((c|0)==(b+4|0)){break d}b=F[c+28>>2];f=F[c+32>>2];if((b|0)==(f|0)){break d}b=f-b|0;if(b&3){break d}e=b>>>2|0;f=F[a+4>>2];b=F[a>>2];g=f-b>>2;e:{if(e>>>0>g>>>0){ra(a,e-g|0);b=F[a>>2];f=F[a+4>>2];break e}if(e>>>0>=g>>>0){break e}f=(e<<2)+b|0;F[a+4>>2]=f}if((b|0)!=(f|0)){e=b;b=F[c+28>>2];oa(e,b,F[c+32>>2]-b|0);break d}va();v()}b=F[d>>2];if(b){F[d+4>>2]=b;ma(b)}F[d>>2]=F[a>>2];F[d+4>>2]=F[a+4>>2];F[d+8>>2]=F[a+8>>2];if(D[a+27|0]<0){ma(F[a+16>>2])}aa=a+32|0;break a}Ca();v()}}function jc(a,b){var c=0,d=0;c=F[b+8>>2];F[a+4>>2]=F[b+4>>2];F[a+8>>2]=c;F[a+20>>2]=F[b+20>>2];c=F[b+16>>2];F[a+12>>2]=F[b+12>>2];F[a+16>>2]=c;a:{b:{if((a|0)!=(b|0)){c=F[b+28>>2];if(c){d=F[a+24>>2];if(F[a+32>>2]<<5>>>0>>0){if(d){ma(d);F[a+32>>2]=0;F[a+24>>2]=0;F[a+28>>2]=0;c=F[b+28>>2]}if((c|0)<0){break b}c=(c-1>>>5|0)+1|0;d=na(c<<2);F[a+32>>2]=c;F[a+28>>2]=0;F[a+24>>2]=d;c=F[b+28>>2]}Sa(d,F[b+24>>2],(c-1>>>3&536870908)+4|0);c=F[b+28>>2]}else{c=0}F[a+28>>2]=c;c=F[b+40>>2];if(c){d=F[a+36>>2];if(F[a+44>>2]<<5>>>0>>0){if(d){ma(d);F[a+44>>2]=0;F[a+36>>2]=0;F[a+40>>2]=0;c=F[b+40>>2]}if((c|0)<0){break a}c=(c-1>>>5|0)+1|0;d=na(c<<2);F[a+44>>2]=c;F[a+40>>2]=0;F[a+36>>2]=d;c=F[b+40>>2]}Sa(d,F[b+36>>2],(c-1>>>3&536870908)+4|0);b=F[b+40>>2]}else{b=0}F[a+40>>2]=b}return}qa();v()}qa();v()}function Sf(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0;d=aa-16|0;aa=d;a:{e=Ba(c);if(e>>>0<4294967280){b:{c:{if(e>>>0>=11){f=(e|15)+1|0;a=na(f);F[d+8>>2]=f|-2147483648;F[d>>2]=a;F[d+4>>2]=e;break c}D[d+11|0]=e;a=d;if(!e){break b}}oa(a,c,e)}D[a+e|0]=0;c=G[d+11|0];e=c<<24>>24;b=F[b+4>>2];a=0;d:{if(!b){break d}a=c;c=(e|0)<0;a=c?F[d+4>>2]:a;f=c?F[d>>2]:d;while(1){c=G[b+27|0];g=c<<24>>24<0;c=g?F[b+20>>2]:c;i=c>>>0>>0;e:{f:{g:{h:{i:{j:{h=i?c:a;if(h){g=g?F[b+16>>2]:b+16|0;j=ua(f,g,h);if(j){break j}if(a>>>0>=c>>>0){break i}break e}if(a>>>0>=c>>>0){break h}break e}if((j|0)<0){break e}}c=ua(g,f,h);if(c){break g}}if(i){break f}a=1;break d}if((c|0)<0){break f}a=1;break d}b=b+4|0}b=F[b>>2];if(b){continue}break}a=0}if((e|0)<0){ma(F[d>>2])}aa=d+16|0;break a}Ca();v()}return a|0}function lc(a){var b=0,c=0,d=0;b=F[a+8>>2];d=F[a>>2];a:{if(G[a+12|0]){b:{c:{d:{e:{if((b|0)==-1){break e}c=b+1|0;b=(c>>>0)%3|0?c:b-2|0;if((b|0)==-1){break e}b=F[F[d+12>>2]+(b<<2)>>2];if((b|0)!=-1){break d}}F[a+8>>2]=-1;break c}c=b+1|0;b=(c>>>0)%3|0?c:b-2|0;F[a+8>>2]=b;if((b|0)!=-1){break b}}c=F[a+4>>2];b=-1;f:{if((c|0)==-1){break f}g:{if((c>>>0)%3|0){c=c-1|0;break g}c=c+2|0;b=-1;if((c|0)==-1){break f}}c=F[F[d+12>>2]+(c<<2)>>2];b=-1;if((c|0)==-1){break f}b=c-1|0;if((c>>>0)%3|0){break f}b=c+2|0}D[a+12|0]=0;F[a+8>>2]=b;return}if((b|0)!=F[a+4>>2]){break a}F[a+8>>2]=-1;return}c=-1;h:{if((b|0)==-1){break h}i:{if((b>>>0)%3|0){b=b-1|0;break i}b=b+2|0;c=-1;if((b|0)==-1){break h}}b=F[F[d+12>>2]+(b<<2)>>2];c=-1;if((b|0)==-1){break h}c=b-1|0;if((b>>>0)%3|0){break h}c=b+2|0}F[a+8>>2]=c}}function Md(a){var b=0,c=0,d=0;b=na(32);D[b+26|0]=0;c=G[1475]|G[1476]<<8;D[b+24|0]=c;D[b+25|0]=c>>>8;c=G[1471]|G[1472]<<8|(G[1473]<<16|G[1474]<<24);d=G[1467]|G[1468]<<8|(G[1469]<<16|G[1470]<<24);D[b+16|0]=d;D[b+17|0]=d>>>8;D[b+18|0]=d>>>16;D[b+19|0]=d>>>24;D[b+20|0]=c;D[b+21|0]=c>>>8;D[b+22|0]=c>>>16;D[b+23|0]=c>>>24;c=G[1463]|G[1464]<<8|(G[1465]<<16|G[1466]<<24);d=G[1459]|G[1460]<<8|(G[1461]<<16|G[1462]<<24);D[b+8|0]=d;D[b+9|0]=d>>>8;D[b+10|0]=d>>>16;D[b+11|0]=d>>>24;D[b+12|0]=c;D[b+13|0]=c>>>8;D[b+14|0]=c>>>16;D[b+15|0]=c>>>24;c=G[1455]|G[1456]<<8|(G[1457]<<16|G[1458]<<24);d=G[1451]|G[1452]<<8|(G[1453]<<16|G[1454]<<24);D[b|0]=d;D[b+1|0]=d>>>8;D[b+2|0]=d>>>16;D[b+3|0]=d>>>24;D[b+4|0]=c;D[b+5|0]=c>>>8;D[b+6|0]=c>>>16;D[b+7|0]=c>>>24;F[a>>2]=-1;ta(a+4|0,b,26);ma(b)}function Sa(a,b,c){var d=0,e=0;a:{if((a|0)==(b|0)){break a}e=a+c|0;if(b-e>>>0<=0-(c<<1)>>>0){return oa(a,b,c)}d=(a^b)&3;b:{c:{if(a>>>0>>0){if(d){d=a;break b}if(!(a&3)){d=a;break c}d=a;while(1){if(!c){break a}D[d|0]=G[b|0];b=b+1|0;c=c-1|0;d=d+1|0;if(d&3){continue}break}break c}d:{if(d){break d}if(e&3){while(1){if(!c){break a}c=c-1|0;d=c+a|0;D[d|0]=G[b+c|0];if(d&3){continue}break}}if(c>>>0<=3){break d}while(1){c=c-4|0;F[c+a>>2]=F[b+c>>2];if(c>>>0>3){continue}break}}if(!c){break a}while(1){c=c-1|0;D[c+a|0]=G[b+c|0];if(c){continue}break}break a}if(c>>>0<=3){break b}while(1){F[d>>2]=F[b>>2];b=b+4|0;d=d+4|0;c=c-4|0;if(c>>>0>3){continue}break}}if(!c){break a}while(1){D[d|0]=G[b|0];d=d+1|0;b=b+1|0;c=c-1|0;if(c){continue}break}}return a}function Qb(a,b){var c=0,d=0,e=0,f=0,g=0,h=0,i=0;d=F[a+8>>2];c=F[a+4>>2];if(d-c>>2>>>0>=b>>>0){if(b){b=b<<2;c=pa(c,0,b)+b|0}F[a+4>>2]=c;return}a:{b:{c:{g=F[a>>2];f=c-g>>2;e=f+b|0;if(e>>>0<1073741824){d=d-g|0;h=d>>1;e=d>>>0>=2147483644?1073741823:e>>>0>>0?h:e;if(e){if(e>>>0>=1073741824){break c}i=na(e<<2)}d=(f<<2)+i|0;f=b<<2;b=pa(d,0,f);f=b+f|0;e=(e<<2)+i|0;if((c|0)==(g|0)){break b}while(1){c=c-4|0;b=F[c>>2];F[c>>2]=0;d=d-4|0;F[d>>2]=b;if((c|0)!=(g|0)){continue}break}F[a+8>>2]=e;b=F[a+4>>2];F[a+4>>2]=f;c=F[a>>2];F[a>>2]=d;if((b|0)==(c|0)){break a}while(1){b=b-4|0;a=F[b>>2];F[b>>2]=0;if(a){ca[F[F[a>>2]+4>>2]](a)}if((b|0)!=(c|0)){continue}break}break a}qa();v()}sa();v()}F[a+8>>2]=e;F[a+4>>2]=f;F[a>>2]=b}if(c){ma(c)}}function Ec(a,b){var c=0,d=0,e=0;c=aa+-64|0;aa=c;d=F[a>>2];e=F[d-4>>2];d=F[d-8>>2];F[c+32>>2]=0;F[c+36>>2]=0;F[c+40>>2]=0;F[c+44>>2]=0;F[c+48>>2]=0;F[c+52>>2]=0;D[c+55|0]=0;D[c+56|0]=0;D[c+57|0]=0;D[c+58|0]=0;D[c+59|0]=0;D[c+60|0]=0;D[c+61|0]=0;D[c+62|0]=0;F[c+24>>2]=0;F[c+28>>2]=0;F[c+20>>2]=0;F[c+16>>2]=11020;F[c+12>>2]=a;F[c+8>>2]=b;a=a+d|0;d=0;a:{if(Na(e,b,0)){F[c+56>>2]=1;ca[F[F[e>>2]+20>>2]](e,c+8|0,a,a,1,0);d=F[c+32>>2]==1?a:0;break a}ca[F[F[e>>2]+24>>2]](e,c+8|0,a,1,0);b:{switch(F[c+44>>2]){case 0:d=F[c+48>>2]==1?F[c+36>>2]==1?F[c+40>>2]==1?F[c+28>>2]:0:0:0;break a;case 1:break b;default:break a}}if(F[c+32>>2]!=1){if(F[c+48>>2]|F[c+36>>2]!=1|F[c+40>>2]!=1){break a}}d=F[c+24>>2]}aa=c- -64|0;return d}function Wd(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0;d=F[b+12>>2];g=d;c=F[b+20>>2];e=c;f=F[b+16>>2];h=f+4|0;c=h>>>0<4?c+1|0:c;i=F[b+8>>2];a:{if(i>>>0>>0&(c|0)>=(d|0)|(c|0)>(d|0)){break a}j=F[b>>2];d=j+f|0;d=G[d|0]|G[d+1|0]<<8|(G[d+2|0]<<16|G[d+3|0]<<24);F[b+16>>2]=h;F[b+20>>2]=c;c=e;e=f+8|0;c=e>>>0<8?c+1|0:c;f=e;e=c;if(f>>>0>i>>>0&(c|0)>=(g|0)|(c|0)>(g|0)){break a}c=h+j|0;c=G[c|0]|G[c+1|0]<<8|(G[c+2|0]<<16|G[c+3|0]<<24);F[b+16>>2]=f;F[b+20>>2]=e;if((c|0)<(d|0)){break a}F[a+16>>2]=c;F[a+12>>2]=d;g=(c>>31)-((d>>31)+(c>>>0>>0)|0)|0;c=c-d|0;if(!g&c>>>0>2147483646|g){break a}c=c+1|0;F[a+20>>2]=c;d=c>>>1|0;F[a+24>>2]=d;F[a+28>>2]=0-d;if(!(c&1)){F[a+24>>2]=d-1}k=Da(a+112|0,b)}return k|0}function Vc(a,b){var c=0,d=0,e=0,f=0;d=-1;e=-1;f=-1;a:{b:{if((b|0)==-1){break b}e=F[F[F[a+4>>2]+12>>2]+(b<<2)>>2];c=b+1|0;c=(c>>>0)%3|0?c:b-2|0;if((c|0)>=0){f=(c>>>0)/3|0;f=F[(F[F[a>>2]+96>>2]+L(f,12)|0)+(c-L(f,3)<<2)>>2]}c:{if((e|0)==-1){break c}c=((e>>>0)%3|0?-1:2)+e|0;if((c|0)<0){break c}d=(c>>>0)/3|0;d=F[(F[F[a>>2]+96>>2]+L(d,12)|0)+(c-L(d,3)<<2)>>2]}c=-1;if((d|0)!=(f|0)){break a}f=-1;d:{b=((b>>>0)%3|0?-1:2)+b|0;if((b|0)>=0){d=(b>>>0)/3|0;d=F[(F[F[a>>2]+96>>2]+L(d,12)|0)+(b-L(d,3)<<2)>>2];if((e|0)==-1){break b}break d}d=-1;if((e|0)!=-1){break d}break b}b=e+1|0;b=(b>>>0)%3|0?b:e-2|0;if((b|0)<0){break b}c=F[F[a>>2]+96>>2];a=(b>>>0)/3|0;f=F[(c+L(a,12)|0)+(b-L(a,3)<<2)>>2]}c=(d|0)!=(f|0)?-1:e}return c}function pa(a,b,c){var d=0,e=0,f=0;a:{if(!c){break a}D[a|0]=b;e=a+c|0;D[e-1|0]=b;if(c>>>0<3){break a}D[a+2|0]=b;D[a+1|0]=b;D[e-3|0]=b;D[e-2|0]=b;if(c>>>0<7){break a}D[a+3|0]=b;D[e-4|0]=b;if(c>>>0<9){break a}e=0-a&3;f=e+a|0;d=L(b&255,16843009);F[f>>2]=d;b=c-e&-4;c=b+f|0;F[c-4>>2]=d;if(b>>>0<9){break a}F[f+8>>2]=d;F[f+4>>2]=d;F[c-8>>2]=d;F[c-12>>2]=d;if(b>>>0<25){break a}F[f+24>>2]=d;F[f+20>>2]=d;F[f+16>>2]=d;F[f+12>>2]=d;F[c-16>>2]=d;F[c-20>>2]=d;F[c-24>>2]=d;F[c-28>>2]=d;c=b;b=f&4|24;c=c-b|0;if(c>>>0<32){break a}d=gi(d,0,1,1);e=ba;b=b+f|0;while(1){F[b+24>>2]=d;F[b+28>>2]=e;F[b+16>>2]=d;F[b+20>>2]=e;F[b+8>>2]=d;F[b+12>>2]=e;F[b>>2]=d;F[b+4>>2]=e;b=b+32|0;c=c-32|0;if(c>>>0>31){continue}break}}return a}function fe(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0;d=F[b+12>>2];h=d;c=F[b+20>>2];e=c;f=F[b+16>>2];g=f+4|0;c=g>>>0<4?c+1|0:c;i=F[b+8>>2];a:{if(i>>>0>>0&(c|0)>=(d|0)|(c|0)>(d|0)){break a}j=F[b>>2];d=j+f|0;d=G[d|0]|G[d+1|0]<<8|(G[d+2|0]<<16|G[d+3|0]<<24);F[b+16>>2]=g;F[b+20>>2]=c;c=e;e=f+8|0;c=e>>>0<8?c+1|0:c;f=e;e=c;if(f>>>0>i>>>0&(c|0)>=(h|0)|(c|0)>(h|0)){break a}c=g+j|0;c=G[c|0]|G[c+1|0]<<8|(G[c+2|0]<<16|G[c+3|0]<<24);F[b+16>>2]=f;F[b+20>>2]=e;if((c|0)<(d|0)){break a}F[a+16>>2]=c;F[a+12>>2]=d;b=(c>>31)-((d>>31)+(c>>>0>>0)|0)|0;c=c-d|0;if(!b&c>>>0>2147483646|b){break a}k=1;b=c+1|0;F[a+20>>2]=b;c=b>>>1|0;F[a+24>>2]=c;F[a+28>>2]=0-c;if(b&1){break a}F[a+24>>2]=c-1}return k|0}function Hg(a){a=a|0;var b=0,c=0,d=0,e=0,f=0,g=0;b=F[a+4>>2];d=F[b>>2];a:{c=F[a+12>>2];c=F[c+56>>2]-F[c+52>>2]|0;e=c>>2;b:{if(e>>>0<=F[b+8>>2]-d>>2>>>0){break b}if((c|0)<0){break a}f=F[b+4>>2];c=na(c);g=c+(e<<2)|0;e=f-d|0;f=e+c|0;if((e|0)>0){oa(c,d,e)}F[b+8>>2]=g;F[b+4>>2]=f;F[b>>2]=c;if(!d){break b}ma(d)}e=a+8|0;b=F[a+76>>2];c:{if(b){d=F[b>>2];if((d|0)==F[b+4>>2]){return 1}b=0;while(1){c=md(e,F[(b<<2)+d>>2]);if(!c){break c}f=F[a+76>>2];d=F[f>>2];b=b+1|0;if(b>>>0>2]-d>>2>>>0){continue}break}break c}c=1;a=F[F[a+12>>2]+64>>2];a=F[a+4>>2]-F[a>>2]|0;if(a>>>0<12){break c}a=(a>>2>>>0)/3|0;b=0;while(1){c=md(e,L(b,3));if(!c){break c}b=b+1|0;if((a|0)!=(b|0)){continue}break}}return c|0}qa();v()}function Ng(a){a=a|0;var b=0,c=0,d=0,e=0,f=0,g=0;b=F[a+4>>2];d=F[b>>2];a:{c=F[a+12>>2];c=F[c+28>>2]-F[c+24>>2]|0;e=c>>2;b:{if(e>>>0<=F[b+8>>2]-d>>2>>>0){break b}if((c|0)<0){break a}f=F[b+4>>2];c=na(c);g=c+(e<<2)|0;e=f-d|0;f=e+c|0;if((e|0)>0){oa(c,d,e)}F[b+8>>2]=g;F[b+4>>2]=f;F[b>>2]=c;if(!d){break b}ma(d)}e=a+8|0;b=F[a+76>>2];c:{if(b){d=F[b>>2];if((d|0)==F[b+4>>2]){return 1}b=0;while(1){c=nd(e,F[(b<<2)+d>>2]);if(!c){break c}f=F[a+76>>2];d=F[f>>2];b=b+1|0;if(b>>>0>2]-d>>2>>>0){continue}break}break c}c=1;a=F[a+12>>2];a=F[a+4>>2]-F[a>>2]|0;if(a>>>0<12){break c}a=(a>>2>>>0)/3|0;b=0;while(1){c=nd(e,L(b,3));if(!c){break c}b=b+1|0;if((a|0)!=(b|0)){continue}break}}return c|0}qa();v()}function Tc(a,b,c){var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0;d=aa-16|0;aa=d;f=F[a+24>>2];k=F[a+28>>2];a:{if((f|0)!=(k|0)){while(1){F[d+8>>2]=0;F[d>>2]=0;F[d+4>>2]=0;a=Rc(F[f>>2],b,d);g=G[d+11|0];h=g<<24>>24;i=3;b:{c:{d:{if(!a){break d}i=0;a=G[c+11|0];e=a<<24>>24;j=(h|0)<0?F[d+4>>2]:g;if((j|0)!=(((e|0)<0?F[c+4>>2]:a)|0)){break d}a=(e|0)<0?F[c>>2]:c;e=(h|0)<0;e:{if(!e){e=d;if(!h){break e}while(1){if(G[e|0]!=G[a|0]){break d}a=a+1|0;e=e+1|0;g=g-1|0;if(g){continue}break}break e}if(!j){break e}if(ua(e?F[d>>2]:d,a,j)){break c}}l=F[f>>2];i=1}if((h|0)>=0){break b}}ma(F[d>>2])}f:{switch(i|0){case 0:case 3:break f;default:break a}}f=f+4|0;if((k|0)!=(f|0)){continue}break}}l=0}aa=d+16|0;return l}function Ha(a,b,c){var d=0,e=0,f=0,g=0;f=aa-16|0;aa=f;F[a+4>>2]=0;a:{b:{if(!b){break b}d=F[a+8>>2];e=d<<5;c:{if(e>>>0>=b>>>0){F[a+4>>2]=b;break c}F[f+8>>2]=0;F[f>>2]=0;F[f+4>>2]=0;if((b|0)<0){break a}if(e>>>0<=1073741822){d=d<<6;e=b+31&-32;d=d>>>0>e>>>0?d:e}else{d=2147483647}db(f,d);d=F[a>>2];F[a>>2]=F[f>>2];F[f>>2]=d;e=F[a+4>>2];F[a+4>>2]=b;F[f+4>>2]=e;e=F[a+8>>2];F[a+8>>2]=F[f+8>>2];F[f+8>>2]=e;if(!d){break c}ma(d)}g=b&-32;d=b>>>5|0;e=d<<2;a=F[a>>2];if(G[c|0]){a=pa(a,255,e);if((b|0)==(g|0)){break b}a=a+(d<<2)|0;F[a>>2]=F[a>>2]|-1>>>32-(b&31);break b}a=pa(a,0,e);if((b|0)==(g|0)){break b}a=a+(d<<2)|0;F[a>>2]=F[a>>2]&(-1>>>32-(b&31)^-1)}aa=f+16|0;return}qa();v()}function ye(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0;d=F[b>>2];b=F[b+4>>2];f=F[F[a+8>>2]+40>>2];m=na((f|0)<0?-1:f);g=1;h=b-d|0;a:{if((h|0)<=0){break a}b=0;g=0;d=0+F[c+20>>2]|0;i=F[c+16>>2];e=f+i|0;d=e>>>0>>0?d+1|0:d;j=e;e=F[c+12>>2];if(j>>>0>I[c+8>>2]&(e|0)<=(d|0)|(d|0)>(e|0)){break a}k=h>>2;g=(k|0)<=1?1:k;while(1){b:{e=oa(m,i+F[c>>2]|0,f);F[c+16>>2]=j;F[c+20>>2]=d;oa(F[F[F[a+8>>2]+64>>2]>>2]+b|0,e,f);l=l+1|0;if((g|0)==(l|0)){break b}b=b+f|0;d=n+F[c+20>>2]|0;i=F[c+16>>2];e=f+i|0;d=e>>>0>>0?d+1|0:d;j=e;h=e;e=F[c+12>>2];if((e|0)>=(d|0)&I[c+8>>2]>=h>>>0|(d|0)<(e|0)){continue}}break}g=(l|0)>=(k|0)}ma(m);return g|0}function Ff(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,f=0,g=0;e=aa-32|0;aa=e;a:{b:{f=Ba(c);if(f>>>0<4294967280){c:{d:{if(f>>>0>=11){g=(f|15)+1|0;a=na(g);F[e+24>>2]=g|-2147483648;F[e+16>>2]=a;F[e+20>>2]=f;break d}D[e+27|0]=f;a=e+16|0;if(!f){break c}}oa(a,c,f)}D[a+f|0]=0;c=Ba(d);if(c>>>0>=4294967280){break b}e:{f:{if(c>>>0>=11){f=(c|15)+1|0;a=na(f);F[e+8>>2]=f|-2147483648;F[e>>2]=a;F[e+4>>2]=c;break f}D[e+11|0]=c;a=e;if(!c){break e}}oa(a,d,c)}D[a+c|0]=0;c=F[b+4>>2];a=-1;g:{if(!c){break g}c=Tc(c,e+16|0,e);a=-1;if(!c){break g}a=Oc(b,F[c+24>>2])}if(D[e+11|0]<0){ma(F[e>>2])}if(D[e+27|0]<0){ma(F[e+16>>2])}aa=e+32|0;break a}Ca();v()}Ca();v()}return a|0}function pe(a,b){a=a|0;b=b|0;a=0;a:{switch(b|0){case 0:a=na(20);F[a+12>>2]=-1;F[a+16>>2]=0;F[a+4>>2]=0;F[a+8>>2]=0;F[a>>2]=1920;return a|0;case 1:a=na(24);F[a+12>>2]=-1;F[a+16>>2]=0;F[a+4>>2]=0;F[a+8>>2]=0;F[a>>2]=1920;F[a+20>>2]=0;F[a>>2]=2136;return a|0;case 2:a=na(48);F[a+12>>2]=-1;F[a+16>>2]=0;F[a+4>>2]=0;F[a+8>>2]=0;F[a>>2]=1920;F[a+20>>2]=0;F[a>>2]=2136;F[a+24>>2]=1624;F[a>>2]=7948;F[a+32>>2]=0;F[a+36>>2]=0;F[a+28>>2]=-1;F[a+40>>2]=0;F[a+44>>2]=0;return a|0;case 3:a=na(32);F[a+12>>2]=-1;F[a+16>>2]=0;F[a+4>>2]=0;F[a+8>>2]=0;F[a>>2]=1920;F[a+20>>2]=0;F[a>>2]=2136;F[a+24>>2]=1032;F[a>>2]=5812;F[a+28>>2]=-1;break;default:break a}}return a|0}function jh(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0;F[b>>2]=1;f=b+8|0;c=F[b+8>>2];d=F[b+12>>2]-c|0;if(d>>>0<=4294967291){Eb(f,d+4|0);c=F[f>>2]}c=c+d|0;d=F[a+4>>2];D[c|0]=d;D[c+1|0]=d>>>8;D[c+2|0]=d>>>16;D[c+3|0]=d>>>24;c=F[a+8>>2];if((c|0)!=F[a+12>>2]){d=0;while(1){g=(d<<2)+c|0;c=F[b+8>>2];e=F[b+12>>2]-c|0;if(e>>>0<=4294967291){Eb(f,e+4|0);c=F[f>>2]}c=c+e|0;e=F[g>>2];D[c|0]=e;D[c+1|0]=e>>>8;D[c+2|0]=e>>>16;D[c+3|0]=e>>>24;d=d+1|0;c=F[a+8>>2];if(d>>>0>2]-c>>2>>>0){continue}break}}c=F[b+12>>2];b=F[b+8>>2];c=c-b|0;if(c>>>0<=4294967291){Eb(f,c+4|0);b=F[f>>2]}b=b+c|0;a=F[a+20>>2];D[b|0]=a;D[b+1|0]=a>>>8;D[b+2|0]=a>>>16;D[b+3|0]=a>>>24}function ke(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0;h=F[c+12>>2];d=h;e=F[c+20>>2];i=F[c+8>>2];f=F[c+16>>2];a:{if((d|0)<=(e|0)&i>>>0<=f>>>0|(d|0)<(e|0)){break a}j=F[c>>2];k=D[j+f|0];d=e;g=f+1|0;d=g?d:d+1|0;F[c+16>>2]=g;F[c+20>>2]=d;b:{if((k|0)==-2){break b}if((d|0)>=(h|0)&g>>>0>=i>>>0|(d|0)>(h|0)){break a}d=D[g+j|0];f=f+2|0;e=f>>>0<2?e+1|0:e;F[c+16>>2]=f;F[c+20>>2]=e;if((d-4&255)>>>0<251){break a}e=ca[F[F[a>>2]+40>>2]](a,k,d)|0;d=F[a+20>>2];F[a+20>>2]=e;if(!d){break b}ca[F[F[d>>2]+4>>2]](d)}d=F[a+20>>2];if(d){if(!(ca[F[F[a>>2]+28>>2]](a,d)|0)){break a}}l=ca[F[F[a>>2]+36>>2]](a,b,c)|0}return l|0}function ib(a,b,c){var d=0,e=0,f=0,g=0,h=0;f=c-b|0;g=f>>2;d=F[a+8>>2];e=F[a>>2];if(g>>>0<=d-e>>2>>>0){d=F[a+4>>2];f=d-e|0;h=f>>2;f=g>>>0>h>>>0?b+f|0:c;if((f|0)!=(b|0)){while(1){F[e>>2]=F[b>>2];e=e+4|0;b=b+4|0;if((f|0)!=(b|0)){continue}break}}if(g>>>0>h>>>0){b=c-f|0;if((b|0)>0){d=oa(d,f,b)+b|0}F[a+4>>2]=d;return}F[a+4>>2]=e;return}if(e){F[a+4>>2]=e;ma(e);F[a+8>>2]=0;F[a>>2]=0;F[a+4>>2]=0;d=0}a:{if((f|0)<0){break a}e=d>>1;d=d>>>0>=2147483644?1073741823:e>>>0>g>>>0?e:g;if(d>>>0>=1073741824){break a}e=d<<2;d=na(e);F[a>>2]=d;F[a+4>>2]=d;F[a+8>>2]=d+e;if((b|0)!=(c|0)){d=oa(d,b,f)+f|0}F[a+4>>2]=d;return}qa();v()}function Dh(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0;f=aa-32|0;aa=f;h=e>>>0>1073741823?-1:e<<2;h=pa(na(h),0,h);g=F[b>>2];i=F[b+4>>2];k=F[h+4>>2];F[f+16>>2]=F[h>>2];F[f+20>>2]=k;F[f+8>>2]=g;F[f+12>>2]=i;i=a+8|0;Kb(f+24|0,i,f+16|0,f+8|0);F[c>>2]=F[f+24>>2];F[c+4>>2]=F[f+28>>2];if((d|0)>(e|0)){k=0-e<<2;a=e;while(1){g=a<<2;j=g+b|0;m=F[j>>2];j=F[j+4>>2];g=c+g|0;l=g+k|0;n=F[l+4>>2];F[f+16>>2]=F[l>>2];F[f+20>>2]=n;F[f+8>>2]=m;F[f+12>>2]=j;Kb(f+24|0,i,f+16|0,f+8|0);F[g>>2]=F[f+24>>2];F[g+4>>2]=F[f+28>>2];a=a+e|0;if((d|0)>(a|0)){continue}break}}ma(h);aa=f+32|0;return 1}function yf(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0;a:{if(I[b+80>>2]>65535){break a}a=F[b+100>>2];b=F[b+96>>2];e=(a-b|0)/12|0;f=L(e,6);g=(f|0)==(c|0);if((a|0)==(b|0)|(c|0)!=(f|0)){break a}g=1;c=e>>>0<=1?1:e;i=c&1;a=0;if(e>>>0>=2){j=c&-2;c=0;while(1){f=L(a,6);h=f+d|0;e=b+L(a,12)|0;E[h>>1]=F[e>>2];E[(f|2)+d>>1]=F[e+4>>2];E[h+4>>1]=F[e+8>>2];f=a|1;e=L(f,6)+d|0;f=b+L(f,12)|0;E[e>>1]=F[f>>2];E[e+2>>1]=F[f+4>>2];E[e+4>>1]=F[f+8>>2];a=a+2|0;c=c+2|0;if((j|0)!=(c|0)){continue}break}}if(!i){break a}c=L(a,6)+d|0;a=b+L(a,12)|0;E[c>>1]=F[a>>2];E[c+2>>1]=F[a+4>>2];E[c+4>>1]=F[a+8>>2]}return g|0}function Pf(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0,g=0;a=aa-32|0;aa=a;F[a+24>>2]=0;F[a+28>>2]=0;a:{d=Ba(c);if(d>>>0<4294967280){b:{c:{if(d>>>0>=11){f=(d|15)+1|0;e=na(f);F[a+16>>2]=f|-2147483648;F[a+8>>2]=e;F[a+12>>2]=d;break c}D[a+19|0]=d;e=a+8|0;if(!d){break b}}oa(e,c,d)}D[d+e|0]=0;c=b+4|0;b=ab(b,a+8|0);d:{if((c|0)==(b|0)){break d}c=F[b+32>>2];b=F[b+28>>2];if((c-b|0)!=8){break d}c=G[b+4|0]|G[b+5|0]<<8|(G[b+6|0]<<16|G[b+7|0]<<24);F[a+24>>2]=G[b|0]|G[b+1|0]<<8|(G[b+2|0]<<16|G[b+3|0]<<24);F[a+28>>2]=c}g=K[a+24>>3];if(D[a+19|0]<0){ma(F[a+8>>2])}aa=a+32|0;break a}Ca();v()}return+g}function Qd(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0;e=F[b+12>>2];c=F[b+20>>2];f=c;g=F[b+16>>2];d=g+4|0;c=d>>>0<4?c+1|0:c;h=F[b+8>>2];i=d;a:{if(h>>>0>>0&(c|0)>=(e|0)|(c|0)>(e|0)){break a}d=g+F[b>>2]|0;d=G[d|0]|G[d+1|0]<<8|(G[d+2|0]<<16|G[d+3|0]<<24);F[b+16>>2]=i;F[b+20>>2]=c;c=f;f=g+8|0;c=f>>>0<8?c+1|0:c;if(f>>>0>h>>>0&(c|0)>=(e|0)|(c|0)>(e|0)){break a}F[b+16>>2]=f;F[b+20>>2]=c;if(!(d&1)){break a}c=O(d)^31;if(c-30>>>0<4294967267){break a}F[a+8>>2]=c+1;e=-2<>2]=c;F[a+12>>2]=e^-1;F[a+24>>2]=(c|0)/2;J[a+20>>2]=M(2)/M(c|0);j=Da(a+96|0,b)}return j|0}function wd(a){var b=0,c=0,d=0,e=0,f=0;f=1;c=F[a+140>>2];a:{if((c|0)<=0){break a}b=c<<4;d=na(c>>>0>268435455?-1:b|4);F[d>>2]=c;d=d+4|0;c=d+b|0;b=d;while(1){F[b>>2]=0;F[b+4>>2]=0;D[b+5|0]=0;D[b+6|0]=0;D[b+7|0]=0;D[b+8|0]=0;D[b+9|0]=0;D[b+10|0]=0;D[b+11|0]=0;D[b+12|0]=0;b=b+16|0;if((c|0)!=(b|0)){continue}break}e=F[a+136>>2];F[a+136>>2]=d;if(e){c=e-4|0;d=F[c>>2];if(d){b=(d<<4)+e|0;while(1){b=b-16|0;if((e|0)!=(b|0)){continue}break}}ma(c)}b=0;if(F[a+140>>2]<=0){break a}while(1){f=Da(F[a+136>>2]+(b<<4)|0,a);if(!f){break a}b=b+1|0;if((b|0)>2]){continue}break}}return f} +function _b(a,b){var c=0,d=0,e=0,f=0,g=0;a:{if(F[a+64>>2]){break a}c=na(32);F[c+16>>2]=0;F[c+20>>2]=0;F[c+8>>2]=0;F[c>>2]=0;F[c+4>>2]=0;F[c+24>>2]=0;F[c+28>>2]=0;d=F[a+64>>2];F[a+64>>2]=c;if(!d){break a}c=F[d>>2];if(c){F[d+4>>2]=c;ma(c)}ma(d)}e=F[a+64>>2];c=F[a+28>>2]-1|0;if(c>>>0<=10){d=F[(c<<2)+10148>>2]}else{d=-1}c=L(d,G[a+24|0]);d=c;g=c>>31;e=ld(e,0,gi(c,g,b,0),ba);if(e){c=F[a+64>>2];F[a>>2]=c;f=F[c+20>>2];F[a+8>>2]=F[c+16>>2];F[a+12>>2]=f;f=F[c+24>>2];c=F[c+28>>2];F[a+48>>2]=0;F[a+52>>2]=0;F[a+40>>2]=d;F[a+44>>2]=g;F[a+16>>2]=f;F[a+20>>2]=c;F[a+80>>2]=b}return e}function Hh(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0;f=F[b+12>>2];c=F[b+20>>2];e=c;g=F[b+16>>2];d=g+4|0;c=d>>>0<4?c+1|0:c;h=F[b+8>>2];i=d;a:{if(h>>>0>>0&(c|0)>=(f|0)|(c|0)>(f|0)){break a}d=g+F[b>>2]|0;d=G[d|0]|G[d+1|0]<<8|(G[d+2|0]<<16|G[d+3|0]<<24);F[b+16>>2]=i;F[b+20>>2]=c;c=e;e=g+8|0;c=e>>>0<8?c+1|0:c;if(e>>>0>h>>>0&(c|0)>=(f|0)|(c|0)>(f|0)){break a}F[b+16>>2]=e;F[b+20>>2]=c;if(!(d&1)){break a}b=O(d)^31;if(b-30>>>0<4294967267){break a}j=1;F[a+8>>2]=b+1;c=-2<>2]=b;F[a+12>>2]=c^-1;F[a+24>>2]=(b|0)/2;J[a+20>>2]=M(2)/M(b|0)}return j|0}function $b(a,b){var c=0;c=F[b+4>>2];F[a>>2]=F[b>>2];F[a+4>>2]=c;c=F[b+60>>2];F[a+56>>2]=F[b+56>>2];F[a+60>>2]=c;c=F[b+52>>2];F[a+48>>2]=F[b+48>>2];F[a+52>>2]=c;c=F[b+44>>2];F[a+40>>2]=F[b+40>>2];F[a+44>>2]=c;c=F[b+36>>2];F[a+32>>2]=F[b+32>>2];F[a+36>>2]=c;c=F[b+28>>2];F[a+24>>2]=F[b+24>>2];F[a+28>>2]=c;c=F[b+20>>2];F[a+16>>2]=F[b+16>>2];F[a+20>>2]=c;c=F[b+12>>2];F[a+8>>2]=F[b+8>>2];F[a+12>>2]=c;F[a+88>>2]=0;F[a+64>>2]=0;F[a+68>>2]=0;F[a+72>>2]=0;F[a+76>>2]=0;D[a+77|0]=0;D[a+78|0]=0;D[a+79|0]=0;D[a+80|0]=0;D[a+81|0]=0;D[a+82|0]=0;D[a+83|0]=0;D[a+84|0]=0;return a}function xf(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0;a=F[b+100>>2];b=F[b+96>>2];h=a-b|0;a:{if((h|0)!=(c|0)|(a|0)==(b|0)){break a}g=(c|0)/12|0;e=g>>>0<=1?1:g;j=e&1;a=0;if(g>>>0>=2){k=e&-2;g=0;while(1){e=L(a,12);i=e+d|0;f=b+e|0;F[i>>2]=F[f>>2];F[(e|4)+d>>2]=F[f+4>>2];F[i+8>>2]=F[f+8>>2];f=L(a|1,12);e=f+d|0;f=b+f|0;F[e>>2]=F[f>>2];F[e+4>>2]=F[f+4>>2];F[e+8>>2]=F[f+8>>2];a=a+2|0;g=g+2|0;if((k|0)!=(g|0)){continue}break}}if(!j){break a}e=d;d=L(a,12);a=e+d|0;b=b+d|0;F[a>>2]=F[b>>2];F[a+4>>2]=F[b+4>>2];F[a+8>>2]=F[b+8>>2]}return(c|0)==(h|0)|0}function ab(a,b){var c=0,d=0,e=0,f=0,g=0,h=0,i=0;f=a+4|0;a=F[a+4>>2];a:{b:{if(!a){break b}d=G[b+11|0];c=d<<24>>24<0;g=c?F[b>>2]:b;d=c?F[b+4>>2]:d;b=f;while(1){e=G[a+27|0];c=e<<24>>24<0;e=c?F[a+20>>2]:e;h=e>>>0>d>>>0;i=h?d:e;c:{if(i){c=ua(c?F[a+16>>2]:a+16|0,g,i);if(c){break c}}c=d>>>0>e>>>0?-1:h}c=(c|0)<0;b=c?b:a;a=F[(c?a+4|0:a)>>2];if(a){continue}break}if((b|0)==(f|0)){break b}c=G[b+27|0];a=c<<24>>24<0;d:{c=a?F[b+20>>2]:c;e=c>>>0>>0?c:d;if(e){a=ua(g,a?F[b+16>>2]:b+16|0,e);if(a){break d}}if(c>>>0>d>>>0){break b}break a}if((a|0)>=0){break a}}b=f}return b}function Me(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;if(Na(a,F[b+8>>2],e)){if(!(F[b+28>>2]==1|F[b+4>>2]!=(c|0))){F[b+28>>2]=d}return}a:{if(Na(a,F[b>>2],e)){if(!(F[b+16>>2]!=(c|0)&F[b+20>>2]!=(c|0))){if((d|0)!=1){break a}F[b+32>>2]=1;return}F[b+32>>2]=d;b:{if(F[b+44>>2]==4){break b}E[b+52>>1]=0;a=F[a+8>>2];ca[F[F[a>>2]+20>>2]](a,b,c,c,1,e);if(G[b+53|0]){F[b+44>>2]=3;if(!G[b+52|0]){break b}break a}F[b+44>>2]=4}F[b+20>>2]=c;F[b+40>>2]=F[b+40>>2]+1;if(F[b+36>>2]!=1|F[b+24>>2]!=2){break a}D[b+54|0]=1;return}a=F[a+8>>2];ca[F[F[a>>2]+24>>2]](a,b,c,d,e)}}function Fg(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0;f=na(64);c=na(12);F[c+8>>2]=F[F[a+4>>2]+80>>2];F[c>>2]=9968;F[c+4>>2]=0;f=xc(f,c);a:{b:{if((b|0)<0){c=f;break b}h=a+8|0;c=F[a+12>>2];e=F[a+8>>2];g=c-e>>2;c:{if((g|0)>(b|0)){break c}d=b+1|0;if(b>>>0>=g>>>0){Qb(h,d-g|0);break c}if(d>>>0>=g>>>0){break c}e=e+(d<<2)|0;if((e|0)!=(c|0)){while(1){c=c-4|0;d=F[c>>2];F[c>>2]=0;if(d){ca[F[F[d>>2]+4>>2]](d)}if((c|0)!=(e|0)){continue}break}}F[a+12>>2]=e}a=F[h>>2]+(b<<2)|0;c=F[a>>2];F[a>>2]=f;if(!c){break a}}ca[F[F[c>>2]+4>>2]](c)}return(b^-1)>>>31|0}function Zc(a,b,c){var d=0,e=0,f=0,g=0;a:{if((b|c)>=0){b:{if(b>>>0>1431655765){break b}d=L(b,3);Wb(a,d,10224);Wb(a+12|0,d,10228);d=F[a+24>>2];c:{if(F[a+32>>2]-d>>2>>>0>=c>>>0){break c}if(c>>>0>=1073741824){break a}e=F[a+28>>2];f=c<<2;c=na(f);f=c+f|0;e=e-d|0;g=e+c|0;if((e|0)>0){oa(c,d,e)}F[a+32>>2]=f;F[a+28>>2]=g;F[a+24>>2]=c;if(!d){break c}ma(d)}F[a+80>>2]=0;F[a+84>>2]=0;c=F[a+76>>2];F[a+76>>2]=0;if(c){ma(c)}F[a+68>>2]=0;F[a+72>>2]=0;c=a- -64|0;a=F[c>>2];F[c>>2]=0;if(!a){break b}ma(a)}a=b>>>0<1431655766}else{a=0}return a}qa();v()}function te(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0;c=F[a+60>>2];a:{if(!c){break a}F[c+4>>2]=a+48;if(!(ca[F[F[c>>2]+12>>2]](c)|0)){break a}b:{c=ca[F[F[a>>2]+24>>2]](a)|0;if((c|0)<=0){break b}while(1){c:{f=F[(ca[F[F[a>>2]+28>>2]](a)|0)+4>>2];g=ca[F[F[a>>2]+20>>2]](a,d)|0;e=F[a+60>>2];if(!(ca[F[F[e>>2]+8>>2]](e,F[F[f+8>>2]+(g<<2)>>2])|0)){break c}d=d+1|0;if((c|0)!=(d|0)){continue}break b}break}return 0}d=0;if(!(ca[F[F[a>>2]+36>>2]](a,b)|0)){break a}if(!(ca[F[F[a>>2]+40>>2]](a,b)|0)){break a}d=ca[F[F[a>>2]+44>>2]](a)|0}return d|0}function ob(a,b){var c=0,d=0,e=0,f=0,g=0,h=0;c=F[a+4>>2];if((c|0)!=F[a+8>>2]){d=F[b+4>>2];F[c>>2]=F[b>>2];F[c+4>>2]=d;F[c+8>>2]=F[b+8>>2];F[a+4>>2]=c+12;return}a:{f=F[a>>2];g=c-f|0;d=(g|0)/12|0;c=d+1|0;if(c>>>0<357913942){e=d<<1;e=d>>>0>=178956970?357913941:c>>>0>>0?e:c;if(e){if(e>>>0>=357913942){break a}c=na(L(e,12))}else{c=0}d=c+L(d,12)|0;h=F[b+4>>2];F[d>>2]=F[b>>2];F[d+4>>2]=h;F[d+8>>2]=F[b+8>>2];b=d+L((g|0)/-12|0,12)|0;if((g|0)>0){oa(b,f,g)}F[a+8>>2]=c+L(e,12);F[a+4>>2]=d+12;F[a>>2]=b;if(f){ma(f)}return}qa();v()}sa();v()}function Fc(a,b,c,d,e,f,g){var h=0,i=0,j=0;i=aa-16|0;aa=i;h=-17;if((b^-1)-17>>>0>=c>>>0){if(G[a+11|0]>>>7|0){j=F[a>>2]}else{j=a}if(b>>>0<2147483623){F[i+8>>2]=b<<1;F[i+12>>2]=b+c;c=aa-16|0;aa=c;aa=c+16|0;c=i+8|0;h=i+12|0;c=F[(I[h>>2]>2]?c:h)>>2];if(c>>>0>=11){h=c+16&-16;c=h-1|0;c=(c|0)==11?h:c}else{c=10}h=c+1|0}c=na(h);if(f){gb(c,g,f)}g=d-e|0;if((d|0)!=(e|0)){gb(c+f|0,e+j|0,g)}if((b|0)!=10){ma(j)}F[a>>2]=c;F[a+8>>2]=h|-2147483648;b=a;a=f+g|0;F[b+4>>2]=a;D[i+7|0]=0;D[a+c|0]=G[i+7|0];aa=i+16|0;return}Ca();v()}function Gd(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0;c=F[a+216>>2];if((c|0)!=F[a+220>>2]){while(1){a:{c=F[L(e,144)+c>>2];if((c|0)<0){break a}d=F[a+4>>2];f=F[d+8>>2];if((c|0)>=F[d+12>>2]-f>>2){break a}d=0;c=F[(c<<2)+f>>2];if((ca[F[F[c>>2]+24>>2]](c)|0)<=0){break a}while(1){if((ca[F[F[c>>2]+20>>2]](c,d)|0)!=(b|0)){d=d+1|0;if((ca[F[F[c>>2]+24>>2]](c)|0)>(d|0)){continue}break a}break}a=F[a+216>>2]+L(e,144)|0;return(G[a+100|0]?a+4|0:0)|0}e=e+1|0;c=F[a+216>>2];if(e>>>0<(F[a+220>>2]-c|0)/144>>>0){continue}break}}return 0}function eb(a){var b=0,c=0,d=0,e=0,f=0;d=F[a+8>>2];a:{if(G[d+84|0]){break a}b=F[a+16>>2];if(!b|!G[b+84|0]){break a}c=F[d+72>>2];e=F[d+68>>2];D[b+84|0]=0;c=c-e>>2;f=F[b+68>>2];e=F[b+72>>2]-f>>2;b:{if(c>>>0>e>>>0){xa(b+68|0,c-e|0,2004);d=F[a+8>>2];break b}if(c>>>0>=e>>>0){break b}F[b+72>>2]=f+(c<<2)}if(G[d+84|0]){break a}c=F[d+68>>2];if((c|0)==F[d+72>>2]){break a}e=F[F[a+16>>2]+68>>2];b=0;while(1){f=b<<2;F[f+e>>2]=F[c+f>>2];b=b+1|0;c=F[d+68>>2];if(b>>>0>2]-c>>2>>>0){continue}break}}return F[a+16>>2]}function If(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,f=0,g=0;e=aa+-64|0;aa=e;f=La(e+8|0);F[f+16>>2]=0;F[f+20>>2]=0;F[f>>2]=b;F[f+8>>2]=c;F[f+12>>2]=0;b=e+48|0;Nd(b,a,f,d);F[a+24>>2]=F[e+48>>2];f=a+24|0;a:{if((f|0)==(b|0)){break a}b=a+28|0;c=e+48|4;g=G[e+63|0];d=g<<24>>24;if(D[a+39|0]>=0){if((d|0)>=0){a=F[c+4>>2];F[b>>2]=F[c>>2];F[b+4>>2]=a;F[b+8>>2]=F[c+8>>2];break a}sb(b,F[e+52>>2],F[e+56>>2]);break a}a=(d|0)<0;tb(b,a?F[e+52>>2]:c,a?F[e+56>>2]:g)}if(D[e+63|0]<0){ma(F[e+52>>2])}aa=e- -64|0;return f|0}function Fd(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0;c=F[a+216>>2];if((c|0)!=F[a+220>>2]){while(1){a:{c=F[L(e,144)+c>>2];if((c|0)<0){break a}d=F[a+4>>2];f=F[d+8>>2];if((c|0)>=F[d+12>>2]-f>>2){break a}d=0;c=F[(c<<2)+f>>2];if((ca[F[F[c>>2]+24>>2]](c)|0)<=0){break a}while(1){if((ca[F[F[c>>2]+20>>2]](c,d)|0)!=(b|0)){d=d+1|0;if((ca[F[F[c>>2]+24>>2]](c)|0)>(d|0)){continue}break a}break}return(F[a+216>>2]+L(e,144)|0)+104|0}e=e+1|0;c=F[a+216>>2];if(e>>>0<(F[a+220>>2]-c|0)/144>>>0){continue}break}}return a+184|0}function Eb(a,b){var c=0,d=0,e=0,f=0,g=0,h=0,i=0;a:{c=F[a+4>>2];d=F[a>>2];f=c-d|0;b:{if(f>>>0>>0){g=b-f|0;e=F[a+8>>2];if(g>>>0<=e-c>>>0){h=a,i=pa(c,0,g)+g|0,F[h+4>>2]=i;break b}if((b|0)<0){break a}c=e-d|0;e=c<<1;e=c>>>0>=1073741823?2147483647:b>>>0>>0?e:b;c=na(e);pa(c+f|0,0,g);if((f|0)>0){oa(c,d,f)}F[a+8>>2]=c+e;F[a+4>>2]=b+c;F[a>>2]=c;if(!d){break b}ma(d);break b}if(b>>>0>=f>>>0){break b}F[a+4>>2]=b+d}b=F[a+28>>2];c=b;d=b+1|0;b=F[a+24>>2]+1|0;d=b?c:d;F[a+24>>2]=b;F[a+28>>2]=d;return}qa();v()}function Jf(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,f=0,g=0;d=aa+-64|0;aa=d;e=La(d+8|0);F[e+16>>2]=0;F[e+20>>2]=0;F[e>>2]=b;F[e+8>>2]=c;F[e+12>>2]=0;b=d+48|0;Md(b);F[a+24>>2]=F[d+48>>2];f=a+24|0;a:{if((b|0)==(f|0)){break a}b=a+28|0;c=d+48|4;g=G[d+63|0];e=g<<24>>24;if(D[a+39|0]>=0){if((e|0)>=0){a=F[c+4>>2];F[b>>2]=F[c>>2];F[b+4>>2]=a;F[b+8>>2]=F[c+8>>2];break a}sb(b,F[d+52>>2],F[d+56>>2]);break a}a=(e|0)<0;tb(b,a?F[d+52>>2]:c,a?F[d+56>>2]:g)}if(D[d+63|0]<0){ma(F[d+52>>2])}aa=d- -64|0;return f|0}function ze(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0;if((ca[F[F[b>>2]+20>>2]](b)|0)<=0){return 1}while(1){a:{g=0;d=Pc(F[F[a+4>>2]+4>>2],ca[F[F[b>>2]+24>>2]](b,e)|0);if((d|0)==-1){break a}f=F[a+4>>2];c=0;b:{if((d|0)<0){break b}h=F[f+4>>2];if((d|0)>=F[h+12>>2]-F[h+8>>2]>>2){break b}c=F[F[f+8>>2]+(F[F[f+20>>2]+(d<<2)>>2]<<2)>>2];c=ca[F[F[c>>2]+32>>2]](c,d)|0}if(!c){break a}if(!(ca[F[F[b>>2]+28>>2]](b,c)|0)){break a}g=1;e=e+1|0;if((ca[F[F[b>>2]+20>>2]](b)|0)>(e|0)){continue}}break}return g|0}function Gf(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0;a=aa-32|0;aa=a;a:{d=Ba(c);if(d>>>0<4294967280){b:{c:{if(d>>>0>=11){f=(d|15)+1|0;e=na(f);F[a+24>>2]=f|-2147483648;F[a+16>>2]=e;F[a+20>>2]=d;break c}D[a+27|0]=d;e=a+16|0;if(!d){break b}}oa(e,c,d)}D[d+e|0]=0;D[a+4|0]=0;F[a>>2]=1701667182;D[a+11|0]=4;d=F[b+4>>2];c=-1;d:{if(!d){break d}d=Tc(d,a,a+16|0);c=-1;if(!d){break d}c=Oc(b,F[d+24>>2])}b=c;if(D[a+11|0]<0){ma(F[a>>2])}if(D[a+27|0]<0){ma(F[a+16>>2])}aa=a+32|0;break a}Ca();v()}return b|0}function ya(a){F[a>>2]=-1;F[a+4>>2]=0;F[a+8>>2]=0;F[a+32>>2]=0;F[a+36>>2]=0;D[a+28|0]=1;F[a+20>>2]=0;F[a+24>>2]=0;F[a+12>>2]=0;F[a+16>>2]=0;F[a+40>>2]=0;F[a+44>>2]=0;F[a+48>>2]=0;F[a+52>>2]=0;F[a+56>>2]=0;F[a+60>>2]=0;F[a+64>>2]=0;F[a+68>>2]=0;F[a+76>>2]=0;F[a+80>>2]=0;F[a+84>>2]=0;F[a+88>>2]=0;F[a+92>>2]=0;F[a+96>>2]=0;F[a+72>>2]=a+4;F[a+104>>2]=0;F[a+108>>2]=0;D[a+100|0]=1;F[a+112>>2]=0;F[a+116>>2]=0;F[a+120>>2]=0;F[a+124>>2]=0;F[a+128>>2]=0;F[a+132>>2]=0;F[a+136>>2]=0;F[a+140>>2]=0}function Rf(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0;d=aa-16|0;aa=d;F[d+12>>2]=0;a:{e=Ba(c);if(e>>>0<4294967280){b:{c:{if(e>>>0>=11){f=(e|15)+1|0;a=na(f);F[d+8>>2]=f|-2147483648;F[d>>2]=a;F[d+4>>2]=e;break c}D[d+11|0]=e;a=d;if(!e){break b}}oa(a,c,e)}D[a+e|0]=0;a=ab(b,d);d:{if((a|0)==(b+4|0)){break d}b=F[a+32>>2];a=F[a+28>>2];if((b-a|0)!=4){break d}F[d+12>>2]=G[a|0]|G[a+1|0]<<8|(G[a+2|0]<<16|G[a+3|0]<<24)}a=F[d+12>>2];if(D[d+11|0]<0){ma(F[d>>2])}aa=d+16|0;break a}Ca();v()}return a|0}function ub(a){a=a|0;var b=0,c=0,d=0;F[a>>2]=10300;b=F[a+68>>2];if(b){F[a+72>>2]=b;ma(b)}b=F[a+56>>2];if(b){F[a+60>>2]=b;ma(b)}b=F[a+44>>2];if(b){F[a+48>>2]=b;ma(b)}b=F[a+32>>2];if(b){F[a+36>>2]=b;ma(b)}b=F[a+20>>2];if(b){F[a+24>>2]=b;ma(b)}b=F[a+8>>2];if(b){d=b;c=F[a+12>>2];if((b|0)!=(c|0)){while(1){c=c-4|0;d=F[c>>2];F[c>>2]=0;if(d){Aa(d)}if((b|0)!=(c|0)){continue}break}d=F[a+8>>2]}F[a+12>>2]=b;ma(d)}b=F[a+4>>2];F[a+4>>2]=0;if(b){gc(b)}return a|0}function ra(a,b){var c=0,d=0,e=0,f=0,g=0,h=0,i=0;e=F[a+8>>2];c=F[a+4>>2];if(e-c>>2>>>0>=b>>>0){if(b){b=b<<2;c=pa(c,0,b)+b|0}F[a+4>>2]=c;return}a:{f=F[a>>2];g=c-f|0;h=g>>2;d=h+b|0;if(d>>>0<1073741824){c=0;e=e-f|0;i=e>>1;d=e>>>0>=2147483644?1073741823:d>>>0>>0?i:d;if(d){if(d>>>0>=1073741824){break a}c=na(d<<2)}b=b<<2;b=pa((h<<2)+c|0,0,b)+b|0;if((g|0)>0){oa(c,f,g)}F[a+8>>2]=(d<<2)+c;F[a+4>>2]=b;F[a>>2]=c;if(f){ma(f)}return}qa();v()}sa();v()}function cb(a,b){var c=0,d=0,e=0,f=0,g=0,h=0,i=0;e=F[a+8>>2];c=F[a+4>>2];if(e-c>>3>>>0>=b>>>0){if(b){b=b<<3;c=pa(c,0,b)+b|0}F[a+4>>2]=c;return}a:{f=F[a>>2];g=c-f|0;h=g>>3;d=h+b|0;if(d>>>0<536870912){c=0;e=e-f|0;i=e>>2;d=e>>>0>=2147483640?536870911:d>>>0>>0?i:d;if(d){if(d>>>0>=536870912){break a}c=na(d<<3)}b=b<<3;b=pa((h<<3)+c|0,0,b)+b|0;if((g|0)>0){oa(c,f,g)}F[a+8>>2]=(d<<3)+c;F[a+4>>2]=b;F[a>>2]=c;if(f){ma(f)}return}qa();v()}sa();v()}function Ta(a,b){var c=0,d=0,e=0,f=0,g=0,h=0;e=F[a>>2];a=F[e+4>>2];c=F[e+8>>2];if(a>>>0>>0){F[a>>2]=F[b>>2];F[e+4>>2]=a+4;return}a:{f=F[e>>2];g=a-f|0;d=g>>2;a=d+1|0;if(a>>>0<1073741824){h=d<<2;c=c-f|0;d=c>>1;c=c>>>0>=2147483644?1073741823:a>>>0>>0?d:a;if(c){if(c>>>0>=1073741824){break a}a=na(c<<2)}else{a=0}d=h+a|0;F[d>>2]=F[b>>2];if((g|0)>0){oa(a,f,g)}F[e+8>>2]=a+(c<<2);F[e+4>>2]=d+4;F[e>>2]=a;if(f){ma(f)}return}qa();v()}sa();v()}function ec(a,b){var c=0,d=0,e=0,f=0;c=a+4|0;a=ab(a,b);a:{if((c|0)==(a|0)){break a}b=a+28|0;b=D[a+39|0]<0?F[b>>2]:b;while(1){a=b;b=a+1|0;c=D[a|0];if((c|0)==32|c-9>>>0<5){continue}break}b:{c:{d:{c=D[a|0];switch(c-43|0){case 0:break c;case 2:break d;default:break b}}e=1}c=D[b|0];a=b}if(c-48>>>0<10){while(1){d=(L(d,10)-D[a|0]|0)+48|0;b=D[a+1|0];a=a+1|0;if(b-48>>>0<10){continue}break}}a=e?d:0-d|0;if((a|0)==-1){break a}f=(a|0)!=0}return f}function oe(a){a=a|0;var b=0,c=0,d=0;F[a>>2]=2016;b=F[a+60>>2];F[a+60>>2]=0;if(b){ca[F[F[b>>2]+4>>2]](b)}b=F[a+48>>2];if(b){F[a+52>>2]=b;ma(b)}d=F[a+36>>2];if(d){c=F[a+40>>2];b=d;if((c|0)!=(b|0)){while(1){c=c-4|0;b=F[c>>2];F[c>>2]=0;if(b){ca[F[F[b>>2]+4>>2]](b)}if((c|0)!=(d|0)){continue}break}b=F[a+36>>2]}F[a+40>>2]=d;ma(b)}F[a>>2]=1776;b=F[a+16>>2];if(b){F[a+20>>2]=b;ma(b)}b=F[a+4>>2];if(b){F[a+8>>2]=b;ma(b)}return a|0}function ne(a){a=a|0;var b=0,c=0,d=0;F[a>>2]=2016;b=F[a+60>>2];F[a+60>>2]=0;if(b){ca[F[F[b>>2]+4>>2]](b)}b=F[a+48>>2];if(b){F[a+52>>2]=b;ma(b)}d=F[a+36>>2];if(d){c=F[a+40>>2];b=d;if((c|0)!=(b|0)){while(1){c=c-4|0;b=F[c>>2];F[c>>2]=0;if(b){ca[F[F[b>>2]+4>>2]](b)}if((c|0)!=(d|0)){continue}break}b=F[a+36>>2]}F[a+40>>2]=d;ma(b)}F[a>>2]=1776;b=F[a+16>>2];if(b){F[a+20>>2]=b;ma(b)}b=F[a+4>>2];if(b){F[a+8>>2]=b;ma(b)}ma(a)}function jd(a,b){var c=0,d=0,e=0,f=0,g=0,h=0;e=F[a+8>>2];c=F[a+4>>2];if(e-c>>1>>>0>=b>>>0){if(b){b=b<<1;c=pa(c,0,b)+b|0}F[a+4>>2]=c;return}a:{f=F[a>>2];g=c-f|0;h=g>>1;d=h+b|0;if((d|0)>=0){c=0;e=e-f|0;d=e>>>0>=2147483646?2147483647:d>>>0>>0?e:d;if(d){if((d|0)<0){break a}c=na(d<<1)}b=b<<1;b=pa((h<<1)+c|0,0,b)+b|0;if((g|0)>0){oa(c,f,g)}F[a+8>>2]=(d<<1)+c;F[a+4>>2]=b;F[a>>2]=c;if(f){ma(f)}return}qa();v()}sa();v()}function bh(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0;d=aa-16|0;aa=d;e=F[a+4>>2];a:{if((e|0)==-1){break a}c=F[b+20>>2];if(!!F[b+16>>2]&(c|0)>=0|(c|0)>0){break a}rb(b,F[b+4>>2],F[a+8>>2],F[a+12>>2]);c=F[b+20>>2];if(!!F[b+16>>2]&(c|0)>=0|(c|0)>0){break a}rb(b,F[b+4>>2],a+20|0,a+24|0);c=F[b+20>>2];f=F[b+16>>2];D[d+15|0]=F[a+4>>2];if(!!f&(c|0)>=0|(c|0)>0){break a}rb(b,F[b+4>>2],d+15|0,d+16|0)}aa=d+16|0;return(e|0)!=-1|0}function Bg(a){a=a|0;var b=0,c=0,d=0,e=0,f=0;a:{b=F[a+8>>2];b:{if((b|0)<0){break b}c=F[a+4>>2];e=F[c>>2];d=F[c+4>>2]-e>>2;c:{if(d>>>0>>0){ra(c,b-d|0);f=F[a+8>>2];break c}f=b;if(b>>>0>=d>>>0){break c}F[c+4>>2]=e+(b<<2);f=b}d=f;if((d|0)<=0){break b}a=F[a+4>>2];c=F[a>>2];e=F[a+4>>2]-c>>2;a=0;while(1){if((a|0)==(e|0)){break a}F[c+(a<<2)>>2]=a;a=a+1|0;if((d|0)!=(a|0)){continue}break}}return(b^-1)>>>31|0}va();v()}function Oa(a,b){var c=0,d=0,e=0,f=0,g=0;c=F[a+4>>2];if((c|0)!=F[a+8>>2]){F[c>>2]=F[b>>2];F[a+4>>2]=c+4;return}a:{g=F[a>>2];e=c-g|0;f=e>>2;c=f+1|0;if(c>>>0<1073741824){d=e>>1;d=e>>>0>=2147483644?1073741823:c>>>0>>0?d:c;if(d){if(d>>>0>=1073741824){break a}c=na(d<<2)}else{c=0}f=c+(f<<2)|0;F[f>>2]=F[b>>2];if((e|0)>0){oa(c,g,e)}F[a+8>>2]=c+(d<<2);F[a+4>>2]=f+4;F[a>>2]=c;if(g){ma(g)}return}qa();v()}sa();v()}function lf(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0,g=0;d=aa-16|0;aa=d;Nd(d,a,b,c);F[a+24>>2]=F[d>>2];e=a+24|0;a:{if((e|0)==(d|0)){break a}b=a+28|0;c=d|4;f=G[d+15|0];g=f<<24>>24;if(D[a+39|0]>=0){if((g|0)>=0){a=F[c+4>>2];F[b>>2]=F[c>>2];F[b+4>>2]=a;F[b+8>>2]=F[c+8>>2];break a}sb(b,F[d+4>>2],F[d+8>>2]);break a}a=(g|0)<0;tb(b,a?F[d+4>>2]:c,a?F[d+8>>2]:f)}if(D[d+15|0]<0){ma(F[d+4>>2])}aa=d+16|0;return e|0}function mf(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0,g=0;b=aa-16|0;aa=b;Md(b);F[a+24>>2]=F[b>>2];e=a+24|0;a:{if((e|0)==(b|0)){break a}c=a+28|0;d=b|4;f=G[b+15|0];g=f<<24>>24;if(D[a+39|0]>=0){if((g|0)>=0){a=F[d+4>>2];F[c>>2]=F[d>>2];F[c+4>>2]=a;F[c+8>>2]=F[d+8>>2];break a}sb(c,F[b+4>>2],F[b+8>>2]);break a}a=(g|0)<0;tb(c,a?F[b+4>>2]:d,a?F[b+8>>2]:f)}if(D[b+15|0]<0){ma(F[b+4>>2])}aa=b+16|0;return e|0}function Ib(a,b){var c=0,d=0,e=0,f=0;d=F[a+12>>2];c=F[a+16>>2]-d>>2;a:{if(c>>>0>>0){ra(a+12|0,b-c|0);break a}if(b>>>0>=c>>>0){break a}F[a+16>>2]=d+(b<<2)}b:{c=F[a>>2];c:{if(F[a+8>>2]-c>>2>>>0>=b>>>0){break c}if(b>>>0>=1073741824){break b}d=F[a+4>>2];e=b<<2;b=na(e);e=b+e|0;d=d-c|0;f=d+b|0;if((d|0)>0){oa(b,c,d)}F[a+8>>2]=e;F[a+4>>2]=f;F[a>>2]=b;if(!c){break c}ma(c)}return}qa();v()}function Of(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0,g=0;d=aa-16|0;aa=d;a:{e=Ba(c);if(e>>>0<4294967280){b:{c:{if(e>>>0>=11){g=(e|15)+1|0;f=na(g);F[d+8>>2]=g|-2147483648;F[d>>2]=f;F[d+4>>2]=e;break c}D[d+11|0]=e;f=d;if(!e){break b}}oa(f,c,e)}D[e+f|0]=0;f=a+16|0;c=Rc(b,d,f);b=F[a+16>>2];a=D[a+27|0];if(D[d+11|0]<0){ma(F[d>>2])}aa=d+16|0;a=c?(a|0)<0?b:f:0;break a}Ca();v()}return a|0}function kd(a,b,c){var d=0,e=0,f=0,g=0;a:{if(a>>>0>10){break a}d=F[c+20>>2];e=F[c+12>>2];f=F[c+16>>2];if((d|0)>=(e|0)&f>>>0>=I[c+8>>2]|(d|0)>(e|0)){break a}e=D[f+F[c>>2]|0];f=f+1|0;d=f?d:d+1|0;F[c+16>>2]=f;F[c+20>>2]=d;b:{if((e|0)<0){if(!kd(a+1|0,b,c)){break a}c=F[b>>2];a=F[b+4>>2]<<7|c>>>25;c=e&127|c<<7;break b}a=0;c=e&255}F[b>>2]=c;F[b+4>>2]=a;g=1}return g}function Va(a,b,c){var d=0,e=0,f=0,g=0;a:{if(a>>>0>10){break a}d=F[c+20>>2];e=F[c+12>>2];f=F[c+16>>2];if((d|0)>=(e|0)&f>>>0>=I[c+8>>2]|(d|0)>(e|0)){break a}e=D[f+F[c>>2]|0];f=f+1|0;d=f?d:d+1|0;F[c+16>>2]=f;F[c+20>>2]=d;b:{if((e|0)<0){if(!Va(a+1|0,b,c)){break a}c=F[b>>2];a=F[b+4>>2]<<7|c>>>25;c=e&127|c<<7;break b}a=0;c=e&255}F[b>>2]=c;F[b+4>>2]=a;g=1}return g}function fg(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0,g=0,h=0,i=0;d=aa+-64|0;aa=d;e=ca[F[F[a>>2]+44>>2]](a,b)|0;a=ca[F[F[a>>2]+40>>2]](a,b)|0;f=mb(d);g=F[b+56>>2];h=e&255;i=a;a=a-1|0;if(a>>>0<=10){a=F[(a<<2)+10148>>2]}else{a=-1}a=L(a,e);ac(f,g,h,i,0,a,a>>31);a=$b(na(96),f);_b(a,c);D[a+84|0]=1;F[a+72>>2]=F[a+68>>2];F[a+60>>2]=F[b+60>>2];aa=d- -64|0;return a|0}function Ke(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;if(Na(a,F[b+8>>2],e)){if(!(F[b+28>>2]==1|F[b+4>>2]!=(c|0))){F[b+28>>2]=d}return}a:{if(!Na(a,F[b>>2],e)){break a}if(!(F[b+16>>2]!=(c|0)&F[b+20>>2]!=(c|0))){if((d|0)!=1){break a}F[b+32>>2]=1;return}F[b+20>>2]=c;F[b+32>>2]=d;F[b+40>>2]=F[b+40>>2]+1;if(!(F[b+36>>2]!=1|F[b+24>>2]!=2)){D[b+54|0]=1}F[b+44>>2]=4}}function oh(a){a=a|0;var b=0,c=0,d=0;F[a>>2]=8176;b=F[a+48>>2];F[a+48>>2]=0;if(b){ca[F[F[b>>2]+4>>2]](b)}F[a>>2]=10032;b=F[a+20>>2];if(b){F[a+24>>2]=b;ma(b)}d=F[a+8>>2];if(d){c=F[a+12>>2];b=d;if((c|0)!=(b|0)){while(1){c=c-4|0;b=F[c>>2];F[c>>2]=0;if(b){ca[F[F[b>>2]+4>>2]](b)}if((c|0)!=(d|0)){continue}break}b=F[a+8>>2]}F[a+12>>2]=d;ma(b)}return a|0}function Cc(a,b,c,d){D[a+53|0]=1;a:{if(F[a+4>>2]!=(c|0)){break a}D[a+52|0]=1;c=F[a+16>>2];b:{if(!c){F[a+36>>2]=1;F[a+24>>2]=d;F[a+16>>2]=b;if((d|0)!=1){break a}if(F[a+48>>2]==1){break b}break a}if((b|0)==(c|0)){c=F[a+24>>2];if((c|0)==2){F[a+24>>2]=d;c=d}if(F[a+48>>2]!=1){break a}if((c|0)==1){break b}break a}F[a+36>>2]=F[a+36>>2]+1}D[a+54|0]=1}}function nh(a){a=a|0;var b=0,c=0,d=0;F[a>>2]=8176;b=F[a+48>>2];F[a+48>>2]=0;if(b){ca[F[F[b>>2]+4>>2]](b)}F[a>>2]=10032;b=F[a+20>>2];if(b){F[a+24>>2]=b;ma(b)}d=F[a+8>>2];if(d){c=F[a+12>>2];b=d;if((c|0)!=(b|0)){while(1){c=c-4|0;b=F[c>>2];F[c>>2]=0;if(b){ca[F[F[b>>2]+4>>2]](b)}if((c|0)!=(d|0)){continue}break}b=F[a+8>>2]}F[a+12>>2]=d;ma(b)}ma(a)}function Pe(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0;e=aa+-64|0;aa=e;d=1;a:{if(Na(a,b,0)){break a}d=0;if(!b){break a}b=Ec(b,11068);d=0;if(!b){break a}d=e+8|0;pa(d|4,0,52);F[e+56>>2]=1;F[e+20>>2]=-1;F[e+16>>2]=a;F[e+8>>2]=b;ca[F[F[b>>2]+28>>2]](b,d,F[c>>2],1);a=F[e+32>>2];if((a|0)==1){F[c>>2]=F[e+24>>2]}d=(a|0)==1}aa=e- -64|0;return d|0}function Dd(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0;d=aa-16|0;aa=d;F[a+4>>2]=b;b=F[b+64>>2];e=F[b>>2];b=F[b+4>>2];D[d+15|0]=0;Ha(a+24|0,(b-e>>2>>>0)/3|0,d+15|0);b=F[a+4>>2];e=F[b+56>>2];b=F[b+52>>2];D[d+14|0]=0;Ha(a+36|0,e-b>>2,d+14|0);b=F[c+12>>2];F[a+16>>2]=F[c+8>>2];F[a+20>>2]=b;b=F[c+4>>2];F[a+8>>2]=F[c>>2];F[a+12>>2]=b;aa=d+16|0}function wf(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,f=0,g=0;a=aa-16|0;aa=a;f=D[b+24|0];e=F[2555];F[a+8>>2]=F[2554];F[a+12>>2]=e;e=F[2553];F[a>>2]=F[2552];F[a+4>>2]=e;e=nb(b,c,f,a);if(e){b=0;if(f){c=(f&255)<<2;b=na(c);g=oa(b,a,c)+c|0}c=F[d>>2];if(c){F[d+4>>2]=c;ma(c)}F[d+8>>2]=g;F[d+4>>2]=g;F[d>>2]=b}aa=a+16|0;return e|0}function se(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0;f=ca[F[F[a>>2]+24>>2]](a)|0;c=1;a:{if((f|0)<=0){break a}d=F[F[a+36>>2]>>2];g=a+48|0;c=0;if(!(ca[F[F[d>>2]+16>>2]](d,g,b)|0)){break a}while(1){e=e+1|0;if((f|0)!=(e|0)){d=F[F[a+36>>2]+(e<<2)>>2];if(ca[F[F[d>>2]+16>>2]](d,g,b)|0){continue}}break}c=(e|0)>=(f|0)}return c|0}function re(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0;f=ca[F[F[a>>2]+24>>2]](a)|0;c=1;a:{if((f|0)<=0){break a}d=F[F[a+36>>2]>>2];g=a+48|0;c=0;if(!(ca[F[F[d>>2]+20>>2]](d,g,b)|0)){break a}while(1){e=e+1|0;if((f|0)!=(e|0)){d=F[F[a+36>>2]+(e<<2)>>2];if(ca[F[F[d>>2]+20>>2]](d,g,b)|0){continue}}break}c=(e|0)>=(f|0)}return c|0}function vd(a,b){var c=0,d=0;a:{c=F[a+4>>2];d=F[a+8>>2];if((c|0)==d<<5){if((c+1|0)<0){break a}if(c>>>0<=1073741822){d=d<<6;c=(c&-32)+32|0;c=c>>>0>>0?d:c}else{c=2147483647}db(a,c);c=F[a+4>>2]}F[a+4>>2]=c+1;d=1<>2]+(c>>>3&536870908)|0;if(G[b|0]){F[a>>2]=d|F[a>>2];return}F[a>>2]=F[a>>2]&(d^-1);return}qa();v()}function _g(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0;d=aa-16|0;aa=d;F[a+4>>2]=b;e=F[b>>2];b=F[b+4>>2];D[d+15|0]=0;Ha(a+24|0,(b-e>>2>>>0)/3|0,d+15|0);b=F[a+4>>2];e=F[b+28>>2];b=F[b+24>>2];D[d+14|0]=0;Ha(a+36|0,e-b>>2,d+14|0);b=F[c+12>>2];F[a+16>>2]=F[c+8>>2];F[a+20>>2]=b;b=F[c+4>>2];F[a+8>>2]=F[c>>2];F[a+12>>2]=b;aa=d+16|0}function Xb(a){var b=0;F[a>>2]=0;F[a+4>>2]=0;F[a+56>>2]=0;F[a+48>>2]=0;F[a+52>>2]=0;F[a+40>>2]=0;F[a+44>>2]=0;F[a+32>>2]=0;F[a+36>>2]=0;F[a+24>>2]=0;F[a+28>>2]=0;F[a+16>>2]=0;F[a+20>>2]=0;F[a+8>>2]=0;F[a+12>>2]=0;b=a- -64|0;F[b>>2]=0;F[b+4>>2]=0;F[a+72>>2]=0;F[a+76>>2]=0;F[a+80>>2]=0;F[a+84>>2]=0;F[a+60>>2]=a;return a}function jb(a,b,c){var d=0,e=0,f=0,g=0;a:{if(a>>>0>5){break a}d=F[c+20>>2];e=F[c+12>>2];f=F[c+16>>2];if((d|0)>=(e|0)&f>>>0>=I[c+8>>2]|(d|0)>(e|0)){break a}e=G[f+F[c>>2]|0];f=f+1|0;d=f?d:d+1|0;F[c+16>>2]=f;F[c+20>>2]=d;d=e<<24>>24;if((d|0)<0){if(!jb(a+1|0,b,c)){break a}e=d&127|F[b>>2]<<7}F[b>>2]=e;g=1}return g}function hb(a,b,c){var d=0,e=0,f=0,g=0;a:{if(a>>>0>5){break a}d=F[c+20>>2];e=F[c+12>>2];f=F[c+16>>2];if((d|0)>=(e|0)&f>>>0>=I[c+8>>2]|(d|0)>(e|0)){break a}e=G[f+F[c>>2]|0];f=f+1|0;d=f?d:d+1|0;F[c+16>>2]=f;F[c+20>>2]=d;d=e<<24>>24;if((d|0)<0){if(!hb(a+1|0,b,c)){break a}e=d&127|F[b>>2]<<7}F[b>>2]=e;g=1}return g}function Wa(a,b,c){var d=0,e=0,f=0,g=0;a:{if(a>>>0>5){break a}d=F[c+20>>2];e=F[c+12>>2];f=F[c+16>>2];if((d|0)>=(e|0)&f>>>0>=I[c+8>>2]|(d|0)>(e|0)){break a}e=G[f+F[c>>2]|0];f=f+1|0;d=f?d:d+1|0;F[c+16>>2]=f;F[c+20>>2]=d;d=e<<24>>24;if((d|0)<0){if(!Wa(a+1|0,b,c)){break a}e=d&127|F[b>>2]<<7}F[b>>2]=e;g=1}return g}function Vb(a,b,c){var d=0,e=0,f=0,g=0;a:{if(a>>>0>5){break a}d=F[c+20>>2];e=F[c+12>>2];f=F[c+16>>2];if((d|0)>=(e|0)&f>>>0>=I[c+8>>2]|(d|0)>(e|0)){break a}e=G[f+F[c>>2]|0];f=f+1|0;d=f?d:d+1|0;F[c+16>>2]=f;F[c+20>>2]=d;d=e<<24>>24;if((d|0)<0){if(!Vb(a+1|0,b,c)){break a}e=d&127|F[b>>2]<<7}F[b>>2]=e;g=1}return g}function Qa(a,b,c){var d=0,e=0,f=0,g=0;a:{if(a>>>0>5){break a}d=F[c+20>>2];e=F[c+12>>2];f=F[c+16>>2];if((d|0)>=(e|0)&f>>>0>=I[c+8>>2]|(d|0)>(e|0)){break a}e=G[f+F[c>>2]|0];f=f+1|0;d=f?d:d+1|0;F[c+16>>2]=f;F[c+20>>2]=d;d=e<<24>>24;if((d|0)<0){if(!Qa(a+1|0,b,c)){break a}e=d&127|F[b>>2]<<7}F[b>>2]=e;g=1}return g}function Od(a,b,c){var d=0,e=0,f=0,g=0;a:{if(a>>>0>5){break a}d=F[c+20>>2];e=F[c+12>>2];f=F[c+16>>2];if((d|0)>=(e|0)&f>>>0>=I[c+8>>2]|(d|0)>(e|0)){break a}e=G[f+F[c>>2]|0];f=f+1|0;d=f?d:d+1|0;F[c+16>>2]=f;F[c+20>>2]=d;d=e<<24>>24;if((d|0)<0){if(!Od(a+1|0,b,c)){break a}e=d&127|F[b>>2]<<7}F[b>>2]=e;g=1}return g}function Ga(a,b,c){var d=0,e=0,f=0,g=0;a:{if(a>>>0>5){break a}d=F[c+20>>2];e=F[c+12>>2];f=F[c+16>>2];if((d|0)>=(e|0)&f>>>0>=I[c+8>>2]|(d|0)>(e|0)){break a}e=G[f+F[c>>2]|0];f=f+1|0;d=f?d:d+1|0;F[c+16>>2]=f;F[c+20>>2]=d;d=e<<24>>24;if((d|0)<0){if(!Ga(a+1|0,b,c)){break a}e=d&127|F[b>>2]<<7}F[b>>2]=e;g=1}return g}function ua(a,b,c){var d=0,e=0;a:{b:{if(c>>>0>=4){if((a|b)&3){break b}while(1){if(F[a>>2]!=F[b>>2]){break b}b=b+4|0;a=a+4|0;c=c-4|0;if(c>>>0>3){continue}break}}if(!c){break a}}while(1){d=G[a|0];e=G[b|0];if((d|0)==(e|0)){b=b+1|0;a=a+1|0;c=c-1|0;if(c){continue}break a}break}return d-e|0}return 0}function rd(a){var b=0,c=0,d=0,e=0;d=F[a>>2];if(d){e=d;c=F[a+4>>2];if((d|0)!=(c|0)){while(1){e=c-144|0;b=F[e+132>>2];if(b){F[c-8>>2]=b;ma(b)}b=F[c-28>>2];if(b){F[c-24>>2]=b;ma(b)}b=F[c-40>>2];if(b){F[c-36>>2]=b;ma(b)}Hb(c-140|0);c=e;if((d|0)!=(c|0)){continue}break}e=F[a>>2]}F[a+4>>2]=d;ma(e)}}function Bf(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0;d=F[b+4>>2];a:{if(!d){break a}b=F[F[F[b+8>>2]+(c<<2)>>2]+60>>2];if((b|0)<0){break a}a=F[d+24>>2];c=F[d+28>>2];if((a|0)==(c|0)){break a}b:{while(1){e=F[a>>2];if((b|0)==F[e+24>>2]){break b}a=a+4|0;if((c|0)!=(a|0)){continue}break}e=0}}return e|0}function gc(a){var b=0,c=0,d=0;if(a){d=F[a+24>>2];if(d){b=d;c=F[a+28>>2];if((b|0)!=(c|0)){while(1){c=c-4|0;b=F[c>>2];F[c>>2]=0;if(b){Fa(b+12|0,F[b+16>>2]);Ea(b,F[b+4>>2]);ma(b)}if((c|0)!=(d|0)){continue}break}b=F[a+24>>2]}F[a+28>>2]=d;ma(b)}Fa(a+12|0,F[a+16>>2]);Ea(a,F[a+4>>2]);ma(a)}}function Yg(a){a=a|0;var b=0;F[a+8>>2]=9136;F[a>>2]=8924;b=F[a+96>>2];if(b){F[a+100>>2]=b;ma(b)}b=F[a+80>>2];if(b){F[a+84>>2]=b;ma(b)}b=F[a+68>>2];if(b){F[a+72>>2]=b;ma(b)}b=F[a+56>>2];if(b){F[a+60>>2]=b;ma(b)}F[a+8>>2]=9372;b=F[a+44>>2];if(b){ma(b)}b=F[a+32>>2];if(b){ma(b)}return a|0}function th(a){a=a|0;var b=0,c=0,d=0;F[a>>2]=10032;b=F[a+20>>2];if(b){F[a+24>>2]=b;ma(b)}d=F[a+8>>2];if(d){c=F[a+12>>2];b=d;if((c|0)!=(b|0)){while(1){c=c-4|0;b=F[c>>2];F[c>>2]=0;if(b){ca[F[F[b>>2]+4>>2]](b)}if((c|0)!=(d|0)){continue}break}b=F[a+8>>2]}F[a+12>>2]=d;ma(b)}return a|0}function Xg(a){a=a|0;var b=0;F[a+8>>2]=9136;F[a>>2]=8924;b=F[a+96>>2];if(b){F[a+100>>2]=b;ma(b)}b=F[a+80>>2];if(b){F[a+84>>2]=b;ma(b)}b=F[a+68>>2];if(b){F[a+72>>2]=b;ma(b)}b=F[a+56>>2];if(b){F[a+60>>2]=b;ma(b)}F[a+8>>2]=9372;b=F[a+44>>2];if(b){ma(b)}b=F[a+32>>2];if(b){ma(b)}ma(a)}function tc(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0,g=0,h=0,i=0;h=F[c+8>>2];e=F[c+16>>2];g=F[c+12>>2];f=g;d=F[c+20>>2];if(h>>>0>e>>>0&(f|0)>=(d|0)|(d|0)<(f|0)){b=G[e+F[c>>2]|0];i=e+1|0;f=i?d:d+1|0;F[c+16>>2]=i;F[c+20>>2]=f;F[a+4>>2]=b}return e>>>0>>0&(d|0)<=(g|0)|(d|0)<(g|0)}function Eg(a){a=a|0;var b=0,c=0,d=0;F[a>>2]=10032;b=F[a+20>>2];if(b){F[a+24>>2]=b;ma(b)}d=F[a+8>>2];if(d){c=F[a+12>>2];b=d;if((c|0)!=(b|0)){while(1){c=c-4|0;b=F[c>>2];F[c>>2]=0;if(b){ca[F[F[b>>2]+4>>2]](b)}if((c|0)!=(d|0)){continue}break}b=F[a+8>>2]}F[a+12>>2]=d;ma(b)}ma(a)}function Na(a,b,c){var d=0;if(!c){return F[a+4>>2]==F[b+4>>2]}if((a|0)==(b|0)){return 1}d=F[a+4>>2];a=G[d|0];c=F[b+4>>2];b=G[c|0];a:{if(!a|(b|0)!=(a|0)){break a}while(1){b=G[c+1|0];a=G[d+1|0];if(!a){break a}c=c+1|0;d=d+1|0;if((a|0)==(b|0)){continue}break}}return(a|0)==(b|0)}function Df(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0;d=F[b+12>>2];b=F[b+8>>2];a=0;a:{if((d|0)==(b|0)){break a}a=d-b>>2;d=a>>>0<=1?1:a;a=0;b:{while(1){e=F[b+(a<<2)>>2];if(F[e+60>>2]==(c|0)){break b}a=a+1|0;if((d|0)!=(a|0)){continue}break}a=0;break a}a=(a|0)!=-1?e:0}return a|0}function Zg(a){a=a|0;var b=0;F[a>>2]=9136;b=F[a+88>>2];if(b){F[a+92>>2]=b;ma(b)}b=F[a+72>>2];if(b){F[a+76>>2]=b;ma(b)}b=F[a+60>>2];if(b){F[a- -64>>2]=b;ma(b)}b=F[a+48>>2];if(b){F[a+52>>2]=b;ma(b)}F[a>>2]=9372;b=F[a+36>>2];if(b){ma(b)}b=F[a+24>>2];if(b){ma(b)}return a|0}function Sc(a,b){var c=0,d=0,e=0;F[a+8>>2]=0;F[a>>2]=0;F[a+4>>2]=0;a:{c=F[b+4>>2];d=F[b>>2];b:{if((c|0)==(d|0)){a=c;break b}c=c-d|0;if((c|0)<0){break a}d=c;e=na(c);c=pa(e,0,c);d=d+c|0;F[a+8>>2]=d;F[a+4>>2]=d;F[a>>2]=c;c=F[b>>2];a=F[b+4>>2]}oa(e,c,a-c|0);return}qa();v()}function Bd(a){var b=0,c=0,d=0,e=0;c=F[a+4>>2];d=F[a>>2];if((c|0)!=(d|0)){while(1){e=c-144|0;b=F[e+132>>2];if(b){F[c-8>>2]=b;ma(b)}b=F[c-28>>2];if(b){F[c-24>>2]=b;ma(b)}b=F[c-40>>2];if(b){F[c-36>>2]=b;ma(b)}Hb(c-140|0);c=e;if((d|0)!=(c|0)){continue}break}}F[a+4>>2]=d}function Ug(a){a=a|0;var b=0;F[a>>2]=9136;b=F[a+88>>2];if(b){F[a+92>>2]=b;ma(b)}b=F[a+72>>2];if(b){F[a+76>>2]=b;ma(b)}b=F[a+60>>2];if(b){F[a- -64>>2]=b;ma(b)}b=F[a+48>>2];if(b){F[a+52>>2]=b;ma(b)}F[a>>2]=9372;b=F[a+36>>2];if(b){ma(b)}b=F[a+24>>2];if(b){ma(b)}ma(a)}function Jb(a,b){var c=0,d=0,e=0,f=0;a:{c=F[a>>2];b:{if(F[a+8>>2]-c>>2>>>0>=b>>>0){break b}if(b>>>0>=1073741824){break a}d=F[a+4>>2];e=b<<2;b=na(e);e=b+e|0;d=d-c|0;f=d+b|0;if((d|0)>0){oa(b,c,d)}F[a+8>>2]=e;F[a+4>>2]=f;F[a>>2]=b;if(!c){break b}ma(c)}return}qa();v()}function bb(a){var b=0;if(a){b=F[a+76>>2];if(b){F[a+80>>2]=b;ma(b)}b=F[a- -64>>2];if(b){F[a+68>>2]=b;ma(b)}b=F[a+48>>2];if(b){F[a+52>>2]=b;ma(b)}b=F[a+24>>2];if(b){F[a+28>>2]=b;ma(b)}b=F[a+12>>2];if(b){F[a+16>>2]=b;ma(b)}b=F[a>>2];if(b){F[a+4>>2]=b;ma(b)}ma(a)}}function Kc(a,b,c){var d=0,e=0,f=0,g=0,h=0;f=aa-16|0;aa=f;d=aa-16|0;aa=d;b=b-a>>2;while(1){if(b){F[d+12>>2]=a;e=b>>>1|0;F[d+12>>2]=F[d+12>>2]+(e<<2);h=(e^-1)+b|0;b=e;e=F[d+12>>2];g=I[e>>2]>2];b=g?h:b;a=g?e+4|0:a;continue}break}aa=d+16|0;aa=f+16|0;return a}function Hb(a){var b=0;b=F[a+84>>2];if(b){F[a+88>>2]=b;ma(b)}b=F[a+72>>2];if(b){F[a+76>>2]=b;ma(b)}b=F[a+52>>2];if(b){F[a+56>>2]=b;ma(b)}b=F[a+40>>2];if(b){F[a+44>>2]=b;ma(b)}b=F[a+28>>2];if(b){F[a+32>>2]=b;ma(b)}b=F[a+12>>2];if(b){ma(b)}a=F[a>>2];if(a){ma(a)}}function ta(a,b,c){var d=0,e=0;a:{b:{if(c>>>0<11){d=a;D[d+11|0]=c;break b}if(c>>>0>4294967279){break a}if(c>>>0>=11){e=c+16&-16;d=e-1|0;d=(d|0)==11?e:d}else{d=10}e=d+1|0;d=na(e);F[a>>2]=d;F[a+8>>2]=e|-2147483648;F[a+4>>2]=c}gb(d,b,c+1|0);return}Ca();v()}function hd(a,b){var c=0,d=0;d=na(40);F[d>>2]=-1;c=d+8|0;F[c+16>>2]=0;F[c+20>>2]=0;F[c+8>>2]=0;F[c>>2]=0;F[c+4>>2]=0;F[c+24>>2]=0;F[c+28>>2]=0;ca[F[F[a>>2]+16>>2]](a,d);a=F[b+88>>2];F[b+88>>2]=d;if(a){b=F[a+8>>2];if(b){F[a+12>>2]=b;ma(b)}ma(a)}return 1}function Ba(a){var b=0,c=0,d=0;b=a;a:{if(b&3){while(1){if(!G[b|0]){break a}b=b+1|0;if(b&3){continue}break}}while(1){c=b;b=b+4|0;d=F[c>>2];if(!((d^-1)&d-16843009&-2139062144)){continue}break}while(1){b=c;c=b+1|0;if(G[b|0]){continue}break}}return b-a|0}function za(a){var b=0,c=0,d=0,e=0,f=0;d=G[a+12|0];c=F[a+8>>2];a:{if(c>>>0>4095){break a}b=F[a+4>>2];if((b|0)<=0){break a}b=b-1|0;F[a+4>>2]=b;c=G[b+F[a>>2]|0]|c<<8}d=0-d&255;b=L(d,c>>>8|0);e=c&255;f=e>>>0>>0;F[a+8>>2]=f?b+e|0:c-(b+d|0)|0;return f}function xc(a,b){F[a+4>>2]=0;F[a+8>>2]=0;F[a>>2]=1776;F[a+12>>2]=0;F[a+16>>2]=0;F[a+20>>2]=0;F[a+24>>2]=0;F[a+28>>2]=0;F[a+32>>2]=0;F[a+36>>2]=0;F[a+40>>2]=0;F[a>>2]=2016;F[a+60>>2]=b;F[a+44>>2]=0;F[a+48>>2]=0;F[a+52>>2]=0;F[a+56>>2]=0;return a}function Lf(a){a=a|0;var b=0,c=0,d=0;if(a){if(D[a+27|0]<0){ma(F[a+16>>2])}b=F[a>>2];if(b){c=b;d=F[a+4>>2];if((b|0)!=(d|0)){while(1){c=d-12|0;if(D[d-1|0]<0){ma(F[c>>2])}d=c;if((d|0)!=(b|0)){continue}break}c=F[a>>2]}F[a+4>>2]=b;ma(c)}ma(a)}}function Aa(a){a=a|0;var b=0,c=0;if(a){b=F[a+88>>2];F[a+88>>2]=0;if(b){c=F[b+8>>2];if(c){F[b+12>>2]=c;ma(c)}ma(b)}b=F[a+68>>2];if(b){F[a+72>>2]=b;ma(b)}b=F[a+64>>2];F[a+64>>2]=0;if(b){c=F[b>>2];if(c){F[b+4>>2]=c;ma(c)}ma(b)}ma(a)}}function Fb(a,b){var c=0,d=0,e=0;c=Ba(b);if(c>>>0<4294967280){a:{b:{if(c>>>0>=11){e=(c|15)+1|0;d=na(e);F[a+8>>2]=e|-2147483648;F[a>>2]=d;F[a+4>>2]=c;break b}D[a+11|0]=c;d=a;if(!c){break a}}oa(d,b,c)}D[c+d|0]=0;return a}Ca();v()}function Af(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;b=F[b+96>>2];a=na(12);b=b+L(c,12)|0;c=F[b+4>>2];F[a>>2]=F[b>>2];F[a+4>>2]=c;F[a+8>>2]=F[b+8>>2];b=F[d>>2];if(b){F[d+4>>2]=b;ma(b)}F[d>>2]=a;a=a+12|0;F[d+8>>2]=a;F[d+4>>2]=a;return 1}function xh(a){a=a|0;var b=0;F[a+24>>2]=1624;F[a>>2]=7948;b=F[a+32>>2];if(b){F[a+36>>2]=b;ma(b)}F[a>>2]=2136;b=F[a+20>>2];F[a+20>>2]=0;if(b){ca[F[F[b>>2]+4>>2]](b)}F[a>>2]=1920;b=F[a+16>>2];F[a+16>>2]=0;if(b){Aa(b)}return a|0}function hi(a,b,c,d){var e=0,f=0,g=0,h=0;f=b^d;g=f>>31;e=b>>31;a=a^e;h=a-e|0;e=(b^e)-((a>>>0>>0)+e|0)|0;a=d>>31;b=c^a;f=f>>31;a=ii(h,e,b-a|0,(a^d)-((a>>>0>b>>>0)+a|0)|0)^f;b=a-f|0;ba=(g^ba)-((a>>>0>>0)+g|0)|0;return b}function wh(a){a=a|0;var b=0;F[a+24>>2]=1624;F[a>>2]=7948;b=F[a+32>>2];if(b){F[a+36>>2]=b;ma(b)}F[a>>2]=2136;b=F[a+20>>2];F[a+20>>2]=0;if(b){ca[F[F[b>>2]+4>>2]](b)}F[a>>2]=1920;b=F[a+16>>2];F[a+16>>2]=0;if(b){Aa(b)}ma(a)}function tb(a,b,c){var d=0,e=0,f=0;e=aa-16|0;aa=e;d=F[a+8>>2]&2147483647;a:{if(d>>>0>c>>>0){d=F[a>>2];F[a+4>>2]=c;gb(d,b,c);D[e+15|0]=0;D[c+d|0]=G[e+15|0];break a}f=a;a=F[a+4>>2];Fc(f,d-1|0,(c-d|0)+1|0,a,a,c,b)}aa=e+16|0}function ue(a,b){a=a|0;b=b|0;var c=0,d=0;c=aa-16|0;aa=c;a=F[a+4>>2];a:{if((a|0)==-1){break a}D[c+15|0]=a;d=F[b+20>>2];if(!!F[b+16>>2]&(d|0)>=0|(d|0)>0){break a}rb(b,F[b+4>>2],c+15|0,c+16|0)}aa=c+16|0;return(a|0)!=-1|0}function gi(a,b,c,d){var e=0,f=0,g=0,h=0,i=0,j=0;e=c>>>16|0;f=a>>>16|0;j=L(e,f);g=c&65535;h=a&65535;i=L(g,h);f=(i>>>16|0)+L(f,g)|0;e=(f&65535)+L(e,h)|0;ba=(L(b,c)+j|0)+L(a,d)+(f>>>16)+(e>>>16)|0;return i&65535|e<<16}function Dc(a,b,c){var d=0;d=F[a+16>>2];if(!d){F[a+36>>2]=1;F[a+24>>2]=c;F[a+16>>2]=b;return}a:{if((b|0)==(d|0)){if(F[a+24>>2]!=2){break a}F[a+24>>2]=c;return}D[a+54|0]=1;F[a+24>>2]=2;F[a+36>>2]=F[a+36>>2]+1}}function sg(){var a=0;a=mb(na(96));F[a+64>>2]=0;F[a+68>>2]=0;F[a+88>>2]=0;F[a+72>>2]=0;F[a+76>>2]=0;D[a+77|0]=0;D[a+78|0]=0;D[a+79|0]=0;D[a+80|0]=0;D[a+81|0]=0;D[a+82|0]=0;D[a+83|0]=0;D[a+84|0]=0;return a|0}function gh(a,b){a=a|0;b=b|0;var c=0,d=0;F[b>>2]=2;c=F[b+8>>2];d=F[b+12>>2]-c|0;if(d>>>0<=4294967291){Eb(b+8|0,d+4|0);c=F[b+8>>2]}b=c+d|0;a=F[a+4>>2];D[b|0]=a;D[b+1|0]=a>>>8;D[b+2|0]=a>>>16;D[b+3|0]=a>>>24}function zg(a){a=a|0;var b=0,c=0,d=0;b=F[a+8>>2];d=F[a+12>>2];if((b|0)==(d|0)){return 1}while(1){c=F[b>>2];c=ca[F[F[c>>2]+16>>2]](c,F[a+32>>2])|0;if(c){b=b+4|0;if((d|0)!=(b|0)){continue}}break}return c|0}function de(a){a=a|0;var b=0;F[a>>2]=3016;b=F[a+96>>2];if(b){ma(b)}b=F[a+84>>2];if(b){ma(b)}b=F[a+72>>2];if(b){ma(b)}b=F[a+60>>2];if(b){ma(b)}F[a>>2]=2960;b=F[a+32>>2];if(b){F[a+36>>2]=b;ma(b)}return a|0}function $h(a){a=a|0;var b=0;F[a>>2]=4580;b=F[a+96>>2];if(b){ma(b)}b=F[a+84>>2];if(b){ma(b)}b=F[a+72>>2];if(b){ma(b)}b=F[a+60>>2];if(b){ma(b)}F[a>>2]=2960;b=F[a+32>>2];if(b){F[a+36>>2]=b;ma(b)}return a|0}function Oc(a,b){var c=0,d=0;c=F[a+8>>2];a=F[a+12>>2];if((c|0)!=(a|0)){a=a-c>>2;d=a>>>0<=1?1:a;a=0;while(1){if(F[F[(a<<2)+c>>2]+60>>2]==(b|0)){return a}a=a+1|0;if((d|0)!=(a|0)){continue}break}}return-1}function Ue(a,b){a=a|0;b=b|0;var c=0,d=0,e=0;Mc(a,b);a:{if((b|0)<0){break a}d=F[a+88>>2];c=F[a+84>>2];if(d-c>>2<=(b|0)){break a}b=c+(b<<2)|0;c=b+4|0;e=d-c|0;if((c|0)!=(d|0)){Sa(b,c,e)}F[a+88>>2]=b+e}}function ce(a){a=a|0;var b=0;F[a>>2]=3016;b=F[a+96>>2];if(b){ma(b)}b=F[a+84>>2];if(b){ma(b)}b=F[a+72>>2];if(b){ma(b)}b=F[a+60>>2];if(b){ma(b)}F[a>>2]=2960;b=F[a+32>>2];if(b){F[a+36>>2]=b;ma(b)}ma(a)}function _h(a){a=a|0;var b=0;F[a>>2]=4580;b=F[a+96>>2];if(b){ma(b)}b=F[a+84>>2];if(b){ma(b)}b=F[a+72>>2];if(b){ma(b)}b=F[a+60>>2];if(b){ma(b)}F[a>>2]=2960;b=F[a+32>>2];if(b){F[a+36>>2]=b;ma(b)}ma(a)}function Rc(a,b,c){var d=0,e=0;d=a+4|0;a=ab(a,b);if((d|0)==(a|0)){return 0}b=F[a+32>>2];d=F[a+28>>2];if((b|0)!=(d|0)){Sb(c,b-d|0);e=Tb(c);c=F[a+28>>2];oa(e,c,F[a+32>>2]-c|0)}return(b|0)!=(d|0)}function Id(a){F[a+40>>2]=0;F[a+4>>2]=0;F[a+8>>2]=0;F[a>>2]=10032;F[a+12>>2]=0;F[a+16>>2]=0;F[a+20>>2]=0;F[a+24>>2]=0;F[a+28>>2]=0;F[a+32>>2]=0;E[a+36>>1]=0;F[a+44>>2]=0;F[a>>2]=8080;return a}function mb(a){F[a+8>>2]=0;F[a+12>>2]=0;F[a>>2]=0;F[a+40>>2]=0;F[a+44>>2]=0;F[a+28>>2]=9;D[a+24|0]=1;F[a+56>>2]=-1;F[a+60>>2]=0;F[a+16>>2]=0;F[a+20>>2]=0;F[a+48>>2]=0;F[a+52>>2]=0;return a}function fc(a,b,c){var d=0;a:{if(b){b=0;if(!kd(1,c,a)){break a}}D[a+36|0]=1;F[a+32>>2]=0;b=F[a+16>>2];c=b+F[a>>2]|0;F[a+24>>2]=c;d=a;a=F[a+8>>2];F[d+28>>2]=c+(a-b|0);b=1}return b}function me(a,b){a=a|0;b=b|0;var c=0,d=0;d=F[a+16>>2];c=0;a:{if(F[a+20>>2]-d>>2<=(b|0)){break a}b=F[(b<<2)+d>>2];c=0;if((b|0)<0){break a}c=eb(F[F[a+36>>2]+(b<<2)>>2])}return c|0}function Kf(){var a=0,b=0;a=na(40);F[a+4>>2]=0;F[a+8>>2]=0;F[a+24>>2]=0;F[a+28>>2]=0;b=a+16|0;F[b>>2]=0;F[b+4>>2]=0;F[a>>2]=a+4;F[a+12>>2]=b;F[a+32>>2]=0;F[a+36>>2]=0;return a|0}function sb(a,b,c){var d=0,e=0;d=aa-16|0;aa=d;a:{if(c>>>0<=10){D[a+11|0]=c;gb(a,b,c);D[d+15|0]=0;D[a+c|0]=G[d+15|0];break a}e=a;a=G[a+11|0];Fc(e,10,c-10|0,a,a,c,b)}aa=d+16|0}function Za(a){var b=0,c=0;b=F[2909];c=a+7&-8;a=b+c|0;a:{if(a>>>0<=b>>>0?c:0){break a}if(a>>>0>da()<<16>>>0){if(!(_(a|0)|0)){break a}}F[2909]=a;return b}F[2940]=48;return-1}function Qh(a,b,c){a=a|0;b=b|0;c=c|0;var d=0;F[a+4>>2]=b;b=F[F[F[b+4>>2]+8>>2]+(c<<2)>>2];F[a+12>>2]=c;F[a+8>>2]=b;a=F[a+8>>2];if(G[a+24|0]==3){d=F[a+28>>2]==9}return d|0}function Qg(a){a=a|0;var b=0;F[a+8>>2]=9556;F[a>>2]=9392;b=F[a+56>>2];if(b){F[a+60>>2]=b;ma(b)}F[a+8>>2]=9372;b=F[a+44>>2];if(b){ma(b)}b=F[a+32>>2];if(b){ma(b)}return a|0}function Kg(a){a=a|0;var b=0;F[a+8>>2]=8624;F[a>>2]=9684;b=F[a+56>>2];if(b){F[a+60>>2]=b;ma(b)}F[a+8>>2]=8876;b=F[a+44>>2];if(b){ma(b)}b=F[a+32>>2];if(b){ma(b)}return a|0}function Be(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0;d=F[a+8>>2];a:{if(!G[d+24|0]){break a}if(!_b(d,F[b+4>>2]-F[b>>2]>>2)){break a}e=ca[F[F[a>>2]+32>>2]](a,b,c)|0}return e|0}function Fa(a,b){if(b){Fa(a,F[b>>2]);Fa(a,F[b+4>>2]);a=F[b+28>>2];F[b+28>>2]=0;if(a){Fa(a+12|0,F[a+16>>2]);Ea(a,F[a+4>>2]);ma(a)}if(D[b+27|0]<0){ma(F[b+16>>2])}ma(b)}}function Ch(a,b,c){a=a|0;b=b|0;c=c|0;var d=0;F[a+4>>2]=b;d=F[F[F[b+4>>2]+8>>2]+(c<<2)>>2];F[a+12>>2]=c;F[a+8>>2]=d;return F[F[F[F[b+4>>2]+8>>2]+(c<<2)>>2]+28>>2]==9|0}function Pg(a){a=a|0;var b=0;F[a+8>>2]=9556;F[a>>2]=9392;b=F[a+56>>2];if(b){F[a+60>>2]=b;ma(b)}F[a+8>>2]=9372;b=F[a+44>>2];if(b){ma(b)}b=F[a+32>>2];if(b){ma(b)}ma(a)}function Jg(a){a=a|0;var b=0;F[a+8>>2]=8624;F[a>>2]=9684;b=F[a+56>>2];if(b){F[a+60>>2]=b;ma(b)}F[a+8>>2]=8876;b=F[a+44>>2];if(b){ma(b)}b=F[a+32>>2];if(b){ma(b)}ma(a)}function Gc(a,b){var c=0,d=0,e=0,f=0;F[a>>2]=11356;F[a>>2]=11468;c=Ba(b);d=na(c+13|0);F[d+8>>2]=0;F[d+4>>2]=c;F[d>>2]=c;e=a,f=oa(d+12|0,b,c+1|0),F[e+4>>2]=f;return a}function Re(a,b){a=a|0;b=b|0;var c=0;a:{if(!(ca[F[F[a>>2]+36>>2]](a,b)|0)){break a}if(!(ca[F[F[a>>2]+40>>2]](a,b)|0)){break a}c=ca[F[F[a>>2]+44>>2]](a)|0}return c|0}function Yd(a){a=a|0;var b=0;a:{if(!F[a- -64>>2]|!F[a+68>>2]|(!F[a+44>>2]|!F[a+48>>2])){break a}if(!F[a+52>>2]|!F[a+56>>2]){break a}b=F[a+92>>2]!=-1}return b|0}function vc(a){a=a|0;var b=0;F[a>>2]=2136;b=F[a+20>>2];F[a+20>>2]=0;if(b){ca[F[F[b>>2]+4>>2]](b)}F[a>>2]=1920;b=F[a+16>>2];F[a+16>>2]=0;if(b){Aa(b)}return a|0}function fi(a,b){a=a|0;b=b|0;var c=0;b=F[b+88>>2];if(!(!b|F[b>>2]!=2)){c=a;a=F[b+8>>2];F[c+4>>2]=G[a|0]|G[a+1|0]<<8|(G[a+2|0]<<16|G[a+3|0]<<24);c=1}return c|0}function Sd(a){a=a|0;var b=0;a:{if(!F[a+48>>2]|!F[a+52>>2]|(!F[a+28>>2]|!F[a+32>>2])){break a}if(!F[a+36>>2]|!F[a+40>>2]){break a}b=F[a+76>>2]!=-1}return b|0}function uc(a){a=a|0;var b=0;F[a>>2]=2136;b=F[a+20>>2];F[a+20>>2]=0;if(b){ca[F[F[b>>2]+4>>2]](b)}F[a>>2]=1920;b=F[a+16>>2];F[a+16>>2]=0;if(b){Aa(b)}ma(a)}function Rg(a){a=a|0;var b=0;F[a>>2]=9556;b=F[a+48>>2];if(b){F[a+52>>2]=b;ma(b)}F[a>>2]=9372;b=F[a+36>>2];if(b){ma(b)}b=F[a+24>>2];if(b){ma(b)}return a|0}function Cd(a){a=a|0;var b=0;F[a>>2]=8624;b=F[a+48>>2];if(b){F[a+52>>2]=b;ma(b)}F[a>>2]=8876;b=F[a+36>>2];if(b){ma(b)}b=F[a+24>>2];if(b){ma(b)}return a|0}function vg(){var a=0,b=0;b=na(40);F[b>>2]=-1;a=b+8|0;F[a+16>>2]=0;F[a+20>>2]=0;F[a+8>>2]=0;F[a>>2]=0;F[a+4>>2]=0;F[a+24>>2]=0;F[a+28>>2]=0;return b|0}function ch(a){a=a|0;var b=0;F[a>>2]=8624;b=F[a+48>>2];if(b){F[a+52>>2]=b;ma(b)}F[a>>2]=8876;b=F[a+36>>2];if(b){ma(b)}b=F[a+24>>2];if(b){ma(b)}ma(a)}function Mg(a){a=a|0;var b=0;F[a>>2]=9556;b=F[a+48>>2];if(b){F[a+52>>2]=b;ma(b)}F[a>>2]=9372;b=F[a+36>>2];if(b){ma(b)}b=F[a+24>>2];if(b){ma(b)}ma(a)}function La(a){F[a+8>>2]=0;F[a+12>>2]=0;F[a>>2]=0;F[a+16>>2]=0;F[a+20>>2]=0;F[a+32>>2]=0;F[a+24>>2]=0;F[a+28>>2]=0;E[a+38>>1]=0;D[a+36|0]=0;return a}function Je(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;if(Na(a,F[b+8>>2],f)){Cc(b,c,d,e);return}a=F[a+8>>2];ca[F[F[a>>2]+20>>2]](a,b,c,d,e,f)}function Bh(a,b,c){a=a|0;b=b|0;c=c|0;a:{if(G[F[a+4>>2]+36|0]>=2){b=0;if(!(ca[F[F[a>>2]+52>>2]](a)|0)){break a}}b=hd(a+24|0,F[a+16>>2])}return b|0}function eg(){var a=0;a=Qc(na(108));F[a+84>>2]=0;F[a+88>>2]=0;F[a>>2]=10240;F[a+92>>2]=0;F[a+96>>2]=0;F[a+100>>2]=0;F[a+104>>2]=0;return a|0}function Pc(a,b){var c=0;c=-1;a:{if((b|0)==-1|(b|0)>4){break a}b=L(b,12)+a|0;a=F[b+20>>2];if((F[b+24>>2]-a|0)<=0){break a}c=F[a>>2]}return c}function ac(a,b,c,d,e,f,g){F[a>>2]=0;F[a+56>>2]=b;F[a+48>>2]=0;F[a+52>>2]=0;F[a+40>>2]=f;F[a+44>>2]=g;D[a+32|0]=e;F[a+28>>2]=d;D[a+24|0]=c}function Ph(a,b,c){a=a|0;b=b|0;c=c|0;a:{if(G[F[a+4>>2]+36|0]>=2){b=0;if(!tc(a+24|0,eb(a),c)){break a}}b=hd(a+24|0,F[a+16>>2])}return b|0}function Xe(a){a=a|0;var b=0;F[a>>2]=10240;b=F[a+96>>2];if(b){F[a+100>>2]=b;ma(b)}b=F[a+84>>2];if(b){F[a+88>>2]=b;ma(b)}return ub(a)|0}function Tb(a){var b=0;if(G[a+11|0]>>>7|0){b=F[a+4>>2]}else{b=G[a+11|0]}if(!b){rc(1222);v()}if(G[a+11|0]>>>7|0){a=F[a>>2]}return a}function We(a){a=a|0;var b=0;F[a>>2]=10240;b=F[a+96>>2];if(b){F[a+100>>2]=b;ma(b)}b=F[a+84>>2];if(b){F[a+88>>2]=b;ma(b)}ma(ub(a))}function Xh(a){a=a|0;var b=0;F[a>>2]=4816;b=F[a+76>>2];if(b){ma(b)}F[a>>2]=2960;b=F[a+32>>2];if(b){F[a+36>>2]=b;ma(b)}return a|0}function Ea(a,b){if(b){Ea(a,F[b>>2]);Ea(a,F[b+4>>2]);a=F[b+28>>2];if(a){F[b+32>>2]=a;ma(a)}if(D[b+27|0]<0){ma(F[b+16>>2])}ma(b)}}function $d(a){a=a|0;var b=0;F[a>>2]=3264;b=F[a+76>>2];if(b){ma(b)}F[a>>2]=2960;b=F[a+32>>2];if(b){F[a+36>>2]=b;ma(b)}return a|0}function Tf(){var a=0;a=na(28);F[a>>2]=0;F[a+4>>2]=0;F[a+24>>2]=0;F[a+16>>2]=0;F[a+20>>2]=0;F[a+8>>2]=0;F[a+12>>2]=0;return a|0}function Se(a){a=a|0;var b=0;F[a>>2]=1776;b=F[a+16>>2];if(b){F[a+20>>2]=b;ma(b)}b=F[a+4>>2];if(b){F[a+8>>2]=b;ma(b)}return a|0}function cg(){var a=0,b=0;a=na(24);F[a+4>>2]=0;F[a+8>>2]=0;b=a+16|0;F[b>>2]=0;F[b+4>>2]=0;F[a>>2]=a+4;F[a+12>>2]=b;return a|0}function Ne(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;if(Na(a,F[b+8>>2],0)){Dc(b,c,d);return}a=F[a+8>>2];ca[F[F[a>>2]+28>>2]](a,b,c,d)}function _d(a){a=a|0;var b=0;F[a>>2]=3264;b=F[a+76>>2];if(b){ma(b)}F[a>>2]=2960;b=F[a+32>>2];if(b){F[a+36>>2]=b;ma(b)}ma(a)}function Wh(a){a=a|0;var b=0;F[a>>2]=4816;b=F[a+76>>2];if(b){ma(b)}F[a>>2]=2960;b=F[a+32>>2];if(b){F[a+36>>2]=b;ma(b)}ma(a)}function na(a){var b=0;a=a?a:1;a:{while(1){b=Jc(a);if(b){break a}b=F[3065];if(b){ca[b|0]();continue}break}X();v()}return b}function kb(a,b){if(b){kb(a,F[b>>2]);kb(a,F[b+4>>2]);if(D[b+39|0]<0){ma(F[b+28>>2])}if(D[b+27|0]<0){ma(F[b+16>>2])}ma(b)}}function Bc(a){a=a|0;var b=0,c=0;F[a>>2]=11468;b=F[a+4>>2]-12|0;c=F[b+8>>2]-1|0;F[b+8>>2]=c;if((c|0)<0){ma(b)}return a|0}function kg(){var a=0;a=na(24);F[a+8>>2]=0;F[a+12>>2]=0;F[a+4>>2]=-1;F[a>>2]=1624;F[a+16>>2]=0;F[a+20>>2]=0;return a|0}function zc(a,b,c){a=a|0;b=b|0;c=c|0;F[a+4>>2]=b;b=F[F[F[b+4>>2]+8>>2]+(c<<2)>>2];F[a+12>>2]=c;F[a+8>>2]=b;return 1}function oc(a){a=a|0;var b=0;if(!(!F[a+60>>2]|!F[a+44>>2]|(!F[a+48>>2]|!F[a+52>>2]))){b=F[a+56>>2]!=0}return b|0}function di(a){a=a|0;var b=0;F[a>>2]=3500;F[a>>2]=2960;b=F[a+32>>2];if(b){F[a+36>>2]=b;ma(b)}return a|0}function Uh(a){a=a|0;var b=0;F[a>>2]=5040;F[a>>2]=2960;b=F[a+32>>2];if(b){F[a+36>>2]=b;ma(b)}return a|0}function kf(a){a=a|0;if(a){if(D[a+39|0]<0){ma(F[a+28>>2])}Zb(a+12|0,F[a+16>>2]);kb(a,F[a+4>>2]);ma(a)}}function ah(a){a=a|0;var b=0;F[a>>2]=8876;b=F[a+36>>2];if(b){ma(b)}b=F[a+24>>2];if(b){ma(b)}return a|0}function Tg(a){a=a|0;var b=0;F[a>>2]=9372;b=F[a+36>>2];if(b){ma(b)}b=F[a+24>>2];if(b){ma(b)}return a|0}function qb(a){a=a|0;var b=0;if(!(!F[a+52>>2]|(!F[a+44>>2]|!F[a+48>>2]))){b=F[a+56>>2]!=0}return b|0}function nc(a,b){a=a|0;b=b|0;var c=0;if(!(F[b+56>>2]|!b|G[b+24|0]!=3)){F[a+60>>2]=b;c=1}return c|0}function ci(a){a=a|0;var b=0;F[a>>2]=3500;F[a>>2]=2960;b=F[a+32>>2];if(b){F[a+36>>2]=b;ma(b)}ma(a)}function Th(a){a=a|0;var b=0;F[a>>2]=5040;F[a>>2]=2960;b=F[a+32>>2];if(b){F[a+36>>2]=b;ma(b)}ma(a)}function wg(a,b,c){a=a|0;b=b|0;c=c|0;F[a+16>>2]=0;F[a+20>>2]=0;F[a>>2]=b;F[a+8>>2]=c;F[a+12>>2]=0}function Xd(a,b){a=a|0;b=b|0;var c=0;if(!(F[b+56>>2]|G[b+24|0]!=3)){F[a- -64>>2]=b;c=1}return c|0}function Sg(a){a=a|0;var b=0;F[a>>2]=9372;b=F[a+36>>2];if(b){ma(b)}b=F[a+24>>2];if(b){ma(b)}ma(a)}function $g(a){a=a|0;var b=0;F[a>>2]=8876;b=F[a+36>>2];if(b){ma(b)}b=F[a+24>>2];if(b){ma(b)}ma(a)}function Rd(a,b){a=a|0;b=b|0;var c=0;if(!(F[b+56>>2]|G[b+24|0]!=3)){F[a+48>>2]=b;c=1}return c|0}function Ie(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;if(Na(a,F[b+8>>2],f)){Cc(b,c,d,e)}}function sa(){var a=0;a=Z(4)|0;F[a>>2]=11356;F[a>>2]=11316;F[a>>2]=11336;Y(a|0,11448,14);v()}function xe(a){a=a|0;var b=0;F[a>>2]=1920;b=F[a+16>>2];F[a+16>>2]=0;if(b){Aa(b)}return a|0}function ge(a){a=a|0;var b=0;F[a>>2]=2960;b=F[a+32>>2];if(b){F[a+36>>2]=b;ma(b)}return a|0}function zh(a){a=a|0;var b=0;b=eb(a);return od(a+24|0,b?b:F[a+8>>2],F[F[a+4>>2]+32>>2])|0}function Lg(a){a=a|0;var b=0;F[a>>2]=1624;b=F[a+8>>2];if(b){F[a+12>>2]=b;ma(b)}return a|0}function we(a){a=a|0;var b=0;F[a>>2]=1920;b=F[a+16>>2];F[a+16>>2]=0;if(b){Aa(b)}ma(a)}function Pb(a){a=a|0;var b=0;F[a>>2]=2960;b=F[a+32>>2];if(b){F[a+36>>2]=b;ma(b)}ma(a)}function Dg(a){a=a|0;var b=0;F[a>>2]=1624;b=F[a+8>>2];if(b){F[a+12>>2]=b;ma(b)}ma(a)}function le(a,b){a=a|0;b=b|0;return ca[F[F[a>>2]+48>>2]](a,F[b+4>>2]-F[b>>2]>>2)|0}function Zb(a,b){if(b){Zb(a,F[b>>2]);Zb(a,F[b+4>>2]);kb(b+20|0,F[b+24>>2]);ma(b)}}function uh(a){a=a|0;if(!F[a+44>>2]){return 0}return ca[F[F[a>>2]+48>>2]](a)|0}function ug(a){a=a|0;var b=0;if(a){b=F[a+8>>2];if(b){F[a+12>>2]=b;ma(b)}ma(a)}}function ji(a){var b=0;while(1){if(a){a=a-1&a;b=b+1|0;continue}break}return b}function Oe(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;if(Na(a,F[b+8>>2],0)){Dc(b,c,d)}}function sh(a,b){a=a|0;b=b|0;a=F[a+48>>2];return ca[F[F[a>>2]+20>>2]](a,b)|0}function lh(a,b){a=a|0;b=b|0;a=F[a+48>>2];return ca[F[F[a>>2]+12>>2]](a,b)|0}function kh(a,b){a=a|0;b=b|0;a=F[a+48>>2];return ca[F[F[a>>2]+16>>2]](a,b)|0}function _a(a){a=a|0;var b=0;if(a){b=F[a>>2];if(b){F[a+4>>2]=b;ma(b)}ma(a)}}function $a(){var a=0;a=na(12);F[a>>2]=0;F[a+4>>2]=0;F[a+8>>2]=0;return a|0}function ki(a){var b=0;b=a&31;a=0-a&31;return(-1>>>b&-2)<>>a}function jf(a,b,c){a=a|0;b=b|0;c=c|0;F[a+32>>2]=c;F[a+28>>2]=b;return 1}function bg(a){a=a|0;if(a){Fa(a+12|0,F[a+16>>2]);Ea(a,F[a+4>>2]);ma(a)}}function Mb(a,b){a=a|0;b=b|0;if(b>>>0<=1){F[a+28>>2]=b}return b>>>0<2|0}function Cg(a,b){a=a|0;b=b|0;D[b+84|0]=1;F[b+72>>2]=F[b+68>>2];return 1}function qh(a){a=a|0;a=F[a+48>>2];return ca[F[F[a>>2]+24>>2]](a)|0}function ph(a){a=a|0;a=F[a+48>>2];return ca[F[F[a>>2]+28>>2]](a)|0}function mh(a){a=a|0;a=F[a+48>>2];return ca[F[F[a>>2]+36>>2]](a)|0}function hg(){var a=0;a=na(8);F[a+4>>2]=-1;F[a>>2]=1032;return a|0}function Ef(a,b,c){a=a|0;b=b|0;c=c|0;return F[F[b+8>>2]+(c<<2)>>2]}function yh(a,b){a=a|0;b=b|0;return ud(a+24|0,eb(a),F[a+8>>2])|0}function Oh(a,b){a=a|0;b=b|0;return yc(a+24|0,eb(a),F[a+8>>2])|0}function gd(a,b){a=a|0;b=b|0;return ca[F[F[a>>2]+12>>2]](a,b)|0}function _f(a){a=a|0;if(a){if(D[a+15|0]<0){ma(F[a+4>>2])}ma(a)}}function He(a){a=a|0;if(!a){return 0}return(Ec(a,11164)|0)!=0|0}function Ce(a,b){a=a|0;b=b|0;F[a+12>>2]=-1;F[a+8>>2]=b;return 1}function Ah(a,b){a=a|0;b=b|0;return ca[F[F[a>>2]+56>>2]](a,b)|0}function rc(a){a=Gc(Z(8)|0,a);F[a>>2]=11568;Y(a|0,11600,1);v()}function Pd(a){a=Gc(Z(8)|0,a);F[a>>2]=11516;Y(a|0,11548,1);v()}function jg(a,b){a=a|0;b=b|0;return M(J[F[a+8>>2]+(b<<2)>>2])}function Zf(a,b){a=a|0;b=b|0;return M(J[F[a>>2]+(b<<2)>>2])}function dg(a){a=a|0;return(F[a+100>>2]-F[a+96>>2]|0)/12|0}function Le(a,b){a=a|0;b=b|0;return F[F[a+4>>2]+(b<<2)>>2]}function $f(a){a=a|0;return(D[a+15|0]<0?F[a+4>>2]:a+4|0)|0}function cd(a,b){a=a|0;b=b|0;return F[F[a>>2]+(b<<2)>>2]}function Vf(a,b){a=a|0;b=b|0;return E[F[a>>2]+(b<<1)>>1]}function Uf(a,b){a=a|0;b=b|0;return H[F[a>>2]+(b<<1)>>1]}function Td(a,b,c){a=a|0;b=b|0;c=c|0;return wc(a,b,c)|0}function Hf(a,b,c){a=a|0;b=b|0;c=c|0;return Pc(b,c)|0}function li(a){if(a){return 31-O(a-1^a)|0}return 32} +function Qc(a){F[a>>2]=10300;pa(a+4|0,0,80);return a}function fd(a){a=a|0;return F[a+12>>2]-F[a+8>>2]>>2}function xb(a){a=a|0;if(a){ca[F[F[a>>2]+4>>2]](a)}}function Xf(a,b){a=a|0;b=b|0;return D[F[a>>2]+b|0]}function Wf(a,b){a=a|0;b=b|0;return G[F[a>>2]+b|0]}function De(a){a=a|0;return F[a+8>>2]-F[a+4>>2]>>2}function Hd(a,b){a=a|0;b=b|0;F[a+4>>2]=b;return 1}function dd(a){a=a|0;return F[a+4>>2]-F[a>>2]>>1}function bc(a){a=a|0;return F[a+4>>2]-F[a>>2]>>2}function ed(a){a=a|0;return F[a+4>>2]-F[a>>2]|0}function yg(a,b){a=a|0;b=b|0;return G[b+24|0]}function he(a){a=a|0;return G[F[a+8>>2]+24|0]}function Nf(a,b){a=a|0;b=b|0;return F[b+8>>2]}function Cf(a,b){a=a|0;b=b|0;return F[b+4>>2]}function Ae(a,b,c){a=a|0;b=b|0;c=c|0;return 1}function Lh(a){a=a|0;F[a>>2]=5928;return a|0}function Gh(a){a=a|0;F[a>>2]=6932;return a|0}function ig(a){a=a|0;return M(J[a+20>>2])}function Kh(a){a=a|0;F[a>>2]=5928;ma(a)}function Fh(a){a=a|0;F[a>>2]=6932;ma(a)}function rg(a){a=a|0;return F[a+88>>2]}function qg(a){a=a|0;return F[a+56>>2]}function ng(a){a=a|0;return F[a+40>>2]}function mg(a){a=a|0;return F[a+48>>2]}function lg(a){a=a|0;return F[a+60>>2]}function fb(a){a=a|0;return F[a+28>>2]}function cc(a){a=a|0;return F[a+80>>2]}function td(a){a=a|0;return F[a+8>>2]}function sc(a,b){a=a|0;b=b|0;return-1}function pg(a){a=a|0;return D[a+24|0]}function og(a){a=a|0;return G[a+32|0]}function ag(a){a=a|0;return!F[a>>2]|0}function Ya(a){a=a|0;return F[a+4>>2]}function Ud(a,b){a=a|0;b=b|0;return 6}function Mh(a,b){a=a|0;b=b|0;return 2}function Ka(a,b){a=a|0;b=b|0;return 0}function Ac(a,b){a=a|0;b=b|0;return 1}function id(a){a=a|0;return F[a>>2]}function gb(a,b,c){if(c){oa(a,b,c)}}function xg(){return La(na(40))|0}function tg(){return mb(na(64))|0}function gg(){return Qc(na(84))|0}function dc(a){a=a|0;if(a){ma(a)}}function Rb(a){a=a|0;Bc(a);ma(a)}function Ge(a){a=a|0;return 1161}function Fe(a){a=a|0;return 1235}function Ee(a){a=a|0;return 1201}function Ra(a){a=a|0;return a|0}function eh(a){a=a|0;ma(sd(a))}function dh(a){a=a|0;ma(qd(a))}function Te(a){a=a|0;ma(ub(a))}function wa(a){a=a|0;return 1}function qc(a){a=a|0;return 4}function pc(a){a=a|0;return 5}function Xa(a){a=a|0;return 0}function Vd(a){a=a|0;return 2}function Ob(a){a=a|0;return 6}function Jh(a){a=a|0;return 3}function va(){rc(1154);v()}function qa(){Pd(1154);v()}function Ja(a){a=a|0;ma(a)}function Ca(){Pd(1222);v()}function Ua(a){a=a|0;v()}function cf(){return 10}function bf(){return 11}function af(){return 12}function wb(){return-1}function vb(){return 1}function lb(){return 0}function hf(){return 5}function gf(){return 6}function ff(){return 7}function ef(){return 8}function df(){return 9}function ad(){return 3}function _e(){return-3}function Ze(){return-4}function Ye(){return-5}function Yb(){return 2}function $e(){return-2}function $c(){return 4}function Qe(){X();v()}function Hc(a){a=a|0}function Zd(){} // EMSCRIPTEN_END_FUNCS -e=E;p(ka);var ba=c([null,Ac,Qa,Ja,Ud,ei,fh,Xf,xc,te,sc,dg,Td,Lh,Qa,Jg,Bg,wa,uh,ih,gh,sd,$g,nd,Td,xg,Re,Sa,hf,Zc,Qe,Je,Ce,fb,Ka,Pe,zc,wa,we,ve,yc,Be,Ae,ze,zc,ye,xe,ne,me,ue,se,le,re,qe,pe,oe,uc,tc,yc,ke,je,vc,ie,ge,he,fe,Ob,wa,Za,qb,Ya,rc,Ka,Ya,wa,ee,de,Sa,Sa,ce,be,pc,qb,ae,$d,_d,Zd,oc,nc,wa,Ka,mc,lc,di,ci,bi,Nb,Xd,wa,Ka,Wd,Vd,ai,Qa,Ja,Lb,fb,Mb,Sa,Ob,wa,qb,$h,Sa,_h,Zh,pc,qb,Yh,Xh,Wh,Vh,oc,nc,wa,Ka,mc,lc,Uh,Th,Sh,Nb,Xd,wa,Ka,Wd,Vd,Rh,Qa,Ja,Lb,fb,Kb,Sa,Ob,Ya,wa,Qh,uc,tc,Ph,Oh,Sd,Mh,Ud,Nh,Kh,Jh,Nb,Za,Rd,wa,Ka,Qd,wa,Ih,Pd,Hh,Qa,Ja,Lb,fb,Mb,Fh,Eh,Nb,Rd,wa,Ka,Qd,Pd,Dh,Qa,Ja,Lb,fb,Kb,Qa,Ja,Ya,wa,Ya,rc,Ka,Gh,Ch,wh,vh,Bh,Ah,Sd,zh,yh,xh,sh,Sa,wa,wa,th,zg,yg,wa,Ya,Ka,Ka,nh,mh,qh,rh,oh,lh,kh,jh,ph,rd,dh,Gd,Fd,Ed,Dd,hh,wa,Za,td,pd,ch,Gd,Fd,Ed,Dd,eh,wa,Za,td,Bd,bh,Cd,ah,_g,Xg,Wg,Vg,Ug,Yg,Tg,Zg,Sg,Rg,Pg,Og,Ng,Mg,Qg,Lg,Kg,Ig,Hg,Gg,Dg,Eg,Fg,Qa,Ja,Cg,Ag,Sa,Ya,wa,We,Ve,Ue,Te,ub,Se,Mc,Lc,Qa,Ja,Hc,Hc,Oe,He,Ke,Ne,Ja,Ie,Le,Me,Ja,Ee,Ja,De,Ja,Fe,Qb,Za,Qb,Qb]);function ca(){return A.byteLength/65536|0}function ha(ia){ia=ia|0;var da=ca()|0;var ea=da+ia|0;if(da=endIdx))++endPtr;if(endPtr-idx>16&&heapOrArray.buffer&&UTF8Decoder){return UTF8Decoder.decode(heapOrArray.subarray(idx,endPtr))}else{var str="";while(idx>10,56320|ch&1023)}}}return str}function UTF8ToString(ptr,maxBytesToRead){return ptr?UTF8ArrayToString(HEAPU8,ptr,maxBytesToRead):""}function stringToUTF8Array(str,heap,outIdx,maxBytesToWrite){if(!(maxBytesToWrite>0))return 0;var startIdx=outIdx;var endIdx=outIdx+maxBytesToWrite-1;for(var i=0;i=55296&&u<=57343){var u1=str.charCodeAt(++i);u=65536+((u&1023)<<10)|u1&1023}if(u<=127){if(outIdx>=endIdx)break;heap[outIdx++]=u}else if(u<=2047){if(outIdx+1>=endIdx)break;heap[outIdx++]=192|u>>6;heap[outIdx++]=128|u&63}else if(u<=65535){if(outIdx+2>=endIdx)break;heap[outIdx++]=224|u>>12;heap[outIdx++]=128|u>>6&63;heap[outIdx++]=128|u&63}else{if(outIdx+3>=endIdx)break;heap[outIdx++]=240|u>>18;heap[outIdx++]=128|u>>12&63;heap[outIdx++]=128|u>>6&63;heap[outIdx++]=128|u&63}}heap[outIdx]=0;return outIdx-startIdx}function lengthBytesUTF8(str){var len=0;for(var i=0;i=55296&&u<=57343)u=65536+((u&1023)<<10)|str.charCodeAt(++i)&1023;if(u<=127)++len;else if(u<=2047)len+=2;else if(u<=65535)len+=3;else len+=4}return len}var buffer,HEAP8,HEAPU8,HEAP16,HEAPU16,HEAP32,HEAPU32,HEAPF32,HEAPF64;function updateGlobalBufferAndViews(buf){buffer=buf;Module["HEAP8"]=HEAP8=new Int8Array(buf);Module["HEAP16"]=HEAP16=new Int16Array(buf);Module["HEAP32"]=HEAP32=new Int32Array(buf);Module["HEAPU8"]=HEAPU8=new Uint8Array(buf);Module["HEAPU16"]=HEAPU16=new Uint16Array(buf);Module["HEAPU32"]=HEAPU32=new Uint32Array(buf);Module["HEAPF32"]=HEAPF32=new Float32Array(buf);Module["HEAPF64"]=HEAPF64=new Float64Array(buf)}var INITIAL_MEMORY=Module["INITIAL_MEMORY"]||16777216;if(Module["wasmMemory"]){wasmMemory=Module["wasmMemory"]}else{wasmMemory=new WebAssembly.Memory({"initial":INITIAL_MEMORY/65536,"maximum":2147483648/65536})}if(wasmMemory){buffer=wasmMemory.buffer}INITIAL_MEMORY=buffer.byteLength;updateGlobalBufferAndViews(buffer);var wasmTable;var __ATPRERUN__=[];var __ATINIT__=[];var __ATPOSTRUN__=[];var runtimeInitialized=false;function keepRuntimeAlive(){return noExitRuntime}function preRun(){if(Module["preRun"]){if(typeof Module["preRun"]=="function")Module["preRun"]=[Module["preRun"]];while(Module["preRun"].length){addOnPreRun(Module["preRun"].shift())}}callRuntimeCallbacks(__ATPRERUN__)}function initRuntime(){runtimeInitialized=true;callRuntimeCallbacks(__ATINIT__)}function postRun(){if(Module["postRun"]){if(typeof Module["postRun"]=="function")Module["postRun"]=[Module["postRun"]];while(Module["postRun"].length){addOnPostRun(Module["postRun"].shift())}}callRuntimeCallbacks(__ATPOSTRUN__)}function addOnPreRun(cb){__ATPRERUN__.unshift(cb)}function addOnInit(cb){__ATINIT__.unshift(cb)}function addOnPostRun(cb){__ATPOSTRUN__.unshift(cb)}var runDependencies=0;var runDependencyWatcher=null;var dependenciesFulfilled=null;function addRunDependency(id){runDependencies++;if(Module["monitorRunDependencies"]){Module["monitorRunDependencies"](runDependencies)}}function removeRunDependency(id){runDependencies--;if(Module["monitorRunDependencies"]){Module["monitorRunDependencies"](runDependencies)}if(runDependencies==0){if(runDependencyWatcher!==null){clearInterval(runDependencyWatcher);runDependencyWatcher=null}if(dependenciesFulfilled){var callback=dependenciesFulfilled;dependenciesFulfilled=null;callback()}}}function abort(what){{if(Module["onAbort"]){Module["onAbort"](what)}}what="Aborted("+what+")";err(what);ABORT=true;EXITSTATUS=1;what+=". Build with -sASSERTIONS for more info.";var e=new WebAssembly.RuntimeError(what);readyPromiseReject(e);throw e}var dataURIPrefix="data:application/octet-stream;base64,";function isDataURI(filename){return filename.startsWith(dataURIPrefix)}function isFileURI(filename){return filename.startsWith("file://")}var wasmBinaryFile;wasmBinaryFile="draco_decoder_gltf.wasm";if(!isDataURI(wasmBinaryFile)){wasmBinaryFile=locateFile(wasmBinaryFile)}function getBinary(file){try{if(file==wasmBinaryFile&&wasmBinary){return new Uint8Array(wasmBinary)}var binary=tryParseAsDataURI(file);if(binary){return binary}if(readBinary){return readBinary(file)}else{throw"both async and sync fetching of the wasm failed"}}catch(err){abort(err)}}function getBinaryPromise(){if(!wasmBinary&&(ENVIRONMENT_IS_WEB||ENVIRONMENT_IS_WORKER)){if(typeof fetch=="function"&&!isFileURI(wasmBinaryFile)){return fetch(wasmBinaryFile,{credentials:"same-origin"}).then(function(response){if(!response["ok"]){throw"failed to load wasm binary file at '"+wasmBinaryFile+"'"}return response["arrayBuffer"]()}).catch(function(){return getBinary(wasmBinaryFile)})}else{if(readAsync){return new Promise(function(resolve,reject){readAsync(wasmBinaryFile,function(response){resolve(new Uint8Array(response))},reject)})}}}return Promise.resolve().then(function(){return getBinary(wasmBinaryFile)})}function createWasm(){var info={"a":asmLibraryArg};function receiveInstance(instance,module){var exports=instance.exports;Module["asm"]=exports;wasmTable=Module["asm"]["h"];addOnInit(Module["asm"]["g"]);removeRunDependency("wasm-instantiate")}addRunDependency("wasm-instantiate");function receiveInstantiationResult(result){receiveInstance(result["instance"])}function instantiateArrayBuffer(receiver){return getBinaryPromise().then(function(binary){return WebAssembly.instantiate(binary,info)}).then(function(instance){return instance}).then(receiver,function(reason){err("failed to asynchronously prepare wasm: "+reason);abort(reason)})}function instantiateAsync(){if(!wasmBinary&&typeof WebAssembly.instantiateStreaming=="function"&&!isDataURI(wasmBinaryFile)&&!isFileURI(wasmBinaryFile)&&!ENVIRONMENT_IS_NODE&&typeof fetch=="function"){return fetch(wasmBinaryFile,{credentials:"same-origin"}).then(function(response){var result=WebAssembly.instantiateStreaming(response,info);return result.then(receiveInstantiationResult,function(reason){err("wasm streaming compile failed: "+reason);err("falling back to ArrayBuffer instantiation");return instantiateArrayBuffer(receiveInstantiationResult)})})}else{return instantiateArrayBuffer(receiveInstantiationResult)}}if(Module["instantiateWasm"]){try{var exports=Module["instantiateWasm"](info,receiveInstance);return exports}catch(e){err("Module.instantiateWasm callback failed with error: "+e);return false}}instantiateAsync().catch(readyPromiseReject);return{}}function callRuntimeCallbacks(callbacks){while(callbacks.length>0){var callback=callbacks.shift();if(typeof callback=="function"){callback(Module);continue}var func=callback.func;if(typeof func=="number"){if(callback.arg===undefined){getWasmTableEntry(func)()}else{getWasmTableEntry(func)(callback.arg)}}else{func(callback.arg===undefined?null:callback.arg)}}}var wasmTableMirror=[];function getWasmTableEntry(funcPtr){var func=wasmTableMirror[funcPtr];if(!func){if(funcPtr>=wasmTableMirror.length)wasmTableMirror.length=funcPtr+1;wasmTableMirror[funcPtr]=func=wasmTable.get(funcPtr)}return func}function ___cxa_allocate_exception(size){return _malloc(size+24)+24}function ExceptionInfo(excPtr){this.excPtr=excPtr;this.ptr=excPtr-24;this.set_type=function(type){HEAPU32[this.ptr+4>>2]=type};this.get_type=function(){return HEAPU32[this.ptr+4>>2]};this.set_destructor=function(destructor){HEAPU32[this.ptr+8>>2]=destructor};this.get_destructor=function(){return HEAPU32[this.ptr+8>>2]};this.set_refcount=function(refcount){HEAP32[this.ptr>>2]=refcount};this.set_caught=function(caught){caught=caught?1:0;HEAP8[this.ptr+12>>0]=caught};this.get_caught=function(){return HEAP8[this.ptr+12>>0]!=0};this.set_rethrown=function(rethrown){rethrown=rethrown?1:0;HEAP8[this.ptr+13>>0]=rethrown};this.get_rethrown=function(){return HEAP8[this.ptr+13>>0]!=0};this.init=function(type,destructor){this.set_adjusted_ptr(0);this.set_type(type);this.set_destructor(destructor);this.set_refcount(0);this.set_caught(false);this.set_rethrown(false)};this.add_ref=function(){var value=HEAP32[this.ptr>>2];HEAP32[this.ptr>>2]=value+1};this.release_ref=function(){var prev=HEAP32[this.ptr>>2];HEAP32[this.ptr>>2]=prev-1;return prev===1};this.set_adjusted_ptr=function(adjustedPtr){HEAPU32[this.ptr+16>>2]=adjustedPtr};this.get_adjusted_ptr=function(){return HEAPU32[this.ptr+16>>2]};this.get_exception_ptr=function(){var isPointer=___cxa_is_pointer_type(this.get_type());if(isPointer){return HEAPU32[this.excPtr>>2]}var adjusted=this.get_adjusted_ptr();if(adjusted!==0)return adjusted;return this.excPtr}}var exceptionLast=0;var uncaughtExceptionCount=0;function ___cxa_throw(ptr,type,destructor){var info=new ExceptionInfo(ptr);info.init(type,destructor);exceptionLast=ptr;uncaughtExceptionCount++;throw ptr}function _abort(){abort("")}function _emscripten_memcpy_big(dest,src,num){HEAPU8.copyWithin(dest,src,src+num)}function getHeapMax(){return 2147483648}function emscripten_realloc_buffer(size){try{wasmMemory.grow(size-buffer.byteLength+65535>>>16);updateGlobalBufferAndViews(wasmMemory.buffer);return 1}catch(e){}}function _emscripten_resize_heap(requestedSize){var oldSize=HEAPU8.length;requestedSize=requestedSize>>>0;var maxHeapSize=getHeapMax();if(requestedSize>maxHeapSize){return false}let alignUp=(x,multiple)=>x+(multiple-x%multiple)%multiple;for(var cutDown=1;cutDown<=4;cutDown*=2){var overGrownHeapSize=oldSize*(1+.2/cutDown);overGrownHeapSize=Math.min(overGrownHeapSize,requestedSize+100663296);var newSize=Math.min(maxHeapSize,alignUp(Math.max(requestedSize,overGrownHeapSize),65536));var replacement=emscripten_realloc_buffer(newSize);if(replacement){return true}}return false}var ASSERTIONS=false;function intArrayFromString(stringy,dontAddNull,length){var len=length>0?length:lengthBytesUTF8(stringy)+1;var u8array=new Array(len);var numBytesWritten=stringToUTF8Array(stringy,u8array,0,u8array.length);if(dontAddNull)u8array.length=numBytesWritten;return u8array}function intArrayToString(array){var ret=[];for(var i=0;i255){if(ASSERTIONS){assert(false,"Character code "+chr+" ("+String.fromCharCode(chr)+") at offset "+i+" not in 0x00-0xFF.")}chr&=255}ret.push(String.fromCharCode(chr))}return ret.join("")}var decodeBase64=typeof atob=="function"?atob:function(input){var keyStr="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=";var output="";var chr1,chr2,chr3;var enc1,enc2,enc3,enc4;var i=0;input=input.replace(/[^A-Za-z0-9\+\/\=]/g,"");do{enc1=keyStr.indexOf(input.charAt(i++));enc2=keyStr.indexOf(input.charAt(i++));enc3=keyStr.indexOf(input.charAt(i++));enc4=keyStr.indexOf(input.charAt(i++));chr1=enc1<<2|enc2>>4;chr2=(enc2&15)<<4|enc3>>2;chr3=(enc3&3)<<6|enc4;output=output+String.fromCharCode(chr1);if(enc3!==64){output=output+String.fromCharCode(chr2)}if(enc4!==64){output=output+String.fromCharCode(chr3)}}while(i0){return}preRun();if(runDependencies>0){return}function doRun(){if(calledRun)return;calledRun=true;Module["calledRun"]=true;if(ABORT)return;initRuntime();readyPromiseResolve(Module);if(Module["onRuntimeInitialized"])Module["onRuntimeInitialized"]();postRun()}if(Module["setStatus"]){Module["setStatus"]("Running...");setTimeout(function(){setTimeout(function(){Module["setStatus"]("")},1);doRun()},1)}else{doRun()}}Module["run"]=run;if(Module["preInit"]){if(typeof Module["preInit"]=="function")Module["preInit"]=[Module["preInit"]];while(Module["preInit"].length>0){Module["preInit"].pop()()}}run();function WrapperObject(){}WrapperObject.prototype=Object.create(WrapperObject.prototype);WrapperObject.prototype.constructor=WrapperObject;WrapperObject.prototype.__class__=WrapperObject;WrapperObject.__cache__={};Module["WrapperObject"]=WrapperObject;function getCache(__class__){return(__class__||WrapperObject).__cache__}Module["getCache"]=getCache;function wrapPointer(ptr,__class__){var cache=getCache(__class__);var ret=cache[ptr];if(ret)return ret;ret=Object.create((__class__||WrapperObject).prototype);ret.ptr=ptr;return cache[ptr]=ret}Module["wrapPointer"]=wrapPointer;function castObject(obj,__class__){return wrapPointer(obj.ptr,__class__)}Module["castObject"]=castObject;Module["NULL"]=wrapPointer(0);function destroy(obj){if(!obj["__destroy__"])throw"Error: Cannot destroy object. (Did you create it yourself?)";obj["__destroy__"]();delete getCache(obj.__class__)[obj.ptr]}Module["destroy"]=destroy;function compare(obj1,obj2){return obj1.ptr===obj2.ptr}Module["compare"]=compare;function getPointer(obj){return obj.ptr}Module["getPointer"]=getPointer;function getClass(obj){return obj.__class__}Module["getClass"]=getClass;var ensureCache={buffer:0,size:0,pos:0,temps:[],needed:0,prepare:function(){if(ensureCache.needed){for(var i=0;i=ensureCache.size){assert(len>0);ensureCache.needed+=len;ret=Module["_malloc"](len);ensureCache.temps.push(ret)}else{ret=ensureCache.buffer+ensureCache.pos;ensureCache.pos+=len}return ret},copy:function(array,view,offset){offset>>>=0;var bytes=view.BYTES_PER_ELEMENT;switch(bytes){case 2:offset>>>=1;break;case 4:offset>>>=2;break;case 8:offset>>>=3;break}for(var i=0;i=endIdx))++endPtr;if(endPtr-idx>16&&heapOrArray.buffer&&UTF8Decoder){return UTF8Decoder.decode(heapOrArray.subarray(idx,endPtr))}var str="";while(idx>10,56320|ch&1023)}}return str}function UTF8ToString(ptr,maxBytesToRead){return ptr?UTF8ArrayToString(HEAPU8,ptr,maxBytesToRead):""}function stringToUTF8Array(str,heap,outIdx,maxBytesToWrite){if(!(maxBytesToWrite>0))return 0;var startIdx=outIdx;var endIdx=outIdx+maxBytesToWrite-1;for(var i=0;i=55296&&u<=57343){var u1=str.charCodeAt(++i);u=65536+((u&1023)<<10)|u1&1023}if(u<=127){if(outIdx>=endIdx)break;heap[outIdx++]=u}else if(u<=2047){if(outIdx+1>=endIdx)break;heap[outIdx++]=192|u>>6;heap[outIdx++]=128|u&63}else if(u<=65535){if(outIdx+2>=endIdx)break;heap[outIdx++]=224|u>>12;heap[outIdx++]=128|u>>6&63;heap[outIdx++]=128|u&63}else{if(outIdx+3>=endIdx)break;heap[outIdx++]=240|u>>18;heap[outIdx++]=128|u>>12&63;heap[outIdx++]=128|u>>6&63;heap[outIdx++]=128|u&63}}heap[outIdx]=0;return outIdx-startIdx}function lengthBytesUTF8(str){var len=0;for(var i=0;i=55296&&c<=57343){len+=4;++i}else{len+=3}}return len}var buffer,HEAP8,HEAPU8,HEAP16,HEAPU16,HEAP32,HEAPU32,HEAPF32,HEAPF64;function updateGlobalBufferAndViews(buf){buffer=buf;Module["HEAP8"]=HEAP8=new Int8Array(buf);Module["HEAP16"]=HEAP16=new Int16Array(buf);Module["HEAP32"]=HEAP32=new Int32Array(buf);Module["HEAPU8"]=HEAPU8=new Uint8Array(buf);Module["HEAPU16"]=HEAPU16=new Uint16Array(buf);Module["HEAPU32"]=HEAPU32=new Uint32Array(buf);Module["HEAPF32"]=HEAPF32=new Float32Array(buf);Module["HEAPF64"]=HEAPF64=new Float64Array(buf)}var INITIAL_MEMORY=Module["INITIAL_MEMORY"]||16777216;if(Module["wasmMemory"]){wasmMemory=Module["wasmMemory"]}else{wasmMemory=new WebAssembly.Memory({"initial":INITIAL_MEMORY/65536,"maximum":2147483648/65536})}if(wasmMemory){buffer=wasmMemory.buffer}INITIAL_MEMORY=buffer.byteLength;updateGlobalBufferAndViews(buffer);var wasmTable;var __ATPRERUN__=[];var __ATINIT__=[];var __ATPOSTRUN__=[];var runtimeInitialized=false;function keepRuntimeAlive(){return noExitRuntime}function preRun(){if(Module["preRun"]){if(typeof Module["preRun"]=="function")Module["preRun"]=[Module["preRun"]];while(Module["preRun"].length){addOnPreRun(Module["preRun"].shift())}}callRuntimeCallbacks(__ATPRERUN__)}function initRuntime(){runtimeInitialized=true;callRuntimeCallbacks(__ATINIT__)}function postRun(){if(Module["postRun"]){if(typeof Module["postRun"]=="function")Module["postRun"]=[Module["postRun"]];while(Module["postRun"].length){addOnPostRun(Module["postRun"].shift())}}callRuntimeCallbacks(__ATPOSTRUN__)}function addOnPreRun(cb){__ATPRERUN__.unshift(cb)}function addOnInit(cb){__ATINIT__.unshift(cb)}function addOnPostRun(cb){__ATPOSTRUN__.unshift(cb)}var runDependencies=0;var runDependencyWatcher=null;var dependenciesFulfilled=null;function addRunDependency(id){runDependencies++;if(Module["monitorRunDependencies"]){Module["monitorRunDependencies"](runDependencies)}}function removeRunDependency(id){runDependencies--;if(Module["monitorRunDependencies"]){Module["monitorRunDependencies"](runDependencies)}if(runDependencies==0){if(runDependencyWatcher!==null){clearInterval(runDependencyWatcher);runDependencyWatcher=null}if(dependenciesFulfilled){var callback=dependenciesFulfilled;dependenciesFulfilled=null;callback()}}}function abort(what){{if(Module["onAbort"]){Module["onAbort"](what)}}what="Aborted("+what+")";err(what);ABORT=true;EXITSTATUS=1;what+=". Build with -sASSERTIONS for more info.";var e=new WebAssembly.RuntimeError(what);readyPromiseReject(e);throw e}var dataURIPrefix="data:application/octet-stream;base64,";function isDataURI(filename){return filename.startsWith(dataURIPrefix)}function isFileURI(filename){return filename.startsWith("file://")}var wasmBinaryFile;wasmBinaryFile="draco_decoder_gltf.wasm";if(!isDataURI(wasmBinaryFile)){wasmBinaryFile=locateFile(wasmBinaryFile)}function getBinary(file){try{if(file==wasmBinaryFile&&wasmBinary){return new Uint8Array(wasmBinary)}var binary=tryParseAsDataURI(file);if(binary){return binary}if(readBinary){return readBinary(file)}throw"both async and sync fetching of the wasm failed"}catch(err){abort(err)}}function getBinaryPromise(){if(!wasmBinary&&(ENVIRONMENT_IS_WEB||ENVIRONMENT_IS_WORKER)){if(typeof fetch=="function"&&!isFileURI(wasmBinaryFile)){return fetch(wasmBinaryFile,{credentials:"same-origin"}).then(function(response){if(!response["ok"]){throw"failed to load wasm binary file at '"+wasmBinaryFile+"'"}return response["arrayBuffer"]()}).catch(function(){return getBinary(wasmBinaryFile)})}else{if(readAsync){return new Promise(function(resolve,reject){readAsync(wasmBinaryFile,function(response){resolve(new Uint8Array(response))},reject)})}}}return Promise.resolve().then(function(){return getBinary(wasmBinaryFile)})}function createWasm(){var info={"a":asmLibraryArg};function receiveInstance(instance,module){var exports=instance.exports;Module["asm"]=exports;wasmTable=Module["asm"]["h"];addOnInit(Module["asm"]["g"]);removeRunDependency("wasm-instantiate")}addRunDependency("wasm-instantiate");function receiveInstantiationResult(result){receiveInstance(result["instance"])}function instantiateArrayBuffer(receiver){return getBinaryPromise().then(function(binary){return WebAssembly.instantiate(binary,info)}).then(function(instance){return instance}).then(receiver,function(reason){err("failed to asynchronously prepare wasm: "+reason);abort(reason)})}function instantiateAsync(){if(!wasmBinary&&typeof WebAssembly.instantiateStreaming=="function"&&!isDataURI(wasmBinaryFile)&&!isFileURI(wasmBinaryFile)&&!ENVIRONMENT_IS_NODE&&typeof fetch=="function"){return fetch(wasmBinaryFile,{credentials:"same-origin"}).then(function(response){var result=WebAssembly.instantiateStreaming(response,info);return result.then(receiveInstantiationResult,function(reason){err("wasm streaming compile failed: "+reason);err("falling back to ArrayBuffer instantiation");return instantiateArrayBuffer(receiveInstantiationResult)})})}else{return instantiateArrayBuffer(receiveInstantiationResult)}}if(Module["instantiateWasm"]){try{var exports=Module["instantiateWasm"](info,receiveInstance);return exports}catch(e){err("Module.instantiateWasm callback failed with error: "+e);readyPromiseReject(e)}}instantiateAsync().catch(readyPromiseReject);return{}}function ExitStatus(status){this.name="ExitStatus";this.message="Program terminated with exit("+status+")";this.status=status}function callRuntimeCallbacks(callbacks){while(callbacks.length>0){callbacks.shift()(Module)}}function intArrayToString(array){var ret=[];for(var i=0;i255){if(ASSERTIONS){assert(false,"Character code "+chr+" ("+String.fromCharCode(chr)+") at offset "+i+" not in 0x00-0xFF.")}chr&=255}ret.push(String.fromCharCode(chr))}return ret.join("")}function ___cxa_allocate_exception(size){return _malloc(size+24)+24}function ExceptionInfo(excPtr){this.excPtr=excPtr;this.ptr=excPtr-24;this.set_type=function(type){HEAPU32[this.ptr+4>>2]=type};this.get_type=function(){return HEAPU32[this.ptr+4>>2]};this.set_destructor=function(destructor){HEAPU32[this.ptr+8>>2]=destructor};this.get_destructor=function(){return HEAPU32[this.ptr+8>>2]};this.set_refcount=function(refcount){HEAP32[this.ptr>>2]=refcount};this.set_caught=function(caught){caught=caught?1:0;HEAP8[this.ptr+12>>0]=caught};this.get_caught=function(){return HEAP8[this.ptr+12>>0]!=0};this.set_rethrown=function(rethrown){rethrown=rethrown?1:0;HEAP8[this.ptr+13>>0]=rethrown};this.get_rethrown=function(){return HEAP8[this.ptr+13>>0]!=0};this.init=function(type,destructor){this.set_adjusted_ptr(0);this.set_type(type);this.set_destructor(destructor);this.set_refcount(0);this.set_caught(false);this.set_rethrown(false)};this.add_ref=function(){var value=HEAP32[this.ptr>>2];HEAP32[this.ptr>>2]=value+1};this.release_ref=function(){var prev=HEAP32[this.ptr>>2];HEAP32[this.ptr>>2]=prev-1;return prev===1};this.set_adjusted_ptr=function(adjustedPtr){HEAPU32[this.ptr+16>>2]=adjustedPtr};this.get_adjusted_ptr=function(){return HEAPU32[this.ptr+16>>2]};this.get_exception_ptr=function(){var isPointer=___cxa_is_pointer_type(this.get_type());if(isPointer){return HEAPU32[this.excPtr>>2]}var adjusted=this.get_adjusted_ptr();if(adjusted!==0)return adjusted;return this.excPtr}}var exceptionLast=0;var uncaughtExceptionCount=0;function ___cxa_throw(ptr,type,destructor){var info=new ExceptionInfo(ptr);info.init(type,destructor);exceptionLast=ptr;uncaughtExceptionCount++;throw ptr}function _abort(){abort("")}function _emscripten_memcpy_big(dest,src,num){HEAPU8.copyWithin(dest,src,src+num)}function getHeapMax(){return 2147483648}function emscripten_realloc_buffer(size){try{wasmMemory.grow(size-buffer.byteLength+65535>>>16);updateGlobalBufferAndViews(wasmMemory.buffer);return 1}catch(e){}}function _emscripten_resize_heap(requestedSize){var oldSize=HEAPU8.length;requestedSize=requestedSize>>>0;var maxHeapSize=getHeapMax();if(requestedSize>maxHeapSize){return false}let alignUp=(x,multiple)=>x+(multiple-x%multiple)%multiple;for(var cutDown=1;cutDown<=4;cutDown*=2){var overGrownHeapSize=oldSize*(1+.2/cutDown);overGrownHeapSize=Math.min(overGrownHeapSize,requestedSize+100663296);var newSize=Math.min(maxHeapSize,alignUp(Math.max(requestedSize,overGrownHeapSize),65536));var replacement=emscripten_realloc_buffer(newSize);if(replacement){return true}}return false}function intArrayFromString(stringy,dontAddNull,length){var len=length>0?length:lengthBytesUTF8(stringy)+1;var u8array=new Array(len);var numBytesWritten=stringToUTF8Array(stringy,u8array,0,u8array.length);if(dontAddNull)u8array.length=numBytesWritten;return u8array}var ASSERTIONS=false;var decodeBase64=typeof atob=="function"?atob:function(input){var keyStr="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=";var output="";var chr1,chr2,chr3;var enc1,enc2,enc3,enc4;var i=0;input=input.replace(/[^A-Za-z0-9\+\/\=]/g,"");do{enc1=keyStr.indexOf(input.charAt(i++));enc2=keyStr.indexOf(input.charAt(i++));enc3=keyStr.indexOf(input.charAt(i++));enc4=keyStr.indexOf(input.charAt(i++));chr1=enc1<<2|enc2>>4;chr2=(enc2&15)<<4|enc3>>2;chr3=(enc3&3)<<6|enc4;output=output+String.fromCharCode(chr1);if(enc3!==64){output=output+String.fromCharCode(chr2)}if(enc4!==64){output=output+String.fromCharCode(chr3)}}while(i0){return}preRun();if(runDependencies>0){return}function doRun(){if(calledRun)return;calledRun=true;Module["calledRun"]=true;if(ABORT)return;initRuntime();readyPromiseResolve(Module);if(Module["onRuntimeInitialized"])Module["onRuntimeInitialized"]();postRun()}if(Module["setStatus"]){Module["setStatus"]("Running...");setTimeout(function(){setTimeout(function(){Module["setStatus"]("")},1);doRun()},1)}else{doRun()}}if(Module["preInit"]){if(typeof Module["preInit"]=="function")Module["preInit"]=[Module["preInit"]];while(Module["preInit"].length>0){Module["preInit"].pop()()}}run();function WrapperObject(){}WrapperObject.prototype=Object.create(WrapperObject.prototype);WrapperObject.prototype.constructor=WrapperObject;WrapperObject.prototype.__class__=WrapperObject;WrapperObject.__cache__={};Module["WrapperObject"]=WrapperObject;function getCache(__class__){return(__class__||WrapperObject).__cache__}Module["getCache"]=getCache;function wrapPointer(ptr,__class__){var cache=getCache(__class__);var ret=cache[ptr];if(ret)return ret;ret=Object.create((__class__||WrapperObject).prototype);ret.ptr=ptr;return cache[ptr]=ret}Module["wrapPointer"]=wrapPointer;function castObject(obj,__class__){return wrapPointer(obj.ptr,__class__)}Module["castObject"]=castObject;Module["NULL"]=wrapPointer(0);function destroy(obj){if(!obj["__destroy__"])throw"Error: Cannot destroy object. (Did you create it yourself?)";obj["__destroy__"]();delete getCache(obj.__class__)[obj.ptr]}Module["destroy"]=destroy;function compare(obj1,obj2){return obj1.ptr===obj2.ptr}Module["compare"]=compare;function getPointer(obj){return obj.ptr}Module["getPointer"]=getPointer;function getClass(obj){return obj.__class__}Module["getClass"]=getClass;var ensureCache={buffer:0,size:0,pos:0,temps:[],needed:0,prepare:function(){if(ensureCache.needed){for(var i=0;i=ensureCache.size){assert(len>0);ensureCache.needed+=len;ret=Module["_malloc"](len);ensureCache.temps.push(ret)}else{ret=ensureCache.buffer+ensureCache.pos;ensureCache.pos+=len}return ret},copy:function(array,view,offset){offset>>>=0;var bytes=view.BYTES_PER_ELEMENT;switch(bytes){case 2:offset>>>=1;break;case 4:offset>>>=2;break;case 8:offset>>>=3;break}for(var i=0;i { function(DracoEncoderModule) { DracoEncoderModule = DracoEncoderModule || {}; -var Module=typeof DracoEncoderModule!="undefined"?DracoEncoderModule:{};var readyPromiseResolve,readyPromiseReject;Module["ready"]=new Promise(function(resolve,reject){readyPromiseResolve=resolve;readyPromiseReject=reject});var isRuntimeInitialized=false;var isModuleParsed=false;Module["onRuntimeInitialized"]=function(){isRuntimeInitialized=true;if(isModuleParsed){if(typeof Module["onModuleLoaded"]==="function"){Module["onModuleLoaded"](Module)}}};Module["onModuleParsed"]=function(){isModuleParsed=true;if(isRuntimeInitialized){if(typeof Module["onModuleLoaded"]==="function"){Module["onModuleLoaded"](Module)}}};function isVersionSupported(versionString){if(typeof versionString!=="string")return false;const version=versionString.split(".");if(version.length<2||version.length>3)return false;if(version[0]==1&&version[1]>=0&&version[1]<=5)return true;if(version[0]!=0||version[1]>10)return false;return true}Module["isVersionSupported"]=isVersionSupported;var moduleOverrides=Object.assign({},Module);var arguments_=[];var thisProgram="./this.program";var quit_=(status,toThrow)=>{throw toThrow};var ENVIRONMENT_IS_WEB=typeof window=="object";var ENVIRONMENT_IS_WORKER=typeof importScripts=="function";var ENVIRONMENT_IS_NODE=typeof process=="object"&&typeof process.versions=="object"&&typeof process.versions.node=="string";var scriptDirectory="";function locateFile(path){if(Module["locateFile"]){return Module["locateFile"](path,scriptDirectory)}return scriptDirectory+path}var read_,readAsync,readBinary,setWindowTitle;function logExceptionOnExit(e){if(e instanceof ExitStatus)return;let toLog=e;err("exiting due to exception: "+toLog)}var fs;var nodePath;var requireNodeFS;if(ENVIRONMENT_IS_NODE){if(ENVIRONMENT_IS_WORKER){scriptDirectory=require("path").dirname(scriptDirectory)+"/"}else{scriptDirectory=__dirname+"/"}requireNodeFS=()=>{if(!nodePath){fs=require("fs");nodePath=require("path")}};read_=function shell_read(filename,binary){var ret=tryParseAsDataURI(filename);if(ret){return binary?ret:ret.toString()}requireNodeFS();filename=nodePath["normalize"](filename);return fs.readFileSync(filename,binary?undefined:"utf8")};readBinary=filename=>{var ret=read_(filename,true);if(!ret.buffer){ret=new Uint8Array(ret)}return ret};readAsync=(filename,onload,onerror)=>{var ret=tryParseAsDataURI(filename);if(ret){onload(ret)}requireNodeFS();filename=nodePath["normalize"](filename);fs.readFile(filename,function(err,data){if(err)onerror(err);else onload(data.buffer)})};if(process["argv"].length>1){thisProgram=process["argv"][1].replace(/\\/g,"/")}arguments_=process["argv"].slice(2);quit_=(status,toThrow)=>{if(keepRuntimeAlive()){process["exitCode"]=status;throw toThrow}logExceptionOnExit(toThrow);process["exit"](status)};Module["inspect"]=function(){return"[Emscripten Module object]"}}else if(ENVIRONMENT_IS_WEB||ENVIRONMENT_IS_WORKER){if(ENVIRONMENT_IS_WORKER){scriptDirectory=self.location.href}else if(typeof document!="undefined"&&document.currentScript){scriptDirectory=document.currentScript.src}if(_scriptDir){scriptDirectory=_scriptDir}if(scriptDirectory.indexOf("blob:")!==0){scriptDirectory=scriptDirectory.substr(0,scriptDirectory.replace(/[?#].*/,"").lastIndexOf("/")+1)}else{scriptDirectory=""}{read_=url=>{try{var xhr=new XMLHttpRequest;xhr.open("GET",url,false);xhr.send(null);return xhr.responseText}catch(err){var data=tryParseAsDataURI(url);if(data){return intArrayToString(data)}throw err}};if(ENVIRONMENT_IS_WORKER){readBinary=url=>{try{var xhr=new XMLHttpRequest;xhr.open("GET",url,false);xhr.responseType="arraybuffer";xhr.send(null);return new Uint8Array(xhr.response)}catch(err){var data=tryParseAsDataURI(url);if(data){return data}throw err}}}readAsync=(url,onload,onerror)=>{var xhr=new XMLHttpRequest;xhr.open("GET",url,true);xhr.responseType="arraybuffer";xhr.onload=()=>{if(xhr.status==200||xhr.status==0&&xhr.response){onload(xhr.response);return}var data=tryParseAsDataURI(url);if(data){onload(data.buffer);return}onerror()};xhr.onerror=onerror;xhr.send(null)}}setWindowTitle=title=>document.title=title}else{}var out=Module["print"]||console.log.bind(console);var err=Module["printErr"]||console.warn.bind(console);Object.assign(Module,moduleOverrides);moduleOverrides=null;if(Module["arguments"])arguments_=Module["arguments"];if(Module["thisProgram"])thisProgram=Module["thisProgram"];if(Module["quit"])quit_=Module["quit"];var wasmBinary;if(Module["wasmBinary"])wasmBinary=Module["wasmBinary"];var noExitRuntime=Module["noExitRuntime"]||true;var WebAssembly={Memory:function(opts){this.buffer=new ArrayBuffer(opts["initial"]*65536)},Module:function(binary){},Instance:function(module,info){this.exports=( +var Module=typeof DracoEncoderModule!="undefined"?DracoEncoderModule:{};var readyPromiseResolve,readyPromiseReject;Module["ready"]=new Promise(function(resolve,reject){readyPromiseResolve=resolve;readyPromiseReject=reject});var isRuntimeInitialized=false;var isModuleParsed=false;Module["onRuntimeInitialized"]=function(){isRuntimeInitialized=true;if(isModuleParsed){if(typeof Module["onModuleLoaded"]==="function"){Module["onModuleLoaded"](Module)}}};Module["onModuleParsed"]=function(){isModuleParsed=true;if(isRuntimeInitialized){if(typeof Module["onModuleLoaded"]==="function"){Module["onModuleLoaded"](Module)}}};function isVersionSupported(versionString){if(typeof versionString!=="string")return false;const version=versionString.split(".");if(version.length<2||version.length>3)return false;if(version[0]==1&&version[1]>=0&&version[1]<=5)return true;if(version[0]!=0||version[1]>10)return false;return true}Module["isVersionSupported"]=isVersionSupported;var moduleOverrides=Object.assign({},Module);var arguments_=[];var thisProgram="./this.program";var quit_=(status,toThrow)=>{throw toThrow};var ENVIRONMENT_IS_WEB=typeof window=="object";var ENVIRONMENT_IS_WORKER=typeof importScripts=="function";var ENVIRONMENT_IS_NODE=typeof process=="object"&&typeof process.versions=="object"&&typeof process.versions.node=="string";var scriptDirectory="";function locateFile(path){if(Module["locateFile"]){return Module["locateFile"](path,scriptDirectory)}return scriptDirectory+path}var read_,readAsync,readBinary,setWindowTitle;function logExceptionOnExit(e){if(e instanceof ExitStatus)return;let toLog=e;err("exiting due to exception: "+toLog)}if(ENVIRONMENT_IS_NODE){if(ENVIRONMENT_IS_WORKER){scriptDirectory=require("path").dirname(scriptDirectory)+"/"}else{scriptDirectory=__dirname+"/"}var fs,nodePath;if(typeof require==="function"){fs=require("fs");nodePath=require("path")}read_=(filename,binary)=>{var ret=tryParseAsDataURI(filename);if(ret){return binary?ret:ret.toString()}filename=nodePath["normalize"](filename);return fs.readFileSync(filename,binary?undefined:"utf8")};readBinary=filename=>{var ret=read_(filename,true);if(!ret.buffer){ret=new Uint8Array(ret)}return ret};readAsync=(filename,onload,onerror)=>{var ret=tryParseAsDataURI(filename);if(ret){onload(ret)}filename=nodePath["normalize"](filename);fs.readFile(filename,function(err,data){if(err)onerror(err);else onload(data.buffer)})};if(process["argv"].length>1){thisProgram=process["argv"][1].replace(/\\/g,"/")}arguments_=process["argv"].slice(2);quit_=(status,toThrow)=>{if(keepRuntimeAlive()){process["exitCode"]=status;throw toThrow}logExceptionOnExit(toThrow);process["exit"](status)};Module["inspect"]=function(){return"[Emscripten Module object]"}}else if(ENVIRONMENT_IS_WEB||ENVIRONMENT_IS_WORKER){if(ENVIRONMENT_IS_WORKER){scriptDirectory=self.location.href}else if(typeof document!="undefined"&&document.currentScript){scriptDirectory=document.currentScript.src}if(_scriptDir){scriptDirectory=_scriptDir}if(scriptDirectory.indexOf("blob:")!==0){scriptDirectory=scriptDirectory.substr(0,scriptDirectory.replace(/[?#].*/,"").lastIndexOf("/")+1)}else{scriptDirectory=""}{read_=url=>{try{var xhr=new XMLHttpRequest;xhr.open("GET",url,false);xhr.send(null);return xhr.responseText}catch(err){var data=tryParseAsDataURI(url);if(data){return intArrayToString(data)}throw err}};if(ENVIRONMENT_IS_WORKER){readBinary=url=>{try{var xhr=new XMLHttpRequest;xhr.open("GET",url,false);xhr.responseType="arraybuffer";xhr.send(null);return new Uint8Array(xhr.response)}catch(err){var data=tryParseAsDataURI(url);if(data){return data}throw err}}}readAsync=(url,onload,onerror)=>{var xhr=new XMLHttpRequest;xhr.open("GET",url,true);xhr.responseType="arraybuffer";xhr.onload=()=>{if(xhr.status==200||xhr.status==0&&xhr.response){onload(xhr.response);return}var data=tryParseAsDataURI(url);if(data){onload(data.buffer);return}onerror()};xhr.onerror=onerror;xhr.send(null)}}setWindowTitle=title=>document.title=title}else{}var out=Module["print"]||console.log.bind(console);var err=Module["printErr"]||console.warn.bind(console);Object.assign(Module,moduleOverrides);moduleOverrides=null;if(Module["arguments"])arguments_=Module["arguments"];if(Module["thisProgram"])thisProgram=Module["thisProgram"];if(Module["quit"])quit_=Module["quit"];var wasmBinary;if(Module["wasmBinary"])wasmBinary=Module["wasmBinary"];var noExitRuntime=Module["noExitRuntime"]||true;var WebAssembly={Memory:function(opts){this.buffer=new ArrayBuffer(opts["initial"]*65536)},Module:function(binary){},Instance:function(module,info){this.exports=( // EMSCRIPTEN_START_ASM -function instantiate(pa){function c(d){d.set=function(a,b){this[a]=b};d.get=function(a){return this[a]};return d}var e;var f=new Uint8Array(123);for(var a=25;a>=0;--a){f[48+a]=52+a;f[65+a]=a;f[97+a]=26+a}f[43]=62;f[47]=63;function l(m,n,o){var g,h,a=0,i=n,j=o.length,k=n+(j*3>>2)-(o[j-2]=="=")-(o[j-1]=="=");for(;a>4;if(i>2;if(i=0;--a){f[48+a]=52+a;f[65+a]=a;f[97+a]=26+a}f[43]=62;f[47]=63;function l(m,n,o){var g,h,a=0,i=n,j=o.length,k=n+(j*3>>2)-(o[j-2]=="=")-(o[j-1]=="=");for(;a>4;if(i>2;if(i>2]=0;H[E+32>>2]=0;H[E+36>>2]=0;c:{d:{if(b>>>0<1073741824){f=b<<2;g=ra(f);H[E+36>>2]=g;H[E+32>>2]=g;f=f+g|0;h=(c|0)>1?c:1;c=h-1|0;t=c&-4;o=c&3;s=h-2>>>0>2;z=g;n=g;e:{f:{g:{while(1){l=H[(k<<2)+a>>2];h:{if(h>>>0<2){break h}p=0;c=1;if(s){while(1){j=(c+k<<2)+a|0;r=H[j>>2];l=l>>>0>r>>>0?l:r;r=H[j+4>>2];l=l>>>0>r>>>0?l:r;r=H[j+8>>2];l=l>>>0>r>>>0?l:r;j=H[j+12>>2];l=j>>>0>>0?l:j;c=c+4|0;p=p+4|0;if((t|0)!=(p|0)){continue}break}}p=0;if(!o){break h}while(1){j=H[(c+k<<2)+a>>2];l=j>>>0>>0?l:j;c=c+1|0;p=p+1|0;if((o|0)!=(p|0)){continue}break}}j=l?(Q(l)^31)+1|0:1;i:{if(f>>>0>n>>>0){H[n>>2]=j;n=n+4|0;H[E+36>>2]=n;break i}p=n-z|0;n=p>>2;c=n+1|0;if(c>>>0>=1073741824){break g}f=f-z|0;r=f>>1;c=f>>>0<2147483644?c>>>0>>0?r:c:1073741823;if(c){if(c>>>0>=1073741824){break f}g=ra(c<<2)}else{g=0}f=g+(n<<2)|0;H[f>>2]=j;n=f+4|0;if((p|0)>0){sa(g,z,p)}f=(c<<2)+g|0;H[E+36>>2]=n;if(z){qa(z)}z=g}m=l>>>0>m>>>0?l:m;k=h+k|0;if((k|0)<(b|0)){continue}break}H[E+40>>2]=f;H[E+32>>2]=g;g=0;H[E+24>>2]=0;H[E+16>>2]=0;H[E+20>>2]=0;j=(n|0)==(z|0);j:{if(j){c=0;break j}f=n-z|0;if((f|0)<0){break e}c=ra(f);H[E+16>>2]=c;g=f>>2;H[E+24>>2]=(g<<2)+c;o=sa(c,z,f);H[E+20>>2]=o+f;if(j){break j}f=g>>>0>1?g:1;t=f&3;k=0;k:{if(f-1>>>0<3){l=0;break k}s=f&-4;l=0;p=0;while(1){f=u;n=l<<2;u=H[n+o>>2];f=f+u|0;j=f>>>0>>0?i+1|0:i;u=H[o+(n|4)>>2];i=u+f|0;f=j;f=i>>>0>>0?f+1|0:f;j=H[o+(n|8)>>2];i=j+i|0;f=i>>>0>>0?f+1|0:f;n=H[o+(n|12)>>2];i=n+i|0;u=i;i=i>>>0>>0?f+1|0:f;l=l+4|0;p=p+4|0;if((s|0)!=(p|0)){continue}break}}if(!t){break j}while(1){f=i;p=H[o+(l<<2)>>2];j=p+u|0;u=j;i=j>>>0

>>0?f+1|0:f;l=l+1|0;k=k+1|0;if((t|0)!=(k|0)){continue}break}}p=Dg(c,g,32,E);n=ea;t=H[E>>2];if(c){H[E+20>>2]=c;qa(c)}s=Dg(a,b,m,E);r=ea;k=H[E>>2];G=(m-k|0)/64|0;if(d){c=ra(32);f=I[1587]|I[1588]<<8|(I[1589]<<16|I[1590]<<24);g=I[1583]|I[1584]<<8|(I[1585]<<16|I[1586]<<24);F[c+14|0]=g;F[c+15|0]=g>>>8;F[c+16|0]=g>>>16;F[c+17|0]=g>>>24;F[c+18|0]=f;F[c+19|0]=f>>>8;F[c+20|0]=f>>>16;F[c+21|0]=f>>>24;f=I[1581]|I[1582]<<8|(I[1583]<<16|I[1584]<<24);g=I[1577]|I[1578]<<8|(I[1579]<<16|I[1580]<<24);F[c+8|0]=g;F[c+9|0]=g>>>8;F[c+10|0]=g>>>16;F[c+11|0]=g>>>24;F[c+12|0]=f;F[c+13|0]=f>>>8;F[c+14|0]=f>>>16;F[c+15|0]=f>>>24;f=I[1573]|I[1574]<<8|(I[1575]<<16|I[1576]<<24);g=I[1569]|I[1570]<<8|(I[1571]<<16|I[1572]<<24);F[c|0]=g;F[c+1|0]=g>>>8;F[c+2|0]=g>>>16;F[c+3|0]=g>>>24;F[c+4|0]=f;F[c+5|0]=f>>>8;F[c+6|0]=f>>>16;F[c+7|0]=f>>>24;F[c+22|0]=0;l=H[d+4>>2];if(l){while(1){f=I[l+27|0];g=f<<24>>24<0;f=g?H[l+20>>2]:f;j=f>>>0<22;l:{m:{n:{o:{p:{q:{o=j?f:22;if(o){y=l+16|0;g=g?H[y>>2]:y;y=Ea(c,g,o);if(y){break q}if(f>>>0<=22){break p}break l}if(f>>>0<=22){break o}break l}if((y|0)<0){break l}}f=Ea(g,c,o);if(f){break n}}if(j){break m}break d}if((f|0)>=0){break d}}l=l+4|0}l=H[l>>2];if(l){continue}break}}qa(c)}if((Q(m>>>0>1?m:1)^30)>>>0<18){i=zl(u,i,h,0);c=i+p|0;f=ea+n|0;f=c>>>0>>0?f+1|0:f;g=c;c=t<<3;i=c>>31;o=i<<1|c>>>31;i=c<<1;c=g+i|0;j=f+o|0;j=c>>>0>>0?j+1|0:j;i=c;c=k+G<<3;g=c>>31;u=c;f=k<<3;o=f;c=f+s|0;f=(f>>31)+r|0;f=c>>>0>>0?f+1|0:f;o=c;c=u+c|0;g=f+g|0;g=c>>>0>>0?g+1|0:g;c=(g|0)<=(j|0)&c>>>0<=i>>>0|(g|0)<(j|0)}else{c=0}break c}H[E+40>>2]=f;H[E+32>>2]=g;break a}H[E+32>>2]=g;ya();X()}break a}break a}qa(c);c=ra(32);H[E>>2]=c;H[E+4>>2]=22;H[E+8>>2]=-2147483616;F[c+22|0]=0;i=I[1587]|I[1588]<<8|(I[1589]<<16|I[1590]<<24);f=I[1583]|I[1584]<<8|(I[1585]<<16|I[1586]<<24);F[c+14|0]=f;F[c+15|0]=f>>>8;F[c+16|0]=f>>>16;F[c+17|0]=f>>>24;F[c+18|0]=i;F[c+19|0]=i>>>8;F[c+20|0]=i>>>16;F[c+21|0]=i>>>24;i=I[1581]|I[1582]<<8|(I[1583]<<16|I[1584]<<24);f=I[1577]|I[1578]<<8|(I[1579]<<16|I[1580]<<24);F[c+8|0]=f;F[c+9|0]=f>>>8;F[c+10|0]=f>>>16;F[c+11|0]=f>>>24;F[c+12|0]=i;F[c+13|0]=i>>>8;F[c+14|0]=i>>>16;F[c+15|0]=i>>>24;i=I[1573]|I[1574]<<8|(I[1575]<<16|I[1576]<<24);f=I[1569]|I[1570]<<8|(I[1571]<<16|I[1572]<<24);F[c|0]=f;F[c+1|0]=f>>>8;F[c+2|0]=f>>>16;F[c+3|0]=f>>>24;F[c+4|0]=i;F[c+5|0]=i>>>8;F[c+6|0]=i>>>16;F[c+7|0]=i>>>24;c=Ff(d,E);if(F[E+11|0]>=0){break c}qa(H[E>>2])}F[E|0]=c;i=H[e+20>>2];if(!H[e+16>>2]&(i|0)<=0|(i|0)<0){wa(e,H[e+4>>2],E,E+1|0)}l=0;r:{s:{switch(c|0){case 0:m=0;p=0;z=da-336|0;da=z;ta(z+80|0,0,256);d=H[E+36>>2];c=H[E+32>>2];t:{if((d|0)==(c|0)){break t}d=d-c>>2;d=d>>>0>1?d:1;g=d&3;if(d-1>>>0>=3){l=d&-4;while(1){i=z+80|0;d=m<<2;j=i+(H[d+c>>2]<<3)|0;f=H[j+4>>2];k=H[j>>2]+1|0;f=k?f:f+1|0;H[j>>2]=k;H[j+4>>2]=f;f=i+(H[c+(d|4)>>2]<<3)|0;o=H[f+4>>2];j=H[f>>2]+1|0;o=j?o:o+1|0;H[f>>2]=j;H[f+4>>2]=o;f=i+(H[c+(d|8)>>2]<<3)|0;k=H[f+4>>2];j=H[f>>2]+1|0;k=j?k:k+1|0;H[f>>2]=j;H[f+4>>2]=k;d=i+(H[c+(d|12)>>2]<<3)|0;f=H[d+4>>2];i=H[d>>2]+1|0;f=i?f:f+1|0;H[d>>2]=i;H[d+4>>2]=f;m=m+4|0;p=p+4|0;if((l|0)!=(p|0)){continue}break}}if(!g){break t}p=0;while(1){d=(z+80|0)+(H[c+(m<<2)>>2]<<3)|0;o=H[d+4>>2];i=H[d>>2]+1|0;o=i?o:o+1|0;H[d>>2]=i;H[d+4>>2]=o;m=m+1|0;p=p+1|0;if((g|0)!=(p|0)){continue}break}}n=z+48|0;c=n;H[c>>2]=0;H[c+4>>2]=0;F[c+24|0]=0;H[c+16>>2]=0;H[c+20>>2]=0;H[c+8>>2]=0;H[c+12>>2]=0;H[z+8>>2]=0;H[z+12>>2]=0;H[z+16>>2]=0;H[z+20>>2]=0;H[z+24>>2]=0;H[z+28>>2]=0;H[z+32>>2]=0;H[z>>2]=0;H[z+4>>2]=0;H[z+40>>2]=0;H[z+44>>2]=0;Bg(z,z+80|0,32,e);i=H[z+16>>2];c=H[z+20>>2];d=H[e+4>>2]-H[e>>2]|0;H[z+40>>2]=d;H[z+44>>2]=0;o=c<<1|i>>>31;c=(i<<1)+39|0;k=o;k=c>>>0<39?k+1|0:k;c=d+((k&7)<<29|c>>>3)|0;f=k>>>3|0;f=c>>>0>>0?f+1|0:f;c=c+8|0;Ma(e,c);c=H[e>>2];H[z+28>>2]=0;H[z+32>>2]=16384;H[z+24>>2]=c+H[z+40>>2];c=b;xd(n,c<<5,c>>31<<5|c>>>27,0);b=c-h|0;if((b|0)>=0){j=(h|0)<=0;c=b;while(1){m=H[z+32>>2];l=H[E+32>>2];i=H[z>>2]+(H[l+((c|0)/(h|0)<<2)>>2]<<3)|0;d=H[i>>2];f=d<<10;if(m>>>0>=f>>>0){while(1){g=H[z+28>>2];H[z+28>>2]=g+1;F[g+H[z+24>>2]|0]=m;m=H[z+32>>2]>>>8|0;H[z+32>>2]=m;if(f>>>0<=m>>>0){continue}break}l=H[E+32>>2]}g=H[i+4>>2];i=(m>>>0)/(d>>>0)|0;H[z+32>>2]=g+((i<<12)+(m-N(d,i)|0)|0);k=b-c|0;d=(k|0)/(h|0)|0;u:{if(j){break u}u=H[n+16>>2];i=H[n+20>>2];if(!u&(i|0)<=0|(i|0)<0){break u}f=H[(d<<2)+l>>2];l=0;while(1){if(!(!u&(i|0)<=0|(i|0)<0|(f|0)<=0)){i=H[(l+k<<2)+a>>2];d=H[n+12>>2];g=H[d+4>>2];p=0;while(1){o=g>>>3|0;t=o+H[d>>2]|0;m=I[t|0];g=g&7;J=t,L=Dl(g)&m,F[J|0]=L;o=o+H[d>>2]|0;F[o|0]=I[o|0]|(i>>>p&1)<>2]+1|0;H[d+4>>2]=g;p=p+1|0;if((f|0)!=(p|0)){continue}break}}l=l+1|0;if((h|0)==(l|0)){break u}u=H[n+16>>2];i=H[n+20>>2];continue}}c=c-h|0;if((c|0)>=0){continue}break}}zb(z,e);wd(n);a=H[e+20>>2];if(!H[e+16>>2]&(a|0)<=0|(a|0)<0){wa(e,H[e+4>>2],H[n>>2],H[n+4>>2])}a=H[z>>2];if(a){H[z+4>>2]=a;qa(a)}a=H[n+12>>2];H[n+12>>2]=0;if(a){qa(a)}a=H[n>>2];if(a){H[n+4>>2]=a;qa(a)}da=z+336|0;l=1;z=H[E+32>>2];break r;case 1:break s;default:break r}}p=0;G=da-32|0;da=G;l=1;v:{if((k|0)>0){c=Q(k);if((c^30)>>>0>17){break v}l=32-c|0}w:{if(!d){break w}c=ra(48);F[c+32|0]=I[1470];i=I[1466]|I[1467]<<8|(I[1468]<<16|I[1469]<<24);f=I[1462]|I[1463]<<8|(I[1464]<<16|I[1465]<<24);F[c+24|0]=f;F[c+25|0]=f>>>8;F[c+26|0]=f>>>16;F[c+27|0]=f>>>24;F[c+28|0]=i;F[c+29|0]=i>>>8;F[c+30|0]=i>>>16;F[c+31|0]=i>>>24;i=I[1458]|I[1459]<<8|(I[1460]<<16|I[1461]<<24);f=I[1454]|I[1455]<<8|(I[1456]<<16|I[1457]<<24);F[c+16|0]=f;F[c+17|0]=f>>>8;F[c+18|0]=f>>>16;F[c+19|0]=f>>>24;F[c+20|0]=i;F[c+21|0]=i>>>8;F[c+22|0]=i>>>16;F[c+23|0]=i>>>24;i=I[1450]|I[1451]<<8|(I[1452]<<16|I[1453]<<24);f=I[1446]|I[1447]<<8|(I[1448]<<16|I[1449]<<24);F[c+8|0]=f;F[c+9|0]=f>>>8;F[c+10|0]=f>>>16;F[c+11|0]=f>>>24;F[c+12|0]=i;F[c+13|0]=i>>>8;F[c+14|0]=i>>>16;F[c+15|0]=i>>>24;i=I[1442]|I[1443]<<8|(I[1444]<<16|I[1445]<<24);f=I[1438]|I[1439]<<8|(I[1440]<<16|I[1441]<<24);F[c|0]=f;F[c+1|0]=f>>>8;F[c+2|0]=f>>>16;F[c+3|0]=f>>>24;F[c+4|0]=i;F[c+5|0]=i>>>8;F[c+6|0]=i>>>16;F[c+7|0]=i>>>24;F[c+33|0]=0;x:{p=H[d+4>>2];if(p){while(1){i=I[p+27|0];f=i<<24>>24<0;i=f?H[p+20>>2]:i;g=i>>>0<33;y:{z:{A:{B:{C:{D:{j=g?i:33;if(j){k=p+16|0;f=f?H[k>>2]:k;k=Ea(c,f,j);if(k){break D}if(i>>>0<=33){break C}break y}if(i>>>0<=33){break B}break y}if((k|0)<0){break y}}i=Ea(f,c,j);if(i){break A}}if(g){break z}break x}if((i|0)>=0){break x}}p=p+4|0}p=H[p>>2];if(p){continue}break}qa(c);break w}qa(c);break w}qa(c);c=ra(48);H[G+16>>2]=c;H[G+20>>2]=33;H[G+24>>2]=-2147483600;F[c+33|0]=0;F[c+32|0]=I[1470];i=I[1466]|I[1467]<<8|(I[1468]<<16|I[1469]<<24);f=I[1462]|I[1463]<<8|(I[1464]<<16|I[1465]<<24);F[c+24|0]=f;F[c+25|0]=f>>>8;F[c+26|0]=f>>>16;F[c+27|0]=f>>>24;F[c+28|0]=i;F[c+29|0]=i>>>8;F[c+30|0]=i>>>16;F[c+31|0]=i>>>24;i=I[1458]|I[1459]<<8|(I[1460]<<16|I[1461]<<24);f=I[1454]|I[1455]<<8|(I[1456]<<16|I[1457]<<24);F[c+16|0]=f;F[c+17|0]=f>>>8;F[c+18|0]=f>>>16;F[c+19|0]=f>>>24;F[c+20|0]=i;F[c+21|0]=i>>>8;F[c+22|0]=i>>>16;F[c+23|0]=i>>>24;i=I[1450]|I[1451]<<8|(I[1452]<<16|I[1453]<<24);f=I[1446]|I[1447]<<8|(I[1448]<<16|I[1449]<<24);F[c+8|0]=f;F[c+9|0]=f>>>8;F[c+10|0]=f>>>16;F[c+11|0]=f>>>24;F[c+12|0]=i;F[c+13|0]=i>>>8;F[c+14|0]=i>>>16;F[c+15|0]=i>>>24;i=I[1442]|I[1443]<<8|(I[1444]<<16|I[1445]<<24);f=I[1438]|I[1439]<<8|(I[1440]<<16|I[1441]<<24);F[c|0]=f;F[c+1|0]=f>>>8;F[c+2|0]=f>>>16;F[c+3|0]=f>>>24;F[c+4|0]=i;F[c+5|0]=i>>>8;F[c+6|0]=i>>>16;F[c+7|0]=i>>>24;c=Ff(d,G+16|0);if(F[G+27|0]<0){qa(H[G+16>>2])}if((c|0)<=3){l=l-2|0;break w}if(c>>>0<=5){l=l-1|0;break w}if(c>>>0>=10){l=l+2|0;break w}l=(c>>>0>7)+l|0}c=(l|0)>1?l:1;c=(c|0)<18?c:18;F[G+15|0]=c;d=H[e+20>>2];if(!H[e+16>>2]&(d|0)<=0|(d|0)<0){wa(e,H[e+4>>2],G+15|0,G+16|0)}p=0;E:{switch(c-1|0){case 0:t=a;l=0;n=0;d=0;s=0;u=0;i=0;h=da+-64|0;da=h;H[h+56>>2]=0;H[h+48>>2]=0;H[h+52>>2]=0;F:{a=m+1|0;if(a){if(a>>>0>=536870912){break a}a=a<<3;p=ra(a);H[h+48>>2]=p;l=a+p|0;H[h+56>>2]=l;ta(p,0,(m<<3)+8|0);H[h+52>>2]=l}G:{if((b|0)<=0){break G}a=0;if(b-1>>>0>=3){j=b&-4;while(1){c=a<<2;f=(H[c+t>>2]<<3)+p|0;o=H[f+4>>2];g=H[f>>2]+1|0;o=g?o:o+1|0;H[f>>2]=g;H[f+4>>2]=o;f=(H[t+(c|4)>>2]<<3)+p|0;k=H[f+4>>2];g=H[f>>2]+1|0;k=g?k:k+1|0;H[f>>2]=g;H[f+4>>2]=k;g=(H[t+(c|8)>>2]<<3)+p|0;f=H[g+4>>2];k=H[g>>2]+1|0;f=k?f:f+1|0;H[g>>2]=k;H[g+4>>2]=f;c=(H[t+(c|12)>>2]<<3)+p|0;o=H[c+4>>2];f=H[c>>2]+1|0;o=f?o:o+1|0;H[c>>2]=f;H[c+4>>2]=o;a=a+4|0;n=n+4|0;if((j|0)!=(n|0)){continue}break}}f=b&3;if(!f){break G}while(1){c=(H[t+(a<<2)>>2]<<3)+p|0;k=H[c+4>>2];g=H[c>>2]+1|0;k=g?k:k+1|0;H[c>>2]=g;H[c+4>>2]=k;a=a+1|0;d=d+1|0;if((f|0)!=(d|0)){continue}break}}H[h+8>>2]=0;H[h+12>>2]=0;H[h+16>>2]=0;H[h+20>>2]=0;H[h+24>>2]=0;H[h+28>>2]=0;H[h+32>>2]=0;H[h>>2]=0;H[h+4>>2]=0;H[h+40>>2]=0;H[h+44>>2]=0;m=0;d=0;c=0;r=da-32|0;da=r;a=l-p>>3;H:{if((a|0)<=0){break H}l=a&3;I:{if(a-1>>>0<3){a=0;break I}D=a&-4;a=0;while(1){o=a|1;g=(o<<3)+p|0;f=H[g+4>>2];n=H[g>>2];B=a|2;j=(B<<3)+p|0;g=H[j+4>>2];y=H[j>>2];x=a|3;k=(x<<3)+p|0;j=H[k+4>>2];A=H[k>>2];w=c;c=(a<<3)+p|0;C=H[c+4>>2];k=H[c>>2];c=j|A?x:g|y?B:f|n?o:!(C|k)?w:a;o=f;w=n;f=i+C|0;n=k+u|0;f=n>>>0>>0?f+1|0:f;k=n;i=w+k|0;o=f+o|0;o=i>>>0>>0?o+1|0:o;k=i;i=i+y|0;f=g+o|0;f=i>>>0>>0?f+1|0:f;k=i;i=i+A|0;g=f+j|0;u=i;i=i>>>0>>0?g+1|0:g;a=a+4|0;d=d+4|0;if((D|0)!=(d|0)){continue}break}}if(!l){break H}while(1){g=c;c=(a<<3)+p|0;f=H[c+4>>2];d=H[c>>2];c=!(f|d)?g:a;a=a+1|0;k=f+i|0;g=d+u|0;k=g>>>0>>0?k+1|0:k;u=g;i=k;m=m+1|0;if((l|0)!=(m|0)){continue}break}}f=c+1|0;H[h+12>>2]=f;d=H[h>>2];a=H[h+4>>2]-d>>3;J:{if(a>>>0>>0){Ya(h,f-a|0);break J}if(a>>>0<=f>>>0){break J}H[h+4>>2]=d+(f<<3)}n=0;K:{L:{M:{N:{if((c|0)>=0){v=+(u>>>0)+ +(i>>>0)*4294967296;i=H[h>>2];a=0;while(1){g=a<<3;j=g+p|0;d=H[j+4>>2];j=H[j>>2];k=(d|j)!=0;g=g+i|0;q=(+(j>>>0)+ +(d>>>0)*4294967296)/v*4096+.5;O:{if(q<4294967296&q>=0){d=~~q>>>0;break O}d=0}d=d?d:k?1:d;H[g>>2]=d;n=d+n|0;d=(a|0)==(c|0);a=a+1|0;if(!d){continue}break}if((n|0)==4096){break N}}H[r+16>>2]=0;H[r+8>>2]=0;H[r+12>>2]=0;l=0;if(f){if(f>>>0>=1073741824){break a}a=f<<2;l=ra(a);H[r+8>>2]=l;s=a+l|0;H[r+16>>2]=s;ta(l,0,a);H[r+12>>2]=s}a=0;P:{if((c|0)<0){break P}i=c+1|0;d=i&7;if(c>>>0>=7){i=i&-8;m=0;while(1){H[(a<<2)+l>>2]=a;f=a|1;H[(f<<2)+l>>2]=f;f=a|2;H[(f<<2)+l>>2]=f;f=a|3;H[(f<<2)+l>>2]=f;f=a|4;H[(f<<2)+l>>2]=f;f=a|5;H[(f<<2)+l>>2]=f;f=a|6;H[(f<<2)+l>>2]=f;f=a|7;H[(f<<2)+l>>2]=f;a=a+8|0;m=m+8|0;if((i|0)!=(m|0)){continue}break}}if(!d){break P}m=0;while(1){H[(a<<2)+l>>2]=a;a=a+1|0;m=m+1|0;if((d|0)!=(m|0)){continue}break}}H[r+24>>2]=h;a=s-l|0;d=a>>2;Q:{R:{if((a|0)>=513){a=d;while(1){i=ra(a<<2);if(i){break R}i=a>>>0>1;a=a>>>1|0;if(i){continue}break}}ic(l,s,r+24|0,d,0,0);break Q}ic(l,s,r+24|0,d,i,a);qa(i)}if((n|0)<4096){a=H[h>>2]+(H[s-4>>2]<<3)|0;H[a>>2]=(H[a>>2]-n|0)+4096;a=0;break M}if((c|0)>0){g=H[h>>2];m=n-4096|0;while(1){q=4096/+(n|0);d=c;while(1){S:{T:{i=g+(H[(d<<2)+l>>2]<<3)|0;a=H[i>>2];if(a>>>0>=2){k=i;o=a;v=T(q*+(a>>>0));U:{if(P(v)<2147483648){f=~~v;break U}f=-2147483648}i=(a|0)==(f|0)?1:a-f|0;a=(a|0)>(i|0)?i:a-1|0;a=(a|0)<(m|0)?a:m;H[k>>2]=o-a;m=m-a|0;n=n-a|0;if((n|0)!=4096){break T}n=4096;break S}if((c|0)!=(d|0)){break S}a=1;break M}a=(d|0)>1;d=d-1|0;if(a){continue}}break}a=0;if((m|0)>0){continue}break}break M}a=0;if(n>>>0<4097){break M}while(1)continue}if((c|0)<0){break K}break L}d=H[r+8>>2];if(d){qa(d)}if((c|0)<0|a){break K}}i=c+1|0;g=i&3;d=H[h>>2];n=0;m=0;a=0;if(c>>>0>=3){j=i&-4;l=0;while(1){f=m<<3;k=f+d|0;H[k+4>>2]=a;o=d+(f|8)|0;a=H[k>>2]+a|0;H[o+4>>2]=a;k=d+(f|16)|0;a=a+H[o>>2]|0;H[k+4>>2]=a;f=d+(f|24)|0;a=a+H[k>>2]|0;H[f+4>>2]=a;a=a+H[f>>2]|0;m=m+4|0;l=l+4|0;if((j|0)!=(l|0)){continue}break}}if(g){while(1){f=d+(m<<3)|0;H[f+4>>2]=a;m=m+1|0;a=H[f>>2]+a|0;n=n+1|0;if((g|0)!=(n|0)){continue}break}}if((a|0)!=4096){break K}a=0;q=0;V:{if((c|0)<0){break V}f=H[h>>2];if(c){c=i&-2;d=0;while(1){g=a<<3;j=H[g+f>>2];if(j){g=g+p|0;q=(+K[g>>2]+ +K[g+4>>2]*4294967296)*za(+(j>>>0)*.000244140625)+q}g=(a|1)<<3;j=H[g+f>>2];if(j){g=g+p|0;q=(+K[g>>2]+ +K[g+4>>2]*4294967296)*za(+(j>>>0)*.000244140625)+q}a=a+2|0;d=d+2|0;if((c|0)!=(d|0)){continue}break}}if(!(i&1)){break V}a=a<<3;c=H[a+f>>2];if(!c){break V}a=a+p|0;q=(+K[a>>2]+ +K[a+4>>2]*4294967296)*za(+(c>>>0)*.000244140625)+q}q=U(-q);W:{if(q<0x10000000000000000&q>=0){c=P(q)>=1?~~(q>0?R(T(q*2.3283064365386963e-10),4294967295):U((q-+(~~q>>>0>>>0))*2.3283064365386963e-10))>>>0:0;a=~~q>>>0;break W}c=0;a=0}H[h+16>>2]=a;H[h+20>>2]=c;Xa(h,e)}da=r+32|0;d=H[h+16>>2];a=H[h+20>>2];c=H[e+4>>2]-H[e>>2]|0;H[h+40>>2]=c;H[h+44>>2]=0;f=a<<1|d>>>31;a=(d<<1)+39|0;f=a>>>0<39?f+1|0:f;a=c+((f&7)<<29|a>>>3)|0;g=f>>>3|0;g=a>>>0>>0?g+1|0:g;a=a+8|0;Ma(e,a);a=H[e>>2];H[h+28>>2]=0;H[h+32>>2]=16384;H[h+24>>2]=a+H[h+40>>2];if((b|0)>0){a=16384;while(1){c=b-1|0;i=H[h>>2]+(H[t+(c<<2)>>2]<<3)|0;d=H[i>>2];f=d<<10;if(f>>>0<=a>>>0){while(1){g=H[h+28>>2];H[h+28>>2]=g+1;F[g+H[h+24>>2]|0]=a;a=H[h+32>>2]>>>8|0;H[h+32>>2]=a;if(a>>>0>=f>>>0){continue}break}}g=H[i+4>>2];i=(a>>>0)/(d>>>0)|0;a=g+((i<<12)+(a-N(d,i)|0)|0)|0;H[h+32>>2]=a;d=(b|0)>1;b=c;if(d){continue}break}}zb(h,e);a=H[h>>2];if(a){H[h+4>>2]=a;qa(a)}a=H[h+48>>2];if(a){qa(a)}da=h- -64|0;break F}p=1;break v;case 1:t=a;l=0;n=0;d=0;s=0;u=0;i=0;h=da+-64|0;da=h;H[h+56>>2]=0;H[h+48>>2]=0;H[h+52>>2]=0;X:{a=m+1|0;if(a){if(a>>>0>=536870912){break a}a=a<<3;p=ra(a);H[h+48>>2]=p;l=a+p|0;H[h+56>>2]=l;ta(p,0,(m<<3)+8|0);H[h+52>>2]=l}Y:{if((b|0)<=0){break Y}a=0;if(b-1>>>0>=3){k=b&-4;while(1){c=a<<2;g=(H[c+t>>2]<<3)+p|0;f=H[g+4>>2];j=H[g>>2]+1|0;f=j?f:f+1|0;H[g>>2]=j;H[g+4>>2]=f;g=(H[t+(c|4)>>2]<<3)+p|0;f=H[g+4>>2];j=H[g>>2]+1|0;f=j?f:f+1|0;H[g>>2]=j;H[g+4>>2]=f;f=(H[t+(c|8)>>2]<<3)+p|0;j=H[f+4>>2];g=H[f>>2]+1|0;j=g?j:j+1|0;H[f>>2]=g;H[f+4>>2]=j;c=(H[t+(c|12)>>2]<<3)+p|0;f=H[c+4>>2];g=H[c>>2]+1|0;f=g?f:f+1|0;H[c>>2]=g;H[c+4>>2]=f;a=a+4|0;n=n+4|0;if((k|0)!=(n|0)){continue}break}}g=b&3;if(!g){break Y}while(1){c=(H[t+(a<<2)>>2]<<3)+p|0;f=H[c+4>>2];j=H[c>>2]+1|0;f=j?f:f+1|0;H[c>>2]=j;H[c+4>>2]=f;a=a+1|0;d=d+1|0;if((g|0)!=(d|0)){continue}break}}H[h+8>>2]=0;H[h+12>>2]=0;H[h+16>>2]=0;H[h+20>>2]=0;H[h+24>>2]=0;H[h+28>>2]=0;H[h+32>>2]=0;H[h>>2]=0;H[h+4>>2]=0;H[h+40>>2]=0;H[h+44>>2]=0;m=0;d=0;c=0;r=da-32|0;da=r;a=l-p>>3;Z:{if((a|0)<=0){break Z}l=a&3;_:{if(a-1>>>0<3){a=0;break _}D=a&-4;a=0;while(1){o=a|1;g=(o<<3)+p|0;f=H[g+4>>2];n=H[g>>2];B=a|2;j=(B<<3)+p|0;g=H[j+4>>2];y=H[j>>2];x=a|3;k=(x<<3)+p|0;j=H[k+4>>2];A=H[k>>2];w=c;c=(a<<3)+p|0;C=H[c+4>>2];k=H[c>>2];c=j|A?x:g|y?B:f|n?o:!(C|k)?w:a;o=j;w=n;j=i+C|0;n=k+u|0;j=n>>>0>>0?j+1|0:j;k=n;i=w+k|0;f=f+j|0;f=i>>>0>>0?f+1|0:f;j=i;i=i+y|0;g=f+g|0;g=i>>>0>>0?g+1|0:g;f=i;i=f+A|0;o=g+o|0;u=i;i=f>>>0>i>>>0?o+1|0:o;a=a+4|0;d=d+4|0;if((D|0)!=(d|0)){continue}break}}if(!l){break Z}while(1){g=c;c=(a<<3)+p|0;f=H[c+4>>2];d=H[c>>2];c=!(f|d)?g:a;a=a+1|0;f=f+i|0;g=d+u|0;f=g>>>0>>0?f+1|0:f;u=g;i=f;m=m+1|0;if((l|0)!=(m|0)){continue}break}}f=c+1|0;H[h+12>>2]=f;d=H[h>>2];a=H[h+4>>2]-d>>3;$:{if(a>>>0>>0){Ya(h,f-a|0);break $}if(a>>>0<=f>>>0){break $}H[h+4>>2]=d+(f<<3)}n=0;aa:{ba:{ca:{da:{if((c|0)>=0){v=+(u>>>0)+ +(i>>>0)*4294967296;i=H[h>>2];a=0;while(1){g=a<<3;j=g+p|0;d=H[j+4>>2];j=H[j>>2];k=(d|j)!=0;g=g+i|0;q=(+(j>>>0)+ +(d>>>0)*4294967296)/v*4096+.5;ea:{if(q<4294967296&q>=0){d=~~q>>>0;break ea}d=0}d=d?d:k?1:d;H[g>>2]=d;n=d+n|0;d=(a|0)==(c|0);a=a+1|0;if(!d){continue}break}if((n|0)==4096){break da}}H[r+16>>2]=0;H[r+8>>2]=0;H[r+12>>2]=0;l=0;if(f){if(f>>>0>=1073741824){break a}a=f<<2;l=ra(a);H[r+8>>2]=l;s=a+l|0;H[r+16>>2]=s;ta(l,0,a);H[r+12>>2]=s}a=0;fa:{if((c|0)<0){break fa}i=c+1|0;d=i&7;if(c>>>0>=7){i=i&-8;m=0;while(1){H[(a<<2)+l>>2]=a;f=a|1;H[(f<<2)+l>>2]=f;f=a|2;H[(f<<2)+l>>2]=f;f=a|3;H[(f<<2)+l>>2]=f;f=a|4;H[(f<<2)+l>>2]=f;f=a|5;H[(f<<2)+l>>2]=f;f=a|6;H[(f<<2)+l>>2]=f;f=a|7;H[(f<<2)+l>>2]=f;a=a+8|0;m=m+8|0;if((i|0)!=(m|0)){continue}break}}if(!d){break fa}m=0;while(1){H[(a<<2)+l>>2]=a;a=a+1|0;m=m+1|0;if((d|0)!=(m|0)){continue}break}}H[r+24>>2]=h;a=s-l|0;d=a>>2;ga:{ha:{if((a|0)>=513){a=d;while(1){i=ra(a<<2);if(i){break ha}i=a>>>0>1;a=a>>>1|0;if(i){continue}break}}hc(l,s,r+24|0,d,0,0);break ga}hc(l,s,r+24|0,d,i,a);qa(i)}if((n|0)<4096){a=H[h>>2]+(H[s-4>>2]<<3)|0;H[a>>2]=(H[a>>2]-n|0)+4096;a=0;break ca}if((c|0)>0){g=H[h>>2];m=n-4096|0;while(1){q=4096/+(n|0);d=c;while(1){ia:{ja:{i=g+(H[(d<<2)+l>>2]<<3)|0;a=H[i>>2];if(a>>>0>=2){k=i;o=a;v=T(q*+(a>>>0));ka:{if(P(v)<2147483648){f=~~v;break ka}f=-2147483648}i=(a|0)==(f|0)?1:a-f|0;a=(a|0)>(i|0)?i:a-1|0;a=(a|0)<(m|0)?a:m;H[k>>2]=o-a;m=m-a|0;n=n-a|0;if((n|0)!=4096){break ja}n=4096;break ia}if((c|0)!=(d|0)){break ia}a=1;break ca}a=(d|0)>1;d=d-1|0;if(a){continue}}break}a=0;if((m|0)>0){continue}break}break ca}a=0;if(n>>>0<4097){break ca}while(1)continue}if((c|0)<0){break aa}break ba}d=H[r+8>>2];if(d){qa(d)}if((c|0)<0|a){break aa}}i=c+1|0;g=i&3;d=H[h>>2];n=0;m=0;a=0;if(c>>>0>=3){j=i&-4;l=0;while(1){f=m<<3;k=f+d|0;H[k+4>>2]=a;o=d+(f|8)|0;a=H[k>>2]+a|0;H[o+4>>2]=a;k=d+(f|16)|0;a=a+H[o>>2]|0;H[k+4>>2]=a;f=d+(f|24)|0;a=a+H[k>>2]|0;H[f+4>>2]=a;a=a+H[f>>2]|0;m=m+4|0;l=l+4|0;if((j|0)!=(l|0)){continue}break}}if(g){while(1){f=d+(m<<3)|0;H[f+4>>2]=a;m=m+1|0;a=H[f>>2]+a|0;n=n+1|0;if((g|0)!=(n|0)){continue}break}}if((a|0)!=4096){break aa}a=0;q=0;la:{if((c|0)<0){break la}f=H[h>>2];if(c){c=i&-2;d=0;while(1){g=a<<3;j=H[g+f>>2];if(j){g=g+p|0;q=(+K[g>>2]+ +K[g+4>>2]*4294967296)*za(+(j>>>0)*.000244140625)+q}g=(a|1)<<3;j=H[g+f>>2];if(j){g=g+p|0;q=(+K[g>>2]+ +K[g+4>>2]*4294967296)*za(+(j>>>0)*.000244140625)+q}a=a+2|0;d=d+2|0;if((c|0)!=(d|0)){continue}break}}if(!(i&1)){break la}a=a<<3;c=H[a+f>>2];if(!c){break la}a=a+p|0;q=(+K[a>>2]+ +K[a+4>>2]*4294967296)*za(+(c>>>0)*.000244140625)+q}q=U(-q);ma:{if(q<0x10000000000000000&q>=0){c=P(q)>=1?~~(q>0?R(T(q*2.3283064365386963e-10),4294967295):U((q-+(~~q>>>0>>>0))*2.3283064365386963e-10))>>>0:0;a=~~q>>>0;break ma}c=0;a=0}H[h+16>>2]=a;H[h+20>>2]=c;Xa(h,e)}da=r+32|0;d=H[h+16>>2];a=H[h+20>>2];c=H[e+4>>2]-H[e>>2]|0;H[h+40>>2]=c;H[h+44>>2]=0;g=a<<1|d>>>31;a=(d<<1)+39|0;j=a>>>0<39?g+1|0:g;a=c+((j&7)<<29|a>>>3)|0;o=j>>>3|0;o=a>>>0>>0?o+1|0:o;a=a+8|0;Ma(e,a);a=H[e>>2];H[h+28>>2]=0;H[h+32>>2]=16384;H[h+24>>2]=a+H[h+40>>2];if((b|0)>0){a=16384;while(1){c=b-1|0;i=H[h>>2]+(H[t+(c<<2)>>2]<<3)|0;d=H[i>>2];f=d<<10;if(f>>>0<=a>>>0){while(1){g=H[h+28>>2];H[h+28>>2]=g+1;F[g+H[h+24>>2]|0]=a;a=H[h+32>>2]>>>8|0;H[h+32>>2]=a;if(a>>>0>=f>>>0){continue}break}}g=H[i+4>>2];i=(a>>>0)/(d>>>0)|0;a=g+((i<<12)+(a-N(d,i)|0)|0)|0;H[h+32>>2]=a;d=(b|0)>1;b=c;if(d){continue}break}}zb(h,e);a=H[h>>2];if(a){H[h+4>>2]=a;qa(a)}a=H[h+48>>2];if(a){qa(a)}da=h- -64|0;break X}p=1;break v;case 2:t=a;l=0;n=0;d=0;s=0;u=0;i=0;h=da+-64|0;da=h;H[h+56>>2]=0;H[h+48>>2]=0;H[h+52>>2]=0;na:{a=m+1|0;if(a){if(a>>>0>=536870912){break a}a=a<<3;p=ra(a);H[h+48>>2]=p;l=a+p|0;H[h+56>>2]=l;ta(p,0,(m<<3)+8|0);H[h+52>>2]=l}oa:{if((b|0)<=0){break oa}a=0;if(b-1>>>0>=3){o=b&-4;while(1){c=a<<2;f=(H[c+t>>2]<<3)+p|0;g=H[f+4>>2];j=H[f>>2]+1|0;g=j?g:g+1|0;H[f>>2]=j;H[f+4>>2]=g;f=(H[t+(c|4)>>2]<<3)+p|0;j=H[f+4>>2];g=H[f>>2]+1|0;j=g?j:j+1|0;H[f>>2]=g;H[f+4>>2]=j;f=(H[t+(c|8)>>2]<<3)+p|0;k=H[f+4>>2];g=H[f>>2]+1|0;k=g?k:k+1|0;H[f>>2]=g;H[f+4>>2]=k;c=(H[t+(c|12)>>2]<<3)+p|0;g=H[c+4>>2];f=H[c>>2]+1|0;g=f?g:g+1|0;H[c>>2]=f;H[c+4>>2]=g;a=a+4|0;n=n+4|0;if((o|0)!=(n|0)){continue}break}}f=b&3;if(!f){break oa}while(1){c=(H[t+(a<<2)>>2]<<3)+p|0;j=H[c+4>>2];g=H[c>>2]+1|0;j=g?j:j+1|0;H[c>>2]=g;H[c+4>>2]=j;a=a+1|0;d=d+1|0;if((f|0)!=(d|0)){continue}break}}H[h+8>>2]=0;H[h+12>>2]=0;H[h+16>>2]=0;H[h+20>>2]=0;H[h+24>>2]=0;H[h+28>>2]=0;H[h+32>>2]=0;H[h>>2]=0;H[h+4>>2]=0;H[h+40>>2]=0;H[h+44>>2]=0;m=0;d=0;c=0;r=da-32|0;da=r;a=l-p>>3;pa:{if((a|0)<=0){break pa}l=a&3;qa:{if(a-1>>>0<3){a=0;break qa}D=a&-4;a=0;while(1){o=a|1;g=(o<<3)+p|0;f=H[g+4>>2];n=H[g>>2];B=a|2;j=(B<<3)+p|0;g=H[j+4>>2];y=H[j>>2];x=a|3;k=(x<<3)+p|0;j=H[k+4>>2];A=H[k>>2];w=c;c=(a<<3)+p|0;C=H[c+4>>2];k=H[c>>2];c=j|A?x:g|y?B:f|n?o:!(C|k)?w:a;o=g;w=n;g=k;n=g+u|0;k=i+C|0;k=g>>>0>n>>>0?k+1|0:k;i=w+n|0;g=f+k|0;g=i>>>0>>0?g+1|0:g;f=i;i=f+y|0;o=g+o|0;o=f>>>0>i>>>0?o+1|0:o;g=i;i=g+A|0;f=j+o|0;u=i;i=g>>>0>i>>>0?f+1|0:f;a=a+4|0;d=d+4|0;if((D|0)!=(d|0)){continue}break}}if(!l){break pa}while(1){g=c;c=(a<<3)+p|0;f=H[c+4>>2];d=H[c>>2];c=!(f|d)?g:a;a=a+1|0;j=f+i|0;g=d+u|0;j=g>>>0>>0?j+1|0:j;u=g;i=j;m=m+1|0;if((l|0)!=(m|0)){continue}break}}f=c+1|0;H[h+12>>2]=f;d=H[h>>2];a=H[h+4>>2]-d>>3;ra:{if(a>>>0>>0){Ya(h,f-a|0);break ra}if(a>>>0<=f>>>0){break ra}H[h+4>>2]=d+(f<<3)}n=0;sa:{ta:{ua:{va:{if((c|0)>=0){v=+(u>>>0)+ +(i>>>0)*4294967296;i=H[h>>2];a=0;while(1){g=a<<3;j=g+p|0;d=H[j+4>>2];j=H[j>>2];k=(d|j)!=0;g=g+i|0;q=(+(j>>>0)+ +(d>>>0)*4294967296)/v*4096+.5;wa:{if(q<4294967296&q>=0){d=~~q>>>0;break wa}d=0}d=d?d:k?1:d;H[g>>2]=d;n=d+n|0;d=(a|0)==(c|0);a=a+1|0;if(!d){continue}break}if((n|0)==4096){break va}}H[r+16>>2]=0;H[r+8>>2]=0;H[r+12>>2]=0;l=0;if(f){if(f>>>0>=1073741824){break a}a=f<<2;l=ra(a);H[r+8>>2]=l;s=a+l|0;H[r+16>>2]=s;ta(l,0,a);H[r+12>>2]=s}a=0;xa:{if((c|0)<0){break xa}i=c+1|0;d=i&7;if(c>>>0>=7){i=i&-8;m=0;while(1){H[(a<<2)+l>>2]=a;f=a|1;H[(f<<2)+l>>2]=f;f=a|2;H[(f<<2)+l>>2]=f;f=a|3;H[(f<<2)+l>>2]=f;f=a|4;H[(f<<2)+l>>2]=f;f=a|5;H[(f<<2)+l>>2]=f;f=a|6;H[(f<<2)+l>>2]=f;f=a|7;H[(f<<2)+l>>2]=f;a=a+8|0;m=m+8|0;if((i|0)!=(m|0)){continue}break}}if(!d){break xa}m=0;while(1){H[(a<<2)+l>>2]=a;a=a+1|0;m=m+1|0;if((d|0)!=(m|0)){continue}break}}H[r+24>>2]=h;a=s-l|0;d=a>>2;ya:{za:{if((a|0)>=513){a=d;while(1){i=ra(a<<2);if(i){break za}i=a>>>0>1;a=a>>>1|0;if(i){continue}break}}gc(l,s,r+24|0,d,0,0);break ya}gc(l,s,r+24|0,d,i,a);qa(i)}if((n|0)<4096){a=H[h>>2]+(H[s-4>>2]<<3)|0;H[a>>2]=(H[a>>2]-n|0)+4096;a=0;break ua}if((c|0)>0){g=H[h>>2];m=n-4096|0;while(1){q=4096/+(n|0);d=c;while(1){Aa:{Ba:{i=g+(H[(d<<2)+l>>2]<<3)|0;a=H[i>>2];if(a>>>0>=2){k=i;o=a;v=T(q*+(a>>>0));Ca:{if(P(v)<2147483648){f=~~v;break Ca}f=-2147483648}i=(a|0)==(f|0)?1:a-f|0;a=(a|0)>(i|0)?i:a-1|0;a=(a|0)<(m|0)?a:m;H[k>>2]=o-a;m=m-a|0;n=n-a|0;if((n|0)!=4096){break Ba}n=4096;break Aa}if((c|0)!=(d|0)){break Aa}a=1;break ua}a=(d|0)>1;d=d-1|0;if(a){continue}}break}a=0;if((m|0)>0){continue}break}break ua}a=0;if(n>>>0<4097){break ua}while(1)continue}if((c|0)<0){break sa}break ta}d=H[r+8>>2];if(d){qa(d)}if((c|0)<0|a){break sa}}i=c+1|0;g=i&3;d=H[h>>2];n=0;m=0;a=0;if(c>>>0>=3){j=i&-4;l=0;while(1){f=m<<3;k=f+d|0;H[k+4>>2]=a;o=d+(f|8)|0;a=H[k>>2]+a|0;H[o+4>>2]=a;k=d+(f|16)|0;a=a+H[o>>2]|0;H[k+4>>2]=a;f=d+(f|24)|0;a=a+H[k>>2]|0;H[f+4>>2]=a;a=a+H[f>>2]|0;m=m+4|0;l=l+4|0;if((j|0)!=(l|0)){continue}break}}if(g){while(1){f=d+(m<<3)|0;H[f+4>>2]=a;m=m+1|0;a=H[f>>2]+a|0;n=n+1|0;if((g|0)!=(n|0)){continue}break}}if((a|0)!=4096){break sa}a=0;q=0;Da:{if((c|0)<0){break Da}f=H[h>>2];if(c){c=i&-2;d=0;while(1){g=a<<3;j=H[g+f>>2];if(j){g=g+p|0;q=(+K[g>>2]+ +K[g+4>>2]*4294967296)*za(+(j>>>0)*.000244140625)+q}g=(a|1)<<3;j=H[g+f>>2];if(j){g=g+p|0;q=(+K[g>>2]+ +K[g+4>>2]*4294967296)*za(+(j>>>0)*.000244140625)+q}a=a+2|0;d=d+2|0;if((c|0)!=(d|0)){continue}break}}if(!(i&1)){break Da}a=a<<3;c=H[a+f>>2];if(!c){break Da}a=a+p|0;q=(+K[a>>2]+ +K[a+4>>2]*4294967296)*za(+(c>>>0)*.000244140625)+q}q=U(-q);Ea:{if(q<0x10000000000000000&q>=0){c=P(q)>=1?~~(q>0?R(T(q*2.3283064365386963e-10),4294967295):U((q-+(~~q>>>0>>>0))*2.3283064365386963e-10))>>>0:0;a=~~q>>>0;break Ea}c=0;a=0}H[h+16>>2]=a;H[h+20>>2]=c;Xa(h,e)}da=r+32|0;d=H[h+16>>2];a=H[h+20>>2];c=H[e+4>>2]-H[e>>2]|0;H[h+40>>2]=c;H[h+44>>2]=0;o=a<<1|d>>>31;a=(d<<1)+39|0;k=o;k=a>>>0<39?k+1|0:k;a=c+((k&7)<<29|a>>>3)|0;f=k>>>3|0;f=a>>>0>>0?f+1|0:f;a=a+8|0;Ma(e,a);a=H[e>>2];H[h+28>>2]=0;H[h+32>>2]=16384;H[h+24>>2]=a+H[h+40>>2];if((b|0)>0){a=16384;while(1){c=b-1|0;i=H[h>>2]+(H[t+(c<<2)>>2]<<3)|0;d=H[i>>2];f=d<<10;if(f>>>0<=a>>>0){while(1){g=H[h+28>>2];H[h+28>>2]=g+1;F[g+H[h+24>>2]|0]=a;a=H[h+32>>2]>>>8|0;H[h+32>>2]=a;if(a>>>0>=f>>>0){continue}break}}g=H[i+4>>2];i=(a>>>0)/(d>>>0)|0;a=g+((i<<12)+(a-N(d,i)|0)|0)|0;H[h+32>>2]=a;d=(b|0)>1;b=c;if(d){continue}break}}zb(h,e);a=H[h>>2];if(a){H[h+4>>2]=a;qa(a)}a=H[h+48>>2];if(a){qa(a)}da=h- -64|0;break na}p=1;break v;case 3:t=a;l=0;n=0;d=0;s=0;u=0;i=0;h=da+-64|0;da=h;H[h+56>>2]=0;H[h+48>>2]=0;H[h+52>>2]=0;Fa:{a=m+1|0;if(a){if(a>>>0>=536870912){break a}a=a<<3;p=ra(a);H[h+48>>2]=p;l=a+p|0;H[h+56>>2]=l;ta(p,0,(m<<3)+8|0);H[h+52>>2]=l}Ga:{if((b|0)<=0){break Ga}a=0;if(b-1>>>0>=3){j=b&-4;while(1){c=a<<2;f=(H[c+t>>2]<<3)+p|0;o=H[f+4>>2];g=H[f>>2]+1|0;o=g?o:o+1|0;H[f>>2]=g;H[f+4>>2]=o;f=(H[t+(c|4)>>2]<<3)+p|0;k=H[f+4>>2];g=H[f>>2]+1|0;k=g?k:k+1|0;H[f>>2]=g;H[f+4>>2]=k;g=(H[t+(c|8)>>2]<<3)+p|0;f=H[g+4>>2];k=H[g>>2]+1|0;f=k?f:f+1|0;H[g>>2]=k;H[g+4>>2]=f;c=(H[t+(c|12)>>2]<<3)+p|0;o=H[c+4>>2];f=H[c>>2]+1|0;o=f?o:o+1|0;H[c>>2]=f;H[c+4>>2]=o;a=a+4|0;n=n+4|0;if((j|0)!=(n|0)){continue}break}}f=b&3;if(!f){break Ga}while(1){c=(H[t+(a<<2)>>2]<<3)+p|0;k=H[c+4>>2];g=H[c>>2]+1|0;k=g?k:k+1|0;H[c>>2]=g;H[c+4>>2]=k;a=a+1|0;d=d+1|0;if((f|0)!=(d|0)){continue}break}}H[h+8>>2]=0;H[h+12>>2]=0;H[h+16>>2]=0;H[h+20>>2]=0;H[h+24>>2]=0;H[h+28>>2]=0;H[h+32>>2]=0;H[h>>2]=0;H[h+4>>2]=0;H[h+40>>2]=0;H[h+44>>2]=0;m=0;d=0;c=0;r=da-32|0;da=r;a=l-p>>3;Ha:{if((a|0)<=0){break Ha}l=a&3;Ia:{if(a-1>>>0<3){a=0;break Ia}D=a&-4;a=0;while(1){o=a|1;g=(o<<3)+p|0;f=H[g+4>>2];n=H[g>>2];B=a|2;j=(B<<3)+p|0;g=H[j+4>>2];y=H[j>>2];x=a|3;k=(x<<3)+p|0;j=H[k+4>>2];A=H[k>>2];w=c;c=(a<<3)+p|0;C=H[c+4>>2];k=H[c>>2];c=j|A?x:g|y?B:f|n?o:!(C|k)?w:a;o=f;w=n;f=i+C|0;n=k+u|0;f=n>>>0>>0?f+1|0:f;k=n;i=w+k|0;o=f+o|0;o=i>>>0>>0?o+1|0:o;k=i;i=i+y|0;f=g+o|0;f=i>>>0>>0?f+1|0:f;k=i;i=i+A|0;g=f+j|0;u=i;i=i>>>0>>0?g+1|0:g;a=a+4|0;d=d+4|0;if((D|0)!=(d|0)){continue}break}}if(!l){break Ha}while(1){g=c;c=(a<<3)+p|0;f=H[c+4>>2];d=H[c>>2];c=!(f|d)?g:a;a=a+1|0;k=f+i|0;g=d+u|0;k=g>>>0>>0?k+1|0:k;u=g;i=k;m=m+1|0;if((l|0)!=(m|0)){continue}break}}f=c+1|0;H[h+12>>2]=f;d=H[h>>2];a=H[h+4>>2]-d>>3;Ja:{if(a>>>0>>0){Ya(h,f-a|0);break Ja}if(a>>>0<=f>>>0){break Ja}H[h+4>>2]=d+(f<<3)}n=0;Ka:{La:{Ma:{Na:{if((c|0)>=0){v=+(u>>>0)+ +(i>>>0)*4294967296;i=H[h>>2];a=0;while(1){g=a<<3;j=g+p|0;d=H[j+4>>2];j=H[j>>2];k=(d|j)!=0;g=g+i|0;q=(+(j>>>0)+ +(d>>>0)*4294967296)/v*4096+.5;Oa:{if(q<4294967296&q>=0){d=~~q>>>0;break Oa}d=0}d=d?d:k?1:d;H[g>>2]=d;n=d+n|0;d=(a|0)==(c|0);a=a+1|0;if(!d){continue}break}if((n|0)==4096){break Na}}H[r+16>>2]=0;H[r+8>>2]=0;H[r+12>>2]=0;l=0;if(f){if(f>>>0>=1073741824){break a}a=f<<2;l=ra(a);H[r+8>>2]=l;s=a+l|0;H[r+16>>2]=s;ta(l,0,a);H[r+12>>2]=s}a=0;Pa:{if((c|0)<0){break Pa}i=c+1|0;d=i&7;if(c>>>0>=7){i=i&-8;m=0;while(1){H[(a<<2)+l>>2]=a;f=a|1;H[(f<<2)+l>>2]=f;f=a|2;H[(f<<2)+l>>2]=f;f=a|3;H[(f<<2)+l>>2]=f;f=a|4;H[(f<<2)+l>>2]=f;f=a|5;H[(f<<2)+l>>2]=f;f=a|6;H[(f<<2)+l>>2]=f;f=a|7;H[(f<<2)+l>>2]=f;a=a+8|0;m=m+8|0;if((i|0)!=(m|0)){continue}break}}if(!d){break Pa}m=0;while(1){H[(a<<2)+l>>2]=a;a=a+1|0;m=m+1|0;if((d|0)!=(m|0)){continue}break}}H[r+24>>2]=h;a=s-l|0;d=a>>2;Qa:{Ra:{if((a|0)>=513){a=d;while(1){i=ra(a<<2);if(i){break Ra}i=a>>>0>1;a=a>>>1|0;if(i){continue}break}}fc(l,s,r+24|0,d,0,0);break Qa}fc(l,s,r+24|0,d,i,a);qa(i)}if((n|0)<4096){a=H[h>>2]+(H[s-4>>2]<<3)|0;H[a>>2]=(H[a>>2]-n|0)+4096;a=0;break Ma}if((c|0)>0){g=H[h>>2];m=n-4096|0;while(1){q=4096/+(n|0);d=c;while(1){Sa:{Ta:{i=g+(H[(d<<2)+l>>2]<<3)|0;a=H[i>>2];if(a>>>0>=2){k=i;o=a;v=T(q*+(a>>>0));Ua:{if(P(v)<2147483648){f=~~v;break Ua}f=-2147483648}i=(a|0)==(f|0)?1:a-f|0;a=(a|0)>(i|0)?i:a-1|0;a=(a|0)<(m|0)?a:m;H[k>>2]=o-a;m=m-a|0;n=n-a|0;if((n|0)!=4096){break Ta}n=4096;break Sa}if((c|0)!=(d|0)){break Sa}a=1;break Ma}a=(d|0)>1;d=d-1|0;if(a){continue}}break}a=0;if((m|0)>0){continue}break}break Ma}a=0;if(n>>>0<4097){break Ma}while(1)continue}if((c|0)<0){break Ka}break La}d=H[r+8>>2];if(d){qa(d)}if((c|0)<0|a){break Ka}}i=c+1|0;g=i&3;d=H[h>>2];n=0;m=0;a=0;if(c>>>0>=3){j=i&-4;l=0;while(1){f=m<<3;k=f+d|0;H[k+4>>2]=a;o=d+(f|8)|0;a=H[k>>2]+a|0;H[o+4>>2]=a;k=d+(f|16)|0;a=a+H[o>>2]|0;H[k+4>>2]=a;f=d+(f|24)|0;a=a+H[k>>2]|0;H[f+4>>2]=a;a=a+H[f>>2]|0;m=m+4|0;l=l+4|0;if((j|0)!=(l|0)){continue}break}}if(g){while(1){f=d+(m<<3)|0;H[f+4>>2]=a;m=m+1|0;a=H[f>>2]+a|0;n=n+1|0;if((g|0)!=(n|0)){continue}break}}if((a|0)!=4096){break Ka}a=0;q=0;Va:{if((c|0)<0){break Va}f=H[h>>2];if(c){c=i&-2;d=0;while(1){g=a<<3;j=H[g+f>>2];if(j){g=g+p|0;q=(+K[g>>2]+ +K[g+4>>2]*4294967296)*za(+(j>>>0)*.000244140625)+q}g=(a|1)<<3;j=H[g+f>>2];if(j){g=g+p|0;q=(+K[g>>2]+ +K[g+4>>2]*4294967296)*za(+(j>>>0)*.000244140625)+q}a=a+2|0;d=d+2|0;if((c|0)!=(d|0)){continue}break}}if(!(i&1)){break Va}a=a<<3;c=H[a+f>>2];if(!c){break Va}a=a+p|0;q=(+K[a>>2]+ +K[a+4>>2]*4294967296)*za(+(c>>>0)*.000244140625)+q}q=U(-q);Wa:{if(q<0x10000000000000000&q>=0){c=P(q)>=1?~~(q>0?R(T(q*2.3283064365386963e-10),4294967295):U((q-+(~~q>>>0>>>0))*2.3283064365386963e-10))>>>0:0;a=~~q>>>0;break Wa}c=0;a=0}H[h+16>>2]=a;H[h+20>>2]=c;Xa(h,e)}da=r+32|0;d=H[h+16>>2];a=H[h+20>>2];c=H[e+4>>2]-H[e>>2]|0;H[h+40>>2]=c;H[h+44>>2]=0;f=a<<1|d>>>31;a=(d<<1)+39|0;f=a>>>0<39?f+1|0:f;a=c+((f&7)<<29|a>>>3)|0;g=f>>>3|0;g=a>>>0>>0?g+1|0:g;a=a+8|0;Ma(e,a);a=H[e>>2];H[h+28>>2]=0;H[h+32>>2]=16384;H[h+24>>2]=a+H[h+40>>2];if((b|0)>0){a=16384;while(1){c=b-1|0;i=H[h>>2]+(H[t+(c<<2)>>2]<<3)|0;d=H[i>>2];f=d<<10;if(f>>>0<=a>>>0){while(1){g=H[h+28>>2];H[h+28>>2]=g+1;F[g+H[h+24>>2]|0]=a;a=H[h+32>>2]>>>8|0;H[h+32>>2]=a;if(a>>>0>=f>>>0){continue}break}}g=H[i+4>>2];i=(a>>>0)/(d>>>0)|0;a=g+((i<<12)+(a-N(d,i)|0)|0)|0;H[h+32>>2]=a;d=(b|0)>1;b=c;if(d){continue}break}}zb(h,e);a=H[h>>2];if(a){H[h+4>>2]=a;qa(a)}a=H[h+48>>2];if(a){qa(a)}da=h- -64|0;break Fa}p=1;break v;case 4:c=0;g=0;l=0;i=da+-64|0;da=i;H[i+56>>2]=0;H[i+48>>2]=0;H[i+52>>2]=0;Xa:{d=m+1|0;if(d){if(d>>>0>=536870912){break a}d=d<<3;c=ra(d);H[i+48>>2]=c;g=c+d|0;H[i+56>>2]=g;ta(c,0,(m<<3)+8|0);H[i+52>>2]=g}Ya:{if((b|0)<=0){break Ya}m=0;if(b-1>>>0>=3){k=b&-4;while(1){d=m<<2;j=(H[d+a>>2]<<3)+c|0;f=H[j+4>>2];o=H[j>>2]+1|0;f=o?f:f+1|0;H[j>>2]=o;H[j+4>>2]=f;j=(H[(d|4)+a>>2]<<3)+c|0;f=H[j+4>>2];o=H[j>>2]+1|0;f=o?f:f+1|0;H[j>>2]=o;H[j+4>>2]=f;f=(H[(d|8)+a>>2]<<3)+c|0;j=H[f+4>>2];o=H[f>>2]+1|0;j=o?j:j+1|0;H[f>>2]=o;H[f+4>>2]=j;d=(H[(d|12)+a>>2]<<3)+c|0;f=H[d+4>>2];j=H[d>>2]+1|0;f=j?f:f+1|0;H[d>>2]=j;H[d+4>>2]=f;m=m+4|0;l=l+4|0;if((k|0)!=(l|0)){continue}break}}j=b&3;if(!j){break Ya}while(1){d=(H[(m<<2)+a>>2]<<3)+c|0;f=H[d+4>>2];k=H[d>>2]+1|0;f=k?f:f+1|0;H[d>>2]=k;H[d+4>>2]=f;m=m+1|0;p=p+1|0;if((j|0)!=(p|0)){continue}break}}H[i+8>>2]=0;H[i+12>>2]=0;H[i+16>>2]=0;H[i+20>>2]=0;H[i+24>>2]=0;H[i+28>>2]=0;H[i+32>>2]=0;H[i>>2]=0;H[i+4>>2]=0;H[i+40>>2]=0;H[i+44>>2]=0;Bg(i,c,g-c>>3,e);f=H[i+16>>2];c=H[i+20>>2];d=H[e+4>>2]-H[e>>2]|0;H[i+40>>2]=d;H[i+44>>2]=0;g=f;f=c<<1|f>>>31;c=(g<<1)+39|0;j=c>>>0<39?f+1|0:f;c=d+((j&7)<<29|c>>>3)|0;f=j>>>3|0;f=c>>>0>>0?f+1|0:f;c=c+8|0;Ma(e,c);c=H[e>>2];H[i+28>>2]=0;H[i+32>>2]=16384;H[i+24>>2]=c+H[i+40>>2];if((b|0)>0){m=16384;while(1){c=b-1|0;f=H[i>>2]+(H[(c<<2)+a>>2]<<3)|0;d=H[f>>2];g=d<<10;if(g>>>0<=m>>>0){while(1){j=H[i+28>>2];H[i+28>>2]=j+1;F[j+H[i+24>>2]|0]=m;m=H[i+32>>2]>>>8|0;H[i+32>>2]=m;if(g>>>0<=m>>>0){continue}break}}g=H[f+4>>2];f=(m>>>0)/(d>>>0)|0;m=g+((f<<12)+(m-N(d,f)|0)|0)|0;H[i+32>>2]=m;d=(b|0)>1;b=c;if(d){continue}break}}zb(i,e);a=H[i>>2];if(a){H[i+4>>2]=a;qa(a)}a=H[i+48>>2];if(a){qa(a)}da=i- -64|0;break Xa}p=1;break v;case 5:t=a;l=0;n=0;d=0;s=0;u=0;i=0;h=da+-64|0;da=h;H[h+56>>2]=0;H[h+48>>2]=0;H[h+52>>2]=0;Za:{a=m+1|0;if(a){if(a>>>0>=536870912){break a}a=a<<3;p=ra(a);H[h+48>>2]=p;l=a+p|0;H[h+56>>2]=l;ta(p,0,(m<<3)+8|0);H[h+52>>2]=l}_a:{if((b|0)<=0){break _a}a=0;if(b-1>>>0>=3){k=b&-4;while(1){c=a<<2;g=(H[c+t>>2]<<3)+p|0;f=H[g+4>>2];j=H[g>>2]+1|0;f=j?f:f+1|0;H[g>>2]=j;H[g+4>>2]=f;f=(H[t+(c|4)>>2]<<3)+p|0;j=H[f+4>>2];g=H[f>>2]+1|0;j=g?j:j+1|0;H[f>>2]=g;H[f+4>>2]=j;f=(H[t+(c|8)>>2]<<3)+p|0;o=H[f+4>>2];g=H[f>>2]+1|0;o=g?o:o+1|0;H[f>>2]=g;H[f+4>>2]=o;c=(H[t+(c|12)>>2]<<3)+p|0;f=H[c+4>>2];g=H[c>>2]+1|0;f=g?f:f+1|0;H[c>>2]=g;H[c+4>>2]=f;a=a+4|0;n=n+4|0;if((k|0)!=(n|0)){continue}break}}f=b&3;if(!f){break _a}while(1){c=(H[t+(a<<2)>>2]<<3)+p|0;j=H[c+4>>2];g=H[c>>2]+1|0;j=g?j:j+1|0;H[c>>2]=g;H[c+4>>2]=j;a=a+1|0;d=d+1|0;if((f|0)!=(d|0)){continue}break}}H[h+8>>2]=0;H[h+12>>2]=0;H[h+16>>2]=0;H[h+20>>2]=0;H[h+24>>2]=0;H[h+28>>2]=0;H[h+32>>2]=0;H[h>>2]=0;H[h+4>>2]=0;H[h+40>>2]=0;H[h+44>>2]=0;m=0;d=0;c=0;r=da-32|0;da=r;a=l-p>>3;$a:{if((a|0)<=0){break $a}l=a&3;ab:{if(a-1>>>0<3){a=0;break ab}C=a&-4;a=0;while(1){D=a|1;g=(D<<3)+p|0;f=H[g+4>>2];o=H[g>>2];B=a|2;j=(B<<3)+p|0;g=H[j+4>>2];n=H[j>>2];x=a|3;k=(x<<3)+p|0;j=H[k+4>>2];y=H[k>>2];w=c;c=(a<<3)+p|0;A=H[c+4>>2];k=H[c>>2];c=j|y?x:g|n?B:f|o?D:!(A|k)?w:a;w=n;x=o;o=i+A|0;n=k+u|0;o=n>>>0>>0?o+1|0:o;k=n;i=x+k|0;f=f+o|0;f=i>>>0>>0?f+1|0:f;k=i;i=w+i|0;f=f+g|0;f=i>>>0>>0?f+1|0:f;k=i;i=i+y|0;g=f+j|0;u=i;i=i>>>0>>0?g+1|0:g;a=a+4|0;d=d+4|0;if((C|0)!=(d|0)){continue}break}}if(!l){break $a}while(1){g=c;c=(a<<3)+p|0;f=H[c+4>>2];d=H[c>>2];c=!(f|d)?g:a;a=a+1|0;j=f+i|0;g=d+u|0;j=g>>>0>>0?j+1|0:j;u=g;i=j;m=m+1|0;if((l|0)!=(m|0)){continue}break}}f=c+1|0;H[h+12>>2]=f;d=H[h>>2];a=H[h+4>>2]-d>>3;bb:{if(a>>>0>>0){Ya(h,f-a|0);break bb}if(a>>>0<=f>>>0){break bb}H[h+4>>2]=d+(f<<3)}n=0;cb:{db:{eb:{fb:{if((c|0)>=0){v=+(u>>>0)+ +(i>>>0)*4294967296;i=H[h>>2];a=0;while(1){g=a<<3;j=g+p|0;d=H[j+4>>2];j=H[j>>2];k=(d|j)!=0;g=g+i|0;q=(+(j>>>0)+ +(d>>>0)*4294967296)/v*4096+.5;gb:{if(q<4294967296&q>=0){d=~~q>>>0;break gb}d=0}d=d?d:k?1:d;H[g>>2]=d;n=d+n|0;d=(a|0)==(c|0);a=a+1|0;if(!d){continue}break}if((n|0)==4096){break fb}}H[r+16>>2]=0;H[r+8>>2]=0;H[r+12>>2]=0;l=0;if(f){if(f>>>0>=1073741824){break a}a=f<<2;l=ra(a);H[r+8>>2]=l;s=a+l|0;H[r+16>>2]=s;ta(l,0,a);H[r+12>>2]=s}a=0;hb:{if((c|0)<0){break hb}i=c+1|0;d=i&7;if(c>>>0>=7){i=i&-8;m=0;while(1){H[(a<<2)+l>>2]=a;f=a|1;H[(f<<2)+l>>2]=f;f=a|2;H[(f<<2)+l>>2]=f;f=a|3;H[(f<<2)+l>>2]=f;f=a|4;H[(f<<2)+l>>2]=f;f=a|5;H[(f<<2)+l>>2]=f;f=a|6;H[(f<<2)+l>>2]=f;f=a|7;H[(f<<2)+l>>2]=f;a=a+8|0;m=m+8|0;if((i|0)!=(m|0)){continue}break}}if(!d){break hb}m=0;while(1){H[(a<<2)+l>>2]=a;a=a+1|0;m=m+1|0;if((d|0)!=(m|0)){continue}break}}H[r+24>>2]=h;a=s-l|0;d=a>>2;ib:{jb:{if((a|0)>=513){a=d;while(1){i=ra(a<<2);if(i){break jb}i=a>>>0>1;a=a>>>1|0;if(i){continue}break}}ec(l,s,r+24|0,d,0,0);break ib}ec(l,s,r+24|0,d,i,a);qa(i)}if((n|0)<4096){a=H[h>>2]+(H[s-4>>2]<<3)|0;H[a>>2]=(H[a>>2]-n|0)+4096;a=0;break eb}if((c|0)>0){g=H[h>>2];m=n-4096|0;while(1){q=4096/+(n|0);d=c;while(1){kb:{lb:{i=g+(H[(d<<2)+l>>2]<<3)|0;a=H[i>>2];if(a>>>0>=2){k=i;o=a;v=T(q*+(a>>>0));mb:{if(P(v)<2147483648){f=~~v;break mb}f=-2147483648}i=(a|0)==(f|0)?1:a-f|0;a=(a|0)>(i|0)?i:a-1|0;a=(a|0)<(m|0)?a:m;H[k>>2]=o-a;m=m-a|0;n=n-a|0;if((n|0)!=4096){break lb}n=4096;break kb}if((c|0)!=(d|0)){break kb}a=1;break eb}a=(d|0)>1;d=d-1|0;if(a){continue}}break}a=0;if((m|0)>0){continue}break}break eb}a=0;if(n>>>0<4097){break eb}while(1)continue}if((c|0)<0){break cb}break db}d=H[r+8>>2];if(d){qa(d)}if((c|0)<0|a){break cb}}i=c+1|0;g=i&3;d=H[h>>2];n=0;m=0;a=0;if(c>>>0>=3){j=i&-4;l=0;while(1){f=m<<3;k=f+d|0;H[k+4>>2]=a;o=d+(f|8)|0;a=H[k>>2]+a|0;H[o+4>>2]=a;k=d+(f|16)|0;a=a+H[o>>2]|0;H[k+4>>2]=a;f=d+(f|24)|0;a=a+H[k>>2]|0;H[f+4>>2]=a;a=a+H[f>>2]|0;m=m+4|0;l=l+4|0;if((j|0)!=(l|0)){continue}break}}if(g){while(1){f=d+(m<<3)|0;H[f+4>>2]=a;m=m+1|0;a=H[f>>2]+a|0;n=n+1|0;if((g|0)!=(n|0)){continue}break}}if((a|0)!=4096){break cb}a=0;q=0;nb:{if((c|0)<0){break nb}f=H[h>>2];if(c){c=i&-2;d=0;while(1){g=a<<3;j=H[g+f>>2];if(j){g=g+p|0;q=(+K[g>>2]+ +K[g+4>>2]*4294967296)*za(+(j>>>0)*.000244140625)+q}g=(a|1)<<3;j=H[g+f>>2];if(j){g=g+p|0;q=(+K[g>>2]+ +K[g+4>>2]*4294967296)*za(+(j>>>0)*.000244140625)+q}a=a+2|0;d=d+2|0;if((c|0)!=(d|0)){continue}break}}if(!(i&1)){break nb}a=a<<3;c=H[a+f>>2];if(!c){break nb}a=a+p|0;q=(+K[a>>2]+ +K[a+4>>2]*4294967296)*za(+(c>>>0)*.000244140625)+q}q=U(-q);ob:{if(q<0x10000000000000000&q>=0){c=P(q)>=1?~~(q>0?R(T(q*2.3283064365386963e-10),4294967295):U((q-+(~~q>>>0>>>0))*2.3283064365386963e-10))>>>0:0;a=~~q>>>0;break ob}c=0;a=0}H[h+16>>2]=a;H[h+20>>2]=c;Xa(h,e)}da=r+32|0;d=H[h+16>>2];a=H[h+20>>2];c=H[e+4>>2]-H[e>>2]|0;H[h+40>>2]=c;H[h+44>>2]=0;f=a<<1|d>>>31;a=(d<<1)+39|0;o=a>>>0<39?f+1|0:f;a=c+((o&7)<<29|a>>>3)|0;g=o>>>3|0;g=a>>>0>>0?g+1|0:g;a=a+8|0;Ma(e,a);a=H[e>>2];H[h+28>>2]=0;H[h+32>>2]=16384;H[h+24>>2]=a+H[h+40>>2];if((b|0)>0){a=16384;while(1){c=b-1|0;i=H[h>>2]+(H[t+(c<<2)>>2]<<3)|0;d=H[i>>2];f=d<<10;if(f>>>0<=a>>>0){while(1){g=H[h+28>>2];H[h+28>>2]=g+1;F[g+H[h+24>>2]|0]=a;a=H[h+32>>2]>>>8|0;H[h+32>>2]=a;if(a>>>0>=f>>>0){continue}break}}g=H[i+4>>2];i=(a>>>0)/(d>>>0)|0;a=g+((i<<12)+(a-N(d,i)|0)|0)|0;H[h+32>>2]=a;d=(b|0)>1;b=c;if(d){continue}break}}zb(h,e);a=H[h>>2];if(a){H[h+4>>2]=a;qa(a)}a=H[h+48>>2];if(a){qa(a)}da=h- -64|0;break Za}p=1;break v;case 6:t=a;l=0;n=0;d=0;s=0;u=0;i=0;h=da+-64|0;da=h;H[h+56>>2]=0;H[h+48>>2]=0;H[h+52>>2]=0;pb:{a=m+1|0;if(a){if(a>>>0>=536870912){break a}a=a<<3;p=ra(a);H[h+48>>2]=p;l=a+p|0;H[h+56>>2]=l;ta(p,0,(m<<3)+8|0);H[h+52>>2]=l}qb:{if((b|0)<=0){break qb}a=0;if(b-1>>>0>=3){j=b&-4;while(1){c=a<<2;g=(H[c+t>>2]<<3)+p|0;f=H[g+4>>2];k=H[g>>2]+1|0;f=k?f:f+1|0;H[g>>2]=k;H[g+4>>2]=f;f=(H[t+(c|4)>>2]<<3)+p|0;o=H[f+4>>2];g=H[f>>2]+1|0;o=g?o:o+1|0;H[f>>2]=g;H[f+4>>2]=o;f=(H[t+(c|8)>>2]<<3)+p|0;k=H[f+4>>2];g=H[f>>2]+1|0;k=g?k:k+1|0;H[f>>2]=g;H[f+4>>2]=k;c=(H[t+(c|12)>>2]<<3)+p|0;f=H[c+4>>2];g=H[c>>2]+1|0;f=g?f:f+1|0;H[c>>2]=g;H[c+4>>2]=f;a=a+4|0;n=n+4|0;if((j|0)!=(n|0)){continue}break}}f=b&3;if(!f){break qb}while(1){c=(H[t+(a<<2)>>2]<<3)+p|0;o=H[c+4>>2];g=H[c>>2]+1|0;o=g?o:o+1|0;H[c>>2]=g;H[c+4>>2]=o;a=a+1|0;d=d+1|0;if((f|0)!=(d|0)){continue}break}}H[h+8>>2]=0;H[h+12>>2]=0;H[h+16>>2]=0;H[h+20>>2]=0;H[h+24>>2]=0;H[h+28>>2]=0;H[h+32>>2]=0;H[h>>2]=0;H[h+4>>2]=0;H[h+40>>2]=0;H[h+44>>2]=0;m=0;d=0;c=0;r=da-32|0;da=r;a=l-p>>3;rb:{if((a|0)<=0){break rb}l=a&3;sb:{if(a-1>>>0<3){a=0;break sb}C=a&-4;a=0;while(1){D=a|1;g=(D<<3)+p|0;f=H[g+4>>2];o=H[g>>2];B=a|2;j=(B<<3)+p|0;g=H[j+4>>2];n=H[j>>2];x=a|3;k=(x<<3)+p|0;j=H[k+4>>2];y=H[k>>2];w=c;c=(a<<3)+p|0;A=H[c+4>>2];k=H[c>>2];c=j|y?x:g|n?B:f|o?D:!(A|k)?w:a;w=n;x=o;o=k;n=k+u|0;k=i+A|0;k=n>>>0>>0?k+1|0:k;i=x+n|0;f=f+k|0;f=i>>>0>>0?f+1|0:f;k=i;i=w+i|0;g=f+g|0;g=i>>>0>>0?g+1|0:g;k=i;i=i+y|0;f=g+j|0;u=i;i=i>>>0>>0?f+1|0:f;a=a+4|0;d=d+4|0;if((C|0)!=(d|0)){continue}break}}if(!l){break rb}while(1){g=c;c=(a<<3)+p|0;f=H[c+4>>2];d=H[c>>2];c=!(f|d)?g:a;a=a+1|0;o=f+i|0;g=d+u|0;o=g>>>0>>0?o+1|0:o;u=g;i=o;m=m+1|0;if((l|0)!=(m|0)){continue}break}}f=c+1|0;H[h+12>>2]=f;d=H[h>>2];a=H[h+4>>2]-d>>3;tb:{if(a>>>0>>0){Ya(h,f-a|0);break tb}if(a>>>0<=f>>>0){break tb}H[h+4>>2]=d+(f<<3)}n=0;ub:{vb:{wb:{xb:{if((c|0)>=0){v=+(u>>>0)+ +(i>>>0)*4294967296;i=H[h>>2];a=0;while(1){g=a<<3;j=g+p|0;d=H[j+4>>2];j=H[j>>2];k=(d|j)!=0;g=g+i|0;q=(+(j>>>0)+ +(d>>>0)*4294967296)/v*4096+.5;yb:{if(q<4294967296&q>=0){d=~~q>>>0;break yb}d=0}d=d?d:k?1:d;H[g>>2]=d;n=d+n|0;d=(a|0)==(c|0);a=a+1|0;if(!d){continue}break}if((n|0)==4096){break xb}}H[r+16>>2]=0;H[r+8>>2]=0;H[r+12>>2]=0;l=0;if(f){if(f>>>0>=1073741824){break a}a=f<<2;l=ra(a);H[r+8>>2]=l;s=a+l|0;H[r+16>>2]=s;ta(l,0,a);H[r+12>>2]=s}a=0;zb:{if((c|0)<0){break zb}i=c+1|0;d=i&7;if(c>>>0>=7){i=i&-8;m=0;while(1){H[(a<<2)+l>>2]=a;f=a|1;H[(f<<2)+l>>2]=f;f=a|2;H[(f<<2)+l>>2]=f;f=a|3;H[(f<<2)+l>>2]=f;f=a|4;H[(f<<2)+l>>2]=f;f=a|5;H[(f<<2)+l>>2]=f;f=a|6;H[(f<<2)+l>>2]=f;f=a|7;H[(f<<2)+l>>2]=f;a=a+8|0;m=m+8|0;if((i|0)!=(m|0)){continue}break}}if(!d){break zb}m=0;while(1){H[(a<<2)+l>>2]=a;a=a+1|0;m=m+1|0;if((d|0)!=(m|0)){continue}break}}H[r+24>>2]=h;a=s-l|0;d=a>>2;Ab:{Bb:{if((a|0)>=513){a=d;while(1){i=ra(a<<2);if(i){break Bb}i=a>>>0>1;a=a>>>1|0;if(i){continue}break}}dc(l,s,r+24|0,d,0,0);break Ab}dc(l,s,r+24|0,d,i,a);qa(i)}if((n|0)<4096){a=H[h>>2]+(H[s-4>>2]<<3)|0;H[a>>2]=(H[a>>2]-n|0)+4096;a=0;break wb}if((c|0)>0){g=H[h>>2];m=n-4096|0;while(1){q=4096/+(n|0);d=c;while(1){Cb:{Db:{i=g+(H[(d<<2)+l>>2]<<3)|0;a=H[i>>2];if(a>>>0>=2){k=i;o=a;v=T(q*+(a>>>0));Eb:{if(P(v)<2147483648){f=~~v;break Eb}f=-2147483648}i=(a|0)==(f|0)?1:a-f|0;a=(a|0)>(i|0)?i:a-1|0;a=(a|0)<(m|0)?a:m;H[k>>2]=o-a;m=m-a|0;n=n-a|0;if((n|0)!=4096){break Db}n=4096;break Cb}if((c|0)!=(d|0)){break Cb}a=1;break wb}a=(d|0)>1;d=d-1|0;if(a){continue}}break}a=0;if((m|0)>0){continue}break}break wb}a=0;if(n>>>0<4097){break wb}while(1)continue}if((c|0)<0){break ub}break vb}d=H[r+8>>2];if(d){qa(d)}if((c|0)<0|a){break ub}}i=c+1|0;g=i&3;d=H[h>>2];n=0;m=0;a=0;if(c>>>0>=3){j=i&-4;l=0;while(1){f=m<<3;k=f+d|0;H[k+4>>2]=a;o=d+(f|8)|0;a=H[k>>2]+a|0;H[o+4>>2]=a;k=d+(f|16)|0;a=a+H[o>>2]|0;H[k+4>>2]=a;f=d+(f|24)|0;a=a+H[k>>2]|0;H[f+4>>2]=a;a=a+H[f>>2]|0;m=m+4|0;l=l+4|0;if((j|0)!=(l|0)){continue}break}}if(g){while(1){f=d+(m<<3)|0;H[f+4>>2]=a;m=m+1|0;a=H[f>>2]+a|0;n=n+1|0;if((g|0)!=(n|0)){continue}break}}if((a|0)!=4096){break ub}a=0;q=0;Fb:{if((c|0)<0){break Fb}f=H[h>>2];if(c){c=i&-2;d=0;while(1){g=a<<3;j=H[g+f>>2];if(j){g=g+p|0;q=(+K[g>>2]+ +K[g+4>>2]*4294967296)*za(+(j>>>0)*.000244140625)+q}g=(a|1)<<3;j=H[g+f>>2];if(j){g=g+p|0;q=(+K[g>>2]+ +K[g+4>>2]*4294967296)*za(+(j>>>0)*.000244140625)+q}a=a+2|0;d=d+2|0;if((c|0)!=(d|0)){continue}break}}if(!(i&1)){break Fb}a=a<<3;c=H[a+f>>2];if(!c){break Fb}a=a+p|0;q=(+K[a>>2]+ +K[a+4>>2]*4294967296)*za(+(c>>>0)*.000244140625)+q}q=U(-q);Gb:{if(q<0x10000000000000000&q>=0){c=P(q)>=1?~~(q>0?R(T(q*2.3283064365386963e-10),4294967295):U((q-+(~~q>>>0>>>0))*2.3283064365386963e-10))>>>0:0;a=~~q>>>0;break Gb}c=0;a=0}H[h+16>>2]=a;H[h+20>>2]=c;Xa(h,e)}da=r+32|0;d=H[h+16>>2];a=H[h+20>>2];c=H[e+4>>2]-H[e>>2]|0;H[h+40>>2]=c;H[h+44>>2]=0;g=a<<1|d>>>31;a=(d<<1)+39|0;k=a>>>0<39?g+1|0:g;f=k>>>3|0;a=c+((k&7)<<29|a>>>3)|0;f=a>>>0>>0?f+1|0:f;a=a+8|0;Ma(e,a);a=H[e>>2];H[h+28>>2]=0;H[h+32>>2]=16384;H[h+24>>2]=a+H[h+40>>2];if((b|0)>0){a=16384;while(1){c=b-1|0;i=H[h>>2]+(H[t+(c<<2)>>2]<<3)|0;d=H[i>>2];f=d<<10;if(f>>>0<=a>>>0){while(1){g=H[h+28>>2];H[h+28>>2]=g+1;F[g+H[h+24>>2]|0]=a;a=H[h+32>>2]>>>8|0;H[h+32>>2]=a;if(a>>>0>=f>>>0){continue}break}}g=H[i+4>>2];i=(a>>>0)/(d>>>0)|0;a=g+((i<<12)+(a-N(d,i)|0)|0)|0;H[h+32>>2]=a;d=(b|0)>1;b=c;if(d){continue}break}}zb(h,e);a=H[h>>2];if(a){H[h+4>>2]=a;qa(a)}a=H[h+48>>2];if(a){qa(a)}da=h- -64|0;break pb}p=1;break v;case 7:t=a;l=0;n=0;d=0;s=0;u=0;i=0;h=da+-64|0;da=h;H[h+56>>2]=0;H[h+48>>2]=0;H[h+52>>2]=0;Hb:{a=m+1|0;if(a){if(a>>>0>=536870912){break a}a=a<<3;p=ra(a);H[h+48>>2]=p;l=a+p|0;H[h+56>>2]=l;ta(p,0,(m<<3)+8|0);H[h+52>>2]=l}Ib:{if((b|0)<=0){break Ib}a=0;if(b-1>>>0>=3){o=b&-4;while(1){c=a<<2;f=(H[c+t>>2]<<3)+p|0;g=H[f+4>>2];j=H[f>>2]+1|0;g=j?g:g+1|0;H[f>>2]=j;H[f+4>>2]=g;f=(H[t+(c|4)>>2]<<3)+p|0;k=H[f+4>>2];g=H[f>>2]+1|0;k=g?k:k+1|0;H[f>>2]=g;H[f+4>>2]=k;f=(H[t+(c|8)>>2]<<3)+p|0;j=H[f+4>>2];g=H[f>>2]+1|0;j=g?j:j+1|0;H[f>>2]=g;H[f+4>>2]=j;c=(H[t+(c|12)>>2]<<3)+p|0;g=H[c+4>>2];f=H[c>>2]+1|0;g=f?g:g+1|0;H[c>>2]=f;H[c+4>>2]=g;a=a+4|0;n=n+4|0;if((o|0)!=(n|0)){continue}break}}f=b&3;if(!f){break Ib}while(1){c=(H[t+(a<<2)>>2]<<3)+p|0;k=H[c+4>>2];g=H[c>>2]+1|0;k=g?k:k+1|0;H[c>>2]=g;H[c+4>>2]=k;a=a+1|0;d=d+1|0;if((f|0)!=(d|0)){continue}break}}H[h+8>>2]=0;H[h+12>>2]=0;H[h+16>>2]=0;H[h+20>>2]=0;H[h+24>>2]=0;H[h+28>>2]=0;H[h+32>>2]=0;H[h>>2]=0;H[h+4>>2]=0;H[h+40>>2]=0;H[h+44>>2]=0;m=0;d=0;c=0;r=da-32|0;da=r;a=l-p>>3;Jb:{if((a|0)<=0){break Jb}n=a&3;Kb:{if(a-1>>>0<3){a=0;break Kb}B=a&-4;a=0;while(1){o=a|1;g=(o<<3)+p|0;f=H[g+4>>2];y=H[g>>2];l=a|2;j=(l<<3)+p|0;g=H[j+4>>2];A=H[j>>2];x=a|3;k=(x<<3)+p|0;j=H[k+4>>2];C=H[k>>2];w=c;c=(a<<3)+p|0;D=H[c+4>>2];k=H[c>>2];c=j|C?x:g|A?l:f|y?o:!(D|k)?w:a;o=j;l=g;j=i+D|0;g=k+u|0;j=g>>>0>>0?j+1|0:j;k=g;i=g+y|0;g=f+j|0;g=i>>>0>>0?g+1|0:g;j=i;i=i+A|0;f=g+l|0;f=i>>>0>>0?f+1|0:f;g=i;i=g+C|0;f=f+o|0;u=i;i=g>>>0>i>>>0?f+1|0:f;a=a+4|0;d=d+4|0;if((B|0)!=(d|0)){continue}break}}if(!n){break Jb}while(1){g=c;c=(a<<3)+p|0;f=H[c+4>>2];d=H[c>>2];c=!(f|d)?g:a;a=a+1|0;k=f+i|0;g=d+u|0;k=g>>>0>>0?k+1|0:k;u=g;i=k;m=m+1|0;if((n|0)!=(m|0)){continue}break}}f=c+1|0;H[h+12>>2]=f;d=H[h>>2];a=H[h+4>>2]-d>>3;Lb:{if(a>>>0>>0){Ya(h,f-a|0);break Lb}if(a>>>0<=f>>>0){break Lb}H[h+4>>2]=d+(f<<3)}n=0;Mb:{Nb:{Ob:{Pb:{if((c|0)>=0){v=+(u>>>0)+ +(i>>>0)*4294967296;i=H[h>>2];a=0;while(1){g=a<<3;j=g+p|0;d=H[j+4>>2];j=H[j>>2];k=(d|j)!=0;g=g+i|0;q=(+(j>>>0)+ +(d>>>0)*4294967296)/v*4096+.5;Qb:{if(q<4294967296&q>=0){d=~~q>>>0;break Qb}d=0}d=d?d:k?1:d;H[g>>2]=d;n=d+n|0;d=(a|0)==(c|0);a=a+1|0;if(!d){continue}break}if((n|0)==4096){break Pb}}H[r+16>>2]=0;H[r+8>>2]=0;H[r+12>>2]=0;l=0;if(f){if(f>>>0>=1073741824){break a}a=f<<2;l=ra(a);H[r+8>>2]=l;s=a+l|0;H[r+16>>2]=s;ta(l,0,a);H[r+12>>2]=s}a=0;Rb:{if((c|0)<0){break Rb}i=c+1|0;d=i&7;if(c>>>0>=7){i=i&-8;m=0;while(1){H[(a<<2)+l>>2]=a;f=a|1;H[(f<<2)+l>>2]=f;f=a|2;H[(f<<2)+l>>2]=f;f=a|3;H[(f<<2)+l>>2]=f;f=a|4;H[(f<<2)+l>>2]=f;f=a|5;H[(f<<2)+l>>2]=f;f=a|6;H[(f<<2)+l>>2]=f;f=a|7;H[(f<<2)+l>>2]=f;a=a+8|0;m=m+8|0;if((i|0)!=(m|0)){continue}break}}if(!d){break Rb}m=0;while(1){H[(a<<2)+l>>2]=a;a=a+1|0;m=m+1|0;if((d|0)!=(m|0)){continue}break}}H[r+24>>2]=h;a=s-l|0;d=a>>2;Sb:{Tb:{if((a|0)>=513){a=d;while(1){i=ra(a<<2);if(i){break Tb}i=a>>>0>1;a=a>>>1|0;if(i){continue}break}}cc(l,s,r+24|0,d,0,0);break Sb}cc(l,s,r+24|0,d,i,a);qa(i)}if((n|0)<4096){a=H[h>>2]+(H[s-4>>2]<<3)|0;H[a>>2]=(H[a>>2]-n|0)+4096;a=0;break Ob}if((c|0)>0){g=H[h>>2];m=n-4096|0;while(1){q=4096/+(n|0);d=c;while(1){Ub:{Vb:{i=g+(H[(d<<2)+l>>2]<<3)|0;a=H[i>>2];if(a>>>0>=2){k=i;o=a;v=T(q*+(a>>>0));Wb:{if(P(v)<2147483648){f=~~v;break Wb}f=-2147483648}i=(a|0)==(f|0)?1:a-f|0;a=(a|0)>(i|0)?i:a-1|0;a=(a|0)<(m|0)?a:m;H[k>>2]=o-a;m=m-a|0;n=n-a|0;if((n|0)!=4096){break Vb}n=4096;break Ub}if((c|0)!=(d|0)){break Ub}a=1;break Ob}a=(d|0)>1;d=d-1|0;if(a){continue}}break}a=0;if((m|0)>0){continue}break}break Ob}a=0;if(n>>>0<4097){break Ob}while(1)continue}if((c|0)<0){break Mb}break Nb}d=H[r+8>>2];if(d){qa(d)}if((c|0)<0|a){break Mb}}i=c+1|0;g=i&3;d=H[h>>2];n=0;m=0;a=0;if(c>>>0>=3){j=i&-4;l=0;while(1){f=m<<3;k=f+d|0;H[k+4>>2]=a;o=d+(f|8)|0;a=H[k>>2]+a|0;H[o+4>>2]=a;k=d+(f|16)|0;a=a+H[o>>2]|0;H[k+4>>2]=a;f=d+(f|24)|0;a=a+H[k>>2]|0;H[f+4>>2]=a;a=a+H[f>>2]|0;m=m+4|0;l=l+4|0;if((j|0)!=(l|0)){continue}break}}if(g){while(1){f=d+(m<<3)|0;H[f+4>>2]=a;m=m+1|0;a=H[f>>2]+a|0;n=n+1|0;if((g|0)!=(n|0)){continue}break}}if((a|0)!=4096){break Mb}a=0;q=0;Xb:{if((c|0)<0){break Xb}f=H[h>>2];if(c){c=i&-2;d=0;while(1){g=a<<3;j=H[g+f>>2];if(j){g=g+p|0;q=(+K[g>>2]+ +K[g+4>>2]*4294967296)*za(+(j>>>0)*.000244140625)+q}g=(a|1)<<3;j=H[g+f>>2];if(j){g=g+p|0;q=(+K[g>>2]+ +K[g+4>>2]*4294967296)*za(+(j>>>0)*.000244140625)+q}a=a+2|0;d=d+2|0;if((c|0)!=(d|0)){continue}break}}if(!(i&1)){break Xb}a=a<<3;c=H[a+f>>2];if(!c){break Xb}a=a+p|0;q=(+K[a>>2]+ +K[a+4>>2]*4294967296)*za(+(c>>>0)*.000244140625)+q}q=U(-q);Yb:{if(q<0x10000000000000000&q>=0){c=P(q)>=1?~~(q>0?R(T(q*2.3283064365386963e-10),4294967295):U((q-+(~~q>>>0>>>0))*2.3283064365386963e-10))>>>0:0;a=~~q>>>0;break Yb}c=0;a=0}H[h+16>>2]=a;H[h+20>>2]=c;Xa(h,e)}da=r+32|0;d=H[h+16>>2];a=H[h+20>>2];c=H[e+4>>2]-H[e>>2]|0;H[h+40>>2]=c;H[h+44>>2]=0;f=a<<1|d>>>31;a=(d<<1)+39|0;j=a>>>0<39?f+1|0:f;a=c+((j&7)<<29|a>>>3)|0;f=j>>>3|0;f=a>>>0>>0?f+1|0:f;a=a+8|0;Ma(e,a);a=H[e>>2];H[h+28>>2]=0;H[h+32>>2]=16384;H[h+24>>2]=a+H[h+40>>2];if((b|0)>0){a=16384;while(1){c=b-1|0;i=H[h>>2]+(H[t+(c<<2)>>2]<<3)|0;d=H[i>>2];f=d<<10;if(f>>>0<=a>>>0){while(1){g=H[h+28>>2];H[h+28>>2]=g+1;F[g+H[h+24>>2]|0]=a;a=H[h+32>>2]>>>8|0;H[h+32>>2]=a;if(a>>>0>=f>>>0){continue}break}}g=H[i+4>>2];i=(a>>>0)/(d>>>0)|0;a=g+((i<<12)+(a-N(d,i)|0)|0)|0;H[h+32>>2]=a;d=(b|0)>1;b=c;if(d){continue}break}}zb(h,e);a=H[h>>2];if(a){H[h+4>>2]=a;qa(a)}a=H[h+48>>2];if(a){qa(a)}da=h- -64|0;break Hb}p=1;break v;case 8:t=a;l=0;n=0;d=0;s=0;u=0;i=0;h=da+-64|0;da=h;H[h+56>>2]=0;H[h+48>>2]=0;H[h+52>>2]=0;Zb:{a=m+1|0;if(a){if(a>>>0>=536870912){break a}a=a<<3;p=ra(a);H[h+48>>2]=p;l=a+p|0;H[h+56>>2]=l;ta(p,0,(m<<3)+8|0);H[h+52>>2]=l}_b:{if((b|0)<=0){break _b}a=0;if(b-1>>>0>=3){k=b&-4;while(1){c=a<<2;g=(H[c+t>>2]<<3)+p|0;f=H[g+4>>2];j=H[g>>2]+1|0;f=j?f:f+1|0;H[g>>2]=j;H[g+4>>2]=f;f=(H[t+(c|4)>>2]<<3)+p|0;j=H[f+4>>2];g=H[f>>2]+1|0;j=g?j:j+1|0;H[f>>2]=g;H[f+4>>2]=j;f=(H[t+(c|8)>>2]<<3)+p|0;o=H[f+4>>2];g=H[f>>2]+1|0;o=g?o:o+1|0;H[f>>2]=g;H[f+4>>2]=o;c=(H[t+(c|12)>>2]<<3)+p|0;f=H[c+4>>2];g=H[c>>2]+1|0;f=g?f:f+1|0;H[c>>2]=g;H[c+4>>2]=f;a=a+4|0;n=n+4|0;if((k|0)!=(n|0)){continue}break}}f=b&3;if(!f){break _b}while(1){c=(H[t+(a<<2)>>2]<<3)+p|0;j=H[c+4>>2];g=H[c>>2]+1|0;j=g?j:j+1|0;H[c>>2]=g;H[c+4>>2]=j;a=a+1|0;d=d+1|0;if((f|0)!=(d|0)){continue}break}}H[h+8>>2]=0;H[h+12>>2]=0;H[h+16>>2]=0;H[h+20>>2]=0;H[h+24>>2]=0;H[h+28>>2]=0;H[h+32>>2]=0;H[h>>2]=0;H[h+4>>2]=0;H[h+40>>2]=0;H[h+44>>2]=0;m=0;d=0;c=0;r=da-32|0;da=r;a=l-p>>3;$b:{if((a|0)<=0){break $b}l=a&3;ac:{if(a-1>>>0<3){a=0;break ac}C=a&-4;a=0;while(1){D=a|1;g=(D<<3)+p|0;f=H[g+4>>2];o=H[g>>2];B=a|2;j=(B<<3)+p|0;g=H[j+4>>2];n=H[j>>2];x=a|3;k=(x<<3)+p|0;j=H[k+4>>2];y=H[k>>2];w=c;c=(a<<3)+p|0;A=H[c+4>>2];k=H[c>>2];c=j|y?x:g|n?B:f|o?D:!(A|k)?w:a;w=n;x=o;o=i+A|0;n=k+u|0;o=n>>>0>>0?o+1|0:o;k=n;i=x+k|0;f=f+o|0;f=i>>>0>>0?f+1|0:f;k=i;i=w+i|0;f=f+g|0;f=i>>>0>>0?f+1|0:f;k=i;i=i+y|0;g=f+j|0;u=i;i=i>>>0>>0?g+1|0:g;a=a+4|0;d=d+4|0;if((C|0)!=(d|0)){continue}break}}if(!l){break $b}while(1){g=c;c=(a<<3)+p|0;f=H[c+4>>2];d=H[c>>2];c=!(f|d)?g:a;a=a+1|0;j=f+i|0;g=d+u|0;j=g>>>0>>0?j+1|0:j;u=g;i=j;m=m+1|0;if((l|0)!=(m|0)){continue}break}}f=c+1|0;H[h+12>>2]=f;d=H[h>>2];a=H[h+4>>2]-d>>3;bc:{if(a>>>0>>0){Ya(h,f-a|0);break bc}if(a>>>0<=f>>>0){break bc}H[h+4>>2]=d+(f<<3)}n=0;cc:{dc:{ec:{fc:{if((c|0)>=0){v=+(u>>>0)+ +(i>>>0)*4294967296;i=H[h>>2];a=0;while(1){g=a<<3;j=g+p|0;d=H[j+4>>2];j=H[j>>2];k=(d|j)!=0;g=g+i|0;q=(+(j>>>0)+ +(d>>>0)*4294967296)/v*8192+.5;gc:{if(q<4294967296&q>=0){d=~~q>>>0;break gc}d=0}d=d?d:k?1:d;H[g>>2]=d;n=d+n|0;d=(a|0)==(c|0);a=a+1|0;if(!d){continue}break}if((n|0)==8192){break fc}}H[r+16>>2]=0;H[r+8>>2]=0;H[r+12>>2]=0;l=0;if(f){if(f>>>0>=1073741824){break a}a=f<<2;l=ra(a);H[r+8>>2]=l;s=a+l|0;H[r+16>>2]=s;ta(l,0,a);H[r+12>>2]=s}a=0;hc:{if((c|0)<0){break hc}i=c+1|0;d=i&7;if(c>>>0>=7){i=i&-8;m=0;while(1){H[(a<<2)+l>>2]=a;f=a|1;H[(f<<2)+l>>2]=f;f=a|2;H[(f<<2)+l>>2]=f;f=a|3;H[(f<<2)+l>>2]=f;f=a|4;H[(f<<2)+l>>2]=f;f=a|5;H[(f<<2)+l>>2]=f;f=a|6;H[(f<<2)+l>>2]=f;f=a|7;H[(f<<2)+l>>2]=f;a=a+8|0;m=m+8|0;if((i|0)!=(m|0)){continue}break}}if(!d){break hc}m=0;while(1){H[(a<<2)+l>>2]=a;a=a+1|0;m=m+1|0;if((d|0)!=(m|0)){continue}break}}H[r+24>>2]=h;a=s-l|0;d=a>>2;ic:{jc:{if((a|0)>=513){a=d;while(1){i=ra(a<<2);if(i){break jc}i=a>>>0>1;a=a>>>1|0;if(i){continue}break}}bc(l,s,r+24|0,d,0,0);break ic}bc(l,s,r+24|0,d,i,a);qa(i)}if((n|0)<8192){a=H[h>>2]+(H[s-4>>2]<<3)|0;H[a>>2]=(H[a>>2]-n|0)- -8192;a=0;break ec}if((c|0)>0){g=H[h>>2];m=n+-8192|0;while(1){q=8192/+(n|0);d=c;while(1){kc:{lc:{i=g+(H[(d<<2)+l>>2]<<3)|0;a=H[i>>2];if(a>>>0>=2){k=i;o=a;v=T(q*+(a>>>0));mc:{if(P(v)<2147483648){f=~~v;break mc}f=-2147483648}i=(a|0)==(f|0)?1:a-f|0;a=(a|0)>(i|0)?i:a-1|0;a=(a|0)<(m|0)?a:m;H[k>>2]=o-a;m=m-a|0;n=n-a|0;if((n|0)!=8192){break lc}n=8192;break kc}if((c|0)!=(d|0)){break kc}a=1;break ec}a=(d|0)>1;d=d-1|0;if(a){continue}}break}a=0;if((m|0)>0){continue}break}break ec}a=0;if(n>>>0<8193){break ec}while(1)continue}if((c|0)<0){break cc}break dc}d=H[r+8>>2];if(d){qa(d)}if((c|0)<0|a){break cc}}i=c+1|0;g=i&3;d=H[h>>2];n=0;m=0;a=0;if(c>>>0>=3){j=i&-4;l=0;while(1){f=m<<3;k=f+d|0;H[k+4>>2]=a;o=d+(f|8)|0;a=H[k>>2]+a|0;H[o+4>>2]=a;k=d+(f|16)|0;a=a+H[o>>2]|0;H[k+4>>2]=a;f=d+(f|24)|0;a=a+H[k>>2]|0;H[f+4>>2]=a;a=a+H[f>>2]|0;m=m+4|0;l=l+4|0;if((j|0)!=(l|0)){continue}break}}if(g){while(1){f=d+(m<<3)|0;H[f+4>>2]=a;m=m+1|0;a=H[f>>2]+a|0;n=n+1|0;if((g|0)!=(n|0)){continue}break}}if((a|0)!=8192){break cc}a=0;q=0;nc:{if((c|0)<0){break nc}f=H[h>>2];if(c){c=i&-2;d=0;while(1){g=a<<3;j=H[g+f>>2];if(j){g=g+p|0;q=(+K[g>>2]+ +K[g+4>>2]*4294967296)*za(+(j>>>0)*.0001220703125)+q}g=(a|1)<<3;j=H[g+f>>2];if(j){g=g+p|0;q=(+K[g>>2]+ +K[g+4>>2]*4294967296)*za(+(j>>>0)*.0001220703125)+q}a=a+2|0;d=d+2|0;if((c|0)!=(d|0)){continue}break}}if(!(i&1)){break nc}a=a<<3;c=H[a+f>>2];if(!c){break nc}a=a+p|0;q=(+K[a>>2]+ +K[a+4>>2]*4294967296)*za(+(c>>>0)*.0001220703125)+q}q=U(-q);oc:{if(q<0x10000000000000000&q>=0){c=P(q)>=1?~~(q>0?R(T(q*2.3283064365386963e-10),4294967295):U((q-+(~~q>>>0>>>0))*2.3283064365386963e-10))>>>0:0;a=~~q>>>0;break oc}c=0;a=0}H[h+16>>2]=a;H[h+20>>2]=c;Xa(h,e)}da=r+32|0;d=H[h+16>>2];a=H[h+20>>2];c=H[e+4>>2]-H[e>>2]|0;H[h+40>>2]=c;H[h+44>>2]=0;f=a<<1|d>>>31;a=(d<<1)+39|0;o=a>>>0<39?f+1|0:f;a=c+((o&7)<<29|a>>>3)|0;g=o>>>3|0;g=a>>>0>>0?g+1|0:g;a=a+8|0;Ma(e,a);a=H[e>>2];H[h+28>>2]=0;H[h+32>>2]=32768;H[h+24>>2]=a+H[h+40>>2];if((b|0)>0){a=32768;while(1){c=b-1|0;i=H[h>>2]+(H[t+(c<<2)>>2]<<3)|0;d=H[i>>2];f=d<<10;if(f>>>0<=a>>>0){while(1){g=H[h+28>>2];H[h+28>>2]=g+1;F[g+H[h+24>>2]|0]=a;a=H[h+32>>2]>>>8|0;H[h+32>>2]=a;if(a>>>0>=f>>>0){continue}break}}g=H[i+4>>2];i=(a>>>0)/(d>>>0)|0;a=g+((i<<13)+(a-N(d,i)|0)|0)|0;H[h+32>>2]=a;d=(b|0)>1;b=c;if(d){continue}break}}b=da-32|0;da=b;c=H[e>>2]+H[h+40>>2]|0;d=H[h+32>>2];a=d-32768|0;pc:{if(a>>>0<=63){F[H[h+24>>2]+H[h+28>>2]|0]=a;a=H[h+28>>2]+1|0;break pc}if(a>>>0<=16383){a=H[h+24>>2]+H[h+28>>2]|0;d=d-16384|0;F[a|0]=d;F[a+1|0]=d>>>8;a=H[h+28>>2]+2|0;break pc}if(a>>>0<=4194303){a=H[h+24>>2]+H[h+28>>2]|0;d=d+8355840|0;F[a+2|0]=d>>>16;F[a+1|0]=d>>>8;F[a|0]=d;a=H[h+28>>2]+3|0;break pc}if(a>>>0<=1073741823){a=H[h+24>>2]+H[h+28>>2]|0;d=d-1073774592|0;F[a|0]=d;F[a+1|0]=d>>>8;F[a+2|0]=d>>>16;F[a+3|0]=d>>>24;a=H[h+28>>2]+4|0;break pc}a=H[h+28>>2]}H[b>>2]=0;H[b+4>>2]=0;F[b+24|0]=0;H[b+16>>2]=0;H[b+20>>2]=0;H[b+8>>2]=0;H[b+12>>2]=0;f=a>>31;yb(a,f,b);d=H[b+4>>2]-H[b>>2]|0;xa(d+c|0,c,a);sa(c,H[b>>2],d);i=H[h+44>>2];c=a+d|0;f=c>>>0>>0?f+1|0:f;a=c+H[h+40>>2]|0;Ma(e,a);a=H[b+12>>2];H[b+12>>2]=0;if(a){qa(a)}a=H[b>>2];if(a){H[b+4>>2]=a;qa(a)}da=b+32|0;a=H[h>>2];if(a){H[h+4>>2]=a;qa(a)}a=H[h+48>>2];if(a){qa(a)}da=h- -64|0;break Zb}p=1;break v;case 9:t=a;l=0;n=0;d=0;s=0;u=0;i=0;h=da+-64|0;da=h;H[h+56>>2]=0;H[h+48>>2]=0;H[h+52>>2]=0;qc:{a=m+1|0;if(a){if(a>>>0>=536870912){break a}a=a<<3;p=ra(a);H[h+48>>2]=p;l=a+p|0;H[h+56>>2]=l;ta(p,0,(m<<3)+8|0);H[h+52>>2]=l}rc:{if((b|0)<=0){break rc}a=0;if(b-1>>>0>=3){j=b&-4;while(1){c=a<<2;f=(H[c+t>>2]<<3)+p|0;k=H[f+4>>2];g=H[f>>2]+1|0;k=g?k:k+1|0;H[f>>2]=g;H[f+4>>2]=k;f=(H[t+(c|4)>>2]<<3)+p|0;g=H[f+4>>2];k=H[f>>2]+1|0;g=k?g:g+1|0;H[f>>2]=k;H[f+4>>2]=g;f=(H[t+(c|8)>>2]<<3)+p|0;o=H[f+4>>2];g=H[f>>2]+1|0;o=g?o:o+1|0;H[f>>2]=g;H[f+4>>2]=o;c=(H[t+(c|12)>>2]<<3)+p|0;k=H[c+4>>2];f=H[c>>2]+1|0;k=f?k:k+1|0;H[c>>2]=f;H[c+4>>2]=k;a=a+4|0;n=n+4|0;if((j|0)!=(n|0)){continue}break}}f=b&3;if(!f){break rc}while(1){c=(H[t+(a<<2)>>2]<<3)+p|0;g=H[c+4>>2];j=H[c>>2]+1|0;g=j?g:g+1|0;H[c>>2]=j;H[c+4>>2]=g;a=a+1|0;d=d+1|0;if((f|0)!=(d|0)){continue}break}}H[h+8>>2]=0;H[h+12>>2]=0;H[h+16>>2]=0;H[h+20>>2]=0;H[h+24>>2]=0;H[h+28>>2]=0;H[h+32>>2]=0;H[h>>2]=0;H[h+4>>2]=0;H[h+40>>2]=0;H[h+44>>2]=0;m=0;d=0;c=0;r=da-32|0;da=r;a=l-p>>3;sc:{if((a|0)<=0){break sc}l=a&3;tc:{if(a-1>>>0<3){a=0;break tc}C=a&-4;a=0;while(1){D=a|1;g=(D<<3)+p|0;f=H[g+4>>2];o=H[g>>2];B=a|2;j=(B<<3)+p|0;g=H[j+4>>2];n=H[j>>2];x=a|3;k=(x<<3)+p|0;j=H[k+4>>2];y=H[k>>2];w=c;c=(a<<3)+p|0;A=H[c+4>>2];k=H[c>>2];c=j|y?x:g|n?B:f|o?D:!(A|k)?w:a;w=n;x=o;o=i+A|0;n=k+u|0;o=n>>>0>>0?o+1|0:o;i=x+n|0;k=f+o|0;k=i>>>0>>0?k+1|0:k;o=i;i=w+i|0;f=g+k|0;f=i>>>0>>0?f+1|0:f;g=i;i=g+y|0;f=f+j|0;u=i;i=g>>>0>i>>>0?f+1|0:f;a=a+4|0;d=d+4|0;if((C|0)!=(d|0)){continue}break}}if(!l){break sc}while(1){g=c;c=(a<<3)+p|0;f=H[c+4>>2];d=H[c>>2];c=!(f|d)?g:a;a=a+1|0;g=f+i|0;j=d+u|0;g=j>>>0>>0?g+1|0:g;u=j;i=g;m=m+1|0;if((l|0)!=(m|0)){continue}break}}f=c+1|0;H[h+12>>2]=f;d=H[h>>2];a=H[h+4>>2]-d>>3;uc:{if(a>>>0>>0){Ya(h,f-a|0);break uc}if(a>>>0<=f>>>0){break uc}H[h+4>>2]=d+(f<<3)}n=0;vc:{wc:{xc:{yc:{if((c|0)>=0){v=+(u>>>0)+ +(i>>>0)*4294967296;i=H[h>>2];a=0;while(1){g=a<<3;j=g+p|0;d=H[j+4>>2];j=H[j>>2];k=(d|j)!=0;g=g+i|0;q=(+(j>>>0)+ +(d>>>0)*4294967296)/v*32768+.5;zc:{if(q<4294967296&q>=0){d=~~q>>>0;break zc}d=0}d=d?d:k?1:d;H[g>>2]=d;n=d+n|0;d=(a|0)==(c|0);a=a+1|0;if(!d){continue}break}if((n|0)==32768){break yc}}H[r+16>>2]=0;H[r+8>>2]=0;H[r+12>>2]=0;l=0;if(f){if(f>>>0>=1073741824){break a}a=f<<2;l=ra(a);H[r+8>>2]=l;s=a+l|0;H[r+16>>2]=s;ta(l,0,a);H[r+12>>2]=s}a=0;Ac:{if((c|0)<0){break Ac}i=c+1|0;d=i&7;if(c>>>0>=7){i=i&-8;m=0;while(1){H[(a<<2)+l>>2]=a;f=a|1;H[(f<<2)+l>>2]=f;f=a|2;H[(f<<2)+l>>2]=f;f=a|3;H[(f<<2)+l>>2]=f;f=a|4;H[(f<<2)+l>>2]=f;f=a|5;H[(f<<2)+l>>2]=f;f=a|6;H[(f<<2)+l>>2]=f;f=a|7;H[(f<<2)+l>>2]=f;a=a+8|0;m=m+8|0;if((i|0)!=(m|0)){continue}break}}if(!d){break Ac}m=0;while(1){H[(a<<2)+l>>2]=a;a=a+1|0;m=m+1|0;if((d|0)!=(m|0)){continue}break}}H[r+24>>2]=h;a=s-l|0;d=a>>2;Bc:{Cc:{if((a|0)>=513){a=d;while(1){i=ra(a<<2);if(i){break Cc}i=a>>>0>1;a=a>>>1|0;if(i){continue}break}}ac(l,s,r+24|0,d,0,0);break Bc}ac(l,s,r+24|0,d,i,a);qa(i)}if((n|0)<32768){a=H[h>>2]+(H[s-4>>2]<<3)|0;H[a>>2]=(H[a>>2]-n|0)+32768;a=0;break xc}if((c|0)>0){g=H[h>>2];m=n-32768|0;while(1){q=32768/+(n|0);d=c;while(1){Dc:{Ec:{i=g+(H[(d<<2)+l>>2]<<3)|0;a=H[i>>2];if(a>>>0>=2){k=i;o=a;v=T(q*+(a>>>0));Fc:{if(P(v)<2147483648){f=~~v;break Fc}f=-2147483648}i=(a|0)==(f|0)?1:a-f|0;a=(a|0)>(i|0)?i:a-1|0;a=(a|0)<(m|0)?a:m;H[k>>2]=o-a;m=m-a|0;n=n-a|0;if((n|0)!=32768){break Ec}n=32768;break Dc}if((c|0)!=(d|0)){break Dc}a=1;break xc}a=(d|0)>1;d=d-1|0;if(a){continue}}break}a=0;if((m|0)>0){continue}break}break xc}a=0;if(n>>>0<32769){break xc}while(1)continue}if((c|0)<0){break vc}break wc}d=H[r+8>>2];if(d){qa(d)}if((c|0)<0|a){break vc}}i=c+1|0;g=i&3;d=H[h>>2];n=0;m=0;a=0;if(c>>>0>=3){j=i&-4;l=0;while(1){f=m<<3;k=f+d|0;H[k+4>>2]=a;o=d+(f|8)|0;a=H[k>>2]+a|0;H[o+4>>2]=a;k=d+(f|16)|0;a=a+H[o>>2]|0;H[k+4>>2]=a;f=d+(f|24)|0;a=a+H[k>>2]|0;H[f+4>>2]=a;a=a+H[f>>2]|0;m=m+4|0;l=l+4|0;if((j|0)!=(l|0)){continue}break}}if(g){while(1){f=d+(m<<3)|0;H[f+4>>2]=a;m=m+1|0;a=H[f>>2]+a|0;n=n+1|0;if((g|0)!=(n|0)){continue}break}}if((a|0)!=32768){break vc}a=0;q=0;Gc:{if((c|0)<0){break Gc}f=H[h>>2];if(c){c=i&-2;d=0;while(1){g=a<<3;j=H[g+f>>2];if(j){g=g+p|0;q=(+K[g>>2]+ +K[g+4>>2]*4294967296)*za(+(j>>>0)*30517578125e-15)+q}g=(a|1)<<3;j=H[g+f>>2];if(j){g=g+p|0;q=(+K[g>>2]+ +K[g+4>>2]*4294967296)*za(+(j>>>0)*30517578125e-15)+q}a=a+2|0;d=d+2|0;if((c|0)!=(d|0)){continue}break}}if(!(i&1)){break Gc}a=a<<3;c=H[a+f>>2];if(!c){break Gc}a=a+p|0;q=(+K[a>>2]+ +K[a+4>>2]*4294967296)*za(+(c>>>0)*30517578125e-15)+q}q=U(-q);Hc:{if(q<0x10000000000000000&q>=0){c=P(q)>=1?~~(q>0?R(T(q*2.3283064365386963e-10),4294967295):U((q-+(~~q>>>0>>>0))*2.3283064365386963e-10))>>>0:0;a=~~q>>>0;break Hc}c=0;a=0}H[h+16>>2]=a;H[h+20>>2]=c;Xa(h,e)}da=r+32|0;d=H[h+16>>2];a=H[h+20>>2];c=H[e+4>>2]-H[e>>2]|0;H[h+40>>2]=c;H[h+44>>2]=0;f=a<<1|d>>>31;a=(d<<1)+39|0;o=a>>>0<39?f+1|0:f;a=c+((o&7)<<29|a>>>3)|0;f=o>>>3|0;f=a>>>0>>0?f+1|0:f;a=a+8|0;Ma(e,a);a=H[e>>2];H[h+28>>2]=0;H[h+32>>2]=131072;H[h+24>>2]=a+H[h+40>>2];if((b|0)>0){a=131072;while(1){c=b-1|0;i=H[h>>2]+(H[t+(c<<2)>>2]<<3)|0;d=H[i>>2];f=d<<10;if(f>>>0<=a>>>0){while(1){g=H[h+28>>2];H[h+28>>2]=g+1;F[g+H[h+24>>2]|0]=a;a=H[h+32>>2]>>>8|0;H[h+32>>2]=a;if(a>>>0>=f>>>0){continue}break}}g=H[i+4>>2];i=(a>>>0)/(d>>>0)|0;a=g+((i<<15)+(a-N(d,i)|0)|0)|0;H[h+32>>2]=a;d=(b|0)>1;b=c;if(d){continue}break}}b=da-32|0;da=b;c=H[e>>2]+H[h+40>>2]|0;d=H[h+32>>2];a=d-131072|0;Ic:{if(a>>>0<=63){F[H[h+24>>2]+H[h+28>>2]|0]=a;a=H[h+28>>2]+1|0;break Ic}if(a>>>0<=16383){a=H[h+24>>2]+H[h+28>>2]|0;d=d-114688|0;F[a|0]=d;F[a+1|0]=d>>>8;a=H[h+28>>2]+2|0;break Ic}if(a>>>0<=4194303){a=H[h+24>>2]+H[h+28>>2]|0;d=d+8257536|0;F[a+2|0]=d>>>16;F[a+1|0]=d>>>8;F[a|0]=d;a=H[h+28>>2]+3|0;break Ic}if(a>>>0<=1073741823){a=H[h+24>>2]+H[h+28>>2]|0;d=d-1073872896|0;F[a|0]=d;F[a+1|0]=d>>>8;F[a+2|0]=d>>>16;F[a+3|0]=d>>>24;a=H[h+28>>2]+4|0;break Ic}a=H[h+28>>2]}H[b>>2]=0;H[b+4>>2]=0;F[b+24|0]=0;H[b+16>>2]=0;H[b+20>>2]=0;H[b+8>>2]=0;H[b+12>>2]=0;f=a>>31;yb(a,f,b);d=H[b+4>>2]-H[b>>2]|0;xa(d+c|0,c,a);sa(c,H[b>>2],d);i=H[h+44>>2];c=a+d|0;f=c>>>0>>0?f+1|0:f;a=c+H[h+40>>2]|0;Ma(e,a);a=H[b+12>>2];H[b+12>>2]=0;if(a){qa(a)}a=H[b>>2];if(a){H[b+4>>2]=a;qa(a)}da=b+32|0;a=H[h>>2];if(a){H[h+4>>2]=a;qa(a)}a=H[h+48>>2];if(a){qa(a)}da=h- -64|0;break qc}p=1;break v;case 10:t=a;l=0;n=0;d=0;s=0;u=0;i=0;h=da+-64|0;da=h;H[h+56>>2]=0;H[h+48>>2]=0;H[h+52>>2]=0;Jc:{a=m+1|0;if(a){if(a>>>0>=536870912){break a}a=a<<3;p=ra(a);H[h+48>>2]=p;l=a+p|0;H[h+56>>2]=l;ta(p,0,(m<<3)+8|0);H[h+52>>2]=l}Kc:{if((b|0)<=0){break Kc}a=0;if(b-1>>>0>=3){k=b&-4;while(1){c=a<<2;f=(H[c+t>>2]<<3)+p|0;j=H[f+4>>2];g=H[f>>2]+1|0;j=g?j:j+1|0;H[f>>2]=g;H[f+4>>2]=j;g=(H[t+(c|4)>>2]<<3)+p|0;f=H[g+4>>2];j=H[g>>2]+1|0;f=j?f:f+1|0;H[g>>2]=j;H[g+4>>2]=f;f=(H[t+(c|8)>>2]<<3)+p|0;o=H[f+4>>2];g=H[f>>2]+1|0;o=g?o:o+1|0;H[f>>2]=g;H[f+4>>2]=o;c=(H[t+(c|12)>>2]<<3)+p|0;j=H[c+4>>2];f=H[c>>2]+1|0;j=f?j:j+1|0;H[c>>2]=f;H[c+4>>2]=j;a=a+4|0;n=n+4|0;if((k|0)!=(n|0)){continue}break}}g=b&3;if(!g){break Kc}while(1){c=(H[t+(a<<2)>>2]<<3)+p|0;f=H[c+4>>2];j=H[c>>2]+1|0;f=j?f:f+1|0;H[c>>2]=j;H[c+4>>2]=f;a=a+1|0;d=d+1|0;if((g|0)!=(d|0)){continue}break}}H[h+8>>2]=0;H[h+12>>2]=0;H[h+16>>2]=0;H[h+20>>2]=0;H[h+24>>2]=0;H[h+28>>2]=0;H[h+32>>2]=0;H[h>>2]=0;H[h+4>>2]=0;H[h+40>>2]=0;H[h+44>>2]=0;m=0;d=0;c=0;r=da-32|0;da=r;a=l-p>>3;Lc:{if((a|0)<=0){break Lc}n=a&3;Mc:{if(a-1>>>0<3){a=0;break Mc}D=a&-4;a=0;while(1){l=a|1;g=(l<<3)+p|0;f=H[g+4>>2];o=H[g>>2];B=a|2;j=(B<<3)+p|0;g=H[j+4>>2];y=H[j>>2];x=a|3;k=(x<<3)+p|0;j=H[k+4>>2];A=H[k>>2];w=c;c=(a<<3)+p|0;C=H[c+4>>2];k=H[c>>2];c=j|A?x:g|y?B:f|o?l:!(C|k)?w:a;l=j;w=o;o=i+C|0;j=k+u|0;o=j>>>0>>0?o+1|0:o;k=j;i=w+j|0;j=f+o|0;j=i>>>0>>0?j+1|0:j;k=i;i=i+y|0;f=g+j|0;f=i>>>0>>0?f+1|0:f;g=i;i=g+A|0;k=f+l|0;u=i;i=g>>>0>i>>>0?k+1|0:k;a=a+4|0;d=d+4|0;if((D|0)!=(d|0)){continue}break}}if(!n){break Lc}while(1){g=c;c=(a<<3)+p|0;f=H[c+4>>2];d=H[c>>2];c=!(f|d)?g:a;a=a+1|0;f=f+i|0;g=d+u|0;f=g>>>0>>0?f+1|0:f;u=g;i=f;m=m+1|0;if((n|0)!=(m|0)){continue}break}}f=c+1|0;H[h+12>>2]=f;d=H[h>>2];a=H[h+4>>2]-d>>3;Nc:{if(a>>>0>>0){Ya(h,f-a|0);break Nc}if(a>>>0<=f>>>0){break Nc}H[h+4>>2]=d+(f<<3)}n=0;Oc:{Pc:{Qc:{Rc:{if((c|0)>=0){v=+(u>>>0)+ +(i>>>0)*4294967296;i=H[h>>2];a=0;while(1){g=a<<3;j=g+p|0;d=H[j+4>>2];j=H[j>>2];k=(d|j)!=0;g=g+i|0;q=(+(j>>>0)+ +(d>>>0)*4294967296)/v*65536+.5;Sc:{if(q<4294967296&q>=0){d=~~q>>>0;break Sc}d=0}d=d?d:k?1:d;H[g>>2]=d;n=d+n|0;d=(a|0)==(c|0);a=a+1|0;if(!d){continue}break}if((n|0)==65536){break Rc}}H[r+16>>2]=0;H[r+8>>2]=0;H[r+12>>2]=0;l=0;if(f){if(f>>>0>=1073741824){break a}a=f<<2;l=ra(a);H[r+8>>2]=l;s=a+l|0;H[r+16>>2]=s;ta(l,0,a);H[r+12>>2]=s}a=0;Tc:{if((c|0)<0){break Tc}i=c+1|0;d=i&7;if(c>>>0>=7){i=i&-8;m=0;while(1){H[(a<<2)+l>>2]=a;f=a|1;H[(f<<2)+l>>2]=f;f=a|2;H[(f<<2)+l>>2]=f;f=a|3;H[(f<<2)+l>>2]=f;f=a|4;H[(f<<2)+l>>2]=f;f=a|5;H[(f<<2)+l>>2]=f;f=a|6;H[(f<<2)+l>>2]=f;f=a|7;H[(f<<2)+l>>2]=f;a=a+8|0;m=m+8|0;if((i|0)!=(m|0)){continue}break}}if(!d){break Tc}m=0;while(1){H[(a<<2)+l>>2]=a;a=a+1|0;m=m+1|0;if((d|0)!=(m|0)){continue}break}}H[r+24>>2]=h;a=s-l|0;d=a>>2;Uc:{Vc:{if((a|0)>=513){a=d;while(1){i=ra(a<<2);if(i){break Vc}i=a>>>0>1;a=a>>>1|0;if(i){continue}break}}$b(l,s,r+24|0,d,0,0);break Uc}$b(l,s,r+24|0,d,i,a);qa(i)}if((n|0)<65536){a=H[h>>2]+(H[s-4>>2]<<3)|0;H[a>>2]=(H[a>>2]-n|0)+65536;a=0;break Qc}if((c|0)>0){g=H[h>>2];m=n-65536|0;while(1){q=65536/+(n|0);d=c;while(1){Wc:{Xc:{i=g+(H[(d<<2)+l>>2]<<3)|0;a=H[i>>2];if(a>>>0>=2){k=i;o=a;v=T(q*+(a>>>0));Yc:{if(P(v)<2147483648){f=~~v;break Yc}f=-2147483648}i=(a|0)==(f|0)?1:a-f|0;a=(a|0)>(i|0)?i:a-1|0;a=(a|0)<(m|0)?a:m;H[k>>2]=o-a;m=m-a|0;n=n-a|0;if((n|0)!=65536){break Xc}n=65536;break Wc}if((c|0)!=(d|0)){break Wc}a=1;break Qc}a=(d|0)>1;d=d-1|0;if(a){continue}}break}a=0;if((m|0)>0){continue}break}break Qc}a=0;if(n>>>0<65537){break Qc}while(1)continue}if((c|0)<0){break Oc}break Pc}d=H[r+8>>2];if(d){qa(d)}if((c|0)<0|a){break Oc}}i=c+1|0;g=i&3;d=H[h>>2];n=0;m=0;a=0;if(c>>>0>=3){j=i&-4;l=0;while(1){f=m<<3;k=f+d|0;H[k+4>>2]=a;o=d+(f|8)|0;a=H[k>>2]+a|0;H[o+4>>2]=a;k=d+(f|16)|0;a=a+H[o>>2]|0;H[k+4>>2]=a;f=d+(f|24)|0;a=a+H[k>>2]|0;H[f+4>>2]=a;a=a+H[f>>2]|0;m=m+4|0;l=l+4|0;if((j|0)!=(l|0)){continue}break}}if(g){while(1){f=d+(m<<3)|0;H[f+4>>2]=a;m=m+1|0;a=H[f>>2]+a|0;n=n+1|0;if((g|0)!=(n|0)){continue}break}}if((a|0)!=65536){break Oc}a=0;q=0;Zc:{if((c|0)<0){break Zc}f=H[h>>2];if(c){c=i&-2;d=0;while(1){g=a<<3;j=H[g+f>>2];if(j){g=g+p|0;q=(+K[g>>2]+ +K[g+4>>2]*4294967296)*za(+(j>>>0)*152587890625e-16)+q}g=(a|1)<<3;j=H[g+f>>2];if(j){g=g+p|0;q=(+K[g>>2]+ +K[g+4>>2]*4294967296)*za(+(j>>>0)*152587890625e-16)+q}a=a+2|0;d=d+2|0;if((c|0)!=(d|0)){continue}break}}if(!(i&1)){break Zc}a=a<<3;c=H[a+f>>2];if(!c){break Zc}a=a+p|0;q=(+K[a>>2]+ +K[a+4>>2]*4294967296)*za(+(c>>>0)*152587890625e-16)+q}q=U(-q);_c:{if(q<0x10000000000000000&q>=0){c=P(q)>=1?~~(q>0?R(T(q*2.3283064365386963e-10),4294967295):U((q-+(~~q>>>0>>>0))*2.3283064365386963e-10))>>>0:0;a=~~q>>>0;break _c}c=0;a=0}H[h+16>>2]=a;H[h+20>>2]=c;Xa(h,e)}da=r+32|0;d=H[h+16>>2];a=H[h+20>>2];c=H[e+4>>2]-H[e>>2]|0;H[h+40>>2]=c;H[h+44>>2]=0;f=a<<1|d>>>31;a=(d<<1)+39|0;o=a>>>0<39?f+1|0:f;a=c+((o&7)<<29|a>>>3)|0;k=o>>>3|0;k=a>>>0>>0?k+1|0:k;a=a+8|0;Ma(e,a);a=H[e>>2];H[h+28>>2]=0;H[h+32>>2]=262144;H[h+24>>2]=a+H[h+40>>2];if((b|0)>0){a=262144;while(1){c=b-1|0;i=H[h>>2]+(H[t+(c<<2)>>2]<<3)|0;d=H[i>>2];f=d<<10;if(f>>>0<=a>>>0){while(1){g=H[h+28>>2];H[h+28>>2]=g+1;F[g+H[h+24>>2]|0]=a;a=H[h+32>>2]>>>8|0;H[h+32>>2]=a;if(a>>>0>=f>>>0){continue}break}}g=H[i+4>>2];i=(a>>>0)/(d>>>0)|0;a=g+((i<<16)+(a-N(d,i)|0)|0)|0;H[h+32>>2]=a;d=(b|0)>1;b=c;if(d){continue}break}}b=da-32|0;da=b;c=H[e>>2]+H[h+40>>2]|0;d=H[h+32>>2];a=d-262144|0;$c:{if(a>>>0<=63){F[H[h+24>>2]+H[h+28>>2]|0]=a;a=H[h+28>>2]+1|0;break $c}if(a>>>0<=16383){a=H[h+24>>2]+H[h+28>>2]|0;d=d-245760|0;F[a|0]=d;F[a+1|0]=d>>>8;a=H[h+28>>2]+2|0;break $c}if(a>>>0<=4194303){a=H[h+24>>2]+H[h+28>>2]|0;d=d+8126464|0;F[a+2|0]=d>>>16;F[a+1|0]=d>>>8;F[a|0]=d;a=H[h+28>>2]+3|0;break $c}if(a>>>0<=1073741823){a=H[h+24>>2]+H[h+28>>2]|0;d=d-1074003968|0;F[a|0]=d;F[a+1|0]=d>>>8;F[a+2|0]=d>>>16;F[a+3|0]=d>>>24;a=H[h+28>>2]+4|0;break $c}a=H[h+28>>2]}H[b>>2]=0;H[b+4>>2]=0;F[b+24|0]=0;H[b+16>>2]=0;H[b+20>>2]=0;H[b+8>>2]=0;H[b+12>>2]=0;f=a>>31;yb(a,f,b);d=H[b+4>>2]-H[b>>2]|0;xa(d+c|0,c,a);sa(c,H[b>>2],d);i=H[h+44>>2];c=a+d|0;f=c>>>0>>0?f+1|0:f;a=c+H[h+40>>2]|0;Ma(e,a);a=H[b+12>>2];H[b+12>>2]=0;if(a){qa(a)}a=H[b>>2];if(a){H[b+4>>2]=a;qa(a)}da=b+32|0;a=H[h>>2];if(a){H[h+4>>2]=a;qa(a)}a=H[h+48>>2];if(a){qa(a)}da=h- -64|0;break Jc}p=1;break v;case 11:t=a;l=0;n=0;d=0;s=0;u=0;i=0;h=da+-64|0;da=h;H[h+56>>2]=0;H[h+48>>2]=0;H[h+52>>2]=0;ad:{a=m+1|0;if(a){if(a>>>0>=536870912){break a}a=a<<3;p=ra(a);H[h+48>>2]=p;l=a+p|0;H[h+56>>2]=l;ta(p,0,(m<<3)+8|0);H[h+52>>2]=l}bd:{if((b|0)<=0){break bd}a=0;if(b-1>>>0>=3){j=b&-4;while(1){c=a<<2;f=(H[c+t>>2]<<3)+p|0;g=H[f+4>>2];k=H[f>>2]+1|0;g=k?g:g+1|0;H[f>>2]=k;H[f+4>>2]=g;f=(H[t+(c|4)>>2]<<3)+p|0;k=H[f+4>>2];g=H[f>>2]+1|0;k=g?k:k+1|0;H[f>>2]=g;H[f+4>>2]=k;f=(H[t+(c|8)>>2]<<3)+p|0;o=H[f+4>>2];g=H[f>>2]+1|0;o=g?o:o+1|0;H[f>>2]=g;H[f+4>>2]=o;c=(H[t+(c|12)>>2]<<3)+p|0;g=H[c+4>>2];f=H[c>>2]+1|0;g=f?g:g+1|0;H[c>>2]=f;H[c+4>>2]=g;a=a+4|0;n=n+4|0;if((j|0)!=(n|0)){continue}break}}f=b&3;if(!f){break bd}while(1){c=(H[t+(a<<2)>>2]<<3)+p|0;k=H[c+4>>2];g=H[c>>2]+1|0;k=g?k:k+1|0;H[c>>2]=g;H[c+4>>2]=k;a=a+1|0;d=d+1|0;if((f|0)!=(d|0)){continue}break}}H[h+8>>2]=0;H[h+12>>2]=0;H[h+16>>2]=0;H[h+20>>2]=0;H[h+24>>2]=0;H[h+28>>2]=0;H[h+32>>2]=0;H[h>>2]=0;H[h+4>>2]=0;H[h+40>>2]=0;H[h+44>>2]=0;m=0;d=0;c=0;r=da-32|0;da=r;a=l-p>>3;cd:{if((a|0)<=0){break cd}n=a&3;dd:{if(a-1>>>0<3){a=0;break dd}D=a&-4;a=0;while(1){l=a|1;g=(l<<3)+p|0;f=H[g+4>>2];o=H[g>>2];B=a|2;j=(B<<3)+p|0;g=H[j+4>>2];y=H[j>>2];x=a|3;k=(x<<3)+p|0;j=H[k+4>>2];A=H[k>>2];w=c;c=(a<<3)+p|0;C=H[c+4>>2];k=H[c>>2];c=j|A?x:g|y?B:f|o?l:!(C|k)?w:a;l=g;w=o;o=i+C|0;g=k+u|0;o=g>>>0>>0?o+1|0:o;k=g;i=w+g|0;g=f+o|0;g=i>>>0>>0?g+1|0:g;k=i;i=i+y|0;f=g+l|0;f=i>>>0>>0?f+1|0:f;g=i;i=g+A|0;j=f+j|0;u=i;i=g>>>0>i>>>0?j+1|0:j;a=a+4|0;d=d+4|0;if((D|0)!=(d|0)){continue}break}}if(!n){break cd}while(1){g=c;c=(a<<3)+p|0;f=H[c+4>>2];d=H[c>>2];c=!(f|d)?g:a;a=a+1|0;k=f+i|0;g=d+u|0;k=g>>>0>>0?k+1|0:k;u=g;i=k;m=m+1|0;if((n|0)!=(m|0)){continue}break}}f=c+1|0;H[h+12>>2]=f;d=H[h>>2];a=H[h+4>>2]-d>>3;ed:{if(a>>>0>>0){Ya(h,f-a|0);break ed}if(a>>>0<=f>>>0){break ed}H[h+4>>2]=d+(f<<3)}n=0;fd:{gd:{hd:{id:{if((c|0)>=0){v=+(u>>>0)+ +(i>>>0)*4294967296;i=H[h>>2];a=0;while(1){g=a<<3;j=g+p|0;d=H[j+4>>2];j=H[j>>2];k=(d|j)!=0;g=g+i|0;q=(+(j>>>0)+ +(d>>>0)*4294967296)/v*262144+.5;jd:{if(q<4294967296&q>=0){d=~~q>>>0;break jd}d=0}d=d?d:k?1:d;H[g>>2]=d;n=d+n|0;d=(a|0)==(c|0);a=a+1|0;if(!d){continue}break}if((n|0)==262144){break id}}H[r+16>>2]=0;H[r+8>>2]=0;H[r+12>>2]=0;l=0;if(f){if(f>>>0>=1073741824){break a}a=f<<2;l=ra(a);H[r+8>>2]=l;s=a+l|0;H[r+16>>2]=s;ta(l,0,a);H[r+12>>2]=s}a=0;kd:{if((c|0)<0){break kd}i=c+1|0;d=i&7;if(c>>>0>=7){i=i&-8;m=0;while(1){H[(a<<2)+l>>2]=a;f=a|1;H[(f<<2)+l>>2]=f;f=a|2;H[(f<<2)+l>>2]=f;f=a|3;H[(f<<2)+l>>2]=f;f=a|4;H[(f<<2)+l>>2]=f;f=a|5;H[(f<<2)+l>>2]=f;f=a|6;H[(f<<2)+l>>2]=f;f=a|7;H[(f<<2)+l>>2]=f;a=a+8|0;m=m+8|0;if((i|0)!=(m|0)){continue}break}}if(!d){break kd}m=0;while(1){H[(a<<2)+l>>2]=a;a=a+1|0;m=m+1|0;if((d|0)!=(m|0)){continue}break}}H[r+24>>2]=h;a=s-l|0;d=a>>2;ld:{md:{if((a|0)>=513){a=d;while(1){i=ra(a<<2);if(i){break md}i=a>>>0>1;a=a>>>1|0;if(i){continue}break}}_b(l,s,r+24|0,d,0,0);break ld}_b(l,s,r+24|0,d,i,a);qa(i)}if((n|0)<262144){a=H[h>>2]+(H[s-4>>2]<<3)|0;H[a>>2]=(H[a>>2]-n|0)+262144;a=0;break hd}if((c|0)>0){g=H[h>>2];m=n-262144|0;while(1){q=262144/+(n|0);d=c;while(1){nd:{od:{i=g+(H[(d<<2)+l>>2]<<3)|0;a=H[i>>2];if(a>>>0>=2){k=i;o=a;v=T(q*+(a>>>0));pd:{if(P(v)<2147483648){f=~~v;break pd}f=-2147483648}i=(a|0)==(f|0)?1:a-f|0;a=(a|0)>(i|0)?i:a-1|0;a=(a|0)<(m|0)?a:m;H[k>>2]=o-a;m=m-a|0;n=n-a|0;if((n|0)!=262144){break od}n=262144;break nd}if((c|0)!=(d|0)){break nd}a=1;break hd}a=(d|0)>1;d=d-1|0;if(a){continue}}break}a=0;if((m|0)>0){continue}break}break hd}a=0;if(n>>>0<262145){break hd}while(1)continue}if((c|0)<0){break fd}break gd}d=H[r+8>>2];if(d){qa(d)}if((c|0)<0|a){break fd}}i=c+1|0;g=i&3;d=H[h>>2];n=0;m=0;a=0;if(c>>>0>=3){j=i&-4;l=0;while(1){f=m<<3;k=f+d|0;H[k+4>>2]=a;o=d+(f|8)|0;a=H[k>>2]+a|0;H[o+4>>2]=a;k=d+(f|16)|0;a=a+H[o>>2]|0;H[k+4>>2]=a;f=d+(f|24)|0;a=a+H[k>>2]|0;H[f+4>>2]=a;a=a+H[f>>2]|0;m=m+4|0;l=l+4|0;if((j|0)!=(l|0)){continue}break}}if(g){while(1){f=d+(m<<3)|0;H[f+4>>2]=a;m=m+1|0;a=H[f>>2]+a|0;n=n+1|0;if((g|0)!=(n|0)){continue}break}}if((a|0)!=262144){break fd}a=0;q=0;qd:{if((c|0)<0){break qd}f=H[h>>2];if(c){c=i&-2;d=0;while(1){g=a<<3;j=H[g+f>>2];if(j){g=g+p|0;q=(+K[g>>2]+ +K[g+4>>2]*4294967296)*za(+(j>>>0)*3814697265625e-18)+q}g=(a|1)<<3;j=H[g+f>>2];if(j){g=g+p|0;q=(+K[g>>2]+ +K[g+4>>2]*4294967296)*za(+(j>>>0)*3814697265625e-18)+q}a=a+2|0;d=d+2|0;if((c|0)!=(d|0)){continue}break}}if(!(i&1)){break qd}a=a<<3;c=H[a+f>>2];if(!c){break qd}a=a+p|0;q=(+K[a>>2]+ +K[a+4>>2]*4294967296)*za(+(c>>>0)*3814697265625e-18)+q}q=U(-q);rd:{if(q<0x10000000000000000&q>=0){c=P(q)>=1?~~(q>0?R(T(q*2.3283064365386963e-10),4294967295):U((q-+(~~q>>>0>>>0))*2.3283064365386963e-10))>>>0:0;a=~~q>>>0;break rd}c=0;a=0}H[h+16>>2]=a;H[h+20>>2]=c;Xa(h,e)}da=r+32|0;d=H[h+16>>2];a=H[h+20>>2];c=H[e+4>>2]-H[e>>2]|0;H[h+40>>2]=c;H[h+44>>2]=0;f=a<<1|d>>>31;a=(d<<1)+39|0;o=a>>>0<39?f+1|0:f;a=c+((o&7)<<29|a>>>3)|0;j=o>>>3|0;j=a>>>0>>0?j+1|0:j;a=a+8|0;Ma(e,a);a=H[e>>2];H[h+28>>2]=0;H[h+32>>2]=1048576;H[h+24>>2]=a+H[h+40>>2];if((b|0)>0){a=1048576;while(1){c=b-1|0;i=H[h>>2]+(H[t+(c<<2)>>2]<<3)|0;d=H[i>>2];f=d<<10;if(f>>>0<=a>>>0){while(1){g=H[h+28>>2];H[h+28>>2]=g+1;F[g+H[h+24>>2]|0]=a;a=H[h+32>>2]>>>8|0;H[h+32>>2]=a;if(a>>>0>=f>>>0){continue}break}}g=H[i+4>>2];i=(a>>>0)/(d>>>0)|0;a=g+((i<<18)+(a-N(d,i)|0)|0)|0;H[h+32>>2]=a;d=(b|0)>1;b=c;if(d){continue}break}}b=da-32|0;da=b;c=H[e>>2]+H[h+40>>2]|0;d=H[h+32>>2];a=d+-1048576|0;sd:{if(a>>>0<=63){F[H[h+24>>2]+H[h+28>>2]|0]=a;a=H[h+28>>2]+1|0;break sd}if(a>>>0<=16383){a=H[h+24>>2]+H[h+28>>2]|0;d=d-1032192|0;F[a|0]=d;F[a+1|0]=d>>>8;a=H[h+28>>2]+2|0;break sd}if(a>>>0<=4194303){a=H[h+24>>2]+H[h+28>>2]|0;d=d+7340032|0;F[a+2|0]=d>>>16;F[a+1|0]=d>>>8;F[a|0]=d;a=H[h+28>>2]+3|0;break sd}if(a>>>0<=1073741823){a=H[h+24>>2]+H[h+28>>2]|0;d=d-1074790400|0;F[a|0]=d;F[a+1|0]=d>>>8;F[a+2|0]=d>>>16;F[a+3|0]=d>>>24;a=H[h+28>>2]+4|0;break sd}a=H[h+28>>2]}H[b>>2]=0;H[b+4>>2]=0;F[b+24|0]=0;H[b+16>>2]=0;H[b+20>>2]=0;H[b+8>>2]=0;H[b+12>>2]=0;f=a>>31;yb(a,f,b);d=H[b+4>>2]-H[b>>2]|0;xa(d+c|0,c,a);sa(c,H[b>>2],d);i=H[h+44>>2];c=a+d|0;f=c>>>0>>0?f+1|0:f;a=c+H[h+40>>2]|0;Ma(e,a);a=H[b+12>>2];H[b+12>>2]=0;if(a){qa(a)}a=H[b>>2];if(a){H[b+4>>2]=a;qa(a)}da=b+32|0;a=H[h>>2];if(a){H[h+4>>2]=a;qa(a)}a=H[h+48>>2];if(a){qa(a)}da=h- -64|0;break ad}p=1;break v;case 12:t=a;l=0;n=0;d=0;s=0;u=0;i=0;h=da+-64|0;da=h;H[h+56>>2]=0;H[h+48>>2]=0;H[h+52>>2]=0;td:{a=m+1|0;if(a){if(a>>>0>=536870912){break a}a=a<<3;p=ra(a);H[h+48>>2]=p;l=a+p|0;H[h+56>>2]=l;ta(p,0,(m<<3)+8|0);H[h+52>>2]=l}ud:{if((b|0)<=0){break ud}a=0;if(b-1>>>0>=3){k=b&-4;while(1){c=a<<2;g=(H[c+t>>2]<<3)+p|0;f=H[g+4>>2];j=H[g>>2]+1|0;f=j?f:f+1|0;H[g>>2]=j;H[g+4>>2]=f;f=(H[t+(c|4)>>2]<<3)+p|0;j=H[f+4>>2];g=H[f>>2]+1|0;j=g?j:j+1|0;H[f>>2]=g;H[f+4>>2]=j;f=(H[t+(c|8)>>2]<<3)+p|0;o=H[f+4>>2];g=H[f>>2]+1|0;o=g?o:o+1|0;H[f>>2]=g;H[f+4>>2]=o;c=(H[t+(c|12)>>2]<<3)+p|0;f=H[c+4>>2];g=H[c>>2]+1|0;f=g?f:f+1|0;H[c>>2]=g;H[c+4>>2]=f;a=a+4|0;n=n+4|0;if((k|0)!=(n|0)){continue}break}}f=b&3;if(!f){break ud}while(1){c=(H[t+(a<<2)>>2]<<3)+p|0;j=H[c+4>>2];g=H[c>>2]+1|0;j=g?j:j+1|0;H[c>>2]=g;H[c+4>>2]=j;a=a+1|0;d=d+1|0;if((f|0)!=(d|0)){continue}break}}H[h+8>>2]=0;H[h+12>>2]=0;H[h+16>>2]=0;H[h+20>>2]=0;H[h+24>>2]=0;H[h+28>>2]=0;H[h+32>>2]=0;H[h>>2]=0;H[h+4>>2]=0;H[h+40>>2]=0;H[h+44>>2]=0;m=0;d=0;c=0;r=da-32|0;da=r;a=l-p>>3;vd:{if((a|0)<=0){break vd}l=a&3;wd:{if(a-1>>>0<3){a=0;break wd}C=a&-4;a=0;while(1){D=a|1;g=(D<<3)+p|0;f=H[g+4>>2];o=H[g>>2];B=a|2;j=(B<<3)+p|0;g=H[j+4>>2];n=H[j>>2];x=a|3;k=(x<<3)+p|0;j=H[k+4>>2];y=H[k>>2];w=c;c=(a<<3)+p|0;A=H[c+4>>2];k=H[c>>2];c=j|y?x:g|n?B:f|o?D:!(A|k)?w:a;w=n;x=o;o=i+A|0;n=k+u|0;o=n>>>0>>0?o+1|0:o;k=n;i=x+k|0;f=f+o|0;f=i>>>0>>0?f+1|0:f;k=i;i=w+i|0;f=f+g|0;f=i>>>0>>0?f+1|0:f;k=i;i=i+y|0;g=f+j|0;u=i;i=i>>>0>>0?g+1|0:g;a=a+4|0;d=d+4|0;if((C|0)!=(d|0)){continue}break}}if(!l){break vd}while(1){g=c;c=(a<<3)+p|0;f=H[c+4>>2];d=H[c>>2];c=!(f|d)?g:a;a=a+1|0;j=f+i|0;g=d+u|0;j=g>>>0>>0?j+1|0:j;u=g;i=j;m=m+1|0;if((l|0)!=(m|0)){continue}break}}f=c+1|0;H[h+12>>2]=f;d=H[h>>2];a=H[h+4>>2]-d>>3;xd:{if(a>>>0>>0){Ya(h,f-a|0);break xd}if(a>>>0<=f>>>0){break xd}H[h+4>>2]=d+(f<<3)}n=0;yd:{zd:{Ad:{Bd:{if((c|0)>=0){v=+(u>>>0)+ +(i>>>0)*4294967296;i=H[h>>2];a=0;while(1){g=a<<3;j=g+p|0;d=H[j+4>>2];j=H[j>>2];k=(d|j)!=0;g=g+i|0;q=(+(j>>>0)+ +(d>>>0)*4294967296)/v*524288+.5;Cd:{if(q<4294967296&q>=0){d=~~q>>>0;break Cd}d=0}d=d?d:k?1:d;H[g>>2]=d;n=d+n|0;d=(a|0)==(c|0);a=a+1|0;if(!d){continue}break}if((n|0)==524288){break Bd}}H[r+16>>2]=0;H[r+8>>2]=0;H[r+12>>2]=0;l=0;if(f){if(f>>>0>=1073741824){break a}a=f<<2;l=ra(a);H[r+8>>2]=l;s=a+l|0;H[r+16>>2]=s;ta(l,0,a);H[r+12>>2]=s}a=0;Dd:{if((c|0)<0){break Dd}i=c+1|0;d=i&7;if(c>>>0>=7){i=i&-8;m=0;while(1){H[(a<<2)+l>>2]=a;f=a|1;H[(f<<2)+l>>2]=f;f=a|2;H[(f<<2)+l>>2]=f;f=a|3;H[(f<<2)+l>>2]=f;f=a|4;H[(f<<2)+l>>2]=f;f=a|5;H[(f<<2)+l>>2]=f;f=a|6;H[(f<<2)+l>>2]=f;f=a|7;H[(f<<2)+l>>2]=f;a=a+8|0;m=m+8|0;if((i|0)!=(m|0)){continue}break}}if(!d){break Dd}m=0;while(1){H[(a<<2)+l>>2]=a;a=a+1|0;m=m+1|0;if((d|0)!=(m|0)){continue}break}}H[r+24>>2]=h;a=s-l|0;d=a>>2;Ed:{Fd:{if((a|0)>=513){a=d;while(1){i=ra(a<<2);if(i){break Fd}i=a>>>0>1;a=a>>>1|0;if(i){continue}break}}Zb(l,s,r+24|0,d,0,0);break Ed}Zb(l,s,r+24|0,d,i,a);qa(i)}if((n|0)<524288){a=H[h>>2]+(H[s-4>>2]<<3)|0;H[a>>2]=(H[a>>2]-n|0)+524288;a=0;break Ad}if((c|0)>0){g=H[h>>2];m=n-524288|0;while(1){q=524288/+(n|0);d=c;while(1){Gd:{Hd:{i=g+(H[(d<<2)+l>>2]<<3)|0;a=H[i>>2];if(a>>>0>=2){k=i;o=a;v=T(q*+(a>>>0));Id:{if(P(v)<2147483648){f=~~v;break Id}f=-2147483648}i=(a|0)==(f|0)?1:a-f|0;a=(a|0)>(i|0)?i:a-1|0;a=(a|0)<(m|0)?a:m;H[k>>2]=o-a;m=m-a|0;n=n-a|0;if((n|0)!=524288){break Hd}n=524288;break Gd}if((c|0)!=(d|0)){break Gd}a=1;break Ad}a=(d|0)>1;d=d-1|0;if(a){continue}}break}a=0;if((m|0)>0){continue}break}break Ad}a=0;if(n>>>0<524289){break Ad}while(1)continue}if((c|0)<0){break yd}break zd}d=H[r+8>>2];if(d){qa(d)}if((c|0)<0|a){break yd}}i=c+1|0;g=i&3;d=H[h>>2];n=0;m=0;a=0;if(c>>>0>=3){j=i&-4;l=0;while(1){f=m<<3;k=f+d|0;H[k+4>>2]=a;o=d+(f|8)|0;a=H[k>>2]+a|0;H[o+4>>2]=a;k=d+(f|16)|0;a=a+H[o>>2]|0;H[k+4>>2]=a;f=d+(f|24)|0;a=a+H[k>>2]|0;H[f+4>>2]=a;a=a+H[f>>2]|0;m=m+4|0;l=l+4|0;if((j|0)!=(l|0)){continue}break}}if(g){while(1){f=d+(m<<3)|0;H[f+4>>2]=a;m=m+1|0;a=H[f>>2]+a|0;n=n+1|0;if((g|0)!=(n|0)){continue}break}}if((a|0)!=524288){break yd}a=0;q=0;Jd:{if((c|0)<0){break Jd}f=H[h>>2];if(c){c=i&-2;d=0;while(1){g=a<<3;j=H[g+f>>2];if(j){g=g+p|0;q=(+K[g>>2]+ +K[g+4>>2]*4294967296)*za(+(j>>>0)*19073486328125e-19)+q}g=(a|1)<<3;j=H[g+f>>2];if(j){g=g+p|0;q=(+K[g>>2]+ +K[g+4>>2]*4294967296)*za(+(j>>>0)*19073486328125e-19)+q}a=a+2|0;d=d+2|0;if((c|0)!=(d|0)){continue}break}}if(!(i&1)){break Jd}a=a<<3;c=H[a+f>>2];if(!c){break Jd}a=a+p|0;q=(+K[a>>2]+ +K[a+4>>2]*4294967296)*za(+(c>>>0)*19073486328125e-19)+q}q=U(-q);Kd:{if(q<0x10000000000000000&q>=0){c=P(q)>=1?~~(q>0?R(T(q*2.3283064365386963e-10),4294967295):U((q-+(~~q>>>0>>>0))*2.3283064365386963e-10))>>>0:0;a=~~q>>>0;break Kd}c=0;a=0}H[h+16>>2]=a;H[h+20>>2]=c;Xa(h,e)}da=r+32|0;d=H[h+16>>2];a=H[h+20>>2];c=H[e+4>>2]-H[e>>2]|0;H[h+40>>2]=c;H[h+44>>2]=0;f=a<<1|d>>>31;a=(d<<1)+39|0;o=a>>>0<39?f+1|0:f;a=c+((o&7)<<29|a>>>3)|0;g=o>>>3|0;g=a>>>0>>0?g+1|0:g;a=a+8|0;Ma(e,a);a=H[e>>2];H[h+28>>2]=0;H[h+32>>2]=2097152;H[h+24>>2]=a+H[h+40>>2];if((b|0)>0){a=2097152;while(1){c=b-1|0;i=H[h>>2]+(H[t+(c<<2)>>2]<<3)|0;d=H[i>>2];f=d<<10;if(f>>>0<=a>>>0){while(1){g=H[h+28>>2];H[h+28>>2]=g+1;F[g+H[h+24>>2]|0]=a;a=H[h+32>>2]>>>8|0;H[h+32>>2]=a;if(a>>>0>=f>>>0){continue}break}}g=H[i+4>>2];i=(a>>>0)/(d>>>0)|0;a=g+((i<<19)+(a-N(d,i)|0)|0)|0;H[h+32>>2]=a;d=(b|0)>1;b=c;if(d){continue}break}}b=da-32|0;da=b;c=H[e>>2]+H[h+40>>2]|0;d=H[h+32>>2];a=d-2097152|0;Ld:{if(a>>>0<=63){F[H[h+24>>2]+H[h+28>>2]|0]=a;a=H[h+28>>2]+1|0;break Ld}if(a>>>0<=16383){a=H[h+24>>2]+H[h+28>>2]|0;d=d-2080768|0;F[a|0]=d;F[a+1|0]=d>>>8;a=H[h+28>>2]+2|0;break Ld}if(a>>>0<=4194303){a=H[h+24>>2]+H[h+28>>2]|0;d=d+6291456|0;F[a+2|0]=d>>>16;F[a+1|0]=d>>>8;F[a|0]=d;a=H[h+28>>2]+3|0;break Ld}if(a>>>0<=1073741823){a=H[h+24>>2]+H[h+28>>2]|0;d=d-1075838976|0;F[a|0]=d;F[a+1|0]=d>>>8;F[a+2|0]=d>>>16;F[a+3|0]=d>>>24;a=H[h+28>>2]+4|0;break Ld}a=H[h+28>>2]}H[b>>2]=0;H[b+4>>2]=0;F[b+24|0]=0;H[b+16>>2]=0;H[b+20>>2]=0;H[b+8>>2]=0;H[b+12>>2]=0;f=a>>31;yb(a,f,b);d=H[b+4>>2]-H[b>>2]|0;xa(d+c|0,c,a);sa(c,H[b>>2],d);i=H[h+44>>2];c=a+d|0;f=c>>>0>>0?f+1|0:f;a=c+H[h+40>>2]|0;Ma(e,a);a=H[b+12>>2];H[b+12>>2]=0;if(a){qa(a)}a=H[b>>2];if(a){H[b+4>>2]=a;qa(a)}da=b+32|0;a=H[h>>2];if(a){H[h+4>>2]=a;qa(a)}a=H[h+48>>2];if(a){qa(a)}da=h- -64|0;break td}p=1;break v;case 13:t=a;l=0;n=0;d=0;s=0;u=0;i=0;h=da+-64|0;da=h;H[h+56>>2]=0;H[h+48>>2]=0;H[h+52>>2]=0;Md:{a=m+1|0;if(a){if(a>>>0>=536870912){break a}a=a<<3;p=ra(a);H[h+48>>2]=p;l=a+p|0;H[h+56>>2]=l;ta(p,0,(m<<3)+8|0);H[h+52>>2]=l}Nd:{if((b|0)<=0){break Nd}a=0;if(b-1>>>0>=3){j=b&-4;while(1){c=a<<2;f=(H[c+t>>2]<<3)+p|0;k=H[f+4>>2];g=H[f>>2]+1|0;k=g?k:k+1|0;H[f>>2]=g;H[f+4>>2]=k;f=(H[t+(c|4)>>2]<<3)+p|0;g=H[f+4>>2];k=H[f>>2]+1|0;g=k?g:g+1|0;H[f>>2]=k;H[f+4>>2]=g;f=(H[t+(c|8)>>2]<<3)+p|0;o=H[f+4>>2];g=H[f>>2]+1|0;o=g?o:o+1|0;H[f>>2]=g;H[f+4>>2]=o;c=(H[t+(c|12)>>2]<<3)+p|0;k=H[c+4>>2];f=H[c>>2]+1|0;k=f?k:k+1|0;H[c>>2]=f;H[c+4>>2]=k;a=a+4|0;n=n+4|0;if((j|0)!=(n|0)){continue}break}}f=b&3;if(!f){break Nd}while(1){c=(H[t+(a<<2)>>2]<<3)+p|0;g=H[c+4>>2];j=H[c>>2]+1|0;g=j?g:g+1|0;H[c>>2]=j;H[c+4>>2]=g;a=a+1|0;d=d+1|0;if((f|0)!=(d|0)){continue}break}}H[h+8>>2]=0;H[h+12>>2]=0;H[h+16>>2]=0;H[h+20>>2]=0;H[h+24>>2]=0;H[h+28>>2]=0;H[h+32>>2]=0;H[h>>2]=0;H[h+4>>2]=0;H[h+40>>2]=0;H[h+44>>2]=0;m=0;d=0;c=0;r=da-32|0;da=r;a=l-p>>3;Od:{if((a|0)<=0){break Od}l=a&3;Pd:{if(a-1>>>0<3){a=0;break Pd}C=a&-4;a=0;while(1){D=a|1;g=(D<<3)+p|0;f=H[g+4>>2];o=H[g>>2];B=a|2;j=(B<<3)+p|0;g=H[j+4>>2];n=H[j>>2];x=a|3;k=(x<<3)+p|0;j=H[k+4>>2];y=H[k>>2];w=c;c=(a<<3)+p|0;A=H[c+4>>2];k=H[c>>2];c=j|y?x:g|n?B:f|o?D:!(A|k)?w:a;w=n;x=o;o=i+A|0;n=k+u|0;o=n>>>0>>0?o+1|0:o;i=x+n|0;k=f+o|0;k=i>>>0>>0?k+1|0:k;o=i;i=w+i|0;f=g+k|0;f=i>>>0>>0?f+1|0:f;g=i;i=g+y|0;f=f+j|0;u=i;i=g>>>0>i>>>0?f+1|0:f;a=a+4|0;d=d+4|0;if((C|0)!=(d|0)){continue}break}}if(!l){break Od}while(1){g=c;c=(a<<3)+p|0;f=H[c+4>>2];d=H[c>>2];c=!(f|d)?g:a;a=a+1|0;g=f+i|0;j=d+u|0;g=j>>>0>>0?g+1|0:g;u=j;i=g;m=m+1|0;if((l|0)!=(m|0)){continue}break}}f=c+1|0;H[h+12>>2]=f;d=H[h>>2];a=H[h+4>>2]-d>>3;Qd:{if(a>>>0>>0){Ya(h,f-a|0);break Qd}if(a>>>0<=f>>>0){break Qd}H[h+4>>2]=d+(f<<3)}n=0;Rd:{Sd:{Td:{Ud:{if((c|0)>=0){v=+(u>>>0)+ +(i>>>0)*4294967296;i=H[h>>2];a=0;while(1){g=a<<3;j=g+p|0;d=H[j+4>>2];j=H[j>>2];k=(d|j)!=0;g=g+i|0;q=(+(j>>>0)+ +(d>>>0)*4294967296)/v*1048576+.5;Vd:{if(q<4294967296&q>=0){d=~~q>>>0;break Vd}d=0}d=d?d:k?1:d;H[g>>2]=d;n=d+n|0;d=(a|0)==(c|0);a=a+1|0;if(!d){continue}break}if((n|0)==1048576){break Ud}}H[r+16>>2]=0;H[r+8>>2]=0;H[r+12>>2]=0;l=0;if(f){if(f>>>0>=1073741824){break a}a=f<<2;l=ra(a);H[r+8>>2]=l;s=a+l|0;H[r+16>>2]=s;ta(l,0,a);H[r+12>>2]=s}a=0;Wd:{if((c|0)<0){break Wd}i=c+1|0;d=i&7;if(c>>>0>=7){i=i&-8;m=0;while(1){H[(a<<2)+l>>2]=a;f=a|1;H[(f<<2)+l>>2]=f;f=a|2;H[(f<<2)+l>>2]=f;f=a|3;H[(f<<2)+l>>2]=f;f=a|4;H[(f<<2)+l>>2]=f;f=a|5;H[(f<<2)+l>>2]=f;f=a|6;H[(f<<2)+l>>2]=f;f=a|7;H[(f<<2)+l>>2]=f;a=a+8|0;m=m+8|0;if((i|0)!=(m|0)){continue}break}}if(!d){break Wd}m=0;while(1){H[(a<<2)+l>>2]=a;a=a+1|0;m=m+1|0;if((d|0)!=(m|0)){continue}break}}H[r+24>>2]=h;a=s-l|0;d=a>>2;Xd:{Yd:{if((a|0)>=513){a=d;while(1){i=ra(a<<2);if(i){break Yd}i=a>>>0>1;a=a>>>1|0;if(i){continue}break}}Yb(l,s,r+24|0,d,0,0);break Xd}Yb(l,s,r+24|0,d,i,a);qa(i)}if((n|0)<1048576){a=H[h>>2]+(H[s-4>>2]<<3)|0;H[a>>2]=(H[a>>2]-n|0)- -1048576;a=0;break Td}if((c|0)>0){g=H[h>>2];m=n+-1048576|0;while(1){q=1048576/+(n|0);d=c;while(1){Zd:{_d:{i=g+(H[(d<<2)+l>>2]<<3)|0;a=H[i>>2];if(a>>>0>=2){k=i;o=a;v=T(q*+(a>>>0));$d:{if(P(v)<2147483648){f=~~v;break $d}f=-2147483648}i=(a|0)==(f|0)?1:a-f|0;a=(a|0)>(i|0)?i:a-1|0;a=(a|0)<(m|0)?a:m;H[k>>2]=o-a;m=m-a|0;n=n-a|0;if((n|0)!=1048576){break _d}n=1048576;break Zd}if((c|0)!=(d|0)){break Zd}a=1;break Td}a=(d|0)>1;d=d-1|0;if(a){continue}}break}a=0;if((m|0)>0){continue}break}break Td}a=0;if(n>>>0<1048577){break Td}while(1)continue}if((c|0)<0){break Rd}break Sd}d=H[r+8>>2];if(d){qa(d)}if((c|0)<0|a){break Rd}}i=c+1|0;g=i&3;d=H[h>>2];n=0;m=0;a=0;if(c>>>0>=3){j=i&-4;l=0;while(1){f=m<<3;k=f+d|0;H[k+4>>2]=a;o=d+(f|8)|0;a=H[k>>2]+a|0;H[o+4>>2]=a;k=d+(f|16)|0;a=a+H[o>>2]|0;H[k+4>>2]=a;f=d+(f|24)|0;a=a+H[k>>2]|0;H[f+4>>2]=a;a=a+H[f>>2]|0;m=m+4|0;l=l+4|0;if((j|0)!=(l|0)){continue}break}}if(g){while(1){f=d+(m<<3)|0;H[f+4>>2]=a;m=m+1|0;a=H[f>>2]+a|0;n=n+1|0;if((g|0)!=(n|0)){continue}break}}if((a|0)!=1048576){break Rd}a=0;q=0;ae:{if((c|0)<0){break ae}f=H[h>>2];if(c){c=i&-2;d=0;while(1){g=a<<3;j=H[g+f>>2];if(j){g=g+p|0;q=(+K[g>>2]+ +K[g+4>>2]*4294967296)*za(+(j>>>0)*9.5367431640625e-7)+q}g=(a|1)<<3;j=H[g+f>>2];if(j){g=g+p|0;q=(+K[g>>2]+ +K[g+4>>2]*4294967296)*za(+(j>>>0)*9.5367431640625e-7)+q}a=a+2|0;d=d+2|0;if((c|0)!=(d|0)){continue}break}}if(!(i&1)){break ae}a=a<<3;c=H[a+f>>2];if(!c){break ae}a=a+p|0;q=(+K[a>>2]+ +K[a+4>>2]*4294967296)*za(+(c>>>0)*9.5367431640625e-7)+q}q=U(-q);be:{if(q<0x10000000000000000&q>=0){c=P(q)>=1?~~(q>0?R(T(q*2.3283064365386963e-10),4294967295):U((q-+(~~q>>>0>>>0))*2.3283064365386963e-10))>>>0:0;a=~~q>>>0;break be}c=0;a=0}H[h+16>>2]=a;H[h+20>>2]=c;Xa(h,e)}da=r+32|0;d=H[h+16>>2];a=H[h+20>>2];c=H[e+4>>2]-H[e>>2]|0;H[h+40>>2]=c;H[h+44>>2]=0;f=a<<1|d>>>31;a=(d<<1)+39|0;o=a>>>0<39?f+1|0:f;a=c+((o&7)<<29|a>>>3)|0;f=o>>>3|0;f=a>>>0>>0?f+1|0:f;a=a+8|0;Ma(e,a);a=H[e>>2];H[h+28>>2]=0;H[h+32>>2]=4194304;H[h+24>>2]=a+H[h+40>>2];if((b|0)>0){a=4194304;while(1){c=b-1|0;i=H[h>>2]+(H[t+(c<<2)>>2]<<3)|0;d=H[i>>2];f=d<<10;if(f>>>0<=a>>>0){while(1){g=H[h+28>>2];H[h+28>>2]=g+1;F[g+H[h+24>>2]|0]=a;a=H[h+32>>2]>>>8|0;H[h+32>>2]=a;if(a>>>0>=f>>>0){continue}break}}g=H[i+4>>2];i=(a>>>0)/(d>>>0)|0;a=g+((i<<20)+(a-N(d,i)|0)|0)|0;H[h+32>>2]=a;d=(b|0)>1;b=c;if(d){continue}break}}qc(h,e);a=H[h>>2];if(a){H[h+4>>2]=a;qa(a)}a=H[h+48>>2];if(a){qa(a)}da=h- -64|0;break Md}p=1;break v;case 14:t=a;l=0;n=0;d=0;s=0;u=0;i=0;h=da+-64|0;da=h;H[h+56>>2]=0;H[h+48>>2]=0;H[h+52>>2]=0;ce:{a=m+1|0;if(a){if(a>>>0>=536870912){break a}a=a<<3;p=ra(a);H[h+48>>2]=p;l=a+p|0;H[h+56>>2]=l;ta(p,0,(m<<3)+8|0);H[h+52>>2]=l}de:{if((b|0)<=0){break de}a=0;if(b-1>>>0>=3){k=b&-4;while(1){c=a<<2;g=(H[c+t>>2]<<3)+p|0;f=H[g+4>>2];j=H[g>>2]+1|0;f=j?f:f+1|0;H[g>>2]=j;H[g+4>>2]=f;f=(H[t+(c|4)>>2]<<3)+p|0;o=H[f+4>>2];g=H[f>>2]+1|0;o=g?o:o+1|0;H[f>>2]=g;H[f+4>>2]=o;f=(H[t+(c|8)>>2]<<3)+p|0;j=H[f+4>>2];g=H[f>>2]+1|0;j=g?j:j+1|0;H[f>>2]=g;H[f+4>>2]=j;c=(H[t+(c|12)>>2]<<3)+p|0;f=H[c+4>>2];g=H[c>>2]+1|0;f=g?f:f+1|0;H[c>>2]=g;H[c+4>>2]=f;a=a+4|0;n=n+4|0;if((k|0)!=(n|0)){continue}break}}f=b&3;if(!f){break de}while(1){c=(H[t+(a<<2)>>2]<<3)+p|0;o=H[c+4>>2];g=H[c>>2]+1|0;o=g?o:o+1|0;H[c>>2]=g;H[c+4>>2]=o;a=a+1|0;d=d+1|0;if((f|0)!=(d|0)){continue}break}}H[h+8>>2]=0;H[h+12>>2]=0;H[h+16>>2]=0;H[h+20>>2]=0;H[h+24>>2]=0;H[h+28>>2]=0;H[h+32>>2]=0;H[h>>2]=0;H[h+4>>2]=0;H[h+40>>2]=0;H[h+44>>2]=0;m=0;d=0;c=0;r=da-32|0;da=r;a=l-p>>3;ee:{if((a|0)<=0){break ee}l=a&3;fe:{if(a-1>>>0<3){a=0;break fe}D=a&-4;a=0;while(1){o=a|1;g=(o<<3)+p|0;f=H[g+4>>2];n=H[g>>2];B=a|2;j=(B<<3)+p|0;g=H[j+4>>2];y=H[j>>2];x=a|3;k=(x<<3)+p|0;j=H[k+4>>2];A=H[k>>2];w=c;c=(a<<3)+p|0;C=H[c+4>>2];k=H[c>>2];c=j|A?x:g|y?B:f|n?o:!(C|k)?w:a;o=j;w=n;j=i+C|0;n=k+u|0;j=n>>>0>>0?j+1|0:j;k=n;i=w+k|0;f=f+j|0;f=i>>>0>>0?f+1|0:f;j=i;i=i+y|0;f=f+g|0;f=i>>>0>>0?f+1|0:f;g=i;i=g+A|0;k=f+o|0;u=i;i=g>>>0>i>>>0?k+1|0:k;a=a+4|0;d=d+4|0;if((D|0)!=(d|0)){continue}break}}if(!l){break ee}while(1){g=c;c=(a<<3)+p|0;f=H[c+4>>2];d=H[c>>2];c=!(f|d)?g:a;a=a+1|0;o=f+i|0;g=d+u|0;o=g>>>0>>0?o+1|0:o;u=g;i=o;m=m+1|0;if((l|0)!=(m|0)){continue}break}}f=c+1|0;H[h+12>>2]=f;d=H[h>>2];a=H[h+4>>2]-d>>3;ge:{if(a>>>0>>0){Ya(h,f-a|0);break ge}if(a>>>0<=f>>>0){break ge}H[h+4>>2]=d+(f<<3)}n=0;he:{ie:{je:{ke:{if((c|0)>=0){v=+(u>>>0)+ +(i>>>0)*4294967296;i=H[h>>2];a=0;while(1){g=a<<3;j=g+p|0;d=H[j+4>>2];j=H[j>>2];k=(d|j)!=0;g=g+i|0;q=(+(j>>>0)+ +(d>>>0)*4294967296)/v*1048576+.5;le:{if(q<4294967296&q>=0){d=~~q>>>0;break le}d=0}d=d?d:k?1:d;H[g>>2]=d;n=d+n|0;d=(a|0)==(c|0);a=a+1|0;if(!d){continue}break}if((n|0)==1048576){break ke}}H[r+16>>2]=0;H[r+8>>2]=0;H[r+12>>2]=0;l=0;if(f){if(f>>>0>=1073741824){break a}a=f<<2;l=ra(a);H[r+8>>2]=l;s=a+l|0;H[r+16>>2]=s;ta(l,0,a);H[r+12>>2]=s}a=0;me:{if((c|0)<0){break me}i=c+1|0;d=i&7;if(c>>>0>=7){i=i&-8;m=0;while(1){H[(a<<2)+l>>2]=a;f=a|1;H[(f<<2)+l>>2]=f;f=a|2;H[(f<<2)+l>>2]=f;f=a|3;H[(f<<2)+l>>2]=f;f=a|4;H[(f<<2)+l>>2]=f;f=a|5;H[(f<<2)+l>>2]=f;f=a|6;H[(f<<2)+l>>2]=f;f=a|7;H[(f<<2)+l>>2]=f;a=a+8|0;m=m+8|0;if((i|0)!=(m|0)){continue}break}}if(!d){break me}m=0;while(1){H[(a<<2)+l>>2]=a;a=a+1|0;m=m+1|0;if((d|0)!=(m|0)){continue}break}}H[r+24>>2]=h;a=s-l|0;d=a>>2;ne:{oe:{if((a|0)>=513){a=d;while(1){i=ra(a<<2);if(i){break oe}i=a>>>0>1;a=a>>>1|0;if(i){continue}break}}Xb(l,s,r+24|0,d,0,0);break ne}Xb(l,s,r+24|0,d,i,a);qa(i)}if((n|0)<1048576){a=H[h>>2]+(H[s-4>>2]<<3)|0;H[a>>2]=(H[a>>2]-n|0)- -1048576;a=0;break je}if((c|0)>0){g=H[h>>2];m=n+-1048576|0;while(1){q=1048576/+(n|0);d=c;while(1){pe:{qe:{i=g+(H[(d<<2)+l>>2]<<3)|0;a=H[i>>2];if(a>>>0>=2){k=i;o=a;v=T(q*+(a>>>0));re:{if(P(v)<2147483648){f=~~v;break re}f=-2147483648}i=(a|0)==(f|0)?1:a-f|0;a=(a|0)>(i|0)?i:a-1|0;a=(a|0)<(m|0)?a:m;H[k>>2]=o-a;m=m-a|0;n=n-a|0;if((n|0)!=1048576){break qe}n=1048576;break pe}if((c|0)!=(d|0)){break pe}a=1;break je}a=(d|0)>1;d=d-1|0;if(a){continue}}break}a=0;if((m|0)>0){continue}break}break je}a=0;if(n>>>0<1048577){break je}while(1)continue}if((c|0)<0){break he}break ie}d=H[r+8>>2];if(d){qa(d)}if((c|0)<0|a){break he}}i=c+1|0;g=i&3;d=H[h>>2];n=0;m=0;a=0;if(c>>>0>=3){j=i&-4;l=0;while(1){f=m<<3;k=f+d|0;H[k+4>>2]=a;o=d+(f|8)|0;a=H[k>>2]+a|0;H[o+4>>2]=a;k=d+(f|16)|0;a=a+H[o>>2]|0;H[k+4>>2]=a;f=d+(f|24)|0;a=a+H[k>>2]|0;H[f+4>>2]=a;a=a+H[f>>2]|0;m=m+4|0;l=l+4|0;if((j|0)!=(l|0)){continue}break}}if(g){while(1){f=d+(m<<3)|0;H[f+4>>2]=a;m=m+1|0;a=H[f>>2]+a|0;n=n+1|0;if((g|0)!=(n|0)){continue}break}}if((a|0)!=1048576){break he}a=0;q=0;se:{if((c|0)<0){break se}f=H[h>>2];if(c){c=i&-2;d=0;while(1){g=a<<3;j=H[g+f>>2];if(j){g=g+p|0;q=(+K[g>>2]+ +K[g+4>>2]*4294967296)*za(+(j>>>0)*9.5367431640625e-7)+q}g=(a|1)<<3;j=H[g+f>>2];if(j){g=g+p|0;q=(+K[g>>2]+ +K[g+4>>2]*4294967296)*za(+(j>>>0)*9.5367431640625e-7)+q}a=a+2|0;d=d+2|0;if((c|0)!=(d|0)){continue}break}}if(!(i&1)){break se}a=a<<3;c=H[a+f>>2];if(!c){break se}a=a+p|0;q=(+K[a>>2]+ +K[a+4>>2]*4294967296)*za(+(c>>>0)*9.5367431640625e-7)+q}q=U(-q);te:{if(q<0x10000000000000000&q>=0){c=P(q)>=1?~~(q>0?R(T(q*2.3283064365386963e-10),4294967295):U((q-+(~~q>>>0>>>0))*2.3283064365386963e-10))>>>0:0;a=~~q>>>0;break te}c=0;a=0}H[h+16>>2]=a;H[h+20>>2]=c;Xa(h,e)}da=r+32|0;d=H[h+16>>2];a=H[h+20>>2];c=H[e+4>>2]-H[e>>2]|0;H[h+40>>2]=c;H[h+44>>2]=0;f=a<<1|d>>>31;a=(d<<1)+39|0;j=a>>>0<39?f+1|0:f;a=c+((j&7)<<29|a>>>3)|0;k=j>>>3|0;k=a>>>0>>0?k+1|0:k;a=a+8|0;Ma(e,a);a=H[e>>2];H[h+28>>2]=0;H[h+32>>2]=4194304;H[h+24>>2]=a+H[h+40>>2];if((b|0)>0){a=4194304;while(1){c=b-1|0;i=H[h>>2]+(H[t+(c<<2)>>2]<<3)|0;d=H[i>>2];f=d<<10;if(f>>>0<=a>>>0){while(1){g=H[h+28>>2];H[h+28>>2]=g+1;F[g+H[h+24>>2]|0]=a;a=H[h+32>>2]>>>8|0;H[h+32>>2]=a;if(a>>>0>=f>>>0){continue}break}}g=H[i+4>>2];i=(a>>>0)/(d>>>0)|0;a=g+((i<<20)+(a-N(d,i)|0)|0)|0;H[h+32>>2]=a;d=(b|0)>1;b=c;if(d){continue}break}}qc(h,e);a=H[h>>2];if(a){H[h+4>>2]=a;qa(a)}a=H[h+48>>2];if(a){qa(a)}da=h- -64|0;break ce}p=1;break v;case 15:t=a;l=0;n=0;d=0;s=0;u=0;i=0;h=da+-64|0;da=h;H[h+56>>2]=0;H[h+48>>2]=0;H[h+52>>2]=0;ue:{a=m+1|0;if(a){if(a>>>0>=536870912){break a}a=a<<3;p=ra(a);H[h+48>>2]=p;l=a+p|0;H[h+56>>2]=l;ta(p,0,(m<<3)+8|0);H[h+52>>2]=l}ve:{if((b|0)<=0){break ve}a=0;if(b-1>>>0>=3){k=b&-4;while(1){c=a<<2;g=(H[c+t>>2]<<3)+p|0;f=H[g+4>>2];j=H[g>>2]+1|0;f=j?f:f+1|0;H[g>>2]=j;H[g+4>>2]=f;f=(H[t+(c|4)>>2]<<3)+p|0;j=H[f+4>>2];g=H[f>>2]+1|0;j=g?j:j+1|0;H[f>>2]=g;H[f+4>>2]=j;f=(H[t+(c|8)>>2]<<3)+p|0;g=H[f+4>>2];j=H[f>>2]+1|0;g=j?g:g+1|0;H[f>>2]=j;H[f+4>>2]=g;c=(H[t+(c|12)>>2]<<3)+p|0;f=H[c+4>>2];g=H[c>>2]+1|0;f=g?f:f+1|0;H[c>>2]=g;H[c+4>>2]=f;a=a+4|0;n=n+4|0;if((k|0)!=(n|0)){continue}break}}f=b&3;if(!f){break ve}while(1){c=(H[t+(a<<2)>>2]<<3)+p|0;j=H[c+4>>2];g=H[c>>2]+1|0;j=g?j:j+1|0;H[c>>2]=g;H[c+4>>2]=j;a=a+1|0;d=d+1|0;if((f|0)!=(d|0)){continue}break}}H[h+8>>2]=0;H[h+12>>2]=0;H[h+16>>2]=0;H[h+20>>2]=0;H[h+24>>2]=0;H[h+28>>2]=0;H[h+32>>2]=0;H[h>>2]=0;H[h+4>>2]=0;H[h+40>>2]=0;H[h+44>>2]=0;m=0;d=0;c=0;r=da-32|0;da=r;a=l-p>>3;we:{if((a|0)<=0){break we}l=a&3;xe:{if(a-1>>>0<3){a=0;break xe}D=a&-4;a=0;while(1){o=a|1;g=(o<<3)+p|0;f=H[g+4>>2];n=H[g>>2];B=a|2;j=(B<<3)+p|0;g=H[j+4>>2];y=H[j>>2];x=a|3;k=(x<<3)+p|0;j=H[k+4>>2];A=H[k>>2];w=c;c=(a<<3)+p|0;C=H[c+4>>2];k=H[c>>2];c=j|A?x:g|y?B:f|n?o:!(C|k)?w:a;o=g;w=n;g=i+C|0;n=k+u|0;g=n>>>0>>0?g+1|0:g;k=n;i=w+k|0;f=f+g|0;f=i>>>0>>0?f+1|0:f;g=i;i=g+y|0;k=f+o|0;k=g>>>0>i>>>0?k+1|0:k;g=i;i=g+A|0;f=j+k|0;u=i;i=g>>>0>i>>>0?f+1|0:f;a=a+4|0;d=d+4|0;if((D|0)!=(d|0)){continue}break}}if(!l){break we}while(1){g=c;c=(a<<3)+p|0;f=H[c+4>>2];d=H[c>>2];c=!(f|d)?g:a;a=a+1|0;j=f+i|0;g=d+u|0;j=g>>>0>>0?j+1|0:j;u=g;i=j;m=m+1|0;if((l|0)!=(m|0)){continue}break}}f=c+1|0;H[h+12>>2]=f;d=H[h>>2];a=H[h+4>>2]-d>>3;ye:{if(a>>>0>>0){Ya(h,f-a|0);break ye}if(a>>>0<=f>>>0){break ye}H[h+4>>2]=d+(f<<3)}n=0;ze:{Ae:{Be:{Ce:{if((c|0)>=0){v=+(u>>>0)+ +(i>>>0)*4294967296;i=H[h>>2];a=0;while(1){g=a<<3;j=g+p|0;d=H[j+4>>2];j=H[j>>2];k=(d|j)!=0;g=g+i|0;q=(+(j>>>0)+ +(d>>>0)*4294967296)/v*1048576+.5;De:{if(q<4294967296&q>=0){d=~~q>>>0;break De}d=0}d=d?d:k?1:d;H[g>>2]=d;n=d+n|0;d=(a|0)==(c|0);a=a+1|0;if(!d){continue}break}if((n|0)==1048576){break Ce}}H[r+16>>2]=0;H[r+8>>2]=0;H[r+12>>2]=0;l=0;if(f){if(f>>>0>=1073741824){break a}a=f<<2;l=ra(a);H[r+8>>2]=l;s=a+l|0;H[r+16>>2]=s;ta(l,0,a);H[r+12>>2]=s}a=0;Ee:{if((c|0)<0){break Ee}i=c+1|0;d=i&7;if(c>>>0>=7){i=i&-8;m=0;while(1){H[(a<<2)+l>>2]=a;f=a|1;H[(f<<2)+l>>2]=f;f=a|2;H[(f<<2)+l>>2]=f;f=a|3;H[(f<<2)+l>>2]=f;f=a|4;H[(f<<2)+l>>2]=f;f=a|5;H[(f<<2)+l>>2]=f;f=a|6;H[(f<<2)+l>>2]=f;f=a|7;H[(f<<2)+l>>2]=f;a=a+8|0;m=m+8|0;if((i|0)!=(m|0)){continue}break}}if(!d){break Ee}m=0;while(1){H[(a<<2)+l>>2]=a;a=a+1|0;m=m+1|0;if((d|0)!=(m|0)){continue}break}}H[r+24>>2]=h;a=s-l|0;d=a>>2;Fe:{Ge:{if((a|0)>=513){a=d;while(1){i=ra(a<<2);if(i){break Ge}i=a>>>0>1;a=a>>>1|0;if(i){continue}break}}Wb(l,s,r+24|0,d,0,0);break Fe}Wb(l,s,r+24|0,d,i,a);qa(i)}if((n|0)<1048576){a=H[h>>2]+(H[s-4>>2]<<3)|0;H[a>>2]=(H[a>>2]-n|0)- -1048576;a=0;break Be}if((c|0)>0){g=H[h>>2];m=n+-1048576|0;while(1){q=1048576/+(n|0);d=c;while(1){He:{Ie:{i=g+(H[(d<<2)+l>>2]<<3)|0;a=H[i>>2];if(a>>>0>=2){k=i;o=a;v=T(q*+(a>>>0));Je:{if(P(v)<2147483648){f=~~v;break Je}f=-2147483648}i=(a|0)==(f|0)?1:a-f|0;a=(a|0)>(i|0)?i:a-1|0;a=(a|0)<(m|0)?a:m;H[k>>2]=o-a;m=m-a|0;n=n-a|0;if((n|0)!=1048576){break Ie}n=1048576;break He}if((c|0)!=(d|0)){break He}a=1;break Be}a=(d|0)>1;d=d-1|0;if(a){continue}}break}a=0;if((m|0)>0){continue}break}break Be}a=0;if(n>>>0<1048577){break Be}while(1)continue}if((c|0)<0){break ze}break Ae}d=H[r+8>>2];if(d){qa(d)}if((c|0)<0|a){break ze}}i=c+1|0;g=i&3;d=H[h>>2];n=0;m=0;a=0;if(c>>>0>=3){j=i&-4;l=0;while(1){f=m<<3;k=f+d|0;H[k+4>>2]=a;o=d+(f|8)|0;a=H[k>>2]+a|0;H[o+4>>2]=a;k=d+(f|16)|0;a=a+H[o>>2]|0;H[k+4>>2]=a;f=d+(f|24)|0;a=a+H[k>>2]|0;H[f+4>>2]=a;a=a+H[f>>2]|0;m=m+4|0;l=l+4|0;if((j|0)!=(l|0)){continue}break}}if(g){while(1){f=d+(m<<3)|0;H[f+4>>2]=a;m=m+1|0;a=H[f>>2]+a|0;n=n+1|0;if((g|0)!=(n|0)){continue}break}}if((a|0)!=1048576){break ze}a=0;q=0;Ke:{if((c|0)<0){break Ke}f=H[h>>2];if(c){c=i&-2;d=0;while(1){g=a<<3;j=H[g+f>>2];if(j){g=g+p|0;q=(+K[g>>2]+ +K[g+4>>2]*4294967296)*za(+(j>>>0)*9.5367431640625e-7)+q}g=(a|1)<<3;j=H[g+f>>2];if(j){g=g+p|0;q=(+K[g>>2]+ +K[g+4>>2]*4294967296)*za(+(j>>>0)*9.5367431640625e-7)+q}a=a+2|0;d=d+2|0;if((c|0)!=(d|0)){continue}break}}if(!(i&1)){break Ke}a=a<<3;c=H[a+f>>2];if(!c){break Ke}a=a+p|0;q=(+K[a>>2]+ +K[a+4>>2]*4294967296)*za(+(c>>>0)*9.5367431640625e-7)+q}q=U(-q);Le:{if(q<0x10000000000000000&q>=0){c=P(q)>=1?~~(q>0?R(T(q*2.3283064365386963e-10),4294967295):U((q-+(~~q>>>0>>>0))*2.3283064365386963e-10))>>>0:0;a=~~q>>>0;break Le}c=0;a=0}H[h+16>>2]=a;H[h+20>>2]=c;Xa(h,e)}da=r+32|0;d=H[h+16>>2];a=H[h+20>>2];c=H[e+4>>2]-H[e>>2]|0;H[h+40>>2]=c;H[h+44>>2]=0;k=a<<1|d>>>31;a=(d<<1)+39|0;g=k;g=a>>>0<39?g+1|0:g;f=g>>>3|0;a=c+((g&7)<<29|a>>>3)|0;f=a>>>0>>0?f+1|0:f;a=a+8|0;Ma(e,a);a=H[e>>2];H[h+28>>2]=0;H[h+32>>2]=4194304;H[h+24>>2]=a+H[h+40>>2];if((b|0)>0){a=4194304;while(1){c=b-1|0;i=H[h>>2]+(H[t+(c<<2)>>2]<<3)|0;d=H[i>>2];f=d<<10;if(f>>>0<=a>>>0){while(1){g=H[h+28>>2];H[h+28>>2]=g+1;F[g+H[h+24>>2]|0]=a;a=H[h+32>>2]>>>8|0;H[h+32>>2]=a;if(a>>>0>=f>>>0){continue}break}}g=H[i+4>>2];i=(a>>>0)/(d>>>0)|0;a=g+((i<<20)+(a-N(d,i)|0)|0)|0;H[h+32>>2]=a;d=(b|0)>1;b=c;if(d){continue}break}}qc(h,e);a=H[h>>2];if(a){H[h+4>>2]=a;qa(a)}a=H[h+48>>2];if(a){qa(a)}da=h- -64|0;break ue}p=1;break v;case 16:t=a;l=0;n=0;d=0;s=0;u=0;i=0;h=da+-64|0;da=h;H[h+56>>2]=0;H[h+48>>2]=0;H[h+52>>2]=0;Me:{a=m+1|0;if(a){if(a>>>0>=536870912){break a}a=a<<3;p=ra(a);H[h+48>>2]=p;l=a+p|0;H[h+56>>2]=l;ta(p,0,(m<<3)+8|0);H[h+52>>2]=l}Ne:{if((b|0)<=0){break Ne}a=0;if(b-1>>>0>=3){j=b&-4;while(1){c=a<<2;f=(H[c+t>>2]<<3)+p|0;k=H[f+4>>2];g=H[f>>2]+1|0;k=g?k:k+1|0;H[f>>2]=g;H[f+4>>2]=k;f=(H[t+(c|4)>>2]<<3)+p|0;g=H[f+4>>2];k=H[f>>2]+1|0;g=k?g:g+1|0;H[f>>2]=k;H[f+4>>2]=g;f=(H[t+(c|8)>>2]<<3)+p|0;o=H[f+4>>2];g=H[f>>2]+1|0;o=g?o:o+1|0;H[f>>2]=g;H[f+4>>2]=o;c=(H[t+(c|12)>>2]<<3)+p|0;k=H[c+4>>2];f=H[c>>2]+1|0;k=f?k:k+1|0;H[c>>2]=f;H[c+4>>2]=k;a=a+4|0;n=n+4|0;if((j|0)!=(n|0)){continue}break}}f=b&3;if(!f){break Ne}while(1){c=(H[t+(a<<2)>>2]<<3)+p|0;g=H[c+4>>2];j=H[c>>2]+1|0;g=j?g:g+1|0;H[c>>2]=j;H[c+4>>2]=g;a=a+1|0;d=d+1|0;if((f|0)!=(d|0)){continue}break}}H[h+8>>2]=0;H[h+12>>2]=0;H[h+16>>2]=0;H[h+20>>2]=0;H[h+24>>2]=0;H[h+28>>2]=0;H[h+32>>2]=0;H[h>>2]=0;H[h+4>>2]=0;H[h+40>>2]=0;H[h+44>>2]=0;m=0;d=0;c=0;r=da-32|0;da=r;a=l-p>>3;Oe:{if((a|0)<=0){break Oe}l=a&3;Pe:{if(a-1>>>0<3){a=0;break Pe}C=a&-4;a=0;while(1){D=a|1;g=(D<<3)+p|0;f=H[g+4>>2];o=H[g>>2];B=a|2;j=(B<<3)+p|0;g=H[j+4>>2];n=H[j>>2];x=a|3;k=(x<<3)+p|0;j=H[k+4>>2];y=H[k>>2];w=c;c=(a<<3)+p|0;A=H[c+4>>2];k=H[c>>2];c=j|y?x:g|n?B:f|o?D:!(A|k)?w:a;w=n;x=o;o=i+A|0;n=k+u|0;o=n>>>0>>0?o+1|0:o;i=x+n|0;k=f+o|0;k=i>>>0>>0?k+1|0:k;o=i;i=w+i|0;f=g+k|0;f=i>>>0>>0?f+1|0:f;g=i;i=g+y|0;f=f+j|0;u=i;i=g>>>0>i>>>0?f+1|0:f;a=a+4|0;d=d+4|0;if((C|0)!=(d|0)){continue}break}}if(!l){break Oe}while(1){g=c;c=(a<<3)+p|0;f=H[c+4>>2];d=H[c>>2];c=!(f|d)?g:a;a=a+1|0;g=f+i|0;j=d+u|0;g=j>>>0>>0?g+1|0:g;u=j;i=g;m=m+1|0;if((l|0)!=(m|0)){continue}break}}f=c+1|0;H[h+12>>2]=f;d=H[h>>2];a=H[h+4>>2]-d>>3;Qe:{if(a>>>0>>0){Ya(h,f-a|0);break Qe}if(a>>>0<=f>>>0){break Qe}H[h+4>>2]=d+(f<<3)}n=0;Re:{Se:{Te:{Ue:{if((c|0)>=0){v=+(u>>>0)+ +(i>>>0)*4294967296;i=H[h>>2];a=0;while(1){g=a<<3;j=g+p|0;d=H[j+4>>2];j=H[j>>2];k=(d|j)!=0;g=g+i|0;q=(+(j>>>0)+ +(d>>>0)*4294967296)/v*1048576+.5;Ve:{if(q<4294967296&q>=0){d=~~q>>>0;break Ve}d=0}d=d?d:k?1:d;H[g>>2]=d;n=d+n|0;d=(a|0)==(c|0);a=a+1|0;if(!d){continue}break}if((n|0)==1048576){break Ue}}H[r+16>>2]=0;H[r+8>>2]=0;H[r+12>>2]=0;l=0;if(f){if(f>>>0>=1073741824){break a}a=f<<2;l=ra(a);H[r+8>>2]=l;s=a+l|0;H[r+16>>2]=s;ta(l,0,a);H[r+12>>2]=s}a=0;We:{if((c|0)<0){break We}i=c+1|0;d=i&7;if(c>>>0>=7){i=i&-8;m=0;while(1){H[(a<<2)+l>>2]=a;f=a|1;H[(f<<2)+l>>2]=f;f=a|2;H[(f<<2)+l>>2]=f;f=a|3;H[(f<<2)+l>>2]=f;f=a|4;H[(f<<2)+l>>2]=f;f=a|5;H[(f<<2)+l>>2]=f;f=a|6;H[(f<<2)+l>>2]=f;f=a|7;H[(f<<2)+l>>2]=f;a=a+8|0;m=m+8|0;if((i|0)!=(m|0)){continue}break}}if(!d){break We}m=0;while(1){H[(a<<2)+l>>2]=a;a=a+1|0;m=m+1|0;if((d|0)!=(m|0)){continue}break}}H[r+24>>2]=h;a=s-l|0;d=a>>2;Xe:{Ye:{if((a|0)>=513){a=d;while(1){i=ra(a<<2);if(i){break Ye}i=a>>>0>1;a=a>>>1|0;if(i){continue}break}}Vb(l,s,r+24|0,d,0,0);break Xe}Vb(l,s,r+24|0,d,i,a);qa(i)}if((n|0)<1048576){a=H[h>>2]+(H[s-4>>2]<<3)|0;H[a>>2]=(H[a>>2]-n|0)- -1048576;a=0;break Te}if((c|0)>0){g=H[h>>2];m=n+-1048576|0;while(1){q=1048576/+(n|0);d=c;while(1){Ze:{_e:{i=g+(H[(d<<2)+l>>2]<<3)|0;a=H[i>>2];if(a>>>0>=2){k=i;o=a;v=T(q*+(a>>>0));$e:{if(P(v)<2147483648){f=~~v;break $e}f=-2147483648}i=(a|0)==(f|0)?1:a-f|0;a=(a|0)>(i|0)?i:a-1|0;a=(a|0)<(m|0)?a:m;H[k>>2]=o-a;m=m-a|0;n=n-a|0;if((n|0)!=1048576){break _e}n=1048576;break Ze}if((c|0)!=(d|0)){break Ze}a=1;break Te}a=(d|0)>1;d=d-1|0;if(a){continue}}break}a=0;if((m|0)>0){continue}break}break Te}a=0;if(n>>>0<1048577){break Te}while(1)continue}if((c|0)<0){break Re}break Se}d=H[r+8>>2];if(d){qa(d)}if((c|0)<0|a){break Re}}i=c+1|0;g=i&3;d=H[h>>2];n=0;m=0;a=0;if(c>>>0>=3){j=i&-4;l=0;while(1){f=m<<3;k=f+d|0;H[k+4>>2]=a;o=d+(f|8)|0;a=H[k>>2]+a|0;H[o+4>>2]=a;k=d+(f|16)|0;a=a+H[o>>2]|0;H[k+4>>2]=a;f=d+(f|24)|0;a=a+H[k>>2]|0;H[f+4>>2]=a;a=a+H[f>>2]|0;m=m+4|0;l=l+4|0;if((j|0)!=(l|0)){continue}break}}if(g){while(1){f=d+(m<<3)|0;H[f+4>>2]=a;m=m+1|0;a=H[f>>2]+a|0;n=n+1|0;if((g|0)!=(n|0)){continue}break}}if((a|0)!=1048576){break Re}a=0;q=0;af:{if((c|0)<0){break af}f=H[h>>2];if(c){c=i&-2;d=0;while(1){g=a<<3;j=H[g+f>>2];if(j){g=g+p|0;q=(+K[g>>2]+ +K[g+4>>2]*4294967296)*za(+(j>>>0)*9.5367431640625e-7)+q}g=(a|1)<<3;j=H[g+f>>2];if(j){g=g+p|0;q=(+K[g>>2]+ +K[g+4>>2]*4294967296)*za(+(j>>>0)*9.5367431640625e-7)+q}a=a+2|0;d=d+2|0;if((c|0)!=(d|0)){continue}break}}if(!(i&1)){break af}a=a<<3;c=H[a+f>>2];if(!c){break af}a=a+p|0;q=(+K[a>>2]+ +K[a+4>>2]*4294967296)*za(+(c>>>0)*9.5367431640625e-7)+q}q=U(-q);bf:{if(q<0x10000000000000000&q>=0){c=P(q)>=1?~~(q>0?R(T(q*2.3283064365386963e-10),4294967295):U((q-+(~~q>>>0>>>0))*2.3283064365386963e-10))>>>0:0;a=~~q>>>0;break bf}c=0;a=0}H[h+16>>2]=a;H[h+20>>2]=c;Xa(h,e)}da=r+32|0;d=H[h+16>>2];a=H[h+20>>2];c=H[e+4>>2]-H[e>>2]|0;H[h+40>>2]=c;H[h+44>>2]=0;f=a<<1|d>>>31;a=(d<<1)+39|0;o=a>>>0<39?f+1|0:f;a=c+((o&7)<<29|a>>>3)|0;f=o>>>3|0;f=a>>>0>>0?f+1|0:f;a=a+8|0;Ma(e,a);a=H[e>>2];H[h+28>>2]=0;H[h+32>>2]=4194304;H[h+24>>2]=a+H[h+40>>2];if((b|0)>0){a=4194304;while(1){c=b-1|0;i=H[h>>2]+(H[t+(c<<2)>>2]<<3)|0;d=H[i>>2];f=d<<10;if(f>>>0<=a>>>0){while(1){g=H[h+28>>2];H[h+28>>2]=g+1;F[g+H[h+24>>2]|0]=a;a=H[h+32>>2]>>>8|0;H[h+32>>2]=a;if(a>>>0>=f>>>0){continue}break}}g=H[i+4>>2];i=(a>>>0)/(d>>>0)|0;a=g+((i<<20)+(a-N(d,i)|0)|0)|0;H[h+32>>2]=a;d=(b|0)>1;b=c;if(d){continue}break}}qc(h,e);a=H[h>>2];if(a){H[h+4>>2]=a;qa(a)}a=H[h+48>>2];if(a){qa(a)}da=h- -64|0;break Me}p=1;break v;case 17:break E;default:break v}}t=a;l=0;n=0;d=0;s=0;u=0;i=0;h=da+-64|0;da=h;H[h+56>>2]=0;H[h+48>>2]=0;H[h+52>>2]=0;cf:{a=m+1|0;if(a){if(a>>>0>=536870912){break a}a=a<<3;p=ra(a);H[h+48>>2]=p;l=a+p|0;H[h+56>>2]=l;ta(p,0,(m<<3)+8|0);H[h+52>>2]=l}df:{if((b|0)<=0){break df}a=0;if(b-1>>>0>=3){k=b&-4;while(1){c=a<<2;g=(H[c+t>>2]<<3)+p|0;f=H[g+4>>2];j=H[g>>2]+1|0;f=j?f:f+1|0;H[g>>2]=j;H[g+4>>2]=f;f=(H[t+(c|4)>>2]<<3)+p|0;o=H[f+4>>2];g=H[f>>2]+1|0;o=g?o:o+1|0;H[f>>2]=g;H[f+4>>2]=o;f=(H[t+(c|8)>>2]<<3)+p|0;j=H[f+4>>2];g=H[f>>2]+1|0;j=g?j:j+1|0;H[f>>2]=g;H[f+4>>2]=j;c=(H[t+(c|12)>>2]<<3)+p|0;f=H[c+4>>2];g=H[c>>2]+1|0;f=g?f:f+1|0;H[c>>2]=g;H[c+4>>2]=f;a=a+4|0;n=n+4|0;if((k|0)!=(n|0)){continue}break}}f=b&3;if(!f){break df}while(1){c=(H[t+(a<<2)>>2]<<3)+p|0;o=H[c+4>>2];g=H[c>>2]+1|0;o=g?o:o+1|0;H[c>>2]=g;H[c+4>>2]=o;a=a+1|0;d=d+1|0;if((f|0)!=(d|0)){continue}break}}H[h+8>>2]=0;H[h+12>>2]=0;H[h+16>>2]=0;H[h+20>>2]=0;H[h+24>>2]=0;H[h+28>>2]=0;H[h+32>>2]=0;H[h>>2]=0;H[h+4>>2]=0;H[h+40>>2]=0;H[h+44>>2]=0;m=0;d=0;c=0;r=da-32|0;da=r;a=l-p>>3;ef:{if((a|0)<=0){break ef}l=a&3;ff:{if(a-1>>>0<3){a=0;break ff}D=a&-4;a=0;while(1){o=a|1;g=(o<<3)+p|0;f=H[g+4>>2];n=H[g>>2];B=a|2;j=(B<<3)+p|0;g=H[j+4>>2];y=H[j>>2];x=a|3;k=(x<<3)+p|0;j=H[k+4>>2];A=H[k>>2];w=c;c=(a<<3)+p|0;C=H[c+4>>2];k=H[c>>2];c=j|A?x:g|y?B:f|n?o:!(C|k)?w:a;o=j;w=n;j=i+C|0;n=k+u|0;j=n>>>0>>0?j+1|0:j;k=n;i=w+k|0;f=f+j|0;f=i>>>0>>0?f+1|0:f;j=i;i=i+y|0;f=f+g|0;f=i>>>0>>0?f+1|0:f;g=i;i=g+A|0;k=f+o|0;u=i;i=g>>>0>i>>>0?k+1|0:k;a=a+4|0;d=d+4|0;if((D|0)!=(d|0)){continue}break}}if(!l){break ef}while(1){g=c;c=(a<<3)+p|0;f=H[c+4>>2];d=H[c>>2];c=!(f|d)?g:a;a=a+1|0;o=f+i|0;g=d+u|0;o=g>>>0>>0?o+1|0:o;u=g;i=o;m=m+1|0;if((l|0)!=(m|0)){continue}break}}f=c+1|0;H[h+12>>2]=f;d=H[h>>2];a=H[h+4>>2]-d>>3;gf:{if(a>>>0>>0){Ya(h,f-a|0);break gf}if(a>>>0<=f>>>0){break gf}H[h+4>>2]=d+(f<<3)}n=0;hf:{jf:{kf:{lf:{if((c|0)>=0){v=+(u>>>0)+ +(i>>>0)*4294967296;i=H[h>>2];a=0;while(1){g=a<<3;j=g+p|0;d=H[j+4>>2];j=H[j>>2];k=(d|j)!=0;g=g+i|0;q=(+(j>>>0)+ +(d>>>0)*4294967296)/v*1048576+.5;mf:{if(q<4294967296&q>=0){d=~~q>>>0;break mf}d=0}d=d?d:k?1:d;H[g>>2]=d;n=d+n|0;d=(a|0)==(c|0);a=a+1|0;if(!d){continue}break}if((n|0)==1048576){break lf}}H[r+16>>2]=0;H[r+8>>2]=0;H[r+12>>2]=0;l=0;if(f){if(f>>>0>=1073741824){break a}a=f<<2;l=ra(a);H[r+8>>2]=l;s=a+l|0;H[r+16>>2]=s;ta(l,0,a);H[r+12>>2]=s}a=0;nf:{if((c|0)<0){break nf}i=c+1|0;d=i&7;if(c>>>0>=7){i=i&-8;m=0;while(1){H[(a<<2)+l>>2]=a;f=a|1;H[(f<<2)+l>>2]=f;f=a|2;H[(f<<2)+l>>2]=f;f=a|3;H[(f<<2)+l>>2]=f;f=a|4;H[(f<<2)+l>>2]=f;f=a|5;H[(f<<2)+l>>2]=f;f=a|6;H[(f<<2)+l>>2]=f;f=a|7;H[(f<<2)+l>>2]=f;a=a+8|0;m=m+8|0;if((i|0)!=(m|0)){continue}break}}if(!d){break nf}m=0;while(1){H[(a<<2)+l>>2]=a;a=a+1|0;m=m+1|0;if((d|0)!=(m|0)){continue}break}}H[r+24>>2]=h;a=s-l|0;d=a>>2;of:{pf:{if((a|0)>=513){a=d;while(1){i=ra(a<<2);if(i){break pf}i=a>>>0>1;a=a>>>1|0;if(i){continue}break}}Ub(l,s,r+24|0,d,0,0);break of}Ub(l,s,r+24|0,d,i,a);qa(i)}if((n|0)<1048576){a=H[h>>2]+(H[s-4>>2]<<3)|0;H[a>>2]=(H[a>>2]-n|0)- -1048576;a=0;break kf}if((c|0)>0){g=H[h>>2];m=n+-1048576|0;while(1){q=1048576/+(n|0);d=c;while(1){qf:{rf:{i=g+(H[(d<<2)+l>>2]<<3)|0;a=H[i>>2];if(a>>>0>=2){k=i;o=a;v=T(q*+(a>>>0));sf:{if(P(v)<2147483648){f=~~v;break sf}f=-2147483648}i=(a|0)==(f|0)?1:a-f|0;a=(a|0)>(i|0)?i:a-1|0;a=(a|0)<(m|0)?a:m;H[k>>2]=o-a;m=m-a|0;n=n-a|0;if((n|0)!=1048576){break rf}n=1048576;break qf}if((c|0)!=(d|0)){break qf}a=1;break kf}a=(d|0)>1;d=d-1|0;if(a){continue}}break}a=0;if((m|0)>0){continue}break}break kf}a=0;if(n>>>0<1048577){break kf}while(1)continue}if((c|0)<0){break hf}break jf}d=H[r+8>>2];if(d){qa(d)}if((c|0)<0|a){break hf}}i=c+1|0;g=i&3;d=H[h>>2];n=0;m=0;a=0;if(c>>>0>=3){j=i&-4;l=0;while(1){f=m<<3;k=f+d|0;H[k+4>>2]=a;o=d+(f|8)|0;a=H[k>>2]+a|0;H[o+4>>2]=a;k=d+(f|16)|0;a=a+H[o>>2]|0;H[k+4>>2]=a;f=d+(f|24)|0;a=a+H[k>>2]|0;H[f+4>>2]=a;a=a+H[f>>2]|0;m=m+4|0;l=l+4|0;if((j|0)!=(l|0)){continue}break}}if(g){while(1){f=d+(m<<3)|0;H[f+4>>2]=a;m=m+1|0;a=H[f>>2]+a|0;n=n+1|0;if((g|0)!=(n|0)){continue}break}}if((a|0)!=1048576){break hf}a=0;q=0;tf:{if((c|0)<0){break tf}f=H[h>>2];if(c){c=i&-2;d=0;while(1){g=a<<3;j=H[g+f>>2];if(j){g=g+p|0;q=(+K[g>>2]+ +K[g+4>>2]*4294967296)*za(+(j>>>0)*9.5367431640625e-7)+q}g=(a|1)<<3;j=H[g+f>>2];if(j){g=g+p|0;q=(+K[g>>2]+ +K[g+4>>2]*4294967296)*za(+(j>>>0)*9.5367431640625e-7)+q}a=a+2|0;d=d+2|0;if((c|0)!=(d|0)){continue}break}}if(!(i&1)){break tf}a=a<<3;c=H[a+f>>2];if(!c){break tf}a=a+p|0;q=(+K[a>>2]+ +K[a+4>>2]*4294967296)*za(+(c>>>0)*9.5367431640625e-7)+q}q=U(-q);uf:{if(q<0x10000000000000000&q>=0){c=P(q)>=1?~~(q>0?R(T(q*2.3283064365386963e-10),4294967295):U((q-+(~~q>>>0>>>0))*2.3283064365386963e-10))>>>0:0;a=~~q>>>0;break uf}c=0;a=0}H[h+16>>2]=a;H[h+20>>2]=c;Xa(h,e)}da=r+32|0;d=H[h+16>>2];a=H[h+20>>2];c=H[e+4>>2]-H[e>>2]|0;H[h+40>>2]=c;H[h+44>>2]=0;f=a<<1|d>>>31;a=(d<<1)+39|0;j=a>>>0<39?f+1|0:f;a=c+((j&7)<<29|a>>>3)|0;k=j>>>3|0;k=a>>>0>>0?k+1|0:k;a=a+8|0;Ma(e,a);a=H[e>>2];H[h+28>>2]=0;H[h+32>>2]=4194304;H[h+24>>2]=a+H[h+40>>2];if((b|0)>0){a=4194304;while(1){c=b-1|0;i=H[h>>2]+(H[t+(c<<2)>>2]<<3)|0;d=H[i>>2];f=d<<10;if(f>>>0<=a>>>0){while(1){g=H[h+28>>2];H[h+28>>2]=g+1;F[g+H[h+24>>2]|0]=a;a=H[h+32>>2]>>>8|0;H[h+32>>2]=a;if(a>>>0>=f>>>0){continue}break}}g=H[i+4>>2];i=(a>>>0)/(d>>>0)|0;a=g+((i<<20)+(a-N(d,i)|0)|0)|0;H[h+32>>2]=a;d=(b|0)>1;b=c;if(d){continue}break}}qc(h,e);a=H[h>>2];if(a){H[h+4>>2]=a;qa(a)}a=H[h+48>>2];if(a){qa(a)}da=h- -64|0;break cf}p=1}da=G+32|0;l=p}if(!z){break b}H[E+36>>2]=z;qa(z)}da=E+48|0;return l}ua();X()}function Ah(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=O(0),D=0,E=0,R=0,S=0,T=0,U=0,V=0,W=0,Y=0,_=0,$=0,aa=0,ba=0,ca=0,ea=0,fa=0,ga=0,ha=0,ia=0,ja=0;d=da-1696|0;da=d;c=10-eb(H[H[a+28>>2]+48>>2])|0;h=(c|0)<6?c:6;c=H[a+72>>2];F[d+1695|0]=(h&255)==6?(c|0)>15?5:h:h;h=H[b+20>>2];if(!H[b+16>>2]&(h|0)<=0|(h|0)<0){wa(b,H[b+4>>2],d+1695|0,d+1696|0);c=H[a+72>>2]}i=H[H[H[a+28>>2]+4>>2]+80>>2];H[d+1684>>2]=0;H[d+1676>>2]=0;H[d+1680>>2]=0;H[d+1664>>2]=i;H[d+1668>>2]=c;H[d+1672>>2]=c<<2;a:{e=N(c,i);if(e){if(e>>>0>=1073741824){break a}h=e<<2;g=ra(h);H[d+1676>>2]=g;j=g+h|0;H[d+1684>>2]=j;ta(g,0,h);H[d+1680>>2]=j}H[d+1688>>2]=g;h=H[a+4>>2];b:{if((h|0)!=H[a+8>>2]){while(1){g=H[H[H[H[a+28>>2]+4>>2]+8>>2]+(H[(l<<2)+h>>2]<<2)>>2];c=H[g+28>>2];if(c-1>>>0>=6){if((c|0)!=9){break b}g=H[H[a+60>>2]+(k<<2)>>2];if(!g){break b}k=k+1|0;c=H[g+28>>2]}c:{d:{e:{f:{switch(c-1|0){case 5:if(!i){break c}h=0;while(1){e=(H[d+1688>>2]+(o<<2)|0)+(N(H[d+1668>>2],h)<<2)|0;f=H[H[g>>2]>>2];c=H[g+48>>2]+zl(H[g+40>>2],H[g+44>>2],I[g+84|0]?h:H[H[g+68>>2]+(h<<2)>>2],0)|0;sa(e,f+c|0,F[g+24|0]<<2);h=h+1|0;if((i|0)!=(h|0)){continue}break};break c;case 0:case 2:case 4:c=F[g+24|0];H[d+464>>2]=0;H[d+456>>2]=0;H[d+460>>2]=0;g:{if(!c){h=0;H[d+1648>>2]=0;break g}if((c|0)<0){break a}c=c<<2;e=ra(c);H[d+456>>2]=e;H[d+464>>2]=c+e;h=0;ta(e,0,c);c=F[g+24|0];H[d+1656>>2]=0;H[d+1648>>2]=0;H[d+1652>>2]=0;if(!c){break g}if((c|0)<0){break a}c=c<<2;h=ra(c);H[d+1648>>2]=h;ta(h,0,c)}if(!i){break d}c=0;while(1){m=H[d+456>>2];Zc(g,I[g+84|0]?c:H[H[g+68>>2]+(c<<2)>>2],F[g+24|0],m);j=F[g+24|0];h:{if((j|0)<=0){e=H[d+1648>>2];break h}p=H[a+48>>2];h=0;e=H[d+1648>>2];if((j|0)!=1){z=j&-2;f=0;while(1){y=h<<2;H[y+e>>2]=H[m+y>>2]-H[p+(h+q<<2)>>2];y=h|1;v=y<<2;H[v+e>>2]=H[m+v>>2]-H[p+(q+y<<2)>>2];h=h+2|0;f=f+2|0;if((z|0)!=(f|0)){continue}break}}if(!(j&1)){break h}f=h<<2;H[f+e>>2]=H[f+m>>2]-H[p+(h+q<<2)>>2]}sa((H[d+1688>>2]+(o<<2)|0)+(N(H[d+1668>>2],c)<<2)|0,e,j<<2);c=c+1|0;if((i|0)!=(c|0)){continue}break};break e;default:break f}}c=F[g+24|0];h=0;H[d+464>>2]=0;H[d+456>>2]=0;H[d+460>>2]=0;if(c){if((c|0)<0){break a}c=c<<2;h=ra(c);H[d+456>>2]=h;ta(h,0,c)}if(i){h=0;while(1){c=I[g+84|0]?h:H[H[g+68>>2]+(h<<2)>>2];j=F[g+24|0];m=0;p=H[d+456>>2];i:{if(!p){break i}j:{k:{switch(H[g+28>>2]-1|0){case 0:e=F[g+24|0];if((((e|0)<(j|0)?e:j)|0)>0){e=H[g>>2];f=H[e>>2];c=H[g+48>>2]+zl(H[g+40>>2],H[g+44>>2],c,0)|0;f=f+c|0;c=H[e+4>>2];while(1){if(c>>>0<=f>>>0){break i}H[p+(m<<2)>>2]=F[f|0];f=f+1|0;m=m+1|0;e=F[g+24|0];if((m|0)<(((e|0)<(j|0)?e:j)|0)){continue}break}}if((e|0)>=(j|0)){break i}c=j-e|0;e=p+(e<<2)|0;break j;case 1:e=F[g+24|0];if((((e|0)<(j|0)?e:j)|0)>0){e=H[g>>2];f=H[e>>2];c=H[g+48>>2]+zl(H[g+40>>2],H[g+44>>2],c,0)|0;f=f+c|0;c=H[e+4>>2];while(1){if(c>>>0<=f>>>0){break i}H[p+(m<<2)>>2]=I[f|0];f=f+1|0;m=m+1|0;e=F[g+24|0];if((m|0)<(((e|0)<(j|0)?e:j)|0)){continue}break}}if((e|0)>=(j|0)){break i}c=j-e|0;e=p+(e<<2)|0;break j;case 2:e=F[g+24|0];if((((e|0)<(j|0)?e:j)|0)>0){e=H[g>>2];f=H[e>>2];c=H[g+48>>2]+zl(H[g+40>>2],H[g+44>>2],c,0)|0;f=f+c|0;c=H[e+4>>2];while(1){if(c>>>0<=f>>>0){break i}H[p+(m<<2)>>2]=G[f>>1];f=f+2|0;m=m+1|0;e=F[g+24|0];if((m|0)<(((e|0)<(j|0)?e:j)|0)){continue}break}}if((e|0)>=(j|0)){break i}c=j-e|0;e=p+(e<<2)|0;break j;case 3:e=F[g+24|0];if((((e|0)<(j|0)?e:j)|0)>0){e=H[g>>2];f=H[e>>2];c=H[g+48>>2]+zl(H[g+40>>2],H[g+44>>2],c,0)|0;f=f+c|0;c=H[e+4>>2];while(1){if(c>>>0<=f>>>0){break i}H[p+(m<<2)>>2]=J[f>>1];f=f+2|0;m=m+1|0;e=F[g+24|0];if((m|0)<(((e|0)<(j|0)?e:j)|0)){continue}break}}if((e|0)>=(j|0)){break i}c=j-e|0;e=p+(e<<2)|0;break j;case 4:e=F[g+24|0];if((((e|0)<(j|0)?e:j)|0)>0){e=H[g>>2];f=H[e>>2];c=H[g+48>>2]+zl(H[g+40>>2],H[g+44>>2],c,0)|0;f=f+c|0;c=H[e+4>>2];while(1){if(c>>>0<=f>>>0){break i}H[p+(m<<2)>>2]=H[f>>2];f=f+4|0;m=m+1|0;e=F[g+24|0];if((m|0)<(((e|0)<(j|0)?e:j)|0)){continue}break}}if((e|0)>=(j|0)){break i}c=j-e|0;e=p+(e<<2)|0;break j;case 5:e=F[g+24|0];if((((e|0)<(j|0)?e:j)|0)>0){e=H[g>>2];f=H[e>>2];c=H[g+48>>2]+zl(H[g+40>>2],H[g+44>>2],c,0)|0;f=f+c|0;c=H[e+4>>2];while(1){if(c>>>0<=f>>>0){break i}H[p+(m<<2)>>2]=H[f>>2];f=f+4|0;m=m+1|0;e=F[g+24|0];if((m|0)<(((e|0)<(j|0)?e:j)|0)){continue}break}}if((e|0)>=(j|0)){break i}c=j-e|0;e=p+(e<<2)|0;break j;case 6:e=F[g+24|0];if((((e|0)<(j|0)?e:j)|0)>0){e=H[g>>2];f=H[e>>2];c=H[g+48>>2]+zl(H[g+40>>2],H[g+44>>2],c,0)|0;f=f+c|0;c=H[e+4>>2];while(1){if(c>>>0<=f>>>0){break i}e=H[f>>2];if(H[f+4>>2]){break i}H[p+(m<<2)>>2]=e;f=f+8|0;m=m+1|0;e=F[g+24|0];if((m|0)<(((e|0)<(j|0)?e:j)|0)){continue}break}}if((e|0)>=(j|0)){break i}c=j-e|0;e=p+(e<<2)|0;break j;case 7:e=F[g+24|0];if((((e|0)<(j|0)?e:j)|0)>0){e=H[g>>2];f=H[e>>2];c=H[g+48>>2]+zl(H[g+40>>2],H[g+44>>2],c,0)|0;f=f+c|0;c=H[e+4>>2];while(1){if(c>>>0<=f>>>0){break i}e=H[f>>2];if(H[f+4>>2]){break i}H[p+(m<<2)>>2]=e;f=f+8|0;m=m+1|0;e=F[g+24|0];if((m|0)<(((e|0)<(j|0)?e:j)|0)){continue}break}}if((e|0)>=(j|0)){break i}c=j-e|0;e=p+(e<<2)|0;break j;case 8:e=F[g+24|0];if((((e|0)<(j|0)?e:j)|0)>0){e=H[g>>2];f=H[e>>2];c=H[g+48>>2]+zl(H[g+40>>2],H[g+44>>2],c,0)|0;f=f+c|0;z=H[e+4>>2];while(1){if(f>>>0>=z>>>0){break i}C=L[f>>2];if(C>O(4294967296)|C=O(0)){c=~~C>>>0}else{c=0}H[e>>2]=c;f=f+4|0;m=m+1|0;e=F[g+24|0];if((m|0)<(((e|0)<(j|0)?e:j)|0)){continue}break}}if((e|0)>=(j|0)){break i}c=j-e|0;e=p+(e<<2)|0;break j;case 9:e=F[g+24|0];if((((e|0)<(j|0)?e:j)|0)>0){e=H[g>>2];f=H[e>>2];c=H[g+48>>2]+zl(H[g+40>>2],H[g+44>>2],c,0)|0;f=f+c|0;z=H[e+4>>2];while(1){if(f>>>0>=z>>>0){break i}D=M[f>>3];if(D>4294967295|D<0|(P(D)==Z|D!=D)){break i}e=p+(m<<2)|0;if(D<4294967296&D>=0){c=~~D>>>0}else{c=0}H[e>>2]=c;f=f+8|0;m=m+1|0;e=F[g+24|0];if((m|0)<(((e|0)<(j|0)?e:j)|0)){continue}break}}if((e|0)>=(j|0)){break i}c=j-e|0;e=p+(e<<2)|0;break j;case 10:break k;default:break i}}e=F[g+24|0];if((((e|0)<(j|0)?e:j)|0)>0){e=H[g>>2];f=H[e>>2];c=H[g+48>>2]+zl(H[g+40>>2],H[g+44>>2],c,0)|0;f=f+c|0;c=H[e+4>>2];while(1){if(c>>>0<=f>>>0){break i}H[p+(m<<2)>>2]=I[f|0];f=f+1|0;m=m+1|0;e=F[g+24|0];if((m|0)<(((e|0)<(j|0)?e:j)|0)){continue}break}}if((e|0)>=(j|0)){break i}c=j-e|0;e=p+(e<<2)|0}ta(e,0,c<<2)}sa((H[d+1688>>2]+(o<<2)|0)+(N(H[d+1668>>2],h)<<2)|0,p,F[g+24|0]<<2);h=h+1|0;if((i|0)!=(h|0)){continue}break}h=H[d+456>>2]}if(!h){break c}qa(h);break c}h=H[d+1648>>2]}c=F[g+24|0];if(h){qa(h)}h=H[d+456>>2];if(h){qa(h)}q=c+q|0}o=F[g+24|0]+o|0;l=l+1|0;h=H[a+4>>2];if(l>>>0>2]-h>>2>>>0){continue}break}c=H[a+72>>2];e=N(i,c);g=H[d+1688>>2]}h=0;l:{if((e|0)<=0){break l}l=e&1;m:{if((e|0)==1){e=0;break m}j=e&-2;e=0;a=0;while(1){f=e<<2;m=H[f+g>>2];if(m){m=Q(m);h=(m^31)<(h|0)?h:32-m|0}f=H[(f|4)+g>>2];if(f){f=Q(f);h=(f^31)<(h|0)?h:32-f|0}e=e+2|0;a=a+2|0;if((j|0)!=(a|0)){continue}break}}if(!l){break l}a=H[(e<<2)+g>>2];if(!a){break l}a=Q(a);h=(a^31)<(h|0)?h:32-a|0}n:{o:{switch(I[d+1695|0]){case 6:o=Xc(d+456|0,c);a=H[d+1668>>2];H[d+448>>2]=a;H[d+432>>2]=a;H[d+32>>2]=a;H[d+16>>2]=a;H[d+440>>2]=0;H[d+424>>2]=H[d+1664>>2];a=d+1664|0;H[d+444>>2]=a;c=H[d+444>>2];H[d+24>>2]=H[d+440>>2];H[d+28>>2]=c;H[d+428>>2]=a;H[d+1648>>2]=h;a=H[d+428>>2];H[d+8>>2]=H[d+424>>2];H[d+12>>2]=a;q=da-32|0;da=q;H[o>>2]=H[d+1648>>2];a=H[d+8>>2]-H[d+24>>2]|0;H[o+4>>2]=a;c=H[b+20>>2];if(!H[b+16>>2]&(c|0)<=0|(c|0)<0){a=o+4|0;wa(b,H[b+4>>2],o,a);c=H[b+20>>2];if(!H[b+16>>2]&(c|0)<=0|(c|0)<0){wa(b,H[b+4>>2],a,o+8|0)}a=H[a>>2]}if(a){V=o+12|0;le(V);W=o+1068|0;a=W;H[a+12>>2]=0;H[a+16>>2]=0;H[a+4>>2]=H[a>>2];Y=o+1088|0;a=Y;H[a+12>>2]=0;H[a+16>>2]=0;H[a+4>>2]=H[a>>2];_=o+1108|0;a=_;H[a+12>>2]=0;H[a+16>>2]=0;H[a+4>>2]=H[a>>2];H[q+24>>2]=H[d+32>>2];a=H[d+28>>2];H[q+16>>2]=H[d+24>>2];H[q+20>>2]=a;H[q+8>>2]=H[d+16>>2];a=H[d+12>>2];H[q>>2]=H[d+8>>2];H[q+4>>2]=a;c=0;i=da+-64|0;da=i;k=H[o+8>>2];H[i+48>>2]=0;H[i+40>>2]=0;H[i+44>>2]=0;if(k){if(k>>>0>=1073741824){break a}a=k<<2;c=ra(a);H[i+40>>2]=c;n=a+c|0;H[i+48>>2]=n;ta(c,0,a);H[i+44>>2]=n}a=H[o+1164>>2];h=H[a>>2];if(h){H[a+4>>2]=h;qa(h);H[a+8>>2]=0;H[a>>2]=0;H[a+4>>2]=0;k=H[o+8>>2];n=H[i+44>>2];c=H[i+40>>2]}H[a+4>>2]=n;H[a>>2]=c;H[a+8>>2]=H[i+48>>2];c=0;H[i+48>>2]=0;H[i+40>>2]=0;H[i+44>>2]=0;a=0;p:{if(k){if(k>>>0>=1073741824){break a}h=k<<2;a=ra(h);H[i+40>>2]=a;c=a+h|0;H[i+48>>2]=c;ta(a,0,h);H[i+44>>2]=c}h=H[o+1176>>2];g=H[h>>2];if(g){H[h+4>>2]=g;qa(g);H[h+8>>2]=0;H[h>>2]=0;H[h+4>>2]=0;c=H[i+44>>2];a=H[i+40>>2]}H[h+4>>2]=c;H[h>>2]=a;H[h+8>>2]=H[i+48>>2];e=H[q+20>>2];m=H[q+24>>2];j=H[q+4>>2];p=H[q+8>>2];c=H[q>>2];h=H[q+16>>2];H[i+56>>2]=0;H[i+60>>2]=0;H[i+48>>2]=0;H[i+52>>2]=0;H[i+40>>2]=0;H[i+44>>2]=0;gb(i+40|0);a=H[i+56>>2]+H[i+60>>2]|0;g=(a>>>0)/113|0;a=H[H[i+44>>2]+(g<<2)>>2]+N(a-N(g,113)|0,36)|0;H[a+32>>2]=0;H[a+28>>2]=c-h;H[a+24>>2]=0;H[a+16>>2]=j;H[a+20>>2]=p;H[a+12>>2]=c;H[a+4>>2]=e;H[a+8>>2]=m;H[a>>2]=h;k=H[i+60>>2]+1|0;H[i+60>>2]=k;if(k){y=e;z=m;ba=m&-4;$=m&3;ca=o+1068|0;aa=o+12|0;ea=o+1108|0;fa=m-1>>>0<3;while(1){a=H[i+44>>2];l=H[i+56>>2];f=k-1|0;c=l+f|0;h=(c>>>0)/113|0;c=H[a+(h<<2)>>2]+N(c-N(h,113)|0,36)|0;T=H[c+32>>2];g=H[c+12>>2];h=H[c>>2];H[i+60>>2]=f;c=H[i+48>>2];if((((a|0)==(c|0)?0:N(c-a>>2,113)-1|0)-(k+l|0)|0)+1>>>0>=226){qa(H[c-4>>2]);H[i+48>>2]=H[i+48>>2]-4}H[q+16>>2]=h;H[q>>2]=g;a=H[o+1164>>2];c=H[o+1176>>2];H[i+32>>2]=H[q+24>>2];l=H[q+20>>2];H[i+24>>2]=H[q+16>>2];H[i+28>>2]=l;H[i+16>>2]=H[q+8>>2];l=H[q+4>>2];H[i+8>>2]=H[q>>2];H[i+12>>2]=l;U=N(T,12);v=a+U|0;k=v;R=c+U|0;a=R;u=0;l=H[o+8>>2];q:{r:{s:{t:{t=H[i+8>>2];f=H[i+24>>2];r=t-f|0;if(r>>>0>=64){if(!l){k=0;break r}B=H[o+1140>>2];S=H[a>>2];s=H[o+1128>>2];if((f|0)!=(t|0)){break t}l=0;while(1){a=l<<2;c=a+s|0;H[c>>2]=0;k=a+B|0;f=H[o>>2];a=H[a+S>>2];H[k>>2]=f-a;if((a|0)!=(f|0)){k=c;a=H[c>>2];c=r-a|0;H[k>>2]=a>>>0>>0?c:a}c=H[o+8>>2];l=l+1|0;if(c>>>0>l>>>0){continue}break}break s}k=0;if(l>>>0<2){break q}f=l-1|0;n=f&3;c=H[a>>2];a=0;u:{if(l-2>>>0<3){l=1;break u}u=f&-4;l=1;f=0;while(1){t=l+3|0;r=l+2|0;w=l+1|0;k=K[c+(k<<2)>>2]>K[c+(l<<2)>>2]?l:k;k=K[c+(k<<2)>>2]>K[c+(w<<2)>>2]?w:k;k=K[c+(k<<2)>>2]>K[c+(r<<2)>>2]?r:k;k=K[c+(k<<2)>>2]>K[c+(t<<2)>>2]?t:k;l=l+4|0;f=f+4|0;if((u|0)!=(f|0)){continue}break}}if(!n){break q}while(1){k=K[c+(k<<2)>>2]>K[c+(l<<2)>>2]?l:k;l=l+1|0;a=a+1|0;if((n|0)!=(a|0)){continue}break}break q}E=H[i+28>>2];ga=H[k>>2];ha=r&1;k=f+1|0;ia=(k|0)!=(t|0);x=H[i+32>>2];ja=N(x,f)<<2;while(1){a=u<<2;n=s+a|0;H[n>>2]=0;c=H[o>>2];l=H[a+S>>2];w=c-l|0;H[a+B>>2]=w;if((c|0)!=(l|0)){w=H[a+ga>>2]+(1<>2]+a|0;c=H[n>>2];if(ha){c=(w>>>0>K[A+ja>>2])+c|0;H[n>>2]=c;a=k}else{a=f}l=a;if(ia){while(1){a=(w>>>0>K[A+(N(l,x)<<2)>>2])+c|0;H[n>>2]=a;c=a+(w>>>0>K[A+(N(x,l+1|0)<<2)>>2])|0;H[n>>2]=c;l=l+2|0;if((t|0)!=(l|0)){continue}break}}a=r-c|0;H[n>>2]=a>>>0>c>>>0?a:c}c=H[o+8>>2];u=u+1|0;if(c>>>0>u>>>0){continue}break}}if(!c){k=0;break r}r=c&1;n=H[o+1128>>2];u=H[o+1140>>2];v:{if((c|0)==1){l=0;c=0;k=0;break v}w=c&-2;l=0;c=0;k=0;f=0;while(1){a=l<<2;w:{if(!H[a+u>>2]){a=c;break w}t=H[a+n>>2];a=c>>>0>t>>>0?c:t;k=c>>>0>>0?l:k}A=l|1;c=A<<2;x:{if(!H[c+u>>2]){c=a;break x}t=H[c+n>>2];c=a>>>0>t>>>0?a:t;k=a>>>0>>0?A:k}l=l+2|0;f=f+2|0;if((w|0)!=(f|0)){continue}break}}if(!r){break r}a=l<<2;if(!H[a+u>>2]){break r}k=K[a+n>>2]>c>>>0?l:k}Lb(o+1088|0,4,k)}c=H[o>>2];l=k<<2;f=H[l+H[R>>2]>>2];y:{z:{if((c|0)==(f|0)){break z}A:{B:{w=g-h|0;if(w>>>0<=2){l=H[o+1152>>2];H[l>>2]=k;c=1;a=H[o+8>>2];if(a>>>0>1){break B}break A}a=H[o+1164>>2];S=T+1|0;A=N(S,12);n=a+A|0;if((n|0)!=(v|0)){cb(n,H[v>>2],H[v+4>>2]);a=H[o+1164>>2]}a=l+H[a+A>>2]|0;v=H[a>>2]+(1<>2]=v;a=h;C:{if((g|0)==(a|0)){break C}R=H[y+24>>2];c=h;a=g;if(!z){if(v>>>0>K[l+R>>2]){break C}while(1){a=a-1|0;if((c|0)==(a|0)){a=c;break C}if(v>>>0<=K[(l+H[j+24>>2]|0)+(N(a,p)<<2)>>2]){continue}c=c+1|0;if((c|0)!=(a|0)){continue}break}break C}while(1){u=R+(N(c,z)<<2)|0;if(v>>>0>K[u+l>>2]){c=c+1|0;if((c|0)!=(a|0)){continue}break C}while(1){a=a-1|0;if((c|0)==(a|0)){a=c;break C}t=H[j+24>>2]+(N(a,p)<<2)|0;if(v>>>0<=K[t+l>>2]){continue}break}f=0;n=0;B=0;if(!fa){while(1){r=n<<2;s=r+u|0;x=H[s>>2];E=s;s=t+r|0;H[E>>2]=H[s>>2];H[s>>2]=x;s=r|4;x=s+u|0;E=H[x>>2];s=t+s|0;H[x>>2]=H[s>>2];H[s>>2]=E;s=r|8;x=s+u|0;E=H[x>>2];s=t+s|0;H[x>>2]=H[s>>2];H[s>>2]=E;r=r|12;s=r+u|0;x=H[s>>2];r=t+r|0;H[s>>2]=H[r>>2];H[r>>2]=x;n=n+4|0;B=B+4|0;if((ba|0)!=(B|0)){continue}break}}if($){while(1){r=n<<2;B=r+u|0;s=H[B>>2];r=t+r|0;H[B>>2]=H[r>>2];H[r>>2]=s;n=n+1|0;f=f+1|0;if(($|0)!=(f|0)){continue}break}}c=c+1|0;if((c|0)!=(a|0)){continue}break}}f=a-h|0;v=g-a|0;if((f|0)!=(v|0)){vc(ea,f>>>0>>0)}c=Q(w);u=c^31;n=w>>>1|0;D:{if(f>>>0>>0){if(!u){break D}t=n-f|0;c=1<<30-c;n=0;while(1){Ga((n<<5)+aa|0,(c&t)!=0);c=c>>>1|0;n=n+1|0;if((u|0)!=(n|0)){continue}break}break D}if(!u){break D}t=n-v|0;c=1<<30-c;n=0;while(1){Ga((n<<5)+aa|0,(c&t)!=0);c=c>>>1|0;n=n+1|0;if((u|0)!=(n|0)){continue}break}}s=l;c=H[o+1176>>2];l=c+U|0;n=H[l>>2];u=s+n|0;H[u>>2]=H[u>>2]+1;cb(c+A|0,n,H[l+4>>2]);if((a|0)!=(h|0)){n=H[i+60>>2]+H[i+56>>2]|0;l=H[i+48>>2];c=H[i+44>>2];if((n|0)==(((c|0)==(l|0)?0:N(l-c>>2,113)-1|0)|0)){gb(i+40|0);n=H[i+56>>2]+H[i+60>>2]|0;l=H[i+44>>2]}else{l=c}c=(n>>>0)/113|0;c=H[l+(c<<2)>>2]+N(n-N(c,113)|0,36)|0;H[c+32>>2]=T;H[c+28>>2]=f;H[c+24>>2]=k;H[c+16>>2]=y;H[c+12>>2]=a;H[c+4>>2]=e;H[c+8>>2]=m;H[c>>2]=h;H[c+20>>2]=z;H[i+60>>2]=H[i+60>>2]+1}if((a|0)==(g|0)){break z}n=H[i+60>>2]+H[i+56>>2]|0;h=H[i+48>>2];c=H[i+44>>2];if((n|0)==(((c|0)==(h|0)?0:N(h-c>>2,113)-1|0)|0)){gb(i+40|0);n=H[i+56>>2]+H[i+60>>2]|0;h=H[i+44>>2]}else{h=c}c=(n>>>0)/113|0;c=H[h+(c<<2)>>2]+N(n-N(c,113)|0,36)|0;H[c+32>>2]=S;H[c+28>>2]=v;H[c+24>>2]=k;H[c+16>>2]=j;H[c+20>>2]=p;H[c+12>>2]=g;H[c+4>>2]=y;H[c>>2]=a;H[c+8>>2]=z;k=H[i+60>>2]+1|0;H[i+60>>2]=k;break y}while(1){k=(a-1|0)==(k|0)?0:k+1|0;H[l+(c<<2)>>2]=k;a=H[o+8>>2];c=c+1|0;if(a>>>0>c>>>0){continue}break}}n=0;c=a;if((g|0)==(h|0)){break z}while(1){E:{if(!c){c=0;break E}g=H[y+24>>2]+(N(H[y+4>>2],h+n|0)<<2)|0;k=0;while(1){c=H[o>>2];l=H[H[o+1152>>2]+(k<<2)>>2]<<2;f=H[l+H[R>>2]>>2];if((c|0)!=(f|0)){Lb(ca,c-f|0,H[g+l>>2]);a=H[o+8>>2]}c=a;k=k+1|0;if(c>>>0>k>>>0){continue}break}}n=n+1|0;if((w|0)!=(n|0)){continue}break}}k=H[i+60>>2]}if(k){continue}break}}H[i+60>>2]=0;h=H[i+48>>2];k=H[i+44>>2];a=h-k|0;if(a>>>0>=9){while(1){qa(H[k>>2]);k=H[i+44>>2]+4|0;H[i+44>>2]=k;h=H[i+48>>2];a=h-k|0;if(a>>>0>8){continue}break}}c=56;F:{switch((a>>>2|0)-1|0){case 1:c=113;case 0:H[i+56>>2]=c;break;default:break F}}G:{if((h|0)==(k|0)){break G}while(1){qa(H[k>>2]);k=k+4|0;if((k|0)!=(h|0)){continue}break}a=H[i+48>>2];c=H[i+44>>2];if((a|0)==(c|0)){break G}H[i+48>>2]=a+((c-a|0)+3&-4)}a=H[i+40>>2];if(a){qa(a)}da=i- -64|0;break p}ke(V,b);fb(W,b);fb(Y,b);fb(_,b)}da=q+32|0;Yc(o);break n;case 5:c=Xc(d+456|0,c);a=H[d+1668>>2];H[d+416>>2]=a;H[d+400>>2]=a;H[d- -64>>2]=a;H[d+48>>2]=a;H[d+408>>2]=0;H[d+392>>2]=H[d+1664>>2];a=d+1664|0;H[d+412>>2]=a;g=H[d+412>>2];H[d+56>>2]=H[d+408>>2];H[d+60>>2]=g;H[d+396>>2]=a;H[d+1648>>2]=h;a=H[d+396>>2];H[d+40>>2]=H[d+392>>2];H[d+44>>2]=a;a=se(c,d+56|0,d+40|0,d+1648|0,b);Yc(c);if(a){break n}break b;case 4:c=Xc(d+456|0,c);a=H[d+1668>>2];H[d+384>>2]=a;H[d+368>>2]=a;H[d+96>>2]=a;H[d+80>>2]=a;H[d+376>>2]=0;H[d+360>>2]=H[d+1664>>2];a=d+1664|0;H[d+380>>2]=a;g=H[d+380>>2];H[d+88>>2]=H[d+376>>2];H[d+92>>2]=g;H[d+364>>2]=a;H[d+1648>>2]=h;a=H[d+364>>2];H[d+72>>2]=H[d+360>>2];H[d+76>>2]=a;a=se(c,d+88|0,d+72|0,d+1648|0,b);Yc(c);if(a){break n}break b;case 3:c=re(d+456|0,c);a=H[d+1668>>2];H[d+352>>2]=a;H[d+336>>2]=a;H[d+128>>2]=a;H[d+112>>2]=a;H[d+344>>2]=0;H[d+328>>2]=H[d+1664>>2];a=d+1664|0;H[d+348>>2]=a;g=H[d+348>>2];H[d+120>>2]=H[d+344>>2];H[d+124>>2]=g;H[d+332>>2]=a;H[d+1648>>2]=h;a=H[d+332>>2];H[d+104>>2]=H[d+328>>2];H[d+108>>2]=a;a=qe(c,d+120|0,d+104|0,d+1648|0,b);pe(c);if(a){break n}break b;case 2:c=re(d+456|0,c);a=H[d+1668>>2];H[d+320>>2]=a;H[d+304>>2]=a;H[d+160>>2]=a;H[d+144>>2]=a;H[d+312>>2]=0;H[d+296>>2]=H[d+1664>>2];a=d+1664|0;H[d+316>>2]=a;g=H[d+316>>2];H[d+152>>2]=H[d+312>>2];H[d+156>>2]=g;H[d+300>>2]=a;H[d+1648>>2]=h;a=H[d+300>>2];H[d+136>>2]=H[d+296>>2];H[d+140>>2]=a;a=qe(c,d+152|0,d+136|0,d+1648|0,b);pe(c);if(a){break n}break b;case 1:c=oe(d+456|0,c);a=H[d+1668>>2];H[d+288>>2]=a;H[d+272>>2]=a;H[d+192>>2]=a;H[d+176>>2]=a;H[d+280>>2]=0;H[d+264>>2]=H[d+1664>>2];a=d+1664|0;H[d+284>>2]=a;g=H[d+284>>2];H[d+184>>2]=H[d+280>>2];H[d+188>>2]=g;H[d+268>>2]=a;H[d+1648>>2]=h;a=H[d+268>>2];H[d+168>>2]=H[d+264>>2];H[d+172>>2]=a;a=ne(c,d+184|0,d+168|0,d+1648|0,b);me(c);if(a){break n}break b;case 0:break o;default:break b}}c=oe(d+456|0,c);a=H[d+1668>>2];H[d+256>>2]=a;H[d+240>>2]=a;H[d+224>>2]=a;H[d+208>>2]=a;H[d+248>>2]=0;H[d+232>>2]=H[d+1664>>2];a=d+1664|0;H[d+252>>2]=a;g=H[d+252>>2];H[d+216>>2]=H[d+248>>2];H[d+220>>2]=g;H[d+236>>2]=a;H[d+1648>>2]=h;a=H[d+236>>2];H[d+200>>2]=H[d+232>>2];H[d+204>>2]=a;a=ne(c,d+216|0,d+200|0,d+1648|0,b);me(c);if(!a){break b}}n=1}a=H[d+1676>>2];if(a){H[d+1680>>2]=a;qa(a)}da=d+1696|0;return n|0}ua();X()}function Qe(a,b,c,d){var e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,w=0,x=0,y=0,z=0,A=0,C=0,D=0,E=0,G=0,J=0,L=0;w=da-160|0;da=w;H[w+60>>2]=b;H[w+20>>2]=b;H[w+24>>2]=-1;h=w+16|0;H[h+112>>2]=0;H[h+116>>2]=0;n=H[h+44>>2]-H[h+4>>2]|0;H[h+120>>2]=n;H[h+124>>2]=n>>31;H[h+104>>2]=H[h+8>>2];q=da-48|0;da=q;if(d>>>0<=2){a:{d=d<<2;D=H[d+17292>>2];E=H[d+17280>>2];while(1){d=H[h+4>>2];b:{if((d|0)!=H[h+104>>2]){H[h+4>>2]=d+1;d=I[d|0];break b}d=Pa(h)}if((d|0)==32|d-9>>>0<5){continue}break}n=1;c:{d:{switch(d-43|0){case 0:case 2:break d;default:break c}}n=(d|0)==45?-1:1;d=H[h+4>>2];if((d|0)!=H[h+104>>2]){H[h+4>>2]=d+1;d=I[d|0];break c}d=Pa(h)}e:{f:{while(1){if(F[g+1154|0]==(d|32)){g:{if(g>>>0>6){break g}d=H[h+4>>2];if((d|0)!=H[h+104>>2]){H[h+4>>2]=d+1;d=I[d|0];break g}d=Pa(h)}g=g+1|0;if((g|0)!=8){continue}break f}break}if((g|0)!=3){if((g|0)==8){break f}if(g>>>0<4){break e}if((g|0)==8){break f}}d=H[h+116>>2];if((d|0)>0|(d|0)>=0){H[h+4>>2]=H[h+4>>2]-1}if(g>>>0<4){break f}d=(d|0)<0;while(1){if(!d){H[h+4>>2]=H[h+4>>2]-1}g=g-1|0;if(g>>>0>3){continue}break}}l=da-16|0;da=l;k=(B(O(O(n|0)*O(Z))),v(2));d=k&2147483647;h:{if(d-8388608>>>0<=2130706431){n=d<<25;g=(d>>>7|0)+1065353216|0;break h}n=k<<25;g=k>>>7|2147418112;if(d>>>0>=2139095040){break h}n=0;g=0;if(!d){break h}g=d;d=Q(d);Sa(l,g,0,0,0,d+81|0);i=H[l>>2];j=H[l+4>>2];n=H[l+8>>2];g=H[l+12>>2]^65536|16265-d<<16}H[q>>2]=i;H[q+4>>2]=j;H[q+8>>2]=n;H[q+12>>2]=k&-2147483648|g;da=l+16|0;i=H[q+8>>2];j=H[q+12>>2];l=H[q>>2];k=H[q+4>>2];break a}i:{j:{k:{if(g){break k}g=0;while(1){if(F[g+1434|0]!=(d|32)){break k}l:{if(g>>>0>1){break l}d=H[h+4>>2];if((d|0)!=H[h+104>>2]){H[h+4>>2]=d+1;d=I[d|0];break l}d=Pa(h)}g=g+1|0;if((g|0)!=3){continue}break}break j}m:{switch(g|0){case 0:n:{if((d|0)!=48){break n}g=H[h+4>>2];o:{if((g|0)!=H[h+104>>2]){H[h+4>>2]=g+1;g=I[g|0];break o}g=Pa(h)}if((g&-33)==88){f=da-432|0;da=f;d=H[h+4>>2];p:{if((d|0)!=H[h+104>>2]){H[h+4>>2]=d+1;g=I[d|0];break p}g=Pa(h)}q:{r:{while(1){if((g|0)!=48){s:{if((g|0)!=46){break q}d=H[h+4>>2];if((d|0)==H[h+104>>2]){break s}H[h+4>>2]=d+1;g=I[d|0];break r}}else{d=H[h+4>>2];if((d|0)!=H[h+104>>2]){p=1;H[h+4>>2]=d+1;g=I[d|0]}else{p=1;g=Pa(h)}continue}break}g=Pa(h)}x=1;if((g|0)!=48){break q}while(1){d=r;r=d-1|0;s=s-!d|0;d=H[h+4>>2];t:{if((d|0)!=H[h+104>>2]){H[h+4>>2]=d+1;g=I[d|0];break t}g=Pa(h)}if((g|0)==48){continue}break}p=1}k=1073676288;while(1){u:{d=g|32;v:{w:{G=g-48|0;if(G>>>0<10){break w}if((g|0)!=46&d-97>>>0>=6){break u}if((g|0)!=46){break w}if(x){break u}x=1;r=i;s=j;break v}d=(g|0)>57?d-87|0:G;x:{if((j|0)<=0&i>>>0<=7|(j|0)<0){t=d+(t<<4)|0;break x}if(!j&i>>>0<=28){bb(f+48|0,d);Ha(f+32|0,A,C,l,k,0,0,0,1073414144);A=H[f+32>>2];C=H[f+36>>2];l=H[f+40>>2];k=H[f+44>>2];Ha(f+16|0,H[f+48>>2],H[f+52>>2],H[f+56>>2],H[f+60>>2],A,C,l,k);ab(f,H[f+16>>2],H[f+20>>2],H[f+24>>2],H[f+28>>2],m,o,y,z);y=H[f+8>>2];z=H[f+12>>2];m=H[f>>2];o=H[f+4>>2];break x}if(J|!d){break x}Ha(f+80|0,A,C,l,k,0,0,0,1073610752);ab(f- -64|0,H[f+80>>2],H[f+84>>2],H[f+88>>2],H[f+92>>2],m,o,y,z);y=H[f+72>>2];z=H[f+76>>2];J=1;m=H[f+64>>2];o=H[f+68>>2]}d=i+1|0;j=d?j:j+1|0;i=d;p=1}d=H[h+4>>2];if((d|0)!=H[h+104>>2]){H[h+4>>2]=d+1;g=I[d|0]}else{g=Pa(h)}continue}break}y:{if(!p){d=H[h+116>>2];if((d|0)>0|(d|0)>=0){z:{d=H[h+4>>2];H[h+4>>2]=d-1;H[h+4>>2]=d-2;if(!x){break z}H[h+4>>2]=d-3}}rb(f+96|0,+(n|0)*0);m=H[f+96>>2];o=H[f+100>>2];i=H[f+108>>2];d=H[f+104>>2];break y}if((j|0)<=0&i>>>0<=7|(j|0)<0){l=i;k=j;while(1){t=t<<4;d=l+1|0;k=d?k:k+1|0;l=d;if((d|0)!=8|k){continue}break}}A:{B:{C:{if((g&-33)==80){l=Re(h);d=ea;k=d;if(l|(d|0)!=-2147483648){break A}d=H[h+116>>2];if((d|0)>0|(d|0)>=0){break C}break B}l=0;k=0;if(H[h+116>>2]<0){break A}}H[h+4>>2]=H[h+4>>2]-1}l=0;k=0}if(!t){rb(f+112|0,+(n|0)*0);m=H[f+112>>2];o=H[f+116>>2];i=H[f+124>>2];d=H[f+120>>2];break y}d=x?r:i;j=(x?s:j)<<2|d>>>30;d=l+(d<<2)|0;g=j+k|0;g=d>>>0>>0?g+1|0:g;i=d-32|0;j=g-(d>>>0<32)|0;d=j;if(i>>>0>0-D>>>0&(d|0)>=0|(d|0)>0){H[4799]=68;bb(f+160|0,n);Ha(f+144|0,H[f+160>>2],H[f+164>>2],H[f+168>>2],H[f+172>>2],-1,-1,-1,2147418111);Ha(f+128|0,H[f+144>>2],H[f+148>>2],H[f+152>>2],H[f+156>>2],-1,-1,-1,2147418111);m=H[f+128>>2];o=H[f+132>>2];i=H[f+140>>2];d=H[f+136>>2];break y}d=D-226|0;g=d>>31;if((j|0)>=(g|0)&d>>>0<=i>>>0|(g|0)<(j|0)){if((t|0)>=0){while(1){ab(f+416|0,m,o,y,z,0,0,0,-1073807360);g=Je(m,o,y,z,1073610752);d=(g|0)<0;ab(f+400|0,m,o,y,z,d?m:H[f+416>>2],d?o:H[f+420>>2],d?y:H[f+424>>2],d?z:H[f+428>>2]);d=i;i=d-1|0;j=j-!d|0;y=H[f+408>>2];z=H[f+412>>2];m=H[f+400>>2];o=H[f+404>>2];t=t<<1|(g|0)>=0;if((t|0)>=0){continue}break}}g=j-((D>>31)+(i>>>0>>0)|0)|0;d=(i-D|0)+32|0;g=d>>>0<32?g+1|0:g;j=d>>>0>>0&(g|0)<=0|(g|0)<0?(d|0)>0?d:0:E;D:{if((j|0)>=113){bb(f+384|0,n);r=H[f+392>>2];s=H[f+396>>2];A=H[f+384>>2];C=H[f+388>>2];k=0;d=0;break D}rb(f+352|0,hd(144-j|0));bb(f+336|0,n);A=H[f+336>>2];C=H[f+340>>2];r=H[f+344>>2];s=H[f+348>>2];Ue(f+368|0,H[f+352>>2],H[f+356>>2],H[f+360>>2],H[f+364>>2],A,C,r,s);e=H[f+376>>2];u=H[f+380>>2];k=H[f+372>>2];d=H[f+368>>2]}j=!(t&1)&((Jb(m,o,y,z,0,0,0,0)|0)!=0&(j|0)<32);Nb(f+320|0,j+t|0);Ha(f+304|0,A,C,r,s,H[f+320>>2],H[f+324>>2],H[f+328>>2],H[f+332>>2]);g=d;ab(f+272|0,H[f+304>>2],H[f+308>>2],H[f+312>>2],H[f+316>>2],d,k,e,u);d=j;Ha(f+288|0,A,C,r,s,d?0:m,d?0:o,d?0:y,d?0:z);ab(f+256|0,H[f+288>>2],H[f+292>>2],H[f+296>>2],H[f+300>>2],H[f+272>>2],H[f+276>>2],H[f+280>>2],H[f+284>>2]);gd(f+240|0,H[f+256>>2],H[f+260>>2],H[f+264>>2],H[f+268>>2],g,k,e,u);d=H[f+240>>2];j=H[f+244>>2];g=H[f+248>>2];k=H[f+252>>2];if(!Jb(d,j,g,k,0,0,0,0)){H[4799]=68}Te(f+224|0,d,j,g,k,i);m=H[f+224>>2];o=H[f+228>>2];i=H[f+236>>2];d=H[f+232>>2];break y}H[4799]=68;bb(f+208|0,n);Ha(f+192|0,H[f+208>>2],H[f+212>>2],H[f+216>>2],H[f+220>>2],0,0,0,65536);Ha(f+176|0,H[f+192>>2],H[f+196>>2],H[f+200>>2],H[f+204>>2],0,0,0,65536);m=H[f+176>>2];o=H[f+180>>2];i=H[f+188>>2];d=H[f+184>>2]}H[q+16>>2]=m;H[q+20>>2]=o;H[q+24>>2]=d;H[q+28>>2]=i;da=f+432|0;i=H[q+24>>2];j=H[q+28>>2];l=H[q+16>>2];k=H[q+20>>2];break a}if(H[h+116>>2]<0){break n}H[h+4>>2]=H[h+4>>2]-1}g=h;t=n;n=0;e=da-8976|0;da=e;G=D+E|0;J=0-G|0;E:{F:{while(1){if((d|0)!=48){G:{if((d|0)!=46){break E}d=H[g+4>>2];if((d|0)==H[g+104>>2]){break G}H[g+4>>2]=d+1;d=I[d|0];break F}}else{d=H[g+4>>2];if((d|0)!=H[g+104>>2]){n=1;H[g+4>>2]=d+1;d=I[d|0]}else{n=1;d=Pa(g)}continue}break}d=Pa(g)}f=1;if((d|0)!=48){break E}while(1){d=i;i=d-1|0;j=j-!d|0;d=H[g+4>>2];H:{if((d|0)!=H[g+104>>2]){H[g+4>>2]=d+1;d=I[d|0];break H}d=Pa(g)}if((d|0)==48){continue}break}n=1}H[e+784>>2]=0;I:{J:{h=(d|0)==46;m=d-48|0;K:{L:{M:{if(h|m>>>0<=9){while(1){N:{if(h&1){if(!f){i=l;j=k;f=1;break N}h=!n;break M}l=l+1|0;k=l?k:k+1|0;if((p|0)<=2044){x=(d|0)==48?x:l;n=(e+784|0)+(p<<2)|0;if(u){m=(N(H[n>>2],10)+d|0)-48|0}H[n>>2]=m;n=1;h=u+1|0;d=(h|0)==9;u=d?0:h;p=d+p|0;break N}if((d|0)==48){break N}H[e+8960>>2]=H[e+8960>>2]|1;x=18396}d=H[g+4>>2];O:{if((d|0)!=H[g+104>>2]){H[g+4>>2]=d+1;d=I[d|0];break O}d=Pa(g)}h=(d|0)==46;m=d-48|0;if(h|m>>>0<10){continue}break}}i=f?i:l;j=f?j:k;if(!(!n|(d&-33)!=69)){m=Re(g);d=ea;o=d;P:{if(m|(d|0)!=-2147483648){break P}m=0;o=0;if(H[g+116>>2]<0){break P}H[g+4>>2]=H[g+4>>2]-1}if(!n){break K}j=j+o|0;d=i+m|0;j=d>>>0>>0?j+1|0:j;i=d;break J}h=!n;if((d|0)<0){break L}}if(H[g+116>>2]<0){break L}H[g+4>>2]=H[g+4>>2]-1}if(!h){break J}}H[4799]=28;l=0;k=0;H[g+112>>2]=0;H[g+116>>2]=0;d=H[g+44>>2]-H[g+4>>2]|0;H[g+120>>2]=d;H[g+124>>2]=d>>31;H[g+104>>2]=H[g+8>>2];i=0;d=0;break I}d=H[e+784>>2];if(!d){rb(e,+(t|0)*0);l=H[e>>2];k=H[e+4>>2];i=H[e+12>>2];d=H[e+8>>2];break I}if(!(l>>>0>9&(k|0)>=0|(k|0)>0|((i|0)!=(l|0)|(j|0)!=(k|0))|(d>>>E|0?(E|0)<=30:0))){bb(e+48|0,t);Nb(e+32|0,d);Ha(e+16|0,H[e+48>>2],H[e+52>>2],H[e+56>>2],H[e+60>>2],H[e+32>>2],H[e+36>>2],H[e+40>>2],H[e+44>>2]);l=H[e+16>>2];k=H[e+20>>2];i=H[e+28>>2];d=H[e+24>>2];break I}if(i>>>0>(D|0)/-2>>>0&(j|0)>=0|(j|0)>0){H[4799]=68;bb(e+96|0,t);Ha(e+80|0,H[e+96>>2],H[e+100>>2],H[e+104>>2],H[e+108>>2],-1,-1,-1,2147418111);Ha(e- -64|0,H[e+80>>2],H[e+84>>2],H[e+88>>2],H[e+92>>2],-1,-1,-1,2147418111);l=H[e+64>>2];k=H[e+68>>2];i=H[e+76>>2];d=H[e+72>>2];break I}d=D-226|0;g=i>>>0>>0;d=d>>31;if(g&(j|0)<=(d|0)|(d|0)>(j|0)){H[4799]=68;bb(e+144|0,t);Ha(e+128|0,H[e+144>>2],H[e+148>>2],H[e+152>>2],H[e+156>>2],0,0,0,65536);Ha(e+112|0,H[e+128>>2],H[e+132>>2],H[e+136>>2],H[e+140>>2],0,0,0,65536);l=H[e+112>>2];k=H[e+116>>2];i=H[e+124>>2];d=H[e+120>>2];break I}if(u){if((u|0)<=8){d=(e+784|0)+(p<<2)|0;g=H[d>>2];while(1){g=N(g,10);u=u+1|0;if((u|0)!=9){continue}break}H[d>>2]=g}p=p+1|0}Q:{f=i;if((x|0)>(f|0)|(x|0)>=9|(f|0)>17){break Q}if((f|0)==9){bb(e+192|0,t);Nb(e+176|0,H[e+784>>2]);Ha(e+160|0,H[e+192>>2],H[e+196>>2],H[e+200>>2],H[e+204>>2],H[e+176>>2],H[e+180>>2],H[e+184>>2],H[e+188>>2]);l=H[e+160>>2];k=H[e+164>>2];i=H[e+172>>2];d=H[e+168>>2];break I}if((f|0)<=8){bb(e+272|0,t);Nb(e+256|0,H[e+784>>2]);Ha(e+240|0,H[e+272>>2],H[e+276>>2],H[e+280>>2],H[e+284>>2],H[e+256>>2],H[e+260>>2],H[e+264>>2],H[e+268>>2]);bb(e+224|0,H[(0-f<<2)+17280>>2]);Ie(e+208|0,H[e+240>>2],H[e+244>>2],H[e+248>>2],H[e+252>>2],H[e+224>>2],H[e+228>>2],H[e+232>>2],H[e+236>>2]);l=H[e+208>>2];k=H[e+212>>2];i=H[e+220>>2];d=H[e+216>>2];break I}d=(N(f,-3)+E|0)+27|0;i=H[e+784>>2];if(i>>>d|0?(d|0)<=30:0){break Q}bb(e+352|0,t);Nb(e+336|0,i);Ha(e+320|0,H[e+352>>2],H[e+356>>2],H[e+360>>2],H[e+364>>2],H[e+336>>2],H[e+340>>2],H[e+344>>2],H[e+348>>2]);bb(e+304|0,H[(f<<2)+17208>>2]);Ha(e+288|0,H[e+320>>2],H[e+324>>2],H[e+328>>2],H[e+332>>2],H[e+304>>2],H[e+308>>2],H[e+312>>2],H[e+316>>2]);l=H[e+288>>2];k=H[e+292>>2];i=H[e+300>>2];d=H[e+296>>2];break I}while(1){d=p;p=d-1|0;if(!H[(e+784|0)+(p<<2)>>2]){continue}break}u=0;i=(f|0)%9|0;R:{if(!i){h=0;break R}h=0;i=(f|0)<0?i+9|0:i;S:{if(!d){d=0;break S}j=H[(0-i<<2)+17280>>2];l=1e9/(j|0)|0;m=0;g=0;while(1){k=m;n=(e+784|0)+(g<<2)|0;m=H[n>>2];p=(m>>>0)/(j>>>0)|0;k=k+p|0;H[n>>2]=k;k=!k&(g|0)==(h|0);h=k?h+1&2047:h;f=k?f-9|0:f;m=N(l,m-N(j,p)|0);g=g+1|0;if((g|0)!=(d|0)){continue}break}if(!m){break S}H[(e+784|0)+(d<<2)>>2]=m;d=d+1|0}f=(f-i|0)+9|0}while(1){p=(e+784|0)+(h<<2)|0;T:{while(1){if(((f|0)!=36|K[p>>2]>=10384593)&(f|0)>=36){break T}n=d+2047|0;m=0;while(1){l=n&2047;n=(e+784|0)+(l<<2)|0;i=H[n>>2];k=i>>>3|0;j=i<<29;i=j+m|0;g=k;g=i>>>0>>0?g+1|0:g;j=g;if(!g&i>>>0<1000000001){m=0}else{g=i;m=Bl(g,j,1e9,0);i=g-zl(m,ea,1e9,0)|0}H[n>>2]=i;d=(l|0)!=(d-1&2047)?d:(h|0)==(l|0)?d:i?d:l;n=l-1|0;if((h|0)!=(l|0)){continue}break}u=u-29|0;if(!m){continue}break}h=h-1&2047;if((h|0)==(d|0)){i=e+784|0;j=i+((d+2046&2047)<<2)|0;d=d-1&2047;H[j>>2]=H[j>>2]|H[i+(d<<2)>>2]}f=f+9|0;H[(e+784|0)+(h<<2)>>2]=m;continue}break}U:{V:while(1){i=d+1&2047;k=(e+784|0)+((d-1&2047)<<2)|0;while(1){j=(f|0)>45?9:1;W:{while(1){n=h;g=0;X:{while(1){Y:{l=g+n&2047;if((l|0)==(d|0)){break Y}l=H[(e+784|0)+(l<<2)>>2];h=H[(g<<2)+17232>>2];if(l>>>0>>0){break Y}if(h>>>0>>0){break X}g=g+1|0;if((g|0)!=4){continue}}break}if((f|0)!=36){break X}i=0;j=0;g=0;l=0;k=0;while(1){h=g+n&2047;if((h|0)==(d|0)){d=d+1&2047;H[(e+(d<<2)|0)+780>>2]=0}Nb(e+768|0,H[(e+784|0)+(h<<2)>>2]);Ha(e+752|0,i,j,l,k,0,0,1342177280,1075633366);ab(e+736|0,H[e+752>>2],H[e+756>>2],H[e+760>>2],H[e+764>>2],H[e+768>>2],H[e+772>>2],H[e+776>>2],H[e+780>>2]);l=H[e+744>>2];k=H[e+748>>2];i=H[e+736>>2];j=H[e+740>>2];g=g+1|0;if((g|0)!=4){continue}break}bb(e+720|0,t);Ha(e+704|0,i,j,l,k,H[e+720>>2],H[e+724>>2],H[e+728>>2],H[e+732>>2]);l=H[e+712>>2];k=H[e+716>>2];i=0;j=0;m=H[e+704>>2];o=H[e+708>>2];x=u+113|0;h=x-D|0;f=(h|0)<(E|0);g=f?(h|0)>0?h:0:E;if((g|0)<=112){break W}break U}u=j+u|0;h=d;if((d|0)==(n|0)){continue}break}l=1e9>>>j|0;m=-1<>2];g=(o>>>j|0)+g|0;H[p>>2]=g;g=!g&(h|0)==(n|0);h=g?h+1&2047:h;f=g?f-9|0:f;g=N(l,m&o);n=n+1&2047;if((n|0)!=(d|0)){continue}break}if(!g){continue}if((h|0)!=(i|0)){H[(e+784|0)+(d<<2)>>2]=g;d=i;continue V}H[k>>2]=H[k>>2]|1;continue}break}break}rb(e+656|0,hd(225-g|0));Ue(e+688|0,H[e+656>>2],H[e+660>>2],H[e+664>>2],H[e+668>>2],m,o,l,k);y=H[e+696>>2];z=H[e+700>>2];A=H[e+688>>2];C=H[e+692>>2];rb(e+640|0,hd(113-g|0));Se(e+672|0,m,o,l,k,H[e+640>>2],H[e+644>>2],H[e+648>>2],H[e+652>>2]);i=H[e+672>>2];j=H[e+676>>2];r=H[e+680>>2];s=H[e+684>>2];gd(e+624|0,m,o,l,k,i,j,r,s);ab(e+608|0,A,C,y,z,H[e+624>>2],H[e+628>>2],H[e+632>>2],H[e+636>>2]);l=H[e+616>>2];k=H[e+620>>2];m=H[e+608>>2];o=H[e+612>>2]}p=n+4&2047;Z:{if((p|0)==(d|0)){break Z}p=H[(e+784|0)+(p<<2)>>2];_:{if(p>>>0<=499999999){if(!p&(n+5&2047)==(d|0)){break _}rb(e+496|0,+(t|0)*.25);ab(e+480|0,i,j,r,s,H[e+496>>2],H[e+500>>2],H[e+504>>2],H[e+508>>2]);r=H[e+488>>2];s=H[e+492>>2];i=H[e+480>>2];j=H[e+484>>2];break _}if((p|0)!=5e8){rb(e+592|0,+(t|0)*.75);ab(e+576|0,i,j,r,s,H[e+592>>2],H[e+596>>2],H[e+600>>2],H[e+604>>2]);r=H[e+584>>2];s=H[e+588>>2];i=H[e+576>>2];j=H[e+580>>2];break _}L=+(t|0);if((n+5&2047)==(d|0)){rb(e+528|0,L*.5);ab(e+512|0,i,j,r,s,H[e+528>>2],H[e+532>>2],H[e+536>>2],H[e+540>>2]);r=H[e+520>>2];s=H[e+524>>2];i=H[e+512>>2];j=H[e+516>>2];break _}rb(e+560|0,L*.75);ab(e+544|0,i,j,r,s,H[e+560>>2],H[e+564>>2],H[e+568>>2],H[e+572>>2]);r=H[e+552>>2];s=H[e+556>>2];i=H[e+544>>2];j=H[e+548>>2]}if((g|0)>111){break Z}Se(e+464|0,i,j,r,s,0,0,0,1073676288);if(Jb(H[e+464>>2],H[e+468>>2],H[e+472>>2],H[e+476>>2],0,0,0,0)){break Z}ab(e+448|0,i,j,r,s,0,0,0,1073676288);r=H[e+456>>2];s=H[e+460>>2];i=H[e+448>>2];j=H[e+452>>2]}ab(e+432|0,m,o,l,k,i,j,r,s);gd(e+416|0,H[e+432>>2],H[e+436>>2],H[e+440>>2],H[e+444>>2],A,C,y,z);l=H[e+424>>2];k=H[e+428>>2];m=H[e+416>>2];o=H[e+420>>2];$:{if((-2-G|0)>=(x&2147483647)){break $}H[e+408>>2]=l;H[e+412>>2]=k&2147483647;H[e+400>>2]=m;H[e+404>>2]=o;Ha(e+384|0,m,o,l,k,0,0,0,1073610752);n=Je(H[e+400>>2],H[e+404>>2],H[e+408>>2],H[e+412>>2],1081081856);d=(n|0)<0;l=d?l:H[e+392>>2];k=d?k:H[e+396>>2];m=d?m:H[e+384>>2];o=d?o:H[e+388>>2];u=((n|0)>=0)+u|0;if((Jb(i,j,r,s,0,0,0,0)|0)!=0&(d?f:f&(g|0)!=(h|0))?0:(u+110|0)<=(J|0)){break $}H[4799]=68}Te(e+368|0,m,o,l,k,u);l=H[e+368>>2];k=H[e+372>>2];i=H[e+380>>2];d=H[e+376>>2]}H[q+40>>2]=d;H[q+44>>2]=i;H[q+32>>2]=l;H[q+36>>2]=k;da=e+8976|0;i=H[q+40>>2];j=H[q+44>>2];l=H[q+32>>2];k=H[q+36>>2];break a;case 3:break j;default:break m}}d=H[h+116>>2];if((d|0)>0|(d|0)>=0){H[h+4>>2]=H[h+4>>2]-1}H[4799]=28;break i}aa:{d=H[h+4>>2];ba:{if((d|0)!=H[h+104>>2]){H[h+4>>2]=d+1;d=I[d|0];break ba}d=Pa(h)}if((d|0)==40){g=1;break aa}j=2147450880;if(H[h+116>>2]<0){break a}H[h+4>>2]=H[h+4>>2]-1;break a}while(1){ca:{d=H[h+4>>2];da:{if((d|0)!=H[h+104>>2]){H[h+4>>2]=d+1;d=I[d|0];break da}d=Pa(h)}if(!(d-48>>>0<10|d-65>>>0<26|(d|0)==95)){if(d-97>>>0>=26){break ca}}g=g+1|0;continue}break}j=2147450880;if((d|0)==41){break a}d=H[h+116>>2];if((d|0)>0|(d|0)>=0){H[h+4>>2]=H[h+4>>2]-1}if(!g){break a}while(1){g=g-1|0;if((d|0)>0|(d|0)>=0){H[h+4>>2]=H[h+4>>2]-1}if(g){continue}break}break a}H[h+112>>2]=0;H[h+116>>2]=0;d=H[h+44>>2]-H[h+4>>2]|0;H[h+120>>2]=d;H[h+124>>2]=d>>31;H[h+104>>2]=H[h+8>>2]}}H[w>>2]=l;H[w+4>>2]=k;H[w+8>>2]=i;H[w+12>>2]=j;da=q+48|0;d=H[w+8>>2];i=H[w+12>>2];j=H[w>>2];g=H[w+4>>2];if(c){H[c>>2]=((H[w+20>>2]+H[w+136>>2]|0)-H[w+60>>2]|0)+b}H[a+8>>2]=d;H[a+12>>2]=i;H[a>>2]=j;H[a+4>>2]=g;da=w+160|0}function _k(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,G=0,J=0,K=0,L=0,M=0,O=0,Q=0,S=0,V=0,W=0,Y=0,Z=0,_=0,$=0,aa=0,ba=0,ca=0;i=da-224|0;da=i;H[a+8>>2]=e;B=a+32|0;h=H[B>>2];f=H[a+36>>2]-h>>2;a:{if(f>>>0>>0){Fa(B,e-f|0);break a}if(e>>>0>=f>>>0){break a}H[a+36>>2]=h+(e<<2)}b:{if(!d){break b}g=H[b>>2];c:{if((d|0)<2){d=g;break c}h=1;f=d-1|0;l=f&1;d:{if((d|0)==2){d=g;break d}q=f&-2;f=0;d=g;while(1){k=(h<<2)+b|0;j=H[k+4>>2];k=H[k>>2];r=(k|0)<(d|0);d=r?k:d;y=(d|0)>(j|0);d=y?j:d;g=r?g:(g|0)<(k|0)?k:g;g=y?g:(g|0)<(j|0)?j:g;h=h+2|0;f=f+2|0;if((q|0)!=(f|0)){continue}break}}if(!l){break c}f=H[(h<<2)+b>>2];h=(f|0)<(d|0);d=h?f:d;g=h?g:(f|0)>(g|0)?f:g}H[a+16>>2]=g;H[a+12>>2]=d;f=(g>>31)-((d>>31)+(d>>>0>g>>>0)|0)|0;d=g-d|0;if(!f&d>>>0>2147483646|f){break b}d=d+1|0;H[a+20>>2]=d;f=d>>>1|0;H[a+24>>2]=f;H[a+28>>2]=0-f;if(d&1){break b}H[a+24>>2]=f-1}Y=H[a+52>>2];u=H[a+48>>2];H[i+184>>2]=0;H[i+188>>2]=0;H[i+176>>2]=0;H[i+180>>2]=0;H[i+168>>2]=0;H[i+172>>2]=0;H[i+160>>2]=0;H[i+164>>2]=0;H[i+152>>2]=0;H[i+156>>2]=0;H[i+144>>2]=0;H[i+148>>2]=0;e:{if(!e){g=0;d=0;break e}Fa(i+144|0,e);g=H[i+156>>2];d=H[i+160>>2]}d=d-g>>2;f:{if(d>>>0>=e>>>0){if(d>>>0<=e>>>0){break f}H[i+160>>2]=(e<<2)+g;break f}Fa(i+144|12,e-d|0)}f=H[i+168>>2];d=H[i+172>>2]-f>>2;g:{if(d>>>0>=e>>>0){if(d>>>0<=e>>>0){break g}H[i+172>>2]=f+(e<<2);break g}Fa(i+168|0,e-d|0)}h:{i:{f=H[i+180>>2];d=H[i+184>>2]-f>>2;j:{k:{if(d>>>0>=e>>>0){if(d>>>0>e>>>0){H[i+184>>2]=f+(e<<2)}H[i+136>>2]=0;H[i+128>>2]=0;H[i+132>>2]=0;if(e){break k}d=1;break j}Fa(i+180|0,e-d|0);H[i+136>>2]=0;H[i+128>>2]=0;H[i+132>>2]=0}if(e>>>0>=1073741824){break i}d=e<<2;f=ra(d);H[i+128>>2]=f;h=d+f|0;H[i+136>>2]=h;ta(f,0,d);H[i+132>>2]=h;d=0}z=a+152|0;h=H[a+152>>2];f=H[a+156>>2]-h>>2;l:{if(f>>>0>>0){Fa(z,e-f|0);break l}if(e>>>0>=f>>>0){break l}H[a+156>>2]=h+(e<<2)}H[i+104>>2]=0;H[i+108>>2]=0;H[i+96>>2]=0;H[i+100>>2]=0;H[i+88>>2]=0;H[i+92>>2]=0;H[i+80>>2]=0;H[i+84>>2]=0;H[i+72>>2]=0;H[i+76>>2]=0;f=i- -64|0;H[f>>2]=0;H[f+4>>2]=0;H[i+56>>2]=0;H[i+60>>2]=0;H[i+48>>2]=0;H[i+52>>2]=0;q=0;if(!d){d=e<<2;q=ra(d);A=ta(q,0,d)+d|0}d=H[a+56>>2];d=H[d+4>>2]-H[d>>2]|0;if((d|0)<5){break h}L=e&-2;M=e&1;Z=e&-4;S=e&3;G=e-1|0;V=e<<2;O=a+112|0;y=d>>>2|0;Q=A-q|0;W=Q&-4;C=Q>>2;_=i+36|0;$=i+24|0;while(1){f=H[a+56>>2];d=H[f>>2];m:{n:{r=y-1|0;if(r>>>0>2]-d>>2>>>0){f=0;j=0;k=H[d+(r<<2)>>2];o:{if((k|0)==-1){break o}o=1;d=k+2|0;j=(k>>>0)%3|0;v=j?k-1|0:d;w=1<>>5|0;h=0;J=(j|0)!=0|(d|0)!=-1;K=H[u>>2];d=k;while(1){p:{if(H[K+(d>>>3&536870908)>>2]>>>d&1){break p}j=H[H[H[u+64>>2]+12>>2]+(d<<2)>>2];if((j|0)==-1){break p}l=H[Y>>2];g=H[u+28>>2];m=H[l+(H[g+(j<<2)>>2]<<2)>>2];if((m|0)>=(r|0)){break p}n=j+1|0;n=H[l+(H[g+(((n>>>0)%3|0?n:j-2|0)<<2)>>2]<<2)>>2];if((n|0)>=(r|0)){break p}g=H[l+(H[g+(j+((j>>>0)%3|0?-1:2)<<2)>>2]<<2)>>2];if((g|0)>=(r|0)){break p}q:{if(!e){break q}j=H[(i+144|0)+N(h,12)>>2];l=N(e,g);n=N(e,n);p=N(e,m);g=0;m=0;if(G){while(1){H[j+(g<<2)>>2]=(H[(g+l<<2)+b>>2]+H[(g+n<<2)+b>>2]|0)-H[(g+p<<2)+b>>2];x=g|1;H[j+(x<<2)>>2]=(H[(l+x<<2)+b>>2]+H[(n+x<<2)+b>>2]|0)-H[(p+x<<2)+b>>2];g=g+2|0;m=m+2|0;if((L|0)!=(m|0)){continue}break}}if(!M){break q}H[j+(g<<2)>>2]=(H[(g+l<<2)+b>>2]+H[(g+n<<2)+b>>2]|0)-H[(g+p<<2)+b>>2]}j=4;h=h+1|0;if((h|0)==4){break o}}r:{if(o&1){g=d-2|0;j=d+1|0;d=-1;j=(j>>>0)%3|0?j:g;if((j|0)==-1|H[H[u>>2]+(j>>>3&536870908)>>2]>>>j&1){break r}j=H[H[H[u+64>>2]+12>>2]+(j<<2)>>2];if((j|0)==-1){break r}d=j+1|0;d=(d>>>0)%3|0?d:j-2|0;break r}s:{if((d>>>0)%3|0){g=d-1|0;break s}g=d+2|0;d=-1;if((g|0)==-1){break r}}d=-1;if(H[H[u>>2]+(g>>>3&536870908)>>2]>>>g&1){break r}j=H[H[H[u+64>>2]+12>>2]+(g<<2)>>2];if((j|0)==-1){break r}if((j>>>0)%3|0){d=j-1|0;break r}d=j+2|0}if((d|0)==(k|0)){j=h;break o}if(!((o^1)&1|(d|0)!=-1)){if(!J){j=h;break o}if(w&H[H[u>>2]+(D<<2)>>2]){j=h;break o}d=H[H[H[u+64>>2]+12>>2]+(v<<2)>>2];if((d|0)==-1){j=h;break o}o=0;d=(d>>>0)%3|0?d-1|0:d+2|0}j=h;if((d|0)!=-1){continue}break}}F[i+16|0]=0;H[i+8>>2]=0;H[i+12>>2]=0;H[i+44>>2]=0;H[i+36>>2]=0;H[i+40>>2]=0;H[i+28>>2]=0;H[i+32>>2]=0;H[i+20>>2]=0;H[i+24>>2]=0;K=N(e,r)<<2;x=K+b|0;k=(N(y-2|0,e)<<2)+b|0;l=H[z>>2];d=0;if(e){while(1){g=f<<2;h=H[g+k>>2]-H[g+x>>2]|0;H[g+q>>2]=h;H[g+l>>2]=(h|0)<0?(h^-1)<<1|1:h<<1;g=d;d=h>>31;d=g+((d^h)-d|0)|0;f=f+1|0;if((f|0)!=(e|0)){continue}break}}f=i+200|0;Eb(f,O,l,e);h=Db(f);g=ea;m=h;h=H[f+12>>2];f=H[f+16>>2];l=(((h-f|0)+1|0)/64|0)+f<<3;f=f<<3;o=f;h=l+f|0;f=(l>>31)+(f>>31)|0;f=h>>>0>>0?f+1|0:f;l=h;h=m+h|0;f=f+g|0;f=h>>>0>>0?f+1|0:f;g=h;D=(j|0)<=0;if(!D){o=(j<<3)-8|0;h=o+(i+48|0)|0;m=h;l=j+H[h>>2]|0;h=H[h+4>>2];h=j>>>0>l>>>0?h+1|0:h;H[m>>2]=l;H[m+4>>2]=h;t=U(Fb(l,H[o+(i+80|0)>>2])*(+(l>>>0)+ +(h|0)*4294967296));t:{if(P(t)<0x8000000000000000){l=P(t)>=1?~~(t>0?R(T(t*2.3283064365386963e-10),4294967295):U((t-+(~~t>>>0>>>0))*2.3283064365386963e-10))>>>0:0;h=~~t>>>0;break t}l=-2147483648;h=0}h=g+h|0;g=h}H[i+20>>2]=0;F[i+16|0]=0;H[i+8>>2]=g;H[i+12>>2]=d;cb($,k,k+V|0);Uc(_,q,A);u:{v:{if(!D){l=(i+124|0)+j|0;k=l-1|0;d=(j<<3)-8|0;J=d+(i+48|0)|0;aa=d+(i+80|0)|0;o=1;v=0;while(1){d=i+124|0;ta(d,1,j);v=v+1|0;ta(d,0,v);w:{x:while(1){if(e){ta(H[i+128>>2],0,V)}m=0;d=H[i+128>>2];w=0;while(1){if(!I[(i+124|0)+m|0]){y:{if(!e){break y}n=H[(i+144|0)+N(m,12)>>2];h=0;g=0;f=0;if(G>>>0>2){while(1){p=g<<2;s=p+d|0;H[s>>2]=H[s>>2]+H[n+p>>2];s=p|4;E=s+d|0;H[E>>2]=H[E>>2]+H[n+s>>2];s=p|8;E=s+d|0;H[E>>2]=H[E>>2]+H[n+s>>2];p=p|12;s=p+d|0;H[s>>2]=H[s>>2]+H[n+p>>2];g=g+4|0;f=f+4|0;if((Z|0)!=(f|0)){continue}break}}if(!S){break y}while(1){f=g<<2;p=f+d|0;H[p>>2]=H[p>>2]+H[f+n>>2];g=g+1|0;h=h+1|0;if((S|0)!=(h|0)){continue}break}}w=1<>2];d=0;break z}g=0;d=H[i+128>>2];f=0;if(G){while(1){h=g<<2;m=h+d|0;H[m>>2]=H[m>>2]/(o|0);h=d+(h|4)|0;H[h>>2]=H[h>>2]/(o|0);g=g+2|0;f=f+2|0;if((L|0)!=(f|0)){continue}break}}if(M){d=d+(g<<2)|0;H[d>>2]=H[d>>2]/(o|0)}h=H[z>>2];f=0;d=0;if(!e){break z}n=H[i+128>>2];while(1){m=f<<2;g=H[m+n>>2]-H[m+x>>2]|0;H[m+q>>2]=g;H[h+m>>2]=(g|0)<0?(g^-1)<<1|1:g<<1;m=d;d=g>>31;d=m+((d^g)-d|0)|0;f=f+1|0;if((f|0)!=(e|0)){continue}break}}f=i+200|0;Eb(f,O,h,e);h=Db(f);m=h;h=H[f+12>>2];f=H[f+16>>2];g=(((h-f|0)+1|0)/64|0)+f<<3;f=f<<3;h=g+f|0;f=m+h|0;g=f;if((j|0)>0){f=H[J+4>>2];h=H[J>>2];t=U(Fb(h,H[aa>>2]+o|0)*(+(h>>>0)+ +(f|0)*4294967296));A:{if(P(t)<0x8000000000000000){f=~~t>>>0;break A}f=0}g=f+g|0}f=H[i+8>>2];if(!((f|0)<=(g|0)&((f|0)<(g|0)|(d|0)>=H[i+12>>2]))){H[i+20>>2]=o;F[i+16|0]=w;H[i+8>>2]=g;H[i+12>>2]=d;m=H[i+132>>2];h=H[i+128>>2];n=m-h|0;g=n>>2;d=H[i+32>>2];f=H[i+24>>2];B:{if(g>>>0<=d-f>>2>>>0){n=H[i+28>>2]-f|0;d=n+h|0;w=n>>2;n=w>>>0>>0?d:m;p=n-h|0;if((h|0)!=(n|0)){xa(f,h,p)}if(g>>>0>w>>>0){g=H[i+28>>2];if((m|0)==(n|0)){break B}while(1){H[g>>2]=H[d>>2];g=g+4|0;d=d+4|0;if((m|0)!=(d|0)){continue}break}break B}g=f+p|0;break B}if(f){H[i+28>>2]=f;qa(f);H[i+32>>2]=0;H[i+24>>2]=0;H[i+28>>2]=0;d=0}if((n|0)<0){break v}f=d>>1;d=d>>>0<2147483644?f>>>0>g>>>0?f:g:1073741823;if(d>>>0>=1073741824){break v}d=d<<2;g=ra(d);H[i+24>>2]=g;H[i+32>>2]=d+g;if((h|0)==(m|0)){break B}d=n&-4;g=sa(g,h,d)+d|0}H[i+28>>2]=g;d=H[i+44>>2];f=H[i+36>>2];C:{if(d-f>>2>>>0>=C>>>0){h=H[i+40>>2]-f|0;d=h+q|0;m=h>>2;h=m>>>0>>0?d:A;g=h-q|0;if((h|0)!=(q|0)){xa(f,q,g)}if(m>>>0>>0){g=H[i+40>>2];if((h|0)==(A|0)){break C}while(1){H[g>>2]=H[d>>2];g=g+4|0;d=d+4|0;if((A|0)!=(d|0)){continue}break}break C}g=f+g|0;break C}if(f){H[i+40>>2]=f;qa(f);H[i+44>>2]=0;H[i+36>>2]=0;H[i+40>>2]=0;d=0}if((Q|0)<0){break u}f=d>>1;d=d>>>0<2147483644?f>>>0>C>>>0?f:C:1073741823;if(d>>>0>=1073741824){break u}d=d<<2;g=ra(d);H[i+36>>2]=g;H[i+44>>2]=d+g;if((q|0)==(A|0)){break C}g=sa(g,q,W)+W|0}H[i+40>>2]=g}if((k|0)==(i+124|0)){break w}g=I[k|0];d=-1;while(1){m=g&255;f=d-1|0;h=f+l|0;g=I[h|0];if(m>>>0>g>>>0){f=l;while(1){f=f-1|0;m=I[f|0];if(m>>>0<=g>>>0){continue}break}F[h|0]=m;F[f|0]=g;if((d|0)==-1){continue x}g=d+l|0;d=k;while(1){f=I[g|0];F[g|0]=I[d|0];F[d|0]=f;d=d-1|0;g=g+1|0;if(d>>>0>g>>>0){continue}break}continue x}d=f;if((h|0)!=(i+124|0)){continue}break}break}f=i+124|0;g=f;d=k;if(f>>>0>=d>>>0){break w}while(1){f=I[g|0];F[g|0]=I[d|0];F[d|0]=f;d=d-1|0;g=g+1|0;if(d>>>0>g>>>0){continue}break}}o=o+1|0;if((j|0)!=(v|0)){continue}break}}if((j|0)>0){d=(j<<3)+i|0;f=H[i+20>>2];g=f;h=f+H[d+72>>2]|0;f=H[d+76>>2]+(f>>31)|0;H[d+72>>2]=h;H[d+76>>2]=g>>>0>h>>>0?f+1|0:f}if(!e){break m}d=H[z>>2];g=0;h=H[i+36>>2];f=0;if(!G){break n}while(1){l=g<<2;k=H[l+h>>2];H[d+l>>2]=(k|0)<0?(k^-1)<<1|1:k<<1;l=l|4;k=H[l+h>>2];H[d+l>>2]=(k|0)<0?(k^-1)<<1|1:k<<1;g=g+2|0;f=f+2|0;if((L|0)!=(f|0)){continue}break}break n}ua();X()}ua();X()}va();X()}if(!M){break m}f=h;h=g<<2;f=H[f+h>>2];H[d+h>>2]=(f|0)<0?(f^-1)<<1|1:f<<1}Mc(i+200|0,O,H[z>>2],e);D:{if(D){break D}g=N(j,12)+a|0;d=0;while(1){E:{k=H[g+56>>2];l=k<<5;f=H[g+52>>2];F:{if(!(I[i+16|0]>>>d&1)){h=f;G:{if((f|0)!=(l|0)){break G}if((f+1|0)<0){break E}H:{if(f>>>0<=1073741822){k=k<<6;l=f+32&-32;k=k>>>0>l>>>0?k:l;h=f;if(f>>>0>=k>>>0){break G}if((k|0)>=0){break H}break E}k=2147483647;h=-1;if(f>>>0>=2147483647){break G}}l=(k-1>>>5|0)+1|0;h=ra(l<<2);k=H[g+48>>2];H[h+((f>>>0<33?0:f-1>>>5|0)<<2)>>2]=0;I:{J:{if(!f){break J}o=f>>>5<<2;m=xa(h,k,o);n=f&31;if(!n){break J}h=m+o|0;p=h;s=H[h>>2];h=-1>>>32-n|0;H[p>>2]=s&(h^-1)|h&H[k+o>>2];H[g+48>>2]=m;H[g+52>>2]=f;H[g+56>>2]=l;break I}H[g+48>>2]=h;H[g+52>>2]=f;H[g+56>>2]=l;h=f;if(!k){break G}}qa(k);h=H[g+52>>2]}H[g+52>>2]=h+1;f=H[g+48>>2]+(h>>>3&536870908)|0;H[f>>2]=H[f>>2]|1<>>0<=1073741822){k=k<<6;l=f+32&-32;k=k>>>0>l>>>0?k:l;h=f;if(f>>>0>=k>>>0){break K}if((k|0)<0){break E}break L}k=2147483647;h=-1;if(f>>>0>=2147483647){break K}}l=(k-1>>>5|0)+1|0;h=ra(l<<2);k=H[g+48>>2];H[h+((f>>>0<33?0:f-1>>>5|0)<<2)>>2]=0;M:{N:{if(!f){break N}o=f>>>5<<2;m=xa(h,k,o);n=f&31;if(!n){break N}h=m+o|0;p=h;s=H[h>>2];h=-1>>>32-n|0;H[p>>2]=s&(h^-1)|h&H[k+o>>2];H[g+48>>2]=m;H[g+52>>2]=f;H[g+56>>2]=l;break M}H[g+48>>2]=h;H[g+52>>2]=f;H[g+56>>2]=l;h=f;if(!k){break K}}qa(k);h=H[g+52>>2]}H[g+52>>2]=h+1;f=H[g+48>>2]+(h>>>3&536870908)|0;k=H[f>>2];ba=f,ca=Dl(h)&k,H[ba>>2]=ca}d=d+1|0;if((j|0)!=(d|0)){continue}break D}break}ua();X()}g=H[a+8>>2];if((g|0)>0){o=c+K|0;d=H[B>>2];k=0;f=H[i+24>>2];while(1){h=d;if((g|0)>0){h=H[B>>2];g=0;while(1){j=g<<2;l=H[j+f>>2];m=H[a+16>>2];O:{if((l|0)>(m|0)){H[h+j>>2]=m;break O}j=h+j|0;m=H[a+12>>2];if((m|0)>(l|0)){H[j>>2]=m;break O}H[j>>2]=l}g=g+1|0;if((g|0)>2]){continue}break}}j=k<<2;f=j+o|0;j=H[j+x>>2]-H[h+j>>2]|0;H[f>>2]=j;P:{if((j|0)>2]){g=j+H[a+20>>2]|0}else{if((j|0)<=H[a+24>>2]){break P}g=j-H[a+20>>2]|0}H[f>>2]=g}f=h;g=H[a+8>>2];k=k+1|0;if((g|0)>(k|0)){continue}break}}d=H[i+36>>2];if(d){H[i+40>>2]=d;qa(d)}d=H[i+24>>2];if(d){H[i+28>>2]=d;qa(d)}d=(y|0)>2;y=r;if(d){continue}break}break h}ua();X()}if((e|0)>0){ta(H[i+144>>2],0,e<<2)}g=H[a+8>>2];if((g|0)>0){d=H[a+32>>2];k=0;f=H[i+144>>2];while(1){h=d;if((g|0)>0){h=H[B>>2];g=0;while(1){e=g<<2;j=H[e+f>>2];r=H[a+16>>2];Q:{if((j|0)>(r|0)){H[e+h>>2]=r;break Q}e=e+h|0;r=H[a+12>>2];if((r|0)>(j|0)){H[e>>2]=r;break Q}H[e>>2]=j}g=g+1|0;if((g|0)>2]){continue}break}}f=k<<2;e=f+c|0;f=H[b+f>>2]-H[f+h>>2]|0;H[e>>2]=f;R:{if((f|0)>2]){f=f+H[a+20>>2]|0}else{if((f|0)<=H[a+24>>2]){break R}f=f-H[a+20>>2]|0}H[e>>2]=f}f=h;g=H[a+8>>2];k=k+1|0;if((g|0)>(k|0)){continue}break}}if(q){qa(q)}a=H[i+128>>2];if(a){H[i+132>>2]=a;qa(a)}a=H[i+180>>2];if(a){H[i+184>>2]=a;qa(a)}a=H[i+168>>2];if(a){H[i+172>>2]=a;qa(a)}a=H[i+156>>2];if(a){H[i+160>>2]=a;qa(a)}a=H[i+144>>2];if(a){H[i+148>>2]=a;qa(a)}da=i+224|0;return 1}function Ej(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0;k=da-32|0;da=k;c=H[b+8>>2];a:{if(I[b+352|0]){d=cf(c);c=H[b+12>>2];H[b+12>>2]=d;if(!c){break a}Kb(c);break a}d=df(c);c=H[b+12>>2];H[b+12>>2]=d;if(!c){break a}Kb(c)}b:{c=H[b+12>>2];c:{if(!(H[c+40>>2]!=((H[c+4>>2]-H[c>>2]>>2>>>0)/3|0)?c:0)){b=ra(32);c=I[1828]|I[1829]<<8|(I[1830]<<16|I[1831]<<24);d=I[1824]|I[1825]<<8|(I[1826]<<16|I[1827]<<24);F[b+21|0]=d;F[b+22|0]=d>>>8;F[b+23|0]=d>>>16;F[b+24|0]=d>>>24;F[b+25|0]=c;F[b+26|0]=c>>>8;F[b+27|0]=c>>>16;F[b+28|0]=c>>>24;c=I[1823]|I[1824]<<8|(I[1825]<<16|I[1826]<<24);d=I[1819]|I[1820]<<8|(I[1821]<<16|I[1822]<<24);F[b+16|0]=d;F[b+17|0]=d>>>8;F[b+18|0]=d>>>16;F[b+19|0]=d>>>24;F[b+20|0]=c;F[b+21|0]=c>>>8;F[b+22|0]=c>>>16;F[b+23|0]=c>>>24;c=I[1815]|I[1816]<<8|(I[1817]<<16|I[1818]<<24);d=I[1811]|I[1812]<<8|(I[1813]<<16|I[1814]<<24);F[b+8|0]=d;F[b+9|0]=d>>>8;F[b+10|0]=d>>>16;F[b+11|0]=d>>>24;F[b+12|0]=c;F[b+13|0]=c>>>8;F[b+14|0]=c>>>16;F[b+15|0]=c>>>24;c=I[1807]|I[1808]<<8|(I[1809]<<16|I[1810]<<24);d=I[1803]|I[1804]<<8|(I[1805]<<16|I[1806]<<24);F[b|0]=d;F[b+1|0]=d>>>8;F[b+2|0]=d>>>16;F[b+3|0]=d>>>24;F[b+4|0]=c;F[b+5|0]=c>>>8;F[b+6|0]=c>>>16;F[b+7|0]=c>>>24;F[b+29|0]=0;H[a>>2]=-1;Ia(a+4|0,b,29);qa(b);break c}j=b+200|0;d=j;H[d+128>>2]=2;H[d+132>>2]=7;H[d+64>>2]=b;c=fa[H[H[b>>2]+32>>2]](b)|0;H[d+88>>2]=c;e=H[c+28>>2]-H[c+24>>2]>>2;c=H[d+108>>2];h=H[d+104>>2];d=c-h>>2;d:{if(e>>>0>d>>>0){Fa(j+104|0,e-d|0);h=H[j+104>>2];c=H[j+108>>2];break d}if(d>>>0<=e>>>0){break d}c=(e<<2)+h|0;H[j+108>>2]=c}if((c|0)!=(h|0)){h=0;while(1){p=H[j+104>>2];r=p+(h<<2)|0;c=H[j+88>>2];g=-1;e:{if((h|0)==-1){break e}g=0;d=H[H[c+24>>2]+(h<<2)>>2];if((d|0)==-1){break e}o=H[c+12>>2];e=1;c=d;while(1){g=g+1|0;f=e;f:{if(e&255){e=0;l=c+1|0;c=(l>>>0)%3|0?l:c-2|0;if((c|0)==-1){c=d;break f}l=H[o+(c<<2)>>2];if((l|0)==-1){c=d;break f}c=d;q=l+1|0;l=(q>>>0)%3|0?q:l-2|0;if((l|0)==-1){break f}e=f;c=l;if((d|0)!=(c|0)){break f}break e}g:{if((c>>>0)%3|0){c=c-1|0;break g}c=c+2|0;if((c|0)==-1){break e}}c=H[o+(c<<2)>>2];if((c|0)==-1){break e}c=(c>>>0)%3|0?c-1|0:c+2|0;e=0}if((c|0)!=-1){continue}break}}H[r>>2]=g;h=h+1|0;if(h>>>0>2]-p>>2>>>0){continue}break}}e=j+92|0;h=H[j+88>>2];c=H[h>>2];d=H[h+4>>2]-c>>2;g=H[j+92>>2];f=H[j+96>>2]-g>>2;h:{if(d>>>0>f>>>0){Fa(e,d-f|0);h=H[j+88>>2];c=H[h>>2];break h}if(d>>>0>=f>>>0){break h}H[j+96>>2]=g+(d<<2)}d=H[h+4>>2];i:{if((d|0)==(c|0)){break i}d=d-c>>2;f=d>>>0>1?d:1;g=f&3;d=H[e>>2];h=0;if(f-1>>>0>=3){l=f&-4;e=0;while(1){f=h<<2;H[f+d>>2]=H[c+f>>2];o=f|4;H[o+d>>2]=H[c+o>>2];o=f|8;H[o+d>>2]=H[c+o>>2];f=f|12;H[f+d>>2]=H[c+f>>2];h=h+4|0;e=e+4|0;if((l|0)!=(e|0)){continue}break}}if(!g){break i}while(1){e=h<<2;H[e+d>>2]=H[c+e>>2];h=h+1|0;i=i+1|0;if((g|0)!=(i|0)){continue}break}}e=(H[j+132>>2]-H[j+128>>2]|0)+1|0;c=H[j+140>>2];d=H[j+136>>2];f=(c-d|0)/12|0;j:{if(e>>>0>f>>>0){h=0;c=e-f|0;g=H[j+144>>2];d=H[j+140>>2];if(c>>>0<=(g-d|0)/12>>>0){if(c){c=N(c,12)-12|0;c=(c-((c>>>0)%12|0)|0)+12|0;d=ta(d,0,c)+c|0}H[j+140>>2]=d;break j}k:{l:{m:{f=H[j+136>>2];l=(d-f|0)/12|0;e=l+c|0;if(e>>>0<357913942){g=(g-f|0)/12|0;i=g<<1;g=g>>>0<178956970?e>>>0>>0?i:e:357913941;if(g){if(g>>>0>=357913942){break m}h=ra(N(g,12))}e=N(l,12)+h|0;c=N(c,12)-12|0;l=(c-((c>>>0)%12|0)|0)+12|0;c=ta(e,0,l);l=c+l|0;g=N(g,12)+h|0;if((d|0)==(f|0)){break l}while(1){e=e-12|0;d=d-12|0;H[e>>2]=H[d>>2];H[e+4>>2]=H[d+4>>2];H[e+8>>2]=H[d+8>>2];H[d+8>>2]=0;H[d>>2]=0;H[d+4>>2]=0;if((d|0)!=(f|0)){continue}break}H[j+144>>2]=g;c=H[j+140>>2];H[j+140>>2]=l;d=H[j+136>>2];H[j+136>>2]=e;if((c|0)==(d|0)){break k}while(1){e=c-12|0;f=H[e>>2];if(f){H[c-8>>2]=f;qa(f)}c=e;if((c|0)!=(d|0)){continue}break}break k}break b}ya();X()}H[j+144>>2]=g;H[j+140>>2]=l;H[j+136>>2]=c}if(d){qa(d)}break j}if(e>>>0>>0){e=d+N(e,12)|0;if((e|0)!=(c|0)){while(1){d=c-12|0;f=H[d>>2];if(f){H[c-8>>2]=f;qa(f)}c=d;if((c|0)!=(e|0)){continue}break}}H[j+140>>2]=e}}c=H[b+12>>2];Da((H[c+28>>2]-H[c+24>>2]>>2)-H[c+44>>2]|0,H[H[b+4>>2]+44>>2]);c=H[b+12>>2];Da(((H[c+4>>2]-H[c>>2]>>2>>>0)/3|0)-H[c+40>>2]|0,H[H[b+4>>2]+44>>2]);c=H[b+8>>2];d=H[c+100>>2];c=H[c+96>>2];F[k+16|0]=0;l=b+28|0;d=(d-c|0)/12|0;c=k+16|0;Qa(l,d,c);d=H[b+12>>2];e=H[d+28>>2];d=H[d+24>>2];H[k+16>>2]=-1;xb(b+52|0,e-d>>2,c);d=H[b+40>>2];H[b+44>>2]=d;c=H[b+12>>2];e=H[c+4>>2]-H[c>>2]>>2;e=e-((e>>>0)%3|0)|0;n:{if(e>>>0<=H[b+48>>2]-d>>2>>>0){break n}if(e>>>0>=1073741824){break b}f=e<<2;e=ra(f);H[b+44>>2]=e;H[b+40>>2]=e;H[b+48>>2]=e+f;if(!d){break n}qa(d);c=H[b+12>>2]}d=H[c+28>>2];c=H[c+24>>2];F[k+16|0]=0;Qa(b+84|0,d-c>>2,k+16|0);H[b+164>>2]=-1;H[b+168>>2]=0;H[b+100>>2]=H[b+96>>2];H[b+112>>2]=H[b+108>>2];if(H[b+132>>2]){c=H[b+128>>2];if(c){while(1){d=H[c>>2];qa(c);c=d;if(c){continue}break}}c=0;H[b+128>>2]=0;d=H[b+124>>2];o:{if(!d){break o}if(d-1>>>0>=3){f=d&-4;while(1){e=c<<2;H[e+H[b+120>>2]>>2]=0;H[H[b+120>>2]+(e|4)>>2]=0;H[H[b+120>>2]+(e|8)>>2]=0;H[H[b+120>>2]+(e|12)>>2]=0;c=c+4|0;m=m+4|0;if((f|0)!=(m|0)){continue}break}}d=d&3;if(!d){break o}e=0;while(1){H[H[b+120>>2]+(c<<2)>>2]=0;c=c+1|0;e=e+1|0;if((d|0)!=(e|0)){continue}break}}H[b+132>>2]=0}H[b+144>>2]=0;c=H[b+12>>2];d=H[c+28>>2];c=H[c+24>>2];H[k+16>>2]=-1;xb(b+152|0,d-c>>2,k+16|0);c=H[b+72>>2];H[b+76>>2]=c;o=b+72|0;d=H[b+12>>2];d=H[d+4>>2]-H[d>>2]|0;e=(d>>2>>>0)/3|0;p:{if(e>>>0<=H[b+80>>2]-c>>2>>>0){break p}if((d|0)<0){break b}e=e<<2;d=ra(e);H[b+76>>2]=d;H[b+72>>2]=d;H[b+80>>2]=d+e;if(!c){break p}qa(c)}H[b- -64>>2]=0;if(!dg(b)){b=ra(32);c=I[1768]|I[1769]<<8|(I[1770]<<16|I[1771]<<24);d=I[1764]|I[1765]<<8|(I[1766]<<16|I[1767]<<24);F[b+21|0]=d;F[b+22|0]=d>>>8;F[b+23|0]=d>>>16;F[b+24|0]=d>>>24;F[b+25|0]=c;F[b+26|0]=c>>>8;F[b+27|0]=c>>>16;F[b+28|0]=c>>>24;c=I[1763]|I[1764]<<8|(I[1765]<<16|I[1766]<<24);d=I[1759]|I[1760]<<8|(I[1761]<<16|I[1762]<<24);F[b+16|0]=d;F[b+17|0]=d>>>8;F[b+18|0]=d>>>16;F[b+19|0]=d>>>24;F[b+20|0]=c;F[b+21|0]=c>>>8;F[b+22|0]=c>>>16;F[b+23|0]=c>>>24;c=I[1755]|I[1756]<<8|(I[1757]<<16|I[1758]<<24);d=I[1751]|I[1752]<<8|(I[1753]<<16|I[1754]<<24);F[b+8|0]=d;F[b+9|0]=d>>>8;F[b+10|0]=d>>>16;F[b+11|0]=d>>>24;F[b+12|0]=c;F[b+13|0]=c>>>8;F[b+14|0]=c>>>16;F[b+15|0]=c>>>24;c=I[1747]|I[1748]<<8|(I[1749]<<16|I[1750]<<24);d=I[1743]|I[1744]<<8|(I[1745]<<16|I[1746]<<24);F[b|0]=d;F[b+1|0]=d>>>8;F[b+2|0]=d>>>16;F[b+3|0]=d>>>24;F[b+4|0]=c;F[b+5|0]=c>>>8;F[b+6|0]=c>>>16;F[b+7|0]=c>>>24;F[b+29|0]=0;H[a>>2]=-1;Ia(a+4|0,b,29);qa(b);break c}e=0;d=b;q:{if(I[d+352|0]){break q}b=H[d+8>>2];f=H[b+12>>2]-H[b+8>>2]|0;g=f>>2;c=g-1|0;b=H[d+176>>2];i=H[d+172>>2];h=(b-i|0)/136|0;r:{if(c>>>0>h>>>0){Xf(d+172|0,c-h|0);break r}if(c>>>0>=h>>>0){break r}h=i+N(c,136)|0;if((h|0)!=(b|0)){while(1){c=b-136|0;i=H[c+116>>2];if(i){H[b-16>>2]=i;qa(i)}i=H[b-32>>2];if(i){H[b-28>>2]=i;qa(i)}pc(b-132|0);b=c;if((c|0)!=(h|0)){continue}break}}H[d+176>>2]=h}if((f|0)==4|(f|0)<=0){break q}h=(g|0)>1?g:1;b=0;s:{while(1){i=H[H[H[d+8>>2]+8>>2]+(b<<2)>>2];if(H[i+56>>2]){m=N(e,136);c=m+H[d+172>>2]|0;H[c>>2]=b;f=H[c+104>>2];H[c+108>>2]=f;g=H[d+12>>2];g=H[g+4>>2]-H[g>>2]|0;p=g>>2;t:{if(p>>>0<=H[c+112>>2]-f>>2>>>0){break t}if((g|0)<0){break s}g=ra(g);H[c+108>>2]=g;H[c+104>>2]=g;H[c+112>>2]=g+(p<<2);if(!f){break t}qa(f)}c=m+H[d+172>>2]|0;H[c+128>>2]=0;ef(c+4|0,H[d+8>>2],H[d+12>>2],i);e=e+1|0}b=b+1|0;if((h|0)!=(b|0)){continue}break}break q}break b}b=(H[d+176>>2]-H[d+172>>2]|0)/136|0;F[k+31|0]=b;c=H[H[d+4>>2]+44>>2];e=H[c+20>>2];if(!H[c+16>>2]&(e|0)<=0|(e|0)<0){wa(c,H[c+4>>2],k+31|0,k+32|0);b=I[k+31|0]}H[d+284>>2]=b&255;b=H[d+12>>2];c=H[b>>2];e=H[b+4>>2];cg(j);H[k+24>>2]=0;H[k+16>>2]=0;H[k+20>>2]=0;b=0;u:{v:{w:{c=e-c|0;if((c|0)>0){c=c>>>2|0;p=c>>>0>1?c:1;c=0;while(1){e=(c>>>0)/3|0;r=e>>>5<<2;q=1<>2]>>2]&q){break x}if(Dc(H[d+12>>2],e)){break x}H[k>>2]=0;e=bg(d,e,k);Ga(j,e);f=H[k>>2];if(e){i=-1;g=-1;e=-1;y:{if((f|0)==-1){break y}h=H[H[d+12>>2]>>2];e=h+(f<<2)|0;i=f+1|0;i=(i>>>0)%3|0?i:f-2|0;if((i|0)!=-1){g=H[h+(i<<2)>>2]}i=H[e>>2];z:{if((f>>>0)%3|0){m=f-1|0;break z}m=f+2|0;e=-1;if((m|0)==-1){break y}}e=H[h+(m<<2)>>2]}h=H[d+84>>2];m=h+(i>>>3&536870908)|0;H[m>>2]=H[m>>2]|1<>>3&536870908)|0;H[i>>2]=H[i>>2]|1<>>3&536870908)|0;H[g>>2]=H[g>>2]|1<>2];h=H[d+104>>2];A:{if(e>>>0>>0){H[e>>2]=1;H[d+100>>2]=e+4;break A}g=H[d+96>>2];i=e-g|0;m=i>>2;e=m+1|0;if(e>>>0>=1073741824){break b}t=m<<2;h=h-g|0;m=h>>1;h=h>>>0<2147483644?e>>>0>>0?m:e:1073741823;if(h){if(h>>>0>=1073741824){break w}e=ra(h<<2)}else{e=0}m=t+e|0;H[m>>2]=1;if((i|0)>0){sa(e,g,i)}H[d+104>>2]=e+(h<<2);H[d+100>>2]=m+4;H[d+96>>2]=e;if(!g){break A}qa(g)}e=r+H[l>>2]|0;H[e>>2]=q|H[e>>2];i=-1;if((f|0)!=-1){e=f+1|0;i=(e>>>0)%3|0?e:f-2|0}B:{if(n>>>0>>0){H[n>>2]=i;n=n+4|0;H[k+20>>2]=n;break B}h=n-b|0;n=h>>2;e=n+1|0;if(e>>>0>=1073741824){break b}g=s-b|0;m=g>>1;g=g>>>0<2147483644?e>>>0>>0?m:e:1073741823;if(g){if(g>>>0>=1073741824){break w}e=ra(g<<2)}else{e=0}n=e+(n<<2)|0;H[n>>2]=i;s=e+(g<<2)|0;n=n+4|0;if((h|0)>0){sa(e,b,h)}H[k+24>>2]=s;H[k+20>>2]=n;H[k+16>>2]=e;if(b){qa(b)}b=e}if((f|0)==-1){break x}e=f+1|0;e=(e>>>0)%3|0?e:f-2|0;if((e|0)==-1){break x}e=H[H[H[d+12>>2]+12>>2]+(e<<2)>>2];if((e|0)==-1){break x}f=(e>>>0)/3|0;if(H[H[l>>2]+(f>>>3&268435452)>>2]>>>f&1){break x}if(Tf(d,e)){break x}break v}if((f|0)!=-1){e=f+1|0;e=(e>>>0)%3|0?e:f-2|0}else{e=-1}Fc(d,e,1);if(!Tf(d,H[k>>2])){break v}}c=c+1|0;if((p|0)!=(c|0)){continue}break}}c=H[d+72>>2];f=H[d+76>>2];C:{if((c|0)==(f|0)){break C}e=f-4|0;if(e>>>0<=c>>>0){break C}while(1){g=H[c>>2];H[c>>2]=H[e>>2];H[e>>2]=g;c=c+4|0;e=e-4|0;if(c>>>0>>0){continue}break}}_f(o,f,b,n);D:{if(H[d+172>>2]==H[d+176>>2]){break D}c=H[d+8>>2];e=H[c+100>>2];c=H[c+96>>2];F[k|0]=0;Qa(l,(e-c|0)/12|0,k);c=H[d+72>>2];e=H[d+76>>2];if((c|0)==(e|0)){break D}while(1){Zf(d,H[c>>2]);c=c+4|0;if((e|0)!=(c|0)){continue}break}}i=0;e=0;c=j+32|0;Ba(j,c);if(!(!H[j+80>>2]|H[j+84>>2]<=0)){while(1){Ba(H[j+80>>2]+(i<<5)|0,c);i=i+1|0;if((i|0)>2]){continue}break}}i=H[j+136>>2];if((i|0)!=H[j+140>>2]){while(1){f=N(e,12);g=f+i|0;Da(H[g+4>>2]-H[g>>2]>>2,c);i=H[j+136>>2];f=f+i|0;g=H[f+4>>2];f=H[f>>2];if((g|0)!=(f|0)){Xd(f,g-f>>2,1,0,c);i=H[j+136>>2]}e=e+1|0;if(e>>>0<(H[j+140>>2]-i|0)/12>>>0){continue}break}}Da(H[d+324>>2],H[H[d+4>>2]+44>>2]);Da(H[d+168>>2],H[H[d+4>>2]+44>>2]);if(!Yf(d)){c=Nc(k,1885);H[a>>2]=-1;a=a+4|0;if(F[c+11|0]>=0){d=H[c+4>>2];H[a>>2]=H[c>>2];H[a+4>>2]=d;H[a+8>>2]=H[c+8>>2];break u}Ia(a,H[c>>2],H[c+4>>2]);if(F[c+11|0]>=0){break u}qa(H[c>>2]);break u}c=H[H[d+4>>2]+44>>2];e=H[c+20>>2];if(!H[c+16>>2]&(e|0)<=0|(e|0)<0){wa(c,H[c+4>>2],H[d+232>>2],H[d+236>>2])}H[a>>2]=0;H[a+4>>2]=0;H[a+8>>2]=0;H[a+12>>2]=0;break u}ya();X()}c=ra(48);d=I[1703]|I[1704]<<8|(I[1705]<<16|I[1706]<<24);e=I[1699]|I[1700]<<8|(I[1701]<<16|I[1702]<<24);F[c+24|0]=e;F[c+25|0]=e>>>8;F[c+26|0]=e>>>16;F[c+27|0]=e>>>24;F[c+28|0]=d;F[c+29|0]=d>>>8;F[c+30|0]=d>>>16;F[c+31|0]=d>>>24;d=I[1695]|I[1696]<<8|(I[1697]<<16|I[1698]<<24);e=I[1691]|I[1692]<<8|(I[1693]<<16|I[1694]<<24);F[c+16|0]=e;F[c+17|0]=e>>>8;F[c+18|0]=e>>>16;F[c+19|0]=e>>>24;F[c+20|0]=d;F[c+21|0]=d>>>8;F[c+22|0]=d>>>16;F[c+23|0]=d>>>24;d=I[1687]|I[1688]<<8|(I[1689]<<16|I[1690]<<24);e=I[1683]|I[1684]<<8|(I[1685]<<16|I[1686]<<24);F[c+8|0]=e;F[c+9|0]=e>>>8;F[c+10|0]=e>>>16;F[c+11|0]=e>>>24;F[c+12|0]=d;F[c+13|0]=d>>>8;F[c+14|0]=d>>>16;F[c+15|0]=d>>>24;d=I[1679]|I[1680]<<8|(I[1681]<<16|I[1682]<<24);e=I[1675]|I[1676]<<8|(I[1677]<<16|I[1678]<<24);F[c|0]=e;F[c+1|0]=e>>>8;F[c+2|0]=e>>>16;F[c+3|0]=e>>>24;F[c+4|0]=d;F[c+5|0]=d>>>8;F[c+6|0]=d>>>16;F[c+7|0]=d>>>24;F[c+32|0]=0;H[a>>2]=-1;Ia(a+4|0,c,32);qa(c)}if(!b){break c}qa(b)}da=k+32|0;return}ua();X()}function Qk(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,G=0,J=0,K=0,L=0,M=0,O=0,Q=0,S=0,V=0,W=0,Y=0,Z=0,_=0,$=0,aa=0,ba=0,ca=0;i=da-224|0;da=i;H[a+8>>2]=e;A=a+32|0;g=H[A>>2];f=H[a+36>>2]-g>>2;a:{if(f>>>0>>0){Fa(A,e-f|0);break a}if(e>>>0>=f>>>0){break a}H[a+36>>2]=g+(e<<2)}b:{if(!d){break b}h=H[b>>2];c:{if((d|0)<2){d=h;break c}g=1;f=d-1|0;v=f&1;d:{if((d|0)==2){d=h;break d}w=f&-2;d=h;while(1){l=(g<<2)+b|0;f=H[l+4>>2];l=H[l>>2];k=(l|0)<(d|0);d=k?l:d;p=(d|0)>(f|0);d=p?f:d;l=k?h:(h|0)<(l|0)?l:h;h=p?l:(f|0)>(l|0)?f:l;g=g+2|0;j=j+2|0;if((w|0)!=(j|0)){continue}break}}if(!v){break c}f=H[(g<<2)+b>>2];g=(f|0)<(d|0);d=g?f:d;h=g?h:(f|0)>(h|0)?f:h}H[a+16>>2]=h;H[a+12>>2]=d;f=(h>>31)-((d>>31)+(d>>>0>h>>>0)|0)|0;d=h-d|0;if(!f&d>>>0>2147483646|f){break b}d=d+1|0;H[a+20>>2]=d;f=d>>>1|0;H[a+24>>2]=f;H[a+28>>2]=0-f;if(d&1){break b}H[a+24>>2]=f-1}Y=H[a+52>>2];M=H[a+48>>2];H[i+184>>2]=0;H[i+188>>2]=0;H[i+176>>2]=0;H[i+180>>2]=0;H[i+168>>2]=0;H[i+172>>2]=0;H[i+160>>2]=0;H[i+164>>2]=0;H[i+152>>2]=0;H[i+156>>2]=0;H[i+144>>2]=0;H[i+148>>2]=0;e:{if(!e){h=0;d=0;break e}Fa(i+144|0,e);h=H[i+156>>2];d=H[i+160>>2]}d=d-h>>2;f:{if(d>>>0>=e>>>0){if(d>>>0<=e>>>0){break f}H[i+160>>2]=(e<<2)+h;break f}Fa(i+144|12,e-d|0)}f=H[i+168>>2];d=H[i+172>>2]-f>>2;g:{if(d>>>0>=e>>>0){if(d>>>0<=e>>>0){break g}H[i+172>>2]=f+(e<<2);break g}Fa(i+168|0,e-d|0)}h:{i:{f=H[i+180>>2];d=H[i+184>>2]-f>>2;j:{k:{if(d>>>0>=e>>>0){if(d>>>0>e>>>0){H[i+184>>2]=f+(e<<2)}H[i+136>>2]=0;H[i+128>>2]=0;H[i+132>>2]=0;if(e){break k}d=1;break j}Fa(i+180|0,e-d|0);H[i+136>>2]=0;H[i+128>>2]=0;H[i+132>>2]=0}if(e>>>0>=1073741824){break i}d=e<<2;f=ra(d);H[i+128>>2]=f;g=d+f|0;H[i+136>>2]=g;ta(f,0,d);H[i+132>>2]=g;d=0}x=a+152|0;g=H[a+152>>2];f=H[a+156>>2]-g>>2;l:{if(f>>>0>>0){Fa(x,e-f|0);break l}if(e>>>0>=f>>>0){break l}H[a+156>>2]=g+(e<<2)}H[i+104>>2]=0;H[i+108>>2]=0;H[i+96>>2]=0;H[i+100>>2]=0;H[i+88>>2]=0;H[i+92>>2]=0;H[i+80>>2]=0;H[i+84>>2]=0;H[i+72>>2]=0;H[i+76>>2]=0;f=i- -64|0;H[f>>2]=0;H[f+4>>2]=0;H[i+56>>2]=0;H[i+60>>2]=0;H[i+48>>2]=0;H[i+52>>2]=0;if(!d){d=e<<2;r=ra(d);y=ta(r,0,d)+d|0}d=H[a+56>>2];d=H[d+4>>2]-H[d>>2]|0;if((d|0)<5){break h}G=e&-2;J=e&1;Z=e&-4;O=e&3;E=e-1|0;Q=e<<2;K=a+112|0;w=d>>>2|0;L=y-r|0;S=L&-4;B=L>>2;_=i+36|0;$=i+24|0;while(1){f=H[a+56>>2];d=H[f>>2];m:{n:{v=w-1|0;if(v>>>0>2]-d>>2>>>0){f=0;l=0;d=H[d+(v<<2)>>2];o:{if((d|0)==-1){break o}p=H[M+12>>2];g=d+2|0;l=(d>>>0)%3|0;z=p+((l?d-1|0:g)<<2)|0;k=0;C=(l|0)!=0|(g|0)!=-1;t=1;g=d;while(1){l=H[p+(g<<2)>>2];p:{if((l|0)==-1){break p}j=-1;m=H[Y>>2];o=H[M>>2];h=m+(H[o+(l<<2)>>2]<<2)|0;n=l+1|0;n=(n>>>0)%3|0?n:l-2|0;if((n|0)!=-1){j=H[o+(n<<2)>>2]}n=H[h>>2];q:{r:{if((l>>>0)%3|0){h=l-1|0;break r}h=l+2|0;s=-1;if((h|0)==-1){break q}}s=H[o+(h<<2)>>2]}if((n|0)>=(v|0)){break p}h=H[m+(j<<2)>>2];if((h|0)>=(v|0)){break p}j=H[m+(s<<2)>>2];if((j|0)>=(v|0)){break p}l=H[(i+144|0)+N(k,12)>>2];s:{if(!e){break s}j=N(e,j);o=N(e,h);n=N(e,n);h=0;m=0;if(E){while(1){H[l+(h<<2)>>2]=(H[(h+j<<2)+b>>2]+H[(h+o<<2)+b>>2]|0)-H[(h+n<<2)+b>>2];s=h|1;H[l+(s<<2)>>2]=(H[(j+s<<2)+b>>2]+H[(o+s<<2)+b>>2]|0)-H[(n+s<<2)+b>>2];h=h+2|0;m=m+2|0;if((G|0)!=(m|0)){continue}break}}if(!J){break s}H[l+(h<<2)>>2]=(H[(h+j<<2)+b>>2]+H[(h+o<<2)+b>>2]|0)-H[(h+n<<2)+b>>2]}l=4;k=k+1|0;if((k|0)==4){break o}}t:{if(t&1){h=g+1|0;g=(h>>>0)%3|0?h:g-2|0;j=-1;if((g|0)==-1){break t}g=H[p+(g<<2)>>2];j=-1;if((g|0)==-1){break t}l=g+1|0;j=(l>>>0)%3|0?l:g-2|0;break t}u:{if((g>>>0)%3|0){h=g-1|0;break u}h=g+2|0;j=-1;if((h|0)==-1){break t}}g=H[p+(h<<2)>>2];j=-1;if((g|0)==-1){break t}j=g-1|0;if((g>>>0)%3|0){break t}j=g+2|0}g=j;if((d|0)==(g|0)){l=k;break o}if(!((t^1)&1|(g|0)!=-1)){if(!C){l=k;break o}g=H[z>>2];if((g|0)==-1){l=k;break o}t=0;g=(g>>>0)%3|0?g-1|0:g+2|0}l=k;if((g|0)!=-1){continue}break}}F[i+16|0]=0;H[i+8>>2]=0;H[i+12>>2]=0;H[i+44>>2]=0;H[i+36>>2]=0;H[i+40>>2]=0;H[i+28>>2]=0;H[i+32>>2]=0;H[i+20>>2]=0;H[i+24>>2]=0;V=N(e,v)<<2;s=V+b|0;k=(N(w-2|0,e)<<2)+b|0;j=H[x>>2];d=0;if(e){while(1){h=f<<2;g=H[h+k>>2]-H[h+s>>2]|0;H[h+r>>2]=g;H[h+j>>2]=(g|0)<0?(g^-1)<<1|1:g<<1;h=d;d=g>>31;d=h+((d^g)-d|0)|0;f=f+1|0;if((f|0)!=(e|0)){continue}break}}f=i+200|0;Eb(f,K,j,e);g=Db(f);h=ea;o=g;g=H[f+12>>2];f=H[f+16>>2];j=(((g-f|0)+1|0)/64|0)+f<<3;f=f<<3;p=f;g=j+f|0;f=(j>>31)+(f>>31)|0;f=g>>>0

>>0?f+1|0:f;j=g;g=o+g|0;f=f+h|0;f=g>>>0>>0?f+1|0:f;h=g;C=(l|0)<=0;if(!C){p=(l<<3)-8|0;g=p+(i+48|0)|0;o=g;j=l+H[g>>2]|0;g=H[g+4>>2];g=j>>>0>>0?g+1|0:g;H[o>>2]=j;H[o+4>>2]=g;u=U(Fb(j,H[p+(i+80|0)>>2])*(+(j>>>0)+ +(g|0)*4294967296));v:{if(P(u)<0x8000000000000000){j=P(u)>=1?~~(u>0?R(T(u*2.3283064365386963e-10),4294967295):U((u-+(~~u>>>0>>>0))*2.3283064365386963e-10))>>>0:0;g=~~u>>>0;break v}j=-2147483648;g=0}g=h+g|0;h=g}H[i+20>>2]=0;F[i+16|0]=0;H[i+8>>2]=h;H[i+12>>2]=d;cb($,k,k+Q|0);Uc(_,r,y);w:{x:{if(!C){o=(i+124|0)+l|0;p=o-1|0;d=(l<<3)-8|0;W=d+(i+48|0)|0;aa=d+(i+80|0)|0;k=1;z=0;while(1){d=i+124|0;ta(d,1,l);z=z+1|0;ta(d,0,z);y:{z:while(1){if(e){ta(H[i+128>>2],0,Q)}m=0;d=H[i+128>>2];t=0;while(1){if(!I[(i+124|0)+m|0]){A:{if(!e){break A}f=H[(i+144|0)+N(m,12)>>2];g=0;h=0;j=0;if(E>>>0>2){while(1){n=h<<2;q=n+d|0;H[q>>2]=H[q>>2]+H[f+n>>2];q=n|4;D=q+d|0;H[D>>2]=H[D>>2]+H[f+q>>2];q=n|8;D=q+d|0;H[D>>2]=H[D>>2]+H[f+q>>2];n=n|12;q=n+d|0;H[q>>2]=H[q>>2]+H[f+n>>2];h=h+4|0;j=j+4|0;if((Z|0)!=(j|0)){continue}break}}if(!O){break A}while(1){j=h<<2;n=j+d|0;H[n>>2]=H[n>>2]+H[f+j>>2];h=h+1|0;g=g+1|0;if((O|0)!=(g|0)){continue}break}}t=1<>2];d=0;break B}h=0;d=H[i+128>>2];f=0;if(E){while(1){g=h<<2;j=g+d|0;H[j>>2]=H[j>>2]/(k|0);g=d+(g|4)|0;H[g>>2]=H[g>>2]/(k|0);h=h+2|0;f=f+2|0;if((G|0)!=(f|0)){continue}break}}if(J){d=d+(h<<2)|0;H[d>>2]=H[d>>2]/(k|0)}g=H[x>>2];f=0;d=0;if(!e){break B}m=H[i+128>>2];while(1){j=f<<2;h=H[j+m>>2]-H[j+s>>2]|0;H[j+r>>2]=h;H[g+j>>2]=(h|0)<0?(h^-1)<<1|1:h<<1;j=d;d=h>>31;d=j+((d^h)-d|0)|0;f=f+1|0;if((f|0)!=(e|0)){continue}break}}f=i+200|0;Eb(f,K,g,e);g=Db(f);j=g;g=H[f+12>>2];f=H[f+16>>2];h=(((g-f|0)+1|0)/64|0)+f<<3;f=f<<3;g=h+f|0;f=j+g|0;h=f;if((l|0)>0){f=H[W+4>>2];g=H[W>>2];u=U(Fb(g,H[aa>>2]+k|0)*(+(g>>>0)+ +(f|0)*4294967296));C:{if(P(u)<0x8000000000000000){f=~~u>>>0;break C}f=0}h=f+h|0}f=H[i+8>>2];if(!((f|0)<=(h|0)&((f|0)<(h|0)|(d|0)>=H[i+12>>2]))){H[i+20>>2]=k;F[i+16|0]=t;H[i+8>>2]=h;H[i+12>>2]=d;j=H[i+132>>2];g=H[i+128>>2];m=j-g|0;h=m>>2;d=H[i+32>>2];f=H[i+24>>2];D:{if(h>>>0<=d-f>>2>>>0){m=H[i+28>>2]-f|0;d=m+g|0;n=m>>2;m=n>>>0>>0?d:j;t=m-g|0;if((g|0)!=(m|0)){xa(f,g,t)}if(h>>>0>n>>>0){h=H[i+28>>2];if((j|0)==(m|0)){break D}while(1){H[h>>2]=H[d>>2];h=h+4|0;d=d+4|0;if((j|0)!=(d|0)){continue}break}break D}h=f+t|0;break D}if(f){H[i+28>>2]=f;qa(f);H[i+32>>2]=0;H[i+24>>2]=0;H[i+28>>2]=0;d=0}if((m|0)<0){break x}f=d>>1;d=d>>>0<2147483644?f>>>0>h>>>0?f:h:1073741823;if(d>>>0>=1073741824){break x}d=d<<2;h=ra(d);H[i+24>>2]=h;H[i+32>>2]=d+h;if((g|0)==(j|0)){break D}d=m&-4;h=sa(h,g,d)+d|0}H[i+28>>2]=h;d=H[i+44>>2];f=H[i+36>>2];E:{if(d-f>>2>>>0>=B>>>0){g=H[i+40>>2]-f|0;d=g+r|0;j=g>>2;g=j>>>0>>0?d:y;h=g-r|0;if((g|0)!=(r|0)){xa(f,r,h)}if(j>>>0>>0){h=H[i+40>>2];if((g|0)==(y|0)){break E}while(1){H[h>>2]=H[d>>2];h=h+4|0;d=d+4|0;if((y|0)!=(d|0)){continue}break}break E}h=f+h|0;break E}if(f){H[i+40>>2]=f;qa(f);H[i+44>>2]=0;H[i+36>>2]=0;H[i+40>>2]=0;d=0}if((L|0)<0){break w}f=d>>1;d=d>>>0<2147483644?f>>>0>B>>>0?f:B:1073741823;if(d>>>0>=1073741824){break w}d=d<<2;h=ra(d);H[i+36>>2]=h;H[i+44>>2]=d+h;if((r|0)==(y|0)){break E}h=sa(h,r,S)+S|0}H[i+40>>2]=h}if((p|0)==(i+124|0)){break y}h=I[p|0];d=-1;while(1){j=h&255;f=d-1|0;g=f+o|0;h=I[g|0];if(j>>>0>h>>>0){f=o;while(1){f=f-1|0;j=I[f|0];if(j>>>0<=h>>>0){continue}break}F[g|0]=j;F[f|0]=h;if((d|0)==-1){continue z}h=d+o|0;d=p;while(1){f=I[h|0];F[h|0]=I[d|0];F[d|0]=f;d=d-1|0;h=h+1|0;if(d>>>0>h>>>0){continue}break}continue z}d=f;if((g|0)!=(i+124|0)){continue}break}break}f=i+124|0;h=f;d=p;if(f>>>0>=d>>>0){break y}while(1){f=I[h|0];F[h|0]=I[d|0];F[d|0]=f;d=d-1|0;h=h+1|0;if(d>>>0>h>>>0){continue}break}}k=k+1|0;if((l|0)!=(z|0)){continue}break}}if((l|0)>0){d=(l<<3)+i|0;f=H[i+20>>2];h=f;g=f+H[d+72>>2]|0;f=H[d+76>>2]+(f>>31)|0;H[d+72>>2]=g;H[d+76>>2]=h>>>0>g>>>0?f+1|0:f}if(!e){break m}d=H[x>>2];h=0;f=H[i+36>>2];j=0;if(!E){break n}while(1){k=h<<2;g=H[k+f>>2];H[d+k>>2]=(g|0)<0?(g^-1)<<1|1:g<<1;k=k|4;g=H[k+f>>2];H[d+k>>2]=(g|0)<0?(g^-1)<<1|1:g<<1;h=h+2|0;j=j+2|0;if((G|0)!=(j|0)){continue}break}break n}ua();X()}ua();X()}va();X()}if(!J){break m}g=h<<2;f=H[g+f>>2];H[d+g>>2]=(f|0)<0?(f^-1)<<1|1:f<<1}Mc(i+200|0,K,H[x>>2],e);F:{if(C){break F}h=N(l,12)+a|0;d=0;while(1){G:{k=H[h+56>>2];j=k<<5;f=H[h+52>>2];H:{if(!(I[i+16|0]>>>d&1)){g=f;I:{if((f|0)!=(j|0)){break I}if((f+1|0)<0){break G}J:{if(f>>>0<=1073741822){k=k<<6;j=f+32&-32;k=j>>>0>>0?k:j;g=f;if(f>>>0>=k>>>0){break I}if((k|0)>=0){break J}break G}k=2147483647;g=-1;if(f>>>0>=2147483647){break I}}j=(k-1>>>5|0)+1|0;g=ra(j<<2);k=H[h+48>>2];H[g+((f>>>0<33?0:f-1>>>5|0)<<2)>>2]=0;K:{L:{if(!f){break L}p=f>>>5<<2;o=xa(g,k,p);m=f&31;if(!m){break L}g=p+o|0;n=g;q=H[g>>2];g=-1>>>32-m|0;H[n>>2]=q&(g^-1)|g&H[k+p>>2];H[h+48>>2]=o;H[h+52>>2]=f;H[h+56>>2]=j;break K}H[h+48>>2]=g;H[h+52>>2]=f;H[h+56>>2]=j;g=f;if(!k){break I}}qa(k);g=H[h+52>>2]}H[h+52>>2]=g+1;f=H[h+48>>2]+(g>>>3&536870908)|0;H[f>>2]=H[f>>2]|1<>>0<=1073741822){k=k<<6;j=f+32&-32;k=j>>>0>>0?k:j;g=f;if(f>>>0>=k>>>0){break M}if((k|0)<0){break G}break N}k=2147483647;g=-1;if(f>>>0>=2147483647){break M}}j=(k-1>>>5|0)+1|0;g=ra(j<<2);k=H[h+48>>2];H[g+((f>>>0<33?0:f-1>>>5|0)<<2)>>2]=0;O:{P:{if(!f){break P}p=f>>>5<<2;o=xa(g,k,p);m=f&31;if(!m){break P}g=p+o|0;n=g;q=H[g>>2];g=-1>>>32-m|0;H[n>>2]=q&(g^-1)|g&H[k+p>>2];H[h+48>>2]=o;H[h+52>>2]=f;H[h+56>>2]=j;break O}H[h+48>>2]=g;H[h+52>>2]=f;H[h+56>>2]=j;g=f;if(!k){break M}}qa(k);g=H[h+52>>2]}H[h+52>>2]=g+1;f=H[h+48>>2]+(g>>>3&536870908)|0;k=H[f>>2];ba=f,ca=Dl(g)&k,H[ba>>2]=ca}d=d+1|0;if((l|0)!=(d|0)){continue}break F}break}ua();X()}h=H[a+8>>2];if((h|0)>0){p=c+V|0;d=H[A>>2];k=0;j=H[i+24>>2];while(1){g=d;if((h|0)>0){g=H[A>>2];h=0;while(1){f=h<<2;l=H[f+j>>2];o=H[a+16>>2];Q:{if((l|0)>(o|0)){H[f+g>>2]=o;break Q}f=f+g|0;o=H[a+12>>2];if((o|0)>(l|0)){H[f>>2]=o;break Q}H[f>>2]=l}h=h+1|0;if((h|0)>2]){continue}break}}l=k<<2;f=l+p|0;l=H[l+s>>2]-H[g+l>>2]|0;H[f>>2]=l;R:{if((l|0)>2]){h=l+H[a+20>>2]|0}else{if((l|0)<=H[a+24>>2]){break R}h=l-H[a+20>>2]|0}H[f>>2]=h}j=g;h=H[a+8>>2];k=k+1|0;if((h|0)>(k|0)){continue}break}}d=H[i+36>>2];if(d){H[i+40>>2]=d;qa(d)}d=H[i+24>>2];if(d){H[i+28>>2]=d;qa(d)}d=(w|0)>2;w=v;if(d){continue}break}break h}ua();X()}if((e|0)>0){ta(H[i+144>>2],0,e<<2)}h=H[a+8>>2];if((h|0)>0){d=H[a+32>>2];k=0;j=H[i+144>>2];while(1){g=d;if((h|0)>0){g=H[A>>2];h=0;while(1){e=h<<2;f=H[e+j>>2];l=H[a+16>>2];S:{if((f|0)>(l|0)){H[e+g>>2]=l;break S}e=e+g|0;l=H[a+12>>2];if((l|0)>(f|0)){H[e>>2]=l;break S}H[e>>2]=f}h=h+1|0;if((h|0)>2]){continue}break}}f=k<<2;e=f+c|0;f=H[b+f>>2]-H[f+g>>2]|0;H[e>>2]=f;T:{if((f|0)>2]){f=f+H[a+20>>2]|0}else{if((f|0)<=H[a+24>>2]){break T}f=f-H[a+20>>2]|0}H[e>>2]=f}j=g;h=H[a+8>>2];k=k+1|0;if((h|0)>(k|0)){continue}break}}if(r){qa(r)}a=H[i+128>>2];if(a){H[i+132>>2]=a;qa(a)}a=H[i+180>>2];if(a){H[i+184>>2]=a;qa(a)}a=H[i+168>>2];if(a){H[i+172>>2]=a;qa(a)}a=H[i+156>>2];if(a){H[i+160>>2]=a;qa(a)}a=H[i+144>>2];if(a){H[i+148>>2]=a;qa(a)}da=i+224|0;return 1}function Ee(a){a=a|0;var b=0,c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0;l=da-16|0;da=l;a:{b:{c:{d:{e:{f:{g:{h:{i:{j:{k:{if(a>>>0<=244){e=H[4842];h=a>>>0<11?16:a+11&-8;c=h>>>3|0;b=e>>>c|0;if(b&3){c=c+((b^-1)&1)|0;a=c<<3;b=a+19408|0;d=H[a+19416>>2];a=H[d+8>>2];l:{if((b|0)==(a|0)){m=19368,n=Dl(c)&e,H[m>>2]=n;break l}H[a+12>>2]=b;H[b+8>>2]=a}a=d+8|0;b=c<<3;H[d+4>>2]=b|3;b=b+d|0;H[b+4>>2]=H[b+4>>2]|1;break a}k=H[4844];if(k>>>0>=h>>>0){break k}if(b){a=2<>>12&16;c=a;b=b>>>a|0;a=b>>>5&8;c=c|a;b=b>>>a|0;a=b>>>2&4;c=c|a;b=b>>>a|0;a=b>>>1&2;c=c|a;b=b>>>a|0;a=b>>>1&1;d=(c|a)+(b>>>a|0)|0;a=d<<3;b=a+19408|0;g=H[a+19416>>2];a=H[g+8>>2];m:{if((b|0)==(a|0)){e=Dl(d)&e;H[4842]=e;break m}H[a+12>>2]=b;H[b+8>>2]=a}H[g+4>>2]=h|3;c=g+h|0;a=d<<3;d=a-h|0;H[c+4>>2]=d|1;H[a+g>>2]=d;if(k){b=(k&-8)+19408|0;f=H[4847];a=1<<(k>>>3);n:{if(!(a&e)){H[4842]=a|e;a=b;break n}a=H[b+8>>2]}H[b+8>>2]=f;H[a+12>>2]=f;H[f+12>>2]=b;H[f+8>>2]=a}a=g+8|0;H[4847]=c;H[4844]=d;break a}j=H[4843];if(!j){break k}b=(0-j&j)-1|0;a=b>>>12&16;c=a;b=b>>>a|0;a=b>>>5&8;c=c|a;b=b>>>a|0;a=b>>>2&4;c=c|a;b=b>>>a|0;a=b>>>1&2;c=c|a;b=b>>>a|0;a=b>>>1&1;c=H[((c|a)+(b>>>a|0)<<2)+19672>>2];f=(H[c+4>>2]&-8)-h|0;b=c;while(1){o:{a=H[b+16>>2];if(!a){a=H[b+20>>2];if(!a){break o}}b=(H[a+4>>2]&-8)-h|0;d=b>>>0>>0;f=d?b:f;c=d?a:c;b=a;continue}break}i=H[c+24>>2];d=H[c+12>>2];if((d|0)!=(c|0)){a=H[c+8>>2];H[a+12>>2]=d;H[d+8>>2]=a;break b}b=c+20|0;a=H[b>>2];if(!a){a=H[c+16>>2];if(!a){break j}b=c+16|0}while(1){g=b;d=a;b=a+20|0;a=H[b>>2];if(a){continue}b=d+16|0;a=H[d+16>>2];if(a){continue}break}H[g>>2]=0;break b}h=-1;if(a>>>0>4294967231){break k}a=a+11|0;h=a&-8;j=H[4843];if(!j){break k}f=0-h|0;e=0;p:{if(h>>>0<256){break p}e=31;if(h>>>0>16777215){break p}a=a>>>8|0;g=a+1048320>>>16&8;a=a<>>16&4;a=a<>>16&2;a=(a<>>15|0)-(b|(c|g))|0;e=(a<<1|h>>>a+21&1)+28|0}b=H[(e<<2)+19672>>2];q:{r:{s:{if(!b){a=0;break s}a=0;c=h<<((e|0)==31?0:25-(e>>>1|0)|0);while(1){t:{g=(H[b+4>>2]&-8)-h|0;if(g>>>0>=f>>>0){break t}d=b;f=g;if(f){break t}f=0;a=b;break r}g=H[b+20>>2];b=H[((c>>>29&4)+b|0)+16>>2];a=g?(g|0)==(b|0)?a:g:a;c=c<<1;if(b){continue}break}}if(!(a|d)){d=0;a=2<>>12&16;c=a;b=b>>>a|0;a=b>>>5&8;c=c|a;b=b>>>a|0;a=b>>>2&4;c=c|a;b=b>>>a|0;a=b>>>1&2;c=c|a;b=b>>>a|0;a=b>>>1&1;a=H[((c|a)+(b>>>a|0)<<2)+19672>>2]}if(!a){break q}}while(1){b=(H[a+4>>2]&-8)-h|0;c=b>>>0>>0;f=c?b:f;d=c?a:d;b=H[a+16>>2];if(b){a=b}else{a=H[a+20>>2]}if(a){continue}break}}if(!d|H[4844]-h>>>0<=f>>>0){break k}e=H[d+24>>2];c=H[d+12>>2];if((d|0)!=(c|0)){a=H[d+8>>2];H[a+12>>2]=c;H[c+8>>2]=a;break c}b=d+20|0;a=H[b>>2];if(!a){a=H[d+16>>2];if(!a){break i}b=d+16|0}while(1){g=b;c=a;b=a+20|0;a=H[b>>2];if(a){continue}b=c+16|0;a=H[c+16>>2];if(a){continue}break}H[g>>2]=0;break c}c=H[4844];if(c>>>0>=h>>>0){d=H[4847];b=c-h|0;u:{if(b>>>0>=16){H[4844]=b;a=d+h|0;H[4847]=a;H[a+4>>2]=b|1;H[c+d>>2]=b;H[d+4>>2]=h|3;break u}H[4847]=0;H[4844]=0;H[d+4>>2]=c|3;a=c+d|0;H[a+4>>2]=H[a+4>>2]|1}a=d+8|0;break a}i=H[4845];if(i>>>0>h>>>0){b=i-h|0;H[4845]=b;c=H[4848];a=c+h|0;H[4848]=a;H[a+4>>2]=b|1;H[c+4>>2]=h|3;a=c+8|0;break a}a=0;j=h+47|0;if(H[4960]){c=H[4962]}else{H[4963]=-1;H[4964]=-1;H[4961]=4096;H[4962]=4096;H[4960]=l+12&-16^1431655768;H[4965]=0;H[4953]=0;c=4096}g=j+c|0;f=0-c|0;b=g&f;if(b>>>0<=h>>>0){break a}d=H[4952];if(d){c=H[4950];e=c+b|0;if(d>>>0>>0|c>>>0>=e>>>0){break a}}if(I[19812]&4){break f}v:{w:{d=H[4848];if(d){a=19816;while(1){c=H[a>>2];if(c>>>0<=d>>>0&d>>>0>2]>>>0){break w}a=H[a+8>>2];if(a){continue}break}}c=Hb(0);if((c|0)==-1){break g}e=b;d=H[4961];a=d-1|0;if(a&c){e=(b-c|0)+(a+c&0-d)|0}if(e>>>0<=h>>>0|e>>>0>2147483646){break g}d=H[4952];if(d){a=H[4950];f=a+e|0;if(d>>>0>>0|a>>>0>=f>>>0){break g}}a=Hb(e);if((c|0)!=(a|0)){break v}break e}e=f&g-i;if(e>>>0>2147483646){break g}c=Hb(e);if((c|0)==(H[a>>2]+H[a+4>>2]|0)){break h}a=c}if(!((a|0)==-1|h+48>>>0<=e>>>0)){c=H[4962];c=c+(j-e|0)&0-c;if(c>>>0>2147483646){c=a;break e}if((Hb(c)|0)!=-1){e=c+e|0;c=a;break e}Hb(0-e|0);break g}c=a;if((a|0)!=-1){break e}break g}d=0;break b}c=0;break c}if((c|0)!=-1){break e}}H[4953]=H[4953]|4}if(b>>>0>2147483646){break d}c=Hb(b);a=Hb(0);if((c|0)==-1|(a|0)==-1|a>>>0<=c>>>0){break d}e=a-c|0;if(e>>>0<=h+40>>>0){break d}}a=H[4950]+e|0;H[4950]=a;if(a>>>0>K[4951]){H[4951]=a}x:{y:{z:{g=H[4848];if(g){a=19816;while(1){d=H[a>>2];b=H[a+4>>2];if((d+b|0)==(c|0)){break z}a=H[a+8>>2];if(a){continue}break}break y}a=H[4846];if(!(a>>>0<=c>>>0?a:0)){H[4846]=c}a=0;H[4955]=e;H[4954]=c;H[4850]=-1;H[4851]=H[4960];H[4957]=0;while(1){d=a<<3;b=d+19408|0;H[d+19416>>2]=b;H[d+19420>>2]=b;a=a+1|0;if((a|0)!=32){continue}break}d=e-40|0;a=c+8&7?-8-c&7:0;b=d-a|0;H[4845]=b;a=a+c|0;H[4848]=a;H[a+4>>2]=b|1;H[(c+d|0)+4>>2]=40;H[4849]=H[4964];break x}if(I[a+12|0]&8|d>>>0>g>>>0|c>>>0<=g>>>0){break y}H[a+4>>2]=b+e;a=g+8&7?-8-g&7:0;c=a+g|0;H[4848]=c;b=H[4845]+e|0;a=b-a|0;H[4845]=a;H[c+4>>2]=a|1;H[(b+g|0)+4>>2]=40;H[4849]=H[4964];break x}if(K[4846]>c>>>0){H[4846]=c}b=c+e|0;a=19816;A:{B:{C:{D:{E:{F:{while(1){if((b|0)!=H[a>>2]){a=H[a+8>>2];if(a){continue}break F}break}if(!(I[a+12|0]&8)){break E}}a=19816;while(1){b=H[a>>2];if(b>>>0<=g>>>0){f=b+H[a+4>>2]|0;if(f>>>0>g>>>0){break D}}a=H[a+8>>2];continue}}H[a>>2]=c;H[a+4>>2]=H[a+4>>2]+e;j=(c+8&7?-8-c&7:0)+c|0;H[j+4>>2]=h|3;e=b+(b+8&7?-8-b&7:0)|0;i=h+j|0;a=e-i|0;if((e|0)==(g|0)){H[4848]=i;a=H[4845]+a|0;H[4845]=a;H[i+4>>2]=a|1;break B}if(H[4847]==(e|0)){H[4847]=i;a=H[4844]+a|0;H[4844]=a;H[i+4>>2]=a|1;H[a+i>>2]=a;break B}f=H[e+4>>2];if((f&3)==1){g=f&-8;G:{if(f>>>0<=255){d=H[e+8>>2];b=f>>>3|0;c=H[e+12>>2];if((c|0)==(d|0)){m=19368,n=H[4842]&Dl(b),H[m>>2]=n;break G}H[d+12>>2]=c;H[c+8>>2]=d;break G}h=H[e+24>>2];c=H[e+12>>2];H:{if((e|0)!=(c|0)){b=H[e+8>>2];H[b+12>>2]=c;H[c+8>>2]=b;break H}I:{f=e+20|0;b=H[f>>2];if(b){break I}f=e+16|0;b=H[f>>2];if(b){break I}c=0;break H}while(1){d=f;c=b;f=b+20|0;b=H[f>>2];if(b){continue}f=c+16|0;b=H[c+16>>2];if(b){continue}break}H[d>>2]=0}if(!h){break G}d=H[e+28>>2];b=(d<<2)+19672|0;J:{if(H[b>>2]==(e|0)){H[b>>2]=c;if(c){break J}m=19372,n=H[4843]&Dl(d),H[m>>2]=n;break G}H[h+(H[h+16>>2]==(e|0)?16:20)>>2]=c;if(!c){break G}}H[c+24>>2]=h;b=H[e+16>>2];if(b){H[c+16>>2]=b;H[b+24>>2]=c}b=H[e+20>>2];if(!b){break G}H[c+20>>2]=b;H[b+24>>2]=c}e=e+g|0;f=H[e+4>>2];a=a+g|0}H[e+4>>2]=f&-2;H[i+4>>2]=a|1;H[a+i>>2]=a;if(a>>>0<=255){b=(a&-8)+19408|0;c=H[4842];a=1<<(a>>>3);K:{if(!(c&a)){H[4842]=a|c;a=b;break K}a=H[b+8>>2]}H[b+8>>2]=i;H[a+12>>2]=i;H[i+12>>2]=b;H[i+8>>2]=a;break B}f=31;if(a>>>0<=16777215){b=a>>>8|0;f=b+1048320>>>16&8;b=b<>>16&4;b=b<>>16&2;b=(b<>>15|0)-(c|(d|f))|0;f=(b<<1|a>>>b+21&1)+28|0}H[i+28>>2]=f;H[i+16>>2]=0;H[i+20>>2]=0;b=(f<<2)+19672|0;d=H[4843];c=1<>2]=i;break L}f=a<<((f|0)==31?0:25-(f>>>1|0)|0);c=H[b>>2];while(1){b=c;if((H[b+4>>2]&-8)==(a|0)){break C}c=f>>>29|0;f=f<<1;d=(c&4)+b|0;c=H[d+16>>2];if(c){continue}break}H[d+16>>2]=i}H[i+24>>2]=b;H[i+12>>2]=i;H[i+8>>2]=i;break B}d=e-40|0;a=c+8&7?-8-c&7:0;b=d-a|0;H[4845]=b;a=a+c|0;H[4848]=a;H[a+4>>2]=b|1;H[(c+d|0)+4>>2]=40;H[4849]=H[4964];a=(f+(f-39&7?39-f&7:0)|0)-47|0;d=a>>>0>>0?g:a;H[d+4>>2]=27;a=H[4957];H[d+16>>2]=H[4956];H[d+20>>2]=a;a=H[4955];H[d+8>>2]=H[4954];H[d+12>>2]=a;H[4956]=d+8;H[4955]=e;H[4954]=c;H[4957]=0;a=d+24|0;while(1){H[a+4>>2]=7;b=a+8|0;a=a+4|0;if(b>>>0>>0){continue}break}if((d|0)==(g|0)){break x}H[d+4>>2]=H[d+4>>2]&-2;f=d-g|0;H[g+4>>2]=f|1;H[d>>2]=f;if(f>>>0<=255){b=(f&-8)+19408|0;c=H[4842];a=1<<(f>>>3);M:{if(!(c&a)){H[4842]=a|c;a=b;break M}a=H[b+8>>2]}H[b+8>>2]=g;H[a+12>>2]=g;H[g+12>>2]=b;H[g+8>>2]=a;break x}a=31;if(f>>>0<=16777215){a=f>>>8|0;d=a+1048320>>>16&8;a=a<>>16&4;a=a<>>16&2;a=(a<>>15|0)-(b|(c|d))|0;a=(a<<1|f>>>a+21&1)+28|0}H[g+28>>2]=a;H[g+16>>2]=0;H[g+20>>2]=0;b=(a<<2)+19672|0;d=H[4843];c=1<>2]=g;break N}a=f<<((a|0)==31?0:25-(a>>>1|0)|0);d=H[b>>2];while(1){b=d;if((f|0)==(H[b+4>>2]&-8)){break A}c=a>>>29|0;a=a<<1;c=(c&4)+b|0;d=H[c+16>>2];if(d){continue}break}H[c+16>>2]=g}H[g+24>>2]=b;H[g+12>>2]=g;H[g+8>>2]=g;break x}a=H[b+8>>2];H[a+12>>2]=i;H[b+8>>2]=i;H[i+24>>2]=0;H[i+12>>2]=b;H[i+8>>2]=a}a=j+8|0;break a}a=H[b+8>>2];H[a+12>>2]=g;H[b+8>>2]=g;H[g+24>>2]=0;H[g+12>>2]=b;H[g+8>>2]=a}a=H[4845];if(a>>>0<=h>>>0){break d}b=a-h|0;H[4845]=b;c=H[4848];a=c+h|0;H[4848]=a;H[a+4>>2]=b|1;H[c+4>>2]=h|3;a=c+8|0;break a}H[4799]=48;a=0;break a}O:{if(!e){break O}b=H[d+28>>2];a=(b<<2)+19672|0;P:{if(H[a>>2]==(d|0)){H[a>>2]=c;if(c){break P}j=Dl(b)&j;H[4843]=j;break O}H[e+(H[e+16>>2]==(d|0)?16:20)>>2]=c;if(!c){break O}}H[c+24>>2]=e;a=H[d+16>>2];if(a){H[c+16>>2]=a;H[a+24>>2]=c}a=H[d+20>>2];if(!a){break O}H[c+20>>2]=a;H[a+24>>2]=c}Q:{if(f>>>0<=15){a=f+h|0;H[d+4>>2]=a|3;a=a+d|0;H[a+4>>2]=H[a+4>>2]|1;break Q}H[d+4>>2]=h|3;e=d+h|0;H[e+4>>2]=f|1;H[e+f>>2]=f;if(f>>>0<=255){b=(f&-8)+19408|0;c=H[4842];a=1<<(f>>>3);R:{if(!(c&a)){H[4842]=a|c;a=b;break R}a=H[b+8>>2]}H[b+8>>2]=e;H[a+12>>2]=e;H[e+12>>2]=b;H[e+8>>2]=a;break Q}a=31;if(f>>>0<=16777215){a=f>>>8|0;g=a+1048320>>>16&8;a=a<>>16&4;a=a<>>16&2;a=(a<>>15|0)-(b|(c|g))|0;a=(a<<1|f>>>a+21&1)+28|0}H[e+28>>2]=a;H[e+16>>2]=0;H[e+20>>2]=0;b=(a<<2)+19672|0;S:{c=1<>2]=e;break T}a=f<<((a|0)==31?0:25-(a>>>1|0)|0);h=H[b>>2];while(1){b=h;if((H[b+4>>2]&-8)==(f|0)){break S}c=a>>>29|0;a=a<<1;c=(c&4)+b|0;h=H[c+16>>2];if(h){continue}break}H[c+16>>2]=e}H[e+24>>2]=b;H[e+12>>2]=e;H[e+8>>2]=e;break Q}a=H[b+8>>2];H[a+12>>2]=e;H[b+8>>2]=e;H[e+24>>2]=0;H[e+12>>2]=b;H[e+8>>2]=a}a=d+8|0;break a}U:{if(!i){break U}b=H[c+28>>2];a=(b<<2)+19672|0;V:{if(H[a>>2]==(c|0)){H[a>>2]=d;if(d){break V}m=19372,n=Dl(b)&j,H[m>>2]=n;break U}H[i+(H[i+16>>2]==(c|0)?16:20)>>2]=d;if(!d){break U}}H[d+24>>2]=i;a=H[c+16>>2];if(a){H[d+16>>2]=a;H[a+24>>2]=d}a=H[c+20>>2];if(!a){break U}H[d+20>>2]=a;H[a+24>>2]=d}W:{if(f>>>0<=15){a=f+h|0;H[c+4>>2]=a|3;a=a+c|0;H[a+4>>2]=H[a+4>>2]|1;break W}H[c+4>>2]=h|3;d=c+h|0;H[d+4>>2]=f|1;H[d+f>>2]=f;if(k){b=(k&-8)+19408|0;g=H[4847];a=1<<(k>>>3);X:{if(!(a&e)){H[4842]=a|e;a=b;break X}a=H[b+8>>2]}H[b+8>>2]=g;H[a+12>>2]=g;H[g+12>>2]=b;H[g+8>>2]=a}H[4847]=d;H[4844]=f}a=c+8|0}da=l+16|0;return a|0}function zk(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,G=0,J=0,K=0,L=0,M=0,O=0,Q=0,S=0,V=0,W=0,Y=0,Z=0,_=0,$=0,aa=0,ba=0,ca=0;g=da-240|0;da=g;W=H[a+36>>2];u=H[a+32>>2];H[g+184>>2]=0;H[g+188>>2]=0;H[g+176>>2]=0;H[g+180>>2]=0;H[g+168>>2]=0;H[g+172>>2]=0;H[g+160>>2]=0;H[g+164>>2]=0;H[g+152>>2]=0;H[g+156>>2]=0;H[g+144>>2]=0;H[g+148>>2]=0;if(e){Fa(g+144|0,e);h=H[g+156>>2];d=H[g+160>>2]}else{d=0}d=d-h>>2;a:{if(d>>>0>=e>>>0){if(d>>>0<=e>>>0){break a}H[g+160>>2]=(e<<2)+h;break a}Fa(g+144|12,e-d|0)}f=H[g+168>>2];d=H[g+172>>2]-f>>2;b:{if(d>>>0>=e>>>0){if(d>>>0<=e>>>0){break b}H[g+172>>2]=f+(e<<2);break b}Fa(g+168|0,e-d|0)}c:{d:{f=H[g+180>>2];d=H[g+184>>2]-f>>2;e:{f:{if(d>>>0>=e>>>0){if(d>>>0>e>>>0){H[g+184>>2]=f+(e<<2)}H[g+136>>2]=0;H[g+128>>2]=0;H[g+132>>2]=0;if(e){break f}d=1;break e}Fa(g+180|0,e-d|0);H[g+136>>2]=0;H[g+128>>2]=0;H[g+132>>2]=0}if(e>>>0>=1073741824){break d}d=e<<2;f=ra(d);H[g+128>>2]=f;i=d+f|0;H[g+136>>2]=i;ta(f,0,d);H[g+132>>2]=i;d=0}y=a+136|0;i=H[a+136>>2];f=H[a+140>>2]-i>>2;g:{if(f>>>0>>0){Fa(y,e-f|0);break g}if(e>>>0>=f>>>0){break g}H[a+140>>2]=i+(e<<2)}H[g+104>>2]=0;H[g+108>>2]=0;H[g+96>>2]=0;H[g+100>>2]=0;H[g+88>>2]=0;H[g+92>>2]=0;H[g+80>>2]=0;H[g+84>>2]=0;H[g+72>>2]=0;H[g+76>>2]=0;f=g- -64|0;H[f>>2]=0;H[f+4>>2]=0;H[g+56>>2]=0;H[g+60>>2]=0;H[g+48>>2]=0;H[g+52>>2]=0;if(!d){d=e<<2;r=ra(d);z=ta(r,0,d)+d|0}d=H[a+40>>2];d=H[d+4>>2]-H[d>>2]|0;if((d|0)<5){break c}K=e&-2;L=e&1;Y=e&-4;Q=e&3;D=e-1|0;S=e<<2;Z=a+8|0;M=a+96|0;E=d>>>2|0;O=z-r|0;V=O&-4;A=O>>2;_=g+36|0;$=g+24|0;while(1){d=H[a+40>>2];f=H[d>>2];h:{i:{x=E-1|0;if(x>>>0>2]-f>>2>>>0){d=0;m=0;k=H[f+(x<<2)>>2];j:{if((k|0)==-1){break j}l=1;i=k+2|0;m=(k>>>0)%3|0;v=m?k-1|0:i;w=1<>>5|0;f=0;G=(m|0)!=0|(i|0)!=-1;J=H[u>>2];i=k;while(1){k:{if(H[J+(i>>>3&536870908)>>2]>>>i&1){break k}m=H[H[H[u+64>>2]+12>>2]+(i<<2)>>2];if((m|0)==-1){break k}j=H[W>>2];h=H[u+28>>2];s=H[j+(H[h+(m<<2)>>2]<<2)>>2];if((s|0)>=(x|0)){break k}n=m+1|0;o=H[j+(H[h+(((n>>>0)%3|0?n:m-2|0)<<2)>>2]<<2)>>2];if((o|0)>=(x|0)){break k}h=H[j+(H[h+(m+((m>>>0)%3|0?-1:2)<<2)>>2]<<2)>>2];if((h|0)>=(x|0)){break k}l:{if(!e){break l}m=H[(g+144|0)+N(f,12)>>2];n=N(e,h);o=N(e,o);s=N(e,s);h=0;j=0;if(D){while(1){H[m+(h<<2)>>2]=(H[(h+n<<2)+b>>2]+H[(h+o<<2)+b>>2]|0)-H[(h+s<<2)+b>>2];p=h|1;H[m+(p<<2)>>2]=(H[(n+p<<2)+b>>2]+H[(o+p<<2)+b>>2]|0)-H[(p+s<<2)+b>>2];h=h+2|0;j=j+2|0;if((K|0)!=(j|0)){continue}break}}if(!L){break l}H[m+(h<<2)>>2]=(H[(h+n<<2)+b>>2]+H[(h+o<<2)+b>>2]|0)-H[(h+s<<2)+b>>2]}m=4;f=f+1|0;if((f|0)==4){break j}}m:{if(l&1){h=i-2|0;m=i+1|0;i=-1;m=(m>>>0)%3|0?m:h;if((m|0)==-1|H[H[u>>2]+(m>>>3&536870908)>>2]>>>m&1){break m}m=H[H[H[u+64>>2]+12>>2]+(m<<2)>>2];if((m|0)==-1){break m}i=m+1|0;i=(i>>>0)%3|0?i:m-2|0;break m}n:{if((i>>>0)%3|0){h=i-1|0;break n}h=i+2|0;i=-1;if((h|0)==-1){break m}}i=-1;if(H[H[u>>2]+(h>>>3&536870908)>>2]>>>h&1){break m}m=H[H[H[u+64>>2]+12>>2]+(h<<2)>>2];if((m|0)==-1){break m}if((m>>>0)%3|0){i=m-1|0;break m}i=m+2|0}if((i|0)==(k|0)){m=f;break j}if(!((l^1)&1|(i|0)!=-1)){if(!G){m=f;break j}if(w&H[H[u>>2]+(B<<2)>>2]){m=f;break j}i=H[H[H[u+64>>2]+12>>2]+(v<<2)>>2];if((i|0)==-1){m=f;break j}l=0;i=(i>>>0)%3|0?i-1|0:i+2|0}m=f;if((i|0)!=-1){continue}break}}F[g+16|0]=0;H[g+8>>2]=0;H[g+12>>2]=0;H[g+44>>2]=0;H[g+36>>2]=0;H[g+40>>2]=0;H[g+28>>2]=0;H[g+32>>2]=0;H[g+20>>2]=0;H[g+24>>2]=0;J=N(e,x)<<2;s=J+b|0;h=(N(E-2|0,e)<<2)+b|0;l=H[y>>2];i=0;if(e){while(1){k=d<<2;f=H[k+h>>2]-H[k+s>>2]|0;H[k+r>>2]=f;H[k+l>>2]=(f|0)<0?(f^-1)<<1|1:f<<1;k=f;f=f>>31;i=((k^f)-f|0)+i|0;d=d+1|0;if((e|0)!=(d|0)){continue}break}}d=g+200|0;Eb(d,M,l,e);f=Db(d);k=ea;n=f;f=H[d+12>>2];d=H[d+16>>2];l=(((f-d|0)+1|0)/64|0)+d<<3;d=d<<3;j=d;f=l+d|0;d=(l>>31)+(d>>31)|0;d=f>>>0>>0?d+1|0:d;l=f;f=n+f|0;d=d+k|0;d=f>>>0>>0?d+1|0:d;k=f;B=(m|0)<=0;if(!B){j=(m<<3)-8|0;f=j+(g+48|0)|0;n=f;l=m+H[f>>2]|0;f=H[f+4>>2];f=l>>>0>>0?f+1|0:f;H[n>>2]=l;H[n+4>>2]=f;t=U(Fb(l,H[j+(g+80|0)>>2])*(+(l>>>0)+ +(f|0)*4294967296));o:{if(P(t)<0x8000000000000000){l=P(t)>=1?~~(t>0?R(T(t*2.3283064365386963e-10),4294967295):U((t-+(~~t>>>0>>>0))*2.3283064365386963e-10))>>>0:0;f=~~t>>>0;break o}l=-2147483648;f=0}f=f+k|0;k=f}H[g+20>>2]=0;F[g+16|0]=0;H[g+8>>2]=k;H[g+12>>2]=i;cb($,h,h+S|0);Uc(_,r,z);p:{q:{if(!B){k=(g+124|0)+m|0;f=k-1|0;d=(m<<3)-8|0;G=d+(g+48|0)|0;aa=d+(g+80|0)|0;l=1;v=0;while(1){d=g+124|0;ta(d,1,m);v=v+1|0;ta(d,0,v);r:{s:while(1){if(e){ta(H[g+128>>2],0,S)}j=0;d=H[g+128>>2];w=0;while(1){if(!I[(g+124|0)+j|0]){t:{if(!e){break t}i=H[(g+144|0)+N(j,12)>>2];n=0;h=0;o=0;if(D>>>0>2){while(1){p=h<<2;q=p+d|0;H[q>>2]=H[q>>2]+H[i+p>>2];q=p|4;C=q+d|0;H[C>>2]=H[C>>2]+H[i+q>>2];q=p|8;C=q+d|0;H[C>>2]=H[C>>2]+H[i+q>>2];p=p|12;q=p+d|0;H[q>>2]=H[q>>2]+H[i+p>>2];h=h+4|0;o=o+4|0;if((Y|0)!=(o|0)){continue}break}}if(!Q){break t}while(1){o=h<<2;p=o+d|0;H[p>>2]=H[p>>2]+H[i+o>>2];h=h+1|0;n=n+1|0;if((Q|0)!=(n|0)){continue}break}}w=1<>2];i=0;break u}h=0;i=H[g+128>>2];d=0;if(D){while(1){j=h<<2;n=j+i|0;H[n>>2]=H[n>>2]/(l|0);j=i+(j|4)|0;H[j>>2]=H[j>>2]/(l|0);h=h+2|0;d=d+2|0;if((K|0)!=(d|0)){continue}break}}if(L){d=i+(h<<2)|0;H[d>>2]=H[d>>2]/(l|0)}n=H[y>>2];d=0;i=0;if(!e){break u}o=H[g+128>>2];while(1){j=d<<2;h=H[j+o>>2]-H[j+s>>2]|0;H[j+r>>2]=h;H[j+n>>2]=(h|0)<0?(h^-1)<<1|1:h<<1;j=i;i=h>>31;i=j+((i^h)-i|0)|0;d=d+1|0;if((e|0)!=(d|0)){continue}break}}d=g+200|0;Eb(d,M,n,e);h=Db(d);n=h;h=H[d+12>>2];d=H[d+16>>2];j=(((h-d|0)+1|0)/64|0)+d<<3;d=d<<3;h=j+d|0;d=n+h|0;h=d;if((m|0)>0){d=H[G+4>>2];j=H[G>>2];t=U(Fb(j,H[aa>>2]+l|0)*(+(j>>>0)+ +(d|0)*4294967296));v:{if(P(t)<0x8000000000000000){d=~~t>>>0;break v}d=0}h=d+h|0}d=H[g+8>>2];if(!((d|0)<=(h|0)&((d|0)<(h|0)|(i|0)>=H[g+12>>2]))){H[g+20>>2]=l;F[g+16|0]=w;H[g+8>>2]=h;H[g+12>>2]=i;n=H[g+132>>2];j=H[g+128>>2];o=n-j|0;h=o>>2;i=H[g+32>>2];d=H[g+24>>2];w:{if(h>>>0<=i-d>>2>>>0){o=H[g+28>>2]-d|0;i=o+j|0;w=o>>2;o=w>>>0>>0?i:n;p=o-j|0;if((j|0)!=(o|0)){xa(d,j,p)}if(h>>>0>w>>>0){h=H[g+28>>2];if((n|0)==(o|0)){break w}while(1){H[h>>2]=H[i>>2];h=h+4|0;i=i+4|0;if((n|0)!=(i|0)){continue}break}break w}h=d+p|0;break w}if(d){H[g+28>>2]=d;qa(d);H[g+32>>2]=0;H[g+24>>2]=0;H[g+28>>2]=0;i=0}if((o|0)<0){break q}d=i>>1;d=i>>>0<2147483644?d>>>0>h>>>0?d:h:1073741823;if(d>>>0>=1073741824){break q}d=d<<2;h=ra(d);H[g+24>>2]=h;H[g+32>>2]=d+h;if((j|0)==(n|0)){break w}d=o&-4;h=sa(h,j,d)+d|0}H[g+28>>2]=h;i=H[g+44>>2];d=H[g+36>>2];x:{if(i-d>>2>>>0>=A>>>0){h=H[g+40>>2]-d|0;i=h+r|0;n=h>>2;j=n>>>0>>0?i:z;h=j-r|0;if((j|0)!=(r|0)){xa(d,r,h)}if(n>>>0>>0){h=H[g+40>>2];if((j|0)==(z|0)){break x}while(1){H[h>>2]=H[i>>2];h=h+4|0;i=i+4|0;if((z|0)!=(i|0)){continue}break}break x}h=d+h|0;break x}if(d){H[g+40>>2]=d;qa(d);H[g+44>>2]=0;H[g+36>>2]=0;H[g+40>>2]=0;i=0}if((O|0)<0){break p}d=i>>1;d=i>>>0<2147483644?d>>>0>A>>>0?d:A:1073741823;if(d>>>0>=1073741824){break p}d=d<<2;h=ra(d);H[g+36>>2]=h;H[g+44>>2]=d+h;if((r|0)==(z|0)){break x}h=sa(h,r,V)+V|0}H[g+40>>2]=h}if((f|0)==(g+124|0)){break r}h=I[f|0];i=-1;while(1){n=h&255;d=i-1|0;j=d+k|0;h=I[j|0];if(n>>>0>h>>>0){d=k;while(1){d=d-1|0;n=I[d|0];if(n>>>0<=h>>>0){continue}break}F[j|0]=n;F[d|0]=h;if((i|0)==-1){continue s}h=i+k|0;i=f;while(1){d=I[h|0];F[h|0]=I[i|0];F[i|0]=d;h=h+1|0;i=i-1|0;if(h>>>0>>0){continue}break}continue s}i=d;if((j|0)!=(g+124|0)){continue}break}break}d=g+124|0;h=d;i=f;if(d>>>0>=f>>>0){break r}while(1){d=I[h|0];F[h|0]=I[i|0];F[i|0]=d;h=h+1|0;i=i-1|0;if(h>>>0>>0){continue}break}}l=l+1|0;if((m|0)!=(v|0)){continue}break}}if((m|0)>0){d=(m<<3)+g|0;i=d;k=H[g+20>>2];f=k+H[d+72>>2]|0;d=H[d+76>>2]+(k>>31)|0;H[i+72>>2]=f;H[i+76>>2]=f>>>0>>0?d+1|0:d}if(!e){break h}d=H[y>>2];h=0;f=H[g+36>>2];o=0;if(!D){break i}while(1){k=h<<2;i=H[k+f>>2];H[d+k>>2]=(i|0)<0?(i^-1)<<1|1:i<<1;k=k|4;i=H[k+f>>2];H[d+k>>2]=(i|0)<0?(i^-1)<<1|1:i<<1;h=h+2|0;o=o+2|0;if((K|0)!=(o|0)){continue}break}break i}ua();X()}ua();X()}va();X()}if(!L){break h}i=h<<2;f=H[i+f>>2];H[d+i>>2]=(f|0)<0?(f^-1)<<1|1:f<<1}Mc(g+200|0,M,H[y>>2],e);y:{if(B){break y}k=N(m,12)+a|0;i=0;while(1){z:{h=H[k+40>>2];l=h<<5;d=H[k+36>>2];A:{if(!(I[g+16|0]>>>i&1)){f=d;B:{if((d|0)!=(l|0)){break B}if((d+1|0)<0){break z}C:{if(d>>>0<=1073741822){h=h<<6;l=d+32&-32;l=h>>>0>l>>>0?h:l;f=d;if(d>>>0>=l>>>0){break B}if((l|0)>=0){break C}break z}l=2147483647;f=-1;if(d>>>0>=2147483647){break B}}l=(l-1>>>5|0)+1|0;f=ra(l<<2);h=H[k+32>>2];H[f+((d>>>0<33?0:d-1>>>5|0)<<2)>>2]=0;D:{E:{if(!d){break E}j=d>>>5<<2;n=xa(f,h,j);o=d&31;if(!o){break E}f=j+n|0;p=f;q=H[f>>2];f=-1>>>32-o|0;H[p>>2]=q&(f^-1)|f&H[h+j>>2];H[k+32>>2]=n;H[k+36>>2]=d;H[k+40>>2]=l;break D}H[k+32>>2]=f;H[k+36>>2]=d;H[k+40>>2]=l;f=d;if(!h){break B}}qa(h);f=H[k+36>>2]}H[k+36>>2]=f+1;d=H[k+32>>2]+(f>>>3&536870908)|0;H[d>>2]=H[d>>2]|1<>>0<=1073741822){h=h<<6;l=d+32&-32;l=h>>>0>l>>>0?h:l;f=d;if(d>>>0>=l>>>0){break F}if((l|0)<0){break z}break G}l=2147483647;f=-1;if(d>>>0>=2147483647){break F}}l=(l-1>>>5|0)+1|0;f=ra(l<<2);h=H[k+32>>2];H[f+((d>>>0<33?0:d-1>>>5|0)<<2)>>2]=0;H:{I:{if(!d){break I}j=d>>>5<<2;n=xa(f,h,j);o=d&31;if(!o){break I}f=j+n|0;p=f;q=H[f>>2];f=-1>>>32-o|0;H[p>>2]=q&(f^-1)|f&H[h+j>>2];H[k+32>>2]=n;H[k+36>>2]=d;H[k+40>>2]=l;break H}H[k+32>>2]=f;H[k+36>>2]=d;H[k+40>>2]=l;f=d;if(!h){break F}}qa(h);f=H[k+36>>2]}H[k+36>>2]=f+1;d=H[k+32>>2]+(f>>>3&536870908)|0;h=H[d>>2];ba=d,ca=Dl(f)&h,H[ba>>2]=ca}i=i+1|0;if((m|0)!=(i|0)){continue}break y}break}ua();X()}d=H[g+24>>2];f=H[d>>2];d=H[d+4>>2];i=H[s+4>>2];H[g+232>>2]=H[s>>2];H[g+236>>2]=i;H[g+224>>2]=f;H[g+228>>2]=d;_a(g+200|0,Z,g+232|0,g+224|0);d=c+J|0;H[d>>2]=H[g+200>>2];H[d+4>>2]=H[g+204>>2];d=H[g+36>>2];if(d){H[g+40>>2]=d;qa(d)}d=H[g+24>>2];if(d){H[g+28>>2]=d;qa(d)}d=(E|0)>2;E=x;if(d){continue}break}break c}ua();X()}d=H[g+144>>2];if((e|0)>0){ta(d,0,e<<2)}e=H[d>>2];d=H[d+4>>2];f=H[b+4>>2];H[g+200>>2]=H[b>>2];H[g+204>>2]=f;H[g+232>>2]=e;H[g+236>>2]=d;_a(g+8|0,a+8|0,g+200|0,g+232|0);H[c>>2]=H[g+8>>2];H[c+4>>2]=H[g+12>>2];if(r){qa(r)}a=H[g+128>>2];if(a){H[g+132>>2]=a;qa(a)}a=H[g+180>>2];if(a){H[g+184>>2]=a;qa(a)}a=H[g+168>>2];if(a){H[g+172>>2]=a;qa(a)}a=H[g+156>>2];if(a){H[g+160>>2]=a;qa(a)}a=H[g+144>>2];if(a){H[g+148>>2]=a;qa(a)}da=g+240|0;return 1}function nk(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,G=0,J=0,K=0,L=0,M=0,O=0,Q=0,S=0,V=0,W=0,Y=0,Z=0,_=0,$=0,aa=0,ba=0,ca=0;g=da-240|0;da=g;Y=H[a+36>>2];Q=H[a+32>>2];H[g+184>>2]=0;H[g+188>>2]=0;H[g+176>>2]=0;H[g+180>>2]=0;H[g+168>>2]=0;H[g+172>>2]=0;H[g+160>>2]=0;H[g+164>>2]=0;H[g+152>>2]=0;H[g+156>>2]=0;H[g+144>>2]=0;H[g+148>>2]=0;if(e){Fa(g+144|0,e);h=H[g+156>>2];d=H[g+160>>2]}else{d=0}d=d-h>>2;a:{if(d>>>0>=e>>>0){if(d>>>0<=e>>>0){break a}H[g+160>>2]=(e<<2)+h;break a}Fa(g+144|12,e-d|0)}d=H[g+168>>2];f=H[g+172>>2]-d>>2;b:{if(f>>>0>=e>>>0){if(e>>>0>=f>>>0){break b}H[g+172>>2]=d+(e<<2);break b}Fa(g+168|0,e-f|0)}c:{d:{d=H[g+180>>2];f=H[g+184>>2]-d>>2;e:{f:{if(f>>>0>=e>>>0){if(e>>>0>>0){H[g+184>>2]=d+(e<<2)}H[g+136>>2]=0;H[g+128>>2]=0;H[g+132>>2]=0;if(e){break f}d=1;break e}Fa(g+180|0,e-f|0);H[g+136>>2]=0;H[g+128>>2]=0;H[g+132>>2]=0}if(e>>>0>=1073741824){break d}j=e<<2;f=ra(j);H[g+128>>2]=f;d=f+j|0;H[g+136>>2]=d;ta(f,0,j);H[g+132>>2]=d;d=0}A=a+136|0;f=H[a+136>>2];j=H[a+140>>2]-f>>2;g:{if(j>>>0>>0){Fa(A,e-j|0);break g}if(e>>>0>=j>>>0){break g}H[a+140>>2]=f+(e<<2)}H[g+104>>2]=0;H[g+108>>2]=0;H[g+96>>2]=0;H[g+100>>2]=0;H[g+88>>2]=0;H[g+92>>2]=0;H[g+80>>2]=0;H[g+84>>2]=0;H[g+72>>2]=0;H[g+76>>2]=0;f=g- -64|0;H[f>>2]=0;H[f+4>>2]=0;H[g+56>>2]=0;H[g+60>>2]=0;H[g+48>>2]=0;H[g+52>>2]=0;if(!d){d=e<<2;t=ra(d);B=ta(t,0,d)+d|0}d=H[a+40>>2];d=H[d+4>>2]-H[d>>2]|0;if((d|0)<5){break c}K=e&-2;L=e&1;Z=e&-4;S=e&3;D=e-1|0;V=e<<2;_=a+8|0;M=a+96|0;E=d>>>2|0;O=B-t|0;W=O&-4;C=O>>2;$=g+36|0;aa=g+24|0;while(1){d=H[a+40>>2];f=H[d>>2];h:{i:{z=E-1|0;if(z>>>0>2]-f>>2>>>0){d=0;j=0;k=H[f+(z<<2)>>2];j:{if((k|0)==-1){break j}y=H[Q+12>>2];i=k+2|0;j=(k>>>0)%3|0;l=y+((j?k-1|0:i)<<2)|0;f=0;n=(j|0)!=0|(i|0)!=-1;r=1;i=k;while(1){s=H[y+(i<<2)>>2];k:{if((s|0)==-1){break k}u=-1;v=H[Y>>2];m=H[Q>>2];h=v+(H[m+(s<<2)>>2]<<2)|0;j=s+1|0;j=(j>>>0)%3|0?j:s-2|0;if((j|0)!=-1){u=H[m+(j<<2)>>2]}q=H[h>>2];l:{m:{if((s>>>0)%3|0){h=s-1|0;break m}h=s+2|0;j=-1;if((h|0)==-1){break l}}j=H[m+(h<<2)>>2]}if((q|0)>=(z|0)){break k}h=H[v+(u<<2)>>2];if((h|0)>=(z|0)){break k}j=H[v+(j<<2)>>2];if((j|0)>=(z|0)){break k}s=H[(g+144|0)+N(f,12)>>2];n:{if(!e){break n}m=N(e,j);v=N(e,h);q=N(e,q);h=0;w=0;if(D){while(1){H[s+(h<<2)>>2]=(H[(h+m<<2)+b>>2]+H[(h+v<<2)+b>>2]|0)-H[(h+q<<2)+b>>2];j=h|1;H[s+(j<<2)>>2]=(H[(j+m<<2)+b>>2]+H[(j+v<<2)+b>>2]|0)-H[(j+q<<2)+b>>2];h=h+2|0;w=w+2|0;if((K|0)!=(w|0)){continue}break}}if(!L){break n}H[s+(h<<2)>>2]=(H[(h+m<<2)+b>>2]+H[(h+v<<2)+b>>2]|0)-H[(h+q<<2)+b>>2]}j=4;f=f+1|0;if((f|0)==4){break j}}o:{if(r&1){h=i+1|0;i=(h>>>0)%3|0?h:i-2|0;j=-1;if((i|0)==-1){break o}i=H[y+(i<<2)>>2];j=-1;if((i|0)==-1){break o}j=i+1|0;j=(j>>>0)%3|0?j:i-2|0;break o}p:{if((i>>>0)%3|0){h=i-1|0;break p}h=i+2|0;j=-1;if((h|0)==-1){break o}}i=H[y+(h<<2)>>2];j=-1;if((i|0)==-1){break o}j=i-1|0;if((i>>>0)%3|0){break o}j=i+2|0}i=j;if((k|0)==(i|0)){j=f;break j}if(!((r^1)&1|(i|0)!=-1)){if(!n){j=f;break j}j=H[l>>2];if((j|0)==-1){j=f;break j}r=0;i=(j>>>0)%3|0?j-1|0:j+2|0}j=f;if((i|0)!=-1){continue}break}}F[g+16|0]=0;H[g+8>>2]=0;H[g+12>>2]=0;H[g+44>>2]=0;H[g+36>>2]=0;H[g+40>>2]=0;H[g+28>>2]=0;H[g+32>>2]=0;H[g+20>>2]=0;H[g+24>>2]=0;v=N(e,z)<<2;G=v+b|0;q=(N(E-2|0,e)<<2)+b|0;i=H[A>>2];h=0;if(e){while(1){f=d<<2;k=H[f+q>>2]-H[f+G>>2]|0;H[f+t>>2]=k;H[f+i>>2]=(k|0)<0?(k^-1)<<1|1:k<<1;f=k>>31;h=((f^k)-f|0)+h|0;d=d+1|0;if((e|0)!=(d|0)){continue}break}}f=g+200|0;Eb(f,M,i,e);d=Db(f);k=ea;o=d;d=H[f+16>>2];i=(((H[f+12>>2]-d|0)+1|0)/64|0)+d<<3;d=d<<3;f=d;n=i+d|0;d=(i>>31)+(d>>31)|0;d=f>>>0>n>>>0?d+1|0:d;f=n;n=o+f|0;i=d+k|0;i=f>>>0>n>>>0?i+1|0:i;f=n;d=i;y=(j|0)<=0;if(!y){n=(j<<3)-8|0;i=n+(g+48|0)|0;k=i;l=j+H[i>>2]|0;i=H[i+4>>2];i=j>>>0>l>>>0?i+1|0:i;H[k>>2]=l;H[k+4>>2]=i;x=U(Fb(l,H[n+(g+80|0)>>2])*(+(l>>>0)+ +(i|0)*4294967296));q:{if(P(x)<0x8000000000000000){k=P(x)>=1?~~(x>0?R(T(x*2.3283064365386963e-10),4294967295):U((x-+(~~x>>>0>>>0))*2.3283064365386963e-10))>>>0:0;i=~~x>>>0;break q}k=-2147483648;i=0}i=f+i|0;f=i}H[g+20>>2]=0;F[g+16|0]=0;H[g+8>>2]=f;H[g+12>>2]=h;cb(aa,q,q+V|0);Uc($,t,B);r:{s:{if(!y){n=(g+124|0)+j|0;k=n-1|0;d=(j<<3)-8|0;s=d+(g+48|0)|0;q=d+(g+80|0)|0;f=1;J=0;while(1){d=g+124|0;ta(d,1,j);J=J+1|0;ta(d,0,J);t:{u:while(1){if(e){ta(H[g+128>>2],0,V)}w=0;o=H[g+128>>2];r=0;while(1){if(!I[(g+124|0)+w|0]){v:{if(!e){break v}p=H[(g+144|0)+N(w,12)>>2];i=0;h=0;u=0;if(D>>>0>2){while(1){m=h<<2;d=m+o|0;H[d>>2]=H[d>>2]+H[m+p>>2];l=m|4;d=l+o|0;H[d>>2]=H[d>>2]+H[l+p>>2];l=m|8;d=l+o|0;H[d>>2]=H[d>>2]+H[l+p>>2];l=m|12;d=l+o|0;H[d>>2]=H[d>>2]+H[l+p>>2];h=h+4|0;u=u+4|0;if((Z|0)!=(u|0)){continue}break}}if(!S){break v}while(1){l=h<<2;d=l+o|0;H[d>>2]=H[d>>2]+H[l+p>>2];h=h+1|0;i=i+1|0;if((S|0)!=(i|0)){continue}break}}r=1<>2];d=0;break w}h=0;m=H[g+128>>2];d=0;if(D){while(1){l=h<<2;i=l+m|0;H[i>>2]=H[i>>2]/(f|0);i=m+(l|4)|0;H[i>>2]=H[i>>2]/(f|0);h=h+2|0;d=d+2|0;if((K|0)!=(d|0)){continue}break}}if(L){d=m+(h<<2)|0;H[d>>2]=H[d>>2]/(f|0)}i=H[A>>2];d=0;if(!e){break w}l=H[g+128>>2];h=0;while(1){m=d<<2;p=H[m+l>>2]-H[m+G>>2]|0;H[m+t>>2]=p;H[i+m>>2]=(p|0)<0?(p^-1)<<1|1:p<<1;o=h;h=p>>31;h=o+((h^p)-h|0)|0;d=d+1|0;if((e|0)!=(d|0)){continue}break}d=h}h=g+200|0;Eb(h,M,i,e);i=Db(h);o=i;i=H[h+16>>2];l=(((H[h+12>>2]-i|0)+1|0)/64|0)+i<<3;i=i<<3;h=i;m=l+h|0;h=o+m|0;if((j|0)>0){l=H[s+4>>2];i=H[s>>2];x=U(Fb(i,H[q>>2]+f|0)*(+(i>>>0)+ +(l|0)*4294967296));x:{if(P(x)<0x8000000000000000){i=~~x>>>0;break x}i=0}h=i+h|0}i=H[g+8>>2];if(!((i|0)<=(h|0)&((h|0)>(i|0)|(d|0)>=H[g+12>>2]))){H[g+20>>2]=f;F[g+16|0]=r;H[g+8>>2]=h;H[g+12>>2]=d;p=H[g+132>>2];o=H[g+128>>2];l=p-o|0;m=l>>2;i=H[g+32>>2];r=H[g+24>>2];y:{if(m>>>0<=i-r>>2>>>0){d=H[g+28>>2]-r|0;i=d+o|0;d=d>>2;l=d>>>0>>0?i:p;h=l-o|0;if((l|0)!=(o|0)){xa(r,o,h)}if(d>>>0>>0){h=H[g+28>>2];if((l|0)==(p|0)){break y}while(1){H[h>>2]=H[i>>2];h=h+4|0;i=i+4|0;if((p|0)!=(i|0)){continue}break}break y}h=h+r|0;break y}if(r){H[g+28>>2]=r;qa(r);H[g+32>>2]=0;H[g+24>>2]=0;H[g+28>>2]=0;i=0}if((l|0)<0){break s}d=i>>1;d=i>>>0<2147483644?d>>>0>m>>>0?d:m:1073741823;if(d>>>0>=1073741824){break s}d=d<<2;h=ra(d);H[g+24>>2]=h;H[g+32>>2]=d+h;if((p|0)==(o|0)){break y}d=l&-4;h=sa(h,o,d)+d|0}H[g+28>>2]=h;i=H[g+44>>2];m=H[g+36>>2];z:{if(i-m>>2>>>0>=C>>>0){d=H[g+40>>2]-m|0;i=d+t|0;d=d>>2;l=d>>>0>>0?i:B;h=l-t|0;if((l|0)!=(t|0)){xa(m,t,h)}if(d>>>0>>0){h=H[g+40>>2];if((l|0)==(B|0)){break z}while(1){H[h>>2]=H[i>>2];h=h+4|0;i=i+4|0;if((B|0)!=(i|0)){continue}break}break z}h=h+m|0;break z}if(m){H[g+40>>2]=m;qa(m);H[g+44>>2]=0;H[g+36>>2]=0;H[g+40>>2]=0;i=0}if((O|0)<0){break r}d=i>>1;d=i>>>0<2147483644?d>>>0>C>>>0?d:C:1073741823;if(d>>>0>=1073741824){break r}d=d<<2;h=ra(d);H[g+36>>2]=h;H[g+44>>2]=d+h;if((t|0)==(B|0)){break z}h=sa(h,t,W)+W|0}H[g+40>>2]=h}if((k|0)==(g+124|0)){break t}h=I[k|0];i=-1;while(1){l=h&255;d=i-1|0;m=d+n|0;h=I[m|0];if(l>>>0>h>>>0){d=n;while(1){d=d-1|0;l=I[d|0];if(l>>>0<=h>>>0){continue}break}F[m|0]=l;F[d|0]=h;if((i|0)==-1){continue u}h=i+n|0;i=k;while(1){d=I[h|0];F[h|0]=I[i|0];F[i|0]=d;h=h+1|0;i=i-1|0;if(h>>>0>>0){continue}break}continue u}i=d;if((m|0)!=(g+124|0)){continue}break}break}d=g+124|0;h=d;i=k;if(d>>>0>=i>>>0){break t}while(1){d=I[h|0];F[h|0]=I[i|0];F[i|0]=d;h=h+1|0;i=i-1|0;if(h>>>0>>0){continue}break}}f=f+1|0;if((j|0)!=(J|0)){continue}break}}if((j|0)>0){i=(j<<3)+g|0;d=H[g+20>>2];f=d;k=d+H[i+72>>2]|0;d=H[i+76>>2]+(d>>31)|0;H[i+72>>2]=k;H[i+76>>2]=f>>>0>k>>>0?d+1|0:d}if(!e){break h}k=H[A>>2];h=0;i=H[g+36>>2];u=0;if(!D){break i}while(1){d=h<<2;f=H[d+i>>2];H[d+k>>2]=(f|0)<0?(f^-1)<<1|1:f<<1;d=d|4;f=H[d+i>>2];H[d+k>>2]=(f|0)<0?(f^-1)<<1|1:f<<1;h=h+2|0;u=u+2|0;if((K|0)!=(u|0)){continue}break}break i}ua();X()}ua();X()}va();X()}if(!L){break h}d=h<<2;f=H[d+i>>2];H[d+k>>2]=(f|0)<0?(f^-1)<<1|1:f<<1}Mc(g+200|0,M,H[A>>2],e);A:{if(y){break A}k=N(j,12)+a|0;i=0;while(1){B:{n=H[k+40>>2];h=n<<5;d=H[k+36>>2];C:{if(!(I[g+16|0]>>>i&1)){f=d;D:{if((d|0)!=(h|0)){break D}if((d+1|0)<0){break B}E:{if(d>>>0<=1073741822){n=n<<6;h=d+32&-32;h=h>>>0>>0?n:h;f=d;if(d>>>0>=h>>>0){break D}if((h|0)>=0){break E}break B}h=2147483647;f=-1;if(d>>>0>=2147483647){break D}}q=(h-1>>>5|0)+1|0;f=ra(q<<2);m=H[k+32>>2];H[f+((d>>>0<33?0:d-1>>>5|0)<<2)>>2]=0;F:{G:{if(!d){break G}l=d>>>5<<2;n=xa(f,m,l);h=d&31;if(!h){break G}f=l+n|0;o=f;p=H[f>>2];f=-1>>>32-h|0;H[o>>2]=p&(f^-1)|f&H[m+l>>2];H[k+32>>2]=n;H[k+36>>2]=d;H[k+40>>2]=q;break F}H[k+32>>2]=f;H[k+36>>2]=d;H[k+40>>2]=q;f=d;if(!m){break D}}qa(m);f=H[k+36>>2]}H[k+36>>2]=f+1;d=H[k+32>>2]+(f>>>3&536870908)|0;H[d>>2]=H[d>>2]|1<>>0<=1073741822){n=n<<6;h=d+32&-32;h=h>>>0>>0?n:h;f=d;if(d>>>0>=h>>>0){break H}if((h|0)<0){break B}break I}h=2147483647;f=-1;if(d>>>0>=2147483647){break H}}q=(h-1>>>5|0)+1|0;f=ra(q<<2);m=H[k+32>>2];H[f+((d>>>0<33?0:d-1>>>5|0)<<2)>>2]=0;J:{K:{if(!d){break K}l=d>>>5<<2;n=xa(f,m,l);h=d&31;if(!h){break K}f=l+n|0;o=f;p=H[f>>2];f=-1>>>32-h|0;H[o>>2]=p&(f^-1)|f&H[m+l>>2];H[k+32>>2]=n;H[k+36>>2]=d;H[k+40>>2]=q;break J}H[k+32>>2]=f;H[k+36>>2]=d;H[k+40>>2]=q;f=d;if(!m){break H}}qa(m);f=H[k+36>>2]}H[k+36>>2]=f+1;h=H[k+32>>2]+(f>>>3&536870908)|0;d=H[h>>2];ba=h,ca=Dl(f)&d,H[ba>>2]=ca}i=i+1|0;if((j|0)!=(i|0)){continue}break A}break}ua();X()}d=H[g+24>>2];j=H[d>>2];f=H[d+4>>2];d=H[G+4>>2];H[g+232>>2]=H[G>>2];H[g+236>>2]=d;H[g+224>>2]=j;H[g+228>>2]=f;_a(g+200|0,_,g+232|0,g+224|0);d=c+v|0;H[d>>2]=H[g+200>>2];H[d+4>>2]=H[g+204>>2];d=H[g+36>>2];if(d){H[g+40>>2]=d;qa(d)}d=H[g+24>>2];if(d){H[g+28>>2]=d;qa(d)}d=(E|0)>2;E=z;if(d){continue}break}break c}ua();X()}d=H[g+144>>2];if((e|0)>0){ta(d,0,e<<2)}f=H[d>>2];e=H[d+4>>2];d=H[b+4>>2];H[g+200>>2]=H[b>>2];H[g+204>>2]=d;H[g+232>>2]=f;H[g+236>>2]=e;_a(g+8|0,a+8|0,g+200|0,g+232|0);H[c>>2]=H[g+8>>2];H[c+4>>2]=H[g+12>>2];if(t){qa(t)}a=H[g+128>>2];if(a){H[g+132>>2]=a;qa(a)}a=H[g+180>>2];if(a){H[g+184>>2]=a;qa(a)}a=H[g+168>>2];if(a){H[g+172>>2]=a;qa(a)}a=H[g+156>>2];if(a){H[g+160>>2]=a;qa(a)}a=H[g+144>>2];if(a){H[g+148>>2]=a;qa(a)}da=g+240|0;return 1}function gf(a){var b=0,c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0;v=da-16|0;da=v;b=ra(88);H[b>>2]=0;H[b+4>>2]=0;H[b+56>>2]=0;H[b+48>>2]=0;H[b+52>>2]=0;H[b+40>>2]=0;H[b+44>>2]=0;H[b+32>>2]=0;H[b+36>>2]=0;H[b+24>>2]=0;H[b+28>>2]=0;H[b+16>>2]=0;H[b+20>>2]=0;H[b+8>>2]=0;H[b+12>>2]=0;c=b- -64|0;H[c>>2]=0;H[c+4>>2]=0;H[b+72>>2]=0;H[b+76>>2]=0;H[b+80>>2]=0;H[b+84>>2]=0;H[b+60>>2]=b;c=a;u=da-16|0;da=u;H[b+80>>2]=0;H[b+84>>2]=0;d=H[b+76>>2];a=b;H[b+76>>2]=0;if(d){qa(d)}H[a+68>>2]=0;H[a+72>>2]=0;d=a- -64|0;b=H[d>>2];H[d>>2]=0;if(b){qa(b)}d=H[c+4>>2];g=H[c>>2];h=(d-g|0)/12|0;b=N(h,3);e=H[a>>2];f=H[a+4>>2]-e>>2;a:{if(b>>>0>f>>>0){Fa(a,b-f|0);d=H[c+4>>2];g=H[c>>2];h=(d-g|0)/12|0;break a}if(b>>>0>=f>>>0){break a}H[a+4>>2]=e+(b<<2)}b:{if((d|0)==(g|0)){break b}d=h>>>0>1?h:1;e=d&1;c=H[a>>2];b=0;if(h>>>0>=2){i=d&-2;h=0;while(1){d=N(b,12);m=d+c|0;f=d+g|0;H[m>>2]=H[f>>2];H[c+(d|4)>>2]=H[f+4>>2];H[m+8>>2]=H[f+8>>2];f=N(b|1,12);d=f+c|0;f=f+g|0;H[d>>2]=H[f>>2];H[d+4>>2]=H[f+4>>2];H[d+8>>2]=H[f+8>>2];b=b+2|0;h=h+2|0;if((i|0)!=(h|0)){continue}break}}if(!e){break b}h=c;c=N(b,12);b=h+c|0;c=c+g|0;H[b>>2]=H[c>>2];H[b+4>>2]=H[c+4>>2];H[b+8>>2]=H[c+8>>2]}H[u+12>>2]=-1;b=0;d=0;f=0;i=da-32|0;da=i;c:{r=u+12|0;d:{if(!r){break d}h=H[a+4>>2];m=H[a>>2];c=h-m|0;j=c>>2;g=H[a+12>>2];e=H[a+16>>2]-g>>2;e:{if(j>>>0>e>>>0){La(a+12|0,j-e|0,14880);h=H[a+4>>2];m=H[a>>2];c=h-m|0;j=c>>2;break e}if(e>>>0<=j>>>0){break e}H[a+16>>2]=g+(j<<2)}H[i+24>>2]=0;H[i+16>>2]=0;H[i+20>>2]=0;e=(h|0)==(m|0);if(!e){if((c|0)<0){break c}d=ra(c);H[i+20>>2]=d;H[i+16>>2]=d;H[i+24>>2]=(j<<2)+d}f:{g:{h:{i:{j:{if(c){while(1){g=H[(b<<2)+m>>2];c=H[i+20>>2]-d>>2;k:{if(g>>>0>>0){break k}H[i>>2]=0;e=g+1|0;if(e>>>0>c>>>0){La(i+16|0,e-c|0,i);m=H[a>>2];h=H[a+4>>2];d=H[i+16>>2];break k}if(c>>>0<=e>>>0){break k}H[i+20>>2]=(e<<2)+d}c=(g<<2)+d|0;H[c>>2]=H[c>>2]+1;b=b+1|0;c=h-m|0;j=c>>2;if(b>>>0>>0){continue}break}break j}c=0;if(!e){break i}break h}if((h|0)==(m|0)){c=0;break h}if(c>>>0>=2147483645){break g}}c=ra(c<<1);ta(c,255,j<<3)}H[i+8>>2]=0;H[i>>2]=0;H[i+4>>2]=0;e=H[i+20>>2];b=e-d|0;p=b>>2;l:{m:{if((d|0)==(e|0)){break m}if((b|0)<0){break l}l=ra(b);H[i>>2]=l;H[i+8>>2]=(p<<2)+l;e=ta(l,0,b);H[i+4>>2]=e+b;h=p>>>0>1?p:1;g=h&3;b=0;if(h-1>>>0>=3){o=h&-4;while(1){h=f<<2;H[h+e>>2]=b;s=h|4;b=H[d+h>>2]+b|0;H[s+e>>2]=b;q=h|8;b=b+H[d+s>>2]|0;H[q+e>>2]=b;h=h|12;b=b+H[d+q>>2]|0;H[h+e>>2]=b;b=b+H[d+h>>2]|0;f=f+4|0;n=n+4|0;if((o|0)!=(n|0)){continue}break}}if(!g){break m}while(1){h=f<<2;H[h+e>>2]=b;f=f+1|0;b=H[d+h>>2]+b|0;k=k+1|0;if((g|0)!=(k|0)){continue}break}}if(!j){break f}s=H[a+12>>2];e=0;while(1){w=e<<2;b=w+m|0;k=-1;g=e+1|0;f=(g>>>0)%3|0?g:e-2|0;if((f|0)!=-1){k=H[(f<<2)+m>>2]}h=H[b>>2];n:{o:{if(!((e>>>0)%3|0)){n=-1;b=e+2|0;if((b|0)!=-1){n=H[(b<<2)+m>>2]}if(!((h|0)==(k|0)|(h|0)==(n|0))&(k|0)!=(n|0)){break o}H[a+40>>2]=H[a+40>>2]+1;e=e+3|0;break n}n=H[b-4>>2]}b=n<<2;q=H[b+d>>2];p:{q:{if((q|0)<=0){break q}b=H[b+l>>2];f=0;while(1){o=(b<<3)+c|0;t=H[o>>2];if((t|0)==-1){break q}r:{if((k|0)!=(t|0)){break r}o=H[o+4>>2];if((o|0)!=-1){t=H[(o<<2)+m>>2]}else{t=-1}if((t|0)==(h|0)){break r}while(1){s:{h=b;f=f+1|0;if((q|0)<=(f|0)){break s}b=h+1|0;x=(b<<3)+c|0;t=H[x>>2];y=(h<<3)+c|0;H[y+4>>2]=H[x+4>>2];H[y>>2]=t;if((t|0)!=-1){continue}}break}H[(h<<3)+c>>2]=-1;if((o|0)==-1){break q}H[s+w>>2]=o;H[s+(o<<2)>>2]=e;break p}b=b+1|0;f=f+1|0;if((q|0)!=(f|0)){continue}break}}b=k<<2;k=H[b+d>>2];if((k|0)<=0){break p}b=H[b+l>>2];f=0;while(1){h=(b<<3)+c|0;if(H[h>>2]==-1){H[h>>2]=n;H[h+4>>2]=e;break p}b=b+1|0;f=f+1|0;if((k|0)!=(f|0)){continue}break}}e=g}if(j>>>0>e>>>0){continue}break}break f}break c}be(1313);X()}H[r>>2]=p;if(l){qa(l)}if(c){qa(c)}b=H[i+16>>2];if(!b){break d}H[i+20>>2]=b;qa(b)}da=i+32|0;s=(r|0)!=0;if(s){k=da-32|0;da=k;l=H[a>>2];b=H[a+4>>2];H[k+24>>2]=0;H[k+16>>2]=0;H[k+20>>2]=0;t:{if((b|0)==(l|0)){break t}f=b-l|0;if((f|0)<0){break c}c=f>>2;e=c-1>>>5|0;h=e+1|0;d=ra(h<<2);H[k+24>>2]=h;H[k+16>>2]=d;H[k+20>>2]=c;H[d+((f>>>0<132?0:e)<<2)>>2]=0;h=d;d=c>>>5<<2;f=ta(h,0,d);if((c|0)==(c&-32)){break t}d=d+f|0;H[d>>2]=H[d>>2]&(-1>>>32-(c&31)^-1)}H[k+8>>2]=0;H[k>>2]=0;while(1){u:{o=0;m=0;if((b|0)==(l|0)){break u}while(1){c=H[k+16>>2];v:{if(H[c+(m>>>3&536870908)>>2]>>>m&1){break v}d=H[k>>2];H[k+4>>2]=d;f=H[a+12>>2];b=m;while(1){w:{e=b+1|0;i=b;b=(e>>>0)%3|0?e:b-2|0;if((b|0)==-1){break w}b=H[f+(b<<2)>>2];if((b|0)==-1){break w}e=b+1|0;b=(e>>>0)%3|0?e:b-2|0;if((m|0)==(b|0)|(b|0)==-1){break w}if(!(H[c+(b>>>3&536870908)>>2]>>>b&1)){continue}}break}f=i;x:{y:{z:{while(1){b=H[k+16>>2]+(f>>>3&536870908)|0;H[b>>2]=H[b>>2]|1<>>0)%3|0?b:f-2|0;l=H[a>>2];q=(f>>>0)%3|0;h=(q?-1:2)+f|0;j=H[k>>2];A:{if((j|0)==(d|0)){break A}r=H[(g<<2)+l>>2];n=H[a+12>>2];b=j;if((h|0)!=-1){c=n+(h<<2)|0;while(1){B:{if((r|0)!=H[b>>2]){break B}e=H[b+4>>2];p=H[c>>2];if((e|0)==(p|0)){break B}d=-1;c=h;b=-1;if((e|0)==-1){break x}break y}b=b+8|0;if((d|0)!=(b|0)){continue}break}break A}while(1){if((r|0)==H[b>>2]){p=-1;c=-1;e=H[b+4>>2];if((e|0)!=-1){break y}}b=b+8|0;if((d|0)!=(b|0)){continue}break}}h=H[(h<<2)+l>>2];C:{if(H[k+8>>2]!=(d|0)){H[d>>2]=h;H[d+4>>2]=g;d=d+8|0;H[k+4>>2]=d;break C}c=d-j|0;d=c>>3;b=d+1|0;if(b>>>0>=536870912){break c}e=c>>2;e=c>>>0<2147483640?b>>>0>>0?e:b:536870911;if(e){if(e>>>0>=536870912){break z}b=ra(e<<3)}else{b=0}d=b+(d<<3)|0;H[d>>2]=h;H[d+4>>2]=g;d=d+8|0;if((c|0)>0){sa(b,j,c)}H[k+8>>2]=b+(e<<3);H[k+4>>2]=d;H[k>>2]=b;if(!j){break C}qa(j)}D:{E:{if(q){b=f-1|0;break E}b=f+2|0;if((b|0)==-1){break D}}b=H[H[a+12>>2]+(b<<2)>>2];if((b|0)==-1){break D}f=b+((b>>>0)%3|0?-1:2)|0;if((i|0)==(f|0)){break D}if((f|0)!=-1){continue}}break}l=H[a>>2];break v}ya();X()}h=c;d=e;b=H[n+(d<<2)>>2]}if((p|0)!=-1){H[n+(p<<2)>>2]=-1}if((b|0)!=-1){H[H[a+12>>2]+(b<<2)>>2]=-1}b=H[a+12>>2];H[b+(h<<2)>>2]=-1;H[b+(d<<2)>>2]=-1;o=1}m=m+1|0;b=H[a+4>>2];if(m>>>0>2>>>0){continue}break}if(o){continue}}break}b=H[k>>2];if(b){qa(b)}b=H[k+16>>2];if(b){qa(b)}da=k+32|0;c=0;e=0;k=0;i=da-32|0;da=i;b=H[u+12>>2];H[a+36>>2]=b;m=a+24|0;f=H[a+24>>2];d=H[a+28>>2]-f>>2;F:{G:{if(d>>>0>>0){La(m,b-d|0,14880);H[i+24>>2]=0;H[i+16>>2]=0;H[i+20>>2]=0;break G}if(b>>>0>>0){H[a+28>>2]=f+(b<<2)}H[i+24>>2]=0;H[i+16>>2]=0;H[i+20>>2]=0;if(!b){break F}}if((b|0)<0){break c}d=b-1>>>5|0;f=d+1|0;c=ra(f<<2);H[i+24>>2]=f;H[i+16>>2]=c;H[i+20>>2]=b;H[((b>>>0<33?0:d)<<2)+c>>2]=0;d=b>>>5<<2;f=ta(c,0,d);if((b&-32)==(b|0)){break F}d=d+f|0;H[d>>2]=H[d>>2]&(-1>>>32-(b&31)^-1)}j=H[a>>2];d=H[a+4>>2];H[i+8>>2]=0;H[i>>2]=0;H[i+4>>2]=0;h=d-j|0;H:{if((d|0)==(j|0)){break H}if((h|0)<0){break c}f=h>>2;g=f-1>>>5|0;l=g+1|0;e=ra(l<<2);H[i+8>>2]=l;H[i>>2]=e;H[i+4>>2]=f;H[((h>>>0<132?0:g)<<2)+e>>2]=0;g=f>>>5<<2;l=ta(e,0,g);if((f|0)==(f&-32)){break H}g=g+l|0;H[g>>2]=H[g>>2]&(-1>>>32-(f&31)^-1)}if(h>>>0>=12){I:{J:{while(1){n=N(k,3);h=(n<<2)+j|0;f=H[h>>2];g=-1;l=n+1|0;if((l|0)!=-1){g=H[(l<<2)+j>>2]}K:{if((f|0)==(g|0)){break K}l=f;f=H[h+8>>2];if((l|0)==(f|0)){break K}l=0;if((f|0)==(g|0)){break K}while(1){d=l+n|0;if(!(H[(d>>>3&536870908)+e>>2]>>>d&1)){f=H[(d<<2)+j>>2];g=1<>>5|0;p=g&H[(j<<2)+c>>2];if(p){c=H[a+28>>2];L:{if((c|0)!=H[a+32>>2]){H[c>>2]=-1;H[a+28>>2]=c+4;break L}h=H[m>>2];e=c-h|0;j=e>>2;c=j+1|0;if(c>>>0>=1073741824){break c}g=e>>1;g=e>>>0<2147483644?c>>>0>>0?g:c:1073741823;if(g){if(g>>>0>=1073741824){break J}c=ra(g<<2)}else{c=0}j=c+(j<<2)|0;H[j>>2]=-1;if((e|0)>0){sa(c,h,e)}H[a+32>>2]=c+(g<<2);H[a+28>>2]=j+4;H[a+24>>2]=c;if(!h){break L}qa(h)}c=H[a+52>>2];M:{if((c|0)!=H[a+56>>2]){H[c>>2]=f;H[a+52>>2]=c+4;break M}h=H[a+48>>2];e=c-h|0;j=e>>2;c=j+1|0;if(c>>>0>=1073741824){break c}g=e>>1;g=e>>>0<2147483644?c>>>0>>0?g:c:1073741823;if(g){if(g>>>0>=1073741824){break J}c=ra(g<<2)}else{c=0}j=c+(j<<2)|0;H[j>>2]=f;if((e|0)>0){sa(c,h,e)}H[a+56>>2]=c+(g<<2);H[a+52>>2]=j+4;H[a+48>>2]=c;if(!h){break M}qa(h)}g=H[i+20>>2];c=H[i+24>>2];if((g|0)==c<<5){if((g+1|0)<0){break c}h=i+16|0;if(g>>>0<=1073741822){c=c<<6;e=g+32&-32;c=c>>>0>e>>>0?c:e}else{c=2147483647}Gb(h,c);g=H[i+20>>2]}H[i+20>>2]=g+1;c=H[i+16>>2]+(g>>>3&536870908)|0;f=H[c>>2];z=c,A=Dl(g)&f,H[z>>2]=A;g=1<>>5|0;f=b;b=b+1|0}h=b;c=H[i+16>>2];b=c+(j<<2)|0;H[b>>2]=H[b>>2]|g;r=H[a+24>>2]+(f<<2)|0;o=H[a+12>>2];j=H[a>>2];e=H[i>>2];b=d;N:{O:{P:{while(1){if((b|0)==-1){break P}g=(b>>>3&536870908)+e|0;H[g>>2]=H[g>>2]|1<>2]=b;if(p){H[(b<<2)+j>>2]=f}q=b+1|0;b=(q>>>0)%3|0?q:b-2|0;g=-1;Q:{if((b|0)==-1){break Q}b=H[o+(b<<2)>>2];g=-1;if((b|0)==-1){break Q}g=b+1|0;g=(g>>>0)%3|0?g:b-2|0}b=g;if((d|0)!=(b|0)){continue}break}if((d|0)!=-1){break N}b=1;break O}if((d>>>0)%3|0){b=d-1|0;break O}b=d+2|0;if((b|0)==-1){break N}}b=H[o+(b<<2)>>2];if((b|0)==-1){break N}R:{if((b>>>0)%3|0){b=b-1|0;break R}b=b+2|0;if((b|0)==-1){break N}}d=H[a+12>>2];j=H[a>>2];e=H[i>>2];while(1){g=(b>>>3&536870908)+e|0;H[g>>2]=H[g>>2]|1<>2]=f}S:{if((b>>>0)%3|0){b=b-1|0;break S}b=b+2|0;if((b|0)==-1){break N}}b=H[d+(b<<2)>>2];if((b|0)==-1){break N}b=b+((b>>>0)%3|0?-1:2)|0;if((b|0)!=-1){continue}break}}b=h}l=l+1|0;if((l|0)!=3){continue}break}j=H[a>>2];d=H[a+4>>2]}k=k+1|0;if(k>>>0<(d-j>>2>>>0)/3>>>0){continue}break}break I}ya();X()}c=H[i+16>>2]}b=0;H[a+44>>2]=0;d=H[i+20>>2];if(d){f=d&31;d=(d>>>3&536870908)+c|0;g=c;e=0;while(1){if(!(H[g>>2]>>>b&1)){e=e+1|0;H[a+44>>2]=e}h=(b|0)==31;b=h?0:b+1|0;g=(h<<2)+g|0;if((d|0)!=(g|0)|(b|0)!=(f|0)){continue}break}}b=H[i>>2];if(b){qa(b);c=H[i+16>>2]}if(c){qa(c)}da=i+32|0}da=u+16|0;if(!s){H[v+8>>2]=0;Kb(a);a=0}da=v+16|0;return a}ua();X()}function Hj(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0;j=da-32|0;da=j;c=H[b+8>>2];a:{if(I[b+288|0]){d=cf(c);c=H[b+12>>2];H[b+12>>2]=d;if(!c){break a}Kb(c);break a}d=df(c);c=H[b+12>>2];H[b+12>>2]=d;if(!c){break a}Kb(c)}c=H[b+12>>2];b:{if(!(H[c+40>>2]!=((H[c+4>>2]-H[c>>2]>>2>>>0)/3|0)?c:0)){b=ra(32);c=I[1828]|I[1829]<<8|(I[1830]<<16|I[1831]<<24);d=I[1824]|I[1825]<<8|(I[1826]<<16|I[1827]<<24);F[b+21|0]=d;F[b+22|0]=d>>>8;F[b+23|0]=d>>>16;F[b+24|0]=d>>>24;F[b+25|0]=c;F[b+26|0]=c>>>8;F[b+27|0]=c>>>16;F[b+28|0]=c>>>24;c=I[1823]|I[1824]<<8|(I[1825]<<16|I[1826]<<24);d=I[1819]|I[1820]<<8|(I[1821]<<16|I[1822]<<24);F[b+16|0]=d;F[b+17|0]=d>>>8;F[b+18|0]=d>>>16;F[b+19|0]=d>>>24;F[b+20|0]=c;F[b+21|0]=c>>>8;F[b+22|0]=c>>>16;F[b+23|0]=c>>>24;c=I[1815]|I[1816]<<8|(I[1817]<<16|I[1818]<<24);d=I[1811]|I[1812]<<8|(I[1813]<<16|I[1814]<<24);F[b+8|0]=d;F[b+9|0]=d>>>8;F[b+10|0]=d>>>16;F[b+11|0]=d>>>24;F[b+12|0]=c;F[b+13|0]=c>>>8;F[b+14|0]=c>>>16;F[b+15|0]=c>>>24;c=I[1807]|I[1808]<<8|(I[1809]<<16|I[1810]<<24);d=I[1803]|I[1804]<<8|(I[1805]<<16|I[1806]<<24);F[b|0]=d;F[b+1|0]=d>>>8;F[b+2|0]=d>>>16;F[b+3|0]=d>>>24;F[b+4|0]=c;F[b+5|0]=c>>>8;F[b+6|0]=c>>>16;F[b+7|0]=c>>>24;F[b+29|0]=0;H[a>>2]=-1;Ia(a+4|0,b,29);qa(b);break b}H[b+264>>2]=b;Da((H[c+28>>2]-H[c+24>>2]>>2)-H[c+44>>2]|0,H[H[b+4>>2]+44>>2]);c=H[b+12>>2];Da(((H[c+4>>2]-H[c>>2]>>2>>>0)/3|0)-H[c+40>>2]|0,H[H[b+4>>2]+44>>2]);c=H[b+8>>2];d=H[c+100>>2];c=H[c+96>>2];F[j+16|0]=0;o=b+28|0;d=(d-c|0)/12|0;c=j+16|0;Qa(o,d,c);d=H[b+12>>2];g=H[d+28>>2];d=H[d+24>>2];H[j+16>>2]=-1;xb(b+52|0,g-d>>2,c);c=H[b+40>>2];H[b+44>>2]=c;c:{d:{e:{f:{g:{h:{i:{d=H[b+12>>2];g=H[d+4>>2]-H[d>>2]>>2;g=g-((g>>>0)%3|0)|0;j:{if(g>>>0<=H[b+48>>2]-c>>2>>>0){break j}if(g>>>0>=1073741824){break i}i=g<<2;g=ra(i);H[b+44>>2]=g;H[b+40>>2]=g;H[b+48>>2]=g+i;if(!c){break j}qa(c);d=H[b+12>>2]}c=H[d+28>>2];d=H[d+24>>2];F[j+16|0]=0;Qa(b+84|0,c-d>>2,j+16|0);H[b+164>>2]=-1;H[b+168>>2]=0;H[b+100>>2]=H[b+96>>2];H[b+112>>2]=H[b+108>>2];if(H[b+132>>2]){d=H[b+128>>2];if(d){while(1){c=H[d>>2];qa(d);d=c;if(c){continue}break}}d=0;H[b+128>>2]=0;c=H[b+124>>2];k:{if(!c){break k}if(c-1>>>0>=3){i=c&-4;while(1){g=d<<2;H[g+H[b+120>>2]>>2]=0;H[H[b+120>>2]+(g|4)>>2]=0;H[H[b+120>>2]+(g|8)>>2]=0;H[H[b+120>>2]+(g|12)>>2]=0;d=d+4|0;k=k+4|0;if((i|0)!=(k|0)){continue}break}}c=c&3;if(!c){break k}while(1){H[H[b+120>>2]+(d<<2)>>2]=0;d=d+1|0;e=e+1|0;if((c|0)!=(e|0)){continue}break}}H[b+132>>2]=0}H[b+144>>2]=0;c=H[b+12>>2];d=H[c+28>>2];c=H[c+24>>2];H[j+16>>2]=-1;xb(b+152|0,d-c>>2,j+16|0);c=H[b+72>>2];H[b+76>>2]=c;r=b+72|0;d=H[b+12>>2];d=H[d+4>>2]-H[d>>2]|0;g=(d>>2>>>0)/3|0;l:{if(g>>>0<=H[b+80>>2]-c>>2>>>0){break l}if((d|0)<0){break h}g=g<<2;d=ra(g);H[b+76>>2]=d;H[b+72>>2]=d;H[b+80>>2]=d+g;if(!c){break l}qa(c)}H[b- -64>>2]=0;if(!dg(b)){b=ra(32);c=I[1768]|I[1769]<<8|(I[1770]<<16|I[1771]<<24);d=I[1764]|I[1765]<<8|(I[1766]<<16|I[1767]<<24);F[b+21|0]=d;F[b+22|0]=d>>>8;F[b+23|0]=d>>>16;F[b+24|0]=d>>>24;F[b+25|0]=c;F[b+26|0]=c>>>8;F[b+27|0]=c>>>16;F[b+28|0]=c>>>24;c=I[1763]|I[1764]<<8|(I[1765]<<16|I[1766]<<24);d=I[1759]|I[1760]<<8|(I[1761]<<16|I[1762]<<24);F[b+16|0]=d;F[b+17|0]=d>>>8;F[b+18|0]=d>>>16;F[b+19|0]=d>>>24;F[b+20|0]=c;F[b+21|0]=c>>>8;F[b+22|0]=c>>>16;F[b+23|0]=c>>>24;c=I[1755]|I[1756]<<8|(I[1757]<<16|I[1758]<<24);d=I[1751]|I[1752]<<8|(I[1753]<<16|I[1754]<<24);F[b+8|0]=d;F[b+9|0]=d>>>8;F[b+10|0]=d>>>16;F[b+11|0]=d>>>24;F[b+12|0]=c;F[b+13|0]=c>>>8;F[b+14|0]=c>>>16;F[b+15|0]=c>>>24;c=I[1747]|I[1748]<<8|(I[1749]<<16|I[1750]<<24);d=I[1743]|I[1744]<<8|(I[1745]<<16|I[1746]<<24);F[b|0]=d;F[b+1|0]=d>>>8;F[b+2|0]=d>>>16;F[b+3|0]=d>>>24;F[b+4|0]=c;F[b+5|0]=c>>>8;F[b+6|0]=c>>>16;F[b+7|0]=c>>>24;F[b+29|0]=0;H[a>>2]=-1;Ia(a+4|0,b,29);qa(b);break b}c=b;m:{if(I[b+288|0]){break m}b=H[c+8>>2];g=H[b+12>>2]-H[b+8>>2]|0;i=g>>2;d=i-1|0;b=H[c+176>>2];f=H[c+172>>2];e=(b-f|0)/136|0;n:{if(d>>>0>e>>>0){Xf(c+172|0,d-e|0);break n}if(d>>>0>=e>>>0){break n}e=f+N(d,136)|0;if((e|0)!=(b|0)){while(1){d=b-136|0;f=H[d+116>>2];if(f){H[b-16>>2]=f;qa(f)}f=H[b-32>>2];if(f){H[b-28>>2]=f;qa(f)}pc(b-132|0);b=d;if((e|0)!=(b|0)){continue}break}}H[c+176>>2]=e}if((g|0)==4|(g|0)<=0){break m}e=(i|0)>1?i:1;b=0;o:{while(1){f=H[H[H[c+8>>2]+8>>2]+(b<<2)>>2];if(H[f+56>>2]){k=N(h,136);d=k+H[c+172>>2]|0;H[d>>2]=b;g=H[d+104>>2];H[d+108>>2]=g;i=H[c+12>>2];i=H[i+4>>2]-H[i>>2]|0;p=i>>2;p:{if(p>>>0<=H[d+112>>2]-g>>2>>>0){break p}if((i|0)<0){break o}i=ra(i);H[d+108>>2]=i;H[d+104>>2]=i;H[d+112>>2]=i+(p<<2);if(!g){break p}qa(g)}d=k+H[c+172>>2]|0;H[d+128>>2]=0;ef(d+4|0,H[c+8>>2],H[c+12>>2],f);h=h+1|0}b=b+1|0;if((e|0)!=(b|0)){continue}break}break m}ua();X()}b=(H[c+176>>2]-H[c+172>>2]|0)/136|0;F[j+31|0]=b;d=H[H[c+4>>2]+44>>2];g=H[d+20>>2];if(!H[d+16>>2]&(g|0)<=0|(g|0)<0){wa(d,H[d+4>>2],j+31|0,j+32|0);b=I[j+31|0]}H[c+284>>2]=b&255;b=H[c+12>>2];d=H[b>>2];b=H[b+4>>2];i=c+200|0;cg(i);H[j+24>>2]=0;H[j+16>>2]=0;H[j+20>>2]=0;g=0;b=b-d|0;if((b|0)>0){b=b>>>2|0;s=b>>>0>1?b:1;d=0;while(1){b=(d>>>0)/3|0;p=b>>>5<<2;q=1<>2]+p>>2]){break q}if(Dc(H[c+12>>2],b)){break q}H[j>>2]=0;b=bg(c,b,j);Ga(i,b);e=H[j>>2];if(b){f=-1;h=-1;b=-1;r:{if((e|0)==-1){break r}m=H[H[c+12>>2]>>2];b=m+(e<<2)|0;f=e+1|0;f=(f>>>0)%3|0?f:e-2|0;if((f|0)!=-1){h=H[m+(f<<2)>>2]}f=H[b>>2];s:{if((e>>>0)%3|0){k=e-1|0;break s}k=e+2|0;b=-1;if((k|0)==-1){break r}}b=H[m+(k<<2)>>2]}k=H[c+84>>2];m=k+(f>>>3&536870908)|0;H[m>>2]=H[m>>2]|1<>>3&536870908)|0;H[f>>2]=H[f>>2]|1<>>3&536870908)|0;H[h>>2]=H[h>>2]|1<>2];f=H[c+104>>2];t:{if(b>>>0>>0){H[b>>2]=1;H[c+100>>2]=b+4;break t}h=H[c+96>>2];k=b-h|0;m=k>>2;b=m+1|0;if(b>>>0>=1073741824){break g}t=m<<2;f=f-h|0;m=f>>1;f=f>>>0<2147483644?b>>>0>>0?m:b:1073741823;if(f){if(f>>>0>=1073741824){break f}b=ra(f<<2)}else{b=0}m=t+b|0;H[m>>2]=1;if((k|0)>0){sa(b,h,k)}H[c+104>>2]=b+(f<<2);H[c+100>>2]=m+4;H[c+96>>2]=b;if(!h){break t}qa(h)}b=H[o>>2]+p|0;H[b>>2]=H[b>>2]|q;f=-1;if((e|0)!=-1){b=e+1|0;f=(b>>>0)%3|0?b:e-2|0}u:{if(l>>>0>>0){H[l>>2]=f;l=l+4|0;H[j+20>>2]=l;break u}k=l-g|0;l=k>>2;b=l+1|0;if(b>>>0>=1073741824){break e}h=n-g|0;n=h>>1;h=h>>>0<2147483644?b>>>0>>0?n:b:1073741823;if(h){if(h>>>0>=1073741824){break f}b=ra(h<<2)}else{b=0}l=b+(l<<2)|0;H[l>>2]=f;n=b+(h<<2)|0;l=l+4|0;if((k|0)>0){sa(b,g,k)}H[j+24>>2]=n;H[j+20>>2]=l;H[j+16>>2]=b;if(g){qa(g)}g=b}if((e|0)==-1){break q}b=e+1|0;b=(b>>>0)%3|0?b:e-2|0;if((b|0)==-1){break q}b=H[H[H[c+12>>2]+12>>2]+(b<<2)>>2];if((b|0)==-1){break q}e=(b>>>0)/3|0;if(H[H[o>>2]+(e>>>3&268435452)>>2]>>>e&1){break q}if(ag(c,b)){break q}break d}if((e|0)!=-1){b=e+1|0;b=(b>>>0)%3|0?b:e-2|0}else{b=-1}Fc(c,b,1);if(!ag(c,H[j>>2])){break d}}d=d+1|0;if((s|0)!=(d|0)){continue}break}}d=H[c+72>>2];b=H[c+76>>2];v:{if((d|0)==(b|0)){break v}e=b-4|0;if(e>>>0<=d>>>0){break v}while(1){h=H[d>>2];H[d>>2]=H[e>>2];H[e>>2]=h;d=d+4|0;e=e-4|0;if(d>>>0>>0){continue}break}}_f(r,b,g,l);w:{if(H[c+172>>2]==H[c+176>>2]){break w}b=H[c+8>>2];d=H[b+100>>2];b=H[b+96>>2];F[j|0]=0;Qa(o,(d-b|0)/12|0,j);d=H[c+72>>2];b=H[c+76>>2];if((d|0)==(b|0)){break w}while(1){Zf(c,H[d>>2]);d=d+4|0;if((b|0)!=(d|0)){continue}break}}d=i;o=d+32|0;b=H[d+64>>2];b=H[(fa[H[H[b>>2]+40>>2]](b)|0)+56>>2];xd(o,N((H[b+100>>2]-H[b+96>>2]|0)/12|0,3),0,1);b=H[d+72>>2]-H[d+68>>2]|0;x:{if((b|0)<=0){break x}i=H[d+52>>2];if(!H[d+48>>2]&(i|0)<=0|(i|0)<0){break x}b=b>>>2|0;while(1){i=b;b=b-1|0;e=H[d+52>>2];y:{if(!H[d+48>>2]&(e|0)<=0|(e|0)<0){break y}l=H[H[d+68>>2]+(b<<2)>>2];if(!(171>>>l&1)){break y}k=H[(l<<2)+11152>>2];f=H[d+44>>2];e=H[f+4>>2];h=0;while(1){n=e>>>3|0;p=n+H[f>>2]|0;m=I[p|0];e=e&7;u=p,v=Dl(e)&m,F[u|0]=v;n=n+H[f>>2]|0;F[n|0]=I[n|0]|(l>>>h&1)<>2]+1|0;H[f+4>>2]=e;h=h+1|0;if((k|0)!=(h|0)){continue}break}}if((i|0)>1){continue}break}}wd(o);b=c+232|0;Ba(d,b);if(!(!H[c+280>>2]|H[c+284>>2]<=0)){d=0;while(1){Ba(H[c+280>>2]+(d<<5)|0,b);d=d+1|0;if((d|0)>2]){continue}break}}Da(H[c+272>>2]-H[c+268>>2]>>2,H[H[c+4>>2]+44>>2]);Da(H[c+168>>2],H[H[c+4>>2]+44>>2]);if(!Yf(c)){b=Nc(j,1885);H[a>>2]=-1;a=a+4|0;if(F[b+11|0]>=0){c=H[b+4>>2];H[a>>2]=H[b>>2];H[a+4>>2]=c;H[a+8>>2]=H[b+8>>2];break c}Ia(a,H[b>>2],H[b+4>>2]);if(F[b+11|0]>=0){break c}qa(H[b>>2]);break c}b=H[H[c+4>>2]+44>>2];d=H[b+20>>2];if(!H[b+16>>2]&(d|0)<=0|(d|0)<0){wa(b,H[b+4>>2],H[c+232>>2],H[c+236>>2])}H[a>>2]=0;H[a+4>>2]=0;H[a+8>>2]=0;H[a+12>>2]=0;break c}ua();X()}ua();X()}ua();X()}ya();X()}ua();X()}b=ra(48);c=I[1703]|I[1704]<<8|(I[1705]<<16|I[1706]<<24);d=I[1699]|I[1700]<<8|(I[1701]<<16|I[1702]<<24);F[b+24|0]=d;F[b+25|0]=d>>>8;F[b+26|0]=d>>>16;F[b+27|0]=d>>>24;F[b+28|0]=c;F[b+29|0]=c>>>8;F[b+30|0]=c>>>16;F[b+31|0]=c>>>24;c=I[1695]|I[1696]<<8|(I[1697]<<16|I[1698]<<24);d=I[1691]|I[1692]<<8|(I[1693]<<16|I[1694]<<24);F[b+16|0]=d;F[b+17|0]=d>>>8;F[b+18|0]=d>>>16;F[b+19|0]=d>>>24;F[b+20|0]=c;F[b+21|0]=c>>>8;F[b+22|0]=c>>>16;F[b+23|0]=c>>>24;c=I[1687]|I[1688]<<8|(I[1689]<<16|I[1690]<<24);d=I[1683]|I[1684]<<8|(I[1685]<<16|I[1686]<<24);F[b+8|0]=d;F[b+9|0]=d>>>8;F[b+10|0]=d>>>16;F[b+11|0]=d>>>24;F[b+12|0]=c;F[b+13|0]=c>>>8;F[b+14|0]=c>>>16;F[b+15|0]=c>>>24;c=I[1679]|I[1680]<<8|(I[1681]<<16|I[1682]<<24);d=I[1675]|I[1676]<<8|(I[1677]<<16|I[1678]<<24);F[b|0]=d;F[b+1|0]=d>>>8;F[b+2|0]=d>>>16;F[b+3|0]=d>>>24;F[b+4|0]=c;F[b+5|0]=c>>>8;F[b+6|0]=c>>>16;F[b+7|0]=c>>>24;F[b+32|0]=0;H[a>>2]=-1;Ia(a+4|0,b,32);qa(b)}if(!g){break b}qa(g)}da=j+32|0}function ef(a,b,c,d){var e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0;e=da-16|0;da=e;a:{b:{if(c){H[a+88>>2]=0;H[a+92>>2]=0;f=H[a+84>>2];H[a+84>>2]=0;if(f){qa(f)}H[a+76>>2]=0;H[a+80>>2]=0;f=H[a+72>>2];H[a+72>>2]=0;if(f){qa(f)}f=H[c>>2];g=H[c+4>>2];F[e+15|0]=0;Qa(a,g-f>>2,e+15|0);f=H[c+28>>2];g=H[c+24>>2];F[e+14|0]=0;Qa(a+12|0,f-g>>2,e+14|0);xb(a+28|0,H[c+4>>2]-H[c>>2]>>2,14948);g=H[c+28>>2]-H[c+24>>2]|0;h=g>>2;f=H[a+52>>2];c:{if(h>>>0<=H[a+60>>2]-f>>2>>>0){break c}if((g|0)<0){break a}j=H[a+56>>2];g=ra(g);i=g+(h<<2)|0;h=j-f|0;j=h+g|0;if((h|0)>0){sa(g,f,h)}H[a+60>>2]=i;H[a+56>>2]=j;H[a+52>>2]=g;if(!f){break c}qa(f)}g=H[c+28>>2]-H[c+24>>2]|0;h=g>>2;f=H[a+40>>2];d:{if(h>>>0<=H[a+48>>2]-f>>2>>>0){break d}if((g|0)<0){break a}j=H[a+44>>2];g=ra(g);i=g+(h<<2)|0;h=j-f|0;j=h+g|0;if((h|0)>0){sa(g,f,h)}H[a+48>>2]=i;H[a+44>>2]=j;H[a+40>>2]=g;if(!f){break d}qa(f)}F[a+24|0]=1;H[a+64>>2]=c}da=e+16|0;c=(c|0)!=0;break b}if(c){H[a+88>>2]=0;H[a+92>>2]=0;c=H[a+84>>2];H[a+84>>2]=0;if(c){qa(c)}H[a+76>>2]=0;H[a+80>>2]=0;c=H[a+72>>2];H[a+72>>2]=0;if(c){qa(c)}g=H[a+64>>2];if(H[g+4>>2]!=H[g>>2]){c=0;while(1){m=(c>>>0)/3|0;e=Dc(g,m);g=H[a+64>>2];e:{if(e){break e}i=H[H[g+12>>2]+(c<<2)>>2];f:{g:{if((i|0)==-1){e=H[a>>2]+(c>>>3&536870908)|0;H[e>>2]=H[e>>2]|1<>>0)%3|0?f:c-2|0;if((f|0)!=-1){e=H[H[g>>2]+(f<<2)>>2]}j=H[a+12>>2];f=j+(e>>>3&536870908)|0;H[f>>2]=H[f>>2]|1<>>0)%3|0){e=c-1|0;break g}h=-1;e=c+2|0;if((e|0)!=-1){break g}break f}if(c>>>0>i>>>0){break e}e=-1;l=I[d+84|0];h=-1;k=c+1|0;n=c-2|0;j=(k>>>0)%3|0?k:n;if((j|0)>=0){f=(j>>>0)/3|0;h=H[(H[b+96>>2]+N(f,12)|0)+(j-N(f,3)<<2)>>2]}f=i+((i>>>0)%3|0?-1:2)|0;if((f|0)>=0){e=(f>>>0)/3|0;e=H[(H[b+96>>2]+N(e,12)|0)+(f-N(e,3)<<2)>>2]}if(!l){o=H[d+68>>2];e=H[o+(e<<2)>>2];h=H[(h<<2)+o>>2]}if((e|0)==(h|0)){e=-1;h=-1;if((j|0)!=-1){h=j+1|0;h=(h>>>0)%3|0?h:j-2|0}h:{if((f|0)==-1){break h}if((f>>>0)%3|0){e=f-1|0;break h}e=f+2|0}j=-1;f=-1;if((h|0)>=0){f=(h>>>0)/3|0;f=H[(H[b+96>>2]+N(f,12)|0)+(h-N(f,3)<<2)>>2]}if((e|0)>=0){h=(e>>>0)/3|0;j=H[(H[b+96>>2]+N(h,12)|0)+(e-N(h,3)<<2)>>2]}if(!l){e=H[d+68>>2];j=H[e+(j<<2)>>2];f=H[e+(f<<2)>>2]}if((f|0)==(j|0)){break e}}F[a+24|0]=0;e=H[a>>2];f=e+(c>>>3&536870908)|0;H[f>>2]=H[f>>2]|1<>>3&536870908)|0;H[e>>2]=H[e>>2]|1<>>0)%3|0?k:n;if((e|0)!=-1){f=H[H[g>>2]+(e<<2)>>2]}j=H[a+12>>2];e=j+(f>>>3&536870908)|0;H[e>>2]=H[e>>2]|1<>2]+(e<<2)>>2]}e=(f>>>3&536870908)+j|0;H[e>>2]=H[e>>2]|1<>>0)%3|0?e:i-2|0;if((e|0)!=-1){h=H[H[g>>2]+(e<<2)>>2]}e=(h>>>3&536870908)+j|0;H[e>>2]=H[e>>2]|1<>>0)%3|0){e=i-1|0;break g}h=-1;e=i+2|0;if((e|0)==-1){break f}}h=H[H[g>>2]+(e<<2)>>2]}e=(h>>>3&536870908)+j|0;H[e>>2]=H[e>>2]|1<>>0>2]-H[g>>2]>>2>>>0){continue}break}}if(!(!b|!d)){j=b;b=0;h=0;f=a;H[f+56>>2]=H[f+52>>2];H[f+44>>2]=H[f+40>>2];k:{l:{g=H[f+64>>2];e=H[g+24>>2];if((e|0)!=H[g+28>>2]){while(1){a=b;c=H[(h<<2)+e>>2];m:{if((c|0)==-1){break m}if((c|0)<0){e=-1}else{b=(c>>>0)/3|0;e=H[(H[j+96>>2]+N(b,12)|0)+(c-N(b,3)<<2)>>2]}e=I[d+84|0]?e:H[H[d+68>>2]+(e<<2)>>2];b=H[f+56>>2];i=H[f+60>>2];n:{if(b>>>0>>0){H[b>>2]=e;H[f+56>>2]=b+4;break n}g=H[f+52>>2];k=b-g|0;l=k>>2;b=l+1|0;if(b>>>0>=1073741824){break a}i=i-g|0;m=i>>1;i=i>>>0<2147483644?b>>>0>>0?m:b:1073741823;if(i){if(i>>>0>=1073741824){break l}b=ra(i<<2)}else{b=0}l=b+(l<<2)|0;H[l>>2]=e;if((k|0)>0){sa(b,g,k)}H[f+60>>2]=b+(i<<2);H[f+56>>2]=l+4;H[f+52>>2]=b;if(!g){break n}qa(g)}o:{if(!(H[H[f+12>>2]+(h>>>3&536870908)>>2]>>>h&1)){break o}b=c+1|0;b=(b>>>0)%3|0?b:c-2|0;if((b|0)==-1|H[H[f>>2]+(b>>>3&536870908)>>2]>>>b&1){break o}b=H[H[H[f+64>>2]+12>>2]+(b<<2)>>2];if((b|0)==-1){break o}e=b+1|0;e=(e>>>0)%3|0?e:b-2|0;if((e|0)==-1){break o}g=H[f+64>>2];i=H[f>>2];while(1){c=e;b=e+1|0;b=(b>>>0)%3|0?b:e-2|0;if((b|0)==-1|H[i+(b>>>3&536870908)>>2]>>>b&1){break o}b=H[H[g+12>>2]+(b<<2)>>2];if((b|0)==-1){break o}e=b+1|0;e=(e>>>0)%3|0?e:b-2|0;if((e|0)!=-1){continue}break}}H[H[f+28>>2]+(c<<2)>>2]=a;b=H[f+44>>2];p:{if((b|0)!=H[f+48>>2]){H[b>>2]=c;H[f+44>>2]=b+4;break p}g=H[f+40>>2];e=b-g|0;k=e>>2;b=k+1|0;if(b>>>0>=1073741824){break a}i=e>>1;i=e>>>0<2147483644?b>>>0>>0?i:b:1073741823;if(i){if(i>>>0>=1073741824){break l}b=ra(i<<2)}else{b=0}k=b+(k<<2)|0;H[k>>2]=c;if((e|0)>0){sa(b,g,e)}H[f+48>>2]=b+(i<<2);H[f+44>>2]=k+4;H[f+40>>2]=b;if(!g){break p}qa(g)}b=a+1|0;g=H[f+64>>2];q:{if((c>>>0)%3|0){e=c-1|0;break q}e=c+2|0;if((e|0)==-1){break m}}e=H[H[g+12>>2]+(e<<2)>>2];if((e|0)==-1){break m}e=e+((e>>>0)%3|0?-1:2)|0;if((e|0)==-1|(c|0)==(e|0)){break m}while(1){g=e+1|0;g=(g>>>0)%3|0?g:e-2|0;if(H[H[f>>2]+(g>>>3&536870908)>>2]>>>g&1){g=(e|0)<0?-1:H[(H[j+96>>2]+N((e>>>0)/3|0,12)|0)+((e>>>0)%3<<2)>>2];g=I[d+84|0]?g:H[H[d+68>>2]+(g<<2)>>2];a=H[f+56>>2];k=H[f+60>>2];r:{if(a>>>0>>0){H[a>>2]=g;H[f+56>>2]=a+4;break r}i=H[f+52>>2];l=a-i|0;m=l>>2;a=m+1|0;if(a>>>0>=1073741824){break a}k=k-i|0;n=k>>1;k=k>>>0<2147483644?a>>>0>>0?n:a:1073741823;if(k){if(k>>>0>=1073741824){break l}a=ra(k<<2)}else{a=0}m=a+(m<<2)|0;H[m>>2]=g;if((l|0)>0){sa(a,i,l)}H[f+60>>2]=a+(k<<2);H[f+56>>2]=m+4;H[f+52>>2]=a;if(!i){break r}qa(i)}g=b+1|0;a=H[f+44>>2];s:{if((a|0)!=H[f+48>>2]){H[a>>2]=e;H[f+44>>2]=a+4;break s}k=H[f+40>>2];i=a-k|0;m=i>>2;a=m+1|0;if(a>>>0>=1073741824){break a}l=i>>1;l=i>>>0<2147483644?a>>>0>>0?l:a:1073741823;if(l){if(l>>>0>=1073741824){break l}a=ra(l<<2)}else{a=0}m=a+(m<<2)|0;H[m>>2]=e;if((i|0)>0){sa(a,k,i)}H[f+48>>2]=a+(l<<2);H[f+44>>2]=m+4;H[f+40>>2]=a;if(!k){break s}qa(k)}a=b;b=g}H[H[f+28>>2]+(e<<2)>>2]=a;g=H[f+64>>2];t:{if((e>>>0)%3|0){e=e-1|0;break t}e=e+2|0;if((e|0)==-1){break m}}e=H[H[g+12>>2]+(e<<2)>>2];if((e|0)==-1){break m}e=e+((e>>>0)%3|0?-1:2)|0;if((e|0)==-1){break m}if((c|0)!=(e|0)){continue}break}}h=h+1|0;e=H[g+24>>2];if(h>>>0>2]-e>>2>>>0){continue}break}}break k}ya();X()}return}b=0;j=0;f=a;H[f+56>>2]=H[f+52>>2];H[f+44>>2]=H[f+40>>2];u:{v:{e=H[f+64>>2];c=H[e+24>>2];if((c|0)!=H[e+28>>2]){while(1){a=b;d=H[(j<<2)+c>>2];w:{if((d|0)==-1){break w}b=H[f+56>>2];x:{if((b|0)!=H[f+60>>2]){H[b>>2]=a;H[f+56>>2]=b+4;break x}e=H[f+52>>2];c=b-e|0;h=c>>2;b=h+1|0;if(b>>>0>=1073741824){break a}g=c>>1;g=c>>>0<2147483644?b>>>0>>0?g:b:1073741823;if(g){if(g>>>0>=1073741824){break v}b=ra(g<<2)}else{b=0}h=b+(h<<2)|0;H[h>>2]=a;if((c|0)>0){sa(b,e,c)}H[f+60>>2]=b+(g<<2);H[f+56>>2]=h+4;H[f+52>>2]=b;if(!e){break x}qa(e)}y:{if(!(H[H[f+12>>2]+(j>>>3&536870908)>>2]>>>j&1)){break y}b=d+1|0;b=(b>>>0)%3|0?b:d-2|0;if((b|0)==-1|H[H[f>>2]+(b>>>3&536870908)>>2]>>>b&1){break y}b=H[H[H[f+64>>2]+12>>2]+(b<<2)>>2];if((b|0)==-1){break y}c=b+1|0;c=(c>>>0)%3|0?c:b-2|0;if((c|0)==-1){break y}e=H[f+64>>2];g=H[f>>2];while(1){d=c;b=c+1|0;b=(b>>>0)%3|0?b:c-2|0;if((b|0)==-1|H[g+(b>>>3&536870908)>>2]>>>b&1){break y}b=H[H[e+12>>2]+(b<<2)>>2];if((b|0)==-1){break y}c=b+1|0;c=(c>>>0)%3|0?c:b-2|0;if((c|0)!=-1){continue}break}}H[H[f+28>>2]+(d<<2)>>2]=a;b=H[f+44>>2];z:{if((b|0)!=H[f+48>>2]){H[b>>2]=d;H[f+44>>2]=b+4;break z}e=H[f+40>>2];c=b-e|0;h=c>>2;b=h+1|0;if(b>>>0>=1073741824){break a}g=c>>1;g=c>>>0<2147483644?b>>>0>>0?g:b:1073741823;if(g){if(g>>>0>=1073741824){break v}b=ra(g<<2)}else{b=0}h=b+(h<<2)|0;H[h>>2]=d;if((c|0)>0){sa(b,e,c)}H[f+48>>2]=b+(g<<2);H[f+44>>2]=h+4;H[f+40>>2]=b;if(!e){break z}qa(e)}b=a+1|0;e=H[f+64>>2];A:{if((d>>>0)%3|0){c=d-1|0;break A}c=d+2|0;if((c|0)==-1){break w}}c=H[H[e+12>>2]+(c<<2)>>2];if((c|0)==-1){break w}c=c+((c>>>0)%3|0?-1:2)|0;if((c|0)==-1|(c|0)==(d|0)){break w}while(1){e=c+1|0;e=(e>>>0)%3|0?e:c-2|0;if(H[H[f>>2]+(e>>>3&536870908)>>2]>>>e&1){a=H[f+56>>2];B:{if((a|0)!=H[f+60>>2]){H[a>>2]=b;H[f+56>>2]=a+4;break B}g=H[f+52>>2];e=a-g|0;i=e>>2;a=i+1|0;if(a>>>0>=1073741824){break a}h=e>>1;h=e>>>0<2147483644?a>>>0>>0?h:a:1073741823;if(h){if(h>>>0>=1073741824){break v}a=ra(h<<2)}else{a=0}i=a+(i<<2)|0;H[i>>2]=b;if((e|0)>0){sa(a,g,e)}H[f+60>>2]=a+(h<<2);H[f+56>>2]=i+4;H[f+52>>2]=a;if(!g){break B}qa(g)}e=b+1|0;a=H[f+44>>2];C:{if((a|0)!=H[f+48>>2]){H[a>>2]=c;H[f+44>>2]=a+4;break C}h=H[f+40>>2];g=a-h|0;k=g>>2;a=k+1|0;if(a>>>0>=1073741824){break a}i=g>>1;i=g>>>0<2147483644?a>>>0>>0?i:a:1073741823;if(i){if(i>>>0>=1073741824){break v}a=ra(i<<2)}else{a=0}k=a+(k<<2)|0;H[k>>2]=c;if((g|0)>0){sa(a,h,g)}H[f+48>>2]=a+(i<<2);H[f+44>>2]=k+4;H[f+40>>2]=a;if(!h){break C}qa(h)}a=b;b=e}H[H[f+28>>2]+(c<<2)>>2]=a;e=H[f+64>>2];D:{if((c>>>0)%3|0){c=c-1|0;break D}c=c+2|0;if((c|0)==-1){break w}}c=H[H[e+12>>2]+(c<<2)>>2];if((c|0)==-1){break w}c=c+((c>>>0)%3|0?-1:2)|0;if((c|0)==-1){break w}if((c|0)!=(d|0)){continue}break}}j=j+1|0;c=H[e+24>>2];if(j>>>0>2]-c>>2>>>0){continue}break}}break u}ya();X()}}return}ua();X()}function Ch(a){a=a|0;var b=0,c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=O(0),q=0,r=0;e=da+-64|0;da=e;j=H[H[a+28>>2]+4>>2];b=H[a+4>>2];d=H[a+8>>2];i=(b|0)==(d|0);a:{if(i){break a}d=d-b>>2;l=d>>>0>1?d:1;h=l&3;d=H[j+8>>2];if(l-1>>>0>=3){l=l&-4;while(1){m=g;g=c<<2;g=(((m+F[H[d+(H[g+b>>2]<<2)>>2]+24|0]|0)+F[H[d+(H[(g|4)+b>>2]<<2)>>2]+24|0]|0)+F[H[d+(H[(g|8)+b>>2]<<2)>>2]+24|0]|0)+F[H[d+(H[(g|12)+b>>2]<<2)>>2]+24|0]|0;c=c+4|0;k=k+4|0;if((l|0)!=(k|0)){continue}break}}if(!h){break a}while(1){g=F[H[d+(H[(c<<2)+b>>2]<<2)>>2]+24|0]+g|0;c=c+1|0;f=f+1|0;if((h|0)!=(f|0)){continue}break}}o=H[j+80>>2];H[a+72>>2]=g;b:{c:{if(i){c=1;break c}l=0;while(1){b=H[(l<<2)+b>>2];H[e+60>>2]=b;d:{e:{f:{d=H[a+28>>2];j=H[H[H[d+4>>2]+8>>2]+(b<<2)>>2];switch(H[j+28>>2]-1|0){case 0:case 2:case 4:break e;case 8:break f;default:break d}}H[e+36>>2]=-1;H[e+32>>2]=2032;H[e+48>>2]=0;H[e+52>>2]=0;H[e+40>>2]=0;H[e+44>>2]=0;g=H[d+48>>2];b=ra(32);H[e+16>>2]=b;H[e+20>>2]=17;H[e+24>>2]=-2147483616;F[b+17|0]=0;F[b+16|0]=I[1261];d=I[1257]|I[1258]<<8|(I[1259]<<16|I[1260]<<24);c=I[1253]|I[1254]<<8|(I[1255]<<16|I[1256]<<24);F[b+8|0]=c;F[b+9|0]=c>>>8;F[b+10|0]=c>>>16;F[b+11|0]=c>>>24;F[b+12|0]=d;F[b+13|0]=d>>>8;F[b+14|0]=d>>>16;F[b+15|0]=d>>>24;d=I[1249]|I[1250]<<8|(I[1251]<<16|I[1252]<<24);c=I[1245]|I[1246]<<8|(I[1247]<<16|I[1248]<<24);F[b|0]=c;F[b+1|0]=c>>>8;F[b+2|0]=c>>>16;F[b+3|0]=c>>>24;F[b+4|0]=d;F[b+5|0]=d>>>8;F[b+6|0]=d>>>16;F[b+7|0]=d>>>24;g=pb(g,e+60|0,e+16|0,-1);if(F[e+27|0]<0){qa(H[e+16>>2])}g:{if((g|0)<=0){break g}h=H[H[a+28>>2]+48>>2];b=ra(32);H[e+16>>2]=b;H[e+20>>2]=19;H[e+24>>2]=-2147483616;d=0;F[b+19|0]=0;c=I[1429]|I[1430]<<8|(I[1431]<<16|I[1432]<<24);F[b+15|0]=c;F[b+16|0]=c>>>8;F[b+17|0]=c>>>16;F[b+18|0]=c>>>24;c=I[1426]|I[1427]<<8|(I[1428]<<16|I[1429]<<24);f=I[1422]|I[1423]<<8|(I[1424]<<16|I[1425]<<24);F[b+8|0]=f;F[b+9|0]=f>>>8;F[b+10|0]=f>>>16;F[b+11|0]=f>>>24;F[b+12|0]=c;F[b+13|0]=c>>>8;F[b+14|0]=c>>>16;F[b+15|0]=c>>>24;c=I[1418]|I[1419]<<8|(I[1420]<<16|I[1421]<<24);f=I[1414]|I[1415]<<8|(I[1416]<<16|I[1417]<<24);F[b|0]=f;F[b+1|0]=f>>>8;F[b+2|0]=f>>>16;F[b+3|0]=f>>>24;F[b+4|0]=c;F[b+5|0]=c>>>8;F[b+6|0]=c>>>16;F[b+7|0]=c>>>24;h:{if(!wc(h,e+60|0,e+16|0)){break h}f=H[H[a+28>>2]+48>>2];b=ra(32);H[e>>2]=b;H[e+4>>2]=18;H[e+8>>2]=-2147483616;F[b+18|0]=0;d=I[1547]|I[1548]<<8;F[b+16|0]=d;F[b+17|0]=d>>>8;d=I[1543]|I[1544]<<8|(I[1545]<<16|I[1546]<<24);c=I[1539]|I[1540]<<8|(I[1541]<<16|I[1542]<<24);F[b+8|0]=c;F[b+9|0]=c>>>8;F[b+10|0]=c>>>16;F[b+11|0]=c>>>24;F[b+12|0]=d;F[b+13|0]=d>>>8;F[b+14|0]=d>>>16;F[b+15|0]=d>>>24;d=I[1535]|I[1536]<<8|(I[1537]<<16|I[1538]<<24);c=I[1531]|I[1532]<<8|(I[1533]<<16|I[1534]<<24);F[b|0]=c;F[b+1|0]=c>>>8;F[b+2|0]=c>>>16;F[b+3|0]=c>>>24;F[b+4|0]=d;F[b+5|0]=d>>>8;F[b+6|0]=d>>>16;F[b+7|0]=d>>>24;d=wc(f,e+60|0,e);if(F[e+11|0]>=0){break h}qa(H[e>>2])}if(F[e+27|0]<0){qa(H[e+16>>2])}i:{if(d){d=F[j+24|0];b=0;H[e+24>>2]=0;H[e+16>>2]=0;H[e+20>>2]=0;if(d){if((d|0)<0){break b}d=d<<2;b=ra(d);H[e+16>>2]=b;c=b+d|0;H[e+24>>2]=c;ta(b,0,d);H[e+20>>2]=c}h=H[H[a+28>>2]+48>>2];d=ra(32);H[e>>2]=d;H[e+4>>2]=19;H[e+8>>2]=-2147483616;F[d+19|0]=0;c=I[1429]|I[1430]<<8|(I[1431]<<16|I[1432]<<24);F[d+15|0]=c;F[d+16|0]=c>>>8;F[d+17|0]=c>>>16;F[d+18|0]=c>>>24;c=I[1426]|I[1427]<<8|(I[1428]<<16|I[1429]<<24);f=I[1422]|I[1423]<<8|(I[1424]<<16|I[1425]<<24);F[d+8|0]=f;F[d+9|0]=f>>>8;F[d+10|0]=f>>>16;F[d+11|0]=f>>>24;F[d+12|0]=c;F[d+13|0]=c>>>8;F[d+14|0]=c>>>16;F[d+15|0]=c>>>24;c=I[1418]|I[1419]<<8|(I[1420]<<16|I[1421]<<24);f=I[1414]|I[1415]<<8|(I[1416]<<16|I[1417]<<24);F[d|0]=f;F[d+1|0]=f>>>8;F[d+2|0]=f>>>16;F[d+3|0]=f>>>24;F[d+4|0]=c;F[d+5|0]=c>>>8;F[d+6|0]=c>>>16;F[d+7|0]=c>>>24;ve(h,e+60|0,e,F[j+24|0],b);if(F[e+11|0]<0){qa(H[e>>2])}h=H[H[a+28>>2]+48>>2];d=ra(32);H[e>>2]=d;H[e+4>>2]=18;H[e+8>>2]=-2147483616;F[d+18|0]=0;c=I[1547]|I[1548]<<8;F[d+16|0]=c;F[d+17|0]=c>>>8;c=I[1543]|I[1544]<<8|(I[1545]<<16|I[1546]<<24);f=I[1539]|I[1540]<<8|(I[1541]<<16|I[1542]<<24);F[d+8|0]=f;F[d+9|0]=f>>>8;F[d+10|0]=f>>>16;F[d+11|0]=f>>>24;F[d+12|0]=c;F[d+13|0]=c>>>8;F[d+14|0]=c>>>16;F[d+15|0]=c>>>24;c=I[1535]|I[1536]<<8|(I[1537]<<16|I[1538]<<24);f=I[1531]|I[1532]<<8|(I[1533]<<16|I[1534]<<24);F[d|0]=f;F[d+1|0]=f>>>8;F[d+2|0]=f>>>16;F[d+3|0]=f>>>24;F[d+4|0]=c;F[d+5|0]=c>>>8;F[d+6|0]=c>>>16;F[d+7|0]=c>>>24;p=ue(h,e+60|0,e);if(F[e+11|0]<0){qa(H[e>>2])}Vg(e+32|0,g,b,F[j+24|0],p);if(!b){break i}qa(b);break i}if(!Rg(e+32|0,j,g)){break g}}b=H[a+40>>2];j:{if((b|0)!=H[a+44>>2]){H[b>>2]=2032;d=H[e+36>>2];H[b+16>>2]=0;H[b+8>>2]=0;H[b+12>>2]=0;H[b+4>>2]=d;d=H[e+44>>2];c=H[e+40>>2];if((d|0)!=(c|0)){c=d-c|0;if((c|0)<0){break b}d=ra(c);H[b+8>>2]=d;H[b+12>>2]=d;H[b+16>>2]=d+(c>>2<<2);g=H[e+40>>2];c=H[e+44>>2]-g|0;if((c|0)>0){d=sa(d,g,c)+c|0}H[b+12>>2]=d}L[b+20>>2]=L[e+52>>2];H[a+40>>2]=b+24;break j}g=0;k:{l:{m:{d=H[a+40>>2];f=H[a+36>>2];c=(d-f|0)/24|0;b=c+1|0;if(b>>>0<178956971){h=(H[a+44>>2]-f|0)/24|0;i=h<<1;h=h>>>0<89478485?b>>>0>>0?i:b:178956970;if(h){if(h>>>0>=178956971){break m}g=ra(N(h,24))}b=N(c,24)+g|0;H[b>>2]=2032;c=H[e+36>>2];H[b+16>>2]=0;H[b+8>>2]=0;H[b+12>>2]=0;H[b+4>>2]=c;c=H[e+44>>2];i=H[e+40>>2];if((c|0)!=(i|0)){c=c-i|0;if((c|0)<0){break b}k=ra(c);H[b+8>>2]=k;H[b+16>>2]=k+(c>>2<<2);q=b,r=sa(k,i,c)+c|0,H[q+12>>2]=r}c=N(h,24)+g|0;L[b+20>>2]=L[e+52>>2];g=b+24|0;if((d|0)==(f|0)){break l}while(1){b=b-24|0;H[b>>2]=2032;d=d-24|0;H[b+4>>2]=H[d+4>>2];H[b+8>>2]=H[d+8>>2];H[b+12>>2]=H[d+12>>2];H[b+16>>2]=H[d+16>>2];H[d+16>>2]=0;H[d+8>>2]=0;H[d+12>>2]=0;L[b+20>>2]=L[d+20>>2];if((d|0)!=(f|0)){continue}break}H[a+44>>2]=c;c=H[a+40>>2];H[a+40>>2]=g;d=H[a+36>>2];H[a+36>>2]=b;if((d|0)==(c|0)){break k}while(1){c=c-24|0;fa[H[H[c>>2]>>2]](c)|0;if((d|0)!=(c|0)){continue}break}break k}break b}ya();X()}H[a+44>>2]=c;H[a+40>>2]=g;H[a+36>>2]=b}if(d){qa(d)}}b=e+32|0;d=Lc(b,j,o);H[e>>2]=d;H[e+24>>2]=0;H[e+16>>2]=0;H[e+20>>2]=0;ae(b,j,e+16|0,d);b=H[e+16>>2];if(b){H[e+20>>2]=b;qa(b)}b=H[a+64>>2];n:{if(b>>>0>2]){d=H[e>>2];H[e>>2]=0;H[b>>2]=d;H[a+64>>2]=b+4;break n}b=0;o:{p:{q:{c=H[a+60>>2];g=H[a+64>>2]-c>>2;d=g+1|0;if(d>>>0<1073741824){c=H[a+68>>2]-c|0;j=c>>1;d=c>>>0<2147483644?d>>>0>>0?j:d:1073741823;if(d){if(d>>>0>=1073741824){break q}b=ra(d<<2)}j=H[e>>2];H[e>>2]=0;c=(g<<2)+b|0;H[c>>2]=j;g=(d<<2)+b|0;j=c+4|0;b=H[a+64>>2];d=H[a+60>>2];if((b|0)==(d|0)){break p}while(1){b=b-4|0;f=H[b>>2];H[b>>2]=0;c=c-4|0;H[c>>2]=f;if((b|0)!=(d|0)){continue}break}H[a+68>>2]=g;b=H[a+64>>2];H[a+64>>2]=j;d=H[a+60>>2];H[a+60>>2]=c;if((b|0)==(d|0)){break o}while(1){b=b-4|0;c=H[b>>2];H[b>>2]=0;if(c){Oa(c)}if((b|0)!=(d|0)){continue}break}break o}break b}ya();X()}H[a+68>>2]=g;H[a+64>>2]=j;H[a+60>>2]=c}if(d){qa(d)}}b=H[e>>2];H[e>>2]=0;if(b){Oa(b)}H[e+32>>2]=2032;b=H[e+40>>2];if(!b){break d}H[e+44>>2]=b;qa(b);break d}H[e+32>>2]=2032;a=H[e+40>>2];if(a){H[e+44>>2]=a;qa(a)}c=0;break c}g=F[j+24|0];H[e+40>>2]=0;H[e+32>>2]=0;H[e+36>>2]=0;r:{if(!g){d=0;H[e+24>>2]=0;H[e+16>>2]=0;H[e+20>>2]=0;g=0;break r}if((g|0)<0){break b}b=g<<2;d=ra(b);H[e+32>>2]=d;f=b+d|0;H[e+40>>2]=f;c=0;b=d;h=g&7;if(h){while(1){H[b>>2]=2147483647;b=b+4|0;c=c+1|0;if((h|0)!=(c|0)){continue}break}}if((g-1&1073741823)>>>0>=7){while(1){H[b+24>>2]=2147483647;H[b+28>>2]=2147483647;H[b+16>>2]=2147483647;H[b+20>>2]=2147483647;H[b+8>>2]=2147483647;H[b+12>>2]=2147483647;H[b>>2]=2147483647;H[b+4>>2]=2147483647;b=b+32|0;if((f|0)!=(b|0)){continue}break}}H[e+36>>2]=f;b=F[j+24|0];g=0;H[e+24>>2]=0;H[e+16>>2]=0;H[e+20>>2]=0;if(!b){break r}if((b|0)<0){break b}b=b<<2;g=ra(b);H[e+16>>2]=g;c=b+g|0;H[e+24>>2]=c;ta(g,0,b);H[e+20>>2]=c}c=I[j+24|0];f=0;if(H[j+80>>2]){while(1){Zc(j,f,c<<24>>24,g);c=F[j+24|0];s:{if((c|0)<=0){break s}b=0;if((c|0)!=1){m=c&-2;h=0;while(1){i=b<<2;k=i+d|0;n=H[g+i>>2];if((n|0)>2]){H[k>>2]=n}i=i|4;k=i+d|0;i=H[g+i>>2];if(H[k>>2]>(i|0)){H[k>>2]=i}b=b+2|0;h=h+2|0;if((m|0)!=(h|0)){continue}break}}if(!(c&1)){break s}b=b<<2;h=b+d|0;b=H[b+g>>2];if(H[h>>2]<=(b|0)){break s}H[h>>2]=b}f=f+1|0;if(f>>>0>2]){continue}break}}b=0;t:{if(c<<24>>24<=0){break t}u:{while(1){v:{k=(b<<2)+d|0;c=H[a+52>>2];w:{if((c|0)!=H[a+56>>2]){H[c>>2]=H[k>>2];H[a+52>>2]=c+4;break w}h=H[a+48>>2];f=c-h|0;m=f>>2;c=m+1|0;if(c>>>0>=1073741824){break v}i=f>>1;i=f>>>0<2147483644?c>>>0>>0?i:c:1073741823;if(i){if(i>>>0>=1073741824){break u}c=ra(i<<2)}else{c=0}m=c+(m<<2)|0;H[m>>2]=H[k>>2];if((f|0)>0){sa(c,h,f)}H[a+56>>2]=c+(i<<2);H[a+52>>2]=m+4;H[a+48>>2]=c;if(!h){break w}qa(h)}b=b+1|0;if((b|0)>2];if(l>>>0>2]-b>>2>>>0){continue}break}}da=e- -64|0;return c|0}ua();X()}function zd(a,b){var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=O(0),r=0,s=0,t=0,u=O(0);e=da-112|0;da=e;H[e+88>>2]=0;H[e+92>>2]=0;H[e+80>>2]=0;H[e+84>>2]=0;H[e+96>>2]=1065353216;c=H[a+80>>2];H[e+40>>2]=0;H[e+32>>2]=0;H[e+36>>2]=0;a:{if(c){if(c>>>0>=1073741824){break a}d=c<<2;f=ra(d);H[e+32>>2]=f;c=d+f|0;H[e+40>>2]=c;ta(f,0,d);H[e+36>>2]=c;while(1){c=H[H[b>>2]>>2];d=H[b+48>>2]+zl(H[b+40>>2],H[b+44>>2],s,0)|0;h=c+d|0;c=I[h+12|0]|I[h+13|0]<<8|(I[h+14|0]<<16|I[h+15|0]<<24);H[e+72>>2]=I[h+8|0]|I[h+9|0]<<8|(I[h+10|0]<<16|I[h+11|0]<<24);H[e+76>>2]=c;c=I[h+4|0]|I[h+5|0]<<8|(I[h+6|0]<<16|I[h+7|0]<<24);H[e+64>>2]=I[h|0]|I[h+1|0]<<8|(I[h+2|0]<<16|I[h+3|0]<<24);H[e+68>>2]=c;g=I[h|0]|I[h+1|0]<<8|(I[h+2|0]<<16|I[h+3|0]<<24);d=I[h+4|0]|I[h+5|0]<<8|(I[h+6|0]<<16|I[h+7|0]<<24);c=I[h+12|0]|I[h+13|0]<<8|(I[h+14|0]<<16|I[h+15|0]<<24);H[e+56>>2]=I[h+8|0]|I[h+9|0]<<8|(I[h+10|0]<<16|I[h+11|0]<<24);H[e+60>>2]=c;H[e+48>>2]=g;H[e+52>>2]=d;d=0;i=H[e+84>>2];b:{if(!i){break b}h=H[e+80>>2];j=H[e+60>>2]^(H[e+56>>2]^(H[e+52>>2]^(H[e+48>>2]^318)+239)+239)+239;c=j&i-1;g=Cl(i);c:{if(g>>>0<=1){break c}c=j;if(c>>>0>>0){break c}c=(j>>>0)%(i>>>0)|0}k=h;h=c;c=H[k+(c<<2)>>2];if(!c){break b}c=H[c>>2];if(!c){break b}d:{if(g>>>0>=2){k=H[e+60>>2];p=H[e+56>>2];o=H[e+52>>2];l=H[e+48>>2];while(1){g=H[c+4>>2];e:{if((g|0)!=(j|0)){if(g>>>0>=i>>>0){g=(g>>>0)%(i>>>0)|0}if((h|0)!=(g|0)){break b}break e}g=H[c+8>>2];f:{if((g|0)!=(l|0)){g=(g|0)==(l|0);break f}g=H[c+12>>2];if((g|0)!=(o|0)){g=(g|0)==(o|0);break f}g=H[c+16>>2];if((g|0)!=(p|0)){g=(g|0)==(p|0);break f}g=(k|0)==H[c+20>>2]}if(g){break d}}c=H[c>>2];if(c){continue}break}break b}l=i-1|0;k=H[e+60>>2];i=H[e+56>>2];p=H[e+52>>2];o=H[e+48>>2];while(1){g=H[c+4>>2];g:{if((g|0)!=(j|0)){if((h|0)!=(g&l)){break b}break g}g=H[c+8>>2];if((g|0)!=(o|0)){if((g|0)!=(o|0)){break g}break d}g=H[c+12>>2];if((g|0)!=(p|0)){if((g|0)!=(p|0)){break g}break d}g=H[c+16>>2];if((g|0)!=(i|0)){if((g|0)!=(i|0)){break g}break d}if((k|0)==H[c+20>>2]){break d}}c=H[c>>2];if(c){continue}break}break b}d=c}h:{if(d){H[(s<<2)+f>>2]=H[d+24>>2];break h}c=H[e+60>>2];H[e+16>>2]=H[e+56>>2];H[e+20>>2]=c;c=H[e+52>>2];H[e+8>>2]=H[e+48>>2];H[e+12>>2]=c;H[e+24>>2]=r;c=0;h=H[e+20>>2]^(H[e+16>>2]^(H[e+12>>2]^(H[e+8>>2]^318)+239)+239)+239;i:{j:{m=e+80|0;f=H[m+4>>2];if(!f){break j}c=f-1|0;if(c&f){c=h;if(f>>>0<=c>>>0){c=(h>>>0)%(f>>>0)|0}i=H[H[m>>2]+(c<<2)>>2];if(!i){break j}g=H[e+20>>2];l=H[e+16>>2];k=H[e+12>>2];j=H[e+8>>2];while(1){i=H[i>>2];if(!i){break j}d=H[i+4>>2];if((d|0)!=(h|0)){if(d>>>0>=f>>>0){d=(d>>>0)%(f>>>0)|0}if((c|0)!=(d|0)){break j}}d=H[i+8>>2];k:{if((d|0)!=(j|0)){d=(d|0)==(j|0);break k}d=H[i+12>>2];if((d|0)!=(k|0)){d=(d|0)==(k|0);break k}d=H[i+16>>2];if((d|0)!=(l|0)){d=(d|0)==(l|0);break k}d=(g|0)==H[i+20>>2]}if(!d){continue}break}c=0;break i}c=c&h;i=H[H[m>>2]+(c<<2)>>2];if(!i){break j}j=f-1|0;g=H[e+20>>2];o=H[e+16>>2];l=H[e+12>>2];k=H[e+8>>2];while(1){i=H[i>>2];if(!i){break j}d=H[i+4>>2];if((d|0)!=(h|0)&(d&j)!=(c|0)){break j}d=H[i+8>>2];l:{if((d|0)!=(k|0)){d=(d|0)==(k|0);break l}d=H[i+12>>2];if((d|0)!=(l|0)){d=(d|0)==(l|0);break l}d=H[i+16>>2];if((d|0)!=(o|0)){d=(d|0)==(o|0);break l}d=(g|0)==H[i+20>>2]}if(!d){continue}break}c=0;break i}i=ra(28);d=H[e+20>>2];H[i+16>>2]=H[e+16>>2];H[i+20>>2]=d;d=H[e+12>>2];H[i+8>>2]=H[e+8>>2];H[i+12>>2]=d;d=H[e+24>>2];H[i>>2]=0;H[i+4>>2]=h;H[i+24>>2]=d;q=O(H[m+12>>2]+1>>>0);u=L[m+16>>2];m:{if(q>O(u*O(f>>>0))?0:f){break m}c=2;d=(f-1&f)!=0|f>>>0<3|f<<1;q=O(U(O(q/u)));n:{if(q=O(0)){g=~~q>>>0;break n}g=0}d=d>>>0>g>>>0?d:g;o:{if((d|0)==1){break o}if(!(d&d-1)){c=d;break o}c=Ja(d);f=H[m+4>>2]}p:{if(c>>>0<=f>>>0){if(c>>>0>=f>>>0){break p}g=f>>>0<3;q=O(U(O(O(K[m+12>>2])/L[m+16>>2])));q:{if(q=O(0)){d=~~q>>>0;break q}d=0}r:{s:{if(g){break s}if(Cl(f)>>>0>1){break s}d=d>>>0<2?d:1<<32-Q(d-1|0);break r}d=Ja(d)}c=c>>>0>d>>>0?c:d;if(f>>>0<=c>>>0){break p}}d=0;j=0;k=c;t:{u:{v:{if(c){if(k>>>0>=1073741824){break v}c=ra(k<<2);f=H[m>>2];H[m>>2]=c;if(f){qa(f)}H[m+4>>2]=k;if(k-1>>>0>=3){c=k&-4;f=0;while(1){g=d<<2;H[g+H[m>>2]>>2]=0;H[H[m>>2]+(g|4)>>2]=0;H[H[m>>2]+(g|8)>>2]=0;H[H[m>>2]+(g|12)>>2]=0;d=d+4|0;f=f+4|0;if((c|0)!=(f|0)){continue}break}}c=k&3;if(c){while(1){H[H[m>>2]+(d<<2)>>2]=0;d=d+1|0;j=j+1|0;if((c|0)!=(j|0)){continue}break}}f=H[m+8>>2];if(!f){break t}d=m+8|0;g=H[f+4>>2];c=k-1|0;if(!(c&k)){break u}g=g>>>0>=k>>>0?(g>>>0)%(k>>>0)|0:g;H[H[m>>2]+(g<<2)>>2]=d;c=H[f>>2];if(!c){break t}while(1){j=H[c+4>>2];if(k>>>0<=j>>>0){j=(j>>>0)%(k>>>0)|0}w:{if((g|0)==(j|0)){f=c;break w}d=c;p=j<<2;l=p+H[m>>2]|0;if(!H[l>>2]){H[l>>2]=f;f=c;g=j;break w}while(1){j=d;d=H[d>>2];if(d){o=H[c+8>>2];l=H[d+8>>2];x:{if((o|0)!=(l|0)){l=(l|0)==(o|0);break x}o=H[c+12>>2];l=H[d+12>>2];if((o|0)!=(l|0)){l=(l|0)==(o|0);break x}o=H[c+16>>2];l=H[d+16>>2];if((o|0)!=(l|0)){l=(l|0)==(o|0);break x}l=H[c+20>>2]==H[d+20>>2]}if(l){continue}}break}H[f>>2]=d;H[j>>2]=H[H[p+H[m>>2]>>2]>>2];H[H[p+H[m>>2]>>2]>>2]=c}c=H[f>>2];if(c){continue}break}break t}c=H[m>>2];H[m>>2]=0;if(c){qa(c)}H[m+4>>2]=0;break t}ya();X()}g=c&g;H[H[m>>2]+(g<<2)>>2]=d;c=H[f>>2];if(!c){break t}o=k-1|0;while(1){j=o&H[c+4>>2];y:{if((j|0)==(g|0)){f=c;break y}d=c;p=j<<2;k=p+H[m>>2]|0;if(H[k>>2]){while(1){j=d;d=H[d>>2];if(d){l=H[c+8>>2];k=H[d+8>>2];z:{if((l|0)!=(k|0)){k=(k|0)==(l|0);break z}l=H[c+12>>2];k=H[d+12>>2];if((l|0)!=(k|0)){k=(k|0)==(l|0);break z}l=H[c+16>>2];k=H[d+16>>2];if((l|0)!=(k|0)){k=(k|0)==(l|0);break z}k=H[c+20>>2]==H[d+20>>2]}if(k){continue}}break}H[f>>2]=d;H[j>>2]=H[H[p+H[m>>2]>>2]>>2];H[H[p+H[m>>2]>>2]>>2]=c;break y}H[k>>2]=f;f=c;g=j}c=H[f>>2];if(c){continue}break}}}f=H[m+4>>2];c=f-1|0;if(!(c&f)){c=c&h;break m}if(f>>>0>h>>>0){c=h;break m}c=(h>>>0)%(f>>>0)|0}d=H[m>>2]+(c<<2)|0;c=H[d>>2];A:{B:{if(!c){c=m+8|0;H[i>>2]=H[c>>2];H[m+8>>2]=i;H[d>>2]=c;c=H[i>>2];if(!c){break A}c=H[c+4>>2];d=f-1|0;C:{if(!(d&f)){c=c&d;break C}if(c>>>0>>0){break C}c=(c>>>0)%(f>>>0)|0}c=H[m>>2]+(c<<2)|0;break B}H[i>>2]=H[c>>2]}H[c>>2]=i}H[m+12>>2]=H[m+12>>2]+1;c=1}F[e+108|0]=c;H[e+104>>2]=i;c=H[a+40>>2];sa(H[H[a>>2]>>2]+N(c,r)|0,e- -64|0,c);f=H[e+32>>2];H[f+(s<<2)>>2]=r;r=r+1|0}c=s+1|0;n=c?n:n+1|0;s=c;c=H[a+80>>2];if(!n&c>>>0>s>>>0){continue}break}if((c|0)!=(r|0)){D:{if(!I[a+84|0]){b=H[a+72>>2];j=H[a+68>>2];if((b|0)==(j|0)){break D}b=b-j>>2;c=b>>>0>1?b:1;g=c&3;d=0;b=0;if(c-1>>>0>=3){n=c&-4;while(1){h=b<<2;c=h+j|0;H[c>>2]=H[(H[c>>2]<<2)+f>>2];c=j+(h|4)|0;H[c>>2]=H[(H[c>>2]<<2)+f>>2];c=j+(h|8)|0;H[c>>2]=H[(H[c>>2]<<2)+f>>2];c=j+(h|12)|0;H[c>>2]=H[(H[c>>2]<<2)+f>>2];b=b+4|0;t=t+4|0;if((n|0)!=(t|0)){continue}break}}if(!g){break D}while(1){c=j+(b<<2)|0;H[c>>2]=H[(H[c>>2]<<2)+f>>2];b=b+1|0;d=d+1|0;if((g|0)!=(d|0)){continue}break}break D}F[a+84|0]=0;n=a+68|0;b=H[a+68>>2];d=H[a+72>>2]-b>>2;E:{if(d>>>0>>0){La(n,c-d|0,2176);c=H[a+80>>2];break E}if(c>>>0>=d>>>0){break E}H[a+72>>2]=b+(c<<2)}if(!c){break D}j=H[n>>2];d=0;b=0;if(c-1>>>0>=3){g=c&-4;while(1){h=b<<2;H[h+j>>2]=H[f+h>>2];n=h|4;H[n+j>>2]=H[f+n>>2];n=h|8;H[n+j>>2]=H[f+n>>2];n=h|12;H[n+j>>2]=H[f+n>>2];b=b+4|0;t=t+4|0;if((g|0)!=(t|0)){continue}break}}n=c&3;if(!n){break D}while(1){c=b<<2;H[c+j>>2]=H[c+f>>2];b=b+1|0;d=d+1|0;if((n|0)!=(d|0)){continue}break}}H[a+80>>2]=r}qa(f)}b=H[e+88>>2];if(b){while(1){a=H[b>>2];qa(b);b=a;if(b){continue}break}}a=H[e+80>>2];H[e+80>>2]=0;if(a){qa(a)}da=e+112|0;return r}ua();X()}function Ie(a,b,c,d,e,f,g,h,i){var j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,I=0,J=0,L=0,M=0,N=0;l=da-336|0;da=l;m=i&65535;p=d;q=e&65535;s=(e^i)&-2147483648;k=h;x=i>>>16&32767;y=e>>>16&32767;a:{b:{if(x-32767>>>0>4294934529&y-32767>>>0>=4294934530){break b}j=e&2147483647;if(!(!d&(j|0)==2147418112?!(b|c):j>>>0<2147418112)){o=d;s=e|32768;break a}e=i&2147483647;if(!(!h&(e|0)==2147418112?!(f|g):e>>>0<2147418112)){o=h;s=i|32768;b=f;c=g;break a}if(!(b|d|(j^2147418112|c))){if(!(f|h|(e^2147418112|g))){b=0;c=0;s=2147450880;break a}s=s|2147418112;b=0;c=0;break a}if(!(f|h|(e^2147418112|g))){b=0;c=0;break a}if(!(b|d|(c|j))){b=!(f|h|(e|g));o=b?0:o;s=b?2147450880:s;b=0;c=0;break a}if(!(f|h|(e|g))){s=s|2147418112;b=0;c=0;break a}if((j|0)==65535|j>>>0<65535){i=b;d=!(p|q);h=d<<6;j=Q(d?b:p)+32|0;b=Q(d?c:q);b=h+((b|0)==32?j:b)|0;Sa(l+320|0,i,c,p,q,b-15|0);n=16-b|0;p=H[l+328>>2];q=H[l+332>>2];c=H[l+324>>2];b=H[l+320>>2]}if(e>>>0>65535){break b}d=!(k|m);e=d<<6;h=Q(d?f:k)+32|0;d=Q(d?g:m);d=e+((d|0)==32?h:d)|0;Sa(l+304|0,f,g,k,m,d-15|0);n=(d+n|0)-16|0;k=H[l+312>>2];m=H[l+316>>2];f=H[l+304>>2];g=H[l+308>>2]}e=m|65536;z=e;A=k;d=k;k=e<<15|d>>>17;d=d<<15|g>>>17;h=0-d|0;e=k;i=1963258675-(e+((d|0)!=0)|0)|0;Za(l+288|0,d,e,0,0,h,i,0,0);j=H[l+296>>2];Za(l+272|0,0-j|0,0-(H[l+300>>2]+((j|0)!=0)|0)|0,0,0,h,i,0,0);h=H[l+280>>2];i=h<<1|H[l+276>>2]>>>31;h=H[l+284>>2]<<1|h>>>31;Za(l+256|0,i,h,0,0,d,e,0,0);j=h;h=H[l+264>>2];Za(l+240|0,i,j,0,0,0-h|0,0-(H[l+268>>2]+((h|0)!=0)|0)|0,0,0);h=H[l+248>>2];i=h<<1|H[l+244>>2]>>>31;h=H[l+252>>2]<<1|h>>>31;Za(l+224|0,i,h,0,0,d,e,0,0);j=h;h=H[l+232>>2];Za(l+208|0,i,j,0,0,0-h|0,0-(H[l+236>>2]+((h|0)!=0)|0)|0,0,0);h=H[l+216>>2];i=h<<1|H[l+212>>2]>>>31;h=H[l+220>>2]<<1|h>>>31;Za(l+192|0,i,h,0,0,d,e,0,0);e=h;h=H[l+200>>2];Za(l+176|0,i,e,0,0,0-h|0,0-(H[l+204>>2]+((h|0)!=0)|0)|0,0,0);i=d;h=H[l+184>>2];d=h<<1|H[l+180>>2]>>>31;e=d-1|0;h=(H[l+188>>2]<<1|h>>>31)-!d|0;Za(l+160|0,i,k,0,0,e,h,0,0);d=f;j=g<<15|d>>>17;Za(l+144|0,d<<15,j,0,0,e,h,0,0);k=H[l+172>>2];m=H[l+160>>2];B=H[l+152>>2];d=m+B|0;i=H[l+164>>2];j=i+H[l+156>>2]|0;j=d>>>0>>0?j+1|0:j;m=(i|0)==(j|0)&d>>>0>>0|i>>>0>j>>>0;i=m+H[l+168>>2]|0;k=i>>>0>>0?k+1|0:k;m=!j&d>>>0>1|(j|0)!=0;i=m+i|0;k=i>>>0>>0?k+1|0:k;Za(l+112|0,e,h,0,0,0-i|0,0-(((i|0)!=0)+k|0)|0,0,0);Za(l+128|0,1-d|0,0-((d>>>0>1)+j|0)|0,0,0,e,h,0,0);G=(y-x|0)+n|0;e=H[l+116>>2];w=e;d=H[l+112>>2];j=e<<1|d>>>31;m=d<<1;n=j;d=j;h=H[l+140>>2];u=h;e=H[l+136>>2];j=h<<1|e>>>31;i=e<<1|H[l+132>>2]>>>31;h=i+m|0;j=d+j|0;j=h>>>0>>0?j+1|0:j;i=h;e=j;j=j-(h>>>0<13927)|0;r=j;k=q|65536;L=k;B=p;j=p;k=k<<1|j>>>31;p=j<<1|c>>>31;d=0;j=d|k;q=j;v=zl(r,d,j,0);d=ea;t=d;j=b;d=c<<1|j>>>31;x=j<<1;y=d;h=h-13927|0;j=(e|0)==(r|0)&h>>>0>>0|e>>>0>r>>>0;e=(e|0)==(n|0)&i>>>0>>0|e>>>0>>0;d=H[l+120>>2];k=H[l+124>>2]<<1|d>>>31;i=d<<1;m=j;n=e;e=u>>>31|0;d=e+(w>>>31|i)|0;j=k;j=d>>>0>>0?j+1|0:j;e=d;d=n+d|0;j=d>>>0>>0?j+1|0:j;e=d;d=m+d|0;k=d>>>0>>0?j+1|0:j;e=d;d=d-1|0;C=k-!e|0;D=0;i=zl(y,o,C,D);e=i+v|0;k=ea+t|0;k=e>>>0>>0?k+1|0:k;m=(k|0)==(t|0)&e>>>0>>0|k>>>0>>0;v=d;i=zl(d,0,p,0);d=i+e|0;j=ea+k|0;j=d>>>0>>0?j+1|0:j;n=d;i=j;e=(j|0)==(k|0)&d>>>0>>0|j>>>0>>0;d=m+e|0;k=0;k=d>>>0>>0?1:k;e=zl(q,o,C,D);d=e+d|0;j=ea+k|0;u=d;d=d>>>0>>0?j+1|0:j;m=zl(q,o,v,o);k=ea;w=zl(C,D,p,o);e=w+m|0;j=ea+k|0;j=e>>>0>>0?j+1|0:j;w=e;e=j;j=(k|0)==(j|0)&m>>>0>w>>>0|j>>>0>>0;m=u+e|0;d=d+j|0;j=m;m=j>>>0>>0?d+1|0:d;u=j;e=0;d=e+n|0;j=i+w|0;j=d>>>0>>0?j+1|0:j;e=j;k=(j|0)==(i|0)&d>>>0>>0|i>>>0>j>>>0;i=u+k|0;j=m;u=i;i=i>>>0>>0?j+1|0:j;n=d;m=e;w=h;h=zl(h,0,p,o);e=ea;t=zl(r,o,y,o);d=t+h|0;j=ea+e|0;j=d>>>0>>0?j+1|0:j;e=(e|0)==(j|0)&d>>>0>>0|e>>>0>j>>>0;h=j;E=u;t=e;F=x&-2;k=zl(v,o,F,0);e=k+d|0;j=ea+j|0;j=e>>>0>>0?j+1|0:j;u=e;k=e;e=j;h=(j|0)==(h|0)&d>>>0>k>>>0|h>>>0>j>>>0;d=t+h|0;k=0;k=d>>>0>>0?1:k;j=d;h=n+d|0;d=k+m|0;d=h>>>0>>0?d+1|0:d;t=h;j=h;h=d;k=(d|0)==(m|0)&j>>>0>>0|d>>>0>>0;d=E+k|0;j=i;M=d;n=d>>>0>>0?j+1|0:j;I=zl(q,o,w,o);E=ea;i=zl(C,D,F,o);d=i+I|0;j=ea+E|0;j=d>>>0>>0?j+1|0:j;C=d;k=zl(r,o,p,o);i=d+k|0;m=j;d=j+ea|0;d=i>>>0>>0?d+1|0:d;J=i;j=zl(y,o,v,o);i=i+j|0;k=ea+d|0;D=i;k=i>>>0>>0?k+1|0:k;i=k;v=0;N=(d|0)==(k|0)&D>>>0>>0|d>>>0>k>>>0;j=(d|0)==(m|0)&C>>>0>J>>>0|d>>>0>>0;d=j+((m|0)==(E|0)&C>>>0>>0|m>>>0>>0)|0;k=0;d=N+d|0;m=i|0;k=m+t|0;j=(d|v)+h|0;v=k;d=k;j=d>>>0>>0?j+1|0:j;m=j;h=(h|0)==(j|0)&d>>>0>>0|h>>>0>j>>>0;d=h+M|0;j=n;E=d;h=d>>>0>>0?j+1|0:j;t=zl(r,o,F,o);r=ea;k=zl(y,o,w,o);d=k+t|0;j=ea+r|0;j=d>>>0>>0?j+1|0:j;n=0;k=(j|0)==(r|0)&d>>>0>>0|j>>>0>>0;r=j;d=j+u|0;j=(k|n)+e|0;n=d;j=d>>>0>>0?j+1|0:j;u=(e|0)==(j|0)&d>>>0>>0|e>>>0>j>>>0;i=0;e=i+d|0;d=j;k=D+d|0;k=e>>>0>>0?k+1|0:k;e=(d|0)==(k|0)&e>>>0>>0|d>>>0>k>>>0;d=u+e|0;j=0;j=d>>>0>>0?1:j;e=d;d=d+v|0;j=j+m|0;j=d>>>0>>0?j+1|0:j;e=j;j=(m|0)==(j|0)&d>>>0>>0|j>>>0>>0;i=j+E|0;k=h;h=i;k=h>>>0>>0?k+1|0:k;i=k;c:{if((k|0)==131071|k>>>0<131071){Za(l+80|0,d,e,h,i,f,g,A,z);j=b<<17;b=0;c=H[l+88>>2];n=b-c|0;k=H[l+80>>2];m=H[l+84>>2];B=(k|m)!=0;r=n-B|0;n=(j-(H[l+92>>2]+(b>>>0>>0)|0)|0)-(n>>>0>>0)|0;b=k;k=0-k|0;m=0-(((b|0)!=0)+m|0)|0;b=G+16382|0;break c}k=h<<31;d=(e&1)<<31|d>>>1;e=e>>>1|k;h=(i&1)<<31|h>>>1;i=i>>>1|0;Za(l+96|0,d,e,h,i,f,g,A,z);q=0;m=H[l+104>>2];n=q-m|0;k=H[l+96>>2];p=H[l+100>>2];x=(k|p)!=0;r=n-x|0;n=((b<<16)-(H[l+108>>2]+(m>>>0>q>>>0)|0)|0)-(n>>>0>>0)|0;j=k;k=0-j|0;m=0-(((j|0)!=0)+p|0)|0;x=b;y=c;p=B;q=L;b=G+16383|0}if((b|0)>=32767){s=s|2147418112;b=0;c=0;break a}d:{if((b|0)>0){c=r;j=n<<1|c>>>31;r=c<<1|m>>>31;n=j;p=h;q=i&65535|b<<16;j=m<<1|k>>>31;b=k<<1;break d}if((b|0)<=-113){b=0;c=0;break a}Ib(l- -64|0,d,e,h,i,1-b|0);Sa(l+48|0,x,y,p,q,b+112|0);d=H[l+64>>2];e=H[l+68>>2];p=H[l+72>>2];q=H[l+76>>2];Za(l+32|0,f,g,A,z,d,e,p,q);c=H[l+40>>2];i=c<<1;c=H[l+44>>2]<<1|c>>>31;b=H[l+56>>2];h=H[l+36>>2];n=h>>>31|i;i=b-n|0;n=H[l+60>>2]-((b>>>0>>0)+c|0)|0;c=H[l+32>>2];k=h<<1|c>>>31;c=c<<1;j=H[l+52>>2];b=H[l+48>>2];h=(k|0)==(j|0)&c>>>0>b>>>0|j>>>0>>0;r=i-h|0;n=n-(h>>>0>i>>>0)|0;h=b;b=h-c|0;j=j-((c>>>0>h>>>0)+k|0)|0}Za(l+16|0,f,g,A,z,3,0,0,0);Za(l,f,g,A,z,5,0,0,0);h=d;m=p;p=d&1;c=b+p|0;d=0;k=j+d|0;k=b>>>0>c>>>0?k+1|0:k;i=c;c=k;g=(k|0)==(g|0)&i>>>0>f>>>0|g>>>0>>0;d=(d|0)==(k|0)&i>>>0

>>0|d>>>0>k>>>0;b=d+r|0;j=n;j=b>>>0>>0?j+1|0:j;f=b;d=b;b=j;g=(d|0)==(A|0)&(j|0)==(z|0)?g:(z|0)==(j|0)&d>>>0>A>>>0|j>>>0>z>>>0;d=h+g|0;k=e;k=d>>>0>>0?k+1|0:k;g=(e|0)==(k|0)&d>>>0>>0|e>>>0>k>>>0;e=m+g|0;j=q;j=e>>>0>>0?j+1|0:j;g=e;e=d;m=g;d=H[l+20>>2];h=(d|0)==(c|0)&K[l+16>>2]>>0|c>>>0>d>>>0;d=H[l+28>>2];g=H[l+24>>2];h=j>>>0<2147418112&((f|0)==(g|0)&(b|0)==(d|0)?h:(d|0)==(b|0)&g>>>0>>0|b>>>0>d>>>0);g=e+h|0;d=k;d=g>>>0>>0?d+1|0:d;h=(d|0)==(k|0)&e>>>0>g>>>0|d>>>0>>0;e=m+h|0;k=e>>>0>>0?j+1|0:j;h=e;e=H[l+4>>2];i=(e|0)==(c|0)&K[l>>2]>>0|c>>>0>e>>>0;c=H[l+12>>2];e=H[l+8>>2];c=k>>>0<2147418112&((e|0)==(f|0)&(b|0)==(c|0)?i:(c|0)==(b|0)&e>>>0>>0|b>>>0>c>>>0);b=c+g|0;j=b>>>0>>0?d+1|0:d;c=j;f=(d|0)==(j|0)&b>>>0>>0|d>>>0>j>>>0;e=h+f|0;d=k;o=e|o;s=s|(e>>>0>>0?d+1|0:d)}H[a>>2]=b;H[a+4>>2]=c;H[a+8>>2]=o;H[a+12>>2]=s;da=l+336|0}function gl(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0;h=da-48|0;da=h;e=H[a+4>>2];i=H[a+12>>2];H[h+40>>2]=0;a=h;H[a+32>>2]=0;H[a+36>>2]=0;H[a+24>>2]=0;H[a+28>>2]=0;H[a+16>>2]=0;H[a+20>>2]=0;H[a+8>>2]=0;H[a+12>>2]=0;k=H[H[H[e+4>>2]+8>>2]+(i<<2)>>2];c=a+8|0;if((b|0)==-1){b=Ug(i,e)}a:{if((b|0)==-2){break a}if((fa[H[H[e>>2]+8>>2]](e)|0)==1){g=da-32|0;da=g;f=H[H[H[e+4>>2]+8>>2]+(i<<2)>>2];b:{c:{d:{if((fa[H[H[e>>2]+8>>2]](e)|0)!=1|b-1>>>0>5){break d}j=fa[H[H[e>>2]+52>>2]](e)|0;a=fa[H[H[e>>2]+60>>2]](e,i)|0;if(!j|!a){break d}d=fa[H[H[e>>2]+56>>2]](e,i)|0;if(d){e=H[e+56>>2];H[g+20>>2]=d;H[g+16>>2]=e;H[g+28>>2]=a;H[g+24>>2]=a+12;d=g+16|0;a=0;e:{f:{switch(b-1|0){case 0:a=ra(60);H[a+4>>2]=f;H[a>>2]=3456;b=H[c+4>>2];H[a+8>>2]=H[c>>2];H[a+12>>2]=b;b=H[c+12>>2];H[a+16>>2]=H[c+8>>2];H[a+20>>2]=b;b=H[c+20>>2];H[a+24>>2]=H[c+16>>2];H[a+28>>2]=b;H[a+40>>2]=0;H[a+32>>2]=0;H[a+36>>2]=0;b=H[c+28>>2];e=H[c+24>>2];if((b|0)!=(e|0)){b=b-e|0;if((b|0)<0){break c}f=ra(b);H[a+32>>2]=f;H[a+40>>2]=f+(b>>2<<2);l=a,m=sa(f,e,b)+b|0,H[l+36>>2]=m}b=H[d+4>>2];H[a+44>>2]=H[d>>2];H[a+48>>2]=b;b=H[d+12>>2];H[a+52>>2]=H[d+8>>2];H[a+56>>2]=b;H[a>>2]=2748;break e;case 3:a=ra(168);H[a+4>>2]=f;H[a>>2]=3456;b=H[c+4>>2];H[a+8>>2]=H[c>>2];H[a+12>>2]=b;b=H[c+12>>2];H[a+16>>2]=H[c+8>>2];H[a+20>>2]=b;b=H[c+20>>2];H[a+24>>2]=H[c+16>>2];H[a+28>>2]=b;H[a+40>>2]=0;H[a+32>>2]=0;H[a+36>>2]=0;b=H[c+28>>2];e=H[c+24>>2];if((b|0)!=(e|0)){b=b-e|0;if((b|0)<0){break c}f=ra(b);H[a+32>>2]=f;H[a+40>>2]=f+(b>>2<<2);l=a,m=sa(f,e,b)+b|0,H[l+36>>2]=m}b=H[d+4>>2];H[a+44>>2]=H[d>>2];H[a+48>>2]=b;b=H[d+12>>2];H[a+52>>2]=H[d+8>>2];H[a+56>>2]=b;H[a+60>>2]=0;H[a+64>>2]=0;H[a>>2]=3512;H[a+68>>2]=0;H[a+72>>2]=0;H[a+76>>2]=0;H[a+80>>2]=0;H[a+84>>2]=0;H[a+88>>2]=0;H[a+92>>2]=0;H[a+96>>2]=0;H[a+100>>2]=0;H[a+104>>2]=0;H[a+108>>2]=0;H[a+128>>2]=0;H[a+132>>2]=0;H[a+120>>2]=0;H[a+112>>2]=0;H[a+116>>2]=0;H[a+136>>2]=0;H[a+140>>2]=0;H[a+144>>2]=0;H[a+160>>2]=0;H[a+152>>2]=0;H[a+156>>2]=0;break e;case 4:a=ra(104);H[a+4>>2]=f;H[a>>2]=3456;b=H[c+4>>2];H[a+8>>2]=H[c>>2];H[a+12>>2]=b;b=H[c+12>>2];H[a+16>>2]=H[c+8>>2];H[a+20>>2]=b;b=H[c+20>>2];H[a+24>>2]=H[c+16>>2];H[a+28>>2]=b;H[a+40>>2]=0;H[a+32>>2]=0;H[a+36>>2]=0;b=H[c+28>>2];e=H[c+24>>2];if((b|0)!=(e|0)){b=b-e|0;if((b|0)<0){break c}f=ra(b);H[a+32>>2]=f;H[a+40>>2]=f+(b>>2<<2);l=a,m=sa(f,e,b)+b|0,H[l+36>>2]=m}b=H[d+4>>2];H[a+44>>2]=H[d>>2];H[a+48>>2]=b;b=H[d+12>>2];H[a+52>>2]=H[d+8>>2];H[a+56>>2]=b;H[a+84>>2]=0;H[a+76>>2]=0;H[a+80>>2]=0;H[a+60>>2]=0;H[a+64>>2]=0;H[a>>2]=3760;b=H[d+4>>2];H[a+88>>2]=H[d>>2];H[a+92>>2]=b;b=H[d+12>>2];H[a+96>>2]=H[d+8>>2];H[a+100>>2]=b;break e;case 5:break f;default:break e}}a=ra(144);H[a+4>>2]=f;H[a>>2]=3456;b=H[c+4>>2];H[a+8>>2]=H[c>>2];H[a+12>>2]=b;b=H[c+12>>2];H[a+16>>2]=H[c+8>>2];H[a+20>>2]=b;b=H[c+20>>2];H[a+24>>2]=H[c+16>>2];H[a+28>>2]=b;H[a+40>>2]=0;H[a+32>>2]=0;H[a+36>>2]=0;g:{h:{b=H[c+28>>2];e=H[c+24>>2];if((b|0)!=(e|0)){e=b-e|0;if((e|0)<0){break h}b=ra(e);H[a+32>>2]=b;H[a+36>>2]=b;H[a+40>>2]=b+(e>>2<<2);f=H[c+24>>2];e=H[c+28>>2]-f|0;if((e|0)>0){b=sa(b,f,e)+e|0}H[a+36>>2]=b}H[a>>2]=3400;b=H[d+4>>2];H[a+44>>2]=H[d>>2];H[a+48>>2]=b;b=H[d+12>>2];H[a+52>>2]=H[d+8>>2];H[a+56>>2]=b;b=a- -64|0;H[b>>2]=0;H[b+4>>2]=0;H[a+60>>2]=4624;H[a>>2]=3996;b=H[d+4>>2];H[a+72>>2]=H[d>>2];H[a+76>>2]=b;b=H[d+12>>2];H[a+80>>2]=H[d+8>>2];H[a+84>>2]=b;H[a+104>>2]=1065353216;H[a+108>>2]=-1;H[a+96>>2]=-1;H[a+100>>2]=-1;H[a+88>>2]=1;H[a+92>>2]=-1;H[a+60>>2]=4232;H[a+112>>2]=0;H[a+116>>2]=0;H[a+136>>2]=0;H[a+140>>2]=0;H[a+128>>2]=0;H[a+132>>2]=0;H[a+120>>2]=0;H[a+124>>2]=0;break g}ua();X()}break e}d=a;break d}d=H[e+56>>2];H[g+20>>2]=j;H[g+16>>2]=d;H[g+28>>2]=a;H[g+24>>2]=a+12;d=g+16|0;a=0;i:{j:{switch(b-1|0){case 0:a=ra(60);H[a+4>>2]=f;H[a>>2]=3456;b=H[c+4>>2];H[a+8>>2]=H[c>>2];H[a+12>>2]=b;b=H[c+12>>2];H[a+16>>2]=H[c+8>>2];H[a+20>>2]=b;b=H[c+20>>2];H[a+24>>2]=H[c+16>>2];H[a+28>>2]=b;H[a+40>>2]=0;H[a+32>>2]=0;H[a+36>>2]=0;b=H[c+28>>2];e=H[c+24>>2];if((b|0)!=(e|0)){b=b-e|0;if((b|0)<0){break c}f=ra(b);H[a+32>>2]=f;H[a+40>>2]=f+(b>>2<<2);l=a,m=sa(f,e,b)+b|0,H[l+36>>2]=m}b=H[d+4>>2];H[a+44>>2]=H[d>>2];H[a+48>>2]=b;b=H[d+12>>2];H[a+52>>2]=H[d+8>>2];H[a+56>>2]=b;H[a>>2]=4652;break i;case 3:a=ra(168);H[a+4>>2]=f;H[a>>2]=3456;b=H[c+4>>2];H[a+8>>2]=H[c>>2];H[a+12>>2]=b;b=H[c+12>>2];H[a+16>>2]=H[c+8>>2];H[a+20>>2]=b;b=H[c+20>>2];H[a+24>>2]=H[c+16>>2];H[a+28>>2]=b;H[a+40>>2]=0;H[a+32>>2]=0;H[a+36>>2]=0;b=H[c+28>>2];e=H[c+24>>2];if((b|0)!=(e|0)){b=b-e|0;if((b|0)<0){break c}f=ra(b);H[a+32>>2]=f;H[a+40>>2]=f+(b>>2<<2);l=a,m=sa(f,e,b)+b|0,H[l+36>>2]=m}b=H[d+4>>2];H[a+44>>2]=H[d>>2];H[a+48>>2]=b;b=H[d+12>>2];H[a+52>>2]=H[d+8>>2];H[a+56>>2]=b;H[a+60>>2]=0;H[a+64>>2]=0;H[a>>2]=5076;H[a+68>>2]=0;H[a+72>>2]=0;H[a+76>>2]=0;H[a+80>>2]=0;H[a+84>>2]=0;H[a+88>>2]=0;H[a+92>>2]=0;H[a+96>>2]=0;H[a+100>>2]=0;H[a+104>>2]=0;H[a+108>>2]=0;H[a+128>>2]=0;H[a+132>>2]=0;H[a+120>>2]=0;H[a+112>>2]=0;H[a+116>>2]=0;H[a+136>>2]=0;H[a+140>>2]=0;H[a+144>>2]=0;H[a+160>>2]=0;H[a+152>>2]=0;H[a+156>>2]=0;break i;case 4:a=ra(104);H[a+4>>2]=f;H[a>>2]=3456;b=H[c+4>>2];H[a+8>>2]=H[c>>2];H[a+12>>2]=b;b=H[c+12>>2];H[a+16>>2]=H[c+8>>2];H[a+20>>2]=b;b=H[c+20>>2];H[a+24>>2]=H[c+16>>2];H[a+28>>2]=b;H[a+40>>2]=0;H[a+32>>2]=0;H[a+36>>2]=0;b=H[c+28>>2];e=H[c+24>>2];if((b|0)!=(e|0)){b=b-e|0;if((b|0)<0){break c}f=ra(b);H[a+32>>2]=f;H[a+40>>2]=f+(b>>2<<2);l=a,m=sa(f,e,b)+b|0,H[l+36>>2]=m}b=H[d+4>>2];H[a+44>>2]=H[d>>2];H[a+48>>2]=b;b=H[d+12>>2];H[a+52>>2]=H[d+8>>2];H[a+56>>2]=b;H[a+84>>2]=0;H[a+76>>2]=0;H[a+80>>2]=0;H[a+60>>2]=0;H[a+64>>2]=0;H[a>>2]=5312;b=H[d+4>>2];H[a+88>>2]=H[d>>2];H[a+92>>2]=b;b=H[d+12>>2];H[a+96>>2]=H[d+8>>2];H[a+100>>2]=b;break i;case 5:break j;default:break i}}a=ra(144);H[a+4>>2]=f;H[a>>2]=3456;b=H[c+4>>2];H[a+8>>2]=H[c>>2];H[a+12>>2]=b;b=H[c+12>>2];H[a+16>>2]=H[c+8>>2];H[a+20>>2]=b;b=H[c+20>>2];H[a+24>>2]=H[c+16>>2];H[a+28>>2]=b;H[a+40>>2]=0;H[a+32>>2]=0;H[a+36>>2]=0;k:{l:{b=H[c+28>>2];e=H[c+24>>2];if((b|0)!=(e|0)){e=b-e|0;if((e|0)<0){break l}b=ra(e);H[a+32>>2]=b;H[a+36>>2]=b;H[a+40>>2]=b+(e>>2<<2);f=H[c+24>>2];e=H[c+28>>2]-f|0;if((e|0)>0){b=sa(b,f,e)+e|0}H[a+36>>2]=b}H[a>>2]=5020;b=H[d+4>>2];H[a+44>>2]=H[d>>2];H[a+48>>2]=b;b=H[d+12>>2];H[a+52>>2]=H[d+8>>2];H[a+56>>2]=b;b=a- -64|0;H[b>>2]=0;H[b+4>>2]=0;H[a+60>>2]=6120;H[a>>2]=5536;b=H[d+4>>2];H[a+72>>2]=H[d>>2];H[a+76>>2]=b;b=H[d+12>>2];H[a+80>>2]=H[d+8>>2];H[a+84>>2]=b;H[a+104>>2]=1065353216;H[a+108>>2]=-1;H[a+96>>2]=-1;H[a+100>>2]=-1;H[a+88>>2]=1;H[a+92>>2]=-1;H[a+60>>2]=5756;H[a+112>>2]=0;H[a+116>>2]=0;H[a+136>>2]=0;H[a+140>>2]=0;H[a+128>>2]=0;H[a+132>>2]=0;H[a+120>>2]=0;H[a+124>>2]=0;break k}ua();X()}break i}d=a}da=g+32|0;break b}ua();X()}if(d){break a}}d=ra(44);H[d+4>>2]=k;H[d>>2]=3456;a=H[c+4>>2];H[d+8>>2]=H[c>>2];H[d+12>>2]=a;a=H[c+12>>2];H[d+16>>2]=H[c+8>>2];H[d+20>>2]=a;a=H[c+20>>2];H[d+24>>2]=H[c+16>>2];H[d+28>>2]=a;H[d+40>>2]=0;H[d+32>>2]=0;H[d+36>>2]=0;m:{a=H[c+28>>2];b=H[c+24>>2];if((a|0)!=(b|0)){a=a-b|0;if((a|0)<0){break m}c=ra(a);H[d+32>>2]=c;H[d+40>>2]=c+(a>>2<<2);l=d,m=sa(c,b,a)+a|0,H[l+36>>2]=m}H[d>>2]=6148;break a}ua();X()}a=H[h+32>>2];if(a){H[h+36>>2]=a;qa(a)}da=h+48|0;return d|0}function pf(a,b){var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=O(0),r=0,s=0,t=O(0);f=da-80|0;da=f;H[f+56>>2]=0;H[f+60>>2]=0;H[f+48>>2]=0;H[f+52>>2]=0;H[f+64>>2]=1065353216;c=H[a+80>>2];H[f+24>>2]=0;H[f+16>>2]=0;H[f+20>>2]=0;a:{if(c){if(c>>>0>=1073741824){break a}d=c<<2;g=ra(d);H[f+16>>2]=g;c=d+g|0;H[f+24>>2]=c;ta(g,0,d);H[f+20>>2]=c;while(1){c=H[H[b>>2]>>2];d=H[b+48>>2]+zl(H[b+40>>2],H[b+44>>2],s,0)|0;c=c+d|0;d=I[c+4|0]|I[c+5|0]<<8|(I[c+6|0]<<16|I[c+7|0]<<24);c=I[c|0]|I[c+1|0]<<8|(I[c+2|0]<<16|I[c+3|0]<<24);H[f+32>>2]=c;H[f+36>>2]=d;H[f+40>>2]=c;H[f+44>>2]=d;d=0;n=H[f+52>>2];b:{if(!n){break b}j=H[f+48>>2];m=J[f+38>>1]^(J[f+36>>1]^(J[f+34>>1]^(J[f+32>>1]^318)+239)+239)+239;c=m&n-1;e=Cl(n);c:{if(e>>>0<=1){break c}c=m;if(c>>>0>>0){break c}c=(m>>>0)%(n>>>0)|0}h=j;j=c;c=H[h+(c<<2)>>2];if(!c){break b}c=H[c>>2];if(!c){break b}d:{if(e>>>0>=2){o=J[f+32>>1];k=J[f+34>>1];i=J[f+36>>1];h=J[f+38>>1];while(1){e=H[c+4>>2];e:{if((e|0)!=(m|0)){if(e>>>0>=n>>>0){e=(e>>>0)%(n>>>0)|0}if((e|0)!=(j|0)){break b}break e}e=J[c+8>>1];f:{if((e|0)!=(o|0)){e=(e|0)==(o|0);break f}e=J[c+10>>1];if((e|0)!=(k|0)){e=(e|0)==(k|0);break f}e=J[c+12>>1];if((e|0)!=(i|0)){e=(e|0)==(i|0);break f}e=(h|0)==J[c+14>>1]}if(e){break d}}c=H[c>>2];if(c){continue}break}break b}i=n-1|0;n=J[f+32>>1];o=J[f+34>>1];k=J[f+36>>1];h=J[f+38>>1];while(1){e=H[c+4>>2];g:{if((e|0)!=(m|0)){if((j|0)!=(e&i)){break b}break g}e=J[c+8>>1];if((e|0)!=(n|0)){if((e|0)!=(n|0)){break g}break d}e=J[c+10>>1];if((e|0)!=(o|0)){if((e|0)!=(o|0)){break g}break d}e=J[c+12>>1];if((e|0)!=(k|0)){if((e|0)!=(k|0)){break g}break d}if((h|0)==J[c+14>>1]){break d}}c=H[c>>2];if(c){continue}break}break b}d=c}h:{if(d){H[(s<<2)+g>>2]=H[d+16>>2];break h}H[f+8>>2]=r;c=H[f+36>>2];H[f>>2]=H[f+32>>2];H[f+4>>2]=c;c=0;m=J[f+6>>1]^(J[f+4>>1]^(J[f+2>>1]^(J[f>>1]^318)+239)+239)+239;i:{j:{l=f+48|0;e=H[l+4>>2];if(!e){break j}c=e-1|0;if(c&e){c=m;if(e>>>0<=c>>>0){c=(m>>>0)%(e>>>0)|0}g=H[H[l>>2]+(c<<2)>>2];if(!g){break j}k=J[f>>1];i=J[f+2>>1];h=J[f+4>>1];j=J[f+6>>1];while(1){g=H[g>>2];if(!g){break j}d=H[g+4>>2];if((d|0)!=(m|0)){if(d>>>0>=e>>>0){d=(d>>>0)%(e>>>0)|0}if((c|0)!=(d|0)){break j}}d=J[g+8>>1];k:{if((d|0)!=(k|0)){d=(d|0)==(k|0);break k}d=J[g+10>>1];if((d|0)!=(i|0)){d=(d|0)==(i|0);break k}d=J[g+12>>1];if((d|0)!=(h|0)){d=(d|0)==(h|0);break k}d=(j|0)==J[g+14>>1]}if(!d){continue}break}c=0;break i}c=c&m;g=H[H[l>>2]+(c<<2)>>2];if(!g){break j}h=e-1|0;o=J[f>>1];k=J[f+2>>1];i=J[f+4>>1];j=J[f+6>>1];while(1){g=H[g>>2];if(!g){break j}d=H[g+4>>2];if((d|0)!=(m|0)&(d&h)!=(c|0)){break j}d=J[g+8>>1];l:{if((d|0)!=(o|0)){d=(d|0)==(o|0);break l}d=J[g+10>>1];if((d|0)!=(k|0)){d=(d|0)==(k|0);break l}d=J[g+12>>1];if((d|0)!=(i|0)){d=(d|0)==(i|0);break l}d=(j|0)==J[g+14>>1]}if(!d){continue}break}c=0;break i}g=ra(20);d=H[f+4>>2];H[g+8>>2]=H[f>>2];H[g+12>>2]=d;d=H[f+8>>2];H[g+4>>2]=m;H[g+16>>2]=d;H[g>>2]=0;q=O(H[l+12>>2]+1>>>0);t=L[l+16>>2];m:{if(q>O(t*O(e>>>0))?0:e){break m}c=2;d=(e-1&e)!=0|e>>>0<3|e<<1;q=O(U(O(q/t)));n:{if(q=O(0)){j=~~q>>>0;break n}j=0}d=d>>>0>j>>>0?d:j;o:{if((d|0)==1){break o}if(!(d&d-1)){c=d;break o}c=Ja(d);e=H[l+4>>2]}p:{if(c>>>0<=e>>>0){if(c>>>0>=e>>>0){break p}j=e>>>0<3;q=O(U(O(O(K[l+12>>2])/L[l+16>>2])));q:{if(q=O(0)){d=~~q>>>0;break q}d=0}r:{s:{if(j){break s}if(Cl(e)>>>0>1){break s}d=d>>>0<2?d:1<<32-Q(d-1|0);break r}d=Ja(d)}c=c>>>0>d>>>0?c:d;if(e>>>0<=c>>>0){break p}}d=0;h=0;i=c;t:{u:{v:{if(c){if(i>>>0>=1073741824){break v}c=ra(i<<2);e=H[l>>2];H[l>>2]=c;if(e){qa(e)}H[l+4>>2]=i;if(i-1>>>0>=3){c=i&-4;e=0;while(1){j=d<<2;H[j+H[l>>2]>>2]=0;H[H[l>>2]+(j|4)>>2]=0;H[H[l>>2]+(j|8)>>2]=0;H[H[l>>2]+(j|12)>>2]=0;d=d+4|0;e=e+4|0;if((c|0)!=(e|0)){continue}break}}c=i&3;if(c){while(1){H[H[l>>2]+(d<<2)>>2]=0;d=d+1|0;h=h+1|0;if((c|0)!=(h|0)){continue}break}}e=H[l+8>>2];if(!e){break t}d=l+8|0;j=H[e+4>>2];c=i-1|0;if(!(c&i)){break u}j=j>>>0>=i>>>0?(j>>>0)%(i>>>0)|0:j;H[H[l>>2]+(j<<2)>>2]=d;c=H[e>>2];if(!c){break t}while(1){h=H[c+4>>2];if(i>>>0<=h>>>0){h=(h>>>0)%(i>>>0)|0}w:{if((h|0)==(j|0)){e=c;break w}d=c;n=h<<2;k=n+H[l>>2]|0;if(!H[k>>2]){H[k>>2]=e;e=c;j=h;break w}while(1){h=d;d=H[d>>2];if(d){o=J[c+8>>1];k=J[d+8>>1];x:{if((o|0)!=(k|0)){k=(k|0)==(o|0);break x}o=J[c+10>>1];k=J[d+10>>1];if((o|0)!=(k|0)){k=(k|0)==(o|0);break x}o=J[c+12>>1];k=J[d+12>>1];if((o|0)!=(k|0)){k=(k|0)==(o|0);break x}k=J[c+14>>1]==J[d+14>>1]}if(k){continue}}break}H[e>>2]=d;H[h>>2]=H[H[n+H[l>>2]>>2]>>2];H[H[n+H[l>>2]>>2]>>2]=c}c=H[e>>2];if(c){continue}break}break t}c=H[l>>2];H[l>>2]=0;if(c){qa(c)}H[l+4>>2]=0;break t}ya();X()}j=c&j;H[H[l>>2]+(j<<2)>>2]=d;c=H[e>>2];if(!c){break t}o=i-1|0;while(1){h=o&H[c+4>>2];y:{if((h|0)==(j|0)){e=c;break y}d=c;n=h<<2;i=n+H[l>>2]|0;if(H[i>>2]){while(1){h=d;d=H[d>>2];if(d){k=J[c+8>>1];i=J[d+8>>1];z:{if((k|0)!=(i|0)){i=(i|0)==(k|0);break z}k=J[c+10>>1];i=J[d+10>>1];if((k|0)!=(i|0)){i=(i|0)==(k|0);break z}k=J[c+12>>1];i=J[d+12>>1];if((k|0)!=(i|0)){i=(i|0)==(k|0);break z}i=J[c+14>>1]==J[d+14>>1]}if(i){continue}}break}H[e>>2]=d;H[h>>2]=H[H[n+H[l>>2]>>2]>>2];H[H[n+H[l>>2]>>2]>>2]=c;break y}H[i>>2]=e;e=c;j=h}c=H[e>>2];if(c){continue}break}}}e=H[l+4>>2];c=e-1|0;if(!(c&e)){c=c&m;break m}if(e>>>0>m>>>0){c=m;break m}c=(m>>>0)%(e>>>0)|0}d=H[l>>2]+(c<<2)|0;c=H[d>>2];A:{B:{if(!c){c=l+8|0;H[g>>2]=H[c>>2];H[l+8>>2]=g;H[d>>2]=c;c=H[g>>2];if(!c){break A}c=H[c+4>>2];d=e-1|0;C:{if(!(d&e)){c=c&d;break C}if(c>>>0>>0){break C}c=(c>>>0)%(e>>>0)|0}c=H[l>>2]+(c<<2)|0;break B}H[g>>2]=H[c>>2]}H[c>>2]=g}H[l+12>>2]=H[l+12>>2]+1;c=1}F[f+76|0]=c;H[f+72>>2]=g;c=H[a+40>>2];sa(H[H[a>>2]>>2]+N(c,r)|0,f+40|0,c);g=H[f+16>>2];H[g+(s<<2)>>2]=r;r=r+1|0}c=s+1|0;p=c?p:p+1|0;s=c;c=H[a+80>>2];if(!p&c>>>0>s>>>0){continue}break}if((c|0)!=(r|0)){D:{if(!I[a+84|0]){b=H[a+72>>2];h=H[a+68>>2];if((b|0)==(h|0)){break D}b=b-h>>2;c=b>>>0>1?b:1;j=c&3;d=0;b=0;if(c-1>>>0>=3){p=c&-4;e=0;while(1){m=b<<2;c=m+h|0;H[c>>2]=H[(H[c>>2]<<2)+g>>2];c=h+(m|4)|0;H[c>>2]=H[(H[c>>2]<<2)+g>>2];c=h+(m|8)|0;H[c>>2]=H[(H[c>>2]<<2)+g>>2];c=h+(m|12)|0;H[c>>2]=H[(H[c>>2]<<2)+g>>2];b=b+4|0;e=e+4|0;if((p|0)!=(e|0)){continue}break}}if(!j){break D}while(1){c=h+(b<<2)|0;H[c>>2]=H[(H[c>>2]<<2)+g>>2];b=b+1|0;d=d+1|0;if((j|0)!=(d|0)){continue}break}break D}F[a+84|0]=0;e=a+68|0;b=H[a+68>>2];d=H[a+72>>2]-b>>2;E:{if(d>>>0>>0){La(e,c-d|0,2176);c=H[a+80>>2];break E}if(c>>>0>=d>>>0){break E}H[a+72>>2]=b+(c<<2)}if(!c){break D}h=H[e>>2];d=0;b=0;if(c-1>>>0>=3){j=c&-4;e=0;while(1){m=b<<2;H[m+h>>2]=H[g+m>>2];p=m|4;H[p+h>>2]=H[g+p>>2];p=m|8;H[p+h>>2]=H[g+p>>2];p=m|12;H[p+h>>2]=H[g+p>>2];b=b+4|0;e=e+4|0;if((j|0)!=(e|0)){continue}break}}e=c&3;if(!e){break D}while(1){c=b<<2;H[c+h>>2]=H[c+g>>2];b=b+1|0;d=d+1|0;if((e|0)!=(d|0)){continue}break}}H[a+80>>2]=r}qa(g)}b=H[f+56>>2];if(b){while(1){a=H[b>>2];qa(b);b=a;if(b){continue}break}}a=H[f+48>>2];H[f+48>>2]=0;if(a){qa(a)}da=f+80|0;return r}ua();X()}function qe(a,b,c,d,e){var f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,I=0,J=0,L=0,M=0,O=0;r=da-32|0;da=r;H[a>>2]=H[d>>2];d=H[c>>2]-H[b>>2]|0;H[a+4>>2]=d;n=H[e+20>>2];if(!H[e+16>>2]&(n|0)<=0|(n|0)<0){d=a+4|0;wa(e,H[e+4>>2],a,d);n=H[e+20>>2];if(!H[e+16>>2]&(n|0)<=0|(n|0)<0){wa(e,H[e+4>>2],d,a+8|0)}d=H[d>>2]}if(d){D=a+12|0;Ca(D);E=a+44|0;d=E;H[d+12>>2]=0;H[d+16>>2]=0;H[d+4>>2]=H[d>>2];F=a- -64|0;d=F;H[d+12>>2]=0;H[d+16>>2]=0;H[d+4>>2]=H[d>>2];G=a+84|0;d=G;H[d+12>>2]=0;H[d+16>>2]=0;H[d+4>>2]=H[d>>2];H[r+24>>2]=H[b+8>>2];d=H[b+4>>2];H[r+16>>2]=H[b>>2];H[r+20>>2]=d;H[r+8>>2]=H[c+8>>2];b=H[c+4>>2];H[r>>2]=H[c>>2];H[r+4>>2]=b;b=0;g=da-32|0;da=g;d=a;i=H[a+8>>2];H[g+16>>2]=0;H[g+8>>2]=0;H[g+12>>2]=0;a:{b:{if(i){if(i>>>0>=1073741824){break b}a=i<<2;b=ra(a);H[g+8>>2]=b;f=a+b|0;H[g+16>>2]=f;ta(b,0,a);H[g+12>>2]=f}a=H[d+140>>2];c=H[a>>2];if(c){H[a+4>>2]=c;qa(c);H[a+8>>2]=0;H[a>>2]=0;H[a+4>>2]=0;i=H[d+8>>2];f=H[g+12>>2];b=H[g+8>>2]}H[a+4>>2]=f;H[a>>2]=b;H[a+8>>2]=H[g+16>>2];b=0;H[g+16>>2]=0;H[g+8>>2]=0;H[g+12>>2]=0;a=0;c:{if(i){if(i>>>0>=1073741824){break c}c=i<<2;a=ra(c);H[g+8>>2]=a;b=a+c|0;H[g+16>>2]=b;ta(a,0,c);H[g+12>>2]=b}c=H[d+152>>2];n=H[c>>2];if(n){H[c+4>>2]=n;qa(n);H[c+8>>2]=0;H[c>>2]=0;H[c+4>>2]=0;b=H[g+12>>2];a=H[g+8>>2]}H[c+4>>2]=b;H[c>>2]=a;H[c+8>>2]=H[g+16>>2];x=H[r+20>>2];v=H[r+24>>2];z=H[r+4>>2];A=H[r+8>>2];b=H[r>>2];c=H[r+16>>2];H[g+24>>2]=0;H[g+28>>2]=0;H[g+16>>2]=0;H[g+20>>2]=0;H[g+8>>2]=0;H[g+12>>2]=0;gb(g+8|0);a=H[g+24>>2]+H[g+28>>2]|0;n=(a>>>0)/113|0;a=H[H[g+12>>2]+(n<<2)>>2]+N(a-N(n,113)|0,36)|0;H[a+32>>2]=0;H[a+28>>2]=b-c;H[a+24>>2]=0;H[a+16>>2]=z;H[a+20>>2]=A;H[a+12>>2]=b;H[a+4>>2]=x;H[a+8>>2]=v;H[a>>2]=c;i=H[g+28>>2]+1|0;H[g+28>>2]=i;if(i){J=v&-4;I=v&3;L=d+44|0;l=d+12|0;M=d+84|0;O=v-1>>>0<3;while(1){b=H[g+12>>2];o=H[g+24>>2];m=i-1|0;a=o+m|0;c=(a>>>0)/113|0;a=H[b+(c<<2)>>2]+N(a-N(c,113)|0,36)|0;C=H[a+32>>2];f=H[a+24>>2];n=H[a+12>>2];c=H[a>>2];H[g+28>>2]=m;a=H[g+16>>2];if((((a|0)==(b|0)?0:N(a-b>>2,113)-1|0)-(i+o|0)|0)+1>>>0>=226){qa(H[a-4>>2]);H[g+16>>2]=H[g+16>>2]-4}b=H[d>>2];i=(f|0)==(H[d+8>>2]-1|0)?0:f+1|0;o=i<<2;B=N(C,12);m=B+H[d+152>>2]|0;f=H[o+H[m>>2]>>2];d:{e:{if((b|0)==(f|0)){break e}f:{g:{p=n-c|0;if(p>>>0<=2){f=H[d+128>>2];H[f>>2]=i;b=1;a=H[d+8>>2];if(a>>>0>1){break g}break f}m=H[d+140>>2];a=m+B|0;j=m;m=B+12|0;cb(j+m|0,H[a>>2],H[a+4>>2]);a=H[m+H[d+140>>2]>>2]+o|0;m=H[a>>2]+(1<>2]=m;a=c;h:{if((n|0)==(a|0)){break h}q=H[x+24>>2];b=c;a=n;if(!v){if(m>>>0>K[o+q>>2]){break h}while(1){a=a-1|0;if((b|0)==(a|0)){a=b;break h}if(m>>>0<=K[(H[z+24>>2]+o|0)+(N(a,A)<<2)>>2]){continue}b=b+1|0;if((b|0)!=(a|0)){continue}break}break h}while(1){s=q+(N(b,v)<<2)|0;if(m>>>0>K[s+o>>2]){b=b+1|0;if((b|0)!=(a|0)){continue}break h}while(1){a=a-1|0;if((b|0)==(a|0)){a=b;break h}h=H[z+24>>2]+(N(a,A)<<2)|0;if(m>>>0<=K[h+o>>2]){continue}break}t=0;f=0;u=0;if(!O){while(1){k=f<<2;j=k+s|0;w=H[j>>2];y=j;j=h+k|0;H[y>>2]=H[j>>2];H[j>>2]=w;j=k|4;w=j+s|0;y=H[w>>2];j=h+j|0;H[w>>2]=H[j>>2];H[j>>2]=y;j=k|8;w=j+s|0;y=H[w>>2];j=h+j|0;H[w>>2]=H[j>>2];H[j>>2]=y;k=k|12;j=k+s|0;w=H[j>>2];k=h+k|0;H[j>>2]=H[k>>2];H[k>>2]=w;f=f+4|0;u=u+4|0;if((J|0)!=(u|0)){continue}break}}if(I){while(1){k=f<<2;u=k+s|0;j=H[u>>2];k=h+k|0;H[u>>2]=H[k>>2];H[k>>2]=j;f=f+1|0;t=t+1|0;if((I|0)!=(t|0)){continue}break}}b=b+1|0;if((b|0)!=(a|0)){continue}break}}m=a-c|0;s=n-a|0;if((m|0)!=(s|0)){vc(M,m>>>0>>0)}b=H[l>>2];f=H[b+12>>2];j=H[b+8>>2];h=(p>>>1|0)-(m>>>0>>0?m:s)|0;h=h<<8&16711680|h<<24|(h>>>8&65280|h>>>24);h=h>>>4&252645135|(h&252645135)<<4;h=h>>>2&858993459|(h&858993459)<<2;t=h>>>1&1431655765|(h&1431655765)<<1;h=Q(p)^31;q=32-h|0;k=t>>>q|0;t=Cl(k);p=j+t|0;H[b+8>>2]=p;H[b+12>>2]=p>>>0>>0?f+1|0:f;f=h-t|0;t=f;p=f+H[b>>2]|0;f=H[b+4>>2]+(f>>31)|0;H[b>>2]=p;H[b+4>>2]=p>>>0>>0?f+1|0:f;i:{j:{k:{l:{b=H[l+28>>2];t=32-b|0;m:{if((t|0)>=(h|0)){f=b+h|0;H[l+28>>2]=f;h=-1>>>q<>2]&(h^-1)|h&k<>2]=p;if((f|0)!=32){break i}b=H[l+16>>2];if((b|0)!=H[l+20>>2]){H[b>>2]=p;H[l+16>>2]=b+4;b=0;f=0;break m}h=H[l+12>>2];f=b-h|0;q=f>>2;b=q+1|0;if(b>>>0>=1073741824){break l}k=f>>1;k=f>>>0<2147483644?b>>>0>>0?k:b:1073741823;if(k){if(k>>>0>=1073741824){break k}b=ra(k<<2)}else{b=0}q=b+(q<<2)|0;H[q>>2]=p;if((f|0)>0){sa(b,h,f)}H[l+20>>2]=b+(k<<2);H[l+16>>2]=q+4;H[l+12>>2]=b;b=0;if(!h){f=0;break m}qa(h);f=0;break m}u=H[l+24>>2]&(-1<>2]=u;b=H[l+16>>2];n:{if((b|0)!=H[l+20>>2]){H[b>>2]=u;H[l+16>>2]=b+4;break n}p=H[l+12>>2];f=b-p|0;j=f>>2;b=j+1|0;if(b>>>0>=1073741824){break j}q=f>>1;q=f>>>0<2147483644?b>>>0>>0?q:b:1073741823;if(q){if(q>>>0>=1073741824){break k}b=ra(q<<2)}else{b=0}j=b+(j<<2)|0;H[j>>2]=u;if((f|0)>0){sa(b,p,f)}H[l+20>>2]=b+(q<<2);H[l+16>>2]=j+4;H[l+12>>2]=b;if(!p){break n}qa(p)}f=h-t|0;b=-1>>>32-f&k>>>t}H[l+28>>2]=f;H[l+24>>2]=b;break i}ua();X()}ya();X()}ua();X()}j=o;b=H[d+152>>2];f=b+B|0;o=H[f>>2];h=j+o|0;H[h>>2]=H[h>>2]+1;h=C+1|0;cb(b+N(h,12)|0,o,H[f+4>>2]);if((a|0)!=(c|0)){b=H[g+28>>2]+H[g+24>>2]|0;o=H[g+16>>2];f=H[g+12>>2];if((b|0)==(((f|0)==(o|0)?0:N(o-f>>2,113)-1|0)|0)){gb(g+8|0);f=H[g+12>>2];b=H[g+24>>2]+H[g+28>>2]|0}j=f;f=(b>>>0)/113|0;b=H[j+(f<<2)>>2]+N(b-N(f,113)|0,36)|0;H[b+32>>2]=C;H[b+28>>2]=m;H[b+24>>2]=i;H[b+16>>2]=x;H[b+12>>2]=a;H[b+4>>2]=x;H[b+8>>2]=v;H[b>>2]=c;H[b+20>>2]=v;H[g+28>>2]=H[g+28>>2]+1}if((a|0)==(n|0)){break e}f=H[g+28>>2]+H[g+24>>2]|0;o=H[g+16>>2];b=H[g+12>>2];if((f|0)==(((b|0)==(o|0)?0:N(o-b>>2,113)-1|0)|0)){gb(g+8|0);f=H[g+24>>2]+H[g+28>>2]|0;j=H[g+12>>2]}else{j=b}b=(f>>>0)/113|0;b=H[j+(b<<2)>>2]+N(f-N(b,113)|0,36)|0;H[b+32>>2]=h;H[b+28>>2]=s;H[b+24>>2]=i;H[b+16>>2]=z;H[b+20>>2]=A;H[b+12>>2]=n;H[b+4>>2]=x;H[b>>2]=a;H[b+8>>2]=v;i=H[g+28>>2]+1|0;H[g+28>>2]=i;break d}while(1){i=(a-1|0)==(i|0)?0:i+1|0;H[f+(b<<2)>>2]=i;a=H[d+8>>2];b=b+1|0;if(a>>>0>b>>>0){continue}break}}if(!a|(c|0)==(n|0)){break e}f=0;b=1;while(1){i=0;o:{if(!b){b=0;break o}o=H[x+24>>2]+(N(H[x+4>>2],c+f|0)<<2)|0;while(1){b=H[d>>2];s=H[H[d+128>>2]+(i<<2)>>2]<<2;h=H[s+H[m>>2]>>2];if((b|0)!=(h|0)){Lb(L,b-h|0,H[o+s>>2]);a=H[d+8>>2]}b=a;i=i+1|0;if(b>>>0>i>>>0){continue}break}}f=f+1|0;if((p|0)!=(f|0)){continue}break}}i=H[g+28>>2]}if(i){continue}break}H[r+16>>2]=c;H[r>>2]=n}H[g+28>>2]=0;c=H[g+16>>2];i=H[g+12>>2];a=c-i|0;if(a>>>0>=9){while(1){qa(H[i>>2]);i=H[g+12>>2]+4|0;H[g+12>>2]=i;c=H[g+16>>2];a=c-i|0;if(a>>>0>8){continue}break}}b=56;p:{switch((a>>>2|0)-1|0){case 1:b=113;case 0:H[g+24>>2]=b;break;default:break p}}q:{if((c|0)==(i|0)){break q}while(1){qa(H[i>>2]);i=i+4|0;if((i|0)!=(c|0)){continue}break}a=H[g+16>>2];b=H[g+12>>2];if((a|0)==(b|0)){break q}H[g+16>>2]=a+((b-a|0)+3&-4)}a=H[g+8>>2];if(a){qa(a)}da=g+32|0;break a}ua();X()}ua();X()}Ba(D,e);fb(E,e);fb(F,e);fb(G,e)}da=r+32|0;return 1}function Ad(a,b){var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=O(0),q=0,r=0,s=0,t=0,u=O(0);g=da-96|0;da=g;H[g+72>>2]=0;H[g+76>>2]=0;H[g+64>>2]=0;H[g+68>>2]=0;H[g+80>>2]=1065353216;c=H[a+80>>2];H[g+24>>2]=0;H[g+16>>2]=0;H[g+20>>2]=0;a:{if(c){if(c>>>0>=1073741824){break a}e=c<<2;n=ra(e);H[g+16>>2]=n;c=e+n|0;H[g+24>>2]=c;ta(n,0,e);H[g+20>>2]=c;while(1){c=H[H[b>>2]>>2];d=H[b+48>>2]+zl(H[b+40>>2],H[b+44>>2],s,0)|0;d=c+d|0;H[g+56>>2]=I[d+8|0]|I[d+9|0]<<8|(I[d+10|0]<<16|I[d+11|0]<<24);c=I[d+4|0]|I[d+5|0]<<8|(I[d+6|0]<<16|I[d+7|0]<<24);H[g+48>>2]=I[d|0]|I[d+1|0]<<8|(I[d+2|0]<<16|I[d+3|0]<<24);H[g+52>>2]=c;e=I[d+4|0]|I[d+5|0]<<8|(I[d+6|0]<<16|I[d+7|0]<<24);c=I[d|0]|I[d+1|0]<<8|(I[d+2|0]<<16|I[d+3|0]<<24);H[g+40>>2]=I[d+8|0]|I[d+9|0]<<8|(I[d+10|0]<<16|I[d+11|0]<<24);H[g+32>>2]=c;H[g+36>>2]=e;e=0;c=g- -64|0;o=H[c+4>>2];b:{if(!o){break b}h=H[c>>2];j=H[g+40>>2]^(H[g+36>>2]^(H[g+32>>2]^318)+239)+239;c=j&o-1;d=Cl(o);c:{if(d>>>0<=1){break c}c=j;if(c>>>0>>0){break c}c=(j>>>0)%(o>>>0)|0}k=h;h=c;c=H[k+(c<<2)>>2];if(!c){break b}c=H[c>>2];if(!c){break b}d:{if(d>>>0>=2){k=H[g+40>>2];f=H[g+36>>2];l=H[g+32>>2];while(1){d=H[c+4>>2];e:{if((d|0)!=(j|0)){if(d>>>0>=o>>>0){d=(d>>>0)%(o>>>0)|0}if((d|0)!=(h|0)){break b}break e}d=H[c+8>>2];f:{if((d|0)!=(l|0)){d=(d|0)==(l|0);break f}d=H[c+12>>2];if((d|0)!=(f|0)){d=(d|0)==(f|0);break f}d=(k|0)==H[c+16>>2]}if(d){break d}}c=H[c>>2];if(c){continue}break}break b}l=o-1|0;k=H[g+40>>2];o=H[g+36>>2];f=H[g+32>>2];while(1){d=H[c+4>>2];g:{if((d|0)!=(j|0)){if((h|0)!=(d&l)){break b}break g}d=H[c+8>>2];if((d|0)!=(f|0)){if((d|0)!=(f|0)){break g}break d}d=H[c+12>>2];if((d|0)!=(o|0)){if((d|0)!=(o|0)){break g}break d}if((k|0)==H[c+16>>2]){break d}}c=H[c>>2];if(c){continue}break}break b}e=c}h:{if(e){H[(s<<2)+n>>2]=H[e+20>>2];break h}H[g+8>>2]=H[g+40>>2];c=H[g+36>>2];H[g>>2]=H[g+32>>2];H[g+4>>2]=c;H[g+12>>2]=r;c=0;j=H[g+8>>2]^(H[g+4>>2]^(H[g>>2]^318)+239)+239;i:{j:{i=g- -64|0;f=H[i+4>>2];if(!f){break j}c=f-1|0;if(c&f){c=j;if(f>>>0<=c>>>0){c=(j>>>0)%(f>>>0)|0}m=H[H[i>>2]+(c<<2)>>2];if(!m){break j}d=H[g+8>>2];k=H[g+4>>2];h=H[g>>2];while(1){m=H[m>>2];if(!m){break j}e=H[m+4>>2];if((e|0)!=(j|0)){if(e>>>0>=f>>>0){e=(e>>>0)%(f>>>0)|0}if((c|0)!=(e|0)){break j}}e=H[m+8>>2];k:{if((e|0)!=(h|0)){e=(e|0)==(h|0);break k}e=H[m+12>>2];if((e|0)!=(k|0)){e=(e|0)==(k|0);break k}e=(d|0)==H[m+16>>2]}if(!e){continue}break}c=0;break i}c=c&j;m=H[H[i>>2]+(c<<2)>>2];if(!m){break j}h=f-1|0;d=H[g+8>>2];l=H[g+4>>2];k=H[g>>2];while(1){m=H[m>>2];if(!m){break j}e=H[m+4>>2];if((e|0)!=(j|0)&(e&h)!=(c|0)){break j}e=H[m+8>>2];l:{if((e|0)!=(k|0)){e=(e|0)==(k|0);break l}e=H[m+12>>2];if((e|0)!=(l|0)){e=(e|0)==(l|0);break l}e=(d|0)==H[m+16>>2]}if(!e){continue}break}c=0;break i}m=ra(24);H[m+16>>2]=H[g+8>>2];e=H[g+4>>2];H[m+8>>2]=H[g>>2];H[m+12>>2]=e;e=H[g+12>>2];H[m>>2]=0;H[m+4>>2]=j;H[m+20>>2]=e;u=O(H[i+12>>2]+1>>>0);p=L[i+16>>2];m:{if(u>O(p*O(f>>>0))?0:f){break m}c=2;e=(f-1&f)!=0|f>>>0<3|f<<1;p=O(U(O(u/p)));n:{if(p=O(0)){d=~~p>>>0;break n}d=0}e=d>>>0>>0?e:d;o:{if((e|0)==1){break o}if(!(e&e-1)){c=e;break o}c=Ja(e);f=H[i+4>>2]}p:{if(c>>>0<=f>>>0){if(c>>>0>=f>>>0){break p}d=f>>>0<3;p=O(U(O(O(K[i+12>>2])/L[i+16>>2])));q:{if(p=O(0)){e=~~p>>>0;break q}e=0}r:{s:{if(d){break s}if(Cl(f)>>>0>1){break s}e=e>>>0<2?e:1<<32-Q(e-1|0);break r}e=Ja(e)}c=c>>>0>e>>>0?c:e;if(f>>>0<=c>>>0){break p}}d=0;k=0;l=c;t:{u:{v:{if(c){if(l>>>0>=1073741824){break v}c=ra(l<<2);e=H[i>>2];H[i>>2]=c;if(e){qa(e)}H[i+4>>2]=l;if(l-1>>>0>=3){c=l&-4;e=0;while(1){h=d<<2;H[h+H[i>>2]>>2]=0;H[H[i>>2]+(h|4)>>2]=0;H[H[i>>2]+(h|8)>>2]=0;H[H[i>>2]+(h|12)>>2]=0;d=d+4|0;e=e+4|0;if((c|0)!=(e|0)){continue}break}}c=l&3;if(c){while(1){H[H[i>>2]+(d<<2)>>2]=0;d=d+1|0;k=k+1|0;if((c|0)!=(k|0)){continue}break}}e=H[i+8>>2];if(!e){break t}d=i+8|0;h=H[e+4>>2];c=l-1|0;if(!(c&l)){break u}h=h>>>0>=l>>>0?(h>>>0)%(l>>>0)|0:h;H[H[i>>2]+(h<<2)>>2]=d;c=H[e>>2];if(!c){break t}while(1){k=H[c+4>>2];if(l>>>0<=k>>>0){k=(k>>>0)%(l>>>0)|0}w:{if((h|0)==(k|0)){e=c;break w}d=c;n=k<<2;f=n+H[i>>2]|0;if(!H[f>>2]){H[f>>2]=e;e=c;h=k;break w}while(1){k=d;d=H[d>>2];if(d){o=H[c+8>>2];f=H[d+8>>2];x:{if((o|0)!=(f|0)){f=(f|0)==(o|0);break x}o=H[c+12>>2];f=H[d+12>>2];if((o|0)!=(f|0)){f=(f|0)==(o|0);break x}f=H[c+16>>2]==H[d+16>>2]}if(f){continue}}break}H[e>>2]=d;H[k>>2]=H[H[n+H[i>>2]>>2]>>2];H[H[n+H[i>>2]>>2]>>2]=c}c=H[e>>2];if(c){continue}break}break t}c=H[i>>2];H[i>>2]=0;if(c){qa(c)}H[i+4>>2]=0;break t}ya();X()}h=c&h;H[H[i>>2]+(h<<2)>>2]=d;c=H[e>>2];if(!c){break t}o=l-1|0;while(1){k=o&H[c+4>>2];y:{if((k|0)==(h|0)){e=c;break y}d=c;n=k<<2;l=n+H[i>>2]|0;if(H[l>>2]){while(1){k=d;d=H[d>>2];if(d){f=H[c+8>>2];l=H[d+8>>2];z:{if((f|0)!=(l|0)){f=(f|0)==(l|0);break z}f=H[c+12>>2];l=H[d+12>>2];if((f|0)!=(l|0)){f=(f|0)==(l|0);break z}f=H[c+16>>2]==H[d+16>>2]}if(f){continue}}break}H[e>>2]=d;H[k>>2]=H[H[n+H[i>>2]>>2]>>2];H[H[n+H[i>>2]>>2]>>2]=c;break y}H[l>>2]=e;e=c;h=k}c=H[e>>2];if(c){continue}break}}}f=H[i+4>>2];c=f-1|0;if(!(c&f)){c=c&j;break m}if(f>>>0>j>>>0){c=j;break m}c=(j>>>0)%(f>>>0)|0}e=H[i>>2]+(c<<2)|0;c=H[e>>2];A:{B:{if(!c){c=i+8|0;H[m>>2]=H[c>>2];H[i+8>>2]=m;H[e>>2]=c;c=H[m>>2];if(!c){break A}c=H[c+4>>2];e=f-1|0;C:{if(!(e&f)){c=c&e;break C}if(c>>>0>>0){break C}c=(c>>>0)%(f>>>0)|0}c=H[i>>2]+(c<<2)|0;break B}H[m>>2]=H[c>>2]}H[c>>2]=m}H[i+12>>2]=H[i+12>>2]+1;c=1}F[g+92|0]=c;H[g+88>>2]=m;c=H[a+40>>2];sa(H[H[a>>2]>>2]+N(c,r)|0,g+48|0,c);n=H[g+16>>2];H[n+(s<<2)>>2]=r;r=r+1|0}c=s+1|0;q=c?q:q+1|0;s=c;c=H[a+80>>2];if(!q&c>>>0>s>>>0){continue}break}if((c|0)!=(r|0)){D:{if(!I[a+84|0]){b=H[a+72>>2];j=H[a+68>>2];if((b|0)==(j|0)){break D}b=b-j>>2;c=b>>>0>1?b:1;q=c&3;e=0;b=0;if(c-1>>>0>=3){d=c&-4;while(1){h=b<<2;c=h+j|0;H[c>>2]=H[(H[c>>2]<<2)+n>>2];c=j+(h|4)|0;H[c>>2]=H[(H[c>>2]<<2)+n>>2];c=j+(h|8)|0;H[c>>2]=H[(H[c>>2]<<2)+n>>2];c=j+(h|12)|0;H[c>>2]=H[(H[c>>2]<<2)+n>>2];b=b+4|0;t=t+4|0;if((d|0)!=(t|0)){continue}break}}if(!q){break D}while(1){c=j+(b<<2)|0;H[c>>2]=H[(H[c>>2]<<2)+n>>2];b=b+1|0;e=e+1|0;if((q|0)!=(e|0)){continue}break}break D}F[a+84|0]=0;d=a+68|0;b=H[a+68>>2];e=H[a+72>>2]-b>>2;E:{if(e>>>0>>0){La(d,c-e|0,2176);c=H[a+80>>2];break E}if(c>>>0>=e>>>0){break E}H[a+72>>2]=b+(c<<2)}if(!c){break D}j=H[d>>2];e=0;b=0;if(c-1>>>0>=3){q=c&-4;while(1){h=b<<2;H[h+j>>2]=H[h+n>>2];d=h|4;H[d+j>>2]=H[d+n>>2];d=h|8;H[d+j>>2]=H[d+n>>2];d=h|12;H[d+j>>2]=H[d+n>>2];b=b+4|0;t=t+4|0;if((q|0)!=(t|0)){continue}break}}d=c&3;if(!d){break D}while(1){c=b<<2;H[c+j>>2]=H[c+n>>2];b=b+1|0;e=e+1|0;if((d|0)!=(e|0)){continue}break}}H[a+80>>2]=r}qa(n)}b=H[g+72>>2];if(b){while(1){a=H[b>>2];qa(b);b=a;if(b){continue}break}}a=H[g+64>>2];H[g+64>>2]=0;if(a){qa(a)}da=g+96|0;return r}ua();X()}function zf(a,b){var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=O(0),r=0,s=0,t=O(0);f=da+-64|0;da=f;H[f+40>>2]=0;H[f+44>>2]=0;H[f+32>>2]=0;H[f+36>>2]=0;H[f+48>>2]=1065353216;c=H[a+80>>2];H[f+16>>2]=0;H[f+8>>2]=0;H[f+12>>2]=0;a:{if(c){if(c>>>0>=1073741824){break a}d=c<<2;g=ra(d);H[f+8>>2]=g;c=d+g|0;H[f+16>>2]=c;ta(g,0,d);H[f+12>>2]=c;while(1){c=H[H[b>>2]>>2];e=H[b+48>>2]+zl(H[b+40>>2],H[b+44>>2],s,0)|0;c=c+e|0;c=I[c|0]|I[c+1|0]<<8|(I[c+2|0]<<16|I[c+3|0]<<24);H[f+24>>2]=c;H[f+28>>2]=c;d=0;n=H[f+36>>2];b:{if(!n){break b}j=H[f+32>>2];m=I[f+27|0]^(I[f+26|0]^(I[f+25|0]^(I[f+24|0]^318)+239)+239)+239;c=m&n-1;e=Cl(n);c:{if(e>>>0<=1){break c}c=m;if(c>>>0>>0){break c}c=(m>>>0)%(n>>>0)|0}h=j;j=c;c=H[h+(c<<2)>>2];if(!c){break b}c=H[c>>2];if(!c){break b}d:{if(e>>>0>=2){o=I[f+24|0];k=I[f+25|0];i=I[f+26|0];h=I[f+27|0];while(1){e=H[c+4>>2];e:{if((e|0)!=(m|0)){if(e>>>0>=n>>>0){e=(e>>>0)%(n>>>0)|0}if((e|0)!=(j|0)){break b}break e}e=I[c+8|0];f:{if((e|0)!=(o|0)){e=(e|0)==(o|0);break f}e=I[c+9|0];if((e|0)!=(k|0)){e=(e|0)==(k|0);break f}e=I[c+10|0];if((e|0)!=(i|0)){e=(e|0)==(i|0);break f}e=(h|0)==I[c+11|0]}if(e){break d}}c=H[c>>2];if(c){continue}break}break b}i=n-1|0;n=I[f+24|0];o=I[f+25|0];k=I[f+26|0];h=I[f+27|0];while(1){e=H[c+4>>2];g:{if((e|0)!=(m|0)){if((j|0)!=(e&i)){break b}break g}e=I[c+8|0];if((e|0)!=(n|0)){if((e|0)!=(n|0)){break g}break d}e=I[c+9|0];if((e|0)!=(o|0)){if((e|0)!=(o|0)){break g}break d}e=I[c+10|0];if((e|0)!=(k|0)){if((e|0)!=(k|0)){break g}break d}if((h|0)==I[c+11|0]){break d}}c=H[c>>2];if(c){continue}break}break b}d=c}h:{if(d){H[(s<<2)+g>>2]=H[d+12>>2];break h}H[f+4>>2]=r;H[f>>2]=H[f+24>>2];c=0;m=I[f+3|0]^(I[f+2|0]^(I[f+1|0]^(I[f|0]^318)+239)+239)+239;i:{j:{l=f+32|0;e=H[l+4>>2];if(!e){break j}c=e-1|0;if(c&e){c=m;if(e>>>0<=c>>>0){c=(m>>>0)%(e>>>0)|0}g=H[H[l>>2]+(c<<2)>>2];if(!g){break j}k=I[f|0];i=I[f+1|0];h=I[f+2|0];j=I[f+3|0];while(1){g=H[g>>2];if(!g){break j}d=H[g+4>>2];if((d|0)!=(m|0)){if(d>>>0>=e>>>0){d=(d>>>0)%(e>>>0)|0}if((c|0)!=(d|0)){break j}}d=I[g+8|0];k:{if((d|0)!=(k|0)){d=(d|0)==(k|0);break k}d=I[g+9|0];if((d|0)!=(i|0)){d=(d|0)==(i|0);break k}d=I[g+10|0];if((d|0)!=(h|0)){d=(d|0)==(h|0);break k}d=(j|0)==I[g+11|0]}if(!d){continue}break}c=0;break i}c=c&m;g=H[H[l>>2]+(c<<2)>>2];if(!g){break j}h=e-1|0;o=I[f|0];k=I[f+1|0];i=I[f+2|0];j=I[f+3|0];while(1){g=H[g>>2];if(!g){break j}d=H[g+4>>2];if((d|0)!=(m|0)&(d&h)!=(c|0)){break j}d=I[g+8|0];l:{if((d|0)!=(o|0)){d=(d|0)==(o|0);break l}d=I[g+9|0];if((d|0)!=(k|0)){d=(d|0)==(k|0);break l}d=I[g+10|0];if((d|0)!=(i|0)){d=(d|0)==(i|0);break l}d=(j|0)==I[g+11|0]}if(!d){continue}break}c=0;break i}g=ra(16);H[g+8>>2]=H[f>>2];d=H[f+4>>2];H[g+4>>2]=m;H[g+12>>2]=d;H[g>>2]=0;q=O(H[l+12>>2]+1>>>0);t=L[l+16>>2];m:{if(q>O(t*O(e>>>0))?0:e){break m}c=2;d=(e-1&e)!=0|e>>>0<3|e<<1;q=O(U(O(q/t)));n:{if(q=O(0)){j=~~q>>>0;break n}j=0}d=d>>>0>j>>>0?d:j;o:{if((d|0)==1){break o}if(!(d&d-1)){c=d;break o}c=Ja(d);e=H[l+4>>2]}p:{if(c>>>0<=e>>>0){if(c>>>0>=e>>>0){break p}j=e>>>0<3;q=O(U(O(O(K[l+12>>2])/L[l+16>>2])));q:{if(q=O(0)){d=~~q>>>0;break q}d=0}r:{s:{if(j){break s}if(Cl(e)>>>0>1){break s}d=d>>>0<2?d:1<<32-Q(d-1|0);break r}d=Ja(d)}c=c>>>0>d>>>0?c:d;if(e>>>0<=c>>>0){break p}}d=0;h=0;i=c;t:{u:{v:{if(c){if(i>>>0>=1073741824){break v}c=ra(i<<2);e=H[l>>2];H[l>>2]=c;if(e){qa(e)}H[l+4>>2]=i;if(i-1>>>0>=3){c=i&-4;e=0;while(1){j=d<<2;H[j+H[l>>2]>>2]=0;H[H[l>>2]+(j|4)>>2]=0;H[H[l>>2]+(j|8)>>2]=0;H[H[l>>2]+(j|12)>>2]=0;d=d+4|0;e=e+4|0;if((c|0)!=(e|0)){continue}break}}c=i&3;if(c){while(1){H[H[l>>2]+(d<<2)>>2]=0;d=d+1|0;h=h+1|0;if((c|0)!=(h|0)){continue}break}}e=H[l+8>>2];if(!e){break t}d=l+8|0;j=H[e+4>>2];c=i-1|0;if(!(c&i)){break u}j=j>>>0>=i>>>0?(j>>>0)%(i>>>0)|0:j;H[H[l>>2]+(j<<2)>>2]=d;c=H[e>>2];if(!c){break t}while(1){h=H[c+4>>2];if(i>>>0<=h>>>0){h=(h>>>0)%(i>>>0)|0}w:{if((h|0)==(j|0)){e=c;break w}d=c;n=h<<2;k=n+H[l>>2]|0;if(!H[k>>2]){H[k>>2]=e;e=c;j=h;break w}while(1){h=d;d=H[d>>2];if(d){o=I[c+8|0];k=I[d+8|0];x:{if((o|0)!=(k|0)){k=(k|0)==(o|0);break x}o=I[c+9|0];k=I[d+9|0];if((o|0)!=(k|0)){k=(k|0)==(o|0);break x}o=I[c+10|0];k=I[d+10|0];if((o|0)!=(k|0)){k=(k|0)==(o|0);break x}k=I[c+11|0]==I[d+11|0]}if(k){continue}}break}H[e>>2]=d;H[h>>2]=H[H[n+H[l>>2]>>2]>>2];H[H[n+H[l>>2]>>2]>>2]=c}c=H[e>>2];if(c){continue}break}break t}c=H[l>>2];H[l>>2]=0;if(c){qa(c)}H[l+4>>2]=0;break t}ya();X()}j=c&j;H[H[l>>2]+(j<<2)>>2]=d;c=H[e>>2];if(!c){break t}o=i-1|0;while(1){h=o&H[c+4>>2];y:{if((h|0)==(j|0)){e=c;break y}d=c;n=h<<2;i=n+H[l>>2]|0;if(H[i>>2]){while(1){h=d;d=H[d>>2];if(d){k=I[c+8|0];i=I[d+8|0];z:{if((k|0)!=(i|0)){i=(i|0)==(k|0);break z}k=I[c+9|0];i=I[d+9|0];if((k|0)!=(i|0)){i=(i|0)==(k|0);break z}k=I[c+10|0];i=I[d+10|0];if((k|0)!=(i|0)){i=(i|0)==(k|0);break z}i=I[c+11|0]==I[d+11|0]}if(i){continue}}break}H[e>>2]=d;H[h>>2]=H[H[n+H[l>>2]>>2]>>2];H[H[n+H[l>>2]>>2]>>2]=c;break y}H[i>>2]=e;e=c;j=h}c=H[e>>2];if(c){continue}break}}}e=H[l+4>>2];c=e-1|0;if(!(c&e)){c=c&m;break m}if(e>>>0>m>>>0){c=m;break m}c=(m>>>0)%(e>>>0)|0}d=H[l>>2]+(c<<2)|0;c=H[d>>2];A:{B:{if(!c){c=l+8|0;H[g>>2]=H[c>>2];H[l+8>>2]=g;H[d>>2]=c;c=H[g>>2];if(!c){break A}c=H[c+4>>2];d=e-1|0;C:{if(!(d&e)){c=c&d;break C}if(c>>>0>>0){break C}c=(c>>>0)%(e>>>0)|0}c=H[l>>2]+(c<<2)|0;break B}H[g>>2]=H[c>>2]}H[c>>2]=g}H[l+12>>2]=H[l+12>>2]+1;c=1}F[f+60|0]=c;H[f+56>>2]=g;c=H[a+40>>2];sa(H[H[a>>2]>>2]+N(c,r)|0,f+28|0,c);g=H[f+8>>2];H[g+(s<<2)>>2]=r;r=r+1|0}c=s+1|0;p=c?p:p+1|0;s=c;c=H[a+80>>2];if(!p&c>>>0>s>>>0){continue}break}if((c|0)!=(r|0)){D:{if(!I[a+84|0]){b=H[a+72>>2];h=H[a+68>>2];if((b|0)==(h|0)){break D}b=b-h>>2;c=b>>>0>1?b:1;j=c&3;d=0;b=0;if(c-1>>>0>=3){p=c&-4;e=0;while(1){m=b<<2;c=m+h|0;H[c>>2]=H[(H[c>>2]<<2)+g>>2];c=h+(m|4)|0;H[c>>2]=H[(H[c>>2]<<2)+g>>2];c=h+(m|8)|0;H[c>>2]=H[(H[c>>2]<<2)+g>>2];c=h+(m|12)|0;H[c>>2]=H[(H[c>>2]<<2)+g>>2];b=b+4|0;e=e+4|0;if((p|0)!=(e|0)){continue}break}}if(!j){break D}while(1){c=h+(b<<2)|0;H[c>>2]=H[(H[c>>2]<<2)+g>>2];b=b+1|0;d=d+1|0;if((j|0)!=(d|0)){continue}break}break D}F[a+84|0]=0;e=a+68|0;b=H[a+68>>2];d=H[a+72>>2]-b>>2;E:{if(d>>>0>>0){La(e,c-d|0,2176);c=H[a+80>>2];break E}if(c>>>0>=d>>>0){break E}H[a+72>>2]=b+(c<<2)}if(!c){break D}h=H[e>>2];d=0;b=0;if(c-1>>>0>=3){j=c&-4;e=0;while(1){m=b<<2;H[m+h>>2]=H[g+m>>2];p=m|4;H[p+h>>2]=H[g+p>>2];p=m|8;H[p+h>>2]=H[g+p>>2];p=m|12;H[p+h>>2]=H[g+p>>2];b=b+4|0;e=e+4|0;if((j|0)!=(e|0)){continue}break}}e=c&3;if(!e){break D}while(1){c=b<<2;H[c+h>>2]=H[c+g>>2];b=b+1|0;d=d+1|0;if((e|0)!=(d|0)){continue}break}}H[a+80>>2]=r}qa(g)}b=H[f+40>>2];if(b){while(1){a=H[b>>2];qa(b);b=a;if(b){continue}break}}a=H[f+32>>2];H[f+32>>2]=0;if(a){qa(a)}da=f- -64|0;return r}ua();X()}function qf(a,b){var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=O(0),r=0,s=0,t=O(0);f=da-80|0;da=f;H[f+56>>2]=0;H[f+60>>2]=0;H[f+48>>2]=0;H[f+52>>2]=0;H[f+64>>2]=1065353216;d=H[a+80>>2];H[f+24>>2]=0;H[f+16>>2]=0;H[f+20>>2]=0;a:{if(d){if(d>>>0>=1073741824){break a}c=d<<2;n=ra(c);H[f+16>>2]=n;d=c+n|0;H[f+24>>2]=d;ta(n,0,c);H[f+20>>2]=d;while(1){d=H[H[b>>2]>>2];e=H[b+48>>2]+zl(H[b+40>>2],H[b+44>>2],s,0)|0;c=d+e|0;G[f+44>>1]=I[c+4|0]|I[c+5|0]<<8;H[f+40>>2]=I[c|0]|I[c+1|0]<<8|(I[c+2|0]<<16|I[c+3|0]<<24);d=I[c|0]|I[c+1|0]<<8|(I[c+2|0]<<16|I[c+3|0]<<24);G[f+36>>1]=I[c+4|0]|I[c+5|0]<<8;H[f+32>>2]=d;d=0;o=H[f+52>>2];b:{if(!o){break b}h=H[f+48>>2];l=J[f+36>>1]^(J[f+34>>1]^(J[f+32>>1]^318)+239)+239;c=l&o+262143;e=Cl(o);c:{if(e>>>0<=1){break c}c=l;if(c>>>0>>0){break c}c=(l>>>0)%(o>>>0)|0}g=h;h=c;c=H[g+(c<<2)>>2];if(!c){break b}c=H[c>>2];if(!c){break b}d:{if(e>>>0>=2){m=J[f+32>>1];i=J[f+34>>1];g=J[f+36>>1];while(1){e=H[c+4>>2];e:{if((e|0)!=(l|0)){if(e>>>0>=o>>>0){e=(e>>>0)%(o>>>0)|0}if((e|0)!=(h|0)){break b}break e}e=J[c+8>>1];f:{if((e|0)!=(m|0)){e=(e|0)==(m|0);break f}e=J[c+10>>1];if((e|0)!=(i|0)){e=(e|0)==(i|0);break f}e=(g|0)==J[c+12>>1]}if(e){break d}}c=H[c>>2];if(c){continue}break}break b}i=o-1|0;o=J[f+32>>1];m=J[f+34>>1];g=J[f+36>>1];while(1){e=H[c+4>>2];g:{if((e|0)!=(l|0)){if((h|0)!=(e&i)){break b}break g}e=J[c+8>>1];if((e|0)!=(o|0)){if((e|0)!=(o|0)){break g}break d}e=J[c+10>>1];if((e|0)!=(m|0)){if((e|0)!=(m|0)){break g}break d}if((g|0)==J[c+12>>1]){break d}}c=H[c>>2];if(c){continue}break}break b}d=c}h:{if(d){H[(s<<2)+n>>2]=H[d+16>>2];break h}G[f+4>>1]=J[f+36>>1];H[f>>2]=H[f+32>>2];H[f+8>>2]=r;d=0;l=J[f+4>>1]^(J[f+2>>1]^(J[f>>1]^318)+239)+239;i:{j:{j=f+48|0;e=H[j+4>>2];if(!e){break j}if(e-1&e){d=l;if(e>>>0<=d>>>0){d=(l>>>0)%(e>>>0)|0}k=H[H[j>>2]+(d<<2)>>2];if(!k){break j}i=J[f>>1];g=J[f+2>>1];h=J[f+4>>1];while(1){k=H[k>>2];if(!k){break j}c=H[k+4>>2];if((c|0)!=(l|0)){if(c>>>0>=e>>>0){c=(c>>>0)%(e>>>0)|0}if((c|0)!=(d|0)){break j}}c=J[k+8>>1];k:{if((c|0)!=(i|0)){c=(c|0)==(i|0);break k}c=J[k+10>>1];if((c|0)!=(g|0)){c=(c|0)==(g|0);break k}c=(h|0)==J[k+12>>1]}if(!c){continue}break}d=0;break i}d=l&e+262143;k=H[H[j>>2]+(d<<2)>>2];if(!k){break j}g=e-1|0;m=J[f>>1];i=J[f+2>>1];h=J[f+4>>1];while(1){k=H[k>>2];if(!k){break j}c=H[k+4>>2];if((c|0)!=(l|0)&(c&g)!=(d|0)){break j}c=J[k+8>>1];l:{if((c|0)!=(m|0)){c=(c|0)==(m|0);break l}c=J[k+10>>1];if((c|0)!=(i|0)){c=(c|0)==(i|0);break l}c=(h|0)==J[k+12>>1]}if(!c){continue}break}d=0;break i}k=ra(20);G[k+12>>1]=J[f+4>>1];H[k+8>>2]=H[f>>2];c=H[f+8>>2];H[k>>2]=0;H[k+4>>2]=l;H[k+16>>2]=c;q=O(H[j+12>>2]+1>>>0);t=L[j+16>>2];m:{if(q>O(t*O(e>>>0))?0:e){break m}d=2;c=(e-1&e)!=0|e>>>0<3|e<<1;q=O(U(O(q/t)));n:{if(q=O(0)){h=~~q>>>0;break n}h=0}c=c>>>0>h>>>0?c:h;o:{if((c|0)==1){break o}if(!(c&c-1)){d=c;break o}d=Ja(c);e=H[j+4>>2]}p:{if(d>>>0<=e>>>0){if(d>>>0>=e>>>0){break p}h=e>>>0<3;q=O(U(O(O(K[j+12>>2])/L[j+16>>2])));q:{if(q=O(0)){c=~~q>>>0;break q}c=0}r:{s:{if(h){break s}if(Cl(e)>>>0>1){break s}c=c>>>0<2?c:1<<32-Q(c-1|0);break r}c=Ja(c)}d=c>>>0>>0?d:c;if(e>>>0<=d>>>0){break p}}c=0;g=0;i=d;t:{u:{v:{if(d){if(i>>>0>=1073741824){break v}d=ra(i<<2);e=H[j>>2];H[j>>2]=d;if(e){qa(e)}H[j+4>>2]=i;if(i-1>>>0>=3){d=i&-4;e=0;while(1){h=c<<2;H[h+H[j>>2]>>2]=0;H[H[j>>2]+(h|4)>>2]=0;H[H[j>>2]+(h|8)>>2]=0;H[H[j>>2]+(h|12)>>2]=0;c=c+4|0;e=e+4|0;if((d|0)!=(e|0)){continue}break}}d=i&3;if(d){while(1){H[H[j>>2]+(c<<2)>>2]=0;c=c+1|0;g=g+1|0;if((d|0)!=(g|0)){continue}break}}e=H[j+8>>2];if(!e){break t}c=j+8|0;h=H[e+4>>2];d=i-1|0;if(!(d&i)){break u}h=h>>>0>=i>>>0?(h>>>0)%(i>>>0)|0:h;H[H[j>>2]+(h<<2)>>2]=c;d=H[e>>2];if(!d){break t}while(1){g=H[d+4>>2];if(i>>>0<=g>>>0){g=(g>>>0)%(i>>>0)|0}w:{if((g|0)==(h|0)){e=d;break w}c=d;n=g<<2;m=n+H[j>>2]|0;if(!H[m>>2]){H[m>>2]=e;e=d;h=g;break w}while(1){g=c;c=H[c>>2];if(c){o=J[d+8>>1];m=J[c+8>>1];x:{if((o|0)!=(m|0)){m=(m|0)==(o|0);break x}o=J[d+10>>1];m=J[c+10>>1];if((o|0)!=(m|0)){m=(m|0)==(o|0);break x}m=J[d+12>>1]==J[c+12>>1]}if(m){continue}}break}H[e>>2]=c;H[g>>2]=H[H[n+H[j>>2]>>2]>>2];H[H[n+H[j>>2]>>2]>>2]=d}d=H[e>>2];if(d){continue}break}break t}d=H[j>>2];H[j>>2]=0;if(d){qa(d)}H[j+4>>2]=0;break t}ya();X()}h=d&h;H[H[j>>2]+(h<<2)>>2]=c;d=H[e>>2];if(!d){break t}o=i-1|0;while(1){g=o&H[d+4>>2];y:{if((g|0)==(h|0)){e=d;break y}c=d;n=g<<2;i=n+H[j>>2]|0;if(H[i>>2]){while(1){g=c;c=H[c>>2];if(c){m=J[d+8>>1];i=J[c+8>>1];z:{if((m|0)!=(i|0)){i=(i|0)==(m|0);break z}m=J[d+10>>1];i=J[c+10>>1];if((m|0)!=(i|0)){i=(i|0)==(m|0);break z}i=J[d+12>>1]==J[c+12>>1]}if(i){continue}}break}H[e>>2]=c;H[g>>2]=H[H[n+H[j>>2]>>2]>>2];H[H[n+H[j>>2]>>2]>>2]=d;break y}H[i>>2]=e;e=d;h=g}d=H[e>>2];if(d){continue}break}}}e=H[j+4>>2];d=e-1|0;if(!(d&e)){d=d&l;break m}if(e>>>0>l>>>0){d=l;break m}d=(l>>>0)%(e>>>0)|0}c=H[j>>2]+(d<<2)|0;d=H[c>>2];A:{B:{if(!d){d=j+8|0;H[k>>2]=H[d>>2];H[j+8>>2]=k;H[c>>2]=d;d=H[k>>2];if(!d){break A}d=H[d+4>>2];c=e-1|0;C:{if(!(c&e)){d=c&d;break C}if(d>>>0>>0){break C}d=(d>>>0)%(e>>>0)|0}d=H[j>>2]+(d<<2)|0;break B}H[k>>2]=H[d>>2]}H[d>>2]=k}H[j+12>>2]=H[j+12>>2]+1;d=1}F[f+76|0]=d;H[f+72>>2]=k;d=H[a+40>>2];sa(H[H[a>>2]>>2]+N(d,r)|0,f+40|0,d);n=H[f+16>>2];H[n+(s<<2)>>2]=r;r=r+1|0}d=s+1|0;p=d?p:p+1|0;s=d;c=H[a+80>>2];if(!p&c>>>0>d>>>0){continue}break}if((c|0)!=(r|0)){D:{if(!I[a+84|0]){b=H[a+72>>2];g=H[a+68>>2];if((b|0)==(g|0)){break D}b=b-g>>2;c=b>>>0>1?b:1;h=c&3;d=0;b=0;if(c-1>>>0>=3){p=c&-4;e=0;while(1){l=b<<2;c=l+g|0;H[c>>2]=H[(H[c>>2]<<2)+n>>2];c=g+(l|4)|0;H[c>>2]=H[(H[c>>2]<<2)+n>>2];c=g+(l|8)|0;H[c>>2]=H[(H[c>>2]<<2)+n>>2];c=g+(l|12)|0;H[c>>2]=H[(H[c>>2]<<2)+n>>2];b=b+4|0;e=e+4|0;if((p|0)!=(e|0)){continue}break}}if(!h){break D}while(1){c=g+(b<<2)|0;H[c>>2]=H[(H[c>>2]<<2)+n>>2];b=b+1|0;d=d+1|0;if((h|0)!=(d|0)){continue}break}break D}F[a+84|0]=0;e=a+68|0;b=H[a+68>>2];d=H[a+72>>2]-b>>2;E:{if(d>>>0>>0){La(e,c-d|0,2176);c=H[a+80>>2];break E}if(c>>>0>=d>>>0){break E}H[a+72>>2]=b+(c<<2)}if(!c){break D}g=H[e>>2];d=0;b=0;if(c-1>>>0>=3){h=c&-4;e=0;while(1){l=b<<2;H[l+g>>2]=H[l+n>>2];p=l|4;H[p+g>>2]=H[n+p>>2];p=l|8;H[p+g>>2]=H[n+p>>2];p=l|12;H[p+g>>2]=H[n+p>>2];b=b+4|0;e=e+4|0;if((h|0)!=(e|0)){continue}break}}e=c&3;if(!e){break D}while(1){c=b<<2;H[c+g>>2]=H[c+n>>2];b=b+1|0;d=d+1|0;if((e|0)!=(d|0)){continue}break}}H[a+80>>2]=r}qa(n)}b=H[f+56>>2];if(b){while(1){a=H[b>>2];qa(b);b=a;if(b){continue}break}}a=H[f+48>>2];H[f+48>>2]=0;if(a){qa(a)}da=f+80|0;return r}ua();X()}function Df(a,b){var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=O(0),q=0,r=0,s=0,t=O(0);g=da+-64|0;da=g;H[g+40>>2]=0;H[g+44>>2]=0;H[g+32>>2]=0;H[g+36>>2]=0;H[g+48>>2]=1065353216;c=H[a+80>>2];H[g+16>>2]=0;H[g+8>>2]=0;H[g+12>>2]=0;a:{if(c){if(c>>>0>=1073741824){break a}d=c<<2;n=ra(d);H[g+8>>2]=n;c=d+n|0;H[g+16>>2]=c;ta(n,0,d);H[g+12>>2]=c;while(1){c=H[H[b>>2]>>2];e=H[b+48>>2]+zl(H[b+40>>2],H[b+44>>2],s,0)|0;d=c+e|0;F[g+30|0]=I[d+2|0];G[g+28>>1]=I[d|0]|I[d+1|0]<<8;c=I[d|0]|I[d+1|0]<<8;F[g+26|0]=I[d+2|0];G[g+24>>1]=c;d=0;o=H[g+36>>2];b:{if(!o){break b}h=H[g+32>>2];j=I[g+26|0]^(I[g+25|0]^(I[g+24|0]^318)+239)+239;c=j&o-1;e=Cl(o);c:{if(e>>>0<=1){break c}c=j;if(c>>>0>>0){break c}c=(j>>>0)%(o>>>0)|0}k=h;h=c;c=H[k+(c<<2)>>2];if(!c){break b}c=H[c>>2];if(!c){break b}d:{if(e>>>0>=2){f=I[g+24|0];l=I[g+25|0];k=I[g+26|0];while(1){e=H[c+4>>2];e:{if((e|0)!=(j|0)){if(e>>>0>=o>>>0){e=(e>>>0)%(o>>>0)|0}if((e|0)!=(h|0)){break b}break e}e=I[c+8|0];f:{if((e|0)!=(f|0)){e=(e|0)==(f|0);break f}e=I[c+9|0];if((e|0)!=(l|0)){e=(e|0)==(l|0);break f}e=(k|0)==I[c+10|0]}if(e){break d}}c=H[c>>2];if(c){continue}break}break b}l=o-1|0;o=I[g+24|0];f=I[g+25|0];k=I[g+26|0];while(1){e=H[c+4>>2];g:{if((e|0)!=(j|0)){if((h|0)!=(e&l)){break b}break g}e=I[c+8|0];if((e|0)!=(o|0)){if((e|0)!=(o|0)){break g}break d}e=I[c+9|0];if((e|0)!=(f|0)){if((e|0)!=(f|0)){break g}break d}if((k|0)==I[c+10|0]){break d}}c=H[c>>2];if(c){continue}break}break b}d=c}h:{if(d){H[(s<<2)+n>>2]=H[d+12>>2];break h}F[g+2|0]=I[g+26|0];G[g>>1]=J[g+24>>1];H[g+4>>2]=r;c=0;j=I[g+2|0]^(I[g+1|0]^(I[g|0]^318)+239)+239;i:{j:{i=g+32|0;f=H[i+4>>2];if(!f){break j}c=f-1|0;if(c&f){c=j;if(f>>>0<=c>>>0){c=(j>>>0)%(f>>>0)|0}m=H[H[i>>2]+(c<<2)>>2];if(!m){break j}k=I[g|0];h=I[g+1|0];e=I[g+2|0];while(1){m=H[m>>2];if(!m){break j}d=H[m+4>>2];if((d|0)!=(j|0)){if(d>>>0>=f>>>0){d=(d>>>0)%(f>>>0)|0}if((c|0)!=(d|0)){break j}}d=I[m+8|0];k:{if((d|0)!=(k|0)){d=(d|0)==(k|0);break k}d=I[m+9|0];if((d|0)!=(h|0)){d=(d|0)==(h|0);break k}d=(e|0)==I[m+10|0]}if(!d){continue}break}c=0;break i}c=c&j;m=H[H[i>>2]+(c<<2)>>2];if(!m){break j}h=f-1|0;l=I[g|0];k=I[g+1|0];e=I[g+2|0];while(1){m=H[m>>2];if(!m){break j}d=H[m+4>>2];if((d|0)!=(j|0)&(d&h)!=(c|0)){break j}d=I[m+8|0];l:{if((d|0)!=(l|0)){d=(d|0)==(l|0);break l}d=I[m+9|0];if((d|0)!=(k|0)){d=(d|0)==(k|0);break l}d=(e|0)==I[m+10|0]}if(!d){continue}break}c=0;break i}m=ra(16);F[m+10|0]=I[g+2|0];G[m+8>>1]=J[g>>1];d=H[g+4>>2];H[m>>2]=0;H[m+4>>2]=j;H[m+12>>2]=d;t=O(H[i+12>>2]+1>>>0);p=L[i+16>>2];m:{if(t>O(p*O(f>>>0))?0:f){break m}c=2;d=(f-1&f)!=0|f>>>0<3|f<<1;p=O(U(O(t/p)));n:{if(p=O(0)){e=~~p>>>0;break n}e=0}d=d>>>0>e>>>0?d:e;o:{if((d|0)==1){break o}if(!(d&d-1)){c=d;break o}c=Ja(d);f=H[i+4>>2]}p:{if(c>>>0<=f>>>0){if(c>>>0>=f>>>0){break p}e=f>>>0<3;p=O(U(O(O(K[i+12>>2])/L[i+16>>2])));q:{if(p=O(0)){d=~~p>>>0;break q}d=0}r:{s:{if(e){break s}if(Cl(f)>>>0>1){break s}d=d>>>0<2?d:1<<32-Q(d-1|0);break r}d=Ja(d)}c=c>>>0>d>>>0?c:d;if(f>>>0<=c>>>0){break p}}e=0;k=0;l=c;t:{u:{v:{if(c){if(l>>>0>=1073741824){break v}c=ra(l<<2);d=H[i>>2];H[i>>2]=c;if(d){qa(d)}H[i+4>>2]=l;if(l-1>>>0>=3){c=l&-4;d=0;while(1){h=e<<2;H[h+H[i>>2]>>2]=0;H[H[i>>2]+(h|4)>>2]=0;H[H[i>>2]+(h|8)>>2]=0;H[H[i>>2]+(h|12)>>2]=0;e=e+4|0;d=d+4|0;if((c|0)!=(d|0)){continue}break}}c=l&3;if(c){while(1){H[H[i>>2]+(e<<2)>>2]=0;e=e+1|0;k=k+1|0;if((c|0)!=(k|0)){continue}break}}d=H[i+8>>2];if(!d){break t}e=i+8|0;h=H[d+4>>2];c=l-1|0;if(!(c&l)){break u}h=h>>>0>=l>>>0?(h>>>0)%(l>>>0)|0:h;H[H[i>>2]+(h<<2)>>2]=e;c=H[d>>2];if(!c){break t}while(1){k=H[c+4>>2];if(l>>>0<=k>>>0){k=(k>>>0)%(l>>>0)|0}w:{if((h|0)==(k|0)){d=c;break w}e=c;n=k<<2;f=n+H[i>>2]|0;if(!H[f>>2]){H[f>>2]=d;d=c;h=k;break w}while(1){k=e;e=H[e>>2];if(e){o=I[c+8|0];f=I[e+8|0];x:{if((o|0)!=(f|0)){f=(f|0)==(o|0);break x}o=I[c+9|0];f=I[e+9|0];if((o|0)!=(f|0)){f=(f|0)==(o|0);break x}f=I[c+10|0]==I[e+10|0]}if(f){continue}}break}H[d>>2]=e;H[k>>2]=H[H[n+H[i>>2]>>2]>>2];H[H[n+H[i>>2]>>2]>>2]=c}c=H[d>>2];if(c){continue}break}break t}c=H[i>>2];H[i>>2]=0;if(c){qa(c)}H[i+4>>2]=0;break t}ya();X()}h=c&h;H[H[i>>2]+(h<<2)>>2]=e;c=H[d>>2];if(!c){break t}o=l-1|0;while(1){k=o&H[c+4>>2];y:{if((k|0)==(h|0)){d=c;break y}e=c;n=k<<2;l=n+H[i>>2]|0;if(H[l>>2]){while(1){k=e;e=H[e>>2];if(e){f=I[c+8|0];l=I[e+8|0];z:{if((f|0)!=(l|0)){f=(f|0)==(l|0);break z}f=I[c+9|0];l=I[e+9|0];if((f|0)!=(l|0)){f=(f|0)==(l|0);break z}f=I[c+10|0]==I[e+10|0]}if(f){continue}}break}H[d>>2]=e;H[k>>2]=H[H[n+H[i>>2]>>2]>>2];H[H[n+H[i>>2]>>2]>>2]=c;break y}H[l>>2]=d;d=c;h=k}c=H[d>>2];if(c){continue}break}}}f=H[i+4>>2];c=f-1|0;if(!(c&f)){c=c&j;break m}if(f>>>0>j>>>0){c=j;break m}c=(j>>>0)%(f>>>0)|0}d=H[i>>2]+(c<<2)|0;c=H[d>>2];A:{B:{if(!c){c=i+8|0;H[m>>2]=H[c>>2];H[i+8>>2]=m;H[d>>2]=c;c=H[m>>2];if(!c){break A}c=H[c+4>>2];d=f-1|0;C:{if(!(d&f)){c=c&d;break C}if(c>>>0>>0){break C}c=(c>>>0)%(f>>>0)|0}c=H[i>>2]+(c<<2)|0;break B}H[m>>2]=H[c>>2]}H[c>>2]=m}H[i+12>>2]=H[i+12>>2]+1;c=1}F[g+60|0]=c;H[g+56>>2]=m;c=H[a+40>>2];sa(H[H[a>>2]>>2]+N(c,r)|0,g+28|0,c);n=H[g+8>>2];H[n+(s<<2)>>2]=r;r=r+1|0}c=s+1|0;q=c?q:q+1|0;s=c;c=H[a+80>>2];if(!q&c>>>0>s>>>0){continue}break}if((c|0)!=(r|0)){D:{if(!I[a+84|0]){b=H[a+72>>2];j=H[a+68>>2];if((b|0)==(j|0)){break D}b=b-j>>2;c=b>>>0>1?b:1;q=c&3;d=0;b=0;if(c-1>>>0>=3){e=c&-4;f=0;while(1){h=b<<2;c=h+j|0;H[c>>2]=H[(H[c>>2]<<2)+n>>2];c=j+(h|4)|0;H[c>>2]=H[(H[c>>2]<<2)+n>>2];c=j+(h|8)|0;H[c>>2]=H[(H[c>>2]<<2)+n>>2];c=j+(h|12)|0;H[c>>2]=H[(H[c>>2]<<2)+n>>2];b=b+4|0;f=f+4|0;if((e|0)!=(f|0)){continue}break}}if(!q){break D}while(1){c=j+(b<<2)|0;H[c>>2]=H[(H[c>>2]<<2)+n>>2];b=b+1|0;d=d+1|0;if((q|0)!=(d|0)){continue}break}break D}F[a+84|0]=0;e=a+68|0;b=H[a+68>>2];d=H[a+72>>2]-b>>2;E:{if(d>>>0>>0){La(e,c-d|0,2176);c=H[a+80>>2];break E}if(c>>>0>=d>>>0){break E}H[a+72>>2]=b+(c<<2)}if(!c){break D}j=H[e>>2];d=0;b=0;if(c-1>>>0>=3){q=c&-4;f=0;while(1){h=b<<2;H[h+j>>2]=H[h+n>>2];e=h|4;H[e+j>>2]=H[e+n>>2];e=h|8;H[e+j>>2]=H[e+n>>2];e=h|12;H[e+j>>2]=H[e+n>>2];b=b+4|0;f=f+4|0;if((q|0)!=(f|0)){continue}break}}e=c&3;if(!e){break D}while(1){c=b<<2;H[c+j>>2]=H[c+n>>2];b=b+1|0;d=d+1|0;if((e|0)!=(d|0)){continue}break}}H[a+80>>2]=r}qa(n)}b=H[g+40>>2];if(b){while(1){a=H[b>>2];qa(b);b=a;if(b){continue}break}}a=H[g+32>>2];H[g+32>>2]=0;if(a){qa(a)}da=g- -64|0;return r}ua();X()}function Bd(a,b){var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=O(0),p=0,q=0,r=0,s=0,t=O(0);g=da-80|0;da=g;H[g+56>>2]=0;H[g+60>>2]=0;H[g+48>>2]=0;H[g+52>>2]=0;H[g+64>>2]=1065353216;c=H[a+80>>2];H[g+24>>2]=0;H[g+16>>2]=0;H[g+20>>2]=0;a:{if(c){if(c>>>0>=1073741824){break a}d=c<<2;m=ra(d);H[g+16>>2]=m;c=d+m|0;H[g+24>>2]=c;ta(m,0,d);H[g+20>>2]=c;while(1){c=H[H[b>>2]>>2];d=H[b+48>>2]+zl(H[b+40>>2],H[b+44>>2],s,0)|0;c=c+d|0;d=I[c+4|0]|I[c+5|0]<<8|(I[c+6|0]<<16|I[c+7|0]<<24);c=I[c|0]|I[c+1|0]<<8|(I[c+2|0]<<16|I[c+3|0]<<24);H[g+32>>2]=c;H[g+36>>2]=d;H[g+40>>2]=c;H[g+44>>2]=d;d=0;n=H[g+52>>2];b:{if(!n){break b}h=H[g+48>>2];j=H[g+36>>2]^(H[g+32>>2]^318)+239;c=j&n-1;e=Cl(n);c:{if(e>>>0<=1){break c}c=j;if(c>>>0>>0){break c}c=(j>>>0)%(n>>>0)|0}k=h;h=c;c=H[k+(c<<2)>>2];if(!c){break b}c=H[c>>2];if(!c){break b}d:{if(e>>>0>=2){k=H[g+36>>2];f=H[g+32>>2];while(1){e=H[c+4>>2];e:{if((e|0)!=(j|0)){if(e>>>0>=n>>>0){e=(e>>>0)%(n>>>0)|0}if((e|0)!=(h|0)){break b}break e}e=H[c+8>>2];f:{if((e|0)!=(f|0)){e=(e|0)==(f|0);break f}e=(k|0)==H[c+12>>2]}if(e){break d}}c=H[c>>2];if(c){continue}break}break b}f=n-1|0;k=H[g+36>>2];n=H[g+32>>2];while(1){e=H[c+4>>2];g:{if((e|0)!=(j|0)){if((h|0)!=(e&f)){break b}break g}e=H[c+8>>2];if((e|0)!=(n|0)){if((e|0)!=(n|0)){break g}break d}if((k|0)==H[c+12>>2]){break d}}c=H[c>>2];if(c){continue}break}break b}d=c}h:{if(d){H[(s<<2)+m>>2]=H[d+16>>2];break h}H[g+8>>2]=q;c=H[g+36>>2];H[g>>2]=H[g+32>>2];H[g+4>>2]=c;c=0;j=H[g+4>>2]^(H[g>>2]^318)+239;i:{j:{i=g+48|0;f=H[i+4>>2];if(!f){break j}c=f-1|0;if(c&f){c=j;if(f>>>0<=c>>>0){c=(j>>>0)%(f>>>0)|0}l=H[H[i>>2]+(c<<2)>>2];if(!l){break j}e=H[g+4>>2];h=H[g>>2];while(1){l=H[l>>2];if(!l){break j}d=H[l+4>>2];if((d|0)!=(j|0)){if(d>>>0>=f>>>0){d=(d>>>0)%(f>>>0)|0}if((c|0)!=(d|0)){break j}}d=H[l+8>>2];k:{if((d|0)!=(h|0)){d=(d|0)==(h|0);break k}d=(e|0)==H[l+12>>2]}if(!d){continue}break}c=0;break i}c=c&j;l=H[H[i>>2]+(c<<2)>>2];if(!l){break j}h=f-1|0;e=H[g+4>>2];k=H[g>>2];while(1){l=H[l>>2];if(!l){break j}d=H[l+4>>2];if((d|0)!=(j|0)&(d&h)!=(c|0)){break j}d=H[l+8>>2];l:{if((d|0)!=(k|0)){d=(d|0)==(k|0);break l}d=(e|0)==H[l+12>>2]}if(!d){continue}break}c=0;break i}l=ra(20);d=H[g+4>>2];H[l+8>>2]=H[g>>2];H[l+12>>2]=d;d=H[g+8>>2];H[l+4>>2]=j;H[l+16>>2]=d;H[l>>2]=0;t=O(H[i+12>>2]+1>>>0);o=L[i+16>>2];m:{if(t>O(o*O(f>>>0))?0:f){break m}c=2;d=(f-1&f)!=0|f>>>0<3|f<<1;o=O(U(O(t/o)));n:{if(o=O(0)){e=~~o>>>0;break n}e=0}d=d>>>0>e>>>0?d:e;o:{if((d|0)==1){break o}if(!(d&d-1)){c=d;break o}c=Ja(d);f=H[i+4>>2]}p:{if(c>>>0<=f>>>0){if(c>>>0>=f>>>0){break p}e=f>>>0<3;o=O(U(O(O(K[i+12>>2])/L[i+16>>2])));q:{if(o=O(0)){d=~~o>>>0;break q}d=0}r:{s:{if(e){break s}if(Cl(f)>>>0>1){break s}d=d>>>0<2?d:1<<32-Q(d-1|0);break r}d=Ja(d)}c=c>>>0>d>>>0?c:d;if(f>>>0<=c>>>0){break p}}e=0;k=0;f=c;t:{u:{v:{if(c){if(f>>>0>=1073741824){break v}c=ra(f<<2);d=H[i>>2];H[i>>2]=c;if(d){qa(d)}H[i+4>>2]=f;if(f-1>>>0>=3){c=f&-4;d=0;while(1){h=e<<2;H[h+H[i>>2]>>2]=0;H[H[i>>2]+(h|4)>>2]=0;H[H[i>>2]+(h|8)>>2]=0;H[H[i>>2]+(h|12)>>2]=0;e=e+4|0;d=d+4|0;if((c|0)!=(d|0)){continue}break}}c=f&3;if(c){while(1){H[H[i>>2]+(e<<2)>>2]=0;e=e+1|0;k=k+1|0;if((c|0)!=(k|0)){continue}break}}d=H[i+8>>2];if(!d){break t}e=i+8|0;h=H[d+4>>2];c=f-1|0;if(!(c&f)){break u}h=f>>>0<=h>>>0?(h>>>0)%(f>>>0)|0:h;H[H[i>>2]+(h<<2)>>2]=e;c=H[d>>2];if(!c){break t}while(1){k=H[c+4>>2];if(f>>>0<=k>>>0){k=(k>>>0)%(f>>>0)|0}w:{if((h|0)==(k|0)){d=c;break w}e=c;r=k<<2;n=r+H[i>>2]|0;if(!H[n>>2]){H[n>>2]=d;d=c;h=k;break w}while(1){k=e;e=H[e>>2];if(e){m=H[c+8>>2];n=H[e+8>>2];x:{if((m|0)!=(n|0)){m=(m|0)==(n|0);break x}m=H[c+12>>2]==H[e+12>>2]}if(m){continue}}break}H[d>>2]=e;H[k>>2]=H[H[r+H[i>>2]>>2]>>2];H[H[r+H[i>>2]>>2]>>2]=c}c=H[d>>2];if(c){continue}break}break t}c=H[i>>2];H[i>>2]=0;if(c){qa(c)}H[i+4>>2]=0;break t}ya();X()}h=c&h;H[H[i>>2]+(h<<2)>>2]=e;c=H[d>>2];if(!c){break t}m=f-1|0;while(1){k=m&H[c+4>>2];y:{if((k|0)==(h|0)){d=c;break y}e=c;r=k<<2;f=r+H[i>>2]|0;if(H[f>>2]){while(1){k=e;e=H[e>>2];if(e){n=H[c+8>>2];f=H[e+8>>2];z:{if((n|0)!=(f|0)){f=(f|0)==(n|0);break z}f=H[c+12>>2]==H[e+12>>2]}if(f){continue}}break}H[d>>2]=e;H[k>>2]=H[H[r+H[i>>2]>>2]>>2];H[H[r+H[i>>2]>>2]>>2]=c;break y}H[f>>2]=d;d=c;h=k}c=H[d>>2];if(c){continue}break}}}f=H[i+4>>2];c=f-1|0;if(!(c&f)){c=c&j;break m}if(f>>>0>j>>>0){c=j;break m}c=(j>>>0)%(f>>>0)|0}d=H[i>>2]+(c<<2)|0;c=H[d>>2];A:{B:{if(!c){c=i+8|0;H[l>>2]=H[c>>2];H[i+8>>2]=l;H[d>>2]=c;c=H[l>>2];if(!c){break A}c=H[c+4>>2];d=f-1|0;C:{if(!(d&f)){c=c&d;break C}if(c>>>0>>0){break C}c=(c>>>0)%(f>>>0)|0}c=H[i>>2]+(c<<2)|0;break B}H[l>>2]=H[c>>2]}H[c>>2]=l}H[i+12>>2]=H[i+12>>2]+1;c=1}F[g+76|0]=c;H[g+72>>2]=l;c=H[a+40>>2];sa(H[H[a>>2]>>2]+N(c,q)|0,g+40|0,c);m=H[g+16>>2];H[m+(s<<2)>>2]=q;q=q+1|0}c=s+1|0;p=c?p:p+1|0;s=c;c=H[a+80>>2];if(!p&c>>>0>s>>>0){continue}break}if((c|0)!=(q|0)){D:{if(!I[a+84|0]){b=H[a+72>>2];j=H[a+68>>2];if((b|0)==(j|0)){break D}b=b-j>>2;c=b>>>0>1?b:1;p=c&3;d=0;b=0;if(c-1>>>0>=3){e=c&-4;f=0;while(1){h=b<<2;c=h+j|0;H[c>>2]=H[(H[c>>2]<<2)+m>>2];c=j+(h|4)|0;H[c>>2]=H[(H[c>>2]<<2)+m>>2];c=j+(h|8)|0;H[c>>2]=H[(H[c>>2]<<2)+m>>2];c=j+(h|12)|0;H[c>>2]=H[(H[c>>2]<<2)+m>>2];b=b+4|0;f=f+4|0;if((e|0)!=(f|0)){continue}break}}if(!p){break D}while(1){c=j+(b<<2)|0;H[c>>2]=H[(H[c>>2]<<2)+m>>2];b=b+1|0;d=d+1|0;if((p|0)!=(d|0)){continue}break}break D}F[a+84|0]=0;e=a+68|0;b=H[a+68>>2];d=H[a+72>>2]-b>>2;E:{if(d>>>0>>0){La(e,c-d|0,2176);c=H[a+80>>2];break E}if(c>>>0>=d>>>0){break E}H[a+72>>2]=b+(c<<2)}if(!c){break D}j=H[e>>2];d=0;b=0;if(c-1>>>0>=3){p=c&-4;f=0;while(1){h=b<<2;H[h+j>>2]=H[h+m>>2];e=h|4;H[e+j>>2]=H[e+m>>2];e=h|8;H[e+j>>2]=H[e+m>>2];e=h|12;H[e+j>>2]=H[e+m>>2];b=b+4|0;f=f+4|0;if((p|0)!=(f|0)){continue}break}}e=c&3;if(!e){break D}while(1){c=b<<2;H[c+j>>2]=H[c+m>>2];b=b+1|0;d=d+1|0;if((e|0)!=(d|0)){continue}break}}H[a+80>>2]=q}qa(m)}b=H[g+56>>2];if(b){while(1){a=H[b>>2];qa(b);b=a;if(b){continue}break}}a=H[g+48>>2];H[g+48>>2]=0;if(a){qa(a)}da=g+80|0;return q}ua();X()}function tf(a,b){var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=O(0),q=0,r=0,s=0,t=O(0);g=da+-64|0;da=g;H[g+40>>2]=0;H[g+44>>2]=0;H[g+32>>2]=0;H[g+36>>2]=0;H[g+48>>2]=1065353216;d=H[a+80>>2];H[g+16>>2]=0;H[g+8>>2]=0;H[g+12>>2]=0;a:{if(d){if(d>>>0>=1073741824){break a}c=d<<2;m=ra(c);H[g+8>>2]=m;d=c+m|0;H[g+16>>2]=d;ta(m,0,c);H[g+12>>2]=d;while(1){d=H[H[b>>2]>>2];e=H[b+48>>2]+zl(H[b+40>>2],H[b+44>>2],s,0)|0;d=d+e|0;d=I[d|0]|I[d+1|0]<<8|(I[d+2|0]<<16|I[d+3|0]<<24);H[g+24>>2]=d;H[g+28>>2]=d;d=0;n=H[g+36>>2];b:{if(!n){break b}h=H[g+32>>2];k=J[g+26>>1]^(J[g+24>>1]^318)+239;c=k&n+131071;e=Cl(n);c:{if(e>>>0<=1){break c}c=k;if(c>>>0>>0){break c}c=(k>>>0)%(n>>>0)|0}f=h;h=c;c=H[f+(c<<2)>>2];if(!c){break b}c=H[c>>2];if(!c){break b}d:{if(e>>>0>=2){j=J[g+24>>1];f=J[g+26>>1];while(1){e=H[c+4>>2];e:{if((e|0)!=(k|0)){if(e>>>0>=n>>>0){e=(e>>>0)%(n>>>0)|0}if((e|0)!=(h|0)){break b}break e}e=J[c+8>>1];f:{if((e|0)!=(j|0)){e=(e|0)==(j|0);break f}e=(f|0)==J[c+10>>1]}if(e){break d}}c=H[c>>2];if(c){continue}break}break b}j=n-1|0;n=J[g+24>>1];f=J[g+26>>1];while(1){e=H[c+4>>2];g:{if((e|0)!=(k|0)){if((h|0)!=(e&j)){break b}break g}e=J[c+8>>1];if((e|0)!=(n|0)){if((e|0)!=(n|0)){break g}break d}if((f|0)==J[c+10>>1]){break d}}c=H[c>>2];if(c){continue}break}break b}d=c}h:{if(d){H[(s<<2)+m>>2]=H[d+12>>2];break h}H[g+4>>2]=q;H[g>>2]=H[g+24>>2];d=0;k=J[g+2>>1]^(J[g>>1]^318)+239;i:{j:{i=g+32|0;e=H[i+4>>2];if(!e){break j}if(e-1&e){d=k;if(e>>>0<=d>>>0){d=(k>>>0)%(e>>>0)|0}l=H[H[i>>2]+(d<<2)>>2];if(!l){break j}f=J[g>>1];h=J[g+2>>1];while(1){l=H[l>>2];if(!l){break j}c=H[l+4>>2];if((c|0)!=(k|0)){if(c>>>0>=e>>>0){c=(c>>>0)%(e>>>0)|0}if((c|0)!=(d|0)){break j}}c=J[l+8>>1];k:{if((c|0)!=(f|0)){c=(c|0)==(f|0);break k}c=(h|0)==J[l+10>>1]}if(!c){continue}break}d=0;break i}d=k&e+131071;l=H[H[i>>2]+(d<<2)>>2];if(!l){break j}f=e-1|0;j=J[g>>1];h=J[g+2>>1];while(1){l=H[l>>2];if(!l){break j}c=H[l+4>>2];if((c|0)!=(k|0)&(c&f)!=(d|0)){break j}c=J[l+8>>1];l:{if((c|0)!=(j|0)){c=(c|0)==(j|0);break l}c=(h|0)==J[l+10>>1]}if(!c){continue}break}d=0;break i}l=ra(16);H[l+8>>2]=H[g>>2];c=H[g+4>>2];H[l+4>>2]=k;H[l+12>>2]=c;H[l>>2]=0;p=O(H[i+12>>2]+1>>>0);t=L[i+16>>2];m:{if(p>O(t*O(e>>>0))?0:e){break m}d=2;c=(e-1&e)!=0|e>>>0<3|e<<1;p=O(U(O(p/t)));n:{if(p=O(0)){h=~~p>>>0;break n}h=0}c=c>>>0>h>>>0?c:h;o:{if((c|0)==1){break o}if(!(c&c-1)){d=c;break o}d=Ja(c);e=H[i+4>>2]}p:{if(d>>>0<=e>>>0){if(d>>>0>=e>>>0){break p}h=e>>>0<3;p=O(U(O(O(K[i+12>>2])/L[i+16>>2])));q:{if(p=O(0)){c=~~p>>>0;break q}c=0}r:{s:{if(h){break s}if(Cl(e)>>>0>1){break s}c=c>>>0<2?c:1<<32-Q(c-1|0);break r}c=Ja(c)}d=c>>>0>>0?d:c;if(e>>>0<=d>>>0){break p}}c=0;f=0;j=d;t:{u:{v:{if(d){if(j>>>0>=1073741824){break v}d=ra(j<<2);e=H[i>>2];H[i>>2]=d;if(e){qa(e)}H[i+4>>2]=j;if(j-1>>>0>=3){d=j&-4;e=0;while(1){h=c<<2;H[h+H[i>>2]>>2]=0;H[H[i>>2]+(h|4)>>2]=0;H[H[i>>2]+(h|8)>>2]=0;H[H[i>>2]+(h|12)>>2]=0;c=c+4|0;e=e+4|0;if((d|0)!=(e|0)){continue}break}}d=j&3;if(d){while(1){H[H[i>>2]+(c<<2)>>2]=0;c=c+1|0;f=f+1|0;if((d|0)!=(f|0)){continue}break}}e=H[i+8>>2];if(!e){break t}c=i+8|0;h=H[e+4>>2];d=j-1|0;if(!(d&j)){break u}h=h>>>0>=j>>>0?(h>>>0)%(j>>>0)|0:h;H[H[i>>2]+(h<<2)>>2]=c;d=H[e>>2];if(!d){break t}while(1){f=H[d+4>>2];if(j>>>0<=f>>>0){f=(f>>>0)%(j>>>0)|0}w:{if((f|0)==(h|0)){e=d;break w}c=d;r=f<<2;n=r+H[i>>2]|0;if(!H[n>>2]){H[n>>2]=e;e=d;h=f;break w}while(1){f=c;c=H[c>>2];if(c){m=J[d+8>>1];n=J[c+8>>1];x:{if((m|0)!=(n|0)){m=(m|0)==(n|0);break x}m=J[d+10>>1]==J[c+10>>1]}if(m){continue}}break}H[e>>2]=c;H[f>>2]=H[H[r+H[i>>2]>>2]>>2];H[H[r+H[i>>2]>>2]>>2]=d}d=H[e>>2];if(d){continue}break}break t}d=H[i>>2];H[i>>2]=0;if(d){qa(d)}H[i+4>>2]=0;break t}ya();X()}h=d&h;H[H[i>>2]+(h<<2)>>2]=c;d=H[e>>2];if(!d){break t}m=j-1|0;while(1){f=m&H[d+4>>2];y:{if((f|0)==(h|0)){e=d;break y}c=d;r=f<<2;j=r+H[i>>2]|0;if(H[j>>2]){while(1){f=c;c=H[c>>2];if(c){n=J[d+8>>1];j=J[c+8>>1];z:{if((n|0)!=(j|0)){j=(j|0)==(n|0);break z}j=J[d+10>>1]==J[c+10>>1]}if(j){continue}}break}H[e>>2]=c;H[f>>2]=H[H[r+H[i>>2]>>2]>>2];H[H[r+H[i>>2]>>2]>>2]=d;break y}H[j>>2]=e;e=d;h=f}d=H[e>>2];if(d){continue}break}}}e=H[i+4>>2];d=e-1|0;if(!(d&e)){d=d&k;break m}if(e>>>0>k>>>0){d=k;break m}d=(k>>>0)%(e>>>0)|0}c=H[i>>2]+(d<<2)|0;d=H[c>>2];A:{B:{if(!d){d=i+8|0;H[l>>2]=H[d>>2];H[i+8>>2]=l;H[c>>2]=d;d=H[l>>2];if(!d){break A}d=H[d+4>>2];c=e-1|0;C:{if(!(c&e)){d=c&d;break C}if(d>>>0>>0){break C}d=(d>>>0)%(e>>>0)|0}d=H[i>>2]+(d<<2)|0;break B}H[l>>2]=H[d>>2]}H[d>>2]=l}H[i+12>>2]=H[i+12>>2]+1;d=1}F[g+60|0]=d;H[g+56>>2]=l;d=H[a+40>>2];sa(H[H[a>>2]>>2]+N(d,q)|0,g+28|0,d);m=H[g+8>>2];H[m+(s<<2)>>2]=q;q=q+1|0}d=s+1|0;o=d?o:o+1|0;s=d;c=H[a+80>>2];if(!o&c>>>0>d>>>0){continue}break}if((c|0)!=(q|0)){D:{if(!I[a+84|0]){b=H[a+72>>2];f=H[a+68>>2];if((b|0)==(f|0)){break D}b=b-f>>2;c=b>>>0>1?b:1;h=c&3;d=0;b=0;if(c-1>>>0>=3){o=c&-4;e=0;while(1){k=b<<2;c=k+f|0;H[c>>2]=H[(H[c>>2]<<2)+m>>2];c=f+(k|4)|0;H[c>>2]=H[(H[c>>2]<<2)+m>>2];c=f+(k|8)|0;H[c>>2]=H[(H[c>>2]<<2)+m>>2];c=f+(k|12)|0;H[c>>2]=H[(H[c>>2]<<2)+m>>2];b=b+4|0;e=e+4|0;if((o|0)!=(e|0)){continue}break}}if(!h){break D}while(1){c=f+(b<<2)|0;H[c>>2]=H[(H[c>>2]<<2)+m>>2];b=b+1|0;d=d+1|0;if((h|0)!=(d|0)){continue}break}break D}F[a+84|0]=0;e=a+68|0;b=H[a+68>>2];d=H[a+72>>2]-b>>2;E:{if(d>>>0>>0){La(e,c-d|0,2176);c=H[a+80>>2];break E}if(c>>>0>=d>>>0){break E}H[a+72>>2]=b+(c<<2)}if(!c){break D}f=H[e>>2];d=0;b=0;if(c-1>>>0>=3){h=c&-4;e=0;while(1){k=b<<2;H[k+f>>2]=H[k+m>>2];o=k|4;H[o+f>>2]=H[m+o>>2];o=k|8;H[o+f>>2]=H[m+o>>2];o=k|12;H[o+f>>2]=H[m+o>>2];b=b+4|0;e=e+4|0;if((h|0)!=(e|0)){continue}break}}e=c&3;if(!e){break D}while(1){c=b<<2;H[c+f>>2]=H[c+m>>2];b=b+1|0;d=d+1|0;if((e|0)!=(d|0)){continue}break}}H[a+80>>2]=q}qa(m)}b=H[g+40>>2];if(b){while(1){a=H[b>>2];qa(b);b=a;if(b){continue}break}}a=H[g+32>>2];H[g+32>>2]=0;if(a){qa(a)}da=g- -64|0;return q}ua();X()}function Gf(a,b){var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=O(0),q=0,r=0,s=0,t=O(0);g=da+-64|0;da=g;H[g+40>>2]=0;H[g+44>>2]=0;H[g+32>>2]=0;H[g+36>>2]=0;H[g+48>>2]=1065353216;d=H[a+80>>2];H[g+16>>2]=0;H[g+8>>2]=0;H[g+12>>2]=0;a:{if(d){if(d>>>0>=1073741824){break a}c=d<<2;m=ra(c);H[g+8>>2]=m;d=c+m|0;H[g+16>>2]=d;ta(m,0,c);H[g+12>>2]=d;while(1){d=H[H[b>>2]>>2];e=H[b+48>>2]+zl(H[b+40>>2],H[b+44>>2],s,0)|0;d=d+e|0;d=I[d|0]|I[d+1|0]<<8;G[g+24>>1]=d;G[g+30>>1]=d;d=0;n=H[g+36>>2];b:{if(!n){break b}h=H[g+32>>2];k=I[g+25|0]^(I[g+24|0]^318)+239;c=k&n+1023;e=Cl(n);c:{if(e>>>0<=1){break c}c=k;if(c>>>0>>0){break c}c=(k>>>0)%(n>>>0)|0}f=h;h=c;c=H[f+(c<<2)>>2];if(!c){break b}c=H[c>>2];if(!c){break b}d:{if(e>>>0>=2){j=I[g+24|0];f=I[g+25|0];while(1){e=H[c+4>>2];e:{if((e|0)!=(k|0)){if(e>>>0>=n>>>0){e=(e>>>0)%(n>>>0)|0}if((e|0)!=(h|0)){break b}break e}e=I[c+8|0];f:{if((e|0)!=(j|0)){e=(e|0)==(j|0);break f}e=(f|0)==I[c+9|0]}if(e){break d}}c=H[c>>2];if(c){continue}break}break b}j=n-1|0;n=I[g+24|0];f=I[g+25|0];while(1){e=H[c+4>>2];g:{if((e|0)!=(k|0)){if((h|0)!=(e&j)){break b}break g}e=I[c+8|0];if((e|0)!=(n|0)){if((e|0)!=(n|0)){break g}break d}if((f|0)==I[c+9|0]){break d}}c=H[c>>2];if(c){continue}break}break b}d=c}h:{if(d){H[(s<<2)+m>>2]=H[d+12>>2];break h}H[g+4>>2]=q;G[g>>1]=J[g+24>>1];d=0;k=I[g+1|0]^(I[g|0]^318)+239;i:{j:{i=g+32|0;e=H[i+4>>2];if(!e){break j}if(e-1&e){d=k;if(e>>>0<=d>>>0){d=(k>>>0)%(e>>>0)|0}l=H[H[i>>2]+(d<<2)>>2];if(!l){break j}f=I[g|0];h=I[g+1|0];while(1){l=H[l>>2];if(!l){break j}c=H[l+4>>2];if((c|0)!=(k|0)){if(c>>>0>=e>>>0){c=(c>>>0)%(e>>>0)|0}if((c|0)!=(d|0)){break j}}c=I[l+8|0];k:{if((c|0)!=(f|0)){c=(c|0)==(f|0);break k}c=(h|0)==I[l+9|0]}if(!c){continue}break}d=0;break i}d=k&e+1023;l=H[H[i>>2]+(d<<2)>>2];if(!l){break j}f=e-1|0;j=I[g|0];h=I[g+1|0];while(1){l=H[l>>2];if(!l){break j}c=H[l+4>>2];if((c|0)!=(k|0)&(c&f)!=(d|0)){break j}c=I[l+8|0];l:{if((c|0)!=(j|0)){c=(c|0)==(j|0);break l}c=(h|0)==I[l+9|0]}if(!c){continue}break}d=0;break i}l=ra(16);G[l+8>>1]=J[g>>1];c=H[g+4>>2];H[l+4>>2]=k;H[l+12>>2]=c;H[l>>2]=0;p=O(H[i+12>>2]+1>>>0);t=L[i+16>>2];m:{if(p>O(t*O(e>>>0))?0:e){break m}d=2;c=(e-1&e)!=0|e>>>0<3|e<<1;p=O(U(O(p/t)));n:{if(p=O(0)){h=~~p>>>0;break n}h=0}c=c>>>0>h>>>0?c:h;o:{if((c|0)==1){break o}if(!(c&c-1)){d=c;break o}d=Ja(c);e=H[i+4>>2]}p:{if(d>>>0<=e>>>0){if(d>>>0>=e>>>0){break p}h=e>>>0<3;p=O(U(O(O(K[i+12>>2])/L[i+16>>2])));q:{if(p=O(0)){c=~~p>>>0;break q}c=0}r:{s:{if(h){break s}if(Cl(e)>>>0>1){break s}c=c>>>0<2?c:1<<32-Q(c-1|0);break r}c=Ja(c)}d=c>>>0>>0?d:c;if(e>>>0<=d>>>0){break p}}c=0;f=0;j=d;t:{u:{v:{if(d){if(j>>>0>=1073741824){break v}d=ra(j<<2);e=H[i>>2];H[i>>2]=d;if(e){qa(e)}H[i+4>>2]=j;if(j-1>>>0>=3){d=j&-4;e=0;while(1){h=c<<2;H[h+H[i>>2]>>2]=0;H[H[i>>2]+(h|4)>>2]=0;H[H[i>>2]+(h|8)>>2]=0;H[H[i>>2]+(h|12)>>2]=0;c=c+4|0;e=e+4|0;if((d|0)!=(e|0)){continue}break}}d=j&3;if(d){while(1){H[H[i>>2]+(c<<2)>>2]=0;c=c+1|0;f=f+1|0;if((d|0)!=(f|0)){continue}break}}e=H[i+8>>2];if(!e){break t}c=i+8|0;h=H[e+4>>2];d=j-1|0;if(!(d&j)){break u}h=h>>>0>=j>>>0?(h>>>0)%(j>>>0)|0:h;H[H[i>>2]+(h<<2)>>2]=c;d=H[e>>2];if(!d){break t}while(1){f=H[d+4>>2];if(j>>>0<=f>>>0){f=(f>>>0)%(j>>>0)|0}w:{if((f|0)==(h|0)){e=d;break w}c=d;r=f<<2;n=r+H[i>>2]|0;if(!H[n>>2]){H[n>>2]=e;e=d;h=f;break w}while(1){f=c;c=H[c>>2];if(c){m=I[d+8|0];n=I[c+8|0];x:{if((m|0)!=(n|0)){m=(m|0)==(n|0);break x}m=I[d+9|0]==I[c+9|0]}if(m){continue}}break}H[e>>2]=c;H[f>>2]=H[H[r+H[i>>2]>>2]>>2];H[H[r+H[i>>2]>>2]>>2]=d}d=H[e>>2];if(d){continue}break}break t}d=H[i>>2];H[i>>2]=0;if(d){qa(d)}H[i+4>>2]=0;break t}ya();X()}h=d&h;H[H[i>>2]+(h<<2)>>2]=c;d=H[e>>2];if(!d){break t}m=j-1|0;while(1){f=m&H[d+4>>2];y:{if((f|0)==(h|0)){e=d;break y}c=d;r=f<<2;j=r+H[i>>2]|0;if(H[j>>2]){while(1){f=c;c=H[c>>2];if(c){n=I[d+8|0];j=I[c+8|0];z:{if((n|0)!=(j|0)){j=(j|0)==(n|0);break z}j=I[d+9|0]==I[c+9|0]}if(j){continue}}break}H[e>>2]=c;H[f>>2]=H[H[r+H[i>>2]>>2]>>2];H[H[r+H[i>>2]>>2]>>2]=d;break y}H[j>>2]=e;e=d;h=f}d=H[e>>2];if(d){continue}break}}}e=H[i+4>>2];d=e-1|0;if(!(d&e)){d=d&k;break m}if(e>>>0>k>>>0){d=k;break m}d=(k>>>0)%(e>>>0)|0}c=H[i>>2]+(d<<2)|0;d=H[c>>2];A:{B:{if(!d){d=i+8|0;H[l>>2]=H[d>>2];H[i+8>>2]=l;H[c>>2]=d;d=H[l>>2];if(!d){break A}d=H[d+4>>2];c=e-1|0;C:{if(!(c&e)){d=c&d;break C}if(d>>>0>>0){break C}d=(d>>>0)%(e>>>0)|0}d=H[i>>2]+(d<<2)|0;break B}H[l>>2]=H[d>>2]}H[d>>2]=l}H[i+12>>2]=H[i+12>>2]+1;d=1}F[g+60|0]=d;H[g+56>>2]=l;d=H[a+40>>2];sa(H[H[a>>2]>>2]+N(d,q)|0,g+30|0,d);m=H[g+8>>2];H[m+(s<<2)>>2]=q;q=q+1|0}d=s+1|0;o=d?o:o+1|0;s=d;c=H[a+80>>2];if(!o&c>>>0>d>>>0){continue}break}if((c|0)!=(q|0)){D:{if(!I[a+84|0]){b=H[a+72>>2];f=H[a+68>>2];if((b|0)==(f|0)){break D}b=b-f>>2;c=b>>>0>1?b:1;h=c&3;d=0;b=0;if(c-1>>>0>=3){o=c&-4;e=0;while(1){k=b<<2;c=k+f|0;H[c>>2]=H[(H[c>>2]<<2)+m>>2];c=f+(k|4)|0;H[c>>2]=H[(H[c>>2]<<2)+m>>2];c=f+(k|8)|0;H[c>>2]=H[(H[c>>2]<<2)+m>>2];c=f+(k|12)|0;H[c>>2]=H[(H[c>>2]<<2)+m>>2];b=b+4|0;e=e+4|0;if((o|0)!=(e|0)){continue}break}}if(!h){break D}while(1){c=f+(b<<2)|0;H[c>>2]=H[(H[c>>2]<<2)+m>>2];b=b+1|0;d=d+1|0;if((h|0)!=(d|0)){continue}break}break D}F[a+84|0]=0;e=a+68|0;b=H[a+68>>2];d=H[a+72>>2]-b>>2;E:{if(d>>>0>>0){La(e,c-d|0,2176);c=H[a+80>>2];break E}if(c>>>0>=d>>>0){break E}H[a+72>>2]=b+(c<<2)}if(!c){break D}f=H[e>>2];d=0;b=0;if(c-1>>>0>=3){h=c&-4;e=0;while(1){k=b<<2;H[k+f>>2]=H[k+m>>2];o=k|4;H[o+f>>2]=H[m+o>>2];o=k|8;H[o+f>>2]=H[m+o>>2];o=k|12;H[o+f>>2]=H[m+o>>2];b=b+4|0;e=e+4|0;if((h|0)!=(e|0)){continue}break}}e=c&3;if(!e){break D}while(1){c=b<<2;H[c+f>>2]=H[c+m>>2];b=b+1|0;d=d+1|0;if((e|0)!=(d|0)){continue}break}}H[a+80>>2]=q}qa(m)}b=H[g+40>>2];if(b){while(1){a=H[b>>2];qa(b);b=a;if(b){continue}break}}a=H[g+32>>2];H[g+32>>2]=0;if(a){qa(a)}da=g- -64|0;return q}ua();X()}function se(a,b,c,d,e){var f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,I=0,J=0,L=0,M=0,O=0;o=da-32|0;da=o;H[a>>2]=H[d>>2];d=H[c>>2]-H[b>>2]|0;H[a+4>>2]=d;k=H[e+20>>2];if(!H[e+16>>2]&(k|0)<=0|(k|0)<0){d=a+4|0;wa(e,H[e+4>>2],a,d);k=H[e+20>>2];if(!H[e+16>>2]&(k|0)<=0|(k|0)<0){wa(e,H[e+4>>2],d,a+8|0)}d=H[d>>2]}if(d){B=a+12|0;le(B);C=a+1068|0;d=C;H[d+12>>2]=0;H[d+16>>2]=0;H[d+4>>2]=H[d>>2];D=a+1088|0;d=D;H[d+12>>2]=0;H[d+16>>2]=0;H[d+4>>2]=H[d>>2];E=a+1108|0;d=E;H[d+12>>2]=0;H[d+16>>2]=0;H[d+4>>2]=H[d>>2];H[o+24>>2]=H[b+8>>2];d=H[b+4>>2];H[o+16>>2]=H[b>>2];H[o+20>>2]=d;H[o+8>>2]=H[c+8>>2];b=H[c+4>>2];H[o>>2]=H[c>>2];H[o+4>>2]=b;b=0;f=da-32|0;da=f;d=a;h=H[a+8>>2];H[f+16>>2]=0;H[f+8>>2]=0;H[f+12>>2]=0;a:{b:{if(h){if(h>>>0>=1073741824){break b}a=h<<2;b=ra(a);H[f+8>>2]=b;g=a+b|0;H[f+16>>2]=g;ta(b,0,a);H[f+12>>2]=g}a=H[d+1164>>2];c=H[a>>2];if(c){H[a+4>>2]=c;qa(c);H[a+8>>2]=0;H[a>>2]=0;H[a+4>>2]=0;h=H[d+8>>2];g=H[f+12>>2];b=H[f+8>>2]}H[a+4>>2]=g;H[a>>2]=b;H[a+8>>2]=H[f+16>>2];b=0;H[f+16>>2]=0;H[f+8>>2]=0;H[f+12>>2]=0;a=0;c:{if(h){if(h>>>0>=1073741824){break c}c=h<<2;a=ra(c);H[f+8>>2]=a;b=a+c|0;H[f+16>>2]=b;ta(a,0,c);H[f+12>>2]=b}c=H[d+1176>>2];k=H[c>>2];if(k){H[c+4>>2]=k;qa(k);H[c+8>>2]=0;H[c>>2]=0;H[c+4>>2]=0;b=H[f+12>>2];a=H[f+8>>2]}H[c+4>>2]=b;H[c>>2]=a;H[c+8>>2]=H[f+16>>2];t=H[o+20>>2];q=H[o+24>>2];w=H[o+4>>2];x=H[o+8>>2];b=H[o>>2];c=H[o+16>>2];H[f+24>>2]=0;H[f+28>>2]=0;H[f+16>>2]=0;H[f+20>>2]=0;H[f+8>>2]=0;H[f+12>>2]=0;gb(f+8|0);a=H[f+24>>2]+H[f+28>>2]|0;k=(a>>>0)/113|0;a=H[H[f+12>>2]+(k<<2)>>2]+N(a-N(k,113)|0,36)|0;H[a+32>>2]=0;H[a+28>>2]=b-c;H[a+24>>2]=0;H[a+16>>2]=w;H[a+20>>2]=x;H[a+12>>2]=b;H[a+4>>2]=t;H[a+8>>2]=q;H[a>>2]=c;h=H[f+28>>2]+1|0;H[f+28>>2]=h;if(h){J=q&-4;F=q&3;L=d+1068|0;G=d+12|0;M=d+1108|0;O=q-1>>>0<3;while(1){b=H[f+12>>2];l=H[f+24>>2];j=h-1|0;a=l+j|0;c=(a>>>0)/113|0;a=H[b+(c<<2)>>2]+N(a-N(c,113)|0,36)|0;z=H[a+32>>2];g=H[a+24>>2];k=H[a+12>>2];c=H[a>>2];H[f+28>>2]=j;a=H[f+16>>2];if((((a|0)==(b|0)?0:N(a-b>>2,113)-1|0)-(h+l|0)|0)+1>>>0>=226){qa(H[a-4>>2]);H[f+16>>2]=H[f+16>>2]-4}b=H[d>>2];h=(g|0)==(H[d+8>>2]-1|0)?0:g+1|0;l=h<<2;y=N(z,12);j=y+H[d+1176>>2]|0;g=H[l+H[j>>2]>>2];d:{e:{if((b|0)==(g|0)){break e}f:{g:{s=k-c|0;if(s>>>0<=2){g=H[d+1152>>2];H[g>>2]=h;b=1;a=H[d+8>>2];if(a>>>0>1){break g}break f}j=H[d+1164>>2];a=j+y|0;i=j;j=y+12|0;cb(i+j|0,H[a>>2],H[a+4>>2]);a=l+H[j+H[d+1164>>2]>>2]|0;j=H[a>>2]+(1<>2]=j;a=c;h:{if((k|0)==(a|0)){break h}I=H[t+24>>2];b=c;a=k;if(!q){if(j>>>0>K[l+I>>2]){break h}while(1){a=a-1|0;if((b|0)==(a|0)){a=b;break h}if(j>>>0<=K[(l+H[w+24>>2]|0)+(N(a,x)<<2)>>2]){continue}b=b+1|0;if((b|0)!=(a|0)){continue}break}break h}while(1){p=(N(b,q)<<2)+I|0;if(j>>>0>K[p+l>>2]){b=b+1|0;if((b|0)!=(a|0)){continue}break h}while(1){a=a-1|0;if((b|0)==(a|0)){a=b;break h}n=H[w+24>>2]+(N(a,x)<<2)|0;if(j>>>0<=K[n+l>>2]){continue}break}A=0;g=0;u=0;if(!O){while(1){m=g<<2;i=m+p|0;r=H[i>>2];v=i;i=m+n|0;H[v>>2]=H[i>>2];H[i>>2]=r;i=m|4;r=i+p|0;v=H[r>>2];i=i+n|0;H[r>>2]=H[i>>2];H[i>>2]=v;i=m|8;r=i+p|0;v=H[r>>2];i=i+n|0;H[r>>2]=H[i>>2];H[i>>2]=v;m=m|12;i=m+p|0;r=H[i>>2];m=m+n|0;H[i>>2]=H[m>>2];H[m>>2]=r;g=g+4|0;u=u+4|0;if((J|0)!=(u|0)){continue}break}}if(F){while(1){m=g<<2;u=m+p|0;i=H[u>>2];m=m+n|0;H[u>>2]=H[m>>2];H[m>>2]=i;g=g+1|0;A=A+1|0;if((A|0)!=(F|0)){continue}break}}b=b+1|0;if((b|0)!=(a|0)){continue}break}}j=a-c|0;p=k-a|0;if((j|0)!=(p|0)){vc(M,j>>>0

>>0)}m=z+1|0;b=Q(s);n=b^31;g=s>>>1|0;i:{if(j>>>0

>>0){if(!n){break i}s=g-j|0;b=1<<30-b;g=0;while(1){Ga((g<<5)+G|0,(b&s)!=0);b=b>>>1|0;g=g+1|0;if((n|0)!=(g|0)){continue}break}break i}if(!n){break i}s=g-p|0;b=1<<30-b;g=0;while(1){Ga((g<<5)+G|0,(b&s)!=0);b=b>>>1|0;g=g+1|0;if((n|0)!=(g|0)){continue}break}}i=l;b=H[d+1176>>2];g=b+y|0;l=H[g>>2];n=i+l|0;H[n>>2]=H[n>>2]+1;cb(b+N(m,12)|0,l,H[g+4>>2]);if((a|0)!=(c|0)){g=H[f+28>>2]+H[f+24>>2]|0;l=H[f+16>>2];b=H[f+12>>2];if((g|0)==(((b|0)==(l|0)?0:N(l-b>>2,113)-1|0)|0)){gb(f+8|0);g=H[f+24>>2]+H[f+28>>2]|0;i=H[f+12>>2]}else{i=b}b=(g>>>0)/113|0;b=H[i+(b<<2)>>2]+N(g-N(b,113)|0,36)|0;H[b+32>>2]=z;H[b+28>>2]=j;H[b+24>>2]=h;H[b+16>>2]=t;H[b+12>>2]=a;H[b+4>>2]=t;H[b+8>>2]=q;H[b>>2]=c;H[b+20>>2]=q;H[f+28>>2]=H[f+28>>2]+1}if((a|0)==(k|0)){break e}g=H[f+28>>2]+H[f+24>>2]|0;l=H[f+16>>2];b=H[f+12>>2];if((g|0)==(((b|0)==(l|0)?0:N(l-b>>2,113)-1|0)|0)){gb(f+8|0);g=H[f+24>>2]+H[f+28>>2]|0;j=H[f+12>>2]}else{j=b}b=(g>>>0)/113|0;b=H[j+(b<<2)>>2]+N(g-N(b,113)|0,36)|0;H[b+32>>2]=m;H[b+28>>2]=p;H[b+24>>2]=h;H[b+16>>2]=w;H[b+20>>2]=x;H[b+12>>2]=k;H[b+4>>2]=t;H[b>>2]=a;H[b+8>>2]=q;h=H[f+28>>2]+1|0;H[f+28>>2]=h;break d}while(1){h=(a-1|0)==(h|0)?0:h+1|0;H[g+(b<<2)>>2]=h;a=H[d+8>>2];b=b+1|0;if(a>>>0>b>>>0){continue}break}}g=0;b=a;if((c|0)==(k|0)){break e}while(1){j:{if(!b){b=0;break j}l=H[t+24>>2]+(N(H[t+4>>2],c+g|0)<<2)|0;h=0;while(1){b=H[d>>2];p=H[H[d+1152>>2]+(h<<2)>>2]<<2;n=H[p+H[j>>2]>>2];if((b|0)!=(n|0)){Lb(L,b-n|0,H[l+p>>2]);a=H[d+8>>2]}b=a;h=h+1|0;if(h>>>0>>0){continue}break}}g=g+1|0;if((s|0)!=(g|0)){continue}break}}h=H[f+28>>2]}if(h){continue}break}H[o+16>>2]=c;H[o>>2]=k}H[f+28>>2]=0;c=H[f+16>>2];h=H[f+12>>2];a=c-h|0;if(a>>>0>=9){while(1){qa(H[h>>2]);h=H[f+12>>2]+4|0;H[f+12>>2]=h;c=H[f+16>>2];a=c-h|0;if(a>>>0>8){continue}break}}b=56;k:{switch((a>>>2|0)-1|0){case 1:b=113;case 0:H[f+24>>2]=b;break;default:break k}}l:{if((c|0)==(h|0)){break l}while(1){qa(H[h>>2]);h=h+4|0;if((h|0)!=(c|0)){continue}break}a=H[f+16>>2];b=H[f+12>>2];if((a|0)==(b|0)){break l}H[f+16>>2]=a+((b-a|0)+3&-4)}a=H[f+8>>2];if(a){qa(a)}da=f+32|0;break a}ua();X()}ua();X()}ke(B,e);fb(C,e);fb(D,e);fb(E,e)}da=o+32|0;return 1}function Vh(a,b,c,d,e,f){a=a|0;b=+b;c=c|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,w=0,x=0,y=0,z=0;l=da-560|0;da=l;H[l+44>>2]=0;A(+b);g=v(1)|0;v(0)|0;a:{if((g|0)<0){s=1;w=1173;b=-b;A(+b);g=v(1)|0;v(0)|0;break a}if(e&2048){s=1;w=1176;break a}s=e&1;w=s?1179:1174;z=!s}b:{if((g&2146435072)==2146435072){d=s+3|0;Ta(a,32,c,d,e&-65537);Ra(a,w,s);f=f&32;Ra(a,b!=b?f?1434:1643:f?1506:1647,3);Ta(a,32,c,d,e^8192);i=(c|0)<(d|0)?d:c;break b}u=l+16|0;c:{d:{e:{b=Oe(b,l+44|0);b=b+b;if(b!=0){g=H[l+44>>2];H[l+44>>2]=g-1;r=f|32;if((r|0)!=97){break e}break c}r=f|32;if((r|0)==97){break c}k=H[l+44>>2];m=(d|0)<0?6:d;break d}k=g-29|0;H[l+44>>2]=k;b=b*268435456;m=(d|0)<0?6:d}p=(l+48|0)+((k|0)<0?0:288)|0;h=p;while(1){if(b<4294967296&b>=0){d=~~b>>>0}else{d=0}H[h>>2]=d;h=h+4|0;b=(b-+(d>>>0))*1e9;if(b!=0){continue}break}f:{if((k|0)<=0){d=k;g=h;j=p;break f}j=p;d=k;while(1){d=(d|0)<29?d:29;g=h-4|0;g:{if(j>>>0>g>>>0){break g}i=0;while(1){o=H[g>>2];n=d&31;x=i;if((d&63)>>>0>=32){i=o<>>32-n;o=o<>>0>>0?i+1|0:i;i=Bl(n,i,1e9,0);o=zl(i,ea,1e9,0);H[g>>2]=n-o;g=g-4|0;if(j>>>0<=g>>>0){continue}break}if(!i){break g}j=j-4|0;H[j>>2]=i}while(1){g=h;if(j>>>0>>0){h=g-4|0;if(!H[h>>2]){continue}}break}d=H[l+44>>2]-d|0;H[l+44>>2]=d;h=g;if((d|0)>0){continue}break}}if((d|0)<0){t=((m+25>>>0)/9|0)+1|0;n=(r|0)==102;while(1){d=0-d|0;i=(d|0)<9?d:9;h:{if(g>>>0<=j>>>0){h=H[j>>2];break h}o=1e9>>>i|0;y=-1<>2];H[h>>2]=x+(d>>>i|0);d=N(o,d&y);h=h+4|0;if(h>>>0>>0){continue}break}h=H[j>>2];if(!d){break h}H[g>>2]=d;g=g+4|0}d=i+H[l+44>>2]|0;H[l+44>>2]=d;j=(!h<<2)+j|0;h=n?p:j;g=g-h>>2>(t|0)?h+(t<<2)|0:g;if((d|0)<0){continue}break}}d=0;i:{if(g>>>0<=j>>>0){break i}d=N(p-j>>2,9);h=10;i=H[j>>2];if(i>>>0<10){break i}while(1){d=d+1|0;h=N(h,10);if(i>>>0>=h>>>0){continue}break}}h=(m-((r|0)==102?0:d)|0)-((r|0)==103&(m|0)!=0)|0;if((h|0)<(N(g-p>>2,9)-9|0)){i=h+9216|0;n=(i|0)/9|0;k=((((k|0)<0?4:292)+l|0)+(n<<2)|0)-4048|0;h=10;i=i-N(n,9)|0;if((i|0)<=7){while(1){h=N(h,10);i=i+1|0;if((i|0)!=8){continue}break}}n=H[k>>2];t=(n>>>0)/(h>>>0)|0;i=n-N(h,t)|0;o=k+4|0;j:{if(!i&(o|0)==(g|0)){break j}k:{if(!(t&1)){b=9007199254740992;if(!(F[k-4|0]&1)|((h|0)!=1e9|j>>>0>=k>>>0)){break k}}b=9007199254740994}q=(g|0)==(o|0)?1:1.5;o=h>>>1|0;q=i>>>0>>0?.5:(o|0)==(i|0)?q:1.5;if(!(I[w|0]!=45|z)){q=-q;b=-b}i=n-i|0;H[k>>2]=i;if(b+q==b){break j}d=h+i|0;H[k>>2]=d;if(d>>>0>=1e9){while(1){H[k>>2]=0;k=k-4|0;if(k>>>0>>0){j=j-4|0;H[j>>2]=0}d=H[k>>2]+1|0;H[k>>2]=d;if(d>>>0>999999999){continue}break}}d=N(p-j>>2,9);h=10;i=H[j>>2];if(i>>>0<10){break j}while(1){d=d+1|0;h=N(h,10);if(i>>>0>=h>>>0){continue}break}}h=k+4|0;g=g>>>0>h>>>0?h:g}while(1){h=g;i=g>>>0<=j>>>0;if(!i){g=h-4|0;if(!H[g>>2]){continue}}break}l:{if((r|0)!=103){k=e&8;break l}g=m?m:1;k=(g|0)>(d|0)&(d|0)>-5;m=(k?d^-1:-1)+g|0;f=(k?-1:-2)+f|0;k=e&8;if(k){break l}g=-9;m:{if(i){break m}n=H[h-4>>2];if(!n){break m}i=10;g=0;if((n>>>0)%10|0){break m}while(1){k=g;g=g+1|0;i=N(i,10);if(!((n>>>0)%(i>>>0)|0)){continue}break}g=k^-1}i=N(h-p>>2,9);if((f&-33)==70){k=0;g=(g+i|0)-9|0;g=(g|0)>0?g:0;m=(g|0)>(m|0)?m:g;break l}k=0;g=((d+i|0)+g|0)-9|0;g=(g|0)>0?g:0;m=(g|0)>(m|0)?m:g}i=-1;r=k|m;if(((r?2147483645:2147483646)|0)<(m|0)){break b}n=(((r|0)!=0)+m|0)+1|0;o=f&-33;n:{if((o|0)==70){if((2147483647-n|0)<(d|0)){break b}g=(d|0)>0?d:0;break n}g=d>>31;g=Ob((g^d)-g|0,0,u);if((u-g|0)<=1){while(1){g=g-1|0;F[g|0]=48;if((u-g|0)<2){continue}break}}t=g-2|0;F[t|0]=f;F[g-1|0]=(d|0)<0?45:43;g=u-t|0;if((g|0)>(2147483647-n|0)){break b}}d=g+n|0;if((d|0)>(s^2147483647)){break b}f=d+s|0;Ta(a,32,c,f,e);Ra(a,w,s);Ta(a,48,c,f,e^65536);o:{p:{q:{if((o|0)==70){g=l+16|0;d=g|8;k=g|9;i=j>>>0>p>>>0?p:j;j=i;while(1){g=Ob(H[j>>2],0,k);r:{if((i|0)!=(j|0)){if(l+16>>>0>=g>>>0){break r}while(1){g=g-1|0;F[g|0]=48;if(l+16>>>0>>0){continue}break}break r}if((g|0)!=(k|0)){break r}F[l+24|0]=48;g=d}Ra(a,g,k-g|0);j=j+4|0;if(p>>>0>=j>>>0){continue}break}if(r){Ra(a,1981,1)}if((m|0)<=0|h>>>0<=j>>>0){break q}while(1){g=Ob(H[j>>2],0,k);if(g>>>0>l+16>>>0){while(1){g=g-1|0;F[g|0]=48;if(l+16>>>0>>0){continue}break}}Ra(a,g,(m|0)<9?m:9);g=m-9|0;j=j+4|0;if(h>>>0<=j>>>0){break p}d=(m|0)>9;m=g;if(d){continue}break}break p}s:{if((m|0)<0){break s}i=h>>>0>j>>>0?h:j+4|0;g=l+16|0;d=g|8;p=g|9;h=j;while(1){g=Ob(H[h>>2],0,p);if((p|0)==(g|0)){F[l+24|0]=48;g=d}t:{if((h|0)!=(j|0)){if(l+16>>>0>=g>>>0){break t}while(1){g=g-1|0;F[g|0]=48;if(l+16>>>0>>0){continue}break}break t}Ra(a,g,1);g=g+1|0;if(!(k|m)){break t}Ra(a,1981,1)}x=g;g=p-g|0;Ra(a,x,(g|0)>(m|0)?m:g);m=m-g|0;h=h+4|0;if(i>>>0<=h>>>0){break s}if((m|0)>=0){continue}break}}Ta(a,48,m+18|0,18,0);Ra(a,t,u-t|0);break o}g=m}Ta(a,48,g+9|0,9,0)}Ta(a,32,c,f,e^8192);i=(c|0)<(f|0)?f:c;break b}m=(f<<26>>31&9)+w|0;u:{if(d>>>0>11){break u}g=12-d|0;q=16;while(1){q=q*16;g=g-1|0;if(g){continue}break}if(I[m|0]==45){b=-(q+(-b-q));break u}b=b+q-q}h=H[l+44>>2];g=h>>31;g=Ob((g^h)-g|0,0,u);if((u|0)==(g|0)){F[l+15|0]=48;g=l+15|0}k=s|2;j=f&32;h=H[l+44>>2];p=g-2|0;F[p|0]=f+15;F[g-1|0]=(h|0)<0?45:43;i=e&8;h=l+16|0;while(1){f=h;if(P(b)<2147483648){g=~~b}else{g=-2147483648}F[h|0]=j|I[g+17776|0];b=(b-+(g|0))*16;h=f+1|0;if(!(!((d|0)>0|i)&b==0|(h-(l+16|0)|0)!=1)){F[f+1|0]=46;h=f+2|0}if(b!=0){continue}break}i=-1;n=u-p|0;f=n+k|0;if((2147483645-f|0)<(d|0)){break b}v:{w:{if(!d){break w}j=h-(l+16|0)|0;if((j-2|0)>=(d|0)){break w}g=d+2|0;break v}j=h-(l+16|0)|0;g=j}d=g+f|0;Ta(a,32,c,d,e);Ra(a,m,k);Ta(a,48,c,d,e^65536);Ra(a,l+16|0,j);Ta(a,48,g-j|0,0,0);Ra(a,p,n);Ta(a,32,c,d,e^8192);i=(c|0)<(d|0)?d:c}da=l+560|0;return i|0}function Ne(a,b,c,d){var e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0;l=1510;g=da-80|0;da=g;H[g+76>>2]=1510;x=g+55|0;r=g+56|0;a:{b:{c:{d:{e:while(1){i=l;if((2147483647-n|0)<(e|0)){break d}n=e+n|0;f:{g:{h:{e=i;f=I[e|0];if(f){while(1){i:{f=f&255;j:{if(!f){l=e;break j}if((f|0)!=37){break i}f=e;while(1){if(I[f+1|0]!=37){l=f;break j}e=e+1|0;h=I[f+2|0];l=f+2|0;f=l;if((h|0)==37){continue}break}}e=e-i|0;w=2147483647-n|0;if((e|0)>(w|0)){break d}if(a){Ra(a,i,e)}if(e){continue e}H[g+76>>2]=l;e=l+1|0;o=-1;if(!(I[l+2|0]!=36|F[l+1|0]-48>>>0>=10)){o=F[l+1|0]-48|0;s=1;e=l+3|0}H[g+76>>2]=e;k=0;f=F[e|0];l=f-32|0;k:{if(l>>>0>31){h=e;break k}h=e;l=1<>2]=h;k=k|l;f=F[e+1|0];l=f-32|0;if(l>>>0>=32){break k}e=h;l=1<>>0>=10)){H[((F[h+1|0]<<2)+d|0)-192>>2]=10;f=h+3|0;s=1;e=H[((F[h+1|0]<<3)+c|0)-384>>2];break m}if(s){break h}f=h+1|0;if(!a){H[g+76>>2]=f;s=0;p=0;break l}e=H[b>>2];H[b>>2]=e+4;s=0;e=H[e>>2]}H[g+76>>2]=f;p=e;if((e|0)>=0){break l}p=0-p|0;k=k|8192;break l}p=Me(g+76|0);if((p|0)<0){break d}f=H[g+76>>2]}e=0;j=-1;n:{if(I[f|0]!=46){l=f;u=0;break n}if(I[f+1|0]==42){o:{if(!(I[f+3|0]!=36|F[f+2|0]-48>>>0>=10)){H[((F[f+2|0]<<2)+d|0)-192>>2]=10;l=f+4|0;j=H[((F[f+2|0]<<3)+c|0)-384>>2];break o}if(s){break h}l=f+2|0;j=0;if(!a){break o}f=H[b>>2];H[b>>2]=f+4;j=H[f>>2]}H[g+76>>2]=l;u=(j^-1)>>>31|0;break n}H[g+76>>2]=f+1;j=Me(g+76|0);l=H[g+76>>2];u=1}p:{while(1){m=e;q=l;e=F[l|0];if(e-123>>>0<4294967238){break p}l=q+1|0;e=I[(e+N(m,58)|0)+17247|0];if(e-1>>>0<8){continue}break}H[g+76>>2]=l;h=28;q:{r:{if((e|0)!=27){if(!e){break c}if((o|0)>=0){H[(o<<2)+d>>2]=e;f=(o<<3)+c|0;e=H[f+4>>2];H[g+64>>2]=H[f>>2];H[g+68>>2]=e;break r}if(!a){break f}Le(g- -64|0,e,b);break q}if((o|0)>=0){break c}}e=0;if(!a){continue e}}f=k&-65537;k=k&8192?f:k;o=0;t=1163;h=r;s:{t:{u:{v:{w:{x:{y:{z:{A:{B:{C:{D:{E:{F:{G:{H:{e=F[q|0];e=m?(e&15)==3?e&-33:e:e;switch(e-88|0){case 11:break s;case 9:case 13:case 14:case 15:break t;case 27:break y;case 12:case 17:break B;case 23:break C;case 0:case 32:break D;case 24:break E;case 22:break F;case 29:break G;case 1:case 2:case 3:case 4:case 5:case 6:case 7:case 8:case 10:case 16:case 18:case 19:case 20:case 21:case 25:case 26:case 28:case 30:case 31:break g;default:break H}}I:{switch(e-65|0){case 0:case 4:case 5:case 6:break t;case 2:break w;case 1:case 3:break g;default:break I}}if((e|0)==83){break x}break g}m=H[g+64>>2];f=H[g+68>>2];t=1163;break A}e=0;J:{switch(m&255){case 0:H[H[g+64>>2]>>2]=n;continue e;case 1:H[H[g+64>>2]>>2]=n;continue e;case 2:i=H[g+64>>2];H[i>>2]=n;H[i+4>>2]=n>>31;continue e;case 3:G[H[g+64>>2]>>1]=n;continue e;case 4:F[H[g+64>>2]]=n;continue e;case 6:H[H[g+64>>2]>>2]=n;continue e;case 7:break J;default:continue e}}i=H[g+64>>2];H[i>>2]=n;H[i+4>>2]=n>>31;continue e}j=j>>>0>8?j:8;k=k|8;e=120}i=r;y=e&32;m=H[g+64>>2];f=H[g+68>>2];if(m|f){while(1){i=i-1|0;F[i|0]=y|I[(m&15)+17776|0];v=!f&m>>>0>15|(f|0)!=0;q=f;f=f>>>4|0;m=(q&15)<<28|m>>>4;if(v){continue}break}}if(!(H[g+64>>2]|H[g+68>>2])|!(k&8)){break z}t=(e>>>4|0)+1163|0;o=2;break z}e=r;i=H[g+68>>2];f=i;m=H[g+64>>2];if(f|m){while(1){e=e-1|0;F[e|0]=m&7|48;v=!f&m>>>0>7|(f|0)!=0;i=f;f=f>>>3|0;m=(i&7)<<29|m>>>3;if(v){continue}break}}i=e;if(!(k&8)){break z}e=r-i|0;j=(e|0)<(j|0)?j:e+1|0;break z}e=H[g+68>>2];f=e;m=H[g+64>>2];if((e|0)<0){e=m;f=0-(f+((e|0)!=0)|0)|0;m=0-e|0;H[g+64>>2]=m;H[g+68>>2]=f;o=1;t=1163;break A}if(k&2048){o=1;t=1164;break A}o=k&1;t=o?1165:1163}i=Ob(m,f,r)}if((j|0)<0?u:0){break d}k=u?k&-65537:k;e=H[g+64>>2];f=H[g+68>>2];if(!(j|(e|f)!=0)){i=r;h=i;j=0;break g}e=!(e|f)+(r-i|0)|0;j=(e|0)<(j|0)?j:e;break g}q=j>>>0<2147483647?j:2147483647;h=q;k=(h|0)!=0;e=H[g+64>>2];i=e?e:1983;e=i;K:{L:{M:{N:{if(!(e&3)|!h){break N}while(1){if(!I[e|0]){break M}h=h-1|0;k=(h|0)!=0;e=e+1|0;if(!(e&3)){break N}if(h){continue}break}}if(!k){break L}}O:{if(!(!I[e|0]|h>>>0<4)){while(1){k=H[e>>2];if((k^-1)&k-16843009&-2139062144){break O}e=e+4|0;h=h-4|0;if(h>>>0>3){continue}break}}if(!h){break L}}while(1){if(!I[e|0]){break K}e=e+1|0;h=h-1|0;if(h){continue}break}}e=0}e=e?e-i|0:q;h=e+i|0;if((j|0)>=0){k=f;j=e;break g}k=f;j=e;if(I[h|0]){break d}break g}if(j){f=H[g+64>>2];break v}e=0;Ta(a,32,p,0,k);break u}H[g+12>>2]=0;H[g+8>>2]=H[g+64>>2];f=g+8|0;H[g+64>>2]=f;j=-1}e=0;P:{while(1){i=H[f>>2];if(!i){break P}h=Ke(g+4|0,i);i=(h|0)<0;if(!(i|h>>>0>j-e>>>0)){f=f+4|0;e=e+h|0;if(j>>>0>e>>>0){continue}break P}break}if(i){break b}}h=61;if((e|0)<0){break c}Ta(a,32,p,e,k);if(!e){e=0;break u}h=0;f=H[g+64>>2];while(1){i=H[f>>2];if(!i){break u}i=Ke(g+4|0,i);h=i+h|0;if(h>>>0>e>>>0){break u}Ra(a,g+4|0,i);f=f+4|0;if(e>>>0>h>>>0){continue}break}}Ta(a,32,p,e,k^8192);e=(e|0)<(p|0)?p:e;continue e}if((j|0)<0?u:0){break d}h=61;e=fa[369](a,M[g+64>>3],p,j,k,e)|0;if((e|0)>=0){continue e}break c}F[g+55|0]=H[g+64>>2];j=1;i=x;k=f;break g}H[g+76>>2]=q;break h}f=I[e+1|0];e=e+1|0;continue}}if(a){break a}if(!s){break f}e=1;while(1){a=H[(e<<2)+d>>2];if(a){Le((e<<3)+c|0,a,b);n=1;e=e+1|0;if((e|0)!=10){continue}break a}break}n=1;if(e>>>0>=10){break a}while(1){if(H[(e<<2)+d>>2]){break h}e=e+1|0;if((e|0)!=10){continue}break}break a}h=28;break c}q=h-i|0;f=(j|0)>(q|0)?j:q;if((f|0)>(2147483647-o|0)){break d}h=61;j=f+o|0;e=(j|0)<(p|0)?p:j;if((w|0)<(e|0)){break c}Ta(a,32,e,j,k);Ra(a,t,o);Ta(a,48,e,j,k^65536);Ta(a,48,f,q,0);Ra(a,i,q);Ta(a,32,e,j,k^8192);continue}break}n=0;break a}h=61}H[4799]=h}n=-1}da=g+80|0;return n}function ne(a,b,c,d,e){var f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,I=0,J=0,L=0,M=0,O=0;n=da-32|0;da=n;H[a>>2]=H[d>>2];d=H[c>>2]-H[b>>2]|0;H[a+4>>2]=d;k=H[e+20>>2];if(!H[e+16>>2]&(k|0)<=0|(k|0)<0){d=a+4|0;wa(e,H[e+4>>2],a,d);k=H[e+20>>2];if(!H[e+16>>2]&(k|0)<=0|(k|0)<0){wa(e,H[e+4>>2],d,a+8|0)}d=H[d>>2]}if(d){B=a+12|0;d=B;H[d+12>>2]=0;H[d+16>>2]=0;H[d+4>>2]=H[d>>2];C=a+32|0;d=C;H[d+12>>2]=0;H[d+16>>2]=0;H[d+4>>2]=H[d>>2];D=a+52|0;d=D;H[d+12>>2]=0;H[d+16>>2]=0;H[d+4>>2]=H[d>>2];E=a+72|0;d=E;H[d+12>>2]=0;H[d+16>>2]=0;H[d+4>>2]=H[d>>2];H[n+24>>2]=H[b+8>>2];d=H[b+4>>2];H[n+16>>2]=H[b>>2];H[n+20>>2]=d;H[n+8>>2]=H[c+8>>2];b=H[c+4>>2];H[n>>2]=H[c>>2];H[n+4>>2]=b;b=0;f=da-32|0;da=f;d=a;g=H[a+8>>2];H[f+16>>2]=0;H[f+8>>2]=0;H[f+12>>2]=0;a:{b:{if(g){if(g>>>0>=1073741824){break b}a=g<<2;b=ra(a);H[f+8>>2]=b;h=a+b|0;H[f+16>>2]=h;ta(b,0,a);H[f+12>>2]=h}a=H[d+128>>2];c=H[a>>2];if(c){H[a+4>>2]=c;qa(c);H[a+8>>2]=0;H[a>>2]=0;H[a+4>>2]=0;g=H[d+8>>2];h=H[f+12>>2];b=H[f+8>>2]}H[a+4>>2]=h;H[a>>2]=b;H[a+8>>2]=H[f+16>>2];b=0;H[f+16>>2]=0;H[f+8>>2]=0;H[f+12>>2]=0;a=0;c:{if(g){if(g>>>0>=1073741824){break c}c=g<<2;a=ra(c);H[f+8>>2]=a;b=a+c|0;H[f+16>>2]=b;ta(a,0,c);H[f+12>>2]=b}c=H[d+140>>2];k=H[c>>2];if(k){H[c+4>>2]=k;qa(k);H[c+8>>2]=0;H[c>>2]=0;H[c+4>>2]=0;b=H[f+12>>2];a=H[f+8>>2]}H[c+4>>2]=b;H[c>>2]=a;H[c+8>>2]=H[f+16>>2];s=H[n+20>>2];q=H[n+24>>2];v=H[n+4>>2];w=H[n+8>>2];b=H[n>>2];c=H[n+16>>2];H[f+24>>2]=0;H[f+28>>2]=0;H[f+16>>2]=0;H[f+20>>2]=0;H[f+8>>2]=0;H[f+12>>2]=0;gb(f+8|0);a=H[f+24>>2]+H[f+28>>2]|0;k=(a>>>0)/113|0;a=H[H[f+12>>2]+(k<<2)>>2]+N(a-N(k,113)|0,36)|0;H[a+32>>2]=0;H[a+28>>2]=b-c;H[a+24>>2]=0;H[a+16>>2]=v;H[a+20>>2]=w;H[a+12>>2]=b;H[a+4>>2]=s;H[a+8>>2]=q;H[a>>2]=c;g=H[f+28>>2]+1|0;H[f+28>>2]=g;if(g){I=q&-4;F=q&3;J=d+32|0;L=d+12|0;M=d+72|0;O=q-1>>>0<3;while(1){b=H[f+12>>2];l=H[f+24>>2];j=g-1|0;a=l+j|0;c=(a>>>0)/113|0;a=H[b+(c<<2)>>2]+N(a-N(c,113)|0,36)|0;z=H[a+32>>2];h=H[a+24>>2];k=H[a+12>>2];c=H[a>>2];H[f+28>>2]=j;a=H[f+16>>2];if((((a|0)==(b|0)?0:N(a-b>>2,113)-1|0)-(g+l|0)|0)+1>>>0>=226){qa(H[a-4>>2]);H[f+16>>2]=H[f+16>>2]-4}b=H[d>>2];g=(h|0)==(H[d+8>>2]-1|0)?0:h+1|0;l=g<<2;x=N(z,12);j=x+H[d+140>>2]|0;h=H[l+H[j>>2]>>2];d:{e:{if((b|0)==(h|0)){break e}f:{g:{y=k-c|0;if(y>>>0<=2){h=H[d+116>>2];H[h>>2]=g;b=1;a=H[d+8>>2];if(a>>>0>1){break g}break f}j=H[d+128>>2];a=j+x|0;i=j;j=x+12|0;cb(i+j|0,H[a>>2],H[a+4>>2]);a=l+H[j+H[d+128>>2]>>2]|0;j=H[a>>2]+(1<>2]=j;a=c;h:{if((k|0)==(a|0)){break h}G=H[s+24>>2];b=c;a=k;if(!q){if(j>>>0>K[l+G>>2]){break h}while(1){a=a-1|0;if((b|0)==(a|0)){a=b;break h}if(j>>>0<=K[(l+H[v+24>>2]|0)+(N(a,w)<<2)>>2]){continue}b=b+1|0;if((b|0)!=(a|0)){continue}break}break h}while(1){o=(N(b,q)<<2)+G|0;if(j>>>0>K[o+l>>2]){b=b+1|0;if((b|0)!=(a|0)){continue}break h}while(1){a=a-1|0;if((b|0)==(a|0)){a=b;break h}p=H[v+24>>2]+(N(a,w)<<2)|0;if(j>>>0<=K[p+l>>2]){continue}break}A=0;h=0;t=0;if(!O){while(1){m=h<<2;i=m+o|0;r=H[i>>2];u=i;i=m+p|0;H[u>>2]=H[i>>2];H[i>>2]=r;i=m|4;r=i+o|0;u=H[r>>2];i=i+p|0;H[r>>2]=H[i>>2];H[i>>2]=u;i=m|8;r=i+o|0;u=H[r>>2];i=i+p|0;H[r>>2]=H[i>>2];H[i>>2]=u;m=m|12;i=m+o|0;r=H[i>>2];m=m+p|0;H[i>>2]=H[m>>2];H[m>>2]=r;h=h+4|0;t=t+4|0;if((I|0)!=(t|0)){continue}break}}if(F){while(1){m=h<<2;t=m+o|0;i=H[t>>2];m=m+p|0;H[t>>2]=H[m>>2];H[m>>2]=i;h=h+1|0;A=A+1|0;if((A|0)!=(F|0)){continue}break}}b=b+1|0;if((b|0)!=(a|0)){continue}break}}j=a-c|0;o=k-a|0;if((j|0)!=(o|0)){vc(M,j>>>0>>0)}Lb(L,Q(y)^31,(y>>>1|0)-(j>>>0>>0?j:o)|0);i=l;b=H[d+140>>2];h=b+x|0;l=H[h>>2];p=i+l|0;H[p>>2]=H[p>>2]+1;p=z+1|0;cb(b+N(p,12)|0,l,H[h+4>>2]);if((a|0)!=(c|0)){b=H[f+28>>2]+H[f+24>>2]|0;l=H[f+16>>2];h=H[f+12>>2];if((b|0)==(((h|0)==(l|0)?0:N(l-h>>2,113)-1|0)|0)){gb(f+8|0);h=H[f+12>>2];b=H[f+24>>2]+H[f+28>>2]|0}i=h;h=(b>>>0)/113|0;b=H[i+(h<<2)>>2]+N(b-N(h,113)|0,36)|0;H[b+32>>2]=z;H[b+28>>2]=j;H[b+24>>2]=g;H[b+16>>2]=s;H[b+12>>2]=a;H[b+4>>2]=s;H[b+8>>2]=q;H[b>>2]=c;H[b+20>>2]=q;H[f+28>>2]=H[f+28>>2]+1}if((a|0)==(k|0)){break e}h=H[f+28>>2]+H[f+24>>2]|0;l=H[f+16>>2];b=H[f+12>>2];if((h|0)==(((b|0)==(l|0)?0:N(l-b>>2,113)-1|0)|0)){gb(f+8|0);h=H[f+24>>2]+H[f+28>>2]|0;j=H[f+12>>2]}else{j=b}b=(h>>>0)/113|0;b=H[j+(b<<2)>>2]+N(h-N(b,113)|0,36)|0;H[b+32>>2]=p;H[b+28>>2]=o;H[b+24>>2]=g;H[b+16>>2]=v;H[b+20>>2]=w;H[b+12>>2]=k;H[b+4>>2]=s;H[b>>2]=a;H[b+8>>2]=q;g=H[f+28>>2]+1|0;H[f+28>>2]=g;break d}while(1){g=(a-1|0)==(g|0)?0:g+1|0;H[h+(b<<2)>>2]=g;a=H[d+8>>2];b=b+1|0;if(a>>>0>b>>>0){continue}break}}if(!a|(c|0)==(k|0)){break e}h=0;b=1;while(1){g=0;i:{if(!b){b=0;break i}l=H[s+24>>2]+(N(H[s+4>>2],c+h|0)<<2)|0;while(1){b=H[d>>2];o=H[H[d+116>>2]+(g<<2)>>2]<<2;p=H[o+H[j>>2]>>2];if((b|0)!=(p|0)){Lb(J,b-p|0,H[l+o>>2]);a=H[d+8>>2]}b=a;g=g+1|0;if(g>>>0>>0){continue}break}}h=h+1|0;if((y|0)!=(h|0)){continue}break}}g=H[f+28>>2]}if(g){continue}break}H[n+16>>2]=c;H[n>>2]=k}H[f+28>>2]=0;c=H[f+16>>2];g=H[f+12>>2];a=c-g|0;if(a>>>0>=9){while(1){qa(H[g>>2]);g=H[f+12>>2]+4|0;H[f+12>>2]=g;c=H[f+16>>2];a=c-g|0;if(a>>>0>8){continue}break}}b=56;j:{switch((a>>>2|0)-1|0){case 1:b=113;case 0:H[f+24>>2]=b;break;default:break j}}k:{if((c|0)==(g|0)){break k}while(1){qa(H[g>>2]);g=g+4|0;if((g|0)!=(c|0)){continue}break}a=H[f+16>>2];b=H[f+12>>2];if((a|0)==(b|0)){break k}H[f+16>>2]=a+((b-a|0)+3&-4)}a=H[f+8>>2];if(a){qa(a)}da=f+32|0;break a}ua();X()}ua();X()}fb(B,e);fb(C,e);fb(D,e);fb(E,e)}da=n+32|0;return 1}function Kf(a,b,c,d){var e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0;h=da-16|0;da=h;H[b+44>>2]=d;H[b+48>>2]=c;d=H[b+12>>2];f=H[b+8>>2];if((d|0)!=(f|0)){while(1){d=d-4|0;e=H[d>>2];H[d>>2]=0;if(e){fa[H[H[e>>2]+4>>2]](e)}if((d|0)!=(f|0)){continue}break}}H[b+12>>2]=f;H[b+24>>2]=H[b+20>>2];H[b+36>>2]=H[b+32>>2];a:{if(!H[b+4>>2]){b=ra(32);c=I[1670]|I[1671]<<8|(I[1672]<<16|I[1673]<<24);d=I[1666]|I[1667]<<8|(I[1668]<<16|I[1669]<<24);F[b+15|0]=d;F[b+16|0]=d>>>8;F[b+17|0]=d>>>16;F[b+18|0]=d>>>24;F[b+19|0]=c;F[b+20|0]=c>>>8;F[b+21|0]=c>>>16;F[b+22|0]=c>>>24;c=I[1663]|I[1664]<<8|(I[1665]<<16|I[1666]<<24);d=I[1659]|I[1660]<<8|(I[1661]<<16|I[1662]<<24);F[b+8|0]=d;F[b+9|0]=d>>>8;F[b+10|0]=d>>>16;F[b+11|0]=d>>>24;F[b+12|0]=c;F[b+13|0]=c>>>8;F[b+14|0]=c>>>16;F[b+15|0]=c>>>24;c=I[1655]|I[1656]<<8|(I[1657]<<16|I[1658]<<24);d=I[1651]|I[1652]<<8|(I[1653]<<16|I[1654]<<24);F[b|0]=d;F[b+1|0]=d>>>8;F[b+2|0]=d>>>16;F[b+3|0]=d>>>24;F[b+4|0]=c;F[b+5|0]=c>>>8;F[b+6|0]=c>>>16;F[b+7|0]=c>>>24;F[b+23|0]=0;H[a>>2]=-1;Ia(a+4|0,b,23);qa(b);break a}d=da-16|0;da=d;e=H[b+44>>2];f=H[e+20>>2];if(!H[e+16>>2]&(f|0)<=0|(f|0)<0){wa(e,H[e+4>>2],1637,1642)}e=fa[H[H[b>>2]+8>>2]](b)|0;F[d+15|0]=e;F[d+14|0]=2;F[d+13|0]=e&255?2:3;e=H[b+44>>2];f=H[e+20>>2];b:{if(!!H[e+16>>2]&(f|0)>=0|(f|0)>0){break b}wa(e,H[e+4>>2],d+14|0,d+15|0);e=H[b+44>>2];f=H[e+20>>2];if(!!H[e+16>>2]&(f|0)>=0|(f|0)>0){break b}wa(e,H[e+4>>2],d+13|0,d+14|0);e=H[b+44>>2];f=H[e+20>>2];if(!!H[e+16>>2]&(f|0)>=0|(f|0)>0){break b}wa(e,H[e+4>>2],d+15|0,d+16|0);e=H[b+44>>2]}k=d,l=fa[H[H[b>>2]+12>>2]](b)|0,F[k+12|0]=l;f=H[e+20>>2];if(!H[e+16>>2]&(f|0)<=0|(f|0)<0){wa(e,H[e+4>>2],d+12|0,d+13|0)}G[d+10>>1]=(H[H[b+4>>2]+4>>2]!=0)<<15;e=H[b+44>>2];f=H[e+20>>2];if(!H[e+16>>2]&(f|0)<=0|(f|0)<0){wa(e,H[e+4>>2],d+10|0,d+12|0)}H[a>>2]=0;H[a+4>>2]=0;H[a+8>>2]=0;H[a+12>>2]=0;da=d+16|0;if(H[a>>2]){break a}e=a+4|0;if(F[a+15|0]<0){qa(H[e>>2])}d=H[H[b+4>>2]+4>>2];c:{if(!d){H[a>>2]=0;H[a+4>>2]=0;H[a+8>>2]=0;H[a+12>>2]=0;break c}f=H[b+44>>2];if(d){Da(H[d+28>>2]-H[d+24>>2]>>2,f);g=H[d+24>>2];j=H[d+28>>2];if((g|0)!=(j|0)){while(1){i=H[g>>2];if(i){Da(H[i+24>>2],f);ld(h,f,i)}g=g+4|0;if((j|0)!=(g|0)){continue}break}}ld(h,f,d)}if(d){H[a>>2]=0;H[a+4>>2]=0;H[a+8>>2]=0;H[a+12>>2]=0;break c}d=ra(32);f=I[1882]|I[1883]<<8;F[d+24|0]=f;F[d+25|0]=f>>>8;f=I[1878]|I[1879]<<8|(I[1880]<<16|I[1881]<<24);g=I[1874]|I[1875]<<8|(I[1876]<<16|I[1877]<<24);F[d+16|0]=g;F[d+17|0]=g>>>8;F[d+18|0]=g>>>16;F[d+19|0]=g>>>24;F[d+20|0]=f;F[d+21|0]=f>>>8;F[d+22|0]=f>>>16;F[d+23|0]=f>>>24;f=I[1870]|I[1871]<<8|(I[1872]<<16|I[1873]<<24);g=I[1866]|I[1867]<<8|(I[1868]<<16|I[1869]<<24);F[d+8|0]=g;F[d+9|0]=g>>>8;F[d+10|0]=g>>>16;F[d+11|0]=g>>>24;F[d+12|0]=f;F[d+13|0]=f>>>8;F[d+14|0]=f>>>16;F[d+15|0]=f>>>24;f=I[1862]|I[1863]<<8|(I[1864]<<16|I[1865]<<24);g=I[1858]|I[1859]<<8|(I[1860]<<16|I[1861]<<24);F[d|0]=g;F[d+1|0]=g>>>8;F[d+2|0]=g>>>16;F[d+3|0]=g>>>24;F[d+4|0]=f;F[d+5|0]=f>>>8;F[d+6|0]=f>>>16;F[d+7|0]=f>>>24;F[d+26|0]=0;H[a>>2]=-1;Ia(e,d,26);qa(d);if(H[a>>2]){break a}}if(F[e+11|0]<0){qa(H[e>>2])}if(!(fa[H[H[b>>2]+16>>2]](b)|0)){b=ra(32);c=I[1798]|I[1799]<<8|(I[1800]<<16|I[1801]<<24);d=I[1794]|I[1795]<<8|(I[1796]<<16|I[1797]<<24);F[b+21|0]=d;F[b+22|0]=d>>>8;F[b+23|0]=d>>>16;F[b+24|0]=d>>>24;F[b+25|0]=c;F[b+26|0]=c>>>8;F[b+27|0]=c>>>16;F[b+28|0]=c>>>24;c=I[1793]|I[1794]<<8|(I[1795]<<16|I[1796]<<24);d=I[1789]|I[1790]<<8|(I[1791]<<16|I[1792]<<24);F[b+16|0]=d;F[b+17|0]=d>>>8;F[b+18|0]=d>>>16;F[b+19|0]=d>>>24;F[b+20|0]=c;F[b+21|0]=c>>>8;F[b+22|0]=c>>>16;F[b+23|0]=c>>>24;c=I[1785]|I[1786]<<8|(I[1787]<<16|I[1788]<<24);d=I[1781]|I[1782]<<8|(I[1783]<<16|I[1784]<<24);F[b+8|0]=d;F[b+9|0]=d>>>8;F[b+10|0]=d>>>16;F[b+11|0]=d>>>24;F[b+12|0]=c;F[b+13|0]=c>>>8;F[b+14|0]=c>>>16;F[b+15|0]=c>>>24;c=I[1777]|I[1778]<<8|(I[1779]<<16|I[1780]<<24);d=I[1773]|I[1774]<<8|(I[1775]<<16|I[1776]<<24);F[b|0]=d;F[b+1|0]=d>>>8;F[b+2|0]=d>>>16;F[b+3|0]=d>>>24;F[b+4|0]=c;F[b+5|0]=c>>>8;F[b+6|0]=c>>>16;F[b+7|0]=c>>>24;F[b+29|0]=0;H[a>>2]=-1;Ia(e,b,29);qa(b);break a}if(!(fa[H[H[b>>2]+20>>2]](b)|0)){b=ra(32);c=I[1941]|I[1942]<<8|(I[1943]<<16|I[1944]<<24);d=I[1937]|I[1938]<<8|(I[1939]<<16|I[1940]<<24);F[b+23|0]=d;F[b+24|0]=d>>>8;F[b+25|0]=d>>>16;F[b+26|0]=d>>>24;F[b+27|0]=c;F[b+28|0]=c>>>8;F[b+29|0]=c>>>16;F[b+30|0]=c>>>24;c=I[1934]|I[1935]<<8|(I[1936]<<16|I[1937]<<24);d=I[1930]|I[1931]<<8|(I[1932]<<16|I[1933]<<24);F[b+16|0]=d;F[b+17|0]=d>>>8;F[b+18|0]=d>>>16;F[b+19|0]=d>>>24;F[b+20|0]=c;F[b+21|0]=c>>>8;F[b+22|0]=c>>>16;F[b+23|0]=c>>>24;c=I[1926]|I[1927]<<8|(I[1928]<<16|I[1929]<<24);d=I[1922]|I[1923]<<8|(I[1924]<<16|I[1925]<<24);F[b+8|0]=d;F[b+9|0]=d>>>8;F[b+10|0]=d>>>16;F[b+11|0]=d>>>24;F[b+12|0]=c;F[b+13|0]=c>>>8;F[b+14|0]=c>>>16;F[b+15|0]=c>>>24;c=I[1918]|I[1919]<<8|(I[1920]<<16|I[1921]<<24);d=I[1914]|I[1915]<<8|(I[1916]<<16|I[1917]<<24);F[b|0]=d;F[b+1|0]=d>>>8;F[b+2|0]=d>>>16;F[b+3|0]=d>>>24;F[b+4|0]=c;F[b+5|0]=c>>>8;F[b+6|0]=c>>>16;F[b+7|0]=c>>>24;F[b+31|0]=0;H[a>>2]=-1;Ia(e,b,31);qa(b);break a}fa[H[H[b>>2]+24>>2]](a,b);if(H[a>>2]){break a}if(F[e+11|0]<0){qa(H[e>>2])}if(!(fa[H[H[b>>2]+28>>2]](b)|0)){b=Nc(h,1708);H[a>>2]=-1;if(F[b+11|0]>=0){a=H[b+4>>2];H[e>>2]=H[b>>2];H[e+4>>2]=a;H[e+8>>2]=H[b+8>>2];break a}Ia(e,H[b>>2],H[b+4>>2]);if(F[b+11|0]>=0){break a}qa(H[b>>2]);break a}d=c;c=Nc(h,1214);d=Rb(d,c,0);if(F[c+11|0]<0){qa(H[c>>2])}if(d){fa[H[H[b>>2]+48>>2]](b)}H[a>>2]=0;H[a+4>>2]=0;H[a+8>>2]=0;H[a+12>>2]=0}da=h+16|0}function Yh(a){a=a|0;var b=0,c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=O(0),r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=O(0),z=0,A=0;d=da+-64|0;da=d;f=H[a+80>>2];H[d+40>>2]=0;H[d+44>>2]=0;H[d+56>>2]=a;H[d+48>>2]=a;H[d+32>>2]=0;H[d+36>>2]=0;H[d+52>>2]=1065353216;e=2;a:{if((f|0)!=1){if(f&f-1){f=Ja(f)}e=f;if(!f){break a}}Ye(d+32|0,e)}f=H[a+80>>2];H[d+24>>2]=0;H[d+16>>2]=0;H[d+20>>2]=0;b:{c:{d:{e:{if(!f){break e}if(f>>>0>=1073741824){break b}f=f<<2;s=ra(f);H[d+16>>2]=s;b=f+s|0;H[d+24>>2]=b;ta(s,0,f);H[d+20>>2]=b;H[d+8>>2]=0;H[d>>2]=0;H[d+4>>2]=0;z=d+40|0;f=0;while(1){c=0;b=H[d+48>>2];m=H[b+8>>2];n=H[b+12>>2]-m|0;u=(n|0)<=0;f:{if(u){break f}b=n>>>2|0;b=b>>>0>1?b:1;i=b&1;e=0;if(n>>>0>=8){j=b&1073741822;b=0;while(1){g=e<<2;h=H[g+m>>2];if(I[h+84|0]){h=f}else{h=H[H[h+68>>2]+(f<<2)>>2]}e=e+2|0;h=h<<3^c<<2;c=H[m+(g|4)>>2];if(I[c+84|0]){c=f}else{c=H[H[c+68>>2]+(f<<2)>>2]}c=h^c<<2;b=b+2|0;if((j|0)!=(b|0)){continue}break}}if(!i){break f}b=H[m+(e<<2)>>2];if(I[b+84|0]){b=f}else{b=H[H[b+68>>2]+(f<<2)>>2]}c=b<<2^c<<1}g:{h:{g=H[d+36>>2];if(!g){break h}i=H[d+32>>2];e=Cl(g)>>>0>1;b=g-1&c;i:{if(!e){break i}b=c;if(b>>>0>>0){break i}b=(c>>>0)%(g>>>0)|0}h=b;b=H[i+(h<<2)>>2];if(!b){break h}k=H[b>>2];if(!k){break h}p=H[d+56>>2];j:{k:{if(!e){v=g-1|0;while(1){b=H[k+4>>2];l:{if((b|0)!=(c|0)){if((h|0)==(b&v)){break l}break h}w=H[p+8>>2];b=H[p+12>>2]-w|0;if((b|0)<=0){break j}i=H[k+8>>2];l=1;o=b>>2;A=(o|0)>1?o:1;e=0;while(1){b=f;j=H[w+(e<<2)>>2];if(I[j+84|0]){j=i}else{j=H[j+68>>2];b=H[j+(f<<2)>>2];j=H[j+(i<<2)>>2]}if((b|0)==(j|0)){e=e+1|0;l=(o|0)>(e|0);if((e|0)!=(A|0)){continue}}break}if(!l){break k}}k=H[k>>2];if(k){continue}break}break h}while(1){b=H[k+4>>2];m:{if((b|0)!=(c|0)){if(b>>>0>=g>>>0){b=(b>>>0)%(g>>>0)|0}if((b|0)==(h|0)){break m}break h}v=H[p+8>>2];b=H[p+12>>2]-v|0;if((b|0)<=0){break j}i=H[k+8>>2];l=1;o=b>>2;w=(o|0)>1?o:1;e=0;while(1){b=f;j=H[v+(e<<2)>>2];if(I[j+84|0]){j=i}else{j=H[j+68>>2];b=H[j+(f<<2)>>2];j=H[j+(i<<2)>>2]}if((b|0)==(j|0)){e=e+1|0;l=(o|0)>(e|0);if((e|0)!=(w|0)){continue}}break}if(!l){break k}}k=H[k>>2];if(k){continue}break}break h}if(!k){break h}}H[(f<<2)+s>>2]=H[k+12>>2];break g}n:{if(u){h=0;break n}b=n>>>2|0;b=b>>>0>1?b:1;i=b&1;h=0;e=0;if(n>>>0>=8){j=b&1073741822;b=0;while(1){l=e<<2;c=H[l+m>>2];if(I[c+84|0]){c=f}else{c=H[H[c+68>>2]+(f<<2)>>2]}e=e+2|0;h=c<<3^h<<2;c=H[m+(l|4)>>2];if(I[c+84|0]){c=f}else{c=H[H[c+68>>2]+(f<<2)>>2]}h=h^c<<2;b=b+2|0;if((j|0)!=(b|0)){continue}break}}if(!i){break n}b=H[m+(e<<2)>>2];if(I[b+84|0]){b=f}else{b=H[H[b+68>>2]+(f<<2)>>2]}h=b<<2^h<<1}o:{p:{if(!g){break p}l=g-1|0;if(l&g){k=g>>>0<=h>>>0?(h>>>0)%(g>>>0)|0:h;j=H[H[d+32>>2]+(k<<2)>>2];if(!j){break p}m=H[d+56>>2];while(1){j=H[j>>2];if(!j){break p}b=H[j+4>>2];if((b|0)!=(h|0)){if(b>>>0>=g>>>0){b=(b>>>0)%(g>>>0)|0}if((b|0)!=(k|0)){break p}}p=H[m+8>>2];b=H[m+12>>2]-p|0;if((b|0)<=0){break o}c=H[j+8>>2];l=1;n=b>>2;o=(n|0)>1?n:1;e=0;while(1){b=f;i=H[p+(e<<2)>>2];if(I[i+84|0]){i=c}else{i=H[i+68>>2];b=H[i+(f<<2)>>2];i=H[i+(c<<2)>>2]}if((b|0)==(i|0)){e=e+1|0;l=(n|0)>(e|0);if((e|0)!=(o|0)){continue}}break}if(l){continue}break}break o}k=h&l;j=H[H[d+32>>2]+(k<<2)>>2];if(!j){break p}m=H[d+56>>2];while(1){j=H[j>>2];if(!j){break p}b=H[j+4>>2];if((b|0)!=(h|0)&(b&l)!=(k|0)){break p}o=H[m+8>>2];b=H[m+12>>2]-o|0;if((b|0)<=0){break o}c=H[j+8>>2];n=1;p=b>>2;u=(p|0)>1?p:1;e=0;while(1){b=f;i=H[o+(e<<2)>>2];if(I[i+84|0]){i=c}else{i=H[i+68>>2];b=H[i+(f<<2)>>2];i=H[i+(c<<2)>>2]}if((b|0)==(i|0)){e=e+1|0;n=(p|0)>(e|0);if((e|0)!=(u|0)){continue}}break}if(n){continue}break}break o}e=ra(16);H[e+8>>2]=f;H[e+4>>2]=h;H[e>>2]=0;H[e+12>>2]=t;y=O(H[d+44>>2]+1>>>0);q=L[d+52>>2];q:{if(y>O(q*O(g>>>0))?0:g){break q}c=2;k=(g-1&g)!=0|g>>>0<3|g<<1;q=O(U(O(y/q)));r:{if(q=O(0)){b=~~q>>>0;break r}b=0}b=b>>>0>>0?k:b;s:{if((b|0)==1){break s}if(!(b&b-1)){c=b;break s}c=Ja(b);g=H[d+36>>2]}t:{if(c>>>0<=g>>>0){if(c>>>0>=g>>>0){break t}k=g>>>0<3;q=O(U(O(O(K[d+44>>2])/L[d+52>>2])));u:{if(q=O(0)){b=~~q>>>0;break u}b=0}v:{w:{if(k){break w}if(Cl(g)>>>0>1){break w}b=b>>>0<2?b:1<<32-Q(b-1|0);break v}b=Ja(b)}c=b>>>0>>0?c:b;if(g>>>0<=c>>>0){break t}}Ye(d+32|0,c)}g=H[d+36>>2];b=g-1|0;if(!(b&g)){k=b&h;break q}if(g>>>0>h>>>0){k=h;break q}k=(h>>>0)%(g>>>0)|0}b=H[d+32>>2]+(k<<2)|0;c=H[b>>2];x:{y:{if(!c){H[e>>2]=H[d+40>>2];H[d+40>>2]=e;H[b>>2]=z;b=H[e>>2];if(!b){break x}c=H[b+4>>2];b=g-1|0;z:{if(!(b&g)){c=b&c;break z}if(c>>>0>>0){break z}c=(c>>>0)%(g>>>0)|0}c=H[d+32>>2]+(c<<2)|0;break y}H[e>>2]=H[c>>2]}H[c>>2]=e}H[d+44>>2]=H[d+44>>2]+1;x=H[d+8>>2];r=H[d+4>>2];s=H[d+16>>2]}H[(f<<2)+s>>2]=t;t=t+1|0;if((r|0)!=(x|0)){H[r>>2]=f;r=r+4|0;H[d+4>>2]=r;break g}h=H[d>>2];c=x-h|0;i=c>>2;b=i+1|0;if(b>>>0>=1073741824){break d}e=c>>1;e=c>>>0<2147483644?b>>>0>>0?e:b:1073741823;if(e){if(e>>>0>=1073741824){break c}b=ra(e<<2)}else{b=0}i=b+(i<<2)|0;H[i>>2]=f;x=b+(e<<2)|0;r=i+4|0;if((c|0)>0){sa(b,h,c)}H[d+8>>2]=x;H[d+4>>2]=r;H[d>>2]=b;if(!h){break g}qa(h)}f=f+1|0;b=H[a+80>>2];if(f>>>0>>0){continue}break}if((b|0)!=(t|0)){fa[H[H[a>>2]+24>>2]](a,d+16|0,d);H[a+80>>2]=t}a=H[d>>2];if(!a){break e}H[d+4>>2]=a;qa(a)}a=H[d+16>>2];if(a){H[d+20>>2]=a;qa(a)}f=H[d+40>>2];if(f){while(1){a=H[f>>2];qa(f);f=a;if(f){continue}break}}a=H[d+32>>2];H[d+32>>2]=0;if(a){qa(a)}da=d- -64|0;return}ua();X()}ya();X()}ua();X()}function yf(a,b){var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=O(0),o=0,p=0,q=0,r=0,s=O(0);k=da+-64|0;da=k;H[k+40>>2]=0;H[k+44>>2]=0;H[k+32>>2]=0;H[k+36>>2]=0;H[k+48>>2]=1065353216;d=H[a+80>>2];H[k+24>>2]=0;H[k+16>>2]=0;H[k+20>>2]=0;a:{if(d){if(d>>>0>=1073741824){break a}e=d<<2;d=ra(e);H[k+16>>2]=d;c=d+e|0;H[k+24>>2]=c;ta(d,0,e);H[k+20>>2]=c;while(1){c=H[H[b>>2]>>2];g=H[b+48>>2]+zl(H[b+40>>2],H[b+44>>2],r,0)|0;c=c+g|0;f=I[c|0]|I[c+1|0]<<8;G[k+30>>1]=f;b:{c:{h=H[k+36>>2];d:{if(!h){break d}q=H[k+32>>2];j=f^318;e=Cl(h)>>>0>1;c=j&h-1;e:{if(!e){break e}c=j;if(c>>>0>>0){break e}c=(j>>>0)%(h>>>0)|0}g=c;c=H[q+(g<<2)>>2];if(!c){break d}c=H[c>>2];if(!c){break d}if(!e){h=h-1|0;while(1){e=H[c+4>>2];f:{if((e|0)!=(j|0)){if((g|0)==(e&h)){break f}break d}if((f|0)==J[c+8>>1]){break c}}c=H[c>>2];if(c){continue}break}break d}while(1){e=H[c+4>>2];g:{if((e|0)!=(j|0)){if(e>>>0>=h>>>0){e=(e>>>0)%(h>>>0)|0}if((e|0)==(g|0)){break g}break d}if((f|0)==J[c+8>>1]){break c}}c=H[c>>2];if(c){continue}break}}H[k+12>>2]=o;G[k+8>>1]=f;d=0;g=J[k+8>>1];j=g^318;h:{i:{i=k+32|0;f=H[i+4>>2];if(!f){break i}d=f-1|0;if(d&f){d=j;if(f>>>0<=d>>>0){d=(j>>>0)%(f>>>0)|0}l=H[H[i>>2]+(d<<2)>>2];if(!l){break i}while(1){l=H[l>>2];if(!l){break i}c=H[l+4>>2];if((c|0)!=(j|0)){if(c>>>0>=f>>>0){c=(c>>>0)%(f>>>0)|0}if((c|0)!=(d|0)){break i}}if((g|0)!=J[l+8>>1]){continue}break}c=0;break h}d=d&j;l=H[H[i>>2]+(d<<2)>>2];if(!l){break i}e=f-1|0;while(1){l=H[l>>2];if(!l){break i}c=H[l+4>>2];if((c|0)!=(j|0)&(c&e)!=(d|0)){break i}if((g|0)!=J[l+8>>1]){continue}break}c=0;break h}l=ra(16);G[l+8>>1]=J[k+8>>1];c=H[k+12>>2];H[l+4>>2]=j;H[l+12>>2]=c;H[l>>2]=0;s=O(H[i+12>>2]+1>>>0);n=L[i+16>>2];j:{if(s>O(n*O(f>>>0))?0:f){break j}d=2;c=(f-1&f)!=0|f>>>0<3|f<<1;n=O(U(O(s/n)));k:{if(n=O(0)){e=~~n>>>0;break k}e=0}c=c>>>0>e>>>0?c:e;l:{if((c|0)==1){break l}if(!(c&c-1)){d=c;break l}d=Ja(c);f=H[i+4>>2]}m:{if(d>>>0<=f>>>0){if(d>>>0>=f>>>0){break m}e=f>>>0<3;n=O(U(O(O(K[i+12>>2])/L[i+16>>2])));n:{if(n=O(0)){c=~~n>>>0;break n}c=0}o:{p:{if(e){break p}if(Cl(f)>>>0>1){break p}c=c>>>0<2?c:1<<32-Q(c-1|0);break o}c=Ja(c)}d=c>>>0>>0?d:c;if(f>>>0<=d>>>0){break m}}c=0;h=0;f=d;q:{r:{s:{if(d){if(f>>>0>=1073741824){break s}d=ra(f<<2);e=H[i>>2];H[i>>2]=d;if(e){qa(e)}H[i+4>>2]=f;if(f-1>>>0>=3){e=f&-4;d=0;while(1){g=c<<2;H[g+H[i>>2]>>2]=0;H[H[i>>2]+(g|4)>>2]=0;H[H[i>>2]+(g|8)>>2]=0;H[H[i>>2]+(g|12)>>2]=0;c=c+4|0;d=d+4|0;if((e|0)!=(d|0)){continue}break}}d=f&3;if(d){while(1){H[H[i>>2]+(c<<2)>>2]=0;c=c+1|0;h=h+1|0;if((d|0)!=(h|0)){continue}break}}d=H[i+8>>2];if(!d){break q}e=i+8|0;g=H[d+4>>2];c=f-1|0;if(!(c&f)){break r}g=f>>>0<=g>>>0?(g>>>0)%(f>>>0)|0:g;H[H[i>>2]+(g<<2)>>2]=e;while(1){e=H[d>>2];if(!e){break q}h=H[e+4>>2];if(f>>>0<=h>>>0){h=(h>>>0)%(f>>>0)|0}if((g|0)==(h|0)){d=e;continue}c=e;p=h<<2;q=p+H[i>>2]|0;if(H[q>>2]){while(1){h=c;c=H[c>>2];if(J[e+8>>1]==J[c+8>>1]?c:0){continue}break}H[d>>2]=c;H[h>>2]=H[H[p+H[i>>2]>>2]>>2];H[H[p+H[i>>2]>>2]>>2]=e}else{H[q>>2]=d;d=e;g=h}continue}}d=H[i>>2];H[i>>2]=0;if(d){qa(d)}H[i+4>>2]=0;break q}ya();X()}g=c&g;H[H[i>>2]+(g<<2)>>2]=e;e=H[d>>2];if(!e){break q}q=f-1|0;while(1){h=q&H[e+4>>2];t:{if((h|0)==(g|0)){d=e;break t}c=e;p=h<<2;f=p+H[i>>2]|0;if(H[f>>2]){while(1){h=c;c=H[c>>2];if(J[e+8>>1]==J[c+8>>1]?c:0){continue}break}H[d>>2]=c;H[h>>2]=H[H[p+H[i>>2]>>2]>>2];H[H[p+H[i>>2]>>2]>>2]=e;break t}H[f>>2]=d;d=e;g=h}e=H[d>>2];if(e){continue}break}}}f=H[i+4>>2];d=f-1|0;if(!(d&f)){d=d&j;break j}if(f>>>0>j>>>0){d=j;break j}d=(j>>>0)%(f>>>0)|0}e=H[i>>2]+(d<<2)|0;c=H[e>>2];u:{v:{if(!c){d=i+8|0;H[l>>2]=H[d>>2];H[i+8>>2]=l;H[e>>2]=d;d=H[l>>2];if(!d){break u}c=H[d+4>>2];d=f-1|0;w:{if(!(d&f)){c=c&d;break w}if(c>>>0>>0){break w}c=(c>>>0)%(f>>>0)|0}c=H[i>>2]+(c<<2)|0;break v}H[l>>2]=H[c>>2]}H[c>>2]=l}H[i+12>>2]=H[i+12>>2]+1;c=1}F[k+60|0]=c;H[k+56>>2]=l;d=H[a+40>>2];sa(H[H[a>>2]>>2]+N(d,o)|0,k+30|0,d);d=H[k+16>>2];H[d+(r<<2)>>2]=o;o=o+1|0;break b}H[(r<<2)+d>>2]=H[c+12>>2]}c=r+1|0;m=c?m:m+1|0;r=c;c=H[a+80>>2];if(!m&c>>>0>r>>>0){continue}break}if((c|0)!=(o|0)){x:{if(!I[a+84|0]){b=H[a+72>>2];j=H[a+68>>2];if((b|0)==(j|0)){break x}b=b-j>>2;b=b>>>0>1?b:1;m=b&3;h=0;c=0;if(b-1>>>0>=3){e=b&-4;f=0;while(1){g=c<<2;b=g+j|0;H[b>>2]=H[(H[b>>2]<<2)+d>>2];b=j+(g|4)|0;H[b>>2]=H[(H[b>>2]<<2)+d>>2];b=j+(g|8)|0;H[b>>2]=H[(H[b>>2]<<2)+d>>2];b=j+(g|12)|0;H[b>>2]=H[(H[b>>2]<<2)+d>>2];c=c+4|0;f=f+4|0;if((e|0)!=(f|0)){continue}break}}if(!m){break x}while(1){b=j+(c<<2)|0;H[b>>2]=H[(H[b>>2]<<2)+d>>2];c=c+1|0;h=h+1|0;if((m|0)!=(h|0)){continue}break}break x}F[a+84|0]=0;m=a+68|0;b=H[a+68>>2];e=H[a+72>>2]-b>>2;y:{if(e>>>0>>0){La(m,c-e|0,2176);c=H[a+80>>2];break y}if(c>>>0>=e>>>0){break y}H[a+72>>2]=b+(c<<2)}if(!c){break x}j=H[m>>2];h=0;b=0;if(c-1>>>0>=3){m=c&-4;f=0;while(1){g=b<<2;H[g+j>>2]=H[d+g>>2];e=g|4;H[e+j>>2]=H[d+e>>2];e=g|8;H[e+j>>2]=H[d+e>>2];e=g|12;H[e+j>>2]=H[d+e>>2];b=b+4|0;f=f+4|0;if((m|0)!=(f|0)){continue}break}}e=c&3;if(!e){break x}while(1){c=b<<2;H[c+j>>2]=H[c+d>>2];b=b+1|0;h=h+1|0;if((e|0)!=(h|0)){continue}break}}H[a+80>>2]=o}qa(d)}c=H[k+40>>2];if(c){while(1){a=H[c>>2];qa(c);c=a;if(c){continue}break}}a=H[k+32>>2];H[k+32>>2]=0;if(a){qa(a)}da=k- -64|0;return o}ua();X()}function Jf(a,b){var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=O(0),o=0,p=0,q=0,r=0,s=O(0);k=da+-64|0;da=k;H[k+40>>2]=0;H[k+44>>2]=0;H[k+32>>2]=0;H[k+36>>2]=0;H[k+48>>2]=1065353216;d=H[a+80>>2];H[k+24>>2]=0;H[k+16>>2]=0;H[k+20>>2]=0;a:{if(d){if(d>>>0>=1073741824){break a}e=d<<2;d=ra(e);H[k+16>>2]=d;c=d+e|0;H[k+24>>2]=c;ta(d,0,e);H[k+20>>2]=c;while(1){c=H[H[b>>2]>>2];g=H[b+48>>2]+zl(H[b+40>>2],H[b+44>>2],r,0)|0;f=I[c+g|0];F[k+31|0]=f;b:{c:{h=H[k+36>>2];d:{if(!h){break d}q=H[k+32>>2];j=f^318;e=Cl(h)>>>0>1;c=j&h-1;e:{if(!e){break e}c=j;if(c>>>0>>0){break e}c=(j>>>0)%(h>>>0)|0}g=c;c=H[q+(g<<2)>>2];if(!c){break d}c=H[c>>2];if(!c){break d}if(!e){h=h-1|0;while(1){e=H[c+4>>2];f:{if((e|0)!=(j|0)){if((g|0)==(e&h)){break f}break d}if((f|0)==I[c+8|0]){break c}}c=H[c>>2];if(c){continue}break}break d}while(1){e=H[c+4>>2];g:{if((e|0)!=(j|0)){if(e>>>0>=h>>>0){e=(e>>>0)%(h>>>0)|0}if((e|0)==(g|0)){break g}break d}if((f|0)==I[c+8|0]){break c}}c=H[c>>2];if(c){continue}break}}H[k+12>>2]=o;F[k+8|0]=f;d=0;g=I[k+8|0];j=g^318;h:{i:{i=k+32|0;f=H[i+4>>2];if(!f){break i}d=f-1|0;if(d&f){d=j;if(f>>>0<=d>>>0){d=(j>>>0)%(f>>>0)|0}l=H[H[i>>2]+(d<<2)>>2];if(!l){break i}while(1){l=H[l>>2];if(!l){break i}c=H[l+4>>2];if((c|0)!=(j|0)){if(c>>>0>=f>>>0){c=(c>>>0)%(f>>>0)|0}if((c|0)!=(d|0)){break i}}if((g|0)!=I[l+8|0]){continue}break}c=0;break h}d=d&j;l=H[H[i>>2]+(d<<2)>>2];if(!l){break i}e=f-1|0;while(1){l=H[l>>2];if(!l){break i}c=H[l+4>>2];if((c|0)!=(j|0)&(c&e)!=(d|0)){break i}if((g|0)!=I[l+8|0]){continue}break}c=0;break h}l=ra(16);F[l+8|0]=I[k+8|0];c=H[k+12>>2];H[l+4>>2]=j;H[l+12>>2]=c;H[l>>2]=0;s=O(H[i+12>>2]+1>>>0);n=L[i+16>>2];j:{if(s>O(n*O(f>>>0))?0:f){break j}d=2;c=(f-1&f)!=0|f>>>0<3|f<<1;n=O(U(O(s/n)));k:{if(n=O(0)){e=~~n>>>0;break k}e=0}c=c>>>0>e>>>0?c:e;l:{if((c|0)==1){break l}if(!(c&c-1)){d=c;break l}d=Ja(c);f=H[i+4>>2]}m:{if(d>>>0<=f>>>0){if(d>>>0>=f>>>0){break m}e=f>>>0<3;n=O(U(O(O(K[i+12>>2])/L[i+16>>2])));n:{if(n=O(0)){c=~~n>>>0;break n}c=0}o:{p:{if(e){break p}if(Cl(f)>>>0>1){break p}c=c>>>0<2?c:1<<32-Q(c-1|0);break o}c=Ja(c)}d=c>>>0>>0?d:c;if(f>>>0<=d>>>0){break m}}c=0;h=0;f=d;q:{r:{s:{if(d){if(f>>>0>=1073741824){break s}d=ra(f<<2);e=H[i>>2];H[i>>2]=d;if(e){qa(e)}H[i+4>>2]=f;if(f-1>>>0>=3){e=f&-4;d=0;while(1){g=c<<2;H[g+H[i>>2]>>2]=0;H[H[i>>2]+(g|4)>>2]=0;H[H[i>>2]+(g|8)>>2]=0;H[H[i>>2]+(g|12)>>2]=0;c=c+4|0;d=d+4|0;if((e|0)!=(d|0)){continue}break}}d=f&3;if(d){while(1){H[H[i>>2]+(c<<2)>>2]=0;c=c+1|0;h=h+1|0;if((d|0)!=(h|0)){continue}break}}d=H[i+8>>2];if(!d){break q}e=i+8|0;g=H[d+4>>2];c=f-1|0;if(!(c&f)){break r}g=f>>>0<=g>>>0?(g>>>0)%(f>>>0)|0:g;H[H[i>>2]+(g<<2)>>2]=e;while(1){e=H[d>>2];if(!e){break q}h=H[e+4>>2];if(f>>>0<=h>>>0){h=(h>>>0)%(f>>>0)|0}if((g|0)==(h|0)){d=e;continue}c=e;p=h<<2;q=p+H[i>>2]|0;if(H[q>>2]){while(1){h=c;c=H[c>>2];if(I[e+8|0]==I[c+8|0]?c:0){continue}break}H[d>>2]=c;H[h>>2]=H[H[p+H[i>>2]>>2]>>2];H[H[p+H[i>>2]>>2]>>2]=e}else{H[q>>2]=d;d=e;g=h}continue}}d=H[i>>2];H[i>>2]=0;if(d){qa(d)}H[i+4>>2]=0;break q}ya();X()}g=c&g;H[H[i>>2]+(g<<2)>>2]=e;e=H[d>>2];if(!e){break q}q=f-1|0;while(1){h=q&H[e+4>>2];t:{if((h|0)==(g|0)){d=e;break t}c=e;p=h<<2;f=p+H[i>>2]|0;if(H[f>>2]){while(1){h=c;c=H[c>>2];if(I[e+8|0]==I[c+8|0]?c:0){continue}break}H[d>>2]=c;H[h>>2]=H[H[p+H[i>>2]>>2]>>2];H[H[p+H[i>>2]>>2]>>2]=e;break t}H[f>>2]=d;d=e;g=h}e=H[d>>2];if(e){continue}break}}}f=H[i+4>>2];d=f-1|0;if(!(d&f)){d=d&j;break j}if(f>>>0>j>>>0){d=j;break j}d=(j>>>0)%(f>>>0)|0}e=H[i>>2]+(d<<2)|0;c=H[e>>2];u:{v:{if(!c){d=i+8|0;H[l>>2]=H[d>>2];H[i+8>>2]=l;H[e>>2]=d;d=H[l>>2];if(!d){break u}c=H[d+4>>2];d=f-1|0;w:{if(!(d&f)){c=c&d;break w}if(c>>>0>>0){break w}c=(c>>>0)%(f>>>0)|0}c=H[i>>2]+(c<<2)|0;break v}H[l>>2]=H[c>>2]}H[c>>2]=l}H[i+12>>2]=H[i+12>>2]+1;c=1}F[k+60|0]=c;H[k+56>>2]=l;d=H[a+40>>2];sa(H[H[a>>2]>>2]+N(d,o)|0,k+31|0,d);d=H[k+16>>2];H[d+(r<<2)>>2]=o;o=o+1|0;break b}H[(r<<2)+d>>2]=H[c+12>>2]}c=r+1|0;m=c?m:m+1|0;r=c;c=H[a+80>>2];if(!m&c>>>0>r>>>0){continue}break}if((c|0)!=(o|0)){x:{if(!I[a+84|0]){b=H[a+72>>2];j=H[a+68>>2];if((b|0)==(j|0)){break x}b=b-j>>2;b=b>>>0>1?b:1;m=b&3;h=0;c=0;if(b-1>>>0>=3){e=b&-4;f=0;while(1){g=c<<2;b=g+j|0;H[b>>2]=H[(H[b>>2]<<2)+d>>2];b=j+(g|4)|0;H[b>>2]=H[(H[b>>2]<<2)+d>>2];b=j+(g|8)|0;H[b>>2]=H[(H[b>>2]<<2)+d>>2];b=j+(g|12)|0;H[b>>2]=H[(H[b>>2]<<2)+d>>2];c=c+4|0;f=f+4|0;if((e|0)!=(f|0)){continue}break}}if(!m){break x}while(1){b=j+(c<<2)|0;H[b>>2]=H[(H[b>>2]<<2)+d>>2];c=c+1|0;h=h+1|0;if((m|0)!=(h|0)){continue}break}break x}F[a+84|0]=0;m=a+68|0;b=H[a+68>>2];e=H[a+72>>2]-b>>2;y:{if(e>>>0>>0){La(m,c-e|0,2176);c=H[a+80>>2];break y}if(c>>>0>=e>>>0){break y}H[a+72>>2]=b+(c<<2)}if(!c){break x}j=H[m>>2];h=0;b=0;if(c-1>>>0>=3){m=c&-4;f=0;while(1){g=b<<2;H[g+j>>2]=H[d+g>>2];e=g|4;H[e+j>>2]=H[d+e>>2];e=g|8;H[e+j>>2]=H[d+e>>2];e=g|12;H[e+j>>2]=H[d+e>>2];b=b+4|0;f=f+4|0;if((m|0)!=(f|0)){continue}break}}e=c&3;if(!e){break x}while(1){c=b<<2;H[c+j>>2]=H[c+d>>2];b=b+1|0;h=h+1|0;if((e|0)!=(h|0)){continue}break}}H[a+80>>2]=o}qa(d)}c=H[k+40>>2];if(c){while(1){a=H[c>>2];qa(c);c=a;if(c){continue}break}}a=H[k+32>>2];H[k+32>>2]=0;if(a){qa(a)}da=k- -64|0;return o}ua();X()}function ag(a,b){var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0;j=da-32|0;da=j;c=H[a+16>>2];H[a+20>>2]=c;a:{b:{c:{d:{e:{f:{g:{h:{if((c|0)!=H[a+24>>2]){H[c>>2]=b;b=c+4|0;H[a+20>>2]=b;f=c;break h}f=ra(4);H[f>>2]=b;b=f+4|0;H[a+24>>2]=b;H[a+20>>2]=b;H[a+16>>2]=f;if(c){break g}}c=H[a+8>>2];c=H[c+100>>2]-H[c+96>>2]|0;break f}qa(c);b=H[a+20>>2];f=H[a+16>>2];if((b|0)==(f|0)){break e}c=H[a+8>>2];c=H[c+100>>2]-H[c+96>>2]|0}if((c|0)>0){p=a+120|0;c=(c|0)/12|0;q=(c|0)>1?c:1;while(1){i:{j:{c=b-4|0;b=H[c>>2];if((b|0)==-1){break j}f=(b>>>0)/3|0;if(H[H[a+28>>2]+(f>>>3&268435452)>>2]>>>f&1){break j}i=0;while(1){H[a+164>>2]=H[a+164>>2]+1;f=b;g=(b>>>0)/3|0;h=(b|0)==-1;l=h?-1:g;b=H[a+28>>2]+(l>>>3&536870908)|0;H[b>>2]=H[b>>2]|1<>2];k:{if((b|0)!=H[a+80>>2]){H[b>>2]=f;H[a+76>>2]=b+4;break k}d=H[a+72>>2];c=b-d|0;k=c>>2;b=k+1|0;if(b>>>0>1073741823){break d}e=c>>1;e=c>>>0<2147483644?b>>>0>>0?e:b:1073741823;if(e){if(e>>>0>1073741823){break a}b=ra(e<<2)}else{b=0}k=b+(k<<2)|0;H[k>>2]=f;if((c|0)>0){sa(b,d,c)}H[a+80>>2]=b+(e<<2);H[a+76>>2]=k+4;H[a+72>>2]=b;if(!d){break k}qa(d)}b=-1;d=H[a+12>>2];b=(f|0)!=-1?H[H[d>>2]+(f<<2)>>2]:b;m=b<<2;k=H[m+H[a+152>>2]>>2];l:{m:{c=H[a+84>>2]+(b>>>3&536870908)|0;e=H[c>>2];b=1<>2]=b|e;if((k|0)==-1){break m}}n:{if(h){break n}b=-1;c=f+1|0;e=(c>>>0)%3|0?c:f-2|0;if((e|0)!=-1){b=H[H[d+12>>2]+(e<<2)>>2]}r=(b>>>0)/3|0;h=f-N(g,3)|0;o:{p:{if(h){g=f-1|0;break p}g=f+2|0;c=-1;if((g|0)==-1){break o}}c=H[H[d+12>>2]+(g<<2)>>2]}g=(c|0)==-1;n=g?-1:(c>>>0)/3|0;q:{if((e|0)==-1){break q}o=H[d+12>>2];d=H[o+(e<<2)>>2];if((d|0)==-1){break q}e=H[a+28>>2];d=(d>>>0)/3|0;if(H[e+(d>>>3&268435452)>>2]>>>d&1){break q}r:{s:{if(h){d=f-1|0;break s}d=f+2|0;if((d|0)==-1){break r}}d=H[(d<<2)+o>>2];if((d|0)==-1){break r}d=(d>>>0)/3|0;if(H[e+(d>>>3&268435452)>>2]>>>d&1){break r}d=H[a+272>>2];t:{if((d|0)!=H[a+276>>2]){H[d>>2]=1;H[a+272>>2]=d+4;break t}g=H[a+268>>2];e=d-g|0;h=e>>2;d=h+1|0;if(d>>>0>1073741823){break c}i=e>>1;i=e>>>0<2147483644?d>>>0>>0?i:d:1073741823;if(i){if(i>>>0>1073741823){break a}d=ra(i<<2)}else{d=0}h=d+(h<<2)|0;H[h>>2]=1;if((e|0)>0){sa(d,g,e)}H[a+276>>2]=d+(i<<2);H[a+272>>2]=h+4;H[a+268>>2]=d;if(!g){break t}qa(g)}H[a+168>>2]=H[a+168>>2]+1;u:{if((k|0)==-1){break u}d=H[H[a+152>>2]+m>>2];if(H[H[a+140>>2]+(d>>>3&536870908)>>2]>>>d&1){break u}Fc(a,f,0)}f=H[a+164>>2];H[j+4>>2]=l;d=j+4|0;H[j+16>>2]=d;Wf(j+24|0,p,d,j+16|0);H[H[j+24>>2]+12>>2]=f;f=H[a+20>>2];H[f-4>>2]=c;if((f|0)!=H[a+24>>2]){H[f>>2]=b;H[a+20>>2]=f+4;break i}d=H[a+16>>2];f=f-d|0;g=f>>2;c=g+1|0;if(c>>>0>1073741823){break b}e=f>>1;e=f>>>0<2147483644?c>>>0>>0?e:c:1073741823;if(e){if(e>>>0>1073741823){break a}c=ra(e<<2)}else{c=0}g=c+(g<<2)|0;H[g>>2]=b;if((f|0)>0){sa(c,d,f)}H[a+24>>2]=c+(e<<2);H[a+20>>2]=g+4;H[a+16>>2]=c;if(!d){break i}qa(d);break i}if(!g){Sb(a,H[a+164>>2],0,n)}c=H[a+272>>2];if((c|0)!=H[a+276>>2]){H[c>>2]=3;H[a+272>>2]=c+4;break l}d=H[a+268>>2];f=c-d|0;g=f>>2;c=g+1|0;if(c>>>0>1073741823){break c}e=f>>1;e=f>>>0<2147483644?c>>>0>>0?e:c:1073741823;if(e){if(e>>>0>1073741823){break a}c=ra(e<<2)}else{c=0}g=c+(g<<2)|0;H[g>>2]=3;if((f|0)>0){sa(c,d,f)}H[a+276>>2]=c+(e<<2);H[a+272>>2]=g+4;H[a+268>>2]=c;if(!d){break l}qa(d);break l}b=(b|0)==-1;if(!b){Sb(a,H[a+164>>2],1,b?-1:r)}v:{w:{if(h){b=f-1|0;break w}b=f+2|0;if((b|0)==-1){break v}}b=H[H[H[a+12>>2]+12>>2]+(b<<2)>>2];if((b|0)==-1){break v}b=(b>>>0)/3|0;if(H[H[a+28>>2]+(b>>>3&268435452)>>2]>>>b&1){break v}b=H[a+272>>2];if((b|0)!=H[a+276>>2]){H[b>>2]=5;H[a+272>>2]=b+4;b=c;break l}d=H[a+268>>2];f=b-d|0;g=f>>2;b=g+1|0;if(b>>>0>1073741823){break c}e=f>>1;e=f>>>0<2147483644?b>>>0>>0?e:b:1073741823;if(e){if(e>>>0>1073741823){break a}b=ra(e<<2)}else{b=0}g=b+(g<<2)|0;H[g>>2]=5;if((f|0)>0){sa(b,d,f)}H[a+276>>2]=b+(e<<2);H[a+272>>2]=g+4;H[a+268>>2]=b;if(!d){b=c;break l}qa(d);b=c;break l}if(g){break n}Sb(a,H[a+164>>2],0,n)}b=H[a+272>>2];x:{if((b|0)!=H[a+276>>2]){H[b>>2]=7;H[a+272>>2]=b+4;break x}f=H[a+268>>2];c=b-f|0;e=c>>2;b=e+1|0;if(b>>>0>1073741823){break c}d=c>>1;d=c>>>0<2147483644?b>>>0>>0?d:b:1073741823;if(d){if(d>>>0>1073741823){break a}b=ra(d<<2)}else{b=0}e=b+(e<<2)|0;H[e>>2]=7;if((c|0)>0){sa(b,f,c)}H[a+276>>2]=b+(d<<2);H[a+272>>2]=e+4;H[a+268>>2]=b;if(!f){break x}qa(f)}H[a+20>>2]=H[a+20>>2]-4;break i}b=H[a+272>>2];y:{if((b|0)!=H[a+276>>2]){H[b>>2]=0;H[a+272>>2]=b+4;break y}d=H[a+268>>2];c=b-d|0;g=c>>2;b=g+1|0;if(b>>>0>1073741823){break c}e=c>>1;e=c>>>0<2147483644?b>>>0>>0?e:b:1073741823;if(e){if(e>>>0>1073741823){break a}b=ra(e<<2)}else{b=0}g=b+(g<<2)|0;H[g>>2]=0;if((c|0)>0){sa(b,d,c)}H[a+276>>2]=b+(e<<2);H[a+272>>2]=g+4;H[a+268>>2]=b;if(!d){break y}qa(d)}b=-1;if((f|0)==-1){break l}c=f+1|0;c=(c>>>0)%3|0?c:f-2|0;if((c|0)==-1){break l}b=H[H[H[a+12>>2]+12>>2]+(c<<2)>>2]}i=i+1|0;if((q|0)!=(i|0)){continue}break}break i}H[a+20>>2]=c}b=H[a+20>>2];if((b|0)!=H[a+16>>2]){continue}break}break e}d=H[a+28>>2];while(1){c=b-4|0;e=H[c>>2];z:{if((e|0)!=-1){e=(e>>>0)/3|0;if(!(H[d+(e>>>3&268435452)>>2]>>>e&1)){break z}}H[a+20>>2]=c;b=c}if((b|0)!=(f|0)){continue}break}}da=j+32|0;return 1}ua();X()}ua();X()}ua();X()}ya();X()}function Yd(a,b,c){var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0;g=H[b+48>>2];if(!g){b=ra(32);c=I[1670]|I[1671]<<8|(I[1672]<<16|I[1673]<<24);e=I[1666]|I[1667]<<8|(I[1668]<<16|I[1669]<<24);F[b+15|0]=e;F[b+16|0]=e>>>8;F[b+17|0]=e>>>16;F[b+18|0]=e>>>24;F[b+19|0]=c;F[b+20|0]=c>>>8;F[b+21|0]=c>>>16;F[b+22|0]=c>>>24;c=I[1663]|I[1664]<<8|(I[1665]<<16|I[1666]<<24);e=I[1659]|I[1660]<<8|(I[1661]<<16|I[1662]<<24);F[b+8|0]=e;F[b+9|0]=e>>>8;F[b+10|0]=e>>>16;F[b+11|0]=e>>>24;F[b+12|0]=c;F[b+13|0]=c>>>8;F[b+14|0]=c>>>16;F[b+15|0]=c>>>24;c=I[1655]|I[1656]<<8|(I[1657]<<16|I[1658]<<24);e=I[1651]|I[1652]<<8|(I[1653]<<16|I[1654]<<24);F[b|0]=e;F[b+1|0]=e>>>8;F[b+2|0]=e>>>16;F[b+3|0]=e>>>24;F[b+4|0]=c;F[b+5|0]=c>>>8;F[b+6|0]=c>>>16;F[b+7|0]=c>>>24;F[b+23|0]=0;H[a>>2]=-1;Ia(a+4|0,b,23);qa(b);return}h=H[b+52>>2];if(!h){e=da-32|0;da=e;d=ra(16);H[e+16>>2]=d;H[e+20>>2]=15;H[e+24>>2]=-2147483632;F[d+15|0]=0;f=I[1587]|I[1588]<<8|(I[1589]<<16|I[1590]<<24);h=I[1583]|I[1584]<<8|(I[1585]<<16|I[1586]<<24);F[d+7|0]=h;F[d+8|0]=h>>>8;F[d+9|0]=h>>>16;F[d+10|0]=h>>>24;F[d+11|0]=f;F[d+12|0]=f>>>8;F[d+13|0]=f>>>16;F[d+14|0]=f>>>24;f=I[1580]|I[1581]<<8|(I[1582]<<16|I[1583]<<24);h=I[1576]|I[1577]<<8|(I[1578]<<16|I[1579]<<24);F[d|0]=h;F[d+1|0]=h>>>8;F[d+2|0]=h>>>16;F[d+3|0]=h>>>24;F[d+4|0]=f;F[d+5|0]=f>>>8;F[d+6|0]=f>>>16;F[d+7|0]=f>>>24;h=b+4|0;j=Cb(h,e+16|0,-1);if(F[e+27|0]<0){qa(H[e+16>>2])}a:{b:{c:{d:{e:{switch(j+1|0){case 1:d=ra(56);H[d>>2]=0;H[d+4>>2]=0;H[d+48>>2]=0;H[d+52>>2]=0;H[d+40>>2]=0;H[d+44>>2]=0;H[d+32>>2]=0;H[d+36>>2]=0;H[d+24>>2]=0;H[d+28>>2]=0;H[d+16>>2]=0;H[d+20>>2]=0;H[d+8>>2]=0;H[d+12>>2]=0;d=nc(d);H[d>>2]=12672;break c;case 0:break e;default:break d}}if((eb(h)|0)!=10){break d}d=ra(56);H[d>>2]=0;H[d+4>>2]=0;H[d+48>>2]=0;H[d+52>>2]=0;H[d+40>>2]=0;H[d+44>>2]=0;H[d+32>>2]=0;H[d+36>>2]=0;H[d+24>>2]=0;H[d+28>>2]=0;H[d+16>>2]=0;H[d+20>>2]=0;H[d+8>>2]=0;H[d+12>>2]=0;d=nc(d);H[d>>2]=12672;break c}H[e+12>>2]=0;f:{i=H[g+12>>2];f=H[g+8>>2];if((i-f|0)>0){d=0;while(1){k=H[H[(d<<2)+f>>2]+28>>2];if(k-1>>>0>=6){if((k|0)!=9){break f}d=ra(32);H[e+16>>2]=d;H[e+20>>2]=17;H[e+24>>2]=-2147483616;F[d+17|0]=0;F[d+16|0]=I[1261];f=I[1257]|I[1258]<<8|(I[1259]<<16|I[1260]<<24);i=I[1253]|I[1254]<<8|(I[1255]<<16|I[1256]<<24);F[d+8|0]=i;F[d+9|0]=i>>>8;F[d+10|0]=i>>>16;F[d+11|0]=i>>>24;F[d+12|0]=f;F[d+13|0]=f>>>8;F[d+14|0]=f>>>16;F[d+15|0]=f>>>24;f=I[1249]|I[1250]<<8|(I[1251]<<16|I[1252]<<24);i=I[1245]|I[1246]<<8|(I[1247]<<16|I[1248]<<24);F[d|0]=i;F[d+1|0]=i>>>8;F[d+2|0]=i>>>16;F[d+3|0]=i>>>24;F[d+4|0]=f;F[d+5|0]=f>>>8;F[d+6|0]=f>>>16;F[d+7|0]=f>>>24;d=pb(h,e+12|0,e+16|0,-1);if(F[e+27|0]<0){qa(H[e+16>>2])}if((d|0)<=0){break f}f=H[g+8>>2];i=H[g+12>>2];d=H[e+12>>2]}d=d+1|0;H[e+12>>2]=d;if(i-f>>2>(d|0)){continue}break}}d=ra(56);H[d>>2]=0;H[d+4>>2]=0;H[d+48>>2]=0;H[d+52>>2]=0;H[d+40>>2]=0;H[d+44>>2]=0;H[d+32>>2]=0;H[d+36>>2]=0;H[d+24>>2]=0;H[d+28>>2]=0;H[d+16>>2]=0;H[d+20>>2]=0;H[d+8>>2]=0;H[d+12>>2]=0;d=nc(d);H[d>>2]=12564;break c}if((j|0)==1){break b}d=ra(56);H[d>>2]=0;H[d+4>>2]=0;H[d+48>>2]=0;H[d+52>>2]=0;H[d+40>>2]=0;H[d+44>>2]=0;H[d+32>>2]=0;H[d+36>>2]=0;H[d+24>>2]=0;H[d+28>>2]=0;H[d+16>>2]=0;H[d+20>>2]=0;H[d+8>>2]=0;H[d+12>>2]=0;d=nc(d);H[d>>2]=12672}H[d+4>>2]=g;Kf(a,d,h,c);if(!H[a>>2]){if(F[a+15|0]<0){qa(H[a+4>>2])}c=H[d+52>>2];H[b+44>>2]=0;H[b+40>>2]=c;H[a+8>>2]=0;H[a+12>>2]=0;H[a>>2]=0;H[a+4>>2]=0}fa[H[H[d>>2]+4>>2]](d);break a}b=ra(32);c=I[1853]|I[1854]<<8|(I[1855]<<16|I[1856]<<24);d=I[1849]|I[1850]<<8|(I[1851]<<16|I[1852]<<24);F[b+16|0]=d;F[b+17|0]=d>>>8;F[b+18|0]=d>>>16;F[b+19|0]=d>>>24;F[b+20|0]=c;F[b+21|0]=c>>>8;F[b+22|0]=c>>>16;F[b+23|0]=c>>>24;c=I[1845]|I[1846]<<8|(I[1847]<<16|I[1848]<<24);d=I[1841]|I[1842]<<8|(I[1843]<<16|I[1844]<<24);F[b+8|0]=d;F[b+9|0]=d>>>8;F[b+10|0]=d>>>16;F[b+11|0]=d>>>24;F[b+12|0]=c;F[b+13|0]=c>>>8;F[b+14|0]=c>>>16;F[b+15|0]=c>>>24;c=I[1837]|I[1838]<<8|(I[1839]<<16|I[1840]<<24);d=I[1833]|I[1834]<<8|(I[1835]<<16|I[1836]<<24);F[b|0]=d;F[b+1|0]=d>>>8;F[b+2|0]=d>>>16;F[b+3|0]=d>>>24;F[b+4|0]=c;F[b+5|0]=c>>>8;F[b+6|0]=c>>>16;F[b+7|0]=c>>>24;F[b+24|0]=0;H[a>>2]=-1;Ia(a+4|0,b,24);qa(b)}da=e+32|0;return}d=da-16|0;da=d;e=ra(16);H[d>>2]=e;H[d+4>>2]=15;H[d+8>>2]=-2147483632;F[e+15|0]=0;g=I[1587]|I[1588]<<8|(I[1589]<<16|I[1590]<<24);f=I[1583]|I[1584]<<8|(I[1585]<<16|I[1586]<<24);F[e+7|0]=f;F[e+8|0]=f>>>8;F[e+9|0]=f>>>16;F[e+10|0]=f>>>24;F[e+11|0]=g;F[e+12|0]=g>>>8;F[e+13|0]=g>>>16;F[e+14|0]=g>>>24;g=I[1580]|I[1581]<<8|(I[1582]<<16|I[1583]<<24);f=I[1576]|I[1577]<<8|(I[1578]<<16|I[1579]<<24);F[e|0]=f;F[e+1|0]=f>>>8;F[e+2|0]=f>>>16;F[e+3|0]=f>>>24;F[e+4|0]=g;F[e+5|0]=g>>>8;F[e+6|0]=g>>>16;F[e+7|0]=g>>>24;g=b+4|0;e=Cb(g,d,-1);if(F[d+11|0]<0){qa(H[d>>2])}g:{h:{i:{switch(e+1|0){case 0:if((eb(g)|0)==10){break h}break;case 2:break i;default:break h}}e=Nf(ra(68));H[e+64>>2]=0;H[e>>2]=10404;break g}e=Nf(ra(64));H[e>>2]=12280}H[e+56>>2]=h;H[e+4>>2]=h;Kf(a,e,g,c);if(!H[a>>2]){if(F[a+15|0]<0){qa(H[a+4>>2])}H[b+40>>2]=H[e+52>>2];H[b+44>>2]=H[e+60>>2];H[a+8>>2]=0;H[a+12>>2]=0;H[a>>2]=0;H[a+4>>2]=0}fa[H[H[e>>2]+4>>2]](e);da=d+16|0}function Wj(a){a=a|0;var b=0,c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0;e=da-16|0;da=e;f=H[a+48>>2];b=ra(32);H[e>>2]=b;H[e+4>>2]=20;H[e+8>>2]=-2147483616;F[b+20|0]=0;c=I[1359]|I[1360]<<8|(I[1361]<<16|I[1362]<<24);F[b+16|0]=c;F[b+17|0]=c>>>8;F[b+18|0]=c>>>16;F[b+19|0]=c>>>24;c=I[1355]|I[1356]<<8|(I[1357]<<16|I[1358]<<24);d=I[1351]|I[1352]<<8|(I[1353]<<16|I[1354]<<24);F[b+8|0]=d;F[b+9|0]=d>>>8;F[b+10|0]=d>>>16;F[b+11|0]=d>>>24;F[b+12|0]=c;F[b+13|0]=c>>>8;F[b+14|0]=c>>>16;F[b+15|0]=c>>>24;c=I[1347]|I[1348]<<8|(I[1349]<<16|I[1350]<<24);d=I[1343]|I[1344]<<8|(I[1345]<<16|I[1346]<<24);F[b|0]=d;F[b+1|0]=d>>>8;F[b+2|0]=d>>>16;F[b+3|0]=d>>>24;F[b+4|0]=c;F[b+5|0]=c>>>8;F[b+6|0]=c>>>16;F[b+7|0]=c>>>24;f=Ef(f+24|0,e);if(F[e+11|0]<0){qa(H[e>>2])}g=H[a+48>>2];b=ra(32);H[e>>2]=b;H[e+4>>2]=22;H[e+8>>2]=-2147483616;F[b+22|0]=0;c=I[1338]|I[1339]<<8|(I[1340]<<16|I[1341]<<24);d=I[1334]|I[1335]<<8|(I[1336]<<16|I[1337]<<24);F[b+14|0]=d;F[b+15|0]=d>>>8;F[b+16|0]=d>>>16;F[b+17|0]=d>>>24;F[b+18|0]=c;F[b+19|0]=c>>>8;F[b+20|0]=c>>>16;F[b+21|0]=c>>>24;c=I[1332]|I[1333]<<8|(I[1334]<<16|I[1335]<<24);d=I[1328]|I[1329]<<8|(I[1330]<<16|I[1331]<<24);F[b+8|0]=d;F[b+9|0]=d>>>8;F[b+10|0]=d>>>16;F[b+11|0]=d>>>24;F[b+12|0]=c;F[b+13|0]=c>>>8;F[b+14|0]=c>>>16;F[b+15|0]=c>>>24;c=I[1324]|I[1325]<<8|(I[1326]<<16|I[1327]<<24);d=I[1320]|I[1321]<<8|(I[1322]<<16|I[1323]<<24);F[b|0]=d;F[b+1|0]=d>>>8;F[b+2|0]=d>>>16;F[b+3|0]=d>>>24;F[b+4|0]=c;F[b+5|0]=c>>>8;F[b+6|0]=c>>>16;F[b+7|0]=c>>>24;g=Ef(g+24|0,e);if(F[e+11|0]<0){qa(H[e>>2])}b=H[a+64>>2];H[a+64>>2]=0;if(b){fa[H[H[b>>2]+4>>2]](b)}b=H[a+56>>2];h=H[b+100>>2];i=H[a+48>>2];j=H[b+96>>2];b=ra(32);H[e>>2]=b;H[e+4>>2]=18;H[e+8>>2]=-2147483616;F[b+18|0]=0;c=I[1566]|I[1567]<<8;F[b+16|0]=c;F[b+17|0]=c>>>8;c=I[1562]|I[1563]<<8|(I[1564]<<16|I[1565]<<24);d=I[1558]|I[1559]<<8|(I[1560]<<16|I[1561]<<24);F[b+8|0]=d;F[b+9|0]=d>>>8;F[b+10|0]=d>>>16;F[b+11|0]=d>>>24;F[b+12|0]=c;F[b+13|0]=c>>>8;F[b+14|0]=c>>>16;F[b+15|0]=c>>>24;c=I[1554]|I[1555]<<8|(I[1556]<<16|I[1557]<<24);d=I[1550]|I[1551]<<8|(I[1552]<<16|I[1553]<<24);F[b|0]=d;F[b+1|0]=d>>>8;F[b+2|0]=d>>>16;F[b+3|0]=d>>>24;F[b+4|0]=c;F[b+5|0]=c>>>8;F[b+6|0]=c>>>16;F[b+7|0]=c>>>24;b=Cb(i,e,-1);if(F[e+11|0]<0){qa(H[e>>2])}c=(h-j|0)/12|0;a:{b:{c:{d:{e:{f:{g:{h:{switch(b+1|0){case 1:break f;case 3:break g;case 0:break h;default:break c}}if(!f){break g}if(c>>>0<1e3|(eb(H[a+48>>2])|0)>4|g^1){break e}}b=H[a+44>>2];F[e|0]=2;c=H[b+20>>2];if(!H[b+16>>2]&(c|0)<=0|(c|0)<0){wa(b,H[b+4>>2],e,e+1|0)}b=ra(360);H[b+4>>2]=0;H[b+8>>2]=0;H[b+72>>2]=0;H[b+76>>2]=0;H[b>>2]=10584;H[b+12>>2]=0;H[b+16>>2]=0;H[b+20>>2]=0;H[b+24>>2]=0;H[b+28>>2]=0;H[b+32>>2]=0;H[b+36>>2]=0;H[b+40>>2]=0;H[b+44>>2]=0;H[b+48>>2]=0;H[b+52>>2]=0;H[b+56>>2]=0;H[b+60>>2]=0;H[b+64>>2]=0;H[b+80>>2]=0;H[b+84>>2]=0;H[b+88>>2]=0;H[b+92>>2]=0;H[b+96>>2]=0;H[b+100>>2]=0;H[b+104>>2]=0;H[b+108>>2]=0;H[b+112>>2]=0;H[b+116>>2]=0;H[b+120>>2]=0;H[b+124>>2]=0;H[b+128>>2]=0;H[b+132>>2]=0;H[b+136>>2]=1065353216;H[b+156>>2]=0;H[b+160>>2]=0;H[b+148>>2]=0;H[b+152>>2]=0;H[b+140>>2]=0;H[b+144>>2]=0;H[b+168>>2]=0;H[b+172>>2]=0;H[b+164>>2]=-1;H[b+176>>2]=0;H[b+180>>2]=0;H[b+184>>2]=0;H[b+188>>2]=0;H[b+192>>2]=0;c=b+200|0;H[c>>2]=0;H[c+4>>2]=0;H[c+24>>2]=0;H[c+28>>2]=0;H[c+16>>2]=0;H[c+20>>2]=0;H[c+8>>2]=0;H[c+12>>2]=0;c=b+232|0;H[c>>2]=0;H[c+4>>2]=0;F[c+24|0]=0;H[c+16>>2]=0;H[c+20>>2]=0;H[c+8>>2]=0;H[c+12>>2]=0;H[b+304>>2]=0;H[b+308>>2]=0;H[b+296>>2]=0;H[b+300>>2]=0;H[b+288>>2]=0;H[b+292>>2]=0;H[b+280>>2]=0;H[b+284>>2]=0;H[b+272>>2]=0;H[b+276>>2]=0;H[b+264>>2]=0;H[b+268>>2]=0;F[b+352|0]=0;H[b+344>>2]=0;H[b+336>>2]=0;H[b+340>>2]=0;H[b+328>>2]=2;H[b+332>>2]=7;H[b+320>>2]=-1;H[b+324>>2]=0;H[b+312>>2]=0;H[b+316>>2]=-1;break d}if(!f){break c}}b=H[a+44>>2];F[e|0]=0;c=H[b+20>>2];if(!H[b+16>>2]&(c|0)<=0|(c|0)<0){wa(b,H[b+4>>2],e,e+1|0)}b=ra(296);H[b+4>>2]=0;H[b+8>>2]=0;H[b+72>>2]=0;H[b+76>>2]=0;H[b>>2]=10532;H[b+12>>2]=0;H[b+16>>2]=0;H[b+20>>2]=0;H[b+24>>2]=0;H[b+28>>2]=0;H[b+32>>2]=0;H[b+36>>2]=0;H[b+40>>2]=0;H[b+44>>2]=0;H[b+48>>2]=0;H[b+52>>2]=0;H[b+56>>2]=0;H[b+60>>2]=0;H[b+64>>2]=0;H[b+80>>2]=0;H[b+84>>2]=0;H[b+88>>2]=0;H[b+92>>2]=0;H[b+96>>2]=0;H[b+100>>2]=0;H[b+104>>2]=0;H[b+108>>2]=0;H[b+112>>2]=0;H[b+116>>2]=0;H[b+120>>2]=0;H[b+124>>2]=0;H[b+128>>2]=0;H[b+132>>2]=0;H[b+136>>2]=1065353216;H[b+156>>2]=0;H[b+160>>2]=0;H[b+148>>2]=0;H[b+152>>2]=0;H[b+140>>2]=0;H[b+144>>2]=0;H[b+168>>2]=0;H[b+172>>2]=0;H[b+164>>2]=-1;H[b+176>>2]=0;H[b+180>>2]=0;H[b+184>>2]=0;H[b+188>>2]=0;H[b+192>>2]=0;c=b+200|0;H[c>>2]=0;H[c+4>>2]=0;H[c+24>>2]=0;H[c+28>>2]=0;H[c+16>>2]=0;H[c+20>>2]=0;H[c+8>>2]=0;H[c+12>>2]=0;c=b+232|0;H[c>>2]=0;H[c+4>>2]=0;F[c+24|0]=0;H[c+16>>2]=0;H[c+20>>2]=0;H[c+8>>2]=0;H[c+12>>2]=0;F[b+288|0]=0;H[b+280>>2]=0;H[b+284>>2]=0;H[b+272>>2]=0;H[b+276>>2]=0;H[b+264>>2]=0;H[b+268>>2]=0}c=H[a+64>>2];H[a+64>>2]=b;if(!c){break b}fa[H[H[c>>2]+4>>2]](c)}b=H[a+64>>2];if(b){break b}a=0;break a}a=fa[H[H[b>>2]+8>>2]](b,a)|0}da=e+16|0;return a|0}function Xc(a,b){var c=0,d=0,e=0,f=0,g=0,h=0;e=da-16|0;da=e;H[a+8>>2]=b;H[a>>2]=0;d=a+12|0;H[d>>2]=0;H[d+4>>2]=0;H[d+24>>2]=0;H[d+28>>2]=0;H[d+16>>2]=0;H[d+20>>2]=0;H[d+8>>2]=0;H[d+12>>2]=0;c=d+32|0;H[c>>2]=0;H[c+4>>2]=0;H[c+24>>2]=0;H[c+28>>2]=0;H[c+16>>2]=0;H[c+20>>2]=0;H[c+8>>2]=0;H[c+12>>2]=0;c=d- -64|0;H[c>>2]=0;H[c+4>>2]=0;H[c+24>>2]=0;H[c+28>>2]=0;H[c+16>>2]=0;H[c+20>>2]=0;H[c+8>>2]=0;H[c+12>>2]=0;c=d+96|0;H[c>>2]=0;H[c+4>>2]=0;H[c+24>>2]=0;H[c+28>>2]=0;H[c+16>>2]=0;H[c+20>>2]=0;H[c+8>>2]=0;H[c+12>>2]=0;c=d+128|0;H[c>>2]=0;H[c+4>>2]=0;H[c+24>>2]=0;H[c+28>>2]=0;H[c+16>>2]=0;H[c+20>>2]=0;H[c+8>>2]=0;H[c+12>>2]=0;c=d+160|0;H[c>>2]=0;H[c+4>>2]=0;H[c+24>>2]=0;H[c+28>>2]=0;H[c+16>>2]=0;H[c+20>>2]=0;H[c+8>>2]=0;H[c+12>>2]=0;c=d+192|0;H[c>>2]=0;H[c+4>>2]=0;H[c+24>>2]=0;H[c+28>>2]=0;H[c+16>>2]=0;H[c+20>>2]=0;H[c+8>>2]=0;H[c+12>>2]=0;c=d+224|0;H[c>>2]=0;H[c+4>>2]=0;H[c+24>>2]=0;H[c+28>>2]=0;H[c+16>>2]=0;H[c+20>>2]=0;H[c+8>>2]=0;H[c+12>>2]=0;c=d+256|0;H[c>>2]=0;H[c+4>>2]=0;H[c+24>>2]=0;H[c+28>>2]=0;H[c+16>>2]=0;H[c+20>>2]=0;H[c+8>>2]=0;H[c+12>>2]=0;c=d+288|0;H[c>>2]=0;H[c+4>>2]=0;H[c+24>>2]=0;H[c+28>>2]=0;H[c+16>>2]=0;H[c+20>>2]=0;H[c+8>>2]=0;H[c+12>>2]=0;c=d+320|0;H[c>>2]=0;H[c+4>>2]=0;H[c+24>>2]=0;H[c+28>>2]=0;H[c+16>>2]=0;H[c+20>>2]=0;H[c+8>>2]=0;H[c+12>>2]=0;c=d+352|0;H[c>>2]=0;H[c+4>>2]=0;H[c+24>>2]=0;H[c+28>>2]=0;H[c+16>>2]=0;H[c+20>>2]=0;H[c+8>>2]=0;H[c+12>>2]=0;c=d+384|0;H[c>>2]=0;H[c+4>>2]=0;H[c+24>>2]=0;H[c+28>>2]=0;H[c+16>>2]=0;H[c+20>>2]=0;H[c+8>>2]=0;H[c+12>>2]=0;c=d+416|0;H[c>>2]=0;H[c+4>>2]=0;H[c+24>>2]=0;H[c+28>>2]=0;H[c+16>>2]=0;H[c+20>>2]=0;H[c+8>>2]=0;H[c+12>>2]=0;c=d+448|0;H[c>>2]=0;H[c+4>>2]=0;H[c+24>>2]=0;H[c+28>>2]=0;H[c+16>>2]=0;H[c+20>>2]=0;H[c+8>>2]=0;H[c+12>>2]=0;c=d+480|0;H[c>>2]=0;H[c+4>>2]=0;H[c+24>>2]=0;H[c+28>>2]=0;H[c+16>>2]=0;H[c+20>>2]=0;H[c+8>>2]=0;H[c+12>>2]=0;c=d+512|0;H[c>>2]=0;H[c+4>>2]=0;H[c+24>>2]=0;H[c+28>>2]=0;H[c+16>>2]=0;H[c+20>>2]=0;H[c+8>>2]=0;H[c+12>>2]=0;c=d+544|0;H[c>>2]=0;H[c+4>>2]=0;H[c+24>>2]=0;H[c+28>>2]=0;H[c+16>>2]=0;H[c+20>>2]=0;H[c+8>>2]=0;H[c+12>>2]=0;c=d+576|0;H[c>>2]=0;H[c+4>>2]=0;H[c+24>>2]=0;H[c+28>>2]=0;H[c+16>>2]=0;H[c+20>>2]=0;H[c+8>>2]=0;H[c+12>>2]=0;c=d+608|0;H[c>>2]=0;H[c+4>>2]=0;H[c+24>>2]=0;H[c+28>>2]=0;H[c+16>>2]=0;H[c+20>>2]=0;H[c+8>>2]=0;H[c+12>>2]=0;c=d+640|0;H[c>>2]=0;H[c+4>>2]=0;H[c+24>>2]=0;H[c+28>>2]=0;H[c+16>>2]=0;H[c+20>>2]=0;H[c+8>>2]=0;H[c+12>>2]=0;c=d+672|0;H[c>>2]=0;H[c+4>>2]=0;H[c+24>>2]=0;H[c+28>>2]=0;H[c+16>>2]=0;H[c+20>>2]=0;H[c+8>>2]=0;H[c+12>>2]=0;c=d+704|0;H[c>>2]=0;H[c+4>>2]=0;H[c+24>>2]=0;H[c+28>>2]=0;H[c+16>>2]=0;H[c+20>>2]=0;H[c+8>>2]=0;H[c+12>>2]=0;c=d+736|0;H[c>>2]=0;H[c+4>>2]=0;H[c+24>>2]=0;H[c+28>>2]=0;H[c+16>>2]=0;H[c+20>>2]=0;H[c+8>>2]=0;H[c+12>>2]=0;c=d+768|0;H[c>>2]=0;H[c+4>>2]=0;H[c+24>>2]=0;H[c+28>>2]=0;H[c+16>>2]=0;H[c+20>>2]=0;H[c+8>>2]=0;H[c+12>>2]=0;c=d+800|0;H[c>>2]=0;H[c+4>>2]=0;H[c+24>>2]=0;H[c+28>>2]=0;H[c+16>>2]=0;H[c+20>>2]=0;H[c+8>>2]=0;H[c+12>>2]=0;c=d+832|0;H[c>>2]=0;H[c+4>>2]=0;H[c+24>>2]=0;H[c+28>>2]=0;H[c+16>>2]=0;H[c+20>>2]=0;H[c+8>>2]=0;H[c+12>>2]=0;c=d+864|0;H[c>>2]=0;H[c+4>>2]=0;H[c+24>>2]=0;H[c+28>>2]=0;H[c+16>>2]=0;H[c+20>>2]=0;H[c+8>>2]=0;H[c+12>>2]=0;c=d+896|0;H[c>>2]=0;H[c+4>>2]=0;H[c+24>>2]=0;H[c+28>>2]=0;H[c+16>>2]=0;H[c+20>>2]=0;H[c+8>>2]=0;H[c+12>>2]=0;c=d+928|0;H[c>>2]=0;H[c+4>>2]=0;H[c+24>>2]=0;H[c+28>>2]=0;H[c+16>>2]=0;H[c+20>>2]=0;H[c+8>>2]=0;H[c+12>>2]=0;c=d+960|0;H[c>>2]=0;H[c+4>>2]=0;H[c+24>>2]=0;H[c+28>>2]=0;H[c+16>>2]=0;H[c+20>>2]=0;H[c+8>>2]=0;H[c+12>>2]=0;d=d+992|0;H[d>>2]=0;H[d+4>>2]=0;H[d+24>>2]=0;H[d+28>>2]=0;H[d+16>>2]=0;H[d+20>>2]=0;H[d+8>>2]=0;H[d+12>>2]=0;d=a+1036|0;H[d>>2]=0;H[d+4>>2]=0;H[d+24>>2]=0;H[d+28>>2]=0;H[d+16>>2]=0;H[d+20>>2]=0;H[d+8>>2]=0;H[d+12>>2]=0;d=a+1068|0;H[d>>2]=0;H[d+4>>2]=0;H[d+16>>2]=0;H[d+8>>2]=0;H[d+12>>2]=0;d=a+1088|0;H[d>>2]=0;H[d+4>>2]=0;H[d+16>>2]=0;H[d+8>>2]=0;H[d+12>>2]=0;d=a+1108|0;H[d>>2]=0;H[d+4>>2]=0;H[d+16>>2]=0;H[d+8>>2]=0;H[d+12>>2]=0;H[a+1136>>2]=0;H[a+1128>>2]=0;H[a+1132>>2]=0;h=a+1164|0;a:{b:{if(b){if(b>>>0<1073741824){break b}ua();X()}H[a+1140>>2]=0;H[a+1144>>2]=0;d=a+1156|0;H[d>>2]=0;H[d+4>>2]=0;d=a+1148|0;H[d>>2]=0;H[d+4>>2]=0;H[e+8>>2]=0;H[e>>2]=0;H[e+4>>2]=0;d=1;break a}d=b<<2;c=ra(d);H[a+1128>>2]=c;f=c+d|0;H[a+1136>>2]=f;ta(c,0,d);g=a+1148|0;H[g>>2]=0;H[a+1140>>2]=0;H[a+1144>>2]=0;H[a+1132>>2]=f;c=ra(d);H[a+1140>>2]=c;f=c+d|0;H[g>>2]=f;ta(c,0,d);g=a+1160|0;H[g>>2]=0;H[a+1152>>2]=0;H[a+1156>>2]=0;H[a+1144>>2]=f;c=ra(d);H[a+1152>>2]=c;f=c+d|0;H[g>>2]=f;ta(c,0,d);H[a+1156>>2]=f;c=ra(d);H[e>>2]=c;f=c+d|0;H[e+8>>2]=f;ta(c,0,d);H[e+4>>2]=f;d=b<<5|1}Mb(h,d,e);c=H[e>>2];if(c){H[e+4>>2]=c;qa(c)}H[e+8>>2]=0;H[e>>2]=0;H[e+4>>2]=0;if(b){b=b<<2;c=ra(b);H[e>>2]=c;f=b+c|0;H[e+8>>2]=f;ta(c,0,b);H[e+4>>2]=f}Mb(a+1176|0,d,e);b=H[e>>2];if(b){H[e+4>>2]=b;qa(b)}da=e+16|0;return a}function ch(a,b,c,d){var e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,G=0,J=0,K=0,L=0,M=0,N=0,O=0,P=0,Q=0,R=0,S=0;i=da-80|0;da=i;f=-1;a:{if((b|0)==-1){break a}j=H[a+32>>2];e=b+1|0;e=(e>>>0)%3|0?e:b-2|0;if((e|0)!=-1){f=H[H[j>>2]+(e<<2)>>2]}e=((b>>>0)%3|0?-1:2)+b|0;b=-1;b=(e|0)!=-1?H[H[j>>2]+(e<<2)>>2]:b;e=H[a+36>>2];j=H[e>>2];e=H[e+4>>2]-j>>2;if(e>>>0<=f>>>0|b>>>0>=e>>>0){break a}b:{c:{d:{e:{f:{g:{h:{i:{k=H[j+(b<<2)>>2];g=H[j+(f<<2)>>2];if((k|0)>=(d|0)|(g|0)>=(d|0)){break i}b=(k<<3)+c|0;j=H[b+4>>2];e=(g<<3)+c|0;f=H[e+4>>2];q=H[e>>2];z=H[b>>2];if(!((q|0)!=(z|0)|(f|0)!=(j|0))){H[a+8>>2]=q;H[a+12>>2]=f;break h}b=H[H[a+4>>2]+(d<<2)>>2];H[i+72>>2]=0;H[i+76>>2]=0;e=i- -64|0;H[e>>2]=0;H[e+4>>2]=0;H[i+56>>2]=0;H[i+60>>2]=0;e=H[a>>2];if(!I[e+84|0]){b=H[H[e+68>>2]+(b<<2)>>2]}ib(e,b,F[e+24|0],i+56|0);b=H[H[a+4>>2]+(g<<2)>>2];H[i+48>>2]=0;H[i+52>>2]=0;H[i+40>>2]=0;H[i+44>>2]=0;H[i+32>>2]=0;H[i+36>>2]=0;e=H[a>>2];if(!I[e+84|0]){b=H[H[e+68>>2]+(b<<2)>>2]}ib(e,b,F[e+24|0],i+32|0);b=H[H[a+4>>2]+(k<<2)>>2];H[i+24>>2]=0;H[i+28>>2]=0;H[i+16>>2]=0;H[i+20>>2]=0;H[i+8>>2]=0;H[i+12>>2]=0;e=H[a>>2];if(!I[e+84|0]){b=H[H[e+68>>2]+(b<<2)>>2]}ib(e,b,F[e+24|0],i+8|0);K=H[i+44>>2];b=H[i+16>>2];w=H[i+40>>2];e=w;h=H[i+20>>2]-(K+(b>>>0>>0)|0)|0;r=b-e|0;b=zl(r,h,r,h);m=ea;l=b;L=H[i+36>>2];b=H[i+8>>2];A=H[i+32>>2];e=A;o=H[i+12>>2]-(L+(b>>>0>>0)|0)|0;k=b-e|0;n=zl(k,o,k,o);e=l+n|0;b=ea+m|0;b=e>>>0>>0?b+1|0:b;l=e;M=H[i+52>>2];e=H[i+24>>2];B=H[i+48>>2];n=B;m=H[i+28>>2]-(M+(e>>>0>>0)|0)|0;t=e-n|0;p=zl(t,m,t,m);n=l+p|0;e=ea+b|0;s=n;n=n>>>0

>>0?e+1|0:e;if(!(s|n)){break i}u=H[i+64>>2];b=u;D=H[i+68>>2];b=zl(b-w|0,D-((b>>>0>>0)+K|0)|0,r,h);e=ea;l=b;J=H[i+56>>2];b=J;G=H[i+60>>2];g=zl(b-A|0,G-((b>>>0>>0)+L|0)|0,k,o);b=l+g|0;e=ea+e|0;e=b>>>0>>0?e+1|0:e;g=b;N=H[i+72>>2];b=N;O=H[i+76>>2];p=zl(b-B|0,O-((b>>>0>>0)+M|0)|0,t,m);g=g+p|0;b=ea+e|0;b=g>>>0

>>0?b+1|0:b;p=g;C=b;e=o>>31;g=e;l=e^k;e=(e^o)-(e+(e>>>0>l>>>0)|0)|0;v=l-g|0;E=h>>31;l=E;g=l;x=g^r;y=x-g|0;g=(h^g)-((g>>>0>x>>>0)+g|0)|0;l=(g|0)==(e|0)&v>>>0>y>>>0|e>>>0>g>>>0;v=l?v:y;e=l?e:g;E=m>>31;l=E;g=l;x=g^t;y=x-g|0;g=(m^g)-((g>>>0>x>>>0)+g|0)|0;l=(g|0)==(e|0)&v>>>0>y>>>0|e>>>0>g>>>0;x=Bl(-1,2147483647,l?v:y,l?e:g);v=ea;e=v;if(x>>>0

>>0&(e|0)<=(b|0)|(b|0)>(e|0)){break d}b=f;y=j-b|0;e=b>>31;P=(j>>31)-(e+(b>>>0>j>>>0)|0)|0;b=zl(p,C,y,P);j=ea;e=zl(f,e,s,n);f=e+b|0;b=ea+j|0;g=f;l=e>>>0>f>>>0?b+1|0:b;b=q;Q=z-b|0;f=b>>31;E=(z>>31)-(f+(b>>>0>z>>>0)|0)|0;b=zl(p,C,Q,E);j=ea;f=zl(q,f,s,n);b=f+b|0;e=ea+j|0;q=b;z=b>>>0>>0?e+1|0:e;j=1;f=0;b=u;r=Al(zl(r,h,p,C),ea,s,n);h=r+w|0;e=ea+K|0;e=h>>>0>>0?e+1|0:e;e=D-((b>>>0>>0)+e|0)|0;b=b-h|0;b=zl(b,e,b,e);h=ea;e=J;u=b;o=Al(zl(k,o,p,C),ea,s,n);k=o+A|0;b=ea+L|0;b=k>>>0>>0?b+1|0:b;b=G-((e>>>0>>0)+b|0)|0;e=e-k|0;k=zl(e,b,e,b);b=u+k|0;e=ea+h|0;h=b;k=b>>>0>>0?e+1|0:e;b=N;u=h;o=Al(zl(t,m,p,C),ea,s,n);h=o+B|0;e=ea+M|0;e=h>>>0>>0?e+1|0:e;e=O-((b>>>0>>0)+e|0)|0;b=b-h|0;h=zl(b,e,b,e);e=u+h|0;b=ea+k|0;k=zl(e,e>>>0>>0?b+1|0:b,s,n);b=ea;h=b;if(!b&k>>>0<=1){break g}o=k;e=h;while(1){b=f<<1|j>>>31;j=j<<1;f=b;m=!e&o>>>0>7|(e|0)!=0;o=(e&3)<<30|o>>>2;e=e>>>2|0;if(m){continue}break}break f}if((d|0)>(g|0)){b=g<<1}else{if((d|0)<=0){H[a+8>>2]=0;H[a+12>>2]=0;break h}b=(d<<1)-2|0}b=(b<<2)+c|0;H[a+8>>2]=H[b>>2];H[a+12>>2]=H[b+4>>2]}a=1;break c}f=h;j=k;if(j-1|0){break e}}while(1){b=Bl(k,h,j,f)+j|0;e=f+ea|0;e=b>>>0>>0?e+1|0:e;j=(e&1)<<31|b>>>1;f=e>>>1|0;b=zl(j,f,j,f);e=ea;if((h|0)==(e|0)&b>>>0>k>>>0|e>>>0>h>>>0){continue}break}}k=a+16|0;w=H[a+24>>2];A=w<<5;b=H[a+20>>2];h=(d<<3)+c|0;d=H[h+4>>2];B=zl(j,f,Q,E);c=B;u=ea;c=Al(g-c|0,l-(u+(c>>>0>g>>>0)|0)|0,s,n);m=d-c|0;o=d>>31;e=o-(ea+(c>>>0>d>>>0)|0)|0;D=zl(m,e,m,e);J=ea;h=H[h>>2];e=h>>31;m=h;r=e;t=zl(j,f,y,P);f=q+t|0;G=ea;e=z+G|0;j=Al(f,f>>>0>>0?e+1|0:e,s,n);e=h-j|0;f=r-(ea+(h>>>0>>0)|0)|0;h=zl(e,f,e,f);f=h+D|0;e=ea+J|0;D=f;h=f>>>0>>0?e+1|0:e;f=d;e=l+u|0;d=g+B|0;e=d>>>0>>0?e+1|0:e;d=Al(d,e,s,n);e=o-(ea+(d>>>0>f>>>0)|0)|0;f=f-d|0;e=zl(f,e,f,e);g=ea;f=Al(q-t|0,z-((q>>>0>>0)+G|0)|0,s,n);l=e;e=r-(ea+(f>>>0>m>>>0)|0)|0;m=m-f|0;q=zl(m,e,m,e);m=l+q|0;e=ea+g|0;e=m>>>0>>0?e+1|0:e;j:{if((e|0)==(h|0)&m>>>0>D>>>0|e>>>0>h>>>0){if((b|0)==(A|0)){if((b+1|0)<0){break b}if(b>>>0<=1073741822){d=w<<6;b=b+32&-32;b=b>>>0>>0?d:b}else{b=2147483647}Gb(k,b);b=H[a+20>>2]}H[a+20>>2]=b+1;d=H[a+16>>2]+(b>>>3&536870908)|0;H[d>>2]=H[d>>2]|1<>>0<=1073741822){c=w<<6;b=b+32&-32;b=b>>>0>>0?c:b}else{b=2147483647}Gb(k,b);b=H[a+20>>2]}H[a+20>>2]=b+1;c=H[a+16>>2]+(b>>>3&536870908)|0;j=H[c>>2];R=c,S=Dl(b)&j,H[R>>2]=S;c=d;j=f}H[a+8>>2]=j;H[a+12>>2]=c}a=(C|0)<=(v|0)&p>>>0<=x>>>0|(C|0)<(v|0)}da=i+80|0;return a}ua();X()}va();X()}function hh(a,b,c,d){var e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,G=0,J=0,K=0,L=0,M=0,N=0,O=0,P=0,Q=0,R=0,S=0;i=da-80|0;da=i;j=-1;f=-1;a:{if((b|0)==-1){break a}f=b+1|0;j=(f>>>0)%3|0?f:b-2|0;f=b-1|0;if((b>>>0)%3|0){break a}f=b+2|0}b:{e=H[a+36>>2];b=H[e>>2];c:{d:{e:{f:{g:{h:{e=H[e+4>>2]-b>>2;h=j<<2;j=H[H[a+32>>2]+28>>2];k=H[h+j>>2];if(e>>>0<=k>>>0){break h}f=H[j+(f<<2)>>2];if(f>>>0>=e>>>0){break h}g=H[b+(k<<2)>>2];i:{j:{k=H[b+(f<<2)>>2];if((d|0)<=(g|0)|(k|0)>=(d|0)){break j}b=(k<<3)+c|0;j=H[b+4>>2];e=(g<<3)+c|0;f=H[e+4>>2];q=H[e>>2];z=H[b>>2];if(!((q|0)!=(z|0)|(f|0)!=(j|0))){H[a+8>>2]=q;H[a+12>>2]=f;break i}b=H[H[a+4>>2]+(d<<2)>>2];H[i+72>>2]=0;H[i+76>>2]=0;e=i- -64|0;H[e>>2]=0;H[e+4>>2]=0;H[i+56>>2]=0;H[i+60>>2]=0;e=H[a>>2];if(!I[e+84|0]){b=H[H[e+68>>2]+(b<<2)>>2]}ib(e,b,F[e+24|0],i+56|0);b=H[H[a+4>>2]+(g<<2)>>2];H[i+48>>2]=0;H[i+52>>2]=0;H[i+40>>2]=0;H[i+44>>2]=0;H[i+32>>2]=0;H[i+36>>2]=0;e=H[a>>2];if(!I[e+84|0]){b=H[H[e+68>>2]+(b<<2)>>2]}ib(e,b,F[e+24|0],i+32|0);b=H[H[a+4>>2]+(k<<2)>>2];H[i+24>>2]=0;H[i+28>>2]=0;H[i+16>>2]=0;H[i+20>>2]=0;H[i+8>>2]=0;H[i+12>>2]=0;e=H[a>>2];if(!I[e+84|0]){b=H[H[e+68>>2]+(b<<2)>>2]}ib(e,b,F[e+24|0],i+8|0);J=H[i+44>>2];b=H[i+16>>2];w=H[i+40>>2];e=w;h=H[i+20>>2]-(J+(b>>>0>>0)|0)|0;r=b-e|0;b=zl(r,h,r,h);l=ea;n=b;K=H[i+36>>2];b=H[i+8>>2];A=H[i+32>>2];e=A;o=H[i+12>>2]-(K+(b>>>0>>0)|0)|0;k=b-e|0;m=zl(k,o,k,o);e=n+m|0;b=ea+l|0;b=e>>>0>>0?b+1|0:b;n=e;L=H[i+52>>2];e=H[i+24>>2];B=H[i+48>>2];m=B;l=H[i+28>>2]-(L+(e>>>0>>0)|0)|0;t=e-m|0;p=zl(t,l,t,l);m=n+p|0;e=ea+b|0;s=m;m=m>>>0

>>0?e+1|0:e;if(!(s|m)){break j}u=H[i+64>>2];b=u;D=H[i+68>>2];b=zl(b-w|0,D-((b>>>0>>0)+J|0)|0,r,h);e=ea;n=b;G=H[i+56>>2];b=G;E=H[i+60>>2];g=zl(b-A|0,E-((b>>>0>>0)+K|0)|0,k,o);b=n+g|0;e=ea+e|0;e=b>>>0>>0?e+1|0:e;g=b;M=H[i+72>>2];b=M;N=H[i+76>>2];p=zl(b-B|0,N-((b>>>0>>0)+L|0)|0,t,l);g=g+p|0;b=ea+e|0;b=g>>>0

>>0?b+1|0:b;p=g;C=b;e=o>>31;g=e;n=e^k;e=(e^o)-(e+(e>>>0>n>>>0)|0)|0;v=n-g|0;g=h>>31;x=g^r;y=x-g|0;g=(h^g)-((g>>>0>x>>>0)+g|0)|0;n=(g|0)==(e|0)&v>>>0>y>>>0|e>>>0>g>>>0;v=n?v:y;e=n?e:g;g=l>>31;x=g^t;y=x-g|0;g=(l^g)-((g>>>0>x>>>0)+g|0)|0;n=(g|0)==(e|0)&v>>>0>y>>>0|e>>>0>g>>>0;x=Bl(-1,2147483647,n?v:y,n?e:g);v=ea;e=v;if(x>>>0

>>0&(e|0)<=(b|0)|(b|0)>(e|0)){break d}b=f;y=j-b|0;e=b>>31;O=(j>>31)-(e+(b>>>0>j>>>0)|0)|0;b=zl(p,C,y,O);j=ea;e=zl(f,e,s,m);f=e+b|0;b=ea+j|0;g=f;n=e>>>0>f>>>0?b+1|0:b;b=q;P=z-b|0;f=b>>31;Q=(z>>31)-(f+(b>>>0>z>>>0)|0)|0;b=zl(p,C,P,Q);j=ea;f=zl(q,f,s,m);b=f+b|0;e=ea+j|0;q=b;z=b>>>0>>0?e+1|0:e;j=1;f=0;b=u;r=Al(zl(r,h,p,C),ea,s,m);h=r+w|0;e=ea+J|0;e=h>>>0>>0?e+1|0:e;e=D-((b>>>0>>0)+e|0)|0;b=b-h|0;b=zl(b,e,b,e);h=ea;e=G;u=b;o=Al(zl(k,o,p,C),ea,s,m);k=o+A|0;b=ea+K|0;b=k>>>0>>0?b+1|0:b;b=E-((e>>>0>>0)+b|0)|0;e=e-k|0;k=zl(e,b,e,b);b=u+k|0;e=ea+h|0;h=b;k=b>>>0>>0?e+1|0:e;b=M;u=h;o=Al(zl(t,l,p,C),ea,s,m);h=o+B|0;e=ea+L|0;e=h>>>0>>0?e+1|0:e;e=N-((b>>>0>>0)+e|0)|0;b=b-h|0;h=zl(b,e,b,e);e=u+h|0;b=ea+k|0;k=zl(e,e>>>0>>0?b+1|0:b,s,m);b=ea;h=b;if(!b&k>>>0<=1){break g}o=k;e=h;while(1){b=f<<1|j>>>31;j=j<<1;f=b;l=!e&o>>>0>7|(e|0)!=0;o=(e&3)<<30|o>>>2;e=e>>>2|0;if(l){continue}break}break f}if((d|0)>(g|0)){b=g<<1}else{if((d|0)<=0){H[a+8>>2]=0;H[a+12>>2]=0;break i}b=(d<<1)-2|0}b=(b<<2)+c|0;H[a+8>>2]=H[b>>2];H[a+12>>2]=H[b+4>>2]}a=1;break c}va();X()}f=h;j=k;if(k-1|0){break e}}while(1){b=Bl(k,h,j,f)+j|0;e=f+ea|0;e=b>>>0>>0?e+1|0:e;j=(e&1)<<31|b>>>1;f=e>>>1|0;b=zl(j,f,j,f);e=ea;if((h|0)==(e|0)&b>>>0>k>>>0|e>>>0>h>>>0){continue}break}}k=a+16|0;w=H[a+24>>2];A=w<<5;b=H[a+20>>2];h=(d<<3)+c|0;d=H[h+4>>2];B=zl(j,f,P,Q);c=B;u=ea;c=Al(g-c|0,n-(u+(c>>>0>g>>>0)|0)|0,s,m);l=d-c|0;o=d>>31;e=o-(ea+(c>>>0>d>>>0)|0)|0;D=zl(l,e,l,e);G=ea;h=H[h>>2];e=h>>31;l=h;r=e;t=zl(j,f,y,O);f=q+t|0;E=ea;e=z+E|0;j=Al(f,f>>>0>>0?e+1|0:e,s,m);e=h-j|0;f=r-(ea+(h>>>0>>0)|0)|0;h=zl(e,f,e,f);f=h+D|0;e=ea+G|0;D=f;h=f>>>0>>0?e+1|0:e;f=d;e=n+u|0;d=g+B|0;e=d>>>0>>0?e+1|0:e;d=Al(d,e,s,m);e=o-(ea+(d>>>0>f>>>0)|0)|0;f=f-d|0;e=zl(f,e,f,e);g=ea;f=Al(q-t|0,z-((q>>>0>>0)+E|0)|0,s,m);n=e;e=r-(ea+(f>>>0>l>>>0)|0)|0;l=l-f|0;q=zl(l,e,l,e);l=n+q|0;e=ea+g|0;e=l>>>0>>0?e+1|0:e;k:{if((e|0)==(h|0)&l>>>0>D>>>0|e>>>0>h>>>0){if((b|0)==(A|0)){if((b+1|0)<0){break b}if(b>>>0<=1073741822){d=w<<6;b=b+32&-32;b=b>>>0>>0?d:b}else{b=2147483647}Gb(k,b);b=H[a+20>>2]}H[a+20>>2]=b+1;d=H[a+16>>2]+(b>>>3&536870908)|0;H[d>>2]=H[d>>2]|1<>>0<=1073741822){c=w<<6;b=b+32&-32;b=b>>>0>>0?c:b}else{b=2147483647}Gb(k,b);b=H[a+20>>2]}H[a+20>>2]=b+1;c=H[a+16>>2]+(b>>>3&536870908)|0;j=H[c>>2];R=c,S=Dl(b)&j,H[R>>2]=S;c=d;j=f}H[a+8>>2]=j;H[a+12>>2]=c}a=(C|0)<=(v|0)&p>>>0<=x>>>0|(C|0)<(v|0)}da=i+80|0;return a}ua();X()}function Ja(a){var b=0,c=0,d=0,e=0,f=0,g=0;e=da-16|0;da=e;H[e+12>>2]=a;a:{if(a>>>0<=211){d=H[Fe(17792,17984,e+12|0)>>2];break a}if(a>>>0>=4294967292){_();X()}f=(a>>>0)/210|0;d=N(f,210);H[e+8>>2]=a-d;g=Fe(17984,18176,e+8|0)-17984>>2;while(1){d=H[(g<<2)+17984>>2]+d|0;a=5;b:{while(1){c:{if((a|0)==47){a=211;while(1){b=(d>>>0)/(a>>>0)|0;if(b>>>0>>0){break b}if((N(a,b)|0)==(d|0)){break c}b=a+10|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break b}if((N(b,c)|0)==(d|0)){break c}b=a+12|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break b}if((N(b,c)|0)==(d|0)){break c}b=a+16|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break b}if((N(b,c)|0)==(d|0)){break c}b=a+18|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break b}if((N(b,c)|0)==(d|0)){break c}b=a+22|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break b}if((N(b,c)|0)==(d|0)){break c}b=a+28|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break b}if((N(b,c)|0)==(d|0)){break c}b=a+30|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break b}if((N(b,c)|0)==(d|0)){break c}b=a+36|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break b}if((N(b,c)|0)==(d|0)){break c}b=a+40|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break b}if((N(b,c)|0)==(d|0)){break c}b=a+42|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break b}if((N(b,c)|0)==(d|0)){break c}b=a+46|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break b}if((N(b,c)|0)==(d|0)){break c}b=a+52|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break b}if((N(b,c)|0)==(d|0)){break c}b=a+58|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break b}if((N(b,c)|0)==(d|0)){break c}b=a+60|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break b}if((N(b,c)|0)==(d|0)){break c}b=a+66|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break b}if((N(b,c)|0)==(d|0)){break c}b=a+70|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break b}if((N(b,c)|0)==(d|0)){break c}b=a+72|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break b}if((N(b,c)|0)==(d|0)){break c}b=a+78|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break b}if((N(b,c)|0)==(d|0)){break c}b=a+82|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break b}if((N(b,c)|0)==(d|0)){break c}b=a+88|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break b}if((N(b,c)|0)==(d|0)){break c}b=a+96|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break b}if((N(b,c)|0)==(d|0)){break c}b=a+100|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break b}if((N(b,c)|0)==(d|0)){break c}b=a+102|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break b}if((N(b,c)|0)==(d|0)){break c}b=a+106|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break b}if((N(b,c)|0)==(d|0)){break c}b=a+108|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break b}if((N(b,c)|0)==(d|0)){break c}b=a+112|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break b}if((N(b,c)|0)==(d|0)){break c}b=a+120|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break b}if((N(b,c)|0)==(d|0)){break c}b=a+126|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break b}if((N(b,c)|0)==(d|0)){break c}b=a+130|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break b}if((N(b,c)|0)==(d|0)){break c}b=a+136|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break b}if((N(b,c)|0)==(d|0)){break c}b=a+138|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break b}if((N(b,c)|0)==(d|0)){break c}b=a+142|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break b}if((N(b,c)|0)==(d|0)){break c}b=a+148|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break b}if((N(b,c)|0)==(d|0)){break c}b=a+150|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break b}if((N(b,c)|0)==(d|0)){break c}b=a+156|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break b}if((N(b,c)|0)==(d|0)){break c}b=a+162|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break b}if((N(b,c)|0)==(d|0)){break c}b=a+166|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break b}if((N(b,c)|0)==(d|0)){break c}b=a+168|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break b}if((N(b,c)|0)==(d|0)){break c}b=a+172|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break b}if((N(b,c)|0)==(d|0)){break c}b=a+178|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break b}if((N(b,c)|0)==(d|0)){break c}b=a+180|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break b}if((N(b,c)|0)==(d|0)){break c}b=a+186|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break b}if((N(b,c)|0)==(d|0)){break c}b=a+190|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break b}if((N(b,c)|0)==(d|0)){break c}b=a+192|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break b}if((N(b,c)|0)==(d|0)){break c}b=a+196|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break b}if((N(b,c)|0)==(d|0)){break c}b=a+198|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break b}if((N(b,c)|0)==(d|0)){break c}b=a+208|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break b}a=a+210|0;if((N(b,c)|0)!=(d|0)){continue}break}break c}b=H[(a<<2)+17792>>2];c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break b}a=a+1|0;if((N(b,c)|0)!=(d|0)){continue}}break}d=g+1|0;a=(d|0)==48;g=a?0:d;f=a+f|0;d=N(f,210);continue}break}H[e+12>>2]=d}da=e+16|0;return d}function fl(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0;g=da-32|0;da=g;a:{b:{if(!H[H[a+8>>2]+80>>2]){d=1;break b}F[g+31|0]=254;i=H[a+36>>2];if(i){if(!(fa[H[H[a>>2]+40>>2]](a,i)|0)){break b}d=H[a+36>>2];n=g,o=fa[H[H[d>>2]+8>>2]](d)|0,F[n+31|0]=o}d=H[c+20>>2];if(!H[c+16>>2]&(d|0)<=0|(d|0)<0){wa(c,H[c+4>>2],g+31|0,g+32|0)}d=H[a+36>>2];c:{if(!d){break c}n=g,o=fa[H[H[d>>2]+36>>2]](d)|0,F[n+16|0]=o;d=H[c+20>>2];if(!!H[c+16>>2]&(d|0)>=0|(d|0)>0){break c}wa(c,H[c+4>>2],g+16|0,g+17|0)}d=H[a+32>>2];e=H[d+48>>2];f=H[H[d>>2]>>2];h=H[d+80>>2];k=F[d+24|0];i=0;H[g+24>>2]=0;H[g+16>>2]=0;H[g+20>>2]=0;h=N(h,k);if(h){if(h>>>0>=1073741824){break a}d=h<<2;i=ra(d);H[g+16>>2]=i;j=d+i|0;H[g+24>>2]=j;ta(i,0,d);H[g+20>>2]=j}e=e+f|0;f=H[a+36>>2];d:{e:{f:{if(!f){break f}d=0;if(!(fa[H[H[f>>2]+44>>2]](f,e,i,h,k,H[b>>2])|0)){break d}d=H[a+36>>2];if(!d){break f}if(fa[H[H[d>>2]+32>>2]](d)|0){break e}e=H[a+36>>2]?i:e}d=0;f=0;g:{if((h|0)<=0){break g}if((h|0)!=1){m=h&-2;while(1){l=d<<2;j=H[l+e>>2];H[i+l>>2]=(j|0)<0?(j^-1)<<1|1:j<<1;l=l|4;j=H[l+e>>2];H[i+l>>2]=(j|0)<0?(j^-1)<<1|1:j<<1;d=d+2|0;f=f+2|0;if((m|0)!=(f|0)){continue}break}}if(!(h&1)){break g}f=e;e=d<<2;d=H[f+e>>2];H[e+i>>2]=(d|0)<0?(d^-1)<<1|1:d<<1}}h:{i:{j:{k:{d=H[a+4>>2];if(!d){break k}j=H[d+48>>2];d=ra(48);H[g>>2]=d;H[g+4>>2]=34;H[g+8>>2]=-2147483600;F[d+34|0]=0;e=I[1411]|I[1412]<<8;F[d+32|0]=e;F[d+33|0]=e>>>8;e=I[1407]|I[1408]<<8|(I[1409]<<16|I[1410]<<24);f=I[1403]|I[1404]<<8|(I[1405]<<16|I[1406]<<24);F[d+24|0]=f;F[d+25|0]=f>>>8;F[d+26|0]=f>>>16;F[d+27|0]=f>>>24;F[d+28|0]=e;F[d+29|0]=e>>>8;F[d+30|0]=e>>>16;F[d+31|0]=e>>>24;e=I[1399]|I[1400]<<8|(I[1401]<<16|I[1402]<<24);f=I[1395]|I[1396]<<8|(I[1397]<<16|I[1398]<<24);F[d+16|0]=f;F[d+17|0]=f>>>8;F[d+18|0]=f>>>16;F[d+19|0]=f>>>24;F[d+20|0]=e;F[d+21|0]=e>>>8;F[d+22|0]=e>>>16;F[d+23|0]=e>>>24;e=I[1391]|I[1392]<<8|(I[1393]<<16|I[1394]<<24);f=I[1387]|I[1388]<<8|(I[1389]<<16|I[1390]<<24);F[d+8|0]=f;F[d+9|0]=f>>>8;F[d+10|0]=f>>>16;F[d+11|0]=f>>>24;F[d+12|0]=e;F[d+13|0]=e>>>8;F[d+14|0]=e>>>16;F[d+15|0]=e>>>24;e=I[1383]|I[1384]<<8|(I[1385]<<16|I[1386]<<24);f=I[1379]|I[1380]<<8|(I[1381]<<16|I[1382]<<24);F[d|0]=f;F[d+1|0]=f>>>8;F[d+2|0]=f>>>16;F[d+3|0]=f>>>24;F[d+4|0]=e;F[d+5|0]=e>>>8;F[d+6|0]=e>>>16;F[d+7|0]=e>>>24;d=Rb(j,g,1);if(F[g+11|0]<0){qa(H[g>>2])}if(d){break k}if(!h){break j}e=0;d=0;b=0;if(h-1>>>0>=3){j=h&-4;f=0;while(1){k=d<<2;b=H[(k|12)+i>>2]|(H[(k|8)+i>>2]|(H[(k|4)+i>>2]|(H[i+k>>2]|b)));d=d+4|0;f=f+4|0;if((j|0)!=(f|0)){continue}break}}f=h&3;if(f){while(1){b=H[(d<<2)+i>>2]|b;d=d+1|0;e=e+1|0;if((f|0)!=(e|0)){continue}break}}if(!b){break j}b=4-(Q(b)>>>3|0)|0;break i}F[g|0]=1;d=H[c+20>>2];if(!H[c+16>>2]&(d|0)<=0|(d|0)<0){wa(c,H[c+4>>2],g,g+1|0)}H[g+4>>2]=0;H[g+8>>2]=0;H[g>>2]=g+4;d=H[a+4>>2];if(d){j=10-eb(H[d+48>>2])|0;h=da-16|0;da=h;l:{if(j>>>0>10){break l}d=ra(48);H[h>>2]=d;H[h+4>>2]=33;H[h+8>>2]=-2147483600;F[d+33|0]=0;F[d+32|0]=I[1470];e=I[1466]|I[1467]<<8|(I[1468]<<16|I[1469]<<24);f=I[1462]|I[1463]<<8|(I[1464]<<16|I[1465]<<24);F[d+24|0]=f;F[d+25|0]=f>>>8;F[d+26|0]=f>>>16;F[d+27|0]=f>>>24;F[d+28|0]=e;F[d+29|0]=e>>>8;F[d+30|0]=e>>>16;F[d+31|0]=e>>>24;e=I[1458]|I[1459]<<8|(I[1460]<<16|I[1461]<<24);f=I[1454]|I[1455]<<8|(I[1456]<<16|I[1457]<<24);F[d+16|0]=f;F[d+17|0]=f>>>8;F[d+18|0]=f>>>16;F[d+19|0]=f>>>24;F[d+20|0]=e;F[d+21|0]=e>>>8;F[d+22|0]=e>>>16;F[d+23|0]=e>>>24;e=I[1450]|I[1451]<<8|(I[1452]<<16|I[1453]<<24);f=I[1446]|I[1447]<<8|(I[1448]<<16|I[1449]<<24);F[d+8|0]=f;F[d+9|0]=f>>>8;F[d+10|0]=f>>>16;F[d+11|0]=f>>>24;F[d+12|0]=e;F[d+13|0]=e>>>8;F[d+14|0]=e>>>16;F[d+15|0]=e>>>24;e=I[1442]|I[1443]<<8|(I[1444]<<16|I[1445]<<24);f=I[1438]|I[1439]<<8|(I[1440]<<16|I[1441]<<24);F[d|0]=f;F[d+1|0]=f>>>8;F[d+2|0]=f>>>16;F[d+3|0]=f>>>24;F[d+4|0]=e;F[d+5|0]=e>>>8;F[d+6|0]=e>>>16;F[d+7|0]=e>>>24;tb(g,h,j);if(F[h+11|0]>=0){break l}qa(H[h>>2])}da=h+16|0}b=Xd(i,N(k,H[b+4>>2]-H[b>>2]>>2),k,g,c);Ka(g,H[g+4>>2]);d=0;if(b){break h}break d}b=1}F[g|0]=0;d=H[c+20>>2];m:{if(!!H[c+16>>2]&(d|0)>=0|(d|0)>0){break m}e=g+1|0;wa(c,H[c+4>>2],g,e);d=H[c+20>>2];f=H[c+16>>2];F[g|0]=b;if(!!f&(d|0)>=0|(d|0)>0){break m}wa(c,H[c+4>>2],g,e)}n:{if((b|0)!=H[3712]){if(!h){break h}d=H[c+20>>2];e=d;f=H[c+16>>2];if(!!f&(d|0)>=0|(d|0)>0){break h}d=0;break n}b=H[c+20>>2];if(!!H[c+16>>2]&(b|0)>=0|(b|0)>0){break h}wa(c,H[c+4>>2],i,(h<<2)+i|0);break h}while(1){if(!f&(e|0)<=0|(e|0)<0){e=(d<<2)+i|0;wa(c,H[c+4>>2],e,b+e|0)}d=d+1|0;if((h|0)==(d|0)){break h}f=H[c+16>>2];e=H[c+20>>2];continue}}d=1;a=H[a+36>>2];if(!a){break d}fa[H[H[a>>2]+40>>2]](a,c)|0}if(!i){break b}qa(i)}da=g+32|0;return d|0}ua();X()}function ib(a,b,c,d){var e=0,f=0,g=0,h=0,i=O(0),j=0,k=0,l=O(0),m=0;a:{if(!d){break a}b:{c:{switch(H[a+28>>2]-1|0){case 0:e=F[a+24|0];if((((c|0)>(e|0)?e:c)|0)>0){e=H[a>>2];g=H[e>>2];b=H[a+48>>2]+zl(H[a+40>>2],H[a+44>>2],b,0)|0;b=g+b|0;h=H[e+4>>2];while(1){if(b>>>0>=h>>>0){break a}e=(f<<3)+d|0;g=F[b|0];H[e>>2]=g;H[e+4>>2]=g>>31;b=b+1|0;f=f+1|0;e=F[a+24|0];if((f|0)<(((c|0)>(e|0)?e:c)|0)){continue}break}}if((c|0)<=(e|0)){break a}c=c-e|0;a=(e<<3)+d|0;break b;case 1:e=F[a+24|0];if((((c|0)>(e|0)?e:c)|0)>0){e=H[a>>2];g=H[e>>2];b=H[a+48>>2]+zl(H[a+40>>2],H[a+44>>2],b,0)|0;b=g+b|0;h=H[e+4>>2];while(1){if(b>>>0>=h>>>0){break a}e=(f<<3)+d|0;H[e>>2]=I[b|0];H[e+4>>2]=0;b=b+1|0;f=f+1|0;e=F[a+24|0];if((f|0)<(((c|0)>(e|0)?e:c)|0)){continue}break}}if((c|0)<=(e|0)){break a}c=c-e|0;a=(e<<3)+d|0;break b;case 2:e=F[a+24|0];if((((c|0)>(e|0)?e:c)|0)>0){e=H[a>>2];g=H[e>>2];b=H[a+48>>2]+zl(H[a+40>>2],H[a+44>>2],b,0)|0;b=g+b|0;h=H[e+4>>2];while(1){if(b>>>0>=h>>>0){break a}e=(f<<3)+d|0;g=G[b>>1];H[e>>2]=g;H[e+4>>2]=g>>31;b=b+2|0;f=f+1|0;e=F[a+24|0];if((f|0)<(((c|0)>(e|0)?e:c)|0)){continue}break}}if((c|0)<=(e|0)){break a}c=c-e|0;a=(e<<3)+d|0;break b;case 3:e=F[a+24|0];if((((c|0)>(e|0)?e:c)|0)>0){e=H[a>>2];g=H[e>>2];b=H[a+48>>2]+zl(H[a+40>>2],H[a+44>>2],b,0)|0;b=g+b|0;h=H[e+4>>2];while(1){if(b>>>0>=h>>>0){break a}e=(f<<3)+d|0;H[e>>2]=J[b>>1];H[e+4>>2]=0;b=b+2|0;f=f+1|0;e=F[a+24|0];if((f|0)<(((c|0)>(e|0)?e:c)|0)){continue}break}}if((c|0)<=(e|0)){break a}c=c-e|0;a=(e<<3)+d|0;break b;case 4:e=F[a+24|0];if((((c|0)>(e|0)?e:c)|0)>0){e=H[a>>2];g=H[e>>2];b=H[a+48>>2]+zl(H[a+40>>2],H[a+44>>2],b,0)|0;b=g+b|0;h=H[e+4>>2];while(1){if(b>>>0>=h>>>0){break a}e=(f<<3)+d|0;g=H[b>>2];H[e>>2]=g;H[e+4>>2]=g>>31;b=b+4|0;f=f+1|0;e=F[a+24|0];if((f|0)<(((c|0)>(e|0)?e:c)|0)){continue}break}}if((c|0)<=(e|0)){break a}c=c-e|0;a=(e<<3)+d|0;break b;case 5:e=F[a+24|0];if((((c|0)>(e|0)?e:c)|0)>0){e=H[a>>2];g=H[e>>2];b=H[a+48>>2]+zl(H[a+40>>2],H[a+44>>2],b,0)|0;b=g+b|0;h=H[e+4>>2];while(1){if(b>>>0>=h>>>0){break a}e=(f<<3)+d|0;H[e>>2]=H[b>>2];H[e+4>>2]=0;b=b+4|0;f=f+1|0;e=F[a+24|0];if((f|0)<(((c|0)>(e|0)?e:c)|0)){continue}break}}if((c|0)<=(e|0)){break a}c=c-e|0;a=(e<<3)+d|0;break b;case 6:e=F[a+24|0];if((((c|0)>(e|0)?e:c)|0)>0){e=H[a>>2];g=H[e>>2];b=H[a+48>>2]+zl(H[a+40>>2],H[a+44>>2],b,0)|0;b=g+b|0;h=H[e+4>>2];while(1){if(b>>>0>=h>>>0){break a}g=H[b+4>>2];e=(f<<3)+d|0;H[e>>2]=H[b>>2];H[e+4>>2]=g;b=b+8|0;f=f+1|0;e=F[a+24|0];if((f|0)<(((c|0)>(e|0)?e:c)|0)){continue}break}}if((c|0)<=(e|0)){break a}c=c-e|0;a=(e<<3)+d|0;break b;case 7:e=F[a+24|0];if((((c|0)>(e|0)?e:c)|0)>0){e=H[a>>2];g=H[e>>2];b=H[a+48>>2]+zl(H[a+40>>2],H[a+44>>2],b,0)|0;b=g+b|0;h=H[e+4>>2];while(1){if(b>>>0>=h>>>0){break a}e=H[b>>2];g=H[b+4>>2];if((g|0)<0){break a}k=(f<<3)+d|0;H[k>>2]=e;H[k+4>>2]=g;b=b+8|0;f=f+1|0;e=F[a+24|0];if((f|0)<(((c|0)>(e|0)?e:c)|0)){continue}break}}if((c|0)<=(e|0)){break a}c=c-e|0;a=(e<<3)+d|0;break b;case 8:e=F[a+24|0];if((((c|0)>(e|0)?e:c)|0)>0){e=H[a>>2];g=H[e>>2];b=H[a+48>>2]+zl(H[a+40>>2],H[a+44>>2],b,0)|0;b=g+b|0;k=H[e+4>>2];while(1){if(b>>>0>=k>>>0){break a}i=L[b>>2];if(i>O(0x8000000000000000)|i=O(1)?~~(i>O(0)?O(R(O(T(O(i*O(2.3283064365386963e-10)))),O(4294967296))):O(U(O(O(i-O(~~i>>>0>>>0))*O(2.3283064365386963e-10)))))>>>0:0;h=~~i>>>0;break d}g=-2147483648;h=0}H[e>>2]=h;H[e+4>>2]=g;b=b+4|0;f=f+1|0;e=F[a+24|0];if((f|0)<(((c|0)>(e|0)?e:c)|0)){continue}break}}if((c|0)<=(e|0)){break a}c=c-e|0;a=(e<<3)+d|0;break b;case 9:e=F[a+24|0];if((((c|0)>(e|0)?e:c)|0)>0){e=H[a>>2];g=H[e>>2];b=H[a+48>>2]+zl(H[a+40>>2],H[a+44>>2],b,0)|0;b=g+b|0;k=H[e+4>>2];while(1){if(b>>>0>=k>>>0){break a}j=M[b>>3];if(j>0x8000000000000000|j<-0x8000000000000000|j!=j){break a}m=P(j);if(m==Z){break a}e=(f<<3)+d|0;e:{if(m<0x8000000000000000){g=P(j)>=1?~~(j>0?R(T(j*2.3283064365386963e-10),4294967295):U((j-+(~~j>>>0>>>0))*2.3283064365386963e-10))>>>0:0;h=~~j>>>0;break e}g=-2147483648;h=0}H[e>>2]=h;H[e+4>>2]=g;b=b+8|0;f=f+1|0;e=F[a+24|0];if((f|0)<(((c|0)>(e|0)?e:c)|0)){continue}break}}if((c|0)<=(e|0)){break a}c=c-e|0;a=(e<<3)+d|0;break b;case 10:break c;default:break a}}e=F[a+24|0];if((((c|0)>(e|0)?e:c)|0)>0){e=H[a>>2];g=H[e>>2];b=H[a+48>>2]+zl(H[a+40>>2],H[a+44>>2],b,0)|0;b=g+b|0;h=H[e+4>>2];while(1){if(b>>>0>=h>>>0){break a}e=(f<<3)+d|0;H[e>>2]=I[b|0];H[e+4>>2]=0;b=b+1|0;f=f+1|0;e=F[a+24|0];if((f|0)<(((c|0)>(e|0)?e:c)|0)){continue}break}}if((c|0)<=(e|0)){break a}c=c-e|0;a=(e<<3)+d|0}ta(a,0,c<<3)}}function _i(a){a=a|0;var b=0,c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0;p=da-16|0;da=p;a:{if(!(fa[H[H[a>>2]+32>>2]](a)|0)){break a}f=H[a+44>>2];c=H[a+12>>2];b=H[a+8>>2];F[p+15|0]=c-b>>>2;g=H[f+20>>2];if(!H[f+16>>2]&(g|0)<=0|(g|0)<0){wa(f,H[f+4>>2],p+15|0,p+16|0);c=H[a+12>>2];b=H[a+8>>2]}if((b|0)!=(c|0)){while(1){f=H[b>>2];if(!(fa[H[H[f>>2]+8>>2]](f,a,H[a+4>>2])|0)){break a}b=b+4|0;if((c|0)!=(b|0)){continue}break}}g=da-48|0;da=g;f=a;q=a+32|0;a=H[a+12>>2];c=H[f+8>>2];d=a-c|0;b=d>>2;k=H[f+32>>2];h=H[f+36>>2]-k>>2;b:{if(b>>>0>h>>>0){Fa(q,b-h|0);a=H[f+12>>2];c=H[f+8>>2];d=a-c|0;b=d>>2;break b}if(b>>>0>=h>>>0){break b}H[f+36>>2]=k+(b<<2)}H[g+40>>2]=0;H[g+32>>2]=0;H[g+36>>2]=0;c:{d:{e:{if((a|0)==(c|0)){break e}if((d|0)<0){break d}h=b-1>>>5|0;k=h+1|0;i=ra(k<<2);H[g+40>>2]=k;H[g+32>>2]=i;H[g+36>>2]=b;H[((d>>>0<132?0:h)<<2)+i>>2]=0;d=b>>>5<<2;h=ta(i,0,d);if((b&-32)==(b|0)){break e}d=d+h|0;H[d>>2]=H[d>>2]&(-1>>>32-(b&31)^-1)}while(1){f:{g:{b=a-c>>2;if(j>>>0>>0){if((a|0)==(c|0)){a=c;k=0;break g}k=0;m=H[g+32>>2];h=0;while(1){r=1<>>5<<2;h:{if(r&H[l+i>>2]){break h}a=h<<2;d=H[a+c>>2];b=H[d+4>>2];if((b|0)!=H[d+8>>2]){n=0;o=1;s=H[g+32>>2];while(1){c=0;b=H[(n<<2)+b>>2];i:{if((fa[H[H[d>>2]+24>>2]](d,b)|0)<=0){break i}while(1){j:{d=H[a+H[f+8>>2]>>2];d=fa[H[H[d>>2]+28>>2]](d,b,c)|0;if((d|0)==(h|0)){break j}d=H[H[f+20>>2]+(d<<2)>>2];if(H[(d>>>3&536870908)+s>>2]>>>d&1){break j}o=0;break i}d=H[a+H[f+8>>2]>>2];c=c+1|0;if((fa[H[H[d>>2]+24>>2]](d,b)|0)>(c|0)){continue}break}}c=H[f+8>>2];d=H[a+c>>2];b=H[d+4>>2];n=n+1|0;if(n>>>0>2]-b>>2>>>0){continue}break}if(!o){break h}}H[H[q>>2]+(j<<2)>>2]=h;a=m+l|0;H[a>>2]=r|H[a>>2];k=1;j=j+1|0}a=H[f+12>>2];b=a-c>>2;h=h+1|0;if(b>>>0>h>>>0){continue}break}break g}k=0;H[g+24>>2]=0;H[g+16>>2]=0;H[g+20>>2]=0;e=H[f+4>>2];b=H[e+12>>2];e=H[e+8>>2];H[g+8>>2]=0;H[g>>2]=0;H[g+4>>2]=0;h=0;k:{l:{m:{n:{if((b|0)==(e|0)){break n}e=b-e|0;if((e|0)<0){break m}b=e>>2;d=b-1>>>5|0;i=d+1|0;h=ra(i<<2);H[g+8>>2]=i;H[g>>2]=h;H[g+4>>2]=b;H[((e>>>0<132?0:d)<<2)+h>>2]=0;e=b>>>5<<2;d=ta(h,0,e);if((b|0)==(b&-32)){break n}e=d+e|0;H[e>>2]=H[e>>2]&(-1>>>32-(b&31)^-1)}o:{if((a|0)==(c|0)){e=1;break o}while(1){e=H[H[q>>2]+(k<<2)>>2]<<2;a=H[e+c>>2];a=H[a+8>>2]-H[a+4>>2]|0;p:{if((a|0)<8){break p}b=a>>2;c=H[g+16>>2];a=H[g+20>>2]-c>>2;q:{if(b>>>0>a>>>0){Fa(g+16|0,b-a|0);break q}if(a>>>0<=b>>>0){break q}H[g+20>>2]=c+(b<<2)}n=(b|0)>1?b:1;d=0;r:{while(1){if((b|0)<=(d|0)){break r}a=0;i=0;while(1){m=1<>>5<<2;s:{if(m&H[o+h>>2]){break s}c=H[e+H[f+8>>2]>>2];j=H[H[c+4>>2]+(a<<2)>>2];if((fa[H[H[c>>2]+24>>2]](c,j)|0)>0){c=0;h=H[g>>2];while(1){l=H[e+H[f+8>>2]>>2];l=fa[H[H[l>>2]+28>>2]](l,j,c)|0;if(!(H[(l>>>3&536870908)+h>>2]>>>l&1)){break s}l=H[e+H[f+8>>2]>>2];c=c+1|0;if((fa[H[H[l>>2]+24>>2]](l,j)|0)>(c|0)){continue}break}}H[H[g+16>>2]+(d<<2)>>2]=a;c=h+o|0;H[c>>2]=m|H[c>>2];i=1;d=d+1|0}a=a+1|0;if((n|0)!=(a|0)){continue}break}if(i&1|(b|0)<=(d|0)){continue}break}e=0;break o}c=H[f+8>>2];e=H[e+c>>2];a=H[e+4>>2];H[e+8>>2]=a;H[e+20>>2]=H[e+16>>2];d=H[g+16>>2];o=H[g+20>>2];if((d|0)==(o|0)){break p}n=e+16|0;b=a;while(1){c=H[d>>2];t:{if(H[e+12>>2]!=(b|0)){H[b>>2]=c;H[e+8>>2]=b+4;break t}i=b-a|0;m=i>>2;b=m+1|0;if(b>>>0>=1073741824){break l}j=i>>1;j=i>>>0<2147483644?b>>>0>>0?j:b:1073741823;if(j){if(j>>>0>=1073741824){break k}b=ra(j<<2)}else{b=0}m=b+(m<<2)|0;H[m>>2]=c;if((i|0)>0){sa(b,a,i)}H[e+12>>2]=b+(j<<2);H[e+8>>2]=m+4;H[e+4>>2]=b;if(!a){break t}qa(a)}b=H[e+16>>2];a=H[e+20>>2]-b>>2;u:{if((a|0)>(c|0)){break u}H[g+44>>2]=-1;i=c+1|0;if(i>>>0>a>>>0){La(n,i-a|0,g+44|0);b=H[n>>2];break u}if(a>>>0<=i>>>0){break u}H[e+20>>2]=(i<<2)+b}c=(c<<2)+b|0;b=H[e+8>>2];a=H[e+4>>2];H[c>>2]=(b-a>>2)-1;d=d+4|0;if((o|0)!=(d|0)){continue}break}c=H[f+8>>2]}e=1;k=k+1|0;if(k>>>0>2]-c>>2>>>0){continue}break}}a=H[g>>2];if(a){qa(a)}a=H[g+16>>2];if(!a){break f}H[g+20>>2]=a;qa(a);break f}ua();X()}ua();X()}ya();X()}if(k&1|b>>>0<=j>>>0){continue}}break}a=H[g+32>>2];if(a){qa(a)}da=g+48|0;break c}ua();X()}if(!e){break a}b=H[f+32>>2];a=H[f+36>>2];v:{if((b|0)==(a|0)){break v}while(1){if(!(fa[H[H[f>>2]+40>>2]](f,H[b>>2])|0)){break a}b=b+4|0;if((a|0)!=(b|0)){continue}break}b=H[f+32>>2];a=H[f+36>>2];if((b|0)==(a|0)){break v}while(1){c=H[H[f+8>>2]+(H[b>>2]<<2)>>2];if(!(fa[H[H[c>>2]+12>>2]](c,H[f+44>>2])|0)){break a}b=b+4|0;if((a|0)!=(b|0)){continue}break}}t=fa[H[H[f>>2]+44>>2]](f)|0}da=p+16|0;return t|0}function Qf(a,b){var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0;a:{b:{c:{d:{e:{if(H[a+92>>2]==H[a+88>>2]){break e}c=H[a+52>>2];f:{if((c|0)!=H[a+56>>2]){H[c>>2]=b;H[a+52>>2]=c+4;break f}d=H[a+48>>2];h=c-d|0;f=h>>2;e=f+1|0;if(e>>>0>=1073741824){break a}c=h>>1;e=h>>>0<2147483644?c>>>0>e>>>0?c:e:1073741823;if(e){if(e>>>0>=1073741824){break d}c=ra(e<<2)}else{c=0}f=c+(f<<2)|0;H[f>>2]=b;if((h|0)>0){sa(c,d,h)}H[a+56>>2]=c+(e<<2);H[a+52>>2]=f+4;H[a+48>>2]=c;if(!d){break f}qa(d)}H[a+84>>2]=0;f=-1;c=-1;g:{if((b|0)==-1){break g}e=H[a+4>>2];c=b+1|0;c=(c>>>0)%3|0?c:b-2|0;if((c|0)!=-1){f=H[H[e>>2]+(c<<2)>>2]}h:{if((b>>>0)%3|0){d=b-1|0;break h}d=b+2|0;c=-1;if((d|0)==-1){break g}}c=H[H[e>>2]+(d<<2)>>2]}i=c>>>3&536870908;e=H[a+36>>2];g=e+(f>>>3&536870908)|0;h=H[g>>2];d=1<>2]=d|h;g=a+8|0;if((b|0)!=-1){e=b+1|0;d=(e>>>0)%3|0?e:b-2|0}else{d=-1}mb(g,f,d);e=H[a+36>>2]}d=e+i|0;e=H[d>>2];f=1<>2]=e|f;d=a+8|0;f=-1;i:{if((b|0)==-1){break i}f=b-1|0;if((b>>>0)%3|0){break i}f=b+2|0}mb(d,c,f)}f=-1;f=(b|0)!=-1?H[H[H[a+4>>2]>>2]+(b<<2)>>2]:f;d=H[a+36>>2]+(f>>>3&536870908)|0;e=H[d>>2];c=1<>2]=c|e;mb(a+8|0,f,b)}d=H[a+84>>2];if((d|0)>2){break e}while(1){f=N(d,12)+a|0;b=H[f+52>>2];if((b|0)==H[f+48>>2]){d=d+1|0;if((d|0)!=3){continue}break e}c=b-4|0;b=H[c>>2];H[f+52>>2]=c;H[a+84>>2]=d;if((b|0)==-1){break e}f=H[a+24>>2];c=(b>>>0)/3|0;j:{if(H[f+(c>>>3&268435452)>>2]>>>c&1){break j}k:{while(1){i=(b>>>0)/3|0;c=(i>>>3&268435452)+f|0;H[c>>2]=H[c>>2]|1<>2]>>2]+(b<<2)>>2]:f;d=H[a+36>>2]+(f>>>3&536870908)|0;e=H[d>>2];c=1<>2]=c|e;h=H[(H[H[a+16>>2]+96>>2]+N(i,12)|0)+((b>>>0)%3<<2)>>2];k=H[H[a+20>>2]+4>>2];c=H[k+4>>2];t:{if((c|0)!=H[k+8>>2]){H[c>>2]=h;H[k+4>>2]=c+4;break t}g=H[k>>2];j=c-g|0;e=j>>2;d=e+1|0;if(d>>>0>=1073741824){break s}c=j>>1;d=j>>>0<2147483644?c>>>0>d>>>0?c:d:1073741823;if(d){if(d>>>0>=1073741824){break d}c=ra(d<<2)}else{c=0}e=c+(e<<2)|0;H[e>>2]=h;if((j|0)>0){sa(c,g,j)}H[k+8>>2]=c+(d<<2);H[k+4>>2]=e+4;H[k>>2]=c;if(!g){break t}qa(g)}j=H[a+12>>2];c=H[j+4>>2];u:{if((c|0)!=H[j+8>>2]){H[c>>2]=b;H[j+4>>2]=c+4;break u}h=H[j>>2];g=c-h|0;e=g>>2;d=e+1|0;if(d>>>0>=1073741824){break r}c=g>>1;d=g>>>0<2147483644?c>>>0>d>>>0?c:d:1073741823;if(d){if(d>>>0>=1073741824){break d}c=ra(d<<2)}else{c=0}e=c+(e<<2)|0;H[e>>2]=b;if((g|0)>0){sa(c,h,g)}H[j+8>>2]=c+(d<<2);H[j+4>>2]=e+4;H[j>>2]=c;if(!h){break u}qa(h)}c=H[a+12>>2];H[H[c+12>>2]+(f<<2)>>2]=H[c+24>>2];H[c+24>>2]=H[c+24>>2]+1}if((b|0)==-1){break k}g=H[a+4>>2];f=-1;c=b+1|0;c=(c>>>0)%3|0?c:b-2|0;if((c|0)!=-1){f=H[H[g+12>>2]+(c<<2)>>2]}v:{w:{if((N(i,3)|0)!=(b|0)){e=b-1|0;break w}e=b+2|0;b=-1;if((e|0)==-1){break v}}b=H[H[g+12>>2]+(e<<2)>>2]}h=(b|0)==-1;e=(b>>>0)/3|0;if((f|0)!=-1){c=(f>>>0)/3|0;c=H[H[a+24>>2]+(c>>>3&268435452)>>2]&1<>2]+(c>>>3&536870908)>>2]>>>c&1){break x}e=0;c=H[H[g>>2]+(b<<2)>>2];if(!(H[H[a+36>>2]+(c>>>3&536870908)>>2]>>>c&1)){c=H[a+88>>2]+(c<<2)|0;e=H[c>>2];H[c>>2]=e+1;e=(e|0)<=0?2:1}if(H[a+84>>2]>=(e|0)?d:0){break m}k=N(e,12)+a|0;c=H[k+52>>2];y:{if((c|0)!=H[k+56>>2]){H[c>>2]=b;H[k+52>>2]=c+4;break y}i=H[k+48>>2];j=c-i|0;h=j>>2;g=h+1|0;if(g>>>0>=1073741824){break c}c=j>>1;g=j>>>0<2147483644?c>>>0>g>>>0?c:g:1073741823;if(g){if(g>>>0>=1073741824){break d}c=ra(g<<2)}else{c=0}h=c+(h<<2)|0;H[h>>2]=b;if((j|0)>0){sa(c,i,j)}H[k+48>>2]=c;H[k+52>>2]=h+4;H[k+56>>2]=c+(g<<2);if(!i){break y}qa(i)}if(H[a+84>>2]<=(e|0)){break x}H[a+84>>2]=e}if(d){break k}b=-1;if((f|0)==-1){break n}}b=H[H[H[a+4>>2]>>2]+(f<<2)>>2]}e=0;if(!(H[H[a+36>>2]+(b>>>3&536870908)>>2]>>>b&1)){b=H[a+88>>2]+(b<<2)|0;c=H[b>>2];H[b>>2]=c+1;e=(c|0)<=0?2:1}if(H[a+84>>2]<(e|0)){break l}b=f}f=H[a+24>>2];continue}break}i=N(e,12)+a|0;b=H[i+52>>2];z:{if((b|0)!=H[i+56>>2]){H[b>>2]=f;H[i+52>>2]=b+4;break z}h=H[i+48>>2];g=b-h|0;c=g>>2;d=c+1|0;if(d>>>0>=1073741824){break b}b=g>>1;d=g>>>0<2147483644?b>>>0>d>>>0?b:d:1073741823;if(d){if(d>>>0>=1073741824){break d}b=ra(d<<2)}else{b=0}c=b+(c<<2)|0;H[c>>2]=f;if((g|0)>0){sa(b,h,g)}H[i+48>>2]=b;H[i+52>>2]=c+4;H[i+56>>2]=b+(d<<2);if(!h){break z}qa(h)}d=H[a+84>>2];if((d|0)<=(e|0)){break j}H[a+84>>2]=e;d=e;break j}d=H[a+84>>2]}if((d|0)<3){continue}break}}return 1}ya();X()}ua();X()}ua();X()}ua();X()}function Ha(a,b,c,d,e,f,g,h,i){var j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,I=0,J=0,K=0,L=0,M=0,N=0,O=0,P=0,R=0;k=da-96|0;da=k;t=h;u=i&65535;m=(e^i)&-2147483648;l=e&65535;p=l;z=l;J=i>>>16&32767;K=e>>>16&32767;a:{b:{if(J-32767>>>0>4294934529&K-32767>>>0>=4294934530){break b}l=e&2147483647;j=d;if(!(!d&(l|0)==2147418112?!(b|c):l>>>0<2147418112)){o=d;m=e|32768;break a}e=i&2147483647;if(!(!h&(e|0)==2147418112?!(f|g):e>>>0<2147418112)){o=h;m=i|32768;b=f;c=g;break a}if(!(b|j|(l^2147418112|c))){if(!(f|h|(e|g))){m=2147450880;b=0;c=0;break a}m=m|2147418112;b=0;c=0;break a}if(!(f|h|(e^2147418112|g))){d=b|j;e=c|l;b=0;c=0;if(!(d|e)){m=2147450880;break a}m=m|2147418112;break a}if(!(b|j|(c|l))){b=0;c=0;break a}if(!(f|h|(e|g))){b=0;c=0;break a}if((l|0)==65535|l>>>0<65535){j=b;h=!(d|p);i=h<<6;l=Q(h?b:d)+32|0;b=Q(h?c:p);b=i+((b|0)==32?l:b)|0;Sa(k+80|0,j,c,d,p,b-15|0);s=16-b|0;d=H[k+88>>2];z=H[k+92>>2];c=H[k+84>>2];b=H[k+80>>2]}if(e>>>0>65535){break b}e=!(t|u);h=e<<6;i=Q(e?f:t)+32|0;e=Q(e?g:u);e=h+((e|0)==32?i:e)|0;Sa(k- -64|0,f,g,t,u,e-15|0);s=(s-e|0)+16|0;t=H[k+72>>2];u=H[k+76>>2];f=H[k+64>>2];g=H[k+68>>2]}e=f;j=g<<15|e>>>17;h=e<<15;e=j;p=h&-32768;q=c;A=zl(p,0,c,0);c=ea;w=c;B=e;i=0;j=zl(e,0,b,i);e=j+A|0;h=ea+c|0;h=e>>>0>>0?h+1|0:h;c=e;j=e;n=zl(b,i,p,i);l=0+n|0;e=ea+e|0;e=l>>>0>>0?e+1|0:e;x=l;n=l;l=e;C=(j|0)==(e|0)&r>>>0>n>>>0|e>>>0>>0;r=d;L=zl(p,i,d,0);F=ea;e=zl(q,i,B,i);d=e+L|0;j=ea+F|0;n=d;d=d>>>0>>0?j+1|0:j;e=t;j=u<<15|e>>>17;y=e<<15|g>>>17;g=j;j=zl(y,0,b,i);e=j+n|0;f=ea+d|0;G=e;f=e>>>0>>0?f+1|0:f;u=f;e=f;f=(h|0)==(w|0)&c>>>0>>0|h>>>0>>0;c=h+G|0;f=e+f|0;A=c;f=c>>>0>>0?f+1|0:f;t=f;c=f;D=z|65536;z=v;M=zl(p,i,D,v);I=ea;h=zl(r,o,B,i);f=h+M|0;e=ea+I|0;N=f;e=f>>>0>>0?e+1|0:e;v=e;E=g|-2147483648;w=0;g=zl(E,w,b,i);b=g+f|0;f=ea+e|0;f=b>>>0>>0?f+1|0:f;O=b;e=zl(y,o,q,i);b=b+e|0;p=f;j=f+ea|0;P=b;g=b>>>0>>0?j+1|0:j;f=0;b=f+A|0;e=c+P|0;e=b>>>0>>0?e+1|0:e;R=b;c=b;b=b+C|0;C=e;f=b>>>0>>0?e+1|0:e;c=f;s=((K+J|0)+s|0)-16383|0;j=zl(E,w,q,i);h=ea;i=zl(D,z,B,i);e=i+j|0;f=ea+h|0;f=e>>>0>>0?f+1|0:f;i=(f|0)==(h|0)&e>>>0>>0|f>>>0>>0;h=e;q=i;i=zl(y,o,r,o);e=i+e|0;j=ea+f|0;j=e>>>0>>0?j+1|0:j;i=(f|0)==(j|0)&e>>>0>>0|f>>>0>j>>>0;f=q+i|0;h=0;h=f>>>0>>0?1:h;q=zl(E,w,D,z);i=q+f|0;f=ea+h|0;f=i>>>0>>0?f+1|0:f;q=e;h=j;B=i;e=(d|0)==(u|0)&n>>>0>G>>>0|d>>>0>u>>>0;d=e+((d|0)==(F|0)&n>>>0>>0|d>>>0>>0)|0;j=0;j=d>>>0>>0?1:j;i=d;d=q+d|0;e=h+j|0;e=d>>>0>>0?e+1|0:e;n=d;i=e;e=(e|0)==(h|0)&d>>>0>>0|e>>>0>>0;d=B+e|0;h=d>>>0>>0?f+1|0:f;q=d;j=zl(y,o,D,z);e=ea;r=zl(E,w,r,o);d=r+j|0;f=ea+e|0;f=d>>>0>>0?f+1|0:f;r=d;d=f;f=(e|0)==(f|0)&j>>>0>r>>>0|e>>>0>f>>>0;y=d+q|0;e=f+h|0;e=d>>>0>y>>>0?e+1|0:e;h=0;d=h+n|0;f=i+r|0;f=d>>>0>>0?f+1|0:f;h=f;j=(i|0)==(f|0)&d>>>0>>0|f>>>0>>0;i=j+y|0;n=i;i=i>>>0>>0?e+1|0:e;r=d;e=d;d=h;j=(p|0)==(v|0)&N>>>0>O>>>0|p>>>0>>0;f=j+((v|0)==(I|0)&N>>>0>>0|v>>>0>>0)|0;h=0;j=f+((g|0)==(p|0)&O>>>0>P>>>0|g>>>0

>>0)|0;f=g+e|0;e=d+j|0;e=f>>>0>>0?e+1|0:e;g=f;h=(d|0)==(e|0)&f>>>0>>0|d>>>0>e>>>0;d=h+n|0;f=i;f=d>>>0>>0?f+1|0:f;h=e;n=d;i=(t|0)==(C|0)&A>>>0>R>>>0|t>>>0>C>>>0;d=i+((t|0)==(u|0)&A>>>0>>0|t>>>0>>0)|0;j=0;j=d>>>0>>0?1:j;i=d;d=d+g|0;e=e+j|0;e=d>>>0>>0?e+1|0:e;h=(e|0)==(h|0)&d>>>0>>0|e>>>0>>0;g=n+h|0;f=g>>>0>>0?f+1|0:f;h=g;i=f;c:{if(f&65536){s=s+1|0;break c}v=l>>>31|0;f=i<<1|h>>>31;h=g<<1|e>>>31;i=f;f=e<<1|d>>>31;d=d<<1|c>>>31;e=f;g=x;f=l<<1|g>>>31;x=g<<1;l=f;f=c<<1|b>>>31;b=b<<1|v;c=f}if((s|0)>=32767){m=m|2147418112;b=0;c=0;break a}d:{if((s|0)<=0){f=1-s|0;if(f>>>0>=128){b=0;c=0;break a}g=s+127|0;Sa(k+48|0,x,l,b,c,g);Sa(k+32|0,d,e,h,i,g);Ib(k+16|0,x,l,b,c,f);Ib(k,d,e,h,i,f);x=H[k+32>>2]|H[k+16>>2]|(H[k+48>>2]|H[k+56>>2]|(H[k+52>>2]|H[k+60>>2]))!=0;l=H[k+36>>2]|H[k+20>>2];b=H[k+40>>2]|H[k+24>>2];c=H[k+44>>2]|H[k+28>>2];d=H[k>>2];e=H[k+4>>2];f=H[k+8>>2];g=H[k+12>>2];break d}f=h;g=i&65535|s<<16}o=f|o;m=g|m;if(!(!b&(c|0)==-2147483648?!(l|x):(c|0)>0|(c|0)>=0)){b=d+1|0;j=b?e:e+1|0;c=j;f=(e|0)==(j|0)&b>>>0>>0|e>>>0>j>>>0;d=f+o|0;e=m;o=d;m=d>>>0>>0?e+1|0:e;break a}if(b|x|(c^-2147483648|l)){b=d;c=e;break a}j=m;c=d&1;b=c+d|0;f=b>>>0>>0?e+1|0:e;c=f;e=(e|0)==(f|0)&b>>>0>>0|e>>>0>f>>>0;d=e+o|0;o=d;m=d>>>0>>0?j+1|0:j}H[a>>2]=b;H[a+4>>2]=c;H[a+8>>2]=o;H[a+12>>2]=m;da=k+96|0}function dj(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0;i=da-16|0;da=i;c=H[b+56>>2];d=H[c+100>>2];h=H[c+96>>2];f=(d-h|0)/12|0;Da(f,H[b+44>>2]);Da(H[H[b+56>>2]+80>>2],H[b+44>>2]);k=H[b+48>>2];c=ra(32);H[i>>2]=c;H[i+4>>2]=21;H[i+8>>2]=-2147483616;F[c+21|0]=0;e=I[1149]|I[1150]<<8|(I[1151]<<16|I[1152]<<24);g=I[1145]|I[1146]<<8|(I[1147]<<16|I[1148]<<24);F[c+13|0]=g;F[c+14|0]=g>>>8;F[c+15|0]=g>>>16;F[c+16|0]=g>>>24;F[c+17|0]=e;F[c+18|0]=e>>>8;F[c+19|0]=e>>>16;F[c+20|0]=e>>>24;e=I[1144]|I[1145]<<8|(I[1146]<<16|I[1147]<<24);g=I[1140]|I[1141]<<8|(I[1142]<<16|I[1143]<<24);F[c+8|0]=g;F[c+9|0]=g>>>8;F[c+10|0]=g>>>16;F[c+11|0]=g>>>24;F[c+12|0]=e;F[c+13|0]=e>>>8;F[c+14|0]=e>>>16;F[c+15|0]=e>>>24;e=I[1136]|I[1137]<<8|(I[1138]<<16|I[1139]<<24);g=I[1132]|I[1133]<<8|(I[1134]<<16|I[1135]<<24);F[c|0]=g;F[c+1|0]=g>>>8;F[c+2|0]=g>>>16;F[c+3|0]=g>>>24;F[c+4|0]=e;F[c+5|0]=e>>>8;F[c+6|0]=e>>>16;F[c+7|0]=e>>>24;e=Rb(k,i,0);if(F[i+11|0]<0){qa(H[i>>2])}c=H[b+44>>2];a:{if(e){F[i|0]=0;f=H[c+20>>2];if(!H[c+16>>2]&(f|0)<=0|(f|0)<0){wa(c,H[c+4>>2],i,i+1|0)}d=0;c=0;h=da-16|0;da=h;H[h>>2]=0;H[h+4>>2]=0;f=b;b=H[f+56>>2];e=H[b+100>>2];b=H[b+96>>2];if((e|0)!=(b|0)){b=(e-b|0)/12|0;o=b>>>0>1?b:1;b=H[h>>2];e=0;b:{c:{while(1){d:{k=H[H[f+56>>2]+96>>2]+N(l,12)|0;m=H[k>>2];g=m-j|0;j=g>>31;j=(g^j)-j<<1|g>>>31;e:{if((e|0)!=(d|0)){H[d>>2]=j;d=d+4|0;H[h+4>>2]=d;break e}e=d-c|0;n=e>>2;g=n+1|0;if(g>>>0>=1073741824){break d}d=e>>1;g=e>>>0<2147483644?d>>>0>g>>>0?d:g:1073741823;if(g){if(g>>>0>=1073741824){break c}b=ra(g<<2)}else{b=0}d=b+(n<<2)|0;H[d>>2]=j;d=d+4|0;if((e|0)>0){sa(b,c,e)}e=(g<<2)+b|0;H[h+4>>2]=d;if(c){qa(c)}c=b}n=H[k+4>>2];g=n-m|0;j=g>>31;j=(g^j)-j<<1|g>>>31;f:{if((e|0)!=(d|0)){H[d>>2]=j;d=d+4|0;H[h+4>>2]=d;break f}e=d-c|0;m=e>>2;g=m+1|0;if(g>>>0>1073741823){break d}d=e>>1;g=e>>>0<2147483644?d>>>0>g>>>0?d:g:1073741823;if(g){if(g>>>0>1073741823){break c}b=ra(g<<2)}else{b=0}d=b+(m<<2)|0;H[d>>2]=j;d=d+4|0;if((e|0)>0){sa(b,c,e)}e=(g<<2)+b|0;H[h+4>>2]=d;if(c){qa(c)}c=b}j=H[k+8>>2];g=j-n|0;k=g>>31;k=(g^k)-k<<1|g>>>31;g:{if((e|0)!=(d|0)){H[d>>2]=k;d=d+4|0;H[h+4>>2]=d;break g}e=d-c|0;m=e>>2;g=m+1|0;if(g>>>0>1073741823){break d}d=e>>1;g=e>>>0<2147483644?d>>>0>g>>>0?d:g:1073741823;if(g){if(g>>>0>1073741823){break c}b=ra(g<<2)}else{b=0}d=b+(m<<2)|0;H[d>>2]=k;d=d+4|0;if((e|0)>0){sa(b,c,e)}e=(g<<2)+b|0;H[h+4>>2]=d;if(c){qa(c)}c=b}l=l+1|0;if((o|0)!=(l|0)){continue}break b}break}H[h+8>>2]=d;H[h>>2]=b;ua();X()}H[h>>2]=b;ya();X()}H[h>>2]=b}Xd(c,d-c>>2,1,0,H[f+44>>2]);if(c){qa(c)}da=h+16|0;break a}F[i|0]=1;e=H[c+20>>2];if(!H[c+16>>2]&(e|0)<=0|(e|0)<0){wa(c,H[c+4>>2],i,i+1|0)}c=H[H[b+56>>2]+80>>2];if(c>>>0<=255){if((d|0)==(h|0)){break a}g=f>>>0>1?f:1;d=i+1|0;c=0;while(1){f=H[b+44>>2];h=H[H[b+56>>2]+96>>2]+N(c,12)|0;F[i|0]=H[h>>2];e=H[f+20>>2];h:{if(!!H[f+16>>2]&(e|0)>=0|(e|0)>0){break h}wa(f,H[f+4>>2],i,d);f=H[b+44>>2];e=H[f+20>>2];l=H[f+16>>2];F[i|0]=H[h+4>>2];if(!!l&(e|0)>=0|(e|0)>0){break h}wa(f,H[f+4>>2],i,d);f=H[b+44>>2];e=H[f+20>>2];l=H[f+16>>2];F[i|0]=H[h+8>>2];if(!!l&(e|0)>=0|(e|0)>0){break h}wa(f,H[f+4>>2],i,d)}c=c+1|0;if((g|0)!=(c|0)){continue}break}break a}if(c>>>0<=65535){if((d|0)==(h|0)){break a}g=f>>>0>1?f:1;d=i+2|0;c=0;while(1){f=H[b+44>>2];h=H[H[b+56>>2]+96>>2]+N(c,12)|0;G[i>>1]=H[h>>2];e=H[f+20>>2];i:{if(!!H[f+16>>2]&(e|0)>=0|(e|0)>0){break i}wa(f,H[f+4>>2],i,d);f=H[b+44>>2];e=H[f+20>>2];l=H[f+16>>2];G[i>>1]=H[h+4>>2];if(!!l&(e|0)>=0|(e|0)>0){break i}wa(f,H[f+4>>2],i,d);f=H[b+44>>2];e=H[f+20>>2];l=H[f+16>>2];G[i>>1]=H[h+8>>2];if(!!l&(e|0)>=0|(e|0)>0){break i}wa(f,H[f+4>>2],i,d)}c=c+1|0;if((g|0)!=(c|0)){continue}break}break a}if(c>>>0>=2097152){if((d|0)==(h|0)){break a}d=H[b+44>>2];c=H[d+20>>2];if(!!H[d+16>>2]&(c|0)>=0|(c|0)>0){break a}h=f>>>0>1?f:1;c=0;while(1){f=H[b+44>>2];d=H[f+20>>2];if(!H[f+16>>2]&(d|0)<=0|(d|0)<0){d=f;e=H[f+4>>2];f=H[H[b+56>>2]+96>>2]+N(c,12)|0;wa(d,e,f,f+12|0)}c=c+1|0;if((h|0)!=(c|0)){continue}break}break a}if((d|0)==(h|0)){break a}d=f>>>0>1?f:1;c=0;while(1){f=H[H[b+56>>2]+96>>2]+N(c,12)|0;Da(H[f>>2],H[b+44>>2]);Da(H[f+4>>2],H[b+44>>2]);Da(H[f+8>>2],H[b+44>>2]);c=c+1|0;if((d|0)!=(c|0)){continue}break}}H[a>>2]=0;H[a+4>>2]=0;H[a+8>>2]=0;H[a+12>>2]=0;da=i+16|0}function Zc(a,b,c,d){var e=0,f=0,g=0,h=0,i=0,j=O(0),k=0,l=O(0),m=0;a:{b:{if(!d){break b}c:{d:{switch(H[a+28>>2]-1|0){case 0:h=1;e=F[a+24|0];if((((c|0)>(e|0)?e:c)|0)>0){e=H[a>>2];f=H[e>>2];b=H[a+48>>2]+zl(H[a+40>>2],H[a+44>>2],b,0)|0;b=f+b|0;f=H[e+4>>2];while(1){if(b>>>0>=f>>>0){break a}H[(g<<2)+d>>2]=F[b|0];b=b+1|0;g=g+1|0;e=F[a+24|0];if((g|0)<(((c|0)>(e|0)?e:c)|0)){continue}break}}if((c|0)<=(e|0)){break b}c=c-e|0;a=(e<<2)+d|0;break c;case 1:h=1;e=F[a+24|0];if((((c|0)>(e|0)?e:c)|0)>0){e=H[a>>2];f=H[e>>2];b=H[a+48>>2]+zl(H[a+40>>2],H[a+44>>2],b,0)|0;b=f+b|0;f=H[e+4>>2];while(1){if(b>>>0>=f>>>0){break a}H[(g<<2)+d>>2]=I[b|0];b=b+1|0;g=g+1|0;e=F[a+24|0];if((g|0)<(((c|0)>(e|0)?e:c)|0)){continue}break}}if((c|0)<=(e|0)){break b}c=c-e|0;a=(e<<2)+d|0;break c;case 2:h=1;e=F[a+24|0];if((((c|0)>(e|0)?e:c)|0)>0){e=H[a>>2];f=H[e>>2];b=H[a+48>>2]+zl(H[a+40>>2],H[a+44>>2],b,0)|0;b=f+b|0;f=H[e+4>>2];while(1){if(b>>>0>=f>>>0){break a}H[(g<<2)+d>>2]=G[b>>1];b=b+2|0;g=g+1|0;e=F[a+24|0];if((g|0)<(((c|0)>(e|0)?e:c)|0)){continue}break}}if((c|0)<=(e|0)){break b}c=c-e|0;a=(e<<2)+d|0;break c;case 3:h=1;e=F[a+24|0];if((((c|0)>(e|0)?e:c)|0)>0){e=H[a>>2];f=H[e>>2];b=H[a+48>>2]+zl(H[a+40>>2],H[a+44>>2],b,0)|0;b=f+b|0;f=H[e+4>>2];while(1){if(b>>>0>=f>>>0){break a}H[(g<<2)+d>>2]=J[b>>1];b=b+2|0;g=g+1|0;e=F[a+24|0];if((g|0)<(((c|0)>(e|0)?e:c)|0)){continue}break}}if((c|0)<=(e|0)){break b}c=c-e|0;a=(e<<2)+d|0;break c;case 4:h=1;e=F[a+24|0];if((((c|0)>(e|0)?e:c)|0)>0){e=H[a>>2];f=H[e>>2];b=H[a+48>>2]+zl(H[a+40>>2],H[a+44>>2],b,0)|0;b=f+b|0;f=H[e+4>>2];while(1){if(b>>>0>=f>>>0){break a}H[(g<<2)+d>>2]=H[b>>2];b=b+4|0;g=g+1|0;e=F[a+24|0];if((g|0)<(((c|0)>(e|0)?e:c)|0)){continue}break}}if((c|0)<=(e|0)){break b}c=c-e|0;a=(e<<2)+d|0;break c;case 5:e=F[a+24|0];if((((c|0)>(e|0)?e:c)|0)>0){e=H[a>>2];f=H[e>>2];b=H[a+48>>2]+zl(H[a+40>>2],H[a+44>>2],b,0)|0;b=f+b|0;f=H[e+4>>2];while(1){if(b>>>0>=f>>>0){break a}e=H[b>>2];if((e|0)<0){break b}H[(g<<2)+d>>2]=e;b=b+4|0;g=g+1|0;e=F[a+24|0];if((g|0)<(((c|0)>(e|0)?e:c)|0)){continue}break}}h=1;if((c|0)<=(e|0)){break b}c=c-e|0;a=(e<<2)+d|0;break c;case 6:h=1;e=F[a+24|0];if((((c|0)>(e|0)?e:c)|0)>0){e=H[a>>2];f=H[e>>2];b=H[a+48>>2]+zl(H[a+40>>2],H[a+44>>2],b,0)|0;b=f+b|0;f=H[e+4>>2];while(1){if(b>>>0>=f>>>0){break a}e=H[b>>2];if((H[b+4>>2]-(e>>>0<2147483648)|0)!=-1){break a}H[(g<<2)+d>>2]=e;b=b+8|0;g=g+1|0;e=F[a+24|0];if((g|0)<(((c|0)>(e|0)?e:c)|0)){continue}break}}if((c|0)<=(e|0)){break b}c=c-e|0;a=(e<<2)+d|0;break c;case 7:h=1;e=F[a+24|0];if((((c|0)>(e|0)?e:c)|0)>0){e=H[a>>2];f=H[e>>2];b=H[a+48>>2]+zl(H[a+40>>2],H[a+44>>2],b,0)|0;b=f+b|0;f=H[e+4>>2];while(1){if(b>>>0>=f>>>0){break a}e=H[b+4>>2];i=H[b>>2];if(!e&i>>>0>2147483647|e){break a}H[(g<<2)+d>>2]=i;b=b+8|0;g=g+1|0;e=F[a+24|0];if((g|0)<(((c|0)>(e|0)?e:c)|0)){continue}break}}if((c|0)<=(e|0)){break b}c=c-e|0;a=(e<<2)+d|0;break c;case 8:h=1;e=F[a+24|0];if((((c|0)>(e|0)?e:c)|0)>0){e=H[a>>2];f=H[e>>2];b=H[a+48>>2]+zl(H[a+40>>2],H[a+44>>2],b,0)|0;b=f+b|0;f=H[e+4>>2];while(1){if(b>>>0>=f>>>0){break a}j=L[b>>2];if(j>O(2147483648)|j>2]=e;b=b+4|0;g=g+1|0;e=F[a+24|0];if((g|0)<(((c|0)>(e|0)?e:c)|0)){continue}break}}if((c|0)<=(e|0)){break b}c=c-e|0;a=(e<<2)+d|0;break c;case 9:h=1;e=F[a+24|0];if((((c|0)>(e|0)?e:c)|0)>0){e=H[a>>2];f=H[e>>2];b=H[a+48>>2]+zl(H[a+40>>2],H[a+44>>2],b,0)|0;b=f+b|0;f=H[e+4>>2];while(1){if(b>>>0>=f>>>0){break a}k=M[b>>3];if(k>2147483647|k<-2147483648|k!=k){break a}m=P(k);if(m==Z){break a}i=(g<<2)+d|0;if(m<2147483648){e=~~k}else{e=-2147483648}H[i>>2]=e;b=b+8|0;g=g+1|0;e=F[a+24|0];if((g|0)<(((c|0)>(e|0)?e:c)|0)){continue}break}}if((c|0)<=(e|0)){break b}c=c-e|0;a=(e<<2)+d|0;break c;case 10:break d;default:break b}}h=1;e=F[a+24|0];if((((c|0)>(e|0)?e:c)|0)>0){e=H[a>>2];f=H[e>>2];b=H[a+48>>2]+zl(H[a+40>>2],H[a+44>>2],b,0)|0;b=f+b|0;f=H[e+4>>2];while(1){if(b>>>0>=f>>>0){break a}H[(g<<2)+d>>2]=I[b|0];b=b+1|0;g=g+1|0;e=F[a+24|0];if((g|0)<(((c|0)>(e|0)?e:c)|0)){continue}break}}if((c|0)<=(e|0)){break b}c=c-e|0;a=(e<<2)+d|0}ta(a,0,c<<2)}return h}return 0}function Rc(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0;f=da-96|0;da=f;e=H[a+16>>2];F[f+92|0]=1;H[f+88>>2]=b;H[f+84>>2]=b;H[f+80>>2]=e;k=H[a+20>>2];d=H[k>>2];a:{b:{e=H[H[e+28>>2]+(b<<2)>>2];if(e>>>0>2]-d>>2>>>0){d=H[H[a+8>>2]+(H[d+(e<<2)>>2]<<2)>>2];e=H[a+4>>2];if(!I[e+84|0]){d=H[H[e+68>>2]+(d<<2)>>2]}H[f+72>>2]=0;H[f+76>>2]=0;k=f- -64|0;H[k>>2]=0;H[k+4>>2]=0;H[f+56>>2]=0;H[f+60>>2]=0;ib(e,d,F[e+24|0],f+56|0);if((b|0)!=-1){e=b+1|0;k=(e>>>0)%3|0?e:b-2|0;i=((b>>>0)%3|0?-1:2)+b|0;while(1){d=k;e=i;c:{if(!H[a+28>>2]){break c}e=b+1|0;d=(e>>>0)%3|0?e:b-2|0;e=b-1|0;if((b>>>0)%3|0){break c}e=b+2|0}h=H[a+20>>2];b=H[h>>2];d=H[H[H[a+16>>2]+28>>2]+(d<<2)>>2];if(d>>>0>=H[h+4>>2]-b>>2>>>0){break b}d=H[H[a+8>>2]+(H[b+(d<<2)>>2]<<2)>>2];b=H[a+4>>2];if(!I[b+84|0]){d=H[H[b+68>>2]+(d<<2)>>2]}H[f+48>>2]=0;H[f+52>>2]=0;H[f+40>>2]=0;H[f+44>>2]=0;H[f+32>>2]=0;H[f+36>>2]=0;ib(b,d,F[b+24|0],f+32|0);d=H[a+20>>2];b=H[d>>2];e=H[H[H[a+16>>2]+28>>2]+(e<<2)>>2];if(e>>>0>=H[d+4>>2]-b>>2>>>0){break a}d=H[H[a+8>>2]+(H[b+(e<<2)>>2]<<2)>>2];b=H[a+4>>2];if(!I[b+84|0]){d=H[H[b+68>>2]+(d<<2)>>2]}H[f+24>>2]=0;H[f+28>>2]=0;H[f+16>>2]=0;H[f+20>>2]=0;H[f+8>>2]=0;H[f+12>>2]=0;ib(b,d,F[b+24|0],f+8|0);e=H[f+8>>2];b=H[f+56>>2];d=e-b|0;h=H[f+60>>2];j=H[f+12>>2]-(h+(b>>>0>e>>>0)|0)|0;p=H[f+40>>2];e=H[f+64>>2];s=p-e|0;t=H[f+68>>2];p=H[f+44>>2]-(t+(e>>>0>p>>>0)|0)|0;u=zl(d,j,s,p);v=n-u|0;n=g-(ea+(n>>>0>>0)|0)|0;o=v;g=H[f+16>>2];u=g-e|0;t=H[f+20>>2]-((e>>>0>g>>>0)+t|0)|0;g=H[f+32>>2];v=g-b|0;h=H[f+36>>2]-((b>>>0>g>>>0)+h|0)|0;e=zl(u,t,v,h);b=o+e|0;g=ea+n|0;g=b>>>0>>0?g+1|0:g;n=b;e=l;o=d;x=j;b=H[f+48>>2];l=H[f+72>>2];d=b-l|0;j=H[f+76>>2];w=H[f+52>>2]-(j+(b>>>0>>0)|0)|0;o=zl(o,x,d,w);e=e+o|0;b=ea+m|0;b=e>>>0>>0?b+1|0:b;m=H[f+24>>2];o=m-l|0;j=H[f+28>>2]-((l>>>0>m>>>0)+j|0)|0;m=zl(o,j,v,h);l=e-m|0;m=b-(ea+(e>>>0>>0)|0)|0;b=zl(u,t,d,w);e=q-b|0;b=r-(ea+(b>>>0>q>>>0)|0)|0;r=zl(o,j,s,p);q=r+e|0;b=ea+b|0;b=q>>>0>>0?b+1|0:b;r=b;b=H[f+88>>2];e=H[f+80>>2];d:{if(I[f+92|0]){e:{f:{g:{h:{if((b|0)==-1){break h}d=b+1|0;b=(d>>>0)%3|0?d:b-2|0;if((b|0)==-1|H[H[e>>2]+(b>>>3&536870908)>>2]>>>b&1){break h}b=H[H[H[e+64>>2]+12>>2]+(b<<2)>>2];if((b|0)!=-1){break g}}H[f+88>>2]=-1;break f}d=b+1|0;b=(d>>>0)%3|0?d:b-2|0;H[f+88>>2]=b;if((b|0)!=-1){break e}}b=H[f+84>>2];d=-1;i:{if((b|0)==-1){break i}j:{if((b>>>0)%3|0){b=b-1|0;break j}b=b+2|0;d=-1;if((b|0)==-1){break i}}d=-1;if(H[H[e>>2]+(b>>>3&536870908)>>2]>>>b&1){break i}b=H[H[H[e+64>>2]+12>>2]+(b<<2)>>2];d=-1;if((b|0)==-1){break i}d=b-1|0;if((b>>>0)%3|0){break i}d=b+2|0}F[f+92|0]=0;H[f+88>>2]=d;break d}if((b|0)!=H[f+84>>2]){break d}H[f+88>>2]=-1;break d}d=-1;k:{if((b|0)==-1){break k}l:{if((b>>>0)%3|0){b=b-1|0;break l}b=b+2|0;d=-1;if((b|0)==-1){break k}}d=-1;if(H[H[e>>2]+(b>>>3&536870908)>>2]>>>b&1){break k}b=H[H[H[e+64>>2]+12>>2]+(b<<2)>>2];d=-1;if((b|0)==-1){break k}d=b-1|0;if((b>>>0)%3|0){break k}d=b+2|0}H[f+88>>2]=d}b=H[f+88>>2];if((b|0)!=-1){continue}break}}b=r>>31;e=b^q;j=e-b|0;h=(b^r)-((b>>>0>e>>>0)+b|0)|0;p=-1;e=2147483647;b=m>>31;k=b^l;d=(b^m)-((b>>>0>k>>>0)+b|0)|0;b=k-b|0;s=b^-1;i=d^2147483647;k=g;m:{n:{if(!H[a+28>>2]){if((i|0)==(h|0)&j>>>0>s>>>0|i>>>0>>0){break m}i=g;a=b;e=b+j|0;b=d+h|0;b=a>>>0>e>>>0?b+1|0:b;a=g>>31;d=a;h=d^n;j=h-d|0;g=e+j|0;d=(d^i)-((d>>>0>h>>>0)+d|0)|0;a=g;g=d^2147483647;g=(g|0)==(b|0)&(j^-1)>>>0>>0|b>>>0>g>>>0;a=g?-1:a;if(!(g&0)&(a|0)<=536870912|(a|0)<536870912){break m}b=0;a=a>>>29|0;break n}o:{if((i|0)==(h|0)&j>>>0>s>>>0|i>>>0>>0){break o}a=b;i=b+j|0;b=d+h|0;b=a>>>0>i>>>0?b+1|0:b;a=i;h=g;d=g>>31;g=d;i=d^n;d=(d^h)-(d+(d>>>0>i>>>0)|0)|0;g=i-g|0;i=d^2147483647;if((i|0)==(b|0)&(g^-1)>>>0>>0|b>>>0>i>>>0){break o}b=b+d|0;a=a+g|0;b=a>>>0>>0?b+1|0:b;p=a;e=b;if(!b&a>>>0<536870913){break m}}b=e>>>29|0;a=(e&536870911)<<3|p>>>29}n=Al(n,k,a,b);l=Al(l,m,a,b);q=Al(q,r,a,b)}H[c+8>>2]=n;H[c+4>>2]=l;H[c>>2]=q;da=f+96|0;return}va();X()}va();X()}va();X()}function Xh(a){a=a|0;var b=0,c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=O(0),p=0;d=1;a:{if(!H[a+80>>2]){break a}b=H[a+8>>2];if((H[a+12>>2]-b|0)<=0){break a}while(1){c=H[(n<<2)+b>>2];m=0;i=0;d=0;b=-1;b:{c:{d:{e:{switch(H[c+28>>2]-1|0){case 8:f:{switch(F[c+24|0]-1|0){case 0:e=da+-64|0;da=e;H[e+40>>2]=0;H[e+44>>2]=0;H[e+32>>2]=0;H[e+36>>2]=0;H[e+48>>2]=1065353216;b=H[c+80>>2];H[e+24>>2]=0;H[e+16>>2]=0;H[e+20>>2]=0;g:{h:{if(b){if(b>>>0>=1073741824){break h}f=b<<2;j=ra(f);H[e+16>>2]=j;b=f+j|0;H[e+24>>2]=b;ta(j,0,f);H[e+20>>2]=b;while(1){b=H[H[c>>2]>>2];f=H[c+48>>2]+zl(H[c+40>>2],H[c+44>>2],i,0)|0;b=b+f|0;o=(x(2,I[b|0]|I[b+1|0]<<8|(I[b+2|0]<<16|I[b+3|0]<<24)),C());L[e+28>>2]=o;i:{j:{g=H[e+36>>2];k:{if(!g){break k}p=H[e+32>>2];h=(B(o),v(2));l=h^318;f=Cl(g)>>>0>1;b=l&g-1;l:{if(!f){break l}b=l;if(b>>>0>>0){break l}b=(l>>>0)%(g>>>0)|0}k=b;b=H[p+(k<<2)>>2];if(!b){break k}b=H[b>>2];if(!b){break k}if(!f){g=g-1|0;while(1){f=H[b+4>>2];m:{if((f|0)!=(l|0)){if((k|0)==(f&g)){break m}break k}if((h|0)==H[b+8>>2]){break j}}b=H[b>>2];if(b){continue}break}break k}while(1){f=H[b+4>>2];n:{if((f|0)!=(l|0)){if(f>>>0>=g>>>0){f=(f>>>0)%(g>>>0)|0}if((f|0)==(k|0)){break n}break k}if((h|0)==H[b+8>>2]){break j}}b=H[b>>2];if(b){continue}break}}H[e+12>>2]=m;L[e+8>>2]=o;b=e+8|0;ff(e+56|0,e+32|0,b,b);b=H[c+40>>2];sa(H[H[c>>2]>>2]+N(b,m)|0,e+28|0,b);j=H[e+16>>2];H[j+(i<<2)>>2]=m;m=m+1|0;break i}H[(i<<2)+j>>2]=H[b+12>>2]}b=i+1|0;d=b?d:d+1|0;i=b;b=H[c+80>>2];if(!d&b>>>0>i>>>0){continue}break}if((b|0)!=(m|0)){o:{if(!I[c+84|0]){b=H[c+72>>2];h=H[c+68>>2];if((b|0)==(h|0)){break o}b=b-h>>2;d=b>>>0>1?b:1;k=d&3;g=0;b=0;if(d-1>>>0>=3){f=d&-4;l=0;while(1){i=b<<2;d=i+h|0;H[d>>2]=H[(H[d>>2]<<2)+j>>2];d=h+(i|4)|0;H[d>>2]=H[(H[d>>2]<<2)+j>>2];d=h+(i|8)|0;H[d>>2]=H[(H[d>>2]<<2)+j>>2];d=h+(i|12)|0;H[d>>2]=H[(H[d>>2]<<2)+j>>2];b=b+4|0;l=l+4|0;if((f|0)!=(l|0)){continue}break}}if(!k){break o}while(1){d=h+(b<<2)|0;H[d>>2]=H[(H[d>>2]<<2)+j>>2];b=b+1|0;g=g+1|0;if((k|0)!=(g|0)){continue}break}break o}F[c+84|0]=0;k=c+68|0;d=H[c+68>>2];f=H[c+72>>2]-d>>2;p:{if(f>>>0>>0){La(k,b-f|0,2176);b=H[c+80>>2];break p}if(b>>>0>=f>>>0){break p}H[c+72>>2]=d+(b<<2)}if(!b){break o}i=H[k>>2];g=0;h=0;if(b-1>>>0>=3){f=b&-4;l=0;while(1){k=h<<2;H[k+i>>2]=H[j+k>>2];d=k|4;H[d+i>>2]=H[d+j>>2];d=k|8;H[d+i>>2]=H[d+j>>2];d=k|12;H[d+i>>2]=H[d+j>>2];h=h+4|0;l=l+4|0;if((f|0)!=(l|0)){continue}break}}d=b&3;if(!d){break o}while(1){b=h<<2;H[b+i>>2]=H[b+j>>2];h=h+1|0;g=g+1|0;if((d|0)!=(g|0)){continue}break}}H[c+80>>2]=m}qa(j)}b=H[e+40>>2];if(b){while(1){d=H[b>>2];qa(b);b=d;if(b){continue}break}}b=H[e+32>>2];H[e+32>>2]=0;if(b){qa(b)}da=e- -64|0;b=m;break g}ua();X()}break d;case 1:b=Bd(c,c);break d;case 2:b=Ad(c,c);break d;case 3:break f;default:break c}}b=zd(c,c);break d;case 0:q:{switch(F[c+24|0]-1|0){case 0:b=Jf(c,c);break d;case 1:b=Gf(c,c);break d;case 2:b=Df(c,c);break d;case 3:break q;default:break c}}b=zf(c,c);break d;case 1:case 10:r:{switch(F[c+24|0]-1|0){case 0:b=Jf(c,c);break d;case 1:b=Gf(c,c);break d;case 2:b=Df(c,c);break d;case 3:break r;default:break c}}b=zf(c,c);break d;case 3:s:{switch(F[c+24|0]-1|0){case 0:b=yf(c,c);break d;case 1:b=tf(c,c);break d;case 2:b=qf(c,c);break d;case 3:break s;default:break c}}b=pf(c,c);break d;case 2:t:{switch(F[c+24|0]-1|0){case 0:b=yf(c,c);break d;case 1:b=tf(c,c);break d;case 2:b=qf(c,c);break d;case 3:break t;default:break c}}b=pf(c,c);break d;case 5:u:{switch(F[c+24|0]-1|0){case 0:b=nf(c,c);break d;case 1:b=Bd(c,c);break d;case 2:b=Ad(c,c);break d;case 3:break u;default:break c}}b=zd(c,c);break d;case 4:break e;default:break b}}v:{switch(F[c+24|0]-1|0){case 0:b=nf(c,c);break d;case 1:b=Bd(c,c);break d;case 2:b=Ad(c,c);break d;case 3:break v;default:break c}}b=zd(c,c)}if(b){break b}}b=-1}d=b;if(b){n=n+1|0;b=H[a+8>>2];if((n|0)>2]-b>>2){continue}}break}d=(d|0)!=0}return d|0}function Pc(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0;e=da-96|0;da=e;d=H[a+16>>2];F[e+92|0]=1;H[e+88>>2]=b;H[e+84>>2]=b;H[e+80>>2]=d;a:{if((b|0)==-1){break a}k=H[a+20>>2];f=H[k>>2];d=H[H[d>>2]+(b<<2)>>2];if(d>>>0>=H[k+4>>2]-f>>2>>>0){break a}f=H[H[a+8>>2]+(H[f+(d<<2)>>2]<<2)>>2];d=H[a+4>>2];if(!I[d+84|0]){f=H[H[d+68>>2]+(f<<2)>>2]}H[e+72>>2]=0;H[e+76>>2]=0;k=e- -64|0;H[k>>2]=0;H[k+4>>2]=0;H[e+56>>2]=0;H[e+60>>2]=0;ib(d,f,F[d+24|0],e+56|0);d=b+1|0;k=(d>>>0)%3|0?d:b-2|0;i=((b>>>0)%3|0?-1:2)+b|0;b:{c:{while(1){f=k;d=i;d:{if(!H[a+28>>2]){break d}d=b+1|0;f=(d>>>0)%3|0?d:b-2|0;d=b-1|0;if((b>>>0)%3|0){break d}d=b+2|0}if((f|0)==-1){break b}h=H[a+20>>2];b=H[h>>2];f=H[H[H[a+16>>2]>>2]+(f<<2)>>2];if(f>>>0>=H[h+4>>2]-b>>2>>>0){break b}f=H[H[a+8>>2]+(H[b+(f<<2)>>2]<<2)>>2];b=H[a+4>>2];if(!I[b+84|0]){f=H[H[b+68>>2]+(f<<2)>>2]}H[e+48>>2]=0;H[e+52>>2]=0;H[e+40>>2]=0;H[e+44>>2]=0;H[e+32>>2]=0;H[e+36>>2]=0;ib(b,f,F[b+24|0],e+32|0);if((d|0)==-1){break c}f=H[a+20>>2];b=H[f>>2];d=H[H[H[a+16>>2]>>2]+(d<<2)>>2];if(d>>>0>=H[f+4>>2]-b>>2>>>0){break c}f=H[H[a+8>>2]+(H[b+(d<<2)>>2]<<2)>>2];b=H[a+4>>2];if(!I[b+84|0]){f=H[H[b+68>>2]+(f<<2)>>2]}H[e+24>>2]=0;H[e+28>>2]=0;H[e+16>>2]=0;H[e+20>>2]=0;H[e+8>>2]=0;H[e+12>>2]=0;ib(b,f,F[b+24|0],e+8|0);d=H[e+8>>2];b=H[e+56>>2];f=d-b|0;h=H[e+60>>2];j=H[e+12>>2]-(h+(b>>>0>d>>>0)|0)|0;p=H[e+40>>2];d=H[e+64>>2];s=p-d|0;t=H[e+68>>2];p=H[e+44>>2]-(t+(d>>>0>p>>>0)|0)|0;u=zl(f,j,s,p);v=n-u|0;n=g-(ea+(n>>>0>>0)|0)|0;o=v;g=H[e+16>>2];u=g-d|0;t=H[e+20>>2]-((d>>>0>g>>>0)+t|0)|0;g=H[e+32>>2];v=g-b|0;h=H[e+36>>2]-((b>>>0>g>>>0)+h|0)|0;d=zl(u,t,v,h);b=o+d|0;g=ea+n|0;g=b>>>0>>0?g+1|0:g;n=b;d=l;o=f;x=j;b=H[e+48>>2];l=H[e+72>>2];f=b-l|0;j=H[e+76>>2];w=H[e+52>>2]-(j+(b>>>0>>0)|0)|0;o=zl(o,x,f,w);d=d+o|0;b=ea+m|0;b=d>>>0>>0?b+1|0:b;m=H[e+24>>2];o=m-l|0;j=H[e+28>>2]-((l>>>0>m>>>0)+j|0)|0;m=zl(o,j,v,h);l=d-m|0;m=b-(ea+(d>>>0>>0)|0)|0;b=zl(u,t,f,w);d=q-b|0;b=r-(ea+(b>>>0>q>>>0)|0)|0;r=zl(o,j,s,p);q=r+d|0;b=ea+b|0;b=q>>>0>>0?b+1|0:b;r=b;b=H[e+88>>2];f=H[e+80>>2];e:{if(I[e+92|0]){f:{g:{h:{i:{if((b|0)==-1){break i}d=b+1|0;b=(d>>>0)%3|0?d:b-2|0;if((b|0)==-1){break i}b=H[H[f+12>>2]+(b<<2)>>2];if((b|0)!=-1){break h}}H[e+88>>2]=-1;break g}d=b+1|0;b=(d>>>0)%3|0?d:b-2|0;H[e+88>>2]=b;if((b|0)!=-1){break f}}b=H[e+84>>2];d=-1;j:{if((b|0)==-1){break j}k:{if((b>>>0)%3|0){b=b-1|0;break k}b=b+2|0;d=-1;if((b|0)==-1){break j}}b=H[H[f+12>>2]+(b<<2)>>2];d=-1;if((b|0)==-1){break j}d=b-1|0;if((b>>>0)%3|0){break j}d=b+2|0}F[e+92|0]=0;H[e+88>>2]=d;break e}if((b|0)!=H[e+84>>2]){break e}H[e+88>>2]=-1;break e}d=-1;l:{if((b|0)==-1){break l}m:{if((b>>>0)%3|0){b=b-1|0;break m}b=b+2|0;d=-1;if((b|0)==-1){break l}}b=H[H[f+12>>2]+(b<<2)>>2];d=-1;if((b|0)==-1){break l}d=b-1|0;if((b>>>0)%3|0){break l}d=b+2|0}H[e+88>>2]=d}b=H[e+88>>2];if((b|0)!=-1){continue}break}b=r>>31;d=b^q;j=d-b|0;h=(b^r)-((b>>>0>d>>>0)+b|0)|0;p=-1;d=2147483647;b=m>>31;k=b^l;f=(b^m)-((b>>>0>k>>>0)+b|0)|0;b=k-b|0;s=b^-1;i=f^2147483647;k=g;n:{o:{if(!H[a+28>>2]){if((i|0)==(h|0)&j>>>0>s>>>0|i>>>0>>0){break n}i=g;a=b;d=b+j|0;b=f+h|0;b=a>>>0>d>>>0?b+1|0:b;a=g>>31;h=a^n;j=h-a|0;g=d+j|0;f=(a^i)-((a>>>0>h>>>0)+a|0)|0;a=g;g=f^2147483647;g=(g|0)==(b|0)&(j^-1)>>>0>>0|b>>>0>g>>>0;a=g?-1:a;if(!(g&0)&(a|0)<=536870912|(a|0)<536870912){break n}b=0;a=a>>>29|0;break o}p:{if((i|0)==(h|0)&j>>>0>s>>>0|i>>>0>>0){break p}a=b;i=b+j|0;b=f+h|0;b=a>>>0>i>>>0?b+1|0:b;a=i;h=g;f=g>>31;g=f;i=f^n;f=(f^h)-(f+(f>>>0>i>>>0)|0)|0;g=i-g|0;i=f^2147483647;if((i|0)==(b|0)&(g^-1)>>>0>>0|b>>>0>i>>>0){break p}b=b+f|0;a=a+g|0;b=a>>>0>>0?b+1|0:b;p=a;d=b;if(!b&a>>>0<536870913){break n}}b=d>>>29|0;a=(d&536870911)<<3|p>>>29}n=Al(n,k,a,b);l=Al(l,m,a,b);q=Al(q,r,a,b)}H[c+8>>2]=n;H[c+4>>2]=l;H[c>>2]=q;da=e+96|0;return}va();X()}va();X()}va();X()}function Bg(a,b,c,d){var e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0;o=da-32|0;da=o;a:{if((c|0)<=0){break a}q=c&3;b:{if(c-1>>>0<3){c=0;break b}A=c&-4;c=0;while(1){t=c|1;i=(t<<3)+b|0;f=H[i+4>>2];u=H[i>>2];v=c|2;h=(v<<3)+b|0;i=H[h+4>>2];w=H[h>>2];x=c|3;m=(x<<3)+b|0;h=H[m+4>>2];y=H[m>>2];s=j;j=(c<<3)+b|0;z=H[j+4>>2];m=H[j>>2];j=h|y?x:i|w?v:f|u?t:!(z|m)?s:c;e=e+z|0;n=m+n|0;e=n>>>0>>0?e+1|0:e;m=n+u|0;e=e+f|0;e=m>>>0>>0?e+1|0:e;f=m+w|0;e=e+i|0;e=f>>>0>>0?e+1|0:e;i=f;f=f+y|0;e=e+h|0;e=f>>>0>>0?e+1|0:e;n=f;c=c+4|0;g=g+4|0;if((A|0)!=(g|0)){continue}break}}if(!q){break a}while(1){i=j;j=(c<<3)+b|0;f=H[j+4>>2];g=H[j>>2];j=!(f|g)?i:c;c=c+1|0;e=e+f|0;i=g+n|0;e=i>>>0>>0?e+1|0:e;n=i;k=k+1|0;if((q|0)!=(k|0)){continue}break}}g=j+1|0;H[a+12>>2]=g;f=H[a>>2];c=H[a+4>>2]-f>>3;c:{if(c>>>0>>0){Ya(a,g-c|0);break c}if(c>>>0<=g>>>0){break c}H[a+4>>2]=f+(g<<3)}i=0;d:{e:{f:{g:{h:{if((j|0)>=0){r=+(n>>>0)+ +(e>>>0)*4294967296;f=H[a>>2];c=0;while(1){h=c<<3;m=h+b|0;e=H[m+4>>2];m=H[m>>2];k=(e|m)!=0;n=f+h|0;l=(+(m>>>0)+ +(e>>>0)*4294967296)/r*4096+.5;i:{if(l<4294967296&l>=0){e=~~l>>>0;break i}e=0}e=e?e:k?1:e;H[n>>2]=e;i=e+i|0;e=(c|0)==(j|0);c=c+1|0;if(!e){continue}break}if((i|0)==4096){break h}}H[o+16>>2]=0;H[o+8>>2]=0;H[o+12>>2]=0;f=0;if(g){if(g>>>0>=1073741824){break g}c=g<<2;f=ra(c);H[o+8>>2]=f;p=c+f|0;H[o+16>>2]=p;ta(f,0,c);H[o+12>>2]=p}c=0;j:{if((j|0)<0){break j}g=j+1|0;e=g&7;if(j>>>0>=7){g=g&-8;k=0;while(1){H[(c<<2)+f>>2]=c;h=c|1;H[(h<<2)+f>>2]=h;h=c|2;H[(h<<2)+f>>2]=h;h=c|3;H[(h<<2)+f>>2]=h;h=c|4;H[(h<<2)+f>>2]=h;h=c|5;H[(h<<2)+f>>2]=h;h=c|6;H[(h<<2)+f>>2]=h;h=c|7;H[(h<<2)+f>>2]=h;c=c+8|0;k=k+8|0;if((g|0)!=(k|0)){continue}break}}if(!e){break j}k=0;while(1){H[(c<<2)+f>>2]=c;c=c+1|0;k=k+1|0;if((e|0)!=(k|0)){continue}break}}H[o+24>>2]=a;c=p-f|0;e=c>>2;k:{l:{if((c|0)>=513){c=e;while(1){g=ra(c<<2);if(g){break l}g=c>>>0>1;c=c>>>1|0;if(g){continue}break}}jc(f,p,o+24|0,e,0,0);break k}jc(f,p,o+24|0,e,g,c);qa(g)}if((i|0)<4096){c=H[a>>2]+(H[p-4>>2]<<3)|0;H[c>>2]=(H[c>>2]-i|0)+4096;c=0;break f}if((j|0)>0){m=H[a>>2];k=i-4096|0;while(1){l=4096/+(i|0);g=j;while(1){m:{n:{e=m+(H[(g<<2)+f>>2]<<3)|0;c=H[e>>2];if(c>>>0>=2){n=e;s=c;r=T(l*+(c>>>0));o:{if(P(r)<2147483648){h=~~r;break o}h=-2147483648}e=(c|0)==(h|0)?1:c-h|0;c=(c|0)>(e|0)?e:c-1|0;c=(c|0)<(k|0)?c:k;H[n>>2]=s-c;k=k-c|0;i=i-c|0;if((i|0)!=4096){break n}i=4096;break m}if((g|0)!=(j|0)){break m}c=1;break f}c=(g|0)>1;g=g-1|0;if(c){continue}}break}c=0;if((k|0)>0){continue}break}break f}c=0;if(i>>>0<4097){break f}while(1)continue}if((j|0)<0){break d}break e}ua();X()}e=H[o+8>>2];if(e){qa(e)}if((j|0)<0|c){break d}}h=j+1|0;m=h&3;e=H[a>>2];i=0;k=0;c=0;if(j>>>0>=3){p=h&-4;f=0;while(1){g=k<<3;n=g+e|0;H[n+4>>2]=c;q=e+(g|8)|0;c=H[n>>2]+c|0;H[q+4>>2]=c;n=e+(g|16)|0;c=c+H[q>>2]|0;H[n+4>>2]=c;g=e+(g|24)|0;c=c+H[n>>2]|0;H[g+4>>2]=c;c=c+H[g>>2]|0;k=k+4|0;f=f+4|0;if((p|0)!=(f|0)){continue}break}}if(m){while(1){g=e+(k<<3)|0;H[g+4>>2]=c;k=k+1|0;c=H[g>>2]+c|0;i=i+1|0;if((m|0)!=(i|0)){continue}break}}if((c|0)!=4096){break d}c=0;l=0;p:{if((j|0)<0){break p}e=H[a>>2];if(j){j=h&-2;g=0;while(1){f=c<<3;i=H[f+e>>2];if(i){f=b+f|0;l=(+K[f>>2]+ +K[f+4>>2]*4294967296)*za(+(i>>>0)*.000244140625)+l}f=(c|1)<<3;i=H[f+e>>2];if(i){f=b+f|0;l=(+K[f>>2]+ +K[f+4>>2]*4294967296)*za(+(i>>>0)*.000244140625)+l}c=c+2|0;g=g+2|0;if((j|0)!=(g|0)){continue}break}}if(!(h&1)){break p}c=c<<3;e=H[c+e>>2];if(!e){break p}b=b+c|0;l=(+K[b>>2]+ +K[b+4>>2]*4294967296)*za(+(e>>>0)*.000244140625)+l}l=U(-l);q:{if(l<0x10000000000000000&l>=0){c=P(l)>=1?~~(l>0?R(T(l*2.3283064365386963e-10),4294967295):U((l-+(~~l>>>0>>>0))*2.3283064365386963e-10))>>>0:0;b=~~l>>>0;break q}c=0;b=0}H[a+16>>2]=b;H[a+20>>2]=c;Xa(a,d)}da=o+32|0}function Uk(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0;l=da-48|0;da=l;H[a+68>>2]=f;o=a+112|0;Ca(o);d=H[a+56>>2];e=H[d>>2];d=H[d+4>>2];H[l+40>>2]=0;H[l+32>>2]=0;H[l+36>>2]=0;H[l+16>>2]=0;H[l+20>>2]=0;H[l+8>>2]=0;H[l+12>>2]=0;H[l>>2]=0;H[l+4>>2]=0;a:{d=d-e|0;if((d|0)>0){p=a+60|0;d=d>>>2|0;q=d>>>0>1?d:1;r=c+4|0;while(1){e=H[a+56>>2];d=H[e>>2];if(H[e+4>>2]-d>>2>>>0<=n>>>0){break a}Rc(p,H[d+(n<<2)>>2],l+32|0);f=H[l+36>>2];d=f>>31;e=H[l+32>>2];g=e>>31;h=H[l+40>>2];j=h>>31;j=(h^j)-j|0;g=j+((d^f)-d+((e^g)-g)|0)|0;d=0;d=j>>>0>g>>>0?1:d;b:{if(!(d|g)){i=H[a+108>>2];k=i;break b}i=H[a+108>>2];k=i>>31;f=Al(zl(i,k,f,f>>31),ea,g,d);j=f>>31;k=Al(zl(i,k,e,e>>31),ea,g,d);d=k>>31;d=(f^j)-j+((d^k)-d)|0;h=(h|0)<0?d-i|0:i-d|0}c:{if((k|0)>=0){e=f+i|0;j=i+h|0;break c}d:{if((f|0)<0){d=h>>31;e=(d^h)-d|0;break d}d=h>>31;e=H[a+100>>2]+(d-(d^h)|0)|0}if((h|0)<0){d=f>>31;j=(d^f)-d|0;break c}d=f>>31;j=H[a+100>>2]+(d-(d^f)|0)|0}d=H[a+100>>2];m=d;g=d;e:{if(!(e|j)){break e}if(!((d|0)!=(j|0)|e)){m=j;g=j;break e}if(!((d|0)!=(e|0)|j)){m=e;g=e;break e}if(!((i|0)>=(j|0)|e)){m=(i<<1)-j|0;g=0;break e}if(!((d|0)!=(e|0)|(i|0)<=(j|0))){m=(i<<1)-j|0;g=e;break e}if(!((d|0)!=(j|0)|(e|0)>=(i|0))){m=j;g=(i<<1)-e|0;break e}if(j){m=j;g=e;break e}m=0;g=e;if((e|0)<=(i|0)){break e}g=(i<<1)-e|0}H[l+28>>2]=m;H[l+24>>2]=g;H[l+40>>2]=0-h;H[l+36>>2]=0-f;H[l+32>>2]=0-k;f:{if((k|0)<=0){k=i-h|0;e=i-f|0;break f}e=f>>31;e=(e^f)-e|0;k=(h|0)>0?e:d-e|0;e=h>>31;e=(e^h)-e|0;e=(f|0)>0?e:d-e|0}g:{if(!(e|k)){k=d;break g}if(!((d|0)!=(k|0)|e)){k=d;break g}f=(d|0)!=(e|0);if(!(k|f)){k=d;break g}if(!((i|0)>=(k|0)|e)){k=(i<<1)-k|0;d=0;break g}if(!((i|0)<=(k|0)|f)){k=(i<<1)-k|0;break g}if(!((d|0)!=(k|0)|(e|0)>=(i|0))){k=d;d=(i<<1)-e|0;break g}if(k){d=e;break g}k=0;if((e|0)<=(i|0)){d=e;break g}d=(i<<1)-e|0}H[l+20>>2]=k;H[l+16>>2]=d;h=H[a+8>>2];h:{if((h|0)<=0){break h}k=(n<<3)+b|0;j=H[a+32>>2];e=0;g=l+24|0;while(1){i=j;if((h|0)>0){i=H[a+32>>2];f=0;while(1){d=f<<2;m=H[d+g>>2];h=H[a+16>>2];i:{if((m|0)>(h|0)){H[d+i>>2]=h;break i}d=d+i|0;h=H[a+12>>2];if((h|0)>(m|0)){H[d>>2]=h;break i}H[d>>2]=m}f=f+1|0;h=H[a+8>>2];if((f|0)<(h|0)){continue}break}}f=e<<2;d=f+(l+8|0)|0;g=H[f+k>>2]-H[f+i>>2]|0;H[d>>2]=g;f=d;d=H[a+28>>2];j:{if((g|0)<(d|0)){g=g+H[a+20>>2]|0}else{if((g|0)<=H[a+24>>2]){break j}g=g-H[a+20>>2]|0}H[f>>2]=g}g=i;e=e+1|0;if((e|0)<(h|0)){continue}break}if((h|0)<=0){break h}j=H[a+32>>2];e=0;g=l+16|0;while(1){i=j;if((h|0)>0){i=H[a+32>>2];f=0;while(1){d=f<<2;m=H[d+g>>2];h=H[a+16>>2];k:{if((m|0)>(h|0)){H[d+i>>2]=h;break k}d=d+i|0;h=H[a+12>>2];if((h|0)>(m|0)){H[d>>2]=h;break k}H[d>>2]=m}f=f+1|0;h=H[a+8>>2];if((f|0)<(h|0)){continue}break}d=H[a+28>>2]}g=e<<2;f=g+l|0;g=H[k+g>>2]-H[i+g>>2]|0;H[f>>2]=g;l:{if((d|0)>(g|0)){g=g+H[a+20>>2]|0}else{if((g|0)<=H[a+24>>2]){break l}g=g-H[a+20>>2]|0}H[f>>2]=g}g=i;e=e+1|0;if((e|0)<(h|0)){continue}break}}f=H[l+8>>2];e=H[a+108>>2];m:{if((f|0)>(e|0)){f=f-H[a+96>>2]|0;break m}if((0-e|0)<=(f|0)){break m}f=H[a+96>>2]+f|0}H[l+8>>2]=f;h=H[l+12>>2];n:{if((e|0)<(h|0)){h=h-H[a+96>>2]|0;break n}if((0-e|0)<=(h|0)){break n}h=H[a+96>>2]+h|0}H[l+12>>2]=h;d=H[l>>2];o:{if((e|0)<(d|0)){d=d-H[a+96>>2]|0;break o}if((0-e|0)<=(d|0)){break o}d=H[a+96>>2]+d|0}g=n<<1;H[l>>2]=d;k=H[l+4>>2];p:{if((e|0)<(k|0)){k=k-H[a+96>>2]|0;break p}if((0-e|0)<=(k|0)){break p}k=H[a+96>>2]+k|0}H[l+4>>2]=k;e=h>>31;e=(e^h)-e|0;j=f>>31;j=(j^f)-j|0;e=j>>>0>(e^2147483647)>>>0?2147483647:e+j|0;j=k>>31;j=(j^k)-j|0;i=d>>31;i=(i^d)-i|0;j=i>>>0>(j^2147483647)>>>0?2147483647:j+i|0;Ga(o,e>>>0>=j>>>0);g=g<<2;m=d;d=e>>>0>>0;e=d?f:m;H[g+c>>2]=(H[a+96>>2]&e>>31)+e;d=d?h:k;H[g+r>>2]=(H[a+96>>2]&d>>31)+d;n=n+1|0;if((q|0)!=(n|0)){continue}break}}da=l+48|0;return 1}va();X()}function Kk(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0;l=da-48|0;da=l;H[a+68>>2]=f;o=a+112|0;Ca(o);d=H[a+56>>2];e=H[d>>2];d=H[d+4>>2];H[l+40>>2]=0;H[l+32>>2]=0;H[l+36>>2]=0;H[l+16>>2]=0;H[l+20>>2]=0;H[l+8>>2]=0;H[l+12>>2]=0;H[l>>2]=0;H[l+4>>2]=0;a:{d=d-e|0;if((d|0)>0){p=a+60|0;d=d>>>2|0;q=d>>>0>1?d:1;r=c+4|0;while(1){e=H[a+56>>2];d=H[e>>2];if(H[e+4>>2]-d>>2>>>0<=n>>>0){break a}Pc(p,H[d+(n<<2)>>2],l+32|0);f=H[l+36>>2];d=f>>31;e=H[l+32>>2];g=e>>31;h=H[l+40>>2];j=h>>31;j=(h^j)-j|0;g=j+((d^f)-d+((e^g)-g)|0)|0;d=0;d=j>>>0>g>>>0?1:d;b:{if(!(d|g)){i=H[a+108>>2];k=i;break b}i=H[a+108>>2];k=i>>31;f=Al(zl(i,k,f,f>>31),ea,g,d);j=f>>31;k=Al(zl(i,k,e,e>>31),ea,g,d);d=k>>31;d=(f^j)-j+((d^k)-d)|0;h=(h|0)<0?d-i|0:i-d|0}c:{if((k|0)>=0){e=f+i|0;j=i+h|0;break c}d:{if((f|0)<0){d=h>>31;e=(d^h)-d|0;break d}d=h>>31;e=H[a+100>>2]+(d-(d^h)|0)|0}if((h|0)<0){d=f>>31;j=(d^f)-d|0;break c}d=f>>31;j=H[a+100>>2]+(d-(d^f)|0)|0}d=H[a+100>>2];m=d;g=d;e:{if(!(e|j)){break e}if(!((d|0)!=(j|0)|e)){m=j;g=j;break e}if(!((d|0)!=(e|0)|j)){m=e;g=e;break e}if(!((i|0)>=(j|0)|e)){m=(i<<1)-j|0;g=0;break e}if(!((d|0)!=(e|0)|(i|0)<=(j|0))){m=(i<<1)-j|0;g=e;break e}if(!((d|0)!=(j|0)|(e|0)>=(i|0))){m=j;g=(i<<1)-e|0;break e}if(j){m=j;g=e;break e}m=0;g=e;if((e|0)<=(i|0)){break e}g=(i<<1)-e|0}H[l+28>>2]=m;H[l+24>>2]=g;H[l+40>>2]=0-h;H[l+36>>2]=0-f;H[l+32>>2]=0-k;f:{if((k|0)<=0){k=i-h|0;e=i-f|0;break f}e=f>>31;e=(e^f)-e|0;k=(h|0)>0?e:d-e|0;e=h>>31;e=(e^h)-e|0;e=(f|0)>0?e:d-e|0}g:{if(!(e|k)){k=d;break g}if(!((d|0)!=(k|0)|e)){k=d;break g}f=(d|0)!=(e|0);if(!(k|f)){k=d;break g}if(!((i|0)>=(k|0)|e)){k=(i<<1)-k|0;d=0;break g}if(!((i|0)<=(k|0)|f)){k=(i<<1)-k|0;break g}if(!((d|0)!=(k|0)|(e|0)>=(i|0))){k=d;d=(i<<1)-e|0;break g}if(k){d=e;break g}k=0;if((e|0)<=(i|0)){d=e;break g}d=(i<<1)-e|0}H[l+20>>2]=k;H[l+16>>2]=d;h=H[a+8>>2];h:{if((h|0)<=0){break h}k=(n<<3)+b|0;j=H[a+32>>2];e=0;g=l+24|0;while(1){i=j;if((h|0)>0){i=H[a+32>>2];f=0;while(1){d=f<<2;m=H[d+g>>2];h=H[a+16>>2];i:{if((m|0)>(h|0)){H[d+i>>2]=h;break i}d=d+i|0;h=H[a+12>>2];if((h|0)>(m|0)){H[d>>2]=h;break i}H[d>>2]=m}f=f+1|0;h=H[a+8>>2];if((f|0)<(h|0)){continue}break}}f=e<<2;d=f+(l+8|0)|0;g=H[f+k>>2]-H[f+i>>2]|0;H[d>>2]=g;f=d;d=H[a+28>>2];j:{if((g|0)<(d|0)){g=g+H[a+20>>2]|0}else{if((g|0)<=H[a+24>>2]){break j}g=g-H[a+20>>2]|0}H[f>>2]=g}g=i;e=e+1|0;if((e|0)<(h|0)){continue}break}if((h|0)<=0){break h}j=H[a+32>>2];e=0;g=l+16|0;while(1){i=j;if((h|0)>0){i=H[a+32>>2];f=0;while(1){d=f<<2;m=H[d+g>>2];h=H[a+16>>2];k:{if((m|0)>(h|0)){H[d+i>>2]=h;break k}d=d+i|0;h=H[a+12>>2];if((h|0)>(m|0)){H[d>>2]=h;break k}H[d>>2]=m}f=f+1|0;h=H[a+8>>2];if((f|0)<(h|0)){continue}break}d=H[a+28>>2]}g=e<<2;f=g+l|0;g=H[k+g>>2]-H[i+g>>2]|0;H[f>>2]=g;l:{if((d|0)>(g|0)){g=g+H[a+20>>2]|0}else{if((g|0)<=H[a+24>>2]){break l}g=g-H[a+20>>2]|0}H[f>>2]=g}g=i;e=e+1|0;if((e|0)<(h|0)){continue}break}}f=H[l+8>>2];e=H[a+108>>2];m:{if((f|0)>(e|0)){f=f-H[a+96>>2]|0;break m}if((0-e|0)<=(f|0)){break m}f=H[a+96>>2]+f|0}H[l+8>>2]=f;h=H[l+12>>2];n:{if((e|0)<(h|0)){h=h-H[a+96>>2]|0;break n}if((0-e|0)<=(h|0)){break n}h=H[a+96>>2]+h|0}H[l+12>>2]=h;d=H[l>>2];o:{if((e|0)<(d|0)){d=d-H[a+96>>2]|0;break o}if((0-e|0)<=(d|0)){break o}d=H[a+96>>2]+d|0}g=n<<1;H[l>>2]=d;k=H[l+4>>2];p:{if((e|0)<(k|0)){k=k-H[a+96>>2]|0;break p}if((0-e|0)<=(k|0)){break p}k=H[a+96>>2]+k|0}H[l+4>>2]=k;e=h>>31;e=(e^h)-e|0;j=f>>31;j=(j^f)-j|0;e=j>>>0>(e^2147483647)>>>0?2147483647:e+j|0;j=k>>31;j=(j^k)-j|0;i=d>>31;i=(i^d)-i|0;j=i>>>0>(j^2147483647)>>>0?2147483647:j+i|0;Ga(o,e>>>0>=j>>>0);g=g<<2;m=d;d=e>>>0>>0;e=d?f:m;H[g+c>>2]=(H[a+96>>2]&e>>31)+e;d=d?h:k;H[g+r>>2]=(H[a+96>>2]&d>>31)+d;n=n+1|0;if((q|0)!=(n|0)){continue}break}}da=l+48|0;return 1}va();X()}function fk(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=O(0);f=da-32|0;da=f;H[f+28>>2]=c;a:{b:{if(!de(a,b,c)){break b}i=H[H[H[b+4>>2]+8>>2]+(c<<2)>>2];if(H[i+28>>2]!=9){break b}g=H[b+48>>2];c=ra(32);H[f+16>>2]=c;H[f+20>>2]=17;H[f+24>>2]=-2147483616;F[c+17|0]=0;F[c+16|0]=I[1261];d=I[1257]|I[1258]<<8|(I[1259]<<16|I[1260]<<24);h=I[1253]|I[1254]<<8|(I[1255]<<16|I[1256]<<24);F[c+8|0]=h;F[c+9|0]=h>>>8;F[c+10|0]=h>>>16;F[c+11|0]=h>>>24;F[c+12|0]=d;F[c+13|0]=d>>>8;F[c+14|0]=d>>>16;F[c+15|0]=d>>>24;d=I[1249]|I[1250]<<8|(I[1251]<<16|I[1252]<<24);h=I[1245]|I[1246]<<8|(I[1247]<<16|I[1248]<<24);F[c|0]=h;F[c+1|0]=h>>>8;F[c+2|0]=h>>>16;F[c+3|0]=h>>>24;F[c+4|0]=d;F[c+5|0]=d>>>8;F[c+6|0]=d>>>16;F[c+7|0]=d>>>24;h=pb(g,f+28|0,f+16|0,-1);if(F[f+27|0]<0){qa(H[f+16>>2])}if((h|0)<=0){break b}j=H[b+48>>2];c=ra(32);H[f+16>>2]=c;H[f+20>>2]=19;H[f+24>>2]=-2147483616;F[c+19|0]=0;d=I[1429]|I[1430]<<8|(I[1431]<<16|I[1432]<<24);F[c+15|0]=d;F[c+16|0]=d>>>8;F[c+17|0]=d>>>16;F[c+18|0]=d>>>24;d=I[1426]|I[1427]<<8|(I[1428]<<16|I[1429]<<24);g=I[1422]|I[1423]<<8|(I[1424]<<16|I[1425]<<24);F[c+8|0]=g;F[c+9|0]=g>>>8;F[c+10|0]=g>>>16;F[c+11|0]=g>>>24;F[c+12|0]=d;F[c+13|0]=d>>>8;F[c+14|0]=d>>>16;F[c+15|0]=d>>>24;d=I[1418]|I[1419]<<8|(I[1420]<<16|I[1421]<<24);g=I[1414]|I[1415]<<8|(I[1416]<<16|I[1417]<<24);F[c|0]=g;F[c+1|0]=g>>>8;F[c+2|0]=g>>>16;F[c+3|0]=g>>>24;F[c+4|0]=d;F[c+5|0]=d>>>8;F[c+6|0]=d>>>16;F[c+7|0]=d>>>24;c:{if(!wc(j,f+28|0,f+16|0)){break c}g=H[b+48>>2];c=ra(32);H[f>>2]=c;H[f+4>>2]=18;H[f+8>>2]=-2147483616;F[c+18|0]=0;e=I[1547]|I[1548]<<8;F[c+16|0]=e;F[c+17|0]=e>>>8;e=I[1543]|I[1544]<<8|(I[1545]<<16|I[1546]<<24);d=I[1539]|I[1540]<<8|(I[1541]<<16|I[1542]<<24);F[c+8|0]=d;F[c+9|0]=d>>>8;F[c+10|0]=d>>>16;F[c+11|0]=d>>>24;F[c+12|0]=e;F[c+13|0]=e>>>8;F[c+14|0]=e>>>16;F[c+15|0]=e>>>24;e=I[1535]|I[1536]<<8|(I[1537]<<16|I[1538]<<24);d=I[1531]|I[1532]<<8|(I[1533]<<16|I[1534]<<24);F[c|0]=d;F[c+1|0]=d>>>8;F[c+2|0]=d>>>16;F[c+3|0]=d>>>24;F[c+4|0]=e;F[c+5|0]=e>>>8;F[c+6|0]=e>>>16;F[c+7|0]=e>>>24;e=wc(g,f+28|0,f);if(F[f+11|0]>=0){break c}qa(H[f>>2])}if(F[f+27|0]<0){qa(H[f+16>>2])}d:{if(e){e=F[i+24|0];H[f+24>>2]=0;H[f+16>>2]=0;H[f+20>>2]=0;c=0;if(e){if((e|0)<0){break a}e=e<<2;c=ra(e);H[f+16>>2]=c;d=c+e|0;H[f+24>>2]=d;ta(c,0,e);H[f+20>>2]=d}j=H[b+48>>2];e=ra(32);H[f>>2]=e;H[f+4>>2]=19;H[f+8>>2]=-2147483616;F[e+19|0]=0;d=I[1429]|I[1430]<<8|(I[1431]<<16|I[1432]<<24);F[e+15|0]=d;F[e+16|0]=d>>>8;F[e+17|0]=d>>>16;F[e+18|0]=d>>>24;d=I[1426]|I[1427]<<8|(I[1428]<<16|I[1429]<<24);g=I[1422]|I[1423]<<8|(I[1424]<<16|I[1425]<<24);F[e+8|0]=g;F[e+9|0]=g>>>8;F[e+10|0]=g>>>16;F[e+11|0]=g>>>24;F[e+12|0]=d;F[e+13|0]=d>>>8;F[e+14|0]=d>>>16;F[e+15|0]=d>>>24;d=I[1418]|I[1419]<<8|(I[1420]<<16|I[1421]<<24);g=I[1414]|I[1415]<<8|(I[1416]<<16|I[1417]<<24);F[e|0]=g;F[e+1|0]=g>>>8;F[e+2|0]=g>>>16;F[e+3|0]=g>>>24;F[e+4|0]=d;F[e+5|0]=d>>>8;F[e+6|0]=d>>>16;F[e+7|0]=d>>>24;ve(j,f+28|0,f,F[i+24|0],c);if(F[f+11|0]<0){qa(H[f>>2])}g=H[b+48>>2];b=ra(32);H[f>>2]=b;H[f+4>>2]=18;H[f+8>>2]=-2147483616;F[b+18|0]=0;e=I[1547]|I[1548]<<8;F[b+16|0]=e;F[b+17|0]=e>>>8;e=I[1543]|I[1544]<<8|(I[1545]<<16|I[1546]<<24);d=I[1539]|I[1540]<<8|(I[1541]<<16|I[1542]<<24);F[b+8|0]=d;F[b+9|0]=d>>>8;F[b+10|0]=d>>>16;F[b+11|0]=d>>>24;F[b+12|0]=e;F[b+13|0]=e>>>8;F[b+14|0]=e>>>16;F[b+15|0]=e>>>24;e=I[1535]|I[1536]<<8|(I[1537]<<16|I[1538]<<24);d=I[1531]|I[1532]<<8|(I[1533]<<16|I[1534]<<24);F[b|0]=d;F[b+1|0]=d>>>8;F[b+2|0]=d>>>16;F[b+3|0]=d>>>24;F[b+4|0]=e;F[b+5|0]=e>>>8;F[b+6|0]=e>>>16;F[b+7|0]=e>>>24;k=ue(g,f+28|0,f);if(F[f+11|0]<0){qa(H[f>>2])}a=Vg(a+40|0,h,c,F[i+24|0],k);if(c){qa(c)}e=0;if(a){break d}break b}e=0;if(!Rg(a+40|0,i,h)){break b}}e=1}da=f+32|0;return e|0}ua();X()}function Fk(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0;b=da-48|0;da=b;g=H[H[a+4>>2]+48>>2];H[b+8>>2]=H[a+12>>2];c=ra(32);H[b+24>>2]=c;H[b+28>>2]=17;H[b+32>>2]=-2147483616;F[c+17|0]=0;F[c+16|0]=I[1261];f=I[1257]|I[1258]<<8|(I[1259]<<16|I[1260]<<24);e=I[1253]|I[1254]<<8|(I[1255]<<16|I[1256]<<24);F[c+8|0]=e;F[c+9|0]=e>>>8;F[c+10|0]=e>>>16;F[c+11|0]=e>>>24;F[c+12|0]=f;F[c+13|0]=f>>>8;F[c+14|0]=f>>>16;F[c+15|0]=f>>>24;f=I[1249]|I[1250]<<8|(I[1251]<<16|I[1252]<<24);e=I[1245]|I[1246]<<8|(I[1247]<<16|I[1248]<<24);F[c|0]=e;F[c+1|0]=e>>>8;F[c+2|0]=e>>>16;F[c+3|0]=e>>>24;F[c+4|0]=f;F[c+5|0]=f>>>8;F[c+6|0]=f>>>16;F[c+7|0]=f>>>24;c=pb(g,b+8|0,b+24|0,-1);if(F[b+35|0]<0){qa(H[b+24>>2])}H[b+32>>2]=-1;H[b+36>>2]=1065353216;H[b+24>>2]=-1;H[b+28>>2]=-1;H[b+40>>2]=-1;c=-1<>>0<4294967267){break a}H[b+24>>2]=c+1;c=-2<>2]=c^-1;c=-2-c|0;H[b+32>>2]=c;H[b+40>>2]=(c|0)/2;L[b+36>>2]=O(2)/O(c|0)}g=Ug(H[a+12>>2],H[a+4>>2]);h=H[H[a+4>>2]+48>>2];H[b+20>>2]=H[a+12>>2];c=ra(32);H[b+8>>2]=c;H[b+12>>2]=17;H[b+16>>2]=-2147483616;F[c+17|0]=0;F[c+16|0]=I[1529];f=I[1525]|I[1526]<<8|(I[1527]<<16|I[1528]<<24);e=I[1521]|I[1522]<<8|(I[1523]<<16|I[1524]<<24);F[c+8|0]=e;F[c+9|0]=e>>>8;F[c+10|0]=e>>>16;F[c+11|0]=e>>>24;F[c+12|0]=f;F[c+13|0]=f>>>8;F[c+14|0]=f>>>16;F[c+15|0]=f>>>24;f=I[1517]|I[1518]<<8|(I[1519]<<16|I[1520]<<24);e=I[1513]|I[1514]<<8|(I[1515]<<16|I[1516]<<24);F[c|0]=e;F[c+1|0]=e>>>8;F[c+2|0]=e>>>16;F[c+3|0]=e>>>24;F[c+4|0]=f;F[c+5|0]=f>>>8;F[c+6|0]=f>>>16;F[c+7|0]=f>>>24;c=pb(h,b+20|0,b+8|0,g);if(F[b+19|0]<0){qa(H[b+8>>2])}b:{c:{d:{switch(c|0){case 6:e=H[a+4>>2];h=H[a+12>>2];a=H[H[H[e+4>>2]+8>>2]+(h<<2)>>2];if((fa[H[H[e>>2]+8>>2]](e)|0)!=1){break c}c=b+24|0;f=da-32|0;da=f;i=H[H[H[e+4>>2]+8>>2]+(h<<2)>>2];e:{if((fa[H[H[e>>2]+8>>2]](e)|0)!=1){break e}j=fa[H[H[e>>2]+52>>2]](e)|0;g=fa[H[H[e>>2]+60>>2]](e,h)|0;if(!j|!g){break e}d=fa[H[H[e>>2]+56>>2]](e,h)|0;if(d){e=H[e+56>>2];H[f+20>>2]=d;H[f+16>>2]=e;H[f+28>>2]=g;H[f+24>>2]=g+12;d=ra(128);H[d+4>>2]=i;e=H[c+4>>2];H[d+8>>2]=H[c>>2];H[d+12>>2]=e;e=H[c+12>>2];H[d+16>>2]=H[c+8>>2];H[d+20>>2]=e;H[d+24>>2]=H[c+16>>2];c=H[f+20>>2];H[d+28>>2]=H[f+16>>2];H[d+32>>2]=c;c=H[f+28>>2];H[d+36>>2]=H[f+24>>2];H[d+40>>2]=c;H[d+48>>2]=0;H[d+52>>2]=0;H[d>>2]=7524;c=H[f+20>>2];H[d+56>>2]=H[f+16>>2];H[d+60>>2]=c;e=H[f+28>>2];c=d- -64|0;H[c>>2]=H[f+24>>2];H[c+4>>2]=e;H[d+88>>2]=1065353216;H[d+92>>2]=-1;H[d+80>>2]=-1;H[d+84>>2]=-1;H[d+72>>2]=1;H[d+76>>2]=-1;H[d+44>>2]=7784;H[d+96>>2]=0;H[d+100>>2]=0;H[d+120>>2]=0;H[d+124>>2]=0;H[d+112>>2]=0;H[d+116>>2]=0;H[d+104>>2]=0;H[d+108>>2]=0;break e}d=H[e+56>>2];H[f+20>>2]=j;H[f+16>>2]=d;H[f+28>>2]=g;H[f+24>>2]=g+12;d=ra(128);H[d+4>>2]=i;e=H[c+4>>2];H[d+8>>2]=H[c>>2];H[d+12>>2]=e;e=H[c+12>>2];H[d+16>>2]=H[c+8>>2];H[d+20>>2]=e;H[d+24>>2]=H[c+16>>2];c=H[f+20>>2];H[d+28>>2]=H[f+16>>2];H[d+32>>2]=c;c=H[f+28>>2];H[d+36>>2]=H[f+24>>2];H[d+40>>2]=c;H[d+48>>2]=0;H[d+52>>2]=0;H[d>>2]=9148;c=H[f+20>>2];H[d+56>>2]=H[f+16>>2];H[d+60>>2]=c;e=H[f+28>>2];c=d- -64|0;H[c>>2]=H[f+24>>2];H[c+4>>2]=e;H[d+88>>2]=1065353216;H[d+92>>2]=-1;H[d+80>>2]=-1;H[d+84>>2]=-1;H[d+72>>2]=1;H[d+76>>2]=-1;H[d+44>>2]=9392;H[d+96>>2]=0;H[d+100>>2]=0;H[d+120>>2]=0;H[d+124>>2]=0;H[d+112>>2]=0;H[d+116>>2]=0;H[d+104>>2]=0;H[d+108>>2]=0}da=f+32|0;if(!d){break c}break b;case 0:break d;default:break b}}c=H[a+4>>2];a=H[H[H[c+4>>2]+8>>2]+(H[a+12>>2]<<2)>>2];if((fa[H[H[c>>2]+8>>2]](c)|0)!=1){break c}fa[H[H[c>>2]+8>>2]](c)|0}d=ra(28);H[d+4>>2]=a;a=H[b+28>>2];H[d+8>>2]=H[b+24>>2];H[d+12>>2]=a;a=H[b+36>>2];H[d+16>>2]=H[b+32>>2];H[d+20>>2]=a;H[d+24>>2]=H[b+40>>2];H[d>>2]=9804}da=b+48|0;return d|0}function Sk(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0;H[a+8>>2]=e;q=a+32|0;f=H[q>>2];h=H[a+36>>2]-f>>2;a:{if(h>>>0>>0){Fa(q,e-h|0);break a}if(e>>>0>=h>>>0){break a}H[a+36>>2]=f+(e<<2)}b:{if(!d){break b}g=H[b>>2];c:{if((d|0)<2){h=g;break c}f=1;h=d-1|0;l=h&1;d:{if((d|0)==2){h=g;break d}o=h&-2;d=0;h=g;while(1){i=(f<<2)+b|0;p=H[i+4>>2];k=H[i>>2];j=(k|0)<(h|0);h=j?k:h;i=(h|0)>(p|0);h=i?p:h;g=j?g:(g|0)<(k|0)?k:g;g=i?g:(g|0)<(p|0)?p:g;f=f+2|0;d=d+2|0;if((o|0)!=(d|0)){continue}break}}if(!l){break c}f=H[(f<<2)+b>>2];d=(f|0)<(h|0);h=d?f:h;g=d?g:(f|0)>(g|0)?f:g}H[a+16>>2]=g;H[a+12>>2]=h;d=(g>>31)-((h>>31)+(g>>>0>>0)|0)|0;f=g-h|0;if(!d&f>>>0>2147483646|d){break b}f=f+1|0;H[a+20>>2]=f;d=f>>>1|0;H[a+24>>2]=d;H[a+28>>2]=0-d;if(f&1){break b}H[a+24>>2]=d-1}d=(e&1073741823)!=(e|0)?-1:e<<2;h=ta(ra(d),0,d);d=H[a+56>>2];s=H[d>>2];d=H[d+4>>2]-s|0;if((d|0)>=5){v=H[a+52>>2];t=H[a+48>>2];w=e&-2;x=e&1;u=d>>2;l=u;while(1){o=l;e:{f:{l=l-1|0;if(u>>>0>l>>>0){p=N(e,l);d=H[(l<<2)+s>>2];if((d|0)==-1){break f}g=H[H[t+12>>2]+(d<<2)>>2];if((g|0)==-1){break f}j=H[v>>2];k=H[t>>2];i=H[j+(H[k+(g<<2)>>2]<<2)>>2];d=g+1|0;d=(d>>>0)%3|0?d:g-2|0;if((d|0)!=-1){f=H[k+(d<<2)>>2]}else{f=-1}g:{h:{if((g>>>0)%3|0){g=g-1|0;break h}g=g+2|0;d=-1;if((g|0)==-1){break g}}d=H[k+(g<<2)>>2]}if((i|0)>=(l|0)){break f}f=H[(f<<2)+j>>2];if((f|0)>=(l|0)){break f}d=H[j+(d<<2)>>2];if((d|0)>=(l|0)){break f}i:{if((e|0)<=0){break i}k=N(d,e);j=N(e,f);i=N(e,i);g=0;d=0;if((e|0)!=1){while(1){H[h+(g<<2)>>2]=(H[(g+k<<2)+b>>2]+H[(g+j<<2)+b>>2]|0)-H[(g+i<<2)+b>>2];f=g|1;H[h+(f<<2)>>2]=(H[(f+k<<2)+b>>2]+H[(f+j<<2)+b>>2]|0)-H[(f+i<<2)+b>>2];g=g+2|0;d=d+2|0;if((w|0)!=(d|0)){continue}break}}if(!x){break i}H[h+(g<<2)>>2]=(H[(g+k<<2)+b>>2]+H[(g+j<<2)+b>>2]|0)-H[(g+i<<2)+b>>2]}g=H[a+8>>2];if((g|0)<=0){break e}d=p<<2;p=d+c|0;k=b+d|0;i=H[q>>2];m=0;d=h;while(1){f=i;if((g|0)>0){f=H[q>>2];g=0;while(1){n=g<<2;r=H[n+d>>2];j=H[a+16>>2];j:{if((r|0)>(j|0)){H[f+n>>2]=j;break j}n=f+n|0;j=H[a+12>>2];if((j|0)>(r|0)){H[n>>2]=j;break j}H[n>>2]=r}g=g+1|0;if((g|0)>2]){continue}break}}g=m<<2;d=g+p|0;g=H[g+k>>2]-H[f+g>>2]|0;H[d>>2]=g;k:{if((g|0)>2]){g=g+H[a+20>>2]|0}else{if((g|0)<=H[a+24>>2]){break k}g=g-H[a+20>>2]|0}H[d>>2]=g}d=f;g=H[a+8>>2];m=m+1|0;if((g|0)>(m|0)){continue}break}break e}va();X()}g=H[a+8>>2];if((g|0)<=0){break e}d=p<<2;p=d+c|0;k=b+d|0;d=(N(o-2|0,e)<<2)+b|0;i=H[q>>2];m=0;while(1){f=i;if((g|0)>0){f=H[q>>2];g=0;while(1){n=g<<2;r=H[n+d>>2];j=H[a+16>>2];l:{if((r|0)>(j|0)){H[f+n>>2]=j;break l}n=f+n|0;j=H[a+12>>2];if((j|0)>(r|0)){H[n>>2]=j;break l}H[n>>2]=r}g=g+1|0;if((g|0)>2]){continue}break}}g=m<<2;d=g+p|0;g=H[g+k>>2]-H[f+g>>2]|0;H[d>>2]=g;m:{if((g|0)>2]){g=g+H[a+20>>2]|0}else{if((g|0)<=H[a+24>>2]){break m}g=g-H[a+20>>2]|0}H[d>>2]=g}d=f;g=H[a+8>>2];m=m+1|0;if((g|0)>(m|0)){continue}break}}if((o|0)>2){continue}break}}if((e|0)>0){ta(h,0,e<<2)}g=H[a+8>>2];if((g|0)>0){e=H[a+32>>2];m=0;d=h;while(1){f=e;if((g|0)>0){f=H[q>>2];g=0;while(1){o=g<<2;l=H[o+d>>2];i=H[a+16>>2];n:{if((l|0)>(i|0)){H[f+o>>2]=i;break n}o=f+o|0;i=H[a+12>>2];if((i|0)>(l|0)){H[o>>2]=i;break n}H[o>>2]=l}g=g+1|0;if((g|0)>2]){continue}break}}g=m<<2;d=g+c|0;g=H[b+g>>2]-H[f+g>>2]|0;H[d>>2]=g;o:{if((g|0)>2]){g=g+H[a+20>>2]|0}else{if((g|0)<=H[a+24>>2]){break o}g=g-H[a+20>>2]|0}H[d>>2]=g}d=f;g=H[a+8>>2];m=m+1|0;if((g|0)>(m|0)){continue}break}}qa(h);return 1}function al(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0;H[a+8>>2]=e;q=a+32|0;f=H[q>>2];h=H[a+36>>2]-f>>2;a:{if(h>>>0>>0){Fa(q,e-h|0);break a}if(e>>>0>=h>>>0){break a}H[a+36>>2]=f+(e<<2)}b:{if(!d){break b}g=H[b>>2];c:{if((d|0)<2){h=g;break c}f=1;h=d-1|0;l=h&1;d:{if((d|0)==2){h=g;break d}o=h&-2;d=0;h=g;while(1){i=(f<<2)+b|0;m=H[i+4>>2];p=H[i>>2];j=(p|0)<(h|0);h=j?p:h;i=(h|0)>(m|0);h=i?m:h;g=j?g:(g|0)<(p|0)?p:g;g=i?g:(g|0)<(m|0)?m:g;f=f+2|0;d=d+2|0;if((o|0)!=(d|0)){continue}break}}if(!l){break c}f=H[(f<<2)+b>>2];d=(f|0)<(h|0);h=d?f:h;g=d?g:(f|0)>(g|0)?f:g}H[a+16>>2]=g;H[a+12>>2]=h;d=(g>>31)-((h>>31)+(g>>>0>>0)|0)|0;f=g-h|0;if(!d&f>>>0>2147483646|d){break b}f=f+1|0;H[a+20>>2]=f;d=f>>>1|0;H[a+24>>2]=d;H[a+28>>2]=0-d;if(f&1){break b}H[a+24>>2]=d-1}d=(e&1073741823)!=(e|0)?-1:e<<2;h=ta(ra(d),0,d);d=H[a+56>>2];t=H[d>>2];d=H[d+4>>2]-t|0;if((d|0)>=5){v=H[a+52>>2];s=H[a+48>>2];w=e&-2;x=e&1;u=d>>2;l=u;while(1){o=l;e:{f:{l=l-1|0;if(u>>>0>l>>>0){p=N(e,l);d=H[(l<<2)+t>>2];if((d|0)==-1|H[H[s>>2]+(d>>>3&536870908)>>2]>>>d&1){break f}m=H[H[H[s+64>>2]+12>>2]+(d<<2)>>2];if((m|0)==-1){break f}i=H[v>>2];j=H[s+28>>2];g=H[i+(H[j+(m<<2)>>2]<<2)>>2];if((g|0)>=(l|0)){break f}d=m+1|0;f=H[i+(H[j+(((d>>>0)%3|0?d:m-2|0)<<2)>>2]<<2)>>2];if((f|0)>=(l|0)){break f}d=H[i+(H[j+(m+((m>>>0)%3|0?-1:2)<<2)>>2]<<2)>>2];if((d|0)>=(l|0)){break f}g:{if((e|0)<=0){break g}j=N(d,e);i=N(e,f);f=N(e,g);g=0;k=0;if((e|0)!=1){while(1){H[h+(g<<2)>>2]=(H[(g+j<<2)+b>>2]+H[(g+i<<2)+b>>2]|0)-H[(f+g<<2)+b>>2];d=g|1;H[h+(d<<2)>>2]=(H[(d+j<<2)+b>>2]+H[(d+i<<2)+b>>2]|0)-H[(d+f<<2)+b>>2];g=g+2|0;k=k+2|0;if((w|0)!=(k|0)){continue}break}}if(!x){break g}H[h+(g<<2)>>2]=(H[(g+j<<2)+b>>2]+H[(g+i<<2)+b>>2]|0)-H[(f+g<<2)+b>>2]}g=H[a+8>>2];if((g|0)<=0){break e}d=p<<2;m=d+c|0;p=b+d|0;i=H[q>>2];k=0;d=h;while(1){f=i;if((g|0)>0){f=H[q>>2];g=0;while(1){n=g<<2;r=H[n+d>>2];j=H[a+16>>2];h:{if((r|0)>(j|0)){H[f+n>>2]=j;break h}n=f+n|0;j=H[a+12>>2];if((j|0)>(r|0)){H[n>>2]=j;break h}H[n>>2]=r}g=g+1|0;if((g|0)>2]){continue}break}}g=k<<2;d=g+m|0;g=H[g+p>>2]-H[f+g>>2]|0;H[d>>2]=g;i:{if((g|0)>2]){g=g+H[a+20>>2]|0}else{if((g|0)<=H[a+24>>2]){break i}g=g-H[a+20>>2]|0}H[d>>2]=g}d=f;g=H[a+8>>2];k=k+1|0;if((g|0)>(k|0)){continue}break}break e}va();X()}g=H[a+8>>2];if((g|0)<=0){break e}d=p<<2;m=d+c|0;p=b+d|0;d=(N(o-2|0,e)<<2)+b|0;i=H[q>>2];k=0;while(1){f=i;if((g|0)>0){f=H[q>>2];g=0;while(1){n=g<<2;r=H[n+d>>2];j=H[a+16>>2];j:{if((r|0)>(j|0)){H[f+n>>2]=j;break j}n=f+n|0;j=H[a+12>>2];if((j|0)>(r|0)){H[n>>2]=j;break j}H[n>>2]=r}g=g+1|0;if((g|0)>2]){continue}break}}g=k<<2;d=g+m|0;g=H[g+p>>2]-H[f+g>>2]|0;H[d>>2]=g;k:{if((g|0)>2]){g=g+H[a+20>>2]|0}else{if((g|0)<=H[a+24>>2]){break k}g=g-H[a+20>>2]|0}H[d>>2]=g}d=f;g=H[a+8>>2];k=k+1|0;if((g|0)>(k|0)){continue}break}}if((o|0)>2){continue}break}}if((e|0)>0){ta(h,0,e<<2)}g=H[a+8>>2];if((g|0)>0){e=H[a+32>>2];k=0;d=h;while(1){f=e;if((g|0)>0){f=H[q>>2];g=0;while(1){o=g<<2;l=H[o+d>>2];i=H[a+16>>2];l:{if((l|0)>(i|0)){H[f+o>>2]=i;break l}o=f+o|0;i=H[a+12>>2];if((i|0)>(l|0)){H[o>>2]=i;break l}H[o>>2]=l}g=g+1|0;if((g|0)>2]){continue}break}}g=k<<2;d=g+c|0;g=H[b+g>>2]-H[f+g>>2]|0;H[d>>2]=g;m:{if((g|0)>2]){g=g+H[a+20>>2]|0}else{if((g|0)<=H[a+24>>2]){break m}g=g-H[a+20>>2]|0}H[d>>2]=g}d=f;g=H[a+8>>2];k=k+1|0;if((g|0)>(k|0)){continue}break}}qa(h);return 1}function ae(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=O(0),f=0,g=0,h=0,i=0,j=0,k=0,l=O(0),m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0;if(H[c>>2]==H[c+4>>2]){h=H[d+80>>2];u=da-16|0;da=u;q=H[a+4>>2];j=H[d+48>>2];d=H[H[d>>2]>>2];i=F[b+24|0];c=u+8|0;H[c>>2]=1065353216;L[c>>2]=O(-1<>2];s=ra((i|0)!=(i&1073741823)?-1:i<<2);a:{if(!h|(i|0)<=0){break a}t=d+j|0;l=L[c>>2];k=H[a+8>>2];w=H[b>>2];c=H[b+48>>2];m=H[b+44>>2];v=H[b+40>>2];if(!I[b+84|0]){r=H[b+68>>2];q=i&-2;j=i&1;a=0;while(1){d=H[w>>2];b=zl(v,m,H[r+(o<<2)>>2],0)+c|0;p=sa(s,d+b|0,v);b=0;n=0;if((i|0)!=1){while(1){d=t+(a<<2)|0;g=b<<2;e=O(T(O(O(l*O(L[g+p>>2]-L[k+g>>2]))+O(.5))));b:{if(O(P(e))>2]=f;f=g|4;e=O(T(O(O(l*O(L[f+p>>2]-L[f+k>>2]))+O(.5))));c:{if(O(P(e))>2]=f;b=b+2|0;a=a+2|0;n=n+2|0;if((q|0)!=(n|0)){continue}break}}if(j){d=t+(a<<2)|0;b=b<<2;e=O(T(O(O(l*O(L[b+p>>2]-L[b+k>>2]))+O(.5))));d:{if(O(P(e))>2]=b;a=a+1|0}o=o+1|0;if((h|0)!=(o|0)){continue}break}break a}r=i&-2;q=i&1;a=0;while(1){d=H[w>>2];b=zl(v,m,p,f)+c|0;o=sa(s,d+b|0,v);b=0;n=0;if((i|0)!=1){while(1){d=t+(a<<2)|0;g=b<<2;e=O(T(O(O(l*O(L[g+o>>2]-L[k+g>>2]))+O(.5))));e:{if(O(P(e))>2]=j;j=g|4;e=O(T(O(O(l*O(L[j+o>>2]-L[k+j>>2]))+O(.5))));f:{if(O(P(e))>2]=g;b=b+2|0;a=a+2|0;n=n+2|0;if((r|0)!=(n|0)){continue}break}}if(q){d=t+(a<<2)|0;b=b<<2;e=O(T(O(O(l*O(L[b+o>>2]-L[b+k>>2]))+O(.5))));g:{if(O(P(e))>2]=b;a=a+1|0}b=p+1|0;f=b?f:f+1|0;p=b;if((h|0)!=(b|0)|f){continue}break}}qa(s);da=u+16|0;return 1}u=da-16|0;da=u;f=H[a+4>>2];j=H[d+48>>2];h=H[H[d>>2]>>2];m=F[b+24|0];d=u+8|0;H[d>>2]=1065353216;L[d>>2]=O(-1<>2];t=ra((m|0)!=(m&1073741823)?-1:m<<2);f=H[c+4>>2];s=H[c>>2];h:{if((f|0)==(s|0)|(m|0)<=0){break h}n=j+h|0;c=f-s>>2;w=c>>>0>1?c:1;l=L[d>>2];i=H[a+8>>2];x=H[b>>2];d=H[b+48>>2];v=H[b+44>>2];p=H[b+40>>2];if(I[b+84|0]){q=m&-2;j=m&1;a=0;c=0;while(1){f=H[x>>2];b=zl(p,v,H[s+(c<<2)>>2],0)+d|0;g=sa(t,f+b|0,p);b=0;k=0;if((m|0)!=1){while(1){f=n+(a<<2)|0;r=b<<2;e=O(T(O(O(l*O(L[r+g>>2]-L[i+r>>2]))+O(.5))));i:{if(O(P(e))>2]=h;h=r|4;e=O(T(O(O(l*O(L[h+g>>2]-L[i+h>>2]))+O(.5))));j:{if(O(P(e))>2]=h;b=b+2|0;a=a+2|0;k=k+2|0;if((q|0)!=(k|0)){continue}break}}if(j){f=n+(a<<2)|0;b=b<<2;e=O(T(O(O(l*O(L[b+g>>2]-L[b+i>>2]))+O(.5))));k:{if(O(P(e))>2]=b;a=a+1|0}c=c+1|0;if((w|0)!=(c|0)){continue}break}break h}r=H[b+68>>2];q=m&-2;j=m&1;a=0;c=0;while(1){f=H[x>>2];b=zl(p,v,H[r+(H[s+(c<<2)>>2]<<2)>>2],0)+d|0;o=sa(t,f+b|0,p);b=0;k=0;if((m|0)!=1){while(1){f=n+(a<<2)|0;g=b<<2;e=O(T(O(O(l*O(L[g+o>>2]-L[i+g>>2]))+O(.5))));l:{if(O(P(e))>2]=h;h=g|4;e=O(T(O(O(l*O(L[h+o>>2]-L[i+h>>2]))+O(.5))));m:{if(O(P(e))>2]=g;b=b+2|0;a=a+2|0;k=k+2|0;if((q|0)!=(k|0)){continue}break}}if(j){f=n+(a<<2)|0;b=b<<2;e=O(T(O(O(l*O(L[b+o>>2]-L[b+i>>2]))+O(.5))));n:{if(O(P(e))>2]=b;a=a+1|0}c=c+1|0;if((w|0)!=(c|0)){continue}break}}qa(t);da=u+16|0;return 1}function Tf(a,b){var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0;h=da-32|0;da=h;c=H[a+16>>2];H[a+20>>2]=c;a:{b:{c:{d:{e:{f:{g:{if((c|0)!=H[a+24>>2]){H[c>>2]=b;b=c+4|0;H[a+20>>2]=b;d=c;break g}d=ra(4);H[d>>2]=b;b=d+4|0;H[a+24>>2]=b;H[a+20>>2]=b;H[a+16>>2]=d;if(c){break f}}c=H[a+8>>2];c=H[c+100>>2]-H[c+96>>2]|0;break e}qa(c);b=H[a+20>>2];d=H[a+16>>2];if((b|0)==(d|0)){break d}c=H[a+8>>2];c=H[c+100>>2]-H[c+96>>2]|0}if((c|0)>0){s=a+120|0;k=a+200|0;c=(c|0)/12|0;t=(c|0)>1?c:1;while(1){h:{i:{d=b-4|0;b=H[d>>2];if((b|0)==-1){break i}c=(b>>>0)/3|0;if(H[H[a+28>>2]+(c>>>3&268435452)>>2]>>>c&1){break i}m=0;while(1){H[a+164>>2]=H[a+164>>2]+1;e=b;g=(b>>>0)/3|0;f=(b|0)==-1;n=f?-1:g;b=H[a+28>>2]+(n>>>3&536870908)|0;H[b>>2]=H[b>>2]|1<>2];j:{if((b|0)!=H[a+80>>2]){H[b>>2]=e;H[a+76>>2]=b+4;break j}j=H[a+72>>2];i=b-j|0;c=i>>2;d=c+1|0;if(d>>>0>1073741823){break c}b=i>>1;d=i>>>0<2147483644?b>>>0>d>>>0?b:d:1073741823;if(d){if(d>>>0>1073741823){break a}b=ra(d<<2)}else{b=0}c=b+(c<<2)|0;H[c>>2]=e;if((i|0)>0){sa(b,j,i)}H[a+80>>2]=b+(d<<2);H[a+76>>2]=c+4;H[a+72>>2]=b;if(!j){break j}qa(j)}H[a+320>>2]=e;b=-1;l=H[a+12>>2];b=(e|0)!=-1?H[H[l>>2]+(e<<2)>>2]:b;i=b<<2;q=H[i+H[a+152>>2]>>2];k:{l:{d=H[a+84>>2]+(b>>>3&536870908)|0;c=H[d>>2];b=1<>2]=b|c;if((q|0)==-1){break l}}m:{if(f){break m}b=-1;c=e+1|0;f=(c>>>0)%3|0?c:e-2|0;if((f|0)!=-1){b=H[H[l+12>>2]+(f<<2)>>2]}j=(b>>>0)/3|0;o=e-N(g,3)|0;n:{o:{if(o){d=e-1|0;break o}d=e+2|0;c=-1;if((d|0)==-1){break n}}c=H[H[l+12>>2]+(d<<2)>>2]}p=(c|0)==-1;r=p?-1:(c>>>0)/3|0;p:{if((f|0)==-1){break p}g=H[l+12>>2];d=H[g+(f<<2)>>2];if((d|0)==-1){break p}f=H[a+28>>2];d=(d>>>0)/3|0;if(H[f+(d>>>3&268435452)>>2]>>>d&1){break p}q:{r:{if(o){d=e-1|0;break r}d=e+2|0;if((d|0)==-1){break q}}d=H[(d<<2)+g>>2];if((d|0)==-1){break q}d=(d>>>0)/3|0;if(H[f+(d>>>3&268435452)>>2]>>>d&1){break q}oc(k,1);H[a+168>>2]=H[a+168>>2]+1;s:{if((q|0)==-1){break s}d=H[H[a+152>>2]+i>>2];if(H[H[a+140>>2]+(d>>>3&536870908)>>2]>>>d&1){break s}Fc(a,e,0)}e=H[a+164>>2];H[h+4>>2]=n;d=h+4|0;H[h+16>>2]=d;Wf(h+24|0,s,d,h+16|0);H[H[h+24>>2]+12>>2]=e;d=H[a+20>>2];H[d-4>>2]=c;if((d|0)!=H[a+24>>2]){H[d>>2]=b;H[a+20>>2]=d+4;break h}f=H[a+16>>2];g=d-f|0;d=g>>2;e=d+1|0;if(e>>>0>1073741823){break b}c=g>>1;e=g>>>0<2147483644?c>>>0>e>>>0?c:e:1073741823;if(e){if(e>>>0>1073741823){break a}c=ra(e<<2)}else{c=0}d=c+(d<<2)|0;H[d>>2]=b;if((g|0)>0){sa(c,f,g)}H[a+24>>2]=c+(e<<2);H[a+20>>2]=d+4;H[a+16>>2]=c;if(!f){break h}qa(f);break h}if(!p){Sb(a,H[a+164>>2],0,r)}oc(k,3);break k}b=(b|0)==-1;if(!b){Sb(a,H[a+164>>2],1,b?-1:j)}t:{u:{if(o){b=e-1|0;break u}b=e+2|0;if((b|0)==-1){break t}}b=H[H[H[a+12>>2]+12>>2]+(b<<2)>>2];if((b|0)==-1){break t}b=(b>>>0)/3|0;if(H[H[a+28>>2]+(b>>>3&268435452)>>2]>>>b&1){break t}oc(k,5);b=c;break k}if(p){break m}Sb(a,H[a+164>>2],0,r)}oc(k,7);H[a+20>>2]=H[a+20>>2]-4;break h}oc(k,0);b=-1;if((e|0)==-1){break k}c=e+1|0;c=(c>>>0)%3|0?c:e-2|0;if((c|0)==-1){break k}b=H[H[H[a+12>>2]+12>>2]+(c<<2)>>2]}m=m+1|0;if((t|0)!=(m|0)){continue}break}break h}H[a+20>>2]=d}b=H[a+20>>2];if((b|0)!=H[a+16>>2]){continue}break}break d}f=H[a+28>>2];while(1){c=b-4|0;e=H[c>>2];v:{if((e|0)!=-1){e=(e>>>0)/3|0;if(!(H[f+(e>>>3&268435452)>>2]>>>e&1)){break v}}H[a+20>>2]=c;b=c}if((b|0)!=(d|0)){continue}break}}da=h+32|0;return 1}ua();X()}ua();X()}ya();X()}function kc(a,b,c){var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0;l=da-16|0;da=l;a:{if(!H[a+8>>2]){break a}e=H[a>>2];H[a>>2]=a+4;H[H[a+4>>2]+8>>2]=0;H[a+4>>2]=0;H[a+8>>2]=0;f=H[e+4>>2];e=f?f:e;if(!e){Ka(a,e);break a}h=H[e+8>>2];b:{if(!h){break b}f=H[h>>2];if((f|0)==(e|0)){H[h>>2]=0;d=h;f=H[d+4>>2];if(!f){break b}while(1){d=f;f=H[d>>2];if(f){continue}f=H[d+4>>2];if(f){continue}break}break b}H[h+4>>2]=0;d=h;if(!f){break b}while(1){d=f;f=H[d>>2];if(f){continue}f=H[d+4>>2];if(f){continue}break}}c:{if((b|0)==(c|0)){h=e;break c}f=b;while(1){h=d;H[l+12>>2]=e+28;H[l+8>>2]=e+16;b=f+16|0;d=H[l+8>>2];d:{if((b|0)==(d|0)){break d}i=I[b+11|0];g=i<<24>>24;if(F[d+11|0]>=0){if((g|0)>=0){g=H[b+4>>2];H[d>>2]=H[b>>2];H[d+4>>2]=g;H[d+8>>2]=H[b+8>>2];break d}bd(d,H[b>>2],H[b+4>>2]);break d}j=d;d=(g|0)<0;cd(j,d?H[b>>2]:b,d?H[b+4>>2]:i)}d=H[l+12>>2];g=b+12|0;if((d|0)!=(g|0)){e:{k=I[g+11|0];i=k<<24>>24;if(F[d+11|0]>=0){if((i|0)>=0){b=H[g+4>>2];H[d>>2]=H[g>>2];H[d+4>>2]=b;H[d+8>>2]=H[g+8>>2];break e}bd(d,H[b+12>>2],H[b+16>>2]);break e}j=d;d=(i|0)<0;cd(j,d?H[b+12>>2]:g,d?H[b+16>>2]:k)}}g=H[a+4>>2];f:{if(!g){b=a+4|0;d=b;break f}d=I[e+27|0];b=d<<24>>24<0;i=b?H[e+20>>2]:d;k=b?H[e+16>>2]:e+16|0;while(1){b=g;g=I[b+27|0];d=g<<24>>24<0;g:{h:{i:{g=d?H[b+20>>2]:g;j=g>>>0>>0?g:i;if(j){m=b+16|0;d=Ea(k,d?H[m>>2]:m,j);if(d){break i}}if(g>>>0>i>>>0){break h}break g}if((d|0)>=0){break g}}d=b;g=H[b>>2];if(g){continue}break f}g=H[b+4>>2];if(g){continue}break}d=b+4|0}H[e+8>>2]=b;H[e>>2]=0;H[e+4>>2]=0;H[d>>2]=e;b=e;e=H[H[a>>2]>>2];if(e){H[a>>2]=e;b=H[d>>2]}ub(H[a+4>>2],b);H[a+8>>2]=H[a+8>>2]+1;d=0;j:{if(!h){break j}e=H[h+8>>2];if(!e){break j}b=H[e>>2];if((h|0)==(b|0)){H[e>>2]=0;d=e;b=H[d+4>>2];if(!b){break j}while(1){d=b;b=H[b>>2];if(b){continue}b=H[d+4>>2];if(b){continue}break}break j}H[e+4>>2]=0;d=e;if(!b){break j}while(1){d=b;b=H[b>>2];if(b){continue}b=H[d+4>>2];if(b){continue}break}}e=H[f+4>>2];k:{if(e){while(1){b=e;e=H[b>>2];if(e){continue}break k}}while(1){b=H[f+8>>2];e=H[b>>2]!=(f|0);f=b;if(e){continue}break}}if(!h){break c}f=b;e=h;if((b|0)!=(c|0)){continue}break}}Ka(a,h);if(!d){break a}while(1){e=H[d+8>>2];if(e){d=e;continue}break}Ka(a,d)}if((b|0)!=(c|0)){while(1){f=ra(40);g=f+16|0;l:{if(F[b+27|0]>=0){d=H[b+20>>2];H[g>>2]=H[b+16>>2];H[g+4>>2]=d;H[g+8>>2]=H[b+24>>2];break l}Ia(g,H[b+16>>2],H[b+20>>2])}d=a+4|0;e=f+28|0;m:{if(F[b+39|0]>=0){h=H[b+32>>2];H[e>>2]=H[b+28>>2];H[e+4>>2]=h;H[e+8>>2]=H[b+36>>2];break m}Ia(e,H[b+28>>2],H[b+32>>2])}e=d;h=H[d>>2];n:{if(!h){break n}e=I[f+27|0];d=e<<24>>24<0;i=d?H[f+20>>2]:e;g=d?H[f+16>>2]:g;while(1){d=h;h=I[d+27|0];e=h<<24>>24<0;o:{p:{q:{h=e?H[d+20>>2]:h;k=h>>>0>>0?h:i;if(k){j=d+16|0;e=Ea(g,e?H[j>>2]:j,k);if(e){break q}}if(h>>>0>i>>>0){break p}break o}if((e|0)>=0){break o}}e=d;h=H[d>>2];if(h){continue}break n}h=H[d+4>>2];if(h){continue}break}e=d+4|0}H[f+8>>2]=d;H[f>>2]=0;H[f+4>>2]=0;H[e>>2]=f;d=f;f=H[H[a>>2]>>2];if(f){H[a>>2]=f;d=H[e>>2]}ub(H[a+4>>2],d);H[a+8>>2]=H[a+8>>2]+1;f=H[b+4>>2];r:{if(f){while(1){e=f;f=H[e>>2];if(f){continue}break r}}while(1){e=H[b+8>>2];d=H[e>>2]!=(b|0);b=e;if(d){continue}break}}b=e;if((c|0)!=(b|0)){continue}break}}da=l+16|0}function _e(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0;a:{if((b|0)<0){break a}c=H[a+12>>2];d=H[a+8>>2];if(c-d>>2>>>0<=b>>>0){break a}e=d+(b<<2)|0;d=H[e>>2];i=H[d+60>>2];g=H[d+56>>2];d=e+4|0;b:{if((d|0)!=(c|0)){while(1){h=H[d>>2];H[d>>2]=0;f=H[e>>2];H[e>>2]=h;if(f){Oa(f)}e=e+4|0;d=d+4|0;if((d|0)!=(c|0)){continue}break}c=H[a+12>>2];if((e|0)==(c|0)){break b}}while(1){c=c-4|0;d=H[c>>2];H[c>>2]=0;if(d){Oa(d)}if((c|0)!=(e|0)){continue}break}}H[a+12>>2]=e;f=H[a+4>>2];c:{if(!f|(i|0)<0){break c}c=H[f+24>>2];d=H[f+28>>2];if((c|0)==(d|0)){break c}while(1){if((i|0)==H[H[c>>2]+24>>2]){e=c+4|0;i=H[f+28>>2];d:{if((e|0)!=(i|0)){while(1){h=H[e>>2];H[e>>2]=0;d=H[c>>2];H[c>>2]=h;if(d){lb(d+12|0,H[d+16>>2]);kb(d,H[d+4>>2]);qa(d)}c=c+4|0;e=e+4|0;if((i|0)!=(e|0)){continue}break}e=H[f+28>>2];if((e|0)==(c|0)){break d}}while(1){e=e-4|0;d=H[e>>2];H[e>>2]=0;if(d){lb(d+12|0,H[d+16>>2]);kb(d,H[d+4>>2]);qa(d)}if((c|0)!=(e|0)){continue}break}}H[f+28>>2]=c;break c}c=c+4|0;if((d|0)!=(c|0)){continue}break}}e:{if((g|0)>4){break e}f:{e=N(g,12)+a|0;c=H[e+20>>2];d=H[e+24>>2];if((c|0)==(d|0)){break f}while(1){if(H[c>>2]==(b|0)){break f}c=c+4|0;if((d|0)!=(c|0)){continue}break}break e}if((c|0)==(d|0)){break e}f=c+4|0;i=d-f|0;if((d|0)!=(f|0)){xa(c,f,i)}H[e+24>>2]=c+i}c=H[a+24>>2];e=H[a+20>>2];g:{if((c|0)==(e|0)){break g}d=c-e|0;c=d>>2;f=c>>>0>1?c:1;i=f&1;c=0;if(d>>>0>=8){f=f&-2;d=0;while(1){g=c<<2;h=g+e|0;j=H[h>>2];if((j|0)>(b|0)){H[h>>2]=j-1}g=e+(g|4)|0;h=H[g>>2];if((h|0)>(b|0)){H[g>>2]=h-1}c=c+2|0;d=d+2|0;if((f|0)!=(d|0)){continue}break}}if(!i){break g}c=e+(c<<2)|0;d=H[c>>2];if((d|0)<=(b|0)){break g}H[c>>2]=d-1}c=H[a+36>>2];e=H[a+32>>2];h:{if((c|0)==(e|0)){break h}d=c-e|0;c=d>>2;f=c>>>0>1?c:1;i=f&1;c=0;if(d>>>0>=8){f=f&-2;d=0;while(1){g=c<<2;h=g+e|0;j=H[h>>2];if((j|0)>(b|0)){H[h>>2]=j-1}g=e+(g|4)|0;h=H[g>>2];if((h|0)>(b|0)){H[g>>2]=h-1}c=c+2|0;d=d+2|0;if((f|0)!=(d|0)){continue}break}}if(!i){break h}c=e+(c<<2)|0;d=H[c>>2];if((d|0)<=(b|0)){break h}H[c>>2]=d-1}c=H[a+48>>2];e=H[a+44>>2];i:{if((c|0)==(e|0)){break i}d=c-e|0;c=d>>2;f=c>>>0>1?c:1;i=f&1;c=0;if(d>>>0>=8){f=f&-2;d=0;while(1){g=c<<2;h=g+e|0;j=H[h>>2];if((j|0)>(b|0)){H[h>>2]=j-1}g=e+(g|4)|0;h=H[g>>2];if((h|0)>(b|0)){H[g>>2]=h-1}c=c+2|0;d=d+2|0;if((f|0)!=(d|0)){continue}break}}if(!i){break i}c=e+(c<<2)|0;d=H[c>>2];if((d|0)<=(b|0)){break i}H[c>>2]=d-1}c=H[a+60>>2];e=H[a+56>>2];j:{if((c|0)==(e|0)){break j}d=c-e|0;c=d>>2;f=c>>>0>1?c:1;i=f&1;c=0;if(d>>>0>=8){f=f&-2;d=0;while(1){g=c<<2;h=g+e|0;j=H[h>>2];if((j|0)>(b|0)){H[h>>2]=j-1}g=e+(g|4)|0;h=H[g>>2];if((h|0)>(b|0)){H[g>>2]=h-1}c=c+2|0;d=d+2|0;if((f|0)!=(d|0)){continue}break}}if(!i){break j}c=e+(c<<2)|0;d=H[c>>2];if((d|0)<=(b|0)){break j}H[c>>2]=d-1}c=H[a+72>>2];a=H[a+68>>2];if((c|0)==(a|0)){break a}d=c-a|0;c=d>>2;e=c>>>0>1?c:1;f=e&1;c=0;if(d>>>0>=8){e=e&-2;d=0;while(1){i=c<<2;g=i+a|0;h=H[g>>2];if((h|0)>(b|0)){H[g>>2]=h-1}i=a+(i|4)|0;g=H[i>>2];if((g|0)>(b|0)){H[i>>2]=g-1}c=c+2|0;d=d+2|0;if((e|0)!=(d|0)){continue}break}}if(!f){break a}d=b;a=a+(c<<2)|0;b=H[a>>2];if((d|0)>=(b|0)){break a}H[a>>2]=b-1}}function ab(a,b,c,d,e,f,g,h,i){var j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0;j=da-112|0;da=j;k=i&2147483647;l=e&2147483647;m=l;a:{b:{p=!(b|c);if(!(d|l?l-2147418112>>>0<2147549184:p)){n=k-2147418112|0;if(!h&(n|0)==-2147418112?f|g:(n|0)==-2147418112&(h|0)!=0|n>>>0>2147549184){break b}}if(!(!d&(m|0)==2147418112?p:m>>>0<2147418112)){h=d;i=e|32768;f=b;g=c;break a}if(!(!h&(k|0)==2147418112?!(f|g):k>>>0<2147418112)){i=i|32768;break a}if(!(b|d|(m^2147418112|c))){m=d;d=!(b^f|d^h|(c^g|e^i^-2147483648));h=d?0:m;i=d?2147450880:e;f=d?0:b;g=d?0:c;break a}if(!(f|h|(k^2147418112|g))){break a}if(!(b|d|(c|m))){if(f|h|(g|k)){break a}f=b&f;g=c&g;h=d&h;i=e&i;break a}if(f|h|(g|k)){break b}f=b;g=c;h=d;i=e;break a}l=(k|0)==(m|0);k=l&(d|0)==(h|0)?(c|0)==(g|0)&b>>>0>>0|c>>>0>>0:l&d>>>0>>0|k>>>0>m>>>0;o=k?f:b;l=k?g:c;m=k?i:e;r=m;q=k?h:d;n=m&65535;e=k?e:i;s=e;h=k?d:h;m=e>>>16&32767;p=r>>>16&32767;if(!p){d=!(n|q);e=d<<6;i=Q(d?o:q)+32|0;d=Q(d?l:n);d=e+((d|0)==32?i:d)|0;Sa(j+96|0,o,l,q,n,d-15|0);q=H[j+104>>2];n=H[j+108>>2];o=H[j+96>>2];p=16-d|0;l=H[j+100>>2]}f=k?b:f;g=k?c:g;i=s&65535;if(!m){b=!(h|i);c=b<<6;d=Q(b?f:h)+32|0;b=Q(b?g:i);b=c+((b|0)==32?d:b)|0;Sa(j+80|0,f,g,h,i,b-15|0);m=16-b|0;h=H[j+88>>2];i=H[j+92>>2];g=H[j+84>>2];f=H[j+80>>2]}b=h;k=i<<3|b>>>29;d=b<<3|g>>>29;e=k|524288;b=q;c=n<<3|b>>>29;h=b<<3|l>>>29;i=c;b=f;c=g<<3|b>>>29;b=b<<3;g=r^s;c:{if((m|0)==(p|0)){break c}f=p-m|0;if(f>>>0>127){d=0;e=0;b=1;c=0;break c}Sa(j- -64|0,b,c,d,e,128-f|0);Ib(j+48|0,b,c,d,e,f);b=H[j+48>>2]|(H[j+64>>2]|H[j+72>>2]|(H[j+68>>2]|H[j+76>>2]))!=0;c=H[j+52>>2];d=H[j+56>>2];e=H[j+60>>2]}m=h;q=i|524288;f=o;k=l<<3|f>>>29;n=f<<3;d:{if((g|0)<0){f=0;g=0;h=0;i=0;if(!(b^n|d^m|(c^k|e^q))){break a}o=n-b|0;l=k-((b>>>0>n>>>0)+c|0)|0;f=m-d|0;b=(c|0)==(k|0)&b>>>0>n>>>0|c>>>0>k>>>0;i=(q-((d>>>0>m>>>0)+e|0)|0)-(f>>>0>>0)|0;h=f-b|0;if(i>>>0>524287){break d}b=!(h|i);c=b<<6;d=Q(b?o:h)+32|0;b=Q(b?l:i);b=c+((b|0)==32?d:b)|0;b=b-12|0;Sa(j+32|0,o,l,h,i,b);p=p-b|0;h=H[j+40>>2];i=H[j+44>>2];o=H[j+32>>2];l=H[j+36>>2];break d}k=c+k|0;f=b+n|0;k=f>>>0>>0?k+1|0:k;o=f;l=k;f=(c|0)==(k|0)&b>>>0>f>>>0|c>>>0>k>>>0;c=e+q|0;b=d+m|0;c=b>>>0>>0?c+1|0:c;d=b;b=f+b|0;h=b;i=b>>>0>>0?c+1|0:c;if(!(i&1048576)){break d}o=o&1|((l&1)<<31|o>>>1);c=h;l=c<<31|l>>>1;p=p+1|0;h=(i&1)<<31|c>>>1;i=i>>>1|0}d=0;e=r&-2147483648;if((p|0)>=32767){h=d;i=e|2147418112;f=0;g=0;break a}m=0;e:{if((p|0)>0){m=p;break e}Sa(j+16|0,o,l,h,i,p+127|0);Ib(j,o,l,h,i,1-p|0);o=H[j>>2]|(H[j+16>>2]|H[j+24>>2]|(H[j+20>>2]|H[j+28>>2]))!=0;l=H[j+4>>2];h=H[j+8>>2];i=H[j+12>>2]}c=h<<29;b=l>>>3|0;n=(l&7)<<29|o>>>3;l=o&7;g=l>>>0>4;f=n+g|0;b=b|c;k=f>>>0>>0?b+1|0:b;c=f;g=k;b=(b|0)==(k|0)&c>>>0>>0|b>>>0>k>>>0;c=d|((i&7)<<29|h>>>3);b=b+c|0;i=e|(i>>>3&65535|m<<16);i=b>>>0>>0?i+1|0:i;h=b;f:{if((l|0)==4){c=g+0|0;e=f&1;b=f+e|0;c=b>>>0>>0?c+1|0:c;f=b;g=c;c=(d|0)==(c|0)&b>>>0>>0|c>>>0>>0;b=c+h|0;i=b>>>0>>0?i+1|0:i;h=b;break f}if(!l){break a}}}H[a>>2]=f;H[a+4>>2]=g;H[a+8>>2]=h;H[a+12>>2]=i;da=j+112|0}function qa(a){a=a|0;var b=0,c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0;a:{if(!a){break a}d=a-8|0;b=H[a-4>>2];a=b&-8;f=d+a|0;b:{if(b&1){break b}if(!(b&3)){break a}b=H[d>>2];d=d-b|0;if(d>>>0>>0<=255){e=H[d+8>>2];b=b>>>3|0;c=H[d+12>>2];if((c|0)==(e|0)){i=19368,j=H[4842]&Dl(b),H[i>>2]=j;break b}H[e+12>>2]=c;H[c+8>>2]=e;break b}h=H[d+24>>2];b=H[d+12>>2];c:{if((d|0)!=(b|0)){c=H[d+8>>2];H[c+12>>2]=b;H[b+8>>2]=c;break c}d:{e=d+20|0;c=H[e>>2];if(c){break d}e=d+16|0;c=H[e>>2];if(c){break d}b=0;break c}while(1){g=e;b=c;e=b+20|0;c=H[e>>2];if(c){continue}e=b+16|0;c=H[b+16>>2];if(c){continue}break}H[g>>2]=0}if(!h){break b}e=H[d+28>>2];c=(e<<2)+19672|0;e:{if(H[c>>2]==(d|0)){H[c>>2]=b;if(b){break e}i=19372,j=H[4843]&Dl(e),H[i>>2]=j;break b}H[h+(H[h+16>>2]==(d|0)?16:20)>>2]=b;if(!b){break b}}H[b+24>>2]=h;c=H[d+16>>2];if(c){H[b+16>>2]=c;H[c+24>>2]=b}c=H[d+20>>2];if(!c){break b}H[b+20>>2]=c;H[c+24>>2]=b;break b}b=H[f+4>>2];if((b&3)!=3){break b}H[4844]=a;H[f+4>>2]=b&-2;H[d+4>>2]=a|1;H[a+d>>2]=a;return}if(d>>>0>=f>>>0){break a}b=H[f+4>>2];if(!(b&1)){break a}f:{if(!(b&2)){if(H[4848]==(f|0)){H[4848]=d;a=H[4845]+a|0;H[4845]=a;H[d+4>>2]=a|1;if(H[4847]!=(d|0)){break a}H[4844]=0;H[4847]=0;return}if(H[4847]==(f|0)){H[4847]=d;a=H[4844]+a|0;H[4844]=a;H[d+4>>2]=a|1;H[a+d>>2]=a;return}a=(b&-8)+a|0;g:{if(b>>>0<=255){e=H[f+8>>2];b=b>>>3|0;c=H[f+12>>2];if((c|0)==(e|0)){i=19368,j=H[4842]&Dl(b),H[i>>2]=j;break g}H[e+12>>2]=c;H[c+8>>2]=e;break g}h=H[f+24>>2];b=H[f+12>>2];h:{if((f|0)!=(b|0)){c=H[f+8>>2];H[c+12>>2]=b;H[b+8>>2]=c;break h}i:{e=f+20|0;c=H[e>>2];if(c){break i}e=f+16|0;c=H[e>>2];if(c){break i}b=0;break h}while(1){g=e;b=c;e=b+20|0;c=H[e>>2];if(c){continue}e=b+16|0;c=H[b+16>>2];if(c){continue}break}H[g>>2]=0}if(!h){break g}e=H[f+28>>2];c=(e<<2)+19672|0;j:{if(H[c>>2]==(f|0)){H[c>>2]=b;if(b){break j}i=19372,j=H[4843]&Dl(e),H[i>>2]=j;break g}H[h+(H[h+16>>2]==(f|0)?16:20)>>2]=b;if(!b){break g}}H[b+24>>2]=h;c=H[f+16>>2];if(c){H[b+16>>2]=c;H[c+24>>2]=b}c=H[f+20>>2];if(!c){break g}H[b+20>>2]=c;H[c+24>>2]=b}H[d+4>>2]=a|1;H[a+d>>2]=a;if(H[4847]!=(d|0)){break f}H[4844]=a;return}H[f+4>>2]=b&-2;H[d+4>>2]=a|1;H[a+d>>2]=a}if(a>>>0<=255){b=(a&-8)+19408|0;c=H[4842];a=1<<(a>>>3);k:{if(!(c&a)){H[4842]=a|c;a=b;break k}a=H[b+8>>2]}H[b+8>>2]=d;H[a+12>>2]=d;H[d+12>>2]=b;H[d+8>>2]=a;return}e=31;if(a>>>0<=16777215){b=a>>>8|0;g=b+1048320>>>16&8;b=b<>>16&4;b=b<>>16&2;b=(b<>>15|0)-(c|(e|g))|0;e=(b<<1|a>>>b+21&1)+28|0}H[d+28>>2]=e;H[d+16>>2]=0;H[d+20>>2]=0;g=(e<<2)+19672|0;l:{m:{c=H[4843];b=1<>2]=d;H[d+24>>2]=g;break n}e=a<<((e|0)==31?0:25-(e>>>1|0)|0);b=H[g>>2];while(1){c=b;if((H[b+4>>2]&-8)==(a|0)){break m}b=e>>>29|0;e=e<<1;g=c+(b&4)|0;b=H[g+16>>2];if(b){continue}break}H[g+16>>2]=d;H[d+24>>2]=c}H[d+12>>2]=d;H[d+8>>2]=d;break l}a=H[c+8>>2];H[a+12>>2]=d;H[c+8>>2]=d;H[d+24>>2]=0;H[d+12>>2]=c;H[d+8>>2]=a}a=H[4850]-1|0;H[4850]=a?a:-1}}function tk(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0;k=da-48|0;da=k;d=H[a+8>>2];if(d-31>>>0>=4294967267){H[a+76>>2]=d;e=-1<>2]=d;H[a+80>>2]=e^-1;H[a+92>>2]=(d|0)/2;L[a+88>>2]=O(2)/O(d|0)}H[a+52>>2]=f;o=a+96|0;Ca(o);d=H[a+40>>2];e=H[d>>2];d=H[d+4>>2];H[k+16>>2]=0;H[k+8>>2]=0;H[k+12>>2]=0;a:{d=d-e|0;if((d|0)>0){p=a+8|0;q=a+44|0;d=d>>>2|0;r=d>>>0>1?d:1;s=c+4|0;while(1){e=H[a+40>>2];d=H[e>>2];if(H[e+4>>2]-d>>2>>>0<=n>>>0){break a}Rc(q,H[d+(n<<2)>>2],k+8|0);f=H[k+12>>2];d=f>>31;e=H[k+8>>2];i=e>>31;l=H[k+16>>2];g=l>>31;g=(g^l)-g|0;i=g+((d^f)-d+((e^i)-i)|0)|0;d=0;d=g>>>0>i>>>0?1:d;b:{if(!(d|i)){j=H[a+92>>2];h=j;break b}j=H[a+92>>2];m=j>>31;f=Al(zl(j,m,f,f>>31),ea,i,d);g=f>>31;h=Al(zl(j,m,e,e>>31),ea,i,d);d=h>>31;d=(f^g)-g+((d^h)-d)|0;l=(l|0)<0?d-j|0:j-d|0}c:{if((h|0)>=0){i=f+j|0;g=j+l|0;break c}d:{if((f|0)<0){d=l>>31;i=(d^l)-d|0;break d}d=l>>31;i=H[a+84>>2]+(d-(d^l)|0)|0}if((l|0)<0){d=f>>31;g=(d^f)-d|0;break c}d=f>>31;g=H[a+84>>2]+(d-(d^f)|0)|0}d=H[a+84>>2];m=d;e=d;e:{if(!(g|i)){break e}if(!((d|0)!=(g|0)|i)){m=g;e=g;break e}if(!((d|0)!=(i|0)|g)){m=i;e=i;break e}if(!((g|0)<=(j|0)|i)){m=(j<<1)-g|0;e=0;break e}if(!((d|0)!=(i|0)|(g|0)>=(j|0))){m=(j<<1)-g|0;e=i;break e}if(!((d|0)!=(g|0)|(i|0)>=(j|0))){m=g;e=(j<<1)-i|0;break e}if(g){m=g;e=i;break e}m=0;e=i;if((e|0)<=(j|0)){break e}e=(j<<1)-i|0}i=e;H[k+16>>2]=0-l;H[k+12>>2]=0-f;H[k+8>>2]=0-h;f:{if((h|0)<=0){h=j-l|0;e=j-f|0;break f}e=f>>31;e=(e^f)-e|0;h=(l|0)>0?e:d-e|0;e=l>>31;e=(e^l)-e|0;e=(f|0)>0?e:d-e|0}g:{if(!(e|h)){h=d;break g}if(!((d|0)!=(h|0)|e)){h=d;break g}f=(d|0)!=(e|0);if(!(h|f)){h=d;break g}if(!((h|0)<=(j|0)|e)){h=(j<<1)-h|0;d=0;break g}if(!((h|0)>=(j|0)|f)){h=(j<<1)-h|0;break g}if(!((d|0)!=(h|0)|(e|0)>=(j|0))){h=d;d=(j<<1)-e|0;break g}if(h){d=e;break g}h=0;if((e|0)<=(j|0)){d=e;break g}d=(j<<1)-e|0}e=(n<<3)+b|0;f=H[e>>2];g=H[e+4>>2];H[k+28>>2]=m;H[k+24>>2]=i;H[k+32>>2]=f;H[k+36>>2]=g;i=k+40|0;g=k+32|0;m=k+24|0;_a(i,p,g,m);f=H[k+44>>2];l=H[k+40>>2];j=H[e>>2];e=H[e+4>>2];H[k+28>>2]=h;H[k+24>>2]=d;H[k+32>>2]=j;H[k+36>>2]=e;_a(i,p,g,m);d=H[k+44>>2];h=H[k+40>>2];e=H[a+92>>2];h:{if((e|0)<(l|0)){l=l-H[a+80>>2]|0;break h}if((0-e|0)<=(l|0)){break h}l=H[a+80>>2]+l|0}i:{if((e|0)<(f|0)){f=f-H[a+80>>2]|0;break i}if((0-e|0)<=(f|0)){break i}f=H[a+80>>2]+f|0}j:{if((e|0)<(h|0)){h=h-H[a+80>>2]|0;break j}if((0-e|0)<=(h|0)){break j}h=H[a+80>>2]+h|0}i=n<<1;k:{if((d|0)>(e|0)){d=d-H[a+80>>2]|0;break k}if((0-e|0)<=(d|0)){break k}d=H[a+80>>2]+d|0}e=f>>31;e=(e^f)-e|0;g=l>>31;g=(g^l)-g|0;e=g>>>0>(e^2147483647)>>>0?2147483647:e+g|0;g=d>>31;g=(g^d)-g|0;m=h>>31;m=(m^h)-m|0;g=m>>>0>(g^2147483647)>>>0?2147483647:g+m|0;Ga(o,e>>>0>=g>>>0);i=i<<2;e=e>>>0>>0;g=e?l:h;H[i+c>>2]=(H[a+80>>2]&g>>31)+g;d=e?f:d;H[i+s>>2]=(H[a+80>>2]&d>>31)+d;n=n+1|0;if((r|0)!=(n|0)){continue}break}}da=k+48|0;return 1}va();X()}function hk(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0;k=da-48|0;da=k;d=H[a+8>>2];if(d-31>>>0>=4294967267){H[a+76>>2]=d;e=-1<>2]=d;H[a+80>>2]=e^-1;H[a+92>>2]=(d|0)/2;L[a+88>>2]=O(2)/O(d|0)}H[a+52>>2]=f;o=a+96|0;Ca(o);d=H[a+40>>2];e=H[d>>2];d=H[d+4>>2];H[k+16>>2]=0;H[k+8>>2]=0;H[k+12>>2]=0;a:{d=d-e|0;if((d|0)>0){p=a+8|0;q=a+44|0;d=d>>>2|0;r=d>>>0>1?d:1;s=c+4|0;while(1){e=H[a+40>>2];d=H[e>>2];if(H[e+4>>2]-d>>2>>>0<=n>>>0){break a}Pc(q,H[d+(n<<2)>>2],k+8|0);f=H[k+12>>2];d=f>>31;e=H[k+8>>2];i=e>>31;l=H[k+16>>2];g=l>>31;g=(g^l)-g|0;i=g+((d^f)-d+((e^i)-i)|0)|0;d=0;d=g>>>0>i>>>0?1:d;b:{if(!(d|i)){j=H[a+92>>2];h=j;break b}j=H[a+92>>2];m=j>>31;f=Al(zl(j,m,f,f>>31),ea,i,d);g=f>>31;h=Al(zl(j,m,e,e>>31),ea,i,d);d=h>>31;d=(f^g)-g+((d^h)-d)|0;l=(l|0)<0?d-j|0:j-d|0}c:{if((h|0)>=0){i=f+j|0;g=j+l|0;break c}d:{if((f|0)<0){d=l>>31;i=(d^l)-d|0;break d}d=l>>31;i=H[a+84>>2]+(d-(d^l)|0)|0}if((l|0)<0){d=f>>31;g=(d^f)-d|0;break c}d=f>>31;g=H[a+84>>2]+(d-(d^f)|0)|0}d=H[a+84>>2];m=d;e=d;e:{if(!(g|i)){break e}if(!((d|0)!=(g|0)|i)){m=g;e=g;break e}if(!((d|0)!=(i|0)|g)){m=i;e=i;break e}if(!((g|0)<=(j|0)|i)){m=(j<<1)-g|0;e=0;break e}if(!((d|0)!=(i|0)|(g|0)>=(j|0))){m=(j<<1)-g|0;e=i;break e}if(!((d|0)!=(g|0)|(i|0)>=(j|0))){m=g;e=(j<<1)-i|0;break e}if(g){m=g;e=i;break e}m=0;e=i;if((e|0)<=(j|0)){break e}e=(j<<1)-i|0}i=e;H[k+16>>2]=0-l;H[k+12>>2]=0-f;H[k+8>>2]=0-h;f:{if((h|0)<=0){h=j-l|0;e=j-f|0;break f}e=f>>31;e=(e^f)-e|0;h=(l|0)>0?e:d-e|0;e=l>>31;e=(e^l)-e|0;e=(f|0)>0?e:d-e|0}g:{if(!(e|h)){h=d;break g}if(!((d|0)!=(h|0)|e)){h=d;break g}f=(d|0)!=(e|0);if(!(h|f)){h=d;break g}if(!((h|0)<=(j|0)|e)){h=(j<<1)-h|0;d=0;break g}if(!((h|0)>=(j|0)|f)){h=(j<<1)-h|0;break g}if(!((d|0)!=(h|0)|(e|0)>=(j|0))){h=d;d=(j<<1)-e|0;break g}if(h){d=e;break g}h=0;if((e|0)<=(j|0)){d=e;break g}d=(j<<1)-e|0}e=(n<<3)+b|0;f=H[e>>2];g=H[e+4>>2];H[k+28>>2]=m;H[k+24>>2]=i;H[k+32>>2]=f;H[k+36>>2]=g;i=k+40|0;g=k+32|0;m=k+24|0;_a(i,p,g,m);f=H[k+44>>2];l=H[k+40>>2];j=H[e>>2];e=H[e+4>>2];H[k+28>>2]=h;H[k+24>>2]=d;H[k+32>>2]=j;H[k+36>>2]=e;_a(i,p,g,m);d=H[k+44>>2];h=H[k+40>>2];e=H[a+92>>2];h:{if((e|0)<(l|0)){l=l-H[a+80>>2]|0;break h}if((0-e|0)<=(l|0)){break h}l=H[a+80>>2]+l|0}i:{if((e|0)<(f|0)){f=f-H[a+80>>2]|0;break i}if((0-e|0)<=(f|0)){break i}f=H[a+80>>2]+f|0}j:{if((e|0)<(h|0)){h=h-H[a+80>>2]|0;break j}if((0-e|0)<=(h|0)){break j}h=H[a+80>>2]+h|0}i=n<<1;k:{if((d|0)>(e|0)){d=d-H[a+80>>2]|0;break k}if((0-e|0)<=(d|0)){break k}d=H[a+80>>2]+d|0}e=f>>31;e=(e^f)-e|0;g=l>>31;g=(g^l)-g|0;e=g>>>0>(e^2147483647)>>>0?2147483647:e+g|0;g=d>>31;g=(g^d)-g|0;m=h>>31;m=(m^h)-m|0;g=m>>>0>(g^2147483647)>>>0?2147483647:g+m|0;Ga(o,e>>>0>=g>>>0);i=i<<2;e=e>>>0>>0;g=e?l:h;H[i+c>>2]=(H[a+80>>2]&g>>31)+g;d=e?f:d;H[i+s>>2]=(H[a+80>>2]&d>>31)+d;n=n+1|0;if((r|0)!=(n|0)){continue}break}}da=k+48|0;return 1}va();X()}function Ng(a,b,c,d,e,f){var g=0,h=0,i=0,j=0,k=0;g=da-16|0;da=g;H[g+12>>2]=b;b=ra(32);H[g>>2]=b;H[g+4>>2]=17;H[g+8>>2]=-2147483616;F[b+17|0]=0;F[b+16|0]=I[1261];i=I[1257]|I[1258]<<8|(I[1259]<<16|I[1260]<<24);h=I[1253]|I[1254]<<8|(I[1255]<<16|I[1256]<<24);F[b+8|0]=h;F[b+9|0]=h>>>8;F[b+10|0]=h>>>16;F[b+11|0]=h>>>24;F[b+12|0]=i;F[b+13|0]=i>>>8;F[b+14|0]=i>>>16;F[b+15|0]=i>>>24;i=I[1249]|I[1250]<<8|(I[1251]<<16|I[1252]<<24);h=I[1245]|I[1246]<<8|(I[1247]<<16|I[1248]<<24);F[b|0]=h;F[b+1|0]=h>>>8;F[b+2|0]=h>>>16;F[b+3|0]=h>>>24;F[b+4|0]=i;F[b+5|0]=i>>>8;F[b+6|0]=i>>>16;F[b+7|0]=i>>>24;i=a+4|0;tb(sc(i,g+12|0),g,c);if(F[g+11|0]<0){qa(H[g>>2])}a=ra(32);H[g>>2]=a;H[g+4>>2]=19;H[g+8>>2]=-2147483616;F[a+19|0]=0;b=I[1429]|I[1430]<<8|(I[1431]<<16|I[1432]<<24);F[a+15|0]=b;F[a+16|0]=b>>>8;F[a+17|0]=b>>>16;F[a+18|0]=b>>>24;b=I[1426]|I[1427]<<8|(I[1428]<<16|I[1429]<<24);c=I[1422]|I[1423]<<8|(I[1424]<<16|I[1425]<<24);F[a+8|0]=c;F[a+9|0]=c>>>8;F[a+10|0]=c>>>16;F[a+11|0]=c>>>24;F[a+12|0]=b;F[a+13|0]=b>>>8;F[a+14|0]=b>>>16;F[a+15|0]=b>>>24;b=I[1418]|I[1419]<<8|(I[1420]<<16|I[1421]<<24);c=I[1414]|I[1415]<<8|(I[1416]<<16|I[1417]<<24);F[a|0]=c;F[a+1|0]=c>>>8;F[a+2|0]=c>>>16;F[a+3|0]=c>>>24;F[a+4|0]=b;F[a+5|0]=b>>>8;F[a+6|0]=b>>>16;F[a+7|0]=b>>>24;c=sc(i,g+12|0);a=da-48|0;da=a;H[a+24>>2]=0;H[a+16>>2]=0;H[a+20>>2]=0;a:{if((d|0)<=0){break a}ad(a,L[e>>2]);b=I[a+11|0];h=b<<24>>24<0;dd(a+16|0,h?H[a>>2]:a,h?H[a+4>>2]:b);if(F[a+11|0]<0){qa(H[a>>2])}b=1;if((d|0)==1){break a}while(1){h=a+16|0;dd(h,2020,sb(2020));ad(a,L[(b<<2)+e>>2]);k=h;h=I[a+11|0];j=h<<24>>24<0;dd(k,j?H[a>>2]:a,j?H[a+4>>2]:h);if(F[a+11|0]<0){qa(H[a>>2])}b=b+1|0;if((d|0)!=(b|0)){continue}break}}H[a+40>>2]=g;Zd(a,c,g,a+40|0);b=H[a>>2]+28|0;b:{if((b|0)==(a+16|0)){break b}d=I[a+27|0];c=d<<24>>24;if(F[b+11|0]>=0){if((c|0)>=0){c=H[a+20>>2];H[b>>2]=H[a+16>>2];H[b+4>>2]=c;H[b+8>>2]=H[a+24>>2];break b}bd(b,H[a+16>>2],H[a+20>>2]);break b}e=b;b=(c|0)<0;cd(e,b?H[a+16>>2]:a+16|0,b?H[a+20>>2]:d)}if(F[a+27|0]<0){qa(H[a+16>>2])}da=a+48|0;if(F[g+11|0]<0){qa(H[g>>2])}a=ra(32);H[g>>2]=a;H[g+4>>2]=18;H[g+8>>2]=-2147483616;F[a+18|0]=0;b=I[1547]|I[1548]<<8;F[a+16|0]=b;F[a+17|0]=b>>>8;b=I[1543]|I[1544]<<8|(I[1545]<<16|I[1546]<<24);c=I[1539]|I[1540]<<8|(I[1541]<<16|I[1542]<<24);F[a+8|0]=c;F[a+9|0]=c>>>8;F[a+10|0]=c>>>16;F[a+11|0]=c>>>24;F[a+12|0]=b;F[a+13|0]=b>>>8;F[a+14|0]=b>>>16;F[a+15|0]=b>>>24;b=I[1535]|I[1536]<<8|(I[1537]<<16|I[1538]<<24);c=I[1531]|I[1532]<<8|(I[1533]<<16|I[1534]<<24);F[a|0]=c;F[a+1|0]=c>>>8;F[a+2|0]=c>>>16;F[a+3|0]=c>>>24;F[a+4|0]=b;F[a+5|0]=b>>>8;F[a+6|0]=b>>>16;F[a+7|0]=b>>>24;b=sc(i,g+12|0);a=da-48|0;da=a;ad(a+8|0,f);H[a+32>>2]=g;Zd(a+40|0,b,g,a+32|0);b=H[a+40>>2];if(F[b+39|0]<0){qa(H[b+28>>2])}c=H[a+12>>2];H[b+28>>2]=H[a+8>>2];H[b+32>>2]=c;H[b+36>>2]=H[a+16>>2];da=a+48|0;if(F[g+11|0]<0){qa(H[g>>2])}da=g+16|0}function Xf(a,b){var c=0,d=0,e=0,f=0,g=0,h=0,i=0;c=H[a+8>>2];e=H[a+4>>2];if((c-e|0)/136>>>0>=b>>>0){a:{if(!b){break a}d=e;f=b&7;if(f){c=0;while(1){Ua(d);d=d+136|0;c=c+1|0;if((f|0)!=(c|0)){continue}break}}e=N(b,136)+e|0;if((b-1&536870911)>>>0<7){break a}while(1){Ua(d);Ua(d+136|0);Ua(d+272|0);Ua(d+408|0);Ua(d+544|0);Ua(d+680|0);Ua(d+816|0);Ua(d+952|0);d=d+1088|0;if((e|0)!=(d|0)){continue}break}}H[a+4>>2]=e;return}b:{c:{d:{f=H[a>>2];h=(e-f|0)/136|0;d=h+b|0;if(d>>>0<31580642){e=0;c=(c-f|0)/136|0;f=c<<1;f=c>>>0<15790320?d>>>0>>0?f:d:31580641;if(f){if(f>>>0>=31580642){break d}g=ra(N(f,136))}c=N(h,136)+g|0;d=c;h=b&7;if(h){d=c;while(1){Ua(d);d=d+136|0;e=e+1|0;if((h|0)!=(e|0)){continue}break}}h=N(b,136)+c|0;if((b-1&536870911)>>>0>=7){while(1){Ua(d);Ua(d+136|0);Ua(d+272|0);Ua(d+408|0);Ua(d+544|0);Ua(d+680|0);Ua(d+816|0);Ua(d+952|0);d=d+1088|0;if((h|0)!=(d|0)){continue}break}}f=N(f,136)+g|0;d=H[a+4>>2];e=H[a>>2];if((d|0)==(e|0)){break c}while(1){c=c-136|0;d=d-136|0;b=d;H[c>>2]=H[b>>2];H[c+4>>2]=H[b+4>>2];H[c+8>>2]=H[b+8>>2];H[c+12>>2]=H[b+12>>2];H[b+12>>2]=0;H[b+4>>2]=0;H[b+8>>2]=0;H[c+16>>2]=H[b+16>>2];H[c+20>>2]=H[b+20>>2];H[c+24>>2]=H[b+24>>2];H[b+24>>2]=0;H[b+16>>2]=0;H[b+20>>2]=0;g=I[b+28|0];H[c+40>>2]=0;H[c+32>>2]=0;H[c+36>>2]=0;F[c+28|0]=g;H[c+32>>2]=H[b+32>>2];H[c+36>>2]=H[b+36>>2];H[c+40>>2]=H[b+40>>2];H[b+40>>2]=0;H[b+32>>2]=0;H[b+36>>2]=0;H[c+52>>2]=0;H[c+44>>2]=0;H[c+48>>2]=0;H[c+44>>2]=H[b+44>>2];H[c+48>>2]=H[b+48>>2];H[c+52>>2]=H[b+52>>2];H[b+52>>2]=0;H[b+44>>2]=0;H[b+48>>2]=0;g=c- -64|0;H[g>>2]=0;H[c+56>>2]=0;H[c+60>>2]=0;H[c+56>>2]=H[b+56>>2];H[c+60>>2]=H[b+60>>2];i=g;g=b- -64|0;H[i>>2]=H[g>>2];H[g>>2]=0;H[b+56>>2]=0;H[b+60>>2]=0;H[c+68>>2]=H[b+68>>2];g=H[b+72>>2];H[c+84>>2]=0;H[c+76>>2]=0;H[c+80>>2]=0;H[c+72>>2]=g;H[c+76>>2]=H[b+76>>2];H[c+80>>2]=H[b+80>>2];H[c+84>>2]=H[b+84>>2];H[b+84>>2]=0;H[b+76>>2]=0;H[b+80>>2]=0;H[c+96>>2]=0;H[c+88>>2]=0;H[c+92>>2]=0;H[c+88>>2]=H[b+88>>2];H[c+92>>2]=H[b+92>>2];H[c+96>>2]=H[b+96>>2];H[b+96>>2]=0;H[b+88>>2]=0;H[b+92>>2]=0;g=I[b+100|0];H[c+112>>2]=0;H[c+104>>2]=0;H[c+108>>2]=0;F[c+100|0]=g;H[c+104>>2]=H[b+104>>2];H[c+108>>2]=H[b+108>>2];H[c+112>>2]=H[b+112>>2];H[b+112>>2]=0;H[b+104>>2]=0;H[b+108>>2]=0;H[c+124>>2]=0;H[c+116>>2]=0;H[c+120>>2]=0;H[c+116>>2]=H[b+116>>2];H[c+120>>2]=H[b+120>>2];H[c+124>>2]=H[b+124>>2];H[b+124>>2]=0;H[b+116>>2]=0;H[b+120>>2]=0;H[c+128>>2]=H[b+128>>2];H[c+132>>2]=H[b+132>>2];if((b|0)!=(e|0)){continue}break}H[a+8>>2]=f;d=H[a+4>>2];H[a+4>>2]=h;e=H[a>>2];H[a>>2]=c;if((d|0)==(e|0)){break b}while(1){a=d-136|0;b=H[a+116>>2];if(b){H[d-16>>2]=b;qa(b)}b=H[d-32>>2];if(b){H[d-28>>2]=b;qa(b)}pc(d-132|0);d=a;if((e|0)!=(d|0)){continue}break}break b}ua();X()}ya();X()}H[a+8>>2]=f;H[a+4>>2]=h;H[a>>2]=c}if(e){qa(e)}}function Of(a,b){var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0;if((b|0)==-1){return 1}c=(b>>>0)/3|0;if(!(H[H[a+24>>2]+(c>>>3&268435452)>>2]>>>c&1)){d=H[a+48>>2];H[a+52>>2]=d;a:{if((d|0)!=H[a+56>>2]){H[d>>2]=b;H[a+52>>2]=d+4;break a}e=ra(4);H[e>>2]=b;f=e+4|0;H[a+56>>2]=f;H[a+52>>2]=f;H[a+48>>2]=e;if(!d){break a}qa(d)}f=H[H[a+4>>2]+28>>2];d=b+1|0;e=(d>>>0)%3|0?d:b-2|0;d=H[f+(e<<2)>>2];if((d|0)==-1){return 0}g=(b-N(c,3)|0?-1:2)+b|0;c=H[f+(g<<2)>>2];if((c|0)==-1){return 0}b=H[a+36>>2];f=b+(d>>>3&536870908)|0;h=H[f>>2];i=1<>2]=h|i;mb(a+8|0,d,e);b=H[a+36>>2]}b=(c>>>3&536870908)+b|0;d=H[b>>2];e=1<>2]=d|e;mb(a+8|0,c,g)}c=H[a+52>>2];if((c|0)==H[a+48>>2]){return 1}k=a+8|0;while(1){b:{c:{c=c-4|0;b=H[c>>2];if((b|0)==-1){break c}d=(b>>>0)/3|0;e=H[a+24>>2]+(d>>>3&268435452)|0;f=H[e>>2];d=1<>2]=d|f;e=H[a+4>>2];d=H[H[e+28>>2]+(b<<2)>>2];if((d|0)==-1){return 0}while(1){c=b;d:{e:{f=H[a+36>>2]+(d>>>3&536870908)|0;g=H[f>>2];h=1<>2]+(d<<2)>>2];g:{if((b|0)==-1){break g}i=b+1|0;b=(i>>>0)%3|0?i:b-2|0;if((b|0)==-1|H[H[e>>2]+(b>>>3&536870908)>>2]>>>b&1){break g}b=H[H[H[e+64>>2]+12>>2]+(b<<2)>>2];if((b|0)!=-1){break f}}H[f>>2]=g|h;mb(k,d,c);break e}H[f>>2]=g|h;mb(k,d,c);d=b+1|0;if((((d>>>0)%3|0?d:b-2|0)|0)==-1){break e}b=-1;e=H[a+4>>2];h:{if((c|0)==-1){break h}d=c+1|0;d=(d>>>0)%3|0?d:c-2|0;if((d|0)==-1|H[H[e>>2]+(d>>>3&536870908)>>2]>>>d&1){break h}b=H[H[H[e+64>>2]+12>>2]+(d<<2)>>2]}d=(b>>>0)/3|0;h=1<>2];i=d>>>5|0;f=H[c+(i<<2)>>2];break d}i:{j:{if((c|0)==-1){break j}d=-1;b=c+1|0;b=(b>>>0)%3|0?b:c-2|0;e=H[a+4>>2];if(!((b|0)==-1|H[H[e>>2]+(b>>>3&536870908)>>2]>>>b&1)){d=H[H[H[e+64>>2]+12>>2]+(b<<2)>>2]}k:{l:{if((c>>>0)%3|0){c=c-1|0;break l}c=c+2|0;b=-1;if((c|0)==-1){break k}}b=-1;if(H[H[e>>2]+(c>>>3&536870908)>>2]>>>c&1){break k}b=H[H[H[e+64>>2]+12>>2]+(c<<2)>>2]}j=(b|0)==-1;g=j?-1:(b>>>0)/3|0;if((d|0)!=-1){c=H[a+24>>2];h=(d>>>0)/3|0;i=h>>>5|0;f=H[c+(i<<2)>>2];h=1<>2];i=g>>>5|0;f=H[c+(i<<2)>>2];if(!(h&f)){break d}}c=H[a+52>>2]-4|0;H[a+52>>2]=c;break b}if(j){b=d;break d}if(H[(g>>>3&536870908)+c>>2]>>>g&1){b=d;break d}c=H[a+52>>2];H[c-4>>2]=b;if((c|0)!=H[a+56>>2]){H[c>>2]=d;c=c+4|0;break c}m:{f=H[a+48>>2];e=c-f|0;c=e>>2;b=c+1|0;if(b>>>0<1073741824){g=e>>1;g=e>>>0<2147483644?b>>>0>>0?g:b:1073741823;if(g){if(g>>>0>=1073741824){break m}b=ra(g<<2)}else{b=0}c=b+(c<<2)|0;H[c>>2]=d;c=c+4|0;if((e|0)>0){sa(b,f,e)}H[a+56>>2]=b+(g<<2);H[a+52>>2]=c;H[a+48>>2]=b;if(!f){break b}qa(f);c=H[a+52>>2];break b}ua();X()}ya();X()}H[(i<<2)+c>>2]=f|h;d=H[H[e+28>>2]+(b<<2)>>2];if((d|0)!=-1){continue}break}return 0}H[a+52>>2]=c}if(H[a+48>>2]!=(c|0)){continue}break}}return 1}function Kj(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0;e=da+-64|0;da=e;a:{b:{c:{d:{if(!I[a+288|0]){break d}c=1;h=fa[H[H[a>>2]+40>>2]](a)|0;if((H[h+12>>2]-H[h+8>>2]|0)<=0){break d}lc(H[H[(fa[H[H[a>>2]+40>>2]](a)|0)+8>>2]>>2],b);break c}c=b<<2;f=H[c+H[H[(fa[H[H[a>>2]+40>>2]](a)|0)+56>>2]+84>>2]>>2];i=H[c+H[H[(fa[H[H[a>>2]+40>>2]](a)|0)+4>>2]+8>>2]>>2];h=-1;c=H[a+176>>2];d=H[a+172>>2];e:{if((c|0)==(d|0)){break e}c=(c-d|0)/136|0;g=c>>>0>1?c:1;c=0;while(1){if(H[d+N(c,136)>>2]==(b|0)){h=c;break e}c=c+1|0;if((g|0)!=(c|0)){continue}break}}f:{g:{h:{i:{j:{k:{if(!I[a+288|0]){c=H[i+56>>2];if(!(!f|!c)&(!I[(d+N(h,136)|0)+28|0]|(f|0)!=1)){break i}if(c){break k}}c=a+40|0;break j}c=H[a+12>>2];f=H[c+28>>2];c=H[c+24>>2];H[e>>2]=-1;k=d;d=N(h,136);g=k+d|0;xb(g+116|0,f-c>>2,e);F[(d+H[a+172>>2]|0)+100|0]=0;c=g+104|0}d=0;if(eb(H[(fa[H[H[a>>2]+40>>2]](a)|0)+48>>2])|H[i+56>>2]){break h}if(!I[a+288|0]){d=1;c=Jc(a,c);break g}d=H[a+8>>2];f=H[d+12>>2]-H[d+8>>2]|0;d=(f|0)<5;if((f|0)>4){break h}c=Jc(a,c);break g}d=d+N(h,136)|0;c=H[d+56>>2];f=H[d+60>>2];H[e>>2]=-1;xb(d+116|0,f-c>>2,e);c=ra(80);f=H[a+8>>2];H[c+12>>2]=0;H[c+16>>2]=0;H[c>>2]=11984;H[c+4>>2]=0;H[c+20>>2]=0;H[c+24>>2]=0;H[c+28>>2]=0;H[c+32>>2]=0;H[c+36>>2]=0;H[c+40>>2]=0;H[c+44>>2]=0;H[c+48>>2]=0;H[c+52>>2]=0;H[c+76>>2]=0;i=d+104|0;H[c+72>>2]=i;H[c+68>>2]=f;H[c- -64>>2]=0;g=c+56|0;H[g>>2]=0;H[g+4>>2]=0;H[c+8>>2]=10876;H[e+40>>2]=0;H[e+44>>2]=0;H[e+32>>2]=0;H[e+36>>2]=0;j=e+24|0;H[j>>2]=0;H[j+4>>2]=0;H[e+16>>2]=0;H[e+20>>2]=0;H[e+56>>2]=0;H[e+8>>2]=0;H[e+12>>2]=0;H[e+48>>2]=0;H[e+52>>2]=0;H[e>>2]=10876;l=d+4|0;H[e+4>>2]=l;d=H[d+68>>2];k=H[d>>2];d=H[d+4>>2];F[e+63|0]=0;k=(d-k>>2>>>0)/3|0;d=e+63|0;Qa(j,k,d);j=H[e+4>>2];k=H[j+56>>2];j=H[j+52>>2];F[e+63|0]=0;Qa(e+36|0,k-j>>2,d);H[e+20>>2]=c;H[e+16>>2]=f;H[e+12>>2]=i;H[e+8>>2]=l;H[c+76>>2]=a+72;Ic(c+8|0,e);Tb(g,H[e+48>>2],H[e+52>>2]);H[e>>2]=10876;d=H[e+48>>2];if(d){H[e+52>>2]=d;qa(d)}H[e>>2]=11128;d=H[e+36>>2];if(d){qa(d)}d=H[e+24>>2];if(d){qa(d)}d=0;break f}c=fg(a,c)}if(c){break f}c=0;break c}H[((h|0)==-1?a+68|0:(H[a+172>>2]+N(h,136)|0)+132|0)>>2]=d;i=ge(ra(76),c,b);b=H[a+188>>2];l:{if((b|0)!=H[a+192>>2]){H[b>>2]=h;H[a+188>>2]=b+4;break l}d=H[a+184>>2];c=b-d|0;g=c>>2;b=g+1|0;if(b>>>0>=1073741824){break b}f=c>>1;f=c>>>0<2147483644?b>>>0>>0?f:b:1073741823;if(f){if(f>>>0>=1073741824){break a}b=ra(f<<2)}else{b=0}g=b+(g<<2)|0;H[g>>2]=h;if((c|0)>0){sa(b,d,c)}H[a+192>>2]=b+(f<<2);H[a+188>>2]=g+4;H[a+184>>2]=b;if(!d){break l}qa(d)}a=fa[H[H[a>>2]+40>>2]](a)|0;H[e>>2]=i;b=H[a+12>>2];m:{if(b>>>0>2]){H[e>>2]=0;H[b>>2]=i;H[a+12>>2]=b+4;break m}Gc(a+8|0,e)}a=H[e>>2];H[e>>2]=0;if(a){fa[H[H[a>>2]+4>>2]](a)}c=1}da=e- -64|0;return c|0}ua();X()}ya();X()}function Fj(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0;e=da+-64|0;da=e;a:{b:{c:{d:{if(!I[a+352|0]){break d}c=1;h=fa[H[H[a>>2]+40>>2]](a)|0;if((H[h+12>>2]-H[h+8>>2]|0)<=0){break d}lc(H[H[(fa[H[H[a>>2]+40>>2]](a)|0)+8>>2]>>2],b);break c}c=b<<2;f=H[c+H[H[(fa[H[H[a>>2]+40>>2]](a)|0)+56>>2]+84>>2]>>2];i=H[c+H[H[(fa[H[H[a>>2]+40>>2]](a)|0)+4>>2]+8>>2]>>2];h=-1;c=H[a+176>>2];d=H[a+172>>2];e:{if((c|0)==(d|0)){break e}c=(c-d|0)/136|0;g=c>>>0>1?c:1;c=0;while(1){if(H[d+N(c,136)>>2]==(b|0)){h=c;break e}c=c+1|0;if((g|0)!=(c|0)){continue}break}}f:{g:{h:{i:{j:{k:{if(!I[a+352|0]){c=H[i+56>>2];if(!(!f|!c)&(!I[(d+N(h,136)|0)+28|0]|(f|0)!=1)){break i}if(c){break k}}c=a+40|0;break j}c=H[a+12>>2];f=H[c+28>>2];c=H[c+24>>2];H[e>>2]=-1;k=d;d=N(h,136);g=k+d|0;xb(g+116|0,f-c>>2,e);F[(d+H[a+172>>2]|0)+100|0]=0;c=g+104|0}d=0;if(eb(H[(fa[H[H[a>>2]+40>>2]](a)|0)+48>>2])|H[i+56>>2]){break h}if(!I[a+352|0]){d=1;c=Jc(a,c);break g}d=H[a+8>>2];f=H[d+12>>2]-H[d+8>>2]|0;d=(f|0)<5;if((f|0)>4){break h}c=Jc(a,c);break g}d=d+N(h,136)|0;c=H[d+56>>2];f=H[d+60>>2];H[e>>2]=-1;xb(d+116|0,f-c>>2,e);c=ra(80);f=H[a+8>>2];H[c+12>>2]=0;H[c+16>>2]=0;H[c>>2]=11984;H[c+4>>2]=0;H[c+20>>2]=0;H[c+24>>2]=0;H[c+28>>2]=0;H[c+32>>2]=0;H[c+36>>2]=0;H[c+40>>2]=0;H[c+44>>2]=0;H[c+48>>2]=0;H[c+52>>2]=0;H[c+76>>2]=0;i=d+104|0;H[c+72>>2]=i;H[c+68>>2]=f;H[c- -64>>2]=0;g=c+56|0;H[g>>2]=0;H[g+4>>2]=0;H[c+8>>2]=10876;H[e+40>>2]=0;H[e+44>>2]=0;H[e+32>>2]=0;H[e+36>>2]=0;j=e+24|0;H[j>>2]=0;H[j+4>>2]=0;H[e+16>>2]=0;H[e+20>>2]=0;H[e+56>>2]=0;H[e+8>>2]=0;H[e+12>>2]=0;H[e+48>>2]=0;H[e+52>>2]=0;H[e>>2]=10876;l=d+4|0;H[e+4>>2]=l;d=H[d+68>>2];k=H[d>>2];d=H[d+4>>2];F[e+63|0]=0;k=(d-k>>2>>>0)/3|0;d=e+63|0;Qa(j,k,d);j=H[e+4>>2];k=H[j+56>>2];j=H[j+52>>2];F[e+63|0]=0;Qa(e+36|0,k-j>>2,d);H[e+20>>2]=c;H[e+16>>2]=f;H[e+12>>2]=i;H[e+8>>2]=l;H[c+76>>2]=a+72;Ic(c+8|0,e);Tb(g,H[e+48>>2],H[e+52>>2]);H[e>>2]=10876;d=H[e+48>>2];if(d){H[e+52>>2]=d;qa(d)}H[e>>2]=11128;d=H[e+36>>2];if(d){qa(d)}d=H[e+24>>2];if(d){qa(d)}d=0;break f}c=fg(a,c)}if(c){break f}c=0;break c}H[((h|0)==-1?a+68|0:(H[a+172>>2]+N(h,136)|0)+132|0)>>2]=d;i=ge(ra(76),c,b);b=H[a+188>>2];l:{if((b|0)!=H[a+192>>2]){H[b>>2]=h;H[a+188>>2]=b+4;break l}d=H[a+184>>2];c=b-d|0;g=c>>2;b=g+1|0;if(b>>>0>=1073741824){break b}f=c>>1;f=c>>>0<2147483644?b>>>0>>0?f:b:1073741823;if(f){if(f>>>0>=1073741824){break a}b=ra(f<<2)}else{b=0}g=b+(g<<2)|0;H[g>>2]=h;if((c|0)>0){sa(b,d,c)}H[a+192>>2]=b+(f<<2);H[a+188>>2]=g+4;H[a+184>>2]=b;if(!d){break l}qa(d)}a=fa[H[H[a>>2]+40>>2]](a)|0;H[e>>2]=i;b=H[a+12>>2];m:{if(b>>>0>2]){H[e>>2]=0;H[b>>2]=i;H[a+12>>2]=b+4;break m}Gc(a+8|0,e)}a=H[e>>2];H[e>>2]=0;if(a){fa[H[H[a>>2]+4>>2]](a)}c=1}da=e- -64|0;return c|0}ua();X()}ya();X()}function gb(a){var b=0,c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0;f=da-32|0;da=f;a:{b:{c:{d:{b=H[a+16>>2];if(b>>>0>=113){H[a+16>>2]=b-113;b=H[a+4>>2];k=H[b>>2];c=b+4|0;H[a+4>>2]=c;b=H[a+8>>2];e:{if((b|0)!=H[a+12>>2]){d=b;break e}h=H[a>>2];if(h>>>0>>0){g=b-c|0;e=((c-h>>2)+1|0)/-2<<2;d=e+c|0;if((b|0)!=(c|0)){xa(d,c,g);c=H[a+4>>2]}d=d+g|0;H[a+8>>2]=d;H[a+4>>2]=c+e;break e}d=(b|0)==(h|0)?1:b-h>>1;if(d>>>0>=1073741824){break d}e=d<<2;i=ra(e);l=e+i|0;e=i+(d&-4)|0;d=e;f:{if((b|0)==(c|0)){break f}b=b-c|0;m=b&-4;j=b-4|0;g=(j>>>2|0)+1&7;g:{if(!g){b=e;break g}d=0;b=e;while(1){H[b>>2]=H[c>>2];c=c+4|0;b=b+4|0;d=d+1|0;if((g|0)!=(d|0)){continue}break}}d=e+m|0;if(j>>>0<28){break f}while(1){H[b>>2]=H[c>>2];H[b+4>>2]=H[c+4>>2];H[b+8>>2]=H[c+8>>2];H[b+12>>2]=H[c+12>>2];H[b+16>>2]=H[c+16>>2];H[b+20>>2]=H[c+20>>2];H[b+24>>2]=H[c+24>>2];H[b+28>>2]=H[c+28>>2];c=c+32|0;b=b+32|0;if((d|0)!=(b|0)){continue}break}}H[a+12>>2]=l;H[a+8>>2]=d;H[a+4>>2]=e;H[a>>2]=i;if(!h){break e}qa(h);d=H[a+8>>2]}H[d>>2]=k;H[a+8>>2]=H[a+8>>2]+4;break a}b=H[a+8>>2];d=b-H[a+4>>2]>>2;g=H[a+12>>2];c=H[a>>2];e=g-c|0;if(d>>>0>2>>>0){if((b|0)!=(g|0)){n=f,o=ra(4068),H[n+8>>2]=o;ie(a,f+8|0);break a}n=f,o=ra(4068),H[n+8>>2]=o;he(a,f+8|0);b=H[a+4>>2];k=H[b>>2];c=b+4|0;H[a+4>>2]=c;b=H[a+8>>2];h:{if((b|0)!=H[a+12>>2]){d=b;break h}h=H[a>>2];if(h>>>0>>0){g=b-c|0;e=((c-h>>2)+1|0)/-2<<2;d=e+c|0;if((b|0)!=(c|0)){xa(d,c,g);c=H[a+4>>2]}d=d+g|0;H[a+8>>2]=d;H[a+4>>2]=c+e;break h}d=(b|0)==(h|0)?1:b-h>>1;if(d>>>0>=1073741824){break d}e=d<<2;i=ra(e);l=e+i|0;e=i+(d&-4)|0;d=e;i:{if((b|0)==(c|0)){break i}b=b-c|0;m=b&-4;j=b-4|0;g=(j>>>2|0)+1&7;j:{if(!g){b=e;break j}d=0;b=e;while(1){H[b>>2]=H[c>>2];c=c+4|0;b=b+4|0;d=d+1|0;if((g|0)!=(d|0)){continue}break}}d=e+m|0;if(j>>>0<28){break i}while(1){H[b>>2]=H[c>>2];H[b+4>>2]=H[c+4>>2];H[b+8>>2]=H[c+8>>2];H[b+12>>2]=H[c+12>>2];H[b+16>>2]=H[c+16>>2];H[b+20>>2]=H[c+20>>2];H[b+24>>2]=H[c+24>>2];H[b+28>>2]=H[c+28>>2];c=c+32|0;b=b+32|0;if((d|0)!=(b|0)){continue}break}}H[a+12>>2]=l;H[a+8>>2]=d;H[a+4>>2]=e;H[a>>2]=i;if(!h){break h}qa(h);d=H[a+8>>2]}H[d>>2]=k;H[a+8>>2]=H[a+8>>2]+4;break a}H[f+24>>2]=a+12;b=(c|0)==(g|0)?1:e>>1;if(b>>>0>=1073741824){break d}e=b<<2;c=ra(e);H[f+8>>2]=c;b=c+(d<<2)|0;H[f+16>>2]=b;H[f+20>>2]=c+e;H[f+12>>2]=b;n=f,o=ra(4068),H[n+4>>2]=o;ie(f+8|0,f+4|0);c=H[a+8>>2];if((c|0)==H[a+4>>2]){b=c;break b}while(1){c=c-4|0;he(f+8|0,c);if(H[a+4>>2]!=(c|0)){continue}break}break c}ya();X()}b=H[a+8>>2]}d=H[a>>2];H[a>>2]=H[f+8>>2];H[f+8>>2]=d;H[a+4>>2]=H[f+12>>2];H[f+12>>2]=c;H[a+8>>2]=H[f+16>>2];H[f+16>>2]=b;e=H[a+12>>2];H[a+12>>2]=H[f+20>>2];H[f+20>>2]=e;if((b|0)!=(c|0)){H[f+16>>2]=b+((c-b|0)+3&-4)}if(!d){break a}qa(d)}da=f+32|0}function oc(a,b){var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0;j=da-16|0;da=j;H[a+124>>2]=H[a+124>>2]+1;h=-1;d=H[a+120>>2];c=-1;a:{if((d|0)==-1){break a}c=d+1|0;h=(c>>>0)%3|0?c:d-2|0;c=d-1|0;if((d>>>0)%3|0){break a}c=d+2|0}e=H[a+104>>2];f=H[a+92>>2];g=f+(h<<2)|0;k=e+(H[g>>2]<<2)|0;i=H[k>>2];b:{c:{switch(b|0){case 0:case 1:H[k>>2]=i-1;d=(H[(c<<2)+f>>2]<<2)+e|0;H[d>>2]=H[d>>2]-1;if((b|0)!=1){break b}g=0;d:{if((c|0)==-1){d=0;break d}d=0;c=H[H[H[a+88>>2]+12>>2]+(c<<2)>>2];if((c|0)==-1){break d}while(1){e:{e=H[a+64>>2];if(fa[H[H[e>>2]+36>>2]](e,(c>>>0)/3|0)|0){break e}d=d+1|0;e=c+1|0;c=(e>>>0)%3|0?e:c-2|0;if((c|0)==-1){break e}c=H[H[H[a+88>>2]+12>>2]+(c<<2)>>2];if((c|0)!=-1){continue}}break}e=H[a+104>>2];f=H[a+92>>2]}H[(H[(H[a+120>>2]<<2)+f>>2]<<2)+e>>2]=d+1;f:{if((h|0)==-1){break f}c=H[H[H[a+88>>2]+12>>2]+(h<<2)>>2];if((c|0)==-1){break f}e=H[a+108>>2]-e>>2;while(1){f=H[a+64>>2];d=(c>>>0)/3|0;if(fa[H[H[f>>2]+36>>2]](f,d)|0){break f}f=c+1|0;H[H[a+92>>2]+(((f>>>0)%3|0?f:c-2|0)<<2)>>2]=e;g=g+1|0;f=H[a+88>>2];g:{if((N(d,3)|0)!=(c|0)){c=c-1|0;break g}c=c+2|0;if((c|0)==-1){break f}}c=H[H[f+12>>2]+(c<<2)>>2];if((c|0)!=-1){continue}break}}H[j+12>>2]=g+1;h:{c=H[a+108>>2];f=H[a+112>>2];if(c>>>0>>0){H[c>>2]=H[j+12>>2];H[a+108>>2]=c+4;break h}i:{e=H[a+104>>2];d=c-e|0;h=d>>2;c=h+1|0;if(c>>>0<1073741824){f=f-e|0;g=f>>1;f=f>>>0<2147483644?c>>>0>>0?g:c:1073741823;if(f){if(f>>>0>=1073741824){break i}c=ra(f<<2)}else{c=0}h=c+(h<<2)|0;H[h>>2]=H[j+12>>2];if((d|0)>0){sa(c,e,d)}H[a+112>>2]=c+(f<<2);H[a+108>>2]=h+4;H[a+104>>2]=c;if(e){qa(e)}break h}ua();X()}ya();X()}break b;case 5:d=(H[(d<<2)+f>>2]<<2)+e|0;H[d>>2]=H[d>>2]-1;d=(H[g>>2]<<2)+e|0;H[d>>2]=H[d>>2]-1;c=(H[(c<<2)+f>>2]<<2)+e|0;H[c>>2]=H[c>>2]-2;break b;case 3:d=(H[(d<<2)+f>>2]<<2)+e|0;H[d>>2]=H[d>>2]-1;d=(H[g>>2]<<2)+e|0;H[d>>2]=H[d>>2]-2;c=(H[(c<<2)+f>>2]<<2)+e|0;H[c>>2]=H[c>>2]-1;break b;case 7:break c;default:break b}}d=(H[(d<<2)+f>>2]<<2)+e|0;H[d>>2]=H[d>>2]-2;d=(H[g>>2]<<2)+e|0;H[d>>2]=H[d>>2]-2;c=(H[(c<<2)+f>>2]<<2)+e|0;H[c>>2]=H[c>>2]-2}j:{k:{c=H[a+116>>2];l:{if((c|0)==-1){break l}h=H[(c<<2)+11184>>2];c=H[a+132>>2];d=(c|0)>(i|0)?i:c;c=H[a+128>>2];e=H[a+136>>2]+N((c|0)>(i|0)?0:d-c|0,12)|0;c=H[e+4>>2];d=H[e+8>>2];if(c>>>0>>0){H[c>>2]=h;H[e+4>>2]=c+4;break l}f=H[e>>2];i=c-f|0;g=i>>2;c=g+1|0;if(c>>>0>=1073741824){break k}d=d-f|0;k=d>>1;d=d>>>0<2147483644?c>>>0>>0?k:c:1073741823;if(d){if(d>>>0>=1073741824){break j}c=ra(d<<2)}else{c=0}g=c+(g<<2)|0;H[g>>2]=h;if((i|0)>0){sa(c,f,i)}H[e>>2]=c;H[e+4>>2]=g+4;H[e+8>>2]=c+(d<<2);if(!f){break l}qa(f)}H[a+116>>2]=b;da=j+16|0;return}ua();X()}ya();X()}function Pf(a,b){var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0;if((b|0)==-1){return 1}d=(b>>>0)/3|0;if(!(H[H[a+24>>2]+(d>>>3&268435452)>>2]>>>d&1)){c=H[a+48>>2];H[a+52>>2]=c;a:{if((c|0)!=H[a+56>>2]){H[c>>2]=b;H[a+52>>2]=c+4;break a}e=ra(4);H[e>>2]=b;f=e+4|0;H[a+56>>2]=f;H[a+52>>2]=f;H[a+48>>2]=e;if(!c){break a}qa(c)}e=-1;f=H[a+4>>2];c=b+1|0;g=(c>>>0)%3|0?c:b-2|0;if((g|0)!=-1){e=H[H[f>>2]+(g<<2)>>2]}b:{h=b-N(d,3)|0;if(h){c=b-1|0;break b}c=b+2|0;if((c|0)!=-1){break b}return 0}if((e|0)==-1){return 0}d=H[H[f>>2]+(c<<2)>>2];if((d|0)==-1){return 0}c=H[a+36>>2];f=c+(e>>>3&536870908)|0;i=H[f>>2];j=1<>2]=i|j;mb(a+8|0,e,g);c=H[a+36>>2]}c=(d>>>3&536870908)+c|0;e=H[c>>2];f=1<>2]=e|f;mb(a+8|0,d,(h?-1:2)+b|0)}c=H[a+52>>2];if((c|0)==H[a+48>>2]){return 1}j=a+8|0;while(1){c:{d:{c=c-4|0;b=H[c>>2];if((b|0)==-1){break d}d=(b>>>0)/3|0;e=H[a+24>>2]+(d>>>3&268435452)|0;f=H[e>>2];d=1<>2]=d|f;while(1){d=H[a+4>>2];c=H[H[d>>2]+(b<<2)>>2];if((c|0)==-1){return 0}e:{f:{e=H[a+36>>2]+(c>>>3&536870908)|0;f=H[e>>2];g=1<>2]+(c<<2)>>2];h:{if((h|0)==-1){break h}i=h+1|0;h=(i>>>0)%3|0?i:h-2|0;if((h|0)==-1){break h}d=H[H[d+12>>2]+(h<<2)>>2];if((d|0)!=-1){break g}}H[e>>2]=f|g;mb(j,c,b);break f}H[e>>2]=f|g;mb(j,c,b);c=d+1|0;if((((c>>>0)%3|0?c:d-2|0)|0)==-1){break f}d=b-2|0;c=b+1|0;b=-1;c=(c>>>0)%3|0?c:d;if((c|0)!=-1){b=H[H[H[a+4>>2]+12>>2]+(c<<2)>>2]}c=(b>>>0)/3|0;g=1<>2];h=c>>>5|0;d=H[e+(h<<2)>>2];break e}c=-1;f=H[a+4>>2];d=b+1|0;d=(d>>>0)%3|0?d:b-2|0;if((d|0)!=-1){c=H[H[f+12>>2]+(d<<2)>>2]}i:{j:{if((b>>>0)%3|0){e=b-1|0;break j}e=b+2|0;b=-1;if((e|0)==-1){break i}}b=H[H[f+12>>2]+(e<<2)>>2]}i=(b|0)==-1;f=i?-1:(b>>>0)/3|0;k:{if((c|0)!=-1){e=H[a+24>>2];g=(c>>>0)/3|0;h=g>>>5|0;d=H[e+(h<<2)>>2];g=1<>2];h=f>>>5|0;d=H[e+(h<<2)>>2];if(!(g&d)){break e}}c=H[a+52>>2]-4|0;H[a+52>>2]=c;break c}if(i){b=c;break e}if(H[(f>>>3&536870908)+e>>2]>>>f&1){b=c;break e}d=H[a+52>>2];H[d-4>>2]=b;if((d|0)!=H[a+56>>2]){H[d>>2]=c;c=d+4|0;break d}l:{e=H[a+48>>2];d=d-e|0;g=d>>2;b=g+1|0;if(b>>>0<1073741824){f=d>>1;f=d>>>0<2147483644?b>>>0>>0?f:b:1073741823;if(f){if(f>>>0>=1073741824){break l}b=ra(f<<2)}else{b=0}g=b+(g<<2)|0;H[g>>2]=c;c=g+4|0;if((d|0)>0){sa(b,e,d)}H[a+56>>2]=b+(f<<2);H[a+52>>2]=c;H[a+48>>2]=b;if(!e){break c}qa(e);c=H[a+52>>2];break c}ua();X()}ya();X()}H[(h<<2)+e>>2]=d|g;if((b|0)!=-1){continue}break}return 0}H[a+52>>2]=c}if(H[a+48>>2]!=(c|0)){continue}break}}return 1}function Eg(a,b){var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0;d=a+4|0;if((d|0)!=(b|0)){kc(d,H[b>>2],b+4|0);f=H[b+12>>2];k=b+16|0;d=0;h=a+16|0;a:{if(!H[h+8>>2]){break a}e=H[h>>2];j=h+4|0;H[h>>2]=j;H[H[h+4>>2]+8>>2]=0;H[h+4>>2]=0;H[h+8>>2]=0;c=H[e+4>>2];g=c?c:e;if(!g){nb(h,g);break a}e=H[g+8>>2];b:{if(!e){break b}c=H[e>>2];if((g|0)==(c|0)){H[e>>2]=0;d=e;c=H[e+4>>2];if(!c){break b}while(1){d=c;c=H[c>>2];if(c){continue}c=H[d+4>>2];if(c){continue}break}break b}H[e+4>>2]=0;d=e;if(!c){break b}while(1){d=c;c=H[c>>2];if(c){continue}c=H[d+4>>2];if(c){continue}break}}c:{if((f|0)==(k|0)){i=g;break c}c=f;while(1){i=d;H[g+16>>2]=H[c+16>>2];if((c|0)!=(g|0)){kc(g+20|0,H[c+20>>2],c+24|0)}f=j;d=f;e=H[d>>2];d:{if(!e){break d}l=H[g+16>>2];while(1){f=e;if((l|0)>2]){d=f;e=H[d>>2];if(e){continue}break d}e=H[f+4>>2];if(e){continue}break}d=f+4|0}H[g+8>>2]=f;H[g>>2]=0;H[g+4>>2]=0;H[d>>2]=g;f=H[H[h>>2]>>2];if(f){H[h>>2]=f;g=H[d>>2]}ub(H[h+4>>2],g);H[h+8>>2]=H[h+8>>2]+1;d=0;e:{if(!i){break e}e=H[i+8>>2];if(!e){break e}f=H[e>>2];if((i|0)==(f|0)){H[e>>2]=0;d=e;f=H[e+4>>2];if(!f){break e}while(1){d=f;f=H[d>>2];if(f){continue}f=H[d+4>>2];if(f){continue}break}break e}H[e+4>>2]=0;d=e;if(!f){break e}while(1){d=f;f=H[d>>2];if(f){continue}f=H[d+4>>2];if(f){continue}break}}e=H[c+4>>2];f:{if(e){while(1){f=e;e=H[e>>2];if(e){continue}break f}}while(1){f=H[c+8>>2];e=H[f>>2]!=(c|0);c=f;if(e){continue}break}}if(!i){break c}g=i;c=f;if((k|0)!=(c|0)){continue}break}}nb(h,i);if(!d){break a}while(1){c=H[d+8>>2];if(c){d=c;continue}break}nb(h,d)}if((f|0)!=(k|0)){while(1){n=da-16|0;da=n;i=ra(32);g=f+16|0;d=H[g>>2];m=i+24|0;H[m>>2]=0;H[m+4>>2]=0;H[i+16>>2]=d;l=i+20|0;H[l>>2]=m;e=h+4|0;c=H[g+4>>2];j=g+8|0;if((c|0)!=(j|0)){while(1){d=c+16|0;Ig(n+8|0,l,m,d,d);g=H[c+4>>2];g:{if(g){while(1){d=g;g=H[d>>2];if(g){continue}break g}}while(1){d=H[c+8>>2];g=H[d>>2]!=(c|0);c=d;if(g){continue}break}}c=d;if((j|0)!=(c|0)){continue}break}}c=e;d=H[c>>2];h:{if(!d){break h}g=H[i+16>>2];while(1){e=d;if((g|0)>2]){c=e;d=H[c>>2];if(d){continue}break h}d=H[e+4>>2];if(d){continue}break}c=e+4|0}H[i+8>>2]=e;H[i>>2]=0;H[i+4>>2]=0;H[c>>2]=i;d=i;e=H[H[h>>2]>>2];if(e){H[h>>2]=e;d=H[c>>2]}ub(H[h+4>>2],d);H[h+8>>2]=H[h+8>>2]+1;da=n+16|0;e=H[f+4>>2];i:{if(e){while(1){c=e;e=H[c>>2];if(e){continue}break i}}while(1){c=H[f+8>>2];d=H[c>>2]!=(f|0);f=c;if(d){continue}break}}f=c;if((c|0)!=(k|0)){continue}break}}kc(a+28|0,H[b+24>>2],b+28|0)}}function nf(a,b){var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0;e=da+-64|0;da=e;H[e+40>>2]=0;H[e+44>>2]=0;H[e+32>>2]=0;H[e+36>>2]=0;H[e+48>>2]=1065353216;c=H[a+80>>2];H[e+24>>2]=0;H[e+16>>2]=0;H[e+20>>2]=0;a:{if(c){if(c>>>0>=1073741824){break a}g=c<<2;i=ra(g);H[e+16>>2]=i;c=i+g|0;H[e+24>>2]=c;ta(i,0,g);H[e+20>>2]=c;while(1){c=H[H[b>>2]>>2];j=H[b+48>>2]+zl(H[b+40>>2],H[b+44>>2],h,0)|0;c=c+j|0;n=I[c|0]|I[c+1|0]<<8|(I[c+2|0]<<16|I[c+3|0]<<24);H[e+28>>2]=n;b:{c:{l=H[e+36>>2];d:{if(!l){break d}d=H[e+32>>2];j=n^318;k=Cl(l)>>>0>1;c=j&l-1;e:{if(!k){break e}c=j;if(c>>>0>>0){break e}c=(j>>>0)%(l>>>0)|0}g=c;c=H[d+(g<<2)>>2];if(!c){break d}d=H[c>>2];if(!d){break d}if(!k){k=l-1|0;while(1){c=H[d+4>>2];f:{if((c|0)!=(j|0)){if((g|0)==(c&k)){break f}break d}if((n|0)==H[d+8>>2]){break c}}d=H[d>>2];if(d){continue}break}break d}while(1){c=H[d+4>>2];g:{if((c|0)!=(j|0)){if(c>>>0>=l>>>0){c=(c>>>0)%(l>>>0)|0}if((c|0)==(g|0)){break g}break d}if((n|0)==H[d+8>>2]){break c}}d=H[d>>2];if(d){continue}break}}H[e+12>>2]=m;H[e+8>>2]=n;c=e+8|0;ff(e+56|0,e+32|0,c,c);c=H[a+40>>2];sa(H[H[a>>2]>>2]+N(c,m)|0,e+28|0,c);i=H[e+16>>2];H[i+(h<<2)>>2]=m;m=m+1|0;break b}H[(h<<2)+i>>2]=H[d+12>>2]}c=h+1|0;f=c?f:f+1|0;h=c;d=H[a+80>>2];if(!f&d>>>0>c>>>0){continue}break}if((d|0)!=(m|0)){h:{if(!I[a+84|0]){b=H[a+72>>2];h=H[a+68>>2];if((b|0)==(h|0)){break h}b=b-h>>2;b=b>>>0>1?b:1;c=b&3;k=0;d=0;if(b-1>>>0>=3){f=b&-4;j=0;while(1){g=d<<2;b=g+h|0;H[b>>2]=H[(H[b>>2]<<2)+i>>2];b=h+(g|4)|0;H[b>>2]=H[(H[b>>2]<<2)+i>>2];b=h+(g|8)|0;H[b>>2]=H[(H[b>>2]<<2)+i>>2];b=h+(g|12)|0;H[b>>2]=H[(H[b>>2]<<2)+i>>2];d=d+4|0;j=j+4|0;if((f|0)!=(j|0)){continue}break}}if(!c){break h}while(1){b=h+(d<<2)|0;H[b>>2]=H[(H[b>>2]<<2)+i>>2];d=d+1|0;k=k+1|0;if((c|0)!=(k|0)){continue}break}break h}F[a+84|0]=0;c=a+68|0;b=H[a+68>>2];f=H[a+72>>2]-b>>2;i:{if(f>>>0>>0){La(c,d-f|0,2176);d=H[a+80>>2];break i}if(d>>>0>=f>>>0){break i}H[a+72>>2]=b+(d<<2)}if(!d){break h}h=H[c>>2];k=0;b=0;if(d-1>>>0>=3){c=d&-4;j=0;while(1){g=b<<2;H[g+h>>2]=H[i+g>>2];f=g|4;H[f+h>>2]=H[f+i>>2];f=g|8;H[f+h>>2]=H[f+i>>2];f=g|12;H[f+h>>2]=H[f+i>>2];b=b+4|0;j=j+4|0;if((c|0)!=(j|0)){continue}break}}c=d&3;if(!c){break h}while(1){f=b<<2;H[f+h>>2]=H[f+i>>2];b=b+1|0;k=k+1|0;if((c|0)!=(k|0)){continue}break}}H[a+80>>2]=m}qa(i)}d=H[e+40>>2];if(d){while(1){a=H[d>>2];qa(d);d=a;if(d){continue}break}}a=H[e+32>>2];H[e+32>>2]=0;if(a){qa(a)}da=e- -64|0;return m}ua();X()}function hl(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0;l=da-16|0;da=l;f=H[a+4>>2];a:{b:{if(f){if(fa[H[H[a>>2]+52>>2]](a,b,H[H[f+4>>2]+80>>2])|0){break b}break a}if(!(fa[H[H[a>>2]+52>>2]](a,b,0)|0)){break a}}n=1;if(!I[a+28|0]){break a}d=H[a+32>>2];i=H[a+8>>2];c=H[i+80>>2];f=0;H[l+8>>2]=0;H[l>>2]=0;H[l+4>>2]=0;c:{d:{e:{if(c){if(c>>>0>=1073741824){break e}c=c<<2;f=ra(c);H[l>>2]=f;e=c+f|0;H[l+8>>2]=e;ta(f,0,c);H[l+4>>2]=e}e=H[b+4>>2];c=H[b>>2];f:{if((e|0)==(c|0)){break f}b=e-c>>2;if(I[i+84|0]){e=b>>>0>1?b:1;h=e&3;b=0;if(e-1>>>0>=3){j=e&-4;e=0;while(1){H[(H[c+(b<<2)>>2]<<2)+f>>2]=b;k=b|1;H[(H[c+(k<<2)>>2]<<2)+f>>2]=k;k=b|2;H[(H[c+(k<<2)>>2]<<2)+f>>2]=k;k=b|3;H[(H[c+(k<<2)>>2]<<2)+f>>2]=k;b=b+4|0;e=e+4|0;if((j|0)!=(e|0)){continue}break}}if(!h){break f}while(1){H[(H[c+(b<<2)>>2]<<2)+f>>2]=b;b=b+1|0;g=g+1|0;if((h|0)!=(g|0)){continue}break}break f}g=b>>>0>1?b:1;j=g&3;h=H[i+68>>2];e=0;b=0;if(g-1>>>0>=3){k=g&-4;g=0;while(1){H[(H[h+(H[c+(b<<2)>>2]<<2)>>2]<<2)+f>>2]=b;m=b|1;H[(H[h+(H[c+(m<<2)>>2]<<2)>>2]<<2)+f>>2]=m;m=b|2;H[(H[h+(H[c+(m<<2)>>2]<<2)>>2]<<2)+f>>2]=m;m=b|3;H[(H[h+(H[c+(m<<2)>>2]<<2)>>2]<<2)+f>>2]=m;b=b+4|0;g=g+4|0;if((k|0)!=(g|0)){continue}break}}if(!j){break f}while(1){H[(H[h+(H[c+(b<<2)>>2]<<2)>>2]<<2)+f>>2]=b;b=b+1|0;e=e+1|0;if((j|0)!=(e|0)){continue}break}}g:{if(!I[d+84|0]){break g}b=H[H[H[a+4>>2]+4>>2]+80>>2];F[d+84|0]=0;e=H[d+68>>2];c=H[d+72>>2]-e>>2;if(c>>>0>>0){La(d+68|0,b-c|0,2736);break g}if(b>>>0>=c>>>0){break g}H[d+72>>2]=e+(b<<2)}h=H[H[H[a+4>>2]+4>>2]+80>>2];if(!h){break d}c=H[d+68>>2];if(I[i+84|0]){a=0;b=0;if(h-1>>>0>=3){g=h&-4;e=0;while(1){d=b<<2;H[d+c>>2]=H[f+d>>2];i=d|4;H[i+c>>2]=H[f+i>>2];i=d|8;H[i+c>>2]=H[f+i>>2];d=d|12;H[d+c>>2]=H[f+d>>2];b=b+4|0;e=e+4|0;if((g|0)!=(e|0)){continue}break}}e=h&3;if(!e){break c}while(1){d=b<<2;H[d+c>>2]=H[f+d>>2];b=b+1|0;a=a+1|0;if((e|0)!=(a|0)){continue}break}break c}a=H[i+68>>2];e=0;b=0;if(h-1>>>0>=3){i=h&-4;g=0;while(1){d=b<<2;H[d+c>>2]=H[(H[a+d>>2]<<2)+f>>2];j=d|4;H[j+c>>2]=H[(H[a+j>>2]<<2)+f>>2];j=d|8;H[j+c>>2]=H[(H[a+j>>2]<<2)+f>>2];d=d|12;H[d+c>>2]=H[(H[a+d>>2]<<2)+f>>2];b=b+4|0;g=g+4|0;if((i|0)!=(g|0)){continue}break}}d=h&3;if(!d){break c}while(1){g=b<<2;H[g+c>>2]=H[(H[a+g>>2]<<2)+f>>2];b=b+1|0;e=e+1|0;if((d|0)!=(e|0)){continue}break}break c}ua();X()}if(!f){break a}}qa(f)}da=l+16|0;return n|0}function Hg(a,b,c,d,e){var f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0;a:{b:{c:{d:{e:{f:{j=a+4|0;g:{if((j|0)==(b|0)){break g}f=I[b+27|0];g=f<<24>>24<0;h=I[e+11|0];i=h<<24>>24;k=(i|0)<0;f=g?H[b+20>>2]:f;h=k?H[e+4>>2]:h;l=f>>>0>>0;m=l?f:h;if(m){k=k?H[e>>2]:e;n=b+16|0;g=g?H[n>>2]:n;n=Ea(k,g,m);if(!n){if(f>>>0>h>>>0){break g}break f}if((n|0)>=0){break f}break g}if(f>>>0<=h>>>0){break e}}d=H[b>>2];h:{f=b;i:{if((f|0)==H[a>>2]){break i}j:{if(!d){a=b;while(1){f=H[a+8>>2];h=H[f>>2]==(a|0);a=f;if(h){continue}break}break j}a=d;while(1){f=a;a=H[f+4>>2];if(a){continue}break}}a=I[e+11|0];k=a<<24>>24;h=(k|0)<0;i=I[f+27|0];g=i<<24>>24<0;k:{a=h?H[e+4>>2]:a;i=g?H[f+20>>2]:i;l=a>>>0>>0?a:i;if(l){m=f+16|0;h=Ea(g?H[m>>2]:m,h?H[e>>2]:e,l);if(h){break k}}if(a>>>0>i>>>0){break i}break h}if((h|0)>=0){break h}}if(!d){H[c>>2]=b;return b}H[c>>2]=f;return f+4|0}d=H[j>>2];if(!d){H[c>>2]=j;return j}e=(k|0)<0?H[e>>2]:e;b=j;while(1){f=d;d=I[f+27|0];j=d<<24>>24<0;d=j?H[f+20>>2]:d;h=d>>>0>>0;l:{m:{n:{o:{g=h?d:a;p:{if(g){i=f+16|0;j=j?H[i>>2]:i;i=Ea(e,j,g);if(!i){if(a>>>0>>0){break p}break o}if((i|0)>=0){break o}break p}if(a>>>0>=d>>>0){break n}}b=f;d=H[f>>2];if(d){continue}break b}d=Ea(j,e,g);if(d){break m}}if(h){break l}break b}if((d|0)>=0){break b}}b=f+4|0;d=H[f+4>>2];if(d){continue}break}break b}a=Ea(g,k,m);if(a){break d}}if(l){break c}break a}if((a|0)>=0){break a}}d=H[b+4>>2];q:{if(!d){a=b;while(1){f=H[a+8>>2];g=H[f>>2]!=(a|0);a=f;if(g){continue}break}break q}a=d;while(1){f=a;a=H[f>>2];if(a){continue}break}}r:{s:{if((f|0)==(j|0)){break s}g=I[f+27|0];a=g<<24>>24<0;t:{g=a?H[f+20>>2]:g;k=h>>>0>g>>>0?g:h;if(k){l=f+16|0;a=Ea((i|0)<0?H[e>>2]:e,a?H[l>>2]:l,k);if(a){break t}}if(h>>>0>>0){break s}break r}if((a|0)>=0){break r}}if(!d){H[c>>2]=b;return b+4|0}H[c>>2]=f;return f}a=H[j>>2];if(!a){H[c>>2]=j;return j}d=(i|0)<0?H[e>>2]:e;b=j;while(1){f=a;a=I[f+27|0];e=a<<24>>24<0;a=e?H[f+20>>2]:a;j=a>>>0>>0;u:{v:{w:{x:{g=j?a:h;y:{if(g){i=f+16|0;e=e?H[i>>2]:i;i=Ea(d,e,g);if(!i){if(a>>>0>h>>>0){break y}break x}if((i|0)>=0){break x}break y}if(a>>>0<=h>>>0){break w}}b=f;a=H[f>>2];if(a){continue}break b}a=Ea(e,d,g);if(a){break v}}if(j){break u}break b}if((a|0)>=0){break b}}b=f+4|0;a=H[f+4>>2];if(a){continue}break}}H[c>>2]=f;return b}H[c>>2]=b;H[d>>2]=b;return d}function Bc(a,b){var c=0,d=0,e=0,f=0,g=0,h=0;a:{b:{d=b;g=H[b>>2];if(g){c=H[b+4>>2];if(!c){break b}while(1){d=c;c=H[c>>2];if(c){continue}break}}g=H[d+4>>2];if(g){break b}g=0;e=1;break a}H[g+8>>2]=H[d+8>>2];e=0}f=H[d+8>>2];c=H[f>>2];c:{if((d|0)==(c|0)){H[f>>2]=g;if((a|0)==(d|0)){c=0;a=g;break c}c=H[f+4>>2];break c}H[f+4>>2]=g}h=!I[d+12|0];if((b|0)!=(d|0)){f=H[b+8>>2];H[d+8>>2]=f;H[f+((H[H[b+8>>2]>>2]!=(b|0))<<2)>>2]=d;f=H[b>>2];H[d>>2]=f;H[f+8>>2]=d;f=H[b+4>>2];H[d+4>>2]=f;if(f){H[f+8>>2]=d}F[d+12|0]=I[b+12|0];a=(a|0)==(b|0)?d:a}if(!(h|!a)){if(e){while(1){b=I[c+12|0];d:{e=H[c+8>>2];if(H[e>>2]!=(c|0)){if(!b){F[c+12|0]=1;F[e+12|0]=0;d=H[e+4>>2];b=H[d>>2];H[e+4>>2]=b;if(b){H[b+8>>2]=e}H[d+8>>2]=H[e+8>>2];b=H[e+8>>2];H[(((e|0)!=H[b>>2])<<2)+b>>2]=d;H[d>>2]=e;H[e+8>>2]=d;b=H[c>>2];a=(b|0)==(a|0)?c:a;c=H[b+4>>2]}e:{f:{d=H[c>>2];g:{if(!(I[d+12|0]?0:d)){b=H[c+4>>2];if(I[b+12|0]?0:b){break g}F[c+12|0]=0;c=H[c+8>>2];h:{if((c|0)==(a|0)){c=a;break h}if(I[c+12|0]){break d}}F[c+12|0]=1;return}b=H[c+4>>2];if(!b){break f}}if(I[b+12|0]){break f}d=c;break e}F[d+12|0]=1;F[c+12|0]=0;a=H[d+4>>2];H[c>>2]=a;if(a){H[a+8>>2]=c}H[d+8>>2]=H[c+8>>2];a=H[c+8>>2];H[((H[a>>2]!=(c|0))<<2)+a>>2]=d;H[d+4>>2]=c;H[c+8>>2]=d;b=c}c=H[d+8>>2];F[d+12|0]=I[c+12|0];F[c+12|0]=1;F[b+12|0]=1;b=H[c+4>>2];a=H[b>>2];H[c+4>>2]=a;if(a){H[a+8>>2]=c}H[b+8>>2]=H[c+8>>2];a=H[c+8>>2];H[(((c|0)!=H[a>>2])<<2)+a>>2]=b;H[b>>2]=c;H[c+8>>2]=b;return}if(!b){F[c+12|0]=1;F[e+12|0]=0;b=H[c+4>>2];H[e>>2]=b;if(b){H[b+8>>2]=e}H[c+8>>2]=H[e+8>>2];b=H[e+8>>2];H[(((e|0)!=H[b>>2])<<2)+b>>2]=c;H[c+4>>2]=e;H[e+8>>2]=c;a=(a|0)==(e|0)?c:a;c=H[e>>2]}b=H[c>>2];i:{if(!(!b|I[b+12|0])){d=c;break i}d=H[c+4>>2];if(!(I[d+12|0]?0:d)){F[c+12|0]=0;c=H[c+8>>2];if((a|0)!=(c|0)?I[c+12|0]:0){break d}F[c+12|0]=1;return}if(b){if(!I[b+12|0]){d=c;break i}d=H[c+4>>2]}F[d+12|0]=1;F[c+12|0]=0;a=H[d>>2];H[c+4>>2]=a;if(a){H[a+8>>2]=c}H[d+8>>2]=H[c+8>>2];a=H[c+8>>2];H[((H[a>>2]!=(c|0))<<2)+a>>2]=d;H[d>>2]=c;H[c+8>>2]=d;b=c}c=H[d+8>>2];F[d+12|0]=I[c+12|0];F[c+12|0]=1;F[b+12|0]=1;b=H[c>>2];a=H[b+4>>2];H[c>>2]=a;if(a){H[a+8>>2]=c}H[b+8>>2]=H[c+8>>2];a=H[c+8>>2];H[(((c|0)!=H[a>>2])<<2)+a>>2]=b;H[b+4>>2]=c;H[c+8>>2]=b;return}b=H[c+8>>2];c=H[((H[b>>2]==(c|0))<<2)+b>>2];continue}}F[g+12|0]=1}}function Gb(a,b){var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0;g=da-32|0;da=g;a:{b:{if(H[a+8>>2]<<5>>>0>=b>>>0){break b}if((b|0)<0){break a}b=(b-1>>>5|0)+1|0;c=ra(b<<2);H[g+24>>2]=b;H[g+20>>2]=0;H[g+16>>2]=c;b=H[a>>2];H[g+12>>2]=0;H[g+8>>2]=b;c=H[a+4>>2];H[g+4>>2]=c&31;H[g>>2]=b+(c>>>3&536870908);f=da-32|0;da=f;i=H[g+4>>2];e=H[g+12>>2];j=H[g>>2];h=H[g+8>>2];b=(i-e|0)+(j-h<<3)|0;d=H[g+20>>2];c=b+d|0;H[g+20>>2]=c;if(!((c-1^d-1)>>>0<32?d:0)){H[H[g+16>>2]+((c>>>0<33?0:c-1>>>5|0)<<2)>>2]=0}c=H[g+16>>2]+(d>>>3&536870908)|0;d=d&31;c:{if((d|0)==(e|0)){if((b|0)<=0){break c}if(e){i=32-e|0;d=(b|0)<(i|0)?b:i;i=-1<>>i-d;H[c>>2]=H[c>>2]&(i^-1)|i&H[h>>2];b=b-d|0;h=h+4|0;c=c+(d+e>>>3&536870908)|0}j=c;e=(b|0)/32|0;c=e<<2;d=xa(j,h,c);b=b-(e<<5)|0;if((b|0)<=0){break c}e=c+d|0;b=-1>>>32-b|0;H[e>>2]=H[e>>2]&(b^-1)|b&H[c+h>>2];break c}H[f+28>>2]=e;H[f+24>>2]=h;H[f+20>>2]=i;H[f+16>>2]=j;H[f+12>>2]=d;H[f+8>>2]=c;b=H[f+28>>2];c=H[f+24>>2];h=(H[f+20>>2]-b|0)+(H[f+16>>2]-c<<3)|0;d:{if((h|0)<=0){b=H[f+12>>2];break d}e:{if(!b){b=H[f+12>>2];break e}e=H[f+12>>2];j=32-e|0;k=32-b|0;d=(h|0)<(k|0)?h:k;i=d>>>0>j>>>0?j:d;l=H[f+8>>2];m=H[l>>2]&(-1<>>j-i^-1);j=H[c>>2]&(-1<>>k-d);H[l>>2]=m|(b>>>0>>0?j<>>b-e|0);c=e+i|0;b=c&31;H[f+12>>2]=b;e=l+(c>>>3&536870908)|0;H[f+8>>2]=e;c=d-i|0;if((c|0)>0){H[e>>2]=H[e>>2]&(-1>>>32-c^-1)|j>>>i+H[f+28>>2];H[f+12>>2]=c;b=c}h=h-d|0;c=H[f+24>>2]+4|0;H[f+24>>2]=c}i=-1<=32){j=i^-1;while(1){d=H[f+8>>2];c=H[c>>2];H[d>>2]=j&H[d>>2]|c<>2]=d+4;H[d+4>>2]=i&H[d+4>>2]|c>>>e;c=H[f+24>>2]+4|0;H[f+24>>2]=c;d=h>>>0>63;h=h-32|0;if(d){continue}break}}if((h|0)<=0){break d}d=H[f+8>>2];j=e;e=(e|0)<(h|0)?e:h;j=H[d>>2]&(i&-1>>>j-e^-1);i=H[c>>2]&-1>>>32-h;H[d>>2]=j|i<>2]=b;d=d+(c>>>3&536870908)|0;H[f+8>>2]=d;c=h-e|0;if((c|0)<=0){break d}H[d>>2]=H[d>>2]&(-1>>>32-c^-1)|i>>>e;H[f+12>>2]=c;b=c}c=H[f+8>>2];H[f+4>>2]=b;H[f>>2]=c}da=f+32|0;b=H[a>>2];H[a>>2]=H[g+16>>2];H[g+16>>2]=b;c=H[a+4>>2];H[a+4>>2]=H[g+20>>2];H[g+20>>2]=c;c=H[a+8>>2];H[a+8>>2]=H[g+24>>2];H[g+24>>2]=c;if(!b){break b}qa(b)}da=g+32|0;return}ua();X()}function Sj(a){a=a|0;var b=0,c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0;g=da-16|0;da=g;b=H[a+64>>2];a:{if(!b){break a}i=fa[H[H[b>>2]+32>>2]](b)|0;if(!i){break a}n=(H[i+28>>2]-H[i+24>>2]>>2)-H[i+44>>2]|0;b=H[a+56>>2];d=H[b+8>>2];b:{if((H[b+12>>2]-d|0)<5){break b}H[g+8>>2]=0;H[g>>2]=0;H[g+4>>2]=0;c:{d:{while(1){e:{f:{if(!H[H[(c<<2)+d>>2]+56>>2]){break f}h=fa[H[H[a>>2]+56>>2]](a,c)|0;if(!h){break f}if(H[g+8>>2]!=(f|0)){H[f>>2]=h;f=f+4|0;H[g+4>>2]=f;break f}d=H[g>>2];j=f-d|0;f=j>>2;b=f+1|0;if(b>>>0>=1073741824){break e}e=j>>1;e=j>>>0<2147483644?b>>>0>>0?e:b:1073741823;if(e){if(e>>>0>=1073741824){break d}b=ra(e<<2)}else{b=0}f=b+(f<<2)|0;H[f>>2]=h;f=f+4|0;if((j|0)>0){sa(b,d,j)}H[g+8>>2]=b+(e<<2);H[g+4>>2]=f;H[g>>2]=b;if(!d){break f}qa(d)}m=H[a+56>>2];d=H[m+8>>2];c=c+1|0;if((c|0)>2]-d>>2){continue}break c}break}ua();X()}ya();X()}o=H[i+24>>2];b=H[i+28>>2];g:{if((o|0)==(b|0)){h=H[g>>2];break g}b=b-o>>2;q=b>>>0>1?b:1;h=H[g>>2];b=f-h>>2;r=b>>>0>1?b:1;while(1){e=H[(p<<2)+o>>2];if((e|0)!=-1){h:{if((e|0)<0){c=(e>>>0)%3|0;b=-1;break h}b=(e>>>0)/3|0;c=e-N(b,3)|0;b=H[(H[m+96>>2]+N(b,12)|0)+(c<<2)>>2]}i:{j:{if(c){c=e-1|0;break j}c=e+2|0;if((c|0)!=-1){break j}l=0;break i}l=0;c=H[H[i+12>>2]+(c<<2)>>2];if((c|0)==-1){break i}k:{if((c>>>0)%3|0){d=c-1|0;break k}d=c+2|0;if((d|0)==-1){break i}}j=e;while(1){c=(d|0)<0?-1:H[(H[m+96>>2]+N((d>>>0)/3|0,12)|0)+((d>>>0)%3<<2)>>2];l:{if((b|0)==(c|0)){c=0;if((f|0)==(h|0)){c=b;break l}m:{while(1){k=H[H[(c<<2)+h>>2]+28>>2];if(H[k+(d<<2)>>2]!=H[k+(j<<2)>>2]){break m}c=c+1|0;if((r|0)!=(c|0)){continue}break}c=b;break l}c=b}l=l+1|0}if((d|0)==(e|0)|(d|0)==-1){break i}n:{if((d>>>0)%3|0){b=d-1|0;break n}b=d+2|0;if((b|0)==-1){break i}}k=H[H[i+12>>2]+(b<<2)>>2];if((k|0)==-1){break i}b=c;j=d;c=k+((k>>>0)%3|0?-1:2)|0;d=c;if((c|0)!=-1){continue}break}}c=1;b=e+1|0;b=(b>>>0)%3|0?b:e-2|0;o:{if((b|0)==-1){break o}b=H[H[i+12>>2]+(b<<2)>>2];if((b|0)==-1){break o}c=b+1|0;c=(((c>>>0)%3|0?c:b-2|0)|0)==-1}n=(l+n|0)-((c^-1)&(l|0)!=0)|0}p=p+1|0;if((q|0)!=(p|0)){continue}break}}if(!h){break b}qa(h)}H[a+52>>2]=n}da=g+16|0}function Se(a,b,c,d,e,f,g,h,i){var j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0;j=da-128|0;da=j;a:{b:{c:{if(!Jb(f,g,h,i,0,0,0,0)){break c}m=i&65535;n=i>>>16&32767;d:{e:{if((n|0)!=32767){l=4;if(n){break e}l=f|h|(g|m)?3:2;break d}l=!(f|h|(g|m))}}r=e>>>16|0;o=r&32767;if((o|0)==32767){break c}if(l){break b}}Ha(j+16|0,b,c,d,e,f,g,h,i);e=H[j+16>>2];d=H[j+20>>2];c=H[j+24>>2];b=H[j+28>>2];Ie(j,e,d,c,b,e,d,c,b);d=H[j+8>>2];e=H[j+12>>2];h=H[j>>2];i=H[j+4>>2];break a}m=e&65535|o<<16;p=m;l=d;m=h;q=i>>>16&32767;k=i&65535|q<<16;if((Jb(b,c,l,p,f,g,h,k)|0)<=0){if(Jb(b,c,l,p,f,g,m,k)){h=b;i=c;break a}Ha(j+112|0,b,c,d,e,0,0,0,0);d=H[j+120>>2];e=H[j+124>>2];h=H[j+112>>2];i=H[j+116>>2];break a}if(o){i=c;h=b}else{Ha(j+96|0,b,c,l,p,0,0,0,1081540608);h=H[j+108>>2];p=h;l=H[j+104>>2];o=(h>>>16|0)-120|0;i=H[j+100>>2];h=H[j+96>>2]}if(!q){Ha(j+80|0,f,g,m,k,0,0,0,1081540608);f=H[j+92>>2];k=f;m=H[j+88>>2];q=(k>>>16|0)-120|0;g=H[j+84>>2];f=H[j+80>>2]}s=k&65535|65536;p=p&65535|65536;if((o|0)>(q|0)){while(1){t=l-m|0;k=(g|0)==(i|0)&f>>>0>h>>>0|g>>>0>i>>>0;n=(p-((l>>>0>>0)+s|0)|0)-(t>>>0>>0)|0;k=t-k|0;f:{if((n|0)>0|(n|0)>=0){l=h;h=h-f|0;i=i-((f>>>0>l>>>0)+g|0)|0;if(!(h|k|(i|n))){Ha(j+32|0,b,c,d,e,0,0,0,0);d=H[j+40>>2];e=H[j+44>>2];h=H[j+32>>2];i=H[j+36>>2];break a}n=n<<1|k>>>31;l=k<<1|i>>>31;p=n;break f}n=p<<1|l>>>31;l=l<<1|i>>>31;p=n}n=i<<1|h>>>31;h=h<<1;i=n;o=o-1|0;if((q|0)<(o|0)){continue}break}o=q}q=l-m|0;n=(g|0)==(i|0)&f>>>0>h>>>0|g>>>0>i>>>0;k=(p-((l>>>0>>0)+s|0)|0)-(q>>>0>>0)|0;m=q-n|0;g:{if((k|0)<0){m=l;k=p;break g}l=h;h=h-f|0;i=i-((f>>>0>l>>>0)+g|0)|0;if(h|m|(i|k)){break g}Ha(j+48|0,b,c,d,e,0,0,0,0);d=H[j+56>>2];e=H[j+60>>2];h=H[j+48>>2];i=H[j+52>>2];break a}if((k|0)==65535|k>>>0<65535){while(1){b=i>>>31|0;o=o-1|0;p=i<<1|h>>>31;h=h<<1;i=p;c=b;b=m;k=k<<1|b>>>31;m=c|b<<1;if(k>>>0<65536){continue}break}}b=r&32768;if((o|0)<=0){Ha(j- -64|0,h,i,m,k&65535|(b|o+120)<<16,0,0,0,1065811968);d=H[j+72>>2];e=H[j+76>>2];h=H[j+64>>2];i=H[j+68>>2];break a}d=m;e=k&65535|(b|o)<<16}H[a>>2]=h;H[a+4>>2]=i;H[a+8>>2]=d;H[a+12>>2]=e;da=j+128|0}function hf(a,b){var c=0,d=0,e=0,f=0;f=da-16|0;da=f;e=ra(32);H[f>>2]=e;H[f+4>>2]=30;H[f+8>>2]=-2147483616;F[e+30|0]=0;c=I[1240]|I[1241]<<8|(I[1242]<<16|I[1243]<<24);d=I[1236]|I[1237]<<8|(I[1238]<<16|I[1239]<<24);F[e+22|0]=d;F[e+23|0]=d>>>8;F[e+24|0]=d>>>16;F[e+25|0]=d>>>24;F[e+26|0]=c;F[e+27|0]=c>>>8;F[e+28|0]=c>>>16;F[e+29|0]=c>>>24;c=I[1234]|I[1235]<<8|(I[1236]<<16|I[1237]<<24);d=I[1230]|I[1231]<<8|(I[1232]<<16|I[1233]<<24);F[e+16|0]=d;F[e+17|0]=d>>>8;F[e+18|0]=d>>>16;F[e+19|0]=d>>>24;F[e+20|0]=c;F[e+21|0]=c>>>8;F[e+22|0]=c>>>16;F[e+23|0]=c>>>24;c=I[1226]|I[1227]<<8|(I[1228]<<16|I[1229]<<24);d=I[1222]|I[1223]<<8|(I[1224]<<16|I[1225]<<24);F[e+8|0]=d;F[e+9|0]=d>>>8;F[e+10|0]=d>>>16;F[e+11|0]=d>>>24;F[e+12|0]=c;F[e+13|0]=c>>>8;F[e+14|0]=c>>>16;F[e+15|0]=c>>>24;c=I[1218]|I[1219]<<8|(I[1220]<<16|I[1221]<<24);d=I[1214]|I[1215]<<8|(I[1216]<<16|I[1217]<<24);F[e|0]=d;F[e+1|0]=d>>>8;F[e+2|0]=d>>>16;F[e+3|0]=d>>>24;F[e+4|0]=c;F[e+5|0]=c>>>8;F[e+6|0]=c>>>16;F[e+7|0]=c>>>24;e=a+4|0;tb(e,f,b);if(F[f+11|0]<0){qa(H[f>>2])}a=ra(32);H[f>>2]=a;H[f+4>>2]=29;H[f+8>>2]=-2147483616;F[a+29|0]=0;c=I[1308]|I[1309]<<8|(I[1310]<<16|I[1311]<<24);d=I[1304]|I[1305]<<8|(I[1306]<<16|I[1307]<<24);F[a+21|0]=d;F[a+22|0]=d>>>8;F[a+23|0]=d>>>16;F[a+24|0]=d>>>24;F[a+25|0]=c;F[a+26|0]=c>>>8;F[a+27|0]=c>>>16;F[a+28|0]=c>>>24;c=I[1303]|I[1304]<<8|(I[1305]<<16|I[1306]<<24);d=I[1299]|I[1300]<<8|(I[1301]<<16|I[1302]<<24);F[a+16|0]=d;F[a+17|0]=d>>>8;F[a+18|0]=d>>>16;F[a+19|0]=d>>>24;F[a+20|0]=c;F[a+21|0]=c>>>8;F[a+22|0]=c>>>16;F[a+23|0]=c>>>24;c=I[1295]|I[1296]<<8|(I[1297]<<16|I[1298]<<24);d=I[1291]|I[1292]<<8|(I[1293]<<16|I[1294]<<24);F[a+8|0]=d;F[a+9|0]=d>>>8;F[a+10|0]=d>>>16;F[a+11|0]=d>>>24;F[a+12|0]=c;F[a+13|0]=c>>>8;F[a+14|0]=c>>>16;F[a+15|0]=c>>>24;c=I[1287]|I[1288]<<8|(I[1289]<<16|I[1290]<<24);d=I[1283]|I[1284]<<8|(I[1285]<<16|I[1286]<<24);F[a|0]=d;F[a+1|0]=d>>>8;F[a+2|0]=d>>>16;F[a+3|0]=d>>>24;F[a+4|0]=c;F[a+5|0]=c>>>8;F[a+6|0]=c>>>16;F[a+7|0]=c>>>24;tb(e,f,b);if(F[f+11|0]<0){qa(H[f>>2])}da=f+16|0}function Ei(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,f=0,g=0,h=0;f=da+-64|0;da=f;a:{b:{c:{d:{e:{f:{if(!b){break f}e=sb(c);if(e>>>0>=4294967280){break e}g:{h:{if(e>>>0>=11){g=e+16&-16;a=ra(g);H[f+56>>2]=g|-2147483648;H[f+48>>2]=a;H[f+52>>2]=e;break h}F[f+59|0]=e;a=f+48|0;if(!e){break g}}sa(a,c,e)}F[a+e|0]=0;e=sb(d);if(e>>>0>=4294967280){break d}i:{j:{if(e>>>0>=11){g=e+16&-16;a=ra(g);H[f+40>>2]=g|-2147483648;H[f+32>>2]=a;H[f+36>>2]=e;break j}F[f+43|0]=e;a=f+32|0;if(!e){break i}}sa(a,d,e)}F[a+e|0]=0;e=sb(c);if(e>>>0>=4294967280){break c}k:{l:{if(e>>>0>=11){g=e+16&-16;a=ra(g);H[f+24>>2]=g|-2147483648;H[f+16>>2]=a;H[f+20>>2]=e;break l}F[f+27|0]=e;a=f+16|0;if(!e){break k}}sa(a,c,e)}F[a+e|0]=0;c=sb(d);if(c>>>0>=4294967280){break b}m:{n:{if(c>>>0>=11){e=c+16&-16;a=ra(e);H[f+8>>2]=e|-2147483648;H[f>>2]=a;H[f+4>>2]=c;break n}F[f+11|0]=c;a=f;if(!c){break m}}sa(a,d,c)}F[a+c|0]=0;e=da-48|0;da=e;d=ob(b,f+16|0);if((d|0)!=(b+4|0)){a=H[d+4>>2];o:{if(!a){a=d;while(1){c=H[a+8>>2];g=H[c>>2]!=(a|0);a=c;if(g){continue}break}break o}while(1){c=a;a=H[a>>2];if(a){continue}break}}if((d|0)==H[b>>2]){H[b>>2]=c}H[b+8>>2]=H[b+8>>2]-1;Bc(H[b+4>>2],d);a=H[d+28>>2];if(a){H[d+32>>2]=a;qa(a)}if(F[d+27|0]<0){qa(H[d+16>>2])}qa(d)}g=0;H[e+8>>2]=0;H[e>>2]=0;H[e+4>>2]=0;c=I[f+11|0];d=c<<24>>24;p:{q:{h=H[f+4>>2];a=(d|0)<0?h:c;if(a){if((a|0)<0){break q}c=a;g=ra(a);a=ta(g,0,a);c=c+a|0;H[e+8>>2]=c;H[e+4>>2]=c;H[e>>2]=a;h=H[f+4>>2];c=I[f+11|0];d=c}a=d<<24>>24<0;sa(g,a?H[f>>2]:f,a?h:c);break p}ua();X()}r:{if(F[f+27|0]>=0){H[e+24>>2]=H[f+24>>2];a=H[f+20>>2];H[e+16>>2]=H[f+16>>2];H[e+20>>2]=a;break r}Ia(e+16|0,H[f+16>>2],H[f+20>>2])}Qb(e+28|0,e);a=e+16|0;Ac(e+40|0,b,a,a);a=H[e+28>>2];if(a){H[e+32>>2]=a;qa(a)}if(F[e+27|0]<0){qa(H[e+16>>2])}a=H[e>>2];if(a){H[e+4>>2]=a;qa(a)}da=e+48|0;if(F[f+11|0]<0){qa(H[f>>2])}if(F[f+27|0]<0){qa(H[f+16>>2])}if(F[f+43|0]<0){qa(H[f+32>>2])}if(F[f+59|0]>=0){break f}qa(H[f+48>>2])}da=f- -64|0;a=(b|0)!=0;break a}hb();X()}hb();X()}hb();X()}hb();X()}return a|0}function Jk(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0;H[a+8>>2]=e;o=a+32|0;f=H[o>>2];h=H[a+36>>2]-f>>2;a:{if(h>>>0>>0){Fa(o,e-h|0);break a}if(e>>>0>=h>>>0){break a}H[a+36>>2]=f+(e<<2)}b:{if(!d){break b}g=H[b>>2];c:{if((d|0)<2){h=g;break c}f=1;h=d-1|0;n=h&1;d:{if((d|0)==2){h=g;break d}j=h&-2;h=g;while(1){l=(f<<2)+b|0;m=H[l+4>>2];k=H[l>>2];q=(k|0)<(h|0);h=q?k:h;l=(h|0)>(m|0);h=l?m:h;g=q?g:(g|0)<(k|0)?k:g;g=l?g:(g|0)<(m|0)?m:g;f=f+2|0;i=i+2|0;if((j|0)!=(i|0)){continue}break}}if(!n){break c}i=H[(f<<2)+b>>2];f=(i|0)<(h|0);h=f?i:h;g=f?g:(g|0)<(i|0)?i:g}H[a+16>>2]=g;H[a+12>>2]=h;f=(g>>31)-((h>>31)+(g>>>0>>0)|0)|0;h=g-h|0;if(!f&h>>>0>2147483646|f){break b}h=h+1|0;H[a+20>>2]=h;f=h>>>1|0;H[a+24>>2]=f;H[a+28>>2]=0-f;if(h&1){break b}H[a+24>>2]=f-1}p=d-e|0;e:{if((p|0)<=0){g=H[a+8>>2];break e}g=H[a+8>>2];if((g|0)<=0){break e}q=0-e<<2;while(1){if((g|0)>0){d=p<<2;n=d+c|0;j=b+d|0;i=j+q|0;l=H[o>>2];h=0;while(1){f=l;if((g|0)>0){f=H[o>>2];g=0;while(1){k=g<<2;m=H[k+i>>2];d=H[a+16>>2];f:{if((m|0)>(d|0)){H[f+k>>2]=d;break f}k=f+k|0;d=H[a+12>>2];if((d|0)>(m|0)){H[k>>2]=d;break f}H[k>>2]=m}g=g+1|0;if((g|0)>2]){continue}break}}g=h<<2;d=g+n|0;g=H[g+j>>2]-H[f+g>>2]|0;H[d>>2]=g;g:{if((g|0)>2]){g=g+H[a+20>>2]|0}else{if((g|0)<=H[a+24>>2]){break g}g=g-H[a+20>>2]|0}H[d>>2]=g}i=f;g=H[a+8>>2];h=h+1|0;if((g|0)>(h|0)){continue}break}}p=p-e|0;if((p|0)>0){continue}break}}h=0;d=(e&1073741823)!=(e|0)?-1:e<<2;l=ta(ra(d),0,d);if((g|0)>0){e=H[a+32>>2];i=l;while(1){f=e;if((g|0)>0){f=H[o>>2];g=0;while(1){j=g<<2;n=H[j+i>>2];d=H[a+16>>2];h:{if((n|0)>(d|0)){H[f+j>>2]=d;break h}j=f+j|0;d=H[a+12>>2];if((d|0)>(n|0)){H[j>>2]=d;break h}H[j>>2]=n}g=g+1|0;if((g|0)>2]){continue}break}}g=h<<2;d=g+c|0;g=H[b+g>>2]-H[f+g>>2]|0;H[d>>2]=g;i:{if((g|0)>2]){g=g+H[a+20>>2]|0}else{if((g|0)<=H[a+24>>2]){break i}g=g-H[a+20>>2]|0}H[d>>2]=g}i=f;g=H[a+8>>2];h=h+1|0;if((g|0)>(h|0)){continue}break}}qa(l);return 1}function kd(a,b){var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0;j=da-32|0;da=j;H[a+4>>2]=0;H[a+8>>2]=0;c=a+16|0;H[c>>2]=0;H[c+4>>2]=0;i=a+4|0;H[a>>2]=i;H[a+12>>2]=c;f=H[b>>2];k=b+4|0;if((f|0)!=(k|0)){while(1){g=da-16|0;da=g;c=f+16|0;h=Hg(a,i,g+12|0,g+8|0,c);d=H[h>>2];if(d){c=0}else{d=ra(40);e=d+16|0;a:{if(F[c+11|0]>=0){m=H[c+4>>2];H[e>>2]=H[c>>2];H[e+4>>2]=m;H[e+8>>2]=H[c+8>>2];break a}Ia(e,H[c>>2],H[c+4>>2])}Qb(d+28|0,c+12|0);H[d+8>>2]=H[g+12>>2];H[d>>2]=0;H[d+4>>2]=0;H[h>>2]=d;c=d;e=H[H[a>>2]>>2];if(e){H[a>>2]=e;c=H[h>>2]}ub(H[a+4>>2],c);H[a+8>>2]=H[a+8>>2]+1;c=1}F[j+28|0]=c;H[j+24>>2]=d;da=g+16|0;c=H[f+4>>2];b:{if(c){while(1){f=c;c=H[c>>2];if(c){continue}break b}}while(1){c=f;f=H[f+8>>2];if((c|0)!=H[f>>2]){continue}break}}if((f|0)!=(k|0)){continue}break}}f=H[b+12>>2];m=b+16|0;if((f|0)!=(m|0)){g=a+12|0;while(1){n=ra(24);kd(n,H[f+28>>2]);b=f+16|0;H[j+16>>2]=b;c:{d:{c=H[g+4>>2];e:{if(!c){d=g+4|0;b=d;break e}d=I[b+11|0];e=d<<24>>24<0;h=e?H[b>>2]:b;e=e?H[b+4>>2]:d;while(1){b=c;i=I[c+27|0];d=i<<24>>24<0;c=d?H[c+20>>2]:i;i=c>>>0>>0;f:{g:{h:{i:{k=i?c:e;j:{if(k){l=b+16|0;d=d?H[l>>2]:l;l=Ea(h,d,k);if(!l){if(c>>>0>e>>>0){break j}break i}if((l|0)>=0){break i}break j}if(c>>>0<=e>>>0){break h}}d=b;c=H[b>>2];if(c){continue}break e}c=Ea(d,h,k);if(c){break g}}if(i){break f}break d}if((c|0)>=0){break d}}c=H[b+4>>2];if(c){continue}break}d=b+4|0}c=ra(32);h=c+16|0;e=H[j+16>>2];k:{if(F[e+11|0]>=0){i=H[e+4>>2];H[h>>2]=H[e>>2];H[h+4>>2]=i;H[h+8>>2]=H[e+8>>2];break k}Ia(h,H[e>>2],H[e+4>>2])}H[c+8>>2]=b;H[c>>2]=0;H[c+4>>2]=0;H[c+28>>2]=0;H[d>>2]=c;b=c;e=H[H[g>>2]>>2];if(e){H[g>>2]=e;b=H[d>>2]}ub(H[g+4>>2],b);H[g+8>>2]=H[g+8>>2]+1;b=1;break c}c=b;b=0}F[j+28|0]=b;H[j+24>>2]=c;c=H[j+24>>2];b=H[c+28>>2];H[c+28>>2]=n;if(b){lb(b+12|0,H[b+16>>2]);kb(b,H[b+4>>2]);qa(b)}c=H[f+4>>2];l:{if(c){while(1){f=c;c=H[c>>2];if(c){continue}break l}}while(1){b=f;f=H[f+8>>2];if((b|0)!=H[f>>2]){continue}break}}if((f|0)!=(m|0)){continue}break}}da=j+32|0;return a}function Od(a,b,c,d,e,f,g,h){var i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0;a:{b:{if(!f){break b}while(1){if((e|0)<=(h|0)|(f|0)<=(h|0)){break a}if(!e){break b}i=H[d>>2];p=H[i>>2];c:{d:{q=H[i+4>>2]-p>>3;k=H[b>>2];e:{if(q>>>0<=k>>>0){break e}i=p+(k<<3)|0;while(1){l=H[a>>2];if(l>>>0>=q>>>0){break e}if(K[i>>2]>=K[p+(l<<3)>>2]){a=a+4|0;e=e-1|0;if(e){continue}break b}break}f:{g:{if((e|0)<(f|0)){r=(f|0)/2|0;l=(r<<2)+b|0;h:{if((a|0)==(b|0)){k=b;break h}m=H[l>>2];if(m>>>0>=q>>>0){break e}j=b-a>>2;o=j>>>1|0;k=(o<<2)+a|0;i=H[k>>2];if(i>>>0>=q>>>0){break e}n=H[p+(m<<3)>>2];i=n>>>0>2];k=i?a:k+4|0;i=i?o:j+(o^-1)|0;if(!i){break h}while(1){o=i>>>1|0;m=(o<<2)+k|0;j=H[m>>2];if(j>>>0>=q>>>0){break e}j=n>>>0>2];k=j?k:m+4|0;i=j?o:(o^-1)+i|0;if(i){continue}break}}o=k-a>>2;break g}if((e|0)==1){H[a>>2]=k;H[b>>2]=l;return}o=(e|0)/2|0;k=(o<<2)+a|0;l=c;if((l|0)!=(b|0)){i=c-b>>2;l=H[k>>2];if(l>>>0>=q>>>0){break f}n=p+(l<<3)|0;l=b;while(1){r=i>>>1|0;m=(r<<2)+l|0;j=H[m>>2];if(j>>>0>=q>>>0){break e}j=K[p+(j<<3)>>2]>2];l=j?m+4|0:l;i=j?(r^-1)+i|0:r;if(i){continue}break}}r=l-b>>2}f=f-r|0;e=e-o|0;i=l;if((b|0)==(k|0)){break c}i=k;if((b|0)==(l|0)){break c}if((k+4|0)!=(b|0)){break d}j=H[k>>2];i=b;b=l-b|0;i=xa(k,i,b)+b|0;H[i>>2]=j;break c}}va();X()}if((b+4|0)==(l|0)){b=l-4|0;j=H[b>>2];i=l;if((b|0)!=(k|0)){b=b-k|0;i=l-b|0;xa(i,k,b)}H[k>>2]=j;break c}i=b;m=k;p=l-b>>2;j=p;s=b-k>>2;n=s;if((j|0)==(n|0)){while(1){j=H[m>>2];H[m>>2]=H[i>>2];H[i>>2]=j;i=i+4|0;m=m+4|0;if((m|0)!=(b|0)){continue}break}i=b;break c}while(1){b=n;n=j;j=(b|0)%(j|0)|0;if(j){continue}break}if(n){n=(n<<2)+k|0;while(1){n=n-4|0;q=s<<2;m=n+q|0;i=H[n>>2];j=n;while(1){b=j;j=m;H[b>>2]=H[j>>2];b=l-j>>2;m=(b|0)>(s|0)?j+q|0:(s-b<<2)+k|0;if((n|0)!=(m|0)){continue}break}H[j>>2]=i;if((k|0)!=(n|0)){continue}break}}i=(p<<2)+k|0}i:{if((o+r|0)<(e+f|0)){Od(a,k,i,d,o,r,g,h);a=i;b=l;break i}Od(i,l,c,d,e,f,g,h);f=r;e=o;c=i;b=k}if(f){continue}break}}return}Va(a,b,c,d,e,f,g)} -function Wd(a,b,c,d,e,f,g,h){var i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0;a:{b:{if(!f){break b}while(1){if((e|0)<=(h|0)|(f|0)<=(h|0)){break a}if(!e){break b}i=H[d>>2];p=H[i>>2];c:{d:{q=H[i+4>>2]-p>>3;k=H[b>>2];e:{if(q>>>0<=k>>>0){break e}i=p+(k<<3)|0;while(1){l=H[a>>2];if(l>>>0>=q>>>0){break e}if(K[i>>2]>=K[p+(l<<3)>>2]){a=a+4|0;e=e-1|0;if(e){continue}break b}break}f:{g:{if((e|0)<(f|0)){r=(f|0)/2|0;l=(r<<2)+b|0;h:{if((a|0)==(b|0)){k=b;break h}m=H[l>>2];if(m>>>0>=q>>>0){break e}j=b-a>>2;o=j>>>1|0;k=(o<<2)+a|0;i=H[k>>2];if(i>>>0>=q>>>0){break e}n=H[p+(m<<3)>>2];i=n>>>0>2];k=i?a:k+4|0;i=i?o:j+(o^-1)|0;if(!i){break h}while(1){o=i>>>1|0;m=(o<<2)+k|0;j=H[m>>2];if(j>>>0>=q>>>0){break e}j=n>>>0>2];k=j?k:m+4|0;i=j?o:(o^-1)+i|0;if(i){continue}break}}o=k-a>>2;break g}if((e|0)==1){H[a>>2]=k;H[b>>2]=l;return}o=(e|0)/2|0;k=(o<<2)+a|0;l=c;if((l|0)!=(b|0)){i=c-b>>2;l=H[k>>2];if(l>>>0>=q>>>0){break f}n=p+(l<<3)|0;l=b;while(1){r=i>>>1|0;m=(r<<2)+l|0;j=H[m>>2];if(j>>>0>=q>>>0){break e}j=K[p+(j<<3)>>2]>2];l=j?m+4|0:l;i=j?(r^-1)+i|0:r;if(i){continue}break}}r=l-b>>2}f=f-r|0;e=e-o|0;i=l;if((b|0)==(k|0)){break c}i=k;if((b|0)==(l|0)){break c}if((k+4|0)!=(b|0)){break d}j=H[k>>2];i=b;b=l-b|0;i=xa(k,i,b)+b|0;H[i>>2]=j;break c}}va();X()}if((b+4|0)==(l|0)){b=l-4|0;j=H[b>>2];i=l;if((b|0)!=(k|0)){b=b-k|0;i=l-b|0;xa(i,k,b)}H[k>>2]=j;break c}i=b;m=k;p=l-b>>2;j=p;s=b-k>>2;n=s;if((j|0)==(n|0)){while(1){j=H[m>>2];H[m>>2]=H[i>>2];H[i>>2]=j;i=i+4|0;m=m+4|0;if((m|0)!=(b|0)){continue}break}i=b;break c}while(1){b=n;n=j;j=(b|0)%(j|0)|0;if(j){continue}break}if(n){n=(n<<2)+k|0;while(1){n=n-4|0;q=s<<2;m=n+q|0;i=H[n>>2];j=n;while(1){b=j;j=m;H[b>>2]=H[j>>2];b=l-j>>2;m=(b|0)>(s|0)?j+q|0:(s-b<<2)+k|0;if((n|0)!=(m|0)){continue}break}H[j>>2]=i;if((k|0)!=(n|0)){continue}break}}i=(p<<2)+k|0}i:{if((o+r|0)<(e+f|0)){Wd(a,k,i,d,o,r,g,h);a=i;b=l;break i}Wd(i,l,c,d,e,f,g,h);f=r;e=o;c=i;b=k}if(f){continue}break}}return}Va(a,b,c,d,e,f,g)}function Vd(a,b,c,d,e,f,g,h){var i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0;a:{b:{if(!f){break b}while(1){if((e|0)<=(h|0)|(f|0)<=(h|0)){break a}if(!e){break b}i=H[d>>2];p=H[i>>2];c:{d:{q=H[i+4>>2]-p>>3;k=H[b>>2];e:{if(q>>>0<=k>>>0){break e}i=p+(k<<3)|0;while(1){l=H[a>>2];if(l>>>0>=q>>>0){break e}if(K[i>>2]>=K[p+(l<<3)>>2]){a=a+4|0;e=e-1|0;if(e){continue}break b}break}f:{g:{if((e|0)<(f|0)){r=(f|0)/2|0;l=(r<<2)+b|0;h:{if((a|0)==(b|0)){k=b;break h}m=H[l>>2];if(m>>>0>=q>>>0){break e}j=b-a>>2;o=j>>>1|0;k=(o<<2)+a|0;i=H[k>>2];if(i>>>0>=q>>>0){break e}n=H[p+(m<<3)>>2];i=n>>>0>2];k=i?a:k+4|0;i=i?o:j+(o^-1)|0;if(!i){break h}while(1){o=i>>>1|0;m=(o<<2)+k|0;j=H[m>>2];if(j>>>0>=q>>>0){break e}j=n>>>0>2];k=j?k:m+4|0;i=j?o:(o^-1)+i|0;if(i){continue}break}}o=k-a>>2;break g}if((e|0)==1){H[a>>2]=k;H[b>>2]=l;return}o=(e|0)/2|0;k=(o<<2)+a|0;l=c;if((l|0)!=(b|0)){i=c-b>>2;l=H[k>>2];if(l>>>0>=q>>>0){break f}n=p+(l<<3)|0;l=b;while(1){r=i>>>1|0;m=(r<<2)+l|0;j=H[m>>2];if(j>>>0>=q>>>0){break e}j=K[p+(j<<3)>>2]>2];l=j?m+4|0:l;i=j?(r^-1)+i|0:r;if(i){continue}break}}r=l-b>>2}f=f-r|0;e=e-o|0;i=l;if((b|0)==(k|0)){break c}i=k;if((b|0)==(l|0)){break c}if((k+4|0)!=(b|0)){break d}j=H[k>>2];i=b;b=l-b|0;i=xa(k,i,b)+b|0;H[i>>2]=j;break c}}va();X()}if((b+4|0)==(l|0)){b=l-4|0;j=H[b>>2];i=l;if((b|0)!=(k|0)){b=b-k|0;i=l-b|0;xa(i,k,b)}H[k>>2]=j;break c}i=b;m=k;p=l-b>>2;j=p;s=b-k>>2;n=s;if((j|0)==(n|0)){while(1){j=H[m>>2];H[m>>2]=H[i>>2];H[i>>2]=j;i=i+4|0;m=m+4|0;if((m|0)!=(b|0)){continue}break}i=b;break c}while(1){b=n;n=j;j=(b|0)%(j|0)|0;if(j){continue}break}if(n){n=(n<<2)+k|0;while(1){n=n-4|0;q=s<<2;m=n+q|0;i=H[n>>2];j=n;while(1){b=j;j=m;H[b>>2]=H[j>>2];b=l-j>>2;m=(b|0)>(s|0)?j+q|0:(s-b<<2)+k|0;if((n|0)!=(m|0)){continue}break}H[j>>2]=i;if((k|0)!=(n|0)){continue}break}}i=(p<<2)+k|0}i:{if((o+r|0)<(e+f|0)){Vd(a,k,i,d,o,r,g,h);a=i;b=l;break i}Vd(i,l,c,d,e,f,g,h);f=r;e=o;c=i;b=k}if(f){continue}break}}return}Va(a,b,c,d,e,f,g)}function Ud(a,b,c,d,e,f,g,h){var i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0;a:{b:{if(!f){break b}while(1){if((e|0)<=(h|0)|(f|0)<=(h|0)){break a}if(!e){break b}i=H[d>>2];p=H[i>>2];c:{d:{q=H[i+4>>2]-p>>3;k=H[b>>2];e:{if(q>>>0<=k>>>0){break e}i=p+(k<<3)|0;while(1){l=H[a>>2];if(l>>>0>=q>>>0){break e}if(K[i>>2]>=K[p+(l<<3)>>2]){a=a+4|0;e=e-1|0;if(e){continue}break b}break}f:{g:{if((e|0)<(f|0)){r=(f|0)/2|0;l=(r<<2)+b|0;h:{if((a|0)==(b|0)){k=b;break h}m=H[l>>2];if(m>>>0>=q>>>0){break e}j=b-a>>2;o=j>>>1|0;k=(o<<2)+a|0;i=H[k>>2];if(i>>>0>=q>>>0){break e}n=H[p+(m<<3)>>2];i=n>>>0>2];k=i?a:k+4|0;i=i?o:j+(o^-1)|0;if(!i){break h}while(1){o=i>>>1|0;m=(o<<2)+k|0;j=H[m>>2];if(j>>>0>=q>>>0){break e}j=n>>>0>2];k=j?k:m+4|0;i=j?o:(o^-1)+i|0;if(i){continue}break}}o=k-a>>2;break g}if((e|0)==1){H[a>>2]=k;H[b>>2]=l;return}o=(e|0)/2|0;k=(o<<2)+a|0;l=c;if((l|0)!=(b|0)){i=c-b>>2;l=H[k>>2];if(l>>>0>=q>>>0){break f}n=p+(l<<3)|0;l=b;while(1){r=i>>>1|0;m=(r<<2)+l|0;j=H[m>>2];if(j>>>0>=q>>>0){break e}j=K[p+(j<<3)>>2]>2];l=j?m+4|0:l;i=j?(r^-1)+i|0:r;if(i){continue}break}}r=l-b>>2}f=f-r|0;e=e-o|0;i=l;if((b|0)==(k|0)){break c}i=k;if((b|0)==(l|0)){break c}if((k+4|0)!=(b|0)){break d}j=H[k>>2];i=b;b=l-b|0;i=xa(k,i,b)+b|0;H[i>>2]=j;break c}}va();X()}if((b+4|0)==(l|0)){b=l-4|0;j=H[b>>2];i=l;if((b|0)!=(k|0)){b=b-k|0;i=l-b|0;xa(i,k,b)}H[k>>2]=j;break c}i=b;m=k;p=l-b>>2;j=p;s=b-k>>2;n=s;if((j|0)==(n|0)){while(1){j=H[m>>2];H[m>>2]=H[i>>2];H[i>>2]=j;i=i+4|0;m=m+4|0;if((m|0)!=(b|0)){continue}break}i=b;break c}while(1){b=n;n=j;j=(b|0)%(j|0)|0;if(j){continue}break}if(n){n=(n<<2)+k|0;while(1){n=n-4|0;q=s<<2;m=n+q|0;i=H[n>>2];j=n;while(1){b=j;j=m;H[b>>2]=H[j>>2];b=l-j>>2;m=(b|0)>(s|0)?j+q|0:(s-b<<2)+k|0;if((n|0)!=(m|0)){continue}break}H[j>>2]=i;if((k|0)!=(n|0)){continue}break}}i=(p<<2)+k|0}i:{if((o+r|0)<(e+f|0)){Ud(a,k,i,d,o,r,g,h);a=i;b=l;break i}Ud(i,l,c,d,e,f,g,h);f=r;e=o;c=i;b=k}if(f){continue}break}}return}Va(a,b,c,d,e,f,g)}function Td(a,b,c,d,e,f,g,h){var i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0;a:{b:{if(!f){break b}while(1){if((e|0)<=(h|0)|(f|0)<=(h|0)){break a}if(!e){break b}i=H[d>>2];p=H[i>>2];c:{d:{q=H[i+4>>2]-p>>3;k=H[b>>2];e:{if(q>>>0<=k>>>0){break e}i=p+(k<<3)|0;while(1){l=H[a>>2];if(l>>>0>=q>>>0){break e}if(K[i>>2]>=K[p+(l<<3)>>2]){a=a+4|0;e=e-1|0;if(e){continue}break b}break}f:{g:{if((e|0)<(f|0)){r=(f|0)/2|0;l=(r<<2)+b|0;h:{if((a|0)==(b|0)){k=b;break h}m=H[l>>2];if(m>>>0>=q>>>0){break e}j=b-a>>2;o=j>>>1|0;k=(o<<2)+a|0;i=H[k>>2];if(i>>>0>=q>>>0){break e}n=H[p+(m<<3)>>2];i=n>>>0>2];k=i?a:k+4|0;i=i?o:j+(o^-1)|0;if(!i){break h}while(1){o=i>>>1|0;m=(o<<2)+k|0;j=H[m>>2];if(j>>>0>=q>>>0){break e}j=n>>>0>2];k=j?k:m+4|0;i=j?o:(o^-1)+i|0;if(i){continue}break}}o=k-a>>2;break g}if((e|0)==1){H[a>>2]=k;H[b>>2]=l;return}o=(e|0)/2|0;k=(o<<2)+a|0;l=c;if((l|0)!=(b|0)){i=c-b>>2;l=H[k>>2];if(l>>>0>=q>>>0){break f}n=p+(l<<3)|0;l=b;while(1){r=i>>>1|0;m=(r<<2)+l|0;j=H[m>>2];if(j>>>0>=q>>>0){break e}j=K[p+(j<<3)>>2]>2];l=j?m+4|0:l;i=j?(r^-1)+i|0:r;if(i){continue}break}}r=l-b>>2}f=f-r|0;e=e-o|0;i=l;if((b|0)==(k|0)){break c}i=k;if((b|0)==(l|0)){break c}if((k+4|0)!=(b|0)){break d}j=H[k>>2];i=b;b=l-b|0;i=xa(k,i,b)+b|0;H[i>>2]=j;break c}}va();X()}if((b+4|0)==(l|0)){b=l-4|0;j=H[b>>2];i=l;if((b|0)!=(k|0)){b=b-k|0;i=l-b|0;xa(i,k,b)}H[k>>2]=j;break c}i=b;m=k;p=l-b>>2;j=p;s=b-k>>2;n=s;if((j|0)==(n|0)){while(1){j=H[m>>2];H[m>>2]=H[i>>2];H[i>>2]=j;i=i+4|0;m=m+4|0;if((m|0)!=(b|0)){continue}break}i=b;break c}while(1){b=n;n=j;j=(b|0)%(j|0)|0;if(j){continue}break}if(n){n=(n<<2)+k|0;while(1){n=n-4|0;q=s<<2;m=n+q|0;i=H[n>>2];j=n;while(1){b=j;j=m;H[b>>2]=H[j>>2];b=l-j>>2;m=(b|0)>(s|0)?j+q|0:(s-b<<2)+k|0;if((n|0)!=(m|0)){continue}break}H[j>>2]=i;if((k|0)!=(n|0)){continue}break}}i=(p<<2)+k|0}i:{if((o+r|0)<(e+f|0)){Td(a,k,i,d,o,r,g,h);a=i;b=l;break i}Td(i,l,c,d,e,f,g,h);f=r;e=o;c=i;b=k}if(f){continue}break}}return}Va(a,b,c,d,e,f,g)}function Sd(a,b,c,d,e,f,g,h){var i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0;a:{b:{if(!f){break b}while(1){if((e|0)<=(h|0)|(f|0)<=(h|0)){break a}if(!e){break b}i=H[d>>2];p=H[i>>2];c:{d:{q=H[i+4>>2]-p>>3;k=H[b>>2];e:{if(q>>>0<=k>>>0){break e}i=p+(k<<3)|0;while(1){l=H[a>>2];if(l>>>0>=q>>>0){break e}if(K[i>>2]>=K[p+(l<<3)>>2]){a=a+4|0;e=e-1|0;if(e){continue}break b}break}f:{g:{if((e|0)<(f|0)){r=(f|0)/2|0;l=(r<<2)+b|0;h:{if((a|0)==(b|0)){k=b;break h}m=H[l>>2];if(m>>>0>=q>>>0){break e}j=b-a>>2;o=j>>>1|0;k=(o<<2)+a|0;i=H[k>>2];if(i>>>0>=q>>>0){break e}n=H[p+(m<<3)>>2];i=n>>>0>2];k=i?a:k+4|0;i=i?o:j+(o^-1)|0;if(!i){break h}while(1){o=i>>>1|0;m=(o<<2)+k|0;j=H[m>>2];if(j>>>0>=q>>>0){break e}j=n>>>0>2];k=j?k:m+4|0;i=j?o:(o^-1)+i|0;if(i){continue}break}}o=k-a>>2;break g}if((e|0)==1){H[a>>2]=k;H[b>>2]=l;return}o=(e|0)/2|0;k=(o<<2)+a|0;l=c;if((l|0)!=(b|0)){i=c-b>>2;l=H[k>>2];if(l>>>0>=q>>>0){break f}n=p+(l<<3)|0;l=b;while(1){r=i>>>1|0;m=(r<<2)+l|0;j=H[m>>2];if(j>>>0>=q>>>0){break e}j=K[p+(j<<3)>>2]>2];l=j?m+4|0:l;i=j?(r^-1)+i|0:r;if(i){continue}break}}r=l-b>>2}f=f-r|0;e=e-o|0;i=l;if((b|0)==(k|0)){break c}i=k;if((b|0)==(l|0)){break c}if((k+4|0)!=(b|0)){break d}j=H[k>>2];i=b;b=l-b|0;i=xa(k,i,b)+b|0;H[i>>2]=j;break c}}va();X()}if((b+4|0)==(l|0)){b=l-4|0;j=H[b>>2];i=l;if((b|0)!=(k|0)){b=b-k|0;i=l-b|0;xa(i,k,b)}H[k>>2]=j;break c}i=b;m=k;p=l-b>>2;j=p;s=b-k>>2;n=s;if((j|0)==(n|0)){while(1){j=H[m>>2];H[m>>2]=H[i>>2];H[i>>2]=j;i=i+4|0;m=m+4|0;if((m|0)!=(b|0)){continue}break}i=b;break c}while(1){b=n;n=j;j=(b|0)%(j|0)|0;if(j){continue}break}if(n){n=(n<<2)+k|0;while(1){n=n-4|0;q=s<<2;m=n+q|0;i=H[n>>2];j=n;while(1){b=j;j=m;H[b>>2]=H[j>>2];b=l-j>>2;m=(b|0)>(s|0)?j+q|0:(s-b<<2)+k|0;if((n|0)!=(m|0)){continue}break}H[j>>2]=i;if((k|0)!=(n|0)){continue}break}}i=(p<<2)+k|0}i:{if((o+r|0)<(e+f|0)){Sd(a,k,i,d,o,r,g,h);a=i;b=l;break i}Sd(i,l,c,d,e,f,g,h);f=r;e=o;c=i;b=k}if(f){continue}break}}return}Va(a,b,c,d,e,f,g)}function Rd(a,b,c,d,e,f,g,h){var i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0;a:{b:{if(!f){break b}while(1){if((e|0)<=(h|0)|(f|0)<=(h|0)){break a}if(!e){break b}i=H[d>>2];p=H[i>>2];c:{d:{q=H[i+4>>2]-p>>3;k=H[b>>2];e:{if(q>>>0<=k>>>0){break e}i=p+(k<<3)|0;while(1){l=H[a>>2];if(l>>>0>=q>>>0){break e}if(K[i>>2]>=K[p+(l<<3)>>2]){a=a+4|0;e=e-1|0;if(e){continue}break b}break}f:{g:{if((e|0)<(f|0)){r=(f|0)/2|0;l=(r<<2)+b|0;h:{if((a|0)==(b|0)){k=b;break h}m=H[l>>2];if(m>>>0>=q>>>0){break e}j=b-a>>2;o=j>>>1|0;k=(o<<2)+a|0;i=H[k>>2];if(i>>>0>=q>>>0){break e}n=H[p+(m<<3)>>2];i=n>>>0>2];k=i?a:k+4|0;i=i?o:j+(o^-1)|0;if(!i){break h}while(1){o=i>>>1|0;m=(o<<2)+k|0;j=H[m>>2];if(j>>>0>=q>>>0){break e}j=n>>>0>2];k=j?k:m+4|0;i=j?o:(o^-1)+i|0;if(i){continue}break}}o=k-a>>2;break g}if((e|0)==1){H[a>>2]=k;H[b>>2]=l;return}o=(e|0)/2|0;k=(o<<2)+a|0;l=c;if((l|0)!=(b|0)){i=c-b>>2;l=H[k>>2];if(l>>>0>=q>>>0){break f}n=p+(l<<3)|0;l=b;while(1){r=i>>>1|0;m=(r<<2)+l|0;j=H[m>>2];if(j>>>0>=q>>>0){break e}j=K[p+(j<<3)>>2]>2];l=j?m+4|0:l;i=j?(r^-1)+i|0:r;if(i){continue}break}}r=l-b>>2}f=f-r|0;e=e-o|0;i=l;if((b|0)==(k|0)){break c}i=k;if((b|0)==(l|0)){break c}if((k+4|0)!=(b|0)){break d}j=H[k>>2];i=b;b=l-b|0;i=xa(k,i,b)+b|0;H[i>>2]=j;break c}}va();X()}if((b+4|0)==(l|0)){b=l-4|0;j=H[b>>2];i=l;if((b|0)!=(k|0)){b=b-k|0;i=l-b|0;xa(i,k,b)}H[k>>2]=j;break c}i=b;m=k;p=l-b>>2;j=p;s=b-k>>2;n=s;if((j|0)==(n|0)){while(1){j=H[m>>2];H[m>>2]=H[i>>2];H[i>>2]=j;i=i+4|0;m=m+4|0;if((m|0)!=(b|0)){continue}break}i=b;break c}while(1){b=n;n=j;j=(b|0)%(j|0)|0;if(j){continue}break}if(n){n=(n<<2)+k|0;while(1){n=n-4|0;q=s<<2;m=n+q|0;i=H[n>>2];j=n;while(1){b=j;j=m;H[b>>2]=H[j>>2];b=l-j>>2;m=(b|0)>(s|0)?j+q|0:(s-b<<2)+k|0;if((n|0)!=(m|0)){continue}break}H[j>>2]=i;if((k|0)!=(n|0)){continue}break}}i=(p<<2)+k|0}i:{if((o+r|0)<(e+f|0)){Rd(a,k,i,d,o,r,g,h);a=i;b=l;break i}Rd(i,l,c,d,e,f,g,h);f=r;e=o;c=i;b=k}if(f){continue}break}}return}Va(a,b,c,d,e,f,g)}function Qd(a,b,c,d,e,f,g,h){var i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0;a:{b:{if(!f){break b}while(1){if((e|0)<=(h|0)|(f|0)<=(h|0)){break a}if(!e){break b}i=H[d>>2];p=H[i>>2];c:{d:{q=H[i+4>>2]-p>>3;k=H[b>>2];e:{if(q>>>0<=k>>>0){break e}i=p+(k<<3)|0;while(1){l=H[a>>2];if(l>>>0>=q>>>0){break e}if(K[i>>2]>=K[p+(l<<3)>>2]){a=a+4|0;e=e-1|0;if(e){continue}break b}break}f:{g:{if((e|0)<(f|0)){r=(f|0)/2|0;l=(r<<2)+b|0;h:{if((a|0)==(b|0)){k=b;break h}m=H[l>>2];if(m>>>0>=q>>>0){break e}j=b-a>>2;o=j>>>1|0;k=(o<<2)+a|0;i=H[k>>2];if(i>>>0>=q>>>0){break e}n=H[p+(m<<3)>>2];i=n>>>0>2];k=i?a:k+4|0;i=i?o:j+(o^-1)|0;if(!i){break h}while(1){o=i>>>1|0;m=(o<<2)+k|0;j=H[m>>2];if(j>>>0>=q>>>0){break e}j=n>>>0>2];k=j?k:m+4|0;i=j?o:(o^-1)+i|0;if(i){continue}break}}o=k-a>>2;break g}if((e|0)==1){H[a>>2]=k;H[b>>2]=l;return}o=(e|0)/2|0;k=(o<<2)+a|0;l=c;if((l|0)!=(b|0)){i=c-b>>2;l=H[k>>2];if(l>>>0>=q>>>0){break f}n=p+(l<<3)|0;l=b;while(1){r=i>>>1|0;m=(r<<2)+l|0;j=H[m>>2];if(j>>>0>=q>>>0){break e}j=K[p+(j<<3)>>2]>2];l=j?m+4|0:l;i=j?(r^-1)+i|0:r;if(i){continue}break}}r=l-b>>2}f=f-r|0;e=e-o|0;i=l;if((b|0)==(k|0)){break c}i=k;if((b|0)==(l|0)){break c}if((k+4|0)!=(b|0)){break d}j=H[k>>2];i=b;b=l-b|0;i=xa(k,i,b)+b|0;H[i>>2]=j;break c}}va();X()}if((b+4|0)==(l|0)){b=l-4|0;j=H[b>>2];i=l;if((b|0)!=(k|0)){b=b-k|0;i=l-b|0;xa(i,k,b)}H[k>>2]=j;break c}i=b;m=k;p=l-b>>2;j=p;s=b-k>>2;n=s;if((j|0)==(n|0)){while(1){j=H[m>>2];H[m>>2]=H[i>>2];H[i>>2]=j;i=i+4|0;m=m+4|0;if((m|0)!=(b|0)){continue}break}i=b;break c}while(1){b=n;n=j;j=(b|0)%(j|0)|0;if(j){continue}break}if(n){n=(n<<2)+k|0;while(1){n=n-4|0;q=s<<2;m=n+q|0;i=H[n>>2];j=n;while(1){b=j;j=m;H[b>>2]=H[j>>2];b=l-j>>2;m=(b|0)>(s|0)?j+q|0:(s-b<<2)+k|0;if((n|0)!=(m|0)){continue}break}H[j>>2]=i;if((k|0)!=(n|0)){continue}break}}i=(p<<2)+k|0}i:{if((o+r|0)<(e+f|0)){Qd(a,k,i,d,o,r,g,h);a=i;b=l;break i}Qd(i,l,c,d,e,f,g,h);f=r;e=o;c=i;b=k}if(f){continue}break}}return}Va(a,b,c,d,e,f,g)}function Pd(a,b,c,d,e,f,g,h){var i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0;a:{b:{if(!f){break b}while(1){if((e|0)<=(h|0)|(f|0)<=(h|0)){break a}if(!e){break b}i=H[d>>2];p=H[i>>2];c:{d:{q=H[i+4>>2]-p>>3;k=H[b>>2];e:{if(q>>>0<=k>>>0){break e}i=p+(k<<3)|0;while(1){l=H[a>>2];if(l>>>0>=q>>>0){break e}if(K[i>>2]>=K[p+(l<<3)>>2]){a=a+4|0;e=e-1|0;if(e){continue}break b}break}f:{g:{if((e|0)<(f|0)){r=(f|0)/2|0;l=(r<<2)+b|0;h:{if((a|0)==(b|0)){k=b;break h}m=H[l>>2];if(m>>>0>=q>>>0){break e}j=b-a>>2;o=j>>>1|0;k=(o<<2)+a|0;i=H[k>>2];if(i>>>0>=q>>>0){break e}n=H[p+(m<<3)>>2];i=n>>>0>2];k=i?a:k+4|0;i=i?o:j+(o^-1)|0;if(!i){break h}while(1){o=i>>>1|0;m=(o<<2)+k|0;j=H[m>>2];if(j>>>0>=q>>>0){break e}j=n>>>0>2];k=j?k:m+4|0;i=j?o:(o^-1)+i|0;if(i){continue}break}}o=k-a>>2;break g}if((e|0)==1){H[a>>2]=k;H[b>>2]=l;return}o=(e|0)/2|0;k=(o<<2)+a|0;l=c;if((l|0)!=(b|0)){i=c-b>>2;l=H[k>>2];if(l>>>0>=q>>>0){break f}n=p+(l<<3)|0;l=b;while(1){r=i>>>1|0;m=(r<<2)+l|0;j=H[m>>2];if(j>>>0>=q>>>0){break e}j=K[p+(j<<3)>>2]>2];l=j?m+4|0:l;i=j?(r^-1)+i|0:r;if(i){continue}break}}r=l-b>>2}f=f-r|0;e=e-o|0;i=l;if((b|0)==(k|0)){break c}i=k;if((b|0)==(l|0)){break c}if((k+4|0)!=(b|0)){break d}j=H[k>>2];i=b;b=l-b|0;i=xa(k,i,b)+b|0;H[i>>2]=j;break c}}va();X()}if((b+4|0)==(l|0)){b=l-4|0;j=H[b>>2];i=l;if((b|0)!=(k|0)){b=b-k|0;i=l-b|0;xa(i,k,b)}H[k>>2]=j;break c}i=b;m=k;p=l-b>>2;j=p;s=b-k>>2;n=s;if((j|0)==(n|0)){while(1){j=H[m>>2];H[m>>2]=H[i>>2];H[i>>2]=j;i=i+4|0;m=m+4|0;if((m|0)!=(b|0)){continue}break}i=b;break c}while(1){b=n;n=j;j=(b|0)%(j|0)|0;if(j){continue}break}if(n){n=(n<<2)+k|0;while(1){n=n-4|0;q=s<<2;m=n+q|0;i=H[n>>2];j=n;while(1){b=j;j=m;H[b>>2]=H[j>>2];b=l-j>>2;m=(b|0)>(s|0)?j+q|0:(s-b<<2)+k|0;if((n|0)!=(m|0)){continue}break}H[j>>2]=i;if((k|0)!=(n|0)){continue}break}}i=(p<<2)+k|0}i:{if((o+r|0)<(e+f|0)){Pd(a,k,i,d,o,r,g,h);a=i;b=l;break i}Pd(i,l,c,d,e,f,g,h);f=r;e=o;c=i;b=k}if(f){continue}break}}return}Va(a,b,c,d,e,f,g)}function Nd(a,b,c,d,e,f,g,h){var i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0;a:{b:{if(!f){break b}while(1){if((e|0)<=(h|0)|(f|0)<=(h|0)){break a}if(!e){break b}i=H[d>>2];p=H[i>>2];c:{d:{q=H[i+4>>2]-p>>3;k=H[b>>2];e:{if(q>>>0<=k>>>0){break e}i=p+(k<<3)|0;while(1){l=H[a>>2];if(l>>>0>=q>>>0){break e}if(K[i>>2]>=K[p+(l<<3)>>2]){a=a+4|0;e=e-1|0;if(e){continue}break b}break}f:{g:{if((e|0)<(f|0)){r=(f|0)/2|0;l=(r<<2)+b|0;h:{if((a|0)==(b|0)){k=b;break h}m=H[l>>2];if(m>>>0>=q>>>0){break e}j=b-a>>2;o=j>>>1|0;k=(o<<2)+a|0;i=H[k>>2];if(i>>>0>=q>>>0){break e}n=H[p+(m<<3)>>2];i=n>>>0>2];k=i?a:k+4|0;i=i?o:j+(o^-1)|0;if(!i){break h}while(1){o=i>>>1|0;m=(o<<2)+k|0;j=H[m>>2];if(j>>>0>=q>>>0){break e}j=n>>>0>2];k=j?k:m+4|0;i=j?o:(o^-1)+i|0;if(i){continue}break}}o=k-a>>2;break g}if((e|0)==1){H[a>>2]=k;H[b>>2]=l;return}o=(e|0)/2|0;k=(o<<2)+a|0;l=c;if((l|0)!=(b|0)){i=c-b>>2;l=H[k>>2];if(l>>>0>=q>>>0){break f}n=p+(l<<3)|0;l=b;while(1){r=i>>>1|0;m=(r<<2)+l|0;j=H[m>>2];if(j>>>0>=q>>>0){break e}j=K[p+(j<<3)>>2]>2];l=j?m+4|0:l;i=j?(r^-1)+i|0:r;if(i){continue}break}}r=l-b>>2}f=f-r|0;e=e-o|0;i=l;if((b|0)==(k|0)){break c}i=k;if((b|0)==(l|0)){break c}if((k+4|0)!=(b|0)){break d}j=H[k>>2];i=b;b=l-b|0;i=xa(k,i,b)+b|0;H[i>>2]=j;break c}}va();X()}if((b+4|0)==(l|0)){b=l-4|0;j=H[b>>2];i=l;if((b|0)!=(k|0)){b=b-k|0;i=l-b|0;xa(i,k,b)}H[k>>2]=j;break c}i=b;m=k;p=l-b>>2;j=p;s=b-k>>2;n=s;if((j|0)==(n|0)){while(1){j=H[m>>2];H[m>>2]=H[i>>2];H[i>>2]=j;i=i+4|0;m=m+4|0;if((m|0)!=(b|0)){continue}break}i=b;break c}while(1){b=n;n=j;j=(b|0)%(j|0)|0;if(j){continue}break}if(n){n=(n<<2)+k|0;while(1){n=n-4|0;q=s<<2;m=n+q|0;i=H[n>>2];j=n;while(1){b=j;j=m;H[b>>2]=H[j>>2];b=l-j>>2;m=(b|0)>(s|0)?j+q|0:(s-b<<2)+k|0;if((n|0)!=(m|0)){continue}break}H[j>>2]=i;if((k|0)!=(n|0)){continue}break}}i=(p<<2)+k|0}i:{if((o+r|0)<(e+f|0)){Nd(a,k,i,d,o,r,g,h);a=i;b=l;break i}Nd(i,l,c,d,e,f,g,h);f=r;e=o;c=i;b=k}if(f){continue}break}}return}Va(a,b,c,d,e,f,g)}function Md(a,b,c,d,e,f,g,h){var i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0;a:{b:{if(!f){break b}while(1){if((e|0)<=(h|0)|(f|0)<=(h|0)){break a}if(!e){break b}i=H[d>>2];p=H[i>>2];c:{d:{q=H[i+4>>2]-p>>3;k=H[b>>2];e:{if(q>>>0<=k>>>0){break e}i=p+(k<<3)|0;while(1){l=H[a>>2];if(l>>>0>=q>>>0){break e}if(K[i>>2]>=K[p+(l<<3)>>2]){a=a+4|0;e=e-1|0;if(e){continue}break b}break}f:{g:{if((e|0)<(f|0)){r=(f|0)/2|0;l=(r<<2)+b|0;h:{if((a|0)==(b|0)){k=b;break h}m=H[l>>2];if(m>>>0>=q>>>0){break e}j=b-a>>2;o=j>>>1|0;k=(o<<2)+a|0;i=H[k>>2];if(i>>>0>=q>>>0){break e}n=H[p+(m<<3)>>2];i=n>>>0>2];k=i?a:k+4|0;i=i?o:j+(o^-1)|0;if(!i){break h}while(1){o=i>>>1|0;m=(o<<2)+k|0;j=H[m>>2];if(j>>>0>=q>>>0){break e}j=n>>>0>2];k=j?k:m+4|0;i=j?o:(o^-1)+i|0;if(i){continue}break}}o=k-a>>2;break g}if((e|0)==1){H[a>>2]=k;H[b>>2]=l;return}o=(e|0)/2|0;k=(o<<2)+a|0;l=c;if((l|0)!=(b|0)){i=c-b>>2;l=H[k>>2];if(l>>>0>=q>>>0){break f}n=p+(l<<3)|0;l=b;while(1){r=i>>>1|0;m=(r<<2)+l|0;j=H[m>>2];if(j>>>0>=q>>>0){break e}j=K[p+(j<<3)>>2]>2];l=j?m+4|0:l;i=j?(r^-1)+i|0:r;if(i){continue}break}}r=l-b>>2}f=f-r|0;e=e-o|0;i=l;if((b|0)==(k|0)){break c}i=k;if((b|0)==(l|0)){break c}if((k+4|0)!=(b|0)){break d}j=H[k>>2];i=b;b=l-b|0;i=xa(k,i,b)+b|0;H[i>>2]=j;break c}}va();X()}if((b+4|0)==(l|0)){b=l-4|0;j=H[b>>2];i=l;if((b|0)!=(k|0)){b=b-k|0;i=l-b|0;xa(i,k,b)}H[k>>2]=j;break c}i=b;m=k;p=l-b>>2;j=p;s=b-k>>2;n=s;if((j|0)==(n|0)){while(1){j=H[m>>2];H[m>>2]=H[i>>2];H[i>>2]=j;i=i+4|0;m=m+4|0;if((m|0)!=(b|0)){continue}break}i=b;break c}while(1){b=n;n=j;j=(b|0)%(j|0)|0;if(j){continue}break}if(n){n=(n<<2)+k|0;while(1){n=n-4|0;q=s<<2;m=n+q|0;i=H[n>>2];j=n;while(1){b=j;j=m;H[b>>2]=H[j>>2];b=l-j>>2;m=(b|0)>(s|0)?j+q|0:(s-b<<2)+k|0;if((n|0)!=(m|0)){continue}break}H[j>>2]=i;if((k|0)!=(n|0)){continue}break}}i=(p<<2)+k|0}i:{if((o+r|0)<(e+f|0)){Md(a,k,i,d,o,r,g,h);a=i;b=l;break i}Md(i,l,c,d,e,f,g,h);f=r;e=o;c=i;b=k}if(f){continue}break}}return}Va(a,b,c,d,e,f,g)}function Ld(a,b,c,d,e,f,g,h){var i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0;a:{b:{if(!f){break b}while(1){if((e|0)<=(h|0)|(f|0)<=(h|0)){break a}if(!e){break b}i=H[d>>2];p=H[i>>2];c:{d:{q=H[i+4>>2]-p>>3;k=H[b>>2];e:{if(q>>>0<=k>>>0){break e}i=p+(k<<3)|0;while(1){l=H[a>>2];if(l>>>0>=q>>>0){break e}if(K[i>>2]>=K[p+(l<<3)>>2]){a=a+4|0;e=e-1|0;if(e){continue}break b}break}f:{g:{if((e|0)<(f|0)){r=(f|0)/2|0;l=(r<<2)+b|0;h:{if((a|0)==(b|0)){k=b;break h}m=H[l>>2];if(m>>>0>=q>>>0){break e}j=b-a>>2;o=j>>>1|0;k=(o<<2)+a|0;i=H[k>>2];if(i>>>0>=q>>>0){break e}n=H[p+(m<<3)>>2];i=n>>>0>2];k=i?a:k+4|0;i=i?o:j+(o^-1)|0;if(!i){break h}while(1){o=i>>>1|0;m=(o<<2)+k|0;j=H[m>>2];if(j>>>0>=q>>>0){break e}j=n>>>0>2];k=j?k:m+4|0;i=j?o:(o^-1)+i|0;if(i){continue}break}}o=k-a>>2;break g}if((e|0)==1){H[a>>2]=k;H[b>>2]=l;return}o=(e|0)/2|0;k=(o<<2)+a|0;l=c;if((l|0)!=(b|0)){i=c-b>>2;l=H[k>>2];if(l>>>0>=q>>>0){break f}n=p+(l<<3)|0;l=b;while(1){r=i>>>1|0;m=(r<<2)+l|0;j=H[m>>2];if(j>>>0>=q>>>0){break e}j=K[p+(j<<3)>>2]>2];l=j?m+4|0:l;i=j?(r^-1)+i|0:r;if(i){continue}break}}r=l-b>>2}f=f-r|0;e=e-o|0;i=l;if((b|0)==(k|0)){break c}i=k;if((b|0)==(l|0)){break c}if((k+4|0)!=(b|0)){break d}j=H[k>>2];i=b;b=l-b|0;i=xa(k,i,b)+b|0;H[i>>2]=j;break c}}va();X()}if((b+4|0)==(l|0)){b=l-4|0;j=H[b>>2];i=l;if((b|0)!=(k|0)){b=b-k|0;i=l-b|0;xa(i,k,b)}H[k>>2]=j;break c}i=b;m=k;p=l-b>>2;j=p;s=b-k>>2;n=s;if((j|0)==(n|0)){while(1){j=H[m>>2];H[m>>2]=H[i>>2];H[i>>2]=j;i=i+4|0;m=m+4|0;if((m|0)!=(b|0)){continue}break}i=b;break c}while(1){b=n;n=j;j=(b|0)%(j|0)|0;if(j){continue}break}if(n){n=(n<<2)+k|0;while(1){n=n-4|0;q=s<<2;m=n+q|0;i=H[n>>2];j=n;while(1){b=j;j=m;H[b>>2]=H[j>>2];b=l-j>>2;m=(b|0)>(s|0)?j+q|0:(s-b<<2)+k|0;if((n|0)!=(m|0)){continue}break}H[j>>2]=i;if((k|0)!=(n|0)){continue}break}}i=(p<<2)+k|0}i:{if((o+r|0)<(e+f|0)){Ld(a,k,i,d,o,r,g,h);a=i;b=l;break i}Ld(i,l,c,d,e,f,g,h);f=r;e=o;c=i;b=k}if(f){continue}break}}return}Va(a,b,c,d,e,f,g)}function Kd(a,b,c,d,e,f,g,h){var i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0;a:{b:{if(!f){break b}while(1){if((e|0)<=(h|0)|(f|0)<=(h|0)){break a}if(!e){break b}i=H[d>>2];p=H[i>>2];c:{d:{q=H[i+4>>2]-p>>3;k=H[b>>2];e:{if(q>>>0<=k>>>0){break e}i=p+(k<<3)|0;while(1){l=H[a>>2];if(l>>>0>=q>>>0){break e}if(K[i>>2]>=K[p+(l<<3)>>2]){a=a+4|0;e=e-1|0;if(e){continue}break b}break}f:{g:{if((e|0)<(f|0)){r=(f|0)/2|0;l=(r<<2)+b|0;h:{if((a|0)==(b|0)){k=b;break h}m=H[l>>2];if(m>>>0>=q>>>0){break e}j=b-a>>2;o=j>>>1|0;k=(o<<2)+a|0;i=H[k>>2];if(i>>>0>=q>>>0){break e}n=H[p+(m<<3)>>2];i=n>>>0>2];k=i?a:k+4|0;i=i?o:j+(o^-1)|0;if(!i){break h}while(1){o=i>>>1|0;m=(o<<2)+k|0;j=H[m>>2];if(j>>>0>=q>>>0){break e}j=n>>>0>2];k=j?k:m+4|0;i=j?o:(o^-1)+i|0;if(i){continue}break}}o=k-a>>2;break g}if((e|0)==1){H[a>>2]=k;H[b>>2]=l;return}o=(e|0)/2|0;k=(o<<2)+a|0;l=c;if((l|0)!=(b|0)){i=c-b>>2;l=H[k>>2];if(l>>>0>=q>>>0){break f}n=p+(l<<3)|0;l=b;while(1){r=i>>>1|0;m=(r<<2)+l|0;j=H[m>>2];if(j>>>0>=q>>>0){break e}j=K[p+(j<<3)>>2]>2];l=j?m+4|0:l;i=j?(r^-1)+i|0:r;if(i){continue}break}}r=l-b>>2}f=f-r|0;e=e-o|0;i=l;if((b|0)==(k|0)){break c}i=k;if((b|0)==(l|0)){break c}if((k+4|0)!=(b|0)){break d}j=H[k>>2];i=b;b=l-b|0;i=xa(k,i,b)+b|0;H[i>>2]=j;break c}}va();X()}if((b+4|0)==(l|0)){b=l-4|0;j=H[b>>2];i=l;if((b|0)!=(k|0)){b=b-k|0;i=l-b|0;xa(i,k,b)}H[k>>2]=j;break c}i=b;m=k;p=l-b>>2;j=p;s=b-k>>2;n=s;if((j|0)==(n|0)){while(1){j=H[m>>2];H[m>>2]=H[i>>2];H[i>>2]=j;i=i+4|0;m=m+4|0;if((m|0)!=(b|0)){continue}break}i=b;break c}while(1){b=n;n=j;j=(b|0)%(j|0)|0;if(j){continue}break}if(n){n=(n<<2)+k|0;while(1){n=n-4|0;q=s<<2;m=n+q|0;i=H[n>>2];j=n;while(1){b=j;j=m;H[b>>2]=H[j>>2];b=l-j>>2;m=(b|0)>(s|0)?j+q|0:(s-b<<2)+k|0;if((n|0)!=(m|0)){continue}break}H[j>>2]=i;if((k|0)!=(n|0)){continue}break}}i=(p<<2)+k|0}i:{if((o+r|0)<(e+f|0)){Kd(a,k,i,d,o,r,g,h);a=i;b=l;break i}Kd(i,l,c,d,e,f,g,h);f=r;e=o;c=i;b=k}if(f){continue}break}}return}Va(a,b,c,d,e,f,g)}function Jd(a,b,c,d,e,f,g,h){var i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0;a:{b:{if(!f){break b}while(1){if((e|0)<=(h|0)|(f|0)<=(h|0)){break a}if(!e){break b}i=H[d>>2];p=H[i>>2];c:{d:{q=H[i+4>>2]-p>>3;k=H[b>>2];e:{if(q>>>0<=k>>>0){break e}i=p+(k<<3)|0;while(1){l=H[a>>2];if(l>>>0>=q>>>0){break e}if(K[i>>2]>=K[p+(l<<3)>>2]){a=a+4|0;e=e-1|0;if(e){continue}break b}break}f:{g:{if((e|0)<(f|0)){r=(f|0)/2|0;l=(r<<2)+b|0;h:{if((a|0)==(b|0)){k=b;break h}m=H[l>>2];if(m>>>0>=q>>>0){break e}j=b-a>>2;o=j>>>1|0;k=(o<<2)+a|0;i=H[k>>2];if(i>>>0>=q>>>0){break e}n=H[p+(m<<3)>>2];i=n>>>0>2];k=i?a:k+4|0;i=i?o:j+(o^-1)|0;if(!i){break h}while(1){o=i>>>1|0;m=(o<<2)+k|0;j=H[m>>2];if(j>>>0>=q>>>0){break e}j=n>>>0>2];k=j?k:m+4|0;i=j?o:(o^-1)+i|0;if(i){continue}break}}o=k-a>>2;break g}if((e|0)==1){H[a>>2]=k;H[b>>2]=l;return}o=(e|0)/2|0;k=(o<<2)+a|0;l=c;if((l|0)!=(b|0)){i=c-b>>2;l=H[k>>2];if(l>>>0>=q>>>0){break f}n=p+(l<<3)|0;l=b;while(1){r=i>>>1|0;m=(r<<2)+l|0;j=H[m>>2];if(j>>>0>=q>>>0){break e}j=K[p+(j<<3)>>2]>2];l=j?m+4|0:l;i=j?(r^-1)+i|0:r;if(i){continue}break}}r=l-b>>2}f=f-r|0;e=e-o|0;i=l;if((b|0)==(k|0)){break c}i=k;if((b|0)==(l|0)){break c}if((k+4|0)!=(b|0)){break d}j=H[k>>2];i=b;b=l-b|0;i=xa(k,i,b)+b|0;H[i>>2]=j;break c}}va();X()}if((b+4|0)==(l|0)){b=l-4|0;j=H[b>>2];i=l;if((b|0)!=(k|0)){b=b-k|0;i=l-b|0;xa(i,k,b)}H[k>>2]=j;break c}i=b;m=k;p=l-b>>2;j=p;s=b-k>>2;n=s;if((j|0)==(n|0)){while(1){j=H[m>>2];H[m>>2]=H[i>>2];H[i>>2]=j;i=i+4|0;m=m+4|0;if((m|0)!=(b|0)){continue}break}i=b;break c}while(1){b=n;n=j;j=(b|0)%(j|0)|0;if(j){continue}break}if(n){n=(n<<2)+k|0;while(1){n=n-4|0;q=s<<2;m=n+q|0;i=H[n>>2];j=n;while(1){b=j;j=m;H[b>>2]=H[j>>2];b=l-j>>2;m=(b|0)>(s|0)?j+q|0:(s-b<<2)+k|0;if((n|0)!=(m|0)){continue}break}H[j>>2]=i;if((k|0)!=(n|0)){continue}break}}i=(p<<2)+k|0}i:{if((o+r|0)<(e+f|0)){Jd(a,k,i,d,o,r,g,h);a=i;b=l;break i}Jd(i,l,c,d,e,f,g,h);f=r;e=o;c=i;b=k}if(f){continue}break}}return}Va(a,b,c,d,e,f,g)}function Id(a,b,c,d,e,f,g,h){var i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0;a:{b:{if(!f){break b}while(1){if((e|0)<=(h|0)|(f|0)<=(h|0)){break a}if(!e){break b}i=H[d>>2];p=H[i>>2];c:{d:{q=H[i+4>>2]-p>>3;k=H[b>>2];e:{if(q>>>0<=k>>>0){break e}i=p+(k<<3)|0;while(1){l=H[a>>2];if(l>>>0>=q>>>0){break e}if(K[i>>2]>=K[p+(l<<3)>>2]){a=a+4|0;e=e-1|0;if(e){continue}break b}break}f:{g:{if((e|0)<(f|0)){r=(f|0)/2|0;l=(r<<2)+b|0;h:{if((a|0)==(b|0)){k=b;break h}m=H[l>>2];if(m>>>0>=q>>>0){break e}j=b-a>>2;o=j>>>1|0;k=(o<<2)+a|0;i=H[k>>2];if(i>>>0>=q>>>0){break e}n=H[p+(m<<3)>>2];i=n>>>0>2];k=i?a:k+4|0;i=i?o:j+(o^-1)|0;if(!i){break h}while(1){o=i>>>1|0;m=(o<<2)+k|0;j=H[m>>2];if(j>>>0>=q>>>0){break e}j=n>>>0>2];k=j?k:m+4|0;i=j?o:(o^-1)+i|0;if(i){continue}break}}o=k-a>>2;break g}if((e|0)==1){H[a>>2]=k;H[b>>2]=l;return}o=(e|0)/2|0;k=(o<<2)+a|0;l=c;if((l|0)!=(b|0)){i=c-b>>2;l=H[k>>2];if(l>>>0>=q>>>0){break f}n=p+(l<<3)|0;l=b;while(1){r=i>>>1|0;m=(r<<2)+l|0;j=H[m>>2];if(j>>>0>=q>>>0){break e}j=K[p+(j<<3)>>2]>2];l=j?m+4|0:l;i=j?(r^-1)+i|0:r;if(i){continue}break}}r=l-b>>2}f=f-r|0;e=e-o|0;i=l;if((b|0)==(k|0)){break c}i=k;if((b|0)==(l|0)){break c}if((k+4|0)!=(b|0)){break d}j=H[k>>2];i=b;b=l-b|0;i=xa(k,i,b)+b|0;H[i>>2]=j;break c}}va();X()}if((b+4|0)==(l|0)){b=l-4|0;j=H[b>>2];i=l;if((b|0)!=(k|0)){b=b-k|0;i=l-b|0;xa(i,k,b)}H[k>>2]=j;break c}i=b;m=k;p=l-b>>2;j=p;s=b-k>>2;n=s;if((j|0)==(n|0)){while(1){j=H[m>>2];H[m>>2]=H[i>>2];H[i>>2]=j;i=i+4|0;m=m+4|0;if((m|0)!=(b|0)){continue}break}i=b;break c}while(1){b=n;n=j;j=(b|0)%(j|0)|0;if(j){continue}break}if(n){n=(n<<2)+k|0;while(1){n=n-4|0;q=s<<2;m=n+q|0;i=H[n>>2];j=n;while(1){b=j;j=m;H[b>>2]=H[j>>2];b=l-j>>2;m=(b|0)>(s|0)?j+q|0:(s-b<<2)+k|0;if((n|0)!=(m|0)){continue}break}H[j>>2]=i;if((k|0)!=(n|0)){continue}break}}i=(p<<2)+k|0}i:{if((o+r|0)<(e+f|0)){Id(a,k,i,d,o,r,g,h);a=i;b=l;break i}Id(i,l,c,d,e,f,g,h);f=r;e=o;c=i;b=k}if(f){continue}break}}return}Va(a,b,c,d,e,f,g)}function Hd(a,b,c,d,e,f,g,h){var i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0;a:{b:{if(!f){break b}while(1){if((e|0)<=(h|0)|(f|0)<=(h|0)){break a}if(!e){break b}i=H[d>>2];p=H[i>>2];c:{d:{q=H[i+4>>2]-p>>3;k=H[b>>2];e:{if(q>>>0<=k>>>0){break e}i=p+(k<<3)|0;while(1){l=H[a>>2];if(l>>>0>=q>>>0){break e}if(K[i>>2]>=K[p+(l<<3)>>2]){a=a+4|0;e=e-1|0;if(e){continue}break b}break}f:{g:{if((e|0)<(f|0)){r=(f|0)/2|0;l=(r<<2)+b|0;h:{if((a|0)==(b|0)){k=b;break h}m=H[l>>2];if(m>>>0>=q>>>0){break e}j=b-a>>2;o=j>>>1|0;k=(o<<2)+a|0;i=H[k>>2];if(i>>>0>=q>>>0){break e}n=H[p+(m<<3)>>2];i=n>>>0>2];k=i?a:k+4|0;i=i?o:j+(o^-1)|0;if(!i){break h}while(1){o=i>>>1|0;m=(o<<2)+k|0;j=H[m>>2];if(j>>>0>=q>>>0){break e}j=n>>>0>2];k=j?k:m+4|0;i=j?o:(o^-1)+i|0;if(i){continue}break}}o=k-a>>2;break g}if((e|0)==1){H[a>>2]=k;H[b>>2]=l;return}o=(e|0)/2|0;k=(o<<2)+a|0;l=c;if((l|0)!=(b|0)){i=c-b>>2;l=H[k>>2];if(l>>>0>=q>>>0){break f}n=p+(l<<3)|0;l=b;while(1){r=i>>>1|0;m=(r<<2)+l|0;j=H[m>>2];if(j>>>0>=q>>>0){break e}j=K[p+(j<<3)>>2]>2];l=j?m+4|0:l;i=j?(r^-1)+i|0:r;if(i){continue}break}}r=l-b>>2}f=f-r|0;e=e-o|0;i=l;if((b|0)==(k|0)){break c}i=k;if((b|0)==(l|0)){break c}if((k+4|0)!=(b|0)){break d}j=H[k>>2];i=b;b=l-b|0;i=xa(k,i,b)+b|0;H[i>>2]=j;break c}}va();X()}if((b+4|0)==(l|0)){b=l-4|0;j=H[b>>2];i=l;if((b|0)!=(k|0)){b=b-k|0;i=l-b|0;xa(i,k,b)}H[k>>2]=j;break c}i=b;m=k;p=l-b>>2;j=p;s=b-k>>2;n=s;if((j|0)==(n|0)){while(1){j=H[m>>2];H[m>>2]=H[i>>2];H[i>>2]=j;i=i+4|0;m=m+4|0;if((m|0)!=(b|0)){continue}break}i=b;break c}while(1){b=n;n=j;j=(b|0)%(j|0)|0;if(j){continue}break}if(n){n=(n<<2)+k|0;while(1){n=n-4|0;q=s<<2;m=n+q|0;i=H[n>>2];j=n;while(1){b=j;j=m;H[b>>2]=H[j>>2];b=l-j>>2;m=(b|0)>(s|0)?j+q|0:(s-b<<2)+k|0;if((n|0)!=(m|0)){continue}break}H[j>>2]=i;if((k|0)!=(n|0)){continue}break}}i=(p<<2)+k|0}i:{if((o+r|0)<(e+f|0)){Hd(a,k,i,d,o,r,g,h);a=i;b=l;break i}Hd(i,l,c,d,e,f,g,h);f=r;e=o;c=i;b=k}if(f){continue}break}}return}Va(a,b,c,d,e,f,g)}function Gd(a,b,c,d,e,f,g,h){var i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0;a:{b:{if(!f){break b}while(1){if((e|0)<=(h|0)|(f|0)<=(h|0)){break a}if(!e){break b}i=H[d>>2];p=H[i>>2];c:{d:{q=H[i+4>>2]-p>>3;k=H[b>>2];e:{if(q>>>0<=k>>>0){break e}i=p+(k<<3)|0;while(1){l=H[a>>2];if(l>>>0>=q>>>0){break e}if(K[i>>2]>=K[p+(l<<3)>>2]){a=a+4|0;e=e-1|0;if(e){continue}break b}break}f:{g:{if((e|0)<(f|0)){r=(f|0)/2|0;l=(r<<2)+b|0;h:{if((a|0)==(b|0)){k=b;break h}m=H[l>>2];if(m>>>0>=q>>>0){break e}j=b-a>>2;o=j>>>1|0;k=(o<<2)+a|0;i=H[k>>2];if(i>>>0>=q>>>0){break e}n=H[p+(m<<3)>>2];i=n>>>0>2];k=i?a:k+4|0;i=i?o:j+(o^-1)|0;if(!i){break h}while(1){o=i>>>1|0;m=(o<<2)+k|0;j=H[m>>2];if(j>>>0>=q>>>0){break e}j=n>>>0>2];k=j?k:m+4|0;i=j?o:(o^-1)+i|0;if(i){continue}break}}o=k-a>>2;break g}if((e|0)==1){H[a>>2]=k;H[b>>2]=l;return}o=(e|0)/2|0;k=(o<<2)+a|0;l=c;if((l|0)!=(b|0)){i=c-b>>2;l=H[k>>2];if(l>>>0>=q>>>0){break f}n=p+(l<<3)|0;l=b;while(1){r=i>>>1|0;m=(r<<2)+l|0;j=H[m>>2];if(j>>>0>=q>>>0){break e}j=K[p+(j<<3)>>2]>2];l=j?m+4|0:l;i=j?(r^-1)+i|0:r;if(i){continue}break}}r=l-b>>2}f=f-r|0;e=e-o|0;i=l;if((b|0)==(k|0)){break c}i=k;if((b|0)==(l|0)){break c}if((k+4|0)!=(b|0)){break d}j=H[k>>2];i=b;b=l-b|0;i=xa(k,i,b)+b|0;H[i>>2]=j;break c}}va();X()}if((b+4|0)==(l|0)){b=l-4|0;j=H[b>>2];i=l;if((b|0)!=(k|0)){b=b-k|0;i=l-b|0;xa(i,k,b)}H[k>>2]=j;break c}i=b;m=k;p=l-b>>2;j=p;s=b-k>>2;n=s;if((j|0)==(n|0)){while(1){j=H[m>>2];H[m>>2]=H[i>>2];H[i>>2]=j;i=i+4|0;m=m+4|0;if((m|0)!=(b|0)){continue}break}i=b;break c}while(1){b=n;n=j;j=(b|0)%(j|0)|0;if(j){continue}break}if(n){n=(n<<2)+k|0;while(1){n=n-4|0;q=s<<2;m=n+q|0;i=H[n>>2];j=n;while(1){b=j;j=m;H[b>>2]=H[j>>2];b=l-j>>2;m=(b|0)>(s|0)?j+q|0:(s-b<<2)+k|0;if((n|0)!=(m|0)){continue}break}H[j>>2]=i;if((k|0)!=(n|0)){continue}break}}i=(p<<2)+k|0}i:{if((o+r|0)<(e+f|0)){Gd(a,k,i,d,o,r,g,h);a=i;b=l;break i}Gd(i,l,c,d,e,f,g,h);f=r;e=o;c=i;b=k}if(f){continue}break}}return}Va(a,b,c,d,e,f,g)}function Fd(a,b,c,d,e,f,g,h){var i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0;a:{b:{if(!f){break b}while(1){if((e|0)<=(h|0)|(f|0)<=(h|0)){break a}if(!e){break b}i=H[d>>2];p=H[i>>2];c:{d:{q=H[i+4>>2]-p>>3;k=H[b>>2];e:{if(q>>>0<=k>>>0){break e}i=p+(k<<3)|0;while(1){l=H[a>>2];if(l>>>0>=q>>>0){break e}if(K[i>>2]>=K[p+(l<<3)>>2]){a=a+4|0;e=e-1|0;if(e){continue}break b}break}f:{g:{if((e|0)<(f|0)){r=(f|0)/2|0;l=(r<<2)+b|0;h:{if((a|0)==(b|0)){k=b;break h}m=H[l>>2];if(m>>>0>=q>>>0){break e}j=b-a>>2;o=j>>>1|0;k=(o<<2)+a|0;i=H[k>>2];if(i>>>0>=q>>>0){break e}n=H[p+(m<<3)>>2];i=n>>>0>2];k=i?a:k+4|0;i=i?o:j+(o^-1)|0;if(!i){break h}while(1){o=i>>>1|0;m=(o<<2)+k|0;j=H[m>>2];if(j>>>0>=q>>>0){break e}j=n>>>0>2];k=j?k:m+4|0;i=j?o:(o^-1)+i|0;if(i){continue}break}}o=k-a>>2;break g}if((e|0)==1){H[a>>2]=k;H[b>>2]=l;return}o=(e|0)/2|0;k=(o<<2)+a|0;l=c;if((l|0)!=(b|0)){i=c-b>>2;l=H[k>>2];if(l>>>0>=q>>>0){break f}n=p+(l<<3)|0;l=b;while(1){r=i>>>1|0;m=(r<<2)+l|0;j=H[m>>2];if(j>>>0>=q>>>0){break e}j=K[p+(j<<3)>>2]>2];l=j?m+4|0:l;i=j?(r^-1)+i|0:r;if(i){continue}break}}r=l-b>>2}f=f-r|0;e=e-o|0;i=l;if((b|0)==(k|0)){break c}i=k;if((b|0)==(l|0)){break c}if((k+4|0)!=(b|0)){break d}j=H[k>>2];i=b;b=l-b|0;i=xa(k,i,b)+b|0;H[i>>2]=j;break c}}va();X()}if((b+4|0)==(l|0)){b=l-4|0;j=H[b>>2];i=l;if((b|0)!=(k|0)){b=b-k|0;i=l-b|0;xa(i,k,b)}H[k>>2]=j;break c}i=b;m=k;p=l-b>>2;j=p;s=b-k>>2;n=s;if((j|0)==(n|0)){while(1){j=H[m>>2];H[m>>2]=H[i>>2];H[i>>2]=j;i=i+4|0;m=m+4|0;if((m|0)!=(b|0)){continue}break}i=b;break c}while(1){b=n;n=j;j=(b|0)%(j|0)|0;if(j){continue}break}if(n){n=(n<<2)+k|0;while(1){n=n-4|0;q=s<<2;m=n+q|0;i=H[n>>2];j=n;while(1){b=j;j=m;H[b>>2]=H[j>>2];b=l-j>>2;m=(b|0)>(s|0)?j+q|0:(s-b<<2)+k|0;if((n|0)!=(m|0)){continue}break}H[j>>2]=i;if((k|0)!=(n|0)){continue}break}}i=(p<<2)+k|0}i:{if((o+r|0)<(e+f|0)){Fd(a,k,i,d,o,r,g,h);a=i;b=l;break i}Fd(i,l,c,d,e,f,g,h);f=r;e=o;c=i;b=k}if(f){continue}break}}return}Va(a,b,c,d,e,f,g)}function Gj(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0;f=da-16|0;da=f;H[a+4>>2]=b;H[a+8>>2]=H[b+56>>2];H[a+188>>2]=H[a+184>>2];e=H[b+48>>2];c=ra(32);b=I[1278]|I[1279]<<8|(I[1280]<<16|I[1281]<<24);F[c+15|0]=b;F[c+16|0]=b>>>8;F[c+17|0]=b>>>16;F[c+18|0]=b>>>24;b=I[1275]|I[1276]<<8|(I[1277]<<16|I[1278]<<24);d=I[1271]|I[1272]<<8|(I[1273]<<16|I[1274]<<24);F[c+8|0]=d;F[c+9|0]=d>>>8;F[c+10|0]=d>>>16;F[c+11|0]=d>>>24;F[c+12|0]=b;F[c+13|0]=b>>>8;F[c+14|0]=b>>>16;F[c+15|0]=b>>>24;b=I[1267]|I[1268]<<8|(I[1269]<<16|I[1270]<<24);d=I[1263]|I[1264]<<8|(I[1265]<<16|I[1266]<<24);F[c|0]=d;F[c+1|0]=d>>>8;F[c+2|0]=d>>>16;F[c+3|0]=d>>>24;F[c+4|0]=b;F[c+5|0]=b>>>8;F[c+6|0]=b>>>16;F[c+7|0]=b>>>24;F[c+19|0]=0;a:{b:{b=H[e+4>>2];if(b){while(1){d=I[b+27|0];e=d<<24>>24<0;d=e?H[b+20>>2]:d;i=d>>>0<19;c:{d:{e:{f:{g:{h:{h=i?d:19;if(h){g=b+16|0;e=e?H[g>>2]:g;g=Ea(c,e,h);if(g){break h}if(d>>>0<=19){break g}break c}if(d>>>0<=19){break f}break c}if((g|0)<0){break c}}d=Ea(e,c,h);if(d){break e}}if(i){break d}break b}if((d|0)>=0){break b}}b=b+4|0}b=H[b>>2];if(b){continue}break}}qa(c);if((eb(H[H[a+4>>2]+48>>2])|0)>=6){F[a+352|0]=1;break a}F[a+352|0]=0;break a}qa(c);e=H[H[a+4>>2]+48>>2];b=ra(32);H[f>>2]=b;H[f+4>>2]=19;H[f+8>>2]=-2147483616;F[b+19|0]=0;c=I[1278]|I[1279]<<8|(I[1280]<<16|I[1281]<<24);F[b+15|0]=c;F[b+16|0]=c>>>8;F[b+17|0]=c>>>16;F[b+18|0]=c>>>24;c=I[1275]|I[1276]<<8|(I[1277]<<16|I[1278]<<24);d=I[1271]|I[1272]<<8|(I[1273]<<16|I[1274]<<24);F[b+8|0]=d;F[b+9|0]=d>>>8;F[b+10|0]=d>>>16;F[b+11|0]=d>>>24;F[b+12|0]=c;F[b+13|0]=c>>>8;F[b+14|0]=c>>>16;F[b+15|0]=c>>>24;c=I[1267]|I[1268]<<8|(I[1269]<<16|I[1270]<<24);d=I[1263]|I[1264]<<8|(I[1265]<<16|I[1266]<<24);F[b|0]=d;F[b+1|0]=d>>>8;F[b+2|0]=d>>>16;F[b+3|0]=d>>>24;F[b+4|0]=c;F[b+5|0]=c>>>8;F[b+6|0]=c>>>16;F[b+7|0]=c>>>24;j=a,k=Rb(e,f,0),F[j+352|0]=k;if(F[f+11|0]>=0){break a}qa(H[f>>2])}da=f+16|0;return 1} -function Lj(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0;f=da-16|0;da=f;H[a+4>>2]=b;H[a+8>>2]=H[b+56>>2];H[a+188>>2]=H[a+184>>2];e=H[b+48>>2];c=ra(32);b=I[1278]|I[1279]<<8|(I[1280]<<16|I[1281]<<24);F[c+15|0]=b;F[c+16|0]=b>>>8;F[c+17|0]=b>>>16;F[c+18|0]=b>>>24;b=I[1275]|I[1276]<<8|(I[1277]<<16|I[1278]<<24);d=I[1271]|I[1272]<<8|(I[1273]<<16|I[1274]<<24);F[c+8|0]=d;F[c+9|0]=d>>>8;F[c+10|0]=d>>>16;F[c+11|0]=d>>>24;F[c+12|0]=b;F[c+13|0]=b>>>8;F[c+14|0]=b>>>16;F[c+15|0]=b>>>24;b=I[1267]|I[1268]<<8|(I[1269]<<16|I[1270]<<24);d=I[1263]|I[1264]<<8|(I[1265]<<16|I[1266]<<24);F[c|0]=d;F[c+1|0]=d>>>8;F[c+2|0]=d>>>16;F[c+3|0]=d>>>24;F[c+4|0]=b;F[c+5|0]=b>>>8;F[c+6|0]=b>>>16;F[c+7|0]=b>>>24;F[c+19|0]=0;a:{b:{b=H[e+4>>2];if(b){while(1){d=I[b+27|0];e=d<<24>>24<0;d=e?H[b+20>>2]:d;i=d>>>0<19;c:{d:{e:{f:{g:{h:{h=i?d:19;if(h){g=b+16|0;e=e?H[g>>2]:g;g=Ea(c,e,h);if(g){break h}if(d>>>0<=19){break g}break c}if(d>>>0<=19){break f}break c}if((g|0)<0){break c}}d=Ea(e,c,h);if(d){break e}}if(i){break d}break b}if((d|0)>=0){break b}}b=b+4|0}b=H[b>>2];if(b){continue}break}}qa(c);if((eb(H[H[a+4>>2]+48>>2])|0)>=6){F[a+288|0]=1;break a}F[a+288|0]=0;break a}qa(c);e=H[H[a+4>>2]+48>>2];b=ra(32);H[f>>2]=b;H[f+4>>2]=19;H[f+8>>2]=-2147483616;F[b+19|0]=0;c=I[1278]|I[1279]<<8|(I[1280]<<16|I[1281]<<24);F[b+15|0]=c;F[b+16|0]=c>>>8;F[b+17|0]=c>>>16;F[b+18|0]=c>>>24;c=I[1275]|I[1276]<<8|(I[1277]<<16|I[1278]<<24);d=I[1271]|I[1272]<<8|(I[1273]<<16|I[1274]<<24);F[b+8|0]=d;F[b+9|0]=d>>>8;F[b+10|0]=d>>>16;F[b+11|0]=d>>>24;F[b+12|0]=c;F[b+13|0]=c>>>8;F[b+14|0]=c>>>16;F[b+15|0]=c>>>24;c=I[1267]|I[1268]<<8|(I[1269]<<16|I[1270]<<24);d=I[1263]|I[1264]<<8|(I[1265]<<16|I[1266]<<24);F[b|0]=d;F[b+1|0]=d>>>8;F[b+2|0]=d>>>16;F[b+3|0]=d>>>24;F[b+4|0]=c;F[b+5|0]=c>>>8;F[b+6|0]=c>>>16;F[b+7|0]=c>>>24;j=a,k=Rb(e,f,0),F[j+288|0]=k;if(F[f+11|0]>=0){break a}qa(H[f>>2])}da=f+16|0;return 1}function Ug(a,b){var c=0,d=0,e=0,f=0,g=0,h=0,i=0;d=da-16|0;da=d;f=H[b+48>>2];a:{if((eb(f)|0)>9){break a}if((fa[H[H[b>>2]+8>>2]](b)|0)!=1){break a}e=H[b+4>>2];g=H[H[e+8>>2]+(a<<2)>>2];c=H[g+56>>2];if((c|0)==3){b:{if(I[g+24|0]!=2){break b}a=jd(e);if(!a){break b}a=H[a+28>>2]-1|0;if(!(a>>>0<11&1279>>>a)){h=d,i=Pb(H[b+4>>2],0),H[h+12>>2]=i;a=ra(32);H[d>>2]=a;H[d+4>>2]=17;H[d+8>>2]=-2147483616;F[a+17|0]=0;F[a+16|0]=I[1261];c=I[1257]|I[1258]<<8|(I[1259]<<16|I[1260]<<24);e=I[1253]|I[1254]<<8|(I[1255]<<16|I[1256]<<24);F[a+8|0]=e;F[a+9|0]=e>>>8;F[a+10|0]=e>>>16;F[a+11|0]=e>>>24;F[a+12|0]=c;F[a+13|0]=c>>>8;F[a+14|0]=c>>>16;F[a+15|0]=c>>>24;c=I[1249]|I[1250]<<8|(I[1251]<<16|I[1252]<<24);e=I[1245]|I[1246]<<8|(I[1247]<<16|I[1248]<<24);F[a|0]=e;F[a+1|0]=e>>>8;F[a+2|0]=e>>>16;F[a+3|0]=e>>>24;F[a+4|0]=c;F[a+5|0]=c>>>8;F[a+6|0]=c>>>16;F[a+7|0]=c>>>24;a=pb(f,d+12|0,d,-1);if(F[d+11|0]<0){qa(H[d>>2])}if(a-1>>>0>20){break b}}c=5;if((eb(f)|0)<4){break a}}c=H[g+56>>2]}a=eb(f);if((c|0)==1){c:{if((a|0)>3){break c}h=d,i=Pb(H[b+4>>2],0),H[h+12>>2]=i;a=jd(H[b+4>>2]);if(!a){break c}a=H[a+28>>2]-1|0;if(a>>>0<11&1279>>>a){c=6;break a}a=ra(32);H[d>>2]=a;H[d+4>>2]=17;H[d+8>>2]=-2147483616;F[a+17|0]=0;F[a+16|0]=I[1261];b=I[1257]|I[1258]<<8|(I[1259]<<16|I[1260]<<24);c=I[1253]|I[1254]<<8|(I[1255]<<16|I[1256]<<24);F[a+8|0]=c;F[a+9|0]=c>>>8;F[a+10|0]=c>>>16;F[a+11|0]=c>>>24;F[a+12|0]=b;F[a+13|0]=b>>>8;F[a+14|0]=b>>>16;F[a+15|0]=b>>>24;b=I[1249]|I[1250]<<8|(I[1251]<<16|I[1252]<<24);c=I[1245]|I[1246]<<8|(I[1247]<<16|I[1248]<<24);F[a|0]=c;F[a+1|0]=c>>>8;F[a+2|0]=c>>>16;F[a+3|0]=c>>>24;F[a+4|0]=b;F[a+5|0]=b>>>8;F[a+6|0]=b>>>16;F[a+7|0]=b>>>24;a=pb(f,d+12|0,d,-1);if(F[d+11|0]<0){qa(H[d>>2])}c=6;if((a|0)>0){break a}}c=0;break a}c=0;if((a|0)>7){break a}c=1;if((eb(f)|0)>1){break a}c=K[H[b+4>>2]+80>>2]<40?1:4}da=d+16|0;return c}function lh(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0;c=da-32|0;da=c;d=a- -64|0;Da(H[d>>2],b);if(H[d>>2]){H[c>>2]=0;H[c+4>>2]=0;H[c+24>>2]=0;H[c+28>>2]=0;H[c+16>>2]=0;H[c+20>>2]=0;H[c+8>>2]=0;H[c+12>>2]=0;Ca(c);d=H[a+64>>2];if((d|0)>0){while(1){f=d-1|0;Ga(c,H[H[a+60>>2]+(f>>>3&536870908)>>2]>>>f&1);e=d>>>0>1;d=f;if(e){continue}break}}Ba(c,b);Aa(c)}Da(H[a+76>>2],b);if(H[a+76>>2]){H[c>>2]=0;H[c+4>>2]=0;H[c+24>>2]=0;H[c+28>>2]=0;H[c+16>>2]=0;H[c+20>>2]=0;H[c+8>>2]=0;H[c+12>>2]=0;Ca(c);d=H[a+76>>2];if((d|0)>=2){while(1){f=d-2|0;Ga(c,H[H[a+72>>2]+(f>>>3&536870908)>>2]>>>f&1);e=d-1|0;Ga(c,H[H[a+72>>2]+(e>>>3&536870908)>>2]>>>e&1);e=d>>>0>3;d=f;if(e){continue}break}}Ba(c,b);Aa(c)}Da(H[a+88>>2],b);if(H[a+88>>2]){H[c>>2]=0;H[c+4>>2]=0;H[c+24>>2]=0;H[c+28>>2]=0;H[c+16>>2]=0;H[c+20>>2]=0;H[c+8>>2]=0;H[c+12>>2]=0;Ca(c);d=H[a+88>>2];if((d|0)>=3){while(1){f=d-3|0;Ga(c,H[H[a+84>>2]+(f>>>3&536870908)>>2]>>>f&1);e=d-2|0;Ga(c,H[H[a+84>>2]+(e>>>3&536870908)>>2]>>>e&1);e=d-1|0;Ga(c,H[H[a+84>>2]+(e>>>3&536870908)>>2]>>>e&1);e=d>>>0>5;d=f;if(e){continue}break}}Ba(c,b);Aa(c)}Da(H[a+100>>2],b);if(H[a+100>>2]){H[c>>2]=0;H[c+4>>2]=0;H[c+24>>2]=0;H[c+28>>2]=0;H[c+16>>2]=0;H[c+20>>2]=0;H[c+8>>2]=0;H[c+12>>2]=0;Ca(c);d=H[a+100>>2];if((d|0)>=4){while(1){f=d-4|0;Ga(c,H[H[a+96>>2]+(f>>>3&536870908)>>2]>>>f&1);e=d-3|0;Ga(c,H[H[a+96>>2]+(e>>>3&536870908)>>2]>>>e&1);e=d-2|0;Ga(c,H[H[a+96>>2]+(e>>>3&536870908)>>2]>>>e&1);e=d-1|0;Ga(c,H[H[a+96>>2]+(e>>>3&536870908)>>2]>>>e&1);e=d>>>0>7;d=f;if(e){continue}break}}Ba(c,b);Aa(c)}H[c>>2]=H[a+12>>2];d=H[b+20>>2];a:{if(!!H[b+16>>2]&(d|0)>=0|(d|0)>0){break a}f=c+4|0;wa(b,H[b+4>>2],c,f);d=H[b+20>>2];e=H[b+16>>2];H[c>>2]=H[a+16>>2];if(!!e&(d|0)>=0|(d|0)>0){break a}wa(b,H[b+4>>2],c,f)}da=c+32|0;return 1}function ah(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0;c=da-32|0;da=c;Da(H[a+48>>2],b);if(H[a+48>>2]){H[c>>2]=0;H[c+4>>2]=0;H[c+24>>2]=0;H[c+28>>2]=0;H[c+16>>2]=0;H[c+20>>2]=0;H[c+8>>2]=0;H[c+12>>2]=0;Ca(c);d=H[a+48>>2];if((d|0)>0){while(1){f=d-1|0;Ga(c,H[H[a+44>>2]+(f>>>3&536870908)>>2]>>>f&1);e=d>>>0>1;d=f;if(e){continue}break}}Ba(c,b);Aa(c)}Da(H[a+60>>2],b);if(H[a+60>>2]){H[c>>2]=0;H[c+4>>2]=0;H[c+24>>2]=0;H[c+28>>2]=0;H[c+16>>2]=0;H[c+20>>2]=0;H[c+8>>2]=0;H[c+12>>2]=0;Ca(c);d=H[a+60>>2];if((d|0)>=2){while(1){f=d-2|0;Ga(c,H[H[a+56>>2]+(f>>>3&536870908)>>2]>>>f&1);e=d-1|0;Ga(c,H[H[a+56>>2]+(e>>>3&536870908)>>2]>>>e&1);e=d>>>0>3;d=f;if(e){continue}break}}Ba(c,b);Aa(c)}Da(H[a+72>>2],b);if(H[a+72>>2]){H[c>>2]=0;H[c+4>>2]=0;H[c+24>>2]=0;H[c+28>>2]=0;H[c+16>>2]=0;H[c+20>>2]=0;H[c+8>>2]=0;H[c+12>>2]=0;Ca(c);d=H[a+72>>2];if((d|0)>=3){while(1){f=d-3|0;Ga(c,H[H[a+68>>2]+(f>>>3&536870908)>>2]>>>f&1);e=d-2|0;Ga(c,H[H[a+68>>2]+(e>>>3&536870908)>>2]>>>e&1);e=d-1|0;Ga(c,H[H[a+68>>2]+(e>>>3&536870908)>>2]>>>e&1);e=d>>>0>5;d=f;if(e){continue}break}}Ba(c,b);Aa(c)}Da(H[a+84>>2],b);if(H[a+84>>2]){H[c>>2]=0;H[c+4>>2]=0;H[c+24>>2]=0;H[c+28>>2]=0;H[c+16>>2]=0;H[c+20>>2]=0;H[c+8>>2]=0;H[c+12>>2]=0;Ca(c);d=H[a+84>>2];if((d|0)>=4){while(1){f=d-4|0;Ga(c,H[H[a+80>>2]+(f>>>3&536870908)>>2]>>>f&1);e=d-3|0;Ga(c,H[H[a+80>>2]+(e>>>3&536870908)>>2]>>>e&1);e=d-2|0;Ga(c,H[H[a+80>>2]+(e>>>3&536870908)>>2]>>>e&1);e=d-1|0;Ga(c,H[H[a+80>>2]+(e>>>3&536870908)>>2]>>>e&1);e=d>>>0>7;d=f;if(e){continue}break}}Ba(c,b);Aa(c)}H[c>>2]=H[a+12>>2];d=H[b+20>>2];a:{if(!!H[b+16>>2]&(d|0)>=0|(d|0)>0){break a}f=c+4|0;wa(b,H[b+4>>2],c,f);d=H[b+20>>2];e=H[b+16>>2];H[c>>2]=H[a+24>>2];if(!!e&(d|0)>=0|(d|0)>0){break a}wa(b,H[b+4>>2],c,f)}da=c+32|0;return 1}function Ba(a,b){var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0;g=da-32|0;da=g;d=H[a>>2];e=H[d>>2];c=H[d+4>>2];j=+(e>>>0)+ +(c>>>0)*4294967296;c=H[d+12>>2]+c|0;d=H[d+8>>2];e=d+e|0;c=e>>>0>>0?c+1|0:c;d=!(c|e);j=j/(+((d?1:e)>>>0)+ +((d?0:c)>>>0)*4294967296)*256+.5;a:{if(j<4294967296&j>=0){c=~~j>>>0;break a}c=0}c=c>>>0<255?c:255;k=!c+c|0;F[g+23|0]=k;i=H[a+16>>2];n=H[a+12>>2];H[g+16>>2]=0;H[g+8>>2]=0;H[g+12>>2]=0;b:{c:{c=(i-n<<1)- -64|0;if(c){if((c|0)<0){break c}h=ra(c);H[g+8>>2]=h;d=c+h|0;H[g+16>>2]=d;ta(h,0,c);H[g+12>>2]=d}c=H[a+28>>2]-1|0;if((c|0)<0){e=4096;break b}l=0-k|0;o=l&255;p=H[a+24>>2];e=4096;while(1){m=p&1<>>0<=e>>>0){F[f+h|0]=e;f=f+1|0;e=e>>>8|0}q=256-d|0;d=(d<<3)+12784|0;zl(H[d>>2],0,e,0);e=((m?0:o)+e|0)+N(q,ea+e>>>H[d+4>>2]|0)|0;c=c-1|0;if((c|0)>=0){continue}break}break b}ua();X()}if((i|0)!=(n|0)){l=0-k|0;o=l&255;while(1){i=i-4|0;p=H[i>>2];c=31;while(1){d=c;m=p&1<>>0<=e>>>0){F[f+h|0]=e;f=f+1|0;e=e>>>8|0}q=256-c|0;c=(c<<3)+12784|0;zl(H[c>>2],0,e,0);e=((m?0:o)+e|0)+N(q,ea+e>>>H[c+4>>2]|0)|0;c=d-1|0;if(d){continue}break}if((i|0)!=(n|0)){continue}break}}c=e-4096|0;d:{if(c>>>0<=63){F[f+h|0]=c;f=f+1|0;break d}if(c>>>0<=16383){c=f+h|0;d=e+12288|0;F[c|0]=d;F[c+1|0]=d>>>8;f=f+2|0;break d}if(c>>>0>4194303){break d}c=f+h|0;d=e+8384512|0;F[c|0]=d;F[c+2|0]=d>>>16;F[c+1|0]=d>>>8;f=f+3|0}c=H[b+20>>2];if(!H[b+16>>2]&(c|0)<=0|(c|0)<0){wa(b,H[b+4>>2],g+23|0,g+24|0)}Da(f,b);c=H[b+20>>2];if(!H[b+16>>2]&(c|0)<=0|(c|0)<0){wa(b,H[b+4>>2],h,f+h|0)}H[g+24>>2]=0;H[g+28>>2]=0;$d(a,g+24|0);H[a+24>>2]=0;H[a+28>>2]=0;H[a+16>>2]=H[a+12>>2];if(h){qa(h)}da=g+32|0}function qk(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0;d=da-32|0;da=d;f=(e&1073741823)!=(e|0)?-1:e<<2;l=ta(ra(f),0,f);f=H[a+40>>2];f=H[f+4>>2]-H[f>>2]|0;if((f|0)>=5){p=H[a+36>>2];o=H[a+32>>2];q=e&-2;r=e&1;s=a+8|0;f=f>>>2|0;while(1){j=H[a+40>>2];g=H[j>>2];a:{b:{h=H[j+4>>2]-g>>2;j=f-1|0;if(h>>>0>j>>>0){t=N(e,j);g=H[g+(j<<2)>>2];if((g|0)==-1){break b}g=H[H[o+12>>2]+(g<<2)>>2];if((g|0)==-1){break b}k=H[p>>2];h=H[o>>2];m=H[k+(H[h+(g<<2)>>2]<<2)>>2];i=g+1|0;i=(i>>>0)%3|0?i:g-2|0;if((i|0)!=-1){i=H[h+(i<<2)>>2]}else{i=-1}c:{d:{if((g>>>0)%3|0){g=g-1|0;break d}g=g+2|0;n=-1;if((g|0)==-1){break c}}n=H[h+(g<<2)>>2]}if((j|0)<=(m|0)){break b}g=H[(i<<2)+k>>2];if((g|0)>=(j|0)){break b}h=H[k+(n<<2)>>2];if((h|0)>=(j|0)){break b}e:{if((e|0)<=0){break e}h=N(e,h);k=N(e,g);m=N(e,m);g=0;n=0;if((e|0)!=1){while(1){H[(g<<2)+l>>2]=(H[(g+h<<2)+b>>2]+H[(g+k<<2)+b>>2]|0)-H[(g+m<<2)+b>>2];i=g|1;H[(i<<2)+l>>2]=(H[(h+i<<2)+b>>2]+H[(i+k<<2)+b>>2]|0)-H[(i+m<<2)+b>>2];g=g+2|0;n=n+2|0;if((q|0)!=(n|0)){continue}break}}if(!r){break e}H[(g<<2)+l>>2]=(H[(g+h<<2)+b>>2]+H[(g+k<<2)+b>>2]|0)-H[(g+m<<2)+b>>2]}g=H[l>>2];h=H[l+4>>2];break a}va();X()}h=(N(f-2|0,e)<<2)+b|0;g=H[h>>2];h=H[h+4>>2]}k=t<<2;m=k+b|0;i=H[m+4>>2];H[d+16>>2]=H[m>>2];H[d+20>>2]=i;H[d+8>>2]=g;H[d+12>>2]=h;_a(d+24|0,s,d+16|0,d+8|0);g=c+k|0;H[g>>2]=H[d+24>>2];H[g+4>>2]=H[d+28>>2];g=(f|0)>2;f=j;if(g){continue}break}}if((e|0)>0){ta(l,0,e<<2)}e=H[l>>2];f=H[l+4>>2];j=H[b+4>>2];H[d+16>>2]=H[b>>2];H[d+20>>2]=j;H[d+8>>2]=e;H[d+12>>2]=f;_a(d+24|0,a+8|0,d+16|0,d+8|0);H[c>>2]=H[d+24>>2];H[c+4>>2]=H[d+28>>2];qa(l);da=d+32|0;return 1}function $e(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0;k=da-16|0;da=k;H[k+8>>2]=c;e=H[a+12>>2];d=H[a+8>>2];f=e-d>>2;a:{if((f|0)>(b|0)){break a}h=b+1|0;if(h>>>0>f>>>0){f=h-f|0;g=H[a+16>>2];d=H[a+12>>2];if(f>>>0<=g-d>>2>>>0){if(f){e=d;d=f<<2;d=ta(e,0,d)+d|0}H[a+12>>2]=d;break a}b:{c:{d:{h=H[a+8>>2];i=d-h>>2;e=i+f|0;if(e>>>0<1073741824){g=g-h|0;l=g>>1;g=g>>>0<2147483644?e>>>0>>0?l:e:1073741823;if(g){if(g>>>0>=1073741824){break d}j=ra(g<<2)}e=(i<<2)+j|0;i=f<<2;f=ta(e,0,i);i=f+i|0;g=(g<<2)+j|0;if((d|0)==(h|0)){break c}while(1){d=d-4|0;f=H[d>>2];H[d>>2]=0;e=e-4|0;H[e>>2]=f;if((d|0)!=(h|0)){continue}break}H[a+16>>2]=g;f=H[a+12>>2];H[a+12>>2]=i;d=H[a+8>>2];H[a+8>>2]=e;if((d|0)==(f|0)){break b}while(1){f=f-4|0;e=H[f>>2];H[f>>2]=0;if(e){Oa(e)}if((d|0)!=(f|0)){continue}break}break b}ua();X()}ya();X()}H[a+16>>2]=g;H[a+12>>2]=i;H[a+8>>2]=f}if(d){qa(d)}break a}if(f>>>0<=h>>>0){break a}d=d+(h<<2)|0;if((d|0)!=(e|0)){while(1){e=e-4|0;c=H[e>>2];H[e>>2]=0;if(c){Oa(c)}if((d|0)!=(e|0)){continue}break}c=H[k+8>>2]}H[a+12>>2]=d}e:{f:{d=H[c+56>>2];g:{if((d|0)>4){break g}e=N(d,12)+a|0;d=H[e+24>>2];if((d|0)!=H[e+28>>2]){H[d>>2]=b;H[e+24>>2]=d+4;break g}h=H[e+20>>2];f=d-h|0;j=f>>2;d=j+1|0;if(d>>>0>=1073741824){break f}g=f>>1;g=f>>>0<2147483644?d>>>0>>0?g:d:1073741823;if(g){if(g>>>0>=1073741824){break e}d=ra(g<<2)}else{d=0}j=d+(j<<2)|0;H[j>>2]=b;if((f|0)>0){sa(d,h,f)}H[e+20>>2]=d;H[e+24>>2]=j+4;H[e+28>>2]=d+(g<<2);if(!h){break g}qa(h)}H[c+60>>2]=b;a=H[a+8>>2];H[k+8>>2]=0;b=a+(b<<2)|0;a=H[b>>2];H[b>>2]=c;if(a){Oa(a)}a=H[k+8>>2];H[k+8>>2]=0;if(a){Oa(a)}da=k+16|0;return}ua();X()}ya();X()}function Xk(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0;H[a+8>>2]=e;H[a- -64>>2]=f;o=a+32|0;f=H[o>>2];g=H[a+36>>2]-f>>2;a:{if(g>>>0>>0){Fa(o,e-g|0);break a}if(e>>>0>=g>>>0){break a}H[a+36>>2]=f+(e<<2)}b:{if(!d){break b}f=H[b>>2];c:{if((d|0)<2){d=f;break c}h=1;g=d-1|0;n=g&1;d:{if((d|0)==2){d=f;break d}q=g&-2;g=0;d=f;while(1){j=(h<<2)+b|0;k=H[j+4>>2];l=H[j>>2];i=(l|0)<(d|0);d=i?l:d;j=(d|0)>(k|0);d=j?k:d;f=i?f:(f|0)<(l|0)?l:f;f=j?f:(f|0)<(k|0)?k:f;h=h+2|0;g=g+2|0;if((q|0)!=(g|0)){continue}break}}if(!n){break c}h=H[(h<<2)+b>>2];g=(h|0)<(d|0);d=g?h:d;f=g?f:(f|0)<(h|0)?h:f}H[a+16>>2]=f;H[a+12>>2]=d;g=(f>>31)-((d>>31)+(d>>>0>f>>>0)|0)|0;d=f-d|0;if(!g&d>>>0>2147483646|g){break b}f=d+1|0;H[a+20>>2]=f;d=f>>>1|0;H[a+24>>2]=d;H[a+28>>2]=0-d;if(f&1){break b}H[a+24>>2]=d-1}r=1;e:{d=H[a+56>>2];d=H[d+4>>2]-H[d>>2]|0;if((d|0)>0){t=a+60|0;q=a+68|0;n=d>>>2|0;while(1){d=H[a+56>>2];f=H[d>>2];i=n-1|0;if(i>>>0>=H[d+4>>2]-f>>2>>>0){break e}r=hh(t,H[f+(i<<2)>>2],b,i);if(!r){return 0}f=H[a+8>>2];if((f|0)>0){d=N(e,i)<<2;k=d+c|0;l=b+d|0;j=H[o>>2];p=0;g=q;while(1){h=j;if((f|0)>0){h=H[o>>2];f=0;while(1){m=f<<2;s=H[m+g>>2];d=H[a+16>>2];f:{if((s|0)>(d|0)){H[h+m>>2]=d;break f}m=h+m|0;d=H[a+12>>2];if((d|0)>(s|0)){H[m>>2]=d;break f}H[m>>2]=s}f=f+1|0;if((f|0)>2]){continue}break}}f=p<<2;d=f+k|0;f=H[f+l>>2]-H[f+h>>2]|0;H[d>>2]=f;g:{if((f|0)>2]){f=f+H[a+20>>2]|0}else{if((f|0)<=H[a+24>>2]){break g}f=f-H[a+20>>2]|0}H[d>>2]=f}g=h;f=H[a+8>>2];p=p+1|0;if((f|0)>(p|0)){continue}break}}d=(n|0)>1;n=i;if(d){continue}break}}return r|0}va();X()}function Nk(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0;H[a+8>>2]=e;H[a- -64>>2]=f;o=a+32|0;f=H[o>>2];g=H[a+36>>2]-f>>2;a:{if(g>>>0>>0){Fa(o,e-g|0);break a}if(e>>>0>=g>>>0){break a}H[a+36>>2]=f+(e<<2)}b:{if(!d){break b}f=H[b>>2];c:{if((d|0)<2){d=f;break c}h=1;g=d-1|0;n=g&1;d:{if((d|0)==2){d=f;break d}q=g&-2;g=0;d=f;while(1){j=(h<<2)+b|0;k=H[j+4>>2];l=H[j>>2];i=(l|0)<(d|0);d=i?l:d;j=(d|0)>(k|0);d=j?k:d;f=i?f:(f|0)<(l|0)?l:f;f=j?f:(f|0)<(k|0)?k:f;h=h+2|0;g=g+2|0;if((q|0)!=(g|0)){continue}break}}if(!n){break c}h=H[(h<<2)+b>>2];g=(h|0)<(d|0);d=g?h:d;f=g?f:(f|0)<(h|0)?h:f}H[a+16>>2]=f;H[a+12>>2]=d;g=(f>>31)-((d>>31)+(d>>>0>f>>>0)|0)|0;d=f-d|0;if(!g&d>>>0>2147483646|g){break b}f=d+1|0;H[a+20>>2]=f;d=f>>>1|0;H[a+24>>2]=d;H[a+28>>2]=0-d;if(f&1){break b}H[a+24>>2]=d-1}r=1;e:{d=H[a+56>>2];d=H[d+4>>2]-H[d>>2]|0;if((d|0)>0){t=a+60|0;q=a+68|0;n=d>>>2|0;while(1){d=H[a+56>>2];f=H[d>>2];i=n-1|0;if(i>>>0>=H[d+4>>2]-f>>2>>>0){break e}r=ch(t,H[f+(i<<2)>>2],b,i);if(!r){return 0}f=H[a+8>>2];if((f|0)>0){d=N(e,i)<<2;k=d+c|0;l=b+d|0;j=H[o>>2];p=0;g=q;while(1){h=j;if((f|0)>0){h=H[o>>2];f=0;while(1){m=f<<2;s=H[m+g>>2];d=H[a+16>>2];f:{if((s|0)>(d|0)){H[h+m>>2]=d;break f}m=h+m|0;d=H[a+12>>2];if((d|0)>(s|0)){H[m>>2]=d;break f}H[m>>2]=s}f=f+1|0;if((f|0)>2]){continue}break}}f=p<<2;d=f+k|0;f=H[f+l>>2]-H[f+h>>2]|0;H[d>>2]=f;g:{if((f|0)>2]){f=f+H[a+20>>2]|0}else{if((f|0)<=H[a+24>>2]){break g}f=f-H[a+20>>2]|0}H[d>>2]=f}g=h;f=H[a+8>>2];p=p+1|0;if((f|0)>(p|0)){continue}break}}d=(n|0)>1;n=i;if(d){continue}break}}return r|0}va();X()}function Rg(a,b,c){var d=0,e=O(0),f=0,g=0,h=0,i=0,j=0,k=0,l=O(0),m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=O(0),v=0,w=0,x=0,y=0;n=da-16|0;da=n;a:{if(!(H[a+4>>2]!=-1|c-1>>>0>29)){H[a+4>>2]=c;h=F[b+24|0];c=0;H[a+20>>2]=0;H[n+8>>2]=0;H[n>>2]=0;H[n+4>>2]=0;if(h){if((h|0)<0){break a}c=h<<2;d=ra(c);c=ta(d,0,c)+c|0}j=H[a+8>>2];if(j){H[a+12>>2]=j;qa(j)}H[a+8>>2]=d;H[a+16>>2]=c;H[a+12>>2]=c;c=(h&1073741823)!=(h|0)?-1:h<<2;f=ra(c);c=ra(c);p=H[b+44>>2];g=c;j=H[b+48>>2];c=j;m=H[b>>2];i=H[b+40>>2];q=sa(g,c+H[m>>2]|0,i);r=sa(d,c+H[m>>2]|0,i);s=sa(f,c+H[m>>2]|0,i);b=H[b+80>>2];b:{if(b>>>0<2){break b}f=b;if(h){g=1;c=0;while(1){t=H[m>>2];b=zl(g,c,i,p)+j|0;k=sa(q,t+b|0,i);b=0;while(1){o=b<<2;d=o+r|0;e=L[k+o>>2];if(L[d>>2]>e){L[d>>2]=e}d=o+s|0;if(e>L[d>>2]){L[d>>2]=e}b=b+1|0;if((h|0)!=(b|0)){continue}break}b=c;c=g+1|0;b=c?b:b+1|0;g=c;c=b;if((f|0)!=(g|0)|b){continue}break}break b}g=1;c=0;d=0-!f|0;k=f-1|0;v=k&1;if((b|0)!=2){o=k&-2;f=0;while(1){k=H[m>>2];b=zl(g,c,i,p)+j|0;w=sa(q,k+b|0,i);x=H[m>>2];b=c;k=g+1|0;b=k?b:b+1|0;b=zl(i,p,k,b)+j|0;sa(w,x+b|0,i);b=g+2|0;c=b>>>0<2?c+1|0:c;g=b;b=t+2|0;f=b>>>0<2?f+1|0:f;t=b;if((o|0)!=(b|0)|(d|0)!=(f|0)){continue}break}}if(!(v|y)){break b}f=H[m>>2];b=zl(g,c,i,p)+j|0;sa(q,f+b|0,i)}c=1;u=L[a+20>>2];c:{d:{if((h|0)<=0){c=0;break d}l=L[r>>2];if(l!=l|O(P(l))==O(Z)){break c}b=0;while(1){e=L[s+(b<<2)>>2];if(e!=e|O(P(e))==O(Z)){break c}e=O(e-l);if(e>u){L[a+20>>2]=e;u=e}b=b+1|0;c=(h|0)>(b|0);if((b|0)==(h|0)){break d}l=L[r+(b<<2)>>2];if(l!=l){break c}if(O(P(l))!=O(Z)){continue}break}break c}if(u!=O(0)){break c}H[a+20>>2]=1065353216}qa(q);qa(s);d=c^1}da=n+16|0;return d&1}ua();X()}function Ck(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0;d=da-32|0;da=d;f=(e&1073741823)!=(e|0)?-1:e<<2;l=ta(ra(f),0,f);f=H[a+40>>2];f=H[f+4>>2]-H[f>>2]|0;if((f|0)>=5){p=H[a+36>>2];n=H[a+32>>2];q=e&-2;r=e&1;s=a+8|0;f=f>>>2|0;while(1){i=H[a+40>>2];g=H[i>>2];a:{b:{h=H[i+4>>2]-g>>2;i=f-1|0;if(h>>>0>i>>>0){t=N(e,i);g=H[g+(i<<2)>>2];if((g|0)==-1|H[H[n>>2]+(g>>>3&536870908)>>2]>>>g&1){break b}g=H[H[H[n+64>>2]+12>>2]+(g<<2)>>2];if((g|0)==-1){break b}k=H[p>>2];h=H[n+28>>2];m=H[k+(H[h+(g<<2)>>2]<<2)>>2];if((m|0)>=(i|0)){break b}j=g+1|0;j=H[k+(H[h+(((j>>>0)%3|0?j:g-2|0)<<2)>>2]<<2)>>2];if((j|0)>=(i|0)){break b}g=H[k+(H[h+(g+((g>>>0)%3|0?-1:2)<<2)>>2]<<2)>>2];if((g|0)>=(i|0)){break b}c:{if((e|0)<=0){break c}h=N(e,g);k=N(e,j);m=N(e,m);g=0;o=0;if((e|0)!=1){while(1){H[(g<<2)+l>>2]=(H[(g+h<<2)+b>>2]+H[(g+k<<2)+b>>2]|0)-H[(g+m<<2)+b>>2];j=g|1;H[(j<<2)+l>>2]=(H[(h+j<<2)+b>>2]+H[(j+k<<2)+b>>2]|0)-H[(j+m<<2)+b>>2];g=g+2|0;o=o+2|0;if((q|0)!=(o|0)){continue}break}}if(!r){break c}H[(g<<2)+l>>2]=(H[(g+h<<2)+b>>2]+H[(g+k<<2)+b>>2]|0)-H[(g+m<<2)+b>>2]}g=H[l>>2];h=H[l+4>>2];break a}va();X()}h=(N(f-2|0,e)<<2)+b|0;g=H[h>>2];h=H[h+4>>2]}k=t<<2;m=k+b|0;j=H[m+4>>2];H[d+16>>2]=H[m>>2];H[d+20>>2]=j;H[d+8>>2]=g;H[d+12>>2]=h;_a(d+24|0,s,d+16|0,d+8|0);g=c+k|0;H[g>>2]=H[d+24>>2];H[g+4>>2]=H[d+28>>2];g=(f|0)>2;f=i;if(g){continue}break}}if((e|0)>0){ta(l,0,e<<2)}e=H[l>>2];f=H[l+4>>2];i=H[b+4>>2];H[d+16>>2]=H[b>>2];H[d+20>>2]=i;H[d+8>>2]=e;H[d+12>>2]=f;_a(d+24|0,a+8|0,d+16|0,d+8|0);H[c>>2]=H[d+24>>2];H[c+4>>2]=H[d+28>>2];qa(l);da=d+32|0;return 1}function ff(a,b,c,d){var e=0,f=0,g=0,h=0,i=O(0),j=0,k=0,l=O(0);j=H[c>>2];g=j^318;a:{b:{f=H[b+4>>2];if(!f){break b}c=f-1|0;if(c&f){e=g;if(e>>>0>=f>>>0){e=(g>>>0)%(f>>>0)|0}c=H[H[b>>2]+(e<<2)>>2];if(!c){break b}while(1){c=H[c>>2];if(!c){break b}h=H[c+4>>2];if((h|0)!=(g|0)){if(f>>>0<=h>>>0){h=(h>>>0)%(f>>>0)|0}if((e|0)!=(h|0)){break b}}if(H[c+8>>2]!=(j|0)){continue}break}b=0;break a}e=c&g;c=H[H[b>>2]+(e<<2)>>2];if(!c){break b}h=f-1|0;while(1){c=H[c>>2];if(!c){break b}k=H[c+4>>2];if((k|0)!=(g|0)&(h&k)!=(e|0)){break b}if(H[c+8>>2]!=(j|0)){continue}break}b=0;break a}c=ra(16);H[c+8>>2]=H[d>>2];d=H[d+4>>2];H[c+4>>2]=g;H[c+12>>2]=d;H[c>>2]=0;i=O(H[b+12>>2]+1>>>0);l=L[b+16>>2];c:{if(i>O(l*O(f>>>0))?0:f){break c}d=2;h=(f-1&f)!=0|f>>>0<3|f<<1;i=O(U(O(i/l)));d:{if(i=O(0)){e=~~i>>>0;break d}e=0}e=e>>>0>>0?h:e;e:{if((e|0)==1){break e}if(!(e&e-1)){d=e;break e}d=Ja(e);f=H[b+4>>2]}f:{if(d>>>0<=f>>>0){if(d>>>0>=f>>>0){break f}h=f>>>0<3;i=O(U(O(O(K[b+12>>2])/L[b+16>>2])));g:{if(i=O(0)){e=~~i>>>0;break g}e=0}h:{i:{if(h){break i}if(Cl(f)>>>0>1){break i}e=e>>>0<2?e:1<<32-Q(e-1|0);break h}e=Ja(e)}d=d>>>0>e>>>0?d:e;if(d>>>0>=f>>>0){break f}}Ze(b,d)}f=H[b+4>>2];d=f-1|0;if(!(d&f)){e=d&g;break c}if(f>>>0>g>>>0){e=g;break c}e=(g>>>0)%(f>>>0)|0}g=H[b>>2]+(e<<2)|0;d=H[g>>2];j:{k:{if(!d){d=b+8|0;H[c>>2]=H[d>>2];H[b+8>>2]=c;H[g>>2]=d;d=H[c>>2];if(!d){break j}d=H[d+4>>2];g=f-1|0;l:{if(!(g&f)){d=d&g;break l}if(d>>>0>>0){break l}d=(d>>>0)%(f>>>0)|0}d=H[b>>2]+(d<<2)|0;break k}H[c>>2]=H[d>>2]}H[d>>2]=c}H[b+12>>2]=H[b+12>>2]+1;b=1}F[a+4|0]=b;H[a>>2]=c}function _d(a){var b=0,c=0,d=0,e=0;e=da-16|0;da=e;H[a+4>>2]=0;H[a+8>>2]=0;H[a>>2]=a+4;H[a+12>>2]=a+16;H[a+16>>2]=0;H[a+20>>2]=0;a=a+24|0;H[a+4>>2]=0;H[a+8>>2]=0;H[a>>2]=a+4;c=ra(32);H[e>>2]=c;H[e+4>>2]=20;H[e+8>>2]=-2147483616;F[c+20|0]=0;b=I[1359]|I[1360]<<8|(I[1361]<<16|I[1362]<<24);F[c+16|0]=b;F[c+17|0]=b>>>8;F[c+18|0]=b>>>16;F[c+19|0]=b>>>24;d=I[1355]|I[1356]<<8|(I[1357]<<16|I[1358]<<24);b=I[1351]|I[1352]<<8|(I[1353]<<16|I[1354]<<24);F[c+8|0]=b;F[c+9|0]=b>>>8;F[c+10|0]=b>>>16;F[c+11|0]=b>>>24;F[c+12|0]=d;F[c+13|0]=d>>>8;F[c+14|0]=d>>>16;F[c+15|0]=d>>>24;d=I[1347]|I[1348]<<8|(I[1349]<<16|I[1350]<<24);b=I[1343]|I[1344]<<8|(I[1345]<<16|I[1346]<<24);F[c|0]=b;F[c+1|0]=b>>>8;F[c+2|0]=b>>>16;F[c+3|0]=b>>>24;F[c+4|0]=d;F[c+5|0]=d>>>8;F[c+6|0]=d>>>16;F[c+7|0]=d>>>24;tb(a,e,1);if(F[e+11|0]<0){qa(H[e>>2])}b=ra(32);H[e>>2]=b;H[e+4>>2]=22;H[e+8>>2]=-2147483616;F[b+22|0]=0;c=I[1338]|I[1339]<<8|(I[1340]<<16|I[1341]<<24);d=I[1334]|I[1335]<<8|(I[1336]<<16|I[1337]<<24);F[b+14|0]=d;F[b+15|0]=d>>>8;F[b+16|0]=d>>>16;F[b+17|0]=d>>>24;F[b+18|0]=c;F[b+19|0]=c>>>8;F[b+20|0]=c>>>16;F[b+21|0]=c>>>24;c=I[1332]|I[1333]<<8|(I[1334]<<16|I[1335]<<24);d=I[1328]|I[1329]<<8|(I[1330]<<16|I[1331]<<24);F[b+8|0]=d;F[b+9|0]=d>>>8;F[b+10|0]=d>>>16;F[b+11|0]=d>>>24;F[b+12|0]=c;F[b+13|0]=c>>>8;F[b+14|0]=c>>>16;F[b+15|0]=c>>>24;c=I[1324]|I[1325]<<8|(I[1326]<<16|I[1327]<<24);d=I[1320]|I[1321]<<8|(I[1322]<<16|I[1323]<<24);F[b|0]=d;F[b+1|0]=d>>>8;F[b+2|0]=d>>>16;F[b+3|0]=d>>>24;F[b+4|0]=c;F[b+5|0]=c>>>8;F[b+6|0]=c>>>16;F[b+7|0]=c>>>24;tb(a,e,1);if(F[e+11|0]<0){qa(H[e>>2])}da=e+16|0}function Wf(a,b,c,d){var e=0,f=0,g=0,h=0,i=O(0),j=0,k=O(0);g=H[c>>2];a:{b:{f=H[b+4>>2];if(!f){break b}c=f-1|0;if(c&f){e=g;if(e>>>0>=f>>>0){e=(g>>>0)%(f>>>0)|0}c=H[H[b>>2]+(e<<2)>>2];if(!c){break b}while(1){c=H[c>>2];if(!c){break b}h=H[c+4>>2];if((h|0)!=(g|0)){if(f>>>0<=h>>>0){h=(h>>>0)%(f>>>0)|0}if((e|0)!=(h|0)){break b}}if((g|0)!=H[c+8>>2]){continue}break}b=0;break a}e=c&g;c=H[H[b>>2]+(e<<2)>>2];if(!c){break b}h=f-1|0;while(1){c=H[c>>2];if(!c){break b}j=H[c+4>>2];if((g|0)!=(j|0)&(h&j)!=(e|0)){break b}if((g|0)!=H[c+8>>2]){continue}break}b=0;break a}c=ra(16);d=H[H[d>>2]>>2];H[c+12>>2]=0;H[c+8>>2]=d;H[c+4>>2]=g;H[c>>2]=0;k=O(H[b+12>>2]+1>>>0);i=L[b+16>>2];c:{if(k>O(i*O(f>>>0))?0:f){break c}d=2;h=(f-1&f)!=0|f>>>0<3|f<<1;i=O(U(O(k/i)));d:{if(i=O(0)){e=~~i>>>0;break d}e=0}e=e>>>0>>0?h:e;e:{if((e|0)==1){break e}if(!(e&e-1)){d=e;break e}d=Ja(e);f=H[b+4>>2]}f:{if(d>>>0<=f>>>0){if(d>>>0>=f>>>0){break f}h=f>>>0<3;i=O(U(O(O(K[b+12>>2])/L[b+16>>2])));g:{if(i=O(0)){e=~~i>>>0;break g}e=0}h:{i:{if(h){break i}if(Cl(f)>>>0>1){break i}e=e>>>0<2?e:1<<32-Q(e-1|0);break h}e=Ja(e)}d=d>>>0>e>>>0?d:e;if(f>>>0<=d>>>0){break f}}Ze(b,d)}f=H[b+4>>2];d=f-1|0;if(!(d&f)){e=d&g;break c}if(f>>>0>g>>>0){e=g;break c}e=(g>>>0)%(f>>>0)|0}g=H[b>>2]+(e<<2)|0;d=H[g>>2];j:{k:{if(!d){d=b+8|0;H[c>>2]=H[d>>2];H[b+8>>2]=c;H[g>>2]=d;d=H[c>>2];if(!d){break j}d=H[d+4>>2];g=f-1|0;l:{if(!(g&f)){d=d&g;break l}if(d>>>0>>0){break l}d=(d>>>0)%(f>>>0)|0}d=H[b>>2]+(d<<2)|0;break k}H[c>>2]=H[d>>2]}H[d>>2]=c}H[b+12>>2]=H[b+12>>2]+1;b=1}F[a+4|0]=b;H[a>>2]=c}function Jc(a,b){var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0;c=da-112|0;da=c;d=ra(120);i=H[a+8>>2];H[d+12>>2]=0;H[d+16>>2]=0;H[d>>2]=11224;H[d+4>>2]=0;H[d+20>>2]=0;H[d+24>>2]=0;H[d+28>>2]=0;H[d+32>>2]=0;H[d+36>>2]=0;H[d+40>>2]=0;H[d+44>>2]=0;H[d+48>>2]=0;H[d+52>>2]=0;H[d+56>>2]=0;H[d+60>>2]=0;H[d+8>>2]=11436;e=d- -64|0;H[e>>2]=0;H[e+4>>2]=0;H[d+72>>2]=0;H[d+76>>2]=0;H[d+80>>2]=0;H[d+84>>2]=0;H[d+88>>2]=0;H[d+116>>2]=0;H[d+112>>2]=b;H[d+108>>2]=i;H[d+104>>2]=0;H[d+96>>2]=0;H[d+100>>2]=0;g=H[a+12>>2];H[c+48>>2]=0;H[c+52>>2]=0;H[c+40>>2]=0;H[c+44>>2]=0;f=c+32|0;e=f;H[e>>2]=0;H[e+4>>2]=0;H[c+24>>2]=0;H[c+28>>2]=0;e=c- -64|0;H[e>>2]=0;H[e+4>>2]=0;H[c+72>>2]=0;H[c+76>>2]=0;H[c+80>>2]=0;H[c+84>>2]=0;H[c+88>>2]=0;H[c+104>>2]=0;H[c+16>>2]=0;H[c+20>>2]=0;H[c+56>>2]=0;H[c+60>>2]=0;H[c+8>>2]=11436;H[c+96>>2]=0;H[c+100>>2]=0;H[c+12>>2]=g;h=H[g>>2];e=H[g+4>>2];F[c+111|0]=0;j=f;f=c+111|0;Qa(j,(e-h>>2>>>0)/3|0,f);e=H[c+12>>2];h=H[e+28>>2];e=H[e+24>>2];F[c+111|0]=0;Qa(c+44|0,h-e>>2,f);H[c+28>>2]=d;H[c+24>>2]=i;H[c+20>>2]=b;H[c+16>>2]=g;H[d+116>>2]=a+72;a=d+8|0;b=c+8|0;Ic(a,b);a:{if((a|0)==(b|0)){H[d+92>>2]=H[b+84>>2];break a}Tb(d+56|0,H[b+48>>2],H[b+52>>2]);Tb(d+68|0,H[b+60>>2],H[b- -64>>2]);Tb(d+80|0,H[b+72>>2],H[b+76>>2]);H[d+92>>2]=H[b+84>>2];cb(d+96|0,H[b+88>>2],H[b+92>>2])}H[c+8>>2]=11436;a=H[c+96>>2];if(a){H[c+100>>2]=a;qa(a)}a=H[c+80>>2];if(a){H[c+84>>2]=a;qa(a)}a=H[c+68>>2];if(a){H[c+72>>2]=a;qa(a)}a=H[c+56>>2];if(a){H[c+60>>2]=a;qa(a)}H[c+8>>2]=11672;a=H[c+44>>2];if(a){qa(a)}a=H[c+32>>2];if(a){qa(a)}da=c+112|0;return d}function jf(a,b,c){var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0;e=H[a+8>>2];g=H[a+4>>2];if((e-g|0)/12>>>0>=b>>>0){a:{if(!b){break a}b=N(b,12);e=b-12|0;f=((e>>>0)/12|0)+1&3;b:{if(!f){d=g;break b}d=g;while(1){j=H[c+4>>2];H[d>>2]=H[c>>2];H[d+4>>2]=j;H[d+8>>2]=H[c+8>>2];d=d+12|0;h=h+1|0;if((f|0)!=(h|0)){continue}break}}g=b+g|0;if(e>>>0<36){break a}while(1){b=H[c+4>>2];H[d>>2]=H[c>>2];H[d+4>>2]=b;H[d+8>>2]=H[c+8>>2];H[d+20>>2]=H[c+8>>2];b=H[c+4>>2];H[d+12>>2]=H[c>>2];H[d+16>>2]=b;H[d+32>>2]=H[c+8>>2];b=H[c+4>>2];H[d+24>>2]=H[c>>2];H[d+28>>2]=b;b=H[c+4>>2];H[d+36>>2]=H[c>>2];H[d+40>>2]=b;H[d+44>>2]=H[c+8>>2];d=d+48|0;if((g|0)!=(d|0)){continue}break}}H[a+4>>2]=g;return}c:{f=H[a>>2];i=(g-f|0)/12|0;d=i+b|0;if(d>>>0<357913942){e=(e-f|0)/12|0;f=e<<1;f=e>>>0<178956970?d>>>0>>0?f:d:357913941;if(f){if(f>>>0>=357913942){break c}j=ra(N(f,12))}e=N(i,12)+j|0;d=e;b=N(b,12);i=b-12|0;k=((i>>>0)/12|0)+1&3;if(k){d=e;while(1){l=H[c+4>>2];H[d>>2]=H[c>>2];H[d+4>>2]=l;H[d+8>>2]=H[c+8>>2];d=d+12|0;h=h+1|0;if((k|0)!=(h|0)){continue}break}}h=b+e|0;if(i>>>0>=36){while(1){b=H[c+4>>2];H[d>>2]=H[c>>2];H[d+4>>2]=b;H[d+8>>2]=H[c+8>>2];H[d+20>>2]=H[c+8>>2];b=H[c+4>>2];H[d+12>>2]=H[c>>2];H[d+16>>2]=b;H[d+32>>2]=H[c+8>>2];b=H[c+4>>2];H[d+24>>2]=H[c>>2];H[d+28>>2]=b;b=H[c+4>>2];H[d+36>>2]=H[c>>2];H[d+40>>2]=b;H[d+44>>2]=H[c+8>>2];d=d+48|0;if((h|0)!=(d|0)){continue}break}}b=H[a>>2];c=g-b|0;d=e+N((c|0)/-12|0,12)|0;if((c|0)>0){sa(d,b,c)}H[a+8>>2]=N(f,12)+j;H[a+4>>2]=h;H[a>>2]=d;if(b){qa(b)}return}ua();X()}ya();X()}function te(a,b,c,d){var e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0;g=da-32|0;da=g;n=a+4|0;a=ob(a,b);a:{if((n|0)==(a|0)){break a}b:{if(F[a+39|0]>=0){H[g+24>>2]=H[a+36>>2];b=H[a+32>>2];H[g+16>>2]=H[a+28>>2];H[g+20>>2]=b;break b}Ia(g+16|0,H[a+28>>2],H[a+32>>2])}b=I[g+27|0];a=b<<24>>24;if(!(!((a|0)<0?H[g+20>>2]:b)|(c|0)<=0)){b=0;a=(a|0)<0?H[g+16>>2]:g+16|0;while(1){c:{m=da-16|0;da=m;Qe(m,a,g+12|0,0);h=H[m>>2];l=H[m+4>>2];i=da-32|0;da=i;o=H[m+12>>2];j=o&2147483647;f=j;e=f-1065418752|0;k=f-1082064896|0;j=H[m+8>>2];d:{if((e|0)==(k|0)&j>>>0>>0|e>>>0>>0){f=(o&33554431)<<7|j>>>25;e=0;n=e;k=j&33554431;if(!(!e&(k|0)==16777216?!(h|l):!e&k>>>0<16777216)){e=f+1073741825|0;break d}e=f+1073741824|0;if(k^16777216|h|(l|n)){break d}e=(f&1)+e|0;break d}if(!(!j&(f|0)==2147418112?!(h|l):f>>>0<2147418112)){e=((o&33554431)<<7|j>>>25)&4194303|2143289344;break d}e=2139095040;if(f>>>0>1082064895){break d}e=0;f=f>>>16|0;if(f>>>0<16145){break d}e=o&65535|65536;Sa(i+16|0,h,l,j,e,f-16129|0);Ib(i,h,l,j,e,16257-f|0);h=H[i+8>>2];e=(H[i+12>>2]&33554431)<<7|h>>>25;k=H[i>>2]|(H[i+16>>2]|H[i+24>>2]|(H[i+20>>2]|H[i+28>>2]))!=0;l=H[i+4>>2];f=0;h=h&33554431;if(!(!f&(h|0)==16777216?!(k|l):!f&h>>>0<16777216)){e=e+1|0;break d}if(h^16777216|k|(f|l)){break d}e=(e&1)+e|0}da=i+32|0;da=m+16|0;n=a;a=H[g+12>>2];if((n|0)==(a|0)){break c}H[(b<<2)+d>>2]=o&-2147483648|e;b=b+1|0;if((c|0)!=(b|0)){continue}}break}a=I[g+27|0]}if(a<<24>>24>=0){break a}qa(H[g+16>>2])}da=g+32|0}function wa(a,b,c,d){var e=0,f=0,g=0,h=0,i=0,j=0,k=0;i=d-c|0;if((i|0)<=0){return}a:{g=H[a+8>>2];h=H[a+4>>2];if((g-h|0)>=(i|0)){j=h-b|0;if((j|0)>=(i|0)){f=h;g=d;break a}f=h;g=c+j|0;if((g|0)!=(d|0)){e=g;while(1){F[f|0]=I[e|0];f=f+1|0;e=e+1|0;if((e|0)!=(d|0)){continue}break}}H[a+4>>2]=f;if((j|0)>0){break a}return}f=H[a>>2];e=(h-f|0)+i|0;if((e|0)>=0){j=b-f|0;g=g-f|0;k=g<<1;k=g>>>0<1073741823?e>>>0>>0?k:e:2147483647;if(k){g=ra(k)}else{g=0}e=j+g|0;if((c|0)!=(d|0)){e=sa(e,c,i)+i|0}if((j|0)>0){sa(g,f,j)}if((b|0)!=(h|0)){d=(b^-1)+h|0;f=h-b&7;if(f){c=0;while(1){F[e|0]=I[b|0];e=e+1|0;b=b+1|0;c=c+1|0;if((f|0)!=(c|0)){continue}break}}if(d>>>0>=7){while(1){F[e|0]=I[b|0];F[e+1|0]=I[b+1|0];F[e+2|0]=I[b+2|0];F[e+3|0]=I[b+3|0];F[e+4|0]=I[b+4|0];F[e+5|0]=I[b+5|0];F[e+6|0]=I[b+6|0];F[e+7|0]=I[b+7|0];e=e+8|0;b=b+8|0;if((h|0)!=(b|0)){continue}break}}f=H[a>>2]}H[a+8>>2]=g+k;H[a+4>>2]=e;H[a>>2]=g;if(f){qa(f)}return}ua();X()}e=f;d=e-i|0;if(h>>>0>d>>>0){while(1){F[e|0]=I[d|0];e=e+1|0;d=d+1|0;if(h>>>0>d>>>0){continue}break}}H[a+4>>2]=e;a=b+i|0;if((a|0)!=(f|0)){a=f-a|0;xa(f-a|0,b,a)}if((c|0)==(g|0)){return}a=(c^-1)+g|0;f=g-c&7;b:{if(!f){e=b;break b}d=0;e=b;while(1){F[e|0]=I[c|0];e=e+1|0;c=c+1|0;d=d+1|0;if((f|0)!=(d|0)){continue}break}}if(a>>>0<7){return}while(1){F[e|0]=I[c|0];F[e+1|0]=I[c+1|0];F[e+2|0]=I[c+2|0];F[e+3|0]=I[c+3|0];F[e+4|0]=I[c+4|0];F[e+5|0]=I[c+5|0];F[e+6|0]=I[c+6|0];F[e+7|0]=I[c+7|0];e=e+8|0;c=c+8|0;if((g|0)!=(c|0)){continue}break}}function Ye(a,b){var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0;a:{b:{if(b){if(b>>>0>=1073741824){break a}d=ra(b<<2);e=H[a>>2];H[a>>2]=d;if(e){qa(e)}H[a+4>>2]=b;if(b-1>>>0>=3){f=b&-4;e=0;while(1){d=c<<2;H[d+H[a>>2]>>2]=0;H[H[a>>2]+(d|4)>>2]=0;H[H[a>>2]+(d|8)>>2]=0;H[H[a>>2]+(d|12)>>2]=0;c=c+4|0;e=e+4|0;if((f|0)!=(e|0)){continue}break}}e=b&3;if(e){while(1){H[H[a>>2]+(c<<2)>>2]=0;c=c+1|0;i=i+1|0;if((e|0)!=(i|0)){continue}break}}f=H[a+8>>2];if(!f){break b}e=a+8|0;g=H[f+4>>2];d=Cl(b);c:{if(d>>>0<=1){g=b-1&g;break c}if(b>>>0>g>>>0){break c}g=(g>>>0)%(b>>>0)|0}H[H[a>>2]+(g<<2)>>2]=e;e=H[f>>2];if(!e){break b}q=b-1|0;r=d>>>0>1;while(1){c=H[e+4>>2];d:{if(!r){c=c&q;break d}if(b>>>0>c>>>0){break d}c=(c>>>0)%(b>>>0)|0}e:{if((c|0)==(g|0)){f=e;break e}f:{g:{k=c<<2;d=k+H[a>>2]|0;if(H[d>>2]){j=0;c=H[e>>2];if(!c){d=e;break f}d=H[a+24>>2];m=H[d+8>>2];d=H[d+12>>2]-m|0;if((d|0)<=0){break g}l=d>>2;s=(l|0)>1?l:1;n=H[e+8>>2];d=e;while(1){j=c;o=H[c+8>>2];c=0;p=1;while(1){i=o;h=H[(c<<2)+m>>2];if(I[h+84|0]){h=n}else{h=H[h+68>>2];i=H[h+(o<<2)>>2];h=H[h+(n<<2)>>2]}if((h|0)==(i|0)){c=c+1|0;p=(l|0)>(c|0);if((c|0)!=(s|0)){continue}}break}if(p){break f}d=j;c=H[d>>2];if(c){continue}break}j=0;break f}H[d>>2]=f;f=e;g=c;break e}while(1){d=c;c=H[c>>2];if(c){continue}break}}H[f>>2]=j;H[d>>2]=H[H[H[a>>2]+k>>2]>>2];H[H[H[a>>2]+k>>2]>>2]=e}e=H[f>>2];if(e){continue}break}break b}b=H[a>>2];H[a>>2]=0;if(b){qa(b)}H[a+4>>2]=0}return}ya();X()}function jc(a,b,c,d,e,f){var g=0,h=0,i=0,j=0,k=0;a:{b:{c:{d:{switch(d|0){case 2:d=H[c>>2];c=H[d>>2];d=H[d+4>>2]-c>>3;e=b-4|0;b=H[e>>2];if(d>>>0<=b>>>0){break c}f=d;d=H[a>>2];if(f>>>0<=d>>>0){break c}if(K[c+(b<<3)>>2]>=K[c+(d<<3)>>2]){break a}H[a>>2]=b;H[e>>2]=d;break a;case 0:case 1:break a;default:break d}}if((d|0)>128){break b}if((a|0)==(b|0)){break a}d=a+4|0;if((d|0)==(b|0)){break a}g=H[c>>2];while(1){f=H[d>>2];e:{e=a;if((e|0)==(d|0)){break e}f:{h=H[g>>2];j=H[g+4>>2]-h>>3;if(j>>>0<=f>>>0){break f}k=h+(f<<3)|0;e=d;while(1){c=e-4|0;i=H[c>>2];if(i>>>0>=j>>>0){break f}if(K[k>>2]>=K[h+(i<<3)>>2]){break e}H[e>>2]=i;e=c;if((e|0)!=(a|0)){continue}break}e=a;break e}va();X()}H[e>>2]=f;d=d+4|0;if((d|0)!=(b|0)){continue}break}break a}va();X()}g=d>>>1|0;i=g<<2;h=i+a|0;g:{h:{if((d|0)<=(f|0)){Ag(a,h,c,g,e);f=b;b=e+i|0;Ag(h,f,c,d-g|0,b);f=(d<<2)+e|0;c=H[c>>2];d=b;while(1){if((d|0)==(f|0)){if((b|0)==(e|0)){break a}while(1){H[a>>2]=H[e>>2];a=a+4|0;e=e+4|0;if((b|0)!=(e|0)){continue}break}break a}g=H[c>>2];i=H[c+4>>2]-g>>3;h=H[d>>2];if(i>>>0<=h>>>0){break h}j=i;i=H[e>>2];if(j>>>0<=i>>>0){break h}i:{if(K[g+(h<<3)>>2]>2]){H[a>>2]=h;d=d+4|0;break i}H[a>>2]=i;e=e+4|0}a=a+4|0;if((b|0)!=(e|0)){continue}break}break g}jc(a,h,c,g,e,f);d=d-g|0;jc(h,b,c,d,e,f);Wd(a,h,b,c,g,d,e,f);return}va();X()}if((d|0)==(f|0)){break a}while(1){H[a>>2]=H[d>>2];a=a+4|0;d=d+4|0;if((f|0)!=(d|0)){continue}break}}}function ic(a,b,c,d,e,f){var g=0,h=0,i=0,j=0,k=0;a:{b:{c:{d:{switch(d|0){case 2:d=H[c>>2];c=H[d>>2];d=H[d+4>>2]-c>>3;e=b-4|0;b=H[e>>2];if(d>>>0<=b>>>0){break c}f=d;d=H[a>>2];if(f>>>0<=d>>>0){break c}if(K[c+(b<<3)>>2]>=K[c+(d<<3)>>2]){break a}H[a>>2]=b;H[e>>2]=d;break a;case 0:case 1:break a;default:break d}}if((d|0)>128){break b}if((a|0)==(b|0)){break a}d=a+4|0;if((d|0)==(b|0)){break a}g=H[c>>2];while(1){f=H[d>>2];e:{e=a;if((e|0)==(d|0)){break e}f:{h=H[g>>2];j=H[g+4>>2]-h>>3;if(j>>>0<=f>>>0){break f}k=h+(f<<3)|0;e=d;while(1){c=e-4|0;i=H[c>>2];if(i>>>0>=j>>>0){break f}if(K[k>>2]>=K[h+(i<<3)>>2]){break e}H[e>>2]=i;e=c;if((e|0)!=(a|0)){continue}break}e=a;break e}va();X()}H[e>>2]=f;d=d+4|0;if((d|0)!=(b|0)){continue}break}break a}va();X()}g=d>>>1|0;i=g<<2;h=i+a|0;g:{h:{if((d|0)<=(f|0)){zg(a,h,c,g,e);f=b;b=e+i|0;zg(h,f,c,d-g|0,b);f=(d<<2)+e|0;c=H[c>>2];d=b;while(1){if((d|0)==(f|0)){if((b|0)==(e|0)){break a}while(1){H[a>>2]=H[e>>2];a=a+4|0;e=e+4|0;if((b|0)!=(e|0)){continue}break}break a}g=H[c>>2];i=H[c+4>>2]-g>>3;h=H[d>>2];if(i>>>0<=h>>>0){break h}j=i;i=H[e>>2];if(j>>>0<=i>>>0){break h}i:{if(K[g+(h<<3)>>2]>2]){H[a>>2]=h;d=d+4|0;break i}H[a>>2]=i;e=e+4|0}a=a+4|0;if((b|0)!=(e|0)){continue}break}break g}ic(a,h,c,g,e,f);d=d-g|0;ic(h,b,c,d,e,f);Vd(a,h,b,c,g,d,e,f);return}va();X()}if((d|0)==(f|0)){break a}while(1){H[a>>2]=H[d>>2];a=a+4|0;d=d+4|0;if((f|0)!=(d|0)){continue}break}}}function hc(a,b,c,d,e,f){var g=0,h=0,i=0,j=0,k=0;a:{b:{c:{d:{switch(d|0){case 2:d=H[c>>2];c=H[d>>2];d=H[d+4>>2]-c>>3;e=b-4|0;b=H[e>>2];if(d>>>0<=b>>>0){break c}f=d;d=H[a>>2];if(f>>>0<=d>>>0){break c}if(K[c+(b<<3)>>2]>=K[c+(d<<3)>>2]){break a}H[a>>2]=b;H[e>>2]=d;break a;case 0:case 1:break a;default:break d}}if((d|0)>128){break b}if((a|0)==(b|0)){break a}d=a+4|0;if((d|0)==(b|0)){break a}g=H[c>>2];while(1){f=H[d>>2];e:{e=a;if((e|0)==(d|0)){break e}f:{h=H[g>>2];j=H[g+4>>2]-h>>3;if(j>>>0<=f>>>0){break f}k=h+(f<<3)|0;e=d;while(1){c=e-4|0;i=H[c>>2];if(i>>>0>=j>>>0){break f}if(K[k>>2]>=K[h+(i<<3)>>2]){break e}H[e>>2]=i;e=c;if((e|0)!=(a|0)){continue}break}e=a;break e}va();X()}H[e>>2]=f;d=d+4|0;if((d|0)!=(b|0)){continue}break}break a}va();X()}g=d>>>1|0;i=g<<2;h=i+a|0;g:{h:{if((d|0)<=(f|0)){yg(a,h,c,g,e);f=b;b=e+i|0;yg(h,f,c,d-g|0,b);f=(d<<2)+e|0;c=H[c>>2];d=b;while(1){if((d|0)==(f|0)){if((b|0)==(e|0)){break a}while(1){H[a>>2]=H[e>>2];a=a+4|0;e=e+4|0;if((b|0)!=(e|0)){continue}break}break a}g=H[c>>2];i=H[c+4>>2]-g>>3;h=H[d>>2];if(i>>>0<=h>>>0){break h}j=i;i=H[e>>2];if(j>>>0<=i>>>0){break h}i:{if(K[g+(h<<3)>>2]>2]){H[a>>2]=h;d=d+4|0;break i}H[a>>2]=i;e=e+4|0}a=a+4|0;if((b|0)!=(e|0)){continue}break}break g}hc(a,h,c,g,e,f);d=d-g|0;hc(h,b,c,d,e,f);Ud(a,h,b,c,g,d,e,f);return}va();X()}if((d|0)==(f|0)){break a}while(1){H[a>>2]=H[d>>2];a=a+4|0;d=d+4|0;if((f|0)!=(d|0)){continue}break}}}function gc(a,b,c,d,e,f){var g=0,h=0,i=0,j=0,k=0;a:{b:{c:{d:{switch(d|0){case 2:d=H[c>>2];c=H[d>>2];d=H[d+4>>2]-c>>3;e=b-4|0;b=H[e>>2];if(d>>>0<=b>>>0){break c}f=d;d=H[a>>2];if(f>>>0<=d>>>0){break c}if(K[c+(b<<3)>>2]>=K[c+(d<<3)>>2]){break a}H[a>>2]=b;H[e>>2]=d;break a;case 0:case 1:break a;default:break d}}if((d|0)>128){break b}if((a|0)==(b|0)){break a}d=a+4|0;if((d|0)==(b|0)){break a}g=H[c>>2];while(1){f=H[d>>2];e:{e=a;if((e|0)==(d|0)){break e}f:{h=H[g>>2];j=H[g+4>>2]-h>>3;if(j>>>0<=f>>>0){break f}k=h+(f<<3)|0;e=d;while(1){c=e-4|0;i=H[c>>2];if(i>>>0>=j>>>0){break f}if(K[k>>2]>=K[h+(i<<3)>>2]){break e}H[e>>2]=i;e=c;if((e|0)!=(a|0)){continue}break}e=a;break e}va();X()}H[e>>2]=f;d=d+4|0;if((d|0)!=(b|0)){continue}break}break a}va();X()}g=d>>>1|0;i=g<<2;h=i+a|0;g:{h:{if((d|0)<=(f|0)){xg(a,h,c,g,e);f=b;b=e+i|0;xg(h,f,c,d-g|0,b);f=(d<<2)+e|0;c=H[c>>2];d=b;while(1){if((d|0)==(f|0)){if((b|0)==(e|0)){break a}while(1){H[a>>2]=H[e>>2];a=a+4|0;e=e+4|0;if((b|0)!=(e|0)){continue}break}break a}g=H[c>>2];i=H[c+4>>2]-g>>3;h=H[d>>2];if(i>>>0<=h>>>0){break h}j=i;i=H[e>>2];if(j>>>0<=i>>>0){break h}i:{if(K[g+(h<<3)>>2]>2]){H[a>>2]=h;d=d+4|0;break i}H[a>>2]=i;e=e+4|0}a=a+4|0;if((b|0)!=(e|0)){continue}break}break g}gc(a,h,c,g,e,f);d=d-g|0;gc(h,b,c,d,e,f);Td(a,h,b,c,g,d,e,f);return}va();X()}if((d|0)==(f|0)){break a}while(1){H[a>>2]=H[d>>2];a=a+4|0;d=d+4|0;if((f|0)!=(d|0)){continue}break}}}function fc(a,b,c,d,e,f){var g=0,h=0,i=0,j=0,k=0;a:{b:{c:{d:{switch(d|0){case 2:d=H[c>>2];c=H[d>>2];d=H[d+4>>2]-c>>3;e=b-4|0;b=H[e>>2];if(d>>>0<=b>>>0){break c}f=d;d=H[a>>2];if(f>>>0<=d>>>0){break c}if(K[c+(b<<3)>>2]>=K[c+(d<<3)>>2]){break a}H[a>>2]=b;H[e>>2]=d;break a;case 0:case 1:break a;default:break d}}if((d|0)>128){break b}if((a|0)==(b|0)){break a}d=a+4|0;if((d|0)==(b|0)){break a}g=H[c>>2];while(1){f=H[d>>2];e:{e=a;if((e|0)==(d|0)){break e}f:{h=H[g>>2];j=H[g+4>>2]-h>>3;if(j>>>0<=f>>>0){break f}k=h+(f<<3)|0;e=d;while(1){c=e-4|0;i=H[c>>2];if(i>>>0>=j>>>0){break f}if(K[k>>2]>=K[h+(i<<3)>>2]){break e}H[e>>2]=i;e=c;if((e|0)!=(a|0)){continue}break}e=a;break e}va();X()}H[e>>2]=f;d=d+4|0;if((d|0)!=(b|0)){continue}break}break a}va();X()}g=d>>>1|0;i=g<<2;h=i+a|0;g:{h:{if((d|0)<=(f|0)){wg(a,h,c,g,e);f=b;b=e+i|0;wg(h,f,c,d-g|0,b);f=(d<<2)+e|0;c=H[c>>2];d=b;while(1){if((d|0)==(f|0)){if((b|0)==(e|0)){break a}while(1){H[a>>2]=H[e>>2];a=a+4|0;e=e+4|0;if((b|0)!=(e|0)){continue}break}break a}g=H[c>>2];i=H[c+4>>2]-g>>3;h=H[d>>2];if(i>>>0<=h>>>0){break h}j=i;i=H[e>>2];if(j>>>0<=i>>>0){break h}i:{if(K[g+(h<<3)>>2]>2]){H[a>>2]=h;d=d+4|0;break i}H[a>>2]=i;e=e+4|0}a=a+4|0;if((b|0)!=(e|0)){continue}break}break g}fc(a,h,c,g,e,f);d=d-g|0;fc(h,b,c,d,e,f);Sd(a,h,b,c,g,d,e,f);return}va();X()}if((d|0)==(f|0)){break a}while(1){H[a>>2]=H[d>>2];a=a+4|0;d=d+4|0;if((f|0)!=(d|0)){continue}break}}}function ec(a,b,c,d,e,f){var g=0,h=0,i=0,j=0,k=0;a:{b:{c:{d:{switch(d|0){case 2:d=H[c>>2];c=H[d>>2];d=H[d+4>>2]-c>>3;e=b-4|0;b=H[e>>2];if(d>>>0<=b>>>0){break c}f=d;d=H[a>>2];if(f>>>0<=d>>>0){break c}if(K[c+(b<<3)>>2]>=K[c+(d<<3)>>2]){break a}H[a>>2]=b;H[e>>2]=d;break a;case 0:case 1:break a;default:break d}}if((d|0)>128){break b}if((a|0)==(b|0)){break a}d=a+4|0;if((d|0)==(b|0)){break a}g=H[c>>2];while(1){f=H[d>>2];e:{e=a;if((e|0)==(d|0)){break e}f:{h=H[g>>2];j=H[g+4>>2]-h>>3;if(j>>>0<=f>>>0){break f}k=h+(f<<3)|0;e=d;while(1){c=e-4|0;i=H[c>>2];if(i>>>0>=j>>>0){break f}if(K[k>>2]>=K[h+(i<<3)>>2]){break e}H[e>>2]=i;e=c;if((e|0)!=(a|0)){continue}break}e=a;break e}va();X()}H[e>>2]=f;d=d+4|0;if((d|0)!=(b|0)){continue}break}break a}va();X()}g=d>>>1|0;i=g<<2;h=i+a|0;g:{h:{if((d|0)<=(f|0)){vg(a,h,c,g,e);f=b;b=e+i|0;vg(h,f,c,d-g|0,b);f=(d<<2)+e|0;c=H[c>>2];d=b;while(1){if((d|0)==(f|0)){if((b|0)==(e|0)){break a}while(1){H[a>>2]=H[e>>2];a=a+4|0;e=e+4|0;if((b|0)!=(e|0)){continue}break}break a}g=H[c>>2];i=H[c+4>>2]-g>>3;h=H[d>>2];if(i>>>0<=h>>>0){break h}j=i;i=H[e>>2];if(j>>>0<=i>>>0){break h}i:{if(K[g+(h<<3)>>2]>2]){H[a>>2]=h;d=d+4|0;break i}H[a>>2]=i;e=e+4|0}a=a+4|0;if((b|0)!=(e|0)){continue}break}break g}ec(a,h,c,g,e,f);d=d-g|0;ec(h,b,c,d,e,f);Rd(a,h,b,c,g,d,e,f);return}va();X()}if((d|0)==(f|0)){break a}while(1){H[a>>2]=H[d>>2];a=a+4|0;d=d+4|0;if((f|0)!=(d|0)){continue}break}}}function dc(a,b,c,d,e,f){var g=0,h=0,i=0,j=0,k=0;a:{b:{c:{d:{switch(d|0){case 2:d=H[c>>2];c=H[d>>2];d=H[d+4>>2]-c>>3;e=b-4|0;b=H[e>>2];if(d>>>0<=b>>>0){break c}f=d;d=H[a>>2];if(f>>>0<=d>>>0){break c}if(K[c+(b<<3)>>2]>=K[c+(d<<3)>>2]){break a}H[a>>2]=b;H[e>>2]=d;break a;case 0:case 1:break a;default:break d}}if((d|0)>128){break b}if((a|0)==(b|0)){break a}d=a+4|0;if((d|0)==(b|0)){break a}g=H[c>>2];while(1){f=H[d>>2];e:{e=a;if((e|0)==(d|0)){break e}f:{h=H[g>>2];j=H[g+4>>2]-h>>3;if(j>>>0<=f>>>0){break f}k=h+(f<<3)|0;e=d;while(1){c=e-4|0;i=H[c>>2];if(i>>>0>=j>>>0){break f}if(K[k>>2]>=K[h+(i<<3)>>2]){break e}H[e>>2]=i;e=c;if((e|0)!=(a|0)){continue}break}e=a;break e}va();X()}H[e>>2]=f;d=d+4|0;if((d|0)!=(b|0)){continue}break}break a}va();X()}g=d>>>1|0;i=g<<2;h=i+a|0;g:{h:{if((d|0)<=(f|0)){ug(a,h,c,g,e);f=b;b=e+i|0;ug(h,f,c,d-g|0,b);f=(d<<2)+e|0;c=H[c>>2];d=b;while(1){if((d|0)==(f|0)){if((b|0)==(e|0)){break a}while(1){H[a>>2]=H[e>>2];a=a+4|0;e=e+4|0;if((b|0)!=(e|0)){continue}break}break a}g=H[c>>2];i=H[c+4>>2]-g>>3;h=H[d>>2];if(i>>>0<=h>>>0){break h}j=i;i=H[e>>2];if(j>>>0<=i>>>0){break h}i:{if(K[g+(h<<3)>>2]>2]){H[a>>2]=h;d=d+4|0;break i}H[a>>2]=i;e=e+4|0}a=a+4|0;if((b|0)!=(e|0)){continue}break}break g}dc(a,h,c,g,e,f);d=d-g|0;dc(h,b,c,d,e,f);Qd(a,h,b,c,g,d,e,f);return}va();X()}if((d|0)==(f|0)){break a}while(1){H[a>>2]=H[d>>2];a=a+4|0;d=d+4|0;if((f|0)!=(d|0)){continue}break}}}function cc(a,b,c,d,e,f){var g=0,h=0,i=0,j=0,k=0;a:{b:{c:{d:{switch(d|0){case 2:d=H[c>>2];c=H[d>>2];d=H[d+4>>2]-c>>3;e=b-4|0;b=H[e>>2];if(d>>>0<=b>>>0){break c}f=d;d=H[a>>2];if(f>>>0<=d>>>0){break c}if(K[c+(b<<3)>>2]>=K[c+(d<<3)>>2]){break a}H[a>>2]=b;H[e>>2]=d;break a;case 0:case 1:break a;default:break d}}if((d|0)>128){break b}if((a|0)==(b|0)){break a}d=a+4|0;if((d|0)==(b|0)){break a}g=H[c>>2];while(1){f=H[d>>2];e:{e=a;if((e|0)==(d|0)){break e}f:{h=H[g>>2];j=H[g+4>>2]-h>>3;if(j>>>0<=f>>>0){break f}k=h+(f<<3)|0;e=d;while(1){c=e-4|0;i=H[c>>2];if(i>>>0>=j>>>0){break f}if(K[k>>2]>=K[h+(i<<3)>>2]){break e}H[e>>2]=i;e=c;if((e|0)!=(a|0)){continue}break}e=a;break e}va();X()}H[e>>2]=f;d=d+4|0;if((d|0)!=(b|0)){continue}break}break a}va();X()}g=d>>>1|0;i=g<<2;h=i+a|0;g:{h:{if((d|0)<=(f|0)){tg(a,h,c,g,e);f=b;b=e+i|0;tg(h,f,c,d-g|0,b);f=(d<<2)+e|0;c=H[c>>2];d=b;while(1){if((d|0)==(f|0)){if((b|0)==(e|0)){break a}while(1){H[a>>2]=H[e>>2];a=a+4|0;e=e+4|0;if((b|0)!=(e|0)){continue}break}break a}g=H[c>>2];i=H[c+4>>2]-g>>3;h=H[d>>2];if(i>>>0<=h>>>0){break h}j=i;i=H[e>>2];if(j>>>0<=i>>>0){break h}i:{if(K[g+(h<<3)>>2]>2]){H[a>>2]=h;d=d+4|0;break i}H[a>>2]=i;e=e+4|0}a=a+4|0;if((b|0)!=(e|0)){continue}break}break g}cc(a,h,c,g,e,f);d=d-g|0;cc(h,b,c,d,e,f);Pd(a,h,b,c,g,d,e,f);return}va();X()}if((d|0)==(f|0)){break a}while(1){H[a>>2]=H[d>>2];a=a+4|0;d=d+4|0;if((f|0)!=(d|0)){continue}break}}}function bc(a,b,c,d,e,f){var g=0,h=0,i=0,j=0,k=0;a:{b:{c:{d:{switch(d|0){case 2:d=H[c>>2];c=H[d>>2];d=H[d+4>>2]-c>>3;e=b-4|0;b=H[e>>2];if(d>>>0<=b>>>0){break c}f=d;d=H[a>>2];if(f>>>0<=d>>>0){break c}if(K[c+(b<<3)>>2]>=K[c+(d<<3)>>2]){break a}H[a>>2]=b;H[e>>2]=d;break a;case 0:case 1:break a;default:break d}}if((d|0)>128){break b}if((a|0)==(b|0)){break a}d=a+4|0;if((d|0)==(b|0)){break a}g=H[c>>2];while(1){f=H[d>>2];e:{e=a;if((e|0)==(d|0)){break e}f:{h=H[g>>2];j=H[g+4>>2]-h>>3;if(j>>>0<=f>>>0){break f}k=h+(f<<3)|0;e=d;while(1){c=e-4|0;i=H[c>>2];if(i>>>0>=j>>>0){break f}if(K[k>>2]>=K[h+(i<<3)>>2]){break e}H[e>>2]=i;e=c;if((e|0)!=(a|0)){continue}break}e=a;break e}va();X()}H[e>>2]=f;d=d+4|0;if((d|0)!=(b|0)){continue}break}break a}va();X()}g=d>>>1|0;i=g<<2;h=i+a|0;g:{h:{if((d|0)<=(f|0)){sg(a,h,c,g,e);f=b;b=e+i|0;sg(h,f,c,d-g|0,b);f=(d<<2)+e|0;c=H[c>>2];d=b;while(1){if((d|0)==(f|0)){if((b|0)==(e|0)){break a}while(1){H[a>>2]=H[e>>2];a=a+4|0;e=e+4|0;if((b|0)!=(e|0)){continue}break}break a}g=H[c>>2];i=H[c+4>>2]-g>>3;h=H[d>>2];if(i>>>0<=h>>>0){break h}j=i;i=H[e>>2];if(j>>>0<=i>>>0){break h}i:{if(K[g+(h<<3)>>2]>2]){H[a>>2]=h;d=d+4|0;break i}H[a>>2]=i;e=e+4|0}a=a+4|0;if((b|0)!=(e|0)){continue}break}break g}bc(a,h,c,g,e,f);d=d-g|0;bc(h,b,c,d,e,f);Od(a,h,b,c,g,d,e,f);return}va();X()}if((d|0)==(f|0)){break a}while(1){H[a>>2]=H[d>>2];a=a+4|0;d=d+4|0;if((f|0)!=(d|0)){continue}break}}}function ac(a,b,c,d,e,f){var g=0,h=0,i=0,j=0,k=0;a:{b:{c:{d:{switch(d|0){case 2:d=H[c>>2];c=H[d>>2];d=H[d+4>>2]-c>>3;e=b-4|0;b=H[e>>2];if(d>>>0<=b>>>0){break c}f=d;d=H[a>>2];if(f>>>0<=d>>>0){break c}if(K[c+(b<<3)>>2]>=K[c+(d<<3)>>2]){break a}H[a>>2]=b;H[e>>2]=d;break a;case 0:case 1:break a;default:break d}}if((d|0)>128){break b}if((a|0)==(b|0)){break a}d=a+4|0;if((d|0)==(b|0)){break a}g=H[c>>2];while(1){f=H[d>>2];e:{e=a;if((e|0)==(d|0)){break e}f:{h=H[g>>2];j=H[g+4>>2]-h>>3;if(j>>>0<=f>>>0){break f}k=h+(f<<3)|0;e=d;while(1){c=e-4|0;i=H[c>>2];if(i>>>0>=j>>>0){break f}if(K[k>>2]>=K[h+(i<<3)>>2]){break e}H[e>>2]=i;e=c;if((e|0)!=(a|0)){continue}break}e=a;break e}va();X()}H[e>>2]=f;d=d+4|0;if((d|0)!=(b|0)){continue}break}break a}va();X()}g=d>>>1|0;i=g<<2;h=i+a|0;g:{h:{if((d|0)<=(f|0)){rg(a,h,c,g,e);f=b;b=e+i|0;rg(h,f,c,d-g|0,b);f=(d<<2)+e|0;c=H[c>>2];d=b;while(1){if((d|0)==(f|0)){if((b|0)==(e|0)){break a}while(1){H[a>>2]=H[e>>2];a=a+4|0;e=e+4|0;if((b|0)!=(e|0)){continue}break}break a}g=H[c>>2];i=H[c+4>>2]-g>>3;h=H[d>>2];if(i>>>0<=h>>>0){break h}j=i;i=H[e>>2];if(j>>>0<=i>>>0){break h}i:{if(K[g+(h<<3)>>2]>2]){H[a>>2]=h;d=d+4|0;break i}H[a>>2]=i;e=e+4|0}a=a+4|0;if((b|0)!=(e|0)){continue}break}break g}ac(a,h,c,g,e,f);d=d-g|0;ac(h,b,c,d,e,f);Nd(a,h,b,c,g,d,e,f);return}va();X()}if((d|0)==(f|0)){break a}while(1){H[a>>2]=H[d>>2];a=a+4|0;d=d+4|0;if((f|0)!=(d|0)){continue}break}}}function _b(a,b,c,d,e,f){var g=0,h=0,i=0,j=0,k=0;a:{b:{c:{d:{switch(d|0){case 2:d=H[c>>2];c=H[d>>2];d=H[d+4>>2]-c>>3;e=b-4|0;b=H[e>>2];if(d>>>0<=b>>>0){break c}f=d;d=H[a>>2];if(f>>>0<=d>>>0){break c}if(K[c+(b<<3)>>2]>=K[c+(d<<3)>>2]){break a}H[a>>2]=b;H[e>>2]=d;break a;case 0:case 1:break a;default:break d}}if((d|0)>128){break b}if((a|0)==(b|0)){break a}d=a+4|0;if((d|0)==(b|0)){break a}g=H[c>>2];while(1){f=H[d>>2];e:{e=a;if((e|0)==(d|0)){break e}f:{h=H[g>>2];j=H[g+4>>2]-h>>3;if(j>>>0<=f>>>0){break f}k=h+(f<<3)|0;e=d;while(1){c=e-4|0;i=H[c>>2];if(i>>>0>=j>>>0){break f}if(K[k>>2]>=K[h+(i<<3)>>2]){break e}H[e>>2]=i;e=c;if((e|0)!=(a|0)){continue}break}e=a;break e}va();X()}H[e>>2]=f;d=d+4|0;if((d|0)!=(b|0)){continue}break}break a}va();X()}g=d>>>1|0;i=g<<2;h=i+a|0;g:{h:{if((d|0)<=(f|0)){pg(a,h,c,g,e);f=b;b=e+i|0;pg(h,f,c,d-g|0,b);f=(d<<2)+e|0;c=H[c>>2];d=b;while(1){if((d|0)==(f|0)){if((b|0)==(e|0)){break a}while(1){H[a>>2]=H[e>>2];a=a+4|0;e=e+4|0;if((b|0)!=(e|0)){continue}break}break a}g=H[c>>2];i=H[c+4>>2]-g>>3;h=H[d>>2];if(i>>>0<=h>>>0){break h}j=i;i=H[e>>2];if(j>>>0<=i>>>0){break h}i:{if(K[g+(h<<3)>>2]>2]){H[a>>2]=h;d=d+4|0;break i}H[a>>2]=i;e=e+4|0}a=a+4|0;if((b|0)!=(e|0)){continue}break}break g}_b(a,h,c,g,e,f);d=d-g|0;_b(h,b,c,d,e,f);Ld(a,h,b,c,g,d,e,f);return}va();X()}if((d|0)==(f|0)){break a}while(1){H[a>>2]=H[d>>2];a=a+4|0;d=d+4|0;if((f|0)!=(d|0)){continue}break}}}function Zb(a,b,c,d,e,f){var g=0,h=0,i=0,j=0,k=0;a:{b:{c:{d:{switch(d|0){case 2:d=H[c>>2];c=H[d>>2];d=H[d+4>>2]-c>>3;e=b-4|0;b=H[e>>2];if(d>>>0<=b>>>0){break c}f=d;d=H[a>>2];if(f>>>0<=d>>>0){break c}if(K[c+(b<<3)>>2]>=K[c+(d<<3)>>2]){break a}H[a>>2]=b;H[e>>2]=d;break a;case 0:case 1:break a;default:break d}}if((d|0)>128){break b}if((a|0)==(b|0)){break a}d=a+4|0;if((d|0)==(b|0)){break a}g=H[c>>2];while(1){f=H[d>>2];e:{e=a;if((e|0)==(d|0)){break e}f:{h=H[g>>2];j=H[g+4>>2]-h>>3;if(j>>>0<=f>>>0){break f}k=h+(f<<3)|0;e=d;while(1){c=e-4|0;i=H[c>>2];if(i>>>0>=j>>>0){break f}if(K[k>>2]>=K[h+(i<<3)>>2]){break e}H[e>>2]=i;e=c;if((e|0)!=(a|0)){continue}break}e=a;break e}va();X()}H[e>>2]=f;d=d+4|0;if((d|0)!=(b|0)){continue}break}break a}va();X()}g=d>>>1|0;i=g<<2;h=i+a|0;g:{h:{if((d|0)<=(f|0)){ng(a,h,c,g,e);f=b;b=e+i|0;ng(h,f,c,d-g|0,b);f=(d<<2)+e|0;c=H[c>>2];d=b;while(1){if((d|0)==(f|0)){if((b|0)==(e|0)){break a}while(1){H[a>>2]=H[e>>2];a=a+4|0;e=e+4|0;if((b|0)!=(e|0)){continue}break}break a}g=H[c>>2];i=H[c+4>>2]-g>>3;h=H[d>>2];if(i>>>0<=h>>>0){break h}j=i;i=H[e>>2];if(j>>>0<=i>>>0){break h}i:{if(K[g+(h<<3)>>2]>2]){H[a>>2]=h;d=d+4|0;break i}H[a>>2]=i;e=e+4|0}a=a+4|0;if((b|0)!=(e|0)){continue}break}break g}Zb(a,h,c,g,e,f);d=d-g|0;Zb(h,b,c,d,e,f);Kd(a,h,b,c,g,d,e,f);return}va();X()}if((d|0)==(f|0)){break a}while(1){H[a>>2]=H[d>>2];a=a+4|0;d=d+4|0;if((f|0)!=(d|0)){continue}break}}}function Yb(a,b,c,d,e,f){var g=0,h=0,i=0,j=0,k=0;a:{b:{c:{d:{switch(d|0){case 2:d=H[c>>2];c=H[d>>2];d=H[d+4>>2]-c>>3;e=b-4|0;b=H[e>>2];if(d>>>0<=b>>>0){break c}f=d;d=H[a>>2];if(f>>>0<=d>>>0){break c}if(K[c+(b<<3)>>2]>=K[c+(d<<3)>>2]){break a}H[a>>2]=b;H[e>>2]=d;break a;case 0:case 1:break a;default:break d}}if((d|0)>128){break b}if((a|0)==(b|0)){break a}d=a+4|0;if((d|0)==(b|0)){break a}g=H[c>>2];while(1){f=H[d>>2];e:{e=a;if((e|0)==(d|0)){break e}f:{h=H[g>>2];j=H[g+4>>2]-h>>3;if(j>>>0<=f>>>0){break f}k=h+(f<<3)|0;e=d;while(1){c=e-4|0;i=H[c>>2];if(i>>>0>=j>>>0){break f}if(K[k>>2]>=K[h+(i<<3)>>2]){break e}H[e>>2]=i;e=c;if((e|0)!=(a|0)){continue}break}e=a;break e}va();X()}H[e>>2]=f;d=d+4|0;if((d|0)!=(b|0)){continue}break}break a}va();X()}g=d>>>1|0;i=g<<2;h=i+a|0;g:{h:{if((d|0)<=(f|0)){mg(a,h,c,g,e);f=b;b=e+i|0;mg(h,f,c,d-g|0,b);f=(d<<2)+e|0;c=H[c>>2];d=b;while(1){if((d|0)==(f|0)){if((b|0)==(e|0)){break a}while(1){H[a>>2]=H[e>>2];a=a+4|0;e=e+4|0;if((b|0)!=(e|0)){continue}break}break a}g=H[c>>2];i=H[c+4>>2]-g>>3;h=H[d>>2];if(i>>>0<=h>>>0){break h}j=i;i=H[e>>2];if(j>>>0<=i>>>0){break h}i:{if(K[g+(h<<3)>>2]>2]){H[a>>2]=h;d=d+4|0;break i}H[a>>2]=i;e=e+4|0}a=a+4|0;if((b|0)!=(e|0)){continue}break}break g}Yb(a,h,c,g,e,f);d=d-g|0;Yb(h,b,c,d,e,f);Jd(a,h,b,c,g,d,e,f);return}va();X()}if((d|0)==(f|0)){break a}while(1){H[a>>2]=H[d>>2];a=a+4|0;d=d+4|0;if((f|0)!=(d|0)){continue}break}}}function Xb(a,b,c,d,e,f){var g=0,h=0,i=0,j=0,k=0;a:{b:{c:{d:{switch(d|0){case 2:d=H[c>>2];c=H[d>>2];d=H[d+4>>2]-c>>3;e=b-4|0;b=H[e>>2];if(d>>>0<=b>>>0){break c}f=d;d=H[a>>2];if(f>>>0<=d>>>0){break c}if(K[c+(b<<3)>>2]>=K[c+(d<<3)>>2]){break a}H[a>>2]=b;H[e>>2]=d;break a;case 0:case 1:break a;default:break d}}if((d|0)>128){break b}if((a|0)==(b|0)){break a}d=a+4|0;if((d|0)==(b|0)){break a}g=H[c>>2];while(1){f=H[d>>2];e:{e=a;if((e|0)==(d|0)){break e}f:{h=H[g>>2];j=H[g+4>>2]-h>>3;if(j>>>0<=f>>>0){break f}k=h+(f<<3)|0;e=d;while(1){c=e-4|0;i=H[c>>2];if(i>>>0>=j>>>0){break f}if(K[k>>2]>=K[h+(i<<3)>>2]){break e}H[e>>2]=i;e=c;if((e|0)!=(a|0)){continue}break}e=a;break e}va();X()}H[e>>2]=f;d=d+4|0;if((d|0)!=(b|0)){continue}break}break a}va();X()}g=d>>>1|0;i=g<<2;h=i+a|0;g:{h:{if((d|0)<=(f|0)){lg(a,h,c,g,e);f=b;b=e+i|0;lg(h,f,c,d-g|0,b);f=(d<<2)+e|0;c=H[c>>2];d=b;while(1){if((d|0)==(f|0)){if((b|0)==(e|0)){break a}while(1){H[a>>2]=H[e>>2];a=a+4|0;e=e+4|0;if((b|0)!=(e|0)){continue}break}break a}g=H[c>>2];i=H[c+4>>2]-g>>3;h=H[d>>2];if(i>>>0<=h>>>0){break h}j=i;i=H[e>>2];if(j>>>0<=i>>>0){break h}i:{if(K[g+(h<<3)>>2]>2]){H[a>>2]=h;d=d+4|0;break i}H[a>>2]=i;e=e+4|0}a=a+4|0;if((b|0)!=(e|0)){continue}break}break g}Xb(a,h,c,g,e,f);d=d-g|0;Xb(h,b,c,d,e,f);Id(a,h,b,c,g,d,e,f);return}va();X()}if((d|0)==(f|0)){break a}while(1){H[a>>2]=H[d>>2];a=a+4|0;d=d+4|0;if((f|0)!=(d|0)){continue}break}}}function Wb(a,b,c,d,e,f){var g=0,h=0,i=0,j=0,k=0;a:{b:{c:{d:{switch(d|0){case 2:d=H[c>>2];c=H[d>>2];d=H[d+4>>2]-c>>3;e=b-4|0;b=H[e>>2];if(d>>>0<=b>>>0){break c}f=d;d=H[a>>2];if(f>>>0<=d>>>0){break c}if(K[c+(b<<3)>>2]>=K[c+(d<<3)>>2]){break a}H[a>>2]=b;H[e>>2]=d;break a;case 0:case 1:break a;default:break d}}if((d|0)>128){break b}if((a|0)==(b|0)){break a}d=a+4|0;if((d|0)==(b|0)){break a}g=H[c>>2];while(1){f=H[d>>2];e:{e=a;if((e|0)==(d|0)){break e}f:{h=H[g>>2];j=H[g+4>>2]-h>>3;if(j>>>0<=f>>>0){break f}k=h+(f<<3)|0;e=d;while(1){c=e-4|0;i=H[c>>2];if(i>>>0>=j>>>0){break f}if(K[k>>2]>=K[h+(i<<3)>>2]){break e}H[e>>2]=i;e=c;if((e|0)!=(a|0)){continue}break}e=a;break e}va();X()}H[e>>2]=f;d=d+4|0;if((d|0)!=(b|0)){continue}break}break a}va();X()}g=d>>>1|0;i=g<<2;h=i+a|0;g:{h:{if((d|0)<=(f|0)){kg(a,h,c,g,e);f=b;b=e+i|0;kg(h,f,c,d-g|0,b);f=(d<<2)+e|0;c=H[c>>2];d=b;while(1){if((d|0)==(f|0)){if((b|0)==(e|0)){break a}while(1){H[a>>2]=H[e>>2];a=a+4|0;e=e+4|0;if((b|0)!=(e|0)){continue}break}break a}g=H[c>>2];i=H[c+4>>2]-g>>3;h=H[d>>2];if(i>>>0<=h>>>0){break h}j=i;i=H[e>>2];if(j>>>0<=i>>>0){break h}i:{if(K[g+(h<<3)>>2]>2]){H[a>>2]=h;d=d+4|0;break i}H[a>>2]=i;e=e+4|0}a=a+4|0;if((b|0)!=(e|0)){continue}break}break g}Wb(a,h,c,g,e,f);d=d-g|0;Wb(h,b,c,d,e,f);Hd(a,h,b,c,g,d,e,f);return}va();X()}if((d|0)==(f|0)){break a}while(1){H[a>>2]=H[d>>2];a=a+4|0;d=d+4|0;if((f|0)!=(d|0)){continue}break}}}function Vb(a,b,c,d,e,f){var g=0,h=0,i=0,j=0,k=0;a:{b:{c:{d:{switch(d|0){case 2:d=H[c>>2];c=H[d>>2];d=H[d+4>>2]-c>>3;e=b-4|0;b=H[e>>2];if(d>>>0<=b>>>0){break c}f=d;d=H[a>>2];if(f>>>0<=d>>>0){break c}if(K[c+(b<<3)>>2]>=K[c+(d<<3)>>2]){break a}H[a>>2]=b;H[e>>2]=d;break a;case 0:case 1:break a;default:break d}}if((d|0)>128){break b}if((a|0)==(b|0)){break a}d=a+4|0;if((d|0)==(b|0)){break a}g=H[c>>2];while(1){f=H[d>>2];e:{e=a;if((e|0)==(d|0)){break e}f:{h=H[g>>2];j=H[g+4>>2]-h>>3;if(j>>>0<=f>>>0){break f}k=h+(f<<3)|0;e=d;while(1){c=e-4|0;i=H[c>>2];if(i>>>0>=j>>>0){break f}if(K[k>>2]>=K[h+(i<<3)>>2]){break e}H[e>>2]=i;e=c;if((e|0)!=(a|0)){continue}break}e=a;break e}va();X()}H[e>>2]=f;d=d+4|0;if((d|0)!=(b|0)){continue}break}break a}va();X()}g=d>>>1|0;i=g<<2;h=i+a|0;g:{h:{if((d|0)<=(f|0)){jg(a,h,c,g,e);f=b;b=e+i|0;jg(h,f,c,d-g|0,b);f=(d<<2)+e|0;c=H[c>>2];d=b;while(1){if((d|0)==(f|0)){if((b|0)==(e|0)){break a}while(1){H[a>>2]=H[e>>2];a=a+4|0;e=e+4|0;if((b|0)!=(e|0)){continue}break}break a}g=H[c>>2];i=H[c+4>>2]-g>>3;h=H[d>>2];if(i>>>0<=h>>>0){break h}j=i;i=H[e>>2];if(j>>>0<=i>>>0){break h}i:{if(K[g+(h<<3)>>2]>2]){H[a>>2]=h;d=d+4|0;break i}H[a>>2]=i;e=e+4|0}a=a+4|0;if((b|0)!=(e|0)){continue}break}break g}Vb(a,h,c,g,e,f);d=d-g|0;Vb(h,b,c,d,e,f);Gd(a,h,b,c,g,d,e,f);return}va();X()}if((d|0)==(f|0)){break a}while(1){H[a>>2]=H[d>>2];a=a+4|0;d=d+4|0;if((f|0)!=(d|0)){continue}break}}}function Ub(a,b,c,d,e,f){var g=0,h=0,i=0,j=0,k=0;a:{b:{c:{d:{switch(d|0){case 2:d=H[c>>2];c=H[d>>2];d=H[d+4>>2]-c>>3;e=b-4|0;b=H[e>>2];if(d>>>0<=b>>>0){break c}f=d;d=H[a>>2];if(f>>>0<=d>>>0){break c}if(K[c+(b<<3)>>2]>=K[c+(d<<3)>>2]){break a}H[a>>2]=b;H[e>>2]=d;break a;case 0:case 1:break a;default:break d}}if((d|0)>128){break b}if((a|0)==(b|0)){break a}d=a+4|0;if((d|0)==(b|0)){break a}g=H[c>>2];while(1){f=H[d>>2];e:{e=a;if((e|0)==(d|0)){break e}f:{h=H[g>>2];j=H[g+4>>2]-h>>3;if(j>>>0<=f>>>0){break f}k=h+(f<<3)|0;e=d;while(1){c=e-4|0;i=H[c>>2];if(i>>>0>=j>>>0){break f}if(K[k>>2]>=K[h+(i<<3)>>2]){break e}H[e>>2]=i;e=c;if((e|0)!=(a|0)){continue}break}e=a;break e}va();X()}H[e>>2]=f;d=d+4|0;if((d|0)!=(b|0)){continue}break}break a}va();X()}g=d>>>1|0;i=g<<2;h=i+a|0;g:{h:{if((d|0)<=(f|0)){ig(a,h,c,g,e);f=b;b=e+i|0;ig(h,f,c,d-g|0,b);f=(d<<2)+e|0;c=H[c>>2];d=b;while(1){if((d|0)==(f|0)){if((b|0)==(e|0)){break a}while(1){H[a>>2]=H[e>>2];a=a+4|0;e=e+4|0;if((b|0)!=(e|0)){continue}break}break a}g=H[c>>2];i=H[c+4>>2]-g>>3;h=H[d>>2];if(i>>>0<=h>>>0){break h}j=i;i=H[e>>2];if(j>>>0<=i>>>0){break h}i:{if(K[g+(h<<3)>>2]>2]){H[a>>2]=h;d=d+4|0;break i}H[a>>2]=i;e=e+4|0}a=a+4|0;if((b|0)!=(e|0)){continue}break}break g}Ub(a,h,c,g,e,f);d=d-g|0;Ub(h,b,c,d,e,f);Fd(a,h,b,c,g,d,e,f);return}va();X()}if((d|0)==(f|0)){break a}while(1){H[a>>2]=H[d>>2];a=a+4|0;d=d+4|0;if((f|0)!=(d|0)){continue}break}}}function $b(a,b,c,d,e,f){var g=0,h=0,i=0,j=0,k=0;a:{b:{c:{d:{switch(d|0){case 2:d=H[c>>2];c=H[d>>2];d=H[d+4>>2]-c>>3;e=b-4|0;b=H[e>>2];if(d>>>0<=b>>>0){break c}f=d;d=H[a>>2];if(f>>>0<=d>>>0){break c}if(K[c+(b<<3)>>2]>=K[c+(d<<3)>>2]){break a}H[a>>2]=b;H[e>>2]=d;break a;case 0:case 1:break a;default:break d}}if((d|0)>128){break b}if((a|0)==(b|0)){break a}d=a+4|0;if((d|0)==(b|0)){break a}g=H[c>>2];while(1){f=H[d>>2];e:{e=a;if((e|0)==(d|0)){break e}f:{h=H[g>>2];j=H[g+4>>2]-h>>3;if(j>>>0<=f>>>0){break f}k=h+(f<<3)|0;e=d;while(1){c=e-4|0;i=H[c>>2];if(i>>>0>=j>>>0){break f}if(K[k>>2]>=K[h+(i<<3)>>2]){break e}H[e>>2]=i;e=c;if((e|0)!=(a|0)){continue}break}e=a;break e}va();X()}H[e>>2]=f;d=d+4|0;if((d|0)!=(b|0)){continue}break}break a}va();X()}g=d>>>1|0;i=g<<2;h=i+a|0;g:{h:{if((d|0)<=(f|0)){qg(a,h,c,g,e);f=b;b=e+i|0;qg(h,f,c,d-g|0,b);f=(d<<2)+e|0;c=H[c>>2];d=b;while(1){if((d|0)==(f|0)){if((b|0)==(e|0)){break a}while(1){H[a>>2]=H[e>>2];a=a+4|0;e=e+4|0;if((b|0)!=(e|0)){continue}break}break a}g=H[c>>2];i=H[c+4>>2]-g>>3;h=H[d>>2];if(i>>>0<=h>>>0){break h}j=i;i=H[e>>2];if(j>>>0<=i>>>0){break h}i:{if(K[g+(h<<3)>>2]>2]){H[a>>2]=h;d=d+4|0;break i}H[a>>2]=i;e=e+4|0}a=a+4|0;if((b|0)!=(e|0)){continue}break}break g}$b(a,h,c,g,e,f);d=d-g|0;$b(h,b,c,d,e,f);Md(a,h,b,c,g,d,e,f);return}va();X()}if((d|0)==(f|0)){break a}while(1){H[a>>2]=H[d>>2];a=a+4|0;d=d+4|0;if((f|0)!=(d|0)){continue}break}}}function Ci(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;var f=0,g=0,h=0;a=da-32|0;da=a;a:{b:{c:{d:{if(!b){break d}f=sb(c);if(f>>>0>=4294967280){break c}e:{f:{if(f>>>0>=11){h=f+16&-16;g=ra(h);H[a+24>>2]=h|-2147483648;H[a+16>>2]=g;H[a+20>>2]=f;break f}F[a+27|0]=f;g=a+16|0;if(!f){break e}}sa(g,c,f)}F[f+g|0]=0;H[a+8>>2]=0;H[a>>2]=0;H[a+4>>2]=0;if(e){if((e|0)<0){break b}c=e<<2;e=ra(c);H[a>>2]=e;f=c+e|0;H[a+8>>2]=f;sa(e,d,c);H[a+4>>2]=f}f=da-48|0;da=f;e=ob(b,a+16|0);if((e|0)!=(b+4|0)){c=H[e+4>>2];g:{if(!c){c=e;while(1){d=H[c+8>>2];g=H[d>>2]!=(c|0);c=d;if(g){continue}break}break g}while(1){d=c;c=H[c>>2];if(c){continue}break}}if((e|0)==H[b>>2]){H[b>>2]=d}H[b+8>>2]=H[b+8>>2]-1;Bc(H[b+4>>2],e);c=H[e+28>>2];if(c){H[e+32>>2]=c;qa(c)}if(F[e+27|0]<0){qa(H[e+16>>2])}qa(e)}H[f+8>>2]=0;H[f>>2]=0;H[f+4>>2]=0;c=H[a+4>>2];d=H[a>>2];e=c-d|0;g=0;h:{i:{if((c|0)!=(d|0)){if((e|0)<0){break i}g=ra(e);c=ta(g,0,e);h=c+e|0;H[f+8>>2]=h;H[f+4>>2]=h;H[f>>2]=c;c=d}sa(g,c,e);j:{if(F[a+27|0]>=0){H[f+24>>2]=H[a+24>>2];c=H[a+20>>2];H[f+16>>2]=H[a+16>>2];H[f+20>>2]=c;break j}Ia(f+16|0,H[a+16>>2],H[a+20>>2])}Qb(f+28|0,f);c=f+16|0;Ac(f+40|0,b,c,c);c=H[f+28>>2];if(c){H[f+32>>2]=c;qa(c)}if(F[f+27|0]<0){qa(H[f+16>>2])}c=H[f>>2];if(c){H[f+4>>2]=c;qa(c)}da=f+48|0;break h}ua();X()}c=H[a>>2];if(c){H[a+4>>2]=c;qa(c)}if(F[a+27|0]>=0){break d}qa(H[a+16>>2])}da=a+32|0;a=(b|0)!=0;break a}hb();X()}ua();X()}return a|0}function nl(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0;c=da-16|0;da=c;b=H[H[a+4>>2]+(b<<2)>>2];H[c+12>>2]=b;a=H[a+28>>2];e=H[H[H[a+4>>2]+8>>2]+(b<<2)>>2];b=H[e+28>>2];a:{if(b-1>>>0>=6){b:{if((b|0)!=9){break b}f=H[a+48>>2];a=ra(32);H[c>>2]=a;H[c+4>>2]=17;H[c+8>>2]=-2147483616;F[a+17|0]=0;F[a+16|0]=I[1261];b=I[1257]|I[1258]<<8|(I[1259]<<16|I[1260]<<24);d=I[1253]|I[1254]<<8|(I[1255]<<16|I[1256]<<24);F[a+8|0]=d;F[a+9|0]=d>>>8;F[a+10|0]=d>>>16;F[a+11|0]=d>>>24;F[a+12|0]=b;F[a+13|0]=b>>>8;F[a+14|0]=b>>>16;F[a+15|0]=b>>>24;b=I[1249]|I[1250]<<8|(I[1251]<<16|I[1252]<<24);d=I[1245]|I[1246]<<8|(I[1247]<<16|I[1248]<<24);F[a|0]=d;F[a+1|0]=d>>>8;F[a+2|0]=d>>>16;F[a+3|0]=d>>>24;F[a+4|0]=b;F[a+5|0]=b>>>8;F[a+6|0]=b>>>16;F[a+7|0]=b>>>24;a=pb(f,c+12|0,c,-1);if(F[c+11|0]<0){qa(H[c>>2])}if((a|0)<=0){break b}if(H[e+56>>2]==1){a=ra(48);H[a>>2]=0;H[a+4>>2]=0;H[a+40>>2]=0;H[a+44>>2]=0;H[a+32>>2]=0;H[a+36>>2]=0;H[a+24>>2]=0;H[a+28>>2]=0;H[a+16>>2]=0;H[a+20>>2]=0;H[a+8>>2]=0;H[a+12>>2]=0;a=ee(a);H[a+40>>2]=1032;H[a>>2]=6308;H[a+44>>2]=-1;break a}a=ee(ra(64));H[a+40>>2]=2032;H[a>>2]=9988;H[a+48>>2]=0;H[a+52>>2]=0;H[a+44>>2]=-1;H[a+56>>2]=0;H[a+60>>2]=0;break a}a=ra(36);H[a+32>>2]=0;H[a+12>>2]=-1;H[a+4>>2]=0;H[a+8>>2]=0;H[a+16>>2]=0;H[a+20>>2]=0;H[a>>2]=2392;F[a+21|0]=0;F[a+22|0]=0;F[a+23|0]=0;F[a+24|0]=0;F[a+25|0]=0;F[a+26|0]=0;F[a+27|0]=0;F[a+28|0]=0;break a}a=ee(ra(40))}da=c+16|0;return a|0}function ol(a){a=a|0;var b=0,c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0;e=H[a+8>>2]-H[a+4>>2]>>2;b=H[a+40>>2];c=H[a+36>>2];d=b-c>>2;a:{if(e>>>0>d>>>0){g=e-d|0;c=H[a+44>>2];b=H[a+40>>2];if(g>>>0<=c-b>>2>>>0){if(g){i=b;b=g<<2;b=ta(i,0,b)+b|0}H[a+40>>2]=b;break a}b:{c:{d:{j=H[a+36>>2];e=b-j>>2;f=e+g|0;if(f>>>0<1073741824){d=c-j|0;c=d>>1;d=d>>>0<2147483644?c>>>0>f>>>0?c:f:1073741823;if(d){if(d>>>0>=1073741824){break d}i=ra(d<<2)}h=(e<<2)+i|0;c=g<<2;f=ta(h,0,c);e=c+f|0;d=(d<<2)+i|0;if((b|0)==(j|0)){break c}while(1){b=b-4|0;c=H[b>>2];H[b>>2]=0;h=h-4|0;H[h>>2]=c;if((b|0)!=(j|0)){continue}break}H[a+44>>2]=d;d=H[a+40>>2];H[a+40>>2]=e;b=H[a+36>>2];H[a+36>>2]=h;if((b|0)==(d|0)){break b}while(1){d=d-4|0;c=H[d>>2];H[d>>2]=0;if(c){fa[H[H[c>>2]+4>>2]](c)}if((b|0)!=(d|0)){continue}break}break b}ua();X()}ya();X()}H[a+44>>2]=d;H[a+40>>2]=e;H[a+36>>2]=f}if(b){qa(b)}break a}if(d>>>0<=e>>>0){break a}c=c+(e<<2)|0;if((c|0)!=(b|0)){while(1){b=b-4|0;d=H[b>>2];H[b>>2]=0;if(d){fa[H[H[d>>2]+4>>2]](d)}if((b|0)!=(c|0)){continue}break}}H[a+40>>2]=c}if(H[a+8>>2]==H[a+4>>2]){return 1}b=0;while(1){e=fa[H[H[a>>2]+56>>2]](a,b)|0;d=b<<2;c=d+H[a+36>>2]|0;f=H[c>>2];H[c>>2]=e;if(f){fa[H[H[f>>2]+4>>2]](f)}c=H[d+H[a+36>>2]>>2];if(c){if(!(!(H[H[a+48>>2]+(b>>>3&536870908)>>2]>>>b&1)|K[a+52>>2]<=b>>>0)){F[c+28|0]=1}b=b+1|0;if(b>>>0>2]-H[a+4>>2]>>2>>>0){continue}}break}return(c|0)!=0|0}function Rf(a){a=a|0;var b=0,c=0,d=0,e=0,f=0;H[a>>2]=10584;c=a+200|0;d=H[c+136>>2];if(d){b=d;e=H[c+140>>2];if((b|0)!=(e|0)){while(1){b=e-12|0;f=H[b>>2];if(f){H[e-8>>2]=f;qa(f)}e=b;if((b|0)!=(d|0)){continue}break}b=H[c+136>>2]}H[c+140>>2]=d;qa(b)}b=H[c+104>>2];if(b){H[c+108>>2]=b;qa(b)}b=H[c+92>>2];if(b){H[c+96>>2]=b;qa(b)}d=H[c+80>>2];H[c+80>>2]=0;if(d){e=d-4|0;b=H[e>>2];if(b){b=d+(b<<5)|0;while(1){b=Aa(b-32|0);if((d|0)!=(b|0)){continue}break}}qa(e)}b=H[c+68>>2];if(b){H[c+72>>2]=b;qa(b)}b=H[c+44>>2];H[c+44>>2]=0;if(b){qa(b)}b=H[c+32>>2];if(b){H[c+36>>2]=b;qa(b)}Aa(c);b=H[a+184>>2];if(b){H[a+188>>2]=b;qa(b)}d=H[a+172>>2];if(d){b=H[a+176>>2];e=d;if((b|0)!=(d|0)){while(1){e=b-136|0;f=H[e+116>>2];if(f){H[b-16>>2]=f;qa(f)}f=H[b-32>>2];if(f){H[b-28>>2]=f;qa(f)}pc(b-132|0);b=e;if((d|0)!=(b|0)){continue}break}e=H[a+172>>2]}H[a+176>>2]=d;qa(e)}b=H[a+152>>2];if(b){H[a+156>>2]=b;qa(b)}b=H[a+140>>2];if(b){qa(b)}b=H[a+128>>2];if(b){while(1){e=H[b>>2];qa(b);b=e;if(b){continue}break}}b=H[a+120>>2];H[a+120>>2]=0;if(b){qa(b)}b=H[a+108>>2];if(b){H[a+112>>2]=b;qa(b)}b=H[a+96>>2];if(b){H[a+100>>2]=b;qa(b)}b=H[a+84>>2];if(b){qa(b)}b=H[a+72>>2];if(b){H[a+76>>2]=b;qa(b)}b=H[a+52>>2];if(b){H[a+56>>2]=b;qa(b)}b=H[a+40>>2];if(b){H[a+44>>2]=b;qa(b)}b=H[a+28>>2];if(b){qa(b)}b=H[a+16>>2];if(b){H[a+20>>2]=b;qa(b)}b=H[a+12>>2];H[a+12>>2]=0;if(b){Kb(b)}return a|0}function _a(a,b,c,d){var e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0;g=H[b+16>>2];e=H[c+4>>2]-g|0;H[c>>2]=0|H[c>>2]-g;H[c+4>>2]=e;e=H[d+4>>2]-g|0;f=H[d>>2]-g|0;H[d>>2]=j|f;H[d+4>>2]=e;h=H[b+16>>2];g=e>>31;j=(g^e)-g|0;g=f>>31;if((h|0)<(j+((g^f)-g|0)|0)){i=H[c+4>>2];k=H[c>>2];a:{b:{if((k|0)>=0){e=1;g=1;if((i|0)>=0){break a}f=1;e=-1;g=-1;if(k){break b}break a}f=-1;e=-1;g=-1;if((i|0)<=0){break a}}e=(i|0)<=0?-1:1;g=f}f=1;j=-1;l=k<<1;k=N(g,h);l=l-k|0;g=(N(e,g)|0)>=0;e=N(e,h);H[c+4>>2]=((g?0-l|0:l)+e|0)/2;e=(i<<1)-e|0;H[c>>2]=(k+(g?0-e|0:e)|0)/2;g=H[d+4>>2];i=H[d>>2];c:{d:{if((i|0)>=0){e=1;if((g|0)>=0){break c}j=1;f=-1;e=-1;if(i){break d}break c}f=-1;e=-1;if((g|0)<=0){break c}}f=(g|0)<=0?-1:1;e=j}h=i<<1;j=H[b+16>>2];i=N(j,e);h=h-i|0;l=0-h|0;k=h;h=(N(e,f)|0)>=0;f=N(f,j);e=((h?l:k)+f|0)/2|0;H[d+4>>2]=e;f=(g<<1)-f|0;f=(i+(h?0-f|0:f)|0)/2|0;H[d>>2]=f}e:{f:{g:{h:{i:{j:{if(f){if((f|0)>=0){break j}if((e|0)>0){break h}break e}if(e){break i}e=0;f=0;break e}if((e|0)<0){break g}e=0-H[c+4>>2]|0;H[c>>2]=0-H[c>>2];H[c+4>>2]=e;f=0-H[d>>2]|0;e=0-H[d+4>>2]|0;break f}if((e|0)<=0){break g}}e=H[c>>2];H[c>>2]=0-H[c+4>>2];H[c+4>>2]=e;f=0-H[d+4>>2]|0;e=H[d>>2];break f}e=0-H[c>>2]|0;H[c>>2]=H[c+4>>2];H[c+4>>2]=e;f=H[d+4>>2];e=0-H[d>>2]|0}H[d>>2]=f;H[d+4>>2]=e}d=H[c>>2];b=H[b+4>>2];c=H[c+4>>2]-e|0;H[a+4>>2]=(b&c>>31)+c;c=a;a=d-f|0;H[c>>2]=(b&a>>31)+a}function ad(a,b){var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0;d=da-16|0;da=d;h=da-16|0;da=h;De(d);da=h+16|0;fd(d,I[d+11|0]>>>7|0?(H[d+8>>2]&2147483647)-1|0:10);i=da-16|0;da=i;l=+b;if(I[d+11|0]>>>7|0){h=H[d+4>>2]}else{h=I[d+11|0]}while(1){a:{if(I[d+11|0]>>>7|0){e=H[d>>2]}else{e=d}c=e;M[i>>3]=l;k=da-16|0;da=k;H[k+12>>2]=i;f=da-160|0;da=f;e=-1;g=h+1|0;H[f+148>>2]=g?g-1|0:0;j=g?c:f+158|0;H[f+144>>2]=j;c=ta(f,0,144);H[c+76>>2]=-1;H[c+36>>2]=371;H[c+80>>2]=-1;H[c+44>>2]=c+159;H[c+84>>2]=c+144;b:{if((g|0)<0){H[4799]=61;break b}F[j|0]=0;g=0;f=da-208|0;da=f;H[f+204>>2]=i;e=f+160|0;ta(e,0,40);H[f+200>>2]=H[f+204>>2];c:{if((Ne(0,f+200|0,f+80|0,e)|0)<0){e=-1;break c}m=H[c+76>>2]>=0;j=H[c>>2];if(H[c+72>>2]<=0){H[c>>2]=j&-33}d:{e:{f:{if(!H[c+48>>2]){H[c+48>>2]=80;H[c+28>>2]=0;H[c+16>>2]=0;H[c+20>>2]=0;g=H[c+44>>2];H[c+44>>2]=f;break f}if(H[c+16>>2]){break e}}e=-1;if(Pe(c)){break d}}e=Ne(c,f+200|0,f+80|0,f+160|0)}if(g){fa[H[c+36>>2]](c,0,0)|0;H[c+48>>2]=0;H[c+44>>2]=g;H[c+28>>2]=0;g=H[c+20>>2];H[c+16>>2]=0;H[c+20>>2]=0;e=g?e:-1}g=H[c>>2];H[c>>2]=g|j&32;e=g&32?-1:e;if(!m){break c}}da=f+208|0}da=c+160|0;da=k+16|0;g:{if((e|0)>=0){if(e>>>0<=h>>>0){break a}h=e;break g}h=h<<1|1}fd(d,h);continue}break}fd(d,e);h=H[d+4>>2];H[a>>2]=H[d>>2];H[a+4>>2]=h;H[a+8>>2]=H[d+8>>2];De(d);da=i+16|0;if(I[d+11|0]>>>7|0){qa(H[d>>2])}da=d+16|0}function _f(a,b,c,d){var e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0;f=H[a>>2];g=b-f|0;i=(g&-4)+f|0;l=d-c|0;if((l|0)<=0){return}a:{j=l>>2;e=H[a+8>>2];h=H[a+4>>2];if((j|0)<=e-h>>2){g=h-i|0;e=g>>2;if((e|0)>=(j|0)){b=h;f=d;break a}b=h;f=(e<<2)+c|0;if((f|0)!=(d|0)){e=f;while(1){H[b>>2]=H[e>>2];b=b+4|0;e=e+4|0;if((e|0)!=(d|0)){continue}break}}H[a+4>>2]=b;if((g|0)>0){break a}return}b:{b=(h-f>>2)+j|0;if(b>>>0<1073741824){e=e-f|0;k=e>>1;k=e>>>0<2147483644?b>>>0>>0?k:b:1073741823;if(k){if(k>>>0>=1073741824){break b}e=ra(k<<2)}else{e=0}b=e+(g>>2<<2)|0;if((c|0)!=(d|0)){b=sa(b,c,l&-4)+(j<<2)|0}if((g|0)>0){sa(e,f,g)}if((h|0)!=(i|0)){while(1){H[b>>2]=H[i>>2];b=b+4|0;i=i+4|0;if((h|0)!=(i|0)){continue}break}}H[a+8>>2]=e+(k<<2);H[a+4>>2]=b;H[a>>2]=e;if(f){qa(f)}return}ua();X()}ya();X()}e=j<<2;j=e+i|0;d=b;e=b-e|0;if(h>>>0>e>>>0){g=e;while(1){H[d>>2]=H[g>>2];d=d+4|0;g=g+4|0;if(h>>>0>g>>>0){continue}break}}H[a+4>>2]=d;c:{if((b|0)==(j|0)){break c}a=(b-j|0)-4|0;h=(a>>>2|0)+1&3;if(h){d=0;while(1){b=b-4|0;e=e-4|0;H[b>>2]=H[e>>2];d=d+1|0;if((h|0)!=(d|0)){continue}break}}if(a>>>0<12){break c}while(1){H[b-4>>2]=H[e-4>>2];H[b-8>>2]=H[e-8>>2];H[b-12>>2]=H[e-12>>2];b=b-16|0;e=e-16|0;H[b>>2]=H[e>>2];if((e|0)!=(i|0)){continue}break}}if((c|0)==(f|0)){return}b=i;while(1){H[b>>2]=H[c>>2];b=b+4|0;c=c+4|0;if((f|0)!=(c|0)){continue}break}}function Zf(a,b){var c=0,d=0,e=0,f=0,g=0;e=-1;c=(b|0)==-1;d=-1;a:{if(c){break a}d=b+1|0;e=(d>>>0)%3|0?d:b-2|0;d=b-1|0;if((b>>>0)%3|0){break a}d=b+2|0}f=c?-1:(b>>>0)/3|0;g=H[a+28>>2]+(f>>>3&536870908)|0;H[g>>2]=H[g>>2]|1<>2]+12>>2]+(b<<2)>>2];if((c|0)==-1){break b}c=(c>>>0)/3|0;if(H[H[a+28>>2]+(c>>>3&268435452)>>2]>>>c&1){break b}c=H[a+172>>2];if((c|0)==H[a+176>>2]){break b}f=1<>>5<<2;b=0;while(1){Ga(H[a+280>>2]+(b<<5)|0,(f&H[g+H[(N(b,136)+c|0)+4>>2]>>2])!=0);b=b+1|0;c=H[a+172>>2];if(b>>>0<(H[a+176>>2]-c|0)/136>>>0){continue}break}}c:{if((e|0)==-1){break c}b=H[H[H[a+12>>2]+12>>2]+(e<<2)>>2];if((b|0)==-1){break c}b=(b>>>0)/3|0;if(H[H[a+28>>2]+(b>>>3&268435452)>>2]>>>b&1){break c}c=H[a+172>>2];if((c|0)==H[a+176>>2]){break c}f=1<>>5<<2;b=0;while(1){Ga(H[a+280>>2]+(b<<5)|0,(f&H[e+H[(N(b,136)+c|0)+4>>2]>>2])!=0);b=b+1|0;c=H[a+172>>2];if(b>>>0<(H[a+176>>2]-c|0)/136>>>0){continue}break}}d:{if((d|0)==-1){break d}b=H[H[H[a+12>>2]+12>>2]+(d<<2)>>2];if((b|0)==-1){break d}b=(b>>>0)/3|0;if(H[H[a+28>>2]+(b>>>3&268435452)>>2]>>>b&1){break d}c=H[a+172>>2];if((c|0)==H[a+176>>2]){break d}e=1<>>5<<2;b=0;while(1){Ga(H[a+280>>2]+(b<<5)|0,(e&H[d+H[(N(b,136)+c|0)+4>>2]>>2])!=0);b=b+1|0;c=H[a+172>>2];if(b>>>0<(H[a+176>>2]-c|0)/136>>>0){continue}break}}}function rf(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,f=0,g=0,h=0;a=0;a:{if(!d|(!b|(c|0)<0)){break a}f=H[b+8>>2];if(H[b+12>>2]-f>>2<=(c|0)){break a}if(!H[b+4>>2]){a=ra(36);H[a+4>>2]=0;H[a+8>>2]=0;H[a+24>>2]=0;H[a+28>>2]=0;e=a+16|0;H[e>>2]=0;H[e+4>>2]=0;H[a>>2]=a+4;H[a+32>>2]=0;H[a+12>>2]=e;H[b+4>>2]=a}a=H[H[f+(c<<2)>>2]+60>>2];d=kd(ra(28),d);H[d+24>>2]=a;a=H[b+4>>2];c=da-16|0;da=c;H[c+8>>2]=d;b:{if(!d){H[c+8>>2]=0;break b}b=H[a+28>>2];c:{if(b>>>0>2]){H[c+8>>2]=0;H[b>>2]=d;H[a+28>>2]=b+4;break c}b=0;d:{e:{f:{e=H[a+24>>2];f=H[a+28>>2]-e>>2;d=f+1|0;if(d>>>0<1073741824){e=H[a+32>>2]-e|0;g=e>>1;d=e>>>0<2147483644?d>>>0>>0?g:d:1073741823;if(d){if(d>>>0>=1073741824){break f}b=ra(d<<2)}g=H[c+8>>2];H[c+8>>2]=0;e=(f<<2)+b|0;H[e>>2]=g;f=(d<<2)+b|0;g=e+4|0;b=H[a+28>>2];d=H[a+24>>2];if((b|0)==(d|0)){break e}while(1){b=b-4|0;h=H[b>>2];H[b>>2]=0;e=e-4|0;H[e>>2]=h;if((b|0)!=(d|0)){continue}break}H[a+32>>2]=f;b=H[a+28>>2];H[a+28>>2]=g;d=H[a+24>>2];H[a+24>>2]=e;if((b|0)==(d|0)){break d}while(1){b=b-4|0;a=H[b>>2];H[b>>2]=0;if(a){lb(a+12|0,H[a+16>>2]);kb(a,H[a+4>>2]);qa(a)}if((b|0)!=(d|0)){continue}break}break d}ua();X()}ya();X()}H[a+32>>2]=f;H[a+28>>2]=g;H[a+24>>2]=e}if(d){qa(d)}}a=H[c+8>>2];H[c+8>>2]=0;if(!a){break b}lb(a+12|0,H[a+16>>2]);kb(a,H[a+4>>2]);qa(a)}da=c+16|0;a=1}return a|0}function Cg(a,b,c,d,e){var f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0;l=da-16|0;da=l;g=H[b+28>>2];h=H[b+24>>2];H[a+8>>2]=h;H[a+12>>2]=g;g=H[b+20>>2];H[a>>2]=H[b+16>>2];H[a+4>>2]=g;g=H[b+36>>2];H[a+16>>2]=H[b+32>>2];H[a+20>>2]=g;H[a+8>>2]=d+h;a:{b:{if((d|0)>0){g=H[b>>2];while(1){f=H[b+4>>2]-g>>2;h=H[(i<<2)+c>>2];c:{if(f>>>0>h>>>0){break c}H[l+12>>2]=0;j=h+1|0;if(j>>>0>f>>>0){La(b,j-f|0,l+12|0);g=H[b>>2];break c}if(f>>>0<=j>>>0){break c}H[b+4>>2]=(j<<2)+g}j=(h<<2)+g|0;f=H[j>>2];d:{if((f|0)>=2){k=+(f|0);k=za(k)*k;break d}k=0;if(f){break d}H[a+16>>2]=H[a+16>>2]+1;if(h>>>0<=K[a+12>>2]){break d}H[a+12>>2]=h}h=f+1|0;H[j>>2]=h;m=+(h|0);n=a,o=za(m)*m-k+M[a>>3],M[n>>3]=o;i=i+1|0;if((i|0)!=(d|0)){continue}break}if(e){break b}if((d|0)<=0){break a}a=H[b>>2];e=0;i=0;if(d-1>>>0>=3){h=d&-4;g=0;while(1){b=i<<2;f=a+(H[b+c>>2]<<2)|0;H[f>>2]=H[f>>2]-1;f=a+(H[(b|4)+c>>2]<<2)|0;H[f>>2]=H[f>>2]-1;f=a+(H[(b|8)+c>>2]<<2)|0;H[f>>2]=H[f>>2]-1;b=a+(H[(b|12)+c>>2]<<2)|0;H[b>>2]=H[b>>2]-1;i=i+4|0;g=g+4|0;if((h|0)!=(g|0)){continue}break}}b=d&3;if(!b){break a}while(1){d=a+(H[(i<<2)+c>>2]<<2)|0;H[d>>2]=H[d>>2]-1;i=i+1|0;e=e+1|0;if((b|0)!=(e|0)){continue}break}break a}if(!e){break a}}c=H[a+4>>2];H[b+16>>2]=H[a>>2];H[b+20>>2]=c;H[b+32>>2]=H[a+16>>2];c=H[a+12>>2];H[b+24>>2]=H[a+8>>2];H[b+28>>2]=c}da=l+16|0}function Ze(a,b){var c=0,d=0,e=0,f=0,g=0,h=0,i=0;a:{b:{c:{if(b){if(b>>>0>=1073741824){break c}c=ra(b<<2);d=H[a>>2];H[a>>2]=c;if(d){qa(d)}H[a+4>>2]=b;if(b-1>>>0>=3){g=b&-4;d=0;while(1){c=e<<2;H[c+H[a>>2]>>2]=0;H[H[a>>2]+(c|4)>>2]=0;H[H[a>>2]+(c|8)>>2]=0;H[H[a>>2]+(c|12)>>2]=0;e=e+4|0;d=d+4|0;if((g|0)!=(d|0)){continue}break}}d=b&3;if(d){while(1){H[H[a>>2]+(e<<2)>>2]=0;e=e+1|0;f=f+1|0;if((d|0)!=(f|0)){continue}break}}d=H[a+8>>2];if(!d){break a}e=a+8|0;g=H[d+4>>2];c=b-1|0;if(!(c&b)){break b}g=b>>>0<=g>>>0?(g>>>0)%(b>>>0)|0:g;H[H[a>>2]+(g<<2)>>2]=e;while(1){c=H[d>>2];if(!c){break a}f=H[c+4>>2];if(f>>>0>=b>>>0){f=(f>>>0)%(b>>>0)|0}if((g|0)==(f|0)){d=c;continue}e=c;h=f<<2;i=h+H[a>>2]|0;if(H[i>>2]){while(1){f=e;e=H[e>>2];if(H[c+8>>2]==H[e+8>>2]?e:0){continue}break}H[d>>2]=e;H[f>>2]=H[H[h+H[a>>2]>>2]>>2];H[H[h+H[a>>2]>>2]>>2]=c}else{H[i>>2]=d;d=c;g=f}continue}}b=H[a>>2];H[a>>2]=0;if(b){qa(b)}H[a+4>>2]=0;break a}ya();X()}g=c&g;H[H[a>>2]+(g<<2)>>2]=e;c=H[d>>2];if(!c){break a}h=b-1|0;while(1){b=h&H[c+4>>2];d:{if((b|0)==(g|0)){d=c;break d}e=c;f=b<<2;i=f+H[a>>2]|0;if(H[i>>2]){while(1){b=e;e=H[b>>2];if(H[c+8>>2]==H[e+8>>2]?e:0){continue}break}H[d>>2]=e;H[b>>2]=H[H[f+H[a>>2]>>2]>>2];H[H[f+H[a>>2]>>2]>>2]=c;break d}H[i>>2]=d;d=c;g=b}c=H[d>>2];if(c){continue}break}}}function Xa(a,b){var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0;f=da-16|0;da=f;Da(H[a+12>>2],b);a:{if(!H[a+12>>2]){break a}m=f+15|0;n=f+16|0;while(1){b:{c:{e=H[a>>2];i=H[e+(h<<3)>>2];d=i>>>0<64;if(!d){c=1;if(i>>>0<16384){break c}c=2;if(i>>>0<=4194303){break c}break a}c=0;if(i){break c}while(1){d:{if(H[(e+(c+h<<3)|0)+8>>2]){d=c;break d}d=c+1|0;if(H[(e+(h+d<<3)|0)+8>>2]){break d}d=c+2|0;if(H[(e+(h+d<<3)|0)+8>>2]){break d}d=63;c=c+3|0;if((c|0)!=63){continue}}break}F[f+15|0]=d<<2|3;c=H[b+20>>2];if(!H[b+16>>2]&(c|0)<=0|(c|0)<0){wa(b,H[b+4>>2],f+15|0,n)}h=d+h|0;break b}F[f+14|0]=i<<2|c;e=H[b+20>>2];if(!H[b+16>>2]&(e|0)<=0|(e|0)<0){wa(b,H[b+4>>2],f+14|0,m)}if(d){break b}d=H[b+20>>2];if(!!H[b+16>>2]&(d|0)>=0|(d|0)>0){break b}o=c>>>0>1?c:1;k=0;while(1){k=k+1|0;l=i>>>(k<<3)-2|0;F[f+13|0]=l;e:{c=H[b+20>>2];if(!!H[b+16>>2]&(c|0)>=0|(c|0)>0){break e}g=H[b+8>>2];c=H[b+4>>2];if((g-c|0)>0){F[c|0]=I[f+13|0];H[b+4>>2]=c+1;break e}e=H[b>>2];c=c-e|0;d=c+1|0;if((d|0)>=0){g=g-e|0;j=g<<1;g=g>>>0<1073741823?d>>>0>>0?j:d:2147483647;if(g){d=ra(g)}else{d=0}j=d+c|0;F[j|0]=l;if((c|0)>0){sa(d,e,c)}H[b+8>>2]=d+g;H[b+4>>2]=j+1;H[b>>2]=d;if(!e){break e}qa(e);break e}ua();X()}if((k|0)!=(o|0)){continue}break}}h=h+1|0;if(h>>>0>2]){continue}break}}da=f+16|0}function jl(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0,i=0;f=H[a+16>>2];a:{if(H[a+20>>2]-f>>2<=(b|0)){break a}h=H[f+(b<<2)>>2];if((h|0)<0){break a}if(K[a+52>>2]<=h>>>0){b:{b=da-16|0;da=b;c:{e=H[a+52>>2];c=h+1|0;d:{if(e>>>0>>0){f=c-e|0;g=H[a+56>>2];d=g<<5;e:{if(!(f>>>0>d>>>0|e>>>0>d-f>>>0)){H[a+52>>2]=c;d=e&31;c=H[a+48>>2]+(e>>>3&536870908)|0;break e}H[b+8>>2]=0;H[b>>2]=0;H[b+4>>2]=0;if((c|0)<0){break c}if(d>>>0<=1073741822){d=g<<6;c=c+31&-32;i=c>>>0>>0?d:c}else{i=2147483647}Gb(b,i);d=H[a+52>>2];H[b+4>>2]=d+f;e=H[a+48>>2];c=H[b>>2];f:{if((d|0)<=0){d=0;break f}g=d>>>5<<2;c=xa(c,e,g)+g|0;d=d&31;g:{if(!d){d=0;break g}i=-1>>>32-d|0;H[c>>2]=H[c>>2]&(i^-1)|H[e+g>>2]&i}e=H[a+48>>2]}H[a+48>>2]=H[b>>2];H[b>>2]=e;g=H[a+52>>2];H[a+52>>2]=H[b+4>>2];H[b+4>>2]=g;g=H[a+56>>2];H[a+56>>2]=H[b+8>>2];H[b+8>>2]=g;if(!e){break e}qa(e)}if(!f){break d}if(d){e=32-d|0;g=e>>>0>>0?e:f;H[c>>2]=H[c>>2]&(-1<>>e-g^-1);f=f-g|0;c=c+4|0}i=c;c=f>>>5<<2;d=ta(i,0,c);if((f&-32)==(f|0)){break d}c=c+d|0;H[c>>2]=H[c>>2]&(-1>>>32-(f&31)^-1);break d}H[a+52>>2]=c}da=b+16|0;break b}ua();X()}}c=1;b=H[a+48>>2]+(h>>>3&536870908)|0;H[b>>2]=H[b>>2]|1<>2];a=H[a+36>>2];if(b-a>>2>>>0<=h>>>0){break a}F[H[a+(h<<2)>>2]+28|0]=1}return c|0}function Re(a){var b=0,c=0,d=0,e=0,f=0;a:{b:{c:{d:{e:{b=H[a+4>>2];f:{if((b|0)!=H[a+104>>2]){H[a+4>>2]=b+1;b=I[b|0];break f}b=Pa(a)}switch(b-43|0){case 0:case 2:break e;default:break d}}f=(b|0)==45;b=H[a+4>>2];g:{if((b|0)!=H[a+104>>2]){H[a+4>>2]=b+1;b=I[b|0];break g}b=Pa(a)}e=b-58|0;if(e>>>0>4294967285){break c}if(H[a+116>>2]<0){break b}H[a+4>>2]=H[a+4>>2]-1;break b}e=b-58|0}if(e>>>0<4294967286){break b}e=b-48|0;if(e>>>0<10){while(1){d=(N(d,10)+b|0)-48|0;c=(d|0)<214748364;b=H[a+4>>2];h:{if((b|0)!=H[a+104>>2]){H[a+4>>2]=b+1;b=I[b|0];break h}b=Pa(a)}e=b-48|0;if(c&e>>>0<=9){continue}break}c=d>>31}i:{if(e>>>0>=10){break i}while(1){c=zl(d,c,10,0);d=c+b|0;b=ea;b=c>>>0>d>>>0?b+1|0:b;c=d;d=c-48|0;c=b-(c>>>0<48)|0;b=H[a+4>>2];j:{if((b|0)!=H[a+104>>2]){H[a+4>>2]=b+1;b=I[b|0];break j}b=Pa(a)}e=b-48|0;if(e>>>0>9){break i}if(d>>>0<2061584302&(c|0)<=21474836|(c|0)<21474836){continue}break}}if(e>>>0<10){while(1){b=H[a+4>>2];k:{if((b|0)!=H[a+104>>2]){H[a+4>>2]=b+1;b=I[b|0];break k}b=Pa(a)}if(b-48>>>0<10){continue}break}}b=H[a+116>>2];if((b|0)>0|(b|0)>=0){H[a+4>>2]=H[a+4>>2]-1}a=d;d=f?0-a|0:a;c=f?0-(((a|0)!=0)+c|0)|0:c;break a}c=-2147483648;if(H[a+116>>2]<0){break a}H[a+4>>2]=H[a+4>>2]-1;ea=-2147483648;return 0}ea=c;return d}function re(a,b){var c=0,d=0,e=0,f=0,g=0;e=da-16|0;da=e;H[a+8>>2]=b;H[a>>2]=0;c=a+12|0;H[c>>2]=0;H[c+4>>2]=0;H[c+24>>2]=0;H[c+28>>2]=0;H[c+16>>2]=0;H[c+20>>2]=0;H[c+8>>2]=0;H[c+12>>2]=0;H[a+44>>2]=0;H[a+48>>2]=0;H[a+60>>2]=0;H[a+52>>2]=0;H[a+56>>2]=0;c=a- -64|0;H[c>>2]=0;H[c+4>>2]=0;H[c+16>>2]=0;H[c+8>>2]=0;H[c+12>>2]=0;H[a+84>>2]=0;H[a+88>>2]=0;H[a+100>>2]=0;H[a+92>>2]=0;H[a+96>>2]=0;H[a+112>>2]=0;H[a+104>>2]=0;H[a+108>>2]=0;g=a+140|0;a:{b:{if(b){if(b>>>0<1073741824){break b}ua();X()}H[a+116>>2]=0;H[a+120>>2]=0;H[a+132>>2]=0;H[a+136>>2]=0;H[a+124>>2]=0;H[a+128>>2]=0;H[e+8>>2]=0;H[e>>2]=0;H[e+4>>2]=0;c=1;break a}c=b<<2;d=ra(c);H[a+104>>2]=d;f=c+d|0;H[a+112>>2]=f;ta(d,0,c);H[a+124>>2]=0;H[a+116>>2]=0;H[a+120>>2]=0;H[a+108>>2]=f;d=ra(c);H[a+116>>2]=d;f=c+d|0;H[a+124>>2]=f;ta(d,0,c);H[a+136>>2]=0;H[a+128>>2]=0;H[a+132>>2]=0;H[a+120>>2]=f;d=ra(c);H[a+128>>2]=d;f=c+d|0;H[a+136>>2]=f;ta(d,0,c);H[a+132>>2]=f;d=ra(c);H[e>>2]=d;f=c+d|0;H[e+8>>2]=f;ta(d,0,c);H[e+4>>2]=f;c=b<<5|1}Mb(g,c,e);d=H[e>>2];if(d){H[e+4>>2]=d;qa(d)}H[e+8>>2]=0;H[e>>2]=0;H[e+4>>2]=0;if(b){b=b<<2;d=ra(b);H[e>>2]=d;f=b+d|0;H[e+8>>2]=f;ta(d,0,b);H[e+4>>2]=f}Mb(a+152|0,c,e);b=H[e>>2];if(b){H[e+4>>2]=b;qa(b)}da=e+16|0;return a} -function Bi(a,b,c,d){a=a|0;b=b|0;c=c|0;d=+d;var e=0,f=0,g=0,h=0,i=0;g=da-16|0;da=g;a:{b:{c:{if(!b){break c}e=sb(c);if(e>>>0>=4294967280){break b}d:{e:{if(e>>>0>=11){f=e+16&-16;a=ra(f);H[g+8>>2]=f|-2147483648;H[g>>2]=a;H[g+4>>2]=e;break e}F[g+11|0]=e;a=g;if(!e){break d}}sa(a,c,e)}F[a+e|0]=0;h=da-16|0;da=h;M[h+8>>3]=d;f=da-48|0;da=f;e=ob(b,g);if((e|0)!=(b+4|0)){a=H[e+4>>2];f:{if(!a){a=e;while(1){c=H[a+8>>2];i=H[c>>2]!=(a|0);a=c;if(i){continue}break}break f}while(1){c=a;a=H[a>>2];if(a){continue}break}}if((e|0)==H[b>>2]){H[b>>2]=c}H[b+8>>2]=H[b+8>>2]-1;Bc(H[b+4>>2],e);a=H[e+28>>2];if(a){H[e+32>>2]=a;qa(a)}if(F[e+27|0]<0){qa(H[e+16>>2])}qa(e)}a=ra(8);H[f>>2]=a;c=a+8|0;H[f+8>>2]=c;H[f+4>>2]=c;c=H[h+12>>2];e=H[h+8>>2];F[a|0]=e;F[a+1|0]=e>>>8;F[a+2|0]=e>>>16;F[a+3|0]=e>>>24;F[a+4|0]=c;F[a+5|0]=c>>>8;F[a+6|0]=c>>>16;F[a+7|0]=c>>>24;g:{if(F[g+11|0]>=0){H[f+24>>2]=H[g+8>>2];a=H[g+4>>2];H[f+16>>2]=H[g>>2];H[f+20>>2]=a;break g}Ia(f+16|0,H[g>>2],H[g+4>>2])}Qb(f+28|0,f);a=f+16|0;Ac(f+40|0,b,a,a);a=H[f+28>>2];if(a){H[f+32>>2]=a;qa(a)}if(F[f+27|0]<0){qa(H[f+16>>2])}a=H[f>>2];if(a){H[f+4>>2]=a;qa(a)}da=f+48|0;da=h+16|0;if(F[g+11|0]>=0){break c}qa(H[g>>2])}da=g+16|0;a=(b|0)!=0;break a}hb();X()}return a|0}function fj(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0;f=da-16|0;da=f;fa[H[H[b>>2]+64>>2]](a,b);if(!H[a>>2]){if(F[a+15|0]<0){qa(H[a+4>>2])}g=H[b+48>>2];c=ra(32);H[f>>2]=c;H[f+4>>2]=29;H[f+8>>2]=-2147483616;F[c+29|0]=0;d=I[1308]|I[1309]<<8|(I[1310]<<16|I[1311]<<24);e=I[1304]|I[1305]<<8|(I[1306]<<16|I[1307]<<24);F[c+21|0]=e;F[c+22|0]=e>>>8;F[c+23|0]=e>>>16;F[c+24|0]=e>>>24;F[c+25|0]=d;F[c+26|0]=d>>>8;F[c+27|0]=d>>>16;F[c+28|0]=d>>>24;d=I[1303]|I[1304]<<8|(I[1305]<<16|I[1306]<<24);e=I[1299]|I[1300]<<8|(I[1301]<<16|I[1302]<<24);F[c+16|0]=e;F[c+17|0]=e>>>8;F[c+18|0]=e>>>16;F[c+19|0]=e>>>24;F[c+20|0]=d;F[c+21|0]=d>>>8;F[c+22|0]=d>>>16;F[c+23|0]=d>>>24;d=I[1295]|I[1296]<<8|(I[1297]<<16|I[1298]<<24);e=I[1291]|I[1292]<<8|(I[1293]<<16|I[1294]<<24);F[c+8|0]=e;F[c+9|0]=e>>>8;F[c+10|0]=e>>>16;F[c+11|0]=e>>>24;F[c+12|0]=d;F[c+13|0]=d>>>8;F[c+14|0]=d>>>16;F[c+15|0]=d>>>24;d=I[1287]|I[1288]<<8|(I[1289]<<16|I[1290]<<24);e=I[1283]|I[1284]<<8|(I[1285]<<16|I[1286]<<24);F[c|0]=e;F[c+1|0]=e>>>8;F[c+2|0]=e>>>16;F[c+3|0]=e>>>24;F[c+4|0]=d;F[c+5|0]=d>>>8;F[c+6|0]=d>>>16;F[c+7|0]=d>>>24;c=Rb(g,f,0);if(F[f+11|0]<0){qa(H[f>>2])}if(c){fa[H[H[b>>2]+68>>2]](b)}H[a>>2]=0;H[a+4>>2]=0;H[a+8>>2]=0;H[a+12>>2]=0}da=f+16|0}function sc(a,b){var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0;e=da-48|0;da=e;h=a+16|0;d=H[h>>2];a:{b:{if(!d){break b}g=H[b>>2];c=h;while(1){f=(g|0)>H[d+16>>2];c=f?c:d;d=H[(f?d+4|0:d)>>2];if(d){continue}break}if((c|0)==(h|0)){break b}if((g|0)>=H[c+16>>2]){break a}}f=e+24|0;H[f+4>>2]=0;H[f+8>>2]=0;g=f+4|0;H[f>>2]=g;b=H[b>>2];i=e+16|0;H[i>>2]=0;H[i+4>>2]=0;H[e+8>>2]=b;H[e+12>>2]=i;k=e+8|4;d=H[f>>2];if((g|0)!=(d|0)){while(1){b=d+16|0;Ig(e+40|0,k,i,b,b);c=H[d+4>>2];c:{if(c){while(1){d=c;c=H[c>>2];if(c){continue}break c}}while(1){b=d;d=H[d+8>>2];if((b|0)!=H[d>>2]){continue}break}}if((d|0)!=(g|0)){continue}break}b=H[e+8>>2]}d=h;c=H[d>>2];d:{e:{if(!c){break e}while(1){d=c;c=H[c+16>>2];if((c|0)>(b|0)){h=d;c=H[d>>2];if(c){continue}break e}if((b|0)<=(c|0)){c=d;break d}c=H[d+4>>2];if(c){continue}break}h=d+4|0}c=ra(32);H[c+16>>2]=b;H[c+20>>2]=H[e+12>>2];j=c+24|0;g=H[e+16>>2];H[j>>2]=g;b=H[e+20>>2];H[c+28>>2]=b;f:{if(!b){H[c+20>>2]=j;break f}H[g+8>>2]=j;H[e+16>>2]=0;H[e+20>>2]=0;H[e+12>>2]=i}H[c+8>>2]=d;H[c>>2]=0;H[c+4>>2]=0;H[h>>2]=c;d=c;b=H[H[a+12>>2]>>2];if(b){H[a+12>>2]=b;d=H[h>>2]}ub(H[a+16>>2],d);H[a+20>>2]=H[a+20>>2]+1}Ka(k,H[e+16>>2]);Ka(f,H[f+4>>2])}da=e+48|0;return c+20|0}function $d(a,b){var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0;a:{c=H[a+8>>2];d=H[a>>2];if(c-d>>3>>>0>=2){g=H[a+4>>2];h=g-d>>3;f=h>>>0<2?h:2;b:{if(!f){break b}k=f-1|0;j=f&7;c:{if(!j){c=d;break c}c=d;while(1){i=H[b+4>>2];H[c>>2]=H[b>>2];H[c+4>>2]=i;f=f-1|0;c=c+8|0;e=e+1|0;if((e|0)!=(j|0)){continue}break}}if(k>>>0<7){break b}while(1){e=H[b+4>>2];H[c>>2]=H[b>>2];H[c+4>>2]=e;e=H[b+4>>2];H[c+8>>2]=H[b>>2];H[c+12>>2]=e;e=H[b+4>>2];H[c+16>>2]=H[b>>2];H[c+20>>2]=e;e=H[b+4>>2];H[c+24>>2]=H[b>>2];H[c+28>>2]=e;e=H[b+4>>2];H[c+32>>2]=H[b>>2];H[c+36>>2]=e;e=H[b+4>>2];H[c+40>>2]=H[b>>2];H[c+44>>2]=e;e=H[b+4>>2];H[c+48>>2]=H[b>>2];H[c+52>>2]=e;e=H[b+4>>2];H[c+56>>2]=H[b>>2];H[c+60>>2]=e;c=c- -64|0;f=f-8|0;if(f){continue}break}}if(h>>>0<2){c=(2-h<<3)+g|0;while(1){d=H[b+4>>2];H[g>>2]=H[b>>2];H[g+4>>2]=d;g=g+8|0;if((c|0)!=(g|0)){continue}break}H[a+4>>2]=c;return}break a}if(d){H[a+4>>2]=d;qa(d);H[a+8>>2]=0;H[a>>2]=0;H[a+4>>2]=0;c=0}d=c>>2;d=c>>>0<2147483640?d>>>0>2?d:2:536870911;if(d>>>0<536870912){c=d<<3;d=ra(c);H[a>>2]=d;H[a+8>>2]=c+d;i=H[b>>2];e=H[b+4>>2];c=d;b=0;while(1){H[c>>2]=i;H[c+4>>2]=e;c=c+8|0;b=b+1|0;if((b|0)!=2){continue}break}break a}ua();X()}H[a+4>>2]=d+16}function xb(a,b,c){var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0;d=H[a+8>>2];e=H[a>>2];if(d-e>>2>>>0>=b>>>0){g=H[a+4>>2];h=g-e>>2;f=b>>>0>h>>>0?h:b;a:{if(!f){break a}k=f-1|0;i=f&7;b:{if(!i){d=e;break b}d=e;while(1){H[d>>2]=H[c>>2];f=f-1|0;d=d+4|0;j=j+1|0;if((j|0)!=(i|0)){continue}break}}if(k>>>0<7){break a}while(1){H[d>>2]=H[c>>2];H[d+4>>2]=H[c>>2];H[d+8>>2]=H[c>>2];H[d+12>>2]=H[c>>2];H[d+16>>2]=H[c>>2];H[d+20>>2]=H[c>>2];H[d+24>>2]=H[c>>2];H[d+28>>2]=H[c>>2];d=d+32|0;f=f-8|0;if(f){continue}break}}if(b>>>0>h>>>0){b=(b-h<<2)+g|0;while(1){H[g>>2]=H[c>>2];g=g+4|0;if((b|0)!=(g|0)){continue}break}H[a+4>>2]=b;return}H[a+4>>2]=e+(b<<2);return}if(e){H[a+4>>2]=e;qa(e);H[a+8>>2]=0;H[a>>2]=0;H[a+4>>2]=0;d=0}c:{if(b>>>0>=1073741824){break c}e=d>>1;d=d>>>0<2147483644?b>>>0>>0?e:b:1073741823;if(d>>>0>=1073741824){break c}d=d<<2;e=ra(d);H[a>>2]=e;H[a+8>>2]=d+e;c=H[c>>2];d=e;f=b&7;if(f){while(1){H[d>>2]=c;d=d+4|0;g=g+1|0;if((f|0)!=(g|0)){continue}break}}e=e+(b<<2)|0;if((b-1&1073741823)>>>0>=7){while(1){H[d+28>>2]=c;H[d+24>>2]=c;H[d+20>>2]=c;H[d+16>>2]=c;H[d+12>>2]=c;H[d+8>>2]=c;H[d+4>>2]=c;H[d>>2]=c;d=d+32|0;if((e|0)!=(d|0)){continue}break}}H[a+4>>2]=e;return}ua();X()}function eb(a){var b=0,c=0,d=0,e=0,f=0;e=da-16|0;da=e;b=ra(16);H[e>>2]=b;H[e+4>>2]=14;H[e+8>>2]=-2147483632;F[b+14|0]=0;c=I[1602]|I[1603]<<8|(I[1604]<<16|I[1605]<<24);d=I[1598]|I[1599]<<8|(I[1600]<<16|I[1601]<<24);F[b+6|0]=d;F[b+7|0]=d>>>8;F[b+8|0]=d>>>16;F[b+9|0]=d>>>24;F[b+10|0]=c;F[b+11|0]=c>>>8;F[b+12|0]=c>>>16;F[b+13|0]=c>>>24;c=I[1596]|I[1597]<<8|(I[1598]<<16|I[1599]<<24);d=I[1592]|I[1593]<<8|(I[1594]<<16|I[1595]<<24);F[b|0]=d;F[b+1|0]=d>>>8;F[b+2|0]=d>>>16;F[b+3|0]=d>>>24;F[b+4|0]=c;F[b+5|0]=c>>>8;F[b+6|0]=c>>>16;F[b+7|0]=c>>>24;f=Cb(a,e,-1);if(F[e+11|0]<0){qa(H[e>>2])}b=ra(16);H[e>>2]=b;H[e+4>>2]=14;H[e+8>>2]=-2147483632;F[b+14|0]=0;c=I[1617]|I[1618]<<8|(I[1619]<<16|I[1620]<<24);d=I[1613]|I[1614]<<8|(I[1615]<<16|I[1616]<<24);F[b+6|0]=d;F[b+7|0]=d>>>8;F[b+8|0]=d>>>16;F[b+9|0]=d>>>24;F[b+10|0]=c;F[b+11|0]=c>>>8;F[b+12|0]=c>>>16;F[b+13|0]=c>>>24;c=I[1611]|I[1612]<<8|(I[1613]<<16|I[1614]<<24);d=I[1607]|I[1608]<<8|(I[1609]<<16|I[1610]<<24);F[b|0]=d;F[b+1|0]=d>>>8;F[b+2|0]=d>>>16;F[b+3|0]=d>>>24;F[b+4|0]=c;F[b+5|0]=c>>>8;F[b+6|0]=c>>>16;F[b+7|0]=c>>>24;a=Cb(a,e,-1);if(F[e+11|0]<0){qa(H[e>>2])}da=e+16|0;a=(a|0)<(f|0)?f:a;return(a|0)==-1?5:a}function _h(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0;$e(a,b,c);c=H[a+84>>2];d=H[a+88>>2]-c>>2;a:{if((d|0)>(b|0)){break a}b=b+1|0;if(b>>>0>d>>>0){b:{d=b-d|0;e=H[a+92>>2];c=H[a+88>>2];if(d>>>0<=e-c>>2>>>0){c:{if(!d){break c}b=c;f=d&7;if(f){while(1){H[b>>2]=1;b=b+4|0;g=g+1|0;if((f|0)!=(g|0)){continue}break}}c=(d<<2)+c|0;if((d-1&1073741823)>>>0<7){break c}while(1){H[b+24>>2]=1;H[b+28>>2]=1;H[b+16>>2]=1;H[b+20>>2]=1;H[b+8>>2]=1;H[b+12>>2]=1;H[b>>2]=1;H[b+4>>2]=1;b=b+32|0;if((c|0)!=(b|0)){continue}break}}H[a+88>>2]=c;break b}d:{f=H[a+84>>2];j=c-f|0;c=j>>2;b=c+d|0;if(b>>>0<1073741824){e=e-f|0;h=e>>1;e=e>>>0<2147483644?b>>>0>>0?h:b:1073741823;if(e){if(e>>>0>=1073741824){break d}i=ra(e<<2)}c=(c<<2)+i|0;b=c;h=d&7;if(h){b=c;while(1){H[b>>2]=1;b=b+4|0;g=g+1|0;if((h|0)!=(g|0)){continue}break}}c=c+(d<<2)|0;if((d-1&1073741823)>>>0>=7){while(1){H[b+24>>2]=1;H[b+28>>2]=1;H[b+16>>2]=1;H[b+20>>2]=1;H[b+8>>2]=1;H[b+12>>2]=1;H[b>>2]=1;H[b+4>>2]=1;b=b+32|0;if((c|0)!=(b|0)){continue}break}}if((j|0)>0){sa(i,f,j)}H[a+92>>2]=(e<<2)+i;H[a+88>>2]=c;H[a+84>>2]=i;if(f){qa(f)}break b}ua();X()}ya();X()}return}if(b>>>0>=d>>>0){break a}H[a+88>>2]=c+(b<<2)}}function oe(a,b){var c=0,d=0,e=0,f=0,g=0;d=da-16|0;da=d;H[a+8>>2]=b;H[a>>2]=0;H[a+12>>2]=0;H[a+16>>2]=0;H[a+28>>2]=0;H[a+20>>2]=0;H[a+24>>2]=0;H[a+32>>2]=0;H[a+36>>2]=0;H[a+48>>2]=0;H[a+40>>2]=0;H[a+44>>2]=0;H[a+52>>2]=0;H[a+56>>2]=0;H[a+68>>2]=0;H[a+60>>2]=0;H[a+64>>2]=0;H[a+72>>2]=0;H[a+76>>2]=0;H[a+88>>2]=0;H[a+80>>2]=0;H[a+84>>2]=0;H[a+100>>2]=0;H[a+92>>2]=0;H[a+96>>2]=0;g=a+128|0;a:{b:{if(b){if(b>>>0<1073741824){break b}ua();X()}H[a+104>>2]=0;H[a+108>>2]=0;H[a+120>>2]=0;H[a+124>>2]=0;H[a+112>>2]=0;H[a+116>>2]=0;H[d+8>>2]=0;H[d>>2]=0;H[d+4>>2]=0;e=1;break a}e=b<<2;c=ra(e);H[a+92>>2]=c;f=c+e|0;H[a+100>>2]=f;ta(c,0,e);H[a+112>>2]=0;H[a+104>>2]=0;H[a+108>>2]=0;H[a+96>>2]=f;c=ra(e);H[a+104>>2]=c;f=c+e|0;H[a+112>>2]=f;ta(c,0,e);H[a+124>>2]=0;H[a+116>>2]=0;H[a+120>>2]=0;H[a+108>>2]=f;c=ra(e);H[a+116>>2]=c;f=c+e|0;H[a+124>>2]=f;ta(c,0,e);H[a+120>>2]=f;c=ra(e);H[d>>2]=c;f=c+e|0;H[d+8>>2]=f;ta(c,0,e);H[d+4>>2]=f;e=b<<5|1}Mb(g,e,d);c=H[d>>2];if(c){H[d+4>>2]=c;qa(c)}H[d+8>>2]=0;H[d>>2]=0;H[d+4>>2]=0;if(b){b=b<<2;c=ra(b);H[d>>2]=c;f=b+c|0;H[d+8>>2]=f;ta(c,0,b);H[d+4>>2]=f}Mb(a+140|0,e,d);b=H[d>>2];if(b){H[d+4>>2]=b;qa(b)}da=d+16|0;return a}function Di(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,f=0,g=0,h=0;f=da-16|0;da=f;a:{b:{c:{if(!b){break c}e=sb(c);if(e>>>0>=4294967280){break b}d:{e:{if(e>>>0>=11){g=e+16&-16;a=ra(g);H[f+8>>2]=g|-2147483648;H[f>>2]=a;H[f+4>>2]=e;break e}F[f+11|0]=e;a=f;if(!e){break d}}sa(a,c,e)}F[a+e|0]=0;g=da-16|0;da=g;H[g+12>>2]=d;e=da-48|0;da=e;d=ob(b,f);if((d|0)!=(b+4|0)){a=H[d+4>>2];f:{if(!a){a=d;while(1){c=H[a+8>>2];h=H[c>>2]!=(a|0);a=c;if(h){continue}break}break f}while(1){c=a;a=H[a>>2];if(a){continue}break}}if((d|0)==H[b>>2]){H[b>>2]=c}H[b+8>>2]=H[b+8>>2]-1;Bc(H[b+4>>2],d);a=H[d+28>>2];if(a){H[d+32>>2]=a;qa(a)}if(F[d+27|0]<0){qa(H[d+16>>2])}qa(d)}a=ra(4);H[e>>2]=a;c=a+4|0;H[e+8>>2]=c;H[e+4>>2]=c;c=H[g+12>>2];F[a|0]=c;F[a+1|0]=c>>>8;F[a+2|0]=c>>>16;F[a+3|0]=c>>>24;g:{if(F[f+11|0]>=0){H[e+24>>2]=H[f+8>>2];a=H[f+4>>2];H[e+16>>2]=H[f>>2];H[e+20>>2]=a;break g}Ia(e+16|0,H[f>>2],H[f+4>>2])}Qb(e+28|0,e);a=e+16|0;Ac(e+40|0,b,a,a);a=H[e+28>>2];if(a){H[e+32>>2]=a;qa(a)}if(F[e+27|0]<0){qa(H[e+16>>2])}a=H[e>>2];if(a){H[e+4>>2]=a;qa(a)}da=e+48|0;da=g+16|0;if(F[f+11|0]>=0){break c}qa(H[f>>2])}da=f+16|0;a=(b|0)!=0;break a}hb();X()}return a|0}function Pg(a,b,c){var d=0,e=0,f=0,g=0;f=da-16|0;da=f;d=ra(16);H[f>>2]=d;H[f+4>>2]=14;H[f+8>>2]=-2147483632;F[d+14|0]=0;g=I[1602]|I[1603]<<8|(I[1604]<<16|I[1605]<<24);e=I[1598]|I[1599]<<8|(I[1600]<<16|I[1601]<<24);F[d+6|0]=e;F[d+7|0]=e>>>8;F[d+8|0]=e>>>16;F[d+9|0]=e>>>24;F[d+10|0]=g;F[d+11|0]=g>>>8;F[d+12|0]=g>>>16;F[d+13|0]=g>>>24;g=I[1596]|I[1597]<<8|(I[1598]<<16|I[1599]<<24);e=I[1592]|I[1593]<<8|(I[1594]<<16|I[1595]<<24);F[d|0]=e;F[d+1|0]=e>>>8;F[d+2|0]=e>>>16;F[d+3|0]=e>>>24;F[d+4|0]=g;F[d+5|0]=g>>>8;F[d+6|0]=g>>>16;F[d+7|0]=g>>>24;d=a+4|0;tb(d,f,b);if(F[f+11|0]<0){qa(H[f>>2])}a=ra(16);H[f>>2]=a;H[f+4>>2]=14;H[f+8>>2]=-2147483632;F[a+14|0]=0;e=I[1617]|I[1618]<<8|(I[1619]<<16|I[1620]<<24);b=I[1613]|I[1614]<<8|(I[1615]<<16|I[1616]<<24);F[a+6|0]=b;F[a+7|0]=b>>>8;F[a+8|0]=b>>>16;F[a+9|0]=b>>>24;F[a+10|0]=e;F[a+11|0]=e>>>8;F[a+12|0]=e>>>16;F[a+13|0]=e>>>24;e=I[1611]|I[1612]<<8|(I[1613]<<16|I[1614]<<24);b=I[1607]|I[1608]<<8|(I[1609]<<16|I[1610]<<24);F[a|0]=b;F[a+1|0]=b>>>8;F[a+2|0]=b>>>16;F[a+3|0]=b>>>24;F[a+4|0]=e;F[a+5|0]=e>>>8;F[a+6|0]=e>>>16;F[a+7|0]=e>>>24;tb(d,f,c);if(F[f+11|0]<0){qa(H[f>>2])}da=f+16|0}function dg(a){var b=0,c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0;a:{b=H[a+12>>2];c=H[b+4>>2];b=H[b>>2];if((c|0)!=(b|0)){b=c-b>>2;j=b>>>0>1?b:1;k=a+140|0;while(1){b:{if(Dc(H[a+12>>2],(e>>>0)/3|0)){break b}b=H[a+12>>2];if(H[H[b+12>>2]+(e<<2)>>2]!=-1){break b}f=H[a+152>>2];d=e+1|0;d=(d>>>0)%3|0?d:e-2|0;if((d|0)!=-1){b=H[H[b>>2]+(d<<2)>>2]}else{b=-1}c=b<<2;if(H[f+c>>2]!=-1){break b}g=-1;h=H[a+144>>2];b=h;d=H[a+148>>2];if((b|0)==d<<5){if((h+1|0)<0){break a}if(h>>>0<=1073741822){b=d<<6;d=h+32&-32;b=b>>>0>d>>>0?b:d}else{b=2147483647}Gb(k,b);f=H[a+152>>2];g=H[c+f>>2];b=H[a+144>>2]}H[a+144>>2]=b+1;d=H[a+140>>2]+(b>>>3&536870908)|0;i=H[d>>2];m=d,n=Dl(b)&i,H[m>>2]=n;if((g|0)!=-1){break b}c=c+f|0;i=H[a+12>>2];b=e;while(1){d=b;H[c>>2]=h;b=-1;g=-1;c:{if((d|0)==-1){break c}c=d+1|0;c=(c>>>0)%3|0?c:d-2|0;if((c|0)==-1){break c}l=H[i+12>>2];while(1){d=H[(c<<2)+l>>2];if((d|0)!=-1){c=d+1|0;c=(c>>>0)%3|0?c:d-2|0;if((c|0)!=-1){continue}break c}break}b=c+1|0;b=(b>>>0)%3|0?b:c-2|0;if((b|0)!=-1){g=H[H[i>>2]+(b<<2)>>2]}b=c}c=(g<<2)+f|0;if(H[c>>2]==-1){continue}break}}e=e+1|0;if((j|0)!=(e|0)){continue}break}}return 1}ua();X()}function wc(a,b,c){var d=0,e=0,f=0,g=0,h=0;a:{b:{g=a+16|0;d=H[g>>2];if(!d){break b}h=H[b>>2];b=g;while(1){f=(h|0)>H[d+16>>2];b=f?b:d;d=H[(f?d+4|0:d)>>2];if(d){continue}break}if((b|0)==(g|0)|(h|0)>2]){break b}d=H[b+24>>2];if(!d){break a}a=I[c+11|0];b=a<<24>>24<0;g=b?H[c>>2]:c;a=b?H[c+4>>2]:a;while(1){b=I[d+27|0];c=b<<24>>24<0;b=c?H[d+20>>2]:b;h=b>>>0>>0;c:{d:{e:{f:{g:{h:{f=h?b:a;if(f){e=d+16|0;c=c?H[e>>2]:e;e=Ea(g,c,f);if(e){break h}if(a>>>0>=b>>>0){break g}break c}if(a>>>0>=b>>>0){break f}break c}if((e|0)<0){break c}}b=Ea(c,g,f);if(b){break e}}if(h){break d}return 1}if((b|0)<0){break d}return 1}d=d+4|0}d=H[d>>2];if(d){continue}break}break a}d=H[a+4>>2];if(!d){break a}a=I[c+11|0];b=a<<24>>24<0;g=b?H[c>>2]:c;a=b?H[c+4>>2]:a;while(1){b=I[d+27|0];c=b<<24>>24<0;b=c?H[d+20>>2]:b;h=b>>>0>>0;i:{j:{k:{l:{m:{n:{f=h?b:a;if(f){e=d+16|0;c=c?H[e>>2]:e;e=Ea(g,c,f);if(e){break n}if(a>>>0>=b>>>0){break m}break i}if(a>>>0>=b>>>0){break l}break i}if((e|0)<0){break i}}b=Ea(c,g,f);if(b){break k}}if(h){break j}return 1}if((b|0)<0){break j}return 1}d=d+4|0}d=H[d>>2];if(d){continue}break}}return 0}function Pa(a){var b=0,c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0;b=H[a+112>>2];d=H[a+116>>2];e=!!(b|d);c=b;a:{i=e;e=H[a+4>>2];f=H[a+44>>2];b=e-f|0;h=b;g=b+H[a+120>>2]|0;b=H[a+124>>2]+(b>>31)|0;b=g>>>0>>0?b+1|0:b;if(!(i&(c>>>0<=g>>>0&(b|0)>=(d|0)|(b|0)>(d|0)))){d=da-16|0;da=d;e=-1;c=H[a+72>>2];H[a+72>>2]=c-1|c;if(H[a+20>>2]!=H[a+28>>2]){fa[H[a+36>>2]](a,0,0)|0}H[a+28>>2]=0;H[a+16>>2]=0;H[a+20>>2]=0;c=H[a>>2];b:{if(c&4){H[a>>2]=c|32;c=-1;break b}f=H[a+44>>2]+H[a+48>>2]|0;H[a+8>>2]=f;H[a+4>>2]=f;c=c<<27>>31}c:{if(c){break c}if((fa[H[a+32>>2]](a,d+15|0,1)|0)!=1){break c}e=I[d+15|0]}da=d+16|0;if((e|0)>=0){break a}f=H[a+44>>2];e=H[a+4>>2]}H[a+112>>2]=-1;H[a+116>>2]=-1;H[a+104>>2]=e;d=f-e|0;e=d+g|0;b=(d>>31)+b|0;H[a+120>>2]=e;H[a+124>>2]=d>>>0>e>>>0?b+1|0:b;return-1}d=g+1|0;b=d?b:b+1|0;g=H[a+4>>2];f=H[a+8>>2];c=H[a+112>>2];h=H[a+116>>2];d:{if(!(c|h)){break d}i=c-d|0;c=h-(b+(d>>>0>c>>>0)|0)|0;j=f-g|0;h=j>>31;if((c|0)>=(h|0)&i>>>0>=j>>>0|(c|0)>(h|0)){break d}f=g+i|0}H[a+104>>2]=f;c=H[a+44>>2];f=c-g|0;d=f+d|0;b=(f>>31)+b|0;H[a+120>>2]=d;H[a+124>>2]=d>>>0>>0?b+1|0:b;if(c>>>0>=g>>>0){F[g-1|0]=e}return e}function sa(a,b,c){var d=0,e=0,f=0;if(c>>>0>=512){ca(a|0,b|0,c|0);return a}e=a+c|0;a:{if(!((a^b)&3)){b:{if(!(a&3)){c=a;break b}if(!c){c=a;break b}c=a;while(1){F[c|0]=I[b|0];b=b+1|0;c=c+1|0;if(!(c&3)){break b}if(c>>>0>>0){continue}break}}d=e&-4;c:{if(d>>>0<64){break c}f=d+-64|0;if(f>>>0>>0){break c}while(1){H[c>>2]=H[b>>2];H[c+4>>2]=H[b+4>>2];H[c+8>>2]=H[b+8>>2];H[c+12>>2]=H[b+12>>2];H[c+16>>2]=H[b+16>>2];H[c+20>>2]=H[b+20>>2];H[c+24>>2]=H[b+24>>2];H[c+28>>2]=H[b+28>>2];H[c+32>>2]=H[b+32>>2];H[c+36>>2]=H[b+36>>2];H[c+40>>2]=H[b+40>>2];H[c+44>>2]=H[b+44>>2];H[c+48>>2]=H[b+48>>2];H[c+52>>2]=H[b+52>>2];H[c+56>>2]=H[b+56>>2];H[c+60>>2]=H[b+60>>2];b=b- -64|0;c=c- -64|0;if(f>>>0>=c>>>0){continue}break}}if(c>>>0>=d>>>0){break a}while(1){H[c>>2]=H[b>>2];b=b+4|0;c=c+4|0;if(d>>>0>c>>>0){continue}break}break a}if(e>>>0<4){c=a;break a}d=e-4|0;if(d>>>0>>0){c=a;break a}c=a;while(1){F[c|0]=I[b|0];F[c+1|0]=I[b+1|0];F[c+2|0]=I[b+2|0];F[c+3|0]=I[b+3|0];b=b+4|0;c=c+4|0;if(d>>>0>=c>>>0){continue}break}}if(c>>>0>>0){while(1){F[c|0]=I[b|0];b=b+1|0;c=c+1|0;if((e|0)!=(c|0)){continue}break}}return a}function Sf(a){a=a|0;var b=0,c=0,d=0,e=0;H[a>>2]=10532;c=H[a+280>>2];H[a+280>>2]=0;if(c){d=c-4|0;b=H[d>>2];if(b){b=c+(b<<5)|0;while(1){b=Aa(b-32|0);if((c|0)!=(b|0)){continue}break}}qa(d)}b=H[a+268>>2];if(b){H[a+272>>2]=b;qa(b)}b=H[a+244>>2];H[a+244>>2]=0;if(b){qa(b)}b=H[a+232>>2];if(b){H[a+236>>2]=b;qa(b)}Aa(a+200|0);b=H[a+184>>2];if(b){H[a+188>>2]=b;qa(b)}c=H[a+172>>2];if(c){d=c;b=H[a+176>>2];if((c|0)!=(b|0)){while(1){d=b-136|0;e=H[d+116>>2];if(e){H[b-16>>2]=e;qa(e)}e=H[b-32>>2];if(e){H[b-28>>2]=e;qa(e)}pc(b-132|0);b=d;if((c|0)!=(b|0)){continue}break}d=H[a+172>>2]}H[a+176>>2]=c;qa(d)}b=H[a+152>>2];if(b){H[a+156>>2]=b;qa(b)}b=H[a+140>>2];if(b){qa(b)}b=H[a+128>>2];if(b){while(1){c=H[b>>2];qa(b);b=c;if(b){continue}break}}b=H[a+120>>2];H[a+120>>2]=0;if(b){qa(b)}b=H[a+108>>2];if(b){H[a+112>>2]=b;qa(b)}b=H[a+96>>2];if(b){H[a+100>>2]=b;qa(b)}b=H[a+84>>2];if(b){qa(b)}b=H[a+72>>2];if(b){H[a+76>>2]=b;qa(b)}b=H[a+52>>2];if(b){H[a+56>>2]=b;qa(b)}b=H[a+40>>2];if(b){H[a+44>>2]=b;qa(b)}b=H[a+28>>2];if(b){qa(b)}b=H[a+16>>2];if(b){H[a+20>>2]=b;qa(b)}b=H[a+12>>2];H[a+12>>2]=0;if(b){Kb(b)}return a|0}function Fc(a,b,c){var d=0,e=0,f=0,g=0,h=0,i=0;f=-1;a:{if((b|0)==-1){h=H[a+12>>2];d=1;g=-1;break a}b:{c:{if((b>>>0)%3|0){e=b-1|0;h=H[a+12>>2];break c}h=H[a+12>>2];e=b+2|0;if((e|0)!=-1){break c}d=1;break b}g=H[h+12>>2];while(1){f=e;d=H[g+(e<<2)>>2];if((d|0)!=-1){f=-1;e=d+1|0;e=(e>>>0)%3|0?e:d-2|0;if((e|0)!=-1){continue}}break}d=(d|0)!=-1;g=-1;if((b|0)==-1){break a}}g=H[H[h>>2]+(b<<2)>>2]}b=0;if(c){b=H[a+84>>2]+(g>>>3&536870908)|0;H[b>>2]=H[b>>2]|1<>2]+(g<<2)>>2];e=H[a+140>>2]+(c>>>3&536870908)|0;H[e>>2]=H[e>>2]|1<>>0)%3|0){e=f-1|0;break e}e=f+2|0;c=-1;if((e|0)==-1){break d}}c=H[H[h>>2]+(e<<2)>>2]}if((g|0)!=(c|0)){i=H[a+84>>2];while(1){a=f;f=(c>>>3&536870908)+i|0;H[f>>2]=H[f>>2]|1<>>0)%3|0?d:a-2|0;if((d|0)==-1){break f}e=H[h+12>>2];while(1){a=H[e+(d<<2)>>2];if((a|0)!=-1){d=a+1|0;d=(d>>>0)%3|0?d:a-2|0;if((d|0)!=-1){continue}break f}break}g:{if((d>>>0)%3|0){e=d-1|0;break g}e=d+2|0;if((e|0)!=-1){break g}f=-3;break f}c=H[H[h>>2]+(e<<2)>>2];f=d}b=b+1|0;if((c|0)!=(g|0)){continue}break}}}function Sb(a,b,c,d){var e=0,f=0,g=0,h=0,i=0;a:{b:{f=H[a+124>>2];c:{if(!f){break c}e=H[a+120>>2];i=Cl(f);h=f-1&d;d:{if(i>>>0<=1){break d}h=d;if(d>>>0>>0){break d}h=(d>>>0)%(f>>>0)|0}g=H[e+(h<<2)>>2];if(!g){break c}e=H[g>>2];if(!e){break c}e:{if(i>>>0<=1){g=f-1|0;while(1){f=H[e+4>>2];f:{if((f|0)!=(d|0)){if((h|0)==(f&g)){break f}break c}if(H[e+8>>2]==(d|0)){break e}}e=H[e>>2];if(e){continue}break}break c}while(1){g=H[e+4>>2];g:{if((g|0)!=(d|0)){if(f>>>0<=g>>>0){g=(g>>>0)%(f>>>0)|0}if((g|0)==(h|0)){break g}break c}if(H[e+8>>2]==(d|0)){break e}}e=H[e>>2];if(e){continue}break}break c}f=H[e+12>>2];if((f|0)==-1){break c}i=c&1;c=H[a+112>>2];if((c|0)!=H[a+116>>2]){F[c+8|0]=i;H[c+4>>2]=b;H[c>>2]=f;H[a+112>>2]=c+12;return}g=H[a+108>>2];h=c-g|0;d=(h|0)/12|0;c=d+1|0;if(c>>>0>=357913942){break b}e=d<<1;e=d>>>0<178956970?c>>>0>>0?e:c:357913941;if(e){if(e>>>0>=357913942){break a}c=ra(N(e,12))}else{c=0}d=c+N(d,12)|0;F[d+8|0]=i;H[d+4>>2]=b;H[d>>2]=f;b=d+N((h|0)/-12|0,12)|0;if((h|0)>0){sa(b,g,h)}H[a+116>>2]=c+N(e,12);H[a+112>>2]=d+12;H[a+108>>2]=b;if(!g){break c}qa(g)}return}ua();X()}ya();X()}function La(a,b,c){var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0;f=H[a+8>>2];e=H[a+4>>2];if(f-e>>2>>>0>=b>>>0){a:{if(!b){break a}d=e;g=b&7;if(g){while(1){H[d>>2]=H[c>>2];d=d+4|0;h=h+1|0;if((g|0)!=(h|0)){continue}break}}e=(b<<2)+e|0;if((b-1&1073741823)>>>0<7){break a}while(1){H[d>>2]=H[c>>2];H[d+4>>2]=H[c>>2];H[d+8>>2]=H[c>>2];H[d+12>>2]=H[c>>2];H[d+16>>2]=H[c>>2];H[d+20>>2]=H[c>>2];H[d+24>>2]=H[c>>2];H[d+28>>2]=H[c>>2];d=d+32|0;if((e|0)!=(d|0)){continue}break}}H[a+4>>2]=e;return}b:{g=H[a>>2];k=e-g|0;e=k>>2;d=e+b|0;if(d>>>0<1073741824){f=f-g|0;i=f>>1;f=f>>>0<2147483644?d>>>0>>0?i:d:1073741823;if(f){if(f>>>0>=1073741824){break b}j=ra(f<<2)}e=(e<<2)+j|0;d=e;i=b&7;if(i){d=e;while(1){H[d>>2]=H[c>>2];d=d+4|0;h=h+1|0;if((i|0)!=(h|0)){continue}break}}e=e+(b<<2)|0;if((b-1&1073741823)>>>0>=7){while(1){H[d>>2]=H[c>>2];H[d+4>>2]=H[c>>2];H[d+8>>2]=H[c>>2];H[d+12>>2]=H[c>>2];H[d+16>>2]=H[c>>2];H[d+20>>2]=H[c>>2];H[d+24>>2]=H[c>>2];H[d+28>>2]=H[c>>2];d=d+32|0;if((e|0)!=(d|0)){continue}break}}if((k|0)>0){sa(j,g,k)}H[a+8>>2]=(f<<2)+j;H[a+4>>2]=e;H[a>>2]=j;if(g){qa(g)}return}ua();X()}ya();X()}function Xe(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0;f=H[c>>2];m=H[c+4>>2];a:{if((f|0)==(m|0)){h=H[a+12>>2];b=H[a+8>>2];i=h-b|0;c=0;break a}o=H[b>>2];h=H[a+12>>2];b=H[a+8>>2];i=h-b|0;if((i|0)<=0){c=0;while(1){e=H[(H[f>>2]<<2)+o>>2];c=c>>>0>e>>>0?c:e+1|0;f=f+4|0;if((m|0)!=(f|0)){continue}break}break a}c=i>>>2|0;c=c>>>0>1?c:1;q=c&1073741822;r=c&1;c=0;s=i>>>0<8;while(1){e=H[f>>2];k=e<<2;l=H[o+k>>2];if(l>>>0>=c>>>0){c=0;j=0;if(!s){while(1){p=c<<2;d=H[p+b>>2];g=H[d+68>>2];d=I[d+84|0]?e:H[g+k>>2];n=g;g=l<<2;H[n+g>>2]=d;n=g;d=H[(p|4)+b>>2];g=H[d+68>>2];H[n+g>>2]=I[d+84|0]?e:H[g+k>>2];c=c+2|0;j=j+2|0;if((q|0)!=(j|0)){continue}break}}if(r){c=H[(c<<2)+b>>2];d=H[c+68>>2];j=d+(l<<2)|0;if(!I[c+84|0]){e=H[d+k>>2]}H[j>>2]=e}c=l+1|0}f=f+4|0;if((m|0)!=(f|0)){continue}break}}d=0;if((i|0)>0){while(1){b=H[(d<<2)+b>>2];F[b+84|0]=0;f=H[b+68>>2];e=H[b+72>>2]-f>>2;b:{if(e>>>0>>0){La(b+68|0,c-e|0,15024);h=H[a+12>>2];break b}if(c>>>0>=e>>>0){break b}H[b+72>>2]=f+(c<<2)}d=d+1|0;b=H[a+8>>2];if((d|0)>2){continue}break}}}function de(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0;H[a+4>>2]=b;d=H[H[H[b+4>>2]+8>>2]+(c<<2)>>2];H[a+12>>2]=c;H[a+8>>2]=d;a:{if((fa[H[H[a>>2]+32>>2]](a)|0)==1&H[H[a+8>>2]+28>>2]-1>>>0>5){break a}f=H[b+48>>2];d=da-16|0;da=d;H[d+12>>2]=c;b=ra(32);H[d>>2]=b;H[d+4>>2]=17;H[d+8>>2]=-2147483616;F[b+17|0]=0;F[b+16|0]=I[1529];c=I[1525]|I[1526]<<8|(I[1527]<<16|I[1528]<<24);e=I[1521]|I[1522]<<8|(I[1523]<<16|I[1524]<<24);F[b+8|0]=e;F[b+9|0]=e>>>8;F[b+10|0]=e>>>16;F[b+11|0]=e>>>24;F[b+12|0]=c;F[b+13|0]=c>>>8;F[b+14|0]=c>>>16;F[b+15|0]=c>>>24;c=I[1517]|I[1518]<<8|(I[1519]<<16|I[1520]<<24);e=I[1513]|I[1514]<<8|(I[1515]<<16|I[1516]<<24);F[b|0]=e;F[b+1|0]=e>>>8;F[b+2|0]=e>>>16;F[b+3|0]=e>>>24;F[b+4|0]=c;F[b+5|0]=c>>>8;F[b+6|0]=c>>>16;F[b+7|0]=c>>>24;b=pb(f,d+12|0,d,-1);if(F[d+11|0]<0){qa(H[d>>2])}da=d+16|0;c=fa[H[H[a>>2]+48>>2]](a,(b|0)==-1?-1:b>>>0>6?-2:b)|0;b=H[a+36>>2];H[a+36>>2]=c;e=1;if(b){fa[H[H[b>>2]+4>>2]](b);c=H[a+36>>2]}if(!c){break a}if(fa[H[H[a>>2]+36>>2]](a,c)|0){break a}b=H[a+36>>2];H[a+36>>2]=0;if(!b){break a}fa[H[H[b>>2]+4>>2]](b)}return e|0}function df(a){var b=0,c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0;f=da-16|0;da=f;a:{d=jd(a);b:{if(!d){a=0;break b}e=H[a+100>>2];g=H[a+96>>2];H[f+8>>2]=0;H[f>>2]=0;H[f+4>>2]=0;b=e-g|0;c=(b|0)/12|0;c:{if((e|0)==(g|0)){break c}if(c>>>0>=357913942){break a}e=ra(b);H[f>>2]=e;H[f+8>>2]=e+N(c,12);a=0;h=e;e=b-12|0;b=(e-((e>>>0)%12|0)|0)+12|0;e=ta(h,0,b);H[f+4>>2]=b+e;if(I[d+84|0]){d=c>>>0>1?c:1;i=d&1;if(c>>>0>=2){j=d&-2;c=0;while(1){b=N(a,12);d=b+g|0;h=H[d+4>>2];k=H[d>>2];b=b+e|0;H[b+8>>2]=H[d+8>>2];H[b>>2]=k;H[b+4>>2]=h;b=N(a|1,12);d=b+g|0;h=H[d+4>>2];k=H[d>>2];b=b+e|0;H[b+8>>2]=H[d+8>>2];H[b>>2]=k;H[b+4>>2]=h;a=a+2|0;c=c+2|0;if((j|0)!=(c|0)){continue}break}}if(!i){break c}c=N(a,12);a=c+g|0;g=H[a+4>>2];d=H[a>>2];c=c+e|0;H[c+8>>2]=H[a+8>>2];H[c>>2]=d;H[c+4>>2]=g;break c}i=c>>>0>1?c:1;a=H[d+68>>2];c=0;while(1){b=N(c,12);d=b+g|0;j=H[a+(H[d>>2]<<2)>>2];h=H[a+(H[d+4>>2]<<2)>>2];b=b+e|0;H[b+8>>2]=H[a+(H[d+8>>2]<<2)>>2];H[b+4>>2]=h;H[b>>2]=j;c=c+1|0;if((i|0)!=(c|0)){continue}break}}a=gf(f);c=H[f>>2];if(!c){break b}H[f+4>>2]=c;qa(c)}da=f+16|0;return a}ua();X()}function Cd(a,b){var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0;a:{if(H[a+64>>2]){break a}c=ra(32);H[c+16>>2]=0;H[c+20>>2]=0;H[c+8>>2]=0;H[c>>2]=0;H[c+4>>2]=0;H[c+24>>2]=0;H[c+28>>2]=0;d=H[a+64>>2];H[a+64>>2]=c;if(!d){break a}c=H[d>>2];if(c){H[d+4>>2]=c;qa(c)}qa(d)}c=H[a+64>>2];d=H[a+28>>2]-1|0;if(d>>>0<=10){d=H[(d<<2)+14832>>2]}else{d=-1}d=N(d,F[a+24|0]);k=d;j=d>>31;d=zl(d,j,b,0);b:{if((ea|0)<0){break b}c:{e=H[c+4>>2];f=H[c>>2];h=e-f|0;d:{if(d>>>0>h>>>0){i=d-h|0;g=H[c+8>>2];if(i>>>0<=g-e>>>0){l=c,m=ta(e,0,i)+i|0,H[l+4>>2]=m;break d}if((d|0)<0){break c}e=g-f|0;g=e<<1;g=e>>>0<1073741823?d>>>0>>0?g:d:2147483647;e=ra(g);ta(e+h|0,0,i);if((h|0)>0){sa(e,f,h)}H[c+8>>2]=e+g;H[c+4>>2]=d+e;H[c>>2]=e;if(!f){break d}qa(f);break d}if(d>>>0>=h>>>0){break d}H[c+4>>2]=d+f}d=H[c+28>>2];f=H[c+24>>2]+1|0;d=f?d:d+1|0;H[c+24>>2]=f;H[c+28>>2]=d;f=1;break b}ua();X()}if(f){c=H[a+64>>2];H[a>>2]=c;d=H[c+20>>2];H[a+8>>2]=H[c+16>>2];H[a+12>>2]=d;d=H[c+24>>2];c=H[c+28>>2];H[a+48>>2]=0;H[a+52>>2]=0;H[a+40>>2]=k;H[a+44>>2]=j;H[a+16>>2]=d;H[a+20>>2]=c;H[a+80>>2]=b}}function Bl(a,b,c,d){var e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0;g=c;a:{b:{c:{d:{e:{f:{g:{h:{i:{j:{k:{if(b){if(!g){break k}if(!d){break j}c=Q(d)-Q(b)|0;if(c>>>0<=31){break i}break c}if((d|0)==1|d>>>0>1){break c}a=(a>>>0)/(g>>>0)|0;ea=0;break a}if(!a){break h}if(!d){break g}if(d-1&d){break g}a=b>>>El(d)|0;ea=0;break a}if(!(g-1&g)){break f}h=(Q(g)+33|0)-Q(b)|0;e=0-h|0;break d}h=c+1|0;e=63-c|0;break d}a=(b>>>0)/(d>>>0)|0;ea=0;break a}c=Q(d)-Q(b)|0;if(c>>>0<31){break e}break c}if((g|0)==1){break b}c=El(g);d=c&31;if((c&63)>>>0>=32){c=0;a=b>>>d|0}else{c=b>>>d|0;a=((1<>>d}ea=c;break a}h=c+1|0;e=63-c|0}c=h&63;f=c&31;if(c>>>0>=32){c=0;i=b>>>f|0}else{c=b>>>f|0;i=((1<>>f}f=c;c=e&63;e=c&31;if(c>>>0>=32){c=a<>>32-e|b<>>31;f=f<<1|i>>>31;j=m-(f+(c>>>0>e>>>0)|0)>>31;k=g&j;i=c-k|0;f=f-((d&j)+(c>>>0>>0)|0)|0;b=b<<1|a>>>31;a=l|a<<1;l=j&1;h=h-1|0;if(h){continue}break}}ea=b<<1|a>>>31;a=l|a<<1;break a}a=0;b=0}ea=b}return a}function tb(a,b,c){var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0;g=da-48|0;da=g;f=da-32|0;da=f;j=f+21|0;d=j;l=f+32|0;e=l;if(!((d|0)==(e|0)|(c|0)>=0)){F[d|0]=45;d=d+1|0;c=0-c|0}k=e-d|0;a:{if((k|0)<=9){i=N(32-Q(c|1)|0,1233)>>12;h=61;if((k|0)<((K[(i<<2)+18400>>2]<=c>>>0)+i|0)){break a}}b:{if(c>>>0<=99999999){c:{if(c>>>0<=9999){e=Ae(d,c);break c}e=d;d=(c>>>0)/1e4|0;e=yc(Ae(e,d),c-N(d,1e4)|0)}break b}e=(c>>>0)/1e8|0;h=c-N(e,1e8)|0;c=(h>>>0)/1e4|0;e=yc(yc(Be(d,e),c),h-N(c,1e4)|0)}h=0}H[f+12>>2]=h;H[f+8>>2]=e;h=da-16|0;da=h;e=da-16|0;da=e;c=g+8|0;d:{k=H[f+8>>2];f=k-j|0;if(f>>>0<=4294967279){e:{if(f>>>0<11){F[c+11|0]=f;d=c;break e}if(f>>>0>=11){i=f+16&-16;d=i-1|0;d=(d|0)==11?i:d}else{d=10}i=d+1|0;d=ra(i);H[c>>2]=d;H[c+8>>2]=i|-2147483648;H[c+4>>2]=f}while(1){if((j|0)!=(k|0)){F[d|0]=I[j|0];d=d+1|0;j=j+1|0;continue}break}F[e+15|0]=0;F[d|0]=I[e+15|0];da=e+16|0;break d}hb();X()}da=h+16|0;da=l;H[g+32>>2]=b;Zd(g+40|0,a,b,g+32|0);a=H[g+40>>2];if(F[a+39|0]<0){qa(H[a+28>>2])}b=H[g+12>>2];H[a+28>>2]=H[g+8>>2];H[a+32>>2]=b;H[a+36>>2]=H[g+16>>2];da=g+48|0}function Lb(a,b,c){var d=0,e=0,f=0,g=0,h=0;d=32-b|0;c=c<>2];f=32-e|0;c:{if((f|0)>=(b|0)){b=b+e|0;H[a+16>>2]=b;f=H[a+12>>2]|c>>>e;H[a+12>>2]=f;if((b|0)!=32){break c}b=H[a+4>>2];d:{if((b|0)!=H[a+8>>2]){H[b>>2]=f;H[a+4>>2]=b+4;break d}e=H[a>>2];c=b-e|0;g=c>>2;b=g+1|0;if(b>>>0>=1073741824){break b}d=c>>1;d=c>>>0<2147483644?b>>>0>>0?d:b:1073741823;if(d){if(d>>>0>=1073741824){break a}b=ra(d<<2)}else{b=0}g=b+(g<<2)|0;H[g>>2]=f;if((c|0)>0){sa(b,e,c)}H[a+8>>2]=b+(d<<2);H[a+4>>2]=g+4;H[a>>2]=b;if(!e){break d}qa(e)}H[a+12>>2]=0;H[a+16>>2]=0;return}b=b-f|0;H[a+16>>2]=b;g=c>>>d|0;f=H[a+12>>2]|g>>>b;H[a+12>>2]=f;b=H[a+4>>2];e:{if((b|0)!=H[a+8>>2]){H[b>>2]=f;H[a+4>>2]=b+4;break e}e=H[a>>2];c=b-e|0;h=c>>2;b=h+1|0;if(b>>>0>=1073741824){break b}d=c>>1;d=c>>>0<2147483644?b>>>0>>0?d:b:1073741823;if(d){if(d>>>0>=1073741824){break a}b=ra(d<<2)}else{b=0}h=b+(h<<2)|0;H[h>>2]=f;if((c|0)>0){sa(b,e,c)}H[a+8>>2]=b+(d<<2);H[a+4>>2]=h+4;H[a>>2]=b;if(!e){break e}qa(e)}H[a+12>>2]=g<<32-H[a+16>>2]}return}ua();X()}ya();X()}function za(a){var b=0,c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0;A(+a);c=v(1)|0;b=v(0)|0;d=c-1072604335|0;if((d|0)==135337|d>>>0<135337){if(!b&(c|0)==1072693248){return 0}f=M[1879];a=a+-1;A(+a);b=v(1)|0;v(0)|0;x(0,0);x(1,b|0);g=+z();h=f*g;e=a*a;i=e*(a*M[1888]+M[1887]);j=h+i;l=e*e;return j+(l*(l*(e*(a*M[1896]+M[1895])+(a*M[1894]+M[1893]))+(e*(a*M[1892]+M[1891])+(a*M[1890]+M[1889])))+((a-g)*f+a*M[1880]+(i+(h-j))))}d=c>>>16|0;a:{if(d-32752>>>0<=4294934559){if(!(c&2147483647|b)){b=da-16|0;M[b+8>>3]=-1;return M[b+8>>3]/0}if(!b&(c|0)==2146435072){break a}if(!(!(d&32768)&(d&32752)!=32752)){a=a-a;return a/a}A(+(a*4503599627370496));c=v(1)|0;b=v(0)|0;c=c-54525952|0}d=c-1072037888|0;k=(d>>>14&63)<<4;f=M[k+15184>>3]+ +(d>>20);g=M[1879];a=M[k+15176>>3];x(0,b-0|0);x(1,c-((d&-1048576)+(b>>>0>>0)|0)|0);a=a*(+z()-M[k+16200>>3]-M[k+16208>>3]);A(+a);b=v(1)|0;v(0)|0;x(0,0);x(1,b|0);h=+z();i=g*h;j=f+i;e=a*a;a=j+(e*(e*e*(a*M[1886]+M[1885])+(e*(a*M[1884]+M[1883])+(a*M[1882]+M[1881])))+((a-h)*g+M[1880]*a+(i+(f-j))))}return a}function ub(a,b){var c=0,d=0,e=0;c=(a|0)==(b|0);F[b+12|0]=c;a:{if(c){break a}while(1){d=H[b+8>>2];if(I[d+12|0]){break a}b:{c=H[d+8>>2];e=H[c>>2];if((e|0)==(d|0)){e=H[c+4>>2];if(!(!e|I[e+12|0])){break b}c:{if(H[d>>2]==(b|0)){b=d;break c}b=H[d+4>>2];a=H[b>>2];H[d+4>>2]=a;if(a){H[a+8>>2]=d;c=H[d+8>>2]}H[b+8>>2]=c;a=H[d+8>>2];H[((H[a>>2]!=(d|0))<<2)+a>>2]=b;H[b>>2]=d;H[d+8>>2]=b;c=H[b+8>>2];d=H[c>>2]}F[b+12|0]=1;F[c+12|0]=0;a=H[d+4>>2];H[c>>2]=a;if(a){H[a+8>>2]=c}H[d+8>>2]=H[c+8>>2];a=H[c+8>>2];H[((H[a>>2]!=(c|0))<<2)+a>>2]=d;H[d+4>>2]=c;H[c+8>>2]=d;return}if(!(I[e+12|0]|!e)){break b}d:{if(H[d>>2]!=(b|0)){b=d;break d}a=H[b+4>>2];H[d>>2]=a;if(a){H[a+8>>2]=d;c=H[d+8>>2]}H[b+8>>2]=c;a=H[d+8>>2];H[((H[a>>2]!=(d|0))<<2)+a>>2]=b;H[b+4>>2]=d;H[d+8>>2]=b;c=H[b+8>>2]}F[b+12|0]=1;F[c+12|0]=0;a=H[c+4>>2];b=H[a>>2];H[c+4>>2]=b;if(b){H[b+8>>2]=c}H[a+8>>2]=H[c+8>>2];b=H[c+8>>2];H[((H[b>>2]!=(c|0))<<2)+b>>2]=a;H[a>>2]=c;H[c+8>>2]=a;break a}F[d+12|0]=1;F[c+12|0]=(a|0)==(c|0);F[e+12|0]=1;b=c;if((c|0)!=(a|0)){continue}break}}}function Dg(a,b,c,d){var e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0;j=da-16|0;da=j;H[j+8>>2]=0;H[j>>2]=0;H[j+4>>2]=0;a:{b:{e=c+1|0;if(e){if(e>>>0>=1073741824){break b}h=ra(e<<2);ta(h,0,(c<<2)+4|0)}c:{if((b|0)<=0){break c}e=0;if(b-1>>>0>=3){k=b&-4;while(1){f=e<<2;i=(H[f+a>>2]<<2)+h|0;H[i>>2]=H[i>>2]+1;i=(H[(f|4)+a>>2]<<2)+h|0;H[i>>2]=H[i>>2]+1;i=(H[(f|8)+a>>2]<<2)+h|0;H[i>>2]=H[i>>2]+1;f=(H[(f|12)+a>>2]<<2)+h|0;H[f>>2]=H[f>>2]+1;e=e+4|0;l=l+4|0;if((k|0)!=(l|0)){continue}break}}f=b&3;if(!f){break c}while(1){k=(H[(e<<2)+a>>2]<<2)+h|0;H[k>>2]=H[k>>2]+1;e=e+1|0;m=m+1|0;if((f|0)!=(m|0)){continue}break}}e=0;if((c|0)<0){a=0;break a}o=+(b|0);a=0;while(1){b=H[(e<<2)+h>>2];if((b|0)>0){n=+(b|0);g=n*za(n/o)+g;a=a+1|0}b=(c|0)==(e|0);e=e+1|0;if(!b){continue}break}break a}ua();X()}if(d){H[d>>2]=a}if(h){qa(h)}g=-g;d:{if(P(g)<0x8000000000000000){b=P(g)>=1?~~(g>0?R(T(g*2.3283064365386963e-10),4294967295):U((g-+(~~g>>>0>>>0))*2.3283064365386963e-10))>>>0:0;a=~~g>>>0;break d}b=-2147483648;a=0}da=j+16|0;ea=b;return a}function rk(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0,g=0,h=0,i=O(0),j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0;k=da-16|0;da=k;if(H[c+28>>2]==9){d=H[a+4>>2];g=F[c+24|0];e=g<<2;f=ra((g&1073741823)!=(g|0)?-1:e);l=k+8|0;H[l>>2]=1065353216;i=L[a+20>>2];d=-1<0){L[l>>2]=i/O(d|0)}o=(d|0)>0;a:{if(!o){break a}j=H[c+80>>2];if(!j){break a}d=0;if((g|0)<=0){if((j|0)!=1){a=j&-2;b=0;while(1){sa(H[H[c+64>>2]>>2]+d|0,f,e);d=d+e|0;sa(d+H[H[c+64>>2]>>2]|0,f,e);d=d+e|0;b=b+2|0;if((a|0)!=(b|0)){continue}break}}if(!(j&1)){break a}sa(H[H[c+64>>2]>>2]+d|0,f,e);break a}p=H[H[b>>2]>>2]+H[b+48>>2]|0;t=g&-2;u=g&1;while(1){m=H[a+8>>2];i=L[l>>2];b=0;n=0;if((g|0)!=1){while(1){h=b<<2;q=(d<<2)+p|0;L[h+f>>2]=O(i*O(H[q>>2]))+L[h+m>>2];h=h|4;L[h+f>>2]=O(i*O(H[q+4>>2]))+L[h+m>>2];b=b+2|0;d=d+2|0;n=n+2|0;if((t|0)!=(n|0)){continue}break}}if(u){b=b<<2;L[b+f>>2]=O(i*O(H[(d<<2)+p>>2]))+L[b+m>>2];d=d+1|0}sa(H[H[c+64>>2]>>2]+r|0,f,e);r=e+r|0;s=s+1|0;if((s|0)!=(j|0)){continue}break}}qa(f)}da=k+16|0;return o|0}function Tk(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0;c=H[b+88>>2];if(!(!c|H[c>>2]!=1)){d=H[c+8>>2];H[a+4>>2]=I[d|0]|I[d+1|0]<<8|(I[d+2|0]<<16|I[d+3|0]<<24);e=a+8|0;d=F[b+24|0];f=H[a+8>>2];g=H[a+12>>2]-f>>2;a:{if(d>>>0>g>>>0){Fa(e,d-g|0);d=F[b+24|0];break a}if(d>>>0>=g>>>0){break a}H[a+12>>2]=f+(d<<2)}k=1;g=H[c+8>>2];b:{if((d|0)<=0){b=4;break b}h=d&3;e=H[e>>2];c:{if(d-1>>>0<3){b=4;d=0;break c}l=d&-4;d=0;b=4;while(1){f=d<<2;c=b+g|0;H[f+e>>2]=I[c|0]|I[c+1|0]<<8|(I[c+2|0]<<16|I[c+3|0]<<24);H[e+(f|4)>>2]=I[c+4|0]|I[c+5|0]<<8|(I[c+6|0]<<16|I[c+7|0]<<24);H[e+(f|8)>>2]=I[c+8|0]|I[c+9|0]<<8|(I[c+10|0]<<16|I[c+11|0]<<24);H[e+(f|12)>>2]=I[c+12|0]|I[c+13|0]<<8|(I[c+14|0]<<16|I[c+15|0]<<24);d=d+4|0;b=b+16|0;i=i+4|0;if((l|0)!=(i|0)){continue}break}}if(!h){break b}while(1){c=b+g|0;H[e+(d<<2)>>2]=I[c|0]|I[c+1|0]<<8|(I[c+2|0]<<16|I[c+3|0]<<24);d=d+1|0;b=b+4|0;j=j+1|0;if((j|0)!=(h|0)){continue}break}}c=a;a=b+g|0;H[c+20>>2]=I[a|0]|I[a+1|0]<<8|(I[a+2|0]<<16|I[a+3|0]<<24)}return k|0}function fd(a,b){var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0;a:{if(I[a+11|0]>>>7|0){d=H[a+4>>2]}else{d=I[a+11|0]}if(d>>>0>>0){i=da-16|0;da=i;h=b-d|0;if(h){e=I[a+11|0]>>>7|0?(H[a+8>>2]&2147483647)-1|0:10;if(I[a+11|0]>>>7|0){b=H[a+4>>2]}else{b=I[a+11|0]}j=b+h|0;if(e-b>>>0>>0){b:{g=da-16|0;da=g;c=j-e|0;if(c>>>0<=-17-e>>>0){if(I[a+11|0]>>>7|0){d=H[a>>2]}else{d=a}c:{if(e>>>0<2147483623){H[g+8>>2]=e<<1;H[g+12>>2]=c+e;c=da-16|0;da=c;da=c+16|0;c=g+8|0;f=g+12|0;c=H[(K[f>>2]>2]?c:f)>>2];if(c>>>0>=11){f=c+16&-16;c=f-1|0;c=(c|0)==11?f:c}else{c=10}break c}c=-18}f=c+1|0;c=ra(f);if(b){Bb(c,d,b)}if((e|0)!=10){qa(d)}H[a>>2]=c;H[a+8>>2]=f|-2147483648;da=g+16|0;break b}hb();X()}}d=b;if(I[a+11|0]>>>7|0){b=H[a>>2]}else{b=a}d=d+b|0;if(h){ta(d,0,h)}d:{if(I[a+11|0]>>>7|0){H[a+4>>2]=j;break d}F[a+11|0]=j}F[i+15|0]=0;F[b+j|0]=I[i+15|0]}da=i+16|0;break a}if(I[a+11|0]>>>7|0){d=H[a>>2]}else{d=a}e=da-16|0;da=e;e:{if(I[a+11|0]>>>7|0){H[a+4>>2]=b;break e}F[a+11|0]=b}F[e+15|0]=0;F[b+d|0]=I[e+15|0];da=e+16|0}}function Ge(a,b,c,d){var e=0,f=0,g=0,h=0;g=da-32|0;da=g;e=d&2147483647;h=e;f=e-1006698496|0;e=e-1140785152|0;a:{if((f|0)==(e|0)&0|e>>>0>f>>>0){e=d<<4|c>>>28;f=c<<4|b>>>28;c=e;b=b&268435455;if((b|0)==134217728&(a|0)!=0|b>>>0>134217728){e=c+1073741824|0;a=f+1|0;e=a?e:e+1|0;f=a;break a}e=c+1073741824|0;if(a|(b|0)!=134217728){break a}b=f&1;a=b+f|0;e=a>>>0>>0?e+1|0:e;f=a;break a}if(!(!c&(h|0)==2147418112?!(a|b):h>>>0<2147418112)){e=c;c=d<<4|e>>>28;f=e<<4|b>>>28;e=c&524287|2146959360;break a}f=0;e=2146435072;if(h>>>0>1140785151){break a}e=0;h=h>>>16|0;if(h>>>0<15249){break a}e=d&65535|65536;Sa(g+16|0,a,b,c,e,h-15233|0);Ib(g,a,b,c,e,15361-h|0);e=H[g+4>>2];h=e;a=H[g+8>>2];c=H[g+12>>2]<<4|a>>>28;f=a<<4|e>>>28;e=c;a=h&268435455;b=H[g>>2]|(H[g+16>>2]|H[g+24>>2]|(H[g+20>>2]|H[g+28>>2]))!=0;if((a|0)==134217728&(b|0)!=0|a>>>0>134217728){a=f+1|0;e=a?e:e+1|0;f=a;break a}if(b|(a|0)!=134217728){break a}a=f+(f&1)|0;e=a>>>0>>0?e+1|0:e;f=a}da=g+32|0;x(0,f|0);x(1,d&-2147483648|e);return+z()}function Va(a,b,c,d,e,f,g){var h=0,i=0,j=0,k=0,l=0;a:{b:{if((e|0)<=(f|0)){if((a|0)==(b|0)){break b}f=g;e=a;while(1){H[f>>2]=H[e>>2];f=f+4|0;e=e+4|0;if((e|0)!=(b|0)){continue}break}if((f|0)==(g|0)){break b}d=H[d>>2];while(1){if((b|0)==(c|0)){xa(a,g,f-g|0);return}c:{e=H[d>>2];h=H[d+4>>2]-e>>3;i=H[b>>2];if(h>>>0<=i>>>0){break c}j=h;h=H[g>>2];if(j>>>0<=h>>>0){break c}d:{if(K[e+(i<<3)>>2]>2]){H[a>>2]=i;b=b+4|0;break d}H[a>>2]=h;g=g+4|0}a=a+4|0;if((f|0)!=(g|0)){continue}break b}break}va();X()}if((b|0)==(c|0)){break b}f=g;e=b;while(1){H[f>>2]=H[e>>2];f=f+4|0;e=e+4|0;if((e|0)!=(c|0)){continue}break}if((f|0)==(g|0)){break b}while(1){if((a|0)==(b|0)){while(1){c=c-4|0;f=f-4|0;H[c>>2]=H[f>>2];if((f|0)!=(g|0)){continue}break b}}i=H[d>>2];e=H[i>>2];h=H[i+4>>2]-e>>3;k=f-4|0;i=H[k>>2];if(h>>>0<=i>>>0){break a}j=h;l=b-4|0;h=H[l>>2];if(j>>>0<=h>>>0){break a}c=c-4|0;e=K[e+(i<<3)>>2]>2];H[c>>2]=e?h:i;b=e?l:b;f=e?f:k;if((g|0)!=(f|0)){continue}break}}return}va();X()}function hj(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0;k=H[a+12>>2];c=H[a+68>>2];d=H[c+80>>2];F[b+84|0]=0;m=b+68|0;i=H[b+68>>2];e=H[b+72>>2]-i>>2;a:{if(e>>>0>>0){La(m,d-e|0,11424);c=H[a+68>>2];d=H[c+80>>2];break a}if(d>>>0>=e>>>0){break a}H[b+72>>2]=i+(d<<2)}b=H[c+100>>2];e=H[c+96>>2];i=(b-e|0)/12|0;b:{if((b|0)==(e|0)){break b}n=1;k=H[k+28>>2];f=H[k>>2];if((f|0)==-1){break b}o=i>>>0>1?i:1;c=e;b=0;while(1){g=H[c>>2];if(g>>>0>=d>>>0){break b}j=H[H[a+72>>2]+12>>2];h=H[j+(f<<2)>>2];if(h>>>0>=d>>>0){break b}f=H[m>>2];H[f+(g<<2)>>2]=h;g=k+(l<<2)|0;h=H[g+4>>2];if((h|0)==-1){break b}l=H[c+4>>2];if(l>>>0>=d>>>0){break b}h=H[(h<<2)+j>>2];if(h>>>0>=d>>>0){break b}H[f+(l<<2)>>2]=h;g=H[g+8>>2];if((g|0)==-1){break b}c=H[c+8>>2];if(c>>>0>=d>>>0){break b}j=H[(g<<2)+j>>2];if(j>>>0>=d>>>0){break b}H[f+(c<<2)>>2]=j;b=b+1|0;n=i>>>0>b>>>0;if((b|0)==(o|0)){break b}c=e+N(b,12)|0;l=N(b,3);f=H[k+(l<<2)>>2];if((f|0)!=-1){continue}break}}return(n^-1)&1}function og(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0;h=H[d+80>>2];e=da-48|0;da=e;a=H[a+4>>2];k=a-31|0;a:{if(k>>>0<4294967267){break a}i=H[H[d>>2]>>2]+H[d+48>>2]|0;H[e+16>>2]=a;a=-1<>2]=a^-1;a=-2-a|0;H[e+24>>2]=a;H[e+32>>2]=(a|0)/2;L[e+28>>2]=O(2)/O(a|0);f=H[c>>2];if((f|0)!=H[c+4>>2]){a=0;d=0;while(1){g=H[(d<<2)+f>>2];h=e+36|0;j=H[H[b>>2]>>2];m=H[b+48>>2];f=H[b+44>>2];l=H[b+40>>2];if(!I[b+84|0]){g=H[H[b+68>>2]+(g<<2)>>2]}g=zl(l,f,g,0)+m|0;sa(h,g+j|0,l);Mf(e+16|0,h,e+12|0,e+8|0);f=a<<2;H[f+i>>2]=H[e+12>>2];H[(f|4)+i>>2]=H[e+8>>2];a=a+2|0;d=d+1|0;f=H[c>>2];if(d>>>0>2]-f>>2>>>0){continue}break}break a}if(!h){break a}d=0;a=0;while(1){j=e+36|0;c=H[H[b>>2]>>2];g=H[b+40>>2];f=H[b+48>>2]+zl(g,H[b+44>>2],I[b+84|0]?a:H[H[b+68>>2]+(a<<2)>>2],0)|0;sa(j,c+f|0,g);Mf(e+16|0,j,e+12|0,e+8|0);c=d<<2;H[c+i>>2]=H[e+12>>2];H[(c|4)+i>>2]=H[e+8>>2];d=d+2|0;a=a+1|0;if((h|0)!=(a|0)){continue}break}}da=e+48|0;return k>>>0>4294967266|0}function wd(a){var b=0,c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0;d=da-32|0;da=d;a:{b=H[a+16>>2];c=H[a+20>>2];if(!!b&(c|0)>=0|(c|0)>0){c=0;e=H[H[a+12>>2]+4>>2]+7|0;c=e>>>0<7?1:c;f=e;e=c>>>3|0;c=c<<29|f>>>3;if(I[a+24|0]){f=H[a+4>>2];H[d>>2]=0;H[d+4>>2]=0;F[d+24|0]=0;H[d+16>>2]=0;H[d+20>>2]=0;H[d+8>>2]=0;H[d+12>>2]=0;yb(c,e,d);e=f-b|0;f=e-8|0;b=H[d+4>>2]-H[d>>2]|0;xa(f+b|0,e,c);sa(f,H[d>>2],b);f=8-b|0;e=f+H[a+16>>2]|0;b=H[a+20>>2];H[a+16>>2]=e;H[a+20>>2]=e>>>0>>0?b+1|0:b;b=H[d+12>>2];H[d+12>>2]=0;if(b){qa(b)}b=H[d>>2];if(b){H[d+4>>2]=b;qa(b)}b=H[a+16>>2]}f=c-b|0;g=H[a+4>>2];c=H[a>>2];e=g-c|0;b=f+e|0;b:{if(b>>>0>e>>>0){h=H[a+8>>2];if(h-g>>>0>=f>>>0){i=a,j=ta(g,0,f)+f|0,H[i+4>>2]=j;break b}if((b|0)<0){break a}g=h-c|0;h=g<<1;h=g>>>0<1073741823?b>>>0>>0?h:b:2147483647;g=ra(h);ta(g+e|0,0,f);if((e|0)>0){sa(g,c,e)}H[a+8>>2]=g+h;H[a+4>>2]=b+g;H[a>>2]=g;if(!c){break b}qa(c);break b}if(b>>>0>=e>>>0){break b}H[a+4>>2]=b+c}H[a+16>>2]=0;H[a+20>>2]=0}da=d+32|0;return}ua();X()}function uj(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0;j=H[a+12>>2];c=H[a+108>>2];d=H[c+80>>2];F[b+84|0]=0;m=b+68|0;h=H[b+68>>2];f=H[b+72>>2]-h>>2;a:{if(f>>>0>>0){La(m,d-f|0,11424);c=H[a+108>>2];d=H[c+80>>2];break a}if(d>>>0>=f>>>0){break a}H[b+72>>2]=h+(d<<2)}b=H[c+100>>2];f=H[c+96>>2];h=(b-f|0)/12|0;b:{if((b|0)==(f|0)){j=0;break b}n=h>>>0>1?h:1;o=H[j>>2];c=f;b=0;j=1;while(1){e=(e<<2)+o|0;i=H[e>>2];if((i|0)==-1){break b}g=H[c>>2];if(g>>>0>=d>>>0){break b}l=H[H[a+112>>2]+12>>2];k=H[l+(i<<2)>>2];if(k>>>0>=d>>>0){break b}i=H[m>>2];H[i+(g<<2)>>2]=k;g=H[e+4>>2];if((g|0)==-1){break b}k=H[c+4>>2];if(k>>>0>=d>>>0){break b}g=H[(g<<2)+l>>2];if(g>>>0>=d>>>0){break b}H[i+(k<<2)>>2]=g;e=H[e+8>>2];if((e|0)==-1){break b}c=H[c+8>>2];if(c>>>0>=d>>>0){break b}e=H[(e<<2)+l>>2];if(e>>>0>=d>>>0){break b}H[i+(c<<2)>>2]=e;b=b+1|0;j=h>>>0>b>>>0;if((b|0)==(n|0)){break b}e=N(b,3);c=f+N(b,12)|0;if((b|0)!=1431655765){continue}break}}return(j^-1)&1}function fg(a,b){var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0;c=da+-64|0;da=c;d=ra(80);i=H[a+8>>2];H[d+12>>2]=0;H[d+16>>2]=0;H[d>>2]=11692;H[d+4>>2]=0;H[d+20>>2]=0;H[d+24>>2]=0;H[d+28>>2]=0;H[d+32>>2]=0;H[d+36>>2]=0;H[d+40>>2]=0;H[d+44>>2]=0;H[d+48>>2]=0;H[d+52>>2]=0;H[d+76>>2]=0;H[d+72>>2]=b;H[d+68>>2]=i;H[d- -64>>2]=0;j=d+56|0;e=j;H[e>>2]=0;H[e+4>>2]=0;H[d+8>>2]=11856;e=H[a+12>>2];H[c+40>>2]=0;H[c+44>>2]=0;H[c+32>>2]=0;H[c+36>>2]=0;f=c+24|0;H[f>>2]=0;H[f+4>>2]=0;H[c+16>>2]=0;H[c+20>>2]=0;H[c+56>>2]=0;H[c+8>>2]=0;H[c+12>>2]=0;H[c+48>>2]=0;H[c+52>>2]=0;H[c>>2]=11856;H[c+4>>2]=e;g=H[e>>2];h=H[e+4>>2];F[c+63|0]=0;k=f;f=c+63|0;Qa(k,(h-g>>2>>>0)/3|0,f);g=H[c+4>>2];h=H[g+28>>2];g=H[g+24>>2];F[c+63|0]=0;Qa(c+36|0,h-g>>2,f);H[c+20>>2]=d;H[c+16>>2]=i;H[c+12>>2]=b;H[c+8>>2]=e;H[d+76>>2]=a+72;Ic(d+8|0,c);Tb(j,H[c+48>>2],H[c+52>>2]);H[c>>2]=11856;a=H[c+48>>2];if(a){H[c+52>>2]=a;qa(a)}H[c>>2]=11672;a=H[c+36>>2];if(a){qa(a)}a=H[c+24>>2];if(a){qa(a)}da=c- -64|0;return d}function mj(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0;j=H[a+12>>2];c=H[a+68>>2];d=H[c+80>>2];F[b+84|0]=0;m=b+68|0;h=H[b+68>>2];f=H[b+72>>2]-h>>2;a:{if(f>>>0>>0){La(m,d-f|0,11424);c=H[a+68>>2];d=H[c+80>>2];break a}if(d>>>0>=f>>>0){break a}H[b+72>>2]=h+(d<<2)}b=H[c+100>>2];f=H[c+96>>2];h=(b-f|0)/12|0;b:{if((b|0)==(f|0)){j=0;break b}n=h>>>0>1?h:1;o=H[j>>2];c=f;b=0;j=1;while(1){e=(e<<2)+o|0;i=H[e>>2];if((i|0)==-1){break b}g=H[c>>2];if(g>>>0>=d>>>0){break b}l=H[H[a+72>>2]+12>>2];k=H[l+(i<<2)>>2];if(k>>>0>=d>>>0){break b}i=H[m>>2];H[i+(g<<2)>>2]=k;g=H[e+4>>2];if((g|0)==-1){break b}k=H[c+4>>2];if(k>>>0>=d>>>0){break b}g=H[(g<<2)+l>>2];if(g>>>0>=d>>>0){break b}H[i+(k<<2)>>2]=g;e=H[e+8>>2];if((e|0)==-1){break b}c=H[c+8>>2];if(c>>>0>=d>>>0){break b}e=H[(e<<2)+l>>2];if(e>>>0>=d>>>0){break b}H[i+(c<<2)>>2]=e;b=b+1|0;j=h>>>0>b>>>0;if((b|0)==(n|0)){break b}e=N(b,3);c=f+N(b,12)|0;if((b|0)!=1431655765){continue}break}}return(j^-1)&1}function mb(a,b,c){var d=0,e=0,f=0,g=0,h=0,i=0,j=0;d=(c>>>0)/3|0;i=H[(H[H[a+8>>2]+96>>2]+N(d,12)|0)+(c-N(d,3)<<2)>>2];e=H[H[a+12>>2]+4>>2];d=H[e+4>>2];a:{if((d|0)!=H[e+8>>2]){H[d>>2]=i;H[e+4>>2]=d+4;break a}b:{h=H[e>>2];g=d-h|0;j=g>>2;d=j+1|0;if(d>>>0<1073741824){f=g>>1;f=g>>>0<2147483644?d>>>0>>0?f:d:1073741823;if(f){if(f>>>0>=1073741824){break b}d=ra(f<<2)}else{d=0}j=d+(j<<2)|0;H[j>>2]=i;if((g|0)>0){sa(d,h,g)}H[e+8>>2]=d+(f<<2);H[e+4>>2]=j+4;H[e>>2]=d;if(h){qa(h)}break a}ua();X()}ya();X()}e=H[a+4>>2];d=H[e+4>>2];c:{d:{e:{if((d|0)!=H[e+8>>2]){H[d>>2]=c;H[e+4>>2]=d+4;break e}h=H[e>>2];g=d-h|0;i=g>>2;d=i+1|0;if(d>>>0>=1073741824){break d}f=g>>1;f=g>>>0<2147483644?d>>>0>>0?f:d:1073741823;if(f){if(f>>>0>=1073741824){break c}d=ra(f<<2)}else{d=0}i=d+(i<<2)|0;H[i>>2]=c;if((g|0)>0){sa(d,h,g)}H[e+8>>2]=d+(f<<2);H[e+4>>2]=i+4;H[e>>2]=d;if(!h){break e}qa(h)}a=H[a+4>>2];H[H[a+12>>2]+(b<<2)>>2]=H[a+24>>2];H[a+24>>2]=H[a+24>>2]+1;return}ua();X()}ya();X()}function Yc(a){var b=0,c=0,d=0,e=0;c=H[a+1176>>2];if(c){d=c;b=H[a+1180>>2];if((c|0)!=(b|0)){while(1){d=b-12|0;e=H[d>>2];if(e){H[b-8>>2]=e;qa(e)}b=d;if((c|0)!=(b|0)){continue}break}d=H[a+1176>>2]}H[a+1180>>2]=c;qa(d)}c=H[a+1164>>2];if(c){d=c;b=H[a+1168>>2];if((c|0)!=(b|0)){while(1){d=b-12|0;e=H[d>>2];if(e){H[b-8>>2]=e;qa(e)}b=d;if((c|0)!=(b|0)){continue}break}d=H[a+1164>>2]}H[a+1168>>2]=c;qa(d)}b=H[a+1152>>2];if(b){H[a+1156>>2]=b;qa(b)}b=H[a+1140>>2];if(b){H[a+1144>>2]=b;qa(b)}b=H[a+1128>>2];if(b){H[a+1132>>2]=b;qa(b)}vb(a+1108|0);vb(a+1088|0);vb(a+1068|0);Aa(a+1036|0);a=a+12|0;Aa(a+992|0);Aa(a+960|0);Aa(a+928|0);Aa(a+896|0);Aa(a+864|0);Aa(a+832|0);Aa(a+800|0);Aa(a+768|0);Aa(a+736|0);Aa(a+704|0);Aa(a+672|0);Aa(a+640|0);Aa(a+608|0);Aa(a+576|0);Aa(a+544|0);Aa(a+512|0);Aa(a+480|0);Aa(a+448|0);Aa(a+416|0);Aa(a+384|0);Aa(a+352|0);Aa(a+320|0);Aa(a+288|0);Aa(a+256|0);Aa(a+224|0);Aa(a+192|0);Aa(a+160|0);Aa(a+128|0);Aa(a+96|0);Aa(a- -64|0);Aa(a+32|0);Aa(a)}function zg(a,b,c,d,e){var f=0,g=0,h=0,i=0,j=0;a:{b:{c:{d:{e:{switch(d|0){case 2:d=H[c>>2];c=H[d>>2];d=H[d+4>>2]-c>>3;g=b-4|0;b=H[g>>2];if(d>>>0<=b>>>0){break d}f=d;d=H[a>>2];if(f>>>0<=d>>>0){break d}if(K[c+(b<<3)>>2]>2]){H[e>>2]=b;H[e+4>>2]=H[a>>2];return}H[e>>2]=d;H[e+4>>2]=H[g>>2];return;default:if((d|0)<=8){Wa(a,b,e,c);return}f=d>>>1|0;h=f<<2;g=h+a|0;ic(a,g,c,f,e,f);d=d-f|0;ic(g,b,c,d,e+h|0,d);c=H[c>>2];d=g;while(1){if((b|0)==(d|0)){if((a|0)==(g|0)){break a}while(1){H[e>>2]=H[a>>2];e=e+4|0;a=a+4|0;if((g|0)!=(a|0)){continue}break}break a}f=H[c>>2];j=H[c+4>>2]-f>>3;h=H[d>>2];if(j>>>0<=h>>>0){break c}i=H[a>>2];if(j>>>0<=i>>>0){break c}f:{if(K[f+(h<<3)>>2]>2]){H[e>>2]=h;d=d+4|0;break f}H[e>>2]=i;a=a+4|0}e=e+4|0;if((a|0)!=(g|0)){continue}break};break b;case 0:break a;case 1:break e}}H[e>>2]=H[a>>2];break a}va();X()}va();X()}if((b|0)==(d|0)){break a}while(1){H[e>>2]=H[d>>2];e=e+4|0;d=d+4|0;if((d|0)!=(b|0)){continue}break}}}function yg(a,b,c,d,e){var f=0,g=0,h=0,i=0,j=0;a:{b:{c:{d:{e:{switch(d|0){case 2:d=H[c>>2];c=H[d>>2];d=H[d+4>>2]-c>>3;g=b-4|0;b=H[g>>2];if(d>>>0<=b>>>0){break d}f=d;d=H[a>>2];if(f>>>0<=d>>>0){break d}if(K[c+(b<<3)>>2]>2]){H[e>>2]=b;H[e+4>>2]=H[a>>2];return}H[e>>2]=d;H[e+4>>2]=H[g>>2];return;default:if((d|0)<=8){Wa(a,b,e,c);return}f=d>>>1|0;h=f<<2;g=h+a|0;hc(a,g,c,f,e,f);d=d-f|0;hc(g,b,c,d,e+h|0,d);c=H[c>>2];d=g;while(1){if((b|0)==(d|0)){if((a|0)==(g|0)){break a}while(1){H[e>>2]=H[a>>2];e=e+4|0;a=a+4|0;if((g|0)!=(a|0)){continue}break}break a}f=H[c>>2];j=H[c+4>>2]-f>>3;h=H[d>>2];if(j>>>0<=h>>>0){break c}i=H[a>>2];if(j>>>0<=i>>>0){break c}f:{if(K[f+(h<<3)>>2]>2]){H[e>>2]=h;d=d+4|0;break f}H[e>>2]=i;a=a+4|0}e=e+4|0;if((a|0)!=(g|0)){continue}break};break b;case 0:break a;case 1:break e}}H[e>>2]=H[a>>2];break a}va();X()}va();X()}if((b|0)==(d|0)){break a}while(1){H[e>>2]=H[d>>2];e=e+4|0;d=d+4|0;if((d|0)!=(b|0)){continue}break}}}function xg(a,b,c,d,e){var f=0,g=0,h=0,i=0,j=0;a:{b:{c:{d:{e:{switch(d|0){case 2:d=H[c>>2];c=H[d>>2];d=H[d+4>>2]-c>>3;g=b-4|0;b=H[g>>2];if(d>>>0<=b>>>0){break d}f=d;d=H[a>>2];if(f>>>0<=d>>>0){break d}if(K[c+(b<<3)>>2]>2]){H[e>>2]=b;H[e+4>>2]=H[a>>2];return}H[e>>2]=d;H[e+4>>2]=H[g>>2];return;default:if((d|0)<=8){Wa(a,b,e,c);return}f=d>>>1|0;h=f<<2;g=h+a|0;gc(a,g,c,f,e,f);d=d-f|0;gc(g,b,c,d,e+h|0,d);c=H[c>>2];d=g;while(1){if((b|0)==(d|0)){if((a|0)==(g|0)){break a}while(1){H[e>>2]=H[a>>2];e=e+4|0;a=a+4|0;if((g|0)!=(a|0)){continue}break}break a}f=H[c>>2];j=H[c+4>>2]-f>>3;h=H[d>>2];if(j>>>0<=h>>>0){break c}i=H[a>>2];if(j>>>0<=i>>>0){break c}f:{if(K[f+(h<<3)>>2]>2]){H[e>>2]=h;d=d+4|0;break f}H[e>>2]=i;a=a+4|0}e=e+4|0;if((a|0)!=(g|0)){continue}break};break b;case 0:break a;case 1:break e}}H[e>>2]=H[a>>2];break a}va();X()}va();X()}if((b|0)==(d|0)){break a}while(1){H[e>>2]=H[d>>2];e=e+4|0;d=d+4|0;if((d|0)!=(b|0)){continue}break}}}function wg(a,b,c,d,e){var f=0,g=0,h=0,i=0,j=0;a:{b:{c:{d:{e:{switch(d|0){case 2:d=H[c>>2];c=H[d>>2];d=H[d+4>>2]-c>>3;g=b-4|0;b=H[g>>2];if(d>>>0<=b>>>0){break d}f=d;d=H[a>>2];if(f>>>0<=d>>>0){break d}if(K[c+(b<<3)>>2]>2]){H[e>>2]=b;H[e+4>>2]=H[a>>2];return}H[e>>2]=d;H[e+4>>2]=H[g>>2];return;default:if((d|0)<=8){Wa(a,b,e,c);return}f=d>>>1|0;h=f<<2;g=h+a|0;fc(a,g,c,f,e,f);d=d-f|0;fc(g,b,c,d,e+h|0,d);c=H[c>>2];d=g;while(1){if((b|0)==(d|0)){if((a|0)==(g|0)){break a}while(1){H[e>>2]=H[a>>2];e=e+4|0;a=a+4|0;if((g|0)!=(a|0)){continue}break}break a}f=H[c>>2];j=H[c+4>>2]-f>>3;h=H[d>>2];if(j>>>0<=h>>>0){break c}i=H[a>>2];if(j>>>0<=i>>>0){break c}f:{if(K[f+(h<<3)>>2]>2]){H[e>>2]=h;d=d+4|0;break f}H[e>>2]=i;a=a+4|0}e=e+4|0;if((a|0)!=(g|0)){continue}break};break b;case 0:break a;case 1:break e}}H[e>>2]=H[a>>2];break a}va();X()}va();X()}if((b|0)==(d|0)){break a}while(1){H[e>>2]=H[d>>2];e=e+4|0;d=d+4|0;if((d|0)!=(b|0)){continue}break}}}function vg(a,b,c,d,e){var f=0,g=0,h=0,i=0,j=0;a:{b:{c:{d:{e:{switch(d|0){case 2:d=H[c>>2];c=H[d>>2];d=H[d+4>>2]-c>>3;g=b-4|0;b=H[g>>2];if(d>>>0<=b>>>0){break d}f=d;d=H[a>>2];if(f>>>0<=d>>>0){break d}if(K[c+(b<<3)>>2]>2]){H[e>>2]=b;H[e+4>>2]=H[a>>2];return}H[e>>2]=d;H[e+4>>2]=H[g>>2];return;default:if((d|0)<=8){Wa(a,b,e,c);return}f=d>>>1|0;h=f<<2;g=h+a|0;ec(a,g,c,f,e,f);d=d-f|0;ec(g,b,c,d,e+h|0,d);c=H[c>>2];d=g;while(1){if((b|0)==(d|0)){if((a|0)==(g|0)){break a}while(1){H[e>>2]=H[a>>2];e=e+4|0;a=a+4|0;if((g|0)!=(a|0)){continue}break}break a}f=H[c>>2];j=H[c+4>>2]-f>>3;h=H[d>>2];if(j>>>0<=h>>>0){break c}i=H[a>>2];if(j>>>0<=i>>>0){break c}f:{if(K[f+(h<<3)>>2]>2]){H[e>>2]=h;d=d+4|0;break f}H[e>>2]=i;a=a+4|0}e=e+4|0;if((a|0)!=(g|0)){continue}break};break b;case 0:break a;case 1:break e}}H[e>>2]=H[a>>2];break a}va();X()}va();X()}if((b|0)==(d|0)){break a}while(1){H[e>>2]=H[d>>2];e=e+4|0;d=d+4|0;if((d|0)!=(b|0)){continue}break}}}function ug(a,b,c,d,e){var f=0,g=0,h=0,i=0,j=0;a:{b:{c:{d:{e:{switch(d|0){case 2:d=H[c>>2];c=H[d>>2];d=H[d+4>>2]-c>>3;g=b-4|0;b=H[g>>2];if(d>>>0<=b>>>0){break d}f=d;d=H[a>>2];if(f>>>0<=d>>>0){break d}if(K[c+(b<<3)>>2]>2]){H[e>>2]=b;H[e+4>>2]=H[a>>2];return}H[e>>2]=d;H[e+4>>2]=H[g>>2];return;default:if((d|0)<=8){Wa(a,b,e,c);return}f=d>>>1|0;h=f<<2;g=h+a|0;dc(a,g,c,f,e,f);d=d-f|0;dc(g,b,c,d,e+h|0,d);c=H[c>>2];d=g;while(1){if((b|0)==(d|0)){if((a|0)==(g|0)){break a}while(1){H[e>>2]=H[a>>2];e=e+4|0;a=a+4|0;if((g|0)!=(a|0)){continue}break}break a}f=H[c>>2];j=H[c+4>>2]-f>>3;h=H[d>>2];if(j>>>0<=h>>>0){break c}i=H[a>>2];if(j>>>0<=i>>>0){break c}f:{if(K[f+(h<<3)>>2]>2]){H[e>>2]=h;d=d+4|0;break f}H[e>>2]=i;a=a+4|0}e=e+4|0;if((a|0)!=(g|0)){continue}break};break b;case 0:break a;case 1:break e}}H[e>>2]=H[a>>2];break a}va();X()}va();X()}if((b|0)==(d|0)){break a}while(1){H[e>>2]=H[d>>2];e=e+4|0;d=d+4|0;if((d|0)!=(b|0)){continue}break}}}function tg(a,b,c,d,e){var f=0,g=0,h=0,i=0,j=0;a:{b:{c:{d:{e:{switch(d|0){case 2:d=H[c>>2];c=H[d>>2];d=H[d+4>>2]-c>>3;g=b-4|0;b=H[g>>2];if(d>>>0<=b>>>0){break d}f=d;d=H[a>>2];if(f>>>0<=d>>>0){break d}if(K[c+(b<<3)>>2]>2]){H[e>>2]=b;H[e+4>>2]=H[a>>2];return}H[e>>2]=d;H[e+4>>2]=H[g>>2];return;default:if((d|0)<=8){Wa(a,b,e,c);return}f=d>>>1|0;h=f<<2;g=h+a|0;cc(a,g,c,f,e,f);d=d-f|0;cc(g,b,c,d,e+h|0,d);c=H[c>>2];d=g;while(1){if((b|0)==(d|0)){if((a|0)==(g|0)){break a}while(1){H[e>>2]=H[a>>2];e=e+4|0;a=a+4|0;if((g|0)!=(a|0)){continue}break}break a}f=H[c>>2];j=H[c+4>>2]-f>>3;h=H[d>>2];if(j>>>0<=h>>>0){break c}i=H[a>>2];if(j>>>0<=i>>>0){break c}f:{if(K[f+(h<<3)>>2]>2]){H[e>>2]=h;d=d+4|0;break f}H[e>>2]=i;a=a+4|0}e=e+4|0;if((a|0)!=(g|0)){continue}break};break b;case 0:break a;case 1:break e}}H[e>>2]=H[a>>2];break a}va();X()}va();X()}if((b|0)==(d|0)){break a}while(1){H[e>>2]=H[d>>2];e=e+4|0;d=d+4|0;if((d|0)!=(b|0)){continue}break}}}function sg(a,b,c,d,e){var f=0,g=0,h=0,i=0,j=0;a:{b:{c:{d:{e:{switch(d|0){case 2:d=H[c>>2];c=H[d>>2];d=H[d+4>>2]-c>>3;g=b-4|0;b=H[g>>2];if(d>>>0<=b>>>0){break d}f=d;d=H[a>>2];if(f>>>0<=d>>>0){break d}if(K[c+(b<<3)>>2]>2]){H[e>>2]=b;H[e+4>>2]=H[a>>2];return}H[e>>2]=d;H[e+4>>2]=H[g>>2];return;default:if((d|0)<=8){Wa(a,b,e,c);return}f=d>>>1|0;h=f<<2;g=h+a|0;bc(a,g,c,f,e,f);d=d-f|0;bc(g,b,c,d,e+h|0,d);c=H[c>>2];d=g;while(1){if((b|0)==(d|0)){if((a|0)==(g|0)){break a}while(1){H[e>>2]=H[a>>2];e=e+4|0;a=a+4|0;if((g|0)!=(a|0)){continue}break}break a}f=H[c>>2];j=H[c+4>>2]-f>>3;h=H[d>>2];if(j>>>0<=h>>>0){break c}i=H[a>>2];if(j>>>0<=i>>>0){break c}f:{if(K[f+(h<<3)>>2]>2]){H[e>>2]=h;d=d+4|0;break f}H[e>>2]=i;a=a+4|0}e=e+4|0;if((a|0)!=(g|0)){continue}break};break b;case 0:break a;case 1:break e}}H[e>>2]=H[a>>2];break a}va();X()}va();X()}if((b|0)==(d|0)){break a}while(1){H[e>>2]=H[d>>2];e=e+4|0;d=d+4|0;if((d|0)!=(b|0)){continue}break}}}function rg(a,b,c,d,e){var f=0,g=0,h=0,i=0,j=0;a:{b:{c:{d:{e:{switch(d|0){case 2:d=H[c>>2];c=H[d>>2];d=H[d+4>>2]-c>>3;g=b-4|0;b=H[g>>2];if(d>>>0<=b>>>0){break d}f=d;d=H[a>>2];if(f>>>0<=d>>>0){break d}if(K[c+(b<<3)>>2]>2]){H[e>>2]=b;H[e+4>>2]=H[a>>2];return}H[e>>2]=d;H[e+4>>2]=H[g>>2];return;default:if((d|0)<=8){Wa(a,b,e,c);return}f=d>>>1|0;h=f<<2;g=h+a|0;ac(a,g,c,f,e,f);d=d-f|0;ac(g,b,c,d,e+h|0,d);c=H[c>>2];d=g;while(1){if((b|0)==(d|0)){if((a|0)==(g|0)){break a}while(1){H[e>>2]=H[a>>2];e=e+4|0;a=a+4|0;if((g|0)!=(a|0)){continue}break}break a}f=H[c>>2];j=H[c+4>>2]-f>>3;h=H[d>>2];if(j>>>0<=h>>>0){break c}i=H[a>>2];if(j>>>0<=i>>>0){break c}f:{if(K[f+(h<<3)>>2]>2]){H[e>>2]=h;d=d+4|0;break f}H[e>>2]=i;a=a+4|0}e=e+4|0;if((a|0)!=(g|0)){continue}break};break b;case 0:break a;case 1:break e}}H[e>>2]=H[a>>2];break a}va();X()}va();X()}if((b|0)==(d|0)){break a}while(1){H[e>>2]=H[d>>2];e=e+4|0;d=d+4|0;if((d|0)!=(b|0)){continue}break}}}function qg(a,b,c,d,e){var f=0,g=0,h=0,i=0,j=0;a:{b:{c:{d:{e:{switch(d|0){case 2:d=H[c>>2];c=H[d>>2];d=H[d+4>>2]-c>>3;g=b-4|0;b=H[g>>2];if(d>>>0<=b>>>0){break d}f=d;d=H[a>>2];if(f>>>0<=d>>>0){break d}if(K[c+(b<<3)>>2]>2]){H[e>>2]=b;H[e+4>>2]=H[a>>2];return}H[e>>2]=d;H[e+4>>2]=H[g>>2];return;default:if((d|0)<=8){Wa(a,b,e,c);return}f=d>>>1|0;h=f<<2;g=h+a|0;$b(a,g,c,f,e,f);d=d-f|0;$b(g,b,c,d,e+h|0,d);c=H[c>>2];d=g;while(1){if((b|0)==(d|0)){if((a|0)==(g|0)){break a}while(1){H[e>>2]=H[a>>2];e=e+4|0;a=a+4|0;if((g|0)!=(a|0)){continue}break}break a}f=H[c>>2];j=H[c+4>>2]-f>>3;h=H[d>>2];if(j>>>0<=h>>>0){break c}i=H[a>>2];if(j>>>0<=i>>>0){break c}f:{if(K[f+(h<<3)>>2]>2]){H[e>>2]=h;d=d+4|0;break f}H[e>>2]=i;a=a+4|0}e=e+4|0;if((a|0)!=(g|0)){continue}break};break b;case 0:break a;case 1:break e}}H[e>>2]=H[a>>2];break a}va();X()}va();X()}if((b|0)==(d|0)){break a}while(1){H[e>>2]=H[d>>2];e=e+4|0;d=d+4|0;if((d|0)!=(b|0)){continue}break}}}function pg(a,b,c,d,e){var f=0,g=0,h=0,i=0,j=0;a:{b:{c:{d:{e:{switch(d|0){case 2:d=H[c>>2];c=H[d>>2];d=H[d+4>>2]-c>>3;g=b-4|0;b=H[g>>2];if(d>>>0<=b>>>0){break d}f=d;d=H[a>>2];if(f>>>0<=d>>>0){break d}if(K[c+(b<<3)>>2]>2]){H[e>>2]=b;H[e+4>>2]=H[a>>2];return}H[e>>2]=d;H[e+4>>2]=H[g>>2];return;default:if((d|0)<=8){Wa(a,b,e,c);return}f=d>>>1|0;h=f<<2;g=h+a|0;_b(a,g,c,f,e,f);d=d-f|0;_b(g,b,c,d,e+h|0,d);c=H[c>>2];d=g;while(1){if((b|0)==(d|0)){if((a|0)==(g|0)){break a}while(1){H[e>>2]=H[a>>2];e=e+4|0;a=a+4|0;if((g|0)!=(a|0)){continue}break}break a}f=H[c>>2];j=H[c+4>>2]-f>>3;h=H[d>>2];if(j>>>0<=h>>>0){break c}i=H[a>>2];if(j>>>0<=i>>>0){break c}f:{if(K[f+(h<<3)>>2]>2]){H[e>>2]=h;d=d+4|0;break f}H[e>>2]=i;a=a+4|0}e=e+4|0;if((a|0)!=(g|0)){continue}break};break b;case 0:break a;case 1:break e}}H[e>>2]=H[a>>2];break a}va();X()}va();X()}if((b|0)==(d|0)){break a}while(1){H[e>>2]=H[d>>2];e=e+4|0;d=d+4|0;if((d|0)!=(b|0)){continue}break}}}function ng(a,b,c,d,e){var f=0,g=0,h=0,i=0,j=0;a:{b:{c:{d:{e:{switch(d|0){case 2:d=H[c>>2];c=H[d>>2];d=H[d+4>>2]-c>>3;g=b-4|0;b=H[g>>2];if(d>>>0<=b>>>0){break d}f=d;d=H[a>>2];if(f>>>0<=d>>>0){break d}if(K[c+(b<<3)>>2]>2]){H[e>>2]=b;H[e+4>>2]=H[a>>2];return}H[e>>2]=d;H[e+4>>2]=H[g>>2];return;default:if((d|0)<=8){Wa(a,b,e,c);return}f=d>>>1|0;h=f<<2;g=h+a|0;Zb(a,g,c,f,e,f);d=d-f|0;Zb(g,b,c,d,e+h|0,d);c=H[c>>2];d=g;while(1){if((b|0)==(d|0)){if((a|0)==(g|0)){break a}while(1){H[e>>2]=H[a>>2];e=e+4|0;a=a+4|0;if((g|0)!=(a|0)){continue}break}break a}f=H[c>>2];j=H[c+4>>2]-f>>3;h=H[d>>2];if(j>>>0<=h>>>0){break c}i=H[a>>2];if(j>>>0<=i>>>0){break c}f:{if(K[f+(h<<3)>>2]>2]){H[e>>2]=h;d=d+4|0;break f}H[e>>2]=i;a=a+4|0}e=e+4|0;if((a|0)!=(g|0)){continue}break};break b;case 0:break a;case 1:break e}}H[e>>2]=H[a>>2];break a}va();X()}va();X()}if((b|0)==(d|0)){break a}while(1){H[e>>2]=H[d>>2];e=e+4|0;d=d+4|0;if((d|0)!=(b|0)){continue}break}}}function mg(a,b,c,d,e){var f=0,g=0,h=0,i=0,j=0;a:{b:{c:{d:{e:{switch(d|0){case 2:d=H[c>>2];c=H[d>>2];d=H[d+4>>2]-c>>3;g=b-4|0;b=H[g>>2];if(d>>>0<=b>>>0){break d}f=d;d=H[a>>2];if(f>>>0<=d>>>0){break d}if(K[c+(b<<3)>>2]>2]){H[e>>2]=b;H[e+4>>2]=H[a>>2];return}H[e>>2]=d;H[e+4>>2]=H[g>>2];return;default:if((d|0)<=8){Wa(a,b,e,c);return}f=d>>>1|0;h=f<<2;g=h+a|0;Yb(a,g,c,f,e,f);d=d-f|0;Yb(g,b,c,d,e+h|0,d);c=H[c>>2];d=g;while(1){if((b|0)==(d|0)){if((a|0)==(g|0)){break a}while(1){H[e>>2]=H[a>>2];e=e+4|0;a=a+4|0;if((g|0)!=(a|0)){continue}break}break a}f=H[c>>2];j=H[c+4>>2]-f>>3;h=H[d>>2];if(j>>>0<=h>>>0){break c}i=H[a>>2];if(j>>>0<=i>>>0){break c}f:{if(K[f+(h<<3)>>2]>2]){H[e>>2]=h;d=d+4|0;break f}H[e>>2]=i;a=a+4|0}e=e+4|0;if((a|0)!=(g|0)){continue}break};break b;case 0:break a;case 1:break e}}H[e>>2]=H[a>>2];break a}va();X()}va();X()}if((b|0)==(d|0)){break a}while(1){H[e>>2]=H[d>>2];e=e+4|0;d=d+4|0;if((d|0)!=(b|0)){continue}break}}}function lg(a,b,c,d,e){var f=0,g=0,h=0,i=0,j=0;a:{b:{c:{d:{e:{switch(d|0){case 2:d=H[c>>2];c=H[d>>2];d=H[d+4>>2]-c>>3;g=b-4|0;b=H[g>>2];if(d>>>0<=b>>>0){break d}f=d;d=H[a>>2];if(f>>>0<=d>>>0){break d}if(K[c+(b<<3)>>2]>2]){H[e>>2]=b;H[e+4>>2]=H[a>>2];return}H[e>>2]=d;H[e+4>>2]=H[g>>2];return;default:if((d|0)<=8){Wa(a,b,e,c);return}f=d>>>1|0;h=f<<2;g=h+a|0;Xb(a,g,c,f,e,f);d=d-f|0;Xb(g,b,c,d,e+h|0,d);c=H[c>>2];d=g;while(1){if((b|0)==(d|0)){if((a|0)==(g|0)){break a}while(1){H[e>>2]=H[a>>2];e=e+4|0;a=a+4|0;if((g|0)!=(a|0)){continue}break}break a}f=H[c>>2];j=H[c+4>>2]-f>>3;h=H[d>>2];if(j>>>0<=h>>>0){break c}i=H[a>>2];if(j>>>0<=i>>>0){break c}f:{if(K[f+(h<<3)>>2]>2]){H[e>>2]=h;d=d+4|0;break f}H[e>>2]=i;a=a+4|0}e=e+4|0;if((a|0)!=(g|0)){continue}break};break b;case 0:break a;case 1:break e}}H[e>>2]=H[a>>2];break a}va();X()}va();X()}if((b|0)==(d|0)){break a}while(1){H[e>>2]=H[d>>2];e=e+4|0;d=d+4|0;if((d|0)!=(b|0)){continue}break}}}function kg(a,b,c,d,e){var f=0,g=0,h=0,i=0,j=0;a:{b:{c:{d:{e:{switch(d|0){case 2:d=H[c>>2];c=H[d>>2];d=H[d+4>>2]-c>>3;g=b-4|0;b=H[g>>2];if(d>>>0<=b>>>0){break d}f=d;d=H[a>>2];if(f>>>0<=d>>>0){break d}if(K[c+(b<<3)>>2]>2]){H[e>>2]=b;H[e+4>>2]=H[a>>2];return}H[e>>2]=d;H[e+4>>2]=H[g>>2];return;default:if((d|0)<=8){Wa(a,b,e,c);return}f=d>>>1|0;h=f<<2;g=h+a|0;Wb(a,g,c,f,e,f);d=d-f|0;Wb(g,b,c,d,e+h|0,d);c=H[c>>2];d=g;while(1){if((b|0)==(d|0)){if((a|0)==(g|0)){break a}while(1){H[e>>2]=H[a>>2];e=e+4|0;a=a+4|0;if((g|0)!=(a|0)){continue}break}break a}f=H[c>>2];j=H[c+4>>2]-f>>3;h=H[d>>2];if(j>>>0<=h>>>0){break c}i=H[a>>2];if(j>>>0<=i>>>0){break c}f:{if(K[f+(h<<3)>>2]>2]){H[e>>2]=h;d=d+4|0;break f}H[e>>2]=i;a=a+4|0}e=e+4|0;if((a|0)!=(g|0)){continue}break};break b;case 0:break a;case 1:break e}}H[e>>2]=H[a>>2];break a}va();X()}va();X()}if((b|0)==(d|0)){break a}while(1){H[e>>2]=H[d>>2];e=e+4|0;d=d+4|0;if((d|0)!=(b|0)){continue}break}}}function jg(a,b,c,d,e){var f=0,g=0,h=0,i=0,j=0;a:{b:{c:{d:{e:{switch(d|0){case 2:d=H[c>>2];c=H[d>>2];d=H[d+4>>2]-c>>3;g=b-4|0;b=H[g>>2];if(d>>>0<=b>>>0){break d}f=d;d=H[a>>2];if(f>>>0<=d>>>0){break d}if(K[c+(b<<3)>>2]>2]){H[e>>2]=b;H[e+4>>2]=H[a>>2];return}H[e>>2]=d;H[e+4>>2]=H[g>>2];return;default:if((d|0)<=8){Wa(a,b,e,c);return}f=d>>>1|0;h=f<<2;g=h+a|0;Vb(a,g,c,f,e,f);d=d-f|0;Vb(g,b,c,d,e+h|0,d);c=H[c>>2];d=g;while(1){if((b|0)==(d|0)){if((a|0)==(g|0)){break a}while(1){H[e>>2]=H[a>>2];e=e+4|0;a=a+4|0;if((g|0)!=(a|0)){continue}break}break a}f=H[c>>2];j=H[c+4>>2]-f>>3;h=H[d>>2];if(j>>>0<=h>>>0){break c}i=H[a>>2];if(j>>>0<=i>>>0){break c}f:{if(K[f+(h<<3)>>2]>2]){H[e>>2]=h;d=d+4|0;break f}H[e>>2]=i;a=a+4|0}e=e+4|0;if((a|0)!=(g|0)){continue}break};break b;case 0:break a;case 1:break e}}H[e>>2]=H[a>>2];break a}va();X()}va();X()}if((b|0)==(d|0)){break a}while(1){H[e>>2]=H[d>>2];e=e+4|0;d=d+4|0;if((d|0)!=(b|0)){continue}break}}}function ig(a,b,c,d,e){var f=0,g=0,h=0,i=0,j=0;a:{b:{c:{d:{e:{switch(d|0){case 2:d=H[c>>2];c=H[d>>2];d=H[d+4>>2]-c>>3;g=b-4|0;b=H[g>>2];if(d>>>0<=b>>>0){break d}f=d;d=H[a>>2];if(f>>>0<=d>>>0){break d}if(K[c+(b<<3)>>2]>2]){H[e>>2]=b;H[e+4>>2]=H[a>>2];return}H[e>>2]=d;H[e+4>>2]=H[g>>2];return;default:if((d|0)<=8){Wa(a,b,e,c);return}f=d>>>1|0;h=f<<2;g=h+a|0;Ub(a,g,c,f,e,f);d=d-f|0;Ub(g,b,c,d,e+h|0,d);c=H[c>>2];d=g;while(1){if((b|0)==(d|0)){if((a|0)==(g|0)){break a}while(1){H[e>>2]=H[a>>2];e=e+4|0;a=a+4|0;if((g|0)!=(a|0)){continue}break}break a}f=H[c>>2];j=H[c+4>>2]-f>>3;h=H[d>>2];if(j>>>0<=h>>>0){break c}i=H[a>>2];if(j>>>0<=i>>>0){break c}f:{if(K[f+(h<<3)>>2]>2]){H[e>>2]=h;d=d+4|0;break f}H[e>>2]=i;a=a+4|0}e=e+4|0;if((a|0)!=(g|0)){continue}break};break b;case 0:break a;case 1:break e}}H[e>>2]=H[a>>2];break a}va();X()}va();X()}if((b|0)==(d|0)){break a}while(1){H[e>>2]=H[d>>2];e=e+4|0;d=d+4|0;if((d|0)!=(b|0)){continue}break}}}function Ag(a,b,c,d,e){var f=0,g=0,h=0,i=0,j=0;a:{b:{c:{d:{e:{switch(d|0){case 2:d=H[c>>2];c=H[d>>2];d=H[d+4>>2]-c>>3;g=b-4|0;b=H[g>>2];if(d>>>0<=b>>>0){break d}f=d;d=H[a>>2];if(f>>>0<=d>>>0){break d}if(K[c+(b<<3)>>2]>2]){H[e>>2]=b;H[e+4>>2]=H[a>>2];return}H[e>>2]=d;H[e+4>>2]=H[g>>2];return;default:if((d|0)<=8){Wa(a,b,e,c);return}f=d>>>1|0;h=f<<2;g=h+a|0;jc(a,g,c,f,e,f);d=d-f|0;jc(g,b,c,d,e+h|0,d);c=H[c>>2];d=g;while(1){if((b|0)==(d|0)){if((a|0)==(g|0)){break a}while(1){H[e>>2]=H[a>>2];e=e+4|0;a=a+4|0;if((g|0)!=(a|0)){continue}break}break a}f=H[c>>2];j=H[c+4>>2]-f>>3;h=H[d>>2];if(j>>>0<=h>>>0){break c}i=H[a>>2];if(j>>>0<=i>>>0){break c}f:{if(K[f+(h<<3)>>2]>2]){H[e>>2]=h;d=d+4|0;break f}H[e>>2]=i;a=a+4|0}e=e+4|0;if((a|0)!=(g|0)){continue}break};break b;case 0:break a;case 1:break e}}H[e>>2]=H[a>>2];break a}va();X()}va();X()}if((b|0)==(d|0)){break a}while(1){H[e>>2]=H[d>>2];e=e+4|0;d=d+4|0;if((d|0)!=(b|0)){continue}break}}}function Zi(a){a=a|0;var b=0,c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0;b=H[a+4>>2];b=H[b+12>>2]-H[b+8>>2]|0;a:{if((b|0)>0){while(1){if(fa[H[H[a>>2]+36>>2]](a,c)|0){b=H[a+4>>2];b=H[b+12>>2]-H[b+8>>2]>>2;c=c+1|0;if((b|0)>(c|0)){continue}break a}break}return 0}b=b>>2}c=a+20|0;d=H[a+20>>2];e=H[a+24>>2]-d>>2;b:{if(e>>>0>>0){Fa(c,b-e|0);break b}if(b>>>0>=e>>>0){break b}H[a+24>>2]=d+(b<<2)}f=H[a+8>>2];a=H[a+12>>2];if((f|0)==(a|0)){return 1}a=a-f>>2;j=a>>>0>1?a:1;e=H[c>>2];c=0;while(1){a=H[(c<<2)+f>>2];d=H[a+8>>2];b=H[a+4>>2];c:{if((d|0)==(b|0)){break c}a=d-b>>2;d=a>>>0>1?a:1;i=d&3;g=0;a=0;if(d-1>>>0>=3){k=d&-4;h=0;while(1){d=a<<2;H[e+(H[d+b>>2]<<2)>>2]=c;H[e+(H[b+(d|4)>>2]<<2)>>2]=c;H[e+(H[b+(d|8)>>2]<<2)>>2]=c;H[e+(H[b+(d|12)>>2]<<2)>>2]=c;a=a+4|0;h=h+4|0;if((k|0)!=(h|0)){continue}break}}if(!i){break c}while(1){H[e+(H[b+(a<<2)>>2]<<2)>>2]=c;a=a+1|0;g=g+1|0;if((g|0)!=(i|0)){continue}break}}c=c+1|0;if((j|0)!=(c|0)){continue}break}return 1}function ie(a,b){var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0;a:{c=H[a+8>>2];b:{if((c|0)!=H[a+12>>2]){e=c;break b}d=H[a+4>>2];g=H[a>>2];if(d>>>0>g>>>0){f=c-d|0;g=((d-g>>2)+1|0)/-2<<2;e=g+d|0;if((c|0)!=(d|0)){xa(e,d,f);c=H[a+4>>2]}e=e+f|0;H[a+8>>2]=e;H[a+4>>2]=c+g;break b}f=(c|0)==(g|0)?1:c-g>>1;if(f>>>0>=1073741824){break a}e=f<<2;h=ra(e);k=h+e|0;f=(f&-4)+h|0;e=f;c:{if((c|0)==(d|0)){break c}c=c-d|0;l=c&-4;i=c-4|0;j=(i>>>2|0)+1&7;d:{if(!j){c=f;break d}e=0;c=f;while(1){H[c>>2]=H[d>>2];d=d+4|0;c=c+4|0;e=e+1|0;if((j|0)!=(e|0)){continue}break}}e=f+l|0;if(i>>>0<28){break c}while(1){H[c>>2]=H[d>>2];H[c+4>>2]=H[d+4>>2];H[c+8>>2]=H[d+8>>2];H[c+12>>2]=H[d+12>>2];H[c+16>>2]=H[d+16>>2];H[c+20>>2]=H[d+20>>2];H[c+24>>2]=H[d+24>>2];H[c+28>>2]=H[d+28>>2];d=d+32|0;c=c+32|0;if((e|0)!=(c|0)){continue}break}}H[a+12>>2]=k;H[a+8>>2]=e;H[a+4>>2]=f;H[a>>2]=h;if(!g){break b}qa(g);e=H[a+8>>2]}H[e>>2]=H[b>>2];H[a+8>>2]=H[a+8>>2]+4;return}ya();X()}function he(a,b){var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0;a:{f=H[a+4>>2];b:{if((f|0)!=H[a>>2]){c=f;break b}g=H[a+8>>2];c=H[a+12>>2];if(g>>>0>>0){e=((c-g>>2)+1|0)/2<<2;c=e+g|0;if((f|0)!=(g|0)){d=g-f|0;c=c-d|0;xa(c,f,d);f=H[a+8>>2]}H[a+4>>2]=c;H[a+8>>2]=e+f;break b}d=(c|0)==(f|0)?1:c-f>>1;if(d>>>0>=1073741824){break a}c=d<<2;i=ra(c);k=i+c|0;c=(d+3&-4)+i|0;h=c;c:{if((f|0)==(g|0)){break c}g=g-f|0;l=g&-4;e=c;d=f;j=g-4|0;g=(j>>>2|0)+1&7;if(g){h=0;while(1){H[e>>2]=H[d>>2];d=d+4|0;e=e+4|0;h=h+1|0;if((g|0)!=(h|0)){continue}break}}h=c+l|0;if(j>>>0<28){break c}while(1){H[e>>2]=H[d>>2];H[e+4>>2]=H[d+4>>2];H[e+8>>2]=H[d+8>>2];H[e+12>>2]=H[d+12>>2];H[e+16>>2]=H[d+16>>2];H[e+20>>2]=H[d+20>>2];H[e+24>>2]=H[d+24>>2];H[e+28>>2]=H[d+28>>2];d=d+32|0;e=e+32|0;if((h|0)!=(e|0)){continue}break}}H[a+12>>2]=k;H[a+8>>2]=h;H[a+4>>2]=c;H[a>>2]=i;if(!f){break b}qa(f);c=H[a+4>>2]}H[c-4>>2]=H[b>>2];H[a+4>>2]=H[a+4>>2]-4;return}ya();X()}function tj(a){a=a|0;var b=0,c=0,d=0,e=0,f=0,g=0,h=0;g=da-16|0;da=g;b=H[a+4>>2];d=H[b>>2];a:{c=H[a+12>>2];c=H[c+28>>2]-H[c+24>>2]|0;e=c>>2;b:{if(e>>>0<=H[b+8>>2]-d>>2>>>0){break b}if((c|0)<0){break a}f=H[b+4>>2];c=ra(c);h=c+(e<<2)|0;e=f-d|0;f=e+c|0;if((e|0)>0){sa(c,d,e)}H[b+8>>2]=h;H[b+4>>2]=f;H[b>>2]=c;if(!d){break b}qa(d)}b=H[a+12>>2];d=H[b+28>>2];b=H[b+24>>2];H[g+12>>2]=0;b=d-b>>2;c=a+96|0;e=H[c>>2];d=H[a+100>>2]-e>>2;c:{if(b>>>0>d>>>0){La(c,b-d|0,g+12|0);break c}if(b>>>0>=d>>>0){break c}H[a+100>>2]=e+(b<<2)}e=a+8|0;b=H[a+116>>2];d:{if(b){c=H[b>>2];if((c|0)==H[b+4>>2]){d=1;break d}b=0;while(1){d=Qf(e,H[(b<<2)+c>>2]);if(!d){break d}f=H[a+116>>2];c=H[f>>2];b=b+1|0;if(b>>>0>2]-c>>2>>>0){continue}break}break d}d=1;a=H[a+12>>2];a=H[a+4>>2]-H[a>>2]|0;if(a>>>0<12){break d}a=(a>>2>>>0)/3|0;b=0;while(1){d=Qf(e,N(b,3));if(!d){break d}b=b+1|0;if((a|0)!=(b|0)){continue}break}}da=g+16|0;return d|0}ua();X()}function nd(a,b,c){var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0;f=c-b|0;e=H[a+8>>2];d=H[a>>2];if(f>>>0<=e-d>>>0){h=H[a+4>>2]-d|0;e=h+b|0;g=f>>>0>h>>>0?e:c;a:{if((g|0)==(b|0)){break a}k=(b^-1)+g|0;i=g-b&7;if(i){while(1){F[d|0]=I[b|0];d=d+1|0;b=b+1|0;j=j+1|0;if((j|0)!=(i|0)){continue}break}}if(k>>>0<7){break a}while(1){F[d|0]=I[b|0];F[d+1|0]=I[b+1|0];F[d+2|0]=I[b+2|0];F[d+3|0]=I[b+3|0];F[d+4|0]=I[b+4|0];F[d+5|0]=I[b+5|0];F[d+6|0]=I[b+6|0];F[d+7|0]=I[b+7|0];d=d+8|0;b=b+8|0;if((g|0)!=(b|0)){continue}break}}if(f>>>0>h>>>0){b=H[a+4>>2];if((c|0)!=(g|0)){while(1){F[b|0]=I[e|0];b=b+1|0;e=e+1|0;if((e|0)!=(c|0)){continue}break}}H[a+4>>2]=b;return}H[a+4>>2]=d;return}if(d){H[a+4>>2]=d;qa(d);H[a+8>>2]=0;H[a>>2]=0;H[a+4>>2]=0;e=0}b:{if((f|0)<0){break b}d=e<<1;e=e>>>0<1073741823?d>>>0>f>>>0?d:f:2147483647;if((e|0)<0){break b}d=ra(e);H[a>>2]=d;H[a+4>>2]=d;H[a+8>>2]=d+e;if((b|0)!=(c|0)){d=sa(d,b,f)+f|0}H[a+4>>2]=d;return}ua();X()}function _j(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0;f=H[a+12>>2];h=H[a+8>>2];d=f-h>>2;b=F[b+24|0];a:{if(d>>>0>>0){Fa(a+8|0,b-d|0);h=H[a+8>>2];f=H[a+12>>2];break a}if(b>>>0>=d>>>0){break a}f=(b<<2)+h|0;H[a+12>>2]=f}b=0;i=H[c+20>>2];e=H[c+16>>2];d=f-h|0;f=d;g=e+d|0;j=H[c+12>>2];i=d>>>0>g>>>0?i+1|0:i;b:{if(g>>>0>K[c+8>>2]&(j|0)<=(i|0)|(i|0)>(j|0)){break b}sa(h,e+H[c>>2]|0,d);d=H[c+20>>2];e=f+H[c+16>>2]|0;d=e>>>0>>0?d+1|0:d;g=e;H[c+16>>2]=e;H[c+20>>2]=d;e=H[c+12>>2];f=g+4|0;d=f>>>0<4?d+1|0:d;if(f>>>0>K[c+8>>2]&(d|0)>=(e|0)|(d|0)>(e|0)){break b}d=g+H[c>>2]|0;H[a+20>>2]=I[d|0]|I[d+1|0]<<8|(I[d+2|0]<<16|I[d+3|0]<<24);d=H[c+20>>2];g=H[c+16>>2];e=g+4|0;f=e>>>0<4?d+1|0:d;j=e;H[c+16>>2]=e;H[c+20>>2]=f;e=H[c+12>>2];if((f|0)>=(e|0)&j>>>0>=K[c+8>>2]|(f|0)>(e|0)){break b}e=I[j+H[c>>2]|0];f=g+5|0;d=f>>>0<5?d+1|0:d;H[c+16>>2]=f;H[c+20>>2]=d;if(e-1>>>0>29){break b}H[a+4>>2]=e;b=1}return b|0}function qc(a,b){var c=0,d=0,e=0,f=0,g=0,h=0,i=0;e=da-32|0;da=e;f=H[b>>2]+H[a+40>>2]|0;d=H[a+32>>2];c=d-4194304|0;a:{if(c>>>0<=63){F[H[a+24>>2]+H[a+28>>2]|0]=c;c=H[a+28>>2]+1|0;break a}if(c>>>0<=16383){c=H[a+24>>2]+H[a+28>>2]|0;d=d-4177920|0;F[c|0]=d;F[c+1|0]=d>>>8;c=H[a+28>>2]+2|0;break a}if(c>>>0<=4194303){c=H[a+24>>2]+H[a+28>>2]|0;d=d+4194304|0;F[c+2|0]=d>>>16;F[c+1|0]=d>>>8;F[c|0]=d;c=H[a+28>>2]+3|0;break a}if(c>>>0<=1073741823){c=H[a+24>>2]+H[a+28>>2]|0;d=d-1077936128|0;F[c|0]=d;F[c+1|0]=d>>>8;F[c+2|0]=d>>>16;F[c+3|0]=d>>>24;c=H[a+28>>2]+4|0;break a}c=H[a+28>>2]}H[e>>2]=0;H[e+4>>2]=0;F[e+24|0]=0;H[e+16>>2]=0;H[e+20>>2]=0;H[e+8>>2]=0;H[e+12>>2]=0;h=c;d=c>>31;yb(c,d,e);g=H[e+4>>2]-H[e>>2]|0;xa(g+f|0,f,c);sa(f,H[e>>2],g);c=H[a+44>>2];f=b;i=H[a+40>>2];a=d;b=h+g|0;a=b>>>0>>0?a+1|0:a;d=b;b=i+d|0;Ma(f,b);a=H[e+12>>2];H[e+12>>2]=0;if(a){qa(a)}a=H[e>>2];if(a){H[e+4>>2]=a;qa(a)}da=e+32|0}function Mf(a,b,c,d){var e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0;j=+L[b>>2];k=+L[b+4>>2];l=+L[b+8>>2];g=P(j)+P(k)+P(l);a:{if(!(g>1e-6)){j=1;k=0;e=0;break a}g=1/g;k=g*k;j=g*j;e=g*l<0}h=H[a+16>>2];l=+(h|0);g=T(j*l+.5);b:{if(P(g)<2147483648){m=~~g;break b}m=-2147483648}f=m>>31;i=(f^m)-f|0;g=T(k*l+.5);c:{if(P(g)<2147483648){f=~~g;break c}f=-2147483648}b=f>>31;b=h-(i+((f^b)-b|0)|0)|0;i=(b|0)>0?b:0;e=e?0-i|0:i;f=f+(b>>31&((f|0)>0?b:0-b|0))|0;d:{if((m|0)>=0){b=e+h|0;a=H[a+8>>2];e=h+f|0;break d}b=f>>31;b=(b^f)-b|0;a=H[a+8>>2];b=(e|0)<0?b:a-b|0;e=(f|0)<0?i:a-i|0}e:{if(!(b|e)){b=a;break e}if(!((a|0)!=(b|0)|e)){b=a;break e}if(!((a|0)!=(e|0)|b)){b=a;break e}if(!((b|0)<=(h|0)|e)){b=(h<<1)-b|0;a=0;break e}if(!((a|0)!=(e|0)|(b|0)>=(h|0))){b=(h<<1)-b|0;break e}if(!((a|0)!=(b|0)|(e|0)>=(h|0))){b=a;a=(h<<1)-e|0;break e}if(b){a=e;break e}b=0;if((e|0)<=(h|0)){a=e;break e}a=(h<<1)-e|0}H[c>>2]=a;H[d>>2]=b}function zb(a,b){var c=0,d=0,e=0,f=0,g=0,h=0,i=0;e=da-32|0;da=e;f=H[b>>2]+H[a+40>>2]|0;c=H[a+32>>2];d=c-16384|0;a:{if(d>>>0<=63){F[H[a+24>>2]+H[a+28>>2]|0]=d;c=H[a+28>>2]+1|0;break a}if(d>>>0<=16383){d=H[a+24>>2]+H[a+28>>2]|0;F[d|0]=c;F[d+1|0]=c>>>8;c=H[a+28>>2]+2|0;break a}if(d>>>0<=4194303){d=H[a+24>>2]+H[a+28>>2]|0;c=c+8372224|0;F[d+2|0]=c>>>16;F[d+1|0]=c>>>8;F[d|0]=c;c=H[a+28>>2]+3|0;break a}if(d>>>0<=1073741823){d=H[a+24>>2]+H[a+28>>2]|0;c=c-1073758208|0;F[d|0]=c;F[d+1|0]=c>>>8;F[d+2|0]=c>>>16;F[d+3|0]=c>>>24;c=H[a+28>>2]+4|0;break a}c=H[a+28>>2]}H[e>>2]=0;H[e+4>>2]=0;F[e+24|0]=0;H[e+16>>2]=0;H[e+20>>2]=0;H[e+8>>2]=0;H[e+12>>2]=0;h=c;d=c>>31;yb(c,d,e);g=H[e+4>>2]-H[e>>2]|0;xa(g+f|0,f,c);sa(f,H[e>>2],g);c=H[a+44>>2];f=b;i=H[a+40>>2];a=d;b=h+g|0;a=b>>>0>>0?a+1|0:a;d=b;b=i+d|0;Ma(f,b);a=H[e+12>>2];H[e+12>>2]=0;if(a){qa(a)}a=H[e>>2];if(a){H[e+4>>2]=a;qa(a)}da=e+32|0}function Zd(a,b,c,d){var e=0,f=0,g=0,h=0,i=0,j=0,k=0;a:{b:{e=H[b+4>>2];c:{if(!e){f=b+4|0;c=f;break c}f=I[c+11|0];g=f<<24>>24<0;j=g?H[c>>2]:c;g=g?H[c+4>>2]:f;while(1){c=e;h=I[e+27|0];f=h<<24>>24<0;e=f?H[e+20>>2]:h;h=e>>>0>>0;d:{e:{f:{g:{k=h?e:g;h:{if(k){i=c+16|0;f=f?H[i>>2]:i;i=Ea(j,f,k);if(!i){if(e>>>0>g>>>0){break h}break g}if((i|0)>=0){break g}break h}if(e>>>0<=g>>>0){break f}}f=c;e=H[c>>2];if(e){continue}break c}e=Ea(f,j,k);if(e){break e}}if(h){break d}break b}if((e|0)>=0){break b}}e=H[c+4>>2];if(e){continue}break}f=c+4|0}e=ra(40);g=e+16|0;d=H[d>>2];i:{if(F[d+11|0]>=0){j=H[d+4>>2];H[g>>2]=H[d>>2];H[g+4>>2]=j;H[g+8>>2]=H[d+8>>2];break i}Ia(g,H[d>>2],H[d+4>>2])}H[e+8>>2]=c;H[e>>2]=0;H[e+4>>2]=0;H[e+36>>2]=0;H[e+28>>2]=0;H[e+32>>2]=0;H[f>>2]=e;c=e;d=H[H[b>>2]>>2];if(d){H[b>>2]=d;c=H[f>>2]}ub(H[b+4>>2],c);H[b+8>>2]=H[b+8>>2]+1;b=1;break a}e=c;b=0}F[a+4|0]=b;H[a>>2]=e}function bi(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=O(0),f=O(0),g=O(0),h=O(0),i=O(0),j=0,k=O(0),l=O(0),m=O(0),n=O(0),o=0;a:{if(H[c+28>>2]!=9|I[c+24|0]!=3){break a}a=H[a+4>>2];if(a-31>>>0<4294967267){break a}o=1;j=H[c+80>>2];if(!j){break a}k=O(O(2)/O((1<>2]>>2]+H[c+48>>2]|0;a=H[H[b>>2]>>2]+H[b+48>>2]|0;b=0;while(1){g=O(0);l=O(0);m=O(0);e=O(O(O(H[a>>2])*k)+O(-1));f=O(O(O(H[a+4>>2])*k)+O(-1));i=O(O(O(1)-O(P(e)))-O(P(f)));h=O(S(O(-i),O(0)));n=O(-h);f=O(f+(f>>8;F[c+10|0]=d>>>16;F[c+11|0]=d>>>24;d=(B(l),v(2));F[c+4|0]=d;F[c+5|0]=d>>>8;F[c+6|0]=d>>>16;F[c+7|0]=d>>>24;d=(B(g),v(2));F[c|0]=d;F[c+1|0]=d>>>8;F[c+2|0]=d>>>16;F[c+3|0]=d>>>24;c=c+12|0;b=b+1|0;if((j|0)!=(b|0)){continue}break}}return o|0}function eg(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0;c=da-16|0;da=c;b=H[H[a+184>>2]+(b<<2)>>2];F[c+15|0]=b;e=H[H[a+4>>2]+44>>2];d=H[e+20>>2];if(!H[e+16>>2]&(d|0)<=0|(d|0)<0){wa(e,H[e+4>>2],c+15|0,c+16|0);b=I[c+15|0]}a:{b:{c:{if(b<<24>>24<0){e=H[a+68>>2];break c}b=H[H[a+172>>2]+N(b&255,136)>>2];d=fa[H[H[a>>2]+40>>2]](a)|0;f=H[a+172>>2]+N(F[c+15|0],136)|0;e=H[f+132>>2];d:{switch(H[H[H[d+56>>2]+84>>2]+(b<<2)>>2]){case 0:break c;case 1:break d;default:break b}}if(!I[f+28|0]){break b}}b=H[H[a+4>>2]+44>>2];F[c+14|0]=0;d=H[b+20>>2];if(!!H[b+16>>2]&(d|0)>=0|(d|0)>0){break a}wa(b,H[b+4>>2],c+14|0,c+15|0);break a}b=H[H[a+4>>2]+44>>2];F[c+13|0]=1;d=H[b+20>>2];if(!!H[b+16>>2]&(d|0)>=0|(d|0)>0){break a}wa(b,H[b+4>>2],c+13|0,c+14|0)}a=H[H[a+4>>2]+44>>2];F[c+12|0]=e;b=H[a+20>>2];if(!H[a+16>>2]&(b|0)<=0|(b|0)<0){wa(a,H[a+4>>2],c+12|0,c+13|0)}da=c+16|0;return 1}function Ac(a,b,c,d){var e=0,f=0,g=0,h=0,i=0,j=0,k=0;a:{b:{e=H[b+4>>2];c:{if(!e){f=b+4|0;c=f;break c}f=I[c+11|0];g=f<<24>>24<0;j=g?H[c>>2]:c;g=g?H[c+4>>2]:f;while(1){c=e;e=I[e+27|0];f=e<<24>>24<0;e=f?H[c+20>>2]:e;k=e>>>0>>0;d:{e:{f:{g:{i=k?e:g;h:{if(i){h=c+16|0;f=f?H[h>>2]:h;h=Ea(j,f,i);if(!h){if(e>>>0>g>>>0){break h}break g}if((h|0)>=0){break g}break h}if(e>>>0<=g>>>0){break f}}f=c;e=H[c>>2];if(e){continue}break c}e=Ea(f,j,i);if(e){break e}}if(k){break d}break b}if((e|0)>=0){break b}}e=H[c+4>>2];if(e){continue}break}f=c+4|0}e=ra(40);H[e+24>>2]=H[d+8>>2];g=H[d+4>>2];H[e+16>>2]=H[d>>2];H[e+20>>2]=g;H[d>>2]=0;H[d+4>>2]=0;H[d+8>>2]=0;Qb(e+28|0,d+12|0);H[e+8>>2]=c;H[e>>2]=0;H[e+4>>2]=0;H[f>>2]=e;c=e;d=H[H[b>>2]>>2];if(d){H[b>>2]=d;c=H[f>>2]}ub(H[b+4>>2],c);H[b+8>>2]=H[b+8>>2]+1;b=1;break a}e=c;b=0}F[a+4|0]=b;H[a>>2]=e}function th(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0,i=0;a:{b:{if((fa[H[H[b>>2]+20>>2]](b)|0)>0){while(1){d=Pb(H[H[a+4>>2]+4>>2],fa[H[H[b>>2]+24>>2]](b,i)|0);if((d|0)!=-1){c=H[a+20>>2];c:{if((c|0)!=H[a+24>>2]){H[c>>2]=d;H[a+20>>2]=c+4;break c}h=H[a+16>>2];e=c-h|0;g=e>>2;c=g+1|0;if(c>>>0>=1073741824){break b}f=e>>1;f=e>>>0<2147483644?c>>>0>>0?f:c:1073741823;if(f){if(f>>>0>=1073741824){break a}c=ra(f<<2)}else{c=0}g=c+(g<<2)|0;H[g>>2]=d;if((e|0)>0){sa(c,h,e)}H[a+24>>2]=c+(f<<2);H[a+20>>2]=g+4;H[a+16>>2]=c;if(!h){break c}qa(h)}c=H[a+4>>2];d:{if((d|0)<0){break d}e=H[c+4>>2];if(H[e+12>>2]-H[e+8>>2]>>2<=(d|0)){break d}c=H[H[c+8>>2]+(H[H[c+20>>2]+(d<<2)>>2]<<2)>>2];fa[H[H[c>>2]+32>>2]](c,d)|0}i=i+1|0;if((fa[H[H[b>>2]+20>>2]](b)|0)>(i|0)){continue}}break}a=(d|0)!=-1}else{a=1}return a|0}ua();X()}ya();X()}function Ic(a,b){var c=0,d=0;c=H[b+8>>2];H[a+4>>2]=H[b+4>>2];H[a+8>>2]=c;H[a+20>>2]=H[b+20>>2];c=H[b+16>>2];H[a+12>>2]=H[b+12>>2];H[a+16>>2]=c;a:{b:{if((a|0)!=(b|0)){c=H[b+28>>2];if(c){d=H[a+24>>2];if(H[a+32>>2]<<5>>>0>>0){if(d){qa(d);H[a+32>>2]=0;H[a+24>>2]=0;H[a+28>>2]=0;c=H[b+28>>2]}if((c|0)<0){break b}c=(c-1>>>5|0)+1|0;d=ra(c<<2);H[a+32>>2]=c;H[a+28>>2]=0;H[a+24>>2]=d;c=H[b+28>>2]}xa(d,H[b+24>>2],(c-1>>>3&536870908)+4|0);c=H[b+28>>2]}else{c=0}H[a+28>>2]=c;c=H[b+40>>2];if(c){d=H[a+36>>2];if(H[a+44>>2]<<5>>>0>>0){if(d){qa(d);H[a+44>>2]=0;H[a+36>>2]=0;H[a+40>>2]=0;c=H[b+40>>2]}if((c|0)<0){break a}c=(c-1>>>5|0)+1|0;d=ra(c<<2);H[a+44>>2]=c;H[a+40>>2]=0;H[a+36>>2]=d;c=H[b+40>>2]}xa(d,H[b+36>>2],(c-1>>>3&536870908)+4|0);b=H[b+40>>2]}else{b=0}H[a+40>>2]=b}return}ua();X()}ua();X()}function cf(a){var b=0,c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0;f=da-16|0;da=f;d=H[a+100>>2];e=H[a+96>>2];H[f+8>>2]=0;H[f>>2]=0;H[f+4>>2]=0;b=d-e|0;g=(b|0)/12|0;a:{b:{if((d|0)==(e|0)){break b}if(g>>>0>=357913942){break a}d=ra(b);H[f>>2]=d;H[f+8>>2]=d+N(g,12);a=0;c=d;d=b-12|0;b=(d-((d>>>0)%12|0)|0)+12|0;d=ta(c,0,b);H[f+4>>2]=b+d;b=g>>>0>1?g:1;j=b&1;if(g>>>0>=2){k=b&-2;g=0;while(1){c=N(a,12);b=c+e|0;h=H[b+4>>2];i=H[b>>2];c=d+c|0;H[c+8>>2]=H[b+8>>2];H[c>>2]=i;H[c+4>>2]=h;c=N(a|1,12);b=c+e|0;h=H[b+4>>2];i=H[b>>2];c=d+c|0;H[c+8>>2]=H[b+8>>2];H[c>>2]=i;H[c+4>>2]=h;a=a+2|0;g=g+2|0;if((k|0)!=(g|0)){continue}break}}if(!j){break b}c=e;e=N(a,12);a=c+e|0;g=H[a+4>>2];b=H[a>>2];e=d+e|0;H[e+8>>2]=H[a+8>>2];H[e>>2]=b;H[e+4>>2]=g}e=gf(f);a=H[f>>2];if(a){H[f+4>>2]=a;qa(a)}da=f+16|0;return e}ua();X()}function Yf(a){var b=0,c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0;d=H[a+112>>2];b=H[a+108>>2];c=(d-b|0)/12|0;Da(c,H[H[a+4>>2]+44>>2]);if((b|0)!=(d|0)){e=c>>>0>1?c:1;d=0;while(1){b=H[a+108>>2]+N(d,12)|0;Da(H[b+4>>2]-g|0,H[H[a+4>>2]+44>>2]);Da(H[b+4>>2]-H[b>>2]|0,H[H[a+4>>2]+44>>2]);g=H[b+4>>2];d=d+1|0;if((e|0)!=(d|0)){continue}break}d=0;xd(H[H[a+4>>2]+44>>2],c,0,0);e=H[H[a+4>>2]+44>>2];b=H[e+20>>2];if(!!H[e+16>>2]&(b|0)>=0|(b|0)>0){e=c>>>0>1?c:1;while(1){c=H[H[a+4>>2]+44>>2];b=H[c+20>>2];if(!!H[c+16>>2]&(b|0)>=0|(b|0)>0){g=I[(H[a+108>>2]+N(d,12)|0)+8|0];c=H[c+12>>2];f=H[c+4>>2];b=f>>>3|0;h=b+H[c>>2]|0;i=I[h|0];f=f&7;j=h,k=Dl(f)&i,F[j|0]=k;b=b+H[c>>2]|0;F[b|0]=I[b|0]|(g&1)<>2]=H[c+4>>2]+1}d=d+1|0;if((e|0)!=(d|0)){continue}break}}wd(H[H[a+4>>2]+44>>2])}return 1}function He(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0;c=da-16|0;da=c;Da(H[a+8>>2]-H[a+4>>2]>>2,b);e=H[a+4>>2];if((e|0)!=H[a+8>>2]){h=c+13|0;i=c+14|0;j=c+15|0;k=c+16|0;while(1){e=H[H[H[a+32>>2]+8>>2]+(H[(g<<2)+e>>2]<<2)>>2];F[c+15|0]=H[e+56>>2];d=H[b+20>>2];a:{if(!!H[b+16>>2]&(d|0)>=0|(d|0)>0){break a}wa(b,H[b+4>>2],c+15|0,k);d=H[b+20>>2];f=H[b+16>>2];F[c+14|0]=H[e+28>>2];if(!!f&(d|0)>=0|(d|0)>0){break a}wa(b,H[b+4>>2],c+14|0,j);d=H[b+20>>2];f=H[b+16>>2];F[c+13|0]=I[e+24|0];if(!!f&(d|0)>=0|(d|0)>0){break a}wa(b,H[b+4>>2],c+13|0,i);d=H[b+20>>2];f=H[b+16>>2];F[c+12|0]=I[e+32|0];if(!!f&(d|0)>=0|(d|0)>0){break a}wa(b,H[b+4>>2],c+12|0,h)}Da(H[e+60>>2],b);g=g+1|0;e=H[a+4>>2];if(g>>>0>2]-e>>2>>>0){continue}break}}da=c+16|0;return 1}function fb(a,b){var c=0,d=0,e=0,f=0,g=0,h=0;f=da-16|0;da=f;a:{b:{c=H[a+4>>2];c:{if((c|0)!=H[a+8>>2]){H[c>>2]=H[a+12>>2];d=c+4|0;H[a+4>>2]=d;break c}h=H[a>>2];g=c-h|0;d=g>>2;c=d+1|0;if(c>>>0>=1073741824){break b}e=g>>1;e=g>>>0<2147483644?c>>>0>>0?e:c:1073741823;if(e){if(e>>>0>=1073741824){break a}c=ra(e<<2)}else{c=0}d=c+(d<<2)|0;H[d>>2]=H[a+12>>2];d=d+4|0;if((g|0)>0){sa(c,h,g)}H[a+8>>2]=(e<<2)+c;H[a+4>>2]=d;H[a>>2]=c;if(!h){break c}qa(h);d=H[a+4>>2]}H[f+12>>2]=d-H[a>>2];c=H[b+20>>2];d:{if(!!H[b+16>>2]&(c|0)>=0|(c|0)>0){break d}wa(b,H[b+4>>2],f+12|0,f+16|0);c=H[b+20>>2];if(!!H[b+16>>2]&(c|0)>=0|(c|0)>0){break d}c=b;d=H[b+4>>2];b=H[a>>2];wa(c,d,b,b+H[f+12>>2]|0)}H[a+12>>2]=0;H[a+16>>2]=0;H[a+4>>2]=H[a>>2];da=f+16|0;return}ua();X()}ya();X()}function Ik(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0;e=da-16|0;da=e;H[e+12>>2]=c;if(!(!de(a,b,c)|I[H[a+8>>2]+24|0]!=3)){f=H[b+48>>2];b=ra(32);H[e>>2]=b;H[e+4>>2]=17;H[e+8>>2]=-2147483616;F[b+17|0]=0;F[b+16|0]=I[1261];c=I[1257]|I[1258]<<8|(I[1259]<<16|I[1260]<<24);d=I[1253]|I[1254]<<8|(I[1255]<<16|I[1256]<<24);F[b+8|0]=d;F[b+9|0]=d>>>8;F[b+10|0]=d>>>16;F[b+11|0]=d>>>24;F[b+12|0]=c;F[b+13|0]=c>>>8;F[b+14|0]=c>>>16;F[b+15|0]=c>>>24;c=I[1249]|I[1250]<<8|(I[1251]<<16|I[1252]<<24);d=I[1245]|I[1246]<<8|(I[1247]<<16|I[1248]<<24);F[b|0]=d;F[b+1|0]=d>>>8;F[b+2|0]=d>>>16;F[b+3|0]=d>>>24;F[b+4|0]=c;F[b+5|0]=c>>>8;F[b+6|0]=c>>>16;F[b+7|0]=c>>>24;b=pb(f,e+12|0,e,-1);if(F[e+11|0]<0){qa(H[e>>2])}if((b|0)>0){H[a+44>>2]=b}d=(b|0)>0}da=e+16|0;return d|0}function xa(a,b,c){var d=0,e=0;a:{if((a|0)==(b|0)){break a}e=a+c|0;if(b-e>>>0<=0-(c<<1)>>>0){return sa(a,b,c)}d=(a^b)&3;b:{c:{if(a>>>0>>0){if(d){d=a;break b}if(!(a&3)){d=a;break c}d=a;while(1){if(!c){break a}F[d|0]=I[b|0];b=b+1|0;c=c-1|0;d=d+1|0;if(d&3){continue}break}break c}d:{if(d){break d}if(e&3){while(1){if(!c){break a}c=c-1|0;d=c+a|0;F[d|0]=I[b+c|0];if(d&3){continue}break}}if(c>>>0<=3){break d}while(1){c=c-4|0;H[c+a>>2]=H[b+c>>2];if(c>>>0>3){continue}break}}if(!c){break a}while(1){c=c-1|0;F[c+a|0]=I[b+c|0];if(c){continue}break}break a}if(c>>>0<=3){break b}while(1){H[d>>2]=H[b>>2];b=b+4|0;d=d+4|0;c=c-4|0;if(c>>>0>3){continue}break}}if(!c){break a}while(1){F[d|0]=I[b|0];d=d+1|0;b=b+1|0;c=c-1|0;if(c){continue}break}}return a}function bg(a,b,c){var d=0,e=0,f=0,g=0;a:{b=N(b,3);if((b|0)==-1){break a}b:{e=H[a+12>>2];f=H[e+12>>2];d=b<<2;c:{if(H[f+d>>2]==-1){break c}a=H[a+152>>2];e=H[e>>2];if(H[a+(H[e+d>>2]<<2)>>2]!=-1){break b}d=b+1|0;b=(d>>>0)%3|0?d:b-2|0;if((b|0)==-1){break a}d=b<<2;if(H[d+f>>2]==-1){break c}if(H[a+(H[d+e>>2]<<2)>>2]!=-1){break b}d=b+1|0;b=(d>>>0)%3|0?d:b-2|0;if((b|0)==-1){break a}d=b<<2;if(H[d+f>>2]==-1){break c}if(H[a+(H[d+e>>2]<<2)>>2]!=-1){break b}g=1;a=b+1|0;b=(a>>>0)%3|0?a:b-2|0}H[c>>2]=b;return g}while(1){d:{a=b;e:{if((b>>>0)%3|0){b=a-1|0;break e}b=a+2|0;if((b|0)==-1){break d}}b=H[(b<<2)+f>>2];if((b|0)==-1){break d}b=b+((b>>>0)%3|0?-1:2)|0;if((b|0)!=-1){continue}}break}H[c>>2]=a+((a>>>0)%3|0?-1:2);return 0}H[c>>2]=-1;return 0}function Le(a,b,c){a:{switch(b-9|0){case 0:b=H[c>>2];H[c>>2]=b+4;H[a>>2]=H[b>>2];return;case 6:b=H[c>>2];H[c>>2]=b+4;b=G[b>>1];H[a>>2]=b;H[a+4>>2]=b>>31;return;case 7:b=H[c>>2];H[c>>2]=b+4;H[a>>2]=J[b>>1];H[a+4>>2]=0;return;case 8:b=H[c>>2];H[c>>2]=b+4;b=F[b|0];H[a>>2]=b;H[a+4>>2]=b>>31;return;case 9:b=H[c>>2];H[c>>2]=b+4;H[a>>2]=I[b|0];H[a+4>>2]=0;return;case 16:b=H[c>>2]+7&-8;H[c>>2]=b+8;M[a>>3]=M[b>>3];return;case 17:fa[370](a,c);default:return;case 1:case 4:case 14:b=H[c>>2];H[c>>2]=b+4;b=H[b>>2];H[a>>2]=b;H[a+4>>2]=b>>31;return;case 2:case 5:case 11:case 15:b=H[c>>2];H[c>>2]=b+4;H[a>>2]=H[b>>2];H[a+4>>2]=0;return;case 3:case 10:case 12:case 13:break a}}b=H[c>>2]+7&-8;H[c>>2]=b+8;c=H[b+4>>2];H[a>>2]=H[b>>2];H[a+4>>2]=c}function xd(a,b,c,d){var e=0,f=0,g=0,h=0,i=0,j=0;a:{e=H[a+20>>2];b:{if(!b&(c|0)<=0|(c|0)<0|(!!H[a+16>>2]&(e|0)>=0|(e|0)>0)){break b}F[a+24|0]=d;b=b+7|0;c=b>>>0<7?c+1|0:c;e=b;b=c>>>3|0;c=(c&7)<<29|e>>>3;H[a+16>>2]=c;H[a+20>>2]=b;f=H[a+4>>2];e=H[a>>2];b=f-e|0;g=c;c=b+8|0;h=d?c:b;c=g+h|0;c:{if(b>>>0>>0){g=c-b|0;d=H[a+8>>2];if(g>>>0<=d-f>>>0){i=a,j=ta(f,0,g)+g|0,H[i+4>>2]=j;break c}if((c|0)<0){break a}d=d-e|0;f=d<<1;f=d>>>0<1073741823?c>>>0>>0?f:c:2147483647;d=ra(f);ta(d+b|0,0,g);if((b|0)>0){sa(d,e,b)}H[a+8>>2]=d+f;H[a+4>>2]=c+d;H[a>>2]=d;if(!e){break c}qa(e);break c}if(b>>>0<=c>>>0){break c}H[a+4>>2]=c+e}c=H[a>>2];b=ra(8);H[b+4>>2]=0;H[b>>2]=c+h;c=H[a+12>>2];H[a+12>>2]=b;if(!c){break b}qa(c)}return}ua();X()}function Te(a,b,c,d,e,f){var g=0;g=da-80|0;da=g;a:{if((f|0)>=16384){Ha(g+32|0,b,c,d,e,0,0,0,2147352576);d=H[g+40>>2];e=H[g+44>>2];b=H[g+32>>2];c=H[g+36>>2];if(f>>>0<32767){f=f-16383|0;break a}Ha(g+16|0,b,c,d,e,0,0,0,2147352576);f=((f|0)<49149?f:49149)-32766|0;d=H[g+24>>2];e=H[g+28>>2];b=H[g+16>>2];c=H[g+20>>2];break a}if((f|0)>-16383){break a}Ha(g- -64|0,b,c,d,e,0,0,0,7471104);d=H[g+72>>2];e=H[g+76>>2];b=H[g+64>>2];c=H[g+68>>2];if(f>>>0>4294934644){f=f+16269|0;break a}Ha(g+48|0,b,c,d,e,0,0,0,7471104);f=((f|0)>-48920?f:-48920)+32538|0;d=H[g+56>>2];e=H[g+60>>2];b=H[g+48>>2];c=H[g+52>>2]}Ha(g,b,c,d,e,0,0,0,f+16383<<16);b=H[g+12>>2];H[a+8>>2]=H[g+8>>2];H[a+12>>2]=b;b=H[g+4>>2];H[a>>2]=H[g>>2];H[a+4>>2]=b;da=g+80|0}function Sg(a,b,c){var d=0,e=0,f=0,g=0,h=0;f=da-16|0;da=f;H[a+4>>2]=0;H[a+8>>2]=0;H[a>>2]=a+4;H[a+12>>2]=a+16;H[a+16>>2]=0;H[a+20>>2]=0;d=a+24|0;H[d+4>>2]=0;H[d+8>>2]=0;H[d>>2]=d+4;g=a;if((a|0)!=(b+4|0)){kc(g,H[b+4>>2],b+8|0)}if((d|0)!=(b+28|0)){kc(d,H[b+28>>2],b+32|0)}a=0;H[f+12>>2]=0;a:{e=H[c+8>>2];if((H[c+12>>2]-e|0)<=0){break a}d=b+20|0;b=H[d>>2];if(!b){break a}while(1){b:{if(!b){break b}e=H[H[(a<<2)+e>>2]+56>>2];a=d;while(1){h=(e|0)>H[b+16>>2];a=h?a:b;b=H[(h?b+4|0:b)>>2];if(b){continue}break}if((a|0)==(d|0)|(e|0)>2]){break b}b=sc(g,f+12|0);if((b|0)==(a+20|0)){break b}kc(b,H[a+20>>2],a+24|0)}a=H[f+12>>2]+1|0;H[f+12>>2]=a;e=H[c+8>>2];if(H[c+12>>2]-e>>2<=(a|0)){break a}b=H[d>>2];continue}}da=f+16|0}function $c(a,b,c){var d=0,e=0,f=0;d=da+-64|0;da=d;f=H[a>>2];e=H[f-4>>2];f=H[f-8>>2];H[d+32>>2]=0;H[d+36>>2]=0;H[d+40>>2]=0;H[d+44>>2]=0;H[d+48>>2]=0;H[d+52>>2]=0;F[d+55|0]=0;F[d+56|0]=0;F[d+57|0]=0;F[d+58|0]=0;F[d+59|0]=0;F[d+60|0]=0;F[d+61|0]=0;F[d+62|0]=0;H[d+24>>2]=0;H[d+28>>2]=0;H[d+20>>2]=0;H[d+16>>2]=b;H[d+12>>2]=a;H[d+8>>2]=c;a=a+f|0;b=0;a:{if(qb(e,c,0)){H[d+56>>2]=1;fa[H[H[e>>2]+20>>2]](e,d+8|0,a,a,1,0);b=H[d+32>>2]==1?a:0;break a}fa[H[H[e>>2]+24>>2]](e,d+8|0,a,1,0);b:{switch(H[d+44>>2]){case 0:b=H[d+48>>2]==1?H[d+36>>2]==1?H[d+40>>2]==1?H[d+28>>2]:0:0:0;break a;case 1:break b;default:break a}}if(H[d+32>>2]!=1){if(H[d+48>>2]|H[d+36>>2]!=1|H[d+40>>2]!=1){break a}}b=H[d+24>>2]}da=d- -64|0;return b}function Ga(a,b){var c=0,d=0,e=0,f=0;c=H[a>>2];a:{if(b){b=H[c+12>>2];d=H[c+8>>2]+1|0;b=d?b:b+1|0;H[c+8>>2]=d;H[c+12>>2]=b;b=H[a+28>>2];H[a+24>>2]=H[a+24>>2]|1<>2];d=H[c>>2]+1|0;b=d?b:b+1|0;H[c>>2]=d;H[c+4>>2]=b;b=H[a+28>>2]}b=b+1|0;H[a+28>>2]=b;b:{c:{if((b|0)==32){b=H[a+16>>2];d:{if((b|0)!=H[a+20>>2]){H[b>>2]=H[a+24>>2];H[a+16>>2]=b+4;break d}d=H[a+12>>2];c=b-d|0;f=c>>2;b=f+1|0;if(b>>>0>=1073741824){break c}e=c>>1;e=c>>>0<2147483644?b>>>0>>0?e:b:1073741823;if(e){if(e>>>0>=1073741824){break b}b=ra(e<<2)}else{b=0}f=b+(f<<2)|0;H[f>>2]=H[a+24>>2];if((c|0)>0){sa(b,d,c)}H[a+20>>2]=b+(e<<2);H[a+16>>2]=f+4;H[a+12>>2]=b;if(!d){break d}qa(d)}H[a+24>>2]=0;H[a+28>>2]=0}return}ua();X()}ya();X()}function ta(a,b,c){var d=0,e=0,f=0;a:{if(!c){break a}F[a|0]=b;e=a+c|0;F[e-1|0]=b;if(c>>>0<3){break a}F[a+2|0]=b;F[a+1|0]=b;F[e-3|0]=b;F[e-2|0]=b;if(c>>>0<7){break a}F[a+3|0]=b;F[e-4|0]=b;if(c>>>0<9){break a}e=0-a&3;f=e+a|0;d=N(b&255,16843009);H[f>>2]=d;b=c-e&-4;c=b+f|0;H[c-4>>2]=d;if(b>>>0<9){break a}H[f+8>>2]=d;H[f+4>>2]=d;H[c-8>>2]=d;H[c-12>>2]=d;if(b>>>0<25){break a}H[f+24>>2]=d;H[f+20>>2]=d;H[f+16>>2]=d;H[f+12>>2]=d;H[c-16>>2]=d;H[c-20>>2]=d;H[c-24>>2]=d;H[c-28>>2]=d;c=b;b=f&4|24;c=c-b|0;if(c>>>0<32){break a}d=zl(d,0,1,1);e=ea;b=b+f|0;while(1){H[b+24>>2]=d;H[b+28>>2]=e;H[b+16>>2]=d;H[b+20>>2]=e;H[b+8>>2]=d;H[b+12>>2]=e;H[b>>2]=d;H[b+4>>2]=e;b=b+32|0;c=c-32|0;if(c>>>0>31){continue}break}}return a}function ve(a,b,c,d,e){var f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0;a:{f=a+16|0;g=H[f>>2];b:{if(!g){break b}i=H[b>>2];b=f;while(1){h=(i|0)>H[g+16>>2];b=h?b:g;g=H[(h?g+4|0:g)>>2];if(g){continue}break}if((b|0)==(f|0)|(i|0)>2]){break b}g=H[b+24>>2];if(!g){break b}m=b+20|0;b=I[c+11|0];f=b<<24>>24<0;i=f?H[c>>2]:c;b=f?H[c+4>>2]:b;while(1){f=I[g+27|0];h=f<<24>>24<0;f=h?H[g+20>>2]:f;l=f>>>0>>0;c:{d:{e:{f:{g:{h:{k=l?f:b;if(k){j=g+16|0;h=h?H[j>>2]:j;j=Ea(i,h,k);if(j){break h}if(b>>>0>=f>>>0){break g}break c}if(b>>>0>=f>>>0){break f}break c}if((j|0)<0){break c}}f=Ea(h,i,k);if(f){break e}}if(l){break d}break a}if((f|0)<0){break d}break a}g=g+4|0}g=H[g>>2];if(g){continue}break}}te(a,c,d,e);return}te(m,c,d,e)}function pb(a,b,c,d){var e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0;e=a+16|0;f=H[e>>2];a:{if(!f){break a}g=H[b>>2];b=e;while(1){h=(g|0)>H[f+16>>2];b=h?b:f;f=H[(h?f+4|0:f)>>2];if(f){continue}break}if((b|0)==(e|0)|(g|0)>2]){break a}f=H[b+24>>2];if(!f){break a}g=b+20|0;b=I[c+11|0];e=b<<24>>24<0;h=e?H[c>>2]:c;b=e?H[c+4>>2]:b;while(1){e=I[f+27|0];i=e<<24>>24<0;e=i?H[f+20>>2]:e;l=e>>>0>>0;b:{c:{d:{e:{f:{g:{k=l?e:b;if(k){j=f+16|0;i=i?H[j>>2]:j;j=Ea(h,i,k);if(j){break g}if(b>>>0>=e>>>0){break f}break b}if(b>>>0>=e>>>0){break e}break b}if((j|0)<0){break b}}e=Ea(i,h,k);if(e){break d}}if(l){break c}return Cb(g,c,d)}if((e|0)<0){break c}return Cb(g,c,d)}f=f+4|0}f=H[f>>2];if(f){continue}break}}return Cb(a,c,d)}function gj(a){a=a|0;var b=0,c=0,d=0,e=0,f=0,g=0;b=H[a+4>>2];d=H[b>>2];a:{c=H[a+12>>2];c=H[c+56>>2]-H[c+52>>2]|0;e=c>>2;b:{if(e>>>0<=H[b+8>>2]-d>>2>>>0){break b}if((c|0)<0){break a}f=H[b+4>>2];c=ra(c);g=c+(e<<2)|0;e=f-d|0;f=e+c|0;if((e|0)>0){sa(c,d,e)}H[b+8>>2]=g;H[b+4>>2]=f;H[b>>2]=c;if(!d){break b}qa(d)}e=a+8|0;b=H[a+76>>2];c:{if(b){d=H[b>>2];if((d|0)==H[b+4>>2]){return 1}b=0;while(1){c=Of(e,H[(b<<2)+d>>2]);if(!c){break c}f=H[a+76>>2];d=H[f>>2];b=b+1|0;if(b>>>0>2]-d>>2>>>0){continue}break}break c}c=1;a=H[H[a+12>>2]+64>>2];a=H[a+4>>2]-H[a>>2]|0;if(a>>>0<12){break c}a=(a>>2>>>0)/3|0;b=0;while(1){c=Of(e,N(b,3));if(!c){break c}b=b+1|0;if((a|0)!=(b|0)){continue}break}}return c|0}ua();X()}function ue(a,b,c){var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0;d=a+16|0;e=H[d>>2];a:{if(!e){break a}f=H[b>>2];b=d;while(1){g=(f|0)>H[e+16>>2];b=g?b:e;e=H[(g?e+4|0:e)>>2];if(e){continue}break}if((b|0)==(d|0)|(f|0)>2]){break a}e=H[b+24>>2];if(!e){break a}f=b+20|0;b=I[c+11|0];d=b<<24>>24<0;g=d?H[c>>2]:c;b=d?H[c+4>>2]:b;while(1){d=I[e+27|0];h=d<<24>>24<0;d=h?H[e+20>>2]:d;k=d>>>0>>0;b:{c:{d:{e:{f:{g:{j=k?d:b;if(j){i=e+16|0;h=h?H[i>>2]:i;i=Ea(g,h,j);if(i){break g}if(b>>>0>=d>>>0){break f}break b}if(b>>>0>=d>>>0){break e}break b}if((i|0)<0){break b}}d=Ea(h,g,j);if(d){break d}}if(k){break c}return vd(f,c)}if((d|0)<0){break c}return vd(f,c)}e=e+4|0}e=H[e>>2];if(e){continue}break}}return vd(a,c)}function ld(a,b,c){var d=0,e=0,f=0,g=0;Da(H[c+8>>2],b);e=H[c>>2];g=c+4|0;if((e|0)!=(g|0)){while(1){if(!bf(b,e+16|0)){return}d=H[e+32>>2]-H[e+28>>2]|0;Da(d,b);f=H[b+20>>2];if(!H[b+16>>2]&(f|0)<=0|(f|0)<0){f=H[e+28>>2];wa(b,H[b+4>>2],f,d+f|0)}f=H[e+4>>2];a:{if(f){while(1){d=f;f=H[d>>2];if(f){continue}break a}}while(1){d=H[e+8>>2];f=H[d>>2]!=(e|0);e=d;if(f){continue}break}}e=d;if((d|0)!=(g|0)){continue}break}}Da(H[c+20>>2],b);d=H[c+12>>2];c=c+16|0;if((d|0)==(c|0)){return}while(1){if(!bf(b,d+16|0)){return}ld(a,b,H[d+28>>2]);f=d;e=H[d+4>>2];b:{if(e){while(1){d=e;e=H[d>>2];if(e){continue}break b}}while(1){d=H[f+8>>2];e=H[d>>2]!=(f|0);f=d;if(e){continue}break}}if((c|0)!=(d|0)){continue}break}}function lj(a){a=a|0;var b=0,c=0,d=0,e=0,f=0,g=0;b=H[a+4>>2];d=H[b>>2];a:{c=H[a+12>>2];c=H[c+28>>2]-H[c+24>>2]|0;e=c>>2;b:{if(e>>>0<=H[b+8>>2]-d>>2>>>0){break b}if((c|0)<0){break a}f=H[b+4>>2];c=ra(c);g=c+(e<<2)|0;e=f-d|0;f=e+c|0;if((e|0)>0){sa(c,d,e)}H[b+8>>2]=g;H[b+4>>2]=f;H[b>>2]=c;if(!d){break b}qa(d)}e=a+8|0;b=H[a+76>>2];c:{if(b){d=H[b>>2];if((d|0)==H[b+4>>2]){return 1}b=0;while(1){c=Pf(e,H[(b<<2)+d>>2]);if(!c){break c}f=H[a+76>>2];d=H[f>>2];b=b+1|0;if(b>>>0>2]-d>>2>>>0){continue}break}break c}c=1;a=H[a+12>>2];a=H[a+4>>2]-H[a>>2]|0;if(a>>>0<12){break c}a=(a>>2>>>0)/3|0;b=0;while(1){c=Pf(e,N(b,3));if(!c){break c}b=b+1|0;if((a|0)!=(b|0)){continue}break}}return c|0}ua();X()}function lc(a,b){var c=0,d=0,e=0,f=0,g=0,h=0;h=da-16|0;da=h;a:{b:{c=H[a+8>>2];c:{if((c|0)!=H[a+12>>2]){H[c>>2]=b;H[a+8>>2]=c+4;break c}e=H[a+4>>2];d=c-e|0;g=d>>2;c=g+1|0;if(c>>>0>=1073741824){break b}f=d>>1;f=d>>>0<2147483644?c>>>0>>0?f:c:1073741823;if(f){if(f>>>0>=1073741824){break a}c=ra(f<<2)}else{c=0}g=c+(g<<2)|0;H[g>>2]=b;if((d|0)>0){sa(c,e,d)}H[a+12>>2]=c+(f<<2);H[a+8>>2]=g+4;H[a+4>>2]=c;if(!e){break c}qa(e)}c=H[a+16>>2];d=H[a+20>>2]-c>>2;d:{if((d|0)>(b|0)){break d}H[h+12>>2]=-1;e=b+1|0;if(e>>>0>d>>>0){La(a+16|0,e-d|0,h+12|0);c=H[a+16>>2];break d}if(d>>>0<=e>>>0){break d}H[a+20>>2]=(e<<2)+c}H[(b<<2)+c>>2]=(H[a+8>>2]-H[a+4>>2]>>2)-1;da=h+16|0;return}ua();X()}ya();X()}function el(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0,g=0,h=0,i=0;f=H[b+4>>2]-H[b>>2]>>2;g=H[a+8>>2];i=F[g+24|0];d=i;h=da+-64|0;da=h;e=Kc(h);d=N(d,H[3712]);Ed(e,H[H[a+8>>2]+56>>2],0,i,5,d,d>>31);e=$f(ra(96),e);Cd(e,f);d=H[a+32>>2];H[a+32>>2]=e;if(d){Oa(d)}a:{if(!c){break a}d=H[a+32>>2];F[d+84|0]=0;e=H[d+68>>2];f=H[d+72>>2]-e>>2;if(f>>>0>>0){La(d+68|0,c-f|0,2736);break a}if(c>>>0>=f>>>0){break a}H[d+72>>2]=e+(c<<2)}da=h- -64|0;c=H[b>>2];d=H[b+4>>2];if((c|0)==(d|0)){return 1}a=H[a+32>>2];h=H[H[a>>2]>>2]+H[a+48>>2]|0;b=0;while(1){a=H[c>>2];if(!I[g+84|0]){a=H[H[g+68>>2]+(a<<2)>>2]}a=Zc(g,a,F[g+24|0],h+(b<<2)|0);if(a){b=b+i|0;c=c+4|0;if((d|0)!=(c|0)){continue}}break}return a|0}function Zg(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0;d=da-48|0;da=d;H[d+40>>2]=H[a- -64>>2];c=H[b+20>>2];if(!H[b+16>>2]&(c|0)<=0|(c|0)<0){wa(b,H[b+4>>2],d+40|0,d+44|0)}c=d+8|0;H[c>>2]=0;H[c+4>>2]=0;H[c+24>>2]=0;H[c+28>>2]=0;H[c+16>>2]=0;H[c+20>>2]=0;H[c+8>>2]=0;H[c+12>>2]=0;Ca(c);if(H[d+40>>2]>0){f=1;while(1){g=f;f=H[H[a+60>>2]+(e>>>3&536870908)>>2]>>>e|0;Ga(c,(g^f^-1)&1);f=f&1;e=e+1|0;if((e|0)>2]){continue}break}}Ba(c,b);H[d+44>>2]=H[a+12>>2];e=H[b+20>>2];a:{if(!!H[b+16>>2]&(e|0)>=0|(e|0)>0){break a}f=d+48|0;wa(b,H[b+4>>2],d+44|0,f);e=H[b+20>>2];g=H[b+16>>2];H[d+44>>2]=H[a+24>>2];if(!!g&(e|0)>=0|(e|0)>0){break a}wa(b,H[b+4>>2],d+44|0,f)}Aa(c);da=d+48|0;return 1}function ih(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0;d=da-48|0;da=d;H[d+40>>2]=H[a+80>>2];c=H[b+20>>2];if(!H[b+16>>2]&(c|0)<=0|(c|0)<0){wa(b,H[b+4>>2],d+40|0,d+44|0)}c=d+8|0;H[c>>2]=0;H[c+4>>2]=0;H[c+24>>2]=0;H[c+28>>2]=0;H[c+16>>2]=0;H[c+20>>2]=0;H[c+8>>2]=0;H[c+12>>2]=0;Ca(c);if(H[d+40>>2]>0){f=1;while(1){g=f;f=H[H[a+76>>2]+(e>>>3&536870908)>>2]>>>e|0;Ga(c,(g^f^-1)&1);f=f&1;e=e+1|0;if((e|0)>2]){continue}break}}Ba(c,b);H[d+44>>2]=H[a+12>>2];e=H[b+20>>2];a:{if(!!H[b+16>>2]&(e|0)>=0|(e|0)>0){break a}f=d+48|0;wa(b,H[b+4>>2],d+44|0,f);e=H[b+20>>2];g=H[b+16>>2];H[d+44>>2]=H[a+16>>2];if(!!g&(e|0)>=0|(e|0)>0){break a}wa(b,H[b+4>>2],d+44|0,f)}Aa(c);da=d+48|0;return 1}function Gc(a,b){var c=0,d=0,e=0,f=0,g=0;a:{b:{c:{d=H[a>>2];g=H[a+4>>2]-d>>2;e=g+1|0;if(e>>>0<1073741824){d=H[a+8>>2]-d|0;f=d>>1;d=d>>>0<2147483644?e>>>0>>0?f:e:1073741823;if(d){if(d>>>0>=1073741824){break c}c=ra(d<<2)}f=H[b>>2];H[b>>2]=0;e=(g<<2)+c|0;H[e>>2]=f;d=(d<<2)+c|0;g=e+4|0;b=H[a>>2];c=H[a+4>>2];if((b|0)==(c|0)){break b}while(1){c=c-4|0;f=H[c>>2];H[c>>2]=0;e=e-4|0;H[e>>2]=f;if((b|0)!=(c|0)){continue}break}H[a+8>>2]=d;c=H[a+4>>2];H[a+4>>2]=g;b=H[a>>2];H[a>>2]=e;if((b|0)==(c|0)){break a}while(1){c=c-4|0;a=H[c>>2];H[c>>2]=0;if(a){fa[H[H[a>>2]+4>>2]](a)}if((b|0)!=(c|0)){continue}break}break a}ua();X()}ya();X()}H[a+8>>2]=d;H[a+4>>2]=g;H[a>>2]=e}if(b){qa(b)}}function Qa(a,b,c){var d=0,e=0,f=0;f=da-16|0;da=f;H[a+4>>2]=0;a:{b:{if(!b){break b}d=H[a+8>>2];e=d<<5;c:{if(e>>>0>=b>>>0){H[a+4>>2]=b;break c}H[f+8>>2]=0;H[f>>2]=0;H[f+4>>2]=0;if((b|0)<0){break a}if(e>>>0<=1073741822){d=d<<6;e=b+31&-32;d=d>>>0>e>>>0?d:e}else{d=2147483647}Gb(f,d);d=H[a>>2];H[a>>2]=H[f>>2];H[f>>2]=d;e=H[a+4>>2];H[a+4>>2]=b;H[f+4>>2]=e;e=H[a+8>>2];H[a+8>>2]=H[f+8>>2];H[f+8>>2]=e;if(!d){break c}qa(d)}d=b>>>5|0;e=d<<2;a=H[a>>2];if(I[c|0]){a=ta(a,255,e);if((b&-32)==(b|0)){break b}a=a+(d<<2)|0;H[a>>2]=H[a>>2]|-1>>>32-(b&31);break b}a=ta(a,0,e);if((b&-32)==(b|0)){break b}a=a+(d<<2)|0;H[a>>2]=H[a>>2]&(-1>>>32-(b&31)^-1)}da=f+16|0;return}ua();X()}function Ek(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0;H[b>>2]=1;f=b+8|0;c=H[b+8>>2];d=H[b+12>>2]-c|0;if(d>>>0<=4294967291){Ec(f,d+4|0);c=H[f>>2]}c=c+d|0;d=H[a+4>>2];F[c|0]=d;F[c+1|0]=d>>>8;F[c+2|0]=d>>>16;F[c+3|0]=d>>>24;c=H[a+8>>2];if((c|0)!=H[a+12>>2]){d=0;while(1){g=(d<<2)+c|0;c=H[b+8>>2];e=H[b+12>>2]-c|0;if(e>>>0<=4294967291){Ec(f,e+4|0);c=H[f>>2]}c=c+e|0;e=H[g>>2];F[c|0]=e;F[c+1|0]=e>>>8;F[c+2|0]=e>>>16;F[c+3|0]=e>>>24;d=d+1|0;c=H[a+8>>2];if(d>>>0>2]-c>>2>>>0){continue}break}}c=H[b+12>>2];b=H[b+8>>2];c=c-b|0;if(c>>>0<=4294967291){Ec(f,c+4|0);b=H[f>>2]}b=b+c|0;a=H[a+20>>2];F[b|0]=a;F[b+1|0]=a>>>8;F[b+2|0]=a>>>16;F[b+3|0]=a>>>24}function Og(a,b,c){var d=0,e=0,f=0;d=da-16|0;da=d;H[d+12>>2]=b;b=ra(32);H[d>>2]=b;H[d+4>>2]=17;H[d+8>>2]=-2147483616;F[b+17|0]=0;F[b+16|0]=I[1261];e=I[1257]|I[1258]<<8|(I[1259]<<16|I[1260]<<24);f=I[1253]|I[1254]<<8|(I[1255]<<16|I[1256]<<24);F[b+8|0]=f;F[b+9|0]=f>>>8;F[b+10|0]=f>>>16;F[b+11|0]=f>>>24;F[b+12|0]=e;F[b+13|0]=e>>>8;F[b+14|0]=e>>>16;F[b+15|0]=e>>>24;e=I[1249]|I[1250]<<8|(I[1251]<<16|I[1252]<<24);f=I[1245]|I[1246]<<8|(I[1247]<<16|I[1248]<<24);F[b|0]=f;F[b+1|0]=f>>>8;F[b+2|0]=f>>>16;F[b+3|0]=f>>>24;F[b+4|0]=e;F[b+5|0]=e>>>8;F[b+6|0]=e>>>16;F[b+7|0]=e>>>24;tb(sc(a+4|0,d+12|0),d,c);if(F[d+11|0]<0){qa(H[d>>2])}da=d+16|0}function Uc(a,b,c){var d=0,e=0,f=0,g=0,h=0,i=0;f=c-b|0;g=f>>2;d=H[a+8>>2];e=H[a>>2];if(g>>>0<=d-e>>2>>>0){f=H[a+4>>2]-e|0;d=f+b|0;h=f>>2;f=h>>>0>>0?d:c;i=f-b|0;if((b|0)!=(f|0)){xa(e,b,i)}if(g>>>0>h>>>0){b=H[a+4>>2];if((c|0)!=(f|0)){while(1){H[b>>2]=H[d>>2];b=b+4|0;d=d+4|0;if((d|0)!=(c|0)){continue}break}}H[a+4>>2]=b;return}H[a+4>>2]=e+i;return}if(e){H[a+4>>2]=e;qa(e);H[a+8>>2]=0;H[a>>2]=0;H[a+4>>2]=0;d=0}a:{if((f|0)<0){break a}e=d>>1;d=d>>>0<2147483644?e>>>0>g>>>0?e:g:1073741823;if(d>>>0>=1073741824){break a}e=d<<2;d=ra(e);H[a>>2]=d;H[a+8>>2]=d+e;if((b|0)!=(c|0)){c=b;b=f&-4;d=sa(d,c,b)+b|0}H[a+4>>2]=d;return}ua();X()}function Wa(a,b,c,d){var e=0,f=0,g=0,h=0,i=0,j=0,k=0;a:{b:{if((a|0)==(b|0)){break b}H[c>>2]=H[a>>2];e=a+4|0;if((e|0)==(b|0)){break b}a=H[d>>2];g=H[a>>2];i=H[a+4>>2]-g>>3;a=c;while(1){d=H[e>>2];if(d>>>0>=i>>>0){break a}f=H[a>>2];if(f>>>0>=i>>>0){break a}j=a+4|0;c:{if(K[(d<<3)+g>>2]>2]){H[a+4>>2]=f;h=c;d:{if((a|0)==(c|0)){break d}while(1){k=H[e>>2];if(k>>>0>=i>>>0){break a}f=a-4|0;d=H[f>>2];if(d>>>0>=i>>>0){break a}h=a;if(K[(k<<3)+g>>2]>=K[(d<<3)+g>>2]){break d}H[a>>2]=d;a=f;if((c|0)!=(a|0)){continue}break}h=c}H[h>>2]=H[e>>2];break c}H[j>>2]=d}a=j;e=e+4|0;if((e|0)!=(b|0)){continue}break}}return}va();X()}function gk(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,l=0,m=0;f=da-32|0;da=f;d=d-e|0;if((d|0)>0){i=a+8|0;k=0-e<<2;while(1){j=d<<2;g=j+b|0;h=g+k|0;l=H[h>>2];h=H[h+4>>2];m=H[g+4>>2];H[f+16>>2]=H[g>>2];H[f+20>>2]=m;H[f+8>>2]=l;H[f+12>>2]=h;_a(f+24|0,i,f+16|0,f+8|0);g=c+j|0;H[g>>2]=H[f+24>>2];H[g+4>>2]=H[f+28>>2];d=d-e|0;if((d|0)>0){continue}break}}d=(e&1073741823)!=(e|0)?-1:e<<2;d=ta(ra(d),0,d);e=H[d>>2];g=H[d+4>>2];i=H[b+4>>2];H[f+16>>2]=H[b>>2];H[f+20>>2]=i;H[f+8>>2]=e;H[f+12>>2]=g;_a(f+24|0,a+8|0,f+16|0,f+8|0);H[c>>2]=H[f+24>>2];H[c+4>>2]=H[f+28>>2];qa(d);da=f+32|0;return 1}function Tb(a,b,c){var d=0,e=0,f=0,g=0,h=0;f=c-b|0;g=f>>2;d=H[a+8>>2];e=H[a>>2];if(g>>>0<=d-e>>2>>>0){d=H[a+4>>2];f=d-e|0;h=f>>2;f=g>>>0>h>>>0?b+f|0:c;if((f|0)!=(b|0)){while(1){H[e>>2]=H[b>>2];e=e+4|0;b=b+4|0;if((f|0)!=(b|0)){continue}break}}if(g>>>0>h>>>0){b=c-f|0;if((b|0)>0){d=sa(d,f,b)+b|0}H[a+4>>2]=d;return}H[a+4>>2]=e;return}if(e){H[a+4>>2]=e;qa(e);H[a+8>>2]=0;H[a>>2]=0;H[a+4>>2]=0;d=0}a:{if((f|0)<0){break a}e=d>>1;d=d>>>0<2147483644?e>>>0>g>>>0?e:g:1073741823;if(d>>>0>=1073741824){break a}e=d<<2;d=ra(e);H[a>>2]=d;H[a+4>>2]=d;H[a+8>>2]=d+e;if((b|0)!=(c|0)){d=sa(d,b,f)+f|0}H[a+4>>2]=d;return}ua();X()}function wk(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0;g=da-32|0;da=g;H[a+48>>2]=f;i=1;a:{d=H[a+40>>2];d=H[d+4>>2]-H[d>>2]|0;b:{if((d|0)<=0){break b}l=a+44|0;m=a+8|0;f=d>>>2|0;while(1){d=H[a+40>>2];i=H[d>>2];h=H[d+4>>2]-i>>2;d=f-1|0;if(h>>>0<=d>>>0){break a}i=hh(l,H[i+(d<<2)>>2],b,d);if(!i){break b}h=H[a+52>>2];n=H[a+56>>2];j=N(d,e)<<2;k=j+b|0;o=H[k+4>>2];H[g+16>>2]=H[k>>2];H[g+20>>2]=o;H[g+8>>2]=h;H[g+12>>2]=n;_a(g+24|0,m,g+16|0,g+8|0);h=c+j|0;H[h>>2]=H[g+24>>2];H[h+4>>2]=H[g+28>>2];h=f>>>0>1;f=d;if(h){continue}break}}da=g+32|0;return i|0}va();X()}function kk(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0;g=da-32|0;da=g;H[a+48>>2]=f;i=1;a:{d=H[a+40>>2];d=H[d+4>>2]-H[d>>2]|0;b:{if((d|0)<=0){break b}l=a+44|0;m=a+8|0;f=d>>>2|0;while(1){d=H[a+40>>2];i=H[d>>2];h=H[d+4>>2]-i>>2;d=f-1|0;if(h>>>0<=d>>>0){break a}i=ch(l,H[i+(d<<2)>>2],b,d);if(!i){break b}h=H[a+52>>2];n=H[a+56>>2];j=N(d,e)<<2;k=j+b|0;o=H[k+4>>2];H[g+16>>2]=H[k>>2];H[g+20>>2]=o;H[g+8>>2]=h;H[g+12>>2]=n;_a(g+24|0,m,g+16|0,g+8|0);h=c+j|0;H[h>>2]=H[g+24>>2];H[h+4>>2]=H[g+28>>2];h=f>>>0>1;f=d;if(h){continue}break}}da=g+32|0;return i|0}va();X()}function ci(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0,g=0;Xe(a,b,c);e=H[a+96>>2];a=H[a+100>>2];a:{if((e|0)==(a|0)){break a}d=(a-e|0)/12|0;f=d>>>0>1?d:1;g=f&1;a=H[b>>2];c=0;if(d>>>0>=2){f=f&-2;d=0;while(1){b=N(c,12)+e|0;H[b>>2]=H[a+(H[b>>2]<<2)>>2];H[b+4>>2]=H[a+(H[b+4>>2]<<2)>>2];H[b+8>>2]=H[a+(H[b+8>>2]<<2)>>2];b=N(c|1,12)+e|0;H[b>>2]=H[a+(H[b>>2]<<2)>>2];H[b+4>>2]=H[a+(H[b+4>>2]<<2)>>2];H[b+8>>2]=H[a+(H[b+8>>2]<<2)>>2];c=c+2|0;d=d+2|0;if((f|0)!=(d|0)){continue}break}}if(!g){break a}b=N(c,12)+e|0;H[b>>2]=H[a+(H[b>>2]<<2)>>2];H[b+4>>2]=H[a+(H[b+4>>2]<<2)>>2];H[b+8>>2]=H[a+(H[b+8>>2]<<2)>>2]}}function Mg(a,b){var c=0,d=0,e=0,f=0;f=da-16|0;da=f;c=ra(16);H[f>>2]=c;H[f+4>>2]=15;H[f+8>>2]=-2147483632;F[c+15|0]=0;d=I[1587]|I[1588]<<8|(I[1589]<<16|I[1590]<<24);e=I[1583]|I[1584]<<8|(I[1585]<<16|I[1586]<<24);F[c+7|0]=e;F[c+8|0]=e>>>8;F[c+9|0]=e>>>16;F[c+10|0]=e>>>24;F[c+11|0]=d;F[c+12|0]=d>>>8;F[c+13|0]=d>>>16;F[c+14|0]=d>>>24;d=I[1580]|I[1581]<<8|(I[1582]<<16|I[1583]<<24);e=I[1576]|I[1577]<<8|(I[1578]<<16|I[1579]<<24);F[c|0]=e;F[c+1|0]=e>>>8;F[c+2|0]=e>>>16;F[c+3|0]=e>>>24;F[c+4|0]=d;F[c+5|0]=d>>>8;F[c+6|0]=d>>>16;F[c+7|0]=d>>>24;tb(a+4|0,f,b);if(F[f+11|0]<0){qa(H[f>>2])}da=f+16|0}function Ai(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0;a=da-16|0;da=a;a:{if(!b){break a}H[a+8>>2]=0;H[a>>2]=0;H[a+4>>2]=0;h=b+96|0;g=H[b+96>>2];e=(H[b+100>>2]-g|0)/12|0;b:{if(e>>>0>>0){jf(h,c-e|0,a);break b}if(c>>>0>>0){H[b+100>>2]=g+N(c,12)}if(!c){break a}}g=H[h>>2];e=0;while(1){i=N(e,12);f=i+d|0;j=H[f>>2];k=H[f+8>>2];l=H[f+4>>2];f=(H[b+100>>2]-g|0)/12|0;c:{if(f>>>0>e>>>0){e=e+1|0;break c}H[a+8>>2]=0;H[a>>2]=0;H[a+4>>2]=0;e=e+1|0;jf(h,e-f|0,a);g=H[h>>2]}f=g+i|0;H[f+8>>2]=k;H[f+4>>2]=l;H[f>>2]=j;if((c|0)!=(e|0)){continue}break}}da=a+16|0;return(b|0)!=0|0}function Jb(a,b,c,d,e,f,g,h){var i=0,j=0,k=0,l=0;i=1;j=d&2147483647;l=j;k=(j|0)==2147418112;a:{if(k&!c?a|b:k&(c|0)!=0|j>>>0>2147418112){break a}j=h&2147483647;k=(j|0)==2147418112;if(k&!g?e|f:k&(g|0)!=0|j>>>0>2147418112){break a}if(!(a|e|(c|g)|(b|f|(j|l)))){return 0}i=d&h;if((i|0)>0|(i|0)>=0){i=-1;if((c|0)==(g|0)&(d|0)==(h|0)?(b|0)==(f|0)&a>>>0>>0|b>>>0>>0:c>>>0>>0&(d|0)<=(h|0)|(d|0)<(h|0)){break a}return(a^e|c^g|(b^f|d^h))!=0}i=-1;if((c|0)==(g|0)&(d|0)==(h|0)?(b|0)==(f|0)&a>>>0>e>>>0|b>>>0>f>>>0:c>>>0>g>>>0&(d|0)>=(h|0)|(d|0)>(h|0)){break a}i=(a^e|c^g|(b^f|d^h))!=0}return i}function ed(a,b,c,d,e,f,g,h){var i=0,j=0,k=0,l=0;i=da-16|0;da=i;if((b^-1)-17>>>0>=c>>>0){if(I[a+11|0]>>>7|0){k=H[a>>2]}else{k=a}a:{if(b>>>0<2147483623){H[i+8>>2]=b<<1;H[i+12>>2]=b+c;c=da-16|0;da=c;da=c+16|0;c=i+8|0;j=i+12|0;c=H[(K[j>>2]>2]?c:j)>>2];if(c>>>0>=11){j=c+16&-16;c=j-1|0;c=(c|0)==11?j:c}else{c=10}break a}c=-18}j=c+1|0;c=ra(j);if(e){Bb(c,k,e)}if(g){Bb(c+e|0,h,g)}l=e+f|0;h=d-l|0;if((d|0)!=(l|0)){Bb((c+e|0)+g|0,(e+k|0)+f|0,h)}if((b|0)!=10){qa(k)}H[a>>2]=c;H[a+8>>2]=j|-2147483648;b=a;a=h+(e+g|0)|0;H[b+4>>2]=a;F[i+7|0]=0;F[a+c|0]=I[i+7|0];da=i+16|0;return}hb();X()}function ob(a,b){var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0;h=a+4|0;a=H[a+4>>2];a:{b:{if(!a){break b}d=I[b+11|0];c=d<<24>>24<0;f=c?H[b>>2]:b;d=c?H[b+4>>2]:d;b=h;while(1){e=I[a+27|0];c=e<<24>>24<0;e=c?H[a+20>>2]:e;g=e>>>0>d>>>0;i=g?d:e;c:{if(i){j=a+16|0;c=Ea(c?H[j>>2]:j,f,i);if(c){break c}}c=d>>>0>e>>>0?-1:g}c=(c|0)<0;b=c?b:a;a=H[(c?a+4|0:a)>>2];if(a){continue}break}if((b|0)==(h|0)){break b}c=I[b+27|0];a=c<<24>>24<0;d:{c=a?H[b+20>>2]:c;e=c>>>0>>0?c:d;if(e){g=f;f=b+16|0;a=Ea(g,a?H[f>>2]:f,e);if(a){break d}}if(c>>>0>d>>>0){break b}break a}if((a|0)>=0){break a}}b=h}return b}function $f(a,b){var c=0;c=H[b+4>>2];H[a>>2]=H[b>>2];H[a+4>>2]=c;c=H[b+60>>2];H[a+56>>2]=H[b+56>>2];H[a+60>>2]=c;c=H[b+52>>2];H[a+48>>2]=H[b+48>>2];H[a+52>>2]=c;c=H[b+44>>2];H[a+40>>2]=H[b+40>>2];H[a+44>>2]=c;c=H[b+36>>2];H[a+32>>2]=H[b+32>>2];H[a+36>>2]=c;c=H[b+28>>2];H[a+24>>2]=H[b+24>>2];H[a+28>>2]=c;c=H[b+20>>2];H[a+16>>2]=H[b+16>>2];H[a+20>>2]=c;c=H[b+12>>2];H[a+8>>2]=H[b+8>>2];H[a+12>>2]=c;H[a+88>>2]=0;H[a+64>>2]=0;H[a+68>>2]=0;H[a+72>>2]=0;H[a+76>>2]=0;F[a+77|0]=0;F[a+78|0]=0;F[a+79|0]=0;F[a+80|0]=0;F[a+81|0]=0;F[a+82|0]=0;F[a+83|0]=0;F[a+84|0]=0;return a}function cb(a,b,c){var d=0,e=0,f=0,g=0,h=0;g=c-b|0;f=g>>2;e=H[a+8>>2];d=H[a>>2];if(f>>>0<=e-d>>2>>>0){e=H[a+4>>2]-d|0;g=e>>2;e=g>>>0>>0?b+e|0:c;h=e-b|0;if((b|0)!=(e|0)){xa(d,b,h)}if(g>>>0>>0){b=H[a+4>>2];c=c-e|0;if((c|0)>0){b=sa(b,e,c)+c|0}H[a+4>>2]=b;return}H[a+4>>2]=d+h;return}if(d){H[a+4>>2]=d;qa(d);H[a+8>>2]=0;H[a>>2]=0;H[a+4>>2]=0;e=0}a:{if((g|0)<0){break a}d=e>>1;d=e>>>0<2147483644?d>>>0>f>>>0?d:f:1073741823;if(d>>>0>=1073741824){break a}f=d<<2;d=ra(f);H[a>>2]=d;H[a+4>>2]=d;H[a+8>>2]=d+f;if((b|0)!=(c|0)){d=sa(d,b,g)+g|0}H[a+4>>2]=d;return}ua();X()}function Mb(a,b,c){var d=0,e=0,f=0,g=0,h=0,i=0,j=0;H[a+8>>2]=0;H[a>>2]=0;H[a+4>>2]=0;a:{b:{if(b){if(b>>>0>=357913942){break b}d=N(b,12);b=ra(d);H[a>>2]=b;H[a+4>>2]=b;e=b+d|0;H[a+8>>2]=e;f=H[c>>2];c=H[c+4>>2];c:{if((f|0)==(c|0)){c=b;b=d-12|0;ta(c,0,(b-((b>>>0)%12|0)|0)+12|0);break c}c=c-f|0;if((c|0)<0){break a}g=c>>2<<2;h=c>>>2<<2;while(1){H[b+8>>2]=0;H[b>>2]=0;H[b+4>>2]=0;d=ra(c);H[b>>2]=d;H[b+4>>2]=d;H[b+8>>2]=d+g;i=b,j=sa(d,f,c)+h|0,H[i+4>>2]=j;b=b+12|0;if((e|0)!=(b|0)){continue}break}}H[a+4>>2]=e}return}ua();X()}H[b+8>>2]=0;H[b>>2]=0;H[b+4>>2]=0;ua();X()}function pe(a){var b=0,c=0,d=0,e=0;c=H[a+152>>2];if(c){d=c;b=H[a+156>>2];if((c|0)!=(b|0)){while(1){d=b-12|0;e=H[d>>2];if(e){H[b-8>>2]=e;qa(e)}b=d;if((c|0)!=(b|0)){continue}break}d=H[a+152>>2]}H[a+156>>2]=c;qa(d)}c=H[a+140>>2];if(c){d=c;b=H[a+144>>2];if((c|0)!=(b|0)){while(1){d=b-12|0;e=H[d>>2];if(e){H[b-8>>2]=e;qa(e)}b=d;if((c|0)!=(b|0)){continue}break}d=H[a+140>>2]}H[a+144>>2]=c;qa(d)}b=H[a+128>>2];if(b){H[a+132>>2]=b;qa(b)}b=H[a+116>>2];if(b){H[a+120>>2]=b;qa(b)}b=H[a+104>>2];if(b){H[a+108>>2]=b;qa(b)}vb(a+84|0);vb(a- -64|0);vb(a+44|0);Aa(a+12|0)}function vc(a,b){var c=0,d=0,e=0,f=0;c=H[a+16>>2];if(b){H[a+12>>2]=H[a+12>>2]|-2147483648>>>c}b=c+1|0;H[a+16>>2]=b;a:{b:{if((b|0)==32){b=H[a+4>>2];c:{if((b|0)!=H[a+8>>2]){H[b>>2]=H[a+12>>2];H[a+4>>2]=b+4;break c}f=H[a>>2];c=b-f|0;e=c>>2;b=e+1|0;if(b>>>0>=1073741824){break b}d=c>>1;d=c>>>0<2147483644?b>>>0>>0?d:b:1073741823;if(d){if(d>>>0>=1073741824){break a}b=ra(d<<2)}else{b=0}e=b+(e<<2)|0;H[e>>2]=H[a+12>>2];if((c|0)>0){sa(b,f,c)}H[a+8>>2]=b+(d<<2);H[a+4>>2]=e+4;H[a>>2]=b;if(!f){break c}qa(f)}H[a+12>>2]=0;H[a+16>>2]=0}return}ua();X()}ya();X()}function Mh(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;if(qb(a,H[b+8>>2],e)){if(!(H[b+28>>2]==1|H[b+4>>2]!=(c|0))){H[b+28>>2]=d}return}a:{if(qb(a,H[b>>2],e)){if(!(H[b+16>>2]!=(c|0)&H[b+20>>2]!=(c|0))){if((d|0)!=1){break a}H[b+32>>2]=1;return}H[b+32>>2]=d;b:{if(H[b+44>>2]==4){break b}G[b+52>>1]=0;a=H[a+8>>2];fa[H[H[a>>2]+20>>2]](a,b,c,c,1,e);if(I[b+53|0]){H[b+44>>2]=3;if(!I[b+52|0]){break b}break a}H[b+44>>2]=4}H[b+20>>2]=c;H[b+40>>2]=H[b+40>>2]+1;if(H[b+36>>2]!=1|H[b+24>>2]!=2){break a}F[b+54|0]=1;return}a=H[a+8>>2];fa[H[H[a>>2]+24>>2]](a,b,c,d,e)}}function me(a){var b=0,c=0,d=0,e=0;c=H[a+140>>2];if(c){d=c;b=H[a+144>>2];if((c|0)!=(b|0)){while(1){d=b-12|0;e=H[d>>2];if(e){H[b-8>>2]=e;qa(e)}b=d;if((c|0)!=(b|0)){continue}break}d=H[a+140>>2]}H[a+144>>2]=c;qa(d)}c=H[a+128>>2];if(c){d=c;b=H[a+132>>2];if((c|0)!=(b|0)){while(1){d=b-12|0;e=H[d>>2];if(e){H[b-8>>2]=e;qa(e)}b=d;if((c|0)!=(b|0)){continue}break}d=H[a+128>>2]}H[a+132>>2]=c;qa(d)}b=H[a+116>>2];if(b){H[a+120>>2]=b;qa(b)}b=H[a+104>>2];if(b){H[a+108>>2]=b;qa(b)}b=H[a+92>>2];if(b){H[a+96>>2]=b;qa(b)}vb(a+72|0);vb(a+52|0);vb(a+32|0);vb(a+12|0)}function Ig(a,b,c,d,e){var f=0,g=0,h=0;f=da-16|0;da=f;g=Hg(b,c,f+12|0,f+8|0,d);d=H[g>>2];if(d){b=0}else{d=ra(40);c=d+16|0;a:{if(F[e+11|0]>=0){h=H[e+4>>2];H[c>>2]=H[e>>2];H[c+4>>2]=h;H[c+8>>2]=H[e+8>>2];break a}Ia(c,H[e>>2],H[e+4>>2])}c=d+28|0;b:{if(F[e+23|0]>=0){e=e+12|0;h=H[e+4>>2];H[c>>2]=H[e>>2];H[c+4>>2]=h;H[c+8>>2]=H[e+8>>2];break b}Ia(c,H[e+12>>2],H[e+16>>2])}H[d+8>>2]=H[f+12>>2];H[d>>2]=0;H[d+4>>2]=0;H[g>>2]=d;e=d;c=H[H[b>>2]>>2];if(c){H[b>>2]=c;e=H[g>>2]}ub(H[b+4>>2],e);H[b+8>>2]=H[b+8>>2]+1;b=1}F[a+4|0]=b;H[a>>2]=d;da=f+16|0}function cg(a){var b=0,c=0,d=0,e=0;Ca(a);c=H[a+84>>2];a:{if((c|0)<=0){break a}b=c<<5;d=ra((c|0)!=(c&134217727)?-1:b|4);H[d>>2]=c;d=d+4|0;c=d+b|0;b=d;while(1){H[b>>2]=0;H[b+4>>2]=0;H[b+24>>2]=0;H[b+28>>2]=0;H[b+16>>2]=0;H[b+20>>2]=0;H[b+8>>2]=0;H[b+12>>2]=0;b=b+32|0;if((c|0)!=(b|0)){continue}break}e=H[a+80>>2];H[a+80>>2]=d;if(e){c=e-4|0;d=H[c>>2];if(d){b=(d<<5)+e|0;while(1){b=Aa(b-32|0);if((e|0)!=(b|0)){continue}break}}qa(c)}if(H[a+84>>2]<=0){break a}b=0;while(1){Ca(H[a+80>>2]+(b<<5)|0);b=b+1|0;if((b|0)>2]){continue}break}}}function rb(a,b){var c=0,d=0,e=0,f=0,g=0,h=0,i=0;f=da-16|0;da=f;A(+b);g=v(1)|0;d=v(0)|0;c=g&2147483647;e=c+-1048576|0;a:{if((e|0)==2145386495|e>>>0<2145386495){h=d<<28;e=c>>>4|0;c=(c&15)<<28|d>>>4;d=e+1006632960|0;break a}if((c|0)==2146435072|c>>>0>2146435072){h=d<<28;c=(g&15)<<28|d>>>4;d=g>>>4|2147418112;break a}if(!(c|d)){c=0;d=0;break a}e=c;c=c?Q(c):Q(d)+32|0;Sa(f,d,e,0,0,c+49|0);i=H[f>>2];h=H[f+4>>2];e=15372-c<<16;c=H[f+8>>2];d=e|H[f+12>>2]^65536}H[a>>2]=i;H[a+4>>2]=h;H[a+8>>2]=c;H[a+12>>2]=g&-2147483648|d;da=f+16|0}function si(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,f=0,g=0;f=da-48|0;da=f;a:{if(!b){a=0;break a}e=f+16|0;H[e>>2]=0;H[e+4>>2]=0;F[e+24|0]=0;H[e+16>>2]=0;H[e+20>>2]=0;H[e+8>>2]=0;H[e+12>>2]=0;g=0;b:{if((Pb(b,0)|0)==-1){break b}if(c){g=0;if(!(fa[H[H[b>>2]+16>>2]](b)|0)){break b}fa[H[H[b>>2]+20>>2]](b)}Tg(f,a,b,e);a=H[f>>2];if(F[f+15|0]<0){qa(H[f+4>>2])}g=0;if(a){break b}nd(d,H[e>>2],H[e+4>>2]);g=H[e+4>>2]-H[e>>2]|0}a=g;b=H[e+12>>2];H[e+12>>2]=0;if(b){qa(b)}b=H[e>>2];if(!b){break a}H[e+4>>2]=b;qa(b)}da=f+48|0;return a|0}function je(a){a=a|0;var b=0,c=0,d=0;H[a>>2]=2284;d=H[a+60>>2];if(d){b=d;c=H[a- -64>>2];if((b|0)!=(c|0)){while(1){c=c-4|0;b=H[c>>2];H[c>>2]=0;if(b){Oa(b)}if((c|0)!=(d|0)){continue}break}b=H[a+60>>2]}H[a+64>>2]=d;qa(b)}b=H[a+48>>2];if(b){H[a+52>>2]=b;qa(b)}d=H[a+36>>2];if(d){b=d;c=H[a+40>>2];if((b|0)!=(c|0)){while(1){c=c-24|0;fa[H[H[c>>2]>>2]](c)|0;if((c|0)!=(d|0)){continue}break}b=H[a+36>>2]}H[a+40>>2]=d;qa(b)}H[a>>2]=2188;b=H[a+16>>2];if(b){H[a+20>>2]=b;qa(b)}b=H[a+4>>2];if(b){H[a+8>>2]=b;qa(b)}return a|0}function ti(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0;e=da-48|0;da=e;a:{if(!b){a=0;break a}d=e+16|0;H[d>>2]=0;H[d+4>>2]=0;F[d+24|0]=0;H[d+16>>2]=0;H[d+20>>2]=0;H[d+8>>2]=0;H[d+12>>2]=0;f=0;b:{if((Pb(b,0)|0)==-1){break b}f=0;if(!(fa[H[H[b>>2]+16>>2]](b)|0)){break b}fa[H[H[b>>2]+20>>2]](b);Qg(e,a,b,d);a=H[e>>2];if(F[e+15|0]<0){qa(H[e+4>>2])}f=0;if(a){break b}nd(c,H[d>>2],H[d+4>>2]);f=H[d+4>>2]-H[d>>2]|0}a=f;b=H[d+12>>2];H[d+12>>2]=0;if(b){qa(b)}b=H[d>>2];if(!b){break a}H[d+4>>2]=b;qa(b)}da=e+48|0;return a|0}function Ec(a,b){var c=0,d=0,e=0,f=0,g=0,h=0,i=0;a:{c=H[a+4>>2];d=H[a>>2];f=c-d|0;b:{if(f>>>0>>0){g=b-f|0;e=H[a+8>>2];if(g>>>0<=e-c>>>0){h=a,i=ta(c,0,g)+g|0,H[h+4>>2]=i;break b}if((b|0)<0){break a}c=e-d|0;e=c<<1;e=c>>>0<1073741823?b>>>0>>0?e:b:2147483647;c=ra(e);ta(c+f|0,0,g);if((f|0)>0){sa(c,d,f)}H[a+8>>2]=c+e;H[a+4>>2]=b+c;H[a>>2]=c;if(!d){break b}qa(d);break b}if(b>>>0>=f>>>0){break b}H[a+4>>2]=b+d}b=H[a+28>>2];c=b;d=b+1|0;b=H[a+24>>2]+1|0;d=b?c:d;H[a+24>>2]=b;H[a+28>>2]=d;return}ua();X()}function Ib(a,b,c,d,e,f){var g=0,h=0,i=0,j=0;a:{if(f&64){c=f+-64|0;b=c&31;if((c&63)>>>0>=32){c=0;b=e>>>b|0}else{c=e>>>b|0;b=((1<>>b}d=0;e=0;break a}if(!f){break a}i=d;h=64-f|0;g=h&31;if((h&63)>>>0>=32){h=i<>>32-g|e<>>0>=32){g=0;b=c>>>b|0}else{g=c>>>b|0;b=((1<>>b}b=j|b;c=g|h;g=d;d=f&31;if((f&63)>>>0>=32){h=0;d=e>>>d|0}else{h=e>>>d|0;d=((1<>>d}e=h}H[a>>2]=b;H[a+4>>2]=c;H[a+8>>2]=d;H[a+12>>2]=e}function bf(a,b){var c=0,d=0,e=0,f=0,g=0,h=0;c=da-16|0;da=c;e=I[b+11|0];e=e<<24>>24<0?H[b+4>>2]:e;a:{if(e>>>0>255){break a}if(!e){F[c+15|0]=0;b=H[a+20>>2];if(!!H[a+16>>2]&(b|0)>=0|(b|0)>0){break a}wa(a,H[a+4>>2],c+15|0,c+16|0);break a}F[c+14|0]=e;d=H[a+20>>2];if(!!H[a+16>>2]&(d|0)>=0|(d|0)>0){break a}wa(a,H[a+4>>2],c+14|0,c+15|0);d=H[a+20>>2];if(!!H[a+16>>2]&(d|0)>=0|(d|0)>0){break a}g=a;h=H[a+4>>2];a=I[b+11|0];d=a<<24>>24<0;f=d?H[b>>2]:b;wa(g,h,f,(d?H[b+4>>2]:a)+f|0)}da=c+16|0;return e>>>0<256}function ji(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0;d=da-48|0;da=d;e=H[a+4>>2];a:{if(!e){break a}if(b){if(!(fa[H[H[e>>2]+16>>2]](e)|0)){break a}b=H[a+4>>2];fa[H[H[b>>2]+20>>2]](b)}b=d+16|0;H[b>>2]=0;H[b+4>>2]=0;F[b+24|0]=0;H[b+16>>2]=0;H[b+20>>2]=0;H[b+8>>2]=0;H[b+12>>2]=0;Yd(d,H[a>>2],b);a=H[d>>2];if(F[d+15|0]<0){qa(H[d+4>>2])}if(!a){nd(c,H[b>>2],H[b+4>>2]);f=H[b+4>>2]-H[b>>2]|0}a=H[b+12>>2];H[b+12>>2]=0;if(a){qa(a)}a=H[b>>2];if(!a){break a}H[b+4>>2]=a;qa(a)}da=d+48|0;return f|0}function xl(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0;if((fa[H[H[b>>2]+20>>2]](b)|0)<=0){return 1}while(1){a:{f=0;d=Pb(H[H[a+4>>2]+4>>2],fa[H[H[b>>2]+24>>2]](b,e)|0);if((d|0)==-1){break a}c=H[a+4>>2];g=0;b:{if((d|0)<0){break b}h=H[c+4>>2];if(H[h+12>>2]-H[h+8>>2]>>2<=(d|0)){break b}c=H[H[c+8>>2]+(H[H[c+20>>2]+(d<<2)>>2]<<2)>>2];g=fa[H[H[c>>2]+36>>2]](c,d)|0}if(!(fa[H[H[b>>2]+28>>2]](b,g)|0)){break a}f=1;e=e+1|0;if((fa[H[H[b>>2]+20>>2]](b)|0)>(e|0)){continue}}break}return f|0}function Sa(a,b,c,d,e,f){var g=0,h=0,i=0;a:{if(f&64){d=b;e=f+-64|0;b=e&31;if((e&63)>>>0>=32){e=d<>>32-b|c<>>0>=32){h=g<>>32-d|e<>>0>=32){e=0;b=c>>>d|0}else{e=c>>>d|0;b=((1<>>d}d=i|b;e=e|h;b=f&31;if((f&63)>>>0>=32){h=g<>>32-b|c<>2]=b;H[a+4>>2]=c;H[a+8>>2]=d;H[a+12>>2]=e}function uh(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0;d=H[H[a+8>>2]+40>>2];g=ra((d|0)>=0?d:-1);f=H[b>>2];h=H[b+4>>2];if((f|0)!=(h|0)){k=d+g|0;while(1){e=H[(i<<2)+f>>2];d=H[a+8>>2];if(!I[d+84|0]){e=H[H[d+68>>2]+(e<<2)>>2]}l=H[H[d>>2]>>2];j=H[d+40>>2];e=H[d+48>>2]+zl(j,H[d+44>>2],e,0)|0;d=sa(g,l+e|0,j);e=H[c+20>>2];if(!H[c+16>>2]&(e|0)<=0|(e|0)<0){wa(c,H[c+4>>2],d,k);h=H[b+4>>2];f=H[b>>2]}i=i+1|0;if(i>>>0>2>>>0){continue}break}}qa(g);return 1}function ke(a,b){Ba(a,b);Ba(a+32|0,b);Ba(a- -64|0,b);Ba(a+96|0,b);Ba(a+128|0,b);Ba(a+160|0,b);Ba(a+192|0,b);Ba(a+224|0,b);Ba(a+256|0,b);Ba(a+288|0,b);Ba(a+320|0,b);Ba(a+352|0,b);Ba(a+384|0,b);Ba(a+416|0,b);Ba(a+448|0,b);Ba(a+480|0,b);Ba(a+512|0,b);Ba(a+544|0,b);Ba(a+576|0,b);Ba(a+608|0,b);Ba(a+640|0,b);Ba(a+672|0,b);Ba(a+704|0,b);Ba(a+736|0,b);Ba(a+768|0,b);Ba(a+800|0,b);Ba(a+832|0,b);Ba(a+864|0,b);Ba(a+896|0,b);Ba(a+928|0,b);Ba(a+960|0,b);Ba(a+992|0,b);Ba(a+1024|0,b)}function Ke(a,b){if(!a){return 0}a:{b:{if(a){if(b>>>0<=127){break b}c:{if(!H[H[4836]>>2]){if((b&-128)==57216){break b}break c}if(b>>>0<=2047){F[a+1|0]=b&63|128;F[a|0]=b>>>6|192;a=2;break a}if(!((b&-8192)!=57344&b>>>0>=55296)){F[a+2|0]=b&63|128;F[a|0]=b>>>12|224;F[a+1|0]=b>>>6&63|128;a=3;break a}if(b-65536>>>0<=1048575){F[a+3|0]=b&63|128;F[a|0]=b>>>18|240;F[a+2|0]=b>>>6&63|128;F[a+1|0]=b>>>12&63|128;a=4;break a}}H[4799]=25;a=-1}else{a=1}break a}F[a|0]=b;a=1}return a}function Za(a,b,c,d,e,f,g,h,i){var j=0,k=0,l=0,m=0;h=zl(b,c,h,i);i=ea;j=h;h=zl(d,e,f,g);e=j+h|0;d=ea+i|0;i=e;h=i>>>0>>0?d+1|0:d;j=i;k=g;e=0;l=c;d=0;i=zl(g,e,c,d);g=j+i|0;c=ea+h|0;j=g;g=g>>>0>>0?c+1|0:c;h=f;i=b;f=zl(h,0,i,0);b=ea;c=0;d=zl(h,c,l,d);b=b+d|0;c=ea+c|0;c=b>>>0>>0?c+1|0:c;h=c;c=c+j|0;d=g;d=c>>>0>>0?d+1|0:d;h=c;c=d;d=zl(i,m,k,e)+b|0;e=ea;e=b>>>0>d>>>0?e+1|0:e;g=a;i=e;h=i+h|0;H[g+8>>2]=h;H[g+12>>2]=h>>>0>>0?c+1|0:c;H[g>>2]=f;H[g+4>>2]=d}function Wi(a,b){a=a|0;b=b|0;var c=0,d=0;c=da-16|0;da=c;d=H[a+8>>2];a:{if((d|0)==H[a+12>>2]){b=We(ra(76),b);H[b+36>>2]=0;H[b+40>>2]=0;H[b>>2]=2284;H[b+44>>2]=0;H[b+48>>2]=0;H[b+52>>2]=0;H[b+56>>2]=0;H[b+60>>2]=0;H[b+64>>2]=0;H[b+68>>2]=0;H[b+72>>2]=0;H[c+8>>2]=b;d=H[a+12>>2];b:{if(d>>>0>2]){H[c+8>>2]=0;H[d>>2]=b;H[a+12>>2]=d+4;break b}Gc(a+8|0,c+8|0)}a=H[c+8>>2];H[c+8>>2]=0;if(!a){break a}fa[H[H[a>>2]+4>>2]](a);break a}lc(H[d>>2],b)}da=c+16|0;return 1}function Cc(a){a=a|0;var b=0,c=0,d=0;H[a>>2]=14964;b=H[a+68>>2];if(b){H[a+72>>2]=b;qa(b)}b=H[a+56>>2];if(b){H[a+60>>2]=b;qa(b)}b=H[a+44>>2];if(b){H[a+48>>2]=b;qa(b)}b=H[a+32>>2];if(b){H[a+36>>2]=b;qa(b)}b=H[a+20>>2];if(b){H[a+24>>2]=b;qa(b)}b=H[a+8>>2];if(b){d=b;c=H[a+12>>2];if((b|0)!=(c|0)){while(1){c=c-4|0;d=H[c>>2];H[c>>2]=0;if(d){Oa(d)}if((b|0)!=(c|0)){continue}break}d=H[a+8>>2]}H[a+12>>2]=b;qa(d)}b=H[a+4>>2];H[a+4>>2]=0;if(b){kf(b)}return a|0}function rh(a){a=a|0;var b=0,c=0,d=0;H[a>>2]=2496;b=H[a+72>>2];H[a+72>>2]=0;if(b){fa[H[H[b>>2]+4>>2]](b)}b=H[a+60>>2];if(b){H[a- -64>>2]=b;qa(b)}b=H[a+48>>2];if(b){qa(b)}d=H[a+36>>2];if(d){c=H[a+40>>2];b=d;if((c|0)!=(b|0)){while(1){c=c-4|0;b=H[c>>2];H[c>>2]=0;if(b){fa[H[H[b>>2]+4>>2]](b)}if((c|0)!=(d|0)){continue}break}b=H[a+36>>2]}H[a+40>>2]=d;qa(b)}H[a>>2]=2188;b=H[a+16>>2];if(b){H[a+20>>2]=b;qa(b)}b=H[a+4>>2];if(b){H[a+8>>2]=b;qa(b)}return a|0}function Ua(a){H[a>>2]=-1;H[a+4>>2]=0;H[a+8>>2]=0;H[a+32>>2]=0;H[a+36>>2]=0;F[a+28|0]=1;H[a+20>>2]=0;H[a+24>>2]=0;H[a+12>>2]=0;H[a+16>>2]=0;H[a+40>>2]=0;H[a+44>>2]=0;H[a+48>>2]=0;H[a+52>>2]=0;H[a+56>>2]=0;H[a+60>>2]=0;H[a+64>>2]=0;H[a+68>>2]=0;H[a+76>>2]=0;H[a+80>>2]=0;H[a+84>>2]=0;H[a+88>>2]=0;H[a+92>>2]=0;H[a+96>>2]=0;H[a+72>>2]=a+4;H[a+104>>2]=0;H[a+108>>2]=0;F[a+100|0]=1;H[a+112>>2]=0;H[a+116>>2]=0;H[a+120>>2]=0;H[a+124>>2]=0;H[a+128>>2]=0}function Fa(a,b){var c=0,d=0,e=0,f=0,g=0,h=0,i=0;e=H[a+8>>2];c=H[a+4>>2];if(e-c>>2>>>0>=b>>>0){if(b){b=b<<2;c=ta(c,0,b)+b|0}H[a+4>>2]=c;return}a:{f=H[a>>2];g=c-f|0;h=g>>2;d=h+b|0;if(d>>>0<1073741824){c=0;e=e-f|0;i=e>>1;d=e>>>0<2147483644?d>>>0>>0?i:d:1073741823;if(d){if(d>>>0>=1073741824){break a}c=ra(d<<2)}b=b<<2;b=ta((h<<2)+c|0,0,b)+b|0;if((g|0)>0){sa(c,f,g)}H[a+8>>2]=(d<<2)+c;H[a+4>>2]=b;H[a>>2]=c;if(f){qa(f)}return}ua();X()}ya();X()}function Ya(a,b){var c=0,d=0,e=0,f=0,g=0,h=0,i=0;e=H[a+8>>2];c=H[a+4>>2];if(e-c>>3>>>0>=b>>>0){if(b){b=b<<3;c=ta(c,0,b)+b|0}H[a+4>>2]=c;return}a:{f=H[a>>2];g=c-f|0;h=g>>3;d=h+b|0;if(d>>>0<536870912){c=0;e=e-f|0;i=e>>2;d=e>>>0<2147483640?d>>>0>>0?i:d:536870911;if(d){if(d>>>0>=536870912){break a}c=ra(d<<3)}b=b<<3;b=ta((h<<3)+c|0,0,b)+b|0;if((g|0)>0){sa(c,f,g)}H[a+8>>2]=(d<<3)+c;H[a+4>>2]=b;H[a>>2]=c;if(f){qa(f)}return}ua();X()}ya();X()}function Ma(a,b){var c=0,d=0,e=0,f=0,g=0,h=0,i=0;a:{c=H[a+4>>2];e=H[a>>2];f=c-e|0;b:{if(f>>>0>>0){g=b-f|0;d=H[a+8>>2];if(g>>>0<=d-c>>>0){h=a,i=ta(c,0,g)+g|0,H[h+4>>2]=i;return}if((b|0)<0){break a}c=d-e|0;d=c<<1;d=c>>>0<1073741823?b>>>0>>0?d:b:2147483647;c=ra(d);ta(c+f|0,0,g);if((f|0)>0){sa(c,e,f)}H[a+8>>2]=c+d;H[a+4>>2]=b+c;H[a>>2]=c;if(!e){break b}qa(e);return}if(b>>>0>=f>>>0){break b}H[a+4>>2]=b+e}return}ua();X()}function Je(a,b,c,d,e){var f=0,g=0,h=0,i=0;h=-1;f=d&2147483647;i=f;g=(f|0)==2147418112;a:{if(g&!c?a|b:g&(c|0)!=0|f>>>0>2147418112){break a}f=e&2147483647;g=(f|0)==2147418112;if(g?0:g&0|f>>>0>2147418112){break a}if(!(a|c|(f|i|b))){return 0}f=d&e;if((f|0)>0|(f|0)>=0){if(!c&(d|0)==(e|0)?0:(d|0)<(e|0)){break a}return(a|c|(d^e|b))!=0}if(!c&(d|0)==(e|0)?a|b:(c|0)!=0&(d|0)>=(e|0)|(d|0)>(e|0)){break a}h=(a|c|(d^e|b))!=0}return h}function Lg(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0;d=da-16|0;da=d;e=H[a+4>>2];a:{if((e|0)==-1){break a}c=H[b+20>>2];if(!!H[b+16>>2]&(c|0)>=0|(c|0)>0){break a}wa(b,H[b+4>>2],H[a+8>>2],H[a+12>>2]);c=H[b+20>>2];if(!!H[b+16>>2]&(c|0)>=0|(c|0)>0){break a}wa(b,H[b+4>>2],a+20|0,a+24|0);c=H[b+20>>2];f=H[b+16>>2];F[d+15|0]=H[a+4>>2];if(!!f&(c|0)>=0|(c|0)>0){break a}wa(b,H[b+4>>2],d+15|0,d+16|0)}da=d+16|0;return(e|0)!=-1|0}function $i(a){a=a|0;var b=0,c=0,d=0,e=0,f=0;a:{b=H[a+8>>2];b:{if((b|0)<0){break b}c=H[a+4>>2];e=H[c>>2];d=H[c+4>>2]-e>>2;c:{if(d>>>0>>0){Fa(c,b-d|0);f=H[a+8>>2];break c}f=b;if(b>>>0>=d>>>0){break c}H[c+4>>2]=e+(b<<2);f=b}d=f;if((d|0)<=0){break b}a=H[a+4>>2];c=H[a>>2];e=H[a+4>>2]-c>>2;a=0;while(1){if((a|0)==(e|0)){break a}H[c+(a<<2)>>2]=a;a=a+1|0;if((d|0)!=(a|0)){continue}break}}return(b^-1)>>>31|0}va();X()}function le(a){Ca(a);Ca(a+32|0);Ca(a- -64|0);Ca(a+96|0);Ca(a+128|0);Ca(a+160|0);Ca(a+192|0);Ca(a+224|0);Ca(a+256|0);Ca(a+288|0);Ca(a+320|0);Ca(a+352|0);Ca(a+384|0);Ca(a+416|0);Ca(a+448|0);Ca(a+480|0);Ca(a+512|0);Ca(a+544|0);Ca(a+576|0);Ca(a+608|0);Ca(a+640|0);Ca(a+672|0);Ca(a+704|0);Ca(a+736|0);Ca(a+768|0);Ca(a+800|0);Ca(a+832|0);Ca(a+864|0);Ca(a+896|0);Ca(a+928|0);Ca(a+960|0);Ca(a+992|0);Ca(a+1024|0)}function Qg(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,f=0;e=da-96|0;da=e;f=Fg(e+40|0,c);Sg(e,b,c);Eg(f,e);Ka(e+24|0,H[e+28>>2]);nb(e+12|0,H[e+16>>2]);Ka(e,H[e+4>>2]);Yd(a,f,d);if(!H[a>>2]){if(F[a+15|0]<0){qa(H[a+4>>2])}H[b+40>>2]=H[f+40>>2];H[b+44>>2]=H[f+44>>2];H[a+8>>2]=0;H[a+12>>2]=0;H[a>>2]=0;H[a+4>>2]=0}H[f>>2]=10256;Ka(f+28|0,H[f+32>>2]);nb(f+16|0,H[f+20>>2]);Ka(f+4|0,H[f+8>>2]);da=e+96|0}function Ra(a,b,c){var d=0,e=0,f=0;if(!(I[a|0]&32)){a:{d=b;b=a;a=H[b+16>>2];b:{if(!a){if(Pe(b)){break b}a=H[b+16>>2]}f=H[b+20>>2];if(a-f>>>0>>0){fa[H[b+36>>2]](b,d,c)|0;break a}c:{if(H[b+80>>2]<0){break c}a=c;while(1){e=a;if(!a){break c}a=e-1|0;if(I[d+a|0]!=10){continue}break}if(fa[H[b+36>>2]](b,d,e)>>>0>>0){break b}d=d+e|0;c=c-e|0;f=H[b+20>>2]}sa(f,d,c);H[b+20>>2]=H[b+20>>2]+c}}}}function Qj(a){a=a|0;var b=0,c=0,d=0;H[a>>2]=10404;b=H[a+64>>2];H[a+64>>2]=0;if(b){fa[H[H[b>>2]+4>>2]](b)}H[a>>2]=12468;b=H[a+32>>2];if(b){H[a+36>>2]=b;qa(b)}b=H[a+20>>2];if(b){H[a+24>>2]=b;qa(b)}d=H[a+8>>2];if(d){c=H[a+12>>2];b=d;if((c|0)!=(b|0)){while(1){c=c-4|0;b=H[c>>2];H[c>>2]=0;if(b){fa[H[H[b>>2]+4>>2]](b)}if((c|0)!=(d|0)){continue}break}b=H[a+8>>2]}H[a+12>>2]=d;qa(b)}return a|0}function tl(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0,i=0;d=da-16|0;da=d;f=He(a,b);a:{if(!f){break a}c=H[a+36>>2];if((c|0)==H[a+40>>2]){break a}g=d+16|0;while(1){c=H[(e<<2)+c>>2];h=d,i=fa[H[H[c>>2]+32>>2]](c)|0,F[h+15|0]=i;c=H[b+20>>2];if(!H[b+16>>2]&(c|0)<=0|(c|0)<0){wa(b,H[b+4>>2],d+15|0,g)}e=e+1|0;c=H[a+36>>2];if(e>>>0>2]-c>>2>>>0){continue}break}}da=d+16|0;return f|0}function Pj(a){a=a|0;var b=0,c=0,d=0;H[a>>2]=10404;b=H[a+64>>2];H[a+64>>2]=0;if(b){fa[H[H[b>>2]+4>>2]](b)}H[a>>2]=12468;b=H[a+32>>2];if(b){H[a+36>>2]=b;qa(b)}b=H[a+20>>2];if(b){H[a+24>>2]=b;qa(b)}d=H[a+8>>2];if(d){c=H[a+12>>2];b=d;if((c|0)!=(b|0)){while(1){c=c-4|0;b=H[c>>2];H[c>>2]=0;if(b){fa[H[H[b>>2]+4>>2]](b)}if((c|0)!=(d|0)){continue}break}b=H[a+8>>2]}H[a+12>>2]=d;qa(b)}qa(a)}function dd(a,b,c){var d=0,e=0,f=0;f=da-16|0;da=f;d=I[a+11|0]>>>7|0?(H[a+8>>2]&2147483647)-1|0:10;if(I[a+11|0]>>>7|0){e=H[a+4>>2]}else{e=I[a+11|0]}a:{if(d-e>>>0>=c>>>0){if(!c){break a}if(I[a+11|0]>>>7|0){d=H[a>>2]}else{d=a}Bb(d+e|0,b,c);b=c+e|0;b:{if(I[a+11|0]>>>7|0){H[a+4>>2]=b;break b}F[a+11|0]=b}F[f+15|0]=0;F[b+d|0]=I[f+15|0];break a}ed(a,d,(c+e|0)-d|0,e,e,0,c,b)}da=f+16|0}function gg(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0;c=H[a+176>>2];d=H[a+172>>2];e=(c-d|0)/136|0;a:{if((c|0)==(d|0)){break a}c=0;b:{c:{d:{if(H[d>>2]==(b|0)){b=1}else{f=e>>>0>1?e:1;while(1){c=c+1|0;if((f|0)==(c|0)){break d}if(H[N(c,136)+d>>2]!=(b|0)){continue}break}b=c>>>0>>0}if(b){break c}break a}if(c>>>0>>0){break b}break a}d=(N(c,136)+d|0)+104|0}return d|0}return a+40|0}function yb(a,b,c){var d=0,e=0,f=0,g=0;d=da-16|0;da=d;F[d+15|0]=a&127;a:{b:{if(!b&a>>>0>=128|b){F[d+15|0]=a|128;f=H[c+20>>2];e=0;if(!!H[c+16>>2]&(f|0)>=0|(f|0)>0){break b}wa(c,H[c+4>>2],d+15|0,d+16|0);a=yb((b&127)<<25|a>>>7,b>>>7|0,c);break a}b=H[c+16>>2];a=H[c+20>>2];if(!b&(a|0)<=0|(a|0)<0){wa(c,H[c+4>>2],d+15|0,d+16|0)}e=!b&(a|0)<=0|(a|0)<0}g=e;a=0}da=d+16|0;return a|g}function Lf(a,b){a=a|0;b=b|0;var c=0,d=0;c=da-16|0;da=c;a:{if(!b){d=ra(76);b=ra(12);H[b+8>>2]=H[H[a+4>>2]+80>>2];H[b>>2]=12404;H[b+4>>2]=0;d=ge(d,b,0);H[c+8>>2]=d;b=H[a+12>>2];b:{if(b>>>0>2]){H[c+8>>2]=0;H[b>>2]=d;H[a+12>>2]=b+4;break b}Gc(a+8|0,c+8|0)}a=H[c+8>>2];H[c+8>>2]=0;if(!a){break a}fa[H[H[a>>2]+4>>2]](a);break a}lc(H[H[a+8>>2]>>2],b)}da=c+16|0;return 1}function Bh(a,b){a=a|0;b=b|0;var c=0,d=0;c=H[a+36>>2];if((c|0)!=H[a+40>>2]){while(1){c=N(d,24)+c|0;fa[H[H[c>>2]+28>>2]](c,b)|0;d=d+1|0;c=H[a+36>>2];if(d>>>0<(H[a+40>>2]-c|0)/24>>>0){continue}break}}c=H[a+48>>2];if((c|0)!=H[a+52>>2]){d=0;while(1){c=H[(d<<2)+c>>2];Da((c|0)<0?(c^-1)<<1|1:c<<1,b);d=d+1|0;c=H[a+48>>2];if(d>>>0>2]-c>>2>>>0){continue}break}}return 1}function md(a,b,c,d,e,f){var g=0,h=0,i=0;i=-1;a:{if(!a){break a}g=Hc(ra(96));Dd(g,b,d<<24>>24,f,c);b=id(a,g);if(c){g=H[H[a+8>>2]+(b<<2)>>2];while(1){f=H[g+40>>2];sa(H[H[g>>2]>>2]+N(f,I[g+84|0]?h:H[H[g+68>>2]+(h<<2)>>2])|0,(N(d,h)<<2)+e|0,f);h=h+1|0;if((h|0)!=(c|0)){continue}break}}d=H[a+80>>2];b:{if(!d){H[a+80>>2]=c;break b}if((c|0)!=(d|0)){break a}}i=b}return i}function lf(a,b,c,d,e,f){var g=0,h=0,i=0;i=-1;a:{if(!a){break a}g=Hc(ra(96));Dd(g,b,d<<24>>24,f,c);b=id(a,g);if(c){g=H[H[a+8>>2]+(b<<2)>>2];while(1){f=H[g+40>>2];sa(H[H[g>>2]>>2]+N(f,I[g+84|0]?h:H[H[g+68>>2]+(h<<2)>>2])|0,(N(d,h)<<1)+e|0,f);h=h+1|0;if((h|0)!=(c|0)){continue}break}}d=H[a+80>>2];b:{if(!d){H[a+80>>2]=c;break b}if((c|0)!=(d|0)){break a}}i=b}return i}function Lc(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0,g=0,h=0,i=0;d=da+-64|0;da=d;e=fa[H[H[a>>2]+44>>2]](a,b)|0;a=fa[H[H[a>>2]+40>>2]](a,b)|0;f=Kc(d);g=H[b+56>>2];h=e<<24>>24;i=a;a=a-1|0;if(a>>>0<=10){a=H[(a<<2)+14832>>2]}else{a=-1}a=N(a,e);Ed(f,g,0,h,i,a,a>>31);a=$f(ra(96),f);Cd(a,c);F[a+84|0]=1;H[a+72>>2]=H[a+68>>2];H[a+60>>2]=H[b+60>>2];da=d- -64|0;return a|0}function mf(a,b,c,d,e,f){var g=0,h=0,i=0;i=-1;a:{if(!a){break a}g=Hc(ra(96));Dd(g,b,d<<24>>24,f,c);b=id(a,g);if(c){g=H[H[a+8>>2]+(b<<2)>>2];while(1){f=H[g+40>>2];sa(H[H[g>>2]>>2]+N(f,I[g+84|0]?h:H[H[g+68>>2]+(h<<2)>>2])|0,N(d,h)+e|0,f);h=h+1|0;if((h|0)!=(c|0)){continue}break}}d=H[a+80>>2];b:{if(!d){H[a+80>>2]=c;break b}if((c|0)!=(d|0)){break a}}i=b}return i}function Lh(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;if(qb(a,H[b+8>>2],e)){if(!(H[b+28>>2]==1|H[b+4>>2]!=(c|0))){H[b+28>>2]=d}return}a:{if(!qb(a,H[b>>2],e)){break a}if(!(H[b+16>>2]!=(c|0)&H[b+20>>2]!=(c|0))){if((d|0)!=1){break a}H[b+32>>2]=1;return}H[b+20>>2]=c;H[b+32>>2]=d;H[b+40>>2]=H[b+40>>2]+1;if(!(H[b+36>>2]!=1|H[b+24>>2]!=2)){F[b+54|0]=1}H[b+44>>2]=4}}function Dd(a,b,c,d,e){var f=0,g=0,h=0;f=ra(32);H[f+16>>2]=0;H[f+20>>2]=0;H[f+8>>2]=0;H[f>>2]=0;H[f+4>>2]=0;H[f+24>>2]=0;H[f+28>>2]=0;g=H[a+64>>2];H[a+64>>2]=f;if(g){f=H[g>>2];if(f){H[g+4>>2]=f;qa(f)}qa(g);f=H[a+64>>2]}h=b;g=d-1|0;if(g>>>0<=10){b=H[(g<<2)+14832>>2]}else{b=-1}b=N(b,c);Ed(a,h,f,c,d,b,b>>31);Cd(a,e);F[a+84|0]=1;H[a+72>>2]=H[a+68>>2]}function Da(a,b){var c=0,d=0,e=0,f=0;c=da-16|0;da=c;F[c+15|0]=a&127;a:{b:{if(a>>>0>=128){F[c+15|0]=a|128;d=H[b+20>>2];e=0;if(!!H[b+16>>2]&(d|0)>=0|(d|0)>0){break b}wa(b,H[b+4>>2],c+15|0,c+16|0);a=Da(a>>>7|0,b);break a}d=H[b+16>>2];a=H[b+20>>2];if(!d&(a|0)<=0|(a|0)<0){wa(b,H[b+4>>2],c+15|0,c+16|0)}e=!d&(a|0)<=0|(a|0)<0}f=e;a=0}da=c+16|0;return a|f}function Sh(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0,g=0;e=H[a+84>>2];f=H[e+4>>2];g=H[a+28>>2];d=H[a+20>>2]-g|0;d=d>>>0>f>>>0?f:d;if(d){sa(H[e>>2],g,d);H[e>>2]=d+H[e>>2];f=H[e+4>>2]-d|0;H[e+4>>2]=f}d=H[e>>2];f=c>>>0>f>>>0?f:c;if(f){sa(d,b,f);d=f+H[e>>2]|0;H[e>>2]=d;H[e+4>>2]=H[e+4>>2]-f}F[d|0]=0;b=H[a+44>>2];H[a+28>>2]=b;H[a+20>>2]=b;return c|0}function ye(a,b,c,d){F[a+53|0]=1;a:{if(H[a+4>>2]!=(c|0)){break a}F[a+52|0]=1;c=H[a+16>>2];b:{if(!c){H[a+36>>2]=1;H[a+24>>2]=d;H[a+16>>2]=b;if((d|0)!=1){break a}if(H[a+48>>2]==1){break b}break a}if((b|0)==(c|0)){c=H[a+24>>2];if((c|0)==2){H[a+24>>2]=d;c=d}if(H[a+48>>2]!=1){break a}if((c|0)==1){break b}break a}H[a+36>>2]=H[a+36>>2]+1}F[a+54|0]=1}}function Dc(a,b){var c=0,d=0,e=0,f=0;d=1;a:{if((b|0)==-1){break a}b=N(b,3);if((b|0)==-1){break a}d=-1;e=H[a>>2];a=e+(b<<2)|0;c=b+1|0;c=(c>>>0)%3|0?c:b-2|0;if((c|0)!=-1){d=H[(c<<2)+e>>2]}a=H[a>>2];f=(a|0)==(d|0);b:{c:{if((b>>>0)%3|0){b=b-1|0;break c}b=b+2|0;c=-1;if((b|0)==-1){break b}}c=H[(b<<2)+e>>2]}d=f|(c|0)==(a|0)|(d|0)==(c|0)}return d}function Ph(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0;e=da+-64|0;da=e;d=1;a:{if(qb(a,b,0)){break a}d=0;if(!b){break a}b=$c(b,18476,18524);d=0;if(!b){break a}d=e+8|0;ta(d|4,0,52);H[e+56>>2]=1;H[e+20>>2]=-1;H[e+16>>2]=a;H[e+8>>2]=b;fa[H[H[b>>2]+28>>2]](b,d,H[c>>2],1);a=H[e+32>>2];if((a|0)==1){H[c>>2]=H[e+24>>2]}d=(a|0)==1}da=e- -64|0;return d|0}function ul(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0;H[a+32>>2]=c;H[a+28>>2]=b;a:{if(!(fa[H[H[a>>2]+52>>2]](a)|0)){break a}e=H[a+4>>2];if((e|0)==H[a+8>>2]){return 1}c=0;while(1){d=c<<2;f=H[d+H[a+36>>2]>>2];d=fa[H[H[f>>2]+8>>2]](f,b,H[d+e>>2])|0;if(!d){break a}c=c+1|0;e=H[a+4>>2];if(c>>>0>2]-e>>2>>>0){continue}break}}return d|0}function Jj(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0;d=da-16|0;da=d;H[a+4>>2]=b;b=H[b+64>>2];e=H[b>>2];b=H[b+4>>2];F[d+15|0]=0;Qa(a+24|0,(b-e>>2>>>0)/3|0,d+15|0);b=H[a+4>>2];e=H[b+56>>2];b=H[b+52>>2];F[d+14|0]=0;Qa(a+36|0,e-b>>2,d+14|0);b=H[c+12>>2];H[a+16>>2]=H[c+8>>2];H[a+20>>2]=b;b=H[c+4>>2];H[a+8>>2]=H[c>>2];H[a+12>>2]=b;da=d+16|0}function zc(a){var b=0,c=0,d=0,e=0;while(1){b=a;a=b+1|0;c=F[b|0];if((c|0)==32|c-9>>>0<5){continue}break}a:{b:{c:{c=F[b|0];switch(c-43|0){case 0:break b;case 2:break c;default:break a}}e=1}c=F[a|0];b=a}if(c-48>>>0<10){while(1){d=(N(d,10)-F[b|0]|0)+48|0;a=F[b+1|0];b=b+1|0;if(a-48>>>0<10){continue}break}}return e?d:0-d|0}function yj(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0;d=da-16|0;da=d;H[a+4>>2]=b;e=H[b>>2];b=H[b+4>>2];F[d+15|0]=0;Qa(a+24|0,(b-e>>2>>>0)/3|0,d+15|0);b=H[a+4>>2];e=H[b+28>>2];b=H[b+24>>2];F[d+14|0]=0;Qa(a+36|0,e-b>>2,d+14|0);b=H[c+12>>2];H[a+16>>2]=H[c+8>>2];H[a+20>>2]=b;b=H[c+4>>2];H[a+8>>2]=H[c>>2];H[a+12>>2]=b;da=d+16|0}function ej(a){a=a|0;var b=0,c=0,d=0;H[a>>2]=12468;b=H[a+32>>2];if(b){H[a+36>>2]=b;qa(b)}b=H[a+20>>2];if(b){H[a+24>>2]=b;qa(b)}d=H[a+8>>2];if(d){c=H[a+12>>2];b=d;if((c|0)!=(b|0)){while(1){c=c-4|0;b=H[c>>2];H[c>>2]=0;if(b){fa[H[H[b>>2]+4>>2]](b)}if((c|0)!=(d|0)){continue}break}b=H[a+8>>2]}H[a+12>>2]=d;qa(b)}return a|0}function yd(a){a=a|0;var b=0,c=0,d=0;H[a>>2]=12468;b=H[a+32>>2];if(b){H[a+36>>2]=b;qa(b)}b=H[a+20>>2];if(b){H[a+24>>2]=b;qa(b)}d=H[a+8>>2];if(d){c=H[a+12>>2];b=d;if((c|0)!=(b|0)){while(1){c=c-4|0;b=H[c>>2];H[c>>2]=0;if(b){fa[H[H[b>>2]+4>>2]](b)}if((c|0)!=(d|0)){continue}break}b=H[a+8>>2]}H[a+12>>2]=d;qa(b)}qa(a)}function eh(a,b){a=a|0;b=b|0;var c=0,d=0,e=0;c=da-16|0;da=c;H[c+12>>2]=H[a+12>>2];d=H[b+20>>2];a:{if(!!H[b+16>>2]&(d|0)>=0|(d|0)>0){break a}wa(b,H[b+4>>2],c+12|0,c+16|0);d=H[b+20>>2];e=H[b+16>>2];H[c+8>>2]=H[a+16>>2];if(!!e&(d|0)>=0|(d|0)>0){break a}wa(b,H[b+4>>2],c+8|0,c+12|0)}Ba(a+112|0,b);da=c+16|0;return 1}function Wg(a,b){a=a|0;b=b|0;var c=0,d=0,e=0;c=da-16|0;da=c;H[c+12>>2]=H[a+12>>2];d=H[b+20>>2];a:{if(!!H[b+16>>2]&(d|0)>=0|(d|0)>0){break a}wa(b,H[b+4>>2],c+12|0,c+16|0);d=H[b+20>>2];e=H[b+16>>2];H[c+8>>2]=H[a+24>>2];if(!!e&(d|0)>=0|(d|0)>0){break a}wa(b,H[b+4>>2],c+8|0,c+12|0)}Ba(a+96|0,b);da=c+16|0;return 1}function hd(a){var b=0;b=1;a:{if((a|0)>=1024){b=898846567431158e293;if(a>>>0<2047){a=a-1023|0;break a}b=Z;a=((a|0)<3069?a:3069)-2046|0;break a}if((a|0)>-1023){break a}b=2004168360008973e-307;if(a>>>0>4294965304){a=a+969|0;break a}b=0;a=((a|0)>-2960?a:-2960)+1938|0}x(0,0);x(1,a+1023<<20);return b*+z()}function bl(a,b){a=a|0;b=b|0;var c=0,d=0,e=0;c=da-16|0;da=c;H[c+12>>2]=H[a+12>>2];d=H[b+20>>2];a:{if(!!H[b+16>>2]&(d|0)>=0|(d|0)>0){break a}wa(b,H[b+4>>2],c+12|0,c+16|0);d=H[b+20>>2];e=H[b+16>>2];H[c+8>>2]=H[a+16>>2];if(!!e&(d|0)>=0|(d|0)>0){break a}wa(b,H[b+4>>2],c+8|0,c+12|0)}da=c+16|0;return 1}function Dk(a,b){a=a|0;b=b|0;var c=0,d=0,e=0;c=da-16|0;da=c;H[c+12>>2]=H[a+12>>2];d=H[b+20>>2];a:{if(!!H[b+16>>2]&(d|0)>=0|(d|0)>0){break a}wa(b,H[b+4>>2],c+12|0,c+16|0);d=H[b+20>>2];e=H[b+16>>2];H[c+8>>2]=H[a+24>>2];if(!!e&(d|0)>=0|(d|0)>0){break a}wa(b,H[b+4>>2],c+8|0,c+12|0)}da=c+16|0;return 1}function Ea(a,b,c){var d=0,e=0;a:{b:{if(c>>>0>=4){if((a|b)&3){break b}while(1){if(H[a>>2]!=H[b>>2]){break b}b=b+4|0;a=a+4|0;c=c-4|0;if(c>>>0>3){continue}break}}if(!c){break a}}while(1){d=I[a|0];e=I[b|0];if((d|0)==(e|0)){b=b+1|0;a=a+1|0;c=c-1|0;if(c){continue}break a}break}return d-e|0}return 0}function bb(a,b){var c=0,d=0,e=0,f=0;d=da-16|0;da=d;a:{if(!b){b=0;break a}c=b>>31;e=(c^b)-c|0;c=Q(e);Sa(d,e,0,0,0,c+81|0);e=0+H[d+8>>2]|0;c=(H[d+12>>2]^65536)+(16414-c<<16)|0;c=e>>>0>>0?c+1|0:c;f=b&-2147483648|c;c=H[d+4>>2];b=H[d>>2]}H[a>>2]=b;H[a+4>>2]=c;H[a+8>>2]=e;H[a+12>>2]=f;da=d+16|0}function wj(a){a=a|0;var b=0;H[a+8>>2]=11436;H[a>>2]=11224;b=H[a+96>>2];if(b){H[a+100>>2]=b;qa(b)}b=H[a+80>>2];if(b){H[a+84>>2]=b;qa(b)}b=H[a+68>>2];if(b){H[a+72>>2]=b;qa(b)}b=H[a+56>>2];if(b){H[a+60>>2]=b;qa(b)}H[a+8>>2]=11672;b=H[a+44>>2];if(b){qa(b)}b=H[a+32>>2];if(b){qa(b)}return a|0}function kf(a){var b=0,c=0,d=0;if(a){d=H[a+24>>2];if(d){b=d;c=H[a+28>>2];if((b|0)!=(c|0)){while(1){c=c-4|0;b=H[c>>2];H[c>>2]=0;if(b){lb(b+12|0,H[b+16>>2]);kb(b,H[b+4>>2]);qa(b)}if((c|0)!=(d|0)){continue}break}b=H[a+24>>2]}H[a+28>>2]=d;qa(b)}lb(a+12|0,H[a+16>>2]);kb(a,H[a+4>>2]);qa(a)}}function vj(a){a=a|0;var b=0;H[a+8>>2]=11436;H[a>>2]=11224;b=H[a+96>>2];if(b){H[a+100>>2]=b;qa(b)}b=H[a+80>>2];if(b){H[a+84>>2]=b;qa(b)}b=H[a+68>>2];if(b){H[a+72>>2]=b;qa(b)}b=H[a+56>>2];if(b){H[a+60>>2]=b;qa(b)}H[a+8>>2]=11672;b=H[a+44>>2];if(b){qa(b)}b=H[a+32>>2];if(b){qa(b)}qa(a)}function mh(a){a=a|0;var b=0;H[a>>2]=3512;b=H[a+152>>2];if(b){H[a+156>>2]=b;qa(b)}b=H[a+112>>2];if(b){H[a+116>>2]=b;qa(b)}b=H[a+96>>2];if(b){qa(b)}b=H[a+84>>2];if(b){qa(b)}b=H[a+72>>2];if(b){qa(b)}b=H[a+60>>2];if(b){qa(b)}H[a>>2]=3456;b=H[a+32>>2];if(b){H[a+36>>2]=b;qa(b)}return a|0}function dh(a){a=a|0;var b=0;H[a>>2]=5076;b=H[a+152>>2];if(b){H[a+156>>2]=b;qa(b)}b=H[a+112>>2];if(b){H[a+116>>2]=b;qa(b)}b=H[a+96>>2];if(b){qa(b)}b=H[a+84>>2];if(b){qa(b)}b=H[a+72>>2];if(b){qa(b)}b=H[a+60>>2];if(b){qa(b)}H[a>>2]=3456;b=H[a+32>>2];if(b){H[a+36>>2]=b;qa(b)}return a|0}function zh(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0,g=0,h=0,i=0;h=H[c+8>>2];e=H[c+16>>2];g=H[c+12>>2];f=g;d=H[c+20>>2];if(h>>>0>e>>>0&(f|0)>=(d|0)|(d|0)<(f|0)){b=I[e+H[c>>2]|0];i=e+1|0;f=i?d:d+1|0;H[c+16>>2]=i;H[c+20>>2]=f;H[a+4>>2]=b}return e>>>0>>0&(d|0)<=(g|0)|(d|0)<(g|0)}function qb(a,b,c){var d=0;if(!c){return H[a+4>>2]==H[b+4>>2]}if((a|0)==(b|0)){return 1}d=H[a+4>>2];a=I[d|0];c=H[b+4>>2];b=I[c|0];a:{if(!a|(b|0)!=(a|0)){break a}while(1){b=I[c+1|0];a=I[d+1|0];if(!a){break a}c=c+1|0;d=d+1|0;if((a|0)==(b|0)){continue}break}}return(a|0)==(b|0)}function Db(a){var b=0,c=0;c=H[a+8>>2];if((c|0)>=2){b=+(c|0);b=U(b*za(b)-M[a>>3]);if(P(b)<0x8000000000000000){ea=P(b)>=1?~~(b>0?R(T(b*2.3283064365386963e-10),4294967295):U((b-+(~~b>>>0>>>0))*2.3283064365386963e-10))>>>0:0;return~~b>>>0}a=-2147483648}else{a=0}ea=a;return 0}function xj(a){a=a|0;var b=0;H[a>>2]=11436;b=H[a+88>>2];if(b){H[a+92>>2]=b;qa(b)}b=H[a+72>>2];if(b){H[a+76>>2]=b;qa(b)}b=H[a+60>>2];if(b){H[a- -64>>2]=b;qa(b)}b=H[a+48>>2];if(b){H[a+52>>2]=b;qa(b)}H[a>>2]=11672;b=H[a+36>>2];if(b){qa(b)}b=H[a+24>>2];if(b){qa(b)}return a|0}function Qb(a,b){var c=0,d=0,e=0;H[a+8>>2]=0;H[a>>2]=0;H[a+4>>2]=0;a:{c=H[b+4>>2];d=H[b>>2];b:{if((c|0)==(d|0)){a=c;break b}c=c-d|0;if((c|0)<0){break a}d=c;e=ra(c);c=ta(e,0,c);d=d+c|0;H[a+8>>2]=d;H[a+4>>2]=d;H[a>>2]=c;c=H[b>>2];a=H[b+4>>2]}sa(e,c,a-c|0);return}ua();X()}function Nb(a,b){var c=0,d=0,e=0,f=0;c=da-16|0;da=c;a:{if(!b){b=0;break a}d=b;b=Q(b);Sa(c,d,0,0,0,b+81|0);e=16414-b<<16;b=0;d=b+H[c+8>>2]|0;e=e+(H[c+12>>2]^65536)|0;e=b>>>0>d>>>0?e+1|0:e;f=d;d=H[c>>2];b=H[c+4>>2]}H[a>>2]=d;H[a+4>>2]=b;H[a+8>>2]=f;H[a+12>>2]=e;da=c+16|0}function sj(a){a=a|0;var b=0;H[a>>2]=11436;b=H[a+88>>2];if(b){H[a+92>>2]=b;qa(b)}b=H[a+72>>2];if(b){H[a+76>>2]=b;qa(b)}b=H[a+60>>2];if(b){H[a- -64>>2]=b;qa(b)}b=H[a+48>>2];if(b){H[a+52>>2]=b;qa(b)}H[a>>2]=11672;b=H[a+36>>2];if(b){qa(b)}b=H[a+24>>2];if(b){qa(b)}qa(a)}function Ob(a,b,c){var d=0,e=0,f=0;a:{if(!b){d=a;break a}while(1){d=Bl(a,b,10,0);f=ea;e=zl(d,f,10,0);c=c-1|0;F[c|0]=a-e|48;e=b>>>0>9;a=d;b=f;if(e){continue}break}}if(d){while(1){c=c-1|0;a=(d>>>0)/10|0;F[c|0]=d-N(a,10)|48;b=d>>>0>9;d=a;if(b){continue}break}}return c}function pi(a){a=a|0;var b=0,c=0;b=ra(8);H[b+4>>2]=a;H[b>>2]=0;a:{b:{c:{if(!a){break c}c=$c(a,15016,14936);if(!c){break c}c=Fg(ra(56),c);a=H[b>>2];H[b>>2]=c;if(a){break b}break a}c=Gg(ra(56),a);a=H[b>>2];H[b>>2]=c;if(!a){break a}}fa[H[H[a>>2]+4>>2]](a)}return b|0}function ck(a){a=a|0;var b=0;H[a+40>>2]=2032;H[a>>2]=9988;b=H[a+48>>2];if(b){H[a+52>>2]=b;qa(b)}H[a>>2]=2624;b=H[a+36>>2];H[a+36>>2]=0;if(b){fa[H[H[b>>2]+4>>2]](b)}H[a>>2]=2392;b=H[a+32>>2];H[a+32>>2]=0;if(b){Oa(b)}b=H[a+16>>2];if(b){H[a+20>>2]=b;qa(b)}return a|0}function Tg(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,f=0;e=da-96|0;da=e;f=Gg(e+40|0,c);Sg(e,b,c);Eg(f,e);Ka(e+24|0,H[e+28>>2]);nb(e+12|0,H[e+16>>2]);Ka(e,H[e+4>>2]);Yd(a,f,d);H[f>>2]=10256;Ka(f+28|0,H[f+32>>2]);nb(f+16|0,H[f+20>>2]);Ka(f+4|0,H[f+8>>2]);da=e+96|0}function Kb(a){var b=0;if(a){b=H[a+76>>2];if(b){H[a+80>>2]=b;qa(b)}b=H[a- -64>>2];if(b){H[a+68>>2]=b;qa(b)}b=H[a+48>>2];if(b){H[a+52>>2]=b;qa(b)}b=H[a+24>>2];if(b){H[a+28>>2]=b;qa(b)}b=H[a+12>>2];if(b){H[a+16>>2]=b;qa(b)}b=H[a>>2];if(b){H[a+4>>2]=b;qa(b)}qa(a)}}function pc(a){var b=0;b=H[a+84>>2];if(b){H[a+88>>2]=b;qa(b)}b=H[a+72>>2];if(b){H[a+76>>2]=b;qa(b)}b=H[a+52>>2];if(b){H[a+56>>2]=b;qa(b)}b=H[a+40>>2];if(b){H[a+44>>2]=b;qa(b)}b=H[a+28>>2];if(b){H[a+32>>2]=b;qa(b)}b=H[a+12>>2];if(b){qa(b)}a=H[a>>2];if(a){qa(a)}}function Fe(a,b,c){var d=0,e=0,f=0,g=0,h=0;f=da-16|0;da=f;d=da-16|0;da=d;b=b-a>>2;while(1){if(b){H[d+12>>2]=a;e=b>>>1|0;H[d+12>>2]=H[d+12>>2]+(e<<2);h=(e^-1)+b|0;b=e;e=H[d+12>>2];g=K[e>>2]>2];b=g?h:b;a=g?e+4|0:a;continue}break}da=d+16|0;da=f+16|0;return a}function bk(a){a=a|0;var b=0;H[a+40>>2]=2032;H[a>>2]=9988;b=H[a+48>>2];if(b){H[a+52>>2]=b;qa(b)}H[a>>2]=2624;b=H[a+36>>2];H[a+36>>2]=0;if(b){fa[H[H[b>>2]+4>>2]](b)}H[a>>2]=2392;b=H[a+32>>2];H[a+32>>2]=0;if(b){Oa(b)}b=H[a+16>>2];if(b){H[a+20>>2]=b;qa(b)}qa(a)}function Ia(a,b,c){var d=0,e=0;a:{b:{if(c>>>0<11){d=a;F[d+11|0]=c;break b}if(c>>>0>4294967279){break a}if(c>>>0>=11){e=c+16&-16;d=e-1|0;d=(d|0)==11?e:d}else{d=10}e=d+1|0;d=ra(e);H[a>>2]=d;H[a+8>>2]=e|-2147483648;H[a+4>>2]=c}Bb(d,b,c+1|0);return}hb();X()}function sl(a,b){a=a|0;b=b|0;var c=0,d=0;c=H[a+72>>2];a:{if(!c){break a}H[c+4>>2]=a+60;if(!(fa[H[H[c>>2]+12>>2]](c)|0)){break a}if(!(fa[H[H[a>>2]+40>>2]](a)|0)){break a}if(!(fa[H[H[a>>2]+44>>2]](a,b)|0)){break a}d=fa[H[H[a>>2]+48>>2]](a,b)|0}return d|0}function dk(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0;e=da-16|0;da=e;d=a+40|0;c=Lc(d,H[a+8>>2],H[b+4>>2]-H[b>>2]>>2);d=ae(d,H[a+8>>2],b,c);a:{if(d){b=H[a+32>>2];H[a+32>>2]=c;if(!b){break a}Oa(b);break a}H[e+8>>2]=0;if(!c){break a}Oa(c)}da=e+16|0;return d|0}function Gk(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0;e=da-16|0;da=e;d=a+40|0;c=Lc(d,H[a+8>>2],H[b+4>>2]-H[b>>2]>>2);d=og(d,H[a+8>>2],b,c);a:{if(d){b=H[a+32>>2];H[a+32>>2]=c;if(!b){break a}Oa(b);break a}H[e+8>>2]=0;if(!c){break a}Oa(c)}da=e+16|0;return d|0}function sb(a){var b=0,c=0,d=0;b=a;a:{if(b&3){while(1){if(!I[b|0]){break a}b=b+1|0;if(b&3){continue}break}}while(1){c=b;b=b+4|0;d=H[c>>2];if(!((d^-1)&d-16843009&-2139062144)){continue}break}while(1){b=c;c=b+1|0;if(I[b|0]){continue}break}}return b-a|0}function hg(a,b){a=a|0;b=b|0;var c=0,d=0;c=H[a+172>>2];a=H[a+176>>2];if((c|0)!=(a|0)){a=(a-c|0)/136|0;d=a>>>0>1?a:1;a=0;while(1){if(H[N(a,136)+c>>2]==(b|0)){a=N(a,136)+c|0;return(I[a+100|0]?a+4|0:0)|0}a=a+1|0;if((d|0)!=(a|0)){continue}break}}return 0}function Ed(a,b,c,d,e,f,g){var h=0;H[a>>2]=c;if(c){h=H[c+20>>2];H[a+8>>2]=H[c+16>>2];H[a+12>>2]=h;h=H[c+28>>2];H[a+16>>2]=H[c+24>>2];H[a+20>>2]=h}H[a+56>>2]=b;H[a+48>>2]=0;H[a+52>>2]=0;H[a+40>>2]=f;H[a+44>>2]=g;F[a+32|0]=0;H[a+28>>2]=e;F[a+24|0]=d}function Oe(a,b){var c=0,d=0,e=0;A(+a);d=v(1)|0;e=v(0)|0;c=d>>>20&2047;if((c|0)!=2047){if(!c){if(a==0){c=0}else{a=Oe(a*0x10000000000000000,b);c=H[b>>2]+-64|0}H[b>>2]=c;return a}H[b>>2]=c-1022;x(0,e|0);x(1,d&-2146435073|1071644672);a=+z()}return a}function ql(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0;c=H[a+36>>2];if((c|0)==H[a+40>>2]){return 1}f=a+60|0;while(1){c=H[(d<<2)+c>>2];e=fa[H[H[c>>2]+20>>2]](c,f,b)|0;if(e){d=d+1|0;c=H[a+36>>2];if(d>>>0>2]-c>>2>>>0){continue}}break}return e|0}function ee(a){H[a+32>>2]=0;H[a+12>>2]=-1;H[a+4>>2]=0;H[a+8>>2]=0;H[a+16>>2]=0;H[a+20>>2]=0;H[a>>2]=2392;F[a+21|0]=0;F[a+22|0]=0;F[a+23|0]=0;F[a+24|0]=0;F[a+25|0]=0;F[a+26|0]=0;F[a+27|0]=0;F[a+28|0]=0;H[a+36>>2]=0;H[a>>2]=2624;return a}function rl(a){a=a|0;var b=0,c=0,d=0,e=0;b=H[a+36>>2];if((b|0)==H[a+40>>2]){return 1}e=a+60|0;while(1){b=H[(c<<2)+b>>2];d=fa[H[H[b>>2]+16>>2]](b,e)|0;if(d){c=c+1|0;b=H[a+36>>2];if(c>>>0>2]-b>>2>>>0){continue}}break}return d|0}function pk(a){a=a|0;var b=0;H[a>>2]=8640;b=H[a+136>>2];if(b){H[a+140>>2]=b;qa(b)}b=H[a+96>>2];if(b){H[a+100>>2]=b;qa(b)}b=H[a+80>>2];if(b){qa(b)}b=H[a+68>>2];if(b){qa(b)}b=H[a+56>>2];if(b){qa(b)}b=H[a+44>>2];if(b){qa(b)}return a|0}function Me(a){var b=0,c=0,d=0;if(F[H[a>>2]]-48>>>0>=10){return 0}while(1){d=H[a>>2];c=-1;if(b>>>0<=214748364){c=F[d|0]-48|0;b=N(b,10);c=(c|0)>(2147483647-b|0)?-1:c+b|0}H[a>>2]=d+1;b=c;if(F[d+1|0]-48>>>0<10){continue}break}return b}function If(a,b){a=a|0;b=b|0;var c=0,d=0;c=da-16|0;da=c;H[c+12>>2]=H[H[b+4>>2]+80>>2];b=H[b+44>>2];d=H[b+20>>2];if(!H[b+16>>2]&(d|0)<=0|(d|0)<0){wa(b,H[b+4>>2],c+12|0,c+16|0)}H[a>>2]=0;H[a+4>>2]=0;H[a+8>>2]=0;H[a+12>>2]=0;da=c+16|0}function Bk(a){a=a|0;var b=0;H[a>>2]=6992;b=H[a+136>>2];if(b){H[a+140>>2]=b;qa(b)}b=H[a+96>>2];if(b){H[a+100>>2]=b;qa(b)}b=H[a+80>>2];if(b){qa(b)}b=H[a+68>>2];if(b){qa(b)}b=H[a+56>>2];if(b){qa(b)}b=H[a+44>>2];if(b){qa(b)}return a|0}function Oa(a){a=a|0;var b=0,c=0;if(a){b=H[a+88>>2];H[a+88>>2]=0;if(b){c=H[b+8>>2];if(c){H[b+12>>2]=c;qa(c)}qa(b)}b=H[a+68>>2];if(b){H[a+72>>2]=b;qa(b)}b=H[a+64>>2];H[a+64>>2]=0;if(b){c=H[b>>2];if(c){H[b+4>>2]=c;qa(c)}qa(b)}qa(a)}}function pl(a,b){a=a|0;b=b|0;var c=0,d=0,e=0;c=H[a+36>>2];if((c|0)==H[a+40>>2]){return 1}while(1){c=H[(d<<2)+c>>2];e=fa[H[H[c>>2]+24>>2]](c,b)|0;if(e){d=d+1|0;c=H[a+36>>2];if(d>>>0>2]-c>>2>>>0){continue}}break}return e|0}function ok(a){a=a|0;var b=0;H[a>>2]=8640;b=H[a+136>>2];if(b){H[a+140>>2]=b;qa(b)}b=H[a+96>>2];if(b){H[a+100>>2]=b;qa(b)}b=H[a+80>>2];if(b){qa(b)}b=H[a+68>>2];if(b){qa(b)}b=H[a+56>>2];if(b){qa(b)}b=H[a+44>>2];if(b){qa(b)}qa(a)}function Ak(a){a=a|0;var b=0;H[a>>2]=6992;b=H[a+136>>2];if(b){H[a+140>>2]=b;qa(b)}b=H[a+96>>2];if(b){H[a+100>>2]=b;qa(b)}b=H[a+80>>2];if(b){qa(b)}b=H[a+68>>2];if(b){qa(b)}b=H[a+56>>2];if(b){qa(b)}b=H[a+44>>2];if(b){qa(b)}qa(a)}function Yi(a){a=a|0;var b=0,c=0,d=0;b=H[a+32>>2];d=H[a+36>>2];if((b|0)==(d|0)){return 1}while(1){c=H[H[a+8>>2]+(H[b>>2]<<2)>>2];c=fa[H[H[c>>2]+20>>2]](c,H[a+44>>2])|0;if(c){b=b+4|0;if((d|0)!=(b|0)){continue}}break}return c|0}function Nc(a,b){var c=0,d=0,e=0;c=sb(b);if(c>>>0<4294967280){a:{b:{if(c>>>0>=11){e=c+16&-16;d=ra(e);H[a+8>>2]=e|-2147483648;H[a>>2]=d;H[a+4>>2]=c;break b}F[a+11|0]=c;d=a;if(!c){break a}}sa(d,b,c)}F[c+d|0]=0;return a}hb();X()}function Al(a,b,c,d){var e=0,f=0,g=0,h=0;f=b^d;g=f>>31;e=b>>31;a=a^e;h=a-e|0;e=(b^e)-((a>>>0>>0)+e|0)|0;a=d>>31;b=c^a;f=f>>31;a=Bl(h,e,b-a|0,(a^d)-((a>>>0>b>>>0)+a|0)|0)^f;b=a-f|0;ea=(g^ea)-((a>>>0>>0)+g|0)|0;return b}function cd(a,b,c){var d=0,e=0,f=0;e=da-16|0;da=e;d=H[a+8>>2]&2147483647;a:{if(d>>>0>c>>>0){d=H[a>>2];H[a+4>>2]=c;Bb(d,b,c);F[e+15|0]=0;F[c+d|0]=I[e+15|0];break a}f=a;a=H[a+4>>2];ed(f,d-1|0,(c-d|0)+1|0,a,0,a,c,b)}da=e+16|0}function xe(a,b){a=a|0;b=b|0;var c=0,d=0;c=da-16|0;da=c;a=H[a+4>>2];a:{if((a|0)==-1){break a}F[c+15|0]=a;d=H[b+20>>2];if(!!H[b+16>>2]&(d|0)>=0|(d|0)>0){break a}wa(b,H[b+4>>2],c+15|0,c+16|0)}da=c+16|0;return(a|0)!=-1|0}function zl(a,b,c,d){var e=0,f=0,g=0,h=0,i=0,j=0;e=c>>>16|0;f=a>>>16|0;j=N(e,f);g=c&65535;h=a&65535;i=N(g,h);f=(i>>>16|0)+N(f,g)|0;e=(f&65535)+N(e,h)|0;ea=(N(b,c)+j|0)+N(a,d)+(f>>>16)+(e>>>16)|0;return i&65535|e<<16}function ze(a,b,c){var d=0;d=H[a+16>>2];if(!d){H[a+36>>2]=1;H[a+24>>2]=c;H[a+16>>2]=b;return}a:{if((b|0)==(d|0)){if(H[a+24>>2]!=2){break a}H[a+24>>2]=c;return}F[a+54|0]=1;H[a+24>>2]=2;H[a+36>>2]=H[a+36>>2]+1}}function sk(a,b){a=a|0;b=b|0;var c=0,d=0;H[b>>2]=2;c=H[b+8>>2];d=H[b+12>>2]-c|0;if(d>>>0<=4294967291){Ec(b+8|0,d+4|0);c=H[b+8>>2]}b=c+d|0;a=H[a+4>>2];F[b|0]=a;F[b+1|0]=a>>>8;F[b+2|0]=a>>>16;F[b+3|0]=a>>>24}function vd(a,b){var c=0,d=O(0),e=0;b=ob(a,b);if((b|0)!=(a+4|0)){a=da-16|0;da=a;c=b+28|0;Qe(a,F[b+39|0]<0?H[c>>2]:c,0,1);e=Ge(H[a>>2],H[a+4>>2],H[a+8>>2],H[a+12>>2]);da=a+16|0;d=O(e)}else{d=O(1)}return d}function Ta(a,b,c,d,e){var f=0;f=da-256|0;da=f;if(!(e&73728|(c|0)<=(d|0))){d=c-d|0;c=d>>>0<256;ta(f,b&255,c?d:256);if(!c){while(1){Ra(a,f,256);d=d-256|0;if(d>>>0>255){continue}break}}Ra(a,f,d)}da=f+256|0}function il(a,b){a=a|0;b=b|0;var c=0,d=0;d=H[a+16>>2];c=0;a:{if(H[a+20>>2]-d>>2<=(b|0)){break a}b=H[(b<<2)+d>>2];c=0;if((b|0)<0){break a}a=H[H[a+36>>2]+(b<<2)>>2];b=H[a+32>>2];c=b?b:H[a+8>>2]}return c|0}function ll(a,b){a=a|0;b=b|0;var c=0,d=0;d=H[a+16>>2];c=0;a:{if(H[a+20>>2]-d>>2<=(b|0)){break a}b=H[(b<<2)+d>>2];c=0;if((b|0)<0){break a}a=H[H[a+36>>2]+(b<<2)>>2];c=H[a+20>>2]-H[a+16>>2]>>2}return c|0}function kl(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0;d=-1;e=H[a+16>>2];a:{if(H[a+20>>2]-e>>2<=(b|0)){break a}b=H[(b<<2)+e>>2];if((b|0)<0){break a}d=H[H[H[H[a+36>>2]+(b<<2)>>2]+16>>2]+(c<<2)>>2]}return d|0}function Zh(a,b){a=a|0;b=b|0;var c=0,d=0,e=0;_e(a,b);a:{if((b|0)<0){break a}d=H[a+88>>2];c=H[a+84>>2];if(d-c>>2<=(b|0)){break a}b=c+(b<<2)|0;c=b+4|0;e=d-c|0;if((c|0)!=(d|0)){xa(b,c,e)}H[a+88>>2]=b+e}}function ph(a){a=a|0;var b=0;H[a>>2]=2624;b=H[a+36>>2];H[a+36>>2]=0;if(b){fa[H[H[b>>2]+4>>2]](b)}H[a>>2]=2392;b=H[a+32>>2];H[a+32>>2]=0;if(b){Oa(b)}b=H[a+16>>2];if(b){H[a+20>>2]=b;qa(b)}return a|0}function Aa(a){var b=0,c=0;c=da-16|0;da=c;H[c+8>>2]=0;H[c+12>>2]=0;$d(a,c+8|0);H[a+24>>2]=0;H[a+28>>2]=0;b=H[a+12>>2];H[a+16>>2]=b;if(b){qa(b)}b=H[a>>2];if(b){H[a+4>>2]=b;qa(b)}da=c+16|0;return a}function Hc(a){a=Kc(a);H[a+64>>2]=0;H[a+68>>2]=0;H[a+88>>2]=0;H[a+72>>2]=0;H[a+76>>2]=0;F[a+77|0]=0;F[a+78|0]=0;F[a+79|0]=0;F[a+80|0]=0;F[a+81|0]=0;F[a+82|0]=0;F[a+83|0]=0;F[a+84|0]=0;return a}function oh(a){a=a|0;var b=0;H[a>>2]=2624;b=H[a+36>>2];H[a+36>>2]=0;if(b){fa[H[H[b>>2]+4>>2]](b)}H[a>>2]=2392;b=H[a+32>>2];H[a+32>>2]=0;if(b){Oa(b)}b=H[a+16>>2];if(b){H[a+20>>2]=b;qa(b)}qa(a)}function nc(a){H[a+52>>2]=0;H[a+4>>2]=0;H[a+8>>2]=0;H[a>>2]=12468;H[a+12>>2]=0;H[a+16>>2]=0;H[a+20>>2]=0;H[a+24>>2]=0;H[a+28>>2]=0;H[a+32>>2]=0;H[a+36>>2]=0;H[a+40>>2]=0;H[a+44>>2]=0;return a}function Pe(a){var b=0;b=H[a+72>>2];H[a+72>>2]=b-1|b;b=H[a>>2];if(b&8){H[a>>2]=b|32;return-1}H[a+4>>2]=0;H[a+8>>2]=0;b=H[a+44>>2];H[a+28>>2]=b;H[a+20>>2]=b;H[a+16>>2]=b+H[a+48>>2];return 0}function Kc(a){H[a+8>>2]=0;H[a+12>>2]=0;H[a>>2]=0;H[a+40>>2]=0;H[a+44>>2]=0;H[a+28>>2]=9;F[a+24|0]=1;H[a+56>>2]=-1;H[a+60>>2]=0;H[a+16>>2]=0;H[a+20>>2]=0;H[a+48>>2]=0;H[a+52>>2]=0;return a}function gd(a,b,c,d,e,f,g,h,i){var j=0;j=da-16|0;da=j;ab(j,b,c,d,e,f,g,h,i^-2147483648);d=H[j>>2];c=H[j+4>>2];b=H[j+12>>2];H[a+8>>2]=H[j+8>>2];H[a+12>>2]=b;H[a>>2]=d;H[a+4>>2]=c;da=j+16|0}function Ae(a,b){var c=0;if(b>>>0<=99){return Be(a,b)}if(b>>>0<=999){c=(b>>>0)/100|0;F[a|0]=c+48;a=a+1|0;b=J[(b-N(c,100)<<1)+18192>>1];F[a|0]=b;F[a+1|0]=b>>>8;return a+2|0}return yc(a,b)}function qd(a,b,c){a=a|0;b=b|0;c=c|0;a=0;a:{if(H[b+4>>2]|!b){break a}a=kd(ra(36),c);H[a+24>>2]=0;H[a+28>>2]=0;H[a+32>>2]=0;c=H[b+4>>2];H[b+4>>2]=a;a=1;if(!c){break a}kf(c)}return a|0}function ge(a,b,c){a=We(a,c);H[a+36>>2]=0;H[a+40>>2]=0;H[a>>2]=2496;H[a+72>>2]=b;H[a+44>>2]=0;H[a+48>>2]=0;H[a+52>>2]=0;H[a+56>>2]=0;H[a+60>>2]=0;H[a+64>>2]=0;H[a+68>>2]=0;return a}function bd(a,b,c){var d=0,e=0;d=da-16|0;da=d;a:{if(c>>>0<=10){F[a+11|0]=c;Bb(a,b,c);F[d+15|0]=0;F[a+c|0]=I[d+15|0];break a}e=a;a=I[a+11|0];ed(e,10,c-10|0,a,0,a,c,b)}da=d+16|0}function oj(a){a=a|0;var b=0;H[a+8>>2]=11856;H[a>>2]=11692;b=H[a+56>>2];if(b){H[a+60>>2]=b;qa(b)}H[a+8>>2]=11672;b=H[a+44>>2];if(b){qa(b)}b=H[a+32>>2];if(b){qa(b)}return a|0}function jj(a){a=a|0;var b=0;H[a+8>>2]=10876;H[a>>2]=11984;b=H[a+56>>2];if(b){H[a+60>>2]=b;qa(b)}H[a+8>>2]=11128;b=H[a+44>>2];if(b){qa(b)}b=H[a+32>>2];if(b){qa(b)}return a|0}function Hb(a){var b=0,c=0;b=H[4773];c=a+3&-4;a=b+c|0;a:{if(a>>>0<=b>>>0?c:0){break a}if(a>>>0>ga()<<16>>>0){if(!(ba(a|0)|0)){break a}}H[4773]=a;return b}H[4799]=48;return-1}function nj(a){a=a|0;var b=0;H[a+8>>2]=11856;H[a>>2]=11692;b=H[a+56>>2];if(b){H[a+60>>2]=b;qa(b)}H[a+8>>2]=11672;b=H[a+44>>2];if(b){qa(b)}b=H[a+32>>2];if(b){qa(b)}qa(a)}function ij(a){a=a|0;var b=0;H[a+8>>2]=10876;H[a>>2]=11984;b=H[a+56>>2];if(b){H[a+60>>2]=b;qa(b)}H[a+8>>2]=11128;b=H[a+44>>2];if(b){qa(b)}b=H[a+32>>2];if(b){qa(b)}qa(a)}function lb(a,b){if(b){lb(a,H[b>>2]);lb(a,H[b+4>>2]);a=H[b+28>>2];H[b+28>>2]=0;if(a){lb(a+12|0,H[a+16>>2]);kb(a,H[a+4>>2]);qa(a)}if(F[b+27|0]<0){qa(H[b+16>>2])}qa(b)}}function Ce(a,b){var c=0,d=0,e=0,f=0;H[a>>2]=18812;H[a>>2]=18924;c=sb(b);d=ra(c+13|0);H[d+8>>2]=0;H[d+4>>2]=c;H[d>>2]=c;e=a,f=sa(d+12|0,b,c+1|0),H[e+4>>2]=f;return a}function yc(a,b){var c=0,d=0;c=(b>>>0)/100|0;d=J[(c<<1)+18192>>1];F[a|0]=d;F[a+1|0]=d>>>8;a=a+2|0;b=J[(b-N(c,100)<<1)+18192>>1];F[a|0]=b;F[a+1|0]=b>>>8;return a+2|0}function Fh(a,b){a=a|0;b=b|0;var c=0;a:{if(!(fa[H[H[a>>2]+40>>2]](a)|0)){break a}if(!(fa[H[H[a>>2]+44>>2]](a,b)|0)){break a}c=fa[H[H[a>>2]+48>>2]](a,b)|0}return c|0}function yl(a,b){a=a|0;b=b|0;var c=0;b=H[b+88>>2];if(!(!b|H[b>>2]!=2)){c=a;a=H[b+8>>2];H[c+4>>2]=I[a|0]|I[a+1|0]<<8|(I[a+2|0]<<16|I[a+3|0]<<24);c=1}return c|0}function Rj(a){a=a|0;var b=0;a:{b=H[a+64>>2];if(!b){break a}b=fa[H[H[b>>2]+32>>2]](b)|0;if(!b){break a}H[a+60>>2]=((H[b+4>>2]-H[b>>2]>>2>>>0)/3|0)-H[b+40>>2]}}function pj(a){a=a|0;var b=0;H[a>>2]=11856;b=H[a+48>>2];if(b){H[a+52>>2]=b;qa(b)}H[a>>2]=11672;b=H[a+36>>2];if(b){qa(b)}b=H[a+24>>2];if(b){qa(b)}return a|0}function Ij(a){a=a|0;var b=0;H[a>>2]=10876;b=H[a+48>>2];if(b){H[a+52>>2]=b;qa(b)}H[a>>2]=11128;b=H[a+36>>2];if(b){qa(b)}b=H[a+24>>2];if(b){qa(b)}return a|0}function Ef(a,b){var c=0;a:{c=a+4|0;a=ob(a,b);if((c|0)==(a|0)){break a}b=a+28|0;a=zc(F[a+39|0]<0?H[b>>2]:b);if((a|0)==-1){break a}return(a|0)!=0}return 0}function Rb(a,b,c){var d=0;d=a+4|0;a=ob(a,b);a:{if((d|0)==(a|0)){break a}b=a+28|0;a=zc(F[a+39|0]<0?H[b>>2]:b);if((a|0)==-1){break a}c=(a|0)!=0}return c}function kj(a){a=a|0;var b=0;H[a>>2]=11856;b=H[a+48>>2];if(b){H[a+52>>2]=b;qa(b)}H[a>>2]=11672;b=H[a+36>>2];if(b){qa(b)}b=H[a+24>>2];if(b){qa(b)}qa(a)}function Bj(a){a=a|0;var b=0;H[a>>2]=10876;b=H[a+48>>2];if(b){H[a+52>>2]=b;qa(b)}H[a>>2]=11128;b=H[a+36>>2];if(b){qa(b)}b=H[a+24>>2];if(b){qa(b)}qa(a)}function We(a,b){H[a+4>>2]=0;H[a+8>>2]=0;H[a>>2]=2188;H[a+12>>2]=0;H[a+16>>2]=0;H[a+20>>2]=0;H[a+24>>2]=0;H[a+28>>2]=0;H[a+32>>2]=0;lc(a,b);return a}function Kh(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;if(qb(a,H[b+8>>2],f)){ye(b,c,d,e);return}a=H[a+8>>2];fa[H[H[a>>2]+20>>2]](a,b,c,d,e,f)}function gh(a){a=a|0;var b=0;a:{if(!H[a- -64>>2]|!H[a+68>>2]|(!H[a+44>>2]|!H[a+48>>2])){break a}if(!H[a+52>>2]){break a}b=H[a+56>>2]!=0}return b|0}function Yg(a){a=a|0;var b=0;a:{if(!H[a+48>>2]|!H[a+52>>2]|(!H[a+28>>2]|!H[a+32>>2])){break a}if(!H[a+36>>2]){break a}b=H[a+40>>2]!=0}return b|0}function jd(a){var b=0,c=0;b=H[a+20>>2];a:{if((H[a+24>>2]-b|0)<=0){break a}b=H[b>>2];if((b|0)==-1){break a}c=H[H[a+8>>2]+(b<<2)>>2]}return c}function Pb(a,b){var c=0;c=-1;a:{if((b|0)==-1|(b|0)>4){break a}b=N(b,12)+a|0;a=H[b+20>>2];if((H[b+24>>2]-a|0)<=0){break a}c=H[a>>2]}return c}function Ni(){var a=0;a=af(ra(108));H[a+84>>2]=0;H[a+88>>2]=0;H[a>>2]=14892;H[a+92>>2]=0;H[a+96>>2]=0;H[a+100>>2]=0;H[a+104>>2]=0;return a|0}function Th(a,b){a=a|0;b=b|0;var c=0,d=0,e=0;c=b;b=H[b>>2]+7&-8;H[c>>2]=b+16;d=a,e=Ge(H[b>>2],H[b+4>>2],H[b+8>>2],H[b+12>>2]),M[d>>3]=e}function ai(a){a=a|0;var b=0;H[a>>2]=14892;b=H[a+96>>2];if(b){H[a+100>>2]=b;qa(b)}b=H[a+84>>2];if(b){H[a+88>>2]=b;qa(b)}return Cc(a)|0}function Ca(a){var b=0;b=da-16|0;da=b;H[b+8>>2]=0;H[b+12>>2]=0;$d(a,b+8|0);H[a+24>>2]=0;H[a+28>>2]=0;H[a+16>>2]=H[a+12>>2];da=b+16|0}function $h(a){a=a|0;var b=0;H[a>>2]=14892;b=H[a+96>>2];if(b){H[a+100>>2]=b;qa(b)}b=H[a+84>>2];if(b){H[a+88>>2]=b;qa(b)}qa(Cc(a))}function wl(a){a=a|0;var b=0;H[a>>2]=2392;b=H[a+32>>2];H[a+32>>2]=0;if(b){Oa(b)}b=H[a+16>>2];if(b){H[a+20>>2]=b;qa(b)}return a|0}function kb(a,b){if(b){kb(a,H[b>>2]);kb(a,H[b+4>>2]);a=H[b+28>>2];if(a){H[b+32>>2]=a;qa(a)}if(F[b+27|0]<0){qa(H[b+16>>2])}qa(b)}}function Zk(a){a=a|0;var b=0;H[a>>2]=3760;b=H[a+76>>2];if(b){qa(b)}H[a>>2]=3456;b=H[a+32>>2];if(b){H[a+36>>2]=b;qa(b)}return a|0}function Pk(a){a=a|0;var b=0;H[a>>2]=5312;b=H[a+76>>2];if(b){qa(b)}H[a>>2]=3456;b=H[a+32>>2];if(b){H[a+36>>2]=b;qa(b)}return a|0}function Rh(a){a=a|0;var b=0;H[a>>2]=2188;b=H[a+16>>2];if(b){H[a+20>>2]=b;qa(b)}b=H[a+4>>2];if(b){H[a+8>>2]=b;qa(b)}return a|0}function Nh(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;if(qb(a,H[b+8>>2],0)){ze(b,c,d);return}a=H[a+8>>2];fa[H[H[a>>2]+28>>2]](a,b,c,d)}function Ki(){var a=0,b=0;a=ra(24);H[a+4>>2]=0;H[a+8>>2]=0;b=a+16|0;H[b>>2]=0;H[b+4>>2]=0;H[a>>2]=a+4;H[a+12>>2]=b;return a|0}function vl(a){a=a|0;var b=0;H[a>>2]=2392;b=H[a+32>>2];H[a+32>>2]=0;if(b){Oa(b)}b=H[a+16>>2];if(b){H[a+20>>2]=b;qa(b)}qa(a)}function Yk(a){a=a|0;var b=0;H[a>>2]=3760;b=H[a+76>>2];if(b){qa(b)}H[a>>2]=3456;b=H[a+32>>2];if(b){H[a+36>>2]=b;qa(b)}qa(a)}function Ok(a){a=a|0;var b=0;H[a>>2]=5312;b=H[a+76>>2];if(b){qa(b)}H[a>>2]=3456;b=H[a+32>>2];if(b){H[a+36>>2]=b;qa(b)}qa(a)}function ra(a){var b=0;a=a?a:1;a:{while(1){b=Ee(a);if(b){break a}b=H[4966];if(b){fa[b|0]();continue}break}_();X()}return b}function Ka(a,b){if(b){Ka(a,H[b>>2]);Ka(a,H[b+4>>2]);if(F[b+39|0]<0){qa(H[b+28>>2])}if(F[b+27|0]<0){qa(H[b+16>>2])}qa(b)}}function we(a){a=a|0;var b=0,c=0;H[a>>2]=18924;b=H[a+4>>2]-12|0;c=H[b+8>>2]-1|0;H[b+8>>2]=c;if((c|0)<0){qa(b)}return a|0}function Vg(a,b,c,d,e){var f=0;f=b-1|0;if(f>>>0<=29){H[a+4>>2]=b;cb(a+8|0,c,(d<<2)+c|0);L[a+20>>2]=e}return f>>>0<30}function xh(a,b,c){a=a|0;b=b|0;c=c|0;H[a+4>>2]=b;b=H[H[H[b+4>>2]+8>>2]+(c<<2)>>2];H[a+12>>2]=c;H[a+8>>2]=b;return 1}function Wk(a){a=a|0;var b=0;H[a>>2]=3996;Aa(a+112|0);H[a>>2]=3456;b=H[a+32>>2];if(b){H[a+36>>2]=b;qa(b)}return a|0}function Ue(a,b,c,d,e,f,g,h,i){H[a>>2]=b;H[a+4>>2]=c;H[a+8>>2]=d;H[a+12>>2]=e&65535|(i>>>16&32768|e>>>16&32767)<<16}function Mk(a){a=a|0;var b=0;H[a>>2]=5536;Aa(a+112|0);H[a>>2]=3456;b=H[a+32>>2];if(b){H[a+36>>2]=b;qa(b)}return a|0}function Gg(a,b){H[a>>2]=10256;_d(a+4|0);H[a+52>>2]=0;H[a+48>>2]=b;H[a>>2]=10352;H[a+40>>2]=0;H[a+44>>2]=0;return a}function Fg(a,b){H[a>>2]=10256;_d(a+4|0);H[a+52>>2]=b;H[a+48>>2]=b;H[a>>2]=10352;H[a+40>>2]=0;H[a+44>>2]=0;return a}function kh(a){a=a|0;var b=0;if(!(!H[a+60>>2]|!H[a+44>>2]|(!H[a+48>>2]|!H[a+52>>2]))){b=H[a+56>>2]!=0}return b|0}function Be(a,b){if(b>>>0<=9){F[a|0]=b+48;return a+1|0}b=J[(b<<1)+18192>>1];F[a|0]=b;F[a+1|0]=b>>>8;return a+2|0}function $g(a){a=a|0;var b=0;if(!(!H[a+44>>2]|!H[a+28>>2]|(!H[a+32>>2]|!H[a+36>>2]))){b=H[a+40>>2]!=0}return b|0}function qi(a){a=a|0;if(a){H[a>>2]=10332;Ka(a+28|0,H[a+32>>2]);rc(a+16|0,H[a+20>>2]);Ka(a+4|0,H[a+8>>2]);qa(a)}}function Vk(a){a=a|0;var b=0;H[a>>2]=3996;Aa(a+112|0);H[a>>2]=3456;b=H[a+32>>2];if(b){H[a+36>>2]=b;qa(b)}qa(a)}function Lk(a){a=a|0;var b=0;H[a>>2]=5536;Aa(a+112|0);H[a>>2]=3456;b=H[a+32>>2];if(b){H[a+36>>2]=b;qa(b)}qa(a)}function Ff(a,b){var c=0;c=a+4|0;a=ob(a,b);if((c|0)==(a|0)){return-1}b=a+28|0;return zc(F[a+39|0]<0?H[b>>2]:b)}function Fb(a,b){var c=0,d=0;if(!(!a|!b|(a|0)==(b|0))){c=+(b>>>0)/+(a>>>0);d=1-c;c=-(c*za(c)+d*za(d))}return c}function ak(a){a=a|0;H[a>>2]=10256;Ka(a+28|0,H[a+32>>2]);nb(a+16|0,H[a+20>>2]);Ka(a+4|0,H[a+8>>2]);return a|0}function $j(a){a=a|0;H[a>>2]=10332;Ka(a+28|0,H[a+32>>2]);rc(a+16|0,H[a+20>>2]);Ka(a+4|0,H[a+8>>2]);return a|0}function Cb(a,b,c){var d=0;d=a+4|0;a=ob(a,b);if((d|0)!=(a|0)){b=a+28|0;c=zc(F[a+39|0]<0?H[b>>2]:b)}return c}function zi(){var a=0;a=ra(48);H[a>>2]=10332;_d(a+4|0);H[a>>2]=10116;H[a+40>>2]=0;H[a+44>>2]=0;return a|0}function Kg(a){a=a|0;H[a>>2]=10332;Ka(a+28|0,H[a+32>>2]);rc(a+16|0,H[a+20>>2]);Ka(a+4|0,H[a+8>>2]);qa(a)}function Jg(a){a=a|0;H[a>>2]=10256;Ka(a+28|0,H[a+32>>2]);nb(a+16|0,H[a+20>>2]);Ka(a+4|0,H[a+8>>2]);qa(a)}function rj(a){a=a|0;var b=0;H[a>>2]=11672;b=H[a+36>>2];if(b){qa(b)}b=H[a+24>>2];if(b){qa(b)}return a|0}function Aj(a){a=a|0;var b=0;H[a>>2]=11128;b=H[a+36>>2];if(b){qa(b)}b=H[a+24>>2];if(b){qa(b)}return a|0}function id(a,b){fa[H[H[a>>2]+8>>2]](a,H[a+12>>2]-H[a+8>>2]>>2,b);return(H[a+12>>2]-H[a+8>>2]>>2)-1|0}function Wc(a){a=a|0;var b=0;if(!(!H[a+52>>2]|(!H[a+44>>2]|!H[a+48>>2]))){b=H[a+56>>2]!=0}return b|0}function Oc(a){a=a|0;var b=0;if(!(!H[a+36>>2]|(!H[a+28>>2]|!H[a+32>>2]))){b=H[a+40>>2]!=0}return b|0}function zj(a){a=a|0;var b=0;H[a>>2]=11128;b=H[a+36>>2];if(b){qa(b)}b=H[a+24>>2];if(b){qa(b)}qa(a)}function qj(a){a=a|0;var b=0;H[a>>2]=11672;b=H[a+36>>2];if(b){qa(b)}b=H[a+24>>2];if(b){qa(b)}qa(a)}function fh(a,b){a=a|0;b=b|0;var c=0;if(!(H[b+56>>2]|I[b+24|0]!=3)){H[a- -64>>2]=b;c=1}return c|0}function jh(a,b){a=a|0;b=b|0;var c=0;if(!(H[b+56>>2]|I[b+24|0]!=3)){H[a+60>>2]=b;c=1}return c|0}function _g(a,b){a=a|0;b=b|0;var c=0;if(!(H[b+56>>2]|I[b+24|0]!=3)){H[a+44>>2]=b;c=1}return c|0}function Xg(a,b){a=a|0;b=b|0;var c=0;if(!(H[b+56>>2]|I[b+24|0]!=3)){H[a+48>>2]=b;c=1}return c|0}function Jh(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;if(qb(a,H[b+8>>2],f)){ye(b,c,d,e)}}function ya(){var a=0;a=aa(4)|0;H[a>>2]=18812;H[a>>2]=18772;H[a>>2]=18792;$(a|0,18904,14);X()}function De(a){var b=0;b=a;a=0;while(1){if((a|0)!=3){H[(a<<2)+b>>2]=0;a=a+1|0;continue}break}}function gi(a){a=a|0;var b=0;if(a){b=H[a>>2];H[a>>2]=0;if(b){fa[H[H[b>>2]+4>>2]](b)}qa(a)}}function dl(a){a=a|0;var b=0;H[a>>2]=3456;b=H[a+32>>2];if(b){H[a+36>>2]=b;qa(b)}return a|0}function Zj(a){a=a|0;var b=0;H[a>>2]=2032;b=H[a+8>>2];if(b){H[a+12>>2]=b;qa(b)}return a|0}function vb(a){var b=0;H[a+12>>2]=0;H[a+16>>2]=0;b=a;a=H[a>>2];H[b+4>>2]=a;if(a){qa(a)}}function bj(a){a=a|0;var b=0;b=a;a=H[a+56>>2];H[b+60>>2]=(H[a+100>>2]-H[a+96>>2]|0)/12}function xf(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;return mf(b,c,d,e,f,1)|0}function wf(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;return mf(b,c,d,e,f,2)|0}function vf(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;return lf(b,c,d,e,f,3)|0}function uf(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;return lf(b,c,d,e,f,4)|0}function sf(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;return md(b,c,d,e,f,6)|0}function sd(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;return md(b,c,d,e,f,9)|0}function rd(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;return md(b,c,d,e,f,5)|0}function ce(a){a=a|0;var b=0;H[a>>2]=3456;b=H[a+32>>2];if(b){H[a+36>>2]=b;qa(b)}qa(a)}function Yj(a){a=a|0;var b=0;H[a>>2]=2032;b=H[a+8>>2];if(b){H[a+12>>2]=b;qa(b)}qa(a)}function mi(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=O(f);Ng(H[a>>2],b,c,d,e,f)}function rc(a,b){if(b){rc(a,H[b>>2]);rc(a,H[b+4>>2]);Ka(b+20|0,H[b+24>>2]);qa(b)}}function nb(a,b){if(b){nb(a,H[b>>2]);nb(a,H[b+4>>2]);Ka(b+20|0,H[b+24>>2]);qa(b)}}function Tj(a,b){a=a|0;b=b|0;var c=0;c=a;a=H[b+64>>2];fa[H[H[a>>2]+28>>2]](c,a)}function yk(a){a=a|0;var b=0;H[a>>2]=7264;b=H[a+60>>2];if(b){qa(b)}return a|0}function wi(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=O(f);Ng(a,b,c,d,e,f)}function mk(a){a=a|0;var b=0;H[a>>2]=8900;b=H[a+60>>2];if(b){qa(b)}return a|0}function Oh(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;if(qb(a,H[b+8>>2],0)){ze(b,c,d)}}function Cl(a){var b=0;while(1){if(a){a=a-1&a;b=b+1|0;continue}break}return b}function Vj(a,b){a=a|0;b=b|0;a=H[a+64>>2];return fa[H[H[a>>2]+20>>2]](a,b)|0}function Uj(a,b){a=a|0;b=b|0;a=H[a+64>>2];return fa[H[H[a>>2]+24>>2]](a,b)|0}function Uf(a,b){a=a|0;b=b|0;return H[H[a+28>>2]+(b>>>3&536870908)>>2]>>>b&1}function Nj(a,b){a=a|0;b=b|0;a=H[a+64>>2];return fa[H[H[a>>2]+12>>2]](a,b)|0}function Mj(a,b){a=a|0;b=b|0;a=H[a+64>>2];return fa[H[H[a>>2]+16>>2]](a,b)|0}function Xi(a,b){a=a|0;b=b|0;H[a>>2]=0;H[a+4>>2]=0;H[a+8>>2]=0;H[a+12>>2]=0}function Ii(){var a=0;a=ra(12);H[a+8>>2]=0;H[a>>2]=0;H[a+4>>2]=0;return a|0}function Fi(a){a=a|0;var b=0;if(a){b=H[a>>2];if(b){H[a+4>>2]=b;qa(b)}qa(a)}}function Dl(a){var b=0;b=a&31;a=0-a&31;return(-1>>>b&-2)<>>a}function vh(a,b,c){a=a|0;b=b|0;c=c|0;return fa[H[H[a>>2]+44>>2]](a,b,c)|0}function va(){var a=0;a=Ce(aa(8)|0,1313);H[a>>2]=19024;$(a|0,19056,1);X()}function xk(a){a=a|0;var b=0;H[a>>2]=7264;b=H[a+60>>2];if(b){qa(b)}qa(a)}function lk(a){a=a|0;var b=0;H[a>>2]=8900;b=H[a+60>>2];if(b){qa(b)}qa(a)}function aj(a,b){a=a|0;b=b|0;F[b+84|0]=1;H[b+72>>2]=H[b+68>>2];return 1}function Uh(a,b,c){a=a|0;b=b|0;c=c|0;H[a+32>>2]=c;H[a+28>>2]=b;return 1}function Qc(a,b){a=a|0;b=b|0;if(b>>>0<=1){H[a+28>>2]=b}return b>>>0<2|0}function Nf(a){a=nc(a);H[a+56>>2]=0;H[a+60>>2]=0;H[a>>2]=12164;return a}function Ji(a){a=a|0;if(a){lb(a+12|0,H[a+16>>2]);kb(a,H[a+4>>2]);qa(a)}}function Ih(a){a=a|0;if(!a){return 0}return($c(a,18476,18620)|0)!=0|0}function Oj(a){a=a|0;a=H[a+64>>2];return fa[H[H[a>>2]+32>>2]](a)|0}function wh(a,b){a=a|0;b=b|0;H[a+12>>2]=-1;H[a+8>>2]=b;return 1}function be(a){a=Ce(aa(8)|0,a);H[a>>2]=18972;$(a|0,19004,1);X()}function Mi(a){a=a|0;return(H[a+100>>2]-H[a+96>>2]|0)/12|0}function vk(a){a=a|0;H[a>>2]=7524;Aa(a+96|0);return a|0}function jk(a){a=a|0;H[a>>2]=9148;Aa(a+96|0);return a|0}function ni(a,b,c){a=a|0;b=b|0;c=c|0;Og(H[a>>2],b,c)}function li(a,b,c){a=a|0;b=b|0;c=c|0;Pg(H[a>>2],b,c)}function af(a){H[a>>2]=14964;ta(a+4|0,0,80);return a}function El(a){if(a){return 31-Q(a-1^a)|0}return 32} -function cj(a){a=a|0;H[a+52>>2]=H[H[a+56>>2]+80>>2]}function Bf(a){a=a|0;return H[a+12>>2]-H[a+8>>2]>>2}function uk(a){a=a|0;H[a>>2]=7524;Aa(a+96|0);qa(a)}function ik(a){a=a|0;H[a>>2]=9148;Aa(a+96|0);qa(a)}function ek(a,b){a=a|0;b=b|0;return Lg(a+40|0,b)|0}function Hk(a,b){a=a|0;b=b|0;return xe(a+40|0,b)|0}function Hi(a,b){a=a|0;b=b|0;return F[H[a>>2]+b|0]}function Hf(a){a=a|0;H[a+52>>2]=H[H[a+4>>2]+80>>2]}function Af(a){a=a|0;if(a){fa[H[H[a>>2]+4>>2]](a)}}function Gi(a){a=a|0;return H[a+4>>2]-H[a>>2]|0}function xi(a,b,c){a=a|0;b=b|0;c=c|0;Og(a,b,c)}function vi(a,b,c){a=a|0;b=b|0;c=c|0;Pg(a,b,c)}function Xj(a,b){a=a|0;b=b|0;return F[b+24|0]}function Dh(a,b,c){a=a|0;b=b|0;c=c|0;return-1}function ii(a){a=a|0;return H[H[a>>2]+40>>2]}function hi(a){a=a|0;return H[H[a>>2]+44>>2]}function oi(a,b){a=a|0;b=b|0;Mg(H[a>>2],b)}function ki(a,b){a=a|0;b=b|0;hf(H[a>>2],b)}function Li(a,b){a=a|0;b=b|0;H[a+80>>2]=b}function Vf(a){a=a|0;return H[a+12>>2]} -function ud(a){a=a|0;return H[a+80>>2]}function tc(a){a=a|0;return H[a+28>>2]}function sh(){H[4836]=19232;H[4818]=42}function ri(a){a=a|0;return H[a+44>>2]}function Ti(a){a=a|0;return H[a+56>>2]}function Qi(a){a=a|0;return H[a+48>>2]}function Pi(a){a=a|0;return H[a+60>>2]}function Cf(a){a=a|0;return H[a+40>>2]}function xc(a,b){a=a|0;b=b|0;return 1}function uc(a){a=a|0;return H[a+4>>2]}function qh(a,b){a=a|0;b=b|0;return 6}function nh(a,b){a=a|0;b=b|0;return-1}function cl(a,b){a=a|0;b=b|0;return 2}function Si(a){a=a|0;return F[a+24|0]}function Ri(a){a=a|0;return I[a+32|0]}function $a(a,b){a=a|0;b=b|0;return 0}function yi(a,b){a=a|0;b=b|0;Mg(a,b)}function ui(a,b){a=a|0;b=b|0;hf(a,b)}function Bb(a,b,c){if(c){sa(a,b,c)}}function Mc(a,b,c,d){Cg(a,b,c,d,1)}function Eb(a,b,c,d){Cg(a,b,c,d,0)}function mc(a){a=a|0;if(a){qa(a)}}function Vi(){return Kc(ra(64))|0}function Ui(){return Hc(ra(96))|0}function Oi(){return af(ra(84))|0}function _c(a){a=a|0;we(a);qa(a)}function Hh(a){a=a|0;return 1364}function Gh(a){a=a|0;return 1622}function Eh(a){a=a|0;return 1472}function wb(a){a=a|0;return a|0}function yh(a){a=a|0;qa(je(a))}function ml(a){a=a|0;qa(rh(a))}function Wh(a){a=a|0;qa(Cc(a))}function Rk(a){a=a|0;qa(dh(a))}function Dj(a){a=a|0;qa(Sf(a))}function Cj(a){a=a|0;qa(Rf(a))}function $k(a){a=a|0;qa(mh(a))}function jb(a){a=a|0;return 0}function fe(a){a=a|0;return 2}function bh(a){a=a|0;return 3}function Vc(a){a=a|0;return 4}function Tc(a){a=a|0;return 5}function Sc(a){a=a|0;return 6}function Na(a){a=a|0;return 1}function td(){return ra(1)|0}function ua(){be(1313);X()}function hb(){be(1493);X()}function db(a){a=a|0;qa(a)}function Ab(a){a=a|0;X()}function pd(){return 0}function of(){return-1}function od(){return 1}function fi(){return 2}function ei(){return 3}function di(){return 4}function Qh(){_();X()}function Ve(a){a=a|0} +function Xd(a,b,c,d,e){var f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,C=0,D=0,E=0,F=0,G=0,I=0,L=0;E=ea-48|0;ea=E;a:{b:{if((b|0)<0){break b}if(!b){l=1;break b}J[E+40>>2]=0;J[E+32>>2]=0;J[E+36>>2]=0;c:{d:{if(b>>>0<1073741824){g=b<<2;f=ra(g);J[E+36>>2]=f;J[E+32>>2]=f;j=g+f|0;r=(c|0)<=1?1:c;c=r-1|0;t=c&-4;p=c&3;o=r-2>>>0>2;G=f;g=f;e:{f:{g:{while(1){l=J[(q<<2)+a>>2];h:{if(r>>>0<2){break h}k=0;c=1;if(o){while(1){i=(c+q<<2)+a|0;F=J[i>>2];l=l>>>0>F>>>0?l:F;F=J[i+4>>2];l=l>>>0>F>>>0?l:F;F=J[i+8>>2];l=l>>>0>F>>>0?l:F;i=J[i+12>>2];l=i>>>0>>0?l:i;c=c+4|0;k=k+4|0;if((t|0)!=(k|0)){continue}break}}k=0;if(!p){break h}while(1){i=J[(c+q<<2)+a>>2];l=i>>>0>>0?l:i;c=c+1|0;k=k+1|0;if((p|0)!=(k|0)){continue}break}}i=l?(S(l)^31)+1|0:1;i:{if(g>>>0>>0){J[g>>2]=i;g=g+4|0;J[E+36>>2]=g;break i}k=g-G|0;g=k>>2;c=g+1|0;if(c>>>0>=1073741824){break g}j=j-G|0;F=j>>1;c=j>>>0>=2147483644?1073741823:c>>>0>>0?F:c;if(c){if(c>>>0>=1073741824){break f}f=ra(c<<2)}else{f=0}g=f+(g<<2)|0;J[g>>2]=i;g=g+4|0;if((k|0)>0){ta(f,G,k)}j=(c<<2)+f|0;J[E+36>>2]=g;if(G){qa(G)}G=f}n=l>>>0>n>>>0?l:n;q=q+r|0;if((q|0)<(b|0)){continue}break}J[E+40>>2]=j;J[E+32>>2]=f;f=0;J[E+24>>2]=0;J[E+16>>2]=0;J[E+20>>2]=0;j=(g|0)==(G|0);j:{if(j){c=0;break j}g=g-G|0;if((g|0)<0){break e}c=ra(g);J[E+16>>2]=c;J[E+24>>2]=(g&-4)+c;i=ta(c,G,g);J[E+20>>2]=i+g;f=g>>2;if(j){break j}g=f>>>0<=1?1:f;t=g&3;q=0;k:{if(g-1>>>0<3){l=0;break k}o=g&-4;l=0;k=0;while(1){j=u;p=l<<2;u=J[p+i>>2];g=j+u|0;j=g>>>0>>0?h+1|0:h;u=J[i+(p|4)>>2];h=u+g|0;g=j;g=h>>>0>>0?g+1|0:g;j=J[i+(p|8)>>2];h=j+h|0;g=h>>>0>>0?g+1|0:g;p=J[i+(p|12)>>2];h=p+h|0;u=h;h=h>>>0

>>0?g+1|0:g;l=l+4|0;k=k+4|0;if((o|0)!=(k|0)){continue}break}}if(!t){break j}while(1){g=h;p=J[i+(l<<2)>>2];j=p+u|0;u=j;h=j>>>0

>>0?g+1|0:g;l=l+1|0;q=q+1|0;if((t|0)!=(q|0)){continue}break}}k=Fg(c,f,32,E);t=fa;o=J[E>>2];if(c){J[E+20>>2]=c;qa(c)}q=Fg(a,b,n,E);F=fa;i=J[E>>2];s=(n-i|0)/64|0;if(d){c=ra(32);H[c+22|0]=0;g=K[1587]|K[1588]<<8|(K[1589]<<16|K[1590]<<24);f=K[1583]|K[1584]<<8|(K[1585]<<16|K[1586]<<24);H[c+14|0]=f;H[c+15|0]=f>>>8;H[c+16|0]=f>>>16;H[c+17|0]=f>>>24;H[c+18|0]=g;H[c+19|0]=g>>>8;H[c+20|0]=g>>>16;H[c+21|0]=g>>>24;g=K[1581]|K[1582]<<8|(K[1583]<<16|K[1584]<<24);f=K[1577]|K[1578]<<8|(K[1579]<<16|K[1580]<<24);H[c+8|0]=f;H[c+9|0]=f>>>8;H[c+10|0]=f>>>16;H[c+11|0]=f>>>24;H[c+12|0]=g;H[c+13|0]=g>>>8;H[c+14|0]=g>>>16;H[c+15|0]=g>>>24;g=K[1573]|K[1574]<<8|(K[1575]<<16|K[1576]<<24);f=K[1569]|K[1570]<<8|(K[1571]<<16|K[1572]<<24);H[c|0]=f;H[c+1|0]=f>>>8;H[c+2|0]=f>>>16;H[c+3|0]=f>>>24;H[c+4|0]=g;H[c+5|0]=g>>>8;H[c+6|0]=g>>>16;H[c+7|0]=g>>>24;l=J[d+4>>2];if(l){while(1){g=K[l+27|0];f=g<<24>>24<0;g=f?J[l+20>>2]:g;j=g>>>0<22;l:{m:{n:{o:{p:{q:{p=j?g:22;if(p){f=f?J[l+16>>2]:l+16|0;y=Ea(c,f,p);if(y){break q}if(g>>>0<=22){break p}break l}if(g>>>0<=22){break o}break l}if((y|0)<0){break l}}g=Ea(f,c,p);if(g){break n}}if(j){break m}break d}if((g|0)>=0){break d}}l=l+4|0}l=J[l>>2];if(l){continue}break}}qa(c)}if((S(n>>>0<=1?1:n)^30)>>>0<18){h=Al(u,h,r,0);c=h+k|0;g=fa+t|0;g=c>>>0>>0?g+1|0:g;f=c;c=o<<3;h=c>>31;p=h<<1|c>>>31;h=c<<1;c=f+h|0;j=g+p|0;j=c>>>0>>0?j+1|0:j;h=c;c=i+s<<3;f=c>>31;u=c;g=i<<3;p=g;c=g+q|0;g=(g>>31)+F|0;g=c>>>0

>>0?g+1|0:g;p=c;c=u+c|0;f=g+f|0;f=c>>>0

>>0?f+1|0:f;c=(f|0)<=(j|0)&c>>>0<=h>>>0|(f|0)<(j|0)}else{c=0}break c}J[E+40>>2]=j;J[E+32>>2]=f;break a}J[E+32>>2]=f;ya();B()}break a}break a}qa(c);c=ra(32);J[E>>2]=c;J[E+4>>2]=22;J[E+8>>2]=-2147483616;h=K[1587]|K[1588]<<8|(K[1589]<<16|K[1590]<<24);g=K[1583]|K[1584]<<8|(K[1585]<<16|K[1586]<<24);H[c+14|0]=g;H[c+15|0]=g>>>8;H[c+16|0]=g>>>16;H[c+17|0]=g>>>24;H[c+18|0]=h;H[c+19|0]=h>>>8;H[c+20|0]=h>>>16;H[c+21|0]=h>>>24;h=K[1581]|K[1582]<<8|(K[1583]<<16|K[1584]<<24);g=K[1577]|K[1578]<<8|(K[1579]<<16|K[1580]<<24);H[c+8|0]=g;H[c+9|0]=g>>>8;H[c+10|0]=g>>>16;H[c+11|0]=g>>>24;H[c+12|0]=h;H[c+13|0]=h>>>8;H[c+14|0]=h>>>16;H[c+15|0]=h>>>24;h=K[1573]|K[1574]<<8|(K[1575]<<16|K[1576]<<24);g=K[1569]|K[1570]<<8|(K[1571]<<16|K[1572]<<24);H[c|0]=g;H[c+1|0]=g>>>8;H[c+2|0]=g>>>16;H[c+3|0]=g>>>24;H[c+4|0]=h;H[c+5|0]=h>>>8;H[c+6|0]=h>>>16;H[c+7|0]=h>>>24;H[c+22|0]=0;c=Hf(d,E);if(H[E+11|0]>=0){break c}qa(J[E>>2])}H[E|0]=c;h=J[e+20>>2];if(!J[e+16>>2]&(h|0)<=0|(h|0)<0){wa(e,J[e+4>>2],E,E+1|0)}l=0;r:{s:{switch(c|0){case 0:n=0;k=0;f=ea-336|0;ea=f;sa(f+80|0,0,256);d=J[E+36>>2];c=J[E+32>>2];t:{if((d|0)==(c|0)){break t}d=d-c>>2;d=d>>>0<=1?1:d;j=d&3;if(d-1>>>0>=3){G=d&-4;while(1){h=f+80|0;d=n<<2;i=h+(J[d+c>>2]<<3)|0;g=J[i+4>>2];p=J[i>>2]+1|0;g=p?g:g+1|0;J[i>>2]=p;J[i+4>>2]=g;g=h+(J[c+(d|4)>>2]<<3)|0;p=J[g+4>>2];i=J[g>>2]+1|0;p=i?p:p+1|0;J[g>>2]=i;J[g+4>>2]=p;g=h+(J[c+(d|8)>>2]<<3)|0;i=J[g+4>>2];p=J[g>>2]+1|0;i=p?i:i+1|0;J[g>>2]=p;J[g+4>>2]=i;d=h+(J[c+(d|12)>>2]<<3)|0;g=J[d+4>>2];h=J[d>>2]+1|0;g=h?g:g+1|0;J[d>>2]=h;J[d+4>>2]=g;n=n+4|0;k=k+4|0;if((G|0)!=(k|0)){continue}break}}if(!j){break t}k=0;while(1){d=(f+80|0)+(J[c+(n<<2)>>2]<<3)|0;p=J[d+4>>2];h=J[d>>2]+1|0;p=h?p:p+1|0;J[d>>2]=h;J[d+4>>2]=p;n=n+1|0;k=k+1|0;if((j|0)!=(k|0)){continue}break}}t=f+48|0;c=t;J[c>>2]=0;J[c+4>>2]=0;H[c+24|0]=0;J[c+16>>2]=0;J[c+20>>2]=0;J[c+8>>2]=0;J[c+12>>2]=0;J[f+8>>2]=0;J[f+12>>2]=0;J[f+16>>2]=0;J[f+20>>2]=0;J[f+24>>2]=0;J[f+28>>2]=0;J[f+32>>2]=0;J[f>>2]=0;J[f+4>>2]=0;J[f+40>>2]=0;J[f+44>>2]=0;Dg(f,f+80|0,32,e);h=J[f+16>>2];c=J[f+20>>2];d=J[e+4>>2]-J[e>>2]|0;J[f+40>>2]=d;J[f+44>>2]=0;p=c<<1|h>>>31;c=(h<<1)+39|0;i=p;i=c>>>0<39?i+1|0:i;c=d+((i&7)<<29|c>>>3)|0;g=i>>>3|0;g=c>>>0>>0?g+1|0:g;c=c+8|0;Ma(e,c);c=J[e>>2];J[f+28>>2]=0;J[f+32>>2]=16384;J[f+24>>2]=c+J[f+40>>2];c=b;xd(t,c<<5,c>>31<<5|c>>>27,0);b=c-r|0;if((b|0)>=0){j=(r|0)<=0;c=b;while(1){n=J[f+32>>2];l=J[E+32>>2];h=J[f>>2]+(J[l+((c|0)/(r|0)<<2)>>2]<<3)|0;d=J[h>>2];g=d<<10;if(n>>>0>=g>>>0){while(1){i=J[f+28>>2];J[f+28>>2]=i+1;H[i+J[f+24>>2]|0]=n;n=J[f+32>>2]>>>8|0;J[f+32>>2]=n;if(g>>>0<=n>>>0){continue}break}l=J[E+32>>2]}i=J[h+4>>2];h=(n>>>0)/(d>>>0)|0;J[f+32>>2]=i+((h<<12)+(n-P(d,h)|0)|0);i=b-c|0;d=(i|0)/(r|0)|0;u:{if(j){break u}u=J[t+16>>2];h=J[t+20>>2];if(!u&(h|0)<=0|(h|0)<0){break u}g=J[(d<<2)+l>>2];l=0;while(1){if(!(!u&(h|0)<=0|(h|0)<0|(g|0)<=0)){h=J[(i+l<<2)+a>>2];d=J[t+12>>2];G=J[d+4>>2];k=0;while(1){p=G>>>3|0;o=p+J[d>>2]|0;n=K[o|0];G=G&7;I=o,L=El(G)&n,H[I|0]=L;p=p+J[d>>2]|0;H[p|0]=K[p|0]|(h>>>k&1)<>2]+1|0;J[d+4>>2]=G;k=k+1|0;if((g|0)!=(k|0)){continue}break}}l=l+1|0;if((r|0)==(l|0)){break u}u=J[t+16>>2];h=J[t+20>>2];continue}}c=c-r|0;if((c|0)>=0){continue}break}}zb(f,e);wd(t);a=J[e+20>>2];if(!J[e+16>>2]&(a|0)<=0|(a|0)<0){wa(e,J[e+4>>2],J[t>>2],J[t+4>>2])}a=J[f>>2];if(a){J[f+4>>2]=a;qa(a)}a=J[t+12>>2];J[t+12>>2]=0;if(a){qa(a)}a=J[t>>2];if(a){J[t+4>>2]=a;qa(a)}ea=f+336|0;l=1;G=J[E+32>>2];break r;case 1:break s;default:break r}}k=0;F=ea-32|0;ea=F;l=1;v:{if((i|0)>0){c=S(i);if((c^30)>>>0>17){break v}l=32-c|0}w:{if(!d){break w}c=ra(48);H[c+33|0]=0;H[c+32|0]=K[1470];h=K[1466]|K[1467]<<8|(K[1468]<<16|K[1469]<<24);g=K[1462]|K[1463]<<8|(K[1464]<<16|K[1465]<<24);H[c+24|0]=g;H[c+25|0]=g>>>8;H[c+26|0]=g>>>16;H[c+27|0]=g>>>24;H[c+28|0]=h;H[c+29|0]=h>>>8;H[c+30|0]=h>>>16;H[c+31|0]=h>>>24;h=K[1458]|K[1459]<<8|(K[1460]<<16|K[1461]<<24);g=K[1454]|K[1455]<<8|(K[1456]<<16|K[1457]<<24);H[c+16|0]=g;H[c+17|0]=g>>>8;H[c+18|0]=g>>>16;H[c+19|0]=g>>>24;H[c+20|0]=h;H[c+21|0]=h>>>8;H[c+22|0]=h>>>16;H[c+23|0]=h>>>24;h=K[1450]|K[1451]<<8|(K[1452]<<16|K[1453]<<24);g=K[1446]|K[1447]<<8|(K[1448]<<16|K[1449]<<24);H[c+8|0]=g;H[c+9|0]=g>>>8;H[c+10|0]=g>>>16;H[c+11|0]=g>>>24;H[c+12|0]=h;H[c+13|0]=h>>>8;H[c+14|0]=h>>>16;H[c+15|0]=h>>>24;h=K[1442]|K[1443]<<8|(K[1444]<<16|K[1445]<<24);g=K[1438]|K[1439]<<8|(K[1440]<<16|K[1441]<<24);H[c|0]=g;H[c+1|0]=g>>>8;H[c+2|0]=g>>>16;H[c+3|0]=g>>>24;H[c+4|0]=h;H[c+5|0]=h>>>8;H[c+6|0]=h>>>16;H[c+7|0]=h>>>24;x:{k=J[d+4>>2];if(k){while(1){h=K[k+27|0];g=h<<24>>24<0;h=g?J[k+20>>2]:h;f=h>>>0<33;y:{z:{A:{B:{C:{D:{j=f?h:33;if(j){g=g?J[k+16>>2]:k+16|0;i=Ea(c,g,j);if(i){break D}if(h>>>0<=33){break C}break y}if(h>>>0<=33){break B}break y}if((i|0)<0){break y}}h=Ea(g,c,j);if(h){break A}}if(f){break z}break x}if((h|0)>=0){break x}}k=k+4|0}k=J[k>>2];if(k){continue}break}}qa(c);break w}qa(c);c=ra(48);J[F+16>>2]=c;J[F+20>>2]=33;J[F+24>>2]=-2147483600;H[c+32|0]=K[1470];h=K[1466]|K[1467]<<8|(K[1468]<<16|K[1469]<<24);g=K[1462]|K[1463]<<8|(K[1464]<<16|K[1465]<<24);H[c+24|0]=g;H[c+25|0]=g>>>8;H[c+26|0]=g>>>16;H[c+27|0]=g>>>24;H[c+28|0]=h;H[c+29|0]=h>>>8;H[c+30|0]=h>>>16;H[c+31|0]=h>>>24;h=K[1458]|K[1459]<<8|(K[1460]<<16|K[1461]<<24);g=K[1454]|K[1455]<<8|(K[1456]<<16|K[1457]<<24);H[c+16|0]=g;H[c+17|0]=g>>>8;H[c+18|0]=g>>>16;H[c+19|0]=g>>>24;H[c+20|0]=h;H[c+21|0]=h>>>8;H[c+22|0]=h>>>16;H[c+23|0]=h>>>24;h=K[1450]|K[1451]<<8|(K[1452]<<16|K[1453]<<24);g=K[1446]|K[1447]<<8|(K[1448]<<16|K[1449]<<24);H[c+8|0]=g;H[c+9|0]=g>>>8;H[c+10|0]=g>>>16;H[c+11|0]=g>>>24;H[c+12|0]=h;H[c+13|0]=h>>>8;H[c+14|0]=h>>>16;H[c+15|0]=h>>>24;h=K[1442]|K[1443]<<8|(K[1444]<<16|K[1445]<<24);g=K[1438]|K[1439]<<8|(K[1440]<<16|K[1441]<<24);H[c|0]=g;H[c+1|0]=g>>>8;H[c+2|0]=g>>>16;H[c+3|0]=g>>>24;H[c+4|0]=h;H[c+5|0]=h>>>8;H[c+6|0]=h>>>16;H[c+7|0]=h>>>24;H[c+33|0]=0;c=Hf(d,F+16|0);if(H[F+27|0]<0){qa(J[F+16>>2])}if((c|0)<=3){l=l-2|0;break w}if(c>>>0<=5){l=l-1|0;break w}if(c>>>0>=10){l=l+2|0;break w}l=(c>>>0>7)+l|0}c=(l|0)<=1?1:l;c=(c|0)>=18?18:c;H[F+15|0]=c;d=J[e+20>>2];if(!J[e+16>>2]&(d|0)<=0|(d|0)<0){wa(e,J[e+4>>2],F+15|0,F+16|0)}k=0;E:{switch(c-1|0){case 0:t=a;l=0;o=0;q=0;u=0;h=0;c=ea+-64|0;ea=c;J[c+56>>2]=0;J[c+48>>2]=0;J[c+52>>2]=0;F:{a=n+1|0;if(a){if(a>>>0>=536870912){break a}a=a<<3;l=ra(a);J[c+48>>2]=l;k=sa(l,0,(n<<3)+8|0)+a|0}G:{if((b|0)<=0){break G}a=0;if(b>>>0>=4){j=b&-4;while(1){d=a<<2;g=(J[d+t>>2]<<3)+l|0;p=J[g+4>>2];f=J[g>>2]+1|0;p=f?p:p+1|0;J[g>>2]=f;J[g+4>>2]=p;g=(J[t+(d|4)>>2]<<3)+l|0;i=J[g+4>>2];f=J[g>>2]+1|0;i=f?i:i+1|0;J[g>>2]=f;J[g+4>>2]=i;f=(J[t+(d|8)>>2]<<3)+l|0;g=J[f+4>>2];i=J[f>>2]+1|0;g=i?g:g+1|0;J[f>>2]=i;J[f+4>>2]=g;d=(J[t+(d|12)>>2]<<3)+l|0;p=J[d+4>>2];g=J[d>>2]+1|0;p=g?p:p+1|0;J[d>>2]=g;J[d+4>>2]=p;a=a+4|0;o=o+4|0;if((j|0)!=(o|0)){continue}break}}g=b&3;if(!g){break G}while(1){d=(J[t+(a<<2)>>2]<<3)+l|0;i=J[d+4>>2];f=J[d>>2]+1|0;i=f?i:i+1|0;J[d>>2]=f;J[d+4>>2]=i;a=a+1|0;q=q+1|0;if((g|0)!=(q|0)){continue}break}}J[c+8>>2]=0;J[c+12>>2]=0;J[c+16>>2]=0;J[c+20>>2]=0;J[c+24>>2]=0;J[c+28>>2]=0;J[c+32>>2]=0;J[c>>2]=0;J[c+4>>2]=0;J[c+40>>2]=0;J[c+44>>2]=0;r=e;e=0;o=0;d=0;q=0;s=ea-32|0;ea=s;a=k-l>>3;H:{if((a|0)<=0){break H}k=a&3;I:{if(a>>>0<4){a=0;break I}D=a&-4;a=0;while(1){p=a|1;f=(p<<3)+l|0;g=J[f+4>>2];n=J[f>>2];A=a|2;j=(A<<3)+l|0;f=J[j+4>>2];y=J[j>>2];x=a|3;i=(x<<3)+l|0;j=J[i+4>>2];z=J[i>>2];w=d;d=(a<<3)+l|0;C=J[d+4>>2];i=J[d>>2];d=j|z?x:f|y?A:g|n?p:!(C|i)?w:a;p=g;w=n;g=h+C|0;n=i+u|0;g=n>>>0>>0?g+1|0:g;i=n;h=w+i|0;p=g+p|0;p=h>>>0>>0?p+1|0:p;i=h;h=h+y|0;g=f+p|0;g=h>>>0>>0?g+1|0:g;i=h;h=h+z|0;f=g+j|0;u=h;h=h>>>0>>0?f+1|0:f;a=a+4|0;e=e+4|0;if((D|0)!=(e|0)){continue}break}}if(!k){break H}while(1){f=d;d=(a<<3)+l|0;g=J[d+4>>2];e=J[d>>2];d=!(g|e)?f:a;a=a+1|0;i=g+h|0;f=e+u|0;i=f>>>0>>0?i+1|0:i;u=f;h=i;o=o+1|0;if((k|0)!=(o|0)){continue}break}}g=d+1|0;J[c+12>>2]=g;e=J[c>>2];a=J[c+4>>2]-e>>3;J:{if(a>>>0>>0){Ya(c,g-a|0);break J}if(a>>>0<=g>>>0){break J}J[c+4>>2]=e+(g<<3)}k=0;K:{L:{M:{N:{if((d|0)>=0){v=+(u>>>0)+ +(h>>>0)*4294967296;h=J[c>>2];a=0;while(1){f=a<<3;j=f+l|0;e=J[j+4>>2];j=J[j>>2];i=(e|j)!=0;f=h+f|0;m=(+(j>>>0)+ +(e>>>0)*4294967296)/v*4096+.5;O:{if(m<4294967296&m>=0){e=~~m>>>0;break O}e=0}e=e?e:i?1:e;J[f>>2]=e;k=e+k|0;e=(a|0)==(d|0);a=a+1|0;if(!e){continue}break}if((k|0)==4096){break N}}J[s+16>>2]=0;J[s+8>>2]=0;J[s+12>>2]=0;n=0;P:{if(!g){break P}if(g>>>0>=1073741824){break a}f=g<<2;q=ra(f);J[s+8>>2]=q;e=0;h=sa(q,0,f);a=0;if(d>>>0>=7){j=g&-8;while(1){J[h+(a<<2)>>2]=a;i=a|1;J[h+(i<<2)>>2]=i;i=a|2;J[h+(i<<2)>>2]=i;i=a|3;J[h+(i<<2)>>2]=i;i=a|4;J[h+(i<<2)>>2]=i;i=a|5;J[h+(i<<2)>>2]=i;i=a|6;J[h+(i<<2)>>2]=i;i=a|7;J[h+(i<<2)>>2]=i;a=a+8|0;n=n+8|0;if((j|0)!=(n|0)){continue}break}}n=h+f|0;f=g&7;if(!f){break P}while(1){J[h+(a<<2)>>2]=a;a=a+1|0;e=e+1|0;if((f|0)!=(e|0)){continue}break}}J[s+24>>2]=c;a=n-q|0;e=a>>2;Q:{R:{if((a|0)>=513){a=e;while(1){h=ra(a<<2);if(h){break R}h=a>>>0>1;a=a>>>1|0;if(h){continue}break}}hc(q,n,s+24|0,e,0,0);break Q}hc(q,n,s+24|0,e,h,a);qa(h)}if((k|0)<4096){a=J[c>>2]+(J[n-4>>2]<<3)|0;J[a>>2]=(J[a>>2]-k|0)+4096;a=0;break M}if((d|0)>0){j=J[c>>2];o=k-4096|0;while(1){m=4096/+(k|0);e=d;while(1){S:{T:{h=j+(J[(e<<2)+q>>2]<<3)|0;a=J[h>>2];if(a>>>0>=2){i=h;p=a;v=V(m*+(a>>>0));U:{if(R(v)<2147483648){f=~~v;break U}f=-2147483648}h=(a|0)==(f|0)?1:a-f|0;a=(a|0)>(h|0)?h:a-1|0;a=(a|0)<(o|0)?a:o;J[i>>2]=p-a;o=o-a|0;k=k-a|0;if((k|0)!=4096){break T}k=4096;break S}if((d|0)!=(e|0)){break S}a=1;break M}a=(e|0)>1;e=e-1|0;if(a){continue}}break}a=0;if((o|0)>0){continue}break}break M}a=0;if(k>>>0<4097){break M}while(1)continue}if((d|0)<0){break K}break L}e=J[s+8>>2];if(e){qa(e)}if((d|0)<0|a){break K}}e=J[c>>2];k=0;o=0;a=0;if(d>>>0>=3){f=g&-4;q=0;while(1){h=o<<3;j=h+e|0;J[j+4>>2]=a;i=e+(h|8)|0;a=J[j>>2]+a|0;J[i+4>>2]=a;j=e+(h|16)|0;a=a+J[i>>2]|0;J[j+4>>2]=a;h=e+(h|24)|0;a=a+J[j>>2]|0;J[h+4>>2]=a;a=a+J[h>>2]|0;o=o+4|0;q=q+4|0;if((f|0)!=(q|0)){continue}break}}h=g&3;if(h){while(1){f=e+(o<<3)|0;J[f+4>>2]=a;o=o+1|0;a=J[f>>2]+a|0;k=k+1|0;if((h|0)!=(k|0)){continue}break}}if((a|0)!=4096){break K}a=0;m=0;V:{if((d|0)<0){break V}h=J[c>>2];if(d){d=g&-2;e=0;while(1){f=a<<3;j=J[f+h>>2];if(j){f=f+l|0;m=(+M[f>>2]+ +M[f+4>>2]*4294967296)*za(+(j>>>0)*.000244140625)+m}f=(a|1)<<3;j=J[f+h>>2];if(j){f=f+l|0;m=(+M[f>>2]+ +M[f+4>>2]*4294967296)*za(+(j>>>0)*.000244140625)+m}a=a+2|0;e=e+2|0;if((d|0)!=(e|0)){continue}break}}if(!(g&1)){break V}a=a<<3;d=J[a+h>>2];if(!d){break V}a=a+l|0;m=(+M[a>>2]+ +M[a+4>>2]*4294967296)*za(+(d>>>0)*.000244140625)+m}m=W(-m);W:{if(m<0x10000000000000000&m>=0){d=R(m)>=1?~~(m>0?T(V(m*2.3283064365386963e-10),4294967295):W((m-+(~~m>>>0>>>0))*2.3283064365386963e-10))>>>0:0;a=~~m>>>0;break W}d=0;a=0}J[c+16>>2]=a;J[c+20>>2]=d;Xa(c,r)}ea=s+32|0;e=J[c+16>>2];a=J[c+20>>2];d=J[r+4>>2]-J[r>>2]|0;J[c+40>>2]=d;J[c+44>>2]=0;g=a<<1|e>>>31;a=(e<<1)+39|0;g=a>>>0<39?g+1|0:g;a=d+((g&7)<<29|a>>>3)|0;f=g>>>3|0;f=a>>>0>>0?f+1|0:f;a=a+8|0;Ma(r,a);a=J[r>>2];J[c+28>>2]=0;J[c+32>>2]=16384;J[c+24>>2]=a+J[c+40>>2];if((b|0)>0){a=16384;while(1){d=b-1|0;h=J[c>>2]+(J[t+(d<<2)>>2]<<3)|0;e=J[h>>2];g=e<<10;if(g>>>0<=a>>>0){while(1){f=J[c+28>>2];J[c+28>>2]=f+1;H[f+J[c+24>>2]|0]=a;a=J[c+32>>2]>>>8|0;J[c+32>>2]=a;if(a>>>0>=g>>>0){continue}break}}f=J[h+4>>2];h=(a>>>0)/(e>>>0)|0;a=f+((h<<12)+(a-P(e,h)|0)|0)|0;J[c+32>>2]=a;e=(b|0)>1;b=d;if(e){continue}break}}zb(c,r);a=J[c>>2];if(a){J[c+4>>2]=a;qa(a)}a=J[c+48>>2];if(a){qa(a)}ea=c- -64|0;break F}k=1;break v;case 1:t=a;l=0;o=0;q=0;u=0;h=0;c=ea+-64|0;ea=c;J[c+56>>2]=0;J[c+48>>2]=0;J[c+52>>2]=0;X:{a=n+1|0;if(a){if(a>>>0>=536870912){break a}a=a<<3;l=ra(a);J[c+48>>2]=l;k=sa(l,0,(n<<3)+8|0)+a|0}Y:{if((b|0)<=0){break Y}a=0;if(b>>>0>=4){i=b&-4;while(1){d=a<<2;f=(J[d+t>>2]<<3)+l|0;g=J[f+4>>2];j=J[f>>2]+1|0;g=j?g:g+1|0;J[f>>2]=j;J[f+4>>2]=g;f=(J[t+(d|4)>>2]<<3)+l|0;g=J[f+4>>2];j=J[f>>2]+1|0;g=j?g:g+1|0;J[f>>2]=j;J[f+4>>2]=g;g=(J[t+(d|8)>>2]<<3)+l|0;j=J[g+4>>2];f=J[g>>2]+1|0;j=f?j:j+1|0;J[g>>2]=f;J[g+4>>2]=j;d=(J[t+(d|12)>>2]<<3)+l|0;g=J[d+4>>2];f=J[d>>2]+1|0;g=f?g:g+1|0;J[d>>2]=f;J[d+4>>2]=g;a=a+4|0;o=o+4|0;if((i|0)!=(o|0)){continue}break}}f=b&3;if(!f){break Y}while(1){d=(J[t+(a<<2)>>2]<<3)+l|0;g=J[d+4>>2];j=J[d>>2]+1|0;g=j?g:g+1|0;J[d>>2]=j;J[d+4>>2]=g;a=a+1|0;q=q+1|0;if((f|0)!=(q|0)){continue}break}}J[c+8>>2]=0;J[c+12>>2]=0;J[c+16>>2]=0;J[c+20>>2]=0;J[c+24>>2]=0;J[c+28>>2]=0;J[c+32>>2]=0;J[c>>2]=0;J[c+4>>2]=0;J[c+40>>2]=0;J[c+44>>2]=0;r=e;e=0;o=0;d=0;q=0;s=ea-32|0;ea=s;a=k-l>>3;Z:{if((a|0)<=0){break Z}k=a&3;_:{if(a>>>0<4){a=0;break _}D=a&-4;a=0;while(1){p=a|1;f=(p<<3)+l|0;g=J[f+4>>2];n=J[f>>2];A=a|2;j=(A<<3)+l|0;f=J[j+4>>2];y=J[j>>2];x=a|3;i=(x<<3)+l|0;j=J[i+4>>2];z=J[i>>2];w=d;d=(a<<3)+l|0;C=J[d+4>>2];i=J[d>>2];d=j|z?x:f|y?A:g|n?p:!(C|i)?w:a;p=j;w=n;j=h+C|0;n=i+u|0;j=n>>>0>>0?j+1|0:j;i=n;h=w+i|0;g=g+j|0;g=h>>>0>>0?g+1|0:g;j=h;h=h+y|0;f=g+f|0;f=h>>>0>>0?f+1|0:f;g=h;h=g+z|0;p=f+p|0;u=h;h=g>>>0>h>>>0?p+1|0:p;a=a+4|0;e=e+4|0;if((D|0)!=(e|0)){continue}break}}if(!k){break Z}while(1){f=d;d=(a<<3)+l|0;g=J[d+4>>2];e=J[d>>2];d=!(g|e)?f:a;a=a+1|0;g=g+h|0;f=e+u|0;g=f>>>0>>0?g+1|0:g;u=f;h=g;o=o+1|0;if((k|0)!=(o|0)){continue}break}}g=d+1|0;J[c+12>>2]=g;e=J[c>>2];a=J[c+4>>2]-e>>3;$:{if(a>>>0>>0){Ya(c,g-a|0);break $}if(a>>>0<=g>>>0){break $}J[c+4>>2]=e+(g<<3)}k=0;aa:{ba:{ca:{da:{if((d|0)>=0){v=+(u>>>0)+ +(h>>>0)*4294967296;h=J[c>>2];a=0;while(1){f=a<<3;j=f+l|0;e=J[j+4>>2];j=J[j>>2];i=(e|j)!=0;f=h+f|0;m=(+(j>>>0)+ +(e>>>0)*4294967296)/v*4096+.5;ea:{if(m<4294967296&m>=0){e=~~m>>>0;break ea}e=0}e=e?e:i?1:e;J[f>>2]=e;k=e+k|0;e=(a|0)==(d|0);a=a+1|0;if(!e){continue}break}if((k|0)==4096){break da}}J[s+16>>2]=0;J[s+8>>2]=0;J[s+12>>2]=0;n=0;fa:{if(!g){break fa}if(g>>>0>=1073741824){break a}f=g<<2;q=ra(f);J[s+8>>2]=q;e=0;h=sa(q,0,f);a=0;if(d>>>0>=7){j=g&-8;while(1){J[h+(a<<2)>>2]=a;i=a|1;J[h+(i<<2)>>2]=i;i=a|2;J[h+(i<<2)>>2]=i;i=a|3;J[h+(i<<2)>>2]=i;i=a|4;J[h+(i<<2)>>2]=i;i=a|5;J[h+(i<<2)>>2]=i;i=a|6;J[h+(i<<2)>>2]=i;i=a|7;J[h+(i<<2)>>2]=i;a=a+8|0;n=n+8|0;if((j|0)!=(n|0)){continue}break}}n=h+f|0;f=g&7;if(!f){break fa}while(1){J[h+(a<<2)>>2]=a;a=a+1|0;e=e+1|0;if((f|0)!=(e|0)){continue}break}}J[s+24>>2]=c;a=n-q|0;e=a>>2;ga:{ha:{if((a|0)>=513){a=e;while(1){h=ra(a<<2);if(h){break ha}h=a>>>0>1;a=a>>>1|0;if(h){continue}break}}gc(q,n,s+24|0,e,0,0);break ga}gc(q,n,s+24|0,e,h,a);qa(h)}if((k|0)<4096){a=J[c>>2]+(J[n-4>>2]<<3)|0;J[a>>2]=(J[a>>2]-k|0)+4096;a=0;break ca}if((d|0)>0){j=J[c>>2];o=k-4096|0;while(1){m=4096/+(k|0);e=d;while(1){ia:{ja:{h=j+(J[(e<<2)+q>>2]<<3)|0;a=J[h>>2];if(a>>>0>=2){i=h;p=a;v=V(m*+(a>>>0));ka:{if(R(v)<2147483648){f=~~v;break ka}f=-2147483648}h=(a|0)==(f|0)?1:a-f|0;a=(a|0)>(h|0)?h:a-1|0;a=(a|0)<(o|0)?a:o;J[i>>2]=p-a;o=o-a|0;k=k-a|0;if((k|0)!=4096){break ja}k=4096;break ia}if((d|0)!=(e|0)){break ia}a=1;break ca}a=(e|0)>1;e=e-1|0;if(a){continue}}break}a=0;if((o|0)>0){continue}break}break ca}a=0;if(k>>>0<4097){break ca}while(1)continue}if((d|0)<0){break aa}break ba}e=J[s+8>>2];if(e){qa(e)}if((d|0)<0|a){break aa}}e=J[c>>2];k=0;o=0;a=0;if(d>>>0>=3){f=g&-4;q=0;while(1){h=o<<3;j=h+e|0;J[j+4>>2]=a;i=e+(h|8)|0;a=J[j>>2]+a|0;J[i+4>>2]=a;j=e+(h|16)|0;a=a+J[i>>2]|0;J[j+4>>2]=a;h=e+(h|24)|0;a=a+J[j>>2]|0;J[h+4>>2]=a;a=a+J[h>>2]|0;o=o+4|0;q=q+4|0;if((f|0)!=(q|0)){continue}break}}h=g&3;if(h){while(1){f=e+(o<<3)|0;J[f+4>>2]=a;o=o+1|0;a=J[f>>2]+a|0;k=k+1|0;if((h|0)!=(k|0)){continue}break}}if((a|0)!=4096){break aa}a=0;m=0;la:{if((d|0)<0){break la}h=J[c>>2];if(d){d=g&-2;e=0;while(1){f=a<<3;j=J[f+h>>2];if(j){f=f+l|0;m=(+M[f>>2]+ +M[f+4>>2]*4294967296)*za(+(j>>>0)*.000244140625)+m}f=(a|1)<<3;j=J[f+h>>2];if(j){f=f+l|0;m=(+M[f>>2]+ +M[f+4>>2]*4294967296)*za(+(j>>>0)*.000244140625)+m}a=a+2|0;e=e+2|0;if((d|0)!=(e|0)){continue}break}}if(!(g&1)){break la}a=a<<3;d=J[a+h>>2];if(!d){break la}a=a+l|0;m=(+M[a>>2]+ +M[a+4>>2]*4294967296)*za(+(d>>>0)*.000244140625)+m}m=W(-m);ma:{if(m<0x10000000000000000&m>=0){d=R(m)>=1?~~(m>0?T(V(m*2.3283064365386963e-10),4294967295):W((m-+(~~m>>>0>>>0))*2.3283064365386963e-10))>>>0:0;a=~~m>>>0;break ma}d=0;a=0}J[c+16>>2]=a;J[c+20>>2]=d;Xa(c,r)}ea=s+32|0;e=J[c+16>>2];a=J[c+20>>2];d=J[r+4>>2]-J[r>>2]|0;J[c+40>>2]=d;J[c+44>>2]=0;f=a<<1|e>>>31;a=(e<<1)+39|0;j=a>>>0<39?f+1|0:f;a=d+((j&7)<<29|a>>>3)|0;p=j>>>3|0;p=a>>>0>>0?p+1|0:p;a=a+8|0;Ma(r,a);a=J[r>>2];J[c+28>>2]=0;J[c+32>>2]=16384;J[c+24>>2]=a+J[c+40>>2];if((b|0)>0){a=16384;while(1){d=b-1|0;h=J[c>>2]+(J[t+(d<<2)>>2]<<3)|0;e=J[h>>2];g=e<<10;if(g>>>0<=a>>>0){while(1){f=J[c+28>>2];J[c+28>>2]=f+1;H[f+J[c+24>>2]|0]=a;a=J[c+32>>2]>>>8|0;J[c+32>>2]=a;if(a>>>0>=g>>>0){continue}break}}f=J[h+4>>2];h=(a>>>0)/(e>>>0)|0;a=f+((h<<12)+(a-P(e,h)|0)|0)|0;J[c+32>>2]=a;e=(b|0)>1;b=d;if(e){continue}break}}zb(c,r);a=J[c>>2];if(a){J[c+4>>2]=a;qa(a)}a=J[c+48>>2];if(a){qa(a)}ea=c- -64|0;break X}k=1;break v;case 2:t=a;l=0;o=0;q=0;u=0;h=0;c=ea+-64|0;ea=c;J[c+56>>2]=0;J[c+48>>2]=0;J[c+52>>2]=0;na:{a=n+1|0;if(a){if(a>>>0>=536870912){break a}a=a<<3;l=ra(a);J[c+48>>2]=l;k=sa(l,0,(n<<3)+8|0)+a|0}oa:{if((b|0)<=0){break oa}a=0;if(b>>>0>=4){p=b&-4;while(1){d=a<<2;g=(J[d+t>>2]<<3)+l|0;f=J[g+4>>2];j=J[g>>2]+1|0;f=j?f:f+1|0;J[g>>2]=j;J[g+4>>2]=f;g=(J[t+(d|4)>>2]<<3)+l|0;j=J[g+4>>2];f=J[g>>2]+1|0;j=f?j:j+1|0;J[g>>2]=f;J[g+4>>2]=j;g=(J[t+(d|8)>>2]<<3)+l|0;i=J[g+4>>2];f=J[g>>2]+1|0;i=f?i:i+1|0;J[g>>2]=f;J[g+4>>2]=i;d=(J[t+(d|12)>>2]<<3)+l|0;f=J[d+4>>2];g=J[d>>2]+1|0;f=g?f:f+1|0;J[d>>2]=g;J[d+4>>2]=f;a=a+4|0;o=o+4|0;if((p|0)!=(o|0)){continue}break}}g=b&3;if(!g){break oa}while(1){d=(J[t+(a<<2)>>2]<<3)+l|0;j=J[d+4>>2];f=J[d>>2]+1|0;j=f?j:j+1|0;J[d>>2]=f;J[d+4>>2]=j;a=a+1|0;q=q+1|0;if((g|0)!=(q|0)){continue}break}}J[c+8>>2]=0;J[c+12>>2]=0;J[c+16>>2]=0;J[c+20>>2]=0;J[c+24>>2]=0;J[c+28>>2]=0;J[c+32>>2]=0;J[c>>2]=0;J[c+4>>2]=0;J[c+40>>2]=0;J[c+44>>2]=0;r=e;e=0;o=0;d=0;q=0;s=ea-32|0;ea=s;a=k-l>>3;pa:{if((a|0)<=0){break pa}k=a&3;qa:{if(a>>>0<4){a=0;break qa}D=a&-4;a=0;while(1){p=a|1;f=(p<<3)+l|0;g=J[f+4>>2];n=J[f>>2];A=a|2;j=(A<<3)+l|0;f=J[j+4>>2];y=J[j>>2];x=a|3;i=(x<<3)+l|0;j=J[i+4>>2];z=J[i>>2];w=d;d=(a<<3)+l|0;C=J[d+4>>2];i=J[d>>2];d=j|z?x:f|y?A:g|n?p:!(C|i)?w:a;p=f;w=n;f=i;n=f+u|0;i=h+C|0;i=f>>>0>n>>>0?i+1|0:i;h=w+n|0;f=g+i|0;f=h>>>0>>0?f+1|0:f;g=h;h=g+y|0;p=f+p|0;p=g>>>0>h>>>0?p+1|0:p;f=h;h=h+z|0;g=j+p|0;u=h;h=h>>>0>>0?g+1|0:g;a=a+4|0;e=e+4|0;if((D|0)!=(e|0)){continue}break}}if(!k){break pa}while(1){f=d;d=(a<<3)+l|0;g=J[d+4>>2];e=J[d>>2];d=!(g|e)?f:a;a=a+1|0;j=g+h|0;f=e+u|0;j=f>>>0>>0?j+1|0:j;u=f;h=j;o=o+1|0;if((k|0)!=(o|0)){continue}break}}g=d+1|0;J[c+12>>2]=g;e=J[c>>2];a=J[c+4>>2]-e>>3;ra:{if(a>>>0>>0){Ya(c,g-a|0);break ra}if(a>>>0<=g>>>0){break ra}J[c+4>>2]=e+(g<<3)}k=0;sa:{ta:{ua:{va:{if((d|0)>=0){v=+(u>>>0)+ +(h>>>0)*4294967296;h=J[c>>2];a=0;while(1){f=a<<3;j=f+l|0;e=J[j+4>>2];j=J[j>>2];i=(e|j)!=0;f=h+f|0;m=(+(j>>>0)+ +(e>>>0)*4294967296)/v*4096+.5;wa:{if(m<4294967296&m>=0){e=~~m>>>0;break wa}e=0}e=e?e:i?1:e;J[f>>2]=e;k=e+k|0;e=(a|0)==(d|0);a=a+1|0;if(!e){continue}break}if((k|0)==4096){break va}}J[s+16>>2]=0;J[s+8>>2]=0;J[s+12>>2]=0;n=0;xa:{if(!g){break xa}if(g>>>0>=1073741824){break a}f=g<<2;q=ra(f);J[s+8>>2]=q;e=0;h=sa(q,0,f);a=0;if(d>>>0>=7){j=g&-8;while(1){J[h+(a<<2)>>2]=a;i=a|1;J[h+(i<<2)>>2]=i;i=a|2;J[h+(i<<2)>>2]=i;i=a|3;J[h+(i<<2)>>2]=i;i=a|4;J[h+(i<<2)>>2]=i;i=a|5;J[h+(i<<2)>>2]=i;i=a|6;J[h+(i<<2)>>2]=i;i=a|7;J[h+(i<<2)>>2]=i;a=a+8|0;n=n+8|0;if((j|0)!=(n|0)){continue}break}}n=h+f|0;f=g&7;if(!f){break xa}while(1){J[h+(a<<2)>>2]=a;a=a+1|0;e=e+1|0;if((f|0)!=(e|0)){continue}break}}J[s+24>>2]=c;a=n-q|0;e=a>>2;ya:{za:{if((a|0)>=513){a=e;while(1){h=ra(a<<2);if(h){break za}h=a>>>0>1;a=a>>>1|0;if(h){continue}break}}fc(q,n,s+24|0,e,0,0);break ya}fc(q,n,s+24|0,e,h,a);qa(h)}if((k|0)<4096){a=J[c>>2]+(J[n-4>>2]<<3)|0;J[a>>2]=(J[a>>2]-k|0)+4096;a=0;break ua}if((d|0)>0){j=J[c>>2];o=k-4096|0;while(1){m=4096/+(k|0);e=d;while(1){Aa:{Ba:{h=j+(J[(e<<2)+q>>2]<<3)|0;a=J[h>>2];if(a>>>0>=2){i=h;p=a;v=V(m*+(a>>>0));Ca:{if(R(v)<2147483648){f=~~v;break Ca}f=-2147483648}h=(a|0)==(f|0)?1:a-f|0;a=(a|0)>(h|0)?h:a-1|0;a=(a|0)<(o|0)?a:o;J[i>>2]=p-a;o=o-a|0;k=k-a|0;if((k|0)!=4096){break Ba}k=4096;break Aa}if((d|0)!=(e|0)){break Aa}a=1;break ua}a=(e|0)>1;e=e-1|0;if(a){continue}}break}a=0;if((o|0)>0){continue}break}break ua}a=0;if(k>>>0<4097){break ua}while(1)continue}if((d|0)<0){break sa}break ta}e=J[s+8>>2];if(e){qa(e)}if((d|0)<0|a){break sa}}e=J[c>>2];k=0;o=0;a=0;if(d>>>0>=3){f=g&-4;q=0;while(1){h=o<<3;j=h+e|0;J[j+4>>2]=a;i=e+(h|8)|0;a=J[j>>2]+a|0;J[i+4>>2]=a;j=e+(h|16)|0;a=a+J[i>>2]|0;J[j+4>>2]=a;h=e+(h|24)|0;a=a+J[j>>2]|0;J[h+4>>2]=a;a=a+J[h>>2]|0;o=o+4|0;q=q+4|0;if((f|0)!=(q|0)){continue}break}}h=g&3;if(h){while(1){f=e+(o<<3)|0;J[f+4>>2]=a;o=o+1|0;a=J[f>>2]+a|0;k=k+1|0;if((h|0)!=(k|0)){continue}break}}if((a|0)!=4096){break sa}a=0;m=0;Da:{if((d|0)<0){break Da}h=J[c>>2];if(d){d=g&-2;e=0;while(1){f=a<<3;j=J[f+h>>2];if(j){f=f+l|0;m=(+M[f>>2]+ +M[f+4>>2]*4294967296)*za(+(j>>>0)*.000244140625)+m}f=(a|1)<<3;j=J[f+h>>2];if(j){f=f+l|0;m=(+M[f>>2]+ +M[f+4>>2]*4294967296)*za(+(j>>>0)*.000244140625)+m}a=a+2|0;e=e+2|0;if((d|0)!=(e|0)){continue}break}}if(!(g&1)){break Da}a=a<<3;d=J[a+h>>2];if(!d){break Da}a=a+l|0;m=(+M[a>>2]+ +M[a+4>>2]*4294967296)*za(+(d>>>0)*.000244140625)+m}m=W(-m);Ea:{if(m<0x10000000000000000&m>=0){d=R(m)>=1?~~(m>0?T(V(m*2.3283064365386963e-10),4294967295):W((m-+(~~m>>>0>>>0))*2.3283064365386963e-10))>>>0:0;a=~~m>>>0;break Ea}d=0;a=0}J[c+16>>2]=a;J[c+20>>2]=d;Xa(c,r)}ea=s+32|0;e=J[c+16>>2];a=J[c+20>>2];d=J[r+4>>2]-J[r>>2]|0;J[c+40>>2]=d;J[c+44>>2]=0;p=a<<1|e>>>31;a=(e<<1)+39|0;i=p;i=a>>>0<39?i+1|0:i;a=d+((i&7)<<29|a>>>3)|0;g=i>>>3|0;g=a>>>0>>0?g+1|0:g;a=a+8|0;Ma(r,a);a=J[r>>2];J[c+28>>2]=0;J[c+32>>2]=16384;J[c+24>>2]=a+J[c+40>>2];if((b|0)>0){a=16384;while(1){d=b-1|0;h=J[c>>2]+(J[t+(d<<2)>>2]<<3)|0;e=J[h>>2];g=e<<10;if(g>>>0<=a>>>0){while(1){f=J[c+28>>2];J[c+28>>2]=f+1;H[f+J[c+24>>2]|0]=a;a=J[c+32>>2]>>>8|0;J[c+32>>2]=a;if(a>>>0>=g>>>0){continue}break}}f=J[h+4>>2];h=(a>>>0)/(e>>>0)|0;a=f+((h<<12)+(a-P(e,h)|0)|0)|0;J[c+32>>2]=a;e=(b|0)>1;b=d;if(e){continue}break}}zb(c,r);a=J[c>>2];if(a){J[c+4>>2]=a;qa(a)}a=J[c+48>>2];if(a){qa(a)}ea=c- -64|0;break na}k=1;break v;case 3:t=a;l=0;o=0;q=0;u=0;h=0;c=ea+-64|0;ea=c;J[c+56>>2]=0;J[c+48>>2]=0;J[c+52>>2]=0;Fa:{a=n+1|0;if(a){if(a>>>0>=536870912){break a}a=a<<3;l=ra(a);J[c+48>>2]=l;k=sa(l,0,(n<<3)+8|0)+a|0}Ga:{if((b|0)<=0){break Ga}a=0;if(b>>>0>=4){j=b&-4;while(1){d=a<<2;g=(J[d+t>>2]<<3)+l|0;p=J[g+4>>2];f=J[g>>2]+1|0;p=f?p:p+1|0;J[g>>2]=f;J[g+4>>2]=p;g=(J[t+(d|4)>>2]<<3)+l|0;i=J[g+4>>2];f=J[g>>2]+1|0;i=f?i:i+1|0;J[g>>2]=f;J[g+4>>2]=i;f=(J[t+(d|8)>>2]<<3)+l|0;g=J[f+4>>2];i=J[f>>2]+1|0;g=i?g:g+1|0;J[f>>2]=i;J[f+4>>2]=g;d=(J[t+(d|12)>>2]<<3)+l|0;p=J[d+4>>2];g=J[d>>2]+1|0;p=g?p:p+1|0;J[d>>2]=g;J[d+4>>2]=p;a=a+4|0;o=o+4|0;if((j|0)!=(o|0)){continue}break}}g=b&3;if(!g){break Ga}while(1){d=(J[t+(a<<2)>>2]<<3)+l|0;i=J[d+4>>2];f=J[d>>2]+1|0;i=f?i:i+1|0;J[d>>2]=f;J[d+4>>2]=i;a=a+1|0;q=q+1|0;if((g|0)!=(q|0)){continue}break}}J[c+8>>2]=0;J[c+12>>2]=0;J[c+16>>2]=0;J[c+20>>2]=0;J[c+24>>2]=0;J[c+28>>2]=0;J[c+32>>2]=0;J[c>>2]=0;J[c+4>>2]=0;J[c+40>>2]=0;J[c+44>>2]=0;r=e;e=0;o=0;d=0;q=0;s=ea-32|0;ea=s;a=k-l>>3;Ha:{if((a|0)<=0){break Ha}k=a&3;Ia:{if(a>>>0<4){a=0;break Ia}D=a&-4;a=0;while(1){p=a|1;f=(p<<3)+l|0;g=J[f+4>>2];n=J[f>>2];A=a|2;j=(A<<3)+l|0;f=J[j+4>>2];y=J[j>>2];x=a|3;i=(x<<3)+l|0;j=J[i+4>>2];z=J[i>>2];w=d;d=(a<<3)+l|0;C=J[d+4>>2];i=J[d>>2];d=j|z?x:f|y?A:g|n?p:!(C|i)?w:a;p=g;w=n;g=h+C|0;n=i+u|0;g=n>>>0>>0?g+1|0:g;i=n;h=w+i|0;p=g+p|0;p=h>>>0>>0?p+1|0:p;i=h;h=h+y|0;g=f+p|0;g=h>>>0>>0?g+1|0:g;i=h;h=h+z|0;f=g+j|0;u=h;h=h>>>0>>0?f+1|0:f;a=a+4|0;e=e+4|0;if((D|0)!=(e|0)){continue}break}}if(!k){break Ha}while(1){f=d;d=(a<<3)+l|0;g=J[d+4>>2];e=J[d>>2];d=!(g|e)?f:a;a=a+1|0;i=g+h|0;f=e+u|0;i=f>>>0>>0?i+1|0:i;u=f;h=i;o=o+1|0;if((k|0)!=(o|0)){continue}break}}g=d+1|0;J[c+12>>2]=g;e=J[c>>2];a=J[c+4>>2]-e>>3;Ja:{if(a>>>0>>0){Ya(c,g-a|0);break Ja}if(a>>>0<=g>>>0){break Ja}J[c+4>>2]=e+(g<<3)}k=0;Ka:{La:{Ma:{Na:{if((d|0)>=0){v=+(u>>>0)+ +(h>>>0)*4294967296;h=J[c>>2];a=0;while(1){f=a<<3;j=f+l|0;e=J[j+4>>2];j=J[j>>2];i=(e|j)!=0;f=h+f|0;m=(+(j>>>0)+ +(e>>>0)*4294967296)/v*4096+.5;Oa:{if(m<4294967296&m>=0){e=~~m>>>0;break Oa}e=0}e=e?e:i?1:e;J[f>>2]=e;k=e+k|0;e=(a|0)==(d|0);a=a+1|0;if(!e){continue}break}if((k|0)==4096){break Na}}J[s+16>>2]=0;J[s+8>>2]=0;J[s+12>>2]=0;n=0;Pa:{if(!g){break Pa}if(g>>>0>=1073741824){break a}f=g<<2;q=ra(f);J[s+8>>2]=q;e=0;h=sa(q,0,f);a=0;if(d>>>0>=7){j=g&-8;while(1){J[h+(a<<2)>>2]=a;i=a|1;J[h+(i<<2)>>2]=i;i=a|2;J[h+(i<<2)>>2]=i;i=a|3;J[h+(i<<2)>>2]=i;i=a|4;J[h+(i<<2)>>2]=i;i=a|5;J[h+(i<<2)>>2]=i;i=a|6;J[h+(i<<2)>>2]=i;i=a|7;J[h+(i<<2)>>2]=i;a=a+8|0;n=n+8|0;if((j|0)!=(n|0)){continue}break}}n=h+f|0;f=g&7;if(!f){break Pa}while(1){J[h+(a<<2)>>2]=a;a=a+1|0;e=e+1|0;if((f|0)!=(e|0)){continue}break}}J[s+24>>2]=c;a=n-q|0;e=a>>2;Qa:{Ra:{if((a|0)>=513){a=e;while(1){h=ra(a<<2);if(h){break Ra}h=a>>>0>1;a=a>>>1|0;if(h){continue}break}}ec(q,n,s+24|0,e,0,0);break Qa}ec(q,n,s+24|0,e,h,a);qa(h)}if((k|0)<4096){a=J[c>>2]+(J[n-4>>2]<<3)|0;J[a>>2]=(J[a>>2]-k|0)+4096;a=0;break Ma}if((d|0)>0){j=J[c>>2];o=k-4096|0;while(1){m=4096/+(k|0);e=d;while(1){Sa:{Ta:{h=j+(J[(e<<2)+q>>2]<<3)|0;a=J[h>>2];if(a>>>0>=2){i=h;p=a;v=V(m*+(a>>>0));Ua:{if(R(v)<2147483648){f=~~v;break Ua}f=-2147483648}h=(a|0)==(f|0)?1:a-f|0;a=(a|0)>(h|0)?h:a-1|0;a=(a|0)<(o|0)?a:o;J[i>>2]=p-a;o=o-a|0;k=k-a|0;if((k|0)!=4096){break Ta}k=4096;break Sa}if((d|0)!=(e|0)){break Sa}a=1;break Ma}a=(e|0)>1;e=e-1|0;if(a){continue}}break}a=0;if((o|0)>0){continue}break}break Ma}a=0;if(k>>>0<4097){break Ma}while(1)continue}if((d|0)<0){break Ka}break La}e=J[s+8>>2];if(e){qa(e)}if((d|0)<0|a){break Ka}}e=J[c>>2];k=0;o=0;a=0;if(d>>>0>=3){f=g&-4;q=0;while(1){h=o<<3;j=h+e|0;J[j+4>>2]=a;i=e+(h|8)|0;a=J[j>>2]+a|0;J[i+4>>2]=a;j=e+(h|16)|0;a=a+J[i>>2]|0;J[j+4>>2]=a;h=e+(h|24)|0;a=a+J[j>>2]|0;J[h+4>>2]=a;a=a+J[h>>2]|0;o=o+4|0;q=q+4|0;if((f|0)!=(q|0)){continue}break}}h=g&3;if(h){while(1){f=e+(o<<3)|0;J[f+4>>2]=a;o=o+1|0;a=J[f>>2]+a|0;k=k+1|0;if((h|0)!=(k|0)){continue}break}}if((a|0)!=4096){break Ka}a=0;m=0;Va:{if((d|0)<0){break Va}h=J[c>>2];if(d){d=g&-2;e=0;while(1){f=a<<3;j=J[f+h>>2];if(j){f=f+l|0;m=(+M[f>>2]+ +M[f+4>>2]*4294967296)*za(+(j>>>0)*.000244140625)+m}f=(a|1)<<3;j=J[f+h>>2];if(j){f=f+l|0;m=(+M[f>>2]+ +M[f+4>>2]*4294967296)*za(+(j>>>0)*.000244140625)+m}a=a+2|0;e=e+2|0;if((d|0)!=(e|0)){continue}break}}if(!(g&1)){break Va}a=a<<3;d=J[a+h>>2];if(!d){break Va}a=a+l|0;m=(+M[a>>2]+ +M[a+4>>2]*4294967296)*za(+(d>>>0)*.000244140625)+m}m=W(-m);Wa:{if(m<0x10000000000000000&m>=0){d=R(m)>=1?~~(m>0?T(V(m*2.3283064365386963e-10),4294967295):W((m-+(~~m>>>0>>>0))*2.3283064365386963e-10))>>>0:0;a=~~m>>>0;break Wa}d=0;a=0}J[c+16>>2]=a;J[c+20>>2]=d;Xa(c,r)}ea=s+32|0;e=J[c+16>>2];a=J[c+20>>2];d=J[r+4>>2]-J[r>>2]|0;J[c+40>>2]=d;J[c+44>>2]=0;g=a<<1|e>>>31;a=(e<<1)+39|0;g=a>>>0<39?g+1|0:g;a=d+((g&7)<<29|a>>>3)|0;f=g>>>3|0;f=a>>>0>>0?f+1|0:f;a=a+8|0;Ma(r,a);a=J[r>>2];J[c+28>>2]=0;J[c+32>>2]=16384;J[c+24>>2]=a+J[c+40>>2];if((b|0)>0){a=16384;while(1){d=b-1|0;h=J[c>>2]+(J[t+(d<<2)>>2]<<3)|0;e=J[h>>2];g=e<<10;if(g>>>0<=a>>>0){while(1){f=J[c+28>>2];J[c+28>>2]=f+1;H[f+J[c+24>>2]|0]=a;a=J[c+32>>2]>>>8|0;J[c+32>>2]=a;if(a>>>0>=g>>>0){continue}break}}f=J[h+4>>2];h=(a>>>0)/(e>>>0)|0;a=f+((h<<12)+(a-P(e,h)|0)|0)|0;J[c+32>>2]=a;e=(b|0)>1;b=d;if(e){continue}break}}zb(c,r);a=J[c>>2];if(a){J[c+4>>2]=a;qa(a)}a=J[c+48>>2];if(a){qa(a)}ea=c- -64|0;break Fa}k=1;break v;case 4:c=0;l=0;o=0;h=ea+-64|0;ea=h;J[h+56>>2]=0;J[h+48>>2]=0;J[h+52>>2]=0;Xa:{d=n+1|0;if(d){if(d>>>0>=536870912){break a}d=d<<3;c=ra(d);J[h+48>>2]=c;k=sa(c,0,(n<<3)+8|0)+d|0}Ya:{if((b|0)<=0){break Ya}n=0;if(b>>>0>=4){i=b&-4;while(1){d=n<<2;f=(J[d+a>>2]<<3)+c|0;g=J[f+4>>2];j=J[f>>2]+1|0;g=j?g:g+1|0;J[f>>2]=j;J[f+4>>2]=g;f=(J[(d|4)+a>>2]<<3)+c|0;g=J[f+4>>2];j=J[f>>2]+1|0;g=j?g:g+1|0;J[f>>2]=j;J[f+4>>2]=g;g=(J[(d|8)+a>>2]<<3)+c|0;j=J[g+4>>2];f=J[g>>2]+1|0;j=f?j:j+1|0;J[g>>2]=f;J[g+4>>2]=j;d=(J[(d|12)+a>>2]<<3)+c|0;g=J[d+4>>2];f=J[d>>2]+1|0;g=f?g:g+1|0;J[d>>2]=f;J[d+4>>2]=g;n=n+4|0;l=l+4|0;if((i|0)!=(l|0)){continue}break}}f=b&3;if(!f){break Ya}while(1){d=(J[(n<<2)+a>>2]<<3)+c|0;g=J[d+4>>2];j=J[d>>2]+1|0;g=j?g:g+1|0;J[d>>2]=j;J[d+4>>2]=g;n=n+1|0;o=o+1|0;if((f|0)!=(o|0)){continue}break}}J[h+8>>2]=0;J[h+12>>2]=0;J[h+16>>2]=0;J[h+20>>2]=0;J[h+24>>2]=0;J[h+28>>2]=0;J[h+32>>2]=0;J[h>>2]=0;J[h+4>>2]=0;J[h+40>>2]=0;J[h+44>>2]=0;Dg(h,c,k-c>>3,e);g=J[h+16>>2];c=J[h+20>>2];d=J[e+4>>2]-J[e>>2]|0;J[h+40>>2]=d;J[h+44>>2]=0;f=g;g=c<<1|g>>>31;c=(f<<1)+39|0;j=c>>>0<39?g+1|0:g;c=d+((j&7)<<29|c>>>3)|0;g=j>>>3|0;g=c>>>0>>0?g+1|0:g;c=c+8|0;Ma(e,c);c=J[e>>2];J[h+28>>2]=0;J[h+32>>2]=16384;J[h+24>>2]=c+J[h+40>>2];if((b|0)>0){n=16384;while(1){c=b-1|0;g=J[h>>2]+(J[(c<<2)+a>>2]<<3)|0;d=J[g>>2];f=d<<10;if(f>>>0<=n>>>0){while(1){j=J[h+28>>2];J[h+28>>2]=j+1;H[j+J[h+24>>2]|0]=n;n=J[h+32>>2]>>>8|0;J[h+32>>2]=n;if(f>>>0<=n>>>0){continue}break}}f=J[g+4>>2];g=(n>>>0)/(d>>>0)|0;n=f+((g<<12)+(n-P(d,g)|0)|0)|0;J[h+32>>2]=n;d=(b|0)>1;b=c;if(d){continue}break}}zb(h,e);a=J[h>>2];if(a){J[h+4>>2]=a;qa(a)}a=J[h+48>>2];if(a){qa(a)}ea=h- -64|0;break Xa}k=1;break v;case 5:t=a;l=0;o=0;q=0;u=0;h=0;c=ea+-64|0;ea=c;J[c+56>>2]=0;J[c+48>>2]=0;J[c+52>>2]=0;Za:{a=n+1|0;if(a){if(a>>>0>=536870912){break a}a=a<<3;l=ra(a);J[c+48>>2]=l;k=sa(l,0,(n<<3)+8|0)+a|0}_a:{if((b|0)<=0){break _a}a=0;if(b>>>0>=4){i=b&-4;while(1){d=a<<2;f=(J[d+t>>2]<<3)+l|0;g=J[f+4>>2];j=J[f>>2]+1|0;g=j?g:g+1|0;J[f>>2]=j;J[f+4>>2]=g;g=(J[t+(d|4)>>2]<<3)+l|0;j=J[g+4>>2];f=J[g>>2]+1|0;j=f?j:j+1|0;J[g>>2]=f;J[g+4>>2]=j;g=(J[t+(d|8)>>2]<<3)+l|0;p=J[g+4>>2];f=J[g>>2]+1|0;p=f?p:p+1|0;J[g>>2]=f;J[g+4>>2]=p;d=(J[t+(d|12)>>2]<<3)+l|0;g=J[d+4>>2];f=J[d>>2]+1|0;g=f?g:g+1|0;J[d>>2]=f;J[d+4>>2]=g;a=a+4|0;o=o+4|0;if((i|0)!=(o|0)){continue}break}}g=b&3;if(!g){break _a}while(1){d=(J[t+(a<<2)>>2]<<3)+l|0;j=J[d+4>>2];f=J[d>>2]+1|0;j=f?j:j+1|0;J[d>>2]=f;J[d+4>>2]=j;a=a+1|0;q=q+1|0;if((g|0)!=(q|0)){continue}break}}J[c+8>>2]=0;J[c+12>>2]=0;J[c+16>>2]=0;J[c+20>>2]=0;J[c+24>>2]=0;J[c+28>>2]=0;J[c+32>>2]=0;J[c>>2]=0;J[c+4>>2]=0;J[c+40>>2]=0;J[c+44>>2]=0;r=e;e=0;o=0;d=0;q=0;s=ea-32|0;ea=s;a=k-l>>3;$a:{if((a|0)<=0){break $a}k=a&3;ab:{if(a>>>0<4){a=0;break ab}C=a&-4;a=0;while(1){D=a|1;f=(D<<3)+l|0;g=J[f+4>>2];p=J[f>>2];A=a|2;j=(A<<3)+l|0;f=J[j+4>>2];n=J[j>>2];x=a|3;i=(x<<3)+l|0;j=J[i+4>>2];y=J[i>>2];w=d;d=(a<<3)+l|0;z=J[d+4>>2];i=J[d>>2];d=j|y?x:f|n?A:g|p?D:!(z|i)?w:a;w=n;x=p;p=h+z|0;n=i+u|0;p=n>>>0>>0?p+1|0:p;i=n;h=x+i|0;g=g+p|0;g=h>>>0>>0?g+1|0:g;i=h;h=w+h|0;g=g+f|0;g=h>>>0>>0?g+1|0:g;i=h;h=h+y|0;f=g+j|0;u=h;h=h>>>0>>0?f+1|0:f;a=a+4|0;e=e+4|0;if((C|0)!=(e|0)){continue}break}}if(!k){break $a}while(1){f=d;d=(a<<3)+l|0;g=J[d+4>>2];e=J[d>>2];d=!(g|e)?f:a;a=a+1|0;j=g+h|0;f=e+u|0;j=f>>>0>>0?j+1|0:j;u=f;h=j;o=o+1|0;if((k|0)!=(o|0)){continue}break}}g=d+1|0;J[c+12>>2]=g;e=J[c>>2];a=J[c+4>>2]-e>>3;bb:{if(a>>>0>>0){Ya(c,g-a|0);break bb}if(a>>>0<=g>>>0){break bb}J[c+4>>2]=e+(g<<3)}k=0;cb:{db:{eb:{fb:{if((d|0)>=0){v=+(u>>>0)+ +(h>>>0)*4294967296;h=J[c>>2];a=0;while(1){f=a<<3;j=f+l|0;e=J[j+4>>2];j=J[j>>2];i=(e|j)!=0;f=h+f|0;m=(+(j>>>0)+ +(e>>>0)*4294967296)/v*4096+.5;gb:{if(m<4294967296&m>=0){e=~~m>>>0;break gb}e=0}e=e?e:i?1:e;J[f>>2]=e;k=e+k|0;e=(a|0)==(d|0);a=a+1|0;if(!e){continue}break}if((k|0)==4096){break fb}}J[s+16>>2]=0;J[s+8>>2]=0;J[s+12>>2]=0;n=0;hb:{if(!g){break hb}if(g>>>0>=1073741824){break a}f=g<<2;q=ra(f);J[s+8>>2]=q;e=0;h=sa(q,0,f);a=0;if(d>>>0>=7){j=g&-8;while(1){J[h+(a<<2)>>2]=a;i=a|1;J[h+(i<<2)>>2]=i;i=a|2;J[h+(i<<2)>>2]=i;i=a|3;J[h+(i<<2)>>2]=i;i=a|4;J[h+(i<<2)>>2]=i;i=a|5;J[h+(i<<2)>>2]=i;i=a|6;J[h+(i<<2)>>2]=i;i=a|7;J[h+(i<<2)>>2]=i;a=a+8|0;n=n+8|0;if((j|0)!=(n|0)){continue}break}}n=h+f|0;f=g&7;if(!f){break hb}while(1){J[h+(a<<2)>>2]=a;a=a+1|0;e=e+1|0;if((f|0)!=(e|0)){continue}break}}J[s+24>>2]=c;a=n-q|0;e=a>>2;ib:{jb:{if((a|0)>=513){a=e;while(1){h=ra(a<<2);if(h){break jb}h=a>>>0>1;a=a>>>1|0;if(h){continue}break}}dc(q,n,s+24|0,e,0,0);break ib}dc(q,n,s+24|0,e,h,a);qa(h)}if((k|0)<4096){a=J[c>>2]+(J[n-4>>2]<<3)|0;J[a>>2]=(J[a>>2]-k|0)+4096;a=0;break eb}if((d|0)>0){j=J[c>>2];o=k-4096|0;while(1){m=4096/+(k|0);e=d;while(1){kb:{lb:{h=j+(J[(e<<2)+q>>2]<<3)|0;a=J[h>>2];if(a>>>0>=2){i=h;p=a;v=V(m*+(a>>>0));mb:{if(R(v)<2147483648){f=~~v;break mb}f=-2147483648}h=(a|0)==(f|0)?1:a-f|0;a=(a|0)>(h|0)?h:a-1|0;a=(a|0)<(o|0)?a:o;J[i>>2]=p-a;o=o-a|0;k=k-a|0;if((k|0)!=4096){break lb}k=4096;break kb}if((d|0)!=(e|0)){break kb}a=1;break eb}a=(e|0)>1;e=e-1|0;if(a){continue}}break}a=0;if((o|0)>0){continue}break}break eb}a=0;if(k>>>0<4097){break eb}while(1)continue}if((d|0)<0){break cb}break db}e=J[s+8>>2];if(e){qa(e)}if((d|0)<0|a){break cb}}e=J[c>>2];k=0;o=0;a=0;if(d>>>0>=3){f=g&-4;q=0;while(1){h=o<<3;j=h+e|0;J[j+4>>2]=a;i=e+(h|8)|0;a=J[j>>2]+a|0;J[i+4>>2]=a;j=e+(h|16)|0;a=a+J[i>>2]|0;J[j+4>>2]=a;h=e+(h|24)|0;a=a+J[j>>2]|0;J[h+4>>2]=a;a=a+J[h>>2]|0;o=o+4|0;q=q+4|0;if((f|0)!=(q|0)){continue}break}}h=g&3;if(h){while(1){f=e+(o<<3)|0;J[f+4>>2]=a;o=o+1|0;a=J[f>>2]+a|0;k=k+1|0;if((h|0)!=(k|0)){continue}break}}if((a|0)!=4096){break cb}a=0;m=0;nb:{if((d|0)<0){break nb}h=J[c>>2];if(d){d=g&-2;e=0;while(1){f=a<<3;j=J[f+h>>2];if(j){f=f+l|0;m=(+M[f>>2]+ +M[f+4>>2]*4294967296)*za(+(j>>>0)*.000244140625)+m}f=(a|1)<<3;j=J[f+h>>2];if(j){f=f+l|0;m=(+M[f>>2]+ +M[f+4>>2]*4294967296)*za(+(j>>>0)*.000244140625)+m}a=a+2|0;e=e+2|0;if((d|0)!=(e|0)){continue}break}}if(!(g&1)){break nb}a=a<<3;d=J[a+h>>2];if(!d){break nb}a=a+l|0;m=(+M[a>>2]+ +M[a+4>>2]*4294967296)*za(+(d>>>0)*.000244140625)+m}m=W(-m);ob:{if(m<0x10000000000000000&m>=0){d=R(m)>=1?~~(m>0?T(V(m*2.3283064365386963e-10),4294967295):W((m-+(~~m>>>0>>>0))*2.3283064365386963e-10))>>>0:0;a=~~m>>>0;break ob}d=0;a=0}J[c+16>>2]=a;J[c+20>>2]=d;Xa(c,r)}ea=s+32|0;e=J[c+16>>2];a=J[c+20>>2];d=J[r+4>>2]-J[r>>2]|0;J[c+40>>2]=d;J[c+44>>2]=0;g=a<<1|e>>>31;a=(e<<1)+39|0;p=a>>>0<39?g+1|0:g;a=d+((p&7)<<29|a>>>3)|0;f=p>>>3|0;f=a>>>0>>0?f+1|0:f;a=a+8|0;Ma(r,a);a=J[r>>2];J[c+28>>2]=0;J[c+32>>2]=16384;J[c+24>>2]=a+J[c+40>>2];if((b|0)>0){a=16384;while(1){d=b-1|0;h=J[c>>2]+(J[t+(d<<2)>>2]<<3)|0;e=J[h>>2];g=e<<10;if(g>>>0<=a>>>0){while(1){f=J[c+28>>2];J[c+28>>2]=f+1;H[f+J[c+24>>2]|0]=a;a=J[c+32>>2]>>>8|0;J[c+32>>2]=a;if(a>>>0>=g>>>0){continue}break}}f=J[h+4>>2];h=(a>>>0)/(e>>>0)|0;a=f+((h<<12)+(a-P(e,h)|0)|0)|0;J[c+32>>2]=a;e=(b|0)>1;b=d;if(e){continue}break}}zb(c,r);a=J[c>>2];if(a){J[c+4>>2]=a;qa(a)}a=J[c+48>>2];if(a){qa(a)}ea=c- -64|0;break Za}k=1;break v;case 6:t=a;l=0;o=0;q=0;u=0;h=0;c=ea+-64|0;ea=c;J[c+56>>2]=0;J[c+48>>2]=0;J[c+52>>2]=0;pb:{a=n+1|0;if(a){if(a>>>0>=536870912){break a}a=a<<3;l=ra(a);J[c+48>>2]=l;k=sa(l,0,(n<<3)+8|0)+a|0}qb:{if((b|0)<=0){break qb}a=0;if(b>>>0>=4){j=b&-4;while(1){d=a<<2;f=(J[d+t>>2]<<3)+l|0;g=J[f+4>>2];i=J[f>>2]+1|0;g=i?g:g+1|0;J[f>>2]=i;J[f+4>>2]=g;g=(J[t+(d|4)>>2]<<3)+l|0;p=J[g+4>>2];f=J[g>>2]+1|0;p=f?p:p+1|0;J[g>>2]=f;J[g+4>>2]=p;g=(J[t+(d|8)>>2]<<3)+l|0;i=J[g+4>>2];f=J[g>>2]+1|0;i=f?i:i+1|0;J[g>>2]=f;J[g+4>>2]=i;d=(J[t+(d|12)>>2]<<3)+l|0;g=J[d+4>>2];f=J[d>>2]+1|0;g=f?g:g+1|0;J[d>>2]=f;J[d+4>>2]=g;a=a+4|0;o=o+4|0;if((j|0)!=(o|0)){continue}break}}g=b&3;if(!g){break qb}while(1){d=(J[t+(a<<2)>>2]<<3)+l|0;p=J[d+4>>2];f=J[d>>2]+1|0;p=f?p:p+1|0;J[d>>2]=f;J[d+4>>2]=p;a=a+1|0;q=q+1|0;if((g|0)!=(q|0)){continue}break}}J[c+8>>2]=0;J[c+12>>2]=0;J[c+16>>2]=0;J[c+20>>2]=0;J[c+24>>2]=0;J[c+28>>2]=0;J[c+32>>2]=0;J[c>>2]=0;J[c+4>>2]=0;J[c+40>>2]=0;J[c+44>>2]=0;r=e;e=0;o=0;d=0;q=0;s=ea-32|0;ea=s;a=k-l>>3;rb:{if((a|0)<=0){break rb}k=a&3;sb:{if(a>>>0<4){a=0;break sb}C=a&-4;a=0;while(1){D=a|1;f=(D<<3)+l|0;g=J[f+4>>2];p=J[f>>2];A=a|2;j=(A<<3)+l|0;f=J[j+4>>2];n=J[j>>2];x=a|3;i=(x<<3)+l|0;j=J[i+4>>2];y=J[i>>2];w=d;d=(a<<3)+l|0;z=J[d+4>>2];i=J[d>>2];d=j|y?x:f|n?A:g|p?D:!(z|i)?w:a;w=n;x=p;p=i;n=i+u|0;i=h+z|0;i=p>>>0>n>>>0?i+1|0:i;h=x+n|0;g=g+i|0;g=h>>>0>>0?g+1|0:g;i=h;h=w+h|0;f=g+f|0;f=h>>>0>>0?f+1|0:f;i=h;h=h+y|0;g=f+j|0;u=h;h=h>>>0>>0?g+1|0:g;a=a+4|0;e=e+4|0;if((C|0)!=(e|0)){continue}break}}if(!k){break rb}while(1){f=d;d=(a<<3)+l|0;g=J[d+4>>2];e=J[d>>2];d=!(g|e)?f:a;a=a+1|0;p=g+h|0;f=e+u|0;p=f>>>0>>0?p+1|0:p;u=f;h=p;o=o+1|0;if((k|0)!=(o|0)){continue}break}}g=d+1|0;J[c+12>>2]=g;e=J[c>>2];a=J[c+4>>2]-e>>3;tb:{if(a>>>0>>0){Ya(c,g-a|0);break tb}if(a>>>0<=g>>>0){break tb}J[c+4>>2]=e+(g<<3)}k=0;ub:{vb:{wb:{xb:{if((d|0)>=0){v=+(u>>>0)+ +(h>>>0)*4294967296;h=J[c>>2];a=0;while(1){f=a<<3;j=f+l|0;e=J[j+4>>2];j=J[j>>2];i=(e|j)!=0;f=h+f|0;m=(+(j>>>0)+ +(e>>>0)*4294967296)/v*4096+.5;yb:{if(m<4294967296&m>=0){e=~~m>>>0;break yb}e=0}e=e?e:i?1:e;J[f>>2]=e;k=e+k|0;e=(a|0)==(d|0);a=a+1|0;if(!e){continue}break}if((k|0)==4096){break xb}}J[s+16>>2]=0;J[s+8>>2]=0;J[s+12>>2]=0;n=0;zb:{if(!g){break zb}if(g>>>0>=1073741824){break a}f=g<<2;q=ra(f);J[s+8>>2]=q;e=0;h=sa(q,0,f);a=0;if(d>>>0>=7){j=g&-8;while(1){J[h+(a<<2)>>2]=a;i=a|1;J[h+(i<<2)>>2]=i;i=a|2;J[h+(i<<2)>>2]=i;i=a|3;J[h+(i<<2)>>2]=i;i=a|4;J[h+(i<<2)>>2]=i;i=a|5;J[h+(i<<2)>>2]=i;i=a|6;J[h+(i<<2)>>2]=i;i=a|7;J[h+(i<<2)>>2]=i;a=a+8|0;n=n+8|0;if((j|0)!=(n|0)){continue}break}}n=h+f|0;f=g&7;if(!f){break zb}while(1){J[h+(a<<2)>>2]=a;a=a+1|0;e=e+1|0;if((f|0)!=(e|0)){continue}break}}J[s+24>>2]=c;a=n-q|0;e=a>>2;Ab:{Bb:{if((a|0)>=513){a=e;while(1){h=ra(a<<2);if(h){break Bb}h=a>>>0>1;a=a>>>1|0;if(h){continue}break}}cc(q,n,s+24|0,e,0,0);break Ab}cc(q,n,s+24|0,e,h,a);qa(h)}if((k|0)<4096){a=J[c>>2]+(J[n-4>>2]<<3)|0;J[a>>2]=(J[a>>2]-k|0)+4096;a=0;break wb}if((d|0)>0){j=J[c>>2];o=k-4096|0;while(1){m=4096/+(k|0);e=d;while(1){Cb:{Db:{h=j+(J[(e<<2)+q>>2]<<3)|0;a=J[h>>2];if(a>>>0>=2){i=h;p=a;v=V(m*+(a>>>0));Eb:{if(R(v)<2147483648){f=~~v;break Eb}f=-2147483648}h=(a|0)==(f|0)?1:a-f|0;a=(a|0)>(h|0)?h:a-1|0;a=(a|0)<(o|0)?a:o;J[i>>2]=p-a;o=o-a|0;k=k-a|0;if((k|0)!=4096){break Db}k=4096;break Cb}if((d|0)!=(e|0)){break Cb}a=1;break wb}a=(e|0)>1;e=e-1|0;if(a){continue}}break}a=0;if((o|0)>0){continue}break}break wb}a=0;if(k>>>0<4097){break wb}while(1)continue}if((d|0)<0){break ub}break vb}e=J[s+8>>2];if(e){qa(e)}if((d|0)<0|a){break ub}}e=J[c>>2];k=0;o=0;a=0;if(d>>>0>=3){f=g&-4;q=0;while(1){h=o<<3;j=h+e|0;J[j+4>>2]=a;i=e+(h|8)|0;a=J[j>>2]+a|0;J[i+4>>2]=a;j=e+(h|16)|0;a=a+J[i>>2]|0;J[j+4>>2]=a;h=e+(h|24)|0;a=a+J[j>>2]|0;J[h+4>>2]=a;a=a+J[h>>2]|0;o=o+4|0;q=q+4|0;if((f|0)!=(q|0)){continue}break}}h=g&3;if(h){while(1){f=e+(o<<3)|0;J[f+4>>2]=a;o=o+1|0;a=J[f>>2]+a|0;k=k+1|0;if((h|0)!=(k|0)){continue}break}}if((a|0)!=4096){break ub}a=0;m=0;Fb:{if((d|0)<0){break Fb}h=J[c>>2];if(d){d=g&-2;e=0;while(1){f=a<<3;j=J[f+h>>2];if(j){f=f+l|0;m=(+M[f>>2]+ +M[f+4>>2]*4294967296)*za(+(j>>>0)*.000244140625)+m}f=(a|1)<<3;j=J[f+h>>2];if(j){f=f+l|0;m=(+M[f>>2]+ +M[f+4>>2]*4294967296)*za(+(j>>>0)*.000244140625)+m}a=a+2|0;e=e+2|0;if((d|0)!=(e|0)){continue}break}}if(!(g&1)){break Fb}a=a<<3;d=J[a+h>>2];if(!d){break Fb}a=a+l|0;m=(+M[a>>2]+ +M[a+4>>2]*4294967296)*za(+(d>>>0)*.000244140625)+m}m=W(-m);Gb:{if(m<0x10000000000000000&m>=0){d=R(m)>=1?~~(m>0?T(V(m*2.3283064365386963e-10),4294967295):W((m-+(~~m>>>0>>>0))*2.3283064365386963e-10))>>>0:0;a=~~m>>>0;break Gb}d=0;a=0}J[c+16>>2]=a;J[c+20>>2]=d;Xa(c,r)}ea=s+32|0;e=J[c+16>>2];a=J[c+20>>2];d=J[r+4>>2]-J[r>>2]|0;J[c+40>>2]=d;J[c+44>>2]=0;f=a<<1|e>>>31;a=(e<<1)+39|0;i=a>>>0<39?f+1|0:f;g=i>>>3|0;a=d+((i&7)<<29|a>>>3)|0;g=a>>>0>>0?g+1|0:g;a=a+8|0;Ma(r,a);a=J[r>>2];J[c+28>>2]=0;J[c+32>>2]=16384;J[c+24>>2]=a+J[c+40>>2];if((b|0)>0){a=16384;while(1){d=b-1|0;h=J[c>>2]+(J[t+(d<<2)>>2]<<3)|0;e=J[h>>2];g=e<<10;if(g>>>0<=a>>>0){while(1){f=J[c+28>>2];J[c+28>>2]=f+1;H[f+J[c+24>>2]|0]=a;a=J[c+32>>2]>>>8|0;J[c+32>>2]=a;if(a>>>0>=g>>>0){continue}break}}f=J[h+4>>2];h=(a>>>0)/(e>>>0)|0;a=f+((h<<12)+(a-P(e,h)|0)|0)|0;J[c+32>>2]=a;e=(b|0)>1;b=d;if(e){continue}break}}zb(c,r);a=J[c>>2];if(a){J[c+4>>2]=a;qa(a)}a=J[c+48>>2];if(a){qa(a)}ea=c- -64|0;break pb}k=1;break v;case 7:t=a;l=0;o=0;q=0;u=0;h=0;c=ea+-64|0;ea=c;J[c+56>>2]=0;J[c+48>>2]=0;J[c+52>>2]=0;Hb:{a=n+1|0;if(a){if(a>>>0>=536870912){break a}a=a<<3;l=ra(a);J[c+48>>2]=l;k=sa(l,0,(n<<3)+8|0)+a|0}Ib:{if((b|0)<=0){break Ib}a=0;if(b>>>0>=4){p=b&-4;while(1){d=a<<2;g=(J[d+t>>2]<<3)+l|0;f=J[g+4>>2];j=J[g>>2]+1|0;f=j?f:f+1|0;J[g>>2]=j;J[g+4>>2]=f;g=(J[t+(d|4)>>2]<<3)+l|0;i=J[g+4>>2];f=J[g>>2]+1|0;i=f?i:i+1|0;J[g>>2]=f;J[g+4>>2]=i;g=(J[t+(d|8)>>2]<<3)+l|0;j=J[g+4>>2];f=J[g>>2]+1|0;j=f?j:j+1|0;J[g>>2]=f;J[g+4>>2]=j;d=(J[t+(d|12)>>2]<<3)+l|0;f=J[d+4>>2];g=J[d>>2]+1|0;f=g?f:f+1|0;J[d>>2]=g;J[d+4>>2]=f;a=a+4|0;o=o+4|0;if((p|0)!=(o|0)){continue}break}}g=b&3;if(!g){break Ib}while(1){d=(J[t+(a<<2)>>2]<<3)+l|0;i=J[d+4>>2];f=J[d>>2]+1|0;i=f?i:i+1|0;J[d>>2]=f;J[d+4>>2]=i;a=a+1|0;q=q+1|0;if((g|0)!=(q|0)){continue}break}}J[c+8>>2]=0;J[c+12>>2]=0;J[c+16>>2]=0;J[c+20>>2]=0;J[c+24>>2]=0;J[c+28>>2]=0;J[c+32>>2]=0;J[c>>2]=0;J[c+4>>2]=0;J[c+40>>2]=0;J[c+44>>2]=0;r=e;e=0;o=0;d=0;q=0;s=ea-32|0;ea=s;a=k-l>>3;Jb:{if((a|0)<=0){break Jb}n=a&3;Kb:{if(a>>>0<4){a=0;break Kb}A=a&-4;a=0;while(1){p=a|1;f=(p<<3)+l|0;g=J[f+4>>2];y=J[f>>2];k=a|2;j=(k<<3)+l|0;f=J[j+4>>2];z=J[j>>2];x=a|3;i=(x<<3)+l|0;j=J[i+4>>2];C=J[i>>2];w=d;d=(a<<3)+l|0;D=J[d+4>>2];i=J[d>>2];d=j|C?x:f|z?k:g|y?p:!(D|i)?w:a;p=j;k=f;j=h+D|0;f=i+u|0;j=f>>>0>>0?j+1|0:j;i=f;h=f+y|0;f=g+j|0;f=h>>>0>>0?f+1|0:f;j=h;h=h+z|0;g=f+k|0;g=h>>>0>>0?g+1|0:g;f=h;h=h+C|0;g=g+p|0;u=h;h=h>>>0>>0?g+1|0:g;a=a+4|0;e=e+4|0;if((A|0)!=(e|0)){continue}break}}if(!n){break Jb}while(1){f=d;d=(a<<3)+l|0;g=J[d+4>>2];e=J[d>>2];d=!(g|e)?f:a;a=a+1|0;i=g+h|0;f=e+u|0;i=f>>>0>>0?i+1|0:i;u=f;h=i;o=o+1|0;if((n|0)!=(o|0)){continue}break}}g=d+1|0;J[c+12>>2]=g;e=J[c>>2];a=J[c+4>>2]-e>>3;Lb:{if(a>>>0>>0){Ya(c,g-a|0);break Lb}if(a>>>0<=g>>>0){break Lb}J[c+4>>2]=e+(g<<3)}k=0;Mb:{Nb:{Ob:{Pb:{if((d|0)>=0){v=+(u>>>0)+ +(h>>>0)*4294967296;h=J[c>>2];a=0;while(1){f=a<<3;j=f+l|0;e=J[j+4>>2];j=J[j>>2];i=(e|j)!=0;f=h+f|0;m=(+(j>>>0)+ +(e>>>0)*4294967296)/v*4096+.5;Qb:{if(m<4294967296&m>=0){e=~~m>>>0;break Qb}e=0}e=e?e:i?1:e;J[f>>2]=e;k=e+k|0;e=(a|0)==(d|0);a=a+1|0;if(!e){continue}break}if((k|0)==4096){break Pb}}J[s+16>>2]=0;J[s+8>>2]=0;J[s+12>>2]=0;n=0;Rb:{if(!g){break Rb}if(g>>>0>=1073741824){break a}f=g<<2;q=ra(f);J[s+8>>2]=q;e=0;h=sa(q,0,f);a=0;if(d>>>0>=7){j=g&-8;while(1){J[h+(a<<2)>>2]=a;i=a|1;J[h+(i<<2)>>2]=i;i=a|2;J[h+(i<<2)>>2]=i;i=a|3;J[h+(i<<2)>>2]=i;i=a|4;J[h+(i<<2)>>2]=i;i=a|5;J[h+(i<<2)>>2]=i;i=a|6;J[h+(i<<2)>>2]=i;i=a|7;J[h+(i<<2)>>2]=i;a=a+8|0;n=n+8|0;if((j|0)!=(n|0)){continue}break}}n=h+f|0;f=g&7;if(!f){break Rb}while(1){J[h+(a<<2)>>2]=a;a=a+1|0;e=e+1|0;if((f|0)!=(e|0)){continue}break}}J[s+24>>2]=c;a=n-q|0;e=a>>2;Sb:{Tb:{if((a|0)>=513){a=e;while(1){h=ra(a<<2);if(h){break Tb}h=a>>>0>1;a=a>>>1|0;if(h){continue}break}}bc(q,n,s+24|0,e,0,0);break Sb}bc(q,n,s+24|0,e,h,a);qa(h)}if((k|0)<4096){a=J[c>>2]+(J[n-4>>2]<<3)|0;J[a>>2]=(J[a>>2]-k|0)+4096;a=0;break Ob}if((d|0)>0){j=J[c>>2];o=k-4096|0;while(1){m=4096/+(k|0);e=d;while(1){Ub:{Vb:{h=j+(J[(e<<2)+q>>2]<<3)|0;a=J[h>>2];if(a>>>0>=2){i=h;p=a;v=V(m*+(a>>>0));Wb:{if(R(v)<2147483648){f=~~v;break Wb}f=-2147483648}h=(a|0)==(f|0)?1:a-f|0;a=(a|0)>(h|0)?h:a-1|0;a=(a|0)<(o|0)?a:o;J[i>>2]=p-a;o=o-a|0;k=k-a|0;if((k|0)!=4096){break Vb}k=4096;break Ub}if((d|0)!=(e|0)){break Ub}a=1;break Ob}a=(e|0)>1;e=e-1|0;if(a){continue}}break}a=0;if((o|0)>0){continue}break}break Ob}a=0;if(k>>>0<4097){break Ob}while(1)continue}if((d|0)<0){break Mb}break Nb}e=J[s+8>>2];if(e){qa(e)}if((d|0)<0|a){break Mb}}e=J[c>>2];k=0;o=0;a=0;if(d>>>0>=3){f=g&-4;q=0;while(1){h=o<<3;j=h+e|0;J[j+4>>2]=a;i=e+(h|8)|0;a=J[j>>2]+a|0;J[i+4>>2]=a;j=e+(h|16)|0;a=a+J[i>>2]|0;J[j+4>>2]=a;h=e+(h|24)|0;a=a+J[j>>2]|0;J[h+4>>2]=a;a=a+J[h>>2]|0;o=o+4|0;q=q+4|0;if((f|0)!=(q|0)){continue}break}}h=g&3;if(h){while(1){f=e+(o<<3)|0;J[f+4>>2]=a;o=o+1|0;a=J[f>>2]+a|0;k=k+1|0;if((h|0)!=(k|0)){continue}break}}if((a|0)!=4096){break Mb}a=0;m=0;Xb:{if((d|0)<0){break Xb}h=J[c>>2];if(d){d=g&-2;e=0;while(1){f=a<<3;j=J[f+h>>2];if(j){f=f+l|0;m=(+M[f>>2]+ +M[f+4>>2]*4294967296)*za(+(j>>>0)*.000244140625)+m}f=(a|1)<<3;j=J[f+h>>2];if(j){f=f+l|0;m=(+M[f>>2]+ +M[f+4>>2]*4294967296)*za(+(j>>>0)*.000244140625)+m}a=a+2|0;e=e+2|0;if((d|0)!=(e|0)){continue}break}}if(!(g&1)){break Xb}a=a<<3;d=J[a+h>>2];if(!d){break Xb}a=a+l|0;m=(+M[a>>2]+ +M[a+4>>2]*4294967296)*za(+(d>>>0)*.000244140625)+m}m=W(-m);Yb:{if(m<0x10000000000000000&m>=0){d=R(m)>=1?~~(m>0?T(V(m*2.3283064365386963e-10),4294967295):W((m-+(~~m>>>0>>>0))*2.3283064365386963e-10))>>>0:0;a=~~m>>>0;break Yb}d=0;a=0}J[c+16>>2]=a;J[c+20>>2]=d;Xa(c,r)}ea=s+32|0;e=J[c+16>>2];a=J[c+20>>2];d=J[r+4>>2]-J[r>>2]|0;J[c+40>>2]=d;J[c+44>>2]=0;g=a<<1|e>>>31;a=(e<<1)+39|0;j=a>>>0<39?g+1|0:g;a=d+((j&7)<<29|a>>>3)|0;g=j>>>3|0;g=a>>>0>>0?g+1|0:g;a=a+8|0;Ma(r,a);a=J[r>>2];J[c+28>>2]=0;J[c+32>>2]=16384;J[c+24>>2]=a+J[c+40>>2];if((b|0)>0){a=16384;while(1){d=b-1|0;h=J[c>>2]+(J[t+(d<<2)>>2]<<3)|0;e=J[h>>2];g=e<<10;if(g>>>0<=a>>>0){while(1){f=J[c+28>>2];J[c+28>>2]=f+1;H[f+J[c+24>>2]|0]=a;a=J[c+32>>2]>>>8|0;J[c+32>>2]=a;if(a>>>0>=g>>>0){continue}break}}f=J[h+4>>2];h=(a>>>0)/(e>>>0)|0;a=f+((h<<12)+(a-P(e,h)|0)|0)|0;J[c+32>>2]=a;e=(b|0)>1;b=d;if(e){continue}break}}zb(c,r);a=J[c>>2];if(a){J[c+4>>2]=a;qa(a)}a=J[c+48>>2];if(a){qa(a)}ea=c- -64|0;break Hb}k=1;break v;case 8:t=a;l=0;o=0;d=0;q=0;u=0;h=0;k=ea+-64|0;ea=k;J[k+56>>2]=0;J[k+48>>2]=0;J[k+52>>2]=0;Zb:{a=n+1|0;if(a){if(a>>>0>=536870912){break a}a=a<<3;o=ra(a);J[k+48>>2]=o;l=sa(o,0,(n<<3)+8|0)+a|0}_b:{if((b|0)<=0){break _b}a=0;if(b>>>0>=4){i=b&-4;while(1){c=a<<2;f=(J[c+t>>2]<<3)+o|0;g=J[f+4>>2];j=J[f>>2]+1|0;g=j?g:g+1|0;J[f>>2]=j;J[f+4>>2]=g;g=(J[t+(c|4)>>2]<<3)+o|0;j=J[g+4>>2];f=J[g>>2]+1|0;j=f?j:j+1|0;J[g>>2]=f;J[g+4>>2]=j;g=(J[t+(c|8)>>2]<<3)+o|0;p=J[g+4>>2];f=J[g>>2]+1|0;p=f?p:p+1|0;J[g>>2]=f;J[g+4>>2]=p;c=(J[t+(c|12)>>2]<<3)+o|0;g=J[c+4>>2];f=J[c>>2]+1|0;g=f?g:g+1|0;J[c>>2]=f;J[c+4>>2]=g;a=a+4|0;d=d+4|0;if((i|0)!=(d|0)){continue}break}}d=b&3;if(!d){break _b}while(1){c=(J[t+(a<<2)>>2]<<3)+o|0;j=J[c+4>>2];g=J[c>>2]+1|0;j=g?j:j+1|0;J[c>>2]=g;J[c+4>>2]=j;a=a+1|0;q=q+1|0;if((d|0)!=(q|0)){continue}break}}J[k+8>>2]=0;J[k+12>>2]=0;J[k+16>>2]=0;J[k+20>>2]=0;J[k+24>>2]=0;J[k+28>>2]=0;J[k+32>>2]=0;J[k>>2]=0;J[k+4>>2]=0;J[k+40>>2]=0;J[k+44>>2]=0;d=0;n=0;c=0;q=0;r=ea-32|0;ea=r;a=l-o>>3;$b:{if((a|0)<=0){break $b}l=a&3;ac:{if(a>>>0<4){a=0;break ac}C=a&-4;a=0;while(1){D=a|1;f=(D<<3)+o|0;g=J[f+4>>2];p=J[f>>2];A=a|2;j=(A<<3)+o|0;f=J[j+4>>2];s=J[j>>2];x=a|3;i=(x<<3)+o|0;j=J[i+4>>2];y=J[i>>2];w=c;c=(a<<3)+o|0;z=J[c+4>>2];i=J[c>>2];c=j|y?x:f|s?A:g|p?D:!(z|i)?w:a;w=p;p=h+z|0;u=i+u|0;p=u>>>0>>0?p+1|0:p;i=u;h=w+i|0;g=g+p|0;g=h>>>0>>0?g+1|0:g;i=h;h=h+s|0;g=g+f|0;g=h>>>0>>0?g+1|0:g;i=h;h=h+y|0;f=g+j|0;u=h;h=h>>>0>>0?f+1|0:f;a=a+4|0;d=d+4|0;if((C|0)!=(d|0)){continue}break}}if(!l){break $b}while(1){f=c;c=(a<<3)+o|0;g=J[c+4>>2];d=J[c>>2];c=!(g|d)?f:a;a=a+1|0;j=g+h|0;f=d+u|0;j=f>>>0>>0?j+1|0:j;u=f;h=j;n=n+1|0;if((l|0)!=(n|0)){continue}break}}g=c+1|0;J[k+12>>2]=g;d=J[k>>2];a=J[k+4>>2]-d>>3;bc:{if(a>>>0>>0){Ya(k,g-a|0);break bc}if(a>>>0<=g>>>0){break bc}J[k+4>>2]=d+(g<<3)}l=0;cc:{dc:{ec:{fc:{if((c|0)>=0){v=+(u>>>0)+ +(h>>>0)*4294967296;h=J[k>>2];a=0;while(1){f=a<<3;j=f+o|0;d=J[j+4>>2];j=J[j>>2];i=(d|j)!=0;f=h+f|0;m=(+(j>>>0)+ +(d>>>0)*4294967296)/v*8192+.5;gc:{if(m<4294967296&m>=0){d=~~m>>>0;break gc}d=0}d=d?d:i?1:d;J[f>>2]=d;l=d+l|0;d=(a|0)==(c|0);a=a+1|0;if(!d){continue}break}if((l|0)==8192){break fc}}J[r+16>>2]=0;J[r+8>>2]=0;J[r+12>>2]=0;n=0;hc:{if(!g){break hc}if(g>>>0>=1073741824){break a}f=g<<2;q=ra(f);J[r+8>>2]=q;d=0;h=sa(q,0,f);a=0;if(c>>>0>=7){j=g&-8;while(1){J[h+(a<<2)>>2]=a;i=a|1;J[h+(i<<2)>>2]=i;i=a|2;J[h+(i<<2)>>2]=i;i=a|3;J[h+(i<<2)>>2]=i;i=a|4;J[h+(i<<2)>>2]=i;i=a|5;J[h+(i<<2)>>2]=i;i=a|6;J[h+(i<<2)>>2]=i;i=a|7;J[h+(i<<2)>>2]=i;a=a+8|0;n=n+8|0;if((j|0)!=(n|0)){continue}break}}n=h+f|0;f=g&7;if(!f){break hc}while(1){J[h+(a<<2)>>2]=a;a=a+1|0;d=d+1|0;if((f|0)!=(d|0)){continue}break}}J[r+24>>2]=k;a=n-q|0;d=a>>2;ic:{jc:{if((a|0)>=513){a=d;while(1){h=ra(a<<2);if(h){break jc}h=a>>>0>1;a=a>>>1|0;if(h){continue}break}}ac(q,n,r+24|0,d,0,0);break ic}ac(q,n,r+24|0,d,h,a);qa(h)}if((l|0)<8192){a=J[k>>2]+(J[n-4>>2]<<3)|0;J[a>>2]=(J[a>>2]-l|0)- -8192;a=0;break ec}if((c|0)>0){j=J[k>>2];n=l+-8192|0;while(1){m=8192/+(l|0);d=c;while(1){kc:{lc:{h=j+(J[(d<<2)+q>>2]<<3)|0;a=J[h>>2];if(a>>>0>=2){i=h;p=a;v=V(m*+(a>>>0));mc:{if(R(v)<2147483648){f=~~v;break mc}f=-2147483648}h=(a|0)==(f|0)?1:a-f|0;a=(a|0)>(h|0)?h:a-1|0;a=(a|0)<(n|0)?a:n;J[i>>2]=p-a;n=n-a|0;l=l-a|0;if((l|0)!=8192){break lc}l=8192;break kc}if((c|0)!=(d|0)){break kc}a=1;break ec}a=(d|0)>1;d=d-1|0;if(a){continue}}break}a=0;if((n|0)>0){continue}break}break ec}a=0;if(l>>>0<8193){break ec}while(1)continue}if((c|0)<0){break cc}break dc}d=J[r+8>>2];if(d){qa(d)}if((c|0)<0|a){break cc}}d=J[k>>2];l=0;n=0;a=0;if(c>>>0>=3){f=g&-4;q=0;while(1){h=n<<3;j=h+d|0;J[j+4>>2]=a;i=d+(h|8)|0;a=J[j>>2]+a|0;J[i+4>>2]=a;j=d+(h|16)|0;a=a+J[i>>2]|0;J[j+4>>2]=a;h=d+(h|24)|0;a=a+J[j>>2]|0;J[h+4>>2]=a;a=a+J[h>>2]|0;n=n+4|0;q=q+4|0;if((f|0)!=(q|0)){continue}break}}h=g&3;if(h){while(1){f=d+(n<<3)|0;J[f+4>>2]=a;n=n+1|0;a=J[f>>2]+a|0;l=l+1|0;if((h|0)!=(l|0)){continue}break}}if((a|0)!=8192){break cc}a=0;m=0;nc:{if((c|0)<0){break nc}h=J[k>>2];if(c){c=g&-2;d=0;while(1){f=a<<3;j=J[f+h>>2];if(j){f=f+o|0;m=(+M[f>>2]+ +M[f+4>>2]*4294967296)*za(+(j>>>0)*.0001220703125)+m}f=(a|1)<<3;j=J[f+h>>2];if(j){f=f+o|0;m=(+M[f>>2]+ +M[f+4>>2]*4294967296)*za(+(j>>>0)*.0001220703125)+m}a=a+2|0;d=d+2|0;if((c|0)!=(d|0)){continue}break}}if(!(g&1)){break nc}a=a<<3;c=J[a+h>>2];if(!c){break nc}a=a+o|0;m=(+M[a>>2]+ +M[a+4>>2]*4294967296)*za(+(c>>>0)*.0001220703125)+m}m=W(-m);oc:{if(m<0x10000000000000000&m>=0){c=R(m)>=1?~~(m>0?T(V(m*2.3283064365386963e-10),4294967295):W((m-+(~~m>>>0>>>0))*2.3283064365386963e-10))>>>0:0;a=~~m>>>0;break oc}c=0;a=0}J[k+16>>2]=a;J[k+20>>2]=c;Xa(k,e)}ea=r+32|0;d=J[k+16>>2];a=J[k+20>>2];c=J[e+4>>2]-J[e>>2]|0;J[k+40>>2]=c;J[k+44>>2]=0;g=a<<1|d>>>31;a=(d<<1)+39|0;p=a>>>0<39?g+1|0:g;a=c+((p&7)<<29|a>>>3)|0;f=p>>>3|0;f=a>>>0>>0?f+1|0:f;a=a+8|0;Ma(e,a);a=J[e>>2];J[k+28>>2]=0;J[k+32>>2]=32768;J[k+24>>2]=a+J[k+40>>2];if((b|0)>0){a=32768;while(1){c=b-1|0;h=J[k>>2]+(J[t+(c<<2)>>2]<<3)|0;d=J[h>>2];g=d<<10;if(g>>>0<=a>>>0){while(1){f=J[k+28>>2];J[k+28>>2]=f+1;H[f+J[k+24>>2]|0]=a;a=J[k+32>>2]>>>8|0;J[k+32>>2]=a;if(a>>>0>=g>>>0){continue}break}}f=J[h+4>>2];h=(a>>>0)/(d>>>0)|0;a=f+((h<<13)+(a-P(d,h)|0)|0)|0;J[k+32>>2]=a;d=(b|0)>1;b=c;if(d){continue}break}}b=ea-32|0;ea=b;c=J[e>>2]+J[k+40>>2]|0;a=J[k+32>>2];d=a-32768|0;pc:{if(d>>>0<=63){H[J[k+24>>2]+J[k+28>>2]|0]=a;a=J[k+28>>2]+1|0;break pc}if(d>>>0<=16383){d=J[k+24>>2]+J[k+28>>2]|0;H[d+1|0]=a+49152>>>8;H[d|0]=a;a=J[k+28>>2]+2|0;break pc}if(d>>>0<=4194303){d=J[k+24>>2]+J[k+28>>2]|0;h=a+8355840|0;H[d+2|0]=h>>>16;H[d+1|0]=h>>>8;H[d|0]=a;a=J[k+28>>2]+3|0;break pc}if(d>>>0<=1073741823){d=J[k+24>>2]+J[k+28>>2]|0;h=a-1073774592|0;H[d+3|0]=h>>>24;H[d+2|0]=h>>>16;H[d+1|0]=h>>>8;H[d|0]=a;a=J[k+28>>2]+4|0;break pc}a=J[k+28>>2]}J[b>>2]=0;J[b+4>>2]=0;H[b+24|0]=0;J[b+16>>2]=0;J[b+20>>2]=0;J[b+8>>2]=0;J[b+12>>2]=0;g=a>>31;yb(a,g,b);d=J[b+4>>2]-J[b>>2]|0;xa(d+c|0,c,a);ta(c,J[b>>2],d);h=J[k+44>>2];c=a+d|0;g=c>>>0>>0?g+1|0:g;a=c+J[k+40>>2]|0;Ma(e,a);a=J[b+12>>2];J[b+12>>2]=0;if(a){qa(a)}a=J[b>>2];if(a){J[b+4>>2]=a;qa(a)}ea=b+32|0;a=J[k>>2];if(a){J[k+4>>2]=a;qa(a)}a=J[k+48>>2];if(a){qa(a)}ea=k- -64|0;break Zb}k=1;break v;case 9:t=a;l=0;o=0;d=0;q=0;u=0;h=0;k=ea+-64|0;ea=k;J[k+56>>2]=0;J[k+48>>2]=0;J[k+52>>2]=0;qc:{a=n+1|0;if(a){if(a>>>0>=536870912){break a}a=a<<3;o=ra(a);J[k+48>>2]=o;l=sa(o,0,(n<<3)+8|0)+a|0}rc:{if((b|0)<=0){break rc}a=0;if(b>>>0>=4){j=b&-4;while(1){c=a<<2;g=(J[c+t>>2]<<3)+o|0;i=J[g+4>>2];f=J[g>>2]+1|0;i=f?i:i+1|0;J[g>>2]=f;J[g+4>>2]=i;g=(J[t+(c|4)>>2]<<3)+o|0;f=J[g+4>>2];i=J[g>>2]+1|0;f=i?f:f+1|0;J[g>>2]=i;J[g+4>>2]=f;g=(J[t+(c|8)>>2]<<3)+o|0;p=J[g+4>>2];f=J[g>>2]+1|0;p=f?p:p+1|0;J[g>>2]=f;J[g+4>>2]=p;c=(J[t+(c|12)>>2]<<3)+o|0;i=J[c+4>>2];g=J[c>>2]+1|0;i=g?i:i+1|0;J[c>>2]=g;J[c+4>>2]=i;a=a+4|0;d=d+4|0;if((j|0)!=(d|0)){continue}break}}d=b&3;if(!d){break rc}while(1){c=(J[t+(a<<2)>>2]<<3)+o|0;f=J[c+4>>2];g=J[c>>2]+1|0;f=g?f:f+1|0;J[c>>2]=g;J[c+4>>2]=f;a=a+1|0;q=q+1|0;if((d|0)!=(q|0)){continue}break}}J[k+8>>2]=0;J[k+12>>2]=0;J[k+16>>2]=0;J[k+20>>2]=0;J[k+24>>2]=0;J[k+28>>2]=0;J[k+32>>2]=0;J[k>>2]=0;J[k+4>>2]=0;J[k+40>>2]=0;J[k+44>>2]=0;d=0;n=0;c=0;q=0;r=ea-32|0;ea=r;a=l-o>>3;sc:{if((a|0)<=0){break sc}l=a&3;tc:{if(a>>>0<4){a=0;break tc}C=a&-4;a=0;while(1){D=a|1;f=(D<<3)+o|0;g=J[f+4>>2];p=J[f>>2];A=a|2;j=(A<<3)+o|0;f=J[j+4>>2];s=J[j>>2];x=a|3;i=(x<<3)+o|0;j=J[i+4>>2];y=J[i>>2];w=c;c=(a<<3)+o|0;z=J[c+4>>2];i=J[c>>2];c=j|y?x:f|s?A:g|p?D:!(z|i)?w:a;w=p;p=h+z|0;u=i+u|0;p=u>>>0>>0?p+1|0:p;h=w+u|0;i=g+p|0;i=h>>>0>>0?i+1|0:i;p=h;h=h+s|0;g=f+i|0;g=h>>>0

>>0?g+1|0:g;f=h;h=h+y|0;g=g+j|0;u=h;h=h>>>0>>0?g+1|0:g;a=a+4|0;d=d+4|0;if((C|0)!=(d|0)){continue}break}}if(!l){break sc}while(1){f=c;c=(a<<3)+o|0;g=J[c+4>>2];d=J[c>>2];c=!(g|d)?f:a;a=a+1|0;f=g+h|0;j=d+u|0;f=j>>>0>>0?f+1|0:f;u=j;h=f;n=n+1|0;if((l|0)!=(n|0)){continue}break}}g=c+1|0;J[k+12>>2]=g;d=J[k>>2];a=J[k+4>>2]-d>>3;uc:{if(a>>>0>>0){Ya(k,g-a|0);break uc}if(a>>>0<=g>>>0){break uc}J[k+4>>2]=d+(g<<3)}l=0;vc:{wc:{xc:{yc:{if((c|0)>=0){v=+(u>>>0)+ +(h>>>0)*4294967296;h=J[k>>2];a=0;while(1){f=a<<3;j=f+o|0;d=J[j+4>>2];j=J[j>>2];i=(d|j)!=0;f=h+f|0;m=(+(j>>>0)+ +(d>>>0)*4294967296)/v*32768+.5;zc:{if(m<4294967296&m>=0){d=~~m>>>0;break zc}d=0}d=d?d:i?1:d;J[f>>2]=d;l=d+l|0;d=(a|0)==(c|0);a=a+1|0;if(!d){continue}break}if((l|0)==32768){break yc}}J[r+16>>2]=0;J[r+8>>2]=0;J[r+12>>2]=0;n=0;Ac:{if(!g){break Ac}if(g>>>0>=1073741824){break a}f=g<<2;q=ra(f);J[r+8>>2]=q;d=0;h=sa(q,0,f);a=0;if(c>>>0>=7){j=g&-8;while(1){J[h+(a<<2)>>2]=a;i=a|1;J[h+(i<<2)>>2]=i;i=a|2;J[h+(i<<2)>>2]=i;i=a|3;J[h+(i<<2)>>2]=i;i=a|4;J[h+(i<<2)>>2]=i;i=a|5;J[h+(i<<2)>>2]=i;i=a|6;J[h+(i<<2)>>2]=i;i=a|7;J[h+(i<<2)>>2]=i;a=a+8|0;n=n+8|0;if((j|0)!=(n|0)){continue}break}}n=h+f|0;f=g&7;if(!f){break Ac}while(1){J[h+(a<<2)>>2]=a;a=a+1|0;d=d+1|0;if((f|0)!=(d|0)){continue}break}}J[r+24>>2]=k;a=n-q|0;d=a>>2;Bc:{Cc:{if((a|0)>=513){a=d;while(1){h=ra(a<<2);if(h){break Cc}h=a>>>0>1;a=a>>>1|0;if(h){continue}break}}$b(q,n,r+24|0,d,0,0);break Bc}$b(q,n,r+24|0,d,h,a);qa(h)}if((l|0)<32768){a=J[k>>2]+(J[n-4>>2]<<3)|0;J[a>>2]=(J[a>>2]-l|0)+32768;a=0;break xc}if((c|0)>0){j=J[k>>2];n=l-32768|0;while(1){m=32768/+(l|0);d=c;while(1){Dc:{Ec:{h=j+(J[(d<<2)+q>>2]<<3)|0;a=J[h>>2];if(a>>>0>=2){i=h;p=a;v=V(m*+(a>>>0));Fc:{if(R(v)<2147483648){f=~~v;break Fc}f=-2147483648}h=(a|0)==(f|0)?1:a-f|0;a=(a|0)>(h|0)?h:a-1|0;a=(a|0)<(n|0)?a:n;J[i>>2]=p-a;n=n-a|0;l=l-a|0;if((l|0)!=32768){break Ec}l=32768;break Dc}if((c|0)!=(d|0)){break Dc}a=1;break xc}a=(d|0)>1;d=d-1|0;if(a){continue}}break}a=0;if((n|0)>0){continue}break}break xc}a=0;if(l>>>0<32769){break xc}while(1)continue}if((c|0)<0){break vc}break wc}d=J[r+8>>2];if(d){qa(d)}if((c|0)<0|a){break vc}}d=J[k>>2];l=0;n=0;a=0;if(c>>>0>=3){f=g&-4;q=0;while(1){h=n<<3;j=h+d|0;J[j+4>>2]=a;i=d+(h|8)|0;a=J[j>>2]+a|0;J[i+4>>2]=a;j=d+(h|16)|0;a=a+J[i>>2]|0;J[j+4>>2]=a;h=d+(h|24)|0;a=a+J[j>>2]|0;J[h+4>>2]=a;a=a+J[h>>2]|0;n=n+4|0;q=q+4|0;if((f|0)!=(q|0)){continue}break}}h=g&3;if(h){while(1){f=d+(n<<3)|0;J[f+4>>2]=a;n=n+1|0;a=J[f>>2]+a|0;l=l+1|0;if((h|0)!=(l|0)){continue}break}}if((a|0)!=32768){break vc}a=0;m=0;Gc:{if((c|0)<0){break Gc}h=J[k>>2];if(c){c=g&-2;d=0;while(1){f=a<<3;j=J[f+h>>2];if(j){f=f+o|0;m=(+M[f>>2]+ +M[f+4>>2]*4294967296)*za(+(j>>>0)*30517578125e-15)+m}f=(a|1)<<3;j=J[f+h>>2];if(j){f=f+o|0;m=(+M[f>>2]+ +M[f+4>>2]*4294967296)*za(+(j>>>0)*30517578125e-15)+m}a=a+2|0;d=d+2|0;if((c|0)!=(d|0)){continue}break}}if(!(g&1)){break Gc}a=a<<3;c=J[a+h>>2];if(!c){break Gc}a=a+o|0;m=(+M[a>>2]+ +M[a+4>>2]*4294967296)*za(+(c>>>0)*30517578125e-15)+m}m=W(-m);Hc:{if(m<0x10000000000000000&m>=0){c=R(m)>=1?~~(m>0?T(V(m*2.3283064365386963e-10),4294967295):W((m-+(~~m>>>0>>>0))*2.3283064365386963e-10))>>>0:0;a=~~m>>>0;break Hc}c=0;a=0}J[k+16>>2]=a;J[k+20>>2]=c;Xa(k,e)}ea=r+32|0;d=J[k+16>>2];a=J[k+20>>2];c=J[e+4>>2]-J[e>>2]|0;J[k+40>>2]=c;J[k+44>>2]=0;g=a<<1|d>>>31;a=(d<<1)+39|0;p=a>>>0<39?g+1|0:g;a=c+((p&7)<<29|a>>>3)|0;g=p>>>3|0;g=a>>>0>>0?g+1|0:g;a=a+8|0;Ma(e,a);a=J[e>>2];J[k+28>>2]=0;J[k+32>>2]=131072;J[k+24>>2]=a+J[k+40>>2];if((b|0)>0){a=131072;while(1){c=b-1|0;h=J[k>>2]+(J[t+(c<<2)>>2]<<3)|0;d=J[h>>2];g=d<<10;if(g>>>0<=a>>>0){while(1){f=J[k+28>>2];J[k+28>>2]=f+1;H[f+J[k+24>>2]|0]=a;a=J[k+32>>2]>>>8|0;J[k+32>>2]=a;if(a>>>0>=g>>>0){continue}break}}f=J[h+4>>2];h=(a>>>0)/(d>>>0)|0;a=f+((h<<15)+(a-P(d,h)|0)|0)|0;J[k+32>>2]=a;d=(b|0)>1;b=c;if(d){continue}break}}b=ea-32|0;ea=b;c=J[e>>2]+J[k+40>>2]|0;a=J[k+32>>2];d=a-131072|0;Ic:{if(d>>>0<=63){H[J[k+24>>2]+J[k+28>>2]|0]=a;a=J[k+28>>2]+1|0;break Ic}if(d>>>0<=16383){d=J[k+24>>2]+J[k+28>>2]|0;H[d+1|0]=a+16384>>>8;H[d|0]=a;a=J[k+28>>2]+2|0;break Ic}if(d>>>0<=4194303){d=J[k+24>>2]+J[k+28>>2]|0;H[d+2|0]=a+8257536>>>16;H[d+1|0]=a>>>8;H[d|0]=a;a=J[k+28>>2]+3|0;break Ic}if(d>>>0<=1073741823){d=J[k+24>>2]+J[k+28>>2]|0;h=a-1073872896|0;H[d+3|0]=h>>>24;H[d+2|0]=h>>>16;H[d+1|0]=a>>>8;H[d|0]=a;a=J[k+28>>2]+4|0;break Ic}a=J[k+28>>2]}J[b>>2]=0;J[b+4>>2]=0;H[b+24|0]=0;J[b+16>>2]=0;J[b+20>>2]=0;J[b+8>>2]=0;J[b+12>>2]=0;g=a>>31;yb(a,g,b);d=J[b+4>>2]-J[b>>2]|0;xa(d+c|0,c,a);ta(c,J[b>>2],d);h=J[k+44>>2];c=a+d|0;g=c>>>0>>0?g+1|0:g;a=c+J[k+40>>2]|0;Ma(e,a);a=J[b+12>>2];J[b+12>>2]=0;if(a){qa(a)}a=J[b>>2];if(a){J[b+4>>2]=a;qa(a)}ea=b+32|0;a=J[k>>2];if(a){J[k+4>>2]=a;qa(a)}a=J[k+48>>2];if(a){qa(a)}ea=k- -64|0;break qc}k=1;break v;case 10:t=a;l=0;o=0;d=0;q=0;u=0;h=0;k=ea+-64|0;ea=k;J[k+56>>2]=0;J[k+48>>2]=0;J[k+52>>2]=0;Jc:{a=n+1|0;if(a){if(a>>>0>=536870912){break a}a=a<<3;o=ra(a);J[k+48>>2]=o;l=sa(o,0,(n<<3)+8|0)+a|0}Kc:{if((b|0)<=0){break Kc}a=0;if(b>>>0>=4){i=b&-4;while(1){c=a<<2;g=(J[c+t>>2]<<3)+o|0;j=J[g+4>>2];f=J[g>>2]+1|0;j=f?j:j+1|0;J[g>>2]=f;J[g+4>>2]=j;f=(J[t+(c|4)>>2]<<3)+o|0;g=J[f+4>>2];j=J[f>>2]+1|0;g=j?g:g+1|0;J[f>>2]=j;J[f+4>>2]=g;g=(J[t+(c|8)>>2]<<3)+o|0;p=J[g+4>>2];f=J[g>>2]+1|0;p=f?p:p+1|0;J[g>>2]=f;J[g+4>>2]=p;c=(J[t+(c|12)>>2]<<3)+o|0;j=J[c+4>>2];g=J[c>>2]+1|0;j=g?j:j+1|0;J[c>>2]=g;J[c+4>>2]=j;a=a+4|0;d=d+4|0;if((i|0)!=(d|0)){continue}break}}d=b&3;if(!d){break Kc}while(1){c=(J[t+(a<<2)>>2]<<3)+o|0;g=J[c+4>>2];f=J[c>>2]+1|0;g=f?g:g+1|0;J[c>>2]=f;J[c+4>>2]=g;a=a+1|0;q=q+1|0;if((d|0)!=(q|0)){continue}break}}J[k+8>>2]=0;J[k+12>>2]=0;J[k+16>>2]=0;J[k+20>>2]=0;J[k+24>>2]=0;J[k+28>>2]=0;J[k+32>>2]=0;J[k>>2]=0;J[k+4>>2]=0;J[k+40>>2]=0;J[k+44>>2]=0;d=0;n=0;c=0;q=0;r=ea-32|0;ea=r;a=l-o>>3;Lc:{if((a|0)<=0){break Lc}s=a&3;Mc:{if(a>>>0<4){a=0;break Mc}D=a&-4;a=0;while(1){l=a|1;f=(l<<3)+o|0;g=J[f+4>>2];p=J[f>>2];A=a|2;j=(A<<3)+o|0;f=J[j+4>>2];y=J[j>>2];x=a|3;i=(x<<3)+o|0;j=J[i+4>>2];z=J[i>>2];w=c;c=(a<<3)+o|0;C=J[c+4>>2];i=J[c>>2];c=j|z?x:f|y?A:g|p?l:!(C|i)?w:a;l=j;w=p;p=h+C|0;j=i+u|0;p=j>>>0>>0?p+1|0:p;i=j;h=w+i|0;j=g+p|0;j=h>>>0>>0?j+1|0:j;i=h;h=h+y|0;g=f+j|0;g=h>>>0>>0?g+1|0:g;f=h;h=h+z|0;i=g+l|0;u=h;h=h>>>0>>0?i+1|0:i;a=a+4|0;d=d+4|0;if((D|0)!=(d|0)){continue}break}}if(!s){break Lc}while(1){f=c;c=(a<<3)+o|0;g=J[c+4>>2];d=J[c>>2];c=!(g|d)?f:a;a=a+1|0;g=g+h|0;f=d+u|0;g=f>>>0>>0?g+1|0:g;u=f;h=g;n=n+1|0;if((s|0)!=(n|0)){continue}break}}g=c+1|0;J[k+12>>2]=g;d=J[k>>2];a=J[k+4>>2]-d>>3;Nc:{if(a>>>0>>0){Ya(k,g-a|0);break Nc}if(a>>>0<=g>>>0){break Nc}J[k+4>>2]=d+(g<<3)}l=0;Oc:{Pc:{Qc:{Rc:{if((c|0)>=0){v=+(u>>>0)+ +(h>>>0)*4294967296;h=J[k>>2];a=0;while(1){f=a<<3;j=f+o|0;d=J[j+4>>2];j=J[j>>2];i=(d|j)!=0;f=h+f|0;m=(+(j>>>0)+ +(d>>>0)*4294967296)/v*65536+.5;Sc:{if(m<4294967296&m>=0){d=~~m>>>0;break Sc}d=0}d=d?d:i?1:d;J[f>>2]=d;l=d+l|0;d=(a|0)==(c|0);a=a+1|0;if(!d){continue}break}if((l|0)==65536){break Rc}}J[r+16>>2]=0;J[r+8>>2]=0;J[r+12>>2]=0;n=0;Tc:{if(!g){break Tc}if(g>>>0>=1073741824){break a}f=g<<2;q=ra(f);J[r+8>>2]=q;d=0;h=sa(q,0,f);a=0;if(c>>>0>=7){j=g&-8;while(1){J[h+(a<<2)>>2]=a;i=a|1;J[h+(i<<2)>>2]=i;i=a|2;J[h+(i<<2)>>2]=i;i=a|3;J[h+(i<<2)>>2]=i;i=a|4;J[h+(i<<2)>>2]=i;i=a|5;J[h+(i<<2)>>2]=i;i=a|6;J[h+(i<<2)>>2]=i;i=a|7;J[h+(i<<2)>>2]=i;a=a+8|0;n=n+8|0;if((j|0)!=(n|0)){continue}break}}n=h+f|0;f=g&7;if(!f){break Tc}while(1){J[h+(a<<2)>>2]=a;a=a+1|0;d=d+1|0;if((f|0)!=(d|0)){continue}break}}J[r+24>>2]=k;a=n-q|0;d=a>>2;Uc:{Vc:{if((a|0)>=513){a=d;while(1){h=ra(a<<2);if(h){break Vc}h=a>>>0>1;a=a>>>1|0;if(h){continue}break}}_b(q,n,r+24|0,d,0,0);break Uc}_b(q,n,r+24|0,d,h,a);qa(h)}if((l|0)<65536){a=J[k>>2]+(J[n-4>>2]<<3)|0;J[a>>2]=(J[a>>2]-l|0)+65536;a=0;break Qc}if((c|0)>0){j=J[k>>2];n=l-65536|0;while(1){m=65536/+(l|0);d=c;while(1){Wc:{Xc:{h=j+(J[(d<<2)+q>>2]<<3)|0;a=J[h>>2];if(a>>>0>=2){i=h;p=a;v=V(m*+(a>>>0));Yc:{if(R(v)<2147483648){f=~~v;break Yc}f=-2147483648}h=(a|0)==(f|0)?1:a-f|0;a=(a|0)>(h|0)?h:a-1|0;a=(a|0)<(n|0)?a:n;J[i>>2]=p-a;n=n-a|0;l=l-a|0;if((l|0)!=65536){break Xc}l=65536;break Wc}if((c|0)!=(d|0)){break Wc}a=1;break Qc}a=(d|0)>1;d=d-1|0;if(a){continue}}break}a=0;if((n|0)>0){continue}break}break Qc}a=0;if(l>>>0<65537){break Qc}while(1)continue}if((c|0)<0){break Oc}break Pc}d=J[r+8>>2];if(d){qa(d)}if((c|0)<0|a){break Oc}}d=J[k>>2];l=0;n=0;a=0;if(c>>>0>=3){f=g&-4;q=0;while(1){h=n<<3;j=h+d|0;J[j+4>>2]=a;i=d+(h|8)|0;a=J[j>>2]+a|0;J[i+4>>2]=a;j=d+(h|16)|0;a=a+J[i>>2]|0;J[j+4>>2]=a;h=d+(h|24)|0;a=a+J[j>>2]|0;J[h+4>>2]=a;a=a+J[h>>2]|0;n=n+4|0;q=q+4|0;if((f|0)!=(q|0)){continue}break}}h=g&3;if(h){while(1){f=d+(n<<3)|0;J[f+4>>2]=a;n=n+1|0;a=J[f>>2]+a|0;l=l+1|0;if((h|0)!=(l|0)){continue}break}}if((a|0)!=65536){break Oc}a=0;m=0;Zc:{if((c|0)<0){break Zc}h=J[k>>2];if(c){c=g&-2;d=0;while(1){f=a<<3;j=J[f+h>>2];if(j){f=f+o|0;m=(+M[f>>2]+ +M[f+4>>2]*4294967296)*za(+(j>>>0)*152587890625e-16)+m}f=(a|1)<<3;j=J[f+h>>2];if(j){f=f+o|0;m=(+M[f>>2]+ +M[f+4>>2]*4294967296)*za(+(j>>>0)*152587890625e-16)+m}a=a+2|0;d=d+2|0;if((c|0)!=(d|0)){continue}break}}if(!(g&1)){break Zc}a=a<<3;c=J[a+h>>2];if(!c){break Zc}a=a+o|0;m=(+M[a>>2]+ +M[a+4>>2]*4294967296)*za(+(c>>>0)*152587890625e-16)+m}m=W(-m);_c:{if(m<0x10000000000000000&m>=0){c=R(m)>=1?~~(m>0?T(V(m*2.3283064365386963e-10),4294967295):W((m-+(~~m>>>0>>>0))*2.3283064365386963e-10))>>>0:0;a=~~m>>>0;break _c}c=0;a=0}J[k+16>>2]=a;J[k+20>>2]=c;Xa(k,e)}ea=r+32|0;d=J[k+16>>2];a=J[k+20>>2];c=J[e+4>>2]-J[e>>2]|0;J[k+40>>2]=c;J[k+44>>2]=0;g=a<<1|d>>>31;a=(d<<1)+39|0;p=a>>>0<39?g+1|0:g;a=c+((p&7)<<29|a>>>3)|0;i=p>>>3|0;i=a>>>0>>0?i+1|0:i;a=a+8|0;Ma(e,a);a=J[e>>2];J[k+28>>2]=0;J[k+32>>2]=262144;J[k+24>>2]=a+J[k+40>>2];if((b|0)>0){a=262144;while(1){c=b-1|0;h=J[k>>2]+(J[t+(c<<2)>>2]<<3)|0;d=J[h>>2];g=d<<10;if(g>>>0<=a>>>0){while(1){f=J[k+28>>2];J[k+28>>2]=f+1;H[f+J[k+24>>2]|0]=a;a=J[k+32>>2]>>>8|0;J[k+32>>2]=a;if(a>>>0>=g>>>0){continue}break}}f=J[h+4>>2];h=(a>>>0)/(d>>>0)|0;a=f+((h<<16)+(a-P(d,h)|0)|0)|0;J[k+32>>2]=a;d=(b|0)>1;b=c;if(d){continue}break}}b=ea-32|0;ea=b;c=J[e>>2]+J[k+40>>2]|0;a=J[k+32>>2];d=a-262144|0;$c:{if(d>>>0<=63){H[J[k+24>>2]+J[k+28>>2]|0]=a;a=J[k+28>>2]+1|0;break $c}if(d>>>0<=16383){d=J[k+24>>2]+J[k+28>>2]|0;H[d+1|0]=a+16384>>>8;H[d|0]=a;a=J[k+28>>2]+2|0;break $c}if(d>>>0<=4194303){d=J[k+24>>2]+J[k+28>>2]|0;H[d+2|0]=a+8126464>>>16;H[d+1|0]=a>>>8;H[d|0]=a;a=J[k+28>>2]+3|0;break $c}if(d>>>0<=1073741823){d=J[k+24>>2]+J[k+28>>2]|0;h=a-1074003968|0;H[d+3|0]=h>>>24;H[d+2|0]=h>>>16;H[d+1|0]=a>>>8;H[d|0]=a;a=J[k+28>>2]+4|0;break $c}a=J[k+28>>2]}J[b>>2]=0;J[b+4>>2]=0;H[b+24|0]=0;J[b+16>>2]=0;J[b+20>>2]=0;J[b+8>>2]=0;J[b+12>>2]=0;g=a>>31;yb(a,g,b);d=J[b+4>>2]-J[b>>2]|0;xa(d+c|0,c,a);ta(c,J[b>>2],d);h=J[k+44>>2];c=a+d|0;g=c>>>0>>0?g+1|0:g;a=c+J[k+40>>2]|0;Ma(e,a);a=J[b+12>>2];J[b+12>>2]=0;if(a){qa(a)}a=J[b>>2];if(a){J[b+4>>2]=a;qa(a)}ea=b+32|0;a=J[k>>2];if(a){J[k+4>>2]=a;qa(a)}a=J[k+48>>2];if(a){qa(a)}ea=k- -64|0;break Jc}k=1;break v;case 11:t=a;l=0;o=0;d=0;q=0;u=0;h=0;k=ea+-64|0;ea=k;J[k+56>>2]=0;J[k+48>>2]=0;J[k+52>>2]=0;ad:{a=n+1|0;if(a){if(a>>>0>=536870912){break a}a=a<<3;o=ra(a);J[k+48>>2]=o;l=sa(o,0,(n<<3)+8|0)+a|0}bd:{if((b|0)<=0){break bd}a=0;if(b>>>0>=4){j=b&-4;while(1){c=a<<2;g=(J[c+t>>2]<<3)+o|0;f=J[g+4>>2];i=J[g>>2]+1|0;f=i?f:f+1|0;J[g>>2]=i;J[g+4>>2]=f;g=(J[t+(c|4)>>2]<<3)+o|0;i=J[g+4>>2];f=J[g>>2]+1|0;i=f?i:i+1|0;J[g>>2]=f;J[g+4>>2]=i;g=(J[t+(c|8)>>2]<<3)+o|0;p=J[g+4>>2];f=J[g>>2]+1|0;p=f?p:p+1|0;J[g>>2]=f;J[g+4>>2]=p;c=(J[t+(c|12)>>2]<<3)+o|0;f=J[c+4>>2];g=J[c>>2]+1|0;f=g?f:f+1|0;J[c>>2]=g;J[c+4>>2]=f;a=a+4|0;d=d+4|0;if((j|0)!=(d|0)){continue}break}}d=b&3;if(!d){break bd}while(1){c=(J[t+(a<<2)>>2]<<3)+o|0;i=J[c+4>>2];g=J[c>>2]+1|0;i=g?i:i+1|0;J[c>>2]=g;J[c+4>>2]=i;a=a+1|0;q=q+1|0;if((d|0)!=(q|0)){continue}break}}J[k+8>>2]=0;J[k+12>>2]=0;J[k+16>>2]=0;J[k+20>>2]=0;J[k+24>>2]=0;J[k+28>>2]=0;J[k+32>>2]=0;J[k>>2]=0;J[k+4>>2]=0;J[k+40>>2]=0;J[k+44>>2]=0;d=0;n=0;c=0;q=0;r=ea-32|0;ea=r;a=l-o>>3;cd:{if((a|0)<=0){break cd}s=a&3;dd:{if(a>>>0<4){a=0;break dd}D=a&-4;a=0;while(1){l=a|1;f=(l<<3)+o|0;g=J[f+4>>2];p=J[f>>2];A=a|2;j=(A<<3)+o|0;f=J[j+4>>2];y=J[j>>2];x=a|3;i=(x<<3)+o|0;j=J[i+4>>2];z=J[i>>2];w=c;c=(a<<3)+o|0;C=J[c+4>>2];i=J[c>>2];c=j|z?x:f|y?A:g|p?l:!(C|i)?w:a;l=f;w=p;p=h+C|0;f=i+u|0;p=f>>>0>>0?p+1|0:p;i=f;h=w+f|0;f=g+p|0;f=h>>>0>>0?f+1|0:f;i=h;h=h+y|0;g=f+l|0;g=h>>>0>>0?g+1|0:g;f=h;h=h+z|0;j=g+j|0;u=h;h=h>>>0>>0?j+1|0:j;a=a+4|0;d=d+4|0;if((D|0)!=(d|0)){continue}break}}if(!s){break cd}while(1){f=c;c=(a<<3)+o|0;g=J[c+4>>2];d=J[c>>2];c=!(g|d)?f:a;a=a+1|0;i=g+h|0;f=d+u|0;i=f>>>0>>0?i+1|0:i;u=f;h=i;n=n+1|0;if((s|0)!=(n|0)){continue}break}}g=c+1|0;J[k+12>>2]=g;d=J[k>>2];a=J[k+4>>2]-d>>3;ed:{if(a>>>0>>0){Ya(k,g-a|0);break ed}if(a>>>0<=g>>>0){break ed}J[k+4>>2]=d+(g<<3)}l=0;fd:{gd:{hd:{id:{if((c|0)>=0){v=+(u>>>0)+ +(h>>>0)*4294967296;h=J[k>>2];a=0;while(1){f=a<<3;j=f+o|0;d=J[j+4>>2];j=J[j>>2];i=(d|j)!=0;f=h+f|0;m=(+(j>>>0)+ +(d>>>0)*4294967296)/v*262144+.5;jd:{if(m<4294967296&m>=0){d=~~m>>>0;break jd}d=0}d=d?d:i?1:d;J[f>>2]=d;l=d+l|0;d=(a|0)==(c|0);a=a+1|0;if(!d){continue}break}if((l|0)==262144){break id}}J[r+16>>2]=0;J[r+8>>2]=0;J[r+12>>2]=0;n=0;kd:{if(!g){break kd}if(g>>>0>=1073741824){break a}f=g<<2;q=ra(f);J[r+8>>2]=q;d=0;h=sa(q,0,f);a=0;if(c>>>0>=7){j=g&-8;while(1){J[h+(a<<2)>>2]=a;i=a|1;J[h+(i<<2)>>2]=i;i=a|2;J[h+(i<<2)>>2]=i;i=a|3;J[h+(i<<2)>>2]=i;i=a|4;J[h+(i<<2)>>2]=i;i=a|5;J[h+(i<<2)>>2]=i;i=a|6;J[h+(i<<2)>>2]=i;i=a|7;J[h+(i<<2)>>2]=i;a=a+8|0;n=n+8|0;if((j|0)!=(n|0)){continue}break}}n=h+f|0;f=g&7;if(!f){break kd}while(1){J[h+(a<<2)>>2]=a;a=a+1|0;d=d+1|0;if((f|0)!=(d|0)){continue}break}}J[r+24>>2]=k;a=n-q|0;d=a>>2;ld:{md:{if((a|0)>=513){a=d;while(1){h=ra(a<<2);if(h){break md}h=a>>>0>1;a=a>>>1|0;if(h){continue}break}}Zb(q,n,r+24|0,d,0,0);break ld}Zb(q,n,r+24|0,d,h,a);qa(h)}if((l|0)<262144){a=J[k>>2]+(J[n-4>>2]<<3)|0;J[a>>2]=(J[a>>2]-l|0)+262144;a=0;break hd}if((c|0)>0){j=J[k>>2];n=l-262144|0;while(1){m=262144/+(l|0);d=c;while(1){nd:{od:{h=j+(J[(d<<2)+q>>2]<<3)|0;a=J[h>>2];if(a>>>0>=2){i=h;p=a;v=V(m*+(a>>>0));pd:{if(R(v)<2147483648){f=~~v;break pd}f=-2147483648}h=(a|0)==(f|0)?1:a-f|0;a=(a|0)>(h|0)?h:a-1|0;a=(a|0)<(n|0)?a:n;J[i>>2]=p-a;n=n-a|0;l=l-a|0;if((l|0)!=262144){break od}l=262144;break nd}if((c|0)!=(d|0)){break nd}a=1;break hd}a=(d|0)>1;d=d-1|0;if(a){continue}}break}a=0;if((n|0)>0){continue}break}break hd}a=0;if(l>>>0<262145){break hd}while(1)continue}if((c|0)<0){break fd}break gd}d=J[r+8>>2];if(d){qa(d)}if((c|0)<0|a){break fd}}d=J[k>>2];l=0;n=0;a=0;if(c>>>0>=3){f=g&-4;q=0;while(1){h=n<<3;j=h+d|0;J[j+4>>2]=a;i=d+(h|8)|0;a=J[j>>2]+a|0;J[i+4>>2]=a;j=d+(h|16)|0;a=a+J[i>>2]|0;J[j+4>>2]=a;h=d+(h|24)|0;a=a+J[j>>2]|0;J[h+4>>2]=a;a=a+J[h>>2]|0;n=n+4|0;q=q+4|0;if((f|0)!=(q|0)){continue}break}}h=g&3;if(h){while(1){f=d+(n<<3)|0;J[f+4>>2]=a;n=n+1|0;a=J[f>>2]+a|0;l=l+1|0;if((h|0)!=(l|0)){continue}break}}if((a|0)!=262144){break fd}a=0;m=0;qd:{if((c|0)<0){break qd}h=J[k>>2];if(c){c=g&-2;d=0;while(1){f=a<<3;j=J[f+h>>2];if(j){f=f+o|0;m=(+M[f>>2]+ +M[f+4>>2]*4294967296)*za(+(j>>>0)*3814697265625e-18)+m}f=(a|1)<<3;j=J[f+h>>2];if(j){f=f+o|0;m=(+M[f>>2]+ +M[f+4>>2]*4294967296)*za(+(j>>>0)*3814697265625e-18)+m}a=a+2|0;d=d+2|0;if((c|0)!=(d|0)){continue}break}}if(!(g&1)){break qd}a=a<<3;c=J[a+h>>2];if(!c){break qd}a=a+o|0;m=(+M[a>>2]+ +M[a+4>>2]*4294967296)*za(+(c>>>0)*3814697265625e-18)+m}m=W(-m);rd:{if(m<0x10000000000000000&m>=0){c=R(m)>=1?~~(m>0?T(V(m*2.3283064365386963e-10),4294967295):W((m-+(~~m>>>0>>>0))*2.3283064365386963e-10))>>>0:0;a=~~m>>>0;break rd}c=0;a=0}J[k+16>>2]=a;J[k+20>>2]=c;Xa(k,e)}ea=r+32|0;d=J[k+16>>2];a=J[k+20>>2];c=J[e+4>>2]-J[e>>2]|0;J[k+40>>2]=c;J[k+44>>2]=0;g=a<<1|d>>>31;a=(d<<1)+39|0;p=a>>>0<39?g+1|0:g;a=c+((p&7)<<29|a>>>3)|0;j=p>>>3|0;j=a>>>0>>0?j+1|0:j;a=a+8|0;Ma(e,a);a=J[e>>2];J[k+28>>2]=0;J[k+32>>2]=1048576;J[k+24>>2]=a+J[k+40>>2];if((b|0)>0){a=1048576;while(1){c=b-1|0;h=J[k>>2]+(J[t+(c<<2)>>2]<<3)|0;d=J[h>>2];g=d<<10;if(g>>>0<=a>>>0){while(1){f=J[k+28>>2];J[k+28>>2]=f+1;H[f+J[k+24>>2]|0]=a;a=J[k+32>>2]>>>8|0;J[k+32>>2]=a;if(a>>>0>=g>>>0){continue}break}}f=J[h+4>>2];h=(a>>>0)/(d>>>0)|0;a=f+((h<<18)+(a-P(d,h)|0)|0)|0;J[k+32>>2]=a;d=(b|0)>1;b=c;if(d){continue}break}}b=ea-32|0;ea=b;c=J[e>>2]+J[k+40>>2]|0;a=J[k+32>>2];d=a+-1048576|0;sd:{if(d>>>0<=63){H[J[k+24>>2]+J[k+28>>2]|0]=a;a=J[k+28>>2]+1|0;break sd}if(d>>>0<=16383){d=J[k+24>>2]+J[k+28>>2]|0;H[d+1|0]=a+16384>>>8;H[d|0]=a;a=J[k+28>>2]+2|0;break sd}if(d>>>0<=4194303){d=J[k+24>>2]+J[k+28>>2]|0;H[d+2|0]=a+7340032>>>16;H[d+1|0]=a>>>8;H[d|0]=a;a=J[k+28>>2]+3|0;break sd}if(d>>>0<=1073741823){d=J[k+24>>2]+J[k+28>>2]|0;h=a-1074790400|0;H[d+3|0]=h>>>24;H[d+2|0]=h>>>16;H[d+1|0]=a>>>8;H[d|0]=a;a=J[k+28>>2]+4|0;break sd}a=J[k+28>>2]}J[b>>2]=0;J[b+4>>2]=0;H[b+24|0]=0;J[b+16>>2]=0;J[b+20>>2]=0;J[b+8>>2]=0;J[b+12>>2]=0;g=a>>31;yb(a,g,b);d=J[b+4>>2]-J[b>>2]|0;xa(d+c|0,c,a);ta(c,J[b>>2],d);h=J[k+44>>2];c=a+d|0;g=c>>>0>>0?g+1|0:g;a=c+J[k+40>>2]|0;Ma(e,a);a=J[b+12>>2];J[b+12>>2]=0;if(a){qa(a)}a=J[b>>2];if(a){J[b+4>>2]=a;qa(a)}ea=b+32|0;a=J[k>>2];if(a){J[k+4>>2]=a;qa(a)}a=J[k+48>>2];if(a){qa(a)}ea=k- -64|0;break ad}k=1;break v;case 12:t=a;l=0;o=0;d=0;q=0;u=0;h=0;k=ea+-64|0;ea=k;J[k+56>>2]=0;J[k+48>>2]=0;J[k+52>>2]=0;td:{a=n+1|0;if(a){if(a>>>0>=536870912){break a}a=a<<3;o=ra(a);J[k+48>>2]=o;l=sa(o,0,(n<<3)+8|0)+a|0}ud:{if((b|0)<=0){break ud}a=0;if(b>>>0>=4){i=b&-4;while(1){c=a<<2;f=(J[c+t>>2]<<3)+o|0;g=J[f+4>>2];j=J[f>>2]+1|0;g=j?g:g+1|0;J[f>>2]=j;J[f+4>>2]=g;g=(J[t+(c|4)>>2]<<3)+o|0;j=J[g+4>>2];f=J[g>>2]+1|0;j=f?j:j+1|0;J[g>>2]=f;J[g+4>>2]=j;g=(J[t+(c|8)>>2]<<3)+o|0;p=J[g+4>>2];f=J[g>>2]+1|0;p=f?p:p+1|0;J[g>>2]=f;J[g+4>>2]=p;c=(J[t+(c|12)>>2]<<3)+o|0;g=J[c+4>>2];f=J[c>>2]+1|0;g=f?g:g+1|0;J[c>>2]=f;J[c+4>>2]=g;a=a+4|0;d=d+4|0;if((i|0)!=(d|0)){continue}break}}d=b&3;if(!d){break ud}while(1){c=(J[t+(a<<2)>>2]<<3)+o|0;j=J[c+4>>2];g=J[c>>2]+1|0;j=g?j:j+1|0;J[c>>2]=g;J[c+4>>2]=j;a=a+1|0;q=q+1|0;if((d|0)!=(q|0)){continue}break}}J[k+8>>2]=0;J[k+12>>2]=0;J[k+16>>2]=0;J[k+20>>2]=0;J[k+24>>2]=0;J[k+28>>2]=0;J[k+32>>2]=0;J[k>>2]=0;J[k+4>>2]=0;J[k+40>>2]=0;J[k+44>>2]=0;d=0;n=0;c=0;q=0;r=ea-32|0;ea=r;a=l-o>>3;vd:{if((a|0)<=0){break vd}l=a&3;wd:{if(a>>>0<4){a=0;break wd}C=a&-4;a=0;while(1){D=a|1;f=(D<<3)+o|0;g=J[f+4>>2];p=J[f>>2];A=a|2;j=(A<<3)+o|0;f=J[j+4>>2];s=J[j>>2];x=a|3;i=(x<<3)+o|0;j=J[i+4>>2];y=J[i>>2];w=c;c=(a<<3)+o|0;z=J[c+4>>2];i=J[c>>2];c=j|y?x:f|s?A:g|p?D:!(z|i)?w:a;w=p;p=h+z|0;u=i+u|0;p=u>>>0>>0?p+1|0:p;i=u;h=w+i|0;g=g+p|0;g=h>>>0>>0?g+1|0:g;i=h;h=h+s|0;g=g+f|0;g=h>>>0>>0?g+1|0:g;i=h;h=h+y|0;f=g+j|0;u=h;h=h>>>0>>0?f+1|0:f;a=a+4|0;d=d+4|0;if((C|0)!=(d|0)){continue}break}}if(!l){break vd}while(1){f=c;c=(a<<3)+o|0;g=J[c+4>>2];d=J[c>>2];c=!(g|d)?f:a;a=a+1|0;j=g+h|0;f=d+u|0;j=f>>>0>>0?j+1|0:j;u=f;h=j;n=n+1|0;if((l|0)!=(n|0)){continue}break}}g=c+1|0;J[k+12>>2]=g;d=J[k>>2];a=J[k+4>>2]-d>>3;xd:{if(a>>>0>>0){Ya(k,g-a|0);break xd}if(a>>>0<=g>>>0){break xd}J[k+4>>2]=d+(g<<3)}l=0;yd:{zd:{Ad:{Bd:{if((c|0)>=0){v=+(u>>>0)+ +(h>>>0)*4294967296;h=J[k>>2];a=0;while(1){f=a<<3;j=f+o|0;d=J[j+4>>2];j=J[j>>2];i=(d|j)!=0;f=h+f|0;m=(+(j>>>0)+ +(d>>>0)*4294967296)/v*524288+.5;Cd:{if(m<4294967296&m>=0){d=~~m>>>0;break Cd}d=0}d=d?d:i?1:d;J[f>>2]=d;l=d+l|0;d=(a|0)==(c|0);a=a+1|0;if(!d){continue}break}if((l|0)==524288){break Bd}}J[r+16>>2]=0;J[r+8>>2]=0;J[r+12>>2]=0;n=0;Dd:{if(!g){break Dd}if(g>>>0>=1073741824){break a}f=g<<2;q=ra(f);J[r+8>>2]=q;d=0;h=sa(q,0,f);a=0;if(c>>>0>=7){j=g&-8;while(1){J[h+(a<<2)>>2]=a;i=a|1;J[h+(i<<2)>>2]=i;i=a|2;J[h+(i<<2)>>2]=i;i=a|3;J[h+(i<<2)>>2]=i;i=a|4;J[h+(i<<2)>>2]=i;i=a|5;J[h+(i<<2)>>2]=i;i=a|6;J[h+(i<<2)>>2]=i;i=a|7;J[h+(i<<2)>>2]=i;a=a+8|0;n=n+8|0;if((j|0)!=(n|0)){continue}break}}n=h+f|0;f=g&7;if(!f){break Dd}while(1){J[h+(a<<2)>>2]=a;a=a+1|0;d=d+1|0;if((f|0)!=(d|0)){continue}break}}J[r+24>>2]=k;a=n-q|0;d=a>>2;Ed:{Fd:{if((a|0)>=513){a=d;while(1){h=ra(a<<2);if(h){break Fd}h=a>>>0>1;a=a>>>1|0;if(h){continue}break}}Yb(q,n,r+24|0,d,0,0);break Ed}Yb(q,n,r+24|0,d,h,a);qa(h)}if((l|0)<524288){a=J[k>>2]+(J[n-4>>2]<<3)|0;J[a>>2]=(J[a>>2]-l|0)+524288;a=0;break Ad}if((c|0)>0){j=J[k>>2];n=l-524288|0;while(1){m=524288/+(l|0);d=c;while(1){Gd:{Hd:{h=j+(J[(d<<2)+q>>2]<<3)|0;a=J[h>>2];if(a>>>0>=2){i=h;p=a;v=V(m*+(a>>>0));Id:{if(R(v)<2147483648){f=~~v;break Id}f=-2147483648}h=(a|0)==(f|0)?1:a-f|0;a=(a|0)>(h|0)?h:a-1|0;a=(a|0)<(n|0)?a:n;J[i>>2]=p-a;n=n-a|0;l=l-a|0;if((l|0)!=524288){break Hd}l=524288;break Gd}if((c|0)!=(d|0)){break Gd}a=1;break Ad}a=(d|0)>1;d=d-1|0;if(a){continue}}break}a=0;if((n|0)>0){continue}break}break Ad}a=0;if(l>>>0<524289){break Ad}while(1)continue}if((c|0)<0){break yd}break zd}d=J[r+8>>2];if(d){qa(d)}if((c|0)<0|a){break yd}}d=J[k>>2];l=0;n=0;a=0;if(c>>>0>=3){f=g&-4;q=0;while(1){h=n<<3;j=h+d|0;J[j+4>>2]=a;i=d+(h|8)|0;a=J[j>>2]+a|0;J[i+4>>2]=a;j=d+(h|16)|0;a=a+J[i>>2]|0;J[j+4>>2]=a;h=d+(h|24)|0;a=a+J[j>>2]|0;J[h+4>>2]=a;a=a+J[h>>2]|0;n=n+4|0;q=q+4|0;if((f|0)!=(q|0)){continue}break}}h=g&3;if(h){while(1){f=d+(n<<3)|0;J[f+4>>2]=a;n=n+1|0;a=J[f>>2]+a|0;l=l+1|0;if((h|0)!=(l|0)){continue}break}}if((a|0)!=524288){break yd}a=0;m=0;Jd:{if((c|0)<0){break Jd}h=J[k>>2];if(c){c=g&-2;d=0;while(1){f=a<<3;j=J[f+h>>2];if(j){f=f+o|0;m=(+M[f>>2]+ +M[f+4>>2]*4294967296)*za(+(j>>>0)*19073486328125e-19)+m}f=(a|1)<<3;j=J[f+h>>2];if(j){f=f+o|0;m=(+M[f>>2]+ +M[f+4>>2]*4294967296)*za(+(j>>>0)*19073486328125e-19)+m}a=a+2|0;d=d+2|0;if((c|0)!=(d|0)){continue}break}}if(!(g&1)){break Jd}a=a<<3;c=J[a+h>>2];if(!c){break Jd}a=a+o|0;m=(+M[a>>2]+ +M[a+4>>2]*4294967296)*za(+(c>>>0)*19073486328125e-19)+m}m=W(-m);Kd:{if(m<0x10000000000000000&m>=0){c=R(m)>=1?~~(m>0?T(V(m*2.3283064365386963e-10),4294967295):W((m-+(~~m>>>0>>>0))*2.3283064365386963e-10))>>>0:0;a=~~m>>>0;break Kd}c=0;a=0}J[k+16>>2]=a;J[k+20>>2]=c;Xa(k,e)}ea=r+32|0;d=J[k+16>>2];a=J[k+20>>2];c=J[e+4>>2]-J[e>>2]|0;J[k+40>>2]=c;J[k+44>>2]=0;g=a<<1|d>>>31;a=(d<<1)+39|0;p=a>>>0<39?g+1|0:g;a=c+((p&7)<<29|a>>>3)|0;f=p>>>3|0;f=a>>>0>>0?f+1|0:f;a=a+8|0;Ma(e,a);a=J[e>>2];J[k+28>>2]=0;J[k+32>>2]=2097152;J[k+24>>2]=a+J[k+40>>2];if((b|0)>0){a=2097152;while(1){c=b-1|0;h=J[k>>2]+(J[t+(c<<2)>>2]<<3)|0;d=J[h>>2];g=d<<10;if(g>>>0<=a>>>0){while(1){f=J[k+28>>2];J[k+28>>2]=f+1;H[f+J[k+24>>2]|0]=a;a=J[k+32>>2]>>>8|0;J[k+32>>2]=a;if(a>>>0>=g>>>0){continue}break}}f=J[h+4>>2];h=(a>>>0)/(d>>>0)|0;a=f+((h<<19)+(a-P(d,h)|0)|0)|0;J[k+32>>2]=a;d=(b|0)>1;b=c;if(d){continue}break}}b=ea-32|0;ea=b;c=J[e>>2]+J[k+40>>2]|0;a=J[k+32>>2];d=a-2097152|0;Ld:{if(d>>>0<=63){H[J[k+24>>2]+J[k+28>>2]|0]=a;a=J[k+28>>2]+1|0;break Ld}if(d>>>0<=16383){d=J[k+24>>2]+J[k+28>>2]|0;H[d+1|0]=a+16384>>>8;H[d|0]=a;a=J[k+28>>2]+2|0;break Ld}if(d>>>0<=4194303){d=J[k+24>>2]+J[k+28>>2]|0;H[d+2|0]=a+6291456>>>16;H[d+1|0]=a>>>8;H[d|0]=a;a=J[k+28>>2]+3|0;break Ld}if(d>>>0<=1073741823){d=J[k+24>>2]+J[k+28>>2]|0;h=a-1075838976|0;H[d+3|0]=h>>>24;H[d+2|0]=h>>>16;H[d+1|0]=a>>>8;H[d|0]=a;a=J[k+28>>2]+4|0;break Ld}a=J[k+28>>2]}J[b>>2]=0;J[b+4>>2]=0;H[b+24|0]=0;J[b+16>>2]=0;J[b+20>>2]=0;J[b+8>>2]=0;J[b+12>>2]=0;g=a>>31;yb(a,g,b);d=J[b+4>>2]-J[b>>2]|0;xa(d+c|0,c,a);ta(c,J[b>>2],d);h=J[k+44>>2];c=a+d|0;g=c>>>0>>0?g+1|0:g;a=c+J[k+40>>2]|0;Ma(e,a);a=J[b+12>>2];J[b+12>>2]=0;if(a){qa(a)}a=J[b>>2];if(a){J[b+4>>2]=a;qa(a)}ea=b+32|0;a=J[k>>2];if(a){J[k+4>>2]=a;qa(a)}a=J[k+48>>2];if(a){qa(a)}ea=k- -64|0;break td}k=1;break v;case 13:t=a;l=0;o=0;q=0;u=0;h=0;c=ea+-64|0;ea=c;J[c+56>>2]=0;J[c+48>>2]=0;J[c+52>>2]=0;Md:{a=n+1|0;if(a){if(a>>>0>=536870912){break a}a=a<<3;l=ra(a);J[c+48>>2]=l;k=sa(l,0,(n<<3)+8|0)+a|0}Nd:{if((b|0)<=0){break Nd}a=0;if(b>>>0>=4){j=b&-4;while(1){d=a<<2;g=(J[d+t>>2]<<3)+l|0;i=J[g+4>>2];f=J[g>>2]+1|0;i=f?i:i+1|0;J[g>>2]=f;J[g+4>>2]=i;g=(J[t+(d|4)>>2]<<3)+l|0;f=J[g+4>>2];i=J[g>>2]+1|0;f=i?f:f+1|0;J[g>>2]=i;J[g+4>>2]=f;g=(J[t+(d|8)>>2]<<3)+l|0;p=J[g+4>>2];f=J[g>>2]+1|0;p=f?p:p+1|0;J[g>>2]=f;J[g+4>>2]=p;d=(J[t+(d|12)>>2]<<3)+l|0;i=J[d+4>>2];g=J[d>>2]+1|0;i=g?i:i+1|0;J[d>>2]=g;J[d+4>>2]=i;a=a+4|0;o=o+4|0;if((j|0)!=(o|0)){continue}break}}g=b&3;if(!g){break Nd}while(1){d=(J[t+(a<<2)>>2]<<3)+l|0;f=J[d+4>>2];j=J[d>>2]+1|0;f=j?f:f+1|0;J[d>>2]=j;J[d+4>>2]=f;a=a+1|0;q=q+1|0;if((g|0)!=(q|0)){continue}break}}J[c+8>>2]=0;J[c+12>>2]=0;J[c+16>>2]=0;J[c+20>>2]=0;J[c+24>>2]=0;J[c+28>>2]=0;J[c+32>>2]=0;J[c>>2]=0;J[c+4>>2]=0;J[c+40>>2]=0;J[c+44>>2]=0;r=e;e=0;o=0;d=0;q=0;s=ea-32|0;ea=s;a=k-l>>3;Od:{if((a|0)<=0){break Od}k=a&3;Pd:{if(a>>>0<4){a=0;break Pd}C=a&-4;a=0;while(1){D=a|1;f=(D<<3)+l|0;g=J[f+4>>2];p=J[f>>2];A=a|2;j=(A<<3)+l|0;f=J[j+4>>2];n=J[j>>2];x=a|3;i=(x<<3)+l|0;j=J[i+4>>2];y=J[i>>2];w=d;d=(a<<3)+l|0;z=J[d+4>>2];i=J[d>>2];d=j|y?x:f|n?A:g|p?D:!(z|i)?w:a;w=n;x=p;p=h+z|0;n=i+u|0;p=n>>>0>>0?p+1|0:p;h=x+n|0;i=g+p|0;i=h>>>0>>0?i+1|0:i;p=h;h=w+h|0;g=f+i|0;g=h>>>0

>>0?g+1|0:g;f=h;h=h+y|0;g=g+j|0;u=h;h=h>>>0>>0?g+1|0:g;a=a+4|0;e=e+4|0;if((C|0)!=(e|0)){continue}break}}if(!k){break Od}while(1){f=d;d=(a<<3)+l|0;g=J[d+4>>2];e=J[d>>2];d=!(g|e)?f:a;a=a+1|0;f=g+h|0;j=e+u|0;f=j>>>0>>0?f+1|0:f;u=j;h=f;o=o+1|0;if((k|0)!=(o|0)){continue}break}}g=d+1|0;J[c+12>>2]=g;e=J[c>>2];a=J[c+4>>2]-e>>3;Qd:{if(a>>>0>>0){Ya(c,g-a|0);break Qd}if(a>>>0<=g>>>0){break Qd}J[c+4>>2]=e+(g<<3)}k=0;Rd:{Sd:{Td:{Ud:{if((d|0)>=0){v=+(u>>>0)+ +(h>>>0)*4294967296;h=J[c>>2];a=0;while(1){f=a<<3;j=f+l|0;e=J[j+4>>2];j=J[j>>2];i=(e|j)!=0;f=h+f|0;m=(+(j>>>0)+ +(e>>>0)*4294967296)/v*1048576+.5;Vd:{if(m<4294967296&m>=0){e=~~m>>>0;break Vd}e=0}e=e?e:i?1:e;J[f>>2]=e;k=e+k|0;e=(a|0)==(d|0);a=a+1|0;if(!e){continue}break}if((k|0)==1048576){break Ud}}J[s+16>>2]=0;J[s+8>>2]=0;J[s+12>>2]=0;n=0;Wd:{if(!g){break Wd}if(g>>>0>=1073741824){break a}f=g<<2;q=ra(f);J[s+8>>2]=q;e=0;h=sa(q,0,f);a=0;if(d>>>0>=7){j=g&-8;while(1){J[h+(a<<2)>>2]=a;i=a|1;J[h+(i<<2)>>2]=i;i=a|2;J[h+(i<<2)>>2]=i;i=a|3;J[h+(i<<2)>>2]=i;i=a|4;J[h+(i<<2)>>2]=i;i=a|5;J[h+(i<<2)>>2]=i;i=a|6;J[h+(i<<2)>>2]=i;i=a|7;J[h+(i<<2)>>2]=i;a=a+8|0;n=n+8|0;if((j|0)!=(n|0)){continue}break}}n=h+f|0;f=g&7;if(!f){break Wd}while(1){J[h+(a<<2)>>2]=a;a=a+1|0;e=e+1|0;if((f|0)!=(e|0)){continue}break}}J[s+24>>2]=c;a=n-q|0;e=a>>2;Xd:{Yd:{if((a|0)>=513){a=e;while(1){h=ra(a<<2);if(h){break Yd}h=a>>>0>1;a=a>>>1|0;if(h){continue}break}}Xb(q,n,s+24|0,e,0,0);break Xd}Xb(q,n,s+24|0,e,h,a);qa(h)}if((k|0)<1048576){a=J[c>>2]+(J[n-4>>2]<<3)|0;J[a>>2]=(J[a>>2]-k|0)- -1048576;a=0;break Td}if((d|0)>0){j=J[c>>2];o=k+-1048576|0;while(1){m=1048576/+(k|0);e=d;while(1){Zd:{_d:{h=j+(J[(e<<2)+q>>2]<<3)|0;a=J[h>>2];if(a>>>0>=2){i=h;p=a;v=V(m*+(a>>>0));$d:{if(R(v)<2147483648){f=~~v;break $d}f=-2147483648}h=(a|0)==(f|0)?1:a-f|0;a=(a|0)>(h|0)?h:a-1|0;a=(a|0)<(o|0)?a:o;J[i>>2]=p-a;o=o-a|0;k=k-a|0;if((k|0)!=1048576){break _d}k=1048576;break Zd}if((d|0)!=(e|0)){break Zd}a=1;break Td}a=(e|0)>1;e=e-1|0;if(a){continue}}break}a=0;if((o|0)>0){continue}break}break Td}a=0;if(k>>>0<1048577){break Td}while(1)continue}if((d|0)<0){break Rd}break Sd}e=J[s+8>>2];if(e){qa(e)}if((d|0)<0|a){break Rd}}e=J[c>>2];k=0;o=0;a=0;if(d>>>0>=3){f=g&-4;q=0;while(1){h=o<<3;j=h+e|0;J[j+4>>2]=a;i=e+(h|8)|0;a=J[j>>2]+a|0;J[i+4>>2]=a;j=e+(h|16)|0;a=a+J[i>>2]|0;J[j+4>>2]=a;h=e+(h|24)|0;a=a+J[j>>2]|0;J[h+4>>2]=a;a=a+J[h>>2]|0;o=o+4|0;q=q+4|0;if((f|0)!=(q|0)){continue}break}}h=g&3;if(h){while(1){f=e+(o<<3)|0;J[f+4>>2]=a;o=o+1|0;a=J[f>>2]+a|0;k=k+1|0;if((h|0)!=(k|0)){continue}break}}if((a|0)!=1048576){break Rd}a=0;m=0;ae:{if((d|0)<0){break ae}h=J[c>>2];if(d){d=g&-2;e=0;while(1){f=a<<3;j=J[f+h>>2];if(j){f=f+l|0;m=(+M[f>>2]+ +M[f+4>>2]*4294967296)*za(+(j>>>0)*9.5367431640625e-7)+m}f=(a|1)<<3;j=J[f+h>>2];if(j){f=f+l|0;m=(+M[f>>2]+ +M[f+4>>2]*4294967296)*za(+(j>>>0)*9.5367431640625e-7)+m}a=a+2|0;e=e+2|0;if((d|0)!=(e|0)){continue}break}}if(!(g&1)){break ae}a=a<<3;d=J[a+h>>2];if(!d){break ae}a=a+l|0;m=(+M[a>>2]+ +M[a+4>>2]*4294967296)*za(+(d>>>0)*9.5367431640625e-7)+m}m=W(-m);be:{if(m<0x10000000000000000&m>=0){d=R(m)>=1?~~(m>0?T(V(m*2.3283064365386963e-10),4294967295):W((m-+(~~m>>>0>>>0))*2.3283064365386963e-10))>>>0:0;a=~~m>>>0;break be}d=0;a=0}J[c+16>>2]=a;J[c+20>>2]=d;Xa(c,r)}ea=s+32|0;e=J[c+16>>2];a=J[c+20>>2];d=J[r+4>>2]-J[r>>2]|0;J[c+40>>2]=d;J[c+44>>2]=0;g=a<<1|e>>>31;a=(e<<1)+39|0;p=a>>>0<39?g+1|0:g;a=d+((p&7)<<29|a>>>3)|0;g=p>>>3|0;g=a>>>0>>0?g+1|0:g;a=a+8|0;Ma(r,a);a=J[r>>2];J[c+28>>2]=0;J[c+32>>2]=4194304;J[c+24>>2]=a+J[c+40>>2];if((b|0)>0){a=4194304;while(1){d=b-1|0;h=J[c>>2]+(J[t+(d<<2)>>2]<<3)|0;e=J[h>>2];g=e<<10;if(g>>>0<=a>>>0){while(1){f=J[c+28>>2];J[c+28>>2]=f+1;H[f+J[c+24>>2]|0]=a;a=J[c+32>>2]>>>8|0;J[c+32>>2]=a;if(a>>>0>=g>>>0){continue}break}}f=J[h+4>>2];h=(a>>>0)/(e>>>0)|0;a=f+((h<<20)+(a-P(e,h)|0)|0)|0;J[c+32>>2]=a;e=(b|0)>1;b=d;if(e){continue}break}}qc(c,r);a=J[c>>2];if(a){J[c+4>>2]=a;qa(a)}a=J[c+48>>2];if(a){qa(a)}ea=c- -64|0;break Md}k=1;break v;case 14:t=a;l=0;o=0;q=0;u=0;h=0;c=ea+-64|0;ea=c;J[c+56>>2]=0;J[c+48>>2]=0;J[c+52>>2]=0;ce:{a=n+1|0;if(a){if(a>>>0>=536870912){break a}a=a<<3;l=ra(a);J[c+48>>2]=l;k=sa(l,0,(n<<3)+8|0)+a|0}de:{if((b|0)<=0){break de}a=0;if(b>>>0>=4){i=b&-4;while(1){d=a<<2;f=(J[d+t>>2]<<3)+l|0;g=J[f+4>>2];j=J[f>>2]+1|0;g=j?g:g+1|0;J[f>>2]=j;J[f+4>>2]=g;g=(J[t+(d|4)>>2]<<3)+l|0;p=J[g+4>>2];f=J[g>>2]+1|0;p=f?p:p+1|0;J[g>>2]=f;J[g+4>>2]=p;g=(J[t+(d|8)>>2]<<3)+l|0;j=J[g+4>>2];f=J[g>>2]+1|0;j=f?j:j+1|0;J[g>>2]=f;J[g+4>>2]=j;d=(J[t+(d|12)>>2]<<3)+l|0;g=J[d+4>>2];f=J[d>>2]+1|0;g=f?g:g+1|0;J[d>>2]=f;J[d+4>>2]=g;a=a+4|0;o=o+4|0;if((i|0)!=(o|0)){continue}break}}g=b&3;if(!g){break de}while(1){d=(J[t+(a<<2)>>2]<<3)+l|0;p=J[d+4>>2];f=J[d>>2]+1|0;p=f?p:p+1|0;J[d>>2]=f;J[d+4>>2]=p;a=a+1|0;q=q+1|0;if((g|0)!=(q|0)){continue}break}}J[c+8>>2]=0;J[c+12>>2]=0;J[c+16>>2]=0;J[c+20>>2]=0;J[c+24>>2]=0;J[c+28>>2]=0;J[c+32>>2]=0;J[c>>2]=0;J[c+4>>2]=0;J[c+40>>2]=0;J[c+44>>2]=0;r=e;e=0;o=0;d=0;q=0;s=ea-32|0;ea=s;a=k-l>>3;ee:{if((a|0)<=0){break ee}k=a&3;fe:{if(a>>>0<4){a=0;break fe}D=a&-4;a=0;while(1){p=a|1;f=(p<<3)+l|0;g=J[f+4>>2];n=J[f>>2];A=a|2;j=(A<<3)+l|0;f=J[j+4>>2];y=J[j>>2];x=a|3;i=(x<<3)+l|0;j=J[i+4>>2];z=J[i>>2];w=d;d=(a<<3)+l|0;C=J[d+4>>2];i=J[d>>2];d=j|z?x:f|y?A:g|n?p:!(C|i)?w:a;p=j;w=n;j=h+C|0;n=i+u|0;j=n>>>0>>0?j+1|0:j;i=n;h=w+i|0;g=g+j|0;g=h>>>0>>0?g+1|0:g;j=h;h=h+y|0;g=g+f|0;g=h>>>0>>0?g+1|0:g;f=h;h=h+z|0;i=g+p|0;u=h;h=h>>>0>>0?i+1|0:i;a=a+4|0;e=e+4|0;if((D|0)!=(e|0)){continue}break}}if(!k){break ee}while(1){f=d;d=(a<<3)+l|0;g=J[d+4>>2];e=J[d>>2];d=!(g|e)?f:a;a=a+1|0;p=g+h|0;f=e+u|0;p=f>>>0>>0?p+1|0:p;u=f;h=p;o=o+1|0;if((k|0)!=(o|0)){continue}break}}g=d+1|0;J[c+12>>2]=g;e=J[c>>2];a=J[c+4>>2]-e>>3;ge:{if(a>>>0>>0){Ya(c,g-a|0);break ge}if(a>>>0<=g>>>0){break ge}J[c+4>>2]=e+(g<<3)}k=0;he:{ie:{je:{ke:{if((d|0)>=0){v=+(u>>>0)+ +(h>>>0)*4294967296;h=J[c>>2];a=0;while(1){f=a<<3;j=f+l|0;e=J[j+4>>2];j=J[j>>2];i=(e|j)!=0;f=h+f|0;m=(+(j>>>0)+ +(e>>>0)*4294967296)/v*1048576+.5;le:{if(m<4294967296&m>=0){e=~~m>>>0;break le}e=0}e=e?e:i?1:e;J[f>>2]=e;k=e+k|0;e=(a|0)==(d|0);a=a+1|0;if(!e){continue}break}if((k|0)==1048576){break ke}}J[s+16>>2]=0;J[s+8>>2]=0;J[s+12>>2]=0;n=0;me:{if(!g){break me}if(g>>>0>=1073741824){break a}f=g<<2;q=ra(f);J[s+8>>2]=q;e=0;h=sa(q,0,f);a=0;if(d>>>0>=7){j=g&-8;while(1){J[h+(a<<2)>>2]=a;i=a|1;J[h+(i<<2)>>2]=i;i=a|2;J[h+(i<<2)>>2]=i;i=a|3;J[h+(i<<2)>>2]=i;i=a|4;J[h+(i<<2)>>2]=i;i=a|5;J[h+(i<<2)>>2]=i;i=a|6;J[h+(i<<2)>>2]=i;i=a|7;J[h+(i<<2)>>2]=i;a=a+8|0;n=n+8|0;if((j|0)!=(n|0)){continue}break}}n=h+f|0;f=g&7;if(!f){break me}while(1){J[h+(a<<2)>>2]=a;a=a+1|0;e=e+1|0;if((f|0)!=(e|0)){continue}break}}J[s+24>>2]=c;a=n-q|0;e=a>>2;ne:{oe:{if((a|0)>=513){a=e;while(1){h=ra(a<<2);if(h){break oe}h=a>>>0>1;a=a>>>1|0;if(h){continue}break}}Wb(q,n,s+24|0,e,0,0);break ne}Wb(q,n,s+24|0,e,h,a);qa(h)}if((k|0)<1048576){a=J[c>>2]+(J[n-4>>2]<<3)|0;J[a>>2]=(J[a>>2]-k|0)- -1048576;a=0;break je}if((d|0)>0){j=J[c>>2];o=k+-1048576|0;while(1){m=1048576/+(k|0);e=d;while(1){pe:{qe:{h=j+(J[(e<<2)+q>>2]<<3)|0;a=J[h>>2];if(a>>>0>=2){i=h;p=a;v=V(m*+(a>>>0));re:{if(R(v)<2147483648){f=~~v;break re}f=-2147483648}h=(a|0)==(f|0)?1:a-f|0;a=(a|0)>(h|0)?h:a-1|0;a=(a|0)<(o|0)?a:o;J[i>>2]=p-a;o=o-a|0;k=k-a|0;if((k|0)!=1048576){break qe}k=1048576;break pe}if((d|0)!=(e|0)){break pe}a=1;break je}a=(e|0)>1;e=e-1|0;if(a){continue}}break}a=0;if((o|0)>0){continue}break}break je}a=0;if(k>>>0<1048577){break je}while(1)continue}if((d|0)<0){break he}break ie}e=J[s+8>>2];if(e){qa(e)}if((d|0)<0|a){break he}}e=J[c>>2];k=0;o=0;a=0;if(d>>>0>=3){f=g&-4;q=0;while(1){h=o<<3;j=h+e|0;J[j+4>>2]=a;i=e+(h|8)|0;a=J[j>>2]+a|0;J[i+4>>2]=a;j=e+(h|16)|0;a=a+J[i>>2]|0;J[j+4>>2]=a;h=e+(h|24)|0;a=a+J[j>>2]|0;J[h+4>>2]=a;a=a+J[h>>2]|0;o=o+4|0;q=q+4|0;if((f|0)!=(q|0)){continue}break}}h=g&3;if(h){while(1){f=e+(o<<3)|0;J[f+4>>2]=a;o=o+1|0;a=J[f>>2]+a|0;k=k+1|0;if((h|0)!=(k|0)){continue}break}}if((a|0)!=1048576){break he}a=0;m=0;se:{if((d|0)<0){break se}h=J[c>>2];if(d){d=g&-2;e=0;while(1){f=a<<3;j=J[f+h>>2];if(j){f=f+l|0;m=(+M[f>>2]+ +M[f+4>>2]*4294967296)*za(+(j>>>0)*9.5367431640625e-7)+m}f=(a|1)<<3;j=J[f+h>>2];if(j){f=f+l|0;m=(+M[f>>2]+ +M[f+4>>2]*4294967296)*za(+(j>>>0)*9.5367431640625e-7)+m}a=a+2|0;e=e+2|0;if((d|0)!=(e|0)){continue}break}}if(!(g&1)){break se}a=a<<3;d=J[a+h>>2];if(!d){break se}a=a+l|0;m=(+M[a>>2]+ +M[a+4>>2]*4294967296)*za(+(d>>>0)*9.5367431640625e-7)+m}m=W(-m);te:{if(m<0x10000000000000000&m>=0){d=R(m)>=1?~~(m>0?T(V(m*2.3283064365386963e-10),4294967295):W((m-+(~~m>>>0>>>0))*2.3283064365386963e-10))>>>0:0;a=~~m>>>0;break te}d=0;a=0}J[c+16>>2]=a;J[c+20>>2]=d;Xa(c,r)}ea=s+32|0;e=J[c+16>>2];a=J[c+20>>2];d=J[r+4>>2]-J[r>>2]|0;J[c+40>>2]=d;J[c+44>>2]=0;g=a<<1|e>>>31;a=(e<<1)+39|0;j=a>>>0<39?g+1|0:g;a=d+((j&7)<<29|a>>>3)|0;i=j>>>3|0;i=a>>>0>>0?i+1|0:i;a=a+8|0;Ma(r,a);a=J[r>>2];J[c+28>>2]=0;J[c+32>>2]=4194304;J[c+24>>2]=a+J[c+40>>2];if((b|0)>0){a=4194304;while(1){d=b-1|0;h=J[c>>2]+(J[t+(d<<2)>>2]<<3)|0;e=J[h>>2];g=e<<10;if(g>>>0<=a>>>0){while(1){f=J[c+28>>2];J[c+28>>2]=f+1;H[f+J[c+24>>2]|0]=a;a=J[c+32>>2]>>>8|0;J[c+32>>2]=a;if(a>>>0>=g>>>0){continue}break}}f=J[h+4>>2];h=(a>>>0)/(e>>>0)|0;a=f+((h<<20)+(a-P(e,h)|0)|0)|0;J[c+32>>2]=a;e=(b|0)>1;b=d;if(e){continue}break}}qc(c,r);a=J[c>>2];if(a){J[c+4>>2]=a;qa(a)}a=J[c+48>>2];if(a){qa(a)}ea=c- -64|0;break ce}k=1;break v;case 15:t=a;l=0;o=0;q=0;u=0;h=0;c=ea+-64|0;ea=c;J[c+56>>2]=0;J[c+48>>2]=0;J[c+52>>2]=0;ue:{a=n+1|0;if(a){if(a>>>0>=536870912){break a}a=a<<3;l=ra(a);J[c+48>>2]=l;k=sa(l,0,(n<<3)+8|0)+a|0}ve:{if((b|0)<=0){break ve}a=0;if(b>>>0>=4){i=b&-4;while(1){d=a<<2;f=(J[d+t>>2]<<3)+l|0;g=J[f+4>>2];j=J[f>>2]+1|0;g=j?g:g+1|0;J[f>>2]=j;J[f+4>>2]=g;g=(J[t+(d|4)>>2]<<3)+l|0;j=J[g+4>>2];f=J[g>>2]+1|0;j=f?j:j+1|0;J[g>>2]=f;J[g+4>>2]=j;g=(J[t+(d|8)>>2]<<3)+l|0;f=J[g+4>>2];j=J[g>>2]+1|0;f=j?f:f+1|0;J[g>>2]=j;J[g+4>>2]=f;d=(J[t+(d|12)>>2]<<3)+l|0;g=J[d+4>>2];f=J[d>>2]+1|0;g=f?g:g+1|0;J[d>>2]=f;J[d+4>>2]=g;a=a+4|0;o=o+4|0;if((i|0)!=(o|0)){continue}break}}g=b&3;if(!g){break ve}while(1){d=(J[t+(a<<2)>>2]<<3)+l|0;j=J[d+4>>2];f=J[d>>2]+1|0;j=f?j:j+1|0;J[d>>2]=f;J[d+4>>2]=j;a=a+1|0;q=q+1|0;if((g|0)!=(q|0)){continue}break}}J[c+8>>2]=0;J[c+12>>2]=0;J[c+16>>2]=0;J[c+20>>2]=0;J[c+24>>2]=0;J[c+28>>2]=0;J[c+32>>2]=0;J[c>>2]=0;J[c+4>>2]=0;J[c+40>>2]=0;J[c+44>>2]=0;r=e;e=0;o=0;d=0;q=0;s=ea-32|0;ea=s;a=k-l>>3;we:{if((a|0)<=0){break we}k=a&3;xe:{if(a>>>0<4){a=0;break xe}D=a&-4;a=0;while(1){p=a|1;f=(p<<3)+l|0;g=J[f+4>>2];n=J[f>>2];A=a|2;j=(A<<3)+l|0;f=J[j+4>>2];y=J[j>>2];x=a|3;i=(x<<3)+l|0;j=J[i+4>>2];z=J[i>>2];w=d;d=(a<<3)+l|0;C=J[d+4>>2];i=J[d>>2];d=j|z?x:f|y?A:g|n?p:!(C|i)?w:a;p=f;w=n;f=h+C|0;n=i+u|0;f=n>>>0>>0?f+1|0:f;i=n;h=w+i|0;g=g+f|0;g=h>>>0>>0?g+1|0:g;f=h;h=h+y|0;i=g+p|0;i=h>>>0>>0?i+1|0:i;f=h;h=h+z|0;g=i+j|0;u=h;h=h>>>0>>0?g+1|0:g;a=a+4|0;e=e+4|0;if((D|0)!=(e|0)){continue}break}}if(!k){break we}while(1){f=d;d=(a<<3)+l|0;g=J[d+4>>2];e=J[d>>2];d=!(g|e)?f:a;a=a+1|0;j=g+h|0;f=e+u|0;j=f>>>0>>0?j+1|0:j;u=f;h=j;o=o+1|0;if((k|0)!=(o|0)){continue}break}}g=d+1|0;J[c+12>>2]=g;e=J[c>>2];a=J[c+4>>2]-e>>3;ye:{if(a>>>0>>0){Ya(c,g-a|0);break ye}if(a>>>0<=g>>>0){break ye}J[c+4>>2]=e+(g<<3)}k=0;ze:{Ae:{Be:{Ce:{if((d|0)>=0){v=+(u>>>0)+ +(h>>>0)*4294967296;h=J[c>>2];a=0;while(1){f=a<<3;j=f+l|0;e=J[j+4>>2];j=J[j>>2];i=(e|j)!=0;f=h+f|0;m=(+(j>>>0)+ +(e>>>0)*4294967296)/v*1048576+.5;De:{if(m<4294967296&m>=0){e=~~m>>>0;break De}e=0}e=e?e:i?1:e;J[f>>2]=e;k=e+k|0;e=(a|0)==(d|0);a=a+1|0;if(!e){continue}break}if((k|0)==1048576){break Ce}}J[s+16>>2]=0;J[s+8>>2]=0;J[s+12>>2]=0;n=0;Ee:{if(!g){break Ee}if(g>>>0>=1073741824){break a}f=g<<2;q=ra(f);J[s+8>>2]=q;e=0;h=sa(q,0,f);a=0;if(d>>>0>=7){j=g&-8;while(1){J[h+(a<<2)>>2]=a;i=a|1;J[h+(i<<2)>>2]=i;i=a|2;J[h+(i<<2)>>2]=i;i=a|3;J[h+(i<<2)>>2]=i;i=a|4;J[h+(i<<2)>>2]=i;i=a|5;J[h+(i<<2)>>2]=i;i=a|6;J[h+(i<<2)>>2]=i;i=a|7;J[h+(i<<2)>>2]=i;a=a+8|0;n=n+8|0;if((j|0)!=(n|0)){continue}break}}n=h+f|0;f=g&7;if(!f){break Ee}while(1){J[h+(a<<2)>>2]=a;a=a+1|0;e=e+1|0;if((f|0)!=(e|0)){continue}break}}J[s+24>>2]=c;a=n-q|0;e=a>>2;Fe:{Ge:{if((a|0)>=513){a=e;while(1){h=ra(a<<2);if(h){break Ge}h=a>>>0>1;a=a>>>1|0;if(h){continue}break}}Vb(q,n,s+24|0,e,0,0);break Fe}Vb(q,n,s+24|0,e,h,a);qa(h)}if((k|0)<1048576){a=J[c>>2]+(J[n-4>>2]<<3)|0;J[a>>2]=(J[a>>2]-k|0)- -1048576;a=0;break Be}if((d|0)>0){j=J[c>>2];o=k+-1048576|0;while(1){m=1048576/+(k|0);e=d;while(1){He:{Ie:{h=j+(J[(e<<2)+q>>2]<<3)|0;a=J[h>>2];if(a>>>0>=2){i=h;p=a;v=V(m*+(a>>>0));Je:{if(R(v)<2147483648){f=~~v;break Je}f=-2147483648}h=(a|0)==(f|0)?1:a-f|0;a=(a|0)>(h|0)?h:a-1|0;a=(a|0)<(o|0)?a:o;J[i>>2]=p-a;o=o-a|0;k=k-a|0;if((k|0)!=1048576){break Ie}k=1048576;break He}if((d|0)!=(e|0)){break He}a=1;break Be}a=(e|0)>1;e=e-1|0;if(a){continue}}break}a=0;if((o|0)>0){continue}break}break Be}a=0;if(k>>>0<1048577){break Be}while(1)continue}if((d|0)<0){break ze}break Ae}e=J[s+8>>2];if(e){qa(e)}if((d|0)<0|a){break ze}}e=J[c>>2];k=0;o=0;a=0;if(d>>>0>=3){f=g&-4;q=0;while(1){h=o<<3;j=h+e|0;J[j+4>>2]=a;i=e+(h|8)|0;a=J[j>>2]+a|0;J[i+4>>2]=a;j=e+(h|16)|0;a=a+J[i>>2]|0;J[j+4>>2]=a;h=e+(h|24)|0;a=a+J[j>>2]|0;J[h+4>>2]=a;a=a+J[h>>2]|0;o=o+4|0;q=q+4|0;if((f|0)!=(q|0)){continue}break}}h=g&3;if(h){while(1){f=e+(o<<3)|0;J[f+4>>2]=a;o=o+1|0;a=J[f>>2]+a|0;k=k+1|0;if((h|0)!=(k|0)){continue}break}}if((a|0)!=1048576){break ze}a=0;m=0;Ke:{if((d|0)<0){break Ke}h=J[c>>2];if(d){d=g&-2;e=0;while(1){f=a<<3;j=J[f+h>>2];if(j){f=f+l|0;m=(+M[f>>2]+ +M[f+4>>2]*4294967296)*za(+(j>>>0)*9.5367431640625e-7)+m}f=(a|1)<<3;j=J[f+h>>2];if(j){f=f+l|0;m=(+M[f>>2]+ +M[f+4>>2]*4294967296)*za(+(j>>>0)*9.5367431640625e-7)+m}a=a+2|0;e=e+2|0;if((d|0)!=(e|0)){continue}break}}if(!(g&1)){break Ke}a=a<<3;d=J[a+h>>2];if(!d){break Ke}a=a+l|0;m=(+M[a>>2]+ +M[a+4>>2]*4294967296)*za(+(d>>>0)*9.5367431640625e-7)+m}m=W(-m);Le:{if(m<0x10000000000000000&m>=0){d=R(m)>=1?~~(m>0?T(V(m*2.3283064365386963e-10),4294967295):W((m-+(~~m>>>0>>>0))*2.3283064365386963e-10))>>>0:0;a=~~m>>>0;break Le}d=0;a=0}J[c+16>>2]=a;J[c+20>>2]=d;Xa(c,r)}ea=s+32|0;e=J[c+16>>2];a=J[c+20>>2];d=J[r+4>>2]-J[r>>2]|0;J[c+40>>2]=d;J[c+44>>2]=0;i=a<<1|e>>>31;a=(e<<1)+39|0;f=i;f=a>>>0<39?f+1|0:f;g=f>>>3|0;a=d+((f&7)<<29|a>>>3)|0;g=a>>>0>>0?g+1|0:g;a=a+8|0;Ma(r,a);a=J[r>>2];J[c+28>>2]=0;J[c+32>>2]=4194304;J[c+24>>2]=a+J[c+40>>2];if((b|0)>0){a=4194304;while(1){d=b-1|0;h=J[c>>2]+(J[t+(d<<2)>>2]<<3)|0;e=J[h>>2];g=e<<10;if(g>>>0<=a>>>0){while(1){f=J[c+28>>2];J[c+28>>2]=f+1;H[f+J[c+24>>2]|0]=a;a=J[c+32>>2]>>>8|0;J[c+32>>2]=a;if(a>>>0>=g>>>0){continue}break}}f=J[h+4>>2];h=(a>>>0)/(e>>>0)|0;a=f+((h<<20)+(a-P(e,h)|0)|0)|0;J[c+32>>2]=a;e=(b|0)>1;b=d;if(e){continue}break}}qc(c,r);a=J[c>>2];if(a){J[c+4>>2]=a;qa(a)}a=J[c+48>>2];if(a){qa(a)}ea=c- -64|0;break ue}k=1;break v;case 16:t=a;l=0;o=0;q=0;u=0;h=0;c=ea+-64|0;ea=c;J[c+56>>2]=0;J[c+48>>2]=0;J[c+52>>2]=0;Me:{a=n+1|0;if(a){if(a>>>0>=536870912){break a}a=a<<3;l=ra(a);J[c+48>>2]=l;k=sa(l,0,(n<<3)+8|0)+a|0}Ne:{if((b|0)<=0){break Ne}a=0;if(b>>>0>=4){j=b&-4;while(1){d=a<<2;g=(J[d+t>>2]<<3)+l|0;i=J[g+4>>2];f=J[g>>2]+1|0;i=f?i:i+1|0;J[g>>2]=f;J[g+4>>2]=i;g=(J[t+(d|4)>>2]<<3)+l|0;f=J[g+4>>2];i=J[g>>2]+1|0;f=i?f:f+1|0;J[g>>2]=i;J[g+4>>2]=f;g=(J[t+(d|8)>>2]<<3)+l|0;p=J[g+4>>2];f=J[g>>2]+1|0;p=f?p:p+1|0;J[g>>2]=f;J[g+4>>2]=p;d=(J[t+(d|12)>>2]<<3)+l|0;i=J[d+4>>2];g=J[d>>2]+1|0;i=g?i:i+1|0;J[d>>2]=g;J[d+4>>2]=i;a=a+4|0;o=o+4|0;if((j|0)!=(o|0)){continue}break}}g=b&3;if(!g){break Ne}while(1){d=(J[t+(a<<2)>>2]<<3)+l|0;f=J[d+4>>2];j=J[d>>2]+1|0;f=j?f:f+1|0;J[d>>2]=j;J[d+4>>2]=f;a=a+1|0;q=q+1|0;if((g|0)!=(q|0)){continue}break}}J[c+8>>2]=0;J[c+12>>2]=0;J[c+16>>2]=0;J[c+20>>2]=0;J[c+24>>2]=0;J[c+28>>2]=0;J[c+32>>2]=0;J[c>>2]=0;J[c+4>>2]=0;J[c+40>>2]=0;J[c+44>>2]=0;r=e;e=0;o=0;d=0;q=0;s=ea-32|0;ea=s;a=k-l>>3;Oe:{if((a|0)<=0){break Oe}k=a&3;Pe:{if(a>>>0<4){a=0;break Pe}C=a&-4;a=0;while(1){D=a|1;f=(D<<3)+l|0;g=J[f+4>>2];p=J[f>>2];A=a|2;j=(A<<3)+l|0;f=J[j+4>>2];n=J[j>>2];x=a|3;i=(x<<3)+l|0;j=J[i+4>>2];y=J[i>>2];w=d;d=(a<<3)+l|0;z=J[d+4>>2];i=J[d>>2];d=j|y?x:f|n?A:g|p?D:!(z|i)?w:a;w=n;x=p;p=h+z|0;n=i+u|0;p=n>>>0>>0?p+1|0:p;h=x+n|0;i=g+p|0;i=h>>>0>>0?i+1|0:i;p=h;h=w+h|0;g=f+i|0;g=h>>>0

>>0?g+1|0:g;f=h;h=h+y|0;g=g+j|0;u=h;h=h>>>0>>0?g+1|0:g;a=a+4|0;e=e+4|0;if((C|0)!=(e|0)){continue}break}}if(!k){break Oe}while(1){f=d;d=(a<<3)+l|0;g=J[d+4>>2];e=J[d>>2];d=!(g|e)?f:a;a=a+1|0;f=g+h|0;j=e+u|0;f=j>>>0>>0?f+1|0:f;u=j;h=f;o=o+1|0;if((k|0)!=(o|0)){continue}break}}g=d+1|0;J[c+12>>2]=g;e=J[c>>2];a=J[c+4>>2]-e>>3;Qe:{if(a>>>0>>0){Ya(c,g-a|0);break Qe}if(a>>>0<=g>>>0){break Qe}J[c+4>>2]=e+(g<<3)}k=0;Re:{Se:{Te:{Ue:{if((d|0)>=0){v=+(u>>>0)+ +(h>>>0)*4294967296;h=J[c>>2];a=0;while(1){f=a<<3;j=f+l|0;e=J[j+4>>2];j=J[j>>2];i=(e|j)!=0;f=h+f|0;m=(+(j>>>0)+ +(e>>>0)*4294967296)/v*1048576+.5;Ve:{if(m<4294967296&m>=0){e=~~m>>>0;break Ve}e=0}e=e?e:i?1:e;J[f>>2]=e;k=e+k|0;e=(a|0)==(d|0);a=a+1|0;if(!e){continue}break}if((k|0)==1048576){break Ue}}J[s+16>>2]=0;J[s+8>>2]=0;J[s+12>>2]=0;n=0;We:{if(!g){break We}if(g>>>0>=1073741824){break a}f=g<<2;q=ra(f);J[s+8>>2]=q;e=0;h=sa(q,0,f);a=0;if(d>>>0>=7){j=g&-8;while(1){J[h+(a<<2)>>2]=a;i=a|1;J[h+(i<<2)>>2]=i;i=a|2;J[h+(i<<2)>>2]=i;i=a|3;J[h+(i<<2)>>2]=i;i=a|4;J[h+(i<<2)>>2]=i;i=a|5;J[h+(i<<2)>>2]=i;i=a|6;J[h+(i<<2)>>2]=i;i=a|7;J[h+(i<<2)>>2]=i;a=a+8|0;n=n+8|0;if((j|0)!=(n|0)){continue}break}}n=h+f|0;f=g&7;if(!f){break We}while(1){J[h+(a<<2)>>2]=a;a=a+1|0;e=e+1|0;if((f|0)!=(e|0)){continue}break}}J[s+24>>2]=c;a=n-q|0;e=a>>2;Xe:{Ye:{if((a|0)>=513){a=e;while(1){h=ra(a<<2);if(h){break Ye}h=a>>>0>1;a=a>>>1|0;if(h){continue}break}}Ub(q,n,s+24|0,e,0,0);break Xe}Ub(q,n,s+24|0,e,h,a);qa(h)}if((k|0)<1048576){a=J[c>>2]+(J[n-4>>2]<<3)|0;J[a>>2]=(J[a>>2]-k|0)- -1048576;a=0;break Te}if((d|0)>0){j=J[c>>2];o=k+-1048576|0;while(1){m=1048576/+(k|0);e=d;while(1){Ze:{_e:{h=j+(J[(e<<2)+q>>2]<<3)|0;a=J[h>>2];if(a>>>0>=2){i=h;p=a;v=V(m*+(a>>>0));$e:{if(R(v)<2147483648){f=~~v;break $e}f=-2147483648}h=(a|0)==(f|0)?1:a-f|0;a=(a|0)>(h|0)?h:a-1|0;a=(a|0)<(o|0)?a:o;J[i>>2]=p-a;o=o-a|0;k=k-a|0;if((k|0)!=1048576){break _e}k=1048576;break Ze}if((d|0)!=(e|0)){break Ze}a=1;break Te}a=(e|0)>1;e=e-1|0;if(a){continue}}break}a=0;if((o|0)>0){continue}break}break Te}a=0;if(k>>>0<1048577){break Te}while(1)continue}if((d|0)<0){break Re}break Se}e=J[s+8>>2];if(e){qa(e)}if((d|0)<0|a){break Re}}e=J[c>>2];k=0;o=0;a=0;if(d>>>0>=3){f=g&-4;q=0;while(1){h=o<<3;j=h+e|0;J[j+4>>2]=a;i=e+(h|8)|0;a=J[j>>2]+a|0;J[i+4>>2]=a;j=e+(h|16)|0;a=a+J[i>>2]|0;J[j+4>>2]=a;h=e+(h|24)|0;a=a+J[j>>2]|0;J[h+4>>2]=a;a=a+J[h>>2]|0;o=o+4|0;q=q+4|0;if((f|0)!=(q|0)){continue}break}}h=g&3;if(h){while(1){f=e+(o<<3)|0;J[f+4>>2]=a;o=o+1|0;a=J[f>>2]+a|0;k=k+1|0;if((h|0)!=(k|0)){continue}break}}if((a|0)!=1048576){break Re}a=0;m=0;af:{if((d|0)<0){break af}h=J[c>>2];if(d){d=g&-2;e=0;while(1){f=a<<3;j=J[f+h>>2];if(j){f=f+l|0;m=(+M[f>>2]+ +M[f+4>>2]*4294967296)*za(+(j>>>0)*9.5367431640625e-7)+m}f=(a|1)<<3;j=J[f+h>>2];if(j){f=f+l|0;m=(+M[f>>2]+ +M[f+4>>2]*4294967296)*za(+(j>>>0)*9.5367431640625e-7)+m}a=a+2|0;e=e+2|0;if((d|0)!=(e|0)){continue}break}}if(!(g&1)){break af}a=a<<3;d=J[a+h>>2];if(!d){break af}a=a+l|0;m=(+M[a>>2]+ +M[a+4>>2]*4294967296)*za(+(d>>>0)*9.5367431640625e-7)+m}m=W(-m);bf:{if(m<0x10000000000000000&m>=0){d=R(m)>=1?~~(m>0?T(V(m*2.3283064365386963e-10),4294967295):W((m-+(~~m>>>0>>>0))*2.3283064365386963e-10))>>>0:0;a=~~m>>>0;break bf}d=0;a=0}J[c+16>>2]=a;J[c+20>>2]=d;Xa(c,r)}ea=s+32|0;e=J[c+16>>2];a=J[c+20>>2];d=J[r+4>>2]-J[r>>2]|0;J[c+40>>2]=d;J[c+44>>2]=0;g=a<<1|e>>>31;a=(e<<1)+39|0;p=a>>>0<39?g+1|0:g;a=d+((p&7)<<29|a>>>3)|0;g=p>>>3|0;g=a>>>0>>0?g+1|0:g;a=a+8|0;Ma(r,a);a=J[r>>2];J[c+28>>2]=0;J[c+32>>2]=4194304;J[c+24>>2]=a+J[c+40>>2];if((b|0)>0){a=4194304;while(1){d=b-1|0;h=J[c>>2]+(J[t+(d<<2)>>2]<<3)|0;e=J[h>>2];g=e<<10;if(g>>>0<=a>>>0){while(1){f=J[c+28>>2];J[c+28>>2]=f+1;H[f+J[c+24>>2]|0]=a;a=J[c+32>>2]>>>8|0;J[c+32>>2]=a;if(a>>>0>=g>>>0){continue}break}}f=J[h+4>>2];h=(a>>>0)/(e>>>0)|0;a=f+((h<<20)+(a-P(e,h)|0)|0)|0;J[c+32>>2]=a;e=(b|0)>1;b=d;if(e){continue}break}}qc(c,r);a=J[c>>2];if(a){J[c+4>>2]=a;qa(a)}a=J[c+48>>2];if(a){qa(a)}ea=c- -64|0;break Me}k=1;break v;case 17:break E;default:break v}}t=a;l=0;o=0;q=0;u=0;h=0;c=ea+-64|0;ea=c;J[c+56>>2]=0;J[c+48>>2]=0;J[c+52>>2]=0;cf:{a=n+1|0;if(a){if(a>>>0>=536870912){break a}a=a<<3;l=ra(a);J[c+48>>2]=l;k=sa(l,0,(n<<3)+8|0)+a|0}df:{if((b|0)<=0){break df}a=0;if(b>>>0>=4){i=b&-4;while(1){d=a<<2;f=(J[d+t>>2]<<3)+l|0;g=J[f+4>>2];j=J[f>>2]+1|0;g=j?g:g+1|0;J[f>>2]=j;J[f+4>>2]=g;g=(J[t+(d|4)>>2]<<3)+l|0;p=J[g+4>>2];f=J[g>>2]+1|0;p=f?p:p+1|0;J[g>>2]=f;J[g+4>>2]=p;g=(J[t+(d|8)>>2]<<3)+l|0;j=J[g+4>>2];f=J[g>>2]+1|0;j=f?j:j+1|0;J[g>>2]=f;J[g+4>>2]=j;d=(J[t+(d|12)>>2]<<3)+l|0;g=J[d+4>>2];f=J[d>>2]+1|0;g=f?g:g+1|0;J[d>>2]=f;J[d+4>>2]=g;a=a+4|0;o=o+4|0;if((i|0)!=(o|0)){continue}break}}g=b&3;if(!g){break df}while(1){d=(J[t+(a<<2)>>2]<<3)+l|0;p=J[d+4>>2];f=J[d>>2]+1|0;p=f?p:p+1|0;J[d>>2]=f;J[d+4>>2]=p;a=a+1|0;q=q+1|0;if((g|0)!=(q|0)){continue}break}}J[c+8>>2]=0;J[c+12>>2]=0;J[c+16>>2]=0;J[c+20>>2]=0;J[c+24>>2]=0;J[c+28>>2]=0;J[c+32>>2]=0;J[c>>2]=0;J[c+4>>2]=0;J[c+40>>2]=0;J[c+44>>2]=0;r=e;e=0;o=0;d=0;q=0;s=ea-32|0;ea=s;a=k-l>>3;ef:{if((a|0)<=0){break ef}k=a&3;ff:{if(a>>>0<4){a=0;break ff}D=a&-4;a=0;while(1){p=a|1;f=(p<<3)+l|0;g=J[f+4>>2];n=J[f>>2];A=a|2;j=(A<<3)+l|0;f=J[j+4>>2];y=J[j>>2];x=a|3;i=(x<<3)+l|0;j=J[i+4>>2];z=J[i>>2];w=d;d=(a<<3)+l|0;C=J[d+4>>2];i=J[d>>2];d=j|z?x:f|y?A:g|n?p:!(C|i)?w:a;p=j;w=n;j=h+C|0;n=i+u|0;j=n>>>0>>0?j+1|0:j;i=n;h=w+i|0;g=g+j|0;g=h>>>0>>0?g+1|0:g;j=h;h=h+y|0;g=g+f|0;g=h>>>0>>0?g+1|0:g;f=h;h=h+z|0;i=g+p|0;u=h;h=h>>>0>>0?i+1|0:i;a=a+4|0;e=e+4|0;if((D|0)!=(e|0)){continue}break}}if(!k){break ef}while(1){f=d;d=(a<<3)+l|0;g=J[d+4>>2];e=J[d>>2];d=!(g|e)?f:a;a=a+1|0;p=g+h|0;f=e+u|0;p=f>>>0>>0?p+1|0:p;u=f;h=p;o=o+1|0;if((k|0)!=(o|0)){continue}break}}g=d+1|0;J[c+12>>2]=g;e=J[c>>2];a=J[c+4>>2]-e>>3;gf:{if(a>>>0>>0){Ya(c,g-a|0);break gf}if(a>>>0<=g>>>0){break gf}J[c+4>>2]=e+(g<<3)}k=0;hf:{jf:{kf:{lf:{if((d|0)>=0){v=+(u>>>0)+ +(h>>>0)*4294967296;h=J[c>>2];a=0;while(1){f=a<<3;j=f+l|0;e=J[j+4>>2];j=J[j>>2];i=(e|j)!=0;f=h+f|0;m=(+(j>>>0)+ +(e>>>0)*4294967296)/v*1048576+.5;mf:{if(m<4294967296&m>=0){e=~~m>>>0;break mf}e=0}e=e?e:i?1:e;J[f>>2]=e;k=e+k|0;e=(a|0)==(d|0);a=a+1|0;if(!e){continue}break}if((k|0)==1048576){break lf}}J[s+16>>2]=0;J[s+8>>2]=0;J[s+12>>2]=0;n=0;nf:{if(!g){break nf}if(g>>>0>=1073741824){break a}f=g<<2;q=ra(f);J[s+8>>2]=q;e=0;h=sa(q,0,f);a=0;if(d>>>0>=7){j=g&-8;while(1){J[h+(a<<2)>>2]=a;i=a|1;J[h+(i<<2)>>2]=i;i=a|2;J[h+(i<<2)>>2]=i;i=a|3;J[h+(i<<2)>>2]=i;i=a|4;J[h+(i<<2)>>2]=i;i=a|5;J[h+(i<<2)>>2]=i;i=a|6;J[h+(i<<2)>>2]=i;i=a|7;J[h+(i<<2)>>2]=i;a=a+8|0;n=n+8|0;if((j|0)!=(n|0)){continue}break}}n=h+f|0;f=g&7;if(!f){break nf}while(1){J[h+(a<<2)>>2]=a;a=a+1|0;e=e+1|0;if((f|0)!=(e|0)){continue}break}}J[s+24>>2]=c;a=n-q|0;e=a>>2;of:{pf:{if((a|0)>=513){a=e;while(1){h=ra(a<<2);if(h){break pf}h=a>>>0>1;a=a>>>1|0;if(h){continue}break}}Tb(q,n,s+24|0,e,0,0);break of}Tb(q,n,s+24|0,e,h,a);qa(h)}if((k|0)<1048576){a=J[c>>2]+(J[n-4>>2]<<3)|0;J[a>>2]=(J[a>>2]-k|0)- -1048576;a=0;break kf}if((d|0)>0){j=J[c>>2];o=k+-1048576|0;while(1){m=1048576/+(k|0);e=d;while(1){qf:{rf:{h=j+(J[(e<<2)+q>>2]<<3)|0;a=J[h>>2];if(a>>>0>=2){i=h;p=a;v=V(m*+(a>>>0));sf:{if(R(v)<2147483648){f=~~v;break sf}f=-2147483648}h=(a|0)==(f|0)?1:a-f|0;a=(a|0)>(h|0)?h:a-1|0;a=(a|0)<(o|0)?a:o;J[i>>2]=p-a;o=o-a|0;k=k-a|0;if((k|0)!=1048576){break rf}k=1048576;break qf}if((d|0)!=(e|0)){break qf}a=1;break kf}a=(e|0)>1;e=e-1|0;if(a){continue}}break}a=0;if((o|0)>0){continue}break}break kf}a=0;if(k>>>0<1048577){break kf}while(1)continue}if((d|0)<0){break hf}break jf}e=J[s+8>>2];if(e){qa(e)}if((d|0)<0|a){break hf}}e=J[c>>2];k=0;o=0;a=0;if(d>>>0>=3){f=g&-4;q=0;while(1){h=o<<3;j=h+e|0;J[j+4>>2]=a;i=e+(h|8)|0;a=J[j>>2]+a|0;J[i+4>>2]=a;j=e+(h|16)|0;a=a+J[i>>2]|0;J[j+4>>2]=a;h=e+(h|24)|0;a=a+J[j>>2]|0;J[h+4>>2]=a;a=a+J[h>>2]|0;o=o+4|0;q=q+4|0;if((f|0)!=(q|0)){continue}break}}h=g&3;if(h){while(1){f=e+(o<<3)|0;J[f+4>>2]=a;o=o+1|0;a=J[f>>2]+a|0;k=k+1|0;if((h|0)!=(k|0)){continue}break}}if((a|0)!=1048576){break hf}a=0;m=0;tf:{if((d|0)<0){break tf}h=J[c>>2];if(d){d=g&-2;e=0;while(1){f=a<<3;j=J[f+h>>2];if(j){f=f+l|0;m=(+M[f>>2]+ +M[f+4>>2]*4294967296)*za(+(j>>>0)*9.5367431640625e-7)+m}f=(a|1)<<3;j=J[f+h>>2];if(j){f=f+l|0;m=(+M[f>>2]+ +M[f+4>>2]*4294967296)*za(+(j>>>0)*9.5367431640625e-7)+m}a=a+2|0;e=e+2|0;if((d|0)!=(e|0)){continue}break}}if(!(g&1)){break tf}a=a<<3;d=J[a+h>>2];if(!d){break tf}a=a+l|0;m=(+M[a>>2]+ +M[a+4>>2]*4294967296)*za(+(d>>>0)*9.5367431640625e-7)+m}m=W(-m);uf:{if(m<0x10000000000000000&m>=0){d=R(m)>=1?~~(m>0?T(V(m*2.3283064365386963e-10),4294967295):W((m-+(~~m>>>0>>>0))*2.3283064365386963e-10))>>>0:0;a=~~m>>>0;break uf}d=0;a=0}J[c+16>>2]=a;J[c+20>>2]=d;Xa(c,r)}ea=s+32|0;e=J[c+16>>2];a=J[c+20>>2];d=J[r+4>>2]-J[r>>2]|0;J[c+40>>2]=d;J[c+44>>2]=0;g=a<<1|e>>>31;a=(e<<1)+39|0;j=a>>>0<39?g+1|0:g;a=d+((j&7)<<29|a>>>3)|0;i=j>>>3|0;i=a>>>0>>0?i+1|0:i;a=a+8|0;Ma(r,a);a=J[r>>2];J[c+28>>2]=0;J[c+32>>2]=4194304;J[c+24>>2]=a+J[c+40>>2];if((b|0)>0){a=4194304;while(1){d=b-1|0;h=J[c>>2]+(J[t+(d<<2)>>2]<<3)|0;e=J[h>>2];g=e<<10;if(g>>>0<=a>>>0){while(1){f=J[c+28>>2];J[c+28>>2]=f+1;H[f+J[c+24>>2]|0]=a;a=J[c+32>>2]>>>8|0;J[c+32>>2]=a;if(a>>>0>=g>>>0){continue}break}}f=J[h+4>>2];h=(a>>>0)/(e>>>0)|0;a=f+((h<<20)+(a-P(e,h)|0)|0)|0;J[c+32>>2]=a;e=(b|0)>1;b=d;if(e){continue}break}}qc(c,r);a=J[c>>2];if(a){J[c+4>>2]=a;qa(a)}a=J[c+48>>2];if(a){qa(a)}ea=c- -64|0;break cf}k=1}ea=F+32|0;l=k}if(!G){break b}J[E+36>>2]=G;qa(G)}ea=E+48|0;return l}ua();B()}function Dh(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=Q(0),x=0,y=0,z=0,A=0,C=0,D=0,E=0,F=0,G=0,T=0,U=0,W=0,X=0,Y=0,Z=0,$=0,aa=0,ba=0,ca=0,da=0,fa=0,ga=0,ha=0,ia=0,ja=0;e=ea-1680|0;ea=e;c=10-eb(J[J[a+28>>2]+48>>2])|0;c=(c|0)>=6?6:c;h=J[a+72>>2];H[e+1679|0]=(c&255)==6?(h|0)>15?5:c:c;c=J[b+20>>2];if(!J[b+16>>2]&(c|0)<=0|(c|0)<0){wa(b,J[b+4>>2],e+1679|0,e+1680|0);h=J[a+72>>2]}y=J[J[J[a+28>>2]+4>>2]+80>>2];J[e+1668>>2]=0;J[e+1660>>2]=0;J[e+1664>>2]=0;J[e+1648>>2]=y;J[e+1652>>2]=h;J[e+1656>>2]=h<<2;a:{b:{c:{d:{g=P(h,y);if(g){if(g>>>0>=1073741824){break d}c=g<<2;f=ra(c);J[e+1660>>2]=f;d=c+f|0;J[e+1668>>2]=d;sa(f,0,c);J[e+1664>>2]=d}J[e+1672>>2]=f;k=J[a+4>>2];if((k|0)!=J[a+8>>2]){while(1){d=J[J[J[J[a+28>>2]+4>>2]+8>>2]+(J[(m<<2)+k>>2]<<2)>>2];c=J[d+28>>2];if(c-1>>>0>=6){if((c|0)!=9){break a}d=J[J[a+60>>2]+(s<<2)>>2];if(!d){break a}s=s+1|0;c=J[d+28>>2]}e:{f:{g:{switch(c-1|0){case 5:if(!y){break e}k=0;while(1){g=(J[e+1672>>2]+(o<<2)|0)+(P(J[e+1652>>2],k)<<2)|0;f=J[J[d>>2]>>2];c=J[d+48>>2]+Al(J[d+40>>2],J[d+44>>2],K[d+84|0]?k:J[J[d+68>>2]+(k<<2)>>2],0)|0;ta(g,f+c|0,K[d+24|0]<<2);k=k+1|0;if((y|0)!=(k|0)){continue}break};break e;case 0:case 2:case 4:c=K[d+24|0];h:{if(!c){g=0;f=0;break h}f=0;c=c<<2;g=ra(c);sa(g,0,c);c=K[d+24|0];if(!c){break h}c=c<<2;f=ra(c);sa(f,0,c)}if(y){h=0;while(1){Zc(d,K[d+84|0]?h:J[J[d+68>>2]+(h<<2)>>2],H[d+24|0],g);j=K[d+24|0];i:{if(!j){break i}l=J[a+48>>2];k=0;if((j|0)!=1){z=j&254;c=0;while(1){n=k<<2;J[n+f>>2]=J[g+n>>2]-J[l+(i+k<<2)>>2];n=k|1;D=n<<2;J[D+f>>2]=J[g+D>>2]-J[l+(i+n<<2)>>2];k=k+2|0;c=c+2|0;if((z|0)!=(c|0)){continue}break}}if(!(j&1)){break i}c=k<<2;J[c+f>>2]=J[c+g>>2]-J[l+(i+k<<2)>>2]}ta((J[e+1672>>2]+(o<<2)|0)+(P(J[e+1652>>2],h)<<2)|0,f,j<<2);h=h+1|0;if((y|0)!=(h|0)){continue}break}}c=K[d+24|0];if(f){qa(f)}i=c+i|0;if(g){break f}break e;default:break g}}c=K[d+24|0];j:{if(!c){g=0;break j}c=c<<2;g=ra(c);sa(g,0,c)}if(y){k=0;while(1){c=K[d+84|0]?k:J[J[d+68>>2]+(k<<2)>>2];j=K[d+24|0];l=0;k:{if(!g){break k}l:{m:{switch(J[d+28>>2]-1|0){case 0:f=K[d+24|0];if(f>>>0>>0?f:j){f=J[d>>2];h=J[f>>2];c=J[d+48>>2]+Al(J[d+40>>2],J[d+44>>2],c,0)|0;h=h+c|0;c=J[f+4>>2];while(1){if(c>>>0<=h>>>0){break k}J[(l<<2)+g>>2]=H[h|0];h=h+1|0;l=l+1|0;f=K[d+24|0];if(l>>>0<(f>>>0>>0?f:j)>>>0){continue}break}}break l;case 1:f=K[d+24|0];if(f>>>0>>0?f:j){f=J[d>>2];h=J[f>>2];c=J[d+48>>2]+Al(J[d+40>>2],J[d+44>>2],c,0)|0;h=h+c|0;c=J[f+4>>2];while(1){if(c>>>0<=h>>>0){break k}J[(l<<2)+g>>2]=K[h|0];h=h+1|0;l=l+1|0;f=K[d+24|0];if(l>>>0<(f>>>0>>0?f:j)>>>0){continue}break}}break l;case 2:f=K[d+24|0];if(f>>>0>>0?f:j){f=J[d>>2];h=J[f>>2];c=J[d+48>>2]+Al(J[d+40>>2],J[d+44>>2],c,0)|0;h=h+c|0;c=J[f+4>>2];while(1){if(c>>>0<=h>>>0){break k}J[(l<<2)+g>>2]=I[h>>1];h=h+2|0;l=l+1|0;f=K[d+24|0];if(l>>>0<(f>>>0>>0?f:j)>>>0){continue}break}}break l;case 3:f=K[d+24|0];if(f>>>0>>0?f:j){f=J[d>>2];h=J[f>>2];c=J[d+48>>2]+Al(J[d+40>>2],J[d+44>>2],c,0)|0;h=h+c|0;c=J[f+4>>2];while(1){if(c>>>0<=h>>>0){break k}J[(l<<2)+g>>2]=L[h>>1];h=h+2|0;l=l+1|0;f=K[d+24|0];if(l>>>0<(f>>>0>>0?f:j)>>>0){continue}break}}break l;case 4:f=K[d+24|0];if(f>>>0>>0?f:j){f=J[d>>2];h=J[f>>2];c=J[d+48>>2]+Al(J[d+40>>2],J[d+44>>2],c,0)|0;h=h+c|0;c=J[f+4>>2];while(1){if(c>>>0<=h>>>0){break k}J[(l<<2)+g>>2]=J[h>>2];h=h+4|0;l=l+1|0;f=K[d+24|0];if(l>>>0<(f>>>0>>0?f:j)>>>0){continue}break}}break l;case 5:f=K[d+24|0];if(f>>>0>>0?f:j){f=J[d>>2];h=J[f>>2];c=J[d+48>>2]+Al(J[d+40>>2],J[d+44>>2],c,0)|0;h=h+c|0;c=J[f+4>>2];while(1){if(c>>>0<=h>>>0){break k}J[(l<<2)+g>>2]=J[h>>2];h=h+4|0;l=l+1|0;f=K[d+24|0];if(l>>>0<(f>>>0>>0?f:j)>>>0){continue}break}}break l;case 6:f=K[d+24|0];if(f>>>0>>0?f:j){f=J[d>>2];h=J[f>>2];c=J[d+48>>2]+Al(J[d+40>>2],J[d+44>>2],c,0)|0;h=h+c|0;c=J[f+4>>2];while(1){if(c>>>0<=h>>>0){break k}f=J[h>>2];if(J[h+4>>2]){break k}J[(l<<2)+g>>2]=f;h=h+8|0;l=l+1|0;f=K[d+24|0];if(l>>>0<(f>>>0>>0?f:j)>>>0){continue}break}}break l;case 7:f=K[d+24|0];if(f>>>0>>0?f:j){f=J[d>>2];h=J[f>>2];c=J[d+48>>2]+Al(J[d+40>>2],J[d+44>>2],c,0)|0;h=h+c|0;c=J[f+4>>2];while(1){if(c>>>0<=h>>>0){break k}f=J[h>>2];if(J[h+4>>2]){break k}J[(l<<2)+g>>2]=f;h=h+8|0;l=l+1|0;f=K[d+24|0];if(l>>>0<(f>>>0>>0?f:j)>>>0){continue}break}}break l;case 8:n:{o:{f=K[d+24|0];if(!(f>>>0>>0?f:j)){break o}h=J[d>>2];f=J[h>>2];c=J[d+48>>2]+Al(J[d+40>>2],J[d+44>>2],c,0)|0;l=f+c|0;z=J[h+4>>2];h=z-f|0;if(!K[d+32|0]){if((c|0)>=(h|0)){break n}h=0;while(1){w=N[l>>2];if(w=Q(4294967296))){break n}f=(h<<2)+g|0;if(w=Q(0)){c=~~w>>>0}else{c=0}J[f>>2]=c;h=h+1|0;f=K[d+24|0];if(h>>>0>=(f>>>0>>0?f:j)>>>0){break o}l=l+4|0;if(z>>>0>l>>>0){continue}break}break n}if((c|0)>=(h|0)){break n}h=0;while(1){w=N[l>>2];if(w=Q(4294967296))){break n}if(w>Q(1)){break n}f=(h<<2)+g|0;u=V(+w*4294967295+.5);p:{if(u<4294967296&u>=0){c=~~u>>>0;break p}c=0}J[f>>2]=c;h=h+1|0;f=K[d+24|0];if(h>>>0>=(f>>>0>>0?f:j)>>>0){break o}l=l+4|0;if(z>>>0>l>>>0){continue}break}break n}if(f>>>0>=j>>>0){break n}sa((f<<2)+g|0,0,j-f<<2)}break k;case 9:q:{r:{f=K[d+24|0];if(!(f>>>0>>0?f:j)){break r}h=J[d>>2];f=J[h>>2];c=J[d+48>>2]+Al(J[d+40>>2],J[d+44>>2],c,0)|0;l=f+c|0;z=J[h+4>>2];h=z-f|0;if(!K[d+32|0]){if((c|0)>=(h|0)){break q}h=0;while(1){u=O[l>>3];if(u<0|u!=u|(R(u)==_|u>=4294967295)){break q}f=(h<<2)+g|0;if(u<4294967296&u>=0){c=~~u>>>0}else{c=0}J[f>>2]=c;h=h+1|0;f=K[d+24|0];if(h>>>0>=(f>>>0>>0?f:j)>>>0){break r}l=l+8|0;if(z>>>0>l>>>0){continue}break}break q}if((c|0)>=(h|0)){break q}h=0;while(1){u=O[l>>3];if(u<0|u!=u|(R(u)==_|u>=4294967295)){break q}if(u>1){break q}f=(h<<2)+g|0;u=V(u*4294967295+.5);s:{if(u<4294967296&u>=0){c=~~u>>>0;break s}c=0}J[f>>2]=c;h=h+1|0;f=K[d+24|0];if(h>>>0>=(f>>>0>>0?f:j)>>>0){break r}l=l+8|0;if(z>>>0>l>>>0){continue}break}break q}if(f>>>0>=j>>>0){break q}sa((f<<2)+g|0,0,j-f<<2)}break k;case 10:break m;default:break k}}f=K[d+24|0];if(f>>>0>>0?f:j){f=J[d>>2];h=J[f>>2];c=J[d+48>>2]+Al(J[d+40>>2],J[d+44>>2],c,0)|0;h=h+c|0;c=J[f+4>>2];while(1){if(c>>>0<=h>>>0){break k}J[(l<<2)+g>>2]=K[h|0];h=h+1|0;l=l+1|0;f=K[d+24|0];if(l>>>0<(f>>>0>>0?f:j)>>>0){continue}break}}if(f>>>0>=j>>>0){break k}sa((f<<2)+g|0,0,j-f<<2);break k}if(f>>>0>=j>>>0){break k}sa((f<<2)+g|0,0,j-f<<2)}ta((J[e+1672>>2]+(o<<2)|0)+(P(J[e+1652>>2],k)<<2)|0,g,K[d+24|0]<<2);k=k+1|0;if((y|0)!=(k|0)){continue}break}}if(!g){break e}}qa(g)}o=K[d+24|0]+o|0;m=m+1|0;k=J[a+4>>2];if(m>>>0>2]-k>>2>>>0){continue}break}f=J[e+1672>>2];h=J[a+72>>2];g=P(y,h)}k=0;if((g|0)<=0){break b}c=g&1;if((g|0)==1){g=0;break c}d=g&-2;g=0;a=0;while(1){j=g<<2;l=J[j+f>>2];if(l){l=S(l);k=(l^31)<(k|0)?k:32-l|0}j=J[(j|4)+f>>2];if(j){j=S(j);k=(j^31)<(k|0)?k:32-j|0}g=g+2|0;a=a+2|0;if((d|0)!=(a|0)){continue}break}break c}ua();B()}if(!c){break b}a=J[(g<<2)+f>>2];if(!a){break b}a=S(a);k=(a^31)<(k|0)?k:32-a|0}t:{u:{switch(K[e+1679|0]){case 6:m=Xc(e+456|0,h);a=J[e+1652>>2];J[e+448>>2]=a;J[e+432>>2]=a;J[e+32>>2]=a;J[e+16>>2]=a;J[e+440>>2]=0;J[e+424>>2]=J[e+1648>>2];a=e+1648|0;J[e+444>>2]=a;c=J[e+444>>2];J[e+24>>2]=J[e+440>>2];J[e+28>>2]=c;J[e+428>>2]=a;J[e+420>>2]=k;a=J[e+428>>2];J[e+8>>2]=J[e+424>>2];J[e+12>>2]=a;s=ea-32|0;ea=s;J[m>>2]=J[e+420>>2];a=J[e+8>>2]-J[e+24>>2]|0;J[m+4>>2]=a;c=J[b+20>>2];if(!J[b+16>>2]&(c|0)<=0|(c|0)<0){a=m+4|0;wa(b,J[b+4>>2],m,a);c=J[b+20>>2];if(!J[b+16>>2]&(c|0)<=0|(c|0)<0){wa(b,J[b+4>>2],a,m+8|0)}a=J[a>>2]}if(a){X=m+12|0;le(X);Y=m+1068|0;a=Y;J[a+12>>2]=0;J[a+16>>2]=0;J[a+4>>2]=J[a>>2];Z=m+1088|0;a=Z;J[a+12>>2]=0;J[a+16>>2]=0;J[a+4>>2]=J[a>>2];$=m+1108|0;a=$;J[a+12>>2]=0;J[a+16>>2]=0;J[a+4>>2]=J[a>>2];J[s+24>>2]=J[e+32>>2];a=J[e+28>>2];J[s+16>>2]=J[e+24>>2];J[s+20>>2]=a;J[s+8>>2]=J[e+16>>2];a=J[e+12>>2];J[s>>2]=J[e+8>>2];J[s+4>>2]=a;c=0;g=0;i=ea+-64|0;ea=i;d=J[m+8>>2];J[i+48>>2]=0;J[i+40>>2]=0;J[i+44>>2]=0;v:{w:{if(d){if(d>>>0>=1073741824){break w}a=d<<2;c=ra(a);J[i+40>>2]=c;g=a+c|0;J[i+48>>2]=g;sa(c,0,a);J[i+44>>2]=g}a=J[m+1164>>2];k=J[a>>2];if(k){J[a+4>>2]=k;qa(k);d=J[m+8>>2];g=J[i+44>>2];c=J[i+40>>2]}J[a+4>>2]=g;J[a>>2]=c;J[a+8>>2]=J[i+48>>2];c=0;J[i+48>>2]=0;J[i+40>>2]=0;J[i+44>>2]=0;a=0;x:{if(d){if(d>>>0>=1073741824){break x}d=d<<2;a=ra(d);J[i+40>>2]=a;c=a+d|0;J[i+48>>2]=c;sa(a,0,d);J[i+44>>2]=c}d=J[m+1176>>2];k=J[d>>2];if(k){J[d+4>>2]=k;qa(k);c=J[i+44>>2];a=J[i+40>>2]}J[d+4>>2]=c;J[d>>2]=a;J[d+8>>2]=J[i+48>>2];f=J[s+20>>2];l=J[s+24>>2];j=J[s+4>>2];y=J[s+8>>2];c=J[s>>2];d=J[s+16>>2];J[i+56>>2]=0;J[i+60>>2]=0;J[i+48>>2]=0;J[i+52>>2]=0;J[i+40>>2]=0;J[i+44>>2]=0;gb(i+40|0);a=J[i+56>>2]+J[i+60>>2]|0;k=(a>>>0)/113|0;a=J[J[i+44>>2]+(k<<2)>>2]+P(a-P(k,113)|0,36)|0;J[a+32>>2]=0;J[a+28>>2]=c-d;J[a+24>>2]=0;J[a+16>>2]=j;J[a+20>>2]=y;J[a+12>>2]=c;J[a+4>>2]=f;J[a+8>>2]=l;J[a>>2]=d;d=J[i+60>>2]+1|0;J[i+60>>2]=d;if(d){D=f;z=l;ca=l&-4;aa=l&3;da=m+1068|0;ba=m+12|0;fa=m+1108|0;ga=l>>>0<4;while(1){a=J[i+44>>2];g=J[i+56>>2];o=d-1|0;c=g+o|0;k=(c>>>0)/113|0;c=J[a+(k<<2)>>2]+P(c-P(k,113)|0,36)|0;U=J[c+32>>2];h=J[c+12>>2];k=J[c>>2];J[i+60>>2]=o;c=J[i+48>>2];if((((a|0)!=(c|0)?P(c-a>>2,113)-1|0:0)-(d+g|0)|0)+1>>>0>=226){qa(J[c-4>>2]);J[i+48>>2]=J[i+48>>2]-4}J[s+16>>2]=k;J[s>>2]=h;a=J[m+1164>>2];c=J[m+1176>>2];J[i+32>>2]=J[s+24>>2];d=J[s+20>>2];J[i+24>>2]=J[s+16>>2];J[i+28>>2]=d;J[i+16>>2]=J[s+8>>2];d=J[s+4>>2];J[i+8>>2]=J[s>>2];J[i+12>>2]=d;W=P(U,12);v=a+W|0;g=v;F=c+W|0;c=F;o=0;d=J[m+8>>2];y:{z:{A:{B:{t=J[i+8>>2];a=J[i+24>>2];r=t-a|0;if(r>>>0>=64){if(!d){g=0;break z}E=J[m+1140>>2];C=J[c>>2];T=J[m+1128>>2];if((a|0)!=(t|0)){break B}d=0;while(1){a=d<<2;c=a+T|0;J[c>>2]=0;n=a+E|0;g=J[m>>2];a=J[a+C>>2];J[n>>2]=g-a;if((a|0)!=(g|0)){g=c;a=J[c>>2];c=r-a|0;J[g>>2]=a>>>0>>0?c:a}c=J[m+8>>2];d=d+1|0;if(c>>>0>d>>>0){continue}break}break A}g=0;if(d>>>0<2){break y}o=d-1|0;n=o&3;c=J[c>>2];a=0;C:{if(d-2>>>0<3){d=1;break C}t=o&-4;d=1;o=0;while(1){r=d+3|0;p=d+2|0;x=d+1|0;g=M[c+(g<<2)>>2]>M[c+(d<<2)>>2]?d:g;g=M[c+(g<<2)>>2]>M[c+(x<<2)>>2]?x:g;g=M[c+(g<<2)>>2]>M[c+(p<<2)>>2]?p:g;g=M[c+(g<<2)>>2]>M[c+(r<<2)>>2]?r:g;d=d+4|0;o=o+4|0;if((t|0)!=(o|0)){continue}break}}if(!n){break y}while(1){g=M[c+(g<<2)>>2]>M[c+(d<<2)>>2]?d:g;d=d+1|0;a=a+1|0;if((n|0)!=(a|0)){continue}break}break y}A=J[i+28>>2];G=J[g>>2];ha=r&1;g=a+1|0;ia=(t|0)!=(g|0);q=J[i+32>>2];ja=P(q,a)<<2;while(1){c=o<<2;n=c+T|0;J[n>>2]=0;d=J[m>>2];p=J[c+C>>2];x=d-p|0;J[c+E>>2]=x;if((d|0)!=(p|0)){p=J[c+G>>2]+(1<>2]|0;c=J[n>>2];if(ha){c=(p>>>0>M[x+ja>>2])+c|0;J[n>>2]=c;d=g}else{d=a}if(ia){while(1){c=(p>>>0>M[x+(P(d,q)<<2)>>2])+c|0;J[n>>2]=c;c=c+(p>>>0>M[x+(P(q,d+1|0)<<2)>>2])|0;J[n>>2]=c;d=d+2|0;if((t|0)!=(d|0)){continue}break}}d=r-c|0;J[n>>2]=c>>>0>>0?d:c}c=J[m+8>>2];o=o+1|0;if(c>>>0>o>>>0){continue}break}}if(!c){g=0;break z}p=c&1;n=J[m+1128>>2];t=J[m+1140>>2];D:{if((c|0)==1){d=0;c=0;g=0;break D}x=c&-2;d=0;c=0;g=0;o=0;while(1){a=d<<2;E:{if(!J[a+t>>2]){a=c;break E}r=J[a+n>>2];a=c>>>0>r>>>0?c:r;g=c>>>0>>0?d:g}E=d|1;c=E<<2;F:{if(!J[c+t>>2]){c=a;break F}r=J[c+n>>2];c=a>>>0>r>>>0?a:r;g=a>>>0>>0?E:g}d=d+2|0;o=o+2|0;if((x|0)!=(o|0)){continue}break}}if(!p){break z}a=d<<2;if(!J[a+t>>2]){break z}g=M[a+n>>2]>c>>>0?d:g}Kb(m+1088|0,4,g)}c=J[m>>2];d=g;n=d<<2;g=J[n+J[F>>2]>>2];G:{H:{if((c|0)==(g|0)){break H}I:{J:{x=h-k|0;if(x>>>0<=2){g=J[m+1152>>2];J[g>>2]=d;c=1;a=J[m+8>>2];if(a>>>0>1){break J}break I}a=J[m+1164>>2];T=U+1|0;F=P(T,12);o=a+F|0;if((o|0)!=(v|0)){cb(o,J[v>>2],J[v+4>>2]);a=J[m+1164>>2]}a=n+J[a+F>>2]|0;v=J[a>>2]+(1<>2]=v;a=k;K:{if((h|0)==(a|0)){break K}E=J[D+24>>2];a=h;c=k;if(!z){if(v>>>0>M[n+E>>2]){break K}while(1){a=a-1|0;if((c|0)==(a|0)){a=c;break K}if(v>>>0<=M[(n+J[j+24>>2]|0)+(P(a,y)<<2)>>2]){continue}c=c+1|0;if((c|0)!=(a|0)){continue}break}break K}while(1){t=E+(P(c,z)<<2)|0;if(v>>>0>M[t+n>>2]){c=c+1|0;if((c|0)!=(a|0)){continue}break K}while(1){a=a-1|0;if((c|0)==(a|0)){a=c;break K}r=J[j+24>>2]+(P(a,y)<<2)|0;if(v>>>0<=M[r+n>>2]){continue}break}o=0;g=0;C=0;if(!ga){while(1){p=g<<2;q=p+t|0;A=J[q>>2];G=q;q=p+r|0;J[G>>2]=J[q>>2];J[q>>2]=A;q=p|4;A=q+t|0;G=J[A>>2];q=r+q|0;J[A>>2]=J[q>>2];J[q>>2]=G;q=p|8;A=q+t|0;G=J[A>>2];q=r+q|0;J[A>>2]=J[q>>2];J[q>>2]=G;p=p|12;q=p+t|0;A=J[q>>2];p=p+r|0;J[q>>2]=J[p>>2];J[p>>2]=A;g=g+4|0;C=C+4|0;if((ca|0)!=(C|0)){continue}break}}if(aa){while(1){p=g<<2;C=p+t|0;q=J[C>>2];p=p+r|0;J[C>>2]=J[p>>2];J[p>>2]=q;g=g+1|0;o=o+1|0;if((aa|0)!=(o|0)){continue}break}}c=c+1|0;if((c|0)!=(a|0)){continue}break}}o=a-k|0;v=h-a|0;if((o|0)!=(v|0)){uc(fa,o>>>0>>0)}c=S(x);t=c^31;g=x>>>1|0;L:{if(o>>>0>>0){if(!t){break L}r=g-o|0;c=1<<30-c;g=0;while(1){Ga((g<<5)+ba|0,(c&r)!=0);c=c>>>1|0;g=g+1|0;if((t|0)!=(g|0)){continue}break}break L}if(!t){break L}r=g-v|0;c=1<<30-c;g=0;while(1){Ga((g<<5)+ba|0,(c&r)!=0);c=c>>>1|0;g=g+1|0;if((t|0)!=(g|0)){continue}break}}q=n;c=J[m+1176>>2];g=c+W|0;n=J[g>>2];t=q+n|0;J[t>>2]=J[t>>2]+1;cb(c+F|0,n,J[g+4>>2]);if((a|0)!=(k|0)){g=J[i+60>>2]+J[i+56>>2]|0;n=J[i+48>>2];c=J[i+44>>2];if((g|0)==(((c|0)!=(n|0)?P(n-c>>2,113)-1|0:0)|0)){gb(i+40|0);g=J[i+56>>2]+J[i+60>>2]|0;n=J[i+44>>2]}else{n=c}c=(g>>>0)/113|0;c=J[n+(c<<2)>>2]+P(g-P(c,113)|0,36)|0;J[c+32>>2]=U;J[c+28>>2]=o;J[c+24>>2]=d;J[c+16>>2]=D;J[c+12>>2]=a;J[c+4>>2]=f;J[c+8>>2]=l;J[c>>2]=k;J[c+20>>2]=z;J[i+60>>2]=J[i+60>>2]+1}if((a|0)==(h|0)){break H}g=J[i+60>>2]+J[i+56>>2]|0;k=J[i+48>>2];c=J[i+44>>2];if((g|0)==(((c|0)!=(k|0)?P(k-c>>2,113)-1|0:0)|0)){gb(i+40|0);g=J[i+56>>2]+J[i+60>>2]|0;k=J[i+44>>2]}else{k=c}c=(g>>>0)/113|0;c=J[k+(c<<2)>>2]+P(g-P(c,113)|0,36)|0;J[c+32>>2]=T;J[c+28>>2]=v;J[c+24>>2]=d;J[c+16>>2]=j;J[c+20>>2]=y;J[c+12>>2]=h;J[c+4>>2]=D;J[c>>2]=a;J[c+8>>2]=z;d=J[i+60>>2]+1|0;J[i+60>>2]=d;break G}while(1){d=(a-1|0)!=(d|0)?d+1|0:0;J[g+(c<<2)>>2]=d;a=J[m+8>>2];c=c+1|0;if(a>>>0>c>>>0){continue}break}}g=0;c=a;if((h|0)==(k|0)){break H}while(1){M:{if(!c){c=0;break M}h=J[D+24>>2]+(P(J[D+4>>2],g+k|0)<<2)|0;d=0;while(1){c=J[m>>2];o=J[J[m+1152>>2]+(d<<2)>>2]<<2;n=J[o+J[F>>2]>>2];if((c|0)!=(n|0)){Kb(da,c-n|0,J[h+o>>2]);a=J[m+8>>2]}c=a;d=d+1|0;if(c>>>0>d>>>0){continue}break}}g=g+1|0;if((x|0)!=(g|0)){continue}break}}d=J[i+60>>2]}if(d){continue}break}}J[i+60>>2]=0;h=J[i+48>>2];d=J[i+44>>2];a=h-d|0;if(a>>>0>=9){while(1){qa(J[d>>2]);d=J[i+44>>2]+4|0;J[i+44>>2]=d;h=J[i+48>>2];a=h-d|0;if(a>>>0>8){continue}break}}c=56;N:{switch((a>>>2|0)-1|0){case 1:c=113;case 0:J[i+56>>2]=c;break;default:break N}}O:{if((d|0)==(h|0)){break O}while(1){qa(J[d>>2]);d=d+4|0;if((h|0)!=(d|0)){continue}break}a=J[i+48>>2];c=J[i+44>>2];if((a|0)==(c|0)){break O}J[i+48>>2]=a+((c-a|0)+3&-4)}a=J[i+40>>2];if(a){qa(a)}ea=i- -64|0;break v}ua();B()}ua();B()}ke(X,b);fb(Y,b);fb(Z,b);fb($,b)}ea=s+32|0;Yc(m);break t;case 5:c=Xc(e+456|0,h);a=J[e+1652>>2];J[e+416>>2]=a;J[e+400>>2]=a;J[e- -64>>2]=a;J[e+48>>2]=a;J[e+408>>2]=0;J[e+392>>2]=J[e+1648>>2];a=e+1648|0;J[e+412>>2]=a;d=J[e+412>>2];J[e+56>>2]=J[e+408>>2];J[e+60>>2]=d;J[e+396>>2]=a;J[e+420>>2]=k;a=J[e+396>>2];J[e+40>>2]=J[e+392>>2];J[e+44>>2]=a;a=se(c,e+56|0,e+40|0,e+420|0,b);Yc(c);if(a){break t}break a;case 4:c=Xc(e+456|0,h);a=J[e+1652>>2];J[e+384>>2]=a;J[e+368>>2]=a;J[e+96>>2]=a;J[e+80>>2]=a;J[e+376>>2]=0;J[e+360>>2]=J[e+1648>>2];a=e+1648|0;J[e+380>>2]=a;d=J[e+380>>2];J[e+88>>2]=J[e+376>>2];J[e+92>>2]=d;J[e+364>>2]=a;J[e+420>>2]=k;a=J[e+364>>2];J[e+72>>2]=J[e+360>>2];J[e+76>>2]=a;a=se(c,e+88|0,e+72|0,e+420|0,b);Yc(c);if(a){break t}break a;case 3:c=re(e+456|0,h);a=J[e+1652>>2];J[e+352>>2]=a;J[e+336>>2]=a;J[e+128>>2]=a;J[e+112>>2]=a;J[e+344>>2]=0;J[e+328>>2]=J[e+1648>>2];a=e+1648|0;J[e+348>>2]=a;d=J[e+348>>2];J[e+120>>2]=J[e+344>>2];J[e+124>>2]=d;J[e+332>>2]=a;J[e+420>>2]=k;a=J[e+332>>2];J[e+104>>2]=J[e+328>>2];J[e+108>>2]=a;a=qe(c,e+120|0,e+104|0,e+420|0,b);pe(c);if(a){break t}break a;case 2:c=re(e+456|0,h);a=J[e+1652>>2];J[e+320>>2]=a;J[e+304>>2]=a;J[e+160>>2]=a;J[e+144>>2]=a;J[e+312>>2]=0;J[e+296>>2]=J[e+1648>>2];a=e+1648|0;J[e+316>>2]=a;d=J[e+316>>2];J[e+152>>2]=J[e+312>>2];J[e+156>>2]=d;J[e+300>>2]=a;J[e+420>>2]=k;a=J[e+300>>2];J[e+136>>2]=J[e+296>>2];J[e+140>>2]=a;a=qe(c,e+152|0,e+136|0,e+420|0,b);pe(c);if(a){break t}break a;case 1:c=oe(e+456|0,h);a=J[e+1652>>2];J[e+288>>2]=a;J[e+272>>2]=a;J[e+192>>2]=a;J[e+176>>2]=a;J[e+280>>2]=0;J[e+264>>2]=J[e+1648>>2];a=e+1648|0;J[e+284>>2]=a;d=J[e+284>>2];J[e+184>>2]=J[e+280>>2];J[e+188>>2]=d;J[e+268>>2]=a;J[e+420>>2]=k;a=J[e+268>>2];J[e+168>>2]=J[e+264>>2];J[e+172>>2]=a;a=ne(c,e+184|0,e+168|0,e+420|0,b);me(c);if(a){break t}break a;case 0:break u;default:break a}}c=oe(e+456|0,h);a=J[e+1652>>2];J[e+256>>2]=a;J[e+240>>2]=a;J[e+224>>2]=a;J[e+208>>2]=a;J[e+248>>2]=0;J[e+232>>2]=J[e+1648>>2];a=e+1648|0;J[e+252>>2]=a;d=J[e+252>>2];J[e+216>>2]=J[e+248>>2];J[e+220>>2]=d;J[e+236>>2]=a;J[e+420>>2]=k;a=J[e+236>>2];J[e+200>>2]=J[e+232>>2];J[e+204>>2]=a;a=ne(c,e+216|0,e+200|0,e+420|0,b);me(c);if(!a){break a}}v=1}a=J[e+1660>>2];if(a){J[e+1664>>2]=a;qa(a)}ea=e+1680|0;return v|0}function Se(a,b,c,d){var e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,w=0,x=0,y=0,z=0,A=0,B=0,D=0,E=0,F=0,G=0,I=0;w=ea-160|0;ea=w;J[w+60>>2]=b;J[w+20>>2]=b;J[w+24>>2]=-1;h=w+16|0;J[h+112>>2]=0;J[h+116>>2]=0;n=J[h+44>>2]-J[h+4>>2]|0;J[h+120>>2]=n;J[h+124>>2]=n>>31;J[h+104>>2]=J[h+8>>2];q=ea-48|0;ea=q;if(d>>>0<=2){a:{d=d<<2;D=J[d+17292>>2];E=J[d+17280>>2];while(1){d=J[h+4>>2];b:{if((d|0)!=J[h+104>>2]){J[h+4>>2]=d+1;d=K[d|0];break b}d=Pa(h)}if((d|0)==32|d-9>>>0<5){continue}break}n=1;c:{d:{switch(d-43|0){case 0:case 2:break d;default:break c}}n=(d|0)==45?-1:1;d=J[h+4>>2];if((d|0)!=J[h+104>>2]){J[h+4>>2]=d+1;d=K[d|0];break c}d=Pa(h)}e:{f:{while(1){if(H[g+1154|0]==(d|32)){g:{if(g>>>0>6){break g}d=J[h+4>>2];if((d|0)!=J[h+104>>2]){J[h+4>>2]=d+1;d=K[d|0];break g}d=Pa(h)}g=g+1|0;if((g|0)!=8){continue}break f}break}if((g|0)!=3){if((g|0)==8){break f}if(g>>>0<4){break e}if((g|0)==8){break f}}d=J[h+116>>2];if((d|0)>0|(d|0)>=0){J[h+4>>2]=J[h+4>>2]-1}if(g>>>0<4){break f}d=(d|0)<0;while(1){if(!d){J[h+4>>2]=J[h+4>>2]-1}g=g-1|0;if(g>>>0>3){continue}break}}l=ea-16|0;ea=l;k=(C(Q(Q(n|0)*Q(_))),v(2));d=k&2147483647;h:{if(d-8388608>>>0<=2130706431){n=d<<25;g=(d>>>7|0)+1065353216|0;break h}n=k<<25;g=k>>>7|2147418112;if(d>>>0>=2139095040){break h}n=0;g=0;if(!d){break h}g=d;d=S(d);Sa(l,g,0,0,0,d+81|0);i=J[l>>2];j=J[l+4>>2];n=J[l+8>>2];g=J[l+12>>2]^65536|16265-d<<16}J[q>>2]=i;J[q+4>>2]=j;J[q+8>>2]=n;J[q+12>>2]=k&-2147483648|g;ea=l+16|0;i=J[q+8>>2];j=J[q+12>>2];l=J[q>>2];k=J[q+4>>2];break a}i:{j:{k:{if(g){break k}g=0;while(1){if(H[g+1434|0]!=(d|32)){break k}l:{if(g>>>0>1){break l}d=J[h+4>>2];if((d|0)!=J[h+104>>2]){J[h+4>>2]=d+1;d=K[d|0];break l}d=Pa(h)}g=g+1|0;if((g|0)!=3){continue}break}break j}m:{switch(g|0){case 0:n:{if((d|0)!=48){break n}g=J[h+4>>2];o:{if((g|0)!=J[h+104>>2]){J[h+4>>2]=g+1;g=K[g|0];break o}g=Pa(h)}if((g&-33)==88){f=ea-432|0;ea=f;d=J[h+4>>2];p:{if((d|0)!=J[h+104>>2]){J[h+4>>2]=d+1;g=K[d|0];break p}g=Pa(h)}q:{r:{while(1){if((g|0)!=48){s:{if((g|0)!=46){break q}d=J[h+4>>2];if((d|0)==J[h+104>>2]){break s}J[h+4>>2]=d+1;g=K[d|0];break r}}else{d=J[h+4>>2];if((d|0)!=J[h+104>>2]){p=1;J[h+4>>2]=d+1;g=K[d|0]}else{p=1;g=Pa(h)}continue}break}g=Pa(h)}x=1;if((g|0)!=48){break q}while(1){d=r;r=d-1|0;s=s-!d|0;d=J[h+4>>2];t:{if((d|0)!=J[h+104>>2]){J[h+4>>2]=d+1;g=K[d|0];break t}g=Pa(h)}if((g|0)==48){continue}break}p=1}k=1073676288;while(1){u:{d=g|32;v:{w:{F=g-48|0;if(F>>>0<10){break w}if((g|0)!=46&d-97>>>0>=6){break u}if((g|0)!=46){break w}if(x){break u}x=1;r=i;s=j;break v}d=(g|0)>57?d-87|0:F;x:{if((j|0)<=0&i>>>0<=7|(j|0)<0){u=d+(u<<4)|0;break x}if(!j&i>>>0<=28){bb(f+48|0,d);Ia(f+32|0,A,B,l,k,0,0,0,1073414144);A=J[f+32>>2];B=J[f+36>>2];l=J[f+40>>2];k=J[f+44>>2];Ia(f+16|0,J[f+48>>2],J[f+52>>2],J[f+56>>2],J[f+60>>2],A,B,l,k);ab(f,J[f+16>>2],J[f+20>>2],J[f+24>>2],J[f+28>>2],m,o,y,z);y=J[f+8>>2];z=J[f+12>>2];m=J[f>>2];o=J[f+4>>2];break x}if(G|!d){break x}Ia(f+80|0,A,B,l,k,0,0,0,1073610752);ab(f- -64|0,J[f+80>>2],J[f+84>>2],J[f+88>>2],J[f+92>>2],m,o,y,z);y=J[f+72>>2];z=J[f+76>>2];G=1;m=J[f+64>>2];o=J[f+68>>2]}d=i+1|0;j=d?j:j+1|0;i=d;p=1}d=J[h+4>>2];if((d|0)!=J[h+104>>2]){J[h+4>>2]=d+1;g=K[d|0]}else{g=Pa(h)}continue}break}y:{if(!p){d=J[h+116>>2];if((d|0)>0|(d|0)>=0){z:{d=J[h+4>>2];J[h+4>>2]=d-1;J[h+4>>2]=d-2;if(!x){break z}J[h+4>>2]=d-3}}rb(f+96|0,+(n|0)*0);m=J[f+96>>2];o=J[f+100>>2];i=J[f+108>>2];d=J[f+104>>2];break y}if((j|0)<=0&i>>>0<=7|(j|0)<0){l=i;k=j;while(1){u=u<<4;d=l+1|0;k=d?k:k+1|0;l=d;if((d|0)!=8|k){continue}break}}A:{B:{C:{if((g&-33)==80){l=Te(h);d=fa;k=d;if(l|(d|0)!=-2147483648){break A}d=J[h+116>>2];if((d|0)>0|(d|0)>=0){break C}break B}l=0;k=0;if(J[h+116>>2]<0){break A}}J[h+4>>2]=J[h+4>>2]-1}l=0;k=0}if(!u){rb(f+112|0,+(n|0)*0);m=J[f+112>>2];o=J[f+116>>2];i=J[f+124>>2];d=J[f+120>>2];break y}d=x?r:i;j=(x?s:j)<<2|d>>>30;d=l+(d<<2)|0;g=j+k|0;g=d>>>0>>0?g+1|0:g;i=d-32|0;j=g-(d>>>0<32)|0;d=j;if(i>>>0>0-D>>>0&(d|0)>=0|(d|0)>0){J[4804]=68;bb(f+160|0,n);Ia(f+144|0,J[f+160>>2],J[f+164>>2],J[f+168>>2],J[f+172>>2],-1,-1,-1,2147418111);Ia(f+128|0,J[f+144>>2],J[f+148>>2],J[f+152>>2],J[f+156>>2],-1,-1,-1,2147418111);m=J[f+128>>2];o=J[f+132>>2];i=J[f+140>>2];d=J[f+136>>2];break y}d=D-226|0;g=d>>31;if((j|0)>=(g|0)&d>>>0<=i>>>0|(g|0)<(j|0)){if((u|0)>=0){while(1){ab(f+416|0,m,o,y,z,0,0,0,-1073807360);g=Je(m,o,y,z,1073610752);d=(g|0)<0;ab(f+400|0,m,o,y,z,d?m:J[f+416>>2],d?o:J[f+420>>2],d?y:J[f+424>>2],d?z:J[f+428>>2]);d=i;i=d-1|0;j=j-!d|0;y=J[f+408>>2];z=J[f+412>>2];m=J[f+400>>2];o=J[f+404>>2];u=u<<1|(g|0)>=0;if((u|0)>=0){continue}break}}g=j-((D>>31)+(i>>>0>>0)|0)|0;d=(i-D|0)+32|0;g=d>>>0<32?g+1|0:g;j=d>>>0>>0&(g|0)<=0|(g|0)<0?(d|0)>0?d:0:E;D:{if((j|0)>=113){bb(f+384|0,n);r=J[f+392>>2];s=J[f+396>>2];A=J[f+384>>2];B=J[f+388>>2];k=0;d=0;break D}rb(f+352|0,hd(144-j|0));bb(f+336|0,n);A=J[f+336>>2];B=J[f+340>>2];r=J[f+344>>2];s=J[f+348>>2];We(f+368|0,J[f+352>>2],J[f+356>>2],J[f+360>>2],J[f+364>>2],A,B,r,s);e=J[f+376>>2];t=J[f+380>>2];k=J[f+372>>2];d=J[f+368>>2]}j=!(u&1)&((Jb(m,o,y,z,0,0,0,0)|0)!=0&(j|0)<32);Mb(f+320|0,j+u|0);Ia(f+304|0,A,B,r,s,J[f+320>>2],J[f+324>>2],J[f+328>>2],J[f+332>>2]);g=d;ab(f+272|0,J[f+304>>2],J[f+308>>2],J[f+312>>2],J[f+316>>2],d,k,e,t);d=j;Ia(f+288|0,A,B,r,s,d?0:m,d?0:o,d?0:y,d?0:z);ab(f+256|0,J[f+288>>2],J[f+292>>2],J[f+296>>2],J[f+300>>2],J[f+272>>2],J[f+276>>2],J[f+280>>2],J[f+284>>2]);gd(f+240|0,J[f+256>>2],J[f+260>>2],J[f+264>>2],J[f+268>>2],g,k,e,t);d=J[f+240>>2];j=J[f+244>>2];g=J[f+248>>2];k=J[f+252>>2];if(!Jb(d,j,g,k,0,0,0,0)){J[4804]=68}Ve(f+224|0,d,j,g,k,i);m=J[f+224>>2];o=J[f+228>>2];i=J[f+236>>2];d=J[f+232>>2];break y}J[4804]=68;bb(f+208|0,n);Ia(f+192|0,J[f+208>>2],J[f+212>>2],J[f+216>>2],J[f+220>>2],0,0,0,65536);Ia(f+176|0,J[f+192>>2],J[f+196>>2],J[f+200>>2],J[f+204>>2],0,0,0,65536);m=J[f+176>>2];o=J[f+180>>2];i=J[f+188>>2];d=J[f+184>>2]}J[q+16>>2]=m;J[q+20>>2]=o;J[q+24>>2]=d;J[q+28>>2]=i;ea=f+432|0;i=J[q+24>>2];j=J[q+28>>2];l=J[q+16>>2];k=J[q+20>>2];break a}if(J[h+116>>2]<0){break n}J[h+4>>2]=J[h+4>>2]-1}g=h;x=n;n=0;e=ea-8976|0;ea=e;G=0-D|0;F=G-E|0;E:{F:{while(1){if((d|0)!=48){G:{if((d|0)!=46){break E}d=J[g+4>>2];if((d|0)==J[g+104>>2]){break G}J[g+4>>2]=d+1;d=K[d|0];break F}}else{d=J[g+4>>2];if((d|0)!=J[g+104>>2]){n=1;J[g+4>>2]=d+1;d=K[d|0]}else{n=1;d=Pa(g)}continue}break}d=Pa(g)}f=1;if((d|0)!=48){break E}while(1){d=i;i=d-1|0;j=j-!d|0;d=J[g+4>>2];H:{if((d|0)!=J[g+104>>2]){J[g+4>>2]=d+1;d=K[d|0];break H}d=Pa(g)}if((d|0)==48){continue}break}n=1}J[e+784>>2]=0;I:{J:{h=(d|0)==46;m=d-48|0;K:{L:{M:{if(h|m>>>0<=9){while(1){N:{if(h&1){if(!f){i=l;j=k;f=1;break N}h=!n;break M}l=l+1|0;k=l?k:k+1|0;if((p|0)<=2044){u=(d|0)==48?u:l;n=(e+784|0)+(p<<2)|0;if(t){m=(P(J[n>>2],10)+d|0)-48|0}J[n>>2]=m;n=1;h=t+1|0;d=(h|0)==9;t=d?0:h;p=d+p|0;break N}if((d|0)==48){break N}J[e+8960>>2]=J[e+8960>>2]|1;u=18396}d=J[g+4>>2];O:{if((d|0)!=J[g+104>>2]){J[g+4>>2]=d+1;d=K[d|0];break O}d=Pa(g)}h=(d|0)==46;m=d-48|0;if(h|m>>>0<10){continue}break}}i=f?i:l;j=f?j:k;if(!(!n|(d&-33)!=69)){m=Te(g);d=fa;o=d;P:{if(m|(d|0)!=-2147483648){break P}m=0;o=0;if(J[g+116>>2]<0){break P}J[g+4>>2]=J[g+4>>2]-1}if(!n){break K}j=j+o|0;d=i+m|0;j=d>>>0>>0?j+1|0:j;i=d;break J}h=!n;if((d|0)<0){break L}}if(J[g+116>>2]<0){break L}J[g+4>>2]=J[g+4>>2]-1}if(!h){break J}}J[4804]=28;l=0;k=0;J[g+112>>2]=0;J[g+116>>2]=0;d=J[g+44>>2]-J[g+4>>2]|0;J[g+120>>2]=d;J[g+124>>2]=d>>31;J[g+104>>2]=J[g+8>>2];i=0;d=0;break I}d=J[e+784>>2];if(!d){rb(e,+(x|0)*0);l=J[e>>2];k=J[e+4>>2];i=J[e+12>>2];d=J[e+8>>2];break I}if(!(l>>>0>9&(k|0)>=0|(k|0)>0|((i|0)!=(l|0)|(j|0)!=(k|0))|(d>>>E|0?(E|0)<=30:0))){bb(e+48|0,x);Mb(e+32|0,d);Ia(e+16|0,J[e+48>>2],J[e+52>>2],J[e+56>>2],J[e+60>>2],J[e+32>>2],J[e+36>>2],J[e+40>>2],J[e+44>>2]);l=J[e+16>>2];k=J[e+20>>2];i=J[e+28>>2];d=J[e+24>>2];break I}if(i>>>0>G>>>1>>>0&(j|0)>=0|(j|0)>0){J[4804]=68;bb(e+96|0,x);Ia(e+80|0,J[e+96>>2],J[e+100>>2],J[e+104>>2],J[e+108>>2],-1,-1,-1,2147418111);Ia(e- -64|0,J[e+80>>2],J[e+84>>2],J[e+88>>2],J[e+92>>2],-1,-1,-1,2147418111);l=J[e+64>>2];k=J[e+68>>2];i=J[e+76>>2];d=J[e+72>>2];break I}d=D-226|0;g=i>>>0>>0;d=d>>31;if(g&(j|0)<=(d|0)|(d|0)>(j|0)){J[4804]=68;bb(e+144|0,x);Ia(e+128|0,J[e+144>>2],J[e+148>>2],J[e+152>>2],J[e+156>>2],0,0,0,65536);Ia(e+112|0,J[e+128>>2],J[e+132>>2],J[e+136>>2],J[e+140>>2],0,0,0,65536);l=J[e+112>>2];k=J[e+116>>2];i=J[e+124>>2];d=J[e+120>>2];break I}if(t){if((t|0)<=8){d=(e+784|0)+(p<<2)|0;g=J[d>>2];while(1){g=P(g,10);t=t+1|0;if((t|0)!=9){continue}break}J[d>>2]=g}p=p+1|0}Q:{f=i;if((u|0)>(f|0)|(u|0)>=9|(f|0)>17){break Q}if((f|0)==9){bb(e+192|0,x);Mb(e+176|0,J[e+784>>2]);Ia(e+160|0,J[e+192>>2],J[e+196>>2],J[e+200>>2],J[e+204>>2],J[e+176>>2],J[e+180>>2],J[e+184>>2],J[e+188>>2]);l=J[e+160>>2];k=J[e+164>>2];i=J[e+172>>2];d=J[e+168>>2];break I}if((f|0)<=8){bb(e+272|0,x);Mb(e+256|0,J[e+784>>2]);Ia(e+240|0,J[e+272>>2],J[e+276>>2],J[e+280>>2],J[e+284>>2],J[e+256>>2],J[e+260>>2],J[e+264>>2],J[e+268>>2]);bb(e+224|0,J[(0-f<<2)+17280>>2]);Ie(e+208|0,J[e+240>>2],J[e+244>>2],J[e+248>>2],J[e+252>>2],J[e+224>>2],J[e+228>>2],J[e+232>>2],J[e+236>>2]);l=J[e+208>>2];k=J[e+212>>2];i=J[e+220>>2];d=J[e+216>>2];break I}d=(P(f,-3)+E|0)+27|0;i=J[e+784>>2];if(i>>>d|0?(d|0)<=30:0){break Q}bb(e+352|0,x);Mb(e+336|0,i);Ia(e+320|0,J[e+352>>2],J[e+356>>2],J[e+360>>2],J[e+364>>2],J[e+336>>2],J[e+340>>2],J[e+344>>2],J[e+348>>2]);bb(e+304|0,J[(f<<2)+17208>>2]);Ia(e+288|0,J[e+320>>2],J[e+324>>2],J[e+328>>2],J[e+332>>2],J[e+304>>2],J[e+308>>2],J[e+312>>2],J[e+316>>2]);l=J[e+288>>2];k=J[e+292>>2];i=J[e+300>>2];d=J[e+296>>2];break I}while(1){d=p;p=d-1|0;if(!J[(e+784|0)+(p<<2)>>2]){continue}break}t=0;i=(f|0)%9|0;R:{if(!i){h=0;break R}h=0;i=(f|0)<0?i+9|0:i;S:{if(!d){d=0;break S}j=J[(0-i<<2)+17280>>2];l=1e9/(j|0)|0;m=0;g=0;while(1){k=m;n=(e+784|0)+(g<<2)|0;m=J[n>>2];p=(m>>>0)/(j>>>0)|0;k=k+p|0;J[n>>2]=k;k=!k&(g|0)==(h|0);h=k?h+1&2047:h;f=k?f-9|0:f;m=P(l,m-P(j,p)|0);g=g+1|0;if((g|0)!=(d|0)){continue}break}if(!m){break S}J[(e+784|0)+(d<<2)>>2]=m;d=d+1|0}f=(f-i|0)+9|0}while(1){p=(e+784|0)+(h<<2)|0;T:{while(1){if(((f|0)!=36|M[p>>2]>=10384593)&(f|0)>=36){break T}n=d+2047|0;m=0;while(1){l=n&2047;n=(e+784|0)+(l<<2)|0;i=J[n>>2];k=i>>>3|0;j=i<<29;i=j+m|0;g=k;g=i>>>0>>0?g+1|0:g;j=g;if(!g&i>>>0<1000000001){m=0}else{g=i;m=Cl(g,j,1e9,0);i=g-Al(m,fa,1e9,0)|0}J[n>>2]=i;d=(l|0)!=(d-1&2047)?d:(h|0)==(l|0)?d:i?d:l;n=l-1|0;if((h|0)!=(l|0)){continue}break}t=t-29|0;if(!m){continue}break}h=h-1&2047;if((h|0)==(d|0)){i=e+784|0;j=i+((d+2046&2047)<<2)|0;d=d-1&2047;J[j>>2]=J[j>>2]|J[i+(d<<2)>>2]}f=f+9|0;J[(e+784|0)+(h<<2)>>2]=m;continue}break}U:{V:while(1){i=d+1&2047;k=(e+784|0)+((d-1&2047)<<2)|0;while(1){j=(f|0)>45?9:1;W:{while(1){n=h;g=0;X:{while(1){Y:{l=g+n&2047;if((l|0)==(d|0)){break Y}l=J[(e+784|0)+(l<<2)>>2];h=J[(g<<2)+17232>>2];if(l>>>0>>0){break Y}if(h>>>0>>0){break X}g=g+1|0;if((g|0)!=4){continue}}break}if((f|0)!=36){break X}i=0;j=0;g=0;l=0;k=0;while(1){h=g+n&2047;if((h|0)==(d|0)){d=d+1&2047;J[(e+(d<<2)|0)+780>>2]=0}Mb(e+768|0,J[(e+784|0)+(h<<2)>>2]);Ia(e+752|0,i,j,l,k,0,0,1342177280,1075633366);ab(e+736|0,J[e+752>>2],J[e+756>>2],J[e+760>>2],J[e+764>>2],J[e+768>>2],J[e+772>>2],J[e+776>>2],J[e+780>>2]);l=J[e+744>>2];k=J[e+748>>2];i=J[e+736>>2];j=J[e+740>>2];g=g+1|0;if((g|0)!=4){continue}break}bb(e+720|0,x);Ia(e+704|0,i,j,l,k,J[e+720>>2],J[e+724>>2],J[e+728>>2],J[e+732>>2]);l=J[e+712>>2];k=J[e+716>>2];i=0;j=0;m=J[e+704>>2];o=J[e+708>>2];u=t+113|0;h=u-D|0;f=(h|0)<(E|0);g=f?(h|0)>0?h:0:E;if((g|0)<=112){break W}break U}t=j+t|0;h=d;if((d|0)==(n|0)){continue}break}l=1e9>>>j|0;m=-1<>2];g=(o>>>j|0)+g|0;J[p>>2]=g;g=!g&(h|0)==(n|0);h=g?h+1&2047:h;f=g?f-9|0:f;g=P(l,m&o);n=n+1&2047;if((n|0)!=(d|0)){continue}break}if(!g){continue}if((h|0)!=(i|0)){J[(e+784|0)+(d<<2)>>2]=g;d=i;continue V}J[k>>2]=J[k>>2]|1;continue}break}break}rb(e+656|0,hd(225-g|0));We(e+688|0,J[e+656>>2],J[e+660>>2],J[e+664>>2],J[e+668>>2],m,o,l,k);y=J[e+696>>2];z=J[e+700>>2];A=J[e+688>>2];B=J[e+692>>2];rb(e+640|0,hd(113-g|0));Ue(e+672|0,m,o,l,k,J[e+640>>2],J[e+644>>2],J[e+648>>2],J[e+652>>2]);i=J[e+672>>2];j=J[e+676>>2];r=J[e+680>>2];s=J[e+684>>2];gd(e+624|0,m,o,l,k,i,j,r,s);ab(e+608|0,A,B,y,z,J[e+624>>2],J[e+628>>2],J[e+632>>2],J[e+636>>2]);l=J[e+616>>2];k=J[e+620>>2];m=J[e+608>>2];o=J[e+612>>2]}p=n+4&2047;Z:{if((p|0)==(d|0)){break Z}p=J[(e+784|0)+(p<<2)>>2];_:{if(p>>>0<=499999999){if(!p&(n+5&2047)==(d|0)){break _}rb(e+496|0,+(x|0)*.25);ab(e+480|0,i,j,r,s,J[e+496>>2],J[e+500>>2],J[e+504>>2],J[e+508>>2]);r=J[e+488>>2];s=J[e+492>>2];i=J[e+480>>2];j=J[e+484>>2];break _}if((p|0)!=5e8){rb(e+592|0,+(x|0)*.75);ab(e+576|0,i,j,r,s,J[e+592>>2],J[e+596>>2],J[e+600>>2],J[e+604>>2]);r=J[e+584>>2];s=J[e+588>>2];i=J[e+576>>2];j=J[e+580>>2];break _}I=+(x|0);if((n+5&2047)==(d|0)){rb(e+528|0,I*.5);ab(e+512|0,i,j,r,s,J[e+528>>2],J[e+532>>2],J[e+536>>2],J[e+540>>2]);r=J[e+520>>2];s=J[e+524>>2];i=J[e+512>>2];j=J[e+516>>2];break _}rb(e+560|0,I*.75);ab(e+544|0,i,j,r,s,J[e+560>>2],J[e+564>>2],J[e+568>>2],J[e+572>>2]);r=J[e+552>>2];s=J[e+556>>2];i=J[e+544>>2];j=J[e+548>>2]}if((g|0)>111){break Z}Ue(e+464|0,i,j,r,s,0,0,0,1073676288);if(Jb(J[e+464>>2],J[e+468>>2],J[e+472>>2],J[e+476>>2],0,0,0,0)){break Z}ab(e+448|0,i,j,r,s,0,0,0,1073676288);r=J[e+456>>2];s=J[e+460>>2];i=J[e+448>>2];j=J[e+452>>2]}ab(e+432|0,m,o,l,k,i,j,r,s);gd(e+416|0,J[e+432>>2],J[e+436>>2],J[e+440>>2],J[e+444>>2],A,B,y,z);l=J[e+424>>2];k=J[e+428>>2];m=J[e+416>>2];o=J[e+420>>2];$:{if((F-2|0)>=(u&2147483647)){break $}J[e+408>>2]=l;J[e+412>>2]=k&2147483647;J[e+400>>2]=m;J[e+404>>2]=o;Ia(e+384|0,m,o,l,k,0,0,0,1073610752);n=Je(J[e+400>>2],J[e+404>>2],J[e+408>>2],J[e+412>>2],1081081856);d=(n|0)<0;l=d?l:J[e+392>>2];k=d?k:J[e+396>>2];m=d?m:J[e+384>>2];o=d?o:J[e+388>>2];t=((n|0)>=0)+t|0;if(!((Jb(i,j,r,s,0,0,0,0)|0)!=0&(d?f:f&(g|0)!=(h|0)))&(t+110|0)<=(F|0)){break $}J[4804]=68}Ve(e+368|0,m,o,l,k,t);l=J[e+368>>2];k=J[e+372>>2];i=J[e+380>>2];d=J[e+376>>2]}J[q+40>>2]=d;J[q+44>>2]=i;J[q+32>>2]=l;J[q+36>>2]=k;ea=e+8976|0;i=J[q+40>>2];j=J[q+44>>2];l=J[q+32>>2];k=J[q+36>>2];break a;case 3:break j;default:break m}}d=J[h+116>>2];if((d|0)>0|(d|0)>=0){J[h+4>>2]=J[h+4>>2]-1}J[4804]=28;break i}aa:{d=J[h+4>>2];ba:{if((d|0)!=J[h+104>>2]){J[h+4>>2]=d+1;d=K[d|0];break ba}d=Pa(h)}if((d|0)==40){g=1;break aa}j=2147450880;if(J[h+116>>2]<0){break a}J[h+4>>2]=J[h+4>>2]-1;break a}while(1){ca:{d=J[h+4>>2];da:{if((d|0)!=J[h+104>>2]){J[h+4>>2]=d+1;d=K[d|0];break da}d=Pa(h)}if(!(d-48>>>0<10|d-65>>>0<26|(d|0)==95)){if(d-97>>>0>=26){break ca}}g=g+1|0;continue}break}j=2147450880;if((d|0)==41){break a}d=J[h+116>>2];if((d|0)>0|(d|0)>=0){J[h+4>>2]=J[h+4>>2]-1}if(!g){break a}while(1){g=g-1|0;if((d|0)>0|(d|0)>=0){J[h+4>>2]=J[h+4>>2]-1}if(g){continue}break}break a}J[h+112>>2]=0;J[h+116>>2]=0;d=J[h+44>>2]-J[h+4>>2]|0;J[h+120>>2]=d;J[h+124>>2]=d>>31;J[h+104>>2]=J[h+8>>2]}}J[w>>2]=l;J[w+4>>2]=k;J[w+8>>2]=i;J[w+12>>2]=j;ea=q+48|0;d=J[w+8>>2];i=J[w+12>>2];j=J[w>>2];g=J[w+4>>2];if(c){J[c>>2]=((J[w+20>>2]+J[w+136>>2]|0)-J[w+60>>2]|0)+b}J[a+8>>2]=d;J[a+12>>2]=i;J[a>>2]=j;J[a+4>>2]=g;ea=w+160|0}function Fj(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0;k=ea-32|0;ea=k;c=J[b+8>>2];a:{b:{if(K[b+352|0]){c=ef(c);e=J[b+12>>2];J[b+12>>2]=c;if(e){break b}break a}c=ff(c);e=J[b+12>>2];J[b+12>>2]=c;if(!e){break a}}pc(e)}c:{c=J[b+12>>2];d:{if(!(J[c+40>>2]!=((J[c+4>>2]-J[c>>2]>>2>>>0)/3|0)?c:0)){b=ra(32);H[b+29|0]=0;c=K[1828]|K[1829]<<8|(K[1830]<<16|K[1831]<<24);d=K[1824]|K[1825]<<8|(K[1826]<<16|K[1827]<<24);H[b+21|0]=d;H[b+22|0]=d>>>8;H[b+23|0]=d>>>16;H[b+24|0]=d>>>24;H[b+25|0]=c;H[b+26|0]=c>>>8;H[b+27|0]=c>>>16;H[b+28|0]=c>>>24;c=K[1823]|K[1824]<<8|(K[1825]<<16|K[1826]<<24);d=K[1819]|K[1820]<<8|(K[1821]<<16|K[1822]<<24);H[b+16|0]=d;H[b+17|0]=d>>>8;H[b+18|0]=d>>>16;H[b+19|0]=d>>>24;H[b+20|0]=c;H[b+21|0]=c>>>8;H[b+22|0]=c>>>16;H[b+23|0]=c>>>24;c=K[1815]|K[1816]<<8|(K[1817]<<16|K[1818]<<24);d=K[1811]|K[1812]<<8|(K[1813]<<16|K[1814]<<24);H[b+8|0]=d;H[b+9|0]=d>>>8;H[b+10|0]=d>>>16;H[b+11|0]=d>>>24;H[b+12|0]=c;H[b+13|0]=c>>>8;H[b+14|0]=c>>>16;H[b+15|0]=c>>>24;c=K[1807]|K[1808]<<8|(K[1809]<<16|K[1810]<<24);d=K[1803]|K[1804]<<8|(K[1805]<<16|K[1806]<<24);H[b|0]=d;H[b+1|0]=d>>>8;H[b+2|0]=d>>>16;H[b+3|0]=d>>>24;H[b+4|0]=c;H[b+5|0]=c>>>8;H[b+6|0]=c>>>16;H[b+7|0]=c>>>24;J[a>>2]=-1;Ja(a+4|0,b,29);qa(b);break d}j=b+200|0;d=j;J[d+128>>2]=2;J[d+132>>2]=7;J[d+64>>2]=b;c=ga[J[J[b>>2]+32>>2]](b)|0;J[d+88>>2]=c;e=J[c+28>>2]-J[c+24>>2]>>2;c=J[d+108>>2];h=J[d+104>>2];d=c-h>>2;e:{if(e>>>0>d>>>0){Fa(j+104|0,e-d|0);h=J[j+104>>2];c=J[j+108>>2];break e}if(d>>>0<=e>>>0){break e}c=(e<<2)+h|0;J[j+108>>2]=c}if((c|0)!=(h|0)){h=0;while(1){p=J[j+104>>2];r=p+(h<<2)|0;c=J[j+88>>2];g=-1;f:{if((h|0)==-1){break f}g=0;d=J[J[c+24>>2]+(h<<2)>>2];if((d|0)==-1){break f}o=J[c+12>>2];e=1;c=d;while(1){g=g+1|0;f=e;g:{if(e&255){e=0;l=c+1|0;c=(l>>>0)%3|0?l:c-2|0;if((c|0)==-1){c=d;break g}l=J[o+(c<<2)>>2];if((l|0)==-1){c=d;break g}c=d;q=l+1|0;l=(q>>>0)%3|0?q:l-2|0;if((l|0)==-1){break g}e=f;c=l;if((d|0)!=(c|0)){break g}break f}h:{if((c>>>0)%3|0){c=c-1|0;break h}c=c+2|0;if((c|0)==-1){break f}}c=J[o+(c<<2)>>2];if((c|0)==-1){break f}c=(c>>>0)%3|0?c-1|0:c+2|0;e=0}if((c|0)!=-1){continue}break}}J[r>>2]=g;h=h+1|0;if(h>>>0>2]-p>>2>>>0){continue}break}}e=j+92|0;h=J[j+88>>2];c=J[h>>2];d=J[h+4>>2]-c>>2;g=J[j+92>>2];f=J[j+96>>2]-g>>2;i:{if(d>>>0>f>>>0){Fa(e,d-f|0);h=J[j+88>>2];c=J[h>>2];break i}if(d>>>0>=f>>>0){break i}J[j+96>>2]=g+(d<<2)}d=J[h+4>>2];j:{if((d|0)==(c|0)){break j}d=d-c>>2;f=d>>>0<=1?1:d;g=f&3;d=J[e>>2];h=0;if(f-1>>>0>=3){l=f&-4;e=0;while(1){f=h<<2;J[f+d>>2]=J[c+f>>2];o=f|4;J[o+d>>2]=J[c+o>>2];o=f|8;J[o+d>>2]=J[c+o>>2];f=f|12;J[f+d>>2]=J[c+f>>2];h=h+4|0;e=e+4|0;if((l|0)!=(e|0)){continue}break}}if(!g){break j}while(1){e=h<<2;J[e+d>>2]=J[c+e>>2];h=h+1|0;i=i+1|0;if((g|0)!=(i|0)){continue}break}}e=(J[j+132>>2]-J[j+128>>2]|0)+1|0;c=J[j+140>>2];d=J[j+136>>2];f=(c-d|0)/12|0;k:{if(e>>>0>f>>>0){h=0;c=e-f|0;g=J[j+144>>2];d=J[j+140>>2];if(c>>>0<=(g-d|0)/12>>>0){if(c){c=P(c,12)-12|0;c=(c-((c>>>0)%12|0)|0)+12|0;d=sa(d,0,c)+c|0}J[j+140>>2]=d;break k}l:{m:{n:{f=J[j+136>>2];l=(d-f|0)/12|0;e=l+c|0;if(e>>>0<357913942){g=(g-f|0)/12|0;i=g<<1;g=g>>>0>=178956970?357913941:e>>>0>>0?i:e;if(g){if(g>>>0>=357913942){break n}h=ra(P(g,12))}e=P(l,12)+h|0;c=P(c,12)-12|0;l=(c-((c>>>0)%12|0)|0)+12|0;c=sa(e,0,l);l=c+l|0;g=P(g,12)+h|0;if((d|0)==(f|0)){break m}while(1){e=e-12|0;d=d-12|0;J[e>>2]=J[d>>2];J[e+4>>2]=J[d+4>>2];J[e+8>>2]=J[d+8>>2];J[d+8>>2]=0;J[d>>2]=0;J[d+4>>2]=0;if((d|0)!=(f|0)){continue}break}J[j+144>>2]=g;c=J[j+140>>2];J[j+140>>2]=l;d=J[j+136>>2];J[j+136>>2]=e;if((c|0)==(d|0)){break l}while(1){e=c-12|0;f=J[e>>2];if(f){J[c-8>>2]=f;qa(f)}c=e;if((c|0)!=(d|0)){continue}break}break l}break c}ya();B()}J[j+144>>2]=g;J[j+140>>2]=l;J[j+136>>2]=c}if(d){qa(d)}break k}if(e>>>0>>0){e=d+P(e,12)|0;if((e|0)!=(c|0)){while(1){d=c-12|0;f=J[d>>2];if(f){J[c-8>>2]=f;qa(f)}c=d;if((c|0)!=(e|0)){continue}break}}J[j+140>>2]=e}}c=J[b+12>>2];Da((J[c+28>>2]-J[c+24>>2]>>2)-J[c+44>>2]|0,J[J[b+4>>2]+44>>2]);c=J[b+12>>2];Da(((J[c+4>>2]-J[c>>2]>>2>>>0)/3|0)-J[c+40>>2]|0,J[J[b+4>>2]+44>>2]);c=J[b+8>>2];d=J[c+100>>2];c=J[c+96>>2];H[k+16|0]=0;l=b+28|0;d=(d-c|0)/12|0;c=k+16|0;Qa(l,d,c);d=J[b+12>>2];e=J[d+28>>2];d=J[d+24>>2];J[k+16>>2]=-1;xb(b+52|0,e-d>>2,c);d=J[b+40>>2];J[b+44>>2]=d;c=J[b+12>>2];e=J[c+4>>2]-J[c>>2]>>2;e=e-((e>>>0)%3|0)|0;o:{if(e>>>0<=J[b+48>>2]-d>>2>>>0){break o}if(e>>>0>=1073741824){break c}f=e<<2;e=ra(f);J[b+44>>2]=e;J[b+40>>2]=e;J[b+48>>2]=e+f;if(!d){break o}qa(d);c=J[b+12>>2]}d=J[c+28>>2];c=J[c+24>>2];H[k+16|0]=0;Qa(b+84|0,d-c>>2,k+16|0);J[b+164>>2]=-1;J[b+168>>2]=0;J[b+100>>2]=J[b+96>>2];J[b+112>>2]=J[b+108>>2];if(J[b+132>>2]){c=J[b+128>>2];if(c){while(1){d=J[c>>2];qa(c);c=d;if(c){continue}break}}c=0;J[b+128>>2]=0;d=J[b+124>>2];p:{if(!d){break p}if(d>>>0>=4){f=d&-4;while(1){e=c<<2;J[e+J[b+120>>2]>>2]=0;J[J[b+120>>2]+(e|4)>>2]=0;J[J[b+120>>2]+(e|8)>>2]=0;J[J[b+120>>2]+(e|12)>>2]=0;c=c+4|0;m=m+4|0;if((f|0)!=(m|0)){continue}break}}d=d&3;if(!d){break p}e=0;while(1){J[J[b+120>>2]+(c<<2)>>2]=0;c=c+1|0;e=e+1|0;if((d|0)!=(e|0)){continue}break}}J[b+132>>2]=0}J[b+144>>2]=0;c=J[b+12>>2];d=J[c+28>>2];c=J[c+24>>2];J[k+16>>2]=-1;xb(b+152|0,d-c>>2,k+16|0);c=J[b+72>>2];J[b+76>>2]=c;o=b+72|0;d=J[b+12>>2];d=J[d+4>>2]-J[d>>2]|0;e=(d>>2>>>0)/3|0;q:{if(e>>>0<=J[b+80>>2]-c>>2>>>0){break q}if((d|0)<0){break c}e=e<<2;d=ra(e);J[b+76>>2]=d;J[b+72>>2]=d;J[b+80>>2]=d+e;if(!c){break q}qa(c)}J[b- -64>>2]=0;if(!fg(b)){b=ra(32);H[b+29|0]=0;c=K[1768]|K[1769]<<8|(K[1770]<<16|K[1771]<<24);d=K[1764]|K[1765]<<8|(K[1766]<<16|K[1767]<<24);H[b+21|0]=d;H[b+22|0]=d>>>8;H[b+23|0]=d>>>16;H[b+24|0]=d>>>24;H[b+25|0]=c;H[b+26|0]=c>>>8;H[b+27|0]=c>>>16;H[b+28|0]=c>>>24;c=K[1763]|K[1764]<<8|(K[1765]<<16|K[1766]<<24);d=K[1759]|K[1760]<<8|(K[1761]<<16|K[1762]<<24);H[b+16|0]=d;H[b+17|0]=d>>>8;H[b+18|0]=d>>>16;H[b+19|0]=d>>>24;H[b+20|0]=c;H[b+21|0]=c>>>8;H[b+22|0]=c>>>16;H[b+23|0]=c>>>24;c=K[1755]|K[1756]<<8|(K[1757]<<16|K[1758]<<24);d=K[1751]|K[1752]<<8|(K[1753]<<16|K[1754]<<24);H[b+8|0]=d;H[b+9|0]=d>>>8;H[b+10|0]=d>>>16;H[b+11|0]=d>>>24;H[b+12|0]=c;H[b+13|0]=c>>>8;H[b+14|0]=c>>>16;H[b+15|0]=c>>>24;c=K[1747]|K[1748]<<8|(K[1749]<<16|K[1750]<<24);d=K[1743]|K[1744]<<8|(K[1745]<<16|K[1746]<<24);H[b|0]=d;H[b+1|0]=d>>>8;H[b+2|0]=d>>>16;H[b+3|0]=d>>>24;H[b+4|0]=c;H[b+5|0]=c>>>8;H[b+6|0]=c>>>16;H[b+7|0]=c>>>24;J[a>>2]=-1;Ja(a+4|0,b,29);qa(b);break d}e=0;r:{d=b;if(K[d+352|0]){break r}b=J[d+8>>2];f=J[b+12>>2]-J[b+8>>2]|0;g=f>>2;c=g-1|0;b=J[d+176>>2];i=J[d+172>>2];h=(b-i|0)/136|0;s:{if(c>>>0>h>>>0){Zf(d+172|0,c-h|0);break s}if(c>>>0>=h>>>0){break s}h=i+P(c,136)|0;if((h|0)!=(b|0)){while(1){c=b-136|0;i=J[c+116>>2];if(i){J[b-16>>2]=i;qa(i)}i=J[b-32>>2];if(i){J[b-28>>2]=i;qa(i)}oc(b-132|0);b=c;if((c|0)!=(h|0)){continue}break}}J[d+176>>2]=h}if((f|0)==4|(f|0)<=0){break r}h=(g|0)<=1?1:g;b=0;t:{while(1){i=J[J[J[d+8>>2]+8>>2]+(b<<2)>>2];if(J[i+56>>2]){m=P(e,136);c=m+J[d+172>>2]|0;J[c>>2]=b;f=J[c+104>>2];J[c+108>>2]=f;g=J[d+12>>2];g=J[g+4>>2]-J[g>>2]|0;p=g>>2;u:{if(p>>>0<=J[c+112>>2]-f>>2>>>0){break u}if((g|0)<0){break t}g=ra(g);J[c+108>>2]=g;J[c+104>>2]=g;J[c+112>>2]=g+(p<<2);if(!f){break u}qa(f)}c=m+J[d+172>>2]|0;J[c+128>>2]=0;gf(c+4|0,J[d+8>>2],J[d+12>>2],i);e=e+1|0}b=b+1|0;if((h|0)!=(b|0)){continue}break}break r}break c}b=(J[d+176>>2]-J[d+172>>2]|0)/136|0;H[k+31|0]=b;c=J[J[d+4>>2]+44>>2];e=J[c+20>>2];if(!J[c+16>>2]&(e|0)<=0|(e|0)<0){wa(c,J[c+4>>2],k+31|0,k+32|0);b=K[k+31|0]}J[d+284>>2]=b&255;b=J[d+12>>2];c=J[b>>2];e=J[b+4>>2];eg(j);J[k+24>>2]=0;J[k+16>>2]=0;J[k+20>>2]=0;b=0;v:{w:{x:{c=e-c|0;if((c|0)>0){c=c>>>2|0;p=c>>>0<=1?1:c;c=0;while(1){e=(c>>>0)/3|0;r=e>>>5<<2;q=1<>2]>>2]&q){break y}if(Cc(J[d+12>>2],e)){break y}J[k+8>>2]=0;e=dg(d,e,k+8|0);Ga(j,e);f=J[k+8>>2];if(e){i=-1;g=-1;e=-1;z:{if((f|0)==-1){break z}h=J[J[d+12>>2]>>2];e=h+(f<<2)|0;i=f+1|0;i=(i>>>0)%3|0?i:f-2|0;if((i|0)!=-1){g=J[h+(i<<2)>>2]}i=J[e>>2];A:{if((f>>>0)%3|0){m=f-1|0;break A}m=f+2|0;e=-1;if((m|0)==-1){break z}}e=J[h+(m<<2)>>2]}h=J[d+84>>2];m=h+(i>>>3&536870908)|0;J[m>>2]=J[m>>2]|1<>>3&536870908)|0;J[i>>2]=J[i>>2]|1<>>3&536870908)|0;J[g>>2]=J[g>>2]|1<>2];h=J[d+104>>2];B:{if(e>>>0>>0){J[e>>2]=1;J[d+100>>2]=e+4;break B}g=J[d+96>>2];i=e-g|0;m=i>>2;e=m+1|0;if(e>>>0>=1073741824){break c}t=m<<2;h=h-g|0;m=h>>1;h=h>>>0>=2147483644?1073741823:e>>>0>>0?m:e;if(h){if(h>>>0>=1073741824){break x}e=ra(h<<2)}else{e=0}m=t+e|0;J[m>>2]=1;if((i|0)>0){ta(e,g,i)}J[d+104>>2]=e+(h<<2);J[d+100>>2]=m+4;J[d+96>>2]=e;if(!g){break B}qa(g)}e=r+J[l>>2]|0;J[e>>2]=q|J[e>>2];i=-1;if((f|0)!=-1){e=f+1|0;i=(e>>>0)%3|0?e:f-2|0}C:{if(n>>>0>>0){J[n>>2]=i;n=n+4|0;J[k+20>>2]=n;break C}h=n-b|0;n=h>>2;e=n+1|0;if(e>>>0>=1073741824){break c}g=s-b|0;m=g>>1;g=g>>>0>=2147483644?1073741823:e>>>0>>0?m:e;if(g){if(g>>>0>=1073741824){break x}e=ra(g<<2)}else{e=0}n=e+(n<<2)|0;J[n>>2]=i;s=e+(g<<2)|0;n=n+4|0;if((h|0)>0){ta(e,b,h)}J[k+24>>2]=s;J[k+20>>2]=n;J[k+16>>2]=e;if(b){qa(b)}b=e}if((f|0)==-1){break y}e=f+1|0;e=(e>>>0)%3|0?e:f-2|0;if((e|0)==-1){break y}e=J[J[J[d+12>>2]+12>>2]+(e<<2)>>2];if((e|0)==-1){break y}f=(e>>>0)/3|0;if(J[J[l>>2]+(f>>>3&268435452)>>2]>>>f&1){break y}if(Vf(d,e)){break y}break w}if((f|0)!=-1){e=f+1|0;e=(e>>>0)%3|0?e:f-2|0}else{e=-1}Ec(d,e,1);if(!Vf(d,J[k+8>>2])){break w}}c=c+1|0;if((p|0)!=(c|0)){continue}break}}c=J[d+72>>2];f=J[d+76>>2];D:{if((c|0)==(f|0)){break D}e=f-4|0;if(e>>>0<=c>>>0){break D}while(1){g=J[c>>2];J[c>>2]=J[e>>2];J[e>>2]=g;c=c+4|0;e=e-4|0;if(c>>>0>>0){continue}break}}ag(o,f,b,n);E:{if(J[d+172>>2]==J[d+176>>2]){break E}c=J[d+8>>2];e=J[c+100>>2];c=J[c+96>>2];H[k+8|0]=0;Qa(l,(e-c|0)/12|0,k+8|0);c=J[d+72>>2];e=J[d+76>>2];if((c|0)==(e|0)){break E}while(1){$f(d,J[c>>2]);c=c+4|0;if((e|0)!=(c|0)){continue}break}}i=0;e=0;c=j+32|0;Ba(j,c);if(!(!J[j+80>>2]|J[j+84>>2]<=0)){while(1){Ba(J[j+80>>2]+(i<<5)|0,c);i=i+1|0;if((i|0)>2]){continue}break}}i=J[j+136>>2];if((i|0)!=J[j+140>>2]){while(1){f=P(e,12);g=f+i|0;Da(J[g+4>>2]-J[g>>2]>>2,c);i=J[j+136>>2];f=f+i|0;g=J[f+4>>2];f=J[f>>2];if((g|0)!=(f|0)){Xd(f,g-f>>2,1,0,c);i=J[j+136>>2]}e=e+1|0;if(e>>>0<(J[j+140>>2]-i|0)/12>>>0){continue}break}}Da(J[d+324>>2],J[J[d+4>>2]+44>>2]);Da(J[d+168>>2],J[J[d+4>>2]+44>>2]);if(!_f(d)){c=ra(32);H[c+28|0]=0;d=K[1909]|K[1910]<<8|(K[1911]<<16|K[1912]<<24);H[c+24|0]=d;H[c+25|0]=d>>>8;H[c+26|0]=d>>>16;H[c+27|0]=d>>>24;d=K[1905]|K[1906]<<8|(K[1907]<<16|K[1908]<<24);e=K[1901]|K[1902]<<8|(K[1903]<<16|K[1904]<<24);H[c+16|0]=e;H[c+17|0]=e>>>8;H[c+18|0]=e>>>16;H[c+19|0]=e>>>24;H[c+20|0]=d;H[c+21|0]=d>>>8;H[c+22|0]=d>>>16;H[c+23|0]=d>>>24;d=K[1897]|K[1898]<<8|(K[1899]<<16|K[1900]<<24);e=K[1893]|K[1894]<<8|(K[1895]<<16|K[1896]<<24);H[c+8|0]=e;H[c+9|0]=e>>>8;H[c+10|0]=e>>>16;H[c+11|0]=e>>>24;H[c+12|0]=d;H[c+13|0]=d>>>8;H[c+14|0]=d>>>16;H[c+15|0]=d>>>24;d=K[1889]|K[1890]<<8|(K[1891]<<16|K[1892]<<24);e=K[1885]|K[1886]<<8|(K[1887]<<16|K[1888]<<24);H[c|0]=e;H[c+1|0]=e>>>8;H[c+2|0]=e>>>16;H[c+3|0]=e>>>24;H[c+4|0]=d;H[c+5|0]=d>>>8;H[c+6|0]=d>>>16;H[c+7|0]=d>>>24;J[a>>2]=-1;Ja(a+4|0,c,28);qa(c);break v}c=J[J[d+4>>2]+44>>2];e=J[c+20>>2];if(!J[c+16>>2]&(e|0)<=0|(e|0)<0){wa(c,J[c+4>>2],J[d+232>>2],J[d+236>>2])}J[a>>2]=0;J[a+4>>2]=0;J[a+8>>2]=0;J[a+12>>2]=0;break v}ya();B()}c=ra(48);H[c+32|0]=0;d=K[1703]|K[1704]<<8|(K[1705]<<16|K[1706]<<24);e=K[1699]|K[1700]<<8|(K[1701]<<16|K[1702]<<24);H[c+24|0]=e;H[c+25|0]=e>>>8;H[c+26|0]=e>>>16;H[c+27|0]=e>>>24;H[c+28|0]=d;H[c+29|0]=d>>>8;H[c+30|0]=d>>>16;H[c+31|0]=d>>>24;d=K[1695]|K[1696]<<8|(K[1697]<<16|K[1698]<<24);e=K[1691]|K[1692]<<8|(K[1693]<<16|K[1694]<<24);H[c+16|0]=e;H[c+17|0]=e>>>8;H[c+18|0]=e>>>16;H[c+19|0]=e>>>24;H[c+20|0]=d;H[c+21|0]=d>>>8;H[c+22|0]=d>>>16;H[c+23|0]=d>>>24;d=K[1687]|K[1688]<<8|(K[1689]<<16|K[1690]<<24);e=K[1683]|K[1684]<<8|(K[1685]<<16|K[1686]<<24);H[c+8|0]=e;H[c+9|0]=e>>>8;H[c+10|0]=e>>>16;H[c+11|0]=e>>>24;H[c+12|0]=d;H[c+13|0]=d>>>8;H[c+14|0]=d>>>16;H[c+15|0]=d>>>24;d=K[1679]|K[1680]<<8|(K[1681]<<16|K[1682]<<24);e=K[1675]|K[1676]<<8|(K[1677]<<16|K[1678]<<24);H[c|0]=e;H[c+1|0]=e>>>8;H[c+2|0]=e>>>16;H[c+3|0]=e>>>24;H[c+4|0]=d;H[c+5|0]=d>>>8;H[c+6|0]=d>>>16;H[c+7|0]=d>>>24;J[a>>2]=-1;Ja(a+4|0,c,32);qa(c)}if(!b){break d}qa(b)}ea=k+32|0;return}ua();B()}function $k(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,C=0,D=0,E=0,F=0,G=0,I=0,L=0,M=0,N=0,O=0,Q=0,S=0,U=0,X=0,Y=0,Z=0,_=0,$=0,aa=0,ba=0,ca=0,da=0;i=ea-224|0;ea=i;J[a+8>>2]=e;C=a+32|0;h=J[C>>2];f=J[a+36>>2]-h>>2;a:{if(f>>>0>>0){Fa(C,e-f|0);break a}if(e>>>0>=f>>>0){break a}J[a+36>>2]=h+(e<<2)}b:{if(!d){break b}g=J[b>>2];c:{if((d|0)<2){d=g;break c}h=1;f=d-1|0;z=f&1;d:{if((d|0)==2){d=g;break d}l=f&-2;f=0;d=g;while(1){k=(h<<2)+b|0;j=J[k+4>>2];k=J[k>>2];r=(k|0)<(d|0);d=r?k:d;t=(d|0)>(j|0);d=t?j:d;g=r?g:(g|0)<(k|0)?k:g;g=t?g:(g|0)<(j|0)?j:g;h=h+2|0;f=f+2|0;if((l|0)!=(f|0)){continue}break}}if(!z){break c}f=J[(h<<2)+b>>2];h=(f|0)<(d|0);d=h?f:d;g=h?g:(f|0)>(g|0)?f:g}J[a+16>>2]=g;J[a+12>>2]=d;f=(g>>31)-((d>>31)+(d>>>0>g>>>0)|0)|0;d=g-d|0;if(!f&d>>>0>2147483646|f){break b}d=d+1|0;J[a+20>>2]=d;f=d>>>1|0;J[a+24>>2]=f;J[a+28>>2]=0-f;if(d&1){break b}J[a+24>>2]=f-1}Z=J[a+52>>2];v=J[a+48>>2];J[i+184>>2]=0;J[i+188>>2]=0;J[i+176>>2]=0;J[i+180>>2]=0;J[i+168>>2]=0;J[i+172>>2]=0;J[i+160>>2]=0;J[i+164>>2]=0;J[i+152>>2]=0;J[i+156>>2]=0;J[i+144>>2]=0;J[i+148>>2]=0;e:{if(!e){g=0;d=0;break e}Fa(i+144|0,e);g=J[i+156>>2];d=J[i+160>>2]}d=d-g>>2;f:{if(d>>>0>=e>>>0){if(d>>>0<=e>>>0){break f}J[i+160>>2]=(e<<2)+g;break f}Fa(i+144|12,e-d|0)}f=J[i+168>>2];d=J[i+172>>2]-f>>2;g:{if(d>>>0>=e>>>0){if(d>>>0<=e>>>0){break g}J[i+172>>2]=f+(e<<2);break g}Fa(i+168|0,e-d|0)}h:{i:{f=J[i+180>>2];d=J[i+184>>2]-f>>2;j:{k:{if(d>>>0>=e>>>0){if(d>>>0>e>>>0){J[i+184>>2]=f+(e<<2)}J[i+136>>2]=0;J[i+128>>2]=0;J[i+132>>2]=0;if(e){break k}d=1;break j}Fa(i+180|0,e-d|0);J[i+136>>2]=0;J[i+128>>2]=0;J[i+132>>2]=0}if(e>>>0>=1073741824){break i}d=e<<2;f=ra(d);J[i+128>>2]=f;h=d+f|0;J[i+136>>2]=h;sa(f,0,d);J[i+132>>2]=h;d=0}A=a+152|0;h=J[a+152>>2];f=J[a+156>>2]-h>>2;l:{m:{if(f>>>0>>0){Fa(A,e-f|0);J[i+104>>2]=0;J[i+108>>2]=0;J[i+96>>2]=0;J[i+100>>2]=0;J[i+88>>2]=0;J[i+92>>2]=0;J[i+80>>2]=0;J[i+84>>2]=0;J[i+72>>2]=0;J[i+76>>2]=0;d=i- -64|0;J[d>>2]=0;J[d+4>>2]=0;J[i+56>>2]=0;J[i+60>>2]=0;J[i+48>>2]=0;J[i+52>>2]=0;break m}if(e>>>0>>0){J[a+156>>2]=h+(e<<2)}J[i+104>>2]=0;J[i+108>>2]=0;J[i+96>>2]=0;J[i+100>>2]=0;J[i+88>>2]=0;J[i+92>>2]=0;J[i+80>>2]=0;J[i+84>>2]=0;J[i+72>>2]=0;J[i+76>>2]=0;f=i- -64|0;J[f>>2]=0;J[f+4>>2]=0;J[i+56>>2]=0;J[i+60>>2]=0;J[i+48>>2]=0;J[i+52>>2]=0;t=0;if(d){break l}}d=e<<2;s=ra(d);t=sa(s,0,d)+d|0}d=J[a+56>>2];d=J[d+4>>2]-J[d>>2]|0;if((d|0)<5){break h}L=e&-2;M=e&1;_=e&-4;S=e&3;N=e-1|0;U=e<<2;O=a+112|0;z=d>>>2|0;Q=t-s|0;D=Q>>2;X=(Q-4&-4)+4|0;$=i+36|0;aa=i+24|0;while(1){f=J[a+56>>2];d=J[f>>2];n:{o:{r=z-1|0;if(r>>>0>2]-d>>2>>>0){f=0;j=0;k=J[d+(r<<2)>>2];p:{if((k|0)==-1){break p}o=1;d=k+2|0;j=(k>>>0)%3|0;w=j?k-1|0:d;x=1<>>5|0;h=0;G=(j|0)!=0|(d|0)!=-1;I=J[v>>2];d=k;while(1){q:{if(J[I+(d>>>3&536870908)>>2]>>>d&1){break q}j=J[J[J[v+64>>2]+12>>2]+(d<<2)>>2];if((j|0)==-1){break q}l=J[Z>>2];g=J[v+28>>2];m=J[l+(J[g+(j<<2)>>2]<<2)>>2];if((m|0)>=(r|0)){break q}n=j+1|0;n=J[l+(J[g+(((n>>>0)%3|0?n:j-2|0)<<2)>>2]<<2)>>2];if((n|0)>=(r|0)){break q}g=J[l+(J[g+(j+((j>>>0)%3|0?-1:2)<<2)>>2]<<2)>>2];if((g|0)>=(r|0)){break q}r:{if(!e){break r}j=J[(i+144|0)+P(h,12)>>2];l=P(e,g);n=P(e,n);p=P(e,m);g=0;m=0;if(N){while(1){J[j+(g<<2)>>2]=(J[(g+l<<2)+b>>2]+J[(g+n<<2)+b>>2]|0)-J[(g+p<<2)+b>>2];y=g|1;J[j+(y<<2)>>2]=(J[(l+y<<2)+b>>2]+J[(n+y<<2)+b>>2]|0)-J[(p+y<<2)+b>>2];g=g+2|0;m=m+2|0;if((L|0)!=(m|0)){continue}break}}if(!M){break r}J[j+(g<<2)>>2]=(J[(g+l<<2)+b>>2]+J[(g+n<<2)+b>>2]|0)-J[(g+p<<2)+b>>2]}j=4;h=h+1|0;if((h|0)==4){break p}}s:{if(o&1){g=d-2|0;j=d+1|0;d=-1;j=(j>>>0)%3|0?j:g;if((j|0)==-1|J[J[v>>2]+(j>>>3&536870908)>>2]>>>j&1){break s}j=J[J[J[v+64>>2]+12>>2]+(j<<2)>>2];if((j|0)==-1){break s}d=j+1|0;d=(d>>>0)%3|0?d:j-2|0;break s}t:{if((d>>>0)%3|0){g=d-1|0;break t}g=d+2|0;d=-1;if((g|0)==-1){break s}}d=-1;if(J[J[v>>2]+(g>>>3&536870908)>>2]>>>g&1){break s}j=J[J[J[v+64>>2]+12>>2]+(g<<2)>>2];if((j|0)==-1){break s}if((j>>>0)%3|0){d=j-1|0;break s}d=j+2|0}if((d|0)==(k|0)){j=h;break p}if(!((o^1)&1|(d|0)!=-1)){if(!G){j=h;break p}if(x&J[J[v>>2]+(E<<2)>>2]){j=h;break p}d=J[J[J[v+64>>2]+12>>2]+(w<<2)>>2];if((d|0)==-1){j=h;break p}o=0;d=(d>>>0)%3|0?d-1|0:d+2|0}j=h;if((d|0)!=-1){continue}break}}H[i+16|0]=0;J[i+8>>2]=0;J[i+12>>2]=0;J[i+44>>2]=0;J[i+36>>2]=0;J[i+40>>2]=0;J[i+28>>2]=0;J[i+32>>2]=0;J[i+20>>2]=0;J[i+24>>2]=0;I=P(e,r)<<2;y=I+b|0;k=(P(z-2|0,e)<<2)+b|0;l=J[A>>2];d=0;if(e){while(1){g=f<<2;h=J[g+k>>2]-J[g+y>>2]|0;J[g+s>>2]=h;J[g+l>>2]=(h|0)<0?(h^-1)<<1|1:h<<1;g=d;d=h>>31;d=g+((d^h)-d|0)|0;f=f+1|0;if((f|0)!=(e|0)){continue}break}}f=i+200|0;Eb(f,O,l,e);h=Db(f);g=fa;m=h;h=J[f+12>>2];f=J[f+16>>2];l=(((h-f|0)+1|0)/64|0)+f<<3;f=f<<3;o=f;h=l+f|0;f=(l>>31)+(f>>31)|0;f=h>>>0>>0?f+1|0:f;l=h;h=m+h|0;f=f+g|0;f=h>>>0>>0?f+1|0:f;g=h;E=(j|0)<=0;if(!E){o=(j<<3)-8|0;h=o+(i+48|0)|0;m=h;l=j+J[h>>2]|0;h=J[h+4>>2];h=j>>>0>l>>>0?h+1|0:h;J[m>>2]=l;J[m+4>>2]=h;u=W(Fb(l,J[o+(i+80|0)>>2])*(+(l>>>0)+ +(h|0)*4294967296));u:{if(R(u)<0x8000000000000000){l=R(u)>=1?~~(u>0?T(V(u*2.3283064365386963e-10),4294967295):W((u-+(~~u>>>0>>>0))*2.3283064365386963e-10))>>>0:0;h=~~u>>>0;break u}l=-2147483648;h=0}h=g+h|0;g=h}J[i+20>>2]=0;H[i+16|0]=0;J[i+8>>2]=g;J[i+12>>2]=d;cb(aa,k,k+U|0);Uc($,s,t);v:{w:{x:{if(E){break x}l=(i+124|0)+j|0;k=l-1|0;Y=j<<3;d=Y-8|0;G=d+(i+48|0)|0;ba=d+(i+80|0)|0;o=1;w=0;while(1){d=i+124|0;sa(d,1,j);w=w+1|0;sa(d,0,w);y:{z:while(1){if(e){sa(J[i+128>>2],0,U)}m=0;d=J[i+128>>2];x=0;while(1){if(!K[(i+124|0)+m|0]){A:{if(!e){break A}n=J[(i+144|0)+P(m,12)>>2];h=0;g=0;f=0;if(e>>>0>3){while(1){p=g<<2;q=p+d|0;J[q>>2]=J[q>>2]+J[n+p>>2];q=p|4;F=q+d|0;J[F>>2]=J[F>>2]+J[n+q>>2];q=p|8;F=q+d|0;J[F>>2]=J[F>>2]+J[n+q>>2];p=p|12;q=p+d|0;J[q>>2]=J[q>>2]+J[n+p>>2];g=g+4|0;f=f+4|0;if((_|0)!=(f|0)){continue}break}}if(!S){break A}while(1){f=g<<2;p=f+d|0;J[p>>2]=J[p>>2]+J[f+n>>2];g=g+1|0;h=h+1|0;if((S|0)!=(h|0)){continue}break}}x=1<>2];d=0;break B}g=0;d=J[i+128>>2];f=0;if(N){while(1){h=g<<2;m=h+d|0;J[m>>2]=J[m>>2]/(o|0);h=d+(h|4)|0;J[h>>2]=J[h>>2]/(o|0);g=g+2|0;f=f+2|0;if((L|0)!=(f|0)){continue}break}}if(M){d=d+(g<<2)|0;J[d>>2]=J[d>>2]/(o|0)}h=J[A>>2];f=0;d=0;if(!e){break B}n=J[i+128>>2];while(1){m=f<<2;g=J[m+n>>2]-J[m+y>>2]|0;J[m+s>>2]=g;J[h+m>>2]=(g|0)<0?(g^-1)<<1|1:g<<1;m=d;d=g>>31;d=m+((d^g)-d|0)|0;f=f+1|0;if((f|0)!=(e|0)){continue}break}}f=i+200|0;Eb(f,O,h,e);h=Db(f);m=h;h=J[f+12>>2];f=J[f+16>>2];g=(((h-f|0)+1|0)/64|0)+f<<3;f=f<<3;h=g+f|0;f=m+h|0;g=f;q=(j|0)>0;if(q){f=J[G+4>>2];h=J[G>>2];u=W(Fb(h,J[ba>>2]+o|0)*(+(h>>>0)+ +(f|0)*4294967296));C:{if(R(u)<0x8000000000000000){f=~~u>>>0;break C}f=0}g=f+g|0}f=J[i+8>>2];if(!((f|0)<=(g|0)&((f|0)<(g|0)|(d|0)>=J[i+12>>2]))){J[i+20>>2]=o;H[i+16|0]=x;J[i+8>>2]=g;J[i+12>>2]=d;m=J[i+132>>2];h=J[i+128>>2];n=m-h|0;g=n>>2;d=J[i+32>>2];f=J[i+24>>2];D:{if(g>>>0<=d-f>>2>>>0){n=J[i+28>>2]-f|0;d=n+h|0;x=n>>2;n=x>>>0>>0?d:m;p=n-h|0;if((h|0)!=(n|0)){xa(f,h,p)}if(g>>>0>x>>>0){g=J[i+28>>2];if((m|0)==(n|0)){break D}while(1){J[g>>2]=J[d>>2];g=g+4|0;d=d+4|0;if((m|0)!=(d|0)){continue}break}break D}g=f+p|0;break D}if(f){J[i+28>>2]=f;qa(f);J[i+32>>2]=0;J[i+24>>2]=0;J[i+28>>2]=0;d=0}if((n|0)<0){break w}f=d>>1;d=d>>>0>=2147483644?1073741823:f>>>0>g>>>0?f:g;if(d>>>0>=1073741824){break w}d=d<<2;g=ra(d);J[i+24>>2]=g;J[i+32>>2]=d+g;if((h|0)==(m|0)){break D}d=(n-4&-4)+4|0;g=ta(g,h,d)+d|0}J[i+28>>2]=g;d=J[i+44>>2];f=J[i+36>>2];E:{if(d-f>>2>>>0>=D>>>0){h=J[i+40>>2]-f|0;d=h+s|0;m=h>>2;h=m>>>0>>0?d:t;g=h-s|0;if((h|0)!=(s|0)){xa(f,s,g)}if(m>>>0>>0){g=J[i+40>>2];if((h|0)==(t|0)){break E}while(1){J[g>>2]=J[d>>2];g=g+4|0;d=d+4|0;if((t|0)!=(d|0)){continue}break}break E}g=f+g|0;break E}if(f){J[i+40>>2]=f;qa(f);J[i+44>>2]=0;J[i+36>>2]=0;J[i+40>>2]=0;d=0}if((Q|0)<0){break v}f=d>>1;d=d>>>0>=2147483644?1073741823:f>>>0>D>>>0?f:D;if(d>>>0>=1073741824){break v}d=d<<2;g=ra(d);J[i+36>>2]=g;J[i+44>>2]=d+g;if((s|0)==(t|0)){break E}g=ta(g,s,X)+X|0}J[i+40>>2]=g}if((k|0)==(i+124|0)){break y}g=K[k|0];d=-1;while(1){m=g&255;f=d-1|0;h=f+l|0;g=K[h|0];if(m>>>0>g>>>0){f=l;while(1){f=f-1|0;m=K[f|0];if(m>>>0<=g>>>0){continue}break}H[h|0]=m;H[f|0]=g;if((d|0)==-1){continue z}g=d+l|0;d=k;while(1){f=K[g|0];H[g|0]=K[d|0];H[d|0]=f;d=d-1|0;g=g+1|0;if(d>>>0>g>>>0){continue}break}continue z}d=f;if((h|0)!=(i+124|0)){continue}break}break}f=i+124|0;g=f;d=k;if(f>>>0>=d>>>0){break y}while(1){f=K[g|0];H[g|0]=K[d|0];H[d|0]=f;d=d-1|0;g=g+1|0;if(d>>>0>g>>>0){continue}break}}o=o+1|0;if((j|0)!=(w|0)){continue}break}if(!q){break x}d=i+Y|0;f=J[i+20>>2];g=f;h=f+J[d+72>>2]|0;f=J[d+76>>2]+(f>>31)|0;J[d+72>>2]=h;J[d+76>>2]=g>>>0>h>>>0?f+1|0:f}if(!e){break n}d=J[A>>2];g=0;h=J[i+36>>2];f=0;if(!N){break o}while(1){l=g<<2;k=J[l+h>>2];J[d+l>>2]=(k|0)<0?(k^-1)<<1|1:k<<1;l=l|4;k=J[l+h>>2];J[d+l>>2]=(k|0)<0?(k^-1)<<1|1:k<<1;g=g+2|0;f=f+2|0;if((L|0)!=(f|0)){continue}break}break o}ua();B()}ua();B()}va();B()}if(!M){break n}f=h;h=g<<2;f=J[f+h>>2];J[d+h>>2]=(f|0)<0?(f^-1)<<1|1:f<<1}Lc(i+200|0,O,J[A>>2],e);F:{if(E){break F}g=P(j,12)+a|0;d=0;while(1){G:{k=J[g+56>>2];l=k<<5;f=J[g+52>>2];H:{if(!(K[i+16|0]>>>d&1)){h=f;I:{if((f|0)!=(l|0)){break I}if((f+1|0)<0){break G}J:{if(f>>>0<=1073741822){k=k<<6;l=(f&-32)+32|0;k=k>>>0>l>>>0?k:l;h=f;if(f>>>0>=k>>>0){break I}if((k|0)>=0){break J}break G}k=2147483647;h=-1;if(f>>>0>=2147483647){break I}}l=(k-1>>>5|0)+1|0;h=ra(l<<2);k=J[g+48>>2];J[h+((f>>>0>=33?f-1>>>5|0:0)<<2)>>2]=0;K:{L:{if(!f){break L}o=f>>>5<<2;m=xa(h,k,o);n=f&31;if(!n){break L}h=m+o|0;p=h;q=J[h>>2];h=-1>>>32-n|0;J[p>>2]=q&(h^-1)|h&J[k+o>>2];J[g+48>>2]=m;J[g+52>>2]=f;J[g+56>>2]=l;break K}J[g+48>>2]=h;J[g+52>>2]=f;J[g+56>>2]=l;h=f;if(!k){break I}}qa(k);h=J[g+52>>2]}J[g+52>>2]=h+1;f=J[g+48>>2]+(h>>>3&536870908)|0;J[f>>2]=J[f>>2]|1<>>0<=1073741822){k=k<<6;l=(f&-32)+32|0;k=k>>>0>l>>>0?k:l;h=f;if(f>>>0>=k>>>0){break M}if((k|0)<0){break G}break N}k=2147483647;h=-1;if(f>>>0>=2147483647){break M}}l=(k-1>>>5|0)+1|0;h=ra(l<<2);k=J[g+48>>2];J[h+((f>>>0>=33?f-1>>>5|0:0)<<2)>>2]=0;O:{P:{if(!f){break P}o=f>>>5<<2;m=xa(h,k,o);n=f&31;if(!n){break P}h=m+o|0;p=h;q=J[h>>2];h=-1>>>32-n|0;J[p>>2]=q&(h^-1)|h&J[k+o>>2];J[g+48>>2]=m;J[g+52>>2]=f;J[g+56>>2]=l;break O}J[g+48>>2]=h;J[g+52>>2]=f;J[g+56>>2]=l;h=f;if(!k){break M}}qa(k);h=J[g+52>>2]}J[g+52>>2]=h+1;f=J[g+48>>2]+(h>>>3&536870908)|0;k=J[f>>2];ca=f,da=El(h)&k,J[ca>>2]=da}d=d+1|0;if((j|0)!=(d|0)){continue}break F}break}ua();B()}g=J[a+8>>2];if((g|0)>0){o=c+I|0;d=J[C>>2];k=0;f=J[i+24>>2];while(1){h=d;if((g|0)>0){h=J[C>>2];g=0;while(1){j=g<<2;l=J[j+f>>2];m=J[a+16>>2];Q:{if((l|0)>(m|0)){J[h+j>>2]=m;break Q}j=h+j|0;m=J[a+12>>2];if((m|0)>(l|0)){J[j>>2]=m;break Q}J[j>>2]=l}g=g+1|0;if((g|0)>2]){continue}break}}j=k<<2;f=j+o|0;j=J[j+y>>2]-J[h+j>>2]|0;J[f>>2]=j;R:{if((j|0)>2]){g=j+J[a+20>>2]|0}else{if((j|0)<=J[a+24>>2]){break R}g=j-J[a+20>>2]|0}J[f>>2]=g}f=h;g=J[a+8>>2];k=k+1|0;if((g|0)>(k|0)){continue}break}}d=J[i+36>>2];if(d){J[i+40>>2]=d;qa(d)}d=J[i+24>>2];if(d){J[i+28>>2]=d;qa(d)}d=(z|0)>2;z=r;if(d){continue}break}break h}ua();B()}if((e|0)>0){sa(J[i+144>>2],0,e<<2)}g=J[a+8>>2];if((g|0)>0){d=J[a+32>>2];k=0;f=J[i+144>>2];while(1){h=d;if((g|0)>0){h=J[C>>2];g=0;while(1){e=g<<2;j=J[e+f>>2];r=J[a+16>>2];S:{if((j|0)>(r|0)){J[e+h>>2]=r;break S}e=e+h|0;r=J[a+12>>2];if((r|0)>(j|0)){J[e>>2]=r;break S}J[e>>2]=j}g=g+1|0;if((g|0)>2]){continue}break}}f=k<<2;e=f+c|0;f=J[b+f>>2]-J[f+h>>2]|0;J[e>>2]=f;T:{if((f|0)>2]){f=f+J[a+20>>2]|0}else{if((f|0)<=J[a+24>>2]){break T}f=f-J[a+20>>2]|0}J[e>>2]=f}f=h;g=J[a+8>>2];k=k+1|0;if((g|0)>(k|0)){continue}break}}if(s){qa(s)}a=J[i+128>>2];if(a){J[i+132>>2]=a;qa(a)}a=J[i+180>>2];if(a){J[i+184>>2]=a;qa(a)}a=J[i+168>>2];if(a){J[i+172>>2]=a;qa(a)}a=J[i+156>>2];if(a){J[i+160>>2]=a;qa(a)}a=J[i+144>>2];if(a){J[i+148>>2]=a;qa(a)}ea=i+224|0;return 1}function Rk(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,C=0,D=0,E=0,F=0,G=0,I=0,L=0,M=0,N=0,O=0,Q=0,S=0,U=0,X=0,Y=0,Z=0,_=0,$=0,aa=0,ba=0,ca=0,da=0;i=ea-224|0;ea=i;J[a+8>>2]=e;z=a+32|0;g=J[z>>2];f=J[a+36>>2]-g>>2;a:{if(f>>>0>>0){Fa(z,e-f|0);break a}if(e>>>0>=f>>>0){break a}J[a+36>>2]=g+(e<<2)}b:{if(!d){break b}h=J[b>>2];c:{if((d|0)<2){d=h;break c}g=1;f=d-1|0;w=f&1;d:{if((d|0)==2){d=h;break d}t=f&-2;d=h;while(1){l=(g<<2)+b|0;f=J[l+4>>2];l=J[l>>2];k=(l|0)<(d|0);d=k?l:d;p=(d|0)>(f|0);d=p?f:d;l=k?h:(h|0)<(l|0)?l:h;h=p?l:(f|0)>(l|0)?f:l;g=g+2|0;j=j+2|0;if((t|0)!=(j|0)){continue}break}}if(!w){break c}f=J[(g<<2)+b>>2];g=(f|0)<(d|0);d=g?f:d;h=g?h:(f|0)>(h|0)?f:h}J[a+16>>2]=h;J[a+12>>2]=d;f=(h>>31)-((d>>31)+(d>>>0>h>>>0)|0)|0;d=h-d|0;if(!f&d>>>0>2147483646|f){break b}d=d+1|0;J[a+20>>2]=d;f=d>>>1|0;J[a+24>>2]=f;J[a+28>>2]=0-f;if(d&1){break b}J[a+24>>2]=f-1}Z=J[a+52>>2];N=J[a+48>>2];J[i+184>>2]=0;J[i+188>>2]=0;J[i+176>>2]=0;J[i+180>>2]=0;J[i+168>>2]=0;J[i+172>>2]=0;J[i+160>>2]=0;J[i+164>>2]=0;J[i+152>>2]=0;J[i+156>>2]=0;J[i+144>>2]=0;J[i+148>>2]=0;e:{if(!e){h=0;d=0;break e}Fa(i+144|0,e);h=J[i+156>>2];d=J[i+160>>2]}d=d-h>>2;f:{if(d>>>0>=e>>>0){if(d>>>0<=e>>>0){break f}J[i+160>>2]=(e<<2)+h;break f}Fa(i+144|12,e-d|0)}f=J[i+168>>2];d=J[i+172>>2]-f>>2;g:{if(d>>>0>=e>>>0){if(d>>>0<=e>>>0){break g}J[i+172>>2]=f+(e<<2);break g}Fa(i+168|0,e-d|0)}h:{i:{f=J[i+180>>2];d=J[i+184>>2]-f>>2;j:{k:{if(d>>>0>=e>>>0){if(d>>>0>e>>>0){J[i+184>>2]=f+(e<<2)}J[i+136>>2]=0;J[i+128>>2]=0;J[i+132>>2]=0;if(e){break k}d=1;break j}Fa(i+180|0,e-d|0);J[i+136>>2]=0;J[i+128>>2]=0;J[i+132>>2]=0}if(e>>>0>=1073741824){break i}d=e<<2;f=ra(d);J[i+128>>2]=f;g=d+f|0;J[i+136>>2]=g;sa(f,0,d);J[i+132>>2]=g;d=0}x=a+152|0;g=J[a+152>>2];f=J[a+156>>2]-g>>2;l:{m:{if(f>>>0>>0){Fa(x,e-f|0);J[i+104>>2]=0;J[i+108>>2]=0;J[i+96>>2]=0;J[i+100>>2]=0;J[i+88>>2]=0;J[i+92>>2]=0;J[i+80>>2]=0;J[i+84>>2]=0;J[i+72>>2]=0;J[i+76>>2]=0;d=i- -64|0;J[d>>2]=0;J[d+4>>2]=0;J[i+56>>2]=0;J[i+60>>2]=0;J[i+48>>2]=0;J[i+52>>2]=0;break m}if(e>>>0>>0){J[a+156>>2]=g+(e<<2)}J[i+104>>2]=0;J[i+108>>2]=0;J[i+96>>2]=0;J[i+100>>2]=0;J[i+88>>2]=0;J[i+92>>2]=0;J[i+80>>2]=0;J[i+84>>2]=0;J[i+72>>2]=0;J[i+76>>2]=0;f=i- -64|0;J[f>>2]=0;J[f+4>>2]=0;J[i+56>>2]=0;J[i+60>>2]=0;J[i+48>>2]=0;J[i+52>>2]=0;t=0;if(d){break l}}d=e<<2;r=ra(d);t=sa(r,0,d)+d|0}d=J[a+56>>2];d=J[d+4>>2]-J[d>>2]|0;if((d|0)<5){break h}F=e&-2;G=e&1;_=e&-4;O=e&3;I=e-1|0;Q=e<<2;L=a+112|0;E=d>>>2|0;M=t-r|0;A=M>>2;S=(M-4&-4)+4|0;$=i+36|0;aa=i+24|0;while(1){f=J[a+56>>2];d=J[f>>2];n:{o:{w=E-1|0;if(w>>>0>2]-d>>2>>>0){f=0;l=0;d=J[d+(w<<2)>>2];p:{if((d|0)==-1){break p}p=J[N+12>>2];g=d+2|0;l=(d>>>0)%3|0;y=p+((l?d-1|0:g)<<2)|0;k=0;C=(l|0)!=0|(g|0)!=-1;u=1;g=d;while(1){l=J[p+(g<<2)>>2];q:{if((l|0)==-1){break q}j=-1;m=J[Z>>2];o=J[N>>2];h=m+(J[o+(l<<2)>>2]<<2)|0;n=l+1|0;n=(n>>>0)%3|0?n:l-2|0;if((n|0)!=-1){j=J[o+(n<<2)>>2]}n=J[h>>2];r:{s:{if((l>>>0)%3|0){h=l-1|0;break s}h=l+2|0;s=-1;if((h|0)==-1){break r}}s=J[o+(h<<2)>>2]}if((n|0)>=(w|0)){break q}h=J[m+(j<<2)>>2];if((h|0)>=(w|0)){break q}j=J[m+(s<<2)>>2];if((j|0)>=(w|0)){break q}l=J[(i+144|0)+P(k,12)>>2];t:{if(!e){break t}j=P(e,j);o=P(e,h);n=P(e,n);h=0;m=0;if(I){while(1){J[l+(h<<2)>>2]=(J[(h+j<<2)+b>>2]+J[(h+o<<2)+b>>2]|0)-J[(h+n<<2)+b>>2];s=h|1;J[l+(s<<2)>>2]=(J[(j+s<<2)+b>>2]+J[(o+s<<2)+b>>2]|0)-J[(n+s<<2)+b>>2];h=h+2|0;m=m+2|0;if((F|0)!=(m|0)){continue}break}}if(!G){break t}J[l+(h<<2)>>2]=(J[(h+j<<2)+b>>2]+J[(h+o<<2)+b>>2]|0)-J[(h+n<<2)+b>>2]}l=4;k=k+1|0;if((k|0)==4){break p}}u:{if(u&1){h=g+1|0;g=(h>>>0)%3|0?h:g-2|0;j=-1;if((g|0)==-1){break u}g=J[p+(g<<2)>>2];j=-1;if((g|0)==-1){break u}l=g+1|0;j=(l>>>0)%3|0?l:g-2|0;break u}v:{if((g>>>0)%3|0){h=g-1|0;break v}h=g+2|0;j=-1;if((h|0)==-1){break u}}g=J[p+(h<<2)>>2];j=-1;if((g|0)==-1){break u}j=g-1|0;if((g>>>0)%3|0){break u}j=g+2|0}g=j;if((d|0)==(g|0)){l=k;break p}if(!((u^1)&1|(g|0)!=-1)){if(!C){l=k;break p}g=J[y>>2];if((g|0)==-1){l=k;break p}u=0;g=(g>>>0)%3|0?g-1|0:g+2|0}l=k;if((g|0)!=-1){continue}break}}H[i+16|0]=0;J[i+8>>2]=0;J[i+12>>2]=0;J[i+44>>2]=0;J[i+36>>2]=0;J[i+40>>2]=0;J[i+28>>2]=0;J[i+32>>2]=0;J[i+20>>2]=0;J[i+24>>2]=0;U=P(e,w)<<2;s=U+b|0;k=(P(E-2|0,e)<<2)+b|0;j=J[x>>2];d=0;if(e){while(1){h=f<<2;g=J[h+k>>2]-J[h+s>>2]|0;J[h+r>>2]=g;J[h+j>>2]=(g|0)<0?(g^-1)<<1|1:g<<1;h=d;d=g>>31;d=h+((d^g)-d|0)|0;f=f+1|0;if((f|0)!=(e|0)){continue}break}}f=i+200|0;Eb(f,L,j,e);g=Db(f);h=fa;o=g;g=J[f+12>>2];f=J[f+16>>2];j=(((g-f|0)+1|0)/64|0)+f<<3;f=f<<3;p=f;g=j+f|0;f=(j>>31)+(f>>31)|0;f=g>>>0

>>0?f+1|0:f;j=g;g=o+g|0;f=f+h|0;f=g>>>0>>0?f+1|0:f;h=g;C=(l|0)<=0;if(!C){p=(l<<3)-8|0;g=p+(i+48|0)|0;o=g;j=l+J[g>>2]|0;g=J[g+4>>2];g=j>>>0>>0?g+1|0:g;J[o>>2]=j;J[o+4>>2]=g;v=W(Fb(j,J[p+(i+80|0)>>2])*(+(j>>>0)+ +(g|0)*4294967296));w:{if(R(v)<0x8000000000000000){j=R(v)>=1?~~(v>0?T(V(v*2.3283064365386963e-10),4294967295):W((v-+(~~v>>>0>>>0))*2.3283064365386963e-10))>>>0:0;g=~~v>>>0;break w}j=-2147483648;g=0}g=h+g|0;h=g}J[i+20>>2]=0;H[i+16|0]=0;J[i+8>>2]=h;J[i+12>>2]=d;cb(aa,k,k+Q|0);Uc($,r,t);x:{y:{z:{if(C){break z}o=(i+124|0)+l|0;p=o-1|0;X=l<<3;d=X-8|0;Y=d+(i+48|0)|0;ba=d+(i+80|0)|0;k=1;y=0;while(1){d=i+124|0;sa(d,1,l);y=y+1|0;sa(d,0,y);A:{B:while(1){if(e){sa(J[i+128>>2],0,Q)}m=0;d=J[i+128>>2];u=0;while(1){if(!K[(i+124|0)+m|0]){C:{if(!e){break C}f=J[(i+144|0)+P(m,12)>>2];g=0;h=0;j=0;if(e>>>0>3){while(1){n=h<<2;q=n+d|0;J[q>>2]=J[q>>2]+J[f+n>>2];q=n|4;D=q+d|0;J[D>>2]=J[D>>2]+J[f+q>>2];q=n|8;D=q+d|0;J[D>>2]=J[D>>2]+J[f+q>>2];n=n|12;q=n+d|0;J[q>>2]=J[q>>2]+J[f+n>>2];h=h+4|0;j=j+4|0;if((_|0)!=(j|0)){continue}break}}if(!O){break C}while(1){j=h<<2;n=j+d|0;J[n>>2]=J[n>>2]+J[f+j>>2];h=h+1|0;g=g+1|0;if((O|0)!=(g|0)){continue}break}}u=1<>2];d=0;break D}h=0;d=J[i+128>>2];f=0;if(I){while(1){g=h<<2;j=g+d|0;J[j>>2]=J[j>>2]/(k|0);g=d+(g|4)|0;J[g>>2]=J[g>>2]/(k|0);h=h+2|0;f=f+2|0;if((F|0)!=(f|0)){continue}break}}if(G){d=d+(h<<2)|0;J[d>>2]=J[d>>2]/(k|0)}g=J[x>>2];f=0;d=0;if(!e){break D}m=J[i+128>>2];while(1){j=f<<2;h=J[j+m>>2]-J[j+s>>2]|0;J[j+r>>2]=h;J[g+j>>2]=(h|0)<0?(h^-1)<<1|1:h<<1;j=d;d=h>>31;d=j+((d^h)-d|0)|0;f=f+1|0;if((f|0)!=(e|0)){continue}break}}f=i+200|0;Eb(f,L,g,e);g=Db(f);j=g;g=J[f+12>>2];f=J[f+16>>2];h=(((g-f|0)+1|0)/64|0)+f<<3;f=f<<3;g=h+f|0;f=j+g|0;h=f;n=(l|0)>0;if(n){f=J[Y+4>>2];g=J[Y>>2];v=W(Fb(g,J[ba>>2]+k|0)*(+(g>>>0)+ +(f|0)*4294967296));E:{if(R(v)<0x8000000000000000){f=~~v>>>0;break E}f=0}h=f+h|0}f=J[i+8>>2];if(!((f|0)<=(h|0)&((f|0)<(h|0)|(d|0)>=J[i+12>>2]))){J[i+20>>2]=k;H[i+16|0]=u;J[i+8>>2]=h;J[i+12>>2]=d;j=J[i+132>>2];g=J[i+128>>2];m=j-g|0;h=m>>2;d=J[i+32>>2];f=J[i+24>>2];F:{if(h>>>0<=d-f>>2>>>0){m=J[i+28>>2]-f|0;d=m+g|0;q=m>>2;m=q>>>0>>0?d:j;u=m-g|0;if((g|0)!=(m|0)){xa(f,g,u)}if(h>>>0>q>>>0){h=J[i+28>>2];if((j|0)==(m|0)){break F}while(1){J[h>>2]=J[d>>2];h=h+4|0;d=d+4|0;if((j|0)!=(d|0)){continue}break}break F}h=f+u|0;break F}if(f){J[i+28>>2]=f;qa(f);J[i+32>>2]=0;J[i+24>>2]=0;J[i+28>>2]=0;d=0}if((m|0)<0){break y}f=d>>1;d=d>>>0>=2147483644?1073741823:f>>>0>h>>>0?f:h;if(d>>>0>=1073741824){break y}d=d<<2;h=ra(d);J[i+24>>2]=h;J[i+32>>2]=d+h;if((g|0)==(j|0)){break F}d=(m-4&-4)+4|0;h=ta(h,g,d)+d|0}J[i+28>>2]=h;d=J[i+44>>2];f=J[i+36>>2];G:{if(d-f>>2>>>0>=A>>>0){g=J[i+40>>2]-f|0;d=g+r|0;j=g>>2;g=j>>>0>>0?d:t;h=g-r|0;if((g|0)!=(r|0)){xa(f,r,h)}if(j>>>0>>0){h=J[i+40>>2];if((g|0)==(t|0)){break G}while(1){J[h>>2]=J[d>>2];h=h+4|0;d=d+4|0;if((t|0)!=(d|0)){continue}break}break G}h=f+h|0;break G}if(f){J[i+40>>2]=f;qa(f);J[i+44>>2]=0;J[i+36>>2]=0;J[i+40>>2]=0;d=0}if((M|0)<0){break x}f=d>>1;d=d>>>0>=2147483644?1073741823:f>>>0>A>>>0?f:A;if(d>>>0>=1073741824){break x}d=d<<2;h=ra(d);J[i+36>>2]=h;J[i+44>>2]=d+h;if((r|0)==(t|0)){break G}h=ta(h,r,S)+S|0}J[i+40>>2]=h}if((p|0)==(i+124|0)){break A}h=K[p|0];d=-1;while(1){j=h&255;f=d-1|0;g=f+o|0;h=K[g|0];if(j>>>0>h>>>0){f=o;while(1){f=f-1|0;j=K[f|0];if(j>>>0<=h>>>0){continue}break}H[g|0]=j;H[f|0]=h;if((d|0)==-1){continue B}h=d+o|0;d=p;while(1){f=K[h|0];H[h|0]=K[d|0];H[d|0]=f;d=d-1|0;h=h+1|0;if(d>>>0>h>>>0){continue}break}continue B}d=f;if((g|0)!=(i+124|0)){continue}break}break}f=i+124|0;h=f;d=p;if(f>>>0>=d>>>0){break A}while(1){f=K[h|0];H[h|0]=K[d|0];H[d|0]=f;d=d-1|0;h=h+1|0;if(d>>>0>h>>>0){continue}break}}k=k+1|0;if((l|0)!=(y|0)){continue}break}if(!n){break z}d=i+X|0;f=J[i+20>>2];h=f;g=f+J[d+72>>2]|0;f=J[d+76>>2]+(f>>31)|0;J[d+72>>2]=g;J[d+76>>2]=h>>>0>g>>>0?f+1|0:f}if(!e){break n}d=J[x>>2];h=0;f=J[i+36>>2];j=0;if(!I){break o}while(1){k=h<<2;g=J[k+f>>2];J[d+k>>2]=(g|0)<0?(g^-1)<<1|1:g<<1;k=k|4;g=J[k+f>>2];J[d+k>>2]=(g|0)<0?(g^-1)<<1|1:g<<1;h=h+2|0;j=j+2|0;if((F|0)!=(j|0)){continue}break}break o}ua();B()}ua();B()}va();B()}if(!G){break n}g=h<<2;f=J[g+f>>2];J[d+g>>2]=(f|0)<0?(f^-1)<<1|1:f<<1}Lc(i+200|0,L,J[x>>2],e);H:{if(C){break H}h=P(l,12)+a|0;d=0;while(1){I:{k=J[h+56>>2];j=k<<5;f=J[h+52>>2];J:{if(!(K[i+16|0]>>>d&1)){g=f;K:{if((f|0)!=(j|0)){break K}if((f+1|0)<0){break I}L:{if(f>>>0<=1073741822){k=k<<6;j=(f&-32)+32|0;k=j>>>0>>0?k:j;g=f;if(f>>>0>=k>>>0){break K}if((k|0)>=0){break L}break I}k=2147483647;g=-1;if(f>>>0>=2147483647){break K}}j=(k-1>>>5|0)+1|0;g=ra(j<<2);k=J[h+48>>2];J[g+((f>>>0>=33?f-1>>>5|0:0)<<2)>>2]=0;M:{N:{if(!f){break N}p=f>>>5<<2;o=xa(g,k,p);m=f&31;if(!m){break N}g=p+o|0;n=g;q=J[g>>2];g=-1>>>32-m|0;J[n>>2]=q&(g^-1)|g&J[k+p>>2];J[h+48>>2]=o;J[h+52>>2]=f;J[h+56>>2]=j;break M}J[h+48>>2]=g;J[h+52>>2]=f;J[h+56>>2]=j;g=f;if(!k){break K}}qa(k);g=J[h+52>>2]}J[h+52>>2]=g+1;f=J[h+48>>2]+(g>>>3&536870908)|0;J[f>>2]=J[f>>2]|1<>>0<=1073741822){k=k<<6;j=(f&-32)+32|0;k=j>>>0>>0?k:j;g=f;if(f>>>0>=k>>>0){break O}if((k|0)<0){break I}break P}k=2147483647;g=-1;if(f>>>0>=2147483647){break O}}j=(k-1>>>5|0)+1|0;g=ra(j<<2);k=J[h+48>>2];J[g+((f>>>0>=33?f-1>>>5|0:0)<<2)>>2]=0;Q:{R:{if(!f){break R}p=f>>>5<<2;o=xa(g,k,p);m=f&31;if(!m){break R}g=p+o|0;n=g;q=J[g>>2];g=-1>>>32-m|0;J[n>>2]=q&(g^-1)|g&J[k+p>>2];J[h+48>>2]=o;J[h+52>>2]=f;J[h+56>>2]=j;break Q}J[h+48>>2]=g;J[h+52>>2]=f;J[h+56>>2]=j;g=f;if(!k){break O}}qa(k);g=J[h+52>>2]}J[h+52>>2]=g+1;f=J[h+48>>2]+(g>>>3&536870908)|0;k=J[f>>2];ca=f,da=El(g)&k,J[ca>>2]=da}d=d+1|0;if((l|0)!=(d|0)){continue}break H}break}ua();B()}h=J[a+8>>2];if((h|0)>0){p=c+U|0;d=J[z>>2];k=0;j=J[i+24>>2];while(1){g=d;if((h|0)>0){g=J[z>>2];h=0;while(1){f=h<<2;l=J[f+j>>2];o=J[a+16>>2];S:{if((l|0)>(o|0)){J[f+g>>2]=o;break S}f=f+g|0;o=J[a+12>>2];if((o|0)>(l|0)){J[f>>2]=o;break S}J[f>>2]=l}h=h+1|0;if((h|0)>2]){continue}break}}l=k<<2;f=l+p|0;l=J[l+s>>2]-J[g+l>>2]|0;J[f>>2]=l;T:{if((l|0)>2]){h=l+J[a+20>>2]|0}else{if((l|0)<=J[a+24>>2]){break T}h=l-J[a+20>>2]|0}J[f>>2]=h}j=g;h=J[a+8>>2];k=k+1|0;if((h|0)>(k|0)){continue}break}}d=J[i+36>>2];if(d){J[i+40>>2]=d;qa(d)}d=J[i+24>>2];if(d){J[i+28>>2]=d;qa(d)}d=(E|0)>2;E=w;if(d){continue}break}break h}ua();B()}if((e|0)>0){sa(J[i+144>>2],0,e<<2)}h=J[a+8>>2];if((h|0)>0){d=J[a+32>>2];k=0;j=J[i+144>>2];while(1){g=d;if((h|0)>0){g=J[z>>2];h=0;while(1){e=h<<2;f=J[e+j>>2];l=J[a+16>>2];U:{if((f|0)>(l|0)){J[e+g>>2]=l;break U}e=e+g|0;l=J[a+12>>2];if((l|0)>(f|0)){J[e>>2]=l;break U}J[e>>2]=f}h=h+1|0;if((h|0)>2]){continue}break}}f=k<<2;e=f+c|0;f=J[b+f>>2]-J[f+g>>2]|0;J[e>>2]=f;V:{if((f|0)>2]){f=f+J[a+20>>2]|0}else{if((f|0)<=J[a+24>>2]){break V}f=f-J[a+20>>2]|0}J[e>>2]=f}j=g;h=J[a+8>>2];k=k+1|0;if((h|0)>(k|0)){continue}break}}if(r){qa(r)}a=J[i+128>>2];if(a){J[i+132>>2]=a;qa(a)}a=J[i+180>>2];if(a){J[i+184>>2]=a;qa(a)}a=J[i+168>>2];if(a){J[i+172>>2]=a;qa(a)}a=J[i+156>>2];if(a){J[i+160>>2]=a;qa(a)}a=J[i+144>>2];if(a){J[i+148>>2]=a;qa(a)}ea=i+224|0;return 1}function Ak(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,C=0,D=0,E=0,F=0,G=0,I=0,L=0,M=0,N=0,O=0,Q=0,S=0,U=0,X=0,Y=0,Z=0,_=0,$=0,aa=0,ba=0,ca=0,da=0;g=ea-240|0;ea=g;Y=J[a+36>>2];u=J[a+32>>2];J[g+184>>2]=0;J[g+188>>2]=0;J[g+176>>2]=0;J[g+180>>2]=0;J[g+168>>2]=0;J[g+172>>2]=0;J[g+160>>2]=0;J[g+164>>2]=0;J[g+152>>2]=0;J[g+156>>2]=0;J[g+144>>2]=0;J[g+148>>2]=0;if(e){Fa(g+144|0,e);h=J[g+156>>2];d=J[g+160>>2]}else{d=0}d=d-h>>2;a:{if(d>>>0>=e>>>0){if(d>>>0<=e>>>0){break a}J[g+160>>2]=(e<<2)+h;break a}Fa(g+144|12,e-d|0)}f=J[g+168>>2];d=J[g+172>>2]-f>>2;b:{if(d>>>0>=e>>>0){if(d>>>0<=e>>>0){break b}J[g+172>>2]=f+(e<<2);break b}Fa(g+168|0,e-d|0)}c:{d:{f=J[g+180>>2];d=J[g+184>>2]-f>>2;e:{f:{if(d>>>0>=e>>>0){if(d>>>0>e>>>0){J[g+184>>2]=f+(e<<2)}J[g+136>>2]=0;J[g+128>>2]=0;J[g+132>>2]=0;if(e){break f}d=1;break e}Fa(g+180|0,e-d|0);J[g+136>>2]=0;J[g+128>>2]=0;J[g+132>>2]=0}if(e>>>0>=1073741824){break d}d=e<<2;f=ra(d);J[g+128>>2]=f;i=d+f|0;J[g+136>>2]=i;sa(f,0,d);J[g+132>>2]=i;d=0}z=a+136|0;i=J[a+136>>2];f=J[a+140>>2]-i>>2;g:{h:{if(f>>>0>>0){Fa(z,e-f|0);J[g+104>>2]=0;J[g+108>>2]=0;J[g+96>>2]=0;J[g+100>>2]=0;J[g+88>>2]=0;J[g+92>>2]=0;J[g+80>>2]=0;J[g+84>>2]=0;J[g+72>>2]=0;J[g+76>>2]=0;d=g- -64|0;J[d>>2]=0;J[d+4>>2]=0;J[g+56>>2]=0;J[g+60>>2]=0;J[g+48>>2]=0;J[g+52>>2]=0;break h}if(e>>>0>>0){J[a+140>>2]=i+(e<<2)}J[g+104>>2]=0;J[g+108>>2]=0;J[g+96>>2]=0;J[g+100>>2]=0;J[g+88>>2]=0;J[g+92>>2]=0;J[g+80>>2]=0;J[g+84>>2]=0;J[g+72>>2]=0;J[g+76>>2]=0;f=g- -64|0;J[f>>2]=0;J[f+4>>2]=0;J[g+56>>2]=0;J[g+60>>2]=0;J[g+48>>2]=0;J[g+52>>2]=0;v=0;if(d){break g}}d=e<<2;r=ra(d);v=sa(r,0,d)+d|0}d=J[a+40>>2];d=J[d+4>>2]-J[d>>2]|0;if((d|0)<5){break c}I=e&-2;L=e&1;Z=e&-4;Q=e&3;M=e-1|0;S=e<<2;_=a+8|0;N=a+96|0;E=d>>>2|0;O=v-r|0;A=O>>2;U=(O-4&-4)+4|0;$=g+36|0;aa=g+24|0;while(1){d=J[a+40>>2];f=J[d>>2];i:{j:{y=E-1|0;if(y>>>0>2]-f>>2>>>0){d=0;m=0;k=J[f+(y<<2)>>2];k:{if((k|0)==-1){break k}l=1;i=k+2|0;m=(k>>>0)%3|0;w=m?k-1|0:i;x=1<>>5|0;f=0;F=(m|0)!=0|(i|0)!=-1;G=J[u>>2];i=k;while(1){l:{if(J[G+(i>>>3&536870908)>>2]>>>i&1){break l}m=J[J[J[u+64>>2]+12>>2]+(i<<2)>>2];if((m|0)==-1){break l}j=J[Y>>2];h=J[u+28>>2];s=J[j+(J[h+(m<<2)>>2]<<2)>>2];if((s|0)>=(y|0)){break l}n=m+1|0;o=J[j+(J[h+(((n>>>0)%3|0?n:m-2|0)<<2)>>2]<<2)>>2];if((o|0)>=(y|0)){break l}h=J[j+(J[h+(m+((m>>>0)%3|0?-1:2)<<2)>>2]<<2)>>2];if((h|0)>=(y|0)){break l}m:{if(!e){break m}m=J[(g+144|0)+P(f,12)>>2];n=P(e,h);o=P(e,o);s=P(e,s);h=0;j=0;if(M){while(1){J[m+(h<<2)>>2]=(J[(h+n<<2)+b>>2]+J[(h+o<<2)+b>>2]|0)-J[(h+s<<2)+b>>2];p=h|1;J[m+(p<<2)>>2]=(J[(n+p<<2)+b>>2]+J[(o+p<<2)+b>>2]|0)-J[(p+s<<2)+b>>2];h=h+2|0;j=j+2|0;if((I|0)!=(j|0)){continue}break}}if(!L){break m}J[m+(h<<2)>>2]=(J[(h+n<<2)+b>>2]+J[(h+o<<2)+b>>2]|0)-J[(h+s<<2)+b>>2]}m=4;f=f+1|0;if((f|0)==4){break k}}n:{if(l&1){h=i-2|0;m=i+1|0;i=-1;m=(m>>>0)%3|0?m:h;if((m|0)==-1|J[J[u>>2]+(m>>>3&536870908)>>2]>>>m&1){break n}m=J[J[J[u+64>>2]+12>>2]+(m<<2)>>2];if((m|0)==-1){break n}i=m+1|0;i=(i>>>0)%3|0?i:m-2|0;break n}o:{if((i>>>0)%3|0){h=i-1|0;break o}h=i+2|0;i=-1;if((h|0)==-1){break n}}i=-1;if(J[J[u>>2]+(h>>>3&536870908)>>2]>>>h&1){break n}m=J[J[J[u+64>>2]+12>>2]+(h<<2)>>2];if((m|0)==-1){break n}if((m>>>0)%3|0){i=m-1|0;break n}i=m+2|0}if((i|0)==(k|0)){m=f;break k}if(!((l^1)&1|(i|0)!=-1)){if(!F){m=f;break k}if(x&J[J[u>>2]+(C<<2)>>2]){m=f;break k}i=J[J[J[u+64>>2]+12>>2]+(w<<2)>>2];if((i|0)==-1){m=f;break k}l=0;i=(i>>>0)%3|0?i-1|0:i+2|0}m=f;if((i|0)!=-1){continue}break}}H[g+16|0]=0;J[g+8>>2]=0;J[g+12>>2]=0;J[g+44>>2]=0;J[g+36>>2]=0;J[g+40>>2]=0;J[g+28>>2]=0;J[g+32>>2]=0;J[g+20>>2]=0;J[g+24>>2]=0;G=P(e,y)<<2;s=G+b|0;h=(P(E-2|0,e)<<2)+b|0;l=J[z>>2];i=0;if(e){while(1){k=d<<2;f=J[k+h>>2]-J[k+s>>2]|0;J[k+r>>2]=f;J[k+l>>2]=(f|0)<0?(f^-1)<<1|1:f<<1;k=f;f=f>>31;i=((k^f)-f|0)+i|0;d=d+1|0;if((e|0)!=(d|0)){continue}break}}d=g+200|0;Eb(d,N,l,e);f=Db(d);k=fa;n=f;f=J[d+12>>2];d=J[d+16>>2];l=(((f-d|0)+1|0)/64|0)+d<<3;d=d<<3;j=d;f=l+d|0;d=(l>>31)+(d>>31)|0;d=f>>>0>>0?d+1|0:d;l=f;f=n+f|0;d=d+k|0;d=f>>>0>>0?d+1|0:d;k=f;C=(m|0)<=0;if(!C){j=(m<<3)-8|0;f=j+(g+48|0)|0;n=f;l=m+J[f>>2]|0;f=J[f+4>>2];f=l>>>0>>0?f+1|0:f;J[n>>2]=l;J[n+4>>2]=f;t=W(Fb(l,J[j+(g+80|0)>>2])*(+(l>>>0)+ +(f|0)*4294967296));p:{if(R(t)<0x8000000000000000){l=R(t)>=1?~~(t>0?T(V(t*2.3283064365386963e-10),4294967295):W((t-+(~~t>>>0>>>0))*2.3283064365386963e-10))>>>0:0;f=~~t>>>0;break p}l=-2147483648;f=0}f=f+k|0;k=f}J[g+20>>2]=0;H[g+16|0]=0;J[g+8>>2]=k;J[g+12>>2]=i;cb(aa,h,h+S|0);Uc($,r,v);q:{r:{s:{if(C){break s}k=(g+124|0)+m|0;f=k-1|0;X=m<<3;d=X-8|0;F=d+(g+48|0)|0;ba=d+(g+80|0)|0;l=1;w=0;while(1){d=g+124|0;sa(d,1,m);w=w+1|0;sa(d,0,w);t:{u:while(1){if(e){sa(J[g+128>>2],0,S)}j=0;d=J[g+128>>2];x=0;while(1){if(!K[(g+124|0)+j|0]){v:{if(!e){break v}i=J[(g+144|0)+P(j,12)>>2];n=0;h=0;o=0;if(e>>>0>3){while(1){p=h<<2;q=p+d|0;J[q>>2]=J[q>>2]+J[i+p>>2];q=p|4;D=q+d|0;J[D>>2]=J[D>>2]+J[i+q>>2];q=p|8;D=q+d|0;J[D>>2]=J[D>>2]+J[i+q>>2];p=p|12;q=p+d|0;J[q>>2]=J[q>>2]+J[i+p>>2];h=h+4|0;o=o+4|0;if((Z|0)!=(o|0)){continue}break}}if(!Q){break v}while(1){o=h<<2;p=o+d|0;J[p>>2]=J[p>>2]+J[i+o>>2];h=h+1|0;n=n+1|0;if((Q|0)!=(n|0)){continue}break}}x=1<>2];i=0;break w}h=0;i=J[g+128>>2];d=0;if(M){while(1){j=h<<2;n=j+i|0;J[n>>2]=J[n>>2]/(l|0);j=i+(j|4)|0;J[j>>2]=J[j>>2]/(l|0);h=h+2|0;d=d+2|0;if((I|0)!=(d|0)){continue}break}}if(L){d=i+(h<<2)|0;J[d>>2]=J[d>>2]/(l|0)}n=J[z>>2];d=0;i=0;if(!e){break w}o=J[g+128>>2];while(1){j=d<<2;h=J[j+o>>2]-J[j+s>>2]|0;J[j+r>>2]=h;J[j+n>>2]=(h|0)<0?(h^-1)<<1|1:h<<1;j=i;i=h>>31;i=j+((i^h)-i|0)|0;d=d+1|0;if((e|0)!=(d|0)){continue}break}}d=g+200|0;Eb(d,N,n,e);h=Db(d);n=h;h=J[d+12>>2];d=J[d+16>>2];j=(((h-d|0)+1|0)/64|0)+d<<3;d=d<<3;h=j+d|0;d=n+h|0;h=d;q=(m|0)>0;if(q){d=J[F+4>>2];j=J[F>>2];t=W(Fb(j,J[ba>>2]+l|0)*(+(j>>>0)+ +(d|0)*4294967296));x:{if(R(t)<0x8000000000000000){d=~~t>>>0;break x}d=0}h=d+h|0}d=J[g+8>>2];if(!((d|0)<=(h|0)&((d|0)<(h|0)|(i|0)>=J[g+12>>2]))){J[g+20>>2]=l;H[g+16|0]=x;J[g+8>>2]=h;J[g+12>>2]=i;n=J[g+132>>2];j=J[g+128>>2];o=n-j|0;h=o>>2;i=J[g+32>>2];d=J[g+24>>2];y:{if(h>>>0<=i-d>>2>>>0){o=J[g+28>>2]-d|0;i=o+j|0;x=o>>2;o=x>>>0>>0?i:n;p=o-j|0;if((j|0)!=(o|0)){xa(d,j,p)}if(h>>>0>x>>>0){h=J[g+28>>2];if((n|0)==(o|0)){break y}while(1){J[h>>2]=J[i>>2];h=h+4|0;i=i+4|0;if((n|0)!=(i|0)){continue}break}break y}h=d+p|0;break y}if(d){J[g+28>>2]=d;qa(d);J[g+32>>2]=0;J[g+24>>2]=0;J[g+28>>2]=0;i=0}if((o|0)<0){break r}d=i>>1;d=i>>>0>=2147483644?1073741823:d>>>0>h>>>0?d:h;if(d>>>0>=1073741824){break r}d=d<<2;h=ra(d);J[g+24>>2]=h;J[g+32>>2]=d+h;if((j|0)==(n|0)){break y}d=(o-4&-4)+4|0;h=ta(h,j,d)+d|0}J[g+28>>2]=h;i=J[g+44>>2];d=J[g+36>>2];z:{if(i-d>>2>>>0>=A>>>0){h=J[g+40>>2]-d|0;i=h+r|0;n=h>>2;j=n>>>0>>0?i:v;h=j-r|0;if((j|0)!=(r|0)){xa(d,r,h)}if(n>>>0>>0){h=J[g+40>>2];if((j|0)==(v|0)){break z}while(1){J[h>>2]=J[i>>2];h=h+4|0;i=i+4|0;if((v|0)!=(i|0)){continue}break}break z}h=d+h|0;break z}if(d){J[g+40>>2]=d;qa(d);J[g+44>>2]=0;J[g+36>>2]=0;J[g+40>>2]=0;i=0}if((O|0)<0){break q}d=i>>1;d=i>>>0>=2147483644?1073741823:d>>>0>A>>>0?d:A;if(d>>>0>=1073741824){break q}d=d<<2;h=ra(d);J[g+36>>2]=h;J[g+44>>2]=d+h;if((r|0)==(v|0)){break z}h=ta(h,r,U)+U|0}J[g+40>>2]=h}if((f|0)==(g+124|0)){break t}h=K[f|0];i=-1;while(1){n=h&255;d=i-1|0;j=d+k|0;h=K[j|0];if(n>>>0>h>>>0){d=k;while(1){d=d-1|0;n=K[d|0];if(n>>>0<=h>>>0){continue}break}H[j|0]=n;H[d|0]=h;if((i|0)==-1){continue u}h=i+k|0;i=f;while(1){d=K[h|0];H[h|0]=K[i|0];H[i|0]=d;h=h+1|0;i=i-1|0;if(h>>>0>>0){continue}break}continue u}i=d;if((j|0)!=(g+124|0)){continue}break}break}d=g+124|0;h=d;i=f;if(d>>>0>=f>>>0){break t}while(1){d=K[h|0];H[h|0]=K[i|0];H[i|0]=d;h=h+1|0;i=i-1|0;if(h>>>0>>0){continue}break}}l=l+1|0;if((m|0)!=(w|0)){continue}break}if(!q){break s}d=g+X|0;i=d;k=J[g+20>>2];f=k+J[d+72>>2]|0;d=J[d+76>>2]+(k>>31)|0;J[i+72>>2]=f;J[i+76>>2]=f>>>0>>0?d+1|0:d}if(!e){break i}d=J[z>>2];h=0;f=J[g+36>>2];o=0;if(!M){break j}while(1){k=h<<2;i=J[k+f>>2];J[d+k>>2]=(i|0)<0?(i^-1)<<1|1:i<<1;k=k|4;i=J[k+f>>2];J[d+k>>2]=(i|0)<0?(i^-1)<<1|1:i<<1;h=h+2|0;o=o+2|0;if((I|0)!=(o|0)){continue}break}break j}ua();B()}ua();B()}va();B()}if(!L){break i}i=h<<2;f=J[i+f>>2];J[d+i>>2]=(f|0)<0?(f^-1)<<1|1:f<<1}Lc(g+200|0,N,J[z>>2],e);A:{if(C){break A}k=P(m,12)+a|0;i=0;while(1){B:{h=J[k+40>>2];l=h<<5;d=J[k+36>>2];C:{if(!(K[g+16|0]>>>i&1)){f=d;D:{if((d|0)!=(l|0)){break D}if((d+1|0)<0){break B}E:{if(d>>>0<=1073741822){h=h<<6;l=(d&-32)+32|0;l=h>>>0>l>>>0?h:l;f=d;if(d>>>0>=l>>>0){break D}if((l|0)>=0){break E}break B}l=2147483647;f=-1;if(d>>>0>=2147483647){break D}}l=(l-1>>>5|0)+1|0;f=ra(l<<2);h=J[k+32>>2];J[f+((d>>>0>=33?d-1>>>5|0:0)<<2)>>2]=0;F:{G:{if(!d){break G}j=d>>>5<<2;n=xa(f,h,j);o=d&31;if(!o){break G}f=j+n|0;p=f;q=J[f>>2];f=-1>>>32-o|0;J[p>>2]=q&(f^-1)|f&J[h+j>>2];J[k+32>>2]=n;J[k+36>>2]=d;J[k+40>>2]=l;break F}J[k+32>>2]=f;J[k+36>>2]=d;J[k+40>>2]=l;f=d;if(!h){break D}}qa(h);f=J[k+36>>2]}J[k+36>>2]=f+1;d=J[k+32>>2]+(f>>>3&536870908)|0;J[d>>2]=J[d>>2]|1<>>0<=1073741822){h=h<<6;l=(d&-32)+32|0;l=h>>>0>l>>>0?h:l;f=d;if(d>>>0>=l>>>0){break H}if((l|0)<0){break B}break I}l=2147483647;f=-1;if(d>>>0>=2147483647){break H}}l=(l-1>>>5|0)+1|0;f=ra(l<<2);h=J[k+32>>2];J[f+((d>>>0>=33?d-1>>>5|0:0)<<2)>>2]=0;J:{K:{if(!d){break K}j=d>>>5<<2;n=xa(f,h,j);o=d&31;if(!o){break K}f=j+n|0;p=f;q=J[f>>2];f=-1>>>32-o|0;J[p>>2]=q&(f^-1)|f&J[h+j>>2];J[k+32>>2]=n;J[k+36>>2]=d;J[k+40>>2]=l;break J}J[k+32>>2]=f;J[k+36>>2]=d;J[k+40>>2]=l;f=d;if(!h){break H}}qa(h);f=J[k+36>>2]}J[k+36>>2]=f+1;d=J[k+32>>2]+(f>>>3&536870908)|0;h=J[d>>2];ca=d,da=El(f)&h,J[ca>>2]=da}i=i+1|0;if((m|0)!=(i|0)){continue}break A}break}ua();B()}d=J[g+24>>2];f=J[d>>2];d=J[d+4>>2];i=J[s+4>>2];J[g+232>>2]=J[s>>2];J[g+236>>2]=i;J[g+224>>2]=f;J[g+228>>2]=d;_a(g+200|0,_,g+232|0,g+224|0);d=c+G|0;J[d>>2]=J[g+200>>2];J[d+4>>2]=J[g+204>>2];d=J[g+36>>2];if(d){J[g+40>>2]=d;qa(d)}d=J[g+24>>2];if(d){J[g+28>>2]=d;qa(d)}d=(E|0)>2;E=y;if(d){continue}break}break c}ua();B()}d=J[g+144>>2];if((e|0)>0){sa(d,0,e<<2)}e=J[d>>2];d=J[d+4>>2];f=J[b+4>>2];J[g+200>>2]=J[b>>2];J[g+204>>2]=f;J[g+232>>2]=e;J[g+236>>2]=d;_a(g+8|0,a+8|0,g+200|0,g+232|0);J[c>>2]=J[g+8>>2];J[c+4>>2]=J[g+12>>2];if(r){qa(r)}a=J[g+128>>2];if(a){J[g+132>>2]=a;qa(a)}a=J[g+180>>2];if(a){J[g+184>>2]=a;qa(a)}a=J[g+168>>2];if(a){J[g+172>>2]=a;qa(a)}a=J[g+156>>2];if(a){J[g+160>>2]=a;qa(a)}a=J[g+144>>2];if(a){J[g+148>>2]=a;qa(a)}ea=g+240|0;return 1}function ok(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,C=0,D=0,E=0,F=0,G=0,I=0,L=0,M=0,N=0,O=0,Q=0,S=0,U=0,X=0,Y=0,Z=0,_=0,$=0,aa=0,ba=0,ca=0,da=0;g=ea-240|0;ea=g;Y=J[a+36>>2];M=J[a+32>>2];J[g+184>>2]=0;J[g+188>>2]=0;J[g+176>>2]=0;J[g+180>>2]=0;J[g+168>>2]=0;J[g+172>>2]=0;J[g+160>>2]=0;J[g+164>>2]=0;J[g+152>>2]=0;J[g+156>>2]=0;J[g+144>>2]=0;J[g+148>>2]=0;if(e){Fa(g+144|0,e);h=J[g+156>>2];d=J[g+160>>2]}else{d=0}d=d-h>>2;a:{if(d>>>0>=e>>>0){if(d>>>0<=e>>>0){break a}J[g+160>>2]=(e<<2)+h;break a}Fa(g+144|12,e-d|0)}f=J[g+168>>2];d=J[g+172>>2]-f>>2;b:{if(d>>>0>=e>>>0){if(d>>>0<=e>>>0){break b}J[g+172>>2]=f+(e<<2);break b}Fa(g+168|0,e-d|0)}c:{d:{f=J[g+180>>2];d=J[g+184>>2]-f>>2;e:{f:{if(d>>>0>=e>>>0){if(d>>>0>e>>>0){J[g+184>>2]=f+(e<<2)}J[g+136>>2]=0;J[g+128>>2]=0;J[g+132>>2]=0;if(e){break f}d=1;break e}Fa(g+180|0,e-d|0);J[g+136>>2]=0;J[g+128>>2]=0;J[g+132>>2]=0}if(e>>>0>=1073741824){break d}d=e<<2;f=ra(d);J[g+128>>2]=f;i=d+f|0;J[g+136>>2]=i;sa(f,0,d);J[g+132>>2]=i;d=0}x=a+136|0;i=J[a+136>>2];f=J[a+140>>2]-i>>2;g:{h:{if(f>>>0>>0){Fa(x,e-f|0);J[g+104>>2]=0;J[g+108>>2]=0;J[g+96>>2]=0;J[g+100>>2]=0;J[g+88>>2]=0;J[g+92>>2]=0;J[g+80>>2]=0;J[g+84>>2]=0;J[g+72>>2]=0;J[g+76>>2]=0;d=g- -64|0;J[d>>2]=0;J[d+4>>2]=0;J[g+56>>2]=0;J[g+60>>2]=0;J[g+48>>2]=0;J[g+52>>2]=0;break h}if(e>>>0>>0){J[a+140>>2]=i+(e<<2)}J[g+104>>2]=0;J[g+108>>2]=0;J[g+96>>2]=0;J[g+100>>2]=0;J[g+88>>2]=0;J[g+92>>2]=0;J[g+80>>2]=0;J[g+84>>2]=0;J[g+72>>2]=0;J[g+76>>2]=0;f=g- -64|0;J[f>>2]=0;J[f+4>>2]=0;J[g+56>>2]=0;J[g+60>>2]=0;J[g+48>>2]=0;J[g+52>>2]=0;v=0;if(d){break g}}d=e<<2;t=ra(d);v=sa(t,0,d)+d|0}d=J[a+40>>2];d=J[d+4>>2]-J[d>>2]|0;if((d|0)<5){break c}E=e&-2;F=e&1;Z=e&-4;N=e&3;G=e-1|0;O=e<<2;_=a+8|0;I=a+96|0;D=d>>>2|0;L=v-t|0;z=L>>2;Q=(L-4&-4)+4|0;$=g+36|0;aa=g+24|0;while(1){d=J[a+40>>2];f=J[d>>2];i:{j:{w=D-1|0;if(w>>>0>2]-f>>2>>>0){d=0;m=0;k=J[f+(w<<2)>>2];k:{if((k|0)==-1){break k}n=J[M+12>>2];i=k+2|0;m=(k>>>0)%3|0;y=n+((m?k-1|0:i)<<2)|0;f=0;A=(m|0)!=0|(i|0)!=-1;p=1;i=k;while(1){m=J[n+(i<<2)>>2];l:{if((m|0)==-1){break l}j=-1;q=J[Y>>2];l=J[M>>2];h=q+(J[l+(m<<2)>>2]<<2)|0;r=m+1|0;r=(r>>>0)%3|0?r:m-2|0;if((r|0)!=-1){j=J[l+(r<<2)>>2]}r=J[h>>2];m:{n:{if((m>>>0)%3|0){h=m-1|0;break n}h=m+2|0;o=-1;if((h|0)==-1){break m}}o=J[l+(h<<2)>>2]}if((r|0)>=(w|0)){break l}h=J[q+(j<<2)>>2];if((h|0)>=(w|0)){break l}j=J[q+(o<<2)>>2];if((j|0)>=(w|0)){break l}m=J[(g+144|0)+P(f,12)>>2];o:{if(!e){break o}j=P(e,j);q=P(e,h);r=P(e,r);h=0;l=0;if(G){while(1){J[m+(h<<2)>>2]=(J[(h+j<<2)+b>>2]+J[(h+q<<2)+b>>2]|0)-J[(h+r<<2)+b>>2];o=h|1;J[m+(o<<2)>>2]=(J[(j+o<<2)+b>>2]+J[(q+o<<2)+b>>2]|0)-J[(o+r<<2)+b>>2];h=h+2|0;l=l+2|0;if((E|0)!=(l|0)){continue}break}}if(!F){break o}J[m+(h<<2)>>2]=(J[(h+j<<2)+b>>2]+J[(h+q<<2)+b>>2]|0)-J[(h+r<<2)+b>>2]}m=4;f=f+1|0;if((f|0)==4){break k}}p:{if(p&1){h=i+1|0;i=(h>>>0)%3|0?h:i-2|0;m=-1;if((i|0)==-1){break p}i=J[n+(i<<2)>>2];m=-1;if((i|0)==-1){break p}m=i+1|0;m=(m>>>0)%3|0?m:i-2|0;break p}q:{if((i>>>0)%3|0){h=i-1|0;break q}h=i+2|0;m=-1;if((h|0)==-1){break p}}i=J[n+(h<<2)>>2];m=-1;if((i|0)==-1){break p}m=i-1|0;if((i>>>0)%3|0){break p}m=i+2|0}i=m;if((k|0)==(i|0)){m=f;break k}if(!((p^1)&1|(i|0)!=-1)){if(!A){m=f;break k}i=J[y>>2];if((i|0)==-1){m=f;break k}p=0;i=(i>>>0)%3|0?i-1|0:i+2|0}m=f;if((i|0)!=-1){continue}break}}H[g+16|0]=0;J[g+8>>2]=0;J[g+12>>2]=0;J[g+44>>2]=0;J[g+36>>2]=0;J[g+40>>2]=0;J[g+28>>2]=0;J[g+32>>2]=0;J[g+20>>2]=0;J[g+24>>2]=0;S=P(e,w)<<2;r=S+b|0;n=(P(D-2|0,e)<<2)+b|0;k=J[x>>2];h=0;if(e){while(1){i=d<<2;f=J[i+n>>2]-J[i+r>>2]|0;J[i+t>>2]=f;J[i+k>>2]=(f|0)<0?(f^-1)<<1|1:f<<1;i=f;f=f>>31;h=((i^f)-f|0)+h|0;d=d+1|0;if((e|0)!=(d|0)){continue}break}}d=g+200|0;Eb(d,I,k,e);f=Db(d);i=fa;l=f;f=J[d+12>>2];d=J[d+16>>2];k=(((f-d|0)+1|0)/64|0)+d<<3;d=d<<3;j=d;f=k+d|0;d=(k>>31)+(d>>31)|0;d=f>>>0>>0?d+1|0:d;k=f;f=l+f|0;i=d+i|0;i=f>>>0>>0?i+1|0:i;k=f;d=i;A=(m|0)<=0;if(!A){j=(m<<3)-8|0;f=j+(g+48|0)|0;l=f;i=m+J[f>>2]|0;f=J[f+4>>2];f=i>>>0>>0?f+1|0:f;J[l>>2]=i;J[l+4>>2]=f;u=W(Fb(i,J[j+(g+80|0)>>2])*(+(i>>>0)+ +(f|0)*4294967296));r:{if(R(u)<0x8000000000000000){i=R(u)>=1?~~(u>0?T(V(u*2.3283064365386963e-10),4294967295):W((u-+(~~u>>>0>>>0))*2.3283064365386963e-10))>>>0:0;f=~~u>>>0;break r}i=-2147483648;f=0}f=f+k|0;k=f}J[g+20>>2]=0;H[g+16|0]=0;J[g+8>>2]=k;J[g+12>>2]=h;cb(aa,n,n+O|0);Uc($,t,v);s:{t:{u:{if(A){break u}n=(g+124|0)+m|0;k=n-1|0;U=m<<3;d=U-8|0;X=d+(g+48|0)|0;ba=d+(g+80|0)|0;f=1;y=0;while(1){d=g+124|0;sa(d,1,m);y=y+1|0;sa(d,0,y);v:{w:while(1){if(e){sa(J[g+128>>2],0,O)}l=0;d=J[g+128>>2];p=0;while(1){if(!K[(g+124|0)+l|0]){x:{if(!e){break x}q=J[(g+144|0)+P(l,12)>>2];i=0;h=0;j=0;if(e>>>0>3){while(1){o=h<<2;s=o+d|0;J[s>>2]=J[s>>2]+J[q+o>>2];s=o|4;C=s+d|0;J[C>>2]=J[C>>2]+J[q+s>>2];s=o|8;C=s+d|0;J[C>>2]=J[C>>2]+J[q+s>>2];o=o|12;s=o+d|0;J[s>>2]=J[s>>2]+J[q+o>>2];h=h+4|0;j=j+4|0;if((Z|0)!=(j|0)){continue}break}}if(!N){break x}while(1){j=h<<2;o=j+d|0;J[o>>2]=J[o>>2]+J[j+q>>2];h=h+1|0;i=i+1|0;if((N|0)!=(i|0)){continue}break}}p=1<>2];h=0;break y}h=0;i=J[g+128>>2];d=0;if(G){while(1){j=h<<2;l=j+i|0;J[l>>2]=J[l>>2]/(f|0);j=i+(j|4)|0;J[j>>2]=J[j>>2]/(f|0);h=h+2|0;d=d+2|0;if((E|0)!=(d|0)){continue}break}}if(F){d=i+(h<<2)|0;J[d>>2]=J[d>>2]/(f|0)}i=J[x>>2];d=0;h=0;if(!e){break y}q=J[g+128>>2];while(1){l=d<<2;j=J[l+q>>2]-J[l+r>>2]|0;J[l+t>>2]=j;J[i+l>>2]=(j|0)<0?(j^-1)<<1|1:j<<1;l=h;h=j>>31;h=l+((h^j)-h|0)|0;d=d+1|0;if((e|0)!=(d|0)){continue}break}}d=h;h=g+200|0;Eb(h,I,i,e);i=Db(h);l=i;i=J[h+16>>2];j=(((J[h+12>>2]-i|0)+1|0)/64|0)+i<<3;i=i<<3;h=j+i|0;i=l+h|0;h=i;o=(m|0)>0;if(o){i=J[X+4>>2];j=J[X>>2];u=W(Fb(j,J[ba>>2]+f|0)*(+(j>>>0)+ +(i|0)*4294967296));z:{if(R(u)<0x8000000000000000){i=~~u>>>0;break z}i=0}h=i+h|0}i=J[g+8>>2];if(!((i|0)<=(h|0)&((h|0)>(i|0)|(d|0)>=J[g+12>>2]))){J[g+20>>2]=f;H[g+16|0]=p;J[g+8>>2]=h;J[g+12>>2]=d;l=J[g+132>>2];j=J[g+128>>2];p=l-j|0;h=p>>2;i=J[g+32>>2];d=J[g+24>>2];A:{if(h>>>0<=i-d>>2>>>0){p=J[g+28>>2]-d|0;i=p+j|0;s=p>>2;p=s>>>0>>0?i:l;q=p-j|0;if((j|0)!=(p|0)){xa(d,j,q)}if(h>>>0>s>>>0){h=J[g+28>>2];if((l|0)==(p|0)){break A}while(1){J[h>>2]=J[i>>2];h=h+4|0;i=i+4|0;if((l|0)!=(i|0)){continue}break}break A}h=d+q|0;break A}if(d){J[g+28>>2]=d;qa(d);J[g+32>>2]=0;J[g+24>>2]=0;J[g+28>>2]=0;i=0}if((p|0)<0){break t}d=i>>1;d=i>>>0>=2147483644?1073741823:d>>>0>h>>>0?d:h;if(d>>>0>=1073741824){break t}d=d<<2;h=ra(d);J[g+24>>2]=h;J[g+32>>2]=d+h;if((j|0)==(l|0)){break A}d=(p-4&-4)+4|0;h=ta(h,j,d)+d|0}J[g+28>>2]=h;i=J[g+44>>2];d=J[g+36>>2];B:{if(i-d>>2>>>0>=z>>>0){h=J[g+40>>2]-d|0;i=h+t|0;l=h>>2;j=l>>>0>>0?i:v;h=j-t|0;if((j|0)!=(t|0)){xa(d,t,h)}if(l>>>0>>0){h=J[g+40>>2];if((j|0)==(v|0)){break B}while(1){J[h>>2]=J[i>>2];h=h+4|0;i=i+4|0;if((v|0)!=(i|0)){continue}break}break B}h=d+h|0;break B}if(d){J[g+40>>2]=d;qa(d);J[g+44>>2]=0;J[g+36>>2]=0;J[g+40>>2]=0;i=0}if((L|0)<0){break s}d=i>>1;d=i>>>0>=2147483644?1073741823:d>>>0>z>>>0?d:z;if(d>>>0>=1073741824){break s}d=d<<2;h=ra(d);J[g+36>>2]=h;J[g+44>>2]=d+h;if((t|0)==(v|0)){break B}h=ta(h,t,Q)+Q|0}J[g+40>>2]=h}if((k|0)==(g+124|0)){break v}h=K[k|0];i=-1;while(1){l=h&255;d=i-1|0;j=d+n|0;h=K[j|0];if(l>>>0>h>>>0){d=n;while(1){d=d-1|0;l=K[d|0];if(l>>>0<=h>>>0){continue}break}H[j|0]=l;H[d|0]=h;if((i|0)==-1){continue w}h=i+n|0;i=k;while(1){d=K[h|0];H[h|0]=K[i|0];H[i|0]=d;h=h+1|0;i=i-1|0;if(h>>>0>>0){continue}break}continue w}i=d;if((j|0)!=(g+124|0)){continue}break}break}d=g+124|0;h=d;i=k;if(d>>>0>=i>>>0){break v}while(1){d=K[h|0];H[h|0]=K[i|0];H[i|0]=d;h=h+1|0;i=i-1|0;if(h>>>0>>0){continue}break}}f=f+1|0;if((m|0)!=(y|0)){continue}break}if(!o){break u}d=g+U|0;i=d;h=J[g+20>>2];f=h+J[d+72>>2]|0;d=J[d+76>>2]+(h>>31)|0;J[i+72>>2]=f;J[i+76>>2]=f>>>0>>0?d+1|0:d}if(!e){break i}d=J[x>>2];h=0;f=J[g+36>>2];j=0;if(!G){break j}while(1){k=h<<2;i=J[k+f>>2];J[d+k>>2]=(i|0)<0?(i^-1)<<1|1:i<<1;k=k|4;i=J[k+f>>2];J[d+k>>2]=(i|0)<0?(i^-1)<<1|1:i<<1;h=h+2|0;j=j+2|0;if((E|0)!=(j|0)){continue}break}break j}ua();B()}ua();B()}va();B()}if(!F){break i}i=h<<2;f=J[i+f>>2];J[d+i>>2]=(f|0)<0?(f^-1)<<1|1:f<<1}Lc(g+200|0,I,J[x>>2],e);C:{if(A){break C}h=P(m,12)+a|0;i=0;while(1){D:{k=J[h+40>>2];n=k<<5;d=J[h+36>>2];E:{if(!(K[g+16|0]>>>i&1)){f=d;F:{if((d|0)!=(n|0)){break F}if((d+1|0)<0){break D}G:{if(d>>>0<=1073741822){k=k<<6;n=(d&-32)+32|0;k=k>>>0>n>>>0?k:n;f=d;if(d>>>0>=k>>>0){break F}if((k|0)>=0){break G}break D}k=2147483647;f=-1;if(d>>>0>=2147483647){break F}}n=(k-1>>>5|0)+1|0;f=ra(n<<2);k=J[h+32>>2];J[f+((d>>>0>=33?d-1>>>5|0:0)<<2)>>2]=0;H:{I:{if(!d){break I}j=d>>>5<<2;l=xa(f,k,j);p=d&31;if(!p){break I}f=j+l|0;o=f;q=J[f>>2];f=-1>>>32-p|0;J[o>>2]=q&(f^-1)|f&J[k+j>>2];J[h+32>>2]=l;J[h+36>>2]=d;J[h+40>>2]=n;break H}J[h+32>>2]=f;J[h+36>>2]=d;J[h+40>>2]=n;f=d;if(!k){break F}}qa(k);f=J[h+36>>2]}J[h+36>>2]=f+1;d=J[h+32>>2]+(f>>>3&536870908)|0;J[d>>2]=J[d>>2]|1<>>0<=1073741822){k=k<<6;n=(d&-32)+32|0;k=k>>>0>n>>>0?k:n;f=d;if(d>>>0>=k>>>0){break J}if((k|0)<0){break D}break K}k=2147483647;f=-1;if(d>>>0>=2147483647){break J}}n=(k-1>>>5|0)+1|0;f=ra(n<<2);k=J[h+32>>2];J[f+((d>>>0>=33?d-1>>>5|0:0)<<2)>>2]=0;L:{M:{if(!d){break M}j=d>>>5<<2;l=xa(f,k,j);p=d&31;if(!p){break M}f=j+l|0;o=f;q=J[f>>2];f=-1>>>32-p|0;J[o>>2]=q&(f^-1)|f&J[k+j>>2];J[h+32>>2]=l;J[h+36>>2]=d;J[h+40>>2]=n;break L}J[h+32>>2]=f;J[h+36>>2]=d;J[h+40>>2]=n;f=d;if(!k){break J}}qa(k);f=J[h+36>>2]}J[h+36>>2]=f+1;d=J[h+32>>2]+(f>>>3&536870908)|0;k=J[d>>2];ca=d,da=El(f)&k,J[ca>>2]=da}i=i+1|0;if((m|0)!=(i|0)){continue}break C}break}ua();B()}d=J[g+24>>2];f=J[d>>2];d=J[d+4>>2];i=J[r+4>>2];J[g+232>>2]=J[r>>2];J[g+236>>2]=i;J[g+224>>2]=f;J[g+228>>2]=d;_a(g+200|0,_,g+232|0,g+224|0);d=c+S|0;J[d>>2]=J[g+200>>2];J[d+4>>2]=J[g+204>>2];d=J[g+36>>2];if(d){J[g+40>>2]=d;qa(d)}d=J[g+24>>2];if(d){J[g+28>>2]=d;qa(d)}d=(D|0)>2;D=w;if(d){continue}break}break c}ua();B()}d=J[g+144>>2];if((e|0)>0){sa(d,0,e<<2)}e=J[d>>2];d=J[d+4>>2];f=J[b+4>>2];J[g+200>>2]=J[b>>2];J[g+204>>2]=f;J[g+232>>2]=e;J[g+236>>2]=d;_a(g+8|0,a+8|0,g+200|0,g+232|0);J[c>>2]=J[g+8>>2];J[c+4>>2]=J[g+12>>2];if(t){qa(t)}a=J[g+128>>2];if(a){J[g+132>>2]=a;qa(a)}a=J[g+180>>2];if(a){J[g+184>>2]=a;qa(a)}a=J[g+168>>2];if(a){J[g+172>>2]=a;qa(a)}a=J[g+156>>2];if(a){J[g+160>>2]=a;qa(a)}a=J[g+144>>2];if(a){J[g+148>>2]=a;qa(a)}ea=g+240|0;return 1}function Ee(a){a=a|0;var b=0,c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0;l=ea-16|0;ea=l;a:{b:{c:{d:{e:{f:{g:{h:{i:{j:{k:{if(a>>>0<=244){e=J[4847];h=a>>>0<11?16:a+11&-8;c=h>>>3|0;b=e>>>c|0;if(b&3){c=c+((b^-1)&1)|0;a=c<<3;b=a+19428|0;d=J[a+19436>>2];a=J[d+8>>2];l:{if((b|0)==(a|0)){m=19388,n=El(c)&e,J[m>>2]=n;break l}J[a+12>>2]=b;J[b+8>>2]=a}a=d+8|0;b=c<<3;J[d+4>>2]=b|3;b=b+d|0;J[b+4>>2]=J[b+4>>2]|1;break a}k=J[4849];if(k>>>0>=h>>>0){break k}if(b){a=2<>>12&16;c=a;b=b>>>a|0;a=b>>>5&8;c=c|a;b=b>>>a|0;a=b>>>2&4;c=c|a;b=b>>>a|0;a=b>>>1&2;c=c|a;b=b>>>a|0;a=b>>>1&1;d=(c|a)+(b>>>a|0)|0;a=d<<3;b=a+19428|0;g=J[a+19436>>2];a=J[g+8>>2];m:{if((b|0)==(a|0)){e=El(d)&e;J[4847]=e;break m}J[a+12>>2]=b;J[b+8>>2]=a}J[g+4>>2]=h|3;c=g+h|0;a=d<<3;d=a-h|0;J[c+4>>2]=d|1;J[a+g>>2]=d;if(k){b=(k&-8)+19428|0;f=J[4852];a=1<<(k>>>3);n:{if(!(a&e)){J[4847]=a|e;a=b;break n}a=J[b+8>>2]}J[b+8>>2]=f;J[a+12>>2]=f;J[f+12>>2]=b;J[f+8>>2]=a}a=g+8|0;J[4852]=c;J[4849]=d;break a}j=J[4848];if(!j){break k}b=j-1&(j^-1);a=b>>>12&16;c=a;b=b>>>a|0;a=b>>>5&8;c=c|a;b=b>>>a|0;a=b>>>2&4;c=c|a;b=b>>>a|0;a=b>>>1&2;c=c|a;b=b>>>a|0;a=b>>>1&1;c=J[((c|a)+(b>>>a|0)<<2)+19692>>2];f=(J[c+4>>2]&-8)-h|0;b=c;while(1){o:{a=J[b+16>>2];if(!a){a=J[b+20>>2];if(!a){break o}}b=(J[a+4>>2]&-8)-h|0;d=b>>>0>>0;f=d?b:f;c=d?a:c;b=a;continue}break}i=J[c+24>>2];d=J[c+12>>2];if((d|0)!=(c|0)){a=J[c+8>>2];J[a+12>>2]=d;J[d+8>>2]=a;break b}b=c+20|0;a=J[b>>2];if(!a){a=J[c+16>>2];if(!a){break j}b=c+16|0}while(1){g=b;d=a;b=a+20|0;a=J[b>>2];if(a){continue}b=d+16|0;a=J[d+16>>2];if(a){continue}break}J[g>>2]=0;break b}h=-1;if(a>>>0>4294967231){break k}a=a+11|0;h=a&-8;j=J[4848];if(!j){break k}f=0-h|0;e=0;p:{if(h>>>0<256){break p}e=31;if(h>>>0>16777215){break p}a=a>>>8|0;g=a+1048320>>>16&8;a=a<>>16&4;a=a<>>16&2;a=(a<>>15|0)-(b|(c|g))|0;e=(a<<1|h>>>a+21&1)+28|0}b=J[(e<<2)+19692>>2];q:{r:{s:{if(!b){a=0;break s}a=0;c=h<<((e|0)!=31?25-(e>>>1|0)|0:0);while(1){t:{g=(J[b+4>>2]&-8)-h|0;if(g>>>0>=f>>>0){break t}d=b;f=g;if(f){break t}f=0;a=b;break r}g=J[b+20>>2];b=J[((c>>>29&4)+b|0)+16>>2];a=g?(g|0)==(b|0)?a:g:a;c=c<<1;if(b){continue}break}}if(!(a|d)){d=0;a=2<>>12&16;c=a;b=b>>>a|0;a=b>>>5&8;c=c|a;b=b>>>a|0;a=b>>>2&4;c=c|a;b=b>>>a|0;a=b>>>1&2;c=c|a;b=b>>>a|0;a=b>>>1&1;a=J[((c|a)+(b>>>a|0)<<2)+19692>>2]}if(!a){break q}}while(1){b=(J[a+4>>2]&-8)-h|0;c=b>>>0>>0;f=c?b:f;d=c?a:d;b=J[a+16>>2];if(b){a=b}else{a=J[a+20>>2]}if(a){continue}break}}if(!d|J[4849]-h>>>0<=f>>>0){break k}e=J[d+24>>2];c=J[d+12>>2];if((d|0)!=(c|0)){a=J[d+8>>2];J[a+12>>2]=c;J[c+8>>2]=a;break c}b=d+20|0;a=J[b>>2];if(!a){a=J[d+16>>2];if(!a){break i}b=d+16|0}while(1){g=b;c=a;b=a+20|0;a=J[b>>2];if(a){continue}b=c+16|0;a=J[c+16>>2];if(a){continue}break}J[g>>2]=0;break c}c=J[4849];if(c>>>0>=h>>>0){d=J[4852];b=c-h|0;u:{if(b>>>0>=16){J[4849]=b;a=d+h|0;J[4852]=a;J[a+4>>2]=b|1;J[c+d>>2]=b;J[d+4>>2]=h|3;break u}J[4852]=0;J[4849]=0;J[d+4>>2]=c|3;a=c+d|0;J[a+4>>2]=J[a+4>>2]|1}a=d+8|0;break a}i=J[4850];if(i>>>0>h>>>0){b=i-h|0;J[4850]=b;c=J[4853];a=c+h|0;J[4853]=a;J[a+4>>2]=b|1;J[c+4>>2]=h|3;a=c+8|0;break a}a=0;j=h+47|0;if(J[4965]){c=J[4967]}else{J[4968]=-1;J[4969]=-1;J[4966]=4096;J[4967]=4096;J[4965]=l+12&-16^1431655768;J[4970]=0;J[4958]=0;c=4096}g=j+c|0;f=0-c|0;b=g&f;if(b>>>0<=h>>>0){break a}d=J[4957];if(d){c=J[4955];e=c+b|0;if(d>>>0>>0|c>>>0>=e>>>0){break a}}if(K[19832]&4){break f}v:{w:{d=J[4853];if(d){a=19836;while(1){c=J[a>>2];if(c>>>0<=d>>>0&d>>>0>2]>>>0){break w}a=J[a+8>>2];if(a){continue}break}}c=Hb(0);if((c|0)==-1){break g}e=b;d=J[4966];a=d-1|0;if(a&c){e=(b-c|0)+(a+c&0-d)|0}if(e>>>0<=h>>>0|e>>>0>2147483646){break g}d=J[4957];if(d){a=J[4955];f=a+e|0;if(d>>>0>>0|a>>>0>=f>>>0){break g}}a=Hb(e);if((c|0)!=(a|0)){break v}break e}e=f&g-i;if(e>>>0>2147483646){break g}c=Hb(e);if((c|0)==(J[a>>2]+J[a+4>>2]|0)){break h}a=c}if(!((a|0)==-1|h+48>>>0<=e>>>0)){c=J[4967];c=c+(j-e|0)&0-c;if(c>>>0>2147483646){c=a;break e}if((Hb(c)|0)!=-1){e=c+e|0;c=a;break e}Hb(0-e|0);break g}c=a;if((a|0)!=-1){break e}break g}d=0;break b}c=0;break c}if((c|0)!=-1){break e}}J[4958]=J[4958]|4}if(b>>>0>2147483646){break d}c=Hb(b);a=Hb(0);if((c|0)==-1|(a|0)==-1|a>>>0<=c>>>0){break d}e=a-c|0;if(e>>>0<=h+40>>>0){break d}}a=J[4955]+e|0;J[4955]=a;if(a>>>0>M[4956]){J[4956]=a}x:{y:{z:{g=J[4853];if(g){a=19836;while(1){d=J[a>>2];b=J[a+4>>2];if((d+b|0)==(c|0)){break z}a=J[a+8>>2];if(a){continue}break}break y}a=J[4851];if(!(a>>>0<=c>>>0?a:0)){J[4851]=c}a=0;J[4960]=e;J[4959]=c;J[4855]=-1;J[4856]=J[4965];J[4962]=0;while(1){d=a<<3;b=d+19428|0;J[d+19436>>2]=b;J[d+19440>>2]=b;a=a+1|0;if((a|0)!=32){continue}break}d=e-40|0;a=c+8&7?-8-c&7:0;b=d-a|0;J[4850]=b;a=a+c|0;J[4853]=a;J[a+4>>2]=b|1;J[(c+d|0)+4>>2]=40;J[4854]=J[4969];break x}if(K[a+12|0]&8|d>>>0>g>>>0|c>>>0<=g>>>0){break y}J[a+4>>2]=b+e;a=g+8&7?-8-g&7:0;c=a+g|0;J[4853]=c;b=J[4850]+e|0;a=b-a|0;J[4850]=a;J[c+4>>2]=a|1;J[(b+g|0)+4>>2]=40;J[4854]=J[4969];break x}if(M[4851]>c>>>0){J[4851]=c}b=c+e|0;a=19836;A:{B:{C:{D:{E:{F:{while(1){if((b|0)!=J[a>>2]){a=J[a+8>>2];if(a){continue}break F}break}if(!(K[a+12|0]&8)){break E}}a=19836;while(1){b=J[a>>2];if(b>>>0<=g>>>0){f=b+J[a+4>>2]|0;if(f>>>0>g>>>0){break D}}a=J[a+8>>2];continue}}J[a>>2]=c;J[a+4>>2]=J[a+4>>2]+e;j=(c+8&7?-8-c&7:0)+c|0;J[j+4>>2]=h|3;e=b+(b+8&7?-8-b&7:0)|0;i=h+j|0;a=e-i|0;if((e|0)==(g|0)){J[4853]=i;a=J[4850]+a|0;J[4850]=a;J[i+4>>2]=a|1;break B}if(J[4852]==(e|0)){J[4852]=i;a=J[4849]+a|0;J[4849]=a;J[i+4>>2]=a|1;J[a+i>>2]=a;break B}f=J[e+4>>2];if((f&3)==1){g=f&-8;G:{if(f>>>0<=255){d=J[e+8>>2];b=f>>>3|0;c=J[e+12>>2];if((c|0)==(d|0)){m=19388,n=J[4847]&El(b),J[m>>2]=n;break G}J[d+12>>2]=c;J[c+8>>2]=d;break G}h=J[e+24>>2];c=J[e+12>>2];H:{if((e|0)!=(c|0)){b=J[e+8>>2];J[b+12>>2]=c;J[c+8>>2]=b;break H}I:{f=e+20|0;b=J[f>>2];if(b){break I}f=e+16|0;b=J[f>>2];if(b){break I}c=0;break H}while(1){d=f;c=b;f=b+20|0;b=J[f>>2];if(b){continue}f=c+16|0;b=J[c+16>>2];if(b){continue}break}J[d>>2]=0}if(!h){break G}d=J[e+28>>2];b=(d<<2)+19692|0;J:{if(J[b>>2]==(e|0)){J[b>>2]=c;if(c){break J}m=19392,n=J[4848]&El(d),J[m>>2]=n;break G}J[h+(J[h+16>>2]==(e|0)?16:20)>>2]=c;if(!c){break G}}J[c+24>>2]=h;b=J[e+16>>2];if(b){J[c+16>>2]=b;J[b+24>>2]=c}b=J[e+20>>2];if(!b){break G}J[c+20>>2]=b;J[b+24>>2]=c}e=e+g|0;f=J[e+4>>2];a=a+g|0}J[e+4>>2]=f&-2;J[i+4>>2]=a|1;J[a+i>>2]=a;if(a>>>0<=255){b=(a&-8)+19428|0;c=J[4847];a=1<<(a>>>3);K:{if(!(c&a)){J[4847]=a|c;a=b;break K}a=J[b+8>>2]}J[b+8>>2]=i;J[a+12>>2]=i;J[i+12>>2]=b;J[i+8>>2]=a;break B}f=31;if(a>>>0<=16777215){b=a>>>8|0;f=b+1048320>>>16&8;b=b<>>16&4;b=b<>>16&2;b=(b<>>15|0)-(c|(d|f))|0;f=(b<<1|a>>>b+21&1)+28|0}J[i+28>>2]=f;J[i+16>>2]=0;J[i+20>>2]=0;b=(f<<2)+19692|0;d=J[4848];c=1<>2]=i;break L}f=a<<((f|0)!=31?25-(f>>>1|0)|0:0);c=J[b>>2];while(1){b=c;if((J[b+4>>2]&-8)==(a|0)){break C}c=f>>>29|0;f=f<<1;d=(c&4)+b|0;c=J[d+16>>2];if(c){continue}break}J[d+16>>2]=i}J[i+24>>2]=b;J[i+12>>2]=i;J[i+8>>2]=i;break B}d=e-40|0;a=c+8&7?-8-c&7:0;b=d-a|0;J[4850]=b;a=a+c|0;J[4853]=a;J[a+4>>2]=b|1;J[(c+d|0)+4>>2]=40;J[4854]=J[4969];a=(f+(f-39&7?39-f&7:0)|0)-47|0;d=a>>>0>>0?g:a;J[d+4>>2]=27;a=J[4962];J[d+16>>2]=J[4961];J[d+20>>2]=a;a=J[4960];J[d+8>>2]=J[4959];J[d+12>>2]=a;J[4961]=d+8;J[4960]=e;J[4959]=c;J[4962]=0;a=d+24|0;while(1){J[a+4>>2]=7;b=a+8|0;a=a+4|0;if(b>>>0>>0){continue}break}if((d|0)==(g|0)){break x}J[d+4>>2]=J[d+4>>2]&-2;f=d-g|0;J[g+4>>2]=f|1;J[d>>2]=f;if(f>>>0<=255){b=(f&-8)+19428|0;c=J[4847];a=1<<(f>>>3);M:{if(!(c&a)){J[4847]=a|c;a=b;break M}a=J[b+8>>2]}J[b+8>>2]=g;J[a+12>>2]=g;J[g+12>>2]=b;J[g+8>>2]=a;break x}a=31;if(f>>>0<=16777215){a=f>>>8|0;d=a+1048320>>>16&8;a=a<>>16&4;a=a<>>16&2;a=(a<>>15|0)-(b|(c|d))|0;a=(a<<1|f>>>a+21&1)+28|0}J[g+28>>2]=a;J[g+16>>2]=0;J[g+20>>2]=0;b=(a<<2)+19692|0;d=J[4848];c=1<>2]=g;break N}a=f<<((a|0)!=31?25-(a>>>1|0)|0:0);d=J[b>>2];while(1){b=d;if((f|0)==(J[b+4>>2]&-8)){break A}c=a>>>29|0;a=a<<1;c=(c&4)+b|0;d=J[c+16>>2];if(d){continue}break}J[c+16>>2]=g}J[g+24>>2]=b;J[g+12>>2]=g;J[g+8>>2]=g;break x}a=J[b+8>>2];J[a+12>>2]=i;J[b+8>>2]=i;J[i+24>>2]=0;J[i+12>>2]=b;J[i+8>>2]=a}a=j+8|0;break a}a=J[b+8>>2];J[a+12>>2]=g;J[b+8>>2]=g;J[g+24>>2]=0;J[g+12>>2]=b;J[g+8>>2]=a}a=J[4850];if(a>>>0<=h>>>0){break d}b=a-h|0;J[4850]=b;c=J[4853];a=c+h|0;J[4853]=a;J[a+4>>2]=b|1;J[c+4>>2]=h|3;a=c+8|0;break a}J[4804]=48;a=0;break a}O:{if(!e){break O}b=J[d+28>>2];a=(b<<2)+19692|0;P:{if(J[a>>2]==(d|0)){J[a>>2]=c;if(c){break P}j=El(b)&j;J[4848]=j;break O}J[e+(J[e+16>>2]==(d|0)?16:20)>>2]=c;if(!c){break O}}J[c+24>>2]=e;a=J[d+16>>2];if(a){J[c+16>>2]=a;J[a+24>>2]=c}a=J[d+20>>2];if(!a){break O}J[c+20>>2]=a;J[a+24>>2]=c}Q:{if(f>>>0<=15){a=f+h|0;J[d+4>>2]=a|3;a=a+d|0;J[a+4>>2]=J[a+4>>2]|1;break Q}J[d+4>>2]=h|3;e=d+h|0;J[e+4>>2]=f|1;J[e+f>>2]=f;if(f>>>0<=255){b=(f&-8)+19428|0;c=J[4847];a=1<<(f>>>3);R:{if(!(c&a)){J[4847]=a|c;a=b;break R}a=J[b+8>>2]}J[b+8>>2]=e;J[a+12>>2]=e;J[e+12>>2]=b;J[e+8>>2]=a;break Q}a=31;if(f>>>0<=16777215){a=f>>>8|0;g=a+1048320>>>16&8;a=a<>>16&4;a=a<>>16&2;a=(a<>>15|0)-(b|(c|g))|0;a=(a<<1|f>>>a+21&1)+28|0}J[e+28>>2]=a;J[e+16>>2]=0;J[e+20>>2]=0;b=(a<<2)+19692|0;S:{c=1<>2]=e;break T}a=f<<((a|0)!=31?25-(a>>>1|0)|0:0);h=J[b>>2];while(1){b=h;if((J[b+4>>2]&-8)==(f|0)){break S}c=a>>>29|0;a=a<<1;c=(c&4)+b|0;h=J[c+16>>2];if(h){continue}break}J[c+16>>2]=e}J[e+24>>2]=b;J[e+12>>2]=e;J[e+8>>2]=e;break Q}a=J[b+8>>2];J[a+12>>2]=e;J[b+8>>2]=e;J[e+24>>2]=0;J[e+12>>2]=b;J[e+8>>2]=a}a=d+8|0;break a}U:{if(!i){break U}b=J[c+28>>2];a=(b<<2)+19692|0;V:{if(J[a>>2]==(c|0)){J[a>>2]=d;if(d){break V}m=19392,n=El(b)&j,J[m>>2]=n;break U}J[i+(J[i+16>>2]==(c|0)?16:20)>>2]=d;if(!d){break U}}J[d+24>>2]=i;a=J[c+16>>2];if(a){J[d+16>>2]=a;J[a+24>>2]=d}a=J[c+20>>2];if(!a){break U}J[d+20>>2]=a;J[a+24>>2]=d}W:{if(f>>>0<=15){a=f+h|0;J[c+4>>2]=a|3;a=a+c|0;J[a+4>>2]=J[a+4>>2]|1;break W}J[c+4>>2]=h|3;d=c+h|0;J[d+4>>2]=f|1;J[d+f>>2]=f;if(k){b=(k&-8)+19428|0;g=J[4852];a=1<<(k>>>3);X:{if(!(a&e)){J[4847]=a|e;a=b;break X}a=J[b+8>>2]}J[b+8>>2]=g;J[a+12>>2]=g;J[g+12>>2]=b;J[g+8>>2]=a}J[4852]=d;J[4849]=f}a=c+8|0}ea=l+16|0;return a|0}function Ij(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0;j=ea-32|0;ea=j;c=J[b+8>>2];a:{b:{if(K[b+288|0]){c=ef(c);e=J[b+12>>2];J[b+12>>2]=c;if(e){break b}break a}c=ff(c);e=J[b+12>>2];J[b+12>>2]=c;if(!e){break a}}pc(e)}c=J[b+12>>2];c:{if(!(J[c+40>>2]!=((J[c+4>>2]-J[c>>2]>>2>>>0)/3|0)?c:0)){b=ra(32);H[b+29|0]=0;c=K[1828]|K[1829]<<8|(K[1830]<<16|K[1831]<<24);d=K[1824]|K[1825]<<8|(K[1826]<<16|K[1827]<<24);H[b+21|0]=d;H[b+22|0]=d>>>8;H[b+23|0]=d>>>16;H[b+24|0]=d>>>24;H[b+25|0]=c;H[b+26|0]=c>>>8;H[b+27|0]=c>>>16;H[b+28|0]=c>>>24;c=K[1823]|K[1824]<<8|(K[1825]<<16|K[1826]<<24);d=K[1819]|K[1820]<<8|(K[1821]<<16|K[1822]<<24);H[b+16|0]=d;H[b+17|0]=d>>>8;H[b+18|0]=d>>>16;H[b+19|0]=d>>>24;H[b+20|0]=c;H[b+21|0]=c>>>8;H[b+22|0]=c>>>16;H[b+23|0]=c>>>24;c=K[1815]|K[1816]<<8|(K[1817]<<16|K[1818]<<24);d=K[1811]|K[1812]<<8|(K[1813]<<16|K[1814]<<24);H[b+8|0]=d;H[b+9|0]=d>>>8;H[b+10|0]=d>>>16;H[b+11|0]=d>>>24;H[b+12|0]=c;H[b+13|0]=c>>>8;H[b+14|0]=c>>>16;H[b+15|0]=c>>>24;c=K[1807]|K[1808]<<8|(K[1809]<<16|K[1810]<<24);d=K[1803]|K[1804]<<8|(K[1805]<<16|K[1806]<<24);H[b|0]=d;H[b+1|0]=d>>>8;H[b+2|0]=d>>>16;H[b+3|0]=d>>>24;H[b+4|0]=c;H[b+5|0]=c>>>8;H[b+6|0]=c>>>16;H[b+7|0]=c>>>24;J[a>>2]=-1;Ja(a+4|0,b,29);qa(b);break c}J[b+264>>2]=b;Da((J[c+28>>2]-J[c+24>>2]>>2)-J[c+44>>2]|0,J[J[b+4>>2]+44>>2]);c=J[b+12>>2];Da(((J[c+4>>2]-J[c>>2]>>2>>>0)/3|0)-J[c+40>>2]|0,J[J[b+4>>2]+44>>2]);c=J[b+8>>2];d=J[c+100>>2];c=J[c+96>>2];H[j+16|0]=0;o=b+28|0;d=(d-c|0)/12|0;c=j+16|0;Qa(o,d,c);d=J[b+12>>2];g=J[d+28>>2];d=J[d+24>>2];J[j+16>>2]=-1;xb(b+52|0,g-d>>2,c);c=J[b+40>>2];J[b+44>>2]=c;d:{e:{f:{g:{h:{i:{j:{d=J[b+12>>2];g=J[d+4>>2]-J[d>>2]>>2;g=g-((g>>>0)%3|0)|0;k:{if(g>>>0<=J[b+48>>2]-c>>2>>>0){break k}if(g>>>0>=1073741824){break j}i=g<<2;g=ra(i);J[b+44>>2]=g;J[b+40>>2]=g;J[b+48>>2]=g+i;if(!c){break k}qa(c);d=J[b+12>>2]}c=J[d+28>>2];d=J[d+24>>2];H[j+16|0]=0;Qa(b+84|0,c-d>>2,j+16|0);J[b+164>>2]=-1;J[b+168>>2]=0;J[b+100>>2]=J[b+96>>2];J[b+112>>2]=J[b+108>>2];if(J[b+132>>2]){d=J[b+128>>2];if(d){while(1){c=J[d>>2];qa(d);d=c;if(c){continue}break}}d=0;J[b+128>>2]=0;c=J[b+124>>2];l:{if(!c){break l}if(c>>>0>=4){i=c&-4;while(1){g=d<<2;J[g+J[b+120>>2]>>2]=0;J[J[b+120>>2]+(g|4)>>2]=0;J[J[b+120>>2]+(g|8)>>2]=0;J[J[b+120>>2]+(g|12)>>2]=0;d=d+4|0;k=k+4|0;if((i|0)!=(k|0)){continue}break}}c=c&3;if(!c){break l}e=0;while(1){J[J[b+120>>2]+(d<<2)>>2]=0;d=d+1|0;e=e+1|0;if((c|0)!=(e|0)){continue}break}}J[b+132>>2]=0}J[b+144>>2]=0;c=J[b+12>>2];d=J[c+28>>2];c=J[c+24>>2];J[j+16>>2]=-1;xb(b+152|0,d-c>>2,j+16|0);c=J[b+72>>2];J[b+76>>2]=c;r=b+72|0;d=J[b+12>>2];d=J[d+4>>2]-J[d>>2]|0;g=(d>>2>>>0)/3|0;m:{if(g>>>0<=J[b+80>>2]-c>>2>>>0){break m}if((d|0)<0){break i}g=g<<2;d=ra(g);J[b+76>>2]=d;J[b+72>>2]=d;J[b+80>>2]=d+g;if(!c){break m}qa(c)}J[b- -64>>2]=0;if(!fg(b)){b=ra(32);H[b+29|0]=0;c=K[1768]|K[1769]<<8|(K[1770]<<16|K[1771]<<24);d=K[1764]|K[1765]<<8|(K[1766]<<16|K[1767]<<24);H[b+21|0]=d;H[b+22|0]=d>>>8;H[b+23|0]=d>>>16;H[b+24|0]=d>>>24;H[b+25|0]=c;H[b+26|0]=c>>>8;H[b+27|0]=c>>>16;H[b+28|0]=c>>>24;c=K[1763]|K[1764]<<8|(K[1765]<<16|K[1766]<<24);d=K[1759]|K[1760]<<8|(K[1761]<<16|K[1762]<<24);H[b+16|0]=d;H[b+17|0]=d>>>8;H[b+18|0]=d>>>16;H[b+19|0]=d>>>24;H[b+20|0]=c;H[b+21|0]=c>>>8;H[b+22|0]=c>>>16;H[b+23|0]=c>>>24;c=K[1755]|K[1756]<<8|(K[1757]<<16|K[1758]<<24);d=K[1751]|K[1752]<<8|(K[1753]<<16|K[1754]<<24);H[b+8|0]=d;H[b+9|0]=d>>>8;H[b+10|0]=d>>>16;H[b+11|0]=d>>>24;H[b+12|0]=c;H[b+13|0]=c>>>8;H[b+14|0]=c>>>16;H[b+15|0]=c>>>24;c=K[1747]|K[1748]<<8|(K[1749]<<16|K[1750]<<24);d=K[1743]|K[1744]<<8|(K[1745]<<16|K[1746]<<24);H[b|0]=d;H[b+1|0]=d>>>8;H[b+2|0]=d>>>16;H[b+3|0]=d>>>24;H[b+4|0]=c;H[b+5|0]=c>>>8;H[b+6|0]=c>>>16;H[b+7|0]=c>>>24;J[a>>2]=-1;Ja(a+4|0,b,29);qa(b);break c}c=b;n:{if(K[b+288|0]){break n}b=J[c+8>>2];g=J[b+12>>2]-J[b+8>>2]|0;i=g>>2;d=i-1|0;b=J[c+176>>2];f=J[c+172>>2];e=(b-f|0)/136|0;o:{if(d>>>0>e>>>0){Zf(c+172|0,d-e|0);break o}if(d>>>0>=e>>>0){break o}e=f+P(d,136)|0;if((e|0)!=(b|0)){while(1){d=b-136|0;f=J[d+116>>2];if(f){J[b-16>>2]=f;qa(f)}f=J[b-32>>2];if(f){J[b-28>>2]=f;qa(f)}oc(b-132|0);b=d;if((e|0)!=(b|0)){continue}break}}J[c+176>>2]=e}if((g|0)==4|(g|0)<=0){break n}e=(i|0)<=1?1:i;b=0;p:{while(1){f=J[J[J[c+8>>2]+8>>2]+(b<<2)>>2];if(J[f+56>>2]){k=P(h,136);d=k+J[c+172>>2]|0;J[d>>2]=b;g=J[d+104>>2];J[d+108>>2]=g;i=J[c+12>>2];i=J[i+4>>2]-J[i>>2]|0;p=i>>2;q:{if(p>>>0<=J[d+112>>2]-g>>2>>>0){break q}if((i|0)<0){break p}i=ra(i);J[d+108>>2]=i;J[d+104>>2]=i;J[d+112>>2]=i+(p<<2);if(!g){break q}qa(g)}d=k+J[c+172>>2]|0;J[d+128>>2]=0;gf(d+4|0,J[c+8>>2],J[c+12>>2],f);h=h+1|0}b=b+1|0;if((e|0)!=(b|0)){continue}break}break n}ua();B()}b=(J[c+176>>2]-J[c+172>>2]|0)/136|0;H[j+31|0]=b;d=J[J[c+4>>2]+44>>2];g=J[d+20>>2];if(!J[d+16>>2]&(g|0)<=0|(g|0)<0){wa(d,J[d+4>>2],j+31|0,j+32|0);b=K[j+31|0]}J[c+284>>2]=b&255;b=J[c+12>>2];d=J[b>>2];b=J[b+4>>2];i=c+200|0;eg(i);J[j+24>>2]=0;J[j+16>>2]=0;J[j+20>>2]=0;g=0;b=b-d|0;if((b|0)>0){b=b>>>2|0;s=b>>>0<=1?1:b;d=0;while(1){b=(d>>>0)/3|0;p=b>>>5<<2;q=1<>2]+p>>2]){break r}if(Cc(J[c+12>>2],b)){break r}J[j+8>>2]=0;b=dg(c,b,j+8|0);Ga(i,b);e=J[j+8>>2];if(b){f=-1;h=-1;b=-1;s:{if((e|0)==-1){break s}m=J[J[c+12>>2]>>2];b=m+(e<<2)|0;f=e+1|0;f=(f>>>0)%3|0?f:e-2|0;if((f|0)!=-1){h=J[m+(f<<2)>>2]}f=J[b>>2];t:{if((e>>>0)%3|0){k=e-1|0;break t}k=e+2|0;b=-1;if((k|0)==-1){break s}}b=J[m+(k<<2)>>2]}k=J[c+84>>2];m=k+(f>>>3&536870908)|0;J[m>>2]=J[m>>2]|1<>>3&536870908)|0;J[f>>2]=J[f>>2]|1<>>3&536870908)|0;J[h>>2]=J[h>>2]|1<>2];f=J[c+104>>2];u:{if(b>>>0>>0){J[b>>2]=1;J[c+100>>2]=b+4;break u}h=J[c+96>>2];k=b-h|0;m=k>>2;b=m+1|0;if(b>>>0>=1073741824){break h}t=m<<2;f=f-h|0;m=f>>1;f=f>>>0>=2147483644?1073741823:b>>>0>>0?m:b;if(f){if(f>>>0>=1073741824){break g}b=ra(f<<2)}else{b=0}m=t+b|0;J[m>>2]=1;if((k|0)>0){ta(b,h,k)}J[c+104>>2]=b+(f<<2);J[c+100>>2]=m+4;J[c+96>>2]=b;if(!h){break u}qa(h)}b=J[o>>2]+p|0;J[b>>2]=J[b>>2]|q;f=-1;if((e|0)!=-1){b=e+1|0;f=(b>>>0)%3|0?b:e-2|0}v:{if(l>>>0>>0){J[l>>2]=f;l=l+4|0;J[j+20>>2]=l;break v}k=l-g|0;l=k>>2;b=l+1|0;if(b>>>0>=1073741824){break f}h=n-g|0;n=h>>1;h=h>>>0>=2147483644?1073741823:b>>>0>>0?n:b;if(h){if(h>>>0>=1073741824){break g}b=ra(h<<2)}else{b=0}l=b+(l<<2)|0;J[l>>2]=f;n=b+(h<<2)|0;l=l+4|0;if((k|0)>0){ta(b,g,k)}J[j+24>>2]=n;J[j+20>>2]=l;J[j+16>>2]=b;if(g){qa(g)}g=b}if((e|0)==-1){break r}b=e+1|0;b=(b>>>0)%3|0?b:e-2|0;if((b|0)==-1){break r}b=J[J[J[c+12>>2]+12>>2]+(b<<2)>>2];if((b|0)==-1){break r}e=(b>>>0)/3|0;if(J[J[o>>2]+(e>>>3&268435452)>>2]>>>e&1){break r}if(bg(c,b)){break r}break e}if((e|0)!=-1){b=e+1|0;b=(b>>>0)%3|0?b:e-2|0}else{b=-1}Ec(c,b,1);if(!bg(c,J[j+8>>2])){break e}}d=d+1|0;if((s|0)!=(d|0)){continue}break}}d=J[c+72>>2];b=J[c+76>>2];w:{if((d|0)==(b|0)){break w}e=b-4|0;if(e>>>0<=d>>>0){break w}while(1){h=J[d>>2];J[d>>2]=J[e>>2];J[e>>2]=h;d=d+4|0;e=e-4|0;if(d>>>0>>0){continue}break}}ag(r,b,g,l);x:{if(J[c+172>>2]==J[c+176>>2]){break x}b=J[c+8>>2];d=J[b+100>>2];b=J[b+96>>2];H[j+8|0]=0;Qa(o,(d-b|0)/12|0,j+8|0);d=J[c+72>>2];b=J[c+76>>2];if((d|0)==(b|0)){break x}while(1){$f(c,J[d>>2]);d=d+4|0;if((b|0)!=(d|0)){continue}break}}d=i;o=d+32|0;b=J[d+64>>2];b=J[(ga[J[J[b>>2]+40>>2]](b)|0)+56>>2];xd(o,P((J[b+100>>2]-J[b+96>>2]|0)/12|0,3),0,1);b=J[d+72>>2]-J[d+68>>2]|0;y:{if((b|0)<=0){break y}i=J[d+52>>2];if(!J[d+48>>2]&(i|0)<=0|(i|0)<0){break y}b=b>>>2|0;while(1){i=b;b=b-1|0;e=J[d+52>>2];z:{if(!J[d+48>>2]&(e|0)<=0|(e|0)<0){break z}l=J[J[d+68>>2]+(b<<2)>>2];if(!(171>>>l&1)){break z}k=J[(l<<2)+11152>>2];f=J[d+44>>2];e=J[f+4>>2];h=0;while(1){n=e>>>3|0;p=n+J[f>>2]|0;m=K[p|0];e=e&7;u=p,v=El(e)&m,H[u|0]=v;n=n+J[f>>2]|0;H[n|0]=K[n|0]|(l>>>h&1)<>2]+1|0;J[f+4>>2]=e;h=h+1|0;if((k|0)!=(h|0)){continue}break}}if((i|0)>1){continue}break}}wd(o);b=c+232|0;Ba(d,b);if(!(!J[c+280>>2]|J[c+284>>2]<=0)){d=0;while(1){Ba(J[c+280>>2]+(d<<5)|0,b);d=d+1|0;if((d|0)>2]){continue}break}}Da(J[c+272>>2]-J[c+268>>2]>>2,J[J[c+4>>2]+44>>2]);Da(J[c+168>>2],J[J[c+4>>2]+44>>2]);if(!_f(c)){b=ra(32);H[b+28|0]=0;c=K[1909]|K[1910]<<8|(K[1911]<<16|K[1912]<<24);H[b+24|0]=c;H[b+25|0]=c>>>8;H[b+26|0]=c>>>16;H[b+27|0]=c>>>24;c=K[1905]|K[1906]<<8|(K[1907]<<16|K[1908]<<24);d=K[1901]|K[1902]<<8|(K[1903]<<16|K[1904]<<24);H[b+16|0]=d;H[b+17|0]=d>>>8;H[b+18|0]=d>>>16;H[b+19|0]=d>>>24;H[b+20|0]=c;H[b+21|0]=c>>>8;H[b+22|0]=c>>>16;H[b+23|0]=c>>>24;c=K[1897]|K[1898]<<8|(K[1899]<<16|K[1900]<<24);d=K[1893]|K[1894]<<8|(K[1895]<<16|K[1896]<<24);H[b+8|0]=d;H[b+9|0]=d>>>8;H[b+10|0]=d>>>16;H[b+11|0]=d>>>24;H[b+12|0]=c;H[b+13|0]=c>>>8;H[b+14|0]=c>>>16;H[b+15|0]=c>>>24;c=K[1889]|K[1890]<<8|(K[1891]<<16|K[1892]<<24);d=K[1885]|K[1886]<<8|(K[1887]<<16|K[1888]<<24);H[b|0]=d;H[b+1|0]=d>>>8;H[b+2|0]=d>>>16;H[b+3|0]=d>>>24;H[b+4|0]=c;H[b+5|0]=c>>>8;H[b+6|0]=c>>>16;H[b+7|0]=c>>>24;J[a>>2]=-1;Ja(a+4|0,b,28);qa(b);break d}b=J[J[c+4>>2]+44>>2];d=J[b+20>>2];if(!J[b+16>>2]&(d|0)<=0|(d|0)<0){wa(b,J[b+4>>2],J[c+232>>2],J[c+236>>2])}J[a>>2]=0;J[a+4>>2]=0;J[a+8>>2]=0;J[a+12>>2]=0;break d}ua();B()}ua();B()}ua();B()}ya();B()}ua();B()}b=ra(48);H[b+32|0]=0;c=K[1703]|K[1704]<<8|(K[1705]<<16|K[1706]<<24);d=K[1699]|K[1700]<<8|(K[1701]<<16|K[1702]<<24);H[b+24|0]=d;H[b+25|0]=d>>>8;H[b+26|0]=d>>>16;H[b+27|0]=d>>>24;H[b+28|0]=c;H[b+29|0]=c>>>8;H[b+30|0]=c>>>16;H[b+31|0]=c>>>24;c=K[1695]|K[1696]<<8|(K[1697]<<16|K[1698]<<24);d=K[1691]|K[1692]<<8|(K[1693]<<16|K[1694]<<24);H[b+16|0]=d;H[b+17|0]=d>>>8;H[b+18|0]=d>>>16;H[b+19|0]=d>>>24;H[b+20|0]=c;H[b+21|0]=c>>>8;H[b+22|0]=c>>>16;H[b+23|0]=c>>>24;c=K[1687]|K[1688]<<8|(K[1689]<<16|K[1690]<<24);d=K[1683]|K[1684]<<8|(K[1685]<<16|K[1686]<<24);H[b+8|0]=d;H[b+9|0]=d>>>8;H[b+10|0]=d>>>16;H[b+11|0]=d>>>24;H[b+12|0]=c;H[b+13|0]=c>>>8;H[b+14|0]=c>>>16;H[b+15|0]=c>>>24;c=K[1679]|K[1680]<<8|(K[1681]<<16|K[1682]<<24);d=K[1675]|K[1676]<<8|(K[1677]<<16|K[1678]<<24);H[b|0]=d;H[b+1|0]=d>>>8;H[b+2|0]=d>>>16;H[b+3|0]=d>>>24;H[b+4|0]=c;H[b+5|0]=c>>>8;H[b+6|0]=c>>>16;H[b+7|0]=c>>>24;J[a>>2]=-1;Ja(a+4|0,b,32);qa(b)}if(!g){break c}qa(g)}ea=j+32|0}function jf(a){var b=0,c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0;v=ea-16|0;ea=v;b=ra(88);J[b>>2]=0;J[b+4>>2]=0;J[b+56>>2]=0;J[b+48>>2]=0;J[b+52>>2]=0;J[b+40>>2]=0;J[b+44>>2]=0;J[b+32>>2]=0;J[b+36>>2]=0;J[b+24>>2]=0;J[b+28>>2]=0;J[b+16>>2]=0;J[b+20>>2]=0;J[b+8>>2]=0;J[b+12>>2]=0;c=b- -64|0;J[c>>2]=0;J[c+4>>2]=0;J[b+72>>2]=0;J[b+76>>2]=0;J[b+80>>2]=0;J[b+84>>2]=0;J[b+60>>2]=b;c=a;u=ea-16|0;ea=u;J[b+80>>2]=0;J[b+84>>2]=0;d=J[b+76>>2];a=b;J[b+76>>2]=0;if(d){qa(d)}J[a+68>>2]=0;J[a+72>>2]=0;d=a- -64|0;b=J[d>>2];J[d>>2]=0;if(b){qa(b)}d=J[c+4>>2];g=J[c>>2];h=(d-g|0)/12|0;b=P(h,3);e=J[a>>2];f=J[a+4>>2]-e>>2;a:{if(b>>>0>f>>>0){Fa(a,b-f|0);d=J[c+4>>2];g=J[c>>2];h=(d-g|0)/12|0;break a}if(b>>>0>=f>>>0){break a}J[a+4>>2]=e+(b<<2)}b:{if((d|0)==(g|0)){break b}d=h>>>0<=1?1:h;e=d&1;c=J[a>>2];b=0;if(h>>>0>=2){i=d&-2;h=0;while(1){d=P(b,12);m=d+c|0;f=d+g|0;J[m>>2]=J[f>>2];J[c+(d|4)>>2]=J[f+4>>2];J[m+8>>2]=J[f+8>>2];f=P(b|1,12);d=f+c|0;f=f+g|0;J[d>>2]=J[f>>2];J[d+4>>2]=J[f+4>>2];J[d+8>>2]=J[f+8>>2];b=b+2|0;h=h+2|0;if((i|0)!=(h|0)){continue}break}}if(!e){break b}h=c;c=P(b,12);b=h+c|0;c=c+g|0;J[b>>2]=J[c>>2];J[b+4>>2]=J[c+4>>2];J[b+8>>2]=J[c+8>>2]}J[u+12>>2]=-1;b=0;d=0;f=0;i=ea-32|0;ea=i;c:{r=u+12|0;d:{if(!r){break d}h=J[a+4>>2];m=J[a>>2];c=h-m|0;j=c>>2;g=J[a+12>>2];e=J[a+16>>2]-g>>2;e:{if(j>>>0>e>>>0){La(a+12|0,j-e|0,14880);h=J[a+4>>2];m=J[a>>2];c=h-m|0;j=c>>2;break e}if(e>>>0<=j>>>0){break e}J[a+16>>2]=g+(j<<2)}J[i+24>>2]=0;J[i+16>>2]=0;J[i+20>>2]=0;e=(h|0)==(m|0);if(!e){if((c|0)<0){break c}d=ra(c);J[i+20>>2]=d;J[i+16>>2]=d;J[i+24>>2]=(j<<2)+d}f:{g:{h:{i:{j:{if(c){while(1){g=J[(b<<2)+m>>2];c=J[i+20>>2]-d>>2;k:{if(g>>>0>>0){break k}J[i>>2]=0;e=g+1|0;if(e>>>0>c>>>0){La(i+16|0,e-c|0,i);m=J[a>>2];h=J[a+4>>2];d=J[i+16>>2];break k}if(c>>>0<=e>>>0){break k}J[i+20>>2]=(e<<2)+d}c=(g<<2)+d|0;J[c>>2]=J[c>>2]+1;b=b+1|0;c=h-m|0;j=c>>2;if(b>>>0>>0){continue}break}break j}c=0;if(!e){break i}break h}if((h|0)==(m|0)){c=0;break h}if(c>>>0>=2147483645){break g}}c=ra(c<<1);sa(c,255,j<<3)}J[i+8>>2]=0;J[i>>2]=0;J[i+4>>2]=0;e=J[i+20>>2];b=e-d|0;p=b>>2;l:{m:{if((d|0)==(e|0)){break m}if((b|0)<0){break l}l=ra(b);J[i>>2]=l;J[i+8>>2]=(p<<2)+l;e=sa(l,0,b);J[i+4>>2]=e+b;h=p>>>0<=1?1:p;g=h&3;b=0;if(h-1>>>0>=3){o=h&-4;while(1){h=f<<2;J[h+e>>2]=b;s=h|4;b=J[d+h>>2]+b|0;J[s+e>>2]=b;q=h|8;b=b+J[d+s>>2]|0;J[q+e>>2]=b;h=h|12;b=b+J[d+q>>2]|0;J[h+e>>2]=b;b=b+J[d+h>>2]|0;f=f+4|0;n=n+4|0;if((o|0)!=(n|0)){continue}break}}if(!g){break m}while(1){h=f<<2;J[h+e>>2]=b;f=f+1|0;b=J[d+h>>2]+b|0;k=k+1|0;if((g|0)!=(k|0)){continue}break}}if(!j){break f}s=J[a+12>>2];e=0;while(1){w=e<<2;b=w+m|0;k=-1;g=e+1|0;f=(g>>>0)%3|0?g:e-2|0;if((f|0)!=-1){k=J[(f<<2)+m>>2]}h=J[b>>2];n:{o:{if(!((e>>>0)%3|0)){n=-1;b=e+2|0;if((b|0)!=-1){n=J[(b<<2)+m>>2]}if(!((h|0)==(k|0)|(h|0)==(n|0))&(k|0)!=(n|0)){break o}J[a+40>>2]=J[a+40>>2]+1;e=e+3|0;break n}n=J[b-4>>2]}b=n<<2;q=J[b+d>>2];p:{q:{if((q|0)<=0){break q}b=J[b+l>>2];f=0;while(1){o=(b<<3)+c|0;t=J[o>>2];if((t|0)==-1){break q}r:{if((k|0)!=(t|0)){break r}o=J[o+4>>2];if((o|0)!=-1){t=J[(o<<2)+m>>2]}else{t=-1}if((t|0)==(h|0)){break r}while(1){s:{h=b;f=f+1|0;if((q|0)<=(f|0)){break s}b=h+1|0;x=(b<<3)+c|0;t=J[x>>2];y=(h<<3)+c|0;J[y+4>>2]=J[x+4>>2];J[y>>2]=t;if((t|0)!=-1){continue}}break}J[(h<<3)+c>>2]=-1;if((o|0)==-1){break q}J[s+w>>2]=o;J[s+(o<<2)>>2]=e;break p}b=b+1|0;f=f+1|0;if((q|0)!=(f|0)){continue}break}}b=k<<2;k=J[b+d>>2];if((k|0)<=0){break p}b=J[b+l>>2];f=0;while(1){h=(b<<3)+c|0;if(J[h>>2]==-1){J[h>>2]=n;J[h+4>>2]=e;break p}b=b+1|0;f=f+1|0;if((k|0)!=(f|0)){continue}break}}e=g}if(j>>>0>e>>>0){continue}break}break f}break c}be(1313);B()}J[r>>2]=p;if(l){qa(l)}if(c){qa(c)}b=J[i+16>>2];if(!b){break d}J[i+20>>2]=b;qa(b)}ea=i+32|0;s=(r|0)!=0;if(s){k=ea-32|0;ea=k;l=J[a>>2];b=J[a+4>>2];J[k+24>>2]=0;J[k+16>>2]=0;J[k+20>>2]=0;t:{if((b|0)==(l|0)){break t}d=b-l|0;if((d|0)<0){break c}c=d>>2;e=c-1>>>5|0;f=ra((e<<2)+4|0);J[k+16>>2]=f;J[f+((d>>>0>=132?e:0)<<2)>>2]=0;d=c>>>5<<2;f=sa(f,0,d);if((c|0)==(c&-32)){break t}d=d+f|0;J[d>>2]=J[d>>2]&(-1>>>32-(c&31)^-1)}J[k+8>>2]=0;J[k>>2]=0;while(1){u:{o=0;m=0;if((b|0)==(l|0)){break u}while(1){c=J[k+16>>2];v:{if(J[c+(m>>>3&536870908)>>2]>>>m&1){break v}d=J[k>>2];J[k+4>>2]=d;f=J[a+12>>2];b=m;while(1){w:{e=b+1|0;i=b;b=(e>>>0)%3|0?e:b-2|0;if((b|0)==-1){break w}b=J[f+(b<<2)>>2];if((b|0)==-1){break w}e=b+1|0;b=(e>>>0)%3|0?e:b-2|0;if((m|0)==(b|0)|(b|0)==-1){break w}if(!(J[c+(b>>>3&536870908)>>2]>>>b&1)){continue}}break}f=i;x:{y:{z:{while(1){b=J[k+16>>2]+(f>>>3&536870908)|0;J[b>>2]=J[b>>2]|1<>>0)%3|0?b:f-2|0;l=J[a>>2];q=(f>>>0)%3|0;h=(q?-1:2)+f|0;j=J[k>>2];A:{if((j|0)==(d|0)){break A}r=J[(g<<2)+l>>2];n=J[a+12>>2];b=j;if((h|0)!=-1){c=n+(h<<2)|0;while(1){B:{if((r|0)!=J[b>>2]){break B}e=J[b+4>>2];p=J[c>>2];if((e|0)==(p|0)){break B}d=-1;c=h;b=-1;if((e|0)==-1){break x}break y}b=b+8|0;if((d|0)!=(b|0)){continue}break}break A}while(1){if((r|0)==J[b>>2]){p=-1;c=-1;e=J[b+4>>2];if((e|0)!=-1){break y}}b=b+8|0;if((d|0)!=(b|0)){continue}break}}h=J[(h<<2)+l>>2];C:{if(J[k+8>>2]!=(d|0)){J[d>>2]=h;J[d+4>>2]=g;d=d+8|0;J[k+4>>2]=d;break C}c=d-j|0;d=c>>3;b=d+1|0;if(b>>>0>=536870912){break c}e=c>>2;e=c>>>0>=2147483640?536870911:b>>>0>>0?e:b;if(e){if(e>>>0>=536870912){break z}b=ra(e<<3)}else{b=0}d=b+(d<<3)|0;J[d>>2]=h;J[d+4>>2]=g;d=d+8|0;if((c|0)>0){ta(b,j,c)}J[k+8>>2]=b+(e<<3);J[k+4>>2]=d;J[k>>2]=b;if(!j){break C}qa(j)}D:{E:{if(q){b=f-1|0;break E}b=f+2|0;if((b|0)==-1){break D}}b=J[J[a+12>>2]+(b<<2)>>2];if((b|0)==-1){break D}f=b+((b>>>0)%3|0?-1:2)|0;if((i|0)==(f|0)){break D}if((f|0)!=-1){continue}}break}l=J[a>>2];break v}ya();B()}h=c;d=e;b=J[n+(d<<2)>>2]}if((p|0)!=-1){J[n+(p<<2)>>2]=-1}if((b|0)!=-1){J[J[a+12>>2]+(b<<2)>>2]=-1}b=J[a+12>>2];J[b+(h<<2)>>2]=-1;J[b+(d<<2)>>2]=-1;o=1}m=m+1|0;b=J[a+4>>2];if(m>>>0>2>>>0){continue}break}if(o){continue}}break}b=J[k>>2];if(b){qa(b)}b=J[k+16>>2];if(b){qa(b)}ea=k+32|0;c=0;e=0;k=0;i=ea-32|0;ea=i;b=J[u+12>>2];J[a+36>>2]=b;m=a+24|0;f=J[a+24>>2];d=J[a+28>>2]-f>>2;F:{G:{if(d>>>0>>0){La(m,b-d|0,14880);J[i+24>>2]=0;J[i+16>>2]=0;J[i+20>>2]=0;break G}if(b>>>0>>0){J[a+28>>2]=f+(b<<2)}J[i+24>>2]=0;J[i+16>>2]=0;J[i+20>>2]=0;if(!b){break F}}if((b|0)<0){break c}d=b-1>>>5|0;f=d+1|0;c=ra(f<<2);J[i+24>>2]=f;J[i+16>>2]=c;J[i+20>>2]=b;J[((b>>>0>=33?d:0)<<2)+c>>2]=0;d=b>>>5<<2;f=sa(c,0,d);if((b&-32)==(b|0)){break F}d=d+f|0;J[d>>2]=J[d>>2]&(-1>>>32-(b&31)^-1)}j=J[a>>2];d=J[a+4>>2];J[i+8>>2]=0;J[i>>2]=0;J[i+4>>2]=0;h=d-j|0;H:{if((d|0)==(j|0)){break H}if((h|0)<0){break c}f=h>>2;g=f-1>>>5|0;l=g+1|0;e=ra(l<<2);J[i+8>>2]=l;J[i>>2]=e;J[i+4>>2]=f;J[((h>>>0>=132?g:0)<<2)+e>>2]=0;g=f>>>5<<2;l=sa(e,0,g);if((f|0)==(f&-32)){break H}g=g+l|0;J[g>>2]=J[g>>2]&(-1>>>32-(f&31)^-1)}if(h>>>0>=12){I:{J:{while(1){n=P(k,3);h=(n<<2)+j|0;f=J[h>>2];g=-1;l=n+1|0;if((l|0)!=-1){g=J[(l<<2)+j>>2]}K:{if((f|0)==(g|0)){break K}l=f;f=J[h+8>>2];if((l|0)==(f|0)){break K}l=0;if((f|0)==(g|0)){break K}while(1){d=l+n|0;if(!(J[(d>>>3&536870908)+e>>2]>>>d&1)){f=J[(d<<2)+j>>2];g=1<>>5|0;p=g&J[(j<<2)+c>>2];if(p){c=J[a+28>>2];L:{if((c|0)!=J[a+32>>2]){J[c>>2]=-1;J[a+28>>2]=c+4;break L}h=J[m>>2];e=c-h|0;j=e>>2;c=j+1|0;if(c>>>0>=1073741824){break c}g=e>>1;g=e>>>0>=2147483644?1073741823:c>>>0>>0?g:c;if(g){if(g>>>0>=1073741824){break J}c=ra(g<<2)}else{c=0}j=c+(j<<2)|0;J[j>>2]=-1;if((e|0)>0){ta(c,h,e)}J[a+32>>2]=c+(g<<2);J[a+28>>2]=j+4;J[a+24>>2]=c;if(!h){break L}qa(h)}c=J[a+52>>2];M:{if((c|0)!=J[a+56>>2]){J[c>>2]=f;J[a+52>>2]=c+4;break M}h=J[a+48>>2];e=c-h|0;j=e>>2;c=j+1|0;if(c>>>0>=1073741824){break c}g=e>>1;g=e>>>0>=2147483644?1073741823:c>>>0>>0?g:c;if(g){if(g>>>0>=1073741824){break J}c=ra(g<<2)}else{c=0}j=c+(j<<2)|0;J[j>>2]=f;if((e|0)>0){ta(c,h,e)}J[a+56>>2]=c+(g<<2);J[a+52>>2]=j+4;J[a+48>>2]=c;if(!h){break M}qa(h)}g=J[i+20>>2];c=J[i+24>>2];if((g|0)==c<<5){if((g+1|0)<0){break c}h=i+16|0;if(g>>>0<=1073741822){c=c<<6;e=(g&-32)+32|0;c=c>>>0>e>>>0?c:e}else{c=2147483647}Gb(h,c);g=J[i+20>>2]}J[i+20>>2]=g+1;c=J[i+16>>2]+(g>>>3&536870908)|0;f=J[c>>2];z=c,A=El(g)&f,J[z>>2]=A;g=1<>>5|0;f=b;b=b+1|0}h=b;c=J[i+16>>2];b=c+(j<<2)|0;J[b>>2]=J[b>>2]|g;r=J[a+24>>2]+(f<<2)|0;o=J[a+12>>2];j=J[a>>2];e=J[i>>2];b=d;N:{O:{P:{while(1){if((b|0)==-1){break P}g=(b>>>3&536870908)+e|0;J[g>>2]=J[g>>2]|1<>2]=b;if(p){J[(b<<2)+j>>2]=f}q=b+1|0;b=(q>>>0)%3|0?q:b-2|0;g=-1;Q:{if((b|0)==-1){break Q}b=J[o+(b<<2)>>2];g=-1;if((b|0)==-1){break Q}g=b+1|0;g=(g>>>0)%3|0?g:b-2|0}b=g;if((d|0)!=(b|0)){continue}break}if((d|0)!=-1){break N}b=1;break O}if((d>>>0)%3|0){b=d-1|0;break O}b=d+2|0;if((b|0)==-1){break N}}b=J[o+(b<<2)>>2];if((b|0)==-1){break N}R:{if((b>>>0)%3|0){b=b-1|0;break R}b=b+2|0;if((b|0)==-1){break N}}d=J[a+12>>2];j=J[a>>2];e=J[i>>2];while(1){g=(b>>>3&536870908)+e|0;J[g>>2]=J[g>>2]|1<>2]=f}S:{if((b>>>0)%3|0){b=b-1|0;break S}b=b+2|0;if((b|0)==-1){break N}}b=J[d+(b<<2)>>2];if((b|0)==-1){break N}b=b+((b>>>0)%3|0?-1:2)|0;if((b|0)!=-1){continue}break}}b=h}l=l+1|0;if((l|0)!=3){continue}break}j=J[a>>2];d=J[a+4>>2]}k=k+1|0;if(k>>>0<(d-j>>2>>>0)/3>>>0){continue}break}break I}ya();B()}c=J[i+16>>2]}b=0;J[a+44>>2]=0;d=J[i+20>>2];if(d){f=d&31;d=(d>>>3&536870908)+c|0;g=c;e=0;while(1){if(!(J[g>>2]>>>b&1)){e=e+1|0;J[a+44>>2]=e}h=(b|0)==31;b=h?0:b+1|0;g=(h<<2)+g|0;if((d|0)!=(g|0)|(b|0)!=(f|0)){continue}break}}b=J[i>>2];if(b){qa(b);c=J[i+16>>2]}if(c){qa(c)}ea=i+32|0}ea=u+16|0;if(!s){J[v+8>>2]=0;pc(a);a=0}ea=v+16|0;return a}ua();B()}function gf(a,b,c,d){var e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0;e=ea-16|0;ea=e;a:{b:{if(c){J[a+88>>2]=0;J[a+92>>2]=0;f=J[a+84>>2];J[a+84>>2]=0;if(f){qa(f)}J[a+76>>2]=0;J[a+80>>2]=0;f=J[a+72>>2];J[a+72>>2]=0;if(f){qa(f)}f=J[c>>2];h=J[c+4>>2];H[e+15|0]=0;Qa(a,h-f>>2,e+15|0);f=J[c+28>>2];h=J[c+24>>2];H[e+14|0]=0;Qa(a+12|0,f-h>>2,e+14|0);xb(a+28|0,J[c+4>>2]-J[c>>2]>>2,14948);h=J[c+28>>2]-J[c+24>>2]|0;i=h>>2;f=J[a+52>>2];c:{if(i>>>0<=J[a+60>>2]-f>>2>>>0){break c}if((h|0)<0){break a}g=J[a+56>>2];h=ra(h);j=h+(i<<2)|0;i=g-f|0;g=i+h|0;if((i|0)>0){ta(h,f,i)}J[a+60>>2]=j;J[a+56>>2]=g;J[a+52>>2]=h;if(!f){break c}qa(f)}h=J[c+28>>2]-J[c+24>>2]|0;i=h>>2;f=J[a+40>>2];d:{if(i>>>0<=J[a+48>>2]-f>>2>>>0){break d}if((h|0)<0){break a}g=J[a+44>>2];h=ra(h);j=h+(i<<2)|0;i=g-f|0;g=i+h|0;if((i|0)>0){ta(h,f,i)}J[a+48>>2]=j;J[a+44>>2]=g;J[a+40>>2]=h;if(!f){break d}qa(f)}H[a+24|0]=1;J[a+64>>2]=c}ea=e+16|0;c=(c|0)!=0;break b}if(c){J[a+88>>2]=0;J[a+92>>2]=0;c=J[a+84>>2];J[a+84>>2]=0;if(c){qa(c)}J[a+76>>2]=0;J[a+80>>2]=0;c=J[a+72>>2];J[a+72>>2]=0;if(c){qa(c)}g=J[a+64>>2];if(J[g+4>>2]!=J[g>>2]){c=0;while(1){m=(c>>>0)/3|0;e=Cc(g,m);g=J[a+64>>2];e:{if(e){break e}j=J[J[g+12>>2]+(c<<2)>>2];f:{g:{if((j|0)==-1){e=J[a>>2]+(c>>>3&536870908)|0;J[e>>2]=J[e>>2]|1<>>0)%3|0?f:c-2|0;if((f|0)!=-1){e=J[J[g>>2]+(f<<2)>>2]}f=J[a+12>>2];h=f+(e>>>3&536870908)|0;J[h>>2]=J[h>>2]|1<>>0)%3|0){e=c-1|0;break g}i=-1;e=c+2|0;if((e|0)!=-1){break g}break f}if(c>>>0>j>>>0){break e}e=-1;l=K[d+84|0];i=-1;k=c+1|0;n=c-2|0;h=(k>>>0)%3|0?k:n;if((h|0)>=0){f=(h>>>0)/3|0;i=J[(J[b+96>>2]+P(f,12)|0)+(h-P(f,3)<<2)>>2]}f=j+((j>>>0)%3|0?-1:2)|0;if((f|0)>=0){e=(f>>>0)/3|0;e=J[(J[b+96>>2]+P(e,12)|0)+(f-P(e,3)<<2)>>2]}if(!l){o=J[d+68>>2];e=J[o+(e<<2)>>2];i=J[(i<<2)+o>>2]}if((e|0)==(i|0)){e=-1;i=-1;if((h|0)!=-1){i=h+1|0;i=(i>>>0)%3|0?i:h-2|0}h:{if((f|0)==-1){break h}if((f>>>0)%3|0){e=f-1|0;break h}e=f+2|0}f=-1;h=-1;if((i|0)>=0){h=(i>>>0)/3|0;h=J[(J[b+96>>2]+P(h,12)|0)+(i-P(h,3)<<2)>>2]}if((e|0)>=0){f=(e>>>0)/3|0;f=J[(J[b+96>>2]+P(f,12)|0)+(e-P(f,3)<<2)>>2]}if(!l){e=J[d+68>>2];f=J[e+(f<<2)>>2];h=J[e+(h<<2)>>2]}if((f|0)==(h|0)){break e}}H[a+24|0]=0;e=J[a>>2];f=e+(c>>>3&536870908)|0;J[f>>2]=J[f>>2]|1<>>3&536870908)|0;J[e>>2]=J[e>>2]|1<>>0)%3|0?k:n;if((e|0)!=-1){h=J[J[g>>2]+(e<<2)>>2]}f=J[a+12>>2];e=f+(h>>>3&536870908)|0;J[e>>2]=J[e>>2]|1<>2]+(e<<2)>>2]}e=(h>>>3&536870908)+f|0;J[e>>2]=J[e>>2]|1<>>0)%3|0?e:j-2|0;if((e|0)!=-1){i=J[J[g>>2]+(e<<2)>>2]}e=(i>>>3&536870908)+f|0;J[e>>2]=J[e>>2]|1<>>0)%3|0){e=j-1|0;break g}i=-1;e=j+2|0;if((e|0)==-1){break f}}i=J[J[g>>2]+(e<<2)>>2]}e=(i>>>3&536870908)+f|0;J[e>>2]=J[e>>2]|1<>>0>2]-J[g>>2]>>2>>>0){continue}break}}if(!(!b|!d)){i=b;h=d;b=0;f=0;d=a;J[a+56>>2]=J[a+52>>2];J[a+44>>2]=J[a+40>>2];k:{e=J[a+64>>2];g=J[e+24>>2];if((g|0)==J[e+28>>2]){break k}l:{m:{while(1){a=b;b=J[(f<<2)+g>>2];n:{if((b|0)==-1){b=a;break n}if((b|0)<0){e=-1}else{c=(b>>>0)/3|0;e=J[(J[i+96>>2]+P(c,12)|0)+(b-P(c,3)<<2)>>2]}e=K[h+84|0]?e:J[J[h+68>>2]+(e<<2)>>2];c=J[d+56>>2];j=J[d+60>>2];o:{if(c>>>0>>0){J[c>>2]=e;J[d+56>>2]=c+4;break o}g=J[d+52>>2];k=c-g|0;l=k>>2;c=l+1|0;if(c>>>0>=1073741824){break a}j=j-g|0;m=j>>1;j=j>>>0>=2147483644?1073741823:c>>>0>>0?m:c;if(j){if(j>>>0>=1073741824){break m}c=ra(j<<2)}else{c=0}l=c+(l<<2)|0;J[l>>2]=e;if((k|0)>0){ta(c,g,k)}J[d+60>>2]=c+(j<<2);J[d+56>>2]=l+4;J[d+52>>2]=c;if(!g){break o}qa(g)}p:{q:{if(!(J[J[d+12>>2]+(f>>>3&536870908)>>2]>>>f&1)){break q}c=b+1|0;c=(c>>>0)%3|0?c:b-2|0;if((c|0)==-1|J[J[d>>2]+(c>>>3&536870908)>>2]>>>c&1){break q}c=J[J[J[d+64>>2]+12>>2]+(c<<2)>>2];if((c|0)==-1){break q}e=c+1|0;e=(e>>>0)%3|0?e:c-2|0;if((e|0)==-1){break q}j=J[d+64>>2];k=J[d>>2];while(1){c=e;e=-1;g=c+1|0;g=(g>>>0)%3|0?g:c-2|0;r:{if((g|0)==-1|J[k+(g>>>3&536870908)>>2]>>>g&1){break r}g=J[J[j+12>>2]+(g<<2)>>2];if((g|0)==-1){break r}e=g+1|0;e=(e>>>0)%3|0?e:g-2|0}if((b|0)!=(e|0)){if((e|0)==-1){break p}continue}break}break k}c=b}J[J[d+28>>2]+(c<<2)>>2]=a;b=J[d+44>>2];s:{if((b|0)!=J[d+48>>2]){J[b>>2]=c;J[d+44>>2]=b+4;break s}g=J[d+40>>2];e=b-g|0;k=e>>2;b=k+1|0;if(b>>>0>=1073741824){break l}j=e>>1;j=e>>>0>=2147483644?1073741823:b>>>0>>0?j:b;if(j){if(j>>>0>=1073741824){break m}b=ra(j<<2)}else{b=0}k=b+(k<<2)|0;J[k>>2]=c;if((e|0)>0){ta(b,g,e)}J[d+48>>2]=b+(j<<2);J[d+44>>2]=k+4;J[d+40>>2]=b;if(!g){break s}qa(g)}b=a+1|0;e=J[d+64>>2];t:{if((c>>>0)%3|0){g=c-1|0;break t}g=c+2|0;if((g|0)==-1){break n}}g=J[J[e+12>>2]+(g<<2)>>2];if((g|0)==-1){break n}g=g+((g>>>0)%3|0?-1:2)|0;if((g|0)==-1|(c|0)==(g|0)){break n}while(1){e=g+1|0;e=(e>>>0)%3|0?e:g-2|0;if(J[J[d>>2]+(e>>>3&536870908)>>2]>>>e&1){e=(g|0)<0?-1:J[(J[i+96>>2]+P((g>>>0)/3|0,12)|0)+((g>>>0)%3<<2)>>2];e=K[h+84|0]?e:J[J[h+68>>2]+(e<<2)>>2];a=J[d+56>>2];k=J[d+60>>2];u:{if(a>>>0>>0){J[a>>2]=e;J[d+56>>2]=a+4;break u}j=J[d+52>>2];l=a-j|0;m=l>>2;a=m+1|0;if(a>>>0>=1073741824){break a}k=k-j|0;n=k>>1;k=k>>>0>=2147483644?1073741823:a>>>0>>0?n:a;if(k){if(k>>>0>=1073741824){break m}a=ra(k<<2)}else{a=0}m=a+(m<<2)|0;J[m>>2]=e;if((l|0)>0){ta(a,j,l)}J[d+60>>2]=a+(k<<2);J[d+56>>2]=m+4;J[d+52>>2]=a;if(!j){break u}qa(j)}e=b+1|0;a=J[d+44>>2];v:{if((a|0)!=J[d+48>>2]){J[a>>2]=g;J[d+44>>2]=a+4;break v}k=J[d+40>>2];j=a-k|0;m=j>>2;a=m+1|0;if(a>>>0>=1073741824){break l}l=j>>1;l=j>>>0>=2147483644?1073741823:a>>>0>>0?l:a;if(l){if(l>>>0>=1073741824){break m}a=ra(l<<2)}else{a=0}m=a+(m<<2)|0;J[m>>2]=g;if((j|0)>0){ta(a,k,j)}J[d+48>>2]=a+(l<<2);J[d+44>>2]=m+4;J[d+40>>2]=a;if(!k){break v}qa(k)}a=b;b=e}J[J[d+28>>2]+(g<<2)>>2]=a;e=J[d+64>>2];w:{if((g>>>0)%3|0){g=g-1|0;break w}g=g+2|0;if((g|0)==-1){break n}}g=J[J[e+12>>2]+(g<<2)>>2];if((g|0)==-1){break n}g=g+((g>>>0)%3|0?-1:2)|0;if((g|0)==-1){break n}if((c|0)!=(g|0)){continue}break}}f=f+1|0;g=J[e+24>>2];if(f>>>0>2]-g>>2>>>0){continue}break}break k}ya();B()}break a}return}b=0;g=0;d=a;J[a+56>>2]=J[a+52>>2];J[a+44>>2]=J[a+40>>2];x:{e=J[a+64>>2];i=J[e+24>>2];if((i|0)==J[e+28>>2]){break x}y:{z:{while(1){c=b;f=J[(g<<2)+i>>2];A:{if((f|0)==-1){break A}a=J[d+56>>2];B:{if((a|0)!=J[d+60>>2]){J[a>>2]=c;J[d+56>>2]=a+4;break B}e=J[d+52>>2];b=a-e|0;i=b>>2;a=i+1|0;if(a>>>0>=1073741824){break a}h=b>>1;h=b>>>0>=2147483644?1073741823:a>>>0>>0?h:a;if(h){if(h>>>0>=1073741824){break z}a=ra(h<<2)}else{a=0}i=a+(i<<2)|0;J[i>>2]=c;if((b|0)>0){ta(a,e,b)}J[d+60>>2]=a+(h<<2);J[d+56>>2]=i+4;J[d+52>>2]=a;if(!e){break B}qa(e)}C:{D:{if(!(J[J[d+12>>2]+(g>>>3&536870908)>>2]>>>g&1)){break D}a=f+1|0;a=(a>>>0)%3|0?a:f-2|0;if((a|0)==-1|J[J[d>>2]+(a>>>3&536870908)>>2]>>>a&1){break D}a=J[J[J[d+64>>2]+12>>2]+(a<<2)>>2];if((a|0)==-1){break D}b=a+1|0;e=(b>>>0)%3|0?b:a-2|0;if((e|0)==-1){break D}h=J[d+64>>2];i=J[d>>2];while(1){a=e;e=-1;b=a+1|0;b=(b>>>0)%3|0?b:a-2|0;E:{if((b|0)==-1|J[i+(b>>>3&536870908)>>2]>>>b&1){break E}b=J[J[h+12>>2]+(b<<2)>>2];if((b|0)==-1){break E}e=b+1|0;e=(e>>>0)%3|0?e:b-2|0}if((e|0)!=(f|0)){if((e|0)==-1){break C}continue}break}break x}a=f}J[J[d+28>>2]+(a<<2)>>2]=c;b=J[d+44>>2];F:{if((b|0)!=J[d+48>>2]){J[b>>2]=a;J[d+44>>2]=b+4;break F}f=J[d+40>>2];e=b-f|0;i=e>>2;b=i+1|0;if(b>>>0>=1073741824){break y}h=e>>1;h=e>>>0>=2147483644?1073741823:b>>>0>>0?h:b;if(h){if(h>>>0>=1073741824){break z}b=ra(h<<2)}else{b=0}i=b+(i<<2)|0;J[i>>2]=a;if((e|0)>0){ta(b,f,e)}J[d+48>>2]=b+(h<<2);J[d+44>>2]=i+4;J[d+40>>2]=b;if(!f){break F}qa(f)}b=c+1|0;e=J[d+64>>2];G:{if((a>>>0)%3|0){i=a-1|0;break G}i=a+2|0;if((i|0)==-1){break A}}f=J[J[e+12>>2]+(i<<2)>>2];if((f|0)==-1){break A}i=f+((f>>>0)%3|0?-1:2)|0;if((i|0)==-1|(a|0)==(i|0)){break A}while(1){e=i+1|0;e=(e>>>0)%3|0?e:i-2|0;if(J[J[d>>2]+(e>>>3&536870908)>>2]>>>e&1){c=J[d+56>>2];H:{if((c|0)!=J[d+60>>2]){J[c>>2]=b;J[d+56>>2]=c+4;break H}f=J[d+52>>2];e=c-f|0;j=e>>2;c=j+1|0;if(c>>>0>=1073741824){break a}h=e>>1;h=e>>>0>=2147483644?1073741823:c>>>0>>0?h:c;if(h){if(h>>>0>=1073741824){break z}c=ra(h<<2)}else{c=0}j=c+(j<<2)|0;J[j>>2]=b;if((e|0)>0){ta(c,f,e)}J[d+60>>2]=c+(h<<2);J[d+56>>2]=j+4;J[d+52>>2]=c;if(!f){break H}qa(f)}e=b+1|0;c=J[d+44>>2];I:{if((c|0)!=J[d+48>>2]){J[c>>2]=i;J[d+44>>2]=c+4;break I}h=J[d+40>>2];f=c-h|0;k=f>>2;c=k+1|0;if(c>>>0>=1073741824){break y}j=f>>1;j=f>>>0>=2147483644?1073741823:c>>>0>>0?j:c;if(j){if(j>>>0>=1073741824){break z}c=ra(j<<2)}else{c=0}k=c+(k<<2)|0;J[k>>2]=i;if((f|0)>0){ta(c,h,f)}J[d+48>>2]=c+(j<<2);J[d+44>>2]=k+4;J[d+40>>2]=c;if(!h){break I}qa(h)}c=b;b=e}J[J[d+28>>2]+(i<<2)>>2]=c;e=J[d+64>>2];J:{if((i>>>0)%3|0){i=i-1|0;break J}i=i+2|0;if((i|0)==-1){break A}}f=J[J[e+12>>2]+(i<<2)>>2];if((f|0)==-1){break A}i=f+((f>>>0)%3|0?-1:2)|0;if((i|0)==-1){break A}if((a|0)!=(i|0)){continue}break}}g=g+1|0;i=J[e+24>>2];if(g>>>0>2]-i>>2>>>0){continue}break}break x}ya();B()}break a}}return}ua();B()}function Fh(a){a=a|0;var b=0,c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=Q(0),q=0,r=0;e=ea+-64|0;ea=e;j=J[J[a+28>>2]+4>>2];c=J[a+4>>2];d=J[a+8>>2];i=(c|0)==(d|0);a:{if(i){break a}d=d-c>>2;l=d>>>0<=1?1:d;h=l&3;d=J[j+8>>2];if(l-1>>>0>=3){l=l&-4;while(1){m=g;g=b<<2;g=(((m+K[J[d+(J[g+c>>2]<<2)>>2]+24|0]|0)+K[J[d+(J[(g|4)+c>>2]<<2)>>2]+24|0]|0)+K[J[d+(J[(g|8)+c>>2]<<2)>>2]+24|0]|0)+K[J[d+(J[(g|12)+c>>2]<<2)>>2]+24|0]|0;b=b+4|0;k=k+4|0;if((l|0)!=(k|0)){continue}break}}if(!h){break a}while(1){g=K[J[d+(J[(b<<2)+c>>2]<<2)>>2]+24|0]+g|0;b=b+1|0;f=f+1|0;if((h|0)!=(f|0)){continue}break}}o=J[j+80>>2];J[a+72>>2]=g;b:{if(i){b=1;break b}l=0;while(1){b=J[(l<<2)+c>>2];J[e+60>>2]=b;c:{d:{e:{f:{g:{c=J[a+28>>2];j=J[J[J[c+4>>2]+8>>2]+(b<<2)>>2];switch(J[j+28>>2]-1|0){case 0:case 2:case 4:break f;case 8:break g;default:break c}}J[e+36>>2]=-1;J[e+32>>2]=2032;J[e+48>>2]=0;J[e+52>>2]=0;J[e+40>>2]=0;J[e+44>>2]=0;g=J[c+48>>2];b=ra(32);J[e+16>>2]=b;J[e+20>>2]=17;J[e+24>>2]=-2147483616;H[b+16|0]=K[1261];c=K[1257]|K[1258]<<8|(K[1259]<<16|K[1260]<<24);d=K[1253]|K[1254]<<8|(K[1255]<<16|K[1256]<<24);H[b+8|0]=d;H[b+9|0]=d>>>8;H[b+10|0]=d>>>16;H[b+11|0]=d>>>24;H[b+12|0]=c;H[b+13|0]=c>>>8;H[b+14|0]=c>>>16;H[b+15|0]=c>>>24;c=K[1249]|K[1250]<<8|(K[1251]<<16|K[1252]<<24);d=K[1245]|K[1246]<<8|(K[1247]<<16|K[1248]<<24);H[b|0]=d;H[b+1|0]=d>>>8;H[b+2|0]=d>>>16;H[b+3|0]=d>>>24;H[b+4|0]=c;H[b+5|0]=c>>>8;H[b+6|0]=c>>>16;H[b+7|0]=c>>>24;H[b+17|0]=0;g=kb(g,e+60|0,e+16|0,-1);if(H[e+27|0]<0){qa(J[e+16>>2])}h:{if((g|0)<=0){break h}h=J[J[a+28>>2]+48>>2];b=ra(32);J[e+16>>2]=b;J[e+20>>2]=19;J[e+24>>2]=-2147483616;d=0;c=K[1429]|K[1430]<<8|(K[1431]<<16|K[1432]<<24);H[b+15|0]=c;H[b+16|0]=c>>>8;H[b+17|0]=c>>>16;H[b+18|0]=c>>>24;c=K[1426]|K[1427]<<8|(K[1428]<<16|K[1429]<<24);f=K[1422]|K[1423]<<8|(K[1424]<<16|K[1425]<<24);H[b+8|0]=f;H[b+9|0]=f>>>8;H[b+10|0]=f>>>16;H[b+11|0]=f>>>24;H[b+12|0]=c;H[b+13|0]=c>>>8;H[b+14|0]=c>>>16;H[b+15|0]=c>>>24;c=K[1418]|K[1419]<<8|(K[1420]<<16|K[1421]<<24);f=K[1414]|K[1415]<<8|(K[1416]<<16|K[1417]<<24);H[b|0]=f;H[b+1|0]=f>>>8;H[b+2|0]=f>>>16;H[b+3|0]=f>>>24;H[b+4|0]=c;H[b+5|0]=c>>>8;H[b+6|0]=c>>>16;H[b+7|0]=c>>>24;H[b+19|0]=0;i:{if(!vc(h,e+60|0,e+16|0)){break i}f=J[J[a+28>>2]+48>>2];b=ra(32);J[e>>2]=b;J[e+4>>2]=18;J[e+8>>2]=-2147483616;c=K[1547]|K[1548]<<8;H[b+16|0]=c;H[b+17|0]=c>>>8;c=K[1543]|K[1544]<<8|(K[1545]<<16|K[1546]<<24);d=K[1539]|K[1540]<<8|(K[1541]<<16|K[1542]<<24);H[b+8|0]=d;H[b+9|0]=d>>>8;H[b+10|0]=d>>>16;H[b+11|0]=d>>>24;H[b+12|0]=c;H[b+13|0]=c>>>8;H[b+14|0]=c>>>16;H[b+15|0]=c>>>24;c=K[1535]|K[1536]<<8|(K[1537]<<16|K[1538]<<24);d=K[1531]|K[1532]<<8|(K[1533]<<16|K[1534]<<24);H[b|0]=d;H[b+1|0]=d>>>8;H[b+2|0]=d>>>16;H[b+3|0]=d>>>24;H[b+4|0]=c;H[b+5|0]=c>>>8;H[b+6|0]=c>>>16;H[b+7|0]=c>>>24;H[b+18|0]=0;d=vc(f,e+60|0,e);if(H[e+11|0]>=0){break i}qa(J[e>>2])}if(H[e+27|0]<0){qa(J[e+16>>2])}j:{if(d){b=K[j+24|0];k:{if(!b){d=0;break k}b=b<<2;d=ra(b);sa(d,0,b)}h=J[J[a+28>>2]+48>>2];b=ra(32);J[e+16>>2]=b;J[e+20>>2]=19;J[e+24>>2]=-2147483616;c=K[1429]|K[1430]<<8|(K[1431]<<16|K[1432]<<24);H[b+15|0]=c;H[b+16|0]=c>>>8;H[b+17|0]=c>>>16;H[b+18|0]=c>>>24;c=K[1426]|K[1427]<<8|(K[1428]<<16|K[1429]<<24);f=K[1422]|K[1423]<<8|(K[1424]<<16|K[1425]<<24);H[b+8|0]=f;H[b+9|0]=f>>>8;H[b+10|0]=f>>>16;H[b+11|0]=f>>>24;H[b+12|0]=c;H[b+13|0]=c>>>8;H[b+14|0]=c>>>16;H[b+15|0]=c>>>24;c=K[1418]|K[1419]<<8|(K[1420]<<16|K[1421]<<24);f=K[1414]|K[1415]<<8|(K[1416]<<16|K[1417]<<24);H[b|0]=f;H[b+1|0]=f>>>8;H[b+2|0]=f>>>16;H[b+3|0]=f>>>24;H[b+4|0]=c;H[b+5|0]=c>>>8;H[b+6|0]=c>>>16;H[b+7|0]=c>>>24;H[b+19|0]=0;ve(h,e+60|0,e+16|0,K[j+24|0],d);if(H[e+27|0]<0){qa(J[e+16>>2])}h=J[J[a+28>>2]+48>>2];b=ra(32);J[e+16>>2]=b;J[e+20>>2]=18;J[e+24>>2]=-2147483616;c=K[1547]|K[1548]<<8;H[b+16|0]=c;H[b+17|0]=c>>>8;c=K[1543]|K[1544]<<8|(K[1545]<<16|K[1546]<<24);f=K[1539]|K[1540]<<8|(K[1541]<<16|K[1542]<<24);H[b+8|0]=f;H[b+9|0]=f>>>8;H[b+10|0]=f>>>16;H[b+11|0]=f>>>24;H[b+12|0]=c;H[b+13|0]=c>>>8;H[b+14|0]=c>>>16;H[b+15|0]=c>>>24;c=K[1535]|K[1536]<<8|(K[1537]<<16|K[1538]<<24);f=K[1531]|K[1532]<<8|(K[1533]<<16|K[1534]<<24);H[b|0]=f;H[b+1|0]=f>>>8;H[b+2|0]=f>>>16;H[b+3|0]=f>>>24;H[b+4|0]=c;H[b+5|0]=c>>>8;H[b+6|0]=c>>>16;H[b+7|0]=c>>>24;H[b+18|0]=0;p=ue(h,e+60|0,e+16|0);if(H[e+27|0]<0){qa(J[e+16>>2])}Yg(e+32|0,g,d,K[j+24|0],p);if(!d){break j}qa(d);break j}if(!Ug(e+32|0,j,g)){break h}}b=J[a+40>>2];l:{if((b|0)!=J[a+44>>2]){J[b>>2]=2032;c=J[e+36>>2];J[b+16>>2]=0;J[b+8>>2]=0;J[b+12>>2]=0;J[b+4>>2]=c;c=J[e+44>>2];d=J[e+40>>2];if((c|0)!=(d|0)){d=c-d|0;if((d|0)<0){break e}c=ra(d);J[b+8>>2]=c;J[b+12>>2]=c;J[b+16>>2]=c+(d&-4);g=J[e+40>>2];d=J[e+44>>2]-g|0;if((d|0)>0){c=ta(c,g,d)+d|0}J[b+12>>2]=c}N[b+20>>2]=N[e+52>>2];J[a+40>>2]=b+24;break l}g=0;m:{n:{o:{p:{b=J[a+40>>2];f=J[a+36>>2];d=(b-f|0)/24|0;c=d+1|0;if(c>>>0<178956971){h=(J[a+44>>2]-f|0)/24|0;i=h<<1;h=h>>>0>=89478485?178956970:c>>>0>>0?i:c;if(h){if(h>>>0>=178956971){break p}g=ra(P(h,24))}c=P(d,24)+g|0;J[c>>2]=2032;d=J[e+36>>2];J[c+16>>2]=0;J[c+8>>2]=0;J[c+12>>2]=0;J[c+4>>2]=d;d=J[e+44>>2];i=J[e+40>>2];if((d|0)!=(i|0)){d=d-i|0;if((d|0)<0){break o}k=ra(d);J[c+8>>2]=k;J[c+16>>2]=k+(d&-4);q=c,r=ta(k,i,d)+d|0,J[q+12>>2]=r}d=P(h,24)+g|0;N[c+20>>2]=N[e+52>>2];g=c+24|0;if((b|0)==(f|0)){break n}while(1){c=c-24|0;J[c>>2]=2032;b=b-24|0;J[c+4>>2]=J[b+4>>2];J[c+8>>2]=J[b+8>>2];J[c+12>>2]=J[b+12>>2];J[c+16>>2]=J[b+16>>2];J[b+16>>2]=0;J[b+8>>2]=0;J[b+12>>2]=0;N[c+20>>2]=N[b+20>>2];if((b|0)!=(f|0)){continue}break}J[a+44>>2]=d;d=J[a+40>>2];J[a+40>>2]=g;b=J[a+36>>2];J[a+36>>2]=c;if((b|0)==(d|0)){break m}while(1){d=d-24|0;ga[J[J[d>>2]>>2]](d)|0;if((b|0)!=(d|0)){continue}break}break m}ua();B()}ya();B()}ua();B()}J[a+44>>2]=d;J[a+40>>2]=g;J[a+36>>2]=c}if(b){qa(b)}}b=e+32|0;c=Kc(b,j,o);J[e>>2]=c;J[e+24>>2]=0;J[e+16>>2]=0;J[e+20>>2]=0;ae(b,j,e+16|0,c);b=J[e+16>>2];if(b){J[e+20>>2]=b;qa(b)}b=J[a+64>>2];q:{if(b>>>0>2]){c=J[e>>2];J[e>>2]=0;J[b>>2]=c;J[a+64>>2]=b+4;break q}c=0;r:{s:{t:{d=J[a+60>>2];g=J[a+64>>2]-d>>2;b=g+1|0;if(b>>>0<1073741824){d=J[a+68>>2]-d|0;j=d>>1;b=d>>>0>=2147483644?1073741823:b>>>0>>0?j:b;if(b){if(b>>>0>=1073741824){break t}c=ra(b<<2)}j=J[e>>2];J[e>>2]=0;d=(g<<2)+c|0;J[d>>2]=j;g=(b<<2)+c|0;j=d+4|0;c=J[a+64>>2];b=J[a+60>>2];if((c|0)==(b|0)){break s}while(1){c=c-4|0;f=J[c>>2];J[c>>2]=0;d=d-4|0;J[d>>2]=f;if((b|0)!=(c|0)){continue}break}J[a+68>>2]=g;c=J[a+64>>2];J[a+64>>2]=j;b=J[a+60>>2];J[a+60>>2]=d;if((b|0)==(c|0)){break r}while(1){c=c-4|0;d=J[c>>2];J[c>>2]=0;if(d){Oa(d)}if((b|0)!=(c|0)){continue}break}break r}ua();B()}ya();B()}J[a+68>>2]=g;J[a+64>>2]=j;J[a+60>>2]=d}if(b){qa(b)}}b=J[e>>2];J[e>>2]=0;if(b){Oa(b)}J[e+32>>2]=2032;b=J[e+40>>2];if(!b){break c}J[e+44>>2]=b;qa(b);break c}J[e+32>>2]=2032;a=J[e+40>>2];if(a){J[e+44>>2]=a;qa(a)}b=0;break b}f=0;d=0;g=0;h=K[j+24|0];u:{if(!h){break u}b=0;g=h<<2;d=ra(g);c=d;i=h&7;if(i){while(1){J[c>>2]=2147483647;c=c+4|0;b=b+1|0;if((i|0)!=(b|0)){continue}break}}if((h-1&1073741823)>>>0>=7){b=d+g|0;while(1){J[c+24>>2]=2147483647;J[c+28>>2]=2147483647;J[c+16>>2]=2147483647;J[c+20>>2]=2147483647;J[c+8>>2]=2147483647;J[c+12>>2]=2147483647;J[c>>2]=2147483647;J[c+4>>2]=2147483647;c=c+32|0;if((b|0)!=(c|0)){continue}break}}b=K[j+24|0];if(!b){g=0;break u}b=b<<2;g=ra(b);sa(g,0,b)}b=K[j+24|0];if(!J[j+80>>2]){break d}while(1){Zc(j,f,b<<24>>24,g);b=K[j+24|0];v:{if(!b){break v}c=0;if((b|0)!=1){m=b&254;h=0;while(1){i=c<<2;k=i+d|0;n=J[g+i>>2];if((n|0)>2]){J[k>>2]=n}i=i|4;k=i+d|0;i=J[g+i>>2];if(J[k>>2]>(i|0)){J[k>>2]=i}c=c+2|0;h=h+2|0;if((m|0)!=(h|0)){continue}break}}if(!(b&1)){break v}c=c<<2;h=c+d|0;c=J[c+g>>2];if(J[h>>2]<=(c|0)){break v}J[h>>2]=c}f=f+1|0;if(f>>>0>2]){continue}break}break d}ua();B()}c=0;w:{if(!b){break w}x:{while(1){y:{k=(c<<2)+d|0;b=J[a+52>>2];z:{if((b|0)!=J[a+56>>2]){J[b>>2]=J[k>>2];J[a+52>>2]=b+4;break z}h=J[a+48>>2];f=b-h|0;m=f>>2;b=m+1|0;if(b>>>0>=1073741824){break y}i=f>>1;i=f>>>0>=2147483644?1073741823:b>>>0>>0?i:b;if(i){if(i>>>0>=1073741824){break x}b=ra(i<<2)}else{b=0}m=b+(m<<2)|0;J[m>>2]=J[k>>2];if((f|0)>0){ta(b,h,f)}J[a+56>>2]=b+(i<<2);J[a+52>>2]=m+4;J[a+48>>2]=b;if(!h){break z}qa(h)}c=c+1|0;if(c>>>0>2];if(l>>>0>2]-c>>2>>>0){continue}break}}ea=e- -64|0;return b|0}function zd(a,b){var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=Q(0),q=0,r=0,s=0,t=0,u=Q(0);g=ea-112|0;ea=g;J[g+88>>2]=0;J[g+92>>2]=0;J[g+80>>2]=0;J[g+84>>2]=0;J[g+96>>2]=1065353216;d=J[a+80>>2];J[g+40>>2]=0;J[g+32>>2]=0;J[g+36>>2]=0;a:{if(d){if(d>>>0>=1073741824){break a}c=d<<2;h=ra(c);J[g+32>>2]=h;d=c+h|0;J[g+40>>2]=d;sa(h,0,c);J[g+36>>2]=d;while(1){d=J[J[b>>2]>>2];c=J[b+48>>2]+Al(J[b+40>>2],J[b+44>>2],t,0)|0;f=d+c|0;d=K[f+12|0]|K[f+13|0]<<8|(K[f+14|0]<<16|K[f+15|0]<<24);J[g+72>>2]=K[f+8|0]|K[f+9|0]<<8|(K[f+10|0]<<16|K[f+11|0]<<24);J[g+76>>2]=d;d=K[f+4|0]|K[f+5|0]<<8|(K[f+6|0]<<16|K[f+7|0]<<24);J[g+64>>2]=K[f|0]|K[f+1|0]<<8|(K[f+2|0]<<16|K[f+3|0]<<24);J[g+68>>2]=d;e=K[f|0]|K[f+1|0]<<8|(K[f+2|0]<<16|K[f+3|0]<<24);c=K[f+4|0]|K[f+5|0]<<8|(K[f+6|0]<<16|K[f+7|0]<<24);d=K[f+12|0]|K[f+13|0]<<8|(K[f+14|0]<<16|K[f+15|0]<<24);J[g+56>>2]=K[f+8|0]|K[f+9|0]<<8|(K[f+10|0]<<16|K[f+11|0]<<24);J[g+60>>2]=d;J[g+48>>2]=e;J[g+52>>2]=c;d=0;o=J[g+84>>2];b:{if(!o){break b}f=J[g+80>>2];m=J[g+60>>2]^(J[g+56>>2]^(J[g+52>>2]^(J[g+48>>2]^318)+239)+239)+239;c=m&o-1;e=Dl(o);c:{if(e>>>0<=1){break c}c=m;if(c>>>0>>0){break c}c=(m>>>0)%(o>>>0)|0}l=f;f=c;c=J[l+(c<<2)>>2];if(!c){break b}c=J[c>>2];if(!c){break b}d:{if(e>>>0>=2){l=J[g+60>>2];i=J[g+56>>2];n=J[g+52>>2];j=J[g+48>>2];while(1){e=J[c+4>>2];e:{if((e|0)!=(m|0)){if(e>>>0>=o>>>0){e=(e>>>0)%(o>>>0)|0}if((e|0)!=(f|0)){break b}break e}e=J[c+8>>2];f:{if((e|0)!=(j|0)){e=(e|0)==(j|0);break f}e=J[c+12>>2];if((e|0)!=(n|0)){e=(e|0)==(n|0);break f}e=J[c+16>>2];if((e|0)!=(i|0)){e=(e|0)==(i|0);break f}e=(l|0)==J[c+20>>2]}if(e){break d}}c=J[c>>2];if(c){continue}break}break b}j=o-1|0;l=J[g+60>>2];o=J[g+56>>2];i=J[g+52>>2];n=J[g+48>>2];while(1){e=J[c+4>>2];g:{if((e|0)!=(m|0)){if((f|0)!=(e&j)){break b}break g}e=J[c+8>>2];if((e|0)!=(n|0)){if((e|0)!=(n|0)){break g}break d}e=J[c+12>>2];if((e|0)!=(i|0)){if((e|0)!=(i|0)){break g}break d}e=J[c+16>>2];if((e|0)!=(o|0)){if((e|0)!=(o|0)){break g}break d}if((l|0)==J[c+20>>2]){break d}}c=J[c>>2];if(c){continue}break}break b}d=c}h:{if(d){J[(t<<2)+h>>2]=J[d+24>>2];break h}d=J[g+60>>2];J[g+16>>2]=J[g+56>>2];J[g+20>>2]=d;d=J[g+52>>2];J[g+8>>2]=J[g+48>>2];J[g+12>>2]=d;J[g+24>>2]=r;d=0;m=J[g+20>>2]^(J[g+16>>2]^(J[g+12>>2]^(J[g+8>>2]^318)+239)+239)+239;i:{j:{k=g+80|0;i=J[k+4>>2];if(!i){break j}c=Dl(i);k:{if(c>>>0>=2){d=m;if(i>>>0<=d>>>0){d=(m>>>0)%(i>>>0)|0}h=J[J[k>>2]+(d<<2)>>2];if(!h){break j}if(c>>>0<2){break k}e=J[g+20>>2];j=J[g+16>>2];l=J[g+12>>2];f=J[g+8>>2];while(1){h=J[h>>2];if(!h){break j}c=J[h+4>>2];if((c|0)!=(m|0)){if(c>>>0>=i>>>0){c=(c>>>0)%(i>>>0)|0}if((c|0)!=(d|0)){break j}}c=J[h+8>>2];l:{if((c|0)!=(f|0)){c=(c|0)==(f|0);break l}c=J[h+12>>2];if((c|0)!=(l|0)){c=(c|0)==(l|0);break l}c=J[h+16>>2];if((c|0)!=(j|0)){c=(c|0)==(j|0);break l}c=(e|0)==J[h+20>>2]}if(!c){continue}break}d=0;break i}d=m&i-1;h=J[J[k>>2]+(d<<2)>>2];if(!h){break j}}f=i-1|0;e=J[g+20>>2];n=J[g+16>>2];j=J[g+12>>2];l=J[g+8>>2];while(1){h=J[h>>2];if(!h){break j}c=J[h+4>>2];if((c|0)!=(m|0)&(c&f)!=(d|0)){break j}c=J[h+8>>2];m:{if((c|0)!=(l|0)){c=(c|0)==(l|0);break m}c=J[h+12>>2];if((c|0)!=(j|0)){c=(c|0)==(j|0);break m}c=J[h+16>>2];if((c|0)!=(n|0)){c=(c|0)==(n|0);break m}c=(e|0)==J[h+20>>2]}if(!c){continue}break}d=0;break i}h=ra(28);c=J[g+20>>2];J[h+16>>2]=J[g+16>>2];J[h+20>>2]=c;c=J[g+12>>2];J[h+8>>2]=J[g+8>>2];J[h+12>>2]=c;c=J[g+24>>2];J[h>>2]=0;J[h+4>>2]=m;J[h+24>>2]=c;u=Q(J[k+12>>2]+1>>>0);p=N[k+16>>2];n:{if(u>Q(p*Q(i>>>0))?0:i){break n}d=2;c=(i-1&i)!=0|i>>>0<3|i<<1;p=Q(W(Q(u/p)));o:{if(p=Q(0)){e=~~p>>>0;break o}e=0}c=c>>>0>e>>>0?c:e;p:{if((c|0)==1){break p}if(!(c&c-1)){d=c;break p}d=Ka(c);i=J[k+4>>2]}q:{if(d>>>0<=i>>>0){if(d>>>0>=i>>>0){break q}e=i>>>0<3;p=Q(W(Q(Q(M[k+12>>2])/N[k+16>>2])));r:{if(p=Q(0)){c=~~p>>>0;break r}c=0}l=i;s:{t:{if(e){break t}if(Dl(i)>>>0>1){break t}c=c>>>0<2?c:1<<32-S(c-1|0);break s}c=Ka(c)}d=c>>>0>>0?d:c;if(l>>>0<=d>>>0){break q}}e=0;l=0;j=d;u:{v:{w:{x:{if(d){if(j>>>0>=1073741824){break x}d=ra(j<<2);c=J[k>>2];J[k>>2]=d;if(c){qa(c)}J[k+4>>2]=j;if(j>>>0>=4){d=j&-4;c=0;while(1){f=e<<2;J[f+J[k>>2]>>2]=0;J[J[k>>2]+(f|4)>>2]=0;J[J[k>>2]+(f|8)>>2]=0;J[J[k>>2]+(f|12)>>2]=0;e=e+4|0;c=c+4|0;if((d|0)!=(c|0)){continue}break}}d=j&3;if(d){while(1){J[J[k>>2]+(e<<2)>>2]=0;e=e+1|0;l=l+1|0;if((d|0)!=(l|0)){continue}break}}c=J[k+8>>2];if(!c){break u}d=k+8|0;f=J[c+4>>2];e=Dl(j);if(e>>>0<2){break w}f=f>>>0>=j>>>0?(f>>>0)%(j>>>0)|0:f;J[J[k>>2]+(f<<2)>>2]=d;d=J[c>>2];if(!d){break u}if(e>>>0<=1){break v}while(1){l=J[d+4>>2];if(j>>>0<=l>>>0){l=(l>>>0)%(j>>>0)|0}y:{if((f|0)==(l|0)){c=d;break y}e=d;o=l<<2;n=o+J[k>>2]|0;if(!J[n>>2]){J[n>>2]=c;c=d;f=l;break y}while(1){l=e;e=J[e>>2];if(e){i=J[d+8>>2];n=J[e+8>>2];z:{if((i|0)!=(n|0)){i=(i|0)==(n|0);break z}i=J[d+12>>2];n=J[e+12>>2];if((i|0)!=(n|0)){i=(i|0)==(n|0);break z}i=J[d+16>>2];n=J[e+16>>2];if((i|0)!=(n|0)){i=(i|0)==(n|0);break z}i=J[d+20>>2]==J[e+20>>2]}if(i){continue}}break}J[c>>2]=e;J[l>>2]=J[J[o+J[k>>2]>>2]>>2];J[J[o+J[k>>2]>>2]>>2]=d}d=J[c>>2];if(d){continue}break}break u}d=J[k>>2];J[k>>2]=0;if(d){qa(d)}J[k+4>>2]=0;break u}ya();B()}f=j-1&f;J[J[k>>2]+(f<<2)>>2]=d;d=J[c>>2];if(!d){break u}}i=j-1|0;while(1){l=i&J[d+4>>2];A:{if((l|0)==(f|0)){c=d;break A}e=d;o=l<<2;j=o+J[k>>2]|0;if(J[j>>2]){while(1){l=e;e=J[e>>2];if(e){n=J[d+8>>2];j=J[e+8>>2];B:{if((n|0)!=(j|0)){j=(j|0)==(n|0);break B}n=J[d+12>>2];j=J[e+12>>2];if((n|0)!=(j|0)){j=(j|0)==(n|0);break B}n=J[d+16>>2];j=J[e+16>>2];if((n|0)!=(j|0)){j=(j|0)==(n|0);break B}j=J[d+20>>2]==J[e+20>>2]}if(j){continue}}break}J[c>>2]=e;J[l>>2]=J[J[o+J[k>>2]>>2]>>2];J[J[o+J[k>>2]>>2]>>2]=d;break A}J[j>>2]=c;c=d;f=l}d=J[c>>2];if(d){continue}break}}}i=J[k+4>>2];d=i-1|0;if(!(d&i)){d=d&m;break n}if(i>>>0>m>>>0){d=m;break n}d=(m>>>0)%(i>>>0)|0}c=J[k>>2]+(d<<2)|0;d=J[c>>2];C:{D:{if(!d){d=k+8|0;J[h>>2]=J[d>>2];J[k+8>>2]=h;J[c>>2]=d;d=J[h>>2];if(!d){break C}d=J[d+4>>2];c=i-1|0;E:{if(!(c&i)){d=c&d;break E}if(d>>>0>>0){break E}d=(d>>>0)%(i>>>0)|0}d=J[k>>2]+(d<<2)|0;break D}J[h>>2]=J[d>>2]}J[d>>2]=h}J[k+12>>2]=J[k+12>>2]+1;d=1}H[g+108|0]=d;J[g+104>>2]=h;d=J[a+40>>2];ta(J[J[a>>2]>>2]+P(d,r)|0,g- -64|0,d);h=J[g+32>>2];J[h+(t<<2)>>2]=r;r=r+1|0}d=t+1|0;q=d?q:q+1|0;t=d;c=J[a+80>>2];if(!q&c>>>0>d>>>0){continue}break}if((c|0)!=(r|0)){F:{if(!K[a+84|0]){b=J[a+72>>2];m=J[a+68>>2];if((b|0)==(m|0)){break F}b=b-m>>2;c=b>>>0<=1?1:b;q=c&3;d=0;b=0;if(c-1>>>0>=3){e=c&-4;while(1){f=b<<2;c=f+m|0;J[c>>2]=J[(J[c>>2]<<2)+h>>2];c=m+(f|4)|0;J[c>>2]=J[(J[c>>2]<<2)+h>>2];c=m+(f|8)|0;J[c>>2]=J[(J[c>>2]<<2)+h>>2];c=m+(f|12)|0;J[c>>2]=J[(J[c>>2]<<2)+h>>2];b=b+4|0;s=s+4|0;if((e|0)!=(s|0)){continue}break}}if(!q){break F}while(1){c=m+(b<<2)|0;J[c>>2]=J[(J[c>>2]<<2)+h>>2];b=b+1|0;d=d+1|0;if((q|0)!=(d|0)){continue}break}break F}H[a+84|0]=0;e=a+68|0;b=J[a+68>>2];d=J[a+72>>2]-b>>2;G:{if(d>>>0>>0){La(e,c-d|0,2176);c=J[a+80>>2];break G}if(c>>>0>=d>>>0){break G}J[a+72>>2]=b+(c<<2)}if(!c){break F}m=J[e>>2];d=0;b=0;if(c>>>0>=4){q=c&-4;while(1){f=b<<2;J[f+m>>2]=J[f+h>>2];e=f|4;J[e+m>>2]=J[e+h>>2];e=f|8;J[e+m>>2]=J[e+h>>2];e=f|12;J[e+m>>2]=J[e+h>>2];b=b+4|0;s=s+4|0;if((q|0)!=(s|0)){continue}break}}e=c&3;if(!e){break F}while(1){c=b<<2;J[c+m>>2]=J[c+h>>2];b=b+1|0;d=d+1|0;if((e|0)!=(d|0)){continue}break}}J[a+80>>2]=r}qa(h)}b=J[g+88>>2];if(b){while(1){a=J[b>>2];qa(b);b=a;if(b){continue}break}}a=J[g+80>>2];J[g+80>>2]=0;if(a){qa(a)}ea=g+112|0;return r}ua();B()}function Ie(a,b,c,d,e,f,g,h,i){var j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,K=0,L=0,N=0,O=0,P=0,Q=0;k=ea-336|0;ea=k;n=h;p=i&65535;o=d;m=e&65535;r=(e^i)&-2147483648;t=i>>>16&32767;u=e>>>16&32767;a:{b:{if(t-32767>>>0>4294934529&u-32767>>>0>=4294934530){break b}j=e&2147483647;if(!(!d&(j|0)==2147418112?!(b|c):j>>>0<2147418112)){x=d;r=e|32768;break a}e=i&2147483647;if(!(!h&(e|0)==2147418112?!(f|g):e>>>0<2147418112)){x=h;r=i|32768;b=f;c=g;break a}if(!(b|d|(j^2147418112|c))){if(!(f|h|(e^2147418112|g))){b=0;c=0;r=2147450880;break a}r=r|2147418112;b=0;c=0;break a}if(!(f|h|(e^2147418112|g))){b=0;c=0;break a}if(!(b|d|(c|j))){b=!(f|h|(e|g));x=b?0:x;r=b?2147450880:r;b=0;c=0;break a}if(!(f|h|(e|g))){r=r|2147418112;b=0;c=0;break a}if((j|0)==65535|j>>>0<65535){i=b;d=!(m|o);h=d<<6;j=S(d?b:o)+32|0;b=S(d?c:m);b=h+((b|0)==32?j:b)|0;Sa(k+320|0,i,c,o,m,b-15|0);l=16-b|0;o=J[k+328>>2];m=J[k+332>>2];c=J[k+324>>2];b=J[k+320>>2]}if(e>>>0>65535){break b}d=!(n|p);e=d<<6;h=S(d?f:n)+32|0;d=S(d?g:p);d=e+((d|0)==32?h:d)|0;Sa(k+304|0,f,g,n,p,d-15|0);l=(d+l|0)-16|0;n=J[k+312>>2];p=J[k+316>>2];f=J[k+304>>2];g=J[k+308>>2]}e=p|65536;C=e;D=n;d=n;j=e<<15|d>>>17;e=d<<15|g>>>17;d=0-e|0;h=j;i=1963258675-(j+((e|0)!=0)|0)|0;Za(k+288|0,e,j,0,0,d,i,0,0);j=J[k+296>>2];Za(k+272|0,0-j|0,0-(J[k+300>>2]+((j|0)!=0)|0)|0,0,0,d,i,0,0);d=J[k+280>>2];i=d<<1|J[k+276>>2]>>>31;d=J[k+284>>2]<<1|d>>>31;Za(k+256|0,i,d,0,0,e,h,0,0);j=d;d=J[k+264>>2];Za(k+240|0,i,j,0,0,0-d|0,0-(J[k+268>>2]+((d|0)!=0)|0)|0,0,0);i=J[k+248>>2];j=i<<1|J[k+244>>2]>>>31;d=J[k+252>>2]<<1|i>>>31;Za(k+224|0,j,d,0,0,e,h,0,0);i=d;d=J[k+232>>2];Za(k+208|0,j,i,0,0,0-d|0,0-(J[k+236>>2]+((d|0)!=0)|0)|0,0,0);d=J[k+216>>2];i=d<<1|J[k+212>>2]>>>31;d=J[k+220>>2]<<1|d>>>31;Za(k+192|0,i,d,0,0,e,h,0,0);j=d;d=J[k+200>>2];Za(k+176|0,i,j,0,0,0-d|0,0-(J[k+204>>2]+((d|0)!=0)|0)|0,0,0);d=e;i=J[k+184>>2];e=i<<1|J[k+180>>2]>>>31;s=e-1|0;i=(J[k+188>>2]<<1|i>>>31)-!e|0;Za(k+160|0,d,h,0,0,s,i,0,0);d=f;j=g<<15|d>>>17;Za(k+144|0,d<<15,j,0,0,s,i,0,0);h=J[k+172>>2];p=J[k+160>>2];e=J[k+152>>2];d=p+e|0;n=J[k+164>>2];j=n+J[k+156>>2]|0;j=d>>>0>>0?j+1|0:j;e=d;d=j;n=(n|0)==(d|0)&e>>>0

>>0|d>>>0>>0;j=n+J[k+168>>2]|0;h=j>>>0>>0?h+1|0:h;p=!d&e>>>0>1|(d|0)!=0;n=p+j|0;j=h;h=n;Za(k+112|0,s,i,0,0,0-h|0,0-(((h|0)!=0)+(h>>>0

>>0?j+1|0:j)|0)|0,0,0);Za(k+128|0,1-e|0,0-((e>>>0>1)+d|0)|0,0,0,s,i,0,0);I=(u-t|0)+l|0;e=J[k+116>>2];z=e;d=J[k+112>>2];j=e<<1|d>>>31;A=d<<1;q=j;d=j;h=J[k+140>>2];y=h;e=J[k+136>>2];j=h<<1|e>>>31;i=e<<1|J[k+132>>2]>>>31;h=i+A|0;d=d+j|0;d=h>>>0>>0?d+1|0:d;e=d;d=d-(h>>>0<13927)|0;n=d;l=0;j=m|65536;K=j;L=o;d=o;j=j<<1|d>>>31;P=d<<1;Q=j;E=j;w=Al(n,l,j,0);d=fa;v=d;j=b;d=c<<1|j>>>31;t=j<<1;s=d;p=d;j=0;u=j;i=h-13927|0;l=(e|0)==(n|0)&i>>>0>>0|e>>>0>n>>>0;m=(e|0)==(q|0)&h>>>0>>0|e>>>0>>0;d=J[k+120>>2];h=J[k+124>>2]<<1|d>>>31;e=y>>>31|0;d=e+(d<<1|z>>>31)|0;j=h;j=d>>>0>>0?j+1|0:j;e=d;d=m+d|0;j=d>>>0>>0?j+1|0:j;e=d;d=l+d|0;l=d>>>0>>0?j+1|0:j;e=d;d=d-1|0;F=l-!e|0;A=0;j=Al(p,u,F,A);e=j+w|0;h=fa+v|0;h=e>>>0>>0?h+1|0:h;l=(h|0)==(v|0)&e>>>0>>0|h>>>0>>0;j=0;w=l;q=d;d=o;N=c>>>31|0;v=N|d<<1;y=0;l=Al(q,j,v,y);d=l+e|0;j=fa+h|0;j=d>>>0>>0?j+1|0:j;o=d;m=j;e=(j|0)==(h|0)&d>>>0>>0|h>>>0>j>>>0;d=w+e|0;l=0;l=d>>>0>>0?1:l;e=Al(E,u,F,A);d=e+d|0;j=fa+l|0;w=d;d=d>>>0>>0?j+1|0:j;l=Al(E,u,q,y);h=fa;B=Al(v,y,F,A);e=B+l|0;j=fa+h|0;j=e>>>0>>0?j+1|0:j;B=e;e=j;j=(h|0)==(j|0)&l>>>0>B>>>0|h>>>0>j>>>0;l=w+e|0;d=d+j|0;h=l;l=h>>>0>>0?d+1|0:d;e=0;d=e+o|0;j=m+B|0;j=d>>>0>>0?j+1|0:j;e=j;m=(j|0)==(m|0)&d>>>0>>0|j>>>0>>0;h=m+h|0;j=l;w=h;l=h>>>0>>0?j+1|0:j;o=d;m=e;B=i;h=Al(i,0,v,y);e=fa;i=Al(n,u,p,u);d=i+h|0;j=fa+e|0;j=d>>>0>>0?j+1|0:j;e=(e|0)==(j|0)&d>>>0>>0|e>>>0>j>>>0;h=j;G=w;z=e;H=t&-2;i=Al(q,y,H,0);e=i+d|0;j=fa+j|0;j=e>>>0>>0?j+1|0:j;w=e;i=e;e=j;i=(j|0)==(h|0)&d>>>0>i>>>0|h>>>0>j>>>0;d=z+i|0;h=0;h=d>>>0>>0?1:h;j=d;i=d+o|0;d=h+m|0;z=i;h=i;d=h>>>0>>0?d+1|0:d;i=d;h=(d|0)==(m|0)&h>>>0>>0|d>>>0>>0;d=G+h|0;j=l;G=d;o=d>>>0>>0?j+1|0:j;O=Al(E,u,B,x);E=fa;h=Al(F,A,H,x);d=h+O|0;j=fa+E|0;F=d;m=Al(n,u,v,y);l=d+m|0;h=d>>>0>>0?j+1|0:j;d=h+fa|0;d=l>>>0>>0?d+1|0:d;v=l;m=Al(p,u,q,y);j=l+m|0;l=fa+d|0;A=j;l=j>>>0>>0?l+1|0:l;m=0;q=(d|0)==(l|0)&v>>>0>j>>>0|d>>>0>l>>>0;j=(d|0)==(h|0)&v>>>0>>0|d>>>0>>0;d=j+((h|0)==(E|0)&F>>>0>>0|h>>>0>>0)|0;h=0;d=q+d|0;q=l|0;h=q+z|0;j=(d|m)+i|0;j=h>>>0>>0?j+1|0:j;q=h;d=h;m=j;h=(i|0)==(j|0)&d>>>0>>0|i>>>0>j>>>0;d=h+G|0;j=o;v=d;i=d>>>0>>0?j+1|0:j;z=Al(n,u,H,x);n=fa;h=Al(p,u,B,x);d=h+z|0;j=fa+n|0;j=d>>>0>>0?j+1|0:j;o=0;h=(j|0)==(n|0)&d>>>0>>0|j>>>0>>0;n=j;d=j+w|0;j=(h|o)+e|0;h=d;j=d>>>0>>0?j+1|0:j;n=(e|0)==(j|0)&d>>>0>>0|e>>>0>j>>>0;e=0+d|0;d=j;l=A+d|0;l=e>>>0>>0?l+1|0:l;e=(d|0)==(l|0)&e>>>0>>0|d>>>0>l>>>0;d=n+e|0;j=0;j=d>>>0>>0?1:j;e=d;d=d+q|0;j=j+m|0;j=d>>>0>>0?j+1|0:j;e=j;j=(m|0)==(j|0)&d>>>0>>0|j>>>0>>0;h=j+v|0;l=i;l=h>>>0>>0?l+1|0:l;i=l;c:{if((l|0)==131071|l>>>0<131071){L=P|N;K=y|Q;Za(k+80|0,d,e,h,i,f,g,D,C);j=b<<17;b=0;c=J[k+88>>2];m=b-c|0;l=J[k+80>>2];p=J[k+84>>2];n=(l|p)!=0;o=m-n|0;m=(j-(J[k+92>>2]+(b>>>0>>0)|0)|0)-(m>>>0>>0)|0;n=0-l|0;p=0-(((l|0)!=0)+p|0)|0;b=I+16382|0;break c}d=(e&1)<<31|d>>>1;e=h<<31|e>>>1;h=(i&1)<<31|h>>>1;i=i>>>1|0;Za(k+96|0,d,e,h,i,f,g,D,C);m=0;n=J[k+104>>2];p=m-n|0;l=J[k+96>>2];s=J[k+100>>2];t=(l|s)!=0;o=p-t|0;m=((b<<16)-(J[k+108>>2]+(m>>>0>>0)|0)|0)-(p>>>0>>0)|0;n=0-l|0;p=0-(((l|0)!=0)+s|0)|0;t=b;s=c;b=I+16383|0}if((b|0)>=32767){r=r|2147418112;b=0;c=0;break a}d:{if((b|0)>0){c=o;l=m<<1|c>>>31;o=c<<1|p>>>31;m=l;t=h;s=i&65535|b<<16;b=n;l=p<<1|b>>>31;b=b<<1;break d}if((b|0)<=-113){b=0;c=0;break a}Ib(k- -64|0,d,e,h,i,1-b|0);Sa(k+48|0,t,s,L,K,b+112|0);d=J[k+64>>2];e=J[k+68>>2];t=J[k+72>>2];s=J[k+76>>2];Za(k+32|0,f,g,D,C,d,e,t,s);c=J[k+40>>2];i=c<<1;c=J[k+44>>2]<<1|c>>>31;b=J[k+56>>2];h=J[k+36>>2];o=h>>>31|i;i=b-o|0;l=J[k+60>>2]-((b>>>0>>0)+c|0)|0;c=J[k+32>>2];h=h<<1|c>>>31;c=c<<1;j=J[k+52>>2];b=J[k+48>>2];m=(h|0)==(j|0)&c>>>0>b>>>0|h>>>0>j>>>0;o=i-m|0;m=l-(i>>>0>>0)|0;i=b;b=b-c|0;l=j-((c>>>0>i>>>0)+h|0)|0}Za(k+16|0,f,g,D,C,3,0,0,0);Za(k,f,g,D,C,5,0,0,0);j=0;h=l+j|0;n=d&1;c=b+n|0;h=c>>>0>>0?h+1|0:h;i=c;b=i;g=(g|0)==(h|0)&b>>>0>f>>>0|g>>>0>>0;c=(h|0)==(j|0)&b>>>0>>0|h>>>0>>0;b=c+o|0;l=m;l=b>>>0>>0?l+1|0:l;f=b;c=(l|0)==(C|0);c=c&(b|0)==(D|0)?g:c&b>>>0>D>>>0|l>>>0>C>>>0;b=c+d|0;j=e;j=b>>>0>>0?j+1|0:j;c=b;b=j;e=(j|0)==(e|0)&c>>>0>>0|e>>>0>j>>>0;d=e+t|0;j=s;j=d>>>0>>0?j+1|0:j;o=d;d=J[k+20>>2];g=(d|0)==(h|0)&M[k+16>>2]>>0|d>>>0>>0;d=J[k+28>>2];e=J[k+24>>2];g=j>>>0<2147418112&((e|0)==(f|0)&(d|0)==(l|0)?g:(d|0)==(l|0)&e>>>0>>0|d>>>0>>0);e=g+c|0;d=b;d=e>>>0>>0?d+1|0:d;c=(b|0)==(d|0)&c>>>0>e>>>0|b>>>0>d>>>0;b=o+c|0;j=b>>>0>>0?j+1|0:j;g=b;b=J[k+4>>2];h=(b|0)==(h|0)&M[k>>2]>>0|b>>>0>>0;b=J[k+12>>2];c=J[k+8>>2];c=j>>>0<2147418112&((c|0)==(f|0)&(b|0)==(l|0)?h:(b|0)==(l|0)&c>>>0>>0|b>>>0>>0);b=c+e|0;l=b>>>0>>0?d+1|0:d;c=l;f=(d|0)==(l|0)&b>>>0>>0|d>>>0>l>>>0;e=g+f|0;d=j;x=e|x;r=r|(e>>>0>>0?d+1|0:d)}J[a>>2]=b;J[a+4>>2]=c;J[a+8>>2]=x;J[a+12>>2]=r;ea=k+336|0}function hl(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0;h=ea-48|0;ea=h;e=J[a+4>>2];i=J[a+12>>2];J[h+40>>2]=0;a=h;J[a+32>>2]=0;J[a+36>>2]=0;J[a+24>>2]=0;J[a+28>>2]=0;J[a+16>>2]=0;J[a+20>>2]=0;J[a+8>>2]=0;J[a+12>>2]=0;k=J[J[J[e+4>>2]+8>>2]+(i<<2)>>2];c=a+8|0;if((b|0)==-1){b=Xg(i,e)}a:{if((b|0)==-2){break a}if((ga[J[J[e>>2]+8>>2]](e)|0)==1){g=ea-32|0;ea=g;f=J[J[J[e+4>>2]+8>>2]+(i<<2)>>2];b:{c:{d:{if((ga[J[J[e>>2]+8>>2]](e)|0)!=1|b-1>>>0>5){break d}j=ga[J[J[e>>2]+52>>2]](e)|0;a=ga[J[J[e>>2]+60>>2]](e,i)|0;if(!j|!a){break d}d=ga[J[J[e>>2]+56>>2]](e,i)|0;if(d){e=J[e+56>>2];J[g+20>>2]=d;J[g+16>>2]=e;J[g+28>>2]=a;J[g+24>>2]=a+12;d=g+16|0;a=0;e:{f:{switch(b-1|0){case 0:a=ra(60);J[a+4>>2]=f;J[a>>2]=3456;b=J[c+4>>2];J[a+8>>2]=J[c>>2];J[a+12>>2]=b;b=J[c+12>>2];J[a+16>>2]=J[c+8>>2];J[a+20>>2]=b;b=J[c+20>>2];J[a+24>>2]=J[c+16>>2];J[a+28>>2]=b;J[a+40>>2]=0;J[a+32>>2]=0;J[a+36>>2]=0;b=J[c+28>>2];e=J[c+24>>2];if((b|0)!=(e|0)){b=b-e|0;if((b|0)<0){break c}f=ra(b);J[a+32>>2]=f;J[a+40>>2]=f+(b&-4);l=a,m=ta(f,e,b)+b|0,J[l+36>>2]=m}b=J[d+4>>2];J[a+44>>2]=J[d>>2];J[a+48>>2]=b;b=J[d+12>>2];J[a+52>>2]=J[d+8>>2];J[a+56>>2]=b;J[a>>2]=2748;break e;case 3:a=ra(168);J[a+4>>2]=f;J[a>>2]=3456;b=J[c+4>>2];J[a+8>>2]=J[c>>2];J[a+12>>2]=b;b=J[c+12>>2];J[a+16>>2]=J[c+8>>2];J[a+20>>2]=b;b=J[c+20>>2];J[a+24>>2]=J[c+16>>2];J[a+28>>2]=b;J[a+40>>2]=0;J[a+32>>2]=0;J[a+36>>2]=0;b=J[c+28>>2];e=J[c+24>>2];if((b|0)!=(e|0)){b=b-e|0;if((b|0)<0){break c}f=ra(b);J[a+32>>2]=f;J[a+40>>2]=f+(b&-4);l=a,m=ta(f,e,b)+b|0,J[l+36>>2]=m}b=J[d+4>>2];J[a+44>>2]=J[d>>2];J[a+48>>2]=b;b=J[d+12>>2];J[a+52>>2]=J[d+8>>2];J[a+56>>2]=b;J[a+60>>2]=0;J[a+64>>2]=0;J[a>>2]=3512;J[a+68>>2]=0;J[a+72>>2]=0;J[a+76>>2]=0;J[a+80>>2]=0;J[a+84>>2]=0;J[a+88>>2]=0;J[a+92>>2]=0;J[a+96>>2]=0;J[a+100>>2]=0;J[a+104>>2]=0;J[a+108>>2]=0;J[a+128>>2]=0;J[a+132>>2]=0;J[a+120>>2]=0;J[a+112>>2]=0;J[a+116>>2]=0;J[a+136>>2]=0;J[a+140>>2]=0;J[a+144>>2]=0;J[a+160>>2]=0;J[a+152>>2]=0;J[a+156>>2]=0;break e;case 4:a=ra(104);J[a+4>>2]=f;J[a>>2]=3456;b=J[c+4>>2];J[a+8>>2]=J[c>>2];J[a+12>>2]=b;b=J[c+12>>2];J[a+16>>2]=J[c+8>>2];J[a+20>>2]=b;b=J[c+20>>2];J[a+24>>2]=J[c+16>>2];J[a+28>>2]=b;J[a+40>>2]=0;J[a+32>>2]=0;J[a+36>>2]=0;b=J[c+28>>2];e=J[c+24>>2];if((b|0)!=(e|0)){b=b-e|0;if((b|0)<0){break c}f=ra(b);J[a+32>>2]=f;J[a+40>>2]=f+(b&-4);l=a,m=ta(f,e,b)+b|0,J[l+36>>2]=m}b=J[d+4>>2];J[a+44>>2]=J[d>>2];J[a+48>>2]=b;b=J[d+12>>2];J[a+52>>2]=J[d+8>>2];J[a+56>>2]=b;J[a+84>>2]=0;J[a+76>>2]=0;J[a+80>>2]=0;J[a+60>>2]=0;J[a+64>>2]=0;J[a>>2]=3760;b=J[d+4>>2];J[a+88>>2]=J[d>>2];J[a+92>>2]=b;b=J[d+12>>2];J[a+96>>2]=J[d+8>>2];J[a+100>>2]=b;break e;case 5:break f;default:break e}}a=ra(144);J[a+4>>2]=f;J[a>>2]=3456;b=J[c+4>>2];J[a+8>>2]=J[c>>2];J[a+12>>2]=b;b=J[c+12>>2];J[a+16>>2]=J[c+8>>2];J[a+20>>2]=b;b=J[c+20>>2];J[a+24>>2]=J[c+16>>2];J[a+28>>2]=b;J[a+40>>2]=0;J[a+32>>2]=0;J[a+36>>2]=0;g:{h:{b=J[c+28>>2];e=J[c+24>>2];if((b|0)!=(e|0)){e=b-e|0;if((e|0)<0){break h}b=ra(e);J[a+32>>2]=b;J[a+36>>2]=b;J[a+40>>2]=b+(e&-4);f=J[c+24>>2];e=J[c+28>>2]-f|0;if((e|0)>0){b=ta(b,f,e)+e|0}J[a+36>>2]=b}J[a>>2]=3400;b=J[d+4>>2];J[a+44>>2]=J[d>>2];J[a+48>>2]=b;b=J[d+12>>2];J[a+52>>2]=J[d+8>>2];J[a+56>>2]=b;b=a- -64|0;J[b>>2]=0;J[b+4>>2]=0;J[a+60>>2]=4624;J[a>>2]=3996;b=J[d+4>>2];J[a+72>>2]=J[d>>2];J[a+76>>2]=b;b=J[d+12>>2];J[a+80>>2]=J[d+8>>2];J[a+84>>2]=b;J[a+104>>2]=1065353216;J[a+108>>2]=-1;J[a+96>>2]=-1;J[a+100>>2]=-1;J[a+88>>2]=1;J[a+92>>2]=-1;J[a+60>>2]=4232;J[a+112>>2]=0;J[a+116>>2]=0;J[a+136>>2]=0;J[a+140>>2]=0;J[a+128>>2]=0;J[a+132>>2]=0;J[a+120>>2]=0;J[a+124>>2]=0;break g}ua();B()}break e}d=a;break d}d=J[e+56>>2];J[g+20>>2]=j;J[g+16>>2]=d;J[g+28>>2]=a;J[g+24>>2]=a+12;d=g+16|0;a=0;i:{j:{switch(b-1|0){case 0:a=ra(60);J[a+4>>2]=f;J[a>>2]=3456;b=J[c+4>>2];J[a+8>>2]=J[c>>2];J[a+12>>2]=b;b=J[c+12>>2];J[a+16>>2]=J[c+8>>2];J[a+20>>2]=b;b=J[c+20>>2];J[a+24>>2]=J[c+16>>2];J[a+28>>2]=b;J[a+40>>2]=0;J[a+32>>2]=0;J[a+36>>2]=0;b=J[c+28>>2];e=J[c+24>>2];if((b|0)!=(e|0)){b=b-e|0;if((b|0)<0){break c}f=ra(b);J[a+32>>2]=f;J[a+40>>2]=f+(b&-4);l=a,m=ta(f,e,b)+b|0,J[l+36>>2]=m}b=J[d+4>>2];J[a+44>>2]=J[d>>2];J[a+48>>2]=b;b=J[d+12>>2];J[a+52>>2]=J[d+8>>2];J[a+56>>2]=b;J[a>>2]=4652;break i;case 3:a=ra(168);J[a+4>>2]=f;J[a>>2]=3456;b=J[c+4>>2];J[a+8>>2]=J[c>>2];J[a+12>>2]=b;b=J[c+12>>2];J[a+16>>2]=J[c+8>>2];J[a+20>>2]=b;b=J[c+20>>2];J[a+24>>2]=J[c+16>>2];J[a+28>>2]=b;J[a+40>>2]=0;J[a+32>>2]=0;J[a+36>>2]=0;b=J[c+28>>2];e=J[c+24>>2];if((b|0)!=(e|0)){b=b-e|0;if((b|0)<0){break c}f=ra(b);J[a+32>>2]=f;J[a+40>>2]=f+(b&-4);l=a,m=ta(f,e,b)+b|0,J[l+36>>2]=m}b=J[d+4>>2];J[a+44>>2]=J[d>>2];J[a+48>>2]=b;b=J[d+12>>2];J[a+52>>2]=J[d+8>>2];J[a+56>>2]=b;J[a+60>>2]=0;J[a+64>>2]=0;J[a>>2]=5076;J[a+68>>2]=0;J[a+72>>2]=0;J[a+76>>2]=0;J[a+80>>2]=0;J[a+84>>2]=0;J[a+88>>2]=0;J[a+92>>2]=0;J[a+96>>2]=0;J[a+100>>2]=0;J[a+104>>2]=0;J[a+108>>2]=0;J[a+128>>2]=0;J[a+132>>2]=0;J[a+120>>2]=0;J[a+112>>2]=0;J[a+116>>2]=0;J[a+136>>2]=0;J[a+140>>2]=0;J[a+144>>2]=0;J[a+160>>2]=0;J[a+152>>2]=0;J[a+156>>2]=0;break i;case 4:a=ra(104);J[a+4>>2]=f;J[a>>2]=3456;b=J[c+4>>2];J[a+8>>2]=J[c>>2];J[a+12>>2]=b;b=J[c+12>>2];J[a+16>>2]=J[c+8>>2];J[a+20>>2]=b;b=J[c+20>>2];J[a+24>>2]=J[c+16>>2];J[a+28>>2]=b;J[a+40>>2]=0;J[a+32>>2]=0;J[a+36>>2]=0;b=J[c+28>>2];e=J[c+24>>2];if((b|0)!=(e|0)){b=b-e|0;if((b|0)<0){break c}f=ra(b);J[a+32>>2]=f;J[a+40>>2]=f+(b&-4);l=a,m=ta(f,e,b)+b|0,J[l+36>>2]=m}b=J[d+4>>2];J[a+44>>2]=J[d>>2];J[a+48>>2]=b;b=J[d+12>>2];J[a+52>>2]=J[d+8>>2];J[a+56>>2]=b;J[a+84>>2]=0;J[a+76>>2]=0;J[a+80>>2]=0;J[a+60>>2]=0;J[a+64>>2]=0;J[a>>2]=5312;b=J[d+4>>2];J[a+88>>2]=J[d>>2];J[a+92>>2]=b;b=J[d+12>>2];J[a+96>>2]=J[d+8>>2];J[a+100>>2]=b;break i;case 5:break j;default:break i}}a=ra(144);J[a+4>>2]=f;J[a>>2]=3456;b=J[c+4>>2];J[a+8>>2]=J[c>>2];J[a+12>>2]=b;b=J[c+12>>2];J[a+16>>2]=J[c+8>>2];J[a+20>>2]=b;b=J[c+20>>2];J[a+24>>2]=J[c+16>>2];J[a+28>>2]=b;J[a+40>>2]=0;J[a+32>>2]=0;J[a+36>>2]=0;k:{l:{b=J[c+28>>2];e=J[c+24>>2];if((b|0)!=(e|0)){e=b-e|0;if((e|0)<0){break l}b=ra(e);J[a+32>>2]=b;J[a+36>>2]=b;J[a+40>>2]=b+(e&-4);f=J[c+24>>2];e=J[c+28>>2]-f|0;if((e|0)>0){b=ta(b,f,e)+e|0}J[a+36>>2]=b}J[a>>2]=5020;b=J[d+4>>2];J[a+44>>2]=J[d>>2];J[a+48>>2]=b;b=J[d+12>>2];J[a+52>>2]=J[d+8>>2];J[a+56>>2]=b;b=a- -64|0;J[b>>2]=0;J[b+4>>2]=0;J[a+60>>2]=6120;J[a>>2]=5536;b=J[d+4>>2];J[a+72>>2]=J[d>>2];J[a+76>>2]=b;b=J[d+12>>2];J[a+80>>2]=J[d+8>>2];J[a+84>>2]=b;J[a+104>>2]=1065353216;J[a+108>>2]=-1;J[a+96>>2]=-1;J[a+100>>2]=-1;J[a+88>>2]=1;J[a+92>>2]=-1;J[a+60>>2]=5756;J[a+112>>2]=0;J[a+116>>2]=0;J[a+136>>2]=0;J[a+140>>2]=0;J[a+128>>2]=0;J[a+132>>2]=0;J[a+120>>2]=0;J[a+124>>2]=0;break k}ua();B()}break i}d=a}ea=g+32|0;break b}ua();B()}if(d){break a}}d=ra(44);J[d+4>>2]=k;J[d>>2]=3456;a=J[c+4>>2];J[d+8>>2]=J[c>>2];J[d+12>>2]=a;a=J[c+12>>2];J[d+16>>2]=J[c+8>>2];J[d+20>>2]=a;a=J[c+20>>2];J[d+24>>2]=J[c+16>>2];J[d+28>>2]=a;J[d+40>>2]=0;J[d+32>>2]=0;J[d+36>>2]=0;m:{a=J[c+28>>2];b=J[c+24>>2];if((a|0)!=(b|0)){a=a-b|0;if((a|0)<0){break m}c=ra(a);J[d+32>>2]=c;J[d+40>>2]=c+(a&-4);l=d,m=ta(c,b,a)+a|0,J[l+36>>2]=m}J[d>>2]=6148;break a}ua();B()}a=J[h+32>>2];if(a){J[h+36>>2]=a;qa(a)}ea=h+48|0;return d|0}function rf(a,b){var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=Q(0),q=0,r=0,s=0,t=Q(0);f=ea-80|0;ea=f;J[f+56>>2]=0;J[f+60>>2]=0;J[f+48>>2]=0;J[f+52>>2]=0;J[f+64>>2]=1065353216;d=J[a+80>>2];J[f+24>>2]=0;J[f+16>>2]=0;J[f+20>>2]=0;a:{if(d){if(d>>>0>=1073741824){break a}c=d<<2;h=ra(c);J[f+16>>2]=h;d=c+h|0;J[f+24>>2]=d;sa(h,0,c);J[f+20>>2]=d;while(1){d=J[J[b>>2]>>2];c=J[b+48>>2]+Al(J[b+40>>2],J[b+44>>2],s,0)|0;d=d+c|0;c=K[d+4|0]|K[d+5|0]<<8|(K[d+6|0]<<16|K[d+7|0]<<24);d=K[d|0]|K[d+1|0]<<8|(K[d+2|0]<<16|K[d+3|0]<<24);J[f+32>>2]=d;J[f+36>>2]=c;J[f+40>>2]=d;J[f+44>>2]=c;d=0;o=J[f+52>>2];b:{if(!o){break b}j=J[f+48>>2];l=L[f+38>>1]^(L[f+36>>1]^(L[f+34>>1]^(L[f+32>>1]^318)+239)+239)+239;c=l&o-1;e=Dl(o);c:{if(e>>>0<=1){break c}c=l;if(c>>>0>>0){break c}c=(l>>>0)%(o>>>0)|0}m=j;j=c;c=J[m+(c<<2)>>2];if(!c){break b}c=J[c>>2];if(!c){break b}d:{if(e>>>0>=2){g=L[f+32>>1];n=L[f+34>>1];i=L[f+36>>1];m=L[f+38>>1];while(1){e=J[c+4>>2];e:{if((e|0)!=(l|0)){if(e>>>0>=o>>>0){e=(e>>>0)%(o>>>0)|0}if((e|0)!=(j|0)){break b}break e}e=L[c+8>>1];f:{if((e|0)!=(g|0)){e=(e|0)==(g|0);break f}e=L[c+10>>1];if((e|0)!=(n|0)){e=(e|0)==(n|0);break f}e=L[c+12>>1];if((e|0)!=(i|0)){e=(e|0)==(i|0);break f}e=(m|0)==L[c+14>>1]}if(e){break d}}c=J[c>>2];if(c){continue}break}break b}i=o-1|0;o=L[f+32>>1];g=L[f+34>>1];n=L[f+36>>1];m=L[f+38>>1];while(1){e=J[c+4>>2];g:{if((e|0)!=(l|0)){if((j|0)!=(e&i)){break b}break g}e=L[c+8>>1];if((e|0)!=(o|0)){if((e|0)!=(o|0)){break g}break d}e=L[c+10>>1];if((e|0)!=(g|0)){if((e|0)!=(g|0)){break g}break d}e=L[c+12>>1];if((e|0)!=(n|0)){if((e|0)!=(n|0)){break g}break d}if((m|0)==L[c+14>>1]){break d}}c=J[c>>2];if(c){continue}break}break b}d=c}h:{if(d){J[(s<<2)+h>>2]=J[d+16>>2];break h}J[f+8>>2]=r;d=J[f+36>>2];J[f>>2]=J[f+32>>2];J[f+4>>2]=d;d=0;l=L[f+6>>1]^(L[f+4>>1]^(L[f+2>>1]^(L[f>>1]^318)+239)+239)+239;i:{j:{k=f+48|0;g=J[k+4>>2];if(!g){break j}c=Dl(g);k:{if(c>>>0>=2){d=l;if(g>>>0<=d>>>0){d=(l>>>0)%(g>>>0)|0}h=J[J[k>>2]+(d<<2)>>2];if(!h){break j}if(c>>>0<2){break k}i=L[f>>1];m=L[f+2>>1];j=L[f+4>>1];e=L[f+6>>1];while(1){h=J[h>>2];if(!h){break j}c=J[h+4>>2];if((c|0)!=(l|0)){if(c>>>0>=g>>>0){c=(c>>>0)%(g>>>0)|0}if((c|0)!=(d|0)){break j}}c=L[h+8>>1];l:{if((c|0)!=(i|0)){c=(c|0)==(i|0);break l}c=L[h+10>>1];if((c|0)!=(m|0)){c=(c|0)==(m|0);break l}c=L[h+12>>1];if((c|0)!=(j|0)){c=(c|0)==(j|0);break l}c=(e|0)==L[h+14>>1]}if(!c){continue}break}d=0;break i}d=l&g-1;h=J[J[k>>2]+(d<<2)>>2];if(!h){break j}}j=g-1|0;n=L[f>>1];i=L[f+2>>1];m=L[f+4>>1];e=L[f+6>>1];while(1){h=J[h>>2];if(!h){break j}c=J[h+4>>2];if((c|0)!=(l|0)&(c&j)!=(d|0)){break j}c=L[h+8>>1];m:{if((c|0)!=(n|0)){c=(c|0)==(n|0);break m}c=L[h+10>>1];if((c|0)!=(i|0)){c=(c|0)==(i|0);break m}c=L[h+12>>1];if((c|0)!=(m|0)){c=(c|0)==(m|0);break m}c=(e|0)==L[h+14>>1]}if(!c){continue}break}d=0;break i}h=ra(20);c=J[f+4>>2];J[h+8>>2]=J[f>>2];J[h+12>>2]=c;c=J[f+8>>2];J[h+4>>2]=l;J[h+16>>2]=c;J[h>>2]=0;t=Q(J[k+12>>2]+1>>>0);p=N[k+16>>2];n:{if(t>Q(p*Q(g>>>0))?0:g){break n}d=2;c=(g-1&g)!=0|g>>>0<3|g<<1;p=Q(W(Q(t/p)));o:{if(p=Q(0)){e=~~p>>>0;break o}e=0}c=c>>>0>e>>>0?c:e;p:{if((c|0)==1){break p}if(!(c&c-1)){d=c;break p}d=Ka(c);g=J[k+4>>2]}q:{if(d>>>0<=g>>>0){if(d>>>0>=g>>>0){break q}e=g>>>0<3;p=Q(W(Q(Q(M[k+12>>2])/N[k+16>>2])));r:{if(p=Q(0)){c=~~p>>>0;break r}c=0}s:{t:{if(e){break t}if(Dl(g)>>>0>1){break t}c=c>>>0<2?c:1<<32-S(c-1|0);break s}c=Ka(c)}d=c>>>0>>0?d:c;if(g>>>0<=d>>>0){break q}}e=0;m=0;i=d;u:{v:{w:{x:{if(d){if(i>>>0>=1073741824){break x}d=ra(i<<2);c=J[k>>2];J[k>>2]=d;if(c){qa(c)}J[k+4>>2]=i;if(i>>>0>=4){d=i&-4;c=0;while(1){j=e<<2;J[j+J[k>>2]>>2]=0;J[J[k>>2]+(j|4)>>2]=0;J[J[k>>2]+(j|8)>>2]=0;J[J[k>>2]+(j|12)>>2]=0;e=e+4|0;c=c+4|0;if((d|0)!=(c|0)){continue}break}}d=i&3;if(d){while(1){J[J[k>>2]+(e<<2)>>2]=0;e=e+1|0;m=m+1|0;if((d|0)!=(m|0)){continue}break}}c=J[k+8>>2];if(!c){break u}d=k+8|0;j=J[c+4>>2];e=Dl(i);if(e>>>0<2){break w}j=j>>>0>=i>>>0?(j>>>0)%(i>>>0)|0:j;J[J[k>>2]+(j<<2)>>2]=d;d=J[c>>2];if(!d){break u}if(e>>>0<=1){break v}while(1){m=J[d+4>>2];if(i>>>0<=m>>>0){m=(m>>>0)%(i>>>0)|0}y:{if((j|0)==(m|0)){c=d;break y}e=d;o=m<<2;n=o+J[k>>2]|0;if(!J[n>>2]){J[n>>2]=c;c=d;j=m;break y}while(1){m=e;e=J[e>>2];if(e){g=L[d+8>>1];n=L[e+8>>1];z:{if((g|0)!=(n|0)){g=(g|0)==(n|0);break z}g=L[d+10>>1];n=L[e+10>>1];if((g|0)!=(n|0)){g=(g|0)==(n|0);break z}g=L[d+12>>1];n=L[e+12>>1];if((g|0)!=(n|0)){g=(g|0)==(n|0);break z}g=L[d+14>>1]==L[e+14>>1]}if(g){continue}}break}J[c>>2]=e;J[m>>2]=J[J[o+J[k>>2]>>2]>>2];J[J[o+J[k>>2]>>2]>>2]=d}d=J[c>>2];if(d){continue}break}break u}d=J[k>>2];J[k>>2]=0;if(d){qa(d)}J[k+4>>2]=0;break u}ya();B()}j=i-1&j;J[J[k>>2]+(j<<2)>>2]=d;d=J[c>>2];if(!d){break u}}g=i-1|0;while(1){m=g&J[d+4>>2];A:{if((m|0)==(j|0)){c=d;break A}e=d;o=m<<2;i=o+J[k>>2]|0;if(J[i>>2]){while(1){m=e;e=J[e>>2];if(e){n=L[d+8>>1];i=L[e+8>>1];B:{if((n|0)!=(i|0)){i=(i|0)==(n|0);break B}n=L[d+10>>1];i=L[e+10>>1];if((n|0)!=(i|0)){i=(i|0)==(n|0);break B}n=L[d+12>>1];i=L[e+12>>1];if((n|0)!=(i|0)){i=(i|0)==(n|0);break B}i=L[d+14>>1]==L[e+14>>1]}if(i){continue}}break}J[c>>2]=e;J[m>>2]=J[J[o+J[k>>2]>>2]>>2];J[J[o+J[k>>2]>>2]>>2]=d;break A}J[i>>2]=c;c=d;j=m}d=J[c>>2];if(d){continue}break}}}g=J[k+4>>2];d=g-1|0;if(!(d&g)){d=d&l;break n}if(g>>>0>l>>>0){d=l;break n}d=(l>>>0)%(g>>>0)|0}c=J[k>>2]+(d<<2)|0;d=J[c>>2];C:{D:{if(!d){d=k+8|0;J[h>>2]=J[d>>2];J[k+8>>2]=h;J[c>>2]=d;d=J[h>>2];if(!d){break C}d=J[d+4>>2];c=g-1|0;E:{if(!(c&g)){d=c&d;break E}if(d>>>0>>0){break E}d=(d>>>0)%(g>>>0)|0}d=J[k>>2]+(d<<2)|0;break D}J[h>>2]=J[d>>2]}J[d>>2]=h}J[k+12>>2]=J[k+12>>2]+1;d=1}H[f+76|0]=d;J[f+72>>2]=h;d=J[a+40>>2];ta(J[J[a>>2]>>2]+P(d,r)|0,f+40|0,d);h=J[f+16>>2];J[h+(s<<2)>>2]=r;r=r+1|0}d=s+1|0;q=d?q:q+1|0;s=d;c=J[a+80>>2];if(!q&c>>>0>d>>>0){continue}break}if((c|0)!=(r|0)){F:{if(!K[a+84|0]){b=J[a+72>>2];l=J[a+68>>2];if((b|0)==(l|0)){break F}b=b-l>>2;c=b>>>0<=1?1:b;q=c&3;d=0;b=0;if(c-1>>>0>=3){e=c&-4;g=0;while(1){j=b<<2;c=j+l|0;J[c>>2]=J[(J[c>>2]<<2)+h>>2];c=l+(j|4)|0;J[c>>2]=J[(J[c>>2]<<2)+h>>2];c=l+(j|8)|0;J[c>>2]=J[(J[c>>2]<<2)+h>>2];c=l+(j|12)|0;J[c>>2]=J[(J[c>>2]<<2)+h>>2];b=b+4|0;g=g+4|0;if((e|0)!=(g|0)){continue}break}}if(!q){break F}while(1){c=l+(b<<2)|0;J[c>>2]=J[(J[c>>2]<<2)+h>>2];b=b+1|0;d=d+1|0;if((q|0)!=(d|0)){continue}break}break F}H[a+84|0]=0;e=a+68|0;b=J[a+68>>2];d=J[a+72>>2]-b>>2;G:{if(d>>>0>>0){La(e,c-d|0,2176);c=J[a+80>>2];break G}if(c>>>0>=d>>>0){break G}J[a+72>>2]=b+(c<<2)}if(!c){break F}l=J[e>>2];d=0;b=0;if(c>>>0>=4){q=c&-4;g=0;while(1){j=b<<2;J[j+l>>2]=J[h+j>>2];e=j|4;J[e+l>>2]=J[e+h>>2];e=j|8;J[e+l>>2]=J[e+h>>2];e=j|12;J[e+l>>2]=J[e+h>>2];b=b+4|0;g=g+4|0;if((q|0)!=(g|0)){continue}break}}e=c&3;if(!e){break F}while(1){c=b<<2;J[c+l>>2]=J[c+h>>2];b=b+1|0;d=d+1|0;if((e|0)!=(d|0)){continue}break}}J[a+80>>2]=r}qa(h)}b=J[f+56>>2];if(b){while(1){a=J[b>>2];qa(b);b=a;if(b){continue}break}}a=J[f+48>>2];J[f+48>>2]=0;if(a){qa(a)}ea=f+80|0;return r}ua();B()}function Ad(a,b){var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=Q(0),r=0,s=0,t=0,u=0,v=Q(0);g=ea-96|0;ea=g;J[g+72>>2]=0;J[g+76>>2]=0;J[g+64>>2]=0;J[g+68>>2]=0;J[g+80>>2]=1065353216;d=J[a+80>>2];J[g+24>>2]=0;J[g+16>>2]=0;J[g+20>>2]=0;a:{if(d){if(d>>>0>=1073741824){break a}c=d<<2;f=ra(c);J[g+16>>2]=f;d=c+f|0;J[g+24>>2]=d;sa(f,0,c);J[g+20>>2]=d;while(1){d=J[J[b>>2]>>2];e=J[b+48>>2]+Al(J[b+40>>2],J[b+44>>2],t,0)|0;e=d+e|0;J[g+56>>2]=K[e+8|0]|K[e+9|0]<<8|(K[e+10|0]<<16|K[e+11|0]<<24);d=K[e+4|0]|K[e+5|0]<<8|(K[e+6|0]<<16|K[e+7|0]<<24);J[g+48>>2]=K[e|0]|K[e+1|0]<<8|(K[e+2|0]<<16|K[e+3|0]<<24);J[g+52>>2]=d;c=K[e+4|0]|K[e+5|0]<<8|(K[e+6|0]<<16|K[e+7|0]<<24);d=K[e|0]|K[e+1|0]<<8|(K[e+2|0]<<16|K[e+3|0]<<24);J[g+40>>2]=K[e+8|0]|K[e+9|0]<<8|(K[e+10|0]<<16|K[e+11|0]<<24);J[g+32>>2]=d;J[g+36>>2]=c;d=0;c=g- -64|0;o=J[c+4>>2];b:{if(!o){break b}l=J[c>>2];h=J[g+40>>2]^(J[g+36>>2]^(J[g+32>>2]^318)+239)+239;c=h&o-1;e=Dl(o);c:{if(e>>>0<=1){break c}c=h;if(c>>>0>>0){break c}c=(h>>>0)%(o>>>0)|0}u=l;l=c;c=J[u+(c<<2)>>2];if(!c){break b}c=J[c>>2];if(!c){break b}d:{if(e>>>0>=2){i=J[g+40>>2];p=J[g+36>>2];m=J[g+32>>2];while(1){e=J[c+4>>2];e:{if((e|0)!=(h|0)){if(e>>>0>=o>>>0){e=(e>>>0)%(o>>>0)|0}if((e|0)!=(l|0)){break b}break e}e=J[c+8>>2];f:{if((e|0)!=(m|0)){e=(e|0)==(m|0);break f}e=J[c+12>>2];if((e|0)!=(p|0)){e=(e|0)==(p|0);break f}e=(i|0)==J[c+16>>2]}if(e){break d}}c=J[c>>2];if(c){continue}break}break b}m=o-1|0;i=J[g+40>>2];o=J[g+36>>2];p=J[g+32>>2];while(1){e=J[c+4>>2];g:{if((e|0)!=(h|0)){if((l|0)!=(e&m)){break b}break g}e=J[c+8>>2];if((e|0)!=(p|0)){if((e|0)!=(p|0)){break g}break d}e=J[c+12>>2];if((e|0)!=(o|0)){if((e|0)!=(o|0)){break g}break d}if((i|0)==J[c+16>>2]){break d}}c=J[c>>2];if(c){continue}break}break b}d=c}h:{if(d){J[(t<<2)+f>>2]=J[d+20>>2];break h}J[g+8>>2]=J[g+40>>2];d=J[g+36>>2];J[g>>2]=J[g+32>>2];J[g+4>>2]=d;J[g+12>>2]=r;d=0;l=J[g+8>>2]^(J[g+4>>2]^(J[g>>2]^318)+239)+239;u=g;i:{j:{j=g- -64|0;f=J[j+4>>2];if(!f){break j}c=Dl(f);k:{if(c>>>0>=2){d=l;if(f>>>0<=d>>>0){d=(l>>>0)%(f>>>0)|0}k=J[J[j>>2]+(d<<2)>>2];if(!k){break j}if(c>>>0<2){break k}e=J[g+8>>2];i=J[g+4>>2];h=J[g>>2];while(1){k=J[k>>2];if(!k){break j}c=J[k+4>>2];if((c|0)!=(l|0)){if(c>>>0>=f>>>0){c=(c>>>0)%(f>>>0)|0}if((c|0)!=(d|0)){break j}}c=J[k+8>>2];l:{if((c|0)!=(h|0)){c=(c|0)==(h|0);break l}c=J[k+12>>2];if((c|0)!=(i|0)){c=(c|0)==(i|0);break l}c=(e|0)==J[k+16>>2]}if(!c){continue}break}d=0;break i}d=l&f-1;k=J[J[j>>2]+(d<<2)>>2];if(!k){break j}}h=f-1|0;e=J[g+8>>2];m=J[g+4>>2];i=J[g>>2];while(1){k=J[k>>2];if(!k){break j}c=J[k+4>>2];if((c|0)!=(l|0)&(c&h)!=(d|0)){break j}c=J[k+8>>2];m:{if((c|0)!=(i|0)){c=(c|0)==(i|0);break m}c=J[k+12>>2];if((c|0)!=(m|0)){c=(c|0)==(m|0);break m}c=(e|0)==J[k+16>>2]}if(!c){continue}break}d=0;break i}k=ra(24);J[k+16>>2]=J[g+8>>2];c=J[g+4>>2];J[k+8>>2]=J[g>>2];J[k+12>>2]=c;c=J[g+12>>2];J[k>>2]=0;J[k+4>>2]=l;J[k+20>>2]=c;q=Q(J[j+12>>2]+1>>>0);v=N[j+16>>2];n:{if(q>Q(v*Q(f>>>0))?0:f){break n}d=2;c=(f-1&f)!=0|f>>>0<3|f<<1;q=Q(W(Q(q/v)));o:{if(q=Q(0)){e=~~q>>>0;break o}e=0}c=c>>>0>e>>>0?c:e;p:{if((c|0)==1){break p}if(!(c&c-1)){d=c;break p}d=Ka(c);f=J[j+4>>2]}q:{if(d>>>0<=f>>>0){if(d>>>0>=f>>>0){break q}e=f>>>0<3;q=Q(W(Q(Q(M[j+12>>2])/N[j+16>>2])));r:{if(q=Q(0)){c=~~q>>>0;break r}c=0}s:{t:{if(e){break t}if(Dl(f)>>>0>1){break t}c=c>>>0<2?c:1<<32-S(c-1|0);break s}c=Ka(c)}d=c>>>0>>0?d:c;if(f>>>0<=d>>>0){break q}}c=0;h=0;i=d;u:{v:{w:{x:{if(d){if(i>>>0>=1073741824){break x}d=ra(i<<2);f=J[j>>2];J[j>>2]=d;if(f){qa(f)}J[j+4>>2]=i;if(i>>>0>=4){d=i&-4;f=0;while(1){e=c<<2;J[e+J[j>>2]>>2]=0;J[J[j>>2]+(e|4)>>2]=0;J[J[j>>2]+(e|8)>>2]=0;J[J[j>>2]+(e|12)>>2]=0;c=c+4|0;f=f+4|0;if((d|0)!=(f|0)){continue}break}}d=i&3;if(d){while(1){J[J[j>>2]+(c<<2)>>2]=0;c=c+1|0;h=h+1|0;if((d|0)!=(h|0)){continue}break}}f=J[j+8>>2];if(!f){break u}d=j+8|0;e=J[f+4>>2];c=Dl(i);if(c>>>0<2){break w}e=e>>>0>=i>>>0?(e>>>0)%(i>>>0)|0:e;J[J[j>>2]+(e<<2)>>2]=d;d=J[f>>2];if(!d){break u}if(c>>>0<=1){break v}while(1){h=J[d+4>>2];if(i>>>0<=h>>>0){h=(h>>>0)%(i>>>0)|0}y:{if((e|0)==(h|0)){f=d;break y}c=d;o=h<<2;m=o+J[j>>2]|0;if(!J[m>>2]){J[m>>2]=f;f=d;e=h;break y}while(1){h=c;c=J[c>>2];if(c){p=J[d+8>>2];m=J[c+8>>2];z:{if((p|0)!=(m|0)){p=(m|0)==(p|0);break z}p=J[d+12>>2];m=J[c+12>>2];if((p|0)!=(m|0)){p=(m|0)==(p|0);break z}p=J[d+16>>2]==J[c+16>>2]}if(p){continue}}break}J[f>>2]=c;J[h>>2]=J[J[o+J[j>>2]>>2]>>2];J[J[o+J[j>>2]>>2]>>2]=d}d=J[f>>2];if(d){continue}break}break u}d=J[j>>2];J[j>>2]=0;if(d){qa(d)}J[j+4>>2]=0;break u}ya();B()}e=i-1&e;J[J[j>>2]+(e<<2)>>2]=d;d=J[f>>2];if(!d){break u}}p=i-1|0;while(1){h=p&J[d+4>>2];A:{if((h|0)==(e|0)){f=d;break A}c=d;o=h<<2;i=o+J[j>>2]|0;if(J[i>>2]){while(1){h=c;c=J[c>>2];if(c){m=J[d+8>>2];i=J[c+8>>2];B:{if((m|0)!=(i|0)){i=(i|0)==(m|0);break B}m=J[d+12>>2];i=J[c+12>>2];if((m|0)!=(i|0)){i=(i|0)==(m|0);break B}i=J[d+16>>2]==J[c+16>>2]}if(i){continue}}break}J[f>>2]=c;J[h>>2]=J[J[o+J[j>>2]>>2]>>2];J[J[o+J[j>>2]>>2]>>2]=d;break A}J[i>>2]=f;f=d;e=h}d=J[f>>2];if(d){continue}break}}}f=J[j+4>>2];d=f-1|0;if(!(d&f)){d=d&l;break n}if(f>>>0>l>>>0){d=l;break n}d=(l>>>0)%(f>>>0)|0}c=J[j>>2]+(d<<2)|0;d=J[c>>2];C:{D:{if(!d){d=j+8|0;J[k>>2]=J[d>>2];J[j+8>>2]=k;J[c>>2]=d;d=J[k>>2];if(!d){break C}d=J[d+4>>2];c=f-1|0;E:{if(!(c&f)){d=c&d;break E}if(d>>>0>>0){break E}d=(d>>>0)%(f>>>0)|0}d=J[j>>2]+(d<<2)|0;break D}J[k>>2]=J[d>>2]}J[d>>2]=k}J[j+12>>2]=J[j+12>>2]+1;d=1}H[u+92|0]=d;J[g+88>>2]=k;d=J[a+40>>2];ta(J[J[a>>2]>>2]+P(d,r)|0,g+48|0,d);f=J[g+16>>2];J[f+(t<<2)>>2]=r;r=r+1|0}d=t+1|0;n=d?n:n+1|0;t=d;c=J[a+80>>2];if(!n&c>>>0>d>>>0){continue}break}if((c|0)!=(r|0)){F:{if(!K[a+84|0]){b=J[a+72>>2];h=J[a+68>>2];if((b|0)==(h|0)){break F}b=b-h>>2;c=b>>>0<=1?1:b;e=c&3;d=0;b=0;if(c-1>>>0>=3){n=c&-4;while(1){l=b<<2;c=l+h|0;J[c>>2]=J[(J[c>>2]<<2)+f>>2];c=h+(l|4)|0;J[c>>2]=J[(J[c>>2]<<2)+f>>2];c=h+(l|8)|0;J[c>>2]=J[(J[c>>2]<<2)+f>>2];c=h+(l|12)|0;J[c>>2]=J[(J[c>>2]<<2)+f>>2];b=b+4|0;s=s+4|0;if((n|0)!=(s|0)){continue}break}}if(!e){break F}while(1){c=h+(b<<2)|0;J[c>>2]=J[(J[c>>2]<<2)+f>>2];b=b+1|0;d=d+1|0;if((e|0)!=(d|0)){continue}break}break F}H[a+84|0]=0;n=a+68|0;b=J[a+68>>2];d=J[a+72>>2]-b>>2;G:{if(d>>>0>>0){La(n,c-d|0,2176);c=J[a+80>>2];break G}if(c>>>0>=d>>>0){break G}J[a+72>>2]=b+(c<<2)}if(!c){break F}h=J[n>>2];d=0;b=0;if(c>>>0>=4){e=c&-4;while(1){l=b<<2;J[l+h>>2]=J[f+l>>2];n=l|4;J[n+h>>2]=J[f+n>>2];n=l|8;J[n+h>>2]=J[f+n>>2];n=l|12;J[n+h>>2]=J[f+n>>2];b=b+4|0;s=s+4|0;if((e|0)!=(s|0)){continue}break}}n=c&3;if(!n){break F}while(1){c=b<<2;J[c+h>>2]=J[c+f>>2];b=b+1|0;d=d+1|0;if((n|0)!=(d|0)){continue}break}}J[a+80>>2]=r}qa(f)}b=J[g+72>>2];if(b){while(1){a=J[b>>2];qa(b);b=a;if(b){continue}break}}a=J[g+64>>2];J[g+64>>2]=0;if(a){qa(a)}ea=g+96|0;return r}ua();B()}function Bf(a,b){var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=Q(0),q=0,r=0,s=0,t=Q(0);g=ea+-64|0;ea=g;J[g+40>>2]=0;J[g+44>>2]=0;J[g+32>>2]=0;J[g+36>>2]=0;J[g+48>>2]=1065353216;d=J[a+80>>2];J[g+16>>2]=0;J[g+8>>2]=0;J[g+12>>2]=0;a:{if(d){if(d>>>0>=1073741824){break a}c=d<<2;h=ra(c);J[g+8>>2]=h;d=c+h|0;J[g+16>>2]=d;sa(h,0,c);J[g+12>>2]=d;while(1){d=J[J[b>>2]>>2];e=J[b+48>>2]+Al(J[b+40>>2],J[b+44>>2],s,0)|0;d=d+e|0;d=K[d|0]|K[d+1|0]<<8|(K[d+2|0]<<16|K[d+3|0]<<24);J[g+24>>2]=d;J[g+28>>2]=d;d=0;o=J[g+36>>2];b:{if(!o){break b}j=J[g+32>>2];l=K[g+27|0]^(K[g+26|0]^(K[g+25|0]^(K[g+24|0]^318)+239)+239)+239;c=l&o-1;e=Dl(o);c:{if(e>>>0<=1){break c}c=l;if(c>>>0>>0){break c}c=(l>>>0)%(o>>>0)|0}m=j;j=c;c=J[m+(c<<2)>>2];if(!c){break b}c=J[c>>2];if(!c){break b}d:{if(e>>>0>=2){f=K[g+24|0];n=K[g+25|0];i=K[g+26|0];m=K[g+27|0];while(1){e=J[c+4>>2];e:{if((e|0)!=(l|0)){if(e>>>0>=o>>>0){e=(e>>>0)%(o>>>0)|0}if((e|0)!=(j|0)){break b}break e}e=K[c+8|0];f:{if((e|0)!=(f|0)){e=(e|0)==(f|0);break f}e=K[c+9|0];if((e|0)!=(n|0)){e=(e|0)==(n|0);break f}e=K[c+10|0];if((e|0)!=(i|0)){e=(e|0)==(i|0);break f}e=(m|0)==K[c+11|0]}if(e){break d}}c=J[c>>2];if(c){continue}break}break b}i=o-1|0;o=K[g+24|0];f=K[g+25|0];n=K[g+26|0];m=K[g+27|0];while(1){e=J[c+4>>2];g:{if((e|0)!=(l|0)){if((j|0)!=(e&i)){break b}break g}e=K[c+8|0];if((e|0)!=(o|0)){if((e|0)!=(o|0)){break g}break d}e=K[c+9|0];if((e|0)!=(f|0)){if((e|0)!=(f|0)){break g}break d}e=K[c+10|0];if((e|0)!=(n|0)){if((e|0)!=(n|0)){break g}break d}if((m|0)==K[c+11|0]){break d}}c=J[c>>2];if(c){continue}break}break b}d=c}h:{if(d){J[(s<<2)+h>>2]=J[d+12>>2];break h}J[g+4>>2]=r;J[g>>2]=J[g+24>>2];d=0;l=K[g+3|0]^(K[g+2|0]^(K[g+1|0]^(K[g|0]^318)+239)+239)+239;i:{j:{k=g+32|0;f=J[k+4>>2];if(!f){break j}c=Dl(f);k:{if(c>>>0>=2){d=l;if(f>>>0<=d>>>0){d=(l>>>0)%(f>>>0)|0}h=J[J[k>>2]+(d<<2)>>2];if(!h){break j}if(c>>>0<2){break k}i=K[g|0];m=K[g+1|0];j=K[g+2|0];e=K[g+3|0];while(1){h=J[h>>2];if(!h){break j}c=J[h+4>>2];if((c|0)!=(l|0)){if(c>>>0>=f>>>0){c=(c>>>0)%(f>>>0)|0}if((c|0)!=(d|0)){break j}}c=K[h+8|0];l:{if((c|0)!=(i|0)){c=(c|0)==(i|0);break l}c=K[h+9|0];if((c|0)!=(m|0)){c=(c|0)==(m|0);break l}c=K[h+10|0];if((c|0)!=(j|0)){c=(c|0)==(j|0);break l}c=(e|0)==K[h+11|0]}if(!c){continue}break}d=0;break i}d=l&f-1;h=J[J[k>>2]+(d<<2)>>2];if(!h){break j}}j=f-1|0;n=K[g|0];i=K[g+1|0];m=K[g+2|0];e=K[g+3|0];while(1){h=J[h>>2];if(!h){break j}c=J[h+4>>2];if((c|0)!=(l|0)&(c&j)!=(d|0)){break j}c=K[h+8|0];m:{if((c|0)!=(n|0)){c=(c|0)==(n|0);break m}c=K[h+9|0];if((c|0)!=(i|0)){c=(c|0)==(i|0);break m}c=K[h+10|0];if((c|0)!=(m|0)){c=(c|0)==(m|0);break m}c=(e|0)==K[h+11|0]}if(!c){continue}break}d=0;break i}h=ra(16);J[h+8>>2]=J[g>>2];c=J[g+4>>2];J[h+4>>2]=l;J[h+12>>2]=c;J[h>>2]=0;t=Q(J[k+12>>2]+1>>>0);p=N[k+16>>2];n:{if(t>Q(p*Q(f>>>0))?0:f){break n}d=2;c=(f-1&f)!=0|f>>>0<3|f<<1;p=Q(W(Q(t/p)));o:{if(p=Q(0)){e=~~p>>>0;break o}e=0}c=c>>>0>e>>>0?c:e;p:{if((c|0)==1){break p}if(!(c&c-1)){d=c;break p}d=Ka(c);f=J[k+4>>2]}q:{if(d>>>0<=f>>>0){if(d>>>0>=f>>>0){break q}e=f>>>0<3;p=Q(W(Q(Q(M[k+12>>2])/N[k+16>>2])));r:{if(p=Q(0)){c=~~p>>>0;break r}c=0}s:{t:{if(e){break t}if(Dl(f)>>>0>1){break t}c=c>>>0<2?c:1<<32-S(c-1|0);break s}c=Ka(c)}d=c>>>0>>0?d:c;if(f>>>0<=d>>>0){break q}}e=0;m=0;i=d;u:{v:{w:{x:{if(d){if(i>>>0>=1073741824){break x}d=ra(i<<2);c=J[k>>2];J[k>>2]=d;if(c){qa(c)}J[k+4>>2]=i;if(i>>>0>=4){d=i&-4;c=0;while(1){j=e<<2;J[j+J[k>>2]>>2]=0;J[J[k>>2]+(j|4)>>2]=0;J[J[k>>2]+(j|8)>>2]=0;J[J[k>>2]+(j|12)>>2]=0;e=e+4|0;c=c+4|0;if((d|0)!=(c|0)){continue}break}}d=i&3;if(d){while(1){J[J[k>>2]+(e<<2)>>2]=0;e=e+1|0;m=m+1|0;if((d|0)!=(m|0)){continue}break}}c=J[k+8>>2];if(!c){break u}d=k+8|0;j=J[c+4>>2];e=Dl(i);if(e>>>0<2){break w}j=j>>>0>=i>>>0?(j>>>0)%(i>>>0)|0:j;J[J[k>>2]+(j<<2)>>2]=d;d=J[c>>2];if(!d){break u}if(e>>>0<=1){break v}while(1){m=J[d+4>>2];if(i>>>0<=m>>>0){m=(m>>>0)%(i>>>0)|0}y:{if((j|0)==(m|0)){c=d;break y}e=d;o=m<<2;n=o+J[k>>2]|0;if(!J[n>>2]){J[n>>2]=c;c=d;j=m;break y}while(1){m=e;e=J[e>>2];if(e){f=K[d+8|0];n=K[e+8|0];z:{if((f|0)!=(n|0)){f=(f|0)==(n|0);break z}f=K[d+9|0];n=K[e+9|0];if((f|0)!=(n|0)){f=(f|0)==(n|0);break z}f=K[d+10|0];n=K[e+10|0];if((f|0)!=(n|0)){f=(f|0)==(n|0);break z}f=K[d+11|0]==K[e+11|0]}if(f){continue}}break}J[c>>2]=e;J[m>>2]=J[J[o+J[k>>2]>>2]>>2];J[J[o+J[k>>2]>>2]>>2]=d}d=J[c>>2];if(d){continue}break}break u}d=J[k>>2];J[k>>2]=0;if(d){qa(d)}J[k+4>>2]=0;break u}ya();B()}j=i-1&j;J[J[k>>2]+(j<<2)>>2]=d;d=J[c>>2];if(!d){break u}}f=i-1|0;while(1){m=f&J[d+4>>2];A:{if((m|0)==(j|0)){c=d;break A}e=d;o=m<<2;i=o+J[k>>2]|0;if(J[i>>2]){while(1){m=e;e=J[e>>2];if(e){n=K[d+8|0];i=K[e+8|0];B:{if((n|0)!=(i|0)){i=(i|0)==(n|0);break B}n=K[d+9|0];i=K[e+9|0];if((n|0)!=(i|0)){i=(i|0)==(n|0);break B}n=K[d+10|0];i=K[e+10|0];if((n|0)!=(i|0)){i=(i|0)==(n|0);break B}i=K[d+11|0]==K[e+11|0]}if(i){continue}}break}J[c>>2]=e;J[m>>2]=J[J[o+J[k>>2]>>2]>>2];J[J[o+J[k>>2]>>2]>>2]=d;break A}J[i>>2]=c;c=d;j=m}d=J[c>>2];if(d){continue}break}}}f=J[k+4>>2];d=f-1|0;if(!(d&f)){d=d&l;break n}if(f>>>0>l>>>0){d=l;break n}d=(l>>>0)%(f>>>0)|0}c=J[k>>2]+(d<<2)|0;d=J[c>>2];C:{D:{if(!d){d=k+8|0;J[h>>2]=J[d>>2];J[k+8>>2]=h;J[c>>2]=d;d=J[h>>2];if(!d){break C}d=J[d+4>>2];c=f-1|0;E:{if(!(c&f)){d=c&d;break E}if(d>>>0>>0){break E}d=(d>>>0)%(f>>>0)|0}d=J[k>>2]+(d<<2)|0;break D}J[h>>2]=J[d>>2]}J[d>>2]=h}J[k+12>>2]=J[k+12>>2]+1;d=1}H[g+60|0]=d;J[g+56>>2]=h;d=J[a+40>>2];ta(J[J[a>>2]>>2]+P(d,r)|0,g+28|0,d);h=J[g+8>>2];J[h+(s<<2)>>2]=r;r=r+1|0}d=s+1|0;q=d?q:q+1|0;s=d;c=J[a+80>>2];if(!q&c>>>0>d>>>0){continue}break}if((c|0)!=(r|0)){F:{if(!K[a+84|0]){b=J[a+72>>2];l=J[a+68>>2];if((b|0)==(l|0)){break F}b=b-l>>2;c=b>>>0<=1?1:b;q=c&3;d=0;b=0;if(c-1>>>0>=3){e=c&-4;f=0;while(1){j=b<<2;c=j+l|0;J[c>>2]=J[(J[c>>2]<<2)+h>>2];c=l+(j|4)|0;J[c>>2]=J[(J[c>>2]<<2)+h>>2];c=l+(j|8)|0;J[c>>2]=J[(J[c>>2]<<2)+h>>2];c=l+(j|12)|0;J[c>>2]=J[(J[c>>2]<<2)+h>>2];b=b+4|0;f=f+4|0;if((e|0)!=(f|0)){continue}break}}if(!q){break F}while(1){c=l+(b<<2)|0;J[c>>2]=J[(J[c>>2]<<2)+h>>2];b=b+1|0;d=d+1|0;if((q|0)!=(d|0)){continue}break}break F}H[a+84|0]=0;e=a+68|0;b=J[a+68>>2];d=J[a+72>>2]-b>>2;G:{if(d>>>0>>0){La(e,c-d|0,2176);c=J[a+80>>2];break G}if(c>>>0>=d>>>0){break G}J[a+72>>2]=b+(c<<2)}if(!c){break F}l=J[e>>2];d=0;b=0;if(c>>>0>=4){q=c&-4;f=0;while(1){j=b<<2;J[j+l>>2]=J[h+j>>2];e=j|4;J[e+l>>2]=J[e+h>>2];e=j|8;J[e+l>>2]=J[e+h>>2];e=j|12;J[e+l>>2]=J[e+h>>2];b=b+4|0;f=f+4|0;if((q|0)!=(f|0)){continue}break}}e=c&3;if(!e){break F}while(1){c=b<<2;J[c+l>>2]=J[c+h>>2];b=b+1|0;d=d+1|0;if((e|0)!=(d|0)){continue}break}}J[a+80>>2]=r}qa(h)}b=J[g+40>>2];if(b){while(1){a=J[b>>2];qa(b);b=a;if(b){continue}break}}a=J[g+32>>2];J[g+32>>2]=0;if(a){qa(a)}ea=g- -64|0;return r}ua();B()}function qe(a,b,c,d,e){var f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,K=0,L=0,N=0,O=0;t=ea-32|0;ea=t;J[a>>2]=J[d>>2];d=J[c>>2]-J[b>>2]|0;J[a+4>>2]=d;n=J[e+20>>2];if(!J[e+16>>2]&(n|0)<=0|(n|0)<0){d=a+4|0;wa(e,J[e+4>>2],a,d);n=J[e+20>>2];if(!J[e+16>>2]&(n|0)<=0|(n|0)<0){wa(e,J[e+4>>2],d,a+8|0)}d=J[d>>2]}if(d){E=a+12|0;Ca(E);F=a+44|0;d=F;J[d+12>>2]=0;J[d+16>>2]=0;J[d+4>>2]=J[d>>2];G=a- -64|0;d=G;J[d+12>>2]=0;J[d+16>>2]=0;J[d+4>>2]=J[d>>2];H=a+84|0;d=H;J[d+12>>2]=0;J[d+16>>2]=0;J[d+4>>2]=J[d>>2];J[t+24>>2]=J[b+8>>2];d=J[b+4>>2];J[t+16>>2]=J[b>>2];J[t+20>>2]=d;J[t+8>>2]=J[c+8>>2];b=J[c+4>>2];J[t>>2]=J[c>>2];J[t+4>>2]=b;b=0;g=ea-32|0;ea=g;d=a;h=J[a+8>>2];J[g+16>>2]=0;J[g+8>>2]=0;J[g+12>>2]=0;a:{b:{if(h){if(h>>>0>=1073741824){break b}a=h<<2;b=ra(a);J[g+8>>2]=b;f=a+b|0;J[g+16>>2]=f;sa(b,0,a);J[g+12>>2]=f}a=J[d+140>>2];c=J[a>>2];if(c){J[a+4>>2]=c;qa(c);h=J[d+8>>2];f=J[g+12>>2];b=J[g+8>>2]}J[a+4>>2]=f;J[a>>2]=b;J[a+8>>2]=J[g+16>>2];b=0;J[g+16>>2]=0;J[g+8>>2]=0;J[g+12>>2]=0;a=0;c:{if(h){if(h>>>0>=1073741824){break c}c=h<<2;a=ra(c);J[g+8>>2]=a;b=a+c|0;J[g+16>>2]=b;sa(a,0,c);J[g+12>>2]=b}c=J[d+152>>2];n=J[c>>2];if(n){J[c+4>>2]=n;qa(n);b=J[g+12>>2];a=J[g+8>>2]}J[c+4>>2]=b;J[c>>2]=a;J[c+8>>2]=J[g+16>>2];x=J[t+20>>2];v=J[t+24>>2];z=J[t+4>>2];A=J[t+8>>2];b=J[t>>2];c=J[t+16>>2];J[g+24>>2]=0;J[g+28>>2]=0;J[g+16>>2]=0;J[g+20>>2]=0;J[g+8>>2]=0;J[g+12>>2]=0;gb(g+8|0);a=J[g+24>>2]+J[g+28>>2]|0;n=(a>>>0)/113|0;a=J[J[g+12>>2]+(n<<2)>>2]+P(a-P(n,113)|0,36)|0;J[a+32>>2]=0;J[a+28>>2]=b-c;J[a+24>>2]=0;J[a+16>>2]=z;J[a+20>>2]=A;J[a+12>>2]=b;J[a+4>>2]=x;J[a+8>>2]=v;J[a>>2]=c;h=J[g+28>>2]+1|0;J[g+28>>2]=h;if(h){K=v&-4;I=v&3;L=d+44|0;l=d+12|0;N=d+84|0;O=v>>>0<4;while(1){b=J[g+12>>2];o=J[g+24>>2];m=h-1|0;a=o+m|0;c=(a>>>0)/113|0;a=J[b+(c<<2)>>2]+P(a-P(c,113)|0,36)|0;D=J[a+32>>2];f=J[a+24>>2];n=J[a+12>>2];c=J[a>>2];J[g+28>>2]=m;a=J[g+16>>2];if((((a|0)!=(b|0)?P(a-b>>2,113)-1|0:0)-(h+o|0)|0)+1>>>0>=226){qa(J[a-4>>2]);J[g+16>>2]=J[g+16>>2]-4}b=J[d>>2];h=(f|0)!=(J[d+8>>2]-1|0)?f+1|0:0;o=h<<2;C=P(D,12);m=C+J[d+152>>2]|0;f=J[o+J[m>>2]>>2];d:{e:{if((b|0)==(f|0)){break e}f:{g:{p=n-c|0;if(p>>>0<=2){f=J[d+128>>2];J[f>>2]=h;b=1;a=J[d+8>>2];if(a>>>0>1){break g}break f}m=J[d+140>>2];a=m+C|0;j=m;m=C+12|0;cb(j+m|0,J[a>>2],J[a+4>>2]);a=J[m+J[d+140>>2]>>2]+o|0;m=J[a>>2]+(1<>2]=m;a=c;h:{if((n|0)==(a|0)){break h}q=J[x+24>>2];a=n;b=c;if(!v){if(m>>>0>M[o+q>>2]){break h}while(1){a=a-1|0;if((b|0)==(a|0)){a=b;break h}if(m>>>0<=M[(J[z+24>>2]+o|0)+(P(a,A)<<2)>>2]){continue}b=b+1|0;if((b|0)!=(a|0)){continue}break}break h}while(1){r=q+(P(b,v)<<2)|0;if(m>>>0>M[r+o>>2]){b=b+1|0;if((b|0)!=(a|0)){continue}break h}while(1){a=a-1|0;if((b|0)==(a|0)){a=b;break h}i=J[z+24>>2]+(P(a,A)<<2)|0;if(m>>>0<=M[i+o>>2]){continue}break}s=0;f=0;u=0;if(!O){while(1){k=f<<2;j=k+r|0;w=J[j>>2];y=j;j=i+k|0;J[y>>2]=J[j>>2];J[j>>2]=w;j=k|4;w=j+r|0;y=J[w>>2];j=i+j|0;J[w>>2]=J[j>>2];J[j>>2]=y;j=k|8;w=j+r|0;y=J[w>>2];j=i+j|0;J[w>>2]=J[j>>2];J[j>>2]=y;k=k|12;j=k+r|0;w=J[j>>2];k=i+k|0;J[j>>2]=J[k>>2];J[k>>2]=w;f=f+4|0;u=u+4|0;if((K|0)!=(u|0)){continue}break}}if(I){while(1){k=f<<2;u=k+r|0;j=J[u>>2];k=i+k|0;J[u>>2]=J[k>>2];J[k>>2]=j;f=f+1|0;s=s+1|0;if((I|0)!=(s|0)){continue}break}}b=b+1|0;if((b|0)!=(a|0)){continue}break}}m=a-c|0;r=n-a|0;if((m|0)!=(r|0)){uc(N,m>>>0>>0)}b=J[l>>2];f=J[b+12>>2];j=J[b+8>>2];i=(p>>>1|0)-(m>>>0>>0?m:r)|0;i=i<<8&16711680|i<<24|(i>>>8&65280|i>>>24);i=i>>>4&252645135|(i&252645135)<<4;i=i>>>2&858993459|(i&858993459)<<2;s=i>>>1&1431655765|(i&1431655765)<<1;i=S(p)^31;q=32-i|0;k=s>>>q|0;s=Dl(k);p=j+s|0;J[b+8>>2]=p;J[b+12>>2]=p>>>0>>0?f+1|0:f;f=i-s|0;s=f;p=f+J[b>>2]|0;f=J[b+4>>2]+(f>>31)|0;J[b>>2]=p;J[b+4>>2]=p>>>0>>0?f+1|0:f;i:{j:{k:{l:{b=J[l+28>>2];s=32-b|0;m:{if((s|0)>=(i|0)){f=b+i|0;J[l+28>>2]=f;p=J[l+24>>2]&(-1>>>q<>2]=p;if((f|0)!=32){break i}b=J[l+16>>2];if((b|0)!=J[l+20>>2]){J[b>>2]=p;J[l+16>>2]=b+4;b=0;f=0;break m}i=J[l+12>>2];f=b-i|0;q=f>>2;b=q+1|0;if(b>>>0>=1073741824){break l}k=f>>1;k=f>>>0>=2147483644?1073741823:b>>>0>>0?k:b;if(k){if(k>>>0>=1073741824){break k}b=ra(k<<2)}else{b=0}q=b+(q<<2)|0;J[q>>2]=p;if((f|0)>0){ta(b,i,f)}J[l+20>>2]=b+(k<<2);J[l+16>>2]=q+4;J[l+12>>2]=b;b=0;if(!i){f=0;break m}qa(i);f=0;break m}u=J[l+24>>2]&(-1<>2]=u;b=J[l+16>>2];n:{if((b|0)!=J[l+20>>2]){J[b>>2]=u;J[l+16>>2]=b+4;break n}p=J[l+12>>2];f=b-p|0;j=f>>2;b=j+1|0;if(b>>>0>=1073741824){break j}q=f>>1;q=f>>>0>=2147483644?1073741823:b>>>0>>0?q:b;if(q){if(q>>>0>=1073741824){break k}b=ra(q<<2)}else{b=0}j=b+(j<<2)|0;J[j>>2]=u;if((f|0)>0){ta(b,p,f)}J[l+20>>2]=b+(q<<2);J[l+16>>2]=j+4;J[l+12>>2]=b;if(!p){break n}qa(p)}f=i-s|0;b=-1>>>32-f&k>>>s}J[l+28>>2]=f;J[l+24>>2]=b;break i}ua();B()}ya();B()}ua();B()}j=o;b=J[d+152>>2];f=b+C|0;o=J[f>>2];i=j+o|0;J[i>>2]=J[i>>2]+1;i=D+1|0;cb(b+P(i,12)|0,o,J[f+4>>2]);if((a|0)!=(c|0)){b=J[g+28>>2]+J[g+24>>2]|0;o=J[g+16>>2];f=J[g+12>>2];if((b|0)==(((f|0)!=(o|0)?P(o-f>>2,113)-1|0:0)|0)){gb(g+8|0);f=J[g+12>>2];b=J[g+24>>2]+J[g+28>>2]|0}j=f;f=(b>>>0)/113|0;b=J[j+(f<<2)>>2]+P(b-P(f,113)|0,36)|0;J[b+32>>2]=D;J[b+28>>2]=m;J[b+24>>2]=h;J[b+16>>2]=x;J[b+12>>2]=a;J[b+4>>2]=x;J[b+8>>2]=v;J[b>>2]=c;J[b+20>>2]=v;J[g+28>>2]=J[g+28>>2]+1}if((a|0)==(n|0)){break e}f=J[g+28>>2]+J[g+24>>2]|0;c=J[g+16>>2];b=J[g+12>>2];if((f|0)==(((b|0)!=(c|0)?P(c-b>>2,113)-1|0:0)|0)){gb(g+8|0);f=J[g+24>>2]+J[g+28>>2]|0;c=J[g+12>>2]}else{c=b}b=(f>>>0)/113|0;b=J[c+(b<<2)>>2]+P(f-P(b,113)|0,36)|0;J[b+32>>2]=i;J[b+28>>2]=r;J[b+24>>2]=h;J[b+16>>2]=z;J[b+20>>2]=A;J[b+12>>2]=n;J[b+4>>2]=x;J[b>>2]=a;J[b+8>>2]=v;h=J[g+28>>2]+1|0;J[g+28>>2]=h;break d}while(1){h=(a-1|0)!=(h|0)?h+1|0:0;J[f+(b<<2)>>2]=h;a=J[d+8>>2];b=b+1|0;if(a>>>0>b>>>0){continue}break}}if(!a|(c|0)==(n|0)){break e}f=0;b=1;while(1){h=0;o:{if(!b){b=0;break o}n=J[x+24>>2]+(P(J[x+4>>2],c+f|0)<<2)|0;while(1){b=J[d>>2];o=J[J[d+128>>2]+(h<<2)>>2]<<2;r=J[o+J[m>>2]>>2];if((b|0)!=(r|0)){Kb(L,b-r|0,J[n+o>>2]);a=J[d+8>>2]}b=a;h=h+1|0;if(b>>>0>h>>>0){continue}break}}f=f+1|0;if((p|0)!=(f|0)){continue}break}}h=J[g+28>>2]}if(h){continue}break}}J[g+28>>2]=0;c=J[g+16>>2];h=J[g+12>>2];a=c-h|0;if(a>>>0>=9){while(1){qa(J[h>>2]);h=J[g+12>>2]+4|0;J[g+12>>2]=h;c=J[g+16>>2];a=c-h|0;if(a>>>0>8){continue}break}}b=56;p:{switch((a>>>2|0)-1|0){case 1:b=113;case 0:J[g+24>>2]=b;break;default:break p}}q:{if((c|0)==(h|0)){break q}while(1){qa(J[h>>2]);h=h+4|0;if((h|0)!=(c|0)){continue}break}a=J[g+16>>2];b=J[g+12>>2];if((a|0)==(b|0)){break q}J[g+16>>2]=a+((b-a|0)+3&-4)}a=J[g+8>>2];if(a){qa(a)}ea=g+32|0;break a}ua();B()}ua();B()}Ba(E,e);fb(F,e);fb(G,e);fb(H,e)}ea=t+32|0;return 1}function sf(a,b){var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=Q(0),r=0,s=0,t=Q(0);f=ea-80|0;ea=f;J[f+56>>2]=0;J[f+60>>2]=0;J[f+48>>2]=0;J[f+52>>2]=0;J[f+64>>2]=1065353216;d=J[a+80>>2];J[f+24>>2]=0;J[f+16>>2]=0;J[f+20>>2]=0;a:{if(d){if(d>>>0>=1073741824){break a}c=d<<2;n=ra(c);J[f+16>>2]=n;d=c+n|0;J[f+24>>2]=d;sa(n,0,c);J[f+20>>2]=d;while(1){d=J[J[b>>2]>>2];e=J[b+48>>2]+Al(J[b+40>>2],J[b+44>>2],s,0)|0;c=d+e|0;I[f+44>>1]=K[c+4|0]|K[c+5|0]<<8;J[f+40>>2]=K[c|0]|K[c+1|0]<<8|(K[c+2|0]<<16|K[c+3|0]<<24);d=K[c|0]|K[c+1|0]<<8|(K[c+2|0]<<16|K[c+3|0]<<24);I[f+36>>1]=K[c+4|0]|K[c+5|0]<<8;J[f+32>>2]=d;d=0;o=J[f+52>>2];b:{if(!o){break b}h=J[f+48>>2];l=L[f+36>>1]^(L[f+34>>1]^(L[f+32>>1]^318)+239)+239;c=l&o+262143;e=Dl(o);c:{if(e>>>0<=1){break c}c=l;if(c>>>0>>0){break c}c=(l>>>0)%(o>>>0)|0}g=h;h=c;c=J[g+(c<<2)>>2];if(!c){break b}c=J[c>>2];if(!c){break b}d:{if(e>>>0>=2){m=L[f+32>>1];i=L[f+34>>1];g=L[f+36>>1];while(1){e=J[c+4>>2];e:{if((e|0)!=(l|0)){if(e>>>0>=o>>>0){e=(e>>>0)%(o>>>0)|0}if((e|0)!=(h|0)){break b}break e}e=L[c+8>>1];f:{if((e|0)!=(m|0)){e=(e|0)==(m|0);break f}e=L[c+10>>1];if((e|0)!=(i|0)){e=(e|0)==(i|0);break f}e=(g|0)==L[c+12>>1]}if(e){break d}}c=J[c>>2];if(c){continue}break}break b}i=o-1|0;o=L[f+32>>1];m=L[f+34>>1];g=L[f+36>>1];while(1){e=J[c+4>>2];g:{if((e|0)!=(l|0)){if((h|0)!=(e&i)){break b}break g}e=L[c+8>>1];if((e|0)!=(o|0)){if((e|0)!=(o|0)){break g}break d}e=L[c+10>>1];if((e|0)!=(m|0)){if((e|0)!=(m|0)){break g}break d}if((g|0)==L[c+12>>1]){break d}}c=J[c>>2];if(c){continue}break}break b}d=c}h:{if(d){J[(s<<2)+n>>2]=J[d+16>>2];break h}I[f+4>>1]=L[f+36>>1];J[f>>2]=J[f+32>>2];J[f+8>>2]=r;d=0;l=L[f+4>>1]^(L[f+2>>1]^(L[f>>1]^318)+239)+239;i:{j:{j=f+48|0;e=J[j+4>>2];if(!e){break j}c=Dl(e);k:{if(c>>>0>=2){d=l;if(e>>>0<=d>>>0){d=(l>>>0)%(e>>>0)|0}k=J[J[j>>2]+(d<<2)>>2];if(!k){break j}if(c>>>0<2){break k}i=L[f>>1];g=L[f+2>>1];h=L[f+4>>1];while(1){k=J[k>>2];if(!k){break j}c=J[k+4>>2];if((c|0)!=(l|0)){if(c>>>0>=e>>>0){c=(c>>>0)%(e>>>0)|0}if((c|0)!=(d|0)){break j}}c=L[k+8>>1];l:{if((c|0)!=(i|0)){c=(c|0)==(i|0);break l}c=L[k+10>>1];if((c|0)!=(g|0)){c=(c|0)==(g|0);break l}c=(h|0)==L[k+12>>1]}if(!c){continue}break}d=0;break i}d=l&e+262143;k=J[J[j>>2]+(d<<2)>>2];if(!k){break j}}g=e-1|0;m=L[f>>1];i=L[f+2>>1];h=L[f+4>>1];while(1){k=J[k>>2];if(!k){break j}c=J[k+4>>2];if((c|0)!=(l|0)&(c&g)!=(d|0)){break j}c=L[k+8>>1];m:{if((c|0)!=(m|0)){c=(c|0)==(m|0);break m}c=L[k+10>>1];if((c|0)!=(i|0)){c=(c|0)==(i|0);break m}c=(h|0)==L[k+12>>1]}if(!c){continue}break}d=0;break i}k=ra(20);I[k+12>>1]=L[f+4>>1];J[k+8>>2]=J[f>>2];c=J[f+8>>2];J[k>>2]=0;J[k+4>>2]=l;J[k+16>>2]=c;q=Q(J[j+12>>2]+1>>>0);t=N[j+16>>2];n:{if(q>Q(t*Q(e>>>0))?0:e){break n}d=2;c=(e-1&e)!=0|e>>>0<3|e<<1;q=Q(W(Q(q/t)));o:{if(q=Q(0)){h=~~q>>>0;break o}h=0}c=c>>>0>h>>>0?c:h;p:{if((c|0)==1){break p}if(!(c&c-1)){d=c;break p}d=Ka(c);e=J[j+4>>2]}q:{if(d>>>0<=e>>>0){if(d>>>0>=e>>>0){break q}h=e>>>0<3;q=Q(W(Q(Q(M[j+12>>2])/N[j+16>>2])));r:{if(q=Q(0)){c=~~q>>>0;break r}c=0}s:{t:{if(h){break t}if(Dl(e)>>>0>1){break t}c=c>>>0<2?c:1<<32-S(c-1|0);break s}c=Ka(c)}d=c>>>0>>0?d:c;if(e>>>0<=d>>>0){break q}}c=0;g=0;i=d;u:{v:{w:{x:{if(d){if(i>>>0>=1073741824){break x}d=ra(i<<2);e=J[j>>2];J[j>>2]=d;if(e){qa(e)}J[j+4>>2]=i;if(i>>>0>=4){d=i&-4;e=0;while(1){h=c<<2;J[h+J[j>>2]>>2]=0;J[J[j>>2]+(h|4)>>2]=0;J[J[j>>2]+(h|8)>>2]=0;J[J[j>>2]+(h|12)>>2]=0;c=c+4|0;e=e+4|0;if((d|0)!=(e|0)){continue}break}}d=i&3;if(d){while(1){J[J[j>>2]+(c<<2)>>2]=0;c=c+1|0;g=g+1|0;if((d|0)!=(g|0)){continue}break}}e=J[j+8>>2];if(!e){break u}d=j+8|0;h=J[e+4>>2];c=Dl(i);if(c>>>0<2){break w}h=h>>>0>=i>>>0?(h>>>0)%(i>>>0)|0:h;J[J[j>>2]+(h<<2)>>2]=d;d=J[e>>2];if(!d){break u}if(c>>>0<=1){break v}while(1){g=J[d+4>>2];if(i>>>0<=g>>>0){g=(g>>>0)%(i>>>0)|0}y:{if((g|0)==(h|0)){e=d;break y}c=d;n=g<<2;m=n+J[j>>2]|0;if(!J[m>>2]){J[m>>2]=e;e=d;h=g;break y}while(1){g=c;c=J[c>>2];if(c){o=L[d+8>>1];m=L[c+8>>1];z:{if((o|0)!=(m|0)){m=(m|0)==(o|0);break z}o=L[d+10>>1];m=L[c+10>>1];if((o|0)!=(m|0)){m=(m|0)==(o|0);break z}m=L[d+12>>1]==L[c+12>>1]}if(m){continue}}break}J[e>>2]=c;J[g>>2]=J[J[n+J[j>>2]>>2]>>2];J[J[n+J[j>>2]>>2]>>2]=d}d=J[e>>2];if(d){continue}break}break u}d=J[j>>2];J[j>>2]=0;if(d){qa(d)}J[j+4>>2]=0;break u}ya();B()}h=i-1&h;J[J[j>>2]+(h<<2)>>2]=d;d=J[e>>2];if(!d){break u}}o=i-1|0;while(1){g=o&J[d+4>>2];A:{if((g|0)==(h|0)){e=d;break A}c=d;n=g<<2;i=n+J[j>>2]|0;if(J[i>>2]){while(1){g=c;c=J[c>>2];if(c){m=L[d+8>>1];i=L[c+8>>1];B:{if((m|0)!=(i|0)){i=(i|0)==(m|0);break B}m=L[d+10>>1];i=L[c+10>>1];if((m|0)!=(i|0)){i=(i|0)==(m|0);break B}i=L[d+12>>1]==L[c+12>>1]}if(i){continue}}break}J[e>>2]=c;J[g>>2]=J[J[n+J[j>>2]>>2]>>2];J[J[n+J[j>>2]>>2]>>2]=d;break A}J[i>>2]=e;e=d;h=g}d=J[e>>2];if(d){continue}break}}}e=J[j+4>>2];d=e-1|0;if(!(d&e)){d=d&l;break n}if(e>>>0>l>>>0){d=l;break n}d=(l>>>0)%(e>>>0)|0}c=J[j>>2]+(d<<2)|0;d=J[c>>2];C:{D:{if(!d){d=j+8|0;J[k>>2]=J[d>>2];J[j+8>>2]=k;J[c>>2]=d;d=J[k>>2];if(!d){break C}d=J[d+4>>2];c=e-1|0;E:{if(!(c&e)){d=c&d;break E}if(d>>>0>>0){break E}d=(d>>>0)%(e>>>0)|0}d=J[j>>2]+(d<<2)|0;break D}J[k>>2]=J[d>>2]}J[d>>2]=k}J[j+12>>2]=J[j+12>>2]+1;d=1}H[f+76|0]=d;J[f+72>>2]=k;d=J[a+40>>2];ta(J[J[a>>2]>>2]+P(d,r)|0,f+40|0,d);n=J[f+16>>2];J[n+(s<<2)>>2]=r;r=r+1|0}d=s+1|0;p=d?p:p+1|0;s=d;c=J[a+80>>2];if(!p&c>>>0>d>>>0){continue}break}if((c|0)!=(r|0)){F:{if(!K[a+84|0]){b=J[a+72>>2];g=J[a+68>>2];if((b|0)==(g|0)){break F}b=b-g>>2;c=b>>>0<=1?1:b;h=c&3;d=0;b=0;if(c-1>>>0>=3){p=c&-4;e=0;while(1){l=b<<2;c=l+g|0;J[c>>2]=J[(J[c>>2]<<2)+n>>2];c=g+(l|4)|0;J[c>>2]=J[(J[c>>2]<<2)+n>>2];c=g+(l|8)|0;J[c>>2]=J[(J[c>>2]<<2)+n>>2];c=g+(l|12)|0;J[c>>2]=J[(J[c>>2]<<2)+n>>2];b=b+4|0;e=e+4|0;if((p|0)!=(e|0)){continue}break}}if(!h){break F}while(1){c=g+(b<<2)|0;J[c>>2]=J[(J[c>>2]<<2)+n>>2];b=b+1|0;d=d+1|0;if((h|0)!=(d|0)){continue}break}break F}H[a+84|0]=0;e=a+68|0;b=J[a+68>>2];d=J[a+72>>2]-b>>2;G:{if(d>>>0>>0){La(e,c-d|0,2176);c=J[a+80>>2];break G}if(c>>>0>=d>>>0){break G}J[a+72>>2]=b+(c<<2)}if(!c){break F}g=J[e>>2];d=0;b=0;if(c>>>0>=4){h=c&-4;e=0;while(1){l=b<<2;J[l+g>>2]=J[l+n>>2];p=l|4;J[p+g>>2]=J[n+p>>2];p=l|8;J[p+g>>2]=J[n+p>>2];p=l|12;J[p+g>>2]=J[n+p>>2];b=b+4|0;e=e+4|0;if((h|0)!=(e|0)){continue}break}}e=c&3;if(!e){break F}while(1){c=b<<2;J[c+g>>2]=J[c+n>>2];b=b+1|0;d=d+1|0;if((e|0)!=(d|0)){continue}break}}J[a+80>>2]=r}qa(n)}b=J[f+56>>2];if(b){while(1){a=J[b>>2];qa(b);b=a;if(b){continue}break}}a=J[f+48>>2];J[f+48>>2]=0;if(a){qa(a)}ea=f+80|0;return r}ua();B()}function Ff(a,b){var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=Q(0),r=0,s=0,t=Q(0);f=ea+-64|0;ea=f;J[f+40>>2]=0;J[f+44>>2]=0;J[f+32>>2]=0;J[f+36>>2]=0;J[f+48>>2]=1065353216;d=J[a+80>>2];J[f+16>>2]=0;J[f+8>>2]=0;J[f+12>>2]=0;a:{if(d){if(d>>>0>=1073741824){break a}c=d<<2;n=ra(c);J[f+8>>2]=n;d=c+n|0;J[f+16>>2]=d;sa(n,0,c);J[f+12>>2]=d;while(1){d=J[J[b>>2]>>2];e=J[b+48>>2]+Al(J[b+40>>2],J[b+44>>2],s,0)|0;c=d+e|0;H[f+30|0]=K[c+2|0];I[f+28>>1]=K[c|0]|K[c+1|0]<<8;d=K[c|0]|K[c+1|0]<<8;H[f+26|0]=K[c+2|0];I[f+24>>1]=d;d=0;o=J[f+36>>2];b:{if(!o){break b}h=J[f+32>>2];l=K[f+26|0]^(K[f+25|0]^(K[f+24|0]^318)+239)+239;c=l&o-1;e=Dl(o);c:{if(e>>>0<=1){break c}c=l;if(c>>>0>>0){break c}c=(l>>>0)%(o>>>0)|0}g=h;h=c;c=J[g+(c<<2)>>2];if(!c){break b}c=J[c>>2];if(!c){break b}d:{if(e>>>0>=2){m=K[f+24|0];i=K[f+25|0];g=K[f+26|0];while(1){e=J[c+4>>2];e:{if((e|0)!=(l|0)){if(e>>>0>=o>>>0){e=(e>>>0)%(o>>>0)|0}if((e|0)!=(h|0)){break b}break e}e=K[c+8|0];f:{if((e|0)!=(m|0)){e=(e|0)==(m|0);break f}e=K[c+9|0];if((e|0)!=(i|0)){e=(e|0)==(i|0);break f}e=(g|0)==K[c+10|0]}if(e){break d}}c=J[c>>2];if(c){continue}break}break b}i=o-1|0;o=K[f+24|0];m=K[f+25|0];g=K[f+26|0];while(1){e=J[c+4>>2];g:{if((e|0)!=(l|0)){if((h|0)!=(e&i)){break b}break g}e=K[c+8|0];if((e|0)!=(o|0)){if((e|0)!=(o|0)){break g}break d}e=K[c+9|0];if((e|0)!=(m|0)){if((e|0)!=(m|0)){break g}break d}if((g|0)==K[c+10|0]){break d}}c=J[c>>2];if(c){continue}break}break b}d=c}h:{if(d){J[(s<<2)+n>>2]=J[d+12>>2];break h}H[f+2|0]=K[f+26|0];I[f>>1]=L[f+24>>1];J[f+4>>2]=r;d=0;l=K[f+2|0]^(K[f+1|0]^(K[f|0]^318)+239)+239;i:{j:{j=f+32|0;e=J[j+4>>2];if(!e){break j}c=Dl(e);k:{if(c>>>0>=2){d=l;if(e>>>0<=d>>>0){d=(l>>>0)%(e>>>0)|0}k=J[J[j>>2]+(d<<2)>>2];if(!k){break j}if(c>>>0<2){break k}i=K[f|0];g=K[f+1|0];h=K[f+2|0];while(1){k=J[k>>2];if(!k){break j}c=J[k+4>>2];if((c|0)!=(l|0)){if(c>>>0>=e>>>0){c=(c>>>0)%(e>>>0)|0}if((c|0)!=(d|0)){break j}}c=K[k+8|0];l:{if((c|0)!=(i|0)){c=(c|0)==(i|0);break l}c=K[k+9|0];if((c|0)!=(g|0)){c=(c|0)==(g|0);break l}c=(h|0)==K[k+10|0]}if(!c){continue}break}d=0;break i}d=l&e-1;k=J[J[j>>2]+(d<<2)>>2];if(!k){break j}}g=e-1|0;m=K[f|0];i=K[f+1|0];h=K[f+2|0];while(1){k=J[k>>2];if(!k){break j}c=J[k+4>>2];if((c|0)!=(l|0)&(c&g)!=(d|0)){break j}c=K[k+8|0];m:{if((c|0)!=(m|0)){c=(c|0)==(m|0);break m}c=K[k+9|0];if((c|0)!=(i|0)){c=(c|0)==(i|0);break m}c=(h|0)==K[k+10|0]}if(!c){continue}break}d=0;break i}k=ra(16);H[k+10|0]=K[f+2|0];I[k+8>>1]=L[f>>1];c=J[f+4>>2];J[k>>2]=0;J[k+4>>2]=l;J[k+12>>2]=c;q=Q(J[j+12>>2]+1>>>0);t=N[j+16>>2];n:{if(q>Q(t*Q(e>>>0))?0:e){break n}d=2;c=(e-1&e)!=0|e>>>0<3|e<<1;q=Q(W(Q(q/t)));o:{if(q=Q(0)){h=~~q>>>0;break o}h=0}c=c>>>0>h>>>0?c:h;p:{if((c|0)==1){break p}if(!(c&c-1)){d=c;break p}d=Ka(c);e=J[j+4>>2]}q:{if(d>>>0<=e>>>0){if(d>>>0>=e>>>0){break q}h=e>>>0<3;q=Q(W(Q(Q(M[j+12>>2])/N[j+16>>2])));r:{if(q=Q(0)){c=~~q>>>0;break r}c=0}s:{t:{if(h){break t}if(Dl(e)>>>0>1){break t}c=c>>>0<2?c:1<<32-S(c-1|0);break s}c=Ka(c)}d=c>>>0>>0?d:c;if(e>>>0<=d>>>0){break q}}c=0;g=0;i=d;u:{v:{w:{x:{if(d){if(i>>>0>=1073741824){break x}d=ra(i<<2);e=J[j>>2];J[j>>2]=d;if(e){qa(e)}J[j+4>>2]=i;if(i>>>0>=4){d=i&-4;e=0;while(1){h=c<<2;J[h+J[j>>2]>>2]=0;J[J[j>>2]+(h|4)>>2]=0;J[J[j>>2]+(h|8)>>2]=0;J[J[j>>2]+(h|12)>>2]=0;c=c+4|0;e=e+4|0;if((d|0)!=(e|0)){continue}break}}d=i&3;if(d){while(1){J[J[j>>2]+(c<<2)>>2]=0;c=c+1|0;g=g+1|0;if((d|0)!=(g|0)){continue}break}}e=J[j+8>>2];if(!e){break u}d=j+8|0;h=J[e+4>>2];c=Dl(i);if(c>>>0<2){break w}h=h>>>0>=i>>>0?(h>>>0)%(i>>>0)|0:h;J[J[j>>2]+(h<<2)>>2]=d;d=J[e>>2];if(!d){break u}if(c>>>0<=1){break v}while(1){g=J[d+4>>2];if(i>>>0<=g>>>0){g=(g>>>0)%(i>>>0)|0}y:{if((g|0)==(h|0)){e=d;break y}c=d;n=g<<2;m=n+J[j>>2]|0;if(!J[m>>2]){J[m>>2]=e;e=d;h=g;break y}while(1){g=c;c=J[c>>2];if(c){o=K[d+8|0];m=K[c+8|0];z:{if((o|0)!=(m|0)){m=(m|0)==(o|0);break z}o=K[d+9|0];m=K[c+9|0];if((o|0)!=(m|0)){m=(m|0)==(o|0);break z}m=K[d+10|0]==K[c+10|0]}if(m){continue}}break}J[e>>2]=c;J[g>>2]=J[J[n+J[j>>2]>>2]>>2];J[J[n+J[j>>2]>>2]>>2]=d}d=J[e>>2];if(d){continue}break}break u}d=J[j>>2];J[j>>2]=0;if(d){qa(d)}J[j+4>>2]=0;break u}ya();B()}h=i-1&h;J[J[j>>2]+(h<<2)>>2]=d;d=J[e>>2];if(!d){break u}}o=i-1|0;while(1){g=o&J[d+4>>2];A:{if((g|0)==(h|0)){e=d;break A}c=d;n=g<<2;i=n+J[j>>2]|0;if(J[i>>2]){while(1){g=c;c=J[c>>2];if(c){m=K[d+8|0];i=K[c+8|0];B:{if((m|0)!=(i|0)){i=(i|0)==(m|0);break B}m=K[d+9|0];i=K[c+9|0];if((m|0)!=(i|0)){i=(i|0)==(m|0);break B}i=K[d+10|0]==K[c+10|0]}if(i){continue}}break}J[e>>2]=c;J[g>>2]=J[J[n+J[j>>2]>>2]>>2];J[J[n+J[j>>2]>>2]>>2]=d;break A}J[i>>2]=e;e=d;h=g}d=J[e>>2];if(d){continue}break}}}e=J[j+4>>2];d=e-1|0;if(!(d&e)){d=d&l;break n}if(e>>>0>l>>>0){d=l;break n}d=(l>>>0)%(e>>>0)|0}c=J[j>>2]+(d<<2)|0;d=J[c>>2];C:{D:{if(!d){d=j+8|0;J[k>>2]=J[d>>2];J[j+8>>2]=k;J[c>>2]=d;d=J[k>>2];if(!d){break C}d=J[d+4>>2];c=e-1|0;E:{if(!(c&e)){d=c&d;break E}if(d>>>0>>0){break E}d=(d>>>0)%(e>>>0)|0}d=J[j>>2]+(d<<2)|0;break D}J[k>>2]=J[d>>2]}J[d>>2]=k}J[j+12>>2]=J[j+12>>2]+1;d=1}H[f+60|0]=d;J[f+56>>2]=k;d=J[a+40>>2];ta(J[J[a>>2]>>2]+P(d,r)|0,f+28|0,d);n=J[f+8>>2];J[n+(s<<2)>>2]=r;r=r+1|0}d=s+1|0;p=d?p:p+1|0;s=d;c=J[a+80>>2];if(!p&c>>>0>d>>>0){continue}break}if((c|0)!=(r|0)){F:{if(!K[a+84|0]){b=J[a+72>>2];g=J[a+68>>2];if((b|0)==(g|0)){break F}b=b-g>>2;c=b>>>0<=1?1:b;h=c&3;d=0;b=0;if(c-1>>>0>=3){p=c&-4;e=0;while(1){l=b<<2;c=l+g|0;J[c>>2]=J[(J[c>>2]<<2)+n>>2];c=g+(l|4)|0;J[c>>2]=J[(J[c>>2]<<2)+n>>2];c=g+(l|8)|0;J[c>>2]=J[(J[c>>2]<<2)+n>>2];c=g+(l|12)|0;J[c>>2]=J[(J[c>>2]<<2)+n>>2];b=b+4|0;e=e+4|0;if((p|0)!=(e|0)){continue}break}}if(!h){break F}while(1){c=g+(b<<2)|0;J[c>>2]=J[(J[c>>2]<<2)+n>>2];b=b+1|0;d=d+1|0;if((h|0)!=(d|0)){continue}break}break F}H[a+84|0]=0;e=a+68|0;b=J[a+68>>2];d=J[a+72>>2]-b>>2;G:{if(d>>>0>>0){La(e,c-d|0,2176);c=J[a+80>>2];break G}if(c>>>0>=d>>>0){break G}J[a+72>>2]=b+(c<<2)}if(!c){break F}g=J[e>>2];d=0;b=0;if(c>>>0>=4){h=c&-4;e=0;while(1){l=b<<2;J[l+g>>2]=J[l+n>>2];p=l|4;J[p+g>>2]=J[n+p>>2];p=l|8;J[p+g>>2]=J[n+p>>2];p=l|12;J[p+g>>2]=J[n+p>>2];b=b+4|0;e=e+4|0;if((h|0)!=(e|0)){continue}break}}e=c&3;if(!e){break F}while(1){c=b<<2;J[c+g>>2]=J[c+n>>2];b=b+1|0;d=d+1|0;if((e|0)!=(d|0)){continue}break}}J[a+80>>2]=r}qa(n)}b=J[f+40>>2];if(b){while(1){a=J[b>>2];qa(b);b=a;if(b){continue}break}}a=J[f+32>>2];J[f+32>>2]=0;if(a){qa(a)}ea=f- -64|0;return r}ua();B()}function Bd(a,b){var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=Q(0),q=0,r=0,s=0,t=Q(0);f=ea-80|0;ea=f;J[f+56>>2]=0;J[f+60>>2]=0;J[f+48>>2]=0;J[f+52>>2]=0;J[f+64>>2]=1065353216;d=J[a+80>>2];J[f+24>>2]=0;J[f+16>>2]=0;J[f+20>>2]=0;a:{if(d){if(d>>>0>=1073741824){break a}c=d<<2;m=ra(c);J[f+16>>2]=m;d=c+m|0;J[f+24>>2]=d;sa(m,0,c);J[f+20>>2]=d;while(1){d=J[J[b>>2]>>2];c=J[b+48>>2]+Al(J[b+40>>2],J[b+44>>2],s,0)|0;d=d+c|0;c=K[d+4|0]|K[d+5|0]<<8|(K[d+6|0]<<16|K[d+7|0]<<24);d=K[d|0]|K[d+1|0]<<8|(K[d+2|0]<<16|K[d+3|0]<<24);J[f+32>>2]=d;J[f+36>>2]=c;J[f+40>>2]=d;J[f+44>>2]=c;d=0;n=J[f+52>>2];b:{if(!n){break b}h=J[f+48>>2];k=J[f+36>>2]^(J[f+32>>2]^318)+239;c=k&n-1;e=Dl(n);c:{if(e>>>0<=1){break c}c=k;if(c>>>0>>0){break c}c=(k>>>0)%(n>>>0)|0}g=h;h=c;c=J[g+(c<<2)>>2];if(!c){break b}c=J[c>>2];if(!c){break b}d:{if(e>>>0>=2){g=J[f+36>>2];j=J[f+32>>2];while(1){e=J[c+4>>2];e:{if((e|0)!=(k|0)){if(e>>>0>=n>>>0){e=(e>>>0)%(n>>>0)|0}if((e|0)!=(h|0)){break b}break e}e=J[c+8>>2];f:{if((e|0)!=(j|0)){e=(e|0)==(j|0);break f}e=(g|0)==J[c+12>>2]}if(e){break d}}c=J[c>>2];if(c){continue}break}break b}j=n-1|0;g=J[f+36>>2];n=J[f+32>>2];while(1){e=J[c+4>>2];g:{if((e|0)!=(k|0)){if((h|0)!=(e&j)){break b}break g}e=J[c+8>>2];if((e|0)!=(n|0)){if((e|0)!=(n|0)){break g}break d}if((g|0)==J[c+12>>2]){break d}}c=J[c>>2];if(c){continue}break}break b}d=c}h:{if(d){J[(s<<2)+m>>2]=J[d+16>>2];break h}J[f+8>>2]=q;d=J[f+36>>2];J[f>>2]=J[f+32>>2];J[f+4>>2]=d;d=0;k=J[f+4>>2]^(J[f>>2]^318)+239;i:{j:{i=f+48|0;e=J[i+4>>2];if(!e){break j}c=Dl(e);k:{if(c>>>0>=2){d=k;if(e>>>0<=d>>>0){d=(k>>>0)%(e>>>0)|0}l=J[J[i>>2]+(d<<2)>>2];if(!l){break j}if(c>>>0<2){break k}h=J[f+4>>2];g=J[f>>2];while(1){l=J[l>>2];if(!l){break j}c=J[l+4>>2];if((c|0)!=(k|0)){if(c>>>0>=e>>>0){c=(c>>>0)%(e>>>0)|0}if((c|0)!=(d|0)){break j}}c=J[l+8>>2];l:{if((c|0)!=(g|0)){c=(c|0)==(g|0);break l}c=(h|0)==J[l+12>>2]}if(!c){continue}break}d=0;break i}d=k&e-1;l=J[J[i>>2]+(d<<2)>>2];if(!l){break j}}g=e-1|0;h=J[f+4>>2];j=J[f>>2];while(1){l=J[l>>2];if(!l){break j}c=J[l+4>>2];if((c|0)!=(k|0)&(c&g)!=(d|0)){break j}c=J[l+8>>2];m:{if((c|0)!=(j|0)){c=(c|0)==(j|0);break m}c=(h|0)==J[l+12>>2]}if(!c){continue}break}d=0;break i}l=ra(20);c=J[f+4>>2];J[l+8>>2]=J[f>>2];J[l+12>>2]=c;c=J[f+8>>2];J[l+4>>2]=k;J[l+16>>2]=c;J[l>>2]=0;p=Q(J[i+12>>2]+1>>>0);t=N[i+16>>2];n:{if(p>Q(t*Q(e>>>0))?0:e){break n}d=2;c=(e-1&e)!=0|e>>>0<3|e<<1;p=Q(W(Q(p/t)));o:{if(p=Q(0)){h=~~p>>>0;break o}h=0}c=c>>>0>h>>>0?c:h;p:{if((c|0)==1){break p}if(!(c&c-1)){d=c;break p}d=Ka(c);e=J[i+4>>2]}q:{if(d>>>0<=e>>>0){if(d>>>0>=e>>>0){break q}h=e>>>0<3;p=Q(W(Q(Q(M[i+12>>2])/N[i+16>>2])));r:{if(p=Q(0)){c=~~p>>>0;break r}c=0}s:{t:{if(h){break t}if(Dl(e)>>>0>1){break t}c=c>>>0<2?c:1<<32-S(c-1|0);break s}c=Ka(c)}d=c>>>0>>0?d:c;if(e>>>0<=d>>>0){break q}}c=0;g=0;j=d;u:{v:{w:{x:{if(d){if(j>>>0>=1073741824){break x}d=ra(j<<2);e=J[i>>2];J[i>>2]=d;if(e){qa(e)}J[i+4>>2]=j;if(j>>>0>=4){d=j&-4;e=0;while(1){h=c<<2;J[h+J[i>>2]>>2]=0;J[J[i>>2]+(h|4)>>2]=0;J[J[i>>2]+(h|8)>>2]=0;J[J[i>>2]+(h|12)>>2]=0;c=c+4|0;e=e+4|0;if((d|0)!=(e|0)){continue}break}}d=j&3;if(d){while(1){J[J[i>>2]+(c<<2)>>2]=0;c=c+1|0;g=g+1|0;if((d|0)!=(g|0)){continue}break}}e=J[i+8>>2];if(!e){break u}d=i+8|0;h=J[e+4>>2];c=Dl(j);if(c>>>0<2){break w}h=h>>>0>=j>>>0?(h>>>0)%(j>>>0)|0:h;J[J[i>>2]+(h<<2)>>2]=d;d=J[e>>2];if(!d){break u}if(c>>>0<=1){break v}while(1){g=J[d+4>>2];if(j>>>0<=g>>>0){g=(g>>>0)%(j>>>0)|0}y:{if((g|0)==(h|0)){e=d;break y}c=d;r=g<<2;n=r+J[i>>2]|0;if(!J[n>>2]){J[n>>2]=e;e=d;h=g;break y}while(1){g=c;c=J[c>>2];if(c){m=J[d+8>>2];n=J[c+8>>2];z:{if((m|0)!=(n|0)){m=(m|0)==(n|0);break z}m=J[d+12>>2]==J[c+12>>2]}if(m){continue}}break}J[e>>2]=c;J[g>>2]=J[J[r+J[i>>2]>>2]>>2];J[J[r+J[i>>2]>>2]>>2]=d}d=J[e>>2];if(d){continue}break}break u}d=J[i>>2];J[i>>2]=0;if(d){qa(d)}J[i+4>>2]=0;break u}ya();B()}h=j-1&h;J[J[i>>2]+(h<<2)>>2]=d;d=J[e>>2];if(!d){break u}}m=j-1|0;while(1){g=m&J[d+4>>2];A:{if((g|0)==(h|0)){e=d;break A}c=d;r=g<<2;j=r+J[i>>2]|0;if(J[j>>2]){while(1){g=c;c=J[c>>2];if(c){n=J[d+8>>2];j=J[c+8>>2];B:{if((n|0)!=(j|0)){j=(j|0)==(n|0);break B}j=J[d+12>>2]==J[c+12>>2]}if(j){continue}}break}J[e>>2]=c;J[g>>2]=J[J[r+J[i>>2]>>2]>>2];J[J[r+J[i>>2]>>2]>>2]=d;break A}J[j>>2]=e;e=d;h=g}d=J[e>>2];if(d){continue}break}}}e=J[i+4>>2];d=e-1|0;if(!(d&e)){d=d&k;break n}if(e>>>0>k>>>0){d=k;break n}d=(k>>>0)%(e>>>0)|0}c=J[i>>2]+(d<<2)|0;d=J[c>>2];C:{D:{if(!d){d=i+8|0;J[l>>2]=J[d>>2];J[i+8>>2]=l;J[c>>2]=d;d=J[l>>2];if(!d){break C}d=J[d+4>>2];c=e-1|0;E:{if(!(c&e)){d=c&d;break E}if(d>>>0>>0){break E}d=(d>>>0)%(e>>>0)|0}d=J[i>>2]+(d<<2)|0;break D}J[l>>2]=J[d>>2]}J[d>>2]=l}J[i+12>>2]=J[i+12>>2]+1;d=1}H[f+76|0]=d;J[f+72>>2]=l;d=J[a+40>>2];ta(J[J[a>>2]>>2]+P(d,q)|0,f+40|0,d);m=J[f+16>>2];J[m+(s<<2)>>2]=q;q=q+1|0}d=s+1|0;o=d?o:o+1|0;s=d;c=J[a+80>>2];if(!o&c>>>0>d>>>0){continue}break}if((c|0)!=(q|0)){F:{if(!K[a+84|0]){b=J[a+72>>2];g=J[a+68>>2];if((b|0)==(g|0)){break F}b=b-g>>2;c=b>>>0<=1?1:b;h=c&3;d=0;b=0;if(c-1>>>0>=3){o=c&-4;e=0;while(1){k=b<<2;c=k+g|0;J[c>>2]=J[(J[c>>2]<<2)+m>>2];c=g+(k|4)|0;J[c>>2]=J[(J[c>>2]<<2)+m>>2];c=g+(k|8)|0;J[c>>2]=J[(J[c>>2]<<2)+m>>2];c=g+(k|12)|0;J[c>>2]=J[(J[c>>2]<<2)+m>>2];b=b+4|0;e=e+4|0;if((o|0)!=(e|0)){continue}break}}if(!h){break F}while(1){c=g+(b<<2)|0;J[c>>2]=J[(J[c>>2]<<2)+m>>2];b=b+1|0;d=d+1|0;if((h|0)!=(d|0)){continue}break}break F}H[a+84|0]=0;e=a+68|0;b=J[a+68>>2];d=J[a+72>>2]-b>>2;G:{if(d>>>0>>0){La(e,c-d|0,2176);c=J[a+80>>2];break G}if(c>>>0>=d>>>0){break G}J[a+72>>2]=b+(c<<2)}if(!c){break F}g=J[e>>2];d=0;b=0;if(c>>>0>=4){h=c&-4;e=0;while(1){k=b<<2;J[k+g>>2]=J[k+m>>2];o=k|4;J[o+g>>2]=J[m+o>>2];o=k|8;J[o+g>>2]=J[m+o>>2];o=k|12;J[o+g>>2]=J[m+o>>2];b=b+4|0;e=e+4|0;if((h|0)!=(e|0)){continue}break}}e=c&3;if(!e){break F}while(1){c=b<<2;J[c+g>>2]=J[c+m>>2];b=b+1|0;d=d+1|0;if((e|0)!=(d|0)){continue}break}}J[a+80>>2]=q}qa(m)}b=J[f+56>>2];if(b){while(1){a=J[b>>2];qa(b);b=a;if(b){continue}break}}a=J[f+48>>2];J[f+48>>2]=0;if(a){qa(a)}ea=f+80|0;return q}ua();B()}function vf(a,b){var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=Q(0),q=0,r=0,s=0,t=Q(0);g=ea+-64|0;ea=g;J[g+40>>2]=0;J[g+44>>2]=0;J[g+32>>2]=0;J[g+36>>2]=0;J[g+48>>2]=1065353216;d=J[a+80>>2];J[g+16>>2]=0;J[g+8>>2]=0;J[g+12>>2]=0;a:{if(d){if(d>>>0>=1073741824){break a}c=d<<2;m=ra(c);J[g+8>>2]=m;d=c+m|0;J[g+16>>2]=d;sa(m,0,c);J[g+12>>2]=d;while(1){d=J[J[b>>2]>>2];e=J[b+48>>2]+Al(J[b+40>>2],J[b+44>>2],s,0)|0;d=d+e|0;d=K[d|0]|K[d+1|0]<<8|(K[d+2|0]<<16|K[d+3|0]<<24);J[g+24>>2]=d;J[g+28>>2]=d;d=0;n=J[g+36>>2];b:{if(!n){break b}h=J[g+32>>2];k=L[g+26>>1]^(L[g+24>>1]^318)+239;c=k&n+131071;e=Dl(n);c:{if(e>>>0<=1){break c}c=k;if(c>>>0>>0){break c}c=(k>>>0)%(n>>>0)|0}f=h;h=c;c=J[f+(c<<2)>>2];if(!c){break b}c=J[c>>2];if(!c){break b}d:{if(e>>>0>=2){j=L[g+24>>1];f=L[g+26>>1];while(1){e=J[c+4>>2];e:{if((e|0)!=(k|0)){if(e>>>0>=n>>>0){e=(e>>>0)%(n>>>0)|0}if((e|0)!=(h|0)){break b}break e}e=L[c+8>>1];f:{if((e|0)!=(j|0)){e=(e|0)==(j|0);break f}e=(f|0)==L[c+10>>1]}if(e){break d}}c=J[c>>2];if(c){continue}break}break b}j=n-1|0;n=L[g+24>>1];f=L[g+26>>1];while(1){e=J[c+4>>2];g:{if((e|0)!=(k|0)){if((h|0)!=(e&j)){break b}break g}e=L[c+8>>1];if((e|0)!=(n|0)){if((e|0)!=(n|0)){break g}break d}if((f|0)==L[c+10>>1]){break d}}c=J[c>>2];if(c){continue}break}break b}d=c}h:{if(d){J[(s<<2)+m>>2]=J[d+12>>2];break h}J[g+4>>2]=q;J[g>>2]=J[g+24>>2];d=0;k=L[g+2>>1]^(L[g>>1]^318)+239;i:{j:{i=g+32|0;e=J[i+4>>2];if(!e){break j}c=Dl(e);k:{if(c>>>0>=2){d=k;if(e>>>0<=d>>>0){d=(k>>>0)%(e>>>0)|0}l=J[J[i>>2]+(d<<2)>>2];if(!l){break j}if(c>>>0<2){break k}f=L[g>>1];h=L[g+2>>1];while(1){l=J[l>>2];if(!l){break j}c=J[l+4>>2];if((c|0)!=(k|0)){if(c>>>0>=e>>>0){c=(c>>>0)%(e>>>0)|0}if((c|0)!=(d|0)){break j}}c=L[l+8>>1];l:{if((c|0)!=(f|0)){c=(c|0)==(f|0);break l}c=(h|0)==L[l+10>>1]}if(!c){continue}break}d=0;break i}d=k&e+131071;l=J[J[i>>2]+(d<<2)>>2];if(!l){break j}}f=e-1|0;j=L[g>>1];h=L[g+2>>1];while(1){l=J[l>>2];if(!l){break j}c=J[l+4>>2];if((c|0)!=(k|0)&(c&f)!=(d|0)){break j}c=L[l+8>>1];m:{if((c|0)!=(j|0)){c=(c|0)==(j|0);break m}c=(h|0)==L[l+10>>1]}if(!c){continue}break}d=0;break i}l=ra(16);J[l+8>>2]=J[g>>2];c=J[g+4>>2];J[l+4>>2]=k;J[l+12>>2]=c;J[l>>2]=0;p=Q(J[i+12>>2]+1>>>0);t=N[i+16>>2];n:{if(p>Q(t*Q(e>>>0))?0:e){break n}d=2;c=(e-1&e)!=0|e>>>0<3|e<<1;p=Q(W(Q(p/t)));o:{if(p=Q(0)){h=~~p>>>0;break o}h=0}c=c>>>0>h>>>0?c:h;p:{if((c|0)==1){break p}if(!(c&c-1)){d=c;break p}d=Ka(c);e=J[i+4>>2]}q:{if(d>>>0<=e>>>0){if(d>>>0>=e>>>0){break q}h=e>>>0<3;p=Q(W(Q(Q(M[i+12>>2])/N[i+16>>2])));r:{if(p=Q(0)){c=~~p>>>0;break r}c=0}s:{t:{if(h){break t}if(Dl(e)>>>0>1){break t}c=c>>>0<2?c:1<<32-S(c-1|0);break s}c=Ka(c)}d=c>>>0>>0?d:c;if(e>>>0<=d>>>0){break q}}c=0;f=0;j=d;u:{v:{w:{x:{if(d){if(j>>>0>=1073741824){break x}d=ra(j<<2);e=J[i>>2];J[i>>2]=d;if(e){qa(e)}J[i+4>>2]=j;if(j>>>0>=4){d=j&-4;e=0;while(1){h=c<<2;J[h+J[i>>2]>>2]=0;J[J[i>>2]+(h|4)>>2]=0;J[J[i>>2]+(h|8)>>2]=0;J[J[i>>2]+(h|12)>>2]=0;c=c+4|0;e=e+4|0;if((d|0)!=(e|0)){continue}break}}d=j&3;if(d){while(1){J[J[i>>2]+(c<<2)>>2]=0;c=c+1|0;f=f+1|0;if((d|0)!=(f|0)){continue}break}}e=J[i+8>>2];if(!e){break u}d=i+8|0;h=J[e+4>>2];c=Dl(j);if(c>>>0<2){break w}h=h>>>0>=j>>>0?(h>>>0)%(j>>>0)|0:h;J[J[i>>2]+(h<<2)>>2]=d;d=J[e>>2];if(!d){break u}if(c>>>0<=1){break v}while(1){f=J[d+4>>2];if(j>>>0<=f>>>0){f=(f>>>0)%(j>>>0)|0}y:{if((f|0)==(h|0)){e=d;break y}c=d;r=f<<2;n=r+J[i>>2]|0;if(!J[n>>2]){J[n>>2]=e;e=d;h=f;break y}while(1){f=c;c=J[c>>2];if(c){m=L[d+8>>1];n=L[c+8>>1];z:{if((m|0)!=(n|0)){m=(m|0)==(n|0);break z}m=L[d+10>>1]==L[c+10>>1]}if(m){continue}}break}J[e>>2]=c;J[f>>2]=J[J[r+J[i>>2]>>2]>>2];J[J[r+J[i>>2]>>2]>>2]=d}d=J[e>>2];if(d){continue}break}break u}d=J[i>>2];J[i>>2]=0;if(d){qa(d)}J[i+4>>2]=0;break u}ya();B()}h=j-1&h;J[J[i>>2]+(h<<2)>>2]=d;d=J[e>>2];if(!d){break u}}m=j-1|0;while(1){f=m&J[d+4>>2];A:{if((f|0)==(h|0)){e=d;break A}c=d;r=f<<2;j=r+J[i>>2]|0;if(J[j>>2]){while(1){f=c;c=J[c>>2];if(c){n=L[d+8>>1];j=L[c+8>>1];B:{if((n|0)!=(j|0)){j=(j|0)==(n|0);break B}j=L[d+10>>1]==L[c+10>>1]}if(j){continue}}break}J[e>>2]=c;J[f>>2]=J[J[r+J[i>>2]>>2]>>2];J[J[r+J[i>>2]>>2]>>2]=d;break A}J[j>>2]=e;e=d;h=f}d=J[e>>2];if(d){continue}break}}}e=J[i+4>>2];d=e-1|0;if(!(d&e)){d=d&k;break n}if(e>>>0>k>>>0){d=k;break n}d=(k>>>0)%(e>>>0)|0}c=J[i>>2]+(d<<2)|0;d=J[c>>2];C:{D:{if(!d){d=i+8|0;J[l>>2]=J[d>>2];J[i+8>>2]=l;J[c>>2]=d;d=J[l>>2];if(!d){break C}d=J[d+4>>2];c=e-1|0;E:{if(!(c&e)){d=c&d;break E}if(d>>>0>>0){break E}d=(d>>>0)%(e>>>0)|0}d=J[i>>2]+(d<<2)|0;break D}J[l>>2]=J[d>>2]}J[d>>2]=l}J[i+12>>2]=J[i+12>>2]+1;d=1}H[g+60|0]=d;J[g+56>>2]=l;d=J[a+40>>2];ta(J[J[a>>2]>>2]+P(d,q)|0,g+28|0,d);m=J[g+8>>2];J[m+(s<<2)>>2]=q;q=q+1|0}d=s+1|0;o=d?o:o+1|0;s=d;c=J[a+80>>2];if(!o&c>>>0>d>>>0){continue}break}if((c|0)!=(q|0)){F:{if(!K[a+84|0]){b=J[a+72>>2];f=J[a+68>>2];if((b|0)==(f|0)){break F}b=b-f>>2;c=b>>>0<=1?1:b;h=c&3;d=0;b=0;if(c-1>>>0>=3){o=c&-4;e=0;while(1){k=b<<2;c=k+f|0;J[c>>2]=J[(J[c>>2]<<2)+m>>2];c=f+(k|4)|0;J[c>>2]=J[(J[c>>2]<<2)+m>>2];c=f+(k|8)|0;J[c>>2]=J[(J[c>>2]<<2)+m>>2];c=f+(k|12)|0;J[c>>2]=J[(J[c>>2]<<2)+m>>2];b=b+4|0;e=e+4|0;if((o|0)!=(e|0)){continue}break}}if(!h){break F}while(1){c=f+(b<<2)|0;J[c>>2]=J[(J[c>>2]<<2)+m>>2];b=b+1|0;d=d+1|0;if((h|0)!=(d|0)){continue}break}break F}H[a+84|0]=0;e=a+68|0;b=J[a+68>>2];d=J[a+72>>2]-b>>2;G:{if(d>>>0>>0){La(e,c-d|0,2176);c=J[a+80>>2];break G}if(c>>>0>=d>>>0){break G}J[a+72>>2]=b+(c<<2)}if(!c){break F}f=J[e>>2];d=0;b=0;if(c>>>0>=4){h=c&-4;e=0;while(1){k=b<<2;J[k+f>>2]=J[k+m>>2];o=k|4;J[o+f>>2]=J[m+o>>2];o=k|8;J[o+f>>2]=J[m+o>>2];o=k|12;J[o+f>>2]=J[m+o>>2];b=b+4|0;e=e+4|0;if((h|0)!=(e|0)){continue}break}}e=c&3;if(!e){break F}while(1){c=b<<2;J[c+f>>2]=J[c+m>>2];b=b+1|0;d=d+1|0;if((e|0)!=(d|0)){continue}break}}J[a+80>>2]=q}qa(m)}b=J[g+40>>2];if(b){while(1){a=J[b>>2];qa(b);b=a;if(b){continue}break}}a=J[g+32>>2];J[g+32>>2]=0;if(a){qa(a)}ea=g- -64|0;return q}ua();B()}function If(a,b){var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=Q(0),q=0,r=0,s=0,t=Q(0);g=ea+-64|0;ea=g;J[g+40>>2]=0;J[g+44>>2]=0;J[g+32>>2]=0;J[g+36>>2]=0;J[g+48>>2]=1065353216;d=J[a+80>>2];J[g+16>>2]=0;J[g+8>>2]=0;J[g+12>>2]=0;a:{if(d){if(d>>>0>=1073741824){break a}c=d<<2;m=ra(c);J[g+8>>2]=m;d=c+m|0;J[g+16>>2]=d;sa(m,0,c);J[g+12>>2]=d;while(1){d=J[J[b>>2]>>2];e=J[b+48>>2]+Al(J[b+40>>2],J[b+44>>2],s,0)|0;d=d+e|0;d=K[d|0]|K[d+1|0]<<8;I[g+24>>1]=d;I[g+30>>1]=d;d=0;n=J[g+36>>2];b:{if(!n){break b}h=J[g+32>>2];k=K[g+25|0]^(K[g+24|0]^318)+239;c=k&n+1023;e=Dl(n);c:{if(e>>>0<=1){break c}c=k;if(c>>>0>>0){break c}c=(k>>>0)%(n>>>0)|0}f=h;h=c;c=J[f+(c<<2)>>2];if(!c){break b}c=J[c>>2];if(!c){break b}d:{if(e>>>0>=2){j=K[g+24|0];f=K[g+25|0];while(1){e=J[c+4>>2];e:{if((e|0)!=(k|0)){if(e>>>0>=n>>>0){e=(e>>>0)%(n>>>0)|0}if((e|0)!=(h|0)){break b}break e}e=K[c+8|0];f:{if((e|0)!=(j|0)){e=(e|0)==(j|0);break f}e=(f|0)==K[c+9|0]}if(e){break d}}c=J[c>>2];if(c){continue}break}break b}j=n-1|0;n=K[g+24|0];f=K[g+25|0];while(1){e=J[c+4>>2];g:{if((e|0)!=(k|0)){if((h|0)!=(e&j)){break b}break g}e=K[c+8|0];if((e|0)!=(n|0)){if((e|0)!=(n|0)){break g}break d}if((f|0)==K[c+9|0]){break d}}c=J[c>>2];if(c){continue}break}break b}d=c}h:{if(d){J[(s<<2)+m>>2]=J[d+12>>2];break h}J[g+4>>2]=q;I[g>>1]=L[g+24>>1];d=0;k=K[g+1|0]^(K[g|0]^318)+239;i:{j:{i=g+32|0;e=J[i+4>>2];if(!e){break j}c=Dl(e);k:{if(c>>>0>=2){d=k;if(e>>>0<=d>>>0){d=(k>>>0)%(e>>>0)|0}l=J[J[i>>2]+(d<<2)>>2];if(!l){break j}if(c>>>0<2){break k}f=K[g|0];h=K[g+1|0];while(1){l=J[l>>2];if(!l){break j}c=J[l+4>>2];if((c|0)!=(k|0)){if(c>>>0>=e>>>0){c=(c>>>0)%(e>>>0)|0}if((c|0)!=(d|0)){break j}}c=K[l+8|0];l:{if((c|0)!=(f|0)){c=(c|0)==(f|0);break l}c=(h|0)==K[l+9|0]}if(!c){continue}break}d=0;break i}d=k&e+1023;l=J[J[i>>2]+(d<<2)>>2];if(!l){break j}}f=e-1|0;j=K[g|0];h=K[g+1|0];while(1){l=J[l>>2];if(!l){break j}c=J[l+4>>2];if((c|0)!=(k|0)&(c&f)!=(d|0)){break j}c=K[l+8|0];m:{if((c|0)!=(j|0)){c=(c|0)==(j|0);break m}c=(h|0)==K[l+9|0]}if(!c){continue}break}d=0;break i}l=ra(16);I[l+8>>1]=L[g>>1];c=J[g+4>>2];J[l+4>>2]=k;J[l+12>>2]=c;J[l>>2]=0;p=Q(J[i+12>>2]+1>>>0);t=N[i+16>>2];n:{if(p>Q(t*Q(e>>>0))?0:e){break n}d=2;c=(e-1&e)!=0|e>>>0<3|e<<1;p=Q(W(Q(p/t)));o:{if(p=Q(0)){h=~~p>>>0;break o}h=0}c=c>>>0>h>>>0?c:h;p:{if((c|0)==1){break p}if(!(c&c-1)){d=c;break p}d=Ka(c);e=J[i+4>>2]}q:{if(d>>>0<=e>>>0){if(d>>>0>=e>>>0){break q}h=e>>>0<3;p=Q(W(Q(Q(M[i+12>>2])/N[i+16>>2])));r:{if(p=Q(0)){c=~~p>>>0;break r}c=0}s:{t:{if(h){break t}if(Dl(e)>>>0>1){break t}c=c>>>0<2?c:1<<32-S(c-1|0);break s}c=Ka(c)}d=c>>>0>>0?d:c;if(e>>>0<=d>>>0){break q}}c=0;f=0;j=d;u:{v:{w:{x:{if(d){if(j>>>0>=1073741824){break x}d=ra(j<<2);e=J[i>>2];J[i>>2]=d;if(e){qa(e)}J[i+4>>2]=j;if(j>>>0>=4){d=j&-4;e=0;while(1){h=c<<2;J[h+J[i>>2]>>2]=0;J[J[i>>2]+(h|4)>>2]=0;J[J[i>>2]+(h|8)>>2]=0;J[J[i>>2]+(h|12)>>2]=0;c=c+4|0;e=e+4|0;if((d|0)!=(e|0)){continue}break}}d=j&3;if(d){while(1){J[J[i>>2]+(c<<2)>>2]=0;c=c+1|0;f=f+1|0;if((d|0)!=(f|0)){continue}break}}e=J[i+8>>2];if(!e){break u}d=i+8|0;h=J[e+4>>2];c=Dl(j);if(c>>>0<2){break w}h=h>>>0>=j>>>0?(h>>>0)%(j>>>0)|0:h;J[J[i>>2]+(h<<2)>>2]=d;d=J[e>>2];if(!d){break u}if(c>>>0<=1){break v}while(1){f=J[d+4>>2];if(j>>>0<=f>>>0){f=(f>>>0)%(j>>>0)|0}y:{if((f|0)==(h|0)){e=d;break y}c=d;r=f<<2;n=r+J[i>>2]|0;if(!J[n>>2]){J[n>>2]=e;e=d;h=f;break y}while(1){f=c;c=J[c>>2];if(c){m=K[d+8|0];n=K[c+8|0];z:{if((m|0)!=(n|0)){m=(m|0)==(n|0);break z}m=K[d+9|0]==K[c+9|0]}if(m){continue}}break}J[e>>2]=c;J[f>>2]=J[J[r+J[i>>2]>>2]>>2];J[J[r+J[i>>2]>>2]>>2]=d}d=J[e>>2];if(d){continue}break}break u}d=J[i>>2];J[i>>2]=0;if(d){qa(d)}J[i+4>>2]=0;break u}ya();B()}h=j-1&h;J[J[i>>2]+(h<<2)>>2]=d;d=J[e>>2];if(!d){break u}}m=j-1|0;while(1){f=m&J[d+4>>2];A:{if((f|0)==(h|0)){e=d;break A}c=d;r=f<<2;j=r+J[i>>2]|0;if(J[j>>2]){while(1){f=c;c=J[c>>2];if(c){n=K[d+8|0];j=K[c+8|0];B:{if((n|0)!=(j|0)){j=(j|0)==(n|0);break B}j=K[d+9|0]==K[c+9|0]}if(j){continue}}break}J[e>>2]=c;J[f>>2]=J[J[r+J[i>>2]>>2]>>2];J[J[r+J[i>>2]>>2]>>2]=d;break A}J[j>>2]=e;e=d;h=f}d=J[e>>2];if(d){continue}break}}}e=J[i+4>>2];d=e-1|0;if(!(d&e)){d=d&k;break n}if(e>>>0>k>>>0){d=k;break n}d=(k>>>0)%(e>>>0)|0}c=J[i>>2]+(d<<2)|0;d=J[c>>2];C:{D:{if(!d){d=i+8|0;J[l>>2]=J[d>>2];J[i+8>>2]=l;J[c>>2]=d;d=J[l>>2];if(!d){break C}d=J[d+4>>2];c=e-1|0;E:{if(!(c&e)){d=c&d;break E}if(d>>>0>>0){break E}d=(d>>>0)%(e>>>0)|0}d=J[i>>2]+(d<<2)|0;break D}J[l>>2]=J[d>>2]}J[d>>2]=l}J[i+12>>2]=J[i+12>>2]+1;d=1}H[g+60|0]=d;J[g+56>>2]=l;d=J[a+40>>2];ta(J[J[a>>2]>>2]+P(d,q)|0,g+30|0,d);m=J[g+8>>2];J[m+(s<<2)>>2]=q;q=q+1|0}d=s+1|0;o=d?o:o+1|0;s=d;c=J[a+80>>2];if(!o&c>>>0>d>>>0){continue}break}if((c|0)!=(q|0)){F:{if(!K[a+84|0]){b=J[a+72>>2];f=J[a+68>>2];if((b|0)==(f|0)){break F}b=b-f>>2;c=b>>>0<=1?1:b;h=c&3;d=0;b=0;if(c-1>>>0>=3){o=c&-4;e=0;while(1){k=b<<2;c=k+f|0;J[c>>2]=J[(J[c>>2]<<2)+m>>2];c=f+(k|4)|0;J[c>>2]=J[(J[c>>2]<<2)+m>>2];c=f+(k|8)|0;J[c>>2]=J[(J[c>>2]<<2)+m>>2];c=f+(k|12)|0;J[c>>2]=J[(J[c>>2]<<2)+m>>2];b=b+4|0;e=e+4|0;if((o|0)!=(e|0)){continue}break}}if(!h){break F}while(1){c=f+(b<<2)|0;J[c>>2]=J[(J[c>>2]<<2)+m>>2];b=b+1|0;d=d+1|0;if((h|0)!=(d|0)){continue}break}break F}H[a+84|0]=0;e=a+68|0;b=J[a+68>>2];d=J[a+72>>2]-b>>2;G:{if(d>>>0>>0){La(e,c-d|0,2176);c=J[a+80>>2];break G}if(c>>>0>=d>>>0){break G}J[a+72>>2]=b+(c<<2)}if(!c){break F}f=J[e>>2];d=0;b=0;if(c>>>0>=4){h=c&-4;e=0;while(1){k=b<<2;J[k+f>>2]=J[k+m>>2];o=k|4;J[o+f>>2]=J[m+o>>2];o=k|8;J[o+f>>2]=J[m+o>>2];o=k|12;J[o+f>>2]=J[m+o>>2];b=b+4|0;e=e+4|0;if((h|0)!=(e|0)){continue}break}}e=c&3;if(!e){break F}while(1){c=b<<2;J[c+f>>2]=J[c+m>>2];b=b+1|0;d=d+1|0;if((e|0)!=(d|0)){continue}break}}J[a+80>>2]=q}qa(m)}b=J[g+40>>2];if(b){while(1){a=J[b>>2];qa(b);b=a;if(b){continue}break}}a=J[g+32>>2];J[g+32>>2]=0;if(a){qa(a)}ea=g- -64|0;return q}ua();B()}function Me(a,b,c,d,e,f){a=a|0;b=+b;c=c|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,w=0,x=0,y=0,z=0;l=ea-560|0;ea=l;J[l+44>>2]=0;A(+b);g=v(1)|0;v(0)|0;a:{if((g|0)<0){s=1;w=1173;b=-b;A(+b);g=v(1)|0;v(0)|0;break a}if(e&2048){s=1;w=1176;break a}s=e&1;w=s?1179:1174;z=!s}b:{if((g&2146435072)==2146435072){d=s+3|0;Ta(a,32,c,d,e&-65537);Ra(a,w,s);f=f&32;Ra(a,b!=b?f?1434:1643:f?1506:1647,3);Ta(a,32,c,d,e^8192);i=(c|0)<(d|0)?d:c;break b}u=l+16|0;c:{d:{e:{b=Qe(b,l+44|0);b=b+b;if(b!=0){g=J[l+44>>2];J[l+44>>2]=g-1;r=f|32;if((r|0)!=97){break e}break c}r=f|32;if((r|0)==97){break c}k=J[l+44>>2];m=(d|0)<0?6:d;break d}k=g-29|0;J[l+44>>2]=k;b=b*268435456;m=(d|0)<0?6:d}p=(l+48|0)+((k|0)>=0?288:0)|0;h=p;while(1){if(b<4294967296&b>=0){d=~~b>>>0}else{d=0}J[h>>2]=d;h=h+4|0;b=(b-+(d>>>0))*1e9;if(b!=0){continue}break}f:{if((k|0)<=0){d=k;g=h;j=p;break f}j=p;d=k;while(1){d=(d|0)>=29?29:d;g=h-4|0;g:{if(j>>>0>g>>>0){break g}i=0;while(1){o=J[g>>2];n=d&31;x=i;if((d&63)>>>0>=32){i=o<>>32-n;o=o<>>0>>0?i+1|0:i;i=Cl(n,i,1e9,0);o=Al(i,fa,1e9,0);J[g>>2]=n-o;g=g-4|0;if(j>>>0<=g>>>0){continue}break}if(!i){break g}j=j-4|0;J[j>>2]=i}while(1){g=h;if(j>>>0>>0){h=g-4|0;if(!J[h>>2]){continue}}break}d=J[l+44>>2]-d|0;J[l+44>>2]=d;h=g;if((d|0)>0){continue}break}}if((d|0)<0){t=((m+25>>>0)/9|0)+1|0;n=(r|0)==102;while(1){d=0-d|0;i=(d|0)>=9?9:d;h:{if(g>>>0<=j>>>0){h=J[j>>2];break h}o=1e9>>>i|0;y=-1<>2];J[h>>2]=x+(d>>>i|0);d=P(o,d&y);h=h+4|0;if(h>>>0>>0){continue}break}h=J[j>>2];if(!d){break h}J[g>>2]=d;g=g+4|0}d=i+J[l+44>>2]|0;J[l+44>>2]=d;j=(!h<<2)+j|0;h=n?p:j;g=g-h>>2>(t|0)?h+(t<<2)|0:g;if((d|0)<0){continue}break}}d=0;i:{if(g>>>0<=j>>>0){break i}d=P(p-j>>2,9);h=10;i=J[j>>2];if(i>>>0<10){break i}while(1){d=d+1|0;h=P(h,10);if(i>>>0>=h>>>0){continue}break}}h=(m-((r|0)!=102?d:0)|0)-((r|0)==103&(m|0)!=0)|0;if((h|0)<(P(g-p>>2,9)-9|0)){i=h+9216|0;n=(i|0)/9|0;k=((((k|0)<0?4:292)+l|0)+(n<<2)|0)-4048|0;h=10;i=i-P(n,9)|0;if((i|0)<=7){while(1){h=P(h,10);i=i+1|0;if((i|0)!=8){continue}break}}n=J[k>>2];t=(n>>>0)/(h>>>0)|0;i=n-P(h,t)|0;o=k+4|0;j:{if(!i&(o|0)==(g|0)){break j}k:{if(!(t&1)){b=9007199254740992;if(!(H[k-4|0]&1)|((h|0)!=1e9|j>>>0>=k>>>0)){break k}}b=9007199254740994}q=(g|0)==(o|0)?1:1.5;o=h>>>1|0;q=i>>>0>>0?.5:(o|0)==(i|0)?q:1.5;if(!(K[w|0]!=45|z)){q=-q;b=-b}i=n-i|0;J[k>>2]=i;if(b+q==b){break j}d=h+i|0;J[k>>2]=d;if(d>>>0>=1e9){while(1){J[k>>2]=0;k=k-4|0;if(k>>>0>>0){j=j-4|0;J[j>>2]=0}d=J[k>>2]+1|0;J[k>>2]=d;if(d>>>0>999999999){continue}break}}d=P(p-j>>2,9);h=10;i=J[j>>2];if(i>>>0<10){break j}while(1){d=d+1|0;h=P(h,10);if(i>>>0>=h>>>0){continue}break}}h=k+4|0;g=g>>>0>h>>>0?h:g}while(1){h=g;i=g>>>0<=j>>>0;if(!i){g=h-4|0;if(!J[g>>2]){continue}}break}l:{if((r|0)!=103){k=e&8;break l}g=m?m:1;k=(g|0)>(d|0)&(d|0)>-5;m=(k?d^-1:-1)+g|0;f=(k?-1:-2)+f|0;k=e&8;if(k){break l}g=-9;m:{if(i){break m}n=J[h-4>>2];if(!n){break m}i=10;g=0;if((n>>>0)%10|0){break m}while(1){k=g;g=g+1|0;i=P(i,10);if(!((n>>>0)%(i>>>0)|0)){continue}break}g=k^-1}i=P(h-p>>2,9);if((f&-33)==70){k=0;g=(g+i|0)-9|0;g=(g|0)>0?g:0;m=(g|0)>(m|0)?m:g;break l}k=0;g=((d+i|0)+g|0)-9|0;g=(g|0)>0?g:0;m=(g|0)>(m|0)?m:g}i=-1;r=k|m;if(((r?2147483645:2147483646)|0)<(m|0)){break b}n=(((r|0)!=0)+m|0)+1|0;o=f&-33;n:{if((o|0)==70){if((n^2147483647)<(d|0)){break b}g=(d|0)>0?d:0;break n}g=d>>31;g=Nb((g^d)-g|0,0,u);if((u-g|0)<=1){while(1){g=g-1|0;H[g|0]=48;if((u-g|0)<2){continue}break}}t=g-2|0;H[t|0]=f;H[g-1|0]=(d|0)<0?45:43;g=u-t|0;if((g|0)>(n^2147483647)){break b}}d=g+n|0;if((d|0)>(s^2147483647)){break b}f=d+s|0;Ta(a,32,c,f,e);Ra(a,w,s);Ta(a,48,c,f,e^65536);o:{p:{q:{if((o|0)==70){g=l+16|0;d=g|8;k=g|9;i=j>>>0>p>>>0?p:j;j=i;while(1){g=Nb(J[j>>2],0,k);r:{if((i|0)!=(j|0)){if(l+16>>>0>=g>>>0){break r}while(1){g=g-1|0;H[g|0]=48;if(l+16>>>0>>0){continue}break}break r}if((g|0)!=(k|0)){break r}H[l+24|0]=48;g=d}Ra(a,g,k-g|0);j=j+4|0;if(p>>>0>=j>>>0){continue}break}if(r){Ra(a,1981,1)}if((m|0)<=0|h>>>0<=j>>>0){break q}while(1){g=Nb(J[j>>2],0,k);if(g>>>0>l+16>>>0){while(1){g=g-1|0;H[g|0]=48;if(l+16>>>0>>0){continue}break}}Ra(a,g,(m|0)>=9?9:m);g=m-9|0;j=j+4|0;if(h>>>0<=j>>>0){break p}d=(m|0)>9;m=g;if(d){continue}break}break p}s:{if((m|0)<0){break s}i=h>>>0>j>>>0?h:j+4|0;g=l+16|0;d=g|8;p=g|9;h=j;while(1){g=Nb(J[h>>2],0,p);if((p|0)==(g|0)){H[l+24|0]=48;g=d}t:{if((h|0)!=(j|0)){if(l+16>>>0>=g>>>0){break t}while(1){g=g-1|0;H[g|0]=48;if(l+16>>>0>>0){continue}break}break t}Ra(a,g,1);g=g+1|0;if(!(k|m)){break t}Ra(a,1981,1)}x=g;g=p-g|0;Ra(a,x,(g|0)>(m|0)?m:g);m=m-g|0;h=h+4|0;if(i>>>0<=h>>>0){break s}if((m|0)>=0){continue}break}}Ta(a,48,m+18|0,18,0);Ra(a,t,u-t|0);break o}g=m}Ta(a,48,g+9|0,9,0)}Ta(a,32,c,f,e^8192);i=(c|0)<(f|0)?f:c;break b}m=(f<<26>>31&9)+w|0;u:{if(d>>>0>11){break u}g=12-d|0;q=16;while(1){q=q*16;g=g-1|0;if(g){continue}break}if(K[m|0]==45){b=-(q+(-b-q));break u}b=b+q-q}h=J[l+44>>2];g=h>>31;g=Nb((g^h)-g|0,0,u);if((u|0)==(g|0)){H[l+15|0]=48;g=l+15|0}k=s|2;j=f&32;h=J[l+44>>2];p=g-2|0;H[p|0]=f+15;H[g-1|0]=(h|0)<0?45:43;i=e&8;h=l+16|0;while(1){f=h;if(R(b)<2147483648){g=~~b}else{g=-2147483648}H[h|0]=j|K[g+17776|0];b=(b-+(g|0))*16;h=f+1|0;if(!(!((d|0)>0|i)&b==0|(h-(l+16|0)|0)!=1)){H[f+1|0]=46;h=f+2|0}if(b!=0){continue}break}i=-1;n=u-p|0;f=n+k|0;if((2147483645-f|0)<(d|0)){break b}v:{w:{if(!d){break w}j=h-(l+16|0)|0;if((j-2|0)>=(d|0)){break w}g=d+2|0;break v}j=h-(l+16|0)|0;g=j}d=g+f|0;Ta(a,32,c,d,e);Ra(a,m,k);Ta(a,48,c,d,e^65536);Ra(a,l+16|0,j);Ta(a,48,g-j|0,0,0);Ra(a,p,n);Ta(a,32,c,d,e^8192);i=(c|0)<(d|0)?d:c}ea=l+560|0;return i|0}function se(a,b,c,d,e){var f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,K=0,L=0,N=0,O=0;o=ea-32|0;ea=o;J[a>>2]=J[d>>2];d=J[c>>2]-J[b>>2]|0;J[a+4>>2]=d;k=J[e+20>>2];if(!J[e+16>>2]&(k|0)<=0|(k|0)<0){d=a+4|0;wa(e,J[e+4>>2],a,d);k=J[e+20>>2];if(!J[e+16>>2]&(k|0)<=0|(k|0)<0){wa(e,J[e+4>>2],d,a+8|0)}d=J[d>>2]}if(d){C=a+12|0;le(C);D=a+1068|0;d=D;J[d+12>>2]=0;J[d+16>>2]=0;J[d+4>>2]=J[d>>2];E=a+1088|0;d=E;J[d+12>>2]=0;J[d+16>>2]=0;J[d+4>>2]=J[d>>2];F=a+1108|0;d=F;J[d+12>>2]=0;J[d+16>>2]=0;J[d+4>>2]=J[d>>2];J[o+24>>2]=J[b+8>>2];d=J[b+4>>2];J[o+16>>2]=J[b>>2];J[o+20>>2]=d;J[o+8>>2]=J[c+8>>2];b=J[c+4>>2];J[o>>2]=J[c>>2];J[o+4>>2]=b;b=0;f=ea-32|0;ea=f;d=a;h=J[a+8>>2];J[f+16>>2]=0;J[f+8>>2]=0;J[f+12>>2]=0;a:{b:{if(h){if(h>>>0>=1073741824){break b}a=h<<2;b=ra(a);J[f+8>>2]=b;g=a+b|0;J[f+16>>2]=g;sa(b,0,a);J[f+12>>2]=g}a=J[d+1164>>2];c=J[a>>2];if(c){J[a+4>>2]=c;qa(c);h=J[d+8>>2];g=J[f+12>>2];b=J[f+8>>2]}J[a+4>>2]=g;J[a>>2]=b;J[a+8>>2]=J[f+16>>2];b=0;J[f+16>>2]=0;J[f+8>>2]=0;J[f+12>>2]=0;a=0;c:{if(h){if(h>>>0>=1073741824){break c}c=h<<2;a=ra(c);J[f+8>>2]=a;b=a+c|0;J[f+16>>2]=b;sa(a,0,c);J[f+12>>2]=b}c=J[d+1176>>2];k=J[c>>2];if(k){J[c+4>>2]=k;qa(k);b=J[f+12>>2];a=J[f+8>>2]}J[c+4>>2]=b;J[c>>2]=a;J[c+8>>2]=J[f+16>>2];t=J[o+20>>2];q=J[o+24>>2];w=J[o+4>>2];x=J[o+8>>2];b=J[o>>2];c=J[o+16>>2];J[f+24>>2]=0;J[f+28>>2]=0;J[f+16>>2]=0;J[f+20>>2]=0;J[f+8>>2]=0;J[f+12>>2]=0;gb(f+8|0);a=J[f+24>>2]+J[f+28>>2]|0;k=(a>>>0)/113|0;a=J[J[f+12>>2]+(k<<2)>>2]+P(a-P(k,113)|0,36)|0;J[a+32>>2]=0;J[a+28>>2]=b-c;J[a+24>>2]=0;J[a+16>>2]=w;J[a+20>>2]=x;J[a+12>>2]=b;J[a+4>>2]=t;J[a+8>>2]=q;J[a>>2]=c;h=J[f+28>>2]+1|0;J[f+28>>2]=h;if(h){K=q&-4;G=q&3;L=d+1068|0;H=d+12|0;N=d+1108|0;O=q>>>0<4;while(1){b=J[f+12>>2];m=J[f+24>>2];j=h-1|0;a=m+j|0;c=(a>>>0)/113|0;a=J[b+(c<<2)>>2]+P(a-P(c,113)|0,36)|0;z=J[a+32>>2];g=J[a+24>>2];k=J[a+12>>2];c=J[a>>2];J[f+28>>2]=j;a=J[f+16>>2];if((((a|0)!=(b|0)?P(a-b>>2,113)-1|0:0)-(h+m|0)|0)+1>>>0>=226){qa(J[a-4>>2]);J[f+16>>2]=J[f+16>>2]-4}b=J[d>>2];h=(g|0)!=(J[d+8>>2]-1|0)?g+1|0:0;m=h<<2;y=P(z,12);j=y+J[d+1176>>2]|0;g=J[m+J[j>>2]>>2];d:{e:{if((b|0)==(g|0)){break e}f:{g:{s=k-c|0;if(s>>>0<=2){g=J[d+1152>>2];J[g>>2]=h;b=1;a=J[d+8>>2];if(a>>>0>1){break g}break f}j=J[d+1164>>2];a=j+y|0;i=j;j=y+12|0;cb(i+j|0,J[a>>2],J[a+4>>2]);a=m+J[j+J[d+1164>>2]>>2]|0;j=J[a>>2]+(1<>2]=j;a=c;h:{if((k|0)==(a|0)){break h}I=J[t+24>>2];a=k;b=c;if(!q){if(j>>>0>M[m+I>>2]){break h}while(1){a=a-1|0;if((b|0)==(a|0)){a=b;break h}if(j>>>0<=M[(m+J[w+24>>2]|0)+(P(a,x)<<2)>>2]){continue}b=b+1|0;if((b|0)!=(a|0)){continue}break}break h}while(1){n=(P(b,q)<<2)+I|0;if(j>>>0>M[n+m>>2]){b=b+1|0;if((b|0)!=(a|0)){continue}break h}while(1){a=a-1|0;if((b|0)==(a|0)){a=b;break h}p=J[w+24>>2]+(P(a,x)<<2)|0;if(j>>>0<=M[p+m>>2]){continue}break}A=0;g=0;u=0;if(!O){while(1){l=g<<2;i=l+n|0;r=J[i>>2];v=i;i=l+p|0;J[v>>2]=J[i>>2];J[i>>2]=r;i=l|4;r=i+n|0;v=J[r>>2];i=i+p|0;J[r>>2]=J[i>>2];J[i>>2]=v;i=l|8;r=i+n|0;v=J[r>>2];i=i+p|0;J[r>>2]=J[i>>2];J[i>>2]=v;l=l|12;i=l+n|0;r=J[i>>2];l=l+p|0;J[i>>2]=J[l>>2];J[l>>2]=r;g=g+4|0;u=u+4|0;if((K|0)!=(u|0)){continue}break}}if(G){while(1){l=g<<2;u=l+n|0;i=J[u>>2];l=l+p|0;J[u>>2]=J[l>>2];J[l>>2]=i;g=g+1|0;A=A+1|0;if((A|0)!=(G|0)){continue}break}}b=b+1|0;if((b|0)!=(a|0)){continue}break}}j=a-c|0;n=k-a|0;if((j|0)!=(n|0)){uc(N,j>>>0>>0)}l=z+1|0;b=S(s);p=b^31;g=s>>>1|0;i:{if(j>>>0>>0){if(!p){break i}s=g-j|0;b=1<<30-b;g=0;while(1){Ga((g<<5)+H|0,(b&s)!=0);b=b>>>1|0;g=g+1|0;if((p|0)!=(g|0)){continue}break}break i}if(!p){break i}s=g-n|0;b=1<<30-b;g=0;while(1){Ga((g<<5)+H|0,(b&s)!=0);b=b>>>1|0;g=g+1|0;if((p|0)!=(g|0)){continue}break}}i=m;b=J[d+1176>>2];g=b+y|0;m=J[g>>2];p=i+m|0;J[p>>2]=J[p>>2]+1;cb(b+P(l,12)|0,m,J[g+4>>2]);if((a|0)!=(c|0)){g=J[f+28>>2]+J[f+24>>2]|0;m=J[f+16>>2];b=J[f+12>>2];if((g|0)==(((b|0)!=(m|0)?P(m-b>>2,113)-1|0:0)|0)){gb(f+8|0);g=J[f+24>>2]+J[f+28>>2]|0;i=J[f+12>>2]}else{i=b}b=(g>>>0)/113|0;b=J[i+(b<<2)>>2]+P(g-P(b,113)|0,36)|0;J[b+32>>2]=z;J[b+28>>2]=j;J[b+24>>2]=h;J[b+16>>2]=t;J[b+12>>2]=a;J[b+4>>2]=t;J[b+8>>2]=q;J[b>>2]=c;J[b+20>>2]=q;J[f+28>>2]=J[f+28>>2]+1}if((a|0)==(k|0)){break e}g=J[f+28>>2]+J[f+24>>2]|0;c=J[f+16>>2];b=J[f+12>>2];if((g|0)==(((b|0)!=(c|0)?P(c-b>>2,113)-1|0:0)|0)){gb(f+8|0);g=J[f+24>>2]+J[f+28>>2]|0;c=J[f+12>>2]}else{c=b}b=(g>>>0)/113|0;b=J[c+(b<<2)>>2]+P(g-P(b,113)|0,36)|0;J[b+32>>2]=l;J[b+28>>2]=n;J[b+24>>2]=h;J[b+16>>2]=w;J[b+20>>2]=x;J[b+12>>2]=k;J[b+4>>2]=t;J[b>>2]=a;J[b+8>>2]=q;h=J[f+28>>2]+1|0;J[f+28>>2]=h;break d}while(1){h=(a-1|0)!=(h|0)?h+1|0:0;J[g+(b<<2)>>2]=h;a=J[d+8>>2];b=b+1|0;if(a>>>0>b>>>0){continue}break}}g=0;b=a;if((c|0)==(k|0)){break e}while(1){j:{if(!b){b=0;break j}k=J[t+24>>2]+(P(J[t+4>>2],c+g|0)<<2)|0;h=0;while(1){b=J[d>>2];m=J[J[d+1152>>2]+(h<<2)>>2]<<2;n=J[m+J[j>>2]>>2];if((b|0)!=(n|0)){Kb(L,b-n|0,J[k+m>>2]);a=J[d+8>>2]}b=a;h=h+1|0;if(h>>>0>>0){continue}break}}g=g+1|0;if((s|0)!=(g|0)){continue}break}}h=J[f+28>>2]}if(h){continue}break}}J[f+28>>2]=0;c=J[f+16>>2];h=J[f+12>>2];a=c-h|0;if(a>>>0>=9){while(1){qa(J[h>>2]);h=J[f+12>>2]+4|0;J[f+12>>2]=h;c=J[f+16>>2];a=c-h|0;if(a>>>0>8){continue}break}}b=56;k:{switch((a>>>2|0)-1|0){case 1:b=113;case 0:J[f+24>>2]=b;break;default:break k}}l:{if((c|0)==(h|0)){break l}while(1){qa(J[h>>2]);h=h+4|0;if((h|0)!=(c|0)){continue}break}a=J[f+16>>2];b=J[f+12>>2];if((a|0)==(b|0)){break l}J[f+16>>2]=a+((b-a|0)+3&-4)}a=J[f+8>>2];if(a){qa(a)}ea=f+32|0;break a}ua();B()}ua();B()}ke(C,e);fb(D,e);fb(E,e);fb(F,e)}ea=o+32|0;return 1}function Pe(a,b,c,d){var e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0;l=1510;g=ea-80|0;ea=g;J[g+76>>2]=1510;x=g+55|0;r=g+56|0;a:{b:{c:{d:{e:while(1){i=l;if((n^2147483647)<(e|0)){break d}n=e+n|0;f:{g:{h:{e=i;f=K[e|0];if(f){while(1){i:{f=f&255;j:{if(!f){l=e;break j}if((f|0)!=37){break i}f=e;while(1){if(K[f+1|0]!=37){l=f;break j}e=e+1|0;h=K[f+2|0];l=f+2|0;f=l;if((h|0)==37){continue}break}}e=e-i|0;w=n^2147483647;if((e|0)>(w|0)){break d}if(a){Ra(a,i,e)}if(e){continue e}J[g+76>>2]=l;e=l+1|0;o=-1;if(!(K[l+2|0]!=36|H[l+1|0]-48>>>0>=10)){o=H[l+1|0]-48|0;s=1;e=l+3|0}J[g+76>>2]=e;k=0;f=H[e|0];l=f-32|0;k:{if(l>>>0>31){h=e;break k}h=e;l=1<>2]=h;k=k|l;f=H[e+1|0];l=f-32|0;if(l>>>0>=32){break k}e=h;l=1<>>0>=10)){J[((H[h+1|0]<<2)+d|0)-192>>2]=10;f=h+3|0;s=1;e=J[((H[h+1|0]<<3)+c|0)-384>>2];break m}if(s){break h}f=h+1|0;if(!a){J[g+76>>2]=f;s=0;p=0;break l}e=J[b>>2];J[b>>2]=e+4;s=0;e=J[e>>2]}J[g+76>>2]=f;p=e;if((e|0)>=0){break l}p=0-p|0;k=k|8192;break l}p=Oe(g+76|0);if((p|0)<0){break d}f=J[g+76>>2]}e=0;j=-1;n:{if(K[f|0]!=46){l=f;u=0;break n}if(K[f+1|0]==42){o:{if(!(K[f+3|0]!=36|H[f+2|0]-48>>>0>=10)){J[((H[f+2|0]<<2)+d|0)-192>>2]=10;l=f+4|0;j=J[((H[f+2|0]<<3)+c|0)-384>>2];break o}if(s){break h}l=f+2|0;j=0;if(!a){break o}f=J[b>>2];J[b>>2]=f+4;j=J[f>>2]}J[g+76>>2]=l;u=(j^-1)>>>31|0;break n}J[g+76>>2]=f+1;j=Oe(g+76|0);l=J[g+76>>2];u=1}while(1){m=e;h=28;q=l;e=H[l|0];if(e-123>>>0<4294967238){break c}l=q+1|0;e=K[(e+P(m,58)|0)+17247|0];if(e-1>>>0<8){continue}break}J[g+76>>2]=l;p:{q:{if((e|0)!=27){if(!e){break c}if((o|0)>=0){J[(o<<2)+d>>2]=e;f=(o<<3)+c|0;e=J[f+4>>2];J[g+64>>2]=J[f>>2];J[g+68>>2]=e;break q}if(!a){break f}Ne(g- -64|0,e,b);break p}if((o|0)>=0){break c}}e=0;if(!a){continue e}}f=k&-65537;k=k&8192?f:k;o=0;t=1163;h=r;r:{s:{t:{u:{v:{w:{x:{y:{z:{A:{B:{C:{D:{E:{F:{G:{e=H[q|0];e=m?(e&15)==3?e&-33:e:e;switch(e-88|0){case 11:break r;case 9:case 13:case 14:case 15:break s;case 27:break x;case 12:case 17:break A;case 23:break B;case 0:case 32:break C;case 24:break D;case 22:break E;case 29:break F;case 1:case 2:case 3:case 4:case 5:case 6:case 7:case 8:case 10:case 16:case 18:case 19:case 20:case 21:case 25:case 26:case 28:case 30:case 31:break g;default:break G}}H:{switch(e-65|0){case 0:case 4:case 5:case 6:break s;case 2:break v;case 1:case 3:break g;default:break H}}if((e|0)==83){break w}break g}m=J[g+64>>2];f=J[g+68>>2];t=1163;break z}e=0;I:{switch(m&255){case 0:J[J[g+64>>2]>>2]=n;continue e;case 1:J[J[g+64>>2]>>2]=n;continue e;case 2:i=J[g+64>>2];J[i>>2]=n;J[i+4>>2]=n>>31;continue e;case 3:I[J[g+64>>2]>>1]=n;continue e;case 4:H[J[g+64>>2]]=n;continue e;case 6:J[J[g+64>>2]>>2]=n;continue e;case 7:break I;default:continue e}}i=J[g+64>>2];J[i>>2]=n;J[i+4>>2]=n>>31;continue e}j=j>>>0<=8?8:j;k=k|8;e=120}i=r;y=e&32;m=J[g+64>>2];f=J[g+68>>2];if(m|f){while(1){i=i-1|0;H[i|0]=y|K[(m&15)+17776|0];v=!f&m>>>0>15|(f|0)!=0;q=f;f=f>>>4|0;m=(q&15)<<28|m>>>4;if(v){continue}break}}if(!(J[g+64>>2]|J[g+68>>2])|!(k&8)){break y}t=(e>>>4|0)+1163|0;o=2;break y}e=r;i=J[g+68>>2];f=i;m=J[g+64>>2];if(f|m){while(1){e=e-1|0;H[e|0]=m&7|48;v=!f&m>>>0>7|(f|0)!=0;i=f;f=f>>>3|0;m=(i&7)<<29|m>>>3;if(v){continue}break}}i=e;if(!(k&8)){break y}e=r-i|0;j=(e|0)<(j|0)?j:e+1|0;break y}e=J[g+68>>2];f=e;m=J[g+64>>2];if((e|0)<0){e=m;f=0-(f+((e|0)!=0)|0)|0;m=0-e|0;J[g+64>>2]=m;J[g+68>>2]=f;o=1;t=1163;break z}if(k&2048){o=1;t=1164;break z}o=k&1;t=o?1165:1163}i=Nb(m,f,r)}if((j|0)<0?u:0){break d}k=u?k&-65537:k;e=J[g+64>>2];f=J[g+68>>2];if(!(j|(e|f)!=0)){i=r;h=i;j=0;break g}e=!(e|f)+(r-i|0)|0;j=(e|0)<(j|0)?j:e;break g}q=j>>>0>=2147483647?2147483647:j;h=q;k=(h|0)!=0;e=J[g+64>>2];i=e?e:1983;e=i;J:{K:{L:{M:{if(!(e&3)|!h){break M}while(1){if(!K[e|0]){break L}h=h-1|0;k=(h|0)!=0;e=e+1|0;if(!(e&3)){break M}if(h){continue}break}}if(!k){break K}if(!(!K[e|0]|h>>>0<4)){while(1){k=J[e>>2];if((k^-1)&k-16843009&-2139062144){break L}e=e+4|0;h=h-4|0;if(h>>>0>3){continue}break}}if(!h){break K}}while(1){if(!K[e|0]){break J}e=e+1|0;h=h-1|0;if(h){continue}break}}e=0}e=e?e-i|0:q;h=e+i|0;if((j|0)>=0){k=f;j=e;break g}k=f;j=e;if(K[h|0]){break d}break g}if(j){f=J[g+64>>2];break u}e=0;Ta(a,32,p,0,k);break t}J[g+12>>2]=0;J[g+8>>2]=J[g+64>>2];f=g+8|0;J[g+64>>2]=f;j=-1}e=0;N:{while(1){i=J[f>>2];if(!i){break N}h=Ke(g+4|0,i);i=(h|0)<0;if(!(i|h>>>0>j-e>>>0)){f=f+4|0;e=e+h|0;if(j>>>0>e>>>0){continue}break N}break}if(i){break b}}h=61;if((e|0)<0){break c}Ta(a,32,p,e,k);if(!e){e=0;break t}h=0;f=J[g+64>>2];while(1){i=J[f>>2];if(!i){break t}i=Ke(g+4|0,i);h=i+h|0;if(h>>>0>e>>>0){break t}Ra(a,g+4|0,i);f=f+4|0;if(e>>>0>h>>>0){continue}break}}Ta(a,32,p,e,k^8192);e=(e|0)<(p|0)?p:e;continue e}if((j|0)<0?u:0){break d}h=61;e=Me(a,O[g+64>>3],p,j,k,e);if((e|0)>=0){continue e}break c}H[g+55|0]=J[g+64>>2];j=1;i=x;k=f;break g}f=K[e+1|0];e=e+1|0;continue}}if(a){break a}if(!s){break f}e=1;while(1){a=J[(e<<2)+d>>2];if(a){Ne((e<<3)+c|0,a,b);n=1;e=e+1|0;if((e|0)!=10){continue}break a}break}n=1;if(e>>>0>=10){break a}while(1){if(J[(e<<2)+d>>2]){break h}e=e+1|0;if((e|0)!=10){continue}break}break a}h=28;break c}q=h-i|0;f=(j|0)>(q|0)?j:q;if((f|0)>(o^2147483647)){break d}h=61;j=f+o|0;e=(j|0)<(p|0)?p:j;if((w|0)<(e|0)){break c}Ta(a,32,e,j,k);Ra(a,t,o);Ta(a,48,e,j,k^65536);Ta(a,48,f,q,0);Ra(a,i,q);Ta(a,32,e,j,k^8192);continue}break}n=0;break a}h=61}J[4804]=h}n=-1}ea=g+80|0;return n}function Mf(a,b,c,d){var e=0,f=0,g=0,h=0,i=0,j=0,k=0;g=ea-16|0;ea=g;J[b+44>>2]=d;J[b+48>>2]=c;d=J[b+12>>2];f=J[b+8>>2];if((d|0)!=(f|0)){while(1){d=d-4|0;e=J[d>>2];J[d>>2]=0;if(e){ga[J[J[e>>2]+4>>2]](e)}if((d|0)!=(f|0)){continue}break}}J[b+12>>2]=f;J[b+24>>2]=J[b+20>>2];J[b+36>>2]=J[b+32>>2];a:{if(!J[b+4>>2]){b=ra(32);H[b+23|0]=0;c=K[1670]|K[1671]<<8|(K[1672]<<16|K[1673]<<24);d=K[1666]|K[1667]<<8|(K[1668]<<16|K[1669]<<24);H[b+15|0]=d;H[b+16|0]=d>>>8;H[b+17|0]=d>>>16;H[b+18|0]=d>>>24;H[b+19|0]=c;H[b+20|0]=c>>>8;H[b+21|0]=c>>>16;H[b+22|0]=c>>>24;c=K[1663]|K[1664]<<8|(K[1665]<<16|K[1666]<<24);d=K[1659]|K[1660]<<8|(K[1661]<<16|K[1662]<<24);H[b+8|0]=d;H[b+9|0]=d>>>8;H[b+10|0]=d>>>16;H[b+11|0]=d>>>24;H[b+12|0]=c;H[b+13|0]=c>>>8;H[b+14|0]=c>>>16;H[b+15|0]=c>>>24;c=K[1655]|K[1656]<<8|(K[1657]<<16|K[1658]<<24);d=K[1651]|K[1652]<<8|(K[1653]<<16|K[1654]<<24);H[b|0]=d;H[b+1|0]=d>>>8;H[b+2|0]=d>>>16;H[b+3|0]=d>>>24;H[b+4|0]=c;H[b+5|0]=c>>>8;H[b+6|0]=c>>>16;H[b+7|0]=c>>>24;J[a>>2]=-1;Ja(a+4|0,b,23);qa(b);break a}d=ea-16|0;ea=d;e=J[b+44>>2];f=J[e+20>>2];if(!J[e+16>>2]&(f|0)<=0|(f|0)<0){wa(e,J[e+4>>2],1637,1642)}e=ga[J[J[b>>2]+8>>2]](b)|0;H[d+15|0]=e;H[d+14|0]=2;H[d+13|0]=e&255?2:3;e=J[b+44>>2];f=J[e+20>>2];b:{if(!!J[e+16>>2]&(f|0)>=0|(f|0)>0){break b}wa(e,J[e+4>>2],d+14|0,d+15|0);e=J[b+44>>2];f=J[e+20>>2];if(!!J[e+16>>2]&(f|0)>=0|(f|0)>0){break b}wa(e,J[e+4>>2],d+13|0,d+14|0);e=J[b+44>>2];f=J[e+20>>2];if(!!J[e+16>>2]&(f|0)>=0|(f|0)>0){break b}wa(e,J[e+4>>2],d+15|0,d+16|0);e=J[b+44>>2]}j=d,k=ga[J[J[b>>2]+12>>2]](b)|0,H[j+12|0]=k;f=J[e+20>>2];if(!J[e+16>>2]&(f|0)<=0|(f|0)<0){wa(e,J[e+4>>2],d+12|0,d+13|0)}I[d+10>>1]=(J[J[b+4>>2]+4>>2]!=0)<<15;e=J[b+44>>2];f=J[e+20>>2];if(!J[e+16>>2]&(f|0)<=0|(f|0)<0){wa(e,J[e+4>>2],d+10|0,d+12|0)}J[a>>2]=0;J[a+4>>2]=0;J[a+8>>2]=0;J[a+12>>2]=0;ea=d+16|0;if(J[a>>2]){break a}if(H[a+15|0]<0){qa(J[a+4>>2])}d=J[J[b+4>>2]+4>>2];c:{if(!d){J[a>>2]=0;J[a+4>>2]=0;J[a+8>>2]=0;J[a+12>>2]=0;break c}e=J[b+44>>2];if(d){Da(J[d+28>>2]-J[d+24>>2]>>2,e);f=J[d+24>>2];i=J[d+28>>2];if((f|0)!=(i|0)){while(1){h=J[f>>2];if(h){Da(J[h+24>>2],e);ld(g,e,h)}f=f+4|0;if((i|0)!=(f|0)){continue}break}}ld(g,e,d)}if(d){J[a>>2]=0;J[a+4>>2]=0;J[a+8>>2]=0;J[a+12>>2]=0;break c}d=ra(32);H[d+26|0]=0;e=K[1882]|K[1883]<<8;H[d+24|0]=e;H[d+25|0]=e>>>8;e=K[1878]|K[1879]<<8|(K[1880]<<16|K[1881]<<24);f=K[1874]|K[1875]<<8|(K[1876]<<16|K[1877]<<24);H[d+16|0]=f;H[d+17|0]=f>>>8;H[d+18|0]=f>>>16;H[d+19|0]=f>>>24;H[d+20|0]=e;H[d+21|0]=e>>>8;H[d+22|0]=e>>>16;H[d+23|0]=e>>>24;e=K[1870]|K[1871]<<8|(K[1872]<<16|K[1873]<<24);f=K[1866]|K[1867]<<8|(K[1868]<<16|K[1869]<<24);H[d+8|0]=f;H[d+9|0]=f>>>8;H[d+10|0]=f>>>16;H[d+11|0]=f>>>24;H[d+12|0]=e;H[d+13|0]=e>>>8;H[d+14|0]=e>>>16;H[d+15|0]=e>>>24;e=K[1862]|K[1863]<<8|(K[1864]<<16|K[1865]<<24);f=K[1858]|K[1859]<<8|(K[1860]<<16|K[1861]<<24);H[d|0]=f;H[d+1|0]=f>>>8;H[d+2|0]=f>>>16;H[d+3|0]=f>>>24;H[d+4|0]=e;H[d+5|0]=e>>>8;H[d+6|0]=e>>>16;H[d+7|0]=e>>>24;J[a>>2]=-1;Ja(a+4|0,d,26);qa(d);if(J[a>>2]){break a}}if(H[a+15|0]<0){qa(J[a+4>>2])}if(!(ga[J[J[b>>2]+16>>2]](b)|0)){b=ra(32);H[b+29|0]=0;c=K[1798]|K[1799]<<8|(K[1800]<<16|K[1801]<<24);d=K[1794]|K[1795]<<8|(K[1796]<<16|K[1797]<<24);H[b+21|0]=d;H[b+22|0]=d>>>8;H[b+23|0]=d>>>16;H[b+24|0]=d>>>24;H[b+25|0]=c;H[b+26|0]=c>>>8;H[b+27|0]=c>>>16;H[b+28|0]=c>>>24;c=K[1793]|K[1794]<<8|(K[1795]<<16|K[1796]<<24);d=K[1789]|K[1790]<<8|(K[1791]<<16|K[1792]<<24);H[b+16|0]=d;H[b+17|0]=d>>>8;H[b+18|0]=d>>>16;H[b+19|0]=d>>>24;H[b+20|0]=c;H[b+21|0]=c>>>8;H[b+22|0]=c>>>16;H[b+23|0]=c>>>24;c=K[1785]|K[1786]<<8|(K[1787]<<16|K[1788]<<24);d=K[1781]|K[1782]<<8|(K[1783]<<16|K[1784]<<24);H[b+8|0]=d;H[b+9|0]=d>>>8;H[b+10|0]=d>>>16;H[b+11|0]=d>>>24;H[b+12|0]=c;H[b+13|0]=c>>>8;H[b+14|0]=c>>>16;H[b+15|0]=c>>>24;c=K[1777]|K[1778]<<8|(K[1779]<<16|K[1780]<<24);d=K[1773]|K[1774]<<8|(K[1775]<<16|K[1776]<<24);H[b|0]=d;H[b+1|0]=d>>>8;H[b+2|0]=d>>>16;H[b+3|0]=d>>>24;H[b+4|0]=c;H[b+5|0]=c>>>8;H[b+6|0]=c>>>16;H[b+7|0]=c>>>24;J[a>>2]=-1;Ja(a+4|0,b,29);qa(b);break a}if(!(ga[J[J[b>>2]+20>>2]](b)|0)){b=ra(32);H[b+31|0]=0;c=K[1941]|K[1942]<<8|(K[1943]<<16|K[1944]<<24);d=K[1937]|K[1938]<<8|(K[1939]<<16|K[1940]<<24);H[b+23|0]=d;H[b+24|0]=d>>>8;H[b+25|0]=d>>>16;H[b+26|0]=d>>>24;H[b+27|0]=c;H[b+28|0]=c>>>8;H[b+29|0]=c>>>16;H[b+30|0]=c>>>24;c=K[1934]|K[1935]<<8|(K[1936]<<16|K[1937]<<24);d=K[1930]|K[1931]<<8|(K[1932]<<16|K[1933]<<24);H[b+16|0]=d;H[b+17|0]=d>>>8;H[b+18|0]=d>>>16;H[b+19|0]=d>>>24;H[b+20|0]=c;H[b+21|0]=c>>>8;H[b+22|0]=c>>>16;H[b+23|0]=c>>>24;c=K[1926]|K[1927]<<8|(K[1928]<<16|K[1929]<<24);d=K[1922]|K[1923]<<8|(K[1924]<<16|K[1925]<<24);H[b+8|0]=d;H[b+9|0]=d>>>8;H[b+10|0]=d>>>16;H[b+11|0]=d>>>24;H[b+12|0]=c;H[b+13|0]=c>>>8;H[b+14|0]=c>>>16;H[b+15|0]=c>>>24;c=K[1918]|K[1919]<<8|(K[1920]<<16|K[1921]<<24);d=K[1914]|K[1915]<<8|(K[1916]<<16|K[1917]<<24);H[b|0]=d;H[b+1|0]=d>>>8;H[b+2|0]=d>>>16;H[b+3|0]=d>>>24;H[b+4|0]=c;H[b+5|0]=c>>>8;H[b+6|0]=c>>>16;H[b+7|0]=c>>>24;J[a>>2]=-1;Ja(a+4|0,b,31);qa(b);break a}ga[J[J[b>>2]+24>>2]](a,b);if(J[a>>2]){break a}if(H[a+15|0]<0){qa(J[a+4>>2])}if(!(ga[J[J[b>>2]+28>>2]](b)|0)){b=Nc(g,1708);J[a>>2]=-1;a=a+4|0;if(H[b+11|0]>=0){c=J[b+4>>2];J[a>>2]=J[b>>2];J[a+4>>2]=c;J[a+8>>2]=J[b+8>>2];break a}Ja(a,J[b>>2],J[b+4>>2]);if(H[b+11|0]>=0){break a}qa(J[b>>2]);break a}d=c;c=Nc(g,1214);d=Qb(d,c,0);if(H[c+11|0]<0){qa(J[c>>2])}if(d){ga[J[J[b>>2]+48>>2]](b)}J[a>>2]=0;J[a+4>>2]=0;J[a+8>>2]=0;J[a+12>>2]=0}ea=g+16|0}function Zh(a){a=a|0;var b=0,c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=Q(0),r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=Q(0),z=0,A=0;d=ea+-64|0;ea=d;f=J[a+80>>2];J[d+40>>2]=0;J[d+44>>2]=0;J[d+56>>2]=a;J[d+48>>2]=a;J[d+32>>2]=0;J[d+36>>2]=0;J[d+52>>2]=1065353216;e=2;a:{if((f|0)!=1){if(f&f-1){f=Ka(f)}e=f;if(!f){break a}}_e(d+32|0,e)}f=J[a+80>>2];J[d+24>>2]=0;J[d+16>>2]=0;J[d+20>>2]=0;b:{c:{d:{e:{if(!f){break e}if(f>>>0>=1073741824){break b}f=f<<2;s=ra(f);J[d+16>>2]=s;b=f+s|0;J[d+24>>2]=b;sa(s,0,f);J[d+20>>2]=b;J[d+8>>2]=0;J[d>>2]=0;J[d+4>>2]=0;z=d+40|0;f=0;while(1){c=0;b=J[d+48>>2];m=J[b+8>>2];n=J[b+12>>2]-m|0;u=(n|0)<=0;f:{if(u){break f}b=n>>>2|0;b=b>>>0<=1?1:b;i=b&1;e=0;if(n>>>0>=8){j=b&1073741822;b=0;while(1){g=e<<2;h=J[g+m>>2];if(K[h+84|0]){h=f}else{h=J[J[h+68>>2]+(f<<2)>>2]}e=e+2|0;h=h<<3^c<<2;c=J[m+(g|4)>>2];if(K[c+84|0]){c=f}else{c=J[J[c+68>>2]+(f<<2)>>2]}c=h^c<<2;b=b+2|0;if((j|0)!=(b|0)){continue}break}}if(!i){break f}b=J[m+(e<<2)>>2];if(K[b+84|0]){b=f}else{b=J[J[b+68>>2]+(f<<2)>>2]}c=b<<2^c<<1}g:{h:{g=J[d+36>>2];if(!g){break h}i=J[d+32>>2];e=Dl(g)>>>0>1;b=g-1&c;i:{if(!e){break i}b=c;if(b>>>0>>0){break i}b=(c>>>0)%(g>>>0)|0}h=b;b=J[i+(h<<2)>>2];if(!b){break h}k=J[b>>2];if(!k){break h}p=J[d+56>>2];j:{k:{if(!e){v=g-1|0;while(1){b=J[k+4>>2];l:{if((b|0)!=(c|0)){if((h|0)==(b&v)){break l}break h}w=J[p+8>>2];b=J[p+12>>2]-w|0;if((b|0)<=0){break j}i=J[k+8>>2];l=1;o=b>>2;A=(o|0)<=1?1:o;e=0;while(1){b=f;j=J[w+(e<<2)>>2];if(K[j+84|0]){j=i}else{j=J[j+68>>2];b=J[j+(f<<2)>>2];j=J[j+(i<<2)>>2]}if((b|0)==(j|0)){e=e+1|0;l=(o|0)>(e|0);if((e|0)!=(A|0)){continue}}break}if(!l){break k}}k=J[k>>2];if(k){continue}break}break h}while(1){b=J[k+4>>2];m:{if((b|0)!=(c|0)){if(b>>>0>=g>>>0){b=(b>>>0)%(g>>>0)|0}if((b|0)==(h|0)){break m}break h}v=J[p+8>>2];b=J[p+12>>2]-v|0;if((b|0)<=0){break j}i=J[k+8>>2];l=1;o=b>>2;w=(o|0)<=1?1:o;e=0;while(1){b=f;j=J[v+(e<<2)>>2];if(K[j+84|0]){j=i}else{j=J[j+68>>2];b=J[j+(f<<2)>>2];j=J[j+(i<<2)>>2]}if((b|0)==(j|0)){e=e+1|0;l=(o|0)>(e|0);if((e|0)!=(w|0)){continue}}break}if(!l){break k}}k=J[k>>2];if(k){continue}break}break h}if(!k){break h}}J[(f<<2)+s>>2]=J[k+12>>2];break g}n:{if(u){h=0;break n}b=n>>>2|0;b=b>>>0<=1?1:b;i=b&1;h=0;e=0;if(n>>>0>=8){j=b&1073741822;b=0;while(1){l=e<<2;c=J[l+m>>2];if(K[c+84|0]){c=f}else{c=J[J[c+68>>2]+(f<<2)>>2]}e=e+2|0;h=c<<3^h<<2;c=J[m+(l|4)>>2];if(K[c+84|0]){c=f}else{c=J[J[c+68>>2]+(f<<2)>>2]}h=h^c<<2;b=b+2|0;if((j|0)!=(b|0)){continue}break}}if(!i){break n}b=J[m+(e<<2)>>2];if(K[b+84|0]){b=f}else{b=J[J[b+68>>2]+(f<<2)>>2]}h=b<<2^h<<1}o:{p:{if(!g){break p}l=g-1|0;if(l&g){k=g>>>0<=h>>>0?(h>>>0)%(g>>>0)|0:h;j=J[J[d+32>>2]+(k<<2)>>2];if(!j){break p}m=J[d+56>>2];while(1){j=J[j>>2];if(!j){break p}b=J[j+4>>2];if((b|0)!=(h|0)){if(b>>>0>=g>>>0){b=(b>>>0)%(g>>>0)|0}if((b|0)!=(k|0)){break p}}p=J[m+8>>2];b=J[m+12>>2]-p|0;if((b|0)<=0){break o}c=J[j+8>>2];l=1;n=b>>2;o=(n|0)<=1?1:n;e=0;while(1){b=f;i=J[p+(e<<2)>>2];if(K[i+84|0]){i=c}else{i=J[i+68>>2];b=J[i+(f<<2)>>2];i=J[i+(c<<2)>>2]}if((b|0)==(i|0)){e=e+1|0;l=(n|0)>(e|0);if((e|0)!=(o|0)){continue}}break}if(l){continue}break}break o}k=h&l;j=J[J[d+32>>2]+(k<<2)>>2];if(!j){break p}m=J[d+56>>2];while(1){j=J[j>>2];if(!j){break p}b=J[j+4>>2];if((b|0)!=(h|0)&(b&l)!=(k|0)){break p}o=J[m+8>>2];b=J[m+12>>2]-o|0;if((b|0)<=0){break o}c=J[j+8>>2];n=1;p=b>>2;u=(p|0)<=1?1:p;e=0;while(1){b=f;i=J[o+(e<<2)>>2];if(K[i+84|0]){i=c}else{i=J[i+68>>2];b=J[i+(f<<2)>>2];i=J[i+(c<<2)>>2]}if((b|0)==(i|0)){e=e+1|0;n=(p|0)>(e|0);if((e|0)!=(u|0)){continue}}break}if(n){continue}break}break o}e=ra(16);J[e+8>>2]=f;J[e+4>>2]=h;J[e>>2]=0;J[e+12>>2]=t;y=Q(J[d+44>>2]+1>>>0);q=N[d+52>>2];q:{if(y>Q(q*Q(g>>>0))?0:g){break q}c=2;k=(g-1&g)!=0|g>>>0<3|g<<1;q=Q(W(Q(y/q)));r:{if(q=Q(0)){b=~~q>>>0;break r}b=0}b=b>>>0>>0?k:b;s:{if((b|0)==1){break s}if(!(b&b-1)){c=b;break s}c=Ka(b);g=J[d+36>>2]}t:{if(c>>>0<=g>>>0){if(c>>>0>=g>>>0){break t}k=g>>>0<3;q=Q(W(Q(Q(M[d+44>>2])/N[d+52>>2])));u:{if(q=Q(0)){b=~~q>>>0;break u}b=0}v:{w:{if(k){break w}if(Dl(g)>>>0>1){break w}b=b>>>0<2?b:1<<32-S(b-1|0);break v}b=Ka(b)}c=b>>>0>>0?c:b;if(g>>>0<=c>>>0){break t}}_e(d+32|0,c)}g=J[d+36>>2];b=g-1|0;if(!(b&g)){k=b&h;break q}if(g>>>0>h>>>0){k=h;break q}k=(h>>>0)%(g>>>0)|0}b=J[d+32>>2]+(k<<2)|0;c=J[b>>2];x:{y:{if(!c){J[e>>2]=J[d+40>>2];J[d+40>>2]=e;J[b>>2]=z;b=J[e>>2];if(!b){break x}c=J[b+4>>2];b=g-1|0;z:{if(!(b&g)){c=b&c;break z}if(c>>>0>>0){break z}c=(c>>>0)%(g>>>0)|0}c=J[d+32>>2]+(c<<2)|0;break y}J[e>>2]=J[c>>2]}J[c>>2]=e}J[d+44>>2]=J[d+44>>2]+1;x=J[d+8>>2];r=J[d+4>>2];s=J[d+16>>2]}J[(f<<2)+s>>2]=t;t=t+1|0;if((r|0)!=(x|0)){J[r>>2]=f;r=r+4|0;J[d+4>>2]=r;break g}h=J[d>>2];c=x-h|0;i=c>>2;b=i+1|0;if(b>>>0>=1073741824){break d}e=c>>1;e=c>>>0>=2147483644?1073741823:b>>>0>>0?e:b;if(e){if(e>>>0>=1073741824){break c}b=ra(e<<2)}else{b=0}i=b+(i<<2)|0;J[i>>2]=f;x=b+(e<<2)|0;r=i+4|0;if((c|0)>0){ta(b,h,c)}J[d+8>>2]=x;J[d+4>>2]=r;J[d>>2]=b;if(!h){break g}qa(h)}f=f+1|0;b=J[a+80>>2];if(f>>>0>>0){continue}break}if((b|0)!=(t|0)){ga[J[J[a>>2]+24>>2]](a,d+16|0,d);J[a+80>>2]=t}a=J[d>>2];if(!a){break e}J[d+4>>2]=a;qa(a)}a=J[d+16>>2];if(a){J[d+20>>2]=a;qa(a)}f=J[d+40>>2];if(f){while(1){a=J[f>>2];qa(f);f=a;if(f){continue}break}}a=J[d+32>>2];J[d+32>>2]=0;if(a){qa(a)}ea=d- -64|0;return}ua();B()}ya();B()}ua();B()}function ne(a,b,c,d,e){var f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,K=0,L=0,N=0,O=0;o=ea-32|0;ea=o;J[a>>2]=J[d>>2];d=J[c>>2]-J[b>>2]|0;J[a+4>>2]=d;k=J[e+20>>2];if(!J[e+16>>2]&(k|0)<=0|(k|0)<0){d=a+4|0;wa(e,J[e+4>>2],a,d);k=J[e+20>>2];if(!J[e+16>>2]&(k|0)<=0|(k|0)<0){wa(e,J[e+4>>2],d,a+8|0)}d=J[d>>2]}if(d){C=a+12|0;d=C;J[d+12>>2]=0;J[d+16>>2]=0;J[d+4>>2]=J[d>>2];D=a+32|0;d=D;J[d+12>>2]=0;J[d+16>>2]=0;J[d+4>>2]=J[d>>2];E=a+52|0;d=E;J[d+12>>2]=0;J[d+16>>2]=0;J[d+4>>2]=J[d>>2];F=a+72|0;d=F;J[d+12>>2]=0;J[d+16>>2]=0;J[d+4>>2]=J[d>>2];J[o+24>>2]=J[b+8>>2];d=J[b+4>>2];J[o+16>>2]=J[b>>2];J[o+20>>2]=d;J[o+8>>2]=J[c+8>>2];b=J[c+4>>2];J[o>>2]=J[c>>2];J[o+4>>2]=b;b=0;f=ea-32|0;ea=f;d=a;g=J[a+8>>2];J[f+16>>2]=0;J[f+8>>2]=0;J[f+12>>2]=0;a:{b:{if(g){if(g>>>0>=1073741824){break b}a=g<<2;b=ra(a);J[f+8>>2]=b;h=a+b|0;J[f+16>>2]=h;sa(b,0,a);J[f+12>>2]=h}a=J[d+128>>2];c=J[a>>2];if(c){J[a+4>>2]=c;qa(c);g=J[d+8>>2];h=J[f+12>>2];b=J[f+8>>2]}J[a+4>>2]=h;J[a>>2]=b;J[a+8>>2]=J[f+16>>2];b=0;J[f+16>>2]=0;J[f+8>>2]=0;J[f+12>>2]=0;a=0;c:{if(g){if(g>>>0>=1073741824){break c}c=g<<2;a=ra(c);J[f+8>>2]=a;b=a+c|0;J[f+16>>2]=b;sa(a,0,c);J[f+12>>2]=b}c=J[d+140>>2];k=J[c>>2];if(k){J[c+4>>2]=k;qa(k);b=J[f+12>>2];a=J[f+8>>2]}J[c+4>>2]=b;J[c>>2]=a;J[c+8>>2]=J[f+16>>2];s=J[o+20>>2];q=J[o+24>>2];v=J[o+4>>2];w=J[o+8>>2];b=J[o>>2];c=J[o+16>>2];J[f+24>>2]=0;J[f+28>>2]=0;J[f+16>>2]=0;J[f+20>>2]=0;J[f+8>>2]=0;J[f+12>>2]=0;gb(f+8|0);a=J[f+24>>2]+J[f+28>>2]|0;k=(a>>>0)/113|0;a=J[J[f+12>>2]+(k<<2)>>2]+P(a-P(k,113)|0,36)|0;J[a+32>>2]=0;J[a+28>>2]=b-c;J[a+24>>2]=0;J[a+16>>2]=v;J[a+20>>2]=w;J[a+12>>2]=b;J[a+4>>2]=s;J[a+8>>2]=q;J[a>>2]=c;g=J[f+28>>2]+1|0;J[f+28>>2]=g;if(g){I=q&-4;G=q&3;K=d+32|0;L=d+12|0;N=d+72|0;O=q>>>0<4;while(1){b=J[f+12>>2];l=J[f+24>>2];j=g-1|0;a=l+j|0;c=(a>>>0)/113|0;a=J[b+(c<<2)>>2]+P(a-P(c,113)|0,36)|0;z=J[a+32>>2];h=J[a+24>>2];k=J[a+12>>2];c=J[a>>2];J[f+28>>2]=j;a=J[f+16>>2];if((((a|0)!=(b|0)?P(a-b>>2,113)-1|0:0)-(g+l|0)|0)+1>>>0>=226){qa(J[a-4>>2]);J[f+16>>2]=J[f+16>>2]-4}b=J[d>>2];g=(h|0)!=(J[d+8>>2]-1|0)?h+1|0:0;l=g<<2;x=P(z,12);j=x+J[d+140>>2]|0;h=J[l+J[j>>2]>>2];d:{e:{if((b|0)==(h|0)){break e}f:{g:{y=k-c|0;if(y>>>0<=2){h=J[d+116>>2];J[h>>2]=g;b=1;a=J[d+8>>2];if(a>>>0>1){break g}break f}j=J[d+128>>2];a=j+x|0;i=j;j=x+12|0;cb(i+j|0,J[a>>2],J[a+4>>2]);a=l+J[j+J[d+128>>2]>>2]|0;j=J[a>>2]+(1<>2]=j;a=c;h:{if((k|0)==(a|0)){break h}H=J[s+24>>2];a=k;b=c;if(!q){if(j>>>0>M[l+H>>2]){break h}while(1){a=a-1|0;if((b|0)==(a|0)){a=b;break h}if(j>>>0<=M[(l+J[v+24>>2]|0)+(P(a,w)<<2)>>2]){continue}b=b+1|0;if((b|0)!=(a|0)){continue}break}break h}while(1){n=(P(b,q)<<2)+H|0;if(j>>>0>M[n+l>>2]){b=b+1|0;if((b|0)!=(a|0)){continue}break h}while(1){a=a-1|0;if((b|0)==(a|0)){a=b;break h}p=J[v+24>>2]+(P(a,w)<<2)|0;if(j>>>0<=M[p+l>>2]){continue}break}A=0;h=0;t=0;if(!O){while(1){m=h<<2;i=m+n|0;r=J[i>>2];u=i;i=m+p|0;J[u>>2]=J[i>>2];J[i>>2]=r;i=m|4;r=i+n|0;u=J[r>>2];i=i+p|0;J[r>>2]=J[i>>2];J[i>>2]=u;i=m|8;r=i+n|0;u=J[r>>2];i=i+p|0;J[r>>2]=J[i>>2];J[i>>2]=u;m=m|12;i=m+n|0;r=J[i>>2];m=m+p|0;J[i>>2]=J[m>>2];J[m>>2]=r;h=h+4|0;t=t+4|0;if((I|0)!=(t|0)){continue}break}}if(G){while(1){m=h<<2;t=m+n|0;i=J[t>>2];m=m+p|0;J[t>>2]=J[m>>2];J[m>>2]=i;h=h+1|0;A=A+1|0;if((A|0)!=(G|0)){continue}break}}b=b+1|0;if((b|0)!=(a|0)){continue}break}}j=a-c|0;n=k-a|0;if((j|0)!=(n|0)){uc(N,j>>>0>>0)}Kb(L,S(y)^31,(y>>>1|0)-(j>>>0>>0?j:n)|0);i=l;b=J[d+140>>2];h=b+x|0;l=J[h>>2];p=i+l|0;J[p>>2]=J[p>>2]+1;p=z+1|0;cb(b+P(p,12)|0,l,J[h+4>>2]);if((a|0)!=(c|0)){b=J[f+28>>2]+J[f+24>>2]|0;l=J[f+16>>2];h=J[f+12>>2];if((b|0)==(((h|0)!=(l|0)?P(l-h>>2,113)-1|0:0)|0)){gb(f+8|0);h=J[f+12>>2];b=J[f+24>>2]+J[f+28>>2]|0}i=h;h=(b>>>0)/113|0;b=J[i+(h<<2)>>2]+P(b-P(h,113)|0,36)|0;J[b+32>>2]=z;J[b+28>>2]=j;J[b+24>>2]=g;J[b+16>>2]=s;J[b+12>>2]=a;J[b+4>>2]=s;J[b+8>>2]=q;J[b>>2]=c;J[b+20>>2]=q;J[f+28>>2]=J[f+28>>2]+1}if((a|0)==(k|0)){break e}h=J[f+28>>2]+J[f+24>>2]|0;c=J[f+16>>2];b=J[f+12>>2];if((h|0)==(((b|0)!=(c|0)?P(c-b>>2,113)-1|0:0)|0)){gb(f+8|0);h=J[f+24>>2]+J[f+28>>2]|0;c=J[f+12>>2]}else{c=b}b=(h>>>0)/113|0;b=J[c+(b<<2)>>2]+P(h-P(b,113)|0,36)|0;J[b+32>>2]=p;J[b+28>>2]=n;J[b+24>>2]=g;J[b+16>>2]=v;J[b+20>>2]=w;J[b+12>>2]=k;J[b+4>>2]=s;J[b>>2]=a;J[b+8>>2]=q;g=J[f+28>>2]+1|0;J[f+28>>2]=g;break d}while(1){g=(a-1|0)!=(g|0)?g+1|0:0;J[h+(b<<2)>>2]=g;a=J[d+8>>2];b=b+1|0;if(a>>>0>b>>>0){continue}break}}if(!a|(c|0)==(k|0)){break e}h=0;b=1;while(1){g=0;i:{if(!b){b=0;break i}k=J[s+24>>2]+(P(J[s+4>>2],c+h|0)<<2)|0;while(1){b=J[d>>2];l=J[J[d+116>>2]+(g<<2)>>2]<<2;n=J[l+J[j>>2]>>2];if((b|0)!=(n|0)){Kb(K,b-n|0,J[k+l>>2]);a=J[d+8>>2]}b=a;g=g+1|0;if(g>>>0>>0){continue}break}}h=h+1|0;if((y|0)!=(h|0)){continue}break}}g=J[f+28>>2]}if(g){continue}break}}J[f+28>>2]=0;c=J[f+16>>2];g=J[f+12>>2];a=c-g|0;if(a>>>0>=9){while(1){qa(J[g>>2]);g=J[f+12>>2]+4|0;J[f+12>>2]=g;c=J[f+16>>2];a=c-g|0;if(a>>>0>8){continue}break}}b=56;j:{switch((a>>>2|0)-1|0){case 1:b=113;case 0:J[f+24>>2]=b;break;default:break j}}k:{if((c|0)==(g|0)){break k}while(1){qa(J[g>>2]);g=g+4|0;if((g|0)!=(c|0)){continue}break}a=J[f+16>>2];b=J[f+12>>2];if((a|0)==(b|0)){break k}J[f+16>>2]=a+((b-a|0)+3&-4)}a=J[f+8>>2];if(a){qa(a)}ea=f+32|0;break a}ua();B()}ua();B()}fb(C,e);fb(D,e);fb(E,e);fb(F,e)}ea=o+32|0;return 1}function Af(a,b){var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=Q(0),p=0,q=0,r=0,s=Q(0);k=ea+-64|0;ea=k;J[k+40>>2]=0;J[k+44>>2]=0;J[k+32>>2]=0;J[k+36>>2]=0;J[k+48>>2]=1065353216;c=J[a+80>>2];J[k+24>>2]=0;J[k+16>>2]=0;J[k+20>>2]=0;a:{if(c){if(c>>>0>=1073741824){break a}d=c<<2;i=ra(d);J[k+16>>2]=i;c=d+i|0;J[k+24>>2]=c;sa(i,0,d);J[k+20>>2]=c;while(1){c=J[J[b>>2]>>2];e=J[b+48>>2]+Al(J[b+40>>2],J[b+44>>2],r,0)|0;c=c+e|0;j=K[c|0]|K[c+1|0]<<8;I[k+30>>1]=j;b:{c:{m=J[k+36>>2];d:{if(!m){break d}f=J[k+32>>2];g=j^318;d=Dl(m)>>>0>1;c=g&m-1;e:{if(!d){break e}c=g;if(c>>>0>>0){break e}c=(g>>>0)%(m>>>0)|0}e=c;c=J[f+(e<<2)>>2];if(!c){break d}c=J[c>>2];if(!c){break d}if(!d){m=m-1|0;while(1){d=J[c+4>>2];f:{if((d|0)!=(g|0)){if((e|0)==(d&m)){break f}break d}if((j|0)==L[c+8>>1]){break c}}c=J[c>>2];if(c){continue}break}break d}while(1){d=J[c+4>>2];g:{if((d|0)!=(g|0)){if(d>>>0>=m>>>0){d=(d>>>0)%(m>>>0)|0}if((d|0)==(e|0)){break g}break d}if((j|0)==L[c+8>>1]){break c}}c=J[c>>2];if(c){continue}break}}J[k+12>>2]=p;I[k+8>>1]=j;c=0;g=L[k+8>>1];m=g^318;h:{i:{h=k+32|0;f=J[h+4>>2];if(!f){break i}d=Dl(f);j:{if(d>>>0>=2){c=m;if(f>>>0<=c>>>0){c=(m>>>0)%(f>>>0)|0}l=J[J[h>>2]+(c<<2)>>2];if(!l){break i}if(d>>>0<=1){break j}while(1){l=J[l>>2];if(!l){break i}d=J[l+4>>2];if((d|0)!=(m|0)){if(d>>>0>=f>>>0){d=(d>>>0)%(f>>>0)|0}if((c|0)!=(d|0)){break i}}if((g|0)!=L[l+8>>1]){continue}break}c=0;break h}c=m&f-1;l=J[J[h>>2]+(c<<2)>>2];if(!l){break i}}e=f-1|0;while(1){l=J[l>>2];if(!l){break i}d=J[l+4>>2];if((d|0)!=(m|0)&(d&e)!=(c|0)){break i}if((g|0)!=L[l+8>>1]){continue}break}c=0;break h}l=ra(16);I[l+8>>1]=L[k+8>>1];d=J[k+12>>2];J[l+4>>2]=m;J[l+12>>2]=d;J[l>>2]=0;s=Q(J[h+12>>2]+1>>>0);o=N[h+16>>2];k:{if(s>Q(o*Q(f>>>0))?0:f){break k}c=2;d=(f-1&f)!=0|f>>>0<3|f<<1;o=Q(W(Q(s/o)));l:{if(o=Q(0)){e=~~o>>>0;break l}e=0}d=d>>>0>e>>>0?d:e;m:{if((d|0)==1){break m}if(!(d&d-1)){c=d;break m}c=Ka(d);f=J[h+4>>2]}n:{if(c>>>0<=f>>>0){if(c>>>0>=f>>>0){break n}e=f>>>0<3;o=Q(W(Q(Q(M[h+12>>2])/N[h+16>>2])));o:{if(o=Q(0)){d=~~o>>>0;break o}d=0}p:{q:{if(e){break q}if(Dl(f)>>>0>1){break q}d=d>>>0<2?d:1<<32-S(d-1|0);break p}d=Ka(d)}c=c>>>0>d>>>0?c:d;if(f>>>0<=c>>>0){break n}}d=0;j=0;i=c;r:{s:{t:{u:{if(c){if(i>>>0>=1073741824){break u}c=ra(i<<2);e=J[h>>2];J[h>>2]=c;if(e){qa(e)}J[h+4>>2]=i;e=0;if(i>>>0>=4){c=i&-4;while(1){g=e<<2;J[g+J[h>>2]>>2]=0;J[J[h>>2]+(g|4)>>2]=0;J[J[h>>2]+(g|8)>>2]=0;J[J[h>>2]+(g|12)>>2]=0;e=e+4|0;d=d+4|0;if((c|0)!=(d|0)){continue}break}}c=i&3;if(c){while(1){J[J[h>>2]+(e<<2)>>2]=0;e=e+1|0;j=j+1|0;if((c|0)!=(j|0)){continue}break}}d=J[h+8>>2];if(!d){break r}c=h+8|0;g=J[d+4>>2];e=Dl(i);if(e>>>0<2){break t}g=g>>>0>=i>>>0?(g>>>0)%(i>>>0)|0:g;J[J[h>>2]+(g<<2)>>2]=c;c=J[d>>2];if(!c){break r}if(e>>>0<=1){break s}while(1){j=J[c+4>>2];if(i>>>0<=j>>>0){j=(j>>>0)%(i>>>0)|0}v:{if((g|0)==(j|0)){d=c;break v}e=c;q=j<<2;f=q+J[h>>2]|0;if(!J[f>>2]){J[f>>2]=d;d=c;g=j;break v}while(1){j=e;e=J[e>>2];if(L[c+8>>1]==L[e+8>>1]?e:0){continue}break}J[d>>2]=e;J[j>>2]=J[J[q+J[h>>2]>>2]>>2];J[J[q+J[h>>2]>>2]>>2]=c}c=J[d>>2];if(c){continue}break}break r}c=J[h>>2];J[h>>2]=0;if(c){qa(c)}J[h+4>>2]=0;break r}ya();B()}g=i-1&g;J[J[h>>2]+(g<<2)>>2]=c;c=J[d>>2];if(!c){break r}}f=i-1|0;while(1){j=f&J[c+4>>2];w:{if((j|0)==(g|0)){d=c;break w}e=c;q=j<<2;i=q+J[h>>2]|0;if(J[i>>2]){while(1){j=e;e=J[e>>2];if(L[c+8>>1]==L[e+8>>1]?e:0){continue}break}J[d>>2]=e;J[j>>2]=J[J[q+J[h>>2]>>2]>>2];J[J[q+J[h>>2]>>2]>>2]=c;break w}J[i>>2]=d;d=c;g=j}c=J[d>>2];if(c){continue}break}}}f=J[h+4>>2];c=f-1|0;if(!(c&f)){c=c&m;break k}if(f>>>0>m>>>0){c=m;break k}c=(m>>>0)%(f>>>0)|0}d=J[h>>2]+(c<<2)|0;c=J[d>>2];x:{y:{if(!c){c=h+8|0;J[l>>2]=J[c>>2];J[h+8>>2]=l;J[d>>2]=c;c=J[l>>2];if(!c){break x}c=J[c+4>>2];d=f-1|0;z:{if(!(d&f)){c=c&d;break z}if(c>>>0>>0){break z}c=(c>>>0)%(f>>>0)|0}c=J[h>>2]+(c<<2)|0;break y}J[l>>2]=J[c>>2]}J[c>>2]=l}J[h+12>>2]=J[h+12>>2]+1;c=1}H[k+60|0]=c;J[k+56>>2]=l;c=J[a+40>>2];ta(J[J[a>>2]>>2]+P(c,p)|0,k+30|0,c);i=J[k+16>>2];J[i+(r<<2)>>2]=p;p=p+1|0;break b}J[(r<<2)+i>>2]=J[c+12>>2]}c=r+1|0;n=c?n:n+1|0;r=c;c=J[a+80>>2];if(!n&c>>>0>r>>>0){continue}break}if((c|0)!=(p|0)){A:{if(!K[a+84|0]){b=J[a+72>>2];g=J[a+68>>2];if((b|0)==(g|0)){break A}b=b-g>>2;b=b>>>0<=1?1:b;e=b&3;j=0;c=0;if(b-1>>>0>=3){d=b&-4;f=0;while(1){n=c<<2;b=n+g|0;J[b>>2]=J[(J[b>>2]<<2)+i>>2];b=g+(n|4)|0;J[b>>2]=J[(J[b>>2]<<2)+i>>2];b=g+(n|8)|0;J[b>>2]=J[(J[b>>2]<<2)+i>>2];b=g+(n|12)|0;J[b>>2]=J[(J[b>>2]<<2)+i>>2];c=c+4|0;f=f+4|0;if((d|0)!=(f|0)){continue}break}}if(!e){break A}while(1){b=g+(c<<2)|0;J[b>>2]=J[(J[b>>2]<<2)+i>>2];c=c+1|0;j=j+1|0;if((e|0)!=(j|0)){continue}break}break A}H[a+84|0]=0;e=a+68|0;b=J[a+68>>2];d=J[a+72>>2]-b>>2;B:{if(d>>>0>>0){La(e,c-d|0,2176);c=J[a+80>>2];break B}if(c>>>0>=d>>>0){break B}J[a+72>>2]=b+(c<<2)}if(!c){break A}g=J[e>>2];j=0;b=0;if(c>>>0>=4){e=c&-4;f=0;while(1){n=b<<2;J[n+g>>2]=J[i+n>>2];d=n|4;J[d+g>>2]=J[d+i>>2];d=n|8;J[d+g>>2]=J[d+i>>2];d=n|12;J[d+g>>2]=J[d+i>>2];b=b+4|0;f=f+4|0;if((e|0)!=(f|0)){continue}break}}d=c&3;if(!d){break A}while(1){c=b<<2;J[c+g>>2]=J[c+i>>2];b=b+1|0;j=j+1|0;if((d|0)!=(j|0)){continue}break}}J[a+80>>2]=p}qa(i)}c=J[k+40>>2];if(c){while(1){a=J[c>>2];qa(c);c=a;if(c){continue}break}}a=J[k+32>>2];J[k+32>>2]=0;if(a){qa(a)}ea=k- -64|0;return p}ua();B()}function Lf(a,b){var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=Q(0),p=0,q=0,r=0,s=Q(0);k=ea+-64|0;ea=k;J[k+40>>2]=0;J[k+44>>2]=0;J[k+32>>2]=0;J[k+36>>2]=0;J[k+48>>2]=1065353216;c=J[a+80>>2];J[k+24>>2]=0;J[k+16>>2]=0;J[k+20>>2]=0;a:{if(c){if(c>>>0>=1073741824){break a}d=c<<2;i=ra(d);J[k+16>>2]=i;c=d+i|0;J[k+24>>2]=c;sa(i,0,d);J[k+20>>2]=c;while(1){c=J[J[b>>2]>>2];e=J[b+48>>2]+Al(J[b+40>>2],J[b+44>>2],r,0)|0;j=K[c+e|0];H[k+31|0]=j;b:{c:{m=J[k+36>>2];d:{if(!m){break d}f=J[k+32>>2];g=j^318;d=Dl(m)>>>0>1;c=g&m-1;e:{if(!d){break e}c=g;if(c>>>0>>0){break e}c=(g>>>0)%(m>>>0)|0}e=c;c=J[f+(e<<2)>>2];if(!c){break d}c=J[c>>2];if(!c){break d}if(!d){m=m-1|0;while(1){d=J[c+4>>2];f:{if((d|0)!=(g|0)){if((e|0)==(d&m)){break f}break d}if((j|0)==K[c+8|0]){break c}}c=J[c>>2];if(c){continue}break}break d}while(1){d=J[c+4>>2];g:{if((d|0)!=(g|0)){if(d>>>0>=m>>>0){d=(d>>>0)%(m>>>0)|0}if((d|0)==(e|0)){break g}break d}if((j|0)==K[c+8|0]){break c}}c=J[c>>2];if(c){continue}break}}J[k+12>>2]=p;H[k+8|0]=j;c=0;g=K[k+8|0];m=g^318;h:{i:{h=k+32|0;f=J[h+4>>2];if(!f){break i}d=Dl(f);j:{if(d>>>0>=2){c=m;if(f>>>0<=c>>>0){c=(m>>>0)%(f>>>0)|0}l=J[J[h>>2]+(c<<2)>>2];if(!l){break i}if(d>>>0<=1){break j}while(1){l=J[l>>2];if(!l){break i}d=J[l+4>>2];if((d|0)!=(m|0)){if(d>>>0>=f>>>0){d=(d>>>0)%(f>>>0)|0}if((c|0)!=(d|0)){break i}}if((g|0)!=K[l+8|0]){continue}break}c=0;break h}c=m&f-1;l=J[J[h>>2]+(c<<2)>>2];if(!l){break i}}e=f-1|0;while(1){l=J[l>>2];if(!l){break i}d=J[l+4>>2];if((d|0)!=(m|0)&(d&e)!=(c|0)){break i}if((g|0)!=K[l+8|0]){continue}break}c=0;break h}l=ra(16);H[l+8|0]=K[k+8|0];d=J[k+12>>2];J[l+4>>2]=m;J[l+12>>2]=d;J[l>>2]=0;s=Q(J[h+12>>2]+1>>>0);o=N[h+16>>2];k:{if(s>Q(o*Q(f>>>0))?0:f){break k}c=2;d=(f-1&f)!=0|f>>>0<3|f<<1;o=Q(W(Q(s/o)));l:{if(o=Q(0)){e=~~o>>>0;break l}e=0}d=d>>>0>e>>>0?d:e;m:{if((d|0)==1){break m}if(!(d&d-1)){c=d;break m}c=Ka(d);f=J[h+4>>2]}n:{if(c>>>0<=f>>>0){if(c>>>0>=f>>>0){break n}e=f>>>0<3;o=Q(W(Q(Q(M[h+12>>2])/N[h+16>>2])));o:{if(o=Q(0)){d=~~o>>>0;break o}d=0}p:{q:{if(e){break q}if(Dl(f)>>>0>1){break q}d=d>>>0<2?d:1<<32-S(d-1|0);break p}d=Ka(d)}c=c>>>0>d>>>0?c:d;if(f>>>0<=c>>>0){break n}}d=0;j=0;i=c;r:{s:{t:{u:{if(c){if(i>>>0>=1073741824){break u}c=ra(i<<2);e=J[h>>2];J[h>>2]=c;if(e){qa(e)}J[h+4>>2]=i;e=0;if(i>>>0>=4){c=i&-4;while(1){g=e<<2;J[g+J[h>>2]>>2]=0;J[J[h>>2]+(g|4)>>2]=0;J[J[h>>2]+(g|8)>>2]=0;J[J[h>>2]+(g|12)>>2]=0;e=e+4|0;d=d+4|0;if((c|0)!=(d|0)){continue}break}}c=i&3;if(c){while(1){J[J[h>>2]+(e<<2)>>2]=0;e=e+1|0;j=j+1|0;if((c|0)!=(j|0)){continue}break}}d=J[h+8>>2];if(!d){break r}c=h+8|0;g=J[d+4>>2];e=Dl(i);if(e>>>0<2){break t}g=g>>>0>=i>>>0?(g>>>0)%(i>>>0)|0:g;J[J[h>>2]+(g<<2)>>2]=c;c=J[d>>2];if(!c){break r}if(e>>>0<=1){break s}while(1){j=J[c+4>>2];if(i>>>0<=j>>>0){j=(j>>>0)%(i>>>0)|0}v:{if((g|0)==(j|0)){d=c;break v}e=c;q=j<<2;f=q+J[h>>2]|0;if(!J[f>>2]){J[f>>2]=d;d=c;g=j;break v}while(1){j=e;e=J[e>>2];if(K[c+8|0]==K[e+8|0]?e:0){continue}break}J[d>>2]=e;J[j>>2]=J[J[q+J[h>>2]>>2]>>2];J[J[q+J[h>>2]>>2]>>2]=c}c=J[d>>2];if(c){continue}break}break r}c=J[h>>2];J[h>>2]=0;if(c){qa(c)}J[h+4>>2]=0;break r}ya();B()}g=i-1&g;J[J[h>>2]+(g<<2)>>2]=c;c=J[d>>2];if(!c){break r}}f=i-1|0;while(1){j=f&J[c+4>>2];w:{if((j|0)==(g|0)){d=c;break w}e=c;q=j<<2;i=q+J[h>>2]|0;if(J[i>>2]){while(1){j=e;e=J[e>>2];if(K[c+8|0]==K[e+8|0]?e:0){continue}break}J[d>>2]=e;J[j>>2]=J[J[q+J[h>>2]>>2]>>2];J[J[q+J[h>>2]>>2]>>2]=c;break w}J[i>>2]=d;d=c;g=j}c=J[d>>2];if(c){continue}break}}}f=J[h+4>>2];c=f-1|0;if(!(c&f)){c=c&m;break k}if(f>>>0>m>>>0){c=m;break k}c=(m>>>0)%(f>>>0)|0}d=J[h>>2]+(c<<2)|0;c=J[d>>2];x:{y:{if(!c){c=h+8|0;J[l>>2]=J[c>>2];J[h+8>>2]=l;J[d>>2]=c;c=J[l>>2];if(!c){break x}c=J[c+4>>2];d=f-1|0;z:{if(!(d&f)){c=c&d;break z}if(c>>>0>>0){break z}c=(c>>>0)%(f>>>0)|0}c=J[h>>2]+(c<<2)|0;break y}J[l>>2]=J[c>>2]}J[c>>2]=l}J[h+12>>2]=J[h+12>>2]+1;c=1}H[k+60|0]=c;J[k+56>>2]=l;c=J[a+40>>2];ta(J[J[a>>2]>>2]+P(c,p)|0,k+31|0,c);i=J[k+16>>2];J[i+(r<<2)>>2]=p;p=p+1|0;break b}J[(r<<2)+i>>2]=J[c+12>>2]}c=r+1|0;n=c?n:n+1|0;r=c;c=J[a+80>>2];if(!n&c>>>0>r>>>0){continue}break}if((c|0)!=(p|0)){A:{if(!K[a+84|0]){b=J[a+72>>2];g=J[a+68>>2];if((b|0)==(g|0)){break A}b=b-g>>2;b=b>>>0<=1?1:b;e=b&3;j=0;c=0;if(b-1>>>0>=3){d=b&-4;f=0;while(1){n=c<<2;b=n+g|0;J[b>>2]=J[(J[b>>2]<<2)+i>>2];b=g+(n|4)|0;J[b>>2]=J[(J[b>>2]<<2)+i>>2];b=g+(n|8)|0;J[b>>2]=J[(J[b>>2]<<2)+i>>2];b=g+(n|12)|0;J[b>>2]=J[(J[b>>2]<<2)+i>>2];c=c+4|0;f=f+4|0;if((d|0)!=(f|0)){continue}break}}if(!e){break A}while(1){b=g+(c<<2)|0;J[b>>2]=J[(J[b>>2]<<2)+i>>2];c=c+1|0;j=j+1|0;if((e|0)!=(j|0)){continue}break}break A}H[a+84|0]=0;e=a+68|0;b=J[a+68>>2];d=J[a+72>>2]-b>>2;B:{if(d>>>0>>0){La(e,c-d|0,2176);c=J[a+80>>2];break B}if(c>>>0>=d>>>0){break B}J[a+72>>2]=b+(c<<2)}if(!c){break A}g=J[e>>2];j=0;b=0;if(c>>>0>=4){e=c&-4;f=0;while(1){n=b<<2;J[n+g>>2]=J[i+n>>2];d=n|4;J[d+g>>2]=J[d+i>>2];d=n|8;J[d+g>>2]=J[d+i>>2];d=n|12;J[d+g>>2]=J[d+i>>2];b=b+4|0;f=f+4|0;if((e|0)!=(f|0)){continue}break}}d=c&3;if(!d){break A}while(1){c=b<<2;J[c+g>>2]=J[c+i>>2];b=b+1|0;j=j+1|0;if((d|0)!=(j|0)){continue}break}}J[a+80>>2]=p}qa(i)}c=J[k+40>>2];if(c){while(1){a=J[c>>2];qa(c);c=a;if(c){continue}break}}a=J[k+32>>2];J[k+32>>2]=0;if(a){qa(a)}ea=k- -64|0;return p}ua();B()}function bg(a,b){var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0;j=ea-32|0;ea=j;c=J[a+16>>2];J[a+20>>2]=c;a:{b:{c:{d:{e:{f:{g:{h:{if((c|0)!=J[a+24>>2]){J[c>>2]=b;b=c+4|0;J[a+20>>2]=b;f=c;break h}f=ra(4);J[f>>2]=b;b=f+4|0;J[a+24>>2]=b;J[a+20>>2]=b;J[a+16>>2]=f;if(c){break g}}c=J[a+8>>2];c=J[c+100>>2]-J[c+96>>2]|0;break f}qa(c);b=J[a+20>>2];f=J[a+16>>2];if((b|0)==(f|0)){break e}c=J[a+8>>2];c=J[c+100>>2]-J[c+96>>2]|0}if((c|0)>0){p=a+120|0;c=(c|0)/12|0;q=(c|0)<=1?1:c;while(1){i:{j:{c=b-4|0;b=J[c>>2];if((b|0)==-1){break j}f=(b>>>0)/3|0;if(J[J[a+28>>2]+(f>>>3&268435452)>>2]>>>f&1){break j}i=0;while(1){J[a+164>>2]=J[a+164>>2]+1;f=b;g=(b>>>0)/3|0;h=(b|0)==-1;l=h?-1:g;b=J[a+28>>2]+(l>>>3&536870908)|0;J[b>>2]=J[b>>2]|1<>2];k:{if((b|0)!=J[a+80>>2]){J[b>>2]=f;J[a+76>>2]=b+4;break k}d=J[a+72>>2];c=b-d|0;k=c>>2;b=k+1|0;if(b>>>0>1073741823){break d}e=c>>1;e=c>>>0>=2147483644?1073741823:b>>>0>>0?e:b;if(e){if(e>>>0>1073741823){break a}b=ra(e<<2)}else{b=0}k=b+(k<<2)|0;J[k>>2]=f;if((c|0)>0){ta(b,d,c)}J[a+80>>2]=b+(e<<2);J[a+76>>2]=k+4;J[a+72>>2]=b;if(!d){break k}qa(d)}b=-1;d=J[a+12>>2];b=(f|0)!=-1?J[J[d>>2]+(f<<2)>>2]:b;m=b<<2;k=J[m+J[a+152>>2]>>2];l:{m:{c=J[a+84>>2]+(b>>>3&536870908)|0;e=J[c>>2];b=1<>2]=b|e;if((k|0)==-1){break m}}n:{if(h){break n}b=-1;c=f+1|0;e=(c>>>0)%3|0?c:f-2|0;if((e|0)!=-1){b=J[J[d+12>>2]+(e<<2)>>2]}r=(b>>>0)/3|0;h=f-P(g,3)|0;o:{p:{if(h){g=f-1|0;break p}g=f+2|0;c=-1;if((g|0)==-1){break o}}c=J[J[d+12>>2]+(g<<2)>>2]}g=(c|0)==-1;n=g?-1:(c>>>0)/3|0;q:{if((e|0)==-1){break q}o=J[d+12>>2];d=J[o+(e<<2)>>2];if((d|0)==-1){break q}e=J[a+28>>2];d=(d>>>0)/3|0;if(J[e+(d>>>3&268435452)>>2]>>>d&1){break q}r:{s:{if(h){d=f-1|0;break s}d=f+2|0;if((d|0)==-1){break r}}d=J[(d<<2)+o>>2];if((d|0)==-1){break r}d=(d>>>0)/3|0;if(J[e+(d>>>3&268435452)>>2]>>>d&1){break r}d=J[a+272>>2];t:{if((d|0)!=J[a+276>>2]){J[d>>2]=1;J[a+272>>2]=d+4;break t}g=J[a+268>>2];e=d-g|0;h=e>>2;d=h+1|0;if(d>>>0>1073741823){break c}i=e>>1;i=e>>>0>=2147483644?1073741823:d>>>0>>0?i:d;if(i){if(i>>>0>1073741823){break a}d=ra(i<<2)}else{d=0}h=d+(h<<2)|0;J[h>>2]=1;if((e|0)>0){ta(d,g,e)}J[a+276>>2]=d+(i<<2);J[a+272>>2]=h+4;J[a+268>>2]=d;if(!g){break t}qa(g)}J[a+168>>2]=J[a+168>>2]+1;u:{if((k|0)==-1){break u}d=J[J[a+152>>2]+m>>2];if(J[J[a+140>>2]+(d>>>3&536870908)>>2]>>>d&1){break u}Ec(a,f,0)}f=J[a+164>>2];J[j+4>>2]=l;d=j+4|0;J[j+16>>2]=d;Yf(j+24|0,p,d,j+16|0);J[J[j+24>>2]+12>>2]=f;f=J[a+20>>2];J[f-4>>2]=c;if((f|0)!=J[a+24>>2]){J[f>>2]=b;J[a+20>>2]=f+4;break i}d=J[a+16>>2];f=f-d|0;g=f>>2;c=g+1|0;if(c>>>0>1073741823){break b}e=f>>1;e=f>>>0>=2147483644?1073741823:c>>>0>>0?e:c;if(e){if(e>>>0>1073741823){break a}c=ra(e<<2)}else{c=0}g=c+(g<<2)|0;J[g>>2]=b;if((f|0)>0){ta(c,d,f)}J[a+24>>2]=c+(e<<2);J[a+20>>2]=g+4;J[a+16>>2]=c;if(!d){break i}qa(d);break i}if(!g){Rb(a,J[a+164>>2],0,n)}c=J[a+272>>2];if((c|0)!=J[a+276>>2]){J[c>>2]=3;J[a+272>>2]=c+4;break l}d=J[a+268>>2];f=c-d|0;g=f>>2;c=g+1|0;if(c>>>0>1073741823){break c}e=f>>1;e=f>>>0>=2147483644?1073741823:c>>>0>>0?e:c;if(e){if(e>>>0>1073741823){break a}c=ra(e<<2)}else{c=0}g=c+(g<<2)|0;J[g>>2]=3;if((f|0)>0){ta(c,d,f)}J[a+276>>2]=c+(e<<2);J[a+272>>2]=g+4;J[a+268>>2]=c;if(!d){break l}qa(d);break l}b=(b|0)==-1;if(!b){Rb(a,J[a+164>>2],1,b?-1:r)}v:{w:{if(h){b=f-1|0;break w}b=f+2|0;if((b|0)==-1){break v}}b=J[J[J[a+12>>2]+12>>2]+(b<<2)>>2];if((b|0)==-1){break v}b=(b>>>0)/3|0;if(J[J[a+28>>2]+(b>>>3&268435452)>>2]>>>b&1){break v}b=J[a+272>>2];if((b|0)!=J[a+276>>2]){J[b>>2]=5;J[a+272>>2]=b+4;b=c;break l}d=J[a+268>>2];f=b-d|0;g=f>>2;b=g+1|0;if(b>>>0>1073741823){break c}e=f>>1;e=f>>>0>=2147483644?1073741823:b>>>0>>0?e:b;if(e){if(e>>>0>1073741823){break a}b=ra(e<<2)}else{b=0}g=b+(g<<2)|0;J[g>>2]=5;if((f|0)>0){ta(b,d,f)}J[a+276>>2]=b+(e<<2);J[a+272>>2]=g+4;J[a+268>>2]=b;if(!d){b=c;break l}qa(d);b=c;break l}if(g){break n}Rb(a,J[a+164>>2],0,n)}b=J[a+272>>2];x:{if((b|0)!=J[a+276>>2]){J[b>>2]=7;J[a+272>>2]=b+4;break x}f=J[a+268>>2];c=b-f|0;e=c>>2;b=e+1|0;if(b>>>0>1073741823){break c}d=c>>1;d=c>>>0>=2147483644?1073741823:b>>>0>>0?d:b;if(d){if(d>>>0>1073741823){break a}b=ra(d<<2)}else{b=0}e=b+(e<<2)|0;J[e>>2]=7;if((c|0)>0){ta(b,f,c)}J[a+276>>2]=b+(d<<2);J[a+272>>2]=e+4;J[a+268>>2]=b;if(!f){break x}qa(f)}J[a+20>>2]=J[a+20>>2]-4;break i}b=J[a+272>>2];y:{if((b|0)!=J[a+276>>2]){J[b>>2]=0;J[a+272>>2]=b+4;break y}d=J[a+268>>2];c=b-d|0;g=c>>2;b=g+1|0;if(b>>>0>1073741823){break c}e=c>>1;e=c>>>0>=2147483644?1073741823:b>>>0>>0?e:b;if(e){if(e>>>0>1073741823){break a}b=ra(e<<2)}else{b=0}g=b+(g<<2)|0;J[g>>2]=0;if((c|0)>0){ta(b,d,c)}J[a+276>>2]=b+(e<<2);J[a+272>>2]=g+4;J[a+268>>2]=b;if(!d){break y}qa(d)}b=-1;if((f|0)==-1){break l}c=f+1|0;c=(c>>>0)%3|0?c:f-2|0;if((c|0)==-1){break l}b=J[J[J[a+12>>2]+12>>2]+(c<<2)>>2]}i=i+1|0;if((q|0)!=(i|0)){continue}break}break i}J[a+20>>2]=c}b=J[a+20>>2];if((b|0)!=J[a+16>>2]){continue}break}break e}d=J[a+28>>2];while(1){c=b-4|0;e=J[c>>2];z:{if((e|0)!=-1){e=(e>>>0)/3|0;if(!(J[d+(e>>>3&268435452)>>2]>>>e&1)){break z}}J[a+20>>2]=c;b=c}if((b|0)!=(f|0)){continue}break}}ea=j+32|0;return 1}ua();B()}ua();B()}ua();B()}ya();B()}function kh(a,b,c,d){var e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,C=0,D=0,E=0,F=0,G=0,I=0,L=0,M=0,N=0,O=0,P=0,Q=0,R=0,S=0,T=0,U=0;i=ea-80|0;ea=i;g=-1;f=-1;a:{if((b|0)==-1){break a}f=b+1|0;g=(f>>>0)%3|0?f:b-2|0;f=b-1|0;if((b>>>0)%3|0){break a}f=b+2|0}b:{e=J[a+36>>2];b=J[e>>2];c:{d:{e:{f:{g:{h:{e=J[e+4>>2]-b>>2;j=g<<2;g=J[J[a+32>>2]+28>>2];k=J[j+g>>2];if(e>>>0<=k>>>0){break h}f=J[g+(f<<2)>>2];if(f>>>0>=e>>>0){break h}i:{j:{e=J[b+(f<<2)>>2];l=J[b+(k<<2)>>2];if((e|0)>=(d|0)|(l|0)>=(d|0)){break j}b=(e<<3)+c|0;q=J[b+4>>2];f=(l<<3)+c|0;g=J[f+4>>2];j=J[f>>2];A=J[b>>2];if(!((j|0)!=(A|0)|(g|0)!=(q|0))){J[a+8>>2]=j;J[a+12>>2]=g;break i}b=J[J[a+4>>2]+(d<<2)>>2];J[i+72>>2]=0;J[i+76>>2]=0;f=i- -64|0;J[f>>2]=0;J[f+4>>2]=0;J[i+56>>2]=0;J[i+60>>2]=0;f=J[a>>2];if(!K[f+84|0]){b=J[J[f+68>>2]+(b<<2)>>2]}ib(f,b,H[f+24|0],i+56|0);b=J[J[a+4>>2]+(l<<2)>>2];J[i+48>>2]=0;J[i+52>>2]=0;J[i+40>>2]=0;J[i+44>>2]=0;J[i+32>>2]=0;J[i+36>>2]=0;f=J[a>>2];if(!K[f+84|0]){b=J[J[f+68>>2]+(b<<2)>>2]}ib(f,b,H[f+24|0],i+32|0);b=J[J[a+4>>2]+(e<<2)>>2];J[i+24>>2]=0;J[i+28>>2]=0;J[i+16>>2]=0;J[i+20>>2]=0;J[i+8>>2]=0;J[i+12>>2]=0;f=J[a>>2];if(!K[f+84|0]){b=J[J[f+68>>2]+(b<<2)>>2]}ib(f,b,H[f+24|0],i+8|0);L=J[i+44>>2];b=J[i+16>>2];x=J[i+40>>2];f=x;h=J[i+20>>2]-(L+(b>>>0>>0)|0)|0;t=b-f|0;b=Al(t,h,t,h);f=fa;n=b;M=J[i+36>>2];b=J[i+8>>2];C=J[i+32>>2];e=C;o=J[i+12>>2]-(M+(b>>>0>>0)|0)|0;k=b-e|0;m=Al(k,o,k,o);b=n+m|0;e=fa+f|0;e=b>>>0>>0?e+1|0:e;n=b;N=J[i+52>>2];b=J[i+24>>2];D=J[i+48>>2];f=D;m=J[i+28>>2]-(N+(b>>>0>>0)|0)|0;u=b-f|0;p=Al(u,m,u,m);b=n+p|0;f=fa+e|0;s=b;p=b>>>0

>>0?f+1|0:f;if(!(b|p)){break j}F=Cl(-1,2147483647,s,p);b=j>>31;O=b;f=j;e=b>>31;j=b^e;b=f^e;j=j-((e>>>0>b>>>0)+e|0)|0;v=b-e|0;b=g>>31;G=b;l=b>>31;y=l^g;I=y-l|0;e=b>>31;b=(e^b)-((l>>>0>y>>>0)+e|0)|0;e=(j|0)==(b|0)&v>>>0>I>>>0|b>>>0>>0;l=e?v:I;r=fa;b=e?j:b;n=0;if((r|0)==(b|0)&l>>>0>F>>>0|b>>>0>r>>>0){break c}r=J[i+64>>2];b=r;v=J[i+68>>2];b=Al(b-x|0,v-((b>>>0>>0)+L|0)|0,t,h);e=fa;n=b;F=J[i+56>>2];b=F;y=J[i+60>>2];j=Al(b-C|0,y-((b>>>0>>0)+M|0)|0,k,o);b=n+j|0;e=fa+e|0;e=b>>>0>>0?e+1|0:e;j=b;I=J[i+72>>2];b=I;P=J[i+76>>2];l=Al(b-D|0,P-((b>>>0>>0)+N|0)|0,u,m);j=j+l|0;b=fa+e|0;E=j;l=j>>>0>>0?b+1|0:b;b=o>>31;e=b;j=b^k;b=(b^o)-(b+(b>>>0>j>>>0)|0)|0;n=j-e|0;e=h>>31;w=e^t;z=w-e|0;e=(h^e)-((e>>>0>w>>>0)+e|0)|0;j=(e|0)==(b|0)&n>>>0>z>>>0|b>>>0>e>>>0;n=j?n:z;b=j?b:e;e=m>>31;w=e^u;z=w-e|0;e=(e^m)-((e>>>0>w>>>0)+e|0)|0;j=(e|0)==(b|0)&n>>>0>z>>>0|b>>>0>e>>>0;z=Cl(-1,2147483647,j?n:z,j?b:e);w=fa;b=w;if(z>>>0>>0&(b|0)<=(l|0)|(b|0)<(l|0)){break d}Q=q-g|0;R=(q>>31)-((g>>>0>q>>>0)+G|0)|0;b=Al(E,l,Q,R);e=fa;q=Al(s,p,g,G);g=q+b|0;b=fa+e|0;b=g>>>0>>0?b+1|0:b;q=g;n=b;G=A-f|0;S=(A>>31)-((f>>>0>A>>>0)+O|0)|0;b=Al(E,l,G,S);g=fa;f=Al(f,O,s,p);b=f+b|0;e=fa+g|0;j=b;A=b>>>0>>0?e+1|0:e;g=1;f=0;b=r;t=Bl(Al(t,h,E,l),fa,s,p);h=t+x|0;e=fa+L|0;e=h>>>0>>0?e+1|0:e;e=v-((b>>>0>>0)+e|0)|0;b=b-h|0;b=Al(b,e,b,e);h=fa;e=F;r=b;o=Bl(Al(k,o,E,l),fa,s,p);k=o+C|0;b=fa+M|0;b=k>>>0>>0?b+1|0:b;b=y-((e>>>0>>0)+b|0)|0;e=e-k|0;k=Al(e,b,e,b);b=r+k|0;e=fa+h|0;h=b;k=b>>>0>>0?e+1|0:e;b=I;r=h;o=Bl(Al(u,m,E,l),fa,s,p);h=o+D|0;e=fa+N|0;e=h>>>0>>0?e+1|0:e;e=P-((b>>>0>>0)+e|0)|0;b=b-h|0;h=Al(b,e,b,e);e=r+h|0;b=fa+k|0;k=Al(e,e>>>0>>0?b+1|0:b,s,p);b=fa;h=b;if(!b&k>>>0<=1){break g}o=k;e=h;while(1){b=f<<1|g>>>31;g=g<<1;f=b;m=!e&o>>>0>7|(e|0)!=0;o=(e&3)<<30|o>>>2;e=e>>>2|0;if(m){continue}break}break f}if((d|0)>(l|0)){b=l<<1}else{if((d|0)<=0){J[a+8>>2]=0;J[a+12>>2]=0;break i}b=(d<<1)-2|0}b=(b<<2)+c|0;J[a+8>>2]=J[b>>2];J[a+12>>2]=J[b+4>>2]}n=1;break c}va();B()}f=h;g=k;if(g-1|0){break e}}while(1){b=Cl(k,h,g,f)+g|0;f=f+fa|0;f=b>>>0>>0?f+1|0:f;g=(f&1)<<31|b>>>1;f=f>>>1|0;b=Al(g,f,g,f);e=fa;if((h|0)==(e|0)&b>>>0>k>>>0|e>>>0>h>>>0){continue}break}}k=a+16|0;x=J[a+24>>2];C=x<<5;b=J[a+20>>2];h=(d<<3)+c|0;d=J[h+4>>2];D=Al(g,f,G,S);c=D;r=fa;c=Bl(q-c|0,n-(r+(c>>>0>q>>>0)|0)|0,s,p);m=d-c|0;o=d>>31;e=o-(fa+(c>>>0>d>>>0)|0)|0;v=Al(m,e,m,e);F=fa;h=J[h>>2];e=h>>31;m=h;t=e;u=Al(g,f,Q,R);g=j+u|0;y=fa;f=A+y|0;g=Bl(g,g>>>0>>0?f+1|0:f,s,p);f=e-(fa+(h>>>0>>0)|0)|0;e=h-g|0;h=Al(e,f,e,f);f=h+v|0;e=fa+F|0;v=f;h=f>>>0>>0?e+1|0:e;f=d;e=n+r|0;d=q+D|0;e=d>>>0>>0?e+1|0:e;d=Bl(d,e,s,p);e=o-(fa+(d>>>0>f>>>0)|0)|0;f=f-d|0;e=Al(f,e,f,e);q=fa;f=Bl(j-u|0,A-((j>>>0>>0)+y|0)|0,s,p);n=e;e=t-(fa+(f>>>0>m>>>0)|0)|0;m=m-f|0;j=Al(m,e,m,e);m=n+j|0;e=fa+q|0;e=j>>>0>m>>>0?e+1|0:e;k:{if((e|0)==(h|0)&m>>>0>v>>>0|e>>>0>h>>>0){if((b|0)==(C|0)){if((b+1|0)<0){break b}if(b>>>0<=1073741822){d=x<<6;b=(b&-32)+32|0;b=b>>>0>>0?d:b}else{b=2147483647}Gb(k,b);b=J[a+20>>2]}J[a+20>>2]=b+1;d=J[a+16>>2]+(b>>>3&536870908)|0;J[d>>2]=J[d>>2]|1<>>0<=1073741822){c=x<<6;b=(b&-32)+32|0;b=b>>>0>>0?c:b}else{b=2147483647}Gb(k,b);b=J[a+20>>2]}J[a+20>>2]=b+1;c=J[a+16>>2]+(b>>>3&536870908)|0;g=J[c>>2];T=c,U=El(b)&g,J[T>>2]=U;c=d;g=f}J[a+8>>2]=g;J[a+12>>2]=c}n=(l|0)<=(w|0)&E>>>0<=z>>>0|(l|0)<(w|0)}ea=i+80|0;return n}ua();B()}function Yd(a,b,c){var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0;g=J[b+48>>2];if(!g){b=ra(32);H[b+23|0]=0;c=K[1670]|K[1671]<<8|(K[1672]<<16|K[1673]<<24);e=K[1666]|K[1667]<<8|(K[1668]<<16|K[1669]<<24);H[b+15|0]=e;H[b+16|0]=e>>>8;H[b+17|0]=e>>>16;H[b+18|0]=e>>>24;H[b+19|0]=c;H[b+20|0]=c>>>8;H[b+21|0]=c>>>16;H[b+22|0]=c>>>24;c=K[1663]|K[1664]<<8|(K[1665]<<16|K[1666]<<24);e=K[1659]|K[1660]<<8|(K[1661]<<16|K[1662]<<24);H[b+8|0]=e;H[b+9|0]=e>>>8;H[b+10|0]=e>>>16;H[b+11|0]=e>>>24;H[b+12|0]=c;H[b+13|0]=c>>>8;H[b+14|0]=c>>>16;H[b+15|0]=c>>>24;c=K[1655]|K[1656]<<8|(K[1657]<<16|K[1658]<<24);e=K[1651]|K[1652]<<8|(K[1653]<<16|K[1654]<<24);H[b|0]=e;H[b+1|0]=e>>>8;H[b+2|0]=e>>>16;H[b+3|0]=e>>>24;H[b+4|0]=c;H[b+5|0]=c>>>8;H[b+6|0]=c>>>16;H[b+7|0]=c>>>24;J[a>>2]=-1;Ja(a+4|0,b,23);qa(b);return}h=J[b+52>>2];if(!h){e=ea-32|0;ea=e;d=ra(16);J[e+16>>2]=d;J[e+20>>2]=15;J[e+24>>2]=-2147483632;f=K[1587]|K[1588]<<8|(K[1589]<<16|K[1590]<<24);h=K[1583]|K[1584]<<8|(K[1585]<<16|K[1586]<<24);H[d+7|0]=h;H[d+8|0]=h>>>8;H[d+9|0]=h>>>16;H[d+10|0]=h>>>24;H[d+11|0]=f;H[d+12|0]=f>>>8;H[d+13|0]=f>>>16;H[d+14|0]=f>>>24;f=K[1580]|K[1581]<<8|(K[1582]<<16|K[1583]<<24);h=K[1576]|K[1577]<<8|(K[1578]<<16|K[1579]<<24);H[d|0]=h;H[d+1|0]=h>>>8;H[d+2|0]=h>>>16;H[d+3|0]=h>>>24;H[d+4|0]=f;H[d+5|0]=f>>>8;H[d+6|0]=f>>>16;H[d+7|0]=f>>>24;H[d+15|0]=0;h=b+4|0;j=Cb(h,e+16|0,-1);if(H[e+27|0]<0){qa(J[e+16>>2])}a:{b:{c:{d:{e:{switch(j+1|0){case 1:d=ra(56);J[d>>2]=0;J[d+4>>2]=0;J[d+48>>2]=0;J[d+52>>2]=0;J[d+40>>2]=0;J[d+44>>2]=0;J[d+32>>2]=0;J[d+36>>2]=0;J[d+24>>2]=0;J[d+28>>2]=0;J[d+16>>2]=0;J[d+20>>2]=0;J[d+8>>2]=0;J[d+12>>2]=0;d=mc(d);J[d>>2]=12672;break c;case 0:break e;default:break d}}if((eb(h)|0)!=10){break d}d=ra(56);J[d>>2]=0;J[d+4>>2]=0;J[d+48>>2]=0;J[d+52>>2]=0;J[d+40>>2]=0;J[d+44>>2]=0;J[d+32>>2]=0;J[d+36>>2]=0;J[d+24>>2]=0;J[d+28>>2]=0;J[d+16>>2]=0;J[d+20>>2]=0;J[d+8>>2]=0;J[d+12>>2]=0;d=mc(d);J[d>>2]=12672;break c}J[e+12>>2]=0;f:{i=J[g+12>>2];f=J[g+8>>2];if((i-f|0)>0){d=0;while(1){k=J[J[(d<<2)+f>>2]+28>>2];if(k-1>>>0>=6){if((k|0)!=9){break f}d=ra(32);J[e+16>>2]=d;J[e+20>>2]=17;J[e+24>>2]=-2147483616;H[d+16|0]=K[1261];f=K[1257]|K[1258]<<8|(K[1259]<<16|K[1260]<<24);i=K[1253]|K[1254]<<8|(K[1255]<<16|K[1256]<<24);H[d+8|0]=i;H[d+9|0]=i>>>8;H[d+10|0]=i>>>16;H[d+11|0]=i>>>24;H[d+12|0]=f;H[d+13|0]=f>>>8;H[d+14|0]=f>>>16;H[d+15|0]=f>>>24;f=K[1249]|K[1250]<<8|(K[1251]<<16|K[1252]<<24);i=K[1245]|K[1246]<<8|(K[1247]<<16|K[1248]<<24);H[d|0]=i;H[d+1|0]=i>>>8;H[d+2|0]=i>>>16;H[d+3|0]=i>>>24;H[d+4|0]=f;H[d+5|0]=f>>>8;H[d+6|0]=f>>>16;H[d+7|0]=f>>>24;H[d+17|0]=0;d=kb(h,e+12|0,e+16|0,-1);if(H[e+27|0]<0){qa(J[e+16>>2])}if((d|0)<=0){break f}f=J[g+8>>2];i=J[g+12>>2];d=J[e+12>>2]}d=d+1|0;J[e+12>>2]=d;if(i-f>>2>(d|0)){continue}break}}d=ra(56);J[d>>2]=0;J[d+4>>2]=0;J[d+48>>2]=0;J[d+52>>2]=0;J[d+40>>2]=0;J[d+44>>2]=0;J[d+32>>2]=0;J[d+36>>2]=0;J[d+24>>2]=0;J[d+28>>2]=0;J[d+16>>2]=0;J[d+20>>2]=0;J[d+8>>2]=0;J[d+12>>2]=0;d=mc(d);J[d>>2]=12564;break c}if((j|0)==1){break b}d=ra(56);J[d>>2]=0;J[d+4>>2]=0;J[d+48>>2]=0;J[d+52>>2]=0;J[d+40>>2]=0;J[d+44>>2]=0;J[d+32>>2]=0;J[d+36>>2]=0;J[d+24>>2]=0;J[d+28>>2]=0;J[d+16>>2]=0;J[d+20>>2]=0;J[d+8>>2]=0;J[d+12>>2]=0;d=mc(d);J[d>>2]=12672}J[d+4>>2]=g;Mf(a,d,h,c);if(!J[a>>2]){if(H[a+15|0]<0){qa(J[a+4>>2])}c=J[d+52>>2];J[b+44>>2]=0;J[b+40>>2]=c;J[a+8>>2]=0;J[a+12>>2]=0;J[a>>2]=0;J[a+4>>2]=0}ga[J[J[d>>2]+4>>2]](d);break a}b=ra(32);H[b+24|0]=0;c=K[1853]|K[1854]<<8|(K[1855]<<16|K[1856]<<24);d=K[1849]|K[1850]<<8|(K[1851]<<16|K[1852]<<24);H[b+16|0]=d;H[b+17|0]=d>>>8;H[b+18|0]=d>>>16;H[b+19|0]=d>>>24;H[b+20|0]=c;H[b+21|0]=c>>>8;H[b+22|0]=c>>>16;H[b+23|0]=c>>>24;c=K[1845]|K[1846]<<8|(K[1847]<<16|K[1848]<<24);d=K[1841]|K[1842]<<8|(K[1843]<<16|K[1844]<<24);H[b+8|0]=d;H[b+9|0]=d>>>8;H[b+10|0]=d>>>16;H[b+11|0]=d>>>24;H[b+12|0]=c;H[b+13|0]=c>>>8;H[b+14|0]=c>>>16;H[b+15|0]=c>>>24;c=K[1837]|K[1838]<<8|(K[1839]<<16|K[1840]<<24);d=K[1833]|K[1834]<<8|(K[1835]<<16|K[1836]<<24);H[b|0]=d;H[b+1|0]=d>>>8;H[b+2|0]=d>>>16;H[b+3|0]=d>>>24;H[b+4|0]=c;H[b+5|0]=c>>>8;H[b+6|0]=c>>>16;H[b+7|0]=c>>>24;J[a>>2]=-1;Ja(a+4|0,b,24);qa(b)}ea=e+32|0;return}d=ea-16|0;ea=d;e=ra(16);J[d>>2]=e;J[d+4>>2]=15;J[d+8>>2]=-2147483632;g=K[1587]|K[1588]<<8|(K[1589]<<16|K[1590]<<24);f=K[1583]|K[1584]<<8|(K[1585]<<16|K[1586]<<24);H[e+7|0]=f;H[e+8|0]=f>>>8;H[e+9|0]=f>>>16;H[e+10|0]=f>>>24;H[e+11|0]=g;H[e+12|0]=g>>>8;H[e+13|0]=g>>>16;H[e+14|0]=g>>>24;g=K[1580]|K[1581]<<8|(K[1582]<<16|K[1583]<<24);f=K[1576]|K[1577]<<8|(K[1578]<<16|K[1579]<<24);H[e|0]=f;H[e+1|0]=f>>>8;H[e+2|0]=f>>>16;H[e+3|0]=f>>>24;H[e+4|0]=g;H[e+5|0]=g>>>8;H[e+6|0]=g>>>16;H[e+7|0]=g>>>24;H[e+15|0]=0;g=b+4|0;e=Cb(g,d,-1);if(H[d+11|0]<0){qa(J[d>>2])}g:{h:{i:{switch(e+1|0){case 0:if((eb(g)|0)==10){break h}break;case 2:break i;default:break h}}e=Pf(ra(68));J[e+64>>2]=0;J[e>>2]=10404;break g}e=Pf(ra(64));J[e>>2]=12280}J[e+56>>2]=h;J[e+4>>2]=h;Mf(a,e,g,c);if(!J[a>>2]){if(H[a+15|0]<0){qa(J[a+4>>2])}J[b+40>>2]=J[e+52>>2];J[b+44>>2]=J[e+60>>2];J[a+8>>2]=0;J[a+12>>2]=0;J[a>>2]=0;J[a+4>>2]=0}ga[J[J[e>>2]+4>>2]](e);ea=d+16|0}function fh(a,b,c,d){var e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,C=0,D=0,E=0,F=0,G=0,I=0,L=0,M=0,N=0,O=0,P=0,Q=0,R=0,S=0,T=0,U=0;i=ea-80|0;ea=i;f=-1;a:{if((b|0)==-1){break a}g=J[a+32>>2];e=b+1|0;e=(e>>>0)%3|0?e:b-2|0;if((e|0)!=-1){f=J[J[g>>2]+(e<<2)>>2]}e=((b>>>0)%3|0?-1:2)+b|0;b=-1;b=(e|0)!=-1?J[J[g>>2]+(e<<2)>>2]:b;e=J[a+36>>2];g=J[e>>2];e=J[e+4>>2]-g>>2;if(e>>>0<=f>>>0|b>>>0>=e>>>0){break a}b:{c:{d:{e:{f:{g:{h:{i:{e=J[g+(b<<2)>>2];k=J[g+(f<<2)>>2];if((e|0)>=(d|0)|(k|0)>=(d|0)){break i}b=(e<<3)+c|0;q=J[b+4>>2];f=(k<<3)+c|0;g=J[f+4>>2];j=J[f>>2];A=J[b>>2];if(!((j|0)!=(A|0)|(g|0)!=(q|0))){J[a+8>>2]=j;J[a+12>>2]=g;break h}b=J[J[a+4>>2]+(d<<2)>>2];J[i+72>>2]=0;J[i+76>>2]=0;f=i- -64|0;J[f>>2]=0;J[f+4>>2]=0;J[i+56>>2]=0;J[i+60>>2]=0;f=J[a>>2];if(!K[f+84|0]){b=J[J[f+68>>2]+(b<<2)>>2]}ib(f,b,H[f+24|0],i+56|0);b=J[J[a+4>>2]+(k<<2)>>2];J[i+48>>2]=0;J[i+52>>2]=0;J[i+40>>2]=0;J[i+44>>2]=0;J[i+32>>2]=0;J[i+36>>2]=0;f=J[a>>2];if(!K[f+84|0]){b=J[J[f+68>>2]+(b<<2)>>2]}ib(f,b,H[f+24|0],i+32|0);b=J[J[a+4>>2]+(e<<2)>>2];J[i+24>>2]=0;J[i+28>>2]=0;J[i+16>>2]=0;J[i+20>>2]=0;J[i+8>>2]=0;J[i+12>>2]=0;f=J[a>>2];if(!K[f+84|0]){b=J[J[f+68>>2]+(b<<2)>>2]}ib(f,b,H[f+24|0],i+8|0);L=J[i+44>>2];b=J[i+16>>2];x=J[i+40>>2];f=x;h=J[i+20>>2]-(L+(b>>>0>>0)|0)|0;t=b-f|0;b=Al(t,h,t,h);f=fa;n=b;M=J[i+36>>2];b=J[i+8>>2];C=J[i+32>>2];e=C;o=J[i+12>>2]-(M+(b>>>0>>0)|0)|0;l=b-e|0;m=Al(l,o,l,o);b=n+m|0;e=fa+f|0;e=b>>>0>>0?e+1|0:e;n=b;N=J[i+52>>2];b=J[i+24>>2];D=J[i+48>>2];f=D;m=J[i+28>>2]-(N+(b>>>0>>0)|0)|0;u=b-f|0;p=Al(u,m,u,m);b=n+p|0;f=fa+e|0;s=b;p=b>>>0

>>0?f+1|0:f;if(!(b|p)){break i}F=Cl(-1,2147483647,s,p);b=j>>31;O=b;f=j;e=b>>31;j=b^e;b=f^e;j=j-((e>>>0>b>>>0)+e|0)|0;v=b-e|0;b=g>>31;G=b;k=b>>31;y=k^g;I=y-k|0;e=b>>31;b=(e^b)-((k>>>0>y>>>0)+e|0)|0;e=(j|0)==(b|0)&v>>>0>I>>>0|b>>>0>>0;k=e?v:I;r=fa;b=e?j:b;n=0;if((r|0)==(b|0)&k>>>0>F>>>0|b>>>0>r>>>0){break c}r=J[i+64>>2];b=r;v=J[i+68>>2];b=Al(b-x|0,v-((b>>>0>>0)+L|0)|0,t,h);e=fa;n=b;F=J[i+56>>2];b=F;y=J[i+60>>2];j=Al(b-C|0,y-((b>>>0>>0)+M|0)|0,l,o);b=n+j|0;e=fa+e|0;e=b>>>0>>0?e+1|0:e;j=b;I=J[i+72>>2];b=I;P=J[i+76>>2];k=Al(b-D|0,P-((b>>>0>>0)+N|0)|0,u,m);j=j+k|0;b=fa+e|0;E=j;k=j>>>0>>0?b+1|0:b;b=o>>31;e=b;j=b^l;b=(b^o)-(b+(b>>>0>j>>>0)|0)|0;n=j-e|0;e=h>>31;w=e^t;z=w-e|0;e=(h^e)-((e>>>0>w>>>0)+e|0)|0;j=(e|0)==(b|0)&n>>>0>z>>>0|b>>>0>e>>>0;n=j?n:z;b=j?b:e;e=m>>31;w=e^u;z=w-e|0;e=(e^m)-((e>>>0>w>>>0)+e|0)|0;j=(e|0)==(b|0)&n>>>0>z>>>0|b>>>0>e>>>0;z=Cl(-1,2147483647,j?n:z,j?b:e);w=fa;b=w;if(z>>>0>>0&(b|0)<=(k|0)|(b|0)<(k|0)){break d}Q=q-g|0;R=(q>>31)-((g>>>0>q>>>0)+G|0)|0;b=Al(E,k,Q,R);e=fa;q=Al(s,p,g,G);g=q+b|0;b=fa+e|0;b=g>>>0>>0?b+1|0:b;q=g;n=b;G=A-f|0;S=(A>>31)-((f>>>0>A>>>0)+O|0)|0;b=Al(E,k,G,S);g=fa;f=Al(f,O,s,p);b=f+b|0;e=fa+g|0;j=b;A=b>>>0>>0?e+1|0:e;g=1;f=0;b=r;t=Bl(Al(t,h,E,k),fa,s,p);h=t+x|0;e=fa+L|0;e=h>>>0>>0?e+1|0:e;e=v-((b>>>0>>0)+e|0)|0;b=b-h|0;b=Al(b,e,b,e);h=fa;e=F;r=b;o=Bl(Al(l,o,E,k),fa,s,p);l=o+C|0;b=fa+M|0;b=l>>>0>>0?b+1|0:b;b=y-((e>>>0>>0)+b|0)|0;e=e-l|0;l=Al(e,b,e,b);b=r+l|0;e=fa+h|0;h=b;l=b>>>0>>0?e+1|0:e;b=I;r=h;o=Bl(Al(u,m,E,k),fa,s,p);h=o+D|0;e=fa+N|0;e=h>>>0>>0?e+1|0:e;e=P-((b>>>0>>0)+e|0)|0;b=b-h|0;h=Al(b,e,b,e);e=r+h|0;b=fa+l|0;l=Al(e,e>>>0>>0?b+1|0:b,s,p);b=fa;h=b;if(!b&l>>>0<=1){break g}o=l;e=h;while(1){b=f<<1|g>>>31;g=g<<1;f=b;m=!e&o>>>0>7|(e|0)!=0;o=(e&3)<<30|o>>>2;e=e>>>2|0;if(m){continue}break}break f}if((d|0)>(k|0)){b=k<<1}else{if((d|0)<=0){J[a+8>>2]=0;J[a+12>>2]=0;break h}b=(d<<1)-2|0}b=(b<<2)+c|0;J[a+8>>2]=J[b>>2];J[a+12>>2]=J[b+4>>2]}n=1;break c}f=h;g=l;if(g-1|0){break e}}while(1){b=Cl(l,h,g,f)+g|0;f=f+fa|0;f=b>>>0>>0?f+1|0:f;g=(f&1)<<31|b>>>1;f=f>>>1|0;b=Al(g,f,g,f);e=fa;if((h|0)==(e|0)&b>>>0>l>>>0|e>>>0>h>>>0){continue}break}}l=a+16|0;x=J[a+24>>2];C=x<<5;b=J[a+20>>2];h=(d<<3)+c|0;d=J[h+4>>2];D=Al(g,f,G,S);c=D;r=fa;c=Bl(q-c|0,n-(r+(c>>>0>q>>>0)|0)|0,s,p);m=d-c|0;o=d>>31;e=o-(fa+(c>>>0>d>>>0)|0)|0;v=Al(m,e,m,e);F=fa;h=J[h>>2];e=h>>31;m=h;t=e;u=Al(g,f,Q,R);g=j+u|0;y=fa;f=A+y|0;g=Bl(g,g>>>0>>0?f+1|0:f,s,p);f=e-(fa+(g>>>0>h>>>0)|0)|0;e=h-g|0;h=Al(e,f,e,f);f=h+v|0;e=fa+F|0;v=f;h=f>>>0>>0?e+1|0:e;f=d;e=n+r|0;d=q+D|0;e=d>>>0>>0?e+1|0:e;d=Bl(d,e,s,p);e=o-(fa+(d>>>0>f>>>0)|0)|0;f=f-d|0;e=Al(f,e,f,e);q=fa;f=Bl(j-u|0,A-((j>>>0>>0)+y|0)|0,s,p);n=e;e=t-(fa+(f>>>0>m>>>0)|0)|0;m=m-f|0;j=Al(m,e,m,e);m=n+j|0;e=fa+q|0;e=j>>>0>m>>>0?e+1|0:e;j:{if((e|0)==(h|0)&m>>>0>v>>>0|e>>>0>h>>>0){if((b|0)==(C|0)){if((b+1|0)<0){break b}if(b>>>0<=1073741822){d=x<<6;b=(b&-32)+32|0;b=b>>>0>>0?d:b}else{b=2147483647}Gb(l,b);b=J[a+20>>2]}J[a+20>>2]=b+1;d=J[a+16>>2]+(b>>>3&536870908)|0;J[d>>2]=J[d>>2]|1<>>0<=1073741822){c=x<<6;b=(b&-32)+32|0;b=b>>>0>>0?c:b}else{b=2147483647}Gb(l,b);b=J[a+20>>2]}J[a+20>>2]=b+1;c=J[a+16>>2]+(b>>>3&536870908)|0;g=J[c>>2];T=c,U=El(b)&g,J[T>>2]=U;c=d;g=f}J[a+8>>2]=g;J[a+12>>2]=c}n=(k|0)<=(w|0)&E>>>0<=z>>>0|(k|0)<(w|0)}ea=i+80|0;return n}ua();B()}va();B()}function Xj(a){a=a|0;var b=0,c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0;e=ea-16|0;ea=e;f=J[a+48>>2];b=ra(32);J[e>>2]=b;J[e+4>>2]=20;J[e+8>>2]=-2147483616;c=K[1359]|K[1360]<<8|(K[1361]<<16|K[1362]<<24);H[b+16|0]=c;H[b+17|0]=c>>>8;H[b+18|0]=c>>>16;H[b+19|0]=c>>>24;c=K[1355]|K[1356]<<8|(K[1357]<<16|K[1358]<<24);d=K[1351]|K[1352]<<8|(K[1353]<<16|K[1354]<<24);H[b+8|0]=d;H[b+9|0]=d>>>8;H[b+10|0]=d>>>16;H[b+11|0]=d>>>24;H[b+12|0]=c;H[b+13|0]=c>>>8;H[b+14|0]=c>>>16;H[b+15|0]=c>>>24;c=K[1347]|K[1348]<<8|(K[1349]<<16|K[1350]<<24);d=K[1343]|K[1344]<<8|(K[1345]<<16|K[1346]<<24);H[b|0]=d;H[b+1|0]=d>>>8;H[b+2|0]=d>>>16;H[b+3|0]=d>>>24;H[b+4|0]=c;H[b+5|0]=c>>>8;H[b+6|0]=c>>>16;H[b+7|0]=c>>>24;H[b+20|0]=0;f=Gf(f+24|0,e);if(H[e+11|0]<0){qa(J[e>>2])}g=J[a+48>>2];b=ra(32);J[e>>2]=b;J[e+4>>2]=22;J[e+8>>2]=-2147483616;c=K[1338]|K[1339]<<8|(K[1340]<<16|K[1341]<<24);d=K[1334]|K[1335]<<8|(K[1336]<<16|K[1337]<<24);H[b+14|0]=d;H[b+15|0]=d>>>8;H[b+16|0]=d>>>16;H[b+17|0]=d>>>24;H[b+18|0]=c;H[b+19|0]=c>>>8;H[b+20|0]=c>>>16;H[b+21|0]=c>>>24;c=K[1332]|K[1333]<<8|(K[1334]<<16|K[1335]<<24);d=K[1328]|K[1329]<<8|(K[1330]<<16|K[1331]<<24);H[b+8|0]=d;H[b+9|0]=d>>>8;H[b+10|0]=d>>>16;H[b+11|0]=d>>>24;H[b+12|0]=c;H[b+13|0]=c>>>8;H[b+14|0]=c>>>16;H[b+15|0]=c>>>24;c=K[1324]|K[1325]<<8|(K[1326]<<16|K[1327]<<24);d=K[1320]|K[1321]<<8|(K[1322]<<16|K[1323]<<24);H[b|0]=d;H[b+1|0]=d>>>8;H[b+2|0]=d>>>16;H[b+3|0]=d>>>24;H[b+4|0]=c;H[b+5|0]=c>>>8;H[b+6|0]=c>>>16;H[b+7|0]=c>>>24;H[b+22|0]=0;g=Gf(g+24|0,e);if(H[e+11|0]<0){qa(J[e>>2])}b=J[a+64>>2];J[a+64>>2]=0;if(b){ga[J[J[b>>2]+4>>2]](b)}b=J[a+56>>2];h=J[b+100>>2];i=J[a+48>>2];j=J[b+96>>2];b=ra(32);J[e>>2]=b;J[e+4>>2]=18;J[e+8>>2]=-2147483616;c=K[1566]|K[1567]<<8;H[b+16|0]=c;H[b+17|0]=c>>>8;c=K[1562]|K[1563]<<8|(K[1564]<<16|K[1565]<<24);d=K[1558]|K[1559]<<8|(K[1560]<<16|K[1561]<<24);H[b+8|0]=d;H[b+9|0]=d>>>8;H[b+10|0]=d>>>16;H[b+11|0]=d>>>24;H[b+12|0]=c;H[b+13|0]=c>>>8;H[b+14|0]=c>>>16;H[b+15|0]=c>>>24;c=K[1554]|K[1555]<<8|(K[1556]<<16|K[1557]<<24);d=K[1550]|K[1551]<<8|(K[1552]<<16|K[1553]<<24);H[b|0]=d;H[b+1|0]=d>>>8;H[b+2|0]=d>>>16;H[b+3|0]=d>>>24;H[b+4|0]=c;H[b+5|0]=c>>>8;H[b+6|0]=c>>>16;H[b+7|0]=c>>>24;H[b+18|0]=0;b=Cb(i,e,-1);if(H[e+11|0]<0){qa(J[e>>2])}c=(h-j|0)/12|0;a:{b:{c:{d:{e:{f:{g:{h:{switch(b+1|0){case 1:break f;case 3:break g;case 0:break h;default:break c}}if(!f){break g}if(c>>>0<1e3|(eb(J[a+48>>2])|0)>4|g^1){break e}}b=J[a+44>>2];H[e|0]=2;c=J[b+20>>2];if(!J[b+16>>2]&(c|0)<=0|(c|0)<0){wa(b,J[b+4>>2],e,e+1|0)}b=ra(360);J[b+4>>2]=0;J[b+8>>2]=0;J[b+72>>2]=0;J[b+76>>2]=0;J[b>>2]=10584;J[b+12>>2]=0;J[b+16>>2]=0;J[b+20>>2]=0;J[b+24>>2]=0;J[b+28>>2]=0;J[b+32>>2]=0;J[b+36>>2]=0;J[b+40>>2]=0;J[b+44>>2]=0;J[b+48>>2]=0;J[b+52>>2]=0;J[b+56>>2]=0;J[b+60>>2]=0;J[b+64>>2]=0;J[b+80>>2]=0;J[b+84>>2]=0;J[b+88>>2]=0;J[b+92>>2]=0;J[b+96>>2]=0;J[b+100>>2]=0;J[b+104>>2]=0;J[b+108>>2]=0;J[b+112>>2]=0;J[b+116>>2]=0;J[b+120>>2]=0;J[b+124>>2]=0;J[b+128>>2]=0;J[b+132>>2]=0;J[b+136>>2]=1065353216;J[b+156>>2]=0;J[b+160>>2]=0;J[b+148>>2]=0;J[b+152>>2]=0;J[b+140>>2]=0;J[b+144>>2]=0;J[b+168>>2]=0;J[b+172>>2]=0;J[b+164>>2]=-1;J[b+176>>2]=0;J[b+180>>2]=0;J[b+184>>2]=0;J[b+188>>2]=0;J[b+192>>2]=0;c=b+200|0;J[c>>2]=0;J[c+4>>2]=0;J[c+24>>2]=0;J[c+28>>2]=0;J[c+16>>2]=0;J[c+20>>2]=0;J[c+8>>2]=0;J[c+12>>2]=0;c=b+232|0;J[c>>2]=0;J[c+4>>2]=0;H[c+24|0]=0;J[c+16>>2]=0;J[c+20>>2]=0;J[c+8>>2]=0;J[c+12>>2]=0;J[b+304>>2]=0;J[b+308>>2]=0;J[b+296>>2]=0;J[b+300>>2]=0;J[b+288>>2]=0;J[b+292>>2]=0;J[b+280>>2]=0;J[b+284>>2]=0;J[b+272>>2]=0;J[b+276>>2]=0;J[b+264>>2]=0;J[b+268>>2]=0;H[b+352|0]=0;J[b+344>>2]=0;J[b+336>>2]=0;J[b+340>>2]=0;J[b+328>>2]=2;J[b+332>>2]=7;J[b+320>>2]=-1;J[b+324>>2]=0;J[b+312>>2]=0;J[b+316>>2]=-1;break d}if(!f){break c}}b=J[a+44>>2];H[e|0]=0;c=J[b+20>>2];if(!J[b+16>>2]&(c|0)<=0|(c|0)<0){wa(b,J[b+4>>2],e,e+1|0)}b=ra(296);J[b+4>>2]=0;J[b+8>>2]=0;J[b+72>>2]=0;J[b+76>>2]=0;J[b>>2]=10532;J[b+12>>2]=0;J[b+16>>2]=0;J[b+20>>2]=0;J[b+24>>2]=0;J[b+28>>2]=0;J[b+32>>2]=0;J[b+36>>2]=0;J[b+40>>2]=0;J[b+44>>2]=0;J[b+48>>2]=0;J[b+52>>2]=0;J[b+56>>2]=0;J[b+60>>2]=0;J[b+64>>2]=0;J[b+80>>2]=0;J[b+84>>2]=0;J[b+88>>2]=0;J[b+92>>2]=0;J[b+96>>2]=0;J[b+100>>2]=0;J[b+104>>2]=0;J[b+108>>2]=0;J[b+112>>2]=0;J[b+116>>2]=0;J[b+120>>2]=0;J[b+124>>2]=0;J[b+128>>2]=0;J[b+132>>2]=0;J[b+136>>2]=1065353216;J[b+156>>2]=0;J[b+160>>2]=0;J[b+148>>2]=0;J[b+152>>2]=0;J[b+140>>2]=0;J[b+144>>2]=0;J[b+168>>2]=0;J[b+172>>2]=0;J[b+164>>2]=-1;J[b+176>>2]=0;J[b+180>>2]=0;J[b+184>>2]=0;J[b+188>>2]=0;J[b+192>>2]=0;c=b+200|0;J[c>>2]=0;J[c+4>>2]=0;J[c+24>>2]=0;J[c+28>>2]=0;J[c+16>>2]=0;J[c+20>>2]=0;J[c+8>>2]=0;J[c+12>>2]=0;c=b+232|0;J[c>>2]=0;J[c+4>>2]=0;H[c+24|0]=0;J[c+16>>2]=0;J[c+20>>2]=0;J[c+8>>2]=0;J[c+12>>2]=0;H[b+288|0]=0;J[b+280>>2]=0;J[b+284>>2]=0;J[b+272>>2]=0;J[b+276>>2]=0;J[b+264>>2]=0;J[b+268>>2]=0}c=J[a+64>>2];J[a+64>>2]=b;if(!c){break b}ga[J[J[c>>2]+4>>2]](c)}b=J[a+64>>2];if(b){break b}a=0;break a}a=ga[J[J[b>>2]+8>>2]](b,a)|0}ea=e+16|0;return a|0}function Zc(a,b,c,d){var e=0,f=0,g=0,h=0,i=0,j=0,k=Q(0),l=0,m=Q(0),n=0;a:{b:{if(!d){break b}c:{switch(J[a+28>>2]-1|0){case 0:e=K[a+24|0];f=c&255;if(e>>>0>>0?e:f){g=J[a>>2];e=J[g>>2];b=J[a+48>>2]+Al(J[a+40>>2],J[a+44>>2],b,0)|0;b=e+b|0;g=J[g+4>>2];while(1){if(b>>>0>=g>>>0){break b}J[(h<<2)+d>>2]=H[b|0];b=b+1|0;h=h+1|0;e=K[a+24|0];if(h>>>0<(e>>>0>>0?e:f)>>>0){continue}break}}i=1;if(e>>>0>=f>>>0){break b}break a;case 1:e=K[a+24|0];f=c&255;if(e>>>0>>0?e:f){g=J[a>>2];e=J[g>>2];b=J[a+48>>2]+Al(J[a+40>>2],J[a+44>>2],b,0)|0;b=e+b|0;g=J[g+4>>2];while(1){if(b>>>0>=g>>>0){break b}J[(h<<2)+d>>2]=K[b|0];b=b+1|0;h=h+1|0;e=K[a+24|0];if(h>>>0<(e>>>0>>0?e:f)>>>0){continue}break}}i=1;if(e>>>0>=f>>>0){break b}break a;case 2:e=K[a+24|0];f=c&255;if(e>>>0>>0?e:f){g=J[a>>2];e=J[g>>2];b=J[a+48>>2]+Al(J[a+40>>2],J[a+44>>2],b,0)|0;b=e+b|0;g=J[g+4>>2];while(1){if(b>>>0>=g>>>0){break b}J[(h<<2)+d>>2]=I[b>>1];b=b+2|0;h=h+1|0;e=K[a+24|0];if(h>>>0<(e>>>0>>0?e:f)>>>0){continue}break}}i=1;if(e>>>0>=f>>>0){break b}break a;case 3:e=K[a+24|0];f=c&255;if(e>>>0>>0?e:f){g=J[a>>2];e=J[g>>2];b=J[a+48>>2]+Al(J[a+40>>2],J[a+44>>2],b,0)|0;b=e+b|0;g=J[g+4>>2];while(1){if(b>>>0>=g>>>0){break b}J[(h<<2)+d>>2]=L[b>>1];b=b+2|0;h=h+1|0;e=K[a+24|0];if(h>>>0<(e>>>0>>0?e:f)>>>0){continue}break}}i=1;if(e>>>0>=f>>>0){break b}break a;case 4:e=K[a+24|0];f=c&255;if(e>>>0>>0?e:f){g=J[a>>2];e=J[g>>2];b=J[a+48>>2]+Al(J[a+40>>2],J[a+44>>2],b,0)|0;b=e+b|0;g=J[g+4>>2];while(1){if(b>>>0>=g>>>0){break b}J[(h<<2)+d>>2]=J[b>>2];b=b+4|0;h=h+1|0;e=K[a+24|0];if(h>>>0<(e>>>0>>0?e:f)>>>0){continue}break}}i=1;if(e>>>0>=f>>>0){break b}break a;case 5:e=K[a+24|0];f=c&255;if(e>>>0>>0?e:f){g=J[a>>2];e=J[g>>2];b=J[a+48>>2]+Al(J[a+40>>2],J[a+44>>2],b,0)|0;b=e+b|0;g=J[g+4>>2];while(1){if(b>>>0>=g>>>0){return 0}e=J[b>>2];if((e|0)<0){break b}J[(h<<2)+d>>2]=e;b=b+4|0;h=h+1|0;e=K[a+24|0];if(h>>>0<(e>>>0>>0?e:f)>>>0){continue}break}}i=1;if(e>>>0>=f>>>0){break b}break a;case 6:e=K[a+24|0];f=c&255;if(e>>>0>>0?e:f){g=J[a>>2];e=J[g>>2];b=J[a+48>>2]+Al(J[a+40>>2],J[a+44>>2],b,0)|0;b=e+b|0;g=J[g+4>>2];while(1){if(b>>>0>=g>>>0){break b}l=J[b>>2];if((J[b+4>>2]-(l>>>0<2147483648)|0)!=-1){break b}J[(h<<2)+d>>2]=l;b=b+8|0;h=h+1|0;e=K[a+24|0];if(h>>>0<(e>>>0>>0?e:f)>>>0){continue}break}}i=1;if(e>>>0>=f>>>0){break b}break a;case 7:e=K[a+24|0];f=c&255;if(e>>>0>>0?e:f){g=J[a>>2];e=J[g>>2];b=J[a+48>>2]+Al(J[a+40>>2],J[a+44>>2],b,0)|0;b=e+b|0;g=J[g+4>>2];while(1){if(b>>>0>=g>>>0){break b}e=J[b+4>>2];l=J[b>>2];if(!e&l>>>0>2147483647|e){break b}J[(h<<2)+d>>2]=l;b=b+8|0;h=h+1|0;e=K[a+24|0];if(h>>>0<(e>>>0>>0?e:f)>>>0){continue}break}}i=1;if(e>>>0>=f>>>0){break b}break a;case 8:d:{e:{e=K[a+24|0];c=c&255;if(!(c>>>0>e>>>0?e:c)){break e}i=J[a>>2];g=J[i>>2];b=J[a+48>>2]+Al(J[a+40>>2],J[a+44>>2],b,0)|0;h=g+b|0;f=J[i+4>>2];e=f-g|0;if(!K[a+32|0]){i=0;if((b|0)>=(e|0)){break d}b=0;while(1){k=N[h>>2];if(k=Q(2147483648)){break d}g=(b<<2)+d|0;if(m>2]=e;b=b+1|0;e=K[a+24|0];if(b>>>0>=(c>>>0>e>>>0?e:c)>>>0){break e}h=h+4|0;if(f>>>0>h>>>0){continue}break}break d}i=0;if((b|0)>=(e|0)){break d}b=0;while(1){k=N[h>>2];if(k=Q(2147483648))){break d}if(kQ(1)){break d}g=(b<<2)+d|0;j=V(+k*2147483647+.5);f:{if(R(j)<2147483648){e=~~j;break f}e=-2147483648}J[g>>2]=e;b=b+1|0;e=K[a+24|0];if(b>>>0>=(c>>>0>e>>>0?e:c)>>>0){break e}h=h+4|0;if(f>>>0>h>>>0){continue}break}break d}i=1;if(c>>>0<=e>>>0){break d}sa((e<<2)+d|0,0,c-e<<2)}return i;case 9:g:{h:{e=K[a+24|0];c=c&255;if(!(c>>>0>e>>>0?e:c)){break h}i=J[a>>2];g=J[i>>2];b=J[a+48>>2]+Al(J[a+40>>2],J[a+44>>2],b,0)|0;h=g+b|0;f=J[i+4>>2];e=f-g|0;if(!K[a+32|0]){i=0;if((b|0)>=(e|0)){break g}b=0;while(1){j=O[h>>3];if(j<-2147483648|j!=j){break g}n=R(j);if(n==_|j>=2147483647){break g}g=(b<<2)+d|0;if(n<2147483648){e=~~j}else{e=-2147483648}J[g>>2]=e;b=b+1|0;e=K[a+24|0];if(b>>>0>=(c>>>0>e>>>0?e:c)>>>0){break h}h=h+8|0;if(f>>>0>h>>>0){continue}break}break g}i=0;if((b|0)>=(e|0)){break g}b=0;while(1){j=O[h>>3];if(j<-2147483648|j!=j|(R(j)==_|j>=2147483647)){break g}if(j<0|j>1){break g}g=(b<<2)+d|0;j=V(j*2147483647+.5);i:{if(R(j)<2147483648){e=~~j;break i}e=-2147483648}J[g>>2]=e;b=b+1|0;e=K[a+24|0];if(b>>>0>=(c>>>0>e>>>0?e:c)>>>0){break h}h=h+8|0;if(f>>>0>h>>>0){continue}break}break g}i=1;if(c>>>0<=e>>>0){break g}sa((e<<2)+d|0,0,c-e<<2)}return i;case 10:break c;default:break b}}e=K[a+24|0];f=c&255;if(e>>>0>>0?e:f){g=J[a>>2];e=J[g>>2];b=J[a+48>>2]+Al(J[a+40>>2],J[a+44>>2],b,0)|0;b=e+b|0;g=J[g+4>>2];while(1){if(b>>>0>=g>>>0){break b}J[(h<<2)+d>>2]=K[b|0];b=b+1|0;h=h+1|0;e=K[a+24|0];if(h>>>0<(e>>>0>>0?e:f)>>>0){continue}break}}i=1;if(e>>>0>=f>>>0){break b}sa((e<<2)+d|0,0,(c&255)-e<<2)}return i}sa((e<<2)+d|0,0,(c&255)-e<<2);return 1}function Xc(a,b){var c=0,d=0,e=0,f=0,g=0,h=0;e=ea-16|0;ea=e;J[a+8>>2]=b;J[a>>2]=0;d=a+12|0;J[d>>2]=0;J[d+4>>2]=0;J[d+24>>2]=0;J[d+28>>2]=0;J[d+16>>2]=0;J[d+20>>2]=0;J[d+8>>2]=0;J[d+12>>2]=0;c=d+32|0;J[c>>2]=0;J[c+4>>2]=0;J[c+24>>2]=0;J[c+28>>2]=0;J[c+16>>2]=0;J[c+20>>2]=0;J[c+8>>2]=0;J[c+12>>2]=0;c=d- -64|0;J[c>>2]=0;J[c+4>>2]=0;J[c+24>>2]=0;J[c+28>>2]=0;J[c+16>>2]=0;J[c+20>>2]=0;J[c+8>>2]=0;J[c+12>>2]=0;c=d+96|0;J[c>>2]=0;J[c+4>>2]=0;J[c+24>>2]=0;J[c+28>>2]=0;J[c+16>>2]=0;J[c+20>>2]=0;J[c+8>>2]=0;J[c+12>>2]=0;c=d+128|0;J[c>>2]=0;J[c+4>>2]=0;J[c+24>>2]=0;J[c+28>>2]=0;J[c+16>>2]=0;J[c+20>>2]=0;J[c+8>>2]=0;J[c+12>>2]=0;c=d+160|0;J[c>>2]=0;J[c+4>>2]=0;J[c+24>>2]=0;J[c+28>>2]=0;J[c+16>>2]=0;J[c+20>>2]=0;J[c+8>>2]=0;J[c+12>>2]=0;c=d+192|0;J[c>>2]=0;J[c+4>>2]=0;J[c+24>>2]=0;J[c+28>>2]=0;J[c+16>>2]=0;J[c+20>>2]=0;J[c+8>>2]=0;J[c+12>>2]=0;c=d+224|0;J[c>>2]=0;J[c+4>>2]=0;J[c+24>>2]=0;J[c+28>>2]=0;J[c+16>>2]=0;J[c+20>>2]=0;J[c+8>>2]=0;J[c+12>>2]=0;c=d+256|0;J[c>>2]=0;J[c+4>>2]=0;J[c+24>>2]=0;J[c+28>>2]=0;J[c+16>>2]=0;J[c+20>>2]=0;J[c+8>>2]=0;J[c+12>>2]=0;c=d+288|0;J[c>>2]=0;J[c+4>>2]=0;J[c+24>>2]=0;J[c+28>>2]=0;J[c+16>>2]=0;J[c+20>>2]=0;J[c+8>>2]=0;J[c+12>>2]=0;c=d+320|0;J[c>>2]=0;J[c+4>>2]=0;J[c+24>>2]=0;J[c+28>>2]=0;J[c+16>>2]=0;J[c+20>>2]=0;J[c+8>>2]=0;J[c+12>>2]=0;c=d+352|0;J[c>>2]=0;J[c+4>>2]=0;J[c+24>>2]=0;J[c+28>>2]=0;J[c+16>>2]=0;J[c+20>>2]=0;J[c+8>>2]=0;J[c+12>>2]=0;c=d+384|0;J[c>>2]=0;J[c+4>>2]=0;J[c+24>>2]=0;J[c+28>>2]=0;J[c+16>>2]=0;J[c+20>>2]=0;J[c+8>>2]=0;J[c+12>>2]=0;c=d+416|0;J[c>>2]=0;J[c+4>>2]=0;J[c+24>>2]=0;J[c+28>>2]=0;J[c+16>>2]=0;J[c+20>>2]=0;J[c+8>>2]=0;J[c+12>>2]=0;c=d+448|0;J[c>>2]=0;J[c+4>>2]=0;J[c+24>>2]=0;J[c+28>>2]=0;J[c+16>>2]=0;J[c+20>>2]=0;J[c+8>>2]=0;J[c+12>>2]=0;c=d+480|0;J[c>>2]=0;J[c+4>>2]=0;J[c+24>>2]=0;J[c+28>>2]=0;J[c+16>>2]=0;J[c+20>>2]=0;J[c+8>>2]=0;J[c+12>>2]=0;c=d+512|0;J[c>>2]=0;J[c+4>>2]=0;J[c+24>>2]=0;J[c+28>>2]=0;J[c+16>>2]=0;J[c+20>>2]=0;J[c+8>>2]=0;J[c+12>>2]=0;c=d+544|0;J[c>>2]=0;J[c+4>>2]=0;J[c+24>>2]=0;J[c+28>>2]=0;J[c+16>>2]=0;J[c+20>>2]=0;J[c+8>>2]=0;J[c+12>>2]=0;c=d+576|0;J[c>>2]=0;J[c+4>>2]=0;J[c+24>>2]=0;J[c+28>>2]=0;J[c+16>>2]=0;J[c+20>>2]=0;J[c+8>>2]=0;J[c+12>>2]=0;c=d+608|0;J[c>>2]=0;J[c+4>>2]=0;J[c+24>>2]=0;J[c+28>>2]=0;J[c+16>>2]=0;J[c+20>>2]=0;J[c+8>>2]=0;J[c+12>>2]=0;c=d+640|0;J[c>>2]=0;J[c+4>>2]=0;J[c+24>>2]=0;J[c+28>>2]=0;J[c+16>>2]=0;J[c+20>>2]=0;J[c+8>>2]=0;J[c+12>>2]=0;c=d+672|0;J[c>>2]=0;J[c+4>>2]=0;J[c+24>>2]=0;J[c+28>>2]=0;J[c+16>>2]=0;J[c+20>>2]=0;J[c+8>>2]=0;J[c+12>>2]=0;c=d+704|0;J[c>>2]=0;J[c+4>>2]=0;J[c+24>>2]=0;J[c+28>>2]=0;J[c+16>>2]=0;J[c+20>>2]=0;J[c+8>>2]=0;J[c+12>>2]=0;c=d+736|0;J[c>>2]=0;J[c+4>>2]=0;J[c+24>>2]=0;J[c+28>>2]=0;J[c+16>>2]=0;J[c+20>>2]=0;J[c+8>>2]=0;J[c+12>>2]=0;c=d+768|0;J[c>>2]=0;J[c+4>>2]=0;J[c+24>>2]=0;J[c+28>>2]=0;J[c+16>>2]=0;J[c+20>>2]=0;J[c+8>>2]=0;J[c+12>>2]=0;c=d+800|0;J[c>>2]=0;J[c+4>>2]=0;J[c+24>>2]=0;J[c+28>>2]=0;J[c+16>>2]=0;J[c+20>>2]=0;J[c+8>>2]=0;J[c+12>>2]=0;c=d+832|0;J[c>>2]=0;J[c+4>>2]=0;J[c+24>>2]=0;J[c+28>>2]=0;J[c+16>>2]=0;J[c+20>>2]=0;J[c+8>>2]=0;J[c+12>>2]=0;c=d+864|0;J[c>>2]=0;J[c+4>>2]=0;J[c+24>>2]=0;J[c+28>>2]=0;J[c+16>>2]=0;J[c+20>>2]=0;J[c+8>>2]=0;J[c+12>>2]=0;c=d+896|0;J[c>>2]=0;J[c+4>>2]=0;J[c+24>>2]=0;J[c+28>>2]=0;J[c+16>>2]=0;J[c+20>>2]=0;J[c+8>>2]=0;J[c+12>>2]=0;c=d+928|0;J[c>>2]=0;J[c+4>>2]=0;J[c+24>>2]=0;J[c+28>>2]=0;J[c+16>>2]=0;J[c+20>>2]=0;J[c+8>>2]=0;J[c+12>>2]=0;c=d+960|0;J[c>>2]=0;J[c+4>>2]=0;J[c+24>>2]=0;J[c+28>>2]=0;J[c+16>>2]=0;J[c+20>>2]=0;J[c+8>>2]=0;J[c+12>>2]=0;d=d+992|0;J[d>>2]=0;J[d+4>>2]=0;J[d+24>>2]=0;J[d+28>>2]=0;J[d+16>>2]=0;J[d+20>>2]=0;J[d+8>>2]=0;J[d+12>>2]=0;d=a+1036|0;J[d>>2]=0;J[d+4>>2]=0;J[d+24>>2]=0;J[d+28>>2]=0;J[d+16>>2]=0;J[d+20>>2]=0;J[d+8>>2]=0;J[d+12>>2]=0;d=a+1068|0;J[d>>2]=0;J[d+4>>2]=0;J[d+16>>2]=0;J[d+8>>2]=0;J[d+12>>2]=0;d=a+1088|0;J[d>>2]=0;J[d+4>>2]=0;J[d+16>>2]=0;J[d+8>>2]=0;J[d+12>>2]=0;d=a+1108|0;J[d>>2]=0;J[d+4>>2]=0;J[d+16>>2]=0;J[d+8>>2]=0;J[d+12>>2]=0;J[a+1136>>2]=0;J[a+1128>>2]=0;J[a+1132>>2]=0;h=a+1164|0;a:{b:{if(b){if(b>>>0<1073741824){break b}ua();B()}J[a+1140>>2]=0;J[a+1144>>2]=0;d=a+1156|0;J[d>>2]=0;J[d+4>>2]=0;d=a+1148|0;J[d>>2]=0;J[d+4>>2]=0;J[e+8>>2]=0;J[e>>2]=0;J[e+4>>2]=0;d=1;break a}d=b<<2;c=ra(d);J[a+1128>>2]=c;f=c+d|0;J[a+1136>>2]=f;sa(c,0,d);g=a+1148|0;J[g>>2]=0;J[a+1140>>2]=0;J[a+1144>>2]=0;J[a+1132>>2]=f;c=ra(d);J[a+1140>>2]=c;f=c+d|0;J[g>>2]=f;sa(c,0,d);g=a+1160|0;J[g>>2]=0;J[a+1152>>2]=0;J[a+1156>>2]=0;J[a+1144>>2]=f;c=ra(d);J[a+1152>>2]=c;f=c+d|0;J[g>>2]=f;sa(c,0,d);J[a+1156>>2]=f;c=ra(d);J[e>>2]=c;f=c+d|0;J[e+8>>2]=f;sa(c,0,d);J[e+4>>2]=f;d=b<<5|1}Lb(h,d,e);c=J[e>>2];if(c){J[e+4>>2]=c;qa(c)}J[e+8>>2]=0;J[e>>2]=0;J[e+4>>2]=0;if(b){b=b<<2;c=ra(b);J[e>>2]=c;f=b+c|0;J[e+8>>2]=f;sa(c,0,b);J[e+4>>2]=f}Lb(a+1176|0,d,e);b=J[e>>2];if(b){J[e+4>>2]=b;qa(b)}ea=e+16|0;return a}function ib(a,b,c,d){var e=0,f=0,g=0,h=0,i=0,j=Q(0),k=0,l=0,m=0,n=Q(0),o=0;a:{if(!d){break a}b:{c:{switch(J[a+28>>2]-1|0){case 0:e=K[a+24|0];f=c&255;if(e>>>0>>0?e:f){e=J[a>>2];h=J[e>>2];b=J[a+48>>2]+Al(J[a+40>>2],J[a+44>>2],b,0)|0;b=h+b|0;h=J[e+4>>2];while(1){if(b>>>0>=h>>>0){break a}e=(g<<3)+d|0;i=H[b|0];J[e>>2]=i;J[e+4>>2]=i>>31;b=b+1|0;g=g+1|0;e=K[a+24|0];if(g>>>0<(e>>>0>>0?e:f)>>>0){continue}break}}if(e>>>0>=f>>>0){break a}d=(e<<3)+d|0;a=(c&255)-e|0;break b;case 1:e=K[a+24|0];f=c&255;if(e>>>0>>0?e:f){e=J[a>>2];h=J[e>>2];b=J[a+48>>2]+Al(J[a+40>>2],J[a+44>>2],b,0)|0;b=h+b|0;h=J[e+4>>2];while(1){if(b>>>0>=h>>>0){break a}e=(g<<3)+d|0;J[e>>2]=K[b|0];J[e+4>>2]=0;b=b+1|0;g=g+1|0;e=K[a+24|0];if(g>>>0<(e>>>0>>0?e:f)>>>0){continue}break}}if(e>>>0>=f>>>0){break a}d=(e<<3)+d|0;a=(c&255)-e|0;break b;case 2:e=K[a+24|0];f=c&255;if(e>>>0>>0?e:f){e=J[a>>2];h=J[e>>2];b=J[a+48>>2]+Al(J[a+40>>2],J[a+44>>2],b,0)|0;b=h+b|0;h=J[e+4>>2];while(1){if(b>>>0>=h>>>0){break a}e=(g<<3)+d|0;i=I[b>>1];J[e>>2]=i;J[e+4>>2]=i>>31;b=b+2|0;g=g+1|0;e=K[a+24|0];if(g>>>0<(e>>>0>>0?e:f)>>>0){continue}break}}if(e>>>0>=f>>>0){break a}d=(e<<3)+d|0;a=(c&255)-e|0;break b;case 3:e=K[a+24|0];f=c&255;if(e>>>0>>0?e:f){e=J[a>>2];h=J[e>>2];b=J[a+48>>2]+Al(J[a+40>>2],J[a+44>>2],b,0)|0;b=h+b|0;h=J[e+4>>2];while(1){if(b>>>0>=h>>>0){break a}e=(g<<3)+d|0;J[e>>2]=L[b>>1];J[e+4>>2]=0;b=b+2|0;g=g+1|0;e=K[a+24|0];if(g>>>0<(e>>>0>>0?e:f)>>>0){continue}break}}if(e>>>0>=f>>>0){break a}d=(e<<3)+d|0;a=(c&255)-e|0;break b;case 4:e=K[a+24|0];f=c&255;if(e>>>0>>0?e:f){e=J[a>>2];h=J[e>>2];b=J[a+48>>2]+Al(J[a+40>>2],J[a+44>>2],b,0)|0;b=h+b|0;h=J[e+4>>2];while(1){if(b>>>0>=h>>>0){break a}e=(g<<3)+d|0;i=J[b>>2];J[e>>2]=i;J[e+4>>2]=i>>31;b=b+4|0;g=g+1|0;e=K[a+24|0];if(g>>>0<(e>>>0>>0?e:f)>>>0){continue}break}}if(e>>>0>=f>>>0){break a}d=(e<<3)+d|0;a=(c&255)-e|0;break b;case 5:e=K[a+24|0];f=c&255;if(e>>>0>>0?e:f){e=J[a>>2];h=J[e>>2];b=J[a+48>>2]+Al(J[a+40>>2],J[a+44>>2],b,0)|0;b=h+b|0;h=J[e+4>>2];while(1){if(b>>>0>=h>>>0){break a}e=(g<<3)+d|0;J[e>>2]=J[b>>2];J[e+4>>2]=0;b=b+4|0;g=g+1|0;e=K[a+24|0];if(g>>>0<(e>>>0>>0?e:f)>>>0){continue}break}}if(e>>>0>=f>>>0){break a}d=(e<<3)+d|0;a=(c&255)-e|0;break b;case 6:e=K[a+24|0];f=c&255;if(e>>>0>>0?e:f){e=J[a>>2];h=J[e>>2];b=J[a+48>>2]+Al(J[a+40>>2],J[a+44>>2],b,0)|0;b=h+b|0;h=J[e+4>>2];while(1){if(b>>>0>=h>>>0){break a}i=J[b+4>>2];e=(g<<3)+d|0;J[e>>2]=J[b>>2];J[e+4>>2]=i;b=b+8|0;g=g+1|0;e=K[a+24|0];if(g>>>0<(e>>>0>>0?e:f)>>>0){continue}break}}if(e>>>0>=f>>>0){break a}d=(e<<3)+d|0;a=(c&255)-e|0;break b;case 7:e=K[a+24|0];f=c&255;if(e>>>0>>0?e:f){e=J[a>>2];h=J[e>>2];b=J[a+48>>2]+Al(J[a+40>>2],J[a+44>>2],b,0)|0;b=h+b|0;h=J[e+4>>2];while(1){if(b>>>0>=h>>>0){break a}e=J[b>>2];i=J[b+4>>2];if((i|0)<0){break a}l=(g<<3)+d|0;J[l>>2]=e;J[l+4>>2]=i;b=b+8|0;g=g+1|0;e=K[a+24|0];if(g>>>0<(e>>>0>>0?e:f)>>>0){continue}break}}if(e>>>0>=f>>>0){break a}d=(e<<3)+d|0;a=(c&255)-e|0;break b;case 8:d:{e=K[a+24|0];f=c&255;if(!(e>>>0>>0?e:f)){break d}if(K[a+32|0]){break a}b=J[a+48>>2]+Al(J[a+40>>2],J[a+44>>2],b,0)|0;e=J[a>>2];i=J[e+4>>2];e=J[e>>2];if((b|0)>=(i-e|0)){break a}g=b+e|0;h=c&255;b=0;while(1){j=N[g>>2];if(j>=Q(0x8000000000000000)|j=Q(1)?~~(j>Q(0)?Q(T(Q(V(Q(j*Q(2.3283064365386963e-10)))),Q(4294967296))):Q(W(Q(Q(j-Q(~~j>>>0>>>0))*Q(2.3283064365386963e-10)))))>>>0:0;m=~~j>>>0;break e}l=-2147483648;m=0}J[e>>2]=m;J[e+4>>2]=l;b=b+1|0;e=K[a+24|0];if(b>>>0>=(e>>>0>>0?e:h)>>>0){break d}g=g+4|0;if(i>>>0>g>>>0){continue}break}break a}if(e>>>0>=f>>>0){break a}d=(e<<3)+d|0;a=(c&255)-e|0;break b;case 9:f:{e=K[a+24|0];f=c&255;if(!(e>>>0>>0?e:f)){break f}if(K[a+32|0]){break a}b=J[a+48>>2]+Al(J[a+40>>2],J[a+44>>2],b,0)|0;e=J[a>>2];i=J[e+4>>2];e=J[e>>2];if((b|0)>=(i-e|0)){break a}g=b+e|0;h=c&255;b=0;while(1){k=O[g>>3];if(k>=0x8000000000000000|k<-0x8000000000000000|k!=k){break a}o=R(k);if(o==_){break a}e=(b<<3)+d|0;g:{if(o<0x8000000000000000){l=R(k)>=1?~~(k>0?T(V(k*2.3283064365386963e-10),4294967295):W((k-+(~~k>>>0>>>0))*2.3283064365386963e-10))>>>0:0;m=~~k>>>0;break g}l=-2147483648;m=0}J[e>>2]=m;J[e+4>>2]=l;b=b+1|0;e=K[a+24|0];if(b>>>0>=(e>>>0>>0?e:h)>>>0){break f}g=g+8|0;if(i>>>0>g>>>0){continue}break}break a}if(e>>>0>=f>>>0){break a}d=(e<<3)+d|0;a=(c&255)-e|0;break b;case 10:break c;default:break a}}e=K[a+24|0];f=c&255;if(e>>>0>>0?e:f){e=J[a>>2];h=J[e>>2];b=J[a+48>>2]+Al(J[a+40>>2],J[a+44>>2],b,0)|0;b=h+b|0;h=J[e+4>>2];while(1){if(b>>>0>=h>>>0){break a}e=(g<<3)+d|0;J[e>>2]=K[b|0];J[e+4>>2]=0;b=b+1|0;g=g+1|0;e=K[a+24|0];if(g>>>0<(e>>>0>>0?e:f)>>>0){continue}break}}if(e>>>0>=f>>>0){break a}d=(e<<3)+d|0;a=(c&255)-e|0}sa(d,0,a<<3)}}function Ka(a){var b=0,c=0,d=0,e=0,f=0,g=0;e=ea-16|0;ea=e;J[e+12>>2]=a;a:{if(a>>>0<=211){d=J[Fe(17792,17984,e+12|0)>>2];break a}if(a>>>0>=4294967292){$();B()}f=(a>>>0)/210|0;d=P(f,210);J[e+8>>2]=a-d;g=Fe(17984,18176,e+8|0)-17984>>2;while(1){d=J[(g<<2)+17984>>2]+d|0;a=5;while(1){b:{if((a|0)==47){a=211;while(1){b=(d>>>0)/(a>>>0)|0;if(b>>>0>>0){break a}if((P(a,b)|0)==(d|0)){break b}b=a+10|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}if((P(b,c)|0)==(d|0)){break b}b=a+12|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}if((P(b,c)|0)==(d|0)){break b}b=a+16|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}if((P(b,c)|0)==(d|0)){break b}b=a+18|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}if((P(b,c)|0)==(d|0)){break b}b=a+22|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}if((P(b,c)|0)==(d|0)){break b}b=a+28|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}if((P(b,c)|0)==(d|0)){break b}b=a+30|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}if((P(b,c)|0)==(d|0)){break b}b=a+36|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}if((P(b,c)|0)==(d|0)){break b}b=a+40|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}if((P(b,c)|0)==(d|0)){break b}b=a+42|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}if((P(b,c)|0)==(d|0)){break b}b=a+46|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}if((P(b,c)|0)==(d|0)){break b}b=a+52|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}if((P(b,c)|0)==(d|0)){break b}b=a+58|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}if((P(b,c)|0)==(d|0)){break b}b=a+60|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}if((P(b,c)|0)==(d|0)){break b}b=a+66|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}if((P(b,c)|0)==(d|0)){break b}b=a+70|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}if((P(b,c)|0)==(d|0)){break b}b=a+72|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}if((P(b,c)|0)==(d|0)){break b}b=a+78|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}if((P(b,c)|0)==(d|0)){break b}b=a+82|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}if((P(b,c)|0)==(d|0)){break b}b=a+88|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}if((P(b,c)|0)==(d|0)){break b}b=a+96|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}if((P(b,c)|0)==(d|0)){break b}b=a+100|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}if((P(b,c)|0)==(d|0)){break b}b=a+102|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}if((P(b,c)|0)==(d|0)){break b}b=a+106|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}if((P(b,c)|0)==(d|0)){break b}b=a+108|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}if((P(b,c)|0)==(d|0)){break b}b=a+112|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}if((P(b,c)|0)==(d|0)){break b}b=a+120|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}if((P(b,c)|0)==(d|0)){break b}b=a+126|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}if((P(b,c)|0)==(d|0)){break b}b=a+130|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}if((P(b,c)|0)==(d|0)){break b}b=a+136|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}if((P(b,c)|0)==(d|0)){break b}b=a+138|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}if((P(b,c)|0)==(d|0)){break b}b=a+142|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}if((P(b,c)|0)==(d|0)){break b}b=a+148|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}if((P(b,c)|0)==(d|0)){break b}b=a+150|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}if((P(b,c)|0)==(d|0)){break b}b=a+156|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}if((P(b,c)|0)==(d|0)){break b}b=a+162|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}if((P(b,c)|0)==(d|0)){break b}b=a+166|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}if((P(b,c)|0)==(d|0)){break b}b=a+168|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}if((P(b,c)|0)==(d|0)){break b}b=a+172|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}if((P(b,c)|0)==(d|0)){break b}b=a+178|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}if((P(b,c)|0)==(d|0)){break b}b=a+180|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}if((P(b,c)|0)==(d|0)){break b}b=a+186|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}if((P(b,c)|0)==(d|0)){break b}b=a+190|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}if((P(b,c)|0)==(d|0)){break b}b=a+192|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}if((P(b,c)|0)==(d|0)){break b}b=a+196|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}if((P(b,c)|0)==(d|0)){break b}b=a+198|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}if((P(b,c)|0)==(d|0)){break b}b=a+208|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}a=a+210|0;if((P(b,c)|0)!=(d|0)){continue}break}break b}b=J[(a<<2)+17792>>2];c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}a=a+1|0;if((P(b,c)|0)!=(d|0)){continue}}break}d=g+1|0;a=(d|0)==48;g=a?0:d;f=a+f|0;d=P(f,210);continue}}ea=e+16|0;return d}function gl(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0;g=ea-32|0;ea=g;a:{b:{if(!J[J[a+8>>2]+80>>2]){d=1;break b}H[g+31|0]=254;i=J[a+36>>2];if(i){if(!(ga[J[J[a>>2]+40>>2]](a,i)|0)){break b}d=J[a+36>>2];n=g,o=ga[J[J[d>>2]+8>>2]](d)|0,H[n+31|0]=o}d=J[c+20>>2];if(!J[c+16>>2]&(d|0)<=0|(d|0)<0){wa(c,J[c+4>>2],g+31|0,g+32|0)}d=J[a+36>>2];c:{if(!d){break c}n=g,o=ga[J[J[d>>2]+36>>2]](d)|0,H[n+16|0]=o;d=J[c+20>>2];if(!!J[c+16>>2]&(d|0)>=0|(d|0)>0){break c}wa(c,J[c+4>>2],g+16|0,g+17|0)}d=J[a+32>>2];e=J[d+48>>2];f=J[J[d>>2]>>2];h=J[d+80>>2];k=K[d+24|0];i=0;J[g+24>>2]=0;J[g+16>>2]=0;J[g+20>>2]=0;h=P(h,k);if(h){if(h>>>0>=1073741824){break a}d=h<<2;i=ra(d);sa(i,0,d)}e=e+f|0;f=J[a+36>>2];d:{e:{f:{if(!f){break f}d=0;if(!(ga[J[J[f>>2]+44>>2]](f,e,i,h,k,J[b>>2])|0)){break d}d=J[a+36>>2];if(!d){break f}if(ga[J[J[d>>2]+32>>2]](d)|0){break e}e=J[a+36>>2]?i:e}d=0;f=0;g:{if((h|0)<=0){break g}if((h|0)!=1){m=h&-2;while(1){l=d<<2;j=J[l+e>>2];J[i+l>>2]=(j|0)<0?(j^-1)<<1|1:j<<1;l=l|4;j=J[l+e>>2];J[i+l>>2]=(j|0)<0?(j^-1)<<1|1:j<<1;d=d+2|0;f=f+2|0;if((m|0)!=(f|0)){continue}break}}if(!(h&1)){break g}f=e;e=d<<2;d=J[f+e>>2];J[e+i>>2]=(d|0)<0?(d^-1)<<1|1:d<<1}}h:{i:{j:{k:{d=J[a+4>>2];if(!d){break k}j=J[d+48>>2];d=ra(48);J[g>>2]=d;J[g+4>>2]=34;J[g+8>>2]=-2147483600;e=K[1411]|K[1412]<<8;H[d+32|0]=e;H[d+33|0]=e>>>8;e=K[1407]|K[1408]<<8|(K[1409]<<16|K[1410]<<24);f=K[1403]|K[1404]<<8|(K[1405]<<16|K[1406]<<24);H[d+24|0]=f;H[d+25|0]=f>>>8;H[d+26|0]=f>>>16;H[d+27|0]=f>>>24;H[d+28|0]=e;H[d+29|0]=e>>>8;H[d+30|0]=e>>>16;H[d+31|0]=e>>>24;e=K[1399]|K[1400]<<8|(K[1401]<<16|K[1402]<<24);f=K[1395]|K[1396]<<8|(K[1397]<<16|K[1398]<<24);H[d+16|0]=f;H[d+17|0]=f>>>8;H[d+18|0]=f>>>16;H[d+19|0]=f>>>24;H[d+20|0]=e;H[d+21|0]=e>>>8;H[d+22|0]=e>>>16;H[d+23|0]=e>>>24;e=K[1391]|K[1392]<<8|(K[1393]<<16|K[1394]<<24);f=K[1387]|K[1388]<<8|(K[1389]<<16|K[1390]<<24);H[d+8|0]=f;H[d+9|0]=f>>>8;H[d+10|0]=f>>>16;H[d+11|0]=f>>>24;H[d+12|0]=e;H[d+13|0]=e>>>8;H[d+14|0]=e>>>16;H[d+15|0]=e>>>24;e=K[1383]|K[1384]<<8|(K[1385]<<16|K[1386]<<24);f=K[1379]|K[1380]<<8|(K[1381]<<16|K[1382]<<24);H[d|0]=f;H[d+1|0]=f>>>8;H[d+2|0]=f>>>16;H[d+3|0]=f>>>24;H[d+4|0]=e;H[d+5|0]=e>>>8;H[d+6|0]=e>>>16;H[d+7|0]=e>>>24;H[d+34|0]=0;d=Qb(j,g,1);if(H[g+11|0]<0){qa(J[g>>2])}if(d){break k}if(!h){break j}e=0;d=0;b=0;if(h>>>0>=4){j=h&-4;f=0;while(1){k=d<<2;b=J[(k|12)+i>>2]|(J[(k|8)+i>>2]|(J[(k|4)+i>>2]|(J[i+k>>2]|b)));d=d+4|0;f=f+4|0;if((j|0)!=(f|0)){continue}break}}f=h&3;if(f){while(1){b=J[(d<<2)+i>>2]|b;d=d+1|0;e=e+1|0;if((f|0)!=(e|0)){continue}break}}if(!b){break j}b=4-(S(b)>>>3|0)|0;break i}H[g|0]=1;d=J[c+20>>2];if(!J[c+16>>2]&(d|0)<=0|(d|0)<0){wa(c,J[c+4>>2],g,g+1|0)}J[g>>2]=g|4;J[g+4>>2]=0;J[g+8>>2]=0;d=J[a+4>>2];if(d){j=10-eb(J[d+48>>2])|0;h=ea-16|0;ea=h;l:{if(j>>>0>10){break l}d=ra(48);J[h>>2]=d;J[h+4>>2]=33;J[h+8>>2]=-2147483600;H[d+32|0]=K[1470];e=K[1466]|K[1467]<<8|(K[1468]<<16|K[1469]<<24);f=K[1462]|K[1463]<<8|(K[1464]<<16|K[1465]<<24);H[d+24|0]=f;H[d+25|0]=f>>>8;H[d+26|0]=f>>>16;H[d+27|0]=f>>>24;H[d+28|0]=e;H[d+29|0]=e>>>8;H[d+30|0]=e>>>16;H[d+31|0]=e>>>24;e=K[1458]|K[1459]<<8|(K[1460]<<16|K[1461]<<24);f=K[1454]|K[1455]<<8|(K[1456]<<16|K[1457]<<24);H[d+16|0]=f;H[d+17|0]=f>>>8;H[d+18|0]=f>>>16;H[d+19|0]=f>>>24;H[d+20|0]=e;H[d+21|0]=e>>>8;H[d+22|0]=e>>>16;H[d+23|0]=e>>>24;e=K[1450]|K[1451]<<8|(K[1452]<<16|K[1453]<<24);f=K[1446]|K[1447]<<8|(K[1448]<<16|K[1449]<<24);H[d+8|0]=f;H[d+9|0]=f>>>8;H[d+10|0]=f>>>16;H[d+11|0]=f>>>24;H[d+12|0]=e;H[d+13|0]=e>>>8;H[d+14|0]=e>>>16;H[d+15|0]=e>>>24;e=K[1442]|K[1443]<<8|(K[1444]<<16|K[1445]<<24);f=K[1438]|K[1439]<<8|(K[1440]<<16|K[1441]<<24);H[d|0]=f;H[d+1|0]=f>>>8;H[d+2|0]=f>>>16;H[d+3|0]=f>>>24;H[d+4|0]=e;H[d+5|0]=e>>>8;H[d+6|0]=e>>>16;H[d+7|0]=e>>>24;H[d+33|0]=0;wb(g,h,j);if(H[h+11|0]>=0){break l}qa(J[h>>2])}ea=h+16|0}b=Xd(i,P(k,J[b+4>>2]-J[b>>2]>>2),k,g,c);Ha(g,J[g+4>>2]);d=0;if(b){break h}break d}b=1}H[g|0]=0;d=J[c+20>>2];m:{if(!!J[c+16>>2]&(d|0)>=0|(d|0)>0){break m}e=g+1|0;wa(c,J[c+4>>2],g,e);d=J[c+20>>2];f=J[c+16>>2];H[g|0]=b;if(!!f&(d|0)>=0|(d|0)>0){break m}wa(c,J[c+4>>2],g,e)}n:{if((b|0)!=J[3712]){if(!h){break h}d=J[c+20>>2];e=d;f=J[c+16>>2];if(!!f&(d|0)>=0|(d|0)>0){break h}d=0;break n}b=J[c+20>>2];if(!!J[c+16>>2]&(b|0)>=0|(b|0)>0){break h}wa(c,J[c+4>>2],i,(h<<2)+i|0);break h}while(1){if(!f&(e|0)<=0|(e|0)<0){e=(d<<2)+i|0;wa(c,J[c+4>>2],e,b+e|0)}d=d+1|0;if((h|0)==(d|0)){break h}f=J[c+16>>2];e=J[c+20>>2];continue}}d=1;a=J[a+36>>2];if(!a){break d}ga[J[J[a>>2]+40>>2]](a,c)|0}if(!i){break b}qa(i)}ea=g+32|0;return d|0}ua();B()}function $i(a){a=a|0;var b=0,c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0;p=ea-16|0;ea=p;a:{if(!(ga[J[J[a>>2]+32>>2]](a)|0)){break a}f=J[a+44>>2];c=J[a+12>>2];b=J[a+8>>2];H[p+15|0]=c-b>>>2;g=J[f+20>>2];if(!J[f+16>>2]&(g|0)<=0|(g|0)<0){wa(f,J[f+4>>2],p+15|0,p+16|0);c=J[a+12>>2];b=J[a+8>>2]}if((b|0)!=(c|0)){while(1){f=J[b>>2];if(!(ga[J[J[f>>2]+8>>2]](f,a,J[a+4>>2])|0)){break a}b=b+4|0;if((c|0)!=(b|0)){continue}break}}g=ea-48|0;ea=g;f=a;q=a+32|0;a=J[a+12>>2];c=J[f+8>>2];d=a-c|0;b=d>>2;k=J[f+32>>2];h=J[f+36>>2]-k>>2;b:{if(b>>>0>h>>>0){Fa(q,b-h|0);a=J[f+12>>2];c=J[f+8>>2];d=a-c|0;b=d>>2;break b}if(b>>>0>=h>>>0){break b}J[f+36>>2]=k+(b<<2)}J[g+40>>2]=0;J[g+32>>2]=0;J[g+36>>2]=0;c:{d:{e:{if((a|0)==(c|0)){break e}if((d|0)<0){break d}h=b-1>>>5|0;k=h+1|0;i=ra(k<<2);J[g+40>>2]=k;J[g+32>>2]=i;J[g+36>>2]=b;J[((d>>>0>=132?h:0)<<2)+i>>2]=0;d=b>>>5<<2;h=sa(i,0,d);if((b&-32)==(b|0)){break e}d=d+h|0;J[d>>2]=J[d>>2]&(-1>>>32-(b&31)^-1)}while(1){f:{g:{b=a-c>>2;if(j>>>0>>0){if((a|0)==(c|0)){a=c;k=0;break g}k=0;m=J[g+32>>2];h=0;while(1){r=1<>>5<<2;h:{if(r&J[l+i>>2]){break h}a=h<<2;d=J[a+c>>2];b=J[d+4>>2];if((b|0)!=J[d+8>>2]){n=0;o=1;s=J[g+32>>2];while(1){c=0;b=J[(n<<2)+b>>2];i:{if((ga[J[J[d>>2]+24>>2]](d,b)|0)<=0){break i}while(1){j:{d=J[a+J[f+8>>2]>>2];d=ga[J[J[d>>2]+28>>2]](d,b,c)|0;if((d|0)==(h|0)){break j}d=J[J[f+20>>2]+(d<<2)>>2];if(J[(d>>>3&536870908)+s>>2]>>>d&1){break j}o=0;break i}d=J[a+J[f+8>>2]>>2];c=c+1|0;if((ga[J[J[d>>2]+24>>2]](d,b)|0)>(c|0)){continue}break}}c=J[f+8>>2];d=J[a+c>>2];b=J[d+4>>2];n=n+1|0;if(n>>>0>2]-b>>2>>>0){continue}break}if(!o){break h}}J[J[q>>2]+(j<<2)>>2]=h;a=m+l|0;J[a>>2]=r|J[a>>2];k=1;j=j+1|0}a=J[f+12>>2];b=a-c>>2;h=h+1|0;if(b>>>0>h>>>0){continue}break}break g}k=0;J[g+24>>2]=0;J[g+16>>2]=0;J[g+20>>2]=0;e=J[f+4>>2];b=J[e+12>>2];e=J[e+8>>2];J[g+8>>2]=0;J[g>>2]=0;J[g+4>>2]=0;h=0;k:{l:{m:{n:{if((b|0)==(e|0)){break n}e=b-e|0;if((e|0)<0){break m}b=e>>2;d=b-1>>>5|0;i=d+1|0;h=ra(i<<2);J[g+8>>2]=i;J[g>>2]=h;J[g+4>>2]=b;J[((e>>>0>=132?d:0)<<2)+h>>2]=0;e=b>>>5<<2;d=sa(h,0,e);if((b|0)==(b&-32)){break n}e=d+e|0;J[e>>2]=J[e>>2]&(-1>>>32-(b&31)^-1)}o:{if((a|0)==(c|0)){e=1;break o}while(1){e=J[J[q>>2]+(k<<2)>>2]<<2;a=J[e+c>>2];a=J[a+8>>2]-J[a+4>>2]|0;p:{if((a|0)<8){break p}b=a>>2;c=J[g+16>>2];a=J[g+20>>2]-c>>2;q:{if(b>>>0>a>>>0){Fa(g+16|0,b-a|0);break q}if(a>>>0<=b>>>0){break q}J[g+20>>2]=c+(b<<2)}n=(b|0)<=1?1:b;d=0;r:{while(1){if((b|0)<=(d|0)){break r}a=0;i=0;while(1){m=1<>>5<<2;s:{if(m&J[o+h>>2]){break s}c=J[e+J[f+8>>2]>>2];j=J[J[c+4>>2]+(a<<2)>>2];if((ga[J[J[c>>2]+24>>2]](c,j)|0)>0){c=0;h=J[g>>2];while(1){l=J[e+J[f+8>>2]>>2];l=ga[J[J[l>>2]+28>>2]](l,j,c)|0;if(!(J[(l>>>3&536870908)+h>>2]>>>l&1)){break s}l=J[e+J[f+8>>2]>>2];c=c+1|0;if((ga[J[J[l>>2]+24>>2]](l,j)|0)>(c|0)){continue}break}}J[J[g+16>>2]+(d<<2)>>2]=a;c=h+o|0;J[c>>2]=m|J[c>>2];i=1;d=d+1|0}a=a+1|0;if((n|0)!=(a|0)){continue}break}if(i&1|(b|0)<=(d|0)){continue}break}e=0;break o}c=J[f+8>>2];e=J[e+c>>2];a=J[e+4>>2];J[e+8>>2]=a;J[e+20>>2]=J[e+16>>2];d=J[g+16>>2];o=J[g+20>>2];if((d|0)==(o|0)){break p}n=e+16|0;b=a;while(1){c=J[d>>2];t:{if(J[e+12>>2]!=(b|0)){J[b>>2]=c;J[e+8>>2]=b+4;break t}i=b-a|0;m=i>>2;b=m+1|0;if(b>>>0>=1073741824){break l}j=i>>1;j=i>>>0>=2147483644?1073741823:b>>>0>>0?j:b;if(j){if(j>>>0>=1073741824){break k}b=ra(j<<2)}else{b=0}m=b+(m<<2)|0;J[m>>2]=c;if((i|0)>0){ta(b,a,i)}J[e+12>>2]=b+(j<<2);J[e+8>>2]=m+4;J[e+4>>2]=b;if(!a){break t}qa(a)}b=J[e+16>>2];a=J[e+20>>2]-b>>2;u:{if((a|0)>(c|0)){break u}J[g+44>>2]=-1;i=c+1|0;if(i>>>0>a>>>0){La(n,i-a|0,g+44|0);b=J[n>>2];break u}if(a>>>0<=i>>>0){break u}J[e+20>>2]=(i<<2)+b}c=(c<<2)+b|0;b=J[e+8>>2];a=J[e+4>>2];J[c>>2]=(b-a>>2)-1;d=d+4|0;if((o|0)!=(d|0)){continue}break}c=J[f+8>>2]}e=1;k=k+1|0;if(k>>>0>2]-c>>2>>>0){continue}break}}a=J[g>>2];if(a){qa(a)}a=J[g+16>>2];if(!a){break f}J[g+20>>2]=a;qa(a);break f}ua();B()}ua();B()}ya();B()}if(k&1|b>>>0<=j>>>0){continue}}break}a=J[g+32>>2];if(a){qa(a)}ea=g+48|0;break c}ua();B()}if(!e){break a}b=J[f+32>>2];a=J[f+36>>2];v:{if((b|0)==(a|0)){break v}while(1){if(!(ga[J[J[f>>2]+40>>2]](f,J[b>>2])|0)){break a}b=b+4|0;if((a|0)!=(b|0)){continue}break}b=J[f+32>>2];a=J[f+36>>2];if((b|0)==(a|0)){break v}while(1){c=J[J[f+8>>2]+(J[b>>2]<<2)>>2];if(!(ga[J[J[c>>2]+12>>2]](c,J[f+44>>2])|0)){break a}b=b+4|0;if((a|0)!=(b|0)){continue}break}}t=ga[J[J[f>>2]+44>>2]](f)|0}ea=p+16|0;return t|0}function Sf(a,b){var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0;a:{b:{c:{d:{e:{if(J[a+92>>2]==J[a+88>>2]){break e}c=J[a+52>>2];f:{if((c|0)!=J[a+56>>2]){J[c>>2]=b;J[a+52>>2]=c+4;break f}d=J[a+48>>2];h=c-d|0;f=h>>2;e=f+1|0;if(e>>>0>=1073741824){break a}c=h>>1;e=h>>>0>=2147483644?1073741823:c>>>0>e>>>0?c:e;if(e){if(e>>>0>=1073741824){break d}c=ra(e<<2)}else{c=0}f=c+(f<<2)|0;J[f>>2]=b;if((h|0)>0){ta(c,d,h)}J[a+56>>2]=c+(e<<2);J[a+52>>2]=f+4;J[a+48>>2]=c;if(!d){break f}qa(d)}J[a+84>>2]=0;f=-1;c=-1;g:{if((b|0)==-1){break g}e=J[a+4>>2];c=b+1|0;c=(c>>>0)%3|0?c:b-2|0;if((c|0)!=-1){f=J[J[e>>2]+(c<<2)>>2]}h:{if((b>>>0)%3|0){d=b-1|0;break h}d=b+2|0;c=-1;if((d|0)==-1){break g}}c=J[J[e>>2]+(d<<2)>>2]}i=c>>>3&536870908;e=J[a+36>>2];g=e+(f>>>3&536870908)|0;h=J[g>>2];d=1<>2]=d|h;g=a+8|0;if((b|0)!=-1){e=b+1|0;d=(e>>>0)%3|0?e:b-2|0}else{d=-1}nb(g,f,d);e=J[a+36>>2]}d=e+i|0;e=J[d>>2];f=1<>2]=e|f;d=a+8|0;f=-1;i:{if((b|0)==-1){break i}f=b-1|0;if((b>>>0)%3|0){break i}f=b+2|0}nb(d,c,f)}f=-1;f=(b|0)!=-1?J[J[J[a+4>>2]>>2]+(b<<2)>>2]:f;d=J[a+36>>2]+(f>>>3&536870908)|0;e=J[d>>2];c=1<>2]=c|e;nb(a+8|0,f,b)}d=J[a+84>>2];if((d|0)>2){break e}while(1){f=P(d,12)+a|0;b=J[f+52>>2];if((b|0)==J[f+48>>2]){d=d+1|0;if((d|0)!=3){continue}break e}c=b-4|0;b=J[c>>2];J[f+52>>2]=c;J[a+84>>2]=d;if((b|0)==-1){break e}f=J[a+24>>2];c=(b>>>0)/3|0;j:{if(J[f+(c>>>3&268435452)>>2]>>>c&1){break j}k:{while(1){i=(b>>>0)/3|0;c=(i>>>3&268435452)+f|0;J[c>>2]=J[c>>2]|1<>2]>>2]+(b<<2)>>2]:f;d=J[a+36>>2]+(f>>>3&536870908)|0;e=J[d>>2];c=1<>2]=c|e;h=J[(J[J[a+16>>2]+96>>2]+P(i,12)|0)+((b>>>0)%3<<2)>>2];k=J[J[a+20>>2]+4>>2];c=J[k+4>>2];t:{if((c|0)!=J[k+8>>2]){J[c>>2]=h;J[k+4>>2]=c+4;break t}g=J[k>>2];j=c-g|0;e=j>>2;d=e+1|0;if(d>>>0>=1073741824){break s}c=j>>1;d=j>>>0>=2147483644?1073741823:c>>>0>d>>>0?c:d;if(d){if(d>>>0>=1073741824){break d}c=ra(d<<2)}else{c=0}e=c+(e<<2)|0;J[e>>2]=h;if((j|0)>0){ta(c,g,j)}J[k+8>>2]=c+(d<<2);J[k+4>>2]=e+4;J[k>>2]=c;if(!g){break t}qa(g)}j=J[a+12>>2];c=J[j+4>>2];u:{if((c|0)!=J[j+8>>2]){J[c>>2]=b;J[j+4>>2]=c+4;break u}h=J[j>>2];g=c-h|0;e=g>>2;d=e+1|0;if(d>>>0>=1073741824){break r}c=g>>1;d=g>>>0>=2147483644?1073741823:c>>>0>d>>>0?c:d;if(d){if(d>>>0>=1073741824){break d}c=ra(d<<2)}else{c=0}e=c+(e<<2)|0;J[e>>2]=b;if((g|0)>0){ta(c,h,g)}J[j+8>>2]=c+(d<<2);J[j+4>>2]=e+4;J[j>>2]=c;if(!h){break u}qa(h)}c=J[a+12>>2];J[J[c+12>>2]+(f<<2)>>2]=J[c+24>>2];J[c+24>>2]=J[c+24>>2]+1}if((b|0)==-1){break k}g=J[a+4>>2];f=-1;c=b+1|0;c=(c>>>0)%3|0?c:b-2|0;if((c|0)!=-1){f=J[J[g+12>>2]+(c<<2)>>2]}v:{w:{if((P(i,3)|0)!=(b|0)){e=b-1|0;break w}e=b+2|0;b=-1;if((e|0)==-1){break v}}b=J[J[g+12>>2]+(e<<2)>>2]}h=(b|0)==-1;e=(b>>>0)/3|0;if((f|0)!=-1){c=(f>>>0)/3|0;c=J[J[a+24>>2]+(c>>>3&268435452)>>2]&1<>2]+(c>>>3&536870908)>>2]>>>c&1){break x}e=0;c=J[J[g>>2]+(b<<2)>>2];if(!(J[J[a+36>>2]+(c>>>3&536870908)>>2]>>>c&1)){c=J[a+88>>2]+(c<<2)|0;e=J[c>>2];J[c>>2]=e+1;e=(e|0)<=0?2:1}if(J[a+84>>2]>=(e|0)?d:0){break m}k=P(e,12)+a|0;c=J[k+52>>2];y:{if((c|0)!=J[k+56>>2]){J[c>>2]=b;J[k+52>>2]=c+4;break y}i=J[k+48>>2];j=c-i|0;h=j>>2;g=h+1|0;if(g>>>0>=1073741824){break c}c=j>>1;g=j>>>0>=2147483644?1073741823:c>>>0>g>>>0?c:g;if(g){if(g>>>0>=1073741824){break d}c=ra(g<<2)}else{c=0}h=c+(h<<2)|0;J[h>>2]=b;if((j|0)>0){ta(c,i,j)}J[k+48>>2]=c;J[k+52>>2]=h+4;J[k+56>>2]=c+(g<<2);if(!i){break y}qa(i)}if(J[a+84>>2]<=(e|0)){break x}J[a+84>>2]=e}if(d){break k}b=-1;if((f|0)==-1){break n}}b=J[J[J[a+4>>2]>>2]+(f<<2)>>2]}e=0;if(!(J[J[a+36>>2]+(b>>>3&536870908)>>2]>>>b&1)){b=J[a+88>>2]+(b<<2)|0;c=J[b>>2];J[b>>2]=c+1;e=(c|0)<=0?2:1}if(J[a+84>>2]<(e|0)){break l}b=f}f=J[a+24>>2];continue}break}i=P(e,12)+a|0;b=J[i+52>>2];z:{if((b|0)!=J[i+56>>2]){J[b>>2]=f;J[i+52>>2]=b+4;break z}h=J[i+48>>2];g=b-h|0;c=g>>2;d=c+1|0;if(d>>>0>=1073741824){break b}b=g>>1;d=g>>>0>=2147483644?1073741823:b>>>0>d>>>0?b:d;if(d){if(d>>>0>=1073741824){break d}b=ra(d<<2)}else{b=0}c=b+(c<<2)|0;J[c>>2]=f;if((g|0)>0){ta(b,h,g)}J[i+48>>2]=b;J[i+52>>2]=c+4;J[i+56>>2]=b+(d<<2);if(!h){break z}qa(h)}d=J[a+84>>2];if((d|0)<=(e|0)){break j}J[a+84>>2]=e;d=e;break j}d=J[a+84>>2]}if((d|0)<3){continue}break}}return 1}ya();B()}ua();B()}ua();B()}ua();B()} +function Ia(a,b,c,d,e,f,g,h,i){var j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,K=0,L=0,M=0,N=0,O=0,P=0,Q=0;k=ea-96|0;ea=k;m=h;t=i&65535;o=(e^i)&-2147483648;n=e&65535;p=n;A=n;L=i>>>16&32767;M=e>>>16&32767;a:{b:{if(L-32767>>>0>4294934529&M-32767>>>0>=4294934530){break b}n=e&2147483647;j=d;if(!(!d&(n|0)==2147418112?!(b|c):n>>>0<2147418112)){q=d;o=e|32768;break a}e=i&2147483647;if(!(!h&(e|0)==2147418112?!(f|g):e>>>0<2147418112)){q=h;o=i|32768;b=f;c=g;break a}if(!(b|j|(n^2147418112|c))){if(!(f|h|(e|g))){o=2147450880;b=0;c=0;break a}o=o|2147418112;b=0;c=0;break a}if(!(f|h|(e^2147418112|g))){d=b|j;e=c|n;b=0;c=0;if(!(d|e)){o=2147450880;break a}o=o|2147418112;break a}if(!(b|j|(c|n))){b=0;c=0;break a}if(!(f|h|(e|g))){b=0;c=0;break a}if((n|0)==65535|n>>>0<65535){j=b;h=!(d|p);i=h<<6;n=S(h?b:d)+32|0;b=S(h?c:p);b=i+((b|0)==32?n:b)|0;Sa(k+80|0,j,c,d,p,b-15|0);s=16-b|0;d=J[k+88>>2];A=J[k+92>>2];c=J[k+84>>2];b=J[k+80>>2]}if(e>>>0>65535){break b}e=!(m|t);h=e<<6;i=S(e?f:m)+32|0;e=S(e?g:t);e=h+((e|0)==32?i:e)|0;Sa(k- -64|0,f,g,m,t,e-15|0);s=(s-e|0)+16|0;m=J[k+72>>2];t=J[k+76>>2];f=J[k+64>>2];g=J[k+68>>2]}e=f;h=g<<15|e>>>17;i=e<<15;e=0;u=i&-32768;r=c;y=Al(u,e,c,0);c=fa;B=c;e=c;F=h;c=b;p=0;h=Al(h,0,c,p);b=h+y|0;j=fa+e|0;i=b;b=b>>>0>>0?j+1|0:j;n=Al(c,p,u,p);j=0+n|0;h=i;e=h+fa|0;e=j>>>0>>0?e+1|0:e;w=j;n=e;G=(h|0)==(e|0)&j>>>0>>0|e>>>0>>0;z=d;N=Al(u,p,d,0);H=fa;e=Al(r,l,F,l);d=e+N|0;j=fa+H|0;v=d;j=d>>>0>>0?j+1|0:j;d=j;e=m;h=t<<15|e>>>17;C=e<<15|g>>>17;g=Al(C,0,c,p);e=g+v|0;f=fa+d|0;I=e;f=e>>>0>>0?f+1|0:f;t=f;e=f;f=(b|0)==(B|0)&i>>>0>>0|b>>>0>>0;g=b;b=g+I|0;f=e+f|0;y=b;f=b>>>0>>0?f+1|0:f;i=f;b=f;D=A|65536;m=x;O=Al(u,p,D,m);K=fa;g=Al(z,q,F,l);f=g+O|0;e=fa+K|0;P=f;e=f>>>0>>0?e+1|0:e;x=e;E=h|-2147483648;u=0;g=Al(E,u,c,p);c=g+f|0;f=fa+e|0;f=c>>>0>>0?f+1|0:f;Q=c;e=Al(C,q,r,l);c=c+e|0;p=f;h=f+fa|0;A=c;g=c>>>0>>0?h+1|0:h;f=0;c=f+y|0;e=b+A|0;e=c>>>0>>0?e+1|0:e;b=G;G=c;b=b+c|0;B=e;f=b>>>0>>0?e+1|0:e;c=f;s=((M+L|0)+s|0)-16383|0;j=Al(E,u,r,l);h=fa;l=Al(D,m,F,l);e=l+j|0;f=fa+h|0;f=e>>>0>>0?f+1|0:f;h=(f|0)==(h|0)&e>>>0>>0|f>>>0>>0;j=e;r=h;l=Al(C,q,z,q);e=l+e|0;h=fa+f|0;h=e>>>0>>0?h+1|0:h;l=(f|0)==(h|0)&e>>>0>>0|f>>>0>h>>>0;f=r+l|0;j=0;j=f>>>0>>0?1:j;r=Al(E,u,D,m);l=r+f|0;f=fa+j|0;f=l>>>0>>0?f+1|0:f;r=l;l=e;j=h;e=(d|0)==(t|0)&v>>>0>I>>>0|d>>>0>t>>>0;d=e+((d|0)==(H|0)&v>>>0>>0|d>>>0>>0)|0;h=0;h=d>>>0>>0?1:h;v=d;d=l+d|0;e=h+j|0;e=d>>>0>>0?e+1|0:e;v=d;h=e;e=(e|0)==(j|0)&d>>>0>>0|e>>>0>>0;d=e+r|0;r=d;e=d>>>0>>0?f+1|0:f;m=Al(C,q,D,m);j=fa;l=Al(E,u,z,q);d=l+m|0;f=fa+j|0;f=d>>>0>>0?f+1|0:f;l=d;d=f;f=(j|0)==(f|0)&l>>>0>>0|f>>>0>>0;m=d+r|0;e=e+f|0;e=m>>>0>>0?e+1|0:e;r=m;m=0;d=m+v|0;f=h+l|0;f=d>>>0>>0?f+1|0:f;j=f;m=(h|0)==(f|0)&d>>>0>>0|f>>>0>>0;h=r+m|0;z=h;m=h>>>0>>0?e+1|0:e;l=d;e=d;d=j;h=(p|0)==(x|0)&P>>>0>Q>>>0|p>>>0>>0;f=h+((x|0)==(K|0)&P>>>0>>0|x>>>0>>0)|0;j=0;h=f+((g|0)==(p|0)&A>>>0>>0|g>>>0

>>0)|0;f=g+e|0;e=d+h|0;e=f>>>0>>0?e+1|0:e;g=f;h=(d|0)==(e|0)&f>>>0>>0|d>>>0>e>>>0;d=h+z|0;f=m;f=d>>>0>>0?f+1|0:f;j=e;m=d;d=(i|0)==(t|0)&y>>>0>>0|i>>>0>>0;i=(i|0)==(B|0)&y>>>0>G>>>0|i>>>0>B>>>0;d=d+i|0;h=0;h=d>>>0>>0?1:h;i=d;d=d+g|0;e=e+h|0;e=d>>>0>>0?e+1|0:e;h=(e|0)==(j|0)&d>>>0>>0|e>>>0>>0;g=m+h|0;f=g>>>0>>0?f+1|0:f;h=g;i=f;c:{if(f&65536){s=s+1|0;break c}x=n>>>31|0;j=i<<1|h>>>31;h=g<<1|e>>>31;i=j;j=e<<1|d>>>31;d=d<<1|c>>>31;f=0;e=f|j;g=w;j=n<<1|g>>>31;w=g<<1;n=j;g=f;f=c<<1|b>>>31;b=b<<1|x;c=f|g}if((s|0)>=32767){o=o|2147418112;b=0;c=0;break a}d:{if((s|0)<=0){f=1-s|0;if(f>>>0>=128){b=0;c=0;break a}g=s+127|0;Sa(k+48|0,w,n,b,c,g);Sa(k+32|0,d,e,h,i,g);Ib(k+16|0,w,n,b,c,f);Ib(k,d,e,h,i,f);w=J[k+32>>2]|J[k+16>>2]|(J[k+48>>2]|J[k+56>>2]|(J[k+52>>2]|J[k+60>>2]))!=0;n=J[k+36>>2]|J[k+20>>2];b=J[k+40>>2]|J[k+24>>2];c=J[k+44>>2]|J[k+28>>2];d=J[k>>2];e=J[k+4>>2];f=J[k+8>>2];g=J[k+12>>2];break d}f=h;g=i&65535|s<<16}q=f|q;o=g|o;if(!(!b&(c|0)==-2147483648?!(n|w):(c|0)>0|(c|0)>=0)){b=d+1|0;j=b?e:e+1|0;c=j;f=(e|0)==(j|0)&b>>>0>>0|e>>>0>j>>>0;d=f+q|0;e=o;q=d;o=d>>>0>>0?e+1|0:e;break a}if(b|w|(c^-2147483648|n)){b=d;c=e;break a}c=d&1;b=c+d|0;j=b>>>0>>0?e+1|0:e;c=j;e=(e|0)==(j|0)&b>>>0>>0|e>>>0>j>>>0;d=e+q|0;j=o;q=d;o=d>>>0>>0?j+1|0:j}J[a>>2]=b;J[a+4>>2]=c;J[a+8>>2]=q;J[a+12>>2]=o;ea=k+96|0}function ej(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0;i=ea-16|0;ea=i;c=J[b+56>>2];d=J[c+100>>2];h=J[c+96>>2];f=(d-h|0)/12|0;Da(f,J[b+44>>2]);Da(J[J[b+56>>2]+80>>2],J[b+44>>2]);k=J[b+48>>2];c=ra(32);J[i>>2]=c;J[i+4>>2]=21;J[i+8>>2]=-2147483616;e=K[1149]|K[1150]<<8|(K[1151]<<16|K[1152]<<24);g=K[1145]|K[1146]<<8|(K[1147]<<16|K[1148]<<24);H[c+13|0]=g;H[c+14|0]=g>>>8;H[c+15|0]=g>>>16;H[c+16|0]=g>>>24;H[c+17|0]=e;H[c+18|0]=e>>>8;H[c+19|0]=e>>>16;H[c+20|0]=e>>>24;e=K[1144]|K[1145]<<8|(K[1146]<<16|K[1147]<<24);g=K[1140]|K[1141]<<8|(K[1142]<<16|K[1143]<<24);H[c+8|0]=g;H[c+9|0]=g>>>8;H[c+10|0]=g>>>16;H[c+11|0]=g>>>24;H[c+12|0]=e;H[c+13|0]=e>>>8;H[c+14|0]=e>>>16;H[c+15|0]=e>>>24;e=K[1136]|K[1137]<<8|(K[1138]<<16|K[1139]<<24);g=K[1132]|K[1133]<<8|(K[1134]<<16|K[1135]<<24);H[c|0]=g;H[c+1|0]=g>>>8;H[c+2|0]=g>>>16;H[c+3|0]=g>>>24;H[c+4|0]=e;H[c+5|0]=e>>>8;H[c+6|0]=e>>>16;H[c+7|0]=e>>>24;H[c+21|0]=0;e=Qb(k,i,0);if(H[i+11|0]<0){qa(J[i>>2])}c=J[b+44>>2];a:{if(e){H[i|0]=0;f=J[c+20>>2];if(!J[c+16>>2]&(f|0)<=0|(f|0)<0){wa(c,J[c+4>>2],i,i+1|0)}d=0;c=0;h=ea-16|0;ea=h;J[h>>2]=0;J[h+4>>2]=0;f=b;b=J[f+56>>2];e=J[b+100>>2];b=J[b+96>>2];if((e|0)!=(b|0)){b=(e-b|0)/12|0;o=b>>>0<=1?1:b;b=J[h>>2];e=0;b:{c:{while(1){d:{k=J[J[f+56>>2]+96>>2]+P(l,12)|0;m=J[k>>2];g=m-j|0;j=g>>31;j=(g^j)-j<<1|g>>>31;e:{if((e|0)!=(d|0)){J[d>>2]=j;d=d+4|0;J[h+4>>2]=d;break e}e=d-c|0;n=e>>2;g=n+1|0;if(g>>>0>=1073741824){break d}d=e>>1;g=e>>>0>=2147483644?1073741823:d>>>0>g>>>0?d:g;if(g){if(g>>>0>=1073741824){break c}b=ra(g<<2)}else{b=0}d=b+(n<<2)|0;J[d>>2]=j;d=d+4|0;if((e|0)>0){ta(b,c,e)}e=(g<<2)+b|0;J[h+4>>2]=d;if(c){qa(c)}c=b}n=J[k+4>>2];g=n-m|0;j=g>>31;j=(g^j)-j<<1|g>>>31;f:{if((e|0)!=(d|0)){J[d>>2]=j;d=d+4|0;J[h+4>>2]=d;break f}e=d-c|0;m=e>>2;g=m+1|0;if(g>>>0>1073741823){break d}d=e>>1;g=e>>>0>=2147483644?1073741823:d>>>0>g>>>0?d:g;if(g){if(g>>>0>1073741823){break c}b=ra(g<<2)}else{b=0}d=b+(m<<2)|0;J[d>>2]=j;d=d+4|0;if((e|0)>0){ta(b,c,e)}e=(g<<2)+b|0;J[h+4>>2]=d;if(c){qa(c)}c=b}j=J[k+8>>2];g=j-n|0;k=g>>31;k=(g^k)-k<<1|g>>>31;g:{if((e|0)!=(d|0)){J[d>>2]=k;d=d+4|0;J[h+4>>2]=d;break g}e=d-c|0;m=e>>2;g=m+1|0;if(g>>>0>1073741823){break d}d=e>>1;g=e>>>0>=2147483644?1073741823:d>>>0>g>>>0?d:g;if(g){if(g>>>0>1073741823){break c}b=ra(g<<2)}else{b=0}d=b+(m<<2)|0;J[d>>2]=k;d=d+4|0;if((e|0)>0){ta(b,c,e)}e=(g<<2)+b|0;J[h+4>>2]=d;if(c){qa(c)}c=b}l=l+1|0;if((o|0)!=(l|0)){continue}break b}break}J[h+8>>2]=d;J[h>>2]=b;ua();B()}J[h>>2]=b;ya();B()}J[h>>2]=b}Xd(c,d-c>>2,1,0,J[f+44>>2]);if(c){qa(c)}ea=h+16|0;break a}H[i|0]=1;e=J[c+20>>2];if(!J[c+16>>2]&(e|0)<=0|(e|0)<0){wa(c,J[c+4>>2],i,i+1|0)}c=J[J[b+56>>2]+80>>2];if(c>>>0<=255){if((d|0)==(h|0)){break a}g=f>>>0<=1?1:f;d=i+1|0;c=0;while(1){f=J[b+44>>2];h=J[J[b+56>>2]+96>>2]+P(c,12)|0;H[i|0]=J[h>>2];e=J[f+20>>2];h:{if(!!J[f+16>>2]&(e|0)>=0|(e|0)>0){break h}wa(f,J[f+4>>2],i,d);f=J[b+44>>2];e=J[f+20>>2];l=J[f+16>>2];H[i|0]=J[h+4>>2];if(!!l&(e|0)>=0|(e|0)>0){break h}wa(f,J[f+4>>2],i,d);f=J[b+44>>2];e=J[f+20>>2];l=J[f+16>>2];H[i|0]=J[h+8>>2];if(!!l&(e|0)>=0|(e|0)>0){break h}wa(f,J[f+4>>2],i,d)}c=c+1|0;if((g|0)!=(c|0)){continue}break}break a}if(c>>>0<=65535){if((d|0)==(h|0)){break a}g=f>>>0<=1?1:f;d=i+2|0;c=0;while(1){f=J[b+44>>2];h=J[J[b+56>>2]+96>>2]+P(c,12)|0;I[i>>1]=J[h>>2];e=J[f+20>>2];i:{if(!!J[f+16>>2]&(e|0)>=0|(e|0)>0){break i}wa(f,J[f+4>>2],i,d);f=J[b+44>>2];e=J[f+20>>2];l=J[f+16>>2];I[i>>1]=J[h+4>>2];if(!!l&(e|0)>=0|(e|0)>0){break i}wa(f,J[f+4>>2],i,d);f=J[b+44>>2];e=J[f+20>>2];l=J[f+16>>2];I[i>>1]=J[h+8>>2];if(!!l&(e|0)>=0|(e|0)>0){break i}wa(f,J[f+4>>2],i,d)}c=c+1|0;if((g|0)!=(c|0)){continue}break}break a}if(c>>>0>=2097152){if((d|0)==(h|0)){break a}d=J[b+44>>2];c=J[d+20>>2];if(!!J[d+16>>2]&(c|0)>=0|(c|0)>0){break a}h=f>>>0<=1?1:f;c=0;while(1){f=J[b+44>>2];d=J[f+20>>2];if(!J[f+16>>2]&(d|0)<=0|(d|0)<0){d=f;e=J[f+4>>2];f=J[J[b+56>>2]+96>>2]+P(c,12)|0;wa(d,e,f,f+12|0)}c=c+1|0;if((h|0)!=(c|0)){continue}break}break a}if((d|0)==(h|0)){break a}d=f>>>0<=1?1:f;c=0;while(1){f=J[J[b+56>>2]+96>>2]+P(c,12)|0;Da(J[f>>2],J[b+44>>2]);Da(J[f+4>>2],J[b+44>>2]);Da(J[f+8>>2],J[b+44>>2]);c=c+1|0;if((d|0)!=(c|0)){continue}break}}J[a>>2]=0;J[a+4>>2]=0;J[a+8>>2]=0;J[a+12>>2]=0;ea=i+16|0}function Rc(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0;f=ea-96|0;ea=f;e=J[a+16>>2];H[f+92|0]=1;J[f+88>>2]=b;J[f+84>>2]=b;J[f+80>>2]=e;k=J[a+20>>2];d=J[k>>2];a:{b:{e=J[J[e+28>>2]+(b<<2)>>2];if(e>>>0>2]-d>>2>>>0){d=J[J[a+8>>2]+(J[d+(e<<2)>>2]<<2)>>2];e=J[a+4>>2];if(!K[e+84|0]){d=J[J[e+68>>2]+(d<<2)>>2]}J[f+72>>2]=0;J[f+76>>2]=0;k=f- -64|0;J[k>>2]=0;J[k+4>>2]=0;J[f+56>>2]=0;J[f+60>>2]=0;ib(e,d,H[e+24|0],f+56|0);if((b|0)!=-1){e=b+1|0;k=(e>>>0)%3|0?e:b-2|0;i=((b>>>0)%3|0?-1:2)+b|0;while(1){d=k;e=i;c:{if(!J[a+28>>2]){break c}e=b+1|0;d=(e>>>0)%3|0?e:b-2|0;e=b-1|0;if((b>>>0)%3|0){break c}e=b+2|0}h=J[a+20>>2];b=J[h>>2];d=J[J[J[a+16>>2]+28>>2]+(d<<2)>>2];if(d>>>0>=J[h+4>>2]-b>>2>>>0){break b}d=J[J[a+8>>2]+(J[b+(d<<2)>>2]<<2)>>2];b=J[a+4>>2];if(!K[b+84|0]){d=J[J[b+68>>2]+(d<<2)>>2]}J[f+48>>2]=0;J[f+52>>2]=0;J[f+40>>2]=0;J[f+44>>2]=0;J[f+32>>2]=0;J[f+36>>2]=0;ib(b,d,H[b+24|0],f+32|0);d=J[a+20>>2];b=J[d>>2];e=J[J[J[a+16>>2]+28>>2]+(e<<2)>>2];if(e>>>0>=J[d+4>>2]-b>>2>>>0){break a}d=J[J[a+8>>2]+(J[b+(e<<2)>>2]<<2)>>2];b=J[a+4>>2];if(!K[b+84|0]){d=J[J[b+68>>2]+(d<<2)>>2]}J[f+24>>2]=0;J[f+28>>2]=0;J[f+16>>2]=0;J[f+20>>2]=0;J[f+8>>2]=0;J[f+12>>2]=0;ib(b,d,H[b+24|0],f+8|0);e=J[f+8>>2];b=J[f+56>>2];d=e-b|0;h=J[f+60>>2];j=J[f+12>>2]-(h+(b>>>0>e>>>0)|0)|0;p=J[f+40>>2];e=J[f+64>>2];s=p-e|0;t=J[f+68>>2];p=J[f+44>>2]-(t+(e>>>0>p>>>0)|0)|0;u=Al(d,j,s,p);v=n-u|0;n=g-(fa+(n>>>0>>0)|0)|0;o=v;g=J[f+16>>2];u=g-e|0;t=J[f+20>>2]-((e>>>0>g>>>0)+t|0)|0;g=J[f+32>>2];v=g-b|0;h=J[f+36>>2]-((b>>>0>g>>>0)+h|0)|0;e=Al(u,t,v,h);b=o+e|0;g=fa+n|0;g=b>>>0>>0?g+1|0:g;n=b;e=l;o=d;x=j;b=J[f+48>>2];l=J[f+72>>2];d=b-l|0;j=J[f+76>>2];w=J[f+52>>2]-(j+(b>>>0>>0)|0)|0;o=Al(o,x,d,w);e=e+o|0;b=fa+m|0;b=e>>>0>>0?b+1|0:b;m=J[f+24>>2];o=m-l|0;j=J[f+28>>2]-((l>>>0>m>>>0)+j|0)|0;m=Al(o,j,v,h);l=e-m|0;m=b-(fa+(e>>>0>>0)|0)|0;b=Al(u,t,d,w);e=q-b|0;b=r-(fa+(b>>>0>q>>>0)|0)|0;r=Al(o,j,s,p);q=r+e|0;b=fa+b|0;b=q>>>0>>0?b+1|0:b;r=b;b=J[f+88>>2];e=J[f+80>>2];d:{if(K[f+92|0]){e:{f:{g:{h:{if((b|0)==-1){break h}d=b+1|0;b=(d>>>0)%3|0?d:b-2|0;if((b|0)==-1|J[J[e>>2]+(b>>>3&536870908)>>2]>>>b&1){break h}b=J[J[J[e+64>>2]+12>>2]+(b<<2)>>2];if((b|0)!=-1){break g}}J[f+88>>2]=-1;break f}d=b+1|0;b=(d>>>0)%3|0?d:b-2|0;J[f+88>>2]=b;if((b|0)!=-1){break e}}b=J[f+84>>2];d=-1;i:{if((b|0)==-1){break i}j:{if((b>>>0)%3|0){b=b-1|0;break j}b=b+2|0;d=-1;if((b|0)==-1){break i}}d=-1;if(J[J[e>>2]+(b>>>3&536870908)>>2]>>>b&1){break i}b=J[J[J[e+64>>2]+12>>2]+(b<<2)>>2];d=-1;if((b|0)==-1){break i}d=b-1|0;if((b>>>0)%3|0){break i}d=b+2|0}H[f+92|0]=0;J[f+88>>2]=d;break d}if((b|0)!=J[f+84>>2]){break d}J[f+88>>2]=-1;break d}d=-1;k:{if((b|0)==-1){break k}l:{if((b>>>0)%3|0){b=b-1|0;break l}b=b+2|0;d=-1;if((b|0)==-1){break k}}d=-1;if(J[J[e>>2]+(b>>>3&536870908)>>2]>>>b&1){break k}b=J[J[J[e+64>>2]+12>>2]+(b<<2)>>2];d=-1;if((b|0)==-1){break k}d=b-1|0;if((b>>>0)%3|0){break k}d=b+2|0}J[f+88>>2]=d}b=J[f+88>>2];if((b|0)!=-1){continue}break}}b=r>>31;e=b^q;j=e-b|0;h=(b^r)-((b>>>0>e>>>0)+b|0)|0;p=-1;e=2147483647;b=m>>31;k=b^l;d=(b^m)-((b>>>0>k>>>0)+b|0)|0;b=k-b|0;s=b^-1;i=d^2147483647;k=g;m:{n:{if(!J[a+28>>2]){if((i|0)==(h|0)&j>>>0>s>>>0|i>>>0>>0){break m}i=g;a=b;e=b+j|0;b=d+h|0;b=a>>>0>e>>>0?b+1|0:b;a=g>>31;d=a;h=d^n;j=h-d|0;g=e+j|0;d=(d^i)-((d>>>0>h>>>0)+d|0)|0;a=g;g=d^2147483647;g=(g|0)==(b|0)&(j^-1)>>>0>>0|b>>>0>g>>>0;a=g?-1:a;if(!(g&0)&(a|0)<=536870912|(a|0)<536870912){break m}b=0;a=a>>>29|0;break n}o:{if((i|0)==(h|0)&j>>>0>s>>>0|i>>>0>>0){break o}a=b;i=b+j|0;b=d+h|0;b=a>>>0>i>>>0?b+1|0:b;a=i;h=g;d=g>>31;g=d;i=d^n;d=(d^h)-(d+(d>>>0>i>>>0)|0)|0;g=i-g|0;i=d^2147483647;if((i|0)==(b|0)&(g^-1)>>>0>>0|b>>>0>i>>>0){break o}b=b+d|0;a=a+g|0;b=a>>>0>>0?b+1|0:b;p=a;e=b;if(!b&a>>>0<536870913){break m}}b=e>>>29|0;a=(e&536870911)<<3|p>>>29}n=Bl(n,k,a,b);l=Bl(l,m,a,b);q=Bl(q,r,a,b)}J[c+8>>2]=n;J[c+4>>2]=l;J[c>>2]=q;ea=f+96|0;return}va();B()}va();B()}va();B()}function Yh(a){a=a|0;var b=0,c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=Q(0),p=0;d=1;a:{if(!J[a+80>>2]){break a}b=J[a+8>>2];if((J[a+12>>2]-b|0)<=0){break a}while(1){c=J[(n<<2)+b>>2];m=0;i=0;d=0;b=-1;b:{c:{d:{e:{switch(J[c+28>>2]-1|0){case 8:f:{switch(K[c+24|0]-1|0){case 0:e=ea+-64|0;ea=e;J[e+40>>2]=0;J[e+44>>2]=0;J[e+32>>2]=0;J[e+36>>2]=0;J[e+48>>2]=1065353216;b=J[c+80>>2];J[e+24>>2]=0;J[e+16>>2]=0;J[e+20>>2]=0;g:{h:{if(b){if(b>>>0>=1073741824){break h}f=b<<2;j=ra(f);J[e+16>>2]=j;b=f+j|0;J[e+24>>2]=b;sa(j,0,f);J[e+20>>2]=b;while(1){b=J[J[c>>2]>>2];f=J[c+48>>2]+Al(J[c+40>>2],J[c+44>>2],i,0)|0;b=b+f|0;o=(x(2,K[b|0]|K[b+1|0]<<8|(K[b+2|0]<<16|K[b+3|0]<<24)),D());N[e+28>>2]=o;i:{j:{g=J[e+36>>2];k:{if(!g){break k}p=J[e+32>>2];h=(C(o),v(2));l=h^318;f=Dl(g)>>>0>1;b=l&g-1;l:{if(!f){break l}b=l;if(b>>>0>>0){break l}b=(l>>>0)%(g>>>0)|0}k=b;b=J[p+(k<<2)>>2];if(!b){break k}b=J[b>>2];if(!b){break k}if(!f){g=g-1|0;while(1){f=J[b+4>>2];m:{if((f|0)!=(l|0)){if((k|0)==(f&g)){break m}break k}if((h|0)==J[b+8>>2]){break j}}b=J[b>>2];if(b){continue}break}break k}while(1){f=J[b+4>>2];n:{if((f|0)!=(l|0)){if(f>>>0>=g>>>0){f=(f>>>0)%(g>>>0)|0}if((f|0)==(k|0)){break n}break k}if((h|0)==J[b+8>>2]){break j}}b=J[b>>2];if(b){continue}break}}J[e+12>>2]=m;N[e+8>>2]=o;b=e+8|0;hf(e+56|0,e+32|0,b,b);b=J[c+40>>2];ta(J[J[c>>2]>>2]+P(b,m)|0,e+28|0,b);j=J[e+16>>2];J[j+(i<<2)>>2]=m;m=m+1|0;break i}J[(i<<2)+j>>2]=J[b+12>>2]}b=i+1|0;d=b?d:d+1|0;i=b;b=J[c+80>>2];if(!d&b>>>0>i>>>0){continue}break}if((b|0)!=(m|0)){o:{if(!K[c+84|0]){b=J[c+72>>2];h=J[c+68>>2];if((b|0)==(h|0)){break o}b=b-h>>2;d=b>>>0<=1?1:b;k=d&3;g=0;b=0;if(d-1>>>0>=3){f=d&-4;l=0;while(1){i=b<<2;d=i+h|0;J[d>>2]=J[(J[d>>2]<<2)+j>>2];d=h+(i|4)|0;J[d>>2]=J[(J[d>>2]<<2)+j>>2];d=h+(i|8)|0;J[d>>2]=J[(J[d>>2]<<2)+j>>2];d=h+(i|12)|0;J[d>>2]=J[(J[d>>2]<<2)+j>>2];b=b+4|0;l=l+4|0;if((f|0)!=(l|0)){continue}break}}if(!k){break o}while(1){d=h+(b<<2)|0;J[d>>2]=J[(J[d>>2]<<2)+j>>2];b=b+1|0;g=g+1|0;if((k|0)!=(g|0)){continue}break}break o}H[c+84|0]=0;k=c+68|0;d=J[c+68>>2];f=J[c+72>>2]-d>>2;p:{if(f>>>0>>0){La(k,b-f|0,2176);b=J[c+80>>2];break p}if(b>>>0>=f>>>0){break p}J[c+72>>2]=d+(b<<2)}if(!b){break o}i=J[k>>2];g=0;h=0;if(b>>>0>=4){f=b&-4;l=0;while(1){k=h<<2;J[k+i>>2]=J[j+k>>2];d=k|4;J[d+i>>2]=J[d+j>>2];d=k|8;J[d+i>>2]=J[d+j>>2];d=k|12;J[d+i>>2]=J[d+j>>2];h=h+4|0;l=l+4|0;if((f|0)!=(l|0)){continue}break}}d=b&3;if(!d){break o}while(1){b=h<<2;J[b+i>>2]=J[b+j>>2];h=h+1|0;g=g+1|0;if((d|0)!=(g|0)){continue}break}}J[c+80>>2]=m}qa(j)}b=J[e+40>>2];if(b){while(1){d=J[b>>2];qa(b);b=d;if(b){continue}break}}b=J[e+32>>2];J[e+32>>2]=0;if(b){qa(b)}ea=e- -64|0;b=m;break g}ua();B()}break d;case 1:b=Bd(c,c);break d;case 2:b=Ad(c,c);break d;case 3:break f;default:break c}}b=zd(c,c);break d;case 0:q:{switch(K[c+24|0]-1|0){case 0:b=Lf(c,c);break d;case 1:b=If(c,c);break d;case 2:b=Ff(c,c);break d;case 3:break q;default:break c}}b=Bf(c,c);break d;case 1:case 10:r:{switch(K[c+24|0]-1|0){case 0:b=Lf(c,c);break d;case 1:b=If(c,c);break d;case 2:b=Ff(c,c);break d;case 3:break r;default:break c}}b=Bf(c,c);break d;case 3:s:{switch(K[c+24|0]-1|0){case 0:b=Af(c,c);break d;case 1:b=vf(c,c);break d;case 2:b=sf(c,c);break d;case 3:break s;default:break c}}b=rf(c,c);break d;case 2:t:{switch(K[c+24|0]-1|0){case 0:b=Af(c,c);break d;case 1:b=vf(c,c);break d;case 2:b=sf(c,c);break d;case 3:break t;default:break c}}b=rf(c,c);break d;case 5:u:{switch(K[c+24|0]-1|0){case 0:b=pf(c,c);break d;case 1:b=Bd(c,c);break d;case 2:b=Ad(c,c);break d;case 3:break u;default:break c}}b=zd(c,c);break d;case 4:break e;default:break b}}v:{switch(K[c+24|0]-1|0){case 0:b=pf(c,c);break d;case 1:b=Bd(c,c);break d;case 2:b=Ad(c,c);break d;case 3:break v;default:break c}}b=zd(c,c)}if(b){break b}}b=-1}d=b;if(b){n=n+1|0;b=J[a+8>>2];if((n|0)>2]-b>>2){continue}}break}d=(d|0)!=0}return d|0}function Pc(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0;e=ea-96|0;ea=e;d=J[a+16>>2];H[e+92|0]=1;J[e+88>>2]=b;J[e+84>>2]=b;J[e+80>>2]=d;a:{if((b|0)==-1){break a}k=J[a+20>>2];f=J[k>>2];d=J[J[d>>2]+(b<<2)>>2];if(d>>>0>=J[k+4>>2]-f>>2>>>0){break a}f=J[J[a+8>>2]+(J[f+(d<<2)>>2]<<2)>>2];d=J[a+4>>2];if(!K[d+84|0]){f=J[J[d+68>>2]+(f<<2)>>2]}J[e+72>>2]=0;J[e+76>>2]=0;k=e- -64|0;J[k>>2]=0;J[k+4>>2]=0;J[e+56>>2]=0;J[e+60>>2]=0;ib(d,f,H[d+24|0],e+56|0);d=b+1|0;k=(d>>>0)%3|0?d:b-2|0;i=((b>>>0)%3|0?-1:2)+b|0;b:{c:{while(1){f=k;d=i;d:{if(!J[a+28>>2]){break d}d=b+1|0;f=(d>>>0)%3|0?d:b-2|0;d=b-1|0;if((b>>>0)%3|0){break d}d=b+2|0}if((f|0)==-1){break b}h=J[a+20>>2];b=J[h>>2];f=J[J[J[a+16>>2]>>2]+(f<<2)>>2];if(f>>>0>=J[h+4>>2]-b>>2>>>0){break b}f=J[J[a+8>>2]+(J[b+(f<<2)>>2]<<2)>>2];b=J[a+4>>2];if(!K[b+84|0]){f=J[J[b+68>>2]+(f<<2)>>2]}J[e+48>>2]=0;J[e+52>>2]=0;J[e+40>>2]=0;J[e+44>>2]=0;J[e+32>>2]=0;J[e+36>>2]=0;ib(b,f,H[b+24|0],e+32|0);if((d|0)==-1){break c}f=J[a+20>>2];b=J[f>>2];d=J[J[J[a+16>>2]>>2]+(d<<2)>>2];if(d>>>0>=J[f+4>>2]-b>>2>>>0){break c}f=J[J[a+8>>2]+(J[b+(d<<2)>>2]<<2)>>2];b=J[a+4>>2];if(!K[b+84|0]){f=J[J[b+68>>2]+(f<<2)>>2]}J[e+24>>2]=0;J[e+28>>2]=0;J[e+16>>2]=0;J[e+20>>2]=0;J[e+8>>2]=0;J[e+12>>2]=0;ib(b,f,H[b+24|0],e+8|0);d=J[e+8>>2];b=J[e+56>>2];f=d-b|0;h=J[e+60>>2];j=J[e+12>>2]-(h+(b>>>0>d>>>0)|0)|0;p=J[e+40>>2];d=J[e+64>>2];s=p-d|0;t=J[e+68>>2];p=J[e+44>>2]-(t+(d>>>0>p>>>0)|0)|0;u=Al(f,j,s,p);v=n-u|0;n=g-(fa+(n>>>0>>0)|0)|0;o=v;g=J[e+16>>2];u=g-d|0;t=J[e+20>>2]-((d>>>0>g>>>0)+t|0)|0;g=J[e+32>>2];v=g-b|0;h=J[e+36>>2]-((b>>>0>g>>>0)+h|0)|0;d=Al(u,t,v,h);b=o+d|0;g=fa+n|0;g=b>>>0>>0?g+1|0:g;n=b;d=l;o=f;x=j;b=J[e+48>>2];l=J[e+72>>2];f=b-l|0;j=J[e+76>>2];w=J[e+52>>2]-(j+(b>>>0>>0)|0)|0;o=Al(o,x,f,w);d=d+o|0;b=fa+m|0;b=d>>>0>>0?b+1|0:b;m=J[e+24>>2];o=m-l|0;j=J[e+28>>2]-((l>>>0>m>>>0)+j|0)|0;m=Al(o,j,v,h);l=d-m|0;m=b-(fa+(d>>>0>>0)|0)|0;b=Al(u,t,f,w);d=q-b|0;b=r-(fa+(b>>>0>q>>>0)|0)|0;r=Al(o,j,s,p);q=r+d|0;b=fa+b|0;b=q>>>0>>0?b+1|0:b;r=b;b=J[e+88>>2];f=J[e+80>>2];e:{if(K[e+92|0]){f:{g:{h:{i:{if((b|0)==-1){break i}d=b+1|0;b=(d>>>0)%3|0?d:b-2|0;if((b|0)==-1){break i}b=J[J[f+12>>2]+(b<<2)>>2];if((b|0)!=-1){break h}}J[e+88>>2]=-1;break g}d=b+1|0;b=(d>>>0)%3|0?d:b-2|0;J[e+88>>2]=b;if((b|0)!=-1){break f}}b=J[e+84>>2];d=-1;j:{if((b|0)==-1){break j}k:{if((b>>>0)%3|0){b=b-1|0;break k}b=b+2|0;d=-1;if((b|0)==-1){break j}}b=J[J[f+12>>2]+(b<<2)>>2];d=-1;if((b|0)==-1){break j}d=b-1|0;if((b>>>0)%3|0){break j}d=b+2|0}H[e+92|0]=0;J[e+88>>2]=d;break e}if((b|0)!=J[e+84>>2]){break e}J[e+88>>2]=-1;break e}d=-1;l:{if((b|0)==-1){break l}m:{if((b>>>0)%3|0){b=b-1|0;break m}b=b+2|0;d=-1;if((b|0)==-1){break l}}b=J[J[f+12>>2]+(b<<2)>>2];d=-1;if((b|0)==-1){break l}d=b-1|0;if((b>>>0)%3|0){break l}d=b+2|0}J[e+88>>2]=d}b=J[e+88>>2];if((b|0)!=-1){continue}break}b=r>>31;d=b^q;j=d-b|0;h=(b^r)-((b>>>0>d>>>0)+b|0)|0;p=-1;d=2147483647;b=m>>31;k=b^l;f=(b^m)-((b>>>0>k>>>0)+b|0)|0;b=k-b|0;s=b^-1;i=f^2147483647;k=g;n:{o:{if(!J[a+28>>2]){if((i|0)==(h|0)&j>>>0>s>>>0|i>>>0>>0){break n}i=g;a=b;d=b+j|0;b=f+h|0;b=a>>>0>d>>>0?b+1|0:b;a=g>>31;h=a^n;j=h-a|0;g=d+j|0;f=(a^i)-((a>>>0>h>>>0)+a|0)|0;a=g;g=f^2147483647;g=(g|0)==(b|0)&(j^-1)>>>0>>0|b>>>0>g>>>0;a=g?-1:a;if(!(g&0)&(a|0)<=536870912|(a|0)<536870912){break n}b=0;a=a>>>29|0;break o}p:{if((i|0)==(h|0)&j>>>0>s>>>0|i>>>0>>0){break p}a=b;i=b+j|0;b=f+h|0;b=a>>>0>i>>>0?b+1|0:b;a=i;h=g;f=g>>31;g=f;i=f^n;f=(f^h)-(f+(f>>>0>i>>>0)|0)|0;g=i-g|0;i=f^2147483647;if((i|0)==(b|0)&(g^-1)>>>0>>0|b>>>0>i>>>0){break p}b=b+f|0;a=a+g|0;b=a>>>0>>0?b+1|0:b;p=a;d=b;if(!b&a>>>0<536870913){break n}}b=d>>>29|0;a=(d&536870911)<<3|p>>>29}n=Bl(n,k,a,b);l=Bl(l,m,a,b);q=Bl(q,r,a,b)}J[c+8>>2]=n;J[c+4>>2]=l;J[c>>2]=q;ea=e+96|0;return}va();B()}va();B()}va();B()}function Vk(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0;l=ea-48|0;ea=l;J[a+68>>2]=f;o=a+112|0;Ca(o);d=J[a+56>>2];e=J[d>>2];d=J[d+4>>2];J[l+40>>2]=0;J[l+32>>2]=0;J[l+36>>2]=0;J[l+16>>2]=0;J[l+20>>2]=0;J[l+8>>2]=0;J[l+12>>2]=0;J[l>>2]=0;J[l+4>>2]=0;a:{d=d-e|0;if((d|0)>0){p=a+60|0;d=d>>>2|0;q=d>>>0<=1?1:d;r=c+4|0;while(1){e=J[a+56>>2];d=J[e>>2];if(J[e+4>>2]-d>>2>>>0<=n>>>0){break a}Rc(p,J[d+(n<<2)>>2],l+32|0);f=J[l+36>>2];d=f>>31;e=J[l+32>>2];g=e>>31;h=J[l+40>>2];j=h>>31;j=(h^j)-j|0;g=j+((d^f)-d+((e^g)-g)|0)|0;d=0;d=j>>>0>g>>>0?1:d;b:{if(!(d|g)){i=J[a+108>>2];k=i;break b}i=J[a+108>>2];k=i>>31;f=Bl(Al(i,k,f,f>>31),fa,g,d);j=f>>31;k=Bl(Al(i,k,e,e>>31),fa,g,d);d=k>>31;d=(f^j)-j+((d^k)-d)|0;h=(h|0)<0?d-i|0:i-d|0}c:{if((k|0)>=0){e=f+i|0;j=i+h|0;break c}d:{if((f|0)<0){d=h>>31;e=(d^h)-d|0;break d}d=h>>31;e=J[a+100>>2]+(d-(d^h)|0)|0}if((h|0)<0){d=f>>31;j=(d^f)-d|0;break c}d=f>>31;j=J[a+100>>2]+(d-(d^f)|0)|0}d=J[a+100>>2];m=d;g=d;e:{if(!(e|j)){break e}if(!((d|0)!=(j|0)|e)){m=j;g=j;break e}if(!((d|0)!=(e|0)|j)){m=e;g=e;break e}if(!((i|0)>=(j|0)|e)){m=(i<<1)-j|0;g=0;break e}if(!((d|0)!=(e|0)|(i|0)<=(j|0))){m=(i<<1)-j|0;g=e;break e}if(!((d|0)!=(j|0)|(e|0)>=(i|0))){m=j;g=(i<<1)-e|0;break e}if(j){m=j;g=e;break e}m=0;g=e;if((e|0)<=(i|0)){break e}g=(i<<1)-e|0}J[l+28>>2]=m;J[l+24>>2]=g;J[l+40>>2]=0-h;J[l+36>>2]=0-f;J[l+32>>2]=0-k;f:{if((k|0)<=0){k=i-h|0;e=i-f|0;break f}e=f>>31;e=(e^f)-e|0;k=(h|0)>0?e:d-e|0;e=h>>31;e=(e^h)-e|0;e=(f|0)>0?e:d-e|0}g:{if(!(e|k)){k=d;break g}if(!((d|0)!=(k|0)|e)){k=d;break g}f=(d|0)!=(e|0);if(!(k|f)){k=d;break g}if(!((i|0)>=(k|0)|e)){k=(i<<1)-k|0;d=0;break g}if(!((i|0)<=(k|0)|f)){k=(i<<1)-k|0;break g}if(!((d|0)!=(k|0)|(e|0)>=(i|0))){k=d;d=(i<<1)-e|0;break g}if(k){d=e;break g}k=0;if((e|0)<=(i|0)){d=e;break g}d=(i<<1)-e|0}J[l+20>>2]=k;J[l+16>>2]=d;h=J[a+8>>2];h:{if((h|0)<=0){break h}k=(n<<3)+b|0;j=J[a+32>>2];e=0;g=l+24|0;while(1){i=j;if((h|0)>0){i=J[a+32>>2];f=0;while(1){d=f<<2;m=J[d+g>>2];h=J[a+16>>2];i:{if((m|0)>(h|0)){J[d+i>>2]=h;break i}d=d+i|0;h=J[a+12>>2];if((h|0)>(m|0)){J[d>>2]=h;break i}J[d>>2]=m}f=f+1|0;h=J[a+8>>2];if((f|0)<(h|0)){continue}break}}f=e<<2;d=f+(l+8|0)|0;g=J[f+k>>2]-J[f+i>>2]|0;J[d>>2]=g;f=d;d=J[a+28>>2];j:{if((g|0)<(d|0)){g=g+J[a+20>>2]|0}else{if((g|0)<=J[a+24>>2]){break j}g=g-J[a+20>>2]|0}J[f>>2]=g}g=i;e=e+1|0;if((e|0)<(h|0)){continue}break}if((h|0)<=0){break h}j=J[a+32>>2];e=0;g=l+16|0;while(1){i=j;if((h|0)>0){i=J[a+32>>2];f=0;while(1){d=f<<2;m=J[d+g>>2];h=J[a+16>>2];k:{if((m|0)>(h|0)){J[d+i>>2]=h;break k}d=d+i|0;h=J[a+12>>2];if((h|0)>(m|0)){J[d>>2]=h;break k}J[d>>2]=m}f=f+1|0;h=J[a+8>>2];if((f|0)<(h|0)){continue}break}d=J[a+28>>2]}g=e<<2;f=g+l|0;g=J[k+g>>2]-J[i+g>>2]|0;J[f>>2]=g;l:{if((d|0)>(g|0)){g=g+J[a+20>>2]|0}else{if((g|0)<=J[a+24>>2]){break l}g=g-J[a+20>>2]|0}J[f>>2]=g}g=i;e=e+1|0;if((e|0)<(h|0)){continue}break}}f=J[l+8>>2];e=J[a+108>>2];m:{if((f|0)>(e|0)){f=f-J[a+96>>2]|0;break m}if((0-e|0)<=(f|0)){break m}f=J[a+96>>2]+f|0}J[l+8>>2]=f;h=J[l+12>>2];n:{if((e|0)<(h|0)){h=h-J[a+96>>2]|0;break n}if((0-e|0)<=(h|0)){break n}h=J[a+96>>2]+h|0}J[l+12>>2]=h;d=J[l>>2];o:{if((e|0)<(d|0)){d=d-J[a+96>>2]|0;break o}if((0-e|0)<=(d|0)){break o}d=J[a+96>>2]+d|0}g=n<<1;J[l>>2]=d;k=J[l+4>>2];p:{if((e|0)<(k|0)){k=k-J[a+96>>2]|0;break p}if((0-e|0)<=(k|0)){break p}k=J[a+96>>2]+k|0}J[l+4>>2]=k;e=h>>31;e=(e^h)-e|0;j=f>>31;j=(j^f)-j|0;e=j>>>0>(e^2147483647)>>>0?2147483647:e+j|0;j=k>>31;j=(j^k)-j|0;i=d>>31;i=(i^d)-i|0;j=i>>>0>(j^2147483647)>>>0?2147483647:j+i|0;Ga(o,e>>>0>=j>>>0);g=g<<2;m=d;d=e>>>0>>0;e=d?f:m;J[g+c>>2]=(J[a+96>>2]&e>>31)+e;d=d?h:k;J[g+r>>2]=(J[a+96>>2]&d>>31)+d;n=n+1|0;if((q|0)!=(n|0)){continue}break}}ea=l+48|0;return 1}va();B()}function Lk(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0;l=ea-48|0;ea=l;J[a+68>>2]=f;o=a+112|0;Ca(o);d=J[a+56>>2];e=J[d>>2];d=J[d+4>>2];J[l+40>>2]=0;J[l+32>>2]=0;J[l+36>>2]=0;J[l+16>>2]=0;J[l+20>>2]=0;J[l+8>>2]=0;J[l+12>>2]=0;J[l>>2]=0;J[l+4>>2]=0;a:{d=d-e|0;if((d|0)>0){p=a+60|0;d=d>>>2|0;q=d>>>0<=1?1:d;r=c+4|0;while(1){e=J[a+56>>2];d=J[e>>2];if(J[e+4>>2]-d>>2>>>0<=n>>>0){break a}Pc(p,J[d+(n<<2)>>2],l+32|0);f=J[l+36>>2];d=f>>31;e=J[l+32>>2];g=e>>31;h=J[l+40>>2];j=h>>31;j=(h^j)-j|0;g=j+((d^f)-d+((e^g)-g)|0)|0;d=0;d=j>>>0>g>>>0?1:d;b:{if(!(d|g)){i=J[a+108>>2];k=i;break b}i=J[a+108>>2];k=i>>31;f=Bl(Al(i,k,f,f>>31),fa,g,d);j=f>>31;k=Bl(Al(i,k,e,e>>31),fa,g,d);d=k>>31;d=(f^j)-j+((d^k)-d)|0;h=(h|0)<0?d-i|0:i-d|0}c:{if((k|0)>=0){e=f+i|0;j=i+h|0;break c}d:{if((f|0)<0){d=h>>31;e=(d^h)-d|0;break d}d=h>>31;e=J[a+100>>2]+(d-(d^h)|0)|0}if((h|0)<0){d=f>>31;j=(d^f)-d|0;break c}d=f>>31;j=J[a+100>>2]+(d-(d^f)|0)|0}d=J[a+100>>2];m=d;g=d;e:{if(!(e|j)){break e}if(!((d|0)!=(j|0)|e)){m=j;g=j;break e}if(!((d|0)!=(e|0)|j)){m=e;g=e;break e}if(!((i|0)>=(j|0)|e)){m=(i<<1)-j|0;g=0;break e}if(!((d|0)!=(e|0)|(i|0)<=(j|0))){m=(i<<1)-j|0;g=e;break e}if(!((d|0)!=(j|0)|(e|0)>=(i|0))){m=j;g=(i<<1)-e|0;break e}if(j){m=j;g=e;break e}m=0;g=e;if((e|0)<=(i|0)){break e}g=(i<<1)-e|0}J[l+28>>2]=m;J[l+24>>2]=g;J[l+40>>2]=0-h;J[l+36>>2]=0-f;J[l+32>>2]=0-k;f:{if((k|0)<=0){k=i-h|0;e=i-f|0;break f}e=f>>31;e=(e^f)-e|0;k=(h|0)>0?e:d-e|0;e=h>>31;e=(e^h)-e|0;e=(f|0)>0?e:d-e|0}g:{if(!(e|k)){k=d;break g}if(!((d|0)!=(k|0)|e)){k=d;break g}f=(d|0)!=(e|0);if(!(k|f)){k=d;break g}if(!((i|0)>=(k|0)|e)){k=(i<<1)-k|0;d=0;break g}if(!((i|0)<=(k|0)|f)){k=(i<<1)-k|0;break g}if(!((d|0)!=(k|0)|(e|0)>=(i|0))){k=d;d=(i<<1)-e|0;break g}if(k){d=e;break g}k=0;if((e|0)<=(i|0)){d=e;break g}d=(i<<1)-e|0}J[l+20>>2]=k;J[l+16>>2]=d;h=J[a+8>>2];h:{if((h|0)<=0){break h}k=(n<<3)+b|0;j=J[a+32>>2];e=0;g=l+24|0;while(1){i=j;if((h|0)>0){i=J[a+32>>2];f=0;while(1){d=f<<2;m=J[d+g>>2];h=J[a+16>>2];i:{if((m|0)>(h|0)){J[d+i>>2]=h;break i}d=d+i|0;h=J[a+12>>2];if((h|0)>(m|0)){J[d>>2]=h;break i}J[d>>2]=m}f=f+1|0;h=J[a+8>>2];if((f|0)<(h|0)){continue}break}}f=e<<2;d=f+(l+8|0)|0;g=J[f+k>>2]-J[f+i>>2]|0;J[d>>2]=g;f=d;d=J[a+28>>2];j:{if((g|0)<(d|0)){g=g+J[a+20>>2]|0}else{if((g|0)<=J[a+24>>2]){break j}g=g-J[a+20>>2]|0}J[f>>2]=g}g=i;e=e+1|0;if((e|0)<(h|0)){continue}break}if((h|0)<=0){break h}j=J[a+32>>2];e=0;g=l+16|0;while(1){i=j;if((h|0)>0){i=J[a+32>>2];f=0;while(1){d=f<<2;m=J[d+g>>2];h=J[a+16>>2];k:{if((m|0)>(h|0)){J[d+i>>2]=h;break k}d=d+i|0;h=J[a+12>>2];if((h|0)>(m|0)){J[d>>2]=h;break k}J[d>>2]=m}f=f+1|0;h=J[a+8>>2];if((f|0)<(h|0)){continue}break}d=J[a+28>>2]}g=e<<2;f=g+l|0;g=J[k+g>>2]-J[i+g>>2]|0;J[f>>2]=g;l:{if((d|0)>(g|0)){g=g+J[a+20>>2]|0}else{if((g|0)<=J[a+24>>2]){break l}g=g-J[a+20>>2]|0}J[f>>2]=g}g=i;e=e+1|0;if((e|0)<(h|0)){continue}break}}f=J[l+8>>2];e=J[a+108>>2];m:{if((f|0)>(e|0)){f=f-J[a+96>>2]|0;break m}if((0-e|0)<=(f|0)){break m}f=J[a+96>>2]+f|0}J[l+8>>2]=f;h=J[l+12>>2];n:{if((e|0)<(h|0)){h=h-J[a+96>>2]|0;break n}if((0-e|0)<=(h|0)){break n}h=J[a+96>>2]+h|0}J[l+12>>2]=h;d=J[l>>2];o:{if((e|0)<(d|0)){d=d-J[a+96>>2]|0;break o}if((0-e|0)<=(d|0)){break o}d=J[a+96>>2]+d|0}g=n<<1;J[l>>2]=d;k=J[l+4>>2];p:{if((e|0)<(k|0)){k=k-J[a+96>>2]|0;break p}if((0-e|0)<=(k|0)){break p}k=J[a+96>>2]+k|0}J[l+4>>2]=k;e=h>>31;e=(e^h)-e|0;j=f>>31;j=(j^f)-j|0;e=j>>>0>(e^2147483647)>>>0?2147483647:e+j|0;j=k>>31;j=(j^k)-j|0;i=d>>31;i=(i^d)-i|0;j=i>>>0>(j^2147483647)>>>0?2147483647:j+i|0;Ga(o,e>>>0>=j>>>0);g=g<<2;m=d;d=e>>>0>>0;e=d?f:m;J[g+c>>2]=(J[a+96>>2]&e>>31)+e;d=d?h:k;J[g+r>>2]=(J[a+96>>2]&d>>31)+d;n=n+1|0;if((q|0)!=(n|0)){continue}break}}ea=l+48|0;return 1}va();B()}function Dg(a,b,c,d){var e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0;o=ea-32|0;ea=o;a:{if((c|0)<=0){break a}s=c&3;b:{if(c>>>0<4){c=0;break b}A=c&-4;c=0;while(1){t=c|1;k=(t<<3)+b|0;g=J[k+4>>2];u=J[k>>2];v=c|2;i=(v<<3)+b|0;k=J[i+4>>2];w=J[i>>2];x=c|3;j=(x<<3)+b|0;i=J[j+4>>2];y=J[j>>2];r=l;l=(c<<3)+b|0;z=J[l+4>>2];j=J[l>>2];l=i|y?x:k|w?v:g|u?t:!(z|j)?r:c;e=e+z|0;h=j+h|0;e=h>>>0>>0?e+1|0:e;j=h+u|0;e=e+g|0;e=j>>>0>>0?e+1|0:e;g=j+w|0;e=e+k|0;e=g>>>0>>0?e+1|0:e;k=g;g=g+y|0;e=e+i|0;e=g>>>0>>0?e+1|0:e;h=g;c=c+4|0;f=f+4|0;if((A|0)!=(f|0)){continue}break}}if(!s){break a}while(1){k=l;l=(c<<3)+b|0;g=J[l+4>>2];f=J[l>>2];l=!(g|f)?k:c;c=c+1|0;e=e+g|0;k=f+h|0;e=k>>>0>>0?e+1|0:e;h=k;n=n+1|0;if((s|0)!=(n|0)){continue}break}}k=l+1|0;J[a+12>>2]=k;f=J[a>>2];c=J[a+4>>2]-f>>3;c:{if(c>>>0>>0){Ya(a,k-c|0);break c}if(c>>>0<=k>>>0){break c}J[a+4>>2]=f+(k<<3)}g=0;d:{e:{f:{g:{h:{if((l|0)>=0){q=+(h>>>0)+ +(e>>>0)*4294967296;f=J[a>>2];c=0;while(1){i=c<<3;j=i+b|0;e=J[j+4>>2];j=J[j>>2];n=(e|j)!=0;h=f+i|0;m=(+(j>>>0)+ +(e>>>0)*4294967296)/q*4096+.5;i:{if(m<4294967296&m>=0){e=~~m>>>0;break i}e=0}e=e?e:n?1:e;J[h>>2]=e;g=e+g|0;e=(c|0)==(l|0);c=c+1|0;if(!e){continue}break}if((g|0)==4096){break h}}J[o+16>>2]=0;J[o+8>>2]=0;J[o+12>>2]=0;i=0;j:{if(!k){break j}if(k>>>0>=1073741824){break g}j=k<<2;p=ra(j);J[o+8>>2]=p;f=0;e=sa(p,0,j);c=0;if(l>>>0>=7){n=k&-8;while(1){J[e+(c<<2)>>2]=c;h=c|1;J[e+(h<<2)>>2]=h;h=c|2;J[e+(h<<2)>>2]=h;h=c|3;J[e+(h<<2)>>2]=h;h=c|4;J[e+(h<<2)>>2]=h;h=c|5;J[e+(h<<2)>>2]=h;h=c|6;J[e+(h<<2)>>2]=h;h=c|7;J[e+(h<<2)>>2]=h;c=c+8|0;i=i+8|0;if((n|0)!=(i|0)){continue}break}}i=e+j|0;j=k&7;if(!j){break j}while(1){J[e+(c<<2)>>2]=c;c=c+1|0;f=f+1|0;if((j|0)!=(f|0)){continue}break}}J[o+24>>2]=a;c=i-p|0;e=c>>2;k:{l:{if((c|0)>=513){c=e;while(1){f=ra(c<<2);if(f){break l}f=c>>>0>1;c=c>>>1|0;if(f){continue}break}}ic(p,i,o+24|0,e,0,0);break k}ic(p,i,o+24|0,e,f,c);qa(f)}if((g|0)<4096){c=J[a>>2]+(J[i-4>>2]<<3)|0;J[c>>2]=(J[c>>2]-g|0)+4096;c=0;break f}if((l|0)>0){j=J[a>>2];n=g-4096|0;while(1){m=4096/+(g|0);f=l;while(1){m:{n:{e=j+(J[(f<<2)+p>>2]<<3)|0;c=J[e>>2];if(c>>>0>=2){h=e;r=c;q=V(m*+(c>>>0));o:{if(R(q)<2147483648){i=~~q;break o}i=-2147483648}e=(c|0)==(i|0)?1:c-i|0;c=(c|0)>(e|0)?e:c-1|0;c=(c|0)<(n|0)?c:n;J[h>>2]=r-c;n=n-c|0;g=g-c|0;if((g|0)!=4096){break n}g=4096;break m}if((f|0)!=(l|0)){break m}c=1;break f}c=(f|0)>1;f=f-1|0;if(c){continue}}break}c=0;if((n|0)>0){continue}break}break f}c=0;if(g>>>0<4097){break f}while(1)continue}if((l|0)<0){break d}break e}ua();B()}e=J[o+8>>2];if(e){qa(e)}if((l|0)<0|c){break d}}e=J[a>>2];g=0;n=0;c=0;if(l>>>0>=3){i=k&-4;p=0;while(1){f=n<<3;j=f+e|0;J[j+4>>2]=c;h=e+(f|8)|0;c=J[j>>2]+c|0;J[h+4>>2]=c;j=e+(f|16)|0;c=c+J[h>>2]|0;J[j+4>>2]=c;f=e+(f|24)|0;c=c+J[j>>2]|0;J[f+4>>2]=c;c=c+J[f>>2]|0;n=n+4|0;p=p+4|0;if((i|0)!=(p|0)){continue}break}}f=k&3;if(f){while(1){i=e+(n<<3)|0;J[i+4>>2]=c;n=n+1|0;c=J[i>>2]+c|0;g=g+1|0;if((f|0)!=(g|0)){continue}break}}if((c|0)!=4096){break d}c=0;m=0;p:{if((l|0)<0){break p}e=J[a>>2];if(l){l=k&-2;f=0;while(1){g=c<<3;i=J[g+e>>2];if(i){g=b+g|0;m=(+M[g>>2]+ +M[g+4>>2]*4294967296)*za(+(i>>>0)*.000244140625)+m}g=(c|1)<<3;i=J[g+e>>2];if(i){g=b+g|0;m=(+M[g>>2]+ +M[g+4>>2]*4294967296)*za(+(i>>>0)*.000244140625)+m}c=c+2|0;f=f+2|0;if((l|0)!=(f|0)){continue}break}}if(!(k&1)){break p}c=c<<3;e=J[c+e>>2];if(!e){break p}b=b+c|0;m=(+M[b>>2]+ +M[b+4>>2]*4294967296)*za(+(e>>>0)*.000244140625)+m}m=W(-m);q:{if(m<0x10000000000000000&m>=0){c=R(m)>=1?~~(m>0?T(V(m*2.3283064365386963e-10),4294967295):W((m-+(~~m>>>0>>>0))*2.3283064365386963e-10))>>>0:0;b=~~m>>>0;break q}c=0;b=0}J[a+16>>2]=b;J[a+20>>2]=c;Xa(a,d)}ea=o+32|0}function Gk(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0;b=ea-48|0;ea=b;g=J[J[a+4>>2]+48>>2];J[b+8>>2]=J[a+12>>2];c=ra(32);J[b+24>>2]=c;J[b+28>>2]=17;J[b+32>>2]=-2147483616;H[c+16|0]=K[1261];f=K[1257]|K[1258]<<8|(K[1259]<<16|K[1260]<<24);e=K[1253]|K[1254]<<8|(K[1255]<<16|K[1256]<<24);H[c+8|0]=e;H[c+9|0]=e>>>8;H[c+10|0]=e>>>16;H[c+11|0]=e>>>24;H[c+12|0]=f;H[c+13|0]=f>>>8;H[c+14|0]=f>>>16;H[c+15|0]=f>>>24;f=K[1249]|K[1250]<<8|(K[1251]<<16|K[1252]<<24);e=K[1245]|K[1246]<<8|(K[1247]<<16|K[1248]<<24);H[c|0]=e;H[c+1|0]=e>>>8;H[c+2|0]=e>>>16;H[c+3|0]=e>>>24;H[c+4|0]=f;H[c+5|0]=f>>>8;H[c+6|0]=f>>>16;H[c+7|0]=f>>>24;H[c+17|0]=0;c=kb(g,b+8|0,b+24|0,-1);if(H[b+35|0]<0){qa(J[b+24>>2])}J[b+32>>2]=-1;J[b+36>>2]=1065353216;J[b+24>>2]=-1;J[b+28>>2]=-1;J[b+40>>2]=-1;c=-1<>>0<4294967267){break a}J[b+24>>2]=c+1;c=-2<>2]=c^-1;c=c^-2;J[b+32>>2]=c;J[b+40>>2]=(c|0)/2;N[b+36>>2]=Q(2)/Q(c|0)}g=Xg(J[a+12>>2],J[a+4>>2]);h=J[J[a+4>>2]+48>>2];J[b+20>>2]=J[a+12>>2];c=ra(32);J[b+8>>2]=c;J[b+12>>2]=17;J[b+16>>2]=-2147483616;H[c+16|0]=K[1529];f=K[1525]|K[1526]<<8|(K[1527]<<16|K[1528]<<24);e=K[1521]|K[1522]<<8|(K[1523]<<16|K[1524]<<24);H[c+8|0]=e;H[c+9|0]=e>>>8;H[c+10|0]=e>>>16;H[c+11|0]=e>>>24;H[c+12|0]=f;H[c+13|0]=f>>>8;H[c+14|0]=f>>>16;H[c+15|0]=f>>>24;f=K[1517]|K[1518]<<8|(K[1519]<<16|K[1520]<<24);e=K[1513]|K[1514]<<8|(K[1515]<<16|K[1516]<<24);H[c|0]=e;H[c+1|0]=e>>>8;H[c+2|0]=e>>>16;H[c+3|0]=e>>>24;H[c+4|0]=f;H[c+5|0]=f>>>8;H[c+6|0]=f>>>16;H[c+7|0]=f>>>24;H[c+17|0]=0;c=kb(h,b+20|0,b+8|0,g);if(H[b+19|0]<0){qa(J[b+8>>2])}b:{c:{d:{switch(c|0){case 6:e=J[a+4>>2];h=J[a+12>>2];a=J[J[J[e+4>>2]+8>>2]+(h<<2)>>2];if((ga[J[J[e>>2]+8>>2]](e)|0)!=1){break c}c=b+24|0;f=ea-32|0;ea=f;i=J[J[J[e+4>>2]+8>>2]+(h<<2)>>2];e:{if((ga[J[J[e>>2]+8>>2]](e)|0)!=1){break e}j=ga[J[J[e>>2]+52>>2]](e)|0;g=ga[J[J[e>>2]+60>>2]](e,h)|0;if(!j|!g){break e}d=ga[J[J[e>>2]+56>>2]](e,h)|0;if(d){e=J[e+56>>2];J[f+20>>2]=d;J[f+16>>2]=e;J[f+28>>2]=g;J[f+24>>2]=g+12;d=ra(128);J[d+4>>2]=i;e=J[c+4>>2];J[d+8>>2]=J[c>>2];J[d+12>>2]=e;e=J[c+12>>2];J[d+16>>2]=J[c+8>>2];J[d+20>>2]=e;J[d+24>>2]=J[c+16>>2];c=J[f+20>>2];J[d+28>>2]=J[f+16>>2];J[d+32>>2]=c;c=J[f+28>>2];J[d+36>>2]=J[f+24>>2];J[d+40>>2]=c;J[d+48>>2]=0;J[d+52>>2]=0;J[d>>2]=7524;c=J[f+20>>2];J[d+56>>2]=J[f+16>>2];J[d+60>>2]=c;e=J[f+28>>2];c=d- -64|0;J[c>>2]=J[f+24>>2];J[c+4>>2]=e;J[d+88>>2]=1065353216;J[d+92>>2]=-1;J[d+80>>2]=-1;J[d+84>>2]=-1;J[d+72>>2]=1;J[d+76>>2]=-1;J[d+44>>2]=7784;J[d+96>>2]=0;J[d+100>>2]=0;J[d+120>>2]=0;J[d+124>>2]=0;J[d+112>>2]=0;J[d+116>>2]=0;J[d+104>>2]=0;J[d+108>>2]=0;break e}d=J[e+56>>2];J[f+20>>2]=j;J[f+16>>2]=d;J[f+28>>2]=g;J[f+24>>2]=g+12;d=ra(128);J[d+4>>2]=i;e=J[c+4>>2];J[d+8>>2]=J[c>>2];J[d+12>>2]=e;e=J[c+12>>2];J[d+16>>2]=J[c+8>>2];J[d+20>>2]=e;J[d+24>>2]=J[c+16>>2];c=J[f+20>>2];J[d+28>>2]=J[f+16>>2];J[d+32>>2]=c;c=J[f+28>>2];J[d+36>>2]=J[f+24>>2];J[d+40>>2]=c;J[d+48>>2]=0;J[d+52>>2]=0;J[d>>2]=9148;c=J[f+20>>2];J[d+56>>2]=J[f+16>>2];J[d+60>>2]=c;e=J[f+28>>2];c=d- -64|0;J[c>>2]=J[f+24>>2];J[c+4>>2]=e;J[d+88>>2]=1065353216;J[d+92>>2]=-1;J[d+80>>2]=-1;J[d+84>>2]=-1;J[d+72>>2]=1;J[d+76>>2]=-1;J[d+44>>2]=9392;J[d+96>>2]=0;J[d+100>>2]=0;J[d+120>>2]=0;J[d+124>>2]=0;J[d+112>>2]=0;J[d+116>>2]=0;J[d+104>>2]=0;J[d+108>>2]=0}ea=f+32|0;if(!d){break c}break b;case 0:break d;default:break b}}c=J[a+4>>2];a=J[J[J[c+4>>2]+8>>2]+(J[a+12>>2]<<2)>>2];if((ga[J[J[c>>2]+8>>2]](c)|0)!=1){break c}ga[J[J[c>>2]+8>>2]](c)|0}d=ra(28);J[d+4>>2]=a;a=J[b+28>>2];J[d+8>>2]=J[b+24>>2];J[d+12>>2]=a;a=J[b+36>>2];J[d+16>>2]=J[b+32>>2];J[d+20>>2]=a;J[d+24>>2]=J[b+40>>2];J[d>>2]=9804}ea=b+48|0;return d|0}function Pg(a,b,c,d,e,f){var g=0,h=0,i=0,j=0,k=0,l=0;h=ea-16|0;ea=h;J[h+12>>2]=b;b=ra(32);J[h>>2]=b;J[h+4>>2]=17;J[h+8>>2]=-2147483616;H[b+16|0]=K[1261];g=K[1257]|K[1258]<<8|(K[1259]<<16|K[1260]<<24);i=K[1253]|K[1254]<<8|(K[1255]<<16|K[1256]<<24);H[b+8|0]=i;H[b+9|0]=i>>>8;H[b+10|0]=i>>>16;H[b+11|0]=i>>>24;H[b+12|0]=g;H[b+13|0]=g>>>8;H[b+14|0]=g>>>16;H[b+15|0]=g>>>24;g=K[1249]|K[1250]<<8|(K[1251]<<16|K[1252]<<24);i=K[1245]|K[1246]<<8|(K[1247]<<16|K[1248]<<24);H[b|0]=i;H[b+1|0]=i>>>8;H[b+2|0]=i>>>16;H[b+3|0]=i>>>24;H[b+4|0]=g;H[b+5|0]=g>>>8;H[b+6|0]=g>>>16;H[b+7|0]=g>>>24;H[b+17|0]=0;i=a+4|0;Qg(i,h+12|0,h,c);if(H[h+11|0]<0){qa(J[h>>2])}a=ra(32);J[h>>2]=a;J[h+4>>2]=19;J[h+8>>2]=-2147483616;b=K[1429]|K[1430]<<8|(K[1431]<<16|K[1432]<<24);H[a+15|0]=b;H[a+16|0]=b>>>8;H[a+17|0]=b>>>16;H[a+18|0]=b>>>24;b=K[1426]|K[1427]<<8|(K[1428]<<16|K[1429]<<24);c=K[1422]|K[1423]<<8|(K[1424]<<16|K[1425]<<24);H[a+8|0]=c;H[a+9|0]=c>>>8;H[a+10|0]=c>>>16;H[a+11|0]=c>>>24;H[a+12|0]=b;H[a+13|0]=b>>>8;H[a+14|0]=b>>>16;H[a+15|0]=b>>>24;b=K[1418]|K[1419]<<8|(K[1420]<<16|K[1421]<<24);c=K[1414]|K[1415]<<8|(K[1416]<<16|K[1417]<<24);H[a|0]=c;H[a+1|0]=c>>>8;H[a+2|0]=c>>>16;H[a+3|0]=c>>>24;H[a+4|0]=b;H[a+5|0]=b>>>8;H[a+6|0]=b>>>16;H[a+7|0]=b>>>24;H[a+19|0]=0;g=ea-48|0;ea=g;j=J[h+12>>2];a=i+16|0;c=J[a>>2];a:{b:{if(!c){break b}b=a;while(1){k=(j|0)>J[c+16>>2];b=k?b:c;c=J[(k?c+4|0:c)>>2];if(c){continue}break}if((a|0)==(b|0)){break b}if((j|0)>=J[b+16>>2]){break a}}J[g+28>>2]=0;J[g+32>>2]=0;c=g+24|0;J[g+24>>2]=c|4;a=g+16|0;J[a>>2]=0;J[a+4>>2]=0;J[g+8>>2]=j;J[g+12>>2]=a;a=g+8|0;Mc(g+40|0,i+12|0,a,a);b=J[g+40>>2];Ha(a|4,J[g+16>>2]);Ha(c,J[g+28>>2])}b=b+20|0;a=ea-48|0;ea=a;J[a+24>>2]=0;J[a+16>>2]=0;J[a+20>>2]=0;c:{if((d|0)<=0){break c}ad(a,N[e>>2]);c=K[a+11|0];j=c<<24>>24<0;dd(a+16|0,j?J[a>>2]:a,j?J[a+4>>2]:c);if(H[a+11|0]<0){qa(J[a>>2])}c=1;if((d|0)==1){break c}while(1){j=a+16|0;dd(j,2020,sb(2020));ad(a,N[(c<<2)+e>>2]);l=j;j=K[a+11|0];k=j<<24>>24<0;dd(l,k?J[a>>2]:a,k?J[a+4>>2]:j);if(H[a+11|0]<0){qa(J[a>>2])}c=c+1|0;if((d|0)!=(c|0)){continue}break}}J[a+40>>2]=h;Zd(a,b,h,a+40|0);d=J[a>>2];b=d+28|0;d:{if((b|0)==(a+16|0)){break d}e=K[a+27|0];c=e<<24>>24;if(H[d+39|0]>=0){if((c|0)>=0){c=J[a+20>>2];J[b>>2]=J[a+16>>2];J[b+4>>2]=c;J[b+8>>2]=J[a+24>>2];break d}bd(b,J[a+16>>2],J[a+20>>2]);break d}d=b;b=(c|0)<0;cd(d,b?J[a+16>>2]:a+16|0,b?J[a+20>>2]:e)}if(H[a+27|0]<0){qa(J[a+16>>2])}ea=a+48|0;ea=g+48|0;if(H[h+11|0]<0){qa(J[h>>2])}a=ra(32);J[h>>2]=a;J[h+4>>2]=18;J[h+8>>2]=-2147483616;b=K[1547]|K[1548]<<8;H[a+16|0]=b;H[a+17|0]=b>>>8;b=K[1543]|K[1544]<<8|(K[1545]<<16|K[1546]<<24);c=K[1539]|K[1540]<<8|(K[1541]<<16|K[1542]<<24);H[a+8|0]=c;H[a+9|0]=c>>>8;H[a+10|0]=c>>>16;H[a+11|0]=c>>>24;H[a+12|0]=b;H[a+13|0]=b>>>8;H[a+14|0]=b>>>16;H[a+15|0]=b>>>24;b=K[1535]|K[1536]<<8|(K[1537]<<16|K[1538]<<24);c=K[1531]|K[1532]<<8|(K[1533]<<16|K[1534]<<24);H[a|0]=c;H[a+1|0]=c>>>8;H[a+2|0]=c>>>16;H[a+3|0]=c>>>24;H[a+4|0]=b;H[a+5|0]=b>>>8;H[a+6|0]=b>>>16;H[a+7|0]=b>>>24;H[a+18|0]=0;b=ea-48|0;ea=b;c=J[h+12>>2];a=i+16|0;e=J[a>>2];e:{f:{if(!e){break f}d=a;while(1){g=(c|0)>J[e+16>>2];d=g?d:e;e=J[(g?e+4|0:e)>>2];if(e){continue}break}if((a|0)==(d|0)){break f}if((c|0)>=J[d+16>>2]){break e}}J[b+28>>2]=0;J[b+32>>2]=0;e=b+24|0;J[b+24>>2]=e|4;a=b+16|0;J[a>>2]=0;J[a+4>>2]=0;J[b+8>>2]=c;J[b+12>>2]=a;a=b+8|0;Mc(b+40|0,i+12|0,a,a);d=J[b+40>>2];Ha(a|4,J[b+16>>2]);Ha(e,J[b+28>>2])}a=ea-48|0;ea=a;ad(a+8|0,f);J[a+32>>2]=h;Zd(a+40|0,d+20|0,h,a+32|0);c=J[a+40>>2];if(H[c+39|0]<0){qa(J[c+28>>2])}d=J[a+12>>2];J[c+28>>2]=J[a+8>>2];J[c+32>>2]=d;J[c+36>>2]=J[a+16>>2];ea=a+48|0;ea=b+48|0;if(H[h+11|0]<0){qa(J[h>>2])}ea=h+16|0}function gk(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=Q(0);f=ea-32|0;ea=f;J[f+28>>2]=c;a:{if(!de(a,b,c)){break a}i=J[J[J[b+4>>2]+8>>2]+(c<<2)>>2];if(J[i+28>>2]!=9){break a}g=J[b+48>>2];c=ra(32);J[f+16>>2]=c;J[f+20>>2]=17;J[f+24>>2]=-2147483616;H[c+16|0]=K[1261];e=K[1257]|K[1258]<<8|(K[1259]<<16|K[1260]<<24);h=K[1253]|K[1254]<<8|(K[1255]<<16|K[1256]<<24);H[c+8|0]=h;H[c+9|0]=h>>>8;H[c+10|0]=h>>>16;H[c+11|0]=h>>>24;H[c+12|0]=e;H[c+13|0]=e>>>8;H[c+14|0]=e>>>16;H[c+15|0]=e>>>24;e=K[1249]|K[1250]<<8|(K[1251]<<16|K[1252]<<24);h=K[1245]|K[1246]<<8|(K[1247]<<16|K[1248]<<24);H[c|0]=h;H[c+1|0]=h>>>8;H[c+2|0]=h>>>16;H[c+3|0]=h>>>24;H[c+4|0]=e;H[c+5|0]=e>>>8;H[c+6|0]=e>>>16;H[c+7|0]=e>>>24;H[c+17|0]=0;h=kb(g,f+28|0,f+16|0,-1);if(H[f+27|0]<0){qa(J[f+16>>2])}if((h|0)<=0){break a}j=J[b+48>>2];c=ra(32);J[f+16>>2]=c;J[f+20>>2]=19;J[f+24>>2]=-2147483616;e=K[1429]|K[1430]<<8|(K[1431]<<16|K[1432]<<24);H[c+15|0]=e;H[c+16|0]=e>>>8;H[c+17|0]=e>>>16;H[c+18|0]=e>>>24;e=K[1426]|K[1427]<<8|(K[1428]<<16|K[1429]<<24);g=K[1422]|K[1423]<<8|(K[1424]<<16|K[1425]<<24);H[c+8|0]=g;H[c+9|0]=g>>>8;H[c+10|0]=g>>>16;H[c+11|0]=g>>>24;H[c+12|0]=e;H[c+13|0]=e>>>8;H[c+14|0]=e>>>16;H[c+15|0]=e>>>24;e=K[1418]|K[1419]<<8|(K[1420]<<16|K[1421]<<24);g=K[1414]|K[1415]<<8|(K[1416]<<16|K[1417]<<24);H[c|0]=g;H[c+1|0]=g>>>8;H[c+2|0]=g>>>16;H[c+3|0]=g>>>24;H[c+4|0]=e;H[c+5|0]=e>>>8;H[c+6|0]=e>>>16;H[c+7|0]=e>>>24;H[c+19|0]=0;b:{if(!vc(j,f+28|0,f+16|0)){break b}g=J[b+48>>2];c=ra(32);J[f>>2]=c;J[f+4>>2]=18;J[f+8>>2]=-2147483616;d=K[1547]|K[1548]<<8;H[c+16|0]=d;H[c+17|0]=d>>>8;d=K[1543]|K[1544]<<8|(K[1545]<<16|K[1546]<<24);e=K[1539]|K[1540]<<8|(K[1541]<<16|K[1542]<<24);H[c+8|0]=e;H[c+9|0]=e>>>8;H[c+10|0]=e>>>16;H[c+11|0]=e>>>24;H[c+12|0]=d;H[c+13|0]=d>>>8;H[c+14|0]=d>>>16;H[c+15|0]=d>>>24;d=K[1535]|K[1536]<<8|(K[1537]<<16|K[1538]<<24);e=K[1531]|K[1532]<<8|(K[1533]<<16|K[1534]<<24);H[c|0]=e;H[c+1|0]=e>>>8;H[c+2|0]=e>>>16;H[c+3|0]=e>>>24;H[c+4|0]=d;H[c+5|0]=d>>>8;H[c+6|0]=d>>>16;H[c+7|0]=d>>>24;H[c+18|0]=0;d=vc(g,f+28|0,f);if(H[f+11|0]>=0){break b}qa(J[f>>2])}if(H[f+27|0]<0){qa(J[f+16>>2])}c:{if(d){c=0;d=K[i+24|0];if(d){d=d<<2;c=ra(d);sa(c,0,d)}j=J[b+48>>2];d=ra(32);J[f+16>>2]=d;J[f+20>>2]=19;J[f+24>>2]=-2147483616;e=K[1429]|K[1430]<<8|(K[1431]<<16|K[1432]<<24);H[d+15|0]=e;H[d+16|0]=e>>>8;H[d+17|0]=e>>>16;H[d+18|0]=e>>>24;e=K[1426]|K[1427]<<8|(K[1428]<<16|K[1429]<<24);g=K[1422]|K[1423]<<8|(K[1424]<<16|K[1425]<<24);H[d+8|0]=g;H[d+9|0]=g>>>8;H[d+10|0]=g>>>16;H[d+11|0]=g>>>24;H[d+12|0]=e;H[d+13|0]=e>>>8;H[d+14|0]=e>>>16;H[d+15|0]=e>>>24;e=K[1418]|K[1419]<<8|(K[1420]<<16|K[1421]<<24);g=K[1414]|K[1415]<<8|(K[1416]<<16|K[1417]<<24);H[d|0]=g;H[d+1|0]=g>>>8;H[d+2|0]=g>>>16;H[d+3|0]=g>>>24;H[d+4|0]=e;H[d+5|0]=e>>>8;H[d+6|0]=e>>>16;H[d+7|0]=e>>>24;H[d+19|0]=0;ve(j,f+28|0,f+16|0,K[i+24|0],c);if(H[f+27|0]<0){qa(J[f+16>>2])}g=J[b+48>>2];b=ra(32);J[f+16>>2]=b;J[f+20>>2]=18;J[f+24>>2]=-2147483616;d=K[1547]|K[1548]<<8;H[b+16|0]=d;H[b+17|0]=d>>>8;d=K[1543]|K[1544]<<8|(K[1545]<<16|K[1546]<<24);e=K[1539]|K[1540]<<8|(K[1541]<<16|K[1542]<<24);H[b+8|0]=e;H[b+9|0]=e>>>8;H[b+10|0]=e>>>16;H[b+11|0]=e>>>24;H[b+12|0]=d;H[b+13|0]=d>>>8;H[b+14|0]=d>>>16;H[b+15|0]=d>>>24;d=K[1535]|K[1536]<<8|(K[1537]<<16|K[1538]<<24);e=K[1531]|K[1532]<<8|(K[1533]<<16|K[1534]<<24);H[b|0]=e;H[b+1|0]=e>>>8;H[b+2|0]=e>>>16;H[b+3|0]=e>>>24;H[b+4|0]=d;H[b+5|0]=d>>>8;H[b+6|0]=d>>>16;H[b+7|0]=d>>>24;H[b+18|0]=0;k=ue(g,f+28|0,f+16|0);if(H[f+27|0]<0){qa(J[f+16>>2])}a=Yg(a+40|0,h,c,K[i+24|0],k);if(c){qa(c)}d=0;if(a){break c}break a}d=0;if(!Ug(a+40|0,i,h)){break a}}d=1}ea=f+32|0;return d|0}function Tk(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0;J[a+8>>2]=e;q=a+32|0;f=J[q>>2];h=J[a+36>>2]-f>>2;a:{if(h>>>0>>0){Fa(q,e-h|0);break a}if(e>>>0>=h>>>0){break a}J[a+36>>2]=f+(e<<2)}b:{if(!d){break b}g=J[b>>2];c:{if((d|0)<2){h=g;break c}f=1;h=d-1|0;l=h&1;d:{if((d|0)==2){h=g;break d}o=h&-2;d=0;h=g;while(1){i=(f<<2)+b|0;p=J[i+4>>2];k=J[i>>2];j=(k|0)<(h|0);h=j?k:h;i=(h|0)>(p|0);h=i?p:h;g=j?g:(g|0)<(k|0)?k:g;g=i?g:(g|0)<(p|0)?p:g;f=f+2|0;d=d+2|0;if((o|0)!=(d|0)){continue}break}}if(!l){break c}f=J[(f<<2)+b>>2];d=(f|0)<(h|0);h=d?f:h;g=d?g:(f|0)>(g|0)?f:g}J[a+16>>2]=g;J[a+12>>2]=h;d=(g>>31)-((h>>31)+(g>>>0>>0)|0)|0;f=g-h|0;if(!d&f>>>0>2147483646|d){break b}f=f+1|0;J[a+20>>2]=f;d=f>>>1|0;J[a+24>>2]=d;J[a+28>>2]=0-d;if(f&1){break b}J[a+24>>2]=d-1}s=e<<2;d=e>>>0>1073741823?-1:s;h=sa(ra(d),0,d);d=J[a+56>>2];t=J[d>>2];d=J[d+4>>2]-t|0;if((d|0)>=5){w=J[a+52>>2];u=J[a+48>>2];x=e&-2;y=e&1;v=d>>2;l=v;while(1){o=l;e:{f:{l=l-1|0;if(v>>>0>l>>>0){p=P(e,l);d=J[(l<<2)+t>>2];if((d|0)==-1){break f}g=J[J[u+12>>2]+(d<<2)>>2];if((g|0)==-1){break f}j=J[w>>2];k=J[u>>2];i=J[j+(J[k+(g<<2)>>2]<<2)>>2];d=g+1|0;d=(d>>>0)%3|0?d:g-2|0;if((d|0)!=-1){f=J[k+(d<<2)>>2]}else{f=-1}g:{h:{if((g>>>0)%3|0){g=g-1|0;break h}g=g+2|0;d=-1;if((g|0)==-1){break g}}d=J[k+(g<<2)>>2]}if((i|0)>=(l|0)){break f}f=J[(f<<2)+j>>2];if((f|0)>=(l|0)){break f}d=J[j+(d<<2)>>2];if((d|0)>=(l|0)){break f}i:{if((e|0)<=0){break i}k=P(d,e);j=P(e,f);i=P(e,i);g=0;d=0;if((e|0)!=1){while(1){J[h+(g<<2)>>2]=(J[(g+k<<2)+b>>2]+J[(g+j<<2)+b>>2]|0)-J[(g+i<<2)+b>>2];f=g|1;J[h+(f<<2)>>2]=(J[(f+k<<2)+b>>2]+J[(f+j<<2)+b>>2]|0)-J[(f+i<<2)+b>>2];g=g+2|0;d=d+2|0;if((x|0)!=(d|0)){continue}break}}if(!y){break i}J[h+(g<<2)>>2]=(J[(g+k<<2)+b>>2]+J[(g+j<<2)+b>>2]|0)-J[(g+i<<2)+b>>2]}g=J[a+8>>2];if((g|0)<=0){break e}d=p<<2;p=d+c|0;k=b+d|0;i=J[q>>2];m=0;d=h;while(1){f=i;if((g|0)>0){f=J[q>>2];g=0;while(1){n=g<<2;r=J[n+d>>2];j=J[a+16>>2];j:{if((r|0)>(j|0)){J[f+n>>2]=j;break j}n=f+n|0;j=J[a+12>>2];if((j|0)>(r|0)){J[n>>2]=j;break j}J[n>>2]=r}g=g+1|0;if((g|0)>2]){continue}break}}g=m<<2;d=g+p|0;g=J[g+k>>2]-J[f+g>>2]|0;J[d>>2]=g;k:{if((g|0)>2]){g=g+J[a+20>>2]|0}else{if((g|0)<=J[a+24>>2]){break k}g=g-J[a+20>>2]|0}J[d>>2]=g}d=f;g=J[a+8>>2];m=m+1|0;if((g|0)>(m|0)){continue}break}break e}va();B()}g=J[a+8>>2];if((g|0)<=0){break e}d=p<<2;p=d+c|0;k=b+d|0;d=(P(o-2|0,e)<<2)+b|0;i=J[q>>2];m=0;while(1){f=i;if((g|0)>0){f=J[q>>2];g=0;while(1){n=g<<2;r=J[n+d>>2];j=J[a+16>>2];l:{if((r|0)>(j|0)){J[f+n>>2]=j;break l}n=f+n|0;j=J[a+12>>2];if((j|0)>(r|0)){J[n>>2]=j;break l}J[n>>2]=r}g=g+1|0;if((g|0)>2]){continue}break}}g=m<<2;d=g+p|0;g=J[g+k>>2]-J[f+g>>2]|0;J[d>>2]=g;m:{if((g|0)>2]){g=g+J[a+20>>2]|0}else{if((g|0)<=J[a+24>>2]){break m}g=g-J[a+20>>2]|0}J[d>>2]=g}d=f;g=J[a+8>>2];m=m+1|0;if((g|0)>(m|0)){continue}break}}if((o|0)>2){continue}break}}if((e|0)>0){sa(h,0,s)}g=J[a+8>>2];if((g|0)>0){e=J[a+32>>2];m=0;d=h;while(1){f=e;if((g|0)>0){f=J[q>>2];g=0;while(1){o=g<<2;l=J[o+d>>2];i=J[a+16>>2];n:{if((l|0)>(i|0)){J[f+o>>2]=i;break n}o=f+o|0;i=J[a+12>>2];if((i|0)>(l|0)){J[o>>2]=i;break n}J[o>>2]=l}g=g+1|0;if((g|0)>2]){continue}break}}g=m<<2;d=g+c|0;g=J[b+g>>2]-J[f+g>>2]|0;J[d>>2]=g;o:{if((g|0)>2]){g=g+J[a+20>>2]|0}else{if((g|0)<=J[a+24>>2]){break o}g=g-J[a+20>>2]|0}J[d>>2]=g}d=f;g=J[a+8>>2];m=m+1|0;if((g|0)>(m|0)){continue}break}}qa(h);return 1}function bl(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0;J[a+8>>2]=e;q=a+32|0;f=J[q>>2];h=J[a+36>>2]-f>>2;a:{if(h>>>0>>0){Fa(q,e-h|0);break a}if(e>>>0>=h>>>0){break a}J[a+36>>2]=f+(e<<2)}b:{if(!d){break b}g=J[b>>2];c:{if((d|0)<2){h=g;break c}f=1;h=d-1|0;l=h&1;d:{if((d|0)==2){h=g;break d}o=h&-2;d=0;h=g;while(1){i=(f<<2)+b|0;m=J[i+4>>2];p=J[i>>2];j=(p|0)<(h|0);h=j?p:h;i=(h|0)>(m|0);h=i?m:h;g=j?g:(g|0)<(p|0)?p:g;g=i?g:(g|0)<(m|0)?m:g;f=f+2|0;d=d+2|0;if((o|0)!=(d|0)){continue}break}}if(!l){break c}f=J[(f<<2)+b>>2];d=(f|0)<(h|0);h=d?f:h;g=d?g:(f|0)>(g|0)?f:g}J[a+16>>2]=g;J[a+12>>2]=h;d=(g>>31)-((h>>31)+(g>>>0>>0)|0)|0;f=g-h|0;if(!d&f>>>0>2147483646|d){break b}f=f+1|0;J[a+20>>2]=f;d=f>>>1|0;J[a+24>>2]=d;J[a+28>>2]=0-d;if(f&1){break b}J[a+24>>2]=d-1}t=e<<2;d=e>>>0>1073741823?-1:t;h=sa(ra(d),0,d);d=J[a+56>>2];u=J[d>>2];d=J[d+4>>2]-u|0;if((d|0)>=5){w=J[a+52>>2];s=J[a+48>>2];x=e&-2;y=e&1;v=d>>2;l=v;while(1){o=l;e:{f:{l=l-1|0;if(v>>>0>l>>>0){p=P(e,l);d=J[(l<<2)+u>>2];if((d|0)==-1|J[J[s>>2]+(d>>>3&536870908)>>2]>>>d&1){break f}m=J[J[J[s+64>>2]+12>>2]+(d<<2)>>2];if((m|0)==-1){break f}i=J[w>>2];j=J[s+28>>2];g=J[i+(J[j+(m<<2)>>2]<<2)>>2];if((g|0)>=(l|0)){break f}d=m+1|0;f=J[i+(J[j+(((d>>>0)%3|0?d:m-2|0)<<2)>>2]<<2)>>2];if((f|0)>=(l|0)){break f}d=J[i+(J[j+(m+((m>>>0)%3|0?-1:2)<<2)>>2]<<2)>>2];if((d|0)>=(l|0)){break f}g:{if((e|0)<=0){break g}j=P(d,e);i=P(e,f);f=P(e,g);g=0;k=0;if((e|0)!=1){while(1){J[h+(g<<2)>>2]=(J[(g+j<<2)+b>>2]+J[(g+i<<2)+b>>2]|0)-J[(f+g<<2)+b>>2];d=g|1;J[h+(d<<2)>>2]=(J[(d+j<<2)+b>>2]+J[(d+i<<2)+b>>2]|0)-J[(d+f<<2)+b>>2];g=g+2|0;k=k+2|0;if((x|0)!=(k|0)){continue}break}}if(!y){break g}J[h+(g<<2)>>2]=(J[(g+j<<2)+b>>2]+J[(g+i<<2)+b>>2]|0)-J[(f+g<<2)+b>>2]}g=J[a+8>>2];if((g|0)<=0){break e}d=p<<2;m=d+c|0;p=b+d|0;i=J[q>>2];k=0;d=h;while(1){f=i;if((g|0)>0){f=J[q>>2];g=0;while(1){n=g<<2;r=J[n+d>>2];j=J[a+16>>2];h:{if((r|0)>(j|0)){J[f+n>>2]=j;break h}n=f+n|0;j=J[a+12>>2];if((j|0)>(r|0)){J[n>>2]=j;break h}J[n>>2]=r}g=g+1|0;if((g|0)>2]){continue}break}}g=k<<2;d=g+m|0;g=J[g+p>>2]-J[f+g>>2]|0;J[d>>2]=g;i:{if((g|0)>2]){g=g+J[a+20>>2]|0}else{if((g|0)<=J[a+24>>2]){break i}g=g-J[a+20>>2]|0}J[d>>2]=g}d=f;g=J[a+8>>2];k=k+1|0;if((g|0)>(k|0)){continue}break}break e}va();B()}g=J[a+8>>2];if((g|0)<=0){break e}d=p<<2;m=d+c|0;p=b+d|0;d=(P(o-2|0,e)<<2)+b|0;i=J[q>>2];k=0;while(1){f=i;if((g|0)>0){f=J[q>>2];g=0;while(1){n=g<<2;r=J[n+d>>2];j=J[a+16>>2];j:{if((r|0)>(j|0)){J[f+n>>2]=j;break j}n=f+n|0;j=J[a+12>>2];if((j|0)>(r|0)){J[n>>2]=j;break j}J[n>>2]=r}g=g+1|0;if((g|0)>2]){continue}break}}g=k<<2;d=g+m|0;g=J[g+p>>2]-J[f+g>>2]|0;J[d>>2]=g;k:{if((g|0)>2]){g=g+J[a+20>>2]|0}else{if((g|0)<=J[a+24>>2]){break k}g=g-J[a+20>>2]|0}J[d>>2]=g}d=f;g=J[a+8>>2];k=k+1|0;if((g|0)>(k|0)){continue}break}}if((o|0)>2){continue}break}}if((e|0)>0){sa(h,0,t)}g=J[a+8>>2];if((g|0)>0){e=J[a+32>>2];k=0;d=h;while(1){f=e;if((g|0)>0){f=J[q>>2];g=0;while(1){o=g<<2;l=J[o+d>>2];i=J[a+16>>2];l:{if((l|0)>(i|0)){J[f+o>>2]=i;break l}o=f+o|0;i=J[a+12>>2];if((i|0)>(l|0)){J[o>>2]=i;break l}J[o>>2]=l}g=g+1|0;if((g|0)>2]){continue}break}}g=k<<2;d=g+c|0;g=J[b+g>>2]-J[f+g>>2]|0;J[d>>2]=g;m:{if((g|0)>2]){g=g+J[a+20>>2]|0}else{if((g|0)<=J[a+24>>2]){break m}g=g-J[a+20>>2]|0}J[d>>2]=g}d=f;g=J[a+8>>2];k=k+1|0;if((g|0)>(k|0)){continue}break}}qa(h);return 1}function Vf(a,b){var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0;h=ea-32|0;ea=h;c=J[a+16>>2];J[a+20>>2]=c;a:{b:{c:{d:{e:{f:{g:{if((c|0)!=J[a+24>>2]){J[c>>2]=b;b=c+4|0;J[a+20>>2]=b;d=c;break g}d=ra(4);J[d>>2]=b;b=d+4|0;J[a+24>>2]=b;J[a+20>>2]=b;J[a+16>>2]=d;if(c){break f}}c=J[a+8>>2];c=J[c+100>>2]-J[c+96>>2]|0;break e}qa(c);b=J[a+20>>2];d=J[a+16>>2];if((b|0)==(d|0)){break d}c=J[a+8>>2];c=J[c+100>>2]-J[c+96>>2]|0}if((c|0)>0){s=a+120|0;k=a+200|0;c=(c|0)/12|0;t=(c|0)<=1?1:c;while(1){h:{i:{d=b-4|0;b=J[d>>2];if((b|0)==-1){break i}c=(b>>>0)/3|0;if(J[J[a+28>>2]+(c>>>3&268435452)>>2]>>>c&1){break i}m=0;while(1){J[a+164>>2]=J[a+164>>2]+1;e=b;g=(b>>>0)/3|0;f=(b|0)==-1;n=f?-1:g;b=J[a+28>>2]+(n>>>3&536870908)|0;J[b>>2]=J[b>>2]|1<>2];j:{if((b|0)!=J[a+80>>2]){J[b>>2]=e;J[a+76>>2]=b+4;break j}j=J[a+72>>2];i=b-j|0;c=i>>2;d=c+1|0;if(d>>>0>1073741823){break c}b=i>>1;d=i>>>0>=2147483644?1073741823:b>>>0>d>>>0?b:d;if(d){if(d>>>0>1073741823){break a}b=ra(d<<2)}else{b=0}c=b+(c<<2)|0;J[c>>2]=e;if((i|0)>0){ta(b,j,i)}J[a+80>>2]=b+(d<<2);J[a+76>>2]=c+4;J[a+72>>2]=b;if(!j){break j}qa(j)}J[a+320>>2]=e;b=-1;l=J[a+12>>2];b=(e|0)!=-1?J[J[l>>2]+(e<<2)>>2]:b;i=b<<2;q=J[i+J[a+152>>2]>>2];k:{l:{d=J[a+84>>2]+(b>>>3&536870908)|0;c=J[d>>2];b=1<>2]=b|c;if((q|0)==-1){break l}}m:{if(f){break m}b=-1;c=e+1|0;f=(c>>>0)%3|0?c:e-2|0;if((f|0)!=-1){b=J[J[l+12>>2]+(f<<2)>>2]}j=(b>>>0)/3|0;o=e-P(g,3)|0;n:{o:{if(o){d=e-1|0;break o}d=e+2|0;c=-1;if((d|0)==-1){break n}}c=J[J[l+12>>2]+(d<<2)>>2]}p=(c|0)==-1;r=p?-1:(c>>>0)/3|0;p:{if((f|0)==-1){break p}g=J[l+12>>2];d=J[g+(f<<2)>>2];if((d|0)==-1){break p}f=J[a+28>>2];d=(d>>>0)/3|0;if(J[f+(d>>>3&268435452)>>2]>>>d&1){break p}q:{r:{if(o){d=e-1|0;break r}d=e+2|0;if((d|0)==-1){break q}}d=J[(d<<2)+g>>2];if((d|0)==-1){break q}d=(d>>>0)/3|0;if(J[f+(d>>>3&268435452)>>2]>>>d&1){break q}nc(k,1);J[a+168>>2]=J[a+168>>2]+1;s:{if((q|0)==-1){break s}d=J[J[a+152>>2]+i>>2];if(J[J[a+140>>2]+(d>>>3&536870908)>>2]>>>d&1){break s}Ec(a,e,0)}e=J[a+164>>2];J[h+4>>2]=n;d=h+4|0;J[h+16>>2]=d;Yf(h+24|0,s,d,h+16|0);J[J[h+24>>2]+12>>2]=e;d=J[a+20>>2];J[d-4>>2]=c;if((d|0)!=J[a+24>>2]){J[d>>2]=b;J[a+20>>2]=d+4;break h}f=J[a+16>>2];g=d-f|0;d=g>>2;e=d+1|0;if(e>>>0>1073741823){break b}c=g>>1;e=g>>>0>=2147483644?1073741823:c>>>0>e>>>0?c:e;if(e){if(e>>>0>1073741823){break a}c=ra(e<<2)}else{c=0}d=c+(d<<2)|0;J[d>>2]=b;if((g|0)>0){ta(c,f,g)}J[a+24>>2]=c+(e<<2);J[a+20>>2]=d+4;J[a+16>>2]=c;if(!f){break h}qa(f);break h}if(!p){Rb(a,J[a+164>>2],0,r)}nc(k,3);break k}b=(b|0)==-1;if(!b){Rb(a,J[a+164>>2],1,b?-1:j)}t:{u:{if(o){b=e-1|0;break u}b=e+2|0;if((b|0)==-1){break t}}b=J[J[J[a+12>>2]+12>>2]+(b<<2)>>2];if((b|0)==-1){break t}b=(b>>>0)/3|0;if(J[J[a+28>>2]+(b>>>3&268435452)>>2]>>>b&1){break t}nc(k,5);b=c;break k}if(p){break m}Rb(a,J[a+164>>2],0,r)}nc(k,7);J[a+20>>2]=J[a+20>>2]-4;break h}nc(k,0);b=-1;if((e|0)==-1){break k}c=e+1|0;c=(c>>>0)%3|0?c:e-2|0;if((c|0)==-1){break k}b=J[J[J[a+12>>2]+12>>2]+(c<<2)>>2]}m=m+1|0;if((t|0)!=(m|0)){continue}break}break h}J[a+20>>2]=d}b=J[a+20>>2];if((b|0)!=J[a+16>>2]){continue}break}break d}f=J[a+28>>2];while(1){c=b-4|0;e=J[c>>2];v:{if((e|0)!=-1){e=(e>>>0)/3|0;if(!(J[f+(e>>>3&268435452)>>2]>>>e&1)){break v}}J[a+20>>2]=c;b=c}if((b|0)!=(d|0)){continue}break}}ea=h+32|0;return 1}ua();B()}ua();B()}ya();B()}function ae(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=Q(0),f=0,g=0,h=0,i=0,j=0,k=0,l=Q(0),m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0;if(J[c>>2]==J[c+4>>2]){h=J[d+80>>2];u=ea-16|0;ea=u;q=J[a+4>>2];i=K[b+24|0];j=J[d+48>>2];d=J[J[d>>2]>>2];c=u+8|0;J[c>>2]=1065353216;N[c>>2]=Q(-1<>2];s=ra(i<<2);a:{if(!h|!i){break a}t=d+j|0;l=N[c>>2];k=J[a+8>>2];w=J[b>>2];c=J[b+48>>2];n=J[b+44>>2];v=J[b+40>>2];if(!K[b+84|0]){r=J[b+68>>2];q=i&254;j=i&1;a=0;while(1){d=J[w>>2];b=Al(v,n,J[r+(o<<2)>>2],0)+c|0;p=ta(s,d+b|0,v);b=0;m=0;if((i|0)!=1){while(1){d=t+(a<<2)|0;g=b<<2;e=Q(V(Q(Q(l*Q(N[g+p>>2]-N[k+g>>2]))+Q(.5))));b:{if(Q(R(e))>2]=f;f=g|4;e=Q(V(Q(Q(l*Q(N[f+p>>2]-N[f+k>>2]))+Q(.5))));c:{if(Q(R(e))>2]=f;b=b+2|0;a=a+2|0;m=m+2|0;if((q|0)!=(m|0)){continue}break}}if(j){d=t+(a<<2)|0;b=b<<2;e=Q(V(Q(Q(l*Q(N[b+p>>2]-N[b+k>>2]))+Q(.5))));d:{if(Q(R(e))>2]=b;a=a+1|0}o=o+1|0;if((h|0)!=(o|0)){continue}break}break a}r=i&254;q=i&1;a=0;while(1){d=J[w>>2];b=Al(v,n,p,f)+c|0;o=ta(s,d+b|0,v);b=0;m=0;if((i|0)!=1){while(1){d=t+(a<<2)|0;g=b<<2;e=Q(V(Q(Q(l*Q(N[g+o>>2]-N[k+g>>2]))+Q(.5))));e:{if(Q(R(e))>2]=j;j=g|4;e=Q(V(Q(Q(l*Q(N[j+o>>2]-N[k+j>>2]))+Q(.5))));f:{if(Q(R(e))>2]=g;b=b+2|0;a=a+2|0;m=m+2|0;if((r|0)!=(m|0)){continue}break}}if(q){d=t+(a<<2)|0;b=b<<2;e=Q(V(Q(Q(l*Q(N[b+o>>2]-N[b+k>>2]))+Q(.5))));g:{if(Q(R(e))>2]=b;a=a+1|0}b=p+1|0;f=b?f:f+1|0;p=b;if((h|0)!=(b|0)|f){continue}break}}qa(s);ea=u+16|0;return 1}u=ea-16|0;ea=u;f=J[a+4>>2];n=K[b+24|0];j=J[d+48>>2];h=J[J[d>>2]>>2];d=u+8|0;J[d>>2]=1065353216;N[d>>2]=Q(-1<>2];t=ra(n<<2);f=J[c+4>>2];s=J[c>>2];h:{if(!n|(f|0)==(s|0)){break h}m=j+h|0;c=f-s>>2;w=c>>>0<=1?1:c;l=N[d>>2];i=J[a+8>>2];x=J[b>>2];d=J[b+48>>2];v=J[b+44>>2];p=J[b+40>>2];if(K[b+84|0]){q=n&254;j=n&1;a=0;c=0;while(1){f=J[x>>2];b=Al(p,v,J[s+(c<<2)>>2],0)+d|0;g=ta(t,f+b|0,p);b=0;k=0;if((n|0)!=1){while(1){f=m+(a<<2)|0;r=b<<2;e=Q(V(Q(Q(l*Q(N[r+g>>2]-N[i+r>>2]))+Q(.5))));i:{if(Q(R(e))>2]=h;h=r|4;e=Q(V(Q(Q(l*Q(N[h+g>>2]-N[i+h>>2]))+Q(.5))));j:{if(Q(R(e))>2]=h;b=b+2|0;a=a+2|0;k=k+2|0;if((q|0)!=(k|0)){continue}break}}if(j){f=m+(a<<2)|0;b=b<<2;e=Q(V(Q(Q(l*Q(N[b+g>>2]-N[b+i>>2]))+Q(.5))));k:{if(Q(R(e))>2]=b;a=a+1|0}c=c+1|0;if((w|0)!=(c|0)){continue}break}break h}r=J[b+68>>2];q=n&254;j=n&1;a=0;c=0;while(1){f=J[x>>2];b=Al(p,v,J[r+(J[s+(c<<2)>>2]<<2)>>2],0)+d|0;o=ta(t,f+b|0,p);b=0;k=0;if((n|0)!=1){while(1){f=m+(a<<2)|0;g=b<<2;e=Q(V(Q(Q(l*Q(N[g+o>>2]-N[i+g>>2]))+Q(.5))));l:{if(Q(R(e))>2]=h;h=g|4;e=Q(V(Q(Q(l*Q(N[h+o>>2]-N[i+h>>2]))+Q(.5))));m:{if(Q(R(e))>2]=g;b=b+2|0;a=a+2|0;k=k+2|0;if((q|0)!=(k|0)){continue}break}}if(j){f=m+(a<<2)|0;b=b<<2;e=Q(V(Q(Q(l*Q(N[b+o>>2]-N[b+i>>2]))+Q(.5))));n:{if(Q(R(e))>2]=b;a=a+1|0}c=c+1|0;if((w|0)!=(c|0)){continue}break}}qa(t);ea=u+16|0;return 1}function jc(a,b,c){var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0;k=ea-16|0;ea=k;a:{if(!J[a+8>>2]){break a}e=J[a>>2];J[a>>2]=a+4;J[J[a+4>>2]+8>>2]=0;J[a+4>>2]=0;J[a+8>>2]=0;f=J[e+4>>2];e=f?f:e;if(!e){Ha(a,e);break a}h=J[e+8>>2];b:{if(!h){break b}f=J[h>>2];if((f|0)==(e|0)){J[h>>2]=0;d=h;f=J[d+4>>2];if(!f){break b}while(1){d=f;f=J[d>>2];if(f){continue}f=J[d+4>>2];if(f){continue}break}break b}J[h+4>>2]=0;d=h;if(!f){break b}while(1){d=f;f=J[d>>2];if(f){continue}f=J[d+4>>2];if(f){continue}break}}c:{if((b|0)==(c|0)){h=e;break c}f=b;while(1){h=d;J[k+12>>2]=e+28;J[k+8>>2]=e+16;b=f+16|0;d=J[k+8>>2];d:{if((b|0)==(d|0)){break d}i=K[b+11|0];g=i<<24>>24;if(H[d+11|0]>=0){if((g|0)>=0){g=J[b+4>>2];J[d>>2]=J[b>>2];J[d+4>>2]=g;J[d+8>>2]=J[b+8>>2];break d}bd(d,J[b>>2],J[b+4>>2]);break d}l=d;d=(g|0)<0;cd(l,d?J[b>>2]:b,d?J[b+4>>2]:i)}d=J[k+12>>2];g=b+12|0;if((d|0)!=(g|0)){e:{j=K[b+23|0];i=j<<24>>24;if(H[d+11|0]>=0){if((i|0)>=0){b=J[g+4>>2];J[d>>2]=J[g>>2];J[d+4>>2]=b;J[d+8>>2]=J[g+8>>2];break e}bd(d,J[b+12>>2],J[b+16>>2]);break e}l=d;d=(i|0)<0;cd(l,d?J[b+12>>2]:g,d?J[b+16>>2]:j)}}g=J[a+4>>2];f:{if(!g){b=a+4|0;d=b;break f}b=K[e+27|0];d=b<<24>>24<0;j=d?J[e+16>>2]:e+16|0;i=d?J[e+20>>2]:b;while(1){b=g;g=K[b+27|0];d=g<<24>>24<0;g:{h:{i:{g=d?J[b+20>>2]:g;l=g>>>0>>0?g:i;if(l){d=Ea(j,d?J[b+16>>2]:b+16|0,l);if(d){break i}}if(g>>>0>i>>>0){break h}break g}if((d|0)>=0){break g}}d=b;g=J[b>>2];if(g){continue}break f}g=J[b+4>>2];if(g){continue}break}d=b+4|0}J[e+8>>2]=b;J[e>>2]=0;J[e+4>>2]=0;J[d>>2]=e;b=e;e=J[J[a>>2]>>2];if(e){J[a>>2]=e;b=J[d>>2]}tb(J[a+4>>2],b);J[a+8>>2]=J[a+8>>2]+1;d=0;j:{if(!h){break j}e=J[h+8>>2];if(!e){break j}b=J[e>>2];if((h|0)==(b|0)){J[e>>2]=0;d=e;b=J[d+4>>2];if(!b){break j}while(1){d=b;b=J[b>>2];if(b){continue}b=J[d+4>>2];if(b){continue}break}break j}J[e+4>>2]=0;d=e;if(!b){break j}while(1){d=b;b=J[b>>2];if(b){continue}b=J[d+4>>2];if(b){continue}break}}e=J[f+4>>2];k:{if(e){while(1){b=e;e=J[b>>2];if(e){continue}break k}}while(1){b=J[f+8>>2];e=J[b>>2]!=(f|0);f=b;if(e){continue}break}}if(!h){break c}f=b;e=h;if((b|0)!=(c|0)){continue}break}}Ha(a,h);if(!d){break a}while(1){e=J[d+8>>2];if(e){d=e;continue}break}Ha(a,d)}if((b|0)!=(c|0)){while(1){f=ra(40);g=f+16|0;l:{if(H[b+27|0]>=0){d=J[b+20>>2];J[g>>2]=J[b+16>>2];J[g+4>>2]=d;J[g+8>>2]=J[b+24>>2];break l}Ja(g,J[b+16>>2],J[b+20>>2])}d=a+4|0;e=f+28|0;m:{if(H[b+39|0]>=0){h=J[b+32>>2];J[e>>2]=J[b+28>>2];J[e+4>>2]=h;J[e+8>>2]=J[b+36>>2];break m}Ja(e,J[b+28>>2],J[b+32>>2])}e=d;h=J[d>>2];n:{if(!h){break n}e=K[f+27|0];d=e<<24>>24<0;i=d?J[f+20>>2]:e;g=d?J[f+16>>2]:g;while(1){d=h;h=K[d+27|0];e=h<<24>>24<0;o:{p:{q:{h=e?J[d+20>>2]:h;j=h>>>0>>0?h:i;if(j){e=Ea(g,e?J[d+16>>2]:d+16|0,j);if(e){break q}}if(h>>>0>i>>>0){break p}break o}if((e|0)>=0){break o}}e=d;h=J[d>>2];if(h){continue}break n}h=J[d+4>>2];if(h){continue}break}e=d+4|0}J[f+8>>2]=d;J[f>>2]=0;J[f+4>>2]=0;J[e>>2]=f;d=f;f=J[J[a>>2]>>2];if(f){J[a>>2]=f;d=J[e>>2]}tb(J[a+4>>2],d);J[a+8>>2]=J[a+8>>2]+1;f=J[b+4>>2];r:{if(f){while(1){e=f;f=J[e>>2];if(f){continue}break r}}while(1){e=J[b+8>>2];d=J[e>>2]!=(b|0);b=e;if(d){continue}break}}b=e;if((c|0)!=(b|0)){continue}break}}ea=k+16|0}function $e(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0;a:{if((b|0)<0){break a}c=J[a+12>>2];d=J[a+8>>2];if(c-d>>2>>>0<=b>>>0){break a}e=d+(b<<2)|0;d=J[e>>2];i=J[d+60>>2];g=J[d+56>>2];d=e+4|0;b:{if((d|0)!=(c|0)){while(1){h=J[d>>2];J[d>>2]=0;f=J[e>>2];J[e>>2]=h;if(f){Oa(f)}e=e+4|0;d=d+4|0;if((d|0)!=(c|0)){continue}break}c=J[a+12>>2];if((e|0)==(c|0)){break b}}while(1){c=c-4|0;d=J[c>>2];J[c>>2]=0;if(d){Oa(d)}if((c|0)!=(e|0)){continue}break}}J[a+12>>2]=e;f=J[a+4>>2];c:{if(!f|(i|0)<0){break c}c=J[f+24>>2];d=J[f+28>>2];if((c|0)==(d|0)){break c}while(1){if((i|0)==J[J[c>>2]+24>>2]){e=c+4|0;i=J[f+28>>2];d:{if((e|0)!=(i|0)){while(1){h=J[e>>2];J[e>>2]=0;d=J[c>>2];J[c>>2]=h;if(d){mb(d+12|0,J[d+16>>2]);lb(d,J[d+4>>2]);qa(d)}c=c+4|0;e=e+4|0;if((i|0)!=(e|0)){continue}break}e=J[f+28>>2];if((e|0)==(c|0)){break d}}while(1){e=e-4|0;d=J[e>>2];J[e>>2]=0;if(d){mb(d+12|0,J[d+16>>2]);lb(d,J[d+4>>2]);qa(d)}if((c|0)!=(e|0)){continue}break}}J[f+28>>2]=c;break c}c=c+4|0;if((d|0)!=(c|0)){continue}break}}e:{if((g|0)>4){break e}f:{e=P(g,12)+a|0;c=J[e+20>>2];d=J[e+24>>2];if((c|0)==(d|0)){break f}while(1){if(J[c>>2]==(b|0)){break f}c=c+4|0;if((d|0)!=(c|0)){continue}break}break e}if((c|0)==(d|0)){break e}f=c+4|0;i=d-f|0;if((d|0)!=(f|0)){xa(c,f,i)}J[e+24>>2]=c+i}c=J[a+24>>2];e=J[a+20>>2];g:{if((c|0)==(e|0)){break g}d=c-e|0;c=d>>2;f=c>>>0<=1?1:c;i=f&1;c=0;if(d>>>0>=8){f=f&-2;d=0;while(1){g=c<<2;h=g+e|0;j=J[h>>2];if((j|0)>(b|0)){J[h>>2]=j-1}g=e+(g|4)|0;h=J[g>>2];if((h|0)>(b|0)){J[g>>2]=h-1}c=c+2|0;d=d+2|0;if((f|0)!=(d|0)){continue}break}}if(!i){break g}c=e+(c<<2)|0;d=J[c>>2];if((d|0)<=(b|0)){break g}J[c>>2]=d-1}c=J[a+36>>2];e=J[a+32>>2];h:{if((c|0)==(e|0)){break h}d=c-e|0;c=d>>2;f=c>>>0<=1?1:c;i=f&1;c=0;if(d>>>0>=8){f=f&-2;d=0;while(1){g=c<<2;h=g+e|0;j=J[h>>2];if((j|0)>(b|0)){J[h>>2]=j-1}g=e+(g|4)|0;h=J[g>>2];if((h|0)>(b|0)){J[g>>2]=h-1}c=c+2|0;d=d+2|0;if((f|0)!=(d|0)){continue}break}}if(!i){break h}c=e+(c<<2)|0;d=J[c>>2];if((d|0)<=(b|0)){break h}J[c>>2]=d-1}c=J[a+48>>2];e=J[a+44>>2];i:{if((c|0)==(e|0)){break i}d=c-e|0;c=d>>2;f=c>>>0<=1?1:c;i=f&1;c=0;if(d>>>0>=8){f=f&-2;d=0;while(1){g=c<<2;h=g+e|0;j=J[h>>2];if((j|0)>(b|0)){J[h>>2]=j-1}g=e+(g|4)|0;h=J[g>>2];if((h|0)>(b|0)){J[g>>2]=h-1}c=c+2|0;d=d+2|0;if((f|0)!=(d|0)){continue}break}}if(!i){break i}c=e+(c<<2)|0;d=J[c>>2];if((d|0)<=(b|0)){break i}J[c>>2]=d-1}c=J[a+60>>2];e=J[a+56>>2];j:{if((c|0)==(e|0)){break j}d=c-e|0;c=d>>2;f=c>>>0<=1?1:c;i=f&1;c=0;if(d>>>0>=8){f=f&-2;d=0;while(1){g=c<<2;h=g+e|0;j=J[h>>2];if((j|0)>(b|0)){J[h>>2]=j-1}g=e+(g|4)|0;h=J[g>>2];if((h|0)>(b|0)){J[g>>2]=h-1}c=c+2|0;d=d+2|0;if((f|0)!=(d|0)){continue}break}}if(!i){break j}c=e+(c<<2)|0;d=J[c>>2];if((d|0)<=(b|0)){break j}J[c>>2]=d-1}c=J[a+72>>2];a=J[a+68>>2];if((c|0)==(a|0)){break a}d=c-a|0;c=d>>2;e=c>>>0<=1?1:c;f=e&1;c=0;if(d>>>0>=8){e=e&-2;d=0;while(1){i=c<<2;g=i+a|0;h=J[g>>2];if((h|0)>(b|0)){J[g>>2]=h-1}i=a+(i|4)|0;g=J[i>>2];if((g|0)>(b|0)){J[i>>2]=g-1}c=c+2|0;d=d+2|0;if((e|0)!=(d|0)){continue}break}}if(!f){break a}d=b;a=a+(c<<2)|0;b=J[a>>2];if((d|0)>=(b|0)){break a}J[a>>2]=b-1}}function ab(a,b,c,d,e,f,g,h,i){var j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0;k=ea-112|0;ea=k;l=i&2147483647;j=e&2147483647;m=j;a:{b:{o=!(b|c);if(!(d|j?j-2147418112>>>0<2147549184:o)){n=l-2147418112|0;if(!h&(n|0)==-2147418112?f|g:(n|0)==-2147418112&(h|0)!=0|n>>>0>2147549184){break b}}if(!(!d&(m|0)==2147418112?o:m>>>0<2147418112)){h=d;i=e|32768;f=b;g=c;break a}if(!(!h&(l|0)==2147418112?!(f|g):l>>>0<2147418112)){i=i|32768;break a}if(!(b|d|(m^2147418112|c))){j=d;d=!(b^f|d^h|(c^g|e^i^-2147483648));h=d?0:j;i=d?2147450880:e;f=d?0:b;g=d?0:c;break a}if(!(f|h|(l^2147418112|g))){break a}if(!(b|d|(c|m))){if(f|h|(g|l)){break a}f=b&f;g=c&g;h=d&h;i=e&i;break a}if(f|h|(g|l)){break b}f=b;g=c;h=d;i=e;break a}j=(l|0)==(m|0);j=j&(d|0)==(h|0)?(c|0)==(g|0)&b>>>0>>0|c>>>0>>0:j&d>>>0>>0|l>>>0>m>>>0;p=j?f:b;m=j?g:c;l=j?i:e;s=l;q=j?h:d;o=l&65535;e=j?e:i;r=e;h=j?d:h;l=e>>>16&32767;n=s>>>16&32767;if(!n){d=!(o|q);e=d<<6;i=S(d?p:q)+32|0;d=S(d?m:o);d=e+((d|0)==32?i:d)|0;Sa(k+96|0,p,m,q,o,d-15|0);q=J[k+104>>2];o=J[k+108>>2];p=J[k+96>>2];n=16-d|0;m=J[k+100>>2]}f=j?b:f;g=j?c:g;i=r&65535;if(!l){b=!(h|i);c=b<<6;d=S(b?f:h)+32|0;b=S(b?g:i);b=c+((b|0)==32?d:b)|0;Sa(k+80|0,f,g,h,i,b-15|0);l=16-b|0;h=J[k+88>>2];i=J[k+92>>2];g=J[k+84>>2];f=J[k+80>>2]}c=h;b=i<<3|c>>>29;d=c<<3;c=b;b=g>>>29|d;c=c|524288;d=q;j=o<<3|d>>>29;h=d<<3|m>>>29;i=j;r=r^s;d=f;e=g<<3|d>>>29;d=d<<3;c:{if((l|0)==(n|0)){break c}f=n-l|0;if(f>>>0>127){b=0;c=0;e=0;d=1;break c}Sa(k- -64|0,d,e,b,c,128-f|0);Ib(k+48|0,d,e,b,c,f);b=J[k+56>>2];c=J[k+60>>2];e=J[k+52>>2];d=J[k+48>>2]|(J[k+64>>2]|J[k+72>>2]|(J[k+68>>2]|J[k+76>>2]))!=0}l=d;o=e;j=h;q=i|524288;d=p;e=m<<3|d>>>29;m=d<<3;p=e;d:{if((r|0)<0){f=0;g=0;h=0;i=0;if(!(l^m|b^j|(o^p|c^q))){break a}d=m-l|0;e=p-((l>>>0>m>>>0)+o|0)|0;c=q-((b>>>0>j>>>0)+c|0)|0;f=j-b|0;b=(o|0)==(p|0)&l>>>0>m>>>0|o>>>0>p>>>0;i=c-(f>>>0>>0)|0;h=f-b|0;if(i>>>0>524287){break d}b=!(h|i);c=b<<6;f=S(b?d:h)+32|0;b=S(b?e:i);b=c+((b|0)==32?f:b)|0;b=b-12|0;Sa(k+32|0,d,e,h,i,b);n=n-b|0;h=J[k+40>>2];i=J[k+44>>2];d=J[k+32>>2];e=J[k+36>>2];break d}e=o+p|0;d=l+m|0;e=d>>>0>>0?e+1|0:e;f=b;b=j;f=f+b|0;j=c+q|0;j=b>>>0>f>>>0?j+1|0:j;c=f;b=c+((e|0)==(o|0)&d>>>0>>0|e>>>0>>0)|0;h=b;i=b>>>0>>0?j+1|0:j;if(!(i&1048576)){break d}c=h;j=c<<31;d=l&1|((e&1)<<31|d>>>1);e=j|e>>>1;n=n+1|0;h=(i&1)<<31|c>>>1;i=i>>>1|0}c=0;m=s&-2147483648;if((n|0)>=32767){h=c;i=m|2147418112;f=0;g=0;break a}l=0;e:{if((n|0)>0){l=n;break e}Sa(k+16|0,d,e,h,i,n+127|0);Ib(k,d,e,h,i,1-n|0);d=J[k>>2]|(J[k+16>>2]|J[k+24>>2]|(J[k+20>>2]|J[k+28>>2]))!=0;e=J[k+4>>2];h=J[k+8>>2];i=J[k+12>>2]}j=h<<29;o=(e&7)<<29|d>>>3;f=o;n=d&7;d=f+(n>>>0>4)|0;b=e>>>3|j;e=d>>>0>>0?b+1|0:b;f=d;c=c|((i&7)<<29|h>>>3);g=e;b=c+((b|0)==(e|0)&d>>>0>>0|b>>>0>e>>>0)|0;i=m|(i>>>3&65535|l<<16);i=b>>>0>>0?i+1|0:i;h=b;f:{if((n|0)==4){c=0;j=g+c|0;d=f&1;b=f+d|0;j=b>>>0>>0?j+1|0:j;f=b;g=j;c=(c|0)==(j|0)&b>>>0>>0|c>>>0>j>>>0;b=c+h|0;i=b>>>0>>0?i+1|0:i;h=b;break f}if(!n){break a}}}J[a>>2]=f;J[a+4>>2]=g;J[a+8>>2]=h;J[a+12>>2]=i;ea=k+112|0}function qa(a){a=a|0;var b=0,c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0;a:{if(!a){break a}d=a-8|0;b=J[a-4>>2];a=b&-8;f=d+a|0;b:{if(b&1){break b}if(!(b&3)){break a}b=J[d>>2];d=d-b|0;if(d>>>0>>0<=255){e=J[d+8>>2];b=b>>>3|0;c=J[d+12>>2];if((c|0)==(e|0)){i=19388,j=J[4847]&El(b),J[i>>2]=j;break b}J[e+12>>2]=c;J[c+8>>2]=e;break b}h=J[d+24>>2];b=J[d+12>>2];c:{if((d|0)!=(b|0)){c=J[d+8>>2];J[c+12>>2]=b;J[b+8>>2]=c;break c}d:{e=d+20|0;c=J[e>>2];if(c){break d}e=d+16|0;c=J[e>>2];if(c){break d}b=0;break c}while(1){g=e;b=c;e=b+20|0;c=J[e>>2];if(c){continue}e=b+16|0;c=J[b+16>>2];if(c){continue}break}J[g>>2]=0}if(!h){break b}e=J[d+28>>2];c=(e<<2)+19692|0;e:{if(J[c>>2]==(d|0)){J[c>>2]=b;if(b){break e}i=19392,j=J[4848]&El(e),J[i>>2]=j;break b}J[h+(J[h+16>>2]==(d|0)?16:20)>>2]=b;if(!b){break b}}J[b+24>>2]=h;c=J[d+16>>2];if(c){J[b+16>>2]=c;J[c+24>>2]=b}c=J[d+20>>2];if(!c){break b}J[b+20>>2]=c;J[c+24>>2]=b;break b}b=J[f+4>>2];if((b&3)!=3){break b}J[4849]=a;J[f+4>>2]=b&-2;J[d+4>>2]=a|1;J[a+d>>2]=a;return}if(d>>>0>=f>>>0){break a}b=J[f+4>>2];if(!(b&1)){break a}f:{if(!(b&2)){if(J[4853]==(f|0)){J[4853]=d;a=J[4850]+a|0;J[4850]=a;J[d+4>>2]=a|1;if(J[4852]!=(d|0)){break a}J[4849]=0;J[4852]=0;return}if(J[4852]==(f|0)){J[4852]=d;a=J[4849]+a|0;J[4849]=a;J[d+4>>2]=a|1;J[a+d>>2]=a;return}a=(b&-8)+a|0;g:{if(b>>>0<=255){e=J[f+8>>2];b=b>>>3|0;c=J[f+12>>2];if((c|0)==(e|0)){i=19388,j=J[4847]&El(b),J[i>>2]=j;break g}J[e+12>>2]=c;J[c+8>>2]=e;break g}h=J[f+24>>2];b=J[f+12>>2];h:{if((f|0)!=(b|0)){c=J[f+8>>2];J[c+12>>2]=b;J[b+8>>2]=c;break h}i:{e=f+20|0;c=J[e>>2];if(c){break i}e=f+16|0;c=J[e>>2];if(c){break i}b=0;break h}while(1){g=e;b=c;e=b+20|0;c=J[e>>2];if(c){continue}e=b+16|0;c=J[b+16>>2];if(c){continue}break}J[g>>2]=0}if(!h){break g}e=J[f+28>>2];c=(e<<2)+19692|0;j:{if(J[c>>2]==(f|0)){J[c>>2]=b;if(b){break j}i=19392,j=J[4848]&El(e),J[i>>2]=j;break g}J[h+(J[h+16>>2]==(f|0)?16:20)>>2]=b;if(!b){break g}}J[b+24>>2]=h;c=J[f+16>>2];if(c){J[b+16>>2]=c;J[c+24>>2]=b}c=J[f+20>>2];if(!c){break g}J[b+20>>2]=c;J[c+24>>2]=b}J[d+4>>2]=a|1;J[a+d>>2]=a;if(J[4852]!=(d|0)){break f}J[4849]=a;return}J[f+4>>2]=b&-2;J[d+4>>2]=a|1;J[a+d>>2]=a}if(a>>>0<=255){b=(a&-8)+19428|0;c=J[4847];a=1<<(a>>>3);k:{if(!(c&a)){J[4847]=a|c;a=b;break k}a=J[b+8>>2]}J[b+8>>2]=d;J[a+12>>2]=d;J[d+12>>2]=b;J[d+8>>2]=a;return}e=31;if(a>>>0<=16777215){b=a>>>8|0;g=b+1048320>>>16&8;b=b<>>16&4;b=b<>>16&2;b=(b<>>15|0)-(c|(e|g))|0;e=(b<<1|a>>>b+21&1)+28|0}J[d+28>>2]=e;J[d+16>>2]=0;J[d+20>>2]=0;g=(e<<2)+19692|0;l:{m:{c=J[4848];b=1<>2]=d;J[d+24>>2]=g;break n}e=a<<((e|0)!=31?25-(e>>>1|0)|0:0);b=J[g>>2];while(1){c=b;if((J[b+4>>2]&-8)==(a|0)){break m}b=e>>>29|0;e=e<<1;g=c+(b&4)|0;b=J[g+16>>2];if(b){continue}break}J[g+16>>2]=d;J[d+24>>2]=c}J[d+12>>2]=d;J[d+8>>2]=d;break l}a=J[c+8>>2];J[a+12>>2]=d;J[c+8>>2]=d;J[d+24>>2]=0;J[d+12>>2]=c;J[d+8>>2]=a}a=J[4855]-1|0;J[4855]=a?a:-1}}function uk(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0;k=ea-48|0;ea=k;d=J[a+8>>2];if(d-31>>>0>=4294967267){J[a+76>>2]=d;e=-1<>2]=d;J[a+80>>2]=e^-1;J[a+92>>2]=(d|0)/2;N[a+88>>2]=Q(2)/Q(d|0)}J[a+52>>2]=f;o=a+96|0;Ca(o);d=J[a+40>>2];e=J[d>>2];d=J[d+4>>2];J[k+16>>2]=0;J[k+8>>2]=0;J[k+12>>2]=0;a:{d=d-e|0;if((d|0)>0){p=a+8|0;q=a+44|0;d=d>>>2|0;r=d>>>0<=1?1:d;s=c+4|0;while(1){e=J[a+40>>2];d=J[e>>2];if(J[e+4>>2]-d>>2>>>0<=n>>>0){break a}Rc(q,J[d+(n<<2)>>2],k+8|0);f=J[k+12>>2];d=f>>31;e=J[k+8>>2];i=e>>31;l=J[k+16>>2];g=l>>31;g=(g^l)-g|0;i=g+((d^f)-d+((e^i)-i)|0)|0;d=0;d=g>>>0>i>>>0?1:d;b:{if(!(d|i)){j=J[a+92>>2];h=j;break b}j=J[a+92>>2];m=j>>31;f=Bl(Al(j,m,f,f>>31),fa,i,d);g=f>>31;h=Bl(Al(j,m,e,e>>31),fa,i,d);d=h>>31;d=(f^g)-g+((d^h)-d)|0;l=(l|0)<0?d-j|0:j-d|0}c:{if((h|0)>=0){i=f+j|0;g=j+l|0;break c}d:{if((f|0)<0){d=l>>31;i=(d^l)-d|0;break d}d=l>>31;i=J[a+84>>2]+(d-(d^l)|0)|0}if((l|0)<0){d=f>>31;g=(d^f)-d|0;break c}d=f>>31;g=J[a+84>>2]+(d-(d^f)|0)|0}d=J[a+84>>2];m=d;e=d;e:{if(!(g|i)){break e}if(!((d|0)!=(g|0)|i)){m=g;e=g;break e}if(!((d|0)!=(i|0)|g)){m=i;e=i;break e}if(!((g|0)<=(j|0)|i)){m=(j<<1)-g|0;e=0;break e}if(!((d|0)!=(i|0)|(g|0)>=(j|0))){m=(j<<1)-g|0;e=i;break e}if(!((d|0)!=(g|0)|(i|0)>=(j|0))){m=g;e=(j<<1)-i|0;break e}if(g){m=g;e=i;break e}m=0;e=i;if((e|0)<=(j|0)){break e}e=(j<<1)-i|0}i=e;J[k+16>>2]=0-l;J[k+12>>2]=0-f;J[k+8>>2]=0-h;f:{if((h|0)<=0){h=j-l|0;e=j-f|0;break f}e=f>>31;e=(e^f)-e|0;h=(l|0)>0?e:d-e|0;e=l>>31;e=(e^l)-e|0;e=(f|0)>0?e:d-e|0}g:{if(!(e|h)){h=d;break g}if(!((d|0)!=(h|0)|e)){h=d;break g}f=(d|0)!=(e|0);if(!(h|f)){h=d;break g}if(!((h|0)<=(j|0)|e)){h=(j<<1)-h|0;d=0;break g}if(!((h|0)>=(j|0)|f)){h=(j<<1)-h|0;break g}if(!((d|0)!=(h|0)|(e|0)>=(j|0))){h=d;d=(j<<1)-e|0;break g}if(h){d=e;break g}h=0;if((e|0)<=(j|0)){d=e;break g}d=(j<<1)-e|0}e=(n<<3)+b|0;f=J[e>>2];g=J[e+4>>2];J[k+28>>2]=m;J[k+24>>2]=i;J[k+32>>2]=f;J[k+36>>2]=g;i=k+40|0;g=k+32|0;m=k+24|0;_a(i,p,g,m);f=J[k+44>>2];l=J[k+40>>2];j=J[e>>2];e=J[e+4>>2];J[k+28>>2]=h;J[k+24>>2]=d;J[k+32>>2]=j;J[k+36>>2]=e;_a(i,p,g,m);d=J[k+44>>2];h=J[k+40>>2];e=J[a+92>>2];h:{if((e|0)<(l|0)){l=l-J[a+80>>2]|0;break h}if((0-e|0)<=(l|0)){break h}l=J[a+80>>2]+l|0}i:{if((e|0)<(f|0)){f=f-J[a+80>>2]|0;break i}if((0-e|0)<=(f|0)){break i}f=J[a+80>>2]+f|0}j:{if((e|0)<(h|0)){h=h-J[a+80>>2]|0;break j}if((0-e|0)<=(h|0)){break j}h=J[a+80>>2]+h|0}i=n<<1;k:{if((d|0)>(e|0)){d=d-J[a+80>>2]|0;break k}if((0-e|0)<=(d|0)){break k}d=J[a+80>>2]+d|0}e=f>>31;e=(e^f)-e|0;g=l>>31;g=(g^l)-g|0;e=g>>>0>(e^2147483647)>>>0?2147483647:e+g|0;g=d>>31;g=(g^d)-g|0;m=h>>31;m=(m^h)-m|0;g=m>>>0>(g^2147483647)>>>0?2147483647:g+m|0;Ga(o,e>>>0>=g>>>0);i=i<<2;e=e>>>0>>0;g=e?l:h;J[i+c>>2]=(J[a+80>>2]&g>>31)+g;d=e?f:d;J[i+s>>2]=(J[a+80>>2]&d>>31)+d;n=n+1|0;if((r|0)!=(n|0)){continue}break}}ea=k+48|0;return 1}va();B()}function ik(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0;k=ea-48|0;ea=k;d=J[a+8>>2];if(d-31>>>0>=4294967267){J[a+76>>2]=d;e=-1<>2]=d;J[a+80>>2]=e^-1;J[a+92>>2]=(d|0)/2;N[a+88>>2]=Q(2)/Q(d|0)}J[a+52>>2]=f;o=a+96|0;Ca(o);d=J[a+40>>2];e=J[d>>2];d=J[d+4>>2];J[k+16>>2]=0;J[k+8>>2]=0;J[k+12>>2]=0;a:{d=d-e|0;if((d|0)>0){p=a+8|0;q=a+44|0;d=d>>>2|0;r=d>>>0<=1?1:d;s=c+4|0;while(1){e=J[a+40>>2];d=J[e>>2];if(J[e+4>>2]-d>>2>>>0<=n>>>0){break a}Pc(q,J[d+(n<<2)>>2],k+8|0);f=J[k+12>>2];d=f>>31;e=J[k+8>>2];i=e>>31;l=J[k+16>>2];g=l>>31;g=(g^l)-g|0;i=g+((d^f)-d+((e^i)-i)|0)|0;d=0;d=g>>>0>i>>>0?1:d;b:{if(!(d|i)){j=J[a+92>>2];h=j;break b}j=J[a+92>>2];m=j>>31;f=Bl(Al(j,m,f,f>>31),fa,i,d);g=f>>31;h=Bl(Al(j,m,e,e>>31),fa,i,d);d=h>>31;d=(f^g)-g+((d^h)-d)|0;l=(l|0)<0?d-j|0:j-d|0}c:{if((h|0)>=0){i=f+j|0;g=j+l|0;break c}d:{if((f|0)<0){d=l>>31;i=(d^l)-d|0;break d}d=l>>31;i=J[a+84>>2]+(d-(d^l)|0)|0}if((l|0)<0){d=f>>31;g=(d^f)-d|0;break c}d=f>>31;g=J[a+84>>2]+(d-(d^f)|0)|0}d=J[a+84>>2];m=d;e=d;e:{if(!(g|i)){break e}if(!((d|0)!=(g|0)|i)){m=g;e=g;break e}if(!((d|0)!=(i|0)|g)){m=i;e=i;break e}if(!((g|0)<=(j|0)|i)){m=(j<<1)-g|0;e=0;break e}if(!((d|0)!=(i|0)|(g|0)>=(j|0))){m=(j<<1)-g|0;e=i;break e}if(!((d|0)!=(g|0)|(i|0)>=(j|0))){m=g;e=(j<<1)-i|0;break e}if(g){m=g;e=i;break e}m=0;e=i;if((e|0)<=(j|0)){break e}e=(j<<1)-i|0}i=e;J[k+16>>2]=0-l;J[k+12>>2]=0-f;J[k+8>>2]=0-h;f:{if((h|0)<=0){h=j-l|0;e=j-f|0;break f}e=f>>31;e=(e^f)-e|0;h=(l|0)>0?e:d-e|0;e=l>>31;e=(e^l)-e|0;e=(f|0)>0?e:d-e|0}g:{if(!(e|h)){h=d;break g}if(!((d|0)!=(h|0)|e)){h=d;break g}f=(d|0)!=(e|0);if(!(h|f)){h=d;break g}if(!((h|0)<=(j|0)|e)){h=(j<<1)-h|0;d=0;break g}if(!((h|0)>=(j|0)|f)){h=(j<<1)-h|0;break g}if(!((d|0)!=(h|0)|(e|0)>=(j|0))){h=d;d=(j<<1)-e|0;break g}if(h){d=e;break g}h=0;if((e|0)<=(j|0)){d=e;break g}d=(j<<1)-e|0}e=(n<<3)+b|0;f=J[e>>2];g=J[e+4>>2];J[k+28>>2]=m;J[k+24>>2]=i;J[k+32>>2]=f;J[k+36>>2]=g;i=k+40|0;g=k+32|0;m=k+24|0;_a(i,p,g,m);f=J[k+44>>2];l=J[k+40>>2];j=J[e>>2];e=J[e+4>>2];J[k+28>>2]=h;J[k+24>>2]=d;J[k+32>>2]=j;J[k+36>>2]=e;_a(i,p,g,m);d=J[k+44>>2];h=J[k+40>>2];e=J[a+92>>2];h:{if((e|0)<(l|0)){l=l-J[a+80>>2]|0;break h}if((0-e|0)<=(l|0)){break h}l=J[a+80>>2]+l|0}i:{if((e|0)<(f|0)){f=f-J[a+80>>2]|0;break i}if((0-e|0)<=(f|0)){break i}f=J[a+80>>2]+f|0}j:{if((e|0)<(h|0)){h=h-J[a+80>>2]|0;break j}if((0-e|0)<=(h|0)){break j}h=J[a+80>>2]+h|0}i=n<<1;k:{if((d|0)>(e|0)){d=d-J[a+80>>2]|0;break k}if((0-e|0)<=(d|0)){break k}d=J[a+80>>2]+d|0}e=f>>31;e=(e^f)-e|0;g=l>>31;g=(g^l)-g|0;e=g>>>0>(e^2147483647)>>>0?2147483647:e+g|0;g=d>>31;g=(g^d)-g|0;m=h>>31;m=(m^h)-m|0;g=m>>>0>(g^2147483647)>>>0?2147483647:g+m|0;Ga(o,e>>>0>=g>>>0);i=i<<2;e=e>>>0>>0;g=e?l:h;J[i+c>>2]=(J[a+80>>2]&g>>31)+g;d=e?f:d;J[i+s>>2]=(J[a+80>>2]&d>>31)+d;n=n+1|0;if((r|0)!=(n|0)){continue}break}}ea=k+48|0;return 1}va();B()}function Zf(a,b){var c=0,d=0,e=0,f=0,g=0,h=0,i=0;c=J[a+8>>2];e=J[a+4>>2];if((c-e|0)/136>>>0>=b>>>0){a:{if(!b){break a}d=e;f=b&7;if(f){c=0;while(1){Ua(d);d=d+136|0;c=c+1|0;if((f|0)!=(c|0)){continue}break}}e=P(b,136)+e|0;if((b-1&536870911)>>>0<7){break a}while(1){Ua(d);Ua(d+136|0);Ua(d+272|0);Ua(d+408|0);Ua(d+544|0);Ua(d+680|0);Ua(d+816|0);Ua(d+952|0);d=d+1088|0;if((e|0)!=(d|0)){continue}break}}J[a+4>>2]=e;return}b:{c:{d:{f=J[a>>2];h=(e-f|0)/136|0;d=h+b|0;if(d>>>0<31580642){e=0;c=(c-f|0)/136|0;f=c<<1;f=c>>>0>=15790320?31580641:d>>>0>>0?f:d;if(f){if(f>>>0>=31580642){break d}g=ra(P(f,136))}c=P(h,136)+g|0;d=c;h=b&7;if(h){d=c;while(1){Ua(d);d=d+136|0;e=e+1|0;if((h|0)!=(e|0)){continue}break}}h=P(b,136)+c|0;if((b-1&536870911)>>>0>=7){while(1){Ua(d);Ua(d+136|0);Ua(d+272|0);Ua(d+408|0);Ua(d+544|0);Ua(d+680|0);Ua(d+816|0);Ua(d+952|0);d=d+1088|0;if((h|0)!=(d|0)){continue}break}}f=P(f,136)+g|0;d=J[a+4>>2];e=J[a>>2];if((d|0)==(e|0)){break c}while(1){c=c-136|0;d=d-136|0;b=d;J[c>>2]=J[b>>2];J[c+4>>2]=J[b+4>>2];J[c+8>>2]=J[b+8>>2];J[c+12>>2]=J[b+12>>2];J[b+12>>2]=0;J[b+4>>2]=0;J[b+8>>2]=0;J[c+16>>2]=J[b+16>>2];J[c+20>>2]=J[b+20>>2];J[c+24>>2]=J[b+24>>2];J[b+24>>2]=0;J[b+16>>2]=0;J[b+20>>2]=0;g=K[b+28|0];J[c+40>>2]=0;J[c+32>>2]=0;J[c+36>>2]=0;H[c+28|0]=g;J[c+32>>2]=J[b+32>>2];J[c+36>>2]=J[b+36>>2];J[c+40>>2]=J[b+40>>2];J[b+40>>2]=0;J[b+32>>2]=0;J[b+36>>2]=0;J[c+52>>2]=0;J[c+44>>2]=0;J[c+48>>2]=0;J[c+44>>2]=J[b+44>>2];J[c+48>>2]=J[b+48>>2];J[c+52>>2]=J[b+52>>2];J[b+52>>2]=0;J[b+44>>2]=0;J[b+48>>2]=0;g=c- -64|0;J[g>>2]=0;J[c+56>>2]=0;J[c+60>>2]=0;J[c+56>>2]=J[b+56>>2];J[c+60>>2]=J[b+60>>2];i=g;g=b- -64|0;J[i>>2]=J[g>>2];J[g>>2]=0;J[b+56>>2]=0;J[b+60>>2]=0;J[c+68>>2]=J[b+68>>2];g=J[b+72>>2];J[c+84>>2]=0;J[c+76>>2]=0;J[c+80>>2]=0;J[c+72>>2]=g;J[c+76>>2]=J[b+76>>2];J[c+80>>2]=J[b+80>>2];J[c+84>>2]=J[b+84>>2];J[b+84>>2]=0;J[b+76>>2]=0;J[b+80>>2]=0;J[c+96>>2]=0;J[c+88>>2]=0;J[c+92>>2]=0;J[c+88>>2]=J[b+88>>2];J[c+92>>2]=J[b+92>>2];J[c+96>>2]=J[b+96>>2];J[b+96>>2]=0;J[b+88>>2]=0;J[b+92>>2]=0;g=K[b+100|0];J[c+112>>2]=0;J[c+104>>2]=0;J[c+108>>2]=0;H[c+100|0]=g;J[c+104>>2]=J[b+104>>2];J[c+108>>2]=J[b+108>>2];J[c+112>>2]=J[b+112>>2];J[b+112>>2]=0;J[b+104>>2]=0;J[b+108>>2]=0;J[c+124>>2]=0;J[c+116>>2]=0;J[c+120>>2]=0;J[c+116>>2]=J[b+116>>2];J[c+120>>2]=J[b+120>>2];J[c+124>>2]=J[b+124>>2];J[b+124>>2]=0;J[b+116>>2]=0;J[b+120>>2]=0;J[c+128>>2]=J[b+128>>2];J[c+132>>2]=J[b+132>>2];if((b|0)!=(e|0)){continue}break}J[a+8>>2]=f;d=J[a+4>>2];J[a+4>>2]=h;e=J[a>>2];J[a>>2]=c;if((d|0)==(e|0)){break b}while(1){a=d-136|0;b=J[a+116>>2];if(b){J[d-16>>2]=b;qa(b)}b=J[d-32>>2];if(b){J[d-28>>2]=b;qa(b)}oc(d-132|0);d=a;if((e|0)!=(d|0)){continue}break}break b}ua();B()}ya();B()}J[a+8>>2]=f;J[a+4>>2]=h;J[a>>2]=c}if(e){qa(e)}}function Qf(a,b){var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0;if((b|0)==-1){return 1}c=(b>>>0)/3|0;if(!(J[J[a+24>>2]+(c>>>3&268435452)>>2]>>>c&1)){d=J[a+48>>2];J[a+52>>2]=d;a:{if((d|0)!=J[a+56>>2]){J[d>>2]=b;J[a+52>>2]=d+4;break a}e=ra(4);J[e>>2]=b;f=e+4|0;J[a+56>>2]=f;J[a+52>>2]=f;J[a+48>>2]=e;if(!d){break a}qa(d)}f=J[J[a+4>>2]+28>>2];d=b+1|0;e=(d>>>0)%3|0?d:b-2|0;d=J[f+(e<<2)>>2];if((d|0)==-1){return 0}g=(b-P(c,3)|0?-1:2)+b|0;c=J[f+(g<<2)>>2];if((c|0)==-1){return 0}b=J[a+36>>2];f=b+(d>>>3&536870908)|0;h=J[f>>2];i=1<>2]=h|i;nb(a+8|0,d,e);b=J[a+36>>2]}b=(c>>>3&536870908)+b|0;d=J[b>>2];e=1<>2]=d|e;nb(a+8|0,c,g)}c=J[a+52>>2];if((c|0)==J[a+48>>2]){return 1}k=a+8|0;while(1){b:{c:{c=c-4|0;b=J[c>>2];if((b|0)==-1){break c}d=(b>>>0)/3|0;e=J[a+24>>2]+(d>>>3&268435452)|0;f=J[e>>2];d=1<>2]=d|f;e=J[a+4>>2];d=J[J[e+28>>2]+(b<<2)>>2];if((d|0)==-1){return 0}while(1){c=b;d:{e:{f=J[a+36>>2]+(d>>>3&536870908)|0;g=J[f>>2];h=1<>2]+(d<<2)>>2];g:{if((b|0)==-1){break g}i=b+1|0;b=(i>>>0)%3|0?i:b-2|0;if((b|0)==-1|J[J[e>>2]+(b>>>3&536870908)>>2]>>>b&1){break g}b=J[J[J[e+64>>2]+12>>2]+(b<<2)>>2];if((b|0)!=-1){break f}}J[f>>2]=g|h;nb(k,d,c);break e}J[f>>2]=g|h;nb(k,d,c);d=b+1|0;if((((d>>>0)%3|0?d:b-2|0)|0)==-1){break e}b=-1;e=J[a+4>>2];h:{if((c|0)==-1){break h}d=c+1|0;d=(d>>>0)%3|0?d:c-2|0;if((d|0)==-1|J[J[e>>2]+(d>>>3&536870908)>>2]>>>d&1){break h}b=J[J[J[e+64>>2]+12>>2]+(d<<2)>>2]}d=(b>>>0)/3|0;h=1<>2];i=d>>>5|0;f=J[c+(i<<2)>>2];break d}i:{j:{if((c|0)==-1){break j}d=-1;b=c+1|0;b=(b>>>0)%3|0?b:c-2|0;e=J[a+4>>2];if(!((b|0)==-1|J[J[e>>2]+(b>>>3&536870908)>>2]>>>b&1)){d=J[J[J[e+64>>2]+12>>2]+(b<<2)>>2]}k:{l:{if((c>>>0)%3|0){c=c-1|0;break l}c=c+2|0;b=-1;if((c|0)==-1){break k}}b=-1;if(J[J[e>>2]+(c>>>3&536870908)>>2]>>>c&1){break k}b=J[J[J[e+64>>2]+12>>2]+(c<<2)>>2]}j=(b|0)==-1;g=j?-1:(b>>>0)/3|0;if((d|0)!=-1){c=J[a+24>>2];h=(d>>>0)/3|0;i=h>>>5|0;f=J[c+(i<<2)>>2];h=1<>2];i=g>>>5|0;f=J[c+(i<<2)>>2];if(!(h&f)){break d}}c=J[a+52>>2]-4|0;J[a+52>>2]=c;break b}if(j){b=d;break d}if(J[(g>>>3&536870908)+c>>2]>>>g&1){b=d;break d}c=J[a+52>>2];J[c-4>>2]=b;if((c|0)!=J[a+56>>2]){J[c>>2]=d;c=c+4|0;break c}m:{f=J[a+48>>2];e=c-f|0;c=e>>2;b=c+1|0;if(b>>>0<1073741824){g=e>>1;g=e>>>0>=2147483644?1073741823:b>>>0>>0?g:b;if(g){if(g>>>0>=1073741824){break m}b=ra(g<<2)}else{b=0}c=b+(c<<2)|0;J[c>>2]=d;c=c+4|0;if((e|0)>0){ta(b,f,e)}J[a+56>>2]=b+(g<<2);J[a+52>>2]=c;J[a+48>>2]=b;if(!f){break b}qa(f);c=J[a+52>>2];break b}ua();B()}ya();B()}J[(i<<2)+c>>2]=f|h;d=J[J[e+28>>2]+(b<<2)>>2];if((d|0)!=-1){continue}break}return 0}J[a+52>>2]=c}if(J[a+48>>2]!=(c|0)){continue}break}}return 1}function Lj(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0;e=ea+-64|0;ea=e;a:{b:{c:{d:{if(!K[a+288|0]){break d}c=1;h=ga[J[J[a>>2]+40>>2]](a)|0;if((J[h+12>>2]-J[h+8>>2]|0)<=0){break d}kc(J[J[(ga[J[J[a>>2]+40>>2]](a)|0)+8>>2]>>2],b);break c}c=b<<2;f=J[c+J[J[(ga[J[J[a>>2]+40>>2]](a)|0)+56>>2]+84>>2]>>2];i=J[c+J[J[(ga[J[J[a>>2]+40>>2]](a)|0)+4>>2]+8>>2]>>2];h=-1;c=J[a+176>>2];d=J[a+172>>2];e:{if((c|0)==(d|0)){break e}c=(c-d|0)/136|0;g=c>>>0<=1?1:c;c=0;while(1){if(J[d+P(c,136)>>2]==(b|0)){h=c;break e}c=c+1|0;if((g|0)!=(c|0)){continue}break}}f:{g:{h:{i:{if(!K[a+288|0]){c=J[i+56>>2];if(!(!f|!c)){if(!K[(d+P(h,136)|0)+28|0]|(f|0)!=1){break i}break h}if(c){break h}}c=a+40|0;break g}d=d+P(h,136)|0;c=J[d+56>>2];f=J[d+60>>2];J[e>>2]=-1;xb(d+116|0,f-c>>2,e);c=ra(80);f=J[a+8>>2];J[c+12>>2]=0;J[c+16>>2]=0;J[c>>2]=11984;J[c+4>>2]=0;J[c+20>>2]=0;J[c+24>>2]=0;J[c+28>>2]=0;J[c+32>>2]=0;J[c+36>>2]=0;J[c+40>>2]=0;J[c+44>>2]=0;J[c+48>>2]=0;J[c+52>>2]=0;J[c+76>>2]=0;i=d+104|0;J[c+72>>2]=i;J[c+68>>2]=f;J[c- -64>>2]=0;g=c+56|0;J[g>>2]=0;J[g+4>>2]=0;J[c+8>>2]=10876;J[e+40>>2]=0;J[e+44>>2]=0;J[e+32>>2]=0;J[e+36>>2]=0;j=e+24|0;J[j>>2]=0;J[j+4>>2]=0;J[e+16>>2]=0;J[e+20>>2]=0;J[e+56>>2]=0;J[e+8>>2]=0;J[e+12>>2]=0;J[e+48>>2]=0;J[e+52>>2]=0;J[e>>2]=10876;l=d+4|0;J[e+4>>2]=l;d=J[d+68>>2];k=J[d>>2];d=J[d+4>>2];H[e+63|0]=0;k=(d-k>>2>>>0)/3|0;d=e+63|0;Qa(j,k,d);j=J[e+4>>2];k=J[j+56>>2];j=J[j+52>>2];H[e+63|0]=0;Qa(e+36|0,k-j>>2,d);J[e+20>>2]=c;J[e+16>>2]=f;J[e+12>>2]=i;J[e+8>>2]=l;J[c+76>>2]=a+72;Ic(c+8|0,e);Sb(g,J[e+48>>2],J[e+52>>2]);J[e>>2]=10876;d=J[e+48>>2];if(d){J[e+52>>2]=d;qa(d)}J[e>>2]=11128;d=J[e+36>>2];if(d){qa(d)}d=J[e+24>>2];if(d){qa(d)}d=0;break f}c=J[a+12>>2];f=J[c+28>>2];c=J[c+24>>2];J[e>>2]=-1;k=d;d=P(h,136);g=k+d|0;xb(g+116|0,f-c>>2,e);H[(d+J[a+172>>2]|0)+100|0]=0;c=g+104|0}d=0;j:{k:{if(eb(J[(ga[J[J[a>>2]+40>>2]](a)|0)+48>>2])|J[i+56>>2]){break k}if(!K[a+288|0]){d=1;c=Hc(a,c);break j}d=J[a+8>>2];f=J[d+12>>2]-J[d+8>>2]|0;d=(f|0)<5;if((f|0)>4){break k}c=Hc(a,c);break j}c=hg(a,c)}if(c){break f}c=0;break c}J[((h|0)==-1?a+68|0:(J[a+172>>2]+P(h,136)|0)+132|0)>>2]=d;i=ge(ra(76),c,b);b=J[a+188>>2];l:{if((b|0)!=J[a+192>>2]){J[b>>2]=h;J[a+188>>2]=b+4;break l}d=J[a+184>>2];c=b-d|0;g=c>>2;b=g+1|0;if(b>>>0>=1073741824){break b}f=c>>1;f=c>>>0>=2147483644?1073741823:b>>>0>>0?f:b;if(f){if(f>>>0>=1073741824){break a}b=ra(f<<2)}else{b=0}g=b+(g<<2)|0;J[g>>2]=h;if((c|0)>0){ta(b,d,c)}J[a+192>>2]=b+(f<<2);J[a+188>>2]=g+4;J[a+184>>2]=b;if(!d){break l}qa(d)}a=ga[J[J[a>>2]+40>>2]](a)|0;J[e>>2]=i;b=J[a+12>>2];m:{if(b>>>0>2]){J[e>>2]=0;J[b>>2]=i;J[a+12>>2]=b+4;break m}Fc(a+8|0,e)}a=J[e>>2];J[e>>2]=0;if(a){ga[J[J[a>>2]+4>>2]](a)}c=1}ea=e- -64|0;return c|0}ua();B()}ya();B()}function Gj(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0;e=ea+-64|0;ea=e;a:{b:{c:{d:{if(!K[a+352|0]){break d}c=1;h=ga[J[J[a>>2]+40>>2]](a)|0;if((J[h+12>>2]-J[h+8>>2]|0)<=0){break d}kc(J[J[(ga[J[J[a>>2]+40>>2]](a)|0)+8>>2]>>2],b);break c}c=b<<2;f=J[c+J[J[(ga[J[J[a>>2]+40>>2]](a)|0)+56>>2]+84>>2]>>2];i=J[c+J[J[(ga[J[J[a>>2]+40>>2]](a)|0)+4>>2]+8>>2]>>2];h=-1;c=J[a+176>>2];d=J[a+172>>2];e:{if((c|0)==(d|0)){break e}c=(c-d|0)/136|0;g=c>>>0<=1?1:c;c=0;while(1){if(J[d+P(c,136)>>2]==(b|0)){h=c;break e}c=c+1|0;if((g|0)!=(c|0)){continue}break}}f:{g:{h:{i:{if(!K[a+352|0]){c=J[i+56>>2];if(!(!f|!c)){if(!K[(d+P(h,136)|0)+28|0]|(f|0)!=1){break i}break h}if(c){break h}}c=a+40|0;break g}d=d+P(h,136)|0;c=J[d+56>>2];f=J[d+60>>2];J[e>>2]=-1;xb(d+116|0,f-c>>2,e);c=ra(80);f=J[a+8>>2];J[c+12>>2]=0;J[c+16>>2]=0;J[c>>2]=11984;J[c+4>>2]=0;J[c+20>>2]=0;J[c+24>>2]=0;J[c+28>>2]=0;J[c+32>>2]=0;J[c+36>>2]=0;J[c+40>>2]=0;J[c+44>>2]=0;J[c+48>>2]=0;J[c+52>>2]=0;J[c+76>>2]=0;i=d+104|0;J[c+72>>2]=i;J[c+68>>2]=f;J[c- -64>>2]=0;g=c+56|0;J[g>>2]=0;J[g+4>>2]=0;J[c+8>>2]=10876;J[e+40>>2]=0;J[e+44>>2]=0;J[e+32>>2]=0;J[e+36>>2]=0;j=e+24|0;J[j>>2]=0;J[j+4>>2]=0;J[e+16>>2]=0;J[e+20>>2]=0;J[e+56>>2]=0;J[e+8>>2]=0;J[e+12>>2]=0;J[e+48>>2]=0;J[e+52>>2]=0;J[e>>2]=10876;l=d+4|0;J[e+4>>2]=l;d=J[d+68>>2];k=J[d>>2];d=J[d+4>>2];H[e+63|0]=0;k=(d-k>>2>>>0)/3|0;d=e+63|0;Qa(j,k,d);j=J[e+4>>2];k=J[j+56>>2];j=J[j+52>>2];H[e+63|0]=0;Qa(e+36|0,k-j>>2,d);J[e+20>>2]=c;J[e+16>>2]=f;J[e+12>>2]=i;J[e+8>>2]=l;J[c+76>>2]=a+72;Ic(c+8|0,e);Sb(g,J[e+48>>2],J[e+52>>2]);J[e>>2]=10876;d=J[e+48>>2];if(d){J[e+52>>2]=d;qa(d)}J[e>>2]=11128;d=J[e+36>>2];if(d){qa(d)}d=J[e+24>>2];if(d){qa(d)}d=0;break f}c=J[a+12>>2];f=J[c+28>>2];c=J[c+24>>2];J[e>>2]=-1;k=d;d=P(h,136);g=k+d|0;xb(g+116|0,f-c>>2,e);H[(d+J[a+172>>2]|0)+100|0]=0;c=g+104|0}d=0;j:{k:{if(eb(J[(ga[J[J[a>>2]+40>>2]](a)|0)+48>>2])|J[i+56>>2]){break k}if(!K[a+352|0]){d=1;c=Hc(a,c);break j}d=J[a+8>>2];f=J[d+12>>2]-J[d+8>>2]|0;d=(f|0)<5;if((f|0)>4){break k}c=Hc(a,c);break j}c=hg(a,c)}if(c){break f}c=0;break c}J[((h|0)==-1?a+68|0:(J[a+172>>2]+P(h,136)|0)+132|0)>>2]=d;i=ge(ra(76),c,b);b=J[a+188>>2];l:{if((b|0)!=J[a+192>>2]){J[b>>2]=h;J[a+188>>2]=b+4;break l}d=J[a+184>>2];c=b-d|0;g=c>>2;b=g+1|0;if(b>>>0>=1073741824){break b}f=c>>1;f=c>>>0>=2147483644?1073741823:b>>>0>>0?f:b;if(f){if(f>>>0>=1073741824){break a}b=ra(f<<2)}else{b=0}g=b+(g<<2)|0;J[g>>2]=h;if((c|0)>0){ta(b,d,c)}J[a+192>>2]=b+(f<<2);J[a+188>>2]=g+4;J[a+184>>2]=b;if(!d){break l}qa(d)}a=ga[J[J[a>>2]+40>>2]](a)|0;J[e>>2]=i;b=J[a+12>>2];m:{if(b>>>0>2]){J[e>>2]=0;J[b>>2]=i;J[a+12>>2]=b+4;break m}Fc(a+8|0,e)}a=J[e>>2];J[e>>2]=0;if(a){ga[J[J[a>>2]+4>>2]](a)}c=1}ea=e- -64|0;return c|0}ua();B()}ya();B()}function gb(a){var b=0,c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0;f=ea-32|0;ea=f;a:{b:{c:{d:{b=J[a+16>>2];if(b>>>0>=113){J[a+16>>2]=b-113;b=J[a+4>>2];k=J[b>>2];c=b+4|0;J[a+4>>2]=c;b=J[a+8>>2];e:{if((b|0)!=J[a+12>>2]){d=b;break e}h=J[a>>2];if(h>>>0>>0){g=b-c|0;e=((c-h>>2)+1|0)/-2<<2;d=e+c|0;if((b|0)!=(c|0)){xa(d,c,g);c=J[a+4>>2]}d=d+g|0;J[a+8>>2]=d;J[a+4>>2]=c+e;break e}d=(b|0)==(h|0)?1:b-h>>1;if(d>>>0>=1073741824){break d}e=d<<2;i=ra(e);l=e+i|0;e=i+(d&-4)|0;d=e;f:{if((b|0)==(c|0)){break f}b=b-c|0;m=b&-4;j=b-4|0;g=(j>>>2|0)+1&7;g:{if(!g){b=e;break g}d=0;b=e;while(1){J[b>>2]=J[c>>2];c=c+4|0;b=b+4|0;d=d+1|0;if((g|0)!=(d|0)){continue}break}}d=e+m|0;if(j>>>0<28){break f}while(1){J[b>>2]=J[c>>2];J[b+4>>2]=J[c+4>>2];J[b+8>>2]=J[c+8>>2];J[b+12>>2]=J[c+12>>2];J[b+16>>2]=J[c+16>>2];J[b+20>>2]=J[c+20>>2];J[b+24>>2]=J[c+24>>2];J[b+28>>2]=J[c+28>>2];c=c+32|0;b=b+32|0;if((d|0)!=(b|0)){continue}break}}J[a+12>>2]=l;J[a+8>>2]=d;J[a+4>>2]=e;J[a>>2]=i;if(!h){break e}qa(h);d=J[a+8>>2]}J[d>>2]=k;J[a+8>>2]=J[a+8>>2]+4;break a}b=J[a+8>>2];d=b-J[a+4>>2]>>2;g=J[a+12>>2];c=J[a>>2];e=g-c|0;if(d>>>0>2>>>0){if((b|0)!=(g|0)){n=f,o=ra(4068),J[n+8>>2]=o;ie(a,f+8|0);break a}n=f,o=ra(4068),J[n+8>>2]=o;he(a,f+8|0);b=J[a+4>>2];k=J[b>>2];c=b+4|0;J[a+4>>2]=c;b=J[a+8>>2];h:{if((b|0)!=J[a+12>>2]){d=b;break h}h=J[a>>2];if(h>>>0>>0){g=b-c|0;e=((c-h>>2)+1|0)/-2<<2;d=e+c|0;if((b|0)!=(c|0)){xa(d,c,g);c=J[a+4>>2]}d=d+g|0;J[a+8>>2]=d;J[a+4>>2]=c+e;break h}d=(b|0)==(h|0)?1:b-h>>1;if(d>>>0>=1073741824){break d}e=d<<2;i=ra(e);l=e+i|0;e=i+(d&-4)|0;d=e;i:{if((b|0)==(c|0)){break i}b=b-c|0;m=b&-4;j=b-4|0;g=(j>>>2|0)+1&7;j:{if(!g){b=e;break j}d=0;b=e;while(1){J[b>>2]=J[c>>2];c=c+4|0;b=b+4|0;d=d+1|0;if((g|0)!=(d|0)){continue}break}}d=e+m|0;if(j>>>0<28){break i}while(1){J[b>>2]=J[c>>2];J[b+4>>2]=J[c+4>>2];J[b+8>>2]=J[c+8>>2];J[b+12>>2]=J[c+12>>2];J[b+16>>2]=J[c+16>>2];J[b+20>>2]=J[c+20>>2];J[b+24>>2]=J[c+24>>2];J[b+28>>2]=J[c+28>>2];c=c+32|0;b=b+32|0;if((d|0)!=(b|0)){continue}break}}J[a+12>>2]=l;J[a+8>>2]=d;J[a+4>>2]=e;J[a>>2]=i;if(!h){break h}qa(h);d=J[a+8>>2]}J[d>>2]=k;J[a+8>>2]=J[a+8>>2]+4;break a}J[f+24>>2]=a+12;b=(c|0)==(g|0)?1:e>>1;if(b>>>0>=1073741824){break d}e=b<<2;c=ra(e);J[f+8>>2]=c;b=c+(d<<2)|0;J[f+16>>2]=b;J[f+20>>2]=c+e;J[f+12>>2]=b;n=f,o=ra(4068),J[n+4>>2]=o;ie(f+8|0,f+4|0);c=J[a+8>>2];if((c|0)==J[a+4>>2]){b=c;break b}while(1){c=c-4|0;he(f+8|0,c);if(J[a+4>>2]!=(c|0)){continue}break}break c}ya();B()}b=J[a+8>>2]}d=J[a>>2];J[a>>2]=J[f+8>>2];J[f+8>>2]=d;J[a+4>>2]=J[f+12>>2];J[f+12>>2]=c;J[a+8>>2]=J[f+16>>2];J[f+16>>2]=b;e=J[a+12>>2];J[a+12>>2]=J[f+20>>2];J[f+20>>2]=e;if((b|0)!=(c|0)){J[f+16>>2]=b+((c-b|0)+3&-4)}if(!d){break a}qa(d)}ea=f+32|0}function nc(a,b){var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0;j=ea-16|0;ea=j;J[a+124>>2]=J[a+124>>2]+1;h=-1;d=J[a+120>>2];c=-1;a:{if((d|0)==-1){break a}c=d+1|0;h=(c>>>0)%3|0?c:d-2|0;c=d-1|0;if((d>>>0)%3|0){break a}c=d+2|0}e=J[a+104>>2];f=J[a+92>>2];g=f+(h<<2)|0;k=e+(J[g>>2]<<2)|0;i=J[k>>2];b:{c:{switch(b|0){case 0:case 1:J[k>>2]=i-1;d=(J[(c<<2)+f>>2]<<2)+e|0;J[d>>2]=J[d>>2]-1;if((b|0)!=1){break b}g=0;d:{if((c|0)==-1){d=0;break d}d=0;c=J[J[J[a+88>>2]+12>>2]+(c<<2)>>2];if((c|0)==-1){break d}while(1){e:{e=J[a+64>>2];if(ga[J[J[e>>2]+36>>2]](e,(c>>>0)/3|0)|0){break e}d=d+1|0;e=c+1|0;c=(e>>>0)%3|0?e:c-2|0;if((c|0)==-1){break e}c=J[J[J[a+88>>2]+12>>2]+(c<<2)>>2];if((c|0)!=-1){continue}}break}e=J[a+104>>2];f=J[a+92>>2]}J[(J[(J[a+120>>2]<<2)+f>>2]<<2)+e>>2]=d+1;f:{if((h|0)==-1){break f}c=J[J[J[a+88>>2]+12>>2]+(h<<2)>>2];if((c|0)==-1){break f}e=J[a+108>>2]-e>>2;while(1){f=J[a+64>>2];d=(c>>>0)/3|0;if(ga[J[J[f>>2]+36>>2]](f,d)|0){break f}f=c+1|0;J[J[a+92>>2]+(((f>>>0)%3|0?f:c-2|0)<<2)>>2]=e;g=g+1|0;f=J[a+88>>2];g:{if((P(d,3)|0)!=(c|0)){c=c-1|0;break g}c=c+2|0;if((c|0)==-1){break f}}c=J[J[f+12>>2]+(c<<2)>>2];if((c|0)!=-1){continue}break}}J[j+12>>2]=g+1;h:{c=J[a+108>>2];f=J[a+112>>2];if(c>>>0>>0){J[c>>2]=J[j+12>>2];J[a+108>>2]=c+4;break h}i:{e=J[a+104>>2];d=c-e|0;h=d>>2;c=h+1|0;if(c>>>0<1073741824){f=f-e|0;g=f>>1;f=f>>>0>=2147483644?1073741823:c>>>0>>0?g:c;if(f){if(f>>>0>=1073741824){break i}c=ra(f<<2)}else{c=0}h=c+(h<<2)|0;J[h>>2]=J[j+12>>2];if((d|0)>0){ta(c,e,d)}J[a+112>>2]=c+(f<<2);J[a+108>>2]=h+4;J[a+104>>2]=c;if(e){qa(e)}break h}ua();B()}ya();B()}break b;case 5:d=(J[(d<<2)+f>>2]<<2)+e|0;J[d>>2]=J[d>>2]-1;d=(J[g>>2]<<2)+e|0;J[d>>2]=J[d>>2]-1;c=(J[(c<<2)+f>>2]<<2)+e|0;J[c>>2]=J[c>>2]-2;break b;case 3:d=(J[(d<<2)+f>>2]<<2)+e|0;J[d>>2]=J[d>>2]-1;d=(J[g>>2]<<2)+e|0;J[d>>2]=J[d>>2]-2;c=(J[(c<<2)+f>>2]<<2)+e|0;J[c>>2]=J[c>>2]-1;break b;case 7:break c;default:break b}}d=(J[(d<<2)+f>>2]<<2)+e|0;J[d>>2]=J[d>>2]-2;d=(J[g>>2]<<2)+e|0;J[d>>2]=J[d>>2]-2;c=(J[(c<<2)+f>>2]<<2)+e|0;J[c>>2]=J[c>>2]-2}j:{k:{c=J[a+116>>2];l:{if((c|0)==-1){break l}h=J[(c<<2)+11184>>2];c=J[a+132>>2];d=(c|0)>(i|0)?i:c;c=J[a+128>>2];e=J[a+136>>2]+P((c|0)<=(i|0)?d-c|0:0,12)|0;c=J[e+4>>2];d=J[e+8>>2];if(c>>>0>>0){J[c>>2]=h;J[e+4>>2]=c+4;break l}f=J[e>>2];i=c-f|0;g=i>>2;c=g+1|0;if(c>>>0>=1073741824){break k}d=d-f|0;k=d>>1;d=d>>>0>=2147483644?1073741823:c>>>0>>0?k:c;if(d){if(d>>>0>=1073741824){break j}c=ra(d<<2)}else{c=0}g=c+(g<<2)|0;J[g>>2]=h;if((i|0)>0){ta(c,f,i)}J[e>>2]=c;J[e+4>>2]=g+4;J[e+8>>2]=c+(d<<2);if(!f){break l}qa(f)}J[a+116>>2]=b;ea=j+16|0;return}ua();B()}ya();B()}function Rf(a,b){var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0;if((b|0)==-1){return 1}d=(b>>>0)/3|0;if(!(J[J[a+24>>2]+(d>>>3&268435452)>>2]>>>d&1)){c=J[a+48>>2];J[a+52>>2]=c;a:{if((c|0)!=J[a+56>>2]){J[c>>2]=b;J[a+52>>2]=c+4;break a}e=ra(4);J[e>>2]=b;f=e+4|0;J[a+56>>2]=f;J[a+52>>2]=f;J[a+48>>2]=e;if(!c){break a}qa(c)}e=-1;f=J[a+4>>2];c=b+1|0;g=(c>>>0)%3|0?c:b-2|0;if((g|0)!=-1){e=J[J[f>>2]+(g<<2)>>2]}b:{h=b-P(d,3)|0;if(h){c=b-1|0;break b}c=b+2|0;if((c|0)!=-1){break b}return 0}if((e|0)==-1){return 0}d=J[J[f>>2]+(c<<2)>>2];if((d|0)==-1){return 0}c=J[a+36>>2];f=c+(e>>>3&536870908)|0;i=J[f>>2];j=1<>2]=i|j;nb(a+8|0,e,g);c=J[a+36>>2]}c=(d>>>3&536870908)+c|0;e=J[c>>2];f=1<>2]=e|f;nb(a+8|0,d,(h?-1:2)+b|0)}c=J[a+52>>2];if((c|0)==J[a+48>>2]){return 1}j=a+8|0;while(1){c:{d:{c=c-4|0;b=J[c>>2];if((b|0)==-1){break d}d=(b>>>0)/3|0;e=J[a+24>>2]+(d>>>3&268435452)|0;f=J[e>>2];d=1<>2]=d|f;while(1){d=J[a+4>>2];c=J[J[d>>2]+(b<<2)>>2];if((c|0)==-1){return 0}e:{f:{e=J[a+36>>2]+(c>>>3&536870908)|0;f=J[e>>2];g=1<>2]+(c<<2)>>2];h:{if((h|0)==-1){break h}i=h+1|0;h=(i>>>0)%3|0?i:h-2|0;if((h|0)==-1){break h}d=J[J[d+12>>2]+(h<<2)>>2];if((d|0)!=-1){break g}}J[e>>2]=f|g;nb(j,c,b);break f}J[e>>2]=f|g;nb(j,c,b);c=d+1|0;if((((c>>>0)%3|0?c:d-2|0)|0)==-1){break f}d=b-2|0;c=b+1|0;b=-1;c=(c>>>0)%3|0?c:d;if((c|0)!=-1){b=J[J[J[a+4>>2]+12>>2]+(c<<2)>>2]}c=(b>>>0)/3|0;g=1<>2];h=c>>>5|0;d=J[e+(h<<2)>>2];break e}c=-1;f=J[a+4>>2];d=b+1|0;d=(d>>>0)%3|0?d:b-2|0;if((d|0)!=-1){c=J[J[f+12>>2]+(d<<2)>>2]}i:{j:{if((b>>>0)%3|0){e=b-1|0;break j}e=b+2|0;b=-1;if((e|0)==-1){break i}}b=J[J[f+12>>2]+(e<<2)>>2]}i=(b|0)==-1;f=i?-1:(b>>>0)/3|0;k:{if((c|0)!=-1){e=J[a+24>>2];g=(c>>>0)/3|0;h=g>>>5|0;d=J[e+(h<<2)>>2];g=1<>2];h=f>>>5|0;d=J[e+(h<<2)>>2];if(!(g&d)){break e}}c=J[a+52>>2]-4|0;J[a+52>>2]=c;break c}if(i){b=c;break e}if(J[(f>>>3&536870908)+e>>2]>>>f&1){b=c;break e}d=J[a+52>>2];J[d-4>>2]=b;if((d|0)!=J[a+56>>2]){J[d>>2]=c;c=d+4|0;break d}l:{e=J[a+48>>2];d=d-e|0;g=d>>2;b=g+1|0;if(b>>>0<1073741824){f=d>>1;f=d>>>0>=2147483644?1073741823:b>>>0>>0?f:b;if(f){if(f>>>0>=1073741824){break l}b=ra(f<<2)}else{b=0}g=b+(g<<2)|0;J[g>>2]=c;c=g+4|0;if((d|0)>0){ta(b,e,d)}J[a+56>>2]=b+(f<<2);J[a+52>>2]=c;J[a+48>>2]=b;if(!e){break c}qa(e);c=J[a+52>>2];break c}ua();B()}ya();B()}J[(h<<2)+e>>2]=d|g;if((b|0)!=-1){continue}break}return 0}J[a+52>>2]=c}if(J[a+48>>2]!=(c|0)){continue}break}}return 1}function Gg(a,b){var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0;d=a+4|0;if((d|0)!=(b|0)){jc(d,J[b>>2],b+4|0);f=J[b+12>>2];k=b+16|0;d=0;h=a+16|0;a:{if(!J[h+8>>2]){break a}e=J[h>>2];j=h+4|0;J[h>>2]=j;J[J[h+4>>2]+8>>2]=0;J[h+4>>2]=0;J[h+8>>2]=0;c=J[e+4>>2];g=c?c:e;if(!g){ob(h,g);break a}e=J[g+8>>2];b:{if(!e){break b}c=J[e>>2];if((g|0)==(c|0)){J[e>>2]=0;d=e;c=J[e+4>>2];if(!c){break b}while(1){d=c;c=J[c>>2];if(c){continue}c=J[d+4>>2];if(c){continue}break}break b}J[e+4>>2]=0;d=e;if(!c){break b}while(1){d=c;c=J[c>>2];if(c){continue}c=J[d+4>>2];if(c){continue}break}}c:{if((f|0)==(k|0)){i=g;break c}c=f;while(1){i=d;J[g+16>>2]=J[c+16>>2];if((c|0)!=(g|0)){jc(g+20|0,J[c+20>>2],c+24|0)}f=j;d=f;e=J[d>>2];d:{if(!e){break d}l=J[g+16>>2];while(1){f=e;if((l|0)>2]){d=f;e=J[d>>2];if(e){continue}break d}e=J[f+4>>2];if(e){continue}break}d=f+4|0}J[g+8>>2]=f;J[g>>2]=0;J[g+4>>2]=0;J[d>>2]=g;f=J[J[h>>2]>>2];if(f){J[h>>2]=f;g=J[d>>2]}tb(J[h+4>>2],g);J[h+8>>2]=J[h+8>>2]+1;d=0;e:{if(!i){break e}e=J[i+8>>2];if(!e){break e}f=J[e>>2];if((i|0)==(f|0)){J[e>>2]=0;d=e;f=J[e+4>>2];if(!f){break e}while(1){d=f;f=J[d>>2];if(f){continue}f=J[d+4>>2];if(f){continue}break}break e}J[e+4>>2]=0;d=e;if(!f){break e}while(1){d=f;f=J[d>>2];if(f){continue}f=J[d+4>>2];if(f){continue}break}}e=J[c+4>>2];f:{if(e){while(1){f=e;e=J[e>>2];if(e){continue}break f}}while(1){f=J[c+8>>2];e=J[f>>2]!=(c|0);c=f;if(e){continue}break}}if(!i){break c}g=i;c=f;if((k|0)!=(c|0)){continue}break}}ob(h,i);if(!d){break a}while(1){c=J[d+8>>2];if(c){d=c;continue}break}ob(h,d)}if((f|0)!=(k|0)){while(1){n=ea-16|0;ea=n;i=ra(32);g=f+16|0;d=J[g>>2];m=i+24|0;J[m>>2]=0;J[m+4>>2]=0;J[i+16>>2]=d;l=i+20|0;J[l>>2]=m;e=h+4|0;c=J[g+4>>2];j=g+8|0;if((c|0)!=(j|0)){while(1){d=c+16|0;Kg(n+8|0,l,m,d,d);g=J[c+4>>2];g:{if(g){while(1){d=g;g=J[d>>2];if(g){continue}break g}}while(1){d=J[c+8>>2];g=J[d>>2]!=(c|0);c=d;if(g){continue}break}}c=d;if((j|0)!=(c|0)){continue}break}}c=e;d=J[c>>2];h:{if(!d){break h}g=J[i+16>>2];while(1){e=d;if((g|0)>2]){c=e;d=J[c>>2];if(d){continue}break h}d=J[e+4>>2];if(d){continue}break}c=e+4|0}J[i+8>>2]=e;J[i>>2]=0;J[i+4>>2]=0;J[c>>2]=i;d=i;e=J[J[h>>2]>>2];if(e){J[h>>2]=e;d=J[c>>2]}tb(J[h+4>>2],d);J[h+8>>2]=J[h+8>>2]+1;ea=n+16|0;e=J[f+4>>2];i:{if(e){while(1){c=e;e=J[c>>2];if(e){continue}break i}}while(1){c=J[f+8>>2];d=J[c>>2]!=(f|0);f=c;if(d){continue}break}}f=c;if((c|0)!=(k|0)){continue}break}}jc(a+28|0,J[b+24>>2],b+28|0)}}function pf(a,b){var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0;e=ea+-64|0;ea=e;J[e+40>>2]=0;J[e+44>>2]=0;J[e+32>>2]=0;J[e+36>>2]=0;J[e+48>>2]=1065353216;c=J[a+80>>2];J[e+24>>2]=0;J[e+16>>2]=0;J[e+20>>2]=0;a:{if(c){if(c>>>0>=1073741824){break a}g=c<<2;i=ra(g);J[e+16>>2]=i;c=i+g|0;J[e+24>>2]=c;sa(i,0,g);J[e+20>>2]=c;while(1){c=J[J[b>>2]>>2];j=J[b+48>>2]+Al(J[b+40>>2],J[b+44>>2],h,0)|0;c=c+j|0;n=K[c|0]|K[c+1|0]<<8|(K[c+2|0]<<16|K[c+3|0]<<24);J[e+28>>2]=n;b:{c:{l=J[e+36>>2];d:{if(!l){break d}d=J[e+32>>2];j=n^318;k=Dl(l)>>>0>1;c=j&l-1;e:{if(!k){break e}c=j;if(c>>>0>>0){break e}c=(j>>>0)%(l>>>0)|0}g=c;c=J[d+(g<<2)>>2];if(!c){break d}d=J[c>>2];if(!d){break d}if(!k){k=l-1|0;while(1){c=J[d+4>>2];f:{if((c|0)!=(j|0)){if((g|0)==(c&k)){break f}break d}if((n|0)==J[d+8>>2]){break c}}d=J[d>>2];if(d){continue}break}break d}while(1){c=J[d+4>>2];g:{if((c|0)!=(j|0)){if(c>>>0>=l>>>0){c=(c>>>0)%(l>>>0)|0}if((c|0)==(g|0)){break g}break d}if((n|0)==J[d+8>>2]){break c}}d=J[d>>2];if(d){continue}break}}J[e+12>>2]=m;J[e+8>>2]=n;c=e+8|0;hf(e+56|0,e+32|0,c,c);c=J[a+40>>2];ta(J[J[a>>2]>>2]+P(c,m)|0,e+28|0,c);i=J[e+16>>2];J[i+(h<<2)>>2]=m;m=m+1|0;break b}J[(h<<2)+i>>2]=J[d+12>>2]}c=h+1|0;f=c?f:f+1|0;h=c;d=J[a+80>>2];if(!f&d>>>0>c>>>0){continue}break}if((d|0)!=(m|0)){h:{if(!K[a+84|0]){b=J[a+72>>2];h=J[a+68>>2];if((b|0)==(h|0)){break h}b=b-h>>2;b=b>>>0<=1?1:b;c=b&3;k=0;d=0;if(b-1>>>0>=3){f=b&-4;j=0;while(1){g=d<<2;b=g+h|0;J[b>>2]=J[(J[b>>2]<<2)+i>>2];b=h+(g|4)|0;J[b>>2]=J[(J[b>>2]<<2)+i>>2];b=h+(g|8)|0;J[b>>2]=J[(J[b>>2]<<2)+i>>2];b=h+(g|12)|0;J[b>>2]=J[(J[b>>2]<<2)+i>>2];d=d+4|0;j=j+4|0;if((f|0)!=(j|0)){continue}break}}if(!c){break h}while(1){b=h+(d<<2)|0;J[b>>2]=J[(J[b>>2]<<2)+i>>2];d=d+1|0;k=k+1|0;if((c|0)!=(k|0)){continue}break}break h}H[a+84|0]=0;c=a+68|0;b=J[a+68>>2];f=J[a+72>>2]-b>>2;i:{if(f>>>0>>0){La(c,d-f|0,2176);d=J[a+80>>2];break i}if(d>>>0>=f>>>0){break i}J[a+72>>2]=b+(d<<2)}if(!d){break h}h=J[c>>2];k=0;b=0;if(d>>>0>=4){c=d&-4;j=0;while(1){g=b<<2;J[g+h>>2]=J[i+g>>2];f=g|4;J[f+h>>2]=J[f+i>>2];f=g|8;J[f+h>>2]=J[f+i>>2];f=g|12;J[f+h>>2]=J[f+i>>2];b=b+4|0;j=j+4|0;if((c|0)!=(j|0)){continue}break}}c=d&3;if(!c){break h}while(1){f=b<<2;J[f+h>>2]=J[f+i>>2];b=b+1|0;k=k+1|0;if((c|0)!=(k|0)){continue}break}}J[a+80>>2]=m}qa(i)}d=J[e+40>>2];if(d){while(1){a=J[d>>2];qa(d);d=a;if(d){continue}break}}a=J[e+32>>2];J[e+32>>2]=0;if(a){qa(a)}ea=e- -64|0;return m}ua();B()}function il(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0;m=ea-16|0;ea=m;f=J[a+4>>2];a:{b:{if(f){if(ga[J[J[a>>2]+52>>2]](a,b,J[J[f+4>>2]+80>>2])|0){break b}break a}if(!(ga[J[J[a>>2]+52>>2]](a,b,0)|0)){break a}}n=1;if(!K[a+28|0]){break a}d=J[a+32>>2];i=J[a+8>>2];c=J[i+80>>2];f=0;J[m+8>>2]=0;J[m>>2]=0;J[m+4>>2]=0;c:{d:{e:{if(c){if(c>>>0>=1073741824){break e}c=c<<2;f=ra(c);sa(f,0,c)}e=J[b+4>>2];c=J[b>>2];f:{if((e|0)==(c|0)){break f}b=e-c>>2;if(K[i+84|0]){e=b>>>0<=1?1:b;h=e&3;b=0;if(e-1>>>0>=3){j=e&-4;e=0;while(1){J[(J[c+(b<<2)>>2]<<2)+f>>2]=b;k=b|1;J[(J[c+(k<<2)>>2]<<2)+f>>2]=k;k=b|2;J[(J[c+(k<<2)>>2]<<2)+f>>2]=k;k=b|3;J[(J[c+(k<<2)>>2]<<2)+f>>2]=k;b=b+4|0;e=e+4|0;if((j|0)!=(e|0)){continue}break}}if(!h){break f}while(1){J[(J[c+(b<<2)>>2]<<2)+f>>2]=b;b=b+1|0;g=g+1|0;if((h|0)!=(g|0)){continue}break}break f}g=b>>>0<=1?1:b;j=g&3;h=J[i+68>>2];e=0;b=0;if(g-1>>>0>=3){k=g&-4;g=0;while(1){J[(J[h+(J[c+(b<<2)>>2]<<2)>>2]<<2)+f>>2]=b;l=b|1;J[(J[h+(J[c+(l<<2)>>2]<<2)>>2]<<2)+f>>2]=l;l=b|2;J[(J[h+(J[c+(l<<2)>>2]<<2)>>2]<<2)+f>>2]=l;l=b|3;J[(J[h+(J[c+(l<<2)>>2]<<2)>>2]<<2)+f>>2]=l;b=b+4|0;g=g+4|0;if((k|0)!=(g|0)){continue}break}}if(!j){break f}while(1){J[(J[h+(J[c+(b<<2)>>2]<<2)>>2]<<2)+f>>2]=b;b=b+1|0;e=e+1|0;if((j|0)!=(e|0)){continue}break}}g:{if(!K[d+84|0]){break g}b=J[J[J[a+4>>2]+4>>2]+80>>2];H[d+84|0]=0;e=J[d+68>>2];c=J[d+72>>2]-e>>2;if(c>>>0>>0){La(d+68|0,b-c|0,2736);break g}if(b>>>0>=c>>>0){break g}J[d+72>>2]=e+(b<<2)}h=J[J[J[a+4>>2]+4>>2]+80>>2];if(!h){break d}c=J[d+68>>2];if(K[i+84|0]){a=0;b=0;if(h>>>0>=4){g=h&-4;e=0;while(1){d=b<<2;J[d+c>>2]=J[f+d>>2];i=d|4;J[i+c>>2]=J[f+i>>2];i=d|8;J[i+c>>2]=J[f+i>>2];d=d|12;J[d+c>>2]=J[f+d>>2];b=b+4|0;e=e+4|0;if((g|0)!=(e|0)){continue}break}}e=h&3;if(!e){break c}while(1){d=b<<2;J[d+c>>2]=J[f+d>>2];b=b+1|0;a=a+1|0;if((e|0)!=(a|0)){continue}break}break c}a=J[i+68>>2];e=0;b=0;if(h>>>0>=4){i=h&-4;g=0;while(1){d=b<<2;J[d+c>>2]=J[(J[a+d>>2]<<2)+f>>2];j=d|4;J[j+c>>2]=J[(J[a+j>>2]<<2)+f>>2];j=d|8;J[j+c>>2]=J[(J[a+j>>2]<<2)+f>>2];d=d|12;J[d+c>>2]=J[(J[a+d>>2]<<2)+f>>2];b=b+4|0;g=g+4|0;if((i|0)!=(g|0)){continue}break}}d=h&3;if(!d){break c}while(1){g=b<<2;J[g+c>>2]=J[(J[a+g>>2]<<2)+f>>2];b=b+1|0;e=e+1|0;if((d|0)!=(e|0)){continue}break}break c}ua();B()}if(!f){break a}}qa(f)}ea=m+16|0;return n|0}function Jg(a,b,c,d,e){var f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0;a:{b:{c:{d:{e:{f:{i=a+4|0;g:{if((i|0)==(b|0)){break g}f=K[b+27|0];g=f<<24>>24<0;h=K[e+11|0];j=h<<24>>24;k=(j|0)<0;f=g?J[b+20>>2]:f;h=k?J[e+4>>2]:h;l=f>>>0>>0;m=l?f:h;if(m){k=k?J[e>>2]:e;g=g?J[b+16>>2]:b+16|0;n=Ea(k,g,m);if(!n){if(f>>>0>h>>>0){break g}break f}if((n|0)>=0){break f}break g}if(f>>>0<=h>>>0){break e}}d=J[b>>2];h:{f=b;i:{if((f|0)==J[a>>2]){break i}j:{if(!d){a=b;while(1){f=J[a+8>>2];h=J[f>>2]==(a|0);a=f;if(h){continue}break}break j}a=d;while(1){f=a;a=J[f+4>>2];if(a){continue}break}}a=K[e+11|0];k=a<<24>>24;h=(k|0)<0;j=K[f+27|0];g=j<<24>>24<0;k:{a=h?J[e+4>>2]:a;j=g?J[f+20>>2]:j;l=a>>>0>>0?a:j;if(l){h=Ea(g?J[f+16>>2]:f+16|0,h?J[e>>2]:e,l);if(h){break k}}if(a>>>0>j>>>0){break i}break h}if((h|0)>=0){break h}}if(!d){J[c>>2]=b;return b}J[c>>2]=f;return f+4|0}d=J[i>>2];if(!d){J[c>>2]=i;return i}e=(k|0)<0?J[e>>2]:e;b=i;while(1){f=d;d=K[f+27|0];i=d<<24>>24<0;d=i?J[f+20>>2]:d;h=d>>>0>>0;l:{m:{n:{o:{g=h?d:a;p:{if(g){i=i?J[f+16>>2]:f+16|0;j=Ea(e,i,g);if(!j){if(a>>>0>>0){break p}break o}if((j|0)>=0){break o}break p}if(a>>>0>=d>>>0){break n}}b=f;d=J[f>>2];if(d){continue}break b}d=Ea(i,e,g);if(d){break m}}if(h){break l}break b}if((d|0)>=0){break b}}b=f+4|0;d=J[f+4>>2];if(d){continue}break}break b}a=Ea(g,k,m);if(a){break d}}if(l){break c}break a}if((a|0)>=0){break a}}d=J[b+4>>2];q:{if(!d){a=b;while(1){f=J[a+8>>2];g=J[f>>2]!=(a|0);a=f;if(g){continue}break}break q}a=d;while(1){f=a;a=J[f>>2];if(a){continue}break}}r:{s:{if((f|0)==(i|0)){break s}g=K[f+27|0];a=g<<24>>24<0;t:{g=a?J[f+20>>2]:g;k=h>>>0>g>>>0?g:h;if(k){a=Ea((j|0)<0?J[e>>2]:e,a?J[f+16>>2]:f+16|0,k);if(a){break t}}if(h>>>0>>0){break s}break r}if((a|0)>=0){break r}}if(!d){J[c>>2]=b;return b+4|0}J[c>>2]=f;return f}a=J[i>>2];if(!a){J[c>>2]=i;return i}d=(j|0)<0?J[e>>2]:e;b=i;while(1){f=a;a=K[f+27|0];e=a<<24>>24<0;a=e?J[f+20>>2]:a;i=a>>>0>>0;u:{v:{w:{x:{g=i?a:h;y:{if(g){e=e?J[f+16>>2]:f+16|0;j=Ea(d,e,g);if(!j){if(a>>>0>h>>>0){break y}break x}if((j|0)>=0){break x}break y}if(a>>>0<=h>>>0){break w}}b=f;a=J[f>>2];if(a){continue}break b}a=Ea(e,d,g);if(a){break v}}if(i){break u}break b}if((a|0)>=0){break b}}b=f+4|0;a=J[f+4>>2];if(a){continue}break}}J[c>>2]=f;return b}J[c>>2]=b;J[d>>2]=b;return d}function Ac(a,b){var c=0,d=0,e=0,f=0,g=0,h=0;a:{b:{d=b;g=J[b>>2];if(g){c=J[b+4>>2];if(!c){break b}while(1){d=c;c=J[c>>2];if(c){continue}break}}g=J[d+4>>2];if(g){break b}g=0;e=1;break a}J[g+8>>2]=J[d+8>>2];e=0}f=J[d+8>>2];c=J[f>>2];c:{if((d|0)==(c|0)){J[f>>2]=g;if((a|0)==(d|0)){c=0;a=g;break c}c=J[f+4>>2];break c}J[f+4>>2]=g}h=!K[d+12|0];if((b|0)!=(d|0)){f=J[b+8>>2];J[d+8>>2]=f;J[f+((J[J[b+8>>2]>>2]!=(b|0))<<2)>>2]=d;f=J[b>>2];J[d>>2]=f;J[f+8>>2]=d;f=J[b+4>>2];J[d+4>>2]=f;if(f){J[f+8>>2]=d}H[d+12|0]=K[b+12|0];a=(a|0)==(b|0)?d:a}if(!(h|!a)){if(e){while(1){b=K[c+12|0];d:{e=J[c+8>>2];if(J[e>>2]!=(c|0)){if(!b){H[c+12|0]=1;H[e+12|0]=0;d=J[e+4>>2];b=J[d>>2];J[e+4>>2]=b;if(b){J[b+8>>2]=e}J[d+8>>2]=J[e+8>>2];b=J[e+8>>2];J[(((e|0)!=J[b>>2])<<2)+b>>2]=d;J[d>>2]=e;J[e+8>>2]=d;b=J[c>>2];a=(b|0)==(a|0)?c:a;c=J[b+4>>2]}e:{f:{d=J[c>>2];g:{if(!(K[d+12|0]?0:d)){b=J[c+4>>2];if(K[b+12|0]?0:b){break g}H[c+12|0]=0;c=J[c+8>>2];h:{if((c|0)==(a|0)){c=a;break h}if(K[c+12|0]){break d}}H[c+12|0]=1;return}b=J[c+4>>2];if(!b){break f}}if(K[b+12|0]){break f}d=c;break e}H[d+12|0]=1;H[c+12|0]=0;a=J[d+4>>2];J[c>>2]=a;if(a){J[a+8>>2]=c}J[d+8>>2]=J[c+8>>2];a=J[c+8>>2];J[((J[a>>2]!=(c|0))<<2)+a>>2]=d;J[d+4>>2]=c;J[c+8>>2]=d;b=c}c=J[d+8>>2];H[d+12|0]=K[c+12|0];H[c+12|0]=1;H[b+12|0]=1;b=J[c+4>>2];a=J[b>>2];J[c+4>>2]=a;if(a){J[a+8>>2]=c}J[b+8>>2]=J[c+8>>2];a=J[c+8>>2];J[(((c|0)!=J[a>>2])<<2)+a>>2]=b;J[b>>2]=c;J[c+8>>2]=b;return}if(!b){H[c+12|0]=1;H[e+12|0]=0;b=J[c+4>>2];J[e>>2]=b;if(b){J[b+8>>2]=e}J[c+8>>2]=J[e+8>>2];b=J[e+8>>2];J[(((e|0)!=J[b>>2])<<2)+b>>2]=c;J[c+4>>2]=e;J[e+8>>2]=c;a=(a|0)==(e|0)?c:a;c=J[e>>2]}b=J[c>>2];i:{if(!(!b|K[b+12|0])){d=c;break i}d=J[c+4>>2];if(!(K[d+12|0]?0:d)){H[c+12|0]=0;c=J[c+8>>2];if((a|0)!=(c|0)?K[c+12|0]:0){break d}H[c+12|0]=1;return}if(b){if(!K[b+12|0]){d=c;break i}d=J[c+4>>2]}H[d+12|0]=1;H[c+12|0]=0;a=J[d>>2];J[c+4>>2]=a;if(a){J[a+8>>2]=c}J[d+8>>2]=J[c+8>>2];a=J[c+8>>2];J[((J[a>>2]!=(c|0))<<2)+a>>2]=d;J[d>>2]=c;J[c+8>>2]=d;b=c}c=J[d+8>>2];H[d+12|0]=K[c+12|0];H[c+12|0]=1;H[b+12|0]=1;b=J[c>>2];a=J[b+4>>2];J[c>>2]=a;if(a){J[a+8>>2]=c}J[b+8>>2]=J[c+8>>2];a=J[c+8>>2];J[(((c|0)!=J[a>>2])<<2)+a>>2]=b;J[b+4>>2]=c;J[c+8>>2]=b;return}b=J[c+8>>2];c=J[((J[b>>2]==(c|0))<<2)+b>>2];continue}}H[g+12|0]=1}}function Gb(a,b){var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0;g=ea-32|0;ea=g;a:{b:{if(J[a+8>>2]<<5>>>0>=b>>>0){break b}if((b|0)<0){break a}b=(b-1>>>5|0)+1|0;c=ra(b<<2);J[g+24>>2]=b;J[g+20>>2]=0;J[g+16>>2]=c;b=J[a>>2];J[g+12>>2]=0;J[g+8>>2]=b;c=J[a+4>>2];J[g+4>>2]=c&31;J[g>>2]=b+(c>>>3&536870908);f=ea-32|0;ea=f;i=J[g+4>>2];e=J[g+12>>2];j=J[g>>2];h=J[g+8>>2];b=(i-e|0)+(j-h<<3)|0;d=J[g+20>>2];c=b+d|0;J[g+20>>2]=c;if(!((c-1^d-1)>>>0<32?d:0)){J[J[g+16>>2]+((c>>>0>=33?c-1>>>5|0:0)<<2)>>2]=0}c=J[g+16>>2]+(d>>>3&536870908)|0;d=d&31;c:{if((d|0)==(e|0)){if((b|0)<=0){break c}if(e){i=32-e|0;d=(b|0)<(i|0)?b:i;i=-1<>>i-d;J[c>>2]=J[c>>2]&(i^-1)|i&J[h>>2];b=b-d|0;h=h+4|0;c=c+(d+e>>>3&536870908)|0}j=c;e=(b|0)/32|0;c=e<<2;d=xa(j,h,c);b=b-(e<<5)|0;if((b|0)<=0){break c}e=c+d|0;b=-1>>>32-b|0;J[e>>2]=J[e>>2]&(b^-1)|b&J[c+h>>2];break c}J[f+28>>2]=e;J[f+24>>2]=h;J[f+20>>2]=i;J[f+16>>2]=j;J[f+12>>2]=d;J[f+8>>2]=c;b=J[f+28>>2];c=J[f+24>>2];h=(J[f+20>>2]-b|0)+(J[f+16>>2]-c<<3)|0;d:{if((h|0)<=0){b=J[f+12>>2];break d}e:{if(!b){b=J[f+12>>2];break e}e=J[f+12>>2];j=32-e|0;k=32-b|0;d=(h|0)<(k|0)?h:k;i=d>>>0>j>>>0?j:d;l=J[f+8>>2];m=J[l>>2]&(-1<>>j-i^-1);j=J[c>>2]&(-1<>>k-d);J[l>>2]=m|(b>>>0>>0?j<>>b-e|0);c=e+i|0;b=c&31;J[f+12>>2]=b;e=l+(c>>>3&536870908)|0;J[f+8>>2]=e;c=d-i|0;if((c|0)>0){J[e>>2]=J[e>>2]&(-1>>>32-c^-1)|j>>>i+J[f+28>>2];J[f+12>>2]=c;b=c}h=h-d|0;c=J[f+24>>2]+4|0;J[f+24>>2]=c}i=-1<=32){j=i^-1;while(1){d=J[f+8>>2];c=J[c>>2];J[d>>2]=j&J[d>>2]|c<>2]=d+4;J[d+4>>2]=i&J[d+4>>2]|c>>>e;c=J[f+24>>2]+4|0;J[f+24>>2]=c;d=h>>>0>63;h=h-32|0;if(d){continue}break}}if((h|0)<=0){break d}d=J[f+8>>2];j=e;e=(e|0)<(h|0)?e:h;j=J[d>>2]&(i&-1>>>j-e^-1);i=J[c>>2]&-1>>>32-h;J[d>>2]=j|i<>2]=b;d=d+(c>>>3&536870908)|0;J[f+8>>2]=d;c=h-e|0;if((c|0)<=0){break d}J[d>>2]=J[d>>2]&(-1>>>32-c^-1)|i>>>e;J[f+12>>2]=c;b=c}c=J[f+8>>2];J[f+4>>2]=b;J[f>>2]=c}ea=f+32|0;b=J[a>>2];J[a>>2]=J[g+16>>2];J[g+16>>2]=b;c=J[a+4>>2];J[a+4>>2]=J[g+20>>2];J[g+20>>2]=c;c=J[a+8>>2];J[a+8>>2]=J[g+24>>2];J[g+24>>2]=c;if(!b){break b}qa(b)}ea=g+32|0;return}ua();B()}function Tj(a){a=a|0;var b=0,c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0;g=ea-16|0;ea=g;b=J[a+64>>2];a:{if(!b){break a}i=ga[J[J[b>>2]+32>>2]](b)|0;if(!i){break a}n=(J[i+28>>2]-J[i+24>>2]>>2)-J[i+44>>2]|0;b=J[a+56>>2];d=J[b+8>>2];b:{if((J[b+12>>2]-d|0)<5){break b}J[g+8>>2]=0;J[g>>2]=0;J[g+4>>2]=0;c:{d:{while(1){e:{f:{if(!J[J[(c<<2)+d>>2]+56>>2]){break f}h=ga[J[J[a>>2]+56>>2]](a,c)|0;if(!h){break f}if(J[g+8>>2]!=(f|0)){J[f>>2]=h;f=f+4|0;J[g+4>>2]=f;break f}d=J[g>>2];j=f-d|0;f=j>>2;b=f+1|0;if(b>>>0>=1073741824){break e}e=j>>1;e=j>>>0>=2147483644?1073741823:b>>>0>>0?e:b;if(e){if(e>>>0>=1073741824){break d}b=ra(e<<2)}else{b=0}f=b+(f<<2)|0;J[f>>2]=h;f=f+4|0;if((j|0)>0){ta(b,d,j)}J[g+8>>2]=b+(e<<2);J[g+4>>2]=f;J[g>>2]=b;if(!d){break f}qa(d)}m=J[a+56>>2];d=J[m+8>>2];c=c+1|0;if((c|0)>2]-d>>2){continue}break c}break}ua();B()}ya();B()}o=J[i+24>>2];b=J[i+28>>2];g:{if((o|0)==(b|0)){h=J[g>>2];break g}b=b-o>>2;q=b>>>0<=1?1:b;h=J[g>>2];b=f-h>>2;r=b>>>0<=1?1:b;while(1){e=J[(p<<2)+o>>2];if((e|0)!=-1){h:{if((e|0)<0){c=(e>>>0)%3|0;b=-1;break h}b=(e>>>0)/3|0;c=e-P(b,3)|0;b=J[(J[m+96>>2]+P(b,12)|0)+(c<<2)>>2]}i:{j:{if(c){c=e-1|0;break j}c=e+2|0;if((c|0)!=-1){break j}l=0;break i}l=0;c=J[J[i+12>>2]+(c<<2)>>2];if((c|0)==-1){break i}k:{if((c>>>0)%3|0){d=c-1|0;break k}d=c+2|0;if((d|0)==-1){break i}}j=e;while(1){c=(d|0)<0?-1:J[(J[m+96>>2]+P((d>>>0)/3|0,12)|0)+((d>>>0)%3<<2)>>2];l:{if((b|0)==(c|0)){c=0;if((f|0)==(h|0)){c=b;break l}m:{while(1){k=J[J[(c<<2)+h>>2]+28>>2];if(J[k+(d<<2)>>2]!=J[k+(j<<2)>>2]){break m}c=c+1|0;if((r|0)!=(c|0)){continue}break}c=b;break l}c=b}l=l+1|0}if((d|0)==(e|0)|(d|0)==-1){break i}n:{if((d>>>0)%3|0){b=d-1|0;break n}b=d+2|0;if((b|0)==-1){break i}}k=J[J[i+12>>2]+(b<<2)>>2];if((k|0)==-1){break i}b=c;j=d;c=k+((k>>>0)%3|0?-1:2)|0;d=c;if((c|0)!=-1){continue}break}}c=1;b=e+1|0;b=(b>>>0)%3|0?b:e-2|0;o:{if((b|0)==-1){break o}b=J[J[i+12>>2]+(b<<2)>>2];if((b|0)==-1){break o}c=b+1|0;c=(((c>>>0)%3|0?c:b-2|0)|0)==-1}n=(l+n|0)-((c^-1)&(l|0)!=0)|0}p=p+1|0;if((q|0)!=(p|0)){continue}break}}if(!h){break b}qa(h)}J[a+52>>2]=n}ea=g+16|0}function Ue(a,b,c,d,e,f,g,h,i){var j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0;j=ea-128|0;ea=j;a:{b:{c:{if(!Jb(f,g,h,i,0,0,0,0)){break c}m=i&65535;n=i>>>16&32767;d:{e:{if((n|0)!=32767){l=4;if(n){break e}l=f|h|(g|m)?3:2;break d}l=!(f|h|(g|m))}}r=e>>>16|0;o=r&32767;if((o|0)==32767){break c}if(l){break b}}Ia(j+16|0,b,c,d,e,f,g,h,i);e=J[j+16>>2];d=J[j+20>>2];c=J[j+24>>2];b=J[j+28>>2];Ie(j,e,d,c,b,e,d,c,b);d=J[j+8>>2];e=J[j+12>>2];h=J[j>>2];i=J[j+4>>2];break a}m=e&65535|o<<16;p=m;l=d;m=h;q=i>>>16&32767;k=i&65535|q<<16;if((Jb(b,c,l,p,f,g,h,k)|0)<=0){if(Jb(b,c,l,p,f,g,m,k)){h=b;i=c;break a}Ia(j+112|0,b,c,d,e,0,0,0,0);d=J[j+120>>2];e=J[j+124>>2];h=J[j+112>>2];i=J[j+116>>2];break a}if(o){i=c;h=b}else{Ia(j+96|0,b,c,l,p,0,0,0,1081540608);h=J[j+108>>2];p=h;l=J[j+104>>2];o=(h>>>16|0)-120|0;i=J[j+100>>2];h=J[j+96>>2]}if(!q){Ia(j+80|0,f,g,m,k,0,0,0,1081540608);f=J[j+92>>2];k=f;m=J[j+88>>2];q=(k>>>16|0)-120|0;g=J[j+84>>2];f=J[j+80>>2]}s=k&65535|65536;p=p&65535|65536;if((o|0)>(q|0)){while(1){t=l-m|0;k=(g|0)==(i|0)&f>>>0>h>>>0|g>>>0>i>>>0;n=(p-((l>>>0>>0)+s|0)|0)-(t>>>0>>0)|0;k=t-k|0;f:{if((n|0)>0|(n|0)>=0){l=h;h=h-f|0;i=i-((f>>>0>l>>>0)+g|0)|0;if(!(h|k|(i|n))){Ia(j+32|0,b,c,d,e,0,0,0,0);d=J[j+40>>2];e=J[j+44>>2];h=J[j+32>>2];i=J[j+36>>2];break a}n=n<<1|k>>>31;l=k<<1|i>>>31;p=n;break f}n=p<<1|l>>>31;l=l<<1|i>>>31;p=n}n=i<<1|h>>>31;h=h<<1;i=n;o=o-1|0;if((q|0)<(o|0)){continue}break}o=q}q=l-m|0;n=(g|0)==(i|0)&f>>>0>h>>>0|g>>>0>i>>>0;k=(p-((l>>>0>>0)+s|0)|0)-(q>>>0>>0)|0;m=q-n|0;g:{if((k|0)<0){m=l;k=p;break g}l=h;h=h-f|0;i=i-((f>>>0>l>>>0)+g|0)|0;if(h|m|(i|k)){break g}Ia(j+48|0,b,c,d,e,0,0,0,0);d=J[j+56>>2];e=J[j+60>>2];h=J[j+48>>2];i=J[j+52>>2];break a}if((k|0)==65535|k>>>0<65535){while(1){b=i>>>31|0;o=o-1|0;p=i<<1|h>>>31;h=h<<1;i=p;c=b;b=m;k=k<<1|b>>>31;m=c|b<<1;if(k>>>0<65536){continue}break}}b=r&32768;if((o|0)<=0){Ia(j- -64|0,h,i,m,k&65535|(b|o+120)<<16,0,0,0,1065811968);d=J[j+72>>2];e=J[j+76>>2];h=J[j+64>>2];i=J[j+68>>2];break a}d=m;e=k&65535|(b|o)<<16}J[a>>2]=h;J[a+4>>2]=i;J[a+8>>2]=d;J[a+12>>2]=e;ea=j+128|0}function kf(a,b){var c=0,d=0,e=0,f=0;f=ea-16|0;ea=f;e=ra(32);J[f>>2]=e;J[f+4>>2]=30;J[f+8>>2]=-2147483616;c=K[1240]|K[1241]<<8|(K[1242]<<16|K[1243]<<24);d=K[1236]|K[1237]<<8|(K[1238]<<16|K[1239]<<24);H[e+22|0]=d;H[e+23|0]=d>>>8;H[e+24|0]=d>>>16;H[e+25|0]=d>>>24;H[e+26|0]=c;H[e+27|0]=c>>>8;H[e+28|0]=c>>>16;H[e+29|0]=c>>>24;c=K[1234]|K[1235]<<8|(K[1236]<<16|K[1237]<<24);d=K[1230]|K[1231]<<8|(K[1232]<<16|K[1233]<<24);H[e+16|0]=d;H[e+17|0]=d>>>8;H[e+18|0]=d>>>16;H[e+19|0]=d>>>24;H[e+20|0]=c;H[e+21|0]=c>>>8;H[e+22|0]=c>>>16;H[e+23|0]=c>>>24;c=K[1226]|K[1227]<<8|(K[1228]<<16|K[1229]<<24);d=K[1222]|K[1223]<<8|(K[1224]<<16|K[1225]<<24);H[e+8|0]=d;H[e+9|0]=d>>>8;H[e+10|0]=d>>>16;H[e+11|0]=d>>>24;H[e+12|0]=c;H[e+13|0]=c>>>8;H[e+14|0]=c>>>16;H[e+15|0]=c>>>24;c=K[1218]|K[1219]<<8|(K[1220]<<16|K[1221]<<24);d=K[1214]|K[1215]<<8|(K[1216]<<16|K[1217]<<24);H[e|0]=d;H[e+1|0]=d>>>8;H[e+2|0]=d>>>16;H[e+3|0]=d>>>24;H[e+4|0]=c;H[e+5|0]=c>>>8;H[e+6|0]=c>>>16;H[e+7|0]=c>>>24;H[e+30|0]=0;e=a+4|0;wb(e,f,b);if(H[f+11|0]<0){qa(J[f>>2])}a=ra(32);J[f>>2]=a;J[f+4>>2]=29;J[f+8>>2]=-2147483616;c=K[1308]|K[1309]<<8|(K[1310]<<16|K[1311]<<24);d=K[1304]|K[1305]<<8|(K[1306]<<16|K[1307]<<24);H[a+21|0]=d;H[a+22|0]=d>>>8;H[a+23|0]=d>>>16;H[a+24|0]=d>>>24;H[a+25|0]=c;H[a+26|0]=c>>>8;H[a+27|0]=c>>>16;H[a+28|0]=c>>>24;c=K[1303]|K[1304]<<8|(K[1305]<<16|K[1306]<<24);d=K[1299]|K[1300]<<8|(K[1301]<<16|K[1302]<<24);H[a+16|0]=d;H[a+17|0]=d>>>8;H[a+18|0]=d>>>16;H[a+19|0]=d>>>24;H[a+20|0]=c;H[a+21|0]=c>>>8;H[a+22|0]=c>>>16;H[a+23|0]=c>>>24;c=K[1295]|K[1296]<<8|(K[1297]<<16|K[1298]<<24);d=K[1291]|K[1292]<<8|(K[1293]<<16|K[1294]<<24);H[a+8|0]=d;H[a+9|0]=d>>>8;H[a+10|0]=d>>>16;H[a+11|0]=d>>>24;H[a+12|0]=c;H[a+13|0]=c>>>8;H[a+14|0]=c>>>16;H[a+15|0]=c>>>24;c=K[1287]|K[1288]<<8|(K[1289]<<16|K[1290]<<24);d=K[1283]|K[1284]<<8|(K[1285]<<16|K[1286]<<24);H[a|0]=d;H[a+1|0]=d>>>8;H[a+2|0]=d>>>16;H[a+3|0]=d>>>24;H[a+4|0]=c;H[a+5|0]=c>>>8;H[a+6|0]=c>>>16;H[a+7|0]=c>>>24;H[a+29|0]=0;wb(e,f,b);if(H[f+11|0]<0){qa(J[f>>2])}ea=f+16|0}function Kk(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0;J[a+8>>2]=e;o=a+32|0;f=J[o>>2];h=J[a+36>>2]-f>>2;a:{if(h>>>0>>0){Fa(o,e-h|0);break a}if(e>>>0>=h>>>0){break a}J[a+36>>2]=f+(e<<2)}b:{if(!d){break b}g=J[b>>2];c:{if((d|0)<2){h=g;break c}f=1;h=d-1|0;n=h&1;d:{if((d|0)==2){h=g;break d}j=h&-2;h=g;while(1){l=(f<<2)+b|0;m=J[l+4>>2];k=J[l>>2];q=(k|0)<(h|0);h=q?k:h;l=(h|0)>(m|0);h=l?m:h;g=q?g:(g|0)<(k|0)?k:g;g=l?g:(g|0)<(m|0)?m:g;f=f+2|0;i=i+2|0;if((j|0)!=(i|0)){continue}break}}if(!n){break c}i=J[(f<<2)+b>>2];f=(i|0)<(h|0);h=f?i:h;g=f?g:(g|0)<(i|0)?i:g}J[a+16>>2]=g;J[a+12>>2]=h;f=(g>>31)-((h>>31)+(g>>>0>>0)|0)|0;h=g-h|0;if(!f&h>>>0>2147483646|f){break b}h=h+1|0;J[a+20>>2]=h;f=h>>>1|0;J[a+24>>2]=f;J[a+28>>2]=0-f;if(h&1){break b}J[a+24>>2]=f-1}p=d-e|0;e:{if((p|0)<=0){g=J[a+8>>2];break e}g=J[a+8>>2];if((g|0)<=0){break e}q=0-e<<2;while(1){if((g|0)>0){d=p<<2;n=d+c|0;j=b+d|0;i=j+q|0;l=J[o>>2];h=0;while(1){f=l;if((g|0)>0){f=J[o>>2];g=0;while(1){k=g<<2;m=J[k+i>>2];d=J[a+16>>2];f:{if((m|0)>(d|0)){J[f+k>>2]=d;break f}k=f+k|0;d=J[a+12>>2];if((d|0)>(m|0)){J[k>>2]=d;break f}J[k>>2]=m}g=g+1|0;if((g|0)>2]){continue}break}}g=h<<2;d=g+n|0;g=J[g+j>>2]-J[f+g>>2]|0;J[d>>2]=g;g:{if((g|0)>2]){g=g+J[a+20>>2]|0}else{if((g|0)<=J[a+24>>2]){break g}g=g-J[a+20>>2]|0}J[d>>2]=g}i=f;g=J[a+8>>2];h=h+1|0;if((g|0)>(h|0)){continue}break}}p=p-e|0;if((p|0)>0){continue}break}}h=0;d=e>>>0>1073741823?-1:e<<2;l=sa(ra(d),0,d);if((g|0)>0){e=J[a+32>>2];i=l;while(1){f=e;if((g|0)>0){f=J[o>>2];g=0;while(1){j=g<<2;n=J[j+i>>2];d=J[a+16>>2];h:{if((n|0)>(d|0)){J[f+j>>2]=d;break h}j=f+j|0;d=J[a+12>>2];if((d|0)>(n|0)){J[j>>2]=d;break h}J[j>>2]=n}g=g+1|0;if((g|0)>2]){continue}break}}g=h<<2;d=g+c|0;g=J[b+g>>2]-J[f+g>>2]|0;J[d>>2]=g;i:{if((g|0)>2]){g=g+J[a+20>>2]|0}else{if((g|0)<=J[a+24>>2]){break i}g=g-J[a+20>>2]|0}J[d>>2]=g}i=f;g=J[a+8>>2];h=h+1|0;if((g|0)>(h|0)){continue}break}}qa(l);return 1}function kd(a,b){var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0;j=ea-32|0;ea=j;J[a+4>>2]=0;J[a+8>>2]=0;c=a+16|0;J[c>>2]=0;J[c+4>>2]=0;i=a+4|0;J[a>>2]=i;J[a+12>>2]=c;f=J[b>>2];k=b+4|0;if((f|0)!=(k|0)){while(1){g=ea-16|0;ea=g;c=f+16|0;h=Jg(a,i,g+12|0,g+8|0,c);d=J[h>>2];if(d){c=0}else{d=ra(40);e=d+16|0;a:{if(H[c+11|0]>=0){l=J[c+4>>2];J[e>>2]=J[c>>2];J[e+4>>2]=l;J[e+8>>2]=J[c+8>>2];break a}Ja(e,J[c>>2],J[c+4>>2])}Pb(d+28|0,c+12|0);J[d+8>>2]=J[g+12>>2];J[d>>2]=0;J[d+4>>2]=0;J[h>>2]=d;c=d;e=J[J[a>>2]>>2];if(e){J[a>>2]=e;c=J[h>>2]}tb(J[a+4>>2],c);J[a+8>>2]=J[a+8>>2]+1;c=1}H[j+28|0]=c;J[j+24>>2]=d;ea=g+16|0;c=J[f+4>>2];b:{if(c){while(1){f=c;c=J[c>>2];if(c){continue}break b}}while(1){c=f;f=J[f+8>>2];if((c|0)!=J[f>>2]){continue}break}}if((f|0)!=(k|0)){continue}break}}f=J[b+12>>2];l=b+16|0;if((f|0)!=(l|0)){g=a+12|0;while(1){m=ra(24);kd(m,J[f+28>>2]);b=f+16|0;J[j+16>>2]=b;c:{d:{c=J[g+4>>2];e:{if(!c){d=g+4|0;b=d;break e}d=K[b+11|0];e=d<<24>>24<0;h=e?J[b>>2]:b;e=e?J[b+4>>2]:d;while(1){b=c;i=K[c+27|0];d=i<<24>>24<0;c=d?J[c+20>>2]:i;i=c>>>0>>0;f:{g:{h:{i:{k=i?c:e;j:{if(k){d=d?J[b+16>>2]:b+16|0;n=Ea(h,d,k);if(!n){if(c>>>0>e>>>0){break j}break i}if((n|0)>=0){break i}break j}if(c>>>0<=e>>>0){break h}}d=b;c=J[b>>2];if(c){continue}break e}c=Ea(d,h,k);if(c){break g}}if(i){break f}break d}if((c|0)>=0){break d}}c=J[b+4>>2];if(c){continue}break}d=b+4|0}c=ra(32);h=c+16|0;e=J[j+16>>2];k:{if(H[e+11|0]>=0){i=J[e+4>>2];J[h>>2]=J[e>>2];J[h+4>>2]=i;J[h+8>>2]=J[e+8>>2];break k}Ja(h,J[e>>2],J[e+4>>2])}J[c+8>>2]=b;J[c>>2]=0;J[c+4>>2]=0;J[c+28>>2]=0;J[d>>2]=c;b=c;e=J[J[g>>2]>>2];if(e){J[g>>2]=e;b=J[d>>2]}tb(J[g+4>>2],b);J[g+8>>2]=J[g+8>>2]+1;b=1;break c}c=b;b=0}H[j+28|0]=b;J[j+24>>2]=c;c=J[j+24>>2];b=J[c+28>>2];J[c+28>>2]=m;if(b){mb(b+12|0,J[b+16>>2]);lb(b,J[b+4>>2]);qa(b)}c=J[f+4>>2];l:{if(c){while(1){f=c;c=J[c>>2];if(c){continue}break l}}while(1){b=f;f=J[f+8>>2];if((b|0)!=J[f>>2]){continue}break}}if((f|0)!=(l|0)){continue}break}}ea=j+32|0;return a}function Fi(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,f=0,g=0,h=0;f=ea+-64|0;ea=f;a:{b:{c:{d:{e:{f:{if(!b){break f}e=sb(c);if(e>>>0>=4294967280){break e}g:{h:{if(e>>>0>=11){g=(e|15)+1|0;a=ra(g);J[f+56>>2]=g|-2147483648;J[f+48>>2]=a;break h}H[f+59|0]=e;a=f+48|0;if(!e){break g}}ta(a,c,e)}H[a+e|0]=0;e=sb(d);if(e>>>0>=4294967280){break d}i:{j:{if(e>>>0>=11){g=(e|15)+1|0;a=ra(g);J[f+40>>2]=g|-2147483648;J[f+32>>2]=a;break j}H[f+43|0]=e;a=f+32|0;if(!e){break i}}ta(a,d,e)}H[a+e|0]=0;e=sb(c);if(e>>>0>=4294967280){break c}k:{l:{if(e>>>0>=11){g=(e|15)+1|0;a=ra(g);J[f+24>>2]=g|-2147483648;J[f+16>>2]=a;J[f+20>>2]=e;break l}H[f+27|0]=e;a=f+16|0;if(!e){break k}}ta(a,c,e)}H[a+e|0]=0;c=sb(d);if(c>>>0>=4294967280){break b}m:{n:{if(c>>>0>=11){e=(c|15)+1|0;a=ra(e);J[f+8>>2]=e|-2147483648;J[f>>2]=a;J[f+4>>2]=c;break n}H[f+11|0]=c;a=f;if(!c){break m}}ta(a,d,c)}H[a+c|0]=0;e=ea-48|0;ea=e;d=pb(b,f+16|0);if((d|0)!=(b+4|0)){a=J[d+4>>2];o:{if(!a){a=d;while(1){c=J[a+8>>2];g=J[c>>2]!=(a|0);a=c;if(g){continue}break}break o}while(1){c=a;a=J[a>>2];if(a){continue}break}}if((d|0)==J[b>>2]){J[b>>2]=c}J[b+8>>2]=J[b+8>>2]-1;Ac(J[b+4>>2],d);a=J[d+28>>2];if(a){J[d+32>>2]=a;qa(a)}if(H[d+27|0]<0){qa(J[d+16>>2])}qa(d)}g=0;J[e+8>>2]=0;J[e>>2]=0;J[e+4>>2]=0;c=K[f+11|0];d=c<<24>>24;p:{q:{h=J[f+4>>2];a=(d|0)<0?h:c;if(a){if((a|0)<0){break q}c=a;g=ra(a);a=sa(g,0,a);c=c+a|0;J[e+8>>2]=c;J[e+4>>2]=c;J[e>>2]=a;h=J[f+4>>2];c=K[f+11|0];d=c}a=d<<24>>24<0;ta(g,a?J[f>>2]:f,a?h:c);break p}ua();B()}r:{if(H[f+27|0]>=0){J[e+24>>2]=J[f+24>>2];a=J[f+20>>2];J[e+16>>2]=J[f+16>>2];J[e+20>>2]=a;break r}Ja(e+16|0,J[f+16>>2],J[f+20>>2])}Pb(e+28|0,e);a=e+16|0;zc(e+40|0,b,a,a);a=J[e+28>>2];if(a){J[e+32>>2]=a;qa(a)}if(H[e+27|0]<0){qa(J[e+16>>2])}a=J[e>>2];if(a){J[e+4>>2]=a;qa(a)}ea=e+48|0;if(H[f+11|0]<0){qa(J[f>>2])}if(H[f+27|0]<0){qa(J[f+16>>2])}if(H[f+43|0]<0){qa(J[f+32>>2])}if(H[f+59|0]>=0){break f}qa(J[f+48>>2])}ea=f- -64|0;a=(b|0)!=0;break a}hb();B()}hb();B()}hb();B()}hb();B()}return a|0}function Od(a,b,c,d,e,f,g,h){var i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0;a:{b:{if(!f){break b}while(1){if((e|0)<=(h|0)|(f|0)<=(h|0)){break a}if(!e){break b}i=J[d>>2];p=J[i>>2];c:{d:{q=J[i+4>>2]-p>>3;k=J[b>>2];e:{if(q>>>0<=k>>>0){break e}i=p+(k<<3)|0;while(1){l=J[a>>2];if(l>>>0>=q>>>0){break e}if(M[i>>2]>=M[p+(l<<3)>>2]){a=a+4|0;e=e-1|0;if(e){continue}break b}break}f:{g:{if((e|0)<(f|0)){r=(f|0)/2|0;l=(r<<2)+b|0;h:{if((a|0)==(b|0)){k=b;break h}m=J[l>>2];if(m>>>0>=q>>>0){break e}j=b-a>>2;o=j>>>1|0;k=(o<<2)+a|0;i=J[k>>2];if(i>>>0>=q>>>0){break e}n=J[p+(m<<3)>>2];i=n>>>0>2];k=i?a:k+4|0;i=i?o:j+(o^-1)|0;if(!i){break h}while(1){o=i>>>1|0;m=(o<<2)+k|0;j=J[m>>2];if(j>>>0>=q>>>0){break e}j=n>>>0>2];k=j?k:m+4|0;i=j?o:(o^-1)+i|0;if(i){continue}break}}o=k-a>>2;break g}if((e|0)==1){J[a>>2]=k;J[b>>2]=l;return}o=(e|0)/2|0;k=(o<<2)+a|0;l=c;if((l|0)!=(b|0)){i=c-b>>2;l=J[k>>2];if(l>>>0>=q>>>0){break f}n=p+(l<<3)|0;l=b;while(1){r=i>>>1|0;m=(r<<2)+l|0;j=J[m>>2];if(j>>>0>=q>>>0){break e}j=M[p+(j<<3)>>2]>2];l=j?m+4|0:l;i=j?(r^-1)+i|0:r;if(i){continue}break}}r=l-b>>2}f=f-r|0;e=e-o|0;i=l;if((b|0)==(k|0)){break c}i=k;if((b|0)==(l|0)){break c}if((k+4|0)!=(b|0)){break d}j=J[k>>2];i=b;b=l-b|0;i=xa(k,i,b)+b|0;J[i>>2]=j;break c}}va();B()}if((b+4|0)==(l|0)){b=l-4|0;j=J[b>>2];i=l;if((b|0)!=(k|0)){b=b-k|0;i=l-b|0;xa(i,k,b)}J[k>>2]=j;break c}i=b;m=k;p=l-b>>2;j=p;s=b-k>>2;n=s;if((j|0)==(n|0)){while(1){j=J[m>>2];J[m>>2]=J[i>>2];J[i>>2]=j;i=i+4|0;m=m+4|0;if((m|0)!=(b|0)){continue}break}i=b;break c}while(1){b=n;n=j;j=(b|0)%(j|0)|0;if(j){continue}break}if(n){n=(n<<2)+k|0;while(1){n=n-4|0;q=s<<2;m=n+q|0;i=J[n>>2];j=n;while(1){b=j;j=m;J[b>>2]=J[j>>2];b=l-j>>2;m=(b|0)>(s|0)?j+q|0:(s-b<<2)+k|0;if((n|0)!=(m|0)){continue}break}J[j>>2]=i;if((k|0)!=(n|0)){continue}break}}i=(p<<2)+k|0}i:{if((o+r|0)<(e+f|0)){Od(a,k,i,d,o,r,g,h);a=i;b=l;break i}Od(i,l,c,d,e,f,g,h);f=r;e=o;c=i;b=k}if(f){continue}break}}return}Va(a,b,c,d,e,f,g)} +function Wd(a,b,c,d,e,f,g,h){var i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0;a:{b:{if(!f){break b}while(1){if((e|0)<=(h|0)|(f|0)<=(h|0)){break a}if(!e){break b}i=J[d>>2];p=J[i>>2];c:{d:{q=J[i+4>>2]-p>>3;k=J[b>>2];e:{if(q>>>0<=k>>>0){break e}i=p+(k<<3)|0;while(1){l=J[a>>2];if(l>>>0>=q>>>0){break e}if(M[i>>2]>=M[p+(l<<3)>>2]){a=a+4|0;e=e-1|0;if(e){continue}break b}break}f:{g:{if((e|0)<(f|0)){r=(f|0)/2|0;l=(r<<2)+b|0;h:{if((a|0)==(b|0)){k=b;break h}m=J[l>>2];if(m>>>0>=q>>>0){break e}j=b-a>>2;o=j>>>1|0;k=(o<<2)+a|0;i=J[k>>2];if(i>>>0>=q>>>0){break e}n=J[p+(m<<3)>>2];i=n>>>0>2];k=i?a:k+4|0;i=i?o:j+(o^-1)|0;if(!i){break h}while(1){o=i>>>1|0;m=(o<<2)+k|0;j=J[m>>2];if(j>>>0>=q>>>0){break e}j=n>>>0>2];k=j?k:m+4|0;i=j?o:(o^-1)+i|0;if(i){continue}break}}o=k-a>>2;break g}if((e|0)==1){J[a>>2]=k;J[b>>2]=l;return}o=(e|0)/2|0;k=(o<<2)+a|0;l=c;if((l|0)!=(b|0)){i=c-b>>2;l=J[k>>2];if(l>>>0>=q>>>0){break f}n=p+(l<<3)|0;l=b;while(1){r=i>>>1|0;m=(r<<2)+l|0;j=J[m>>2];if(j>>>0>=q>>>0){break e}j=M[p+(j<<3)>>2]>2];l=j?m+4|0:l;i=j?(r^-1)+i|0:r;if(i){continue}break}}r=l-b>>2}f=f-r|0;e=e-o|0;i=l;if((b|0)==(k|0)){break c}i=k;if((b|0)==(l|0)){break c}if((k+4|0)!=(b|0)){break d}j=J[k>>2];i=b;b=l-b|0;i=xa(k,i,b)+b|0;J[i>>2]=j;break c}}va();B()}if((b+4|0)==(l|0)){b=l-4|0;j=J[b>>2];i=l;if((b|0)!=(k|0)){b=b-k|0;i=l-b|0;xa(i,k,b)}J[k>>2]=j;break c}i=b;m=k;p=l-b>>2;j=p;s=b-k>>2;n=s;if((j|0)==(n|0)){while(1){j=J[m>>2];J[m>>2]=J[i>>2];J[i>>2]=j;i=i+4|0;m=m+4|0;if((m|0)!=(b|0)){continue}break}i=b;break c}while(1){b=n;n=j;j=(b|0)%(j|0)|0;if(j){continue}break}if(n){n=(n<<2)+k|0;while(1){n=n-4|0;q=s<<2;m=n+q|0;i=J[n>>2];j=n;while(1){b=j;j=m;J[b>>2]=J[j>>2];b=l-j>>2;m=(b|0)>(s|0)?j+q|0:(s-b<<2)+k|0;if((n|0)!=(m|0)){continue}break}J[j>>2]=i;if((k|0)!=(n|0)){continue}break}}i=(p<<2)+k|0}i:{if((o+r|0)<(e+f|0)){Wd(a,k,i,d,o,r,g,h);a=i;b=l;break i}Wd(i,l,c,d,e,f,g,h);f=r;e=o;c=i;b=k}if(f){continue}break}}return}Va(a,b,c,d,e,f,g)}function Vd(a,b,c,d,e,f,g,h){var i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0;a:{b:{if(!f){break b}while(1){if((e|0)<=(h|0)|(f|0)<=(h|0)){break a}if(!e){break b}i=J[d>>2];p=J[i>>2];c:{d:{q=J[i+4>>2]-p>>3;k=J[b>>2];e:{if(q>>>0<=k>>>0){break e}i=p+(k<<3)|0;while(1){l=J[a>>2];if(l>>>0>=q>>>0){break e}if(M[i>>2]>=M[p+(l<<3)>>2]){a=a+4|0;e=e-1|0;if(e){continue}break b}break}f:{g:{if((e|0)<(f|0)){r=(f|0)/2|0;l=(r<<2)+b|0;h:{if((a|0)==(b|0)){k=b;break h}m=J[l>>2];if(m>>>0>=q>>>0){break e}j=b-a>>2;o=j>>>1|0;k=(o<<2)+a|0;i=J[k>>2];if(i>>>0>=q>>>0){break e}n=J[p+(m<<3)>>2];i=n>>>0>2];k=i?a:k+4|0;i=i?o:j+(o^-1)|0;if(!i){break h}while(1){o=i>>>1|0;m=(o<<2)+k|0;j=J[m>>2];if(j>>>0>=q>>>0){break e}j=n>>>0>2];k=j?k:m+4|0;i=j?o:(o^-1)+i|0;if(i){continue}break}}o=k-a>>2;break g}if((e|0)==1){J[a>>2]=k;J[b>>2]=l;return}o=(e|0)/2|0;k=(o<<2)+a|0;l=c;if((l|0)!=(b|0)){i=c-b>>2;l=J[k>>2];if(l>>>0>=q>>>0){break f}n=p+(l<<3)|0;l=b;while(1){r=i>>>1|0;m=(r<<2)+l|0;j=J[m>>2];if(j>>>0>=q>>>0){break e}j=M[p+(j<<3)>>2]>2];l=j?m+4|0:l;i=j?(r^-1)+i|0:r;if(i){continue}break}}r=l-b>>2}f=f-r|0;e=e-o|0;i=l;if((b|0)==(k|0)){break c}i=k;if((b|0)==(l|0)){break c}if((k+4|0)!=(b|0)){break d}j=J[k>>2];i=b;b=l-b|0;i=xa(k,i,b)+b|0;J[i>>2]=j;break c}}va();B()}if((b+4|0)==(l|0)){b=l-4|0;j=J[b>>2];i=l;if((b|0)!=(k|0)){b=b-k|0;i=l-b|0;xa(i,k,b)}J[k>>2]=j;break c}i=b;m=k;p=l-b>>2;j=p;s=b-k>>2;n=s;if((j|0)==(n|0)){while(1){j=J[m>>2];J[m>>2]=J[i>>2];J[i>>2]=j;i=i+4|0;m=m+4|0;if((m|0)!=(b|0)){continue}break}i=b;break c}while(1){b=n;n=j;j=(b|0)%(j|0)|0;if(j){continue}break}if(n){n=(n<<2)+k|0;while(1){n=n-4|0;q=s<<2;m=n+q|0;i=J[n>>2];j=n;while(1){b=j;j=m;J[b>>2]=J[j>>2];b=l-j>>2;m=(b|0)>(s|0)?j+q|0:(s-b<<2)+k|0;if((n|0)!=(m|0)){continue}break}J[j>>2]=i;if((k|0)!=(n|0)){continue}break}}i=(p<<2)+k|0}i:{if((o+r|0)<(e+f|0)){Vd(a,k,i,d,o,r,g,h);a=i;b=l;break i}Vd(i,l,c,d,e,f,g,h);f=r;e=o;c=i;b=k}if(f){continue}break}}return}Va(a,b,c,d,e,f,g)}function Ud(a,b,c,d,e,f,g,h){var i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0;a:{b:{if(!f){break b}while(1){if((e|0)<=(h|0)|(f|0)<=(h|0)){break a}if(!e){break b}i=J[d>>2];p=J[i>>2];c:{d:{q=J[i+4>>2]-p>>3;k=J[b>>2];e:{if(q>>>0<=k>>>0){break e}i=p+(k<<3)|0;while(1){l=J[a>>2];if(l>>>0>=q>>>0){break e}if(M[i>>2]>=M[p+(l<<3)>>2]){a=a+4|0;e=e-1|0;if(e){continue}break b}break}f:{g:{if((e|0)<(f|0)){r=(f|0)/2|0;l=(r<<2)+b|0;h:{if((a|0)==(b|0)){k=b;break h}m=J[l>>2];if(m>>>0>=q>>>0){break e}j=b-a>>2;o=j>>>1|0;k=(o<<2)+a|0;i=J[k>>2];if(i>>>0>=q>>>0){break e}n=J[p+(m<<3)>>2];i=n>>>0>2];k=i?a:k+4|0;i=i?o:j+(o^-1)|0;if(!i){break h}while(1){o=i>>>1|0;m=(o<<2)+k|0;j=J[m>>2];if(j>>>0>=q>>>0){break e}j=n>>>0>2];k=j?k:m+4|0;i=j?o:(o^-1)+i|0;if(i){continue}break}}o=k-a>>2;break g}if((e|0)==1){J[a>>2]=k;J[b>>2]=l;return}o=(e|0)/2|0;k=(o<<2)+a|0;l=c;if((l|0)!=(b|0)){i=c-b>>2;l=J[k>>2];if(l>>>0>=q>>>0){break f}n=p+(l<<3)|0;l=b;while(1){r=i>>>1|0;m=(r<<2)+l|0;j=J[m>>2];if(j>>>0>=q>>>0){break e}j=M[p+(j<<3)>>2]>2];l=j?m+4|0:l;i=j?(r^-1)+i|0:r;if(i){continue}break}}r=l-b>>2}f=f-r|0;e=e-o|0;i=l;if((b|0)==(k|0)){break c}i=k;if((b|0)==(l|0)){break c}if((k+4|0)!=(b|0)){break d}j=J[k>>2];i=b;b=l-b|0;i=xa(k,i,b)+b|0;J[i>>2]=j;break c}}va();B()}if((b+4|0)==(l|0)){b=l-4|0;j=J[b>>2];i=l;if((b|0)!=(k|0)){b=b-k|0;i=l-b|0;xa(i,k,b)}J[k>>2]=j;break c}i=b;m=k;p=l-b>>2;j=p;s=b-k>>2;n=s;if((j|0)==(n|0)){while(1){j=J[m>>2];J[m>>2]=J[i>>2];J[i>>2]=j;i=i+4|0;m=m+4|0;if((m|0)!=(b|0)){continue}break}i=b;break c}while(1){b=n;n=j;j=(b|0)%(j|0)|0;if(j){continue}break}if(n){n=(n<<2)+k|0;while(1){n=n-4|0;q=s<<2;m=n+q|0;i=J[n>>2];j=n;while(1){b=j;j=m;J[b>>2]=J[j>>2];b=l-j>>2;m=(b|0)>(s|0)?j+q|0:(s-b<<2)+k|0;if((n|0)!=(m|0)){continue}break}J[j>>2]=i;if((k|0)!=(n|0)){continue}break}}i=(p<<2)+k|0}i:{if((o+r|0)<(e+f|0)){Ud(a,k,i,d,o,r,g,h);a=i;b=l;break i}Ud(i,l,c,d,e,f,g,h);f=r;e=o;c=i;b=k}if(f){continue}break}}return}Va(a,b,c,d,e,f,g)}function Td(a,b,c,d,e,f,g,h){var i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0;a:{b:{if(!f){break b}while(1){if((e|0)<=(h|0)|(f|0)<=(h|0)){break a}if(!e){break b}i=J[d>>2];p=J[i>>2];c:{d:{q=J[i+4>>2]-p>>3;k=J[b>>2];e:{if(q>>>0<=k>>>0){break e}i=p+(k<<3)|0;while(1){l=J[a>>2];if(l>>>0>=q>>>0){break e}if(M[i>>2]>=M[p+(l<<3)>>2]){a=a+4|0;e=e-1|0;if(e){continue}break b}break}f:{g:{if((e|0)<(f|0)){r=(f|0)/2|0;l=(r<<2)+b|0;h:{if((a|0)==(b|0)){k=b;break h}m=J[l>>2];if(m>>>0>=q>>>0){break e}j=b-a>>2;o=j>>>1|0;k=(o<<2)+a|0;i=J[k>>2];if(i>>>0>=q>>>0){break e}n=J[p+(m<<3)>>2];i=n>>>0>2];k=i?a:k+4|0;i=i?o:j+(o^-1)|0;if(!i){break h}while(1){o=i>>>1|0;m=(o<<2)+k|0;j=J[m>>2];if(j>>>0>=q>>>0){break e}j=n>>>0>2];k=j?k:m+4|0;i=j?o:(o^-1)+i|0;if(i){continue}break}}o=k-a>>2;break g}if((e|0)==1){J[a>>2]=k;J[b>>2]=l;return}o=(e|0)/2|0;k=(o<<2)+a|0;l=c;if((l|0)!=(b|0)){i=c-b>>2;l=J[k>>2];if(l>>>0>=q>>>0){break f}n=p+(l<<3)|0;l=b;while(1){r=i>>>1|0;m=(r<<2)+l|0;j=J[m>>2];if(j>>>0>=q>>>0){break e}j=M[p+(j<<3)>>2]>2];l=j?m+4|0:l;i=j?(r^-1)+i|0:r;if(i){continue}break}}r=l-b>>2}f=f-r|0;e=e-o|0;i=l;if((b|0)==(k|0)){break c}i=k;if((b|0)==(l|0)){break c}if((k+4|0)!=(b|0)){break d}j=J[k>>2];i=b;b=l-b|0;i=xa(k,i,b)+b|0;J[i>>2]=j;break c}}va();B()}if((b+4|0)==(l|0)){b=l-4|0;j=J[b>>2];i=l;if((b|0)!=(k|0)){b=b-k|0;i=l-b|0;xa(i,k,b)}J[k>>2]=j;break c}i=b;m=k;p=l-b>>2;j=p;s=b-k>>2;n=s;if((j|0)==(n|0)){while(1){j=J[m>>2];J[m>>2]=J[i>>2];J[i>>2]=j;i=i+4|0;m=m+4|0;if((m|0)!=(b|0)){continue}break}i=b;break c}while(1){b=n;n=j;j=(b|0)%(j|0)|0;if(j){continue}break}if(n){n=(n<<2)+k|0;while(1){n=n-4|0;q=s<<2;m=n+q|0;i=J[n>>2];j=n;while(1){b=j;j=m;J[b>>2]=J[j>>2];b=l-j>>2;m=(b|0)>(s|0)?j+q|0:(s-b<<2)+k|0;if((n|0)!=(m|0)){continue}break}J[j>>2]=i;if((k|0)!=(n|0)){continue}break}}i=(p<<2)+k|0}i:{if((o+r|0)<(e+f|0)){Td(a,k,i,d,o,r,g,h);a=i;b=l;break i}Td(i,l,c,d,e,f,g,h);f=r;e=o;c=i;b=k}if(f){continue}break}}return}Va(a,b,c,d,e,f,g)}function Sd(a,b,c,d,e,f,g,h){var i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0;a:{b:{if(!f){break b}while(1){if((e|0)<=(h|0)|(f|0)<=(h|0)){break a}if(!e){break b}i=J[d>>2];p=J[i>>2];c:{d:{q=J[i+4>>2]-p>>3;k=J[b>>2];e:{if(q>>>0<=k>>>0){break e}i=p+(k<<3)|0;while(1){l=J[a>>2];if(l>>>0>=q>>>0){break e}if(M[i>>2]>=M[p+(l<<3)>>2]){a=a+4|0;e=e-1|0;if(e){continue}break b}break}f:{g:{if((e|0)<(f|0)){r=(f|0)/2|0;l=(r<<2)+b|0;h:{if((a|0)==(b|0)){k=b;break h}m=J[l>>2];if(m>>>0>=q>>>0){break e}j=b-a>>2;o=j>>>1|0;k=(o<<2)+a|0;i=J[k>>2];if(i>>>0>=q>>>0){break e}n=J[p+(m<<3)>>2];i=n>>>0>2];k=i?a:k+4|0;i=i?o:j+(o^-1)|0;if(!i){break h}while(1){o=i>>>1|0;m=(o<<2)+k|0;j=J[m>>2];if(j>>>0>=q>>>0){break e}j=n>>>0>2];k=j?k:m+4|0;i=j?o:(o^-1)+i|0;if(i){continue}break}}o=k-a>>2;break g}if((e|0)==1){J[a>>2]=k;J[b>>2]=l;return}o=(e|0)/2|0;k=(o<<2)+a|0;l=c;if((l|0)!=(b|0)){i=c-b>>2;l=J[k>>2];if(l>>>0>=q>>>0){break f}n=p+(l<<3)|0;l=b;while(1){r=i>>>1|0;m=(r<<2)+l|0;j=J[m>>2];if(j>>>0>=q>>>0){break e}j=M[p+(j<<3)>>2]>2];l=j?m+4|0:l;i=j?(r^-1)+i|0:r;if(i){continue}break}}r=l-b>>2}f=f-r|0;e=e-o|0;i=l;if((b|0)==(k|0)){break c}i=k;if((b|0)==(l|0)){break c}if((k+4|0)!=(b|0)){break d}j=J[k>>2];i=b;b=l-b|0;i=xa(k,i,b)+b|0;J[i>>2]=j;break c}}va();B()}if((b+4|0)==(l|0)){b=l-4|0;j=J[b>>2];i=l;if((b|0)!=(k|0)){b=b-k|0;i=l-b|0;xa(i,k,b)}J[k>>2]=j;break c}i=b;m=k;p=l-b>>2;j=p;s=b-k>>2;n=s;if((j|0)==(n|0)){while(1){j=J[m>>2];J[m>>2]=J[i>>2];J[i>>2]=j;i=i+4|0;m=m+4|0;if((m|0)!=(b|0)){continue}break}i=b;break c}while(1){b=n;n=j;j=(b|0)%(j|0)|0;if(j){continue}break}if(n){n=(n<<2)+k|0;while(1){n=n-4|0;q=s<<2;m=n+q|0;i=J[n>>2];j=n;while(1){b=j;j=m;J[b>>2]=J[j>>2];b=l-j>>2;m=(b|0)>(s|0)?j+q|0:(s-b<<2)+k|0;if((n|0)!=(m|0)){continue}break}J[j>>2]=i;if((k|0)!=(n|0)){continue}break}}i=(p<<2)+k|0}i:{if((o+r|0)<(e+f|0)){Sd(a,k,i,d,o,r,g,h);a=i;b=l;break i}Sd(i,l,c,d,e,f,g,h);f=r;e=o;c=i;b=k}if(f){continue}break}}return}Va(a,b,c,d,e,f,g)}function Rd(a,b,c,d,e,f,g,h){var i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0;a:{b:{if(!f){break b}while(1){if((e|0)<=(h|0)|(f|0)<=(h|0)){break a}if(!e){break b}i=J[d>>2];p=J[i>>2];c:{d:{q=J[i+4>>2]-p>>3;k=J[b>>2];e:{if(q>>>0<=k>>>0){break e}i=p+(k<<3)|0;while(1){l=J[a>>2];if(l>>>0>=q>>>0){break e}if(M[i>>2]>=M[p+(l<<3)>>2]){a=a+4|0;e=e-1|0;if(e){continue}break b}break}f:{g:{if((e|0)<(f|0)){r=(f|0)/2|0;l=(r<<2)+b|0;h:{if((a|0)==(b|0)){k=b;break h}m=J[l>>2];if(m>>>0>=q>>>0){break e}j=b-a>>2;o=j>>>1|0;k=(o<<2)+a|0;i=J[k>>2];if(i>>>0>=q>>>0){break e}n=J[p+(m<<3)>>2];i=n>>>0>2];k=i?a:k+4|0;i=i?o:j+(o^-1)|0;if(!i){break h}while(1){o=i>>>1|0;m=(o<<2)+k|0;j=J[m>>2];if(j>>>0>=q>>>0){break e}j=n>>>0>2];k=j?k:m+4|0;i=j?o:(o^-1)+i|0;if(i){continue}break}}o=k-a>>2;break g}if((e|0)==1){J[a>>2]=k;J[b>>2]=l;return}o=(e|0)/2|0;k=(o<<2)+a|0;l=c;if((l|0)!=(b|0)){i=c-b>>2;l=J[k>>2];if(l>>>0>=q>>>0){break f}n=p+(l<<3)|0;l=b;while(1){r=i>>>1|0;m=(r<<2)+l|0;j=J[m>>2];if(j>>>0>=q>>>0){break e}j=M[p+(j<<3)>>2]>2];l=j?m+4|0:l;i=j?(r^-1)+i|0:r;if(i){continue}break}}r=l-b>>2}f=f-r|0;e=e-o|0;i=l;if((b|0)==(k|0)){break c}i=k;if((b|0)==(l|0)){break c}if((k+4|0)!=(b|0)){break d}j=J[k>>2];i=b;b=l-b|0;i=xa(k,i,b)+b|0;J[i>>2]=j;break c}}va();B()}if((b+4|0)==(l|0)){b=l-4|0;j=J[b>>2];i=l;if((b|0)!=(k|0)){b=b-k|0;i=l-b|0;xa(i,k,b)}J[k>>2]=j;break c}i=b;m=k;p=l-b>>2;j=p;s=b-k>>2;n=s;if((j|0)==(n|0)){while(1){j=J[m>>2];J[m>>2]=J[i>>2];J[i>>2]=j;i=i+4|0;m=m+4|0;if((m|0)!=(b|0)){continue}break}i=b;break c}while(1){b=n;n=j;j=(b|0)%(j|0)|0;if(j){continue}break}if(n){n=(n<<2)+k|0;while(1){n=n-4|0;q=s<<2;m=n+q|0;i=J[n>>2];j=n;while(1){b=j;j=m;J[b>>2]=J[j>>2];b=l-j>>2;m=(b|0)>(s|0)?j+q|0:(s-b<<2)+k|0;if((n|0)!=(m|0)){continue}break}J[j>>2]=i;if((k|0)!=(n|0)){continue}break}}i=(p<<2)+k|0}i:{if((o+r|0)<(e+f|0)){Rd(a,k,i,d,o,r,g,h);a=i;b=l;break i}Rd(i,l,c,d,e,f,g,h);f=r;e=o;c=i;b=k}if(f){continue}break}}return}Va(a,b,c,d,e,f,g)}function Qd(a,b,c,d,e,f,g,h){var i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0;a:{b:{if(!f){break b}while(1){if((e|0)<=(h|0)|(f|0)<=(h|0)){break a}if(!e){break b}i=J[d>>2];p=J[i>>2];c:{d:{q=J[i+4>>2]-p>>3;k=J[b>>2];e:{if(q>>>0<=k>>>0){break e}i=p+(k<<3)|0;while(1){l=J[a>>2];if(l>>>0>=q>>>0){break e}if(M[i>>2]>=M[p+(l<<3)>>2]){a=a+4|0;e=e-1|0;if(e){continue}break b}break}f:{g:{if((e|0)<(f|0)){r=(f|0)/2|0;l=(r<<2)+b|0;h:{if((a|0)==(b|0)){k=b;break h}m=J[l>>2];if(m>>>0>=q>>>0){break e}j=b-a>>2;o=j>>>1|0;k=(o<<2)+a|0;i=J[k>>2];if(i>>>0>=q>>>0){break e}n=J[p+(m<<3)>>2];i=n>>>0>2];k=i?a:k+4|0;i=i?o:j+(o^-1)|0;if(!i){break h}while(1){o=i>>>1|0;m=(o<<2)+k|0;j=J[m>>2];if(j>>>0>=q>>>0){break e}j=n>>>0>2];k=j?k:m+4|0;i=j?o:(o^-1)+i|0;if(i){continue}break}}o=k-a>>2;break g}if((e|0)==1){J[a>>2]=k;J[b>>2]=l;return}o=(e|0)/2|0;k=(o<<2)+a|0;l=c;if((l|0)!=(b|0)){i=c-b>>2;l=J[k>>2];if(l>>>0>=q>>>0){break f}n=p+(l<<3)|0;l=b;while(1){r=i>>>1|0;m=(r<<2)+l|0;j=J[m>>2];if(j>>>0>=q>>>0){break e}j=M[p+(j<<3)>>2]>2];l=j?m+4|0:l;i=j?(r^-1)+i|0:r;if(i){continue}break}}r=l-b>>2}f=f-r|0;e=e-o|0;i=l;if((b|0)==(k|0)){break c}i=k;if((b|0)==(l|0)){break c}if((k+4|0)!=(b|0)){break d}j=J[k>>2];i=b;b=l-b|0;i=xa(k,i,b)+b|0;J[i>>2]=j;break c}}va();B()}if((b+4|0)==(l|0)){b=l-4|0;j=J[b>>2];i=l;if((b|0)!=(k|0)){b=b-k|0;i=l-b|0;xa(i,k,b)}J[k>>2]=j;break c}i=b;m=k;p=l-b>>2;j=p;s=b-k>>2;n=s;if((j|0)==(n|0)){while(1){j=J[m>>2];J[m>>2]=J[i>>2];J[i>>2]=j;i=i+4|0;m=m+4|0;if((m|0)!=(b|0)){continue}break}i=b;break c}while(1){b=n;n=j;j=(b|0)%(j|0)|0;if(j){continue}break}if(n){n=(n<<2)+k|0;while(1){n=n-4|0;q=s<<2;m=n+q|0;i=J[n>>2];j=n;while(1){b=j;j=m;J[b>>2]=J[j>>2];b=l-j>>2;m=(b|0)>(s|0)?j+q|0:(s-b<<2)+k|0;if((n|0)!=(m|0)){continue}break}J[j>>2]=i;if((k|0)!=(n|0)){continue}break}}i=(p<<2)+k|0}i:{if((o+r|0)<(e+f|0)){Qd(a,k,i,d,o,r,g,h);a=i;b=l;break i}Qd(i,l,c,d,e,f,g,h);f=r;e=o;c=i;b=k}if(f){continue}break}}return}Va(a,b,c,d,e,f,g)}function Pd(a,b,c,d,e,f,g,h){var i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0;a:{b:{if(!f){break b}while(1){if((e|0)<=(h|0)|(f|0)<=(h|0)){break a}if(!e){break b}i=J[d>>2];p=J[i>>2];c:{d:{q=J[i+4>>2]-p>>3;k=J[b>>2];e:{if(q>>>0<=k>>>0){break e}i=p+(k<<3)|0;while(1){l=J[a>>2];if(l>>>0>=q>>>0){break e}if(M[i>>2]>=M[p+(l<<3)>>2]){a=a+4|0;e=e-1|0;if(e){continue}break b}break}f:{g:{if((e|0)<(f|0)){r=(f|0)/2|0;l=(r<<2)+b|0;h:{if((a|0)==(b|0)){k=b;break h}m=J[l>>2];if(m>>>0>=q>>>0){break e}j=b-a>>2;o=j>>>1|0;k=(o<<2)+a|0;i=J[k>>2];if(i>>>0>=q>>>0){break e}n=J[p+(m<<3)>>2];i=n>>>0>2];k=i?a:k+4|0;i=i?o:j+(o^-1)|0;if(!i){break h}while(1){o=i>>>1|0;m=(o<<2)+k|0;j=J[m>>2];if(j>>>0>=q>>>0){break e}j=n>>>0>2];k=j?k:m+4|0;i=j?o:(o^-1)+i|0;if(i){continue}break}}o=k-a>>2;break g}if((e|0)==1){J[a>>2]=k;J[b>>2]=l;return}o=(e|0)/2|0;k=(o<<2)+a|0;l=c;if((l|0)!=(b|0)){i=c-b>>2;l=J[k>>2];if(l>>>0>=q>>>0){break f}n=p+(l<<3)|0;l=b;while(1){r=i>>>1|0;m=(r<<2)+l|0;j=J[m>>2];if(j>>>0>=q>>>0){break e}j=M[p+(j<<3)>>2]>2];l=j?m+4|0:l;i=j?(r^-1)+i|0:r;if(i){continue}break}}r=l-b>>2}f=f-r|0;e=e-o|0;i=l;if((b|0)==(k|0)){break c}i=k;if((b|0)==(l|0)){break c}if((k+4|0)!=(b|0)){break d}j=J[k>>2];i=b;b=l-b|0;i=xa(k,i,b)+b|0;J[i>>2]=j;break c}}va();B()}if((b+4|0)==(l|0)){b=l-4|0;j=J[b>>2];i=l;if((b|0)!=(k|0)){b=b-k|0;i=l-b|0;xa(i,k,b)}J[k>>2]=j;break c}i=b;m=k;p=l-b>>2;j=p;s=b-k>>2;n=s;if((j|0)==(n|0)){while(1){j=J[m>>2];J[m>>2]=J[i>>2];J[i>>2]=j;i=i+4|0;m=m+4|0;if((m|0)!=(b|0)){continue}break}i=b;break c}while(1){b=n;n=j;j=(b|0)%(j|0)|0;if(j){continue}break}if(n){n=(n<<2)+k|0;while(1){n=n-4|0;q=s<<2;m=n+q|0;i=J[n>>2];j=n;while(1){b=j;j=m;J[b>>2]=J[j>>2];b=l-j>>2;m=(b|0)>(s|0)?j+q|0:(s-b<<2)+k|0;if((n|0)!=(m|0)){continue}break}J[j>>2]=i;if((k|0)!=(n|0)){continue}break}}i=(p<<2)+k|0}i:{if((o+r|0)<(e+f|0)){Pd(a,k,i,d,o,r,g,h);a=i;b=l;break i}Pd(i,l,c,d,e,f,g,h);f=r;e=o;c=i;b=k}if(f){continue}break}}return}Va(a,b,c,d,e,f,g)}function Nd(a,b,c,d,e,f,g,h){var i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0;a:{b:{if(!f){break b}while(1){if((e|0)<=(h|0)|(f|0)<=(h|0)){break a}if(!e){break b}i=J[d>>2];p=J[i>>2];c:{d:{q=J[i+4>>2]-p>>3;k=J[b>>2];e:{if(q>>>0<=k>>>0){break e}i=p+(k<<3)|0;while(1){l=J[a>>2];if(l>>>0>=q>>>0){break e}if(M[i>>2]>=M[p+(l<<3)>>2]){a=a+4|0;e=e-1|0;if(e){continue}break b}break}f:{g:{if((e|0)<(f|0)){r=(f|0)/2|0;l=(r<<2)+b|0;h:{if((a|0)==(b|0)){k=b;break h}m=J[l>>2];if(m>>>0>=q>>>0){break e}j=b-a>>2;o=j>>>1|0;k=(o<<2)+a|0;i=J[k>>2];if(i>>>0>=q>>>0){break e}n=J[p+(m<<3)>>2];i=n>>>0>2];k=i?a:k+4|0;i=i?o:j+(o^-1)|0;if(!i){break h}while(1){o=i>>>1|0;m=(o<<2)+k|0;j=J[m>>2];if(j>>>0>=q>>>0){break e}j=n>>>0>2];k=j?k:m+4|0;i=j?o:(o^-1)+i|0;if(i){continue}break}}o=k-a>>2;break g}if((e|0)==1){J[a>>2]=k;J[b>>2]=l;return}o=(e|0)/2|0;k=(o<<2)+a|0;l=c;if((l|0)!=(b|0)){i=c-b>>2;l=J[k>>2];if(l>>>0>=q>>>0){break f}n=p+(l<<3)|0;l=b;while(1){r=i>>>1|0;m=(r<<2)+l|0;j=J[m>>2];if(j>>>0>=q>>>0){break e}j=M[p+(j<<3)>>2]>2];l=j?m+4|0:l;i=j?(r^-1)+i|0:r;if(i){continue}break}}r=l-b>>2}f=f-r|0;e=e-o|0;i=l;if((b|0)==(k|0)){break c}i=k;if((b|0)==(l|0)){break c}if((k+4|0)!=(b|0)){break d}j=J[k>>2];i=b;b=l-b|0;i=xa(k,i,b)+b|0;J[i>>2]=j;break c}}va();B()}if((b+4|0)==(l|0)){b=l-4|0;j=J[b>>2];i=l;if((b|0)!=(k|0)){b=b-k|0;i=l-b|0;xa(i,k,b)}J[k>>2]=j;break c}i=b;m=k;p=l-b>>2;j=p;s=b-k>>2;n=s;if((j|0)==(n|0)){while(1){j=J[m>>2];J[m>>2]=J[i>>2];J[i>>2]=j;i=i+4|0;m=m+4|0;if((m|0)!=(b|0)){continue}break}i=b;break c}while(1){b=n;n=j;j=(b|0)%(j|0)|0;if(j){continue}break}if(n){n=(n<<2)+k|0;while(1){n=n-4|0;q=s<<2;m=n+q|0;i=J[n>>2];j=n;while(1){b=j;j=m;J[b>>2]=J[j>>2];b=l-j>>2;m=(b|0)>(s|0)?j+q|0:(s-b<<2)+k|0;if((n|0)!=(m|0)){continue}break}J[j>>2]=i;if((k|0)!=(n|0)){continue}break}}i=(p<<2)+k|0}i:{if((o+r|0)<(e+f|0)){Nd(a,k,i,d,o,r,g,h);a=i;b=l;break i}Nd(i,l,c,d,e,f,g,h);f=r;e=o;c=i;b=k}if(f){continue}break}}return}Va(a,b,c,d,e,f,g)}function Md(a,b,c,d,e,f,g,h){var i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0;a:{b:{if(!f){break b}while(1){if((e|0)<=(h|0)|(f|0)<=(h|0)){break a}if(!e){break b}i=J[d>>2];p=J[i>>2];c:{d:{q=J[i+4>>2]-p>>3;k=J[b>>2];e:{if(q>>>0<=k>>>0){break e}i=p+(k<<3)|0;while(1){l=J[a>>2];if(l>>>0>=q>>>0){break e}if(M[i>>2]>=M[p+(l<<3)>>2]){a=a+4|0;e=e-1|0;if(e){continue}break b}break}f:{g:{if((e|0)<(f|0)){r=(f|0)/2|0;l=(r<<2)+b|0;h:{if((a|0)==(b|0)){k=b;break h}m=J[l>>2];if(m>>>0>=q>>>0){break e}j=b-a>>2;o=j>>>1|0;k=(o<<2)+a|0;i=J[k>>2];if(i>>>0>=q>>>0){break e}n=J[p+(m<<3)>>2];i=n>>>0>2];k=i?a:k+4|0;i=i?o:j+(o^-1)|0;if(!i){break h}while(1){o=i>>>1|0;m=(o<<2)+k|0;j=J[m>>2];if(j>>>0>=q>>>0){break e}j=n>>>0>2];k=j?k:m+4|0;i=j?o:(o^-1)+i|0;if(i){continue}break}}o=k-a>>2;break g}if((e|0)==1){J[a>>2]=k;J[b>>2]=l;return}o=(e|0)/2|0;k=(o<<2)+a|0;l=c;if((l|0)!=(b|0)){i=c-b>>2;l=J[k>>2];if(l>>>0>=q>>>0){break f}n=p+(l<<3)|0;l=b;while(1){r=i>>>1|0;m=(r<<2)+l|0;j=J[m>>2];if(j>>>0>=q>>>0){break e}j=M[p+(j<<3)>>2]>2];l=j?m+4|0:l;i=j?(r^-1)+i|0:r;if(i){continue}break}}r=l-b>>2}f=f-r|0;e=e-o|0;i=l;if((b|0)==(k|0)){break c}i=k;if((b|0)==(l|0)){break c}if((k+4|0)!=(b|0)){break d}j=J[k>>2];i=b;b=l-b|0;i=xa(k,i,b)+b|0;J[i>>2]=j;break c}}va();B()}if((b+4|0)==(l|0)){b=l-4|0;j=J[b>>2];i=l;if((b|0)!=(k|0)){b=b-k|0;i=l-b|0;xa(i,k,b)}J[k>>2]=j;break c}i=b;m=k;p=l-b>>2;j=p;s=b-k>>2;n=s;if((j|0)==(n|0)){while(1){j=J[m>>2];J[m>>2]=J[i>>2];J[i>>2]=j;i=i+4|0;m=m+4|0;if((m|0)!=(b|0)){continue}break}i=b;break c}while(1){b=n;n=j;j=(b|0)%(j|0)|0;if(j){continue}break}if(n){n=(n<<2)+k|0;while(1){n=n-4|0;q=s<<2;m=n+q|0;i=J[n>>2];j=n;while(1){b=j;j=m;J[b>>2]=J[j>>2];b=l-j>>2;m=(b|0)>(s|0)?j+q|0:(s-b<<2)+k|0;if((n|0)!=(m|0)){continue}break}J[j>>2]=i;if((k|0)!=(n|0)){continue}break}}i=(p<<2)+k|0}i:{if((o+r|0)<(e+f|0)){Md(a,k,i,d,o,r,g,h);a=i;b=l;break i}Md(i,l,c,d,e,f,g,h);f=r;e=o;c=i;b=k}if(f){continue}break}}return}Va(a,b,c,d,e,f,g)}function Ld(a,b,c,d,e,f,g,h){var i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0;a:{b:{if(!f){break b}while(1){if((e|0)<=(h|0)|(f|0)<=(h|0)){break a}if(!e){break b}i=J[d>>2];p=J[i>>2];c:{d:{q=J[i+4>>2]-p>>3;k=J[b>>2];e:{if(q>>>0<=k>>>0){break e}i=p+(k<<3)|0;while(1){l=J[a>>2];if(l>>>0>=q>>>0){break e}if(M[i>>2]>=M[p+(l<<3)>>2]){a=a+4|0;e=e-1|0;if(e){continue}break b}break}f:{g:{if((e|0)<(f|0)){r=(f|0)/2|0;l=(r<<2)+b|0;h:{if((a|0)==(b|0)){k=b;break h}m=J[l>>2];if(m>>>0>=q>>>0){break e}j=b-a>>2;o=j>>>1|0;k=(o<<2)+a|0;i=J[k>>2];if(i>>>0>=q>>>0){break e}n=J[p+(m<<3)>>2];i=n>>>0>2];k=i?a:k+4|0;i=i?o:j+(o^-1)|0;if(!i){break h}while(1){o=i>>>1|0;m=(o<<2)+k|0;j=J[m>>2];if(j>>>0>=q>>>0){break e}j=n>>>0>2];k=j?k:m+4|0;i=j?o:(o^-1)+i|0;if(i){continue}break}}o=k-a>>2;break g}if((e|0)==1){J[a>>2]=k;J[b>>2]=l;return}o=(e|0)/2|0;k=(o<<2)+a|0;l=c;if((l|0)!=(b|0)){i=c-b>>2;l=J[k>>2];if(l>>>0>=q>>>0){break f}n=p+(l<<3)|0;l=b;while(1){r=i>>>1|0;m=(r<<2)+l|0;j=J[m>>2];if(j>>>0>=q>>>0){break e}j=M[p+(j<<3)>>2]>2];l=j?m+4|0:l;i=j?(r^-1)+i|0:r;if(i){continue}break}}r=l-b>>2}f=f-r|0;e=e-o|0;i=l;if((b|0)==(k|0)){break c}i=k;if((b|0)==(l|0)){break c}if((k+4|0)!=(b|0)){break d}j=J[k>>2];i=b;b=l-b|0;i=xa(k,i,b)+b|0;J[i>>2]=j;break c}}va();B()}if((b+4|0)==(l|0)){b=l-4|0;j=J[b>>2];i=l;if((b|0)!=(k|0)){b=b-k|0;i=l-b|0;xa(i,k,b)}J[k>>2]=j;break c}i=b;m=k;p=l-b>>2;j=p;s=b-k>>2;n=s;if((j|0)==(n|0)){while(1){j=J[m>>2];J[m>>2]=J[i>>2];J[i>>2]=j;i=i+4|0;m=m+4|0;if((m|0)!=(b|0)){continue}break}i=b;break c}while(1){b=n;n=j;j=(b|0)%(j|0)|0;if(j){continue}break}if(n){n=(n<<2)+k|0;while(1){n=n-4|0;q=s<<2;m=n+q|0;i=J[n>>2];j=n;while(1){b=j;j=m;J[b>>2]=J[j>>2];b=l-j>>2;m=(b|0)>(s|0)?j+q|0:(s-b<<2)+k|0;if((n|0)!=(m|0)){continue}break}J[j>>2]=i;if((k|0)!=(n|0)){continue}break}}i=(p<<2)+k|0}i:{if((o+r|0)<(e+f|0)){Ld(a,k,i,d,o,r,g,h);a=i;b=l;break i}Ld(i,l,c,d,e,f,g,h);f=r;e=o;c=i;b=k}if(f){continue}break}}return}Va(a,b,c,d,e,f,g)}function Kd(a,b,c,d,e,f,g,h){var i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0;a:{b:{if(!f){break b}while(1){if((e|0)<=(h|0)|(f|0)<=(h|0)){break a}if(!e){break b}i=J[d>>2];p=J[i>>2];c:{d:{q=J[i+4>>2]-p>>3;k=J[b>>2];e:{if(q>>>0<=k>>>0){break e}i=p+(k<<3)|0;while(1){l=J[a>>2];if(l>>>0>=q>>>0){break e}if(M[i>>2]>=M[p+(l<<3)>>2]){a=a+4|0;e=e-1|0;if(e){continue}break b}break}f:{g:{if((e|0)<(f|0)){r=(f|0)/2|0;l=(r<<2)+b|0;h:{if((a|0)==(b|0)){k=b;break h}m=J[l>>2];if(m>>>0>=q>>>0){break e}j=b-a>>2;o=j>>>1|0;k=(o<<2)+a|0;i=J[k>>2];if(i>>>0>=q>>>0){break e}n=J[p+(m<<3)>>2];i=n>>>0>2];k=i?a:k+4|0;i=i?o:j+(o^-1)|0;if(!i){break h}while(1){o=i>>>1|0;m=(o<<2)+k|0;j=J[m>>2];if(j>>>0>=q>>>0){break e}j=n>>>0>2];k=j?k:m+4|0;i=j?o:(o^-1)+i|0;if(i){continue}break}}o=k-a>>2;break g}if((e|0)==1){J[a>>2]=k;J[b>>2]=l;return}o=(e|0)/2|0;k=(o<<2)+a|0;l=c;if((l|0)!=(b|0)){i=c-b>>2;l=J[k>>2];if(l>>>0>=q>>>0){break f}n=p+(l<<3)|0;l=b;while(1){r=i>>>1|0;m=(r<<2)+l|0;j=J[m>>2];if(j>>>0>=q>>>0){break e}j=M[p+(j<<3)>>2]>2];l=j?m+4|0:l;i=j?(r^-1)+i|0:r;if(i){continue}break}}r=l-b>>2}f=f-r|0;e=e-o|0;i=l;if((b|0)==(k|0)){break c}i=k;if((b|0)==(l|0)){break c}if((k+4|0)!=(b|0)){break d}j=J[k>>2];i=b;b=l-b|0;i=xa(k,i,b)+b|0;J[i>>2]=j;break c}}va();B()}if((b+4|0)==(l|0)){b=l-4|0;j=J[b>>2];i=l;if((b|0)!=(k|0)){b=b-k|0;i=l-b|0;xa(i,k,b)}J[k>>2]=j;break c}i=b;m=k;p=l-b>>2;j=p;s=b-k>>2;n=s;if((j|0)==(n|0)){while(1){j=J[m>>2];J[m>>2]=J[i>>2];J[i>>2]=j;i=i+4|0;m=m+4|0;if((m|0)!=(b|0)){continue}break}i=b;break c}while(1){b=n;n=j;j=(b|0)%(j|0)|0;if(j){continue}break}if(n){n=(n<<2)+k|0;while(1){n=n-4|0;q=s<<2;m=n+q|0;i=J[n>>2];j=n;while(1){b=j;j=m;J[b>>2]=J[j>>2];b=l-j>>2;m=(b|0)>(s|0)?j+q|0:(s-b<<2)+k|0;if((n|0)!=(m|0)){continue}break}J[j>>2]=i;if((k|0)!=(n|0)){continue}break}}i=(p<<2)+k|0}i:{if((o+r|0)<(e+f|0)){Kd(a,k,i,d,o,r,g,h);a=i;b=l;break i}Kd(i,l,c,d,e,f,g,h);f=r;e=o;c=i;b=k}if(f){continue}break}}return}Va(a,b,c,d,e,f,g)}function Jd(a,b,c,d,e,f,g,h){var i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0;a:{b:{if(!f){break b}while(1){if((e|0)<=(h|0)|(f|0)<=(h|0)){break a}if(!e){break b}i=J[d>>2];p=J[i>>2];c:{d:{q=J[i+4>>2]-p>>3;k=J[b>>2];e:{if(q>>>0<=k>>>0){break e}i=p+(k<<3)|0;while(1){l=J[a>>2];if(l>>>0>=q>>>0){break e}if(M[i>>2]>=M[p+(l<<3)>>2]){a=a+4|0;e=e-1|0;if(e){continue}break b}break}f:{g:{if((e|0)<(f|0)){r=(f|0)/2|0;l=(r<<2)+b|0;h:{if((a|0)==(b|0)){k=b;break h}m=J[l>>2];if(m>>>0>=q>>>0){break e}j=b-a>>2;o=j>>>1|0;k=(o<<2)+a|0;i=J[k>>2];if(i>>>0>=q>>>0){break e}n=J[p+(m<<3)>>2];i=n>>>0>2];k=i?a:k+4|0;i=i?o:j+(o^-1)|0;if(!i){break h}while(1){o=i>>>1|0;m=(o<<2)+k|0;j=J[m>>2];if(j>>>0>=q>>>0){break e}j=n>>>0>2];k=j?k:m+4|0;i=j?o:(o^-1)+i|0;if(i){continue}break}}o=k-a>>2;break g}if((e|0)==1){J[a>>2]=k;J[b>>2]=l;return}o=(e|0)/2|0;k=(o<<2)+a|0;l=c;if((l|0)!=(b|0)){i=c-b>>2;l=J[k>>2];if(l>>>0>=q>>>0){break f}n=p+(l<<3)|0;l=b;while(1){r=i>>>1|0;m=(r<<2)+l|0;j=J[m>>2];if(j>>>0>=q>>>0){break e}j=M[p+(j<<3)>>2]>2];l=j?m+4|0:l;i=j?(r^-1)+i|0:r;if(i){continue}break}}r=l-b>>2}f=f-r|0;e=e-o|0;i=l;if((b|0)==(k|0)){break c}i=k;if((b|0)==(l|0)){break c}if((k+4|0)!=(b|0)){break d}j=J[k>>2];i=b;b=l-b|0;i=xa(k,i,b)+b|0;J[i>>2]=j;break c}}va();B()}if((b+4|0)==(l|0)){b=l-4|0;j=J[b>>2];i=l;if((b|0)!=(k|0)){b=b-k|0;i=l-b|0;xa(i,k,b)}J[k>>2]=j;break c}i=b;m=k;p=l-b>>2;j=p;s=b-k>>2;n=s;if((j|0)==(n|0)){while(1){j=J[m>>2];J[m>>2]=J[i>>2];J[i>>2]=j;i=i+4|0;m=m+4|0;if((m|0)!=(b|0)){continue}break}i=b;break c}while(1){b=n;n=j;j=(b|0)%(j|0)|0;if(j){continue}break}if(n){n=(n<<2)+k|0;while(1){n=n-4|0;q=s<<2;m=n+q|0;i=J[n>>2];j=n;while(1){b=j;j=m;J[b>>2]=J[j>>2];b=l-j>>2;m=(b|0)>(s|0)?j+q|0:(s-b<<2)+k|0;if((n|0)!=(m|0)){continue}break}J[j>>2]=i;if((k|0)!=(n|0)){continue}break}}i=(p<<2)+k|0}i:{if((o+r|0)<(e+f|0)){Jd(a,k,i,d,o,r,g,h);a=i;b=l;break i}Jd(i,l,c,d,e,f,g,h);f=r;e=o;c=i;b=k}if(f){continue}break}}return}Va(a,b,c,d,e,f,g)}function Id(a,b,c,d,e,f,g,h){var i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0;a:{b:{if(!f){break b}while(1){if((e|0)<=(h|0)|(f|0)<=(h|0)){break a}if(!e){break b}i=J[d>>2];p=J[i>>2];c:{d:{q=J[i+4>>2]-p>>3;k=J[b>>2];e:{if(q>>>0<=k>>>0){break e}i=p+(k<<3)|0;while(1){l=J[a>>2];if(l>>>0>=q>>>0){break e}if(M[i>>2]>=M[p+(l<<3)>>2]){a=a+4|0;e=e-1|0;if(e){continue}break b}break}f:{g:{if((e|0)<(f|0)){r=(f|0)/2|0;l=(r<<2)+b|0;h:{if((a|0)==(b|0)){k=b;break h}m=J[l>>2];if(m>>>0>=q>>>0){break e}j=b-a>>2;o=j>>>1|0;k=(o<<2)+a|0;i=J[k>>2];if(i>>>0>=q>>>0){break e}n=J[p+(m<<3)>>2];i=n>>>0>2];k=i?a:k+4|0;i=i?o:j+(o^-1)|0;if(!i){break h}while(1){o=i>>>1|0;m=(o<<2)+k|0;j=J[m>>2];if(j>>>0>=q>>>0){break e}j=n>>>0>2];k=j?k:m+4|0;i=j?o:(o^-1)+i|0;if(i){continue}break}}o=k-a>>2;break g}if((e|0)==1){J[a>>2]=k;J[b>>2]=l;return}o=(e|0)/2|0;k=(o<<2)+a|0;l=c;if((l|0)!=(b|0)){i=c-b>>2;l=J[k>>2];if(l>>>0>=q>>>0){break f}n=p+(l<<3)|0;l=b;while(1){r=i>>>1|0;m=(r<<2)+l|0;j=J[m>>2];if(j>>>0>=q>>>0){break e}j=M[p+(j<<3)>>2]>2];l=j?m+4|0:l;i=j?(r^-1)+i|0:r;if(i){continue}break}}r=l-b>>2}f=f-r|0;e=e-o|0;i=l;if((b|0)==(k|0)){break c}i=k;if((b|0)==(l|0)){break c}if((k+4|0)!=(b|0)){break d}j=J[k>>2];i=b;b=l-b|0;i=xa(k,i,b)+b|0;J[i>>2]=j;break c}}va();B()}if((b+4|0)==(l|0)){b=l-4|0;j=J[b>>2];i=l;if((b|0)!=(k|0)){b=b-k|0;i=l-b|0;xa(i,k,b)}J[k>>2]=j;break c}i=b;m=k;p=l-b>>2;j=p;s=b-k>>2;n=s;if((j|0)==(n|0)){while(1){j=J[m>>2];J[m>>2]=J[i>>2];J[i>>2]=j;i=i+4|0;m=m+4|0;if((m|0)!=(b|0)){continue}break}i=b;break c}while(1){b=n;n=j;j=(b|0)%(j|0)|0;if(j){continue}break}if(n){n=(n<<2)+k|0;while(1){n=n-4|0;q=s<<2;m=n+q|0;i=J[n>>2];j=n;while(1){b=j;j=m;J[b>>2]=J[j>>2];b=l-j>>2;m=(b|0)>(s|0)?j+q|0:(s-b<<2)+k|0;if((n|0)!=(m|0)){continue}break}J[j>>2]=i;if((k|0)!=(n|0)){continue}break}}i=(p<<2)+k|0}i:{if((o+r|0)<(e+f|0)){Id(a,k,i,d,o,r,g,h);a=i;b=l;break i}Id(i,l,c,d,e,f,g,h);f=r;e=o;c=i;b=k}if(f){continue}break}}return}Va(a,b,c,d,e,f,g)}function Hd(a,b,c,d,e,f,g,h){var i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0;a:{b:{if(!f){break b}while(1){if((e|0)<=(h|0)|(f|0)<=(h|0)){break a}if(!e){break b}i=J[d>>2];p=J[i>>2];c:{d:{q=J[i+4>>2]-p>>3;k=J[b>>2];e:{if(q>>>0<=k>>>0){break e}i=p+(k<<3)|0;while(1){l=J[a>>2];if(l>>>0>=q>>>0){break e}if(M[i>>2]>=M[p+(l<<3)>>2]){a=a+4|0;e=e-1|0;if(e){continue}break b}break}f:{g:{if((e|0)<(f|0)){r=(f|0)/2|0;l=(r<<2)+b|0;h:{if((a|0)==(b|0)){k=b;break h}m=J[l>>2];if(m>>>0>=q>>>0){break e}j=b-a>>2;o=j>>>1|0;k=(o<<2)+a|0;i=J[k>>2];if(i>>>0>=q>>>0){break e}n=J[p+(m<<3)>>2];i=n>>>0>2];k=i?a:k+4|0;i=i?o:j+(o^-1)|0;if(!i){break h}while(1){o=i>>>1|0;m=(o<<2)+k|0;j=J[m>>2];if(j>>>0>=q>>>0){break e}j=n>>>0>2];k=j?k:m+4|0;i=j?o:(o^-1)+i|0;if(i){continue}break}}o=k-a>>2;break g}if((e|0)==1){J[a>>2]=k;J[b>>2]=l;return}o=(e|0)/2|0;k=(o<<2)+a|0;l=c;if((l|0)!=(b|0)){i=c-b>>2;l=J[k>>2];if(l>>>0>=q>>>0){break f}n=p+(l<<3)|0;l=b;while(1){r=i>>>1|0;m=(r<<2)+l|0;j=J[m>>2];if(j>>>0>=q>>>0){break e}j=M[p+(j<<3)>>2]>2];l=j?m+4|0:l;i=j?(r^-1)+i|0:r;if(i){continue}break}}r=l-b>>2}f=f-r|0;e=e-o|0;i=l;if((b|0)==(k|0)){break c}i=k;if((b|0)==(l|0)){break c}if((k+4|0)!=(b|0)){break d}j=J[k>>2];i=b;b=l-b|0;i=xa(k,i,b)+b|0;J[i>>2]=j;break c}}va();B()}if((b+4|0)==(l|0)){b=l-4|0;j=J[b>>2];i=l;if((b|0)!=(k|0)){b=b-k|0;i=l-b|0;xa(i,k,b)}J[k>>2]=j;break c}i=b;m=k;p=l-b>>2;j=p;s=b-k>>2;n=s;if((j|0)==(n|0)){while(1){j=J[m>>2];J[m>>2]=J[i>>2];J[i>>2]=j;i=i+4|0;m=m+4|0;if((m|0)!=(b|0)){continue}break}i=b;break c}while(1){b=n;n=j;j=(b|0)%(j|0)|0;if(j){continue}break}if(n){n=(n<<2)+k|0;while(1){n=n-4|0;q=s<<2;m=n+q|0;i=J[n>>2];j=n;while(1){b=j;j=m;J[b>>2]=J[j>>2];b=l-j>>2;m=(b|0)>(s|0)?j+q|0:(s-b<<2)+k|0;if((n|0)!=(m|0)){continue}break}J[j>>2]=i;if((k|0)!=(n|0)){continue}break}}i=(p<<2)+k|0}i:{if((o+r|0)<(e+f|0)){Hd(a,k,i,d,o,r,g,h);a=i;b=l;break i}Hd(i,l,c,d,e,f,g,h);f=r;e=o;c=i;b=k}if(f){continue}break}}return}Va(a,b,c,d,e,f,g)}function Gd(a,b,c,d,e,f,g,h){var i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0;a:{b:{if(!f){break b}while(1){if((e|0)<=(h|0)|(f|0)<=(h|0)){break a}if(!e){break b}i=J[d>>2];p=J[i>>2];c:{d:{q=J[i+4>>2]-p>>3;k=J[b>>2];e:{if(q>>>0<=k>>>0){break e}i=p+(k<<3)|0;while(1){l=J[a>>2];if(l>>>0>=q>>>0){break e}if(M[i>>2]>=M[p+(l<<3)>>2]){a=a+4|0;e=e-1|0;if(e){continue}break b}break}f:{g:{if((e|0)<(f|0)){r=(f|0)/2|0;l=(r<<2)+b|0;h:{if((a|0)==(b|0)){k=b;break h}m=J[l>>2];if(m>>>0>=q>>>0){break e}j=b-a>>2;o=j>>>1|0;k=(o<<2)+a|0;i=J[k>>2];if(i>>>0>=q>>>0){break e}n=J[p+(m<<3)>>2];i=n>>>0>2];k=i?a:k+4|0;i=i?o:j+(o^-1)|0;if(!i){break h}while(1){o=i>>>1|0;m=(o<<2)+k|0;j=J[m>>2];if(j>>>0>=q>>>0){break e}j=n>>>0>2];k=j?k:m+4|0;i=j?o:(o^-1)+i|0;if(i){continue}break}}o=k-a>>2;break g}if((e|0)==1){J[a>>2]=k;J[b>>2]=l;return}o=(e|0)/2|0;k=(o<<2)+a|0;l=c;if((l|0)!=(b|0)){i=c-b>>2;l=J[k>>2];if(l>>>0>=q>>>0){break f}n=p+(l<<3)|0;l=b;while(1){r=i>>>1|0;m=(r<<2)+l|0;j=J[m>>2];if(j>>>0>=q>>>0){break e}j=M[p+(j<<3)>>2]>2];l=j?m+4|0:l;i=j?(r^-1)+i|0:r;if(i){continue}break}}r=l-b>>2}f=f-r|0;e=e-o|0;i=l;if((b|0)==(k|0)){break c}i=k;if((b|0)==(l|0)){break c}if((k+4|0)!=(b|0)){break d}j=J[k>>2];i=b;b=l-b|0;i=xa(k,i,b)+b|0;J[i>>2]=j;break c}}va();B()}if((b+4|0)==(l|0)){b=l-4|0;j=J[b>>2];i=l;if((b|0)!=(k|0)){b=b-k|0;i=l-b|0;xa(i,k,b)}J[k>>2]=j;break c}i=b;m=k;p=l-b>>2;j=p;s=b-k>>2;n=s;if((j|0)==(n|0)){while(1){j=J[m>>2];J[m>>2]=J[i>>2];J[i>>2]=j;i=i+4|0;m=m+4|0;if((m|0)!=(b|0)){continue}break}i=b;break c}while(1){b=n;n=j;j=(b|0)%(j|0)|0;if(j){continue}break}if(n){n=(n<<2)+k|0;while(1){n=n-4|0;q=s<<2;m=n+q|0;i=J[n>>2];j=n;while(1){b=j;j=m;J[b>>2]=J[j>>2];b=l-j>>2;m=(b|0)>(s|0)?j+q|0:(s-b<<2)+k|0;if((n|0)!=(m|0)){continue}break}J[j>>2]=i;if((k|0)!=(n|0)){continue}break}}i=(p<<2)+k|0}i:{if((o+r|0)<(e+f|0)){Gd(a,k,i,d,o,r,g,h);a=i;b=l;break i}Gd(i,l,c,d,e,f,g,h);f=r;e=o;c=i;b=k}if(f){continue}break}}return}Va(a,b,c,d,e,f,g)}function Fd(a,b,c,d,e,f,g,h){var i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0;a:{b:{if(!f){break b}while(1){if((e|0)<=(h|0)|(f|0)<=(h|0)){break a}if(!e){break b}i=J[d>>2];p=J[i>>2];c:{d:{q=J[i+4>>2]-p>>3;k=J[b>>2];e:{if(q>>>0<=k>>>0){break e}i=p+(k<<3)|0;while(1){l=J[a>>2];if(l>>>0>=q>>>0){break e}if(M[i>>2]>=M[p+(l<<3)>>2]){a=a+4|0;e=e-1|0;if(e){continue}break b}break}f:{g:{if((e|0)<(f|0)){r=(f|0)/2|0;l=(r<<2)+b|0;h:{if((a|0)==(b|0)){k=b;break h}m=J[l>>2];if(m>>>0>=q>>>0){break e}j=b-a>>2;o=j>>>1|0;k=(o<<2)+a|0;i=J[k>>2];if(i>>>0>=q>>>0){break e}n=J[p+(m<<3)>>2];i=n>>>0>2];k=i?a:k+4|0;i=i?o:j+(o^-1)|0;if(!i){break h}while(1){o=i>>>1|0;m=(o<<2)+k|0;j=J[m>>2];if(j>>>0>=q>>>0){break e}j=n>>>0>2];k=j?k:m+4|0;i=j?o:(o^-1)+i|0;if(i){continue}break}}o=k-a>>2;break g}if((e|0)==1){J[a>>2]=k;J[b>>2]=l;return}o=(e|0)/2|0;k=(o<<2)+a|0;l=c;if((l|0)!=(b|0)){i=c-b>>2;l=J[k>>2];if(l>>>0>=q>>>0){break f}n=p+(l<<3)|0;l=b;while(1){r=i>>>1|0;m=(r<<2)+l|0;j=J[m>>2];if(j>>>0>=q>>>0){break e}j=M[p+(j<<3)>>2]>2];l=j?m+4|0:l;i=j?(r^-1)+i|0:r;if(i){continue}break}}r=l-b>>2}f=f-r|0;e=e-o|0;i=l;if((b|0)==(k|0)){break c}i=k;if((b|0)==(l|0)){break c}if((k+4|0)!=(b|0)){break d}j=J[k>>2];i=b;b=l-b|0;i=xa(k,i,b)+b|0;J[i>>2]=j;break c}}va();B()}if((b+4|0)==(l|0)){b=l-4|0;j=J[b>>2];i=l;if((b|0)!=(k|0)){b=b-k|0;i=l-b|0;xa(i,k,b)}J[k>>2]=j;break c}i=b;m=k;p=l-b>>2;j=p;s=b-k>>2;n=s;if((j|0)==(n|0)){while(1){j=J[m>>2];J[m>>2]=J[i>>2];J[i>>2]=j;i=i+4|0;m=m+4|0;if((m|0)!=(b|0)){continue}break}i=b;break c}while(1){b=n;n=j;j=(b|0)%(j|0)|0;if(j){continue}break}if(n){n=(n<<2)+k|0;while(1){n=n-4|0;q=s<<2;m=n+q|0;i=J[n>>2];j=n;while(1){b=j;j=m;J[b>>2]=J[j>>2];b=l-j>>2;m=(b|0)>(s|0)?j+q|0:(s-b<<2)+k|0;if((n|0)!=(m|0)){continue}break}J[j>>2]=i;if((k|0)!=(n|0)){continue}break}}i=(p<<2)+k|0}i:{if((o+r|0)<(e+f|0)){Fd(a,k,i,d,o,r,g,h);a=i;b=l;break i}Fd(i,l,c,d,e,f,g,h);f=r;e=o;c=i;b=k}if(f){continue}break}}return}Va(a,b,c,d,e,f,g)}function Hj(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0;f=ea-16|0;ea=f;J[a+4>>2]=b;J[a+8>>2]=J[b+56>>2];J[a+188>>2]=J[a+184>>2];e=J[b+48>>2];c=ra(32);H[c+19|0]=0;b=K[1278]|K[1279]<<8|(K[1280]<<16|K[1281]<<24);H[c+15|0]=b;H[c+16|0]=b>>>8;H[c+17|0]=b>>>16;H[c+18|0]=b>>>24;b=K[1275]|K[1276]<<8|(K[1277]<<16|K[1278]<<24);d=K[1271]|K[1272]<<8|(K[1273]<<16|K[1274]<<24);H[c+8|0]=d;H[c+9|0]=d>>>8;H[c+10|0]=d>>>16;H[c+11|0]=d>>>24;H[c+12|0]=b;H[c+13|0]=b>>>8;H[c+14|0]=b>>>16;H[c+15|0]=b>>>24;b=K[1267]|K[1268]<<8|(K[1269]<<16|K[1270]<<24);d=K[1263]|K[1264]<<8|(K[1265]<<16|K[1266]<<24);H[c|0]=d;H[c+1|0]=d>>>8;H[c+2|0]=d>>>16;H[c+3|0]=d>>>24;H[c+4|0]=b;H[c+5|0]=b>>>8;H[c+6|0]=b>>>16;H[c+7|0]=b>>>24;a:{b:{b=J[e+4>>2];if(b){while(1){d=K[b+27|0];e=d<<24>>24<0;d=e?J[b+20>>2]:d;h=d>>>0<19;c:{d:{e:{f:{g:{h:{g=h?d:19;if(g){e=e?J[b+16>>2]:b+16|0;i=Ea(c,e,g);if(i){break h}if(d>>>0<=19){break g}break c}if(d>>>0<=19){break f}break c}if((i|0)<0){break c}}d=Ea(e,c,g);if(d){break e}}if(h){break d}break b}if((d|0)>=0){break b}}b=b+4|0}b=J[b>>2];if(b){continue}break}}qa(c);if((eb(J[J[a+4>>2]+48>>2])|0)>=6){H[a+352|0]=1;break a}H[a+352|0]=0;break a}qa(c);e=J[J[a+4>>2]+48>>2];b=ra(32);J[f>>2]=b;J[f+4>>2]=19;J[f+8>>2]=-2147483616;c=K[1278]|K[1279]<<8|(K[1280]<<16|K[1281]<<24);H[b+15|0]=c;H[b+16|0]=c>>>8;H[b+17|0]=c>>>16;H[b+18|0]=c>>>24;c=K[1275]|K[1276]<<8|(K[1277]<<16|K[1278]<<24);d=K[1271]|K[1272]<<8|(K[1273]<<16|K[1274]<<24);H[b+8|0]=d;H[b+9|0]=d>>>8;H[b+10|0]=d>>>16;H[b+11|0]=d>>>24;H[b+12|0]=c;H[b+13|0]=c>>>8;H[b+14|0]=c>>>16;H[b+15|0]=c>>>24;c=K[1267]|K[1268]<<8|(K[1269]<<16|K[1270]<<24);d=K[1263]|K[1264]<<8|(K[1265]<<16|K[1266]<<24);H[b|0]=d;H[b+1|0]=d>>>8;H[b+2|0]=d>>>16;H[b+3|0]=d>>>24;H[b+4|0]=c;H[b+5|0]=c>>>8;H[b+6|0]=c>>>16;H[b+7|0]=c>>>24;H[b+19|0]=0;j=a,k=Qb(e,f,0),H[j+352|0]=k;if(H[f+11|0]>=0){break a}qa(J[f>>2])}ea=f+16|0;return 1} +function Mj(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0;f=ea-16|0;ea=f;J[a+4>>2]=b;J[a+8>>2]=J[b+56>>2];J[a+188>>2]=J[a+184>>2];e=J[b+48>>2];c=ra(32);H[c+19|0]=0;b=K[1278]|K[1279]<<8|(K[1280]<<16|K[1281]<<24);H[c+15|0]=b;H[c+16|0]=b>>>8;H[c+17|0]=b>>>16;H[c+18|0]=b>>>24;b=K[1275]|K[1276]<<8|(K[1277]<<16|K[1278]<<24);d=K[1271]|K[1272]<<8|(K[1273]<<16|K[1274]<<24);H[c+8|0]=d;H[c+9|0]=d>>>8;H[c+10|0]=d>>>16;H[c+11|0]=d>>>24;H[c+12|0]=b;H[c+13|0]=b>>>8;H[c+14|0]=b>>>16;H[c+15|0]=b>>>24;b=K[1267]|K[1268]<<8|(K[1269]<<16|K[1270]<<24);d=K[1263]|K[1264]<<8|(K[1265]<<16|K[1266]<<24);H[c|0]=d;H[c+1|0]=d>>>8;H[c+2|0]=d>>>16;H[c+3|0]=d>>>24;H[c+4|0]=b;H[c+5|0]=b>>>8;H[c+6|0]=b>>>16;H[c+7|0]=b>>>24;a:{b:{b=J[e+4>>2];if(b){while(1){d=K[b+27|0];e=d<<24>>24<0;d=e?J[b+20>>2]:d;h=d>>>0<19;c:{d:{e:{f:{g:{h:{g=h?d:19;if(g){e=e?J[b+16>>2]:b+16|0;i=Ea(c,e,g);if(i){break h}if(d>>>0<=19){break g}break c}if(d>>>0<=19){break f}break c}if((i|0)<0){break c}}d=Ea(e,c,g);if(d){break e}}if(h){break d}break b}if((d|0)>=0){break b}}b=b+4|0}b=J[b>>2];if(b){continue}break}}qa(c);if((eb(J[J[a+4>>2]+48>>2])|0)>=6){H[a+288|0]=1;break a}H[a+288|0]=0;break a}qa(c);e=J[J[a+4>>2]+48>>2];b=ra(32);J[f>>2]=b;J[f+4>>2]=19;J[f+8>>2]=-2147483616;c=K[1278]|K[1279]<<8|(K[1280]<<16|K[1281]<<24);H[b+15|0]=c;H[b+16|0]=c>>>8;H[b+17|0]=c>>>16;H[b+18|0]=c>>>24;c=K[1275]|K[1276]<<8|(K[1277]<<16|K[1278]<<24);d=K[1271]|K[1272]<<8|(K[1273]<<16|K[1274]<<24);H[b+8|0]=d;H[b+9|0]=d>>>8;H[b+10|0]=d>>>16;H[b+11|0]=d>>>24;H[b+12|0]=c;H[b+13|0]=c>>>8;H[b+14|0]=c>>>16;H[b+15|0]=c>>>24;c=K[1267]|K[1268]<<8|(K[1269]<<16|K[1270]<<24);d=K[1263]|K[1264]<<8|(K[1265]<<16|K[1266]<<24);H[b|0]=d;H[b+1|0]=d>>>8;H[b+2|0]=d>>>16;H[b+3|0]=d>>>24;H[b+4|0]=c;H[b+5|0]=c>>>8;H[b+6|0]=c>>>16;H[b+7|0]=c>>>24;H[b+19|0]=0;j=a,k=Qb(e,f,0),H[j+288|0]=k;if(H[f+11|0]>=0){break a}qa(J[f>>2])}ea=f+16|0;return 1}function oh(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0;c=ea-32|0;ea=c;d=a- -64|0;Da(J[d>>2],b);if(J[d>>2]){J[c>>2]=0;J[c+4>>2]=0;J[c+24>>2]=0;J[c+28>>2]=0;J[c+16>>2]=0;J[c+20>>2]=0;J[c+8>>2]=0;J[c+12>>2]=0;Ca(c);d=J[a+64>>2];if((d|0)>0){while(1){f=d-1|0;Ga(c,J[J[a+60>>2]+(f>>>3&536870908)>>2]>>>f&1);e=d>>>0>1;d=f;if(e){continue}break}}Ba(c,b);Aa(c)}Da(J[a+76>>2],b);if(J[a+76>>2]){J[c>>2]=0;J[c+4>>2]=0;J[c+24>>2]=0;J[c+28>>2]=0;J[c+16>>2]=0;J[c+20>>2]=0;J[c+8>>2]=0;J[c+12>>2]=0;Ca(c);d=J[a+76>>2];if((d|0)>=2){while(1){f=d-2|0;Ga(c,J[J[a+72>>2]+(f>>>3&536870908)>>2]>>>f&1);e=d-1|0;Ga(c,J[J[a+72>>2]+(e>>>3&536870908)>>2]>>>e&1);e=d>>>0>3;d=f;if(e){continue}break}}Ba(c,b);Aa(c)}Da(J[a+88>>2],b);if(J[a+88>>2]){J[c>>2]=0;J[c+4>>2]=0;J[c+24>>2]=0;J[c+28>>2]=0;J[c+16>>2]=0;J[c+20>>2]=0;J[c+8>>2]=0;J[c+12>>2]=0;Ca(c);d=J[a+88>>2];if((d|0)>=3){while(1){f=d-3|0;Ga(c,J[J[a+84>>2]+(f>>>3&536870908)>>2]>>>f&1);e=d-2|0;Ga(c,J[J[a+84>>2]+(e>>>3&536870908)>>2]>>>e&1);e=d-1|0;Ga(c,J[J[a+84>>2]+(e>>>3&536870908)>>2]>>>e&1);e=d>>>0>5;d=f;if(e){continue}break}}Ba(c,b);Aa(c)}Da(J[a+100>>2],b);if(J[a+100>>2]){J[c>>2]=0;J[c+4>>2]=0;J[c+24>>2]=0;J[c+28>>2]=0;J[c+16>>2]=0;J[c+20>>2]=0;J[c+8>>2]=0;J[c+12>>2]=0;Ca(c);d=J[a+100>>2];if((d|0)>=4){while(1){f=d-4|0;Ga(c,J[J[a+96>>2]+(f>>>3&536870908)>>2]>>>f&1);e=d-3|0;Ga(c,J[J[a+96>>2]+(e>>>3&536870908)>>2]>>>e&1);e=d-2|0;Ga(c,J[J[a+96>>2]+(e>>>3&536870908)>>2]>>>e&1);e=d-1|0;Ga(c,J[J[a+96>>2]+(e>>>3&536870908)>>2]>>>e&1);e=d>>>0>7;d=f;if(e){continue}break}}Ba(c,b);Aa(c)}J[c>>2]=J[a+12>>2];d=J[b+20>>2];a:{if(!!J[b+16>>2]&(d|0)>=0|(d|0)>0){break a}f=c+4|0;wa(b,J[b+4>>2],c,f);d=J[b+20>>2];e=J[b+16>>2];J[c>>2]=J[a+16>>2];if(!!e&(d|0)>=0|(d|0)>0){break a}wa(b,J[b+4>>2],c,f)}ea=c+32|0;return 1}function dh(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0;c=ea-32|0;ea=c;Da(J[a+48>>2],b);if(J[a+48>>2]){J[c>>2]=0;J[c+4>>2]=0;J[c+24>>2]=0;J[c+28>>2]=0;J[c+16>>2]=0;J[c+20>>2]=0;J[c+8>>2]=0;J[c+12>>2]=0;Ca(c);d=J[a+48>>2];if((d|0)>0){while(1){f=d-1|0;Ga(c,J[J[a+44>>2]+(f>>>3&536870908)>>2]>>>f&1);e=d>>>0>1;d=f;if(e){continue}break}}Ba(c,b);Aa(c)}Da(J[a+60>>2],b);if(J[a+60>>2]){J[c>>2]=0;J[c+4>>2]=0;J[c+24>>2]=0;J[c+28>>2]=0;J[c+16>>2]=0;J[c+20>>2]=0;J[c+8>>2]=0;J[c+12>>2]=0;Ca(c);d=J[a+60>>2];if((d|0)>=2){while(1){f=d-2|0;Ga(c,J[J[a+56>>2]+(f>>>3&536870908)>>2]>>>f&1);e=d-1|0;Ga(c,J[J[a+56>>2]+(e>>>3&536870908)>>2]>>>e&1);e=d>>>0>3;d=f;if(e){continue}break}}Ba(c,b);Aa(c)}Da(J[a+72>>2],b);if(J[a+72>>2]){J[c>>2]=0;J[c+4>>2]=0;J[c+24>>2]=0;J[c+28>>2]=0;J[c+16>>2]=0;J[c+20>>2]=0;J[c+8>>2]=0;J[c+12>>2]=0;Ca(c);d=J[a+72>>2];if((d|0)>=3){while(1){f=d-3|0;Ga(c,J[J[a+68>>2]+(f>>>3&536870908)>>2]>>>f&1);e=d-2|0;Ga(c,J[J[a+68>>2]+(e>>>3&536870908)>>2]>>>e&1);e=d-1|0;Ga(c,J[J[a+68>>2]+(e>>>3&536870908)>>2]>>>e&1);e=d>>>0>5;d=f;if(e){continue}break}}Ba(c,b);Aa(c)}Da(J[a+84>>2],b);if(J[a+84>>2]){J[c>>2]=0;J[c+4>>2]=0;J[c+24>>2]=0;J[c+28>>2]=0;J[c+16>>2]=0;J[c+20>>2]=0;J[c+8>>2]=0;J[c+12>>2]=0;Ca(c);d=J[a+84>>2];if((d|0)>=4){while(1){f=d-4|0;Ga(c,J[J[a+80>>2]+(f>>>3&536870908)>>2]>>>f&1);e=d-3|0;Ga(c,J[J[a+80>>2]+(e>>>3&536870908)>>2]>>>e&1);e=d-2|0;Ga(c,J[J[a+80>>2]+(e>>>3&536870908)>>2]>>>e&1);e=d-1|0;Ga(c,J[J[a+80>>2]+(e>>>3&536870908)>>2]>>>e&1);e=d>>>0>7;d=f;if(e){continue}break}}Ba(c,b);Aa(c)}J[c>>2]=J[a+12>>2];d=J[b+20>>2];a:{if(!!J[b+16>>2]&(d|0)>=0|(d|0)>0){break a}f=c+4|0;wa(b,J[b+4>>2],c,f);d=J[b+20>>2];e=J[b+16>>2];J[c>>2]=J[a+24>>2];if(!!e&(d|0)>=0|(d|0)>0){break a}wa(b,J[b+4>>2],c,f)}ea=c+32|0;return 1}function rk(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0;d=ea-32|0;ea=d;o=e<<2;f=e>>>0>1073741823?-1:o;l=sa(ra(f),0,f);f=J[a+40>>2];f=J[f+4>>2]-J[f>>2]|0;if((f|0)>=5){q=J[a+36>>2];p=J[a+32>>2];r=e&-2;s=e&1;t=a+8|0;f=f>>>2|0;while(1){j=J[a+40>>2];g=J[j>>2];a:{b:{h=J[j+4>>2]-g>>2;j=f-1|0;if(h>>>0>j>>>0){u=P(e,j);g=J[g+(j<<2)>>2];if((g|0)==-1){break b}g=J[J[p+12>>2]+(g<<2)>>2];if((g|0)==-1){break b}k=J[q>>2];h=J[p>>2];m=J[k+(J[h+(g<<2)>>2]<<2)>>2];i=g+1|0;i=(i>>>0)%3|0?i:g-2|0;if((i|0)!=-1){i=J[h+(i<<2)>>2]}else{i=-1}c:{d:{if((g>>>0)%3|0){g=g-1|0;break d}g=g+2|0;n=-1;if((g|0)==-1){break c}}n=J[h+(g<<2)>>2]}if((j|0)<=(m|0)){break b}g=J[(i<<2)+k>>2];if((g|0)>=(j|0)){break b}h=J[k+(n<<2)>>2];if((h|0)>=(j|0)){break b}e:{if((e|0)<=0){break e}h=P(e,h);k=P(e,g);m=P(e,m);g=0;n=0;if((e|0)!=1){while(1){J[(g<<2)+l>>2]=(J[(g+h<<2)+b>>2]+J[(g+k<<2)+b>>2]|0)-J[(g+m<<2)+b>>2];i=g|1;J[(i<<2)+l>>2]=(J[(h+i<<2)+b>>2]+J[(i+k<<2)+b>>2]|0)-J[(i+m<<2)+b>>2];g=g+2|0;n=n+2|0;if((r|0)!=(n|0)){continue}break}}if(!s){break e}J[(g<<2)+l>>2]=(J[(g+h<<2)+b>>2]+J[(g+k<<2)+b>>2]|0)-J[(g+m<<2)+b>>2]}g=J[l>>2];h=J[l+4>>2];break a}va();B()}h=(P(f-2|0,e)<<2)+b|0;g=J[h>>2];h=J[h+4>>2]}k=u<<2;m=k+b|0;i=J[m+4>>2];J[d+16>>2]=J[m>>2];J[d+20>>2]=i;J[d+8>>2]=g;J[d+12>>2]=h;_a(d+24|0,t,d+16|0,d+8|0);g=c+k|0;J[g>>2]=J[d+24>>2];J[g+4>>2]=J[d+28>>2];g=(f|0)>2;f=j;if(g){continue}break}}if((e|0)>0){sa(l,0,o)}e=J[l>>2];f=J[l+4>>2];j=J[b+4>>2];J[d+16>>2]=J[b>>2];J[d+20>>2]=j;J[d+8>>2]=e;J[d+12>>2]=f;_a(d+24|0,a+8|0,d+16|0,d+8|0);J[c>>2]=J[d+24>>2];J[c+4>>2]=J[d+28>>2];qa(l);ea=d+32|0;return 1}function bf(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0;k=ea-16|0;ea=k;J[k+8>>2]=c;e=J[a+12>>2];d=J[a+8>>2];f=e-d>>2;a:{if((f|0)>(b|0)){break a}h=b+1|0;if(h>>>0>f>>>0){f=h-f|0;g=J[a+16>>2];d=J[a+12>>2];if(f>>>0<=g-d>>2>>>0){if(f){e=d;d=f<<2;d=sa(e,0,d)+d|0}J[a+12>>2]=d;break a}b:{c:{d:{h=J[a+8>>2];i=d-h>>2;e=i+f|0;if(e>>>0<1073741824){g=g-h|0;l=g>>1;g=g>>>0>=2147483644?1073741823:e>>>0>>0?l:e;if(g){if(g>>>0>=1073741824){break d}j=ra(g<<2)}e=(i<<2)+j|0;i=f<<2;f=sa(e,0,i);i=f+i|0;g=(g<<2)+j|0;if((d|0)==(h|0)){break c}while(1){d=d-4|0;f=J[d>>2];J[d>>2]=0;e=e-4|0;J[e>>2]=f;if((d|0)!=(h|0)){continue}break}J[a+16>>2]=g;f=J[a+12>>2];J[a+12>>2]=i;d=J[a+8>>2];J[a+8>>2]=e;if((d|0)==(f|0)){break b}while(1){f=f-4|0;e=J[f>>2];J[f>>2]=0;if(e){Oa(e)}if((d|0)!=(f|0)){continue}break}break b}ua();B()}ya();B()}J[a+16>>2]=g;J[a+12>>2]=i;J[a+8>>2]=f}if(d){qa(d)}break a}if(f>>>0<=h>>>0){break a}d=d+(h<<2)|0;if((d|0)!=(e|0)){while(1){e=e-4|0;c=J[e>>2];J[e>>2]=0;if(c){Oa(c)}if((d|0)!=(e|0)){continue}break}c=J[k+8>>2]}J[a+12>>2]=d}e:{f:{d=J[c+56>>2];g:{if((d|0)>4){break g}e=P(d,12)+a|0;d=J[e+24>>2];if((d|0)!=J[e+28>>2]){J[d>>2]=b;J[e+24>>2]=d+4;break g}h=J[e+20>>2];f=d-h|0;j=f>>2;d=j+1|0;if(d>>>0>=1073741824){break f}g=f>>1;g=f>>>0>=2147483644?1073741823:d>>>0>>0?g:d;if(g){if(g>>>0>=1073741824){break e}d=ra(g<<2)}else{d=0}j=d+(j<<2)|0;J[j>>2]=b;if((f|0)>0){ta(d,h,f)}J[e+20>>2]=d;J[e+24>>2]=j+4;J[e+28>>2]=d+(g<<2);if(!h){break g}qa(h)}J[c+60>>2]=b;a=J[a+8>>2];J[k+8>>2]=0;b=a+(b<<2)|0;a=J[b>>2];J[b>>2]=c;if(a){Oa(a)}a=J[k+8>>2];J[k+8>>2]=0;if(a){Oa(a)}ea=k+16|0;return}ua();B()}ya();B()}function hf(a,b,c,d){var e=0,f=0,g=0,h=0,i=Q(0),j=0,k=0,l=Q(0);j=J[c>>2];g=j^318;a:{b:{f=J[b+4>>2];if(!f){break b}h=Dl(f);c:{if(h>>>0>=2){e=g;if(e>>>0>=f>>>0){e=(g>>>0)%(f>>>0)|0}c=J[J[b>>2]+(e<<2)>>2];if(!c){break b}if(h>>>0<=1){break c}while(1){c=J[c>>2];if(!c){break b}h=J[c+4>>2];if((h|0)!=(g|0)){if(f>>>0<=h>>>0){h=(h>>>0)%(f>>>0)|0}if((e|0)!=(h|0)){break b}}if(J[c+8>>2]!=(j|0)){continue}break}b=0;break a}e=f-1&g;c=J[J[b>>2]+(e<<2)>>2];if(!c){break b}}h=f-1|0;while(1){c=J[c>>2];if(!c){break b}k=J[c+4>>2];if((k|0)!=(g|0)&(h&k)!=(e|0)){break b}if(J[c+8>>2]!=(j|0)){continue}break}b=0;break a}c=ra(16);J[c+8>>2]=J[d>>2];d=J[d+4>>2];J[c+4>>2]=g;J[c+12>>2]=d;J[c>>2]=0;i=Q(J[b+12>>2]+1>>>0);l=N[b+16>>2];d:{if(i>Q(l*Q(f>>>0))?0:f){break d}d=2;h=(f-1&f)!=0|f>>>0<3|f<<1;i=Q(W(Q(i/l)));e:{if(i=Q(0)){e=~~i>>>0;break e}e=0}e=e>>>0>>0?h:e;f:{if((e|0)==1){break f}if(!(e&e-1)){d=e;break f}d=Ka(e);f=J[b+4>>2]}g:{if(d>>>0<=f>>>0){if(d>>>0>=f>>>0){break g}h=f>>>0<3;i=Q(W(Q(Q(M[b+12>>2])/N[b+16>>2])));h:{if(i=Q(0)){e=~~i>>>0;break h}e=0}i:{j:{if(h){break j}if(Dl(f)>>>0>1){break j}e=e>>>0<2?e:1<<32-S(e-1|0);break i}e=Ka(e)}d=d>>>0>e>>>0?d:e;if(f>>>0<=d>>>0){break g}}af(b,d)}f=J[b+4>>2];d=f-1|0;if(!(d&f)){e=d&g;break d}if(f>>>0>g>>>0){e=g;break d}e=(g>>>0)%(f>>>0)|0}g=J[b>>2]+(e<<2)|0;d=J[g>>2];k:{l:{if(!d){d=b+8|0;J[c>>2]=J[d>>2];J[b+8>>2]=c;J[g>>2]=d;d=J[c>>2];if(!d){break k}d=J[d+4>>2];g=f-1|0;m:{if(!(g&f)){d=d&g;break m}if(d>>>0>>0){break m}d=(d>>>0)%(f>>>0)|0}d=J[b>>2]+(d<<2)|0;break l}J[c>>2]=J[d>>2]}J[d>>2]=c}J[b+12>>2]=J[b+12>>2]+1;b=1}H[a+4|0]=b;J[a>>2]=c}function Yk(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0;J[a+8>>2]=e;J[a- -64>>2]=f;o=a+32|0;f=J[o>>2];g=J[a+36>>2]-f>>2;a:{if(g>>>0>>0){Fa(o,e-g|0);break a}if(e>>>0>=g>>>0){break a}J[a+36>>2]=f+(e<<2)}b:{if(!d){break b}f=J[b>>2];c:{if((d|0)<2){d=f;break c}h=1;g=d-1|0;n=g&1;d:{if((d|0)==2){d=f;break d}q=g&-2;g=0;d=f;while(1){j=(h<<2)+b|0;k=J[j+4>>2];l=J[j>>2];i=(l|0)<(d|0);d=i?l:d;j=(d|0)>(k|0);d=j?k:d;f=i?f:(f|0)<(l|0)?l:f;f=j?f:(f|0)<(k|0)?k:f;h=h+2|0;g=g+2|0;if((q|0)!=(g|0)){continue}break}}if(!n){break c}h=J[(h<<2)+b>>2];g=(h|0)<(d|0);d=g?h:d;f=g?f:(f|0)<(h|0)?h:f}J[a+16>>2]=f;J[a+12>>2]=d;g=(f>>31)-((d>>31)+(d>>>0>f>>>0)|0)|0;d=f-d|0;if(!g&d>>>0>2147483646|g){break b}f=d+1|0;J[a+20>>2]=f;d=f>>>1|0;J[a+24>>2]=d;J[a+28>>2]=0-d;if(f&1){break b}J[a+24>>2]=d-1}r=1;e:{d=J[a+56>>2];d=J[d+4>>2]-J[d>>2]|0;if((d|0)>0){t=a+60|0;q=a+68|0;n=d>>>2|0;while(1){d=J[a+56>>2];f=J[d>>2];i=n-1|0;if(i>>>0>=J[d+4>>2]-f>>2>>>0){break e}r=kh(t,J[f+(i<<2)>>2],b,i);if(!r){return 0}f=J[a+8>>2];if((f|0)>0){d=P(e,i)<<2;k=d+c|0;l=b+d|0;j=J[o>>2];p=0;g=q;while(1){h=j;if((f|0)>0){h=J[o>>2];f=0;while(1){m=f<<2;s=J[m+g>>2];d=J[a+16>>2];f:{if((s|0)>(d|0)){J[h+m>>2]=d;break f}m=h+m|0;d=J[a+12>>2];if((d|0)>(s|0)){J[m>>2]=d;break f}J[m>>2]=s}f=f+1|0;if((f|0)>2]){continue}break}}f=p<<2;d=f+k|0;f=J[f+l>>2]-J[f+h>>2]|0;J[d>>2]=f;g:{if((f|0)>2]){f=f+J[a+20>>2]|0}else{if((f|0)<=J[a+24>>2]){break g}f=f-J[a+20>>2]|0}J[d>>2]=f}g=h;f=J[a+8>>2];p=p+1|0;if((f|0)>(p|0)){continue}break}}d=(n|0)>1;n=i;if(d){continue}break}}return r|0}va();B()}function Ok(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0;J[a+8>>2]=e;J[a- -64>>2]=f;o=a+32|0;f=J[o>>2];g=J[a+36>>2]-f>>2;a:{if(g>>>0>>0){Fa(o,e-g|0);break a}if(e>>>0>=g>>>0){break a}J[a+36>>2]=f+(e<<2)}b:{if(!d){break b}f=J[b>>2];c:{if((d|0)<2){d=f;break c}h=1;g=d-1|0;n=g&1;d:{if((d|0)==2){d=f;break d}q=g&-2;g=0;d=f;while(1){j=(h<<2)+b|0;k=J[j+4>>2];l=J[j>>2];i=(l|0)<(d|0);d=i?l:d;j=(d|0)>(k|0);d=j?k:d;f=i?f:(f|0)<(l|0)?l:f;f=j?f:(f|0)<(k|0)?k:f;h=h+2|0;g=g+2|0;if((q|0)!=(g|0)){continue}break}}if(!n){break c}h=J[(h<<2)+b>>2];g=(h|0)<(d|0);d=g?h:d;f=g?f:(f|0)<(h|0)?h:f}J[a+16>>2]=f;J[a+12>>2]=d;g=(f>>31)-((d>>31)+(d>>>0>f>>>0)|0)|0;d=f-d|0;if(!g&d>>>0>2147483646|g){break b}f=d+1|0;J[a+20>>2]=f;d=f>>>1|0;J[a+24>>2]=d;J[a+28>>2]=0-d;if(f&1){break b}J[a+24>>2]=d-1}r=1;e:{d=J[a+56>>2];d=J[d+4>>2]-J[d>>2]|0;if((d|0)>0){t=a+60|0;q=a+68|0;n=d>>>2|0;while(1){d=J[a+56>>2];f=J[d>>2];i=n-1|0;if(i>>>0>=J[d+4>>2]-f>>2>>>0){break e}r=fh(t,J[f+(i<<2)>>2],b,i);if(!r){return 0}f=J[a+8>>2];if((f|0)>0){d=P(e,i)<<2;k=d+c|0;l=b+d|0;j=J[o>>2];p=0;g=q;while(1){h=j;if((f|0)>0){h=J[o>>2];f=0;while(1){m=f<<2;s=J[m+g>>2];d=J[a+16>>2];f:{if((s|0)>(d|0)){J[h+m>>2]=d;break f}m=h+m|0;d=J[a+12>>2];if((d|0)>(s|0)){J[m>>2]=d;break f}J[m>>2]=s}f=f+1|0;if((f|0)>2]){continue}break}}f=p<<2;d=f+k|0;f=J[f+l>>2]-J[f+h>>2]|0;J[d>>2]=f;g:{if((f|0)>2]){f=f+J[a+20>>2]|0}else{if((f|0)<=J[a+24>>2]){break g}f=f-J[a+20>>2]|0}J[d>>2]=f}g=h;f=J[a+8>>2];p=p+1|0;if((f|0)>(p|0)){continue}break}}d=(n|0)>1;n=i;if(d){continue}break}}return r|0}va();B()}function Yf(a,b,c,d){var e=0,f=0,g=0,h=0,i=Q(0),j=0,k=Q(0);h=J[c>>2];a:{b:{e=J[b+4>>2];if(!e){break b}g=Dl(e);c:{if(g>>>0>=2){f=h;if(f>>>0>=e>>>0){f=(h>>>0)%(e>>>0)|0}c=J[J[b>>2]+(f<<2)>>2];if(!c){break b}if(g>>>0<=1){break c}while(1){c=J[c>>2];if(!c){break b}g=J[c+4>>2];if((g|0)!=(h|0)){if(e>>>0<=g>>>0){g=(g>>>0)%(e>>>0)|0}if((f|0)!=(g|0)){break b}}if(J[c+8>>2]!=(h|0)){continue}break}b=0;break a}f=e-1&h;c=J[J[b>>2]+(f<<2)>>2];if(!c){break b}}g=e-1|0;while(1){c=J[c>>2];if(!c){break b}j=J[c+4>>2];if((j|0)!=(h|0)&(g&j)!=(f|0)){break b}if(J[c+8>>2]!=(h|0)){continue}break}b=0;break a}c=ra(16);d=J[J[d>>2]>>2];J[c+12>>2]=0;J[c+8>>2]=d;J[c+4>>2]=h;J[c>>2]=0;k=Q(J[b+12>>2]+1>>>0);i=N[b+16>>2];d:{if(k>Q(i*Q(e>>>0))?0:e){break d}f=2;g=(e-1&e)!=0|e>>>0<3|e<<1;i=Q(W(Q(k/i)));e:{if(i=Q(0)){d=~~i>>>0;break e}d=0}d=d>>>0>>0?g:d;f:{if((d|0)==1){break f}if(!(d&d-1)){f=d;break f}f=Ka(d);e=J[b+4>>2]}g:{if(e>>>0>=f>>>0){if(e>>>0<=f>>>0){break g}g=e>>>0<3;i=Q(W(Q(Q(M[b+12>>2])/N[b+16>>2])));h:{if(i=Q(0)){d=~~i>>>0;break h}d=0}i:{j:{if(g){break j}if(Dl(e)>>>0>1){break j}d=d>>>0<2?d:1<<32-S(d-1|0);break i}d=Ka(d)}f=d>>>0>>0?f:d;if(f>>>0>=e>>>0){break g}}af(b,f)}e=J[b+4>>2];d=e-1|0;if(!(d&e)){f=d&h;break d}if(e>>>0>h>>>0){f=h;break d}f=(h>>>0)%(e>>>0)|0}f=J[b>>2]+(f<<2)|0;d=J[f>>2];k:{l:{if(!d){d=b+8|0;J[c>>2]=J[d>>2];J[b+8>>2]=c;J[f>>2]=d;d=J[c>>2];if(!d){break k}d=J[d+4>>2];f=e-1|0;m:{if(!(f&e)){d=d&f;break m}if(d>>>0>>0){break m}d=(d>>>0)%(e>>>0)|0}d=J[b>>2]+(d<<2)|0;break l}J[c>>2]=J[d>>2]}J[d>>2]=c}J[b+12>>2]=J[b+12>>2]+1;b=1}H[a+4|0]=b;J[a>>2]=c}function Dk(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0;d=ea-32|0;ea=d;p=e<<2;f=e>>>0>1073741823?-1:p;l=sa(ra(f),0,f);f=J[a+40>>2];f=J[f+4>>2]-J[f>>2]|0;if((f|0)>=5){q=J[a+36>>2];n=J[a+32>>2];r=e&-2;s=e&1;t=a+8|0;f=f>>>2|0;while(1){i=J[a+40>>2];g=J[i>>2];a:{b:{h=J[i+4>>2]-g>>2;i=f-1|0;if(h>>>0>i>>>0){u=P(e,i);g=J[g+(i<<2)>>2];if((g|0)==-1|J[J[n>>2]+(g>>>3&536870908)>>2]>>>g&1){break b}g=J[J[J[n+64>>2]+12>>2]+(g<<2)>>2];if((g|0)==-1){break b}k=J[q>>2];h=J[n+28>>2];m=J[k+(J[h+(g<<2)>>2]<<2)>>2];if((m|0)>=(i|0)){break b}j=g+1|0;j=J[k+(J[h+(((j>>>0)%3|0?j:g-2|0)<<2)>>2]<<2)>>2];if((j|0)>=(i|0)){break b}g=J[k+(J[h+(g+((g>>>0)%3|0?-1:2)<<2)>>2]<<2)>>2];if((g|0)>=(i|0)){break b}c:{if((e|0)<=0){break c}h=P(e,g);k=P(e,j);m=P(e,m);g=0;o=0;if((e|0)!=1){while(1){J[(g<<2)+l>>2]=(J[(g+h<<2)+b>>2]+J[(g+k<<2)+b>>2]|0)-J[(g+m<<2)+b>>2];j=g|1;J[(j<<2)+l>>2]=(J[(h+j<<2)+b>>2]+J[(j+k<<2)+b>>2]|0)-J[(j+m<<2)+b>>2];g=g+2|0;o=o+2|0;if((r|0)!=(o|0)){continue}break}}if(!s){break c}J[(g<<2)+l>>2]=(J[(g+h<<2)+b>>2]+J[(g+k<<2)+b>>2]|0)-J[(g+m<<2)+b>>2]}g=J[l>>2];h=J[l+4>>2];break a}va();B()}h=(P(f-2|0,e)<<2)+b|0;g=J[h>>2];h=J[h+4>>2]}k=u<<2;m=k+b|0;j=J[m+4>>2];J[d+16>>2]=J[m>>2];J[d+20>>2]=j;J[d+8>>2]=g;J[d+12>>2]=h;_a(d+24|0,t,d+16|0,d+8|0);g=c+k|0;J[g>>2]=J[d+24>>2];J[g+4>>2]=J[d+28>>2];g=(f|0)>2;f=i;if(g){continue}break}}if((e|0)>0){sa(l,0,p)}e=J[l>>2];f=J[l+4>>2];i=J[b+4>>2];J[d+16>>2]=J[b>>2];J[d+20>>2]=i;J[d+8>>2]=e;J[d+12>>2]=f;_a(d+24|0,a+8|0,d+16|0,d+8|0);J[c>>2]=J[d+24>>2];J[c+4>>2]=J[d+28>>2];qa(l);ea=d+32|0;return 1}function Ba(a,b){var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0;g=ea-32|0;ea=g;e=J[a>>2];d=J[e>>2];c=J[e+4>>2];j=+(d>>>0)+ +(c>>>0)*4294967296;c=J[e+12>>2]+c|0;e=J[e+8>>2];d=e+d|0;c=d>>>0>>0?c+1|0:c;e=!(c|d);j=j/(+((e?1:d)>>>0)+ +((e?0:c)>>>0)*4294967296)*256+.5;a:{if(j<4294967296&j>=0){c=~~j>>>0;break a}c=0}c=c>>>0>=255?255:c;k=!c+c|0;H[g+23|0]=k;i=J[a+16>>2];n=J[a+12>>2];J[g+16>>2]=0;J[g+8>>2]=0;J[g+12>>2]=0;b:{c:{c=(i-n<<1)- -64|0;if(c){if((c|0)<0){break c}h=ra(c);sa(h,0,c)}c=J[a+28>>2]-1|0;if((c|0)<0){d=4096;break b}l=0-k|0;o=l&255;p=J[a+24>>2];d=4096;while(1){m=p&1<>>0<=d>>>0){H[f+h|0]=d;f=f+1|0;d=d>>>8|0}q=256-e|0;e=(e<<3)+12784|0;Al(J[e>>2],0,d,0);d=((m?0:o)+d|0)+P(q,fa+d>>>J[e+4>>2]|0)|0;c=c-1|0;if((c|0)>=0){continue}break}break b}ua();B()}if((i|0)!=(n|0)){l=0-k|0;o=l&255;while(1){i=i-4|0;p=J[i>>2];c=31;while(1){e=c;m=p&1<>>0<=d>>>0){H[f+h|0]=d;f=f+1|0;d=d>>>8|0}q=256-c|0;c=(c<<3)+12784|0;Al(J[c>>2],0,d,0);d=((m?0:o)+d|0)+P(q,fa+d>>>J[c+4>>2]|0)|0;c=e-1|0;if(e){continue}break}if((i|0)!=(n|0)){continue}break}}c=d-4096|0;d:{if(c>>>0<=63){H[f+h|0]=d;f=f+1|0;break d}if(c>>>0<=16383){c=f+h|0;H[c|0]=d;H[c+1|0]=d+12288>>>8;f=f+2|0;break d}if(c>>>0>4194303){break d}c=f+h|0;H[c|0]=d;e=d+8384512|0;H[c+2|0]=e>>>16;H[c+1|0]=e>>>8;f=f+3|0}c=J[b+20>>2];if(!J[b+16>>2]&(c|0)<=0|(c|0)<0){wa(b,J[b+4>>2],g+23|0,g+24|0)}Da(f,b);c=J[b+20>>2];if(!J[b+16>>2]&(c|0)<=0|(c|0)<0){wa(b,J[b+4>>2],h,f+h|0)}J[g+24>>2]=0;J[g+28>>2]=0;$d(a,g+24|0);J[a+24>>2]=0;J[a+28>>2]=0;J[a+16>>2]=J[a+12>>2];if(h){qa(h)}ea=g+32|0}function _d(a){var b=0,c=0,d=0,e=0;d=ea-16|0;ea=d;J[a+4>>2]=0;J[a+8>>2]=0;c=a+16|0;b=c;J[b>>2]=0;J[b+4>>2]=0;J[a>>2]=a+4;b=a+28|0;J[b>>2]=0;J[b+4>>2]=0;J[a+12>>2]=c;J[a+24>>2]=b;b=ra(32);J[d>>2]=b;J[d+4>>2]=20;J[d+8>>2]=-2147483616;c=K[1359]|K[1360]<<8|(K[1361]<<16|K[1362]<<24);H[b+16|0]=c;H[b+17|0]=c>>>8;H[b+18|0]=c>>>16;H[b+19|0]=c>>>24;c=K[1355]|K[1356]<<8|(K[1357]<<16|K[1358]<<24);e=K[1351]|K[1352]<<8|(K[1353]<<16|K[1354]<<24);H[b+8|0]=e;H[b+9|0]=e>>>8;H[b+10|0]=e>>>16;H[b+11|0]=e>>>24;H[b+12|0]=c;H[b+13|0]=c>>>8;H[b+14|0]=c>>>16;H[b+15|0]=c>>>24;c=K[1347]|K[1348]<<8|(K[1349]<<16|K[1350]<<24);e=K[1343]|K[1344]<<8|(K[1345]<<16|K[1346]<<24);H[b|0]=e;H[b+1|0]=e>>>8;H[b+2|0]=e>>>16;H[b+3|0]=e>>>24;H[b+4|0]=c;H[b+5|0]=c>>>8;H[b+6|0]=c>>>16;H[b+7|0]=c>>>24;H[b+20|0]=0;e=a+24|0;wb(e,d,1);if(H[d+11|0]<0){qa(J[d>>2])}a=ra(32);J[d>>2]=a;J[d+4>>2]=22;J[d+8>>2]=-2147483616;b=K[1338]|K[1339]<<8|(K[1340]<<16|K[1341]<<24);c=K[1334]|K[1335]<<8|(K[1336]<<16|K[1337]<<24);H[a+14|0]=c;H[a+15|0]=c>>>8;H[a+16|0]=c>>>16;H[a+17|0]=c>>>24;H[a+18|0]=b;H[a+19|0]=b>>>8;H[a+20|0]=b>>>16;H[a+21|0]=b>>>24;b=K[1332]|K[1333]<<8|(K[1334]<<16|K[1335]<<24);c=K[1328]|K[1329]<<8|(K[1330]<<16|K[1331]<<24);H[a+8|0]=c;H[a+9|0]=c>>>8;H[a+10|0]=c>>>16;H[a+11|0]=c>>>24;H[a+12|0]=b;H[a+13|0]=b>>>8;H[a+14|0]=b>>>16;H[a+15|0]=b>>>24;b=K[1324]|K[1325]<<8|(K[1326]<<16|K[1327]<<24);c=K[1320]|K[1321]<<8|(K[1322]<<16|K[1323]<<24);H[a|0]=c;H[a+1|0]=c>>>8;H[a+2|0]=c>>>16;H[a+3|0]=c>>>24;H[a+4|0]=b;H[a+5|0]=b>>>8;H[a+6|0]=b>>>16;H[a+7|0]=b>>>24;H[a+22|0]=0;wb(e,d,1);if(H[d+11|0]<0){qa(J[d>>2])}ea=d+16|0}function Hc(a,b){var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0;c=ea-112|0;ea=c;d=ra(120);i=J[a+8>>2];J[d+12>>2]=0;J[d+16>>2]=0;J[d>>2]=11224;J[d+4>>2]=0;J[d+20>>2]=0;J[d+24>>2]=0;J[d+28>>2]=0;J[d+32>>2]=0;J[d+36>>2]=0;J[d+40>>2]=0;J[d+44>>2]=0;J[d+48>>2]=0;J[d+52>>2]=0;J[d+56>>2]=0;J[d+60>>2]=0;J[d+8>>2]=11436;e=d- -64|0;J[e>>2]=0;J[e+4>>2]=0;J[d+72>>2]=0;J[d+76>>2]=0;J[d+80>>2]=0;J[d+84>>2]=0;J[d+88>>2]=0;J[d+116>>2]=0;J[d+112>>2]=b;J[d+108>>2]=i;J[d+104>>2]=0;J[d+96>>2]=0;J[d+100>>2]=0;g=J[a+12>>2];J[c+48>>2]=0;J[c+52>>2]=0;J[c+40>>2]=0;J[c+44>>2]=0;f=c+32|0;e=f;J[e>>2]=0;J[e+4>>2]=0;J[c+24>>2]=0;J[c+28>>2]=0;e=c- -64|0;J[e>>2]=0;J[e+4>>2]=0;J[c+72>>2]=0;J[c+76>>2]=0;J[c+80>>2]=0;J[c+84>>2]=0;J[c+88>>2]=0;J[c+104>>2]=0;J[c+16>>2]=0;J[c+20>>2]=0;J[c+56>>2]=0;J[c+60>>2]=0;J[c+8>>2]=11436;J[c+96>>2]=0;J[c+100>>2]=0;J[c+12>>2]=g;h=J[g>>2];e=J[g+4>>2];H[c+111|0]=0;j=f;f=c+111|0;Qa(j,(e-h>>2>>>0)/3|0,f);e=J[c+12>>2];h=J[e+28>>2];e=J[e+24>>2];H[c+111|0]=0;Qa(c+44|0,h-e>>2,f);J[c+28>>2]=d;J[c+24>>2]=i;J[c+20>>2]=b;J[c+16>>2]=g;J[d+116>>2]=a+72;a=d+8|0;b=c+8|0;Ic(a,b);a:{if((a|0)==(b|0)){J[d+92>>2]=J[b+84>>2];break a}Sb(d+56|0,J[b+48>>2],J[b+52>>2]);Sb(d+68|0,J[b+60>>2],J[b- -64>>2]);Sb(d+80|0,J[b+72>>2],J[b+76>>2]);J[d+92>>2]=J[b+84>>2];cb(d+96|0,J[b+88>>2],J[b+92>>2])}J[c+8>>2]=11436;a=J[c+96>>2];if(a){J[c+100>>2]=a;qa(a)}a=J[c+80>>2];if(a){J[c+84>>2]=a;qa(a)}a=J[c+68>>2];if(a){J[c+72>>2]=a;qa(a)}a=J[c+56>>2];if(a){J[c+60>>2]=a;qa(a)}J[c+8>>2]=11672;a=J[c+44>>2];if(a){qa(a)}a=J[c+32>>2];if(a){qa(a)}ea=c+112|0;return d}function lf(a,b,c){var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0;e=J[a+8>>2];g=J[a+4>>2];if((e-g|0)/12>>>0>=b>>>0){a:{if(!b){break a}b=P(b,12);e=b-12|0;f=((e>>>0)/12|0)+1&3;b:{if(!f){d=g;break b}d=g;while(1){j=J[c+4>>2];J[d>>2]=J[c>>2];J[d+4>>2]=j;J[d+8>>2]=J[c+8>>2];d=d+12|0;h=h+1|0;if((f|0)!=(h|0)){continue}break}}g=b+g|0;if(e>>>0<36){break a}while(1){b=J[c+4>>2];J[d>>2]=J[c>>2];J[d+4>>2]=b;J[d+8>>2]=J[c+8>>2];J[d+20>>2]=J[c+8>>2];b=J[c+4>>2];J[d+12>>2]=J[c>>2];J[d+16>>2]=b;J[d+32>>2]=J[c+8>>2];b=J[c+4>>2];J[d+24>>2]=J[c>>2];J[d+28>>2]=b;b=J[c+4>>2];J[d+36>>2]=J[c>>2];J[d+40>>2]=b;J[d+44>>2]=J[c+8>>2];d=d+48|0;if((g|0)!=(d|0)){continue}break}}J[a+4>>2]=g;return}c:{f=J[a>>2];i=(g-f|0)/12|0;d=i+b|0;if(d>>>0<357913942){e=(e-f|0)/12|0;f=e<<1;f=e>>>0>=178956970?357913941:d>>>0>>0?f:d;if(f){if(f>>>0>=357913942){break c}j=ra(P(f,12))}e=P(i,12)+j|0;d=e;b=P(b,12);i=b-12|0;k=((i>>>0)/12|0)+1&3;if(k){d=e;while(1){l=J[c+4>>2];J[d>>2]=J[c>>2];J[d+4>>2]=l;J[d+8>>2]=J[c+8>>2];d=d+12|0;h=h+1|0;if((k|0)!=(h|0)){continue}break}}h=b+e|0;if(i>>>0>=36){while(1){b=J[c+4>>2];J[d>>2]=J[c>>2];J[d+4>>2]=b;J[d+8>>2]=J[c+8>>2];J[d+20>>2]=J[c+8>>2];b=J[c+4>>2];J[d+12>>2]=J[c>>2];J[d+16>>2]=b;J[d+32>>2]=J[c+8>>2];b=J[c+4>>2];J[d+24>>2]=J[c>>2];J[d+28>>2]=b;b=J[c+4>>2];J[d+36>>2]=J[c>>2];J[d+40>>2]=b;J[d+44>>2]=J[c+8>>2];d=d+48|0;if((h|0)!=(d|0)){continue}break}}b=J[a>>2];c=g-b|0;d=e+P((c|0)/-12|0,12)|0;if((c|0)>0){ta(d,b,c)}J[a+8>>2]=P(f,12)+j;J[a+4>>2]=h;J[a>>2]=d;if(b){qa(b)}return}ua();B()}ya();B()}function wa(a,b,c,d){var e=0,f=0,g=0,h=0,i=0,j=0,k=0;i=d-c|0;if((i|0)<=0){return}a:{g=J[a+8>>2];h=J[a+4>>2];if((g-h|0)>=(i|0)){j=h-b|0;if((j|0)>=(i|0)){f=h;g=d;break a}f=h;g=c+j|0;if((g|0)!=(d|0)){e=g;while(1){H[f|0]=K[e|0];f=f+1|0;e=e+1|0;if((e|0)!=(d|0)){continue}break}}J[a+4>>2]=f;if((j|0)>0){break a}return}f=J[a>>2];e=(h-f|0)+i|0;if((e|0)>=0){j=b-f|0;g=g-f|0;k=g<<1;k=g>>>0>=1073741823?2147483647:e>>>0>>0?k:e;if(k){g=ra(k)}else{g=0}e=j+g|0;if((c|0)!=(d|0)){e=ta(e,c,i)+i|0}if((j|0)>0){ta(g,f,j)}if((b|0)!=(h|0)){d=(b^-1)+h|0;f=h-b&7;if(f){c=0;while(1){H[e|0]=K[b|0];e=e+1|0;b=b+1|0;c=c+1|0;if((f|0)!=(c|0)){continue}break}}if(d>>>0>=7){while(1){H[e|0]=K[b|0];H[e+1|0]=K[b+1|0];H[e+2|0]=K[b+2|0];H[e+3|0]=K[b+3|0];H[e+4|0]=K[b+4|0];H[e+5|0]=K[b+5|0];H[e+6|0]=K[b+6|0];H[e+7|0]=K[b+7|0];e=e+8|0;b=b+8|0;if((h|0)!=(b|0)){continue}break}}f=J[a>>2]}J[a+8>>2]=g+k;J[a+4>>2]=e;J[a>>2]=g;if(f){qa(f)}return}ua();B()}e=f;d=e-i|0;if(h>>>0>d>>>0){while(1){H[e|0]=K[d|0];e=e+1|0;d=d+1|0;if(h>>>0>d>>>0){continue}break}}J[a+4>>2]=e;a=b+i|0;if((a|0)!=(f|0)){a=f-a|0;xa(f-a|0,b,a)}if((c|0)==(g|0)){return}a=(c^-1)+g|0;f=g-c&7;b:{if(!f){e=b;break b}d=0;e=b;while(1){H[e|0]=K[c|0];e=e+1|0;c=c+1|0;d=d+1|0;if((f|0)!=(d|0)){continue}break}}if(a>>>0<7){return}while(1){H[e|0]=K[c|0];H[e+1|0]=K[c+1|0];H[e+2|0]=K[c+2|0];H[e+3|0]=K[c+3|0];H[e+4|0]=K[c+4|0];H[e+5|0]=K[c+5|0];H[e+6|0]=K[c+6|0];H[e+7|0]=K[c+7|0];e=e+8|0;c=c+8|0;if((g|0)!=(c|0)){continue}break}}function te(a,b,c,d){var e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0;g=ea-32|0;ea=g;n=a+4|0;a=pb(a,b);a:{if((n|0)==(a|0)){break a}b:{if(H[a+39|0]>=0){J[g+24>>2]=J[a+36>>2];b=J[a+32>>2];J[g+16>>2]=J[a+28>>2];J[g+20>>2]=b;break b}Ja(g+16|0,J[a+28>>2],J[a+32>>2])}b=K[g+27|0];a=b<<24>>24;if(!(!((a|0)<0?J[g+20>>2]:b)|(c|0)<=0)){b=0;a=(a|0)<0?J[g+16>>2]:g+16|0;while(1){c:{m=ea-16|0;ea=m;Se(m,a,g+12|0,0);h=J[m>>2];l=J[m+4>>2];i=ea-32|0;ea=i;o=J[m+12>>2];j=o&2147483647;f=j;e=f-1065418752|0;k=f-1082064896|0;j=J[m+8>>2];d:{if((e|0)==(k|0)&j>>>0>>0|e>>>0>>0){f=(o&33554431)<<7|j>>>25;e=0;n=e;k=j&33554431;if(!(!e&(k|0)==16777216?!(h|l):!e&k>>>0<16777216)){e=f+1073741825|0;break d}e=f+1073741824|0;if(k^16777216|h|(l|n)){break d}e=(f&1)+e|0;break d}if(!(!j&(f|0)==2147418112?!(h|l):f>>>0<2147418112)){e=((o&33554431)<<7|j>>>25)&4194303|2143289344;break d}e=2139095040;if(f>>>0>1082064895){break d}e=0;f=f>>>16|0;if(f>>>0<16145){break d}e=o&65535|65536;Sa(i+16|0,h,l,j,e,f-16129|0);Ib(i,h,l,j,e,16257-f|0);h=J[i+8>>2];e=(J[i+12>>2]&33554431)<<7|h>>>25;k=J[i>>2]|(J[i+16>>2]|J[i+24>>2]|(J[i+20>>2]|J[i+28>>2]))!=0;l=J[i+4>>2];f=0;h=h&33554431;if(!(!f&(h|0)==16777216?!(k|l):!f&h>>>0<16777216)){e=e+1|0;break d}if(h^16777216|k|(f|l)){break d}e=(e&1)+e|0}ea=i+32|0;ea=m+16|0;n=a;a=J[g+12>>2];if((n|0)==(a|0)){break c}J[(b<<2)+d>>2]=o&-2147483648|e;b=b+1|0;if((c|0)!=(b|0)){continue}}break}a=K[g+27|0]}if(a<<24>>24>=0){break a}qa(J[g+16>>2])}ea=g+32|0}function _e(a,b){var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0;a:{b:{if(b){if(b>>>0>=1073741824){break a}d=ra(b<<2);e=J[a>>2];J[a>>2]=d;if(e){qa(e)}J[a+4>>2]=b;if(b>>>0>=4){f=b&-4;e=0;while(1){d=c<<2;J[d+J[a>>2]>>2]=0;J[J[a>>2]+(d|4)>>2]=0;J[J[a>>2]+(d|8)>>2]=0;J[J[a>>2]+(d|12)>>2]=0;c=c+4|0;e=e+4|0;if((f|0)!=(e|0)){continue}break}}e=b&3;if(e){while(1){J[J[a>>2]+(c<<2)>>2]=0;c=c+1|0;i=i+1|0;if((e|0)!=(i|0)){continue}break}}f=J[a+8>>2];if(!f){break b}e=a+8|0;g=J[f+4>>2];d=Dl(b);c:{if(d>>>0<=1){g=b-1&g;break c}if(b>>>0>g>>>0){break c}g=(g>>>0)%(b>>>0)|0}J[J[a>>2]+(g<<2)>>2]=e;e=J[f>>2];if(!e){break b}q=b-1|0;r=d>>>0>1;while(1){c=J[e+4>>2];d:{if(!r){c=c&q;break d}if(b>>>0>c>>>0){break d}c=(c>>>0)%(b>>>0)|0}e:{if((c|0)==(g|0)){f=e;break e}f:{g:{k=c<<2;d=k+J[a>>2]|0;if(J[d>>2]){j=0;c=J[e>>2];if(!c){d=e;break f}d=J[a+24>>2];m=J[d+8>>2];d=J[d+12>>2]-m|0;if((d|0)<=0){break g}l=d>>2;s=(l|0)<=1?1:l;n=J[e+8>>2];d=e;while(1){j=c;o=J[c+8>>2];c=0;p=1;while(1){i=o;h=J[(c<<2)+m>>2];if(K[h+84|0]){h=n}else{h=J[h+68>>2];i=J[h+(o<<2)>>2];h=J[h+(n<<2)>>2]}if((h|0)==(i|0)){c=c+1|0;p=(l|0)>(c|0);if((c|0)!=(s|0)){continue}}break}if(p){break f}d=j;c=J[d>>2];if(c){continue}break}j=0;break f}J[d>>2]=f;f=e;g=c;break e}while(1){d=c;c=J[c>>2];if(c){continue}break}}J[f>>2]=j;J[d>>2]=J[J[J[a>>2]+k>>2]>>2];J[J[J[a>>2]+k>>2]>>2]=e}e=J[f>>2];if(e){continue}break}break b}b=J[a>>2];J[a>>2]=0;if(b){qa(b)}J[a+4>>2]=0}return}ya();B()}function Xg(a,b){var c=0,d=0,e=0,f=0,g=0,h=0,i=0;f=J[b+48>>2];d=ea-32|0;ea=d;J[d+28>>2]=a;a=0;a:{if((eb(f)|0)>9){break a}if((ga[J[J[b>>2]+8>>2]](b)|0)!=1){break a}a=ra(32);J[d+16>>2]=a;J[d+20>>2]=17;J[d+24>>2]=-2147483616;H[a+16|0]=K[1261];e=K[1257]|K[1258]<<8|(K[1259]<<16|K[1260]<<24);c=K[1253]|K[1254]<<8|(K[1255]<<16|K[1256]<<24);H[a+8|0]=c;H[a+9|0]=c>>>8;H[a+10|0]=c>>>16;H[a+11|0]=c>>>24;H[a+12|0]=e;H[a+13|0]=e>>>8;H[a+14|0]=e>>>16;H[a+15|0]=e>>>24;e=K[1249]|K[1250]<<8|(K[1251]<<16|K[1252]<<24);c=K[1245]|K[1246]<<8|(K[1247]<<16|K[1248]<<24);H[a|0]=c;H[a+1|0]=c>>>8;H[a+2|0]=c>>>16;H[a+3|0]=c>>>24;H[a+4|0]=e;H[a+5|0]=e>>>8;H[a+6|0]=e>>>16;H[a+7|0]=e>>>24;H[a+17|0]=0;a=kb(f,d+28|0,d+16|0,-1);if(H[d+27|0]<0){qa(J[d+16>>2])}c=J[b+4>>2];e=J[J[c+8>>2]+(J[d+28>>2]<<2)>>2];b:{if((a|0)==-1|J[e+56>>2]!=3|K[e+24|0]!=2){break b}c=jd(c);if(!c){break b}c=J[c+28>>2];if(!(2558>>>c&c>>>0<12)){h=d,i=Ob(J[b+4>>2],0),J[h+12>>2]=i;c=Nc(d+16|0,1245);g=kb(f,d+12|0,c,-1);if(H[c+11|0]<0){qa(J[c>>2])}if((a+(g<<1)|0)>63|g-1>>>0>20){break b}}a=5;if((eb(f)|0)<4){break a}}a=J[e+56>>2];e=eb(f);if((a|0)==1){c:{if((e|0)>3){break c}h=d,i=Ob(J[b+4>>2],0),J[h+12>>2]=i;a=jd(J[b+4>>2]);if(!a){break c}a=J[a+28>>2];if(2558>>>a&a>>>0<12){a=6;break a}a=Nc(d+16|0,1245);b=kb(f,d+12|0,a,-1);if(H[a+11|0]<0){qa(J[a>>2])}a=6;if((b|0)>0){break a}}a=0;break a}a=0;if((e|0)>7){break a}a=1;if((eb(f)|0)>1){break a}a=M[J[b+4>>2]+80>>2]<40?1:4}ea=d+32|0;return a}function ic(a,b,c,d,e,f){var g=0,h=0,i=0,j=0,k=0;a:{b:{c:{d:{switch(d|0){case 2:d=J[c>>2];c=J[d>>2];d=J[d+4>>2]-c>>3;e=b-4|0;b=J[e>>2];if(d>>>0<=b>>>0){break c}f=d;d=J[a>>2];if(f>>>0<=d>>>0){break c}if(M[c+(b<<3)>>2]>=M[c+(d<<3)>>2]){break a}J[a>>2]=b;J[e>>2]=d;break a;case 0:case 1:break a;default:break d}}if((d|0)>128){break b}if((a|0)==(b|0)){break a}d=a+4|0;if((d|0)==(b|0)){break a}i=J[c>>2];while(1){f=J[d>>2];e:{e=a;if((e|0)==(d|0)){break e}f:{h=J[i>>2];j=J[i+4>>2]-h>>3;if(j>>>0<=f>>>0){break f}k=h+(f<<3)|0;e=d;while(1){c=e-4|0;g=J[c>>2];if(g>>>0>=j>>>0){break f}if(M[k>>2]>=M[h+(g<<3)>>2]){break e}J[e>>2]=g;e=c;if((e|0)!=(a|0)){continue}break}e=a;break e}va();B()}J[e>>2]=f;d=d+4|0;if((d|0)!=(b|0)){continue}break}break a}va();B()}h=d>>>1|0;g=d-h|0;j=h<<2;i=j+a|0;g:{h:{if((d|0)<=(f|0)){Cg(a,i,c,h,e);f=b;b=e+j|0;Cg(i,f,c,g,b);f=(d<<2)+e|0;c=J[c>>2];d=b;while(1){if((d|0)==(f|0)){if((b|0)==(e|0)){break a}while(1){J[a>>2]=J[e>>2];a=a+4|0;e=e+4|0;if((b|0)!=(e|0)){continue}break}break a}i=J[c>>2];g=J[c+4>>2]-i>>3;h=J[d>>2];if(g>>>0<=h>>>0){break h}k=g;g=J[e>>2];if(k>>>0<=g>>>0){break h}i:{if(M[i+(h<<3)>>2]>2]){J[a>>2]=h;d=d+4|0;break i}J[a>>2]=g;e=e+4|0}a=a+4|0;if((b|0)!=(e|0)){continue}break}break g}ic(a,i,c,h,e,f);ic(i,b,c,g,e,f);Wd(a,i,b,c,h,g,e,f);return}va();B()}if((d|0)==(f|0)){break a}while(1){J[a>>2]=J[d>>2];a=a+4|0;d=d+4|0;if((f|0)!=(d|0)){continue}break}}}function hc(a,b,c,d,e,f){var g=0,h=0,i=0,j=0,k=0;a:{b:{c:{d:{switch(d|0){case 2:d=J[c>>2];c=J[d>>2];d=J[d+4>>2]-c>>3;e=b-4|0;b=J[e>>2];if(d>>>0<=b>>>0){break c}f=d;d=J[a>>2];if(f>>>0<=d>>>0){break c}if(M[c+(b<<3)>>2]>=M[c+(d<<3)>>2]){break a}J[a>>2]=b;J[e>>2]=d;break a;case 0:case 1:break a;default:break d}}if((d|0)>128){break b}if((a|0)==(b|0)){break a}d=a+4|0;if((d|0)==(b|0)){break a}i=J[c>>2];while(1){f=J[d>>2];e:{e=a;if((e|0)==(d|0)){break e}f:{h=J[i>>2];j=J[i+4>>2]-h>>3;if(j>>>0<=f>>>0){break f}k=h+(f<<3)|0;e=d;while(1){c=e-4|0;g=J[c>>2];if(g>>>0>=j>>>0){break f}if(M[k>>2]>=M[h+(g<<3)>>2]){break e}J[e>>2]=g;e=c;if((e|0)!=(a|0)){continue}break}e=a;break e}va();B()}J[e>>2]=f;d=d+4|0;if((d|0)!=(b|0)){continue}break}break a}va();B()}h=d>>>1|0;g=d-h|0;j=h<<2;i=j+a|0;g:{h:{if((d|0)<=(f|0)){Bg(a,i,c,h,e);f=b;b=e+j|0;Bg(i,f,c,g,b);f=(d<<2)+e|0;c=J[c>>2];d=b;while(1){if((d|0)==(f|0)){if((b|0)==(e|0)){break a}while(1){J[a>>2]=J[e>>2];a=a+4|0;e=e+4|0;if((b|0)!=(e|0)){continue}break}break a}i=J[c>>2];g=J[c+4>>2]-i>>3;h=J[d>>2];if(g>>>0<=h>>>0){break h}k=g;g=J[e>>2];if(k>>>0<=g>>>0){break h}i:{if(M[i+(h<<3)>>2]>2]){J[a>>2]=h;d=d+4|0;break i}J[a>>2]=g;e=e+4|0}a=a+4|0;if((b|0)!=(e|0)){continue}break}break g}hc(a,i,c,h,e,f);hc(i,b,c,g,e,f);Vd(a,i,b,c,h,g,e,f);return}va();B()}if((d|0)==(f|0)){break a}while(1){J[a>>2]=J[d>>2];a=a+4|0;d=d+4|0;if((f|0)!=(d|0)){continue}break}}}function gc(a,b,c,d,e,f){var g=0,h=0,i=0,j=0,k=0;a:{b:{c:{d:{switch(d|0){case 2:d=J[c>>2];c=J[d>>2];d=J[d+4>>2]-c>>3;e=b-4|0;b=J[e>>2];if(d>>>0<=b>>>0){break c}f=d;d=J[a>>2];if(f>>>0<=d>>>0){break c}if(M[c+(b<<3)>>2]>=M[c+(d<<3)>>2]){break a}J[a>>2]=b;J[e>>2]=d;break a;case 0:case 1:break a;default:break d}}if((d|0)>128){break b}if((a|0)==(b|0)){break a}d=a+4|0;if((d|0)==(b|0)){break a}i=J[c>>2];while(1){f=J[d>>2];e:{e=a;if((e|0)==(d|0)){break e}f:{h=J[i>>2];j=J[i+4>>2]-h>>3;if(j>>>0<=f>>>0){break f}k=h+(f<<3)|0;e=d;while(1){c=e-4|0;g=J[c>>2];if(g>>>0>=j>>>0){break f}if(M[k>>2]>=M[h+(g<<3)>>2]){break e}J[e>>2]=g;e=c;if((e|0)!=(a|0)){continue}break}e=a;break e}va();B()}J[e>>2]=f;d=d+4|0;if((d|0)!=(b|0)){continue}break}break a}va();B()}h=d>>>1|0;g=d-h|0;j=h<<2;i=j+a|0;g:{h:{if((d|0)<=(f|0)){Ag(a,i,c,h,e);f=b;b=e+j|0;Ag(i,f,c,g,b);f=(d<<2)+e|0;c=J[c>>2];d=b;while(1){if((d|0)==(f|0)){if((b|0)==(e|0)){break a}while(1){J[a>>2]=J[e>>2];a=a+4|0;e=e+4|0;if((b|0)!=(e|0)){continue}break}break a}i=J[c>>2];g=J[c+4>>2]-i>>3;h=J[d>>2];if(g>>>0<=h>>>0){break h}k=g;g=J[e>>2];if(k>>>0<=g>>>0){break h}i:{if(M[i+(h<<3)>>2]>2]){J[a>>2]=h;d=d+4|0;break i}J[a>>2]=g;e=e+4|0}a=a+4|0;if((b|0)!=(e|0)){continue}break}break g}gc(a,i,c,h,e,f);gc(i,b,c,g,e,f);Ud(a,i,b,c,h,g,e,f);return}va();B()}if((d|0)==(f|0)){break a}while(1){J[a>>2]=J[d>>2];a=a+4|0;d=d+4|0;if((f|0)!=(d|0)){continue}break}}}function fc(a,b,c,d,e,f){var g=0,h=0,i=0,j=0,k=0;a:{b:{c:{d:{switch(d|0){case 2:d=J[c>>2];c=J[d>>2];d=J[d+4>>2]-c>>3;e=b-4|0;b=J[e>>2];if(d>>>0<=b>>>0){break c}f=d;d=J[a>>2];if(f>>>0<=d>>>0){break c}if(M[c+(b<<3)>>2]>=M[c+(d<<3)>>2]){break a}J[a>>2]=b;J[e>>2]=d;break a;case 0:case 1:break a;default:break d}}if((d|0)>128){break b}if((a|0)==(b|0)){break a}d=a+4|0;if((d|0)==(b|0)){break a}i=J[c>>2];while(1){f=J[d>>2];e:{e=a;if((e|0)==(d|0)){break e}f:{h=J[i>>2];j=J[i+4>>2]-h>>3;if(j>>>0<=f>>>0){break f}k=h+(f<<3)|0;e=d;while(1){c=e-4|0;g=J[c>>2];if(g>>>0>=j>>>0){break f}if(M[k>>2]>=M[h+(g<<3)>>2]){break e}J[e>>2]=g;e=c;if((e|0)!=(a|0)){continue}break}e=a;break e}va();B()}J[e>>2]=f;d=d+4|0;if((d|0)!=(b|0)){continue}break}break a}va();B()}h=d>>>1|0;g=d-h|0;j=h<<2;i=j+a|0;g:{h:{if((d|0)<=(f|0)){zg(a,i,c,h,e);f=b;b=e+j|0;zg(i,f,c,g,b);f=(d<<2)+e|0;c=J[c>>2];d=b;while(1){if((d|0)==(f|0)){if((b|0)==(e|0)){break a}while(1){J[a>>2]=J[e>>2];a=a+4|0;e=e+4|0;if((b|0)!=(e|0)){continue}break}break a}i=J[c>>2];g=J[c+4>>2]-i>>3;h=J[d>>2];if(g>>>0<=h>>>0){break h}k=g;g=J[e>>2];if(k>>>0<=g>>>0){break h}i:{if(M[i+(h<<3)>>2]>2]){J[a>>2]=h;d=d+4|0;break i}J[a>>2]=g;e=e+4|0}a=a+4|0;if((b|0)!=(e|0)){continue}break}break g}fc(a,i,c,h,e,f);fc(i,b,c,g,e,f);Td(a,i,b,c,h,g,e,f);return}va();B()}if((d|0)==(f|0)){break a}while(1){J[a>>2]=J[d>>2];a=a+4|0;d=d+4|0;if((f|0)!=(d|0)){continue}break}}}function ec(a,b,c,d,e,f){var g=0,h=0,i=0,j=0,k=0;a:{b:{c:{d:{switch(d|0){case 2:d=J[c>>2];c=J[d>>2];d=J[d+4>>2]-c>>3;e=b-4|0;b=J[e>>2];if(d>>>0<=b>>>0){break c}f=d;d=J[a>>2];if(f>>>0<=d>>>0){break c}if(M[c+(b<<3)>>2]>=M[c+(d<<3)>>2]){break a}J[a>>2]=b;J[e>>2]=d;break a;case 0:case 1:break a;default:break d}}if((d|0)>128){break b}if((a|0)==(b|0)){break a}d=a+4|0;if((d|0)==(b|0)){break a}i=J[c>>2];while(1){f=J[d>>2];e:{e=a;if((e|0)==(d|0)){break e}f:{h=J[i>>2];j=J[i+4>>2]-h>>3;if(j>>>0<=f>>>0){break f}k=h+(f<<3)|0;e=d;while(1){c=e-4|0;g=J[c>>2];if(g>>>0>=j>>>0){break f}if(M[k>>2]>=M[h+(g<<3)>>2]){break e}J[e>>2]=g;e=c;if((e|0)!=(a|0)){continue}break}e=a;break e}va();B()}J[e>>2]=f;d=d+4|0;if((d|0)!=(b|0)){continue}break}break a}va();B()}h=d>>>1|0;g=d-h|0;j=h<<2;i=j+a|0;g:{h:{if((d|0)<=(f|0)){yg(a,i,c,h,e);f=b;b=e+j|0;yg(i,f,c,g,b);f=(d<<2)+e|0;c=J[c>>2];d=b;while(1){if((d|0)==(f|0)){if((b|0)==(e|0)){break a}while(1){J[a>>2]=J[e>>2];a=a+4|0;e=e+4|0;if((b|0)!=(e|0)){continue}break}break a}i=J[c>>2];g=J[c+4>>2]-i>>3;h=J[d>>2];if(g>>>0<=h>>>0){break h}k=g;g=J[e>>2];if(k>>>0<=g>>>0){break h}i:{if(M[i+(h<<3)>>2]>2]){J[a>>2]=h;d=d+4|0;break i}J[a>>2]=g;e=e+4|0}a=a+4|0;if((b|0)!=(e|0)){continue}break}break g}ec(a,i,c,h,e,f);ec(i,b,c,g,e,f);Sd(a,i,b,c,h,g,e,f);return}va();B()}if((d|0)==(f|0)){break a}while(1){J[a>>2]=J[d>>2];a=a+4|0;d=d+4|0;if((f|0)!=(d|0)){continue}break}}}function dc(a,b,c,d,e,f){var g=0,h=0,i=0,j=0,k=0;a:{b:{c:{d:{switch(d|0){case 2:d=J[c>>2];c=J[d>>2];d=J[d+4>>2]-c>>3;e=b-4|0;b=J[e>>2];if(d>>>0<=b>>>0){break c}f=d;d=J[a>>2];if(f>>>0<=d>>>0){break c}if(M[c+(b<<3)>>2]>=M[c+(d<<3)>>2]){break a}J[a>>2]=b;J[e>>2]=d;break a;case 0:case 1:break a;default:break d}}if((d|0)>128){break b}if((a|0)==(b|0)){break a}d=a+4|0;if((d|0)==(b|0)){break a}i=J[c>>2];while(1){f=J[d>>2];e:{e=a;if((e|0)==(d|0)){break e}f:{h=J[i>>2];j=J[i+4>>2]-h>>3;if(j>>>0<=f>>>0){break f}k=h+(f<<3)|0;e=d;while(1){c=e-4|0;g=J[c>>2];if(g>>>0>=j>>>0){break f}if(M[k>>2]>=M[h+(g<<3)>>2]){break e}J[e>>2]=g;e=c;if((e|0)!=(a|0)){continue}break}e=a;break e}va();B()}J[e>>2]=f;d=d+4|0;if((d|0)!=(b|0)){continue}break}break a}va();B()}h=d>>>1|0;g=d-h|0;j=h<<2;i=j+a|0;g:{h:{if((d|0)<=(f|0)){xg(a,i,c,h,e);f=b;b=e+j|0;xg(i,f,c,g,b);f=(d<<2)+e|0;c=J[c>>2];d=b;while(1){if((d|0)==(f|0)){if((b|0)==(e|0)){break a}while(1){J[a>>2]=J[e>>2];a=a+4|0;e=e+4|0;if((b|0)!=(e|0)){continue}break}break a}i=J[c>>2];g=J[c+4>>2]-i>>3;h=J[d>>2];if(g>>>0<=h>>>0){break h}k=g;g=J[e>>2];if(k>>>0<=g>>>0){break h}i:{if(M[i+(h<<3)>>2]>2]){J[a>>2]=h;d=d+4|0;break i}J[a>>2]=g;e=e+4|0}a=a+4|0;if((b|0)!=(e|0)){continue}break}break g}dc(a,i,c,h,e,f);dc(i,b,c,g,e,f);Rd(a,i,b,c,h,g,e,f);return}va();B()}if((d|0)==(f|0)){break a}while(1){J[a>>2]=J[d>>2];a=a+4|0;d=d+4|0;if((f|0)!=(d|0)){continue}break}}}function cc(a,b,c,d,e,f){var g=0,h=0,i=0,j=0,k=0;a:{b:{c:{d:{switch(d|0){case 2:d=J[c>>2];c=J[d>>2];d=J[d+4>>2]-c>>3;e=b-4|0;b=J[e>>2];if(d>>>0<=b>>>0){break c}f=d;d=J[a>>2];if(f>>>0<=d>>>0){break c}if(M[c+(b<<3)>>2]>=M[c+(d<<3)>>2]){break a}J[a>>2]=b;J[e>>2]=d;break a;case 0:case 1:break a;default:break d}}if((d|0)>128){break b}if((a|0)==(b|0)){break a}d=a+4|0;if((d|0)==(b|0)){break a}i=J[c>>2];while(1){f=J[d>>2];e:{e=a;if((e|0)==(d|0)){break e}f:{h=J[i>>2];j=J[i+4>>2]-h>>3;if(j>>>0<=f>>>0){break f}k=h+(f<<3)|0;e=d;while(1){c=e-4|0;g=J[c>>2];if(g>>>0>=j>>>0){break f}if(M[k>>2]>=M[h+(g<<3)>>2]){break e}J[e>>2]=g;e=c;if((e|0)!=(a|0)){continue}break}e=a;break e}va();B()}J[e>>2]=f;d=d+4|0;if((d|0)!=(b|0)){continue}break}break a}va();B()}h=d>>>1|0;g=d-h|0;j=h<<2;i=j+a|0;g:{h:{if((d|0)<=(f|0)){wg(a,i,c,h,e);f=b;b=e+j|0;wg(i,f,c,g,b);f=(d<<2)+e|0;c=J[c>>2];d=b;while(1){if((d|0)==(f|0)){if((b|0)==(e|0)){break a}while(1){J[a>>2]=J[e>>2];a=a+4|0;e=e+4|0;if((b|0)!=(e|0)){continue}break}break a}i=J[c>>2];g=J[c+4>>2]-i>>3;h=J[d>>2];if(g>>>0<=h>>>0){break h}k=g;g=J[e>>2];if(k>>>0<=g>>>0){break h}i:{if(M[i+(h<<3)>>2]>2]){J[a>>2]=h;d=d+4|0;break i}J[a>>2]=g;e=e+4|0}a=a+4|0;if((b|0)!=(e|0)){continue}break}break g}cc(a,i,c,h,e,f);cc(i,b,c,g,e,f);Qd(a,i,b,c,h,g,e,f);return}va();B()}if((d|0)==(f|0)){break a}while(1){J[a>>2]=J[d>>2];a=a+4|0;d=d+4|0;if((f|0)!=(d|0)){continue}break}}}function bc(a,b,c,d,e,f){var g=0,h=0,i=0,j=0,k=0;a:{b:{c:{d:{switch(d|0){case 2:d=J[c>>2];c=J[d>>2];d=J[d+4>>2]-c>>3;e=b-4|0;b=J[e>>2];if(d>>>0<=b>>>0){break c}f=d;d=J[a>>2];if(f>>>0<=d>>>0){break c}if(M[c+(b<<3)>>2]>=M[c+(d<<3)>>2]){break a}J[a>>2]=b;J[e>>2]=d;break a;case 0:case 1:break a;default:break d}}if((d|0)>128){break b}if((a|0)==(b|0)){break a}d=a+4|0;if((d|0)==(b|0)){break a}i=J[c>>2];while(1){f=J[d>>2];e:{e=a;if((e|0)==(d|0)){break e}f:{h=J[i>>2];j=J[i+4>>2]-h>>3;if(j>>>0<=f>>>0){break f}k=h+(f<<3)|0;e=d;while(1){c=e-4|0;g=J[c>>2];if(g>>>0>=j>>>0){break f}if(M[k>>2]>=M[h+(g<<3)>>2]){break e}J[e>>2]=g;e=c;if((e|0)!=(a|0)){continue}break}e=a;break e}va();B()}J[e>>2]=f;d=d+4|0;if((d|0)!=(b|0)){continue}break}break a}va();B()}h=d>>>1|0;g=d-h|0;j=h<<2;i=j+a|0;g:{h:{if((d|0)<=(f|0)){vg(a,i,c,h,e);f=b;b=e+j|0;vg(i,f,c,g,b);f=(d<<2)+e|0;c=J[c>>2];d=b;while(1){if((d|0)==(f|0)){if((b|0)==(e|0)){break a}while(1){J[a>>2]=J[e>>2];a=a+4|0;e=e+4|0;if((b|0)!=(e|0)){continue}break}break a}i=J[c>>2];g=J[c+4>>2]-i>>3;h=J[d>>2];if(g>>>0<=h>>>0){break h}k=g;g=J[e>>2];if(k>>>0<=g>>>0){break h}i:{if(M[i+(h<<3)>>2]>2]){J[a>>2]=h;d=d+4|0;break i}J[a>>2]=g;e=e+4|0}a=a+4|0;if((b|0)!=(e|0)){continue}break}break g}bc(a,i,c,h,e,f);bc(i,b,c,g,e,f);Pd(a,i,b,c,h,g,e,f);return}va();B()}if((d|0)==(f|0)){break a}while(1){J[a>>2]=J[d>>2];a=a+4|0;d=d+4|0;if((f|0)!=(d|0)){continue}break}}}function ac(a,b,c,d,e,f){var g=0,h=0,i=0,j=0,k=0;a:{b:{c:{d:{switch(d|0){case 2:d=J[c>>2];c=J[d>>2];d=J[d+4>>2]-c>>3;e=b-4|0;b=J[e>>2];if(d>>>0<=b>>>0){break c}f=d;d=J[a>>2];if(f>>>0<=d>>>0){break c}if(M[c+(b<<3)>>2]>=M[c+(d<<3)>>2]){break a}J[a>>2]=b;J[e>>2]=d;break a;case 0:case 1:break a;default:break d}}if((d|0)>128){break b}if((a|0)==(b|0)){break a}d=a+4|0;if((d|0)==(b|0)){break a}i=J[c>>2];while(1){f=J[d>>2];e:{e=a;if((e|0)==(d|0)){break e}f:{h=J[i>>2];j=J[i+4>>2]-h>>3;if(j>>>0<=f>>>0){break f}k=h+(f<<3)|0;e=d;while(1){c=e-4|0;g=J[c>>2];if(g>>>0>=j>>>0){break f}if(M[k>>2]>=M[h+(g<<3)>>2]){break e}J[e>>2]=g;e=c;if((e|0)!=(a|0)){continue}break}e=a;break e}va();B()}J[e>>2]=f;d=d+4|0;if((d|0)!=(b|0)){continue}break}break a}va();B()}h=d>>>1|0;g=d-h|0;j=h<<2;i=j+a|0;g:{h:{if((d|0)<=(f|0)){ug(a,i,c,h,e);f=b;b=e+j|0;ug(i,f,c,g,b);f=(d<<2)+e|0;c=J[c>>2];d=b;while(1){if((d|0)==(f|0)){if((b|0)==(e|0)){break a}while(1){J[a>>2]=J[e>>2];a=a+4|0;e=e+4|0;if((b|0)!=(e|0)){continue}break}break a}i=J[c>>2];g=J[c+4>>2]-i>>3;h=J[d>>2];if(g>>>0<=h>>>0){break h}k=g;g=J[e>>2];if(k>>>0<=g>>>0){break h}i:{if(M[i+(h<<3)>>2]>2]){J[a>>2]=h;d=d+4|0;break i}J[a>>2]=g;e=e+4|0}a=a+4|0;if((b|0)!=(e|0)){continue}break}break g}ac(a,i,c,h,e,f);ac(i,b,c,g,e,f);Od(a,i,b,c,h,g,e,f);return}va();B()}if((d|0)==(f|0)){break a}while(1){J[a>>2]=J[d>>2];a=a+4|0;d=d+4|0;if((f|0)!=(d|0)){continue}break}}}function _b(a,b,c,d,e,f){var g=0,h=0,i=0,j=0,k=0;a:{b:{c:{d:{switch(d|0){case 2:d=J[c>>2];c=J[d>>2];d=J[d+4>>2]-c>>3;e=b-4|0;b=J[e>>2];if(d>>>0<=b>>>0){break c}f=d;d=J[a>>2];if(f>>>0<=d>>>0){break c}if(M[c+(b<<3)>>2]>=M[c+(d<<3)>>2]){break a}J[a>>2]=b;J[e>>2]=d;break a;case 0:case 1:break a;default:break d}}if((d|0)>128){break b}if((a|0)==(b|0)){break a}d=a+4|0;if((d|0)==(b|0)){break a}i=J[c>>2];while(1){f=J[d>>2];e:{e=a;if((e|0)==(d|0)){break e}f:{h=J[i>>2];j=J[i+4>>2]-h>>3;if(j>>>0<=f>>>0){break f}k=h+(f<<3)|0;e=d;while(1){c=e-4|0;g=J[c>>2];if(g>>>0>=j>>>0){break f}if(M[k>>2]>=M[h+(g<<3)>>2]){break e}J[e>>2]=g;e=c;if((e|0)!=(a|0)){continue}break}e=a;break e}va();B()}J[e>>2]=f;d=d+4|0;if((d|0)!=(b|0)){continue}break}break a}va();B()}h=d>>>1|0;g=d-h|0;j=h<<2;i=j+a|0;g:{h:{if((d|0)<=(f|0)){sg(a,i,c,h,e);f=b;b=e+j|0;sg(i,f,c,g,b);f=(d<<2)+e|0;c=J[c>>2];d=b;while(1){if((d|0)==(f|0)){if((b|0)==(e|0)){break a}while(1){J[a>>2]=J[e>>2];a=a+4|0;e=e+4|0;if((b|0)!=(e|0)){continue}break}break a}i=J[c>>2];g=J[c+4>>2]-i>>3;h=J[d>>2];if(g>>>0<=h>>>0){break h}k=g;g=J[e>>2];if(k>>>0<=g>>>0){break h}i:{if(M[i+(h<<3)>>2]>2]){J[a>>2]=h;d=d+4|0;break i}J[a>>2]=g;e=e+4|0}a=a+4|0;if((b|0)!=(e|0)){continue}break}break g}_b(a,i,c,h,e,f);_b(i,b,c,g,e,f);Md(a,i,b,c,h,g,e,f);return}va();B()}if((d|0)==(f|0)){break a}while(1){J[a>>2]=J[d>>2];a=a+4|0;d=d+4|0;if((f|0)!=(d|0)){continue}break}}}function Zb(a,b,c,d,e,f){var g=0,h=0,i=0,j=0,k=0;a:{b:{c:{d:{switch(d|0){case 2:d=J[c>>2];c=J[d>>2];d=J[d+4>>2]-c>>3;e=b-4|0;b=J[e>>2];if(d>>>0<=b>>>0){break c}f=d;d=J[a>>2];if(f>>>0<=d>>>0){break c}if(M[c+(b<<3)>>2]>=M[c+(d<<3)>>2]){break a}J[a>>2]=b;J[e>>2]=d;break a;case 0:case 1:break a;default:break d}}if((d|0)>128){break b}if((a|0)==(b|0)){break a}d=a+4|0;if((d|0)==(b|0)){break a}i=J[c>>2];while(1){f=J[d>>2];e:{e=a;if((e|0)==(d|0)){break e}f:{h=J[i>>2];j=J[i+4>>2]-h>>3;if(j>>>0<=f>>>0){break f}k=h+(f<<3)|0;e=d;while(1){c=e-4|0;g=J[c>>2];if(g>>>0>=j>>>0){break f}if(M[k>>2]>=M[h+(g<<3)>>2]){break e}J[e>>2]=g;e=c;if((e|0)!=(a|0)){continue}break}e=a;break e}va();B()}J[e>>2]=f;d=d+4|0;if((d|0)!=(b|0)){continue}break}break a}va();B()}h=d>>>1|0;g=d-h|0;j=h<<2;i=j+a|0;g:{h:{if((d|0)<=(f|0)){qg(a,i,c,h,e);f=b;b=e+j|0;qg(i,f,c,g,b);f=(d<<2)+e|0;c=J[c>>2];d=b;while(1){if((d|0)==(f|0)){if((b|0)==(e|0)){break a}while(1){J[a>>2]=J[e>>2];a=a+4|0;e=e+4|0;if((b|0)!=(e|0)){continue}break}break a}i=J[c>>2];g=J[c+4>>2]-i>>3;h=J[d>>2];if(g>>>0<=h>>>0){break h}k=g;g=J[e>>2];if(k>>>0<=g>>>0){break h}i:{if(M[i+(h<<3)>>2]>2]){J[a>>2]=h;d=d+4|0;break i}J[a>>2]=g;e=e+4|0}a=a+4|0;if((b|0)!=(e|0)){continue}break}break g}Zb(a,i,c,h,e,f);Zb(i,b,c,g,e,f);Ld(a,i,b,c,h,g,e,f);return}va();B()}if((d|0)==(f|0)){break a}while(1){J[a>>2]=J[d>>2];a=a+4|0;d=d+4|0;if((f|0)!=(d|0)){continue}break}}}function Yb(a,b,c,d,e,f){var g=0,h=0,i=0,j=0,k=0;a:{b:{c:{d:{switch(d|0){case 2:d=J[c>>2];c=J[d>>2];d=J[d+4>>2]-c>>3;e=b-4|0;b=J[e>>2];if(d>>>0<=b>>>0){break c}f=d;d=J[a>>2];if(f>>>0<=d>>>0){break c}if(M[c+(b<<3)>>2]>=M[c+(d<<3)>>2]){break a}J[a>>2]=b;J[e>>2]=d;break a;case 0:case 1:break a;default:break d}}if((d|0)>128){break b}if((a|0)==(b|0)){break a}d=a+4|0;if((d|0)==(b|0)){break a}i=J[c>>2];while(1){f=J[d>>2];e:{e=a;if((e|0)==(d|0)){break e}f:{h=J[i>>2];j=J[i+4>>2]-h>>3;if(j>>>0<=f>>>0){break f}k=h+(f<<3)|0;e=d;while(1){c=e-4|0;g=J[c>>2];if(g>>>0>=j>>>0){break f}if(M[k>>2]>=M[h+(g<<3)>>2]){break e}J[e>>2]=g;e=c;if((e|0)!=(a|0)){continue}break}e=a;break e}va();B()}J[e>>2]=f;d=d+4|0;if((d|0)!=(b|0)){continue}break}break a}va();B()}h=d>>>1|0;g=d-h|0;j=h<<2;i=j+a|0;g:{h:{if((d|0)<=(f|0)){pg(a,i,c,h,e);f=b;b=e+j|0;pg(i,f,c,g,b);f=(d<<2)+e|0;c=J[c>>2];d=b;while(1){if((d|0)==(f|0)){if((b|0)==(e|0)){break a}while(1){J[a>>2]=J[e>>2];a=a+4|0;e=e+4|0;if((b|0)!=(e|0)){continue}break}break a}i=J[c>>2];g=J[c+4>>2]-i>>3;h=J[d>>2];if(g>>>0<=h>>>0){break h}k=g;g=J[e>>2];if(k>>>0<=g>>>0){break h}i:{if(M[i+(h<<3)>>2]>2]){J[a>>2]=h;d=d+4|0;break i}J[a>>2]=g;e=e+4|0}a=a+4|0;if((b|0)!=(e|0)){continue}break}break g}Yb(a,i,c,h,e,f);Yb(i,b,c,g,e,f);Kd(a,i,b,c,h,g,e,f);return}va();B()}if((d|0)==(f|0)){break a}while(1){J[a>>2]=J[d>>2];a=a+4|0;d=d+4|0;if((f|0)!=(d|0)){continue}break}}}function Xb(a,b,c,d,e,f){var g=0,h=0,i=0,j=0,k=0;a:{b:{c:{d:{switch(d|0){case 2:d=J[c>>2];c=J[d>>2];d=J[d+4>>2]-c>>3;e=b-4|0;b=J[e>>2];if(d>>>0<=b>>>0){break c}f=d;d=J[a>>2];if(f>>>0<=d>>>0){break c}if(M[c+(b<<3)>>2]>=M[c+(d<<3)>>2]){break a}J[a>>2]=b;J[e>>2]=d;break a;case 0:case 1:break a;default:break d}}if((d|0)>128){break b}if((a|0)==(b|0)){break a}d=a+4|0;if((d|0)==(b|0)){break a}i=J[c>>2];while(1){f=J[d>>2];e:{e=a;if((e|0)==(d|0)){break e}f:{h=J[i>>2];j=J[i+4>>2]-h>>3;if(j>>>0<=f>>>0){break f}k=h+(f<<3)|0;e=d;while(1){c=e-4|0;g=J[c>>2];if(g>>>0>=j>>>0){break f}if(M[k>>2]>=M[h+(g<<3)>>2]){break e}J[e>>2]=g;e=c;if((e|0)!=(a|0)){continue}break}e=a;break e}va();B()}J[e>>2]=f;d=d+4|0;if((d|0)!=(b|0)){continue}break}break a}va();B()}h=d>>>1|0;g=d-h|0;j=h<<2;i=j+a|0;g:{h:{if((d|0)<=(f|0)){og(a,i,c,h,e);f=b;b=e+j|0;og(i,f,c,g,b);f=(d<<2)+e|0;c=J[c>>2];d=b;while(1){if((d|0)==(f|0)){if((b|0)==(e|0)){break a}while(1){J[a>>2]=J[e>>2];a=a+4|0;e=e+4|0;if((b|0)!=(e|0)){continue}break}break a}i=J[c>>2];g=J[c+4>>2]-i>>3;h=J[d>>2];if(g>>>0<=h>>>0){break h}k=g;g=J[e>>2];if(k>>>0<=g>>>0){break h}i:{if(M[i+(h<<3)>>2]>2]){J[a>>2]=h;d=d+4|0;break i}J[a>>2]=g;e=e+4|0}a=a+4|0;if((b|0)!=(e|0)){continue}break}break g}Xb(a,i,c,h,e,f);Xb(i,b,c,g,e,f);Jd(a,i,b,c,h,g,e,f);return}va();B()}if((d|0)==(f|0)){break a}while(1){J[a>>2]=J[d>>2];a=a+4|0;d=d+4|0;if((f|0)!=(d|0)){continue}break}}}function Wb(a,b,c,d,e,f){var g=0,h=0,i=0,j=0,k=0;a:{b:{c:{d:{switch(d|0){case 2:d=J[c>>2];c=J[d>>2];d=J[d+4>>2]-c>>3;e=b-4|0;b=J[e>>2];if(d>>>0<=b>>>0){break c}f=d;d=J[a>>2];if(f>>>0<=d>>>0){break c}if(M[c+(b<<3)>>2]>=M[c+(d<<3)>>2]){break a}J[a>>2]=b;J[e>>2]=d;break a;case 0:case 1:break a;default:break d}}if((d|0)>128){break b}if((a|0)==(b|0)){break a}d=a+4|0;if((d|0)==(b|0)){break a}i=J[c>>2];while(1){f=J[d>>2];e:{e=a;if((e|0)==(d|0)){break e}f:{h=J[i>>2];j=J[i+4>>2]-h>>3;if(j>>>0<=f>>>0){break f}k=h+(f<<3)|0;e=d;while(1){c=e-4|0;g=J[c>>2];if(g>>>0>=j>>>0){break f}if(M[k>>2]>=M[h+(g<<3)>>2]){break e}J[e>>2]=g;e=c;if((e|0)!=(a|0)){continue}break}e=a;break e}va();B()}J[e>>2]=f;d=d+4|0;if((d|0)!=(b|0)){continue}break}break a}va();B()}h=d>>>1|0;g=d-h|0;j=h<<2;i=j+a|0;g:{h:{if((d|0)<=(f|0)){ng(a,i,c,h,e);f=b;b=e+j|0;ng(i,f,c,g,b);f=(d<<2)+e|0;c=J[c>>2];d=b;while(1){if((d|0)==(f|0)){if((b|0)==(e|0)){break a}while(1){J[a>>2]=J[e>>2];a=a+4|0;e=e+4|0;if((b|0)!=(e|0)){continue}break}break a}i=J[c>>2];g=J[c+4>>2]-i>>3;h=J[d>>2];if(g>>>0<=h>>>0){break h}k=g;g=J[e>>2];if(k>>>0<=g>>>0){break h}i:{if(M[i+(h<<3)>>2]>2]){J[a>>2]=h;d=d+4|0;break i}J[a>>2]=g;e=e+4|0}a=a+4|0;if((b|0)!=(e|0)){continue}break}break g}Wb(a,i,c,h,e,f);Wb(i,b,c,g,e,f);Id(a,i,b,c,h,g,e,f);return}va();B()}if((d|0)==(f|0)){break a}while(1){J[a>>2]=J[d>>2];a=a+4|0;d=d+4|0;if((f|0)!=(d|0)){continue}break}}}function Vb(a,b,c,d,e,f){var g=0,h=0,i=0,j=0,k=0;a:{b:{c:{d:{switch(d|0){case 2:d=J[c>>2];c=J[d>>2];d=J[d+4>>2]-c>>3;e=b-4|0;b=J[e>>2];if(d>>>0<=b>>>0){break c}f=d;d=J[a>>2];if(f>>>0<=d>>>0){break c}if(M[c+(b<<3)>>2]>=M[c+(d<<3)>>2]){break a}J[a>>2]=b;J[e>>2]=d;break a;case 0:case 1:break a;default:break d}}if((d|0)>128){break b}if((a|0)==(b|0)){break a}d=a+4|0;if((d|0)==(b|0)){break a}i=J[c>>2];while(1){f=J[d>>2];e:{e=a;if((e|0)==(d|0)){break e}f:{h=J[i>>2];j=J[i+4>>2]-h>>3;if(j>>>0<=f>>>0){break f}k=h+(f<<3)|0;e=d;while(1){c=e-4|0;g=J[c>>2];if(g>>>0>=j>>>0){break f}if(M[k>>2]>=M[h+(g<<3)>>2]){break e}J[e>>2]=g;e=c;if((e|0)!=(a|0)){continue}break}e=a;break e}va();B()}J[e>>2]=f;d=d+4|0;if((d|0)!=(b|0)){continue}break}break a}va();B()}h=d>>>1|0;g=d-h|0;j=h<<2;i=j+a|0;g:{h:{if((d|0)<=(f|0)){mg(a,i,c,h,e);f=b;b=e+j|0;mg(i,f,c,g,b);f=(d<<2)+e|0;c=J[c>>2];d=b;while(1){if((d|0)==(f|0)){if((b|0)==(e|0)){break a}while(1){J[a>>2]=J[e>>2];a=a+4|0;e=e+4|0;if((b|0)!=(e|0)){continue}break}break a}i=J[c>>2];g=J[c+4>>2]-i>>3;h=J[d>>2];if(g>>>0<=h>>>0){break h}k=g;g=J[e>>2];if(k>>>0<=g>>>0){break h}i:{if(M[i+(h<<3)>>2]>2]){J[a>>2]=h;d=d+4|0;break i}J[a>>2]=g;e=e+4|0}a=a+4|0;if((b|0)!=(e|0)){continue}break}break g}Vb(a,i,c,h,e,f);Vb(i,b,c,g,e,f);Hd(a,i,b,c,h,g,e,f);return}va();B()}if((d|0)==(f|0)){break a}while(1){J[a>>2]=J[d>>2];a=a+4|0;d=d+4|0;if((f|0)!=(d|0)){continue}break}}}function Ub(a,b,c,d,e,f){var g=0,h=0,i=0,j=0,k=0;a:{b:{c:{d:{switch(d|0){case 2:d=J[c>>2];c=J[d>>2];d=J[d+4>>2]-c>>3;e=b-4|0;b=J[e>>2];if(d>>>0<=b>>>0){break c}f=d;d=J[a>>2];if(f>>>0<=d>>>0){break c}if(M[c+(b<<3)>>2]>=M[c+(d<<3)>>2]){break a}J[a>>2]=b;J[e>>2]=d;break a;case 0:case 1:break a;default:break d}}if((d|0)>128){break b}if((a|0)==(b|0)){break a}d=a+4|0;if((d|0)==(b|0)){break a}i=J[c>>2];while(1){f=J[d>>2];e:{e=a;if((e|0)==(d|0)){break e}f:{h=J[i>>2];j=J[i+4>>2]-h>>3;if(j>>>0<=f>>>0){break f}k=h+(f<<3)|0;e=d;while(1){c=e-4|0;g=J[c>>2];if(g>>>0>=j>>>0){break f}if(M[k>>2]>=M[h+(g<<3)>>2]){break e}J[e>>2]=g;e=c;if((e|0)!=(a|0)){continue}break}e=a;break e}va();B()}J[e>>2]=f;d=d+4|0;if((d|0)!=(b|0)){continue}break}break a}va();B()}h=d>>>1|0;g=d-h|0;j=h<<2;i=j+a|0;g:{h:{if((d|0)<=(f|0)){lg(a,i,c,h,e);f=b;b=e+j|0;lg(i,f,c,g,b);f=(d<<2)+e|0;c=J[c>>2];d=b;while(1){if((d|0)==(f|0)){if((b|0)==(e|0)){break a}while(1){J[a>>2]=J[e>>2];a=a+4|0;e=e+4|0;if((b|0)!=(e|0)){continue}break}break a}i=J[c>>2];g=J[c+4>>2]-i>>3;h=J[d>>2];if(g>>>0<=h>>>0){break h}k=g;g=J[e>>2];if(k>>>0<=g>>>0){break h}i:{if(M[i+(h<<3)>>2]>2]){J[a>>2]=h;d=d+4|0;break i}J[a>>2]=g;e=e+4|0}a=a+4|0;if((b|0)!=(e|0)){continue}break}break g}Ub(a,i,c,h,e,f);Ub(i,b,c,g,e,f);Gd(a,i,b,c,h,g,e,f);return}va();B()}if((d|0)==(f|0)){break a}while(1){J[a>>2]=J[d>>2];a=a+4|0;d=d+4|0;if((f|0)!=(d|0)){continue}break}}}function Tb(a,b,c,d,e,f){var g=0,h=0,i=0,j=0,k=0;a:{b:{c:{d:{switch(d|0){case 2:d=J[c>>2];c=J[d>>2];d=J[d+4>>2]-c>>3;e=b-4|0;b=J[e>>2];if(d>>>0<=b>>>0){break c}f=d;d=J[a>>2];if(f>>>0<=d>>>0){break c}if(M[c+(b<<3)>>2]>=M[c+(d<<3)>>2]){break a}J[a>>2]=b;J[e>>2]=d;break a;case 0:case 1:break a;default:break d}}if((d|0)>128){break b}if((a|0)==(b|0)){break a}d=a+4|0;if((d|0)==(b|0)){break a}i=J[c>>2];while(1){f=J[d>>2];e:{e=a;if((e|0)==(d|0)){break e}f:{h=J[i>>2];j=J[i+4>>2]-h>>3;if(j>>>0<=f>>>0){break f}k=h+(f<<3)|0;e=d;while(1){c=e-4|0;g=J[c>>2];if(g>>>0>=j>>>0){break f}if(M[k>>2]>=M[h+(g<<3)>>2]){break e}J[e>>2]=g;e=c;if((e|0)!=(a|0)){continue}break}e=a;break e}va();B()}J[e>>2]=f;d=d+4|0;if((d|0)!=(b|0)){continue}break}break a}va();B()}h=d>>>1|0;g=d-h|0;j=h<<2;i=j+a|0;g:{h:{if((d|0)<=(f|0)){kg(a,i,c,h,e);f=b;b=e+j|0;kg(i,f,c,g,b);f=(d<<2)+e|0;c=J[c>>2];d=b;while(1){if((d|0)==(f|0)){if((b|0)==(e|0)){break a}while(1){J[a>>2]=J[e>>2];a=a+4|0;e=e+4|0;if((b|0)!=(e|0)){continue}break}break a}i=J[c>>2];g=J[c+4>>2]-i>>3;h=J[d>>2];if(g>>>0<=h>>>0){break h}k=g;g=J[e>>2];if(k>>>0<=g>>>0){break h}i:{if(M[i+(h<<3)>>2]>2]){J[a>>2]=h;d=d+4|0;break i}J[a>>2]=g;e=e+4|0}a=a+4|0;if((b|0)!=(e|0)){continue}break}break g}Tb(a,i,c,h,e,f);Tb(i,b,c,g,e,f);Fd(a,i,b,c,h,g,e,f);return}va();B()}if((d|0)==(f|0)){break a}while(1){J[a>>2]=J[d>>2];a=a+4|0;d=d+4|0;if((f|0)!=(d|0)){continue}break}}}function $b(a,b,c,d,e,f){var g=0,h=0,i=0,j=0,k=0;a:{b:{c:{d:{switch(d|0){case 2:d=J[c>>2];c=J[d>>2];d=J[d+4>>2]-c>>3;e=b-4|0;b=J[e>>2];if(d>>>0<=b>>>0){break c}f=d;d=J[a>>2];if(f>>>0<=d>>>0){break c}if(M[c+(b<<3)>>2]>=M[c+(d<<3)>>2]){break a}J[a>>2]=b;J[e>>2]=d;break a;case 0:case 1:break a;default:break d}}if((d|0)>128){break b}if((a|0)==(b|0)){break a}d=a+4|0;if((d|0)==(b|0)){break a}i=J[c>>2];while(1){f=J[d>>2];e:{e=a;if((e|0)==(d|0)){break e}f:{h=J[i>>2];j=J[i+4>>2]-h>>3;if(j>>>0<=f>>>0){break f}k=h+(f<<3)|0;e=d;while(1){c=e-4|0;g=J[c>>2];if(g>>>0>=j>>>0){break f}if(M[k>>2]>=M[h+(g<<3)>>2]){break e}J[e>>2]=g;e=c;if((e|0)!=(a|0)){continue}break}e=a;break e}va();B()}J[e>>2]=f;d=d+4|0;if((d|0)!=(b|0)){continue}break}break a}va();B()}h=d>>>1|0;g=d-h|0;j=h<<2;i=j+a|0;g:{h:{if((d|0)<=(f|0)){tg(a,i,c,h,e);f=b;b=e+j|0;tg(i,f,c,g,b);f=(d<<2)+e|0;c=J[c>>2];d=b;while(1){if((d|0)==(f|0)){if((b|0)==(e|0)){break a}while(1){J[a>>2]=J[e>>2];a=a+4|0;e=e+4|0;if((b|0)!=(e|0)){continue}break}break a}i=J[c>>2];g=J[c+4>>2]-i>>3;h=J[d>>2];if(g>>>0<=h>>>0){break h}k=g;g=J[e>>2];if(k>>>0<=g>>>0){break h}i:{if(M[i+(h<<3)>>2]>2]){J[a>>2]=h;d=d+4|0;break i}J[a>>2]=g;e=e+4|0}a=a+4|0;if((b|0)!=(e|0)){continue}break}break g}$b(a,i,c,h,e,f);$b(i,b,c,g,e,f);Nd(a,i,b,c,h,g,e,f);return}va();B()}if((d|0)==(f|0)){break a}while(1){J[a>>2]=J[d>>2];a=a+4|0;d=d+4|0;if((f|0)!=(d|0)){continue}break}}}function Di(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;var f=0,g=0,h=0;a=ea-32|0;ea=a;a:{b:{c:{d:{if(!b){break d}f=sb(c);if(f>>>0>=4294967280){break c}e:{f:{if(f>>>0>=11){h=(f|15)+1|0;g=ra(h);J[a+24>>2]=h|-2147483648;J[a+16>>2]=g;J[a+20>>2]=f;break f}H[a+27|0]=f;g=a+16|0;if(!f){break e}}ta(g,c,f)}H[f+g|0]=0;J[a+8>>2]=0;J[a>>2]=0;J[a+4>>2]=0;if(e){if((e|0)<0){break b}c=e<<2;e=ra(c);J[a>>2]=e;f=c+e|0;J[a+8>>2]=f;ta(e,d,c);J[a+4>>2]=f}f=ea-48|0;ea=f;e=pb(b,a+16|0);if((e|0)!=(b+4|0)){c=J[e+4>>2];g:{if(!c){c=e;while(1){d=J[c+8>>2];g=J[d>>2]!=(c|0);c=d;if(g){continue}break}break g}while(1){d=c;c=J[c>>2];if(c){continue}break}}if((e|0)==J[b>>2]){J[b>>2]=d}J[b+8>>2]=J[b+8>>2]-1;Ac(J[b+4>>2],e);c=J[e+28>>2];if(c){J[e+32>>2]=c;qa(c)}if(H[e+27|0]<0){qa(J[e+16>>2])}qa(e)}J[f+8>>2]=0;J[f>>2]=0;J[f+4>>2]=0;c=J[a+4>>2];d=J[a>>2];e=c-d|0;g=0;h:{i:{if((c|0)!=(d|0)){if((e|0)<0){break i}g=ra(e);c=sa(g,0,e);h=c+e|0;J[f+8>>2]=h;J[f+4>>2]=h;J[f>>2]=c;c=d}ta(g,c,e);j:{if(H[a+27|0]>=0){J[f+24>>2]=J[a+24>>2];c=J[a+20>>2];J[f+16>>2]=J[a+16>>2];J[f+20>>2]=c;break j}Ja(f+16|0,J[a+16>>2],J[a+20>>2])}Pb(f+28|0,f);c=f+16|0;zc(f+40|0,b,c,c);c=J[f+28>>2];if(c){J[f+32>>2]=c;qa(c)}if(H[f+27|0]<0){qa(J[f+16>>2])}c=J[f>>2];if(c){J[f+4>>2]=c;qa(c)}ea=f+48|0;break h}ua();B()}c=J[a>>2];if(c){J[a+4>>2]=c;qa(c)}if(H[a+27|0]>=0){break d}qa(J[a+16>>2])}ea=a+32|0;a=(b|0)!=0;break a}hb();B()}ua();B()}return a|0}function ol(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0;c=ea-16|0;ea=c;b=J[J[a+4>>2]+(b<<2)>>2];J[c+12>>2]=b;a=J[a+28>>2];e=J[J[J[a+4>>2]+8>>2]+(b<<2)>>2];b=J[e+28>>2];a:{if(b-1>>>0>=6){b:{if((b|0)!=9){break b}f=J[a+48>>2];a=ra(32);J[c>>2]=a;J[c+4>>2]=17;J[c+8>>2]=-2147483616;H[a+16|0]=K[1261];b=K[1257]|K[1258]<<8|(K[1259]<<16|K[1260]<<24);d=K[1253]|K[1254]<<8|(K[1255]<<16|K[1256]<<24);H[a+8|0]=d;H[a+9|0]=d>>>8;H[a+10|0]=d>>>16;H[a+11|0]=d>>>24;H[a+12|0]=b;H[a+13|0]=b>>>8;H[a+14|0]=b>>>16;H[a+15|0]=b>>>24;b=K[1249]|K[1250]<<8|(K[1251]<<16|K[1252]<<24);d=K[1245]|K[1246]<<8|(K[1247]<<16|K[1248]<<24);H[a|0]=d;H[a+1|0]=d>>>8;H[a+2|0]=d>>>16;H[a+3|0]=d>>>24;H[a+4|0]=b;H[a+5|0]=b>>>8;H[a+6|0]=b>>>16;H[a+7|0]=b>>>24;H[a+17|0]=0;a=kb(f,c+12|0,c,-1);if(H[c+11|0]<0){qa(J[c>>2])}if((a|0)<=0){break b}if(J[e+56>>2]==1){a=ra(48);J[a>>2]=0;J[a+4>>2]=0;J[a+40>>2]=0;J[a+44>>2]=0;J[a+32>>2]=0;J[a+36>>2]=0;J[a+24>>2]=0;J[a+28>>2]=0;J[a+16>>2]=0;J[a+20>>2]=0;J[a+8>>2]=0;J[a+12>>2]=0;a=ee(a);J[a+40>>2]=1032;J[a>>2]=6308;J[a+44>>2]=-1;break a}a=ee(ra(64));J[a+40>>2]=2032;J[a>>2]=9988;J[a+48>>2]=0;J[a+52>>2]=0;J[a+44>>2]=-1;J[a+56>>2]=0;J[a+60>>2]=0;break a}a=ra(36);J[a+32>>2]=0;J[a+12>>2]=-1;J[a+4>>2]=0;J[a+8>>2]=0;J[a+16>>2]=0;J[a+20>>2]=0;J[a>>2]=2392;H[a+21|0]=0;H[a+22|0]=0;H[a+23|0]=0;H[a+24|0]=0;H[a+25|0]=0;H[a+26|0]=0;H[a+27|0]=0;H[a+28|0]=0;break a}a=ee(ra(40))}ea=c+16|0;return a|0}function pl(a){a=a|0;var b=0,c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0;e=J[a+8>>2]-J[a+4>>2]>>2;b=J[a+40>>2];c=J[a+36>>2];d=b-c>>2;a:{if(e>>>0>d>>>0){g=e-d|0;c=J[a+44>>2];b=J[a+40>>2];if(g>>>0<=c-b>>2>>>0){if(g){i=b;b=g<<2;b=sa(i,0,b)+b|0}J[a+40>>2]=b;break a}b:{c:{d:{j=J[a+36>>2];e=b-j>>2;f=e+g|0;if(f>>>0<1073741824){d=c-j|0;c=d>>1;d=d>>>0>=2147483644?1073741823:c>>>0>f>>>0?c:f;if(d){if(d>>>0>=1073741824){break d}i=ra(d<<2)}h=(e<<2)+i|0;c=g<<2;f=sa(h,0,c);e=c+f|0;d=(d<<2)+i|0;if((b|0)==(j|0)){break c}while(1){b=b-4|0;c=J[b>>2];J[b>>2]=0;h=h-4|0;J[h>>2]=c;if((b|0)!=(j|0)){continue}break}J[a+44>>2]=d;d=J[a+40>>2];J[a+40>>2]=e;b=J[a+36>>2];J[a+36>>2]=h;if((b|0)==(d|0)){break b}while(1){d=d-4|0;c=J[d>>2];J[d>>2]=0;if(c){ga[J[J[c>>2]+4>>2]](c)}if((b|0)!=(d|0)){continue}break}break b}ua();B()}ya();B()}J[a+44>>2]=d;J[a+40>>2]=e;J[a+36>>2]=f}if(b){qa(b)}break a}if(d>>>0<=e>>>0){break a}c=c+(e<<2)|0;if((c|0)!=(b|0)){while(1){b=b-4|0;d=J[b>>2];J[b>>2]=0;if(d){ga[J[J[d>>2]+4>>2]](d)}if((b|0)!=(c|0)){continue}break}}J[a+40>>2]=c}if(J[a+8>>2]==J[a+4>>2]){return 1}b=0;while(1){e=ga[J[J[a>>2]+56>>2]](a,b)|0;d=b<<2;c=d+J[a+36>>2]|0;f=J[c>>2];J[c>>2]=e;if(f){ga[J[J[f>>2]+4>>2]](f)}c=J[d+J[a+36>>2]>>2];if(c){if(!(!(J[J[a+48>>2]+(b>>>3&536870908)>>2]>>>b&1)|M[a+52>>2]<=b>>>0)){H[c+28|0]=1}b=b+1|0;if(b>>>0>2]-J[a+4>>2]>>2>>>0){continue}}break}return(c|0)!=0|0}function Tf(a){a=a|0;var b=0,c=0,d=0,e=0,f=0;J[a>>2]=10584;c=a+200|0;d=J[c+136>>2];if(d){b=d;e=J[c+140>>2];if((b|0)!=(e|0)){while(1){b=e-12|0;f=J[b>>2];if(f){J[e-8>>2]=f;qa(f)}e=b;if((b|0)!=(d|0)){continue}break}b=J[c+136>>2]}J[c+140>>2]=d;qa(b)}b=J[c+104>>2];if(b){J[c+108>>2]=b;qa(b)}b=J[c+92>>2];if(b){J[c+96>>2]=b;qa(b)}d=J[c+80>>2];J[c+80>>2]=0;if(d){e=d-4|0;b=J[e>>2];if(b){b=d+(b<<5)|0;while(1){b=Aa(b-32|0);if((d|0)!=(b|0)){continue}break}}qa(e)}b=J[c+68>>2];if(b){J[c+72>>2]=b;qa(b)}b=J[c+44>>2];J[c+44>>2]=0;if(b){qa(b)}b=J[c+32>>2];if(b){J[c+36>>2]=b;qa(b)}Aa(c);b=J[a+184>>2];if(b){J[a+188>>2]=b;qa(b)}d=J[a+172>>2];if(d){b=J[a+176>>2];e=d;if((b|0)!=(d|0)){while(1){e=b-136|0;f=J[e+116>>2];if(f){J[b-16>>2]=f;qa(f)}f=J[b-32>>2];if(f){J[b-28>>2]=f;qa(f)}oc(b-132|0);b=e;if((d|0)!=(b|0)){continue}break}e=J[a+172>>2]}J[a+176>>2]=d;qa(e)}b=J[a+152>>2];if(b){J[a+156>>2]=b;qa(b)}b=J[a+140>>2];if(b){qa(b)}b=J[a+128>>2];if(b){while(1){e=J[b>>2];qa(b);b=e;if(b){continue}break}}b=J[a+120>>2];J[a+120>>2]=0;if(b){qa(b)}b=J[a+108>>2];if(b){J[a+112>>2]=b;qa(b)}b=J[a+96>>2];if(b){J[a+100>>2]=b;qa(b)}b=J[a+84>>2];if(b){qa(b)}b=J[a+72>>2];if(b){J[a+76>>2]=b;qa(b)}b=J[a+52>>2];if(b){J[a+56>>2]=b;qa(b)}b=J[a+40>>2];if(b){J[a+44>>2]=b;qa(b)}b=J[a+28>>2];if(b){qa(b)}b=J[a+16>>2];if(b){J[a+20>>2]=b;qa(b)}b=J[a+12>>2];J[a+12>>2]=0;if(b){pc(b)}return a|0}function af(a,b){var c=0,d=0,e=0,f=0,g=0,h=0,i=0;a:{b:{c:{d:{if(b){if(b>>>0>=1073741824){break d}d=ra(b<<2);c=J[a>>2];J[a>>2]=d;if(c){qa(c)}J[a+4>>2]=b;d=0;if(b>>>0>=4){g=b&-4;while(1){c=d<<2;J[c+J[a>>2]>>2]=0;J[J[a>>2]+(c|4)>>2]=0;J[J[a>>2]+(c|8)>>2]=0;J[J[a>>2]+(c|12)>>2]=0;d=d+4|0;e=e+4|0;if((g|0)!=(e|0)){continue}break}}c=b&3;if(c){while(1){J[J[a>>2]+(d<<2)>>2]=0;d=d+1|0;f=f+1|0;if((c|0)!=(f|0)){continue}break}}e=J[a+8>>2];if(!e){break a}c=a+8|0;g=J[e+4>>2];d=Dl(b);if(d>>>0<2){break c}g=b>>>0<=g>>>0?(g>>>0)%(b>>>0)|0:g;J[J[a>>2]+(g<<2)>>2]=c;c=J[e>>2];if(!c){break a}if(d>>>0<=1){break b}while(1){f=J[c+4>>2];if(f>>>0>=b>>>0){f=(f>>>0)%(b>>>0)|0}e:{if((g|0)==(f|0)){e=c;break e}d=c;h=f<<2;i=h+J[a>>2]|0;if(!J[i>>2]){J[i>>2]=e;e=c;g=f;break e}while(1){f=d;d=J[d>>2];if(J[c+8>>2]==J[d+8>>2]?d:0){continue}break}J[e>>2]=d;J[f>>2]=J[J[h+J[a>>2]>>2]>>2];J[J[h+J[a>>2]>>2]>>2]=c}c=J[e>>2];if(c){continue}break}break a}b=J[a>>2];J[a>>2]=0;if(b){qa(b)}J[a+4>>2]=0;break a}ya();B()}g=b-1&g;J[J[a>>2]+(g<<2)>>2]=c;c=J[e>>2];if(!c){break a}}h=b-1|0;while(1){b=h&J[c+4>>2];f:{if((b|0)==(g|0)){e=c;break f}d=c;f=b<<2;i=f+J[a>>2]|0;if(J[i>>2]){while(1){b=d;d=J[b>>2];if(J[c+8>>2]==J[d+8>>2]?d:0){continue}break}J[e>>2]=d;J[b>>2]=J[J[f+J[a>>2]>>2]>>2];J[J[f+J[a>>2]>>2]>>2]=c;break f}J[i>>2]=e;e=c;g=b}c=J[e>>2];if(c){continue}break}}}function _a(a,b,c,d){var e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0;g=J[b+16>>2];e=J[c+4>>2]-g|0;J[c>>2]=0|J[c>>2]-g;J[c+4>>2]=e;e=J[d+4>>2]-g|0;f=J[d>>2]-g|0;J[d>>2]=j|f;J[d+4>>2]=e;h=J[b+16>>2];g=e>>31;j=(g^e)-g|0;g=f>>31;if(h>>>0>>0){i=J[c+4>>2];k=J[c>>2];a:{b:{if((k|0)>=0){e=1;g=1;if((i|0)>=0){break a}f=1;e=-1;g=-1;if(k){break b}break a}f=-1;e=-1;g=-1;if((i|0)<=0){break a}}e=(i|0)<=0?-1:1;g=f}f=1;j=-1;l=k<<1;k=P(g,h);l=l-k|0;g=(P(e,g)|0)>=0;e=P(e,h);J[c+4>>2]=((g?0-l|0:l)+e|0)/2;e=(i<<1)-e|0;J[c>>2]=(k+(g?0-e|0:e)|0)/2;g=J[d+4>>2];i=J[d>>2];c:{d:{if((i|0)>=0){e=1;if((g|0)>=0){break c}j=1;f=-1;e=-1;if(i){break d}break c}f=-1;e=-1;if((g|0)<=0){break c}}f=(g|0)<=0?-1:1;e=j}h=i<<1;j=J[b+16>>2];i=P(j,e);h=h-i|0;l=0-h|0;k=h;h=(P(e,f)|0)>=0;f=P(f,j);e=((h?l:k)+f|0)/2|0;J[d+4>>2]=e;f=(g<<1)-f|0;f=(i+(h?0-f|0:f)|0)/2|0;J[d>>2]=f}e:{f:{g:{h:{i:{j:{if(f){if((f|0)>=0){break j}if((e|0)>0){break h}break e}if(e){break i}e=0;f=0;break e}if((e|0)<0){break g}e=0-J[c+4>>2]|0;J[c>>2]=0-J[c>>2];J[c+4>>2]=e;f=0-J[d>>2]|0;e=0-J[d+4>>2]|0;break f}if((e|0)<=0){break g}}e=J[c>>2];J[c>>2]=0-J[c+4>>2];J[c+4>>2]=e;f=0-J[d+4>>2]|0;e=J[d>>2];break f}e=0-J[c>>2]|0;J[c>>2]=J[c+4>>2];J[c+4>>2]=e;f=J[d+4>>2];e=0-J[d>>2]|0}J[d>>2]=f;J[d+4>>2]=e}d=J[c>>2];b=J[b+4>>2];c=J[c+4>>2]-e|0;J[a+4>>2]=(b&c>>31)+c;c=a;a=d-f|0;J[c>>2]=(b&a>>31)+a}function ad(a,b){var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0;d=ea-16|0;ea=d;h=ea-16|0;ea=h;De(d);ea=h+16|0;fd(d,K[d+11|0]>>>7|0?(J[d+8>>2]&2147483647)-1|0:10);i=ea-16|0;ea=i;l=+b;if(K[d+11|0]>>>7|0){h=J[d+4>>2]}else{h=K[d+11|0]}while(1){a:{if(K[d+11|0]>>>7|0){e=J[d>>2]}else{e=d}c=e;O[i>>3]=l;k=ea-16|0;ea=k;J[k+12>>2]=i;f=ea-160|0;ea=f;e=-1;g=h+1|0;J[f+148>>2]=g?g-1|0:0;j=g?c:f+158|0;J[f+144>>2]=j;c=sa(f,0,144);J[c+76>>2]=-1;J[c+36>>2]=371;J[c+80>>2]=-1;J[c+44>>2]=c+159;J[c+84>>2]=c+144;b:{if((g|0)<0){J[4804]=61;break b}H[j|0]=0;g=0;f=ea-208|0;ea=f;J[f+204>>2]=i;e=f+160|0;sa(e,0,40);J[f+200>>2]=J[f+204>>2];c:{if((Pe(0,f+200|0,f+80|0,e)|0)<0){e=-1;break c}m=J[c+76>>2]>=0;j=J[c>>2];if(J[c+72>>2]<=0){J[c>>2]=j&-33}d:{e:{f:{if(!J[c+48>>2]){J[c+48>>2]=80;J[c+28>>2]=0;J[c+16>>2]=0;J[c+20>>2]=0;g=J[c+44>>2];J[c+44>>2]=f;break f}if(J[c+16>>2]){break e}}e=-1;if(Re(c)){break d}}e=Pe(c,f+200|0,f+80|0,f+160|0)}if(g){ga[J[c+36>>2]](c,0,0)|0;J[c+48>>2]=0;J[c+44>>2]=g;J[c+28>>2]=0;g=J[c+20>>2];J[c+16>>2]=0;J[c+20>>2]=0;e=g?e:-1}g=J[c>>2];J[c>>2]=g|j&32;e=g&32?-1:e;if(!m){break c}}ea=f+208|0}ea=c+160|0;ea=k+16|0;g:{if((e|0)>=0){if(e>>>0<=h>>>0){break a}h=e;break g}h=h<<1|1}fd(d,h);continue}break}fd(d,e);h=J[d+4>>2];J[a>>2]=J[d>>2];J[a+4>>2]=h;J[a+8>>2]=J[d+8>>2];De(d);ea=i+16|0;if(K[d+11|0]>>>7|0){qa(J[d>>2])}ea=d+16|0}function Eg(a,b,c,d,e){var f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0;m=ea-16|0;ea=m;f=J[b+28>>2];g=J[b+24>>2];J[a+8>>2]=g;J[a+12>>2]=f;f=J[b+20>>2];J[a>>2]=J[b+16>>2];J[a+4>>2]=f;f=J[b+36>>2];J[a+16>>2]=J[b+32>>2];J[a+20>>2]=f;J[a+8>>2]=d+g;a:{b:{if((d|0)>0){j=J[b>>2];g=J[a+12>>2];n=J[a+16>>2];o=O[a>>3];while(1){i=J[b+4>>2]-j>>2;f=J[(h<<2)+c>>2];c:{if(i>>>0>f>>>0){break c}J[m+12>>2]=0;k=f+1|0;if(k>>>0>i>>>0){La(b,k-i|0,m+12|0);j=J[b>>2];break c}if(i>>>0<=k>>>0){break c}J[b+4>>2]=(k<<2)+j}k=(f<<2)+j|0;i=J[k>>2];d:{if((i|0)>=2){l=+(i|0);l=za(l)*l;break d}l=0;if(i){break d}n=n+1|0;J[a+16>>2]=n;if(f>>>0<=g>>>0){break d}J[a+12>>2]=f;g=f}f=i+1|0;J[k>>2]=f;p=+(f|0);o=za(p)*p-l+o;O[a>>3]=o;h=h+1|0;if((h|0)!=(d|0)){continue}break}if(e){break b}if((d|0)<=0){break a}a=J[b>>2];j=0;h=0;if(d>>>0>=4){f=d&-4;e=0;while(1){b=h<<2;g=a+(J[b+c>>2]<<2)|0;J[g>>2]=J[g>>2]-1;g=a+(J[(b|4)+c>>2]<<2)|0;J[g>>2]=J[g>>2]-1;g=a+(J[(b|8)+c>>2]<<2)|0;J[g>>2]=J[g>>2]-1;b=a+(J[(b|12)+c>>2]<<2)|0;J[b>>2]=J[b>>2]-1;h=h+4|0;e=e+4|0;if((f|0)!=(e|0)){continue}break}}b=d&3;if(!b){break a}while(1){d=a+(J[(h<<2)+c>>2]<<2)|0;J[d>>2]=J[d>>2]-1;h=h+1|0;j=j+1|0;if((b|0)!=(j|0)){continue}break}break a}if(!e){break a}}c=J[a+4>>2];J[b+16>>2]=J[a>>2];J[b+20>>2]=c;J[b+32>>2]=J[a+16>>2];c=J[a+12>>2];J[b+24>>2]=J[a+8>>2];J[b+28>>2]=c}ea=m+16|0}function ag(a,b,c,d){var e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0;f=J[a>>2];g=b-f|0;i=(g&-4)+f|0;l=d-c|0;if((l|0)<=0){return}a:{j=l>>2;e=J[a+8>>2];h=J[a+4>>2];if((j|0)<=e-h>>2){g=h-i|0;e=g>>2;if((e|0)>=(j|0)){b=h;f=d;break a}b=h;f=(e<<2)+c|0;if((f|0)!=(d|0)){e=f;while(1){J[b>>2]=J[e>>2];b=b+4|0;e=e+4|0;if((e|0)!=(d|0)){continue}break}}J[a+4>>2]=b;if((g|0)>0){break a}return}b:{b=(h-f>>2)+j|0;if(b>>>0<1073741824){e=e-f|0;k=e>>1;k=e>>>0>=2147483644?1073741823:b>>>0>>0?k:b;if(k){if(k>>>0>=1073741824){break b}e=ra(k<<2)}else{e=0}b=e+(g&-4)|0;if((c|0)!=(d|0)){b=ta(b,c,l&-4)+(j<<2)|0}if((g|0)>0){ta(e,f,g)}if((h|0)!=(i|0)){while(1){J[b>>2]=J[i>>2];b=b+4|0;i=i+4|0;if((h|0)!=(i|0)){continue}break}}J[a+8>>2]=e+(k<<2);J[a+4>>2]=b;J[a>>2]=e;if(f){qa(f)}return}ua();B()}ya();B()}e=j<<2;j=e+i|0;d=b;e=b-e|0;if(h>>>0>e>>>0){g=e;while(1){J[d>>2]=J[g>>2];d=d+4|0;g=g+4|0;if(h>>>0>g>>>0){continue}break}}J[a+4>>2]=d;c:{if((b|0)==(j|0)){break c}a=(b-j|0)-4|0;h=(a>>>2|0)+1&3;if(h){d=0;while(1){b=b-4|0;e=e-4|0;J[b>>2]=J[e>>2];d=d+1|0;if((h|0)!=(d|0)){continue}break}}if(a>>>0<12){break c}while(1){J[b-4>>2]=J[e-4>>2];J[b-8>>2]=J[e-8>>2];J[b-12>>2]=J[e-12>>2];b=b-16|0;e=e-16|0;J[b>>2]=J[e>>2];if((e|0)!=(i|0)){continue}break}}if((c|0)==(f|0)){return}b=i;while(1){J[b>>2]=J[c>>2];b=b+4|0;c=c+4|0;if((f|0)!=(c|0)){continue}break}}function $f(a,b){var c=0,d=0,e=0,f=0,g=0;e=-1;c=(b|0)==-1;d=-1;a:{if(c){break a}d=b+1|0;e=(d>>>0)%3|0?d:b-2|0;d=b-1|0;if((b>>>0)%3|0){break a}d=b+2|0}f=c?-1:(b>>>0)/3|0;g=J[a+28>>2]+(f>>>3&536870908)|0;J[g>>2]=J[g>>2]|1<>2]+12>>2]+(b<<2)>>2];if((c|0)==-1){break b}c=(c>>>0)/3|0;if(J[J[a+28>>2]+(c>>>3&268435452)>>2]>>>c&1){break b}c=J[a+172>>2];if((c|0)==J[a+176>>2]){break b}f=1<>>5<<2;b=0;while(1){Ga(J[a+280>>2]+(b<<5)|0,(f&J[g+J[(P(b,136)+c|0)+4>>2]>>2])!=0);b=b+1|0;c=J[a+172>>2];if(b>>>0<(J[a+176>>2]-c|0)/136>>>0){continue}break}}c:{if((e|0)==-1){break c}b=J[J[J[a+12>>2]+12>>2]+(e<<2)>>2];if((b|0)==-1){break c}b=(b>>>0)/3|0;if(J[J[a+28>>2]+(b>>>3&268435452)>>2]>>>b&1){break c}c=J[a+172>>2];if((c|0)==J[a+176>>2]){break c}f=1<>>5<<2;b=0;while(1){Ga(J[a+280>>2]+(b<<5)|0,(f&J[e+J[(P(b,136)+c|0)+4>>2]>>2])!=0);b=b+1|0;c=J[a+172>>2];if(b>>>0<(J[a+176>>2]-c|0)/136>>>0){continue}break}}d:{if((d|0)==-1){break d}b=J[J[J[a+12>>2]+12>>2]+(d<<2)>>2];if((b|0)==-1){break d}b=(b>>>0)/3|0;if(J[J[a+28>>2]+(b>>>3&268435452)>>2]>>>b&1){break d}c=J[a+172>>2];if((c|0)==J[a+176>>2]){break d}e=1<>>5<<2;b=0;while(1){Ga(J[a+280>>2]+(b<<5)|0,(e&J[d+J[(P(b,136)+c|0)+4>>2]>>2])!=0);b=b+1|0;c=J[a+172>>2];if(b>>>0<(J[a+176>>2]-c|0)/136>>>0){continue}break}}}function tf(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,f=0,g=0,h=0;a=0;a:{if(!d|(!b|(c|0)<0)){break a}f=J[b+8>>2];if(J[b+12>>2]-f>>2<=(c|0)){break a}if(!J[b+4>>2]){a=ra(36);J[a+4>>2]=0;J[a+8>>2]=0;J[a+24>>2]=0;J[a+28>>2]=0;e=a+16|0;J[e>>2]=0;J[e+4>>2]=0;J[a>>2]=a+4;J[a+32>>2]=0;J[a+12>>2]=e;J[b+4>>2]=a}a=J[J[f+(c<<2)>>2]+60>>2];d=kd(ra(28),d);J[d+24>>2]=a;a=J[b+4>>2];c=ea-16|0;ea=c;J[c+8>>2]=d;b:{if(!d){break b}b=J[a+28>>2];c:{if(b>>>0>2]){J[c+8>>2]=0;J[b>>2]=d;J[a+28>>2]=b+4;break c}b=0;d:{e:{f:{e=J[a+24>>2];f=J[a+28>>2]-e>>2;d=f+1|0;if(d>>>0<1073741824){e=J[a+32>>2]-e|0;g=e>>1;d=e>>>0>=2147483644?1073741823:d>>>0>>0?g:d;if(d){if(d>>>0>=1073741824){break f}b=ra(d<<2)}g=J[c+8>>2];J[c+8>>2]=0;e=(f<<2)+b|0;J[e>>2]=g;f=(d<<2)+b|0;g=e+4|0;b=J[a+28>>2];d=J[a+24>>2];if((b|0)==(d|0)){break e}while(1){b=b-4|0;h=J[b>>2];J[b>>2]=0;e=e-4|0;J[e>>2]=h;if((b|0)!=(d|0)){continue}break}J[a+32>>2]=f;b=J[a+28>>2];J[a+28>>2]=g;d=J[a+24>>2];J[a+24>>2]=e;if((b|0)==(d|0)){break d}while(1){b=b-4|0;a=J[b>>2];J[b>>2]=0;if(a){mb(a+12|0,J[a+16>>2]);lb(a,J[a+4>>2]);qa(a)}if((b|0)!=(d|0)){continue}break}break d}ua();B()}ya();B()}J[a+32>>2]=f;J[a+28>>2]=g;J[a+24>>2]=e}if(d){qa(d)}}a=J[c+8>>2];J[c+8>>2]=0;if(!a){break b}mb(a+12|0,J[a+16>>2]);lb(a,J[a+4>>2]);qa(a)}ea=c+16|0;a=1}return a|0}function Xa(a,b){var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0;f=ea-16|0;ea=f;Da(J[a+12>>2],b);a:{if(!J[a+12>>2]){break a}m=f+15|0;n=f+16|0;while(1){b:{c:{e=J[a>>2];i=J[e+(h<<3)>>2];d=i>>>0<64;if(!d){c=1;if(i>>>0<16384){break c}c=2;if(i>>>0<=4194303){break c}break a}c=0;if(i){break c}while(1){d:{if(J[(e+(c+h<<3)|0)+8>>2]){d=c;break d}d=c+1|0;if(J[(e+(h+d<<3)|0)+8>>2]){break d}d=c+2|0;if(J[(e+(h+d<<3)|0)+8>>2]){break d}d=63;c=c+3|0;if((c|0)!=63){continue}}break}H[f+15|0]=d<<2|3;c=J[b+20>>2];if(!J[b+16>>2]&(c|0)<=0|(c|0)<0){wa(b,J[b+4>>2],f+15|0,n)}h=d+h|0;break b}H[f+14|0]=i<<2|c;e=J[b+20>>2];if(!J[b+16>>2]&(e|0)<=0|(e|0)<0){wa(b,J[b+4>>2],f+14|0,m)}if(d){break b}d=J[b+20>>2];if(!!J[b+16>>2]&(d|0)>=0|(d|0)>0){break b}o=c>>>0<=1?1:c;k=0;while(1){k=k+1|0;l=i>>>(k<<3)-2|0;H[f+13|0]=l;e:{c=J[b+20>>2];if(!!J[b+16>>2]&(c|0)>=0|(c|0)>0){break e}g=J[b+8>>2];c=J[b+4>>2];if((g-c|0)>0){H[c|0]=K[f+13|0];J[b+4>>2]=c+1;break e}e=J[b>>2];c=c-e|0;d=c+1|0;if((d|0)>=0){g=g-e|0;j=g<<1;g=g>>>0>=1073741823?2147483647:d>>>0>>0?j:d;if(g){d=ra(g)}else{d=0}j=d+c|0;H[j|0]=l;if((c|0)>0){ta(d,e,c)}J[b+8>>2]=d+g;J[b+4>>2]=j+1;J[b>>2]=d;if(!e){break e}qa(e);break e}ua();B()}if((k|0)!=(o|0)){continue}break}}h=h+1|0;if(h>>>0>2]){continue}break}}ea=f+16|0}function Te(a){var b=0,c=0,d=0,e=0,f=0;a:{b:{c:{d:{e:{b=J[a+4>>2];f:{if((b|0)!=J[a+104>>2]){J[a+4>>2]=b+1;b=K[b|0];break f}b=Pa(a)}switch(b-43|0){case 0:case 2:break e;default:break d}}f=(b|0)==45;b=J[a+4>>2];g:{if((b|0)!=J[a+104>>2]){J[a+4>>2]=b+1;b=K[b|0];break g}b=Pa(a)}e=b-58|0;if(e>>>0>4294967285){break c}if(J[a+116>>2]<0){break b}J[a+4>>2]=J[a+4>>2]-1;break b}e=b-58|0}if(e>>>0<4294967286){break b}e=b-48|0;if(e>>>0<10){while(1){d=(P(d,10)+b|0)-48|0;c=(d|0)<214748364;b=J[a+4>>2];h:{if((b|0)!=J[a+104>>2]){J[a+4>>2]=b+1;b=K[b|0];break h}b=Pa(a)}e=b-48|0;if(c&e>>>0<=9){continue}break}c=d>>31}i:{if(e>>>0>=10){break i}while(1){c=Al(d,c,10,0);d=c+b|0;b=fa;b=c>>>0>d>>>0?b+1|0:b;c=d;d=c-48|0;c=b-(c>>>0<48)|0;b=J[a+4>>2];j:{if((b|0)!=J[a+104>>2]){J[a+4>>2]=b+1;b=K[b|0];break j}b=Pa(a)}e=b-48|0;if(e>>>0>9){break i}if(d>>>0<2061584302&(c|0)<=21474836|(c|0)<21474836){continue}break}}if(e>>>0<10){while(1){b=J[a+4>>2];k:{if((b|0)!=J[a+104>>2]){J[a+4>>2]=b+1;b=K[b|0];break k}b=Pa(a)}if(b-48>>>0<10){continue}break}}b=J[a+116>>2];if((b|0)>0|(b|0)>=0){J[a+4>>2]=J[a+4>>2]-1}a=d;d=f?0-a|0:a;c=f?0-(((a|0)!=0)+c|0)|0:c;break a}c=-2147483648;if(J[a+116>>2]<0){break a}J[a+4>>2]=J[a+4>>2]-1;fa=-2147483648;return 0}fa=c;return d}function kl(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0,i=0;f=J[a+16>>2];a:{if(J[a+20>>2]-f>>2<=(b|0)){break a}h=J[f+(b<<2)>>2];if((h|0)<0){break a}if(M[a+52>>2]<=h>>>0){b:{b=ea-16|0;ea=b;c:{e=J[a+52>>2];c=h+1|0;d:{if(e>>>0>>0){f=c-e|0;g=J[a+56>>2];d=g<<5;e:{if(!(f>>>0>d>>>0|e>>>0>d-f>>>0)){J[a+52>>2]=c;d=e&31;c=J[a+48>>2]+(e>>>3&536870908)|0;break e}J[b+8>>2]=0;J[b>>2]=0;J[b+4>>2]=0;if((c|0)<0){break c}if(d>>>0<=1073741822){d=g<<6;c=c+31&-32;i=c>>>0>>0?d:c}else{i=2147483647}Gb(b,i);d=J[a+52>>2];J[b+4>>2]=d+f;e=J[a+48>>2];c=J[b>>2];f:{if((d|0)<=0){d=0;break f}g=d>>>5<<2;c=xa(c,e,g)+g|0;d=d&31;if(d){i=-1>>>32-d|0;J[c>>2]=J[c>>2]&(i^-1)|J[e+g>>2]&i}e=J[a+48>>2]}J[a+48>>2]=J[b>>2];J[b>>2]=e;g=J[a+52>>2];J[a+52>>2]=J[b+4>>2];J[b+4>>2]=g;g=J[a+56>>2];J[a+56>>2]=J[b+8>>2];J[b+8>>2]=g;if(!e){break e}qa(e)}if(!f){break d}if(d){e=32-d|0;g=e>>>0>>0?e:f;J[c>>2]=J[c>>2]&(-1<>>e-g^-1);f=f-g|0;c=c+4|0}i=c;c=f>>>5<<2;d=sa(i,0,c);if((f&-32)==(f|0)){break d}c=c+d|0;J[c>>2]=J[c>>2]&(-1>>>32-(f&31)^-1);break d}J[a+52>>2]=c}ea=b+16|0;break b}ua();B()}}c=1;b=J[a+48>>2]+(h>>>3&536870908)|0;J[b>>2]=J[b>>2]|1<>2];a=J[a+36>>2];if(b-a>>2>>>0<=h>>>0){break a}H[J[a+(h<<2)>>2]+28|0]=1}return c|0}function Ci(a,b,c,d){a=a|0;b=b|0;c=c|0;d=+d;var e=0,f=0,g=0,h=0,i=0;g=ea-16|0;ea=g;a:{b:{c:{if(!b){break c}e=sb(c);if(e>>>0>=4294967280){break b}d:{e:{if(e>>>0>=11){f=(e|15)+1|0;a=ra(f);J[g+8>>2]=f|-2147483648;J[g>>2]=a;J[g+4>>2]=e;break e}H[g+11|0]=e;a=g;if(!e){break d}}ta(a,c,e)}H[a+e|0]=0;h=ea-16|0;ea=h;O[h+8>>3]=d;f=ea-48|0;ea=f;e=pb(b,g);if((e|0)!=(b+4|0)){a=J[e+4>>2];f:{if(!a){a=e;while(1){c=J[a+8>>2];i=J[c>>2]!=(a|0);a=c;if(i){continue}break}break f}while(1){c=a;a=J[a>>2];if(a){continue}break}}if((e|0)==J[b>>2]){J[b>>2]=c}J[b+8>>2]=J[b+8>>2]-1;Ac(J[b+4>>2],e);a=J[e+28>>2];if(a){J[e+32>>2]=a;qa(a)}if(H[e+27|0]<0){qa(J[e+16>>2])}qa(e)}a=ra(8);J[f>>2]=a;c=a+8|0;J[f+8>>2]=c;J[f+4>>2]=c;c=J[h+12>>2];e=J[h+8>>2];H[a|0]=e;H[a+1|0]=e>>>8;H[a+2|0]=e>>>16;H[a+3|0]=e>>>24;H[a+4|0]=c;H[a+5|0]=c>>>8;H[a+6|0]=c>>>16;H[a+7|0]=c>>>24;g:{if(H[g+11|0]>=0){J[f+24>>2]=J[g+8>>2];a=J[g+4>>2];J[f+16>>2]=J[g>>2];J[f+20>>2]=a;break g}Ja(f+16|0,J[g>>2],J[g+4>>2])}Pb(f+28|0,f);a=f+16|0;zc(f+40|0,b,a,a);a=J[f+28>>2];if(a){J[f+32>>2]=a;qa(a)}if(H[f+27|0]<0){qa(J[f+16>>2])}a=J[f>>2];if(a){J[f+4>>2]=a;qa(a)}ea=f+48|0;ea=h+16|0;if(H[g+11|0]>=0){break c}qa(J[g>>2])}ea=g+16|0;a=(b|0)!=0;break a}hb();B()}return a|0}function re(a,b){var c=0,d=0,e=0,f=0,g=0;e=ea-16|0;ea=e;J[a+8>>2]=b;J[a>>2]=0;c=a+12|0;J[c>>2]=0;J[c+4>>2]=0;J[c+24>>2]=0;J[c+28>>2]=0;J[c+16>>2]=0;J[c+20>>2]=0;J[c+8>>2]=0;J[c+12>>2]=0;J[a+44>>2]=0;J[a+48>>2]=0;J[a+60>>2]=0;J[a+52>>2]=0;J[a+56>>2]=0;c=a- -64|0;J[c>>2]=0;J[c+4>>2]=0;J[c+16>>2]=0;J[c+8>>2]=0;J[c+12>>2]=0;J[a+84>>2]=0;J[a+88>>2]=0;J[a+100>>2]=0;J[a+92>>2]=0;J[a+96>>2]=0;J[a+112>>2]=0;J[a+104>>2]=0;J[a+108>>2]=0;g=a+140|0;a:{b:{if(b){if(b>>>0<1073741824){break b}ua();B()}J[a+116>>2]=0;J[a+120>>2]=0;J[a+132>>2]=0;J[a+136>>2]=0;J[a+124>>2]=0;J[a+128>>2]=0;J[e+8>>2]=0;J[e>>2]=0;J[e+4>>2]=0;c=1;break a}c=b<<2;d=ra(c);J[a+104>>2]=d;f=c+d|0;J[a+112>>2]=f;sa(d,0,c);J[a+124>>2]=0;J[a+116>>2]=0;J[a+120>>2]=0;J[a+108>>2]=f;d=ra(c);J[a+116>>2]=d;f=c+d|0;J[a+124>>2]=f;sa(d,0,c);J[a+136>>2]=0;J[a+128>>2]=0;J[a+132>>2]=0;J[a+120>>2]=f;d=ra(c);J[a+128>>2]=d;f=c+d|0;J[a+136>>2]=f;sa(d,0,c);J[a+132>>2]=f;d=ra(c);J[e>>2]=d;f=c+d|0;J[e+8>>2]=f;sa(d,0,c);J[e+4>>2]=f;c=b<<5|1}Lb(g,c,e);d=J[e>>2];if(d){J[e+4>>2]=d;qa(d)}J[e+8>>2]=0;J[e>>2]=0;J[e+4>>2]=0;if(b){b=b<<2;d=ra(b);J[e>>2]=d;f=b+d|0;J[e+8>>2]=f;sa(d,0,b);J[e+4>>2]=f}Lb(a+152|0,c,e);b=J[e>>2];if(b){J[e+4>>2]=b;qa(b)}ea=e+16|0;return a} +function gj(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0;f=ea-16|0;ea=f;ga[J[J[b>>2]+64>>2]](a,b);if(!J[a>>2]){if(H[a+15|0]<0){qa(J[a+4>>2])}g=J[b+48>>2];c=ra(32);J[f>>2]=c;J[f+4>>2]=29;J[f+8>>2]=-2147483616;d=K[1308]|K[1309]<<8|(K[1310]<<16|K[1311]<<24);e=K[1304]|K[1305]<<8|(K[1306]<<16|K[1307]<<24);H[c+21|0]=e;H[c+22|0]=e>>>8;H[c+23|0]=e>>>16;H[c+24|0]=e>>>24;H[c+25|0]=d;H[c+26|0]=d>>>8;H[c+27|0]=d>>>16;H[c+28|0]=d>>>24;d=K[1303]|K[1304]<<8|(K[1305]<<16|K[1306]<<24);e=K[1299]|K[1300]<<8|(K[1301]<<16|K[1302]<<24);H[c+16|0]=e;H[c+17|0]=e>>>8;H[c+18|0]=e>>>16;H[c+19|0]=e>>>24;H[c+20|0]=d;H[c+21|0]=d>>>8;H[c+22|0]=d>>>16;H[c+23|0]=d>>>24;d=K[1295]|K[1296]<<8|(K[1297]<<16|K[1298]<<24);e=K[1291]|K[1292]<<8|(K[1293]<<16|K[1294]<<24);H[c+8|0]=e;H[c+9|0]=e>>>8;H[c+10|0]=e>>>16;H[c+11|0]=e>>>24;H[c+12|0]=d;H[c+13|0]=d>>>8;H[c+14|0]=d>>>16;H[c+15|0]=d>>>24;d=K[1287]|K[1288]<<8|(K[1289]<<16|K[1290]<<24);e=K[1283]|K[1284]<<8|(K[1285]<<16|K[1286]<<24);H[c|0]=e;H[c+1|0]=e>>>8;H[c+2|0]=e>>>16;H[c+3|0]=e>>>24;H[c+4|0]=d;H[c+5|0]=d>>>8;H[c+6|0]=d>>>16;H[c+7|0]=d>>>24;H[c+29|0]=0;c=Qb(g,f,0);if(H[f+11|0]<0){qa(J[f>>2])}if(c){ga[J[J[b>>2]+68>>2]](b)}J[a>>2]=0;J[a+4>>2]=0;J[a+8>>2]=0;J[a+12>>2]=0}ea=f+16|0}function $h(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0;bf(a,b,c);c=J[a+84>>2];d=J[a+88>>2]-c>>2;a:{if((d|0)>(b|0)){break a}b=b+1|0;if(b>>>0>d>>>0){b:{d=b-d|0;e=J[a+92>>2];c=J[a+88>>2];if(d>>>0<=e-c>>2>>>0){c:{if(!d){break c}b=c;f=d&7;if(f){while(1){J[b>>2]=1;b=b+4|0;g=g+1|0;if((f|0)!=(g|0)){continue}break}}c=(d<<2)+c|0;if((d-1&1073741823)>>>0<7){break c}while(1){J[b+24>>2]=1;J[b+28>>2]=1;J[b+16>>2]=1;J[b+20>>2]=1;J[b+8>>2]=1;J[b+12>>2]=1;J[b>>2]=1;J[b+4>>2]=1;b=b+32|0;if((c|0)!=(b|0)){continue}break}}J[a+88>>2]=c;break b}d:{f=J[a+84>>2];j=c-f|0;c=j>>2;b=c+d|0;if(b>>>0<1073741824){e=e-f|0;h=e>>1;e=e>>>0>=2147483644?1073741823:b>>>0>>0?h:b;if(e){if(e>>>0>=1073741824){break d}i=ra(e<<2)}c=(c<<2)+i|0;b=c;h=d&7;if(h){b=c;while(1){J[b>>2]=1;b=b+4|0;g=g+1|0;if((h|0)!=(g|0)){continue}break}}c=c+(d<<2)|0;if((d-1&1073741823)>>>0>=7){while(1){J[b+24>>2]=1;J[b+28>>2]=1;J[b+16>>2]=1;J[b+20>>2]=1;J[b+8>>2]=1;J[b+12>>2]=1;J[b>>2]=1;J[b+4>>2]=1;b=b+32|0;if((c|0)!=(b|0)){continue}break}}if((j|0)>0){ta(i,f,j)}J[a+92>>2]=(e<<2)+i;J[a+88>>2]=c;J[a+84>>2]=i;if(f){qa(f)}break b}ua();B()}ya();B()}return}if(b>>>0>=d>>>0){break a}J[a+88>>2]=c+(b<<2)}}function eb(a){var b=0,c=0,d=0,e=0,f=0;e=ea-16|0;ea=e;b=ra(16);J[e>>2]=b;J[e+4>>2]=14;J[e+8>>2]=-2147483632;c=K[1602]|K[1603]<<8|(K[1604]<<16|K[1605]<<24);d=K[1598]|K[1599]<<8|(K[1600]<<16|K[1601]<<24);H[b+6|0]=d;H[b+7|0]=d>>>8;H[b+8|0]=d>>>16;H[b+9|0]=d>>>24;H[b+10|0]=c;H[b+11|0]=c>>>8;H[b+12|0]=c>>>16;H[b+13|0]=c>>>24;c=K[1596]|K[1597]<<8|(K[1598]<<16|K[1599]<<24);d=K[1592]|K[1593]<<8|(K[1594]<<16|K[1595]<<24);H[b|0]=d;H[b+1|0]=d>>>8;H[b+2|0]=d>>>16;H[b+3|0]=d>>>24;H[b+4|0]=c;H[b+5|0]=c>>>8;H[b+6|0]=c>>>16;H[b+7|0]=c>>>24;H[b+14|0]=0;f=Cb(a,e,-1);if(H[e+11|0]<0){qa(J[e>>2])}b=ra(16);J[e>>2]=b;J[e+4>>2]=14;J[e+8>>2]=-2147483632;c=K[1617]|K[1618]<<8|(K[1619]<<16|K[1620]<<24);d=K[1613]|K[1614]<<8|(K[1615]<<16|K[1616]<<24);H[b+6|0]=d;H[b+7|0]=d>>>8;H[b+8|0]=d>>>16;H[b+9|0]=d>>>24;H[b+10|0]=c;H[b+11|0]=c>>>8;H[b+12|0]=c>>>16;H[b+13|0]=c>>>24;c=K[1611]|K[1612]<<8|(K[1613]<<16|K[1614]<<24);d=K[1607]|K[1608]<<8|(K[1609]<<16|K[1610]<<24);H[b|0]=d;H[b+1|0]=d>>>8;H[b+2|0]=d>>>16;H[b+3|0]=d>>>24;H[b+4|0]=c;H[b+5|0]=c>>>8;H[b+6|0]=c>>>16;H[b+7|0]=c>>>24;H[b+14|0]=0;a=Cb(a,e,-1);if(H[e+11|0]<0){qa(J[e>>2])}ea=e+16|0;a=(a|0)<(f|0)?f:a;return(a|0)==-1?5:a}function oe(a,b){var c=0,d=0,e=0,f=0,g=0;d=ea-16|0;ea=d;J[a+8>>2]=b;J[a>>2]=0;J[a+12>>2]=0;J[a+16>>2]=0;J[a+28>>2]=0;J[a+20>>2]=0;J[a+24>>2]=0;J[a+32>>2]=0;J[a+36>>2]=0;J[a+48>>2]=0;J[a+40>>2]=0;J[a+44>>2]=0;J[a+52>>2]=0;J[a+56>>2]=0;J[a+68>>2]=0;J[a+60>>2]=0;J[a+64>>2]=0;J[a+72>>2]=0;J[a+76>>2]=0;J[a+88>>2]=0;J[a+80>>2]=0;J[a+84>>2]=0;J[a+100>>2]=0;J[a+92>>2]=0;J[a+96>>2]=0;g=a+128|0;a:{b:{if(b){if(b>>>0<1073741824){break b}ua();B()}J[a+104>>2]=0;J[a+108>>2]=0;J[a+120>>2]=0;J[a+124>>2]=0;J[a+112>>2]=0;J[a+116>>2]=0;J[d+8>>2]=0;J[d>>2]=0;J[d+4>>2]=0;e=1;break a}e=b<<2;c=ra(e);J[a+92>>2]=c;f=c+e|0;J[a+100>>2]=f;sa(c,0,e);J[a+112>>2]=0;J[a+104>>2]=0;J[a+108>>2]=0;J[a+96>>2]=f;c=ra(e);J[a+104>>2]=c;f=c+e|0;J[a+112>>2]=f;sa(c,0,e);J[a+124>>2]=0;J[a+116>>2]=0;J[a+120>>2]=0;J[a+108>>2]=f;c=ra(e);J[a+116>>2]=c;f=c+e|0;J[a+124>>2]=f;sa(c,0,e);J[a+120>>2]=f;c=ra(e);J[d>>2]=c;f=c+e|0;J[d+8>>2]=f;sa(c,0,e);J[d+4>>2]=f;e=b<<5|1}Lb(g,e,d);c=J[d>>2];if(c){J[d+4>>2]=c;qa(c)}J[d+8>>2]=0;J[d>>2]=0;J[d+4>>2]=0;if(b){b=b<<2;c=ra(b);J[d>>2]=c;f=b+c|0;J[d+8>>2]=f;sa(c,0,b);J[d+4>>2]=f}Lb(a+140|0,e,d);b=J[d>>2];if(b){J[d+4>>2]=b;qa(b)}ea=d+16|0;return a}function $d(a,b){var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0;a:{c=J[a+8>>2];e=J[a>>2];if(c-e>>3>>>0>=2){f=J[a+4>>2];h=f-e>>3;d=h>>>0>=2?2:h;b:{if(!d){break b}c=e;g=d;i=d&7;if(i){while(1){k=J[b+4>>2];J[c>>2]=J[b>>2];J[c+4>>2]=k;g=g-1|0;c=c+8|0;j=j+1|0;if((j|0)!=(i|0)){continue}break}}if(d>>>0<8){break b}while(1){d=J[b+4>>2];J[c>>2]=J[b>>2];J[c+4>>2]=d;d=J[b+4>>2];J[c+8>>2]=J[b>>2];J[c+12>>2]=d;d=J[b+4>>2];J[c+16>>2]=J[b>>2];J[c+20>>2]=d;d=J[b+4>>2];J[c+24>>2]=J[b>>2];J[c+28>>2]=d;d=J[b+4>>2];J[c+32>>2]=J[b>>2];J[c+36>>2]=d;d=J[b+4>>2];J[c+40>>2]=J[b>>2];J[c+44>>2]=d;d=J[b+4>>2];J[c+48>>2]=J[b>>2];J[c+52>>2]=d;d=J[b+4>>2];J[c+56>>2]=J[b>>2];J[c+60>>2]=d;c=c- -64|0;g=g-8|0;if(g){continue}break}}if(h>>>0<2){c=(2-h<<3)+f|0;while(1){e=J[b+4>>2];J[f>>2]=J[b>>2];J[f+4>>2]=e;f=f+8|0;if((c|0)!=(f|0)){continue}break}J[a+4>>2]=c;return}break a}if(e){J[a+4>>2]=e;qa(e);J[a+8>>2]=0;J[a>>2]=0;J[a+4>>2]=0;c=0}e=c>>2;e=c>>>0>=2147483640?536870911:e>>>0<=2?2:e;if(e>>>0<536870912){c=e<<3;e=ra(c);J[a>>2]=e;J[a+8>>2]=c+e;g=J[b>>2];d=J[b+4>>2];c=e;b=0;while(1){J[c>>2]=g;J[c+4>>2]=d;c=c+8|0;b=b+1|0;if((b|0)!=2){continue}break}break a}ua();B()}J[a+4>>2]=e+16}function xb(a,b,c){var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0;d=J[a+8>>2];e=J[a>>2];if(d-e>>2>>>0>=b>>>0){f=J[a+4>>2];h=f-e>>2;i=b>>>0>h>>>0?h:b;a:{if(!i){break a}d=e;g=i;j=g&7;if(j){while(1){J[d>>2]=J[c>>2];g=g-1|0;d=d+4|0;k=k+1|0;if((k|0)!=(j|0)){continue}break}}if(i>>>0<8){break a}while(1){J[d>>2]=J[c>>2];J[d+4>>2]=J[c>>2];J[d+8>>2]=J[c>>2];J[d+12>>2]=J[c>>2];J[d+16>>2]=J[c>>2];J[d+20>>2]=J[c>>2];J[d+24>>2]=J[c>>2];J[d+28>>2]=J[c>>2];d=d+32|0;g=g-8|0;if(g){continue}break}}if(b>>>0>h>>>0){b=(b-h<<2)+f|0;while(1){J[f>>2]=J[c>>2];f=f+4|0;if((b|0)!=(f|0)){continue}break}J[a+4>>2]=b;return}J[a+4>>2]=e+(b<<2);return}if(e){J[a+4>>2]=e;qa(e);J[a+8>>2]=0;J[a>>2]=0;J[a+4>>2]=0;d=0}b:{if(b>>>0>=1073741824){break b}e=d>>1;d=d>>>0>=2147483644?1073741823:b>>>0>>0?e:b;if(d>>>0>=1073741824){break b}d=d<<2;e=ra(d);J[a>>2]=e;J[a+8>>2]=d+e;c=J[c>>2];d=e;g=b&7;if(g){while(1){J[d>>2]=c;d=d+4|0;f=f+1|0;if((g|0)!=(f|0)){continue}break}}e=e+(b<<2)|0;if((b-1&1073741823)>>>0>=7){while(1){J[d+28>>2]=c;J[d+24>>2]=c;J[d+20>>2]=c;J[d+16>>2]=c;J[d+12>>2]=c;J[d+8>>2]=c;J[d+4>>2]=c;J[d>>2]=c;d=d+32|0;if((e|0)!=(d|0)){continue}break}}J[a+4>>2]=e;return}ua();B()}function Ei(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,f=0,g=0,h=0;f=ea-16|0;ea=f;a:{b:{c:{if(!b){break c}e=sb(c);if(e>>>0>=4294967280){break b}d:{e:{if(e>>>0>=11){g=(e|15)+1|0;a=ra(g);J[f+8>>2]=g|-2147483648;J[f>>2]=a;J[f+4>>2]=e;break e}H[f+11|0]=e;a=f;if(!e){break d}}ta(a,c,e)}H[a+e|0]=0;g=ea-16|0;ea=g;J[g+12>>2]=d;e=ea-48|0;ea=e;d=pb(b,f);if((d|0)!=(b+4|0)){a=J[d+4>>2];f:{if(!a){a=d;while(1){c=J[a+8>>2];h=J[c>>2]!=(a|0);a=c;if(h){continue}break}break f}while(1){c=a;a=J[a>>2];if(a){continue}break}}if((d|0)==J[b>>2]){J[b>>2]=c}J[b+8>>2]=J[b+8>>2]-1;Ac(J[b+4>>2],d);a=J[d+28>>2];if(a){J[d+32>>2]=a;qa(a)}if(H[d+27|0]<0){qa(J[d+16>>2])}qa(d)}a=ra(4);J[e>>2]=a;c=a+4|0;J[e+8>>2]=c;J[e+4>>2]=c;c=J[g+12>>2];H[a|0]=c;H[a+1|0]=c>>>8;H[a+2|0]=c>>>16;H[a+3|0]=c>>>24;g:{if(H[f+11|0]>=0){J[e+24>>2]=J[f+8>>2];a=J[f+4>>2];J[e+16>>2]=J[f>>2];J[e+20>>2]=a;break g}Ja(e+16|0,J[f>>2],J[f+4>>2])}Pb(e+28|0,e);a=e+16|0;zc(e+40|0,b,a,a);a=J[e+28>>2];if(a){J[e+32>>2]=a;qa(a)}if(H[e+27|0]<0){qa(J[e+16>>2])}a=J[e>>2];if(a){J[e+4>>2]=a;qa(a)}ea=e+48|0;ea=g+16|0;if(H[f+11|0]>=0){break c}qa(J[f>>2])}ea=f+16|0;a=(b|0)!=0;break a}hb();B()}return a|0}function fg(a){var b=0,c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0;a:{b=J[a+12>>2];c=J[b+4>>2];b=J[b>>2];if((c|0)!=(b|0)){b=c-b>>2;j=b>>>0<=1?1:b;k=a+140|0;while(1){b:{if(Cc(J[a+12>>2],(e>>>0)/3|0)){break b}b=J[a+12>>2];if(J[J[b+12>>2]+(e<<2)>>2]!=-1){break b}f=J[a+152>>2];d=e+1|0;d=(d>>>0)%3|0?d:e-2|0;if((d|0)!=-1){b=J[J[b>>2]+(d<<2)>>2]}else{b=-1}c=b<<2;if(J[f+c>>2]!=-1){break b}g=-1;h=J[a+144>>2];b=h;d=J[a+148>>2];if((b|0)==d<<5){if((h+1|0)<0){break a}if(h>>>0<=1073741822){b=d<<6;d=(h&-32)+32|0;b=b>>>0>d>>>0?b:d}else{b=2147483647}Gb(k,b);f=J[a+152>>2];g=J[c+f>>2];b=J[a+144>>2]}J[a+144>>2]=b+1;d=J[a+140>>2]+(b>>>3&536870908)|0;i=J[d>>2];m=d,n=El(b)&i,J[m>>2]=n;if((g|0)!=-1){break b}c=c+f|0;i=J[a+12>>2];b=e;while(1){d=b;J[c>>2]=h;b=-1;g=-1;c:{if((d|0)==-1){break c}c=d+1|0;c=(c>>>0)%3|0?c:d-2|0;if((c|0)==-1){break c}l=J[i+12>>2];while(1){d=J[(c<<2)+l>>2];if((d|0)!=-1){c=d+1|0;c=(c>>>0)%3|0?c:d-2|0;if((c|0)!=-1){continue}break c}break}b=c+1|0;b=(b>>>0)%3|0?b:c-2|0;if((b|0)!=-1){g=J[J[i>>2]+(b<<2)>>2]}b=c}c=(g<<2)+f|0;if(J[c>>2]==-1){continue}break}}e=e+1|0;if((j|0)!=(e|0)){continue}break}}return 1}ua();B()}function Vg(a,b,c){var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0;i=ea-16|0;ea=i;J[a+4>>2]=0;J[a+8>>2]=0;d=a+16|0;J[d>>2]=0;J[d+4>>2]=0;J[a>>2]=a+4;g=a+28|0;J[g>>2]=0;J[g+4>>2]=0;J[a+12>>2]=d;J[a+24>>2]=g;if((b+4|0)!=(a|0)){jc(a,J[b+4>>2],b+8|0)}d=a+24|0;if((d|0)!=(b+28|0)){jc(d,J[b+28>>2],b+32|0)}J[i+12>>2]=0;h=J[c+12>>2];f=J[c+8>>2];a:{if((h-f|0)<=0){break a}g=b+20|0;if(!J[g>>2]){break a}while(1){b=J[g>>2];b:{if(!b){break b}j=J[J[(e<<2)+f>>2]+56>>2];d=g;while(1){k=(j|0)>J[b+16>>2];d=k?d:b;b=J[(k?b+4|0:b)>>2];if(b){continue}break}if((d|0)==(g|0)|(j|0)>2]){break b}h=d+20|0;e=ea-48|0;ea=e;j=J[i+12>>2];d=a+16|0;f=J[d>>2];c:{d:{if(!f){break d}b=d;while(1){k=(j|0)>J[f+16>>2];b=k?b:f;f=J[(k?f+4|0:f)>>2];if(f){continue}break}if((b|0)==(d|0)){break d}if((j|0)>=J[b+16>>2]){break c}}J[e+28>>2]=0;J[e+32>>2]=0;f=e+24|0;J[e+24>>2]=f|4;b=e+16|0;J[b>>2]=0;J[b+4>>2]=0;J[e+8>>2]=j;J[e+12>>2]=b;d=e+8|0;Mc(e+40|0,a+12|0,d,d);b=J[e+40>>2];Ha(d|4,J[e+16>>2]);Ha(f,J[e+28>>2])}b=b+20|0;if((b|0)!=(h|0)){jc(b,J[h>>2],h+4|0)}ea=e+48|0;f=J[c+8>>2];h=J[c+12>>2];e=J[i+12>>2]}e=e+1|0;J[i+12>>2]=e;if(h-f>>2>(e|0)){continue}break}}ea=i+16|0}function Sg(a,b,c){var d=0,e=0,f=0,g=0;f=ea-16|0;ea=f;d=ra(16);J[f>>2]=d;J[f+4>>2]=14;J[f+8>>2]=-2147483632;g=K[1602]|K[1603]<<8|(K[1604]<<16|K[1605]<<24);e=K[1598]|K[1599]<<8|(K[1600]<<16|K[1601]<<24);H[d+6|0]=e;H[d+7|0]=e>>>8;H[d+8|0]=e>>>16;H[d+9|0]=e>>>24;H[d+10|0]=g;H[d+11|0]=g>>>8;H[d+12|0]=g>>>16;H[d+13|0]=g>>>24;g=K[1596]|K[1597]<<8|(K[1598]<<16|K[1599]<<24);e=K[1592]|K[1593]<<8|(K[1594]<<16|K[1595]<<24);H[d|0]=e;H[d+1|0]=e>>>8;H[d+2|0]=e>>>16;H[d+3|0]=e>>>24;H[d+4|0]=g;H[d+5|0]=g>>>8;H[d+6|0]=g>>>16;H[d+7|0]=g>>>24;H[d+14|0]=0;d=a+4|0;wb(d,f,b);if(H[f+11|0]<0){qa(J[f>>2])}a=ra(16);J[f>>2]=a;J[f+4>>2]=14;J[f+8>>2]=-2147483632;e=K[1617]|K[1618]<<8|(K[1619]<<16|K[1620]<<24);b=K[1613]|K[1614]<<8|(K[1615]<<16|K[1616]<<24);H[a+6|0]=b;H[a+7|0]=b>>>8;H[a+8|0]=b>>>16;H[a+9|0]=b>>>24;H[a+10|0]=e;H[a+11|0]=e>>>8;H[a+12|0]=e>>>16;H[a+13|0]=e>>>24;e=K[1611]|K[1612]<<8|(K[1613]<<16|K[1614]<<24);b=K[1607]|K[1608]<<8|(K[1609]<<16|K[1610]<<24);H[a|0]=b;H[a+1|0]=b>>>8;H[a+2|0]=b>>>16;H[a+3|0]=b>>>24;H[a+4|0]=e;H[a+5|0]=e>>>8;H[a+6|0]=e>>>16;H[a+7|0]=e>>>24;H[a+14|0]=0;wb(d,f,c);if(H[f+11|0]<0){qa(J[f>>2])}ea=f+16|0}function Pa(a){var b=0,c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0;b=J[a+112>>2];d=J[a+116>>2];e=(b|d)!=0;c=b;a:{i=e;e=J[a+4>>2];f=J[a+44>>2];b=e-f|0;h=b;g=b+J[a+120>>2]|0;b=J[a+124>>2]+(b>>31)|0;b=g>>>0>>0?b+1|0:b;if(!(i&(c>>>0<=g>>>0&(b|0)>=(d|0)|(b|0)>(d|0)))){d=ea-16|0;ea=d;e=-1;c=J[a+72>>2];J[a+72>>2]=c-1|c;if(J[a+20>>2]!=J[a+28>>2]){ga[J[a+36>>2]](a,0,0)|0}J[a+28>>2]=0;J[a+16>>2]=0;J[a+20>>2]=0;c=J[a>>2];b:{if(c&4){J[a>>2]=c|32;c=-1;break b}f=J[a+44>>2]+J[a+48>>2]|0;J[a+8>>2]=f;J[a+4>>2]=f;c=c<<27>>31}c:{if(c){break c}if((ga[J[a+32>>2]](a,d+15|0,1)|0)!=1){break c}e=K[d+15|0]}ea=d+16|0;if((e|0)>=0){break a}f=J[a+44>>2];e=J[a+4>>2]}J[a+112>>2]=-1;J[a+116>>2]=-1;J[a+104>>2]=e;d=f-e|0;e=d+g|0;b=(d>>31)+b|0;J[a+120>>2]=e;J[a+124>>2]=d>>>0>e>>>0?b+1|0:b;return-1}d=g+1|0;b=d?b:b+1|0;g=J[a+4>>2];f=J[a+8>>2];c=J[a+112>>2];h=J[a+116>>2];d:{if(!(c|h)){break d}i=c-d|0;c=h-(b+(d>>>0>c>>>0)|0)|0;j=f-g|0;h=j>>31;if((c|0)>=(h|0)&i>>>0>=j>>>0|(c|0)>(h|0)){break d}f=g+i|0}J[a+104>>2]=f;c=J[a+44>>2];f=c-g|0;d=f+d|0;b=(f>>31)+b|0;J[a+120>>2]=d;J[a+124>>2]=d>>>0>>0?b+1|0:b;if(c>>>0>=g>>>0){H[g-1|0]=e}return e}function vc(a,b,c){var d=0,e=0,f=0,g=0,h=0;a:{b:{f=a+16|0;d=J[f>>2];if(!d){break b}g=J[b>>2];b=f;while(1){e=(g|0)>J[d+16>>2];b=e?b:d;d=J[(e?d+4|0:d)>>2];if(d){continue}break}if((b|0)==(f|0)|(g|0)>2]){break b}d=J[b+24>>2];if(!d){break a}a=K[c+11|0];b=a<<24>>24<0;f=b?J[c>>2]:c;a=b?J[c+4>>2]:a;while(1){b=K[d+27|0];c=b<<24>>24<0;b=c?J[d+20>>2]:b;g=b>>>0>>0;c:{d:{e:{f:{g:{h:{e=g?b:a;if(e){c=c?J[d+16>>2]:d+16|0;h=Ea(f,c,e);if(h){break h}if(a>>>0>=b>>>0){break g}break c}if(a>>>0>=b>>>0){break f}break c}if((h|0)<0){break c}}b=Ea(c,f,e);if(b){break e}}if(g){break d}return 1}if((b|0)<0){break d}return 1}d=d+4|0}d=J[d>>2];if(d){continue}break}break a}d=J[a+4>>2];if(!d){break a}a=K[c+11|0];b=a<<24>>24<0;f=b?J[c>>2]:c;a=b?J[c+4>>2]:a;while(1){b=K[d+27|0];c=b<<24>>24<0;b=c?J[d+20>>2]:b;g=b>>>0>>0;i:{j:{k:{l:{m:{n:{e=g?b:a;if(e){c=c?J[d+16>>2]:d+16|0;h=Ea(f,c,e);if(h){break n}if(a>>>0>=b>>>0){break m}break i}if(a>>>0>=b>>>0){break l}break i}if((h|0)<0){break i}}b=Ea(c,f,e);if(b){break k}}if(g){break j}return 1}if((b|0)<0){break j}return 1}d=d+4|0}d=J[d>>2];if(d){continue}break}}return 0}function ta(a,b,c){var d=0,e=0,f=0;if(c>>>0>=512){da(a|0,b|0,c|0);return a}e=a+c|0;a:{if(!((a^b)&3)){b:{if(!(a&3)){c=a;break b}if(!c){c=a;break b}c=a;while(1){H[c|0]=K[b|0];b=b+1|0;c=c+1|0;if(!(c&3)){break b}if(c>>>0>>0){continue}break}}d=e&-4;c:{if(d>>>0<64){break c}f=d+-64|0;if(f>>>0>>0){break c}while(1){J[c>>2]=J[b>>2];J[c+4>>2]=J[b+4>>2];J[c+8>>2]=J[b+8>>2];J[c+12>>2]=J[b+12>>2];J[c+16>>2]=J[b+16>>2];J[c+20>>2]=J[b+20>>2];J[c+24>>2]=J[b+24>>2];J[c+28>>2]=J[b+28>>2];J[c+32>>2]=J[b+32>>2];J[c+36>>2]=J[b+36>>2];J[c+40>>2]=J[b+40>>2];J[c+44>>2]=J[b+44>>2];J[c+48>>2]=J[b+48>>2];J[c+52>>2]=J[b+52>>2];J[c+56>>2]=J[b+56>>2];J[c+60>>2]=J[b+60>>2];b=b- -64|0;c=c- -64|0;if(f>>>0>=c>>>0){continue}break}}if(c>>>0>=d>>>0){break a}while(1){J[c>>2]=J[b>>2];b=b+4|0;c=c+4|0;if(d>>>0>c>>>0){continue}break}break a}if(e>>>0<4){c=a;break a}d=e-4|0;if(d>>>0>>0){c=a;break a}c=a;while(1){H[c|0]=K[b|0];H[c+1|0]=K[b+1|0];H[c+2|0]=K[b+2|0];H[c+3|0]=K[b+3|0];b=b+4|0;c=c+4|0;if(d>>>0>=c>>>0){continue}break}}if(c>>>0>>0){while(1){H[c|0]=K[b|0];b=b+1|0;c=c+1|0;if((e|0)!=(c|0)){continue}break}}return a}function Uf(a){a=a|0;var b=0,c=0,d=0,e=0;J[a>>2]=10532;c=J[a+280>>2];J[a+280>>2]=0;if(c){d=c-4|0;b=J[d>>2];if(b){b=c+(b<<5)|0;while(1){b=Aa(b-32|0);if((c|0)!=(b|0)){continue}break}}qa(d)}b=J[a+268>>2];if(b){J[a+272>>2]=b;qa(b)}b=J[a+244>>2];J[a+244>>2]=0;if(b){qa(b)}b=J[a+232>>2];if(b){J[a+236>>2]=b;qa(b)}Aa(a+200|0);b=J[a+184>>2];if(b){J[a+188>>2]=b;qa(b)}c=J[a+172>>2];if(c){d=c;b=J[a+176>>2];if((c|0)!=(b|0)){while(1){d=b-136|0;e=J[d+116>>2];if(e){J[b-16>>2]=e;qa(e)}e=J[b-32>>2];if(e){J[b-28>>2]=e;qa(e)}oc(b-132|0);b=d;if((c|0)!=(b|0)){continue}break}d=J[a+172>>2]}J[a+176>>2]=c;qa(d)}b=J[a+152>>2];if(b){J[a+156>>2]=b;qa(b)}b=J[a+140>>2];if(b){qa(b)}b=J[a+128>>2];if(b){while(1){c=J[b>>2];qa(b);b=c;if(b){continue}break}}b=J[a+120>>2];J[a+120>>2]=0;if(b){qa(b)}b=J[a+108>>2];if(b){J[a+112>>2]=b;qa(b)}b=J[a+96>>2];if(b){J[a+100>>2]=b;qa(b)}b=J[a+84>>2];if(b){qa(b)}b=J[a+72>>2];if(b){J[a+76>>2]=b;qa(b)}b=J[a+52>>2];if(b){J[a+56>>2]=b;qa(b)}b=J[a+40>>2];if(b){J[a+44>>2]=b;qa(b)}b=J[a+28>>2];if(b){qa(b)}b=J[a+16>>2];if(b){J[a+20>>2]=b;qa(b)}b=J[a+12>>2];J[a+12>>2]=0;if(b){pc(b)}return a|0}function Rb(a,b,c,d){var e=0,f=0,g=0,h=0,i=0;a:{b:{f=J[a+124>>2];c:{if(!f){break c}e=J[a+120>>2];i=Dl(f);h=f-1&d;d:{if(i>>>0<=1){break d}h=d;if(d>>>0>>0){break d}h=(d>>>0)%(f>>>0)|0}g=J[e+(h<<2)>>2];if(!g){break c}e=J[g>>2];if(!e){break c}e:{if(i>>>0<=1){g=f-1|0;while(1){f=J[e+4>>2];f:{if((f|0)!=(d|0)){if((h|0)==(f&g)){break f}break c}if(J[e+8>>2]==(d|0)){break e}}e=J[e>>2];if(e){continue}break}break c}while(1){g=J[e+4>>2];g:{if((g|0)!=(d|0)){if(f>>>0<=g>>>0){g=(g>>>0)%(f>>>0)|0}if((g|0)==(h|0)){break g}break c}if(J[e+8>>2]==(d|0)){break e}}e=J[e>>2];if(e){continue}break}break c}f=J[e+12>>2];if((f|0)==-1){break c}i=c&1;c=J[a+112>>2];if((c|0)!=J[a+116>>2]){H[c+8|0]=i;J[c+4>>2]=b;J[c>>2]=f;J[a+112>>2]=c+12;return}g=J[a+108>>2];h=c-g|0;d=(h|0)/12|0;c=d+1|0;if(c>>>0>=357913942){break b}e=d<<1;e=d>>>0>=178956970?357913941:c>>>0>>0?e:c;if(e){if(e>>>0>=357913942){break a}c=ra(P(e,12))}else{c=0}d=c+P(d,12)|0;H[d+8|0]=i;J[d+4>>2]=b;J[d>>2]=f;b=d+P((h|0)/-12|0,12)|0;if((h|0)>0){ta(b,g,h)}J[a+116>>2]=c+P(e,12);J[a+112>>2]=d+12;J[a+108>>2]=b;if(!g){break c}qa(g)}return}ua();B()}ya();B()}function La(a,b,c){var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0;f=J[a+8>>2];e=J[a+4>>2];if(f-e>>2>>>0>=b>>>0){a:{if(!b){break a}d=e;g=b&7;if(g){while(1){J[d>>2]=J[c>>2];d=d+4|0;h=h+1|0;if((g|0)!=(h|0)){continue}break}}e=(b<<2)+e|0;if((b-1&1073741823)>>>0<7){break a}while(1){J[d>>2]=J[c>>2];J[d+4>>2]=J[c>>2];J[d+8>>2]=J[c>>2];J[d+12>>2]=J[c>>2];J[d+16>>2]=J[c>>2];J[d+20>>2]=J[c>>2];J[d+24>>2]=J[c>>2];J[d+28>>2]=J[c>>2];d=d+32|0;if((e|0)!=(d|0)){continue}break}}J[a+4>>2]=e;return}b:{g=J[a>>2];k=e-g|0;e=k>>2;d=e+b|0;if(d>>>0<1073741824){f=f-g|0;i=f>>1;f=f>>>0>=2147483644?1073741823:d>>>0>>0?i:d;if(f){if(f>>>0>=1073741824){break b}j=ra(f<<2)}e=(e<<2)+j|0;d=e;i=b&7;if(i){d=e;while(1){J[d>>2]=J[c>>2];d=d+4|0;h=h+1|0;if((i|0)!=(h|0)){continue}break}}e=e+(b<<2)|0;if((b-1&1073741823)>>>0>=7){while(1){J[d>>2]=J[c>>2];J[d+4>>2]=J[c>>2];J[d+8>>2]=J[c>>2];J[d+12>>2]=J[c>>2];J[d+16>>2]=J[c>>2];J[d+20>>2]=J[c>>2];J[d+24>>2]=J[c>>2];J[d+28>>2]=J[c>>2];d=d+32|0;if((e|0)!=(d|0)){continue}break}}if((k|0)>0){ta(j,g,k)}J[a+8>>2]=(f<<2)+j;J[a+4>>2]=e;J[a>>2]=j;if(g){qa(g)}return}ua();B()}ya();B()}function Ec(a,b,c){var d=0,e=0,f=0,g=0,h=0,i=0;f=-1;a:{if((b|0)==-1){h=J[a+12>>2];d=1;g=-1;break a}h=J[a+12>>2];b:{c:{if((b>>>0)%3|0){e=b-1|0;break c}e=b+2|0;if((e|0)!=-1){break c}d=1;break b}g=J[h+12>>2];while(1){f=e;d=J[g+(e<<2)>>2];if((d|0)!=-1){f=-1;e=d+1|0;e=(e>>>0)%3|0?e:d-2|0;if((e|0)!=-1){continue}}break}d=(d|0)!=-1;g=-1;if((b|0)==-1){break a}}g=J[J[h>>2]+(b<<2)>>2]}b=0;if(c){b=J[a+84>>2]+(g>>>3&536870908)|0;J[b>>2]=J[b>>2]|1<>2]+(g<<2)>>2];e=J[a+140>>2]+(c>>>3&536870908)|0;J[e>>2]=J[e>>2]|1<>>0)%3|0){e=f-1|0;break e}e=f+2|0;c=-1;if((e|0)==-1){break d}}c=J[J[h>>2]+(e<<2)>>2]}if((g|0)!=(c|0)){i=J[a+84>>2];while(1){a=f;f=(c>>>3&536870908)+i|0;J[f>>2]=J[f>>2]|1<>>0)%3|0?d:a-2|0;if((d|0)==-1){break f}e=J[h+12>>2];while(1){a=J[e+(d<<2)>>2];if((a|0)!=-1){d=a+1|0;d=(d>>>0)%3|0?d:a-2|0;if((d|0)!=-1){continue}break f}break}g:{if((d>>>0)%3|0){e=d-1|0;break g}e=d+2|0;if((e|0)!=-1){break g}f=-3;break f}c=J[J[h>>2]+(e<<2)>>2];f=d}b=b+1|0;if((c|0)!=(g|0)){continue}break}}}function Ze(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0;f=J[c>>2];m=J[c+4>>2];a:{if((f|0)==(m|0)){h=J[a+12>>2];b=J[a+8>>2];i=h-b|0;c=0;break a}o=J[b>>2];h=J[a+12>>2];b=J[a+8>>2];i=h-b|0;if((i|0)<=0){c=0;while(1){e=J[(J[f>>2]<<2)+o>>2];c=c>>>0>e>>>0?c:e+1|0;f=f+4|0;if((m|0)!=(f|0)){continue}break}break a}c=i>>>2|0;c=c>>>0<=1?1:c;q=c&1073741822;r=c&1;c=0;s=i>>>0<8;while(1){e=J[f>>2];k=e<<2;l=J[o+k>>2];if(l>>>0>=c>>>0){c=0;j=0;if(!s){while(1){p=c<<2;d=J[p+b>>2];g=J[d+68>>2];d=K[d+84|0]?e:J[g+k>>2];n=g;g=l<<2;J[n+g>>2]=d;n=g;d=J[(p|4)+b>>2];g=J[d+68>>2];J[n+g>>2]=K[d+84|0]?e:J[g+k>>2];c=c+2|0;j=j+2|0;if((q|0)!=(j|0)){continue}break}}if(r){c=J[(c<<2)+b>>2];d=J[c+68>>2];j=d+(l<<2)|0;if(!K[c+84|0]){e=J[d+k>>2]}J[j>>2]=e}c=l+1|0}f=f+4|0;if((m|0)!=(f|0)){continue}break}}d=0;if((i|0)>0){while(1){b=J[(d<<2)+b>>2];H[b+84|0]=0;f=J[b+68>>2];e=J[b+72>>2]-f>>2;b:{if(e>>>0>>0){La(b+68|0,c-e|0,15024);h=J[a+12>>2];break b}if(c>>>0>=e>>>0){break b}J[b+72>>2]=f+(c<<2)}d=d+1|0;b=J[a+8>>2];if((d|0)>2){continue}break}}}function Ug(a,b,c){var d=0,e=Q(0),f=0,g=0,h=Q(0),i=0,j=0,k=0,l=Q(0),m=0,n=0,o=0,p=0,q=0,r=0,s=0;if(!(J[a+4>>2]!=-1|c-1>>>0>29)){J[a+4>>2]=c;f=K[b+24|0];c=0;J[a+20>>2]=0;if(f){d=f<<2;c=ra(d);d=sa(c,0,d)+d|0}i=J[a+8>>2];if(i){J[a+12>>2]=i;qa(i)}J[a+8>>2]=c;J[a+16>>2]=d;J[a+12>>2]=d;d=f<<2;i=ra(d);p=ra(d);r=J[b+44>>2];j=c;d=J[b+48>>2];c=d;m=J[b>>2];k=J[b+40>>2];n=ta(j,c+J[m>>2]|0,k);o=ta(i,c+J[m>>2]|0,k);b=J[b+80>>2];if(!(!f|b>>>0<2)){i=b;j=1;c=0;while(1){g=J[m>>2];b=Al(j,c,k,r)+d|0;s=ta(p,g+b|0,k);b=0;while(1){g=b<<2;q=g+n|0;h=N[g+s>>2];if(N[q>>2]>h){N[q>>2]=h}g=g+o|0;if(h>N[g>>2]){N[g>>2]=h}b=b+1|0;if((f|0)!=(b|0)){continue}break}b=j+1|0;c=b?c:c+1|0;j=b;if((i|0)!=(b|0)|c){continue}break}}h=N[a+20>>2];a:{b:{if(!f){c=0;break b}c=1;e=N[n>>2];if(e!=e|Q(R(e))==Q(_)){break a}b=0;while(1){l=N[o+(b<<2)>>2];if(l!=l|Q(R(l))==Q(_)){break a}e=Q(l-e);if(e>h){N[a+20>>2]=e;h=e}b=b+1|0;c=f>>>0>b>>>0;if((b|0)==(f|0)){break b}e=N[n+(b<<2)>>2];if(e!=e){break a}if(Q(R(e))!=Q(_)){continue}break}break a}if(h!=Q(0)){break a}J[a+20>>2]=1065353216}qa(p);qa(o);d=c^1}return d&1}function de(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0;J[a+4>>2]=b;d=J[J[J[b+4>>2]+8>>2]+(c<<2)>>2];J[a+12>>2]=c;J[a+8>>2]=d;a:{if((ga[J[J[a>>2]+32>>2]](a)|0)==1&J[J[a+8>>2]+28>>2]-1>>>0>5){break a}f=J[b+48>>2];d=ea-16|0;ea=d;J[d+12>>2]=c;b=ra(32);J[d>>2]=b;J[d+4>>2]=17;J[d+8>>2]=-2147483616;H[b+16|0]=K[1529];c=K[1525]|K[1526]<<8|(K[1527]<<16|K[1528]<<24);e=K[1521]|K[1522]<<8|(K[1523]<<16|K[1524]<<24);H[b+8|0]=e;H[b+9|0]=e>>>8;H[b+10|0]=e>>>16;H[b+11|0]=e>>>24;H[b+12|0]=c;H[b+13|0]=c>>>8;H[b+14|0]=c>>>16;H[b+15|0]=c>>>24;c=K[1517]|K[1518]<<8|(K[1519]<<16|K[1520]<<24);e=K[1513]|K[1514]<<8|(K[1515]<<16|K[1516]<<24);H[b|0]=e;H[b+1|0]=e>>>8;H[b+2|0]=e>>>16;H[b+3|0]=e>>>24;H[b+4|0]=c;H[b+5|0]=c>>>8;H[b+6|0]=c>>>16;H[b+7|0]=c>>>24;H[b+17|0]=0;b=kb(f,d+12|0,d,-1);if(H[d+11|0]<0){qa(J[d>>2])}ea=d+16|0;c=ga[J[J[a>>2]+48>>2]](a,(b|0)==-1?-1:b>>>0>6?-2:b)|0;b=J[a+36>>2];J[a+36>>2]=c;e=1;if(b){ga[J[J[b>>2]+4>>2]](b);c=J[a+36>>2]}if(!c){break a}if(ga[J[J[a>>2]+36>>2]](a,c)|0){break a}b=J[a+36>>2];J[a+36>>2]=0;if(!b){break a}ga[J[J[b>>2]+4>>2]](b)}return e|0}function ff(a){var b=0,c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0;f=ea-16|0;ea=f;a:{d=jd(a);b:{if(!d){a=0;break b}e=J[a+100>>2];g=J[a+96>>2];J[f+8>>2]=0;J[f>>2]=0;J[f+4>>2]=0;b=e-g|0;c=(b|0)/12|0;c:{if((e|0)==(g|0)){break c}if(c>>>0>=357913942){break a}e=ra(b);J[f>>2]=e;J[f+8>>2]=e+P(c,12);a=0;h=e;e=b-12|0;b=(e-((e>>>0)%12|0)|0)+12|0;e=sa(h,0,b);J[f+4>>2]=b+e;if(K[d+84|0]){d=c>>>0<=1?1:c;i=d&1;if(c>>>0>=2){j=d&-2;c=0;while(1){b=P(a,12);d=b+g|0;h=J[d+4>>2];k=J[d>>2];b=b+e|0;J[b+8>>2]=J[d+8>>2];J[b>>2]=k;J[b+4>>2]=h;b=P(a|1,12);d=b+g|0;h=J[d+4>>2];k=J[d>>2];b=b+e|0;J[b+8>>2]=J[d+8>>2];J[b>>2]=k;J[b+4>>2]=h;a=a+2|0;c=c+2|0;if((j|0)!=(c|0)){continue}break}}if(!i){break c}c=P(a,12);a=c+g|0;g=J[a+4>>2];d=J[a>>2];c=c+e|0;J[c+8>>2]=J[a+8>>2];J[c>>2]=d;J[c+4>>2]=g;break c}i=c>>>0<=1?1:c;a=J[d+68>>2];c=0;while(1){b=P(c,12);d=b+g|0;j=J[a+(J[d>>2]<<2)>>2];h=J[a+(J[d+4>>2]<<2)>>2];b=b+e|0;J[b+8>>2]=J[a+(J[d+8>>2]<<2)>>2];J[b+4>>2]=h;J[b>>2]=j;c=c+1|0;if((i|0)!=(c|0)){continue}break}}a=jf(f);c=J[f>>2];if(!c){break b}J[f+4>>2]=c;qa(c)}ea=f+16|0;return a}ua();B()}function Cd(a,b){var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0;a:{if(J[a+64>>2]){break a}c=ra(32);J[c+16>>2]=0;J[c+20>>2]=0;J[c+8>>2]=0;J[c>>2]=0;J[c+4>>2]=0;J[c+24>>2]=0;J[c+28>>2]=0;d=J[a+64>>2];J[a+64>>2]=c;if(!d){break a}c=J[d>>2];if(c){J[d+4>>2]=c;qa(c)}qa(d)}c=J[a+64>>2];d=J[a+28>>2]-1|0;if(d>>>0<=10){d=J[(d<<2)+14832>>2]}else{d=-1}d=P(d,K[a+24|0]);k=d;j=d>>31;d=Al(d,j,b,0);b:{if((fa|0)<0){break b}c:{e=J[c+4>>2];f=J[c>>2];h=e-f|0;d:{if(d>>>0>h>>>0){i=d-h|0;g=J[c+8>>2];if(i>>>0<=g-e>>>0){l=c,m=sa(e,0,i)+i|0,J[l+4>>2]=m;break d}if((d|0)<0){break c}e=g-f|0;g=e<<1;g=e>>>0>=1073741823?2147483647:d>>>0>>0?g:d;e=ra(g);sa(e+h|0,0,i);if((h|0)>0){ta(e,f,h)}J[c+8>>2]=e+g;J[c+4>>2]=d+e;J[c>>2]=e;if(!f){break d}qa(f);break d}if(d>>>0>=h>>>0){break d}J[c+4>>2]=d+f}d=J[c+28>>2];f=J[c+24>>2]+1|0;d=f?d:d+1|0;J[c+24>>2]=f;J[c+28>>2]=d;f=1;break b}ua();B()}if(f){c=J[a+64>>2];J[a>>2]=c;d=J[c+20>>2];J[a+8>>2]=J[c+16>>2];J[a+12>>2]=d;d=J[c+24>>2];c=J[c+28>>2];J[a+48>>2]=0;J[a+52>>2]=0;J[a+40>>2]=k;J[a+44>>2]=j;J[a+16>>2]=d;J[a+20>>2]=c;J[a+80>>2]=b}}function Cl(a,b,c,d){var e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0;g=c;a:{b:{c:{d:{e:{f:{g:{h:{i:{j:{k:{if(b){if(!g){break k}if(!d){break j}c=S(d)-S(b)|0;if(c>>>0<=31){break i}break c}if((d|0)==1|d>>>0>1){break c}a=(a>>>0)/(g>>>0)|0;fa=0;break a}if(!a){break h}if(!d){break g}if(d-1&d){break g}a=b>>>Fl(d)|0;fa=0;break a}if(!(g-1&g)){break f}h=(S(g)+33|0)-S(b)|0;e=0-h|0;break d}h=c+1|0;e=63-c|0;break d}a=(b>>>0)/(d>>>0)|0;fa=0;break a}c=S(d)-S(b)|0;if(c>>>0<31){break e}break c}if((g|0)==1){break b}c=Fl(g);d=c&31;if((c&63)>>>0>=32){c=0;a=b>>>d|0}else{c=b>>>d|0;a=((1<>>d}fa=c;break a}h=c+1|0;e=63-c|0}c=h&63;f=c&31;if(c>>>0>=32){c=0;i=b>>>f|0}else{c=b>>>f|0;i=((1<>>f}f=c;c=e&63;e=c&31;if(c>>>0>=32){c=a<>>32-e|b<>>31;f=f<<1|i>>>31;j=m-(f+(c>>>0>e>>>0)|0)>>31;k=g&j;i=c-k|0;f=f-((d&j)+(c>>>0>>0)|0)|0;b=b<<1|a>>>31;a=l|a<<1;l=j&1;h=h-1|0;if(h){continue}break}}fa=b<<1|a>>>31;a=l|a<<1;break a}a=0;b=0}fa=b}return a}function wb(a,b,c){var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0;g=ea-48|0;ea=g;f=ea-32|0;ea=f;j=f+21|0;d=j;l=f+32|0;e=l;if(!((d|0)==(e|0)|(c|0)>=0)){H[d|0]=45;d=d+1|0;c=0-c|0}k=e-d|0;a:{if((k|0)<=9){i=P(32-S(c|1)|0,1233)>>12;h=61;if((k|0)<((M[(i<<2)+18400>>2]<=c>>>0)+i|0)){break a}}b:{if(c>>>0<=99999999){c:{if(c>>>0<=9999){e=Ae(d,c);break c}e=d;d=(c>>>0)/1e4|0;e=xc(Ae(e,d),c-P(d,1e4)|0)}break b}e=(c>>>0)/1e8|0;h=c-P(e,1e8)|0;c=(h>>>0)/1e4|0;e=xc(xc(Be(d,e),c),h-P(c,1e4)|0)}h=0}J[f+12>>2]=h;J[f+8>>2]=e;h=ea-16|0;ea=h;e=ea-16|0;ea=e;c=g+8|0;d:{k=J[f+8>>2];f=k-j|0;if(f>>>0<=4294967279){e:{if(f>>>0<11){H[c+11|0]=f;d=c;break e}if(f>>>0>=11){i=f+16&-16;d=i-1|0;d=(d|0)==11?i:d}else{d=10}i=d+1|0;d=ra(i);J[c>>2]=d;J[c+8>>2]=i|-2147483648;J[c+4>>2]=f}while(1){if((j|0)!=(k|0)){H[d|0]=K[j|0];d=d+1|0;j=j+1|0;continue}break}H[e+15|0]=0;H[d|0]=K[e+15|0];ea=e+16|0;break d}hb();B()}ea=h+16|0;ea=l;J[g+32>>2]=b;Zd(g+40|0,a,b,g+32|0);a=J[g+40>>2];if(H[a+39|0]<0){qa(J[a+28>>2])}b=J[g+12>>2];J[a+28>>2]=J[g+8>>2];J[a+32>>2]=b;J[a+36>>2]=J[g+16>>2];ea=g+48|0}function Kb(a,b,c){var d=0,e=0,f=0,g=0,h=0;d=32-b|0;c=c<>2];f=32-e|0;c:{if((f|0)>=(b|0)){b=b+e|0;J[a+16>>2]=b;f=J[a+12>>2]|c>>>e;J[a+12>>2]=f;if((b|0)!=32){break c}b=J[a+4>>2];d:{if((b|0)!=J[a+8>>2]){J[b>>2]=f;J[a+4>>2]=b+4;break d}e=J[a>>2];c=b-e|0;g=c>>2;b=g+1|0;if(b>>>0>=1073741824){break b}d=c>>1;d=c>>>0>=2147483644?1073741823:b>>>0>>0?d:b;if(d){if(d>>>0>=1073741824){break a}b=ra(d<<2)}else{b=0}g=b+(g<<2)|0;J[g>>2]=f;if((c|0)>0){ta(b,e,c)}J[a+8>>2]=b+(d<<2);J[a+4>>2]=g+4;J[a>>2]=b;if(!e){break d}qa(e)}J[a+12>>2]=0;J[a+16>>2]=0;return}b=b-f|0;J[a+16>>2]=b;g=c>>>d|0;f=J[a+12>>2]|g>>>b;J[a+12>>2]=f;b=J[a+4>>2];e:{if((b|0)!=J[a+8>>2]){J[b>>2]=f;J[a+4>>2]=b+4;break e}e=J[a>>2];c=b-e|0;h=c>>2;b=h+1|0;if(b>>>0>=1073741824){break b}d=c>>1;d=c>>>0>=2147483644?1073741823:b>>>0>>0?d:b;if(d){if(d>>>0>=1073741824){break a}b=ra(d<<2)}else{b=0}h=b+(h<<2)|0;J[h>>2]=f;if((c|0)>0){ta(b,e,c)}J[a+8>>2]=b+(d<<2);J[a+4>>2]=h+4;J[a>>2]=b;if(!e){break e}qa(e)}J[a+12>>2]=g<<32-J[a+16>>2]}return}ua();B()}ya();B()}function za(a){var b=0,c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0;A(+a);c=v(1)|0;b=v(0)|0;e=c>>>16|0;f=c-1072604335|0;if((f|0)==135337|f>>>0<135337){if(!b&(c|0)==1072693248){return 0}g=O[1879];a=a+-1;A(+a);b=v(1)|0;v(0)|0;x(0,0);x(1,b|0);h=+z();i=g*h;d=a*a;j=d*(a*O[1888]+O[1887]);k=i+j;l=d*d;return k+(l*(l*(d*(a*O[1896]+O[1895])+(a*O[1894]+O[1893]))+(d*(a*O[1892]+O[1891])+(a*O[1890]+O[1889])))+((a-h)*g+a*O[1880]+(j+(i-k))))}a:{if(e-32752>>>0<=4294934559){if(!(c&2147483647|b)){b=ea-16|0;O[b+8>>3]=-1;return O[b+8>>3]/0}if(!b&(c|0)==2146435072){break a}if(!(!(e&32768)&(e&32752)!=32752)){a=a-a;return a/a}A(+(a*4503599627370496));c=v(1)|0;b=v(0)|0;c=c-54525952|0}e=c-1072037888|0;f=(e>>>14&63)<<4;g=O[f+15184>>3]+ +(e>>20);h=O[1879];a=O[f+15176>>3];x(0,b-0|0);x(1,c-((e&-1048576)+(b>>>0>>0)|0)|0);a=a*(+z()-O[f+16200>>3]-O[f+16208>>3]);A(+a);b=v(1)|0;v(0)|0;x(0,0);x(1,b|0);i=+z();j=h*i;k=g+j;d=a*a;a=k+(d*(d*d*(a*O[1886]+O[1885])+(d*(a*O[1884]+O[1883])+(a*O[1882]+O[1881])))+((a-i)*h+O[1880]*a+(j+(g-k))))}return a}function tb(a,b){var c=0,d=0,e=0;c=(a|0)==(b|0);H[b+12|0]=c;a:{if(c){break a}while(1){d=J[b+8>>2];if(K[d+12|0]){break a}b:{c=J[d+8>>2];e=J[c>>2];if((e|0)==(d|0)){e=J[c+4>>2];if(!(!e|K[e+12|0])){break b}c:{if(J[d>>2]==(b|0)){b=d;break c}b=J[d+4>>2];a=J[b>>2];J[d+4>>2]=a;if(a){J[a+8>>2]=d;c=J[d+8>>2]}J[b+8>>2]=c;a=J[d+8>>2];J[((J[a>>2]!=(d|0))<<2)+a>>2]=b;J[b>>2]=d;J[d+8>>2]=b;c=J[b+8>>2];d=J[c>>2]}H[b+12|0]=1;H[c+12|0]=0;a=J[d+4>>2];J[c>>2]=a;if(a){J[a+8>>2]=c}J[d+8>>2]=J[c+8>>2];a=J[c+8>>2];J[((J[a>>2]!=(c|0))<<2)+a>>2]=d;J[d+4>>2]=c;J[c+8>>2]=d;return}if(!(K[e+12|0]|!e)){break b}d:{if(J[d>>2]!=(b|0)){b=d;break d}a=J[b+4>>2];J[d>>2]=a;if(a){J[a+8>>2]=d;c=J[d+8>>2]}J[b+8>>2]=c;a=J[d+8>>2];J[((J[a>>2]!=(d|0))<<2)+a>>2]=b;J[b+4>>2]=d;J[d+8>>2]=b;c=J[b+8>>2]}H[b+12|0]=1;H[c+12|0]=0;a=J[c+4>>2];b=J[a>>2];J[c+4>>2]=b;if(b){J[b+8>>2]=c}J[a+8>>2]=J[c+8>>2];b=J[c+8>>2];J[((J[b>>2]!=(c|0))<<2)+b>>2]=a;J[a>>2]=c;J[c+8>>2]=a;break a}H[d+12|0]=1;H[c+12|0]=(a|0)==(c|0);H[e+12|0]=1;b=c;if((c|0)!=(a|0)){continue}break}}}function Fg(a,b,c,d){var e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0;j=ea-16|0;ea=j;J[j+8>>2]=0;J[j>>2]=0;J[j+4>>2]=0;a:{b:{e=c+1|0;if(e){if(e>>>0>=1073741824){break b}h=ra(e<<2);sa(h,0,(c<<2)+4|0)}c:{if((b|0)<=0){break c}e=0;if(b>>>0>=4){k=b&-4;while(1){f=e<<2;i=(J[f+a>>2]<<2)+h|0;J[i>>2]=J[i>>2]+1;i=(J[(f|4)+a>>2]<<2)+h|0;J[i>>2]=J[i>>2]+1;i=(J[(f|8)+a>>2]<<2)+h|0;J[i>>2]=J[i>>2]+1;f=(J[(f|12)+a>>2]<<2)+h|0;J[f>>2]=J[f>>2]+1;e=e+4|0;l=l+4|0;if((k|0)!=(l|0)){continue}break}}f=b&3;if(!f){break c}while(1){k=(J[(e<<2)+a>>2]<<2)+h|0;J[k>>2]=J[k>>2]+1;e=e+1|0;m=m+1|0;if((f|0)!=(m|0)){continue}break}}e=0;if((c|0)<0){a=0;break a}o=+(b|0);a=0;while(1){b=J[(e<<2)+h>>2];if((b|0)>0){n=+(b|0);g=n*za(n/o)+g;a=a+1|0}b=(c|0)==(e|0);e=e+1|0;if(!b){continue}break}break a}ua();B()}if(d){J[d>>2]=a}if(h){qa(h)}g=-g;d:{if(R(g)<0x8000000000000000){b=R(g)>=1?~~(g>0?T(V(g*2.3283064365386963e-10),4294967295):W((g-+(~~g>>>0>>>0))*2.3283064365386963e-10))>>>0:0;a=~~g>>>0;break d}b=-2147483648;a=0}ea=j+16|0;fa=b;return a}function Ge(a,b,c,d){var e=0,f=0,g=0,h=0;g=ea-32|0;ea=g;e=d&2147483647;h=e;f=e-1006698496|0;e=e-1140785152|0;a:{if((f|0)==(e|0)&0|e>>>0>f>>>0){e=d<<4|c>>>28;f=c<<4|b>>>28;c=e;b=b&268435455;if((b|0)==134217728&(a|0)!=0|b>>>0>134217728){e=c+1073741824|0;a=f+1|0;e=a?e:e+1|0;f=a;break a}e=c+1073741824|0;if(a|(b|0)!=134217728){break a}b=f&1;a=b+f|0;e=a>>>0>>0?e+1|0:e;f=a;break a}if(!(!c&(h|0)==2147418112?!(a|b):h>>>0<2147418112)){e=c;c=d<<4|e>>>28;f=e<<4|b>>>28;e=c&524287|2146959360;break a}f=0;e=2146435072;if(h>>>0>1140785151){break a}e=0;h=h>>>16|0;if(h>>>0<15249){break a}e=d&65535|65536;Sa(g+16|0,a,b,c,e,h-15233|0);Ib(g,a,b,c,e,15361-h|0);e=J[g+4>>2];h=e;a=J[g+8>>2];c=J[g+12>>2]<<4|a>>>28;f=a<<4|e>>>28;e=c;a=h&268435455;b=J[g>>2]|(J[g+16>>2]|J[g+24>>2]|(J[g+20>>2]|J[g+28>>2]))!=0;if((a|0)==134217728&(b|0)!=0|a>>>0>134217728){a=f+1|0;e=a?e:e+1|0;f=a;break a}if(b|(a|0)!=134217728){break a}a=f+(f&1)|0;e=a>>>0>>0?e+1|0:e;f=a}ea=g+32|0;x(0,f|0);x(1,d&-2147483648|e);return+z()}function Uk(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0;c=J[b+88>>2];if(!(!c|J[c>>2]!=1)){d=J[c+8>>2];J[a+4>>2]=K[d|0]|K[d+1|0]<<8|(K[d+2|0]<<16|K[d+3|0]<<24);e=a+8|0;d=K[b+24|0];f=J[a+8>>2];g=J[a+12>>2]-f>>2;a:{if(d>>>0>g>>>0){Fa(e,d-g|0);d=K[b+24|0];break a}if(d>>>0>=g>>>0){break a}J[a+12>>2]=f+(d<<2)}g=J[c+8>>2];b:{if(!d){b=4;break b}h=d&3;e=J[e>>2];c:{if(d-1>>>0<3){b=4;d=0;break c}k=d&252;d=0;b=4;while(1){f=d<<2;c=b+g|0;J[f+e>>2]=K[c|0]|K[c+1|0]<<8|(K[c+2|0]<<16|K[c+3|0]<<24);J[e+(f|4)>>2]=K[c+4|0]|K[c+5|0]<<8|(K[c+6|0]<<16|K[c+7|0]<<24);J[e+(f|8)>>2]=K[c+8|0]|K[c+9|0]<<8|(K[c+10|0]<<16|K[c+11|0]<<24);J[e+(f|12)>>2]=K[c+12|0]|K[c+13|0]<<8|(K[c+14|0]<<16|K[c+15|0]<<24);d=d+4|0;b=b+16|0;i=i+4|0;if((k|0)!=(i|0)){continue}break}}if(!h){break b}while(1){c=b+g|0;J[e+(d<<2)>>2]=K[c|0]|K[c+1|0]<<8|(K[c+2|0]<<16|K[c+3|0]<<24);d=d+1|0;b=b+4|0;j=j+1|0;if((j|0)!=(h|0)){continue}break}}d=a;a=b+g|0;J[d+20>>2]=K[a|0]|K[a+1|0]<<8|(K[a+2|0]<<16|K[a+3|0]<<24);d=1}return d|0}function fd(a,b){var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0;a:{if(K[a+11|0]>>>7|0){d=J[a+4>>2]}else{d=K[a+11|0]}if(d>>>0>>0){i=ea-16|0;ea=i;h=b-d|0;if(h){e=K[a+11|0]>>>7|0?(J[a+8>>2]&2147483647)-1|0:10;if(K[a+11|0]>>>7|0){b=J[a+4>>2]}else{b=K[a+11|0]}j=b+h|0;if(e-b>>>0>>0){b:{g=ea-16|0;ea=g;c=-17;f=j-e|0;if(f>>>0<=-17-e>>>0){if(K[a+11|0]>>>7|0){d=J[a>>2]}else{d=a}if(e>>>0<2147483623){J[g+8>>2]=e<<1;J[g+12>>2]=e+f;c=ea-16|0;ea=c;ea=c+16|0;c=g+8|0;f=g+12|0;c=J[(M[f>>2]>2]?c:f)>>2];if(c>>>0>=11){f=c+16&-16;c=f-1|0;c=(c|0)==11?f:c}else{c=10}c=c+1|0}f=ra(c);if(b){Bb(f,d,b)}if((e|0)!=10){qa(d)}J[a>>2]=f;J[a+8>>2]=c|-2147483648;ea=g+16|0;break b}hb();B()}}d=b;if(K[a+11|0]>>>7|0){b=J[a>>2]}else{b=a}d=d+b|0;if(h){sa(d,0,h)}c:{if(K[a+11|0]>>>7|0){J[a+4>>2]=j;break c}H[a+11|0]=j}H[i+15|0]=0;H[b+j|0]=K[i+15|0]}ea=i+16|0;break a}if(K[a+11|0]>>>7|0){d=J[a>>2]}else{d=a}e=ea-16|0;ea=e;d:{if(K[a+11|0]>>>7|0){J[a+4>>2]=b;break d}H[a+11|0]=b}H[e+15|0]=0;H[b+d|0]=K[e+15|0];ea=e+16|0}}function Va(a,b,c,d,e,f,g){var h=0,i=0,j=0,k=0,l=0;a:{b:{if((e|0)<=(f|0)){if((a|0)==(b|0)){break b}f=g;e=a;while(1){J[f>>2]=J[e>>2];f=f+4|0;e=e+4|0;if((e|0)!=(b|0)){continue}break}if((f|0)==(g|0)){break b}d=J[d>>2];while(1){if((b|0)==(c|0)){xa(a,g,f-g|0);return}c:{e=J[d>>2];h=J[d+4>>2]-e>>3;i=J[b>>2];if(h>>>0<=i>>>0){break c}j=h;h=J[g>>2];if(j>>>0<=h>>>0){break c}d:{if(M[e+(i<<3)>>2]>2]){J[a>>2]=i;b=b+4|0;break d}J[a>>2]=h;g=g+4|0}a=a+4|0;if((f|0)!=(g|0)){continue}break b}break}va();B()}if((b|0)==(c|0)){break b}f=g;e=b;while(1){J[f>>2]=J[e>>2];f=f+4|0;e=e+4|0;if((e|0)!=(c|0)){continue}break}if((f|0)==(g|0)){break b}while(1){if((a|0)==(b|0)){while(1){c=c-4|0;f=f-4|0;J[c>>2]=J[f>>2];if((f|0)!=(g|0)){continue}break b}}i=J[d>>2];e=J[i>>2];h=J[i+4>>2]-e>>3;k=f-4|0;i=J[k>>2];if(h>>>0<=i>>>0){break a}j=h;l=b-4|0;h=J[l>>2];if(j>>>0<=h>>>0){break a}c=c-4|0;e=M[e+(i<<3)>>2]>2];J[c>>2]=e?h:i;b=e?l:b;f=e?f:k;if((g|0)!=(f|0)){continue}break}}return}va();B()}function ij(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0;k=J[a+12>>2];c=J[a+68>>2];d=J[c+80>>2];H[b+84|0]=0;m=b+68|0;i=J[b+68>>2];e=J[b+72>>2]-i>>2;a:{if(e>>>0>>0){La(m,d-e|0,11424);c=J[a+68>>2];d=J[c+80>>2];break a}if(d>>>0>=e>>>0){break a}J[b+72>>2]=i+(d<<2)}b=J[c+100>>2];e=J[c+96>>2];i=(b-e|0)/12|0;b:{if((b|0)==(e|0)){break b}n=1;k=J[k+28>>2];f=J[k>>2];if((f|0)==-1){break b}o=i>>>0<=1?1:i;c=e;b=0;while(1){g=J[c>>2];if(g>>>0>=d>>>0){break b}j=J[J[a+72>>2]+12>>2];h=J[j+(f<<2)>>2];if(h>>>0>=d>>>0){break b}f=J[m>>2];J[f+(g<<2)>>2]=h;g=k+(l<<2)|0;h=J[g+4>>2];if((h|0)==-1){break b}l=J[c+4>>2];if(l>>>0>=d>>>0){break b}h=J[(h<<2)+j>>2];if(h>>>0>=d>>>0){break b}J[f+(l<<2)>>2]=h;g=J[g+8>>2];if((g|0)==-1){break b}c=J[c+8>>2];if(c>>>0>=d>>>0){break b}j=J[(g<<2)+j>>2];if(j>>>0>=d>>>0){break b}J[f+(c<<2)>>2]=j;b=b+1|0;n=i>>>0>b>>>0;if((b|0)==(o|0)){break b}c=e+P(b,12)|0;l=P(b,3);f=J[k+(l<<2)>>2];if((f|0)!=-1){continue}break}}return(n^-1)&1}function wd(a){var b=0,c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0;d=ea-32|0;ea=d;a:{b=J[a+16>>2];c=J[a+20>>2];if(!!b&(c|0)>=0|(c|0)>0){c=0;e=J[J[a+12>>2]+4>>2]+7|0;c=e>>>0<7?1:c;f=e;e=c>>>3|0;c=c<<29|f>>>3;if(K[a+24|0]){f=J[a+4>>2];J[d>>2]=0;J[d+4>>2]=0;H[d+24|0]=0;J[d+16>>2]=0;J[d+20>>2]=0;J[d+8>>2]=0;J[d+12>>2]=0;yb(c,e,d);e=f-b|0;f=e-8|0;b=J[d+4>>2]-J[d>>2]|0;xa(f+b|0,e,c);ta(f,J[d>>2],b);f=8-b|0;e=f+J[a+16>>2]|0;b=J[a+20>>2];J[a+16>>2]=e;J[a+20>>2]=e>>>0>>0?b+1|0:b;b=J[d+12>>2];J[d+12>>2]=0;if(b){qa(b)}b=J[d>>2];if(b){J[d+4>>2]=b;qa(b)}b=J[a+16>>2]}f=c-b|0;g=J[a+4>>2];c=J[a>>2];e=g-c|0;b=f+e|0;b:{if(b>>>0>e>>>0){h=J[a+8>>2];if(h-g>>>0>=f>>>0){i=a,j=sa(g,0,f)+f|0,J[i+4>>2]=j;break b}if((b|0)<0){break a}g=h-c|0;h=g<<1;h=g>>>0>=1073741823?2147483647:b>>>0>>0?h:b;g=ra(h);sa(g+e|0,0,f);if((e|0)>0){ta(g,c,e)}J[a+8>>2]=g+h;J[a+4>>2]=b+g;J[a>>2]=g;if(!c){break b}qa(c);break b}if(b>>>0>=e>>>0){break b}J[a+4>>2]=b+c}J[a+16>>2]=0;J[a+20>>2]=0}ea=d+32|0;return}ua();B()}function sk(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0,g=0,h=0,i=Q(0),j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0;k=ea-16|0;ea=k;if(J[c+28>>2]==9){d=J[a+4>>2];h=K[c+24|0];e=h<<2;f=ra(e);l=k+8|0;J[l>>2]=1065353216;i=N[a+20>>2];d=-1<0){N[l>>2]=i/Q(d|0)}o=(d|0)>0;a:{if(!o){break a}j=J[c+80>>2];if(!j){break a}if(h){p=J[J[b>>2]>>2]+J[b+48>>2]|0;t=h&254;u=h&1;b=0;while(1){m=J[a+8>>2];i=N[l>>2];d=0;n=0;if((h|0)!=1){while(1){g=d<<2;q=(b<<2)+p|0;N[g+f>>2]=Q(i*Q(J[q>>2]))+N[g+m>>2];g=g|4;N[g+f>>2]=Q(i*Q(J[q+4>>2]))+N[g+m>>2];d=d+2|0;b=b+2|0;n=n+2|0;if((t|0)!=(n|0)){continue}break}}if(u){d=d<<2;N[d+f>>2]=Q(i*Q(J[(b<<2)+p>>2]))+N[d+m>>2];b=b+1|0}ta(J[J[c+64>>2]>>2]+r|0,f,e);r=e+r|0;s=s+1|0;if((s|0)!=(j|0)){continue}break}break a}b=0;if((j|0)!=1){a=j&-2;d=0;while(1){ta(J[J[c+64>>2]>>2]+b|0,f,e);b=b+e|0;ta(b+J[J[c+64>>2]>>2]|0,f,e);b=b+e|0;d=d+2|0;if((a|0)!=(d|0)){continue}break}}if(!(j&1)){break a}ta(J[J[c+64>>2]>>2]+b|0,f,e)}qa(f)}ea=k+16|0;return o|0}function rg(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0;h=J[d+80>>2];e=ea-48|0;ea=e;a=J[a+4>>2];k=a-31|0;a:{if(k>>>0<4294967267){break a}i=J[J[d>>2]>>2]+J[d+48>>2]|0;J[e+16>>2]=a;a=-1<>2]=a^-1;a=-2-a|0;J[e+24>>2]=a;J[e+32>>2]=(a|0)/2;N[e+28>>2]=Q(2)/Q(a|0);f=J[c>>2];if((f|0)!=J[c+4>>2]){a=0;d=0;while(1){g=J[(d<<2)+f>>2];h=e+36|0;j=J[J[b>>2]>>2];m=J[b+48>>2];f=J[b+44>>2];l=J[b+40>>2];if(!K[b+84|0]){g=J[J[b+68>>2]+(g<<2)>>2]}g=Al(l,f,g,0)+m|0;ta(h,g+j|0,l);Of(e+16|0,h,e+12|0,e+8|0);f=a<<2;J[f+i>>2]=J[e+12>>2];J[(f|4)+i>>2]=J[e+8>>2];a=a+2|0;d=d+1|0;f=J[c>>2];if(d>>>0>2]-f>>2>>>0){continue}break}break a}if(!h){break a}d=0;a=0;while(1){j=e+36|0;c=J[J[b>>2]>>2];g=J[b+40>>2];f=J[b+48>>2]+Al(g,J[b+44>>2],K[b+84|0]?a:J[J[b+68>>2]+(a<<2)>>2],0)|0;ta(j,c+f|0,g);Of(e+16|0,j,e+12|0,e+8|0);c=d<<2;J[c+i>>2]=J[e+12>>2];J[(c|4)+i>>2]=J[e+8>>2];d=d+2|0;a=a+1|0;if((h|0)!=(a|0)){continue}break}}ea=e+48|0;return k>>>0>4294967266|0}function vj(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0;j=J[a+12>>2];c=J[a+108>>2];d=J[c+80>>2];H[b+84|0]=0;m=b+68|0;h=J[b+68>>2];f=J[b+72>>2]-h>>2;a:{if(f>>>0>>0){La(m,d-f|0,11424);c=J[a+108>>2];d=J[c+80>>2];break a}if(d>>>0>=f>>>0){break a}J[b+72>>2]=h+(d<<2)}b=J[c+100>>2];f=J[c+96>>2];h=(b-f|0)/12|0;b:{if((b|0)==(f|0)){j=0;break b}n=h>>>0<=1?1:h;o=J[j>>2];c=f;b=0;j=1;while(1){e=(e<<2)+o|0;i=J[e>>2];if((i|0)==-1){break b}g=J[c>>2];if(g>>>0>=d>>>0){break b}l=J[J[a+112>>2]+12>>2];k=J[l+(i<<2)>>2];if(k>>>0>=d>>>0){break b}i=J[m>>2];J[i+(g<<2)>>2]=k;g=J[e+4>>2];if((g|0)==-1){break b}k=J[c+4>>2];if(k>>>0>=d>>>0){break b}g=J[(g<<2)+l>>2];if(g>>>0>=d>>>0){break b}J[i+(k<<2)>>2]=g;e=J[e+8>>2];if((e|0)==-1){break b}c=J[c+8>>2];if(c>>>0>=d>>>0){break b}e=J[(e<<2)+l>>2];if(e>>>0>=d>>>0){break b}J[i+(c<<2)>>2]=e;b=b+1|0;j=h>>>0>b>>>0;if((b|0)==(n|0)){break b}e=P(b,3);c=f+P(b,12)|0;if((b|0)!=1431655765){continue}break}}return(j^-1)&1}function nj(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0;j=J[a+12>>2];c=J[a+68>>2];d=J[c+80>>2];H[b+84|0]=0;m=b+68|0;h=J[b+68>>2];f=J[b+72>>2]-h>>2;a:{if(f>>>0>>0){La(m,d-f|0,11424);c=J[a+68>>2];d=J[c+80>>2];break a}if(d>>>0>=f>>>0){break a}J[b+72>>2]=h+(d<<2)}b=J[c+100>>2];f=J[c+96>>2];h=(b-f|0)/12|0;b:{if((b|0)==(f|0)){j=0;break b}n=h>>>0<=1?1:h;o=J[j>>2];c=f;b=0;j=1;while(1){e=(e<<2)+o|0;i=J[e>>2];if((i|0)==-1){break b}g=J[c>>2];if(g>>>0>=d>>>0){break b}l=J[J[a+72>>2]+12>>2];k=J[l+(i<<2)>>2];if(k>>>0>=d>>>0){break b}i=J[m>>2];J[i+(g<<2)>>2]=k;g=J[e+4>>2];if((g|0)==-1){break b}k=J[c+4>>2];if(k>>>0>=d>>>0){break b}g=J[(g<<2)+l>>2];if(g>>>0>=d>>>0){break b}J[i+(k<<2)>>2]=g;e=J[e+8>>2];if((e|0)==-1){break b}c=J[c+8>>2];if(c>>>0>=d>>>0){break b}e=J[(e<<2)+l>>2];if(e>>>0>=d>>>0){break b}J[i+(c<<2)>>2]=e;b=b+1|0;j=h>>>0>b>>>0;if((b|0)==(n|0)){break b}e=P(b,3);c=f+P(b,12)|0;if((b|0)!=1431655765){continue}break}}return(j^-1)&1}function hg(a,b){var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0;c=ea+-64|0;ea=c;d=ra(80);i=J[a+8>>2];J[d+12>>2]=0;J[d+16>>2]=0;J[d>>2]=11692;J[d+4>>2]=0;J[d+20>>2]=0;J[d+24>>2]=0;J[d+28>>2]=0;J[d+32>>2]=0;J[d+36>>2]=0;J[d+40>>2]=0;J[d+44>>2]=0;J[d+48>>2]=0;J[d+52>>2]=0;J[d+76>>2]=0;J[d+72>>2]=b;J[d+68>>2]=i;J[d- -64>>2]=0;j=d+56|0;e=j;J[e>>2]=0;J[e+4>>2]=0;J[d+8>>2]=11856;e=J[a+12>>2];J[c+40>>2]=0;J[c+44>>2]=0;J[c+32>>2]=0;J[c+36>>2]=0;f=c+24|0;J[f>>2]=0;J[f+4>>2]=0;J[c+16>>2]=0;J[c+20>>2]=0;J[c+56>>2]=0;J[c+8>>2]=0;J[c+12>>2]=0;J[c+48>>2]=0;J[c+52>>2]=0;J[c>>2]=11856;J[c+4>>2]=e;g=J[e>>2];h=J[e+4>>2];H[c+63|0]=0;k=f;f=c+63|0;Qa(k,(h-g>>2>>>0)/3|0,f);g=J[c+4>>2];h=J[g+28>>2];g=J[g+24>>2];H[c+63|0]=0;Qa(c+36|0,h-g>>2,f);J[c+20>>2]=d;J[c+16>>2]=i;J[c+12>>2]=b;J[c+8>>2]=e;J[d+76>>2]=a+72;Ic(d+8|0,c);Sb(j,J[c+48>>2],J[c+52>>2]);J[c>>2]=11856;a=J[c+48>>2];if(a){J[c+52>>2]=a;qa(a)}J[c>>2]=11672;a=J[c+36>>2];if(a){qa(a)}a=J[c+24>>2];if(a){qa(a)}ea=c- -64|0;return d}function nb(a,b,c){var d=0,e=0,f=0,g=0,h=0,i=0,j=0;d=(c>>>0)/3|0;i=J[(J[J[a+8>>2]+96>>2]+P(d,12)|0)+(c-P(d,3)<<2)>>2];e=J[J[a+12>>2]+4>>2];d=J[e+4>>2];a:{if((d|0)!=J[e+8>>2]){J[d>>2]=i;J[e+4>>2]=d+4;break a}b:{h=J[e>>2];g=d-h|0;j=g>>2;d=j+1|0;if(d>>>0<1073741824){f=g>>1;f=g>>>0>=2147483644?1073741823:d>>>0>>0?f:d;if(f){if(f>>>0>=1073741824){break b}d=ra(f<<2)}else{d=0}j=d+(j<<2)|0;J[j>>2]=i;if((g|0)>0){ta(d,h,g)}J[e+8>>2]=d+(f<<2);J[e+4>>2]=j+4;J[e>>2]=d;if(h){qa(h)}break a}ua();B()}ya();B()}e=J[a+4>>2];d=J[e+4>>2];c:{d:{e:{if((d|0)!=J[e+8>>2]){J[d>>2]=c;J[e+4>>2]=d+4;break e}h=J[e>>2];g=d-h|0;i=g>>2;d=i+1|0;if(d>>>0>=1073741824){break d}f=g>>1;f=g>>>0>=2147483644?1073741823:d>>>0>>0?f:d;if(f){if(f>>>0>=1073741824){break c}d=ra(f<<2)}else{d=0}i=d+(i<<2)|0;J[i>>2]=c;if((g|0)>0){ta(d,h,g)}J[e+8>>2]=d+(f<<2);J[e+4>>2]=i+4;J[e>>2]=d;if(!h){break e}qa(h)}a=J[a+4>>2];J[J[a+12>>2]+(b<<2)>>2]=J[a+24>>2];J[a+24>>2]=J[a+24>>2]+1;return}ua();B()}ya();B()}function Yc(a){var b=0,c=0,d=0,e=0;c=J[a+1176>>2];if(c){d=c;b=J[a+1180>>2];if((c|0)!=(b|0)){while(1){d=b-12|0;e=J[d>>2];if(e){J[b-8>>2]=e;qa(e)}b=d;if((c|0)!=(b|0)){continue}break}d=J[a+1176>>2]}J[a+1180>>2]=c;qa(d)}c=J[a+1164>>2];if(c){d=c;b=J[a+1168>>2];if((c|0)!=(b|0)){while(1){d=b-12|0;e=J[d>>2];if(e){J[b-8>>2]=e;qa(e)}b=d;if((c|0)!=(b|0)){continue}break}d=J[a+1164>>2]}J[a+1168>>2]=c;qa(d)}b=J[a+1152>>2];if(b){J[a+1156>>2]=b;qa(b)}b=J[a+1140>>2];if(b){J[a+1144>>2]=b;qa(b)}b=J[a+1128>>2];if(b){J[a+1132>>2]=b;qa(b)}ub(a+1108|0);ub(a+1088|0);ub(a+1068|0);Aa(a+1036|0);a=a+12|0;Aa(a+992|0);Aa(a+960|0);Aa(a+928|0);Aa(a+896|0);Aa(a+864|0);Aa(a+832|0);Aa(a+800|0);Aa(a+768|0);Aa(a+736|0);Aa(a+704|0);Aa(a+672|0);Aa(a+640|0);Aa(a+608|0);Aa(a+576|0);Aa(a+544|0);Aa(a+512|0);Aa(a+480|0);Aa(a+448|0);Aa(a+416|0);Aa(a+384|0);Aa(a+352|0);Aa(a+320|0);Aa(a+288|0);Aa(a+256|0);Aa(a+224|0);Aa(a+192|0);Aa(a+160|0);Aa(a+128|0);Aa(a+96|0);Aa(a- -64|0);Aa(a+32|0);Aa(a)}function zg(a,b,c,d,e){var f=0,g=0,h=0,i=0,j=0;a:{b:{c:{d:{e:{switch(d|0){case 2:d=J[c>>2];c=J[d>>2];d=J[d+4>>2]-c>>3;g=b-4|0;b=J[g>>2];if(d>>>0<=b>>>0){break d}f=d;d=J[a>>2];if(f>>>0<=d>>>0){break d}if(M[c+(b<<3)>>2]>2]){J[e>>2]=b;J[e+4>>2]=J[a>>2];return}J[e>>2]=d;J[e+4>>2]=J[g>>2];return;default:if((d|0)<=8){Wa(a,b,e,c);return}f=d>>>1|0;h=f<<2;g=h+a|0;fc(a,g,c,f,e,f);d=d-f|0;fc(g,b,c,d,e+h|0,d);c=J[c>>2];d=g;while(1){if((b|0)==(d|0)){if((a|0)==(g|0)){break a}while(1){J[e>>2]=J[a>>2];e=e+4|0;a=a+4|0;if((g|0)!=(a|0)){continue}break}break a}f=J[c>>2];j=J[c+4>>2]-f>>3;h=J[d>>2];if(j>>>0<=h>>>0){break c}i=J[a>>2];if(j>>>0<=i>>>0){break c}f:{if(M[f+(h<<3)>>2]>2]){J[e>>2]=h;d=d+4|0;break f}J[e>>2]=i;a=a+4|0}e=e+4|0;if((a|0)!=(g|0)){continue}break};break b;case 0:break a;case 1:break e}}J[e>>2]=J[a>>2];break a}va();B()}va();B()}if((b|0)==(d|0)){break a}while(1){J[e>>2]=J[d>>2];e=e+4|0;d=d+4|0;if((d|0)!=(b|0)){continue}break}}}function yg(a,b,c,d,e){var f=0,g=0,h=0,i=0,j=0;a:{b:{c:{d:{e:{switch(d|0){case 2:d=J[c>>2];c=J[d>>2];d=J[d+4>>2]-c>>3;g=b-4|0;b=J[g>>2];if(d>>>0<=b>>>0){break d}f=d;d=J[a>>2];if(f>>>0<=d>>>0){break d}if(M[c+(b<<3)>>2]>2]){J[e>>2]=b;J[e+4>>2]=J[a>>2];return}J[e>>2]=d;J[e+4>>2]=J[g>>2];return;default:if((d|0)<=8){Wa(a,b,e,c);return}f=d>>>1|0;h=f<<2;g=h+a|0;ec(a,g,c,f,e,f);d=d-f|0;ec(g,b,c,d,e+h|0,d);c=J[c>>2];d=g;while(1){if((b|0)==(d|0)){if((a|0)==(g|0)){break a}while(1){J[e>>2]=J[a>>2];e=e+4|0;a=a+4|0;if((g|0)!=(a|0)){continue}break}break a}f=J[c>>2];j=J[c+4>>2]-f>>3;h=J[d>>2];if(j>>>0<=h>>>0){break c}i=J[a>>2];if(j>>>0<=i>>>0){break c}f:{if(M[f+(h<<3)>>2]>2]){J[e>>2]=h;d=d+4|0;break f}J[e>>2]=i;a=a+4|0}e=e+4|0;if((a|0)!=(g|0)){continue}break};break b;case 0:break a;case 1:break e}}J[e>>2]=J[a>>2];break a}va();B()}va();B()}if((b|0)==(d|0)){break a}while(1){J[e>>2]=J[d>>2];e=e+4|0;d=d+4|0;if((d|0)!=(b|0)){continue}break}}}function xg(a,b,c,d,e){var f=0,g=0,h=0,i=0,j=0;a:{b:{c:{d:{e:{switch(d|0){case 2:d=J[c>>2];c=J[d>>2];d=J[d+4>>2]-c>>3;g=b-4|0;b=J[g>>2];if(d>>>0<=b>>>0){break d}f=d;d=J[a>>2];if(f>>>0<=d>>>0){break d}if(M[c+(b<<3)>>2]>2]){J[e>>2]=b;J[e+4>>2]=J[a>>2];return}J[e>>2]=d;J[e+4>>2]=J[g>>2];return;default:if((d|0)<=8){Wa(a,b,e,c);return}f=d>>>1|0;h=f<<2;g=h+a|0;dc(a,g,c,f,e,f);d=d-f|0;dc(g,b,c,d,e+h|0,d);c=J[c>>2];d=g;while(1){if((b|0)==(d|0)){if((a|0)==(g|0)){break a}while(1){J[e>>2]=J[a>>2];e=e+4|0;a=a+4|0;if((g|0)!=(a|0)){continue}break}break a}f=J[c>>2];j=J[c+4>>2]-f>>3;h=J[d>>2];if(j>>>0<=h>>>0){break c}i=J[a>>2];if(j>>>0<=i>>>0){break c}f:{if(M[f+(h<<3)>>2]>2]){J[e>>2]=h;d=d+4|0;break f}J[e>>2]=i;a=a+4|0}e=e+4|0;if((a|0)!=(g|0)){continue}break};break b;case 0:break a;case 1:break e}}J[e>>2]=J[a>>2];break a}va();B()}va();B()}if((b|0)==(d|0)){break a}while(1){J[e>>2]=J[d>>2];e=e+4|0;d=d+4|0;if((d|0)!=(b|0)){continue}break}}}function wg(a,b,c,d,e){var f=0,g=0,h=0,i=0,j=0;a:{b:{c:{d:{e:{switch(d|0){case 2:d=J[c>>2];c=J[d>>2];d=J[d+4>>2]-c>>3;g=b-4|0;b=J[g>>2];if(d>>>0<=b>>>0){break d}f=d;d=J[a>>2];if(f>>>0<=d>>>0){break d}if(M[c+(b<<3)>>2]>2]){J[e>>2]=b;J[e+4>>2]=J[a>>2];return}J[e>>2]=d;J[e+4>>2]=J[g>>2];return;default:if((d|0)<=8){Wa(a,b,e,c);return}f=d>>>1|0;h=f<<2;g=h+a|0;cc(a,g,c,f,e,f);d=d-f|0;cc(g,b,c,d,e+h|0,d);c=J[c>>2];d=g;while(1){if((b|0)==(d|0)){if((a|0)==(g|0)){break a}while(1){J[e>>2]=J[a>>2];e=e+4|0;a=a+4|0;if((g|0)!=(a|0)){continue}break}break a}f=J[c>>2];j=J[c+4>>2]-f>>3;h=J[d>>2];if(j>>>0<=h>>>0){break c}i=J[a>>2];if(j>>>0<=i>>>0){break c}f:{if(M[f+(h<<3)>>2]>2]){J[e>>2]=h;d=d+4|0;break f}J[e>>2]=i;a=a+4|0}e=e+4|0;if((a|0)!=(g|0)){continue}break};break b;case 0:break a;case 1:break e}}J[e>>2]=J[a>>2];break a}va();B()}va();B()}if((b|0)==(d|0)){break a}while(1){J[e>>2]=J[d>>2];e=e+4|0;d=d+4|0;if((d|0)!=(b|0)){continue}break}}}function vg(a,b,c,d,e){var f=0,g=0,h=0,i=0,j=0;a:{b:{c:{d:{e:{switch(d|0){case 2:d=J[c>>2];c=J[d>>2];d=J[d+4>>2]-c>>3;g=b-4|0;b=J[g>>2];if(d>>>0<=b>>>0){break d}f=d;d=J[a>>2];if(f>>>0<=d>>>0){break d}if(M[c+(b<<3)>>2]>2]){J[e>>2]=b;J[e+4>>2]=J[a>>2];return}J[e>>2]=d;J[e+4>>2]=J[g>>2];return;default:if((d|0)<=8){Wa(a,b,e,c);return}f=d>>>1|0;h=f<<2;g=h+a|0;bc(a,g,c,f,e,f);d=d-f|0;bc(g,b,c,d,e+h|0,d);c=J[c>>2];d=g;while(1){if((b|0)==(d|0)){if((a|0)==(g|0)){break a}while(1){J[e>>2]=J[a>>2];e=e+4|0;a=a+4|0;if((g|0)!=(a|0)){continue}break}break a}f=J[c>>2];j=J[c+4>>2]-f>>3;h=J[d>>2];if(j>>>0<=h>>>0){break c}i=J[a>>2];if(j>>>0<=i>>>0){break c}f:{if(M[f+(h<<3)>>2]>2]){J[e>>2]=h;d=d+4|0;break f}J[e>>2]=i;a=a+4|0}e=e+4|0;if((a|0)!=(g|0)){continue}break};break b;case 0:break a;case 1:break e}}J[e>>2]=J[a>>2];break a}va();B()}va();B()}if((b|0)==(d|0)){break a}while(1){J[e>>2]=J[d>>2];e=e+4|0;d=d+4|0;if((d|0)!=(b|0)){continue}break}}}function ug(a,b,c,d,e){var f=0,g=0,h=0,i=0,j=0;a:{b:{c:{d:{e:{switch(d|0){case 2:d=J[c>>2];c=J[d>>2];d=J[d+4>>2]-c>>3;g=b-4|0;b=J[g>>2];if(d>>>0<=b>>>0){break d}f=d;d=J[a>>2];if(f>>>0<=d>>>0){break d}if(M[c+(b<<3)>>2]>2]){J[e>>2]=b;J[e+4>>2]=J[a>>2];return}J[e>>2]=d;J[e+4>>2]=J[g>>2];return;default:if((d|0)<=8){Wa(a,b,e,c);return}f=d>>>1|0;h=f<<2;g=h+a|0;ac(a,g,c,f,e,f);d=d-f|0;ac(g,b,c,d,e+h|0,d);c=J[c>>2];d=g;while(1){if((b|0)==(d|0)){if((a|0)==(g|0)){break a}while(1){J[e>>2]=J[a>>2];e=e+4|0;a=a+4|0;if((g|0)!=(a|0)){continue}break}break a}f=J[c>>2];j=J[c+4>>2]-f>>3;h=J[d>>2];if(j>>>0<=h>>>0){break c}i=J[a>>2];if(j>>>0<=i>>>0){break c}f:{if(M[f+(h<<3)>>2]>2]){J[e>>2]=h;d=d+4|0;break f}J[e>>2]=i;a=a+4|0}e=e+4|0;if((a|0)!=(g|0)){continue}break};break b;case 0:break a;case 1:break e}}J[e>>2]=J[a>>2];break a}va();B()}va();B()}if((b|0)==(d|0)){break a}while(1){J[e>>2]=J[d>>2];e=e+4|0;d=d+4|0;if((d|0)!=(b|0)){continue}break}}}function tg(a,b,c,d,e){var f=0,g=0,h=0,i=0,j=0;a:{b:{c:{d:{e:{switch(d|0){case 2:d=J[c>>2];c=J[d>>2];d=J[d+4>>2]-c>>3;g=b-4|0;b=J[g>>2];if(d>>>0<=b>>>0){break d}f=d;d=J[a>>2];if(f>>>0<=d>>>0){break d}if(M[c+(b<<3)>>2]>2]){J[e>>2]=b;J[e+4>>2]=J[a>>2];return}J[e>>2]=d;J[e+4>>2]=J[g>>2];return;default:if((d|0)<=8){Wa(a,b,e,c);return}f=d>>>1|0;h=f<<2;g=h+a|0;$b(a,g,c,f,e,f);d=d-f|0;$b(g,b,c,d,e+h|0,d);c=J[c>>2];d=g;while(1){if((b|0)==(d|0)){if((a|0)==(g|0)){break a}while(1){J[e>>2]=J[a>>2];e=e+4|0;a=a+4|0;if((g|0)!=(a|0)){continue}break}break a}f=J[c>>2];j=J[c+4>>2]-f>>3;h=J[d>>2];if(j>>>0<=h>>>0){break c}i=J[a>>2];if(j>>>0<=i>>>0){break c}f:{if(M[f+(h<<3)>>2]>2]){J[e>>2]=h;d=d+4|0;break f}J[e>>2]=i;a=a+4|0}e=e+4|0;if((a|0)!=(g|0)){continue}break};break b;case 0:break a;case 1:break e}}J[e>>2]=J[a>>2];break a}va();B()}va();B()}if((b|0)==(d|0)){break a}while(1){J[e>>2]=J[d>>2];e=e+4|0;d=d+4|0;if((d|0)!=(b|0)){continue}break}}}function sg(a,b,c,d,e){var f=0,g=0,h=0,i=0,j=0;a:{b:{c:{d:{e:{switch(d|0){case 2:d=J[c>>2];c=J[d>>2];d=J[d+4>>2]-c>>3;g=b-4|0;b=J[g>>2];if(d>>>0<=b>>>0){break d}f=d;d=J[a>>2];if(f>>>0<=d>>>0){break d}if(M[c+(b<<3)>>2]>2]){J[e>>2]=b;J[e+4>>2]=J[a>>2];return}J[e>>2]=d;J[e+4>>2]=J[g>>2];return;default:if((d|0)<=8){Wa(a,b,e,c);return}f=d>>>1|0;h=f<<2;g=h+a|0;_b(a,g,c,f,e,f);d=d-f|0;_b(g,b,c,d,e+h|0,d);c=J[c>>2];d=g;while(1){if((b|0)==(d|0)){if((a|0)==(g|0)){break a}while(1){J[e>>2]=J[a>>2];e=e+4|0;a=a+4|0;if((g|0)!=(a|0)){continue}break}break a}f=J[c>>2];j=J[c+4>>2]-f>>3;h=J[d>>2];if(j>>>0<=h>>>0){break c}i=J[a>>2];if(j>>>0<=i>>>0){break c}f:{if(M[f+(h<<3)>>2]>2]){J[e>>2]=h;d=d+4|0;break f}J[e>>2]=i;a=a+4|0}e=e+4|0;if((a|0)!=(g|0)){continue}break};break b;case 0:break a;case 1:break e}}J[e>>2]=J[a>>2];break a}va();B()}va();B()}if((b|0)==(d|0)){break a}while(1){J[e>>2]=J[d>>2];e=e+4|0;d=d+4|0;if((d|0)!=(b|0)){continue}break}}}function qg(a,b,c,d,e){var f=0,g=0,h=0,i=0,j=0;a:{b:{c:{d:{e:{switch(d|0){case 2:d=J[c>>2];c=J[d>>2];d=J[d+4>>2]-c>>3;g=b-4|0;b=J[g>>2];if(d>>>0<=b>>>0){break d}f=d;d=J[a>>2];if(f>>>0<=d>>>0){break d}if(M[c+(b<<3)>>2]>2]){J[e>>2]=b;J[e+4>>2]=J[a>>2];return}J[e>>2]=d;J[e+4>>2]=J[g>>2];return;default:if((d|0)<=8){Wa(a,b,e,c);return}f=d>>>1|0;h=f<<2;g=h+a|0;Zb(a,g,c,f,e,f);d=d-f|0;Zb(g,b,c,d,e+h|0,d);c=J[c>>2];d=g;while(1){if((b|0)==(d|0)){if((a|0)==(g|0)){break a}while(1){J[e>>2]=J[a>>2];e=e+4|0;a=a+4|0;if((g|0)!=(a|0)){continue}break}break a}f=J[c>>2];j=J[c+4>>2]-f>>3;h=J[d>>2];if(j>>>0<=h>>>0){break c}i=J[a>>2];if(j>>>0<=i>>>0){break c}f:{if(M[f+(h<<3)>>2]>2]){J[e>>2]=h;d=d+4|0;break f}J[e>>2]=i;a=a+4|0}e=e+4|0;if((a|0)!=(g|0)){continue}break};break b;case 0:break a;case 1:break e}}J[e>>2]=J[a>>2];break a}va();B()}va();B()}if((b|0)==(d|0)){break a}while(1){J[e>>2]=J[d>>2];e=e+4|0;d=d+4|0;if((d|0)!=(b|0)){continue}break}}}function pg(a,b,c,d,e){var f=0,g=0,h=0,i=0,j=0;a:{b:{c:{d:{e:{switch(d|0){case 2:d=J[c>>2];c=J[d>>2];d=J[d+4>>2]-c>>3;g=b-4|0;b=J[g>>2];if(d>>>0<=b>>>0){break d}f=d;d=J[a>>2];if(f>>>0<=d>>>0){break d}if(M[c+(b<<3)>>2]>2]){J[e>>2]=b;J[e+4>>2]=J[a>>2];return}J[e>>2]=d;J[e+4>>2]=J[g>>2];return;default:if((d|0)<=8){Wa(a,b,e,c);return}f=d>>>1|0;h=f<<2;g=h+a|0;Yb(a,g,c,f,e,f);d=d-f|0;Yb(g,b,c,d,e+h|0,d);c=J[c>>2];d=g;while(1){if((b|0)==(d|0)){if((a|0)==(g|0)){break a}while(1){J[e>>2]=J[a>>2];e=e+4|0;a=a+4|0;if((g|0)!=(a|0)){continue}break}break a}f=J[c>>2];j=J[c+4>>2]-f>>3;h=J[d>>2];if(j>>>0<=h>>>0){break c}i=J[a>>2];if(j>>>0<=i>>>0){break c}f:{if(M[f+(h<<3)>>2]>2]){J[e>>2]=h;d=d+4|0;break f}J[e>>2]=i;a=a+4|0}e=e+4|0;if((a|0)!=(g|0)){continue}break};break b;case 0:break a;case 1:break e}}J[e>>2]=J[a>>2];break a}va();B()}va();B()}if((b|0)==(d|0)){break a}while(1){J[e>>2]=J[d>>2];e=e+4|0;d=d+4|0;if((d|0)!=(b|0)){continue}break}}}function og(a,b,c,d,e){var f=0,g=0,h=0,i=0,j=0;a:{b:{c:{d:{e:{switch(d|0){case 2:d=J[c>>2];c=J[d>>2];d=J[d+4>>2]-c>>3;g=b-4|0;b=J[g>>2];if(d>>>0<=b>>>0){break d}f=d;d=J[a>>2];if(f>>>0<=d>>>0){break d}if(M[c+(b<<3)>>2]>2]){J[e>>2]=b;J[e+4>>2]=J[a>>2];return}J[e>>2]=d;J[e+4>>2]=J[g>>2];return;default:if((d|0)<=8){Wa(a,b,e,c);return}f=d>>>1|0;h=f<<2;g=h+a|0;Xb(a,g,c,f,e,f);d=d-f|0;Xb(g,b,c,d,e+h|0,d);c=J[c>>2];d=g;while(1){if((b|0)==(d|0)){if((a|0)==(g|0)){break a}while(1){J[e>>2]=J[a>>2];e=e+4|0;a=a+4|0;if((g|0)!=(a|0)){continue}break}break a}f=J[c>>2];j=J[c+4>>2]-f>>3;h=J[d>>2];if(j>>>0<=h>>>0){break c}i=J[a>>2];if(j>>>0<=i>>>0){break c}f:{if(M[f+(h<<3)>>2]>2]){J[e>>2]=h;d=d+4|0;break f}J[e>>2]=i;a=a+4|0}e=e+4|0;if((a|0)!=(g|0)){continue}break};break b;case 0:break a;case 1:break e}}J[e>>2]=J[a>>2];break a}va();B()}va();B()}if((b|0)==(d|0)){break a}while(1){J[e>>2]=J[d>>2];e=e+4|0;d=d+4|0;if((d|0)!=(b|0)){continue}break}}}function ng(a,b,c,d,e){var f=0,g=0,h=0,i=0,j=0;a:{b:{c:{d:{e:{switch(d|0){case 2:d=J[c>>2];c=J[d>>2];d=J[d+4>>2]-c>>3;g=b-4|0;b=J[g>>2];if(d>>>0<=b>>>0){break d}f=d;d=J[a>>2];if(f>>>0<=d>>>0){break d}if(M[c+(b<<3)>>2]>2]){J[e>>2]=b;J[e+4>>2]=J[a>>2];return}J[e>>2]=d;J[e+4>>2]=J[g>>2];return;default:if((d|0)<=8){Wa(a,b,e,c);return}f=d>>>1|0;h=f<<2;g=h+a|0;Wb(a,g,c,f,e,f);d=d-f|0;Wb(g,b,c,d,e+h|0,d);c=J[c>>2];d=g;while(1){if((b|0)==(d|0)){if((a|0)==(g|0)){break a}while(1){J[e>>2]=J[a>>2];e=e+4|0;a=a+4|0;if((g|0)!=(a|0)){continue}break}break a}f=J[c>>2];j=J[c+4>>2]-f>>3;h=J[d>>2];if(j>>>0<=h>>>0){break c}i=J[a>>2];if(j>>>0<=i>>>0){break c}f:{if(M[f+(h<<3)>>2]>2]){J[e>>2]=h;d=d+4|0;break f}J[e>>2]=i;a=a+4|0}e=e+4|0;if((a|0)!=(g|0)){continue}break};break b;case 0:break a;case 1:break e}}J[e>>2]=J[a>>2];break a}va();B()}va();B()}if((b|0)==(d|0)){break a}while(1){J[e>>2]=J[d>>2];e=e+4|0;d=d+4|0;if((d|0)!=(b|0)){continue}break}}}function mg(a,b,c,d,e){var f=0,g=0,h=0,i=0,j=0;a:{b:{c:{d:{e:{switch(d|0){case 2:d=J[c>>2];c=J[d>>2];d=J[d+4>>2]-c>>3;g=b-4|0;b=J[g>>2];if(d>>>0<=b>>>0){break d}f=d;d=J[a>>2];if(f>>>0<=d>>>0){break d}if(M[c+(b<<3)>>2]>2]){J[e>>2]=b;J[e+4>>2]=J[a>>2];return}J[e>>2]=d;J[e+4>>2]=J[g>>2];return;default:if((d|0)<=8){Wa(a,b,e,c);return}f=d>>>1|0;h=f<<2;g=h+a|0;Vb(a,g,c,f,e,f);d=d-f|0;Vb(g,b,c,d,e+h|0,d);c=J[c>>2];d=g;while(1){if((b|0)==(d|0)){if((a|0)==(g|0)){break a}while(1){J[e>>2]=J[a>>2];e=e+4|0;a=a+4|0;if((g|0)!=(a|0)){continue}break}break a}f=J[c>>2];j=J[c+4>>2]-f>>3;h=J[d>>2];if(j>>>0<=h>>>0){break c}i=J[a>>2];if(j>>>0<=i>>>0){break c}f:{if(M[f+(h<<3)>>2]>2]){J[e>>2]=h;d=d+4|0;break f}J[e>>2]=i;a=a+4|0}e=e+4|0;if((a|0)!=(g|0)){continue}break};break b;case 0:break a;case 1:break e}}J[e>>2]=J[a>>2];break a}va();B()}va();B()}if((b|0)==(d|0)){break a}while(1){J[e>>2]=J[d>>2];e=e+4|0;d=d+4|0;if((d|0)!=(b|0)){continue}break}}}function lg(a,b,c,d,e){var f=0,g=0,h=0,i=0,j=0;a:{b:{c:{d:{e:{switch(d|0){case 2:d=J[c>>2];c=J[d>>2];d=J[d+4>>2]-c>>3;g=b-4|0;b=J[g>>2];if(d>>>0<=b>>>0){break d}f=d;d=J[a>>2];if(f>>>0<=d>>>0){break d}if(M[c+(b<<3)>>2]>2]){J[e>>2]=b;J[e+4>>2]=J[a>>2];return}J[e>>2]=d;J[e+4>>2]=J[g>>2];return;default:if((d|0)<=8){Wa(a,b,e,c);return}f=d>>>1|0;h=f<<2;g=h+a|0;Ub(a,g,c,f,e,f);d=d-f|0;Ub(g,b,c,d,e+h|0,d);c=J[c>>2];d=g;while(1){if((b|0)==(d|0)){if((a|0)==(g|0)){break a}while(1){J[e>>2]=J[a>>2];e=e+4|0;a=a+4|0;if((g|0)!=(a|0)){continue}break}break a}f=J[c>>2];j=J[c+4>>2]-f>>3;h=J[d>>2];if(j>>>0<=h>>>0){break c}i=J[a>>2];if(j>>>0<=i>>>0){break c}f:{if(M[f+(h<<3)>>2]>2]){J[e>>2]=h;d=d+4|0;break f}J[e>>2]=i;a=a+4|0}e=e+4|0;if((a|0)!=(g|0)){continue}break};break b;case 0:break a;case 1:break e}}J[e>>2]=J[a>>2];break a}va();B()}va();B()}if((b|0)==(d|0)){break a}while(1){J[e>>2]=J[d>>2];e=e+4|0;d=d+4|0;if((d|0)!=(b|0)){continue}break}}}function kg(a,b,c,d,e){var f=0,g=0,h=0,i=0,j=0;a:{b:{c:{d:{e:{switch(d|0){case 2:d=J[c>>2];c=J[d>>2];d=J[d+4>>2]-c>>3;g=b-4|0;b=J[g>>2];if(d>>>0<=b>>>0){break d}f=d;d=J[a>>2];if(f>>>0<=d>>>0){break d}if(M[c+(b<<3)>>2]>2]){J[e>>2]=b;J[e+4>>2]=J[a>>2];return}J[e>>2]=d;J[e+4>>2]=J[g>>2];return;default:if((d|0)<=8){Wa(a,b,e,c);return}f=d>>>1|0;h=f<<2;g=h+a|0;Tb(a,g,c,f,e,f);d=d-f|0;Tb(g,b,c,d,e+h|0,d);c=J[c>>2];d=g;while(1){if((b|0)==(d|0)){if((a|0)==(g|0)){break a}while(1){J[e>>2]=J[a>>2];e=e+4|0;a=a+4|0;if((g|0)!=(a|0)){continue}break}break a}f=J[c>>2];j=J[c+4>>2]-f>>3;h=J[d>>2];if(j>>>0<=h>>>0){break c}i=J[a>>2];if(j>>>0<=i>>>0){break c}f:{if(M[f+(h<<3)>>2]>2]){J[e>>2]=h;d=d+4|0;break f}J[e>>2]=i;a=a+4|0}e=e+4|0;if((a|0)!=(g|0)){continue}break};break b;case 0:break a;case 1:break e}}J[e>>2]=J[a>>2];break a}va();B()}va();B()}if((b|0)==(d|0)){break a}while(1){J[e>>2]=J[d>>2];e=e+4|0;d=d+4|0;if((d|0)!=(b|0)){continue}break}}}function Cg(a,b,c,d,e){var f=0,g=0,h=0,i=0,j=0;a:{b:{c:{d:{e:{switch(d|0){case 2:d=J[c>>2];c=J[d>>2];d=J[d+4>>2]-c>>3;g=b-4|0;b=J[g>>2];if(d>>>0<=b>>>0){break d}f=d;d=J[a>>2];if(f>>>0<=d>>>0){break d}if(M[c+(b<<3)>>2]>2]){J[e>>2]=b;J[e+4>>2]=J[a>>2];return}J[e>>2]=d;J[e+4>>2]=J[g>>2];return;default:if((d|0)<=8){Wa(a,b,e,c);return}f=d>>>1|0;h=f<<2;g=h+a|0;ic(a,g,c,f,e,f);d=d-f|0;ic(g,b,c,d,e+h|0,d);c=J[c>>2];d=g;while(1){if((b|0)==(d|0)){if((a|0)==(g|0)){break a}while(1){J[e>>2]=J[a>>2];e=e+4|0;a=a+4|0;if((g|0)!=(a|0)){continue}break}break a}f=J[c>>2];j=J[c+4>>2]-f>>3;h=J[d>>2];if(j>>>0<=h>>>0){break c}i=J[a>>2];if(j>>>0<=i>>>0){break c}f:{if(M[f+(h<<3)>>2]>2]){J[e>>2]=h;d=d+4|0;break f}J[e>>2]=i;a=a+4|0}e=e+4|0;if((a|0)!=(g|0)){continue}break};break b;case 0:break a;case 1:break e}}J[e>>2]=J[a>>2];break a}va();B()}va();B()}if((b|0)==(d|0)){break a}while(1){J[e>>2]=J[d>>2];e=e+4|0;d=d+4|0;if((d|0)!=(b|0)){continue}break}}}function Bg(a,b,c,d,e){var f=0,g=0,h=0,i=0,j=0;a:{b:{c:{d:{e:{switch(d|0){case 2:d=J[c>>2];c=J[d>>2];d=J[d+4>>2]-c>>3;g=b-4|0;b=J[g>>2];if(d>>>0<=b>>>0){break d}f=d;d=J[a>>2];if(f>>>0<=d>>>0){break d}if(M[c+(b<<3)>>2]>2]){J[e>>2]=b;J[e+4>>2]=J[a>>2];return}J[e>>2]=d;J[e+4>>2]=J[g>>2];return;default:if((d|0)<=8){Wa(a,b,e,c);return}f=d>>>1|0;h=f<<2;g=h+a|0;hc(a,g,c,f,e,f);d=d-f|0;hc(g,b,c,d,e+h|0,d);c=J[c>>2];d=g;while(1){if((b|0)==(d|0)){if((a|0)==(g|0)){break a}while(1){J[e>>2]=J[a>>2];e=e+4|0;a=a+4|0;if((g|0)!=(a|0)){continue}break}break a}f=J[c>>2];j=J[c+4>>2]-f>>3;h=J[d>>2];if(j>>>0<=h>>>0){break c}i=J[a>>2];if(j>>>0<=i>>>0){break c}f:{if(M[f+(h<<3)>>2]>2]){J[e>>2]=h;d=d+4|0;break f}J[e>>2]=i;a=a+4|0}e=e+4|0;if((a|0)!=(g|0)){continue}break};break b;case 0:break a;case 1:break e}}J[e>>2]=J[a>>2];break a}va();B()}va();B()}if((b|0)==(d|0)){break a}while(1){J[e>>2]=J[d>>2];e=e+4|0;d=d+4|0;if((d|0)!=(b|0)){continue}break}}}function Ag(a,b,c,d,e){var f=0,g=0,h=0,i=0,j=0;a:{b:{c:{d:{e:{switch(d|0){case 2:d=J[c>>2];c=J[d>>2];d=J[d+4>>2]-c>>3;g=b-4|0;b=J[g>>2];if(d>>>0<=b>>>0){break d}f=d;d=J[a>>2];if(f>>>0<=d>>>0){break d}if(M[c+(b<<3)>>2]>2]){J[e>>2]=b;J[e+4>>2]=J[a>>2];return}J[e>>2]=d;J[e+4>>2]=J[g>>2];return;default:if((d|0)<=8){Wa(a,b,e,c);return}f=d>>>1|0;h=f<<2;g=h+a|0;gc(a,g,c,f,e,f);d=d-f|0;gc(g,b,c,d,e+h|0,d);c=J[c>>2];d=g;while(1){if((b|0)==(d|0)){if((a|0)==(g|0)){break a}while(1){J[e>>2]=J[a>>2];e=e+4|0;a=a+4|0;if((g|0)!=(a|0)){continue}break}break a}f=J[c>>2];j=J[c+4>>2]-f>>3;h=J[d>>2];if(j>>>0<=h>>>0){break c}i=J[a>>2];if(j>>>0<=i>>>0){break c}f:{if(M[f+(h<<3)>>2]>2]){J[e>>2]=h;d=d+4|0;break f}J[e>>2]=i;a=a+4|0}e=e+4|0;if((a|0)!=(g|0)){continue}break};break b;case 0:break a;case 1:break e}}J[e>>2]=J[a>>2];break a}va();B()}va();B()}if((b|0)==(d|0)){break a}while(1){J[e>>2]=J[d>>2];e=e+4|0;d=d+4|0;if((d|0)!=(b|0)){continue}break}}}function _i(a){a=a|0;var b=0,c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0;b=J[a+4>>2];b=J[b+12>>2]-J[b+8>>2]|0;a:{if((b|0)>0){while(1){if(ga[J[J[a>>2]+36>>2]](a,c)|0){b=J[a+4>>2];b=J[b+12>>2]-J[b+8>>2]>>2;c=c+1|0;if((b|0)>(c|0)){continue}break a}break}return 0}b=b>>2}c=a+20|0;d=J[a+20>>2];e=J[a+24>>2]-d>>2;b:{if(e>>>0>>0){Fa(c,b-e|0);break b}if(b>>>0>=e>>>0){break b}J[a+24>>2]=d+(b<<2)}f=J[a+8>>2];a=J[a+12>>2];if((f|0)==(a|0)){return 1}a=a-f>>2;j=a>>>0<=1?1:a;e=J[c>>2];c=0;while(1){a=J[(c<<2)+f>>2];d=J[a+8>>2];b=J[a+4>>2];c:{if((d|0)==(b|0)){break c}a=d-b>>2;d=a>>>0<=1?1:a;i=d&3;g=0;a=0;if(d-1>>>0>=3){k=d&-4;h=0;while(1){d=a<<2;J[e+(J[d+b>>2]<<2)>>2]=c;J[e+(J[b+(d|4)>>2]<<2)>>2]=c;J[e+(J[b+(d|8)>>2]<<2)>>2]=c;J[e+(J[b+(d|12)>>2]<<2)>>2]=c;a=a+4|0;h=h+4|0;if((k|0)!=(h|0)){continue}break}}if(!i){break c}while(1){J[e+(J[b+(a<<2)>>2]<<2)>>2]=c;a=a+1|0;g=g+1|0;if((g|0)!=(i|0)){continue}break}}c=c+1|0;if((j|0)!=(c|0)){continue}break}return 1}function ie(a,b){var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0;a:{c=J[a+8>>2];b:{if((c|0)!=J[a+12>>2]){e=c;break b}d=J[a+4>>2];g=J[a>>2];if(d>>>0>g>>>0){f=c-d|0;g=((d-g>>2)+1|0)/-2<<2;e=g+d|0;if((c|0)!=(d|0)){xa(e,d,f);c=J[a+4>>2]}e=e+f|0;J[a+8>>2]=e;J[a+4>>2]=c+g;break b}f=(c|0)==(g|0)?1:c-g>>1;if(f>>>0>=1073741824){break a}e=f<<2;h=ra(e);k=h+e|0;f=(f&-4)+h|0;e=f;c:{if((c|0)==(d|0)){break c}c=c-d|0;l=c&-4;i=c-4|0;j=(i>>>2|0)+1&7;d:{if(!j){c=f;break d}e=0;c=f;while(1){J[c>>2]=J[d>>2];d=d+4|0;c=c+4|0;e=e+1|0;if((j|0)!=(e|0)){continue}break}}e=f+l|0;if(i>>>0<28){break c}while(1){J[c>>2]=J[d>>2];J[c+4>>2]=J[d+4>>2];J[c+8>>2]=J[d+8>>2];J[c+12>>2]=J[d+12>>2];J[c+16>>2]=J[d+16>>2];J[c+20>>2]=J[d+20>>2];J[c+24>>2]=J[d+24>>2];J[c+28>>2]=J[d+28>>2];d=d+32|0;c=c+32|0;if((e|0)!=(c|0)){continue}break}}J[a+12>>2]=k;J[a+8>>2]=e;J[a+4>>2]=f;J[a>>2]=h;if(!g){break b}qa(g);e=J[a+8>>2]}J[e>>2]=J[b>>2];J[a+8>>2]=J[a+8>>2]+4;return}ya();B()}function he(a,b){var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0;a:{f=J[a+4>>2];b:{if((f|0)!=J[a>>2]){c=f;break b}g=J[a+8>>2];c=J[a+12>>2];if(g>>>0>>0){e=((c-g>>2)+1|0)/2<<2;c=e+g|0;if((f|0)!=(g|0)){d=g-f|0;c=c-d|0;xa(c,f,d);f=J[a+8>>2]}J[a+4>>2]=c;J[a+8>>2]=e+f;break b}d=(c|0)==(f|0)?1:c-f>>1;if(d>>>0>=1073741824){break a}c=d<<2;i=ra(c);k=i+c|0;c=(d+3&-4)+i|0;h=c;c:{if((f|0)==(g|0)){break c}g=g-f|0;l=g&-4;e=c;d=f;j=g-4|0;g=(j>>>2|0)+1&7;if(g){h=0;while(1){J[e>>2]=J[d>>2];d=d+4|0;e=e+4|0;h=h+1|0;if((g|0)!=(h|0)){continue}break}}h=c+l|0;if(j>>>0<28){break c}while(1){J[e>>2]=J[d>>2];J[e+4>>2]=J[d+4>>2];J[e+8>>2]=J[d+8>>2];J[e+12>>2]=J[d+12>>2];J[e+16>>2]=J[d+16>>2];J[e+20>>2]=J[d+20>>2];J[e+24>>2]=J[d+24>>2];J[e+28>>2]=J[d+28>>2];d=d+32|0;e=e+32|0;if((h|0)!=(e|0)){continue}break}}J[a+12>>2]=k;J[a+8>>2]=h;J[a+4>>2]=c;J[a>>2]=i;if(!f){break b}qa(f);c=J[a+4>>2]}J[c-4>>2]=J[b>>2];J[a+4>>2]=J[a+4>>2]-4;return}ya();B()}function nd(a,b,c){var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0;f=c-b|0;e=J[a+8>>2];d=J[a>>2];if(f>>>0<=e-d>>>0){h=J[a+4>>2]-d|0;e=h+b|0;g=f>>>0>h>>>0?e:c;a:{if((g|0)==(b|0)){break a}k=(b^-1)+g|0;i=g-b&7;if(i){while(1){H[d|0]=K[b|0];d=d+1|0;b=b+1|0;j=j+1|0;if((j|0)!=(i|0)){continue}break}}if(k>>>0<7){break a}while(1){H[d|0]=K[b|0];H[d+1|0]=K[b+1|0];H[d+2|0]=K[b+2|0];H[d+3|0]=K[b+3|0];H[d+4|0]=K[b+4|0];H[d+5|0]=K[b+5|0];H[d+6|0]=K[b+6|0];H[d+7|0]=K[b+7|0];d=d+8|0;b=b+8|0;if((g|0)!=(b|0)){continue}break}}if(f>>>0>h>>>0){b=J[a+4>>2];if((c|0)!=(g|0)){while(1){H[b|0]=K[e|0];b=b+1|0;e=e+1|0;if((e|0)!=(c|0)){continue}break}}J[a+4>>2]=b;return}J[a+4>>2]=d;return}if(d){J[a+4>>2]=d;qa(d);J[a+8>>2]=0;J[a>>2]=0;J[a+4>>2]=0;e=0}b:{if((f|0)<0){break b}d=e<<1;e=e>>>0>=1073741823?2147483647:d>>>0>f>>>0?d:f;if((e|0)<0){break b}d=ra(e);J[a>>2]=d;J[a+4>>2]=d;J[a+8>>2]=d+e;if((b|0)!=(c|0)){d=ta(d,b,f)+f|0}J[a+4>>2]=d;return}ua();B()}function uj(a){a=a|0;var b=0,c=0,d=0,e=0,f=0,g=0,h=0;g=ea-16|0;ea=g;b=J[a+4>>2];d=J[b>>2];a:{c=J[a+12>>2];c=J[c+28>>2]-J[c+24>>2]|0;e=c>>2;b:{if(e>>>0<=J[b+8>>2]-d>>2>>>0){break b}if((c|0)<0){break a}f=J[b+4>>2];c=ra(c);h=c+(e<<2)|0;e=f-d|0;f=e+c|0;if((e|0)>0){ta(c,d,e)}J[b+8>>2]=h;J[b+4>>2]=f;J[b>>2]=c;if(!d){break b}qa(d)}b=J[a+12>>2];d=J[b+28>>2];b=J[b+24>>2];J[g+12>>2]=0;b=d-b>>2;c=a+96|0;e=J[c>>2];d=J[a+100>>2]-e>>2;c:{if(b>>>0>d>>>0){La(c,b-d|0,g+12|0);break c}if(b>>>0>=d>>>0){break c}J[a+100>>2]=e+(b<<2)}e=a+8|0;b=J[a+116>>2];d:{if(b){c=J[b>>2];if((c|0)==J[b+4>>2]){d=1;break d}b=0;while(1){d=Sf(e,J[(b<<2)+c>>2]);if(!d){break d}f=J[a+116>>2];c=J[f>>2];b=b+1|0;if(b>>>0>2]-c>>2>>>0){continue}break}break d}d=1;a=J[a+12>>2];a=J[a+4>>2]-J[a>>2]|0;if(a>>>0<12){break d}a=(a>>2>>>0)/3|0;b=0;while(1){d=Sf(e,P(b,3));if(!d){break d}b=b+1|0;if((a|0)!=(b|0)){continue}break}}ea=g+16|0;return d|0}ua();B()}function $j(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0;f=J[a+12>>2];h=J[a+8>>2];d=f-h>>2;b=K[b+24|0];a:{if(d>>>0>>0){Fa(a+8|0,b-d|0);h=J[a+8>>2];f=J[a+12>>2];break a}if(b>>>0>=d>>>0){break a}f=(b<<2)+h|0;J[a+12>>2]=f}b=0;i=J[c+20>>2];e=J[c+16>>2];d=f-h|0;f=d;g=e+d|0;j=J[c+12>>2];i=d>>>0>g>>>0?i+1|0:i;b:{if(g>>>0>M[c+8>>2]&(j|0)<=(i|0)|(i|0)>(j|0)){break b}ta(h,e+J[c>>2]|0,d);d=J[c+20>>2];e=f+J[c+16>>2]|0;d=e>>>0>>0?d+1|0:d;g=e;J[c+16>>2]=e;J[c+20>>2]=d;e=J[c+12>>2];f=g+4|0;d=f>>>0<4?d+1|0:d;if(f>>>0>M[c+8>>2]&(d|0)>=(e|0)|(d|0)>(e|0)){break b}d=g+J[c>>2]|0;J[a+20>>2]=K[d|0]|K[d+1|0]<<8|(K[d+2|0]<<16|K[d+3|0]<<24);d=J[c+20>>2];g=J[c+16>>2];e=g+4|0;f=e>>>0<4?d+1|0:d;j=e;J[c+16>>2]=e;J[c+20>>2]=f;e=J[c+12>>2];if((f|0)>=(e|0)&j>>>0>=M[c+8>>2]|(f|0)>(e|0)){break b}e=K[j+J[c>>2]|0];f=g+5|0;d=f>>>0<5?d+1|0:d;J[c+16>>2]=f;J[c+20>>2]=d;if(e-1>>>0>29){break b}J[a+4>>2]=e;b=1}return b|0}function Of(a,b,c,d){var e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0;j=+N[b>>2];k=+N[b+4>>2];l=+N[b+8>>2];g=R(j)+R(k)+R(l);a:{if(!(g>1e-6)){j=1;k=0;e=0;break a}g=1/g;k=g*k;j=g*j;e=g*l<0}h=J[a+16>>2];l=+(h|0);g=V(j*l+.5);b:{if(R(g)<2147483648){m=~~g;break b}m=-2147483648}f=m>>31;i=(f^m)-f|0;g=V(k*l+.5);c:{if(R(g)<2147483648){f=~~g;break c}f=-2147483648}b=f>>31;b=h-(i+((f^b)-b|0)|0)|0;i=(b|0)>0?b:0;e=e?0-i|0:i;f=f+(b>>31&((f|0)>0?b:0-b|0))|0;d:{if((m|0)>=0){b=e+h|0;a=J[a+8>>2];e=h+f|0;break d}b=f>>31;b=(b^f)-b|0;a=J[a+8>>2];b=(e|0)<0?b:a-b|0;e=(f|0)<0?i:a-i|0}e:{if(!(b|e)){b=a;break e}if(!((a|0)!=(b|0)|e)){b=a;break e}if(!((a|0)!=(e|0)|b)){b=a;break e}if(!((b|0)<=(h|0)|e)){b=(h<<1)-b|0;a=0;break e}if(!((a|0)!=(e|0)|(b|0)>=(h|0))){b=(h<<1)-b|0;break e}if(!((a|0)!=(b|0)|(e|0)>=(h|0))){b=a;a=(h<<1)-e|0;break e}if(b){a=e;break e}b=0;if((e|0)<=(h|0)){a=e;break e}a=(h<<1)-e|0}J[c>>2]=a;J[d>>2]=b}function Zd(a,b,c,d){var e=0,f=0,g=0,h=0,i=0,j=0,k=0;a:{b:{e=J[b+4>>2];c:{if(!e){f=b+4|0;c=f;break c}f=K[c+11|0];g=f<<24>>24<0;i=g?J[c>>2]:c;g=g?J[c+4>>2]:f;while(1){c=e;h=K[e+27|0];f=h<<24>>24<0;e=f?J[e+20>>2]:h;h=e>>>0>>0;d:{e:{f:{g:{j=h?e:g;h:{if(j){f=f?J[c+16>>2]:c+16|0;k=Ea(i,f,j);if(!k){if(e>>>0>g>>>0){break h}break g}if((k|0)>=0){break g}break h}if(e>>>0<=g>>>0){break f}}f=c;e=J[c>>2];if(e){continue}break c}e=Ea(f,i,j);if(e){break e}}if(h){break d}break b}if((e|0)>=0){break b}}e=J[c+4>>2];if(e){continue}break}f=c+4|0}e=ra(40);g=e+16|0;d=J[d>>2];i:{if(H[d+11|0]>=0){i=J[d+4>>2];J[g>>2]=J[d>>2];J[g+4>>2]=i;J[g+8>>2]=J[d+8>>2];break i}Ja(g,J[d>>2],J[d+4>>2])}J[e+8>>2]=c;J[e>>2]=0;J[e+4>>2]=0;J[e+36>>2]=0;J[e+28>>2]=0;J[e+32>>2]=0;J[f>>2]=e;c=e;d=J[J[b>>2]>>2];if(d){J[b>>2]=d;c=J[f>>2]}tb(J[b+4>>2],c);J[b+8>>2]=J[b+8>>2]+1;b=1;break a}e=c;b=0}H[a+4|0]=b;J[a>>2]=e}function di(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=Q(0),f=Q(0),g=Q(0),h=Q(0),i=Q(0),j=0,k=Q(0),l=Q(0),m=Q(0),n=Q(0),o=0;a:{if(J[c+28>>2]!=9|K[c+24|0]!=3){break a}a=J[a+4>>2];if(a-31>>>0<4294967267){break a}o=1;j=J[c+80>>2];if(!j){break a}k=Q(Q(2)/Q((1<>2]>>2]+J[c+48>>2]|0;a=J[J[b>>2]>>2]+J[b+48>>2]|0;b=0;while(1){g=Q(0);l=Q(0);m=Q(0);e=Q(Q(Q(J[a>>2])*k)+Q(-1));f=Q(Q(Q(J[a+4>>2])*k)+Q(-1));i=Q(Q(Q(1)-Q(R(e)))-Q(R(f)));h=Q(U(Q(-i),Q(0)));n=Q(-h);f=Q(f+(f>>8;H[c+10|0]=d>>>16;H[c+11|0]=d>>>24;d=(C(l),v(2));H[c+4|0]=d;H[c+5|0]=d>>>8;H[c+6|0]=d>>>16;H[c+7|0]=d>>>24;d=(C(g),v(2));H[c|0]=d;H[c+1|0]=d>>>8;H[c+2|0]=d>>>16;H[c+3|0]=d>>>24;c=c+12|0;b=b+1|0;if((j|0)!=(b|0)){continue}break}}return o|0}function qc(a,b){var c=0,d=0,e=0,f=0,g=0,h=0;d=ea-32|0;ea=d;g=J[b>>2]+J[a+40>>2]|0;e=J[a+32>>2];c=e-4194304|0;a:{if(c>>>0<=63){H[J[a+24>>2]+J[a+28>>2]|0]=e;c=J[a+28>>2]+1|0;break a}if(c>>>0<=16383){c=J[a+24>>2]+J[a+28>>2]|0;H[c+1|0]=e+16384>>>8;H[c|0]=e;c=J[a+28>>2]+2|0;break a}if(c>>>0<=4194303){c=J[a+24>>2]+J[a+28>>2]|0;H[c+2|0]=e+4194304>>>16;H[c+1|0]=e>>>8;H[c|0]=e;c=J[a+28>>2]+3|0;break a}if(c>>>0<=1073741823){f=J[a+24>>2]+J[a+28>>2]|0;c=e-1077936128|0;H[f+3|0]=c>>>24;H[f+2|0]=c>>>16;H[f+1|0]=e>>>8;H[f|0]=e;c=J[a+28>>2]+4|0;break a}c=J[a+28>>2]}J[d>>2]=0;J[d+4>>2]=0;H[d+24|0]=0;J[d+16>>2]=0;J[d+20>>2]=0;J[d+8>>2]=0;J[d+12>>2]=0;f=c>>31;yb(c,f,d);e=J[d+4>>2]-J[d>>2]|0;xa(e+g|0,g,c);ta(g,J[d>>2],e);g=J[a+44>>2];h=b;b=J[a+40>>2];a=c+e|0;f=a>>>0>>0?f+1|0:f;b=b+a|0;Ma(h,b);a=J[d+12>>2];J[d+12>>2]=0;if(a){qa(a)}a=J[d>>2];if(a){J[d+4>>2]=a;qa(a)}ea=d+32|0}function zb(a,b){var c=0,d=0,e=0,f=0,g=0,h=0;d=ea-32|0;ea=d;g=J[b>>2]+J[a+40>>2]|0;f=J[a+32>>2];c=f-16384|0;a:{if(c>>>0<=63){H[J[a+24>>2]+J[a+28>>2]|0]=f;c=J[a+28>>2]+1|0;break a}if(c>>>0<=16383){c=J[a+24>>2]+J[a+28>>2]|0;H[c|0]=f;H[c+1|0]=f>>>8;c=J[a+28>>2]+2|0;break a}if(c>>>0<=4194303){e=J[a+24>>2]+J[a+28>>2]|0;c=f+8372224|0;H[e+2|0]=c>>>16;H[e+1|0]=c>>>8;H[e|0]=f;c=J[a+28>>2]+3|0;break a}if(c>>>0<=1073741823){e=J[a+24>>2]+J[a+28>>2]|0;c=f-1073758208|0;H[e+3|0]=c>>>24;H[e+2|0]=c>>>16;H[e+1|0]=c>>>8;H[e|0]=f;c=J[a+28>>2]+4|0;break a}c=J[a+28>>2]}J[d>>2]=0;J[d+4>>2]=0;H[d+24|0]=0;J[d+16>>2]=0;J[d+20>>2]=0;J[d+8>>2]=0;J[d+12>>2]=0;e=c>>31;yb(c,e,d);f=J[d+4>>2]-J[d>>2]|0;xa(f+g|0,g,c);ta(g,J[d>>2],f);g=J[a+44>>2];h=b;b=J[a+40>>2];a=c+f|0;e=a>>>0>>0?e+1|0:e;b=b+a|0;Ma(h,b);a=J[d+12>>2];J[d+12>>2]=0;if(a){qa(a)}a=J[d>>2];if(a){J[d+4>>2]=a;qa(a)}ea=d+32|0}function gg(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0;c=ea-16|0;ea=c;b=J[J[a+184>>2]+(b<<2)>>2];H[c+15|0]=b;e=J[J[a+4>>2]+44>>2];d=J[e+20>>2];if(!J[e+16>>2]&(d|0)<=0|(d|0)<0){wa(e,J[e+4>>2],c+15|0,c+16|0);b=K[c+15|0]}a:{b:{c:{if(b<<24>>24<0){e=J[a+68>>2];break c}b=J[J[a+172>>2]+P(b&255,136)>>2];d=ga[J[J[a>>2]+40>>2]](a)|0;f=J[a+172>>2]+P(H[c+15|0],136)|0;e=J[f+132>>2];d:{switch(J[J[J[d+56>>2]+84>>2]+(b<<2)>>2]){case 0:break c;case 1:break d;default:break b}}if(!K[f+28|0]){break b}}b=J[J[a+4>>2]+44>>2];H[c+14|0]=0;d=J[b+20>>2];if(!!J[b+16>>2]&(d|0)>=0|(d|0)>0){break a}wa(b,J[b+4>>2],c+14|0,c+15|0);break a}b=J[J[a+4>>2]+44>>2];H[c+13|0]=1;d=J[b+20>>2];if(!!J[b+16>>2]&(d|0)>=0|(d|0)>0){break a}wa(b,J[b+4>>2],c+13|0,c+14|0)}a=J[J[a+4>>2]+44>>2];H[c+12|0]=e;b=J[a+20>>2];if(!J[a+16>>2]&(b|0)<=0|(b|0)<0){wa(a,J[a+4>>2],c+12|0,c+13|0)}ea=c+16|0;return 1}function zc(a,b,c,d){var e=0,f=0,g=0,h=0,i=0,j=0,k=0;a:{b:{e=J[b+4>>2];c:{if(!e){f=b+4|0;c=f;break c}f=K[c+11|0];g=f<<24>>24<0;i=g?J[c>>2]:c;g=g?J[c+4>>2]:f;while(1){c=e;e=K[e+27|0];f=e<<24>>24<0;e=f?J[c+20>>2]:e;j=e>>>0>>0;d:{e:{f:{g:{h=j?e:g;h:{if(h){f=f?J[c+16>>2]:c+16|0;k=Ea(i,f,h);if(!k){if(e>>>0>g>>>0){break h}break g}if((k|0)>=0){break g}break h}if(e>>>0<=g>>>0){break f}}f=c;e=J[c>>2];if(e){continue}break c}e=Ea(f,i,h);if(e){break e}}if(j){break d}break b}if((e|0)>=0){break b}}e=J[c+4>>2];if(e){continue}break}f=c+4|0}e=ra(40);J[e+24>>2]=J[d+8>>2];g=J[d+4>>2];J[e+16>>2]=J[d>>2];J[e+20>>2]=g;J[d>>2]=0;J[d+4>>2]=0;J[d+8>>2]=0;Pb(e+28|0,d+12|0);J[e+8>>2]=c;J[e>>2]=0;J[e+4>>2]=0;J[f>>2]=e;c=e;d=J[J[b>>2]>>2];if(d){J[b>>2]=d;c=J[f>>2]}tb(J[b+4>>2],c);J[b+8>>2]=J[b+8>>2]+1;b=1;break a}e=c;b=0}H[a+4|0]=b;J[a>>2]=e}function wh(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0,i=0;a:{b:{if((ga[J[J[b>>2]+20>>2]](b)|0)>0){while(1){d=Ob(J[J[a+4>>2]+4>>2],ga[J[J[b>>2]+24>>2]](b,i)|0);if((d|0)!=-1){c=J[a+20>>2];c:{if((c|0)!=J[a+24>>2]){J[c>>2]=d;J[a+20>>2]=c+4;break c}h=J[a+16>>2];e=c-h|0;g=e>>2;c=g+1|0;if(c>>>0>=1073741824){break b}f=e>>1;f=e>>>0>=2147483644?1073741823:c>>>0>>0?f:c;if(f){if(f>>>0>=1073741824){break a}c=ra(f<<2)}else{c=0}g=c+(g<<2)|0;J[g>>2]=d;if((e|0)>0){ta(c,h,e)}J[a+24>>2]=c+(f<<2);J[a+20>>2]=g+4;J[a+16>>2]=c;if(!h){break c}qa(h)}c=J[a+4>>2];d:{if((d|0)<0){break d}e=J[c+4>>2];if(J[e+12>>2]-J[e+8>>2]>>2<=(d|0)){break d}c=J[J[c+8>>2]+(J[J[c+20>>2]+(d<<2)>>2]<<2)>>2];ga[J[J[c>>2]+32>>2]](c,d)|0}i=i+1|0;if((ga[J[J[b>>2]+20>>2]](b)|0)>(i|0)){continue}}break}a=(d|0)!=-1}else{a=1}return a|0}ua();B()}ya();B()}function Ic(a,b){var c=0,d=0;c=J[b+8>>2];J[a+4>>2]=J[b+4>>2];J[a+8>>2]=c;J[a+20>>2]=J[b+20>>2];c=J[b+16>>2];J[a+12>>2]=J[b+12>>2];J[a+16>>2]=c;a:{b:{if((a|0)!=(b|0)){c=J[b+28>>2];if(c){d=J[a+24>>2];if(J[a+32>>2]<<5>>>0>>0){if(d){qa(d);J[a+32>>2]=0;J[a+24>>2]=0;J[a+28>>2]=0;c=J[b+28>>2]}if((c|0)<0){break b}c=(c-1>>>5|0)+1|0;d=ra(c<<2);J[a+32>>2]=c;J[a+28>>2]=0;J[a+24>>2]=d;c=J[b+28>>2]}xa(d,J[b+24>>2],(c-1>>>3&536870908)+4|0);c=J[b+28>>2]}else{c=0}J[a+28>>2]=c;c=J[b+40>>2];if(c){d=J[a+36>>2];if(J[a+44>>2]<<5>>>0>>0){if(d){qa(d);J[a+44>>2]=0;J[a+36>>2]=0;J[a+40>>2]=0;c=J[b+40>>2]}if((c|0)<0){break a}c=(c-1>>>5|0)+1|0;d=ra(c<<2);J[a+44>>2]=c;J[a+40>>2]=0;J[a+36>>2]=d;c=J[b+40>>2]}xa(d,J[b+36>>2],(c-1>>>3&536870908)+4|0);b=J[b+40>>2]}else{b=0}J[a+40>>2]=b}return}ua();B()}ua();B()}function ef(a){var b=0,c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0;f=ea-16|0;ea=f;d=J[a+100>>2];e=J[a+96>>2];J[f+8>>2]=0;J[f>>2]=0;J[f+4>>2]=0;b=d-e|0;g=(b|0)/12|0;a:{b:{if((d|0)==(e|0)){break b}if(g>>>0>=357913942){break a}d=ra(b);J[f>>2]=d;J[f+8>>2]=d+P(g,12);a=0;c=d;d=b-12|0;b=(d-((d>>>0)%12|0)|0)+12|0;d=sa(c,0,b);J[f+4>>2]=b+d;b=g>>>0<=1?1:g;j=b&1;if(g>>>0>=2){k=b&-2;g=0;while(1){c=P(a,12);b=c+e|0;h=J[b+4>>2];i=J[b>>2];c=d+c|0;J[c+8>>2]=J[b+8>>2];J[c>>2]=i;J[c+4>>2]=h;c=P(a|1,12);b=c+e|0;h=J[b+4>>2];i=J[b>>2];c=d+c|0;J[c+8>>2]=J[b+8>>2];J[c>>2]=i;J[c+4>>2]=h;a=a+2|0;g=g+2|0;if((k|0)!=(g|0)){continue}break}}if(!j){break b}c=e;e=P(a,12);a=c+e|0;g=J[a+4>>2];b=J[a>>2];e=d+e|0;J[e+8>>2]=J[a+8>>2];J[e>>2]=b;J[e+4>>2]=g}e=jf(f);a=J[f>>2];if(a){J[f+4>>2]=a;qa(a)}ea=f+16|0;return e}ua();B()}function _f(a){var b=0,c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0;d=J[a+112>>2];b=J[a+108>>2];c=(d-b|0)/12|0;Da(c,J[J[a+4>>2]+44>>2]);if((b|0)!=(d|0)){e=c>>>0<=1?1:c;d=0;while(1){b=J[a+108>>2]+P(d,12)|0;Da(J[b+4>>2]-g|0,J[J[a+4>>2]+44>>2]);Da(J[b+4>>2]-J[b>>2]|0,J[J[a+4>>2]+44>>2]);g=J[b+4>>2];d=d+1|0;if((e|0)!=(d|0)){continue}break}d=0;xd(J[J[a+4>>2]+44>>2],c,0,0);e=J[J[a+4>>2]+44>>2];b=J[e+20>>2];if(!!J[e+16>>2]&(b|0)>=0|(b|0)>0){e=c>>>0<=1?1:c;while(1){c=J[J[a+4>>2]+44>>2];b=J[c+20>>2];if(!!J[c+16>>2]&(b|0)>=0|(b|0)>0){g=K[(J[a+108>>2]+P(d,12)|0)+8|0];c=J[c+12>>2];f=J[c+4>>2];b=f>>>3|0;h=b+J[c>>2]|0;i=K[h|0];f=f&7;j=h,k=El(f)&i,H[j|0]=k;b=b+J[c>>2]|0;H[b|0]=K[b|0]|(g&1)<>2]=J[c+4>>2]+1}d=d+1|0;if((e|0)!=(d|0)){continue}break}}wd(J[J[a+4>>2]+44>>2])}return 1}function Mc(a,b,c,d){var e=0,f=0,g=0,h=0,i=0,j=0,k=0;i=ea-16|0;ea=i;e=J[b+4>>2];a:{b:{if(!e){h=b+4|0;g=h;break b}f=J[c>>2];while(1){g=e;c=J[e+16>>2];if((c|0)>(f|0)){h=g;e=J[g>>2];if(e){continue}break b}if((c|0)>=(f|0)){f=g;b=0;break a}e=J[g+4>>2];if(e){continue}break}h=g+4|0}f=ra(32);c=J[d>>2];j=f+24|0;e=j;J[e>>2]=0;J[e+4>>2]=0;J[f+16>>2]=c;k=f+20|0;J[k>>2]=e;e=J[d+4>>2];d=d+8|0;if((e|0)!=(d|0)){while(1){c=e+16|0;Kg(i+8|0,k,j,c,c);c=J[e+4>>2];c:{if(c){while(1){e=c;c=J[e>>2];if(c){continue}break c}}while(1){c=e;e=J[e+8>>2];if((c|0)!=J[e>>2]){continue}break}}if((d|0)!=(e|0)){continue}break}}J[f+8>>2]=g;J[f>>2]=0;J[f+4>>2]=0;J[h>>2]=f;e=f;c=J[J[b>>2]>>2];if(c){J[b>>2]=c;e=J[h>>2]}tb(J[b+4>>2],e);J[b+8>>2]=J[b+8>>2]+1;b=1}H[a+4|0]=b;J[a>>2]=f;ea=i+16|0}function He(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0;c=ea-16|0;ea=c;Da(J[a+8>>2]-J[a+4>>2]>>2,b);e=J[a+4>>2];if((e|0)!=J[a+8>>2]){h=c+13|0;i=c+14|0;j=c+15|0;k=c+16|0;while(1){e=J[J[J[a+32>>2]+8>>2]+(J[(g<<2)+e>>2]<<2)>>2];H[c+15|0]=J[e+56>>2];d=J[b+20>>2];a:{if(!!J[b+16>>2]&(d|0)>=0|(d|0)>0){break a}wa(b,J[b+4>>2],c+15|0,k);d=J[b+20>>2];f=J[b+16>>2];H[c+14|0]=J[e+28>>2];if(!!f&(d|0)>=0|(d|0)>0){break a}wa(b,J[b+4>>2],c+14|0,j);d=J[b+20>>2];f=J[b+16>>2];H[c+13|0]=K[e+24|0];if(!!f&(d|0)>=0|(d|0)>0){break a}wa(b,J[b+4>>2],c+13|0,i);d=J[b+20>>2];f=J[b+16>>2];H[c+12|0]=K[e+32|0];if(!!f&(d|0)>=0|(d|0)>0){break a}wa(b,J[b+4>>2],c+12|0,h)}Da(J[e+60>>2],b);g=g+1|0;e=J[a+4>>2];if(g>>>0>2]-e>>2>>>0){continue}break}}ea=c+16|0;return 1}function fb(a,b){var c=0,d=0,e=0,f=0,g=0,h=0;f=ea-16|0;ea=f;a:{b:{c=J[a+4>>2];c:{if((c|0)!=J[a+8>>2]){J[c>>2]=J[a+12>>2];d=c+4|0;J[a+4>>2]=d;break c}h=J[a>>2];g=c-h|0;d=g>>2;c=d+1|0;if(c>>>0>=1073741824){break b}e=g>>1;e=g>>>0>=2147483644?1073741823:c>>>0>>0?e:c;if(e){if(e>>>0>=1073741824){break a}c=ra(e<<2)}else{c=0}d=c+(d<<2)|0;J[d>>2]=J[a+12>>2];d=d+4|0;if((g|0)>0){ta(c,h,g)}J[a+8>>2]=(e<<2)+c;J[a+4>>2]=d;J[a>>2]=c;if(!h){break c}qa(h);d=J[a+4>>2]}J[f+12>>2]=d-J[a>>2];c=J[b+20>>2];d:{if(!!J[b+16>>2]&(c|0)>=0|(c|0)>0){break d}wa(b,J[b+4>>2],f+12|0,f+16|0);c=J[b+20>>2];if(!!J[b+16>>2]&(c|0)>=0|(c|0)>0){break d}c=b;d=J[b+4>>2];b=J[a>>2];wa(c,d,b,b+J[f+12>>2]|0)}J[a+12>>2]=0;J[a+16>>2]=0;J[a+4>>2]=J[a>>2];ea=f+16|0;return}ua();B()}ya();B()}function Jk(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0;e=ea-16|0;ea=e;J[e+12>>2]=c;if(!(!de(a,b,c)|K[J[a+8>>2]+24|0]!=3)){f=J[b+48>>2];b=ra(32);J[e>>2]=b;J[e+4>>2]=17;J[e+8>>2]=-2147483616;H[b+16|0]=K[1261];c=K[1257]|K[1258]<<8|(K[1259]<<16|K[1260]<<24);d=K[1253]|K[1254]<<8|(K[1255]<<16|K[1256]<<24);H[b+8|0]=d;H[b+9|0]=d>>>8;H[b+10|0]=d>>>16;H[b+11|0]=d>>>24;H[b+12|0]=c;H[b+13|0]=c>>>8;H[b+14|0]=c>>>16;H[b+15|0]=c>>>24;c=K[1249]|K[1250]<<8|(K[1251]<<16|K[1252]<<24);d=K[1245]|K[1246]<<8|(K[1247]<<16|K[1248]<<24);H[b|0]=d;H[b+1|0]=d>>>8;H[b+2|0]=d>>>16;H[b+3|0]=d>>>24;H[b+4|0]=c;H[b+5|0]=c>>>8;H[b+6|0]=c>>>16;H[b+7|0]=c>>>24;H[b+17|0]=0;b=kb(f,e+12|0,e,-1);if(H[e+11|0]<0){qa(J[e>>2])}if((b|0)>0){J[a+44>>2]=b}d=(b|0)>0}ea=e+16|0;return d|0}function xa(a,b,c){var d=0,e=0;a:{if((a|0)==(b|0)){break a}e=a+c|0;if(b-e>>>0<=0-(c<<1)>>>0){return ta(a,b,c)}d=(a^b)&3;b:{c:{if(a>>>0>>0){if(d){d=a;break b}if(!(a&3)){d=a;break c}d=a;while(1){if(!c){break a}H[d|0]=K[b|0];b=b+1|0;c=c-1|0;d=d+1|0;if(d&3){continue}break}break c}d:{if(d){break d}if(e&3){while(1){if(!c){break a}c=c-1|0;d=c+a|0;H[d|0]=K[b+c|0];if(d&3){continue}break}}if(c>>>0<=3){break d}while(1){c=c-4|0;J[c+a>>2]=J[b+c>>2];if(c>>>0>3){continue}break}}if(!c){break a}while(1){c=c-1|0;H[c+a|0]=K[b+c|0];if(c){continue}break}break a}if(c>>>0<=3){break b}while(1){J[d>>2]=J[b>>2];b=b+4|0;d=d+4|0;c=c-4|0;if(c>>>0>3){continue}break}}if(!c){break a}while(1){H[d|0]=K[b|0];d=d+1|0;b=b+1|0;c=c-1|0;if(c){continue}break}}return a}function dg(a,b,c){var d=0,e=0,f=0,g=0;a:{b=P(b,3);if((b|0)==-1){break a}b:{e=J[a+12>>2];f=J[e+12>>2];d=b<<2;c:{if(J[f+d>>2]==-1){break c}a=J[a+152>>2];e=J[e>>2];if(J[a+(J[e+d>>2]<<2)>>2]!=-1){break b}d=b+1|0;b=(d>>>0)%3|0?d:b-2|0;if((b|0)==-1){break a}d=b<<2;if(J[d+f>>2]==-1){break c}if(J[a+(J[d+e>>2]<<2)>>2]!=-1){break b}d=b+1|0;b=(d>>>0)%3|0?d:b-2|0;if((b|0)==-1){break a}d=b<<2;if(J[d+f>>2]==-1){break c}if(J[a+(J[d+e>>2]<<2)>>2]!=-1){break b}g=1;a=b+1|0;b=(a>>>0)%3|0?a:b-2|0}J[c>>2]=b;return g}while(1){d:{a=b;e:{if((b>>>0)%3|0){b=a-1|0;break e}b=a+2|0;if((b|0)==-1){break d}}b=J[(b<<2)+f>>2];if((b|0)==-1){break d}b=b+((b>>>0)%3|0?-1:2)|0;if((b|0)!=-1){continue}}break}J[c>>2]=a+((a>>>0)%3|0?-1:2);return 0}J[c>>2]=-1;return 0}function Ne(a,b,c){a:{switch(b-9|0){case 0:b=J[c>>2];J[c>>2]=b+4;J[a>>2]=J[b>>2];return;case 6:b=J[c>>2];J[c>>2]=b+4;b=I[b>>1];J[a>>2]=b;J[a+4>>2]=b>>31;return;case 7:b=J[c>>2];J[c>>2]=b+4;J[a>>2]=L[b>>1];J[a+4>>2]=0;return;case 8:b=J[c>>2];J[c>>2]=b+4;b=H[b|0];J[a>>2]=b;J[a+4>>2]=b>>31;return;case 9:b=J[c>>2];J[c>>2]=b+4;J[a>>2]=K[b|0];J[a+4>>2]=0;return;case 16:b=J[c>>2]+7&-8;J[c>>2]=b+8;O[a>>3]=O[b>>3];return;case 17:Le(a,c);default:return;case 1:case 4:case 14:b=J[c>>2];J[c>>2]=b+4;b=J[b>>2];J[a>>2]=b;J[a+4>>2]=b>>31;return;case 2:case 5:case 11:case 15:b=J[c>>2];J[c>>2]=b+4;J[a>>2]=J[b>>2];J[a+4>>2]=0;return;case 3:case 10:case 12:case 13:break a}}b=J[c>>2]+7&-8;J[c>>2]=b+8;c=J[b+4>>2];J[a>>2]=J[b>>2];J[a+4>>2]=c}function Ve(a,b,c,d,e,f){var g=0;g=ea-80|0;ea=g;a:{if((f|0)>=16384){Ia(g+32|0,b,c,d,e,0,0,0,2147352576);d=J[g+40>>2];e=J[g+44>>2];b=J[g+32>>2];c=J[g+36>>2];if(f>>>0<32767){f=f-16383|0;break a}Ia(g+16|0,b,c,d,e,0,0,0,2147352576);f=((f|0)>=49149?49149:f)-32766|0;d=J[g+24>>2];e=J[g+28>>2];b=J[g+16>>2];c=J[g+20>>2];break a}if((f|0)>-16383){break a}Ia(g- -64|0,b,c,d,e,0,0,0,7471104);d=J[g+72>>2];e=J[g+76>>2];b=J[g+64>>2];c=J[g+68>>2];if(f>>>0>4294934644){f=f+16269|0;break a}Ia(g+48|0,b,c,d,e,0,0,0,7471104);f=((f|0)<=-48920?-48920:f)+32538|0;d=J[g+56>>2];e=J[g+60>>2];b=J[g+48>>2];c=J[g+52>>2]}Ia(g,b,c,d,e,0,0,0,f+16383<<16);b=J[g+12>>2];J[a+8>>2]=J[g+8>>2];J[a+12>>2]=b;b=J[g+4>>2];J[a>>2]=J[g>>2];J[a+4>>2]=b;ea=g+80|0}function xd(a,b,c,d){var e=0,f=0,g=0,h=0,i=0,j=0;a:{e=J[a+20>>2];b:{if(!b&(c|0)<=0|(c|0)<0|(!!J[a+16>>2]&(e|0)>=0|(e|0)>0)){break b}H[a+24|0]=d;b=b+7|0;c=b>>>0<7?c+1|0:c;e=b;b=c>>>3|0;c=(c&7)<<29|e>>>3;J[a+16>>2]=c;J[a+20>>2]=b;f=J[a+4>>2];e=J[a>>2];b=f-e|0;g=c;c=b+8|0;h=d?c:b;c=g+h|0;c:{if(b>>>0>>0){g=c-b|0;d=J[a+8>>2];if(g>>>0<=d-f>>>0){i=a,j=sa(f,0,g)+g|0,J[i+4>>2]=j;break c}if((c|0)<0){break a}d=d-e|0;f=d<<1;f=d>>>0>=1073741823?2147483647:c>>>0>>0?f:c;d=ra(f);sa(d+b|0,0,g);if((b|0)>0){ta(d,e,b)}J[a+8>>2]=d+f;J[a+4>>2]=c+d;J[a>>2]=d;if(!e){break c}qa(e);break c}if(b>>>0<=c>>>0){break c}J[a+4>>2]=c+e}c=J[a>>2];b=ra(8);J[b+4>>2]=0;J[b>>2]=c+h;c=J[a+12>>2];J[a+12>>2]=b;if(!c){break b}qa(c)}return}ua();B()}function Ga(a,b){var c=0,d=0,e=0,f=0;c=J[a>>2];a:{if(b){b=J[c+12>>2];d=J[c+8>>2]+1|0;b=d?b:b+1|0;J[c+8>>2]=d;J[c+12>>2]=b;b=J[a+28>>2];J[a+24>>2]=J[a+24>>2]|1<>2];d=J[c>>2]+1|0;b=d?b:b+1|0;J[c>>2]=d;J[c+4>>2]=b;b=J[a+28>>2]}b=b+1|0;J[a+28>>2]=b;b:{c:{if((b|0)==32){b=J[a+16>>2];d:{if((b|0)!=J[a+20>>2]){J[b>>2]=J[a+24>>2];J[a+16>>2]=b+4;break d}d=J[a+12>>2];c=b-d|0;f=c>>2;b=f+1|0;if(b>>>0>=1073741824){break c}e=c>>1;e=c>>>0>=2147483644?1073741823:b>>>0>>0?e:b;if(e){if(e>>>0>=1073741824){break b}b=ra(e<<2)}else{b=0}f=b+(f<<2)|0;J[f>>2]=J[a+24>>2];if((c|0)>0){ta(b,d,c)}J[a+20>>2]=b+(e<<2);J[a+16>>2]=f+4;J[a+12>>2]=b;if(!d){break d}qa(d)}J[a+24>>2]=0;J[a+28>>2]=0}return}ua();B()}ya();B()}function $c(a,b,c){var d=0,e=0,f=0;d=ea+-64|0;ea=d;f=J[a>>2];e=J[f-4>>2];f=J[f-8>>2];J[d+32>>2]=0;J[d+36>>2]=0;J[d+40>>2]=0;J[d+44>>2]=0;J[d+48>>2]=0;J[d+52>>2]=0;H[d+55|0]=0;H[d+56|0]=0;H[d+57|0]=0;H[d+58|0]=0;H[d+59|0]=0;H[d+60|0]=0;H[d+61|0]=0;H[d+62|0]=0;J[d+24>>2]=0;J[d+28>>2]=0;J[d+20>>2]=0;J[d+16>>2]=b;J[d+12>>2]=a;J[d+8>>2]=c;a=a+f|0;b=0;a:{if(qb(e,c,0)){J[d+56>>2]=1;ga[J[J[e>>2]+20>>2]](e,d+8|0,a,a,1,0);b=J[d+32>>2]==1?a:0;break a}ga[J[J[e>>2]+24>>2]](e,d+8|0,a,1,0);b:{switch(J[d+44>>2]){case 0:b=J[d+48>>2]==1?J[d+36>>2]==1?J[d+40>>2]==1?J[d+28>>2]:0:0:0;break a;case 1:break b;default:break a}}if(J[d+32>>2]!=1){if(J[d+48>>2]|J[d+36>>2]!=1|J[d+40>>2]!=1){break a}}b=J[d+24>>2]}ea=d- -64|0;return b}function sa(a,b,c){var d=0,e=0,f=0;a:{if(!c){break a}H[a|0]=b;e=a+c|0;H[e-1|0]=b;if(c>>>0<3){break a}H[a+2|0]=b;H[a+1|0]=b;H[e-3|0]=b;H[e-2|0]=b;if(c>>>0<7){break a}H[a+3|0]=b;H[e-4|0]=b;if(c>>>0<9){break a}e=0-a&3;f=e+a|0;d=P(b&255,16843009);J[f>>2]=d;b=c-e&-4;c=b+f|0;J[c-4>>2]=d;if(b>>>0<9){break a}J[f+8>>2]=d;J[f+4>>2]=d;J[c-8>>2]=d;J[c-12>>2]=d;if(b>>>0<25){break a}J[f+24>>2]=d;J[f+20>>2]=d;J[f+16>>2]=d;J[f+12>>2]=d;J[c-16>>2]=d;J[c-20>>2]=d;J[c-24>>2]=d;J[c-28>>2]=d;c=b;b=f&4|24;c=c-b|0;if(c>>>0<32){break a}d=Al(d,0,1,1);e=fa;b=b+f|0;while(1){J[b+24>>2]=d;J[b+28>>2]=e;J[b+16>>2]=d;J[b+20>>2]=e;J[b+8>>2]=d;J[b+12>>2]=e;J[b>>2]=d;J[b+4>>2]=e;b=b+32|0;c=c-32|0;if(c>>>0>31){continue}break}}return a}function ve(a,b,c,d,e){var f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0;a:{g=a+16|0;f=J[g>>2];b:{if(!f){break b}i=J[b>>2];b=g;while(1){h=(i|0)>J[f+16>>2];b=h?b:f;f=J[(h?f+4|0:f)>>2];if(f){continue}break}if((b|0)==(g|0)|(i|0)>2]){break b}f=J[b+24>>2];if(!f){break b}m=b+20|0;b=K[c+11|0];g=b<<24>>24<0;i=g?J[c>>2]:c;b=g?J[c+4>>2]:b;while(1){g=K[f+27|0];h=g<<24>>24<0;g=h?J[f+20>>2]:g;k=g>>>0>>0;c:{d:{e:{f:{g:{h:{j=k?g:b;if(j){h=h?J[f+16>>2]:f+16|0;l=Ea(i,h,j);if(l){break h}if(b>>>0>=g>>>0){break g}break c}if(b>>>0>=g>>>0){break f}break c}if((l|0)<0){break c}}g=Ea(h,i,j);if(g){break e}}if(k){break d}break a}if((g|0)<0){break d}break a}f=f+4|0}f=J[f>>2];if(f){continue}break}}te(a,c,d,e);return}te(m,c,d,e)}function kb(a,b,c,d){var e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0;f=a+16|0;e=J[f>>2];a:{if(!e){break a}g=J[b>>2];b=f;while(1){h=(g|0)>J[e+16>>2];b=h?b:e;e=J[(h?e+4|0:e)>>2];if(e){continue}break}if((b|0)==(f|0)|(g|0)>2]){break a}e=J[b+24>>2];if(!e){break a}g=b+20|0;b=K[c+11|0];f=b<<24>>24<0;h=f?J[c>>2]:c;b=f?J[c+4>>2]:b;while(1){f=K[e+27|0];i=f<<24>>24<0;f=i?J[e+20>>2]:f;k=f>>>0>>0;b:{c:{d:{e:{f:{g:{j=k?f:b;if(j){i=i?J[e+16>>2]:e+16|0;l=Ea(h,i,j);if(l){break g}if(b>>>0>=f>>>0){break f}break b}if(b>>>0>=f>>>0){break e}break b}if((l|0)<0){break b}}f=Ea(i,h,j);if(f){break d}}if(k){break c}return Cb(g,c,d)}if((f|0)<0){break c}return Cb(g,c,d)}e=e+4|0}e=J[e>>2];if(e){continue}break}}return Cb(a,c,d)}function hj(a){a=a|0;var b=0,c=0,d=0,e=0,f=0,g=0;b=J[a+4>>2];d=J[b>>2];a:{c=J[a+12>>2];c=J[c+56>>2]-J[c+52>>2]|0;e=c>>2;b:{if(e>>>0<=J[b+8>>2]-d>>2>>>0){break b}if((c|0)<0){break a}f=J[b+4>>2];c=ra(c);g=c+(e<<2)|0;e=f-d|0;f=e+c|0;if((e|0)>0){ta(c,d,e)}J[b+8>>2]=g;J[b+4>>2]=f;J[b>>2]=c;if(!d){break b}qa(d)}e=a+8|0;b=J[a+76>>2];c:{if(b){d=J[b>>2];if((d|0)==J[b+4>>2]){return 1}b=0;while(1){c=Qf(e,J[(b<<2)+d>>2]);if(!c){break c}f=J[a+76>>2];d=J[f>>2];b=b+1|0;if(b>>>0>2]-d>>2>>>0){continue}break}break c}c=1;a=J[J[a+12>>2]+64>>2];a=J[a+4>>2]-J[a>>2]|0;if(a>>>0<12){break c}a=(a>>2>>>0)/3|0;b=0;while(1){c=Qf(e,P(b,3));if(!c){break c}b=b+1|0;if((a|0)!=(b|0)){continue}break}}return c|0}ua();B()}function ue(a,b,c){var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0;e=a+16|0;d=J[e>>2];a:{if(!d){break a}f=J[b>>2];b=e;while(1){g=(f|0)>J[d+16>>2];b=g?b:d;d=J[(g?d+4|0:d)>>2];if(d){continue}break}if((b|0)==(e|0)|(f|0)>2]){break a}d=J[b+24>>2];if(!d){break a}f=b+20|0;b=K[c+11|0];e=b<<24>>24<0;g=e?J[c>>2]:c;b=e?J[c+4>>2]:b;while(1){e=K[d+27|0];h=e<<24>>24<0;e=h?J[d+20>>2]:e;j=e>>>0>>0;b:{c:{d:{e:{f:{g:{i=j?e:b;if(i){h=h?J[d+16>>2]:d+16|0;k=Ea(g,h,i);if(k){break g}if(b>>>0>=e>>>0){break f}break b}if(b>>>0>=e>>>0){break e}break b}if((k|0)<0){break b}}e=Ea(h,g,i);if(e){break d}}if(j){break c}return vd(f,c)}if((e|0)<0){break c}return vd(f,c)}d=d+4|0}d=J[d>>2];if(d){continue}break}}return vd(a,c)}function ld(a,b,c){var d=0,e=0,f=0,g=0;Da(J[c+8>>2],b);e=J[c>>2];g=c+4|0;if((e|0)!=(g|0)){while(1){if(!df(b,e+16|0)){return}d=J[e+32>>2]-J[e+28>>2]|0;Da(d,b);f=J[b+20>>2];if(!J[b+16>>2]&(f|0)<=0|(f|0)<0){f=J[e+28>>2];wa(b,J[b+4>>2],f,d+f|0)}f=J[e+4>>2];a:{if(f){while(1){d=f;f=J[d>>2];if(f){continue}break a}}while(1){d=J[e+8>>2];f=J[d>>2]!=(e|0);e=d;if(f){continue}break}}e=d;if((d|0)!=(g|0)){continue}break}}Da(J[c+20>>2],b);d=J[c+12>>2];c=c+16|0;if((d|0)==(c|0)){return}while(1){if(!df(b,d+16|0)){return}ld(a,b,J[d+28>>2]);f=d;e=J[d+4>>2];b:{if(e){while(1){d=e;e=J[d>>2];if(e){continue}break b}}while(1){d=J[f+8>>2];e=J[d>>2]!=(f|0);f=d;if(e){continue}break}}if((c|0)!=(d|0)){continue}break}}function mj(a){a=a|0;var b=0,c=0,d=0,e=0,f=0,g=0;b=J[a+4>>2];d=J[b>>2];a:{c=J[a+12>>2];c=J[c+28>>2]-J[c+24>>2]|0;e=c>>2;b:{if(e>>>0<=J[b+8>>2]-d>>2>>>0){break b}if((c|0)<0){break a}f=J[b+4>>2];c=ra(c);g=c+(e<<2)|0;e=f-d|0;f=e+c|0;if((e|0)>0){ta(c,d,e)}J[b+8>>2]=g;J[b+4>>2]=f;J[b>>2]=c;if(!d){break b}qa(d)}e=a+8|0;b=J[a+76>>2];c:{if(b){d=J[b>>2];if((d|0)==J[b+4>>2]){return 1}b=0;while(1){c=Rf(e,J[(b<<2)+d>>2]);if(!c){break c}f=J[a+76>>2];d=J[f>>2];b=b+1|0;if(b>>>0>2]-d>>2>>>0){continue}break}break c}c=1;a=J[a+12>>2];a=J[a+4>>2]-J[a>>2]|0;if(a>>>0<12){break c}a=(a>>2>>>0)/3|0;b=0;while(1){c=Rf(e,P(b,3));if(!c){break c}b=b+1|0;if((a|0)!=(b|0)){continue}break}}return c|0}ua();B()}function kc(a,b){var c=0,d=0,e=0,f=0,g=0,h=0;h=ea-16|0;ea=h;a:{b:{c=J[a+8>>2];c:{if((c|0)!=J[a+12>>2]){J[c>>2]=b;J[a+8>>2]=c+4;break c}e=J[a+4>>2];d=c-e|0;g=d>>2;c=g+1|0;if(c>>>0>=1073741824){break b}f=d>>1;f=d>>>0>=2147483644?1073741823:c>>>0>>0?f:c;if(f){if(f>>>0>=1073741824){break a}c=ra(f<<2)}else{c=0}g=c+(g<<2)|0;J[g>>2]=b;if((d|0)>0){ta(c,e,d)}J[a+12>>2]=c+(f<<2);J[a+8>>2]=g+4;J[a+4>>2]=c;if(!e){break c}qa(e)}c=J[a+16>>2];d=J[a+20>>2]-c>>2;d:{if((d|0)>(b|0)){break d}J[h+12>>2]=-1;e=b+1|0;if(e>>>0>d>>>0){La(a+16|0,e-d|0,h+12|0);c=J[a+16>>2];break d}if(d>>>0<=e>>>0){break d}J[a+20>>2]=(e<<2)+c}J[(b<<2)+c>>2]=(J[a+8>>2]-J[a+4>>2]>>2)-1;ea=h+16|0;return}ua();B()}ya();B()}function fl(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0,g=0,h=0,i=0;f=J[b+4>>2]-J[b>>2]>>2;g=J[a+8>>2];i=K[g+24|0];d=i;h=ea+-64|0;ea=h;e=Jc(h);d=P(d,J[3712]);Ed(e,J[J[a+8>>2]+56>>2],0,i,5,d,d>>31);e=cg(ra(96),e);Cd(e,f);d=J[a+32>>2];J[a+32>>2]=e;if(d){Oa(d)}a:{if(!c){break a}d=J[a+32>>2];H[d+84|0]=0;e=J[d+68>>2];f=J[d+72>>2]-e>>2;if(f>>>0>>0){La(d+68|0,c-f|0,2736);break a}if(c>>>0>=f>>>0){break a}J[d+72>>2]=e+(c<<2)}ea=h- -64|0;c=J[b>>2];d=J[b+4>>2];if((c|0)==(d|0)){return 1}a=J[a+32>>2];h=J[J[a>>2]>>2]+J[a+48>>2]|0;b=0;while(1){a=J[c>>2];if(!K[g+84|0]){a=J[J[g+68>>2]+(a<<2)>>2]}a=Zc(g,a,H[g+24|0],h+(b<<2)|0);if(a){b=b+i|0;c=c+4|0;if((d|0)!=(c|0)){continue}}break}return a|0}function ah(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0;d=ea-48|0;ea=d;J[d+40>>2]=J[a- -64>>2];c=J[b+20>>2];if(!J[b+16>>2]&(c|0)<=0|(c|0)<0){wa(b,J[b+4>>2],d+40|0,d+44|0)}c=d+8|0;J[c>>2]=0;J[c+4>>2]=0;J[c+24>>2]=0;J[c+28>>2]=0;J[c+16>>2]=0;J[c+20>>2]=0;J[c+8>>2]=0;J[c+12>>2]=0;Ca(c);if(J[d+40>>2]>0){f=1;while(1){g=f;f=J[J[a+60>>2]+(e>>>3&536870908)>>2]>>>e|0;Ga(c,(g^f^-1)&1);f=f&1;e=e+1|0;if((e|0)>2]){continue}break}}Ba(c,b);J[d+44>>2]=J[a+12>>2];e=J[b+20>>2];a:{if(!!J[b+16>>2]&(e|0)>=0|(e|0)>0){break a}f=d+48|0;wa(b,J[b+4>>2],d+44|0,f);e=J[b+20>>2];g=J[b+16>>2];J[d+44>>2]=J[a+24>>2];if(!!g&(e|0)>=0|(e|0)>0){break a}wa(b,J[b+4>>2],d+44|0,f)}Aa(c);ea=d+48|0;return 1}function lh(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0;d=ea-48|0;ea=d;J[d+40>>2]=J[a+80>>2];c=J[b+20>>2];if(!J[b+16>>2]&(c|0)<=0|(c|0)<0){wa(b,J[b+4>>2],d+40|0,d+44|0)}c=d+8|0;J[c>>2]=0;J[c+4>>2]=0;J[c+24>>2]=0;J[c+28>>2]=0;J[c+16>>2]=0;J[c+20>>2]=0;J[c+8>>2]=0;J[c+12>>2]=0;Ca(c);if(J[d+40>>2]>0){f=1;while(1){g=f;f=J[J[a+76>>2]+(e>>>3&536870908)>>2]>>>e|0;Ga(c,(g^f^-1)&1);f=f&1;e=e+1|0;if((e|0)>2]){continue}break}}Ba(c,b);J[d+44>>2]=J[a+12>>2];e=J[b+20>>2];a:{if(!!J[b+16>>2]&(e|0)>=0|(e|0)>0){break a}f=d+48|0;wa(b,J[b+4>>2],d+44|0,f);e=J[b+20>>2];g=J[b+16>>2];J[d+44>>2]=J[a+16>>2];if(!!g&(e|0)>=0|(e|0)>0){break a}wa(b,J[b+4>>2],d+44|0,f)}Aa(c);ea=d+48|0;return 1}function Fc(a,b){var c=0,d=0,e=0,f=0,g=0;a:{b:{c:{d=J[a>>2];g=J[a+4>>2]-d>>2;e=g+1|0;if(e>>>0<1073741824){d=J[a+8>>2]-d|0;f=d>>1;d=d>>>0>=2147483644?1073741823:e>>>0>>0?f:e;if(d){if(d>>>0>=1073741824){break c}c=ra(d<<2)}f=J[b>>2];J[b>>2]=0;e=(g<<2)+c|0;J[e>>2]=f;d=(d<<2)+c|0;g=e+4|0;b=J[a>>2];c=J[a+4>>2];if((b|0)==(c|0)){break b}while(1){c=c-4|0;f=J[c>>2];J[c>>2]=0;e=e-4|0;J[e>>2]=f;if((b|0)!=(c|0)){continue}break}J[a+8>>2]=d;c=J[a+4>>2];J[a+4>>2]=g;b=J[a>>2];J[a>>2]=e;if((b|0)==(c|0)){break a}while(1){c=c-4|0;a=J[c>>2];J[c>>2]=0;if(a){ga[J[J[a>>2]+4>>2]](a)}if((b|0)!=(c|0)){continue}break}break a}ua();B()}ya();B()}J[a+8>>2]=d;J[a+4>>2]=g;J[a>>2]=e}if(b){qa(b)}}function Qa(a,b,c){var d=0,e=0,f=0,g=0;f=ea-16|0;ea=f;J[a+4>>2]=0;a:{b:{if(!b){break b}d=J[a+8>>2];e=d<<5;c:{if(e>>>0>=b>>>0){J[a+4>>2]=b;break c}J[f+8>>2]=0;J[f>>2]=0;J[f+4>>2]=0;if((b|0)<0){break a}if(e>>>0<=1073741822){d=d<<6;e=b+31&-32;d=d>>>0>e>>>0?d:e}else{d=2147483647}Gb(f,d);d=J[a>>2];J[a>>2]=J[f>>2];J[f>>2]=d;e=J[a+4>>2];J[a+4>>2]=b;J[f+4>>2]=e;e=J[a+8>>2];J[a+8>>2]=J[f+8>>2];J[f+8>>2]=e;if(!d){break c}qa(d)}g=b&-32;d=b>>>5|0;e=d<<2;a=J[a>>2];if(K[c|0]){a=sa(a,255,e);if((b|0)==(g|0)){break b}a=a+(d<<2)|0;J[a>>2]=J[a>>2]|-1>>>32-(b&31);break b}a=sa(a,0,e);if((b|0)==(g|0)){break b}a=a+(d<<2)|0;J[a>>2]=J[a>>2]&(-1>>>32-(b&31)^-1)}ea=f+16|0;return}ua();B()}function Fk(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0;J[b>>2]=1;f=b+8|0;c=J[b+8>>2];d=J[b+12>>2]-c|0;if(d>>>0<=4294967291){Dc(f,d+4|0);c=J[f>>2]}c=c+d|0;d=J[a+4>>2];H[c|0]=d;H[c+1|0]=d>>>8;H[c+2|0]=d>>>16;H[c+3|0]=d>>>24;c=J[a+8>>2];if((c|0)!=J[a+12>>2]){d=0;while(1){g=(d<<2)+c|0;c=J[b+8>>2];e=J[b+12>>2]-c|0;if(e>>>0<=4294967291){Dc(f,e+4|0);c=J[f>>2]}c=c+e|0;e=J[g>>2];H[c|0]=e;H[c+1|0]=e>>>8;H[c+2|0]=e>>>16;H[c+3|0]=e>>>24;d=d+1|0;c=J[a+8>>2];if(d>>>0>2]-c>>2>>>0){continue}break}}c=J[b+12>>2];b=J[b+8>>2];c=c-b|0;if(c>>>0<=4294967291){Dc(f,c+4|0);b=J[f>>2]}b=b+c|0;a=J[a+20>>2];H[b|0]=a;H[b+1|0]=a>>>8;H[b+2|0]=a>>>16;H[b+3|0]=a>>>24}function Uc(a,b,c){var d=0,e=0,f=0,g=0,h=0,i=0;f=c-b|0;g=f>>2;d=J[a+8>>2];e=J[a>>2];if(g>>>0<=d-e>>2>>>0){f=J[a+4>>2]-e|0;d=f+b|0;h=f>>2;f=h>>>0>>0?d:c;i=f-b|0;if((b|0)!=(f|0)){xa(e,b,i)}if(g>>>0>h>>>0){b=J[a+4>>2];if((c|0)!=(f|0)){while(1){J[b>>2]=J[d>>2];b=b+4|0;d=d+4|0;if((d|0)!=(c|0)){continue}break}}J[a+4>>2]=b;return}J[a+4>>2]=e+i;return}if(e){J[a+4>>2]=e;qa(e);J[a+8>>2]=0;J[a>>2]=0;J[a+4>>2]=0;d=0}a:{if((f|0)<0){break a}e=d>>1;d=d>>>0>=2147483644?1073741823:e>>>0>g>>>0?e:g;if(d>>>0>=1073741824){break a}e=d<<2;d=ra(e);J[a>>2]=d;J[a+8>>2]=d+e;if((b|0)!=(c|0)){c=b;b=(f-4&-4)+4|0;d=ta(d,c,b)+b|0}J[a+4>>2]=d;return}ua();B()}function Rg(a,b,c){var d=0,e=0,f=0;d=ea-16|0;ea=d;J[d+12>>2]=b;b=ra(32);J[d>>2]=b;J[d+4>>2]=17;J[d+8>>2]=-2147483616;H[b+16|0]=K[1261];e=K[1257]|K[1258]<<8|(K[1259]<<16|K[1260]<<24);f=K[1253]|K[1254]<<8|(K[1255]<<16|K[1256]<<24);H[b+8|0]=f;H[b+9|0]=f>>>8;H[b+10|0]=f>>>16;H[b+11|0]=f>>>24;H[b+12|0]=e;H[b+13|0]=e>>>8;H[b+14|0]=e>>>16;H[b+15|0]=e>>>24;e=K[1249]|K[1250]<<8|(K[1251]<<16|K[1252]<<24);f=K[1245]|K[1246]<<8|(K[1247]<<16|K[1248]<<24);H[b|0]=f;H[b+1|0]=f>>>8;H[b+2|0]=f>>>16;H[b+3|0]=f>>>24;H[b+4|0]=e;H[b+5|0]=e>>>8;H[b+6|0]=e>>>16;H[b+7|0]=e>>>24;H[b+17|0]=0;Qg(a+4|0,d+12|0,d,c);if(H[d+11|0]<0){qa(J[d>>2])}ea=d+16|0}function Wa(a,b,c,d){var e=0,f=0,g=0,h=0,i=0,j=0,k=0;a:{b:{if((a|0)==(b|0)){break b}J[c>>2]=J[a>>2];e=a+4|0;if((e|0)==(b|0)){break b}a=J[d>>2];g=J[a>>2];i=J[a+4>>2]-g>>3;a=c;while(1){d=J[e>>2];if(d>>>0>=i>>>0){break a}f=J[a>>2];if(f>>>0>=i>>>0){break a}j=a+4|0;c:{if(M[(d<<3)+g>>2]>2]){J[a+4>>2]=f;h=c;d:{if((a|0)==(c|0)){break d}while(1){k=J[e>>2];if(k>>>0>=i>>>0){break a}f=a-4|0;d=J[f>>2];if(d>>>0>=i>>>0){break a}h=a;if(M[(k<<3)+g>>2]>=M[(d<<3)+g>>2]){break d}J[a>>2]=d;a=f;if((c|0)!=(a|0)){continue}break}h=c}J[h>>2]=J[e>>2];break c}J[j>>2]=d}a=j;e=e+4|0;if((e|0)!=(b|0)){continue}break}}return}va();B()}function Sb(a,b,c){var d=0,e=0,f=0,g=0,h=0;f=c-b|0;g=f>>2;d=J[a+8>>2];e=J[a>>2];if(g>>>0<=d-e>>2>>>0){d=J[a+4>>2];f=d-e|0;h=f>>2;f=g>>>0>h>>>0?b+f|0:c;if((f|0)!=(b|0)){while(1){J[e>>2]=J[b>>2];e=e+4|0;b=b+4|0;if((f|0)!=(b|0)){continue}break}}if(g>>>0>h>>>0){b=c-f|0;if((b|0)>0){d=ta(d,f,b)+b|0}J[a+4>>2]=d;return}J[a+4>>2]=e;return}if(e){J[a+4>>2]=e;qa(e);J[a+8>>2]=0;J[a>>2]=0;J[a+4>>2]=0;d=0}a:{if((f|0)<0){break a}e=d>>1;d=d>>>0>=2147483644?1073741823:e>>>0>g>>>0?e:g;if(d>>>0>=1073741824){break a}e=d<<2;d=ra(e);J[a>>2]=d;J[a+4>>2]=d;J[a+8>>2]=d+e;if((b|0)!=(c|0)){d=ta(d,b,f)+f|0}J[a+4>>2]=d;return}ua();B()}function hk(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,l=0,m=0;f=ea-32|0;ea=f;d=d-e|0;if((d|0)>0){i=a+8|0;k=0-e<<2;while(1){j=d<<2;g=j+b|0;h=g+k|0;l=J[h>>2];h=J[h+4>>2];m=J[g+4>>2];J[f+16>>2]=J[g>>2];J[f+20>>2]=m;J[f+8>>2]=l;J[f+12>>2]=h;_a(f+24|0,i,f+16|0,f+8|0);g=c+j|0;J[g>>2]=J[f+24>>2];J[g+4>>2]=J[f+28>>2];d=d-e|0;if((d|0)>0){continue}break}}d=e>>>0>1073741823?-1:e<<2;d=sa(ra(d),0,d);e=J[d>>2];g=J[d+4>>2];i=J[b+4>>2];J[f+16>>2]=J[b>>2];J[f+20>>2]=i;J[f+8>>2]=e;J[f+12>>2]=g;_a(f+24|0,a+8|0,f+16|0,f+8|0);J[c>>2]=J[f+24>>2];J[c+4>>2]=J[f+28>>2];qa(d);ea=f+32|0;return 1}function xk(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0;g=ea-32|0;ea=g;J[a+48>>2]=f;i=1;a:{d=J[a+40>>2];d=J[d+4>>2]-J[d>>2]|0;b:{if((d|0)<=0){break b}l=a+44|0;m=a+8|0;f=d>>>2|0;while(1){d=J[a+40>>2];i=J[d>>2];h=J[d+4>>2]-i>>2;d=f-1|0;if(h>>>0<=d>>>0){break a}i=kh(l,J[i+(d<<2)>>2],b,d);if(!i){break b}h=J[a+52>>2];n=J[a+56>>2];j=P(d,e)<<2;k=j+b|0;o=J[k+4>>2];J[g+16>>2]=J[k>>2];J[g+20>>2]=o;J[g+8>>2]=h;J[g+12>>2]=n;_a(g+24|0,m,g+16|0,g+8|0);h=c+j|0;J[h>>2]=J[g+24>>2];J[h+4>>2]=J[g+28>>2];h=f>>>0>1;f=d;if(h){continue}break}}ea=g+32|0;return i|0}va();B()}function lk(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0;g=ea-32|0;ea=g;J[a+48>>2]=f;i=1;a:{d=J[a+40>>2];d=J[d+4>>2]-J[d>>2]|0;b:{if((d|0)<=0){break b}l=a+44|0;m=a+8|0;f=d>>>2|0;while(1){d=J[a+40>>2];i=J[d>>2];h=J[d+4>>2]-i>>2;d=f-1|0;if(h>>>0<=d>>>0){break a}i=fh(l,J[i+(d<<2)>>2],b,d);if(!i){break b}h=J[a+52>>2];n=J[a+56>>2];j=P(d,e)<<2;k=j+b|0;o=J[k+4>>2];J[g+16>>2]=J[k>>2];J[g+20>>2]=o;J[g+8>>2]=h;J[g+12>>2]=n;_a(g+24|0,m,g+16|0,g+8|0);h=c+j|0;J[h>>2]=J[g+24>>2];J[h+4>>2]=J[g+28>>2];h=f>>>0>1;f=d;if(h){continue}break}}ea=g+32|0;return i|0}va();B()}function ci(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0,g=0;Ze(a,b,c);e=J[a+96>>2];a=J[a+100>>2];a:{if((e|0)==(a|0)){break a}d=(a-e|0)/12|0;f=d>>>0<=1?1:d;g=f&1;a=J[b>>2];c=0;if(d>>>0>=2){f=f&-2;d=0;while(1){b=P(c,12)+e|0;J[b>>2]=J[a+(J[b>>2]<<2)>>2];J[b+4>>2]=J[a+(J[b+4>>2]<<2)>>2];J[b+8>>2]=J[a+(J[b+8>>2]<<2)>>2];b=P(c|1,12)+e|0;J[b>>2]=J[a+(J[b>>2]<<2)>>2];J[b+4>>2]=J[a+(J[b+4>>2]<<2)>>2];J[b+8>>2]=J[a+(J[b+8>>2]<<2)>>2];c=c+2|0;d=d+2|0;if((f|0)!=(d|0)){continue}break}}if(!g){break a}b=P(c,12)+e|0;J[b>>2]=J[a+(J[b>>2]<<2)>>2];J[b+4>>2]=J[a+(J[b+4>>2]<<2)>>2];J[b+8>>2]=J[a+(J[b+8>>2]<<2)>>2]}}function Og(a,b){var c=0,d=0,e=0,f=0;f=ea-16|0;ea=f;c=ra(16);J[f>>2]=c;J[f+4>>2]=15;J[f+8>>2]=-2147483632;d=K[1587]|K[1588]<<8|(K[1589]<<16|K[1590]<<24);e=K[1583]|K[1584]<<8|(K[1585]<<16|K[1586]<<24);H[c+7|0]=e;H[c+8|0]=e>>>8;H[c+9|0]=e>>>16;H[c+10|0]=e>>>24;H[c+11|0]=d;H[c+12|0]=d>>>8;H[c+13|0]=d>>>16;H[c+14|0]=d>>>24;d=K[1580]|K[1581]<<8|(K[1582]<<16|K[1583]<<24);e=K[1576]|K[1577]<<8|(K[1578]<<16|K[1579]<<24);H[c|0]=e;H[c+1|0]=e>>>8;H[c+2|0]=e>>>16;H[c+3|0]=e>>>24;H[c+4|0]=d;H[c+5|0]=d>>>8;H[c+6|0]=d>>>16;H[c+7|0]=d>>>24;H[c+15|0]=0;wb(a+4|0,f,b);if(H[f+11|0]<0){qa(J[f>>2])}ea=f+16|0}function Bi(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0;a=ea-16|0;ea=a;a:{if(!b){break a}J[a+8>>2]=0;J[a>>2]=0;J[a+4>>2]=0;h=b+96|0;g=J[b+96>>2];e=(J[b+100>>2]-g|0)/12|0;b:{if(e>>>0>>0){lf(h,c-e|0,a);break b}if(c>>>0>>0){J[b+100>>2]=g+P(c,12)}if(!c){break a}}g=J[h>>2];e=0;while(1){i=P(e,12);f=i+d|0;j=J[f>>2];k=J[f+8>>2];l=J[f+4>>2];f=(J[b+100>>2]-g|0)/12|0;c:{if(f>>>0>e>>>0){e=e+1|0;break c}J[a+8>>2]=0;J[a>>2]=0;J[a+4>>2]=0;e=e+1|0;lf(h,e-f|0,a);g=J[h>>2]}f=g+i|0;J[f+8>>2]=k;J[f+4>>2]=l;J[f>>2]=j;if((c|0)!=(e|0)){continue}break}}ea=a+16|0;return(b|0)!=0|0}function Jb(a,b,c,d,e,f,g,h){var i=0,j=0,k=0,l=0;i=1;j=d&2147483647;l=j;k=(j|0)==2147418112;a:{if(k&!c?a|b:k&(c|0)!=0|j>>>0>2147418112){break a}j=h&2147483647;k=(j|0)==2147418112;if(k&!g?e|f:k&(g|0)!=0|j>>>0>2147418112){break a}if(!(a|e|(c|g)|(b|f|(j|l)))){return 0}i=d&h;if((i|0)>0|(i|0)>=0){i=-1;if((c|0)==(g|0)&(d|0)==(h|0)?(b|0)==(f|0)&a>>>0>>0|b>>>0>>0:c>>>0>>0&(d|0)<=(h|0)|(d|0)<(h|0)){break a}return(a^e|c^g|(b^f|d^h))!=0}i=-1;if((c|0)==(g|0)&(d|0)==(h|0)?(b|0)==(f|0)&a>>>0>e>>>0|b>>>0>f>>>0:c>>>0>g>>>0&(d|0)>=(h|0)|(d|0)>(h|0)){break a}i=(a^e|c^g|(b^f|d^h))!=0}return i}function ed(a,b,c,d,e,f,g,h){var i=0,j=0,k=0,l=0;j=ea-16|0;ea=j;i=-17;if((b^-1)-17>>>0>=c>>>0){if(K[a+11|0]>>>7|0){k=J[a>>2]}else{k=a}if(b>>>0<2147483623){J[j+8>>2]=b<<1;J[j+12>>2]=b+c;c=ea-16|0;ea=c;ea=c+16|0;c=j+8|0;i=j+12|0;c=J[(M[i>>2]>2]?c:i)>>2];if(c>>>0>=11){i=c+16&-16;c=i-1|0;c=(c|0)==11?i:c}else{c=10}i=c+1|0}c=ra(i);if(e){Bb(c,k,e)}if(g){Bb(c+e|0,h,g)}l=e+f|0;h=d-l|0;if((d|0)!=(l|0)){Bb((c+e|0)+g|0,(e+k|0)+f|0,h)}if((b|0)!=10){qa(k)}J[a>>2]=c;J[a+8>>2]=i|-2147483648;b=a;a=h+(e+g|0)|0;J[b+4>>2]=a;H[j+7|0]=0;H[a+c|0]=K[j+7|0];ea=j+16|0;return}hb();B()}function cg(a,b){var c=0;c=J[b+4>>2];J[a>>2]=J[b>>2];J[a+4>>2]=c;c=J[b+60>>2];J[a+56>>2]=J[b+56>>2];J[a+60>>2]=c;c=J[b+52>>2];J[a+48>>2]=J[b+48>>2];J[a+52>>2]=c;c=J[b+44>>2];J[a+40>>2]=J[b+40>>2];J[a+44>>2]=c;c=J[b+36>>2];J[a+32>>2]=J[b+32>>2];J[a+36>>2]=c;c=J[b+28>>2];J[a+24>>2]=J[b+24>>2];J[a+28>>2]=c;c=J[b+20>>2];J[a+16>>2]=J[b+16>>2];J[a+20>>2]=c;c=J[b+12>>2];J[a+8>>2]=J[b+8>>2];J[a+12>>2]=c;J[a+88>>2]=0;J[a+64>>2]=0;J[a+68>>2]=0;J[a+72>>2]=0;J[a+76>>2]=0;H[a+77|0]=0;H[a+78|0]=0;H[a+79|0]=0;H[a+80|0]=0;H[a+81|0]=0;H[a+82|0]=0;H[a+83|0]=0;H[a+84|0]=0;return a}function cb(a,b,c){var d=0,e=0,f=0,g=0,h=0;g=c-b|0;f=g>>2;e=J[a+8>>2];d=J[a>>2];if(f>>>0<=e-d>>2>>>0){e=J[a+4>>2]-d|0;g=e>>2;e=g>>>0>>0?b+e|0:c;h=e-b|0;if((b|0)!=(e|0)){xa(d,b,h)}if(g>>>0>>0){b=J[a+4>>2];c=c-e|0;if((c|0)>0){b=ta(b,e,c)+c|0}J[a+4>>2]=b;return}J[a+4>>2]=d+h;return}if(d){J[a+4>>2]=d;qa(d);J[a+8>>2]=0;J[a>>2]=0;J[a+4>>2]=0;e=0}a:{if((g|0)<0){break a}d=e>>1;d=e>>>0>=2147483644?1073741823:d>>>0>f>>>0?d:f;if(d>>>0>=1073741824){break a}f=d<<2;d=ra(f);J[a>>2]=d;J[a+4>>2]=d;J[a+8>>2]=d+f;if((b|0)!=(c|0)){d=ta(d,b,g)+g|0}J[a+4>>2]=d;return}ua();B()}function pb(a,b){var c=0,d=0,e=0,f=0,g=0,h=0,i=0;f=a+4|0;a=J[a+4>>2];a:{b:{if(!a){break b}d=K[b+11|0];c=d<<24>>24<0;g=c?J[b>>2]:b;d=c?J[b+4>>2]:d;b=f;while(1){e=K[a+27|0];c=e<<24>>24<0;e=c?J[a+20>>2]:e;h=e>>>0>d>>>0;i=h?d:e;c:{if(i){c=Ea(c?J[a+16>>2]:a+16|0,g,i);if(c){break c}}c=d>>>0>e>>>0?-1:h}c=(c|0)<0;b=c?b:a;a=J[(c?a+4|0:a)>>2];if(a){continue}break}if((b|0)==(f|0)){break b}c=K[b+27|0];a=c<<24>>24<0;d:{c=a?J[b+20>>2]:c;e=c>>>0>>0?c:d;if(e){a=Ea(g,a?J[b+16>>2]:b+16|0,e);if(a){break d}}if(c>>>0>d>>>0){break b}break a}if((a|0)>=0){break a}}b=f}return b}function pe(a){var b=0,c=0,d=0,e=0;c=J[a+152>>2];if(c){d=c;b=J[a+156>>2];if((c|0)!=(b|0)){while(1){d=b-12|0;e=J[d>>2];if(e){J[b-8>>2]=e;qa(e)}b=d;if((c|0)!=(b|0)){continue}break}d=J[a+152>>2]}J[a+156>>2]=c;qa(d)}c=J[a+140>>2];if(c){d=c;b=J[a+144>>2];if((c|0)!=(b|0)){while(1){d=b-12|0;e=J[d>>2];if(e){J[b-8>>2]=e;qa(e)}b=d;if((c|0)!=(b|0)){continue}break}d=J[a+140>>2]}J[a+144>>2]=c;qa(d)}b=J[a+128>>2];if(b){J[a+132>>2]=b;qa(b)}b=J[a+116>>2];if(b){J[a+120>>2]=b;qa(b)}b=J[a+104>>2];if(b){J[a+108>>2]=b;qa(b)}ub(a+84|0);ub(a- -64|0);ub(a+44|0);Aa(a+12|0)}function uc(a,b){var c=0,d=0,e=0,f=0;c=J[a+16>>2];if(b){J[a+12>>2]=J[a+12>>2]|-2147483648>>>c}b=c+1|0;J[a+16>>2]=b;a:{b:{if((b|0)==32){b=J[a+4>>2];c:{if((b|0)!=J[a+8>>2]){J[b>>2]=J[a+12>>2];J[a+4>>2]=b+4;break c}f=J[a>>2];c=b-f|0;e=c>>2;b=e+1|0;if(b>>>0>=1073741824){break b}d=c>>1;d=c>>>0>=2147483644?1073741823:b>>>0>>0?d:b;if(d){if(d>>>0>=1073741824){break a}b=ra(d<<2)}else{b=0}e=b+(e<<2)|0;J[e>>2]=J[a+12>>2];if((c|0)>0){ta(b,f,c)}J[a+8>>2]=b+(d<<2);J[a+4>>2]=e+4;J[a>>2]=b;if(!f){break c}qa(f)}J[a+12>>2]=0;J[a+16>>2]=0}return}ua();B()}ya();B()}function Ph(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;if(qb(a,J[b+8>>2],e)){if(!(J[b+28>>2]==1|J[b+4>>2]!=(c|0))){J[b+28>>2]=d}return}a:{if(qb(a,J[b>>2],e)){if(!(J[b+16>>2]!=(c|0)&J[b+20>>2]!=(c|0))){if((d|0)!=1){break a}J[b+32>>2]=1;return}J[b+32>>2]=d;b:{if(J[b+44>>2]==4){break b}I[b+52>>1]=0;a=J[a+8>>2];ga[J[J[a>>2]+20>>2]](a,b,c,c,1,e);if(K[b+53|0]){J[b+44>>2]=3;if(!K[b+52|0]){break b}break a}J[b+44>>2]=4}J[b+20>>2]=c;J[b+40>>2]=J[b+40>>2]+1;if(J[b+36>>2]!=1|J[b+24>>2]!=2){break a}H[b+54|0]=1;return}a=J[a+8>>2];ga[J[J[a>>2]+24>>2]](a,b,c,d,e)}}function me(a){var b=0,c=0,d=0,e=0;c=J[a+140>>2];if(c){d=c;b=J[a+144>>2];if((c|0)!=(b|0)){while(1){d=b-12|0;e=J[d>>2];if(e){J[b-8>>2]=e;qa(e)}b=d;if((c|0)!=(b|0)){continue}break}d=J[a+140>>2]}J[a+144>>2]=c;qa(d)}c=J[a+128>>2];if(c){d=c;b=J[a+132>>2];if((c|0)!=(b|0)){while(1){d=b-12|0;e=J[d>>2];if(e){J[b-8>>2]=e;qa(e)}b=d;if((c|0)!=(b|0)){continue}break}d=J[a+128>>2]}J[a+132>>2]=c;qa(d)}b=J[a+116>>2];if(b){J[a+120>>2]=b;qa(b)}b=J[a+104>>2];if(b){J[a+108>>2]=b;qa(b)}b=J[a+92>>2];if(b){J[a+96>>2]=b;qa(b)}ub(a+72|0);ub(a+52|0);ub(a+32|0);ub(a+12|0)}function Lb(a,b,c){var d=0,e=0,f=0,g=0,h=0,i=0;J[a+8>>2]=0;J[a>>2]=0;J[a+4>>2]=0;a:{b:{if(b){if(b>>>0>=357913942){break b}d=P(b,12);b=ra(d);J[a>>2]=b;J[a+4>>2]=b;e=b+d|0;J[a+8>>2]=e;f=J[c>>2];c=J[c+4>>2];c:{if((f|0)==(c|0)){c=b;b=d-12|0;sa(c,0,(b-((b>>>0)%12|0)|0)+12|0);break c}c=c-f|0;if((c|0)<0){break a}g=c&-4;while(1){J[b+8>>2]=0;J[b>>2]=0;J[b+4>>2]=0;d=ra(c);J[b>>2]=d;J[b+4>>2]=d;J[b+8>>2]=d+g;h=b,i=ta(d,f,c)+g|0,J[h+4>>2]=i;b=b+12|0;if((e|0)!=(b|0)){continue}break}}J[a+4>>2]=e}return}ua();B()}J[b+8>>2]=0;J[b>>2]=0;J[b+4>>2]=0;ua();B()}function Kg(a,b,c,d,e){var f=0,g=0,h=0;f=ea-16|0;ea=f;g=Jg(b,c,f+12|0,f+8|0,d);d=J[g>>2];if(d){b=0}else{d=ra(40);c=d+16|0;a:{if(H[e+11|0]>=0){h=J[e+4>>2];J[c>>2]=J[e>>2];J[c+4>>2]=h;J[c+8>>2]=J[e+8>>2];break a}Ja(c,J[e>>2],J[e+4>>2])}c=d+28|0;b:{if(H[e+23|0]>=0){e=e+12|0;h=J[e+4>>2];J[c>>2]=J[e>>2];J[c+4>>2]=h;J[c+8>>2]=J[e+8>>2];break b}Ja(c,J[e+12>>2],J[e+16>>2])}J[d+8>>2]=J[f+12>>2];J[d>>2]=0;J[d+4>>2]=0;J[g>>2]=d;e=d;c=J[J[b>>2]>>2];if(c){J[b>>2]=c;e=J[g>>2]}tb(J[b+4>>2],e);J[b+8>>2]=J[b+8>>2]+1;b=1}H[a+4|0]=b;J[a>>2]=d;ea=f+16|0}function eg(a){var b=0,c=0,d=0,e=0;Ca(a);c=J[a+84>>2];a:{if((c|0)<=0){break a}b=c<<5;d=ra(c>>>0>134217727?-1:b|4);J[d>>2]=c;d=d+4|0;c=d+b|0;b=d;while(1){J[b>>2]=0;J[b+4>>2]=0;J[b+24>>2]=0;J[b+28>>2]=0;J[b+16>>2]=0;J[b+20>>2]=0;J[b+8>>2]=0;J[b+12>>2]=0;b=b+32|0;if((c|0)!=(b|0)){continue}break}e=J[a+80>>2];J[a+80>>2]=d;if(e){c=e-4|0;d=J[c>>2];if(d){b=(d<<5)+e|0;while(1){b=Aa(b-32|0);if((e|0)!=(b|0)){continue}break}}qa(c)}if(J[a+84>>2]<=0){break a}b=0;while(1){Ca(J[a+80>>2]+(b<<5)|0);b=b+1|0;if((b|0)>2]){continue}break}}}function rb(a,b){var c=0,d=0,e=0,f=0,g=0,h=0,i=0;f=ea-16|0;ea=f;A(+b);g=v(1)|0;d=v(0)|0;c=g&2147483647;e=c+-1048576|0;a:{if((e|0)==2145386495|e>>>0<2145386495){h=d<<28;e=c>>>4|0;c=(c&15)<<28|d>>>4;d=e+1006632960|0;break a}if((c|0)==2146435072|c>>>0>2146435072){h=d<<28;c=(g&15)<<28|d>>>4;d=g>>>4|2147418112;break a}if(!(c|d)){c=0;d=0;break a}e=c;c=c?S(c):S(d)+32|0;Sa(f,d,e,0,0,c+49|0);i=J[f>>2];h=J[f+4>>2];e=15372-c<<16;c=J[f+8>>2];d=e|J[f+12>>2]^65536}J[a>>2]=i;J[a+4>>2]=h;J[a+8>>2]=c;J[a+12>>2]=g&-2147483648|d;ea=f+16|0}function ti(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,f=0,g=0;f=ea-48|0;ea=f;a:{if(!b){a=0;break a}e=f+16|0;J[e>>2]=0;J[e+4>>2]=0;H[e+24|0]=0;J[e+16>>2]=0;J[e+20>>2]=0;J[e+8>>2]=0;J[e+12>>2]=0;g=0;b:{if((Ob(b,0)|0)==-1){break b}if(c){g=0;if(!(ga[J[J[b>>2]+16>>2]](b)|0)){break b}ga[J[J[b>>2]+20>>2]](b)}Wg(f,a,b,e);a=J[f>>2];if(H[f+15|0]<0){qa(J[f+4>>2])}g=0;if(a){break b}nd(d,J[e>>2],J[e+4>>2]);g=J[e+4>>2]-J[e>>2]|0}a=g;b=J[e+12>>2];J[e+12>>2]=0;if(b){qa(b)}b=J[e>>2];if(!b){break a}J[e+4>>2]=b;qa(b)}ea=f+48|0;return a|0}function je(a){a=a|0;var b=0,c=0,d=0;J[a>>2]=2284;d=J[a+60>>2];if(d){b=d;c=J[a- -64>>2];if((b|0)!=(c|0)){while(1){c=c-4|0;b=J[c>>2];J[c>>2]=0;if(b){Oa(b)}if((c|0)!=(d|0)){continue}break}b=J[a+60>>2]}J[a+64>>2]=d;qa(b)}b=J[a+48>>2];if(b){J[a+52>>2]=b;qa(b)}d=J[a+36>>2];if(d){b=d;c=J[a+40>>2];if((b|0)!=(c|0)){while(1){c=c-24|0;ga[J[J[c>>2]>>2]](c)|0;if((c|0)!=(d|0)){continue}break}b=J[a+36>>2]}J[a+40>>2]=d;qa(b)}J[a>>2]=2188;b=J[a+16>>2];if(b){J[a+20>>2]=b;qa(b)}b=J[a+4>>2];if(b){J[a+8>>2]=b;qa(b)}return a|0}function ui(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0;e=ea-48|0;ea=e;a:{if(!b){a=0;break a}d=e+16|0;J[d>>2]=0;J[d+4>>2]=0;H[d+24|0]=0;J[d+16>>2]=0;J[d+20>>2]=0;J[d+8>>2]=0;J[d+12>>2]=0;f=0;b:{if((Ob(b,0)|0)==-1){break b}f=0;if(!(ga[J[J[b>>2]+16>>2]](b)|0)){break b}ga[J[J[b>>2]+20>>2]](b);Tg(e,a,b,d);a=J[e>>2];if(H[e+15|0]<0){qa(J[e+4>>2])}f=0;if(a){break b}nd(c,J[d>>2],J[d+4>>2]);f=J[d+4>>2]-J[d>>2]|0}a=f;b=J[d+12>>2];J[d+12>>2]=0;if(b){qa(b)}b=J[d>>2];if(!b){break a}J[d+4>>2]=b;qa(b)}ea=e+48|0;return a|0}function Dc(a,b){var c=0,d=0,e=0,f=0,g=0,h=0,i=0;a:{c=J[a+4>>2];d=J[a>>2];f=c-d|0;b:{if(f>>>0>>0){g=b-f|0;e=J[a+8>>2];if(g>>>0<=e-c>>>0){h=a,i=sa(c,0,g)+g|0,J[h+4>>2]=i;break b}if((b|0)<0){break a}c=e-d|0;e=c<<1;e=c>>>0>=1073741823?2147483647:b>>>0>>0?e:b;c=ra(e);sa(c+f|0,0,g);if((f|0)>0){ta(c,d,f)}J[a+8>>2]=c+e;J[a+4>>2]=b+c;J[a>>2]=c;if(!d){break b}qa(d);break b}if(b>>>0>=f>>>0){break b}J[a+4>>2]=b+d}b=J[a+28>>2];c=b;d=b+1|0;b=J[a+24>>2]+1|0;d=b?c:d;J[a+24>>2]=b;J[a+28>>2]=d;return}ua();B()}function Ib(a,b,c,d,e,f){var g=0,h=0,i=0,j=0;a:{if(f&64){c=f+-64|0;b=c&31;if((c&63)>>>0>=32){c=0;b=e>>>b|0}else{c=e>>>b|0;b=((1<>>b}d=0;e=0;break a}if(!f){break a}i=d;h=64-f|0;g=h&31;if((h&63)>>>0>=32){h=i<>>32-g|e<>>0>=32){g=0;b=c>>>b|0}else{g=c>>>b|0;b=((1<>>b}b=j|b;c=g|h;g=d;d=f&31;if((f&63)>>>0>=32){h=0;d=e>>>d|0}else{h=e>>>d|0;d=((1<>>d}e=h}J[a>>2]=b;J[a+4>>2]=c;J[a+8>>2]=d;J[a+12>>2]=e}function df(a,b){var c=0,d=0,e=0,f=0,g=0,h=0;c=ea-16|0;ea=c;e=K[b+11|0];e=e<<24>>24<0?J[b+4>>2]:e;a:{if(e>>>0>255){break a}if(!e){H[c+15|0]=0;b=J[a+20>>2];if(!!J[a+16>>2]&(b|0)>=0|(b|0)>0){break a}wa(a,J[a+4>>2],c+15|0,c+16|0);break a}H[c+14|0]=e;d=J[a+20>>2];if(!!J[a+16>>2]&(d|0)>=0|(d|0)>0){break a}wa(a,J[a+4>>2],c+14|0,c+15|0);d=J[a+20>>2];if(!!J[a+16>>2]&(d|0)>=0|(d|0)>0){break a}g=a;h=J[a+4>>2];a=K[b+11|0];d=a<<24>>24<0;f=d?J[b>>2]:b;wa(g,h,f,(d?J[b+4>>2]:a)+f|0)}ea=c+16|0;return e>>>0<256}function ki(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0;d=ea-48|0;ea=d;e=J[a+4>>2];a:{if(!e){break a}if(b){if(!(ga[J[J[e>>2]+16>>2]](e)|0)){break a}b=J[a+4>>2];ga[J[J[b>>2]+20>>2]](b)}b=d+16|0;J[b>>2]=0;J[b+4>>2]=0;H[b+24|0]=0;J[b+16>>2]=0;J[b+20>>2]=0;J[b+8>>2]=0;J[b+12>>2]=0;Yd(d,J[a>>2],b);a=J[d>>2];if(H[d+15|0]<0){qa(J[d+4>>2])}if(!a){nd(c,J[b>>2],J[b+4>>2]);f=J[b+4>>2]-J[b>>2]|0}a=J[b+12>>2];J[b+12>>2]=0;if(a){qa(a)}a=J[b>>2];if(!a){break a}J[b+4>>2]=a;qa(a)}ea=d+48|0;return f|0}function yl(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0;if((ga[J[J[b>>2]+20>>2]](b)|0)<=0){return 1}while(1){a:{f=0;d=Ob(J[J[a+4>>2]+4>>2],ga[J[J[b>>2]+24>>2]](b,e)|0);if((d|0)==-1){break a}c=J[a+4>>2];g=0;b:{if((d|0)<0){break b}h=J[c+4>>2];if(J[h+12>>2]-J[h+8>>2]>>2<=(d|0)){break b}c=J[J[c+8>>2]+(J[J[c+20>>2]+(d<<2)>>2]<<2)>>2];g=ga[J[J[c>>2]+36>>2]](c,d)|0}if(!(ga[J[J[b>>2]+28>>2]](b,g)|0)){break a}f=1;e=e+1|0;if((ga[J[J[b>>2]+20>>2]](b)|0)>(e|0)){continue}}break}return f|0}function Sa(a,b,c,d,e,f){var g=0,h=0,i=0;a:{if(f&64){d=b;e=f+-64|0;b=e&31;if((e&63)>>>0>=32){e=d<>>32-b|c<>>0>=32){h=g<>>32-d|e<>>0>=32){e=0;b=c>>>d|0}else{e=c>>>d|0;b=((1<>>d}d=i|b;e=e|h;b=f&31;if((f&63)>>>0>=32){h=g<>>32-b|c<>2]=b;J[a+4>>2]=c;J[a+8>>2]=d;J[a+12>>2]=e}function ke(a,b){Ba(a,b);Ba(a+32|0,b);Ba(a- -64|0,b);Ba(a+96|0,b);Ba(a+128|0,b);Ba(a+160|0,b);Ba(a+192|0,b);Ba(a+224|0,b);Ba(a+256|0,b);Ba(a+288|0,b);Ba(a+320|0,b);Ba(a+352|0,b);Ba(a+384|0,b);Ba(a+416|0,b);Ba(a+448|0,b);Ba(a+480|0,b);Ba(a+512|0,b);Ba(a+544|0,b);Ba(a+576|0,b);Ba(a+608|0,b);Ba(a+640|0,b);Ba(a+672|0,b);Ba(a+704|0,b);Ba(a+736|0,b);Ba(a+768|0,b);Ba(a+800|0,b);Ba(a+832|0,b);Ba(a+864|0,b);Ba(a+896|0,b);Ba(a+928|0,b);Ba(a+960|0,b);Ba(a+992|0,b);Ba(a+1024|0,b)}function xh(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0;d=J[J[a+8>>2]+40>>2];g=ra((d|0)<0?-1:d);f=J[b>>2];h=J[b+4>>2];if((f|0)!=(h|0)){k=d+g|0;while(1){e=J[(i<<2)+f>>2];d=J[a+8>>2];if(!K[d+84|0]){e=J[J[d+68>>2]+(e<<2)>>2]}l=J[J[d>>2]>>2];j=J[d+40>>2];e=J[d+48>>2]+Al(j,J[d+44>>2],e,0)|0;d=ta(g,l+e|0,j);e=J[c+20>>2];if(!J[c+16>>2]&(e|0)<=0|(e|0)<0){wa(c,J[c+4>>2],d,k);h=J[b+4>>2];f=J[b>>2]}i=i+1|0;if(i>>>0>2>>>0){continue}break}}qa(g);return 1}function Ke(a,b){if(!a){return 0}a:{b:{if(a){if(b>>>0<=127){break b}c:{if(!J[J[4841]>>2]){if((b&-128)==57216){break b}break c}if(b>>>0<=2047){H[a+1|0]=b&63|128;H[a|0]=b>>>6|192;a=2;break a}if(!((b&-8192)!=57344&b>>>0>=55296)){H[a+2|0]=b&63|128;H[a|0]=b>>>12|224;H[a+1|0]=b>>>6&63|128;a=3;break a}if(b-65536>>>0<=1048575){H[a+3|0]=b&63|128;H[a|0]=b>>>18|240;H[a+2|0]=b>>>6&63|128;H[a+1|0]=b>>>12&63|128;a=4;break a}}J[4804]=25;a=-1}else{a=1}break a}H[a|0]=b;a=1}return a}function Za(a,b,c,d,e,f,g,h,i){var j=0,k=0,l=0,m=0;h=Al(b,c,h,i);i=fa;j=h;h=Al(d,e,f,g);e=j+h|0;d=fa+i|0;i=e;h=i>>>0>>0?d+1|0:d;j=i;k=g;e=0;l=c;d=0;i=Al(g,e,c,d);g=j+i|0;c=fa+h|0;j=g;g=g>>>0>>0?c+1|0:c;h=f;i=b;f=Al(h,0,i,0);b=fa;c=0;d=Al(h,c,l,d);b=b+d|0;c=fa+c|0;c=b>>>0>>0?c+1|0:c;h=c;c=c+j|0;d=g;d=c>>>0>>0?d+1|0:d;h=c;c=d;d=Al(i,m,k,e)+b|0;e=fa;e=b>>>0>d>>>0?e+1|0:e;g=a;i=e;h=i+h|0;J[g+8>>2]=h;J[g+12>>2]=h>>>0>>0?c+1|0:c;J[g>>2]=f;J[g+4>>2]=d}function Xi(a,b){a=a|0;b=b|0;var c=0,d=0;c=ea-16|0;ea=c;d=J[a+8>>2];a:{if((d|0)==J[a+12>>2]){b=Ye(ra(76),b);J[b+36>>2]=0;J[b+40>>2]=0;J[b>>2]=2284;J[b+44>>2]=0;J[b+48>>2]=0;J[b+52>>2]=0;J[b+56>>2]=0;J[b+60>>2]=0;J[b+64>>2]=0;J[b+68>>2]=0;J[b+72>>2]=0;J[c+8>>2]=b;d=J[a+12>>2];b:{if(d>>>0>2]){J[c+8>>2]=0;J[d>>2]=b;J[a+12>>2]=d+4;break b}Fc(a+8|0,c+8|0)}a=J[c+8>>2];J[c+8>>2]=0;if(!a){break a}ga[J[J[a>>2]+4>>2]](a);break a}kc(J[d>>2],b)}ea=c+16|0;return 1}function Qg(a,b,c,d){var e=0,f=0,g=0,h=0,i=0;e=ea-48|0;ea=e;h=J[b>>2];f=a+16|0;b=J[f>>2];a:{b:{if(!b){break b}g=f;while(1){i=J[b+16>>2]<(h|0);g=i?g:b;b=J[(i?b+4|0:b)>>2];if(b){continue}break}if((g|0)==(f|0)){break b}if(J[g+16>>2]<=(h|0)){break a}}J[e+28>>2]=0;J[e+32>>2]=0;f=e+24|0;J[e+24>>2]=f|4;b=e+16|0;J[b>>2]=0;J[b+4>>2]=0;J[e+8>>2]=h;J[e+12>>2]=b;b=a+12|0;a=e+8|0;Mc(e+40|0,b,a,a);g=J[e+40>>2];Ha(a|4,J[e+16>>2]);Ha(f,J[e+28>>2])}wb(g+20|0,c,d);ea=e+48|0}function Bc(a){a=a|0;var b=0,c=0,d=0;J[a>>2]=14964;b=J[a+68>>2];if(b){J[a+72>>2]=b;qa(b)}b=J[a+56>>2];if(b){J[a+60>>2]=b;qa(b)}b=J[a+44>>2];if(b){J[a+48>>2]=b;qa(b)}b=J[a+32>>2];if(b){J[a+36>>2]=b;qa(b)}b=J[a+20>>2];if(b){J[a+24>>2]=b;qa(b)}b=J[a+8>>2];if(b){d=b;c=J[a+12>>2];if((b|0)!=(c|0)){while(1){c=c-4|0;d=J[c>>2];J[c>>2]=0;if(d){Oa(d)}if((b|0)!=(c|0)){continue}break}d=J[a+8>>2]}J[a+12>>2]=b;qa(d)}b=J[a+4>>2];J[a+4>>2]=0;if(b){mf(b)}return a|0}function uh(a){a=a|0;var b=0,c=0,d=0;J[a>>2]=2496;b=J[a+72>>2];J[a+72>>2]=0;if(b){ga[J[J[b>>2]+4>>2]](b)}b=J[a+60>>2];if(b){J[a- -64>>2]=b;qa(b)}b=J[a+48>>2];if(b){qa(b)}d=J[a+36>>2];if(d){c=J[a+40>>2];b=d;if((c|0)!=(b|0)){while(1){c=c-4|0;b=J[c>>2];J[c>>2]=0;if(b){ga[J[J[b>>2]+4>>2]](b)}if((c|0)!=(d|0)){continue}break}b=J[a+36>>2]}J[a+40>>2]=d;qa(b)}J[a>>2]=2188;b=J[a+16>>2];if(b){J[a+20>>2]=b;qa(b)}b=J[a+4>>2];if(b){J[a+8>>2]=b;qa(b)}return a|0}function Ua(a){J[a>>2]=-1;J[a+4>>2]=0;J[a+8>>2]=0;J[a+32>>2]=0;J[a+36>>2]=0;H[a+28|0]=1;J[a+20>>2]=0;J[a+24>>2]=0;J[a+12>>2]=0;J[a+16>>2]=0;J[a+40>>2]=0;J[a+44>>2]=0;J[a+48>>2]=0;J[a+52>>2]=0;J[a+56>>2]=0;J[a+60>>2]=0;J[a+64>>2]=0;J[a+68>>2]=0;J[a+76>>2]=0;J[a+80>>2]=0;J[a+84>>2]=0;J[a+88>>2]=0;J[a+92>>2]=0;J[a+96>>2]=0;J[a+72>>2]=a+4;J[a+104>>2]=0;J[a+108>>2]=0;H[a+100|0]=1;J[a+112>>2]=0;J[a+116>>2]=0;J[a+120>>2]=0;J[a+124>>2]=0;J[a+128>>2]=0}function Fa(a,b){var c=0,d=0,e=0,f=0,g=0,h=0,i=0;e=J[a+8>>2];c=J[a+4>>2];if(e-c>>2>>>0>=b>>>0){if(b){b=b<<2;c=sa(c,0,b)+b|0}J[a+4>>2]=c;return}a:{f=J[a>>2];g=c-f|0;h=g>>2;d=h+b|0;if(d>>>0<1073741824){c=0;e=e-f|0;i=e>>1;d=e>>>0>=2147483644?1073741823:d>>>0>>0?i:d;if(d){if(d>>>0>=1073741824){break a}c=ra(d<<2)}b=b<<2;b=sa((h<<2)+c|0,0,b)+b|0;if((g|0)>0){ta(c,f,g)}J[a+8>>2]=(d<<2)+c;J[a+4>>2]=b;J[a>>2]=c;if(f){qa(f)}return}ua();B()}ya();B()}function Ya(a,b){var c=0,d=0,e=0,f=0,g=0,h=0,i=0;e=J[a+8>>2];c=J[a+4>>2];if(e-c>>3>>>0>=b>>>0){if(b){b=b<<3;c=sa(c,0,b)+b|0}J[a+4>>2]=c;return}a:{f=J[a>>2];g=c-f|0;h=g>>3;d=h+b|0;if(d>>>0<536870912){c=0;e=e-f|0;i=e>>2;d=e>>>0>=2147483640?536870911:d>>>0>>0?i:d;if(d){if(d>>>0>=536870912){break a}c=ra(d<<3)}b=b<<3;b=sa((h<<3)+c|0,0,b)+b|0;if((g|0)>0){ta(c,f,g)}J[a+8>>2]=(d<<3)+c;J[a+4>>2]=b;J[a>>2]=c;if(f){qa(f)}return}ua();B()}ya();B()}function Je(a,b,c,d,e){var f=0,g=0,h=0;h=-1;g=d&2147483647;f=(g|0)==2147418112;a:{if(f&!c?a|b:f&(c|0)!=0|g>>>0>2147418112){break a}f=e&2147483647;if(((f|0)==2147418112&0|f>>>0>2147418112)&(f|0)!=2147418112){break a}if(!(a|c|(f|g|b))){return 0}f=d&e;if((f|0)>0|(f|0)>=0){if(((c|0)!=0|(d|0)!=(e|0))&(d|0)<(e|0)){break a}return(a|c|(d^e|b))!=0}if(!c&(d|0)==(e|0)?a|b:(c|0)!=0&(d|0)>=(e|0)|(d|0)>(e|0)){break a}h=(a|c|(d^e|b))!=0}return h}function Ma(a,b){var c=0,d=0,e=0,f=0,g=0,h=0,i=0;a:{c=J[a+4>>2];e=J[a>>2];f=c-e|0;b:{if(f>>>0>>0){g=b-f|0;d=J[a+8>>2];if(g>>>0<=d-c>>>0){h=a,i=sa(c,0,g)+g|0,J[h+4>>2]=i;return}if((b|0)<0){break a}c=d-e|0;d=c<<1;d=c>>>0>=1073741823?2147483647:b>>>0>>0?d:b;c=ra(d);sa(c+f|0,0,g);if((f|0)>0){ta(c,e,f)}J[a+8>>2]=c+d;J[a+4>>2]=b+c;J[a>>2]=c;if(!e){break b}qa(e);return}if(b>>>0>=f>>>0){break b}J[a+4>>2]=b+e}return}ua();B()}function Ng(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0;d=ea-16|0;ea=d;e=J[a+4>>2];a:{if((e|0)==-1){break a}c=J[b+20>>2];if(!!J[b+16>>2]&(c|0)>=0|(c|0)>0){break a}wa(b,J[b+4>>2],J[a+8>>2],J[a+12>>2]);c=J[b+20>>2];if(!!J[b+16>>2]&(c|0)>=0|(c|0)>0){break a}wa(b,J[b+4>>2],a+20|0,a+24|0);c=J[b+20>>2];f=J[b+16>>2];H[d+15|0]=J[a+4>>2];if(!!f&(c|0)>=0|(c|0)>0){break a}wa(b,J[b+4>>2],d+15|0,d+16|0)}ea=d+16|0;return(e|0)!=-1|0}function aj(a){a=a|0;var b=0,c=0,d=0,e=0,f=0;a:{b=J[a+8>>2];b:{if((b|0)<0){break b}c=J[a+4>>2];e=J[c>>2];d=J[c+4>>2]-e>>2;c:{if(d>>>0>>0){Fa(c,b-d|0);f=J[a+8>>2];break c}f=b;if(b>>>0>=d>>>0){break c}J[c+4>>2]=e+(b<<2);f=b}d=f;if((d|0)<=0){break b}a=J[a+4>>2];c=J[a>>2];e=J[a+4>>2]-c>>2;a=0;while(1){if((a|0)==(e|0)){break a}J[c+(a<<2)>>2]=a;a=a+1|0;if((d|0)!=(a|0)){continue}break}}return(b^-1)>>>31|0}va();B()}function le(a){Ca(a);Ca(a+32|0);Ca(a- -64|0);Ca(a+96|0);Ca(a+128|0);Ca(a+160|0);Ca(a+192|0);Ca(a+224|0);Ca(a+256|0);Ca(a+288|0);Ca(a+320|0);Ca(a+352|0);Ca(a+384|0);Ca(a+416|0);Ca(a+448|0);Ca(a+480|0);Ca(a+512|0);Ca(a+544|0);Ca(a+576|0);Ca(a+608|0);Ca(a+640|0);Ca(a+672|0);Ca(a+704|0);Ca(a+736|0);Ca(a+768|0);Ca(a+800|0);Ca(a+832|0);Ca(a+864|0);Ca(a+896|0);Ca(a+928|0);Ca(a+960|0);Ca(a+992|0);Ca(a+1024|0)}function Tg(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,f=0;e=ea-96|0;ea=e;f=Hg(e+40|0,c);Vg(e,b,c);Gg(f,e);Ha(e+24|0,J[e+28>>2]);ob(e+12|0,J[e+16>>2]);Ha(e,J[e+4>>2]);Yd(a,f,d);if(!J[a>>2]){if(H[a+15|0]<0){qa(J[a+4>>2])}J[b+40>>2]=J[f+40>>2];J[b+44>>2]=J[f+44>>2];J[a+8>>2]=0;J[a+12>>2]=0;J[a>>2]=0;J[a+4>>2]=0}J[f>>2]=10256;Ha(f+28|0,J[f+32>>2]);ob(f+16|0,J[f+20>>2]);Ha(f+4|0,J[f+8>>2]);ea=e+96|0}function Ra(a,b,c){var d=0,e=0,f=0;if(!(K[a|0]&32)){a:{d=b;b=a;a=J[b+16>>2];b:{if(!a){if(Re(b)){break b}a=J[b+16>>2]}f=J[b+20>>2];if(a-f>>>0>>0){ga[J[b+36>>2]](b,d,c)|0;break a}c:{if(J[b+80>>2]<0){break c}a=c;while(1){e=a;if(!a){break c}a=e-1|0;if(K[d+a|0]!=10){continue}break}if(ga[J[b+36>>2]](b,d,e)>>>0>>0){break b}d=d+e|0;c=c-e|0;f=J[b+20>>2]}ta(f,d,c);J[b+20>>2]=J[b+20>>2]+c}}}}function Rj(a){a=a|0;var b=0,c=0,d=0;J[a>>2]=10404;b=J[a+64>>2];J[a+64>>2]=0;if(b){ga[J[J[b>>2]+4>>2]](b)}J[a>>2]=12468;b=J[a+32>>2];if(b){J[a+36>>2]=b;qa(b)}b=J[a+20>>2];if(b){J[a+24>>2]=b;qa(b)}d=J[a+8>>2];if(d){c=J[a+12>>2];b=d;if((c|0)!=(b|0)){while(1){c=c-4|0;b=J[c>>2];J[c>>2]=0;if(b){ga[J[J[b>>2]+4>>2]](b)}if((c|0)!=(d|0)){continue}break}b=J[a+8>>2]}J[a+12>>2]=d;qa(b)}return a|0}function ul(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0,i=0;d=ea-16|0;ea=d;f=He(a,b);a:{if(!f){break a}c=J[a+36>>2];if((c|0)==J[a+40>>2]){break a}g=d+16|0;while(1){c=J[(e<<2)+c>>2];h=d,i=ga[J[J[c>>2]+32>>2]](c)|0,H[h+15|0]=i;c=J[b+20>>2];if(!J[b+16>>2]&(c|0)<=0|(c|0)<0){wa(b,J[b+4>>2],d+15|0,g)}e=e+1|0;c=J[a+36>>2];if(e>>>0>2]-c>>2>>>0){continue}break}}ea=d+16|0;return f|0}function Qj(a){a=a|0;var b=0,c=0,d=0;J[a>>2]=10404;b=J[a+64>>2];J[a+64>>2]=0;if(b){ga[J[J[b>>2]+4>>2]](b)}J[a>>2]=12468;b=J[a+32>>2];if(b){J[a+36>>2]=b;qa(b)}b=J[a+20>>2];if(b){J[a+24>>2]=b;qa(b)}d=J[a+8>>2];if(d){c=J[a+12>>2];b=d;if((c|0)!=(b|0)){while(1){c=c-4|0;b=J[c>>2];J[c>>2]=0;if(b){ga[J[J[b>>2]+4>>2]](b)}if((c|0)!=(d|0)){continue}break}b=J[a+8>>2]}J[a+12>>2]=d;qa(b)}qa(a)}function dd(a,b,c){var d=0,e=0,f=0;f=ea-16|0;ea=f;d=K[a+11|0]>>>7|0?(J[a+8>>2]&2147483647)-1|0:10;if(K[a+11|0]>>>7|0){e=J[a+4>>2]}else{e=K[a+11|0]}a:{if(d-e>>>0>=c>>>0){if(!c){break a}if(K[a+11|0]>>>7|0){d=J[a>>2]}else{d=a}Bb(d+e|0,b,c);b=c+e|0;b:{if(K[a+11|0]>>>7|0){J[a+4>>2]=b;break b}H[a+11|0]=b}H[f+15|0]=0;H[b+d|0]=K[f+15|0];break a}ed(a,d,(c+e|0)-d|0,e,e,0,c,b)}ea=f+16|0}function ig(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0;c=J[a+176>>2];d=J[a+172>>2];e=(c-d|0)/136|0;a:{if((c|0)==(d|0)){break a}c=0;b:{c:{d:{if(J[d>>2]==(b|0)){b=1}else{f=e>>>0<=1?1:e;while(1){c=c+1|0;if((f|0)==(c|0)){break d}if(J[P(c,136)+d>>2]!=(b|0)){continue}break}b=c>>>0>>0}if(b){break c}break a}if(c>>>0>>0){break b}break a}d=(P(c,136)+d|0)+104|0}return d|0}return a+40|0}function yb(a,b,c){var d=0,e=0,f=0,g=0;d=ea-16|0;ea=d;H[d+15|0]=a&127;a:{b:{if(!b&a>>>0>=128|b){H[d+15|0]=a|128;f=J[c+20>>2];e=0;if(!!J[c+16>>2]&(f|0)>=0|(f|0)>0){break b}wa(c,J[c+4>>2],d+15|0,d+16|0);a=yb((b&127)<<25|a>>>7,b>>>7|0,c);break a}b=J[c+16>>2];a=J[c+20>>2];if(!b&(a|0)<=0|(a|0)<0){wa(c,J[c+4>>2],d+15|0,d+16|0)}e=!b&(a|0)<=0|(a|0)<0}g=e;a=0}ea=d+16|0;return a|g}function Nf(a,b){a=a|0;b=b|0;var c=0,d=0;c=ea-16|0;ea=c;a:{if(!b){d=ra(76);b=ra(12);J[b+8>>2]=J[J[a+4>>2]+80>>2];J[b>>2]=12404;J[b+4>>2]=0;d=ge(d,b,0);J[c+8>>2]=d;b=J[a+12>>2];b:{if(b>>>0>2]){J[c+8>>2]=0;J[b>>2]=d;J[a+12>>2]=b+4;break b}Fc(a+8|0,c+8|0)}a=J[c+8>>2];J[c+8>>2]=0;if(!a){break a}ga[J[J[a>>2]+4>>2]](a);break a}kc(J[J[a+8>>2]>>2],b)}ea=c+16|0;return 1}function Eh(a,b){a=a|0;b=b|0;var c=0,d=0;c=J[a+36>>2];if((c|0)!=J[a+40>>2]){while(1){c=P(d,24)+c|0;ga[J[J[c>>2]+28>>2]](c,b)|0;d=d+1|0;c=J[a+36>>2];if(d>>>0<(J[a+40>>2]-c|0)/24>>>0){continue}break}}c=J[a+48>>2];if((c|0)!=J[a+52>>2]){d=0;while(1){c=J[(d<<2)+c>>2];Da((c|0)<0?(c^-1)<<1|1:c<<1,b);d=d+1|0;c=J[a+48>>2];if(d>>>0>2]-c>>2>>>0){continue}break}}return 1}function nf(a,b,c,d,e,f){var g=0,h=0,i=0;i=-1;a:{if(!a){break a}g=Gc(ra(96));Dd(g,b,d<<24>>24,f,c);b=id(a,g);if(c){g=J[J[a+8>>2]+(b<<2)>>2];while(1){f=J[g+40>>2];ta(J[J[g>>2]>>2]+P(f,K[g+84|0]?h:J[J[g+68>>2]+(h<<2)>>2])|0,(P(d,h)<<1)+e|0,f);h=h+1|0;if((h|0)!=(c|0)){continue}break}}d=J[a+80>>2];b:{if(!d){J[a+80>>2]=c;break b}if((c|0)!=(d|0)){break a}}i=b}return i}function md(a,b,c,d,e,f){var g=0,h=0,i=0;i=-1;a:{if(!a){break a}g=Gc(ra(96));Dd(g,b,d<<24>>24,f,c);b=id(a,g);if(c){g=J[J[a+8>>2]+(b<<2)>>2];while(1){f=J[g+40>>2];ta(J[J[g>>2]>>2]+P(f,K[g+84|0]?h:J[J[g+68>>2]+(h<<2)>>2])|0,(P(d,h)<<2)+e|0,f);h=h+1|0;if((h|0)!=(c|0)){continue}break}}d=J[a+80>>2];b:{if(!d){J[a+80>>2]=c;break b}if((c|0)!=(d|0)){break a}}i=b}return i}function Dd(a,b,c,d,e){var f=0,g=0,h=0,i=0;f=ra(32);J[f+16>>2]=0;J[f+20>>2]=0;J[f+8>>2]=0;J[f>>2]=0;J[f+4>>2]=0;J[f+24>>2]=0;J[f+28>>2]=0;g=J[a+64>>2];J[a+64>>2]=f;if(g){f=J[g>>2];if(f){J[g+4>>2]=f;qa(f)}qa(g);f=J[a+64>>2]}h=b;i=c&255;g=d-1|0;if(g>>>0<=10){b=J[(g<<2)+14832>>2]}else{b=-1}b=P(b,c);Ed(a,h,f,i,d,b,b>>31);Cd(a,e);H[a+84|0]=1;J[a+72>>2]=J[a+68>>2]}function of(a,b,c,d,e,f){var g=0,h=0,i=0;i=-1;a:{if(!a){break a}g=Gc(ra(96));Dd(g,b,d<<24>>24,f,c);b=id(a,g);if(c){g=J[J[a+8>>2]+(b<<2)>>2];while(1){f=J[g+40>>2];ta(J[J[g>>2]>>2]+P(f,K[g+84|0]?h:J[J[g+68>>2]+(h<<2)>>2])|0,P(d,h)+e|0,f);h=h+1|0;if((h|0)!=(c|0)){continue}break}}d=J[a+80>>2];b:{if(!d){J[a+80>>2]=c;break b}if((c|0)!=(d|0)){break a}}i=b}return i}function Oh(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;if(qb(a,J[b+8>>2],e)){if(!(J[b+28>>2]==1|J[b+4>>2]!=(c|0))){J[b+28>>2]=d}return}a:{if(!qb(a,J[b>>2],e)){break a}if(!(J[b+16>>2]!=(c|0)&J[b+20>>2]!=(c|0))){if((d|0)!=1){break a}J[b+32>>2]=1;return}J[b+20>>2]=c;J[b+32>>2]=d;J[b+40>>2]=J[b+40>>2]+1;if(!(J[b+36>>2]!=1|J[b+24>>2]!=2)){H[b+54|0]=1}J[b+44>>2]=4}}function Kc(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0,g=0,h=0,i=0;d=ea+-64|0;ea=d;e=ga[J[J[a>>2]+44>>2]](a,b)|0;a=ga[J[J[a>>2]+40>>2]](a,b)|0;f=Jc(d);g=J[b+56>>2];h=e&255;i=a;a=a-1|0;if(a>>>0<=10){a=J[(a<<2)+14832>>2]}else{a=-1}a=P(a,e);Ed(f,g,0,h,i,a,a>>31);a=cg(ra(96),f);Cd(a,c);H[a+84|0]=1;J[a+72>>2]=J[a+68>>2];J[a+60>>2]=J[b+60>>2];ea=d- -64|0;return a|0}function Da(a,b){var c=0,d=0,e=0,f=0;c=ea-16|0;ea=c;H[c+15|0]=a&127;a:{b:{if(a>>>0>=128){H[c+15|0]=a|128;d=J[b+20>>2];e=0;if(!!J[b+16>>2]&(d|0)>=0|(d|0)>0){break b}wa(b,J[b+4>>2],c+15|0,c+16|0);a=Da(a>>>7|0,b);break a}d=J[b+16>>2];a=J[b+20>>2];if(!d&(a|0)<=0|(a|0)<0){wa(b,J[b+4>>2],c+15|0,c+16|0)}e=!d&(a|0)<=0|(a|0)<0}f=e;a=0}ea=c+16|0;return a|f}function Vh(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0,g=0;e=J[a+84>>2];f=J[e+4>>2];g=J[a+28>>2];d=J[a+20>>2]-g|0;d=d>>>0>f>>>0?f:d;if(d){ta(J[e>>2],g,d);J[e>>2]=d+J[e>>2];f=J[e+4>>2]-d|0;J[e+4>>2]=f}d=J[e>>2];f=c>>>0>f>>>0?f:c;if(f){ta(d,b,f);d=f+J[e>>2]|0;J[e>>2]=d;J[e+4>>2]=J[e+4>>2]-f}H[d|0]=0;b=J[a+44>>2];J[a+28>>2]=b;J[a+20>>2]=b;return c|0}function ye(a,b,c,d){H[a+53|0]=1;a:{if(J[a+4>>2]!=(c|0)){break a}H[a+52|0]=1;c=J[a+16>>2];b:{if(!c){J[a+36>>2]=1;J[a+24>>2]=d;J[a+16>>2]=b;if((d|0)!=1){break a}if(J[a+48>>2]==1){break b}break a}if((b|0)==(c|0)){c=J[a+24>>2];if((c|0)==2){J[a+24>>2]=d;c=d}if(J[a+48>>2]!=1){break a}if((c|0)==1){break b}break a}J[a+36>>2]=J[a+36>>2]+1}H[a+54|0]=1}}function Cc(a,b){var c=0,d=0,e=0,f=0;d=1;a:{if((b|0)==-1){break a}b=P(b,3);if((b|0)==-1){break a}d=-1;e=J[a>>2];a=e+(b<<2)|0;c=b+1|0;c=(c>>>0)%3|0?c:b-2|0;if((c|0)!=-1){d=J[(c<<2)+e>>2]}a=J[a>>2];f=(a|0)==(d|0);b:{c:{if((b>>>0)%3|0){b=b-1|0;break c}b=b+2|0;c=-1;if((b|0)==-1){break b}}c=J[(b<<2)+e>>2]}d=f|(c|0)==(a|0)|(d|0)==(c|0)}return d}function Sh(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0;e=ea+-64|0;ea=e;d=1;a:{if(qb(a,b,0)){break a}d=0;if(!b){break a}b=$c(b,18476,18524);d=0;if(!b){break a}d=e+8|0;sa(d|4,0,52);J[e+56>>2]=1;J[e+20>>2]=-1;J[e+16>>2]=a;J[e+8>>2]=b;ga[J[J[b>>2]+28>>2]](b,d,J[c>>2],1);a=J[e+32>>2];if((a|0)==1){J[c>>2]=J[e+24>>2]}d=(a|0)==1}ea=e- -64|0;return d|0}function vl(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0;J[a+32>>2]=c;J[a+28>>2]=b;a:{if(!(ga[J[J[a>>2]+52>>2]](a)|0)){break a}e=J[a+4>>2];if((e|0)==J[a+8>>2]){return 1}c=0;while(1){d=c<<2;f=J[d+J[a+36>>2]>>2];d=ga[J[J[f>>2]+8>>2]](f,b,J[d+e>>2])|0;if(!d){break a}c=c+1|0;e=J[a+4>>2];if(c>>>0>2]-e>>2>>>0){continue}break}}return d|0}function Kj(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0;d=ea-16|0;ea=d;J[a+4>>2]=b;b=J[b+64>>2];e=J[b>>2];b=J[b+4>>2];H[d+15|0]=0;Qa(a+24|0,(b-e>>2>>>0)/3|0,d+15|0);b=J[a+4>>2];e=J[b+56>>2];b=J[b+52>>2];H[d+14|0]=0;Qa(a+36|0,e-b>>2,d+14|0);b=J[c+12>>2];J[a+16>>2]=J[c+8>>2];J[a+20>>2]=b;b=J[c+4>>2];J[a+8>>2]=J[c>>2];J[a+12>>2]=b;ea=d+16|0}function zj(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0;d=ea-16|0;ea=d;J[a+4>>2]=b;e=J[b>>2];b=J[b+4>>2];H[d+15|0]=0;Qa(a+24|0,(b-e>>2>>>0)/3|0,d+15|0);b=J[a+4>>2];e=J[b+28>>2];b=J[b+24>>2];H[d+14|0]=0;Qa(a+36|0,e-b>>2,d+14|0);b=J[c+12>>2];J[a+16>>2]=J[c+8>>2];J[a+20>>2]=b;b=J[c+4>>2];J[a+8>>2]=J[c>>2];J[a+12>>2]=b;ea=d+16|0}function yc(a){var b=0,c=0,d=0,e=0;while(1){b=a;a=b+1|0;c=H[b|0];if((c|0)==32|c-9>>>0<5){continue}break}a:{b:{c:{c=H[b|0];switch(c-43|0){case 0:break b;case 2:break c;default:break a}}e=1}c=H[a|0];b=a}if(c-48>>>0<10){while(1){d=(P(d,10)-H[b|0]|0)+48|0;a=H[b+1|0];b=b+1|0;if(a-48>>>0<10){continue}break}}return e?d:0-d|0}function fj(a){a=a|0;var b=0,c=0,d=0;J[a>>2]=12468;b=J[a+32>>2];if(b){J[a+36>>2]=b;qa(b)}b=J[a+20>>2];if(b){J[a+24>>2]=b;qa(b)}d=J[a+8>>2];if(d){c=J[a+12>>2];b=d;if((c|0)!=(b|0)){while(1){c=c-4|0;b=J[c>>2];J[c>>2]=0;if(b){ga[J[J[b>>2]+4>>2]](b)}if((c|0)!=(d|0)){continue}break}b=J[a+8>>2]}J[a+12>>2]=d;qa(b)}return a|0}function yd(a){a=a|0;var b=0,c=0,d=0;J[a>>2]=12468;b=J[a+32>>2];if(b){J[a+36>>2]=b;qa(b)}b=J[a+20>>2];if(b){J[a+24>>2]=b;qa(b)}d=J[a+8>>2];if(d){c=J[a+12>>2];b=d;if((c|0)!=(b|0)){while(1){c=c-4|0;b=J[c>>2];J[c>>2]=0;if(b){ga[J[J[b>>2]+4>>2]](b)}if((c|0)!=(d|0)){continue}break}b=J[a+8>>2]}J[a+12>>2]=d;qa(b)}qa(a)}function hh(a,b){a=a|0;b=b|0;var c=0,d=0,e=0;c=ea-16|0;ea=c;J[c+12>>2]=J[a+12>>2];d=J[b+20>>2];a:{if(!!J[b+16>>2]&(d|0)>=0|(d|0)>0){break a}wa(b,J[b+4>>2],c+12|0,c+16|0);d=J[b+20>>2];e=J[b+16>>2];J[c+8>>2]=J[a+16>>2];if(!!e&(d|0)>=0|(d|0)>0){break a}wa(b,J[b+4>>2],c+8|0,c+12|0)}Ba(a+112|0,b);ea=c+16|0;return 1}function Zg(a,b){a=a|0;b=b|0;var c=0,d=0,e=0;c=ea-16|0;ea=c;J[c+12>>2]=J[a+12>>2];d=J[b+20>>2];a:{if(!!J[b+16>>2]&(d|0)>=0|(d|0)>0){break a}wa(b,J[b+4>>2],c+12|0,c+16|0);d=J[b+20>>2];e=J[b+16>>2];J[c+8>>2]=J[a+24>>2];if(!!e&(d|0)>=0|(d|0)>0){break a}wa(b,J[b+4>>2],c+8|0,c+12|0)}Ba(a+96|0,b);ea=c+16|0;return 1}function hd(a){var b=0;b=1;a:{if((a|0)>=1024){b=898846567431158e293;if(a>>>0<2047){a=a-1023|0;break a}b=_;a=((a|0)>=3069?3069:a)-2046|0;break a}if((a|0)>-1023){break a}b=2004168360008973e-307;if(a>>>0>4294965304){a=a+969|0;break a}b=0;a=((a|0)<=-2960?-2960:a)+1938|0}x(0,0);x(1,a+1023<<20);return b*+z()}function cl(a,b){a=a|0;b=b|0;var c=0,d=0,e=0;c=ea-16|0;ea=c;J[c+12>>2]=J[a+12>>2];d=J[b+20>>2];a:{if(!!J[b+16>>2]&(d|0)>=0|(d|0)>0){break a}wa(b,J[b+4>>2],c+12|0,c+16|0);d=J[b+20>>2];e=J[b+16>>2];J[c+8>>2]=J[a+16>>2];if(!!e&(d|0)>=0|(d|0)>0){break a}wa(b,J[b+4>>2],c+8|0,c+12|0)}ea=c+16|0;return 1}function Ek(a,b){a=a|0;b=b|0;var c=0,d=0,e=0;c=ea-16|0;ea=c;J[c+12>>2]=J[a+12>>2];d=J[b+20>>2];a:{if(!!J[b+16>>2]&(d|0)>=0|(d|0)>0){break a}wa(b,J[b+4>>2],c+12|0,c+16|0);d=J[b+20>>2];e=J[b+16>>2];J[c+8>>2]=J[a+24>>2];if(!!e&(d|0)>=0|(d|0)>0){break a}wa(b,J[b+4>>2],c+8|0,c+12|0)}ea=c+16|0;return 1}function Ea(a,b,c){var d=0,e=0;a:{b:{if(c>>>0>=4){if((a|b)&3){break b}while(1){if(J[a>>2]!=J[b>>2]){break b}b=b+4|0;a=a+4|0;c=c-4|0;if(c>>>0>3){continue}break}}if(!c){break a}}while(1){d=K[a|0];e=K[b|0];if((d|0)==(e|0)){b=b+1|0;a=a+1|0;c=c-1|0;if(c){continue}break a}break}return d-e|0}return 0}function bb(a,b){var c=0,d=0,e=0,f=0;d=ea-16|0;ea=d;a:{if(!b){b=0;break a}c=b>>31;e=(c^b)-c|0;c=S(e);Sa(d,e,0,0,0,c+81|0);e=0+J[d+8>>2]|0;c=(J[d+12>>2]^65536)+(16414-c<<16)|0;c=e>>>0>>0?c+1|0:c;f=b&-2147483648|c;c=J[d+4>>2];b=J[d>>2]}J[a>>2]=b;J[a+4>>2]=c;J[a+8>>2]=e;J[a+12>>2]=f;ea=d+16|0}function xj(a){a=a|0;var b=0;J[a+8>>2]=11436;J[a>>2]=11224;b=J[a+96>>2];if(b){J[a+100>>2]=b;qa(b)}b=J[a+80>>2];if(b){J[a+84>>2]=b;qa(b)}b=J[a+68>>2];if(b){J[a+72>>2]=b;qa(b)}b=J[a+56>>2];if(b){J[a+60>>2]=b;qa(b)}J[a+8>>2]=11672;b=J[a+44>>2];if(b){qa(b)}b=J[a+32>>2];if(b){qa(b)}return a|0}function mf(a){var b=0,c=0,d=0;if(a){d=J[a+24>>2];if(d){b=d;c=J[a+28>>2];if((b|0)!=(c|0)){while(1){c=c-4|0;b=J[c>>2];J[c>>2]=0;if(b){mb(b+12|0,J[b+16>>2]);lb(b,J[b+4>>2]);qa(b)}if((c|0)!=(d|0)){continue}break}b=J[a+24>>2]}J[a+28>>2]=d;qa(b)}mb(a+12|0,J[a+16>>2]);lb(a,J[a+4>>2]);qa(a)}}function wj(a){a=a|0;var b=0;J[a+8>>2]=11436;J[a>>2]=11224;b=J[a+96>>2];if(b){J[a+100>>2]=b;qa(b)}b=J[a+80>>2];if(b){J[a+84>>2]=b;qa(b)}b=J[a+68>>2];if(b){J[a+72>>2]=b;qa(b)}b=J[a+56>>2];if(b){J[a+60>>2]=b;qa(b)}J[a+8>>2]=11672;b=J[a+44>>2];if(b){qa(b)}b=J[a+32>>2];if(b){qa(b)}qa(a)}function ph(a){a=a|0;var b=0;J[a>>2]=3512;b=J[a+152>>2];if(b){J[a+156>>2]=b;qa(b)}b=J[a+112>>2];if(b){J[a+116>>2]=b;qa(b)}b=J[a+96>>2];if(b){qa(b)}b=J[a+84>>2];if(b){qa(b)}b=J[a+72>>2];if(b){qa(b)}b=J[a+60>>2];if(b){qa(b)}J[a>>2]=3456;b=J[a+32>>2];if(b){J[a+36>>2]=b;qa(b)}return a|0}function gh(a){a=a|0;var b=0;J[a>>2]=5076;b=J[a+152>>2];if(b){J[a+156>>2]=b;qa(b)}b=J[a+112>>2];if(b){J[a+116>>2]=b;qa(b)}b=J[a+96>>2];if(b){qa(b)}b=J[a+84>>2];if(b){qa(b)}b=J[a+72>>2];if(b){qa(b)}b=J[a+60>>2];if(b){qa(b)}J[a>>2]=3456;b=J[a+32>>2];if(b){J[a+36>>2]=b;qa(b)}return a|0}function Ch(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0,g=0,h=0,i=0;h=J[c+8>>2];e=J[c+16>>2];g=J[c+12>>2];f=g;d=J[c+20>>2];if(h>>>0>e>>>0&(f|0)>=(d|0)|(d|0)<(f|0)){b=K[e+J[c>>2]|0];i=e+1|0;f=i?d:d+1|0;J[c+16>>2]=i;J[c+20>>2]=f;J[a+4>>2]=b}return e>>>0>>0&(d|0)<=(g|0)|(d|0)<(g|0)}function qb(a,b,c){var d=0;if(!c){return J[a+4>>2]==J[b+4>>2]}if((a|0)==(b|0)){return 1}d=J[a+4>>2];a=K[d|0];c=J[b+4>>2];b=K[c|0];a:{if(!a|(b|0)!=(a|0)){break a}while(1){b=K[c+1|0];a=K[d+1|0];if(!a){break a}c=c+1|0;d=d+1|0;if((a|0)==(b|0)){continue}break}}return(a|0)==(b|0)}function Db(a){var b=0,c=0;c=J[a+8>>2];if((c|0)>=2){b=+(c|0);b=W(b*za(b)-O[a>>3]);if(R(b)<0x8000000000000000){fa=R(b)>=1?~~(b>0?T(V(b*2.3283064365386963e-10),4294967295):W((b-+(~~b>>>0>>>0))*2.3283064365386963e-10))>>>0:0;return~~b>>>0}a=-2147483648}else{a=0}fa=a;return 0}function yj(a){a=a|0;var b=0;J[a>>2]=11436;b=J[a+88>>2];if(b){J[a+92>>2]=b;qa(b)}b=J[a+72>>2];if(b){J[a+76>>2]=b;qa(b)}b=J[a+60>>2];if(b){J[a- -64>>2]=b;qa(b)}b=J[a+48>>2];if(b){J[a+52>>2]=b;qa(b)}J[a>>2]=11672;b=J[a+36>>2];if(b){qa(b)}b=J[a+24>>2];if(b){qa(b)}return a|0}function Pb(a,b){var c=0,d=0,e=0;J[a+8>>2]=0;J[a>>2]=0;J[a+4>>2]=0;a:{c=J[b+4>>2];d=J[b>>2];b:{if((c|0)==(d|0)){a=c;break b}c=c-d|0;if((c|0)<0){break a}d=c;e=ra(c);c=sa(e,0,c);d=d+c|0;J[a+8>>2]=d;J[a+4>>2]=d;J[a>>2]=c;c=J[b>>2];a=J[b+4>>2]}ta(e,c,a-c|0);return}ua();B()}function Mb(a,b){var c=0,d=0,e=0,f=0;c=ea-16|0;ea=c;a:{if(!b){b=0;break a}d=b;b=S(b);Sa(c,d,0,0,0,b+81|0);e=16414-b<<16;b=0;d=b+J[c+8>>2]|0;e=e+(J[c+12>>2]^65536)|0;e=b>>>0>d>>>0?e+1|0:e;f=d;d=J[c>>2];b=J[c+4>>2]}J[a>>2]=d;J[a+4>>2]=b;J[a+8>>2]=f;J[a+12>>2]=e;ea=c+16|0}function tj(a){a=a|0;var b=0;J[a>>2]=11436;b=J[a+88>>2];if(b){J[a+92>>2]=b;qa(b)}b=J[a+72>>2];if(b){J[a+76>>2]=b;qa(b)}b=J[a+60>>2];if(b){J[a- -64>>2]=b;qa(b)}b=J[a+48>>2];if(b){J[a+52>>2]=b;qa(b)}J[a>>2]=11672;b=J[a+36>>2];if(b){qa(b)}b=J[a+24>>2];if(b){qa(b)}qa(a)}function Nb(a,b,c){var d=0,e=0,f=0;a:{if(!b){d=a;break a}while(1){d=Cl(a,b,10,0);f=fa;e=Al(d,f,10,0);c=c-1|0;H[c|0]=a-e|48;e=b>>>0>9;a=d;b=f;if(e){continue}break}}if(d){while(1){c=c-1|0;a=(d>>>0)/10|0;H[c|0]=d-P(a,10)|48;b=d>>>0>9;d=a;if(b){continue}break}}return c}function qi(a){a=a|0;var b=0,c=0;b=ra(8);J[b+4>>2]=a;J[b>>2]=0;a:{b:{c:{if(!a){break c}c=$c(a,15016,14936);if(!c){break c}c=Hg(ra(56),c);a=J[b>>2];J[b>>2]=c;if(a){break b}break a}c=Ig(ra(56),a);a=J[b>>2];J[b>>2]=c;if(!a){break a}}ga[J[J[a>>2]+4>>2]](a)}return b|0}function dk(a){a=a|0;var b=0;J[a+40>>2]=2032;J[a>>2]=9988;b=J[a+48>>2];if(b){J[a+52>>2]=b;qa(b)}J[a>>2]=2624;b=J[a+36>>2];J[a+36>>2]=0;if(b){ga[J[J[b>>2]+4>>2]](b)}J[a>>2]=2392;b=J[a+32>>2];J[a+32>>2]=0;if(b){Oa(b)}b=J[a+16>>2];if(b){J[a+20>>2]=b;qa(b)}return a|0}function Wg(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,f=0;e=ea-96|0;ea=e;f=Ig(e+40|0,c);Vg(e,b,c);Gg(f,e);Ha(e+24|0,J[e+28>>2]);ob(e+12|0,J[e+16>>2]);Ha(e,J[e+4>>2]);Yd(a,f,d);J[f>>2]=10256;Ha(f+28|0,J[f+32>>2]);ob(f+16|0,J[f+20>>2]);Ha(f+4|0,J[f+8>>2]);ea=e+96|0}function pc(a){var b=0;if(a){b=J[a+76>>2];if(b){J[a+80>>2]=b;qa(b)}b=J[a- -64>>2];if(b){J[a+68>>2]=b;qa(b)}b=J[a+48>>2];if(b){J[a+52>>2]=b;qa(b)}b=J[a+24>>2];if(b){J[a+28>>2]=b;qa(b)}b=J[a+12>>2];if(b){J[a+16>>2]=b;qa(b)}b=J[a>>2];if(b){J[a+4>>2]=b;qa(b)}qa(a)}}function oc(a){var b=0;b=J[a+84>>2];if(b){J[a+88>>2]=b;qa(b)}b=J[a+72>>2];if(b){J[a+76>>2]=b;qa(b)}b=J[a+52>>2];if(b){J[a+56>>2]=b;qa(b)}b=J[a+40>>2];if(b){J[a+44>>2]=b;qa(b)}b=J[a+28>>2];if(b){J[a+32>>2]=b;qa(b)}b=J[a+12>>2];if(b){qa(b)}a=J[a>>2];if(a){qa(a)}}function Fe(a,b,c){var d=0,e=0,f=0,g=0,h=0;f=ea-16|0;ea=f;d=ea-16|0;ea=d;b=b-a>>2;while(1){if(b){J[d+12>>2]=a;e=b>>>1|0;J[d+12>>2]=J[d+12>>2]+(e<<2);h=(e^-1)+b|0;b=e;e=J[d+12>>2];g=M[e>>2]>2];b=g?h:b;a=g?e+4|0:a;continue}break}ea=d+16|0;ea=f+16|0;return a}function ck(a){a=a|0;var b=0;J[a+40>>2]=2032;J[a>>2]=9988;b=J[a+48>>2];if(b){J[a+52>>2]=b;qa(b)}J[a>>2]=2624;b=J[a+36>>2];J[a+36>>2]=0;if(b){ga[J[J[b>>2]+4>>2]](b)}J[a>>2]=2392;b=J[a+32>>2];J[a+32>>2]=0;if(b){Oa(b)}b=J[a+16>>2];if(b){J[a+20>>2]=b;qa(b)}qa(a)}function Ja(a,b,c){var d=0,e=0;a:{b:{if(c>>>0<11){d=a;H[d+11|0]=c;break b}if(c>>>0>4294967279){break a}if(c>>>0>=11){e=c+16&-16;d=e-1|0;d=(d|0)==11?e:d}else{d=10}e=d+1|0;d=ra(e);J[a>>2]=d;J[a+8>>2]=e|-2147483648;J[a+4>>2]=c}Bb(d,b,c+1|0);return}hb();B()}function tl(a,b){a=a|0;b=b|0;var c=0,d=0;c=J[a+72>>2];a:{if(!c){break a}J[c+4>>2]=a+60;if(!(ga[J[J[c>>2]+12>>2]](c)|0)){break a}if(!(ga[J[J[a>>2]+40>>2]](a)|0)){break a}if(!(ga[J[J[a>>2]+44>>2]](a,b)|0)){break a}d=ga[J[J[a>>2]+48>>2]](a,b)|0}return d|0}function jg(a,b){a=a|0;b=b|0;var c=0,d=0;c=J[a+172>>2];a=J[a+176>>2];if((c|0)!=(a|0)){a=(a-c|0)/136|0;d=a>>>0<=1?1:a;a=0;while(1){if(J[P(a,136)+c>>2]==(b|0)){a=P(a,136)+c|0;return(K[a+100|0]?a+4|0:0)|0}a=a+1|0;if((d|0)!=(a|0)){continue}break}}return 0}function ek(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0;e=ea-16|0;ea=e;d=a+40|0;c=Kc(d,J[a+8>>2],J[b+4>>2]-J[b>>2]>>2);d=ae(d,J[a+8>>2],b,c);a:{if(d){b=J[a+32>>2];J[a+32>>2]=c;if(!b){break a}Oa(b);break a}J[e+8>>2]=0;if(!c){break a}Oa(c)}ea=e+16|0;return d|0}function Hk(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0;e=ea-16|0;ea=e;d=a+40|0;c=Kc(d,J[a+8>>2],J[b+4>>2]-J[b>>2]>>2);d=rg(d,J[a+8>>2],b,c);a:{if(d){b=J[a+32>>2];J[a+32>>2]=c;if(!b){break a}Oa(b);break a}J[e+8>>2]=0;if(!c){break a}Oa(c)}ea=e+16|0;return d|0}function sb(a){var b=0,c=0,d=0;b=a;a:{if(b&3){while(1){if(!K[b|0]){break a}b=b+1|0;if(b&3){continue}break}}while(1){c=b;b=b+4|0;d=J[c>>2];if(!((d^-1)&d-16843009&-2139062144)){continue}break}while(1){b=c;c=b+1|0;if(K[b|0]){continue}break}}return b-a|0}function Ed(a,b,c,d,e,f,g){var h=0;J[a>>2]=c;if(c){h=J[c+20>>2];J[a+8>>2]=J[c+16>>2];J[a+12>>2]=h;h=J[c+28>>2];J[a+16>>2]=J[c+24>>2];J[a+20>>2]=h}J[a+56>>2]=b;J[a+48>>2]=0;J[a+52>>2]=0;J[a+40>>2]=f;J[a+44>>2]=g;H[a+32|0]=0;J[a+28>>2]=e;H[a+24|0]=d}function Qe(a,b){var c=0,d=0,e=0;A(+a);d=v(1)|0;e=v(0)|0;c=d>>>20&2047;if((c|0)!=2047){if(!c){if(a==0){c=0}else{a=Qe(a*0x10000000000000000,b);c=J[b>>2]+-64|0}J[b>>2]=c;return a}J[b>>2]=c-1022;x(0,e|0);x(1,d&-2146435073|1071644672);a=+z()}return a}function rl(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0;c=J[a+36>>2];if((c|0)==J[a+40>>2]){return 1}f=a+60|0;while(1){c=J[(d<<2)+c>>2];e=ga[J[J[c>>2]+20>>2]](c,f,b)|0;if(e){d=d+1|0;c=J[a+36>>2];if(d>>>0>2]-c>>2>>>0){continue}}break}return e|0}function ee(a){J[a+32>>2]=0;J[a+12>>2]=-1;J[a+4>>2]=0;J[a+8>>2]=0;J[a+16>>2]=0;J[a+20>>2]=0;J[a>>2]=2392;H[a+21|0]=0;H[a+22|0]=0;H[a+23|0]=0;H[a+24|0]=0;H[a+25|0]=0;H[a+26|0]=0;H[a+27|0]=0;H[a+28|0]=0;J[a+36>>2]=0;J[a>>2]=2624;return a}function sl(a){a=a|0;var b=0,c=0,d=0,e=0;b=J[a+36>>2];if((b|0)==J[a+40>>2]){return 1}e=a+60|0;while(1){b=J[(c<<2)+b>>2];d=ga[J[J[b>>2]+16>>2]](b,e)|0;if(d){c=c+1|0;b=J[a+36>>2];if(c>>>0>2]-b>>2>>>0){continue}}break}return d|0}function qk(a){a=a|0;var b=0;J[a>>2]=8640;b=J[a+136>>2];if(b){J[a+140>>2]=b;qa(b)}b=J[a+96>>2];if(b){J[a+100>>2]=b;qa(b)}b=J[a+80>>2];if(b){qa(b)}b=J[a+68>>2];if(b){qa(b)}b=J[a+56>>2];if(b){qa(b)}b=J[a+44>>2];if(b){qa(b)}return a|0}function Kf(a,b){a=a|0;b=b|0;var c=0,d=0;c=ea-16|0;ea=c;J[c+12>>2]=J[J[b+4>>2]+80>>2];b=J[b+44>>2];d=J[b+20>>2];if(!J[b+16>>2]&(d|0)<=0|(d|0)<0){wa(b,J[b+4>>2],c+12|0,c+16|0)}J[a>>2]=0;J[a+4>>2]=0;J[a+8>>2]=0;J[a+12>>2]=0;ea=c+16|0}function Ck(a){a=a|0;var b=0;J[a>>2]=6992;b=J[a+136>>2];if(b){J[a+140>>2]=b;qa(b)}b=J[a+96>>2];if(b){J[a+100>>2]=b;qa(b)}b=J[a+80>>2];if(b){qa(b)}b=J[a+68>>2];if(b){qa(b)}b=J[a+56>>2];if(b){qa(b)}b=J[a+44>>2];if(b){qa(b)}return a|0}function Oa(a){a=a|0;var b=0,c=0;if(a){b=J[a+88>>2];J[a+88>>2]=0;if(b){c=J[b+8>>2];if(c){J[b+12>>2]=c;qa(c)}qa(b)}b=J[a+68>>2];if(b){J[a+72>>2]=b;qa(b)}b=J[a+64>>2];J[a+64>>2]=0;if(b){c=J[b>>2];if(c){J[b+4>>2]=c;qa(c)}qa(b)}qa(a)}}function Oe(a){var b=0,c=0,d=0;if(H[J[a>>2]]-48>>>0>=10){return 0}while(1){d=J[a>>2];c=-1;if(b>>>0<=214748364){c=H[d|0]-48|0;b=P(b,10);c=(c|0)>(b^2147483647)?-1:c+b|0}J[a>>2]=d+1;b=c;if(H[d+1|0]-48>>>0<10){continue}break}return b}function ql(a,b){a=a|0;b=b|0;var c=0,d=0,e=0;c=J[a+36>>2];if((c|0)==J[a+40>>2]){return 1}while(1){c=J[(d<<2)+c>>2];e=ga[J[J[c>>2]+24>>2]](c,b)|0;if(e){d=d+1|0;c=J[a+36>>2];if(d>>>0>2]-c>>2>>>0){continue}}break}return e|0}function Nc(a,b){var c=0,d=0,e=0;c=sb(b);if(c>>>0<4294967280){a:{b:{if(c>>>0>=11){e=(c|15)+1|0;d=ra(e);J[a+8>>2]=e|-2147483648;J[a>>2]=d;J[a+4>>2]=c;break b}H[a+11|0]=c;d=a;if(!c){break a}}ta(d,b,c)}H[c+d|0]=0;return a}hb();B()}function pk(a){a=a|0;var b=0;J[a>>2]=8640;b=J[a+136>>2];if(b){J[a+140>>2]=b;qa(b)}b=J[a+96>>2];if(b){J[a+100>>2]=b;qa(b)}b=J[a+80>>2];if(b){qa(b)}b=J[a+68>>2];if(b){qa(b)}b=J[a+56>>2];if(b){qa(b)}b=J[a+44>>2];if(b){qa(b)}qa(a)}function Bk(a){a=a|0;var b=0;J[a>>2]=6992;b=J[a+136>>2];if(b){J[a+140>>2]=b;qa(b)}b=J[a+96>>2];if(b){J[a+100>>2]=b;qa(b)}b=J[a+80>>2];if(b){qa(b)}b=J[a+68>>2];if(b){qa(b)}b=J[a+56>>2];if(b){qa(b)}b=J[a+44>>2];if(b){qa(b)}qa(a)}function Zi(a){a=a|0;var b=0,c=0,d=0;b=J[a+32>>2];d=J[a+36>>2];if((b|0)==(d|0)){return 1}while(1){c=J[J[a+8>>2]+(J[b>>2]<<2)>>2];c=ga[J[J[c>>2]+20>>2]](c,J[a+44>>2])|0;if(c){b=b+4|0;if((d|0)!=(b|0)){continue}}break}return c|0}function Bl(a,b,c,d){var e=0,f=0,g=0,h=0;f=b^d;g=f>>31;e=b>>31;a=a^e;h=a-e|0;e=(b^e)-((a>>>0>>0)+e|0)|0;a=d>>31;b=c^a;f=f>>31;a=Cl(h,e,b-a|0,(a^d)-((a>>>0>b>>>0)+a|0)|0)^f;b=a-f|0;fa=(g^fa)-((a>>>0>>0)+g|0)|0;return b}function cd(a,b,c){var d=0,e=0,f=0;e=ea-16|0;ea=e;d=J[a+8>>2]&2147483647;a:{if(d>>>0>c>>>0){d=J[a>>2];J[a+4>>2]=c;Bb(d,b,c);H[e+15|0]=0;H[c+d|0]=K[e+15|0];break a}f=a;a=J[a+4>>2];ed(f,d-1|0,(c-d|0)+1|0,a,0,a,c,b)}ea=e+16|0}function xe(a,b){a=a|0;b=b|0;var c=0,d=0;c=ea-16|0;ea=c;a=J[a+4>>2];a:{if((a|0)==-1){break a}H[c+15|0]=a;d=J[b+20>>2];if(!!J[b+16>>2]&(d|0)>=0|(d|0)>0){break a}wa(b,J[b+4>>2],c+15|0,c+16|0)}ea=c+16|0;return(a|0)!=-1|0}function Al(a,b,c,d){var e=0,f=0,g=0,h=0,i=0,j=0;e=c>>>16|0;f=a>>>16|0;j=P(e,f);g=c&65535;h=a&65535;i=P(g,h);f=(i>>>16|0)+P(f,g)|0;e=(f&65535)+P(e,h)|0;fa=(P(b,c)+j|0)+P(a,d)+(f>>>16)+(e>>>16)|0;return i&65535|e<<16}function ze(a,b,c){var d=0;d=J[a+16>>2];if(!d){J[a+36>>2]=1;J[a+24>>2]=c;J[a+16>>2]=b;return}a:{if((b|0)==(d|0)){if(J[a+24>>2]!=2){break a}J[a+24>>2]=c;return}H[a+54|0]=1;J[a+24>>2]=2;J[a+36>>2]=J[a+36>>2]+1}}function tk(a,b){a=a|0;b=b|0;var c=0,d=0;J[b>>2]=2;c=J[b+8>>2];d=J[b+12>>2]-c|0;if(d>>>0<=4294967291){Dc(b+8|0,d+4|0);c=J[b+8>>2]}b=c+d|0;a=J[a+4>>2];H[b|0]=a;H[b+1|0]=a>>>8;H[b+2|0]=a>>>16;H[b+3|0]=a>>>24}function vd(a,b){var c=0,d=Q(0),e=0;b=pb(a,b);if((b|0)!=(a+4|0)){a=ea-16|0;ea=a;c=b+28|0;Se(a,H[b+39|0]<0?J[c>>2]:c,0,1);e=Ge(J[a>>2],J[a+4>>2],J[a+8>>2],J[a+12>>2]);ea=a+16|0;d=Q(e)}else{d=Q(1)}return d}function Ta(a,b,c,d,e){var f=0;f=ea-256|0;ea=f;if(!(e&73728|(c|0)<=(d|0))){d=c-d|0;c=d>>>0<256;sa(f,b&255,c?d:256);if(!c){while(1){Ra(a,f,256);d=d-256|0;if(d>>>0>255){continue}break}}Ra(a,f,d)}ea=f+256|0}function jl(a,b){a=a|0;b=b|0;var c=0,d=0;d=J[a+16>>2];c=0;a:{if(J[a+20>>2]-d>>2<=(b|0)){break a}b=J[(b<<2)+d>>2];c=0;if((b|0)<0){break a}a=J[J[a+36>>2]+(b<<2)>>2];b=J[a+32>>2];c=b?b:J[a+8>>2]}return c|0}function ml(a,b){a=a|0;b=b|0;var c=0,d=0;d=J[a+16>>2];c=0;a:{if(J[a+20>>2]-d>>2<=(b|0)){break a}b=J[(b<<2)+d>>2];c=0;if((b|0)<0){break a}a=J[J[a+36>>2]+(b<<2)>>2];c=J[a+20>>2]-J[a+16>>2]>>2}return c|0}function ll(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0;d=-1;e=J[a+16>>2];a:{if(J[a+20>>2]-e>>2<=(b|0)){break a}b=J[(b<<2)+e>>2];if((b|0)<0){break a}d=J[J[J[J[a+36>>2]+(b<<2)>>2]+16>>2]+(c<<2)>>2]}return d|0}function _h(a,b){a=a|0;b=b|0;var c=0,d=0,e=0;$e(a,b);a:{if((b|0)<0){break a}d=J[a+88>>2];c=J[a+84>>2];if(d-c>>2<=(b|0)){break a}b=c+(b<<2)|0;c=b+4|0;e=d-c|0;if((c|0)!=(d|0)){xa(b,c,e)}J[a+88>>2]=b+e}}function sh(a){a=a|0;var b=0;J[a>>2]=2624;b=J[a+36>>2];J[a+36>>2]=0;if(b){ga[J[J[b>>2]+4>>2]](b)}J[a>>2]=2392;b=J[a+32>>2];J[a+32>>2]=0;if(b){Oa(b)}b=J[a+16>>2];if(b){J[a+20>>2]=b;qa(b)}return a|0}function Aa(a){var b=0,c=0;c=ea-16|0;ea=c;J[c+8>>2]=0;J[c+12>>2]=0;$d(a,c+8|0);J[a+24>>2]=0;J[a+28>>2]=0;b=J[a+12>>2];J[a+16>>2]=b;if(b){qa(b)}b=J[a>>2];if(b){J[a+4>>2]=b;qa(b)}ea=c+16|0;return a}function Gc(a){a=Jc(a);J[a+64>>2]=0;J[a+68>>2]=0;J[a+88>>2]=0;J[a+72>>2]=0;J[a+76>>2]=0;H[a+77|0]=0;H[a+78|0]=0;H[a+79|0]=0;H[a+80|0]=0;H[a+81|0]=0;H[a+82|0]=0;H[a+83|0]=0;H[a+84|0]=0;return a}function rh(a){a=a|0;var b=0;J[a>>2]=2624;b=J[a+36>>2];J[a+36>>2]=0;if(b){ga[J[J[b>>2]+4>>2]](b)}J[a>>2]=2392;b=J[a+32>>2];J[a+32>>2]=0;if(b){Oa(b)}b=J[a+16>>2];if(b){J[a+20>>2]=b;qa(b)}qa(a)}function mc(a){J[a+52>>2]=0;J[a+4>>2]=0;J[a+8>>2]=0;J[a>>2]=12468;J[a+12>>2]=0;J[a+16>>2]=0;J[a+20>>2]=0;J[a+24>>2]=0;J[a+28>>2]=0;J[a+32>>2]=0;J[a+36>>2]=0;J[a+40>>2]=0;J[a+44>>2]=0;return a}function Re(a){var b=0;b=J[a+72>>2];J[a+72>>2]=b-1|b;b=J[a>>2];if(b&8){J[a>>2]=b|32;return-1}J[a+4>>2]=0;J[a+8>>2]=0;b=J[a+44>>2];J[a+28>>2]=b;J[a+20>>2]=b;J[a+16>>2]=b+J[a+48>>2];return 0}function Jc(a){J[a+8>>2]=0;J[a+12>>2]=0;J[a>>2]=0;J[a+40>>2]=0;J[a+44>>2]=0;J[a+28>>2]=9;H[a+24|0]=1;J[a+56>>2]=-1;J[a+60>>2]=0;J[a+16>>2]=0;J[a+20>>2]=0;J[a+48>>2]=0;J[a+52>>2]=0;return a}function gd(a,b,c,d,e,f,g,h,i){var j=0;j=ea-16|0;ea=j;ab(j,b,c,d,e,f,g,h,i^-2147483648);d=J[j>>2];c=J[j+4>>2];b=J[j+12>>2];J[a+8>>2]=J[j+8>>2];J[a+12>>2]=b;J[a>>2]=d;J[a+4>>2]=c;ea=j+16|0}function Ae(a,b){var c=0;if(b>>>0<=99){return Be(a,b)}if(b>>>0<=999){c=(b>>>0)/100|0;H[a|0]=c+48;a=a+1|0;b=L[(b-P(c,100)<<1)+18192>>1];H[a|0]=b;H[a+1|0]=b>>>8;return a+2|0}return xc(a,b)}function qd(a,b,c){a=a|0;b=b|0;c=c|0;a=0;a:{if(J[b+4>>2]|!b){break a}a=kd(ra(36),c);J[a+24>>2]=0;J[a+28>>2]=0;J[a+32>>2]=0;c=J[b+4>>2];J[b+4>>2]=a;a=1;if(!c){break a}mf(c)}return a|0}function ge(a,b,c){a=Ye(a,c);J[a+36>>2]=0;J[a+40>>2]=0;J[a>>2]=2496;J[a+72>>2]=b;J[a+44>>2]=0;J[a+48>>2]=0;J[a+52>>2]=0;J[a+56>>2]=0;J[a+60>>2]=0;J[a+64>>2]=0;J[a+68>>2]=0;return a}function bd(a,b,c){var d=0,e=0;d=ea-16|0;ea=d;a:{if(c>>>0<=10){H[a+11|0]=c;Bb(a,b,c);H[d+15|0]=0;H[a+c|0]=K[d+15|0];break a}e=a;a=K[a+11|0];ed(e,10,c-10|0,a,0,a,c,b)}ea=d+16|0}function pj(a){a=a|0;var b=0;J[a+8>>2]=11856;J[a>>2]=11692;b=J[a+56>>2];if(b){J[a+60>>2]=b;qa(b)}J[a+8>>2]=11672;b=J[a+44>>2];if(b){qa(b)}b=J[a+32>>2];if(b){qa(b)}return a|0}function kj(a){a=a|0;var b=0;J[a+8>>2]=10876;J[a>>2]=11984;b=J[a+56>>2];if(b){J[a+60>>2]=b;qa(b)}J[a+8>>2]=11128;b=J[a+44>>2];if(b){qa(b)}b=J[a+32>>2];if(b){qa(b)}return a|0}function Hb(a){var b=0,c=0;b=J[4773];c=a+7&-8;a=b+c|0;a:{if(a>>>0<=b>>>0?c:0){break a}if(a>>>0>ha()<<16>>>0){if(!(ca(a|0)|0)){break a}}J[4773]=a;return b}J[4804]=48;return-1}function oj(a){a=a|0;var b=0;J[a+8>>2]=11856;J[a>>2]=11692;b=J[a+56>>2];if(b){J[a+60>>2]=b;qa(b)}J[a+8>>2]=11672;b=J[a+44>>2];if(b){qa(b)}b=J[a+32>>2];if(b){qa(b)}qa(a)}function jj(a){a=a|0;var b=0;J[a+8>>2]=10876;J[a>>2]=11984;b=J[a+56>>2];if(b){J[a+60>>2]=b;qa(b)}J[a+8>>2]=11128;b=J[a+44>>2];if(b){qa(b)}b=J[a+32>>2];if(b){qa(b)}qa(a)}function mb(a,b){if(b){mb(a,J[b>>2]);mb(a,J[b+4>>2]);a=J[b+28>>2];J[b+28>>2]=0;if(a){mb(a+12|0,J[a+16>>2]);lb(a,J[a+4>>2]);qa(a)}if(H[b+27|0]<0){qa(J[b+16>>2])}qa(b)}}function Ce(a,b){var c=0,d=0,e=0,f=0;J[a>>2]=18812;J[a>>2]=18924;c=sb(b);d=ra(c+13|0);J[d+8>>2]=0;J[d+4>>2]=c;J[d>>2]=c;e=a,f=ta(d+12|0,b,c+1|0),J[e+4>>2]=f;return a}function xc(a,b){var c=0,d=0;c=(b>>>0)/100|0;d=L[(c<<1)+18192>>1];H[a|0]=d;H[a+1|0]=d>>>8;a=a+2|0;b=L[(b-P(c,100)<<1)+18192>>1];H[a|0]=b;H[a+1|0]=b>>>8;return a+2|0}function Jh(a,b){a=a|0;b=b|0;var c=0;a:{if(!(ga[J[J[a>>2]+40>>2]](a)|0)){break a}if(!(ga[J[J[a>>2]+44>>2]](a,b)|0)){break a}c=ga[J[J[a>>2]+48>>2]](a,b)|0}return c|0}function zl(a,b){a=a|0;b=b|0;var c=0;b=J[b+88>>2];if(!(!b|J[b>>2]!=2)){c=a;a=J[b+8>>2];J[c+4>>2]=K[a|0]|K[a+1|0]<<8|(K[a+2|0]<<16|K[a+3|0]<<24);c=1}return c|0}function Sj(a){a=a|0;var b=0;a:{b=J[a+64>>2];if(!b){break a}b=ga[J[J[b>>2]+32>>2]](b)|0;if(!b){break a}J[a+60>>2]=((J[b+4>>2]-J[b>>2]>>2>>>0)/3|0)-J[b+40>>2]}}function qj(a){a=a|0;var b=0;J[a>>2]=11856;b=J[a+48>>2];if(b){J[a+52>>2]=b;qa(b)}J[a>>2]=11672;b=J[a+36>>2];if(b){qa(b)}b=J[a+24>>2];if(b){qa(b)}return a|0}function Jj(a){a=a|0;var b=0;J[a>>2]=10876;b=J[a+48>>2];if(b){J[a+52>>2]=b;qa(b)}J[a>>2]=11128;b=J[a+36>>2];if(b){qa(b)}b=J[a+24>>2];if(b){qa(b)}return a|0}function Gf(a,b){var c=0;a:{c=a+4|0;a=pb(a,b);if((c|0)==(a|0)){break a}b=a+28|0;a=yc(H[a+39|0]<0?J[b>>2]:b);if((a|0)==-1){break a}return(a|0)!=0}return 0}function Qb(a,b,c){var d=0;d=a+4|0;a=pb(a,b);a:{if((d|0)==(a|0)){break a}b=a+28|0;a=yc(H[a+39|0]<0?J[b>>2]:b);if((a|0)==-1){break a}c=(a|0)!=0}return c}function lj(a){a=a|0;var b=0;J[a>>2]=11856;b=J[a+48>>2];if(b){J[a+52>>2]=b;qa(b)}J[a>>2]=11672;b=J[a+36>>2];if(b){qa(b)}b=J[a+24>>2];if(b){qa(b)}qa(a)}function Cj(a){a=a|0;var b=0;J[a>>2]=10876;b=J[a+48>>2];if(b){J[a+52>>2]=b;qa(b)}J[a>>2]=11128;b=J[a+36>>2];if(b){qa(b)}b=J[a+24>>2];if(b){qa(b)}qa(a)}function Ye(a,b){J[a+4>>2]=0;J[a+8>>2]=0;J[a>>2]=2188;J[a+12>>2]=0;J[a+16>>2]=0;J[a+20>>2]=0;J[a+24>>2]=0;J[a+28>>2]=0;J[a+32>>2]=0;kc(a,b);return a}function Nh(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;if(qb(a,J[b+8>>2],f)){ye(b,c,d,e);return}a=J[a+8>>2];ga[J[J[a>>2]+20>>2]](a,b,c,d,e,f)}function jh(a){a=a|0;var b=0;a:{if(!J[a- -64>>2]|!J[a+68>>2]|(!J[a+44>>2]|!J[a+48>>2])){break a}if(!J[a+52>>2]){break a}b=J[a+56>>2]!=0}return b|0}function $g(a){a=a|0;var b=0;a:{if(!J[a+48>>2]|!J[a+52>>2]|(!J[a+28>>2]|!J[a+32>>2])){break a}if(!J[a+36>>2]){break a}b=J[a+40>>2]!=0}return b|0}function jd(a){var b=0,c=0;b=J[a+20>>2];a:{if((J[a+24>>2]-b|0)<=0){break a}b=J[b>>2];if((b|0)==-1){break a}c=J[J[a+8>>2]+(b<<2)>>2]}return c}function Oi(){var a=0;a=cf(ra(108));J[a+84>>2]=0;J[a+88>>2]=0;J[a>>2]=14892;J[a+92>>2]=0;J[a+96>>2]=0;J[a+100>>2]=0;J[a+104>>2]=0;return a|0}function Ob(a,b){var c=0;c=-1;a:{if((b|0)==-1|(b|0)>4){break a}b=P(b,12)+a|0;a=J[b+20>>2];if((J[b+24>>2]-a|0)<=0){break a}c=J[a>>2]}return c}function Le(a,b){a=a|0;b=b|0;var c=0,d=0,e=0;c=b;b=J[b>>2]+7&-8;J[c>>2]=b+16;d=a,e=Ge(J[b>>2],J[b+4>>2],J[b+8>>2],J[b+12>>2]),O[d>>3]=e}function bi(a){a=a|0;var b=0;J[a>>2]=14892;b=J[a+96>>2];if(b){J[a+100>>2]=b;qa(b)}b=J[a+84>>2];if(b){J[a+88>>2]=b;qa(b)}return Bc(a)|0}function Ca(a){var b=0;b=ea-16|0;ea=b;J[b+8>>2]=0;J[b+12>>2]=0;$d(a,b+8|0);J[a+24>>2]=0;J[a+28>>2]=0;J[a+16>>2]=J[a+12>>2];ea=b+16|0}function ai(a){a=a|0;var b=0;J[a>>2]=14892;b=J[a+96>>2];if(b){J[a+100>>2]=b;qa(b)}b=J[a+84>>2];if(b){J[a+88>>2]=b;qa(b)}qa(Bc(a))}function xl(a){a=a|0;var b=0;J[a>>2]=2392;b=J[a+32>>2];J[a+32>>2]=0;if(b){Oa(b)}b=J[a+16>>2];if(b){J[a+20>>2]=b;qa(b)}return a|0}function lb(a,b){if(b){lb(a,J[b>>2]);lb(a,J[b+4>>2]);a=J[b+28>>2];if(a){J[b+32>>2]=a;qa(a)}if(H[b+27|0]<0){qa(J[b+16>>2])}qa(b)}}function _k(a){a=a|0;var b=0;J[a>>2]=3760;b=J[a+76>>2];if(b){qa(b)}J[a>>2]=3456;b=J[a+32>>2];if(b){J[a+36>>2]=b;qa(b)}return a|0}function Qk(a){a=a|0;var b=0;J[a>>2]=5312;b=J[a+76>>2];if(b){qa(b)}J[a>>2]=3456;b=J[a+32>>2];if(b){J[a+36>>2]=b;qa(b)}return a|0}function Uh(a){a=a|0;var b=0;J[a>>2]=2188;b=J[a+16>>2];if(b){J[a+20>>2]=b;qa(b)}b=J[a+4>>2];if(b){J[a+8>>2]=b;qa(b)}return a|0}function Qh(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;if(qb(a,J[b+8>>2],0)){ze(b,c,d);return}a=J[a+8>>2];ga[J[J[a>>2]+28>>2]](a,b,c,d)}function Li(){var a=0,b=0;a=ra(24);J[a+4>>2]=0;J[a+8>>2]=0;b=a+16|0;J[b>>2]=0;J[b+4>>2]=0;J[a>>2]=a+4;J[a+12>>2]=b;return a|0}function wl(a){a=a|0;var b=0;J[a>>2]=2392;b=J[a+32>>2];J[a+32>>2]=0;if(b){Oa(b)}b=J[a+16>>2];if(b){J[a+20>>2]=b;qa(b)}qa(a)}function Zk(a){a=a|0;var b=0;J[a>>2]=3760;b=J[a+76>>2];if(b){qa(b)}J[a>>2]=3456;b=J[a+32>>2];if(b){J[a+36>>2]=b;qa(b)}qa(a)}function Pk(a){a=a|0;var b=0;J[a>>2]=5312;b=J[a+76>>2];if(b){qa(b)}J[a>>2]=3456;b=J[a+32>>2];if(b){J[a+36>>2]=b;qa(b)}qa(a)}function ra(a){var b=0;a=a?a:1;a:{while(1){b=Ee(a);if(b){break a}b=J[4971];if(b){ga[b|0]();continue}break}$();B()}return b}function Ha(a,b){if(b){Ha(a,J[b>>2]);Ha(a,J[b+4>>2]);if(H[b+39|0]<0){qa(J[b+28>>2])}if(H[b+27|0]<0){qa(J[b+16>>2])}qa(b)}}function we(a){a=a|0;var b=0,c=0;J[a>>2]=18924;b=J[a+4>>2]-12|0;c=J[b+8>>2]-1|0;J[b+8>>2]=c;if((c|0)<0){qa(b)}return a|0}function Yg(a,b,c,d,e){var f=0;f=b-1|0;if(f>>>0<=29){J[a+4>>2]=b;cb(a+8|0,c,(d<<2)+c|0);N[a+20>>2]=e}return f>>>0<30}function Xk(a){a=a|0;var b=0;J[a>>2]=3996;Aa(a+112|0);J[a>>2]=3456;b=J[a+32>>2];if(b){J[a+36>>2]=b;qa(b)}return a|0}function We(a,b,c,d,e,f,g,h,i){J[a>>2]=b;J[a+4>>2]=c;J[a+8>>2]=d;J[a+12>>2]=e&65535|(i>>>16&32768|e>>>16&32767)<<16}function Nk(a){a=a|0;var b=0;J[a>>2]=5536;Aa(a+112|0);J[a>>2]=3456;b=J[a+32>>2];if(b){J[a+36>>2]=b;qa(b)}return a|0}function Ig(a,b){J[a>>2]=10256;_d(a+4|0);J[a+52>>2]=0;J[a+48>>2]=b;J[a>>2]=10352;J[a+40>>2]=0;J[a+44>>2]=0;return a}function Hg(a,b){J[a>>2]=10256;_d(a+4|0);J[a+52>>2]=b;J[a+48>>2]=b;J[a>>2]=10352;J[a+40>>2]=0;J[a+44>>2]=0;return a}function Ah(a,b,c){a=a|0;b=b|0;c=c|0;J[a+4>>2]=b;b=J[J[J[b+4>>2]+8>>2]+(c<<2)>>2];J[a+12>>2]=c;J[a+8>>2]=b;return 1}function nh(a){a=a|0;var b=0;if(!(!J[a+60>>2]|!J[a+44>>2]|(!J[a+48>>2]|!J[a+52>>2]))){b=J[a+56>>2]!=0}return b|0}function ch(a){a=a|0;var b=0;if(!(!J[a+44>>2]|!J[a+28>>2]|(!J[a+32>>2]|!J[a+36>>2]))){b=J[a+40>>2]!=0}return b|0}function Be(a,b){if(b>>>0<=9){H[a|0]=b+48;return a+1|0}b=L[(b<<1)+18192>>1];H[a|0]=b;H[a+1|0]=b>>>8;return a+2|0}function ri(a){a=a|0;if(a){J[a>>2]=10332;Ha(a+28|0,J[a+32>>2]);rc(a+16|0,J[a+20>>2]);Ha(a+4|0,J[a+8>>2]);qa(a)}}function Wk(a){a=a|0;var b=0;J[a>>2]=3996;Aa(a+112|0);J[a>>2]=3456;b=J[a+32>>2];if(b){J[a+36>>2]=b;qa(b)}qa(a)}function Mk(a){a=a|0;var b=0;J[a>>2]=5536;Aa(a+112|0);J[a>>2]=3456;b=J[a+32>>2];if(b){J[a+36>>2]=b;qa(b)}qa(a)}function Hf(a,b){var c=0;c=a+4|0;a=pb(a,b);if((c|0)==(a|0)){return-1}b=a+28|0;return yc(H[a+39|0]<0?J[b>>2]:b)}function Fb(a,b){var c=0,d=0;if(!(!a|!b|(a|0)==(b|0))){c=+(b>>>0)/+(a>>>0);d=1-c;c=-(c*za(c)+d*za(d))}return c}function bk(a){a=a|0;J[a>>2]=10256;Ha(a+28|0,J[a+32>>2]);ob(a+16|0,J[a+20>>2]);Ha(a+4|0,J[a+8>>2]);return a|0}function ak(a){a=a|0;J[a>>2]=10332;Ha(a+28|0,J[a+32>>2]);rc(a+16|0,J[a+20>>2]);Ha(a+4|0,J[a+8>>2]);return a|0}function Cb(a,b,c){var d=0;d=a+4|0;a=pb(a,b);if((d|0)!=(a|0)){b=a+28|0;c=yc(H[a+39|0]<0?J[b>>2]:b)}return c}function Ai(){var a=0;a=ra(48);J[a>>2]=10332;_d(a+4|0);J[a>>2]=10116;J[a+40>>2]=0;J[a+44>>2]=0;return a|0}function Mg(a){a=a|0;J[a>>2]=10332;Ha(a+28|0,J[a+32>>2]);rc(a+16|0,J[a+20>>2]);Ha(a+4|0,J[a+8>>2]);qa(a)}function Lg(a){a=a|0;J[a>>2]=10256;Ha(a+28|0,J[a+32>>2]);ob(a+16|0,J[a+20>>2]);Ha(a+4|0,J[a+8>>2]);qa(a)}function sj(a){a=a|0;var b=0;J[a>>2]=11672;b=J[a+36>>2];if(b){qa(b)}b=J[a+24>>2];if(b){qa(b)}return a|0}function Bj(a){a=a|0;var b=0;J[a>>2]=11128;b=J[a+36>>2];if(b){qa(b)}b=J[a+24>>2];if(b){qa(b)}return a|0}function id(a,b){ga[J[J[a>>2]+8>>2]](a,J[a+12>>2]-J[a+8>>2]>>2,b);return(J[a+12>>2]-J[a+8>>2]>>2)-1|0}function Wc(a){a=a|0;var b=0;if(!(!J[a+52>>2]|(!J[a+44>>2]|!J[a+48>>2]))){b=J[a+56>>2]!=0}return b|0}function Oc(a){a=a|0;var b=0;if(!(!J[a+36>>2]|(!J[a+28>>2]|!J[a+32>>2]))){b=J[a+40>>2]!=0}return b|0}function rj(a){a=a|0;var b=0;J[a>>2]=11672;b=J[a+36>>2];if(b){qa(b)}b=J[a+24>>2];if(b){qa(b)}qa(a)}function Aj(a){a=a|0;var b=0;J[a>>2]=11128;b=J[a+36>>2];if(b){qa(b)}b=J[a+24>>2];if(b){qa(b)}qa(a)}function ih(a,b){a=a|0;b=b|0;var c=0;if(!(J[b+56>>2]|K[b+24|0]!=3)){J[a- -64>>2]=b;c=1}return c|0}function mh(a,b){a=a|0;b=b|0;var c=0;if(!(J[b+56>>2]|K[b+24|0]!=3)){J[a+60>>2]=b;c=1}return c|0}function bh(a,b){a=a|0;b=b|0;var c=0;if(!(J[b+56>>2]|K[b+24|0]!=3)){J[a+44>>2]=b;c=1}return c|0}function _g(a,b){a=a|0;b=b|0;var c=0;if(!(J[b+56>>2]|K[b+24|0]!=3)){J[a+48>>2]=b;c=1}return c|0}function Mh(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;if(qb(a,J[b+8>>2],f)){ye(b,c,d,e)}}function ya(){var a=0;a=ba(4)|0;J[a>>2]=18812;J[a>>2]=18772;J[a>>2]=18792;aa(a|0,18904,14);B()}function De(a){var b=0;b=a;a=0;while(1){if((a|0)!=3){J[(a<<2)+b>>2]=0;a=a+1|0;continue}break}}function hi(a){a=a|0;var b=0;if(a){b=J[a>>2];J[a>>2]=0;if(b){ga[J[J[b>>2]+4>>2]](b)}qa(a)}}function el(a){a=a|0;var b=0;J[a>>2]=3456;b=J[a+32>>2];if(b){J[a+36>>2]=b;qa(b)}return a|0}function _j(a){a=a|0;var b=0;J[a>>2]=2032;b=J[a+8>>2];if(b){J[a+12>>2]=b;qa(b)}return a|0}function ub(a){var b=0;J[a+12>>2]=0;J[a+16>>2]=0;b=a;a=J[a>>2];J[b+4>>2]=a;if(a){qa(a)}}function cj(a){a=a|0;var b=0;b=a;a=J[a+56>>2];J[b+60>>2]=(J[a+100>>2]-J[a+96>>2]|0)/12}function zf(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;return of(b,c,d,e,f,1)|0}function yf(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;return of(b,c,d,e,f,2)|0}function xf(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;return nf(b,c,d,e,f,3)|0}function wf(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;return nf(b,c,d,e,f,4)|0}function uf(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;return md(b,c,d,e,f,6)|0}function sd(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;return md(b,c,d,e,f,9)|0}function rd(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;return md(b,c,d,e,f,5)|0}function ce(a){a=a|0;var b=0;J[a>>2]=3456;b=J[a+32>>2];if(b){J[a+36>>2]=b;qa(b)}qa(a)}function Zj(a){a=a|0;var b=0;J[a>>2]=2032;b=J[a+8>>2];if(b){J[a+12>>2]=b;qa(b)}qa(a)}function ni(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=Q(f);Pg(J[a>>2],b,c,d,e,f)}function rc(a,b){if(b){rc(a,J[b>>2]);rc(a,J[b+4>>2]);Ha(b+20|0,J[b+24>>2]);qa(b)}}function ob(a,b){if(b){ob(a,J[b>>2]);ob(a,J[b+4>>2]);Ha(b+20|0,J[b+24>>2]);qa(b)}}function Uj(a,b){a=a|0;b=b|0;var c=0;c=a;a=J[b+64>>2];ga[J[J[a>>2]+28>>2]](c,a)}function zk(a){a=a|0;var b=0;J[a>>2]=7264;b=J[a+60>>2];if(b){qa(b)}return a|0}function xi(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=Q(f);Pg(a,b,c,d,e,f)}function nk(a){a=a|0;var b=0;J[a>>2]=8900;b=J[a+60>>2];if(b){qa(b)}return a|0}function Rh(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;if(qb(a,J[b+8>>2],0)){ze(b,c,d)}}function Dl(a){var b=0;while(1){if(a){a=a-1&a;b=b+1|0;continue}break}return b}function Wj(a,b){a=a|0;b=b|0;a=J[a+64>>2];return ga[J[J[a>>2]+20>>2]](a,b)|0}function Wf(a,b){a=a|0;b=b|0;return J[J[a+28>>2]+(b>>>3&536870908)>>2]>>>b&1}function Vj(a,b){a=a|0;b=b|0;a=J[a+64>>2];return ga[J[J[a>>2]+24>>2]](a,b)|0}function Oj(a,b){a=a|0;b=b|0;a=J[a+64>>2];return ga[J[J[a>>2]+12>>2]](a,b)|0}function Nj(a,b){a=a|0;b=b|0;a=J[a+64>>2];return ga[J[J[a>>2]+16>>2]](a,b)|0}function Yi(a,b){a=a|0;b=b|0;J[a>>2]=0;J[a+4>>2]=0;J[a+8>>2]=0;J[a+12>>2]=0}function Ji(){var a=0;a=ra(12);J[a+8>>2]=0;J[a>>2]=0;J[a+4>>2]=0;return a|0}function Gi(a){a=a|0;var b=0;if(a){b=J[a>>2];if(b){J[a+4>>2]=b;qa(b)}qa(a)}}function va(){var a=0;a=Ce(ba(8)|0,1313);J[a>>2]=19024;aa(a|0,19056,1);B()}function El(a){var b=0;b=a&31;a=0-a&31;return(-1>>>b&-2)<>>a}function yh(a,b,c){a=a|0;b=b|0;c=c|0;return ga[J[J[a>>2]+44>>2]](a,b,c)|0}function yk(a){a=a|0;var b=0;J[a>>2]=7264;b=J[a+60>>2];if(b){qa(b)}qa(a)}function mk(a){a=a|0;var b=0;J[a>>2]=8900;b=J[a+60>>2];if(b){qa(b)}qa(a)}function bj(a,b){a=a|0;b=b|0;H[b+84|0]=1;J[b+72>>2]=J[b+68>>2];return 1}function Wh(a,b,c){a=a|0;b=b|0;c=c|0;J[a+32>>2]=c;J[a+28>>2]=b;return 1}function Qc(a,b){a=a|0;b=b|0;if(b>>>0<=1){J[a+28>>2]=b}return b>>>0<2|0}function Pf(a){a=mc(a);J[a+56>>2]=0;J[a+60>>2]=0;J[a>>2]=12164;return a}function Ki(a){a=a|0;if(a){mb(a+12|0,J[a+16>>2]);lb(a,J[a+4>>2]);qa(a)}}function Lh(a){a=a|0;if(!a){return 0}return($c(a,18476,18620)|0)!=0|0}function Pj(a){a=a|0;a=J[a+64>>2];return ga[J[J[a>>2]+32>>2]](a)|0}function be(a){a=Ce(ba(8)|0,a);J[a>>2]=18972;aa(a|0,19004,1);B()}function zh(a,b){a=a|0;b=b|0;J[a+12>>2]=-1;J[a+8>>2]=b;return 1}function Ni(a){a=a|0;return(J[a+100>>2]-J[a+96>>2]|0)/12|0}function wk(a){a=a|0;J[a>>2]=7524;Aa(a+96|0);return a|0}function kk(a){a=a|0;J[a>>2]=9148;Aa(a+96|0);return a|0}function oi(a,b,c){a=a|0;b=b|0;c=c|0;Rg(J[a>>2],b,c)}function mi(a,b,c){a=a|0;b=b|0;c=c|0;Sg(J[a>>2],b,c)}function cf(a){J[a>>2]=14964;sa(a+4|0,0,80);return a}function Fl(a){if(a){return 31-S(a-1^a)|0}return 32} +function dj(a){a=a|0;J[a+52>>2]=J[J[a+56>>2]+80>>2]}function Df(a){a=a|0;return J[a+12>>2]-J[a+8>>2]>>2}function vk(a){a=a|0;J[a>>2]=7524;Aa(a+96|0);qa(a)}function jk(a){a=a|0;J[a>>2]=9148;Aa(a+96|0);qa(a)}function fk(a,b){a=a|0;b=b|0;return Ng(a+40|0,b)|0}function Jf(a){a=a|0;J[a+52>>2]=J[J[a+4>>2]+80>>2]}function Ik(a,b){a=a|0;b=b|0;return xe(a+40|0,b)|0}function Ii(a,b){a=a|0;b=b|0;return H[J[a>>2]+b|0]}function Cf(a){a=a|0;if(a){ga[J[J[a>>2]+4>>2]](a)}}function Hi(a){a=a|0;return J[a+4>>2]-J[a>>2]|0}function yi(a,b,c){a=a|0;b=b|0;c=c|0;Rg(a,b,c)}function wi(a,b,c){a=a|0;b=b|0;c=c|0;Sg(a,b,c)}function Yj(a,b){a=a|0;b=b|0;return K[b+24|0]}function Gh(a,b,c){a=a|0;b=b|0;c=c|0;return-1}function ji(a){a=a|0;return J[J[a>>2]+40>>2]}function ii(a){a=a|0;return J[J[a>>2]+44>>2]}function pi(a,b){a=a|0;b=b|0;Og(J[a>>2],b)}function li(a,b){a=a|0;b=b|0;kf(J[a>>2],b)}function Mi(a,b){a=a|0;b=b|0;J[a+80>>2]=b}function vh(){J[4841]=19252;J[4823]=42}function ud(a){a=a|0;return J[a+80>>2]}function si(a){a=a|0;return J[a+44>>2]}function sc(a){a=a|0;return J[a+28>>2]}function Xf(a){a=a|0;return J[a+12>>2]}function Ui(a){a=a|0;return J[a+56>>2]}function Ri(a){a=a|0;return J[a+48>>2]}function Qi(a){a=a|0;return J[a+60>>2]}function Ef(a){a=a|0;return J[a+40>>2]}function wc(a,b){a=a|0;b=b|0;return 1}function th(a,b){a=a|0;b=b|0;return 6}function tc(a){a=a|0;return J[a+4>>2]}function qh(a,b){a=a|0;b=b|0;return-1}function dl(a,b){a=a|0;b=b|0;return 2}function Ti(a){a=a|0;return H[a+24|0]}function Si(a){a=a|0;return K[a+32|0]}function $a(a,b){a=a|0;b=b|0;return 0}function zi(a,b){a=a|0;b=b|0;Og(a,b)}function vi(a,b){a=a|0;b=b|0;kf(a,b)}function Bb(a,b,c){if(c){ta(a,b,c)}}function Lc(a,b,c,d){Eg(a,b,c,d,1)}function Eb(a,b,c,d){Eg(a,b,c,d,0)}function lc(a){a=a|0;if(a){qa(a)}}function Wi(){return Jc(ra(64))|0}function Vi(){return Gc(ra(96))|0}function Pi(){return cf(ra(84))|0}function _c(a){a=a|0;we(a);qa(a)}function Kh(a){a=a|0;return 1364}function Ih(a){a=a|0;return 1622}function Hh(a){a=a|0;return 1472}function vb(a){a=a|0;return a|0}function nl(a){a=a|0;qa(uh(a))}function al(a){a=a|0;qa(ph(a))}function Xh(a){a=a|0;qa(Bc(a))}function Sk(a){a=a|0;qa(gh(a))}function Ej(a){a=a|0;qa(Uf(a))}function Dj(a){a=a|0;qa(Tf(a))}function Bh(a){a=a|0;qa(je(a))}function jb(a){a=a|0;return 0}function fe(a){a=a|0;return 2}function eh(a){a=a|0;return 3}function Vc(a){a=a|0;return 4}function Tc(a){a=a|0;return 5}function Sc(a){a=a|0;return 6}function Na(a){a=a|0;return 1}function td(){return ra(1)|0}function ua(){be(1313);B()}function hb(){be(1493);B()}function db(a){a=a|0;qa(a)}function Ab(a){a=a|0;B()}function qf(){return-1}function pd(){return 0}function od(){return 1}function gi(){return 2}function fi(){return 3}function ei(){return 4}function Th(){$();B()}function Xe(a){a=a|0} // EMSCRIPTEN_END_FUNCS -e=I;p(oa);var fa=c([null,we,wb,db,fe,yl,sk,og,bi,xe,zh,Lc,qh,cl,wb,Zj,Yj,Na,Tk,Ek,ae,rk,Lg,_j,qh,Xj,Rh,Ab,Uh,He,Qh,Fh,$a,Dh,$a,$a,Na,xc,je,yh,fe,Ch,Ah,Bh,wl,vl,xh,wh,xc,vh,xc,jb,jb,th,xl,uh,rh,ml,ul,tl,jb,sl,ll,kl,jl,il,rl,ql,pl,ol,nl,ph,oh,de,hl,Na,fl,gl,el,dl,ce,Na,uc,Wc,jb,nh,$a,jb,Na,bl,al,Ab,Ab,mh,$k,Vc,Wc,lh,_k,Zk,Yk,Tc,kh,Na,$a,jh,ih,Xk,Wk,Vk,Sc,gh,Na,$a,fh,eh,Uk,wb,db,Qc,tc,Rc,Ab,ce,Na,Wc,Sk,Ab,dh,Rk,Vc,Wc,lh,Qk,Pk,Ok,Tc,kh,Na,$a,jh,ih,Nk,Mk,Lk,Sc,gh,Na,$a,fh,eh,Kk,wb,db,Qc,tc,Pc,Ab,ce,jb,Na,Jk,ph,oh,Ik,Hk,Na,bh,Fk,Gk,wb,db,Na,uc,Oc,jb,nh,$a,Na,bh,Dk,Ck,Bk,Ak,Vc,Oc,ah,zk,yk,xk,Tc,$g,Na,$a,_g,Zg,wk,vk,uk,Sc,Yg,Na,$a,Xg,Wg,tk,wb,db,Qc,tc,Rc,db,Na,Oc,qk,pk,ok,Vc,Oc,ah,nk,mk,lk,Tc,$g,Na,$a,_g,Zg,kk,jk,ik,Sc,Yg,Na,$a,Xg,Wg,hk,wb,db,Qc,tc,Pc,db,jb,Na,gk,ck,bk,fk,ek,Na,fe,dk,$j,Kg,Tg,Qg,ak,Jg,Kg,Jg,Qj,Pj,Na,Na,Wj,Na,fj,_i,Zi,Vj,Uj,Yi,Sj,Oj,Nj,Mj,Tj,Rj,Sf,Dj,Lj,hg,gg,Kj,eg,Hj,Vf,Uf,uc,Rf,Cj,Gj,hg,gg,Fj,eg,Ej,Vf,Uf,uc,Ij,Bj,Jj,Aj,zj,wj,vj,uj,tj,xj,sj,yj,rj,qj,oj,nj,mj,lj,pj,kj,jj,ij,hj,gj,ej,Ab,Na,xc,jb,$a,$a,yd,jb,Lf,cj,dj,bj,wb,db,aj,$i,Ab,jb,Xi,yd,Na,If,Wi,Hf,yd,jb,If,Lf,Hf,ai,$h,_h,Zh,Xh,Yh,ci,Cc,Wh,$e,_e,Xe,Vh,Th,Sh,wb,db,Ve,Ve,Ph,Jh,Lh,Oh,db,Kh,Mh,Nh,db,Gh,db,Eh,db,Hh,_c,uc,_c,_c]);function ga(){return E.byteLength/65536|0}function la(ma){ma=ma|0;var ha=ga()|0;var ia=ha+ma|0;if(ha0))return 0;var startIdx=outIdx;var endIdx=outIdx+maxBytesToWrite-1;for(var i=0;i=55296&&u<=57343){var u1=str.charCodeAt(++i);u=65536+((u&1023)<<10)|u1&1023}if(u<=127){if(outIdx>=endIdx)break;heap[outIdx++]=u}else if(u<=2047){if(outIdx+1>=endIdx)break;heap[outIdx++]=192|u>>6;heap[outIdx++]=128|u&63}else if(u<=65535){if(outIdx+2>=endIdx)break;heap[outIdx++]=224|u>>12;heap[outIdx++]=128|u>>6&63;heap[outIdx++]=128|u&63}else{if(outIdx+3>=endIdx)break;heap[outIdx++]=240|u>>18;heap[outIdx++]=128|u>>12&63;heap[outIdx++]=128|u>>6&63;heap[outIdx++]=128|u&63}}heap[outIdx]=0;return outIdx-startIdx}function lengthBytesUTF8(str){var len=0;for(var i=0;i=55296&&u<=57343)u=65536+((u&1023)<<10)|str.charCodeAt(++i)&1023;if(u<=127)++len;else if(u<=2047)len+=2;else if(u<=65535)len+=3;else len+=4}return len}var buffer,HEAP8,HEAPU8,HEAP16,HEAPU16,HEAP32,HEAPU32,HEAPF32,HEAPF64;function updateGlobalBufferAndViews(buf){buffer=buf;Module["HEAP8"]=HEAP8=new Int8Array(buf);Module["HEAP16"]=HEAP16=new Int16Array(buf);Module["HEAP32"]=HEAP32=new Int32Array(buf);Module["HEAPU8"]=HEAPU8=new Uint8Array(buf);Module["HEAPU16"]=HEAPU16=new Uint16Array(buf);Module["HEAPU32"]=HEAPU32=new Uint32Array(buf);Module["HEAPF32"]=HEAPF32=new Float32Array(buf);Module["HEAPF64"]=HEAPF64=new Float64Array(buf)}var INITIAL_MEMORY=Module["INITIAL_MEMORY"]||16777216;if(Module["wasmMemory"]){wasmMemory=Module["wasmMemory"]}else{wasmMemory=new WebAssembly.Memory({"initial":INITIAL_MEMORY/65536,"maximum":2147483648/65536})}if(wasmMemory){buffer=wasmMemory.buffer}INITIAL_MEMORY=buffer.byteLength;updateGlobalBufferAndViews(buffer);var wasmTable;var __ATPRERUN__=[];var __ATINIT__=[];var __ATPOSTRUN__=[];var runtimeInitialized=false;function keepRuntimeAlive(){return noExitRuntime}function preRun(){if(Module["preRun"]){if(typeof Module["preRun"]=="function")Module["preRun"]=[Module["preRun"]];while(Module["preRun"].length){addOnPreRun(Module["preRun"].shift())}}callRuntimeCallbacks(__ATPRERUN__)}function initRuntime(){runtimeInitialized=true;callRuntimeCallbacks(__ATINIT__)}function postRun(){if(Module["postRun"]){if(typeof Module["postRun"]=="function")Module["postRun"]=[Module["postRun"]];while(Module["postRun"].length){addOnPostRun(Module["postRun"].shift())}}callRuntimeCallbacks(__ATPOSTRUN__)}function addOnPreRun(cb){__ATPRERUN__.unshift(cb)}function addOnInit(cb){__ATINIT__.unshift(cb)}function addOnPostRun(cb){__ATPOSTRUN__.unshift(cb)}var runDependencies=0;var runDependencyWatcher=null;var dependenciesFulfilled=null;function addRunDependency(id){runDependencies++;if(Module["monitorRunDependencies"]){Module["monitorRunDependencies"](runDependencies)}}function removeRunDependency(id){runDependencies--;if(Module["monitorRunDependencies"]){Module["monitorRunDependencies"](runDependencies)}if(runDependencies==0){if(runDependencyWatcher!==null){clearInterval(runDependencyWatcher);runDependencyWatcher=null}if(dependenciesFulfilled){var callback=dependenciesFulfilled;dependenciesFulfilled=null;callback()}}}function abort(what){{if(Module["onAbort"]){Module["onAbort"](what)}}what="Aborted("+what+")";err(what);ABORT=true;EXITSTATUS=1;what+=". Build with -sASSERTIONS for more info.";var e=new WebAssembly.RuntimeError(what);readyPromiseReject(e);throw e}var dataURIPrefix="data:application/octet-stream;base64,";function isDataURI(filename){return filename.startsWith(dataURIPrefix)}function isFileURI(filename){return filename.startsWith("file://")}var wasmBinaryFile;wasmBinaryFile="draco_encoder.wasm";if(!isDataURI(wasmBinaryFile)){wasmBinaryFile=locateFile(wasmBinaryFile)}function getBinary(file){try{if(file==wasmBinaryFile&&wasmBinary){return new Uint8Array(wasmBinary)}var binary=tryParseAsDataURI(file);if(binary){return binary}if(readBinary){return readBinary(file)}else{throw"both async and sync fetching of the wasm failed"}}catch(err){abort(err)}}function getBinaryPromise(){if(!wasmBinary&&(ENVIRONMENT_IS_WEB||ENVIRONMENT_IS_WORKER)){if(typeof fetch=="function"&&!isFileURI(wasmBinaryFile)){return fetch(wasmBinaryFile,{credentials:"same-origin"}).then(function(response){if(!response["ok"]){throw"failed to load wasm binary file at '"+wasmBinaryFile+"'"}return response["arrayBuffer"]()}).catch(function(){return getBinary(wasmBinaryFile)})}else{if(readAsync){return new Promise(function(resolve,reject){readAsync(wasmBinaryFile,function(response){resolve(new Uint8Array(response))},reject)})}}}return Promise.resolve().then(function(){return getBinary(wasmBinaryFile)})}function createWasm(){var info={"a":asmLibraryArg};function receiveInstance(instance,module){var exports=instance.exports;Module["asm"]=exports;wasmTable=Module["asm"]["h"];addOnInit(Module["asm"]["g"]);removeRunDependency("wasm-instantiate")}addRunDependency("wasm-instantiate");function receiveInstantiationResult(result){receiveInstance(result["instance"])}function instantiateArrayBuffer(receiver){return getBinaryPromise().then(function(binary){return WebAssembly.instantiate(binary,info)}).then(function(instance){return instance}).then(receiver,function(reason){err("failed to asynchronously prepare wasm: "+reason);abort(reason)})}function instantiateAsync(){if(!wasmBinary&&typeof WebAssembly.instantiateStreaming=="function"&&!isDataURI(wasmBinaryFile)&&!isFileURI(wasmBinaryFile)&&!ENVIRONMENT_IS_NODE&&typeof fetch=="function"){return fetch(wasmBinaryFile,{credentials:"same-origin"}).then(function(response){var result=WebAssembly.instantiateStreaming(response,info);return result.then(receiveInstantiationResult,function(reason){err("wasm streaming compile failed: "+reason);err("falling back to ArrayBuffer instantiation");return instantiateArrayBuffer(receiveInstantiationResult)})})}else{return instantiateArrayBuffer(receiveInstantiationResult)}}if(Module["instantiateWasm"]){try{var exports=Module["instantiateWasm"](info,receiveInstance);return exports}catch(e){err("Module.instantiateWasm callback failed with error: "+e);return false}}instantiateAsync().catch(readyPromiseReject);return{}}function callRuntimeCallbacks(callbacks){while(callbacks.length>0){var callback=callbacks.shift();if(typeof callback=="function"){callback(Module);continue}var func=callback.func;if(typeof func=="number"){if(callback.arg===undefined){getWasmTableEntry(func)()}else{getWasmTableEntry(func)(callback.arg)}}else{func(callback.arg===undefined?null:callback.arg)}}}var wasmTableMirror=[];function getWasmTableEntry(funcPtr){var func=wasmTableMirror[funcPtr];if(!func){if(funcPtr>=wasmTableMirror.length)wasmTableMirror.length=funcPtr+1;wasmTableMirror[funcPtr]=func=wasmTable.get(funcPtr)}return func}function ___cxa_allocate_exception(size){return _malloc(size+24)+24}function ExceptionInfo(excPtr){this.excPtr=excPtr;this.ptr=excPtr-24;this.set_type=function(type){HEAPU32[this.ptr+4>>2]=type};this.get_type=function(){return HEAPU32[this.ptr+4>>2]};this.set_destructor=function(destructor){HEAPU32[this.ptr+8>>2]=destructor};this.get_destructor=function(){return HEAPU32[this.ptr+8>>2]};this.set_refcount=function(refcount){HEAP32[this.ptr>>2]=refcount};this.set_caught=function(caught){caught=caught?1:0;HEAP8[this.ptr+12>>0]=caught};this.get_caught=function(){return HEAP8[this.ptr+12>>0]!=0};this.set_rethrown=function(rethrown){rethrown=rethrown?1:0;HEAP8[this.ptr+13>>0]=rethrown};this.get_rethrown=function(){return HEAP8[this.ptr+13>>0]!=0};this.init=function(type,destructor){this.set_adjusted_ptr(0);this.set_type(type);this.set_destructor(destructor);this.set_refcount(0);this.set_caught(false);this.set_rethrown(false)};this.add_ref=function(){var value=HEAP32[this.ptr>>2];HEAP32[this.ptr>>2]=value+1};this.release_ref=function(){var prev=HEAP32[this.ptr>>2];HEAP32[this.ptr>>2]=prev-1;return prev===1};this.set_adjusted_ptr=function(adjustedPtr){HEAPU32[this.ptr+16>>2]=adjustedPtr};this.get_adjusted_ptr=function(){return HEAPU32[this.ptr+16>>2]};this.get_exception_ptr=function(){var isPointer=___cxa_is_pointer_type(this.get_type());if(isPointer){return HEAPU32[this.excPtr>>2]}var adjusted=this.get_adjusted_ptr();if(adjusted!==0)return adjusted;return this.excPtr}}var exceptionLast=0;var uncaughtExceptionCount=0;function ___cxa_throw(ptr,type,destructor){var info=new ExceptionInfo(ptr);info.init(type,destructor);exceptionLast=ptr;uncaughtExceptionCount++;throw ptr}function _abort(){abort("")}function _emscripten_memcpy_big(dest,src,num){HEAPU8.copyWithin(dest,src,src+num)}function getHeapMax(){return 2147483648}function emscripten_realloc_buffer(size){try{wasmMemory.grow(size-buffer.byteLength+65535>>>16);updateGlobalBufferAndViews(wasmMemory.buffer);return 1}catch(e){}}function _emscripten_resize_heap(requestedSize){var oldSize=HEAPU8.length;requestedSize=requestedSize>>>0;var maxHeapSize=getHeapMax();if(requestedSize>maxHeapSize){return false}let alignUp=(x,multiple)=>x+(multiple-x%multiple)%multiple;for(var cutDown=1;cutDown<=4;cutDown*=2){var overGrownHeapSize=oldSize*(1+.2/cutDown);overGrownHeapSize=Math.min(overGrownHeapSize,requestedSize+100663296);var newSize=Math.min(maxHeapSize,alignUp(Math.max(requestedSize,overGrownHeapSize),65536));var replacement=emscripten_realloc_buffer(newSize);if(replacement){return true}}return false}var ASSERTIONS=false;function intArrayFromString(stringy,dontAddNull,length){var len=length>0?length:lengthBytesUTF8(stringy)+1;var u8array=new Array(len);var numBytesWritten=stringToUTF8Array(stringy,u8array,0,u8array.length);if(dontAddNull)u8array.length=numBytesWritten;return u8array}function intArrayToString(array){var ret=[];for(var i=0;i255){if(ASSERTIONS){assert(false,"Character code "+chr+" ("+String.fromCharCode(chr)+") at offset "+i+" not in 0x00-0xFF.")}chr&=255}ret.push(String.fromCharCode(chr))}return ret.join("")}var decodeBase64=typeof atob=="function"?atob:function(input){var keyStr="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=";var output="";var chr1,chr2,chr3;var enc1,enc2,enc3,enc4;var i=0;input=input.replace(/[^A-Za-z0-9\+\/\=]/g,"");do{enc1=keyStr.indexOf(input.charAt(i++));enc2=keyStr.indexOf(input.charAt(i++));enc3=keyStr.indexOf(input.charAt(i++));enc4=keyStr.indexOf(input.charAt(i++));chr1=enc1<<2|enc2>>4;chr2=(enc2&15)<<4|enc3>>2;chr3=(enc3&3)<<6|enc4;output=output+String.fromCharCode(chr1);if(enc3!==64){output=output+String.fromCharCode(chr2)}if(enc4!==64){output=output+String.fromCharCode(chr3)}}while(i0){return}preRun();if(runDependencies>0){return}function doRun(){if(calledRun)return;calledRun=true;Module["calledRun"]=true;if(ABORT)return;initRuntime();readyPromiseResolve(Module);if(Module["onRuntimeInitialized"])Module["onRuntimeInitialized"]();postRun()}if(Module["setStatus"]){Module["setStatus"]("Running...");setTimeout(function(){setTimeout(function(){Module["setStatus"]("")},1);doRun()},1)}else{doRun()}}Module["run"]=run;if(Module["preInit"]){if(typeof Module["preInit"]=="function")Module["preInit"]=[Module["preInit"]];while(Module["preInit"].length>0){Module["preInit"].pop()()}}run();function WrapperObject(){}WrapperObject.prototype=Object.create(WrapperObject.prototype);WrapperObject.prototype.constructor=WrapperObject;WrapperObject.prototype.__class__=WrapperObject;WrapperObject.__cache__={};Module["WrapperObject"]=WrapperObject;function getCache(__class__){return(__class__||WrapperObject).__cache__}Module["getCache"]=getCache;function wrapPointer(ptr,__class__){var cache=getCache(__class__);var ret=cache[ptr];if(ret)return ret;ret=Object.create((__class__||WrapperObject).prototype);ret.ptr=ptr;return cache[ptr]=ret}Module["wrapPointer"]=wrapPointer;function castObject(obj,__class__){return wrapPointer(obj.ptr,__class__)}Module["castObject"]=castObject;Module["NULL"]=wrapPointer(0);function destroy(obj){if(!obj["__destroy__"])throw"Error: Cannot destroy object. (Did you create it yourself?)";obj["__destroy__"]();delete getCache(obj.__class__)[obj.ptr]}Module["destroy"]=destroy;function compare(obj1,obj2){return obj1.ptr===obj2.ptr}Module["compare"]=compare;function getPointer(obj){return obj.ptr}Module["getPointer"]=getPointer;function getClass(obj){return obj.__class__}Module["getClass"]=getClass;var ensureCache={buffer:0,size:0,pos:0,temps:[],needed:0,prepare:function(){if(ensureCache.needed){for(var i=0;i=ensureCache.size){assert(len>0);ensureCache.needed+=len;ret=Module["_malloc"](len);ensureCache.temps.push(ret)}else{ret=ensureCache.buffer+ensureCache.pos;ensureCache.pos+=len}return ret},copy:function(array,view,offset){offset>>>=0;var bytes=view.BYTES_PER_ELEMENT;switch(bytes){case 2:offset>>>=1;break;case 4:offset>>>=2;break;case 8:offset>>>=3;break}for(var i=0;i0))return 0;var startIdx=outIdx;var endIdx=outIdx+maxBytesToWrite-1;for(var i=0;i=55296&&u<=57343){var u1=str.charCodeAt(++i);u=65536+((u&1023)<<10)|u1&1023}if(u<=127){if(outIdx>=endIdx)break;heap[outIdx++]=u}else if(u<=2047){if(outIdx+1>=endIdx)break;heap[outIdx++]=192|u>>6;heap[outIdx++]=128|u&63}else if(u<=65535){if(outIdx+2>=endIdx)break;heap[outIdx++]=224|u>>12;heap[outIdx++]=128|u>>6&63;heap[outIdx++]=128|u&63}else{if(outIdx+3>=endIdx)break;heap[outIdx++]=240|u>>18;heap[outIdx++]=128|u>>12&63;heap[outIdx++]=128|u>>6&63;heap[outIdx++]=128|u&63}}heap[outIdx]=0;return outIdx-startIdx}function lengthBytesUTF8(str){var len=0;for(var i=0;i=55296&&c<=57343){len+=4;++i}else{len+=3}}return len}var buffer,HEAP8,HEAPU8,HEAP16,HEAPU16,HEAP32,HEAPU32,HEAPF32,HEAPF64;function updateGlobalBufferAndViews(buf){buffer=buf;Module["HEAP8"]=HEAP8=new Int8Array(buf);Module["HEAP16"]=HEAP16=new Int16Array(buf);Module["HEAP32"]=HEAP32=new Int32Array(buf);Module["HEAPU8"]=HEAPU8=new Uint8Array(buf);Module["HEAPU16"]=HEAPU16=new Uint16Array(buf);Module["HEAPU32"]=HEAPU32=new Uint32Array(buf);Module["HEAPF32"]=HEAPF32=new Float32Array(buf);Module["HEAPF64"]=HEAPF64=new Float64Array(buf)}var INITIAL_MEMORY=Module["INITIAL_MEMORY"]||16777216;if(Module["wasmMemory"]){wasmMemory=Module["wasmMemory"]}else{wasmMemory=new WebAssembly.Memory({"initial":INITIAL_MEMORY/65536,"maximum":2147483648/65536})}if(wasmMemory){buffer=wasmMemory.buffer}INITIAL_MEMORY=buffer.byteLength;updateGlobalBufferAndViews(buffer);var wasmTable;var __ATPRERUN__=[];var __ATINIT__=[];var __ATPOSTRUN__=[];var runtimeInitialized=false;function keepRuntimeAlive(){return noExitRuntime}function preRun(){if(Module["preRun"]){if(typeof Module["preRun"]=="function")Module["preRun"]=[Module["preRun"]];while(Module["preRun"].length){addOnPreRun(Module["preRun"].shift())}}callRuntimeCallbacks(__ATPRERUN__)}function initRuntime(){runtimeInitialized=true;callRuntimeCallbacks(__ATINIT__)}function postRun(){if(Module["postRun"]){if(typeof Module["postRun"]=="function")Module["postRun"]=[Module["postRun"]];while(Module["postRun"].length){addOnPostRun(Module["postRun"].shift())}}callRuntimeCallbacks(__ATPOSTRUN__)}function addOnPreRun(cb){__ATPRERUN__.unshift(cb)}function addOnInit(cb){__ATINIT__.unshift(cb)}function addOnPostRun(cb){__ATPOSTRUN__.unshift(cb)}var runDependencies=0;var runDependencyWatcher=null;var dependenciesFulfilled=null;function addRunDependency(id){runDependencies++;if(Module["monitorRunDependencies"]){Module["monitorRunDependencies"](runDependencies)}}function removeRunDependency(id){runDependencies--;if(Module["monitorRunDependencies"]){Module["monitorRunDependencies"](runDependencies)}if(runDependencies==0){if(runDependencyWatcher!==null){clearInterval(runDependencyWatcher);runDependencyWatcher=null}if(dependenciesFulfilled){var callback=dependenciesFulfilled;dependenciesFulfilled=null;callback()}}}function abort(what){{if(Module["onAbort"]){Module["onAbort"](what)}}what="Aborted("+what+")";err(what);ABORT=true;EXITSTATUS=1;what+=". Build with -sASSERTIONS for more info.";var e=new WebAssembly.RuntimeError(what);readyPromiseReject(e);throw e}var dataURIPrefix="data:application/octet-stream;base64,";function isDataURI(filename){return filename.startsWith(dataURIPrefix)}function isFileURI(filename){return filename.startsWith("file://")}var wasmBinaryFile;wasmBinaryFile="draco_encoder.wasm";if(!isDataURI(wasmBinaryFile)){wasmBinaryFile=locateFile(wasmBinaryFile)}function getBinary(file){try{if(file==wasmBinaryFile&&wasmBinary){return new Uint8Array(wasmBinary)}var binary=tryParseAsDataURI(file);if(binary){return binary}if(readBinary){return readBinary(file)}throw"both async and sync fetching of the wasm failed"}catch(err){abort(err)}}function getBinaryPromise(){if(!wasmBinary&&(ENVIRONMENT_IS_WEB||ENVIRONMENT_IS_WORKER)){if(typeof fetch=="function"&&!isFileURI(wasmBinaryFile)){return fetch(wasmBinaryFile,{credentials:"same-origin"}).then(function(response){if(!response["ok"]){throw"failed to load wasm binary file at '"+wasmBinaryFile+"'"}return response["arrayBuffer"]()}).catch(function(){return getBinary(wasmBinaryFile)})}else{if(readAsync){return new Promise(function(resolve,reject){readAsync(wasmBinaryFile,function(response){resolve(new Uint8Array(response))},reject)})}}}return Promise.resolve().then(function(){return getBinary(wasmBinaryFile)})}function createWasm(){var info={"a":asmLibraryArg};function receiveInstance(instance,module){var exports=instance.exports;Module["asm"]=exports;wasmTable=Module["asm"]["h"];addOnInit(Module["asm"]["g"]);removeRunDependency("wasm-instantiate")}addRunDependency("wasm-instantiate");function receiveInstantiationResult(result){receiveInstance(result["instance"])}function instantiateArrayBuffer(receiver){return getBinaryPromise().then(function(binary){return WebAssembly.instantiate(binary,info)}).then(function(instance){return instance}).then(receiver,function(reason){err("failed to asynchronously prepare wasm: "+reason);abort(reason)})}function instantiateAsync(){if(!wasmBinary&&typeof WebAssembly.instantiateStreaming=="function"&&!isDataURI(wasmBinaryFile)&&!isFileURI(wasmBinaryFile)&&!ENVIRONMENT_IS_NODE&&typeof fetch=="function"){return fetch(wasmBinaryFile,{credentials:"same-origin"}).then(function(response){var result=WebAssembly.instantiateStreaming(response,info);return result.then(receiveInstantiationResult,function(reason){err("wasm streaming compile failed: "+reason);err("falling back to ArrayBuffer instantiation");return instantiateArrayBuffer(receiveInstantiationResult)})})}else{return instantiateArrayBuffer(receiveInstantiationResult)}}if(Module["instantiateWasm"]){try{var exports=Module["instantiateWasm"](info,receiveInstance);return exports}catch(e){err("Module.instantiateWasm callback failed with error: "+e);readyPromiseReject(e)}}instantiateAsync().catch(readyPromiseReject);return{}}function ExitStatus(status){this.name="ExitStatus";this.message="Program terminated with exit("+status+")";this.status=status}function callRuntimeCallbacks(callbacks){while(callbacks.length>0){callbacks.shift()(Module)}}function intArrayToString(array){var ret=[];for(var i=0;i255){if(ASSERTIONS){assert(false,"Character code "+chr+" ("+String.fromCharCode(chr)+") at offset "+i+" not in 0x00-0xFF.")}chr&=255}ret.push(String.fromCharCode(chr))}return ret.join("")}function ___cxa_allocate_exception(size){return _malloc(size+24)+24}function ExceptionInfo(excPtr){this.excPtr=excPtr;this.ptr=excPtr-24;this.set_type=function(type){HEAPU32[this.ptr+4>>2]=type};this.get_type=function(){return HEAPU32[this.ptr+4>>2]};this.set_destructor=function(destructor){HEAPU32[this.ptr+8>>2]=destructor};this.get_destructor=function(){return HEAPU32[this.ptr+8>>2]};this.set_refcount=function(refcount){HEAP32[this.ptr>>2]=refcount};this.set_caught=function(caught){caught=caught?1:0;HEAP8[this.ptr+12>>0]=caught};this.get_caught=function(){return HEAP8[this.ptr+12>>0]!=0};this.set_rethrown=function(rethrown){rethrown=rethrown?1:0;HEAP8[this.ptr+13>>0]=rethrown};this.get_rethrown=function(){return HEAP8[this.ptr+13>>0]!=0};this.init=function(type,destructor){this.set_adjusted_ptr(0);this.set_type(type);this.set_destructor(destructor);this.set_refcount(0);this.set_caught(false);this.set_rethrown(false)};this.add_ref=function(){var value=HEAP32[this.ptr>>2];HEAP32[this.ptr>>2]=value+1};this.release_ref=function(){var prev=HEAP32[this.ptr>>2];HEAP32[this.ptr>>2]=prev-1;return prev===1};this.set_adjusted_ptr=function(adjustedPtr){HEAPU32[this.ptr+16>>2]=adjustedPtr};this.get_adjusted_ptr=function(){return HEAPU32[this.ptr+16>>2]};this.get_exception_ptr=function(){var isPointer=___cxa_is_pointer_type(this.get_type());if(isPointer){return HEAPU32[this.excPtr>>2]}var adjusted=this.get_adjusted_ptr();if(adjusted!==0)return adjusted;return this.excPtr}}var exceptionLast=0;var uncaughtExceptionCount=0;function ___cxa_throw(ptr,type,destructor){var info=new ExceptionInfo(ptr);info.init(type,destructor);exceptionLast=ptr;uncaughtExceptionCount++;throw ptr}function _abort(){abort("")}function _emscripten_memcpy_big(dest,src,num){HEAPU8.copyWithin(dest,src,src+num)}function getHeapMax(){return 2147483648}function emscripten_realloc_buffer(size){try{wasmMemory.grow(size-buffer.byteLength+65535>>>16);updateGlobalBufferAndViews(wasmMemory.buffer);return 1}catch(e){}}function _emscripten_resize_heap(requestedSize){var oldSize=HEAPU8.length;requestedSize=requestedSize>>>0;var maxHeapSize=getHeapMax();if(requestedSize>maxHeapSize){return false}let alignUp=(x,multiple)=>x+(multiple-x%multiple)%multiple;for(var cutDown=1;cutDown<=4;cutDown*=2){var overGrownHeapSize=oldSize*(1+.2/cutDown);overGrownHeapSize=Math.min(overGrownHeapSize,requestedSize+100663296);var newSize=Math.min(maxHeapSize,alignUp(Math.max(requestedSize,overGrownHeapSize),65536));var replacement=emscripten_realloc_buffer(newSize);if(replacement){return true}}return false}function intArrayFromString(stringy,dontAddNull,length){var len=length>0?length:lengthBytesUTF8(stringy)+1;var u8array=new Array(len);var numBytesWritten=stringToUTF8Array(stringy,u8array,0,u8array.length);if(dontAddNull)u8array.length=numBytesWritten;return u8array}var ASSERTIONS=false;var decodeBase64=typeof atob=="function"?atob:function(input){var keyStr="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=";var output="";var chr1,chr2,chr3;var enc1,enc2,enc3,enc4;var i=0;input=input.replace(/[^A-Za-z0-9\+\/\=]/g,"");do{enc1=keyStr.indexOf(input.charAt(i++));enc2=keyStr.indexOf(input.charAt(i++));enc3=keyStr.indexOf(input.charAt(i++));enc4=keyStr.indexOf(input.charAt(i++));chr1=enc1<<2|enc2>>4;chr2=(enc2&15)<<4|enc3>>2;chr3=(enc3&3)<<6|enc4;output=output+String.fromCharCode(chr1);if(enc3!==64){output=output+String.fromCharCode(chr2)}if(enc4!==64){output=output+String.fromCharCode(chr3)}}while(i0){return}preRun();if(runDependencies>0){return}function doRun(){if(calledRun)return;calledRun=true;Module["calledRun"]=true;if(ABORT)return;initRuntime();readyPromiseResolve(Module);if(Module["onRuntimeInitialized"])Module["onRuntimeInitialized"]();postRun()}if(Module["setStatus"]){Module["setStatus"]("Running...");setTimeout(function(){setTimeout(function(){Module["setStatus"]("")},1);doRun()},1)}else{doRun()}}if(Module["preInit"]){if(typeof Module["preInit"]=="function")Module["preInit"]=[Module["preInit"]];while(Module["preInit"].length>0){Module["preInit"].pop()()}}run();function WrapperObject(){}WrapperObject.prototype=Object.create(WrapperObject.prototype);WrapperObject.prototype.constructor=WrapperObject;WrapperObject.prototype.__class__=WrapperObject;WrapperObject.__cache__={};Module["WrapperObject"]=WrapperObject;function getCache(__class__){return(__class__||WrapperObject).__cache__}Module["getCache"]=getCache;function wrapPointer(ptr,__class__){var cache=getCache(__class__);var ret=cache[ptr];if(ret)return ret;ret=Object.create((__class__||WrapperObject).prototype);ret.ptr=ptr;return cache[ptr]=ret}Module["wrapPointer"]=wrapPointer;function castObject(obj,__class__){return wrapPointer(obj.ptr,__class__)}Module["castObject"]=castObject;Module["NULL"]=wrapPointer(0);function destroy(obj){if(!obj["__destroy__"])throw"Error: Cannot destroy object. (Did you create it yourself?)";obj["__destroy__"]();delete getCache(obj.__class__)[obj.ptr]}Module["destroy"]=destroy;function compare(obj1,obj2){return obj1.ptr===obj2.ptr}Module["compare"]=compare;function getPointer(obj){return obj.ptr}Module["getPointer"]=getPointer;function getClass(obj){return obj.__class__}Module["getClass"]=getClass;var ensureCache={buffer:0,size:0,pos:0,temps:[],needed:0,prepare:function(){if(ensureCache.needed){for(var i=0;i=ensureCache.size){assert(len>0);ensureCache.needed+=len;ret=Module["_malloc"](len);ensureCache.temps.push(ret)}else{ret=ensureCache.buffer+ensureCache.pos;ensureCache.pos+=len}return ret},copy:function(array,view,offset){offset>>>=0;var bytes=view.BYTES_PER_ELEMENT;switch(bytes){case 2:offset>>>=1;break;case 4:offset>>>=2;break;case 8:offset>>>=3;break}for(var i=0;i>>0,$jscomp.propertyToPolyfillSymbol[k]=$jscomp.IS_SYMBOL_NATIVE? $jscomp.global.Symbol(k):$jscomp.POLYFILL_PREFIX+m+"$"+k),$jscomp.defineProperty(r,$jscomp.propertyToPolyfillSymbol[k],{configurable:!0,writable:!0,value:p})))}; -$jscomp.polyfill("Promise",function(l){function p(){this.batch_=null}function m(h){return h instanceof k?h:new k(function(q,v){q(h)})}if(l&&(!($jscomp.FORCE_POLYFILL_PROMISE||$jscomp.FORCE_POLYFILL_PROMISE_WHEN_NO_UNHANDLED_REJECTION&&"undefined"===typeof $jscomp.global.PromiseRejectionEvent)||!$jscomp.global.Promise||-1===$jscomp.global.Promise.toString().indexOf("[native code]")))return l;p.prototype.asyncExecute=function(h){if(null==this.batch_){this.batch_=[];var q=this;this.asyncExecuteFunction(function(){q.executeBatch_()})}this.batch_.push(h)}; -var r=$jscomp.global.setTimeout;p.prototype.asyncExecuteFunction=function(h){r(h,0)};p.prototype.executeBatch_=function(){for(;this.batch_&&this.batch_.length;){var h=this.batch_;this.batch_=[];for(var q=0;q=C}},"es6","es3"); $jscomp.polyfill("Array.prototype.copyWithin",function(l){function p(m){m=Number(m);return Infinity===m||-Infinity===m?m:m|0}return l?l:function(m,r,k){var C=this.length;m=p(m);r=p(r);k=void 0===k?C:p(k);m=0>m?Math.max(C+m,0):Math.min(m,C);r=0>r?Math.max(C+r,0):Math.min(r,C);k=0>k?Math.max(C+k,0):Math.min(k,C);if(mr;)--k in this?this[--m]=this[k]:delete this[--m];return this}},"es6","es3"); $jscomp.typedArrayCopyWithin=function(l){return l?l:Array.prototype.copyWithin};$jscomp.polyfill("Int8Array.prototype.copyWithin",$jscomp.typedArrayCopyWithin,"es6","es5");$jscomp.polyfill("Uint8Array.prototype.copyWithin",$jscomp.typedArrayCopyWithin,"es6","es5");$jscomp.polyfill("Uint8ClampedArray.prototype.copyWithin",$jscomp.typedArrayCopyWithin,"es6","es5");$jscomp.polyfill("Int16Array.prototype.copyWithin",$jscomp.typedArrayCopyWithin,"es6","es5"); $jscomp.polyfill("Uint16Array.prototype.copyWithin",$jscomp.typedArrayCopyWithin,"es6","es5");$jscomp.polyfill("Int32Array.prototype.copyWithin",$jscomp.typedArrayCopyWithin,"es6","es5");$jscomp.polyfill("Uint32Array.prototype.copyWithin",$jscomp.typedArrayCopyWithin,"es6","es5");$jscomp.polyfill("Float32Array.prototype.copyWithin",$jscomp.typedArrayCopyWithin,"es6","es5");$jscomp.polyfill("Float64Array.prototype.copyWithin",$jscomp.typedArrayCopyWithin,"es6","es5"); -var DracoEncoderModule=function(){var l="undefined"!==typeof document&&document.currentScript?document.currentScript.src:void 0;"undefined"!==typeof __filename&&(l=l||__filename);return function(p){function m(f){return a.locateFile?a.locateFile(f,L):L+f}function r(f){qa=f;a.HEAP8=P=new Int8Array(f);a.HEAP16=ha=new Int16Array(f);a.HEAP32=S=new Int32Array(f);a.HEAPU8=ia=new Uint8Array(f);a.HEAPU16=new Uint16Array(f);a.HEAPU32=T=new Uint32Array(f);a.HEAPF32=ja=new Float32Array(f);a.HEAPF64=new Float64Array(f)} -function k(f){if(a.onAbort)a.onAbort(f);f="Aborted("+f+")";W(f);ra=!0;f=new WebAssembly.RuntimeError(f+". Build with -sASSERTIONS for more info.");ka(f);throw f;}function C(f){try{if(f==J&&X)return new Uint8Array(X);if(la)return la(f);throw"both async and sync fetching of the wasm failed";}catch(b){k(b)}}function h(){if(!X&&(sa||Y)){if("function"==typeof fetch&&!J.startsWith("file://"))return fetch(J,{credentials:"same-origin"}).then(function(f){if(!f.ok)throw"failed to load wasm binary file at '"+ -J+"'";return f.arrayBuffer()}).catch(function(){return C(J)});if(ma)return new Promise(function(f,b){ma(J,function(c){f(new Uint8Array(c))},b)})}return Promise.resolve().then(function(){return C(J)})}function q(f){for(;0=ba.length&&(ba.length=f+1),ba[f]=b=ta.get(f));return b}function D(f){this.excPtr=f;this.ptr= -f-24;this.set_type=function(b){T[this.ptr+4>>2]=b};this.get_type=function(){return T[this.ptr+4>>2]};this.set_destructor=function(b){T[this.ptr+8>>2]=b};this.get_destructor=function(){return T[this.ptr+8>>2]};this.set_refcount=function(b){S[this.ptr>>2]=b};this.set_caught=function(b){P[this.ptr+12>>0]=b?1:0};this.get_caught=function(){return 0!=P[this.ptr+12>>0]};this.set_rethrown=function(b){P[this.ptr+13>>0]=b?1:0};this.get_rethrown=function(){return 0!=P[this.ptr+13>>0]};this.init=function(b,c){this.set_adjusted_ptr(0); -this.set_type(b);this.set_destructor(c);this.set_refcount(0);this.set_caught(!1);this.set_rethrown(!1)};this.add_ref=function(){S[this.ptr>>2]+=1};this.release_ref=function(){var b=S[this.ptr>>2];S[this.ptr>>2]=b-1;return 1===b};this.set_adjusted_ptr=function(b){T[this.ptr+16>>2]=b};this.get_adjusted_ptr=function(){return T[this.ptr+16>>2]};this.get_exception_ptr=function(){if(ua(this.get_type()))return T[this.excPtr>>2];var b=this.get_adjusted_ptr();return 0!==b?b:this.excPtr}}function G(f){function b(){if(!ca&& -(ca=!0,a.calledRun=!0,!ra)){va=!0;q(na);wa(a);if(a.onRuntimeInitialized)a.onRuntimeInitialized();if(a.postRun)for("function"==typeof a.postRun&&(a.postRun=[a.postRun]);a.postRun.length;)xa.unshift(a.postRun.shift());q(xa)}}if(!(0=d&&(d=65536+((d&1023)<<10)|f.charCodeAt(++c)&1023);127>=d?++b:b=2047>=d?b+2:65535>=d?b+3:b+4}b=Array(b+1);c=0;d=b.length;if(0=g){var t=f.charCodeAt(++e);g=65536+((g&1023)<<10)|t&1023}if(127>=g){if(c>= -d)break;b[c++]=g}else{if(2047>=g){if(c+1>=d)break;b[c++]=192|g>>6}else{if(65535>=g){if(c+2>=d)break;b[c++]=224|g>>12}else{if(c+3>=d)break;b[c++]=240|g>>18;b[c++]=128|g>>12&63}b[c++]=128|g>>6&63}b[c++]=128|g&63}}b[c]=0}f=n.alloc(b,P);n.copy(b,P,f);return f}return f}function R(f){if("object"===typeof f){var b=n.alloc(f,P);n.copy(f,P,b);return b}return f}function da(f){if("object"===typeof f){var b=n.alloc(f,ha);n.copy(f,ha,b);return b}return f}function V(f){if("object"===typeof f){var b=n.alloc(f,S); -n.copy(f,S,b);return b}return f}function Z(f){if("object"===typeof f){var b=n.alloc(f,ja);n.copy(f,ja,b);return b}return f}function Q(){throw"cannot construct a VoidPtr, no constructor in IDL";}function M(){this.ptr=za();B(M)[this.ptr]=this}function z(){this.ptr=Aa();B(z)[this.ptr]=this}function H(){this.ptr=Ba();B(H)[this.ptr]=this}function E(){this.ptr=Ca();B(E)[this.ptr]=this}function N(){this.ptr=Da();B(N)[this.ptr]=this}function I(){this.ptr=Ea();B(I)[this.ptr]=this}function F(){this.ptr=Fa(); -B(F)[this.ptr]=this}function w(){this.ptr=Ga();B(w)[this.ptr]=this}function u(){this.ptr=Ha();B(u)[this.ptr]=this}function x(){this.ptr=Ia();B(x)[this.ptr]=this}function A(f){f&&"object"===typeof f&&(f=f.ptr);this.ptr=Ja(f);B(A)[this.ptr]=this}p=p||{};var a="undefined"!=typeof p?p:{},wa,ka;a.ready=new Promise(function(f,b){wa=f;ka=b});var Ka=!1,La=!1;a.onRuntimeInitialized=function(){Ka=!0;if(La&&"function"===typeof a.onModuleLoaded)a.onModuleLoaded(a)};a.onModuleParsed=function(){La=!0;if(Ka&&"function"=== -typeof a.onModuleLoaded)a.onModuleLoaded(a)};a.isVersionSupported=function(f){if("string"!==typeof f)return!1;f=f.split(".");return 2>f.length||3=f[1]?!0:0!=f[0]||10>>=0;if(2147483648=c;c*=2){var d=b*(1+.2/c);d=Math.min(d,f+100663296);var e=Math;d=Math.max(f,d);e=e.min.call(e,2147483648,d+(65536-d%65536)%65536);a:{try{fa.grow(e-qa.byteLength+65535>>>16);r(fa.buffer);var g=1;break a}catch(t){}g=void 0}if(g)return!0}return!1}};(function(){function f(e,g){a.asm=e.exports;fa=a.asm.f;r(fa.buffer);ta=a.asm.h;na.unshift(a.asm.g); -U--;a.monitorRunDependencies&&a.monitorRunDependencies(U);0==U&&(null!==pa&&(clearInterval(pa),pa=null),aa&&(e=aa,aa=null,e()))}function b(e){f(e.instance)}function c(e){return h().then(function(g){return WebAssembly.instantiate(g,d)}).then(function(g){return g}).then(e,function(g){W("failed to asynchronously prepare wasm: "+g);k(g)})}var d={a:uc};U++;a.monitorRunDependencies&&a.monitorRunDependencies(U);if(a.instantiateWasm)try{return a.instantiateWasm(d,f)}catch(e){return W("Module.instantiateWasm callback failed with error: "+ -e),!1}(function(){return X||"function"!=typeof WebAssembly.instantiateStreaming||J.startsWith("data:application/octet-stream;base64,")||J.startsWith("file://")||Na||"function"!=typeof fetch?c(b):fetch(J,{credentials:"same-origin"}).then(function(e){return WebAssembly.instantiateStreaming(e,d).then(b,function(g){W("wasm streaming compile failed: "+g);W("falling back to ArrayBuffer instantiation");return c(b)})})})().catch(ka);return{}})();a.___wasm_call_ctors=function(){return(a.___wasm_call_ctors= -a.asm.g).apply(null,arguments)};var Ra=a._emscripten_bind_VoidPtr___destroy___0=function(){return(Ra=a._emscripten_bind_VoidPtr___destroy___0=a.asm.i).apply(null,arguments)},za=a._emscripten_bind_GeometryAttribute_GeometryAttribute_0=function(){return(za=a._emscripten_bind_GeometryAttribute_GeometryAttribute_0=a.asm.j).apply(null,arguments)},Sa=a._emscripten_bind_GeometryAttribute___destroy___0=function(){return(Sa=a._emscripten_bind_GeometryAttribute___destroy___0=a.asm.k).apply(null,arguments)}, -Aa=a._emscripten_bind_PointAttribute_PointAttribute_0=function(){return(Aa=a._emscripten_bind_PointAttribute_PointAttribute_0=a.asm.l).apply(null,arguments)},Ta=a._emscripten_bind_PointAttribute_size_0=function(){return(Ta=a._emscripten_bind_PointAttribute_size_0=a.asm.m).apply(null,arguments)},Ua=a._emscripten_bind_PointAttribute_attribute_type_0=function(){return(Ua=a._emscripten_bind_PointAttribute_attribute_type_0=a.asm.n).apply(null,arguments)},Va=a._emscripten_bind_PointAttribute_data_type_0= -function(){return(Va=a._emscripten_bind_PointAttribute_data_type_0=a.asm.o).apply(null,arguments)},Wa=a._emscripten_bind_PointAttribute_num_components_0=function(){return(Wa=a._emscripten_bind_PointAttribute_num_components_0=a.asm.p).apply(null,arguments)},Xa=a._emscripten_bind_PointAttribute_normalized_0=function(){return(Xa=a._emscripten_bind_PointAttribute_normalized_0=a.asm.q).apply(null,arguments)},Ya=a._emscripten_bind_PointAttribute_byte_stride_0=function(){return(Ya=a._emscripten_bind_PointAttribute_byte_stride_0= -a.asm.r).apply(null,arguments)},Za=a._emscripten_bind_PointAttribute_byte_offset_0=function(){return(Za=a._emscripten_bind_PointAttribute_byte_offset_0=a.asm.s).apply(null,arguments)},$a=a._emscripten_bind_PointAttribute_unique_id_0=function(){return($a=a._emscripten_bind_PointAttribute_unique_id_0=a.asm.t).apply(null,arguments)},ab=a._emscripten_bind_PointAttribute___destroy___0=function(){return(ab=a._emscripten_bind_PointAttribute___destroy___0=a.asm.u).apply(null,arguments)},Ba=a._emscripten_bind_PointCloud_PointCloud_0= -function(){return(Ba=a._emscripten_bind_PointCloud_PointCloud_0=a.asm.v).apply(null,arguments)},bb=a._emscripten_bind_PointCloud_num_attributes_0=function(){return(bb=a._emscripten_bind_PointCloud_num_attributes_0=a.asm.w).apply(null,arguments)},cb=a._emscripten_bind_PointCloud_num_points_0=function(){return(cb=a._emscripten_bind_PointCloud_num_points_0=a.asm.x).apply(null,arguments)},db=a._emscripten_bind_PointCloud___destroy___0=function(){return(db=a._emscripten_bind_PointCloud___destroy___0=a.asm.y).apply(null, -arguments)},Ca=a._emscripten_bind_Mesh_Mesh_0=function(){return(Ca=a._emscripten_bind_Mesh_Mesh_0=a.asm.z).apply(null,arguments)},eb=a._emscripten_bind_Mesh_num_faces_0=function(){return(eb=a._emscripten_bind_Mesh_num_faces_0=a.asm.A).apply(null,arguments)},fb=a._emscripten_bind_Mesh_num_attributes_0=function(){return(fb=a._emscripten_bind_Mesh_num_attributes_0=a.asm.B).apply(null,arguments)},gb=a._emscripten_bind_Mesh_num_points_0=function(){return(gb=a._emscripten_bind_Mesh_num_points_0=a.asm.C).apply(null, -arguments)},hb=a._emscripten_bind_Mesh_set_num_points_1=function(){return(hb=a._emscripten_bind_Mesh_set_num_points_1=a.asm.D).apply(null,arguments)},ib=a._emscripten_bind_Mesh___destroy___0=function(){return(ib=a._emscripten_bind_Mesh___destroy___0=a.asm.E).apply(null,arguments)},Da=a._emscripten_bind_Metadata_Metadata_0=function(){return(Da=a._emscripten_bind_Metadata_Metadata_0=a.asm.F).apply(null,arguments)},jb=a._emscripten_bind_Metadata___destroy___0=function(){return(jb=a._emscripten_bind_Metadata___destroy___0= -a.asm.G).apply(null,arguments)},Ea=a._emscripten_bind_DracoInt8Array_DracoInt8Array_0=function(){return(Ea=a._emscripten_bind_DracoInt8Array_DracoInt8Array_0=a.asm.H).apply(null,arguments)},kb=a._emscripten_bind_DracoInt8Array_GetValue_1=function(){return(kb=a._emscripten_bind_DracoInt8Array_GetValue_1=a.asm.I).apply(null,arguments)},lb=a._emscripten_bind_DracoInt8Array_size_0=function(){return(lb=a._emscripten_bind_DracoInt8Array_size_0=a.asm.J).apply(null,arguments)},mb=a._emscripten_bind_DracoInt8Array___destroy___0= -function(){return(mb=a._emscripten_bind_DracoInt8Array___destroy___0=a.asm.K).apply(null,arguments)},Fa=a._emscripten_bind_MetadataBuilder_MetadataBuilder_0=function(){return(Fa=a._emscripten_bind_MetadataBuilder_MetadataBuilder_0=a.asm.L).apply(null,arguments)},nb=a._emscripten_bind_MetadataBuilder_AddStringEntry_3=function(){return(nb=a._emscripten_bind_MetadataBuilder_AddStringEntry_3=a.asm.M).apply(null,arguments)},ob=a._emscripten_bind_MetadataBuilder_AddIntEntry_3=function(){return(ob=a._emscripten_bind_MetadataBuilder_AddIntEntry_3= -a.asm.N).apply(null,arguments)},pb=a._emscripten_bind_MetadataBuilder_AddIntEntryArray_4=function(){return(pb=a._emscripten_bind_MetadataBuilder_AddIntEntryArray_4=a.asm.O).apply(null,arguments)},qb=a._emscripten_bind_MetadataBuilder_AddDoubleEntry_3=function(){return(qb=a._emscripten_bind_MetadataBuilder_AddDoubleEntry_3=a.asm.P).apply(null,arguments)},rb=a._emscripten_bind_MetadataBuilder___destroy___0=function(){return(rb=a._emscripten_bind_MetadataBuilder___destroy___0=a.asm.Q).apply(null,arguments)}, -Ga=a._emscripten_bind_PointCloudBuilder_PointCloudBuilder_0=function(){return(Ga=a._emscripten_bind_PointCloudBuilder_PointCloudBuilder_0=a.asm.R).apply(null,arguments)},sb=a._emscripten_bind_PointCloudBuilder_AddFloatAttribute_5=function(){return(sb=a._emscripten_bind_PointCloudBuilder_AddFloatAttribute_5=a.asm.S).apply(null,arguments)},tb=a._emscripten_bind_PointCloudBuilder_AddInt8Attribute_5=function(){return(tb=a._emscripten_bind_PointCloudBuilder_AddInt8Attribute_5=a.asm.T).apply(null,arguments)}, -ub=a._emscripten_bind_PointCloudBuilder_AddUInt8Attribute_5=function(){return(ub=a._emscripten_bind_PointCloudBuilder_AddUInt8Attribute_5=a.asm.U).apply(null,arguments)},vb=a._emscripten_bind_PointCloudBuilder_AddInt16Attribute_5=function(){return(vb=a._emscripten_bind_PointCloudBuilder_AddInt16Attribute_5=a.asm.V).apply(null,arguments)},wb=a._emscripten_bind_PointCloudBuilder_AddUInt16Attribute_5=function(){return(wb=a._emscripten_bind_PointCloudBuilder_AddUInt16Attribute_5=a.asm.W).apply(null,arguments)}, -xb=a._emscripten_bind_PointCloudBuilder_AddInt32Attribute_5=function(){return(xb=a._emscripten_bind_PointCloudBuilder_AddInt32Attribute_5=a.asm.X).apply(null,arguments)},yb=a._emscripten_bind_PointCloudBuilder_AddUInt32Attribute_5=function(){return(yb=a._emscripten_bind_PointCloudBuilder_AddUInt32Attribute_5=a.asm.Y).apply(null,arguments)},zb=a._emscripten_bind_PointCloudBuilder_AddMetadata_2=function(){return(zb=a._emscripten_bind_PointCloudBuilder_AddMetadata_2=a.asm.Z).apply(null,arguments)},Ab= -a._emscripten_bind_PointCloudBuilder_SetMetadataForAttribute_3=function(){return(Ab=a._emscripten_bind_PointCloudBuilder_SetMetadataForAttribute_3=a.asm._).apply(null,arguments)},Bb=a._emscripten_bind_PointCloudBuilder___destroy___0=function(){return(Bb=a._emscripten_bind_PointCloudBuilder___destroy___0=a.asm.$).apply(null,arguments)},Ha=a._emscripten_bind_MeshBuilder_MeshBuilder_0=function(){return(Ha=a._emscripten_bind_MeshBuilder_MeshBuilder_0=a.asm.aa).apply(null,arguments)},Cb=a._emscripten_bind_MeshBuilder_AddFacesToMesh_3= -function(){return(Cb=a._emscripten_bind_MeshBuilder_AddFacesToMesh_3=a.asm.ba).apply(null,arguments)},Db=a._emscripten_bind_MeshBuilder_AddFloatAttributeToMesh_5=function(){return(Db=a._emscripten_bind_MeshBuilder_AddFloatAttributeToMesh_5=a.asm.ca).apply(null,arguments)},Eb=a._emscripten_bind_MeshBuilder_AddInt32AttributeToMesh_5=function(){return(Eb=a._emscripten_bind_MeshBuilder_AddInt32AttributeToMesh_5=a.asm.da).apply(null,arguments)},Fb=a._emscripten_bind_MeshBuilder_AddMetadataToMesh_2=function(){return(Fb= -a._emscripten_bind_MeshBuilder_AddMetadataToMesh_2=a.asm.ea).apply(null,arguments)},Gb=a._emscripten_bind_MeshBuilder_AddFloatAttribute_5=function(){return(Gb=a._emscripten_bind_MeshBuilder_AddFloatAttribute_5=a.asm.fa).apply(null,arguments)},Hb=a._emscripten_bind_MeshBuilder_AddInt8Attribute_5=function(){return(Hb=a._emscripten_bind_MeshBuilder_AddInt8Attribute_5=a.asm.ga).apply(null,arguments)},Ib=a._emscripten_bind_MeshBuilder_AddUInt8Attribute_5=function(){return(Ib=a._emscripten_bind_MeshBuilder_AddUInt8Attribute_5= -a.asm.ha).apply(null,arguments)},Jb=a._emscripten_bind_MeshBuilder_AddInt16Attribute_5=function(){return(Jb=a._emscripten_bind_MeshBuilder_AddInt16Attribute_5=a.asm.ia).apply(null,arguments)},Kb=a._emscripten_bind_MeshBuilder_AddUInt16Attribute_5=function(){return(Kb=a._emscripten_bind_MeshBuilder_AddUInt16Attribute_5=a.asm.ja).apply(null,arguments)},Lb=a._emscripten_bind_MeshBuilder_AddInt32Attribute_5=function(){return(Lb=a._emscripten_bind_MeshBuilder_AddInt32Attribute_5=a.asm.ka).apply(null,arguments)}, -Mb=a._emscripten_bind_MeshBuilder_AddUInt32Attribute_5=function(){return(Mb=a._emscripten_bind_MeshBuilder_AddUInt32Attribute_5=a.asm.la).apply(null,arguments)},Nb=a._emscripten_bind_MeshBuilder_AddMetadata_2=function(){return(Nb=a._emscripten_bind_MeshBuilder_AddMetadata_2=a.asm.ma).apply(null,arguments)},Ob=a._emscripten_bind_MeshBuilder_SetMetadataForAttribute_3=function(){return(Ob=a._emscripten_bind_MeshBuilder_SetMetadataForAttribute_3=a.asm.na).apply(null,arguments)},Pb=a._emscripten_bind_MeshBuilder___destroy___0= -function(){return(Pb=a._emscripten_bind_MeshBuilder___destroy___0=a.asm.oa).apply(null,arguments)},Ia=a._emscripten_bind_Encoder_Encoder_0=function(){return(Ia=a._emscripten_bind_Encoder_Encoder_0=a.asm.pa).apply(null,arguments)},Qb=a._emscripten_bind_Encoder_SetEncodingMethod_1=function(){return(Qb=a._emscripten_bind_Encoder_SetEncodingMethod_1=a.asm.qa).apply(null,arguments)},Rb=a._emscripten_bind_Encoder_SetAttributeQuantization_2=function(){return(Rb=a._emscripten_bind_Encoder_SetAttributeQuantization_2= -a.asm.ra).apply(null,arguments)},Sb=a._emscripten_bind_Encoder_SetAttributeExplicitQuantization_5=function(){return(Sb=a._emscripten_bind_Encoder_SetAttributeExplicitQuantization_5=a.asm.sa).apply(null,arguments)},Tb=a._emscripten_bind_Encoder_SetSpeedOptions_2=function(){return(Tb=a._emscripten_bind_Encoder_SetSpeedOptions_2=a.asm.ta).apply(null,arguments)},Ub=a._emscripten_bind_Encoder_SetTrackEncodedProperties_1=function(){return(Ub=a._emscripten_bind_Encoder_SetTrackEncodedProperties_1=a.asm.ua).apply(null, -arguments)},Vb=a._emscripten_bind_Encoder_EncodeMeshToDracoBuffer_2=function(){return(Vb=a._emscripten_bind_Encoder_EncodeMeshToDracoBuffer_2=a.asm.va).apply(null,arguments)},Wb=a._emscripten_bind_Encoder_EncodePointCloudToDracoBuffer_3=function(){return(Wb=a._emscripten_bind_Encoder_EncodePointCloudToDracoBuffer_3=a.asm.wa).apply(null,arguments)},Xb=a._emscripten_bind_Encoder_GetNumberOfEncodedPoints_0=function(){return(Xb=a._emscripten_bind_Encoder_GetNumberOfEncodedPoints_0=a.asm.xa).apply(null, -arguments)},Yb=a._emscripten_bind_Encoder_GetNumberOfEncodedFaces_0=function(){return(Yb=a._emscripten_bind_Encoder_GetNumberOfEncodedFaces_0=a.asm.ya).apply(null,arguments)},Zb=a._emscripten_bind_Encoder___destroy___0=function(){return(Zb=a._emscripten_bind_Encoder___destroy___0=a.asm.za).apply(null,arguments)},Ja=a._emscripten_bind_ExpertEncoder_ExpertEncoder_1=function(){return(Ja=a._emscripten_bind_ExpertEncoder_ExpertEncoder_1=a.asm.Aa).apply(null,arguments)},$b=a._emscripten_bind_ExpertEncoder_SetEncodingMethod_1= -function(){return($b=a._emscripten_bind_ExpertEncoder_SetEncodingMethod_1=a.asm.Ba).apply(null,arguments)},ac=a._emscripten_bind_ExpertEncoder_SetAttributeQuantization_2=function(){return(ac=a._emscripten_bind_ExpertEncoder_SetAttributeQuantization_2=a.asm.Ca).apply(null,arguments)},bc=a._emscripten_bind_ExpertEncoder_SetAttributeExplicitQuantization_5=function(){return(bc=a._emscripten_bind_ExpertEncoder_SetAttributeExplicitQuantization_5=a.asm.Da).apply(null,arguments)},cc=a._emscripten_bind_ExpertEncoder_SetSpeedOptions_2= -function(){return(cc=a._emscripten_bind_ExpertEncoder_SetSpeedOptions_2=a.asm.Ea).apply(null,arguments)},dc=a._emscripten_bind_ExpertEncoder_SetTrackEncodedProperties_1=function(){return(dc=a._emscripten_bind_ExpertEncoder_SetTrackEncodedProperties_1=a.asm.Fa).apply(null,arguments)},ec=a._emscripten_bind_ExpertEncoder_EncodeToDracoBuffer_2=function(){return(ec=a._emscripten_bind_ExpertEncoder_EncodeToDracoBuffer_2=a.asm.Ga).apply(null,arguments)},fc=a._emscripten_bind_ExpertEncoder_GetNumberOfEncodedPoints_0= -function(){return(fc=a._emscripten_bind_ExpertEncoder_GetNumberOfEncodedPoints_0=a.asm.Ha).apply(null,arguments)},gc=a._emscripten_bind_ExpertEncoder_GetNumberOfEncodedFaces_0=function(){return(gc=a._emscripten_bind_ExpertEncoder_GetNumberOfEncodedFaces_0=a.asm.Ia).apply(null,arguments)},hc=a._emscripten_bind_ExpertEncoder___destroy___0=function(){return(hc=a._emscripten_bind_ExpertEncoder___destroy___0=a.asm.Ja).apply(null,arguments)},ic=a._emscripten_enum_draco_GeometryAttribute_Type_INVALID=function(){return(ic= -a._emscripten_enum_draco_GeometryAttribute_Type_INVALID=a.asm.Ka).apply(null,arguments)},jc=a._emscripten_enum_draco_GeometryAttribute_Type_POSITION=function(){return(jc=a._emscripten_enum_draco_GeometryAttribute_Type_POSITION=a.asm.La).apply(null,arguments)},kc=a._emscripten_enum_draco_GeometryAttribute_Type_NORMAL=function(){return(kc=a._emscripten_enum_draco_GeometryAttribute_Type_NORMAL=a.asm.Ma).apply(null,arguments)},lc=a._emscripten_enum_draco_GeometryAttribute_Type_COLOR=function(){return(lc= -a._emscripten_enum_draco_GeometryAttribute_Type_COLOR=a.asm.Na).apply(null,arguments)},mc=a._emscripten_enum_draco_GeometryAttribute_Type_TEX_COORD=function(){return(mc=a._emscripten_enum_draco_GeometryAttribute_Type_TEX_COORD=a.asm.Oa).apply(null,arguments)},nc=a._emscripten_enum_draco_GeometryAttribute_Type_GENERIC=function(){return(nc=a._emscripten_enum_draco_GeometryAttribute_Type_GENERIC=a.asm.Pa).apply(null,arguments)},oc=a._emscripten_enum_draco_EncodedGeometryType_INVALID_GEOMETRY_TYPE=function(){return(oc= -a._emscripten_enum_draco_EncodedGeometryType_INVALID_GEOMETRY_TYPE=a.asm.Qa).apply(null,arguments)},pc=a._emscripten_enum_draco_EncodedGeometryType_POINT_CLOUD=function(){return(pc=a._emscripten_enum_draco_EncodedGeometryType_POINT_CLOUD=a.asm.Ra).apply(null,arguments)},qc=a._emscripten_enum_draco_EncodedGeometryType_TRIANGULAR_MESH=function(){return(qc=a._emscripten_enum_draco_EncodedGeometryType_TRIANGULAR_MESH=a.asm.Sa).apply(null,arguments)},rc=a._emscripten_enum_draco_MeshEncoderMethod_MESH_SEQUENTIAL_ENCODING= -function(){return(rc=a._emscripten_enum_draco_MeshEncoderMethod_MESH_SEQUENTIAL_ENCODING=a.asm.Ta).apply(null,arguments)},sc=a._emscripten_enum_draco_MeshEncoderMethod_MESH_EDGEBREAKER_ENCODING=function(){return(sc=a._emscripten_enum_draco_MeshEncoderMethod_MESH_EDGEBREAKER_ENCODING=a.asm.Ua).apply(null,arguments)},Qa=a._malloc=function(){return(Qa=a._malloc=a.asm.Va).apply(null,arguments)};a._free=function(){return(a._free=a.asm.Wa).apply(null,arguments)};var ua=a.___cxa_is_pointer_type=function(){return(ua= -a.___cxa_is_pointer_type=a.asm.Xa).apply(null,arguments)},ca;aa=function b(){ca||G();ca||(aa=b)};a.run=G;if(a.preInit)for("function"==typeof a.preInit&&(a.preInit=[a.preInit]);0=n.size?(0>>=0;switch(c.BYTES_PER_ELEMENT){case 2:d>>>=1;break;case 4:d>>>=2;break;case 8:d>>>=3}for(var e=0;e>2]=b};this.get_type=function(){return T[this.ptr+4>>2]};this.set_destructor=function(b){T[this.ptr+8>>2]=b};this.get_destructor=function(){return T[this.ptr+8>>2]};this.set_refcount= +function(b){S[this.ptr>>2]=b};this.set_caught=function(b){O[this.ptr+12>>0]=b?1:0};this.get_caught=function(){return 0!=O[this.ptr+12>>0]};this.set_rethrown=function(b){O[this.ptr+13>>0]=b?1:0};this.get_rethrown=function(){return 0!=O[this.ptr+13>>0]};this.init=function(b,c){this.set_adjusted_ptr(0);this.set_type(b);this.set_destructor(c);this.set_refcount(0);this.set_caught(!1);this.set_rethrown(!1)};this.add_ref=function(){S[this.ptr>>2]+=1};this.release_ref=function(){var b=S[this.ptr>>2];S[this.ptr>> +2]=b-1;return 1===b};this.set_adjusted_ptr=function(b){T[this.ptr+16>>2]=b};this.get_adjusted_ptr=function(){return T[this.ptr+16>>2]};this.get_exception_ptr=function(){if(pa(this.get_type()))return T[this.excPtr>>2];var b=this.get_adjusted_ptr();return 0!==b?b:this.excPtr}}function B(f){function b(){if(!ca&&(ca=!0,a.calledRun=!0,!na)){qa=!0;q(ka);ra(a);if(a.onRuntimeInitialized)a.onRuntimeInitialized();if(a.postRun)for("function"==typeof a.postRun&&(a.postRun=[a.postRun]);a.postRun.length;)sa.unshift(a.postRun.shift()); +q(sa)}}if(!(0=d?b++:2047>=d?b+=2:55296<=d&&57343>=d?(b+=4,++c):b+=3}b=Array(b+1);c=0;d=b.length;if(0=g){var t=f.charCodeAt(++e);g=65536+((g&1023)<<10)|t&1023}if(127>=g){if(c>=d)break;b[c++]=g}else{if(2047>=g){if(c+1>=d)break;b[c++]=192|g>>6}else{if(65535>=g){if(c+2>=d)break;b[c++]=224|g>>12}else{if(c+3>=d)break;b[c++]=240|g>>18;b[c++]=128|g>>12&63}b[c++]=128|g>>6&63}b[c++]=128|g&63}}b[c]=0}f=n.alloc(b,O);n.copy(b,O,f);return f}return f} +function Q(f){if("object"===typeof f){var b=n.alloc(f,O);n.copy(f,O,b);return b}return f}function R(f){if("object"===typeof f){var b=n.alloc(f,ea);n.copy(f,ea,b);return b}return f}function V(f){if("object"===typeof f){var b=n.alloc(f,S);n.copy(f,S,b);return b}return f}function Z(f){if("object"===typeof f){var b=n.alloc(f,ha);n.copy(f,ha,b);return b}return f}function P(){throw"cannot construct a VoidPtr, no constructor in IDL";}function M(){this.ptr=ua();D(M)[this.ptr]=this}function z(){this.ptr=va(); +D(z)[this.ptr]=this}function G(){this.ptr=wa();D(G)[this.ptr]=this}function E(){this.ptr=xa();D(E)[this.ptr]=this}function N(){this.ptr=ya();D(N)[this.ptr]=this}function H(){this.ptr=za();D(H)[this.ptr]=this}function F(){this.ptr=Aa();D(F)[this.ptr]=this}function x(){this.ptr=Ba();D(x)[this.ptr]=this}function u(){this.ptr=Ca();D(u)[this.ptr]=this}function y(){this.ptr=Da();D(y)[this.ptr]=this}function A(f){f&&"object"===typeof f&&(f=f.ptr);this.ptr=Ea(f);D(A)[this.ptr]=this}p=p||{};var a="undefined"!= +typeof p?p:{},ra,ba;a.ready=new Promise(function(f,b){ra=f;ba=b});var Fa=!1,Ga=!1;a.onRuntimeInitialized=function(){Fa=!0;if(Ga&&"function"===typeof a.onModuleLoaded)a.onModuleLoaded(a)};a.onModuleParsed=function(){Ga=!0;if(Fa&&"function"===typeof a.onModuleLoaded)a.onModuleLoaded(a)};a.isVersionSupported=function(f){if("string"!==typeof f)return!1;f=f.split(".");return 2>f.length||3=f[1]?!0:0!=f[0]||10>>=0;if(2147483648=c;c*=2){var d=b*(1+.2/c);d=Math.min(d,f+100663296);var e=Math;d=Math.max(f,d);e=e.min.call(e,2147483648, +d+(65536-d%65536)%65536);a:{try{da.grow(e-ma.byteLength+65535>>>16);r(da.buffer);var g=1;break a}catch(t){}g=void 0}if(g)return!0}return!1}};(function(){function f(e,g){a.asm=e.exports;da=a.asm.f;r(da.buffer);ka.unshift(a.asm.g);U--;a.monitorRunDependencies&&a.monitorRunDependencies(U);0==U&&(null!==la&&(clearInterval(la),la=null),aa&&(e=aa,aa=null,e()))}function b(e){f(e.instance)}function c(e){return h().then(function(g){return WebAssembly.instantiate(g,d)}).then(function(g){return g}).then(e,function(g){W("failed to asynchronously prepare wasm: "+ +g);k(g)})}var d={a:qc};U++;a.monitorRunDependencies&&a.monitorRunDependencies(U);if(a.instantiateWasm)try{return a.instantiateWasm(d,f)}catch(e){W("Module.instantiateWasm callback failed with error: "+e),ba(e)}(function(){return X||"function"!=typeof WebAssembly.instantiateStreaming||K.startsWith("data:application/octet-stream;base64,")||K.startsWith("file://")||Ia||"function"!=typeof fetch?c(b):fetch(K,{credentials:"same-origin"}).then(function(e){return WebAssembly.instantiateStreaming(e,d).then(b, +function(g){W("wasm streaming compile failed: "+g);W("falling back to ArrayBuffer instantiation");return c(b)})})})().catch(ba);return{}})();a.___wasm_call_ctors=function(){return(a.___wasm_call_ctors=a.asm.g).apply(null,arguments)};var Na=a._emscripten_bind_VoidPtr___destroy___0=function(){return(Na=a._emscripten_bind_VoidPtr___destroy___0=a.asm.i).apply(null,arguments)},ua=a._emscripten_bind_GeometryAttribute_GeometryAttribute_0=function(){return(ua=a._emscripten_bind_GeometryAttribute_GeometryAttribute_0= +a.asm.j).apply(null,arguments)},Oa=a._emscripten_bind_GeometryAttribute___destroy___0=function(){return(Oa=a._emscripten_bind_GeometryAttribute___destroy___0=a.asm.k).apply(null,arguments)},va=a._emscripten_bind_PointAttribute_PointAttribute_0=function(){return(va=a._emscripten_bind_PointAttribute_PointAttribute_0=a.asm.l).apply(null,arguments)},Pa=a._emscripten_bind_PointAttribute_size_0=function(){return(Pa=a._emscripten_bind_PointAttribute_size_0=a.asm.m).apply(null,arguments)},Qa=a._emscripten_bind_PointAttribute_attribute_type_0= +function(){return(Qa=a._emscripten_bind_PointAttribute_attribute_type_0=a.asm.n).apply(null,arguments)},Ra=a._emscripten_bind_PointAttribute_data_type_0=function(){return(Ra=a._emscripten_bind_PointAttribute_data_type_0=a.asm.o).apply(null,arguments)},Sa=a._emscripten_bind_PointAttribute_num_components_0=function(){return(Sa=a._emscripten_bind_PointAttribute_num_components_0=a.asm.p).apply(null,arguments)},Ta=a._emscripten_bind_PointAttribute_normalized_0=function(){return(Ta=a._emscripten_bind_PointAttribute_normalized_0= +a.asm.q).apply(null,arguments)},Ua=a._emscripten_bind_PointAttribute_byte_stride_0=function(){return(Ua=a._emscripten_bind_PointAttribute_byte_stride_0=a.asm.r).apply(null,arguments)},Va=a._emscripten_bind_PointAttribute_byte_offset_0=function(){return(Va=a._emscripten_bind_PointAttribute_byte_offset_0=a.asm.s).apply(null,arguments)},Wa=a._emscripten_bind_PointAttribute_unique_id_0=function(){return(Wa=a._emscripten_bind_PointAttribute_unique_id_0=a.asm.t).apply(null,arguments)},Xa=a._emscripten_bind_PointAttribute___destroy___0= +function(){return(Xa=a._emscripten_bind_PointAttribute___destroy___0=a.asm.u).apply(null,arguments)},wa=a._emscripten_bind_PointCloud_PointCloud_0=function(){return(wa=a._emscripten_bind_PointCloud_PointCloud_0=a.asm.v).apply(null,arguments)},Ya=a._emscripten_bind_PointCloud_num_attributes_0=function(){return(Ya=a._emscripten_bind_PointCloud_num_attributes_0=a.asm.w).apply(null,arguments)},Za=a._emscripten_bind_PointCloud_num_points_0=function(){return(Za=a._emscripten_bind_PointCloud_num_points_0= +a.asm.x).apply(null,arguments)},$a=a._emscripten_bind_PointCloud___destroy___0=function(){return($a=a._emscripten_bind_PointCloud___destroy___0=a.asm.y).apply(null,arguments)},xa=a._emscripten_bind_Mesh_Mesh_0=function(){return(xa=a._emscripten_bind_Mesh_Mesh_0=a.asm.z).apply(null,arguments)},ab=a._emscripten_bind_Mesh_num_faces_0=function(){return(ab=a._emscripten_bind_Mesh_num_faces_0=a.asm.A).apply(null,arguments)},bb=a._emscripten_bind_Mesh_num_attributes_0=function(){return(bb=a._emscripten_bind_Mesh_num_attributes_0= +a.asm.B).apply(null,arguments)},cb=a._emscripten_bind_Mesh_num_points_0=function(){return(cb=a._emscripten_bind_Mesh_num_points_0=a.asm.C).apply(null,arguments)},db=a._emscripten_bind_Mesh_set_num_points_1=function(){return(db=a._emscripten_bind_Mesh_set_num_points_1=a.asm.D).apply(null,arguments)},eb=a._emscripten_bind_Mesh___destroy___0=function(){return(eb=a._emscripten_bind_Mesh___destroy___0=a.asm.E).apply(null,arguments)},ya=a._emscripten_bind_Metadata_Metadata_0=function(){return(ya=a._emscripten_bind_Metadata_Metadata_0= +a.asm.F).apply(null,arguments)},fb=a._emscripten_bind_Metadata___destroy___0=function(){return(fb=a._emscripten_bind_Metadata___destroy___0=a.asm.G).apply(null,arguments)},za=a._emscripten_bind_DracoInt8Array_DracoInt8Array_0=function(){return(za=a._emscripten_bind_DracoInt8Array_DracoInt8Array_0=a.asm.H).apply(null,arguments)},gb=a._emscripten_bind_DracoInt8Array_GetValue_1=function(){return(gb=a._emscripten_bind_DracoInt8Array_GetValue_1=a.asm.I).apply(null,arguments)},hb=a._emscripten_bind_DracoInt8Array_size_0= +function(){return(hb=a._emscripten_bind_DracoInt8Array_size_0=a.asm.J).apply(null,arguments)},ib=a._emscripten_bind_DracoInt8Array___destroy___0=function(){return(ib=a._emscripten_bind_DracoInt8Array___destroy___0=a.asm.K).apply(null,arguments)},Aa=a._emscripten_bind_MetadataBuilder_MetadataBuilder_0=function(){return(Aa=a._emscripten_bind_MetadataBuilder_MetadataBuilder_0=a.asm.L).apply(null,arguments)},jb=a._emscripten_bind_MetadataBuilder_AddStringEntry_3=function(){return(jb=a._emscripten_bind_MetadataBuilder_AddStringEntry_3= +a.asm.M).apply(null,arguments)},kb=a._emscripten_bind_MetadataBuilder_AddIntEntry_3=function(){return(kb=a._emscripten_bind_MetadataBuilder_AddIntEntry_3=a.asm.N).apply(null,arguments)},lb=a._emscripten_bind_MetadataBuilder_AddIntEntryArray_4=function(){return(lb=a._emscripten_bind_MetadataBuilder_AddIntEntryArray_4=a.asm.O).apply(null,arguments)},mb=a._emscripten_bind_MetadataBuilder_AddDoubleEntry_3=function(){return(mb=a._emscripten_bind_MetadataBuilder_AddDoubleEntry_3=a.asm.P).apply(null,arguments)}, +nb=a._emscripten_bind_MetadataBuilder___destroy___0=function(){return(nb=a._emscripten_bind_MetadataBuilder___destroy___0=a.asm.Q).apply(null,arguments)},Ba=a._emscripten_bind_PointCloudBuilder_PointCloudBuilder_0=function(){return(Ba=a._emscripten_bind_PointCloudBuilder_PointCloudBuilder_0=a.asm.R).apply(null,arguments)},ob=a._emscripten_bind_PointCloudBuilder_AddFloatAttribute_5=function(){return(ob=a._emscripten_bind_PointCloudBuilder_AddFloatAttribute_5=a.asm.S).apply(null,arguments)},pb=a._emscripten_bind_PointCloudBuilder_AddInt8Attribute_5= +function(){return(pb=a._emscripten_bind_PointCloudBuilder_AddInt8Attribute_5=a.asm.T).apply(null,arguments)},qb=a._emscripten_bind_PointCloudBuilder_AddUInt8Attribute_5=function(){return(qb=a._emscripten_bind_PointCloudBuilder_AddUInt8Attribute_5=a.asm.U).apply(null,arguments)},rb=a._emscripten_bind_PointCloudBuilder_AddInt16Attribute_5=function(){return(rb=a._emscripten_bind_PointCloudBuilder_AddInt16Attribute_5=a.asm.V).apply(null,arguments)},sb=a._emscripten_bind_PointCloudBuilder_AddUInt16Attribute_5= +function(){return(sb=a._emscripten_bind_PointCloudBuilder_AddUInt16Attribute_5=a.asm.W).apply(null,arguments)},tb=a._emscripten_bind_PointCloudBuilder_AddInt32Attribute_5=function(){return(tb=a._emscripten_bind_PointCloudBuilder_AddInt32Attribute_5=a.asm.X).apply(null,arguments)},ub=a._emscripten_bind_PointCloudBuilder_AddUInt32Attribute_5=function(){return(ub=a._emscripten_bind_PointCloudBuilder_AddUInt32Attribute_5=a.asm.Y).apply(null,arguments)},vb=a._emscripten_bind_PointCloudBuilder_AddMetadata_2= +function(){return(vb=a._emscripten_bind_PointCloudBuilder_AddMetadata_2=a.asm.Z).apply(null,arguments)},wb=a._emscripten_bind_PointCloudBuilder_SetMetadataForAttribute_3=function(){return(wb=a._emscripten_bind_PointCloudBuilder_SetMetadataForAttribute_3=a.asm._).apply(null,arguments)},xb=a._emscripten_bind_PointCloudBuilder___destroy___0=function(){return(xb=a._emscripten_bind_PointCloudBuilder___destroy___0=a.asm.$).apply(null,arguments)},Ca=a._emscripten_bind_MeshBuilder_MeshBuilder_0=function(){return(Ca= +a._emscripten_bind_MeshBuilder_MeshBuilder_0=a.asm.aa).apply(null,arguments)},yb=a._emscripten_bind_MeshBuilder_AddFacesToMesh_3=function(){return(yb=a._emscripten_bind_MeshBuilder_AddFacesToMesh_3=a.asm.ba).apply(null,arguments)},zb=a._emscripten_bind_MeshBuilder_AddFloatAttributeToMesh_5=function(){return(zb=a._emscripten_bind_MeshBuilder_AddFloatAttributeToMesh_5=a.asm.ca).apply(null,arguments)},Ab=a._emscripten_bind_MeshBuilder_AddInt32AttributeToMesh_5=function(){return(Ab=a._emscripten_bind_MeshBuilder_AddInt32AttributeToMesh_5= +a.asm.da).apply(null,arguments)},Bb=a._emscripten_bind_MeshBuilder_AddMetadataToMesh_2=function(){return(Bb=a._emscripten_bind_MeshBuilder_AddMetadataToMesh_2=a.asm.ea).apply(null,arguments)},Cb=a._emscripten_bind_MeshBuilder_AddFloatAttribute_5=function(){return(Cb=a._emscripten_bind_MeshBuilder_AddFloatAttribute_5=a.asm.fa).apply(null,arguments)},Db=a._emscripten_bind_MeshBuilder_AddInt8Attribute_5=function(){return(Db=a._emscripten_bind_MeshBuilder_AddInt8Attribute_5=a.asm.ga).apply(null,arguments)}, +Eb=a._emscripten_bind_MeshBuilder_AddUInt8Attribute_5=function(){return(Eb=a._emscripten_bind_MeshBuilder_AddUInt8Attribute_5=a.asm.ha).apply(null,arguments)},Fb=a._emscripten_bind_MeshBuilder_AddInt16Attribute_5=function(){return(Fb=a._emscripten_bind_MeshBuilder_AddInt16Attribute_5=a.asm.ia).apply(null,arguments)},Gb=a._emscripten_bind_MeshBuilder_AddUInt16Attribute_5=function(){return(Gb=a._emscripten_bind_MeshBuilder_AddUInt16Attribute_5=a.asm.ja).apply(null,arguments)},Hb=a._emscripten_bind_MeshBuilder_AddInt32Attribute_5= +function(){return(Hb=a._emscripten_bind_MeshBuilder_AddInt32Attribute_5=a.asm.ka).apply(null,arguments)},Ib=a._emscripten_bind_MeshBuilder_AddUInt32Attribute_5=function(){return(Ib=a._emscripten_bind_MeshBuilder_AddUInt32Attribute_5=a.asm.la).apply(null,arguments)},Jb=a._emscripten_bind_MeshBuilder_AddMetadata_2=function(){return(Jb=a._emscripten_bind_MeshBuilder_AddMetadata_2=a.asm.ma).apply(null,arguments)},Kb=a._emscripten_bind_MeshBuilder_SetMetadataForAttribute_3=function(){return(Kb=a._emscripten_bind_MeshBuilder_SetMetadataForAttribute_3= +a.asm.na).apply(null,arguments)},Lb=a._emscripten_bind_MeshBuilder___destroy___0=function(){return(Lb=a._emscripten_bind_MeshBuilder___destroy___0=a.asm.oa).apply(null,arguments)},Da=a._emscripten_bind_Encoder_Encoder_0=function(){return(Da=a._emscripten_bind_Encoder_Encoder_0=a.asm.pa).apply(null,arguments)},Mb=a._emscripten_bind_Encoder_SetEncodingMethod_1=function(){return(Mb=a._emscripten_bind_Encoder_SetEncodingMethod_1=a.asm.qa).apply(null,arguments)},Nb=a._emscripten_bind_Encoder_SetAttributeQuantization_2= +function(){return(Nb=a._emscripten_bind_Encoder_SetAttributeQuantization_2=a.asm.ra).apply(null,arguments)},Ob=a._emscripten_bind_Encoder_SetAttributeExplicitQuantization_5=function(){return(Ob=a._emscripten_bind_Encoder_SetAttributeExplicitQuantization_5=a.asm.sa).apply(null,arguments)},Pb=a._emscripten_bind_Encoder_SetSpeedOptions_2=function(){return(Pb=a._emscripten_bind_Encoder_SetSpeedOptions_2=a.asm.ta).apply(null,arguments)},Qb=a._emscripten_bind_Encoder_SetTrackEncodedProperties_1=function(){return(Qb= +a._emscripten_bind_Encoder_SetTrackEncodedProperties_1=a.asm.ua).apply(null,arguments)},Rb=a._emscripten_bind_Encoder_EncodeMeshToDracoBuffer_2=function(){return(Rb=a._emscripten_bind_Encoder_EncodeMeshToDracoBuffer_2=a.asm.va).apply(null,arguments)},Sb=a._emscripten_bind_Encoder_EncodePointCloudToDracoBuffer_3=function(){return(Sb=a._emscripten_bind_Encoder_EncodePointCloudToDracoBuffer_3=a.asm.wa).apply(null,arguments)},Tb=a._emscripten_bind_Encoder_GetNumberOfEncodedPoints_0=function(){return(Tb= +a._emscripten_bind_Encoder_GetNumberOfEncodedPoints_0=a.asm.xa).apply(null,arguments)},Ub=a._emscripten_bind_Encoder_GetNumberOfEncodedFaces_0=function(){return(Ub=a._emscripten_bind_Encoder_GetNumberOfEncodedFaces_0=a.asm.ya).apply(null,arguments)},Vb=a._emscripten_bind_Encoder___destroy___0=function(){return(Vb=a._emscripten_bind_Encoder___destroy___0=a.asm.za).apply(null,arguments)},Ea=a._emscripten_bind_ExpertEncoder_ExpertEncoder_1=function(){return(Ea=a._emscripten_bind_ExpertEncoder_ExpertEncoder_1= +a.asm.Aa).apply(null,arguments)},Wb=a._emscripten_bind_ExpertEncoder_SetEncodingMethod_1=function(){return(Wb=a._emscripten_bind_ExpertEncoder_SetEncodingMethod_1=a.asm.Ba).apply(null,arguments)},Xb=a._emscripten_bind_ExpertEncoder_SetAttributeQuantization_2=function(){return(Xb=a._emscripten_bind_ExpertEncoder_SetAttributeQuantization_2=a.asm.Ca).apply(null,arguments)},Yb=a._emscripten_bind_ExpertEncoder_SetAttributeExplicitQuantization_5=function(){return(Yb=a._emscripten_bind_ExpertEncoder_SetAttributeExplicitQuantization_5= +a.asm.Da).apply(null,arguments)},Zb=a._emscripten_bind_ExpertEncoder_SetSpeedOptions_2=function(){return(Zb=a._emscripten_bind_ExpertEncoder_SetSpeedOptions_2=a.asm.Ea).apply(null,arguments)},$b=a._emscripten_bind_ExpertEncoder_SetTrackEncodedProperties_1=function(){return($b=a._emscripten_bind_ExpertEncoder_SetTrackEncodedProperties_1=a.asm.Fa).apply(null,arguments)},ac=a._emscripten_bind_ExpertEncoder_EncodeToDracoBuffer_2=function(){return(ac=a._emscripten_bind_ExpertEncoder_EncodeToDracoBuffer_2= +a.asm.Ga).apply(null,arguments)},bc=a._emscripten_bind_ExpertEncoder_GetNumberOfEncodedPoints_0=function(){return(bc=a._emscripten_bind_ExpertEncoder_GetNumberOfEncodedPoints_0=a.asm.Ha).apply(null,arguments)},cc=a._emscripten_bind_ExpertEncoder_GetNumberOfEncodedFaces_0=function(){return(cc=a._emscripten_bind_ExpertEncoder_GetNumberOfEncodedFaces_0=a.asm.Ia).apply(null,arguments)},dc=a._emscripten_bind_ExpertEncoder___destroy___0=function(){return(dc=a._emscripten_bind_ExpertEncoder___destroy___0= +a.asm.Ja).apply(null,arguments)},ec=a._emscripten_enum_draco_GeometryAttribute_Type_INVALID=function(){return(ec=a._emscripten_enum_draco_GeometryAttribute_Type_INVALID=a.asm.Ka).apply(null,arguments)},fc=a._emscripten_enum_draco_GeometryAttribute_Type_POSITION=function(){return(fc=a._emscripten_enum_draco_GeometryAttribute_Type_POSITION=a.asm.La).apply(null,arguments)},gc=a._emscripten_enum_draco_GeometryAttribute_Type_NORMAL=function(){return(gc=a._emscripten_enum_draco_GeometryAttribute_Type_NORMAL= +a.asm.Ma).apply(null,arguments)},hc=a._emscripten_enum_draco_GeometryAttribute_Type_COLOR=function(){return(hc=a._emscripten_enum_draco_GeometryAttribute_Type_COLOR=a.asm.Na).apply(null,arguments)},ic=a._emscripten_enum_draco_GeometryAttribute_Type_TEX_COORD=function(){return(ic=a._emscripten_enum_draco_GeometryAttribute_Type_TEX_COORD=a.asm.Oa).apply(null,arguments)},jc=a._emscripten_enum_draco_GeometryAttribute_Type_GENERIC=function(){return(jc=a._emscripten_enum_draco_GeometryAttribute_Type_GENERIC= +a.asm.Pa).apply(null,arguments)},kc=a._emscripten_enum_draco_EncodedGeometryType_INVALID_GEOMETRY_TYPE=function(){return(kc=a._emscripten_enum_draco_EncodedGeometryType_INVALID_GEOMETRY_TYPE=a.asm.Qa).apply(null,arguments)},lc=a._emscripten_enum_draco_EncodedGeometryType_POINT_CLOUD=function(){return(lc=a._emscripten_enum_draco_EncodedGeometryType_POINT_CLOUD=a.asm.Ra).apply(null,arguments)},mc=a._emscripten_enum_draco_EncodedGeometryType_TRIANGULAR_MESH=function(){return(mc=a._emscripten_enum_draco_EncodedGeometryType_TRIANGULAR_MESH= +a.asm.Sa).apply(null,arguments)},nc=a._emscripten_enum_draco_MeshEncoderMethod_MESH_SEQUENTIAL_ENCODING=function(){return(nc=a._emscripten_enum_draco_MeshEncoderMethod_MESH_SEQUENTIAL_ENCODING=a.asm.Ta).apply(null,arguments)},oc=a._emscripten_enum_draco_MeshEncoderMethod_MESH_EDGEBREAKER_ENCODING=function(){return(oc=a._emscripten_enum_draco_MeshEncoderMethod_MESH_EDGEBREAKER_ENCODING=a.asm.Ua).apply(null,arguments)},Ma=a._malloc=function(){return(Ma=a._malloc=a.asm.Va).apply(null,arguments)};a._free= +function(){return(a._free=a.asm.Wa).apply(null,arguments)};var pa=a.___cxa_is_pointer_type=function(){return(pa=a.___cxa_is_pointer_type=a.asm.Xa).apply(null,arguments)};a.___start_em_js=19116;a.___stop_em_js=19214;var ca;aa=function b(){ca||B();ca||(aa=b)};if(a.preInit)for("function"==typeof a.preInit&&(a.preInit=[a.preInit]);0=n.size?(0>>=0;switch(c.BYTES_PER_ELEMENT){case 2:d>>>=1;break;case 4:d>>>=2;break;case 8:d>>>=3}for(var e=0;e=A}},"es6","es3"); $jscomp.polyfill("Array.prototype.copyWithin",function(k){function n(l){l=Number(l);return Infinity===l||-Infinity===l?l:l|0}return k?k:function(l,p,h){var A=this.length;l=n(l);p=n(p);h=void 0===h?A:n(h);l=0>l?Math.max(A+l,0):Math.min(l,A);p=0>p?Math.max(A+p,0):Math.min(p,A);h=0>h?Math.max(A+h,0):Math.min(h,A);if(lp;)--h in this?this[--l]=this[h]:delete this[--l];return this}},"es6","es3"); $jscomp.typedArrayCopyWithin=function(k){return k?k:Array.prototype.copyWithin};$jscomp.polyfill("Int8Array.prototype.copyWithin",$jscomp.typedArrayCopyWithin,"es6","es5");$jscomp.polyfill("Uint8Array.prototype.copyWithin",$jscomp.typedArrayCopyWithin,"es6","es5");$jscomp.polyfill("Uint8ClampedArray.prototype.copyWithin",$jscomp.typedArrayCopyWithin,"es6","es5");$jscomp.polyfill("Int16Array.prototype.copyWithin",$jscomp.typedArrayCopyWithin,"es6","es5"); $jscomp.polyfill("Uint16Array.prototype.copyWithin",$jscomp.typedArrayCopyWithin,"es6","es5");$jscomp.polyfill("Int32Array.prototype.copyWithin",$jscomp.typedArrayCopyWithin,"es6","es5");$jscomp.polyfill("Uint32Array.prototype.copyWithin",$jscomp.typedArrayCopyWithin,"es6","es5");$jscomp.polyfill("Float32Array.prototype.copyWithin",$jscomp.typedArrayCopyWithin,"es6","es5");$jscomp.polyfill("Float64Array.prototype.copyWithin",$jscomp.typedArrayCopyWithin,"es6","es5"); -var DracoDecoderModule=function(){var k="undefined"!==typeof document&&document.currentScript?document.currentScript.src:void 0;"undefined"!==typeof __filename&&(k=k||__filename);return function(n){function l(e){return a.locateFile?a.locateFile(e,U):U+e}function p(e,b,c){var d=b+c;for(c=b;e[c]&&!(c>=d);)++c;if(16g?d+=String.fromCharCode(g):(g-=65536,d+=String.fromCharCode(55296|g>>10,56320|g&1023))}}else d+=String.fromCharCode(g)}return d}function h(e,b){return e?p(fa,e,b):""}function A(e){za=e;a.HEAP8=Y=new Int8Array(e);a.HEAP16=new Int16Array(e);a.HEAP32=ca=new Int32Array(e);a.HEAPU8=fa=new Uint8Array(e);a.HEAPU16=new Uint16Array(e);a.HEAPU32=V=new Uint32Array(e);a.HEAPF32=new Float32Array(e);a.HEAPF64=new Float64Array(e)}function f(e){if(a.onAbort)a.onAbort(e); -e="Aborted("+e+")";da(e);Aa=!0;e=new WebAssembly.RuntimeError(e+". Build with -sASSERTIONS for more info.");oa(e);throw e;}function q(e){try{if(e==Q&&ha)return new Uint8Array(ha);if(pa)return pa(e);throw"both async and sync fetching of the wasm failed";}catch(b){f(b)}}function v(){if(!ha&&(Ba||ia)){if("function"==typeof fetch&&!Q.startsWith("file://"))return fetch(Q,{credentials:"same-origin"}).then(function(e){if(!e.ok)throw"failed to load wasm binary file at '"+Q+"'";return e.arrayBuffer()}).catch(function(){return q(Q)}); -if(qa)return new Promise(function(e,b){qa(Q,function(c){e(new Uint8Array(c))},b)})}return Promise.resolve().then(function(){return q(Q)})}function z(e){for(;0=ka.length&&(ka.length=e+1),ka[e]=b=Ca.get(e));return b}function ea(e){this.excPtr=e;this.ptr=e-24;this.set_type=function(b){V[this.ptr+4>>2]=b};this.get_type= -function(){return V[this.ptr+4>>2]};this.set_destructor=function(b){V[this.ptr+8>>2]=b};this.get_destructor=function(){return V[this.ptr+8>>2]};this.set_refcount=function(b){ca[this.ptr>>2]=b};this.set_caught=function(b){Y[this.ptr+12>>0]=b?1:0};this.get_caught=function(){return 0!=Y[this.ptr+12>>0]};this.set_rethrown=function(b){Y[this.ptr+13>>0]=b?1:0};this.get_rethrown=function(){return 0!=Y[this.ptr+13>>0]};this.init=function(b,c){this.set_adjusted_ptr(0);this.set_type(b);this.set_destructor(c); -this.set_refcount(0);this.set_caught(!1);this.set_rethrown(!1)};this.add_ref=function(){ca[this.ptr>>2]+=1};this.release_ref=function(){var b=ca[this.ptr>>2];ca[this.ptr>>2]=b-1;return 1===b};this.set_adjusted_ptr=function(b){V[this.ptr+16>>2]=b};this.get_adjusted_ptr=function(){return V[this.ptr+16>>2]};this.get_exception_ptr=function(){if(Da(this.get_type()))return V[this.excPtr>>2];var b=this.get_adjusted_ptr();return 0!==b?b:this.excPtr}}function P(e){function b(){if(!la&&(la=!0,a.calledRun=!0, -!Aa)){Ea=!0;z(ra);Fa(a);if(a.onRuntimeInitialized)a.onRuntimeInitialized();if(a.postRun)for("function"==typeof a.postRun&&(a.postRun=[a.postRun]);a.postRun.length;)Ga.unshift(a.postRun.shift());z(Ga)}}if(!(0=d&&(d=65536+((d&1023)<<10)|e.charCodeAt(++c)&1023);127>=d?++b:b=2047>=d?b+2:65535>=d?b+3:b+4}b=Array(b+1);c=0;d=b.length;if(0=t){var X=e.charCodeAt(++g);t=65536+((t&1023)<<10)|X&1023}if(127>=t){if(c>=d)break; -b[c++]=t}else{if(2047>=t){if(c+1>=d)break;b[c++]=192|t>>6}else{if(65535>=t){if(c+2>=d)break;b[c++]=224|t>>12}else{if(c+3>=d)break;b[c++]=240|t>>18;b[c++]=128|t>>12&63}b[c++]=128|t>>6&63}b[c++]=128|t&63}}b[c]=0}e=r.alloc(b,Y);r.copy(b,Y,e);return e}return e}function sa(e){if("object"===typeof e){var b=r.alloc(e,Y);r.copy(e,Y,b);return b}return e}function Z(){throw"cannot construct a VoidPtr, no constructor in IDL";}function S(){this.ptr=Ia();x(S)[this.ptr]=this}function R(){this.ptr=Ja();x(R)[this.ptr]= -this}function W(){this.ptr=Ka();x(W)[this.ptr]=this}function w(){this.ptr=La();x(w)[this.ptr]=this}function C(){this.ptr=Ma();x(C)[this.ptr]=this}function G(){this.ptr=Na();x(G)[this.ptr]=this}function H(){this.ptr=Oa();x(H)[this.ptr]=this}function E(){this.ptr=Pa();x(E)[this.ptr]=this}function T(){this.ptr=Qa();x(T)[this.ptr]=this}function B(){throw"cannot construct a Status, no constructor in IDL";}function I(){this.ptr=Ra();x(I)[this.ptr]=this}function J(){this.ptr=Sa();x(J)[this.ptr]=this}function K(){this.ptr= -Ta();x(K)[this.ptr]=this}function L(){this.ptr=Ua();x(L)[this.ptr]=this}function M(){this.ptr=Va();x(M)[this.ptr]=this}function N(){this.ptr=Wa();x(N)[this.ptr]=this}function O(){this.ptr=Xa();x(O)[this.ptr]=this}function y(){this.ptr=Ya();x(y)[this.ptr]=this}function m(){this.ptr=Za();x(m)[this.ptr]=this}n=n||{};var a="undefined"!=typeof n?n:{},Fa,oa;a.ready=new Promise(function(e,b){Fa=e;oa=b});var $a=!1,ab=!1;a.onRuntimeInitialized=function(){$a=!0;if(ab&&"function"===typeof a.onModuleLoaded)a.onModuleLoaded(a)}; -a.onModuleParsed=function(){ab=!0;if($a&&"function"===typeof a.onModuleLoaded)a.onModuleLoaded(a)};a.isVersionSupported=function(e){if("string"!==typeof e)return!1;e=e.split(".");return 2>e.length||3=e[1]?!0:0!=e[0]||10>>=0;if(2147483648=c;c*=2){var d=b*(1+.2/c);d=Math.min(d,e+100663296);var g=Math;d=Math.max(e,d);g=g.min.call(g,2147483648,d+(65536-d%65536)%65536);a:{try{na.grow(g-za.byteLength+65535>>>16);A(na.buffer);var t=1;break a}catch(X){}t=void 0}if(t)return!0}return!1}, -g:function(e){return 52},e:function(e,b,c,d,g){return 70},d:function(e,b,c,d){for(var g=0,t=0;t>2],gb=V[b+4>>2];b+=8;for(var va=0;va>2]=g;return 0}};(function(){function e(g,t){a.asm=g.exports;na=a.asm.i;A(na.buffer);Ca=a.asm.k;ra.unshift(a.asm.j);ba--;a.monitorRunDependencies&&a.monitorRunDependencies(ba);0==ba&&(null!==ua&&(clearInterval(ua),ua=null),ja&&(g=ja,ja=null, -g()))}function b(g){e(g.instance)}function c(g){return v().then(function(t){return WebAssembly.instantiate(t,d)}).then(function(t){return t}).then(g,function(t){da("failed to asynchronously prepare wasm: "+t);f(t)})}var d={a:Dd};ba++;a.monitorRunDependencies&&a.monitorRunDependencies(ba);if(a.instantiateWasm)try{return a.instantiateWasm(d,e)}catch(g){return da("Module.instantiateWasm callback failed with error: "+g),!1}(function(){return ha||"function"!=typeof WebAssembly.instantiateStreaming||Q.startsWith("data:application/octet-stream;base64,")|| -Q.startsWith("file://")||cb||"function"!=typeof fetch?c(b):fetch(Q,{credentials:"same-origin"}).then(function(g){return WebAssembly.instantiateStreaming(g,d).then(b,function(t){da("wasm streaming compile failed: "+t);da("falling back to ArrayBuffer instantiation");return c(b)})})})().catch(oa);return{}})();a.___wasm_call_ctors=function(){return(a.___wasm_call_ctors=a.asm.j).apply(null,arguments)};var hb=a._emscripten_bind_VoidPtr___destroy___0=function(){return(hb=a._emscripten_bind_VoidPtr___destroy___0= -a.asm.l).apply(null,arguments)},Ia=a._emscripten_bind_DecoderBuffer_DecoderBuffer_0=function(){return(Ia=a._emscripten_bind_DecoderBuffer_DecoderBuffer_0=a.asm.m).apply(null,arguments)},ib=a._emscripten_bind_DecoderBuffer_Init_2=function(){return(ib=a._emscripten_bind_DecoderBuffer_Init_2=a.asm.n).apply(null,arguments)},jb=a._emscripten_bind_DecoderBuffer___destroy___0=function(){return(jb=a._emscripten_bind_DecoderBuffer___destroy___0=a.asm.o).apply(null,arguments)},Ja=a._emscripten_bind_AttributeTransformData_AttributeTransformData_0= -function(){return(Ja=a._emscripten_bind_AttributeTransformData_AttributeTransformData_0=a.asm.p).apply(null,arguments)},kb=a._emscripten_bind_AttributeTransformData_transform_type_0=function(){return(kb=a._emscripten_bind_AttributeTransformData_transform_type_0=a.asm.q).apply(null,arguments)},lb=a._emscripten_bind_AttributeTransformData___destroy___0=function(){return(lb=a._emscripten_bind_AttributeTransformData___destroy___0=a.asm.r).apply(null,arguments)},Ka=a._emscripten_bind_GeometryAttribute_GeometryAttribute_0= -function(){return(Ka=a._emscripten_bind_GeometryAttribute_GeometryAttribute_0=a.asm.s).apply(null,arguments)},mb=a._emscripten_bind_GeometryAttribute___destroy___0=function(){return(mb=a._emscripten_bind_GeometryAttribute___destroy___0=a.asm.t).apply(null,arguments)},La=a._emscripten_bind_PointAttribute_PointAttribute_0=function(){return(La=a._emscripten_bind_PointAttribute_PointAttribute_0=a.asm.u).apply(null,arguments)},nb=a._emscripten_bind_PointAttribute_size_0=function(){return(nb=a._emscripten_bind_PointAttribute_size_0= -a.asm.v).apply(null,arguments)},ob=a._emscripten_bind_PointAttribute_GetAttributeTransformData_0=function(){return(ob=a._emscripten_bind_PointAttribute_GetAttributeTransformData_0=a.asm.w).apply(null,arguments)},pb=a._emscripten_bind_PointAttribute_attribute_type_0=function(){return(pb=a._emscripten_bind_PointAttribute_attribute_type_0=a.asm.x).apply(null,arguments)},qb=a._emscripten_bind_PointAttribute_data_type_0=function(){return(qb=a._emscripten_bind_PointAttribute_data_type_0=a.asm.y).apply(null, -arguments)},rb=a._emscripten_bind_PointAttribute_num_components_0=function(){return(rb=a._emscripten_bind_PointAttribute_num_components_0=a.asm.z).apply(null,arguments)},sb=a._emscripten_bind_PointAttribute_normalized_0=function(){return(sb=a._emscripten_bind_PointAttribute_normalized_0=a.asm.A).apply(null,arguments)},tb=a._emscripten_bind_PointAttribute_byte_stride_0=function(){return(tb=a._emscripten_bind_PointAttribute_byte_stride_0=a.asm.B).apply(null,arguments)},ub=a._emscripten_bind_PointAttribute_byte_offset_0= -function(){return(ub=a._emscripten_bind_PointAttribute_byte_offset_0=a.asm.C).apply(null,arguments)},vb=a._emscripten_bind_PointAttribute_unique_id_0=function(){return(vb=a._emscripten_bind_PointAttribute_unique_id_0=a.asm.D).apply(null,arguments)},wb=a._emscripten_bind_PointAttribute___destroy___0=function(){return(wb=a._emscripten_bind_PointAttribute___destroy___0=a.asm.E).apply(null,arguments)},Ma=a._emscripten_bind_AttributeQuantizationTransform_AttributeQuantizationTransform_0=function(){return(Ma= -a._emscripten_bind_AttributeQuantizationTransform_AttributeQuantizationTransform_0=a.asm.F).apply(null,arguments)},xb=a._emscripten_bind_AttributeQuantizationTransform_InitFromAttribute_1=function(){return(xb=a._emscripten_bind_AttributeQuantizationTransform_InitFromAttribute_1=a.asm.G).apply(null,arguments)},yb=a._emscripten_bind_AttributeQuantizationTransform_quantization_bits_0=function(){return(yb=a._emscripten_bind_AttributeQuantizationTransform_quantization_bits_0=a.asm.H).apply(null,arguments)}, -zb=a._emscripten_bind_AttributeQuantizationTransform_min_value_1=function(){return(zb=a._emscripten_bind_AttributeQuantizationTransform_min_value_1=a.asm.I).apply(null,arguments)},Ab=a._emscripten_bind_AttributeQuantizationTransform_range_0=function(){return(Ab=a._emscripten_bind_AttributeQuantizationTransform_range_0=a.asm.J).apply(null,arguments)},Bb=a._emscripten_bind_AttributeQuantizationTransform___destroy___0=function(){return(Bb=a._emscripten_bind_AttributeQuantizationTransform___destroy___0= -a.asm.K).apply(null,arguments)},Na=a._emscripten_bind_AttributeOctahedronTransform_AttributeOctahedronTransform_0=function(){return(Na=a._emscripten_bind_AttributeOctahedronTransform_AttributeOctahedronTransform_0=a.asm.L).apply(null,arguments)},Cb=a._emscripten_bind_AttributeOctahedronTransform_InitFromAttribute_1=function(){return(Cb=a._emscripten_bind_AttributeOctahedronTransform_InitFromAttribute_1=a.asm.M).apply(null,arguments)},Db=a._emscripten_bind_AttributeOctahedronTransform_quantization_bits_0= -function(){return(Db=a._emscripten_bind_AttributeOctahedronTransform_quantization_bits_0=a.asm.N).apply(null,arguments)},Eb=a._emscripten_bind_AttributeOctahedronTransform___destroy___0=function(){return(Eb=a._emscripten_bind_AttributeOctahedronTransform___destroy___0=a.asm.O).apply(null,arguments)},Oa=a._emscripten_bind_PointCloud_PointCloud_0=function(){return(Oa=a._emscripten_bind_PointCloud_PointCloud_0=a.asm.P).apply(null,arguments)},Fb=a._emscripten_bind_PointCloud_num_attributes_0=function(){return(Fb= -a._emscripten_bind_PointCloud_num_attributes_0=a.asm.Q).apply(null,arguments)},Gb=a._emscripten_bind_PointCloud_num_points_0=function(){return(Gb=a._emscripten_bind_PointCloud_num_points_0=a.asm.R).apply(null,arguments)},Hb=a._emscripten_bind_PointCloud___destroy___0=function(){return(Hb=a._emscripten_bind_PointCloud___destroy___0=a.asm.S).apply(null,arguments)},Pa=a._emscripten_bind_Mesh_Mesh_0=function(){return(Pa=a._emscripten_bind_Mesh_Mesh_0=a.asm.T).apply(null,arguments)},Ib=a._emscripten_bind_Mesh_num_faces_0= -function(){return(Ib=a._emscripten_bind_Mesh_num_faces_0=a.asm.U).apply(null,arguments)},Jb=a._emscripten_bind_Mesh_num_attributes_0=function(){return(Jb=a._emscripten_bind_Mesh_num_attributes_0=a.asm.V).apply(null,arguments)},Kb=a._emscripten_bind_Mesh_num_points_0=function(){return(Kb=a._emscripten_bind_Mesh_num_points_0=a.asm.W).apply(null,arguments)},Lb=a._emscripten_bind_Mesh___destroy___0=function(){return(Lb=a._emscripten_bind_Mesh___destroy___0=a.asm.X).apply(null,arguments)},Qa=a._emscripten_bind_Metadata_Metadata_0= -function(){return(Qa=a._emscripten_bind_Metadata_Metadata_0=a.asm.Y).apply(null,arguments)},Mb=a._emscripten_bind_Metadata___destroy___0=function(){return(Mb=a._emscripten_bind_Metadata___destroy___0=a.asm.Z).apply(null,arguments)},Nb=a._emscripten_bind_Status_code_0=function(){return(Nb=a._emscripten_bind_Status_code_0=a.asm._).apply(null,arguments)},Ob=a._emscripten_bind_Status_ok_0=function(){return(Ob=a._emscripten_bind_Status_ok_0=a.asm.$).apply(null,arguments)},Pb=a._emscripten_bind_Status_error_msg_0= -function(){return(Pb=a._emscripten_bind_Status_error_msg_0=a.asm.aa).apply(null,arguments)},Qb=a._emscripten_bind_Status___destroy___0=function(){return(Qb=a._emscripten_bind_Status___destroy___0=a.asm.ba).apply(null,arguments)},Ra=a._emscripten_bind_DracoFloat32Array_DracoFloat32Array_0=function(){return(Ra=a._emscripten_bind_DracoFloat32Array_DracoFloat32Array_0=a.asm.ca).apply(null,arguments)},Rb=a._emscripten_bind_DracoFloat32Array_GetValue_1=function(){return(Rb=a._emscripten_bind_DracoFloat32Array_GetValue_1= -a.asm.da).apply(null,arguments)},Sb=a._emscripten_bind_DracoFloat32Array_size_0=function(){return(Sb=a._emscripten_bind_DracoFloat32Array_size_0=a.asm.ea).apply(null,arguments)},Tb=a._emscripten_bind_DracoFloat32Array___destroy___0=function(){return(Tb=a._emscripten_bind_DracoFloat32Array___destroy___0=a.asm.fa).apply(null,arguments)},Sa=a._emscripten_bind_DracoInt8Array_DracoInt8Array_0=function(){return(Sa=a._emscripten_bind_DracoInt8Array_DracoInt8Array_0=a.asm.ga).apply(null,arguments)},Ub=a._emscripten_bind_DracoInt8Array_GetValue_1= -function(){return(Ub=a._emscripten_bind_DracoInt8Array_GetValue_1=a.asm.ha).apply(null,arguments)},Vb=a._emscripten_bind_DracoInt8Array_size_0=function(){return(Vb=a._emscripten_bind_DracoInt8Array_size_0=a.asm.ia).apply(null,arguments)},Wb=a._emscripten_bind_DracoInt8Array___destroy___0=function(){return(Wb=a._emscripten_bind_DracoInt8Array___destroy___0=a.asm.ja).apply(null,arguments)},Ta=a._emscripten_bind_DracoUInt8Array_DracoUInt8Array_0=function(){return(Ta=a._emscripten_bind_DracoUInt8Array_DracoUInt8Array_0= -a.asm.ka).apply(null,arguments)},Xb=a._emscripten_bind_DracoUInt8Array_GetValue_1=function(){return(Xb=a._emscripten_bind_DracoUInt8Array_GetValue_1=a.asm.la).apply(null,arguments)},Yb=a._emscripten_bind_DracoUInt8Array_size_0=function(){return(Yb=a._emscripten_bind_DracoUInt8Array_size_0=a.asm.ma).apply(null,arguments)},Zb=a._emscripten_bind_DracoUInt8Array___destroy___0=function(){return(Zb=a._emscripten_bind_DracoUInt8Array___destroy___0=a.asm.na).apply(null,arguments)},Ua=a._emscripten_bind_DracoInt16Array_DracoInt16Array_0= -function(){return(Ua=a._emscripten_bind_DracoInt16Array_DracoInt16Array_0=a.asm.oa).apply(null,arguments)},$b=a._emscripten_bind_DracoInt16Array_GetValue_1=function(){return($b=a._emscripten_bind_DracoInt16Array_GetValue_1=a.asm.pa).apply(null,arguments)},ac=a._emscripten_bind_DracoInt16Array_size_0=function(){return(ac=a._emscripten_bind_DracoInt16Array_size_0=a.asm.qa).apply(null,arguments)},bc=a._emscripten_bind_DracoInt16Array___destroy___0=function(){return(bc=a._emscripten_bind_DracoInt16Array___destroy___0= -a.asm.ra).apply(null,arguments)},Va=a._emscripten_bind_DracoUInt16Array_DracoUInt16Array_0=function(){return(Va=a._emscripten_bind_DracoUInt16Array_DracoUInt16Array_0=a.asm.sa).apply(null,arguments)},cc=a._emscripten_bind_DracoUInt16Array_GetValue_1=function(){return(cc=a._emscripten_bind_DracoUInt16Array_GetValue_1=a.asm.ta).apply(null,arguments)},dc=a._emscripten_bind_DracoUInt16Array_size_0=function(){return(dc=a._emscripten_bind_DracoUInt16Array_size_0=a.asm.ua).apply(null,arguments)},ec=a._emscripten_bind_DracoUInt16Array___destroy___0= -function(){return(ec=a._emscripten_bind_DracoUInt16Array___destroy___0=a.asm.va).apply(null,arguments)},Wa=a._emscripten_bind_DracoInt32Array_DracoInt32Array_0=function(){return(Wa=a._emscripten_bind_DracoInt32Array_DracoInt32Array_0=a.asm.wa).apply(null,arguments)},fc=a._emscripten_bind_DracoInt32Array_GetValue_1=function(){return(fc=a._emscripten_bind_DracoInt32Array_GetValue_1=a.asm.xa).apply(null,arguments)},gc=a._emscripten_bind_DracoInt32Array_size_0=function(){return(gc=a._emscripten_bind_DracoInt32Array_size_0= -a.asm.ya).apply(null,arguments)},hc=a._emscripten_bind_DracoInt32Array___destroy___0=function(){return(hc=a._emscripten_bind_DracoInt32Array___destroy___0=a.asm.za).apply(null,arguments)},Xa=a._emscripten_bind_DracoUInt32Array_DracoUInt32Array_0=function(){return(Xa=a._emscripten_bind_DracoUInt32Array_DracoUInt32Array_0=a.asm.Aa).apply(null,arguments)},ic=a._emscripten_bind_DracoUInt32Array_GetValue_1=function(){return(ic=a._emscripten_bind_DracoUInt32Array_GetValue_1=a.asm.Ba).apply(null,arguments)}, -jc=a._emscripten_bind_DracoUInt32Array_size_0=function(){return(jc=a._emscripten_bind_DracoUInt32Array_size_0=a.asm.Ca).apply(null,arguments)},kc=a._emscripten_bind_DracoUInt32Array___destroy___0=function(){return(kc=a._emscripten_bind_DracoUInt32Array___destroy___0=a.asm.Da).apply(null,arguments)},Ya=a._emscripten_bind_MetadataQuerier_MetadataQuerier_0=function(){return(Ya=a._emscripten_bind_MetadataQuerier_MetadataQuerier_0=a.asm.Ea).apply(null,arguments)},lc=a._emscripten_bind_MetadataQuerier_HasEntry_2= -function(){return(lc=a._emscripten_bind_MetadataQuerier_HasEntry_2=a.asm.Fa).apply(null,arguments)},mc=a._emscripten_bind_MetadataQuerier_GetIntEntry_2=function(){return(mc=a._emscripten_bind_MetadataQuerier_GetIntEntry_2=a.asm.Ga).apply(null,arguments)},nc=a._emscripten_bind_MetadataQuerier_GetIntEntryArray_3=function(){return(nc=a._emscripten_bind_MetadataQuerier_GetIntEntryArray_3=a.asm.Ha).apply(null,arguments)},oc=a._emscripten_bind_MetadataQuerier_GetDoubleEntry_2=function(){return(oc=a._emscripten_bind_MetadataQuerier_GetDoubleEntry_2= -a.asm.Ia).apply(null,arguments)},pc=a._emscripten_bind_MetadataQuerier_GetStringEntry_2=function(){return(pc=a._emscripten_bind_MetadataQuerier_GetStringEntry_2=a.asm.Ja).apply(null,arguments)},qc=a._emscripten_bind_MetadataQuerier_NumEntries_1=function(){return(qc=a._emscripten_bind_MetadataQuerier_NumEntries_1=a.asm.Ka).apply(null,arguments)},rc=a._emscripten_bind_MetadataQuerier_GetEntryName_2=function(){return(rc=a._emscripten_bind_MetadataQuerier_GetEntryName_2=a.asm.La).apply(null,arguments)}, -sc=a._emscripten_bind_MetadataQuerier___destroy___0=function(){return(sc=a._emscripten_bind_MetadataQuerier___destroy___0=a.asm.Ma).apply(null,arguments)},Za=a._emscripten_bind_Decoder_Decoder_0=function(){return(Za=a._emscripten_bind_Decoder_Decoder_0=a.asm.Na).apply(null,arguments)},tc=a._emscripten_bind_Decoder_DecodeArrayToPointCloud_3=function(){return(tc=a._emscripten_bind_Decoder_DecodeArrayToPointCloud_3=a.asm.Oa).apply(null,arguments)},uc=a._emscripten_bind_Decoder_DecodeArrayToMesh_3=function(){return(uc= -a._emscripten_bind_Decoder_DecodeArrayToMesh_3=a.asm.Pa).apply(null,arguments)},vc=a._emscripten_bind_Decoder_GetAttributeId_2=function(){return(vc=a._emscripten_bind_Decoder_GetAttributeId_2=a.asm.Qa).apply(null,arguments)},wc=a._emscripten_bind_Decoder_GetAttributeIdByName_2=function(){return(wc=a._emscripten_bind_Decoder_GetAttributeIdByName_2=a.asm.Ra).apply(null,arguments)},xc=a._emscripten_bind_Decoder_GetAttributeIdByMetadataEntry_3=function(){return(xc=a._emscripten_bind_Decoder_GetAttributeIdByMetadataEntry_3= -a.asm.Sa).apply(null,arguments)},yc=a._emscripten_bind_Decoder_GetAttribute_2=function(){return(yc=a._emscripten_bind_Decoder_GetAttribute_2=a.asm.Ta).apply(null,arguments)},zc=a._emscripten_bind_Decoder_GetAttributeByUniqueId_2=function(){return(zc=a._emscripten_bind_Decoder_GetAttributeByUniqueId_2=a.asm.Ua).apply(null,arguments)},Ac=a._emscripten_bind_Decoder_GetMetadata_1=function(){return(Ac=a._emscripten_bind_Decoder_GetMetadata_1=a.asm.Va).apply(null,arguments)},Bc=a._emscripten_bind_Decoder_GetAttributeMetadata_2= -function(){return(Bc=a._emscripten_bind_Decoder_GetAttributeMetadata_2=a.asm.Wa).apply(null,arguments)},Cc=a._emscripten_bind_Decoder_GetFaceFromMesh_3=function(){return(Cc=a._emscripten_bind_Decoder_GetFaceFromMesh_3=a.asm.Xa).apply(null,arguments)},Dc=a._emscripten_bind_Decoder_GetTriangleStripsFromMesh_2=function(){return(Dc=a._emscripten_bind_Decoder_GetTriangleStripsFromMesh_2=a.asm.Ya).apply(null,arguments)},Ec=a._emscripten_bind_Decoder_GetTrianglesUInt16Array_3=function(){return(Ec=a._emscripten_bind_Decoder_GetTrianglesUInt16Array_3= -a.asm.Za).apply(null,arguments)},Fc=a._emscripten_bind_Decoder_GetTrianglesUInt32Array_3=function(){return(Fc=a._emscripten_bind_Decoder_GetTrianglesUInt32Array_3=a.asm._a).apply(null,arguments)},Gc=a._emscripten_bind_Decoder_GetAttributeFloat_3=function(){return(Gc=a._emscripten_bind_Decoder_GetAttributeFloat_3=a.asm.$a).apply(null,arguments)},Hc=a._emscripten_bind_Decoder_GetAttributeFloatForAllPoints_3=function(){return(Hc=a._emscripten_bind_Decoder_GetAttributeFloatForAllPoints_3=a.asm.ab).apply(null, -arguments)},Ic=a._emscripten_bind_Decoder_GetAttributeIntForAllPoints_3=function(){return(Ic=a._emscripten_bind_Decoder_GetAttributeIntForAllPoints_3=a.asm.bb).apply(null,arguments)},Jc=a._emscripten_bind_Decoder_GetAttributeInt8ForAllPoints_3=function(){return(Jc=a._emscripten_bind_Decoder_GetAttributeInt8ForAllPoints_3=a.asm.cb).apply(null,arguments)},Kc=a._emscripten_bind_Decoder_GetAttributeUInt8ForAllPoints_3=function(){return(Kc=a._emscripten_bind_Decoder_GetAttributeUInt8ForAllPoints_3=a.asm.db).apply(null, -arguments)},Lc=a._emscripten_bind_Decoder_GetAttributeInt16ForAllPoints_3=function(){return(Lc=a._emscripten_bind_Decoder_GetAttributeInt16ForAllPoints_3=a.asm.eb).apply(null,arguments)},Mc=a._emscripten_bind_Decoder_GetAttributeUInt16ForAllPoints_3=function(){return(Mc=a._emscripten_bind_Decoder_GetAttributeUInt16ForAllPoints_3=a.asm.fb).apply(null,arguments)},Nc=a._emscripten_bind_Decoder_GetAttributeInt32ForAllPoints_3=function(){return(Nc=a._emscripten_bind_Decoder_GetAttributeInt32ForAllPoints_3= -a.asm.gb).apply(null,arguments)},Oc=a._emscripten_bind_Decoder_GetAttributeUInt32ForAllPoints_3=function(){return(Oc=a._emscripten_bind_Decoder_GetAttributeUInt32ForAllPoints_3=a.asm.hb).apply(null,arguments)},Pc=a._emscripten_bind_Decoder_GetAttributeDataArrayForAllPoints_5=function(){return(Pc=a._emscripten_bind_Decoder_GetAttributeDataArrayForAllPoints_5=a.asm.ib).apply(null,arguments)},Qc=a._emscripten_bind_Decoder_SkipAttributeTransform_1=function(){return(Qc=a._emscripten_bind_Decoder_SkipAttributeTransform_1= -a.asm.jb).apply(null,arguments)},Rc=a._emscripten_bind_Decoder_GetEncodedGeometryType_Deprecated_1=function(){return(Rc=a._emscripten_bind_Decoder_GetEncodedGeometryType_Deprecated_1=a.asm.kb).apply(null,arguments)},Sc=a._emscripten_bind_Decoder_DecodeBufferToPointCloud_2=function(){return(Sc=a._emscripten_bind_Decoder_DecodeBufferToPointCloud_2=a.asm.lb).apply(null,arguments)},Tc=a._emscripten_bind_Decoder_DecodeBufferToMesh_2=function(){return(Tc=a._emscripten_bind_Decoder_DecodeBufferToMesh_2= -a.asm.mb).apply(null,arguments)},Uc=a._emscripten_bind_Decoder___destroy___0=function(){return(Uc=a._emscripten_bind_Decoder___destroy___0=a.asm.nb).apply(null,arguments)},Vc=a._emscripten_enum_draco_AttributeTransformType_ATTRIBUTE_INVALID_TRANSFORM=function(){return(Vc=a._emscripten_enum_draco_AttributeTransformType_ATTRIBUTE_INVALID_TRANSFORM=a.asm.ob).apply(null,arguments)},Wc=a._emscripten_enum_draco_AttributeTransformType_ATTRIBUTE_NO_TRANSFORM=function(){return(Wc=a._emscripten_enum_draco_AttributeTransformType_ATTRIBUTE_NO_TRANSFORM= -a.asm.pb).apply(null,arguments)},Xc=a._emscripten_enum_draco_AttributeTransformType_ATTRIBUTE_QUANTIZATION_TRANSFORM=function(){return(Xc=a._emscripten_enum_draco_AttributeTransformType_ATTRIBUTE_QUANTIZATION_TRANSFORM=a.asm.qb).apply(null,arguments)},Yc=a._emscripten_enum_draco_AttributeTransformType_ATTRIBUTE_OCTAHEDRON_TRANSFORM=function(){return(Yc=a._emscripten_enum_draco_AttributeTransformType_ATTRIBUTE_OCTAHEDRON_TRANSFORM=a.asm.rb).apply(null,arguments)},Zc=a._emscripten_enum_draco_GeometryAttribute_Type_INVALID= -function(){return(Zc=a._emscripten_enum_draco_GeometryAttribute_Type_INVALID=a.asm.sb).apply(null,arguments)},$c=a._emscripten_enum_draco_GeometryAttribute_Type_POSITION=function(){return($c=a._emscripten_enum_draco_GeometryAttribute_Type_POSITION=a.asm.tb).apply(null,arguments)},ad=a._emscripten_enum_draco_GeometryAttribute_Type_NORMAL=function(){return(ad=a._emscripten_enum_draco_GeometryAttribute_Type_NORMAL=a.asm.ub).apply(null,arguments)},bd=a._emscripten_enum_draco_GeometryAttribute_Type_COLOR= -function(){return(bd=a._emscripten_enum_draco_GeometryAttribute_Type_COLOR=a.asm.vb).apply(null,arguments)},cd=a._emscripten_enum_draco_GeometryAttribute_Type_TEX_COORD=function(){return(cd=a._emscripten_enum_draco_GeometryAttribute_Type_TEX_COORD=a.asm.wb).apply(null,arguments)},dd=a._emscripten_enum_draco_GeometryAttribute_Type_GENERIC=function(){return(dd=a._emscripten_enum_draco_GeometryAttribute_Type_GENERIC=a.asm.xb).apply(null,arguments)},ed=a._emscripten_enum_draco_EncodedGeometryType_INVALID_GEOMETRY_TYPE= -function(){return(ed=a._emscripten_enum_draco_EncodedGeometryType_INVALID_GEOMETRY_TYPE=a.asm.yb).apply(null,arguments)},fd=a._emscripten_enum_draco_EncodedGeometryType_POINT_CLOUD=function(){return(fd=a._emscripten_enum_draco_EncodedGeometryType_POINT_CLOUD=a.asm.zb).apply(null,arguments)},gd=a._emscripten_enum_draco_EncodedGeometryType_TRIANGULAR_MESH=function(){return(gd=a._emscripten_enum_draco_EncodedGeometryType_TRIANGULAR_MESH=a.asm.Ab).apply(null,arguments)},hd=a._emscripten_enum_draco_DataType_DT_INVALID= -function(){return(hd=a._emscripten_enum_draco_DataType_DT_INVALID=a.asm.Bb).apply(null,arguments)},id=a._emscripten_enum_draco_DataType_DT_INT8=function(){return(id=a._emscripten_enum_draco_DataType_DT_INT8=a.asm.Cb).apply(null,arguments)},jd=a._emscripten_enum_draco_DataType_DT_UINT8=function(){return(jd=a._emscripten_enum_draco_DataType_DT_UINT8=a.asm.Db).apply(null,arguments)},kd=a._emscripten_enum_draco_DataType_DT_INT16=function(){return(kd=a._emscripten_enum_draco_DataType_DT_INT16=a.asm.Eb).apply(null, -arguments)},ld=a._emscripten_enum_draco_DataType_DT_UINT16=function(){return(ld=a._emscripten_enum_draco_DataType_DT_UINT16=a.asm.Fb).apply(null,arguments)},md=a._emscripten_enum_draco_DataType_DT_INT32=function(){return(md=a._emscripten_enum_draco_DataType_DT_INT32=a.asm.Gb).apply(null,arguments)},nd=a._emscripten_enum_draco_DataType_DT_UINT32=function(){return(nd=a._emscripten_enum_draco_DataType_DT_UINT32=a.asm.Hb).apply(null,arguments)},od=a._emscripten_enum_draco_DataType_DT_INT64=function(){return(od= -a._emscripten_enum_draco_DataType_DT_INT64=a.asm.Ib).apply(null,arguments)},pd=a._emscripten_enum_draco_DataType_DT_UINT64=function(){return(pd=a._emscripten_enum_draco_DataType_DT_UINT64=a.asm.Jb).apply(null,arguments)},qd=a._emscripten_enum_draco_DataType_DT_FLOAT32=function(){return(qd=a._emscripten_enum_draco_DataType_DT_FLOAT32=a.asm.Kb).apply(null,arguments)},rd=a._emscripten_enum_draco_DataType_DT_FLOAT64=function(){return(rd=a._emscripten_enum_draco_DataType_DT_FLOAT64=a.asm.Lb).apply(null, -arguments)},sd=a._emscripten_enum_draco_DataType_DT_BOOL=function(){return(sd=a._emscripten_enum_draco_DataType_DT_BOOL=a.asm.Mb).apply(null,arguments)},td=a._emscripten_enum_draco_DataType_DT_TYPES_COUNT=function(){return(td=a._emscripten_enum_draco_DataType_DT_TYPES_COUNT=a.asm.Nb).apply(null,arguments)},ud=a._emscripten_enum_draco_StatusCode_OK=function(){return(ud=a._emscripten_enum_draco_StatusCode_OK=a.asm.Ob).apply(null,arguments)},vd=a._emscripten_enum_draco_StatusCode_DRACO_ERROR=function(){return(vd= -a._emscripten_enum_draco_StatusCode_DRACO_ERROR=a.asm.Pb).apply(null,arguments)},wd=a._emscripten_enum_draco_StatusCode_IO_ERROR=function(){return(wd=a._emscripten_enum_draco_StatusCode_IO_ERROR=a.asm.Qb).apply(null,arguments)},xd=a._emscripten_enum_draco_StatusCode_INVALID_PARAMETER=function(){return(xd=a._emscripten_enum_draco_StatusCode_INVALID_PARAMETER=a.asm.Rb).apply(null,arguments)},yd=a._emscripten_enum_draco_StatusCode_UNSUPPORTED_VERSION=function(){return(yd=a._emscripten_enum_draco_StatusCode_UNSUPPORTED_VERSION= -a.asm.Sb).apply(null,arguments)},zd=a._emscripten_enum_draco_StatusCode_UNKNOWN_VERSION=function(){return(zd=a._emscripten_enum_draco_StatusCode_UNKNOWN_VERSION=a.asm.Tb).apply(null,arguments)},fb=a._malloc=function(){return(fb=a._malloc=a.asm.Ub).apply(null,arguments)};a._free=function(){return(a._free=a.asm.Vb).apply(null,arguments)};var Da=a.___cxa_is_pointer_type=function(){return(Da=a.___cxa_is_pointer_type=a.asm.Wb).apply(null,arguments)},la;ja=function b(){la||P();la||(ja=b)};a.run=P;if(a.preInit)for("function"== -typeof a.preInit&&(a.preInit=[a.preInit]);0=r.size?(0>>=0;switch(c.BYTES_PER_ELEMENT){case 2:d>>>=1;break;case 4:d>>>=2;break;case 8:d>>>=3}for(var g=0;gb.byteLength)return a.INVALID_GEOMETRY_TYPE;switch(b[7]){case 0:return a.POINT_CLOUD;case 1:return a.TRIANGULAR_MESH;default:return a.INVALID_GEOMETRY_TYPE}};return n.ready}}(); -"object"===typeof exports&&"object"===typeof module?module.exports=DracoDecoderModule:"function"===typeof define&&define.amd?define([],function(){return DracoDecoderModule}):"object"===typeof exports&&(exports.DracoDecoderModule=DracoDecoderModule); +var DracoDecoderModule=function(){var k="undefined"!==typeof document&&document.currentScript?document.currentScript.src:void 0;"undefined"!==typeof __filename&&(k=k||__filename);return function(n){function l(e){return a.locateFile?a.locateFile(e,U):U+e}function p(e,b,c){var d=b+c;for(c=b;e[c]&&!(c>=d);)++c;if(16g?d+=String.fromCharCode(g):(g-=65536,d+=String.fromCharCode(55296|g>>10,56320|g&1023))}}else d+=String.fromCharCode(g)}return d}function h(e,b){return e?p(ea,e,b):""}function A(e){va=e;a.HEAP8=Y=new Int8Array(e);a.HEAP16=new Int16Array(e);a.HEAP32=ca=new Int32Array(e);a.HEAPU8=ea=new Uint8Array(e);a.HEAPU16=new Uint16Array(e);a.HEAPU32=V=new Uint32Array(e);a.HEAPF32=new Float32Array(e);a.HEAPF64=new Float64Array(e)}function f(e){if(a.onAbort)a.onAbort(e); +e="Aborted("+e+")";da(e);wa=!0;e=new WebAssembly.RuntimeError(e+". Build with -sASSERTIONS for more info.");ja(e);throw e;}function q(e){try{if(e==P&&fa)return new Uint8Array(fa);if(ma)return ma(e);throw"both async and sync fetching of the wasm failed";}catch(b){f(b)}}function v(){if(!fa&&(xa||ha)){if("function"==typeof fetch&&!P.startsWith("file://"))return fetch(P,{credentials:"same-origin"}).then(function(e){if(!e.ok)throw"failed to load wasm binary file at '"+P+"'";return e.arrayBuffer()}).catch(function(){return q(P)}); +if(na)return new Promise(function(e,b){na(P,function(c){e(new Uint8Array(c))},b)})}return Promise.resolve().then(function(){return q(P)})}function z(e){for(;0>2]=b};this.get_type=function(){return V[this.ptr+4>>2]};this.set_destructor=function(b){V[this.ptr+8>>2]=b};this.get_destructor=function(){return V[this.ptr+8>>2]};this.set_refcount=function(b){ca[this.ptr>>2]=b};this.set_caught=function(b){Y[this.ptr+ +12>>0]=b?1:0};this.get_caught=function(){return 0!=Y[this.ptr+12>>0]};this.set_rethrown=function(b){Y[this.ptr+13>>0]=b?1:0};this.get_rethrown=function(){return 0!=Y[this.ptr+13>>0]};this.init=function(b,c){this.set_adjusted_ptr(0);this.set_type(b);this.set_destructor(c);this.set_refcount(0);this.set_caught(!1);this.set_rethrown(!1)};this.add_ref=function(){ca[this.ptr>>2]+=1};this.release_ref=function(){var b=ca[this.ptr>>2];ca[this.ptr>>2]=b-1;return 1===b};this.set_adjusted_ptr=function(b){V[this.ptr+ +16>>2]=b};this.get_adjusted_ptr=function(){return V[this.ptr+16>>2]};this.get_exception_ptr=function(){if(ya(this.get_type()))return V[this.excPtr>>2];var b=this.get_adjusted_ptr();return 0!==b?b:this.excPtr}}function ba(e){function b(){if(!ka&&(ka=!0,a.calledRun=!0,!wa)){za=!0;z(oa);Aa(a);if(a.onRuntimeInitialized)a.onRuntimeInitialized();if(a.postRun)for("function"==typeof a.postRun&&(a.postRun=[a.postRun]);a.postRun.length;)Ba.unshift(a.postRun.shift());z(Ba)}}if(!(0=d?b++:2047>=d?b+=2:55296<=d&&57343>= +d?(b+=4,++c):b+=3}b=Array(b+1);c=0;d=b.length;if(0=u){var X=e.charCodeAt(++g);u=65536+((u&1023)<<10)|X&1023}if(127>=u){if(c>=d)break;b[c++]=u}else{if(2047>=u){if(c+1>=d)break;b[c++]=192|u>>6}else{if(65535>=u){if(c+2>=d)break;b[c++]=224|u>>12}else{if(c+3>=d)break;b[c++]=240|u>>18;b[c++]=128|u>>12&63}b[c++]=128|u>>6&63}b[c++]=128|u&63}}b[c]=0}e=r.alloc(b,Y);r.copy(b,Y,e);return e}return e}function pa(e){if("object"===typeof e){var b= +r.alloc(e,Y);r.copy(e,Y,b);return b}return e}function Z(){throw"cannot construct a VoidPtr, no constructor in IDL";}function S(){this.ptr=Da();x(S)[this.ptr]=this}function Q(){this.ptr=Ea();x(Q)[this.ptr]=this}function W(){this.ptr=Fa();x(W)[this.ptr]=this}function w(){this.ptr=Ga();x(w)[this.ptr]=this}function C(){this.ptr=Ha();x(C)[this.ptr]=this}function F(){this.ptr=Ia();x(F)[this.ptr]=this}function G(){this.ptr=Ja();x(G)[this.ptr]=this}function E(){this.ptr=Ka();x(E)[this.ptr]=this}function T(){this.ptr= +La();x(T)[this.ptr]=this}function B(){throw"cannot construct a Status, no constructor in IDL";}function H(){this.ptr=Ma();x(H)[this.ptr]=this}function I(){this.ptr=Na();x(I)[this.ptr]=this}function J(){this.ptr=Oa();x(J)[this.ptr]=this}function K(){this.ptr=Pa();x(K)[this.ptr]=this}function L(){this.ptr=Qa();x(L)[this.ptr]=this}function M(){this.ptr=Ra();x(M)[this.ptr]=this}function N(){this.ptr=Sa();x(N)[this.ptr]=this}function y(){this.ptr=Ta();x(y)[this.ptr]=this}function m(){this.ptr=Ua();x(m)[this.ptr]= +this}n=n||{};var a="undefined"!=typeof n?n:{},Aa,ja;a.ready=new Promise(function(e,b){Aa=e;ja=b});var Va=!1,Wa=!1;a.onRuntimeInitialized=function(){Va=!0;if(Wa&&"function"===typeof a.onModuleLoaded)a.onModuleLoaded(a)};a.onModuleParsed=function(){Wa=!0;if(Va&&"function"===typeof a.onModuleLoaded)a.onModuleLoaded(a)};a.isVersionSupported=function(e){if("string"!==typeof e)return!1;e=e.split(".");return 2>e.length||3=e[1]?!0:0!=e[0]||10>>=0;if(2147483648=c;c*=2){var d=b*(1+.2/c);d=Math.min(d,e+100663296);var g=Math;d=Math.max(e,d);g=g.min.call(g,2147483648,d+(65536-d%65536)%65536);a:{try{la.grow(g-va.byteLength+65535>>>16);A(la.buffer);var u=1;break a}catch(X){}u=void 0}if(u)return!0}return!1},g:function(e){return 52},e:function(e,b,c,d,g){return 70},d:function(e,b,c,d){for(var g=0,u=0;u>2],cb=V[b+4>>2];b+=8;for(var ra=0;ra>2]=g;return 0}};(function(){function e(g,u){a.asm=g.exports;la=a.asm.i;A(la.buffer);oa.unshift(a.asm.j);aa--;a.monitorRunDependencies&&a.monitorRunDependencies(aa);0==aa&&(null!==qa&&(clearInterval(qa),qa=null),ia&&(g=ia,ia=null,g()))}function b(g){e(g.instance)}function c(g){return v().then(function(u){return WebAssembly.instantiate(u,d)}).then(function(u){return u}).then(g,function(u){da("failed to asynchronously prepare wasm: "+u);f(u)})}var d={a:zd};aa++;a.monitorRunDependencies&&a.monitorRunDependencies(aa); +if(a.instantiateWasm)try{return a.instantiateWasm(d,e)}catch(g){da("Module.instantiateWasm callback failed with error: "+g),ja(g)}(function(){return fa||"function"!=typeof WebAssembly.instantiateStreaming||P.startsWith("data:application/octet-stream;base64,")||P.startsWith("file://")||Ya||"function"!=typeof fetch?c(b):fetch(P,{credentials:"same-origin"}).then(function(g){return WebAssembly.instantiateStreaming(g,d).then(b,function(u){da("wasm streaming compile failed: "+u);da("falling back to ArrayBuffer instantiation"); +return c(b)})})})().catch(ja);return{}})();a.___wasm_call_ctors=function(){return(a.___wasm_call_ctors=a.asm.j).apply(null,arguments)};var db=a._emscripten_bind_VoidPtr___destroy___0=function(){return(db=a._emscripten_bind_VoidPtr___destroy___0=a.asm.l).apply(null,arguments)},Da=a._emscripten_bind_DecoderBuffer_DecoderBuffer_0=function(){return(Da=a._emscripten_bind_DecoderBuffer_DecoderBuffer_0=a.asm.m).apply(null,arguments)},eb=a._emscripten_bind_DecoderBuffer_Init_2=function(){return(eb=a._emscripten_bind_DecoderBuffer_Init_2= +a.asm.n).apply(null,arguments)},fb=a._emscripten_bind_DecoderBuffer___destroy___0=function(){return(fb=a._emscripten_bind_DecoderBuffer___destroy___0=a.asm.o).apply(null,arguments)},Ea=a._emscripten_bind_AttributeTransformData_AttributeTransformData_0=function(){return(Ea=a._emscripten_bind_AttributeTransformData_AttributeTransformData_0=a.asm.p).apply(null,arguments)},gb=a._emscripten_bind_AttributeTransformData_transform_type_0=function(){return(gb=a._emscripten_bind_AttributeTransformData_transform_type_0= +a.asm.q).apply(null,arguments)},hb=a._emscripten_bind_AttributeTransformData___destroy___0=function(){return(hb=a._emscripten_bind_AttributeTransformData___destroy___0=a.asm.r).apply(null,arguments)},Fa=a._emscripten_bind_GeometryAttribute_GeometryAttribute_0=function(){return(Fa=a._emscripten_bind_GeometryAttribute_GeometryAttribute_0=a.asm.s).apply(null,arguments)},ib=a._emscripten_bind_GeometryAttribute___destroy___0=function(){return(ib=a._emscripten_bind_GeometryAttribute___destroy___0=a.asm.t).apply(null, +arguments)},Ga=a._emscripten_bind_PointAttribute_PointAttribute_0=function(){return(Ga=a._emscripten_bind_PointAttribute_PointAttribute_0=a.asm.u).apply(null,arguments)},jb=a._emscripten_bind_PointAttribute_size_0=function(){return(jb=a._emscripten_bind_PointAttribute_size_0=a.asm.v).apply(null,arguments)},kb=a._emscripten_bind_PointAttribute_GetAttributeTransformData_0=function(){return(kb=a._emscripten_bind_PointAttribute_GetAttributeTransformData_0=a.asm.w).apply(null,arguments)},lb=a._emscripten_bind_PointAttribute_attribute_type_0= +function(){return(lb=a._emscripten_bind_PointAttribute_attribute_type_0=a.asm.x).apply(null,arguments)},mb=a._emscripten_bind_PointAttribute_data_type_0=function(){return(mb=a._emscripten_bind_PointAttribute_data_type_0=a.asm.y).apply(null,arguments)},nb=a._emscripten_bind_PointAttribute_num_components_0=function(){return(nb=a._emscripten_bind_PointAttribute_num_components_0=a.asm.z).apply(null,arguments)},ob=a._emscripten_bind_PointAttribute_normalized_0=function(){return(ob=a._emscripten_bind_PointAttribute_normalized_0= +a.asm.A).apply(null,arguments)},pb=a._emscripten_bind_PointAttribute_byte_stride_0=function(){return(pb=a._emscripten_bind_PointAttribute_byte_stride_0=a.asm.B).apply(null,arguments)},qb=a._emscripten_bind_PointAttribute_byte_offset_0=function(){return(qb=a._emscripten_bind_PointAttribute_byte_offset_0=a.asm.C).apply(null,arguments)},rb=a._emscripten_bind_PointAttribute_unique_id_0=function(){return(rb=a._emscripten_bind_PointAttribute_unique_id_0=a.asm.D).apply(null,arguments)},sb=a._emscripten_bind_PointAttribute___destroy___0= +function(){return(sb=a._emscripten_bind_PointAttribute___destroy___0=a.asm.E).apply(null,arguments)},Ha=a._emscripten_bind_AttributeQuantizationTransform_AttributeQuantizationTransform_0=function(){return(Ha=a._emscripten_bind_AttributeQuantizationTransform_AttributeQuantizationTransform_0=a.asm.F).apply(null,arguments)},tb=a._emscripten_bind_AttributeQuantizationTransform_InitFromAttribute_1=function(){return(tb=a._emscripten_bind_AttributeQuantizationTransform_InitFromAttribute_1=a.asm.G).apply(null, +arguments)},ub=a._emscripten_bind_AttributeQuantizationTransform_quantization_bits_0=function(){return(ub=a._emscripten_bind_AttributeQuantizationTransform_quantization_bits_0=a.asm.H).apply(null,arguments)},vb=a._emscripten_bind_AttributeQuantizationTransform_min_value_1=function(){return(vb=a._emscripten_bind_AttributeQuantizationTransform_min_value_1=a.asm.I).apply(null,arguments)},wb=a._emscripten_bind_AttributeQuantizationTransform_range_0=function(){return(wb=a._emscripten_bind_AttributeQuantizationTransform_range_0= +a.asm.J).apply(null,arguments)},xb=a._emscripten_bind_AttributeQuantizationTransform___destroy___0=function(){return(xb=a._emscripten_bind_AttributeQuantizationTransform___destroy___0=a.asm.K).apply(null,arguments)},Ia=a._emscripten_bind_AttributeOctahedronTransform_AttributeOctahedronTransform_0=function(){return(Ia=a._emscripten_bind_AttributeOctahedronTransform_AttributeOctahedronTransform_0=a.asm.L).apply(null,arguments)},yb=a._emscripten_bind_AttributeOctahedronTransform_InitFromAttribute_1= +function(){return(yb=a._emscripten_bind_AttributeOctahedronTransform_InitFromAttribute_1=a.asm.M).apply(null,arguments)},zb=a._emscripten_bind_AttributeOctahedronTransform_quantization_bits_0=function(){return(zb=a._emscripten_bind_AttributeOctahedronTransform_quantization_bits_0=a.asm.N).apply(null,arguments)},Ab=a._emscripten_bind_AttributeOctahedronTransform___destroy___0=function(){return(Ab=a._emscripten_bind_AttributeOctahedronTransform___destroy___0=a.asm.O).apply(null,arguments)},Ja=a._emscripten_bind_PointCloud_PointCloud_0= +function(){return(Ja=a._emscripten_bind_PointCloud_PointCloud_0=a.asm.P).apply(null,arguments)},Bb=a._emscripten_bind_PointCloud_num_attributes_0=function(){return(Bb=a._emscripten_bind_PointCloud_num_attributes_0=a.asm.Q).apply(null,arguments)},Cb=a._emscripten_bind_PointCloud_num_points_0=function(){return(Cb=a._emscripten_bind_PointCloud_num_points_0=a.asm.R).apply(null,arguments)},Db=a._emscripten_bind_PointCloud___destroy___0=function(){return(Db=a._emscripten_bind_PointCloud___destroy___0=a.asm.S).apply(null, +arguments)},Ka=a._emscripten_bind_Mesh_Mesh_0=function(){return(Ka=a._emscripten_bind_Mesh_Mesh_0=a.asm.T).apply(null,arguments)},Eb=a._emscripten_bind_Mesh_num_faces_0=function(){return(Eb=a._emscripten_bind_Mesh_num_faces_0=a.asm.U).apply(null,arguments)},Fb=a._emscripten_bind_Mesh_num_attributes_0=function(){return(Fb=a._emscripten_bind_Mesh_num_attributes_0=a.asm.V).apply(null,arguments)},Gb=a._emscripten_bind_Mesh_num_points_0=function(){return(Gb=a._emscripten_bind_Mesh_num_points_0=a.asm.W).apply(null, +arguments)},Hb=a._emscripten_bind_Mesh___destroy___0=function(){return(Hb=a._emscripten_bind_Mesh___destroy___0=a.asm.X).apply(null,arguments)},La=a._emscripten_bind_Metadata_Metadata_0=function(){return(La=a._emscripten_bind_Metadata_Metadata_0=a.asm.Y).apply(null,arguments)},Ib=a._emscripten_bind_Metadata___destroy___0=function(){return(Ib=a._emscripten_bind_Metadata___destroy___0=a.asm.Z).apply(null,arguments)},Jb=a._emscripten_bind_Status_code_0=function(){return(Jb=a._emscripten_bind_Status_code_0= +a.asm._).apply(null,arguments)},Kb=a._emscripten_bind_Status_ok_0=function(){return(Kb=a._emscripten_bind_Status_ok_0=a.asm.$).apply(null,arguments)},Lb=a._emscripten_bind_Status_error_msg_0=function(){return(Lb=a._emscripten_bind_Status_error_msg_0=a.asm.aa).apply(null,arguments)},Mb=a._emscripten_bind_Status___destroy___0=function(){return(Mb=a._emscripten_bind_Status___destroy___0=a.asm.ba).apply(null,arguments)},Ma=a._emscripten_bind_DracoFloat32Array_DracoFloat32Array_0=function(){return(Ma= +a._emscripten_bind_DracoFloat32Array_DracoFloat32Array_0=a.asm.ca).apply(null,arguments)},Nb=a._emscripten_bind_DracoFloat32Array_GetValue_1=function(){return(Nb=a._emscripten_bind_DracoFloat32Array_GetValue_1=a.asm.da).apply(null,arguments)},Ob=a._emscripten_bind_DracoFloat32Array_size_0=function(){return(Ob=a._emscripten_bind_DracoFloat32Array_size_0=a.asm.ea).apply(null,arguments)},Pb=a._emscripten_bind_DracoFloat32Array___destroy___0=function(){return(Pb=a._emscripten_bind_DracoFloat32Array___destroy___0= +a.asm.fa).apply(null,arguments)},Na=a._emscripten_bind_DracoInt8Array_DracoInt8Array_0=function(){return(Na=a._emscripten_bind_DracoInt8Array_DracoInt8Array_0=a.asm.ga).apply(null,arguments)},Qb=a._emscripten_bind_DracoInt8Array_GetValue_1=function(){return(Qb=a._emscripten_bind_DracoInt8Array_GetValue_1=a.asm.ha).apply(null,arguments)},Rb=a._emscripten_bind_DracoInt8Array_size_0=function(){return(Rb=a._emscripten_bind_DracoInt8Array_size_0=a.asm.ia).apply(null,arguments)},Sb=a._emscripten_bind_DracoInt8Array___destroy___0= +function(){return(Sb=a._emscripten_bind_DracoInt8Array___destroy___0=a.asm.ja).apply(null,arguments)},Oa=a._emscripten_bind_DracoUInt8Array_DracoUInt8Array_0=function(){return(Oa=a._emscripten_bind_DracoUInt8Array_DracoUInt8Array_0=a.asm.ka).apply(null,arguments)},Tb=a._emscripten_bind_DracoUInt8Array_GetValue_1=function(){return(Tb=a._emscripten_bind_DracoUInt8Array_GetValue_1=a.asm.la).apply(null,arguments)},Ub=a._emscripten_bind_DracoUInt8Array_size_0=function(){return(Ub=a._emscripten_bind_DracoUInt8Array_size_0= +a.asm.ma).apply(null,arguments)},Vb=a._emscripten_bind_DracoUInt8Array___destroy___0=function(){return(Vb=a._emscripten_bind_DracoUInt8Array___destroy___0=a.asm.na).apply(null,arguments)},Pa=a._emscripten_bind_DracoInt16Array_DracoInt16Array_0=function(){return(Pa=a._emscripten_bind_DracoInt16Array_DracoInt16Array_0=a.asm.oa).apply(null,arguments)},Wb=a._emscripten_bind_DracoInt16Array_GetValue_1=function(){return(Wb=a._emscripten_bind_DracoInt16Array_GetValue_1=a.asm.pa).apply(null,arguments)},Xb= +a._emscripten_bind_DracoInt16Array_size_0=function(){return(Xb=a._emscripten_bind_DracoInt16Array_size_0=a.asm.qa).apply(null,arguments)},Yb=a._emscripten_bind_DracoInt16Array___destroy___0=function(){return(Yb=a._emscripten_bind_DracoInt16Array___destroy___0=a.asm.ra).apply(null,arguments)},Qa=a._emscripten_bind_DracoUInt16Array_DracoUInt16Array_0=function(){return(Qa=a._emscripten_bind_DracoUInt16Array_DracoUInt16Array_0=a.asm.sa).apply(null,arguments)},Zb=a._emscripten_bind_DracoUInt16Array_GetValue_1= +function(){return(Zb=a._emscripten_bind_DracoUInt16Array_GetValue_1=a.asm.ta).apply(null,arguments)},$b=a._emscripten_bind_DracoUInt16Array_size_0=function(){return($b=a._emscripten_bind_DracoUInt16Array_size_0=a.asm.ua).apply(null,arguments)},ac=a._emscripten_bind_DracoUInt16Array___destroy___0=function(){return(ac=a._emscripten_bind_DracoUInt16Array___destroy___0=a.asm.va).apply(null,arguments)},Ra=a._emscripten_bind_DracoInt32Array_DracoInt32Array_0=function(){return(Ra=a._emscripten_bind_DracoInt32Array_DracoInt32Array_0= +a.asm.wa).apply(null,arguments)},bc=a._emscripten_bind_DracoInt32Array_GetValue_1=function(){return(bc=a._emscripten_bind_DracoInt32Array_GetValue_1=a.asm.xa).apply(null,arguments)},cc=a._emscripten_bind_DracoInt32Array_size_0=function(){return(cc=a._emscripten_bind_DracoInt32Array_size_0=a.asm.ya).apply(null,arguments)},dc=a._emscripten_bind_DracoInt32Array___destroy___0=function(){return(dc=a._emscripten_bind_DracoInt32Array___destroy___0=a.asm.za).apply(null,arguments)},Sa=a._emscripten_bind_DracoUInt32Array_DracoUInt32Array_0= +function(){return(Sa=a._emscripten_bind_DracoUInt32Array_DracoUInt32Array_0=a.asm.Aa).apply(null,arguments)},ec=a._emscripten_bind_DracoUInt32Array_GetValue_1=function(){return(ec=a._emscripten_bind_DracoUInt32Array_GetValue_1=a.asm.Ba).apply(null,arguments)},fc=a._emscripten_bind_DracoUInt32Array_size_0=function(){return(fc=a._emscripten_bind_DracoUInt32Array_size_0=a.asm.Ca).apply(null,arguments)},gc=a._emscripten_bind_DracoUInt32Array___destroy___0=function(){return(gc=a._emscripten_bind_DracoUInt32Array___destroy___0= +a.asm.Da).apply(null,arguments)},Ta=a._emscripten_bind_MetadataQuerier_MetadataQuerier_0=function(){return(Ta=a._emscripten_bind_MetadataQuerier_MetadataQuerier_0=a.asm.Ea).apply(null,arguments)},hc=a._emscripten_bind_MetadataQuerier_HasEntry_2=function(){return(hc=a._emscripten_bind_MetadataQuerier_HasEntry_2=a.asm.Fa).apply(null,arguments)},ic=a._emscripten_bind_MetadataQuerier_GetIntEntry_2=function(){return(ic=a._emscripten_bind_MetadataQuerier_GetIntEntry_2=a.asm.Ga).apply(null,arguments)},jc= +a._emscripten_bind_MetadataQuerier_GetIntEntryArray_3=function(){return(jc=a._emscripten_bind_MetadataQuerier_GetIntEntryArray_3=a.asm.Ha).apply(null,arguments)},kc=a._emscripten_bind_MetadataQuerier_GetDoubleEntry_2=function(){return(kc=a._emscripten_bind_MetadataQuerier_GetDoubleEntry_2=a.asm.Ia).apply(null,arguments)},lc=a._emscripten_bind_MetadataQuerier_GetStringEntry_2=function(){return(lc=a._emscripten_bind_MetadataQuerier_GetStringEntry_2=a.asm.Ja).apply(null,arguments)},mc=a._emscripten_bind_MetadataQuerier_NumEntries_1= +function(){return(mc=a._emscripten_bind_MetadataQuerier_NumEntries_1=a.asm.Ka).apply(null,arguments)},nc=a._emscripten_bind_MetadataQuerier_GetEntryName_2=function(){return(nc=a._emscripten_bind_MetadataQuerier_GetEntryName_2=a.asm.La).apply(null,arguments)},oc=a._emscripten_bind_MetadataQuerier___destroy___0=function(){return(oc=a._emscripten_bind_MetadataQuerier___destroy___0=a.asm.Ma).apply(null,arguments)},Ua=a._emscripten_bind_Decoder_Decoder_0=function(){return(Ua=a._emscripten_bind_Decoder_Decoder_0= +a.asm.Na).apply(null,arguments)},pc=a._emscripten_bind_Decoder_DecodeArrayToPointCloud_3=function(){return(pc=a._emscripten_bind_Decoder_DecodeArrayToPointCloud_3=a.asm.Oa).apply(null,arguments)},qc=a._emscripten_bind_Decoder_DecodeArrayToMesh_3=function(){return(qc=a._emscripten_bind_Decoder_DecodeArrayToMesh_3=a.asm.Pa).apply(null,arguments)},rc=a._emscripten_bind_Decoder_GetAttributeId_2=function(){return(rc=a._emscripten_bind_Decoder_GetAttributeId_2=a.asm.Qa).apply(null,arguments)},sc=a._emscripten_bind_Decoder_GetAttributeIdByName_2= +function(){return(sc=a._emscripten_bind_Decoder_GetAttributeIdByName_2=a.asm.Ra).apply(null,arguments)},tc=a._emscripten_bind_Decoder_GetAttributeIdByMetadataEntry_3=function(){return(tc=a._emscripten_bind_Decoder_GetAttributeIdByMetadataEntry_3=a.asm.Sa).apply(null,arguments)},uc=a._emscripten_bind_Decoder_GetAttribute_2=function(){return(uc=a._emscripten_bind_Decoder_GetAttribute_2=a.asm.Ta).apply(null,arguments)},vc=a._emscripten_bind_Decoder_GetAttributeByUniqueId_2=function(){return(vc=a._emscripten_bind_Decoder_GetAttributeByUniqueId_2= +a.asm.Ua).apply(null,arguments)},wc=a._emscripten_bind_Decoder_GetMetadata_1=function(){return(wc=a._emscripten_bind_Decoder_GetMetadata_1=a.asm.Va).apply(null,arguments)},xc=a._emscripten_bind_Decoder_GetAttributeMetadata_2=function(){return(xc=a._emscripten_bind_Decoder_GetAttributeMetadata_2=a.asm.Wa).apply(null,arguments)},yc=a._emscripten_bind_Decoder_GetFaceFromMesh_3=function(){return(yc=a._emscripten_bind_Decoder_GetFaceFromMesh_3=a.asm.Xa).apply(null,arguments)},zc=a._emscripten_bind_Decoder_GetTriangleStripsFromMesh_2= +function(){return(zc=a._emscripten_bind_Decoder_GetTriangleStripsFromMesh_2=a.asm.Ya).apply(null,arguments)},Ac=a._emscripten_bind_Decoder_GetTrianglesUInt16Array_3=function(){return(Ac=a._emscripten_bind_Decoder_GetTrianglesUInt16Array_3=a.asm.Za).apply(null,arguments)},Bc=a._emscripten_bind_Decoder_GetTrianglesUInt32Array_3=function(){return(Bc=a._emscripten_bind_Decoder_GetTrianglesUInt32Array_3=a.asm._a).apply(null,arguments)},Cc=a._emscripten_bind_Decoder_GetAttributeFloat_3=function(){return(Cc= +a._emscripten_bind_Decoder_GetAttributeFloat_3=a.asm.$a).apply(null,arguments)},Dc=a._emscripten_bind_Decoder_GetAttributeFloatForAllPoints_3=function(){return(Dc=a._emscripten_bind_Decoder_GetAttributeFloatForAllPoints_3=a.asm.ab).apply(null,arguments)},Ec=a._emscripten_bind_Decoder_GetAttributeIntForAllPoints_3=function(){return(Ec=a._emscripten_bind_Decoder_GetAttributeIntForAllPoints_3=a.asm.bb).apply(null,arguments)},Fc=a._emscripten_bind_Decoder_GetAttributeInt8ForAllPoints_3=function(){return(Fc= +a._emscripten_bind_Decoder_GetAttributeInt8ForAllPoints_3=a.asm.cb).apply(null,arguments)},Gc=a._emscripten_bind_Decoder_GetAttributeUInt8ForAllPoints_3=function(){return(Gc=a._emscripten_bind_Decoder_GetAttributeUInt8ForAllPoints_3=a.asm.db).apply(null,arguments)},Hc=a._emscripten_bind_Decoder_GetAttributeInt16ForAllPoints_3=function(){return(Hc=a._emscripten_bind_Decoder_GetAttributeInt16ForAllPoints_3=a.asm.eb).apply(null,arguments)},Ic=a._emscripten_bind_Decoder_GetAttributeUInt16ForAllPoints_3= +function(){return(Ic=a._emscripten_bind_Decoder_GetAttributeUInt16ForAllPoints_3=a.asm.fb).apply(null,arguments)},Jc=a._emscripten_bind_Decoder_GetAttributeInt32ForAllPoints_3=function(){return(Jc=a._emscripten_bind_Decoder_GetAttributeInt32ForAllPoints_3=a.asm.gb).apply(null,arguments)},Kc=a._emscripten_bind_Decoder_GetAttributeUInt32ForAllPoints_3=function(){return(Kc=a._emscripten_bind_Decoder_GetAttributeUInt32ForAllPoints_3=a.asm.hb).apply(null,arguments)},Lc=a._emscripten_bind_Decoder_GetAttributeDataArrayForAllPoints_5= +function(){return(Lc=a._emscripten_bind_Decoder_GetAttributeDataArrayForAllPoints_5=a.asm.ib).apply(null,arguments)},Mc=a._emscripten_bind_Decoder_SkipAttributeTransform_1=function(){return(Mc=a._emscripten_bind_Decoder_SkipAttributeTransform_1=a.asm.jb).apply(null,arguments)},Nc=a._emscripten_bind_Decoder_GetEncodedGeometryType_Deprecated_1=function(){return(Nc=a._emscripten_bind_Decoder_GetEncodedGeometryType_Deprecated_1=a.asm.kb).apply(null,arguments)},Oc=a._emscripten_bind_Decoder_DecodeBufferToPointCloud_2= +function(){return(Oc=a._emscripten_bind_Decoder_DecodeBufferToPointCloud_2=a.asm.lb).apply(null,arguments)},Pc=a._emscripten_bind_Decoder_DecodeBufferToMesh_2=function(){return(Pc=a._emscripten_bind_Decoder_DecodeBufferToMesh_2=a.asm.mb).apply(null,arguments)},Qc=a._emscripten_bind_Decoder___destroy___0=function(){return(Qc=a._emscripten_bind_Decoder___destroy___0=a.asm.nb).apply(null,arguments)},Rc=a._emscripten_enum_draco_AttributeTransformType_ATTRIBUTE_INVALID_TRANSFORM=function(){return(Rc=a._emscripten_enum_draco_AttributeTransformType_ATTRIBUTE_INVALID_TRANSFORM= +a.asm.ob).apply(null,arguments)},Sc=a._emscripten_enum_draco_AttributeTransformType_ATTRIBUTE_NO_TRANSFORM=function(){return(Sc=a._emscripten_enum_draco_AttributeTransformType_ATTRIBUTE_NO_TRANSFORM=a.asm.pb).apply(null,arguments)},Tc=a._emscripten_enum_draco_AttributeTransformType_ATTRIBUTE_QUANTIZATION_TRANSFORM=function(){return(Tc=a._emscripten_enum_draco_AttributeTransformType_ATTRIBUTE_QUANTIZATION_TRANSFORM=a.asm.qb).apply(null,arguments)},Uc=a._emscripten_enum_draco_AttributeTransformType_ATTRIBUTE_OCTAHEDRON_TRANSFORM= +function(){return(Uc=a._emscripten_enum_draco_AttributeTransformType_ATTRIBUTE_OCTAHEDRON_TRANSFORM=a.asm.rb).apply(null,arguments)},Vc=a._emscripten_enum_draco_GeometryAttribute_Type_INVALID=function(){return(Vc=a._emscripten_enum_draco_GeometryAttribute_Type_INVALID=a.asm.sb).apply(null,arguments)},Wc=a._emscripten_enum_draco_GeometryAttribute_Type_POSITION=function(){return(Wc=a._emscripten_enum_draco_GeometryAttribute_Type_POSITION=a.asm.tb).apply(null,arguments)},Xc=a._emscripten_enum_draco_GeometryAttribute_Type_NORMAL= +function(){return(Xc=a._emscripten_enum_draco_GeometryAttribute_Type_NORMAL=a.asm.ub).apply(null,arguments)},Yc=a._emscripten_enum_draco_GeometryAttribute_Type_COLOR=function(){return(Yc=a._emscripten_enum_draco_GeometryAttribute_Type_COLOR=a.asm.vb).apply(null,arguments)},Zc=a._emscripten_enum_draco_GeometryAttribute_Type_TEX_COORD=function(){return(Zc=a._emscripten_enum_draco_GeometryAttribute_Type_TEX_COORD=a.asm.wb).apply(null,arguments)},$c=a._emscripten_enum_draco_GeometryAttribute_Type_GENERIC= +function(){return($c=a._emscripten_enum_draco_GeometryAttribute_Type_GENERIC=a.asm.xb).apply(null,arguments)},ad=a._emscripten_enum_draco_EncodedGeometryType_INVALID_GEOMETRY_TYPE=function(){return(ad=a._emscripten_enum_draco_EncodedGeometryType_INVALID_GEOMETRY_TYPE=a.asm.yb).apply(null,arguments)},bd=a._emscripten_enum_draco_EncodedGeometryType_POINT_CLOUD=function(){return(bd=a._emscripten_enum_draco_EncodedGeometryType_POINT_CLOUD=a.asm.zb).apply(null,arguments)},cd=a._emscripten_enum_draco_EncodedGeometryType_TRIANGULAR_MESH= +function(){return(cd=a._emscripten_enum_draco_EncodedGeometryType_TRIANGULAR_MESH=a.asm.Ab).apply(null,arguments)},dd=a._emscripten_enum_draco_DataType_DT_INVALID=function(){return(dd=a._emscripten_enum_draco_DataType_DT_INVALID=a.asm.Bb).apply(null,arguments)},ed=a._emscripten_enum_draco_DataType_DT_INT8=function(){return(ed=a._emscripten_enum_draco_DataType_DT_INT8=a.asm.Cb).apply(null,arguments)},fd=a._emscripten_enum_draco_DataType_DT_UINT8=function(){return(fd=a._emscripten_enum_draco_DataType_DT_UINT8= +a.asm.Db).apply(null,arguments)},gd=a._emscripten_enum_draco_DataType_DT_INT16=function(){return(gd=a._emscripten_enum_draco_DataType_DT_INT16=a.asm.Eb).apply(null,arguments)},hd=a._emscripten_enum_draco_DataType_DT_UINT16=function(){return(hd=a._emscripten_enum_draco_DataType_DT_UINT16=a.asm.Fb).apply(null,arguments)},id=a._emscripten_enum_draco_DataType_DT_INT32=function(){return(id=a._emscripten_enum_draco_DataType_DT_INT32=a.asm.Gb).apply(null,arguments)},jd=a._emscripten_enum_draco_DataType_DT_UINT32= +function(){return(jd=a._emscripten_enum_draco_DataType_DT_UINT32=a.asm.Hb).apply(null,arguments)},kd=a._emscripten_enum_draco_DataType_DT_INT64=function(){return(kd=a._emscripten_enum_draco_DataType_DT_INT64=a.asm.Ib).apply(null,arguments)},ld=a._emscripten_enum_draco_DataType_DT_UINT64=function(){return(ld=a._emscripten_enum_draco_DataType_DT_UINT64=a.asm.Jb).apply(null,arguments)},md=a._emscripten_enum_draco_DataType_DT_FLOAT32=function(){return(md=a._emscripten_enum_draco_DataType_DT_FLOAT32=a.asm.Kb).apply(null, +arguments)},nd=a._emscripten_enum_draco_DataType_DT_FLOAT64=function(){return(nd=a._emscripten_enum_draco_DataType_DT_FLOAT64=a.asm.Lb).apply(null,arguments)},od=a._emscripten_enum_draco_DataType_DT_BOOL=function(){return(od=a._emscripten_enum_draco_DataType_DT_BOOL=a.asm.Mb).apply(null,arguments)},pd=a._emscripten_enum_draco_DataType_DT_TYPES_COUNT=function(){return(pd=a._emscripten_enum_draco_DataType_DT_TYPES_COUNT=a.asm.Nb).apply(null,arguments)},qd=a._emscripten_enum_draco_StatusCode_OK=function(){return(qd= +a._emscripten_enum_draco_StatusCode_OK=a.asm.Ob).apply(null,arguments)},rd=a._emscripten_enum_draco_StatusCode_DRACO_ERROR=function(){return(rd=a._emscripten_enum_draco_StatusCode_DRACO_ERROR=a.asm.Pb).apply(null,arguments)},sd=a._emscripten_enum_draco_StatusCode_IO_ERROR=function(){return(sd=a._emscripten_enum_draco_StatusCode_IO_ERROR=a.asm.Qb).apply(null,arguments)},td=a._emscripten_enum_draco_StatusCode_INVALID_PARAMETER=function(){return(td=a._emscripten_enum_draco_StatusCode_INVALID_PARAMETER= +a.asm.Rb).apply(null,arguments)},ud=a._emscripten_enum_draco_StatusCode_UNSUPPORTED_VERSION=function(){return(ud=a._emscripten_enum_draco_StatusCode_UNSUPPORTED_VERSION=a.asm.Sb).apply(null,arguments)},vd=a._emscripten_enum_draco_StatusCode_UNKNOWN_VERSION=function(){return(vd=a._emscripten_enum_draco_StatusCode_UNKNOWN_VERSION=a.asm.Tb).apply(null,arguments)},bb=a._malloc=function(){return(bb=a._malloc=a.asm.Ub).apply(null,arguments)};a._free=function(){return(a._free=a.asm.Vb).apply(null,arguments)}; +var ya=a.___cxa_is_pointer_type=function(){return(ya=a.___cxa_is_pointer_type=a.asm.Wb).apply(null,arguments)};a.___start_em_js=15856;a.___stop_em_js=15954;var ka;ia=function b(){ka||ba();ka||(ia=b)};if(a.preInit)for("function"==typeof a.preInit&&(a.preInit=[a.preInit]);0=r.size?(0>>=0;switch(c.BYTES_PER_ELEMENT){case 2:d>>>=1;break;case 4:d>>>=2;break;case 8:d>>>=3}for(var g=0;gb.byteLength)return a.INVALID_GEOMETRY_TYPE;switch(b[7]){case 0:return a.POINT_CLOUD; +case 1:return a.TRIANGULAR_MESH;default:return a.INVALID_GEOMETRY_TYPE}};return n.ready}}();"object"===typeof exports&&"object"===typeof module?module.exports=DracoDecoderModule:"function"===typeof define&&define.amd?define([],function(){return DracoDecoderModule}):"object"===typeof exports&&(exports.DracoDecoderModule=DracoDecoderModule); diff --git a/javascript/draco_wasm_wrapper_gltf.js b/javascript/draco_wasm_wrapper_gltf.js index 28f3821..9529d97 100644 --- a/javascript/draco_wasm_wrapper_gltf.js +++ b/javascript/draco_wasm_wrapper_gltf.js @@ -5,113 +5,112 @@ var $jscomp$lookupPolyfilledValue=function(h,n){var k=$jscomp.propertyToPolyfill $jscomp.polyfillUnisolated=function(h,n,k,p){k=$jscomp.global;h=h.split(".");for(p=0;p>>0,$jscomp.propertyToPolyfillSymbol[l]=$jscomp.IS_SYMBOL_NATIVE? $jscomp.global.Symbol(l):$jscomp.POLYFILL_PREFIX+k+"$"+l),$jscomp.defineProperty(p,$jscomp.propertyToPolyfillSymbol[l],{configurable:!0,writable:!0,value:n})))}; -$jscomp.polyfill("Promise",function(h){function n(){this.batch_=null}function k(f){return f instanceof l?f:new l(function(q,v){q(f)})}if(h&&(!($jscomp.FORCE_POLYFILL_PROMISE||$jscomp.FORCE_POLYFILL_PROMISE_WHEN_NO_UNHANDLED_REJECTION&&"undefined"===typeof $jscomp.global.PromiseRejectionEvent)||!$jscomp.global.Promise||-1===$jscomp.global.Promise.toString().indexOf("[native code]")))return h;n.prototype.asyncExecute=function(f){if(null==this.batch_){this.batch_=[];var q=this;this.asyncExecuteFunction(function(){q.executeBatch_()})}this.batch_.push(f)}; -var p=$jscomp.global.setTimeout;n.prototype.asyncExecuteFunction=function(f){p(f,0)};n.prototype.executeBatch_=function(){for(;this.batch_&&this.batch_.length;){var f=this.batch_;this.batch_=[];for(var q=0;q=y}},"es6","es3"); $jscomp.polyfill("Array.prototype.copyWithin",function(h){function n(k){k=Number(k);return Infinity===k||-Infinity===k?k:k|0}return h?h:function(k,p,l){var y=this.length;k=n(k);p=n(p);l=void 0===l?y:n(l);k=0>k?Math.max(y+k,0):Math.min(k,y);p=0>p?Math.max(y+p,0):Math.min(p,y);l=0>l?Math.max(y+l,0):Math.min(l,y);if(kp;)--l in this?this[--k]=this[l]:delete this[--k];return this}},"es6","es3"); $jscomp.typedArrayCopyWithin=function(h){return h?h:Array.prototype.copyWithin};$jscomp.polyfill("Int8Array.prototype.copyWithin",$jscomp.typedArrayCopyWithin,"es6","es5");$jscomp.polyfill("Uint8Array.prototype.copyWithin",$jscomp.typedArrayCopyWithin,"es6","es5");$jscomp.polyfill("Uint8ClampedArray.prototype.copyWithin",$jscomp.typedArrayCopyWithin,"es6","es5");$jscomp.polyfill("Int16Array.prototype.copyWithin",$jscomp.typedArrayCopyWithin,"es6","es5"); $jscomp.polyfill("Uint16Array.prototype.copyWithin",$jscomp.typedArrayCopyWithin,"es6","es5");$jscomp.polyfill("Int32Array.prototype.copyWithin",$jscomp.typedArrayCopyWithin,"es6","es5");$jscomp.polyfill("Uint32Array.prototype.copyWithin",$jscomp.typedArrayCopyWithin,"es6","es5");$jscomp.polyfill("Float32Array.prototype.copyWithin",$jscomp.typedArrayCopyWithin,"es6","es5");$jscomp.polyfill("Float64Array.prototype.copyWithin",$jscomp.typedArrayCopyWithin,"es6","es5"); -var DracoDecoderModule=function(){var h="undefined"!==typeof document&&document.currentScript?document.currentScript.src:void 0;"undefined"!==typeof __filename&&(h=h||__filename);return function(n){function k(e){return a.locateFile?a.locateFile(e,U):U+e}function p(e,b){if(e){var c=ia;var d=e+b;for(b=e;c[b]&&!(b>=d);)++b;if(16g?d+=String.fromCharCode(g):(g-=65536,d+=String.fromCharCode(55296|g>>10,56320|g&1023))}}else d+=String.fromCharCode(g)}c=d}}else c="";return c}function l(e){va=e;a.HEAP8=W=new Int8Array(e);a.HEAP16=new Int16Array(e);a.HEAP32=ca=new Int32Array(e);a.HEAPU8=ia=new Uint8Array(e);a.HEAPU16=new Uint16Array(e);a.HEAPU32=Y=new Uint32Array(e);a.HEAPF32=new Float32Array(e);a.HEAPF64=new Float64Array(e)}function y(e){if(a.onAbort)a.onAbort(e); -e="Aborted("+e+")";da(e);wa=!0;e=new WebAssembly.RuntimeError(e+". Build with -sASSERTIONS for more info.");na(e);throw e;}function f(e){try{if(e==P&&ea)return new Uint8Array(ea);if(oa)return oa(e);throw"both async and sync fetching of the wasm failed";}catch(b){y(b)}}function q(){if(!ea&&(xa||fa)){if("function"==typeof fetch&&!P.startsWith("file://"))return fetch(P,{credentials:"same-origin"}).then(function(e){if(!e.ok)throw"failed to load wasm binary file at '"+P+"'";return e.arrayBuffer()}).catch(function(){return f(P)}); -if(pa)return new Promise(function(e,b){pa(P,function(c){e(new Uint8Array(c))},b)})}return Promise.resolve().then(function(){return f(P)})}function v(e){for(;0=ja.length&&(ja.length=e+1),ja[e]=b=ya.get(e));return b}function O(e){this.excPtr=e;this.ptr=e-24;this.set_type=function(b){Y[this.ptr+4>>2]=b};this.get_type= -function(){return Y[this.ptr+4>>2]};this.set_destructor=function(b){Y[this.ptr+8>>2]=b};this.get_destructor=function(){return Y[this.ptr+8>>2]};this.set_refcount=function(b){ca[this.ptr>>2]=b};this.set_caught=function(b){W[this.ptr+12>>0]=b?1:0};this.get_caught=function(){return 0!=W[this.ptr+12>>0]};this.set_rethrown=function(b){W[this.ptr+13>>0]=b?1:0};this.get_rethrown=function(){return 0!=W[this.ptr+13>>0]};this.init=function(b,c){this.set_adjusted_ptr(0);this.set_type(b);this.set_destructor(c); -this.set_refcount(0);this.set_caught(!1);this.set_rethrown(!1)};this.add_ref=function(){ca[this.ptr>>2]+=1};this.release_ref=function(){var b=ca[this.ptr>>2];ca[this.ptr>>2]=b-1;return 1===b};this.set_adjusted_ptr=function(b){Y[this.ptr+16>>2]=b};this.get_adjusted_ptr=function(){return Y[this.ptr+16>>2]};this.get_exception_ptr=function(){if(za(this.get_type()))return Y[this.excPtr>>2];var b=this.get_adjusted_ptr();return 0!==b?b:this.excPtr}}function Z(e){function b(){if(!ka&&(ka=!0,a.calledRun=!0, -!wa)){Aa=!0;v(qa);Ba(a);if(a.onRuntimeInitialized)a.onRuntimeInitialized();if(a.postRun)for("function"==typeof a.postRun&&(a.postRun=[a.postRun]);a.postRun.length;)Ca.unshift(a.postRun.shift());v(Ca)}}if(!(0=d&&(d=65536+((d&1023)<<10)|e.charCodeAt(++c)&1023);127>=d?++b:b=2047>=d?b+2:65535>=d?b+3:b+4}b=Array(b+1);c=0;d=b.length;if(0=u){var aa=e.charCodeAt(++g);u=65536+((u&1023)<<10)|aa&1023}if(127>=u){if(c>=d)break; -b[c++]=u}else{if(2047>=u){if(c+1>=d)break;b[c++]=192|u>>6}else{if(65535>=u){if(c+2>=d)break;b[c++]=224|u>>12}else{if(c+3>=d)break;b[c++]=240|u>>18;b[c++]=128|u>>12&63}b[c++]=128|u>>6&63}b[c++]=128|u&63}}b[c]=0}e=r.alloc(b,W);r.copy(b,W,e);return e}return e}function ra(e){if("object"===typeof e){var b=r.alloc(e,W);r.copy(e,W,b);return b}return e}function X(){throw"cannot construct a VoidPtr, no constructor in IDL";}function S(){this.ptr=Ea();x(S)[this.ptr]=this}function Q(){this.ptr=Fa();x(Q)[this.ptr]= -this}function V(){this.ptr=Ga();x(V)[this.ptr]=this}function w(){this.ptr=Ha();x(w)[this.ptr]=this}function C(){this.ptr=Ia();x(C)[this.ptr]=this}function F(){this.ptr=Ja();x(F)[this.ptr]=this}function G(){this.ptr=Ka();x(G)[this.ptr]=this}function E(){this.ptr=La();x(E)[this.ptr]=this}function T(){this.ptr=Ma();x(T)[this.ptr]=this}function B(){throw"cannot construct a Status, no constructor in IDL";}function H(){this.ptr=Na();x(H)[this.ptr]=this}function I(){this.ptr=Oa();x(I)[this.ptr]=this}function J(){this.ptr= -Pa();x(J)[this.ptr]=this}function K(){this.ptr=Qa();x(K)[this.ptr]=this}function L(){this.ptr=Ra();x(L)[this.ptr]=this}function M(){this.ptr=Sa();x(M)[this.ptr]=this}function N(){this.ptr=Ta();x(N)[this.ptr]=this}function z(){this.ptr=Ua();x(z)[this.ptr]=this}function m(){this.ptr=Va();x(m)[this.ptr]=this}n=n||{};var a="undefined"!=typeof n?n:{},Ba,na;a.ready=new Promise(function(e,b){Ba=e;na=b});var Wa=!1,Xa=!1;a.onRuntimeInitialized=function(){Wa=!0;if(Xa&&"function"===typeof a.onModuleLoaded)a.onModuleLoaded(a)}; -a.onModuleParsed=function(){Xa=!0;if(Wa&&"function"===typeof a.onModuleLoaded)a.onModuleLoaded(a)};a.isVersionSupported=function(e){if("string"!==typeof e)return!1;e=e.split(".");return 2>e.length||3=e[1]?!0:0!=e[0]||10>>=0;if(2147483648=c;c*=2){var d=b*(1+.2/c);d=Math.min(d,e+100663296);var g=Math;d=Math.max(e,d);g=g.min.call(g,2147483648,d+(65536-d%65536)%65536);a:{try{ma.grow(g-va.byteLength+65535>>>16);l(ma.buffer);var u=1;break a}catch(aa){}u=void 0}if(u)return!0}return!1}}; -(function(){function e(g,u){a.asm=g.exports;ma=a.asm.f;l(ma.buffer);ya=a.asm.h;qa.unshift(a.asm.g);ba--;a.monitorRunDependencies&&a.monitorRunDependencies(ba);0==ba&&(null!==ta&&(clearInterval(ta),ta=null),ha&&(g=ha,ha=null,g()))}function b(g){e(g.instance)}function c(g){return q().then(function(u){return WebAssembly.instantiate(u,d)}).then(function(u){return u}).then(g,function(u){da("failed to asynchronously prepare wasm: "+u);y(u)})}var d={a:wd};ba++;a.monitorRunDependencies&&a.monitorRunDependencies(ba); -if(a.instantiateWasm)try{return a.instantiateWasm(d,e)}catch(g){return da("Module.instantiateWasm callback failed with error: "+g),!1}(function(){return ea||"function"!=typeof WebAssembly.instantiateStreaming||P.startsWith("data:application/octet-stream;base64,")||P.startsWith("file://")||Za||"function"!=typeof fetch?c(b):fetch(P,{credentials:"same-origin"}).then(function(g){return WebAssembly.instantiateStreaming(g,d).then(b,function(u){da("wasm streaming compile failed: "+u);da("falling back to ArrayBuffer instantiation"); -return c(b)})})})().catch(na);return{}})();a.___wasm_call_ctors=function(){return(a.___wasm_call_ctors=a.asm.g).apply(null,arguments)};var cb=a._emscripten_bind_VoidPtr___destroy___0=function(){return(cb=a._emscripten_bind_VoidPtr___destroy___0=a.asm.i).apply(null,arguments)},Ea=a._emscripten_bind_DecoderBuffer_DecoderBuffer_0=function(){return(Ea=a._emscripten_bind_DecoderBuffer_DecoderBuffer_0=a.asm.j).apply(null,arguments)},db=a._emscripten_bind_DecoderBuffer_Init_2=function(){return(db=a._emscripten_bind_DecoderBuffer_Init_2= -a.asm.k).apply(null,arguments)},eb=a._emscripten_bind_DecoderBuffer___destroy___0=function(){return(eb=a._emscripten_bind_DecoderBuffer___destroy___0=a.asm.l).apply(null,arguments)},Fa=a._emscripten_bind_AttributeTransformData_AttributeTransformData_0=function(){return(Fa=a._emscripten_bind_AttributeTransformData_AttributeTransformData_0=a.asm.m).apply(null,arguments)},fb=a._emscripten_bind_AttributeTransformData_transform_type_0=function(){return(fb=a._emscripten_bind_AttributeTransformData_transform_type_0= -a.asm.n).apply(null,arguments)},gb=a._emscripten_bind_AttributeTransformData___destroy___0=function(){return(gb=a._emscripten_bind_AttributeTransformData___destroy___0=a.asm.o).apply(null,arguments)},Ga=a._emscripten_bind_GeometryAttribute_GeometryAttribute_0=function(){return(Ga=a._emscripten_bind_GeometryAttribute_GeometryAttribute_0=a.asm.p).apply(null,arguments)},hb=a._emscripten_bind_GeometryAttribute___destroy___0=function(){return(hb=a._emscripten_bind_GeometryAttribute___destroy___0=a.asm.q).apply(null, -arguments)},Ha=a._emscripten_bind_PointAttribute_PointAttribute_0=function(){return(Ha=a._emscripten_bind_PointAttribute_PointAttribute_0=a.asm.r).apply(null,arguments)},ib=a._emscripten_bind_PointAttribute_size_0=function(){return(ib=a._emscripten_bind_PointAttribute_size_0=a.asm.s).apply(null,arguments)},jb=a._emscripten_bind_PointAttribute_GetAttributeTransformData_0=function(){return(jb=a._emscripten_bind_PointAttribute_GetAttributeTransformData_0=a.asm.t).apply(null,arguments)},kb=a._emscripten_bind_PointAttribute_attribute_type_0= -function(){return(kb=a._emscripten_bind_PointAttribute_attribute_type_0=a.asm.u).apply(null,arguments)},lb=a._emscripten_bind_PointAttribute_data_type_0=function(){return(lb=a._emscripten_bind_PointAttribute_data_type_0=a.asm.v).apply(null,arguments)},mb=a._emscripten_bind_PointAttribute_num_components_0=function(){return(mb=a._emscripten_bind_PointAttribute_num_components_0=a.asm.w).apply(null,arguments)},nb=a._emscripten_bind_PointAttribute_normalized_0=function(){return(nb=a._emscripten_bind_PointAttribute_normalized_0= -a.asm.x).apply(null,arguments)},ob=a._emscripten_bind_PointAttribute_byte_stride_0=function(){return(ob=a._emscripten_bind_PointAttribute_byte_stride_0=a.asm.y).apply(null,arguments)},pb=a._emscripten_bind_PointAttribute_byte_offset_0=function(){return(pb=a._emscripten_bind_PointAttribute_byte_offset_0=a.asm.z).apply(null,arguments)},qb=a._emscripten_bind_PointAttribute_unique_id_0=function(){return(qb=a._emscripten_bind_PointAttribute_unique_id_0=a.asm.A).apply(null,arguments)},rb=a._emscripten_bind_PointAttribute___destroy___0= -function(){return(rb=a._emscripten_bind_PointAttribute___destroy___0=a.asm.B).apply(null,arguments)},Ia=a._emscripten_bind_AttributeQuantizationTransform_AttributeQuantizationTransform_0=function(){return(Ia=a._emscripten_bind_AttributeQuantizationTransform_AttributeQuantizationTransform_0=a.asm.C).apply(null,arguments)},sb=a._emscripten_bind_AttributeQuantizationTransform_InitFromAttribute_1=function(){return(sb=a._emscripten_bind_AttributeQuantizationTransform_InitFromAttribute_1=a.asm.D).apply(null, -arguments)},tb=a._emscripten_bind_AttributeQuantizationTransform_quantization_bits_0=function(){return(tb=a._emscripten_bind_AttributeQuantizationTransform_quantization_bits_0=a.asm.E).apply(null,arguments)},ub=a._emscripten_bind_AttributeQuantizationTransform_min_value_1=function(){return(ub=a._emscripten_bind_AttributeQuantizationTransform_min_value_1=a.asm.F).apply(null,arguments)},vb=a._emscripten_bind_AttributeQuantizationTransform_range_0=function(){return(vb=a._emscripten_bind_AttributeQuantizationTransform_range_0= -a.asm.G).apply(null,arguments)},wb=a._emscripten_bind_AttributeQuantizationTransform___destroy___0=function(){return(wb=a._emscripten_bind_AttributeQuantizationTransform___destroy___0=a.asm.H).apply(null,arguments)},Ja=a._emscripten_bind_AttributeOctahedronTransform_AttributeOctahedronTransform_0=function(){return(Ja=a._emscripten_bind_AttributeOctahedronTransform_AttributeOctahedronTransform_0=a.asm.I).apply(null,arguments)},xb=a._emscripten_bind_AttributeOctahedronTransform_InitFromAttribute_1= -function(){return(xb=a._emscripten_bind_AttributeOctahedronTransform_InitFromAttribute_1=a.asm.J).apply(null,arguments)},yb=a._emscripten_bind_AttributeOctahedronTransform_quantization_bits_0=function(){return(yb=a._emscripten_bind_AttributeOctahedronTransform_quantization_bits_0=a.asm.K).apply(null,arguments)},zb=a._emscripten_bind_AttributeOctahedronTransform___destroy___0=function(){return(zb=a._emscripten_bind_AttributeOctahedronTransform___destroy___0=a.asm.L).apply(null,arguments)},Ka=a._emscripten_bind_PointCloud_PointCloud_0= -function(){return(Ka=a._emscripten_bind_PointCloud_PointCloud_0=a.asm.M).apply(null,arguments)},Ab=a._emscripten_bind_PointCloud_num_attributes_0=function(){return(Ab=a._emscripten_bind_PointCloud_num_attributes_0=a.asm.N).apply(null,arguments)},Bb=a._emscripten_bind_PointCloud_num_points_0=function(){return(Bb=a._emscripten_bind_PointCloud_num_points_0=a.asm.O).apply(null,arguments)},Cb=a._emscripten_bind_PointCloud___destroy___0=function(){return(Cb=a._emscripten_bind_PointCloud___destroy___0=a.asm.P).apply(null, -arguments)},La=a._emscripten_bind_Mesh_Mesh_0=function(){return(La=a._emscripten_bind_Mesh_Mesh_0=a.asm.Q).apply(null,arguments)},Db=a._emscripten_bind_Mesh_num_faces_0=function(){return(Db=a._emscripten_bind_Mesh_num_faces_0=a.asm.R).apply(null,arguments)},Eb=a._emscripten_bind_Mesh_num_attributes_0=function(){return(Eb=a._emscripten_bind_Mesh_num_attributes_0=a.asm.S).apply(null,arguments)},Fb=a._emscripten_bind_Mesh_num_points_0=function(){return(Fb=a._emscripten_bind_Mesh_num_points_0=a.asm.T).apply(null, -arguments)},Gb=a._emscripten_bind_Mesh___destroy___0=function(){return(Gb=a._emscripten_bind_Mesh___destroy___0=a.asm.U).apply(null,arguments)},Ma=a._emscripten_bind_Metadata_Metadata_0=function(){return(Ma=a._emscripten_bind_Metadata_Metadata_0=a.asm.V).apply(null,arguments)},Hb=a._emscripten_bind_Metadata___destroy___0=function(){return(Hb=a._emscripten_bind_Metadata___destroy___0=a.asm.W).apply(null,arguments)},Ib=a._emscripten_bind_Status_code_0=function(){return(Ib=a._emscripten_bind_Status_code_0= -a.asm.X).apply(null,arguments)},Jb=a._emscripten_bind_Status_ok_0=function(){return(Jb=a._emscripten_bind_Status_ok_0=a.asm.Y).apply(null,arguments)},Kb=a._emscripten_bind_Status_error_msg_0=function(){return(Kb=a._emscripten_bind_Status_error_msg_0=a.asm.Z).apply(null,arguments)},Lb=a._emscripten_bind_Status___destroy___0=function(){return(Lb=a._emscripten_bind_Status___destroy___0=a.asm._).apply(null,arguments)},Na=a._emscripten_bind_DracoFloat32Array_DracoFloat32Array_0=function(){return(Na=a._emscripten_bind_DracoFloat32Array_DracoFloat32Array_0= -a.asm.$).apply(null,arguments)},Mb=a._emscripten_bind_DracoFloat32Array_GetValue_1=function(){return(Mb=a._emscripten_bind_DracoFloat32Array_GetValue_1=a.asm.aa).apply(null,arguments)},Nb=a._emscripten_bind_DracoFloat32Array_size_0=function(){return(Nb=a._emscripten_bind_DracoFloat32Array_size_0=a.asm.ba).apply(null,arguments)},Ob=a._emscripten_bind_DracoFloat32Array___destroy___0=function(){return(Ob=a._emscripten_bind_DracoFloat32Array___destroy___0=a.asm.ca).apply(null,arguments)},Oa=a._emscripten_bind_DracoInt8Array_DracoInt8Array_0= -function(){return(Oa=a._emscripten_bind_DracoInt8Array_DracoInt8Array_0=a.asm.da).apply(null,arguments)},Pb=a._emscripten_bind_DracoInt8Array_GetValue_1=function(){return(Pb=a._emscripten_bind_DracoInt8Array_GetValue_1=a.asm.ea).apply(null,arguments)},Qb=a._emscripten_bind_DracoInt8Array_size_0=function(){return(Qb=a._emscripten_bind_DracoInt8Array_size_0=a.asm.fa).apply(null,arguments)},Rb=a._emscripten_bind_DracoInt8Array___destroy___0=function(){return(Rb=a._emscripten_bind_DracoInt8Array___destroy___0= -a.asm.ga).apply(null,arguments)},Pa=a._emscripten_bind_DracoUInt8Array_DracoUInt8Array_0=function(){return(Pa=a._emscripten_bind_DracoUInt8Array_DracoUInt8Array_0=a.asm.ha).apply(null,arguments)},Sb=a._emscripten_bind_DracoUInt8Array_GetValue_1=function(){return(Sb=a._emscripten_bind_DracoUInt8Array_GetValue_1=a.asm.ia).apply(null,arguments)},Tb=a._emscripten_bind_DracoUInt8Array_size_0=function(){return(Tb=a._emscripten_bind_DracoUInt8Array_size_0=a.asm.ja).apply(null,arguments)},Ub=a._emscripten_bind_DracoUInt8Array___destroy___0= -function(){return(Ub=a._emscripten_bind_DracoUInt8Array___destroy___0=a.asm.ka).apply(null,arguments)},Qa=a._emscripten_bind_DracoInt16Array_DracoInt16Array_0=function(){return(Qa=a._emscripten_bind_DracoInt16Array_DracoInt16Array_0=a.asm.la).apply(null,arguments)},Vb=a._emscripten_bind_DracoInt16Array_GetValue_1=function(){return(Vb=a._emscripten_bind_DracoInt16Array_GetValue_1=a.asm.ma).apply(null,arguments)},Wb=a._emscripten_bind_DracoInt16Array_size_0=function(){return(Wb=a._emscripten_bind_DracoInt16Array_size_0= -a.asm.na).apply(null,arguments)},Xb=a._emscripten_bind_DracoInt16Array___destroy___0=function(){return(Xb=a._emscripten_bind_DracoInt16Array___destroy___0=a.asm.oa).apply(null,arguments)},Ra=a._emscripten_bind_DracoUInt16Array_DracoUInt16Array_0=function(){return(Ra=a._emscripten_bind_DracoUInt16Array_DracoUInt16Array_0=a.asm.pa).apply(null,arguments)},Yb=a._emscripten_bind_DracoUInt16Array_GetValue_1=function(){return(Yb=a._emscripten_bind_DracoUInt16Array_GetValue_1=a.asm.qa).apply(null,arguments)}, -Zb=a._emscripten_bind_DracoUInt16Array_size_0=function(){return(Zb=a._emscripten_bind_DracoUInt16Array_size_0=a.asm.ra).apply(null,arguments)},$b=a._emscripten_bind_DracoUInt16Array___destroy___0=function(){return($b=a._emscripten_bind_DracoUInt16Array___destroy___0=a.asm.sa).apply(null,arguments)},Sa=a._emscripten_bind_DracoInt32Array_DracoInt32Array_0=function(){return(Sa=a._emscripten_bind_DracoInt32Array_DracoInt32Array_0=a.asm.ta).apply(null,arguments)},ac=a._emscripten_bind_DracoInt32Array_GetValue_1= -function(){return(ac=a._emscripten_bind_DracoInt32Array_GetValue_1=a.asm.ua).apply(null,arguments)},bc=a._emscripten_bind_DracoInt32Array_size_0=function(){return(bc=a._emscripten_bind_DracoInt32Array_size_0=a.asm.va).apply(null,arguments)},cc=a._emscripten_bind_DracoInt32Array___destroy___0=function(){return(cc=a._emscripten_bind_DracoInt32Array___destroy___0=a.asm.wa).apply(null,arguments)},Ta=a._emscripten_bind_DracoUInt32Array_DracoUInt32Array_0=function(){return(Ta=a._emscripten_bind_DracoUInt32Array_DracoUInt32Array_0= -a.asm.xa).apply(null,arguments)},dc=a._emscripten_bind_DracoUInt32Array_GetValue_1=function(){return(dc=a._emscripten_bind_DracoUInt32Array_GetValue_1=a.asm.ya).apply(null,arguments)},ec=a._emscripten_bind_DracoUInt32Array_size_0=function(){return(ec=a._emscripten_bind_DracoUInt32Array_size_0=a.asm.za).apply(null,arguments)},fc=a._emscripten_bind_DracoUInt32Array___destroy___0=function(){return(fc=a._emscripten_bind_DracoUInt32Array___destroy___0=a.asm.Aa).apply(null,arguments)},Ua=a._emscripten_bind_MetadataQuerier_MetadataQuerier_0= -function(){return(Ua=a._emscripten_bind_MetadataQuerier_MetadataQuerier_0=a.asm.Ba).apply(null,arguments)},gc=a._emscripten_bind_MetadataQuerier_HasEntry_2=function(){return(gc=a._emscripten_bind_MetadataQuerier_HasEntry_2=a.asm.Ca).apply(null,arguments)},hc=a._emscripten_bind_MetadataQuerier_GetIntEntry_2=function(){return(hc=a._emscripten_bind_MetadataQuerier_GetIntEntry_2=a.asm.Da).apply(null,arguments)},ic=a._emscripten_bind_MetadataQuerier_GetIntEntryArray_3=function(){return(ic=a._emscripten_bind_MetadataQuerier_GetIntEntryArray_3= -a.asm.Ea).apply(null,arguments)},jc=a._emscripten_bind_MetadataQuerier_GetDoubleEntry_2=function(){return(jc=a._emscripten_bind_MetadataQuerier_GetDoubleEntry_2=a.asm.Fa).apply(null,arguments)},kc=a._emscripten_bind_MetadataQuerier_GetStringEntry_2=function(){return(kc=a._emscripten_bind_MetadataQuerier_GetStringEntry_2=a.asm.Ga).apply(null,arguments)},lc=a._emscripten_bind_MetadataQuerier_NumEntries_1=function(){return(lc=a._emscripten_bind_MetadataQuerier_NumEntries_1=a.asm.Ha).apply(null,arguments)}, -mc=a._emscripten_bind_MetadataQuerier_GetEntryName_2=function(){return(mc=a._emscripten_bind_MetadataQuerier_GetEntryName_2=a.asm.Ia).apply(null,arguments)},nc=a._emscripten_bind_MetadataQuerier___destroy___0=function(){return(nc=a._emscripten_bind_MetadataQuerier___destroy___0=a.asm.Ja).apply(null,arguments)},Va=a._emscripten_bind_Decoder_Decoder_0=function(){return(Va=a._emscripten_bind_Decoder_Decoder_0=a.asm.Ka).apply(null,arguments)},oc=a._emscripten_bind_Decoder_DecodeArrayToPointCloud_3=function(){return(oc= -a._emscripten_bind_Decoder_DecodeArrayToPointCloud_3=a.asm.La).apply(null,arguments)},pc=a._emscripten_bind_Decoder_DecodeArrayToMesh_3=function(){return(pc=a._emscripten_bind_Decoder_DecodeArrayToMesh_3=a.asm.Ma).apply(null,arguments)},qc=a._emscripten_bind_Decoder_GetAttributeId_2=function(){return(qc=a._emscripten_bind_Decoder_GetAttributeId_2=a.asm.Na).apply(null,arguments)},rc=a._emscripten_bind_Decoder_GetAttributeIdByName_2=function(){return(rc=a._emscripten_bind_Decoder_GetAttributeIdByName_2= -a.asm.Oa).apply(null,arguments)},sc=a._emscripten_bind_Decoder_GetAttributeIdByMetadataEntry_3=function(){return(sc=a._emscripten_bind_Decoder_GetAttributeIdByMetadataEntry_3=a.asm.Pa).apply(null,arguments)},tc=a._emscripten_bind_Decoder_GetAttribute_2=function(){return(tc=a._emscripten_bind_Decoder_GetAttribute_2=a.asm.Qa).apply(null,arguments)},uc=a._emscripten_bind_Decoder_GetAttributeByUniqueId_2=function(){return(uc=a._emscripten_bind_Decoder_GetAttributeByUniqueId_2=a.asm.Ra).apply(null,arguments)}, -vc=a._emscripten_bind_Decoder_GetMetadata_1=function(){return(vc=a._emscripten_bind_Decoder_GetMetadata_1=a.asm.Sa).apply(null,arguments)},wc=a._emscripten_bind_Decoder_GetAttributeMetadata_2=function(){return(wc=a._emscripten_bind_Decoder_GetAttributeMetadata_2=a.asm.Ta).apply(null,arguments)},xc=a._emscripten_bind_Decoder_GetFaceFromMesh_3=function(){return(xc=a._emscripten_bind_Decoder_GetFaceFromMesh_3=a.asm.Ua).apply(null,arguments)},yc=a._emscripten_bind_Decoder_GetTriangleStripsFromMesh_2= -function(){return(yc=a._emscripten_bind_Decoder_GetTriangleStripsFromMesh_2=a.asm.Va).apply(null,arguments)},zc=a._emscripten_bind_Decoder_GetTrianglesUInt16Array_3=function(){return(zc=a._emscripten_bind_Decoder_GetTrianglesUInt16Array_3=a.asm.Wa).apply(null,arguments)},Ac=a._emscripten_bind_Decoder_GetTrianglesUInt32Array_3=function(){return(Ac=a._emscripten_bind_Decoder_GetTrianglesUInt32Array_3=a.asm.Xa).apply(null,arguments)},Bc=a._emscripten_bind_Decoder_GetAttributeFloat_3=function(){return(Bc= -a._emscripten_bind_Decoder_GetAttributeFloat_3=a.asm.Ya).apply(null,arguments)},Cc=a._emscripten_bind_Decoder_GetAttributeFloatForAllPoints_3=function(){return(Cc=a._emscripten_bind_Decoder_GetAttributeFloatForAllPoints_3=a.asm.Za).apply(null,arguments)},Dc=a._emscripten_bind_Decoder_GetAttributeIntForAllPoints_3=function(){return(Dc=a._emscripten_bind_Decoder_GetAttributeIntForAllPoints_3=a.asm._a).apply(null,arguments)},Ec=a._emscripten_bind_Decoder_GetAttributeInt8ForAllPoints_3=function(){return(Ec= -a._emscripten_bind_Decoder_GetAttributeInt8ForAllPoints_3=a.asm.$a).apply(null,arguments)},Fc=a._emscripten_bind_Decoder_GetAttributeUInt8ForAllPoints_3=function(){return(Fc=a._emscripten_bind_Decoder_GetAttributeUInt8ForAllPoints_3=a.asm.ab).apply(null,arguments)},Gc=a._emscripten_bind_Decoder_GetAttributeInt16ForAllPoints_3=function(){return(Gc=a._emscripten_bind_Decoder_GetAttributeInt16ForAllPoints_3=a.asm.bb).apply(null,arguments)},Hc=a._emscripten_bind_Decoder_GetAttributeUInt16ForAllPoints_3= -function(){return(Hc=a._emscripten_bind_Decoder_GetAttributeUInt16ForAllPoints_3=a.asm.cb).apply(null,arguments)},Ic=a._emscripten_bind_Decoder_GetAttributeInt32ForAllPoints_3=function(){return(Ic=a._emscripten_bind_Decoder_GetAttributeInt32ForAllPoints_3=a.asm.db).apply(null,arguments)},Jc=a._emscripten_bind_Decoder_GetAttributeUInt32ForAllPoints_3=function(){return(Jc=a._emscripten_bind_Decoder_GetAttributeUInt32ForAllPoints_3=a.asm.eb).apply(null,arguments)},Kc=a._emscripten_bind_Decoder_GetAttributeDataArrayForAllPoints_5= -function(){return(Kc=a._emscripten_bind_Decoder_GetAttributeDataArrayForAllPoints_5=a.asm.fb).apply(null,arguments)},Lc=a._emscripten_bind_Decoder_SkipAttributeTransform_1=function(){return(Lc=a._emscripten_bind_Decoder_SkipAttributeTransform_1=a.asm.gb).apply(null,arguments)},Mc=a._emscripten_bind_Decoder_GetEncodedGeometryType_Deprecated_1=function(){return(Mc=a._emscripten_bind_Decoder_GetEncodedGeometryType_Deprecated_1=a.asm.hb).apply(null,arguments)},Nc=a._emscripten_bind_Decoder_DecodeBufferToPointCloud_2= -function(){return(Nc=a._emscripten_bind_Decoder_DecodeBufferToPointCloud_2=a.asm.ib).apply(null,arguments)},Oc=a._emscripten_bind_Decoder_DecodeBufferToMesh_2=function(){return(Oc=a._emscripten_bind_Decoder_DecodeBufferToMesh_2=a.asm.jb).apply(null,arguments)},Pc=a._emscripten_bind_Decoder___destroy___0=function(){return(Pc=a._emscripten_bind_Decoder___destroy___0=a.asm.kb).apply(null,arguments)},Qc=a._emscripten_enum_draco_AttributeTransformType_ATTRIBUTE_INVALID_TRANSFORM=function(){return(Qc=a._emscripten_enum_draco_AttributeTransformType_ATTRIBUTE_INVALID_TRANSFORM= -a.asm.lb).apply(null,arguments)},Rc=a._emscripten_enum_draco_AttributeTransformType_ATTRIBUTE_NO_TRANSFORM=function(){return(Rc=a._emscripten_enum_draco_AttributeTransformType_ATTRIBUTE_NO_TRANSFORM=a.asm.mb).apply(null,arguments)},Sc=a._emscripten_enum_draco_AttributeTransformType_ATTRIBUTE_QUANTIZATION_TRANSFORM=function(){return(Sc=a._emscripten_enum_draco_AttributeTransformType_ATTRIBUTE_QUANTIZATION_TRANSFORM=a.asm.nb).apply(null,arguments)},Tc=a._emscripten_enum_draco_AttributeTransformType_ATTRIBUTE_OCTAHEDRON_TRANSFORM= -function(){return(Tc=a._emscripten_enum_draco_AttributeTransformType_ATTRIBUTE_OCTAHEDRON_TRANSFORM=a.asm.ob).apply(null,arguments)},Uc=a._emscripten_enum_draco_GeometryAttribute_Type_INVALID=function(){return(Uc=a._emscripten_enum_draco_GeometryAttribute_Type_INVALID=a.asm.pb).apply(null,arguments)},Vc=a._emscripten_enum_draco_GeometryAttribute_Type_POSITION=function(){return(Vc=a._emscripten_enum_draco_GeometryAttribute_Type_POSITION=a.asm.qb).apply(null,arguments)},Wc=a._emscripten_enum_draco_GeometryAttribute_Type_NORMAL= -function(){return(Wc=a._emscripten_enum_draco_GeometryAttribute_Type_NORMAL=a.asm.rb).apply(null,arguments)},Xc=a._emscripten_enum_draco_GeometryAttribute_Type_COLOR=function(){return(Xc=a._emscripten_enum_draco_GeometryAttribute_Type_COLOR=a.asm.sb).apply(null,arguments)},Yc=a._emscripten_enum_draco_GeometryAttribute_Type_TEX_COORD=function(){return(Yc=a._emscripten_enum_draco_GeometryAttribute_Type_TEX_COORD=a.asm.tb).apply(null,arguments)},Zc=a._emscripten_enum_draco_GeometryAttribute_Type_GENERIC= -function(){return(Zc=a._emscripten_enum_draco_GeometryAttribute_Type_GENERIC=a.asm.ub).apply(null,arguments)},$c=a._emscripten_enum_draco_EncodedGeometryType_INVALID_GEOMETRY_TYPE=function(){return($c=a._emscripten_enum_draco_EncodedGeometryType_INVALID_GEOMETRY_TYPE=a.asm.vb).apply(null,arguments)},ad=a._emscripten_enum_draco_EncodedGeometryType_POINT_CLOUD=function(){return(ad=a._emscripten_enum_draco_EncodedGeometryType_POINT_CLOUD=a.asm.wb).apply(null,arguments)},bd=a._emscripten_enum_draco_EncodedGeometryType_TRIANGULAR_MESH= -function(){return(bd=a._emscripten_enum_draco_EncodedGeometryType_TRIANGULAR_MESH=a.asm.xb).apply(null,arguments)},cd=a._emscripten_enum_draco_DataType_DT_INVALID=function(){return(cd=a._emscripten_enum_draco_DataType_DT_INVALID=a.asm.yb).apply(null,arguments)},dd=a._emscripten_enum_draco_DataType_DT_INT8=function(){return(dd=a._emscripten_enum_draco_DataType_DT_INT8=a.asm.zb).apply(null,arguments)},ed=a._emscripten_enum_draco_DataType_DT_UINT8=function(){return(ed=a._emscripten_enum_draco_DataType_DT_UINT8= -a.asm.Ab).apply(null,arguments)},fd=a._emscripten_enum_draco_DataType_DT_INT16=function(){return(fd=a._emscripten_enum_draco_DataType_DT_INT16=a.asm.Bb).apply(null,arguments)},gd=a._emscripten_enum_draco_DataType_DT_UINT16=function(){return(gd=a._emscripten_enum_draco_DataType_DT_UINT16=a.asm.Cb).apply(null,arguments)},hd=a._emscripten_enum_draco_DataType_DT_INT32=function(){return(hd=a._emscripten_enum_draco_DataType_DT_INT32=a.asm.Db).apply(null,arguments)},id=a._emscripten_enum_draco_DataType_DT_UINT32= -function(){return(id=a._emscripten_enum_draco_DataType_DT_UINT32=a.asm.Eb).apply(null,arguments)},jd=a._emscripten_enum_draco_DataType_DT_INT64=function(){return(jd=a._emscripten_enum_draco_DataType_DT_INT64=a.asm.Fb).apply(null,arguments)},kd=a._emscripten_enum_draco_DataType_DT_UINT64=function(){return(kd=a._emscripten_enum_draco_DataType_DT_UINT64=a.asm.Gb).apply(null,arguments)},ld=a._emscripten_enum_draco_DataType_DT_FLOAT32=function(){return(ld=a._emscripten_enum_draco_DataType_DT_FLOAT32=a.asm.Hb).apply(null, -arguments)},md=a._emscripten_enum_draco_DataType_DT_FLOAT64=function(){return(md=a._emscripten_enum_draco_DataType_DT_FLOAT64=a.asm.Ib).apply(null,arguments)},nd=a._emscripten_enum_draco_DataType_DT_BOOL=function(){return(nd=a._emscripten_enum_draco_DataType_DT_BOOL=a.asm.Jb).apply(null,arguments)},od=a._emscripten_enum_draco_DataType_DT_TYPES_COUNT=function(){return(od=a._emscripten_enum_draco_DataType_DT_TYPES_COUNT=a.asm.Kb).apply(null,arguments)},pd=a._emscripten_enum_draco_StatusCode_OK=function(){return(pd= -a._emscripten_enum_draco_StatusCode_OK=a.asm.Lb).apply(null,arguments)},qd=a._emscripten_enum_draco_StatusCode_DRACO_ERROR=function(){return(qd=a._emscripten_enum_draco_StatusCode_DRACO_ERROR=a.asm.Mb).apply(null,arguments)},rd=a._emscripten_enum_draco_StatusCode_IO_ERROR=function(){return(rd=a._emscripten_enum_draco_StatusCode_IO_ERROR=a.asm.Nb).apply(null,arguments)},sd=a._emscripten_enum_draco_StatusCode_INVALID_PARAMETER=function(){return(sd=a._emscripten_enum_draco_StatusCode_INVALID_PARAMETER= -a.asm.Ob).apply(null,arguments)},td=a._emscripten_enum_draco_StatusCode_UNSUPPORTED_VERSION=function(){return(td=a._emscripten_enum_draco_StatusCode_UNSUPPORTED_VERSION=a.asm.Pb).apply(null,arguments)},ud=a._emscripten_enum_draco_StatusCode_UNKNOWN_VERSION=function(){return(ud=a._emscripten_enum_draco_StatusCode_UNKNOWN_VERSION=a.asm.Qb).apply(null,arguments)},bb=a._malloc=function(){return(bb=a._malloc=a.asm.Rb).apply(null,arguments)};a._free=function(){return(a._free=a.asm.Sb).apply(null,arguments)}; -var za=a.___cxa_is_pointer_type=function(){return(za=a.___cxa_is_pointer_type=a.asm.Tb).apply(null,arguments)},ka;ha=function b(){ka||Z();ka||(ha=b)};a.run=Z;if(a.preInit)for("function"==typeof a.preInit&&(a.preInit=[a.preInit]);0=r.size?(0>>=0;switch(c.BYTES_PER_ELEMENT){case 2:d>>>=1;break;case 4:d>>>=2;break;case 8:d>>>=3}for(var g=0;gb.byteLength)return a.INVALID_GEOMETRY_TYPE;switch(b[7]){case 0:return a.POINT_CLOUD;case 1:return a.TRIANGULAR_MESH;default:return a.INVALID_GEOMETRY_TYPE}};return n.ready}}(); -"object"===typeof exports&&"object"===typeof module?module.exports=DracoDecoderModule:"function"===typeof define&&define.amd?define([],function(){return DracoDecoderModule}):"object"===typeof exports&&(exports.DracoDecoderModule=DracoDecoderModule); +var DracoDecoderModule=function(){var h="undefined"!==typeof document&&document.currentScript?document.currentScript.src:void 0;"undefined"!==typeof __filename&&(h=h||__filename);return function(n){function k(e){return a.locateFile?a.locateFile(e,U):U+e}function p(e,b){if(e){var c=ia;var d=e+b;for(b=e;c[b]&&!(b>=d);)++b;if(16g?d+=String.fromCharCode(g):(g-=65536,d+=String.fromCharCode(55296|g>>10,56320|g&1023))}}else d+=String.fromCharCode(g)}c=d}}else c="";return c}function l(e){ra=e;a.HEAP8=W=new Int8Array(e);a.HEAP16=new Int16Array(e);a.HEAP32=ca=new Int32Array(e);a.HEAPU8=ia=new Uint8Array(e);a.HEAPU16=new Uint16Array(e);a.HEAPU32=Y=new Uint32Array(e);a.HEAPF32=new Float32Array(e);a.HEAPF64=new Float64Array(e)}function y(e){if(a.onAbort)a.onAbort(e); +e="Aborted("+e+")";da(e);sa=!0;e=new WebAssembly.RuntimeError(e+". Build with -sASSERTIONS for more info.");ja(e);throw e;}function f(e){try{if(e==P&&ea)return new Uint8Array(ea);if(ma)return ma(e);throw"both async and sync fetching of the wasm failed";}catch(b){y(b)}}function q(){if(!ea&&(ta||fa)){if("function"==typeof fetch&&!P.startsWith("file://"))return fetch(P,{credentials:"same-origin"}).then(function(e){if(!e.ok)throw"failed to load wasm binary file at '"+P+"'";return e.arrayBuffer()}).catch(function(){return f(P)}); +if(na)return new Promise(function(e,b){na(P,function(c){e(new Uint8Array(c))},b)})}return Promise.resolve().then(function(){return f(P)})}function u(e){for(;0>2]=b};this.get_type=function(){return Y[this.ptr+4>>2]};this.set_destructor=function(b){Y[this.ptr+8>>2]=b};this.get_destructor=function(){return Y[this.ptr+8>>2]};this.set_refcount=function(b){ca[this.ptr>>2]=b};this.set_caught=function(b){W[this.ptr+ +12>>0]=b?1:0};this.get_caught=function(){return 0!=W[this.ptr+12>>0]};this.set_rethrown=function(b){W[this.ptr+13>>0]=b?1:0};this.get_rethrown=function(){return 0!=W[this.ptr+13>>0]};this.init=function(b,c){this.set_adjusted_ptr(0);this.set_type(b);this.set_destructor(c);this.set_refcount(0);this.set_caught(!1);this.set_rethrown(!1)};this.add_ref=function(){ca[this.ptr>>2]+=1};this.release_ref=function(){var b=ca[this.ptr>>2];ca[this.ptr>>2]=b-1;return 1===b};this.set_adjusted_ptr=function(b){Y[this.ptr+ +16>>2]=b};this.get_adjusted_ptr=function(){return Y[this.ptr+16>>2]};this.get_exception_ptr=function(){if(ua(this.get_type()))return Y[this.excPtr>>2];var b=this.get_adjusted_ptr();return 0!==b?b:this.excPtr}}function F(e){function b(){if(!ka&&(ka=!0,a.calledRun=!0,!sa)){va=!0;u(oa);wa(a);if(a.onRuntimeInitialized)a.onRuntimeInitialized();if(a.postRun)for("function"==typeof a.postRun&&(a.postRun=[a.postRun]);a.postRun.length;)xa.unshift(a.postRun.shift());u(xa)}}if(!(0=d?b++:2047>=d?b+=2:55296<=d&&57343>= +d?(b+=4,++c):b+=3}b=Array(b+1);c=0;d=b.length;if(0=t){var aa=e.charCodeAt(++g);t=65536+((t&1023)<<10)|aa&1023}if(127>=t){if(c>=d)break;b[c++]=t}else{if(2047>=t){if(c+1>=d)break;b[c++]=192|t>>6}else{if(65535>=t){if(c+2>=d)break;b[c++]=224|t>>12}else{if(c+3>=d)break;b[c++]=240|t>>18;b[c++]=128|t>>12&63}b[c++]=128|t>>6&63}b[c++]=128|t&63}}b[c]=0}e=r.alloc(b,W);r.copy(b,W,e);return e}return e}function Z(e){if("object"=== +typeof e){var b=r.alloc(e,W);r.copy(e,W,b);return b}return e}function X(){throw"cannot construct a VoidPtr, no constructor in IDL";}function S(){this.ptr=za();w(S)[this.ptr]=this}function Q(){this.ptr=Aa();w(Q)[this.ptr]=this}function V(){this.ptr=Ba();w(V)[this.ptr]=this}function x(){this.ptr=Ca();w(x)[this.ptr]=this}function D(){this.ptr=Da();w(D)[this.ptr]=this}function G(){this.ptr=Ea();w(G)[this.ptr]=this}function H(){this.ptr=Fa();w(H)[this.ptr]=this}function E(){this.ptr=Ga();w(E)[this.ptr]= +this}function T(){this.ptr=Ha();w(T)[this.ptr]=this}function C(){throw"cannot construct a Status, no constructor in IDL";}function I(){this.ptr=Ia();w(I)[this.ptr]=this}function J(){this.ptr=Ja();w(J)[this.ptr]=this}function K(){this.ptr=Ka();w(K)[this.ptr]=this}function L(){this.ptr=La();w(L)[this.ptr]=this}function M(){this.ptr=Ma();w(M)[this.ptr]=this}function N(){this.ptr=Na();w(N)[this.ptr]=this}function O(){this.ptr=Oa();w(O)[this.ptr]=this}function z(){this.ptr=Pa();w(z)[this.ptr]=this}function m(){this.ptr= +Qa();w(m)[this.ptr]=this}n=n||{};var a="undefined"!=typeof n?n:{},wa,ja;a.ready=new Promise(function(e,b){wa=e;ja=b});var Ra=!1,Sa=!1;a.onRuntimeInitialized=function(){Ra=!0;if(Sa&&"function"===typeof a.onModuleLoaded)a.onModuleLoaded(a)};a.onModuleParsed=function(){Sa=!0;if(Ra&&"function"===typeof a.onModuleLoaded)a.onModuleLoaded(a)};a.isVersionSupported=function(e){if("string"!==typeof e)return!1;e=e.split(".");return 2>e.length||3=e[1]?!0:0!=e[0]||10>>=0;if(2147483648=c;c*=2){var d=b*(1+.2/c);d=Math.min(d,e+100663296);var g=Math;d=Math.max(e,d);g=g.min.call(g,2147483648,d+(65536-d%65536)%65536);a:{try{la.grow(g-ra.byteLength+65535>>>16);l(la.buffer);var t=1;break a}catch(aa){}t=void 0}if(t)return!0}return!1}};(function(){function e(g,t){a.asm=g.exports;la=a.asm.f;l(la.buffer);oa.unshift(a.asm.g);ba--;a.monitorRunDependencies&&a.monitorRunDependencies(ba);0==ba&&(null!==pa&&(clearInterval(pa),pa=null),ha&&(g=ha,ha=null,g()))}function b(g){e(g.instance)}function c(g){return q().then(function(t){return WebAssembly.instantiate(t, +d)}).then(function(t){return t}).then(g,function(t){da("failed to asynchronously prepare wasm: "+t);y(t)})}var d={a:sd};ba++;a.monitorRunDependencies&&a.monitorRunDependencies(ba);if(a.instantiateWasm)try{return a.instantiateWasm(d,e)}catch(g){da("Module.instantiateWasm callback failed with error: "+g),ja(g)}(function(){return ea||"function"!=typeof WebAssembly.instantiateStreaming||P.startsWith("data:application/octet-stream;base64,")||P.startsWith("file://")||Ua||"function"!=typeof fetch?c(b):fetch(P, +{credentials:"same-origin"}).then(function(g){return WebAssembly.instantiateStreaming(g,d).then(b,function(t){da("wasm streaming compile failed: "+t);da("falling back to ArrayBuffer instantiation");return c(b)})})})().catch(ja);return{}})();a.___wasm_call_ctors=function(){return(a.___wasm_call_ctors=a.asm.g).apply(null,arguments)};var Za=a._emscripten_bind_VoidPtr___destroy___0=function(){return(Za=a._emscripten_bind_VoidPtr___destroy___0=a.asm.i).apply(null,arguments)},za=a._emscripten_bind_DecoderBuffer_DecoderBuffer_0= +function(){return(za=a._emscripten_bind_DecoderBuffer_DecoderBuffer_0=a.asm.j).apply(null,arguments)},$a=a._emscripten_bind_DecoderBuffer_Init_2=function(){return($a=a._emscripten_bind_DecoderBuffer_Init_2=a.asm.k).apply(null,arguments)},ab=a._emscripten_bind_DecoderBuffer___destroy___0=function(){return(ab=a._emscripten_bind_DecoderBuffer___destroy___0=a.asm.l).apply(null,arguments)},Aa=a._emscripten_bind_AttributeTransformData_AttributeTransformData_0=function(){return(Aa=a._emscripten_bind_AttributeTransformData_AttributeTransformData_0= +a.asm.m).apply(null,arguments)},bb=a._emscripten_bind_AttributeTransformData_transform_type_0=function(){return(bb=a._emscripten_bind_AttributeTransformData_transform_type_0=a.asm.n).apply(null,arguments)},cb=a._emscripten_bind_AttributeTransformData___destroy___0=function(){return(cb=a._emscripten_bind_AttributeTransformData___destroy___0=a.asm.o).apply(null,arguments)},Ba=a._emscripten_bind_GeometryAttribute_GeometryAttribute_0=function(){return(Ba=a._emscripten_bind_GeometryAttribute_GeometryAttribute_0= +a.asm.p).apply(null,arguments)},db=a._emscripten_bind_GeometryAttribute___destroy___0=function(){return(db=a._emscripten_bind_GeometryAttribute___destroy___0=a.asm.q).apply(null,arguments)},Ca=a._emscripten_bind_PointAttribute_PointAttribute_0=function(){return(Ca=a._emscripten_bind_PointAttribute_PointAttribute_0=a.asm.r).apply(null,arguments)},eb=a._emscripten_bind_PointAttribute_size_0=function(){return(eb=a._emscripten_bind_PointAttribute_size_0=a.asm.s).apply(null,arguments)},fb=a._emscripten_bind_PointAttribute_GetAttributeTransformData_0= +function(){return(fb=a._emscripten_bind_PointAttribute_GetAttributeTransformData_0=a.asm.t).apply(null,arguments)},gb=a._emscripten_bind_PointAttribute_attribute_type_0=function(){return(gb=a._emscripten_bind_PointAttribute_attribute_type_0=a.asm.u).apply(null,arguments)},hb=a._emscripten_bind_PointAttribute_data_type_0=function(){return(hb=a._emscripten_bind_PointAttribute_data_type_0=a.asm.v).apply(null,arguments)},ib=a._emscripten_bind_PointAttribute_num_components_0=function(){return(ib=a._emscripten_bind_PointAttribute_num_components_0= +a.asm.w).apply(null,arguments)},jb=a._emscripten_bind_PointAttribute_normalized_0=function(){return(jb=a._emscripten_bind_PointAttribute_normalized_0=a.asm.x).apply(null,arguments)},kb=a._emscripten_bind_PointAttribute_byte_stride_0=function(){return(kb=a._emscripten_bind_PointAttribute_byte_stride_0=a.asm.y).apply(null,arguments)},lb=a._emscripten_bind_PointAttribute_byte_offset_0=function(){return(lb=a._emscripten_bind_PointAttribute_byte_offset_0=a.asm.z).apply(null,arguments)},mb=a._emscripten_bind_PointAttribute_unique_id_0= +function(){return(mb=a._emscripten_bind_PointAttribute_unique_id_0=a.asm.A).apply(null,arguments)},nb=a._emscripten_bind_PointAttribute___destroy___0=function(){return(nb=a._emscripten_bind_PointAttribute___destroy___0=a.asm.B).apply(null,arguments)},Da=a._emscripten_bind_AttributeQuantizationTransform_AttributeQuantizationTransform_0=function(){return(Da=a._emscripten_bind_AttributeQuantizationTransform_AttributeQuantizationTransform_0=a.asm.C).apply(null,arguments)},ob=a._emscripten_bind_AttributeQuantizationTransform_InitFromAttribute_1= +function(){return(ob=a._emscripten_bind_AttributeQuantizationTransform_InitFromAttribute_1=a.asm.D).apply(null,arguments)},pb=a._emscripten_bind_AttributeQuantizationTransform_quantization_bits_0=function(){return(pb=a._emscripten_bind_AttributeQuantizationTransform_quantization_bits_0=a.asm.E).apply(null,arguments)},qb=a._emscripten_bind_AttributeQuantizationTransform_min_value_1=function(){return(qb=a._emscripten_bind_AttributeQuantizationTransform_min_value_1=a.asm.F).apply(null,arguments)},rb= +a._emscripten_bind_AttributeQuantizationTransform_range_0=function(){return(rb=a._emscripten_bind_AttributeQuantizationTransform_range_0=a.asm.G).apply(null,arguments)},sb=a._emscripten_bind_AttributeQuantizationTransform___destroy___0=function(){return(sb=a._emscripten_bind_AttributeQuantizationTransform___destroy___0=a.asm.H).apply(null,arguments)},Ea=a._emscripten_bind_AttributeOctahedronTransform_AttributeOctahedronTransform_0=function(){return(Ea=a._emscripten_bind_AttributeOctahedronTransform_AttributeOctahedronTransform_0= +a.asm.I).apply(null,arguments)},tb=a._emscripten_bind_AttributeOctahedronTransform_InitFromAttribute_1=function(){return(tb=a._emscripten_bind_AttributeOctahedronTransform_InitFromAttribute_1=a.asm.J).apply(null,arguments)},ub=a._emscripten_bind_AttributeOctahedronTransform_quantization_bits_0=function(){return(ub=a._emscripten_bind_AttributeOctahedronTransform_quantization_bits_0=a.asm.K).apply(null,arguments)},vb=a._emscripten_bind_AttributeOctahedronTransform___destroy___0=function(){return(vb= +a._emscripten_bind_AttributeOctahedronTransform___destroy___0=a.asm.L).apply(null,arguments)},Fa=a._emscripten_bind_PointCloud_PointCloud_0=function(){return(Fa=a._emscripten_bind_PointCloud_PointCloud_0=a.asm.M).apply(null,arguments)},wb=a._emscripten_bind_PointCloud_num_attributes_0=function(){return(wb=a._emscripten_bind_PointCloud_num_attributes_0=a.asm.N).apply(null,arguments)},xb=a._emscripten_bind_PointCloud_num_points_0=function(){return(xb=a._emscripten_bind_PointCloud_num_points_0=a.asm.O).apply(null, +arguments)},yb=a._emscripten_bind_PointCloud___destroy___0=function(){return(yb=a._emscripten_bind_PointCloud___destroy___0=a.asm.P).apply(null,arguments)},Ga=a._emscripten_bind_Mesh_Mesh_0=function(){return(Ga=a._emscripten_bind_Mesh_Mesh_0=a.asm.Q).apply(null,arguments)},zb=a._emscripten_bind_Mesh_num_faces_0=function(){return(zb=a._emscripten_bind_Mesh_num_faces_0=a.asm.R).apply(null,arguments)},Ab=a._emscripten_bind_Mesh_num_attributes_0=function(){return(Ab=a._emscripten_bind_Mesh_num_attributes_0= +a.asm.S).apply(null,arguments)},Bb=a._emscripten_bind_Mesh_num_points_0=function(){return(Bb=a._emscripten_bind_Mesh_num_points_0=a.asm.T).apply(null,arguments)},Cb=a._emscripten_bind_Mesh___destroy___0=function(){return(Cb=a._emscripten_bind_Mesh___destroy___0=a.asm.U).apply(null,arguments)},Ha=a._emscripten_bind_Metadata_Metadata_0=function(){return(Ha=a._emscripten_bind_Metadata_Metadata_0=a.asm.V).apply(null,arguments)},Db=a._emscripten_bind_Metadata___destroy___0=function(){return(Db=a._emscripten_bind_Metadata___destroy___0= +a.asm.W).apply(null,arguments)},Eb=a._emscripten_bind_Status_code_0=function(){return(Eb=a._emscripten_bind_Status_code_0=a.asm.X).apply(null,arguments)},Fb=a._emscripten_bind_Status_ok_0=function(){return(Fb=a._emscripten_bind_Status_ok_0=a.asm.Y).apply(null,arguments)},Gb=a._emscripten_bind_Status_error_msg_0=function(){return(Gb=a._emscripten_bind_Status_error_msg_0=a.asm.Z).apply(null,arguments)},Hb=a._emscripten_bind_Status___destroy___0=function(){return(Hb=a._emscripten_bind_Status___destroy___0= +a.asm._).apply(null,arguments)},Ia=a._emscripten_bind_DracoFloat32Array_DracoFloat32Array_0=function(){return(Ia=a._emscripten_bind_DracoFloat32Array_DracoFloat32Array_0=a.asm.$).apply(null,arguments)},Ib=a._emscripten_bind_DracoFloat32Array_GetValue_1=function(){return(Ib=a._emscripten_bind_DracoFloat32Array_GetValue_1=a.asm.aa).apply(null,arguments)},Jb=a._emscripten_bind_DracoFloat32Array_size_0=function(){return(Jb=a._emscripten_bind_DracoFloat32Array_size_0=a.asm.ba).apply(null,arguments)},Kb= +a._emscripten_bind_DracoFloat32Array___destroy___0=function(){return(Kb=a._emscripten_bind_DracoFloat32Array___destroy___0=a.asm.ca).apply(null,arguments)},Ja=a._emscripten_bind_DracoInt8Array_DracoInt8Array_0=function(){return(Ja=a._emscripten_bind_DracoInt8Array_DracoInt8Array_0=a.asm.da).apply(null,arguments)},Lb=a._emscripten_bind_DracoInt8Array_GetValue_1=function(){return(Lb=a._emscripten_bind_DracoInt8Array_GetValue_1=a.asm.ea).apply(null,arguments)},Mb=a._emscripten_bind_DracoInt8Array_size_0= +function(){return(Mb=a._emscripten_bind_DracoInt8Array_size_0=a.asm.fa).apply(null,arguments)},Nb=a._emscripten_bind_DracoInt8Array___destroy___0=function(){return(Nb=a._emscripten_bind_DracoInt8Array___destroy___0=a.asm.ga).apply(null,arguments)},Ka=a._emscripten_bind_DracoUInt8Array_DracoUInt8Array_0=function(){return(Ka=a._emscripten_bind_DracoUInt8Array_DracoUInt8Array_0=a.asm.ha).apply(null,arguments)},Ob=a._emscripten_bind_DracoUInt8Array_GetValue_1=function(){return(Ob=a._emscripten_bind_DracoUInt8Array_GetValue_1= +a.asm.ia).apply(null,arguments)},Pb=a._emscripten_bind_DracoUInt8Array_size_0=function(){return(Pb=a._emscripten_bind_DracoUInt8Array_size_0=a.asm.ja).apply(null,arguments)},Qb=a._emscripten_bind_DracoUInt8Array___destroy___0=function(){return(Qb=a._emscripten_bind_DracoUInt8Array___destroy___0=a.asm.ka).apply(null,arguments)},La=a._emscripten_bind_DracoInt16Array_DracoInt16Array_0=function(){return(La=a._emscripten_bind_DracoInt16Array_DracoInt16Array_0=a.asm.la).apply(null,arguments)},Rb=a._emscripten_bind_DracoInt16Array_GetValue_1= +function(){return(Rb=a._emscripten_bind_DracoInt16Array_GetValue_1=a.asm.ma).apply(null,arguments)},Sb=a._emscripten_bind_DracoInt16Array_size_0=function(){return(Sb=a._emscripten_bind_DracoInt16Array_size_0=a.asm.na).apply(null,arguments)},Tb=a._emscripten_bind_DracoInt16Array___destroy___0=function(){return(Tb=a._emscripten_bind_DracoInt16Array___destroy___0=a.asm.oa).apply(null,arguments)},Ma=a._emscripten_bind_DracoUInt16Array_DracoUInt16Array_0=function(){return(Ma=a._emscripten_bind_DracoUInt16Array_DracoUInt16Array_0= +a.asm.pa).apply(null,arguments)},Ub=a._emscripten_bind_DracoUInt16Array_GetValue_1=function(){return(Ub=a._emscripten_bind_DracoUInt16Array_GetValue_1=a.asm.qa).apply(null,arguments)},Vb=a._emscripten_bind_DracoUInt16Array_size_0=function(){return(Vb=a._emscripten_bind_DracoUInt16Array_size_0=a.asm.ra).apply(null,arguments)},Wb=a._emscripten_bind_DracoUInt16Array___destroy___0=function(){return(Wb=a._emscripten_bind_DracoUInt16Array___destroy___0=a.asm.sa).apply(null,arguments)},Na=a._emscripten_bind_DracoInt32Array_DracoInt32Array_0= +function(){return(Na=a._emscripten_bind_DracoInt32Array_DracoInt32Array_0=a.asm.ta).apply(null,arguments)},Xb=a._emscripten_bind_DracoInt32Array_GetValue_1=function(){return(Xb=a._emscripten_bind_DracoInt32Array_GetValue_1=a.asm.ua).apply(null,arguments)},Yb=a._emscripten_bind_DracoInt32Array_size_0=function(){return(Yb=a._emscripten_bind_DracoInt32Array_size_0=a.asm.va).apply(null,arguments)},Zb=a._emscripten_bind_DracoInt32Array___destroy___0=function(){return(Zb=a._emscripten_bind_DracoInt32Array___destroy___0= +a.asm.wa).apply(null,arguments)},Oa=a._emscripten_bind_DracoUInt32Array_DracoUInt32Array_0=function(){return(Oa=a._emscripten_bind_DracoUInt32Array_DracoUInt32Array_0=a.asm.xa).apply(null,arguments)},$b=a._emscripten_bind_DracoUInt32Array_GetValue_1=function(){return($b=a._emscripten_bind_DracoUInt32Array_GetValue_1=a.asm.ya).apply(null,arguments)},ac=a._emscripten_bind_DracoUInt32Array_size_0=function(){return(ac=a._emscripten_bind_DracoUInt32Array_size_0=a.asm.za).apply(null,arguments)},bc=a._emscripten_bind_DracoUInt32Array___destroy___0= +function(){return(bc=a._emscripten_bind_DracoUInt32Array___destroy___0=a.asm.Aa).apply(null,arguments)},Pa=a._emscripten_bind_MetadataQuerier_MetadataQuerier_0=function(){return(Pa=a._emscripten_bind_MetadataQuerier_MetadataQuerier_0=a.asm.Ba).apply(null,arguments)},cc=a._emscripten_bind_MetadataQuerier_HasEntry_2=function(){return(cc=a._emscripten_bind_MetadataQuerier_HasEntry_2=a.asm.Ca).apply(null,arguments)},dc=a._emscripten_bind_MetadataQuerier_GetIntEntry_2=function(){return(dc=a._emscripten_bind_MetadataQuerier_GetIntEntry_2= +a.asm.Da).apply(null,arguments)},ec=a._emscripten_bind_MetadataQuerier_GetIntEntryArray_3=function(){return(ec=a._emscripten_bind_MetadataQuerier_GetIntEntryArray_3=a.asm.Ea).apply(null,arguments)},fc=a._emscripten_bind_MetadataQuerier_GetDoubleEntry_2=function(){return(fc=a._emscripten_bind_MetadataQuerier_GetDoubleEntry_2=a.asm.Fa).apply(null,arguments)},gc=a._emscripten_bind_MetadataQuerier_GetStringEntry_2=function(){return(gc=a._emscripten_bind_MetadataQuerier_GetStringEntry_2=a.asm.Ga).apply(null, +arguments)},hc=a._emscripten_bind_MetadataQuerier_NumEntries_1=function(){return(hc=a._emscripten_bind_MetadataQuerier_NumEntries_1=a.asm.Ha).apply(null,arguments)},ic=a._emscripten_bind_MetadataQuerier_GetEntryName_2=function(){return(ic=a._emscripten_bind_MetadataQuerier_GetEntryName_2=a.asm.Ia).apply(null,arguments)},jc=a._emscripten_bind_MetadataQuerier___destroy___0=function(){return(jc=a._emscripten_bind_MetadataQuerier___destroy___0=a.asm.Ja).apply(null,arguments)},Qa=a._emscripten_bind_Decoder_Decoder_0= +function(){return(Qa=a._emscripten_bind_Decoder_Decoder_0=a.asm.Ka).apply(null,arguments)},kc=a._emscripten_bind_Decoder_DecodeArrayToPointCloud_3=function(){return(kc=a._emscripten_bind_Decoder_DecodeArrayToPointCloud_3=a.asm.La).apply(null,arguments)},lc=a._emscripten_bind_Decoder_DecodeArrayToMesh_3=function(){return(lc=a._emscripten_bind_Decoder_DecodeArrayToMesh_3=a.asm.Ma).apply(null,arguments)},mc=a._emscripten_bind_Decoder_GetAttributeId_2=function(){return(mc=a._emscripten_bind_Decoder_GetAttributeId_2= +a.asm.Na).apply(null,arguments)},nc=a._emscripten_bind_Decoder_GetAttributeIdByName_2=function(){return(nc=a._emscripten_bind_Decoder_GetAttributeIdByName_2=a.asm.Oa).apply(null,arguments)},oc=a._emscripten_bind_Decoder_GetAttributeIdByMetadataEntry_3=function(){return(oc=a._emscripten_bind_Decoder_GetAttributeIdByMetadataEntry_3=a.asm.Pa).apply(null,arguments)},pc=a._emscripten_bind_Decoder_GetAttribute_2=function(){return(pc=a._emscripten_bind_Decoder_GetAttribute_2=a.asm.Qa).apply(null,arguments)}, +qc=a._emscripten_bind_Decoder_GetAttributeByUniqueId_2=function(){return(qc=a._emscripten_bind_Decoder_GetAttributeByUniqueId_2=a.asm.Ra).apply(null,arguments)},rc=a._emscripten_bind_Decoder_GetMetadata_1=function(){return(rc=a._emscripten_bind_Decoder_GetMetadata_1=a.asm.Sa).apply(null,arguments)},sc=a._emscripten_bind_Decoder_GetAttributeMetadata_2=function(){return(sc=a._emscripten_bind_Decoder_GetAttributeMetadata_2=a.asm.Ta).apply(null,arguments)},tc=a._emscripten_bind_Decoder_GetFaceFromMesh_3= +function(){return(tc=a._emscripten_bind_Decoder_GetFaceFromMesh_3=a.asm.Ua).apply(null,arguments)},uc=a._emscripten_bind_Decoder_GetTriangleStripsFromMesh_2=function(){return(uc=a._emscripten_bind_Decoder_GetTriangleStripsFromMesh_2=a.asm.Va).apply(null,arguments)},vc=a._emscripten_bind_Decoder_GetTrianglesUInt16Array_3=function(){return(vc=a._emscripten_bind_Decoder_GetTrianglesUInt16Array_3=a.asm.Wa).apply(null,arguments)},wc=a._emscripten_bind_Decoder_GetTrianglesUInt32Array_3=function(){return(wc= +a._emscripten_bind_Decoder_GetTrianglesUInt32Array_3=a.asm.Xa).apply(null,arguments)},xc=a._emscripten_bind_Decoder_GetAttributeFloat_3=function(){return(xc=a._emscripten_bind_Decoder_GetAttributeFloat_3=a.asm.Ya).apply(null,arguments)},yc=a._emscripten_bind_Decoder_GetAttributeFloatForAllPoints_3=function(){return(yc=a._emscripten_bind_Decoder_GetAttributeFloatForAllPoints_3=a.asm.Za).apply(null,arguments)},zc=a._emscripten_bind_Decoder_GetAttributeIntForAllPoints_3=function(){return(zc=a._emscripten_bind_Decoder_GetAttributeIntForAllPoints_3= +a.asm._a).apply(null,arguments)},Ac=a._emscripten_bind_Decoder_GetAttributeInt8ForAllPoints_3=function(){return(Ac=a._emscripten_bind_Decoder_GetAttributeInt8ForAllPoints_3=a.asm.$a).apply(null,arguments)},Bc=a._emscripten_bind_Decoder_GetAttributeUInt8ForAllPoints_3=function(){return(Bc=a._emscripten_bind_Decoder_GetAttributeUInt8ForAllPoints_3=a.asm.ab).apply(null,arguments)},Cc=a._emscripten_bind_Decoder_GetAttributeInt16ForAllPoints_3=function(){return(Cc=a._emscripten_bind_Decoder_GetAttributeInt16ForAllPoints_3= +a.asm.bb).apply(null,arguments)},Dc=a._emscripten_bind_Decoder_GetAttributeUInt16ForAllPoints_3=function(){return(Dc=a._emscripten_bind_Decoder_GetAttributeUInt16ForAllPoints_3=a.asm.cb).apply(null,arguments)},Ec=a._emscripten_bind_Decoder_GetAttributeInt32ForAllPoints_3=function(){return(Ec=a._emscripten_bind_Decoder_GetAttributeInt32ForAllPoints_3=a.asm.db).apply(null,arguments)},Fc=a._emscripten_bind_Decoder_GetAttributeUInt32ForAllPoints_3=function(){return(Fc=a._emscripten_bind_Decoder_GetAttributeUInt32ForAllPoints_3= +a.asm.eb).apply(null,arguments)},Gc=a._emscripten_bind_Decoder_GetAttributeDataArrayForAllPoints_5=function(){return(Gc=a._emscripten_bind_Decoder_GetAttributeDataArrayForAllPoints_5=a.asm.fb).apply(null,arguments)},Hc=a._emscripten_bind_Decoder_SkipAttributeTransform_1=function(){return(Hc=a._emscripten_bind_Decoder_SkipAttributeTransform_1=a.asm.gb).apply(null,arguments)},Ic=a._emscripten_bind_Decoder_GetEncodedGeometryType_Deprecated_1=function(){return(Ic=a._emscripten_bind_Decoder_GetEncodedGeometryType_Deprecated_1= +a.asm.hb).apply(null,arguments)},Jc=a._emscripten_bind_Decoder_DecodeBufferToPointCloud_2=function(){return(Jc=a._emscripten_bind_Decoder_DecodeBufferToPointCloud_2=a.asm.ib).apply(null,arguments)},Kc=a._emscripten_bind_Decoder_DecodeBufferToMesh_2=function(){return(Kc=a._emscripten_bind_Decoder_DecodeBufferToMesh_2=a.asm.jb).apply(null,arguments)},Lc=a._emscripten_bind_Decoder___destroy___0=function(){return(Lc=a._emscripten_bind_Decoder___destroy___0=a.asm.kb).apply(null,arguments)},Mc=a._emscripten_enum_draco_AttributeTransformType_ATTRIBUTE_INVALID_TRANSFORM= +function(){return(Mc=a._emscripten_enum_draco_AttributeTransformType_ATTRIBUTE_INVALID_TRANSFORM=a.asm.lb).apply(null,arguments)},Nc=a._emscripten_enum_draco_AttributeTransformType_ATTRIBUTE_NO_TRANSFORM=function(){return(Nc=a._emscripten_enum_draco_AttributeTransformType_ATTRIBUTE_NO_TRANSFORM=a.asm.mb).apply(null,arguments)},Oc=a._emscripten_enum_draco_AttributeTransformType_ATTRIBUTE_QUANTIZATION_TRANSFORM=function(){return(Oc=a._emscripten_enum_draco_AttributeTransformType_ATTRIBUTE_QUANTIZATION_TRANSFORM= +a.asm.nb).apply(null,arguments)},Pc=a._emscripten_enum_draco_AttributeTransformType_ATTRIBUTE_OCTAHEDRON_TRANSFORM=function(){return(Pc=a._emscripten_enum_draco_AttributeTransformType_ATTRIBUTE_OCTAHEDRON_TRANSFORM=a.asm.ob).apply(null,arguments)},Qc=a._emscripten_enum_draco_GeometryAttribute_Type_INVALID=function(){return(Qc=a._emscripten_enum_draco_GeometryAttribute_Type_INVALID=a.asm.pb).apply(null,arguments)},Rc=a._emscripten_enum_draco_GeometryAttribute_Type_POSITION=function(){return(Rc=a._emscripten_enum_draco_GeometryAttribute_Type_POSITION= +a.asm.qb).apply(null,arguments)},Sc=a._emscripten_enum_draco_GeometryAttribute_Type_NORMAL=function(){return(Sc=a._emscripten_enum_draco_GeometryAttribute_Type_NORMAL=a.asm.rb).apply(null,arguments)},Tc=a._emscripten_enum_draco_GeometryAttribute_Type_COLOR=function(){return(Tc=a._emscripten_enum_draco_GeometryAttribute_Type_COLOR=a.asm.sb).apply(null,arguments)},Uc=a._emscripten_enum_draco_GeometryAttribute_Type_TEX_COORD=function(){return(Uc=a._emscripten_enum_draco_GeometryAttribute_Type_TEX_COORD= +a.asm.tb).apply(null,arguments)},Vc=a._emscripten_enum_draco_GeometryAttribute_Type_GENERIC=function(){return(Vc=a._emscripten_enum_draco_GeometryAttribute_Type_GENERIC=a.asm.ub).apply(null,arguments)},Wc=a._emscripten_enum_draco_EncodedGeometryType_INVALID_GEOMETRY_TYPE=function(){return(Wc=a._emscripten_enum_draco_EncodedGeometryType_INVALID_GEOMETRY_TYPE=a.asm.vb).apply(null,arguments)},Xc=a._emscripten_enum_draco_EncodedGeometryType_POINT_CLOUD=function(){return(Xc=a._emscripten_enum_draco_EncodedGeometryType_POINT_CLOUD= +a.asm.wb).apply(null,arguments)},Yc=a._emscripten_enum_draco_EncodedGeometryType_TRIANGULAR_MESH=function(){return(Yc=a._emscripten_enum_draco_EncodedGeometryType_TRIANGULAR_MESH=a.asm.xb).apply(null,arguments)},Zc=a._emscripten_enum_draco_DataType_DT_INVALID=function(){return(Zc=a._emscripten_enum_draco_DataType_DT_INVALID=a.asm.yb).apply(null,arguments)},$c=a._emscripten_enum_draco_DataType_DT_INT8=function(){return($c=a._emscripten_enum_draco_DataType_DT_INT8=a.asm.zb).apply(null,arguments)},ad= +a._emscripten_enum_draco_DataType_DT_UINT8=function(){return(ad=a._emscripten_enum_draco_DataType_DT_UINT8=a.asm.Ab).apply(null,arguments)},bd=a._emscripten_enum_draco_DataType_DT_INT16=function(){return(bd=a._emscripten_enum_draco_DataType_DT_INT16=a.asm.Bb).apply(null,arguments)},cd=a._emscripten_enum_draco_DataType_DT_UINT16=function(){return(cd=a._emscripten_enum_draco_DataType_DT_UINT16=a.asm.Cb).apply(null,arguments)},dd=a._emscripten_enum_draco_DataType_DT_INT32=function(){return(dd=a._emscripten_enum_draco_DataType_DT_INT32= +a.asm.Db).apply(null,arguments)},ed=a._emscripten_enum_draco_DataType_DT_UINT32=function(){return(ed=a._emscripten_enum_draco_DataType_DT_UINT32=a.asm.Eb).apply(null,arguments)},fd=a._emscripten_enum_draco_DataType_DT_INT64=function(){return(fd=a._emscripten_enum_draco_DataType_DT_INT64=a.asm.Fb).apply(null,arguments)},gd=a._emscripten_enum_draco_DataType_DT_UINT64=function(){return(gd=a._emscripten_enum_draco_DataType_DT_UINT64=a.asm.Gb).apply(null,arguments)},hd=a._emscripten_enum_draco_DataType_DT_FLOAT32= +function(){return(hd=a._emscripten_enum_draco_DataType_DT_FLOAT32=a.asm.Hb).apply(null,arguments)},id=a._emscripten_enum_draco_DataType_DT_FLOAT64=function(){return(id=a._emscripten_enum_draco_DataType_DT_FLOAT64=a.asm.Ib).apply(null,arguments)},jd=a._emscripten_enum_draco_DataType_DT_BOOL=function(){return(jd=a._emscripten_enum_draco_DataType_DT_BOOL=a.asm.Jb).apply(null,arguments)},kd=a._emscripten_enum_draco_DataType_DT_TYPES_COUNT=function(){return(kd=a._emscripten_enum_draco_DataType_DT_TYPES_COUNT= +a.asm.Kb).apply(null,arguments)},ld=a._emscripten_enum_draco_StatusCode_OK=function(){return(ld=a._emscripten_enum_draco_StatusCode_OK=a.asm.Lb).apply(null,arguments)},md=a._emscripten_enum_draco_StatusCode_DRACO_ERROR=function(){return(md=a._emscripten_enum_draco_StatusCode_DRACO_ERROR=a.asm.Mb).apply(null,arguments)},nd=a._emscripten_enum_draco_StatusCode_IO_ERROR=function(){return(nd=a._emscripten_enum_draco_StatusCode_IO_ERROR=a.asm.Nb).apply(null,arguments)},od=a._emscripten_enum_draco_StatusCode_INVALID_PARAMETER= +function(){return(od=a._emscripten_enum_draco_StatusCode_INVALID_PARAMETER=a.asm.Ob).apply(null,arguments)},pd=a._emscripten_enum_draco_StatusCode_UNSUPPORTED_VERSION=function(){return(pd=a._emscripten_enum_draco_StatusCode_UNSUPPORTED_VERSION=a.asm.Pb).apply(null,arguments)},qd=a._emscripten_enum_draco_StatusCode_UNKNOWN_VERSION=function(){return(qd=a._emscripten_enum_draco_StatusCode_UNKNOWN_VERSION=a.asm.Qb).apply(null,arguments)},Ya=a._malloc=function(){return(Ya=a._malloc=a.asm.Rb).apply(null, +arguments)};a._free=function(){return(a._free=a.asm.Sb).apply(null,arguments)};var ua=a.___cxa_is_pointer_type=function(){return(ua=a.___cxa_is_pointer_type=a.asm.Tb).apply(null,arguments)};a.___start_em_js=11660;a.___stop_em_js=11758;var ka;ha=function b(){ka||F();ka||(ha=b)};if(a.preInit)for("function"==typeof a.preInit&&(a.preInit=[a.preInit]);0=r.size?(0>>=0;switch(c.BYTES_PER_ELEMENT){case 2:d>>>=1;break;case 4:d>>>=2;break;case 8:d>>>=3}for(var g=0;gb.byteLength)return a.INVALID_GEOMETRY_TYPE;switch(b[7]){case 0:return a.POINT_CLOUD;case 1:return a.TRIANGULAR_MESH;default:return a.INVALID_GEOMETRY_TYPE}};return n.ready}}();"object"===typeof exports&&"object"===typeof module?module.exports=DracoDecoderModule:"function"===typeof define&&define.amd?define([],function(){return DracoDecoderModule}):"object"===typeof exports&&(exports.DracoDecoderModule=DracoDecoderModule); diff --git a/javascript/npm/draco3d/README.md b/javascript/npm/draco3d/README.md index 2c70544..e8f1200 100644 --- a/javascript/npm/draco3d/README.md +++ b/javascript/npm/draco3d/README.md @@ -6,7 +6,7 @@ News ======= -Check out the [README](https://github.com/google/draco/blob/1.5.3/README.md) +Check out the [README](https://github.com/google/draco/blob/1.5.4/README.md) file for news about this release. Description diff --git a/javascript/npm/draco3d/draco_decoder.wasm b/javascript/npm/draco3d/draco_decoder.wasm index fe2c331..ef332a6 100644 Binary files a/javascript/npm/draco3d/draco_decoder.wasm and b/javascript/npm/draco3d/draco_decoder.wasm differ diff --git a/javascript/npm/draco3d/draco_decoder_nodejs.js b/javascript/npm/draco3d/draco_decoder_nodejs.js index 4aee9d1..2676a48 100644 --- a/javascript/npm/draco3d/draco_decoder_nodejs.js +++ b/javascript/npm/draco3d/draco_decoder_nodejs.js @@ -7,112 +7,111 @@ $jscomp.polyfillIsolated=function(k,n,l,p){var h=k.split(".");k=1===h.length;p=h $jscomp.global.Symbol(h):$jscomp.POLYFILL_PREFIX+l+"$"+h),$jscomp.defineProperty(p,$jscomp.propertyToPolyfillSymbol[h],{configurable:!0,writable:!0,value:n})))}; $jscomp.polyfill("Promise",function(k){function n(){this.batch_=null}function l(f){return f instanceof h?f:new h(function(q,v){q(f)})}if(k&&(!($jscomp.FORCE_POLYFILL_PROMISE||$jscomp.FORCE_POLYFILL_PROMISE_WHEN_NO_UNHANDLED_REJECTION&&"undefined"===typeof $jscomp.global.PromiseRejectionEvent)||!$jscomp.global.Promise||-1===$jscomp.global.Promise.toString().indexOf("[native code]")))return k;n.prototype.asyncExecute=function(f){if(null==this.batch_){this.batch_=[];var q=this;this.asyncExecuteFunction(function(){q.executeBatch_()})}this.batch_.push(f)}; var p=$jscomp.global.setTimeout;n.prototype.asyncExecuteFunction=function(f){p(f,0)};n.prototype.executeBatch_=function(){for(;this.batch_&&this.batch_.length;){var f=this.batch_;this.batch_=[];for(var q=0;q=A}},"es6","es3"); $jscomp.polyfill("Array.prototype.copyWithin",function(k){function n(l){l=Number(l);return Infinity===l||-Infinity===l?l:l|0}return k?k:function(l,p,h){var A=this.length;l=n(l);p=n(p);h=void 0===h?A:n(h);l=0>l?Math.max(A+l,0):Math.min(l,A);p=0>p?Math.max(A+p,0):Math.min(p,A);h=0>h?Math.max(A+h,0):Math.min(h,A);if(lp;)--h in this?this[--l]=this[h]:delete this[--l];return this}},"es6","es3"); $jscomp.typedArrayCopyWithin=function(k){return k?k:Array.prototype.copyWithin};$jscomp.polyfill("Int8Array.prototype.copyWithin",$jscomp.typedArrayCopyWithin,"es6","es5");$jscomp.polyfill("Uint8Array.prototype.copyWithin",$jscomp.typedArrayCopyWithin,"es6","es5");$jscomp.polyfill("Uint8ClampedArray.prototype.copyWithin",$jscomp.typedArrayCopyWithin,"es6","es5");$jscomp.polyfill("Int16Array.prototype.copyWithin",$jscomp.typedArrayCopyWithin,"es6","es5"); $jscomp.polyfill("Uint16Array.prototype.copyWithin",$jscomp.typedArrayCopyWithin,"es6","es5");$jscomp.polyfill("Int32Array.prototype.copyWithin",$jscomp.typedArrayCopyWithin,"es6","es5");$jscomp.polyfill("Uint32Array.prototype.copyWithin",$jscomp.typedArrayCopyWithin,"es6","es5");$jscomp.polyfill("Float32Array.prototype.copyWithin",$jscomp.typedArrayCopyWithin,"es6","es5");$jscomp.polyfill("Float64Array.prototype.copyWithin",$jscomp.typedArrayCopyWithin,"es6","es5"); -var DracoDecoderModule=function(){var k="undefined"!==typeof document&&document.currentScript?document.currentScript.src:void 0;"undefined"!==typeof __filename&&(k=k||__filename);return function(n){function l(e){return a.locateFile?a.locateFile(e,U):U+e}function p(e,b,c){var d=b+c;for(c=b;e[c]&&!(c>=d);)++c;if(16g?d+=String.fromCharCode(g):(g-=65536,d+=String.fromCharCode(55296|g>>10,56320|g&1023))}}else d+=String.fromCharCode(g)}return d}function h(e,b){return e?p(fa,e,b):""}function A(e){za=e;a.HEAP8=Y=new Int8Array(e);a.HEAP16=new Int16Array(e);a.HEAP32=ca=new Int32Array(e);a.HEAPU8=fa=new Uint8Array(e);a.HEAPU16=new Uint16Array(e);a.HEAPU32=V=new Uint32Array(e);a.HEAPF32=new Float32Array(e);a.HEAPF64=new Float64Array(e)}function f(e){if(a.onAbort)a.onAbort(e); -e="Aborted("+e+")";da(e);Aa=!0;e=new WebAssembly.RuntimeError(e+". Build with -sASSERTIONS for more info.");oa(e);throw e;}function q(e){try{if(e==Q&&ha)return new Uint8Array(ha);if(pa)return pa(e);throw"both async and sync fetching of the wasm failed";}catch(b){f(b)}}function v(){if(!ha&&(Ba||ia)){if("function"==typeof fetch&&!Q.startsWith("file://"))return fetch(Q,{credentials:"same-origin"}).then(function(e){if(!e.ok)throw"failed to load wasm binary file at '"+Q+"'";return e.arrayBuffer()}).catch(function(){return q(Q)}); -if(qa)return new Promise(function(e,b){qa(Q,function(c){e(new Uint8Array(c))},b)})}return Promise.resolve().then(function(){return q(Q)})}function z(e){for(;0=ka.length&&(ka.length=e+1),ka[e]=b=Ca.get(e));return b}function ea(e){this.excPtr=e;this.ptr=e-24;this.set_type=function(b){V[this.ptr+4>>2]=b};this.get_type= -function(){return V[this.ptr+4>>2]};this.set_destructor=function(b){V[this.ptr+8>>2]=b};this.get_destructor=function(){return V[this.ptr+8>>2]};this.set_refcount=function(b){ca[this.ptr>>2]=b};this.set_caught=function(b){Y[this.ptr+12>>0]=b?1:0};this.get_caught=function(){return 0!=Y[this.ptr+12>>0]};this.set_rethrown=function(b){Y[this.ptr+13>>0]=b?1:0};this.get_rethrown=function(){return 0!=Y[this.ptr+13>>0]};this.init=function(b,c){this.set_adjusted_ptr(0);this.set_type(b);this.set_destructor(c); -this.set_refcount(0);this.set_caught(!1);this.set_rethrown(!1)};this.add_ref=function(){ca[this.ptr>>2]+=1};this.release_ref=function(){var b=ca[this.ptr>>2];ca[this.ptr>>2]=b-1;return 1===b};this.set_adjusted_ptr=function(b){V[this.ptr+16>>2]=b};this.get_adjusted_ptr=function(){return V[this.ptr+16>>2]};this.get_exception_ptr=function(){if(Da(this.get_type()))return V[this.excPtr>>2];var b=this.get_adjusted_ptr();return 0!==b?b:this.excPtr}}function P(e){function b(){if(!la&&(la=!0,a.calledRun=!0, -!Aa)){Ea=!0;z(ra);Fa(a);if(a.onRuntimeInitialized)a.onRuntimeInitialized();if(a.postRun)for("function"==typeof a.postRun&&(a.postRun=[a.postRun]);a.postRun.length;)Ga.unshift(a.postRun.shift());z(Ga)}}if(!(0=d&&(d=65536+((d&1023)<<10)|e.charCodeAt(++c)&1023);127>=d?++b:b=2047>=d?b+2:65535>=d?b+3:b+4}b=Array(b+1);c=0;d=b.length;if(0=t){var X=e.charCodeAt(++g);t=65536+((t&1023)<<10)|X&1023}if(127>=t){if(c>=d)break; -b[c++]=t}else{if(2047>=t){if(c+1>=d)break;b[c++]=192|t>>6}else{if(65535>=t){if(c+2>=d)break;b[c++]=224|t>>12}else{if(c+3>=d)break;b[c++]=240|t>>18;b[c++]=128|t>>12&63}b[c++]=128|t>>6&63}b[c++]=128|t&63}}b[c]=0}e=r.alloc(b,Y);r.copy(b,Y,e);return e}return e}function sa(e){if("object"===typeof e){var b=r.alloc(e,Y);r.copy(e,Y,b);return b}return e}function Z(){throw"cannot construct a VoidPtr, no constructor in IDL";}function S(){this.ptr=Ia();x(S)[this.ptr]=this}function R(){this.ptr=Ja();x(R)[this.ptr]= -this}function W(){this.ptr=Ka();x(W)[this.ptr]=this}function w(){this.ptr=La();x(w)[this.ptr]=this}function C(){this.ptr=Ma();x(C)[this.ptr]=this}function G(){this.ptr=Na();x(G)[this.ptr]=this}function H(){this.ptr=Oa();x(H)[this.ptr]=this}function E(){this.ptr=Pa();x(E)[this.ptr]=this}function T(){this.ptr=Qa();x(T)[this.ptr]=this}function B(){throw"cannot construct a Status, no constructor in IDL";}function I(){this.ptr=Ra();x(I)[this.ptr]=this}function J(){this.ptr=Sa();x(J)[this.ptr]=this}function K(){this.ptr= -Ta();x(K)[this.ptr]=this}function L(){this.ptr=Ua();x(L)[this.ptr]=this}function M(){this.ptr=Va();x(M)[this.ptr]=this}function N(){this.ptr=Wa();x(N)[this.ptr]=this}function O(){this.ptr=Xa();x(O)[this.ptr]=this}function y(){this.ptr=Ya();x(y)[this.ptr]=this}function m(){this.ptr=Za();x(m)[this.ptr]=this}n=n||{};var a="undefined"!=typeof n?n:{},Fa,oa;a.ready=new Promise(function(e,b){Fa=e;oa=b});var $a=!1,ab=!1;a.onRuntimeInitialized=function(){$a=!0;if(ab&&"function"===typeof a.onModuleLoaded)a.onModuleLoaded(a)}; -a.onModuleParsed=function(){ab=!0;if($a&&"function"===typeof a.onModuleLoaded)a.onModuleLoaded(a)};a.isVersionSupported=function(e){if("string"!==typeof e)return!1;e=e.split(".");return 2>e.length||3=e[1]?!0:0!=e[0]||10>>=0;if(2147483648=c;c*=2){var d=b*(1+.2/c);d=Math.min(d,e+100663296);var g=Math;d=Math.max(e,d);g=g.min.call(g,2147483648,d+(65536-d%65536)%65536);a:{try{na.grow(g-za.byteLength+65535>>>16);A(na.buffer);var t=1;break a}catch(X){}t=void 0}if(t)return!0}return!1}, -g:function(e){return 52},e:function(e,b,c,d,g){return 70},d:function(e,b,c,d){for(var g=0,t=0;t>2],gb=V[b+4>>2];b+=8;for(var va=0;va>2]=g;return 0}};(function(){function e(g,t){a.asm=g.exports;na=a.asm.i;A(na.buffer);Ca=a.asm.k;ra.unshift(a.asm.j);ba--;a.monitorRunDependencies&&a.monitorRunDependencies(ba);0==ba&&(null!==ua&&(clearInterval(ua),ua=null),ja&&(g=ja,ja=null, -g()))}function b(g){e(g.instance)}function c(g){return v().then(function(t){return WebAssembly.instantiate(t,d)}).then(function(t){return t}).then(g,function(t){da("failed to asynchronously prepare wasm: "+t);f(t)})}var d={a:Dd};ba++;a.monitorRunDependencies&&a.monitorRunDependencies(ba);if(a.instantiateWasm)try{return a.instantiateWasm(d,e)}catch(g){return da("Module.instantiateWasm callback failed with error: "+g),!1}(function(){return ha||"function"!=typeof WebAssembly.instantiateStreaming||Q.startsWith("data:application/octet-stream;base64,")|| -Q.startsWith("file://")||cb||"function"!=typeof fetch?c(b):fetch(Q,{credentials:"same-origin"}).then(function(g){return WebAssembly.instantiateStreaming(g,d).then(b,function(t){da("wasm streaming compile failed: "+t);da("falling back to ArrayBuffer instantiation");return c(b)})})})().catch(oa);return{}})();a.___wasm_call_ctors=function(){return(a.___wasm_call_ctors=a.asm.j).apply(null,arguments)};var hb=a._emscripten_bind_VoidPtr___destroy___0=function(){return(hb=a._emscripten_bind_VoidPtr___destroy___0= -a.asm.l).apply(null,arguments)},Ia=a._emscripten_bind_DecoderBuffer_DecoderBuffer_0=function(){return(Ia=a._emscripten_bind_DecoderBuffer_DecoderBuffer_0=a.asm.m).apply(null,arguments)},ib=a._emscripten_bind_DecoderBuffer_Init_2=function(){return(ib=a._emscripten_bind_DecoderBuffer_Init_2=a.asm.n).apply(null,arguments)},jb=a._emscripten_bind_DecoderBuffer___destroy___0=function(){return(jb=a._emscripten_bind_DecoderBuffer___destroy___0=a.asm.o).apply(null,arguments)},Ja=a._emscripten_bind_AttributeTransformData_AttributeTransformData_0= -function(){return(Ja=a._emscripten_bind_AttributeTransformData_AttributeTransformData_0=a.asm.p).apply(null,arguments)},kb=a._emscripten_bind_AttributeTransformData_transform_type_0=function(){return(kb=a._emscripten_bind_AttributeTransformData_transform_type_0=a.asm.q).apply(null,arguments)},lb=a._emscripten_bind_AttributeTransformData___destroy___0=function(){return(lb=a._emscripten_bind_AttributeTransformData___destroy___0=a.asm.r).apply(null,arguments)},Ka=a._emscripten_bind_GeometryAttribute_GeometryAttribute_0= -function(){return(Ka=a._emscripten_bind_GeometryAttribute_GeometryAttribute_0=a.asm.s).apply(null,arguments)},mb=a._emscripten_bind_GeometryAttribute___destroy___0=function(){return(mb=a._emscripten_bind_GeometryAttribute___destroy___0=a.asm.t).apply(null,arguments)},La=a._emscripten_bind_PointAttribute_PointAttribute_0=function(){return(La=a._emscripten_bind_PointAttribute_PointAttribute_0=a.asm.u).apply(null,arguments)},nb=a._emscripten_bind_PointAttribute_size_0=function(){return(nb=a._emscripten_bind_PointAttribute_size_0= -a.asm.v).apply(null,arguments)},ob=a._emscripten_bind_PointAttribute_GetAttributeTransformData_0=function(){return(ob=a._emscripten_bind_PointAttribute_GetAttributeTransformData_0=a.asm.w).apply(null,arguments)},pb=a._emscripten_bind_PointAttribute_attribute_type_0=function(){return(pb=a._emscripten_bind_PointAttribute_attribute_type_0=a.asm.x).apply(null,arguments)},qb=a._emscripten_bind_PointAttribute_data_type_0=function(){return(qb=a._emscripten_bind_PointAttribute_data_type_0=a.asm.y).apply(null, -arguments)},rb=a._emscripten_bind_PointAttribute_num_components_0=function(){return(rb=a._emscripten_bind_PointAttribute_num_components_0=a.asm.z).apply(null,arguments)},sb=a._emscripten_bind_PointAttribute_normalized_0=function(){return(sb=a._emscripten_bind_PointAttribute_normalized_0=a.asm.A).apply(null,arguments)},tb=a._emscripten_bind_PointAttribute_byte_stride_0=function(){return(tb=a._emscripten_bind_PointAttribute_byte_stride_0=a.asm.B).apply(null,arguments)},ub=a._emscripten_bind_PointAttribute_byte_offset_0= -function(){return(ub=a._emscripten_bind_PointAttribute_byte_offset_0=a.asm.C).apply(null,arguments)},vb=a._emscripten_bind_PointAttribute_unique_id_0=function(){return(vb=a._emscripten_bind_PointAttribute_unique_id_0=a.asm.D).apply(null,arguments)},wb=a._emscripten_bind_PointAttribute___destroy___0=function(){return(wb=a._emscripten_bind_PointAttribute___destroy___0=a.asm.E).apply(null,arguments)},Ma=a._emscripten_bind_AttributeQuantizationTransform_AttributeQuantizationTransform_0=function(){return(Ma= -a._emscripten_bind_AttributeQuantizationTransform_AttributeQuantizationTransform_0=a.asm.F).apply(null,arguments)},xb=a._emscripten_bind_AttributeQuantizationTransform_InitFromAttribute_1=function(){return(xb=a._emscripten_bind_AttributeQuantizationTransform_InitFromAttribute_1=a.asm.G).apply(null,arguments)},yb=a._emscripten_bind_AttributeQuantizationTransform_quantization_bits_0=function(){return(yb=a._emscripten_bind_AttributeQuantizationTransform_quantization_bits_0=a.asm.H).apply(null,arguments)}, -zb=a._emscripten_bind_AttributeQuantizationTransform_min_value_1=function(){return(zb=a._emscripten_bind_AttributeQuantizationTransform_min_value_1=a.asm.I).apply(null,arguments)},Ab=a._emscripten_bind_AttributeQuantizationTransform_range_0=function(){return(Ab=a._emscripten_bind_AttributeQuantizationTransform_range_0=a.asm.J).apply(null,arguments)},Bb=a._emscripten_bind_AttributeQuantizationTransform___destroy___0=function(){return(Bb=a._emscripten_bind_AttributeQuantizationTransform___destroy___0= -a.asm.K).apply(null,arguments)},Na=a._emscripten_bind_AttributeOctahedronTransform_AttributeOctahedronTransform_0=function(){return(Na=a._emscripten_bind_AttributeOctahedronTransform_AttributeOctahedronTransform_0=a.asm.L).apply(null,arguments)},Cb=a._emscripten_bind_AttributeOctahedronTransform_InitFromAttribute_1=function(){return(Cb=a._emscripten_bind_AttributeOctahedronTransform_InitFromAttribute_1=a.asm.M).apply(null,arguments)},Db=a._emscripten_bind_AttributeOctahedronTransform_quantization_bits_0= -function(){return(Db=a._emscripten_bind_AttributeOctahedronTransform_quantization_bits_0=a.asm.N).apply(null,arguments)},Eb=a._emscripten_bind_AttributeOctahedronTransform___destroy___0=function(){return(Eb=a._emscripten_bind_AttributeOctahedronTransform___destroy___0=a.asm.O).apply(null,arguments)},Oa=a._emscripten_bind_PointCloud_PointCloud_0=function(){return(Oa=a._emscripten_bind_PointCloud_PointCloud_0=a.asm.P).apply(null,arguments)},Fb=a._emscripten_bind_PointCloud_num_attributes_0=function(){return(Fb= -a._emscripten_bind_PointCloud_num_attributes_0=a.asm.Q).apply(null,arguments)},Gb=a._emscripten_bind_PointCloud_num_points_0=function(){return(Gb=a._emscripten_bind_PointCloud_num_points_0=a.asm.R).apply(null,arguments)},Hb=a._emscripten_bind_PointCloud___destroy___0=function(){return(Hb=a._emscripten_bind_PointCloud___destroy___0=a.asm.S).apply(null,arguments)},Pa=a._emscripten_bind_Mesh_Mesh_0=function(){return(Pa=a._emscripten_bind_Mesh_Mesh_0=a.asm.T).apply(null,arguments)},Ib=a._emscripten_bind_Mesh_num_faces_0= -function(){return(Ib=a._emscripten_bind_Mesh_num_faces_0=a.asm.U).apply(null,arguments)},Jb=a._emscripten_bind_Mesh_num_attributes_0=function(){return(Jb=a._emscripten_bind_Mesh_num_attributes_0=a.asm.V).apply(null,arguments)},Kb=a._emscripten_bind_Mesh_num_points_0=function(){return(Kb=a._emscripten_bind_Mesh_num_points_0=a.asm.W).apply(null,arguments)},Lb=a._emscripten_bind_Mesh___destroy___0=function(){return(Lb=a._emscripten_bind_Mesh___destroy___0=a.asm.X).apply(null,arguments)},Qa=a._emscripten_bind_Metadata_Metadata_0= -function(){return(Qa=a._emscripten_bind_Metadata_Metadata_0=a.asm.Y).apply(null,arguments)},Mb=a._emscripten_bind_Metadata___destroy___0=function(){return(Mb=a._emscripten_bind_Metadata___destroy___0=a.asm.Z).apply(null,arguments)},Nb=a._emscripten_bind_Status_code_0=function(){return(Nb=a._emscripten_bind_Status_code_0=a.asm._).apply(null,arguments)},Ob=a._emscripten_bind_Status_ok_0=function(){return(Ob=a._emscripten_bind_Status_ok_0=a.asm.$).apply(null,arguments)},Pb=a._emscripten_bind_Status_error_msg_0= -function(){return(Pb=a._emscripten_bind_Status_error_msg_0=a.asm.aa).apply(null,arguments)},Qb=a._emscripten_bind_Status___destroy___0=function(){return(Qb=a._emscripten_bind_Status___destroy___0=a.asm.ba).apply(null,arguments)},Ra=a._emscripten_bind_DracoFloat32Array_DracoFloat32Array_0=function(){return(Ra=a._emscripten_bind_DracoFloat32Array_DracoFloat32Array_0=a.asm.ca).apply(null,arguments)},Rb=a._emscripten_bind_DracoFloat32Array_GetValue_1=function(){return(Rb=a._emscripten_bind_DracoFloat32Array_GetValue_1= -a.asm.da).apply(null,arguments)},Sb=a._emscripten_bind_DracoFloat32Array_size_0=function(){return(Sb=a._emscripten_bind_DracoFloat32Array_size_0=a.asm.ea).apply(null,arguments)},Tb=a._emscripten_bind_DracoFloat32Array___destroy___0=function(){return(Tb=a._emscripten_bind_DracoFloat32Array___destroy___0=a.asm.fa).apply(null,arguments)},Sa=a._emscripten_bind_DracoInt8Array_DracoInt8Array_0=function(){return(Sa=a._emscripten_bind_DracoInt8Array_DracoInt8Array_0=a.asm.ga).apply(null,arguments)},Ub=a._emscripten_bind_DracoInt8Array_GetValue_1= -function(){return(Ub=a._emscripten_bind_DracoInt8Array_GetValue_1=a.asm.ha).apply(null,arguments)},Vb=a._emscripten_bind_DracoInt8Array_size_0=function(){return(Vb=a._emscripten_bind_DracoInt8Array_size_0=a.asm.ia).apply(null,arguments)},Wb=a._emscripten_bind_DracoInt8Array___destroy___0=function(){return(Wb=a._emscripten_bind_DracoInt8Array___destroy___0=a.asm.ja).apply(null,arguments)},Ta=a._emscripten_bind_DracoUInt8Array_DracoUInt8Array_0=function(){return(Ta=a._emscripten_bind_DracoUInt8Array_DracoUInt8Array_0= -a.asm.ka).apply(null,arguments)},Xb=a._emscripten_bind_DracoUInt8Array_GetValue_1=function(){return(Xb=a._emscripten_bind_DracoUInt8Array_GetValue_1=a.asm.la).apply(null,arguments)},Yb=a._emscripten_bind_DracoUInt8Array_size_0=function(){return(Yb=a._emscripten_bind_DracoUInt8Array_size_0=a.asm.ma).apply(null,arguments)},Zb=a._emscripten_bind_DracoUInt8Array___destroy___0=function(){return(Zb=a._emscripten_bind_DracoUInt8Array___destroy___0=a.asm.na).apply(null,arguments)},Ua=a._emscripten_bind_DracoInt16Array_DracoInt16Array_0= -function(){return(Ua=a._emscripten_bind_DracoInt16Array_DracoInt16Array_0=a.asm.oa).apply(null,arguments)},$b=a._emscripten_bind_DracoInt16Array_GetValue_1=function(){return($b=a._emscripten_bind_DracoInt16Array_GetValue_1=a.asm.pa).apply(null,arguments)},ac=a._emscripten_bind_DracoInt16Array_size_0=function(){return(ac=a._emscripten_bind_DracoInt16Array_size_0=a.asm.qa).apply(null,arguments)},bc=a._emscripten_bind_DracoInt16Array___destroy___0=function(){return(bc=a._emscripten_bind_DracoInt16Array___destroy___0= -a.asm.ra).apply(null,arguments)},Va=a._emscripten_bind_DracoUInt16Array_DracoUInt16Array_0=function(){return(Va=a._emscripten_bind_DracoUInt16Array_DracoUInt16Array_0=a.asm.sa).apply(null,arguments)},cc=a._emscripten_bind_DracoUInt16Array_GetValue_1=function(){return(cc=a._emscripten_bind_DracoUInt16Array_GetValue_1=a.asm.ta).apply(null,arguments)},dc=a._emscripten_bind_DracoUInt16Array_size_0=function(){return(dc=a._emscripten_bind_DracoUInt16Array_size_0=a.asm.ua).apply(null,arguments)},ec=a._emscripten_bind_DracoUInt16Array___destroy___0= -function(){return(ec=a._emscripten_bind_DracoUInt16Array___destroy___0=a.asm.va).apply(null,arguments)},Wa=a._emscripten_bind_DracoInt32Array_DracoInt32Array_0=function(){return(Wa=a._emscripten_bind_DracoInt32Array_DracoInt32Array_0=a.asm.wa).apply(null,arguments)},fc=a._emscripten_bind_DracoInt32Array_GetValue_1=function(){return(fc=a._emscripten_bind_DracoInt32Array_GetValue_1=a.asm.xa).apply(null,arguments)},gc=a._emscripten_bind_DracoInt32Array_size_0=function(){return(gc=a._emscripten_bind_DracoInt32Array_size_0= -a.asm.ya).apply(null,arguments)},hc=a._emscripten_bind_DracoInt32Array___destroy___0=function(){return(hc=a._emscripten_bind_DracoInt32Array___destroy___0=a.asm.za).apply(null,arguments)},Xa=a._emscripten_bind_DracoUInt32Array_DracoUInt32Array_0=function(){return(Xa=a._emscripten_bind_DracoUInt32Array_DracoUInt32Array_0=a.asm.Aa).apply(null,arguments)},ic=a._emscripten_bind_DracoUInt32Array_GetValue_1=function(){return(ic=a._emscripten_bind_DracoUInt32Array_GetValue_1=a.asm.Ba).apply(null,arguments)}, -jc=a._emscripten_bind_DracoUInt32Array_size_0=function(){return(jc=a._emscripten_bind_DracoUInt32Array_size_0=a.asm.Ca).apply(null,arguments)},kc=a._emscripten_bind_DracoUInt32Array___destroy___0=function(){return(kc=a._emscripten_bind_DracoUInt32Array___destroy___0=a.asm.Da).apply(null,arguments)},Ya=a._emscripten_bind_MetadataQuerier_MetadataQuerier_0=function(){return(Ya=a._emscripten_bind_MetadataQuerier_MetadataQuerier_0=a.asm.Ea).apply(null,arguments)},lc=a._emscripten_bind_MetadataQuerier_HasEntry_2= -function(){return(lc=a._emscripten_bind_MetadataQuerier_HasEntry_2=a.asm.Fa).apply(null,arguments)},mc=a._emscripten_bind_MetadataQuerier_GetIntEntry_2=function(){return(mc=a._emscripten_bind_MetadataQuerier_GetIntEntry_2=a.asm.Ga).apply(null,arguments)},nc=a._emscripten_bind_MetadataQuerier_GetIntEntryArray_3=function(){return(nc=a._emscripten_bind_MetadataQuerier_GetIntEntryArray_3=a.asm.Ha).apply(null,arguments)},oc=a._emscripten_bind_MetadataQuerier_GetDoubleEntry_2=function(){return(oc=a._emscripten_bind_MetadataQuerier_GetDoubleEntry_2= -a.asm.Ia).apply(null,arguments)},pc=a._emscripten_bind_MetadataQuerier_GetStringEntry_2=function(){return(pc=a._emscripten_bind_MetadataQuerier_GetStringEntry_2=a.asm.Ja).apply(null,arguments)},qc=a._emscripten_bind_MetadataQuerier_NumEntries_1=function(){return(qc=a._emscripten_bind_MetadataQuerier_NumEntries_1=a.asm.Ka).apply(null,arguments)},rc=a._emscripten_bind_MetadataQuerier_GetEntryName_2=function(){return(rc=a._emscripten_bind_MetadataQuerier_GetEntryName_2=a.asm.La).apply(null,arguments)}, -sc=a._emscripten_bind_MetadataQuerier___destroy___0=function(){return(sc=a._emscripten_bind_MetadataQuerier___destroy___0=a.asm.Ma).apply(null,arguments)},Za=a._emscripten_bind_Decoder_Decoder_0=function(){return(Za=a._emscripten_bind_Decoder_Decoder_0=a.asm.Na).apply(null,arguments)},tc=a._emscripten_bind_Decoder_DecodeArrayToPointCloud_3=function(){return(tc=a._emscripten_bind_Decoder_DecodeArrayToPointCloud_3=a.asm.Oa).apply(null,arguments)},uc=a._emscripten_bind_Decoder_DecodeArrayToMesh_3=function(){return(uc= -a._emscripten_bind_Decoder_DecodeArrayToMesh_3=a.asm.Pa).apply(null,arguments)},vc=a._emscripten_bind_Decoder_GetAttributeId_2=function(){return(vc=a._emscripten_bind_Decoder_GetAttributeId_2=a.asm.Qa).apply(null,arguments)},wc=a._emscripten_bind_Decoder_GetAttributeIdByName_2=function(){return(wc=a._emscripten_bind_Decoder_GetAttributeIdByName_2=a.asm.Ra).apply(null,arguments)},xc=a._emscripten_bind_Decoder_GetAttributeIdByMetadataEntry_3=function(){return(xc=a._emscripten_bind_Decoder_GetAttributeIdByMetadataEntry_3= -a.asm.Sa).apply(null,arguments)},yc=a._emscripten_bind_Decoder_GetAttribute_2=function(){return(yc=a._emscripten_bind_Decoder_GetAttribute_2=a.asm.Ta).apply(null,arguments)},zc=a._emscripten_bind_Decoder_GetAttributeByUniqueId_2=function(){return(zc=a._emscripten_bind_Decoder_GetAttributeByUniqueId_2=a.asm.Ua).apply(null,arguments)},Ac=a._emscripten_bind_Decoder_GetMetadata_1=function(){return(Ac=a._emscripten_bind_Decoder_GetMetadata_1=a.asm.Va).apply(null,arguments)},Bc=a._emscripten_bind_Decoder_GetAttributeMetadata_2= -function(){return(Bc=a._emscripten_bind_Decoder_GetAttributeMetadata_2=a.asm.Wa).apply(null,arguments)},Cc=a._emscripten_bind_Decoder_GetFaceFromMesh_3=function(){return(Cc=a._emscripten_bind_Decoder_GetFaceFromMesh_3=a.asm.Xa).apply(null,arguments)},Dc=a._emscripten_bind_Decoder_GetTriangleStripsFromMesh_2=function(){return(Dc=a._emscripten_bind_Decoder_GetTriangleStripsFromMesh_2=a.asm.Ya).apply(null,arguments)},Ec=a._emscripten_bind_Decoder_GetTrianglesUInt16Array_3=function(){return(Ec=a._emscripten_bind_Decoder_GetTrianglesUInt16Array_3= -a.asm.Za).apply(null,arguments)},Fc=a._emscripten_bind_Decoder_GetTrianglesUInt32Array_3=function(){return(Fc=a._emscripten_bind_Decoder_GetTrianglesUInt32Array_3=a.asm._a).apply(null,arguments)},Gc=a._emscripten_bind_Decoder_GetAttributeFloat_3=function(){return(Gc=a._emscripten_bind_Decoder_GetAttributeFloat_3=a.asm.$a).apply(null,arguments)},Hc=a._emscripten_bind_Decoder_GetAttributeFloatForAllPoints_3=function(){return(Hc=a._emscripten_bind_Decoder_GetAttributeFloatForAllPoints_3=a.asm.ab).apply(null, -arguments)},Ic=a._emscripten_bind_Decoder_GetAttributeIntForAllPoints_3=function(){return(Ic=a._emscripten_bind_Decoder_GetAttributeIntForAllPoints_3=a.asm.bb).apply(null,arguments)},Jc=a._emscripten_bind_Decoder_GetAttributeInt8ForAllPoints_3=function(){return(Jc=a._emscripten_bind_Decoder_GetAttributeInt8ForAllPoints_3=a.asm.cb).apply(null,arguments)},Kc=a._emscripten_bind_Decoder_GetAttributeUInt8ForAllPoints_3=function(){return(Kc=a._emscripten_bind_Decoder_GetAttributeUInt8ForAllPoints_3=a.asm.db).apply(null, -arguments)},Lc=a._emscripten_bind_Decoder_GetAttributeInt16ForAllPoints_3=function(){return(Lc=a._emscripten_bind_Decoder_GetAttributeInt16ForAllPoints_3=a.asm.eb).apply(null,arguments)},Mc=a._emscripten_bind_Decoder_GetAttributeUInt16ForAllPoints_3=function(){return(Mc=a._emscripten_bind_Decoder_GetAttributeUInt16ForAllPoints_3=a.asm.fb).apply(null,arguments)},Nc=a._emscripten_bind_Decoder_GetAttributeInt32ForAllPoints_3=function(){return(Nc=a._emscripten_bind_Decoder_GetAttributeInt32ForAllPoints_3= -a.asm.gb).apply(null,arguments)},Oc=a._emscripten_bind_Decoder_GetAttributeUInt32ForAllPoints_3=function(){return(Oc=a._emscripten_bind_Decoder_GetAttributeUInt32ForAllPoints_3=a.asm.hb).apply(null,arguments)},Pc=a._emscripten_bind_Decoder_GetAttributeDataArrayForAllPoints_5=function(){return(Pc=a._emscripten_bind_Decoder_GetAttributeDataArrayForAllPoints_5=a.asm.ib).apply(null,arguments)},Qc=a._emscripten_bind_Decoder_SkipAttributeTransform_1=function(){return(Qc=a._emscripten_bind_Decoder_SkipAttributeTransform_1= -a.asm.jb).apply(null,arguments)},Rc=a._emscripten_bind_Decoder_GetEncodedGeometryType_Deprecated_1=function(){return(Rc=a._emscripten_bind_Decoder_GetEncodedGeometryType_Deprecated_1=a.asm.kb).apply(null,arguments)},Sc=a._emscripten_bind_Decoder_DecodeBufferToPointCloud_2=function(){return(Sc=a._emscripten_bind_Decoder_DecodeBufferToPointCloud_2=a.asm.lb).apply(null,arguments)},Tc=a._emscripten_bind_Decoder_DecodeBufferToMesh_2=function(){return(Tc=a._emscripten_bind_Decoder_DecodeBufferToMesh_2= -a.asm.mb).apply(null,arguments)},Uc=a._emscripten_bind_Decoder___destroy___0=function(){return(Uc=a._emscripten_bind_Decoder___destroy___0=a.asm.nb).apply(null,arguments)},Vc=a._emscripten_enum_draco_AttributeTransformType_ATTRIBUTE_INVALID_TRANSFORM=function(){return(Vc=a._emscripten_enum_draco_AttributeTransformType_ATTRIBUTE_INVALID_TRANSFORM=a.asm.ob).apply(null,arguments)},Wc=a._emscripten_enum_draco_AttributeTransformType_ATTRIBUTE_NO_TRANSFORM=function(){return(Wc=a._emscripten_enum_draco_AttributeTransformType_ATTRIBUTE_NO_TRANSFORM= -a.asm.pb).apply(null,arguments)},Xc=a._emscripten_enum_draco_AttributeTransformType_ATTRIBUTE_QUANTIZATION_TRANSFORM=function(){return(Xc=a._emscripten_enum_draco_AttributeTransformType_ATTRIBUTE_QUANTIZATION_TRANSFORM=a.asm.qb).apply(null,arguments)},Yc=a._emscripten_enum_draco_AttributeTransformType_ATTRIBUTE_OCTAHEDRON_TRANSFORM=function(){return(Yc=a._emscripten_enum_draco_AttributeTransformType_ATTRIBUTE_OCTAHEDRON_TRANSFORM=a.asm.rb).apply(null,arguments)},Zc=a._emscripten_enum_draco_GeometryAttribute_Type_INVALID= -function(){return(Zc=a._emscripten_enum_draco_GeometryAttribute_Type_INVALID=a.asm.sb).apply(null,arguments)},$c=a._emscripten_enum_draco_GeometryAttribute_Type_POSITION=function(){return($c=a._emscripten_enum_draco_GeometryAttribute_Type_POSITION=a.asm.tb).apply(null,arguments)},ad=a._emscripten_enum_draco_GeometryAttribute_Type_NORMAL=function(){return(ad=a._emscripten_enum_draco_GeometryAttribute_Type_NORMAL=a.asm.ub).apply(null,arguments)},bd=a._emscripten_enum_draco_GeometryAttribute_Type_COLOR= -function(){return(bd=a._emscripten_enum_draco_GeometryAttribute_Type_COLOR=a.asm.vb).apply(null,arguments)},cd=a._emscripten_enum_draco_GeometryAttribute_Type_TEX_COORD=function(){return(cd=a._emscripten_enum_draco_GeometryAttribute_Type_TEX_COORD=a.asm.wb).apply(null,arguments)},dd=a._emscripten_enum_draco_GeometryAttribute_Type_GENERIC=function(){return(dd=a._emscripten_enum_draco_GeometryAttribute_Type_GENERIC=a.asm.xb).apply(null,arguments)},ed=a._emscripten_enum_draco_EncodedGeometryType_INVALID_GEOMETRY_TYPE= -function(){return(ed=a._emscripten_enum_draco_EncodedGeometryType_INVALID_GEOMETRY_TYPE=a.asm.yb).apply(null,arguments)},fd=a._emscripten_enum_draco_EncodedGeometryType_POINT_CLOUD=function(){return(fd=a._emscripten_enum_draco_EncodedGeometryType_POINT_CLOUD=a.asm.zb).apply(null,arguments)},gd=a._emscripten_enum_draco_EncodedGeometryType_TRIANGULAR_MESH=function(){return(gd=a._emscripten_enum_draco_EncodedGeometryType_TRIANGULAR_MESH=a.asm.Ab).apply(null,arguments)},hd=a._emscripten_enum_draco_DataType_DT_INVALID= -function(){return(hd=a._emscripten_enum_draco_DataType_DT_INVALID=a.asm.Bb).apply(null,arguments)},id=a._emscripten_enum_draco_DataType_DT_INT8=function(){return(id=a._emscripten_enum_draco_DataType_DT_INT8=a.asm.Cb).apply(null,arguments)},jd=a._emscripten_enum_draco_DataType_DT_UINT8=function(){return(jd=a._emscripten_enum_draco_DataType_DT_UINT8=a.asm.Db).apply(null,arguments)},kd=a._emscripten_enum_draco_DataType_DT_INT16=function(){return(kd=a._emscripten_enum_draco_DataType_DT_INT16=a.asm.Eb).apply(null, -arguments)},ld=a._emscripten_enum_draco_DataType_DT_UINT16=function(){return(ld=a._emscripten_enum_draco_DataType_DT_UINT16=a.asm.Fb).apply(null,arguments)},md=a._emscripten_enum_draco_DataType_DT_INT32=function(){return(md=a._emscripten_enum_draco_DataType_DT_INT32=a.asm.Gb).apply(null,arguments)},nd=a._emscripten_enum_draco_DataType_DT_UINT32=function(){return(nd=a._emscripten_enum_draco_DataType_DT_UINT32=a.asm.Hb).apply(null,arguments)},od=a._emscripten_enum_draco_DataType_DT_INT64=function(){return(od= -a._emscripten_enum_draco_DataType_DT_INT64=a.asm.Ib).apply(null,arguments)},pd=a._emscripten_enum_draco_DataType_DT_UINT64=function(){return(pd=a._emscripten_enum_draco_DataType_DT_UINT64=a.asm.Jb).apply(null,arguments)},qd=a._emscripten_enum_draco_DataType_DT_FLOAT32=function(){return(qd=a._emscripten_enum_draco_DataType_DT_FLOAT32=a.asm.Kb).apply(null,arguments)},rd=a._emscripten_enum_draco_DataType_DT_FLOAT64=function(){return(rd=a._emscripten_enum_draco_DataType_DT_FLOAT64=a.asm.Lb).apply(null, -arguments)},sd=a._emscripten_enum_draco_DataType_DT_BOOL=function(){return(sd=a._emscripten_enum_draco_DataType_DT_BOOL=a.asm.Mb).apply(null,arguments)},td=a._emscripten_enum_draco_DataType_DT_TYPES_COUNT=function(){return(td=a._emscripten_enum_draco_DataType_DT_TYPES_COUNT=a.asm.Nb).apply(null,arguments)},ud=a._emscripten_enum_draco_StatusCode_OK=function(){return(ud=a._emscripten_enum_draco_StatusCode_OK=a.asm.Ob).apply(null,arguments)},vd=a._emscripten_enum_draco_StatusCode_DRACO_ERROR=function(){return(vd= -a._emscripten_enum_draco_StatusCode_DRACO_ERROR=a.asm.Pb).apply(null,arguments)},wd=a._emscripten_enum_draco_StatusCode_IO_ERROR=function(){return(wd=a._emscripten_enum_draco_StatusCode_IO_ERROR=a.asm.Qb).apply(null,arguments)},xd=a._emscripten_enum_draco_StatusCode_INVALID_PARAMETER=function(){return(xd=a._emscripten_enum_draco_StatusCode_INVALID_PARAMETER=a.asm.Rb).apply(null,arguments)},yd=a._emscripten_enum_draco_StatusCode_UNSUPPORTED_VERSION=function(){return(yd=a._emscripten_enum_draco_StatusCode_UNSUPPORTED_VERSION= -a.asm.Sb).apply(null,arguments)},zd=a._emscripten_enum_draco_StatusCode_UNKNOWN_VERSION=function(){return(zd=a._emscripten_enum_draco_StatusCode_UNKNOWN_VERSION=a.asm.Tb).apply(null,arguments)},fb=a._malloc=function(){return(fb=a._malloc=a.asm.Ub).apply(null,arguments)};a._free=function(){return(a._free=a.asm.Vb).apply(null,arguments)};var Da=a.___cxa_is_pointer_type=function(){return(Da=a.___cxa_is_pointer_type=a.asm.Wb).apply(null,arguments)},la;ja=function b(){la||P();la||(ja=b)};a.run=P;if(a.preInit)for("function"== -typeof a.preInit&&(a.preInit=[a.preInit]);0=r.size?(0>>=0;switch(c.BYTES_PER_ELEMENT){case 2:d>>>=1;break;case 4:d>>>=2;break;case 8:d>>>=3}for(var g=0;gb.byteLength)return a.INVALID_GEOMETRY_TYPE;switch(b[7]){case 0:return a.POINT_CLOUD;case 1:return a.TRIANGULAR_MESH;default:return a.INVALID_GEOMETRY_TYPE}};return n.ready}}(); -"object"===typeof exports&&"object"===typeof module?module.exports=DracoDecoderModule:"function"===typeof define&&define.amd?define([],function(){return DracoDecoderModule}):"object"===typeof exports&&(exports.DracoDecoderModule=DracoDecoderModule); +var DracoDecoderModule=function(){var k="undefined"!==typeof document&&document.currentScript?document.currentScript.src:void 0;"undefined"!==typeof __filename&&(k=k||__filename);return function(n){function l(e){return a.locateFile?a.locateFile(e,U):U+e}function p(e,b,c){var d=b+c;for(c=b;e[c]&&!(c>=d);)++c;if(16g?d+=String.fromCharCode(g):(g-=65536,d+=String.fromCharCode(55296|g>>10,56320|g&1023))}}else d+=String.fromCharCode(g)}return d}function h(e,b){return e?p(ea,e,b):""}function A(e){va=e;a.HEAP8=Y=new Int8Array(e);a.HEAP16=new Int16Array(e);a.HEAP32=ca=new Int32Array(e);a.HEAPU8=ea=new Uint8Array(e);a.HEAPU16=new Uint16Array(e);a.HEAPU32=V=new Uint32Array(e);a.HEAPF32=new Float32Array(e);a.HEAPF64=new Float64Array(e)}function f(e){if(a.onAbort)a.onAbort(e); +e="Aborted("+e+")";da(e);wa=!0;e=new WebAssembly.RuntimeError(e+". Build with -sASSERTIONS for more info.");ja(e);throw e;}function q(e){try{if(e==P&&fa)return new Uint8Array(fa);if(ma)return ma(e);throw"both async and sync fetching of the wasm failed";}catch(b){f(b)}}function v(){if(!fa&&(xa||ha)){if("function"==typeof fetch&&!P.startsWith("file://"))return fetch(P,{credentials:"same-origin"}).then(function(e){if(!e.ok)throw"failed to load wasm binary file at '"+P+"'";return e.arrayBuffer()}).catch(function(){return q(P)}); +if(na)return new Promise(function(e,b){na(P,function(c){e(new Uint8Array(c))},b)})}return Promise.resolve().then(function(){return q(P)})}function z(e){for(;0>2]=b};this.get_type=function(){return V[this.ptr+4>>2]};this.set_destructor=function(b){V[this.ptr+8>>2]=b};this.get_destructor=function(){return V[this.ptr+8>>2]};this.set_refcount=function(b){ca[this.ptr>>2]=b};this.set_caught=function(b){Y[this.ptr+ +12>>0]=b?1:0};this.get_caught=function(){return 0!=Y[this.ptr+12>>0]};this.set_rethrown=function(b){Y[this.ptr+13>>0]=b?1:0};this.get_rethrown=function(){return 0!=Y[this.ptr+13>>0]};this.init=function(b,c){this.set_adjusted_ptr(0);this.set_type(b);this.set_destructor(c);this.set_refcount(0);this.set_caught(!1);this.set_rethrown(!1)};this.add_ref=function(){ca[this.ptr>>2]+=1};this.release_ref=function(){var b=ca[this.ptr>>2];ca[this.ptr>>2]=b-1;return 1===b};this.set_adjusted_ptr=function(b){V[this.ptr+ +16>>2]=b};this.get_adjusted_ptr=function(){return V[this.ptr+16>>2]};this.get_exception_ptr=function(){if(ya(this.get_type()))return V[this.excPtr>>2];var b=this.get_adjusted_ptr();return 0!==b?b:this.excPtr}}function ba(e){function b(){if(!ka&&(ka=!0,a.calledRun=!0,!wa)){za=!0;z(oa);Aa(a);if(a.onRuntimeInitialized)a.onRuntimeInitialized();if(a.postRun)for("function"==typeof a.postRun&&(a.postRun=[a.postRun]);a.postRun.length;)Ba.unshift(a.postRun.shift());z(Ba)}}if(!(0=d?b++:2047>=d?b+=2:55296<=d&&57343>= +d?(b+=4,++c):b+=3}b=Array(b+1);c=0;d=b.length;if(0=u){var X=e.charCodeAt(++g);u=65536+((u&1023)<<10)|X&1023}if(127>=u){if(c>=d)break;b[c++]=u}else{if(2047>=u){if(c+1>=d)break;b[c++]=192|u>>6}else{if(65535>=u){if(c+2>=d)break;b[c++]=224|u>>12}else{if(c+3>=d)break;b[c++]=240|u>>18;b[c++]=128|u>>12&63}b[c++]=128|u>>6&63}b[c++]=128|u&63}}b[c]=0}e=r.alloc(b,Y);r.copy(b,Y,e);return e}return e}function pa(e){if("object"===typeof e){var b= +r.alloc(e,Y);r.copy(e,Y,b);return b}return e}function Z(){throw"cannot construct a VoidPtr, no constructor in IDL";}function S(){this.ptr=Da();x(S)[this.ptr]=this}function Q(){this.ptr=Ea();x(Q)[this.ptr]=this}function W(){this.ptr=Fa();x(W)[this.ptr]=this}function w(){this.ptr=Ga();x(w)[this.ptr]=this}function C(){this.ptr=Ha();x(C)[this.ptr]=this}function F(){this.ptr=Ia();x(F)[this.ptr]=this}function G(){this.ptr=Ja();x(G)[this.ptr]=this}function E(){this.ptr=Ka();x(E)[this.ptr]=this}function T(){this.ptr= +La();x(T)[this.ptr]=this}function B(){throw"cannot construct a Status, no constructor in IDL";}function H(){this.ptr=Ma();x(H)[this.ptr]=this}function I(){this.ptr=Na();x(I)[this.ptr]=this}function J(){this.ptr=Oa();x(J)[this.ptr]=this}function K(){this.ptr=Pa();x(K)[this.ptr]=this}function L(){this.ptr=Qa();x(L)[this.ptr]=this}function M(){this.ptr=Ra();x(M)[this.ptr]=this}function N(){this.ptr=Sa();x(N)[this.ptr]=this}function y(){this.ptr=Ta();x(y)[this.ptr]=this}function m(){this.ptr=Ua();x(m)[this.ptr]= +this}n=n||{};var a="undefined"!=typeof n?n:{},Aa,ja;a.ready=new Promise(function(e,b){Aa=e;ja=b});var Va=!1,Wa=!1;a.onRuntimeInitialized=function(){Va=!0;if(Wa&&"function"===typeof a.onModuleLoaded)a.onModuleLoaded(a)};a.onModuleParsed=function(){Wa=!0;if(Va&&"function"===typeof a.onModuleLoaded)a.onModuleLoaded(a)};a.isVersionSupported=function(e){if("string"!==typeof e)return!1;e=e.split(".");return 2>e.length||3=e[1]?!0:0!=e[0]||10>>=0;if(2147483648=c;c*=2){var d=b*(1+.2/c);d=Math.min(d,e+100663296);var g=Math;d=Math.max(e,d);g=g.min.call(g,2147483648,d+(65536-d%65536)%65536);a:{try{la.grow(g-va.byteLength+65535>>>16);A(la.buffer);var u=1;break a}catch(X){}u=void 0}if(u)return!0}return!1},g:function(e){return 52},e:function(e,b,c,d,g){return 70},d:function(e,b,c,d){for(var g=0,u=0;u>2],cb=V[b+4>>2];b+=8;for(var ra=0;ra>2]=g;return 0}};(function(){function e(g,u){a.asm=g.exports;la=a.asm.i;A(la.buffer);oa.unshift(a.asm.j);aa--;a.monitorRunDependencies&&a.monitorRunDependencies(aa);0==aa&&(null!==qa&&(clearInterval(qa),qa=null),ia&&(g=ia,ia=null,g()))}function b(g){e(g.instance)}function c(g){return v().then(function(u){return WebAssembly.instantiate(u,d)}).then(function(u){return u}).then(g,function(u){da("failed to asynchronously prepare wasm: "+u);f(u)})}var d={a:zd};aa++;a.monitorRunDependencies&&a.monitorRunDependencies(aa); +if(a.instantiateWasm)try{return a.instantiateWasm(d,e)}catch(g){da("Module.instantiateWasm callback failed with error: "+g),ja(g)}(function(){return fa||"function"!=typeof WebAssembly.instantiateStreaming||P.startsWith("data:application/octet-stream;base64,")||P.startsWith("file://")||Ya||"function"!=typeof fetch?c(b):fetch(P,{credentials:"same-origin"}).then(function(g){return WebAssembly.instantiateStreaming(g,d).then(b,function(u){da("wasm streaming compile failed: "+u);da("falling back to ArrayBuffer instantiation"); +return c(b)})})})().catch(ja);return{}})();a.___wasm_call_ctors=function(){return(a.___wasm_call_ctors=a.asm.j).apply(null,arguments)};var db=a._emscripten_bind_VoidPtr___destroy___0=function(){return(db=a._emscripten_bind_VoidPtr___destroy___0=a.asm.l).apply(null,arguments)},Da=a._emscripten_bind_DecoderBuffer_DecoderBuffer_0=function(){return(Da=a._emscripten_bind_DecoderBuffer_DecoderBuffer_0=a.asm.m).apply(null,arguments)},eb=a._emscripten_bind_DecoderBuffer_Init_2=function(){return(eb=a._emscripten_bind_DecoderBuffer_Init_2= +a.asm.n).apply(null,arguments)},fb=a._emscripten_bind_DecoderBuffer___destroy___0=function(){return(fb=a._emscripten_bind_DecoderBuffer___destroy___0=a.asm.o).apply(null,arguments)},Ea=a._emscripten_bind_AttributeTransformData_AttributeTransformData_0=function(){return(Ea=a._emscripten_bind_AttributeTransformData_AttributeTransformData_0=a.asm.p).apply(null,arguments)},gb=a._emscripten_bind_AttributeTransformData_transform_type_0=function(){return(gb=a._emscripten_bind_AttributeTransformData_transform_type_0= +a.asm.q).apply(null,arguments)},hb=a._emscripten_bind_AttributeTransformData___destroy___0=function(){return(hb=a._emscripten_bind_AttributeTransformData___destroy___0=a.asm.r).apply(null,arguments)},Fa=a._emscripten_bind_GeometryAttribute_GeometryAttribute_0=function(){return(Fa=a._emscripten_bind_GeometryAttribute_GeometryAttribute_0=a.asm.s).apply(null,arguments)},ib=a._emscripten_bind_GeometryAttribute___destroy___0=function(){return(ib=a._emscripten_bind_GeometryAttribute___destroy___0=a.asm.t).apply(null, +arguments)},Ga=a._emscripten_bind_PointAttribute_PointAttribute_0=function(){return(Ga=a._emscripten_bind_PointAttribute_PointAttribute_0=a.asm.u).apply(null,arguments)},jb=a._emscripten_bind_PointAttribute_size_0=function(){return(jb=a._emscripten_bind_PointAttribute_size_0=a.asm.v).apply(null,arguments)},kb=a._emscripten_bind_PointAttribute_GetAttributeTransformData_0=function(){return(kb=a._emscripten_bind_PointAttribute_GetAttributeTransformData_0=a.asm.w).apply(null,arguments)},lb=a._emscripten_bind_PointAttribute_attribute_type_0= +function(){return(lb=a._emscripten_bind_PointAttribute_attribute_type_0=a.asm.x).apply(null,arguments)},mb=a._emscripten_bind_PointAttribute_data_type_0=function(){return(mb=a._emscripten_bind_PointAttribute_data_type_0=a.asm.y).apply(null,arguments)},nb=a._emscripten_bind_PointAttribute_num_components_0=function(){return(nb=a._emscripten_bind_PointAttribute_num_components_0=a.asm.z).apply(null,arguments)},ob=a._emscripten_bind_PointAttribute_normalized_0=function(){return(ob=a._emscripten_bind_PointAttribute_normalized_0= +a.asm.A).apply(null,arguments)},pb=a._emscripten_bind_PointAttribute_byte_stride_0=function(){return(pb=a._emscripten_bind_PointAttribute_byte_stride_0=a.asm.B).apply(null,arguments)},qb=a._emscripten_bind_PointAttribute_byte_offset_0=function(){return(qb=a._emscripten_bind_PointAttribute_byte_offset_0=a.asm.C).apply(null,arguments)},rb=a._emscripten_bind_PointAttribute_unique_id_0=function(){return(rb=a._emscripten_bind_PointAttribute_unique_id_0=a.asm.D).apply(null,arguments)},sb=a._emscripten_bind_PointAttribute___destroy___0= +function(){return(sb=a._emscripten_bind_PointAttribute___destroy___0=a.asm.E).apply(null,arguments)},Ha=a._emscripten_bind_AttributeQuantizationTransform_AttributeQuantizationTransform_0=function(){return(Ha=a._emscripten_bind_AttributeQuantizationTransform_AttributeQuantizationTransform_0=a.asm.F).apply(null,arguments)},tb=a._emscripten_bind_AttributeQuantizationTransform_InitFromAttribute_1=function(){return(tb=a._emscripten_bind_AttributeQuantizationTransform_InitFromAttribute_1=a.asm.G).apply(null, +arguments)},ub=a._emscripten_bind_AttributeQuantizationTransform_quantization_bits_0=function(){return(ub=a._emscripten_bind_AttributeQuantizationTransform_quantization_bits_0=a.asm.H).apply(null,arguments)},vb=a._emscripten_bind_AttributeQuantizationTransform_min_value_1=function(){return(vb=a._emscripten_bind_AttributeQuantizationTransform_min_value_1=a.asm.I).apply(null,arguments)},wb=a._emscripten_bind_AttributeQuantizationTransform_range_0=function(){return(wb=a._emscripten_bind_AttributeQuantizationTransform_range_0= +a.asm.J).apply(null,arguments)},xb=a._emscripten_bind_AttributeQuantizationTransform___destroy___0=function(){return(xb=a._emscripten_bind_AttributeQuantizationTransform___destroy___0=a.asm.K).apply(null,arguments)},Ia=a._emscripten_bind_AttributeOctahedronTransform_AttributeOctahedronTransform_0=function(){return(Ia=a._emscripten_bind_AttributeOctahedronTransform_AttributeOctahedronTransform_0=a.asm.L).apply(null,arguments)},yb=a._emscripten_bind_AttributeOctahedronTransform_InitFromAttribute_1= +function(){return(yb=a._emscripten_bind_AttributeOctahedronTransform_InitFromAttribute_1=a.asm.M).apply(null,arguments)},zb=a._emscripten_bind_AttributeOctahedronTransform_quantization_bits_0=function(){return(zb=a._emscripten_bind_AttributeOctahedronTransform_quantization_bits_0=a.asm.N).apply(null,arguments)},Ab=a._emscripten_bind_AttributeOctahedronTransform___destroy___0=function(){return(Ab=a._emscripten_bind_AttributeOctahedronTransform___destroy___0=a.asm.O).apply(null,arguments)},Ja=a._emscripten_bind_PointCloud_PointCloud_0= +function(){return(Ja=a._emscripten_bind_PointCloud_PointCloud_0=a.asm.P).apply(null,arguments)},Bb=a._emscripten_bind_PointCloud_num_attributes_0=function(){return(Bb=a._emscripten_bind_PointCloud_num_attributes_0=a.asm.Q).apply(null,arguments)},Cb=a._emscripten_bind_PointCloud_num_points_0=function(){return(Cb=a._emscripten_bind_PointCloud_num_points_0=a.asm.R).apply(null,arguments)},Db=a._emscripten_bind_PointCloud___destroy___0=function(){return(Db=a._emscripten_bind_PointCloud___destroy___0=a.asm.S).apply(null, +arguments)},Ka=a._emscripten_bind_Mesh_Mesh_0=function(){return(Ka=a._emscripten_bind_Mesh_Mesh_0=a.asm.T).apply(null,arguments)},Eb=a._emscripten_bind_Mesh_num_faces_0=function(){return(Eb=a._emscripten_bind_Mesh_num_faces_0=a.asm.U).apply(null,arguments)},Fb=a._emscripten_bind_Mesh_num_attributes_0=function(){return(Fb=a._emscripten_bind_Mesh_num_attributes_0=a.asm.V).apply(null,arguments)},Gb=a._emscripten_bind_Mesh_num_points_0=function(){return(Gb=a._emscripten_bind_Mesh_num_points_0=a.asm.W).apply(null, +arguments)},Hb=a._emscripten_bind_Mesh___destroy___0=function(){return(Hb=a._emscripten_bind_Mesh___destroy___0=a.asm.X).apply(null,arguments)},La=a._emscripten_bind_Metadata_Metadata_0=function(){return(La=a._emscripten_bind_Metadata_Metadata_0=a.asm.Y).apply(null,arguments)},Ib=a._emscripten_bind_Metadata___destroy___0=function(){return(Ib=a._emscripten_bind_Metadata___destroy___0=a.asm.Z).apply(null,arguments)},Jb=a._emscripten_bind_Status_code_0=function(){return(Jb=a._emscripten_bind_Status_code_0= +a.asm._).apply(null,arguments)},Kb=a._emscripten_bind_Status_ok_0=function(){return(Kb=a._emscripten_bind_Status_ok_0=a.asm.$).apply(null,arguments)},Lb=a._emscripten_bind_Status_error_msg_0=function(){return(Lb=a._emscripten_bind_Status_error_msg_0=a.asm.aa).apply(null,arguments)},Mb=a._emscripten_bind_Status___destroy___0=function(){return(Mb=a._emscripten_bind_Status___destroy___0=a.asm.ba).apply(null,arguments)},Ma=a._emscripten_bind_DracoFloat32Array_DracoFloat32Array_0=function(){return(Ma= +a._emscripten_bind_DracoFloat32Array_DracoFloat32Array_0=a.asm.ca).apply(null,arguments)},Nb=a._emscripten_bind_DracoFloat32Array_GetValue_1=function(){return(Nb=a._emscripten_bind_DracoFloat32Array_GetValue_1=a.asm.da).apply(null,arguments)},Ob=a._emscripten_bind_DracoFloat32Array_size_0=function(){return(Ob=a._emscripten_bind_DracoFloat32Array_size_0=a.asm.ea).apply(null,arguments)},Pb=a._emscripten_bind_DracoFloat32Array___destroy___0=function(){return(Pb=a._emscripten_bind_DracoFloat32Array___destroy___0= +a.asm.fa).apply(null,arguments)},Na=a._emscripten_bind_DracoInt8Array_DracoInt8Array_0=function(){return(Na=a._emscripten_bind_DracoInt8Array_DracoInt8Array_0=a.asm.ga).apply(null,arguments)},Qb=a._emscripten_bind_DracoInt8Array_GetValue_1=function(){return(Qb=a._emscripten_bind_DracoInt8Array_GetValue_1=a.asm.ha).apply(null,arguments)},Rb=a._emscripten_bind_DracoInt8Array_size_0=function(){return(Rb=a._emscripten_bind_DracoInt8Array_size_0=a.asm.ia).apply(null,arguments)},Sb=a._emscripten_bind_DracoInt8Array___destroy___0= +function(){return(Sb=a._emscripten_bind_DracoInt8Array___destroy___0=a.asm.ja).apply(null,arguments)},Oa=a._emscripten_bind_DracoUInt8Array_DracoUInt8Array_0=function(){return(Oa=a._emscripten_bind_DracoUInt8Array_DracoUInt8Array_0=a.asm.ka).apply(null,arguments)},Tb=a._emscripten_bind_DracoUInt8Array_GetValue_1=function(){return(Tb=a._emscripten_bind_DracoUInt8Array_GetValue_1=a.asm.la).apply(null,arguments)},Ub=a._emscripten_bind_DracoUInt8Array_size_0=function(){return(Ub=a._emscripten_bind_DracoUInt8Array_size_0= +a.asm.ma).apply(null,arguments)},Vb=a._emscripten_bind_DracoUInt8Array___destroy___0=function(){return(Vb=a._emscripten_bind_DracoUInt8Array___destroy___0=a.asm.na).apply(null,arguments)},Pa=a._emscripten_bind_DracoInt16Array_DracoInt16Array_0=function(){return(Pa=a._emscripten_bind_DracoInt16Array_DracoInt16Array_0=a.asm.oa).apply(null,arguments)},Wb=a._emscripten_bind_DracoInt16Array_GetValue_1=function(){return(Wb=a._emscripten_bind_DracoInt16Array_GetValue_1=a.asm.pa).apply(null,arguments)},Xb= +a._emscripten_bind_DracoInt16Array_size_0=function(){return(Xb=a._emscripten_bind_DracoInt16Array_size_0=a.asm.qa).apply(null,arguments)},Yb=a._emscripten_bind_DracoInt16Array___destroy___0=function(){return(Yb=a._emscripten_bind_DracoInt16Array___destroy___0=a.asm.ra).apply(null,arguments)},Qa=a._emscripten_bind_DracoUInt16Array_DracoUInt16Array_0=function(){return(Qa=a._emscripten_bind_DracoUInt16Array_DracoUInt16Array_0=a.asm.sa).apply(null,arguments)},Zb=a._emscripten_bind_DracoUInt16Array_GetValue_1= +function(){return(Zb=a._emscripten_bind_DracoUInt16Array_GetValue_1=a.asm.ta).apply(null,arguments)},$b=a._emscripten_bind_DracoUInt16Array_size_0=function(){return($b=a._emscripten_bind_DracoUInt16Array_size_0=a.asm.ua).apply(null,arguments)},ac=a._emscripten_bind_DracoUInt16Array___destroy___0=function(){return(ac=a._emscripten_bind_DracoUInt16Array___destroy___0=a.asm.va).apply(null,arguments)},Ra=a._emscripten_bind_DracoInt32Array_DracoInt32Array_0=function(){return(Ra=a._emscripten_bind_DracoInt32Array_DracoInt32Array_0= +a.asm.wa).apply(null,arguments)},bc=a._emscripten_bind_DracoInt32Array_GetValue_1=function(){return(bc=a._emscripten_bind_DracoInt32Array_GetValue_1=a.asm.xa).apply(null,arguments)},cc=a._emscripten_bind_DracoInt32Array_size_0=function(){return(cc=a._emscripten_bind_DracoInt32Array_size_0=a.asm.ya).apply(null,arguments)},dc=a._emscripten_bind_DracoInt32Array___destroy___0=function(){return(dc=a._emscripten_bind_DracoInt32Array___destroy___0=a.asm.za).apply(null,arguments)},Sa=a._emscripten_bind_DracoUInt32Array_DracoUInt32Array_0= +function(){return(Sa=a._emscripten_bind_DracoUInt32Array_DracoUInt32Array_0=a.asm.Aa).apply(null,arguments)},ec=a._emscripten_bind_DracoUInt32Array_GetValue_1=function(){return(ec=a._emscripten_bind_DracoUInt32Array_GetValue_1=a.asm.Ba).apply(null,arguments)},fc=a._emscripten_bind_DracoUInt32Array_size_0=function(){return(fc=a._emscripten_bind_DracoUInt32Array_size_0=a.asm.Ca).apply(null,arguments)},gc=a._emscripten_bind_DracoUInt32Array___destroy___0=function(){return(gc=a._emscripten_bind_DracoUInt32Array___destroy___0= +a.asm.Da).apply(null,arguments)},Ta=a._emscripten_bind_MetadataQuerier_MetadataQuerier_0=function(){return(Ta=a._emscripten_bind_MetadataQuerier_MetadataQuerier_0=a.asm.Ea).apply(null,arguments)},hc=a._emscripten_bind_MetadataQuerier_HasEntry_2=function(){return(hc=a._emscripten_bind_MetadataQuerier_HasEntry_2=a.asm.Fa).apply(null,arguments)},ic=a._emscripten_bind_MetadataQuerier_GetIntEntry_2=function(){return(ic=a._emscripten_bind_MetadataQuerier_GetIntEntry_2=a.asm.Ga).apply(null,arguments)},jc= +a._emscripten_bind_MetadataQuerier_GetIntEntryArray_3=function(){return(jc=a._emscripten_bind_MetadataQuerier_GetIntEntryArray_3=a.asm.Ha).apply(null,arguments)},kc=a._emscripten_bind_MetadataQuerier_GetDoubleEntry_2=function(){return(kc=a._emscripten_bind_MetadataQuerier_GetDoubleEntry_2=a.asm.Ia).apply(null,arguments)},lc=a._emscripten_bind_MetadataQuerier_GetStringEntry_2=function(){return(lc=a._emscripten_bind_MetadataQuerier_GetStringEntry_2=a.asm.Ja).apply(null,arguments)},mc=a._emscripten_bind_MetadataQuerier_NumEntries_1= +function(){return(mc=a._emscripten_bind_MetadataQuerier_NumEntries_1=a.asm.Ka).apply(null,arguments)},nc=a._emscripten_bind_MetadataQuerier_GetEntryName_2=function(){return(nc=a._emscripten_bind_MetadataQuerier_GetEntryName_2=a.asm.La).apply(null,arguments)},oc=a._emscripten_bind_MetadataQuerier___destroy___0=function(){return(oc=a._emscripten_bind_MetadataQuerier___destroy___0=a.asm.Ma).apply(null,arguments)},Ua=a._emscripten_bind_Decoder_Decoder_0=function(){return(Ua=a._emscripten_bind_Decoder_Decoder_0= +a.asm.Na).apply(null,arguments)},pc=a._emscripten_bind_Decoder_DecodeArrayToPointCloud_3=function(){return(pc=a._emscripten_bind_Decoder_DecodeArrayToPointCloud_3=a.asm.Oa).apply(null,arguments)},qc=a._emscripten_bind_Decoder_DecodeArrayToMesh_3=function(){return(qc=a._emscripten_bind_Decoder_DecodeArrayToMesh_3=a.asm.Pa).apply(null,arguments)},rc=a._emscripten_bind_Decoder_GetAttributeId_2=function(){return(rc=a._emscripten_bind_Decoder_GetAttributeId_2=a.asm.Qa).apply(null,arguments)},sc=a._emscripten_bind_Decoder_GetAttributeIdByName_2= +function(){return(sc=a._emscripten_bind_Decoder_GetAttributeIdByName_2=a.asm.Ra).apply(null,arguments)},tc=a._emscripten_bind_Decoder_GetAttributeIdByMetadataEntry_3=function(){return(tc=a._emscripten_bind_Decoder_GetAttributeIdByMetadataEntry_3=a.asm.Sa).apply(null,arguments)},uc=a._emscripten_bind_Decoder_GetAttribute_2=function(){return(uc=a._emscripten_bind_Decoder_GetAttribute_2=a.asm.Ta).apply(null,arguments)},vc=a._emscripten_bind_Decoder_GetAttributeByUniqueId_2=function(){return(vc=a._emscripten_bind_Decoder_GetAttributeByUniqueId_2= +a.asm.Ua).apply(null,arguments)},wc=a._emscripten_bind_Decoder_GetMetadata_1=function(){return(wc=a._emscripten_bind_Decoder_GetMetadata_1=a.asm.Va).apply(null,arguments)},xc=a._emscripten_bind_Decoder_GetAttributeMetadata_2=function(){return(xc=a._emscripten_bind_Decoder_GetAttributeMetadata_2=a.asm.Wa).apply(null,arguments)},yc=a._emscripten_bind_Decoder_GetFaceFromMesh_3=function(){return(yc=a._emscripten_bind_Decoder_GetFaceFromMesh_3=a.asm.Xa).apply(null,arguments)},zc=a._emscripten_bind_Decoder_GetTriangleStripsFromMesh_2= +function(){return(zc=a._emscripten_bind_Decoder_GetTriangleStripsFromMesh_2=a.asm.Ya).apply(null,arguments)},Ac=a._emscripten_bind_Decoder_GetTrianglesUInt16Array_3=function(){return(Ac=a._emscripten_bind_Decoder_GetTrianglesUInt16Array_3=a.asm.Za).apply(null,arguments)},Bc=a._emscripten_bind_Decoder_GetTrianglesUInt32Array_3=function(){return(Bc=a._emscripten_bind_Decoder_GetTrianglesUInt32Array_3=a.asm._a).apply(null,arguments)},Cc=a._emscripten_bind_Decoder_GetAttributeFloat_3=function(){return(Cc= +a._emscripten_bind_Decoder_GetAttributeFloat_3=a.asm.$a).apply(null,arguments)},Dc=a._emscripten_bind_Decoder_GetAttributeFloatForAllPoints_3=function(){return(Dc=a._emscripten_bind_Decoder_GetAttributeFloatForAllPoints_3=a.asm.ab).apply(null,arguments)},Ec=a._emscripten_bind_Decoder_GetAttributeIntForAllPoints_3=function(){return(Ec=a._emscripten_bind_Decoder_GetAttributeIntForAllPoints_3=a.asm.bb).apply(null,arguments)},Fc=a._emscripten_bind_Decoder_GetAttributeInt8ForAllPoints_3=function(){return(Fc= +a._emscripten_bind_Decoder_GetAttributeInt8ForAllPoints_3=a.asm.cb).apply(null,arguments)},Gc=a._emscripten_bind_Decoder_GetAttributeUInt8ForAllPoints_3=function(){return(Gc=a._emscripten_bind_Decoder_GetAttributeUInt8ForAllPoints_3=a.asm.db).apply(null,arguments)},Hc=a._emscripten_bind_Decoder_GetAttributeInt16ForAllPoints_3=function(){return(Hc=a._emscripten_bind_Decoder_GetAttributeInt16ForAllPoints_3=a.asm.eb).apply(null,arguments)},Ic=a._emscripten_bind_Decoder_GetAttributeUInt16ForAllPoints_3= +function(){return(Ic=a._emscripten_bind_Decoder_GetAttributeUInt16ForAllPoints_3=a.asm.fb).apply(null,arguments)},Jc=a._emscripten_bind_Decoder_GetAttributeInt32ForAllPoints_3=function(){return(Jc=a._emscripten_bind_Decoder_GetAttributeInt32ForAllPoints_3=a.asm.gb).apply(null,arguments)},Kc=a._emscripten_bind_Decoder_GetAttributeUInt32ForAllPoints_3=function(){return(Kc=a._emscripten_bind_Decoder_GetAttributeUInt32ForAllPoints_3=a.asm.hb).apply(null,arguments)},Lc=a._emscripten_bind_Decoder_GetAttributeDataArrayForAllPoints_5= +function(){return(Lc=a._emscripten_bind_Decoder_GetAttributeDataArrayForAllPoints_5=a.asm.ib).apply(null,arguments)},Mc=a._emscripten_bind_Decoder_SkipAttributeTransform_1=function(){return(Mc=a._emscripten_bind_Decoder_SkipAttributeTransform_1=a.asm.jb).apply(null,arguments)},Nc=a._emscripten_bind_Decoder_GetEncodedGeometryType_Deprecated_1=function(){return(Nc=a._emscripten_bind_Decoder_GetEncodedGeometryType_Deprecated_1=a.asm.kb).apply(null,arguments)},Oc=a._emscripten_bind_Decoder_DecodeBufferToPointCloud_2= +function(){return(Oc=a._emscripten_bind_Decoder_DecodeBufferToPointCloud_2=a.asm.lb).apply(null,arguments)},Pc=a._emscripten_bind_Decoder_DecodeBufferToMesh_2=function(){return(Pc=a._emscripten_bind_Decoder_DecodeBufferToMesh_2=a.asm.mb).apply(null,arguments)},Qc=a._emscripten_bind_Decoder___destroy___0=function(){return(Qc=a._emscripten_bind_Decoder___destroy___0=a.asm.nb).apply(null,arguments)},Rc=a._emscripten_enum_draco_AttributeTransformType_ATTRIBUTE_INVALID_TRANSFORM=function(){return(Rc=a._emscripten_enum_draco_AttributeTransformType_ATTRIBUTE_INVALID_TRANSFORM= +a.asm.ob).apply(null,arguments)},Sc=a._emscripten_enum_draco_AttributeTransformType_ATTRIBUTE_NO_TRANSFORM=function(){return(Sc=a._emscripten_enum_draco_AttributeTransformType_ATTRIBUTE_NO_TRANSFORM=a.asm.pb).apply(null,arguments)},Tc=a._emscripten_enum_draco_AttributeTransformType_ATTRIBUTE_QUANTIZATION_TRANSFORM=function(){return(Tc=a._emscripten_enum_draco_AttributeTransformType_ATTRIBUTE_QUANTIZATION_TRANSFORM=a.asm.qb).apply(null,arguments)},Uc=a._emscripten_enum_draco_AttributeTransformType_ATTRIBUTE_OCTAHEDRON_TRANSFORM= +function(){return(Uc=a._emscripten_enum_draco_AttributeTransformType_ATTRIBUTE_OCTAHEDRON_TRANSFORM=a.asm.rb).apply(null,arguments)},Vc=a._emscripten_enum_draco_GeometryAttribute_Type_INVALID=function(){return(Vc=a._emscripten_enum_draco_GeometryAttribute_Type_INVALID=a.asm.sb).apply(null,arguments)},Wc=a._emscripten_enum_draco_GeometryAttribute_Type_POSITION=function(){return(Wc=a._emscripten_enum_draco_GeometryAttribute_Type_POSITION=a.asm.tb).apply(null,arguments)},Xc=a._emscripten_enum_draco_GeometryAttribute_Type_NORMAL= +function(){return(Xc=a._emscripten_enum_draco_GeometryAttribute_Type_NORMAL=a.asm.ub).apply(null,arguments)},Yc=a._emscripten_enum_draco_GeometryAttribute_Type_COLOR=function(){return(Yc=a._emscripten_enum_draco_GeometryAttribute_Type_COLOR=a.asm.vb).apply(null,arguments)},Zc=a._emscripten_enum_draco_GeometryAttribute_Type_TEX_COORD=function(){return(Zc=a._emscripten_enum_draco_GeometryAttribute_Type_TEX_COORD=a.asm.wb).apply(null,arguments)},$c=a._emscripten_enum_draco_GeometryAttribute_Type_GENERIC= +function(){return($c=a._emscripten_enum_draco_GeometryAttribute_Type_GENERIC=a.asm.xb).apply(null,arguments)},ad=a._emscripten_enum_draco_EncodedGeometryType_INVALID_GEOMETRY_TYPE=function(){return(ad=a._emscripten_enum_draco_EncodedGeometryType_INVALID_GEOMETRY_TYPE=a.asm.yb).apply(null,arguments)},bd=a._emscripten_enum_draco_EncodedGeometryType_POINT_CLOUD=function(){return(bd=a._emscripten_enum_draco_EncodedGeometryType_POINT_CLOUD=a.asm.zb).apply(null,arguments)},cd=a._emscripten_enum_draco_EncodedGeometryType_TRIANGULAR_MESH= +function(){return(cd=a._emscripten_enum_draco_EncodedGeometryType_TRIANGULAR_MESH=a.asm.Ab).apply(null,arguments)},dd=a._emscripten_enum_draco_DataType_DT_INVALID=function(){return(dd=a._emscripten_enum_draco_DataType_DT_INVALID=a.asm.Bb).apply(null,arguments)},ed=a._emscripten_enum_draco_DataType_DT_INT8=function(){return(ed=a._emscripten_enum_draco_DataType_DT_INT8=a.asm.Cb).apply(null,arguments)},fd=a._emscripten_enum_draco_DataType_DT_UINT8=function(){return(fd=a._emscripten_enum_draco_DataType_DT_UINT8= +a.asm.Db).apply(null,arguments)},gd=a._emscripten_enum_draco_DataType_DT_INT16=function(){return(gd=a._emscripten_enum_draco_DataType_DT_INT16=a.asm.Eb).apply(null,arguments)},hd=a._emscripten_enum_draco_DataType_DT_UINT16=function(){return(hd=a._emscripten_enum_draco_DataType_DT_UINT16=a.asm.Fb).apply(null,arguments)},id=a._emscripten_enum_draco_DataType_DT_INT32=function(){return(id=a._emscripten_enum_draco_DataType_DT_INT32=a.asm.Gb).apply(null,arguments)},jd=a._emscripten_enum_draco_DataType_DT_UINT32= +function(){return(jd=a._emscripten_enum_draco_DataType_DT_UINT32=a.asm.Hb).apply(null,arguments)},kd=a._emscripten_enum_draco_DataType_DT_INT64=function(){return(kd=a._emscripten_enum_draco_DataType_DT_INT64=a.asm.Ib).apply(null,arguments)},ld=a._emscripten_enum_draco_DataType_DT_UINT64=function(){return(ld=a._emscripten_enum_draco_DataType_DT_UINT64=a.asm.Jb).apply(null,arguments)},md=a._emscripten_enum_draco_DataType_DT_FLOAT32=function(){return(md=a._emscripten_enum_draco_DataType_DT_FLOAT32=a.asm.Kb).apply(null, +arguments)},nd=a._emscripten_enum_draco_DataType_DT_FLOAT64=function(){return(nd=a._emscripten_enum_draco_DataType_DT_FLOAT64=a.asm.Lb).apply(null,arguments)},od=a._emscripten_enum_draco_DataType_DT_BOOL=function(){return(od=a._emscripten_enum_draco_DataType_DT_BOOL=a.asm.Mb).apply(null,arguments)},pd=a._emscripten_enum_draco_DataType_DT_TYPES_COUNT=function(){return(pd=a._emscripten_enum_draco_DataType_DT_TYPES_COUNT=a.asm.Nb).apply(null,arguments)},qd=a._emscripten_enum_draco_StatusCode_OK=function(){return(qd= +a._emscripten_enum_draco_StatusCode_OK=a.asm.Ob).apply(null,arguments)},rd=a._emscripten_enum_draco_StatusCode_DRACO_ERROR=function(){return(rd=a._emscripten_enum_draco_StatusCode_DRACO_ERROR=a.asm.Pb).apply(null,arguments)},sd=a._emscripten_enum_draco_StatusCode_IO_ERROR=function(){return(sd=a._emscripten_enum_draco_StatusCode_IO_ERROR=a.asm.Qb).apply(null,arguments)},td=a._emscripten_enum_draco_StatusCode_INVALID_PARAMETER=function(){return(td=a._emscripten_enum_draco_StatusCode_INVALID_PARAMETER= +a.asm.Rb).apply(null,arguments)},ud=a._emscripten_enum_draco_StatusCode_UNSUPPORTED_VERSION=function(){return(ud=a._emscripten_enum_draco_StatusCode_UNSUPPORTED_VERSION=a.asm.Sb).apply(null,arguments)},vd=a._emscripten_enum_draco_StatusCode_UNKNOWN_VERSION=function(){return(vd=a._emscripten_enum_draco_StatusCode_UNKNOWN_VERSION=a.asm.Tb).apply(null,arguments)},bb=a._malloc=function(){return(bb=a._malloc=a.asm.Ub).apply(null,arguments)};a._free=function(){return(a._free=a.asm.Vb).apply(null,arguments)}; +var ya=a.___cxa_is_pointer_type=function(){return(ya=a.___cxa_is_pointer_type=a.asm.Wb).apply(null,arguments)};a.___start_em_js=15856;a.___stop_em_js=15954;var ka;ia=function b(){ka||ba();ka||(ia=b)};if(a.preInit)for("function"==typeof a.preInit&&(a.preInit=[a.preInit]);0=r.size?(0>>=0;switch(c.BYTES_PER_ELEMENT){case 2:d>>>=1;break;case 4:d>>>=2;break;case 8:d>>>=3}for(var g=0;gb.byteLength)return a.INVALID_GEOMETRY_TYPE;switch(b[7]){case 0:return a.POINT_CLOUD; +case 1:return a.TRIANGULAR_MESH;default:return a.INVALID_GEOMETRY_TYPE}};return n.ready}}();"object"===typeof exports&&"object"===typeof module?module.exports=DracoDecoderModule:"function"===typeof define&&define.amd?define([],function(){return DracoDecoderModule}):"object"===typeof exports&&(exports.DracoDecoderModule=DracoDecoderModule); diff --git a/javascript/npm/draco3d/draco_encoder.wasm b/javascript/npm/draco3d/draco_encoder.wasm index 1a581eb..4657079 100755 Binary files a/javascript/npm/draco3d/draco_encoder.wasm and b/javascript/npm/draco3d/draco_encoder.wasm differ diff --git a/javascript/npm/draco3d/draco_encoder_nodejs.js b/javascript/npm/draco3d/draco_encoder_nodejs.js index d2d76be..e822862 100644 --- a/javascript/npm/draco3d/draco_encoder_nodejs.js +++ b/javascript/npm/draco3d/draco_encoder_nodejs.js @@ -5,94 +5,93 @@ var $jscomp$lookupPolyfilledValue=function(l,p){var m=$jscomp.propertyToPolyfill $jscomp.polyfillUnisolated=function(l,p,m,r){m=$jscomp.global;l=l.split(".");for(r=0;r>>0,$jscomp.propertyToPolyfillSymbol[k]=$jscomp.IS_SYMBOL_NATIVE? $jscomp.global.Symbol(k):$jscomp.POLYFILL_PREFIX+m+"$"+k),$jscomp.defineProperty(r,$jscomp.propertyToPolyfillSymbol[k],{configurable:!0,writable:!0,value:p})))}; -$jscomp.polyfill("Promise",function(l){function p(){this.batch_=null}function m(h){return h instanceof k?h:new k(function(q,v){q(h)})}if(l&&(!($jscomp.FORCE_POLYFILL_PROMISE||$jscomp.FORCE_POLYFILL_PROMISE_WHEN_NO_UNHANDLED_REJECTION&&"undefined"===typeof $jscomp.global.PromiseRejectionEvent)||!$jscomp.global.Promise||-1===$jscomp.global.Promise.toString().indexOf("[native code]")))return l;p.prototype.asyncExecute=function(h){if(null==this.batch_){this.batch_=[];var q=this;this.asyncExecuteFunction(function(){q.executeBatch_()})}this.batch_.push(h)}; -var r=$jscomp.global.setTimeout;p.prototype.asyncExecuteFunction=function(h){r(h,0)};p.prototype.executeBatch_=function(){for(;this.batch_&&this.batch_.length;){var h=this.batch_;this.batch_=[];for(var q=0;q=C}},"es6","es3"); $jscomp.polyfill("Array.prototype.copyWithin",function(l){function p(m){m=Number(m);return Infinity===m||-Infinity===m?m:m|0}return l?l:function(m,r,k){var C=this.length;m=p(m);r=p(r);k=void 0===k?C:p(k);m=0>m?Math.max(C+m,0):Math.min(m,C);r=0>r?Math.max(C+r,0):Math.min(r,C);k=0>k?Math.max(C+k,0):Math.min(k,C);if(mr;)--k in this?this[--m]=this[k]:delete this[--m];return this}},"es6","es3"); $jscomp.typedArrayCopyWithin=function(l){return l?l:Array.prototype.copyWithin};$jscomp.polyfill("Int8Array.prototype.copyWithin",$jscomp.typedArrayCopyWithin,"es6","es5");$jscomp.polyfill("Uint8Array.prototype.copyWithin",$jscomp.typedArrayCopyWithin,"es6","es5");$jscomp.polyfill("Uint8ClampedArray.prototype.copyWithin",$jscomp.typedArrayCopyWithin,"es6","es5");$jscomp.polyfill("Int16Array.prototype.copyWithin",$jscomp.typedArrayCopyWithin,"es6","es5"); $jscomp.polyfill("Uint16Array.prototype.copyWithin",$jscomp.typedArrayCopyWithin,"es6","es5");$jscomp.polyfill("Int32Array.prototype.copyWithin",$jscomp.typedArrayCopyWithin,"es6","es5");$jscomp.polyfill("Uint32Array.prototype.copyWithin",$jscomp.typedArrayCopyWithin,"es6","es5");$jscomp.polyfill("Float32Array.prototype.copyWithin",$jscomp.typedArrayCopyWithin,"es6","es5");$jscomp.polyfill("Float64Array.prototype.copyWithin",$jscomp.typedArrayCopyWithin,"es6","es5"); -var DracoEncoderModule=function(){var l="undefined"!==typeof document&&document.currentScript?document.currentScript.src:void 0;"undefined"!==typeof __filename&&(l=l||__filename);return function(p){function m(f){return a.locateFile?a.locateFile(f,L):L+f}function r(f){qa=f;a.HEAP8=P=new Int8Array(f);a.HEAP16=ha=new Int16Array(f);a.HEAP32=S=new Int32Array(f);a.HEAPU8=ia=new Uint8Array(f);a.HEAPU16=new Uint16Array(f);a.HEAPU32=T=new Uint32Array(f);a.HEAPF32=ja=new Float32Array(f);a.HEAPF64=new Float64Array(f)} -function k(f){if(a.onAbort)a.onAbort(f);f="Aborted("+f+")";W(f);ra=!0;f=new WebAssembly.RuntimeError(f+". Build with -sASSERTIONS for more info.");ka(f);throw f;}function C(f){try{if(f==J&&X)return new Uint8Array(X);if(la)return la(f);throw"both async and sync fetching of the wasm failed";}catch(b){k(b)}}function h(){if(!X&&(sa||Y)){if("function"==typeof fetch&&!J.startsWith("file://"))return fetch(J,{credentials:"same-origin"}).then(function(f){if(!f.ok)throw"failed to load wasm binary file at '"+ -J+"'";return f.arrayBuffer()}).catch(function(){return C(J)});if(ma)return new Promise(function(f,b){ma(J,function(c){f(new Uint8Array(c))},b)})}return Promise.resolve().then(function(){return C(J)})}function q(f){for(;0=ba.length&&(ba.length=f+1),ba[f]=b=ta.get(f));return b}function D(f){this.excPtr=f;this.ptr= -f-24;this.set_type=function(b){T[this.ptr+4>>2]=b};this.get_type=function(){return T[this.ptr+4>>2]};this.set_destructor=function(b){T[this.ptr+8>>2]=b};this.get_destructor=function(){return T[this.ptr+8>>2]};this.set_refcount=function(b){S[this.ptr>>2]=b};this.set_caught=function(b){P[this.ptr+12>>0]=b?1:0};this.get_caught=function(){return 0!=P[this.ptr+12>>0]};this.set_rethrown=function(b){P[this.ptr+13>>0]=b?1:0};this.get_rethrown=function(){return 0!=P[this.ptr+13>>0]};this.init=function(b,c){this.set_adjusted_ptr(0); -this.set_type(b);this.set_destructor(c);this.set_refcount(0);this.set_caught(!1);this.set_rethrown(!1)};this.add_ref=function(){S[this.ptr>>2]+=1};this.release_ref=function(){var b=S[this.ptr>>2];S[this.ptr>>2]=b-1;return 1===b};this.set_adjusted_ptr=function(b){T[this.ptr+16>>2]=b};this.get_adjusted_ptr=function(){return T[this.ptr+16>>2]};this.get_exception_ptr=function(){if(ua(this.get_type()))return T[this.excPtr>>2];var b=this.get_adjusted_ptr();return 0!==b?b:this.excPtr}}function G(f){function b(){if(!ca&& -(ca=!0,a.calledRun=!0,!ra)){va=!0;q(na);wa(a);if(a.onRuntimeInitialized)a.onRuntimeInitialized();if(a.postRun)for("function"==typeof a.postRun&&(a.postRun=[a.postRun]);a.postRun.length;)xa.unshift(a.postRun.shift());q(xa)}}if(!(0=d&&(d=65536+((d&1023)<<10)|f.charCodeAt(++c)&1023);127>=d?++b:b=2047>=d?b+2:65535>=d?b+3:b+4}b=Array(b+1);c=0;d=b.length;if(0=g){var t=f.charCodeAt(++e);g=65536+((g&1023)<<10)|t&1023}if(127>=g){if(c>= -d)break;b[c++]=g}else{if(2047>=g){if(c+1>=d)break;b[c++]=192|g>>6}else{if(65535>=g){if(c+2>=d)break;b[c++]=224|g>>12}else{if(c+3>=d)break;b[c++]=240|g>>18;b[c++]=128|g>>12&63}b[c++]=128|g>>6&63}b[c++]=128|g&63}}b[c]=0}f=n.alloc(b,P);n.copy(b,P,f);return f}return f}function R(f){if("object"===typeof f){var b=n.alloc(f,P);n.copy(f,P,b);return b}return f}function da(f){if("object"===typeof f){var b=n.alloc(f,ha);n.copy(f,ha,b);return b}return f}function V(f){if("object"===typeof f){var b=n.alloc(f,S); -n.copy(f,S,b);return b}return f}function Z(f){if("object"===typeof f){var b=n.alloc(f,ja);n.copy(f,ja,b);return b}return f}function Q(){throw"cannot construct a VoidPtr, no constructor in IDL";}function M(){this.ptr=za();B(M)[this.ptr]=this}function z(){this.ptr=Aa();B(z)[this.ptr]=this}function H(){this.ptr=Ba();B(H)[this.ptr]=this}function E(){this.ptr=Ca();B(E)[this.ptr]=this}function N(){this.ptr=Da();B(N)[this.ptr]=this}function I(){this.ptr=Ea();B(I)[this.ptr]=this}function F(){this.ptr=Fa(); -B(F)[this.ptr]=this}function w(){this.ptr=Ga();B(w)[this.ptr]=this}function u(){this.ptr=Ha();B(u)[this.ptr]=this}function x(){this.ptr=Ia();B(x)[this.ptr]=this}function A(f){f&&"object"===typeof f&&(f=f.ptr);this.ptr=Ja(f);B(A)[this.ptr]=this}p=p||{};var a="undefined"!=typeof p?p:{},wa,ka;a.ready=new Promise(function(f,b){wa=f;ka=b});var Ka=!1,La=!1;a.onRuntimeInitialized=function(){Ka=!0;if(La&&"function"===typeof a.onModuleLoaded)a.onModuleLoaded(a)};a.onModuleParsed=function(){La=!0;if(Ka&&"function"=== -typeof a.onModuleLoaded)a.onModuleLoaded(a)};a.isVersionSupported=function(f){if("string"!==typeof f)return!1;f=f.split(".");return 2>f.length||3=f[1]?!0:0!=f[0]||10>>=0;if(2147483648=c;c*=2){var d=b*(1+.2/c);d=Math.min(d,f+100663296);var e=Math;d=Math.max(f,d);e=e.min.call(e,2147483648,d+(65536-d%65536)%65536);a:{try{fa.grow(e-qa.byteLength+65535>>>16);r(fa.buffer);var g=1;break a}catch(t){}g=void 0}if(g)return!0}return!1}};(function(){function f(e,g){a.asm=e.exports;fa=a.asm.f;r(fa.buffer);ta=a.asm.h;na.unshift(a.asm.g); -U--;a.monitorRunDependencies&&a.monitorRunDependencies(U);0==U&&(null!==pa&&(clearInterval(pa),pa=null),aa&&(e=aa,aa=null,e()))}function b(e){f(e.instance)}function c(e){return h().then(function(g){return WebAssembly.instantiate(g,d)}).then(function(g){return g}).then(e,function(g){W("failed to asynchronously prepare wasm: "+g);k(g)})}var d={a:uc};U++;a.monitorRunDependencies&&a.monitorRunDependencies(U);if(a.instantiateWasm)try{return a.instantiateWasm(d,f)}catch(e){return W("Module.instantiateWasm callback failed with error: "+ -e),!1}(function(){return X||"function"!=typeof WebAssembly.instantiateStreaming||J.startsWith("data:application/octet-stream;base64,")||J.startsWith("file://")||Na||"function"!=typeof fetch?c(b):fetch(J,{credentials:"same-origin"}).then(function(e){return WebAssembly.instantiateStreaming(e,d).then(b,function(g){W("wasm streaming compile failed: "+g);W("falling back to ArrayBuffer instantiation");return c(b)})})})().catch(ka);return{}})();a.___wasm_call_ctors=function(){return(a.___wasm_call_ctors= -a.asm.g).apply(null,arguments)};var Ra=a._emscripten_bind_VoidPtr___destroy___0=function(){return(Ra=a._emscripten_bind_VoidPtr___destroy___0=a.asm.i).apply(null,arguments)},za=a._emscripten_bind_GeometryAttribute_GeometryAttribute_0=function(){return(za=a._emscripten_bind_GeometryAttribute_GeometryAttribute_0=a.asm.j).apply(null,arguments)},Sa=a._emscripten_bind_GeometryAttribute___destroy___0=function(){return(Sa=a._emscripten_bind_GeometryAttribute___destroy___0=a.asm.k).apply(null,arguments)}, -Aa=a._emscripten_bind_PointAttribute_PointAttribute_0=function(){return(Aa=a._emscripten_bind_PointAttribute_PointAttribute_0=a.asm.l).apply(null,arguments)},Ta=a._emscripten_bind_PointAttribute_size_0=function(){return(Ta=a._emscripten_bind_PointAttribute_size_0=a.asm.m).apply(null,arguments)},Ua=a._emscripten_bind_PointAttribute_attribute_type_0=function(){return(Ua=a._emscripten_bind_PointAttribute_attribute_type_0=a.asm.n).apply(null,arguments)},Va=a._emscripten_bind_PointAttribute_data_type_0= -function(){return(Va=a._emscripten_bind_PointAttribute_data_type_0=a.asm.o).apply(null,arguments)},Wa=a._emscripten_bind_PointAttribute_num_components_0=function(){return(Wa=a._emscripten_bind_PointAttribute_num_components_0=a.asm.p).apply(null,arguments)},Xa=a._emscripten_bind_PointAttribute_normalized_0=function(){return(Xa=a._emscripten_bind_PointAttribute_normalized_0=a.asm.q).apply(null,arguments)},Ya=a._emscripten_bind_PointAttribute_byte_stride_0=function(){return(Ya=a._emscripten_bind_PointAttribute_byte_stride_0= -a.asm.r).apply(null,arguments)},Za=a._emscripten_bind_PointAttribute_byte_offset_0=function(){return(Za=a._emscripten_bind_PointAttribute_byte_offset_0=a.asm.s).apply(null,arguments)},$a=a._emscripten_bind_PointAttribute_unique_id_0=function(){return($a=a._emscripten_bind_PointAttribute_unique_id_0=a.asm.t).apply(null,arguments)},ab=a._emscripten_bind_PointAttribute___destroy___0=function(){return(ab=a._emscripten_bind_PointAttribute___destroy___0=a.asm.u).apply(null,arguments)},Ba=a._emscripten_bind_PointCloud_PointCloud_0= -function(){return(Ba=a._emscripten_bind_PointCloud_PointCloud_0=a.asm.v).apply(null,arguments)},bb=a._emscripten_bind_PointCloud_num_attributes_0=function(){return(bb=a._emscripten_bind_PointCloud_num_attributes_0=a.asm.w).apply(null,arguments)},cb=a._emscripten_bind_PointCloud_num_points_0=function(){return(cb=a._emscripten_bind_PointCloud_num_points_0=a.asm.x).apply(null,arguments)},db=a._emscripten_bind_PointCloud___destroy___0=function(){return(db=a._emscripten_bind_PointCloud___destroy___0=a.asm.y).apply(null, -arguments)},Ca=a._emscripten_bind_Mesh_Mesh_0=function(){return(Ca=a._emscripten_bind_Mesh_Mesh_0=a.asm.z).apply(null,arguments)},eb=a._emscripten_bind_Mesh_num_faces_0=function(){return(eb=a._emscripten_bind_Mesh_num_faces_0=a.asm.A).apply(null,arguments)},fb=a._emscripten_bind_Mesh_num_attributes_0=function(){return(fb=a._emscripten_bind_Mesh_num_attributes_0=a.asm.B).apply(null,arguments)},gb=a._emscripten_bind_Mesh_num_points_0=function(){return(gb=a._emscripten_bind_Mesh_num_points_0=a.asm.C).apply(null, -arguments)},hb=a._emscripten_bind_Mesh_set_num_points_1=function(){return(hb=a._emscripten_bind_Mesh_set_num_points_1=a.asm.D).apply(null,arguments)},ib=a._emscripten_bind_Mesh___destroy___0=function(){return(ib=a._emscripten_bind_Mesh___destroy___0=a.asm.E).apply(null,arguments)},Da=a._emscripten_bind_Metadata_Metadata_0=function(){return(Da=a._emscripten_bind_Metadata_Metadata_0=a.asm.F).apply(null,arguments)},jb=a._emscripten_bind_Metadata___destroy___0=function(){return(jb=a._emscripten_bind_Metadata___destroy___0= -a.asm.G).apply(null,arguments)},Ea=a._emscripten_bind_DracoInt8Array_DracoInt8Array_0=function(){return(Ea=a._emscripten_bind_DracoInt8Array_DracoInt8Array_0=a.asm.H).apply(null,arguments)},kb=a._emscripten_bind_DracoInt8Array_GetValue_1=function(){return(kb=a._emscripten_bind_DracoInt8Array_GetValue_1=a.asm.I).apply(null,arguments)},lb=a._emscripten_bind_DracoInt8Array_size_0=function(){return(lb=a._emscripten_bind_DracoInt8Array_size_0=a.asm.J).apply(null,arguments)},mb=a._emscripten_bind_DracoInt8Array___destroy___0= -function(){return(mb=a._emscripten_bind_DracoInt8Array___destroy___0=a.asm.K).apply(null,arguments)},Fa=a._emscripten_bind_MetadataBuilder_MetadataBuilder_0=function(){return(Fa=a._emscripten_bind_MetadataBuilder_MetadataBuilder_0=a.asm.L).apply(null,arguments)},nb=a._emscripten_bind_MetadataBuilder_AddStringEntry_3=function(){return(nb=a._emscripten_bind_MetadataBuilder_AddStringEntry_3=a.asm.M).apply(null,arguments)},ob=a._emscripten_bind_MetadataBuilder_AddIntEntry_3=function(){return(ob=a._emscripten_bind_MetadataBuilder_AddIntEntry_3= -a.asm.N).apply(null,arguments)},pb=a._emscripten_bind_MetadataBuilder_AddIntEntryArray_4=function(){return(pb=a._emscripten_bind_MetadataBuilder_AddIntEntryArray_4=a.asm.O).apply(null,arguments)},qb=a._emscripten_bind_MetadataBuilder_AddDoubleEntry_3=function(){return(qb=a._emscripten_bind_MetadataBuilder_AddDoubleEntry_3=a.asm.P).apply(null,arguments)},rb=a._emscripten_bind_MetadataBuilder___destroy___0=function(){return(rb=a._emscripten_bind_MetadataBuilder___destroy___0=a.asm.Q).apply(null,arguments)}, -Ga=a._emscripten_bind_PointCloudBuilder_PointCloudBuilder_0=function(){return(Ga=a._emscripten_bind_PointCloudBuilder_PointCloudBuilder_0=a.asm.R).apply(null,arguments)},sb=a._emscripten_bind_PointCloudBuilder_AddFloatAttribute_5=function(){return(sb=a._emscripten_bind_PointCloudBuilder_AddFloatAttribute_5=a.asm.S).apply(null,arguments)},tb=a._emscripten_bind_PointCloudBuilder_AddInt8Attribute_5=function(){return(tb=a._emscripten_bind_PointCloudBuilder_AddInt8Attribute_5=a.asm.T).apply(null,arguments)}, -ub=a._emscripten_bind_PointCloudBuilder_AddUInt8Attribute_5=function(){return(ub=a._emscripten_bind_PointCloudBuilder_AddUInt8Attribute_5=a.asm.U).apply(null,arguments)},vb=a._emscripten_bind_PointCloudBuilder_AddInt16Attribute_5=function(){return(vb=a._emscripten_bind_PointCloudBuilder_AddInt16Attribute_5=a.asm.V).apply(null,arguments)},wb=a._emscripten_bind_PointCloudBuilder_AddUInt16Attribute_5=function(){return(wb=a._emscripten_bind_PointCloudBuilder_AddUInt16Attribute_5=a.asm.W).apply(null,arguments)}, -xb=a._emscripten_bind_PointCloudBuilder_AddInt32Attribute_5=function(){return(xb=a._emscripten_bind_PointCloudBuilder_AddInt32Attribute_5=a.asm.X).apply(null,arguments)},yb=a._emscripten_bind_PointCloudBuilder_AddUInt32Attribute_5=function(){return(yb=a._emscripten_bind_PointCloudBuilder_AddUInt32Attribute_5=a.asm.Y).apply(null,arguments)},zb=a._emscripten_bind_PointCloudBuilder_AddMetadata_2=function(){return(zb=a._emscripten_bind_PointCloudBuilder_AddMetadata_2=a.asm.Z).apply(null,arguments)},Ab= -a._emscripten_bind_PointCloudBuilder_SetMetadataForAttribute_3=function(){return(Ab=a._emscripten_bind_PointCloudBuilder_SetMetadataForAttribute_3=a.asm._).apply(null,arguments)},Bb=a._emscripten_bind_PointCloudBuilder___destroy___0=function(){return(Bb=a._emscripten_bind_PointCloudBuilder___destroy___0=a.asm.$).apply(null,arguments)},Ha=a._emscripten_bind_MeshBuilder_MeshBuilder_0=function(){return(Ha=a._emscripten_bind_MeshBuilder_MeshBuilder_0=a.asm.aa).apply(null,arguments)},Cb=a._emscripten_bind_MeshBuilder_AddFacesToMesh_3= -function(){return(Cb=a._emscripten_bind_MeshBuilder_AddFacesToMesh_3=a.asm.ba).apply(null,arguments)},Db=a._emscripten_bind_MeshBuilder_AddFloatAttributeToMesh_5=function(){return(Db=a._emscripten_bind_MeshBuilder_AddFloatAttributeToMesh_5=a.asm.ca).apply(null,arguments)},Eb=a._emscripten_bind_MeshBuilder_AddInt32AttributeToMesh_5=function(){return(Eb=a._emscripten_bind_MeshBuilder_AddInt32AttributeToMesh_5=a.asm.da).apply(null,arguments)},Fb=a._emscripten_bind_MeshBuilder_AddMetadataToMesh_2=function(){return(Fb= -a._emscripten_bind_MeshBuilder_AddMetadataToMesh_2=a.asm.ea).apply(null,arguments)},Gb=a._emscripten_bind_MeshBuilder_AddFloatAttribute_5=function(){return(Gb=a._emscripten_bind_MeshBuilder_AddFloatAttribute_5=a.asm.fa).apply(null,arguments)},Hb=a._emscripten_bind_MeshBuilder_AddInt8Attribute_5=function(){return(Hb=a._emscripten_bind_MeshBuilder_AddInt8Attribute_5=a.asm.ga).apply(null,arguments)},Ib=a._emscripten_bind_MeshBuilder_AddUInt8Attribute_5=function(){return(Ib=a._emscripten_bind_MeshBuilder_AddUInt8Attribute_5= -a.asm.ha).apply(null,arguments)},Jb=a._emscripten_bind_MeshBuilder_AddInt16Attribute_5=function(){return(Jb=a._emscripten_bind_MeshBuilder_AddInt16Attribute_5=a.asm.ia).apply(null,arguments)},Kb=a._emscripten_bind_MeshBuilder_AddUInt16Attribute_5=function(){return(Kb=a._emscripten_bind_MeshBuilder_AddUInt16Attribute_5=a.asm.ja).apply(null,arguments)},Lb=a._emscripten_bind_MeshBuilder_AddInt32Attribute_5=function(){return(Lb=a._emscripten_bind_MeshBuilder_AddInt32Attribute_5=a.asm.ka).apply(null,arguments)}, -Mb=a._emscripten_bind_MeshBuilder_AddUInt32Attribute_5=function(){return(Mb=a._emscripten_bind_MeshBuilder_AddUInt32Attribute_5=a.asm.la).apply(null,arguments)},Nb=a._emscripten_bind_MeshBuilder_AddMetadata_2=function(){return(Nb=a._emscripten_bind_MeshBuilder_AddMetadata_2=a.asm.ma).apply(null,arguments)},Ob=a._emscripten_bind_MeshBuilder_SetMetadataForAttribute_3=function(){return(Ob=a._emscripten_bind_MeshBuilder_SetMetadataForAttribute_3=a.asm.na).apply(null,arguments)},Pb=a._emscripten_bind_MeshBuilder___destroy___0= -function(){return(Pb=a._emscripten_bind_MeshBuilder___destroy___0=a.asm.oa).apply(null,arguments)},Ia=a._emscripten_bind_Encoder_Encoder_0=function(){return(Ia=a._emscripten_bind_Encoder_Encoder_0=a.asm.pa).apply(null,arguments)},Qb=a._emscripten_bind_Encoder_SetEncodingMethod_1=function(){return(Qb=a._emscripten_bind_Encoder_SetEncodingMethod_1=a.asm.qa).apply(null,arguments)},Rb=a._emscripten_bind_Encoder_SetAttributeQuantization_2=function(){return(Rb=a._emscripten_bind_Encoder_SetAttributeQuantization_2= -a.asm.ra).apply(null,arguments)},Sb=a._emscripten_bind_Encoder_SetAttributeExplicitQuantization_5=function(){return(Sb=a._emscripten_bind_Encoder_SetAttributeExplicitQuantization_5=a.asm.sa).apply(null,arguments)},Tb=a._emscripten_bind_Encoder_SetSpeedOptions_2=function(){return(Tb=a._emscripten_bind_Encoder_SetSpeedOptions_2=a.asm.ta).apply(null,arguments)},Ub=a._emscripten_bind_Encoder_SetTrackEncodedProperties_1=function(){return(Ub=a._emscripten_bind_Encoder_SetTrackEncodedProperties_1=a.asm.ua).apply(null, -arguments)},Vb=a._emscripten_bind_Encoder_EncodeMeshToDracoBuffer_2=function(){return(Vb=a._emscripten_bind_Encoder_EncodeMeshToDracoBuffer_2=a.asm.va).apply(null,arguments)},Wb=a._emscripten_bind_Encoder_EncodePointCloudToDracoBuffer_3=function(){return(Wb=a._emscripten_bind_Encoder_EncodePointCloudToDracoBuffer_3=a.asm.wa).apply(null,arguments)},Xb=a._emscripten_bind_Encoder_GetNumberOfEncodedPoints_0=function(){return(Xb=a._emscripten_bind_Encoder_GetNumberOfEncodedPoints_0=a.asm.xa).apply(null, -arguments)},Yb=a._emscripten_bind_Encoder_GetNumberOfEncodedFaces_0=function(){return(Yb=a._emscripten_bind_Encoder_GetNumberOfEncodedFaces_0=a.asm.ya).apply(null,arguments)},Zb=a._emscripten_bind_Encoder___destroy___0=function(){return(Zb=a._emscripten_bind_Encoder___destroy___0=a.asm.za).apply(null,arguments)},Ja=a._emscripten_bind_ExpertEncoder_ExpertEncoder_1=function(){return(Ja=a._emscripten_bind_ExpertEncoder_ExpertEncoder_1=a.asm.Aa).apply(null,arguments)},$b=a._emscripten_bind_ExpertEncoder_SetEncodingMethod_1= -function(){return($b=a._emscripten_bind_ExpertEncoder_SetEncodingMethod_1=a.asm.Ba).apply(null,arguments)},ac=a._emscripten_bind_ExpertEncoder_SetAttributeQuantization_2=function(){return(ac=a._emscripten_bind_ExpertEncoder_SetAttributeQuantization_2=a.asm.Ca).apply(null,arguments)},bc=a._emscripten_bind_ExpertEncoder_SetAttributeExplicitQuantization_5=function(){return(bc=a._emscripten_bind_ExpertEncoder_SetAttributeExplicitQuantization_5=a.asm.Da).apply(null,arguments)},cc=a._emscripten_bind_ExpertEncoder_SetSpeedOptions_2= -function(){return(cc=a._emscripten_bind_ExpertEncoder_SetSpeedOptions_2=a.asm.Ea).apply(null,arguments)},dc=a._emscripten_bind_ExpertEncoder_SetTrackEncodedProperties_1=function(){return(dc=a._emscripten_bind_ExpertEncoder_SetTrackEncodedProperties_1=a.asm.Fa).apply(null,arguments)},ec=a._emscripten_bind_ExpertEncoder_EncodeToDracoBuffer_2=function(){return(ec=a._emscripten_bind_ExpertEncoder_EncodeToDracoBuffer_2=a.asm.Ga).apply(null,arguments)},fc=a._emscripten_bind_ExpertEncoder_GetNumberOfEncodedPoints_0= -function(){return(fc=a._emscripten_bind_ExpertEncoder_GetNumberOfEncodedPoints_0=a.asm.Ha).apply(null,arguments)},gc=a._emscripten_bind_ExpertEncoder_GetNumberOfEncodedFaces_0=function(){return(gc=a._emscripten_bind_ExpertEncoder_GetNumberOfEncodedFaces_0=a.asm.Ia).apply(null,arguments)},hc=a._emscripten_bind_ExpertEncoder___destroy___0=function(){return(hc=a._emscripten_bind_ExpertEncoder___destroy___0=a.asm.Ja).apply(null,arguments)},ic=a._emscripten_enum_draco_GeometryAttribute_Type_INVALID=function(){return(ic= -a._emscripten_enum_draco_GeometryAttribute_Type_INVALID=a.asm.Ka).apply(null,arguments)},jc=a._emscripten_enum_draco_GeometryAttribute_Type_POSITION=function(){return(jc=a._emscripten_enum_draco_GeometryAttribute_Type_POSITION=a.asm.La).apply(null,arguments)},kc=a._emscripten_enum_draco_GeometryAttribute_Type_NORMAL=function(){return(kc=a._emscripten_enum_draco_GeometryAttribute_Type_NORMAL=a.asm.Ma).apply(null,arguments)},lc=a._emscripten_enum_draco_GeometryAttribute_Type_COLOR=function(){return(lc= -a._emscripten_enum_draco_GeometryAttribute_Type_COLOR=a.asm.Na).apply(null,arguments)},mc=a._emscripten_enum_draco_GeometryAttribute_Type_TEX_COORD=function(){return(mc=a._emscripten_enum_draco_GeometryAttribute_Type_TEX_COORD=a.asm.Oa).apply(null,arguments)},nc=a._emscripten_enum_draco_GeometryAttribute_Type_GENERIC=function(){return(nc=a._emscripten_enum_draco_GeometryAttribute_Type_GENERIC=a.asm.Pa).apply(null,arguments)},oc=a._emscripten_enum_draco_EncodedGeometryType_INVALID_GEOMETRY_TYPE=function(){return(oc= -a._emscripten_enum_draco_EncodedGeometryType_INVALID_GEOMETRY_TYPE=a.asm.Qa).apply(null,arguments)},pc=a._emscripten_enum_draco_EncodedGeometryType_POINT_CLOUD=function(){return(pc=a._emscripten_enum_draco_EncodedGeometryType_POINT_CLOUD=a.asm.Ra).apply(null,arguments)},qc=a._emscripten_enum_draco_EncodedGeometryType_TRIANGULAR_MESH=function(){return(qc=a._emscripten_enum_draco_EncodedGeometryType_TRIANGULAR_MESH=a.asm.Sa).apply(null,arguments)},rc=a._emscripten_enum_draco_MeshEncoderMethod_MESH_SEQUENTIAL_ENCODING= -function(){return(rc=a._emscripten_enum_draco_MeshEncoderMethod_MESH_SEQUENTIAL_ENCODING=a.asm.Ta).apply(null,arguments)},sc=a._emscripten_enum_draco_MeshEncoderMethod_MESH_EDGEBREAKER_ENCODING=function(){return(sc=a._emscripten_enum_draco_MeshEncoderMethod_MESH_EDGEBREAKER_ENCODING=a.asm.Ua).apply(null,arguments)},Qa=a._malloc=function(){return(Qa=a._malloc=a.asm.Va).apply(null,arguments)};a._free=function(){return(a._free=a.asm.Wa).apply(null,arguments)};var ua=a.___cxa_is_pointer_type=function(){return(ua= -a.___cxa_is_pointer_type=a.asm.Xa).apply(null,arguments)},ca;aa=function b(){ca||G();ca||(aa=b)};a.run=G;if(a.preInit)for("function"==typeof a.preInit&&(a.preInit=[a.preInit]);0=n.size?(0>>=0;switch(c.BYTES_PER_ELEMENT){case 2:d>>>=1;break;case 4:d>>>=2;break;case 8:d>>>=3}for(var e=0;e>2]=b};this.get_type=function(){return T[this.ptr+4>>2]};this.set_destructor=function(b){T[this.ptr+8>>2]=b};this.get_destructor=function(){return T[this.ptr+8>>2]};this.set_refcount= +function(b){S[this.ptr>>2]=b};this.set_caught=function(b){O[this.ptr+12>>0]=b?1:0};this.get_caught=function(){return 0!=O[this.ptr+12>>0]};this.set_rethrown=function(b){O[this.ptr+13>>0]=b?1:0};this.get_rethrown=function(){return 0!=O[this.ptr+13>>0]};this.init=function(b,c){this.set_adjusted_ptr(0);this.set_type(b);this.set_destructor(c);this.set_refcount(0);this.set_caught(!1);this.set_rethrown(!1)};this.add_ref=function(){S[this.ptr>>2]+=1};this.release_ref=function(){var b=S[this.ptr>>2];S[this.ptr>> +2]=b-1;return 1===b};this.set_adjusted_ptr=function(b){T[this.ptr+16>>2]=b};this.get_adjusted_ptr=function(){return T[this.ptr+16>>2]};this.get_exception_ptr=function(){if(pa(this.get_type()))return T[this.excPtr>>2];var b=this.get_adjusted_ptr();return 0!==b?b:this.excPtr}}function B(f){function b(){if(!ca&&(ca=!0,a.calledRun=!0,!na)){qa=!0;q(ka);ra(a);if(a.onRuntimeInitialized)a.onRuntimeInitialized();if(a.postRun)for("function"==typeof a.postRun&&(a.postRun=[a.postRun]);a.postRun.length;)sa.unshift(a.postRun.shift()); +q(sa)}}if(!(0=d?b++:2047>=d?b+=2:55296<=d&&57343>=d?(b+=4,++c):b+=3}b=Array(b+1);c=0;d=b.length;if(0=g){var t=f.charCodeAt(++e);g=65536+((g&1023)<<10)|t&1023}if(127>=g){if(c>=d)break;b[c++]=g}else{if(2047>=g){if(c+1>=d)break;b[c++]=192|g>>6}else{if(65535>=g){if(c+2>=d)break;b[c++]=224|g>>12}else{if(c+3>=d)break;b[c++]=240|g>>18;b[c++]=128|g>>12&63}b[c++]=128|g>>6&63}b[c++]=128|g&63}}b[c]=0}f=n.alloc(b,O);n.copy(b,O,f);return f}return f} +function Q(f){if("object"===typeof f){var b=n.alloc(f,O);n.copy(f,O,b);return b}return f}function R(f){if("object"===typeof f){var b=n.alloc(f,ea);n.copy(f,ea,b);return b}return f}function V(f){if("object"===typeof f){var b=n.alloc(f,S);n.copy(f,S,b);return b}return f}function Z(f){if("object"===typeof f){var b=n.alloc(f,ha);n.copy(f,ha,b);return b}return f}function P(){throw"cannot construct a VoidPtr, no constructor in IDL";}function M(){this.ptr=ua();D(M)[this.ptr]=this}function z(){this.ptr=va(); +D(z)[this.ptr]=this}function G(){this.ptr=wa();D(G)[this.ptr]=this}function E(){this.ptr=xa();D(E)[this.ptr]=this}function N(){this.ptr=ya();D(N)[this.ptr]=this}function H(){this.ptr=za();D(H)[this.ptr]=this}function F(){this.ptr=Aa();D(F)[this.ptr]=this}function x(){this.ptr=Ba();D(x)[this.ptr]=this}function u(){this.ptr=Ca();D(u)[this.ptr]=this}function y(){this.ptr=Da();D(y)[this.ptr]=this}function A(f){f&&"object"===typeof f&&(f=f.ptr);this.ptr=Ea(f);D(A)[this.ptr]=this}p=p||{};var a="undefined"!= +typeof p?p:{},ra,ba;a.ready=new Promise(function(f,b){ra=f;ba=b});var Fa=!1,Ga=!1;a.onRuntimeInitialized=function(){Fa=!0;if(Ga&&"function"===typeof a.onModuleLoaded)a.onModuleLoaded(a)};a.onModuleParsed=function(){Ga=!0;if(Fa&&"function"===typeof a.onModuleLoaded)a.onModuleLoaded(a)};a.isVersionSupported=function(f){if("string"!==typeof f)return!1;f=f.split(".");return 2>f.length||3=f[1]?!0:0!=f[0]||10>>=0;if(2147483648=c;c*=2){var d=b*(1+.2/c);d=Math.min(d,f+100663296);var e=Math;d=Math.max(f,d);e=e.min.call(e,2147483648, +d+(65536-d%65536)%65536);a:{try{da.grow(e-ma.byteLength+65535>>>16);r(da.buffer);var g=1;break a}catch(t){}g=void 0}if(g)return!0}return!1}};(function(){function f(e,g){a.asm=e.exports;da=a.asm.f;r(da.buffer);ka.unshift(a.asm.g);U--;a.monitorRunDependencies&&a.monitorRunDependencies(U);0==U&&(null!==la&&(clearInterval(la),la=null),aa&&(e=aa,aa=null,e()))}function b(e){f(e.instance)}function c(e){return h().then(function(g){return WebAssembly.instantiate(g,d)}).then(function(g){return g}).then(e,function(g){W("failed to asynchronously prepare wasm: "+ +g);k(g)})}var d={a:qc};U++;a.monitorRunDependencies&&a.monitorRunDependencies(U);if(a.instantiateWasm)try{return a.instantiateWasm(d,f)}catch(e){W("Module.instantiateWasm callback failed with error: "+e),ba(e)}(function(){return X||"function"!=typeof WebAssembly.instantiateStreaming||K.startsWith("data:application/octet-stream;base64,")||K.startsWith("file://")||Ia||"function"!=typeof fetch?c(b):fetch(K,{credentials:"same-origin"}).then(function(e){return WebAssembly.instantiateStreaming(e,d).then(b, +function(g){W("wasm streaming compile failed: "+g);W("falling back to ArrayBuffer instantiation");return c(b)})})})().catch(ba);return{}})();a.___wasm_call_ctors=function(){return(a.___wasm_call_ctors=a.asm.g).apply(null,arguments)};var Na=a._emscripten_bind_VoidPtr___destroy___0=function(){return(Na=a._emscripten_bind_VoidPtr___destroy___0=a.asm.i).apply(null,arguments)},ua=a._emscripten_bind_GeometryAttribute_GeometryAttribute_0=function(){return(ua=a._emscripten_bind_GeometryAttribute_GeometryAttribute_0= +a.asm.j).apply(null,arguments)},Oa=a._emscripten_bind_GeometryAttribute___destroy___0=function(){return(Oa=a._emscripten_bind_GeometryAttribute___destroy___0=a.asm.k).apply(null,arguments)},va=a._emscripten_bind_PointAttribute_PointAttribute_0=function(){return(va=a._emscripten_bind_PointAttribute_PointAttribute_0=a.asm.l).apply(null,arguments)},Pa=a._emscripten_bind_PointAttribute_size_0=function(){return(Pa=a._emscripten_bind_PointAttribute_size_0=a.asm.m).apply(null,arguments)},Qa=a._emscripten_bind_PointAttribute_attribute_type_0= +function(){return(Qa=a._emscripten_bind_PointAttribute_attribute_type_0=a.asm.n).apply(null,arguments)},Ra=a._emscripten_bind_PointAttribute_data_type_0=function(){return(Ra=a._emscripten_bind_PointAttribute_data_type_0=a.asm.o).apply(null,arguments)},Sa=a._emscripten_bind_PointAttribute_num_components_0=function(){return(Sa=a._emscripten_bind_PointAttribute_num_components_0=a.asm.p).apply(null,arguments)},Ta=a._emscripten_bind_PointAttribute_normalized_0=function(){return(Ta=a._emscripten_bind_PointAttribute_normalized_0= +a.asm.q).apply(null,arguments)},Ua=a._emscripten_bind_PointAttribute_byte_stride_0=function(){return(Ua=a._emscripten_bind_PointAttribute_byte_stride_0=a.asm.r).apply(null,arguments)},Va=a._emscripten_bind_PointAttribute_byte_offset_0=function(){return(Va=a._emscripten_bind_PointAttribute_byte_offset_0=a.asm.s).apply(null,arguments)},Wa=a._emscripten_bind_PointAttribute_unique_id_0=function(){return(Wa=a._emscripten_bind_PointAttribute_unique_id_0=a.asm.t).apply(null,arguments)},Xa=a._emscripten_bind_PointAttribute___destroy___0= +function(){return(Xa=a._emscripten_bind_PointAttribute___destroy___0=a.asm.u).apply(null,arguments)},wa=a._emscripten_bind_PointCloud_PointCloud_0=function(){return(wa=a._emscripten_bind_PointCloud_PointCloud_0=a.asm.v).apply(null,arguments)},Ya=a._emscripten_bind_PointCloud_num_attributes_0=function(){return(Ya=a._emscripten_bind_PointCloud_num_attributes_0=a.asm.w).apply(null,arguments)},Za=a._emscripten_bind_PointCloud_num_points_0=function(){return(Za=a._emscripten_bind_PointCloud_num_points_0= +a.asm.x).apply(null,arguments)},$a=a._emscripten_bind_PointCloud___destroy___0=function(){return($a=a._emscripten_bind_PointCloud___destroy___0=a.asm.y).apply(null,arguments)},xa=a._emscripten_bind_Mesh_Mesh_0=function(){return(xa=a._emscripten_bind_Mesh_Mesh_0=a.asm.z).apply(null,arguments)},ab=a._emscripten_bind_Mesh_num_faces_0=function(){return(ab=a._emscripten_bind_Mesh_num_faces_0=a.asm.A).apply(null,arguments)},bb=a._emscripten_bind_Mesh_num_attributes_0=function(){return(bb=a._emscripten_bind_Mesh_num_attributes_0= +a.asm.B).apply(null,arguments)},cb=a._emscripten_bind_Mesh_num_points_0=function(){return(cb=a._emscripten_bind_Mesh_num_points_0=a.asm.C).apply(null,arguments)},db=a._emscripten_bind_Mesh_set_num_points_1=function(){return(db=a._emscripten_bind_Mesh_set_num_points_1=a.asm.D).apply(null,arguments)},eb=a._emscripten_bind_Mesh___destroy___0=function(){return(eb=a._emscripten_bind_Mesh___destroy___0=a.asm.E).apply(null,arguments)},ya=a._emscripten_bind_Metadata_Metadata_0=function(){return(ya=a._emscripten_bind_Metadata_Metadata_0= +a.asm.F).apply(null,arguments)},fb=a._emscripten_bind_Metadata___destroy___0=function(){return(fb=a._emscripten_bind_Metadata___destroy___0=a.asm.G).apply(null,arguments)},za=a._emscripten_bind_DracoInt8Array_DracoInt8Array_0=function(){return(za=a._emscripten_bind_DracoInt8Array_DracoInt8Array_0=a.asm.H).apply(null,arguments)},gb=a._emscripten_bind_DracoInt8Array_GetValue_1=function(){return(gb=a._emscripten_bind_DracoInt8Array_GetValue_1=a.asm.I).apply(null,arguments)},hb=a._emscripten_bind_DracoInt8Array_size_0= +function(){return(hb=a._emscripten_bind_DracoInt8Array_size_0=a.asm.J).apply(null,arguments)},ib=a._emscripten_bind_DracoInt8Array___destroy___0=function(){return(ib=a._emscripten_bind_DracoInt8Array___destroy___0=a.asm.K).apply(null,arguments)},Aa=a._emscripten_bind_MetadataBuilder_MetadataBuilder_0=function(){return(Aa=a._emscripten_bind_MetadataBuilder_MetadataBuilder_0=a.asm.L).apply(null,arguments)},jb=a._emscripten_bind_MetadataBuilder_AddStringEntry_3=function(){return(jb=a._emscripten_bind_MetadataBuilder_AddStringEntry_3= +a.asm.M).apply(null,arguments)},kb=a._emscripten_bind_MetadataBuilder_AddIntEntry_3=function(){return(kb=a._emscripten_bind_MetadataBuilder_AddIntEntry_3=a.asm.N).apply(null,arguments)},lb=a._emscripten_bind_MetadataBuilder_AddIntEntryArray_4=function(){return(lb=a._emscripten_bind_MetadataBuilder_AddIntEntryArray_4=a.asm.O).apply(null,arguments)},mb=a._emscripten_bind_MetadataBuilder_AddDoubleEntry_3=function(){return(mb=a._emscripten_bind_MetadataBuilder_AddDoubleEntry_3=a.asm.P).apply(null,arguments)}, +nb=a._emscripten_bind_MetadataBuilder___destroy___0=function(){return(nb=a._emscripten_bind_MetadataBuilder___destroy___0=a.asm.Q).apply(null,arguments)},Ba=a._emscripten_bind_PointCloudBuilder_PointCloudBuilder_0=function(){return(Ba=a._emscripten_bind_PointCloudBuilder_PointCloudBuilder_0=a.asm.R).apply(null,arguments)},ob=a._emscripten_bind_PointCloudBuilder_AddFloatAttribute_5=function(){return(ob=a._emscripten_bind_PointCloudBuilder_AddFloatAttribute_5=a.asm.S).apply(null,arguments)},pb=a._emscripten_bind_PointCloudBuilder_AddInt8Attribute_5= +function(){return(pb=a._emscripten_bind_PointCloudBuilder_AddInt8Attribute_5=a.asm.T).apply(null,arguments)},qb=a._emscripten_bind_PointCloudBuilder_AddUInt8Attribute_5=function(){return(qb=a._emscripten_bind_PointCloudBuilder_AddUInt8Attribute_5=a.asm.U).apply(null,arguments)},rb=a._emscripten_bind_PointCloudBuilder_AddInt16Attribute_5=function(){return(rb=a._emscripten_bind_PointCloudBuilder_AddInt16Attribute_5=a.asm.V).apply(null,arguments)},sb=a._emscripten_bind_PointCloudBuilder_AddUInt16Attribute_5= +function(){return(sb=a._emscripten_bind_PointCloudBuilder_AddUInt16Attribute_5=a.asm.W).apply(null,arguments)},tb=a._emscripten_bind_PointCloudBuilder_AddInt32Attribute_5=function(){return(tb=a._emscripten_bind_PointCloudBuilder_AddInt32Attribute_5=a.asm.X).apply(null,arguments)},ub=a._emscripten_bind_PointCloudBuilder_AddUInt32Attribute_5=function(){return(ub=a._emscripten_bind_PointCloudBuilder_AddUInt32Attribute_5=a.asm.Y).apply(null,arguments)},vb=a._emscripten_bind_PointCloudBuilder_AddMetadata_2= +function(){return(vb=a._emscripten_bind_PointCloudBuilder_AddMetadata_2=a.asm.Z).apply(null,arguments)},wb=a._emscripten_bind_PointCloudBuilder_SetMetadataForAttribute_3=function(){return(wb=a._emscripten_bind_PointCloudBuilder_SetMetadataForAttribute_3=a.asm._).apply(null,arguments)},xb=a._emscripten_bind_PointCloudBuilder___destroy___0=function(){return(xb=a._emscripten_bind_PointCloudBuilder___destroy___0=a.asm.$).apply(null,arguments)},Ca=a._emscripten_bind_MeshBuilder_MeshBuilder_0=function(){return(Ca= +a._emscripten_bind_MeshBuilder_MeshBuilder_0=a.asm.aa).apply(null,arguments)},yb=a._emscripten_bind_MeshBuilder_AddFacesToMesh_3=function(){return(yb=a._emscripten_bind_MeshBuilder_AddFacesToMesh_3=a.asm.ba).apply(null,arguments)},zb=a._emscripten_bind_MeshBuilder_AddFloatAttributeToMesh_5=function(){return(zb=a._emscripten_bind_MeshBuilder_AddFloatAttributeToMesh_5=a.asm.ca).apply(null,arguments)},Ab=a._emscripten_bind_MeshBuilder_AddInt32AttributeToMesh_5=function(){return(Ab=a._emscripten_bind_MeshBuilder_AddInt32AttributeToMesh_5= +a.asm.da).apply(null,arguments)},Bb=a._emscripten_bind_MeshBuilder_AddMetadataToMesh_2=function(){return(Bb=a._emscripten_bind_MeshBuilder_AddMetadataToMesh_2=a.asm.ea).apply(null,arguments)},Cb=a._emscripten_bind_MeshBuilder_AddFloatAttribute_5=function(){return(Cb=a._emscripten_bind_MeshBuilder_AddFloatAttribute_5=a.asm.fa).apply(null,arguments)},Db=a._emscripten_bind_MeshBuilder_AddInt8Attribute_5=function(){return(Db=a._emscripten_bind_MeshBuilder_AddInt8Attribute_5=a.asm.ga).apply(null,arguments)}, +Eb=a._emscripten_bind_MeshBuilder_AddUInt8Attribute_5=function(){return(Eb=a._emscripten_bind_MeshBuilder_AddUInt8Attribute_5=a.asm.ha).apply(null,arguments)},Fb=a._emscripten_bind_MeshBuilder_AddInt16Attribute_5=function(){return(Fb=a._emscripten_bind_MeshBuilder_AddInt16Attribute_5=a.asm.ia).apply(null,arguments)},Gb=a._emscripten_bind_MeshBuilder_AddUInt16Attribute_5=function(){return(Gb=a._emscripten_bind_MeshBuilder_AddUInt16Attribute_5=a.asm.ja).apply(null,arguments)},Hb=a._emscripten_bind_MeshBuilder_AddInt32Attribute_5= +function(){return(Hb=a._emscripten_bind_MeshBuilder_AddInt32Attribute_5=a.asm.ka).apply(null,arguments)},Ib=a._emscripten_bind_MeshBuilder_AddUInt32Attribute_5=function(){return(Ib=a._emscripten_bind_MeshBuilder_AddUInt32Attribute_5=a.asm.la).apply(null,arguments)},Jb=a._emscripten_bind_MeshBuilder_AddMetadata_2=function(){return(Jb=a._emscripten_bind_MeshBuilder_AddMetadata_2=a.asm.ma).apply(null,arguments)},Kb=a._emscripten_bind_MeshBuilder_SetMetadataForAttribute_3=function(){return(Kb=a._emscripten_bind_MeshBuilder_SetMetadataForAttribute_3= +a.asm.na).apply(null,arguments)},Lb=a._emscripten_bind_MeshBuilder___destroy___0=function(){return(Lb=a._emscripten_bind_MeshBuilder___destroy___0=a.asm.oa).apply(null,arguments)},Da=a._emscripten_bind_Encoder_Encoder_0=function(){return(Da=a._emscripten_bind_Encoder_Encoder_0=a.asm.pa).apply(null,arguments)},Mb=a._emscripten_bind_Encoder_SetEncodingMethod_1=function(){return(Mb=a._emscripten_bind_Encoder_SetEncodingMethod_1=a.asm.qa).apply(null,arguments)},Nb=a._emscripten_bind_Encoder_SetAttributeQuantization_2= +function(){return(Nb=a._emscripten_bind_Encoder_SetAttributeQuantization_2=a.asm.ra).apply(null,arguments)},Ob=a._emscripten_bind_Encoder_SetAttributeExplicitQuantization_5=function(){return(Ob=a._emscripten_bind_Encoder_SetAttributeExplicitQuantization_5=a.asm.sa).apply(null,arguments)},Pb=a._emscripten_bind_Encoder_SetSpeedOptions_2=function(){return(Pb=a._emscripten_bind_Encoder_SetSpeedOptions_2=a.asm.ta).apply(null,arguments)},Qb=a._emscripten_bind_Encoder_SetTrackEncodedProperties_1=function(){return(Qb= +a._emscripten_bind_Encoder_SetTrackEncodedProperties_1=a.asm.ua).apply(null,arguments)},Rb=a._emscripten_bind_Encoder_EncodeMeshToDracoBuffer_2=function(){return(Rb=a._emscripten_bind_Encoder_EncodeMeshToDracoBuffer_2=a.asm.va).apply(null,arguments)},Sb=a._emscripten_bind_Encoder_EncodePointCloudToDracoBuffer_3=function(){return(Sb=a._emscripten_bind_Encoder_EncodePointCloudToDracoBuffer_3=a.asm.wa).apply(null,arguments)},Tb=a._emscripten_bind_Encoder_GetNumberOfEncodedPoints_0=function(){return(Tb= +a._emscripten_bind_Encoder_GetNumberOfEncodedPoints_0=a.asm.xa).apply(null,arguments)},Ub=a._emscripten_bind_Encoder_GetNumberOfEncodedFaces_0=function(){return(Ub=a._emscripten_bind_Encoder_GetNumberOfEncodedFaces_0=a.asm.ya).apply(null,arguments)},Vb=a._emscripten_bind_Encoder___destroy___0=function(){return(Vb=a._emscripten_bind_Encoder___destroy___0=a.asm.za).apply(null,arguments)},Ea=a._emscripten_bind_ExpertEncoder_ExpertEncoder_1=function(){return(Ea=a._emscripten_bind_ExpertEncoder_ExpertEncoder_1= +a.asm.Aa).apply(null,arguments)},Wb=a._emscripten_bind_ExpertEncoder_SetEncodingMethod_1=function(){return(Wb=a._emscripten_bind_ExpertEncoder_SetEncodingMethod_1=a.asm.Ba).apply(null,arguments)},Xb=a._emscripten_bind_ExpertEncoder_SetAttributeQuantization_2=function(){return(Xb=a._emscripten_bind_ExpertEncoder_SetAttributeQuantization_2=a.asm.Ca).apply(null,arguments)},Yb=a._emscripten_bind_ExpertEncoder_SetAttributeExplicitQuantization_5=function(){return(Yb=a._emscripten_bind_ExpertEncoder_SetAttributeExplicitQuantization_5= +a.asm.Da).apply(null,arguments)},Zb=a._emscripten_bind_ExpertEncoder_SetSpeedOptions_2=function(){return(Zb=a._emscripten_bind_ExpertEncoder_SetSpeedOptions_2=a.asm.Ea).apply(null,arguments)},$b=a._emscripten_bind_ExpertEncoder_SetTrackEncodedProperties_1=function(){return($b=a._emscripten_bind_ExpertEncoder_SetTrackEncodedProperties_1=a.asm.Fa).apply(null,arguments)},ac=a._emscripten_bind_ExpertEncoder_EncodeToDracoBuffer_2=function(){return(ac=a._emscripten_bind_ExpertEncoder_EncodeToDracoBuffer_2= +a.asm.Ga).apply(null,arguments)},bc=a._emscripten_bind_ExpertEncoder_GetNumberOfEncodedPoints_0=function(){return(bc=a._emscripten_bind_ExpertEncoder_GetNumberOfEncodedPoints_0=a.asm.Ha).apply(null,arguments)},cc=a._emscripten_bind_ExpertEncoder_GetNumberOfEncodedFaces_0=function(){return(cc=a._emscripten_bind_ExpertEncoder_GetNumberOfEncodedFaces_0=a.asm.Ia).apply(null,arguments)},dc=a._emscripten_bind_ExpertEncoder___destroy___0=function(){return(dc=a._emscripten_bind_ExpertEncoder___destroy___0= +a.asm.Ja).apply(null,arguments)},ec=a._emscripten_enum_draco_GeometryAttribute_Type_INVALID=function(){return(ec=a._emscripten_enum_draco_GeometryAttribute_Type_INVALID=a.asm.Ka).apply(null,arguments)},fc=a._emscripten_enum_draco_GeometryAttribute_Type_POSITION=function(){return(fc=a._emscripten_enum_draco_GeometryAttribute_Type_POSITION=a.asm.La).apply(null,arguments)},gc=a._emscripten_enum_draco_GeometryAttribute_Type_NORMAL=function(){return(gc=a._emscripten_enum_draco_GeometryAttribute_Type_NORMAL= +a.asm.Ma).apply(null,arguments)},hc=a._emscripten_enum_draco_GeometryAttribute_Type_COLOR=function(){return(hc=a._emscripten_enum_draco_GeometryAttribute_Type_COLOR=a.asm.Na).apply(null,arguments)},ic=a._emscripten_enum_draco_GeometryAttribute_Type_TEX_COORD=function(){return(ic=a._emscripten_enum_draco_GeometryAttribute_Type_TEX_COORD=a.asm.Oa).apply(null,arguments)},jc=a._emscripten_enum_draco_GeometryAttribute_Type_GENERIC=function(){return(jc=a._emscripten_enum_draco_GeometryAttribute_Type_GENERIC= +a.asm.Pa).apply(null,arguments)},kc=a._emscripten_enum_draco_EncodedGeometryType_INVALID_GEOMETRY_TYPE=function(){return(kc=a._emscripten_enum_draco_EncodedGeometryType_INVALID_GEOMETRY_TYPE=a.asm.Qa).apply(null,arguments)},lc=a._emscripten_enum_draco_EncodedGeometryType_POINT_CLOUD=function(){return(lc=a._emscripten_enum_draco_EncodedGeometryType_POINT_CLOUD=a.asm.Ra).apply(null,arguments)},mc=a._emscripten_enum_draco_EncodedGeometryType_TRIANGULAR_MESH=function(){return(mc=a._emscripten_enum_draco_EncodedGeometryType_TRIANGULAR_MESH= +a.asm.Sa).apply(null,arguments)},nc=a._emscripten_enum_draco_MeshEncoderMethod_MESH_SEQUENTIAL_ENCODING=function(){return(nc=a._emscripten_enum_draco_MeshEncoderMethod_MESH_SEQUENTIAL_ENCODING=a.asm.Ta).apply(null,arguments)},oc=a._emscripten_enum_draco_MeshEncoderMethod_MESH_EDGEBREAKER_ENCODING=function(){return(oc=a._emscripten_enum_draco_MeshEncoderMethod_MESH_EDGEBREAKER_ENCODING=a.asm.Ua).apply(null,arguments)},Ma=a._malloc=function(){return(Ma=a._malloc=a.asm.Va).apply(null,arguments)};a._free= +function(){return(a._free=a.asm.Wa).apply(null,arguments)};var pa=a.___cxa_is_pointer_type=function(){return(pa=a.___cxa_is_pointer_type=a.asm.Xa).apply(null,arguments)};a.___start_em_js=19116;a.___stop_em_js=19214;var ca;aa=function b(){ca||B();ca||(aa=b)};if(a.preInit)for("function"==typeof a.preInit&&(a.preInit=[a.preInit]);0=n.size?(0>>=0;switch(c.BYTES_PER_ELEMENT){case 2:d>>>=1;break;case 4:d>>>=2;break;case 8:d>>>=3}for(var e=0;e>>0,$jscomp.propertyToPolyfillSymbol[l]=$jscomp.IS_SYMBOL_NATIVE? $jscomp.global.Symbol(l):$jscomp.POLYFILL_PREFIX+k+"$"+l),$jscomp.defineProperty(p,$jscomp.propertyToPolyfillSymbol[l],{configurable:!0,writable:!0,value:n})))}; -$jscomp.polyfill("Promise",function(h){function n(){this.batch_=null}function k(f){return f instanceof l?f:new l(function(q,v){q(f)})}if(h&&(!($jscomp.FORCE_POLYFILL_PROMISE||$jscomp.FORCE_POLYFILL_PROMISE_WHEN_NO_UNHANDLED_REJECTION&&"undefined"===typeof $jscomp.global.PromiseRejectionEvent)||!$jscomp.global.Promise||-1===$jscomp.global.Promise.toString().indexOf("[native code]")))return h;n.prototype.asyncExecute=function(f){if(null==this.batch_){this.batch_=[];var q=this;this.asyncExecuteFunction(function(){q.executeBatch_()})}this.batch_.push(f)}; -var p=$jscomp.global.setTimeout;n.prototype.asyncExecuteFunction=function(f){p(f,0)};n.prototype.executeBatch_=function(){for(;this.batch_&&this.batch_.length;){var f=this.batch_;this.batch_=[];for(var q=0;q=y}},"es6","es3"); $jscomp.polyfill("Array.prototype.copyWithin",function(h){function n(k){k=Number(k);return Infinity===k||-Infinity===k?k:k|0}return h?h:function(k,p,l){var y=this.length;k=n(k);p=n(p);l=void 0===l?y:n(l);k=0>k?Math.max(y+k,0):Math.min(k,y);p=0>p?Math.max(y+p,0):Math.min(p,y);l=0>l?Math.max(y+l,0):Math.min(l,y);if(kp;)--l in this?this[--k]=this[l]:delete this[--k];return this}},"es6","es3"); $jscomp.typedArrayCopyWithin=function(h){return h?h:Array.prototype.copyWithin};$jscomp.polyfill("Int8Array.prototype.copyWithin",$jscomp.typedArrayCopyWithin,"es6","es5");$jscomp.polyfill("Uint8Array.prototype.copyWithin",$jscomp.typedArrayCopyWithin,"es6","es5");$jscomp.polyfill("Uint8ClampedArray.prototype.copyWithin",$jscomp.typedArrayCopyWithin,"es6","es5");$jscomp.polyfill("Int16Array.prototype.copyWithin",$jscomp.typedArrayCopyWithin,"es6","es5"); $jscomp.polyfill("Uint16Array.prototype.copyWithin",$jscomp.typedArrayCopyWithin,"es6","es5");$jscomp.polyfill("Int32Array.prototype.copyWithin",$jscomp.typedArrayCopyWithin,"es6","es5");$jscomp.polyfill("Uint32Array.prototype.copyWithin",$jscomp.typedArrayCopyWithin,"es6","es5");$jscomp.polyfill("Float32Array.prototype.copyWithin",$jscomp.typedArrayCopyWithin,"es6","es5");$jscomp.polyfill("Float64Array.prototype.copyWithin",$jscomp.typedArrayCopyWithin,"es6","es5"); -var DracoDecoderModule=function(){var h="undefined"!==typeof document&&document.currentScript?document.currentScript.src:void 0;"undefined"!==typeof __filename&&(h=h||__filename);return function(n){function k(e){return a.locateFile?a.locateFile(e,U):U+e}function p(e,b){if(e){var c=ia;var d=e+b;for(b=e;c[b]&&!(b>=d);)++b;if(16g?d+=String.fromCharCode(g):(g-=65536,d+=String.fromCharCode(55296|g>>10,56320|g&1023))}}else d+=String.fromCharCode(g)}c=d}}else c="";return c}function l(e){va=e;a.HEAP8=W=new Int8Array(e);a.HEAP16=new Int16Array(e);a.HEAP32=ca=new Int32Array(e);a.HEAPU8=ia=new Uint8Array(e);a.HEAPU16=new Uint16Array(e);a.HEAPU32=Y=new Uint32Array(e);a.HEAPF32=new Float32Array(e);a.HEAPF64=new Float64Array(e)}function y(e){if(a.onAbort)a.onAbort(e); -e="Aborted("+e+")";da(e);wa=!0;e=new WebAssembly.RuntimeError(e+". Build with -sASSERTIONS for more info.");na(e);throw e;}function f(e){try{if(e==P&&ea)return new Uint8Array(ea);if(oa)return oa(e);throw"both async and sync fetching of the wasm failed";}catch(b){y(b)}}function q(){if(!ea&&(xa||fa)){if("function"==typeof fetch&&!P.startsWith("file://"))return fetch(P,{credentials:"same-origin"}).then(function(e){if(!e.ok)throw"failed to load wasm binary file at '"+P+"'";return e.arrayBuffer()}).catch(function(){return f(P)}); -if(pa)return new Promise(function(e,b){pa(P,function(c){e(new Uint8Array(c))},b)})}return Promise.resolve().then(function(){return f(P)})}function v(e){for(;0=ja.length&&(ja.length=e+1),ja[e]=b=ya.get(e));return b}function O(e){this.excPtr=e;this.ptr=e-24;this.set_type=function(b){Y[this.ptr+4>>2]=b};this.get_type= -function(){return Y[this.ptr+4>>2]};this.set_destructor=function(b){Y[this.ptr+8>>2]=b};this.get_destructor=function(){return Y[this.ptr+8>>2]};this.set_refcount=function(b){ca[this.ptr>>2]=b};this.set_caught=function(b){W[this.ptr+12>>0]=b?1:0};this.get_caught=function(){return 0!=W[this.ptr+12>>0]};this.set_rethrown=function(b){W[this.ptr+13>>0]=b?1:0};this.get_rethrown=function(){return 0!=W[this.ptr+13>>0]};this.init=function(b,c){this.set_adjusted_ptr(0);this.set_type(b);this.set_destructor(c); -this.set_refcount(0);this.set_caught(!1);this.set_rethrown(!1)};this.add_ref=function(){ca[this.ptr>>2]+=1};this.release_ref=function(){var b=ca[this.ptr>>2];ca[this.ptr>>2]=b-1;return 1===b};this.set_adjusted_ptr=function(b){Y[this.ptr+16>>2]=b};this.get_adjusted_ptr=function(){return Y[this.ptr+16>>2]};this.get_exception_ptr=function(){if(za(this.get_type()))return Y[this.excPtr>>2];var b=this.get_adjusted_ptr();return 0!==b?b:this.excPtr}}function Z(e){function b(){if(!ka&&(ka=!0,a.calledRun=!0, -!wa)){Aa=!0;v(qa);Ba(a);if(a.onRuntimeInitialized)a.onRuntimeInitialized();if(a.postRun)for("function"==typeof a.postRun&&(a.postRun=[a.postRun]);a.postRun.length;)Ca.unshift(a.postRun.shift());v(Ca)}}if(!(0=d&&(d=65536+((d&1023)<<10)|e.charCodeAt(++c)&1023);127>=d?++b:b=2047>=d?b+2:65535>=d?b+3:b+4}b=Array(b+1);c=0;d=b.length;if(0=u){var aa=e.charCodeAt(++g);u=65536+((u&1023)<<10)|aa&1023}if(127>=u){if(c>=d)break; -b[c++]=u}else{if(2047>=u){if(c+1>=d)break;b[c++]=192|u>>6}else{if(65535>=u){if(c+2>=d)break;b[c++]=224|u>>12}else{if(c+3>=d)break;b[c++]=240|u>>18;b[c++]=128|u>>12&63}b[c++]=128|u>>6&63}b[c++]=128|u&63}}b[c]=0}e=r.alloc(b,W);r.copy(b,W,e);return e}return e}function ra(e){if("object"===typeof e){var b=r.alloc(e,W);r.copy(e,W,b);return b}return e}function X(){throw"cannot construct a VoidPtr, no constructor in IDL";}function S(){this.ptr=Ea();x(S)[this.ptr]=this}function Q(){this.ptr=Fa();x(Q)[this.ptr]= -this}function V(){this.ptr=Ga();x(V)[this.ptr]=this}function w(){this.ptr=Ha();x(w)[this.ptr]=this}function C(){this.ptr=Ia();x(C)[this.ptr]=this}function F(){this.ptr=Ja();x(F)[this.ptr]=this}function G(){this.ptr=Ka();x(G)[this.ptr]=this}function E(){this.ptr=La();x(E)[this.ptr]=this}function T(){this.ptr=Ma();x(T)[this.ptr]=this}function B(){throw"cannot construct a Status, no constructor in IDL";}function H(){this.ptr=Na();x(H)[this.ptr]=this}function I(){this.ptr=Oa();x(I)[this.ptr]=this}function J(){this.ptr= -Pa();x(J)[this.ptr]=this}function K(){this.ptr=Qa();x(K)[this.ptr]=this}function L(){this.ptr=Ra();x(L)[this.ptr]=this}function M(){this.ptr=Sa();x(M)[this.ptr]=this}function N(){this.ptr=Ta();x(N)[this.ptr]=this}function z(){this.ptr=Ua();x(z)[this.ptr]=this}function m(){this.ptr=Va();x(m)[this.ptr]=this}n=n||{};var a="undefined"!=typeof n?n:{},Ba,na;a.ready=new Promise(function(e,b){Ba=e;na=b});var Wa=!1,Xa=!1;a.onRuntimeInitialized=function(){Wa=!0;if(Xa&&"function"===typeof a.onModuleLoaded)a.onModuleLoaded(a)}; -a.onModuleParsed=function(){Xa=!0;if(Wa&&"function"===typeof a.onModuleLoaded)a.onModuleLoaded(a)};a.isVersionSupported=function(e){if("string"!==typeof e)return!1;e=e.split(".");return 2>e.length||3=e[1]?!0:0!=e[0]||10>>=0;if(2147483648=c;c*=2){var d=b*(1+.2/c);d=Math.min(d,e+100663296);var g=Math;d=Math.max(e,d);g=g.min.call(g,2147483648,d+(65536-d%65536)%65536);a:{try{ma.grow(g-va.byteLength+65535>>>16);l(ma.buffer);var u=1;break a}catch(aa){}u=void 0}if(u)return!0}return!1}}; -(function(){function e(g,u){a.asm=g.exports;ma=a.asm.f;l(ma.buffer);ya=a.asm.h;qa.unshift(a.asm.g);ba--;a.monitorRunDependencies&&a.monitorRunDependencies(ba);0==ba&&(null!==ta&&(clearInterval(ta),ta=null),ha&&(g=ha,ha=null,g()))}function b(g){e(g.instance)}function c(g){return q().then(function(u){return WebAssembly.instantiate(u,d)}).then(function(u){return u}).then(g,function(u){da("failed to asynchronously prepare wasm: "+u);y(u)})}var d={a:wd};ba++;a.monitorRunDependencies&&a.monitorRunDependencies(ba); -if(a.instantiateWasm)try{return a.instantiateWasm(d,e)}catch(g){return da("Module.instantiateWasm callback failed with error: "+g),!1}(function(){return ea||"function"!=typeof WebAssembly.instantiateStreaming||P.startsWith("data:application/octet-stream;base64,")||P.startsWith("file://")||Za||"function"!=typeof fetch?c(b):fetch(P,{credentials:"same-origin"}).then(function(g){return WebAssembly.instantiateStreaming(g,d).then(b,function(u){da("wasm streaming compile failed: "+u);da("falling back to ArrayBuffer instantiation"); -return c(b)})})})().catch(na);return{}})();a.___wasm_call_ctors=function(){return(a.___wasm_call_ctors=a.asm.g).apply(null,arguments)};var cb=a._emscripten_bind_VoidPtr___destroy___0=function(){return(cb=a._emscripten_bind_VoidPtr___destroy___0=a.asm.i).apply(null,arguments)},Ea=a._emscripten_bind_DecoderBuffer_DecoderBuffer_0=function(){return(Ea=a._emscripten_bind_DecoderBuffer_DecoderBuffer_0=a.asm.j).apply(null,arguments)},db=a._emscripten_bind_DecoderBuffer_Init_2=function(){return(db=a._emscripten_bind_DecoderBuffer_Init_2= -a.asm.k).apply(null,arguments)},eb=a._emscripten_bind_DecoderBuffer___destroy___0=function(){return(eb=a._emscripten_bind_DecoderBuffer___destroy___0=a.asm.l).apply(null,arguments)},Fa=a._emscripten_bind_AttributeTransformData_AttributeTransformData_0=function(){return(Fa=a._emscripten_bind_AttributeTransformData_AttributeTransformData_0=a.asm.m).apply(null,arguments)},fb=a._emscripten_bind_AttributeTransformData_transform_type_0=function(){return(fb=a._emscripten_bind_AttributeTransformData_transform_type_0= -a.asm.n).apply(null,arguments)},gb=a._emscripten_bind_AttributeTransformData___destroy___0=function(){return(gb=a._emscripten_bind_AttributeTransformData___destroy___0=a.asm.o).apply(null,arguments)},Ga=a._emscripten_bind_GeometryAttribute_GeometryAttribute_0=function(){return(Ga=a._emscripten_bind_GeometryAttribute_GeometryAttribute_0=a.asm.p).apply(null,arguments)},hb=a._emscripten_bind_GeometryAttribute___destroy___0=function(){return(hb=a._emscripten_bind_GeometryAttribute___destroy___0=a.asm.q).apply(null, -arguments)},Ha=a._emscripten_bind_PointAttribute_PointAttribute_0=function(){return(Ha=a._emscripten_bind_PointAttribute_PointAttribute_0=a.asm.r).apply(null,arguments)},ib=a._emscripten_bind_PointAttribute_size_0=function(){return(ib=a._emscripten_bind_PointAttribute_size_0=a.asm.s).apply(null,arguments)},jb=a._emscripten_bind_PointAttribute_GetAttributeTransformData_0=function(){return(jb=a._emscripten_bind_PointAttribute_GetAttributeTransformData_0=a.asm.t).apply(null,arguments)},kb=a._emscripten_bind_PointAttribute_attribute_type_0= -function(){return(kb=a._emscripten_bind_PointAttribute_attribute_type_0=a.asm.u).apply(null,arguments)},lb=a._emscripten_bind_PointAttribute_data_type_0=function(){return(lb=a._emscripten_bind_PointAttribute_data_type_0=a.asm.v).apply(null,arguments)},mb=a._emscripten_bind_PointAttribute_num_components_0=function(){return(mb=a._emscripten_bind_PointAttribute_num_components_0=a.asm.w).apply(null,arguments)},nb=a._emscripten_bind_PointAttribute_normalized_0=function(){return(nb=a._emscripten_bind_PointAttribute_normalized_0= -a.asm.x).apply(null,arguments)},ob=a._emscripten_bind_PointAttribute_byte_stride_0=function(){return(ob=a._emscripten_bind_PointAttribute_byte_stride_0=a.asm.y).apply(null,arguments)},pb=a._emscripten_bind_PointAttribute_byte_offset_0=function(){return(pb=a._emscripten_bind_PointAttribute_byte_offset_0=a.asm.z).apply(null,arguments)},qb=a._emscripten_bind_PointAttribute_unique_id_0=function(){return(qb=a._emscripten_bind_PointAttribute_unique_id_0=a.asm.A).apply(null,arguments)},rb=a._emscripten_bind_PointAttribute___destroy___0= -function(){return(rb=a._emscripten_bind_PointAttribute___destroy___0=a.asm.B).apply(null,arguments)},Ia=a._emscripten_bind_AttributeQuantizationTransform_AttributeQuantizationTransform_0=function(){return(Ia=a._emscripten_bind_AttributeQuantizationTransform_AttributeQuantizationTransform_0=a.asm.C).apply(null,arguments)},sb=a._emscripten_bind_AttributeQuantizationTransform_InitFromAttribute_1=function(){return(sb=a._emscripten_bind_AttributeQuantizationTransform_InitFromAttribute_1=a.asm.D).apply(null, -arguments)},tb=a._emscripten_bind_AttributeQuantizationTransform_quantization_bits_0=function(){return(tb=a._emscripten_bind_AttributeQuantizationTransform_quantization_bits_0=a.asm.E).apply(null,arguments)},ub=a._emscripten_bind_AttributeQuantizationTransform_min_value_1=function(){return(ub=a._emscripten_bind_AttributeQuantizationTransform_min_value_1=a.asm.F).apply(null,arguments)},vb=a._emscripten_bind_AttributeQuantizationTransform_range_0=function(){return(vb=a._emscripten_bind_AttributeQuantizationTransform_range_0= -a.asm.G).apply(null,arguments)},wb=a._emscripten_bind_AttributeQuantizationTransform___destroy___0=function(){return(wb=a._emscripten_bind_AttributeQuantizationTransform___destroy___0=a.asm.H).apply(null,arguments)},Ja=a._emscripten_bind_AttributeOctahedronTransform_AttributeOctahedronTransform_0=function(){return(Ja=a._emscripten_bind_AttributeOctahedronTransform_AttributeOctahedronTransform_0=a.asm.I).apply(null,arguments)},xb=a._emscripten_bind_AttributeOctahedronTransform_InitFromAttribute_1= -function(){return(xb=a._emscripten_bind_AttributeOctahedronTransform_InitFromAttribute_1=a.asm.J).apply(null,arguments)},yb=a._emscripten_bind_AttributeOctahedronTransform_quantization_bits_0=function(){return(yb=a._emscripten_bind_AttributeOctahedronTransform_quantization_bits_0=a.asm.K).apply(null,arguments)},zb=a._emscripten_bind_AttributeOctahedronTransform___destroy___0=function(){return(zb=a._emscripten_bind_AttributeOctahedronTransform___destroy___0=a.asm.L).apply(null,arguments)},Ka=a._emscripten_bind_PointCloud_PointCloud_0= -function(){return(Ka=a._emscripten_bind_PointCloud_PointCloud_0=a.asm.M).apply(null,arguments)},Ab=a._emscripten_bind_PointCloud_num_attributes_0=function(){return(Ab=a._emscripten_bind_PointCloud_num_attributes_0=a.asm.N).apply(null,arguments)},Bb=a._emscripten_bind_PointCloud_num_points_0=function(){return(Bb=a._emscripten_bind_PointCloud_num_points_0=a.asm.O).apply(null,arguments)},Cb=a._emscripten_bind_PointCloud___destroy___0=function(){return(Cb=a._emscripten_bind_PointCloud___destroy___0=a.asm.P).apply(null, -arguments)},La=a._emscripten_bind_Mesh_Mesh_0=function(){return(La=a._emscripten_bind_Mesh_Mesh_0=a.asm.Q).apply(null,arguments)},Db=a._emscripten_bind_Mesh_num_faces_0=function(){return(Db=a._emscripten_bind_Mesh_num_faces_0=a.asm.R).apply(null,arguments)},Eb=a._emscripten_bind_Mesh_num_attributes_0=function(){return(Eb=a._emscripten_bind_Mesh_num_attributes_0=a.asm.S).apply(null,arguments)},Fb=a._emscripten_bind_Mesh_num_points_0=function(){return(Fb=a._emscripten_bind_Mesh_num_points_0=a.asm.T).apply(null, -arguments)},Gb=a._emscripten_bind_Mesh___destroy___0=function(){return(Gb=a._emscripten_bind_Mesh___destroy___0=a.asm.U).apply(null,arguments)},Ma=a._emscripten_bind_Metadata_Metadata_0=function(){return(Ma=a._emscripten_bind_Metadata_Metadata_0=a.asm.V).apply(null,arguments)},Hb=a._emscripten_bind_Metadata___destroy___0=function(){return(Hb=a._emscripten_bind_Metadata___destroy___0=a.asm.W).apply(null,arguments)},Ib=a._emscripten_bind_Status_code_0=function(){return(Ib=a._emscripten_bind_Status_code_0= -a.asm.X).apply(null,arguments)},Jb=a._emscripten_bind_Status_ok_0=function(){return(Jb=a._emscripten_bind_Status_ok_0=a.asm.Y).apply(null,arguments)},Kb=a._emscripten_bind_Status_error_msg_0=function(){return(Kb=a._emscripten_bind_Status_error_msg_0=a.asm.Z).apply(null,arguments)},Lb=a._emscripten_bind_Status___destroy___0=function(){return(Lb=a._emscripten_bind_Status___destroy___0=a.asm._).apply(null,arguments)},Na=a._emscripten_bind_DracoFloat32Array_DracoFloat32Array_0=function(){return(Na=a._emscripten_bind_DracoFloat32Array_DracoFloat32Array_0= -a.asm.$).apply(null,arguments)},Mb=a._emscripten_bind_DracoFloat32Array_GetValue_1=function(){return(Mb=a._emscripten_bind_DracoFloat32Array_GetValue_1=a.asm.aa).apply(null,arguments)},Nb=a._emscripten_bind_DracoFloat32Array_size_0=function(){return(Nb=a._emscripten_bind_DracoFloat32Array_size_0=a.asm.ba).apply(null,arguments)},Ob=a._emscripten_bind_DracoFloat32Array___destroy___0=function(){return(Ob=a._emscripten_bind_DracoFloat32Array___destroy___0=a.asm.ca).apply(null,arguments)},Oa=a._emscripten_bind_DracoInt8Array_DracoInt8Array_0= -function(){return(Oa=a._emscripten_bind_DracoInt8Array_DracoInt8Array_0=a.asm.da).apply(null,arguments)},Pb=a._emscripten_bind_DracoInt8Array_GetValue_1=function(){return(Pb=a._emscripten_bind_DracoInt8Array_GetValue_1=a.asm.ea).apply(null,arguments)},Qb=a._emscripten_bind_DracoInt8Array_size_0=function(){return(Qb=a._emscripten_bind_DracoInt8Array_size_0=a.asm.fa).apply(null,arguments)},Rb=a._emscripten_bind_DracoInt8Array___destroy___0=function(){return(Rb=a._emscripten_bind_DracoInt8Array___destroy___0= -a.asm.ga).apply(null,arguments)},Pa=a._emscripten_bind_DracoUInt8Array_DracoUInt8Array_0=function(){return(Pa=a._emscripten_bind_DracoUInt8Array_DracoUInt8Array_0=a.asm.ha).apply(null,arguments)},Sb=a._emscripten_bind_DracoUInt8Array_GetValue_1=function(){return(Sb=a._emscripten_bind_DracoUInt8Array_GetValue_1=a.asm.ia).apply(null,arguments)},Tb=a._emscripten_bind_DracoUInt8Array_size_0=function(){return(Tb=a._emscripten_bind_DracoUInt8Array_size_0=a.asm.ja).apply(null,arguments)},Ub=a._emscripten_bind_DracoUInt8Array___destroy___0= -function(){return(Ub=a._emscripten_bind_DracoUInt8Array___destroy___0=a.asm.ka).apply(null,arguments)},Qa=a._emscripten_bind_DracoInt16Array_DracoInt16Array_0=function(){return(Qa=a._emscripten_bind_DracoInt16Array_DracoInt16Array_0=a.asm.la).apply(null,arguments)},Vb=a._emscripten_bind_DracoInt16Array_GetValue_1=function(){return(Vb=a._emscripten_bind_DracoInt16Array_GetValue_1=a.asm.ma).apply(null,arguments)},Wb=a._emscripten_bind_DracoInt16Array_size_0=function(){return(Wb=a._emscripten_bind_DracoInt16Array_size_0= -a.asm.na).apply(null,arguments)},Xb=a._emscripten_bind_DracoInt16Array___destroy___0=function(){return(Xb=a._emscripten_bind_DracoInt16Array___destroy___0=a.asm.oa).apply(null,arguments)},Ra=a._emscripten_bind_DracoUInt16Array_DracoUInt16Array_0=function(){return(Ra=a._emscripten_bind_DracoUInt16Array_DracoUInt16Array_0=a.asm.pa).apply(null,arguments)},Yb=a._emscripten_bind_DracoUInt16Array_GetValue_1=function(){return(Yb=a._emscripten_bind_DracoUInt16Array_GetValue_1=a.asm.qa).apply(null,arguments)}, -Zb=a._emscripten_bind_DracoUInt16Array_size_0=function(){return(Zb=a._emscripten_bind_DracoUInt16Array_size_0=a.asm.ra).apply(null,arguments)},$b=a._emscripten_bind_DracoUInt16Array___destroy___0=function(){return($b=a._emscripten_bind_DracoUInt16Array___destroy___0=a.asm.sa).apply(null,arguments)},Sa=a._emscripten_bind_DracoInt32Array_DracoInt32Array_0=function(){return(Sa=a._emscripten_bind_DracoInt32Array_DracoInt32Array_0=a.asm.ta).apply(null,arguments)},ac=a._emscripten_bind_DracoInt32Array_GetValue_1= -function(){return(ac=a._emscripten_bind_DracoInt32Array_GetValue_1=a.asm.ua).apply(null,arguments)},bc=a._emscripten_bind_DracoInt32Array_size_0=function(){return(bc=a._emscripten_bind_DracoInt32Array_size_0=a.asm.va).apply(null,arguments)},cc=a._emscripten_bind_DracoInt32Array___destroy___0=function(){return(cc=a._emscripten_bind_DracoInt32Array___destroy___0=a.asm.wa).apply(null,arguments)},Ta=a._emscripten_bind_DracoUInt32Array_DracoUInt32Array_0=function(){return(Ta=a._emscripten_bind_DracoUInt32Array_DracoUInt32Array_0= -a.asm.xa).apply(null,arguments)},dc=a._emscripten_bind_DracoUInt32Array_GetValue_1=function(){return(dc=a._emscripten_bind_DracoUInt32Array_GetValue_1=a.asm.ya).apply(null,arguments)},ec=a._emscripten_bind_DracoUInt32Array_size_0=function(){return(ec=a._emscripten_bind_DracoUInt32Array_size_0=a.asm.za).apply(null,arguments)},fc=a._emscripten_bind_DracoUInt32Array___destroy___0=function(){return(fc=a._emscripten_bind_DracoUInt32Array___destroy___0=a.asm.Aa).apply(null,arguments)},Ua=a._emscripten_bind_MetadataQuerier_MetadataQuerier_0= -function(){return(Ua=a._emscripten_bind_MetadataQuerier_MetadataQuerier_0=a.asm.Ba).apply(null,arguments)},gc=a._emscripten_bind_MetadataQuerier_HasEntry_2=function(){return(gc=a._emscripten_bind_MetadataQuerier_HasEntry_2=a.asm.Ca).apply(null,arguments)},hc=a._emscripten_bind_MetadataQuerier_GetIntEntry_2=function(){return(hc=a._emscripten_bind_MetadataQuerier_GetIntEntry_2=a.asm.Da).apply(null,arguments)},ic=a._emscripten_bind_MetadataQuerier_GetIntEntryArray_3=function(){return(ic=a._emscripten_bind_MetadataQuerier_GetIntEntryArray_3= -a.asm.Ea).apply(null,arguments)},jc=a._emscripten_bind_MetadataQuerier_GetDoubleEntry_2=function(){return(jc=a._emscripten_bind_MetadataQuerier_GetDoubleEntry_2=a.asm.Fa).apply(null,arguments)},kc=a._emscripten_bind_MetadataQuerier_GetStringEntry_2=function(){return(kc=a._emscripten_bind_MetadataQuerier_GetStringEntry_2=a.asm.Ga).apply(null,arguments)},lc=a._emscripten_bind_MetadataQuerier_NumEntries_1=function(){return(lc=a._emscripten_bind_MetadataQuerier_NumEntries_1=a.asm.Ha).apply(null,arguments)}, -mc=a._emscripten_bind_MetadataQuerier_GetEntryName_2=function(){return(mc=a._emscripten_bind_MetadataQuerier_GetEntryName_2=a.asm.Ia).apply(null,arguments)},nc=a._emscripten_bind_MetadataQuerier___destroy___0=function(){return(nc=a._emscripten_bind_MetadataQuerier___destroy___0=a.asm.Ja).apply(null,arguments)},Va=a._emscripten_bind_Decoder_Decoder_0=function(){return(Va=a._emscripten_bind_Decoder_Decoder_0=a.asm.Ka).apply(null,arguments)},oc=a._emscripten_bind_Decoder_DecodeArrayToPointCloud_3=function(){return(oc= -a._emscripten_bind_Decoder_DecodeArrayToPointCloud_3=a.asm.La).apply(null,arguments)},pc=a._emscripten_bind_Decoder_DecodeArrayToMesh_3=function(){return(pc=a._emscripten_bind_Decoder_DecodeArrayToMesh_3=a.asm.Ma).apply(null,arguments)},qc=a._emscripten_bind_Decoder_GetAttributeId_2=function(){return(qc=a._emscripten_bind_Decoder_GetAttributeId_2=a.asm.Na).apply(null,arguments)},rc=a._emscripten_bind_Decoder_GetAttributeIdByName_2=function(){return(rc=a._emscripten_bind_Decoder_GetAttributeIdByName_2= -a.asm.Oa).apply(null,arguments)},sc=a._emscripten_bind_Decoder_GetAttributeIdByMetadataEntry_3=function(){return(sc=a._emscripten_bind_Decoder_GetAttributeIdByMetadataEntry_3=a.asm.Pa).apply(null,arguments)},tc=a._emscripten_bind_Decoder_GetAttribute_2=function(){return(tc=a._emscripten_bind_Decoder_GetAttribute_2=a.asm.Qa).apply(null,arguments)},uc=a._emscripten_bind_Decoder_GetAttributeByUniqueId_2=function(){return(uc=a._emscripten_bind_Decoder_GetAttributeByUniqueId_2=a.asm.Ra).apply(null,arguments)}, -vc=a._emscripten_bind_Decoder_GetMetadata_1=function(){return(vc=a._emscripten_bind_Decoder_GetMetadata_1=a.asm.Sa).apply(null,arguments)},wc=a._emscripten_bind_Decoder_GetAttributeMetadata_2=function(){return(wc=a._emscripten_bind_Decoder_GetAttributeMetadata_2=a.asm.Ta).apply(null,arguments)},xc=a._emscripten_bind_Decoder_GetFaceFromMesh_3=function(){return(xc=a._emscripten_bind_Decoder_GetFaceFromMesh_3=a.asm.Ua).apply(null,arguments)},yc=a._emscripten_bind_Decoder_GetTriangleStripsFromMesh_2= -function(){return(yc=a._emscripten_bind_Decoder_GetTriangleStripsFromMesh_2=a.asm.Va).apply(null,arguments)},zc=a._emscripten_bind_Decoder_GetTrianglesUInt16Array_3=function(){return(zc=a._emscripten_bind_Decoder_GetTrianglesUInt16Array_3=a.asm.Wa).apply(null,arguments)},Ac=a._emscripten_bind_Decoder_GetTrianglesUInt32Array_3=function(){return(Ac=a._emscripten_bind_Decoder_GetTrianglesUInt32Array_3=a.asm.Xa).apply(null,arguments)},Bc=a._emscripten_bind_Decoder_GetAttributeFloat_3=function(){return(Bc= -a._emscripten_bind_Decoder_GetAttributeFloat_3=a.asm.Ya).apply(null,arguments)},Cc=a._emscripten_bind_Decoder_GetAttributeFloatForAllPoints_3=function(){return(Cc=a._emscripten_bind_Decoder_GetAttributeFloatForAllPoints_3=a.asm.Za).apply(null,arguments)},Dc=a._emscripten_bind_Decoder_GetAttributeIntForAllPoints_3=function(){return(Dc=a._emscripten_bind_Decoder_GetAttributeIntForAllPoints_3=a.asm._a).apply(null,arguments)},Ec=a._emscripten_bind_Decoder_GetAttributeInt8ForAllPoints_3=function(){return(Ec= -a._emscripten_bind_Decoder_GetAttributeInt8ForAllPoints_3=a.asm.$a).apply(null,arguments)},Fc=a._emscripten_bind_Decoder_GetAttributeUInt8ForAllPoints_3=function(){return(Fc=a._emscripten_bind_Decoder_GetAttributeUInt8ForAllPoints_3=a.asm.ab).apply(null,arguments)},Gc=a._emscripten_bind_Decoder_GetAttributeInt16ForAllPoints_3=function(){return(Gc=a._emscripten_bind_Decoder_GetAttributeInt16ForAllPoints_3=a.asm.bb).apply(null,arguments)},Hc=a._emscripten_bind_Decoder_GetAttributeUInt16ForAllPoints_3= -function(){return(Hc=a._emscripten_bind_Decoder_GetAttributeUInt16ForAllPoints_3=a.asm.cb).apply(null,arguments)},Ic=a._emscripten_bind_Decoder_GetAttributeInt32ForAllPoints_3=function(){return(Ic=a._emscripten_bind_Decoder_GetAttributeInt32ForAllPoints_3=a.asm.db).apply(null,arguments)},Jc=a._emscripten_bind_Decoder_GetAttributeUInt32ForAllPoints_3=function(){return(Jc=a._emscripten_bind_Decoder_GetAttributeUInt32ForAllPoints_3=a.asm.eb).apply(null,arguments)},Kc=a._emscripten_bind_Decoder_GetAttributeDataArrayForAllPoints_5= -function(){return(Kc=a._emscripten_bind_Decoder_GetAttributeDataArrayForAllPoints_5=a.asm.fb).apply(null,arguments)},Lc=a._emscripten_bind_Decoder_SkipAttributeTransform_1=function(){return(Lc=a._emscripten_bind_Decoder_SkipAttributeTransform_1=a.asm.gb).apply(null,arguments)},Mc=a._emscripten_bind_Decoder_GetEncodedGeometryType_Deprecated_1=function(){return(Mc=a._emscripten_bind_Decoder_GetEncodedGeometryType_Deprecated_1=a.asm.hb).apply(null,arguments)},Nc=a._emscripten_bind_Decoder_DecodeBufferToPointCloud_2= -function(){return(Nc=a._emscripten_bind_Decoder_DecodeBufferToPointCloud_2=a.asm.ib).apply(null,arguments)},Oc=a._emscripten_bind_Decoder_DecodeBufferToMesh_2=function(){return(Oc=a._emscripten_bind_Decoder_DecodeBufferToMesh_2=a.asm.jb).apply(null,arguments)},Pc=a._emscripten_bind_Decoder___destroy___0=function(){return(Pc=a._emscripten_bind_Decoder___destroy___0=a.asm.kb).apply(null,arguments)},Qc=a._emscripten_enum_draco_AttributeTransformType_ATTRIBUTE_INVALID_TRANSFORM=function(){return(Qc=a._emscripten_enum_draco_AttributeTransformType_ATTRIBUTE_INVALID_TRANSFORM= -a.asm.lb).apply(null,arguments)},Rc=a._emscripten_enum_draco_AttributeTransformType_ATTRIBUTE_NO_TRANSFORM=function(){return(Rc=a._emscripten_enum_draco_AttributeTransformType_ATTRIBUTE_NO_TRANSFORM=a.asm.mb).apply(null,arguments)},Sc=a._emscripten_enum_draco_AttributeTransformType_ATTRIBUTE_QUANTIZATION_TRANSFORM=function(){return(Sc=a._emscripten_enum_draco_AttributeTransformType_ATTRIBUTE_QUANTIZATION_TRANSFORM=a.asm.nb).apply(null,arguments)},Tc=a._emscripten_enum_draco_AttributeTransformType_ATTRIBUTE_OCTAHEDRON_TRANSFORM= -function(){return(Tc=a._emscripten_enum_draco_AttributeTransformType_ATTRIBUTE_OCTAHEDRON_TRANSFORM=a.asm.ob).apply(null,arguments)},Uc=a._emscripten_enum_draco_GeometryAttribute_Type_INVALID=function(){return(Uc=a._emscripten_enum_draco_GeometryAttribute_Type_INVALID=a.asm.pb).apply(null,arguments)},Vc=a._emscripten_enum_draco_GeometryAttribute_Type_POSITION=function(){return(Vc=a._emscripten_enum_draco_GeometryAttribute_Type_POSITION=a.asm.qb).apply(null,arguments)},Wc=a._emscripten_enum_draco_GeometryAttribute_Type_NORMAL= -function(){return(Wc=a._emscripten_enum_draco_GeometryAttribute_Type_NORMAL=a.asm.rb).apply(null,arguments)},Xc=a._emscripten_enum_draco_GeometryAttribute_Type_COLOR=function(){return(Xc=a._emscripten_enum_draco_GeometryAttribute_Type_COLOR=a.asm.sb).apply(null,arguments)},Yc=a._emscripten_enum_draco_GeometryAttribute_Type_TEX_COORD=function(){return(Yc=a._emscripten_enum_draco_GeometryAttribute_Type_TEX_COORD=a.asm.tb).apply(null,arguments)},Zc=a._emscripten_enum_draco_GeometryAttribute_Type_GENERIC= -function(){return(Zc=a._emscripten_enum_draco_GeometryAttribute_Type_GENERIC=a.asm.ub).apply(null,arguments)},$c=a._emscripten_enum_draco_EncodedGeometryType_INVALID_GEOMETRY_TYPE=function(){return($c=a._emscripten_enum_draco_EncodedGeometryType_INVALID_GEOMETRY_TYPE=a.asm.vb).apply(null,arguments)},ad=a._emscripten_enum_draco_EncodedGeometryType_POINT_CLOUD=function(){return(ad=a._emscripten_enum_draco_EncodedGeometryType_POINT_CLOUD=a.asm.wb).apply(null,arguments)},bd=a._emscripten_enum_draco_EncodedGeometryType_TRIANGULAR_MESH= -function(){return(bd=a._emscripten_enum_draco_EncodedGeometryType_TRIANGULAR_MESH=a.asm.xb).apply(null,arguments)},cd=a._emscripten_enum_draco_DataType_DT_INVALID=function(){return(cd=a._emscripten_enum_draco_DataType_DT_INVALID=a.asm.yb).apply(null,arguments)},dd=a._emscripten_enum_draco_DataType_DT_INT8=function(){return(dd=a._emscripten_enum_draco_DataType_DT_INT8=a.asm.zb).apply(null,arguments)},ed=a._emscripten_enum_draco_DataType_DT_UINT8=function(){return(ed=a._emscripten_enum_draco_DataType_DT_UINT8= -a.asm.Ab).apply(null,arguments)},fd=a._emscripten_enum_draco_DataType_DT_INT16=function(){return(fd=a._emscripten_enum_draco_DataType_DT_INT16=a.asm.Bb).apply(null,arguments)},gd=a._emscripten_enum_draco_DataType_DT_UINT16=function(){return(gd=a._emscripten_enum_draco_DataType_DT_UINT16=a.asm.Cb).apply(null,arguments)},hd=a._emscripten_enum_draco_DataType_DT_INT32=function(){return(hd=a._emscripten_enum_draco_DataType_DT_INT32=a.asm.Db).apply(null,arguments)},id=a._emscripten_enum_draco_DataType_DT_UINT32= -function(){return(id=a._emscripten_enum_draco_DataType_DT_UINT32=a.asm.Eb).apply(null,arguments)},jd=a._emscripten_enum_draco_DataType_DT_INT64=function(){return(jd=a._emscripten_enum_draco_DataType_DT_INT64=a.asm.Fb).apply(null,arguments)},kd=a._emscripten_enum_draco_DataType_DT_UINT64=function(){return(kd=a._emscripten_enum_draco_DataType_DT_UINT64=a.asm.Gb).apply(null,arguments)},ld=a._emscripten_enum_draco_DataType_DT_FLOAT32=function(){return(ld=a._emscripten_enum_draco_DataType_DT_FLOAT32=a.asm.Hb).apply(null, -arguments)},md=a._emscripten_enum_draco_DataType_DT_FLOAT64=function(){return(md=a._emscripten_enum_draco_DataType_DT_FLOAT64=a.asm.Ib).apply(null,arguments)},nd=a._emscripten_enum_draco_DataType_DT_BOOL=function(){return(nd=a._emscripten_enum_draco_DataType_DT_BOOL=a.asm.Jb).apply(null,arguments)},od=a._emscripten_enum_draco_DataType_DT_TYPES_COUNT=function(){return(od=a._emscripten_enum_draco_DataType_DT_TYPES_COUNT=a.asm.Kb).apply(null,arguments)},pd=a._emscripten_enum_draco_StatusCode_OK=function(){return(pd= -a._emscripten_enum_draco_StatusCode_OK=a.asm.Lb).apply(null,arguments)},qd=a._emscripten_enum_draco_StatusCode_DRACO_ERROR=function(){return(qd=a._emscripten_enum_draco_StatusCode_DRACO_ERROR=a.asm.Mb).apply(null,arguments)},rd=a._emscripten_enum_draco_StatusCode_IO_ERROR=function(){return(rd=a._emscripten_enum_draco_StatusCode_IO_ERROR=a.asm.Nb).apply(null,arguments)},sd=a._emscripten_enum_draco_StatusCode_INVALID_PARAMETER=function(){return(sd=a._emscripten_enum_draco_StatusCode_INVALID_PARAMETER= -a.asm.Ob).apply(null,arguments)},td=a._emscripten_enum_draco_StatusCode_UNSUPPORTED_VERSION=function(){return(td=a._emscripten_enum_draco_StatusCode_UNSUPPORTED_VERSION=a.asm.Pb).apply(null,arguments)},ud=a._emscripten_enum_draco_StatusCode_UNKNOWN_VERSION=function(){return(ud=a._emscripten_enum_draco_StatusCode_UNKNOWN_VERSION=a.asm.Qb).apply(null,arguments)},bb=a._malloc=function(){return(bb=a._malloc=a.asm.Rb).apply(null,arguments)};a._free=function(){return(a._free=a.asm.Sb).apply(null,arguments)}; -var za=a.___cxa_is_pointer_type=function(){return(za=a.___cxa_is_pointer_type=a.asm.Tb).apply(null,arguments)},ka;ha=function b(){ka||Z();ka||(ha=b)};a.run=Z;if(a.preInit)for("function"==typeof a.preInit&&(a.preInit=[a.preInit]);0=r.size?(0>>=0;switch(c.BYTES_PER_ELEMENT){case 2:d>>>=1;break;case 4:d>>>=2;break;case 8:d>>>=3}for(var g=0;gb.byteLength)return a.INVALID_GEOMETRY_TYPE;switch(b[7]){case 0:return a.POINT_CLOUD;case 1:return a.TRIANGULAR_MESH;default:return a.INVALID_GEOMETRY_TYPE}};return n.ready}}(); -"object"===typeof exports&&"object"===typeof module?module.exports=DracoDecoderModule:"function"===typeof define&&define.amd?define([],function(){return DracoDecoderModule}):"object"===typeof exports&&(exports.DracoDecoderModule=DracoDecoderModule); +var DracoDecoderModule=function(){var h="undefined"!==typeof document&&document.currentScript?document.currentScript.src:void 0;"undefined"!==typeof __filename&&(h=h||__filename);return function(n){function k(e){return a.locateFile?a.locateFile(e,U):U+e}function p(e,b){if(e){var c=ia;var d=e+b;for(b=e;c[b]&&!(b>=d);)++b;if(16g?d+=String.fromCharCode(g):(g-=65536,d+=String.fromCharCode(55296|g>>10,56320|g&1023))}}else d+=String.fromCharCode(g)}c=d}}else c="";return c}function l(e){ra=e;a.HEAP8=W=new Int8Array(e);a.HEAP16=new Int16Array(e);a.HEAP32=ca=new Int32Array(e);a.HEAPU8=ia=new Uint8Array(e);a.HEAPU16=new Uint16Array(e);a.HEAPU32=Y=new Uint32Array(e);a.HEAPF32=new Float32Array(e);a.HEAPF64=new Float64Array(e)}function y(e){if(a.onAbort)a.onAbort(e); +e="Aborted("+e+")";da(e);sa=!0;e=new WebAssembly.RuntimeError(e+". Build with -sASSERTIONS for more info.");ja(e);throw e;}function f(e){try{if(e==P&&ea)return new Uint8Array(ea);if(ma)return ma(e);throw"both async and sync fetching of the wasm failed";}catch(b){y(b)}}function q(){if(!ea&&(ta||fa)){if("function"==typeof fetch&&!P.startsWith("file://"))return fetch(P,{credentials:"same-origin"}).then(function(e){if(!e.ok)throw"failed to load wasm binary file at '"+P+"'";return e.arrayBuffer()}).catch(function(){return f(P)}); +if(na)return new Promise(function(e,b){na(P,function(c){e(new Uint8Array(c))},b)})}return Promise.resolve().then(function(){return f(P)})}function u(e){for(;0>2]=b};this.get_type=function(){return Y[this.ptr+4>>2]};this.set_destructor=function(b){Y[this.ptr+8>>2]=b};this.get_destructor=function(){return Y[this.ptr+8>>2]};this.set_refcount=function(b){ca[this.ptr>>2]=b};this.set_caught=function(b){W[this.ptr+ +12>>0]=b?1:0};this.get_caught=function(){return 0!=W[this.ptr+12>>0]};this.set_rethrown=function(b){W[this.ptr+13>>0]=b?1:0};this.get_rethrown=function(){return 0!=W[this.ptr+13>>0]};this.init=function(b,c){this.set_adjusted_ptr(0);this.set_type(b);this.set_destructor(c);this.set_refcount(0);this.set_caught(!1);this.set_rethrown(!1)};this.add_ref=function(){ca[this.ptr>>2]+=1};this.release_ref=function(){var b=ca[this.ptr>>2];ca[this.ptr>>2]=b-1;return 1===b};this.set_adjusted_ptr=function(b){Y[this.ptr+ +16>>2]=b};this.get_adjusted_ptr=function(){return Y[this.ptr+16>>2]};this.get_exception_ptr=function(){if(ua(this.get_type()))return Y[this.excPtr>>2];var b=this.get_adjusted_ptr();return 0!==b?b:this.excPtr}}function F(e){function b(){if(!ka&&(ka=!0,a.calledRun=!0,!sa)){va=!0;u(oa);wa(a);if(a.onRuntimeInitialized)a.onRuntimeInitialized();if(a.postRun)for("function"==typeof a.postRun&&(a.postRun=[a.postRun]);a.postRun.length;)xa.unshift(a.postRun.shift());u(xa)}}if(!(0=d?b++:2047>=d?b+=2:55296<=d&&57343>= +d?(b+=4,++c):b+=3}b=Array(b+1);c=0;d=b.length;if(0=t){var aa=e.charCodeAt(++g);t=65536+((t&1023)<<10)|aa&1023}if(127>=t){if(c>=d)break;b[c++]=t}else{if(2047>=t){if(c+1>=d)break;b[c++]=192|t>>6}else{if(65535>=t){if(c+2>=d)break;b[c++]=224|t>>12}else{if(c+3>=d)break;b[c++]=240|t>>18;b[c++]=128|t>>12&63}b[c++]=128|t>>6&63}b[c++]=128|t&63}}b[c]=0}e=r.alloc(b,W);r.copy(b,W,e);return e}return e}function Z(e){if("object"=== +typeof e){var b=r.alloc(e,W);r.copy(e,W,b);return b}return e}function X(){throw"cannot construct a VoidPtr, no constructor in IDL";}function S(){this.ptr=za();w(S)[this.ptr]=this}function Q(){this.ptr=Aa();w(Q)[this.ptr]=this}function V(){this.ptr=Ba();w(V)[this.ptr]=this}function x(){this.ptr=Ca();w(x)[this.ptr]=this}function D(){this.ptr=Da();w(D)[this.ptr]=this}function G(){this.ptr=Ea();w(G)[this.ptr]=this}function H(){this.ptr=Fa();w(H)[this.ptr]=this}function E(){this.ptr=Ga();w(E)[this.ptr]= +this}function T(){this.ptr=Ha();w(T)[this.ptr]=this}function C(){throw"cannot construct a Status, no constructor in IDL";}function I(){this.ptr=Ia();w(I)[this.ptr]=this}function J(){this.ptr=Ja();w(J)[this.ptr]=this}function K(){this.ptr=Ka();w(K)[this.ptr]=this}function L(){this.ptr=La();w(L)[this.ptr]=this}function M(){this.ptr=Ma();w(M)[this.ptr]=this}function N(){this.ptr=Na();w(N)[this.ptr]=this}function O(){this.ptr=Oa();w(O)[this.ptr]=this}function z(){this.ptr=Pa();w(z)[this.ptr]=this}function m(){this.ptr= +Qa();w(m)[this.ptr]=this}n=n||{};var a="undefined"!=typeof n?n:{},wa,ja;a.ready=new Promise(function(e,b){wa=e;ja=b});var Ra=!1,Sa=!1;a.onRuntimeInitialized=function(){Ra=!0;if(Sa&&"function"===typeof a.onModuleLoaded)a.onModuleLoaded(a)};a.onModuleParsed=function(){Sa=!0;if(Ra&&"function"===typeof a.onModuleLoaded)a.onModuleLoaded(a)};a.isVersionSupported=function(e){if("string"!==typeof e)return!1;e=e.split(".");return 2>e.length||3=e[1]?!0:0!=e[0]||10>>=0;if(2147483648=c;c*=2){var d=b*(1+.2/c);d=Math.min(d,e+100663296);var g=Math;d=Math.max(e,d);g=g.min.call(g,2147483648,d+(65536-d%65536)%65536);a:{try{la.grow(g-ra.byteLength+65535>>>16);l(la.buffer);var t=1;break a}catch(aa){}t=void 0}if(t)return!0}return!1}};(function(){function e(g,t){a.asm=g.exports;la=a.asm.f;l(la.buffer);oa.unshift(a.asm.g);ba--;a.monitorRunDependencies&&a.monitorRunDependencies(ba);0==ba&&(null!==pa&&(clearInterval(pa),pa=null),ha&&(g=ha,ha=null,g()))}function b(g){e(g.instance)}function c(g){return q().then(function(t){return WebAssembly.instantiate(t, +d)}).then(function(t){return t}).then(g,function(t){da("failed to asynchronously prepare wasm: "+t);y(t)})}var d={a:sd};ba++;a.monitorRunDependencies&&a.monitorRunDependencies(ba);if(a.instantiateWasm)try{return a.instantiateWasm(d,e)}catch(g){da("Module.instantiateWasm callback failed with error: "+g),ja(g)}(function(){return ea||"function"!=typeof WebAssembly.instantiateStreaming||P.startsWith("data:application/octet-stream;base64,")||P.startsWith("file://")||Ua||"function"!=typeof fetch?c(b):fetch(P, +{credentials:"same-origin"}).then(function(g){return WebAssembly.instantiateStreaming(g,d).then(b,function(t){da("wasm streaming compile failed: "+t);da("falling back to ArrayBuffer instantiation");return c(b)})})})().catch(ja);return{}})();a.___wasm_call_ctors=function(){return(a.___wasm_call_ctors=a.asm.g).apply(null,arguments)};var Za=a._emscripten_bind_VoidPtr___destroy___0=function(){return(Za=a._emscripten_bind_VoidPtr___destroy___0=a.asm.i).apply(null,arguments)},za=a._emscripten_bind_DecoderBuffer_DecoderBuffer_0= +function(){return(za=a._emscripten_bind_DecoderBuffer_DecoderBuffer_0=a.asm.j).apply(null,arguments)},$a=a._emscripten_bind_DecoderBuffer_Init_2=function(){return($a=a._emscripten_bind_DecoderBuffer_Init_2=a.asm.k).apply(null,arguments)},ab=a._emscripten_bind_DecoderBuffer___destroy___0=function(){return(ab=a._emscripten_bind_DecoderBuffer___destroy___0=a.asm.l).apply(null,arguments)},Aa=a._emscripten_bind_AttributeTransformData_AttributeTransformData_0=function(){return(Aa=a._emscripten_bind_AttributeTransformData_AttributeTransformData_0= +a.asm.m).apply(null,arguments)},bb=a._emscripten_bind_AttributeTransformData_transform_type_0=function(){return(bb=a._emscripten_bind_AttributeTransformData_transform_type_0=a.asm.n).apply(null,arguments)},cb=a._emscripten_bind_AttributeTransformData___destroy___0=function(){return(cb=a._emscripten_bind_AttributeTransformData___destroy___0=a.asm.o).apply(null,arguments)},Ba=a._emscripten_bind_GeometryAttribute_GeometryAttribute_0=function(){return(Ba=a._emscripten_bind_GeometryAttribute_GeometryAttribute_0= +a.asm.p).apply(null,arguments)},db=a._emscripten_bind_GeometryAttribute___destroy___0=function(){return(db=a._emscripten_bind_GeometryAttribute___destroy___0=a.asm.q).apply(null,arguments)},Ca=a._emscripten_bind_PointAttribute_PointAttribute_0=function(){return(Ca=a._emscripten_bind_PointAttribute_PointAttribute_0=a.asm.r).apply(null,arguments)},eb=a._emscripten_bind_PointAttribute_size_0=function(){return(eb=a._emscripten_bind_PointAttribute_size_0=a.asm.s).apply(null,arguments)},fb=a._emscripten_bind_PointAttribute_GetAttributeTransformData_0= +function(){return(fb=a._emscripten_bind_PointAttribute_GetAttributeTransformData_0=a.asm.t).apply(null,arguments)},gb=a._emscripten_bind_PointAttribute_attribute_type_0=function(){return(gb=a._emscripten_bind_PointAttribute_attribute_type_0=a.asm.u).apply(null,arguments)},hb=a._emscripten_bind_PointAttribute_data_type_0=function(){return(hb=a._emscripten_bind_PointAttribute_data_type_0=a.asm.v).apply(null,arguments)},ib=a._emscripten_bind_PointAttribute_num_components_0=function(){return(ib=a._emscripten_bind_PointAttribute_num_components_0= +a.asm.w).apply(null,arguments)},jb=a._emscripten_bind_PointAttribute_normalized_0=function(){return(jb=a._emscripten_bind_PointAttribute_normalized_0=a.asm.x).apply(null,arguments)},kb=a._emscripten_bind_PointAttribute_byte_stride_0=function(){return(kb=a._emscripten_bind_PointAttribute_byte_stride_0=a.asm.y).apply(null,arguments)},lb=a._emscripten_bind_PointAttribute_byte_offset_0=function(){return(lb=a._emscripten_bind_PointAttribute_byte_offset_0=a.asm.z).apply(null,arguments)},mb=a._emscripten_bind_PointAttribute_unique_id_0= +function(){return(mb=a._emscripten_bind_PointAttribute_unique_id_0=a.asm.A).apply(null,arguments)},nb=a._emscripten_bind_PointAttribute___destroy___0=function(){return(nb=a._emscripten_bind_PointAttribute___destroy___0=a.asm.B).apply(null,arguments)},Da=a._emscripten_bind_AttributeQuantizationTransform_AttributeQuantizationTransform_0=function(){return(Da=a._emscripten_bind_AttributeQuantizationTransform_AttributeQuantizationTransform_0=a.asm.C).apply(null,arguments)},ob=a._emscripten_bind_AttributeQuantizationTransform_InitFromAttribute_1= +function(){return(ob=a._emscripten_bind_AttributeQuantizationTransform_InitFromAttribute_1=a.asm.D).apply(null,arguments)},pb=a._emscripten_bind_AttributeQuantizationTransform_quantization_bits_0=function(){return(pb=a._emscripten_bind_AttributeQuantizationTransform_quantization_bits_0=a.asm.E).apply(null,arguments)},qb=a._emscripten_bind_AttributeQuantizationTransform_min_value_1=function(){return(qb=a._emscripten_bind_AttributeQuantizationTransform_min_value_1=a.asm.F).apply(null,arguments)},rb= +a._emscripten_bind_AttributeQuantizationTransform_range_0=function(){return(rb=a._emscripten_bind_AttributeQuantizationTransform_range_0=a.asm.G).apply(null,arguments)},sb=a._emscripten_bind_AttributeQuantizationTransform___destroy___0=function(){return(sb=a._emscripten_bind_AttributeQuantizationTransform___destroy___0=a.asm.H).apply(null,arguments)},Ea=a._emscripten_bind_AttributeOctahedronTransform_AttributeOctahedronTransform_0=function(){return(Ea=a._emscripten_bind_AttributeOctahedronTransform_AttributeOctahedronTransform_0= +a.asm.I).apply(null,arguments)},tb=a._emscripten_bind_AttributeOctahedronTransform_InitFromAttribute_1=function(){return(tb=a._emscripten_bind_AttributeOctahedronTransform_InitFromAttribute_1=a.asm.J).apply(null,arguments)},ub=a._emscripten_bind_AttributeOctahedronTransform_quantization_bits_0=function(){return(ub=a._emscripten_bind_AttributeOctahedronTransform_quantization_bits_0=a.asm.K).apply(null,arguments)},vb=a._emscripten_bind_AttributeOctahedronTransform___destroy___0=function(){return(vb= +a._emscripten_bind_AttributeOctahedronTransform___destroy___0=a.asm.L).apply(null,arguments)},Fa=a._emscripten_bind_PointCloud_PointCloud_0=function(){return(Fa=a._emscripten_bind_PointCloud_PointCloud_0=a.asm.M).apply(null,arguments)},wb=a._emscripten_bind_PointCloud_num_attributes_0=function(){return(wb=a._emscripten_bind_PointCloud_num_attributes_0=a.asm.N).apply(null,arguments)},xb=a._emscripten_bind_PointCloud_num_points_0=function(){return(xb=a._emscripten_bind_PointCloud_num_points_0=a.asm.O).apply(null, +arguments)},yb=a._emscripten_bind_PointCloud___destroy___0=function(){return(yb=a._emscripten_bind_PointCloud___destroy___0=a.asm.P).apply(null,arguments)},Ga=a._emscripten_bind_Mesh_Mesh_0=function(){return(Ga=a._emscripten_bind_Mesh_Mesh_0=a.asm.Q).apply(null,arguments)},zb=a._emscripten_bind_Mesh_num_faces_0=function(){return(zb=a._emscripten_bind_Mesh_num_faces_0=a.asm.R).apply(null,arguments)},Ab=a._emscripten_bind_Mesh_num_attributes_0=function(){return(Ab=a._emscripten_bind_Mesh_num_attributes_0= +a.asm.S).apply(null,arguments)},Bb=a._emscripten_bind_Mesh_num_points_0=function(){return(Bb=a._emscripten_bind_Mesh_num_points_0=a.asm.T).apply(null,arguments)},Cb=a._emscripten_bind_Mesh___destroy___0=function(){return(Cb=a._emscripten_bind_Mesh___destroy___0=a.asm.U).apply(null,arguments)},Ha=a._emscripten_bind_Metadata_Metadata_0=function(){return(Ha=a._emscripten_bind_Metadata_Metadata_0=a.asm.V).apply(null,arguments)},Db=a._emscripten_bind_Metadata___destroy___0=function(){return(Db=a._emscripten_bind_Metadata___destroy___0= +a.asm.W).apply(null,arguments)},Eb=a._emscripten_bind_Status_code_0=function(){return(Eb=a._emscripten_bind_Status_code_0=a.asm.X).apply(null,arguments)},Fb=a._emscripten_bind_Status_ok_0=function(){return(Fb=a._emscripten_bind_Status_ok_0=a.asm.Y).apply(null,arguments)},Gb=a._emscripten_bind_Status_error_msg_0=function(){return(Gb=a._emscripten_bind_Status_error_msg_0=a.asm.Z).apply(null,arguments)},Hb=a._emscripten_bind_Status___destroy___0=function(){return(Hb=a._emscripten_bind_Status___destroy___0= +a.asm._).apply(null,arguments)},Ia=a._emscripten_bind_DracoFloat32Array_DracoFloat32Array_0=function(){return(Ia=a._emscripten_bind_DracoFloat32Array_DracoFloat32Array_0=a.asm.$).apply(null,arguments)},Ib=a._emscripten_bind_DracoFloat32Array_GetValue_1=function(){return(Ib=a._emscripten_bind_DracoFloat32Array_GetValue_1=a.asm.aa).apply(null,arguments)},Jb=a._emscripten_bind_DracoFloat32Array_size_0=function(){return(Jb=a._emscripten_bind_DracoFloat32Array_size_0=a.asm.ba).apply(null,arguments)},Kb= +a._emscripten_bind_DracoFloat32Array___destroy___0=function(){return(Kb=a._emscripten_bind_DracoFloat32Array___destroy___0=a.asm.ca).apply(null,arguments)},Ja=a._emscripten_bind_DracoInt8Array_DracoInt8Array_0=function(){return(Ja=a._emscripten_bind_DracoInt8Array_DracoInt8Array_0=a.asm.da).apply(null,arguments)},Lb=a._emscripten_bind_DracoInt8Array_GetValue_1=function(){return(Lb=a._emscripten_bind_DracoInt8Array_GetValue_1=a.asm.ea).apply(null,arguments)},Mb=a._emscripten_bind_DracoInt8Array_size_0= +function(){return(Mb=a._emscripten_bind_DracoInt8Array_size_0=a.asm.fa).apply(null,arguments)},Nb=a._emscripten_bind_DracoInt8Array___destroy___0=function(){return(Nb=a._emscripten_bind_DracoInt8Array___destroy___0=a.asm.ga).apply(null,arguments)},Ka=a._emscripten_bind_DracoUInt8Array_DracoUInt8Array_0=function(){return(Ka=a._emscripten_bind_DracoUInt8Array_DracoUInt8Array_0=a.asm.ha).apply(null,arguments)},Ob=a._emscripten_bind_DracoUInt8Array_GetValue_1=function(){return(Ob=a._emscripten_bind_DracoUInt8Array_GetValue_1= +a.asm.ia).apply(null,arguments)},Pb=a._emscripten_bind_DracoUInt8Array_size_0=function(){return(Pb=a._emscripten_bind_DracoUInt8Array_size_0=a.asm.ja).apply(null,arguments)},Qb=a._emscripten_bind_DracoUInt8Array___destroy___0=function(){return(Qb=a._emscripten_bind_DracoUInt8Array___destroy___0=a.asm.ka).apply(null,arguments)},La=a._emscripten_bind_DracoInt16Array_DracoInt16Array_0=function(){return(La=a._emscripten_bind_DracoInt16Array_DracoInt16Array_0=a.asm.la).apply(null,arguments)},Rb=a._emscripten_bind_DracoInt16Array_GetValue_1= +function(){return(Rb=a._emscripten_bind_DracoInt16Array_GetValue_1=a.asm.ma).apply(null,arguments)},Sb=a._emscripten_bind_DracoInt16Array_size_0=function(){return(Sb=a._emscripten_bind_DracoInt16Array_size_0=a.asm.na).apply(null,arguments)},Tb=a._emscripten_bind_DracoInt16Array___destroy___0=function(){return(Tb=a._emscripten_bind_DracoInt16Array___destroy___0=a.asm.oa).apply(null,arguments)},Ma=a._emscripten_bind_DracoUInt16Array_DracoUInt16Array_0=function(){return(Ma=a._emscripten_bind_DracoUInt16Array_DracoUInt16Array_0= +a.asm.pa).apply(null,arguments)},Ub=a._emscripten_bind_DracoUInt16Array_GetValue_1=function(){return(Ub=a._emscripten_bind_DracoUInt16Array_GetValue_1=a.asm.qa).apply(null,arguments)},Vb=a._emscripten_bind_DracoUInt16Array_size_0=function(){return(Vb=a._emscripten_bind_DracoUInt16Array_size_0=a.asm.ra).apply(null,arguments)},Wb=a._emscripten_bind_DracoUInt16Array___destroy___0=function(){return(Wb=a._emscripten_bind_DracoUInt16Array___destroy___0=a.asm.sa).apply(null,arguments)},Na=a._emscripten_bind_DracoInt32Array_DracoInt32Array_0= +function(){return(Na=a._emscripten_bind_DracoInt32Array_DracoInt32Array_0=a.asm.ta).apply(null,arguments)},Xb=a._emscripten_bind_DracoInt32Array_GetValue_1=function(){return(Xb=a._emscripten_bind_DracoInt32Array_GetValue_1=a.asm.ua).apply(null,arguments)},Yb=a._emscripten_bind_DracoInt32Array_size_0=function(){return(Yb=a._emscripten_bind_DracoInt32Array_size_0=a.asm.va).apply(null,arguments)},Zb=a._emscripten_bind_DracoInt32Array___destroy___0=function(){return(Zb=a._emscripten_bind_DracoInt32Array___destroy___0= +a.asm.wa).apply(null,arguments)},Oa=a._emscripten_bind_DracoUInt32Array_DracoUInt32Array_0=function(){return(Oa=a._emscripten_bind_DracoUInt32Array_DracoUInt32Array_0=a.asm.xa).apply(null,arguments)},$b=a._emscripten_bind_DracoUInt32Array_GetValue_1=function(){return($b=a._emscripten_bind_DracoUInt32Array_GetValue_1=a.asm.ya).apply(null,arguments)},ac=a._emscripten_bind_DracoUInt32Array_size_0=function(){return(ac=a._emscripten_bind_DracoUInt32Array_size_0=a.asm.za).apply(null,arguments)},bc=a._emscripten_bind_DracoUInt32Array___destroy___0= +function(){return(bc=a._emscripten_bind_DracoUInt32Array___destroy___0=a.asm.Aa).apply(null,arguments)},Pa=a._emscripten_bind_MetadataQuerier_MetadataQuerier_0=function(){return(Pa=a._emscripten_bind_MetadataQuerier_MetadataQuerier_0=a.asm.Ba).apply(null,arguments)},cc=a._emscripten_bind_MetadataQuerier_HasEntry_2=function(){return(cc=a._emscripten_bind_MetadataQuerier_HasEntry_2=a.asm.Ca).apply(null,arguments)},dc=a._emscripten_bind_MetadataQuerier_GetIntEntry_2=function(){return(dc=a._emscripten_bind_MetadataQuerier_GetIntEntry_2= +a.asm.Da).apply(null,arguments)},ec=a._emscripten_bind_MetadataQuerier_GetIntEntryArray_3=function(){return(ec=a._emscripten_bind_MetadataQuerier_GetIntEntryArray_3=a.asm.Ea).apply(null,arguments)},fc=a._emscripten_bind_MetadataQuerier_GetDoubleEntry_2=function(){return(fc=a._emscripten_bind_MetadataQuerier_GetDoubleEntry_2=a.asm.Fa).apply(null,arguments)},gc=a._emscripten_bind_MetadataQuerier_GetStringEntry_2=function(){return(gc=a._emscripten_bind_MetadataQuerier_GetStringEntry_2=a.asm.Ga).apply(null, +arguments)},hc=a._emscripten_bind_MetadataQuerier_NumEntries_1=function(){return(hc=a._emscripten_bind_MetadataQuerier_NumEntries_1=a.asm.Ha).apply(null,arguments)},ic=a._emscripten_bind_MetadataQuerier_GetEntryName_2=function(){return(ic=a._emscripten_bind_MetadataQuerier_GetEntryName_2=a.asm.Ia).apply(null,arguments)},jc=a._emscripten_bind_MetadataQuerier___destroy___0=function(){return(jc=a._emscripten_bind_MetadataQuerier___destroy___0=a.asm.Ja).apply(null,arguments)},Qa=a._emscripten_bind_Decoder_Decoder_0= +function(){return(Qa=a._emscripten_bind_Decoder_Decoder_0=a.asm.Ka).apply(null,arguments)},kc=a._emscripten_bind_Decoder_DecodeArrayToPointCloud_3=function(){return(kc=a._emscripten_bind_Decoder_DecodeArrayToPointCloud_3=a.asm.La).apply(null,arguments)},lc=a._emscripten_bind_Decoder_DecodeArrayToMesh_3=function(){return(lc=a._emscripten_bind_Decoder_DecodeArrayToMesh_3=a.asm.Ma).apply(null,arguments)},mc=a._emscripten_bind_Decoder_GetAttributeId_2=function(){return(mc=a._emscripten_bind_Decoder_GetAttributeId_2= +a.asm.Na).apply(null,arguments)},nc=a._emscripten_bind_Decoder_GetAttributeIdByName_2=function(){return(nc=a._emscripten_bind_Decoder_GetAttributeIdByName_2=a.asm.Oa).apply(null,arguments)},oc=a._emscripten_bind_Decoder_GetAttributeIdByMetadataEntry_3=function(){return(oc=a._emscripten_bind_Decoder_GetAttributeIdByMetadataEntry_3=a.asm.Pa).apply(null,arguments)},pc=a._emscripten_bind_Decoder_GetAttribute_2=function(){return(pc=a._emscripten_bind_Decoder_GetAttribute_2=a.asm.Qa).apply(null,arguments)}, +qc=a._emscripten_bind_Decoder_GetAttributeByUniqueId_2=function(){return(qc=a._emscripten_bind_Decoder_GetAttributeByUniqueId_2=a.asm.Ra).apply(null,arguments)},rc=a._emscripten_bind_Decoder_GetMetadata_1=function(){return(rc=a._emscripten_bind_Decoder_GetMetadata_1=a.asm.Sa).apply(null,arguments)},sc=a._emscripten_bind_Decoder_GetAttributeMetadata_2=function(){return(sc=a._emscripten_bind_Decoder_GetAttributeMetadata_2=a.asm.Ta).apply(null,arguments)},tc=a._emscripten_bind_Decoder_GetFaceFromMesh_3= +function(){return(tc=a._emscripten_bind_Decoder_GetFaceFromMesh_3=a.asm.Ua).apply(null,arguments)},uc=a._emscripten_bind_Decoder_GetTriangleStripsFromMesh_2=function(){return(uc=a._emscripten_bind_Decoder_GetTriangleStripsFromMesh_2=a.asm.Va).apply(null,arguments)},vc=a._emscripten_bind_Decoder_GetTrianglesUInt16Array_3=function(){return(vc=a._emscripten_bind_Decoder_GetTrianglesUInt16Array_3=a.asm.Wa).apply(null,arguments)},wc=a._emscripten_bind_Decoder_GetTrianglesUInt32Array_3=function(){return(wc= +a._emscripten_bind_Decoder_GetTrianglesUInt32Array_3=a.asm.Xa).apply(null,arguments)},xc=a._emscripten_bind_Decoder_GetAttributeFloat_3=function(){return(xc=a._emscripten_bind_Decoder_GetAttributeFloat_3=a.asm.Ya).apply(null,arguments)},yc=a._emscripten_bind_Decoder_GetAttributeFloatForAllPoints_3=function(){return(yc=a._emscripten_bind_Decoder_GetAttributeFloatForAllPoints_3=a.asm.Za).apply(null,arguments)},zc=a._emscripten_bind_Decoder_GetAttributeIntForAllPoints_3=function(){return(zc=a._emscripten_bind_Decoder_GetAttributeIntForAllPoints_3= +a.asm._a).apply(null,arguments)},Ac=a._emscripten_bind_Decoder_GetAttributeInt8ForAllPoints_3=function(){return(Ac=a._emscripten_bind_Decoder_GetAttributeInt8ForAllPoints_3=a.asm.$a).apply(null,arguments)},Bc=a._emscripten_bind_Decoder_GetAttributeUInt8ForAllPoints_3=function(){return(Bc=a._emscripten_bind_Decoder_GetAttributeUInt8ForAllPoints_3=a.asm.ab).apply(null,arguments)},Cc=a._emscripten_bind_Decoder_GetAttributeInt16ForAllPoints_3=function(){return(Cc=a._emscripten_bind_Decoder_GetAttributeInt16ForAllPoints_3= +a.asm.bb).apply(null,arguments)},Dc=a._emscripten_bind_Decoder_GetAttributeUInt16ForAllPoints_3=function(){return(Dc=a._emscripten_bind_Decoder_GetAttributeUInt16ForAllPoints_3=a.asm.cb).apply(null,arguments)},Ec=a._emscripten_bind_Decoder_GetAttributeInt32ForAllPoints_3=function(){return(Ec=a._emscripten_bind_Decoder_GetAttributeInt32ForAllPoints_3=a.asm.db).apply(null,arguments)},Fc=a._emscripten_bind_Decoder_GetAttributeUInt32ForAllPoints_3=function(){return(Fc=a._emscripten_bind_Decoder_GetAttributeUInt32ForAllPoints_3= +a.asm.eb).apply(null,arguments)},Gc=a._emscripten_bind_Decoder_GetAttributeDataArrayForAllPoints_5=function(){return(Gc=a._emscripten_bind_Decoder_GetAttributeDataArrayForAllPoints_5=a.asm.fb).apply(null,arguments)},Hc=a._emscripten_bind_Decoder_SkipAttributeTransform_1=function(){return(Hc=a._emscripten_bind_Decoder_SkipAttributeTransform_1=a.asm.gb).apply(null,arguments)},Ic=a._emscripten_bind_Decoder_GetEncodedGeometryType_Deprecated_1=function(){return(Ic=a._emscripten_bind_Decoder_GetEncodedGeometryType_Deprecated_1= +a.asm.hb).apply(null,arguments)},Jc=a._emscripten_bind_Decoder_DecodeBufferToPointCloud_2=function(){return(Jc=a._emscripten_bind_Decoder_DecodeBufferToPointCloud_2=a.asm.ib).apply(null,arguments)},Kc=a._emscripten_bind_Decoder_DecodeBufferToMesh_2=function(){return(Kc=a._emscripten_bind_Decoder_DecodeBufferToMesh_2=a.asm.jb).apply(null,arguments)},Lc=a._emscripten_bind_Decoder___destroy___0=function(){return(Lc=a._emscripten_bind_Decoder___destroy___0=a.asm.kb).apply(null,arguments)},Mc=a._emscripten_enum_draco_AttributeTransformType_ATTRIBUTE_INVALID_TRANSFORM= +function(){return(Mc=a._emscripten_enum_draco_AttributeTransformType_ATTRIBUTE_INVALID_TRANSFORM=a.asm.lb).apply(null,arguments)},Nc=a._emscripten_enum_draco_AttributeTransformType_ATTRIBUTE_NO_TRANSFORM=function(){return(Nc=a._emscripten_enum_draco_AttributeTransformType_ATTRIBUTE_NO_TRANSFORM=a.asm.mb).apply(null,arguments)},Oc=a._emscripten_enum_draco_AttributeTransformType_ATTRIBUTE_QUANTIZATION_TRANSFORM=function(){return(Oc=a._emscripten_enum_draco_AttributeTransformType_ATTRIBUTE_QUANTIZATION_TRANSFORM= +a.asm.nb).apply(null,arguments)},Pc=a._emscripten_enum_draco_AttributeTransformType_ATTRIBUTE_OCTAHEDRON_TRANSFORM=function(){return(Pc=a._emscripten_enum_draco_AttributeTransformType_ATTRIBUTE_OCTAHEDRON_TRANSFORM=a.asm.ob).apply(null,arguments)},Qc=a._emscripten_enum_draco_GeometryAttribute_Type_INVALID=function(){return(Qc=a._emscripten_enum_draco_GeometryAttribute_Type_INVALID=a.asm.pb).apply(null,arguments)},Rc=a._emscripten_enum_draco_GeometryAttribute_Type_POSITION=function(){return(Rc=a._emscripten_enum_draco_GeometryAttribute_Type_POSITION= +a.asm.qb).apply(null,arguments)},Sc=a._emscripten_enum_draco_GeometryAttribute_Type_NORMAL=function(){return(Sc=a._emscripten_enum_draco_GeometryAttribute_Type_NORMAL=a.asm.rb).apply(null,arguments)},Tc=a._emscripten_enum_draco_GeometryAttribute_Type_COLOR=function(){return(Tc=a._emscripten_enum_draco_GeometryAttribute_Type_COLOR=a.asm.sb).apply(null,arguments)},Uc=a._emscripten_enum_draco_GeometryAttribute_Type_TEX_COORD=function(){return(Uc=a._emscripten_enum_draco_GeometryAttribute_Type_TEX_COORD= +a.asm.tb).apply(null,arguments)},Vc=a._emscripten_enum_draco_GeometryAttribute_Type_GENERIC=function(){return(Vc=a._emscripten_enum_draco_GeometryAttribute_Type_GENERIC=a.asm.ub).apply(null,arguments)},Wc=a._emscripten_enum_draco_EncodedGeometryType_INVALID_GEOMETRY_TYPE=function(){return(Wc=a._emscripten_enum_draco_EncodedGeometryType_INVALID_GEOMETRY_TYPE=a.asm.vb).apply(null,arguments)},Xc=a._emscripten_enum_draco_EncodedGeometryType_POINT_CLOUD=function(){return(Xc=a._emscripten_enum_draco_EncodedGeometryType_POINT_CLOUD= +a.asm.wb).apply(null,arguments)},Yc=a._emscripten_enum_draco_EncodedGeometryType_TRIANGULAR_MESH=function(){return(Yc=a._emscripten_enum_draco_EncodedGeometryType_TRIANGULAR_MESH=a.asm.xb).apply(null,arguments)},Zc=a._emscripten_enum_draco_DataType_DT_INVALID=function(){return(Zc=a._emscripten_enum_draco_DataType_DT_INVALID=a.asm.yb).apply(null,arguments)},$c=a._emscripten_enum_draco_DataType_DT_INT8=function(){return($c=a._emscripten_enum_draco_DataType_DT_INT8=a.asm.zb).apply(null,arguments)},ad= +a._emscripten_enum_draco_DataType_DT_UINT8=function(){return(ad=a._emscripten_enum_draco_DataType_DT_UINT8=a.asm.Ab).apply(null,arguments)},bd=a._emscripten_enum_draco_DataType_DT_INT16=function(){return(bd=a._emscripten_enum_draco_DataType_DT_INT16=a.asm.Bb).apply(null,arguments)},cd=a._emscripten_enum_draco_DataType_DT_UINT16=function(){return(cd=a._emscripten_enum_draco_DataType_DT_UINT16=a.asm.Cb).apply(null,arguments)},dd=a._emscripten_enum_draco_DataType_DT_INT32=function(){return(dd=a._emscripten_enum_draco_DataType_DT_INT32= +a.asm.Db).apply(null,arguments)},ed=a._emscripten_enum_draco_DataType_DT_UINT32=function(){return(ed=a._emscripten_enum_draco_DataType_DT_UINT32=a.asm.Eb).apply(null,arguments)},fd=a._emscripten_enum_draco_DataType_DT_INT64=function(){return(fd=a._emscripten_enum_draco_DataType_DT_INT64=a.asm.Fb).apply(null,arguments)},gd=a._emscripten_enum_draco_DataType_DT_UINT64=function(){return(gd=a._emscripten_enum_draco_DataType_DT_UINT64=a.asm.Gb).apply(null,arguments)},hd=a._emscripten_enum_draco_DataType_DT_FLOAT32= +function(){return(hd=a._emscripten_enum_draco_DataType_DT_FLOAT32=a.asm.Hb).apply(null,arguments)},id=a._emscripten_enum_draco_DataType_DT_FLOAT64=function(){return(id=a._emscripten_enum_draco_DataType_DT_FLOAT64=a.asm.Ib).apply(null,arguments)},jd=a._emscripten_enum_draco_DataType_DT_BOOL=function(){return(jd=a._emscripten_enum_draco_DataType_DT_BOOL=a.asm.Jb).apply(null,arguments)},kd=a._emscripten_enum_draco_DataType_DT_TYPES_COUNT=function(){return(kd=a._emscripten_enum_draco_DataType_DT_TYPES_COUNT= +a.asm.Kb).apply(null,arguments)},ld=a._emscripten_enum_draco_StatusCode_OK=function(){return(ld=a._emscripten_enum_draco_StatusCode_OK=a.asm.Lb).apply(null,arguments)},md=a._emscripten_enum_draco_StatusCode_DRACO_ERROR=function(){return(md=a._emscripten_enum_draco_StatusCode_DRACO_ERROR=a.asm.Mb).apply(null,arguments)},nd=a._emscripten_enum_draco_StatusCode_IO_ERROR=function(){return(nd=a._emscripten_enum_draco_StatusCode_IO_ERROR=a.asm.Nb).apply(null,arguments)},od=a._emscripten_enum_draco_StatusCode_INVALID_PARAMETER= +function(){return(od=a._emscripten_enum_draco_StatusCode_INVALID_PARAMETER=a.asm.Ob).apply(null,arguments)},pd=a._emscripten_enum_draco_StatusCode_UNSUPPORTED_VERSION=function(){return(pd=a._emscripten_enum_draco_StatusCode_UNSUPPORTED_VERSION=a.asm.Pb).apply(null,arguments)},qd=a._emscripten_enum_draco_StatusCode_UNKNOWN_VERSION=function(){return(qd=a._emscripten_enum_draco_StatusCode_UNKNOWN_VERSION=a.asm.Qb).apply(null,arguments)},Ya=a._malloc=function(){return(Ya=a._malloc=a.asm.Rb).apply(null, +arguments)};a._free=function(){return(a._free=a.asm.Sb).apply(null,arguments)};var ua=a.___cxa_is_pointer_type=function(){return(ua=a.___cxa_is_pointer_type=a.asm.Tb).apply(null,arguments)};a.___start_em_js=11660;a.___stop_em_js=11758;var ka;ha=function b(){ka||F();ka||(ha=b)};if(a.preInit)for("function"==typeof a.preInit&&(a.preInit=[a.preInit]);0=r.size?(0>>=0;switch(c.BYTES_PER_ELEMENT){case 2:d>>>=1;break;case 4:d>>>=2;break;case 8:d>>>=3}for(var g=0;gb.byteLength)return a.INVALID_GEOMETRY_TYPE;switch(b[7]){case 0:return a.POINT_CLOUD;case 1:return a.TRIANGULAR_MESH;default:return a.INVALID_GEOMETRY_TYPE}};return n.ready}}();"object"===typeof exports&&"object"===typeof module?module.exports=DracoDecoderModule:"function"===typeof define&&define.amd?define([],function(){return DracoDecoderModule}):"object"===typeof exports&&(exports.DracoDecoderModule=DracoDecoderModule); diff --git a/javascript/npm/draco3dgltf/draco_encoder.wasm b/javascript/npm/draco3dgltf/draco_encoder.wasm index 1a581eb..4657079 100755 Binary files a/javascript/npm/draco3dgltf/draco_encoder.wasm and b/javascript/npm/draco3dgltf/draco_encoder.wasm differ diff --git a/javascript/npm/draco3dgltf/draco_encoder_gltf_nodejs.js b/javascript/npm/draco3dgltf/draco_encoder_gltf_nodejs.js index d2d76be..e822862 100644 --- a/javascript/npm/draco3dgltf/draco_encoder_gltf_nodejs.js +++ b/javascript/npm/draco3dgltf/draco_encoder_gltf_nodejs.js @@ -5,94 +5,93 @@ var $jscomp$lookupPolyfilledValue=function(l,p){var m=$jscomp.propertyToPolyfill $jscomp.polyfillUnisolated=function(l,p,m,r){m=$jscomp.global;l=l.split(".");for(r=0;r>>0,$jscomp.propertyToPolyfillSymbol[k]=$jscomp.IS_SYMBOL_NATIVE? $jscomp.global.Symbol(k):$jscomp.POLYFILL_PREFIX+m+"$"+k),$jscomp.defineProperty(r,$jscomp.propertyToPolyfillSymbol[k],{configurable:!0,writable:!0,value:p})))}; -$jscomp.polyfill("Promise",function(l){function p(){this.batch_=null}function m(h){return h instanceof k?h:new k(function(q,v){q(h)})}if(l&&(!($jscomp.FORCE_POLYFILL_PROMISE||$jscomp.FORCE_POLYFILL_PROMISE_WHEN_NO_UNHANDLED_REJECTION&&"undefined"===typeof $jscomp.global.PromiseRejectionEvent)||!$jscomp.global.Promise||-1===$jscomp.global.Promise.toString().indexOf("[native code]")))return l;p.prototype.asyncExecute=function(h){if(null==this.batch_){this.batch_=[];var q=this;this.asyncExecuteFunction(function(){q.executeBatch_()})}this.batch_.push(h)}; -var r=$jscomp.global.setTimeout;p.prototype.asyncExecuteFunction=function(h){r(h,0)};p.prototype.executeBatch_=function(){for(;this.batch_&&this.batch_.length;){var h=this.batch_;this.batch_=[];for(var q=0;q=C}},"es6","es3"); $jscomp.polyfill("Array.prototype.copyWithin",function(l){function p(m){m=Number(m);return Infinity===m||-Infinity===m?m:m|0}return l?l:function(m,r,k){var C=this.length;m=p(m);r=p(r);k=void 0===k?C:p(k);m=0>m?Math.max(C+m,0):Math.min(m,C);r=0>r?Math.max(C+r,0):Math.min(r,C);k=0>k?Math.max(C+k,0):Math.min(k,C);if(mr;)--k in this?this[--m]=this[k]:delete this[--m];return this}},"es6","es3"); $jscomp.typedArrayCopyWithin=function(l){return l?l:Array.prototype.copyWithin};$jscomp.polyfill("Int8Array.prototype.copyWithin",$jscomp.typedArrayCopyWithin,"es6","es5");$jscomp.polyfill("Uint8Array.prototype.copyWithin",$jscomp.typedArrayCopyWithin,"es6","es5");$jscomp.polyfill("Uint8ClampedArray.prototype.copyWithin",$jscomp.typedArrayCopyWithin,"es6","es5");$jscomp.polyfill("Int16Array.prototype.copyWithin",$jscomp.typedArrayCopyWithin,"es6","es5"); $jscomp.polyfill("Uint16Array.prototype.copyWithin",$jscomp.typedArrayCopyWithin,"es6","es5");$jscomp.polyfill("Int32Array.prototype.copyWithin",$jscomp.typedArrayCopyWithin,"es6","es5");$jscomp.polyfill("Uint32Array.prototype.copyWithin",$jscomp.typedArrayCopyWithin,"es6","es5");$jscomp.polyfill("Float32Array.prototype.copyWithin",$jscomp.typedArrayCopyWithin,"es6","es5");$jscomp.polyfill("Float64Array.prototype.copyWithin",$jscomp.typedArrayCopyWithin,"es6","es5"); -var DracoEncoderModule=function(){var l="undefined"!==typeof document&&document.currentScript?document.currentScript.src:void 0;"undefined"!==typeof __filename&&(l=l||__filename);return function(p){function m(f){return a.locateFile?a.locateFile(f,L):L+f}function r(f){qa=f;a.HEAP8=P=new Int8Array(f);a.HEAP16=ha=new Int16Array(f);a.HEAP32=S=new Int32Array(f);a.HEAPU8=ia=new Uint8Array(f);a.HEAPU16=new Uint16Array(f);a.HEAPU32=T=new Uint32Array(f);a.HEAPF32=ja=new Float32Array(f);a.HEAPF64=new Float64Array(f)} -function k(f){if(a.onAbort)a.onAbort(f);f="Aborted("+f+")";W(f);ra=!0;f=new WebAssembly.RuntimeError(f+". Build with -sASSERTIONS for more info.");ka(f);throw f;}function C(f){try{if(f==J&&X)return new Uint8Array(X);if(la)return la(f);throw"both async and sync fetching of the wasm failed";}catch(b){k(b)}}function h(){if(!X&&(sa||Y)){if("function"==typeof fetch&&!J.startsWith("file://"))return fetch(J,{credentials:"same-origin"}).then(function(f){if(!f.ok)throw"failed to load wasm binary file at '"+ -J+"'";return f.arrayBuffer()}).catch(function(){return C(J)});if(ma)return new Promise(function(f,b){ma(J,function(c){f(new Uint8Array(c))},b)})}return Promise.resolve().then(function(){return C(J)})}function q(f){for(;0=ba.length&&(ba.length=f+1),ba[f]=b=ta.get(f));return b}function D(f){this.excPtr=f;this.ptr= -f-24;this.set_type=function(b){T[this.ptr+4>>2]=b};this.get_type=function(){return T[this.ptr+4>>2]};this.set_destructor=function(b){T[this.ptr+8>>2]=b};this.get_destructor=function(){return T[this.ptr+8>>2]};this.set_refcount=function(b){S[this.ptr>>2]=b};this.set_caught=function(b){P[this.ptr+12>>0]=b?1:0};this.get_caught=function(){return 0!=P[this.ptr+12>>0]};this.set_rethrown=function(b){P[this.ptr+13>>0]=b?1:0};this.get_rethrown=function(){return 0!=P[this.ptr+13>>0]};this.init=function(b,c){this.set_adjusted_ptr(0); -this.set_type(b);this.set_destructor(c);this.set_refcount(0);this.set_caught(!1);this.set_rethrown(!1)};this.add_ref=function(){S[this.ptr>>2]+=1};this.release_ref=function(){var b=S[this.ptr>>2];S[this.ptr>>2]=b-1;return 1===b};this.set_adjusted_ptr=function(b){T[this.ptr+16>>2]=b};this.get_adjusted_ptr=function(){return T[this.ptr+16>>2]};this.get_exception_ptr=function(){if(ua(this.get_type()))return T[this.excPtr>>2];var b=this.get_adjusted_ptr();return 0!==b?b:this.excPtr}}function G(f){function b(){if(!ca&& -(ca=!0,a.calledRun=!0,!ra)){va=!0;q(na);wa(a);if(a.onRuntimeInitialized)a.onRuntimeInitialized();if(a.postRun)for("function"==typeof a.postRun&&(a.postRun=[a.postRun]);a.postRun.length;)xa.unshift(a.postRun.shift());q(xa)}}if(!(0=d&&(d=65536+((d&1023)<<10)|f.charCodeAt(++c)&1023);127>=d?++b:b=2047>=d?b+2:65535>=d?b+3:b+4}b=Array(b+1);c=0;d=b.length;if(0=g){var t=f.charCodeAt(++e);g=65536+((g&1023)<<10)|t&1023}if(127>=g){if(c>= -d)break;b[c++]=g}else{if(2047>=g){if(c+1>=d)break;b[c++]=192|g>>6}else{if(65535>=g){if(c+2>=d)break;b[c++]=224|g>>12}else{if(c+3>=d)break;b[c++]=240|g>>18;b[c++]=128|g>>12&63}b[c++]=128|g>>6&63}b[c++]=128|g&63}}b[c]=0}f=n.alloc(b,P);n.copy(b,P,f);return f}return f}function R(f){if("object"===typeof f){var b=n.alloc(f,P);n.copy(f,P,b);return b}return f}function da(f){if("object"===typeof f){var b=n.alloc(f,ha);n.copy(f,ha,b);return b}return f}function V(f){if("object"===typeof f){var b=n.alloc(f,S); -n.copy(f,S,b);return b}return f}function Z(f){if("object"===typeof f){var b=n.alloc(f,ja);n.copy(f,ja,b);return b}return f}function Q(){throw"cannot construct a VoidPtr, no constructor in IDL";}function M(){this.ptr=za();B(M)[this.ptr]=this}function z(){this.ptr=Aa();B(z)[this.ptr]=this}function H(){this.ptr=Ba();B(H)[this.ptr]=this}function E(){this.ptr=Ca();B(E)[this.ptr]=this}function N(){this.ptr=Da();B(N)[this.ptr]=this}function I(){this.ptr=Ea();B(I)[this.ptr]=this}function F(){this.ptr=Fa(); -B(F)[this.ptr]=this}function w(){this.ptr=Ga();B(w)[this.ptr]=this}function u(){this.ptr=Ha();B(u)[this.ptr]=this}function x(){this.ptr=Ia();B(x)[this.ptr]=this}function A(f){f&&"object"===typeof f&&(f=f.ptr);this.ptr=Ja(f);B(A)[this.ptr]=this}p=p||{};var a="undefined"!=typeof p?p:{},wa,ka;a.ready=new Promise(function(f,b){wa=f;ka=b});var Ka=!1,La=!1;a.onRuntimeInitialized=function(){Ka=!0;if(La&&"function"===typeof a.onModuleLoaded)a.onModuleLoaded(a)};a.onModuleParsed=function(){La=!0;if(Ka&&"function"=== -typeof a.onModuleLoaded)a.onModuleLoaded(a)};a.isVersionSupported=function(f){if("string"!==typeof f)return!1;f=f.split(".");return 2>f.length||3=f[1]?!0:0!=f[0]||10>>=0;if(2147483648=c;c*=2){var d=b*(1+.2/c);d=Math.min(d,f+100663296);var e=Math;d=Math.max(f,d);e=e.min.call(e,2147483648,d+(65536-d%65536)%65536);a:{try{fa.grow(e-qa.byteLength+65535>>>16);r(fa.buffer);var g=1;break a}catch(t){}g=void 0}if(g)return!0}return!1}};(function(){function f(e,g){a.asm=e.exports;fa=a.asm.f;r(fa.buffer);ta=a.asm.h;na.unshift(a.asm.g); -U--;a.monitorRunDependencies&&a.monitorRunDependencies(U);0==U&&(null!==pa&&(clearInterval(pa),pa=null),aa&&(e=aa,aa=null,e()))}function b(e){f(e.instance)}function c(e){return h().then(function(g){return WebAssembly.instantiate(g,d)}).then(function(g){return g}).then(e,function(g){W("failed to asynchronously prepare wasm: "+g);k(g)})}var d={a:uc};U++;a.monitorRunDependencies&&a.monitorRunDependencies(U);if(a.instantiateWasm)try{return a.instantiateWasm(d,f)}catch(e){return W("Module.instantiateWasm callback failed with error: "+ -e),!1}(function(){return X||"function"!=typeof WebAssembly.instantiateStreaming||J.startsWith("data:application/octet-stream;base64,")||J.startsWith("file://")||Na||"function"!=typeof fetch?c(b):fetch(J,{credentials:"same-origin"}).then(function(e){return WebAssembly.instantiateStreaming(e,d).then(b,function(g){W("wasm streaming compile failed: "+g);W("falling back to ArrayBuffer instantiation");return c(b)})})})().catch(ka);return{}})();a.___wasm_call_ctors=function(){return(a.___wasm_call_ctors= -a.asm.g).apply(null,arguments)};var Ra=a._emscripten_bind_VoidPtr___destroy___0=function(){return(Ra=a._emscripten_bind_VoidPtr___destroy___0=a.asm.i).apply(null,arguments)},za=a._emscripten_bind_GeometryAttribute_GeometryAttribute_0=function(){return(za=a._emscripten_bind_GeometryAttribute_GeometryAttribute_0=a.asm.j).apply(null,arguments)},Sa=a._emscripten_bind_GeometryAttribute___destroy___0=function(){return(Sa=a._emscripten_bind_GeometryAttribute___destroy___0=a.asm.k).apply(null,arguments)}, -Aa=a._emscripten_bind_PointAttribute_PointAttribute_0=function(){return(Aa=a._emscripten_bind_PointAttribute_PointAttribute_0=a.asm.l).apply(null,arguments)},Ta=a._emscripten_bind_PointAttribute_size_0=function(){return(Ta=a._emscripten_bind_PointAttribute_size_0=a.asm.m).apply(null,arguments)},Ua=a._emscripten_bind_PointAttribute_attribute_type_0=function(){return(Ua=a._emscripten_bind_PointAttribute_attribute_type_0=a.asm.n).apply(null,arguments)},Va=a._emscripten_bind_PointAttribute_data_type_0= -function(){return(Va=a._emscripten_bind_PointAttribute_data_type_0=a.asm.o).apply(null,arguments)},Wa=a._emscripten_bind_PointAttribute_num_components_0=function(){return(Wa=a._emscripten_bind_PointAttribute_num_components_0=a.asm.p).apply(null,arguments)},Xa=a._emscripten_bind_PointAttribute_normalized_0=function(){return(Xa=a._emscripten_bind_PointAttribute_normalized_0=a.asm.q).apply(null,arguments)},Ya=a._emscripten_bind_PointAttribute_byte_stride_0=function(){return(Ya=a._emscripten_bind_PointAttribute_byte_stride_0= -a.asm.r).apply(null,arguments)},Za=a._emscripten_bind_PointAttribute_byte_offset_0=function(){return(Za=a._emscripten_bind_PointAttribute_byte_offset_0=a.asm.s).apply(null,arguments)},$a=a._emscripten_bind_PointAttribute_unique_id_0=function(){return($a=a._emscripten_bind_PointAttribute_unique_id_0=a.asm.t).apply(null,arguments)},ab=a._emscripten_bind_PointAttribute___destroy___0=function(){return(ab=a._emscripten_bind_PointAttribute___destroy___0=a.asm.u).apply(null,arguments)},Ba=a._emscripten_bind_PointCloud_PointCloud_0= -function(){return(Ba=a._emscripten_bind_PointCloud_PointCloud_0=a.asm.v).apply(null,arguments)},bb=a._emscripten_bind_PointCloud_num_attributes_0=function(){return(bb=a._emscripten_bind_PointCloud_num_attributes_0=a.asm.w).apply(null,arguments)},cb=a._emscripten_bind_PointCloud_num_points_0=function(){return(cb=a._emscripten_bind_PointCloud_num_points_0=a.asm.x).apply(null,arguments)},db=a._emscripten_bind_PointCloud___destroy___0=function(){return(db=a._emscripten_bind_PointCloud___destroy___0=a.asm.y).apply(null, -arguments)},Ca=a._emscripten_bind_Mesh_Mesh_0=function(){return(Ca=a._emscripten_bind_Mesh_Mesh_0=a.asm.z).apply(null,arguments)},eb=a._emscripten_bind_Mesh_num_faces_0=function(){return(eb=a._emscripten_bind_Mesh_num_faces_0=a.asm.A).apply(null,arguments)},fb=a._emscripten_bind_Mesh_num_attributes_0=function(){return(fb=a._emscripten_bind_Mesh_num_attributes_0=a.asm.B).apply(null,arguments)},gb=a._emscripten_bind_Mesh_num_points_0=function(){return(gb=a._emscripten_bind_Mesh_num_points_0=a.asm.C).apply(null, -arguments)},hb=a._emscripten_bind_Mesh_set_num_points_1=function(){return(hb=a._emscripten_bind_Mesh_set_num_points_1=a.asm.D).apply(null,arguments)},ib=a._emscripten_bind_Mesh___destroy___0=function(){return(ib=a._emscripten_bind_Mesh___destroy___0=a.asm.E).apply(null,arguments)},Da=a._emscripten_bind_Metadata_Metadata_0=function(){return(Da=a._emscripten_bind_Metadata_Metadata_0=a.asm.F).apply(null,arguments)},jb=a._emscripten_bind_Metadata___destroy___0=function(){return(jb=a._emscripten_bind_Metadata___destroy___0= -a.asm.G).apply(null,arguments)},Ea=a._emscripten_bind_DracoInt8Array_DracoInt8Array_0=function(){return(Ea=a._emscripten_bind_DracoInt8Array_DracoInt8Array_0=a.asm.H).apply(null,arguments)},kb=a._emscripten_bind_DracoInt8Array_GetValue_1=function(){return(kb=a._emscripten_bind_DracoInt8Array_GetValue_1=a.asm.I).apply(null,arguments)},lb=a._emscripten_bind_DracoInt8Array_size_0=function(){return(lb=a._emscripten_bind_DracoInt8Array_size_0=a.asm.J).apply(null,arguments)},mb=a._emscripten_bind_DracoInt8Array___destroy___0= -function(){return(mb=a._emscripten_bind_DracoInt8Array___destroy___0=a.asm.K).apply(null,arguments)},Fa=a._emscripten_bind_MetadataBuilder_MetadataBuilder_0=function(){return(Fa=a._emscripten_bind_MetadataBuilder_MetadataBuilder_0=a.asm.L).apply(null,arguments)},nb=a._emscripten_bind_MetadataBuilder_AddStringEntry_3=function(){return(nb=a._emscripten_bind_MetadataBuilder_AddStringEntry_3=a.asm.M).apply(null,arguments)},ob=a._emscripten_bind_MetadataBuilder_AddIntEntry_3=function(){return(ob=a._emscripten_bind_MetadataBuilder_AddIntEntry_3= -a.asm.N).apply(null,arguments)},pb=a._emscripten_bind_MetadataBuilder_AddIntEntryArray_4=function(){return(pb=a._emscripten_bind_MetadataBuilder_AddIntEntryArray_4=a.asm.O).apply(null,arguments)},qb=a._emscripten_bind_MetadataBuilder_AddDoubleEntry_3=function(){return(qb=a._emscripten_bind_MetadataBuilder_AddDoubleEntry_3=a.asm.P).apply(null,arguments)},rb=a._emscripten_bind_MetadataBuilder___destroy___0=function(){return(rb=a._emscripten_bind_MetadataBuilder___destroy___0=a.asm.Q).apply(null,arguments)}, -Ga=a._emscripten_bind_PointCloudBuilder_PointCloudBuilder_0=function(){return(Ga=a._emscripten_bind_PointCloudBuilder_PointCloudBuilder_0=a.asm.R).apply(null,arguments)},sb=a._emscripten_bind_PointCloudBuilder_AddFloatAttribute_5=function(){return(sb=a._emscripten_bind_PointCloudBuilder_AddFloatAttribute_5=a.asm.S).apply(null,arguments)},tb=a._emscripten_bind_PointCloudBuilder_AddInt8Attribute_5=function(){return(tb=a._emscripten_bind_PointCloudBuilder_AddInt8Attribute_5=a.asm.T).apply(null,arguments)}, -ub=a._emscripten_bind_PointCloudBuilder_AddUInt8Attribute_5=function(){return(ub=a._emscripten_bind_PointCloudBuilder_AddUInt8Attribute_5=a.asm.U).apply(null,arguments)},vb=a._emscripten_bind_PointCloudBuilder_AddInt16Attribute_5=function(){return(vb=a._emscripten_bind_PointCloudBuilder_AddInt16Attribute_5=a.asm.V).apply(null,arguments)},wb=a._emscripten_bind_PointCloudBuilder_AddUInt16Attribute_5=function(){return(wb=a._emscripten_bind_PointCloudBuilder_AddUInt16Attribute_5=a.asm.W).apply(null,arguments)}, -xb=a._emscripten_bind_PointCloudBuilder_AddInt32Attribute_5=function(){return(xb=a._emscripten_bind_PointCloudBuilder_AddInt32Attribute_5=a.asm.X).apply(null,arguments)},yb=a._emscripten_bind_PointCloudBuilder_AddUInt32Attribute_5=function(){return(yb=a._emscripten_bind_PointCloudBuilder_AddUInt32Attribute_5=a.asm.Y).apply(null,arguments)},zb=a._emscripten_bind_PointCloudBuilder_AddMetadata_2=function(){return(zb=a._emscripten_bind_PointCloudBuilder_AddMetadata_2=a.asm.Z).apply(null,arguments)},Ab= -a._emscripten_bind_PointCloudBuilder_SetMetadataForAttribute_3=function(){return(Ab=a._emscripten_bind_PointCloudBuilder_SetMetadataForAttribute_3=a.asm._).apply(null,arguments)},Bb=a._emscripten_bind_PointCloudBuilder___destroy___0=function(){return(Bb=a._emscripten_bind_PointCloudBuilder___destroy___0=a.asm.$).apply(null,arguments)},Ha=a._emscripten_bind_MeshBuilder_MeshBuilder_0=function(){return(Ha=a._emscripten_bind_MeshBuilder_MeshBuilder_0=a.asm.aa).apply(null,arguments)},Cb=a._emscripten_bind_MeshBuilder_AddFacesToMesh_3= -function(){return(Cb=a._emscripten_bind_MeshBuilder_AddFacesToMesh_3=a.asm.ba).apply(null,arguments)},Db=a._emscripten_bind_MeshBuilder_AddFloatAttributeToMesh_5=function(){return(Db=a._emscripten_bind_MeshBuilder_AddFloatAttributeToMesh_5=a.asm.ca).apply(null,arguments)},Eb=a._emscripten_bind_MeshBuilder_AddInt32AttributeToMesh_5=function(){return(Eb=a._emscripten_bind_MeshBuilder_AddInt32AttributeToMesh_5=a.asm.da).apply(null,arguments)},Fb=a._emscripten_bind_MeshBuilder_AddMetadataToMesh_2=function(){return(Fb= -a._emscripten_bind_MeshBuilder_AddMetadataToMesh_2=a.asm.ea).apply(null,arguments)},Gb=a._emscripten_bind_MeshBuilder_AddFloatAttribute_5=function(){return(Gb=a._emscripten_bind_MeshBuilder_AddFloatAttribute_5=a.asm.fa).apply(null,arguments)},Hb=a._emscripten_bind_MeshBuilder_AddInt8Attribute_5=function(){return(Hb=a._emscripten_bind_MeshBuilder_AddInt8Attribute_5=a.asm.ga).apply(null,arguments)},Ib=a._emscripten_bind_MeshBuilder_AddUInt8Attribute_5=function(){return(Ib=a._emscripten_bind_MeshBuilder_AddUInt8Attribute_5= -a.asm.ha).apply(null,arguments)},Jb=a._emscripten_bind_MeshBuilder_AddInt16Attribute_5=function(){return(Jb=a._emscripten_bind_MeshBuilder_AddInt16Attribute_5=a.asm.ia).apply(null,arguments)},Kb=a._emscripten_bind_MeshBuilder_AddUInt16Attribute_5=function(){return(Kb=a._emscripten_bind_MeshBuilder_AddUInt16Attribute_5=a.asm.ja).apply(null,arguments)},Lb=a._emscripten_bind_MeshBuilder_AddInt32Attribute_5=function(){return(Lb=a._emscripten_bind_MeshBuilder_AddInt32Attribute_5=a.asm.ka).apply(null,arguments)}, -Mb=a._emscripten_bind_MeshBuilder_AddUInt32Attribute_5=function(){return(Mb=a._emscripten_bind_MeshBuilder_AddUInt32Attribute_5=a.asm.la).apply(null,arguments)},Nb=a._emscripten_bind_MeshBuilder_AddMetadata_2=function(){return(Nb=a._emscripten_bind_MeshBuilder_AddMetadata_2=a.asm.ma).apply(null,arguments)},Ob=a._emscripten_bind_MeshBuilder_SetMetadataForAttribute_3=function(){return(Ob=a._emscripten_bind_MeshBuilder_SetMetadataForAttribute_3=a.asm.na).apply(null,arguments)},Pb=a._emscripten_bind_MeshBuilder___destroy___0= -function(){return(Pb=a._emscripten_bind_MeshBuilder___destroy___0=a.asm.oa).apply(null,arguments)},Ia=a._emscripten_bind_Encoder_Encoder_0=function(){return(Ia=a._emscripten_bind_Encoder_Encoder_0=a.asm.pa).apply(null,arguments)},Qb=a._emscripten_bind_Encoder_SetEncodingMethod_1=function(){return(Qb=a._emscripten_bind_Encoder_SetEncodingMethod_1=a.asm.qa).apply(null,arguments)},Rb=a._emscripten_bind_Encoder_SetAttributeQuantization_2=function(){return(Rb=a._emscripten_bind_Encoder_SetAttributeQuantization_2= -a.asm.ra).apply(null,arguments)},Sb=a._emscripten_bind_Encoder_SetAttributeExplicitQuantization_5=function(){return(Sb=a._emscripten_bind_Encoder_SetAttributeExplicitQuantization_5=a.asm.sa).apply(null,arguments)},Tb=a._emscripten_bind_Encoder_SetSpeedOptions_2=function(){return(Tb=a._emscripten_bind_Encoder_SetSpeedOptions_2=a.asm.ta).apply(null,arguments)},Ub=a._emscripten_bind_Encoder_SetTrackEncodedProperties_1=function(){return(Ub=a._emscripten_bind_Encoder_SetTrackEncodedProperties_1=a.asm.ua).apply(null, -arguments)},Vb=a._emscripten_bind_Encoder_EncodeMeshToDracoBuffer_2=function(){return(Vb=a._emscripten_bind_Encoder_EncodeMeshToDracoBuffer_2=a.asm.va).apply(null,arguments)},Wb=a._emscripten_bind_Encoder_EncodePointCloudToDracoBuffer_3=function(){return(Wb=a._emscripten_bind_Encoder_EncodePointCloudToDracoBuffer_3=a.asm.wa).apply(null,arguments)},Xb=a._emscripten_bind_Encoder_GetNumberOfEncodedPoints_0=function(){return(Xb=a._emscripten_bind_Encoder_GetNumberOfEncodedPoints_0=a.asm.xa).apply(null, -arguments)},Yb=a._emscripten_bind_Encoder_GetNumberOfEncodedFaces_0=function(){return(Yb=a._emscripten_bind_Encoder_GetNumberOfEncodedFaces_0=a.asm.ya).apply(null,arguments)},Zb=a._emscripten_bind_Encoder___destroy___0=function(){return(Zb=a._emscripten_bind_Encoder___destroy___0=a.asm.za).apply(null,arguments)},Ja=a._emscripten_bind_ExpertEncoder_ExpertEncoder_1=function(){return(Ja=a._emscripten_bind_ExpertEncoder_ExpertEncoder_1=a.asm.Aa).apply(null,arguments)},$b=a._emscripten_bind_ExpertEncoder_SetEncodingMethod_1= -function(){return($b=a._emscripten_bind_ExpertEncoder_SetEncodingMethod_1=a.asm.Ba).apply(null,arguments)},ac=a._emscripten_bind_ExpertEncoder_SetAttributeQuantization_2=function(){return(ac=a._emscripten_bind_ExpertEncoder_SetAttributeQuantization_2=a.asm.Ca).apply(null,arguments)},bc=a._emscripten_bind_ExpertEncoder_SetAttributeExplicitQuantization_5=function(){return(bc=a._emscripten_bind_ExpertEncoder_SetAttributeExplicitQuantization_5=a.asm.Da).apply(null,arguments)},cc=a._emscripten_bind_ExpertEncoder_SetSpeedOptions_2= -function(){return(cc=a._emscripten_bind_ExpertEncoder_SetSpeedOptions_2=a.asm.Ea).apply(null,arguments)},dc=a._emscripten_bind_ExpertEncoder_SetTrackEncodedProperties_1=function(){return(dc=a._emscripten_bind_ExpertEncoder_SetTrackEncodedProperties_1=a.asm.Fa).apply(null,arguments)},ec=a._emscripten_bind_ExpertEncoder_EncodeToDracoBuffer_2=function(){return(ec=a._emscripten_bind_ExpertEncoder_EncodeToDracoBuffer_2=a.asm.Ga).apply(null,arguments)},fc=a._emscripten_bind_ExpertEncoder_GetNumberOfEncodedPoints_0= -function(){return(fc=a._emscripten_bind_ExpertEncoder_GetNumberOfEncodedPoints_0=a.asm.Ha).apply(null,arguments)},gc=a._emscripten_bind_ExpertEncoder_GetNumberOfEncodedFaces_0=function(){return(gc=a._emscripten_bind_ExpertEncoder_GetNumberOfEncodedFaces_0=a.asm.Ia).apply(null,arguments)},hc=a._emscripten_bind_ExpertEncoder___destroy___0=function(){return(hc=a._emscripten_bind_ExpertEncoder___destroy___0=a.asm.Ja).apply(null,arguments)},ic=a._emscripten_enum_draco_GeometryAttribute_Type_INVALID=function(){return(ic= -a._emscripten_enum_draco_GeometryAttribute_Type_INVALID=a.asm.Ka).apply(null,arguments)},jc=a._emscripten_enum_draco_GeometryAttribute_Type_POSITION=function(){return(jc=a._emscripten_enum_draco_GeometryAttribute_Type_POSITION=a.asm.La).apply(null,arguments)},kc=a._emscripten_enum_draco_GeometryAttribute_Type_NORMAL=function(){return(kc=a._emscripten_enum_draco_GeometryAttribute_Type_NORMAL=a.asm.Ma).apply(null,arguments)},lc=a._emscripten_enum_draco_GeometryAttribute_Type_COLOR=function(){return(lc= -a._emscripten_enum_draco_GeometryAttribute_Type_COLOR=a.asm.Na).apply(null,arguments)},mc=a._emscripten_enum_draco_GeometryAttribute_Type_TEX_COORD=function(){return(mc=a._emscripten_enum_draco_GeometryAttribute_Type_TEX_COORD=a.asm.Oa).apply(null,arguments)},nc=a._emscripten_enum_draco_GeometryAttribute_Type_GENERIC=function(){return(nc=a._emscripten_enum_draco_GeometryAttribute_Type_GENERIC=a.asm.Pa).apply(null,arguments)},oc=a._emscripten_enum_draco_EncodedGeometryType_INVALID_GEOMETRY_TYPE=function(){return(oc= -a._emscripten_enum_draco_EncodedGeometryType_INVALID_GEOMETRY_TYPE=a.asm.Qa).apply(null,arguments)},pc=a._emscripten_enum_draco_EncodedGeometryType_POINT_CLOUD=function(){return(pc=a._emscripten_enum_draco_EncodedGeometryType_POINT_CLOUD=a.asm.Ra).apply(null,arguments)},qc=a._emscripten_enum_draco_EncodedGeometryType_TRIANGULAR_MESH=function(){return(qc=a._emscripten_enum_draco_EncodedGeometryType_TRIANGULAR_MESH=a.asm.Sa).apply(null,arguments)},rc=a._emscripten_enum_draco_MeshEncoderMethod_MESH_SEQUENTIAL_ENCODING= -function(){return(rc=a._emscripten_enum_draco_MeshEncoderMethod_MESH_SEQUENTIAL_ENCODING=a.asm.Ta).apply(null,arguments)},sc=a._emscripten_enum_draco_MeshEncoderMethod_MESH_EDGEBREAKER_ENCODING=function(){return(sc=a._emscripten_enum_draco_MeshEncoderMethod_MESH_EDGEBREAKER_ENCODING=a.asm.Ua).apply(null,arguments)},Qa=a._malloc=function(){return(Qa=a._malloc=a.asm.Va).apply(null,arguments)};a._free=function(){return(a._free=a.asm.Wa).apply(null,arguments)};var ua=a.___cxa_is_pointer_type=function(){return(ua= -a.___cxa_is_pointer_type=a.asm.Xa).apply(null,arguments)},ca;aa=function b(){ca||G();ca||(aa=b)};a.run=G;if(a.preInit)for("function"==typeof a.preInit&&(a.preInit=[a.preInit]);0=n.size?(0>>=0;switch(c.BYTES_PER_ELEMENT){case 2:d>>>=1;break;case 4:d>>>=2;break;case 8:d>>>=3}for(var e=0;e>2]=b};this.get_type=function(){return T[this.ptr+4>>2]};this.set_destructor=function(b){T[this.ptr+8>>2]=b};this.get_destructor=function(){return T[this.ptr+8>>2]};this.set_refcount= +function(b){S[this.ptr>>2]=b};this.set_caught=function(b){O[this.ptr+12>>0]=b?1:0};this.get_caught=function(){return 0!=O[this.ptr+12>>0]};this.set_rethrown=function(b){O[this.ptr+13>>0]=b?1:0};this.get_rethrown=function(){return 0!=O[this.ptr+13>>0]};this.init=function(b,c){this.set_adjusted_ptr(0);this.set_type(b);this.set_destructor(c);this.set_refcount(0);this.set_caught(!1);this.set_rethrown(!1)};this.add_ref=function(){S[this.ptr>>2]+=1};this.release_ref=function(){var b=S[this.ptr>>2];S[this.ptr>> +2]=b-1;return 1===b};this.set_adjusted_ptr=function(b){T[this.ptr+16>>2]=b};this.get_adjusted_ptr=function(){return T[this.ptr+16>>2]};this.get_exception_ptr=function(){if(pa(this.get_type()))return T[this.excPtr>>2];var b=this.get_adjusted_ptr();return 0!==b?b:this.excPtr}}function B(f){function b(){if(!ca&&(ca=!0,a.calledRun=!0,!na)){qa=!0;q(ka);ra(a);if(a.onRuntimeInitialized)a.onRuntimeInitialized();if(a.postRun)for("function"==typeof a.postRun&&(a.postRun=[a.postRun]);a.postRun.length;)sa.unshift(a.postRun.shift()); +q(sa)}}if(!(0=d?b++:2047>=d?b+=2:55296<=d&&57343>=d?(b+=4,++c):b+=3}b=Array(b+1);c=0;d=b.length;if(0=g){var t=f.charCodeAt(++e);g=65536+((g&1023)<<10)|t&1023}if(127>=g){if(c>=d)break;b[c++]=g}else{if(2047>=g){if(c+1>=d)break;b[c++]=192|g>>6}else{if(65535>=g){if(c+2>=d)break;b[c++]=224|g>>12}else{if(c+3>=d)break;b[c++]=240|g>>18;b[c++]=128|g>>12&63}b[c++]=128|g>>6&63}b[c++]=128|g&63}}b[c]=0}f=n.alloc(b,O);n.copy(b,O,f);return f}return f} +function Q(f){if("object"===typeof f){var b=n.alloc(f,O);n.copy(f,O,b);return b}return f}function R(f){if("object"===typeof f){var b=n.alloc(f,ea);n.copy(f,ea,b);return b}return f}function V(f){if("object"===typeof f){var b=n.alloc(f,S);n.copy(f,S,b);return b}return f}function Z(f){if("object"===typeof f){var b=n.alloc(f,ha);n.copy(f,ha,b);return b}return f}function P(){throw"cannot construct a VoidPtr, no constructor in IDL";}function M(){this.ptr=ua();D(M)[this.ptr]=this}function z(){this.ptr=va(); +D(z)[this.ptr]=this}function G(){this.ptr=wa();D(G)[this.ptr]=this}function E(){this.ptr=xa();D(E)[this.ptr]=this}function N(){this.ptr=ya();D(N)[this.ptr]=this}function H(){this.ptr=za();D(H)[this.ptr]=this}function F(){this.ptr=Aa();D(F)[this.ptr]=this}function x(){this.ptr=Ba();D(x)[this.ptr]=this}function u(){this.ptr=Ca();D(u)[this.ptr]=this}function y(){this.ptr=Da();D(y)[this.ptr]=this}function A(f){f&&"object"===typeof f&&(f=f.ptr);this.ptr=Ea(f);D(A)[this.ptr]=this}p=p||{};var a="undefined"!= +typeof p?p:{},ra,ba;a.ready=new Promise(function(f,b){ra=f;ba=b});var Fa=!1,Ga=!1;a.onRuntimeInitialized=function(){Fa=!0;if(Ga&&"function"===typeof a.onModuleLoaded)a.onModuleLoaded(a)};a.onModuleParsed=function(){Ga=!0;if(Fa&&"function"===typeof a.onModuleLoaded)a.onModuleLoaded(a)};a.isVersionSupported=function(f){if("string"!==typeof f)return!1;f=f.split(".");return 2>f.length||3=f[1]?!0:0!=f[0]||10>>=0;if(2147483648=c;c*=2){var d=b*(1+.2/c);d=Math.min(d,f+100663296);var e=Math;d=Math.max(f,d);e=e.min.call(e,2147483648, +d+(65536-d%65536)%65536);a:{try{da.grow(e-ma.byteLength+65535>>>16);r(da.buffer);var g=1;break a}catch(t){}g=void 0}if(g)return!0}return!1}};(function(){function f(e,g){a.asm=e.exports;da=a.asm.f;r(da.buffer);ka.unshift(a.asm.g);U--;a.monitorRunDependencies&&a.monitorRunDependencies(U);0==U&&(null!==la&&(clearInterval(la),la=null),aa&&(e=aa,aa=null,e()))}function b(e){f(e.instance)}function c(e){return h().then(function(g){return WebAssembly.instantiate(g,d)}).then(function(g){return g}).then(e,function(g){W("failed to asynchronously prepare wasm: "+ +g);k(g)})}var d={a:qc};U++;a.monitorRunDependencies&&a.monitorRunDependencies(U);if(a.instantiateWasm)try{return a.instantiateWasm(d,f)}catch(e){W("Module.instantiateWasm callback failed with error: "+e),ba(e)}(function(){return X||"function"!=typeof WebAssembly.instantiateStreaming||K.startsWith("data:application/octet-stream;base64,")||K.startsWith("file://")||Ia||"function"!=typeof fetch?c(b):fetch(K,{credentials:"same-origin"}).then(function(e){return WebAssembly.instantiateStreaming(e,d).then(b, +function(g){W("wasm streaming compile failed: "+g);W("falling back to ArrayBuffer instantiation");return c(b)})})})().catch(ba);return{}})();a.___wasm_call_ctors=function(){return(a.___wasm_call_ctors=a.asm.g).apply(null,arguments)};var Na=a._emscripten_bind_VoidPtr___destroy___0=function(){return(Na=a._emscripten_bind_VoidPtr___destroy___0=a.asm.i).apply(null,arguments)},ua=a._emscripten_bind_GeometryAttribute_GeometryAttribute_0=function(){return(ua=a._emscripten_bind_GeometryAttribute_GeometryAttribute_0= +a.asm.j).apply(null,arguments)},Oa=a._emscripten_bind_GeometryAttribute___destroy___0=function(){return(Oa=a._emscripten_bind_GeometryAttribute___destroy___0=a.asm.k).apply(null,arguments)},va=a._emscripten_bind_PointAttribute_PointAttribute_0=function(){return(va=a._emscripten_bind_PointAttribute_PointAttribute_0=a.asm.l).apply(null,arguments)},Pa=a._emscripten_bind_PointAttribute_size_0=function(){return(Pa=a._emscripten_bind_PointAttribute_size_0=a.asm.m).apply(null,arguments)},Qa=a._emscripten_bind_PointAttribute_attribute_type_0= +function(){return(Qa=a._emscripten_bind_PointAttribute_attribute_type_0=a.asm.n).apply(null,arguments)},Ra=a._emscripten_bind_PointAttribute_data_type_0=function(){return(Ra=a._emscripten_bind_PointAttribute_data_type_0=a.asm.o).apply(null,arguments)},Sa=a._emscripten_bind_PointAttribute_num_components_0=function(){return(Sa=a._emscripten_bind_PointAttribute_num_components_0=a.asm.p).apply(null,arguments)},Ta=a._emscripten_bind_PointAttribute_normalized_0=function(){return(Ta=a._emscripten_bind_PointAttribute_normalized_0= +a.asm.q).apply(null,arguments)},Ua=a._emscripten_bind_PointAttribute_byte_stride_0=function(){return(Ua=a._emscripten_bind_PointAttribute_byte_stride_0=a.asm.r).apply(null,arguments)},Va=a._emscripten_bind_PointAttribute_byte_offset_0=function(){return(Va=a._emscripten_bind_PointAttribute_byte_offset_0=a.asm.s).apply(null,arguments)},Wa=a._emscripten_bind_PointAttribute_unique_id_0=function(){return(Wa=a._emscripten_bind_PointAttribute_unique_id_0=a.asm.t).apply(null,arguments)},Xa=a._emscripten_bind_PointAttribute___destroy___0= +function(){return(Xa=a._emscripten_bind_PointAttribute___destroy___0=a.asm.u).apply(null,arguments)},wa=a._emscripten_bind_PointCloud_PointCloud_0=function(){return(wa=a._emscripten_bind_PointCloud_PointCloud_0=a.asm.v).apply(null,arguments)},Ya=a._emscripten_bind_PointCloud_num_attributes_0=function(){return(Ya=a._emscripten_bind_PointCloud_num_attributes_0=a.asm.w).apply(null,arguments)},Za=a._emscripten_bind_PointCloud_num_points_0=function(){return(Za=a._emscripten_bind_PointCloud_num_points_0= +a.asm.x).apply(null,arguments)},$a=a._emscripten_bind_PointCloud___destroy___0=function(){return($a=a._emscripten_bind_PointCloud___destroy___0=a.asm.y).apply(null,arguments)},xa=a._emscripten_bind_Mesh_Mesh_0=function(){return(xa=a._emscripten_bind_Mesh_Mesh_0=a.asm.z).apply(null,arguments)},ab=a._emscripten_bind_Mesh_num_faces_0=function(){return(ab=a._emscripten_bind_Mesh_num_faces_0=a.asm.A).apply(null,arguments)},bb=a._emscripten_bind_Mesh_num_attributes_0=function(){return(bb=a._emscripten_bind_Mesh_num_attributes_0= +a.asm.B).apply(null,arguments)},cb=a._emscripten_bind_Mesh_num_points_0=function(){return(cb=a._emscripten_bind_Mesh_num_points_0=a.asm.C).apply(null,arguments)},db=a._emscripten_bind_Mesh_set_num_points_1=function(){return(db=a._emscripten_bind_Mesh_set_num_points_1=a.asm.D).apply(null,arguments)},eb=a._emscripten_bind_Mesh___destroy___0=function(){return(eb=a._emscripten_bind_Mesh___destroy___0=a.asm.E).apply(null,arguments)},ya=a._emscripten_bind_Metadata_Metadata_0=function(){return(ya=a._emscripten_bind_Metadata_Metadata_0= +a.asm.F).apply(null,arguments)},fb=a._emscripten_bind_Metadata___destroy___0=function(){return(fb=a._emscripten_bind_Metadata___destroy___0=a.asm.G).apply(null,arguments)},za=a._emscripten_bind_DracoInt8Array_DracoInt8Array_0=function(){return(za=a._emscripten_bind_DracoInt8Array_DracoInt8Array_0=a.asm.H).apply(null,arguments)},gb=a._emscripten_bind_DracoInt8Array_GetValue_1=function(){return(gb=a._emscripten_bind_DracoInt8Array_GetValue_1=a.asm.I).apply(null,arguments)},hb=a._emscripten_bind_DracoInt8Array_size_0= +function(){return(hb=a._emscripten_bind_DracoInt8Array_size_0=a.asm.J).apply(null,arguments)},ib=a._emscripten_bind_DracoInt8Array___destroy___0=function(){return(ib=a._emscripten_bind_DracoInt8Array___destroy___0=a.asm.K).apply(null,arguments)},Aa=a._emscripten_bind_MetadataBuilder_MetadataBuilder_0=function(){return(Aa=a._emscripten_bind_MetadataBuilder_MetadataBuilder_0=a.asm.L).apply(null,arguments)},jb=a._emscripten_bind_MetadataBuilder_AddStringEntry_3=function(){return(jb=a._emscripten_bind_MetadataBuilder_AddStringEntry_3= +a.asm.M).apply(null,arguments)},kb=a._emscripten_bind_MetadataBuilder_AddIntEntry_3=function(){return(kb=a._emscripten_bind_MetadataBuilder_AddIntEntry_3=a.asm.N).apply(null,arguments)},lb=a._emscripten_bind_MetadataBuilder_AddIntEntryArray_4=function(){return(lb=a._emscripten_bind_MetadataBuilder_AddIntEntryArray_4=a.asm.O).apply(null,arguments)},mb=a._emscripten_bind_MetadataBuilder_AddDoubleEntry_3=function(){return(mb=a._emscripten_bind_MetadataBuilder_AddDoubleEntry_3=a.asm.P).apply(null,arguments)}, +nb=a._emscripten_bind_MetadataBuilder___destroy___0=function(){return(nb=a._emscripten_bind_MetadataBuilder___destroy___0=a.asm.Q).apply(null,arguments)},Ba=a._emscripten_bind_PointCloudBuilder_PointCloudBuilder_0=function(){return(Ba=a._emscripten_bind_PointCloudBuilder_PointCloudBuilder_0=a.asm.R).apply(null,arguments)},ob=a._emscripten_bind_PointCloudBuilder_AddFloatAttribute_5=function(){return(ob=a._emscripten_bind_PointCloudBuilder_AddFloatAttribute_5=a.asm.S).apply(null,arguments)},pb=a._emscripten_bind_PointCloudBuilder_AddInt8Attribute_5= +function(){return(pb=a._emscripten_bind_PointCloudBuilder_AddInt8Attribute_5=a.asm.T).apply(null,arguments)},qb=a._emscripten_bind_PointCloudBuilder_AddUInt8Attribute_5=function(){return(qb=a._emscripten_bind_PointCloudBuilder_AddUInt8Attribute_5=a.asm.U).apply(null,arguments)},rb=a._emscripten_bind_PointCloudBuilder_AddInt16Attribute_5=function(){return(rb=a._emscripten_bind_PointCloudBuilder_AddInt16Attribute_5=a.asm.V).apply(null,arguments)},sb=a._emscripten_bind_PointCloudBuilder_AddUInt16Attribute_5= +function(){return(sb=a._emscripten_bind_PointCloudBuilder_AddUInt16Attribute_5=a.asm.W).apply(null,arguments)},tb=a._emscripten_bind_PointCloudBuilder_AddInt32Attribute_5=function(){return(tb=a._emscripten_bind_PointCloudBuilder_AddInt32Attribute_5=a.asm.X).apply(null,arguments)},ub=a._emscripten_bind_PointCloudBuilder_AddUInt32Attribute_5=function(){return(ub=a._emscripten_bind_PointCloudBuilder_AddUInt32Attribute_5=a.asm.Y).apply(null,arguments)},vb=a._emscripten_bind_PointCloudBuilder_AddMetadata_2= +function(){return(vb=a._emscripten_bind_PointCloudBuilder_AddMetadata_2=a.asm.Z).apply(null,arguments)},wb=a._emscripten_bind_PointCloudBuilder_SetMetadataForAttribute_3=function(){return(wb=a._emscripten_bind_PointCloudBuilder_SetMetadataForAttribute_3=a.asm._).apply(null,arguments)},xb=a._emscripten_bind_PointCloudBuilder___destroy___0=function(){return(xb=a._emscripten_bind_PointCloudBuilder___destroy___0=a.asm.$).apply(null,arguments)},Ca=a._emscripten_bind_MeshBuilder_MeshBuilder_0=function(){return(Ca= +a._emscripten_bind_MeshBuilder_MeshBuilder_0=a.asm.aa).apply(null,arguments)},yb=a._emscripten_bind_MeshBuilder_AddFacesToMesh_3=function(){return(yb=a._emscripten_bind_MeshBuilder_AddFacesToMesh_3=a.asm.ba).apply(null,arguments)},zb=a._emscripten_bind_MeshBuilder_AddFloatAttributeToMesh_5=function(){return(zb=a._emscripten_bind_MeshBuilder_AddFloatAttributeToMesh_5=a.asm.ca).apply(null,arguments)},Ab=a._emscripten_bind_MeshBuilder_AddInt32AttributeToMesh_5=function(){return(Ab=a._emscripten_bind_MeshBuilder_AddInt32AttributeToMesh_5= +a.asm.da).apply(null,arguments)},Bb=a._emscripten_bind_MeshBuilder_AddMetadataToMesh_2=function(){return(Bb=a._emscripten_bind_MeshBuilder_AddMetadataToMesh_2=a.asm.ea).apply(null,arguments)},Cb=a._emscripten_bind_MeshBuilder_AddFloatAttribute_5=function(){return(Cb=a._emscripten_bind_MeshBuilder_AddFloatAttribute_5=a.asm.fa).apply(null,arguments)},Db=a._emscripten_bind_MeshBuilder_AddInt8Attribute_5=function(){return(Db=a._emscripten_bind_MeshBuilder_AddInt8Attribute_5=a.asm.ga).apply(null,arguments)}, +Eb=a._emscripten_bind_MeshBuilder_AddUInt8Attribute_5=function(){return(Eb=a._emscripten_bind_MeshBuilder_AddUInt8Attribute_5=a.asm.ha).apply(null,arguments)},Fb=a._emscripten_bind_MeshBuilder_AddInt16Attribute_5=function(){return(Fb=a._emscripten_bind_MeshBuilder_AddInt16Attribute_5=a.asm.ia).apply(null,arguments)},Gb=a._emscripten_bind_MeshBuilder_AddUInt16Attribute_5=function(){return(Gb=a._emscripten_bind_MeshBuilder_AddUInt16Attribute_5=a.asm.ja).apply(null,arguments)},Hb=a._emscripten_bind_MeshBuilder_AddInt32Attribute_5= +function(){return(Hb=a._emscripten_bind_MeshBuilder_AddInt32Attribute_5=a.asm.ka).apply(null,arguments)},Ib=a._emscripten_bind_MeshBuilder_AddUInt32Attribute_5=function(){return(Ib=a._emscripten_bind_MeshBuilder_AddUInt32Attribute_5=a.asm.la).apply(null,arguments)},Jb=a._emscripten_bind_MeshBuilder_AddMetadata_2=function(){return(Jb=a._emscripten_bind_MeshBuilder_AddMetadata_2=a.asm.ma).apply(null,arguments)},Kb=a._emscripten_bind_MeshBuilder_SetMetadataForAttribute_3=function(){return(Kb=a._emscripten_bind_MeshBuilder_SetMetadataForAttribute_3= +a.asm.na).apply(null,arguments)},Lb=a._emscripten_bind_MeshBuilder___destroy___0=function(){return(Lb=a._emscripten_bind_MeshBuilder___destroy___0=a.asm.oa).apply(null,arguments)},Da=a._emscripten_bind_Encoder_Encoder_0=function(){return(Da=a._emscripten_bind_Encoder_Encoder_0=a.asm.pa).apply(null,arguments)},Mb=a._emscripten_bind_Encoder_SetEncodingMethod_1=function(){return(Mb=a._emscripten_bind_Encoder_SetEncodingMethod_1=a.asm.qa).apply(null,arguments)},Nb=a._emscripten_bind_Encoder_SetAttributeQuantization_2= +function(){return(Nb=a._emscripten_bind_Encoder_SetAttributeQuantization_2=a.asm.ra).apply(null,arguments)},Ob=a._emscripten_bind_Encoder_SetAttributeExplicitQuantization_5=function(){return(Ob=a._emscripten_bind_Encoder_SetAttributeExplicitQuantization_5=a.asm.sa).apply(null,arguments)},Pb=a._emscripten_bind_Encoder_SetSpeedOptions_2=function(){return(Pb=a._emscripten_bind_Encoder_SetSpeedOptions_2=a.asm.ta).apply(null,arguments)},Qb=a._emscripten_bind_Encoder_SetTrackEncodedProperties_1=function(){return(Qb= +a._emscripten_bind_Encoder_SetTrackEncodedProperties_1=a.asm.ua).apply(null,arguments)},Rb=a._emscripten_bind_Encoder_EncodeMeshToDracoBuffer_2=function(){return(Rb=a._emscripten_bind_Encoder_EncodeMeshToDracoBuffer_2=a.asm.va).apply(null,arguments)},Sb=a._emscripten_bind_Encoder_EncodePointCloudToDracoBuffer_3=function(){return(Sb=a._emscripten_bind_Encoder_EncodePointCloudToDracoBuffer_3=a.asm.wa).apply(null,arguments)},Tb=a._emscripten_bind_Encoder_GetNumberOfEncodedPoints_0=function(){return(Tb= +a._emscripten_bind_Encoder_GetNumberOfEncodedPoints_0=a.asm.xa).apply(null,arguments)},Ub=a._emscripten_bind_Encoder_GetNumberOfEncodedFaces_0=function(){return(Ub=a._emscripten_bind_Encoder_GetNumberOfEncodedFaces_0=a.asm.ya).apply(null,arguments)},Vb=a._emscripten_bind_Encoder___destroy___0=function(){return(Vb=a._emscripten_bind_Encoder___destroy___0=a.asm.za).apply(null,arguments)},Ea=a._emscripten_bind_ExpertEncoder_ExpertEncoder_1=function(){return(Ea=a._emscripten_bind_ExpertEncoder_ExpertEncoder_1= +a.asm.Aa).apply(null,arguments)},Wb=a._emscripten_bind_ExpertEncoder_SetEncodingMethod_1=function(){return(Wb=a._emscripten_bind_ExpertEncoder_SetEncodingMethod_1=a.asm.Ba).apply(null,arguments)},Xb=a._emscripten_bind_ExpertEncoder_SetAttributeQuantization_2=function(){return(Xb=a._emscripten_bind_ExpertEncoder_SetAttributeQuantization_2=a.asm.Ca).apply(null,arguments)},Yb=a._emscripten_bind_ExpertEncoder_SetAttributeExplicitQuantization_5=function(){return(Yb=a._emscripten_bind_ExpertEncoder_SetAttributeExplicitQuantization_5= +a.asm.Da).apply(null,arguments)},Zb=a._emscripten_bind_ExpertEncoder_SetSpeedOptions_2=function(){return(Zb=a._emscripten_bind_ExpertEncoder_SetSpeedOptions_2=a.asm.Ea).apply(null,arguments)},$b=a._emscripten_bind_ExpertEncoder_SetTrackEncodedProperties_1=function(){return($b=a._emscripten_bind_ExpertEncoder_SetTrackEncodedProperties_1=a.asm.Fa).apply(null,arguments)},ac=a._emscripten_bind_ExpertEncoder_EncodeToDracoBuffer_2=function(){return(ac=a._emscripten_bind_ExpertEncoder_EncodeToDracoBuffer_2= +a.asm.Ga).apply(null,arguments)},bc=a._emscripten_bind_ExpertEncoder_GetNumberOfEncodedPoints_0=function(){return(bc=a._emscripten_bind_ExpertEncoder_GetNumberOfEncodedPoints_0=a.asm.Ha).apply(null,arguments)},cc=a._emscripten_bind_ExpertEncoder_GetNumberOfEncodedFaces_0=function(){return(cc=a._emscripten_bind_ExpertEncoder_GetNumberOfEncodedFaces_0=a.asm.Ia).apply(null,arguments)},dc=a._emscripten_bind_ExpertEncoder___destroy___0=function(){return(dc=a._emscripten_bind_ExpertEncoder___destroy___0= +a.asm.Ja).apply(null,arguments)},ec=a._emscripten_enum_draco_GeometryAttribute_Type_INVALID=function(){return(ec=a._emscripten_enum_draco_GeometryAttribute_Type_INVALID=a.asm.Ka).apply(null,arguments)},fc=a._emscripten_enum_draco_GeometryAttribute_Type_POSITION=function(){return(fc=a._emscripten_enum_draco_GeometryAttribute_Type_POSITION=a.asm.La).apply(null,arguments)},gc=a._emscripten_enum_draco_GeometryAttribute_Type_NORMAL=function(){return(gc=a._emscripten_enum_draco_GeometryAttribute_Type_NORMAL= +a.asm.Ma).apply(null,arguments)},hc=a._emscripten_enum_draco_GeometryAttribute_Type_COLOR=function(){return(hc=a._emscripten_enum_draco_GeometryAttribute_Type_COLOR=a.asm.Na).apply(null,arguments)},ic=a._emscripten_enum_draco_GeometryAttribute_Type_TEX_COORD=function(){return(ic=a._emscripten_enum_draco_GeometryAttribute_Type_TEX_COORD=a.asm.Oa).apply(null,arguments)},jc=a._emscripten_enum_draco_GeometryAttribute_Type_GENERIC=function(){return(jc=a._emscripten_enum_draco_GeometryAttribute_Type_GENERIC= +a.asm.Pa).apply(null,arguments)},kc=a._emscripten_enum_draco_EncodedGeometryType_INVALID_GEOMETRY_TYPE=function(){return(kc=a._emscripten_enum_draco_EncodedGeometryType_INVALID_GEOMETRY_TYPE=a.asm.Qa).apply(null,arguments)},lc=a._emscripten_enum_draco_EncodedGeometryType_POINT_CLOUD=function(){return(lc=a._emscripten_enum_draco_EncodedGeometryType_POINT_CLOUD=a.asm.Ra).apply(null,arguments)},mc=a._emscripten_enum_draco_EncodedGeometryType_TRIANGULAR_MESH=function(){return(mc=a._emscripten_enum_draco_EncodedGeometryType_TRIANGULAR_MESH= +a.asm.Sa).apply(null,arguments)},nc=a._emscripten_enum_draco_MeshEncoderMethod_MESH_SEQUENTIAL_ENCODING=function(){return(nc=a._emscripten_enum_draco_MeshEncoderMethod_MESH_SEQUENTIAL_ENCODING=a.asm.Ta).apply(null,arguments)},oc=a._emscripten_enum_draco_MeshEncoderMethod_MESH_EDGEBREAKER_ENCODING=function(){return(oc=a._emscripten_enum_draco_MeshEncoderMethod_MESH_EDGEBREAKER_ENCODING=a.asm.Ua).apply(null,arguments)},Ma=a._malloc=function(){return(Ma=a._malloc=a.asm.Va).apply(null,arguments)};a._free= +function(){return(a._free=a.asm.Wa).apply(null,arguments)};var pa=a.___cxa_is_pointer_type=function(){return(pa=a.___cxa_is_pointer_type=a.asm.Xa).apply(null,arguments)};a.___start_em_js=19116;a.___stop_em_js=19214;var ca;aa=function b(){ca||B();ca||(aa=b)};if(a.preInit)for("function"==typeof a.preInit&&(a.preInit=[a.preInit]);0=n.size?(0>>=0;switch(c.BYTES_PER_ELEMENT){case 2:d>>>=1;break;case 4:d>>>=2;break;case 8:d>>>=3}for(var e=0;e { function(DracoDecoderModule) { DracoDecoderModule = DracoDecoderModule || {}; -var Module=typeof DracoDecoderModule!="undefined"?DracoDecoderModule:{};var readyPromiseResolve,readyPromiseReject;Module["ready"]=new Promise(function(resolve,reject){readyPromiseResolve=resolve;readyPromiseReject=reject});if(!Object.getOwnPropertyDescriptor(Module["ready"],"_free")){Object.defineProperty(Module["ready"],"_free",{configurable:true,get:function(){abort("You are getting _free on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}});Object.defineProperty(Module["ready"],"_free",{configurable:true,set:function(){abort("You are setting _free on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}})}if(!Object.getOwnPropertyDescriptor(Module["ready"],"_malloc")){Object.defineProperty(Module["ready"],"_malloc",{configurable:true,get:function(){abort("You are getting _malloc on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}});Object.defineProperty(Module["ready"],"_malloc",{configurable:true,set:function(){abort("You are setting _malloc on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}})}if(!Object.getOwnPropertyDescriptor(Module["ready"],"_emscripten_bind_VoidPtr___destroy___0")){Object.defineProperty(Module["ready"],"_emscripten_bind_VoidPtr___destroy___0",{configurable:true,get:function(){abort("You are getting _emscripten_bind_VoidPtr___destroy___0 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}});Object.defineProperty(Module["ready"],"_emscripten_bind_VoidPtr___destroy___0",{configurable:true,set:function(){abort("You are setting _emscripten_bind_VoidPtr___destroy___0 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}})}if(!Object.getOwnPropertyDescriptor(Module["ready"],"_emscripten_bind_DecoderBuffer_DecoderBuffer_0")){Object.defineProperty(Module["ready"],"_emscripten_bind_DecoderBuffer_DecoderBuffer_0",{configurable:true,get:function(){abort("You are getting _emscripten_bind_DecoderBuffer_DecoderBuffer_0 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}});Object.defineProperty(Module["ready"],"_emscripten_bind_DecoderBuffer_DecoderBuffer_0",{configurable:true,set:function(){abort("You are setting _emscripten_bind_DecoderBuffer_DecoderBuffer_0 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}})}if(!Object.getOwnPropertyDescriptor(Module["ready"],"_emscripten_bind_DecoderBuffer_Init_2")){Object.defineProperty(Module["ready"],"_emscripten_bind_DecoderBuffer_Init_2",{configurable:true,get:function(){abort("You are getting _emscripten_bind_DecoderBuffer_Init_2 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}});Object.defineProperty(Module["ready"],"_emscripten_bind_DecoderBuffer_Init_2",{configurable:true,set:function(){abort("You are setting _emscripten_bind_DecoderBuffer_Init_2 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}})}if(!Object.getOwnPropertyDescriptor(Module["ready"],"_emscripten_bind_DecoderBuffer___destroy___0")){Object.defineProperty(Module["ready"],"_emscripten_bind_DecoderBuffer___destroy___0",{configurable:true,get:function(){abort("You are getting _emscripten_bind_DecoderBuffer___destroy___0 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}});Object.defineProperty(Module["ready"],"_emscripten_bind_DecoderBuffer___destroy___0",{configurable:true,set:function(){abort("You are setting _emscripten_bind_DecoderBuffer___destroy___0 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}})}if(!Object.getOwnPropertyDescriptor(Module["ready"],"_emscripten_bind_AttributeTransformData_AttributeTransformData_0")){Object.defineProperty(Module["ready"],"_emscripten_bind_AttributeTransformData_AttributeTransformData_0",{configurable:true,get:function(){abort("You are getting _emscripten_bind_AttributeTransformData_AttributeTransformData_0 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}});Object.defineProperty(Module["ready"],"_emscripten_bind_AttributeTransformData_AttributeTransformData_0",{configurable:true,set:function(){abort("You are setting _emscripten_bind_AttributeTransformData_AttributeTransformData_0 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}})}if(!Object.getOwnPropertyDescriptor(Module["ready"],"_emscripten_bind_AttributeTransformData_transform_type_0")){Object.defineProperty(Module["ready"],"_emscripten_bind_AttributeTransformData_transform_type_0",{configurable:true,get:function(){abort("You are getting _emscripten_bind_AttributeTransformData_transform_type_0 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}});Object.defineProperty(Module["ready"],"_emscripten_bind_AttributeTransformData_transform_type_0",{configurable:true,set:function(){abort("You are setting _emscripten_bind_AttributeTransformData_transform_type_0 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}})}if(!Object.getOwnPropertyDescriptor(Module["ready"],"_emscripten_bind_AttributeTransformData___destroy___0")){Object.defineProperty(Module["ready"],"_emscripten_bind_AttributeTransformData___destroy___0",{configurable:true,get:function(){abort("You are getting _emscripten_bind_AttributeTransformData___destroy___0 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}});Object.defineProperty(Module["ready"],"_emscripten_bind_AttributeTransformData___destroy___0",{configurable:true,set:function(){abort("You are setting _emscripten_bind_AttributeTransformData___destroy___0 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}})}if(!Object.getOwnPropertyDescriptor(Module["ready"],"_emscripten_bind_GeometryAttribute_GeometryAttribute_0")){Object.defineProperty(Module["ready"],"_emscripten_bind_GeometryAttribute_GeometryAttribute_0",{configurable:true,get:function(){abort("You are getting _emscripten_bind_GeometryAttribute_GeometryAttribute_0 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}});Object.defineProperty(Module["ready"],"_emscripten_bind_GeometryAttribute_GeometryAttribute_0",{configurable:true,set:function(){abort("You are setting _emscripten_bind_GeometryAttribute_GeometryAttribute_0 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}})}if(!Object.getOwnPropertyDescriptor(Module["ready"],"_emscripten_bind_GeometryAttribute___destroy___0")){Object.defineProperty(Module["ready"],"_emscripten_bind_GeometryAttribute___destroy___0",{configurable:true,get:function(){abort("You are getting _emscripten_bind_GeometryAttribute___destroy___0 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}});Object.defineProperty(Module["ready"],"_emscripten_bind_GeometryAttribute___destroy___0",{configurable:true,set:function(){abort("You are setting _emscripten_bind_GeometryAttribute___destroy___0 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}})}if(!Object.getOwnPropertyDescriptor(Module["ready"],"_emscripten_bind_PointAttribute_PointAttribute_0")){Object.defineProperty(Module["ready"],"_emscripten_bind_PointAttribute_PointAttribute_0",{configurable:true,get:function(){abort("You are getting _emscripten_bind_PointAttribute_PointAttribute_0 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}});Object.defineProperty(Module["ready"],"_emscripten_bind_PointAttribute_PointAttribute_0",{configurable:true,set:function(){abort("You are setting _emscripten_bind_PointAttribute_PointAttribute_0 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}})}if(!Object.getOwnPropertyDescriptor(Module["ready"],"_emscripten_bind_PointAttribute_size_0")){Object.defineProperty(Module["ready"],"_emscripten_bind_PointAttribute_size_0",{configurable:true,get:function(){abort("You are getting _emscripten_bind_PointAttribute_size_0 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}});Object.defineProperty(Module["ready"],"_emscripten_bind_PointAttribute_size_0",{configurable:true,set:function(){abort("You are setting _emscripten_bind_PointAttribute_size_0 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}})}if(!Object.getOwnPropertyDescriptor(Module["ready"],"_emscripten_bind_PointAttribute_GetAttributeTransformData_0")){Object.defineProperty(Module["ready"],"_emscripten_bind_PointAttribute_GetAttributeTransformData_0",{configurable:true,get:function(){abort("You are getting _emscripten_bind_PointAttribute_GetAttributeTransformData_0 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}});Object.defineProperty(Module["ready"],"_emscripten_bind_PointAttribute_GetAttributeTransformData_0",{configurable:true,set:function(){abort("You are setting _emscripten_bind_PointAttribute_GetAttributeTransformData_0 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}})}if(!Object.getOwnPropertyDescriptor(Module["ready"],"_emscripten_bind_PointAttribute_attribute_type_0")){Object.defineProperty(Module["ready"],"_emscripten_bind_PointAttribute_attribute_type_0",{configurable:true,get:function(){abort("You are getting _emscripten_bind_PointAttribute_attribute_type_0 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}});Object.defineProperty(Module["ready"],"_emscripten_bind_PointAttribute_attribute_type_0",{configurable:true,set:function(){abort("You are setting _emscripten_bind_PointAttribute_attribute_type_0 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}})}if(!Object.getOwnPropertyDescriptor(Module["ready"],"_emscripten_bind_PointAttribute_data_type_0")){Object.defineProperty(Module["ready"],"_emscripten_bind_PointAttribute_data_type_0",{configurable:true,get:function(){abort("You are getting _emscripten_bind_PointAttribute_data_type_0 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}});Object.defineProperty(Module["ready"],"_emscripten_bind_PointAttribute_data_type_0",{configurable:true,set:function(){abort("You are setting _emscripten_bind_PointAttribute_data_type_0 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}})}if(!Object.getOwnPropertyDescriptor(Module["ready"],"_emscripten_bind_PointAttribute_num_components_0")){Object.defineProperty(Module["ready"],"_emscripten_bind_PointAttribute_num_components_0",{configurable:true,get:function(){abort("You are getting _emscripten_bind_PointAttribute_num_components_0 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}});Object.defineProperty(Module["ready"],"_emscripten_bind_PointAttribute_num_components_0",{configurable:true,set:function(){abort("You are setting _emscripten_bind_PointAttribute_num_components_0 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}})}if(!Object.getOwnPropertyDescriptor(Module["ready"],"_emscripten_bind_PointAttribute_normalized_0")){Object.defineProperty(Module["ready"],"_emscripten_bind_PointAttribute_normalized_0",{configurable:true,get:function(){abort("You are getting _emscripten_bind_PointAttribute_normalized_0 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}});Object.defineProperty(Module["ready"],"_emscripten_bind_PointAttribute_normalized_0",{configurable:true,set:function(){abort("You are setting _emscripten_bind_PointAttribute_normalized_0 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}})}if(!Object.getOwnPropertyDescriptor(Module["ready"],"_emscripten_bind_PointAttribute_byte_stride_0")){Object.defineProperty(Module["ready"],"_emscripten_bind_PointAttribute_byte_stride_0",{configurable:true,get:function(){abort("You are getting _emscripten_bind_PointAttribute_byte_stride_0 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}});Object.defineProperty(Module["ready"],"_emscripten_bind_PointAttribute_byte_stride_0",{configurable:true,set:function(){abort("You are setting _emscripten_bind_PointAttribute_byte_stride_0 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}})}if(!Object.getOwnPropertyDescriptor(Module["ready"],"_emscripten_bind_PointAttribute_byte_offset_0")){Object.defineProperty(Module["ready"],"_emscripten_bind_PointAttribute_byte_offset_0",{configurable:true,get:function(){abort("You are getting _emscripten_bind_PointAttribute_byte_offset_0 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}});Object.defineProperty(Module["ready"],"_emscripten_bind_PointAttribute_byte_offset_0",{configurable:true,set:function(){abort("You are setting _emscripten_bind_PointAttribute_byte_offset_0 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}})}if(!Object.getOwnPropertyDescriptor(Module["ready"],"_emscripten_bind_PointAttribute_unique_id_0")){Object.defineProperty(Module["ready"],"_emscripten_bind_PointAttribute_unique_id_0",{configurable:true,get:function(){abort("You are getting _emscripten_bind_PointAttribute_unique_id_0 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}});Object.defineProperty(Module["ready"],"_emscripten_bind_PointAttribute_unique_id_0",{configurable:true,set:function(){abort("You are setting _emscripten_bind_PointAttribute_unique_id_0 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}})}if(!Object.getOwnPropertyDescriptor(Module["ready"],"_emscripten_bind_PointAttribute___destroy___0")){Object.defineProperty(Module["ready"],"_emscripten_bind_PointAttribute___destroy___0",{configurable:true,get:function(){abort("You are getting _emscripten_bind_PointAttribute___destroy___0 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}});Object.defineProperty(Module["ready"],"_emscripten_bind_PointAttribute___destroy___0",{configurable:true,set:function(){abort("You are setting _emscripten_bind_PointAttribute___destroy___0 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}})}if(!Object.getOwnPropertyDescriptor(Module["ready"],"_emscripten_bind_AttributeQuantizationTransform_AttributeQuantizationTransform_0")){Object.defineProperty(Module["ready"],"_emscripten_bind_AttributeQuantizationTransform_AttributeQuantizationTransform_0",{configurable:true,get:function(){abort("You are getting _emscripten_bind_AttributeQuantizationTransform_AttributeQuantizationTransform_0 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}});Object.defineProperty(Module["ready"],"_emscripten_bind_AttributeQuantizationTransform_AttributeQuantizationTransform_0",{configurable:true,set:function(){abort("You are setting _emscripten_bind_AttributeQuantizationTransform_AttributeQuantizationTransform_0 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}})}if(!Object.getOwnPropertyDescriptor(Module["ready"],"_emscripten_bind_AttributeQuantizationTransform_InitFromAttribute_1")){Object.defineProperty(Module["ready"],"_emscripten_bind_AttributeQuantizationTransform_InitFromAttribute_1",{configurable:true,get:function(){abort("You are getting _emscripten_bind_AttributeQuantizationTransform_InitFromAttribute_1 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}});Object.defineProperty(Module["ready"],"_emscripten_bind_AttributeQuantizationTransform_InitFromAttribute_1",{configurable:true,set:function(){abort("You are setting _emscripten_bind_AttributeQuantizationTransform_InitFromAttribute_1 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}})}if(!Object.getOwnPropertyDescriptor(Module["ready"],"_emscripten_bind_AttributeQuantizationTransform_quantization_bits_0")){Object.defineProperty(Module["ready"],"_emscripten_bind_AttributeQuantizationTransform_quantization_bits_0",{configurable:true,get:function(){abort("You are getting _emscripten_bind_AttributeQuantizationTransform_quantization_bits_0 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}});Object.defineProperty(Module["ready"],"_emscripten_bind_AttributeQuantizationTransform_quantization_bits_0",{configurable:true,set:function(){abort("You are setting _emscripten_bind_AttributeQuantizationTransform_quantization_bits_0 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}})}if(!Object.getOwnPropertyDescriptor(Module["ready"],"_emscripten_bind_AttributeQuantizationTransform_min_value_1")){Object.defineProperty(Module["ready"],"_emscripten_bind_AttributeQuantizationTransform_min_value_1",{configurable:true,get:function(){abort("You are getting _emscripten_bind_AttributeQuantizationTransform_min_value_1 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}});Object.defineProperty(Module["ready"],"_emscripten_bind_AttributeQuantizationTransform_min_value_1",{configurable:true,set:function(){abort("You are setting _emscripten_bind_AttributeQuantizationTransform_min_value_1 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}})}if(!Object.getOwnPropertyDescriptor(Module["ready"],"_emscripten_bind_AttributeQuantizationTransform_range_0")){Object.defineProperty(Module["ready"],"_emscripten_bind_AttributeQuantizationTransform_range_0",{configurable:true,get:function(){abort("You are getting _emscripten_bind_AttributeQuantizationTransform_range_0 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}});Object.defineProperty(Module["ready"],"_emscripten_bind_AttributeQuantizationTransform_range_0",{configurable:true,set:function(){abort("You are setting _emscripten_bind_AttributeQuantizationTransform_range_0 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}})}if(!Object.getOwnPropertyDescriptor(Module["ready"],"_emscripten_bind_AttributeQuantizationTransform___destroy___0")){Object.defineProperty(Module["ready"],"_emscripten_bind_AttributeQuantizationTransform___destroy___0",{configurable:true,get:function(){abort("You are getting _emscripten_bind_AttributeQuantizationTransform___destroy___0 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}});Object.defineProperty(Module["ready"],"_emscripten_bind_AttributeQuantizationTransform___destroy___0",{configurable:true,set:function(){abort("You are setting _emscripten_bind_AttributeQuantizationTransform___destroy___0 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}})}if(!Object.getOwnPropertyDescriptor(Module["ready"],"_emscripten_bind_AttributeOctahedronTransform_AttributeOctahedronTransform_0")){Object.defineProperty(Module["ready"],"_emscripten_bind_AttributeOctahedronTransform_AttributeOctahedronTransform_0",{configurable:true,get:function(){abort("You are getting _emscripten_bind_AttributeOctahedronTransform_AttributeOctahedronTransform_0 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}});Object.defineProperty(Module["ready"],"_emscripten_bind_AttributeOctahedronTransform_AttributeOctahedronTransform_0",{configurable:true,set:function(){abort("You are setting _emscripten_bind_AttributeOctahedronTransform_AttributeOctahedronTransform_0 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}})}if(!Object.getOwnPropertyDescriptor(Module["ready"],"_emscripten_bind_AttributeOctahedronTransform_InitFromAttribute_1")){Object.defineProperty(Module["ready"],"_emscripten_bind_AttributeOctahedronTransform_InitFromAttribute_1",{configurable:true,get:function(){abort("You are getting _emscripten_bind_AttributeOctahedronTransform_InitFromAttribute_1 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}});Object.defineProperty(Module["ready"],"_emscripten_bind_AttributeOctahedronTransform_InitFromAttribute_1",{configurable:true,set:function(){abort("You are setting _emscripten_bind_AttributeOctahedronTransform_InitFromAttribute_1 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}})}if(!Object.getOwnPropertyDescriptor(Module["ready"],"_emscripten_bind_AttributeOctahedronTransform_quantization_bits_0")){Object.defineProperty(Module["ready"],"_emscripten_bind_AttributeOctahedronTransform_quantization_bits_0",{configurable:true,get:function(){abort("You are getting _emscripten_bind_AttributeOctahedronTransform_quantization_bits_0 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}});Object.defineProperty(Module["ready"],"_emscripten_bind_AttributeOctahedronTransform_quantization_bits_0",{configurable:true,set:function(){abort("You are setting _emscripten_bind_AttributeOctahedronTransform_quantization_bits_0 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}})}if(!Object.getOwnPropertyDescriptor(Module["ready"],"_emscripten_bind_AttributeOctahedronTransform___destroy___0")){Object.defineProperty(Module["ready"],"_emscripten_bind_AttributeOctahedronTransform___destroy___0",{configurable:true,get:function(){abort("You are getting _emscripten_bind_AttributeOctahedronTransform___destroy___0 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}});Object.defineProperty(Module["ready"],"_emscripten_bind_AttributeOctahedronTransform___destroy___0",{configurable:true,set:function(){abort("You are setting _emscripten_bind_AttributeOctahedronTransform___destroy___0 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}})}if(!Object.getOwnPropertyDescriptor(Module["ready"],"_emscripten_bind_PointCloud_PointCloud_0")){Object.defineProperty(Module["ready"],"_emscripten_bind_PointCloud_PointCloud_0",{configurable:true,get:function(){abort("You are getting _emscripten_bind_PointCloud_PointCloud_0 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}});Object.defineProperty(Module["ready"],"_emscripten_bind_PointCloud_PointCloud_0",{configurable:true,set:function(){abort("You are setting _emscripten_bind_PointCloud_PointCloud_0 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}})}if(!Object.getOwnPropertyDescriptor(Module["ready"],"_emscripten_bind_PointCloud_num_attributes_0")){Object.defineProperty(Module["ready"],"_emscripten_bind_PointCloud_num_attributes_0",{configurable:true,get:function(){abort("You are getting _emscripten_bind_PointCloud_num_attributes_0 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}});Object.defineProperty(Module["ready"],"_emscripten_bind_PointCloud_num_attributes_0",{configurable:true,set:function(){abort("You are setting _emscripten_bind_PointCloud_num_attributes_0 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}})}if(!Object.getOwnPropertyDescriptor(Module["ready"],"_emscripten_bind_PointCloud_num_points_0")){Object.defineProperty(Module["ready"],"_emscripten_bind_PointCloud_num_points_0",{configurable:true,get:function(){abort("You are getting _emscripten_bind_PointCloud_num_points_0 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}});Object.defineProperty(Module["ready"],"_emscripten_bind_PointCloud_num_points_0",{configurable:true,set:function(){abort("You are setting _emscripten_bind_PointCloud_num_points_0 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}})}if(!Object.getOwnPropertyDescriptor(Module["ready"],"_emscripten_bind_PointCloud___destroy___0")){Object.defineProperty(Module["ready"],"_emscripten_bind_PointCloud___destroy___0",{configurable:true,get:function(){abort("You are getting _emscripten_bind_PointCloud___destroy___0 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}});Object.defineProperty(Module["ready"],"_emscripten_bind_PointCloud___destroy___0",{configurable:true,set:function(){abort("You are setting _emscripten_bind_PointCloud___destroy___0 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}})}if(!Object.getOwnPropertyDescriptor(Module["ready"],"_emscripten_bind_Mesh_Mesh_0")){Object.defineProperty(Module["ready"],"_emscripten_bind_Mesh_Mesh_0",{configurable:true,get:function(){abort("You are getting _emscripten_bind_Mesh_Mesh_0 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}});Object.defineProperty(Module["ready"],"_emscripten_bind_Mesh_Mesh_0",{configurable:true,set:function(){abort("You are setting _emscripten_bind_Mesh_Mesh_0 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}})}if(!Object.getOwnPropertyDescriptor(Module["ready"],"_emscripten_bind_Mesh_num_faces_0")){Object.defineProperty(Module["ready"],"_emscripten_bind_Mesh_num_faces_0",{configurable:true,get:function(){abort("You are getting _emscripten_bind_Mesh_num_faces_0 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}});Object.defineProperty(Module["ready"],"_emscripten_bind_Mesh_num_faces_0",{configurable:true,set:function(){abort("You are setting _emscripten_bind_Mesh_num_faces_0 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}})}if(!Object.getOwnPropertyDescriptor(Module["ready"],"_emscripten_bind_Mesh_num_attributes_0")){Object.defineProperty(Module["ready"],"_emscripten_bind_Mesh_num_attributes_0",{configurable:true,get:function(){abort("You are getting _emscripten_bind_Mesh_num_attributes_0 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}});Object.defineProperty(Module["ready"],"_emscripten_bind_Mesh_num_attributes_0",{configurable:true,set:function(){abort("You are setting _emscripten_bind_Mesh_num_attributes_0 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}})}if(!Object.getOwnPropertyDescriptor(Module["ready"],"_emscripten_bind_Mesh_num_points_0")){Object.defineProperty(Module["ready"],"_emscripten_bind_Mesh_num_points_0",{configurable:true,get:function(){abort("You are getting _emscripten_bind_Mesh_num_points_0 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}});Object.defineProperty(Module["ready"],"_emscripten_bind_Mesh_num_points_0",{configurable:true,set:function(){abort("You are setting _emscripten_bind_Mesh_num_points_0 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}})}if(!Object.getOwnPropertyDescriptor(Module["ready"],"_emscripten_bind_Mesh___destroy___0")){Object.defineProperty(Module["ready"],"_emscripten_bind_Mesh___destroy___0",{configurable:true,get:function(){abort("You are getting _emscripten_bind_Mesh___destroy___0 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}});Object.defineProperty(Module["ready"],"_emscripten_bind_Mesh___destroy___0",{configurable:true,set:function(){abort("You are setting _emscripten_bind_Mesh___destroy___0 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}})}if(!Object.getOwnPropertyDescriptor(Module["ready"],"_emscripten_bind_Metadata_Metadata_0")){Object.defineProperty(Module["ready"],"_emscripten_bind_Metadata_Metadata_0",{configurable:true,get:function(){abort("You are getting _emscripten_bind_Metadata_Metadata_0 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}});Object.defineProperty(Module["ready"],"_emscripten_bind_Metadata_Metadata_0",{configurable:true,set:function(){abort("You are setting _emscripten_bind_Metadata_Metadata_0 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}})}if(!Object.getOwnPropertyDescriptor(Module["ready"],"_emscripten_bind_Metadata___destroy___0")){Object.defineProperty(Module["ready"],"_emscripten_bind_Metadata___destroy___0",{configurable:true,get:function(){abort("You are getting _emscripten_bind_Metadata___destroy___0 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}});Object.defineProperty(Module["ready"],"_emscripten_bind_Metadata___destroy___0",{configurable:true,set:function(){abort("You are setting _emscripten_bind_Metadata___destroy___0 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}})}if(!Object.getOwnPropertyDescriptor(Module["ready"],"_emscripten_bind_Status_code_0")){Object.defineProperty(Module["ready"],"_emscripten_bind_Status_code_0",{configurable:true,get:function(){abort("You are getting _emscripten_bind_Status_code_0 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}});Object.defineProperty(Module["ready"],"_emscripten_bind_Status_code_0",{configurable:true,set:function(){abort("You are setting _emscripten_bind_Status_code_0 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}})}if(!Object.getOwnPropertyDescriptor(Module["ready"],"_emscripten_bind_Status_ok_0")){Object.defineProperty(Module["ready"],"_emscripten_bind_Status_ok_0",{configurable:true,get:function(){abort("You are getting _emscripten_bind_Status_ok_0 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}});Object.defineProperty(Module["ready"],"_emscripten_bind_Status_ok_0",{configurable:true,set:function(){abort("You are setting _emscripten_bind_Status_ok_0 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}})}if(!Object.getOwnPropertyDescriptor(Module["ready"],"_emscripten_bind_Status_error_msg_0")){Object.defineProperty(Module["ready"],"_emscripten_bind_Status_error_msg_0",{configurable:true,get:function(){abort("You are getting _emscripten_bind_Status_error_msg_0 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}});Object.defineProperty(Module["ready"],"_emscripten_bind_Status_error_msg_0",{configurable:true,set:function(){abort("You are setting _emscripten_bind_Status_error_msg_0 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}})}if(!Object.getOwnPropertyDescriptor(Module["ready"],"_emscripten_bind_Status___destroy___0")){Object.defineProperty(Module["ready"],"_emscripten_bind_Status___destroy___0",{configurable:true,get:function(){abort("You are getting _emscripten_bind_Status___destroy___0 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}});Object.defineProperty(Module["ready"],"_emscripten_bind_Status___destroy___0",{configurable:true,set:function(){abort("You are setting _emscripten_bind_Status___destroy___0 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}})}if(!Object.getOwnPropertyDescriptor(Module["ready"],"_emscripten_bind_DracoFloat32Array_DracoFloat32Array_0")){Object.defineProperty(Module["ready"],"_emscripten_bind_DracoFloat32Array_DracoFloat32Array_0",{configurable:true,get:function(){abort("You are getting _emscripten_bind_DracoFloat32Array_DracoFloat32Array_0 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}});Object.defineProperty(Module["ready"],"_emscripten_bind_DracoFloat32Array_DracoFloat32Array_0",{configurable:true,set:function(){abort("You are setting _emscripten_bind_DracoFloat32Array_DracoFloat32Array_0 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}})}if(!Object.getOwnPropertyDescriptor(Module["ready"],"_emscripten_bind_DracoFloat32Array_GetValue_1")){Object.defineProperty(Module["ready"],"_emscripten_bind_DracoFloat32Array_GetValue_1",{configurable:true,get:function(){abort("You are getting _emscripten_bind_DracoFloat32Array_GetValue_1 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}});Object.defineProperty(Module["ready"],"_emscripten_bind_DracoFloat32Array_GetValue_1",{configurable:true,set:function(){abort("You are setting _emscripten_bind_DracoFloat32Array_GetValue_1 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}})}if(!Object.getOwnPropertyDescriptor(Module["ready"],"_emscripten_bind_DracoFloat32Array_size_0")){Object.defineProperty(Module["ready"],"_emscripten_bind_DracoFloat32Array_size_0",{configurable:true,get:function(){abort("You are getting _emscripten_bind_DracoFloat32Array_size_0 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}});Object.defineProperty(Module["ready"],"_emscripten_bind_DracoFloat32Array_size_0",{configurable:true,set:function(){abort("You are setting _emscripten_bind_DracoFloat32Array_size_0 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}})}if(!Object.getOwnPropertyDescriptor(Module["ready"],"_emscripten_bind_DracoFloat32Array___destroy___0")){Object.defineProperty(Module["ready"],"_emscripten_bind_DracoFloat32Array___destroy___0",{configurable:true,get:function(){abort("You are getting _emscripten_bind_DracoFloat32Array___destroy___0 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}});Object.defineProperty(Module["ready"],"_emscripten_bind_DracoFloat32Array___destroy___0",{configurable:true,set:function(){abort("You are setting _emscripten_bind_DracoFloat32Array___destroy___0 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}})}if(!Object.getOwnPropertyDescriptor(Module["ready"],"_emscripten_bind_DracoInt8Array_DracoInt8Array_0")){Object.defineProperty(Module["ready"],"_emscripten_bind_DracoInt8Array_DracoInt8Array_0",{configurable:true,get:function(){abort("You are getting _emscripten_bind_DracoInt8Array_DracoInt8Array_0 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}});Object.defineProperty(Module["ready"],"_emscripten_bind_DracoInt8Array_DracoInt8Array_0",{configurable:true,set:function(){abort("You are setting _emscripten_bind_DracoInt8Array_DracoInt8Array_0 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}})}if(!Object.getOwnPropertyDescriptor(Module["ready"],"_emscripten_bind_DracoInt8Array_GetValue_1")){Object.defineProperty(Module["ready"],"_emscripten_bind_DracoInt8Array_GetValue_1",{configurable:true,get:function(){abort("You are getting _emscripten_bind_DracoInt8Array_GetValue_1 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}});Object.defineProperty(Module["ready"],"_emscripten_bind_DracoInt8Array_GetValue_1",{configurable:true,set:function(){abort("You are setting _emscripten_bind_DracoInt8Array_GetValue_1 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}})}if(!Object.getOwnPropertyDescriptor(Module["ready"],"_emscripten_bind_DracoInt8Array_size_0")){Object.defineProperty(Module["ready"],"_emscripten_bind_DracoInt8Array_size_0",{configurable:true,get:function(){abort("You are getting _emscripten_bind_DracoInt8Array_size_0 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}});Object.defineProperty(Module["ready"],"_emscripten_bind_DracoInt8Array_size_0",{configurable:true,set:function(){abort("You are setting _emscripten_bind_DracoInt8Array_size_0 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}})}if(!Object.getOwnPropertyDescriptor(Module["ready"],"_emscripten_bind_DracoInt8Array___destroy___0")){Object.defineProperty(Module["ready"],"_emscripten_bind_DracoInt8Array___destroy___0",{configurable:true,get:function(){abort("You are getting _emscripten_bind_DracoInt8Array___destroy___0 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}});Object.defineProperty(Module["ready"],"_emscripten_bind_DracoInt8Array___destroy___0",{configurable:true,set:function(){abort("You are setting _emscripten_bind_DracoInt8Array___destroy___0 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}})}if(!Object.getOwnPropertyDescriptor(Module["ready"],"_emscripten_bind_DracoUInt8Array_DracoUInt8Array_0")){Object.defineProperty(Module["ready"],"_emscripten_bind_DracoUInt8Array_DracoUInt8Array_0",{configurable:true,get:function(){abort("You are getting _emscripten_bind_DracoUInt8Array_DracoUInt8Array_0 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}});Object.defineProperty(Module["ready"],"_emscripten_bind_DracoUInt8Array_DracoUInt8Array_0",{configurable:true,set:function(){abort("You are setting _emscripten_bind_DracoUInt8Array_DracoUInt8Array_0 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}})}if(!Object.getOwnPropertyDescriptor(Module["ready"],"_emscripten_bind_DracoUInt8Array_GetValue_1")){Object.defineProperty(Module["ready"],"_emscripten_bind_DracoUInt8Array_GetValue_1",{configurable:true,get:function(){abort("You are getting _emscripten_bind_DracoUInt8Array_GetValue_1 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}});Object.defineProperty(Module["ready"],"_emscripten_bind_DracoUInt8Array_GetValue_1",{configurable:true,set:function(){abort("You are setting _emscripten_bind_DracoUInt8Array_GetValue_1 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}})}if(!Object.getOwnPropertyDescriptor(Module["ready"],"_emscripten_bind_DracoUInt8Array_size_0")){Object.defineProperty(Module["ready"],"_emscripten_bind_DracoUInt8Array_size_0",{configurable:true,get:function(){abort("You are getting _emscripten_bind_DracoUInt8Array_size_0 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}});Object.defineProperty(Module["ready"],"_emscripten_bind_DracoUInt8Array_size_0",{configurable:true,set:function(){abort("You are setting _emscripten_bind_DracoUInt8Array_size_0 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}})}if(!Object.getOwnPropertyDescriptor(Module["ready"],"_emscripten_bind_DracoUInt8Array___destroy___0")){Object.defineProperty(Module["ready"],"_emscripten_bind_DracoUInt8Array___destroy___0",{configurable:true,get:function(){abort("You are getting _emscripten_bind_DracoUInt8Array___destroy___0 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}});Object.defineProperty(Module["ready"],"_emscripten_bind_DracoUInt8Array___destroy___0",{configurable:true,set:function(){abort("You are setting _emscripten_bind_DracoUInt8Array___destroy___0 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}})}if(!Object.getOwnPropertyDescriptor(Module["ready"],"_emscripten_bind_DracoInt16Array_DracoInt16Array_0")){Object.defineProperty(Module["ready"],"_emscripten_bind_DracoInt16Array_DracoInt16Array_0",{configurable:true,get:function(){abort("You are getting _emscripten_bind_DracoInt16Array_DracoInt16Array_0 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}});Object.defineProperty(Module["ready"],"_emscripten_bind_DracoInt16Array_DracoInt16Array_0",{configurable:true,set:function(){abort("You are setting _emscripten_bind_DracoInt16Array_DracoInt16Array_0 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}})}if(!Object.getOwnPropertyDescriptor(Module["ready"],"_emscripten_bind_DracoInt16Array_GetValue_1")){Object.defineProperty(Module["ready"],"_emscripten_bind_DracoInt16Array_GetValue_1",{configurable:true,get:function(){abort("You are getting _emscripten_bind_DracoInt16Array_GetValue_1 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}});Object.defineProperty(Module["ready"],"_emscripten_bind_DracoInt16Array_GetValue_1",{configurable:true,set:function(){abort("You are setting _emscripten_bind_DracoInt16Array_GetValue_1 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}})}if(!Object.getOwnPropertyDescriptor(Module["ready"],"_emscripten_bind_DracoInt16Array_size_0")){Object.defineProperty(Module["ready"],"_emscripten_bind_DracoInt16Array_size_0",{configurable:true,get:function(){abort("You are getting _emscripten_bind_DracoInt16Array_size_0 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}});Object.defineProperty(Module["ready"],"_emscripten_bind_DracoInt16Array_size_0",{configurable:true,set:function(){abort("You are setting _emscripten_bind_DracoInt16Array_size_0 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}})}if(!Object.getOwnPropertyDescriptor(Module["ready"],"_emscripten_bind_DracoInt16Array___destroy___0")){Object.defineProperty(Module["ready"],"_emscripten_bind_DracoInt16Array___destroy___0",{configurable:true,get:function(){abort("You are getting _emscripten_bind_DracoInt16Array___destroy___0 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}});Object.defineProperty(Module["ready"],"_emscripten_bind_DracoInt16Array___destroy___0",{configurable:true,set:function(){abort("You are setting _emscripten_bind_DracoInt16Array___destroy___0 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}})}if(!Object.getOwnPropertyDescriptor(Module["ready"],"_emscripten_bind_DracoUInt16Array_DracoUInt16Array_0")){Object.defineProperty(Module["ready"],"_emscripten_bind_DracoUInt16Array_DracoUInt16Array_0",{configurable:true,get:function(){abort("You are getting _emscripten_bind_DracoUInt16Array_DracoUInt16Array_0 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}});Object.defineProperty(Module["ready"],"_emscripten_bind_DracoUInt16Array_DracoUInt16Array_0",{configurable:true,set:function(){abort("You are setting _emscripten_bind_DracoUInt16Array_DracoUInt16Array_0 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}})}if(!Object.getOwnPropertyDescriptor(Module["ready"],"_emscripten_bind_DracoUInt16Array_GetValue_1")){Object.defineProperty(Module["ready"],"_emscripten_bind_DracoUInt16Array_GetValue_1",{configurable:true,get:function(){abort("You are getting _emscripten_bind_DracoUInt16Array_GetValue_1 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}});Object.defineProperty(Module["ready"],"_emscripten_bind_DracoUInt16Array_GetValue_1",{configurable:true,set:function(){abort("You are setting _emscripten_bind_DracoUInt16Array_GetValue_1 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}})}if(!Object.getOwnPropertyDescriptor(Module["ready"],"_emscripten_bind_DracoUInt16Array_size_0")){Object.defineProperty(Module["ready"],"_emscripten_bind_DracoUInt16Array_size_0",{configurable:true,get:function(){abort("You are getting _emscripten_bind_DracoUInt16Array_size_0 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}});Object.defineProperty(Module["ready"],"_emscripten_bind_DracoUInt16Array_size_0",{configurable:true,set:function(){abort("You are setting _emscripten_bind_DracoUInt16Array_size_0 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}})}if(!Object.getOwnPropertyDescriptor(Module["ready"],"_emscripten_bind_DracoUInt16Array___destroy___0")){Object.defineProperty(Module["ready"],"_emscripten_bind_DracoUInt16Array___destroy___0",{configurable:true,get:function(){abort("You are getting _emscripten_bind_DracoUInt16Array___destroy___0 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}});Object.defineProperty(Module["ready"],"_emscripten_bind_DracoUInt16Array___destroy___0",{configurable:true,set:function(){abort("You are setting _emscripten_bind_DracoUInt16Array___destroy___0 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}})}if(!Object.getOwnPropertyDescriptor(Module["ready"],"_emscripten_bind_DracoInt32Array_DracoInt32Array_0")){Object.defineProperty(Module["ready"],"_emscripten_bind_DracoInt32Array_DracoInt32Array_0",{configurable:true,get:function(){abort("You are getting _emscripten_bind_DracoInt32Array_DracoInt32Array_0 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}});Object.defineProperty(Module["ready"],"_emscripten_bind_DracoInt32Array_DracoInt32Array_0",{configurable:true,set:function(){abort("You are setting _emscripten_bind_DracoInt32Array_DracoInt32Array_0 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}})}if(!Object.getOwnPropertyDescriptor(Module["ready"],"_emscripten_bind_DracoInt32Array_GetValue_1")){Object.defineProperty(Module["ready"],"_emscripten_bind_DracoInt32Array_GetValue_1",{configurable:true,get:function(){abort("You are getting _emscripten_bind_DracoInt32Array_GetValue_1 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}});Object.defineProperty(Module["ready"],"_emscripten_bind_DracoInt32Array_GetValue_1",{configurable:true,set:function(){abort("You are setting _emscripten_bind_DracoInt32Array_GetValue_1 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}})}if(!Object.getOwnPropertyDescriptor(Module["ready"],"_emscripten_bind_DracoInt32Array_size_0")){Object.defineProperty(Module["ready"],"_emscripten_bind_DracoInt32Array_size_0",{configurable:true,get:function(){abort("You are getting _emscripten_bind_DracoInt32Array_size_0 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}});Object.defineProperty(Module["ready"],"_emscripten_bind_DracoInt32Array_size_0",{configurable:true,set:function(){abort("You are setting _emscripten_bind_DracoInt32Array_size_0 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}})}if(!Object.getOwnPropertyDescriptor(Module["ready"],"_emscripten_bind_DracoInt32Array___destroy___0")){Object.defineProperty(Module["ready"],"_emscripten_bind_DracoInt32Array___destroy___0",{configurable:true,get:function(){abort("You are getting _emscripten_bind_DracoInt32Array___destroy___0 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}});Object.defineProperty(Module["ready"],"_emscripten_bind_DracoInt32Array___destroy___0",{configurable:true,set:function(){abort("You are setting _emscripten_bind_DracoInt32Array___destroy___0 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}})}if(!Object.getOwnPropertyDescriptor(Module["ready"],"_emscripten_bind_DracoUInt32Array_DracoUInt32Array_0")){Object.defineProperty(Module["ready"],"_emscripten_bind_DracoUInt32Array_DracoUInt32Array_0",{configurable:true,get:function(){abort("You are getting _emscripten_bind_DracoUInt32Array_DracoUInt32Array_0 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}});Object.defineProperty(Module["ready"],"_emscripten_bind_DracoUInt32Array_DracoUInt32Array_0",{configurable:true,set:function(){abort("You are setting _emscripten_bind_DracoUInt32Array_DracoUInt32Array_0 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}})}if(!Object.getOwnPropertyDescriptor(Module["ready"],"_emscripten_bind_DracoUInt32Array_GetValue_1")){Object.defineProperty(Module["ready"],"_emscripten_bind_DracoUInt32Array_GetValue_1",{configurable:true,get:function(){abort("You are getting _emscripten_bind_DracoUInt32Array_GetValue_1 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}});Object.defineProperty(Module["ready"],"_emscripten_bind_DracoUInt32Array_GetValue_1",{configurable:true,set:function(){abort("You are setting _emscripten_bind_DracoUInt32Array_GetValue_1 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}})}if(!Object.getOwnPropertyDescriptor(Module["ready"],"_emscripten_bind_DracoUInt32Array_size_0")){Object.defineProperty(Module["ready"],"_emscripten_bind_DracoUInt32Array_size_0",{configurable:true,get:function(){abort("You are getting _emscripten_bind_DracoUInt32Array_size_0 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}});Object.defineProperty(Module["ready"],"_emscripten_bind_DracoUInt32Array_size_0",{configurable:true,set:function(){abort("You are setting _emscripten_bind_DracoUInt32Array_size_0 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}})}if(!Object.getOwnPropertyDescriptor(Module["ready"],"_emscripten_bind_DracoUInt32Array___destroy___0")){Object.defineProperty(Module["ready"],"_emscripten_bind_DracoUInt32Array___destroy___0",{configurable:true,get:function(){abort("You are getting _emscripten_bind_DracoUInt32Array___destroy___0 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}});Object.defineProperty(Module["ready"],"_emscripten_bind_DracoUInt32Array___destroy___0",{configurable:true,set:function(){abort("You are setting _emscripten_bind_DracoUInt32Array___destroy___0 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}})}if(!Object.getOwnPropertyDescriptor(Module["ready"],"_emscripten_bind_MetadataQuerier_MetadataQuerier_0")){Object.defineProperty(Module["ready"],"_emscripten_bind_MetadataQuerier_MetadataQuerier_0",{configurable:true,get:function(){abort("You are getting _emscripten_bind_MetadataQuerier_MetadataQuerier_0 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}});Object.defineProperty(Module["ready"],"_emscripten_bind_MetadataQuerier_MetadataQuerier_0",{configurable:true,set:function(){abort("You are setting _emscripten_bind_MetadataQuerier_MetadataQuerier_0 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}})}if(!Object.getOwnPropertyDescriptor(Module["ready"],"_emscripten_bind_MetadataQuerier_HasEntry_2")){Object.defineProperty(Module["ready"],"_emscripten_bind_MetadataQuerier_HasEntry_2",{configurable:true,get:function(){abort("You are getting _emscripten_bind_MetadataQuerier_HasEntry_2 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}});Object.defineProperty(Module["ready"],"_emscripten_bind_MetadataQuerier_HasEntry_2",{configurable:true,set:function(){abort("You are setting _emscripten_bind_MetadataQuerier_HasEntry_2 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}})}if(!Object.getOwnPropertyDescriptor(Module["ready"],"_emscripten_bind_MetadataQuerier_GetIntEntry_2")){Object.defineProperty(Module["ready"],"_emscripten_bind_MetadataQuerier_GetIntEntry_2",{configurable:true,get:function(){abort("You are getting _emscripten_bind_MetadataQuerier_GetIntEntry_2 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}});Object.defineProperty(Module["ready"],"_emscripten_bind_MetadataQuerier_GetIntEntry_2",{configurable:true,set:function(){abort("You are setting _emscripten_bind_MetadataQuerier_GetIntEntry_2 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}})}if(!Object.getOwnPropertyDescriptor(Module["ready"],"_emscripten_bind_MetadataQuerier_GetIntEntryArray_3")){Object.defineProperty(Module["ready"],"_emscripten_bind_MetadataQuerier_GetIntEntryArray_3",{configurable:true,get:function(){abort("You are getting _emscripten_bind_MetadataQuerier_GetIntEntryArray_3 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}});Object.defineProperty(Module["ready"],"_emscripten_bind_MetadataQuerier_GetIntEntryArray_3",{configurable:true,set:function(){abort("You are setting _emscripten_bind_MetadataQuerier_GetIntEntryArray_3 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}})}if(!Object.getOwnPropertyDescriptor(Module["ready"],"_emscripten_bind_MetadataQuerier_GetDoubleEntry_2")){Object.defineProperty(Module["ready"],"_emscripten_bind_MetadataQuerier_GetDoubleEntry_2",{configurable:true,get:function(){abort("You are getting _emscripten_bind_MetadataQuerier_GetDoubleEntry_2 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}});Object.defineProperty(Module["ready"],"_emscripten_bind_MetadataQuerier_GetDoubleEntry_2",{configurable:true,set:function(){abort("You are setting _emscripten_bind_MetadataQuerier_GetDoubleEntry_2 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}})}if(!Object.getOwnPropertyDescriptor(Module["ready"],"_emscripten_bind_MetadataQuerier_GetStringEntry_2")){Object.defineProperty(Module["ready"],"_emscripten_bind_MetadataQuerier_GetStringEntry_2",{configurable:true,get:function(){abort("You are getting _emscripten_bind_MetadataQuerier_GetStringEntry_2 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}});Object.defineProperty(Module["ready"],"_emscripten_bind_MetadataQuerier_GetStringEntry_2",{configurable:true,set:function(){abort("You are setting _emscripten_bind_MetadataQuerier_GetStringEntry_2 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}})}if(!Object.getOwnPropertyDescriptor(Module["ready"],"_emscripten_bind_MetadataQuerier_NumEntries_1")){Object.defineProperty(Module["ready"],"_emscripten_bind_MetadataQuerier_NumEntries_1",{configurable:true,get:function(){abort("You are getting _emscripten_bind_MetadataQuerier_NumEntries_1 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}});Object.defineProperty(Module["ready"],"_emscripten_bind_MetadataQuerier_NumEntries_1",{configurable:true,set:function(){abort("You are setting _emscripten_bind_MetadataQuerier_NumEntries_1 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}})}if(!Object.getOwnPropertyDescriptor(Module["ready"],"_emscripten_bind_MetadataQuerier_GetEntryName_2")){Object.defineProperty(Module["ready"],"_emscripten_bind_MetadataQuerier_GetEntryName_2",{configurable:true,get:function(){abort("You are getting _emscripten_bind_MetadataQuerier_GetEntryName_2 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}});Object.defineProperty(Module["ready"],"_emscripten_bind_MetadataQuerier_GetEntryName_2",{configurable:true,set:function(){abort("You are setting _emscripten_bind_MetadataQuerier_GetEntryName_2 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}})}if(!Object.getOwnPropertyDescriptor(Module["ready"],"_emscripten_bind_MetadataQuerier___destroy___0")){Object.defineProperty(Module["ready"],"_emscripten_bind_MetadataQuerier___destroy___0",{configurable:true,get:function(){abort("You are getting _emscripten_bind_MetadataQuerier___destroy___0 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}});Object.defineProperty(Module["ready"],"_emscripten_bind_MetadataQuerier___destroy___0",{configurable:true,set:function(){abort("You are setting _emscripten_bind_MetadataQuerier___destroy___0 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}})}if(!Object.getOwnPropertyDescriptor(Module["ready"],"_emscripten_bind_Decoder_Decoder_0")){Object.defineProperty(Module["ready"],"_emscripten_bind_Decoder_Decoder_0",{configurable:true,get:function(){abort("You are getting _emscripten_bind_Decoder_Decoder_0 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}});Object.defineProperty(Module["ready"],"_emscripten_bind_Decoder_Decoder_0",{configurable:true,set:function(){abort("You are setting _emscripten_bind_Decoder_Decoder_0 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}})}if(!Object.getOwnPropertyDescriptor(Module["ready"],"_emscripten_bind_Decoder_DecodeArrayToPointCloud_3")){Object.defineProperty(Module["ready"],"_emscripten_bind_Decoder_DecodeArrayToPointCloud_3",{configurable:true,get:function(){abort("You are getting _emscripten_bind_Decoder_DecodeArrayToPointCloud_3 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}});Object.defineProperty(Module["ready"],"_emscripten_bind_Decoder_DecodeArrayToPointCloud_3",{configurable:true,set:function(){abort("You are setting _emscripten_bind_Decoder_DecodeArrayToPointCloud_3 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}})}if(!Object.getOwnPropertyDescriptor(Module["ready"],"_emscripten_bind_Decoder_DecodeArrayToMesh_3")){Object.defineProperty(Module["ready"],"_emscripten_bind_Decoder_DecodeArrayToMesh_3",{configurable:true,get:function(){abort("You are getting _emscripten_bind_Decoder_DecodeArrayToMesh_3 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}});Object.defineProperty(Module["ready"],"_emscripten_bind_Decoder_DecodeArrayToMesh_3",{configurable:true,set:function(){abort("You are setting _emscripten_bind_Decoder_DecodeArrayToMesh_3 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}})}if(!Object.getOwnPropertyDescriptor(Module["ready"],"_emscripten_bind_Decoder_GetAttributeId_2")){Object.defineProperty(Module["ready"],"_emscripten_bind_Decoder_GetAttributeId_2",{configurable:true,get:function(){abort("You are getting _emscripten_bind_Decoder_GetAttributeId_2 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}});Object.defineProperty(Module["ready"],"_emscripten_bind_Decoder_GetAttributeId_2",{configurable:true,set:function(){abort("You are setting _emscripten_bind_Decoder_GetAttributeId_2 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}})}if(!Object.getOwnPropertyDescriptor(Module["ready"],"_emscripten_bind_Decoder_GetAttributeIdByName_2")){Object.defineProperty(Module["ready"],"_emscripten_bind_Decoder_GetAttributeIdByName_2",{configurable:true,get:function(){abort("You are getting _emscripten_bind_Decoder_GetAttributeIdByName_2 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}});Object.defineProperty(Module["ready"],"_emscripten_bind_Decoder_GetAttributeIdByName_2",{configurable:true,set:function(){abort("You are setting _emscripten_bind_Decoder_GetAttributeIdByName_2 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}})}if(!Object.getOwnPropertyDescriptor(Module["ready"],"_emscripten_bind_Decoder_GetAttributeIdByMetadataEntry_3")){Object.defineProperty(Module["ready"],"_emscripten_bind_Decoder_GetAttributeIdByMetadataEntry_3",{configurable:true,get:function(){abort("You are getting _emscripten_bind_Decoder_GetAttributeIdByMetadataEntry_3 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}});Object.defineProperty(Module["ready"],"_emscripten_bind_Decoder_GetAttributeIdByMetadataEntry_3",{configurable:true,set:function(){abort("You are setting _emscripten_bind_Decoder_GetAttributeIdByMetadataEntry_3 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}})}if(!Object.getOwnPropertyDescriptor(Module["ready"],"_emscripten_bind_Decoder_GetAttribute_2")){Object.defineProperty(Module["ready"],"_emscripten_bind_Decoder_GetAttribute_2",{configurable:true,get:function(){abort("You are getting _emscripten_bind_Decoder_GetAttribute_2 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}});Object.defineProperty(Module["ready"],"_emscripten_bind_Decoder_GetAttribute_2",{configurable:true,set:function(){abort("You are setting _emscripten_bind_Decoder_GetAttribute_2 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}})}if(!Object.getOwnPropertyDescriptor(Module["ready"],"_emscripten_bind_Decoder_GetAttributeByUniqueId_2")){Object.defineProperty(Module["ready"],"_emscripten_bind_Decoder_GetAttributeByUniqueId_2",{configurable:true,get:function(){abort("You are getting _emscripten_bind_Decoder_GetAttributeByUniqueId_2 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}});Object.defineProperty(Module["ready"],"_emscripten_bind_Decoder_GetAttributeByUniqueId_2",{configurable:true,set:function(){abort("You are setting _emscripten_bind_Decoder_GetAttributeByUniqueId_2 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}})}if(!Object.getOwnPropertyDescriptor(Module["ready"],"_emscripten_bind_Decoder_GetMetadata_1")){Object.defineProperty(Module["ready"],"_emscripten_bind_Decoder_GetMetadata_1",{configurable:true,get:function(){abort("You are getting _emscripten_bind_Decoder_GetMetadata_1 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}});Object.defineProperty(Module["ready"],"_emscripten_bind_Decoder_GetMetadata_1",{configurable:true,set:function(){abort("You are setting _emscripten_bind_Decoder_GetMetadata_1 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}})}if(!Object.getOwnPropertyDescriptor(Module["ready"],"_emscripten_bind_Decoder_GetAttributeMetadata_2")){Object.defineProperty(Module["ready"],"_emscripten_bind_Decoder_GetAttributeMetadata_2",{configurable:true,get:function(){abort("You are getting _emscripten_bind_Decoder_GetAttributeMetadata_2 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}});Object.defineProperty(Module["ready"],"_emscripten_bind_Decoder_GetAttributeMetadata_2",{configurable:true,set:function(){abort("You are setting _emscripten_bind_Decoder_GetAttributeMetadata_2 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}})}if(!Object.getOwnPropertyDescriptor(Module["ready"],"_emscripten_bind_Decoder_GetFaceFromMesh_3")){Object.defineProperty(Module["ready"],"_emscripten_bind_Decoder_GetFaceFromMesh_3",{configurable:true,get:function(){abort("You are getting _emscripten_bind_Decoder_GetFaceFromMesh_3 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}});Object.defineProperty(Module["ready"],"_emscripten_bind_Decoder_GetFaceFromMesh_3",{configurable:true,set:function(){abort("You are setting _emscripten_bind_Decoder_GetFaceFromMesh_3 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}})}if(!Object.getOwnPropertyDescriptor(Module["ready"],"_emscripten_bind_Decoder_GetTriangleStripsFromMesh_2")){Object.defineProperty(Module["ready"],"_emscripten_bind_Decoder_GetTriangleStripsFromMesh_2",{configurable:true,get:function(){abort("You are getting _emscripten_bind_Decoder_GetTriangleStripsFromMesh_2 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}});Object.defineProperty(Module["ready"],"_emscripten_bind_Decoder_GetTriangleStripsFromMesh_2",{configurable:true,set:function(){abort("You are setting _emscripten_bind_Decoder_GetTriangleStripsFromMesh_2 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}})}if(!Object.getOwnPropertyDescriptor(Module["ready"],"_emscripten_bind_Decoder_GetTrianglesUInt16Array_3")){Object.defineProperty(Module["ready"],"_emscripten_bind_Decoder_GetTrianglesUInt16Array_3",{configurable:true,get:function(){abort("You are getting _emscripten_bind_Decoder_GetTrianglesUInt16Array_3 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}});Object.defineProperty(Module["ready"],"_emscripten_bind_Decoder_GetTrianglesUInt16Array_3",{configurable:true,set:function(){abort("You are setting _emscripten_bind_Decoder_GetTrianglesUInt16Array_3 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}})}if(!Object.getOwnPropertyDescriptor(Module["ready"],"_emscripten_bind_Decoder_GetTrianglesUInt32Array_3")){Object.defineProperty(Module["ready"],"_emscripten_bind_Decoder_GetTrianglesUInt32Array_3",{configurable:true,get:function(){abort("You are getting _emscripten_bind_Decoder_GetTrianglesUInt32Array_3 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}});Object.defineProperty(Module["ready"],"_emscripten_bind_Decoder_GetTrianglesUInt32Array_3",{configurable:true,set:function(){abort("You are setting _emscripten_bind_Decoder_GetTrianglesUInt32Array_3 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}})}if(!Object.getOwnPropertyDescriptor(Module["ready"],"_emscripten_bind_Decoder_GetAttributeFloat_3")){Object.defineProperty(Module["ready"],"_emscripten_bind_Decoder_GetAttributeFloat_3",{configurable:true,get:function(){abort("You are getting _emscripten_bind_Decoder_GetAttributeFloat_3 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}});Object.defineProperty(Module["ready"],"_emscripten_bind_Decoder_GetAttributeFloat_3",{configurable:true,set:function(){abort("You are setting _emscripten_bind_Decoder_GetAttributeFloat_3 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}})}if(!Object.getOwnPropertyDescriptor(Module["ready"],"_emscripten_bind_Decoder_GetAttributeFloatForAllPoints_3")){Object.defineProperty(Module["ready"],"_emscripten_bind_Decoder_GetAttributeFloatForAllPoints_3",{configurable:true,get:function(){abort("You are getting _emscripten_bind_Decoder_GetAttributeFloatForAllPoints_3 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}});Object.defineProperty(Module["ready"],"_emscripten_bind_Decoder_GetAttributeFloatForAllPoints_3",{configurable:true,set:function(){abort("You are setting _emscripten_bind_Decoder_GetAttributeFloatForAllPoints_3 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}})}if(!Object.getOwnPropertyDescriptor(Module["ready"],"_emscripten_bind_Decoder_GetAttributeIntForAllPoints_3")){Object.defineProperty(Module["ready"],"_emscripten_bind_Decoder_GetAttributeIntForAllPoints_3",{configurable:true,get:function(){abort("You are getting _emscripten_bind_Decoder_GetAttributeIntForAllPoints_3 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}});Object.defineProperty(Module["ready"],"_emscripten_bind_Decoder_GetAttributeIntForAllPoints_3",{configurable:true,set:function(){abort("You are setting _emscripten_bind_Decoder_GetAttributeIntForAllPoints_3 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}})}if(!Object.getOwnPropertyDescriptor(Module["ready"],"_emscripten_bind_Decoder_GetAttributeInt8ForAllPoints_3")){Object.defineProperty(Module["ready"],"_emscripten_bind_Decoder_GetAttributeInt8ForAllPoints_3",{configurable:true,get:function(){abort("You are getting _emscripten_bind_Decoder_GetAttributeInt8ForAllPoints_3 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}});Object.defineProperty(Module["ready"],"_emscripten_bind_Decoder_GetAttributeInt8ForAllPoints_3",{configurable:true,set:function(){abort("You are setting _emscripten_bind_Decoder_GetAttributeInt8ForAllPoints_3 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}})}if(!Object.getOwnPropertyDescriptor(Module["ready"],"_emscripten_bind_Decoder_GetAttributeUInt8ForAllPoints_3")){Object.defineProperty(Module["ready"],"_emscripten_bind_Decoder_GetAttributeUInt8ForAllPoints_3",{configurable:true,get:function(){abort("You are getting _emscripten_bind_Decoder_GetAttributeUInt8ForAllPoints_3 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}});Object.defineProperty(Module["ready"],"_emscripten_bind_Decoder_GetAttributeUInt8ForAllPoints_3",{configurable:true,set:function(){abort("You are setting _emscripten_bind_Decoder_GetAttributeUInt8ForAllPoints_3 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}})}if(!Object.getOwnPropertyDescriptor(Module["ready"],"_emscripten_bind_Decoder_GetAttributeInt16ForAllPoints_3")){Object.defineProperty(Module["ready"],"_emscripten_bind_Decoder_GetAttributeInt16ForAllPoints_3",{configurable:true,get:function(){abort("You are getting _emscripten_bind_Decoder_GetAttributeInt16ForAllPoints_3 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}});Object.defineProperty(Module["ready"],"_emscripten_bind_Decoder_GetAttributeInt16ForAllPoints_3",{configurable:true,set:function(){abort("You are setting _emscripten_bind_Decoder_GetAttributeInt16ForAllPoints_3 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}})}if(!Object.getOwnPropertyDescriptor(Module["ready"],"_emscripten_bind_Decoder_GetAttributeUInt16ForAllPoints_3")){Object.defineProperty(Module["ready"],"_emscripten_bind_Decoder_GetAttributeUInt16ForAllPoints_3",{configurable:true,get:function(){abort("You are getting _emscripten_bind_Decoder_GetAttributeUInt16ForAllPoints_3 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}});Object.defineProperty(Module["ready"],"_emscripten_bind_Decoder_GetAttributeUInt16ForAllPoints_3",{configurable:true,set:function(){abort("You are setting _emscripten_bind_Decoder_GetAttributeUInt16ForAllPoints_3 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}})}if(!Object.getOwnPropertyDescriptor(Module["ready"],"_emscripten_bind_Decoder_GetAttributeInt32ForAllPoints_3")){Object.defineProperty(Module["ready"],"_emscripten_bind_Decoder_GetAttributeInt32ForAllPoints_3",{configurable:true,get:function(){abort("You are getting _emscripten_bind_Decoder_GetAttributeInt32ForAllPoints_3 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}});Object.defineProperty(Module["ready"],"_emscripten_bind_Decoder_GetAttributeInt32ForAllPoints_3",{configurable:true,set:function(){abort("You are setting _emscripten_bind_Decoder_GetAttributeInt32ForAllPoints_3 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}})}if(!Object.getOwnPropertyDescriptor(Module["ready"],"_emscripten_bind_Decoder_GetAttributeUInt32ForAllPoints_3")){Object.defineProperty(Module["ready"],"_emscripten_bind_Decoder_GetAttributeUInt32ForAllPoints_3",{configurable:true,get:function(){abort("You are getting _emscripten_bind_Decoder_GetAttributeUInt32ForAllPoints_3 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}});Object.defineProperty(Module["ready"],"_emscripten_bind_Decoder_GetAttributeUInt32ForAllPoints_3",{configurable:true,set:function(){abort("You are setting _emscripten_bind_Decoder_GetAttributeUInt32ForAllPoints_3 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}})}if(!Object.getOwnPropertyDescriptor(Module["ready"],"_emscripten_bind_Decoder_GetAttributeDataArrayForAllPoints_5")){Object.defineProperty(Module["ready"],"_emscripten_bind_Decoder_GetAttributeDataArrayForAllPoints_5",{configurable:true,get:function(){abort("You are getting _emscripten_bind_Decoder_GetAttributeDataArrayForAllPoints_5 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}});Object.defineProperty(Module["ready"],"_emscripten_bind_Decoder_GetAttributeDataArrayForAllPoints_5",{configurable:true,set:function(){abort("You are setting _emscripten_bind_Decoder_GetAttributeDataArrayForAllPoints_5 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}})}if(!Object.getOwnPropertyDescriptor(Module["ready"],"_emscripten_bind_Decoder_SkipAttributeTransform_1")){Object.defineProperty(Module["ready"],"_emscripten_bind_Decoder_SkipAttributeTransform_1",{configurable:true,get:function(){abort("You are getting _emscripten_bind_Decoder_SkipAttributeTransform_1 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}});Object.defineProperty(Module["ready"],"_emscripten_bind_Decoder_SkipAttributeTransform_1",{configurable:true,set:function(){abort("You are setting _emscripten_bind_Decoder_SkipAttributeTransform_1 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}})}if(!Object.getOwnPropertyDescriptor(Module["ready"],"_emscripten_bind_Decoder_GetEncodedGeometryType_Deprecated_1")){Object.defineProperty(Module["ready"],"_emscripten_bind_Decoder_GetEncodedGeometryType_Deprecated_1",{configurable:true,get:function(){abort("You are getting _emscripten_bind_Decoder_GetEncodedGeometryType_Deprecated_1 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}});Object.defineProperty(Module["ready"],"_emscripten_bind_Decoder_GetEncodedGeometryType_Deprecated_1",{configurable:true,set:function(){abort("You are setting _emscripten_bind_Decoder_GetEncodedGeometryType_Deprecated_1 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}})}if(!Object.getOwnPropertyDescriptor(Module["ready"],"_emscripten_bind_Decoder_DecodeBufferToPointCloud_2")){Object.defineProperty(Module["ready"],"_emscripten_bind_Decoder_DecodeBufferToPointCloud_2",{configurable:true,get:function(){abort("You are getting _emscripten_bind_Decoder_DecodeBufferToPointCloud_2 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}});Object.defineProperty(Module["ready"],"_emscripten_bind_Decoder_DecodeBufferToPointCloud_2",{configurable:true,set:function(){abort("You are setting _emscripten_bind_Decoder_DecodeBufferToPointCloud_2 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}})}if(!Object.getOwnPropertyDescriptor(Module["ready"],"_emscripten_bind_Decoder_DecodeBufferToMesh_2")){Object.defineProperty(Module["ready"],"_emscripten_bind_Decoder_DecodeBufferToMesh_2",{configurable:true,get:function(){abort("You are getting _emscripten_bind_Decoder_DecodeBufferToMesh_2 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}});Object.defineProperty(Module["ready"],"_emscripten_bind_Decoder_DecodeBufferToMesh_2",{configurable:true,set:function(){abort("You are setting _emscripten_bind_Decoder_DecodeBufferToMesh_2 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}})}if(!Object.getOwnPropertyDescriptor(Module["ready"],"_emscripten_bind_Decoder___destroy___0")){Object.defineProperty(Module["ready"],"_emscripten_bind_Decoder___destroy___0",{configurable:true,get:function(){abort("You are getting _emscripten_bind_Decoder___destroy___0 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}});Object.defineProperty(Module["ready"],"_emscripten_bind_Decoder___destroy___0",{configurable:true,set:function(){abort("You are setting _emscripten_bind_Decoder___destroy___0 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}})}if(!Object.getOwnPropertyDescriptor(Module["ready"],"_emscripten_enum_draco_AttributeTransformType_ATTRIBUTE_INVALID_TRANSFORM")){Object.defineProperty(Module["ready"],"_emscripten_enum_draco_AttributeTransformType_ATTRIBUTE_INVALID_TRANSFORM",{configurable:true,get:function(){abort("You are getting _emscripten_enum_draco_AttributeTransformType_ATTRIBUTE_INVALID_TRANSFORM on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}});Object.defineProperty(Module["ready"],"_emscripten_enum_draco_AttributeTransformType_ATTRIBUTE_INVALID_TRANSFORM",{configurable:true,set:function(){abort("You are setting _emscripten_enum_draco_AttributeTransformType_ATTRIBUTE_INVALID_TRANSFORM on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}})}if(!Object.getOwnPropertyDescriptor(Module["ready"],"_emscripten_enum_draco_AttributeTransformType_ATTRIBUTE_NO_TRANSFORM")){Object.defineProperty(Module["ready"],"_emscripten_enum_draco_AttributeTransformType_ATTRIBUTE_NO_TRANSFORM",{configurable:true,get:function(){abort("You are getting _emscripten_enum_draco_AttributeTransformType_ATTRIBUTE_NO_TRANSFORM on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}});Object.defineProperty(Module["ready"],"_emscripten_enum_draco_AttributeTransformType_ATTRIBUTE_NO_TRANSFORM",{configurable:true,set:function(){abort("You are setting _emscripten_enum_draco_AttributeTransformType_ATTRIBUTE_NO_TRANSFORM on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}})}if(!Object.getOwnPropertyDescriptor(Module["ready"],"_emscripten_enum_draco_AttributeTransformType_ATTRIBUTE_QUANTIZATION_TRANSFORM")){Object.defineProperty(Module["ready"],"_emscripten_enum_draco_AttributeTransformType_ATTRIBUTE_QUANTIZATION_TRANSFORM",{configurable:true,get:function(){abort("You are getting _emscripten_enum_draco_AttributeTransformType_ATTRIBUTE_QUANTIZATION_TRANSFORM on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}});Object.defineProperty(Module["ready"],"_emscripten_enum_draco_AttributeTransformType_ATTRIBUTE_QUANTIZATION_TRANSFORM",{configurable:true,set:function(){abort("You are setting _emscripten_enum_draco_AttributeTransformType_ATTRIBUTE_QUANTIZATION_TRANSFORM on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}})}if(!Object.getOwnPropertyDescriptor(Module["ready"],"_emscripten_enum_draco_AttributeTransformType_ATTRIBUTE_OCTAHEDRON_TRANSFORM")){Object.defineProperty(Module["ready"],"_emscripten_enum_draco_AttributeTransformType_ATTRIBUTE_OCTAHEDRON_TRANSFORM",{configurable:true,get:function(){abort("You are getting _emscripten_enum_draco_AttributeTransformType_ATTRIBUTE_OCTAHEDRON_TRANSFORM on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}});Object.defineProperty(Module["ready"],"_emscripten_enum_draco_AttributeTransformType_ATTRIBUTE_OCTAHEDRON_TRANSFORM",{configurable:true,set:function(){abort("You are setting _emscripten_enum_draco_AttributeTransformType_ATTRIBUTE_OCTAHEDRON_TRANSFORM on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}})}if(!Object.getOwnPropertyDescriptor(Module["ready"],"_emscripten_enum_draco_GeometryAttribute_Type_INVALID")){Object.defineProperty(Module["ready"],"_emscripten_enum_draco_GeometryAttribute_Type_INVALID",{configurable:true,get:function(){abort("You are getting _emscripten_enum_draco_GeometryAttribute_Type_INVALID on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}});Object.defineProperty(Module["ready"],"_emscripten_enum_draco_GeometryAttribute_Type_INVALID",{configurable:true,set:function(){abort("You are setting _emscripten_enum_draco_GeometryAttribute_Type_INVALID on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}})}if(!Object.getOwnPropertyDescriptor(Module["ready"],"_emscripten_enum_draco_GeometryAttribute_Type_POSITION")){Object.defineProperty(Module["ready"],"_emscripten_enum_draco_GeometryAttribute_Type_POSITION",{configurable:true,get:function(){abort("You are getting _emscripten_enum_draco_GeometryAttribute_Type_POSITION on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}});Object.defineProperty(Module["ready"],"_emscripten_enum_draco_GeometryAttribute_Type_POSITION",{configurable:true,set:function(){abort("You are setting _emscripten_enum_draco_GeometryAttribute_Type_POSITION on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}})}if(!Object.getOwnPropertyDescriptor(Module["ready"],"_emscripten_enum_draco_GeometryAttribute_Type_NORMAL")){Object.defineProperty(Module["ready"],"_emscripten_enum_draco_GeometryAttribute_Type_NORMAL",{configurable:true,get:function(){abort("You are getting _emscripten_enum_draco_GeometryAttribute_Type_NORMAL on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}});Object.defineProperty(Module["ready"],"_emscripten_enum_draco_GeometryAttribute_Type_NORMAL",{configurable:true,set:function(){abort("You are setting _emscripten_enum_draco_GeometryAttribute_Type_NORMAL on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}})}if(!Object.getOwnPropertyDescriptor(Module["ready"],"_emscripten_enum_draco_GeometryAttribute_Type_COLOR")){Object.defineProperty(Module["ready"],"_emscripten_enum_draco_GeometryAttribute_Type_COLOR",{configurable:true,get:function(){abort("You are getting _emscripten_enum_draco_GeometryAttribute_Type_COLOR on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}});Object.defineProperty(Module["ready"],"_emscripten_enum_draco_GeometryAttribute_Type_COLOR",{configurable:true,set:function(){abort("You are setting _emscripten_enum_draco_GeometryAttribute_Type_COLOR on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}})}if(!Object.getOwnPropertyDescriptor(Module["ready"],"_emscripten_enum_draco_GeometryAttribute_Type_TEX_COORD")){Object.defineProperty(Module["ready"],"_emscripten_enum_draco_GeometryAttribute_Type_TEX_COORD",{configurable:true,get:function(){abort("You are getting _emscripten_enum_draco_GeometryAttribute_Type_TEX_COORD on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}});Object.defineProperty(Module["ready"],"_emscripten_enum_draco_GeometryAttribute_Type_TEX_COORD",{configurable:true,set:function(){abort("You are setting _emscripten_enum_draco_GeometryAttribute_Type_TEX_COORD on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}})}if(!Object.getOwnPropertyDescriptor(Module["ready"],"_emscripten_enum_draco_GeometryAttribute_Type_GENERIC")){Object.defineProperty(Module["ready"],"_emscripten_enum_draco_GeometryAttribute_Type_GENERIC",{configurable:true,get:function(){abort("You are getting _emscripten_enum_draco_GeometryAttribute_Type_GENERIC on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}});Object.defineProperty(Module["ready"],"_emscripten_enum_draco_GeometryAttribute_Type_GENERIC",{configurable:true,set:function(){abort("You are setting _emscripten_enum_draco_GeometryAttribute_Type_GENERIC on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}})}if(!Object.getOwnPropertyDescriptor(Module["ready"],"_emscripten_enum_draco_EncodedGeometryType_INVALID_GEOMETRY_TYPE")){Object.defineProperty(Module["ready"],"_emscripten_enum_draco_EncodedGeometryType_INVALID_GEOMETRY_TYPE",{configurable:true,get:function(){abort("You are getting _emscripten_enum_draco_EncodedGeometryType_INVALID_GEOMETRY_TYPE on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}});Object.defineProperty(Module["ready"],"_emscripten_enum_draco_EncodedGeometryType_INVALID_GEOMETRY_TYPE",{configurable:true,set:function(){abort("You are setting _emscripten_enum_draco_EncodedGeometryType_INVALID_GEOMETRY_TYPE on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}})}if(!Object.getOwnPropertyDescriptor(Module["ready"],"_emscripten_enum_draco_EncodedGeometryType_POINT_CLOUD")){Object.defineProperty(Module["ready"],"_emscripten_enum_draco_EncodedGeometryType_POINT_CLOUD",{configurable:true,get:function(){abort("You are getting _emscripten_enum_draco_EncodedGeometryType_POINT_CLOUD on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}});Object.defineProperty(Module["ready"],"_emscripten_enum_draco_EncodedGeometryType_POINT_CLOUD",{configurable:true,set:function(){abort("You are setting _emscripten_enum_draco_EncodedGeometryType_POINT_CLOUD on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}})}if(!Object.getOwnPropertyDescriptor(Module["ready"],"_emscripten_enum_draco_EncodedGeometryType_TRIANGULAR_MESH")){Object.defineProperty(Module["ready"],"_emscripten_enum_draco_EncodedGeometryType_TRIANGULAR_MESH",{configurable:true,get:function(){abort("You are getting _emscripten_enum_draco_EncodedGeometryType_TRIANGULAR_MESH on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}});Object.defineProperty(Module["ready"],"_emscripten_enum_draco_EncodedGeometryType_TRIANGULAR_MESH",{configurable:true,set:function(){abort("You are setting _emscripten_enum_draco_EncodedGeometryType_TRIANGULAR_MESH on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}})}if(!Object.getOwnPropertyDescriptor(Module["ready"],"_emscripten_enum_draco_DataType_DT_INVALID")){Object.defineProperty(Module["ready"],"_emscripten_enum_draco_DataType_DT_INVALID",{configurable:true,get:function(){abort("You are getting _emscripten_enum_draco_DataType_DT_INVALID on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}});Object.defineProperty(Module["ready"],"_emscripten_enum_draco_DataType_DT_INVALID",{configurable:true,set:function(){abort("You are setting _emscripten_enum_draco_DataType_DT_INVALID on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}})}if(!Object.getOwnPropertyDescriptor(Module["ready"],"_emscripten_enum_draco_DataType_DT_INT8")){Object.defineProperty(Module["ready"],"_emscripten_enum_draco_DataType_DT_INT8",{configurable:true,get:function(){abort("You are getting _emscripten_enum_draco_DataType_DT_INT8 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}});Object.defineProperty(Module["ready"],"_emscripten_enum_draco_DataType_DT_INT8",{configurable:true,set:function(){abort("You are setting _emscripten_enum_draco_DataType_DT_INT8 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}})}if(!Object.getOwnPropertyDescriptor(Module["ready"],"_emscripten_enum_draco_DataType_DT_UINT8")){Object.defineProperty(Module["ready"],"_emscripten_enum_draco_DataType_DT_UINT8",{configurable:true,get:function(){abort("You are getting _emscripten_enum_draco_DataType_DT_UINT8 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}});Object.defineProperty(Module["ready"],"_emscripten_enum_draco_DataType_DT_UINT8",{configurable:true,set:function(){abort("You are setting _emscripten_enum_draco_DataType_DT_UINT8 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}})}if(!Object.getOwnPropertyDescriptor(Module["ready"],"_emscripten_enum_draco_DataType_DT_INT16")){Object.defineProperty(Module["ready"],"_emscripten_enum_draco_DataType_DT_INT16",{configurable:true,get:function(){abort("You are getting _emscripten_enum_draco_DataType_DT_INT16 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}});Object.defineProperty(Module["ready"],"_emscripten_enum_draco_DataType_DT_INT16",{configurable:true,set:function(){abort("You are setting _emscripten_enum_draco_DataType_DT_INT16 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}})}if(!Object.getOwnPropertyDescriptor(Module["ready"],"_emscripten_enum_draco_DataType_DT_UINT16")){Object.defineProperty(Module["ready"],"_emscripten_enum_draco_DataType_DT_UINT16",{configurable:true,get:function(){abort("You are getting _emscripten_enum_draco_DataType_DT_UINT16 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}});Object.defineProperty(Module["ready"],"_emscripten_enum_draco_DataType_DT_UINT16",{configurable:true,set:function(){abort("You are setting _emscripten_enum_draco_DataType_DT_UINT16 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}})}if(!Object.getOwnPropertyDescriptor(Module["ready"],"_emscripten_enum_draco_DataType_DT_INT32")){Object.defineProperty(Module["ready"],"_emscripten_enum_draco_DataType_DT_INT32",{configurable:true,get:function(){abort("You are getting _emscripten_enum_draco_DataType_DT_INT32 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}});Object.defineProperty(Module["ready"],"_emscripten_enum_draco_DataType_DT_INT32",{configurable:true,set:function(){abort("You are setting _emscripten_enum_draco_DataType_DT_INT32 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}})}if(!Object.getOwnPropertyDescriptor(Module["ready"],"_emscripten_enum_draco_DataType_DT_UINT32")){Object.defineProperty(Module["ready"],"_emscripten_enum_draco_DataType_DT_UINT32",{configurable:true,get:function(){abort("You are getting _emscripten_enum_draco_DataType_DT_UINT32 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}});Object.defineProperty(Module["ready"],"_emscripten_enum_draco_DataType_DT_UINT32",{configurable:true,set:function(){abort("You are setting _emscripten_enum_draco_DataType_DT_UINT32 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}})}if(!Object.getOwnPropertyDescriptor(Module["ready"],"_emscripten_enum_draco_DataType_DT_INT64")){Object.defineProperty(Module["ready"],"_emscripten_enum_draco_DataType_DT_INT64",{configurable:true,get:function(){abort("You are getting _emscripten_enum_draco_DataType_DT_INT64 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}});Object.defineProperty(Module["ready"],"_emscripten_enum_draco_DataType_DT_INT64",{configurable:true,set:function(){abort("You are setting _emscripten_enum_draco_DataType_DT_INT64 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}})}if(!Object.getOwnPropertyDescriptor(Module["ready"],"_emscripten_enum_draco_DataType_DT_UINT64")){Object.defineProperty(Module["ready"],"_emscripten_enum_draco_DataType_DT_UINT64",{configurable:true,get:function(){abort("You are getting _emscripten_enum_draco_DataType_DT_UINT64 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}});Object.defineProperty(Module["ready"],"_emscripten_enum_draco_DataType_DT_UINT64",{configurable:true,set:function(){abort("You are setting _emscripten_enum_draco_DataType_DT_UINT64 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}})}if(!Object.getOwnPropertyDescriptor(Module["ready"],"_emscripten_enum_draco_DataType_DT_FLOAT32")){Object.defineProperty(Module["ready"],"_emscripten_enum_draco_DataType_DT_FLOAT32",{configurable:true,get:function(){abort("You are getting _emscripten_enum_draco_DataType_DT_FLOAT32 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}});Object.defineProperty(Module["ready"],"_emscripten_enum_draco_DataType_DT_FLOAT32",{configurable:true,set:function(){abort("You are setting _emscripten_enum_draco_DataType_DT_FLOAT32 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}})}if(!Object.getOwnPropertyDescriptor(Module["ready"],"_emscripten_enum_draco_DataType_DT_FLOAT64")){Object.defineProperty(Module["ready"],"_emscripten_enum_draco_DataType_DT_FLOAT64",{configurable:true,get:function(){abort("You are getting _emscripten_enum_draco_DataType_DT_FLOAT64 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}});Object.defineProperty(Module["ready"],"_emscripten_enum_draco_DataType_DT_FLOAT64",{configurable:true,set:function(){abort("You are setting _emscripten_enum_draco_DataType_DT_FLOAT64 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}})}if(!Object.getOwnPropertyDescriptor(Module["ready"],"_emscripten_enum_draco_DataType_DT_BOOL")){Object.defineProperty(Module["ready"],"_emscripten_enum_draco_DataType_DT_BOOL",{configurable:true,get:function(){abort("You are getting _emscripten_enum_draco_DataType_DT_BOOL on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}});Object.defineProperty(Module["ready"],"_emscripten_enum_draco_DataType_DT_BOOL",{configurable:true,set:function(){abort("You are setting _emscripten_enum_draco_DataType_DT_BOOL on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}})}if(!Object.getOwnPropertyDescriptor(Module["ready"],"_emscripten_enum_draco_DataType_DT_TYPES_COUNT")){Object.defineProperty(Module["ready"],"_emscripten_enum_draco_DataType_DT_TYPES_COUNT",{configurable:true,get:function(){abort("You are getting _emscripten_enum_draco_DataType_DT_TYPES_COUNT on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}});Object.defineProperty(Module["ready"],"_emscripten_enum_draco_DataType_DT_TYPES_COUNT",{configurable:true,set:function(){abort("You are setting _emscripten_enum_draco_DataType_DT_TYPES_COUNT on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}})}if(!Object.getOwnPropertyDescriptor(Module["ready"],"_emscripten_enum_draco_StatusCode_OK")){Object.defineProperty(Module["ready"],"_emscripten_enum_draco_StatusCode_OK",{configurable:true,get:function(){abort("You are getting _emscripten_enum_draco_StatusCode_OK on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}});Object.defineProperty(Module["ready"],"_emscripten_enum_draco_StatusCode_OK",{configurable:true,set:function(){abort("You are setting _emscripten_enum_draco_StatusCode_OK on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}})}if(!Object.getOwnPropertyDescriptor(Module["ready"],"_emscripten_enum_draco_StatusCode_DRACO_ERROR")){Object.defineProperty(Module["ready"],"_emscripten_enum_draco_StatusCode_DRACO_ERROR",{configurable:true,get:function(){abort("You are getting _emscripten_enum_draco_StatusCode_DRACO_ERROR on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}});Object.defineProperty(Module["ready"],"_emscripten_enum_draco_StatusCode_DRACO_ERROR",{configurable:true,set:function(){abort("You are setting _emscripten_enum_draco_StatusCode_DRACO_ERROR on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}})}if(!Object.getOwnPropertyDescriptor(Module["ready"],"_emscripten_enum_draco_StatusCode_IO_ERROR")){Object.defineProperty(Module["ready"],"_emscripten_enum_draco_StatusCode_IO_ERROR",{configurable:true,get:function(){abort("You are getting _emscripten_enum_draco_StatusCode_IO_ERROR on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}});Object.defineProperty(Module["ready"],"_emscripten_enum_draco_StatusCode_IO_ERROR",{configurable:true,set:function(){abort("You are setting _emscripten_enum_draco_StatusCode_IO_ERROR on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}})}if(!Object.getOwnPropertyDescriptor(Module["ready"],"_emscripten_enum_draco_StatusCode_INVALID_PARAMETER")){Object.defineProperty(Module["ready"],"_emscripten_enum_draco_StatusCode_INVALID_PARAMETER",{configurable:true,get:function(){abort("You are getting _emscripten_enum_draco_StatusCode_INVALID_PARAMETER on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}});Object.defineProperty(Module["ready"],"_emscripten_enum_draco_StatusCode_INVALID_PARAMETER",{configurable:true,set:function(){abort("You are setting _emscripten_enum_draco_StatusCode_INVALID_PARAMETER on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}})}if(!Object.getOwnPropertyDescriptor(Module["ready"],"_emscripten_enum_draco_StatusCode_UNSUPPORTED_VERSION")){Object.defineProperty(Module["ready"],"_emscripten_enum_draco_StatusCode_UNSUPPORTED_VERSION",{configurable:true,get:function(){abort("You are getting _emscripten_enum_draco_StatusCode_UNSUPPORTED_VERSION on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}});Object.defineProperty(Module["ready"],"_emscripten_enum_draco_StatusCode_UNSUPPORTED_VERSION",{configurable:true,set:function(){abort("You are setting _emscripten_enum_draco_StatusCode_UNSUPPORTED_VERSION on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}})}if(!Object.getOwnPropertyDescriptor(Module["ready"],"_emscripten_enum_draco_StatusCode_UNKNOWN_VERSION")){Object.defineProperty(Module["ready"],"_emscripten_enum_draco_StatusCode_UNKNOWN_VERSION",{configurable:true,get:function(){abort("You are getting _emscripten_enum_draco_StatusCode_UNKNOWN_VERSION on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}});Object.defineProperty(Module["ready"],"_emscripten_enum_draco_StatusCode_UNKNOWN_VERSION",{configurable:true,set:function(){abort("You are setting _emscripten_enum_draco_StatusCode_UNKNOWN_VERSION on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}})}if(!Object.getOwnPropertyDescriptor(Module["ready"],"_fflush")){Object.defineProperty(Module["ready"],"_fflush",{configurable:true,get:function(){abort("You are getting _fflush on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}});Object.defineProperty(Module["ready"],"_fflush",{configurable:true,set:function(){abort("You are setting _fflush on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}})}if(!Object.getOwnPropertyDescriptor(Module["ready"],"onRuntimeInitialized")){Object.defineProperty(Module["ready"],"onRuntimeInitialized",{configurable:true,get:function(){abort("You are getting onRuntimeInitialized on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}});Object.defineProperty(Module["ready"],"onRuntimeInitialized",{configurable:true,set:function(){abort("You are setting onRuntimeInitialized on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}})}var isRuntimeInitialized=false;var isModuleParsed=false;Module["onRuntimeInitialized"]=function(){isRuntimeInitialized=true;if(isModuleParsed){if(typeof Module["onModuleLoaded"]==="function"){Module["onModuleLoaded"](Module)}}};Module["onModuleParsed"]=function(){isModuleParsed=true;if(isRuntimeInitialized){if(typeof Module["onModuleLoaded"]==="function"){Module["onModuleLoaded"](Module)}}};function isVersionSupported(versionString){if(typeof versionString!=="string")return false;const version=versionString.split(".");if(version.length<2||version.length>3)return false;if(version[0]==1&&version[1]>=0&&version[1]<=5)return true;if(version[0]!=0||version[1]>10)return false;return true}Module["isVersionSupported"]=isVersionSupported;var moduleOverrides=Object.assign({},Module);var arguments_=[];var thisProgram="./this.program";var quit_=(status,toThrow)=>{throw toThrow};var ENVIRONMENT_IS_WEB=typeof window=="object";var ENVIRONMENT_IS_WORKER=typeof importScripts=="function";var ENVIRONMENT_IS_NODE=typeof process=="object"&&typeof process.versions=="object"&&typeof process.versions.node=="string";var ENVIRONMENT_IS_SHELL=!ENVIRONMENT_IS_WEB&&!ENVIRONMENT_IS_NODE&&!ENVIRONMENT_IS_WORKER;if(Module["ENVIRONMENT"]){throw new Error("Module.ENVIRONMENT has been deprecated. To force the environment, use the ENVIRONMENT compile-time option (for example, -sENVIRONMENT=web or -sENVIRONMENT=node)")}var scriptDirectory="";function locateFile(path){if(Module["locateFile"]){return Module["locateFile"](path,scriptDirectory)}return scriptDirectory+path}var read_,readAsync,readBinary,setWindowTitle;function logExceptionOnExit(e){if(e instanceof ExitStatus)return;let toLog=e;if(e&&typeof e=="object"&&e.stack){toLog=[e,e.stack]}err("exiting due to exception: "+toLog)}var fs;var nodePath;var requireNodeFS;if(ENVIRONMENT_IS_NODE){if(!(typeof process=="object"&&typeof require=="function"))throw new Error("not compiled for this environment (did you build to HTML and try to run it not on the web, or set ENVIRONMENT to something - like node - and run it someplace else - like on the web?)");if(ENVIRONMENT_IS_WORKER){scriptDirectory=require("path").dirname(scriptDirectory)+"/"}else{scriptDirectory=__dirname+"/"}requireNodeFS=()=>{if(!nodePath){fs=require("fs");nodePath=require("path")}};read_=function shell_read(filename,binary){var ret=tryParseAsDataURI(filename);if(ret){return binary?ret:ret.toString()}requireNodeFS();filename=nodePath["normalize"](filename);return fs.readFileSync(filename,binary?undefined:"utf8")};readBinary=filename=>{var ret=read_(filename,true);if(!ret.buffer){ret=new Uint8Array(ret)}assert(ret.buffer);return ret};readAsync=(filename,onload,onerror)=>{var ret=tryParseAsDataURI(filename);if(ret){onload(ret)}requireNodeFS();filename=nodePath["normalize"](filename);fs.readFile(filename,function(err,data){if(err)onerror(err);else onload(data.buffer)})};if(process["argv"].length>1){thisProgram=process["argv"][1].replace(/\\/g,"/")}arguments_=process["argv"].slice(2);quit_=(status,toThrow)=>{if(keepRuntimeAlive()){process["exitCode"]=status;throw toThrow}logExceptionOnExit(toThrow);process["exit"](status)};Module["inspect"]=function(){return"[Emscripten Module object]"}}else if(ENVIRONMENT_IS_SHELL){if(typeof process=="object"&&typeof require==="function"||typeof window=="object"||typeof importScripts=="function")throw new Error("not compiled for this environment (did you build to HTML and try to run it not on the web, or set ENVIRONMENT to something - like node - and run it someplace else - like on the web?)");if(typeof read!="undefined"){read_=function shell_read(f){const data=tryParseAsDataURI(f);if(data){return intArrayToString(data)}return read(f)}}readBinary=function readBinary(f){let data;data=tryParseAsDataURI(f);if(data){return data}if(typeof readbuffer=="function"){return new Uint8Array(readbuffer(f))}data=read(f,"binary");assert(typeof data=="object");return data};readAsync=function readAsync(f,onload,onerror){setTimeout(()=>onload(readBinary(f)),0)};if(typeof scriptArgs!="undefined"){arguments_=scriptArgs}else if(typeof arguments!="undefined"){arguments_=arguments}if(typeof quit=="function"){quit_=(status,toThrow)=>{logExceptionOnExit(toThrow);quit(status)}}if(typeof print!="undefined"){if(typeof console=="undefined")console={};console.log=print;console.warn=console.error=typeof printErr!="undefined"?printErr:print}}else if(ENVIRONMENT_IS_WEB||ENVIRONMENT_IS_WORKER){if(ENVIRONMENT_IS_WORKER){scriptDirectory=self.location.href}else if(typeof document!="undefined"&&document.currentScript){scriptDirectory=document.currentScript.src}if(_scriptDir){scriptDirectory=_scriptDir}if(scriptDirectory.indexOf("blob:")!==0){scriptDirectory=scriptDirectory.substr(0,scriptDirectory.replace(/[?#].*/,"").lastIndexOf("/")+1)}else{scriptDirectory=""}if(!(typeof window=="object"||typeof importScripts=="function"))throw new Error("not compiled for this environment (did you build to HTML and try to run it not on the web, or set ENVIRONMENT to something - like node - and run it someplace else - like on the web?)");{read_=url=>{try{var xhr=new XMLHttpRequest;xhr.open("GET",url,false);xhr.send(null);return xhr.responseText}catch(err){var data=tryParseAsDataURI(url);if(data){return intArrayToString(data)}throw err}};if(ENVIRONMENT_IS_WORKER){readBinary=url=>{try{var xhr=new XMLHttpRequest;xhr.open("GET",url,false);xhr.responseType="arraybuffer";xhr.send(null);return new Uint8Array(xhr.response)}catch(err){var data=tryParseAsDataURI(url);if(data){return data}throw err}}}readAsync=(url,onload,onerror)=>{var xhr=new XMLHttpRequest;xhr.open("GET",url,true);xhr.responseType="arraybuffer";xhr.onload=()=>{if(xhr.status==200||xhr.status==0&&xhr.response){onload(xhr.response);return}var data=tryParseAsDataURI(url);if(data){onload(data.buffer);return}onerror()};xhr.onerror=onerror;xhr.send(null)}}setWindowTitle=title=>document.title=title}else{throw new Error("environment detection error")}var out=Module["print"]||console.log.bind(console);var err=Module["printErr"]||console.warn.bind(console);Object.assign(Module,moduleOverrides);moduleOverrides=null;checkIncomingModuleAPI();if(Module["arguments"])arguments_=Module["arguments"];legacyModuleProp("arguments","arguments_");if(Module["thisProgram"])thisProgram=Module["thisProgram"];legacyModuleProp("thisProgram","thisProgram");if(Module["quit"])quit_=Module["quit"];legacyModuleProp("quit","quit_");assert(typeof Module["memoryInitializerPrefixURL"]=="undefined","Module.memoryInitializerPrefixURL option was removed, use Module.locateFile instead");assert(typeof Module["pthreadMainPrefixURL"]=="undefined","Module.pthreadMainPrefixURL option was removed, use Module.locateFile instead");assert(typeof Module["cdInitializerPrefixURL"]=="undefined","Module.cdInitializerPrefixURL option was removed, use Module.locateFile instead");assert(typeof Module["filePackagePrefixURL"]=="undefined","Module.filePackagePrefixURL option was removed, use Module.locateFile instead");assert(typeof Module["read"]=="undefined","Module.read option was removed (modify read_ in JS)");assert(typeof Module["readAsync"]=="undefined","Module.readAsync option was removed (modify readAsync in JS)");assert(typeof Module["readBinary"]=="undefined","Module.readBinary option was removed (modify readBinary in JS)");assert(typeof Module["setWindowTitle"]=="undefined","Module.setWindowTitle option was removed (modify setWindowTitle in JS)");assert(typeof Module["TOTAL_MEMORY"]=="undefined","Module.TOTAL_MEMORY has been renamed Module.INITIAL_MEMORY");legacyModuleProp("read","read_");legacyModuleProp("readAsync","readAsync");legacyModuleProp("readBinary","readBinary");legacyModuleProp("setWindowTitle","setWindowTitle");assert(!ENVIRONMENT_IS_SHELL,"shell environment detected but not enabled at build time. Add 'shell' to `-sENVIRONMENT` to enable.");var POINTER_SIZE=4;function warnOnce(text){if(!warnOnce.shown)warnOnce.shown={};if(!warnOnce.shown[text]){warnOnce.shown[text]=1;err(text)}}function convertJsFunctionToWasm(func,sig){return func}var freeTableIndexes=[];var functionsInTableMap;function getEmptyTableSlot(){if(freeTableIndexes.length){return freeTableIndexes.pop()}try{wasmTable.grow(1)}catch(err){if(!(err instanceof RangeError)){throw err}throw"Unable to grow wasm table. Set ALLOW_TABLE_GROWTH."}return wasmTable.length-1}function updateTableMap(offset,count){for(var i=offset;iabort(unexportedMessage(sym,isFSSybol))}}var tempRet0=0;var setTempRet0=value=>{tempRet0=value};var getTempRet0=()=>tempRet0;var wasmBinary;if(Module["wasmBinary"])wasmBinary=Module["wasmBinary"];legacyModuleProp("wasmBinary","wasmBinary");var noExitRuntime=Module["noExitRuntime"]||true;legacyModuleProp("noExitRuntime","noExitRuntime");var WebAssembly={Memory:function(opts){this.buffer=new ArrayBuffer(opts["initial"]*65536)},Module:function(binary){},Instance:function(module,info){this.exports=( +var Module=typeof DracoDecoderModule!="undefined"?DracoDecoderModule:{};var readyPromiseResolve,readyPromiseReject;Module["ready"]=new Promise(function(resolve,reject){readyPromiseResolve=resolve;readyPromiseReject=reject});["_free","_malloc","_emscripten_bind_VoidPtr___destroy___0","_emscripten_bind_DecoderBuffer_DecoderBuffer_0","_emscripten_bind_DecoderBuffer_Init_2","_emscripten_bind_DecoderBuffer___destroy___0","_emscripten_bind_AttributeTransformData_AttributeTransformData_0","_emscripten_bind_AttributeTransformData_transform_type_0","_emscripten_bind_AttributeTransformData___destroy___0","_emscripten_bind_GeometryAttribute_GeometryAttribute_0","_emscripten_bind_GeometryAttribute___destroy___0","_emscripten_bind_PointAttribute_PointAttribute_0","_emscripten_bind_PointAttribute_size_0","_emscripten_bind_PointAttribute_GetAttributeTransformData_0","_emscripten_bind_PointAttribute_attribute_type_0","_emscripten_bind_PointAttribute_data_type_0","_emscripten_bind_PointAttribute_num_components_0","_emscripten_bind_PointAttribute_normalized_0","_emscripten_bind_PointAttribute_byte_stride_0","_emscripten_bind_PointAttribute_byte_offset_0","_emscripten_bind_PointAttribute_unique_id_0","_emscripten_bind_PointAttribute___destroy___0","_emscripten_bind_AttributeQuantizationTransform_AttributeQuantizationTransform_0","_emscripten_bind_AttributeQuantizationTransform_InitFromAttribute_1","_emscripten_bind_AttributeQuantizationTransform_quantization_bits_0","_emscripten_bind_AttributeQuantizationTransform_min_value_1","_emscripten_bind_AttributeQuantizationTransform_range_0","_emscripten_bind_AttributeQuantizationTransform___destroy___0","_emscripten_bind_AttributeOctahedronTransform_AttributeOctahedronTransform_0","_emscripten_bind_AttributeOctahedronTransform_InitFromAttribute_1","_emscripten_bind_AttributeOctahedronTransform_quantization_bits_0","_emscripten_bind_AttributeOctahedronTransform___destroy___0","_emscripten_bind_PointCloud_PointCloud_0","_emscripten_bind_PointCloud_num_attributes_0","_emscripten_bind_PointCloud_num_points_0","_emscripten_bind_PointCloud___destroy___0","_emscripten_bind_Mesh_Mesh_0","_emscripten_bind_Mesh_num_faces_0","_emscripten_bind_Mesh_num_attributes_0","_emscripten_bind_Mesh_num_points_0","_emscripten_bind_Mesh___destroy___0","_emscripten_bind_Metadata_Metadata_0","_emscripten_bind_Metadata___destroy___0","_emscripten_bind_Status_code_0","_emscripten_bind_Status_ok_0","_emscripten_bind_Status_error_msg_0","_emscripten_bind_Status___destroy___0","_emscripten_bind_DracoFloat32Array_DracoFloat32Array_0","_emscripten_bind_DracoFloat32Array_GetValue_1","_emscripten_bind_DracoFloat32Array_size_0","_emscripten_bind_DracoFloat32Array___destroy___0","_emscripten_bind_DracoInt8Array_DracoInt8Array_0","_emscripten_bind_DracoInt8Array_GetValue_1","_emscripten_bind_DracoInt8Array_size_0","_emscripten_bind_DracoInt8Array___destroy___0","_emscripten_bind_DracoUInt8Array_DracoUInt8Array_0","_emscripten_bind_DracoUInt8Array_GetValue_1","_emscripten_bind_DracoUInt8Array_size_0","_emscripten_bind_DracoUInt8Array___destroy___0","_emscripten_bind_DracoInt16Array_DracoInt16Array_0","_emscripten_bind_DracoInt16Array_GetValue_1","_emscripten_bind_DracoInt16Array_size_0","_emscripten_bind_DracoInt16Array___destroy___0","_emscripten_bind_DracoUInt16Array_DracoUInt16Array_0","_emscripten_bind_DracoUInt16Array_GetValue_1","_emscripten_bind_DracoUInt16Array_size_0","_emscripten_bind_DracoUInt16Array___destroy___0","_emscripten_bind_DracoInt32Array_DracoInt32Array_0","_emscripten_bind_DracoInt32Array_GetValue_1","_emscripten_bind_DracoInt32Array_size_0","_emscripten_bind_DracoInt32Array___destroy___0","_emscripten_bind_DracoUInt32Array_DracoUInt32Array_0","_emscripten_bind_DracoUInt32Array_GetValue_1","_emscripten_bind_DracoUInt32Array_size_0","_emscripten_bind_DracoUInt32Array___destroy___0","_emscripten_bind_MetadataQuerier_MetadataQuerier_0","_emscripten_bind_MetadataQuerier_HasEntry_2","_emscripten_bind_MetadataQuerier_GetIntEntry_2","_emscripten_bind_MetadataQuerier_GetIntEntryArray_3","_emscripten_bind_MetadataQuerier_GetDoubleEntry_2","_emscripten_bind_MetadataQuerier_GetStringEntry_2","_emscripten_bind_MetadataQuerier_NumEntries_1","_emscripten_bind_MetadataQuerier_GetEntryName_2","_emscripten_bind_MetadataQuerier___destroy___0","_emscripten_bind_Decoder_Decoder_0","_emscripten_bind_Decoder_DecodeArrayToPointCloud_3","_emscripten_bind_Decoder_DecodeArrayToMesh_3","_emscripten_bind_Decoder_GetAttributeId_2","_emscripten_bind_Decoder_GetAttributeIdByName_2","_emscripten_bind_Decoder_GetAttributeIdByMetadataEntry_3","_emscripten_bind_Decoder_GetAttribute_2","_emscripten_bind_Decoder_GetAttributeByUniqueId_2","_emscripten_bind_Decoder_GetMetadata_1","_emscripten_bind_Decoder_GetAttributeMetadata_2","_emscripten_bind_Decoder_GetFaceFromMesh_3","_emscripten_bind_Decoder_GetTriangleStripsFromMesh_2","_emscripten_bind_Decoder_GetTrianglesUInt16Array_3","_emscripten_bind_Decoder_GetTrianglesUInt32Array_3","_emscripten_bind_Decoder_GetAttributeFloat_3","_emscripten_bind_Decoder_GetAttributeFloatForAllPoints_3","_emscripten_bind_Decoder_GetAttributeIntForAllPoints_3","_emscripten_bind_Decoder_GetAttributeInt8ForAllPoints_3","_emscripten_bind_Decoder_GetAttributeUInt8ForAllPoints_3","_emscripten_bind_Decoder_GetAttributeInt16ForAllPoints_3","_emscripten_bind_Decoder_GetAttributeUInt16ForAllPoints_3","_emscripten_bind_Decoder_GetAttributeInt32ForAllPoints_3","_emscripten_bind_Decoder_GetAttributeUInt32ForAllPoints_3","_emscripten_bind_Decoder_GetAttributeDataArrayForAllPoints_5","_emscripten_bind_Decoder_SkipAttributeTransform_1","_emscripten_bind_Decoder_GetEncodedGeometryType_Deprecated_1","_emscripten_bind_Decoder_DecodeBufferToPointCloud_2","_emscripten_bind_Decoder_DecodeBufferToMesh_2","_emscripten_bind_Decoder___destroy___0","_emscripten_enum_draco_AttributeTransformType_ATTRIBUTE_INVALID_TRANSFORM","_emscripten_enum_draco_AttributeTransformType_ATTRIBUTE_NO_TRANSFORM","_emscripten_enum_draco_AttributeTransformType_ATTRIBUTE_QUANTIZATION_TRANSFORM","_emscripten_enum_draco_AttributeTransformType_ATTRIBUTE_OCTAHEDRON_TRANSFORM","_emscripten_enum_draco_GeometryAttribute_Type_INVALID","_emscripten_enum_draco_GeometryAttribute_Type_POSITION","_emscripten_enum_draco_GeometryAttribute_Type_NORMAL","_emscripten_enum_draco_GeometryAttribute_Type_COLOR","_emscripten_enum_draco_GeometryAttribute_Type_TEX_COORD","_emscripten_enum_draco_GeometryAttribute_Type_GENERIC","_emscripten_enum_draco_EncodedGeometryType_INVALID_GEOMETRY_TYPE","_emscripten_enum_draco_EncodedGeometryType_POINT_CLOUD","_emscripten_enum_draco_EncodedGeometryType_TRIANGULAR_MESH","_emscripten_enum_draco_DataType_DT_INVALID","_emscripten_enum_draco_DataType_DT_INT8","_emscripten_enum_draco_DataType_DT_UINT8","_emscripten_enum_draco_DataType_DT_INT16","_emscripten_enum_draco_DataType_DT_UINT16","_emscripten_enum_draco_DataType_DT_INT32","_emscripten_enum_draco_DataType_DT_UINT32","_emscripten_enum_draco_DataType_DT_INT64","_emscripten_enum_draco_DataType_DT_UINT64","_emscripten_enum_draco_DataType_DT_FLOAT32","_emscripten_enum_draco_DataType_DT_FLOAT64","_emscripten_enum_draco_DataType_DT_BOOL","_emscripten_enum_draco_DataType_DT_TYPES_COUNT","_emscripten_enum_draco_StatusCode_OK","_emscripten_enum_draco_StatusCode_DRACO_ERROR","_emscripten_enum_draco_StatusCode_IO_ERROR","_emscripten_enum_draco_StatusCode_INVALID_PARAMETER","_emscripten_enum_draco_StatusCode_UNSUPPORTED_VERSION","_emscripten_enum_draco_StatusCode_UNKNOWN_VERSION","_fflush","onRuntimeInitialized"].forEach(prop=>{if(!Object.getOwnPropertyDescriptor(Module["ready"],prop)){Object.defineProperty(Module["ready"],prop,{get:()=>abort("You are getting "+prop+" on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js"),set:()=>abort("You are setting "+prop+" on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")})}});var isRuntimeInitialized=false;var isModuleParsed=false;Module["onRuntimeInitialized"]=function(){isRuntimeInitialized=true;if(isModuleParsed){if(typeof Module["onModuleLoaded"]==="function"){Module["onModuleLoaded"](Module)}}};Module["onModuleParsed"]=function(){isModuleParsed=true;if(isRuntimeInitialized){if(typeof Module["onModuleLoaded"]==="function"){Module["onModuleLoaded"](Module)}}};function isVersionSupported(versionString){if(typeof versionString!=="string")return false;const version=versionString.split(".");if(version.length<2||version.length>3)return false;if(version[0]==1&&version[1]>=0&&version[1]<=5)return true;if(version[0]!=0||version[1]>10)return false;return true}Module["isVersionSupported"]=isVersionSupported;var moduleOverrides=Object.assign({},Module);var arguments_=[];var thisProgram="./this.program";var quit_=(status,toThrow)=>{throw toThrow};var ENVIRONMENT_IS_WEB=typeof window=="object";var ENVIRONMENT_IS_WORKER=typeof importScripts=="function";var ENVIRONMENT_IS_NODE=typeof process=="object"&&typeof process.versions=="object"&&typeof process.versions.node=="string";var ENVIRONMENT_IS_SHELL=!ENVIRONMENT_IS_WEB&&!ENVIRONMENT_IS_NODE&&!ENVIRONMENT_IS_WORKER;if(Module["ENVIRONMENT"]){throw new Error("Module.ENVIRONMENT has been deprecated. To force the environment, use the ENVIRONMENT compile-time option (for example, -sENVIRONMENT=web or -sENVIRONMENT=node)")}var scriptDirectory="";function locateFile(path){if(Module["locateFile"]){return Module["locateFile"](path,scriptDirectory)}return scriptDirectory+path}var read_,readAsync,readBinary,setWindowTitle;function logExceptionOnExit(e){if(e instanceof ExitStatus)return;let toLog=e;if(e&&typeof e=="object"&&e.stack){toLog=[e,e.stack]}err("exiting due to exception: "+toLog)}if(ENVIRONMENT_IS_NODE){if(typeof process=="undefined"||!process.release||process.release.name!=="node")throw new Error("not compiled for this environment (did you build to HTML and try to run it not on the web, or set ENVIRONMENT to something - like node - and run it someplace else - like on the web?)");if(ENVIRONMENT_IS_WORKER){scriptDirectory=require("path").dirname(scriptDirectory)+"/"}else{scriptDirectory=__dirname+"/"}var fs,nodePath;if(typeof require==="function"){fs=require("fs");nodePath=require("path")}read_=(filename,binary)=>{var ret=tryParseAsDataURI(filename);if(ret){return binary?ret:ret.toString()}filename=nodePath["normalize"](filename);return fs.readFileSync(filename,binary?undefined:"utf8")};readBinary=filename=>{var ret=read_(filename,true);if(!ret.buffer){ret=new Uint8Array(ret)}assert(ret.buffer);return ret};readAsync=(filename,onload,onerror)=>{var ret=tryParseAsDataURI(filename);if(ret){onload(ret)}filename=nodePath["normalize"](filename);fs.readFile(filename,function(err,data){if(err)onerror(err);else onload(data.buffer)})};if(process["argv"].length>1){thisProgram=process["argv"][1].replace(/\\/g,"/")}arguments_=process["argv"].slice(2);quit_=(status,toThrow)=>{if(keepRuntimeAlive()){process["exitCode"]=status;throw toThrow}logExceptionOnExit(toThrow);process["exit"](status)};Module["inspect"]=function(){return"[Emscripten Module object]"}}else if(ENVIRONMENT_IS_SHELL){if(typeof process=="object"&&typeof require==="function"||typeof window=="object"||typeof importScripts=="function")throw new Error("not compiled for this environment (did you build to HTML and try to run it not on the web, or set ENVIRONMENT to something - like node - and run it someplace else - like on the web?)");if(typeof read!="undefined"){read_=function shell_read(f){const data=tryParseAsDataURI(f);if(data){return intArrayToString(data)}return read(f)}}readBinary=function readBinary(f){let data;data=tryParseAsDataURI(f);if(data){return data}if(typeof readbuffer=="function"){return new Uint8Array(readbuffer(f))}data=read(f,"binary");assert(typeof data=="object");return data};readAsync=function readAsync(f,onload,onerror){setTimeout(()=>onload(readBinary(f)),0)};if(typeof scriptArgs!="undefined"){arguments_=scriptArgs}else if(typeof arguments!="undefined"){arguments_=arguments}if(typeof quit=="function"){quit_=(status,toThrow)=>{logExceptionOnExit(toThrow);quit(status)}}if(typeof print!="undefined"){if(typeof console=="undefined")console={};console.log=print;console.warn=console.error=typeof printErr!="undefined"?printErr:print}}else if(ENVIRONMENT_IS_WEB||ENVIRONMENT_IS_WORKER){if(ENVIRONMENT_IS_WORKER){scriptDirectory=self.location.href}else if(typeof document!="undefined"&&document.currentScript){scriptDirectory=document.currentScript.src}if(_scriptDir){scriptDirectory=_scriptDir}if(scriptDirectory.indexOf("blob:")!==0){scriptDirectory=scriptDirectory.substr(0,scriptDirectory.replace(/[?#].*/,"").lastIndexOf("/")+1)}else{scriptDirectory=""}if(!(typeof window=="object"||typeof importScripts=="function"))throw new Error("not compiled for this environment (did you build to HTML and try to run it not on the web, or set ENVIRONMENT to something - like node - and run it someplace else - like on the web?)");{read_=url=>{try{var xhr=new XMLHttpRequest;xhr.open("GET",url,false);xhr.send(null);return xhr.responseText}catch(err){var data=tryParseAsDataURI(url);if(data){return intArrayToString(data)}throw err}};if(ENVIRONMENT_IS_WORKER){readBinary=url=>{try{var xhr=new XMLHttpRequest;xhr.open("GET",url,false);xhr.responseType="arraybuffer";xhr.send(null);return new Uint8Array(xhr.response)}catch(err){var data=tryParseAsDataURI(url);if(data){return data}throw err}}}readAsync=(url,onload,onerror)=>{var xhr=new XMLHttpRequest;xhr.open("GET",url,true);xhr.responseType="arraybuffer";xhr.onload=()=>{if(xhr.status==200||xhr.status==0&&xhr.response){onload(xhr.response);return}var data=tryParseAsDataURI(url);if(data){onload(data.buffer);return}onerror()};xhr.onerror=onerror;xhr.send(null)}}setWindowTitle=title=>document.title=title}else{throw new Error("environment detection error")}var out=Module["print"]||console.log.bind(console);var err=Module["printErr"]||console.warn.bind(console);Object.assign(Module,moduleOverrides);moduleOverrides=null;checkIncomingModuleAPI();if(Module["arguments"])arguments_=Module["arguments"];legacyModuleProp("arguments","arguments_");if(Module["thisProgram"])thisProgram=Module["thisProgram"];legacyModuleProp("thisProgram","thisProgram");if(Module["quit"])quit_=Module["quit"];legacyModuleProp("quit","quit_");assert(typeof Module["memoryInitializerPrefixURL"]=="undefined","Module.memoryInitializerPrefixURL option was removed, use Module.locateFile instead");assert(typeof Module["pthreadMainPrefixURL"]=="undefined","Module.pthreadMainPrefixURL option was removed, use Module.locateFile instead");assert(typeof Module["cdInitializerPrefixURL"]=="undefined","Module.cdInitializerPrefixURL option was removed, use Module.locateFile instead");assert(typeof Module["filePackagePrefixURL"]=="undefined","Module.filePackagePrefixURL option was removed, use Module.locateFile instead");assert(typeof Module["read"]=="undefined","Module.read option was removed (modify read_ in JS)");assert(typeof Module["readAsync"]=="undefined","Module.readAsync option was removed (modify readAsync in JS)");assert(typeof Module["readBinary"]=="undefined","Module.readBinary option was removed (modify readBinary in JS)");assert(typeof Module["setWindowTitle"]=="undefined","Module.setWindowTitle option was removed (modify setWindowTitle in JS)");assert(typeof Module["TOTAL_MEMORY"]=="undefined","Module.TOTAL_MEMORY has been renamed Module.INITIAL_MEMORY");legacyModuleProp("read","read_");legacyModuleProp("readAsync","readAsync");legacyModuleProp("readBinary","readBinary");legacyModuleProp("setWindowTitle","setWindowTitle");assert(!ENVIRONMENT_IS_SHELL,"shell environment detected but not enabled at build time. Add 'shell' to `-sENVIRONMENT` to enable.");var POINTER_SIZE=4;function legacyModuleProp(prop,newName){if(!Object.getOwnPropertyDescriptor(Module,prop)){Object.defineProperty(Module,prop,{configurable:true,get:function(){abort("Module."+prop+" has been replaced with plain "+newName+" (the initial value can be provided on Module, but after startup the value is only looked for on a local variable of that name)")}})}}function ignoredModuleProp(prop){if(Object.getOwnPropertyDescriptor(Module,prop)){abort("`Module."+prop+"` was supplied but `"+prop+"` not included in INCOMING_MODULE_JS_API")}}function isExportedByForceFilesystem(name){return name==="FS_createPath"||name==="FS_createDataFile"||name==="FS_createPreloadedFile"||name==="FS_unlink"||name==="addRunDependency"||name==="FS_createLazyFile"||name==="FS_createDevice"||name==="removeRunDependency"}function missingLibrarySymbol(sym){if(typeof globalThis!=="undefined"&&!Object.getOwnPropertyDescriptor(globalThis,sym)){Object.defineProperty(globalThis,sym,{configurable:true,get:function(){var msg="`"+sym+"` is a library symbol and not included by default; add it to your library.js __deps or to DEFAULT_LIBRARY_FUNCS_TO_INCLUDE on the command line";var librarySymbol=sym;if(!librarySymbol.startsWith("_")){librarySymbol="$"+sym}msg+=" (e.g. -sDEFAULT_LIBRARY_FUNCS_TO_INCLUDE="+librarySymbol+")";if(isExportedByForceFilesystem(sym)){msg+=". Alternatively, forcing filesystem support (-sFORCE_FILESYSTEM) can export this for you"}warnOnce(msg);return undefined}})}}function unexportedRuntimeSymbol(sym){if(!Object.getOwnPropertyDescriptor(Module,sym)){Object.defineProperty(Module,sym,{configurable:true,get:function(){var msg="'"+sym+"' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)";if(isExportedByForceFilesystem(sym)){msg+=". Alternatively, forcing filesystem support (-sFORCE_FILESYSTEM) can export this for you"}abort(msg)}})}}var wasmBinary;if(Module["wasmBinary"])wasmBinary=Module["wasmBinary"];legacyModuleProp("wasmBinary","wasmBinary");var noExitRuntime=Module["noExitRuntime"]||true;legacyModuleProp("noExitRuntime","noExitRuntime");var WebAssembly={Memory:function(opts){this.buffer=new ArrayBuffer(opts["initial"]*65536)},Module:function(binary){},Instance:function(module,info){this.exports=( // EMSCRIPTEN_START_ASM -function instantiate(ta){function c(d){d.set=function(a,b){this[a]=b};d.get=function(a){return this[a]};return d}var e;var f=new Uint8Array(123);for(var a=25;a>=0;--a){f[48+a]=52+a;f[65+a]=a;f[97+a]=26+a}f[43]=62;f[47]=63;function l(m,n,o){var g,h,a=0,i=n,j=o.length,k=n+(j*3>>2)-(o[j-2]=="=")-(o[j-1]=="=");for(;a>4;if(i>2;if(i=0;--a){f[48+a]=52+a;f[65+a]=a;f[97+a]=26+a}f[43]=62;f[47]=63;function l(m,n,o){var g,h,a=0,i=n,j=o.length,k=n+(j*3>>2)-(o[j-2]=="=")-(o[j-1]=="=");for(;a>4;if(i>2;if(i>2];d=F[b+20>>2];f=F[b+16>>2];e=f+4|0;d=e>>>0<4?d+1|0:d;a:{b:{c:{if(e>>>0>I[b+8>>2]&(d|0)>=(g|0)|(d|0)>(g|0)){break c}d=f+F[b>>2]|0;F[a>>2]=G[d|0]|G[d+1|0]<<8|(G[d+2|0]<<16|G[d+3|0]<<24);d=F[b+20>>2];g=d;e=F[b+16>>2];f=e+4|0;d=f>>>0<4?d+1|0:d;l=f;F[b+16>>2]=f;F[b+20>>2]=d;if(I[a>>2]>31){break c}f=F[b+12>>2];d=g;g=e+8|0;d=g>>>0<8?d+1|0:d;if(g>>>0>I[b+8>>2]&(d|0)>=(f|0)|(d|0)>(f|0)){break c}d=l+F[b>>2]|0;F[a+4>>2]=G[d|0]|G[d+1|0]<<8|(G[d+2|0]<<16|G[d+3|0]<<24);d=F[b+20>>2];g=d;e=F[b+16>>2];f=e+4|0;d=f>>>0<4?d+1|0:d;l=f;F[b+16>>2]=f;F[b+20>>2]=d;f=F[b+12>>2];d=g;g=e+8|0;d=g>>>0<8?d+1|0:d;if(g>>>0>I[b+8>>2]&(d|0)>=(f|0)|(d|0)>(f|0)){break c}d=l+F[b>>2]|0;F[a+12>>2]=G[d|0]|G[d+1|0]<<8|(G[d+2|0]<<16|G[d+3|0]<<24);d=F[b+20>>2];g=d;e=F[b+16>>2];f=e+4|0;d=f>>>0<4?d+1|0:d;n=f;F[b+16>>2]=f;F[b+20>>2]=d;d=F[a+20>>2];l=F[a+12>>2];if((l|0)!=(d|0)?d:0){break c}f=F[b+12>>2];d=g;g=e+8|0;d=g>>>0<8?d+1|0:d;if(g>>>0>I[b+8>>2]&(d|0)>=(f|0)|(d|0)>(f|0)){break c}d=n+F[b>>2]|0;g=G[d|0]|G[d+1|0]<<8|(G[d+2|0]<<16|G[d+3|0]<<24);F[a+16>>2]=g;d=F[b+20>>2];f=F[b+16>>2]+4|0;d=f>>>0<4?d+1|0:d;F[b+16>>2]=f;F[b+20>>2]=d;if(g>>>0>=7){F[w>>2]=g;_i(1713,w);break c}F[w+664>>2]=c;d:{if(!l){break d}e:{e=F[c>>2];if(l>>>0<=(F[c+8>>2]-e|0)/12>>>0){break e}if(l>>>0<357913942){f=F[c+4>>2];g=L(l,12);d=rj(g);l=d+g|0;g=d+L((f-e|0)/12|0,12)|0;d=g;if((e|0)!=(f|0)){d=g;while(1){d=d-12|0;f=f-12|0;F[d>>2]=F[f>>2];F[d+4>>2]=F[f+4>>2];F[d+8>>2]=F[f+8>>2];if((e|0)!=(f|0)){continue}break}}F[c+8>>2]=l;F[c+4>>2]=g;F[c>>2]=d;if(!e){break e}oj(e);break e}break b}f:{switch(F[a+16>>2]){case 0:j=ub(w+8|0,3);v=w+664|0;h=F[b+12>>2];d=F[b+20>>2];g=F[b+16>>2];f=g+4|0;d=f>>>0<4?d+1|0:d;g:{if(f>>>0>I[b+8>>2]&(d|0)>=(h|0)|(d|0)>(h|0)){break g}d=g+F[b>>2]|0;F[j>>2]=G[d|0]|G[d+1|0]<<8|(G[d+2|0]<<16|G[d+3|0]<<24);d=F[b+20>>2];h=d;f=F[b+16>>2];g=f+4|0;d=g>>>0<4?d+1|0:d;e=g;F[b+16>>2]=e;F[b+20>>2]=d;if(I[j>>2]>32){break g}g=F[b+12>>2];d=h;h=f+8|0;d=h>>>0<8?d+1|0:d;if(h>>>0>I[b+8>>2]&(d|0)>=(g|0)|(d|0)>(g|0)){break g}d=e+F[b>>2]|0;h=G[d|0]|G[d+1|0]<<8|(G[d+2|0]<<16|G[d+3|0]<<24);F[j+4>>2]=h;d=F[b+20>>2];g=F[b+16>>2]+4|0;d=g>>>0<4?d+1|0:d;F[b+16>>2]=g;F[b+20>>2]=d;if(!h){break g}F[j+8>>2]=0;if(!fe(j+16|0,b)){break g}if(!fe(j+36|0,b)){break g}if(!fe(j+56|0,b)){break g}if(!fe(j+76|0,b)){break g}q=F[j+4>>2];g=0;e=fa-32|0;fa=e;f=F[j+12>>2];F[e+16>>2]=0;F[e+8>>2]=0;F[e+12>>2]=0;if(f){if(f>>>0>=1073741824){break b}b=f<<2;i=rj(b);F[e+8>>2]=i;g=b+i|0;F[e+16>>2]=g;Ti(i,0,b);F[e+12>>2]=g}b=F[j+120>>2];d=F[b>>2];if(d){F[b+4>>2]=d;oj(d);F[b+8>>2]=0;F[b>>2]=0;F[b+4>>2]=0;f=F[j+12>>2];i=F[e+8>>2];g=F[e+12>>2]}F[b+4>>2]=g;F[b>>2]=i;F[b+8>>2]=F[e+16>>2];i=0;F[e+16>>2]=0;F[e+8>>2]=0;F[e+12>>2]=0;g=0;h:{if(f){if(f>>>0>=1073741824){break b}b=f<<2;g=rj(b);F[e+8>>2]=g;i=b+g|0;F[e+16>>2]=i;Ti(g,0,b);F[e+12>>2]=i}b=F[j+132>>2];d=F[b>>2];if(d){F[b+4>>2]=d;oj(d);F[b+8>>2]=0;F[b>>2]=0;F[b+4>>2]=0;i=F[e+12>>2];g=F[e+8>>2]}F[b+4>>2]=i;F[b>>2]=g;F[b+8>>2]=F[e+16>>2];F[e+24>>2]=0;F[e+28>>2]=0;F[e+16>>2]=0;F[e+20>>2]=0;F[e+8>>2]=0;F[e+12>>2]=0;Ob(e+8|0);b=F[e+24>>2]+F[e+28>>2]|0;d=(b>>>0)/341|0;b=F[F[e+12>>2]+(d<<2)>>2]+L(b-L(d,341)|0,12)|0;F[b+4>>2]=0;F[b+8>>2]=0;F[b>>2]=q;f=F[e+28>>2]+1|0;F[e+28>>2]=f;i:{if(!f){break i}y=j+96|0;while(1){b=F[e+12>>2];h=F[e+24>>2];i=f-1|0;d=h+i|0;g=(d>>>0)/341|0;d=F[b+(g<<2)>>2]+L(d-L(g,341)|0,12)|0;n=F[d+8>>2];g=F[d+4>>2];k=F[d>>2];F[e+28>>2]=i;d=F[e+16>>2];if((((b|0)==(d|0)?0:L(d-b>>2,341)-1|0)-(f+h|0)|0)+1>>>0>=682){oj(F[d-4>>2]);F[e+16>>2]=F[e+16>>2]-4}h=0;if(k>>>0>q>>>0){break i}b=F[j+12>>2];f=(g|0)==(b-1|0)?0:g+1|0;if(f>>>0>=b>>>0){break i}i=L(n,12);o=i+F[j+132>>2]|0;l=i+F[j+120>>2]|0;d=F[j>>2];m=f<<2;g=F[m+F[o>>2]>>2];j:{k:{if((d|0)==(g|0)){if(!k){break k}while(1){b=F[l>>2];o=F[b+8>>2];m=F[b+4>>2];p=F[b>>2];d=F[v>>2];f=F[d+4>>2];g=F[d+8>>2];l:{if(f>>>0>>0){F[f+8>>2]=o;F[f+4>>2]=m;F[f>>2]=p;F[d+4>>2]=f+12;break l}i=F[d>>2];t=(f-i|0)/12|0;b=t+1|0;if(b>>>0>=357913942){break b}g=(g-i|0)/12|0;n=g<<1;n=g>>>0<178956970?b>>>0>>0?n:b:357913941;if(n){if(n>>>0>=357913942){break a}b=rj(L(n,12))}else{b=0}g=b+L(t,12)|0;F[g+8>>2]=o;F[g+4>>2]=m;F[g>>2]=p;o=g+12|0;if((f|0)!=(i|0)){while(1){g=g-12|0;f=f-12|0;F[g>>2]=F[f>>2];F[g+4>>2]=F[f+4>>2];F[g+8>>2]=F[f+8>>2];if((f|0)!=(i|0)){continue}break}}F[d+8>>2]=b+L(n,12);F[d+4>>2]=o;F[d>>2]=g;if(!i){break l}oj(i)}F[j+8>>2]=F[j+8>>2]+1;h=h+1|0;if((k|0)!=(h|0)){continue}break}break k}m:{n:{o:{p:{if(k>>>0<=2){b=F[j+108>>2];F[b>>2]=f;g=1;i=F[j+12>>2];if(i>>>0>1){break p}break m}if(I[j+8>>2]>I[j+4>>2]){break i}b=F[j+120>>2];p=n+1|0;o=L(p,12);h=b+o|0;if((h|0)!=(l|0)){Pa(h,F[l>>2],F[l+4>>2]);b=F[j+120>>2]}b=m+F[b+o>>2]|0;F[b>>2]=F[b>>2]+(1<>2];g=32-d|0;q:{if((b|0)<=(g|0)){h=F[j+28>>2];if((h|0)==F[j+20>>2]){break o}g=F[h>>2];l=b+d|0;F[j+32>>2]=l;g=g<>>32-b|0;if((l|0)!=32){break q}F[j+32>>2]=0;F[j+28>>2]=h+4;break q}h=F[j+28>>2];l=h+4|0;if((l|0)==F[j+20>>2]){break o}t=F[h>>2];F[j+28>>2]=l;g=b-g|0;F[j+32>>2]=g;g=F[h+4>>2]>>>32-g|t<>>32-b}d=k>>>1|0;if(g>>>0>d>>>0){break i}break n}while(1){f=(i-1|0)==(f|0)?0:f+1|0;F[b+(g<<2)>>2]=f;g=g+1|0;i=F[j+12>>2];if(g>>>0>>0){continue}break}break m}d=k>>>1|0;g=0}r:{s:{b=d-g|0;h=k-b|0;t:{if((h|0)==(b|0)){d=b;break t}d=F[j+88>>2];if((d|0)==F[j+80>>2]){break s}g=F[d>>2];k=F[j+92>>2];l=k+1|0;F[j+92>>2]=l;g=g&-2147483648>>>k;u:{if((l|0)==32){F[j+92>>2]=0;F[j+88>>2]=d+4;if(g){break u}break s}if(!g){break s}}d=h}h=b;break r}d=b}b=F[j+132>>2];g=b+i|0;i=F[g>>2];k=i+m|0;F[k>>2]=F[k>>2]+1;Pa(b+o|0,i,F[g+4>>2]);if(h){i=F[e+28>>2]+F[e+24>>2]|0;b=F[e+16>>2];g=F[e+12>>2];if((i|0)==(((b|0)==(g|0)?0:L(b-g>>2,341)-1|0)|0)){Ob(e+8|0);i=F[e+24>>2]+F[e+28>>2]|0;g=F[e+12>>2]}b=(i>>>0)/341|0;b=F[g+(b<<2)>>2]+L(i-L(b,341)|0,12)|0;F[b+8>>2]=n;F[b+4>>2]=f;F[b>>2]=h;F[e+28>>2]=F[e+28>>2]+1}if(!d){break k}i=F[e+28>>2]+F[e+24>>2]|0;b=F[e+16>>2];g=F[e+12>>2];if((i|0)==(((b|0)==(g|0)?0:L(b-g>>2,341)-1|0)|0)){Ob(e+8|0);i=F[e+24>>2]+F[e+28>>2]|0;g=F[e+12>>2]}b=(i>>>0)/341|0;b=F[g+(b<<2)>>2]+L(i-L(b,341)|0,12)|0;F[b+8>>2]=p;F[b+4>>2]=f;F[b>>2]=d;f=F[e+28>>2]+1|0;F[e+28>>2]=f;break j}i=0;if(!k){break k}while(1){if(F[j+12>>2]){t=F[l>>2];g=F[j+40>>2];s=F[o>>2];h=F[j+96>>2];z=F[j+108>>2];f=0;while(1){n=z+(f<<2)|0;F[h+(F[n>>2]<<2)>>2]=0;d=F[j>>2];b=F[n>>2]<<2;m=F[b+s>>2];v:{if((d|0)==(m|0)){break v}b=b+h|0;d=d-m|0;m=F[j+52>>2];u=32-m|0;if((d|0)<=(u|0)){p=F[j+48>>2];if((p|0)==(g|0)){F[b>>2]=0;break v}F[b>>2]=F[p>>2]<>>32-d;b=d+F[j+52>>2]|0;F[j+52>>2]=b;if((b|0)!=32){break v}F[j+52>>2]=0;F[j+48>>2]=p+4;break v}p=F[j+48>>2];r=p+4|0;if((r|0)==(g|0)){F[b>>2]=0;break v}x=F[p>>2];F[j+48>>2]=r;u=d-u|0;F[j+52>>2]=u;F[b>>2]=F[p+4>>2]>>>32-u|x<>>32-d}b=F[n>>2]<<2;d=b+h|0;F[d>>2]=F[d>>2]|F[b+t>>2];f=f+1|0;if(f>>>0>2]){continue}break}}Qi(v,y);F[j+8>>2]=F[j+8>>2]+1;i=i+1|0;if((k|0)!=(i|0)){continue}break}}f=F[e+28>>2]}if(f){continue}break}}F[e+28>>2]=0;b=F[e+16>>2];f=F[e+12>>2];g=b-f|0;if(g>>>0>=9){while(1){oj(F[f>>2]);f=F[e+12>>2]+4|0;F[e+12>>2]=f;b=F[e+16>>2];g=b-f|0;if(g>>>0>8){continue}break}}i=170;w:{switch((g>>>2|0)-1|0){case 1:i=341;case 0:F[e+24>>2]=i;break;default:break w}}x:{if((b|0)==(f|0)){break x}while(1){oj(F[f>>2]);f=f+4|0;if((f|0)!=(b|0)){continue}break}b=F[e+16>>2];d=F[e+12>>2];if((b|0)==(d|0)){break x}F[e+16>>2]=b+((d-b|0)+3&-4)}b=F[e+8>>2];if(b){oj(b)}fa=e+32|0;break h}}tb(j);break d;case 1:j=ub(w+8|0,3);v=w+664|0;h=F[b+12>>2];d=F[b+20>>2];g=F[b+16>>2];f=g+4|0;d=f>>>0<4?d+1|0:d;y:{if(f>>>0>I[b+8>>2]&(d|0)>=(h|0)|(d|0)>(h|0)){break y}d=g+F[b>>2]|0;F[j>>2]=G[d|0]|G[d+1|0]<<8|(G[d+2|0]<<16|G[d+3|0]<<24);d=F[b+20>>2];h=d;f=F[b+16>>2];g=f+4|0;d=g>>>0<4?d+1|0:d;e=g;F[b+16>>2]=e;F[b+20>>2]=d;if(I[j>>2]>32){break y}g=F[b+12>>2];d=h;h=f+8|0;d=h>>>0<8?d+1|0:d;if(h>>>0>I[b+8>>2]&(d|0)>=(g|0)|(d|0)>(g|0)){break y}d=e+F[b>>2]|0;h=G[d|0]|G[d+1|0]<<8|(G[d+2|0]<<16|G[d+3|0]<<24);F[j+4>>2]=h;d=F[b+20>>2];g=F[b+16>>2]+4|0;d=g>>>0<4?d+1|0:d;F[b+16>>2]=g;F[b+20>>2]=d;if(!h){break y}F[j+8>>2]=0;if(!fe(j+16|0,b)){break y}if(!fe(j+36|0,b)){break y}if(!fe(j+56|0,b)){break y}if(!fe(j+76|0,b)){break y}q=F[j+4>>2];h=0;g=0;e=fa-32|0;fa=e;f=F[j+12>>2];F[e+16>>2]=0;F[e+8>>2]=0;F[e+12>>2]=0;if(f){if(f>>>0>=1073741824){break b}b=f<<2;h=rj(b);F[e+8>>2]=h;g=b+h|0;F[e+16>>2]=g;Ti(h,0,b);F[e+12>>2]=g}b=F[j+120>>2];d=F[b>>2];if(d){F[b+4>>2]=d;oj(d);F[b+8>>2]=0;F[b>>2]=0;F[b+4>>2]=0;f=F[j+12>>2];g=F[e+12>>2];h=F[e+8>>2]}F[b+4>>2]=g;F[b>>2]=h;F[b+8>>2]=F[e+16>>2];h=0;F[e+16>>2]=0;F[e+8>>2]=0;F[e+12>>2]=0;z:{if(f){if(f>>>0>=1073741824){break b}b=f<<2;i=rj(b);F[e+8>>2]=i;h=b+i|0;F[e+16>>2]=h;Ti(i,0,b);F[e+12>>2]=h}b=F[j+132>>2];d=F[b>>2];if(d){F[b+4>>2]=d;oj(d);F[b+8>>2]=0;F[b>>2]=0;F[b+4>>2]=0;i=F[e+8>>2];h=F[e+12>>2]}F[b+4>>2]=h;F[b>>2]=i;F[b+8>>2]=F[e+16>>2];F[e+24>>2]=0;F[e+28>>2]=0;F[e+16>>2]=0;F[e+20>>2]=0;F[e+8>>2]=0;F[e+12>>2]=0;Ob(e+8|0);b=F[e+24>>2]+F[e+28>>2]|0;d=(b>>>0)/341|0;b=F[F[e+12>>2]+(d<<2)>>2]+L(b-L(d,341)|0,12)|0;F[b+4>>2]=0;F[b+8>>2]=0;F[b>>2]=q;f=F[e+28>>2]+1|0;F[e+28>>2]=f;A:{if(!f){break A}y=j+96|0;while(1){b=F[e+12>>2];i=F[e+24>>2];l=f-1|0;d=i+l|0;h=(d>>>0)/341|0;d=F[b+(h<<2)>>2]+L(d-L(h,341)|0,12)|0;k=F[d+8>>2];h=F[d+4>>2];g=F[d>>2];F[e+28>>2]=l;d=F[e+16>>2];if((((b|0)==(d|0)?0:L(d-b>>2,341)-1|0)-(f+i|0)|0)+1>>>0>=682){oj(F[d-4>>2]);F[e+16>>2]=F[e+16>>2]-4}if(g>>>0>q>>>0){break A}b=F[j+12>>2];f=(h|0)==(b-1|0)?0:h+1|0;if(f>>>0>=b>>>0){break A}b=F[j+120>>2];n=L(k,12);l=b+n|0;d=F[j>>2];o=f<<2;p=n+F[j+132>>2]|0;h=F[o+F[p>>2]>>2];B:{C:{if((d|0)==(h|0)){n=0;if(!g){break C}while(1){b=F[l>>2];o=F[b+8>>2];m=F[b+4>>2];p=F[b>>2];d=F[v>>2];f=F[d+4>>2];i=F[d+8>>2];D:{if(f>>>0>>0){F[f+8>>2]=o;F[f+4>>2]=m;F[f>>2]=p;F[d+4>>2]=f+12;break D}h=F[d>>2];t=(f-h|0)/12|0;b=t+1|0;if(b>>>0>=357913942){break b}i=(i-h|0)/12|0;k=i<<1;k=i>>>0<178956970?b>>>0>>0?k:b:357913941;if(k){if(k>>>0>=357913942){break a}b=rj(L(k,12))}else{b=0}i=b+L(t,12)|0;F[i+8>>2]=o;F[i+4>>2]=m;F[i>>2]=p;o=i+12|0;if((f|0)!=(h|0)){while(1){i=i-12|0;f=f-12|0;F[i>>2]=F[f>>2];F[i+4>>2]=F[f+4>>2];F[i+8>>2]=F[f+8>>2];if((f|0)!=(h|0)){continue}break}}F[d+8>>2]=b+L(k,12);F[d+4>>2]=o;F[d>>2]=i;if(!h){break D}oj(h)}F[j+8>>2]=F[j+8>>2]+1;n=n+1|0;if((g|0)!=(n|0)){continue}break}break C}E:{F:{G:{H:{if(g>>>0<=2){b=F[j+108>>2];F[b>>2]=f;i=1;h=F[j+12>>2];if(h>>>0>1){break H}break E}if(I[j+8>>2]>I[j+4>>2]){break A}i=b;b=n+12|0;Pa(i+b|0,F[l>>2],F[l+4>>2]);b=o+F[b+F[j+120>>2]>>2]|0;F[b>>2]=F[b>>2]+(1<>2];i=32-d|0;I:{if((b|0)<=(i|0)){h=F[j+28>>2];if((h|0)==F[j+20>>2]){break G}i=F[h>>2];l=b+d|0;F[j+32>>2]=l;i=i<>>32-b|0;if((l|0)!=32){break I}F[j+32>>2]=0;F[j+28>>2]=h+4;break I}h=F[j+28>>2];l=h+4|0;if((l|0)==F[j+20>>2]){break G}m=F[h>>2];F[j+28>>2]=l;i=b-i|0;F[j+32>>2]=i;i=F[h+4>>2]>>>32-i|m<>>32-b}d=g>>>1|0;if(i>>>0>d>>>0){break A}break F}while(1){f=(h-1|0)==(f|0)?0:f+1|0;F[b+(i<<2)>>2]=f;h=F[j+12>>2];i=i+1|0;if(h>>>0>i>>>0){continue}break}break E}d=g>>>1|0;i=0}l=k+1|0;J:{K:{b=d-i|0;h=g-b|0;L:{if((h|0)==(b|0)){d=b;break L}d=F[j+88>>2];if((d|0)==F[j+80>>2]){break K}g=F[d>>2];i=F[j+92>>2];m=i+1|0;F[j+92>>2]=m;g=g&-2147483648>>>i;M:{if((m|0)==32){F[j+92>>2]=0;F[j+88>>2]=d+4;if(g){break M}break K}if(!g){break K}}d=h}h=b;break J}d=b}b=F[j+132>>2];g=b+n|0;i=F[g>>2];n=i+o|0;F[n>>2]=F[n>>2]+1;Pa(b+L(l,12)|0,i,F[g+4>>2]);if(h){g=F[e+28>>2]+F[e+24>>2]|0;b=F[e+16>>2];i=F[e+12>>2];if((g|0)==(((b|0)==(i|0)?0:L(b-i>>2,341)-1|0)|0)){Ob(e+8|0);i=F[e+12>>2];g=F[e+24>>2]+F[e+28>>2]|0}b=(g>>>0)/341|0;b=F[(b<<2)+i>>2]+L(g-L(b,341)|0,12)|0;F[b+8>>2]=k;F[b+4>>2]=f;F[b>>2]=h;F[e+28>>2]=F[e+28>>2]+1}if(!d){break C}h=F[e+28>>2]+F[e+24>>2]|0;b=F[e+16>>2];i=F[e+12>>2];if((h|0)==(((b|0)==(i|0)?0:L(b-i>>2,341)-1|0)|0)){Ob(e+8|0);i=F[e+12>>2];h=F[e+24>>2]+F[e+28>>2]|0}b=(h>>>0)/341|0;b=F[(b<<2)+i>>2]+L(h-L(b,341)|0,12)|0;F[b+8>>2]=l;F[b+4>>2]=f;F[b>>2]=d;f=F[e+28>>2]+1|0;F[e+28>>2]=f;break B}k=0;if(!g){break C}while(1){if(F[j+12>>2]){t=F[l>>2];i=F[j+40>>2];s=F[p>>2];h=F[j+96>>2];z=F[j+108>>2];f=0;while(1){n=z+(f<<2)|0;F[h+(F[n>>2]<<2)>>2]=0;d=F[j>>2];b=F[n>>2]<<2;o=F[b+s>>2];N:{if((d|0)==(o|0)){break N}b=b+h|0;d=d-o|0;o=F[j+52>>2];u=32-o|0;if((d|0)<=(u|0)){m=F[j+48>>2];if((m|0)==(i|0)){F[b>>2]=0;break N}F[b>>2]=F[m>>2]<>>32-d;b=d+F[j+52>>2]|0;F[j+52>>2]=b;if((b|0)!=32){break N}F[j+52>>2]=0;F[j+48>>2]=m+4;break N}m=F[j+48>>2];r=m+4|0;if((r|0)==(i|0)){F[b>>2]=0;break N}x=F[m>>2];F[j+48>>2]=r;u=d-u|0;F[j+52>>2]=u;F[b>>2]=F[m+4>>2]>>>32-u|x<>>32-d}b=F[n>>2]<<2;d=b+h|0;F[d>>2]=F[d>>2]|F[b+t>>2];f=f+1|0;if(f>>>0>2]){continue}break}}Qi(v,y);F[j+8>>2]=F[j+8>>2]+1;k=k+1|0;if((g|0)!=(k|0)){continue}break}}f=F[e+28>>2]}if(f){continue}break}}F[e+28>>2]=0;b=F[e+16>>2];f=F[e+12>>2];i=b-f|0;if(i>>>0>=9){while(1){oj(F[f>>2]);f=F[e+12>>2]+4|0;F[e+12>>2]=f;b=F[e+16>>2];i=b-f|0;if(i>>>0>8){continue}break}}g=170;O:{switch((i>>>2|0)-1|0){case 1:g=341;case 0:F[e+24>>2]=g;break;default:break O}}P:{if((b|0)==(f|0)){break P}while(1){oj(F[f>>2]);f=f+4|0;if((f|0)!=(b|0)){continue}break}b=F[e+16>>2];d=F[e+12>>2];if((b|0)==(d|0)){break P}F[e+16>>2]=b+((d-b|0)+3&-4)}b=F[e+8>>2];if(b){oj(b)}fa=e+32|0;break z}}tb(j);break d;case 2:j=yb(w+8|0,3);v=w+664|0;g=F[b+12>>2];d=F[b+20>>2];f=F[b+16>>2];e=f+4|0;d=e>>>0<4?d+1|0:d;Q:{if(e>>>0>I[b+8>>2]&(d|0)>=(g|0)|(d|0)>(g|0)){break Q}d=f+F[b>>2]|0;F[j>>2]=G[d|0]|G[d+1|0]<<8|(G[d+2|0]<<16|G[d+3|0]<<24);d=F[b+20>>2];g=d;e=F[b+16>>2];f=e+4|0;d=f>>>0<4?d+1|0:d;k=f;F[b+16>>2]=f;F[b+20>>2]=d;if(I[j>>2]>32){break Q}f=F[b+12>>2];d=g;g=e+8|0;d=g>>>0<8?d+1|0:d;if(g>>>0>I[b+8>>2]&(d|0)>=(f|0)|(d|0)>(f|0)){break Q}d=k+F[b>>2]|0;g=G[d|0]|G[d+1|0]<<8|(G[d+2|0]<<16|G[d+3|0]<<24);F[j+4>>2]=g;d=F[b+20>>2];f=F[b+16>>2]+4|0;d=f>>>0<4?d+1|0:d;F[b+16>>2]=f;F[b+20>>2]=d;if(!g){break Q}F[j+8>>2]=0;if(!ge(j+16|0,b)){break Q}if(!fe(j+32|0,b)){break Q}if(!fe(j+52|0,b)){break Q}if(!fe(j+72|0,b)){break Q}q=F[j+4>>2];g=0;e=fa-32|0;fa=e;f=F[j+12>>2];F[e+16>>2]=0;F[e+8>>2]=0;F[e+12>>2]=0;if(f){if(f>>>0>=1073741824){break b}b=f<<2;g=rj(b);F[e+8>>2]=g;h=b+g|0;F[e+16>>2]=h;Ti(g,0,b);F[e+12>>2]=h}b=F[j+116>>2];d=F[b>>2];if(d){F[b+4>>2]=d;oj(d);F[b+8>>2]=0;F[b>>2]=0;F[b+4>>2]=0;f=F[j+12>>2];g=F[e+8>>2];h=F[e+12>>2]}F[b+4>>2]=h;F[b>>2]=g;F[b+8>>2]=F[e+16>>2];g=0;F[e+16>>2]=0;F[e+8>>2]=0;F[e+12>>2]=0;R:{if(f){if(f>>>0>=1073741824){break b}b=f<<2;i=rj(b);F[e+8>>2]=i;g=b+i|0;F[e+16>>2]=g;Ti(i,0,b);F[e+12>>2]=g}b=F[j+128>>2];d=F[b>>2];if(d){F[b+4>>2]=d;oj(d);F[b+8>>2]=0;F[b>>2]=0;F[b+4>>2]=0;i=F[e+8>>2];g=F[e+12>>2]}F[b+4>>2]=g;F[b>>2]=i;F[b+8>>2]=F[e+16>>2];F[e+24>>2]=0;F[e+28>>2]=0;F[e+16>>2]=0;F[e+20>>2]=0;F[e+8>>2]=0;F[e+12>>2]=0;Ob(e+8|0);b=F[e+24>>2]+F[e+28>>2]|0;d=(b>>>0)/341|0;b=F[F[e+12>>2]+(d<<2)>>2]+L(b-L(d,341)|0,12)|0;F[b+4>>2]=0;F[b+8>>2]=0;F[b>>2]=q;f=F[e+28>>2]+1|0;F[e+28>>2]=f;S:{if(!f){break S}y=j+92|0;t=j+16|0;while(1){b=F[e+12>>2];i=F[e+24>>2];l=f-1|0;d=i+l|0;h=(d>>>0)/341|0;d=F[b+(h<<2)>>2]+L(d-L(h,341)|0,12)|0;k=F[d+8>>2];g=F[d+4>>2];h=F[d>>2];F[e+28>>2]=l;d=F[e+16>>2];if((((b|0)==(d|0)?0:L(d-b>>2,341)-1|0)-(f+i|0)|0)+1>>>0>=682){oj(F[d-4>>2]);F[e+16>>2]=F[e+16>>2]-4}d=0;if(h>>>0>q>>>0){break S}b=F[j+12>>2];f=(g|0)==(b-1|0)?0:g+1|0;if(f>>>0>=b>>>0){break S}g=L(k,12);n=g+F[j+128>>2]|0;l=g+F[j+116>>2]|0;o=F[j>>2];i=f<<2;m=F[i+F[n>>2]>>2];T:{if((o|0)==(m|0)){if(!h){break T}while(1){b=F[l>>2];o=F[b+8>>2];m=F[b+4>>2];p=F[b>>2];g=F[v>>2];f=F[g+4>>2];i=F[g+8>>2];U:{if(f>>>0>>0){F[f+8>>2]=o;F[f+4>>2]=m;F[f>>2]=p;F[g+4>>2]=f+12;break U}k=F[g>>2];s=(f-k|0)/12|0;b=s+1|0;if(b>>>0>=357913942){break b}i=(i-k|0)/12|0;n=i<<1;n=i>>>0<178956970?b>>>0>>0?n:b:357913941;if(n){if(n>>>0>=357913942){break a}b=rj(L(n,12))}else{b=0}i=b+L(s,12)|0;F[i+8>>2]=o;F[i+4>>2]=m;F[i>>2]=p;o=i+12|0;if((f|0)!=(k|0)){while(1){i=i-12|0;f=f-12|0;F[i>>2]=F[f>>2];F[i+4>>2]=F[f+4>>2];F[i+8>>2]=F[f+8>>2];if((f|0)!=(k|0)){continue}break}}F[g+8>>2]=b+L(n,12);F[g+4>>2]=o;F[g>>2]=i;if(!k){break U}oj(k)}F[j+8>>2]=F[j+8>>2]+1;d=d+1|0;if((h|0)!=(d|0)){continue}break}break T}V:{W:{X:{Y:{if(h>>>0<=2){b=F[j+104>>2];F[b>>2]=f;i=1;g=F[j+12>>2];if(g>>>0>1){break Y}break V}if(I[j+8>>2]>I[j+4>>2]){break S}b=F[j+116>>2];p=k+1|0;n=L(p,12);d=b+n|0;if((d|0)!=(l|0)){Pa(d,F[l>>2],F[l+4>>2]);b=F[j+116>>2]}b=i+F[b+n>>2]|0;F[b>>2]=F[b>>2]+(1<>2]=0;je(t,O(h)^31,e+4|0);b=h>>>1|0;d=F[e+4>>2];if(b>>>0>>0){break S}b=b-d|0;d=h-b|0;Z:{if((d|0)==(b|0)){d=b;break Z}h=F[j+84>>2];if((h|0)==F[j+76>>2]){break X}l=F[h>>2];o=F[j+88>>2];m=o+1|0;F[j+88>>2]=m;l=l&-2147483648>>>o;_:{if((m|0)==32){F[j+88>>2]=0;F[j+84>>2]=h+4;if(l){break _}break X}if(!l){break X}}}h=d;d=b;break W}while(1){f=(g-1|0)==(f|0)?0:f+1|0;F[b+(i<<2)>>2]=f;g=F[j+12>>2];i=i+1|0;if(g>>>0>i>>>0){continue}break}break V}h=b}l=i;b=F[j+128>>2];g=b+g|0;i=F[g>>2];l=l+i|0;F[l>>2]=F[l>>2]+1;Pa(b+n|0,i,F[g+4>>2]);if(d){g=F[e+28>>2]+F[e+24>>2]|0;b=F[e+16>>2];i=F[e+12>>2];if((g|0)==(((b|0)==(i|0)?0:L(b-i>>2,341)-1|0)|0)){Ob(e+8|0);i=F[e+12>>2];g=F[e+24>>2]+F[e+28>>2]|0}b=(g>>>0)/341|0;b=F[(b<<2)+i>>2]+L(g-L(b,341)|0,12)|0;F[b+8>>2]=k;F[b+4>>2]=f;F[b>>2]=d;F[e+28>>2]=F[e+28>>2]+1}if(!h){break T}g=F[e+28>>2]+F[e+24>>2]|0;b=F[e+16>>2];i=F[e+12>>2];if((g|0)==(((b|0)==(i|0)?0:L(b-i>>2,341)-1|0)|0)){Ob(e+8|0);i=F[e+12>>2];g=F[e+24>>2]+F[e+28>>2]|0}b=(g>>>0)/341|0;b=F[(b<<2)+i>>2]+L(g-L(b,341)|0,12)|0;F[b+8>>2]=p;F[b+4>>2]=f;F[b>>2]=h;F[e+28>>2]=F[e+28>>2]+1;break T}k=0;if(!h){break T}while(1){if(F[j+12>>2]){s=F[l>>2];i=F[j+36>>2];z=F[n>>2];g=F[j+92>>2];u=F[j+104>>2];f=0;while(1){o=u+(f<<2)|0;F[g+(F[o>>2]<<2)>>2]=0;d=F[j>>2];b=F[o>>2]<<2;m=F[b+z>>2];$:{if((d|0)==(m|0)){break $}b=b+g|0;d=d-m|0;m=F[j+48>>2];r=32-m|0;if((d|0)<=(r|0)){p=F[j+44>>2];if((p|0)==(i|0)){F[b>>2]=0;break $}F[b>>2]=F[p>>2]<>>32-d;b=d+F[j+48>>2]|0;F[j+48>>2]=b;if((b|0)!=32){break $}F[j+48>>2]=0;F[j+44>>2]=p+4;break $}p=F[j+44>>2];x=p+4|0;if((x|0)==(i|0)){F[b>>2]=0;break $}A=F[p>>2];F[j+44>>2]=x;r=d-r|0;F[j+48>>2]=r;F[b>>2]=F[p+4>>2]>>>32-r|A<>>32-d}b=F[o>>2]<<2;d=b+g|0;F[d>>2]=F[d>>2]|F[b+s>>2];f=f+1|0;if(f>>>0>2]){continue}break}}Qi(v,y);F[j+8>>2]=F[j+8>>2]+1;k=k+1|0;if((h|0)!=(k|0)){continue}break}}f=F[e+28>>2];if(f){continue}break}}F[e+28>>2]=0;b=F[e+16>>2];f=F[e+12>>2];i=b-f|0;if(i>>>0>=9){while(1){oj(F[f>>2]);f=F[e+12>>2]+4|0;F[e+12>>2]=f;b=F[e+16>>2];i=b-f|0;if(i>>>0>8){continue}break}}g=170;aa:{switch((i>>>2|0)-1|0){case 1:g=341;case 0:F[e+24>>2]=g;break;default:break aa}}ba:{if((b|0)==(f|0)){break ba}while(1){oj(F[f>>2]);f=f+4|0;if((f|0)!=(b|0)){continue}break}b=F[e+16>>2];d=F[e+12>>2];if((b|0)==(d|0)){break ba}F[e+16>>2]=b+((d-b|0)+3&-4)}b=F[e+8>>2];if(b){oj(b)}fa=e+32|0;break R}}xb(j);break d;case 3:i=yb(w+8|0,3);n=w+664|0;h=F[b+12>>2];d=F[b+20>>2];g=F[b+16>>2];f=g+4|0;d=f>>>0<4?d+1|0:d;ca:{if(f>>>0>I[b+8>>2]&(d|0)>=(h|0)|(d|0)>(h|0)){break ca}d=g+F[b>>2]|0;F[i>>2]=G[d|0]|G[d+1|0]<<8|(G[d+2|0]<<16|G[d+3|0]<<24);d=F[b+20>>2];h=d;f=F[b+16>>2];g=f+4|0;d=g>>>0<4?d+1|0:d;e=g;F[b+16>>2]=e;F[b+20>>2]=d;if(I[i>>2]>32){break ca}g=F[b+12>>2];d=h;h=f+8|0;d=h>>>0<8?d+1|0:d;if(h>>>0>I[b+8>>2]&(d|0)>=(g|0)|(d|0)>(g|0)){break ca}d=e+F[b>>2]|0;h=G[d|0]|G[d+1|0]<<8|(G[d+2|0]<<16|G[d+3|0]<<24);F[i+4>>2]=h;d=F[b+20>>2];g=F[b+16>>2]+4|0;d=g>>>0<4?d+1|0:d;F[b+16>>2]=g;F[b+20>>2]=d;if(!h){break ca}F[i+8>>2]=0;if(!ge(i+16|0,b)){break ca}if(!fe(i+32|0,b)){break ca}if(!fe(i+52|0,b)){break ca}if(!fe(i+72|0,b)){break ca}v=F[i+4>>2];h=0;g=0;e=fa-32|0;fa=e;f=F[i+12>>2];F[e+16>>2]=0;F[e+8>>2]=0;F[e+12>>2]=0;if(f){if(f>>>0>=1073741824){break b}b=f<<2;h=rj(b);F[e+8>>2]=h;g=b+h|0;F[e+16>>2]=g;Ti(h,0,b);F[e+12>>2]=g}b=F[i+116>>2];d=F[b>>2];if(d){F[b+4>>2]=d;oj(d);F[b+8>>2]=0;F[b>>2]=0;F[b+4>>2]=0;f=F[i+12>>2];g=F[e+12>>2];h=F[e+8>>2]}F[b+4>>2]=g;F[b>>2]=h;F[b+8>>2]=F[e+16>>2];h=0;F[e+16>>2]=0;F[e+8>>2]=0;F[e+12>>2]=0;da:{if(f){if(f>>>0>=1073741824){break b}b=f<<2;k=rj(b);F[e+8>>2]=k;h=b+k|0;F[e+16>>2]=h;Ti(k,0,b);F[e+12>>2]=h}b=F[i+128>>2];d=F[b>>2];if(d){F[b+4>>2]=d;oj(d);F[b+8>>2]=0;F[b>>2]=0;F[b+4>>2]=0;k=F[e+8>>2];h=F[e+12>>2]}F[b+4>>2]=h;F[b>>2]=k;F[b+8>>2]=F[e+16>>2];F[e+24>>2]=0;F[e+28>>2]=0;F[e+16>>2]=0;F[e+20>>2]=0;F[e+8>>2]=0;F[e+12>>2]=0;Ob(e+8|0);b=F[e+24>>2]+F[e+28>>2]|0;d=(b>>>0)/341|0;b=F[F[e+12>>2]+(d<<2)>>2]+L(b-L(d,341)|0,12)|0;F[b+4>>2]=0;F[b+8>>2]=0;F[b>>2]=v;f=F[e+28>>2]+1|0;F[e+28>>2]=f;ea:{if(!f){break ea}y=i+92|0;t=i+16|0;while(1){b=F[e+12>>2];k=F[e+24>>2];g=f-1|0;d=k+g|0;h=(d>>>0)/341|0;d=F[b+(h<<2)>>2]+L(d-L(h,341)|0,12)|0;j=F[d+8>>2];h=F[d+4>>2];d=F[d>>2];F[e+28>>2]=g;g=F[e+16>>2];if((((b|0)==(g|0)?0:L(g-b>>2,341)-1|0)-(f+k|0)|0)+1>>>0>=682){oj(F[g-4>>2]);F[e+16>>2]=F[e+16>>2]-4}if(d>>>0>v>>>0){break ea}b=F[i+12>>2];f=(h|0)==(b-1|0)?0:h+1|0;if(f>>>0>=b>>>0){break ea}b=F[i+116>>2];g=L(j,12);l=b+g|0;h=F[i>>2];k=f<<2;p=g+F[i+128>>2]|0;q=F[k+F[p>>2]>>2];fa:{if((h|0)==(q|0)){q=0;if(!d){break fa}while(1){b=F[l>>2];o=F[b+8>>2];m=F[b+4>>2];p=F[b>>2];h=F[n>>2];f=F[h+4>>2];j=F[h+8>>2];ga:{if(f>>>0>>0){F[f+8>>2]=o;F[f+4>>2]=m;F[f>>2]=p;F[h+4>>2]=f+12;break ga}g=F[h>>2];k=(f-g|0)/12|0;b=k+1|0;if(b>>>0>=357913942){break b}j=(j-g|0)/12|0;s=j<<1;j=j>>>0<178956970?b>>>0>>0?s:b:357913941;if(j){if(j>>>0>=357913942){break a}b=rj(L(j,12))}else{b=0}k=b+L(k,12)|0;F[k+8>>2]=o;F[k+4>>2]=m;F[k>>2]=p;o=k+12|0;if((g|0)!=(f|0)){while(1){k=k-12|0;f=f-12|0;F[k>>2]=F[f>>2];F[k+4>>2]=F[f+4>>2];F[k+8>>2]=F[f+8>>2];if((g|0)!=(f|0)){continue}break}}F[h+8>>2]=b+L(j,12);F[h+4>>2]=o;F[h>>2]=k;if(!g){break ga}oj(g)}F[i+8>>2]=F[i+8>>2]+1;q=q+1|0;if((d|0)!=(q|0)){continue}break}break fa}ha:{ia:{ja:{ka:{if(d>>>0<=2){b=F[i+104>>2];F[b>>2]=f;k=1;h=F[i+12>>2];if(h>>>0>1){break ka}break ha}if(I[i+8>>2]>I[i+4>>2]){break ea}m=b;b=g+12|0;Pa(m+b|0,F[l>>2],F[l+4>>2]);b=k+F[b+F[i+116>>2]>>2]|0;F[b>>2]=F[b>>2]+(1<>2]=0;je(t,O(d)^31,e+4|0);b=d>>>1|0;h=F[e+4>>2];if(b>>>0>>0){break ea}l=j+1|0;b=b-h|0;h=d-b|0;la:{if((h|0)==(b|0)){d=b;break la}d=F[i+84>>2];if((d|0)==F[i+76>>2]){break ja}q=F[d>>2];o=F[i+88>>2];m=o+1|0;F[i+88>>2]=m;q=q&-2147483648>>>o;ma:{if((m|0)==32){F[i+88>>2]=0;F[i+84>>2]=d+4;if(q){break ma}break ja}if(!q){break ja}}d=h}h=b;break ia}while(1){f=(h-1|0)==(f|0)?0:f+1|0;F[b+(k<<2)>>2]=f;h=F[i+12>>2];k=k+1|0;if(h>>>0>k>>>0){continue}break}break ha}d=b}m=k;b=F[i+128>>2];g=b+g|0;k=F[g>>2];q=m+k|0;F[q>>2]=F[q>>2]+1;Pa(b+L(l,12)|0,k,F[g+4>>2]);if(h){g=F[e+28>>2]+F[e+24>>2]|0;b=F[e+16>>2];k=F[e+12>>2];if((g|0)==(((b|0)==(k|0)?0:L(b-k>>2,341)-1|0)|0)){Ob(e+8|0);k=F[e+12>>2];g=F[e+24>>2]+F[e+28>>2]|0}b=(g>>>0)/341|0;b=F[(b<<2)+k>>2]+L(g-L(b,341)|0,12)|0;F[b+8>>2]=j;F[b+4>>2]=f;F[b>>2]=h;F[e+28>>2]=F[e+28>>2]+1}if(!d){break fa}h=F[e+28>>2]+F[e+24>>2]|0;b=F[e+16>>2];k=F[e+12>>2];if((h|0)==(((b|0)==(k|0)?0:L(b-k>>2,341)-1|0)|0)){Ob(e+8|0);k=F[e+12>>2];h=F[e+24>>2]+F[e+28>>2]|0}b=(h>>>0)/341|0;b=F[(b<<2)+k>>2]+L(h-L(b,341)|0,12)|0;F[b+8>>2]=l;F[b+4>>2]=f;F[b>>2]=d;F[e+28>>2]=F[e+28>>2]+1;break fa}j=0;if(!d){break fa}while(1){if(F[i+12>>2]){s=F[l>>2];k=F[i+36>>2];z=F[p>>2];g=F[i+92>>2];u=F[i+104>>2];f=0;while(1){q=u+(f<<2)|0;F[g+(F[q>>2]<<2)>>2]=0;h=F[i>>2];b=F[q>>2]<<2;o=F[b+z>>2];na:{if((h|0)==(o|0)){break na}b=b+g|0;h=h-o|0;o=F[i+48>>2];r=32-o|0;if((h|0)<=(r|0)){m=F[i+44>>2];if((m|0)==(k|0)){F[b>>2]=0;break na}F[b>>2]=F[m>>2]<>>32-h;b=h+F[i+48>>2]|0;F[i+48>>2]=b;if((b|0)!=32){break na}F[i+48>>2]=0;F[i+44>>2]=m+4;break na}m=F[i+44>>2];x=m+4|0;if((x|0)==(k|0)){F[b>>2]=0;break na}A=F[m>>2];F[i+44>>2]=x;r=h-r|0;F[i+48>>2]=r;F[b>>2]=F[m+4>>2]>>>32-r|A<>>32-h}b=F[q>>2]<<2;h=b+g|0;F[h>>2]=F[h>>2]|F[b+s>>2];f=f+1|0;if(f>>>0>2]){continue}break}}Qi(n,y);F[i+8>>2]=F[i+8>>2]+1;j=j+1|0;if((d|0)!=(j|0)){continue}break}}f=F[e+28>>2];if(f){continue}break}}F[e+28>>2]=0;b=F[e+16>>2];f=F[e+12>>2];k=b-f|0;if(k>>>0>=9){while(1){oj(F[f>>2]);f=F[e+12>>2]+4|0;F[e+12>>2]=f;b=F[e+16>>2];k=b-f|0;if(k>>>0>8){continue}break}}g=170;oa:{switch((k>>>2|0)-1|0){case 1:g=341;case 0:F[e+24>>2]=g;break;default:break oa}}pa:{if((b|0)==(f|0)){break pa}while(1){oj(F[f>>2]);f=f+4|0;if((f|0)!=(b|0)){continue}break}b=F[e+16>>2];d=F[e+12>>2];if((b|0)==(d|0)){break pa}F[e+16>>2]=b+((d-b|0)+3&-4)}b=F[e+8>>2];if(b){oj(b)}fa=e+32|0;break da}}xb(i);break d;case 4:i=Cb(w+8|0,3);v=w+664|0;h=F[b+12>>2];d=F[b+20>>2];g=F[b+16>>2];f=g+4|0;d=f>>>0<4?d+1|0:d;qa:{if(f>>>0>I[b+8>>2]&(d|0)>=(h|0)|(d|0)>(h|0)){break qa}d=g+F[b>>2]|0;F[i>>2]=G[d|0]|G[d+1|0]<<8|(G[d+2|0]<<16|G[d+3|0]<<24);d=F[b+20>>2];h=d;f=F[b+16>>2];g=f+4|0;d=g>>>0<4?d+1|0:d;e=g;F[b+16>>2]=e;F[b+20>>2]=d;if(I[i>>2]>32){break qa}g=F[b+12>>2];d=h;h=f+8|0;d=h>>>0<8?d+1|0:d;if(h>>>0>I[b+8>>2]&(d|0)>=(g|0)|(d|0)>(g|0)){break qa}d=e+F[b>>2]|0;h=G[d|0]|G[d+1|0]<<8|(G[d+2|0]<<16|G[d+3|0]<<24);F[i+4>>2]=h;d=F[b+20>>2];g=F[b+16>>2]+4|0;d=g>>>0<4?d+1|0:d;F[b+16>>2]=g;F[b+20>>2]=d;if(!h){break qa}F[i+8>>2]=0;if(!Gb(i+16|0,b)){break qa}if(!fe(i+544|0,b)){break qa}if(!fe(i+564|0,b)){break qa}if(!fe(i+584|0,b)){break qa}q=F[i+4>>2];f=0;d=0;e=fa-32|0;fa=e;h=F[i+12>>2];F[e+16>>2]=0;F[e+8>>2]=0;F[e+12>>2]=0;if(h){if(h>>>0>=1073741824){break b}b=h<<2;f=rj(b);F[e+8>>2]=f;d=b+f|0;F[e+16>>2]=d;Ti(f,0,b);F[e+12>>2]=d}b=F[i+628>>2];g=F[b>>2];if(g){F[b+4>>2]=g;oj(g);F[b+8>>2]=0;F[b>>2]=0;F[b+4>>2]=0;h=F[i+12>>2];f=F[e+8>>2];d=F[e+12>>2]}F[b+4>>2]=d;F[b>>2]=f;F[b+8>>2]=F[e+16>>2];f=0;F[e+16>>2]=0;F[e+8>>2]=0;F[e+12>>2]=0;ra:{if(h){if(h>>>0>=1073741824){break b}b=h<<2;j=rj(b);F[e+8>>2]=j;f=b+j|0;F[e+16>>2]=f;Ti(j,0,b);F[e+12>>2]=f}b=F[i+640>>2];d=F[b>>2];if(d){F[b+4>>2]=d;oj(d);F[b+8>>2]=0;F[b>>2]=0;F[b+4>>2]=0;j=F[e+8>>2];f=F[e+12>>2]}F[b+4>>2]=f;F[b>>2]=j;F[b+8>>2]=F[e+16>>2];F[e+24>>2]=0;F[e+28>>2]=0;F[e+16>>2]=0;F[e+20>>2]=0;F[e+8>>2]=0;F[e+12>>2]=0;Ob(e+8|0);b=F[e+24>>2]+F[e+28>>2]|0;d=(b>>>0)/341|0;b=F[F[e+12>>2]+(d<<2)>>2]+L(b-L(d,341)|0,12)|0;F[b+4>>2]=0;F[b+8>>2]=0;F[b>>2]=q;h=F[e+28>>2]+1|0;F[e+28>>2]=h;sa:{if(!h){break sa}y=i+604|0;t=i+16|0;while(1){b=F[e+12>>2];j=F[e+24>>2];f=h-1|0;d=j+f|0;g=(d>>>0)/341|0;d=F[b+(g<<2)>>2]+L(d-L(g,341)|0,12)|0;l=F[d+8>>2];g=F[d+4>>2];d=F[d>>2];F[e+28>>2]=f;f=F[e+16>>2];if((((b|0)==(f|0)?0:L(f-b>>2,341)-1|0)-(h+j|0)|0)+1>>>0>=682){oj(F[f-4>>2]);F[e+16>>2]=F[e+16>>2]-4}if(d>>>0>q>>>0){break sa}b=F[i+12>>2];j=(g|0)==(b-1|0)?0:g+1|0;if(j>>>0>=b>>>0){break sa}g=L(l,12);n=g+F[i+640>>2]|0;k=g+F[i+628>>2]|0;h=F[i>>2];o=j<<2;f=F[o+F[n>>2]>>2];ta:{ua:{if((h|0)==(f|0)){f=0;if(!d){break ua}while(1){b=F[k>>2];o=F[b+8>>2];m=F[b+4>>2];p=F[b>>2];g=F[v>>2];h=F[g+4>>2];j=F[g+8>>2];va:{if(h>>>0>>0){F[h+8>>2]=o;F[h+4>>2]=m;F[h>>2]=p;F[g+4>>2]=h+12;break va}l=F[g>>2];s=(h-l|0)/12|0;b=s+1|0;if(b>>>0>=357913942){break b}j=(j-l|0)/12|0;n=j<<1;n=j>>>0<178956970?b>>>0>>0?n:b:357913941;if(n){if(n>>>0>=357913942){break a}b=rj(L(n,12))}else{b=0}j=b+L(s,12)|0;F[j+8>>2]=o;F[j+4>>2]=m;F[j>>2]=p;o=j+12|0;if((h|0)!=(l|0)){while(1){j=j-12|0;h=h-12|0;F[j>>2]=F[h>>2];F[j+4>>2]=F[h+4>>2];F[j+8>>2]=F[h+8>>2];if((h|0)!=(l|0)){continue}break}}F[g+8>>2]=b+L(n,12);F[g+4>>2]=o;F[g>>2]=j;if(!l){break va}oj(l)}F[i+8>>2]=F[i+8>>2]+1;f=f+1|0;if((d|0)!=(f|0)){continue}break}break ua}wa:{xa:{ya:{if(d>>>0<=2){b=F[i+616>>2];F[b>>2]=j;h=1;f=F[i+12>>2];if(f>>>0>1){break ya}break wa}if(I[i+8>>2]>I[i+4>>2]){break sa}b=F[i+628>>2];m=l+1|0;n=L(m,12);p=b+n|0;if((p|0)!=(k|0)){Pa(p,F[k>>2],F[k+4>>2]);b=F[i+628>>2]}b=o+F[b+n>>2]|0;F[b>>2]=F[b>>2]+(1<>>1|0;break xa}while(1){f=ie(t+(h<<4)|0)|f<<1;h=h+1|0;if((b|0)!=(h|0)){continue}break}h=d>>>1|0;if(f>>>0<=h>>>0){break xa}break sa}while(1){j=(f-1|0)==(j|0)?0:j+1|0;F[b+(h<<2)>>2]=j;h=h+1|0;f=F[i+12>>2];if(h>>>0>>0){continue}break}break wa}za:{Aa:{b=h-f|0;h=d-b|0;Ba:{if((h|0)==(b|0)){d=b;break Ba}d=F[i+596>>2];if((d|0)==F[i+588>>2]){break Aa}f=F[d>>2];k=F[i+600>>2];p=k+1|0;F[i+600>>2]=p;f=f&-2147483648>>>k;Ca:{if((p|0)==32){F[i+600>>2]=0;F[i+596>>2]=d+4;if(f){break Ca}break Aa}if(!f){break Aa}}d=h}h=b;break za}d=b}b=F[i+640>>2];g=b+g|0;f=F[g>>2];k=f+o|0;F[k>>2]=F[k>>2]+1;Pa(b+n|0,f,F[g+4>>2]);if(h){g=F[e+28>>2]+F[e+24>>2]|0;b=F[e+16>>2];f=F[e+12>>2];if((g|0)==(((b|0)==(f|0)?0:L(b-f>>2,341)-1|0)|0)){Ob(e+8|0);f=F[e+12>>2];g=F[e+24>>2]+F[e+28>>2]|0}b=(g>>>0)/341|0;b=F[(b<<2)+f>>2]+L(g-L(b,341)|0,12)|0;F[b+8>>2]=l;F[b+4>>2]=j;F[b>>2]=h;F[e+28>>2]=F[e+28>>2]+1}if(!d){break ua}f=F[e+28>>2]+F[e+24>>2]|0;b=F[e+16>>2];h=F[e+12>>2];if((f|0)==(((b|0)==(h|0)?0:L(b-h>>2,341)-1|0)|0)){Ob(e+8|0);f=F[e+24>>2]+F[e+28>>2]|0;h=F[e+12>>2]}b=(f>>>0)/341|0;b=F[h+(b<<2)>>2]+L(f-L(b,341)|0,12)|0;F[b+8>>2]=m;F[b+4>>2]=j;F[b>>2]=d;h=F[e+28>>2]+1|0;F[e+28>>2]=h;break ta}j=0;if(!d){break ua}while(1){if(F[i+12>>2]){s=F[k>>2];l=F[i+548>>2];z=F[n>>2];f=F[i+604>>2];u=F[i+616>>2];h=0;while(1){o=u+(h<<2)|0;F[f+(F[o>>2]<<2)>>2]=0;g=F[i>>2];b=F[o>>2]<<2;m=F[b+z>>2];Da:{if((g|0)==(m|0)){break Da}b=b+f|0;g=g-m|0;m=F[i+560>>2];r=32-m|0;if((g|0)<=(r|0)){p=F[i+556>>2];if((p|0)==(l|0)){F[b>>2]=0;break Da}F[b>>2]=F[p>>2]<>>32-g;b=g+F[i+560>>2]|0;F[i+560>>2]=b;if((b|0)!=32){break Da}F[i+560>>2]=0;F[i+556>>2]=p+4;break Da}p=F[i+556>>2];x=p+4|0;if((x|0)==(l|0)){F[b>>2]=0;break Da}A=F[p>>2];F[i+556>>2]=x;r=g-r|0;F[i+560>>2]=r;F[b>>2]=F[p+4>>2]>>>32-r|A<>>32-g}b=F[o>>2]<<2;g=b+f|0;F[g>>2]=F[g>>2]|F[b+s>>2];h=h+1|0;if(h>>>0>2]){continue}break}}Qi(v,y);F[i+8>>2]=F[i+8>>2]+1;j=j+1|0;if((d|0)!=(j|0)){continue}break}}h=F[e+28>>2]}if(h){continue}break}}F[e+28>>2]=0;b=F[e+16>>2];h=F[e+12>>2];j=b-h|0;if(j>>>0>=9){while(1){oj(F[h>>2]);h=F[e+12>>2]+4|0;F[e+12>>2]=h;b=F[e+16>>2];j=b-h|0;if(j>>>0>8){continue}break}}d=170;Ea:{switch((j>>>2|0)-1|0){case 1:d=341;case 0:F[e+24>>2]=d;break;default:break Ea}}Fa:{if((b|0)==(h|0)){break Fa}while(1){oj(F[h>>2]);h=h+4|0;if((h|0)!=(b|0)){continue}break}b=F[e+16>>2];d=F[e+12>>2];if((b|0)==(d|0)){break Fa}F[e+16>>2]=b+((d-b|0)+3&-4)}b=F[e+8>>2];if(b){oj(b)}fa=e+32|0;break ra}}Bb(i);break d;case 5:e=Cb(w+8|0,3);v=w+664|0;h=F[b+12>>2];d=F[b+20>>2];g=F[b+16>>2];f=g+4|0;d=f>>>0<4?d+1|0:d;Ga:{if(f>>>0>I[b+8>>2]&(d|0)>=(h|0)|(d|0)>(h|0)){break Ga}d=g+F[b>>2]|0;F[e>>2]=G[d|0]|G[d+1|0]<<8|(G[d+2|0]<<16|G[d+3|0]<<24);d=F[b+20>>2];h=d;f=F[b+16>>2];g=f+4|0;d=g>>>0<4?d+1|0:d;j=g;F[b+16>>2]=g;F[b+20>>2]=d;if(I[e>>2]>32){break Ga}g=F[b+12>>2];d=h;h=f+8|0;d=h>>>0<8?d+1|0:d;if(h>>>0>I[b+8>>2]&(d|0)>=(g|0)|(d|0)>(g|0)){break Ga}d=j+F[b>>2]|0;h=G[d|0]|G[d+1|0]<<8|(G[d+2|0]<<16|G[d+3|0]<<24);F[e+4>>2]=h;d=F[b+20>>2];g=F[b+16>>2]+4|0;d=g>>>0<4?d+1|0:d;F[b+16>>2]=g;F[b+20>>2]=d;if(!h){break Ga}F[e+8>>2]=0;if(!Gb(e+16|0,b)){break Ga}if(!fe(e+544|0,b)){break Ga}if(!fe(e+564|0,b)){break Ga}if(!fe(e+584|0,b)){break Ga}q=F[e+4>>2];f=0;d=0;g=fa-32|0;fa=g;h=F[e+12>>2];F[g+16>>2]=0;F[g+8>>2]=0;F[g+12>>2]=0;if(h){if(h>>>0>=1073741824){break b}b=h<<2;f=rj(b);F[g+8>>2]=f;d=b+f|0;F[g+16>>2]=d;Ti(f,0,b);F[g+12>>2]=d}b=F[e+628>>2];j=F[b>>2];if(j){F[b+4>>2]=j;oj(j);F[b+8>>2]=0;F[b>>2]=0;F[b+4>>2]=0;h=F[e+12>>2];f=F[g+8>>2];d=F[g+12>>2]}F[b+4>>2]=d;F[b>>2]=f;F[b+8>>2]=F[g+16>>2];f=0;F[g+16>>2]=0;F[g+8>>2]=0;F[g+12>>2]=0;Ha:{if(h){if(h>>>0>=1073741824){break b}b=h<<2;i=rj(b);F[g+8>>2]=i;f=b+i|0;F[g+16>>2]=f;Ti(i,0,b);F[g+12>>2]=f}b=F[e+640>>2];d=F[b>>2];if(d){F[b+4>>2]=d;oj(d);F[b+8>>2]=0;F[b>>2]=0;F[b+4>>2]=0;i=F[g+8>>2];f=F[g+12>>2]}F[b+4>>2]=f;F[b>>2]=i;F[b+8>>2]=F[g+16>>2];F[g+24>>2]=0;F[g+28>>2]=0;F[g+16>>2]=0;F[g+20>>2]=0;F[g+8>>2]=0;F[g+12>>2]=0;Ob(g+8|0);b=F[g+24>>2]+F[g+28>>2]|0;d=(b>>>0)/341|0;b=F[F[g+12>>2]+(d<<2)>>2]+L(b-L(d,341)|0,12)|0;F[b+4>>2]=0;F[b+8>>2]=0;F[b>>2]=q;h=F[g+28>>2]+1|0;F[g+28>>2]=h;Ia:{if(!h){break Ia}y=e+604|0;t=e+16|0;while(1){b=F[g+12>>2];i=F[g+24>>2];j=h-1|0;d=i+j|0;f=(d>>>0)/341|0;d=F[b+(f<<2)>>2]+L(d-L(f,341)|0,12)|0;k=F[d+8>>2];f=F[d+4>>2];d=F[d>>2];F[g+28>>2]=j;j=F[g+16>>2];if((((b|0)==(j|0)?0:L(j-b>>2,341)-1|0)-(h+i|0)|0)+1>>>0>=682){oj(F[j-4>>2]);F[g+16>>2]=F[g+16>>2]-4}if(d>>>0>q>>>0){break Ia}b=F[e+12>>2];i=(f|0)==(b-1|0)?0:f+1|0;if(i>>>0>=b>>>0){break Ia}b=F[e+628>>2];j=L(k,12);l=b+j|0;h=F[e>>2];n=i<<2;p=j+F[e+640>>2]|0;f=F[n+F[p>>2]>>2];Ja:{Ka:{if((h|0)==(f|0)){j=0;if(!d){break Ka}while(1){b=F[l>>2];o=F[b+8>>2];m=F[b+4>>2];p=F[b>>2];f=F[v>>2];h=F[f+4>>2];i=F[f+8>>2];La:{if(h>>>0>>0){F[h+8>>2]=o;F[h+4>>2]=m;F[h>>2]=p;F[f+4>>2]=h+12;break La}k=F[f>>2];s=(h-k|0)/12|0;b=s+1|0;if(b>>>0>=357913942){break b}i=(i-k|0)/12|0;n=i<<1;n=i>>>0<178956970?b>>>0>>0?n:b:357913941;if(n){if(n>>>0>=357913942){break a}b=rj(L(n,12))}else{b=0}i=b+L(s,12)|0;F[i+8>>2]=o;F[i+4>>2]=m;F[i>>2]=p;o=i+12|0;if((h|0)!=(k|0)){while(1){i=i-12|0;h=h-12|0;F[i>>2]=F[h>>2];F[i+4>>2]=F[h+4>>2];F[i+8>>2]=F[h+8>>2];if((h|0)!=(k|0)){continue}break}}F[f+8>>2]=b+L(n,12);F[f+4>>2]=o;F[f>>2]=i;if(!k){break La}oj(k)}F[e+8>>2]=F[e+8>>2]+1;j=j+1|0;if((d|0)!=(j|0)){continue}break}break Ka}Ma:{Na:{Oa:{if(d>>>0<=2){b=F[e+616>>2];F[b>>2]=i;h=1;f=F[e+12>>2];if(f>>>0>1){break Oa}break Ma}if(I[e+8>>2]>I[e+4>>2]){break Ia}m=b;b=j+12|0;Pa(m+b|0,F[l>>2],F[l+4>>2]);b=n+F[b+F[e+628>>2]>>2]|0;F[b>>2]=F[b>>2]+(1<>>1|0;break Na}while(1){f=ie(t+(h<<4)|0)|f<<1;h=h+1|0;if((b|0)!=(h|0)){continue}break}h=d>>>1|0;if(f>>>0<=h>>>0){break Na}break Ia}while(1){i=(f-1|0)==(i|0)?0:i+1|0;F[b+(h<<2)>>2]=i;h=h+1|0;f=F[e+12>>2];if(h>>>0>>0){continue}break}break Ma}l=k+1|0;Pa:{Qa:{b=h-f|0;h=d-b|0;Ra:{if((h|0)==(b|0)){d=b;break Ra}d=F[e+596>>2];if((d|0)==F[e+588>>2]){break Qa}f=F[d>>2];o=F[e+600>>2];m=o+1|0;F[e+600>>2]=m;f=f&-2147483648>>>o;Sa:{if((m|0)==32){F[e+600>>2]=0;F[e+596>>2]=d+4;if(f){break Sa}break Qa}if(!f){break Qa}}d=h}h=b;break Pa}d=b}b=F[e+640>>2];f=b+j|0;j=F[f>>2];n=j+n|0;F[n>>2]=F[n>>2]+1;Pa(b+L(l,12)|0,j,F[f+4>>2]);if(h){j=F[g+28>>2]+F[g+24>>2]|0;b=F[g+16>>2];f=F[g+12>>2];if((j|0)==(((b|0)==(f|0)?0:L(b-f>>2,341)-1|0)|0)){Ob(g+8|0);j=F[g+24>>2]+F[g+28>>2]|0;f=F[g+12>>2]}b=(j>>>0)/341|0;b=F[f+(b<<2)>>2]+L(j-L(b,341)|0,12)|0;F[b+8>>2]=k;F[b+4>>2]=i;F[b>>2]=h;F[g+28>>2]=F[g+28>>2]+1}if(!d){break Ka}f=F[g+28>>2]+F[g+24>>2]|0;b=F[g+16>>2];h=F[g+12>>2];if((f|0)==(((b|0)==(h|0)?0:L(b-h>>2,341)-1|0)|0)){Ob(g+8|0);f=F[g+24>>2]+F[g+28>>2]|0;h=F[g+12>>2]}b=(f>>>0)/341|0;b=F[h+(b<<2)>>2]+L(f-L(b,341)|0,12)|0;F[b+8>>2]=l;F[b+4>>2]=i;F[b>>2]=d;h=F[g+28>>2]+1|0;F[g+28>>2]=h;break Ja}i=0;if(!d){break Ka}while(1){if(F[e+12>>2]){s=F[l>>2];k=F[e+548>>2];z=F[p>>2];j=F[e+604>>2];u=F[e+616>>2];h=0;while(1){n=u+(h<<2)|0;F[j+(F[n>>2]<<2)>>2]=0;f=F[e>>2];b=F[n>>2]<<2;o=F[b+z>>2];Ta:{if((f|0)==(o|0)){break Ta}b=b+j|0;f=f-o|0;o=F[e+560>>2];r=32-o|0;if((f|0)<=(r|0)){m=F[e+556>>2];if((m|0)==(k|0)){F[b>>2]=0;break Ta}F[b>>2]=F[m>>2]<>>32-f;b=f+F[e+560>>2]|0;F[e+560>>2]=b;if((b|0)!=32){break Ta}F[e+560>>2]=0;F[e+556>>2]=m+4;break Ta}m=F[e+556>>2];x=m+4|0;if((x|0)==(k|0)){F[b>>2]=0;break Ta}A=F[m>>2];F[e+556>>2]=x;r=f-r|0;F[e+560>>2]=r;F[b>>2]=F[m+4>>2]>>>32-r|A<>>32-f}b=F[n>>2]<<2;f=b+j|0;F[f>>2]=F[f>>2]|F[b+s>>2];h=h+1|0;if(h>>>0>2]){continue}break}}Qi(v,y);F[e+8>>2]=F[e+8>>2]+1;i=i+1|0;if((d|0)!=(i|0)){continue}break}}h=F[g+28>>2]}if(h){continue}break}}F[g+28>>2]=0;b=F[g+16>>2];h=F[g+12>>2];i=b-h|0;if(i>>>0>=9){while(1){oj(F[h>>2]);h=F[g+12>>2]+4|0;F[g+12>>2]=h;b=F[g+16>>2];i=b-h|0;if(i>>>0>8){continue}break}}d=170;Ua:{switch((i>>>2|0)-1|0){case 1:d=341;case 0:F[g+24>>2]=d;break;default:break Ua}}Va:{if((b|0)==(h|0)){break Va}while(1){oj(F[h>>2]);h=h+4|0;if((h|0)!=(b|0)){continue}break}b=F[g+16>>2];d=F[g+12>>2];if((b|0)==(d|0)){break Va}F[g+16>>2]=b+((d-b|0)+3&-4)}b=F[g+8>>2];if(b){oj(b)}fa=g+32|0;break Ha}}Bb(e);break d;case 6:break f;default:break c}}i=Cb(w+8|0,3);v=w+664|0;h=F[b+12>>2];d=F[b+20>>2];g=F[b+16>>2];f=g+4|0;d=f>>>0<4?d+1|0:d;Wa:{if(f>>>0>I[b+8>>2]&(d|0)>=(h|0)|(d|0)>(h|0)){break Wa}d=g+F[b>>2]|0;F[i>>2]=G[d|0]|G[d+1|0]<<8|(G[d+2|0]<<16|G[d+3|0]<<24);d=F[b+20>>2];h=d;f=F[b+16>>2];g=f+4|0;d=g>>>0<4?d+1|0:d;e=g;F[b+16>>2]=e;F[b+20>>2]=d;if(I[i>>2]>32){break Wa}g=F[b+12>>2];d=h;h=f+8|0;d=h>>>0<8?d+1|0:d;if(h>>>0>I[b+8>>2]&(d|0)>=(g|0)|(d|0)>(g|0)){break Wa}d=e+F[b>>2]|0;h=G[d|0]|G[d+1|0]<<8|(G[d+2|0]<<16|G[d+3|0]<<24);F[i+4>>2]=h;d=F[b+20>>2];g=F[b+16>>2]+4|0;d=g>>>0<4?d+1|0:d;F[b+16>>2]=g;F[b+20>>2]=d;if(!h){break Wa}F[i+8>>2]=0;if(!Gb(i+16|0,b)){break Wa}if(!fe(i+544|0,b)){break Wa}if(!fe(i+564|0,b)){break Wa}if(!fe(i+584|0,b)){break Wa}q=F[i+4>>2];f=0;d=0;e=fa-32|0;fa=e;h=F[i+12>>2];F[e+16>>2]=0;F[e+8>>2]=0;F[e+12>>2]=0;if(h){if(h>>>0>=1073741824){break b}b=h<<2;f=rj(b);F[e+8>>2]=f;d=b+f|0;F[e+16>>2]=d;Ti(f,0,b);F[e+12>>2]=d}b=F[i+628>>2];g=F[b>>2];if(g){F[b+4>>2]=g;oj(g);F[b+8>>2]=0;F[b>>2]=0;F[b+4>>2]=0;h=F[i+12>>2];f=F[e+8>>2];d=F[e+12>>2]}F[b+4>>2]=d;F[b>>2]=f;F[b+8>>2]=F[e+16>>2];f=0;F[e+16>>2]=0;F[e+8>>2]=0;F[e+12>>2]=0;Xa:{if(h){if(h>>>0>=1073741824){break b}b=h<<2;j=rj(b);F[e+8>>2]=j;f=b+j|0;F[e+16>>2]=f;Ti(j,0,b);F[e+12>>2]=f}b=F[i+640>>2];d=F[b>>2];if(d){F[b+4>>2]=d;oj(d);F[b+8>>2]=0;F[b>>2]=0;F[b+4>>2]=0;j=F[e+8>>2];f=F[e+12>>2]}F[b+4>>2]=f;F[b>>2]=j;F[b+8>>2]=F[e+16>>2];F[e+24>>2]=0;F[e+28>>2]=0;F[e+16>>2]=0;F[e+20>>2]=0;F[e+8>>2]=0;F[e+12>>2]=0;Ob(e+8|0);b=F[e+24>>2]+F[e+28>>2]|0;d=(b>>>0)/341|0;b=F[F[e+12>>2]+(d<<2)>>2]+L(b-L(d,341)|0,12)|0;F[b+4>>2]=0;F[b+8>>2]=0;F[b>>2]=q;h=F[e+28>>2]+1|0;F[e+28>>2]=h;Ya:{if(!h){break Ya}y=i+604|0;t=i+16|0;while(1){b=F[e+12>>2];f=F[e+24>>2];g=h-1|0;d=f+g|0;j=(d>>>0)/341|0;d=F[b+(j<<2)>>2]+L(d-L(j,341)|0,12)|0;l=F[d+8>>2];d=F[d>>2];F[e+28>>2]=g;g=F[e+16>>2];if((((b|0)==(g|0)?0:L(g-b>>2,341)-1|0)-(f+h|0)|0)+1>>>0>=682){oj(F[g-4>>2]);F[e+16>>2]=F[e+16>>2]-4}if(d>>>0>q>>>0){break Ya}b=F[i+628>>2];g=L(l,12);n=g+F[i+640>>2]|0;j=Oi(i,d,n);if(j>>>0>=I[i+12>>2]){break Ya}k=b+g|0;h=F[i>>2];o=j<<2;f=F[o+F[n>>2]>>2];Za:{_a:{if((h|0)==(f|0)){f=0;if(!d){break _a}while(1){b=F[k>>2];o=F[b+8>>2];m=F[b+4>>2];p=F[b>>2];g=F[v>>2];h=F[g+4>>2];j=F[g+8>>2];$a:{if(h>>>0>>0){F[h+8>>2]=o;F[h+4>>2]=m;F[h>>2]=p;F[g+4>>2]=h+12;break $a}l=F[g>>2];s=(h-l|0)/12|0;b=s+1|0;if(b>>>0>=357913942){break b}j=(j-l|0)/12|0;n=j<<1;n=j>>>0<178956970?b>>>0>>0?n:b:357913941;if(n){if(n>>>0>=357913942){break a}b=rj(L(n,12))}else{b=0}j=b+L(s,12)|0;F[j+8>>2]=o;F[j+4>>2]=m;F[j>>2]=p;o=j+12|0;if((h|0)!=(l|0)){while(1){j=j-12|0;h=h-12|0;F[j>>2]=F[h>>2];F[j+4>>2]=F[h+4>>2];F[j+8>>2]=F[h+8>>2];if((h|0)!=(l|0)){continue}break}}F[g+8>>2]=b+L(n,12);F[g+4>>2]=o;F[g>>2]=j;if(!l){break $a}oj(l)}F[i+8>>2]=F[i+8>>2]+1;f=f+1|0;if((d|0)!=(f|0)){continue}break}break _a}ab:{bb:{cb:{if(d>>>0<=2){b=F[i+616>>2];F[b>>2]=j;h=1;f=F[i+12>>2];if(f>>>0>1){break cb}break ab}if(I[i+8>>2]>I[i+4>>2]){break Ya}b=F[i+628>>2];m=l+1|0;n=L(m,12);p=b+n|0;if((p|0)!=(k|0)){Pa(p,F[k>>2],F[k+4>>2]);b=F[i+628>>2]}b=o+F[b+n>>2]|0;F[b>>2]=F[b>>2]+(1<>>1|0;break bb}while(1){f=ie(t+(h<<4)|0)|f<<1;h=h+1|0;if((b|0)!=(h|0)){continue}break}h=d>>>1|0;if(f>>>0<=h>>>0){break bb}break Ya}while(1){j=(f-1|0)==(j|0)?0:j+1|0;F[b+(h<<2)>>2]=j;h=h+1|0;f=F[i+12>>2];if(h>>>0>>0){continue}break}break ab}db:{eb:{b=h-f|0;h=d-b|0;fb:{if((h|0)==(b|0)){d=b;break fb}d=F[i+596>>2];if((d|0)==F[i+588>>2]){break eb}f=F[d>>2];k=F[i+600>>2];p=k+1|0;F[i+600>>2]=p;f=f&-2147483648>>>k;gb:{if((p|0)==32){F[i+600>>2]=0;F[i+596>>2]=d+4;if(f){break gb}break eb}if(!f){break eb}}d=h}h=b;break db}d=b}b=F[i+640>>2];g=b+g|0;f=F[g>>2];k=f+o|0;F[k>>2]=F[k>>2]+1;Pa(b+n|0,f,F[g+4>>2]);if(h){g=F[e+28>>2]+F[e+24>>2]|0;b=F[e+16>>2];f=F[e+12>>2];if((g|0)==(((b|0)==(f|0)?0:L(b-f>>2,341)-1|0)|0)){Ob(e+8|0);f=F[e+12>>2];g=F[e+24>>2]+F[e+28>>2]|0}b=(g>>>0)/341|0;b=F[(b<<2)+f>>2]+L(g-L(b,341)|0,12)|0;F[b+8>>2]=l;F[b+4>>2]=j;F[b>>2]=h;F[e+28>>2]=F[e+28>>2]+1}if(!d){break _a}f=F[e+28>>2]+F[e+24>>2]|0;b=F[e+16>>2];h=F[e+12>>2];if((f|0)==(((b|0)==(h|0)?0:L(b-h>>2,341)-1|0)|0)){Ob(e+8|0);f=F[e+24>>2]+F[e+28>>2]|0;h=F[e+12>>2]}b=(f>>>0)/341|0;b=F[h+(b<<2)>>2]+L(f-L(b,341)|0,12)|0;F[b+8>>2]=m;F[b+4>>2]=j;F[b>>2]=d;h=F[e+28>>2]+1|0;F[e+28>>2]=h;break Za}j=0;if(!d){break _a}while(1){if(F[i+12>>2]){s=F[k>>2];l=F[i+548>>2];z=F[n>>2];f=F[i+604>>2];u=F[i+616>>2];h=0;while(1){o=u+(h<<2)|0;F[f+(F[o>>2]<<2)>>2]=0;g=F[i>>2];b=F[o>>2]<<2;m=F[b+z>>2];hb:{if((g|0)==(m|0)){break hb}b=b+f|0;g=g-m|0;m=F[i+560>>2];r=32-m|0;if((g|0)<=(r|0)){p=F[i+556>>2];if((p|0)==(l|0)){F[b>>2]=0;break hb}F[b>>2]=F[p>>2]<>>32-g;b=g+F[i+560>>2]|0;F[i+560>>2]=b;if((b|0)!=32){break hb}F[i+560>>2]=0;F[i+556>>2]=p+4;break hb}p=F[i+556>>2];x=p+4|0;if((x|0)==(l|0)){F[b>>2]=0;break hb}A=F[p>>2];F[i+556>>2]=x;r=g-r|0;F[i+560>>2]=r;F[b>>2]=F[p+4>>2]>>>32-r|A<>>32-g}b=F[o>>2]<<2;g=b+f|0;F[g>>2]=F[g>>2]|F[b+s>>2];h=h+1|0;if(h>>>0>2]){continue}break}}Qi(v,y);F[i+8>>2]=F[i+8>>2]+1;j=j+1|0;if((d|0)!=(j|0)){continue}break}}h=F[e+28>>2]}if(h){continue}break}}F[e+28>>2]=0;b=F[e+16>>2];h=F[e+12>>2];j=b-h|0;if(j>>>0>=9){while(1){oj(F[h>>2]);h=F[e+12>>2]+4|0;F[e+12>>2]=h;b=F[e+16>>2];j=b-h|0;if(j>>>0>8){continue}break}}d=170;ib:{switch((j>>>2|0)-1|0){case 1:d=341;case 0:F[e+24>>2]=d;break;default:break ib}}jb:{if((b|0)==(h|0)){break jb}while(1){oj(F[h>>2]);h=h+4|0;if((h|0)!=(b|0)){continue}break}b=F[e+16>>2];d=F[e+12>>2];if((b|0)==(d|0)){break jb}F[e+16>>2]=b+((d-b|0)+3&-4)}b=F[e+8>>2];if(b){oj(b)}fa=e+32|0;break Xa}}Bb(i)}h=F[a+12>>2]==((F[c+4>>2]-F[c>>2]|0)/12|0)}fa=w+672|0;return h}Ia();V()}Wa();V()}function oe(a,b,c,d){var e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0;if(!a){return 1}e=F[c+20>>2];g=F[c+12>>2];j=F[c+16>>2];a:{if((e|0)>=(g|0)&j>>>0>=I[c+8>>2]|(e|0)>(g|0)){break a}g=G[j+F[c>>2]|0];j=j+1|0;e=j?e:e+1|0;F[c+16>>2]=j;F[c+20>>2]=e;b:{switch(g|0){case 0:f=a;e=b;k=d;a=0;d=0;m=fa+-64|0;fa=m;F[m+56>>2]=0;F[m+48>>2]=0;F[m+52>>2]=0;F[m+40>>2]=0;F[m+44>>2]=0;F[m+32>>2]=0;F[m+36>>2]=0;F[m+24>>2]=0;F[m+28>>2]=0;F[m+16>>2]=0;F[m+20>>2]=0;F[m+8>>2]=0;F[m+12>>2]=0;c:{if(!pe(m+8|0,c)){break c}if(!qe(m+8|0,c)|(F[m+20>>2]?0:f)){break c}og(c,0,0);if(f){n=e<<2;q=F[m+36>>2];r=F[m+48>>2];s=F[m+24>>2];while(1){l=F[m+56>>2];d:{if(l>>>0>16383){break d}a=F[m+52>>2];while(1){if((a|0)<=0){break d}a=a-1|0;F[m+52>>2]=a;l=G[a+r|0]|l<<8;F[m+56>>2]=l;if(l>>>0<16384){continue}break}}a=l&4095;t=F[(a<<2)+s>>2];b=(t<<3)+q|0;F[m+56>>2]=(L(F[b>>2],l>>>12|0)+a|0)-F[b+4>>2];e:{if((e|0)<=0){break e}a=0;if(!G[c+36|0]|t>>>0>32){break c}if(!t){Ti(k+(d<<2)|0,0,n);d=d+e|0;break e}w=t&-2;x=t&1;g=d+e|0;b=F[c+32>>2];i=F[c+28>>2];h=F[c+24>>2];while(1){l=0;a=b;j=0;p=0;if((t|0)!=1){while(1){o=h+(a>>>3|0)|0;f:{if(o>>>0>=i>>>0){o=0;break f}o=G[o|0];b=a+1|0;F[c+32>>2]=b;o=o>>>(a&7)&1;a=b}o=o<>>3|0)|0;if(u>>>0>>0){j=G[u|0];b=a+1|0;F[c+32>>2]=b;j=j>>>(a&7)&1;a=b}u=l|1;l=l+2|0;j=o|j<>>3|0)|0;if(o>>>0>>0){o=G[o|0];b=a+1|0;F[c+32>>2]=b;a=o>>>(a&7)&1}else{a=0}j=a<>2]=j;d=d+1|0;if((g|0)!=(d|0)){continue}break}d=g}v=e+v|0;if(f>>>0>v>>>0){continue}break}}D[c+36|0]=0;b=F[c+20>>2];e=0;a=F[c+32>>2]+7|0;e=a>>>0<7?1:e;d=(e&7)<<29|a>>>3;a=d+F[c+16>>2]|0;e=(e>>>3|0)+b|0;F[c+16>>2]=a;F[c+20>>2]=a>>>0>>0?e+1|0:e;a=1}b=F[m+36>>2];if(b){F[m+40>>2]=b;oj(b)}b=F[m+24>>2];if(b){F[m+28>>2]=b;oj(b)}b=F[m+8>>2];if(b){F[m+12>>2]=b;oj(b)}fa=m- -64|0;return a;case 1:break b;default:break a}}b=0;e=F[c+20>>2];g=F[c+12>>2];j=F[c+16>>2];g:{if((e|0)>=(g|0)&j>>>0>=I[c+8>>2]|(e|0)>(g|0)){break g}g=G[j+F[c>>2]|0];j=j+1|0;e=j?e:e+1|0;F[c+16>>2]=j;F[c+20>>2]=e;h:{switch(g-1|0){case 8:m=a;t=d;g=fa+-64|0;fa=g;F[g+56>>2]=0;F[g+48>>2]=0;F[g+52>>2]=0;F[g+40>>2]=0;F[g+44>>2]=0;F[g+32>>2]=0;F[g+36>>2]=0;F[g+24>>2]=0;F[g+28>>2]=0;F[g+16>>2]=0;F[g+20>>2]=0;F[g+8>>2]=0;F[g+12>>2]=0;h=g+8|0;a=H[c+38>>1];i:{j:{if(!a){break j}k:{if(a>>>0<=511){a=F[c+12>>2];e=F[c+20>>2];b=F[c+16>>2];d=b+4|0;e=d>>>0<4?e+1|0:e;if((a|0)<=(e|0)&d>>>0>I[c+8>>2]|(a|0)<(e|0)){break j}a=b+F[c>>2]|0;i=G[a|0]|G[a+1|0]<<8|(G[a+2|0]<<16|G[a+3|0]<<24);F[h+12>>2]=i;e=F[c+20>>2];a=F[c+16>>2]+4|0;e=a>>>0<4?e+1|0:e;f=a;F[c+16>>2]=a;F[c+20>>2]=e;break k}if(!se(1,h+12|0,c)){break j}f=F[c+16>>2];e=F[c+20>>2];i=F[h+12>>2]}a=F[c+8>>2];b=a-f|0;a=F[c+12>>2]-((a>>>0>>0)+e|0)|0;if(b>>>0>>6>>>0&(a|0)<=0|(a|0)<0){break j}b=F[h>>2];a=F[h+4>>2]-b>>2;l:{if(a>>>0>>0){La(h,i-a|0);i=F[h+12>>2];break l}if(a>>>0<=i>>>0){break l}F[h+4>>2]=b+(i<<2)}d=1;if(!i){break i}f=F[c+16>>2];e=F[c+20>>2];q=F[h>>2];r=F[c+8>>2];o=F[c+12>>2];b=0;while(1){d=0;if((e|0)>=(o|0)&f>>>0>=r>>>0|(e|0)>(o|0)){break i}d=F[c>>2];n=G[d+f|0];a=f+1|0;e=a?e:e+1|0;f=a;F[c+16>>2]=a;F[c+20>>2]=e;a=n>>>2|0;j=0;m:{n:{o:{p:{s=n&3;switch(s|0){case 0:break n;case 3:break p;default:break o}}a=a+b|0;d=0;if(a>>>0>=i>>>0){break i}Ti(q+(b<<2)|0,0,(n&252)+4|0);b=a;break m}while(1){if((e|0)>=(o|0)&f>>>0>=r>>>0|(e|0)>(o|0)){break j}i=G[d+f|0];f=f+1|0;e=f?e:e+1|0;F[c+16>>2]=f;F[c+20>>2]=e;a=i<<(j<<3|6)|a;j=j+1|0;if((s|0)!=(j|0)){continue}break}}F[q+(b<<2)>>2]=a}b=b+1|0;i=F[h+12>>2];if(b>>>0>>0){continue}break}a=h+16|0;o=F[h>>2];d=F[h+16>>2];b=F[h+20>>2]-d|0;q:{if(b>>>0<=32767){La(a,8192-(b>>>2|0)|0);break q}if((b|0)==32768){break q}F[h+20>>2]=d+32768}d=h+28|0;b=F[d>>2];e=F[h+32>>2]-b>>3;r:{if(e>>>0>>0){te(d,i-e|0);b=F[d>>2];break r}if(e>>>0>i>>>0){F[h+32>>2]=(i<<3)+b}if(!i){break j}}h=F[a>>2];e=0;d=0;while(1){f=o+(e<<2)|0;j=F[f>>2];n=(e<<3)+b|0;a=d;F[n+4>>2]=a;F[n>>2]=j;f=F[f>>2];d=f+a|0;if(d>>>0>8192){break j}s:{if(a>>>0>=d>>>0){break s}j=0;n=f&7;if(n){while(1){F[h+(a<<2)>>2]=e;a=a+1|0;j=j+1|0;if((n|0)!=(j|0)){continue}break}}if(f-1>>>0<=6){break s}while(1){f=h+(a<<2)|0;F[f>>2]=e;F[f+28>>2]=e;F[f+24>>2]=e;F[f+20>>2]=e;F[f+16>>2]=e;F[f+12>>2]=e;F[f+8>>2]=e;F[f+4>>2]=e;a=a+8|0;if((d|0)!=(a|0)){continue}break}}e=e+1|0;if((i|0)!=(e|0)){continue}break}k=(d|0)==8192}d=k}t:{if(!d|(F[g+20>>2]?0:m)){break t}d=0;j=fa-16|0;fa=j;u:{v:{if(H[c+38>>1]<=511){i=F[c+12>>2];a=i;e=F[c+20>>2];k=F[c+16>>2];f=k+8|0;e=f>>>0<8?e+1|0:e;b=F[c+8>>2];if(b>>>0>>0&(a|0)<=(e|0)|(a|0)<(e|0)){break u}k=k+F[c>>2]|0;a=G[k|0]|G[k+1|0]<<8|(G[k+2|0]<<16|G[k+3|0]<<24);k=G[k+4|0]|G[k+5|0]<<8|(G[k+6|0]<<16|G[k+7|0]<<24);F[c+16>>2]=f;F[c+20>>2]=e;break v}if(!ue(1,j+8|0,c)){break u}f=F[c+16>>2];e=F[c+20>>2];b=F[c+8>>2];i=F[c+12>>2];a=F[j+8>>2];k=F[j+12>>2]}h=b-f|0;b=i-((b>>>0>>0)+e|0)|0;if((b|0)==(k|0)&a>>>0>h>>>0|b>>>0>>0){break u}e=e+k|0;b=a+f|0;e=b>>>0>>0?e+1|0:e;F[c+16>>2]=b;F[c+20>>2]=e;if((a|0)<=0){break u}b=f+F[c>>2]|0;F[g+48>>2]=b;c=a-1|0;e=c+b|0;f=G[e|0];w:{if(f>>>0<=63){F[g+52>>2]=c;a=G[e|0]&63;break w}x:{switch((f>>>6|0)-1|0){case 0:if(a>>>0<2){break u}F[g+52>>2]=a-2;a=(a+b|0)-2|0;a=G[a+1|0]<<8&16128|G[a|0];break w;case 1:if(a>>>0<3){break u}F[g+52>>2]=a-3;a=(a+b|0)-3|0;a=G[a+1|0]<<8|G[a+2|0]<<16&4128768|G[a|0];break w;default:break x}}F[g+52>>2]=a-4;a=(a+b|0)-4|0;a=G[a+2|0]<<16|G[a+3|0]<<24&1056964608|G[a+1|0]<<8|G[a|0]}F[g+56>>2]=a+32768;d=a>>>0<8355840}fa=j+16|0;if(!d){break t}if(!m){l=1;break t}a=F[g+56>>2];b=F[g+36>>2];c=F[g+48>>2];d=F[g+24>>2];while(1){y:{if(a>>>0>32767){break y}l=F[g+52>>2];while(1){if((l|0)<=0){break y}l=l-1|0;F[g+52>>2]=l;a=G[c+l|0]|a<<8;F[g+56>>2]=a;if(a>>>0<32768){continue}break}}e=a&8191;f=F[d+(e<<2)>>2];l=b+(f<<3)|0;a=(L(F[l>>2],a>>>13|0)+e|0)-F[l+4>>2]|0;F[g+56>>2]=a;F[t+(p<<2)>>2]=f;l=1;p=p+1|0;if((m|0)!=(p|0)){continue}break}}a=F[g+36>>2];if(a){F[g+40>>2]=a;oj(a)}a=F[g+24>>2];if(a){F[g+28>>2]=a;oj(a)}a=F[g+8>>2];if(a){F[g+12>>2]=a;oj(a)}fa=g- -64|0;b=l;break g;case 9:m=a;t=d;g=fa+-64|0;fa=g;F[g+56>>2]=0;F[g+48>>2]=0;F[g+52>>2]=0;F[g+40>>2]=0;F[g+44>>2]=0;F[g+32>>2]=0;F[g+36>>2]=0;F[g+24>>2]=0;F[g+28>>2]=0;F[g+16>>2]=0;F[g+20>>2]=0;F[g+8>>2]=0;F[g+12>>2]=0;h=g+8|0;a=H[c+38>>1];z:{A:{if(!a){break A}B:{if(a>>>0<=511){a=F[c+12>>2];e=F[c+20>>2];b=F[c+16>>2];d=b+4|0;e=d>>>0<4?e+1|0:e;if((a|0)<=(e|0)&d>>>0>I[c+8>>2]|(a|0)<(e|0)){break A}a=b+F[c>>2]|0;i=G[a|0]|G[a+1|0]<<8|(G[a+2|0]<<16|G[a+3|0]<<24);F[h+12>>2]=i;e=F[c+20>>2];a=F[c+16>>2]+4|0;e=a>>>0<4?e+1|0:e;f=a;F[c+16>>2]=a;F[c+20>>2]=e;break B}if(!se(1,h+12|0,c)){break A}f=F[c+16>>2];e=F[c+20>>2];i=F[h+12>>2]}a=F[c+8>>2];b=a-f|0;a=F[c+12>>2]-((a>>>0>>0)+e|0)|0;if(b>>>0>>6>>>0&(a|0)<=0|(a|0)<0){break A}b=F[h>>2];a=F[h+4>>2]-b>>2;C:{if(a>>>0>>0){La(h,i-a|0);i=F[h+12>>2];break C}if(a>>>0<=i>>>0){break C}F[h+4>>2]=b+(i<<2)}d=1;if(!i){break z}f=F[c+16>>2];e=F[c+20>>2];q=F[h>>2];r=F[c+8>>2];o=F[c+12>>2];b=0;while(1){d=0;if((e|0)>=(o|0)&f>>>0>=r>>>0|(e|0)>(o|0)){break z}d=F[c>>2];n=G[d+f|0];a=f+1|0;e=a?e:e+1|0;f=a;F[c+16>>2]=a;F[c+20>>2]=e;a=n>>>2|0;j=0;D:{E:{F:{G:{s=n&3;switch(s|0){case 0:break E;case 3:break G;default:break F}}a=a+b|0;d=0;if(a>>>0>=i>>>0){break z}Ti(q+(b<<2)|0,0,(n&252)+4|0);b=a;break D}while(1){if((e|0)>=(o|0)&f>>>0>=r>>>0|(e|0)>(o|0)){break A}i=G[d+f|0];f=f+1|0;e=f?e:e+1|0;F[c+16>>2]=f;F[c+20>>2]=e;a=i<<(j<<3|6)|a;j=j+1|0;if((s|0)!=(j|0)){continue}break}}F[q+(b<<2)>>2]=a}b=b+1|0;i=F[h+12>>2];if(b>>>0>>0){continue}break}a=h+16|0;o=F[h>>2];d=F[h+16>>2];b=F[h+20>>2]-d|0;H:{if(b>>>0<=131071){La(a,32768-(b>>>2|0)|0);break H}if((b|0)==131072){break H}F[h+20>>2]=d+131072}d=h+28|0;b=F[d>>2];e=F[h+32>>2]-b>>3;I:{if(e>>>0>>0){te(d,i-e|0);b=F[d>>2];break I}if(e>>>0>i>>>0){F[h+32>>2]=(i<<3)+b}if(!i){break A}}h=F[a>>2];e=0;d=0;while(1){f=o+(e<<2)|0;j=F[f>>2];n=(e<<3)+b|0;a=d;F[n+4>>2]=a;F[n>>2]=j;f=F[f>>2];d=f+a|0;if(d>>>0>32768){break A}J:{if(a>>>0>=d>>>0){break J}j=0;n=f&7;if(n){while(1){F[h+(a<<2)>>2]=e;a=a+1|0;j=j+1|0;if((n|0)!=(j|0)){continue}break}}if(f-1>>>0<=6){break J}while(1){f=h+(a<<2)|0;F[f>>2]=e;F[f+28>>2]=e;F[f+24>>2]=e;F[f+20>>2]=e;F[f+16>>2]=e;F[f+12>>2]=e;F[f+8>>2]=e;F[f+4>>2]=e;a=a+8|0;if((d|0)!=(a|0)){continue}break}}e=e+1|0;if((i|0)!=(e|0)){continue}break}k=(d|0)==32768}d=k}K:{if(!d|(F[g+20>>2]?0:m)){break K}d=0;h=fa-16|0;fa=h;L:{M:{if(H[c+38>>1]<=511){i=F[c+12>>2];a=i;e=F[c+20>>2];k=F[c+16>>2];f=k+8|0;e=f>>>0<8?e+1|0:e;b=F[c+8>>2];if(b>>>0>>0&(a|0)<=(e|0)|(a|0)<(e|0)){break L}k=k+F[c>>2]|0;a=G[k|0]|G[k+1|0]<<8|(G[k+2|0]<<16|G[k+3|0]<<24);k=G[k+4|0]|G[k+5|0]<<8|(G[k+6|0]<<16|G[k+7|0]<<24);F[c+16>>2]=f;F[c+20>>2]=e;break M}if(!ue(1,h+8|0,c)){break L}f=F[c+16>>2];e=F[c+20>>2];b=F[c+8>>2];i=F[c+12>>2];a=F[h+8>>2];k=F[h+12>>2]}j=b-f|0;b=i-((b>>>0>>0)+e|0)|0;if((b|0)==(k|0)&a>>>0>j>>>0|b>>>0>>0){break L}j=e+k|0;b=a+f|0;j=b>>>0>>0?j+1|0:j;F[c+16>>2]=b;F[c+20>>2]=j;if((a|0)<=0){break L}b=f+F[c>>2]|0;F[g+48>>2]=b;c=a-1|0;e=c+b|0;f=G[e|0];N:{if(f>>>0<=63){F[g+52>>2]=c;a=G[e|0]&63;break N}O:{switch((f>>>6|0)-1|0){case 0:if(a>>>0<2){break L}F[g+52>>2]=a-2;a=(a+b|0)-2|0;a=G[a+1|0]<<8&16128|G[a|0];break N;case 1:if(a>>>0<3){break L}F[g+52>>2]=a-3;a=(a+b|0)-3|0;a=G[a+1|0]<<8|G[a+2|0]<<16&4128768|G[a|0];break N;default:break O}}F[g+52>>2]=a-4;a=(a+b|0)-4|0;a=G[a+2|0]<<16|G[a+3|0]<<24&1056964608|G[a+1|0]<<8|G[a|0]}F[g+56>>2]=a+131072;d=a>>>0<33423360}fa=h+16|0;if(!d){break K}if(!m){l=1;break K}a=F[g+56>>2];b=F[g+36>>2];c=F[g+48>>2];d=F[g+24>>2];while(1){P:{if(a>>>0>131071){break P}l=F[g+52>>2];while(1){if((l|0)<=0){break P}l=l-1|0;F[g+52>>2]=l;a=G[c+l|0]|a<<8;F[g+56>>2]=a;if(a>>>0<131072){continue}break}}e=a&32767;f=F[d+(e<<2)>>2];l=b+(f<<3)|0;a=(L(F[l>>2],a>>>15|0)+e|0)-F[l+4>>2]|0;F[g+56>>2]=a;F[t+(p<<2)>>2]=f;l=1;p=p+1|0;if((m|0)!=(p|0)){continue}break}}a=F[g+36>>2];if(a){F[g+40>>2]=a;oj(a)}a=F[g+24>>2];if(a){F[g+28>>2]=a;oj(a)}a=F[g+8>>2];if(a){F[g+12>>2]=a;oj(a)}fa=g- -64|0;b=l;break g;case 10:m=a;t=d;g=fa+-64|0;fa=g;F[g+56>>2]=0;F[g+48>>2]=0;F[g+52>>2]=0;F[g+40>>2]=0;F[g+44>>2]=0;F[g+32>>2]=0;F[g+36>>2]=0;F[g+24>>2]=0;F[g+28>>2]=0;F[g+16>>2]=0;F[g+20>>2]=0;F[g+8>>2]=0;F[g+12>>2]=0;h=g+8|0;a=H[c+38>>1];Q:{R:{if(!a){break R}S:{if(a>>>0<=511){a=F[c+12>>2];e=F[c+20>>2];b=F[c+16>>2];d=b+4|0;e=d>>>0<4?e+1|0:e;if((a|0)<=(e|0)&d>>>0>I[c+8>>2]|(a|0)<(e|0)){break R}a=b+F[c>>2]|0;i=G[a|0]|G[a+1|0]<<8|(G[a+2|0]<<16|G[a+3|0]<<24);F[h+12>>2]=i;e=F[c+20>>2];a=F[c+16>>2]+4|0;e=a>>>0<4?e+1|0:e;f=a;F[c+16>>2]=a;F[c+20>>2]=e;break S}if(!se(1,h+12|0,c)){break R}f=F[c+16>>2];e=F[c+20>>2];i=F[h+12>>2]}a=F[c+8>>2];b=a-f|0;a=F[c+12>>2]-((a>>>0>>0)+e|0)|0;if(b>>>0>>6>>>0&(a|0)<=0|(a|0)<0){break R}b=F[h>>2];a=F[h+4>>2]-b>>2;T:{if(a>>>0>>0){La(h,i-a|0);i=F[h+12>>2];break T}if(a>>>0<=i>>>0){break T}F[h+4>>2]=b+(i<<2)}d=1;if(!i){break Q}f=F[c+16>>2];e=F[c+20>>2];q=F[h>>2];r=F[c+8>>2];o=F[c+12>>2];b=0;while(1){d=0;if((e|0)>=(o|0)&f>>>0>=r>>>0|(e|0)>(o|0)){break Q}d=F[c>>2];n=G[d+f|0];a=f+1|0;j=a?e:e+1|0;f=a;F[c+16>>2]=a;e=j;F[c+20>>2]=e;a=n>>>2|0;j=0;U:{V:{W:{X:{s=n&3;switch(s|0){case 0:break V;case 3:break X;default:break W}}a=a+b|0;d=0;if(a>>>0>=i>>>0){break Q}Ti(q+(b<<2)|0,0,(n&252)+4|0);b=a;break U}while(1){if((e|0)>=(o|0)&f>>>0>=r>>>0|(e|0)>(o|0)){break R}i=G[d+f|0];f=f+1|0;e=f?e:e+1|0;F[c+16>>2]=f;F[c+20>>2]=e;a=i<<(j<<3|6)|a;j=j+1|0;if((s|0)!=(j|0)){continue}break}}F[q+(b<<2)>>2]=a}b=b+1|0;i=F[h+12>>2];if(b>>>0>>0){continue}break}a=h+16|0;o=F[h>>2];d=F[h+16>>2];b=F[h+20>>2]-d|0;Y:{if(b>>>0<=262143){La(a,65536-(b>>>2|0)|0);break Y}if((b|0)==262144){break Y}F[h+20>>2]=d+262144}d=h+28|0;b=F[d>>2];e=F[h+32>>2]-b>>3;Z:{if(e>>>0>>0){te(d,i-e|0);b=F[d>>2];break Z}if(e>>>0>i>>>0){F[h+32>>2]=(i<<3)+b}if(!i){break R}}h=F[a>>2];e=0;d=0;while(1){f=o+(e<<2)|0;j=F[f>>2];n=(e<<3)+b|0;a=d;F[n+4>>2]=a;F[n>>2]=j;f=F[f>>2];d=f+a|0;if(d>>>0>65536){break R}_:{if(a>>>0>=d>>>0){break _}j=0;n=f&7;if(n){while(1){F[h+(a<<2)>>2]=e;a=a+1|0;j=j+1|0;if((n|0)!=(j|0)){continue}break}}if(f-1>>>0<=6){break _}while(1){f=h+(a<<2)|0;F[f>>2]=e;F[f+28>>2]=e;F[f+24>>2]=e;F[f+20>>2]=e;F[f+16>>2]=e;F[f+12>>2]=e;F[f+8>>2]=e;F[f+4>>2]=e;a=a+8|0;if((d|0)!=(a|0)){continue}break}}e=e+1|0;if((i|0)!=(e|0)){continue}break}k=(d|0)==65536}d=k}$:{if(!d|(F[g+20>>2]?0:m)){break $}d=0;j=fa-16|0;fa=j;aa:{ba:{if(H[c+38>>1]<=511){i=F[c+12>>2];a=i;e=F[c+20>>2];k=F[c+16>>2];f=k+8|0;e=f>>>0<8?e+1|0:e;b=F[c+8>>2];if(b>>>0>>0&(a|0)<=(e|0)|(a|0)<(e|0)){break aa}k=k+F[c>>2]|0;a=G[k|0]|G[k+1|0]<<8|(G[k+2|0]<<16|G[k+3|0]<<24);k=G[k+4|0]|G[k+5|0]<<8|(G[k+6|0]<<16|G[k+7|0]<<24);F[c+16>>2]=f;F[c+20>>2]=e;break ba}if(!ue(1,j+8|0,c)){break aa}f=F[c+16>>2];e=F[c+20>>2];b=F[c+8>>2];i=F[c+12>>2];a=F[j+8>>2];k=F[j+12>>2]}h=b-f|0;b=i-((b>>>0>>0)+e|0)|0;if((b|0)==(k|0)&a>>>0>h>>>0|b>>>0>>0){break aa}e=e+k|0;b=a+f|0;e=b>>>0>>0?e+1|0:e;F[c+16>>2]=b;F[c+20>>2]=e;if((a|0)<=0){break aa}b=f+F[c>>2]|0;F[g+48>>2]=b;c=a-1|0;e=c+b|0;f=G[e|0];ca:{if(f>>>0<=63){F[g+52>>2]=c;a=G[e|0]&63;break ca}da:{switch((f>>>6|0)-1|0){case 0:if(a>>>0<2){break aa}F[g+52>>2]=a-2;a=(a+b|0)-2|0;a=G[a+1|0]<<8&16128|G[a|0];break ca;case 1:if(a>>>0<3){break aa}F[g+52>>2]=a-3;a=(a+b|0)-3|0;a=G[a+1|0]<<8|G[a+2|0]<<16&4128768|G[a|0];break ca;default:break da}}F[g+52>>2]=a-4;a=(a+b|0)-4|0;a=G[a+2|0]<<16|G[a+3|0]<<24&1056964608|G[a+1|0]<<8|G[a|0]}F[g+56>>2]=a+262144;d=a>>>0<66846720}fa=j+16|0;if(!d){break $}if(!m){l=1;break $}a=F[g+56>>2];b=F[g+36>>2];c=F[g+48>>2];d=F[g+24>>2];while(1){ea:{if(a>>>0>262143){break ea}l=F[g+52>>2];while(1){if((l|0)<=0){break ea}l=l-1|0;F[g+52>>2]=l;a=G[c+l|0]|a<<8;F[g+56>>2]=a;if(a>>>0<262144){continue}break}}e=a&65535;f=F[d+(e<<2)>>2];l=b+(f<<3)|0;a=(L(F[l>>2],a>>>16|0)+e|0)-F[l+4>>2]|0;F[g+56>>2]=a;F[t+(p<<2)>>2]=f;l=1;p=p+1|0;if((m|0)!=(p|0)){continue}break}}a=F[g+36>>2];if(a){F[g+40>>2]=a;oj(a)}a=F[g+24>>2];if(a){F[g+28>>2]=a;oj(a)}a=F[g+8>>2];if(a){F[g+12>>2]=a;oj(a)}fa=g- -64|0;b=l;break g;case 11:m=a;t=d;g=fa+-64|0;fa=g;F[g+56>>2]=0;F[g+48>>2]=0;F[g+52>>2]=0;F[g+40>>2]=0;F[g+44>>2]=0;F[g+32>>2]=0;F[g+36>>2]=0;F[g+24>>2]=0;F[g+28>>2]=0;F[g+16>>2]=0;F[g+20>>2]=0;F[g+8>>2]=0;F[g+12>>2]=0;h=g+8|0;a=H[c+38>>1];fa:{ga:{if(!a){break ga}ha:{if(a>>>0<=511){a=F[c+12>>2];e=F[c+20>>2];b=F[c+16>>2];d=b+4|0;e=d>>>0<4?e+1|0:e;if((a|0)<=(e|0)&d>>>0>I[c+8>>2]|(a|0)<(e|0)){break ga}a=b+F[c>>2]|0;i=G[a|0]|G[a+1|0]<<8|(G[a+2|0]<<16|G[a+3|0]<<24);F[h+12>>2]=i;j=F[c+20>>2];a=F[c+16>>2]+4|0;j=a>>>0<4?j+1|0:j;f=a;F[c+16>>2]=a;e=j;F[c+20>>2]=e;break ha}if(!se(1,h+12|0,c)){break ga}f=F[c+16>>2];e=F[c+20>>2];i=F[h+12>>2]}a=F[c+8>>2];b=a-f|0;a=F[c+12>>2]-((a>>>0>>0)+e|0)|0;if(b>>>0>>6>>>0&(a|0)<=0|(a|0)<0){break ga}b=F[h>>2];a=F[h+4>>2]-b>>2;ia:{if(a>>>0>>0){La(h,i-a|0);i=F[h+12>>2];break ia}if(a>>>0<=i>>>0){break ia}F[h+4>>2]=b+(i<<2)}d=1;if(!i){break fa}f=F[c+16>>2];e=F[c+20>>2];q=F[h>>2];r=F[c+8>>2];o=F[c+12>>2];b=0;while(1){d=0;if((e|0)>=(o|0)&f>>>0>=r>>>0|(e|0)>(o|0)){break fa}d=F[c>>2];n=G[d+f|0];a=f+1|0;e=a?e:e+1|0;f=a;F[c+16>>2]=a;F[c+20>>2]=e;a=n>>>2|0;j=0;ja:{ka:{la:{ma:{s=n&3;switch(s|0){case 0:break ka;case 3:break ma;default:break la}}a=a+b|0;d=0;if(a>>>0>=i>>>0){break fa}Ti(q+(b<<2)|0,0,(n&252)+4|0);b=a;break ja}while(1){if((e|0)>=(o|0)&f>>>0>=r>>>0|(e|0)>(o|0)){break ga}i=G[d+f|0];f=f+1|0;e=f?e:e+1|0;F[c+16>>2]=f;F[c+20>>2]=e;a=i<<(j<<3|6)|a;j=j+1|0;if((s|0)!=(j|0)){continue}break}}F[q+(b<<2)>>2]=a}b=b+1|0;i=F[h+12>>2];if(b>>>0>>0){continue}break}a=h+16|0;o=F[h>>2];d=F[h+16>>2];b=F[h+20>>2]-d|0;na:{if(b>>>0<=1048575){La(a,262144-(b>>>2|0)|0);break na}if((b|0)==1048576){break na}F[h+20>>2]=d- -1048576}d=h+28|0;b=F[d>>2];e=F[h+32>>2]-b>>3;oa:{if(e>>>0>>0){te(d,i-e|0);b=F[d>>2];break oa}if(e>>>0>i>>>0){F[h+32>>2]=(i<<3)+b}if(!i){break ga}}h=F[a>>2];e=0;d=0;while(1){f=o+(e<<2)|0;j=F[f>>2];n=(e<<3)+b|0;a=d;F[n+4>>2]=a;F[n>>2]=j;f=F[f>>2];d=f+a|0;if(d>>>0>262144){break ga}pa:{if(a>>>0>=d>>>0){break pa}j=0;n=f&7;if(n){while(1){F[h+(a<<2)>>2]=e;a=a+1|0;j=j+1|0;if((n|0)!=(j|0)){continue}break}}if(f-1>>>0<=6){break pa}while(1){f=h+(a<<2)|0;F[f>>2]=e;F[f+28>>2]=e;F[f+24>>2]=e;F[f+20>>2]=e;F[f+16>>2]=e;F[f+12>>2]=e;F[f+8>>2]=e;F[f+4>>2]=e;a=a+8|0;if((d|0)!=(a|0)){continue}break}}e=e+1|0;if((i|0)!=(e|0)){continue}break}k=(d|0)==262144}d=k}qa:{if(!d|(F[g+20>>2]?0:m)){break qa}d=0;h=fa-16|0;fa=h;ra:{sa:{if(H[c+38>>1]<=511){i=F[c+12>>2];a=i;j=F[c+20>>2];k=F[c+16>>2];e=k+8|0;j=e>>>0<8?j+1|0:j;b=F[c+8>>2];f=e;e=j;if(b>>>0>>0&(e|0)>=(a|0)|(a|0)<(e|0)){break ra}k=k+F[c>>2]|0;a=G[k|0]|G[k+1|0]<<8|(G[k+2|0]<<16|G[k+3|0]<<24);k=G[k+4|0]|G[k+5|0]<<8|(G[k+6|0]<<16|G[k+7|0]<<24);F[c+16>>2]=f;F[c+20>>2]=e;break sa}if(!ue(1,h+8|0,c)){break ra}f=F[c+16>>2];e=F[c+20>>2];b=F[c+8>>2];i=F[c+12>>2];a=F[h+8>>2];k=F[h+12>>2]}j=b-f|0;b=i-((b>>>0>>0)+e|0)|0;if((b|0)==(k|0)&a>>>0>j>>>0|b>>>0>>0){break ra}e=e+k|0;b=a+f|0;e=b>>>0>>0?e+1|0:e;F[c+16>>2]=b;F[c+20>>2]=e;if((a|0)<=0){break ra}b=f+F[c>>2]|0;F[g+48>>2]=b;c=a-1|0;e=c+b|0;f=G[e|0];ta:{if(f>>>0<=63){F[g+52>>2]=c;a=G[e|0]&63;break ta}ua:{switch((f>>>6|0)-1|0){case 0:if(a>>>0<2){break ra}F[g+52>>2]=a-2;a=(a+b|0)-2|0;a=G[a+1|0]<<8&16128|G[a|0];break ta;case 1:if(a>>>0<3){break ra}F[g+52>>2]=a-3;a=(a+b|0)-3|0;a=G[a+1|0]<<8|G[a+2|0]<<16&4128768|G[a|0];break ta;default:break ua}}F[g+52>>2]=a-4;a=(a+b|0)-4|0;a=G[a+2|0]<<16|G[a+3|0]<<24&1056964608|G[a+1|0]<<8|G[a|0]}F[g+56>>2]=a- -1048576;d=a>>>0<267386880}fa=h+16|0;if(!d){break qa}if(!m){l=1;break qa}a=F[g+56>>2];b=F[g+36>>2];c=F[g+48>>2];d=F[g+24>>2];while(1){va:{if(a>>>0>1048575){break va}l=F[g+52>>2];while(1){if((l|0)<=0){break va}l=l-1|0;F[g+52>>2]=l;a=G[c+l|0]|a<<8;F[g+56>>2]=a;if(a>>>0<1048576){continue}break}}e=a&262143;f=F[d+(e<<2)>>2];l=b+(f<<3)|0;a=(L(F[l>>2],a>>>18|0)+e|0)-F[l+4>>2]|0;F[g+56>>2]=a;F[t+(p<<2)>>2]=f;l=1;p=p+1|0;if((m|0)!=(p|0)){continue}break}}a=F[g+36>>2];if(a){F[g+40>>2]=a;oj(a)}a=F[g+24>>2];if(a){F[g+28>>2]=a;oj(a)}a=F[g+8>>2];if(a){F[g+12>>2]=a;oj(a)}fa=g- -64|0;b=l;break g;case 12:m=a;t=d;g=fa+-64|0;fa=g;F[g+56>>2]=0;F[g+48>>2]=0;F[g+52>>2]=0;F[g+40>>2]=0;F[g+44>>2]=0;F[g+32>>2]=0;F[g+36>>2]=0;F[g+24>>2]=0;F[g+28>>2]=0;F[g+16>>2]=0;F[g+20>>2]=0;F[g+8>>2]=0;F[g+12>>2]=0;h=g+8|0;a=H[c+38>>1];wa:{xa:{if(!a){break xa}ya:{if(a>>>0<=511){a=F[c+12>>2];j=F[c+20>>2];b=F[c+16>>2];d=b+4|0;j=d>>>0<4?j+1|0:j;if((a|0)<=(j|0)&d>>>0>I[c+8>>2]|(a|0)<(j|0)){break xa}a=b+F[c>>2]|0;i=G[a|0]|G[a+1|0]<<8|(G[a+2|0]<<16|G[a+3|0]<<24);F[h+12>>2]=i;e=F[c+20>>2];a=F[c+16>>2]+4|0;e=a>>>0<4?e+1|0:e;f=a;F[c+16>>2]=a;F[c+20>>2]=e;break ya}if(!se(1,h+12|0,c)){break xa}f=F[c+16>>2];e=F[c+20>>2];i=F[h+12>>2]}a=F[c+8>>2];b=a-f|0;a=F[c+12>>2]-((a>>>0>>0)+e|0)|0;if(b>>>0>>6>>>0&(a|0)<=0|(a|0)<0){break xa}b=F[h>>2];a=F[h+4>>2]-b>>2;za:{if(a>>>0>>0){La(h,i-a|0);i=F[h+12>>2];break za}if(a>>>0<=i>>>0){break za}F[h+4>>2]=b+(i<<2)}d=1;if(!i){break wa}f=F[c+16>>2];e=F[c+20>>2];q=F[h>>2];r=F[c+8>>2];o=F[c+12>>2];b=0;while(1){d=0;if((e|0)>=(o|0)&f>>>0>=r>>>0|(e|0)>(o|0)){break wa}d=F[c>>2];n=G[d+f|0];a=f+1|0;e=a?e:e+1|0;f=a;F[c+16>>2]=a;F[c+20>>2]=e;a=n>>>2|0;j=0;Aa:{Ba:{Ca:{Da:{s=n&3;switch(s|0){case 0:break Ba;case 3:break Da;default:break Ca}}a=a+b|0;d=0;if(a>>>0>=i>>>0){break wa}Ti(q+(b<<2)|0,0,(n&252)+4|0);b=a;break Aa}while(1){if((e|0)>=(o|0)&f>>>0>=r>>>0|(e|0)>(o|0)){break xa}i=G[d+f|0];f=f+1|0;e=f?e:e+1|0;F[c+16>>2]=f;F[c+20>>2]=e;a=i<<(j<<3|6)|a;j=j+1|0;if((s|0)!=(j|0)){continue}break}}F[q+(b<<2)>>2]=a}b=b+1|0;i=F[h+12>>2];if(b>>>0>>0){continue}break}a=h+16|0;o=F[h>>2];d=F[h+16>>2];b=F[h+20>>2]-d|0;Ea:{if(b>>>0<=2097151){La(a,524288-(b>>>2|0)|0);break Ea}if((b|0)==2097152){break Ea}F[h+20>>2]=d+2097152}d=h+28|0;b=F[d>>2];e=F[h+32>>2]-b>>3;Fa:{if(e>>>0>>0){te(d,i-e|0);b=F[d>>2];break Fa}if(e>>>0>i>>>0){F[h+32>>2]=(i<<3)+b}if(!i){break xa}}h=F[a>>2];e=0;d=0;while(1){f=o+(e<<2)|0;j=F[f>>2];n=(e<<3)+b|0;a=d;F[n+4>>2]=a;F[n>>2]=j;f=F[f>>2];d=f+a|0;if(d>>>0>524288){break xa}Ga:{if(a>>>0>=d>>>0){break Ga}j=0;n=f&7;if(n){while(1){F[h+(a<<2)>>2]=e;a=a+1|0;j=j+1|0;if((n|0)!=(j|0)){continue}break}}if(f-1>>>0<=6){break Ga}while(1){f=h+(a<<2)|0;F[f>>2]=e;F[f+28>>2]=e;F[f+24>>2]=e;F[f+20>>2]=e;F[f+16>>2]=e;F[f+12>>2]=e;F[f+8>>2]=e;F[f+4>>2]=e;a=a+8|0;if((d|0)!=(a|0)){continue}break}}e=e+1|0;if((i|0)!=(e|0)){continue}break}k=(d|0)==524288}d=k}Ha:{if(!d|(F[g+20>>2]?0:m)){break Ha}d=0;j=fa-16|0;fa=j;Ia:{Ja:{if(H[c+38>>1]<=511){i=F[c+12>>2];a=i;e=F[c+20>>2];k=F[c+16>>2];f=k+8|0;e=f>>>0<8?e+1|0:e;b=F[c+8>>2];if(b>>>0>>0&(a|0)<=(e|0)|(a|0)<(e|0)){break Ia}k=k+F[c>>2]|0;a=G[k|0]|G[k+1|0]<<8|(G[k+2|0]<<16|G[k+3|0]<<24);k=G[k+4|0]|G[k+5|0]<<8|(G[k+6|0]<<16|G[k+7|0]<<24);F[c+16>>2]=f;F[c+20>>2]=e;break Ja}if(!ue(1,j+8|0,c)){break Ia}f=F[c+16>>2];e=F[c+20>>2];b=F[c+8>>2];i=F[c+12>>2];a=F[j+8>>2];k=F[j+12>>2]}h=b-f|0;b=i-((b>>>0>>0)+e|0)|0;if((b|0)==(k|0)&a>>>0>h>>>0|b>>>0>>0){break Ia}e=e+k|0;b=a+f|0;e=b>>>0>>0?e+1|0:e;F[c+16>>2]=b;F[c+20>>2]=e;if((a|0)<=0){break Ia}b=f+F[c>>2]|0;F[g+48>>2]=b;c=a-1|0;e=c+b|0;f=G[e|0];Ka:{if(f>>>0<=63){F[g+52>>2]=c;a=G[e|0]&63;break Ka}La:{switch((f>>>6|0)-1|0){case 0:if(a>>>0<2){break Ia}F[g+52>>2]=a-2;a=(a+b|0)-2|0;a=G[a+1|0]<<8&16128|G[a|0];break Ka;case 1:if(a>>>0<3){break Ia}F[g+52>>2]=a-3;a=(a+b|0)-3|0;a=G[a+1|0]<<8|G[a+2|0]<<16&4128768|G[a|0];break Ka;default:break La}}F[g+52>>2]=a-4;a=(a+b|0)-4|0;a=G[a+2|0]<<16|G[a+3|0]<<24&1056964608|G[a+1|0]<<8|G[a|0]}F[g+56>>2]=a+2097152;d=a>>>0<534773760}fa=j+16|0;if(!d){break Ha}if(!m){l=1;break Ha}a=F[g+56>>2];b=F[g+36>>2];c=F[g+48>>2];d=F[g+24>>2];while(1){Ma:{if(a>>>0>2097151){break Ma}l=F[g+52>>2];while(1){if((l|0)<=0){break Ma}l=l-1|0;F[g+52>>2]=l;a=G[c+l|0]|a<<8;F[g+56>>2]=a;if(a>>>0<2097152){continue}break}}e=a&524287;f=F[d+(e<<2)>>2];l=b+(f<<3)|0;a=(L(F[l>>2],a>>>19|0)+e|0)-F[l+4>>2]|0;F[g+56>>2]=a;F[t+(p<<2)>>2]=f;l=1;p=p+1|0;if((m|0)!=(p|0)){continue}break}}a=F[g+36>>2];if(a){F[g+40>>2]=a;oj(a)}a=F[g+24>>2];if(a){F[g+28>>2]=a;oj(a)}a=F[g+8>>2];if(a){F[g+12>>2]=a;oj(a)}fa=g- -64|0;b=l;break g;case 17:b=re(a,c,d);break g;case 0:case 1:case 2:case 3:case 4:case 5:case 6:case 7:e=fa+-64|0;fa=e;F[e+56>>2]=0;F[e+48>>2]=0;F[e+52>>2]=0;F[e+40>>2]=0;F[e+44>>2]=0;F[e+32>>2]=0;F[e+36>>2]=0;F[e+24>>2]=0;F[e+28>>2]=0;F[e+16>>2]=0;F[e+20>>2]=0;F[e+8>>2]=0;F[e+12>>2]=0;Na:{if(!pe(e+8|0,c)|(F[e+20>>2]?0:a)){break Na}if(!qe(e+8|0,c)){break Na}if(!a){b=1;break Na}c=F[e+56>>2];l=F[e+36>>2];k=F[e+48>>2];j=F[e+24>>2];while(1){Oa:{if(c>>>0>16383){break Oa}b=F[e+52>>2];while(1){if((b|0)<=0){break Oa}b=b-1|0;F[e+52>>2]=b;c=G[b+k|0]|c<<8;F[e+56>>2]=c;if(c>>>0<16384){continue}break}}b=c&4095;g=F[j+(b<<2)>>2];m=l+(g<<3)|0;c=(L(F[m>>2],c>>>12|0)+b|0)-F[m+4>>2]|0;F[e+56>>2]=c;F[(f<<2)+d>>2]=g;b=1;f=f+1|0;if((f|0)!=(a|0)){continue}break}}a=F[e+36>>2];if(a){F[e+40>>2]=a;oj(a)}a=F[e+24>>2];if(a){F[e+28>>2]=a;oj(a)}a=F[e+8>>2];if(a){F[e+12>>2]=a;oj(a)}fa=e- -64|0;break g;case 13:case 14:case 15:case 16:break h;default:break g}}b=re(a,c,d)}f=b}return f}function kf(a){a=a|0;var b=0,c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,J=0,K=0,M=0,N=0,O=0,P=0,Q=0,R=0;s=fa+-64|0;fa=s;F[a+132>>2]=0;if(F[a+148>>2]){b=F[a+144>>2];if(b){while(1){d=F[b>>2];oj(b);b=d;if(b){continue}break}}b=0;F[a+144>>2]=0;d=F[a+140>>2];a:{if(!d){break a}if(d-1>>>0>=3){c=d&-4;while(1){g=b<<2;F[g+F[a+136>>2]>>2]=0;F[F[a+136>>2]+(g|4)>>2]=0;F[F[a+136>>2]+(g|8)>>2]=0;F[F[a+136>>2]+(g|12)>>2]=0;b=b+4|0;j=j+4|0;if((c|0)!=(j|0)){continue}break}}d=d&3;if(!d){break a}while(1){F[F[a+136>>2]+(b<<2)>>2]=0;b=b+1|0;w=w+1|0;if((d|0)!=(w|0)){continue}break}}F[a+148>>2]=0}b:{c:{d:{e:{b=F[a+4>>2];w=G[b+36|0];g=w<<8|G[b+37|0];if(g>>>0<=513){d=F[b+32>>2];f:{if(g>>>0<=511){g=F[d+20>>2];c=F[d+16>>2];j=c+4|0;g=j>>>0<4?g+1|0:g;e=j;j=F[d+12>>2];if(e>>>0>I[d+8>>2]&(j|0)<=(g|0)|(g|0)>(j|0)){break e}c=c+F[d>>2]|0;j=G[c|0]|G[c+1|0]<<8|(G[c+2|0]<<16|G[c+3|0]<<24);F[d+16>>2]=e;F[d+20>>2]=g;break f}if(!Qe(1,s,d)){break e}b=F[a+4>>2];w=G[b+36|0];j=F[s>>2]}F[a+132>>2]=j}g=F[b+32>>2];g:{h:{i:{if((w&255)>>>0<=1){w=0;d=F[g+20>>2];c=F[g+16>>2];j=c+4|0;d=j>>>0<4?d+1|0:d;e=F[g+12>>2];if((e|0)<=(d|0)&j>>>0>I[g+8>>2]|(d|0)>(e|0)){break c}c=c+F[g>>2]|0;c=G[c|0]|G[c+1|0]<<8|(G[c+2|0]<<16|G[c+3|0]<<24);F[s+60>>2]=c;F[g+16>>2]=j;F[g+20>>2]=d;F[a+156>>2]=c;c=a+156|0;break i}w=0;if(!Qe(1,s+60|0,g)){break c}b=F[a+4>>2];d=G[b+36|0];F[a+156>>2]=F[s+60>>2];c=a+156|0;if(d>>>0>1){break h}}d=F[b+32>>2];b=F[d+8>>2];g=F[d+12>>2];h=b;b=F[d+20>>2];j=F[d+16>>2];e=j+4|0;b=e>>>0<4?b+1|0:b;if(h>>>0>>0&(b|0)>=(g|0)|(b|0)>(g|0)){break c}g=j+F[d>>2]|0;j=G[g|0]|G[g+1|0]<<8|(G[g+2|0]<<16|G[g+3|0]<<24);F[s+56>>2]=j;F[d+16>>2]=e;F[d+20>>2]=b;break g}if(!Qe(1,s+56|0,F[b+32>>2])){break c}j=F[s+56>>2]}if(j>>>0>1431655765|I[c>>2]>L(j,3)>>>0){break c}f=F[a+4>>2];g=F[f+32>>2];k=F[g+8>>2];b=k;c=F[g+12>>2];d=F[g+20>>2];e=F[g+16>>2];if((c|0)<=(d|0)&e>>>0>=b>>>0|(d|0)>(c|0)){break c}m=F[g>>2];l=G[m+e|0];b=d;A=e+1|0;b=A?b:b+1|0;F[g+16>>2]=A;F[g+20>>2]=b;j:{if(G[f+36|0]<=1){b=c;c=e+5|0;d=c>>>0<5?d+1|0:d;e=c;if((b|0)<=(d|0)&c>>>0>k>>>0|(b|0)<(d|0)){break c}b=m+A|0;c=G[b|0]|G[b+1|0]<<8|(G[b+2|0]<<16|G[b+3|0]<<24);F[s+52>>2]=c;F[g+16>>2]=e;F[g+20>>2]=d;break j}if(!Qe(1,s+52|0,g)){break c}c=F[s+52>>2]}if(((c>>>0)/3|0)+c>>>0>>0|c>>>0>j>>>0){break c}b=F[a+4>>2];g=F[b+32>>2];k:{if(G[b+36|0]<=1){b=F[g+20>>2];d=F[g+16>>2];e=d+4|0;b=e>>>0<4?b+1|0:b;f=F[g+12>>2];if((f|0)<=(b|0)&e>>>0>I[g+8>>2]|(b|0)>(f|0)){break c}d=d+F[g>>2]|0;d=G[d|0]|G[d+1|0]<<8|(G[d+2|0]<<16|G[d+3|0]<<24);F[s+48>>2]=d;F[g+16>>2]=e;F[g+20>>2]=b;break k}if(!Qe(1,s+48|0,g)){break c}d=F[s+48>>2]}if(d>>>0>c>>>0){break c}F[a+28>>2]=F[a+24>>2];g=qi(rj(88));b=F[a+8>>2];F[a+8>>2]=g;if(b){Re(b);if(!F[a+8>>2]){break c}}F[a+164>>2]=F[a+160>>2];Se(a+160|0,j);F[a+176>>2]=F[a+172>>2];Se(a+172|0,j);F[a- -64>>2]=0;F[a+92>>2]=-1;F[a+84>>2]=-1;F[a+88>>2]=-1;F[a+40>>2]=F[a+36>>2];F[a+52>>2]=F[a+48>>2];F[a+76>>2]=F[a+72>>2];C=a+216|0;Te(C);Ue(C,l);if(!ri(F[a+8>>2],j,F[a+156>>2]+d|0)){break c}b=F[a+156>>2];D[s|0]=1;Ne(a+120|0,b+d|0,s);b=F[a+4>>2];g=H[b+36>>1];g=(g<<8|g>>>8)&65535;l:{if(g>>>0<=513){b=F[b+32>>2];m:{if(g>>>0<=511){g=F[b+20>>2];j=F[b+16>>2];e=j+4|0;g=e>>>0<4?g+1|0:g;f=F[b+12>>2];if((f|0)<=(g|0)&e>>>0>I[b+8>>2]|(f|0)<(g|0)){break c}j=j+F[b>>2]|0;j=G[j|0]|G[j+1|0]<<8|(G[j+2|0]<<16|G[j+3|0]<<24);F[b+16>>2]=e;F[b+20>>2]=g;break m}if(!Qe(1,s+44|0,b)){break c}j=F[s+44>>2]}if(!j){break c}b=F[F[a+4>>2]+32>>2];g=F[b+8>>2];e=F[b+16>>2];f=g-e|0;b=F[b+12>>2]-(F[b+20>>2]+(e>>>0>g>>>0)|0)|0;if(f>>>0>>0&(b|0)<=0|(b|0)<0){break c}b=ng(s);e=F[F[a+4>>2]+32>>2];g=F[e+16>>2];f=(g+F[e>>2]|0)+j|0;k=F[e+8>>2];g=(k-g|0)-j|0;E[b+38>>1]=H[e+38>>1];F[b>>2]=f;F[b+16>>2]=0;F[b+20>>2]=0;F[b+8>>2]=g;F[b+12>>2]=0;A=Ve(a,b);if((A|0)==-1){break c}N=A>>31;break l}A=-1;N=-1;if((Ve(a,F[b+32>>2])|0)==-1){break c}}f=a+232|0;hf(f,a);F[a+372>>2]=l;F[a+384>>2]=F[a+156>>2]+d;M=ng(s);g=M;j=0;l=fa-16|0;fa=l;n:{o:{b=F[f+144>>2];b=H[(ja[F[F[b>>2]+32>>2]](b)|0)+36>>1];if(((b<<8|b>>>8)&65535)>>>0<=513){b=F[f+4>>2];F[f+40>>2]=F[f>>2];F[f+44>>2]=b;b=F[f+36>>2];F[f+72>>2]=F[f+32>>2];F[f+76>>2]=b;d=F[f+28>>2];b=f- -64|0;F[b>>2]=F[f+24>>2];F[b+4>>2]=d;b=F[f+20>>2];F[f+56>>2]=F[f+16>>2];F[f+60>>2]=b;b=F[f+12>>2];F[f+48>>2]=F[f+8>>2];F[f+52>>2]=b;if(!og(f+40|0,1,l+8|0)){break o}b=F[f+44>>2];F[f>>2]=F[f+40>>2];F[f+4>>2]=b;b=F[f+76>>2];F[f+32>>2]=F[f+72>>2];F[f+36>>2]=b;b=F[f+68>>2];F[f+24>>2]=F[f+64>>2];F[f+28>>2]=b;d=F[f+60>>2];e=d;b=F[f+56>>2];F[f+16>>2]=b;F[f+20>>2]=d;k=F[f+52>>2];d=F[f+48>>2];F[f+8>>2]=d;F[f+12>>2]=k;m=d-b|0;i=F[l+12>>2];d=k-((b>>>0>d>>>0)+e|0)|0;k=F[l+8>>2];if((i|0)==(d|0)&m>>>0>>0|d>>>0>>0){break o}d=b;k=b+k|0;b=e+i|0;F[f+16>>2]=k;F[f+20>>2]=d>>>0>k>>>0?b+1|0:b}p:{if(H[f+38>>1]<=513){b=F[f+4>>2];F[f+96>>2]=F[f>>2];F[f+100>>2]=b;b=F[f+36>>2];F[f+128>>2]=F[f+32>>2];F[f+132>>2]=b;b=F[f+28>>2];F[f+120>>2]=F[f+24>>2];F[f+124>>2]=b;b=F[f+20>>2];F[f+112>>2]=F[f+16>>2];F[f+116>>2]=b;b=F[f+12>>2];F[f+104>>2]=F[f+8>>2];F[f+108>>2]=b;if(!og(f+96|0,1,l+8|0)){break o}b=F[f+100>>2];F[f>>2]=F[f+96>>2];F[f+4>>2]=b;b=F[f+132>>2];F[f+32>>2]=F[f+128>>2];F[f+36>>2]=b;b=F[f+124>>2];F[f+24>>2]=F[f+120>>2];F[f+28>>2]=b;d=F[f+116>>2];e=d;b=F[f+112>>2];F[f+16>>2]=b;F[f+20>>2]=d;k=F[f+108>>2];d=F[f+104>>2];F[f+8>>2]=d;F[f+12>>2]=k;m=d-b|0;i=F[l+12>>2];d=k-((b>>>0>d>>>0)+e|0)|0;k=F[l+8>>2];if((i|0)==(d|0)&m>>>0>>0|d>>>0>>0){break o}d=e+i|0;k=b+k|0;d=k>>>0>>0?d+1|0:d;F[f+16>>2]=k;F[f+20>>2]=d;break p}if(!ge(f+80|0,f)){break n}}if(!bf(f)){break n}b=F[f+4>>2];F[g>>2]=F[f>>2];F[g+4>>2]=b;b=F[f+36>>2];F[g+32>>2]=F[f+32>>2];F[g+36>>2]=b;b=F[f+28>>2];F[g+24>>2]=F[f+24>>2];F[g+28>>2]=b;b=F[f+20>>2];F[g+16>>2]=F[f+16>>2];F[g+20>>2]=b;b=F[f+12>>2];F[g+8>>2]=F[f+8>>2];F[g+12>>2]=b;b=F[f+144>>2];b=H[(ja[F[F[b>>2]+32>>2]](b)|0)+36>>1];q:{if(((b<<8|b>>>8)&65535)>>>0<=513){b=F[f+144>>2];r:{if(G[(ja[F[F[b>>2]+32>>2]](b)|0)+36|0]<=1){b=F[g+20>>2];d=F[g+16>>2];e=d+4|0;b=e>>>0<4?b+1|0:b;k=F[g+12>>2];if((k|0)<=(b|0)&e>>>0>I[g+8>>2]|(b|0)>(k|0)){break n}d=d+F[g>>2]|0;d=G[d|0]|G[d+1|0]<<8|(G[d+2|0]<<16|G[d+3|0]<<24);F[g+16>>2]=e;F[g+20>>2]=b;break r}if(!Qe(1,l+8|0,g)){break n}d=F[l+8>>2]}b=F[f+152>>2];if(d>>>0>=b>>>0){break n}d=F[g+20>>2];k=F[g+12>>2];e=F[g+16>>2];if((d|0)>=(k|0)&e>>>0>=I[g+8>>2]|(d|0)>(k|0)){break n}k=G[e+F[g>>2]|0];e=e+1|0;d=e?d:d+1|0;F[g+16>>2]=e;F[g+20>>2]=d;if(k){break n}F[f+176>>2]=2;F[f+180>>2]=7;break q}F[f+176>>2]=2;F[f+180>>2]=7;b=F[f+152>>2]}if((b|0)<0){break n}F[l+8>>2]=0;j=2;k=F[f+156>>2];e=F[f+160>>2]-k>>2;s:{if(e>>>0>>0){gb(f+156|0,b-e|0,l+8|0);j=F[f+176>>2];d=F[f+180>>2];break s}d=7;if(b>>>0>=e>>>0){break s}F[f+160>>2]=k+(b<<2)}e=f+184|0;d=(d-j|0)+1|0;b=F[f+188>>2];j=F[f+184>>2];k=(b-j|0)/12|0;t:{if(d>>>0>k>>>0){j=0;d=d-k|0;i=F[e+8>>2];b=F[e+4>>2];u:{if(d>>>0<=(i-b|0)/12>>>0){if(d){j=b;b=L(d,12)-12|0;b=(b-((b>>>0)%12|0)|0)+12|0;b=Ti(j,0,b)+b|0}F[e+4>>2]=b;break u}v:{w:{x:{k=F[e>>2];h=(b-k|0)/12|0;m=h+d|0;if(m>>>0<357913942){i=(i-k|0)/12|0;x=i<<1;m=i>>>0<178956970?m>>>0>>0?x:m:357913941;if(m){if(m>>>0>=357913942){break x}j=rj(L(m,12))}h=L(h,12)+j|0;d=L(d,12)-12|0;i=(d-((d>>>0)%12|0)|0)+12|0;d=Ti(h,0,i);i=d+i|0;j=L(m,12)+j|0;if((b|0)==(k|0)){break w}while(1){h=h-12|0;b=b-12|0;F[h>>2]=F[b>>2];F[h+4>>2]=F[b+4>>2];F[h+8>>2]=F[b+8>>2];F[b+8>>2]=0;F[b>>2]=0;F[b+4>>2]=0;if((b|0)!=(k|0)){continue}break}F[e+8>>2]=j;d=F[e+4>>2];F[e+4>>2]=i;b=F[e>>2];F[e>>2]=h;if((b|0)==(d|0)){break v}while(1){j=d-12|0;k=F[j>>2];if(k){F[d-8>>2]=k;oj(k)}d=j;if((d|0)!=(b|0)){continue}break}break v}break b}Wa();V()}F[e+8>>2]=j;F[e+4>>2]=i;F[e>>2]=d}if(b){oj(b)}}d=F[f+188>>2];break t}if(d>>>0>=k>>>0){d=b;break t}d=j+L(d,12)|0;if((d|0)!=(b|0)){while(1){j=b-12|0;k=F[j>>2];if(k){F[b-8>>2]=k;oj(k)}b=j;if((d|0)!=(b|0)){continue}break}}F[f+188>>2]=d}m=f+196|0;j=F[f+184>>2];b=(d-j|0)/12|0;i=F[f+196>>2];k=F[f+200>>2]-i>>2;y:{if(b>>>0>k>>>0){La(m,b-k|0);j=F[f+184>>2];d=F[f+188>>2];break y}if(b>>>0>=k>>>0){break y}F[f+200>>2]=i+(b<<2)}if((d|0)==(j|0)){j=1;break n}b=0;while(1){if(!Qe(1,l+8|0,g)){break o}j=F[l+8>>2];d=F[f+148>>2];if(j>>>0>(F[d+4>>2]-F[d>>2]>>2>>>0)/3>>>0){break o}if(j){h=L(b,12);k=h+F[e>>2]|0;d=F[k>>2];i=F[k+4>>2]-d>>2;z:{if(i>>>0>>0){La(k,j-i|0);d=F[h+F[e>>2]>>2];break z}if(i>>>0<=j>>>0){break z}F[k+4>>2]=(j<<2)+d}oe(j,1,g,d);F[F[m>>2]+(b<<2)>>2]=j}j=1;b=b+1|0;if(b>>>0<(F[f+188>>2]-F[f+184>>2]|0)/12>>>0){continue}break}break n}j=0}fa=l+16|0;if(!j){break c}b=0;e=0;d=0;g=0;k=0;j=0;x=0;q=fa-96|0;fa=q;F[q+72>>2]=0;F[q+64>>2]=0;F[q+68>>2]=0;F[q+48>>2]=0;F[q+52>>2]=0;F[q+40>>2]=0;F[q+44>>2]=0;F[q+56>>2]=1065353216;F[q+32>>2]=0;F[q+24>>2]=0;F[q+28>>2]=0;i=a;J=F[a+124>>2];A:{B:{C:{D:{m=c;E:{if((c|0)<=0){break E}r=i+232|0;O=F[i+216>>2]!=F[i+220>>2];t=1;while(1){a=k;k=a+1|0;c=F[r+172>>2];F:{G:{if((c|0)!=-1){l=F[r+196>>2]+(c<<2)|0;n=F[l>>2];c=n-1|0;F[l>>2]=c;h=9;if((n|0)<=0){break F}c=F[F[F[r+184>>2]+L(F[r+172>>2],12)>>2]+(c<<2)>>2];if(c>>>0>4){break F}h=F[(c<<2)+12144>>2];break G}h=7;c=F[r+144>>2];c=H[(ja[F[F[c>>2]+32>>2]](c)|0)+36>>1];if(((c<<8|c>>>8)&65535)>>>0>513){break G}if(!G[r+76|0]){h=1;break G}h=0;n=F[r- -64>>2];l=F[r+72>>2];c=n+(l>>>3|0)|0;p=F[r+68>>2];if(c>>>0>=p>>>0){break G}o=G[c|0];c=l+1|0;F[r+72>>2]=c;if(!(o>>>(l&7)&1)){break G}o=c>>>3|0;h=n+o|0;H:{if(h>>>0>=p>>>0){h=c;c=0;break H}u=G[h|0];h=l+2|0;F[r+72>>2]=h;o=h>>>3|0;c=u>>>(c&7)&1}l=n+o|0;if(l>>>0

>>0){l=G[l|0];F[r+72>>2]=h+1;h=l>>>(h&7)<<1&2}else{h=0}h=(c|h)<<1|1}F[r+168>>2]=h}I:{J:{if(!h){if((d|0)==(g|0)){break D}b=-1;n=F[i+8>>2];o=F[n+24>>2];u=d-4|0;e=F[u>>2];c=-1;K:{if((e|0)==-1){break K}h=e+1|0;h=(h>>>0)%3|0?h:e-2|0;c=-1;if((h|0)==-1){break K}c=F[F[n>>2]+(h<<2)>>2]}l=F[o+(c<<2)>>2];if((l|0)!=-1){b=l+1|0;b=(b>>>0)%3|0?b:l-2|0}l=F[n+12>>2];h=L(a,3);a=h+1|0;F[l+(e<<2)>>2]=a;v=a<<2;F[v+l>>2]=e;p=h+2|0;F[l+(b<<2)>>2]=p;z=p<<2;F[z+l>>2]=b;t=-1;a=-1;L:{if((e|0)==-1){break L}M:{if((e>>>0)%3|0){l=e-1|0;break M}l=e+2|0;a=-1;if((l|0)==-1){break L}}a=F[F[n>>2]+(l<<2)>>2]}N:{if((b|0)==-1){break N}e=b+1|0;b=(e>>>0)%3|0?e:b-2|0;if((b|0)==-1){break N}t=F[F[n>>2]+(b<<2)>>2]}l=-1;if((a|0)==(c|0)|(c|0)==(t|0)){break C}b=F[n>>2];F[b+(h<<2)>>2]=c;F[b+v>>2]=t;F[b+z>>2]=a;if((a|0)!=-1){F[o+(a<<2)>>2]=p}a=F[i+120>>2]+(c>>>3&536870908)|0;b=F[a>>2];Q=a,R=bk(c)&b,F[Q>>2]=R;break J}l=-1;O:{P:{Q:{R:{S:{T:{U:{V:{switch(h-1|0){case 2:case 4:if((b|0)==(g|0)){break C}c=F[i+8>>2];o=F[c+12>>2];n=L(a,3);u=(h|0)==5;p=n+(u?2:1)|0;v=p<<2;z=b-4|0;e=F[z>>2];F[o+v>>2]=e;F[o+(e<<2)>>2]=p;cf(c+24|0);h=F[i+8>>2];o=F[h+24>>2];if((J|0)>2]-o>>2){break D}h=F[h>>2];P=h+v|0;v=F[c+28>>2];c=F[c+24>>2];K=(v-c>>2)-1|0;F[P>>2]=K;if((c|0)!=(v|0)){F[o+(K<<2)>>2]=p}p=u?n:n+2|0;v=h+(n+u<<2)|0;W:{if((e|0)==-1){F[h+(p<<2)>>2]=-1;c=-1;break W}X:{Y:{Z:{if((e>>>0)%3|0){c=e-1|0;break Z}c=e+2|0;if((c|0)==-1){break Y}}c=F[h+(c<<2)>>2];F[h+(p<<2)>>2]=c;if((c|0)==-1){break X}F[o+(c<<2)>>2]=p;break X}F[h+(p<<2)>>2]=-1}p=e+1|0;e=(p>>>0)%3|0?p:e-2|0;c=-1;if((e|0)==-1){break W}c=F[h+(e<<2)>>2]}F[v>>2]=c;F[z>>2]=n;break U;case 0:if((b|0)==(e|0)){break C}d=b-4|0;p=F[d>>2];F[q+68>>2]=d;o=F[q+44>>2];_:{if(!o){break _}c=F[q+40>>2];u=ak(o)>>>0>1;n=a&o+2147483647;$:{if(!u){break $}n=a;if(a>>>0>>0){break $}n=(a>>>0)%(o>>>0)|0}c=F[c+(n<<2)>>2];if(!c){break _}c=F[c>>2];if(!c){break _}aa:{if(!u){h=o-1|0;while(1){o=F[c+4>>2];ba:{if((o|0)!=(a|0)){if((n|0)==(h&o)){break ba}break _}if((a|0)==F[c+8>>2]){break aa}}c=F[c>>2];if(c){continue}break}break _}while(1){h=F[c+4>>2];ca:{if((h|0)!=(a|0)){if(h>>>0>=o>>>0){h=(h>>>0)%(o>>>0)|0}if((h|0)==(n|0)){break ca}break _}if((a|0)==F[c+8>>2]){break aa}}c=F[c>>2];if(c){continue}break}break _}if((d|0)!=(y|0)){F[d>>2]=F[c+12>>2];F[q+68>>2]=b;d=b;break _}b=y-e|0;h=b>>2;d=h+1|0;if(d>>>0>=1073741824){break b}g=b>>1;d=b>>>0<2147483644?d>>>0>>0?g:d:1073741823;if(d){if(d>>>0>=1073741824){break B}g=rj(d<<2)}else{g=0}h=g+(h<<2)|0;F[h>>2]=F[c+12>>2];y=(d<<2)+g|0;d=h+4|0;if((b|0)>0){Ri(g,e,b)}F[q+72>>2]=y;F[q+68>>2]=d;F[q+64>>2]=g;if(!e){break _}oj(e)}if((d|0)==(g|0)){break S}u=d-4|0;b=F[u>>2];c=(b|0)==-1;n=F[i+8>>2];if(!c&F[F[n+12>>2]+(b<<2)>>2]!=-1){break S}o=F[n+12>>2];if((p|0)!=-1&F[o+(p<<2)>>2]!=-1){break S}h=L(a,3);t=h+2|0;F[o+(b<<2)>>2]=t;a=t<<2;F[a+o>>2]=b;e=h+1|0;F[o+(p<<2)>>2]=e;v=e<<2;F[v+o>>2]=p;if(c){break R}if((b>>>0)%3|0){l=b-1|0;break Q}l=b+2|0;if((l|0)!=-1){break Q}e=F[n>>2];c=-1;break P;case 6:break V;default:break C}}h=F[i+8>>2];cf(h+24|0);c=F[i+8>>2];d=L(a,3);p=F[h+28>>2];o=F[h+24>>2];u=p-o|0;n=u>>2;v=n-1|0;F[F[c>>2]+(d<<2)>>2]=v;cf(c+24|0);z=d+1|0;F[F[c>>2]+(z<<2)>>2]=(F[c+28>>2]-F[c+24>>2]>>2)-1;c=F[i+8>>2];cf(c+24|0);K=d+2|0;F[F[c>>2]+(K<<2)>>2]=(F[c+28>>2]-F[c+24>>2]>>2)-1;c=F[i+8>>2];h=F[c+24>>2];if((J|0)>2]-h>>2){break D}da:{ea:{if((p|0)!=(o|0)){F[h+(v<<2)>>2]=d;c=0;if((u|0)==-4){break ea}}F[h+(n<<2)>>2]=z;c=n+1|0;if((c|0)==-1){break da}}F[h+(c<<2)>>2]=K}if((b|0)!=(y|0)){F[b>>2]=d;d=b+4|0;F[q+68>>2]=d;b=d;break T}b=b-e|0;h=b>>2;g=h+1|0;if(g>>>0>=1073741824){break b}c=b>>1;c=b>>>0<2147483644?c>>>0>g>>>0?c:g:1073741823;if(c){if(c>>>0>=1073741824){break B}g=rj(c<<2)}else{g=0}h=g+(h<<2)|0;F[h>>2]=d;y=(c<<2)+g|0;d=h+4|0;if((b|0)>0){Ri(g,e,b)}F[q+72>>2]=y;F[q+68>>2]=d;F[q+64>>2]=g;if(e){oj(e)}b=d}e=g}lf(r,F[b-4>>2]);c=F[i+40>>2];if((c|0)==F[i+36>>2]){break I}h=m+(a^-1)|0;n=d-4|0;while(1){a=c-12|0;p=F[a+4>>2];if(p>>>0>h>>>0){break S}if((h|0)!=(p|0)){break I}c=G[c-4|0];b=F[a>>2];F[i+40>>2]=a;if((b|0)<0){break S}a=F[n>>2];F[q+20>>2]=m+(b^-1);b=q+20|0;F[q+88>>2]=b;df(q,q+40|0,b,q+88|0);o=F[q>>2];fa:{if(c&1){b=-1;if((a|0)==-1){break fa}b=a+1|0;b=(b>>>0)%3|0?b:a-2|0;break fa}b=-1;if((a|0)==-1){break fa}b=a-1|0;if((a>>>0)%3|0){break fa}b=a+2|0}F[o+12>>2]=b;b=d;c=F[i+40>>2];if((c|0)!=F[i+36>>2]){continue}break}break I}if(t&1){break C}break E}c=-1;e=F[n>>2];F[e+(h<<2)>>2]=-1;l=-1;break O}e=F[n>>2];c=F[e+(l<<2)>>2]}F[(h<<2)+e>>2]=c;z=b+1|0;b=(z>>>0)%3|0?z:b-2|0;l=-1;if((b|0)==-1){break O}l=F[(b<<2)+e>>2]}F[e+v>>2]=l;ga:{if((p|0)==-1){F[a+e>>2]=-1;t=-1;l=-1;break ga}ha:{ia:{ja:{if((p>>>0)%3|0){l=p-1|0;break ja}l=p+2|0;if((l|0)==-1){break ia}}b=a+e|0;a=F[(l<<2)+e>>2];F[b>>2]=a;if((a|0)==-1){break ha}F[F[n+24>>2]+(a<<2)>>2]=t;break ha}F[a+e>>2]=-1}t=-1;a=p+1|0;a=(a>>>0)%3|0?a:p-2|0;l=-1;if((a|0)==-1){break ga}t=F[(a<<2)+e>>2];l=a}a=F[i+388>>2];b=c<<2;p=a+b|0;v=a;a=t<<2;F[p>>2]=F[p>>2]+F[v+a>>2];n=F[n+24>>2];a=n+a|0;if((c|0)!=-1){F[b+n>>2]=F[a>>2]}ka:{if((l|0)==-1){break ka}while(1){F[(l<<2)+e>>2]=c;b=l+1|0;b=(b>>>0)%3|0?b:l-2|0;if((b|0)==-1){break ka}b=F[o+(b<<2)>>2];if((b|0)==-1){break ka}l=b+1|0;l=(l>>>0)%3|0?l:b-2|0;if((l|0)!=-1){continue}break}}F[a>>2]=-1;la:{if(O){break la}if((x|0)!=(B|0)){F[x>>2]=t;x=x+4|0;F[q+28>>2]=x;break la}b=B-j|0;e=b>>2;a=e+1|0;if(a>>>0<1073741824){c=b>>1;c=b>>>0<2147483644?a>>>0>>0?c:a:1073741823;if(c){if(c>>>0>=1073741824){break B}a=rj(c<<2)}else{a=0}e=a+(e<<2)|0;F[e>>2]=t;B=a+(c<<2)|0;x=e+4|0;if((b|0)>0){Ri(a,j,b)}F[q+32>>2]=B;F[q+28>>2]=x;F[q+24>>2]=a;if(j){oj(j)}j=a;break la}break b}}F[u>>2]=h;lf(r,h);b=d;e=g}t=(k|0)<(m|0);if((k|0)!=(m|0)){continue}break}k=m}l=-1;b=F[i+8>>2];if((J|0)>2]-F[b+24>>2]>>2){break C}if((d|0)!=(g|0)){a=i+60|0;J=i+312|0;while(1){d=d-4|0;r=F[d>>2];F[q+68>>2]=d;ma:{na:{oa:{pa:{if(H[i+270>>1]<=513){if(!G[i+364|0]){break oa}b=F[i+360>>2];c=F[i+352>>2]+(b>>>3|0)|0;if(c>>>0>=I[i+356>>2]){break na}c=G[c|0];F[i+360>>2]=b+1;b=c>>>(b&7)&1;break pa}b=ie(J)}if(!b){break na}}o=F[i+8>>2];p=F[o>>2];if(((F[o+4>>2]-p>>2>>>0)/3|0)<=(k|0)){break D}c=-1;b=-1;h=F[o+24>>2];e=-1;qa:{if((r|0)==-1){break qa}n=r+1|0;n=(n>>>0)%3|0?n:r-2|0;e=-1;if((n|0)==-1){break qa}e=F[p+(n<<2)>>2]}n=e;e=F[h+(n<<2)>>2];ra:{if((e|0)==-1){break ra}m=e+1|0;e=(m>>>0)%3|0?m:e-2|0;if((e|0)==-1){break ra}c=e+1|0;c=(c>>>0)%3|0?c:e-2|0;if((c|0)!=-1){b=F[p+(c<<2)>>2]}c=e}e=-1;t=-1;h=F[h+(b<<2)>>2];m=-1;sa:{if((h|0)==-1){break sa}y=h+1|0;h=(y>>>0)%3|0?y:h-2|0;m=-1;if((h|0)==-1){break sa}m=h+1|0;m=(m>>>0)%3|0?m:h-2|0;if((m|0)!=-1){t=F[p+(m<<2)>>2]}m=h}h=F[o+12>>2];o=L(k,3);B=o<<2;F[h+B>>2]=r;F[h+(r<<2)>>2]=o;r=o+1|0;u=r<<2;F[u+h>>2]=c;F[h+(c<<2)>>2]=r;y=o+2|0;c=y<<2;F[c+h>>2]=m;F[h+(m<<2)>>2]=y;F[p+B>>2]=b;m=p+u|0;F[m>>2]=t;h=c+p|0;F[h>>2]=n;c=r?b:-1;b=F[i+120>>2];n=(c>>>3&536870908)+b|0;t=F[n>>2];Q=n,R=bk(c)&t,F[Q>>2]=R;e=(r|0)!=-1?F[m>>2]:e;c=b+(e>>>3&536870908)|0;m=F[c>>2];Q=c,R=bk(e)&m,F[Q>>2]=R;c=-1;c=(y|0)!=-1?F[h>>2]:c;b=b+(c>>>3&536870908)|0;e=F[b>>2];Q=b,R=bk(c)&e,F[Q>>2]=R;c=F[i+64>>2];b=F[i+68>>2];if((c|0)==b<<5){if((c+1|0)<0){break b}if(c>>>0<=1073741822){b=b<<6;c=c+32&-32;b=b>>>0>c>>>0?b:c}else{b=2147483647}Jc(a,b);c=F[i+64>>2]}k=k+1|0;F[i+64>>2]=c+1;b=F[i+60>>2]+(c>>>3&536870908)|0;F[b>>2]=F[b>>2]|1<>2];if((b|0)!=F[i+80>>2]){F[b>>2]=o;F[i+76>>2]=b+4;break ma}e=F[i+72>>2];c=b-e|0;h=c>>2;b=h+1|0;if(b>>>0>=1073741824){break b}m=c>>1;m=c>>>0<2147483644?b>>>0>>0?m:b:1073741823;if(m){if(m>>>0>=1073741824){break B}b=rj(m<<2)}else{b=0}h=b+(h<<2)|0;F[h>>2]=o;if((c|0)>0){Ri(b,e,c)}F[i+80>>2]=b+(m<<2);F[i+76>>2]=h+4;F[i+72>>2]=b;if(!e){break ma}oj(e);break ma}h=F[i+64>>2];b=F[i+68>>2];if((h|0)==b<<5){if((h+1|0)<0){break b}if(h>>>0<=1073741822){b=b<<6;c=h+32&-32;b=b>>>0>c>>>0?b:c}else{b=2147483647}Jc(a,b);h=F[i+64>>2]}F[i+64>>2]=h+1;b=F[i+60>>2]+(h>>>3&536870908)|0;c=F[b>>2];Q=b,R=bk(h)&c,F[Q>>2]=R;b=F[i+76>>2];if((b|0)!=F[i+80>>2]){F[b>>2]=r;F[i+76>>2]=b+4;break ma}e=F[i+72>>2];c=b-e|0;h=c>>2;b=h+1|0;if(b>>>0>=1073741824){break b}m=c>>1;m=c>>>0<2147483644?b>>>0>>0?m:b:1073741823;if(m){if(m>>>0>=1073741824){break B}b=rj(m<<2)}else{b=0}h=b+(h<<2)|0;F[h>>2]=r;if((c|0)>0){Ri(b,e,c)}F[i+80>>2]=b+(m<<2);F[i+76>>2]=h+4;F[i+72>>2]=b;if(!e){break ma}oj(e)}if((d|0)!=(g|0)){continue}break}b=F[i+8>>2]}if(((F[b+4>>2]-F[b>>2]>>2>>>0)/3|0)!=(k|0)){break C}l=F[b+28>>2]-F[b+24>>2]>>2;if((j|0)==(x|0)){j=x;break C}e=j;while(1){a=F[e>>2];c=F[b+24>>2];d=l-1|0;k=c+(d<<2)|0;if(F[k>>2]==-1){while(1){d=l-2|0;l=l-1|0;k=c+(d<<2)|0;if(F[k>>2]==-1){continue}break}}if(a>>>0<=d>>>0){F[q>>2]=b;k=F[k>>2];D[q+12|0]=1;F[q+8>>2]=k;F[q+4>>2]=k;if((k|0)!=-1){while(1){b=F[F[i+8>>2]>>2]+(k<<2)|0;if(F[b>>2]!=(d|0)){break D}F[b>>2]=a;vd(q);k=F[q+8>>2];if((k|0)!=-1){continue}break}b=F[i+8>>2]}k=F[b+24>>2];c=k+(d<<2)|0;if((a|0)!=-1){F[k+(a<<2)>>2]=F[c>>2]}F[c>>2]=-1;c=1<>2];a=k+(a>>>3&536870908)|0;k=k+(d>>>3&536870908)|0;d=1<>2]&d){c=c|F[a>>2]}else{c=F[a>>2]&(c^-1)}F[a>>2]=c;F[k>>2]=F[k>>2]&(d^-1);l=l-1|0}e=e+4|0;if((x|0)!=(e|0)){continue}break}break C}l=-1}if(j){oj(j)}a=F[q+48>>2];if(a){while(1){b=F[a>>2];oj(a);a=b;if(b){continue}break}}a=F[q+40>>2];F[q+40>>2]=0;if(a){oj(a)}if(g){F[q+68>>2]=g;oj(g)}fa=q+96|0;break A}Wa();V()}if((l|0)==-1){break c}a=F[M+16>>2];b=a+F[M>>2]|0;d=F[M+8>>2];d=d-a|0;a=F[F[i+4>>2]+32>>2];E[a+38>>1]=H[a+38>>1];F[a>>2]=b;F[a+16>>2]=0;F[a+20>>2]=0;F[a+8>>2]=d;F[a+12>>2]=0;a=F[i+4>>2];b=H[a+36>>1];g=b<<8|b>>>8;if((g&65535)>>>0<=513){a=F[a+32>>2];d=N+F[a+20>>2]|0;b=A+F[a+16>>2]|0;d=b>>>0>>0?d+1|0:d;F[a+16>>2]=b;F[a+20>>2]=d}ta:{if(F[i+216>>2]==F[i+220>>2]){break ta}b=F[i+8>>2];a=F[b>>2];b=F[b+4>>2];ua:{if((g&65535)>>>0>=513){if((a|0)==(b|0)){break ta}b=0;break ua}if((a|0)==(b|0)){break ta}b=0;while(1){if(Xe(i,b)){b=b+3|0;a=F[i+8>>2];if(b>>>0>2]-F[a>>2]>>2>>>0){continue}break ta}break}break c}while(1){if(Ye(i,b)){b=b+3|0;a=F[i+8>>2];if(b>>>0>2]-F[a>>2]>>2>>>0){continue}break ta}break}break c}Ze(f);b=F[i+216>>2];if((b|0)==F[i+220>>2]){break d}c=0;while(1){d=L(c,144);yi((d+b|0)+4|0,F[i+8>>2]);a=F[C>>2];g=a+d|0;b=F[g+132>>2];g=F[g+136>>2];if((b|0)!=(g|0)){while(1){Ai((d+F[C>>2]|0)+4|0,F[b>>2]);b=b+4|0;if((g|0)!=(b|0)){continue}break}a=F[C>>2]}zi((a+d|0)+4|0);c=c+1|0;b=F[i+216>>2];if(c>>>0<(F[i+220>>2]-b|0)/144>>>0){continue}break}break d}w=0;break c}a=F[i+8>>2];_e(i+184|0,F[a+28>>2]-F[a+24>>2]>>2);w=F[i+216>>2];if((w|0)!=F[i+220>>2]){b=0;while(1){a=L(b,144)+w|0;d=F[a+60>>2]-F[a+56>>2]>>2;e=a+104|0;a=F[i+8>>2];a=F[a+28>>2]-F[a+24>>2]>>2;_e(e,(a|0)<(d|0)?d:a);b=b+1|0;w=F[i+216>>2];if(b>>>0<(F[i+220>>2]-w|0)/144>>>0){continue}break}}w=$e(i,l)}fa=s- -64|0;return w|0}Ia();V()}function gf(a){a=a|0;var b=0,c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,J=0,K=0,M=0,N=0,O=0,P=0,Q=0,R=0;r=fa+-64|0;fa=r;F[a+132>>2]=0;if(F[a+148>>2]){b=F[a+144>>2];if(b){while(1){c=F[b>>2];oj(b);b=c;if(b){continue}break}}b=0;F[a+144>>2]=0;c=F[a+140>>2];a:{if(!c){break a}if(c-1>>>0>=3){f=c&-4;while(1){e=b<<2;F[e+F[a+136>>2]>>2]=0;F[F[a+136>>2]+(e|4)>>2]=0;F[F[a+136>>2]+(e|8)>>2]=0;F[F[a+136>>2]+(e|12)>>2]=0;b=b+4|0;j=j+4|0;if((f|0)!=(j|0)){continue}break}}c=c&3;if(!c){break a}while(1){F[F[a+136>>2]+(b<<2)>>2]=0;b=b+1|0;u=u+1|0;if((c|0)!=(u|0)){continue}break}}F[a+148>>2]=0}b:{c:{d:{b=F[a+4>>2];u=G[b+36|0];e=u<<8|G[b+37|0];if(e>>>0<=513){c=F[b+32>>2];e:{if(e>>>0<=511){e=F[c+20>>2];f=F[c+16>>2];j=f+4|0;e=j>>>0<4?e+1|0:e;d=j;j=F[c+12>>2];if(d>>>0>I[c+8>>2]&(j|0)<=(e|0)|(e|0)>(j|0)){break d}f=f+F[c>>2]|0;j=G[f|0]|G[f+1|0]<<8|(G[f+2|0]<<16|G[f+3|0]<<24);F[c+16>>2]=d;F[c+20>>2]=e;break e}if(!Qe(1,r,c)){break d}b=F[a+4>>2];u=G[b+36|0];j=F[r>>2]}F[a+132>>2]=j}c=F[b+32>>2];f:{g:{h:{if((u&255)>>>0<=1){u=0;e=F[c+20>>2];f=F[c+16>>2];j=f+4|0;e=j>>>0<4?e+1|0:e;d=F[c+12>>2];if((d|0)<=(e|0)&j>>>0>I[c+8>>2]|(d|0)<(e|0)){break b}f=f+F[c>>2]|0;f=G[f|0]|G[f+1|0]<<8|(G[f+2|0]<<16|G[f+3|0]<<24);F[r+60>>2]=f;F[c+16>>2]=j;F[c+20>>2]=e;F[a+156>>2]=f;c=a+156|0;break h}u=0;if(!Qe(1,r+60|0,c)){break b}b=F[a+4>>2];e=G[b+36|0];F[a+156>>2]=F[r+60>>2];c=a+156|0;if(e>>>0>1){break g}}e=F[b+32>>2];b=F[e+8>>2];f=F[e+12>>2];i=b;b=F[e+20>>2];j=F[e+16>>2];d=j+4|0;b=d>>>0<4?b+1|0:b;if(i>>>0>>0&(b|0)>=(f|0)|(b|0)>(f|0)){break b}f=j+F[e>>2]|0;j=G[f|0]|G[f+1|0]<<8|(G[f+2|0]<<16|G[f+3|0]<<24);F[r+56>>2]=j;F[e+16>>2]=d;F[e+20>>2]=b;break f}if(!Qe(1,r+56|0,F[b+32>>2])){break b}j=F[r+56>>2]}if(j>>>0>1431655765|I[c>>2]>L(j,3)>>>0){break b}o=F[a+4>>2];e=F[o+32>>2];i=F[e+8>>2];c=i;f=F[e+12>>2];b=F[e+20>>2];d=F[e+16>>2];if((f|0)<=(b|0)&d>>>0>=c>>>0|(b|0)>(f|0)){break b}m=F[e>>2];h=G[m+d|0];y=d+1|0;c=y?b:b+1|0;F[e+16>>2]=y;F[e+20>>2]=c;i:{if(G[o+36|0]<=1){c=f;f=d+5|0;b=f>>>0<5?b+1|0:b;if(f>>>0>i>>>0&(b|0)>=(c|0)|(b|0)>(c|0)){break b}c=m+y|0;c=G[c|0]|G[c+1|0]<<8|(G[c+2|0]<<16|G[c+3|0]<<24);F[r+52>>2]=c;F[e+16>>2]=f;F[e+20>>2]=b;break i}if(!Qe(1,r+52|0,e)){break b}c=F[r+52>>2]}if(((c>>>0)/3|0)+c>>>0>>0|c>>>0>j>>>0){break b}b=F[a+4>>2];e=F[b+32>>2];j:{if(G[b+36|0]<=1){b=F[e+20>>2];f=F[e+16>>2];d=f+4|0;b=d>>>0<4?b+1|0:b;o=F[e+12>>2];if((o|0)<=(b|0)&d>>>0>I[e+8>>2]|(b|0)>(o|0)){break b}f=f+F[e>>2]|0;f=G[f|0]|G[f+1|0]<<8|(G[f+2|0]<<16|G[f+3|0]<<24);F[r+48>>2]=f;F[e+16>>2]=d;F[e+20>>2]=b;break j}if(!Qe(1,r+48|0,e)){break b}f=F[r+48>>2]}if(c>>>0>>0){break b}F[a+28>>2]=F[a+24>>2];e=qi(rj(88));b=F[a+8>>2];F[a+8>>2]=e;if(b){Re(b);if(!F[a+8>>2]){break b}}F[a+164>>2]=F[a+160>>2];Se(a+160|0,j);F[a+176>>2]=F[a+172>>2];Se(a+172|0,j);F[a- -64>>2]=0;F[a+92>>2]=-1;F[a+84>>2]=-1;F[a+88>>2]=-1;F[a+40>>2]=F[a+36>>2];F[a+52>>2]=F[a+48>>2];F[a+76>>2]=F[a+72>>2];J=a+216|0;Te(J);Ue(J,h);if(!ri(F[a+8>>2],j,F[a+156>>2]+f|0)){break b}b=F[a+156>>2];D[r|0]=1;Ne(a+120|0,b+f|0,r);b=F[a+4>>2];e=H[b+36>>1];e=(e<<8|e>>>8)&65535;k:{if(e>>>0<=513){b=F[b+32>>2];l:{if(e>>>0<=511){e=F[b+20>>2];j=F[b+16>>2];d=j+4|0;e=d>>>0<4?e+1|0:e;o=F[b+12>>2];if((o|0)<=(e|0)&d>>>0>I[b+8>>2]|(e|0)>(o|0)){break b}j=j+F[b>>2]|0;j=G[j|0]|G[j+1|0]<<8|(G[j+2|0]<<16|G[j+3|0]<<24);F[b+16>>2]=d;F[b+20>>2]=e;break l}if(!Qe(1,r+44|0,b)){break b}j=F[r+44>>2]}if(!j){break b}b=F[F[a+4>>2]+32>>2];e=F[b+8>>2];d=F[b+16>>2];o=e-d|0;b=F[b+12>>2]-(F[b+20>>2]+(d>>>0>e>>>0)|0)|0;if((b|0)<=0&j>>>0>o>>>0|(b|0)<0){break b}e=ng(r);d=F[F[a+4>>2]+32>>2];b=F[d+16>>2];o=(b+F[d>>2]|0)+j|0;i=F[d+8>>2];b=(i-b|0)-j|0;E[e+38>>1]=H[d+38>>1];F[e>>2]=o;F[e+16>>2]=0;F[e+20>>2]=0;F[e+8>>2]=b;F[e+12>>2]=0;y=Ve(a,e);if((y|0)==-1){break b}O=y>>31;break k}y=-1;O=-1;if((Ve(a,F[b+32>>2])|0)==-1){break b}}z=a+232|0;hf(z,a);F[a+372>>2]=h;F[a+384>>2]=F[a+156>>2]+f;M=ng(r);b=M;h=0;f=fa-16|0;fa=f;m:{if(!We(z,b)){break m}e=F[b+20>>2];j=F[b+16>>2];d=j+4|0;e=d>>>0<4?e+1|0:e;o=F[b+12>>2];if((o|0)<=(e|0)&d>>>0>I[b+8>>2]|(e|0)>(o|0)){break m}j=j+F[b>>2]|0;j=G[j|0]|G[j+1|0]<<8|(G[j+2|0]<<16|G[j+3|0]<<24);F[b+16>>2]=d;F[b+20>>2]=e;if((j|0)<0){break m}e=F[z+152>>2];if((e|0)<=(j|0)){break m}F[f+12>>2]=0;d=F[z+156>>2];j=F[z+160>>2]-d>>2;n:{if(j>>>0>>0){gb(z+156|0,e-j|0,f+12|0);break n}if(e>>>0>=j>>>0){break n}F[z+160>>2]=d+(e<<2)}h=ge(z+168|0,b)}fa=f+16|0;if(!h){break b}b=0;f=0;h=0;o=0;e=0;j=0;n=fa-96|0;fa=n;F[n+72>>2]=0;F[n+64>>2]=0;F[n+68>>2]=0;F[n+48>>2]=0;F[n+52>>2]=0;F[n+40>>2]=0;F[n+44>>2]=0;F[n+56>>2]=1065353216;F[n+32>>2]=0;F[n+24>>2]=0;F[n+28>>2]=0;d=a;x=F[a+124>>2];o:{p:{q:{r:{s:{t:{m=c;u:{if((c|0)<=0){break u}N=d+400|0;K=d+232|0;P=F[d+216>>2]!=F[d+220>>2];q=1;while(1){i=o;o=i+1|0;v:{w:{x:{y:{z:{if(F[d+420>>2]!=-1){if(ie(N)){break z}}if(G[d+308|0]){g=F[d+296>>2];c=F[d+304>>2];a=g+(c>>>3|0)|0;k=F[d+300>>2];if(a>>>0>=k>>>0){break y}l=G[a|0];a=c+1|0;F[d+304>>2]=a;if(!(l>>>(c&7)&1)){break y}l=a>>>3|0;p=g+l|0;A:{if(p>>>0>=k>>>0){c=a;a=0;break A}p=G[p|0];c=c+2|0;F[d+304>>2]=c;l=c>>>3|0;a=p>>>(a&7)&1}g=g+l|0;if(g>>>0>>0){g=G[g|0];F[d+304>>2]=c+1;c=g>>>(c&7)<<1&2}else{c=0}a=(a|c)<<1|1}else{a=1}F[d+416>>2]=a;break w}a=F[d+420>>2];F[d+416>>2]=a;if(a){break w}break x}F[d+416>>2]=0}if((b|0)==(h|0)){break t}a=-1;k=F[d+8>>2];s=F[k+24>>2];v=b-4|0;c=F[v>>2];g=-1;B:{if((c|0)==-1){break B}q=c+1|0;q=(q>>>0)%3|0?q:c-2|0;g=-1;if((q|0)==-1){break B}g=F[F[k>>2]+(q<<2)>>2]}l=F[s+(g<<2)>>2];if((l|0)!=-1){a=l+1|0;a=(a>>>0)%3|0?a:l-2|0}q=F[k+12>>2];l=L(i,3);i=l+1|0;F[q+(c<<2)>>2]=i;w=i<<2;F[w+q>>2]=c;p=l+2|0;F[q+(a<<2)>>2]=p;B=p<<2;F[B+q>>2]=a;q=-1;i=-1;C:{if((c|0)==-1){break C}D:{if((c>>>0)%3|0){c=c-1|0;break D}c=c+2|0;i=-1;if((c|0)==-1){break C}}i=F[F[k>>2]+(c<<2)>>2]}E:{if((a|0)==-1){break E}c=a+1|0;a=(c>>>0)%3|0?c:a-2|0;if((a|0)==-1){break E}q=F[F[k>>2]+(a<<2)>>2]}c=-1;if((g|0)==(i|0)|(g|0)==(q|0)){break s}a=F[k>>2];F[a+(l<<2)>>2]=g;F[a+w>>2]=q;F[a+B>>2]=i;if((i|0)!=-1){F[s+(i<<2)>>2]=p}a=F[d+120>>2]+(g>>>3&536870908)|0;c=F[a>>2];Q=a,R=bk(g)&c,F[Q>>2]=R;F[v>>2]=l;jf(K,l);break v}c=-1;F:{G:{H:{I:{J:{K:{L:{M:{N:{O:{switch(a-1|0){case 2:case 4:if((b|0)==(e|0)){break s}k=F[d+8>>2];h=F[k+12>>2];g=L(i,3);a=(a|0)==5;p=g+(a?2:1)|0;s=p<<2;v=b-4|0;b=F[v>>2];F[h+s>>2]=b;F[h+(b<<2)>>2]=p;cf(k+24|0);h=F[d+8>>2];l=F[h+24>>2];if((x|0)>2]-l>>2){break t}h=F[h>>2];B=h+s|0;s=F[k+28>>2];k=F[k+24>>2];w=(s-k>>2)-1|0;F[B>>2]=w;if((k|0)!=(s|0)){F[l+(w<<2)>>2]=p}k=a?g:g+2|0;s=h+(a+g<<2)|0;P:{if((b|0)==-1){F[h+(k<<2)>>2]=-1;a=-1;break P}Q:{R:{S:{if((b>>>0)%3|0){a=b-1|0;break S}a=b+2|0;if((a|0)==-1){break R}}a=F[h+(a<<2)>>2];F[h+(k<<2)>>2]=a;if((a|0)==-1){break Q}F[l+(a<<2)>>2]=k;break Q}F[h+(k<<2)>>2]=-1}k=b+1|0;b=(k>>>0)%3|0?k:b-2|0;a=-1;if((b|0)==-1){break P}a=F[h+(b<<2)>>2]}F[s>>2]=a;F[v>>2]=g;break N;case 0:if((b|0)==(h|0)){break s}f=b-4|0;l=F[f>>2];F[n+68>>2]=f;p=F[n+44>>2];T:{if(!p){break T}g=F[n+40>>2];s=ak(p)>>>0>1;a=i&p+2147483647;U:{if(!s){break U}a=i;if(a>>>0

>>0){break U}a=(i>>>0)%(p>>>0)|0}k=a;a=F[g+(k<<2)>>2];if(!a){break T}a=F[a>>2];if(!a){break T}V:{if(!s){g=p-1|0;while(1){p=F[a+4>>2];W:{if((p|0)!=(i|0)){if((k|0)==(g&p)){break W}break T}if((i|0)==F[a+8>>2]){break V}}a=F[a>>2];if(a){continue}break}break T}while(1){g=F[a+4>>2];X:{if((g|0)!=(i|0)){if(g>>>0>=p>>>0){g=(g>>>0)%(p>>>0)|0}if((g|0)==(k|0)){break X}break T}if((i|0)==F[a+8>>2]){break V}}a=F[a>>2];if(a){continue}break}break T}if((f|0)!=(t|0)){F[f>>2]=F[a+12>>2];F[n+68>>2]=b;f=b;break T}b=t-h|0;g=b>>2;e=g+1|0;if(e>>>0>=1073741824){break K}f=b>>1;f=b>>>0<2147483644?e>>>0>>0?f:e:1073741823;if(f){if(f>>>0>=1073741824){break r}e=rj(f<<2)}else{e=0}g=e+(g<<2)|0;F[g>>2]=F[a+12>>2];t=(f<<2)+e|0;f=g+4|0;if((b|0)>0){Ri(e,h,b)}F[n+72>>2]=t;F[n+68>>2]=f;F[n+64>>2]=e;if(!h){break T}oj(h)}if((e|0)==(f|0)){break L}s=f-4|0;h=F[s>>2];a=(h|0)==-1;g=F[d+8>>2];if(!a&F[F[g+12>>2]+(h<<2)>>2]!=-1){break L}k=F[g+12>>2];if((l|0)!=-1&F[k+(l<<2)>>2]!=-1){break L}q=L(i,3);p=q+2|0;F[k+(h<<2)>>2]=p;i=p<<2;F[i+k>>2]=h;b=q+1|0;F[k+(l<<2)>>2]=b;v=b<<2;F[v+k>>2]=l;if(a){break J}if((h>>>0)%3|0){c=h-1|0;break H}c=h+2|0;if((c|0)!=-1){break H}b=F[g>>2];a=-1;break G;case 6:break O;default:break s}}g=F[d+8>>2];cf(g+24|0);a=F[d+8>>2];f=L(i,3);l=F[g+28>>2];p=F[g+24>>2];s=l-p|0;k=s>>2;v=k-1|0;F[F[a>>2]+(f<<2)>>2]=v;cf(a+24|0);w=f+1|0;F[F[a>>2]+(w<<2)>>2]=(F[a+28>>2]-F[a+24>>2]>>2)-1;a=F[d+8>>2];cf(a+24|0);B=f+2|0;F[F[a>>2]+(B<<2)>>2]=(F[a+28>>2]-F[a+24>>2]>>2)-1;a=F[d+8>>2];g=F[a+24>>2];if((x|0)>2]-g>>2){break t}Y:{Z:{if((l|0)!=(p|0)){F[g+(v<<2)>>2]=f;a=0;if((s|0)==-4){break Z}}F[g+(k<<2)>>2]=w;a=k+1|0;if((a|0)==-1){break Y}}F[g+(a<<2)>>2]=B}if((b|0)!=(t|0)){F[b>>2]=f;f=b+4|0;F[n+68>>2]=f;break M}a=t-h|0;g=a>>2;b=g+1|0;if(b>>>0>=1073741824){break I}e=a>>1;b=a>>>0<2147483644?b>>>0>>0?e:b:1073741823;if(b){if(b>>>0>=1073741824){break r}e=rj(b<<2)}else{e=0}g=e+(g<<2)|0;F[g>>2]=f;t=(b<<2)+e|0;f=g+4|0;if((a|0)>0){Ri(e,h,a)}F[n+72>>2]=t;F[n+68>>2]=f;F[n+64>>2]=e;if(!h){break N}oj(h)}h=e}jf(K,F[f-4>>2]);a=F[d+40>>2];_:{if((a|0)==F[d+36>>2]){break _}i=m+(i^-1)|0;k=f-4|0;while(1){b=a-12|0;g=F[b+4>>2];if(g>>>0>i>>>0){break L}if((g|0)!=(i|0)){break _}l=G[a-4|0];g=F[b>>2];F[d+40>>2]=b;if((g|0)<0){break L}a=F[k>>2];F[n+20>>2]=m+(g^-1);b=n+20|0;F[n+88>>2]=b;df(n,n+40|0,b,n+88|0);g=F[n>>2];$:{if(l&1){b=-1;if((a|0)==-1){break $}b=a+1|0;b=(b>>>0)%3|0?b:a-2|0;break $}b=-1;if((a|0)==-1){break $}b=a-1|0;if((a>>>0)%3|0){break $}b=a+2|0}F[g+12>>2]=b;a=F[d+40>>2];if((a|0)!=F[d+36>>2]){continue}break}}b=f;break v}if(q&1){break s}break u}Ia();V()}a=-1;b=F[g>>2];F[b+(q<<2)>>2]=-1;c=-1;break F}Ia();V()}b=F[g>>2];a=F[b+(c<<2)>>2]}F[(q<<2)+b>>2]=a;w=h+1|0;h=(w>>>0)%3|0?w:h-2|0;c=-1;if((h|0)==-1){break F}c=F[(h<<2)+b>>2]}F[b+v>>2]=c;aa:{if((l|0)==-1){F[b+i>>2]=-1;h=-1;c=-1;break aa}ba:{ca:{da:{if((l>>>0)%3|0){c=l-1|0;break da}c=l+2|0;if((c|0)==-1){break ca}}c=F[(c<<2)+b>>2];F[b+i>>2]=c;if((c|0)==-1){break ba}F[F[g+24>>2]+(c<<2)>>2]=p;break ba}F[b+i>>2]=-1}h=-1;i=l+1|0;i=(i>>>0)%3|0?i:l-2|0;c=-1;if((i|0)==-1){break aa}h=F[(i<<2)+b>>2];c=i}i=F[d+388>>2];l=a<<2;p=i+l|0;v=i;i=h<<2;F[p>>2]=F[p>>2]+F[v+i>>2];g=F[g+24>>2];i=g+i|0;if((a|0)!=-1){F[g+l>>2]=F[i>>2]}ea:{if((c|0)==-1){break ea}while(1){F[(c<<2)+b>>2]=a;g=c+1|0;c=(g>>>0)%3|0?g:c-2|0;if((c|0)==-1){break ea}c=F[k+(c<<2)>>2];if((c|0)==-1){break ea}g=c+1|0;c=(g>>>0)%3|0?g:c-2|0;if((c|0)!=-1){continue}break}}F[i>>2]=-1;fa:{if(P){break fa}if((A|0)!=(C|0)){F[A>>2]=h;A=A+4|0;F[n+28>>2]=A;break fa}b=C-j|0;i=b>>2;a=i+1|0;if(a>>>0<1073741824){c=b>>1;c=b>>>0<2147483644?a>>>0>>0?c:a:1073741823;if(c){if(c>>>0>=1073741824){break r}a=rj(c<<2)}else{a=0}i=a+(i<<2)|0;F[i>>2]=h;C=a+(c<<2)|0;A=i+4|0;if((b|0)>0){Ri(a,j,b)}F[n+32>>2]=C;F[n+28>>2]=A;F[n+24>>2]=a;if(j){oj(j)}j=a;break fa}Ia();V()}F[s>>2]=q;b=f;h=e;jf(K,q)}q=(o|0)<(m|0);if((o|0)!=(m|0)){continue}break}o=m}c=-1;b=F[d+8>>2];if((x|0)>2]-F[b+24>>2]>>2){break s}if((e|0)!=(f|0)){i=d+60|0;K=d+312|0;while(1){f=f-4|0;l=F[f>>2];F[n+68>>2]=f;ga:{ha:{ia:{ja:{if(H[d+270>>1]<=513){if(!G[d+364|0]){break ia}a=F[d+360>>2];b=F[d+352>>2]+(a>>>3|0)|0;if(b>>>0>=I[d+356>>2]){break ha}b=G[b|0];F[d+360>>2]=a+1;a=b>>>(a&7)&1;break ja}a=ie(K)}if(!a){break ha}}t=F[d+8>>2];p=F[t>>2];if(((F[t+4>>2]-p>>2>>>0)/3|0)<=(o|0)){break t}a=-1;b=-1;g=F[t+24>>2];h=-1;ka:{if((l|0)==-1){break ka}k=l+1|0;k=(k>>>0)%3|0?k:l-2|0;h=-1;if((k|0)==-1){break ka}h=F[p+(k<<2)>>2]}k=h;h=F[g+(k<<2)>>2];la:{if((h|0)==-1){break la}m=h+1|0;h=(m>>>0)%3|0?m:h-2|0;if((h|0)==-1){break la}a=h+1|0;a=(a>>>0)%3|0?a:h-2|0;if((a|0)!=-1){b=F[p+(a<<2)>>2]}a=h}h=-1;q=-1;g=F[g+(b<<2)>>2];m=-1;ma:{if((g|0)==-1){break ma}x=g+1|0;g=(x>>>0)%3|0?x:g-2|0;m=-1;if((g|0)==-1){break ma}m=g+1|0;m=(m>>>0)%3|0?m:g-2|0;if((m|0)!=-1){q=F[p+(m<<2)>>2]}m=g}g=F[t+12>>2];t=L(o,3);C=t<<2;F[g+C>>2]=l;F[g+(l<<2)>>2]=t;l=t+1|0;N=l<<2;F[N+g>>2]=a;F[g+(a<<2)>>2]=l;x=t+2|0;a=x<<2;F[a+g>>2]=m;F[g+(m<<2)>>2]=x;F[p+C>>2]=b;m=p+N|0;F[m>>2]=q;g=a+p|0;F[g>>2]=k;a=l?b:-1;b=F[d+120>>2];k=(a>>>3&536870908)+b|0;q=F[k>>2];Q=k,R=bk(a)&q,F[Q>>2]=R;h=(l|0)!=-1?F[m>>2]:h;a=b+(h>>>3&536870908)|0;m=F[a>>2];Q=a,R=bk(h)&m,F[Q>>2]=R;a=-1;a=(x|0)!=-1?F[g>>2]:a;b=b+(a>>>3&536870908)|0;h=F[b>>2];Q=b,R=bk(a)&h,F[Q>>2]=R;a=F[d+64>>2];b=F[d+68>>2];if((a|0)==b<<5){if((a+1|0)<0){break q}if(a>>>0<=1073741822){b=b<<6;a=a+32&-32;a=a>>>0>>0?b:a}else{a=2147483647}Jc(i,a);a=F[d+64>>2]}o=o+1|0;F[d+64>>2]=a+1;b=F[d+60>>2]+(a>>>3&536870908)|0;F[b>>2]=F[b>>2]|1<>2];if((a|0)!=F[d+80>>2]){F[a>>2]=t;F[d+76>>2]=a+4;break ga}h=F[d+72>>2];b=a-h|0;g=b>>2;a=g+1|0;if(a>>>0>=1073741824){break p}m=b>>1;m=b>>>0<2147483644?a>>>0>>0?m:a:1073741823;if(m){if(m>>>0>=1073741824){break r}a=rj(m<<2)}else{a=0}g=a+(g<<2)|0;F[g>>2]=t;if((b|0)>0){Ri(a,h,b)}F[d+80>>2]=a+(m<<2);F[d+76>>2]=g+4;F[d+72>>2]=a;if(!h){break ga}oj(h);break ga}b=F[d+64>>2];a=F[d+68>>2];if((b|0)==a<<5){if((b+1|0)<0){break q}if(b>>>0<=1073741822){a=a<<6;b=b+32&-32;a=a>>>0>b>>>0?a:b}else{a=2147483647}Jc(i,a);b=F[d+64>>2]}F[d+64>>2]=b+1;a=F[d+60>>2]+(b>>>3&536870908)|0;h=F[a>>2];Q=a,R=bk(b)&h,F[Q>>2]=R;a=F[d+76>>2];if((a|0)!=F[d+80>>2]){F[a>>2]=l;F[d+76>>2]=a+4;break ga}h=F[d+72>>2];b=a-h|0;g=b>>2;a=g+1|0;if(a>>>0>=1073741824){break p}m=b>>1;m=b>>>0<2147483644?a>>>0>>0?m:a:1073741823;if(m){if(m>>>0>=1073741824){break r}a=rj(m<<2)}else{a=0}g=a+(g<<2)|0;F[g>>2]=l;if((b|0)>0){Ri(a,h,b)}F[d+80>>2]=a+(m<<2);F[d+76>>2]=g+4;F[d+72>>2]=a;if(!h){break ga}oj(h)}if((e|0)!=(f|0)){continue}break}b=F[d+8>>2]}if(((F[b+4>>2]-F[b>>2]>>2>>>0)/3|0)!=(o|0)){break s}c=F[b+28>>2]-F[b+24>>2]>>2;if((j|0)==(A|0)){j=A;break s}a=j;while(1){h=F[a>>2];i=F[b+24>>2];f=c-1|0;o=i+(f<<2)|0;if(F[o>>2]==-1){while(1){f=c-2|0;c=c-1|0;o=i+(f<<2)|0;if(F[o>>2]==-1){continue}break}}if(f>>>0>=h>>>0){F[n>>2]=b;o=F[o>>2];D[n+12|0]=1;F[n+8>>2]=o;F[n+4>>2]=o;if((o|0)!=-1){while(1){b=F[F[d+8>>2]>>2]+(o<<2)|0;if(F[b>>2]!=(f|0)){break t}F[b>>2]=h;vd(n);o=F[n+8>>2];if((o|0)!=-1){continue}break}b=F[d+8>>2]}i=F[b+24>>2];o=i+(f<<2)|0;if((h|0)!=-1){F[i+(h<<2)>>2]=F[o>>2]}F[o>>2]=-1;o=1<>2];h=i+(h>>>3&536870908)|0;m=1<>>3&536870908)|0;if(m&F[i>>2]){f=o|F[h>>2]}else{f=F[h>>2]&(o^-1)}F[h>>2]=f;F[i>>2]=F[i>>2]&(m^-1);c=c-1|0}a=a+4|0;if((A|0)!=(a|0)){continue}break}break s}c=-1}if(j){oj(j)}a=F[n+48>>2];if(a){while(1){b=F[a>>2];oj(a);a=b;if(a){continue}break}}a=F[n+40>>2];F[n+40>>2]=0;if(a){oj(a)}if(e){F[n+68>>2]=e;oj(e)}fa=n+96|0;break o}Wa();V()}Ia();V()}Ia();V()}e=c;if((c|0)==-1){break b}a=F[M+16>>2];b=a+F[M>>2]|0;c=F[M+8>>2];c=c-a|0;a=F[F[d+4>>2]+32>>2];E[a+38>>1]=H[a+38>>1];F[a>>2]=b;F[a+16>>2]=0;F[a+20>>2]=0;F[a+8>>2]=c;F[a+12>>2]=0;a=F[d+4>>2];b=H[a+36>>1];f=b<<8|b>>>8;if((f&65535)>>>0<=513){a=F[a+32>>2];b=O+F[a+20>>2]|0;c=y+F[a+16>>2]|0;b=c>>>0>>0?b+1|0:b;F[a+16>>2]=c;F[a+20>>2]=b}na:{if(F[d+216>>2]==F[d+220>>2]){break na}b=F[d+8>>2];a=F[b>>2];b=F[b+4>>2];oa:{if((f&65535)>>>0>=513){if((a|0)==(b|0)){break na}b=0;break oa}if((a|0)==(b|0)){break na}b=0;while(1){if(Xe(d,b)){b=b+3|0;a=F[d+8>>2];if(b>>>0>2]-F[a>>2]>>2>>>0){continue}break na}break}break b}while(1){if(Ye(d,b)){b=b+3|0;a=F[d+8>>2];if(b>>>0>2]-F[a>>2]>>2>>>0){continue}break na}break}break b}Ze(z);b=F[d+216>>2];if((b|0)==F[d+220>>2]){break c}c=0;while(1){f=L(c,144);yi((f+b|0)+4|0,F[d+8>>2]);a=F[J>>2];j=a+f|0;b=F[j+132>>2];j=F[j+136>>2];if((b|0)!=(j|0)){while(1){Ai((f+F[J>>2]|0)+4|0,F[b>>2]);b=b+4|0;if((j|0)!=(b|0)){continue}break}a=F[J>>2]}zi((a+f|0)+4|0);c=c+1|0;b=F[d+216>>2];if(c>>>0<(F[d+220>>2]-b|0)/144>>>0){continue}break}break c}u=0;break b}a=F[d+8>>2];_e(d+184|0,F[a+28>>2]-F[a+24>>2]>>2);u=F[d+216>>2];if((u|0)!=F[d+220>>2]){b=0;while(1){a=L(b,144)+u|0;c=F[a+60>>2]-F[a+56>>2]>>2;i=a+104|0;a=F[d+8>>2];a=F[a+28>>2]-F[a+24>>2]>>2;_e(i,(a|0)<(c|0)?c:a);b=b+1|0;u=F[d+216>>2];if(b>>>0<(F[d+220>>2]-u|0)/144>>>0){continue}break}}u=$e(d,e)}fa=r- -64|0;return u|0}function Pe(a){a=a|0;var b=0,c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,J=0,K=0,M=0,N=0,O=0,P=0,Q=0;q=fa+-64|0;fa=q;F[a+132>>2]=0;if(F[a+148>>2]){c=F[a+144>>2];if(c){while(1){e=F[c>>2];oj(c);c=e;if(c){continue}break}}c=0;F[a+144>>2]=0;e=F[a+140>>2];a:{if(!e){break a}if(e-1>>>0>=3){g=e&-4;while(1){d=c<<2;F[d+F[a+136>>2]>>2]=0;F[F[a+136>>2]+(d|4)>>2]=0;F[F[a+136>>2]+(d|8)>>2]=0;F[F[a+136>>2]+(d|12)>>2]=0;c=c+4|0;k=k+4|0;if((g|0)!=(k|0)){continue}break}}e=e&3;if(!e){break a}while(1){F[F[a+136>>2]+(c<<2)>>2]=0;c=c+1|0;s=s+1|0;if((e|0)!=(s|0)){continue}break}}F[a+148>>2]=0}b:{c:{d:{c=F[a+4>>2];s=G[c+36|0];e=s<<8|G[c+37|0];if(e>>>0<=513){d=F[c+32>>2];e:{if(e>>>0<=511){e=F[d+20>>2];g=F[d+16>>2];k=g+4|0;e=k>>>0<4?e+1|0:e;b=k;k=F[d+12>>2];if(b>>>0>I[d+8>>2]&(k|0)<=(e|0)|(e|0)>(k|0)){break d}g=g+F[d>>2]|0;k=G[g|0]|G[g+1|0]<<8|(G[g+2|0]<<16|G[g+3|0]<<24);F[d+16>>2]=b;F[d+20>>2]=e;break e}if(!Qe(1,q,d)){break d}c=F[a+4>>2];s=G[c+36|0];k=F[q>>2]}F[a+132>>2]=k}d=F[c+32>>2];f:{g:{h:{if((s&255)>>>0<=1){s=0;e=F[d+20>>2];g=F[d+16>>2];k=g+4|0;e=k>>>0<4?e+1|0:e;b=F[d+12>>2];if((b|0)<=(e|0)&k>>>0>I[d+8>>2]|(e|0)>(b|0)){break b}g=g+F[d>>2]|0;g=G[g|0]|G[g+1|0]<<8|(G[g+2|0]<<16|G[g+3|0]<<24);F[q+60>>2]=g;F[d+16>>2]=k;F[d+20>>2]=e;F[a+156>>2]=g;m=a+156|0;break h}s=0;if(!Qe(1,q+60|0,d)){break b}c=F[a+4>>2];e=G[c+36|0];F[a+156>>2]=F[q+60>>2];m=a+156|0;if(e>>>0>1){break g}}e=F[c+32>>2];c=F[e+8>>2];d=F[e+12>>2];j=c;c=F[e+20>>2];g=F[e+16>>2];k=g+4|0;c=k>>>0<4?c+1|0:c;b=k;if(j>>>0>>0&(c|0)>=(d|0)|(c|0)>(d|0)){break b}d=g+F[e>>2]|0;k=G[d|0]|G[d+1|0]<<8|(G[d+2|0]<<16|G[d+3|0]<<24);F[q+56>>2]=k;F[e+16>>2]=b;F[e+20>>2]=c;break f}if(!Qe(1,q+56|0,F[c+32>>2])){break b}k=F[q+56>>2]}if(k>>>0>1431655765|I[m>>2]>L(k,3)>>>0){break b}z=F[a+4>>2];e=F[z+32>>2];f=F[e+8>>2];d=f;g=F[e+12>>2];c=F[e+20>>2];b=F[e+16>>2];if((g|0)<=(c|0)&b>>>0>=d>>>0|(c|0)>(g|0)){break b}h=F[e>>2];j=G[h+b|0];d=c;m=b+1|0;d=m?d:d+1|0;F[e+16>>2]=m;F[e+20>>2]=d;i:{if(G[z+36|0]<=1){d=g;g=b+5|0;c=g>>>0<5?c+1|0:c;if(g>>>0>f>>>0&(c|0)>=(d|0)|(c|0)>(d|0)){break b}d=h+m|0;m=G[d|0]|G[d+1|0]<<8|(G[d+2|0]<<16|G[d+3|0]<<24);F[q+52>>2]=m;F[e+16>>2]=g;F[e+20>>2]=c;break i}if(!Qe(1,q+52|0,e)){break b}m=F[q+52>>2]}if(k>>>0>>0|((m>>>0)/3|0)+m>>>0>>0){break b}c=F[a+4>>2];e=F[c+32>>2];j:{if(G[c+36|0]<=1){c=F[e+20>>2];d=F[e+16>>2];g=d+4|0;c=g>>>0<4?c+1|0:c;b=F[e+12>>2];if((b|0)<=(c|0)&g>>>0>I[e+8>>2]|(c|0)>(b|0)){break b}d=d+F[e>>2]|0;d=G[d|0]|G[d+1|0]<<8|(G[d+2|0]<<16|G[d+3|0]<<24);F[q+48>>2]=d;F[e+16>>2]=g;F[e+20>>2]=c;break j}if(!Qe(1,q+48|0,e)){break b}d=F[q+48>>2]}if(d>>>0>m>>>0){break b}F[a+28>>2]=F[a+24>>2];e=qi(rj(88));c=F[a+8>>2];F[a+8>>2]=e;if(c){Re(c);if(!F[a+8>>2]){break b}}F[a+164>>2]=F[a+160>>2];Se(a+160|0,k);F[a+176>>2]=F[a+172>>2];Se(a+172|0,k);F[a- -64>>2]=0;F[a+92>>2]=-1;F[a+84>>2]=-1;F[a+88>>2]=-1;F[a+40>>2]=F[a+36>>2];F[a+52>>2]=F[a+48>>2];F[a+76>>2]=F[a+72>>2];A=a+216|0;Te(A);Ue(A,j);if(!ri(F[a+8>>2],k,F[a+156>>2]+d|0)){break b}c=F[a+156>>2];D[q|0]=1;Ne(a+120|0,c+d|0,q);c=F[a+4>>2];e=H[c+36>>1];e=(e<<8|e>>>8)&65535;k:{if(e>>>0<=513){c=F[c+32>>2];l:{if(e>>>0<=511){e=F[c+20>>2];d=F[c+16>>2];g=d+4|0;e=g>>>0<4?e+1|0:e;k=F[c+12>>2];if((k|0)<=(e|0)&g>>>0>I[c+8>>2]|(e|0)>(k|0)){break b}d=d+F[c>>2]|0;k=G[d|0]|G[d+1|0]<<8|(G[d+2|0]<<16|G[d+3|0]<<24);F[c+16>>2]=g;F[c+20>>2]=e;break l}if(!Qe(1,q+44|0,c)){break b}k=F[q+44>>2]}if(!k){break b}c=F[F[a+4>>2]+32>>2];e=F[c+8>>2];d=F[c+16>>2];g=e-d|0;c=F[c+12>>2]-(F[c+20>>2]+(e>>>0>>0)|0)|0;if(g>>>0>>0&(c|0)<=0|(c|0)<0){break b}e=ng(q);d=F[F[a+4>>2]+32>>2];c=F[d+16>>2];g=(c+F[d>>2]|0)+k|0;b=F[d+8>>2];c=(b-c|0)-k|0;E[e+38>>1]=H[d+38>>1];F[e>>2]=g;F[e+16>>2]=0;F[e+20>>2]=0;F[e+8>>2]=c;F[e+12>>2]=0;z=Ve(a,e);if((z|0)==-1){break b}M=z>>31;break k}z=-1;M=-1;if((Ve(a,F[c+32>>2])|0)==-1){break b}}N=a+232|0;e=N;F[e+144>>2]=a;c=F[(ja[F[F[a>>2]+32>>2]](a)|0)+32>>2];d=F[c>>2]+F[c+16>>2]|0;g=F[(ja[F[F[a>>2]+32>>2]](a)|0)+32>>2];c=F[g+8>>2];g=F[g+16>>2];c=c-g|0;P=e,Q=H[F[(ja[F[F[a>>2]+32>>2]](a)|0)+32>>2]+38>>1],E[P+38>>1]=Q;F[e>>2]=d;F[e+16>>2]=0;F[e+20>>2]=0;F[e+8>>2]=c;F[e+12>>2]=0;F[a+372>>2]=j;C=ng(q);if(!We(e,C)){break b}e=0;c=0;d=0;g=0;k=0;l=fa-96|0;fa=l;F[l+72>>2]=0;F[l+64>>2]=0;F[l+68>>2]=0;F[l+48>>2]=0;F[l+52>>2]=0;F[l+40>>2]=0;F[l+44>>2]=0;F[l+56>>2]=1065353216;F[l+32>>2]=0;F[l+24>>2]=0;F[l+28>>2]=0;f=a;B=F[a+124>>2];m:{n:{o:{p:{q:{r:{s:{if((m|0)<=0){break s}J=F[f+216>>2]!=F[f+220>>2];p=1;while(1){j=w;w=j+1|0;t:{u:{v:{w:{x:{y:{z:{A:{B:{C:{D:{E:{if(!G[f+308|0]){break E}F:{G:{h=F[f+296>>2];b=F[f+304>>2];a=h+(b>>>3|0)|0;i=F[f+300>>2];if(a>>>0>=i>>>0){break G}n=G[a|0];a=b+1|0;F[f+304>>2]=a;if(!(n>>>(b&7)&1)){break G}o=a>>>3|0;n=h+o|0;H:{if(n>>>0>=i>>>0){b=a;a=0;break H}n=G[n|0];b=b+2|0;F[f+304>>2]=b;o=b>>>3|0;a=n>>>(a&7)&1}h=h+o|0;if(h>>>0>>0){h=G[h|0];F[f+304>>2]=b+1;b=h>>>(b&7)<<1&2}else{b=0}a=(a|b)<<1;switch(a-1|0){case 0:case 2:case 4:break A;case 5:break D;case 1:case 3:break F;default:break E}}if((c|0)==(d|0)){break r}i=-1;p=F[f+8>>2];o=F[p+24>>2];t=c-4|0;h=F[t>>2];a=-1;I:{if((h|0)==-1){break I}b=h+1|0;b=(b>>>0)%3|0?b:h-2|0;a=-1;if((b|0)==-1){break I}a=F[F[p>>2]+(b<<2)>>2]}e=F[o+(a<<2)>>2];if((e|0)!=-1){b=e+1|0;i=(b>>>0)%3|0?b:e-2|0}e=F[p+12>>2];j=L(j,3);b=j+1|0;F[e+(h<<2)>>2]=b;u=b<<2;F[u+e>>2]=h;n=j+2|0;F[e+(i<<2)>>2]=n;v=n<<2;F[v+e>>2]=i;e=-1;b=-1;J:{if((h|0)==-1){break J}K:{if((h>>>0)%3|0){h=h-1|0;break K}h=h+2|0;b=-1;if((h|0)==-1){break J}}b=F[F[p>>2]+(h<<2)>>2]}L:{if((i|0)==-1){break L}h=i+1|0;h=(h>>>0)%3|0?h:i-2|0;if((h|0)==-1){break L}e=F[F[p>>2]+(h<<2)>>2]}h=-1;if((a|0)==(b|0)|(a|0)==(e|0)){break q}h=F[p>>2];F[h+(j<<2)>>2]=a;F[h+u>>2]=e;F[h+v>>2]=b;if((b|0)!=-1){F[o+(b<<2)>>2]=n}e=F[f+120>>2]+(a>>>3&536870908)|0;b=F[e>>2];P=e,Q=bk(a)&b,F[P>>2]=Q;F[t>>2]=j;e=d;break t}if((c|0)==(d|0)){break r}e=F[f+8>>2];b=F[e+12>>2];i=L(j,3);o=(a|1)==5;t=i+(o?2:1)|0;u=t<<2;v=c-4|0;a=F[v>>2];F[b+u>>2]=a;F[b+(a<<2)>>2]=t;cf(e+24|0);h=-1;b=F[f+8>>2];n=F[b+24>>2];if((B|0)>2]-n>>2){break q}b=F[b>>2];K=b+u|0;h=F[e+28>>2];e=F[e+24>>2];u=(h-e>>2)-1|0;F[K>>2]=u;if((e|0)!=(h|0)){F[n+(u<<2)>>2]=t}h=o?i:i+2|0;o=b+(i+o<<2)|0;M:{if((a|0)==-1){F[b+(h<<2)>>2]=-1;e=-1;break M}N:{O:{P:{if((a>>>0)%3|0){e=a-1|0;break P}e=a+2|0;if((e|0)==-1){break O}}e=F[b+(e<<2)>>2];F[b+(h<<2)>>2]=e;if((e|0)==-1){break N}F[n+(e<<2)>>2]=h;break N}F[b+(h<<2)>>2]=-1}h=a+1|0;a=(h>>>0)%3|0?h:a-2|0;e=-1;if((a|0)==-1){break M}e=F[b+(a<<2)>>2]}F[o>>2]=e;F[v>>2]=i;e=d;break C}if((c|0)==(d|0)){break r}a=c-4|0;n=F[a>>2];F[l+68>>2]=a;i=F[l+44>>2];Q:{if(!i){c=a;break Q}h=ak(i)>>>0>1;R:{if(!h){e=j&i+2147483647;break R}e=j;if(i>>>0>e>>>0){break R}e=(j>>>0)%(i>>>0)|0}b=F[F[l+40>>2]+(e<<2)>>2];if(!b){c=a;break Q}b=F[b>>2];if(!b){c=a;break Q}S:{if(!h){h=i-1|0;while(1){i=F[b+4>>2];T:{if((i|0)!=(j|0)){if((h&i)==(e|0)){break T}c=a;break Q}if((j|0)==F[b+8>>2]){break S}}b=F[b>>2];if(b){continue}break}c=a;break Q}while(1){h=F[b+4>>2];U:{if((h|0)!=(j|0)){if(h>>>0>=i>>>0){h=(h>>>0)%(i>>>0)|0}if((e|0)==(h|0)){break U}c=a;break Q}if((j|0)==F[b+8>>2]){break S}}b=F[b>>2];if(b){continue}break}c=a;break Q}if((a|0)!=(r|0)){F[a>>2]=F[b+12>>2];F[l+68>>2]=c;break Q}a=r-d|0;e=a>>2;c=e+1|0;if(c>>>0>=1073741824){break z}g=a>>1;c=a>>>0<2147483644?c>>>0>>0?g:c:1073741823;if(c){if(c>>>0>=1073741824){break p}g=rj(c<<2)}else{g=0}e=g+(e<<2)|0;F[e>>2]=F[b+12>>2];r=(c<<2)+g|0;c=e+4|0;if((a|0)>0){Ri(g,d,a)}F[l+72>>2]=r;F[l+68>>2]=c;F[l+64>>2]=g;if(!d){break Q}oj(d)}if((c|0)==(g|0)){break B}u=c-4|0;d=F[u>>2];a=(d|0)==-1;h=F[f+8>>2];if(!a&F[F[h+12>>2]+(d<<2)>>2]!=-1){break B}o=F[h+12>>2];if((n|0)!=-1&F[o+(n<<2)>>2]!=-1){break B}j=L(j,3);t=j+2|0;F[o+(d<<2)>>2]=t;p=t<<2;F[p+o>>2]=d;e=j+1|0;F[o+(n<<2)>>2]=e;b=e<<2;F[b+o>>2]=n;if(a){break y}if((d>>>0)%3|0){a=d-1|0;break w}a=d+2|0;if((a|0)!=-1){break w}i=F[h>>2];e=-1;break v}i=F[f+8>>2];cf(i+24|0);h=-1;b=F[f+8>>2];a=L(j,3);n=F[i+28>>2];o=F[i+24>>2];t=n-o|0;i=t>>2;u=i-1|0;F[F[b>>2]+(a<<2)>>2]=u;cf(b+24|0);v=a+1|0;F[F[b>>2]+(v<<2)>>2]=(F[b+28>>2]-F[b+24>>2]>>2)-1;b=F[f+8>>2];cf(b+24|0);K=a+2|0;F[F[b>>2]+(K<<2)>>2]=(F[b+28>>2]-F[b+24>>2]>>2)-1;O=F[f+8>>2];b=F[O+24>>2];if((B|0)>2]-b>>2){break q}V:{W:{if((n|0)!=(o|0)){F[b+(u<<2)>>2]=a;h=0;if((t|0)==-4){break W}}F[b+(i<<2)>>2]=v;h=i+1|0;if((h|0)==-1){break V}}F[b+(h<<2)>>2]=K}if((c|0)!=(r|0)){F[c>>2]=a;c=c+4|0;F[l+68>>2]=c;break C}d=c-e|0;b=d>>2;c=b+1|0;if(c>>>0>=1073741824){break x}g=d>>1;c=d>>>0<2147483644?c>>>0>>0?g:c:1073741823;if(c){if(c>>>0>=1073741824){break p}g=rj(c<<2)}else{g=0}b=g+(b<<2)|0;F[b>>2]=a;r=(c<<2)+g|0;c=b+4|0;if((d|0)>0){Ri(g,e,d)}F[l+72>>2]=r;F[l+68>>2]=c;F[l+64>>2]=g;if(e){oj(e)}d=g;e=d}b=F[f+40>>2];if((b|0)==F[f+36>>2]){break t}j=(j^-1)+m|0;h=c-4|0;while(1){a=b-12|0;i=F[a+4>>2];if(i>>>0>j>>>0){break B}if((i|0)!=(j|0)){break t}i=G[b-4|0];b=F[a>>2];F[f+40>>2]=a;if((b|0)<0){break B}a=F[h>>2];F[l+20>>2]=(b^-1)+m;b=l+20|0;F[l+88>>2]=b;df(l,l+40|0,b,l+88|0);o=F[l>>2];X:{if(i&1){b=-1;if((a|0)==-1){break X}b=a+1|0;b=(b>>>0)%3|0?b:a-2|0;break X}b=-1;if((a|0)==-1){break X}b=a-1|0;if((a>>>0)%3|0){break X}b=a+2|0}F[o+12>>2]=b;b=F[f+40>>2];if((b|0)!=F[f+36>>2]){continue}break}break t}h=-1;if(p&1){break q}break s}V()}Ia();V()}e=-1;i=F[h>>2];F[i+(j<<2)>>2]=-1;a=-1;break u}Ia();V()}i=F[h>>2];e=F[i+(a<<2)>>2]}F[(j<<2)+i>>2]=e;v=d+1|0;d=(v>>>0)%3|0?v:d-2|0;a=-1;if((d|0)==-1){break u}a=F[(d<<2)+i>>2]}F[b+i>>2]=a;Y:{if((n|0)==-1){F[i+p>>2]=-1;p=-1;b=-1;break Y}Z:{_:{$:{if((n>>>0)%3|0){b=n-1|0;break $}b=n+2|0;if((b|0)==-1){break _}}a=F[(b<<2)+i>>2];F[i+p>>2]=a;if((a|0)==-1){break Z}F[F[h+24>>2]+(a<<2)>>2]=t;break Z}F[i+p>>2]=-1}p=-1;a=n+1|0;a=(a>>>0)%3|0?a:n-2|0;b=-1;if((a|0)==-1){break Y}p=F[(a<<2)+i>>2];b=a}d=F[h+24>>2];a=d+(p<<2)|0;if((e|0)!=-1){F[d+(e<<2)>>2]=F[a>>2]}aa:{if((b|0)==-1){break aa}while(1){F[(b<<2)+i>>2]=e;d=b+1|0;d=(d>>>0)%3|0?d:b-2|0;if((d|0)==-1){break aa}d=F[o+(d<<2)>>2];if((d|0)==-1){break aa}b=d+1|0;b=(b>>>0)%3|0?b:d-2|0;if((b|0)!=-1){continue}break}}F[a>>2]=-1;ba:{if(J){break ba}if((x|0)!=(y|0)){F[x>>2]=p;x=x+4|0;F[l+28>>2]=x;break ba}e=y-k|0;b=e>>2;a=b+1|0;if(a>>>0<1073741824){d=e>>1;d=e>>>0<2147483644?a>>>0>>0?d:a:1073741823;if(d){if(d>>>0>=1073741824){break p}a=rj(d<<2)}else{a=0}b=a+(b<<2)|0;F[b>>2]=p;y=a+(d<<2)|0;x=b+4|0;if((e|0)>0){Ri(a,k,e)}F[l+32>>2]=y;F[l+28>>2]=x;F[l+24>>2]=a;if(k){oj(k)}k=a;break ba}Ia();V()}F[u>>2]=j;d=g;e=d}p=(m|0)>(w|0);if((m|0)!=(w|0)){continue}break}w=m}h=-1;i=F[f+8>>2];if((B|0)>2]-F[i+24>>2]>>2){break q}if((c|0)!=(g|0)){e=f+60|0;B=f+312|0;while(1){c=c-4|0;m=F[c>>2];F[l+68>>2]=c;ca:{da:{ea:{fa:{if(H[f+270>>1]<=513){if(!G[f+364|0]){break ea}a=F[f+360>>2];d=F[f+352>>2]+(a>>>3|0)|0;if(d>>>0>=I[f+356>>2]){break da}d=G[d|0];F[f+360>>2]=a+1;a=d>>>(a&7)&1;break fa}a=ie(B)}if(!a){break da}}r=F[f+8>>2];n=F[r>>2];if(((F[r+4>>2]-n>>2>>>0)/3|0)<=(w|0)){break r}a=-1;i=-1;b=F[r+24>>2];d=-1;ga:{if((m|0)==-1){break ga}j=m+1|0;j=(j>>>0)%3|0?j:m-2|0;d=-1;if((j|0)==-1){break ga}d=F[n+(j<<2)>>2]}j=d;d=F[b+(j<<2)>>2];ha:{if((d|0)==-1){break ha}p=d+1|0;d=(p>>>0)%3|0?p:d-2|0;if((d|0)==-1){break ha}a=d+1|0;a=(a>>>0)%3|0?a:d-2|0;if((a|0)!=-1){i=F[n+(a<<2)>>2]}a=d}p=-1;o=-1;b=F[b+(i<<2)>>2];d=-1;ia:{if((b|0)==-1){break ia}y=b+1|0;b=(y>>>0)%3|0?y:b-2|0;d=-1;if((b|0)==-1){break ia}d=b+1|0;d=(d>>>0)%3|0?d:b-2|0;if((d|0)!=-1){o=F[n+(d<<2)>>2]}d=b}b=F[r+12>>2];r=L(w,3);y=r<<2;F[b+y>>2]=m;F[b+(m<<2)>>2]=r;m=r+1|0;t=m<<2;F[t+b>>2]=a;F[b+(a<<2)>>2]=m;a=r+2|0;J=a<<2;F[J+b>>2]=d;F[b+(d<<2)>>2]=a;F[n+y>>2]=i;b=n+t|0;F[b>>2]=o;n=n+J|0;F[n>>2]=j;d=F[f+120>>2];j=m?i:-1;i=d+(j>>>3&536870908)|0;o=F[i>>2];P=i,Q=bk(j)&o,F[P>>2]=Q;p=(m|0)!=-1?F[b>>2]:p;b=d+(p>>>3&536870908)|0;j=F[b>>2];P=b,Q=bk(p)&j,F[P>>2]=Q;b=-1;b=(a|0)!=-1?F[n>>2]:b;a=d+(b>>>3&536870908)|0;d=F[a>>2];P=a,Q=bk(b)&d,F[P>>2]=Q;b=F[f+64>>2];a=F[f+68>>2];if((b|0)==a<<5){if((b+1|0)<0){break o}if(b>>>0<=1073741822){a=a<<6;d=b+32&-32;a=a>>>0>d>>>0?a:d}else{a=2147483647}Jc(e,a);b=F[f+64>>2]}w=w+1|0;F[f+64>>2]=b+1;a=F[f+60>>2]+(b>>>3&536870908)|0;F[a>>2]=F[a>>2]|1<>2];if((a|0)!=F[f+80>>2]){F[a>>2]=r;F[f+76>>2]=a+4;break ca}b=F[f+72>>2];d=a-b|0;m=d>>2;a=m+1|0;if(a>>>0>=1073741824){break n}j=d>>1;j=d>>>0<2147483644?a>>>0>>0?j:a:1073741823;if(j){if(j>>>0>=1073741824){break p}a=rj(j<<2)}else{a=0}m=a+(m<<2)|0;F[m>>2]=r;if((d|0)>0){Ri(a,b,d)}F[f+80>>2]=a+(j<<2);F[f+76>>2]=m+4;F[f+72>>2]=a;if(!b){break ca}oj(b);break ca}a=F[f+64>>2];d=F[f+68>>2];if((a|0)==d<<5){if((a+1|0)<0){break o}if(a>>>0<=1073741822){d=d<<6;a=a+32&-32;a=a>>>0>>0?d:a}else{a=2147483647}Jc(e,a);a=F[f+64>>2]}F[f+64>>2]=a+1;d=F[f+60>>2]+(a>>>3&536870908)|0;b=F[d>>2];P=d,Q=bk(a)&b,F[P>>2]=Q;a=F[f+76>>2];if((a|0)!=F[f+80>>2]){F[a>>2]=m;F[f+76>>2]=a+4;break ca}b=F[f+72>>2];d=a-b|0;i=d>>2;a=i+1|0;if(a>>>0>=1073741824){break n}j=d>>1;j=d>>>0<2147483644?a>>>0>>0?j:a:1073741823;if(j){if(j>>>0>=1073741824){break p}a=rj(j<<2)}else{a=0}i=a+(i<<2)|0;F[i>>2]=m;if((d|0)>0){Ri(a,b,d)}F[f+80>>2]=a+(j<<2);F[f+76>>2]=i+4;F[f+72>>2]=a;if(!b){break ca}oj(b)}if((c|0)!=(g|0)){continue}break}i=F[f+8>>2]}if(((F[i+4>>2]-F[i>>2]>>2>>>0)/3|0)!=(w|0)){break q}h=F[i+28>>2]-F[i+24>>2]>>2;if((k|0)==(x|0)){k=x;break q}e=k;while(1){a=F[e>>2];d=F[i+24>>2];b=h-1|0;c=d+(b<<2)|0;if(F[c>>2]==-1){while(1){b=h-2|0;h=h-1|0;c=d+(b<<2)|0;if(F[c>>2]==-1){continue}break}}if(a>>>0<=b>>>0){F[l>>2]=i;c=F[c>>2];D[l+12|0]=1;F[l+8>>2]=c;F[l+4>>2]=c;if((c|0)!=-1){while(1){c=F[F[f+8>>2]>>2]+(c<<2)|0;if(F[c>>2]!=(b|0)){break r}F[c>>2]=a;vd(l);c=F[l+8>>2];if((c|0)!=-1){continue}break}i=F[f+8>>2]}d=F[i+24>>2];c=d+(b<<2)|0;if((a|0)!=-1){F[d+(a<<2)>>2]=F[c>>2]}F[c>>2]=-1;c=1<>2];a=d+(a>>>3&536870908)|0;d=d+(b>>>3&536870908)|0;b=1<>2]&b){c=c|F[a>>2]}else{c=F[a>>2]&(c^-1)}F[a>>2]=c;F[d>>2]=F[d>>2]&(b^-1);h=h-1|0}e=e+4|0;if((x|0)!=(e|0)){continue}break}break q}h=-1}if(k){oj(k)}a=F[l+48>>2];if(a){while(1){c=F[a>>2];oj(a);a=c;if(a){continue}break}}a=F[l+40>>2];F[l+40>>2]=0;if(a){oj(a)}if(g){F[l+68>>2]=g;oj(g)}fa=l+96|0;a=h;break m}Wa();V()}Ia();V()}Ia();V()}d=a;if((a|0)==-1){break b}a=F[C+16>>2];c=a+F[C>>2]|0;e=F[C+8>>2];e=e-a|0;a=F[F[f+4>>2]+32>>2];E[a+38>>1]=H[a+38>>1];F[a>>2]=c;F[a+16>>2]=0;F[a+20>>2]=0;F[a+8>>2]=e;F[a+12>>2]=0;a=F[f+4>>2];c=H[a+36>>1];g=c<<8|c>>>8;if((g&65535)>>>0<=513){a=F[a+32>>2];e=M+F[a+20>>2]|0;c=z+F[a+16>>2]|0;e=c>>>0>>0?e+1|0:e;F[a+16>>2]=c;F[a+20>>2]=e}ja:{if(F[f+216>>2]==F[f+220>>2]){break ja}c=F[f+8>>2];a=F[c>>2];c=F[c+4>>2];ka:{if((g&65535)>>>0>=513){if((a|0)==(c|0)){break ja}c=0;break ka}if((a|0)==(c|0)){break ja}c=0;while(1){if(Xe(f,c)){c=c+3|0;a=F[f+8>>2];if(c>>>0>2]-F[a>>2]>>2>>>0){continue}break ja}break}break b}while(1){if(Ye(f,c)){c=c+3|0;a=F[f+8>>2];if(c>>>0>2]-F[a>>2]>>2>>>0){continue}break ja}break}break b}Ze(N);c=F[f+216>>2];if((c|0)==F[f+220>>2]){break c}m=0;while(1){e=L(m,144);yi((e+c|0)+4|0,F[f+8>>2]);a=F[A>>2];g=a+e|0;c=F[g+132>>2];g=F[g+136>>2];if((c|0)!=(g|0)){while(1){Ai((e+F[A>>2]|0)+4|0,F[c>>2]);c=c+4|0;if((g|0)!=(c|0)){continue}break}a=F[A>>2]}zi((a+e|0)+4|0);m=m+1|0;c=F[f+216>>2];if(m>>>0<(F[f+220>>2]-c|0)/144>>>0){continue}break}break c}s=0;break b}a=F[f+8>>2];_e(f+184|0,F[a+28>>2]-F[a+24>>2]>>2);s=F[f+216>>2];if((s|0)!=F[f+220>>2]){c=0;while(1){a=L(c,144)+s|0;e=F[a+60>>2]-F[a+56>>2]>>2;b=a+104|0;a=F[f+8>>2];a=F[a+28>>2]-F[a+24>>2]>>2;_e(b,(a|0)<(e|0)?e:a);c=c+1|0;s=F[f+216>>2];if(c>>>0<(F[f+220>>2]-s|0)/144>>>0){continue}break}}s=$e(f,d)}fa=q- -64|0;return s|0}function Th(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0;a:{b:{c:{d:{switch(d-1|0){case 0:a=0;m=fa-16|0;fa=m;j=F[b+80>>2];d=D[c+24|0];e:{if((L(j,d)|0)!=(e|0)){break e}a=F[c+28>>2]!=1;k=G[c+84|0];if(!(a|!k)){Ri(f,F[F[c>>2]>>2]+F[c+48>>2]|0,e);a=1;break e}F[m+8>>2]=0;F[m>>2]=0;F[m+4>>2]=0;if(d){if((d|0)<0){break c}h=rj(d);F[m>>2]=h;Ti(h,0,d)}f:{g:{if(!j){break g}if(!a){if(d){n=d&-4;l=d&3;b=0;o=d-1>>>0<3;d=0;while(1){e=F[F[c>>2]>>2];t=F[c+40>>2];a=F[c+48>>2]+Zj(t,F[c+44>>2],G[c+84|0]?d:F[F[c+68>>2]+(d<<2)>>2],0)|0;e=Ri(h,e+a|0,t);k=0;a=0;g=0;if(!o){while(1){i=b+f|0;D[i|0]=G[a+e|0];D[i+1|0]=G[e+(a|1)|0];D[i+2|0]=G[e+(a|2)|0];D[i+3|0]=G[e+(a|3)|0];a=a+4|0;b=b+4|0;g=g+4|0;if((n|0)!=(g|0)){continue}break}}if(l){while(1){D[b+f|0]=G[a+e|0];a=a+1|0;b=b+1|0;k=k+1|0;if((l|0)!=(k|0)){continue}break}}a=1;d=d+1|0;if((j|0)!=(d|0)){continue}break}break f}l=F[c>>2];b=F[c+48>>2];o=F[c+68>>2];d=F[c+44>>2];c=F[c+40>>2];t=c;a=0;if((j|0)!=1){q=j&-2;while(1){e=a|1;p=F[l>>2];f=Zj(c,d,k?a:F[o+(a<<2)>>2],0)+b|0;f=Ri(h,p+f|0,t);p=F[l>>2];if(!k){e=F[o+(e<<2)>>2]}e=Zj(c,d,e,0)+b|0;Ri(f,e+p|0,t);a=a+2|0;g=g+2|0;if((q|0)!=(g|0)){continue}break}}if(!(j&1)){break g}e=F[l>>2];if(!k){a=F[o+(a<<2)>>2]}a=Zj(c,d,a,0)+b|0;Ri(h,a+e|0,t);break g}if(!d){a=0;i=1;while(1){if(!tg(c,G[c+84|0]?a:F[F[c+68>>2]+(a<<2)>>2],D[c+24|0],h)){break g}a=a+1|0;i=j>>>0>a>>>0;if((a|0)!=(j|0)){continue}break}break g}l=d&-4;g=d&3;b=0;n=d-1>>>0<3;i=1;d=0;while(1){if(!tg(c,G[c+84|0]?d:F[F[c+68>>2]+(d<<2)>>2],D[c+24|0],h)){break g}i=0;a=0;k=0;if(!n){while(1){e=b+f|0;D[e|0]=G[a+h|0];D[e+1|0]=G[(a|1)+h|0];D[e+2|0]=G[(a|2)+h|0];D[e+3|0]=G[(a|3)+h|0];a=a+4|0;b=b+4|0;k=k+4|0;if((l|0)!=(k|0)){continue}break}}if(g){while(1){D[b+f|0]=G[a+h|0];a=a+1|0;b=b+1|0;i=i+1|0;if((g|0)!=(i|0)){continue}break}}d=d+1|0;i=j>>>0>d>>>0;if((d|0)!=(j|0)){continue}break}a=d>>>0>=j>>>0;break f}a=i^1;if(!h){break e}}oj(h)}break b;case 2:a=0;m=fa-16|0;fa=m;g=D[c+24|0];d=g<<1;l=F[b+80>>2];h:{if((L(d,l)|0)!=(e|0)){break h}b=F[c+28>>2]!=3;n=G[c+84|0];if(!(b|!n)){Ri(f,F[F[c>>2]>>2]+F[c+48>>2]|0,e);a=1;break h}F[m+8>>2]=0;F[m>>2]=0;F[m+4>>2]=0;if(g){if((g|0)<0){break c}h=rj(d);F[m>>2]=h;Ti(h,0,d)}i:{j:{if(!l){break j}if(!b){o=F[c>>2];e=F[c+48>>2];q=F[c+68>>2];j=F[c+44>>2];k=F[c+40>>2];p=k;if(g){v=g&-4;u=g&3;d=0;w=g-1>>>0<3;b=0;while(1){c=F[o>>2];a=Zj(k,j,n?b:F[q+(b<<2)>>2],0)+e|0;g=Ri(h,c+a|0,p);i=0;a=0;c=0;if(!w){while(1){r=(d<<1)+f|0;s=a<<1;E[r>>1]=H[s+g>>1];E[r+2>>1]=H[g+(s|2)>>1];E[r+4>>1]=H[g+(s|4)>>1];E[r+6>>1]=H[g+(s|6)>>1];a=a+4|0;d=d+4|0;c=c+4|0;if((v|0)!=(c|0)){continue}break}}if(u){while(1){E[(d<<1)+f>>1]=H[g+(a<<1)>>1];a=a+1|0;d=d+1|0;i=i+1|0;if((u|0)!=(i|0)){continue}break}}a=1;b=b+1|0;if((l|0)!=(b|0)){continue}break}break i}if((l|0)!=1){d=l&-2;g=0;while(1){b=a|1;f=F[o>>2];c=Zj(k,j,n?a:F[q+(a<<2)>>2],0)+e|0;c=Ri(h,f+c|0,p);f=F[o>>2];if(!n){b=F[q+(b<<2)>>2]}b=Zj(k,j,b,0)+e|0;Ri(c,b+f|0,p);a=a+2|0;g=g+2|0;if((d|0)!=(g|0)){continue}break}}if(!(l&1)){break j}b=F[o>>2];if(!n){a=F[q+(a<<2)>>2]}a=Zj(k,j,a,0)+e|0;Ri(h,a+b|0,p);break j}if(!g){i=1;while(1){if(!wg(c,G[c+84|0]?a:F[F[c+68>>2]+(a<<2)>>2],D[c+24|0],h)){break j}a=a+1|0;i=l>>>0>a>>>0;if((a|0)!=(l|0)){continue}break}break j}n=g&-4;k=g&3;d=0;o=g-1>>>0<3;i=1;b=0;while(1){if(!wg(c,G[c+84|0]?b:F[F[c+68>>2]+(b<<2)>>2],D[c+24|0],h)){break j}g=0;a=0;i=0;if(!o){while(1){e=(d<<1)+f|0;j=a<<1;E[e>>1]=H[j+h>>1];E[e+2>>1]=H[(j|2)+h>>1];E[e+4>>1]=H[(j|4)+h>>1];E[e+6>>1]=H[(j|6)+h>>1];a=a+4|0;d=d+4|0;i=i+4|0;if((n|0)!=(i|0)){continue}break}}if(k){while(1){E[(d<<1)+f>>1]=H[(a<<1)+h>>1];a=a+1|0;d=d+1|0;g=g+1|0;if((k|0)!=(g|0)){continue}break}}b=b+1|0;i=l>>>0>b>>>0;if((b|0)!=(l|0)){continue}break}a=b>>>0>=l>>>0;break i}a=!i;if(!h){break h}}oj(h)}break b;case 4:a=0;m=fa-16|0;fa=m;g=D[c+24|0];d=g<<2;l=F[b+80>>2];k:{if((L(d,l)|0)!=(e|0)){break k}b=F[c+28>>2]!=5;n=G[c+84|0];if(!(b|!n)){Ri(f,F[F[c>>2]>>2]+F[c+48>>2]|0,e);a=1;break k}F[m+8>>2]=0;F[m>>2]=0;F[m+4>>2]=0;if(g){if((g|0)<0){break c}h=rj(d);F[m>>2]=h;Ti(h,0,d)}l:{m:{if(!l){break m}if(!b){o=F[c>>2];e=F[c+48>>2];q=F[c+68>>2];j=F[c+44>>2];k=F[c+40>>2];p=k;if(g){v=g&-4;u=g&3;d=0;w=g-1>>>0<3;b=0;while(1){c=F[o>>2];a=Zj(k,j,n?b:F[q+(b<<2)>>2],0)+e|0;g=Ri(h,c+a|0,p);i=0;a=0;c=0;if(!w){while(1){r=(d<<2)+f|0;s=a<<2;F[r>>2]=F[s+g>>2];F[r+4>>2]=F[g+(s|4)>>2];F[r+8>>2]=F[g+(s|8)>>2];F[r+12>>2]=F[g+(s|12)>>2];a=a+4|0;d=d+4|0;c=c+4|0;if((v|0)!=(c|0)){continue}break}}if(u){while(1){F[(d<<2)+f>>2]=F[g+(a<<2)>>2];a=a+1|0;d=d+1|0;i=i+1|0;if((u|0)!=(i|0)){continue}break}}a=1;b=b+1|0;if((l|0)!=(b|0)){continue}break}break l}if((l|0)!=1){d=l&-2;g=0;while(1){b=a|1;f=F[o>>2];c=Zj(k,j,n?a:F[q+(a<<2)>>2],0)+e|0;c=Ri(h,f+c|0,p);f=F[o>>2];if(!n){b=F[q+(b<<2)>>2]}b=Zj(k,j,b,0)+e|0;Ri(c,b+f|0,p);a=a+2|0;g=g+2|0;if((d|0)!=(g|0)){continue}break}}if(!(l&1)){break m}b=F[o>>2];if(!n){a=F[q+(a<<2)>>2]}a=Zj(k,j,a,0)+e|0;Ri(h,a+b|0,p);break m}if(!g){i=1;while(1){if(!yg(c,G[c+84|0]?a:F[F[c+68>>2]+(a<<2)>>2],D[c+24|0],h)){break m}a=a+1|0;i=l>>>0>a>>>0;if((a|0)!=(l|0)){continue}break}break m}n=g&-4;k=g&3;d=0;o=g-1>>>0<3;i=1;b=0;while(1){if(!yg(c,G[c+84|0]?b:F[F[c+68>>2]+(b<<2)>>2],D[c+24|0],h)){break m}g=0;a=0;i=0;if(!o){while(1){e=(d<<2)+f|0;j=a<<2;F[e>>2]=F[j+h>>2];F[e+4>>2]=F[(j|4)+h>>2];F[e+8>>2]=F[(j|8)+h>>2];F[e+12>>2]=F[(j|12)+h>>2];a=a+4|0;d=d+4|0;i=i+4|0;if((n|0)!=(i|0)){continue}break}}if(k){while(1){F[(d<<2)+f>>2]=F[(a<<2)+h>>2];a=a+1|0;d=d+1|0;g=g+1|0;if((k|0)!=(g|0)){continue}break}}b=b+1|0;i=l>>>0>b>>>0;if((b|0)!=(l|0)){continue}break}a=b>>>0>=l>>>0;break l}a=!i;if(!h){break k}}oj(h)}break b;case 1:a=0;m=fa-16|0;fa=m;j=F[b+80>>2];d=D[c+24|0];n:{if((L(j,d)|0)!=(e|0)){break n}a=F[c+28>>2]!=2;k=G[c+84|0];if(!(a|!k)){Ri(f,F[F[c>>2]>>2]+F[c+48>>2]|0,e);a=1;break n}F[m+8>>2]=0;F[m>>2]=0;F[m+4>>2]=0;if(d){if((d|0)<0){break c}h=rj(d);F[m>>2]=h;Ti(h,0,d)}o:{p:{if(!j){break p}if(!a){if(d){n=d&-4;l=d&3;b=0;o=d-1>>>0<3;d=0;while(1){e=F[F[c>>2]>>2];t=F[c+40>>2];a=F[c+48>>2]+Zj(t,F[c+44>>2],G[c+84|0]?d:F[F[c+68>>2]+(d<<2)>>2],0)|0;e=Ri(h,e+a|0,t);k=0;a=0;g=0;if(!o){while(1){i=b+f|0;D[i|0]=G[a+e|0];D[i+1|0]=G[e+(a|1)|0];D[i+2|0]=G[e+(a|2)|0];D[i+3|0]=G[e+(a|3)|0];a=a+4|0;b=b+4|0;g=g+4|0;if((n|0)!=(g|0)){continue}break}}if(l){while(1){D[b+f|0]=G[a+e|0];a=a+1|0;b=b+1|0;k=k+1|0;if((l|0)!=(k|0)){continue}break}}a=1;d=d+1|0;if((j|0)!=(d|0)){continue}break}break o}l=F[c>>2];b=F[c+48>>2];o=F[c+68>>2];d=F[c+44>>2];c=F[c+40>>2];t=c;a=0;if((j|0)!=1){q=j&-2;while(1){e=a|1;p=F[l>>2];f=Zj(c,d,k?a:F[o+(a<<2)>>2],0)+b|0;f=Ri(h,p+f|0,t);p=F[l>>2];if(!k){e=F[o+(e<<2)>>2]}e=Zj(c,d,e,0)+b|0;Ri(f,e+p|0,t);a=a+2|0;g=g+2|0;if((q|0)!=(g|0)){continue}break}}if(!(j&1)){break p}e=F[l>>2];if(!k){a=F[o+(a<<2)>>2]}a=Zj(c,d,a,0)+b|0;Ri(h,a+e|0,t);break p}if(!d){a=0;i=1;while(1){if(!ug(c,G[c+84|0]?a:F[F[c+68>>2]+(a<<2)>>2],D[c+24|0],h)){break p}a=a+1|0;i=j>>>0>a>>>0;if((a|0)!=(j|0)){continue}break}break p}l=d&-4;g=d&3;b=0;n=d-1>>>0<3;i=1;d=0;while(1){if(!ug(c,G[c+84|0]?d:F[F[c+68>>2]+(d<<2)>>2],D[c+24|0],h)){break p}i=0;a=0;k=0;if(!n){while(1){e=b+f|0;D[e|0]=G[a+h|0];D[e+1|0]=G[(a|1)+h|0];D[e+2|0]=G[(a|2)+h|0];D[e+3|0]=G[(a|3)+h|0];a=a+4|0;b=b+4|0;k=k+4|0;if((l|0)!=(k|0)){continue}break}}if(g){while(1){D[b+f|0]=G[a+h|0];a=a+1|0;b=b+1|0;i=i+1|0;if((g|0)!=(i|0)){continue}break}}d=d+1|0;i=j>>>0>d>>>0;if((d|0)!=(j|0)){continue}break}a=d>>>0>=j>>>0;break o}a=i^1;if(!h){break n}}oj(h)}break b;case 3:a=0;m=fa-16|0;fa=m;g=D[c+24|0];d=g<<1;l=F[b+80>>2];q:{if((L(d,l)|0)!=(e|0)){break q}b=F[c+28>>2]!=4;n=G[c+84|0];if(!(b|!n)){Ri(f,F[F[c>>2]>>2]+F[c+48>>2]|0,e);a=1;break q}F[m+8>>2]=0;F[m>>2]=0;F[m+4>>2]=0;if(g){if((g|0)<0){break c}h=rj(d);F[m>>2]=h;Ti(h,0,d)}r:{s:{if(!l){break s}if(!b){o=F[c>>2];e=F[c+48>>2];q=F[c+68>>2];j=F[c+44>>2];k=F[c+40>>2];p=k;if(g){v=g&-4;u=g&3;d=0;w=g-1>>>0<3;b=0;while(1){c=F[o>>2];a=Zj(k,j,n?b:F[q+(b<<2)>>2],0)+e|0;g=Ri(h,c+a|0,p);i=0;a=0;c=0;if(!w){while(1){r=(d<<1)+f|0;s=a<<1;E[r>>1]=H[s+g>>1];E[r+2>>1]=H[g+(s|2)>>1];E[r+4>>1]=H[g+(s|4)>>1];E[r+6>>1]=H[g+(s|6)>>1];a=a+4|0;d=d+4|0;c=c+4|0;if((v|0)!=(c|0)){continue}break}}if(u){while(1){E[(d<<1)+f>>1]=H[g+(a<<1)>>1];a=a+1|0;d=d+1|0;i=i+1|0;if((u|0)!=(i|0)){continue}break}}a=1;b=b+1|0;if((l|0)!=(b|0)){continue}break}break r}if((l|0)!=1){d=l&-2;g=0;while(1){b=a|1;f=F[o>>2];c=Zj(k,j,n?a:F[q+(a<<2)>>2],0)+e|0;c=Ri(h,f+c|0,p);f=F[o>>2];if(!n){b=F[q+(b<<2)>>2]}b=Zj(k,j,b,0)+e|0;Ri(c,b+f|0,p);a=a+2|0;g=g+2|0;if((d|0)!=(g|0)){continue}break}}if(!(l&1)){break s}b=F[o>>2];if(!n){a=F[q+(a<<2)>>2]}a=Zj(k,j,a,0)+e|0;Ri(h,a+b|0,p);break s}if(!g){i=1;while(1){if(!xg(c,G[c+84|0]?a:F[F[c+68>>2]+(a<<2)>>2],D[c+24|0],h)){break s}a=a+1|0;i=l>>>0>a>>>0;if((a|0)!=(l|0)){continue}break}break s}n=g&-4;k=g&3;d=0;o=g-1>>>0<3;i=1;b=0;while(1){if(!xg(c,G[c+84|0]?b:F[F[c+68>>2]+(b<<2)>>2],D[c+24|0],h)){break s}g=0;a=0;i=0;if(!o){while(1){e=(d<<1)+f|0;j=a<<1;E[e>>1]=H[j+h>>1];E[e+2>>1]=H[(j|2)+h>>1];E[e+4>>1]=H[(j|4)+h>>1];E[e+6>>1]=H[(j|6)+h>>1];a=a+4|0;d=d+4|0;i=i+4|0;if((n|0)!=(i|0)){continue}break}}if(k){while(1){E[(d<<1)+f>>1]=H[(a<<1)+h>>1];a=a+1|0;d=d+1|0;g=g+1|0;if((k|0)!=(g|0)){continue}break}}b=b+1|0;i=l>>>0>b>>>0;if((b|0)!=(l|0)){continue}break}a=b>>>0>=l>>>0;break r}a=!i;if(!h){break q}}oj(h)}break b;case 5:a=0;m=fa-16|0;fa=m;g=D[c+24|0];d=g<<2;l=F[b+80>>2];t:{if((L(d,l)|0)!=(e|0)){break t}b=F[c+28>>2]!=6;n=G[c+84|0];if(!(b|!n)){Ri(f,F[F[c>>2]>>2]+F[c+48>>2]|0,e);a=1;break t}F[m+8>>2]=0;F[m>>2]=0;F[m+4>>2]=0;if(g){if((g|0)<0){break c}h=rj(d);F[m>>2]=h;Ti(h,0,d)}u:{v:{if(!l){break v}if(!b){o=F[c>>2];e=F[c+48>>2];q=F[c+68>>2];j=F[c+44>>2];k=F[c+40>>2];p=k;if(g){v=g&-4;u=g&3;d=0;w=g-1>>>0<3;b=0;while(1){c=F[o>>2];a=Zj(k,j,n?b:F[q+(b<<2)>>2],0)+e|0;g=Ri(h,c+a|0,p);i=0;a=0;c=0;if(!w){while(1){r=(d<<2)+f|0;s=a<<2;F[r>>2]=F[s+g>>2];F[r+4>>2]=F[g+(s|4)>>2];F[r+8>>2]=F[g+(s|8)>>2];F[r+12>>2]=F[g+(s|12)>>2];a=a+4|0;d=d+4|0;c=c+4|0;if((v|0)!=(c|0)){continue}break}}if(u){while(1){F[(d<<2)+f>>2]=F[g+(a<<2)>>2];a=a+1|0;d=d+1|0;i=i+1|0;if((u|0)!=(i|0)){continue}break}}a=1;b=b+1|0;if((l|0)!=(b|0)){continue}break}break u}if((l|0)!=1){d=l&-2;g=0;while(1){b=a|1;f=F[o>>2];c=Zj(k,j,n?a:F[q+(a<<2)>>2],0)+e|0;c=Ri(h,f+c|0,p);f=F[o>>2];if(!n){b=F[q+(b<<2)>>2]}b=Zj(k,j,b,0)+e|0;Ri(c,b+f|0,p);a=a+2|0;g=g+2|0;if((d|0)!=(g|0)){continue}break}}if(!(l&1)){break v}b=F[o>>2];if(!n){a=F[q+(a<<2)>>2]}a=Zj(k,j,a,0)+e|0;Ri(h,a+b|0,p);break v}if(!g){i=1;while(1){if(!zg(c,G[c+84|0]?a:F[F[c+68>>2]+(a<<2)>>2],D[c+24|0],h)){break v}a=a+1|0;i=l>>>0>a>>>0;if((a|0)!=(l|0)){continue}break}break v}n=g&-4;k=g&3;d=0;o=g-1>>>0<3;i=1;b=0;while(1){if(!zg(c,G[c+84|0]?b:F[F[c+68>>2]+(b<<2)>>2],D[c+24|0],h)){break v}g=0;a=0;i=0;if(!o){while(1){e=(d<<2)+f|0;j=a<<2;F[e>>2]=F[j+h>>2];F[e+4>>2]=F[(j|4)+h>>2];F[e+8>>2]=F[(j|8)+h>>2];F[e+12>>2]=F[(j|12)+h>>2];a=a+4|0;d=d+4|0;i=i+4|0;if((n|0)!=(i|0)){continue}break}}if(k){while(1){F[(d<<2)+f>>2]=F[(a<<2)+h>>2];a=a+1|0;d=d+1|0;g=g+1|0;if((k|0)!=(g|0)){continue}break}}b=b+1|0;i=l>>>0>b>>>0;if((b|0)!=(l|0)){continue}break}a=b>>>0>=l>>>0;break u}a=!i;if(!h){break t}}oj(h)}break b;case 8:break d;default:break a}}a=0;l=fa-16|0;fa=l;i=D[c+24|0];d=i<<2;g=F[b+80>>2];w:{if((L(d,g)|0)!=(e|0)){break w}e=F[c+28>>2];F[l+8>>2]=0;F[l>>2]=0;F[l+4>>2]=0;b=0;x:{y:{z:{A:{if(!i){break A}if((i|0)<0){break z}b=rj(d);F[l>>2]=b;j=(i<<2)+b|0;F[l+8>>2]=j;a=b;d=d-4|0;m=(d>>>2|0)+1&7;if(m){while(1){F[a>>2]=-1073741824;a=a+4|0;h=h+1|0;if((m|0)!=(h|0)){continue}break}}if(d>>>0<28){break A}while(1){F[a+24>>2]=-1073741824;F[a+28>>2]=-1073741824;F[a+16>>2]=-1073741824;F[a+20>>2]=-1073741824;F[a+8>>2]=-1073741824;F[a+12>>2]=-1073741824;F[a>>2]=-1073741824;F[a+4>>2]=-1073741824;a=a+32|0;if((j|0)!=(a|0)){continue}break}}if(!g){break y}if((e|0)==9){a=0;n=F[c>>2];d=F[c+48>>2];t=F[c+68>>2];q=G[c+84|0];e=F[c+44>>2];j=F[c+40>>2];p=j;if((i|0)<=0){if((g|0)!=1){i=g&-2;c=0;while(1){f=a|1;m=F[n>>2];h=Zj(j,e,q?a:F[t+(a<<2)>>2],0)+d|0;h=Ri(b,m+h|0,p);m=F[n>>2];if(!q){f=F[t+(f<<2)>>2]}f=Zj(j,e,f,0)+d|0;Ri(h,f+m|0,p);a=a+2|0;c=c+2|0;if((i|0)!=(c|0)){continue}break}}if(!(g&1)){break y}c=F[n>>2];if(!q){a=F[t+(a<<2)>>2]}a=Zj(j,e,a,0)+d|0;Ri(b,a+c|0,p);break y}v=i&-4;s=i&3;h=0;w=i-1>>>0<3;i=0;while(1){c=F[n>>2];a=Zj(j,e,q?i:F[t+(i<<2)>>2],0)+d|0;c=Ri(b,c+a|0,p);m=0;a=0;u=0;if(!w){while(1){k=(h<<2)+f|0;r=a<<2;J[k>>2]=J[r+c>>2];J[k+4>>2]=J[c+(r|4)>>2];J[k+8>>2]=J[c+(r|8)>>2];J[k+12>>2]=J[c+(r|12)>>2];a=a+4|0;h=h+4|0;u=u+4|0;if((v|0)!=(u|0)){continue}break}}if(s){while(1){J[(h<<2)+f>>2]=J[c+(a<<2)>>2];a=a+1|0;h=h+1|0;m=m+1|0;if((s|0)!=(m|0)){continue}break}}a=1;i=i+1|0;if((g|0)!=(i|0)){continue}break}break x}k=1;if((i|0)<=0){a=0;while(1){if(!Rc(c,G[c+84|0]?a:F[F[c+68>>2]+(a<<2)>>2],D[c+24|0],b)){break y}a=a+1|0;k=g>>>0>a>>>0;if((a|0)!=(g|0)){continue}break}break y}n=i&-4;j=i&3;h=0;o=i-1>>>0<3;i=0;while(1){if(!Rc(c,G[c+84|0]?i:F[F[c+68>>2]+(i<<2)>>2],D[c+24|0],b)){break y}k=0;a=0;m=0;if(!o){while(1){d=(h<<2)+f|0;e=a<<2;J[d>>2]=J[e+b>>2];J[d+4>>2]=J[(e|4)+b>>2];J[d+8>>2]=J[(e|8)+b>>2];J[d+12>>2]=J[(e|12)+b>>2];a=a+4|0;h=h+4|0;m=m+4|0;if((n|0)!=(m|0)){continue}break}}if(j){while(1){J[(h<<2)+f>>2]=J[(a<<2)+b>>2];a=a+1|0;h=h+1|0;k=k+1|0;if((j|0)!=(k|0)){continue}break}}i=i+1|0;k=g>>>0>i>>>0;if((g|0)!=(i|0)){continue}break}a=g>>>0<=i>>>0;break x}Ia();V()}a=k^1;if(!b){break w}}oj(b)}fa=l+16|0;h=a&1;break a}Ia();V()}fa=m+16|0;h=a&1}return h|0}function Ih(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,E=0,H=0,I=0,J=0,K=0,M=0;z=c;c=0;n=fa-96|0;fa=n;k=n+16|0;Ti(k,0,76);F[n+92>>2]=-1;F[n+8>>2]=0;F[n>>2]=0;F[n+4>>2]=0;q=fa-16|0;fa=q;F[k+68>>2]=0;F[k+72>>2]=0;F[k>>2]=b;s=fa-16|0;fa=s;v=b;a=F[b+20>>2];a:{if((F[b+24>>2]-a|0)<=0){break a}a=F[a>>2];if((a|0)==-1){break a}c=F[F[v+8>>2]+(a<<2)>>2]}b:{c:{d:{if(!c){a=0;break d}a=F[v+100>>2];d=F[v+96>>2];F[s+8>>2]=0;F[s>>2]=0;F[s+4>>2]=0;e=a-d|0;b=(e|0)/12|0;e:{if((a|0)==(d|0)){break e}if(b>>>0>=357913942){break c}f=rj(e);F[s>>2]=f;F[s+8>>2]=f+L(b,12);a=0;g=f;e=e-12|0;f=(e-((e>>>0)%12|0)|0)+12|0;e=Ti(g,0,f);F[s+4>>2]=e+f;if(G[c+84|0]){c=b>>>0>1?b:1;g=c&1;if(b>>>0>=2){i=c&-2;c=0;while(1){f=L(a,12);b=f+d|0;h=F[b+4>>2];o=F[b>>2];f=e+f|0;F[f+8>>2]=F[b+8>>2];F[f>>2]=o;F[f+4>>2]=h;f=L(a|1,12);b=f+d|0;h=F[b+4>>2];o=F[b>>2];f=e+f|0;F[f+8>>2]=F[b+8>>2];F[f>>2]=o;F[f+4>>2]=h;a=a+2|0;c=c+2|0;if((i|0)!=(c|0)){continue}break}}if(!g){break e}b=L(a,12);a=b+d|0;c=F[a+4>>2];d=F[a>>2];b=b+e|0;F[b+8>>2]=F[a+8>>2];F[b>>2]=d;F[b+4>>2]=c;break e}g=b>>>0>1?b:1;a=F[c+68>>2];c=0;while(1){f=L(c,12);b=f+d|0;i=F[a+(F[b>>2]<<2)>>2];h=F[a+(F[b+4>>2]<<2)>>2];f=e+f|0;F[f+8>>2]=F[a+(F[b+8>>2]<<2)>>2];F[f+4>>2]=h;F[f>>2]=i;c=c+1|0;if((g|0)!=(c|0)){continue}break}}c=0;C=fa-16|0;fa=C;h=rj(88);qi(h);A=fa-16|0;fa=A;F[h+80>>2]=0;F[h+84>>2]=0;a=F[h+76>>2];F[h+76>>2]=0;if(a){oj(a)}F[h+68>>2]=0;F[h+72>>2]=0;b=h- -64|0;a=F[b>>2];F[b>>2]=0;if(a){oj(a)}d=F[s+4>>2];g=F[s>>2];b=(d-g|0)/12|0;a=L(b,3);f=F[h>>2];e=F[h+4>>2]-f>>2;f:{if(a>>>0>e>>>0){La(h,a-e|0);d=F[s+4>>2];g=F[s>>2];b=(d-g|0)/12|0;break f}if(a>>>0>=e>>>0){break f}F[h+4>>2]=f+(a<<2)}g:{if((d|0)==(g|0)){break g}d=b>>>0>1?b:1;f=d&1;a=F[h>>2];if(b>>>0>=2){i=d&-2;b=0;while(1){d=L(c,12);o=d+a|0;e=d+g|0;F[o>>2]=F[e>>2];F[a+(d|4)>>2]=F[e+4>>2];F[o+8>>2]=F[e+8>>2];e=L(c|1,12);d=e+a|0;e=e+g|0;F[d>>2]=F[e>>2];F[d+4>>2]=F[e+4>>2];F[d+8>>2]=F[e+8>>2];c=c+2|0;b=b+2|0;if((i|0)!=(b|0)){continue}break}}if(!f){break g}b=L(c,12);a=b+a|0;b=b+g|0;F[a>>2]=F[b>>2];F[a+4>>2]=F[b+4>>2];F[a+8>>2]=F[b+8>>2]}F[A+12>>2]=-1;a=0;e=0;d=0;i=fa-32|0;fa=i;h:{i:{w=A+12|0;j:{if(!w){break j}b=F[h+4>>2];o=F[h>>2];c=b-o|0;j=c>>2;g=F[h+12>>2];f=F[h+16>>2]-g>>2;k:{if(j>>>0>f>>>0){gb(h+12|0,j-f|0,13652);b=F[h+4>>2];o=F[h>>2];c=b-o|0;j=c>>2;break k}if(f>>>0<=j>>>0){break k}F[h+16>>2]=g+(j<<2)}F[i+24>>2]=0;F[i+16>>2]=0;F[i+20>>2]=0;f=(b|0)==(o|0);if(!f){if((c|0)<0){break i}e=rj(c);F[i+20>>2]=e;F[i+16>>2]=e;F[i+24>>2]=(j<<2)+e}l:{m:{n:{o:{p:{if(c){while(1){g=F[(a<<2)+o>>2];c=F[i+20>>2]-e>>2;q:{if(g>>>0>>0){break q}F[i>>2]=0;f=g+1|0;if(f>>>0>c>>>0){gb(i+16|0,f-c|0,i);o=F[h>>2];b=F[h+4>>2];e=F[i+16>>2];break q}if(c>>>0<=f>>>0){break q}F[i+20>>2]=(f<<2)+e}c=(g<<2)+e|0;F[c>>2]=F[c>>2]+1;a=a+1|0;c=b-o|0;j=c>>2;if(a>>>0>>0){continue}break}break p}c=0;if(!f){break o}break n}if((b|0)==(o|0)){c=0;break n}if(c>>>0>=2147483645){break m}}c=rj(c<<1);Ti(c,255,j<<3)}F[i+8>>2]=0;F[i>>2]=0;F[i+4>>2]=0;b=F[i+20>>2];a=b-e|0;t=a>>2;r:{s:{if((b|0)==(e|0)){break s}if((a|0)<0){break r}m=rj(a);F[i>>2]=m;F[i+8>>2]=(t<<2)+m;b=Ti(m,0,a);F[i+4>>2]=b+a;f=t>>>0>1?t:1;g=f&3;a=0;if(f-1>>>0>=3){r=f&-4;while(1){f=d<<2;F[f+b>>2]=a;x=f|4;a=F[e+f>>2]+a|0;F[x+b>>2]=a;u=f|8;a=a+F[e+x>>2]|0;F[u+b>>2]=a;f=f|12;a=a+F[e+u>>2]|0;F[f+b>>2]=a;a=a+F[e+f>>2]|0;d=d+4|0;p=p+4|0;if((r|0)!=(p|0)){continue}break}}if(!g){break s}while(1){f=d<<2;F[f+b>>2]=a;d=d+1|0;a=F[e+f>>2]+a|0;l=l+1|0;if((g|0)!=(l|0)){continue}break}}if(!j){break l}x=F[h+12>>2];f=0;while(1){E=f<<2;a=E+o|0;l=-1;g=f+1|0;b=(g>>>0)%3|0?g:f-2|0;if((b|0)!=-1){l=F[(b<<2)+o>>2]}b=F[a>>2];t:{u:{if(!((f>>>0)%3|0)){p=-1;a=f+2|0;if((a|0)!=-1){p=F[(a<<2)+o>>2]}if(!((b|0)==(l|0)|(b|0)==(p|0))&(l|0)!=(p|0)){break u}F[h+40>>2]=F[h+40>>2]+1;f=f+3|0;break t}p=F[a-4>>2]}a=p<<2;u=F[a+e>>2];v:{w:{if((u|0)<=0){break w}a=F[a+m>>2];d=0;while(1){r=(a<<3)+c|0;y=F[r>>2];if((y|0)==-1){break w}x:{if((l|0)!=(y|0)){break x}r=F[r+4>>2];if((r|0)!=-1){y=F[(r<<2)+o>>2]}else{y=-1}if((y|0)==(b|0)){break x}while(1){y:{b=a;d=d+1|0;if((u|0)<=(d|0)){break y}a=b+1|0;H=(a<<3)+c|0;y=F[H>>2];I=(b<<3)+c|0;F[I+4>>2]=F[H+4>>2];F[I>>2]=y;if((y|0)!=-1){continue}}break}F[(b<<3)+c>>2]=-1;if((r|0)==-1){break w}F[x+E>>2]=r;F[x+(r<<2)>>2]=f;break v}a=a+1|0;d=d+1|0;if((u|0)!=(d|0)){continue}break}}a=l<<2;l=F[a+e>>2];if((l|0)<=0){break v}a=F[a+m>>2];d=0;while(1){b=(a<<3)+c|0;if(F[b>>2]==-1){F[b>>2]=p;F[b+4>>2]=f;break v}a=a+1|0;d=d+1|0;if((l|0)!=(d|0)){continue}break}}f=g}if(j>>>0>f>>>0){continue}break}break l}break i}Ia();V()}F[w>>2]=t;if(m){oj(m)}if(c){oj(c)}a=F[i+16>>2];if(!a){break j}F[i+20>>2]=a;oj(a)}fa=i+32|0;x=(w|0)!=0;if(x){l=fa-32|0;fa=l;m=F[h>>2];a=F[h+4>>2];F[l+24>>2]=0;F[l+16>>2]=0;F[l+20>>2]=0;z:{if((a|0)==(m|0)){break z}d=a-m|0;if((d|0)<0){break i}b=d>>2;e=b-1>>>5|0;f=e+1|0;c=rj(f<<2);F[l+24>>2]=f;F[l+16>>2]=c;F[l+20>>2]=b;F[c+((d>>>0<132?0:e)<<2)>>2]=0;d=c;c=b>>>5<<2;d=Ti(d,0,c);if((b|0)==(b&-32)){break z}c=c+d|0;F[c>>2]=F[c>>2]&(-1>>>32-(b&31)^-1)}F[l+8>>2]=0;F[l>>2]=0;while(1){A:{r=0;o=0;if((a|0)==(m|0)){break A}while(1){b=F[l+16>>2];B:{if(F[b+(o>>>3&536870908)>>2]>>>o&1){break B}e=F[l>>2];F[l+4>>2]=e;c=F[h+12>>2];a=o;while(1){C:{d=a+1|0;i=a;a=(d>>>0)%3|0?d:a-2|0;if((a|0)==-1){break C}a=F[c+(a<<2)>>2];if((a|0)==-1){break C}d=a+1|0;a=(d>>>0)%3|0?d:a-2|0;if((o|0)==(a|0)|(a|0)==-1){break C}if(!(F[b+(a>>>3&536870908)>>2]>>>a&1)){continue}}break}d=i;D:{E:{F:{while(1){a=F[l+16>>2]+(d>>>3&536870908)|0;F[a>>2]=F[a>>2]|1<>>0)%3|0?a:d-2|0;m=F[h>>2];u=(d>>>0)%3|0;b=(u?-1:2)+d|0;j=F[l>>2];G:{if((j|0)==(e|0)){break G}w=F[(g<<2)+m>>2];p=F[h+12>>2];a=j;if((b|0)!=-1){c=p+(b<<2)|0;while(1){H:{if((w|0)!=F[a>>2]){break H}f=F[a+4>>2];t=F[c>>2];if((f|0)==(t|0)){break H}e=-1;c=b;a=-1;if((f|0)==-1){break D}break E}a=a+8|0;if((e|0)!=(a|0)){continue}break}break G}while(1){if((w|0)==F[a>>2]){t=-1;c=-1;f=F[a+4>>2];if((f|0)!=-1){break E}}a=a+8|0;if((e|0)!=(a|0)){continue}break}}f=F[(b<<2)+m>>2];I:{if(F[l+8>>2]!=(e|0)){F[e>>2]=f;F[e+4>>2]=g;e=e+8|0;F[l+4>>2]=e;break I}b=e-j|0;e=b>>3;a=e+1|0;if(a>>>0>=536870912){break i}c=b>>2;c=b>>>0<2147483640?a>>>0>>0?c:a:536870911;if(c){if(c>>>0>=536870912){break F}a=rj(c<<3)}else{a=0}e=a+(e<<3)|0;F[e>>2]=f;F[e+4>>2]=g;e=e+8|0;if((b|0)>0){Ri(a,j,b)}F[l+8>>2]=a+(c<<3);F[l+4>>2]=e;F[l>>2]=a;if(!j){break I}oj(j)}J:{K:{if(u){a=d-1|0;break K}a=d+2|0;if((a|0)==-1){break J}}a=F[F[h+12>>2]+(a<<2)>>2];if((a|0)==-1){break J}d=a+((a>>>0)%3|0?-1:2)|0;if((i|0)==(d|0)){break J}if((d|0)!=-1){continue}}break}m=F[h>>2];break B}Wa();V()}b=c;e=f;a=F[p+(e<<2)>>2]}if((t|0)!=-1){F[p+(t<<2)>>2]=-1}if((a|0)!=-1){F[F[h+12>>2]+(a<<2)>>2]=-1}a=F[h+12>>2];F[a+(b<<2)>>2]=-1;F[a+(e<<2)>>2]=-1;r=1}o=o+1|0;a=F[h+4>>2];if(o>>>0>2>>>0){continue}break}if(r){continue}}break}a=F[l>>2];if(a){oj(a)}a=F[l+16>>2];if(a){oj(a)}fa=l+32|0;c=0;f=0;l=0;i=fa-32|0;fa=i;a=F[A+12>>2];F[h+36>>2]=a;o=h+24|0;d=F[h+24>>2];b=F[h+28>>2]-d>>2;L:{M:{if(b>>>0>>0){gb(o,a-b|0,13652);F[i+24>>2]=0;F[i+16>>2]=0;F[i+20>>2]=0;break M}if(a>>>0>>0){F[h+28>>2]=d+(a<<2)}F[i+24>>2]=0;F[i+16>>2]=0;F[i+20>>2]=0;if(!a){break L}}if((a|0)<0){break i}b=a-1>>>5|0;d=b+1|0;c=rj(d<<2);F[i+24>>2]=d;F[i+16>>2]=c;F[i+20>>2]=a;F[((a>>>0<33?0:b)<<2)+c>>2]=0;b=a>>>5<<2;d=Ti(c,0,b);if((a&-32)==(a|0)){break L}b=b+d|0;F[b>>2]=F[b>>2]&(-1>>>32-(a&31)^-1)}j=F[h>>2];e=F[h+4>>2];F[i+8>>2]=0;F[i>>2]=0;F[i+4>>2]=0;d=e-j|0;N:{if((e|0)==(j|0)){break N}if((d|0)<0){break i}b=d>>2;g=b-1>>>5|0;m=g+1|0;f=rj(m<<2);F[i+8>>2]=m;F[i>>2]=f;F[i+4>>2]=b;F[((d>>>0<132?0:g)<<2)+f>>2]=0;g=b>>>5<<2;m=Ti(f,0,g);if((b|0)==(b&-32)){break N}g=g+m|0;F[g>>2]=F[g>>2]&(-1>>>32-(b&31)^-1)}if(d>>>0>=12){O:{P:{while(1){p=L(l,3);d=(p<<2)+j|0;b=F[d>>2];g=-1;m=p+1|0;if((m|0)!=-1){g=F[(m<<2)+j>>2]}Q:{if((b|0)==(g|0)){break Q}m=b;b=F[d+8>>2];if((m|0)==(b|0)){break Q}m=0;if((b|0)==(g|0)){break Q}while(1){b=m+p|0;if(!(F[(b>>>3&536870908)+f>>2]>>>b&1)){d=F[(b<<2)+j>>2];g=1<>>5|0;t=g&F[(j<<2)+c>>2];if(t){c=F[h+28>>2];R:{if((c|0)!=F[h+32>>2]){F[c>>2]=-1;F[h+28>>2]=c+4;break R}f=F[o>>2];e=c-f|0;j=e>>2;c=j+1|0;if(c>>>0>=1073741824){break i}g=e>>1;g=e>>>0<2147483644?c>>>0>>0?g:c:1073741823;if(g){if(g>>>0>=1073741824){break P}c=rj(g<<2)}else{c=0}j=c+(j<<2)|0;F[j>>2]=-1;if((e|0)>0){Ri(c,f,e)}F[h+32>>2]=c+(g<<2);F[h+28>>2]=j+4;F[h+24>>2]=c;if(!f){break R}oj(f)}c=F[h+52>>2];S:{if((c|0)!=F[h+56>>2]){F[c>>2]=d;F[h+52>>2]=c+4;break S}f=F[h+48>>2];e=c-f|0;j=e>>2;c=j+1|0;if(c>>>0>=1073741824){break i}g=e>>1;g=e>>>0<2147483644?c>>>0>>0?g:c:1073741823;if(g){if(g>>>0>=1073741824){break P}c=rj(g<<2)}else{c=0}j=c+(j<<2)|0;F[j>>2]=d;if((e|0)>0){Ri(c,f,e)}F[h+56>>2]=c+(g<<2);F[h+52>>2]=j+4;F[h+48>>2]=c;if(!f){break S}oj(f)}g=F[i+20>>2];c=F[i+24>>2];if((g|0)==c<<5){if((g+1|0)<0){break i}d=i+16|0;if(g>>>0<=1073741822){c=c<<6;e=g+32&-32;c=c>>>0>e>>>0?c:e}else{c=2147483647}Jc(d,c);g=F[i+20>>2]}F[i+20>>2]=g+1;c=F[i+16>>2]+(g>>>3&536870908)|0;d=F[c>>2];K=c,M=bk(g)&d,F[K>>2]=M;g=1<>>5|0;d=a;a=a+1|0}e=a;c=F[i+16>>2];a=c+(j<<2)|0;F[a>>2]=F[a>>2]|g;w=F[h+24>>2]+(d<<2)|0;r=F[h+12>>2];j=F[h>>2];f=F[i>>2];a=b;T:{U:{V:{while(1){if((a|0)==-1){break V}g=(a>>>3&536870908)+f|0;F[g>>2]=F[g>>2]|1<>2]=a;if(t){F[(a<<2)+j>>2]=d}u=a+1|0;a=(u>>>0)%3|0?u:a-2|0;g=-1;W:{if((a|0)==-1){break W}a=F[r+(a<<2)>>2];g=-1;if((a|0)==-1){break W}g=a+1|0;g=(g>>>0)%3|0?g:a-2|0}a=g;if((b|0)!=(a|0)){continue}break}if((b|0)!=-1){break T}a=1;break U}if((b>>>0)%3|0){a=b-1|0;break U}a=b+2|0;if((a|0)==-1){break T}}a=F[r+(a<<2)>>2];if((a|0)==-1){break T}X:{if((a>>>0)%3|0){a=a-1|0;break X}a=a+2|0;if((a|0)==-1){break T}}b=F[h+12>>2];j=F[h>>2];f=F[i>>2];while(1){g=(a>>>3&536870908)+f|0;F[g>>2]=F[g>>2]|1<>2]=d}Y:{if((a>>>0)%3|0){a=a-1|0;break Y}a=a+2|0;if((a|0)==-1){break T}}a=F[b+(a<<2)>>2];if((a|0)==-1){break T}a=a+((a>>>0)%3|0?-1:2)|0;if((a|0)!=-1){continue}break}}a=e}m=m+1|0;if((m|0)!=3){continue}break}j=F[h>>2];e=F[h+4>>2]}l=l+1|0;if(l>>>0<(e-j>>2>>>0)/3>>>0){continue}break}break O}Wa();V()}c=F[i+16>>2]}a=0;F[h+44>>2]=0;b=F[i+20>>2];if(b){d=b&31;b=(b>>>3&536870908)+c|0;g=c;f=0;while(1){if(!(F[g>>2]>>>a&1)){f=f+1|0;F[h+44>>2]=f}e=(a|0)==31;a=e?0:a+1|0;g=(e<<2)+g|0;if((b|0)!=(g|0)|(a|0)!=(d|0)){continue}break}}a=F[i>>2];if(a){oj(a);c=F[i+16>>2]}if(c){oj(c)}fa=i+32|0}fa=A+16|0;if(!x){F[C+8>>2]=0;Re(h);h=0}fa=C+16|0;a=h;break h}Ia();V()}b=F[s>>2];if(!b){break d}F[s+4>>2]=b;oj(b)}fa=s+16|0;break b}Ia();V()}c=F[k+4>>2];b=a;F[k+4>>2]=a;if(c){Re(c);b=F[k+4>>2]}Z:{if(!b){break Z}a=F[v+100>>2];c=F[v+96>>2];D[q+12|0]=0;Ne(k+56|0,(a-c|0)/12|0,q+12|0);a=F[v+100>>2];c=F[v+96>>2];if((a|0)==(c|0)){break Z}while(1){if(!(F[F[k+56>>2]+(B>>>3&536870908)>>2]>>>B&1)){a=L(B,3);Bi(k,0,a);c=F[k+8>>2];d=F[k+12>>2];Bi(k,1,a+1|0);e=F[k+20>>2];f=F[k+24>>2];Bi(k,2,a+2|0);g=(c|0)==(d|0)?-1:0;a=f-e>>2;c=d-c>>2;d=a>>>0>c>>>0;c=F[k+36>>2]-F[k+32>>2]>>2>>>0>(d?a:c)>>>0?2:d?1:g;_:{if(F[k+68>>2]<=0){break _}F[q+12>>2]=F[k+76>>2];F[q+8>>2]=n;sg(q+8|0,q+12|0);a=F[((c<<2)+k|0)+44>>2];if((a|0)<0){a=-1}else{d=(a>>>0)/3|0;a=F[(F[F[k>>2]+96>>2]+L(d,12)|0)+(a-L(d,3)<<2)>>2]}F[q+12>>2]=a;F[q+8>>2]=n;sg(q+8|0,q+12|0);d=F[k+72>>2];F[k+72>>2]=d+2;if(!(d&1)){break _}F[q+12>>2]=a;F[q+8>>2]=n;sg(q+8|0,q+12|0);F[k+72>>2]=F[k+72>>2]+1}f=0;d=fa-16|0;fa=d;F[k+68>>2]=F[k+68>>2]+1;a=L(c,12)+k|0;a=F[a+12>>2]-F[a+8>>2]|0;if((a|0)>0){a=a>>>2|0;g=a>>>0>1?a:1;c=F[((c<<2)+k|0)+44>>2];while(1){a=c;e=(a>>>0)/3|0;i=(a|0)==-1;c=i?-1:e;h=F[k+56>>2]+(c>>>3&536870908)|0;F[h>>2]=F[h>>2]|1<>2]=F[k+72>>2]+1;$:{aa:{ba:{ca:{da:{if(!f){F[d+12>>2]=(a|0)<0?-1:F[(F[F[k>>2]+96>>2]+L(e,12)|0)+((a>>>0)%3<<2)>>2];F[d+8>>2]=n;sg(d+8|0,d+12|0);if(i){break da}c=-1;e=a+1|0;e=(e>>>0)%3|0?e:a-2|0;if((e|0)>=0){i=(e>>>0)/3|0;e=F[(F[F[k>>2]+96>>2]+L(i,12)|0)+(e-L(i,3)<<2)>>2]}else{e=-1}F[d+12>>2]=e;F[d+8>>2]=n;sg(d+8|0,d+12|0);e=((a>>>0)%3|0?-1:2)+a|0;if((e|0)<0){break ca}c=(e>>>0)/3|0;c=F[(F[F[k>>2]+96>>2]+L(c,12)|0)+(e-L(c,3)<<2)>>2];break ca}c=(a|0)<0?-1:F[(F[F[k>>2]+96>>2]+L(e,12)|0)+((a>>>0)%3<<2)>>2];F[k+76>>2]=c;F[d+12>>2]=c;F[d+8>>2]=n;sg(d+8|0,d+12|0);if(f&1){c=-1;if((a|0)==-1){break $}if((L(e,3)|0)!=(a|0)){a=a-1|0;break aa}a=a+2|0;break ba}c=-1;if((a|0)==-1){break $}c=a+1|0;a=(c>>>0)%3|0?c:a-2|0;break ba}c=-1;F[d+12>>2]=-1;F[d+8>>2]=n;sg(d+8|0,d+12|0)}F[k+76>>2]=c;F[d+12>>2]=c;F[d+8>>2]=n;sg(d+8|0,d+12|0)}c=-1;if((a|0)==-1){break $}}c=F[F[F[k+4>>2]+12>>2]+(a<<2)>>2]}f=f+1|0;if((g|0)!=(f|0)){continue}break}}fa=d+16|0;c=F[v+96>>2];a=F[v+100>>2]}B=B+1|0;if(B>>>0<(a-c|0)/12>>>0){continue}break}}fa=q+16|0;ea:{if(b){a=F[z>>2];if(a){F[z+4>>2]=a;oj(a)}F[z>>2]=F[n>>2];F[z+4>>2]=F[n+4>>2];F[z+8>>2]=F[n+8>>2];J=F[n+84>>2];break ea}a=F[n>>2];if(!a){break ea}F[n+4>>2]=a;oj(a)}a=F[n+72>>2];if(a){oj(a)}a=F[n+48>>2];if(a){F[n+52>>2]=a;oj(a)}a=F[n+36>>2];if(a){F[n+40>>2]=a;oj(a)}a=F[n+24>>2];if(a){F[n+28>>2]=a;oj(a)}a=F[n+20>>2];F[n+20>>2]=0;if(a){Re(a)}fa=n+96|0;return J|0}function nj(a){a=a|0;var b=0,c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0;l=fa-16|0;fa=l;a:{b:{c:{d:{e:{f:{g:{h:{i:{j:{k:{if(a>>>0<=244){e=F[4296];h=a>>>0<11?16:a+11&-8;c=h>>>3|0;b=e>>>c|0;if(b&3){c=c+((b^-1)&1)|0;a=c<<3;b=a+17224|0;d=F[a+17232>>2];a=F[d+8>>2];l:{if((b|0)==(a|0)){m=17184,n=bk(c)&e,F[m>>2]=n;break l}F[a+12>>2]=b;F[b+8>>2]=a}a=d+8|0;b=c<<3;F[d+4>>2]=b|3;b=b+d|0;F[b+4>>2]=F[b+4>>2]|1;break a}k=F[4298];if(k>>>0>=h>>>0){break k}if(b){a=2<>>12&16;c=a;b=b>>>a|0;a=b>>>5&8;c=c|a;b=b>>>a|0;a=b>>>2&4;c=c|a;b=b>>>a|0;a=b>>>1&2;c=c|a;b=b>>>a|0;a=b>>>1&1;d=(c|a)+(b>>>a|0)|0;a=d<<3;b=a+17224|0;g=F[a+17232>>2];a=F[g+8>>2];m:{if((b|0)==(a|0)){e=bk(d)&e;F[4296]=e;break m}F[a+12>>2]=b;F[b+8>>2]=a}F[g+4>>2]=h|3;c=g+h|0;a=d<<3;d=a-h|0;F[c+4>>2]=d|1;F[a+g>>2]=d;if(k){b=(k&-8)+17224|0;f=F[4301];a=1<<(k>>>3);n:{if(!(a&e)){F[4296]=a|e;a=b;break n}a=F[b+8>>2]}F[b+8>>2]=f;F[a+12>>2]=f;F[f+12>>2]=b;F[f+8>>2]=a}a=g+8|0;F[4301]=c;F[4298]=d;break a}j=F[4297];if(!j){break k}b=(0-j&j)-1|0;a=b>>>12&16;c=a;b=b>>>a|0;a=b>>>5&8;c=c|a;b=b>>>a|0;a=b>>>2&4;c=c|a;b=b>>>a|0;a=b>>>1&2;c=c|a;b=b>>>a|0;a=b>>>1&1;c=F[((c|a)+(b>>>a|0)<<2)+17488>>2];f=(F[c+4>>2]&-8)-h|0;b=c;while(1){o:{a=F[b+16>>2];if(!a){a=F[b+20>>2];if(!a){break o}}b=(F[a+4>>2]&-8)-h|0;d=b>>>0>>0;f=d?b:f;c=d?a:c;b=a;continue}break}i=F[c+24>>2];d=F[c+12>>2];if((d|0)!=(c|0)){a=F[c+8>>2];F[a+12>>2]=d;F[d+8>>2]=a;break b}b=c+20|0;a=F[b>>2];if(!a){a=F[c+16>>2];if(!a){break j}b=c+16|0}while(1){g=b;d=a;b=a+20|0;a=F[b>>2];if(a){continue}b=d+16|0;a=F[d+16>>2];if(a){continue}break}F[g>>2]=0;break b}h=-1;if(a>>>0>4294967231){break k}a=a+11|0;h=a&-8;j=F[4297];if(!j){break k}f=0-h|0;e=0;p:{if(h>>>0<256){break p}e=31;if(h>>>0>16777215){break p}a=a>>>8|0;g=a+1048320>>>16&8;a=a<>>16&4;a=a<>>16&2;a=(a<>>15|0)-(b|(c|g))|0;e=(a<<1|h>>>a+21&1)+28|0}b=F[(e<<2)+17488>>2];q:{r:{s:{if(!b){a=0;break s}a=0;c=h<<((e|0)==31?0:25-(e>>>1|0)|0);while(1){t:{g=(F[b+4>>2]&-8)-h|0;if(g>>>0>=f>>>0){break t}d=b;f=g;if(f){break t}f=0;a=b;break r}g=F[b+20>>2];b=F[((c>>>29&4)+b|0)+16>>2];a=g?(g|0)==(b|0)?a:g:a;c=c<<1;if(b){continue}break}}if(!(a|d)){d=0;a=2<>>12&16;c=a;b=b>>>a|0;a=b>>>5&8;c=c|a;b=b>>>a|0;a=b>>>2&4;c=c|a;b=b>>>a|0;a=b>>>1&2;c=c|a;b=b>>>a|0;a=b>>>1&1;a=F[((c|a)+(b>>>a|0)<<2)+17488>>2]}if(!a){break q}}while(1){b=(F[a+4>>2]&-8)-h|0;c=b>>>0>>0;f=c?b:f;d=c?a:d;b=F[a+16>>2];if(b){a=b}else{a=F[a+20>>2]}if(a){continue}break}}if(!d|F[4298]-h>>>0<=f>>>0){break k}e=F[d+24>>2];c=F[d+12>>2];if((d|0)!=(c|0)){a=F[d+8>>2];F[a+12>>2]=c;F[c+8>>2]=a;break c}b=d+20|0;a=F[b>>2];if(!a){a=F[d+16>>2];if(!a){break i}b=d+16|0}while(1){g=b;c=a;b=a+20|0;a=F[b>>2];if(a){continue}b=c+16|0;a=F[c+16>>2];if(a){continue}break}F[g>>2]=0;break c}c=F[4298];if(c>>>0>=h>>>0){d=F[4301];b=c-h|0;u:{if(b>>>0>=16){F[4298]=b;a=d+h|0;F[4301]=a;F[a+4>>2]=b|1;F[c+d>>2]=b;F[d+4>>2]=h|3;break u}F[4301]=0;F[4298]=0;F[d+4>>2]=c|3;a=c+d|0;F[a+4>>2]=F[a+4>>2]|1}a=d+8|0;break a}i=F[4299];if(i>>>0>h>>>0){b=i-h|0;F[4299]=b;c=F[4302];a=c+h|0;F[4302]=a;F[a+4>>2]=b|1;F[c+4>>2]=h|3;a=c+8|0;break a}a=0;j=h+47|0;if(F[4414]){c=F[4416]}else{F[4417]=-1;F[4418]=-1;F[4415]=4096;F[4416]=4096;F[4414]=l+12&-16^1431655768;F[4419]=0;F[4407]=0;c=4096}g=j+c|0;f=0-c|0;b=g&f;if(b>>>0<=h>>>0){break a}d=F[4406];if(d){c=F[4404];e=c+b|0;if(d>>>0>>0|c>>>0>=e>>>0){break a}}if(G[17628]&4){break f}v:{w:{d=F[4302];if(d){a=17632;while(1){c=F[a>>2];if(c>>>0<=d>>>0&d>>>0>2]>>>0){break w}a=F[a+8>>2];if(a){continue}break}}c=mj(0);if((c|0)==-1){break g}e=b;d=F[4415];a=d-1|0;if(a&c){e=(b-c|0)+(a+c&0-d)|0}if(e>>>0<=h>>>0|e>>>0>2147483646){break g}d=F[4406];if(d){a=F[4404];f=a+e|0;if(d>>>0>>0|a>>>0>=f>>>0){break g}}a=mj(e);if((c|0)!=(a|0)){break v}break e}e=f&g-i;if(e>>>0>2147483646){break g}c=mj(e);if((c|0)==(F[a>>2]+F[a+4>>2]|0)){break h}a=c}if(!((a|0)==-1|h+48>>>0<=e>>>0)){c=F[4416];c=c+(j-e|0)&0-c;if(c>>>0>2147483646){c=a;break e}if((mj(c)|0)!=-1){e=c+e|0;c=a;break e}mj(0-e|0);break g}c=a;if((a|0)!=-1){break e}break g}d=0;break b}c=0;break c}if((c|0)!=-1){break e}}F[4407]=F[4407]|4}if(b>>>0>2147483646){break d}c=mj(b);a=mj(0);if((c|0)==-1|(a|0)==-1|a>>>0<=c>>>0){break d}e=a-c|0;if(e>>>0<=h+40>>>0){break d}}a=F[4404]+e|0;F[4404]=a;if(a>>>0>I[4405]){F[4405]=a}x:{y:{z:{g=F[4302];if(g){a=17632;while(1){d=F[a>>2];b=F[a+4>>2];if((d+b|0)==(c|0)){break z}a=F[a+8>>2];if(a){continue}break}break y}a=F[4300];if(!(a>>>0<=c>>>0?a:0)){F[4300]=c}a=0;F[4409]=e;F[4408]=c;F[4304]=-1;F[4305]=F[4414];F[4411]=0;while(1){d=a<<3;b=d+17224|0;F[d+17232>>2]=b;F[d+17236>>2]=b;a=a+1|0;if((a|0)!=32){continue}break}d=e-40|0;a=c+8&7?-8-c&7:0;b=d-a|0;F[4299]=b;a=a+c|0;F[4302]=a;F[a+4>>2]=b|1;F[(c+d|0)+4>>2]=40;F[4303]=F[4418];break x}if(G[a+12|0]&8|d>>>0>g>>>0|c>>>0<=g>>>0){break y}F[a+4>>2]=b+e;a=g+8&7?-8-g&7:0;c=a+g|0;F[4302]=c;b=F[4299]+e|0;a=b-a|0;F[4299]=a;F[c+4>>2]=a|1;F[(b+g|0)+4>>2]=40;F[4303]=F[4418];break x}if(I[4300]>c>>>0){F[4300]=c}b=c+e|0;a=17632;A:{B:{C:{D:{E:{F:{while(1){if((b|0)!=F[a>>2]){a=F[a+8>>2];if(a){continue}break F}break}if(!(G[a+12|0]&8)){break E}}a=17632;while(1){b=F[a>>2];if(b>>>0<=g>>>0){f=b+F[a+4>>2]|0;if(f>>>0>g>>>0){break D}}a=F[a+8>>2];continue}}F[a>>2]=c;F[a+4>>2]=F[a+4>>2]+e;j=(c+8&7?-8-c&7:0)+c|0;F[j+4>>2]=h|3;e=b+(b+8&7?-8-b&7:0)|0;i=h+j|0;a=e-i|0;if((e|0)==(g|0)){F[4302]=i;a=F[4299]+a|0;F[4299]=a;F[i+4>>2]=a|1;break B}if(F[4301]==(e|0)){F[4301]=i;a=F[4298]+a|0;F[4298]=a;F[i+4>>2]=a|1;F[a+i>>2]=a;break B}f=F[e+4>>2];if((f&3)==1){g=f&-8;G:{if(f>>>0<=255){d=F[e+8>>2];b=f>>>3|0;c=F[e+12>>2];if((c|0)==(d|0)){m=17184,n=F[4296]&bk(b),F[m>>2]=n;break G}F[d+12>>2]=c;F[c+8>>2]=d;break G}h=F[e+24>>2];c=F[e+12>>2];H:{if((e|0)!=(c|0)){b=F[e+8>>2];F[b+12>>2]=c;F[c+8>>2]=b;break H}I:{f=e+20|0;b=F[f>>2];if(b){break I}f=e+16|0;b=F[f>>2];if(b){break I}c=0;break H}while(1){d=f;c=b;f=b+20|0;b=F[f>>2];if(b){continue}f=c+16|0;b=F[c+16>>2];if(b){continue}break}F[d>>2]=0}if(!h){break G}d=F[e+28>>2];b=(d<<2)+17488|0;J:{if(F[b>>2]==(e|0)){F[b>>2]=c;if(c){break J}m=17188,n=F[4297]&bk(d),F[m>>2]=n;break G}F[h+(F[h+16>>2]==(e|0)?16:20)>>2]=c;if(!c){break G}}F[c+24>>2]=h;b=F[e+16>>2];if(b){F[c+16>>2]=b;F[b+24>>2]=c}b=F[e+20>>2];if(!b){break G}F[c+20>>2]=b;F[b+24>>2]=c}e=e+g|0;f=F[e+4>>2];a=a+g|0}F[e+4>>2]=f&-2;F[i+4>>2]=a|1;F[a+i>>2]=a;if(a>>>0<=255){b=(a&-8)+17224|0;c=F[4296];a=1<<(a>>>3);K:{if(!(c&a)){F[4296]=a|c;a=b;break K}a=F[b+8>>2]}F[b+8>>2]=i;F[a+12>>2]=i;F[i+12>>2]=b;F[i+8>>2]=a;break B}f=31;if(a>>>0<=16777215){b=a>>>8|0;f=b+1048320>>>16&8;b=b<>>16&4;b=b<>>16&2;b=(b<>>15|0)-(c|(d|f))|0;f=(b<<1|a>>>b+21&1)+28|0}F[i+28>>2]=f;F[i+16>>2]=0;F[i+20>>2]=0;b=(f<<2)+17488|0;d=F[4297];c=1<>2]=i;break L}f=a<<((f|0)==31?0:25-(f>>>1|0)|0);c=F[b>>2];while(1){b=c;if((F[b+4>>2]&-8)==(a|0)){break C}c=f>>>29|0;f=f<<1;d=(c&4)+b|0;c=F[d+16>>2];if(c){continue}break}F[d+16>>2]=i}F[i+24>>2]=b;F[i+12>>2]=i;F[i+8>>2]=i;break B}d=e-40|0;a=c+8&7?-8-c&7:0;b=d-a|0;F[4299]=b;a=a+c|0;F[4302]=a;F[a+4>>2]=b|1;F[(c+d|0)+4>>2]=40;F[4303]=F[4418];a=(f+(f-39&7?39-f&7:0)|0)-47|0;d=a>>>0>>0?g:a;F[d+4>>2]=27;a=F[4411];F[d+16>>2]=F[4410];F[d+20>>2]=a;a=F[4409];F[d+8>>2]=F[4408];F[d+12>>2]=a;F[4410]=d+8;F[4409]=e;F[4408]=c;F[4411]=0;a=d+24|0;while(1){F[a+4>>2]=7;b=a+8|0;a=a+4|0;if(b>>>0>>0){continue}break}if((d|0)==(g|0)){break x}F[d+4>>2]=F[d+4>>2]&-2;f=d-g|0;F[g+4>>2]=f|1;F[d>>2]=f;if(f>>>0<=255){b=(f&-8)+17224|0;c=F[4296];a=1<<(f>>>3);M:{if(!(c&a)){F[4296]=a|c;a=b;break M}a=F[b+8>>2]}F[b+8>>2]=g;F[a+12>>2]=g;F[g+12>>2]=b;F[g+8>>2]=a;break x}a=31;if(f>>>0<=16777215){a=f>>>8|0;d=a+1048320>>>16&8;a=a<>>16&4;a=a<>>16&2;a=(a<>>15|0)-(b|(c|d))|0;a=(a<<1|f>>>a+21&1)+28|0}F[g+28>>2]=a;F[g+16>>2]=0;F[g+20>>2]=0;b=(a<<2)+17488|0;d=F[4297];c=1<>2]=g;break N}a=f<<((a|0)==31?0:25-(a>>>1|0)|0);d=F[b>>2];while(1){b=d;if((f|0)==(F[b+4>>2]&-8)){break A}c=a>>>29|0;a=a<<1;c=(c&4)+b|0;d=F[c+16>>2];if(d){continue}break}F[c+16>>2]=g}F[g+24>>2]=b;F[g+12>>2]=g;F[g+8>>2]=g;break x}a=F[b+8>>2];F[a+12>>2]=i;F[b+8>>2]=i;F[i+24>>2]=0;F[i+12>>2]=b;F[i+8>>2]=a}a=j+8|0;break a}a=F[b+8>>2];F[a+12>>2]=g;F[b+8>>2]=g;F[g+24>>2]=0;F[g+12>>2]=b;F[g+8>>2]=a}a=F[4299];if(a>>>0<=h>>>0){break d}b=a-h|0;F[4299]=b;c=F[4302];a=c+h|0;F[4302]=a;F[a+4>>2]=b|1;F[c+4>>2]=h|3;a=c+8|0;break a}F[3988]=48;a=0;break a}O:{if(!e){break O}b=F[d+28>>2];a=(b<<2)+17488|0;P:{if(F[a>>2]==(d|0)){F[a>>2]=c;if(c){break P}j=bk(b)&j;F[4297]=j;break O}F[e+(F[e+16>>2]==(d|0)?16:20)>>2]=c;if(!c){break O}}F[c+24>>2]=e;a=F[d+16>>2];if(a){F[c+16>>2]=a;F[a+24>>2]=c}a=F[d+20>>2];if(!a){break O}F[c+20>>2]=a;F[a+24>>2]=c}Q:{if(f>>>0<=15){a=f+h|0;F[d+4>>2]=a|3;a=a+d|0;F[a+4>>2]=F[a+4>>2]|1;break Q}F[d+4>>2]=h|3;e=d+h|0;F[e+4>>2]=f|1;F[e+f>>2]=f;if(f>>>0<=255){b=(f&-8)+17224|0;c=F[4296];a=1<<(f>>>3);R:{if(!(c&a)){F[4296]=a|c;a=b;break R}a=F[b+8>>2]}F[b+8>>2]=e;F[a+12>>2]=e;F[e+12>>2]=b;F[e+8>>2]=a;break Q}a=31;if(f>>>0<=16777215){a=f>>>8|0;g=a+1048320>>>16&8;a=a<>>16&4;a=a<>>16&2;a=(a<>>15|0)-(b|(c|g))|0;a=(a<<1|f>>>a+21&1)+28|0}F[e+28>>2]=a;F[e+16>>2]=0;F[e+20>>2]=0;b=(a<<2)+17488|0;S:{c=1<>2]=e;break T}a=f<<((a|0)==31?0:25-(a>>>1|0)|0);h=F[b>>2];while(1){b=h;if((F[b+4>>2]&-8)==(f|0)){break S}c=a>>>29|0;a=a<<1;c=(c&4)+b|0;h=F[c+16>>2];if(h){continue}break}F[c+16>>2]=e}F[e+24>>2]=b;F[e+12>>2]=e;F[e+8>>2]=e;break Q}a=F[b+8>>2];F[a+12>>2]=e;F[b+8>>2]=e;F[e+24>>2]=0;F[e+12>>2]=b;F[e+8>>2]=a}a=d+8|0;break a}U:{if(!i){break U}b=F[c+28>>2];a=(b<<2)+17488|0;V:{if(F[a>>2]==(c|0)){F[a>>2]=d;if(d){break V}m=17188,n=bk(b)&j,F[m>>2]=n;break U}F[i+(F[i+16>>2]==(c|0)?16:20)>>2]=d;if(!d){break U}}F[d+24>>2]=i;a=F[c+16>>2];if(a){F[d+16>>2]=a;F[a+24>>2]=d}a=F[c+20>>2];if(!a){break U}F[d+20>>2]=a;F[a+24>>2]=d}W:{if(f>>>0<=15){a=f+h|0;F[c+4>>2]=a|3;a=a+c|0;F[a+4>>2]=F[a+4>>2]|1;break W}F[c+4>>2]=h|3;d=c+h|0;F[d+4>>2]=f|1;F[d+f>>2]=f;if(k){b=(k&-8)+17224|0;g=F[4301];a=1<<(k>>>3);X:{if(!(a&e)){F[4296]=a|e;a=b;break X}a=F[b+8>>2]}F[b+8>>2]=g;F[a+12>>2]=g;F[g+12>>2]=b;F[g+8>>2]=a}F[4301]=d;F[4298]=f}a=c+8|0}fa=l+16|0;return a|0}function lc(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0;h=fa-48|0;fa=h;a:{b:{if((c|0)!=1){break b}g=F[a+4>>2];f=F[a+12>>2];F[h+40>>2]=0;F[h+32>>2]=0;F[h+36>>2]=0;F[h+24>>2]=0;F[h+28>>2]=0;F[h+16>>2]=0;F[h+20>>2]=0;F[h+8>>2]=0;F[h+12>>2]=0;d=h+8|0;c:{if((b|0)==-2){break c}m=F[F[F[g+4>>2]+8>>2]+(f<<2)>>2];if((ja[F[F[g>>2]+8>>2]](g)|0)==1){a=H[g+36>>1];l=(a<<8|a>>>8)&65535;a=0;i=fa-32|0;fa=i;j=F[F[F[g+4>>2]+8>>2]+(f<<2)>>2];d:{if((ja[F[F[g>>2]+8>>2]](g)|0)!=1|b-1>>>0>5){break d}e=ja[F[F[g>>2]+36>>2]](g)|0;k=ja[F[F[g>>2]+44>>2]](g,f)|0;if(!e|!k){break d}c=ja[F[F[g>>2]+40>>2]](g,f)|0;if(c){a=F[g+44>>2];F[i+12>>2]=c;F[i+8>>2]=a;F[i+20>>2]=k;F[i+16>>2]=k+12;f=i+8|0;a=0;e:{f:{switch(b-1|0){case 0:a=rj(60);F[a+4>>2]=j;F[a>>2]=3272;b=F[d+4>>2];F[a+8>>2]=F[d>>2];F[a+12>>2]=b;b=F[d+12>>2];F[a+16>>2]=F[d+8>>2];F[a+20>>2]=b;b=F[d+20>>2];F[a+24>>2]=F[d+16>>2];F[a+28>>2]=b;F[a+40>>2]=0;F[a+32>>2]=0;F[a+36>>2]=0;b=F[d+28>>2];c=F[d+24>>2];if((b|0)!=(c|0)){e=b-c|0;if((e|0)<0){break a}b=rj(e);F[a+32>>2]=b;F[a+40>>2]=b+(e>>2<<2);n=a,o=Ri(b,c,e)+e|0,F[n+36>>2]=o}b=F[f+4>>2];F[a+44>>2]=F[f>>2];F[a+48>>2]=b;b=F[f+12>>2];F[a+52>>2]=F[f+8>>2];F[a+56>>2]=b;F[a>>2]=2564;break e;case 1:a=rj(60);F[a+4>>2]=j;F[a>>2]=3272;b=F[d+4>>2];F[a+8>>2]=F[d>>2];F[a+12>>2]=b;b=F[d+12>>2];F[a+16>>2]=F[d+8>>2];F[a+20>>2]=b;b=F[d+20>>2];F[a+24>>2]=F[d+16>>2];F[a+28>>2]=b;F[a+40>>2]=0;F[a+32>>2]=0;F[a+36>>2]=0;b=F[d+28>>2];c=F[d+24>>2];if((b|0)!=(c|0)){e=b-c|0;if((e|0)<0){break a}b=rj(e);F[a+32>>2]=b;F[a+40>>2]=b+(e>>2<<2);n=a,o=Ri(b,c,e)+e|0,F[n+36>>2]=o}b=F[f+4>>2];F[a+44>>2]=F[f>>2];F[a+48>>2]=b;b=F[f+12>>2];F[a+52>>2]=F[f+8>>2];F[a+56>>2]=b;F[a>>2]=3328;break e;case 3:a=rj(112);F[a+4>>2]=j;F[a>>2]=3272;b=F[d+4>>2];F[a+8>>2]=F[d>>2];F[a+12>>2]=b;b=F[d+12>>2];F[a+16>>2]=F[d+8>>2];F[a+20>>2]=b;b=F[d+20>>2];F[a+24>>2]=F[d+16>>2];F[a+28>>2]=b;F[a+40>>2]=0;F[a+32>>2]=0;F[a+36>>2]=0;b=F[d+28>>2];c=F[d+24>>2];if((b|0)!=(c|0)){e=b-c|0;if((e|0)<0){break a}b=rj(e);F[a+32>>2]=b;F[a+40>>2]=b+(e>>2<<2);n=a,o=Ri(b,c,e)+e|0,F[n+36>>2]=o}b=F[f+4>>2];F[a+44>>2]=F[f>>2];F[a+48>>2]=b;b=F[f+12>>2];F[a+52>>2]=F[f+8>>2];F[a+56>>2]=b;F[a+60>>2]=0;F[a+64>>2]=0;F[a>>2]=3564;F[a+68>>2]=0;F[a+72>>2]=0;F[a+76>>2]=0;F[a+80>>2]=0;F[a+84>>2]=0;F[a+88>>2]=0;F[a+92>>2]=0;F[a+96>>2]=0;F[a+100>>2]=0;F[a+104>>2]=0;F[a+108>>2]=0;break e;case 2:a=rj(92);F[a+4>>2]=j;F[a>>2]=3272;b=F[d+4>>2];F[a+8>>2]=F[d>>2];F[a+12>>2]=b;b=F[d+12>>2];F[a+16>>2]=F[d+8>>2];F[a+20>>2]=b;b=F[d+20>>2];F[a+24>>2]=F[d+16>>2];F[a+28>>2]=b;F[a+40>>2]=0;F[a+32>>2]=0;F[a+36>>2]=0;b=F[d+28>>2];c=F[d+24>>2];if((b|0)!=(c|0)){e=b-c|0;if((e|0)<0){break a}b=rj(e);F[a+32>>2]=b;F[a+40>>2]=b+(e>>2<<2);n=a,o=Ri(b,c,e)+e|0,F[n+36>>2]=o}b=F[f+4>>2];F[a+44>>2]=F[f>>2];F[a+48>>2]=b;b=F[f+12>>2];F[a+52>>2]=F[f+8>>2];F[a+56>>2]=b;F[a+60>>2]=0;F[a+64>>2]=0;F[a>>2]=3812;F[a+68>>2]=0;F[a+72>>2]=0;F[a+76>>2]=0;F[a+80>>2]=0;F[a+84>>2]=0;F[a+88>>2]=l;break e;case 4:a=rj(104);F[a+4>>2]=j;F[a>>2]=3272;b=F[d+4>>2];F[a+8>>2]=F[d>>2];F[a+12>>2]=b;b=F[d+12>>2];F[a+16>>2]=F[d+8>>2];F[a+20>>2]=b;b=F[d+20>>2];F[a+24>>2]=F[d+16>>2];F[a+28>>2]=b;F[a+40>>2]=0;F[a+32>>2]=0;F[a+36>>2]=0;b=F[d+28>>2];c=F[d+24>>2];if((b|0)!=(c|0)){e=b-c|0;if((e|0)<0){break a}b=rj(e);F[a+32>>2]=b;F[a+40>>2]=b+(e>>2<<2);n=a,o=Ri(b,c,e)+e|0,F[n+36>>2]=o}b=F[f+4>>2];F[a+44>>2]=F[f>>2];F[a+48>>2]=b;b=F[f+12>>2];F[a+52>>2]=F[f+8>>2];F[a+56>>2]=b;F[a+84>>2]=0;F[a+76>>2]=0;F[a+80>>2]=0;F[a+60>>2]=0;F[a+64>>2]=0;F[a>>2]=4040;b=F[f+4>>2];F[a+88>>2]=F[f>>2];F[a+92>>2]=b;b=F[f+12>>2];F[a+96>>2]=F[f+8>>2];F[a+100>>2]=b;break e;case 5:break f;default:break e}}a=rj(128);F[a+4>>2]=j;F[a>>2]=3272;b=F[d+4>>2];F[a+8>>2]=F[d>>2];F[a+12>>2]=b;b=F[d+12>>2];F[a+16>>2]=F[d+8>>2];F[a+20>>2]=b;b=F[d+20>>2];F[a+24>>2]=F[d+16>>2];F[a+28>>2]=b;F[a+40>>2]=0;F[a+32>>2]=0;F[a+36>>2]=0;g:{c=F[d+28>>2];b=F[d+24>>2];if((c|0)!=(b|0)){c=c-b|0;if((c|0)<0){break a}b=rj(c);F[a+32>>2]=b;F[a+36>>2]=b;F[a+40>>2]=b+(c>>2<<2);c=F[d+24>>2];e=F[d+28>>2]-c|0;if((e|0)>0){b=Ri(b,c,e)+e|0}F[a+36>>2]=b}F[a>>2]=3216;b=F[f+4>>2];F[a+44>>2]=F[f>>2];F[a+48>>2]=b;b=F[f+12>>2];F[a+52>>2]=F[f+8>>2];F[a+56>>2]=b;b=a- -64|0;F[b>>2]=0;F[b+4>>2]=0;F[a+60>>2]=4904;F[a>>2]=4276;b=F[f+4>>2];F[a+72>>2]=F[f>>2];F[a+76>>2]=b;b=F[f+12>>2];F[a+80>>2]=F[f+8>>2];F[a+84>>2]=b;F[a+104>>2]=1065353216;F[a+108>>2]=-1;F[a+96>>2]=-1;F[a+100>>2]=-1;F[a+88>>2]=1;F[a+92>>2]=-1;F[a+60>>2]=4512;F[a+112>>2]=0;F[a+116>>2]=0;D[a+117|0]=0;D[a+118|0]=0;D[a+119|0]=0;D[a+120|0]=0;D[a+121|0]=0;D[a+122|0]=0;D[a+123|0]=0;D[a+124|0]=0;break g}}break d}a=F[g+44>>2];F[i+12>>2]=e;F[i+8>>2]=a;F[i+20>>2]=k;F[i+16>>2]=k+12;f=i+8|0;a=0;h:{i:{switch(b-1|0){case 0:a=rj(60);F[a+4>>2]=j;F[a>>2]=3272;b=F[d+4>>2];F[a+8>>2]=F[d>>2];F[a+12>>2]=b;b=F[d+12>>2];F[a+16>>2]=F[d+8>>2];F[a+20>>2]=b;b=F[d+20>>2];F[a+24>>2]=F[d+16>>2];F[a+28>>2]=b;F[a+40>>2]=0;F[a+32>>2]=0;F[a+36>>2]=0;b=F[d+28>>2];c=F[d+24>>2];if((b|0)!=(c|0)){e=b-c|0;if((e|0)<0){break a}b=rj(e);F[a+32>>2]=b;F[a+40>>2]=b+(e>>2<<2);n=a,o=Ri(b,c,e)+e|0,F[n+36>>2]=o}b=F[f+4>>2];F[a+44>>2]=F[f>>2];F[a+48>>2]=b;b=F[f+12>>2];F[a+52>>2]=F[f+8>>2];F[a+56>>2]=b;F[a>>2]=4932;break h;case 1:a=rj(60);F[a+4>>2]=j;F[a>>2]=3272;b=F[d+4>>2];F[a+8>>2]=F[d>>2];F[a+12>>2]=b;b=F[d+12>>2];F[a+16>>2]=F[d+8>>2];F[a+20>>2]=b;b=F[d+20>>2];F[a+24>>2]=F[d+16>>2];F[a+28>>2]=b;F[a+40>>2]=0;F[a+32>>2]=0;F[a+36>>2]=0;b=F[d+28>>2];c=F[d+24>>2];if((b|0)!=(c|0)){e=b-c|0;if((e|0)<0){break a}b=rj(e);F[a+32>>2]=b;F[a+40>>2]=b+(e>>2<<2);n=a,o=Ri(b,c,e)+e|0,F[n+36>>2]=o}b=F[f+4>>2];F[a+44>>2]=F[f>>2];F[a+48>>2]=b;b=F[f+12>>2];F[a+52>>2]=F[f+8>>2];F[a+56>>2]=b;F[a>>2]=5356;break h;case 3:a=rj(112);F[a+4>>2]=j;F[a>>2]=3272;b=F[d+4>>2];F[a+8>>2]=F[d>>2];F[a+12>>2]=b;b=F[d+12>>2];F[a+16>>2]=F[d+8>>2];F[a+20>>2]=b;b=F[d+20>>2];F[a+24>>2]=F[d+16>>2];F[a+28>>2]=b;F[a+40>>2]=0;F[a+32>>2]=0;F[a+36>>2]=0;b=F[d+28>>2];c=F[d+24>>2];if((b|0)!=(c|0)){e=b-c|0;if((e|0)<0){break a}b=rj(e);F[a+32>>2]=b;F[a+40>>2]=b+(e>>2<<2);n=a,o=Ri(b,c,e)+e|0,F[n+36>>2]=o}b=F[f+4>>2];F[a+44>>2]=F[f>>2];F[a+48>>2]=b;b=F[f+12>>2];F[a+52>>2]=F[f+8>>2];F[a+56>>2]=b;F[a+60>>2]=0;F[a+64>>2]=0;F[a>>2]=5580;F[a+68>>2]=0;F[a+72>>2]=0;F[a+76>>2]=0;F[a+80>>2]=0;F[a+84>>2]=0;F[a+88>>2]=0;F[a+92>>2]=0;F[a+96>>2]=0;F[a+100>>2]=0;F[a+104>>2]=0;F[a+108>>2]=0;break h;case 2:a=rj(92);F[a+4>>2]=j;F[a>>2]=3272;b=F[d+4>>2];F[a+8>>2]=F[d>>2];F[a+12>>2]=b;b=F[d+12>>2];F[a+16>>2]=F[d+8>>2];F[a+20>>2]=b;b=F[d+20>>2];F[a+24>>2]=F[d+16>>2];F[a+28>>2]=b;F[a+40>>2]=0;F[a+32>>2]=0;F[a+36>>2]=0;b=F[d+28>>2];c=F[d+24>>2];if((b|0)!=(c|0)){e=b-c|0;if((e|0)<0){break a}b=rj(e);F[a+32>>2]=b;F[a+40>>2]=b+(e>>2<<2);n=a,o=Ri(b,c,e)+e|0,F[n+36>>2]=o}b=F[f+4>>2];F[a+44>>2]=F[f>>2];F[a+48>>2]=b;b=F[f+12>>2];F[a+52>>2]=F[f+8>>2];F[a+56>>2]=b;F[a+60>>2]=0;F[a+64>>2]=0;F[a>>2]=5816;F[a+68>>2]=0;F[a+72>>2]=0;F[a+76>>2]=0;F[a+80>>2]=0;F[a+84>>2]=0;F[a+88>>2]=l;break h;case 4:a=rj(104);F[a+4>>2]=j;F[a>>2]=3272;b=F[d+4>>2];F[a+8>>2]=F[d>>2];F[a+12>>2]=b;b=F[d+12>>2];F[a+16>>2]=F[d+8>>2];F[a+20>>2]=b;b=F[d+20>>2];F[a+24>>2]=F[d+16>>2];F[a+28>>2]=b;F[a+40>>2]=0;F[a+32>>2]=0;F[a+36>>2]=0;b=F[d+28>>2];c=F[d+24>>2];if((b|0)!=(c|0)){e=b-c|0;if((e|0)<0){break a}b=rj(e);F[a+32>>2]=b;F[a+40>>2]=b+(e>>2<<2);n=a,o=Ri(b,c,e)+e|0,F[n+36>>2]=o}b=F[f+4>>2];F[a+44>>2]=F[f>>2];F[a+48>>2]=b;b=F[f+12>>2];F[a+52>>2]=F[f+8>>2];F[a+56>>2]=b;F[a+84>>2]=0;F[a+76>>2]=0;F[a+80>>2]=0;F[a+60>>2]=0;F[a+64>>2]=0;F[a>>2]=6032;b=F[f+4>>2];F[a+88>>2]=F[f>>2];F[a+92>>2]=b;b=F[f+12>>2];F[a+96>>2]=F[f+8>>2];F[a+100>>2]=b;break h;case 5:break i;default:break h}}a=rj(128);F[a+4>>2]=j;F[a>>2]=3272;b=F[d+4>>2];F[a+8>>2]=F[d>>2];F[a+12>>2]=b;b=F[d+12>>2];F[a+16>>2]=F[d+8>>2];F[a+20>>2]=b;b=F[d+20>>2];F[a+24>>2]=F[d+16>>2];F[a+28>>2]=b;F[a+40>>2]=0;F[a+32>>2]=0;F[a+36>>2]=0;j:{c=F[d+28>>2];b=F[d+24>>2];if((c|0)!=(b|0)){c=c-b|0;if((c|0)<0){break a}b=rj(c);F[a+32>>2]=b;F[a+36>>2]=b;F[a+40>>2]=b+(c>>2<<2);c=F[d+24>>2];e=F[d+28>>2]-c|0;if((e|0)>0){b=Ri(b,c,e)+e|0}F[a+36>>2]=b}F[a>>2]=5300;b=F[f+4>>2];F[a+44>>2]=F[f>>2];F[a+48>>2]=b;b=F[f+12>>2];F[a+52>>2]=F[f+8>>2];F[a+56>>2]=b;b=a- -64|0;F[b>>2]=0;F[b+4>>2]=0;F[a+60>>2]=6840;F[a>>2]=6256;b=F[f+4>>2];F[a+72>>2]=F[f>>2];F[a+76>>2]=b;b=F[f+12>>2];F[a+80>>2]=F[f+8>>2];F[a+84>>2]=b;F[a+104>>2]=1065353216;F[a+108>>2]=-1;F[a+96>>2]=-1;F[a+100>>2]=-1;F[a+88>>2]=1;F[a+92>>2]=-1;F[a+60>>2]=6476;F[a+112>>2]=0;F[a+116>>2]=0;D[a+117|0]=0;D[a+118|0]=0;D[a+119|0]=0;D[a+120|0]=0;D[a+121|0]=0;D[a+122|0]=0;D[a+123|0]=0;D[a+124|0]=0;break j}}}fa=i+32|0;e=a;if(a){break c}}e=rj(44);F[e+4>>2]=m;F[e>>2]=3272;a=F[d+4>>2];F[e+8>>2]=F[d>>2];F[e+12>>2]=a;a=F[d+12>>2];F[e+16>>2]=F[d+8>>2];F[e+20>>2]=a;a=F[d+20>>2];F[e+24>>2]=F[d+16>>2];F[e+28>>2]=a;F[e+40>>2]=0;F[e+32>>2]=0;F[e+36>>2]=0;a=F[d+28>>2];b=F[d+24>>2];if((a|0)!=(b|0)){c=a-b|0;if((c|0)<0){break a}a=rj(c);F[e+32>>2]=a;F[e+40>>2]=a+(c>>2<<2);n=e,o=Ri(a,b,c)+c|0,F[n+36>>2]=o}F[e>>2]=6868;break c}a=F[h+32>>2];if(!a){break b}F[h+36>>2]=a;oj(a)}fa=h+48|0;return e|0}Ia();V()}function Di(a,b){var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0;m=fa-32|0;fa=m;o=rj(12);F[o+8>>2]=0;F[o+4>>2]=b;F[o>>2]=0;t=o+12|0;b=t;a:{b:{c:{d:{while(1){b=b-12|0;w=F[b+8>>2];j=F[b+4>>2];u=F[b>>2];if(u){q=0;if((w|0)>1e3){break a}F[m+24>>2]=0;F[m+16>>2]=0;F[m+20>>2]=0;f=1;c=F[a>>2];d=F[c+8>>2];h=F[c+12>>2];e=F[c+20>>2];g=d;d=F[c+16>>2];e:{if((h|0)<=(e|0)&g>>>0<=d>>>0|(e|0)>(h|0)){break e}h=G[d+F[c>>2]|0];d=d+1|0;e=d?e:e+1|0;F[c+16>>2]=d;F[c+20>>2]=e;yj(m+16|0,h);if(h){d=F[a>>2];l=xj(m+16|0);e=F[d+20>>2];i=F[d+16>>2];c=h;n=i+c|0;g=F[d+12>>2];e=c>>>0>n>>>0?e+1|0:e;if(n>>>0>I[d+8>>2]&(g|0)<=(e|0)|(e|0)>(g|0)){break e}Ri(l,i+F[d>>2]|0,h);e=F[d+20>>2];f=c+F[d+16>>2]|0;e=f>>>0>>0?e+1|0:e;F[d+16>>2]=f;F[d+20>>2]=e}j=rj(24);c=j;F[c+4>>2]=0;F[c+8>>2]=0;c=c+16|0;F[c>>2]=0;F[c+4>>2]=0;F[j>>2]=j+4;F[j+12>>2]=c;e=fa-32|0;fa=e;h=u+12|0;c=m+16|0;p=qg(h,c);k=u+16|0;f:{if((p|0)==(k|0)){F[e+16>>2]=c;g:{h:{d=F[h+4>>2];i:{if(!d){f=h+4|0;c=f;break i}f=G[c+11|0];g=f<<24>>24<0;n=g?F[c>>2]:c;g=g?F[c+4>>2]:f;while(1){c=d;d=G[c+27|0];f=d<<24>>24<0;d=f?F[c+20>>2]:d;l=d>>>0>>0;j:{k:{l:{m:{i=l?d:g;n:{if(i){r=c+16|0;f=f?F[r>>2]:r;r=Zi(n,f,i);if(!r){if(d>>>0>g>>>0){break n}break m}if((r|0)>=0){break m}break n}if(d>>>0<=g>>>0){break l}}f=c;d=F[c>>2];if(d){continue}break i}d=Zi(f,n,i);if(d){break k}}if(l){break j}break h}if((d|0)>=0){break h}}d=F[c+4>>2];if(d){continue}break}f=c+4|0}d=rj(32);n=d+16|0;g=F[e+16>>2];o:{if(D[g+11|0]>=0){l=F[g+4>>2];F[n>>2]=F[g>>2];F[n+4>>2]=l;F[n+8>>2]=F[g+8>>2];break o}uj(n,F[g>>2],F[g+4>>2])}F[d+8>>2]=c;F[d>>2]=0;F[d+4>>2]=0;F[d+28>>2]=0;F[f>>2]=d;c=d;g=F[F[h>>2]>>2];if(g){F[h>>2]=g;c=F[f>>2]}me(F[h+4>>2],c);F[h+8>>2]=F[h+8>>2]+1;c=1;break g}d=c;c=0}D[e+28|0]=c;F[e+24>>2]=d;d=F[e+24>>2];c=F[d+28>>2];F[d+28>>2]=j;if(!c){break f}gg(c+12|0,F[c+16>>2]);hg(c,F[c+4>>2]);oj(c);break f}if(!j){break f}gg(j+12|0,F[j+16>>2]);hg(j,F[j+4>>2]);oj(j)}fa=e+32|0;f=(k|0)!=(p|0)}if(D[m+27|0]<0){oj(F[m+16>>2])}if(f){break a}}q=0;if(!j){break a}F[m+16>>2]=0;if(!Ei(1,m+16|0,F[a>>2])){break a}p=0;x=F[m+16>>2];if(x){while(1){c=0;i=fa-32|0;fa=i;F[i+24>>2]=0;F[i+16>>2]=0;F[i+20>>2]=0;d=F[a>>2];f=F[d+8>>2];p:{q:{h=F[d+12>>2];e=F[d+20>>2];g=F[d+16>>2];r:{if((h|0)<=(e|0)&g>>>0>=f>>>0|(e|0)>(h|0)){break r}h=G[g+F[d>>2]|0];f=d;d=e;e=g+1|0;d=e?d:d+1|0;F[f+16>>2]=e;F[f+20>>2]=d;yj(i+16|0,h);if(h){f=F[a>>2];l=xj(i+16|0);e=F[f+20>>2];k=F[f+16>>2];d=h;n=k+d|0;g=F[f+12>>2];e=d>>>0>n>>>0?e+1|0:e;if(n>>>0>I[f+8>>2]&(g|0)<=(e|0)|(e|0)>(g|0)){break r}Ri(l,k+F[f>>2]|0,h);e=F[f+20>>2];h=d+F[f+16>>2]|0;e=h>>>0>>0?e+1|0:e;F[f+16>>2]=h;F[f+20>>2]=e}F[i+12>>2]=0;if(!Ei(1,i+12|0,F[a>>2])){break r}d=F[i+12>>2];if(!d){break r}F[i+8>>2]=0;F[i>>2]=0;F[i+4>>2]=0;if((d|0)<0){break q}c=rj(d);F[i>>2]=c;e=c+d|0;F[i+8>>2]=e;l=Ti(c,0,d);F[i+4>>2]=e;e=F[a>>2];r=F[e+8>>2];h=F[e+12>>2];y=h;f=F[e+20>>2];k=F[e+16>>2];g=d+k|0;f=g>>>0>>0?f+1|0:f;s:{z=g;n=f;if(g>>>0>r>>>0&(f|0)>=(h|0)|(f|0)>(h|0)){break s}Ri(l,k+F[e>>2]|0,d);c=d;f=c+F[e+16>>2]|0;d=F[e+20>>2];F[e+16>>2]=f;F[e+20>>2]=c>>>0>f>>>0?d+1|0:d;h=fa-48|0;fa=h;e=qg(j,i+16|0);if((e|0)!=(j+4|0)){c=F[e+4>>2];t:{if(!c){c=e;while(1){d=F[c+8>>2];f=F[d>>2]!=(c|0);c=d;if(f){continue}break}break t}while(1){d=c;c=F[c>>2];if(c){continue}break}}if((e|0)==F[j>>2]){F[j>>2]=d}F[j+8>>2]=F[j+8>>2]-1;f=F[j+4>>2];u:{v:{g=e;d=e;e=F[d>>2];if(e){c=F[g+4>>2];if(!c){break v}while(1){d=c;c=F[c>>2];if(c){continue}break}}e=F[d+4>>2];if(e){break v}e=0;l=1;break u}F[e+8>>2]=F[d+8>>2];l=0}k=F[d+8>>2];c=F[k>>2];w:{if((d|0)==(c|0)){F[k>>2]=e;if((d|0)==(f|0)){c=0;f=e;break w}c=F[k+4>>2];break w}F[k+4>>2]=e}s=!G[d+12|0];if((d|0)!=(g|0)){k=F[g+8>>2];F[d+8>>2]=k;F[k+(((g|0)!=F[F[g+8>>2]>>2])<<2)>>2]=d;k=F[g>>2];F[d>>2]=k;F[k+8>>2]=d;k=F[g+4>>2];F[d+4>>2]=k;if(k){F[k+8>>2]=d}D[d+12|0]=G[g+12|0];f=(f|0)==(g|0)?d:f}x:{if(s|!f){break x}if(l){while(1){e=G[c+12|0];y:{d=F[c+8>>2];if(F[d>>2]!=(c|0)){if(!e){D[c+12|0]=1;D[d+12|0]=0;e=F[d+4>>2];l=F[e>>2];F[d+4>>2]=l;if(l){F[l+8>>2]=d}F[e+8>>2]=F[d+8>>2];l=F[d+8>>2];F[(((d|0)!=F[l>>2])<<2)+l>>2]=e;F[e>>2]=d;F[d+8>>2]=e;d=c;c=F[c>>2];f=(c|0)==(f|0)?d:f;c=F[c+4>>2]}z:{A:{d=F[c>>2];B:{if(!(G[d+12|0]?0:d)){e=F[c+4>>2];if(G[e+12|0]?0:e){break B}D[c+12|0]=0;c=F[c+8>>2];C:{if((f|0)==(c|0)){c=f;break C}if(G[c+12|0]){break y}}D[c+12|0]=1;break x}e=F[c+4>>2];if(!e){break A}}if(G[e+12|0]){break A}d=c;break z}D[d+12|0]=1;D[c+12|0]=0;e=F[d+4>>2];F[c>>2]=e;if(e){F[e+8>>2]=c}F[d+8>>2]=F[c+8>>2];e=F[c+8>>2];F[((F[e>>2]!=(c|0))<<2)+e>>2]=d;F[d+4>>2]=c;F[c+8>>2]=d;e=c}c=F[d+8>>2];D[d+12|0]=G[c+12|0];D[c+12|0]=1;D[e+12|0]=1;d=F[c+4>>2];e=F[d>>2];F[c+4>>2]=e;if(e){F[e+8>>2]=c}F[d+8>>2]=F[c+8>>2];e=F[c+8>>2];F[(((c|0)!=F[e>>2])<<2)+e>>2]=d;F[d>>2]=c;F[c+8>>2]=d;break x}if(!e){D[c+12|0]=1;D[d+12|0]=0;e=F[c+4>>2];F[d>>2]=e;if(e){F[e+8>>2]=d}F[c+8>>2]=F[d+8>>2];e=F[d+8>>2];F[(((d|0)!=F[e>>2])<<2)+e>>2]=c;F[c+4>>2]=d;F[d+8>>2]=c;f=(d|0)==(f|0)?c:f;c=F[d>>2]}e=F[c>>2];D:{if(!(!e|G[e+12|0])){d=c;break D}d=F[c+4>>2];if(!(G[d+12|0]?0:d)){D[c+12|0]=0;c=F[c+8>>2];if((c|0)!=(f|0)?G[c+12|0]:0){break y}D[c+12|0]=1;break x}if(e){if(!G[e+12|0]){d=c;break D}d=F[c+4>>2]}D[d+12|0]=1;D[c+12|0]=0;e=F[d>>2];F[c+4>>2]=e;if(e){F[e+8>>2]=c}F[d+8>>2]=F[c+8>>2];e=F[c+8>>2];F[((F[e>>2]!=(c|0))<<2)+e>>2]=d;F[d>>2]=c;F[c+8>>2]=d;e=c}c=F[d+8>>2];D[d+12|0]=G[c+12|0];D[c+12|0]=1;D[e+12|0]=1;d=F[c>>2];e=F[d+4>>2];F[c>>2]=e;if(e){F[e+8>>2]=c}F[d+8>>2]=F[c+8>>2];e=F[c+8>>2];F[(((c|0)!=F[e>>2])<<2)+e>>2]=d;F[d+4>>2]=c;F[c+8>>2]=d;break x}d=c;c=F[c+8>>2];c=F[(((d|0)==F[c>>2])<<2)+c>>2];continue}}D[e+12|0]=1}c=F[g+28>>2];if(c){F[g+32>>2]=c;oj(c)}if(D[g+27|0]<0){oj(F[g+16>>2])}oj(g)}F[h+8>>2]=0;F[h>>2]=0;F[h+4>>2]=0;c=F[i+4>>2];d=F[i>>2];f=c-d|0;e=0;E:{F:{if((c|0)!=(d|0)){if((f|0)<0){break F}e=rj(f);c=Ti(e,0,f);g=c+f|0;F[h+8>>2]=g;F[h+4>>2]=g;F[h>>2]=c;c=d}Ri(e,c,f);G:{if(D[i+27|0]>=0){F[h+24>>2]=F[i+24>>2];c=F[i+20>>2];F[h+16>>2]=F[i+16>>2];F[h+20>>2]=c;break G}uj(h+16|0,F[i+16>>2],F[i+20>>2])}Gi(h+28|0,h);f=h+16|0;c=f;H:{I:{d=F[j+4>>2];J:{if(!d){e=j+4|0;c=e;break J}e=G[c+11|0];g=e<<24>>24<0;l=g?F[c>>2]:c;g=g?F[c+4>>2]:e;while(1){c=d;d=G[c+27|0];e=d<<24>>24<0;d=e?F[c+20>>2]:d;k=d>>>0>>0;K:{L:{M:{N:{v=k?d:g;O:{if(v){s=c+16|0;e=e?F[s>>2]:s;s=Zi(l,e,v);if(!s){if(d>>>0>g>>>0){break O}break N}if((s|0)>=0){break N}break O}if(d>>>0<=g>>>0){break M}}e=c;d=F[c>>2];if(d){continue}break J}d=Zi(e,l,v);if(d){break L}}if(k){break K}break I}if((d|0)>=0){break I}}d=F[c+4>>2];if(d){continue}break}e=c+4|0}d=rj(40);F[d+24>>2]=F[f+8>>2];g=F[f+4>>2];F[d+16>>2]=F[f>>2];F[d+20>>2]=g;F[f>>2]=0;F[f+4>>2]=0;F[f+8>>2]=0;Gi(d+28|0,f+12|0);F[d+8>>2]=c;F[d>>2]=0;F[d+4>>2]=0;F[e>>2]=d;c=d;f=F[F[j>>2]>>2];if(f){F[j>>2]=f;c=F[e>>2]}me(F[j+4>>2],c);F[j+8>>2]=F[j+8>>2]+1;c=1;break H}d=c;c=0}D[h+44|0]=c;F[h+40>>2]=d;c=F[h+28>>2];if(c){F[h+32>>2]=c;oj(c)}if(D[h+27|0]<0){oj(F[h+16>>2])}c=F[h>>2];if(c){F[h+4>>2]=c;oj(c)}fa=h+48|0;break E}Ia();V()}c=F[i>>2];if(c){break s}c=1;break r}F[i+4>>2]=c;oj(c);c=(n|0)<=(y|0)&r>>>0>=z>>>0|(n|0)<(y|0)}if(D[i+27|0]<0){oj(F[i+16>>2])}fa=i+32|0;break p}Ia();V()}if(!c){break a}p=p+1|0;if((x|0)!=(p|0)){continue}break}}F[m+12>>2]=0;if(!Ei(1,m+12|0,F[a>>2])){break b}c=F[a>>2];d=F[c+8>>2];e=F[c+16>>2];f=d-e|0;q=F[m+12>>2];c=F[c+12>>2]-(F[c+20>>2]+(d>>>0>>0)|0)|0;if(f>>>0>>0&(c|0)<=0|(c|0)<0){break b}if(q){p=0;h=((u|0)!=0)+w|0;while(1){P:{if(b>>>0>>0){F[b+8>>2]=h;F[b+4>>2]=0;F[b>>2]=j;b=b+12|0;q=F[m+12>>2];break P}e=b-o|0;c=(e|0)/12|0;b=c+1|0;if(b>>>0>=357913942){break d}d=(t-o|0)/12|0;f=d<<1;f=d>>>0<178956970?b>>>0>>0?f:b:357913941;if(f){if(f>>>0>=357913942){break c}b=rj(L(f,12))}else{b=0}d=b+L(c,12)|0;F[d+8>>2]=h;F[d+4>>2]=0;F[d>>2]=j;c=d+L((e|0)/-12|0,12)|0;if((e|0)>0){Ri(c,o,e)}t=b+L(f,12)|0;b=d+12|0;if(o){oj(o)}o=c}p=p+1|0;if(p>>>0>>0){continue}break}}if((b|0)!=(o|0)){continue}break}q=1;break a}Ia();V()}Wa();V()}q=0}if(o){oj(o)}fa=m+32|0;return q}function dg(a,b,c,d,e){var f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0;i=fa-32|0;fa=i;F[b+32>>2]=d;F[b+40>>2]=c;F[b+4>>2]=e;$f(a,d,i+16|0);a:{if(F[a>>2]){break a}h=a+4|0;if(D[a+15|0]<0){oj(F[h>>2])}d=G[i+23|0];if((ja[F[F[b>>2]+8>>2]](b)|0)!=(d|0)){b=rj(64);c=G[1314]|G[1315]<<8;D[b+48|0]=c;D[b+49|0]=c>>>8;c=G[1310]|G[1311]<<8|(G[1312]<<16|G[1313]<<24);d=G[1306]|G[1307]<<8|(G[1308]<<16|G[1309]<<24);D[b+40|0]=d;D[b+41|0]=d>>>8;D[b+42|0]=d>>>16;D[b+43|0]=d>>>24;D[b+44|0]=c;D[b+45|0]=c>>>8;D[b+46|0]=c>>>16;D[b+47|0]=c>>>24;c=G[1302]|G[1303]<<8|(G[1304]<<16|G[1305]<<24);d=G[1298]|G[1299]<<8|(G[1300]<<16|G[1301]<<24);D[b+32|0]=d;D[b+33|0]=d>>>8;D[b+34|0]=d>>>16;D[b+35|0]=d>>>24;D[b+36|0]=c;D[b+37|0]=c>>>8;D[b+38|0]=c>>>16;D[b+39|0]=c>>>24;c=G[1294]|G[1295]<<8|(G[1296]<<16|G[1297]<<24);d=G[1290]|G[1291]<<8|(G[1292]<<16|G[1293]<<24);D[b+24|0]=d;D[b+25|0]=d>>>8;D[b+26|0]=d>>>16;D[b+27|0]=d>>>24;D[b+28|0]=c;D[b+29|0]=c>>>8;D[b+30|0]=c>>>16;D[b+31|0]=c>>>24;c=G[1286]|G[1287]<<8|(G[1288]<<16|G[1289]<<24);d=G[1282]|G[1283]<<8|(G[1284]<<16|G[1285]<<24);D[b+16|0]=d;D[b+17|0]=d>>>8;D[b+18|0]=d>>>16;D[b+19|0]=d>>>24;D[b+20|0]=c;D[b+21|0]=c>>>8;D[b+22|0]=c>>>16;D[b+23|0]=c>>>24;c=G[1278]|G[1279]<<8|(G[1280]<<16|G[1281]<<24);d=G[1274]|G[1275]<<8|(G[1276]<<16|G[1277]<<24);D[b+8|0]=d;D[b+9|0]=d>>>8;D[b+10|0]=d>>>16;D[b+11|0]=d>>>24;D[b+12|0]=c;D[b+13|0]=c>>>8;D[b+14|0]=c>>>16;D[b+15|0]=c>>>24;c=G[1270]|G[1271]<<8|(G[1272]<<16|G[1273]<<24);d=G[1266]|G[1267]<<8|(G[1268]<<16|G[1269]<<24);D[b|0]=d;D[b+1|0]=d>>>8;D[b+2|0]=d>>>16;D[b+3|0]=d>>>24;D[b+4|0]=c;D[b+5|0]=c>>>8;D[b+6|0]=c>>>16;D[b+7|0]=c>>>24;D[b+50|0]=0;F[a>>2]=-1;uj(h,b,50);oj(b);break a}c=G[i+21|0];D[b+36|0]=c;e=G[i+22|0];D[b+37|0]=e;if((c-3&255)>>>0<=253){b=rj(32);c=G[1427]|G[1428]<<8|(G[1429]<<16|G[1430]<<24);d=G[1423]|G[1424]<<8|(G[1425]<<16|G[1426]<<24);D[b+14|0]=d;D[b+15|0]=d>>>8;D[b+16|0]=d>>>16;D[b+17|0]=d>>>24;D[b+18|0]=c;D[b+19|0]=c>>>8;D[b+20|0]=c>>>16;D[b+21|0]=c>>>24;c=G[1421]|G[1422]<<8|(G[1423]<<16|G[1424]<<24);d=G[1417]|G[1418]<<8|(G[1419]<<16|G[1420]<<24);D[b+8|0]=d;D[b+9|0]=d>>>8;D[b+10|0]=d>>>16;D[b+11|0]=d>>>24;D[b+12|0]=c;D[b+13|0]=c>>>8;D[b+14|0]=c>>>16;D[b+15|0]=c>>>24;c=G[1413]|G[1414]<<8|(G[1415]<<16|G[1416]<<24);d=G[1409]|G[1410]<<8|(G[1411]<<16|G[1412]<<24);D[b|0]=d;D[b+1|0]=d>>>8;D[b+2|0]=d>>>16;D[b+3|0]=d>>>24;D[b+4|0]=c;D[b+5|0]=c>>>8;D[b+6|0]=c>>>16;D[b+7|0]=c>>>24;D[b+22|0]=0;F[a>>2]=-5;uj(h,b,22);oj(b);break a}if(!((c|0)!=2|e>>>0<=(d?2:3)>>>0)){b=rj(32);c=G[1404]|G[1405]<<8|(G[1406]<<16|G[1407]<<24);d=G[1400]|G[1401]<<8|(G[1402]<<16|G[1403]<<24);D[b+14|0]=d;D[b+15|0]=d>>>8;D[b+16|0]=d>>>16;D[b+17|0]=d>>>24;D[b+18|0]=c;D[b+19|0]=c>>>8;D[b+20|0]=c>>>16;D[b+21|0]=c>>>24;c=G[1398]|G[1399]<<8|(G[1400]<<16|G[1401]<<24);d=G[1394]|G[1395]<<8|(G[1396]<<16|G[1397]<<24);D[b+8|0]=d;D[b+9|0]=d>>>8;D[b+10|0]=d>>>16;D[b+11|0]=d>>>24;D[b+12|0]=c;D[b+13|0]=c>>>8;D[b+14|0]=c>>>16;D[b+15|0]=c>>>24;c=G[1390]|G[1391]<<8|(G[1392]<<16|G[1393]<<24);d=G[1386]|G[1387]<<8|(G[1388]<<16|G[1389]<<24);D[b|0]=d;D[b+1|0]=d>>>8;D[b+2|0]=d>>>16;D[b+3|0]=d>>>24;D[b+4|0]=c;D[b+5|0]=c>>>8;D[b+6|0]=c>>>16;D[b+7|0]=c>>>24;D[b+22|0]=0;F[a>>2]=-5;uj(h,b,22);oj(b);break a}c=e|c<<8;E[F[b+32>>2]+38>>1]=c;b:{if((c&65535)>>>0<259|E[i+26>>1]>=0){break b}j=fa-16|0;fa=j;e=rj(36);c=e;F[c+4>>2]=0;F[c+8>>2]=0;F[c+24>>2]=0;F[c+28>>2]=0;c=c+16|0;F[c>>2]=0;F[c+4>>2]=0;F[e>>2]=e+4;F[e+32>>2]=0;F[e+12>>2]=c;F[j>>2]=0;d=F[b+32>>2];k=fa-16|0;fa=k;c=0;c:{if(!e){break c}F[j>>2]=d;F[k+12>>2]=0;c=0;if(!Ei(1,k+12|0,d)){break c}n=F[k+12>>2];if(n){while(1){d:{if(Ei(1,k+8|0,F[j>>2])){c=rj(28);F[c+4>>2]=0;F[c+8>>2]=0;d=c+16|0;F[d>>2]=0;F[d+4>>2]=0;F[c>>2]=c+4;F[c+12>>2]=d;F[c+24>>2]=F[k+8>>2];if(Di(j,c)){break d}gg(c+12|0,F[c+16>>2]);hg(c,F[c+4>>2]);oj(c)}c=0;break c}f=fa-16|0;fa=f;F[f+8>>2]=c;e:{if(!c){F[f+8>>2]=0;break e}d=F[e+28>>2];f:{if(d>>>0>2]){F[f+8>>2]=0;F[d>>2]=c;F[e+28>>2]=d+4;break f}d=0;g:{h:{i:{g=F[e+24>>2];m=F[e+28>>2]-g>>2;c=m+1|0;if(c>>>0<1073741824){g=F[e+32>>2]-g|0;l=g>>1;c=g>>>0<2147483644?c>>>0>>0?l:c:1073741823;if(c){if(c>>>0>=1073741824){break i}d=rj(c<<2)}l=F[f+8>>2];F[f+8>>2]=0;g=(m<<2)+d|0;F[g>>2]=l;m=(c<<2)+d|0;l=g+4|0;d=F[e+28>>2];c=F[e+24>>2];if((d|0)==(c|0)){break h}while(1){d=d-4|0;p=F[d>>2];F[d>>2]=0;g=g-4|0;F[g>>2]=p;if((c|0)!=(d|0)){continue}break}F[e+32>>2]=m;d=F[e+28>>2];F[e+28>>2]=l;c=F[e+24>>2];F[e+24>>2]=g;if((c|0)==(d|0)){break g}while(1){d=d-4|0;g=F[d>>2];F[d>>2]=0;if(g){gg(g+12|0,F[g+16>>2]);hg(g,F[g+4>>2]);oj(g)}if((c|0)!=(d|0)){continue}break}break g}Ia();V()}Wa();V()}F[e+32>>2]=m;F[e+28>>2]=l;F[e+24>>2]=g}if(c){oj(c)}}c=F[f+8>>2];F[f+8>>2]=0;if(!c){break e}gg(c+12|0,F[c+16>>2]);hg(c,F[c+4>>2]);oj(c)}fa=f+16|0;o=o+1|0;if((n|0)!=(o|0)){continue}break}}c=Di(j,e)}fa=k+16|0;j:{if(c){d=F[b+4>>2];c=F[d+4>>2];F[d+4>>2]=e;if(c){cg(c)}F[a>>2]=0;F[a+4>>2]=0;F[a+8>>2]=0;F[a+12>>2]=0;break j}c=rj(32);d=G[1579]|G[1580]<<8;D[c+24|0]=d;D[c+25|0]=d>>>8;d=G[1575]|G[1576]<<8|(G[1577]<<16|G[1578]<<24);f=G[1571]|G[1572]<<8|(G[1573]<<16|G[1574]<<24);D[c+16|0]=f;D[c+17|0]=f>>>8;D[c+18|0]=f>>>16;D[c+19|0]=f>>>24;D[c+20|0]=d;D[c+21|0]=d>>>8;D[c+22|0]=d>>>16;D[c+23|0]=d>>>24;d=G[1567]|G[1568]<<8|(G[1569]<<16|G[1570]<<24);f=G[1563]|G[1564]<<8|(G[1565]<<16|G[1566]<<24);D[c+8|0]=f;D[c+9|0]=f>>>8;D[c+10|0]=f>>>16;D[c+11|0]=f>>>24;D[c+12|0]=d;D[c+13|0]=d>>>8;D[c+14|0]=d>>>16;D[c+15|0]=d>>>24;d=G[1559]|G[1560]<<8|(G[1561]<<16|G[1562]<<24);f=G[1555]|G[1556]<<8|(G[1557]<<16|G[1558]<<24);D[c|0]=f;D[c+1|0]=f>>>8;D[c+2|0]=f>>>16;D[c+3|0]=f>>>24;D[c+4|0]=d;D[c+5|0]=d>>>8;D[c+6|0]=d>>>16;D[c+7|0]=d>>>24;D[c+26|0]=0;F[a>>2]=-1;uj(a+4|0,c,26);oj(c);F[j+8>>2]=0;cg(e)}fa=j+16|0;if(F[a>>2]){break a}if(D[h+11|0]>=0){break b}oj(F[h>>2])}if(!(ja[F[F[b>>2]+12>>2]](b)|0)){b=rj(48);D[b+32|0]=G[1384];c=G[1380]|G[1381]<<8|(G[1382]<<16|G[1383]<<24);d=G[1376]|G[1377]<<8|(G[1378]<<16|G[1379]<<24);D[b+24|0]=d;D[b+25|0]=d>>>8;D[b+26|0]=d>>>16;D[b+27|0]=d>>>24;D[b+28|0]=c;D[b+29|0]=c>>>8;D[b+30|0]=c>>>16;D[b+31|0]=c>>>24;c=G[1372]|G[1373]<<8|(G[1374]<<16|G[1375]<<24);d=G[1368]|G[1369]<<8|(G[1370]<<16|G[1371]<<24);D[b+16|0]=d;D[b+17|0]=d>>>8;D[b+18|0]=d>>>16;D[b+19|0]=d>>>24;D[b+20|0]=c;D[b+21|0]=c>>>8;D[b+22|0]=c>>>16;D[b+23|0]=c>>>24;c=G[1364]|G[1365]<<8|(G[1366]<<16|G[1367]<<24);d=G[1360]|G[1361]<<8|(G[1362]<<16|G[1363]<<24);D[b+8|0]=d;D[b+9|0]=d>>>8;D[b+10|0]=d>>>16;D[b+11|0]=d>>>24;D[b+12|0]=c;D[b+13|0]=c>>>8;D[b+14|0]=c>>>16;D[b+15|0]=c>>>24;c=G[1356]|G[1357]<<8|(G[1358]<<16|G[1359]<<24);d=G[1352]|G[1353]<<8|(G[1354]<<16|G[1355]<<24);D[b|0]=d;D[b+1|0]=d>>>8;D[b+2|0]=d>>>16;D[b+3|0]=d>>>24;D[b+4|0]=c;D[b+5|0]=c>>>8;D[b+6|0]=c>>>16;D[b+7|0]=c>>>24;D[b+33|0]=0;F[a>>2]=-1;uj(h,b,33);oj(b);break a}if(!(ja[F[F[b>>2]+20>>2]](b)|0)){b=ag(i,1582);F[a>>2]=-1;if(D[b+11|0]>=0){a=F[b+4>>2];F[h>>2]=F[b>>2];F[h+4>>2]=a;F[h+8>>2]=F[b+8>>2];break a}uj(h,F[b>>2],F[b+4>>2]);if(D[b+11|0]>=0){break a}oj(F[b>>2]);break a}if(!(ja[F[F[b>>2]+24>>2]](b)|0)){b=ag(i,1317);F[a>>2]=-1;if(D[b+11|0]>=0){a=F[b+4>>2];F[h>>2]=F[b>>2];F[h+4>>2]=a;F[h+8>>2]=F[b+8>>2];break a}uj(h,F[b>>2],F[b+4>>2]);if(D[b+11|0]>=0){break a}oj(F[b>>2]);break a}F[a>>2]=0;F[a+4>>2]=0;F[a+8>>2]=0;F[a+12>>2]=0}fa=i+32|0}function Ib(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=M(0),p=0,q=0,r=0;f=fa-720|0;fa=f;a:{b:{c:{d:{e:{f:{g:{h:{i:{if(H[b+38>>1]>=515){F[f+680>>2]=0;F[f+672>>2]=0;F[f+676>>2]=0;if((ja[F[F[a>>2]+24>>2]](a)|0)<=0){break d}while(1){c=ja[F[F[a>>2]+20>>2]](a,l)|0;d=F[F[F[(ja[F[F[a>>2]+28>>2]](a)|0)+4>>2]+8>>2]+(c<<2)>>2];if(F[d+28>>2]==9){e=F[f+672>>2];c=F[f+676>>2]-e>>2;g=D[d+24|0];j:{if(c>>>0>>0){La(f+672|0,g-c|0);break j}if(c>>>0<=g>>>0){break j}F[f+676>>2]=e+(g<<2)}h=0;c=F[b+20>>2];j=F[b+16>>2];d=g<<2;i=j+d|0;e=F[b+12>>2];c=d>>>0>i>>>0?c+1|0:c;if(i>>>0>I[b+8>>2]&(e|0)<=(c|0)|(c|0)>(e|0)){break b}Ri(F[f+672>>2],j+F[b>>2]|0,d);c=F[b+20>>2];e=d+F[b+16>>2]|0;c=e>>>0>>0?c+1|0:c;F[b+16>>2]=e;F[b+20>>2]=c;m=F[b+12>>2];j=m;i=e+4|0;d=i>>>0<4?c+1|0:c;n=F[b+8>>2];if(n>>>0>>0&(d|0)>=(j|0)|(d|0)>(j|0)){break b}p=F[b>>2];j=p+e|0;j=G[j|0]|G[j+1|0]<<8|(G[j+2|0]<<16|G[j+3|0]<<24);F[b+16>>2]=i;F[b+20>>2]=d;if((d|0)>=(m|0)&i>>>0>=n>>>0|(d|0)>(m|0)){break b}d=G[i+p|0];e=e+5|0;c=e>>>0<5?c+1|0:c;F[b+16>>2]=e;F[b+20>>2]=c;if(d>>>0>31){break b}o=(z(2,j),A());F[f+20>>2]=-1;F[f+16>>2]=1832;F[f+32>>2]=0;F[f+36>>2]=0;F[f+24>>2]=0;F[f+28>>2]=0;c=f+16|0;e=F[f+672>>2];i=d-1|0;if(i>>>0<=29){F[c+4>>2]=d;Pa(c+8|0,e,e+(g<<2)|0);J[c+20>>2]=o}k:{if(i>>>0>=30){break k}if(!Xa(f+16|0,F[F[a+60>>2]+((F[a+40>>2]-F[a+36>>2]|0)/24<<2)>>2])){break k}c=F[a+40>>2];l:{if((c|0)!=F[a+44>>2]){F[c>>2]=1832;d=F[f+20>>2];F[c+16>>2]=0;F[c+8>>2]=0;F[c+12>>2]=0;F[c+4>>2]=d;d=F[f+28>>2];g=F[f+24>>2];if((d|0)!=(g|0)){g=d-g|0;if((g|0)<0){break i}d=rj(g);F[c+8>>2]=d;F[c+12>>2]=d;F[c+16>>2]=d+(g>>2<<2);e=F[f+24>>2];g=F[f+28>>2]-e|0;if((g|0)>0){d=Ri(d,e,g)+g|0}F[c+12>>2]=d}J[c+20>>2]=J[f+36>>2];F[a+40>>2]=c+24;break l}c=0;m:{n:{o:{p:{g=F[a+40>>2];h=F[a+36>>2];e=(g-h|0)/24|0;d=e+1|0;if(d>>>0<178956971){i=(F[a+44>>2]-h|0)/24|0;j=i<<1;i=i>>>0<89478485?d>>>0>>0?j:d:178956970;if(i){if(i>>>0>=178956971){break p}c=rj(L(i,24))}e=L(e,24)+c|0;F[e>>2]=1832;d=F[f+20>>2];F[e+16>>2]=0;F[e+8>>2]=0;F[e+12>>2]=0;F[e+4>>2]=d;d=F[f+28>>2];j=F[f+24>>2];if((d|0)!=(j|0)){d=d-j|0;if((d|0)<0){break o}m=rj(d);F[e+8>>2]=m;F[e+16>>2]=(d>>2<<2)+m;q=e,r=Ri(m,j,d)+d|0,F[q+12>>2]=r}c=L(i,24)+c|0;J[e+20>>2]=J[f+36>>2];d=e+24|0;if((g|0)==(h|0)){break n}while(1){e=e-24|0;F[e>>2]=1832;g=g-24|0;F[e+4>>2]=F[g+4>>2];F[e+8>>2]=F[g+8>>2];F[e+12>>2]=F[g+12>>2];F[e+16>>2]=F[g+16>>2];F[g+16>>2]=0;F[g+8>>2]=0;F[g+12>>2]=0;J[e+20>>2]=J[g+20>>2];if((g|0)!=(h|0)){continue}break}F[a+44>>2]=c;h=F[a+40>>2];F[a+40>>2]=d;g=F[a+36>>2];F[a+36>>2]=e;if((g|0)==(h|0)){break m}while(1){h=h-24|0;ja[F[F[h>>2]>>2]](h)|0;if((g|0)!=(h|0)){continue}break}break m}Ia();V()}Wa();V()}Ia();V()}F[a+44>>2]=c;F[a+40>>2]=d;F[a+36>>2]=e}if(g){oj(g)}}h=1}F[f+16>>2]=1832;c=F[f+24>>2];if(c){F[f+28>>2]=c;oj(c)}if(!h){break c}}l=l+1|0;if((ja[F[F[a>>2]+24>>2]](a)|0)>(l|0)){continue}break}break d}i=ja[F[F[a>>2]+24>>2]](a)|0;F[f+712>>2]=0;F[f+704>>2]=0;F[f+708>>2]=0;if(i){if(i>>>0>=214748365){break h}c=L(i,20);d=rj(c);F[f+704>>2]=d;F[f+712>>2]=c+d;c=c-20|0;c=(c-((c>>>0)%20|0)|0)+20|0;q=f,r=Ti(d,0,c)+c|0,F[q+708>>2]=r;while(1){c=ja[F[F[a>>2]+20>>2]](a,k)|0;d=F[F[F[(ja[F[F[a>>2]+28>>2]](a)|0)+4>>2]+8>>2]+(c<<2)>>2];g=F[d+28>>2];c=g-1|0;if(c>>>0<=10){c=F[(c<<2)+13584>>2]}else{c=-1}j=(c|0)>0?c:0;if(j>>>0>4){break f}c=F[f+704>>2]+L(k,20)|0;l=D[d+24|0];F[c+16>>2]=l;F[c+12>>2]=j;F[c+8>>2]=g;F[c+4>>2]=e;F[c>>2]=d;e=e+l|0;k=k+1|0;if((i|0)!=(k|0)){continue}break}}c=ja[F[F[a>>2]+20>>2]](a,0)|0;m=F[F[F[(ja[F[F[a>>2]+28>>2]](a)|0)+4>>2]+8>>2]+(c<<2)>>2];D[m+84|0]=1;F[m+72>>2]=F[m+68>>2];g=F[b+12>>2];c=g;d=F[b+20>>2];j=F[b+8>>2];k=F[b+16>>2];if((c|0)<=(d|0)&j>>>0<=k>>>0|(c|0)<(d|0)){break f}n=F[b>>2];p=G[n+k|0];c=d;l=k+1|0;c=l?c:c+1|0;F[b+16>>2]=l;F[b+20>>2]=c;q:{switch(p|0){case 0:a=F[f+704>>2];if((F[f+708>>2]-a|0)!=20){break e}if(F[a+16>>2]!=3){break f}r:{if(j>>>0<=l>>>0&(c|0)>=(g|0)|(c|0)>(g|0)){break r}c=d;a=k+2|0;c=a>>>0<2?c+1|0:c;F[b+16>>2]=a;F[b+20>>2]=c;c=d;d=k+6|0;c=d>>>0<6?c+1|0:c;if(d>>>0>j>>>0&(c|0)>=(g|0)|(c|0)>(g|0)){break r}a=a+n|0;a=G[a|0]|G[a+1|0]<<8|(G[a+2|0]<<16|G[a+3|0]<<24);F[b+16>>2]=d;F[b+20>>2]=c;ab(m,a);h=f+672|0;F[h+20>>2]=0;F[h+12>>2]=0;F[h+16>>2]=0;F[h>>2]=0;F[h+4>>2]=0;F[h+20>>2]=a;k=rb(f+16|0,f+704|0);g=0;e=fa-32|0;fa=e;F[e+24>>2]=0;F[e+16>>2]=0;F[e+20>>2]=0;a=F[b+12>>2];j=a;c=F[b+20>>2];d=c;l=F[b+16>>2];i=l+4|0;c=i>>>0<4?c+1|0:c;m=F[b+8>>2];s:{if(m>>>0>>0&(a|0)<=(c|0)|(a|0)<(c|0)){break s}n=F[b>>2];a=n+l|0;a=G[a|0]|G[a+1|0]<<8|(G[a+2|0]<<16|G[a+3|0]<<24);F[b+16>>2]=i;F[b+20>>2]=c;t:{u:{switch(a-2|0){case 1:if((c|0)>=(j|0)&i>>>0>=m>>>0|(c|0)>(j|0)){break s}a=D[i+n|0];c=d;d=l+5|0;c=d>>>0<5?c+1|0:c;F[b+16>>2]=d;F[b+20>>2]=c;F[h+8>>2]=a;if((a|0)==1){if(Pi(h,b,e+16|0)){break t}break s}Yi(1799,23,F[3443]);break s;default:Yi(1774,24,F[3443]);break s;case 0:break u}}if(!Pi(h,b,e+16|0)){break s}}F[e+8>>2]=F[e+16>>2];F[e>>2]=F[e+20>>2];a=fa-32|0;fa=a;b=F[h>>2];o=J[h+4>>2];g=a+24|0;F[g>>2]=1065353216;b=-1<0){J[g>>2]=o/M(b|0)}h=F[e+8>>2];if((h|0)!=F[e>>2]){c=F[k+28>>2];while(1){d=F[h>>2];i=F[h+4>>2];o=J[g>>2];J[a+16>>2]=o*M(F[h+8>>2]-b|0);J[a+12>>2]=o*M(i-b|0);J[a+8>>2]=o*M(d-b|0);i=F[k+16>>2];d=F[i>>2];if(!G[d+84|0]){c=F[F[d+68>>2]+(c<<2)>>2]}j=c;c=F[d+40>>2];Ri(F[F[d>>2]>>2]+L(j,c)|0,(a+8|0)+(F[i+4>>2]<<2)|0,c);c=F[k+28>>2]+1|0;F[k+28>>2]=c;h=h+12|0;if((h|0)!=F[e>>2]){continue}break}}fa=a+32|0;g=1}a=F[e+16>>2];if(a){F[e+20>>2]=a;oj(a)}fa=e+32|0;Hb(k);h=1;if(g){break f}}h=0;break f;case 1:break q;default:break f}}if(j>>>0<=l>>>0&(c|0)>=(g|0)|(c|0)>(g|0)){break f}l=G[l+n|0];c=d;m=k+2|0;c=m>>>0<2?c+1|0:c;F[b+16>>2]=m;F[b+20>>2]=c;if(l>>>0>=7){F[f>>2]=l;_i(1651,f);break f}c=d;d=k+6|0;c=d>>>0<6?c+1|0:c;k=d;if(d>>>0>j>>>0&(c|0)>=(g|0)|(c|0)>(g|0)){break f}d=m+n|0;d=G[d|0]|G[d+1|0]<<8|(G[d+2|0]<<16|G[d+3|0]<<24);F[b+16>>2]=k;F[b+20>>2]=c;if(i){k=0;while(1){c=ja[F[F[a>>2]+20>>2]](a,k)|0;c=F[F[F[(ja[F[F[a>>2]+28>>2]](a)|0)+4>>2]+8>>2]+(c<<2)>>2];ab(c,d);D[c+84|0]=1;F[c+72>>2]=F[c+68>>2];k=k+1|0;if((i|0)!=(k|0)){continue}break}}a=rb(f+672|0,f+704|0);v:{w:{switch(l|0){case 1:c=ub(f+16|0,e);b=vb(c,b,a);tb(c);if(!b){break g}break v;case 2:c=yb(f+16|0,e);b=wb(c,b,a);xb(c);if(!b){break g}break v;case 3:c=yb(f+16|0,e);b=zb(c,b,a);xb(c);if(!b){break g}break v;case 4:c=Cb(f+16|0,e);b=Ab(c,b,a);Bb(c);if(!b){break g}break v;case 5:c=Cb(f+16|0,e);b=Db(c,b,a);Bb(c);if(!b){break g}break v;case 6:c=Cb(f+16|0,e);b=Eb(c,b,a);Bb(c);if(b){break v}break g;case 0:break w;default:break g}}c=ub(f+16|0,e);b=sb(c,b,a);tb(c);if(!b){break g}}Hb(a);h=1;break f}Ia();V()}Ia();V()}Hb(a)}a=F[f+704>>2]}if(!a){break a}F[f+708>>2]=a;oj(a);break a}h=1;if(F[a+52>>2]==F[a+48>>2]){break b}while(1){if(!Jb(1,f+16|0,b)){break c}c=F[a+48>>2];d=F[f+16>>2];F[c+(k<<2)>>2]=d>>>1^0-(d&1);k=k+1|0;if(k>>>0>2]-c>>2>>>0){continue}break}break b}h=0}a=F[f+672>>2];if(!a){break a}F[f+676>>2]=a;oj(a)}fa=f+720|0;return h|0}function sb(a,b,c){var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0;e=F[b+12>>2];f=F[b+20>>2];d=F[b+16>>2];k=d+4|0;f=k>>>0<4?f+1|0:f;a:{if((e|0)<=(f|0)&k>>>0>I[b+8>>2]|(e|0)<(f|0)){break a}f=d+F[b>>2]|0;F[a>>2]=G[f|0]|G[f+1|0]<<8|(G[f+2|0]<<16|G[f+3|0]<<24);f=F[b+20>>2];e=f;k=F[b+16>>2];d=k+4|0;f=d>>>0<4?e+1|0:e;m=d;F[b+16>>2]=d;F[b+20>>2]=f;if(I[a>>2]>32){break a}d=F[b+12>>2];f=e;e=k+8|0;f=e>>>0<8?f+1|0:f;if(e>>>0>I[b+8>>2]&(f|0)>=(d|0)|(f|0)>(d|0)){break a}h=m+F[b>>2]|0;f=G[h|0]|G[h+1|0]<<8|(G[h+2|0]<<16|G[h+3|0]<<24);F[a+4>>2]=f;h=F[b+20>>2];e=F[b+16>>2]+4|0;h=e>>>0<4?h+1|0:h;F[b+16>>2]=e;F[b+20>>2]=h;if(!f){return 1}h=0;F[a+8>>2]=0;if(!fe(a+16|0,b)){break a}if(!fe(a+36|0,b)){break a}if(!fe(a+56|0,b)){break a}if(!fe(a+76|0,b)){break a}s=F[a+4>>2];e=fa-32|0;fa=e;f=a;d=F[f+12>>2];F[e+16>>2]=0;F[e+8>>2]=0;F[e+12>>2]=0;b:{c:{if(d){if(d>>>0>=1073741824){break c}a=d<<2;g=rj(a);F[e+8>>2]=g;j=a+g|0;F[e+16>>2]=j;Ti(g,0,a);F[e+12>>2]=j}a=F[f+120>>2];b=F[a>>2];if(b){F[a+4>>2]=b;oj(b);F[a+8>>2]=0;F[a>>2]=0;F[a+4>>2]=0;j=F[e+12>>2];g=F[e+8>>2];d=F[f+12>>2]}F[a+4>>2]=j;F[a>>2]=g;F[a+8>>2]=F[e+16>>2];g=0;F[e+16>>2]=0;F[e+8>>2]=0;F[e+12>>2]=0;d:{if(d){if(d>>>0>=1073741824){break d}a=d<<2;i=rj(a);F[e+8>>2]=i;g=a+i|0;F[e+16>>2]=g;Ti(i,0,a);F[e+12>>2]=g}a=F[f+132>>2];b=F[a>>2];if(b){F[a+4>>2]=b;oj(b);F[a+8>>2]=0;F[a>>2]=0;F[a+4>>2]=0;i=F[e+8>>2];g=F[e+12>>2]}F[a+4>>2]=g;F[a>>2]=i;F[a+8>>2]=F[e+16>>2];F[e+24>>2]=0;F[e+28>>2]=0;F[e+16>>2]=0;F[e+20>>2]=0;F[e+8>>2]=0;F[e+12>>2]=0;Ob(e+8|0);a=F[e+24>>2]+F[e+28>>2]|0;b=(a>>>0)/341|0;a=F[F[e+12>>2]+(b<<2)>>2]+L(a-L(b,341)|0,12)|0;F[a+4>>2]=0;F[a+8>>2]=0;F[a>>2]=s;a=1;d=F[e+28>>2]+1|0;F[e+28>>2]=d;e:{if(!d){break e}while(1){a=F[e+12>>2];g=F[e+24>>2];i=d-1|0;b=g+i|0;h=(b>>>0)/341|0;b=F[a+(h<<2)>>2]+L(b-L(h,341)|0,12)|0;j=F[b+8>>2];h=F[b+4>>2];k=F[b>>2];F[e+28>>2]=i;b=F[e+16>>2];if((((a|0)==(b|0)?0:L(b-a>>2,341)-1|0)-(d+g|0)|0)+1>>>0>=682){oj(F[b-4>>2]);F[e+16>>2]=F[e+16>>2]-4}a=0;if(k>>>0>s>>>0){break e}b=F[f+12>>2];d=(b-1|0)==(h|0)?0:h+1|0;if(d>>>0>=b>>>0){break e}i=L(j,12);n=i+F[f+132>>2]|0;m=i+F[f+120>>2]|0;h=F[f>>2];l=d<<2;g=F[l+F[n>>2]>>2];f:{g:{if((h|0)==(g|0)){if(!k){break g}h=0;if(F[c+20>>2]==F[c+16>>2]){a=F[f+8>>2];F[c+28>>2]=k+F[c+28>>2];F[f+8>>2]=a+k;break g}while(1){i=0;d=F[c+16>>2];h:{if((d|0)==F[c+20>>2]){break h}while(1){l=L(i,20)+d|0;b=F[m>>2]+(F[l+4>>2]<<2)|0;n=F[l>>2];j=F[l+12>>2];a=b;i:{if(j>>>0>3){break i}d=0;g=F[c+12>>2];a=g;if(!F[l+16>>2]){break i}while(1){a=Ri(g,b+(d<<2)|0,j);j=F[l+12>>2];g=a+j|0;d=d+1|0;if(d>>>0>2]){continue}break}a=F[c+12>>2]}d=F[c+28>>2];d=G[n+84|0]?d:F[F[n+68>>2]+(d<<2)>>2];if(d>>>0>=I[n+80>>2]){break h}b=F[n+40>>2];Ri(F[F[n>>2]>>2]+L(b,d)|0,a,b);i=i+1|0;d=F[c+16>>2];if(i>>>0<(F[c+20>>2]-d|0)/20>>>0){continue}break}}F[c+28>>2]=F[c+28>>2]+1;F[f+8>>2]=F[f+8>>2]+1;h=h+1|0;if((k|0)!=(h|0)){continue}break}break g}j:{k:{l:{m:{if(k>>>0<=2){a=F[f+108>>2];F[a>>2]=d;i=1;g=F[f+12>>2];if(g>>>0>1){break m}break j}if(I[f+8>>2]>I[f+4>>2]){break e}b=F[f+120>>2];p=j+1|0;n=L(p,12);o=b+n|0;if((o|0)!=(m|0)){Pa(o,F[m>>2],F[m+4>>2]);b=F[f+120>>2]}b=l+F[b+n>>2]|0;F[b>>2]=F[b>>2]+(1<>2];m=32-h|0;n:{if((b|0)<=(m|0)){m=F[f+28>>2];if((m|0)==F[f+20>>2]){break l}g=F[m>>2];o=b+h|0;F[f+32>>2]=o;g=g<>>32-b|0;if((o|0)!=32){break n}F[f+32>>2]=0;F[f+28>>2]=m+4;break n}g=F[f+28>>2];o=g+4|0;if((o|0)==F[f+20>>2]){break l}r=F[g>>2];F[f+28>>2]=o;m=b-m|0;F[f+32>>2]=m;g=F[g+4>>2]>>>32-m|r<>>32-b}h=k>>>1|0;if(h>>>0>>0){break e}break k}while(1){d=(g-1|0)==(d|0)?0:d+1|0;F[a+(i<<2)>>2]=d;g=F[f+12>>2];i=i+1|0;if(g>>>0>i>>>0){continue}break}break j}h=k>>>1|0;g=0}o:{p:{b=h-g|0;a=k-b|0;q:{if((a|0)==(b|0)){a=b;break q}h=F[f+88>>2];if((h|0)==F[f+80>>2]){break p}g=F[h>>2];k=F[f+92>>2];m=k+1|0;F[f+92>>2]=m;g=g&-2147483648>>>k;r:{if((m|0)==32){F[f+92>>2]=0;F[f+88>>2]=h+4;if(g){break r}break p}if(!g){break p}}}h=a;a=b;break o}h=b}b=F[f+132>>2];g=b+i|0;i=F[g>>2];k=i+l|0;F[k>>2]=F[k>>2]+1;Pa(b+n|0,i,F[g+4>>2]);if(a){g=F[e+28>>2]+F[e+24>>2]|0;b=F[e+16>>2];i=F[e+12>>2];if((g|0)==(((b|0)==(i|0)?0:L(b-i>>2,341)-1|0)|0)){Ob(e+8|0);i=F[e+12>>2];g=F[e+24>>2]+F[e+28>>2]|0}b=(g>>>0)/341|0;b=F[(b<<2)+i>>2]+L(g-L(b,341)|0,12)|0;F[b+8>>2]=j;F[b+4>>2]=d;F[b>>2]=a;F[e+28>>2]=F[e+28>>2]+1}if(!h){break g}g=F[e+28>>2]+F[e+24>>2]|0;a=F[e+16>>2];i=F[e+12>>2];if((g|0)==(((a|0)==(i|0)?0:L(a-i>>2,341)-1|0)|0)){Ob(e+8|0);i=F[e+12>>2];g=F[e+24>>2]+F[e+28>>2]|0}a=(g>>>0)/341|0;a=F[(a<<2)+i>>2]+L(g-L(a,341)|0,12)|0;F[a+8>>2]=p;F[a+4>>2]=d;F[a>>2]=h;d=F[e+28>>2]+1|0;F[e+28>>2]=d;break f}p=0;if(!k){break g}while(1){if(F[f+12>>2]){o=F[m>>2];g=F[f+40>>2];r=F[n>>2];h=F[f+96>>2];u=F[f+108>>2];d=0;while(1){i=(d<<2)+u|0;F[h+(F[i>>2]<<2)>>2]=0;b=F[f>>2];a=F[i>>2]<<2;j=F[a+r>>2];s:{if((b|0)==(j|0)){break s}a=a+h|0;b=b-j|0;j=F[f+52>>2];q=32-j|0;if((b|0)<=(q|0)){l=F[f+48>>2];if((l|0)==(g|0)){F[a>>2]=0;break s}F[a>>2]=F[l>>2]<>>32-b;a=b+F[f+52>>2]|0;F[f+52>>2]=a;if((a|0)!=32){break s}F[f+52>>2]=0;F[f+48>>2]=l+4;break s}l=F[f+48>>2];t=l+4|0;if((g|0)==(t|0)){F[a>>2]=0;break s}v=F[l>>2];F[f+48>>2]=t;q=b-q|0;F[f+52>>2]=q;F[a>>2]=F[l+4>>2]>>>32-q|v<>>32-b}a=F[i>>2]<<2;b=a+h|0;F[b>>2]=F[b>>2]|F[a+o>>2];d=d+1|0;if(d>>>0>2]){continue}break}}i=0;d=F[c+16>>2];t:{if((d|0)==F[c+20>>2]){break t}while(1){h=L(i,20)+d|0;b=F[f+96>>2]+(F[h+4>>2]<<2)|0;l=F[h>>2];j=F[h+12>>2];a=b;u:{if(j>>>0>3){break u}d=0;g=F[c+12>>2];a=g;if(!F[h+16>>2]){break u}while(1){a=Ri(g,b+(d<<2)|0,j);j=F[h+12>>2];g=a+j|0;d=d+1|0;if(d>>>0>2]){continue}break}a=F[c+12>>2]}d=F[c+28>>2];d=G[l+84|0]?d:F[F[l+68>>2]+(d<<2)>>2];if(d>>>0>=I[l+80>>2]){break t}b=F[l+40>>2];Ri(F[F[l>>2]>>2]+L(b,d)|0,a,b);i=i+1|0;d=F[c+16>>2];if(i>>>0<(F[c+20>>2]-d|0)/20>>>0){continue}break}}F[c+28>>2]=F[c+28>>2]+1;F[f+8>>2]=F[f+8>>2]+1;p=p+1|0;if((k|0)!=(p|0)){continue}break}}d=F[e+28>>2]}if(d){continue}break}a=1}F[e+28>>2]=0;i=F[e+16>>2];d=F[e+12>>2];g=i-d|0;if(g>>>0>=9){while(1){oj(F[d>>2]);d=F[e+12>>2]+4|0;F[e+12>>2]=d;i=F[e+16>>2];g=i-d|0;if(g>>>0>8){continue}break}}j=170;v:{switch((g>>>2|0)-1|0){case 1:j=341;case 0:F[e+24>>2]=j;break;default:break v}}w:{if((d|0)==(i|0)){break w}while(1){oj(F[d>>2]);d=d+4|0;if((i|0)!=(d|0)){continue}break}b=F[e+16>>2];c=F[e+12>>2];if((b|0)==(c|0)){break w}F[e+16>>2]=b+((c-b|0)+3&-4)}b=F[e+8>>2];if(b){oj(b)}fa=e+32|0;break b}Ia();V()}Ia();V()}h=a}return h}function vb(a,b,c){var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0;k=F[b+12>>2];d=F[b+20>>2];e=F[b+16>>2];f=e+4|0;d=f>>>0<4?d+1|0:d;a:{if(f>>>0>I[b+8>>2]&(d|0)>=(k|0)|(d|0)>(k|0)){break a}d=e+F[b>>2]|0;F[a>>2]=G[d|0]|G[d+1|0]<<8|(G[d+2|0]<<16|G[d+3|0]<<24);d=F[b+20>>2];k=d;f=F[b+16>>2];e=f+4|0;d=e>>>0<4?d+1|0:d;l=e;F[b+16>>2]=e;F[b+20>>2]=d;if(I[a>>2]>32){break a}e=F[b+12>>2];d=k;k=f+8|0;d=k>>>0<8?d+1|0:d;if(k>>>0>I[b+8>>2]&(d|0)>=(e|0)|(d|0)>(e|0)){break a}d=l+F[b>>2]|0;k=G[d|0]|G[d+1|0]<<8|(G[d+2|0]<<16|G[d+3|0]<<24);F[a+4>>2]=k;d=F[b+20>>2];e=F[b+16>>2]+4|0;d=e>>>0<4?d+1|0:d;F[b+16>>2]=e;F[b+20>>2]=d;if(!k){return 1}F[a+8>>2]=0;if(!fe(a+16|0,b)){break a}if(!fe(a+36|0,b)){break a}if(!fe(a+56|0,b)){break a}if(!fe(a+76|0,b)){break a}q=F[a+4>>2];e=fa-32|0;fa=e;d=a;f=F[a+12>>2];F[e+16>>2]=0;F[e+8>>2]=0;F[e+12>>2]=0;b:{c:{if(f){if(f>>>0>=1073741824){break c}a=f<<2;g=rj(a);F[e+8>>2]=g;h=a+g|0;F[e+16>>2]=h;Ti(g,0,a);F[e+12>>2]=h}a=F[d+120>>2];b=F[a>>2];if(b){F[a+4>>2]=b;oj(b);F[a+8>>2]=0;F[a>>2]=0;F[a+4>>2]=0;f=F[d+12>>2];g=F[e+8>>2];h=F[e+12>>2]}F[a+4>>2]=h;F[a>>2]=g;F[a+8>>2]=F[e+16>>2];g=0;F[e+16>>2]=0;F[e+8>>2]=0;F[e+12>>2]=0;d:{if(f){if(f>>>0>=1073741824){break d}a=f<<2;i=rj(a);F[e+8>>2]=i;g=a+i|0;F[e+16>>2]=g;Ti(i,0,a);F[e+12>>2]=g}a=F[d+132>>2];b=F[a>>2];if(b){F[a+4>>2]=b;oj(b);F[a+8>>2]=0;F[a>>2]=0;F[a+4>>2]=0;g=F[e+12>>2];i=F[e+8>>2]}F[a+4>>2]=g;F[a>>2]=i;F[a+8>>2]=F[e+16>>2];F[e+24>>2]=0;F[e+28>>2]=0;F[e+16>>2]=0;F[e+20>>2]=0;F[e+8>>2]=0;F[e+12>>2]=0;Ob(e+8|0);a=F[e+24>>2]+F[e+28>>2]|0;b=(a>>>0)/341|0;a=F[F[e+12>>2]+(b<<2)>>2]+L(a-L(b,341)|0,12)|0;F[a+4>>2]=0;F[a+8>>2]=0;F[a>>2]=q;a=1;f=F[e+28>>2]+1|0;F[e+28>>2]=f;e:{if(!f){break e}while(1){a=F[e+12>>2];i=F[e+24>>2];g=f-1|0;b=i+g|0;h=(b>>>0)/341|0;b=F[a+(h<<2)>>2]+L(b-L(h,341)|0,12)|0;k=F[b+8>>2];h=F[b+4>>2];l=F[b>>2];F[e+28>>2]=g;b=F[e+16>>2];if((((a|0)==(b|0)?0:L(b-a>>2,341)-1|0)-(f+i|0)|0)+1>>>0>=682){oj(F[b-4>>2]);F[e+16>>2]=F[e+16>>2]-4}if(l>>>0>q>>>0){a=0;break e}a=0;b=F[d+12>>2];f=(h|0)==(b-1|0)?0:h+1|0;if(f>>>0>=b>>>0){break e}b=F[d+120>>2];i=L(k,12);n=b+i|0;h=F[d>>2];g=f<<2;p=i+F[d+132>>2]|0;j=F[g+F[p>>2]>>2];f:{g:{if((h|0)==(j|0)){if(!l){break g}b=0;if(F[c+20>>2]==F[c+16>>2]){a=F[d+8>>2];F[c+28>>2]=l+F[c+28>>2];F[d+8>>2]=a+l;break g}while(1){a=0;f=F[c+16>>2];h:{if((f|0)==F[c+20>>2]){break h}while(1){j=L(a,20)+f|0;i=F[n>>2]+(F[j+4>>2]<<2)|0;m=F[j>>2];h=F[j+12>>2];k=i;i:{if(h>>>0>3){break i}f=0;g=F[c+12>>2];k=g;if(!F[j+16>>2]){break i}while(1){k=Ri(g,i+(f<<2)|0,h);h=F[j+12>>2];g=k+h|0;f=f+1|0;if(f>>>0>2]){continue}break}k=F[c+12>>2]}f=F[c+28>>2];f=G[m+84|0]?f:F[F[m+68>>2]+(f<<2)>>2];if(f>>>0>=I[m+80>>2]){break h}h=F[m+40>>2];Ri(F[F[m>>2]>>2]+L(h,f)|0,k,h);a=a+1|0;f=F[c+16>>2];if(a>>>0<(F[c+20>>2]-f|0)/20>>>0){continue}break}}F[c+28>>2]=F[c+28>>2]+1;F[d+8>>2]=F[d+8>>2]+1;b=b+1|0;if((l|0)!=(b|0)){continue}break}break g}j:{k:{l:{m:{if(l>>>0<=2){a=F[d+108>>2];F[a>>2]=f;i=1;g=F[d+12>>2];if(g>>>0>1){break m}break j}if(I[d+8>>2]>I[d+4>>2]){break e}m=b;b=i+12|0;Pa(m+b|0,F[n>>2],F[n+4>>2]);b=g+F[b+F[d+120>>2]>>2]|0;F[b>>2]=F[b>>2]+(1<>2];m=32-h|0;n:{if((b|0)<=(m|0)){j=F[d+28>>2];if((j|0)==F[d+20>>2]){break l}m=F[j>>2];n=b+h|0;F[d+32>>2]=n;h=m<>>32-b|0;if((n|0)!=32){break n}F[d+32>>2]=0;F[d+28>>2]=j+4;break n}j=F[d+28>>2];n=j+4|0;if((n|0)==F[d+20>>2]){break l}p=F[j>>2];F[d+28>>2]=n;m=b-m|0;F[d+32>>2]=m;h=F[j+4>>2]>>>32-m|p<>>32-b}b=l>>>1|0;if(h>>>0>b>>>0){break e}break k}while(1){f=(g-1|0)==(f|0)?0:f+1|0;F[a+(i<<2)>>2]=f;g=F[d+12>>2];i=i+1|0;if(g>>>0>i>>>0){continue}break}break j}b=l>>>1|0;h=0}j=k+1|0;o:{p:{a=b-h|0;h=l-a|0;q:{if((h|0)==(a|0)){b=a;break q}b=F[d+88>>2];if((b|0)==F[d+80>>2]){break p}l=F[b>>2];m=F[d+92>>2];n=m+1|0;F[d+92>>2]=n;l=l&-2147483648>>>m;r:{if((n|0)==32){F[d+92>>2]=0;F[d+88>>2]=b+4;if(l){break r}break p}if(!l){break p}}b=h}h=a;break o}b=a}l=g;a=F[d+132>>2];i=a+i|0;g=F[i>>2];l=l+g|0;F[l>>2]=F[l>>2]+1;Pa(a+L(j,12)|0,g,F[i+4>>2]);if(h){g=F[e+28>>2]+F[e+24>>2]|0;a=F[e+16>>2];i=F[e+12>>2];if((g|0)==(((a|0)==(i|0)?0:L(a-i>>2,341)-1|0)|0)){Ob(e+8|0);g=F[e+24>>2]+F[e+28>>2]|0;i=F[e+12>>2]}a=(g>>>0)/341|0;a=F[i+(a<<2)>>2]+L(g-L(a,341)|0,12)|0;F[a+8>>2]=k;F[a+4>>2]=f;F[a>>2]=h;F[e+28>>2]=F[e+28>>2]+1}if(!b){break g}g=F[e+28>>2]+F[e+24>>2]|0;a=F[e+16>>2];i=F[e+12>>2];if((g|0)==(((a|0)==(i|0)?0:L(a-i>>2,341)-1|0)|0)){Ob(e+8|0);g=F[e+24>>2]+F[e+28>>2]|0;i=F[e+12>>2]}a=(g>>>0)/341|0;a=F[i+(a<<2)>>2]+L(g-L(a,341)|0,12)|0;F[a+8>>2]=j;F[a+4>>2]=f;F[a>>2]=b;f=F[e+28>>2]+1|0;F[e+28>>2]=f;break f}m=0;if(!l){break g}while(1){if(F[d+12>>2]){s=F[n>>2];k=F[d+40>>2];t=F[p>>2];h=F[d+96>>2];u=F[d+108>>2];f=0;while(1){i=(f<<2)+u|0;F[h+(F[i>>2]<<2)>>2]=0;b=F[d>>2];a=F[i>>2]<<2;g=F[a+t>>2];s:{if((b|0)==(g|0)){break s}a=a+h|0;b=b-g|0;g=F[d+52>>2];o=32-g|0;if((b|0)<=(o|0)){j=F[d+48>>2];if((j|0)==(k|0)){F[a>>2]=0;break s}F[a>>2]=F[j>>2]<>>32-b;a=b+F[d+52>>2]|0;F[d+52>>2]=a;if((a|0)!=32){break s}F[d+52>>2]=0;F[d+48>>2]=j+4;break s}j=F[d+48>>2];r=j+4|0;if((k|0)==(r|0)){F[a>>2]=0;break s}v=F[j>>2];F[d+48>>2]=r;o=b-o|0;F[d+52>>2]=o;F[a>>2]=F[j+4>>2]>>>32-o|v<>>32-b}a=F[i>>2]<<2;b=a+h|0;F[b>>2]=F[b>>2]|F[a+s>>2];f=f+1|0;if(f>>>0>2]){continue}break}}a=0;f=F[c+16>>2];t:{if((f|0)==F[c+20>>2]){break t}while(1){i=L(a,20)+f|0;k=F[d+96>>2]+(F[i+4>>2]<<2)|0;j=F[i>>2];h=F[i+12>>2];b=k;u:{if(h>>>0>3){break u}f=0;g=F[c+12>>2];b=g;if(!F[i+16>>2]){break u}while(1){b=Ri(g,k+(f<<2)|0,h);h=F[i+12>>2];g=b+h|0;f=f+1|0;if(f>>>0>2]){continue}break}b=F[c+12>>2]}f=F[c+28>>2];f=G[j+84|0]?f:F[F[j+68>>2]+(f<<2)>>2];if(f>>>0>=I[j+80>>2]){break t}h=F[j+40>>2];Ri(F[F[j>>2]>>2]+L(h,f)|0,b,h);a=a+1|0;f=F[c+16>>2];if(a>>>0<(F[c+20>>2]-f|0)/20>>>0){continue}break}}F[c+28>>2]=F[c+28>>2]+1;F[d+8>>2]=F[d+8>>2]+1;m=m+1|0;if((l|0)!=(m|0)){continue}break}}f=F[e+28>>2]}if(f){continue}break}a=1}F[e+28>>2]=0;i=F[e+16>>2];f=F[e+12>>2];g=i-f|0;if(g>>>0>=9){while(1){oj(F[f>>2]);f=F[e+12>>2]+4|0;F[e+12>>2]=f;i=F[e+16>>2];g=i-f|0;if(g>>>0>8){continue}break}}h=170;v:{switch((g>>>2|0)-1|0){case 1:h=341;case 0:F[e+24>>2]=h;break;default:break v}}w:{if((f|0)==(i|0)){break w}while(1){oj(F[f>>2]);f=f+4|0;if((i|0)!=(f|0)){continue}break}b=F[e+16>>2];c=F[e+12>>2];if((b|0)==(c|0)){break w}F[e+16>>2]=b+((c-b|0)+3&-4)}b=F[e+8>>2];if(b){oj(b)}fa=e+32|0;break b}Ia();V()}Ia();V()}h=a}return h}function Uh(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0;o=fa-16|0;fa=o;F[o+12>>2]=b;b=rj(32);F[o>>2]=b;F[o+4>>2]=24;F[o+8>>2]=-2147483616;D[b+24|0]=0;d=G[1206]|G[1207]<<8|(G[1208]<<16|G[1209]<<24);c=G[1202]|G[1203]<<8|(G[1204]<<16|G[1205]<<24);D[b+16|0]=c;D[b+17|0]=c>>>8;D[b+18|0]=c>>>16;D[b+19|0]=c>>>24;D[b+20|0]=d;D[b+21|0]=d>>>8;D[b+22|0]=d>>>16;D[b+23|0]=d>>>24;d=G[1198]|G[1199]<<8|(G[1200]<<16|G[1201]<<24);c=G[1194]|G[1195]<<8|(G[1196]<<16|G[1197]<<24);D[b+8|0]=c;D[b+9|0]=c>>>8;D[b+10|0]=c>>>16;D[b+11|0]=c>>>24;D[b+12|0]=d;D[b+13|0]=d>>>8;D[b+14|0]=d>>>16;D[b+15|0]=d>>>24;d=G[1190]|G[1191]<<8|(G[1192]<<16|G[1193]<<24);c=G[1186]|G[1187]<<8|(G[1188]<<16|G[1189]<<24);D[b|0]=c;D[b+1|0]=c>>>8;D[b+2|0]=c>>>16;D[b+3|0]=c>>>24;D[b+4|0]=d;D[b+5|0]=d>>>8;D[b+6|0]=d>>>16;D[b+7|0]=d>>>24;k=fa-48|0;fa=k;m=a;f=a+16|0;d=F[f>>2];a:{b:{if(!d){break b}b=F[o+12>>2];a=f;while(1){c=(b|0)>F[d+16>>2];a=c?a:d;d=F[(c?d+4|0:d)>>2];if(d){continue}break}if((a|0)==(f|0)){break b}if((b|0)>=F[a+16>>2]){break a}}u=k+24|0;a=u;F[a+4>>2]=0;F[a+8>>2]=0;v=a+4|0;F[a>>2]=v;b=F[o+12>>2];p=k+16|0;a=p;F[a>>2]=0;F[a+4>>2]=0;F[k+8>>2]=b;F[k+12>>2]=a;s=k+8|4;d=F[u>>2];if((v|0)!=(d|0)){while(1){g=d+16|0;q=fa-16|0;fa=q;b=q+8|0;c:{d:{e:{f:{g:{h:{i:{c=p;e=s+4|0;j:{if((c|0)==(e|0)){break j}a=G[c+27|0];h=a<<24>>24<0;j=G[g+11|0];n=j<<24>>24;i=(n|0)<0;a=h?F[c+20>>2]:a;j=i?F[g+4>>2]:j;l=a>>>0>>0;r=l?a:j;if(r){i=i?F[g>>2]:g;t=c+16|0;h=h?F[t>>2]:t;t=Zi(i,h,r);if(!t){if(a>>>0>j>>>0){break j}break i}if((t|0)>=0){break i}break j}if(a>>>0<=j>>>0){break h}}h=F[c>>2];k:{b=c;l:{if((b|0)==F[s>>2]){break l}m:{if(!h){a=c;while(1){b=F[a+8>>2];j=F[b>>2]==(a|0);a=b;if(j){continue}break}break m}a=h;while(1){b=a;a=F[a+4>>2];if(a){continue}break}}j=G[g+11|0];l=j<<24>>24;a=(l|0)<0;i=G[b+27|0];n=i<<24>>24<0;n:{j=a?F[g+4>>2]:j;i=n?F[b+20>>2]:i;r=j>>>0>>0?j:i;if(r){t=b+16|0;a=Zi(n?F[t>>2]:t,a?F[g>>2]:g,r);if(a){break n}}if(j>>>0>i>>>0){break l}break k}if((a|0)>=0){break k}}if(!h){F[q+12>>2]=c;b=c;break c}F[q+12>>2]=b;b=b+4|0;break c}a=F[e>>2];if(!a){F[q+12>>2]=e;b=e;break c}h=(l|0)<0?F[g>>2]:g;c=e;while(1){b=a;n=G[a+27|0];e=n<<24>>24<0;a=e?F[a+20>>2]:n;n=a>>>0>>0;o:{p:{q:{r:{i=n?a:j;s:{if(i){l=b+16|0;e=e?F[l>>2]:l;l=Zi(h,e,i);if(!l){if(a>>>0>j>>>0){break s}break r}if((l|0)>=0){break r}break s}if(a>>>0<=j>>>0){break q}}c=b;a=F[b>>2];if(a){continue}break e}a=Zi(e,h,i);if(a){break p}}if(n){break o}break e}if((a|0)>=0){break e}}c=b+4|0;a=F[b+4>>2];if(a){continue}break}break e}a=Zi(h,i,r);if(a){break g}}if(l){break f}break d}if((a|0)>=0){break d}}h=F[c+4>>2];t:{if(!h){a=c;while(1){b=F[a+8>>2];i=F[b>>2]!=(a|0);a=b;if(i){continue}break}break t}a=h;while(1){b=a;a=F[a>>2];if(a){continue}break}}u:{v:{if((b|0)==(e|0)){break v}i=G[b+27|0];a=i<<24>>24<0;w:{i=a?F[b+20>>2]:i;l=j>>>0>i>>>0?i:j;if(l){r=b+16|0;a=Zi((n|0)<0?F[g>>2]:g,a?F[r>>2]:r,l);if(a){break w}}if(j>>>0>>0){break v}break u}if((a|0)>=0){break u}}if(!h){F[q+12>>2]=c;b=c+4|0;break c}F[q+12>>2]=b;break c}a=F[e>>2];if(!a){F[q+12>>2]=e;b=e;break c}h=(n|0)<0?F[g>>2]:g;c=e;while(1){b=a;n=G[a+27|0];e=n<<24>>24<0;a=e?F[a+20>>2]:n;n=a>>>0>>0;x:{y:{z:{A:{i=n?a:j;B:{if(i){l=b+16|0;e=e?F[l>>2]:l;l=Zi(h,e,i);if(!l){if(a>>>0>j>>>0){break B}break A}if((l|0)>=0){break A}break B}if(a>>>0<=j>>>0){break z}}c=b;a=F[b>>2];if(a){continue}break e}a=Zi(e,h,i);if(a){break y}}if(n){break x}break e}if((a|0)>=0){break e}}c=b+4|0;a=F[b+4>>2];if(a){continue}break}}F[q+12>>2]=b;b=c;break c}F[q+12>>2]=c;F[b>>2]=c}c=F[b>>2];if(c){a=0}else{c=rj(40);a=c+16|0;C:{if(D[g+11|0]>=0){e=F[g+4>>2];F[a>>2]=F[g>>2];F[a+4>>2]=e;F[a+8>>2]=F[g+8>>2];break C}uj(a,F[g>>2],F[g+4>>2])}a=c+28|0;D:{if(D[g+23|0]>=0){e=F[g+16>>2];F[a>>2]=F[g+12>>2];F[a+4>>2]=e;F[a+8>>2]=F[g+20>>2];break D}uj(a,F[g+12>>2],F[g+16>>2])}F[c+8>>2]=F[q+12>>2];F[c>>2]=0;F[c+4>>2]=0;F[b>>2]=c;a=c;e=F[F[s>>2]>>2];if(e){F[s>>2]=e;a=F[b>>2]}me(F[s+4>>2],a);F[s+8>>2]=F[s+8>>2]+1;a=1}D[k+44|0]=a;F[k+40>>2]=c;fa=q+16|0;a=F[d+4>>2];E:{if(a){while(1){d=a;a=F[a>>2];if(a){continue}break E}}while(1){a=d;d=F[d+8>>2];if((a|0)!=F[d>>2]){continue}break}}if((d|0)!=(v|0)){continue}break}b=F[k+8>>2]}d=f;a=F[d>>2];F:{G:{if(!a){break G}while(1){d=a;a=F[a+16>>2];if((a|0)>(b|0)){f=d;a=F[d>>2];if(a){continue}break G}if((a|0)>=(b|0)){a=d;break F}a=F[d+4>>2];if(a){continue}break}f=d+4|0}a=rj(32);F[a+16>>2]=b;F[a+20>>2]=F[k+12>>2];b=a+24|0;c=F[k+16>>2];F[b>>2]=c;e=F[k+20>>2];F[a+28>>2]=e;H:{if(!e){F[a+20>>2]=b;break H}F[c+8>>2]=b;F[k+16>>2]=0;F[k+20>>2]=0;F[k+12>>2]=p}F[a+8>>2]=d;F[a>>2]=0;F[a+4>>2]=0;F[f>>2]=a;d=a;b=F[F[m+12>>2]>>2];if(b){F[m+12>>2]=b;d=F[f>>2]}me(F[m+16>>2],d);F[m+20>>2]=F[m+20>>2]+1}ne(s,F[k+16>>2]);ne(u,F[u+4>>2])}fa=k+48|0;e=fa-48|0;fa=e;f=fa-32|0;fa=f;d=f+21|0;h=f+32|0;c=h;I:{if((d|0)==(c|0)){break I}}b=c-d|0;J:{if((b|0)<=9){p=61;if((b|0)<(I[3712]<=1|0)){break J}}D[d|0]=49;c=d+1|0;p=0}F[f+12>>2]=p;F[f+8>>2]=c;p=fa-16|0;fa=p;b=e+8|0;m=fa-16|0;fa=m;K:{g=F[f+8>>2];f=g-d|0;if(f>>>0<=4294967279){L:{if(f>>>0<11){D[b+11|0]=f;c=b;break L}if(f>>>0>=11){k=f+16&-16;c=k-1|0;c=(c|0)==11?k:c}else{c=10}k=c+1|0;c=rj(k);F[b>>2]=c;F[b+8>>2]=k|-2147483648;F[b+4>>2]=f}while(1){if((d|0)!=(g|0)){D[c|0]=G[d|0];c=c+1|0;d=d+1|0;continue}break}D[m+15|0]=0;D[c|0]=G[m+15|0];fa=m+16|0;break K}bg();V()}fa=p+16|0;fa=h;F[e+32>>2]=o;M:{N:{c=a+20|0;a=F[c+4>>2];O:{if(!a){b=c+4|0;d=b;break O}b=G[o+11|0];d=b<<24>>24<0;m=d?F[o>>2]:o;f=d?F[o+4>>2]:b;while(1){d=a;h=G[a+27|0];b=h<<24>>24<0;a=b?F[a+20>>2]:h;h=a>>>0>>0;P:{Q:{R:{S:{p=h?a:f;T:{if(p){g=d+16|0;b=b?F[g>>2]:g;g=Zi(m,b,p);if(!g){if(a>>>0>f>>>0){break T}break S}if((g|0)>=0){break S}break T}if(a>>>0<=f>>>0){break R}}b=d;a=F[b>>2];if(a){continue}break O}a=Zi(b,m,p);if(a){break Q}}if(h){break P}break N}if((a|0)>=0){break N}}a=F[d+4>>2];if(a){continue}break}b=d+4|0}a=rj(40);m=a+16|0;f=F[e+32>>2];U:{if(D[f+11|0]>=0){h=F[f+4>>2];F[m>>2]=F[f>>2];F[m+4>>2]=h;F[m+8>>2]=F[f+8>>2];break U}uj(m,F[f>>2],F[f+4>>2])}F[a+8>>2]=d;F[a>>2]=0;F[a+4>>2]=0;F[a+36>>2]=0;F[a+28>>2]=0;F[a+32>>2]=0;F[b>>2]=a;d=a;f=F[F[c>>2]>>2];if(f){F[c>>2]=f;d=F[b>>2]}me(F[c+4>>2],d);F[c+8>>2]=F[c+8>>2]+1;b=1;break M}a=d;b=0}D[e+44|0]=b;F[e+40>>2]=a;a=F[e+40>>2];if(D[a+39|0]<0){oj(F[a+28>>2])}b=F[e+12>>2];F[a+28>>2]=F[e+8>>2];F[a+32>>2]=b;F[a+36>>2]=F[e+16>>2];fa=e+48|0;if(D[o+11|0]<0){oj(F[o>>2])}fa=o+16|0}function Ab(a,b,c){var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0;h=F[b+12>>2];f=F[b+20>>2];j=F[b+16>>2];e=j+4|0;f=e>>>0<4?f+1|0:f;a:{if(e>>>0>I[b+8>>2]&(f|0)>=(h|0)|(f|0)>(h|0)){break a}f=j+F[b>>2]|0;F[a>>2]=G[f|0]|G[f+1|0]<<8|(G[f+2|0]<<16|G[f+3|0]<<24);f=F[b+20>>2];h=f;e=F[b+16>>2];j=e+4|0;f=j>>>0<4?f+1|0:f;m=j;F[b+16>>2]=j;F[b+20>>2]=f;if(I[a>>2]>32){break a}j=F[b+12>>2];f=h;h=e+8|0;f=h>>>0<8?f+1|0:f;if(h>>>0>I[b+8>>2]&(f|0)>=(j|0)|(f|0)>(j|0)){break a}d=m+F[b>>2]|0;f=G[d|0]|G[d+1|0]<<8|(G[d+2|0]<<16|G[d+3|0]<<24);F[a+4>>2]=f;d=F[b+20>>2];h=F[b+16>>2]+4|0;d=h>>>0<4?d+1|0:d;F[b+16>>2]=h;F[b+20>>2]=d;if(!f){return 1}d=0;F[a+8>>2]=0;if(!Gb(a+16|0,b)){break a}if(!fe(a+544|0,b)){break a}if(!fe(a+564|0,b)){break a}if(!fe(a+584|0,b)){break a}q=F[a+4>>2];b=0;e=fa-32|0;fa=e;f=a;d=F[a+12>>2];F[e+16>>2]=0;F[e+8>>2]=0;F[e+12>>2]=0;b:{c:{if(d){if(d>>>0>=1073741824){break c}a=d<<2;g=rj(a);F[e+8>>2]=g;b=a+g|0;F[e+16>>2]=b;Ti(g,0,a);F[e+12>>2]=b}a=F[f+628>>2];h=F[a>>2];if(h){F[a+4>>2]=h;oj(h);F[a+8>>2]=0;F[a>>2]=0;F[a+4>>2]=0;d=F[f+12>>2];g=F[e+8>>2];b=F[e+12>>2]}F[a+4>>2]=b;F[a>>2]=g;F[a+8>>2]=F[e+16>>2];g=0;F[e+16>>2]=0;F[e+8>>2]=0;F[e+12>>2]=0;d:{if(d){if(d>>>0>=1073741824){break d}a=d<<2;i=rj(a);F[e+8>>2]=i;g=a+i|0;F[e+16>>2]=g;Ti(i,0,a);F[e+12>>2]=g}a=F[f+640>>2];b=F[a>>2];if(b){F[a+4>>2]=b;oj(b);F[a+8>>2]=0;F[a>>2]=0;F[a+4>>2]=0;i=F[e+8>>2];g=F[e+12>>2]}F[a+4>>2]=g;F[a>>2]=i;F[a+8>>2]=F[e+16>>2];F[e+24>>2]=0;F[e+28>>2]=0;F[e+16>>2]=0;F[e+20>>2]=0;F[e+8>>2]=0;F[e+12>>2]=0;Ob(e+8|0);a=F[e+24>>2]+F[e+28>>2]|0;b=(a>>>0)/341|0;a=F[F[e+12>>2]+(b<<2)>>2]+L(a-L(b,341)|0,12)|0;F[a+4>>2]=0;F[a+8>>2]=0;F[a>>2]=q;b=1;d=F[e+28>>2]+1|0;F[e+28>>2]=d;e:{if(!d){break e}s=f+16|0;while(1){a=F[e+12>>2];g=F[e+24>>2];i=d-1|0;b=g+i|0;h=(b>>>0)/341|0;b=F[a+(h<<2)>>2]+L(b-L(h,341)|0,12)|0;h=F[b+8>>2];j=F[b+4>>2];m=F[b>>2];F[e+28>>2]=i;b=F[e+16>>2];if((((a|0)==(b|0)?0:L(b-a>>2,341)-1|0)-(d+g|0)|0)+1>>>0>=682){oj(F[b-4>>2]);F[e+16>>2]=F[e+16>>2]-4}b=0;if(m>>>0>q>>>0){break e}a=F[f+12>>2];i=(j|0)==(a-1|0)?0:j+1|0;if(i>>>0>=a>>>0){break e}j=L(h,12);o=j+F[f+640>>2]|0;n=j+F[f+628>>2]|0;d=F[f>>2];k=i<<2;g=F[k+F[o>>2]>>2];f:{g:{if((d|0)==(g|0)){k=0;if(!m){break g}while(1){a=0;d=F[c+16>>2];h:{if((d|0)==F[c+20>>2]){break h}while(1){i=L(a,20)+d|0;j=F[n>>2]+(F[i+4>>2]<<2)|0;l=F[i>>2];b=F[i+12>>2];h=j;i:{if(b>>>0>3){break i}d=0;g=F[c+12>>2];h=g;if(!F[i+16>>2]){break i}while(1){h=Ri(g,j+(d<<2)|0,b);b=F[i+12>>2];g=h+b|0;d=d+1|0;if(d>>>0>2]){continue}break}h=F[c+12>>2]}d=F[c+28>>2];d=G[l+84|0]?d:F[F[l+68>>2]+(d<<2)>>2];if(d>>>0>=I[l+80>>2]){break h}b=F[l+40>>2];Ri(F[F[l>>2]>>2]+L(b,d)|0,h,b);a=a+1|0;d=F[c+16>>2];if(a>>>0<(F[c+20>>2]-d|0)/20>>>0){continue}break}}F[c+28>>2]=F[c+28>>2]+1;F[f+8>>2]=F[f+8>>2]+1;k=k+1|0;if((m|0)!=(k|0)){continue}break}break g}j:{k:{l:{if(m>>>0<=2){a=F[f+616>>2];F[a>>2]=i;d=1;g=F[f+12>>2];if(g>>>0>1){break l}break j}if(I[f+8>>2]>I[f+4>>2]){break e}a=F[f+628>>2];o=h+1|0;l=L(o,12);b=a+l|0;if((b|0)!=(n|0)){Pa(b,F[n>>2],F[n+4>>2]);a=F[f+628>>2]}a=k+F[a+l>>2]|0;F[a>>2]=F[a>>2]+(1<>>1|0;break k}while(1){g=ie((d<<4)+s|0)|g<<1;d=d+1|0;if((a|0)!=(d|0)){continue}break}d=m>>>1|0;if(g>>>0<=d>>>0){break k}b=0;break e}while(1){i=(g-1|0)==(i|0)?0:i+1|0;F[a+(d<<2)>>2]=i;d=d+1|0;g=F[f+12>>2];if(d>>>0>>0){continue}break}break j}m:{n:{a=d-g|0;d=m-a|0;o:{if((d|0)==(a|0)){b=a;break o}b=F[f+596>>2];if((b|0)==F[f+588>>2]){break n}g=F[b>>2];m=F[f+600>>2];n=m+1|0;F[f+600>>2]=n;g=g&-2147483648>>>m;p:{if((n|0)==32){F[f+600>>2]=0;F[f+596>>2]=b+4;if(g){break p}break n}if(!g){break n}}b=d}d=a;break m}b=a}a=F[f+640>>2];j=a+j|0;g=F[j>>2];m=g+k|0;F[m>>2]=F[m>>2]+1;Pa(a+l|0,g,F[j+4>>2]);if(d){k=F[e+28>>2]+F[e+24>>2]|0;a=F[e+16>>2];g=F[e+12>>2];if((k|0)==(((a|0)==(g|0)?0:L(a-g>>2,341)-1|0)|0)){Ob(e+8|0);k=F[e+24>>2]+F[e+28>>2]|0;g=F[e+12>>2]}a=(k>>>0)/341|0;a=F[g+(a<<2)>>2]+L(k-L(a,341)|0,12)|0;F[a+8>>2]=h;F[a+4>>2]=i;F[a>>2]=d;F[e+28>>2]=F[e+28>>2]+1}if(!b){break g}g=F[e+28>>2]+F[e+24>>2]|0;a=F[e+16>>2];d=F[e+12>>2];if((g|0)==(((a|0)==(d|0)?0:L(a-d>>2,341)-1|0)|0)){Ob(e+8|0);g=F[e+24>>2]+F[e+28>>2]|0;d=F[e+12>>2]}a=(g>>>0)/341|0;a=F[d+(a<<2)>>2]+L(g-L(a,341)|0,12)|0;F[a+8>>2]=o;F[a+4>>2]=i;F[a>>2]=b;d=F[e+28>>2]+1|0;F[e+28>>2]=d;break f}i=0;if(!m){break g}while(1){if(F[f+12>>2]){t=F[n>>2];j=F[f+548>>2];u=F[o>>2];h=F[f+604>>2];v=F[f+616>>2];d=0;while(1){g=(d<<2)+v|0;F[h+(F[g>>2]<<2)>>2]=0;b=F[f>>2];a=F[g>>2]<<2;k=F[a+u>>2];q:{if((b|0)==(k|0)){break q}a=a+h|0;b=b-k|0;k=F[f+560>>2];p=32-k|0;if((b|0)<=(p|0)){l=F[f+556>>2];if((l|0)==(j|0)){F[a>>2]=0;break q}F[a>>2]=F[l>>2]<>>32-b;a=b+F[f+560>>2]|0;F[f+560>>2]=a;if((a|0)!=32){break q}F[f+560>>2]=0;F[f+556>>2]=l+4;break q}l=F[f+556>>2];r=l+4|0;if((j|0)==(r|0)){F[a>>2]=0;break q}w=F[l>>2];F[f+556>>2]=r;p=b-p|0;F[f+560>>2]=p;F[a>>2]=F[l+4>>2]>>>32-p|w<>>32-b}a=F[g>>2]<<2;b=a+h|0;F[b>>2]=F[b>>2]|F[a+t>>2];d=d+1|0;if(d>>>0>2]){continue}break}}a=0;d=F[c+16>>2];r:{if((d|0)==F[c+20>>2]){break r}while(1){k=L(a,20)+d|0;j=F[f+604>>2]+(F[k+4>>2]<<2)|0;l=F[k>>2];b=F[k+12>>2];h=j;s:{if(b>>>0>3){break s}d=0;g=F[c+12>>2];h=g;if(!F[k+16>>2]){break s}while(1){h=Ri(g,j+(d<<2)|0,b);b=F[k+12>>2];g=h+b|0;d=d+1|0;if(d>>>0>2]){continue}break}h=F[c+12>>2]}d=F[c+28>>2];d=G[l+84|0]?d:F[F[l+68>>2]+(d<<2)>>2];if(d>>>0>=I[l+80>>2]){break r}b=F[l+40>>2];Ri(F[F[l>>2]>>2]+L(b,d)|0,h,b);a=a+1|0;d=F[c+16>>2];if(a>>>0<(F[c+20>>2]-d|0)/20>>>0){continue}break}}F[c+28>>2]=F[c+28>>2]+1;F[f+8>>2]=F[f+8>>2]+1;i=i+1|0;if((m|0)!=(i|0)){continue}break}}d=F[e+28>>2]}if(d){continue}break}b=1}F[e+28>>2]=0;i=F[e+16>>2];d=F[e+12>>2];g=i-d|0;if(g>>>0>=9){while(1){oj(F[d>>2]);d=F[e+12>>2]+4|0;F[e+12>>2]=d;i=F[e+16>>2];g=i-d|0;if(g>>>0>8){continue}break}}a=170;t:{switch((g>>>2|0)-1|0){case 1:a=341;case 0:F[e+24>>2]=a;break;default:break t}}u:{if((d|0)==(i|0)){break u}while(1){oj(F[d>>2]);d=d+4|0;if((i|0)!=(d|0)){continue}break}a=F[e+16>>2];c=F[e+12>>2];if((a|0)==(c|0)){break u}F[e+16>>2]=a+((c-a|0)+3&-4)}a=F[e+8>>2];if(a){oj(a)}fa=e+32|0;break b}Ia();V()}Ia();V()}d=b}return d}function Db(a,b,c){var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0;h=F[b+12>>2];g=F[b+20>>2];e=F[b+16>>2];l=e+4|0;g=l>>>0<4?g+1|0:g;a:{if(l>>>0>I[b+8>>2]&(g|0)>=(h|0)|(g|0)>(h|0)){break a}g=e+F[b>>2]|0;F[a>>2]=G[g|0]|G[g+1|0]<<8|(G[g+2|0]<<16|G[g+3|0]<<24);g=F[b+20>>2];h=g;l=F[b+16>>2];e=l+4|0;g=e>>>0<4?g+1|0:g;k=e;F[b+16>>2]=e;F[b+20>>2]=g;if(I[a>>2]>32){break a}e=F[b+12>>2];g=h;h=l+8|0;g=h>>>0<8?g+1|0:g;if((e|0)<=(g|0)&h>>>0>I[b+8>>2]|(e|0)<(g|0)){break a}d=k+F[b>>2]|0;g=G[d|0]|G[d+1|0]<<8|(G[d+2|0]<<16|G[d+3|0]<<24);F[a+4>>2]=g;d=F[b+20>>2];h=F[b+16>>2]+4|0;d=h>>>0<4?d+1|0:d;F[b+16>>2]=h;F[b+20>>2]=d;if(!g){return 1}d=0;F[a+8>>2]=0;if(!Gb(a+16|0,b)){break a}if(!fe(a+544|0,b)){break a}if(!fe(a+564|0,b)){break a}if(!fe(a+584|0,b)){break a}q=F[a+4>>2];e=fa-32|0;fa=e;g=a;d=F[a+12>>2];F[e+16>>2]=0;F[e+8>>2]=0;F[e+12>>2]=0;b:{c:{if(d){if(d>>>0>=1073741824){break c}a=d<<2;f=rj(a);F[e+8>>2]=f;i=a+f|0;F[e+16>>2]=i;Ti(f,0,a);F[e+12>>2]=i}a=F[g+628>>2];b=F[a>>2];if(b){F[a+4>>2]=b;oj(b);F[a+8>>2]=0;F[a>>2]=0;F[a+4>>2]=0;i=F[e+12>>2];f=F[e+8>>2];d=F[g+12>>2]}F[a+4>>2]=i;F[a>>2]=f;F[a+8>>2]=F[e+16>>2];f=0;F[e+16>>2]=0;F[e+8>>2]=0;F[e+12>>2]=0;d:{if(d){if(d>>>0>=1073741824){break d}a=d<<2;j=rj(a);F[e+8>>2]=j;f=a+j|0;F[e+16>>2]=f;Ti(j,0,a);F[e+12>>2]=f}a=F[g+640>>2];b=F[a>>2];if(b){F[a+4>>2]=b;oj(b);F[a+8>>2]=0;F[a>>2]=0;F[a+4>>2]=0;f=F[e+12>>2];j=F[e+8>>2]}F[a+4>>2]=f;F[a>>2]=j;F[a+8>>2]=F[e+16>>2];F[e+24>>2]=0;F[e+28>>2]=0;F[e+16>>2]=0;F[e+20>>2]=0;F[e+8>>2]=0;F[e+12>>2]=0;Ob(e+8|0);a=F[e+24>>2]+F[e+28>>2]|0;b=(a>>>0)/341|0;a=F[F[e+12>>2]+(b<<2)>>2]+L(a-L(b,341)|0,12)|0;F[a+4>>2]=0;F[a+8>>2]=0;F[a>>2]=q;b=1;d=F[e+28>>2]+1|0;F[e+28>>2]=d;e:{if(!d){break e}t=g+16|0;while(1){a=F[e+12>>2];f=F[e+24>>2];i=d-1|0;b=f+i|0;h=(b>>>0)/341|0;b=F[a+(h<<2)>>2]+L(b-L(h,341)|0,12)|0;h=F[b+8>>2];j=F[b+4>>2];l=F[b>>2];F[e+28>>2]=i;b=F[e+16>>2];if((((a|0)==(b|0)?0:L(b-a>>2,341)-1|0)-(d+f|0)|0)+1>>>0>=682){oj(F[b-4>>2]);F[e+16>>2]=F[e+16>>2]-4}if(l>>>0>q>>>0){b=0;break e}b=0;a=F[g+12>>2];j=(j|0)==(a-1|0)?0:j+1|0;if(j>>>0>=a>>>0){break e}a=F[g+628>>2];i=L(h,12);n=a+i|0;d=F[g>>2];k=j<<2;r=i+F[g+640>>2]|0;f=F[k+F[r>>2]>>2];f:{g:{if((d|0)==(f|0)){a=0;if(!l){break g}while(1){b=0;d=F[c+16>>2];h:{if((d|0)==F[c+20>>2]){break h}while(1){k=L(b,20)+d|0;j=F[n>>2]+(F[k+4>>2]<<2)|0;m=F[k>>2];i=F[k+12>>2];h=j;i:{if(i>>>0>3){break i}d=0;f=F[c+12>>2];h=f;if(!F[k+16>>2]){break i}while(1){h=Ri(f,j+(d<<2)|0,i);i=F[k+12>>2];f=h+i|0;d=d+1|0;if(d>>>0>2]){continue}break}h=F[c+12>>2]}d=F[c+28>>2];d=G[m+84|0]?d:F[F[m+68>>2]+(d<<2)>>2];if(d>>>0>=I[m+80>>2]){break h}f=d;d=F[m+40>>2];Ri(F[F[m>>2]>>2]+L(f,d)|0,h,d);b=b+1|0;d=F[c+16>>2];if(b>>>0<(F[c+20>>2]-d|0)/20>>>0){continue}break}}F[c+28>>2]=F[c+28>>2]+1;F[g+8>>2]=F[g+8>>2]+1;a=a+1|0;if((l|0)!=(a|0)){continue}break}break g}j:{k:{l:{if(l>>>0<=2){a=F[g+616>>2];F[a>>2]=j;d=1;f=F[g+12>>2];if(f>>>0>1){break l}break j}if(I[g+8>>2]>I[g+4>>2]){break e}o=a;a=i+12|0;Pa(o+a|0,F[n>>2],F[n+4>>2]);a=k+F[a+F[g+628>>2]>>2]|0;F[a>>2]=F[a>>2]+(1<>>1|0;break k}while(1){f=ie((d<<4)+t|0)|f<<1;d=d+1|0;if((a|0)!=(d|0)){continue}break}d=l>>>1|0;if(f>>>0<=d>>>0){break k}break e}while(1){j=(f-1|0)==(j|0)?0:j+1|0;F[a+(d<<2)>>2]=j;d=d+1|0;f=F[g+12>>2];if(d>>>0>>0){continue}break}break j}m=h+1|0;m:{n:{a=d-f|0;d=l-a|0;o:{if((d|0)==(a|0)){b=a;break o}b=F[g+596>>2];if((b|0)==F[g+588>>2]){break n}f=F[b>>2];l=F[g+600>>2];n=l+1|0;F[g+600>>2]=n;f=f&-2147483648>>>l;p:{if((n|0)==32){F[g+600>>2]=0;F[g+596>>2]=b+4;if(f){break p}break n}if(!f){break n}}b=d}d=a;break m}b=a}a=F[g+640>>2];f=a+i|0;i=F[f>>2];l=i+k|0;F[l>>2]=F[l>>2]+1;Pa(a+L(m,12)|0,i,F[f+4>>2]);if(d){a=F[e+28>>2]+F[e+24>>2]|0;i=F[e+16>>2];f=F[e+12>>2];if((a|0)==(((f|0)==(i|0)?0:L(i-f>>2,341)-1|0)|0)){Ob(e+8|0);f=F[e+12>>2];a=F[e+24>>2]+F[e+28>>2]|0}o=f;f=(a>>>0)/341|0;a=F[o+(f<<2)>>2]+L(a-L(f,341)|0,12)|0;F[a+8>>2]=h;F[a+4>>2]=j;F[a>>2]=d;F[e+28>>2]=F[e+28>>2]+1}if(!b){break g}f=F[e+28>>2]+F[e+24>>2]|0;a=F[e+16>>2];d=F[e+12>>2];if((f|0)==(((a|0)==(d|0)?0:L(a-d>>2,341)-1|0)|0)){Ob(e+8|0);f=F[e+24>>2]+F[e+28>>2]|0;d=F[e+12>>2]}a=(f>>>0)/341|0;a=F[d+(a<<2)>>2]+L(f-L(a,341)|0,12)|0;F[a+8>>2]=m;F[a+4>>2]=j;F[a>>2]=b;d=F[e+28>>2]+1|0;F[e+28>>2]=d;break f}a=0;if(!l){break g}while(1){if(F[g+12>>2]){u=F[n>>2];f=F[g+548>>2];v=F[r>>2];j=F[g+604>>2];w=F[g+616>>2];d=0;while(1){i=(d<<2)+w|0;F[j+(F[i>>2]<<2)>>2]=0;h=F[g>>2];b=F[i>>2]<<2;k=F[b+v>>2];q:{if((h|0)==(k|0)){break q}b=b+j|0;h=h-k|0;k=F[g+560>>2];p=32-k|0;if((h|0)<=(p|0)){m=F[g+556>>2];if((m|0)==(f|0)){F[b>>2]=0;break q}F[b>>2]=F[m>>2]<>>32-h;b=h+F[g+560>>2]|0;F[g+560>>2]=b;if((b|0)!=32){break q}F[g+560>>2]=0;F[g+556>>2]=m+4;break q}m=F[g+556>>2];s=m+4|0;if((f|0)==(s|0)){F[b>>2]=0;break q}o=F[m>>2];F[g+556>>2]=s;p=h-p|0;F[g+560>>2]=p;F[b>>2]=F[m+4>>2]>>>32-p|o<>>32-h}b=F[i>>2]<<2;h=b+j|0;F[h>>2]=F[h>>2]|F[b+u>>2];d=d+1|0;if(d>>>0>2]){continue}break}}b=0;d=F[c+16>>2];r:{if((d|0)==F[c+20>>2]){break r}while(1){k=L(b,20)+d|0;j=F[g+604>>2]+(F[k+4>>2]<<2)|0;m=F[k>>2];i=F[k+12>>2];h=j;s:{if(i>>>0>3){break s}d=0;f=F[c+12>>2];h=f;if(!F[k+16>>2]){break s}while(1){h=Ri(f,j+(d<<2)|0,i);i=F[k+12>>2];f=h+i|0;d=d+1|0;if(d>>>0>2]){continue}break}h=F[c+12>>2]}d=F[c+28>>2];d=G[m+84|0]?d:F[F[m+68>>2]+(d<<2)>>2];if(d>>>0>=I[m+80>>2]){break r}f=d;d=F[m+40>>2];Ri(F[F[m>>2]>>2]+L(f,d)|0,h,d);b=b+1|0;d=F[c+16>>2];if(b>>>0<(F[c+20>>2]-d|0)/20>>>0){continue}break}}F[c+28>>2]=F[c+28>>2]+1;F[g+8>>2]=F[g+8>>2]+1;a=a+1|0;if((l|0)!=(a|0)){continue}break}}d=F[e+28>>2]}if(d){continue}break}b=1}F[e+28>>2]=0;j=F[e+16>>2];d=F[e+12>>2];f=j-d|0;if(f>>>0>=9){while(1){oj(F[d>>2]);d=F[e+12>>2]+4|0;F[e+12>>2]=d;j=F[e+16>>2];f=j-d|0;if(f>>>0>8){continue}break}}i=170;t:{switch((f>>>2|0)-1|0){case 1:i=341;case 0:F[e+24>>2]=i;break;default:break t}}u:{if((d|0)==(j|0)){break u}while(1){oj(F[d>>2]);d=d+4|0;if((j|0)!=(d|0)){continue}break}a=F[e+16>>2];c=F[e+12>>2];if((a|0)==(c|0)){break u}F[e+16>>2]=a+((c-a|0)+3&-4)}a=F[e+8>>2];if(a){oj(a)}fa=e+32|0;break b}Ia();V()}Ia();V()}d=b}return d}function Eb(a,b,c){var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0;h=F[b+12>>2];f=F[b+20>>2];j=F[b+16>>2];e=j+4|0;f=e>>>0<4?f+1|0:f;a:{if(e>>>0>I[b+8>>2]&(f|0)>=(h|0)|(f|0)>(h|0)){break a}f=j+F[b>>2]|0;F[a>>2]=G[f|0]|G[f+1|0]<<8|(G[f+2|0]<<16|G[f+3|0]<<24);f=F[b+20>>2];h=f;e=F[b+16>>2];j=e+4|0;f=j>>>0<4?f+1|0:f;m=j;F[b+16>>2]=j;F[b+20>>2]=f;if(I[a>>2]>32){break a}j=F[b+12>>2];f=h;h=e+8|0;f=h>>>0<8?f+1|0:f;if(h>>>0>I[b+8>>2]&(f|0)>=(j|0)|(f|0)>(j|0)){break a}d=m+F[b>>2]|0;f=G[d|0]|G[d+1|0]<<8|(G[d+2|0]<<16|G[d+3|0]<<24);F[a+4>>2]=f;d=F[b+20>>2];h=F[b+16>>2]+4|0;d=h>>>0<4?d+1|0:d;F[b+16>>2]=h;F[b+20>>2]=d;if(!f){return 1}d=0;F[a+8>>2]=0;if(!Gb(a+16|0,b)){break a}if(!fe(a+544|0,b)){break a}if(!fe(a+564|0,b)){break a}if(!fe(a+584|0,b)){break a}q=F[a+4>>2];b=0;e=fa-32|0;fa=e;f=a;d=F[a+12>>2];F[e+16>>2]=0;F[e+8>>2]=0;F[e+12>>2]=0;b:{c:{if(d){if(d>>>0>=1073741824){break c}a=d<<2;g=rj(a);F[e+8>>2]=g;b=a+g|0;F[e+16>>2]=b;Ti(g,0,a);F[e+12>>2]=b}a=F[f+628>>2];h=F[a>>2];if(h){F[a+4>>2]=h;oj(h);F[a+8>>2]=0;F[a>>2]=0;F[a+4>>2]=0;d=F[f+12>>2];g=F[e+8>>2];b=F[e+12>>2]}F[a+4>>2]=b;F[a>>2]=g;F[a+8>>2]=F[e+16>>2];g=0;F[e+16>>2]=0;F[e+8>>2]=0;F[e+12>>2]=0;d:{if(d){if(d>>>0>=1073741824){break d}a=d<<2;i=rj(a);F[e+8>>2]=i;g=a+i|0;F[e+16>>2]=g;Ti(i,0,a);F[e+12>>2]=g}a=F[f+640>>2];b=F[a>>2];if(b){F[a+4>>2]=b;oj(b);F[a+8>>2]=0;F[a>>2]=0;F[a+4>>2]=0;i=F[e+8>>2];g=F[e+12>>2]}F[a+4>>2]=g;F[a>>2]=i;F[a+8>>2]=F[e+16>>2];F[e+24>>2]=0;F[e+28>>2]=0;F[e+16>>2]=0;F[e+20>>2]=0;F[e+8>>2]=0;F[e+12>>2]=0;Ob(e+8|0);a=F[e+24>>2]+F[e+28>>2]|0;b=(a>>>0)/341|0;a=F[F[e+12>>2]+(b<<2)>>2]+L(a-L(b,341)|0,12)|0;F[a+4>>2]=0;F[a+8>>2]=0;F[a>>2]=q;b=1;d=F[e+28>>2]+1|0;F[e+28>>2]=d;e:{if(!d){break e}s=f+16|0;while(1){a=F[e+12>>2];j=F[e+24>>2];b=d-1|0;h=j+b|0;g=(h>>>0)/341|0;g=F[a+(g<<2)>>2]+L(h-L(g,341)|0,12)|0;h=F[g+8>>2];m=F[g>>2];F[e+28>>2]=b;b=F[e+16>>2];if((((a|0)==(b|0)?0:L(b-a>>2,341)-1|0)-(d+j|0)|0)+1>>>0>=682){oj(F[b-4>>2]);F[e+16>>2]=F[e+16>>2]-4}b=0;if(m>>>0>q>>>0){break e}a=F[f+628>>2];j=L(h,12);o=j+F[f+640>>2]|0;i=Oi(f,m,o);if(i>>>0>=I[f+12>>2]){break e}n=a+j|0;d=F[f>>2];k=i<<2;g=F[k+F[o>>2]>>2];f:{g:{if((d|0)==(g|0)){k=0;if(!m){break g}while(1){a=0;d=F[c+16>>2];h:{if((d|0)==F[c+20>>2]){break h}while(1){i=L(a,20)+d|0;j=F[n>>2]+(F[i+4>>2]<<2)|0;l=F[i>>2];b=F[i+12>>2];h=j;i:{if(b>>>0>3){break i}d=0;g=F[c+12>>2];h=g;if(!F[i+16>>2]){break i}while(1){h=Ri(g,j+(d<<2)|0,b);b=F[i+12>>2];g=h+b|0;d=d+1|0;if(d>>>0>2]){continue}break}h=F[c+12>>2]}d=F[c+28>>2];d=G[l+84|0]?d:F[F[l+68>>2]+(d<<2)>>2];if(d>>>0>=I[l+80>>2]){break h}b=F[l+40>>2];Ri(F[F[l>>2]>>2]+L(b,d)|0,h,b);a=a+1|0;d=F[c+16>>2];if(a>>>0<(F[c+20>>2]-d|0)/20>>>0){continue}break}}F[c+28>>2]=F[c+28>>2]+1;F[f+8>>2]=F[f+8>>2]+1;k=k+1|0;if((m|0)!=(k|0)){continue}break}break g}j:{k:{l:{if(m>>>0<=2){a=F[f+616>>2];F[a>>2]=i;d=1;g=F[f+12>>2];if(g>>>0>1){break l}break j}if(I[f+8>>2]>I[f+4>>2]){break e}a=F[f+628>>2];o=h+1|0;l=L(o,12);b=a+l|0;if((b|0)!=(n|0)){Pa(b,F[n>>2],F[n+4>>2]);a=F[f+628>>2]}a=k+F[a+l>>2]|0;F[a>>2]=F[a>>2]+(1<>>1|0;break k}while(1){g=ie((d<<4)+s|0)|g<<1;d=d+1|0;if((a|0)!=(d|0)){continue}break}d=m>>>1|0;if(g>>>0<=d>>>0){break k}b=0;break e}while(1){i=(g-1|0)==(i|0)?0:i+1|0;F[a+(d<<2)>>2]=i;d=d+1|0;g=F[f+12>>2];if(d>>>0>>0){continue}break}break j}m:{n:{a=d-g|0;d=m-a|0;o:{if((d|0)==(a|0)){b=a;break o}b=F[f+596>>2];if((b|0)==F[f+588>>2]){break n}g=F[b>>2];m=F[f+600>>2];n=m+1|0;F[f+600>>2]=n;g=g&-2147483648>>>m;p:{if((n|0)==32){F[f+600>>2]=0;F[f+596>>2]=b+4;if(g){break p}break n}if(!g){break n}}b=d}d=a;break m}b=a}a=F[f+640>>2];j=a+j|0;g=F[j>>2];m=g+k|0;F[m>>2]=F[m>>2]+1;Pa(a+l|0,g,F[j+4>>2]);if(d){k=F[e+28>>2]+F[e+24>>2]|0;a=F[e+16>>2];g=F[e+12>>2];if((k|0)==(((a|0)==(g|0)?0:L(a-g>>2,341)-1|0)|0)){Ob(e+8|0);k=F[e+24>>2]+F[e+28>>2]|0;g=F[e+12>>2]}a=(k>>>0)/341|0;a=F[g+(a<<2)>>2]+L(k-L(a,341)|0,12)|0;F[a+8>>2]=h;F[a+4>>2]=i;F[a>>2]=d;F[e+28>>2]=F[e+28>>2]+1}if(!b){break g}g=F[e+28>>2]+F[e+24>>2]|0;a=F[e+16>>2];d=F[e+12>>2];if((g|0)==(((a|0)==(d|0)?0:L(a-d>>2,341)-1|0)|0)){Ob(e+8|0);g=F[e+24>>2]+F[e+28>>2]|0;d=F[e+12>>2]}a=(g>>>0)/341|0;a=F[d+(a<<2)>>2]+L(g-L(a,341)|0,12)|0;F[a+8>>2]=o;F[a+4>>2]=i;F[a>>2]=b;d=F[e+28>>2]+1|0;F[e+28>>2]=d;break f}i=0;if(!m){break g}while(1){if(F[f+12>>2]){t=F[n>>2];j=F[f+548>>2];u=F[o>>2];h=F[f+604>>2];v=F[f+616>>2];d=0;while(1){g=(d<<2)+v|0;F[h+(F[g>>2]<<2)>>2]=0;b=F[f>>2];a=F[g>>2]<<2;k=F[a+u>>2];q:{if((b|0)==(k|0)){break q}a=a+h|0;b=b-k|0;k=F[f+560>>2];p=32-k|0;if((b|0)<=(p|0)){l=F[f+556>>2];if((l|0)==(j|0)){F[a>>2]=0;break q}F[a>>2]=F[l>>2]<>>32-b;a=b+F[f+560>>2]|0;F[f+560>>2]=a;if((a|0)!=32){break q}F[f+560>>2]=0;F[f+556>>2]=l+4;break q}l=F[f+556>>2];r=l+4|0;if((j|0)==(r|0)){F[a>>2]=0;break q}w=F[l>>2];F[f+556>>2]=r;p=b-p|0;F[f+560>>2]=p;F[a>>2]=F[l+4>>2]>>>32-p|w<>>32-b}a=F[g>>2]<<2;b=a+h|0;F[b>>2]=F[b>>2]|F[a+t>>2];d=d+1|0;if(d>>>0>2]){continue}break}}a=0;d=F[c+16>>2];r:{if((d|0)==F[c+20>>2]){break r}while(1){k=L(a,20)+d|0;j=F[f+604>>2]+(F[k+4>>2]<<2)|0;l=F[k>>2];b=F[k+12>>2];h=j;s:{if(b>>>0>3){break s}d=0;g=F[c+12>>2];h=g;if(!F[k+16>>2]){break s}while(1){h=Ri(g,j+(d<<2)|0,b);b=F[k+12>>2];g=h+b|0;d=d+1|0;if(d>>>0>2]){continue}break}h=F[c+12>>2]}d=F[c+28>>2];d=G[l+84|0]?d:F[F[l+68>>2]+(d<<2)>>2];if(d>>>0>=I[l+80>>2]){break r}b=F[l+40>>2];Ri(F[F[l>>2]>>2]+L(b,d)|0,h,b);a=a+1|0;d=F[c+16>>2];if(a>>>0<(F[c+20>>2]-d|0)/20>>>0){continue}break}}F[c+28>>2]=F[c+28>>2]+1;F[f+8>>2]=F[f+8>>2]+1;i=i+1|0;if((m|0)!=(i|0)){continue}break}}d=F[e+28>>2]}if(d){continue}break}b=1}F[e+28>>2]=0;i=F[e+16>>2];d=F[e+12>>2];g=i-d|0;if(g>>>0>=9){while(1){oj(F[d>>2]);d=F[e+12>>2]+4|0;F[e+12>>2]=d;i=F[e+16>>2];g=i-d|0;if(g>>>0>8){continue}break}}a=170;t:{switch((g>>>2|0)-1|0){case 1:a=341;case 0:F[e+24>>2]=a;break;default:break t}}u:{if((d|0)==(i|0)){break u}while(1){oj(F[d>>2]);d=d+4|0;if((i|0)!=(d|0)){continue}break}a=F[e+16>>2];c=F[e+12>>2];if((a|0)==(c|0)){break u}F[e+16>>2]=a+((c-a|0)+3&-4)}a=F[e+8>>2];if(a){oj(a)}fa=e+32|0;break b}Ia();V()}Ia();V()}d=b}return d}function wb(a,b,c){var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0;d=F[b+12>>2];f=F[b+20>>2];e=F[b+16>>2];k=e+4|0;f=k>>>0<4?f+1|0:f;a:{if((d|0)<=(f|0)&k>>>0>I[b+8>>2]|(d|0)<(f|0)){break a}f=e+F[b>>2]|0;F[a>>2]=G[f|0]|G[f+1|0]<<8|(G[f+2|0]<<16|G[f+3|0]<<24);f=F[b+20>>2];d=f;k=F[b+16>>2];e=k+4|0;f=e>>>0<4?d+1|0:d;m=e;F[b+16>>2]=e;F[b+20>>2]=f;if(I[a>>2]>32){break a}e=F[b+12>>2];f=d;d=k+8|0;f=d>>>0<8?f+1|0:f;if(d>>>0>I[b+8>>2]&(f|0)>=(e|0)|(f|0)>(e|0)){break a}i=m+F[b>>2]|0;f=G[i|0]|G[i+1|0]<<8|(G[i+2|0]<<16|G[i+3|0]<<24);F[a+4>>2]=f;i=F[b+20>>2];d=F[b+16>>2]+4|0;i=d>>>0<4?i+1|0:i;F[b+16>>2]=d;F[b+20>>2]=i;if(!f){return 1}i=0;F[a+8>>2]=0;if(!ge(a+16|0,b)){break a}if(!fe(a+32|0,b)){break a}if(!fe(a+52|0,b)){break a}if(!fe(a+72|0,b)){break a}r=F[a+4>>2];d=fa-32|0;fa=d;f=a;e=F[a+12>>2];F[d+16>>2]=0;F[d+8>>2]=0;F[d+12>>2]=0;b:{c:{if(e){if(e>>>0>=1073741824){break c}a=e<<2;g=rj(a);F[d+8>>2]=g;j=a+g|0;F[d+16>>2]=j;Ti(g,0,a);F[d+12>>2]=j}a=F[f+116>>2];b=F[a>>2];if(b){F[a+4>>2]=b;oj(b);F[a+8>>2]=0;F[a>>2]=0;F[a+4>>2]=0;j=F[d+12>>2];g=F[d+8>>2];e=F[f+12>>2]}F[a+4>>2]=j;F[a>>2]=g;F[a+8>>2]=F[d+16>>2];g=0;F[d+16>>2]=0;F[d+8>>2]=0;F[d+12>>2]=0;d:{if(e){if(e>>>0>=1073741824){break d}a=e<<2;h=rj(a);F[d+8>>2]=h;g=a+h|0;F[d+16>>2]=g;Ti(h,0,a);F[d+12>>2]=g}a=F[f+128>>2];b=F[a>>2];if(b){F[a+4>>2]=b;oj(b);F[a+8>>2]=0;F[a>>2]=0;F[a+4>>2]=0;h=F[d+8>>2];g=F[d+12>>2]}F[a+4>>2]=g;F[a>>2]=h;F[a+8>>2]=F[d+16>>2];F[d+24>>2]=0;F[d+28>>2]=0;F[d+16>>2]=0;F[d+20>>2]=0;F[d+8>>2]=0;F[d+12>>2]=0;Ob(d+8|0);a=F[d+24>>2]+F[d+28>>2]|0;b=(a>>>0)/341|0;a=F[F[d+12>>2]+(b<<2)>>2]+L(a-L(b,341)|0,12)|0;F[a+4>>2]=0;F[a+8>>2]=0;F[a>>2]=r;i=1;e=F[d+28>>2]+1|0;F[d+28>>2]=e;e:{if(!e){break e}t=f+16|0;while(1){a=F[d+12>>2];i=F[d+24>>2];h=e-1|0;b=i+h|0;g=(b>>>0)/341|0;b=F[a+(g<<2)>>2]+L(b-L(g,341)|0,12)|0;j=F[b+8>>2];g=F[b+4>>2];k=F[b>>2];F[d+28>>2]=h;b=F[d+16>>2];if((((a|0)==(b|0)?0:L(b-a>>2,341)-1|0)-(e+i|0)|0)+1>>>0>=682){oj(F[b-4>>2]);F[d+16>>2]=F[d+16>>2]-4}i=0;if(k>>>0>r>>>0){break e}a=F[f+12>>2];e=(a-1|0)==(g|0)?0:g+1|0;if(e>>>0>=a>>>0){break e}g=L(j,12);n=g+F[f+128>>2]|0;m=g+F[f+116>>2]|0;b=F[f>>2];h=e<<2;o=F[h+F[n>>2]>>2];f:{if((b|0)==(o|0)){if(!k){break f}b=0;if(F[c+20>>2]==F[c+16>>2]){a=F[f+8>>2];F[c+28>>2]=k+F[c+28>>2];F[f+8>>2]=a+k;break f}while(1){h=0;e=F[c+16>>2];g:{if((e|0)==F[c+20>>2]){break g}while(1){l=L(h,20)+e|0;i=F[m>>2]+(F[l+4>>2]<<2)|0;n=F[l>>2];j=F[l+12>>2];a=i;h:{if(j>>>0>3){break h}e=0;g=F[c+12>>2];a=g;if(!F[l+16>>2]){break h}while(1){a=Ri(g,i+(e<<2)|0,j);j=F[l+12>>2];g=a+j|0;e=e+1|0;if(e>>>0>2]){continue}break}a=F[c+12>>2]}e=F[c+28>>2];e=G[n+84|0]?e:F[F[n+68>>2]+(e<<2)>>2];if(e>>>0>=I[n+80>>2]){break g}i=F[n+40>>2];Ri(F[F[n>>2]>>2]+L(i,e)|0,a,i);h=h+1|0;e=F[c+16>>2];if(h>>>0<(F[c+20>>2]-e|0)/20>>>0){continue}break}}F[c+28>>2]=F[c+28>>2]+1;F[f+8>>2]=F[f+8>>2]+1;b=b+1|0;if((k|0)!=(b|0)){continue}break}break f}i:{j:{k:{l:{if(k>>>0<=2){a=F[f+104>>2];F[a>>2]=e;h=1;g=F[f+12>>2];if(g>>>0>1){break l}break i}if(I[f+8>>2]>I[f+4>>2]){break e}a=F[f+116>>2];n=j+1|0;l=L(n,12);q=a+l|0;if((q|0)!=(m|0)){Pa(q,F[m>>2],F[m+4>>2]);a=F[f+116>>2]}a=h+F[a+l>>2]|0;F[a>>2]=F[a>>2]+(1<>2]=0;je(t,O(k)^31,d+4|0);a=k>>>1|0;b=F[d+4>>2];if(a>>>0>>0){break e}a=a-b|0;i=k-a|0;m:{if((i|0)==(a|0)){i=a;break m}b=F[f+84>>2];if((b|0)==F[f+76>>2]){break k}k=F[b>>2];m=F[f+88>>2];o=m+1|0;F[f+88>>2]=o;k=k&-2147483648>>>m;n:{if((o|0)==32){F[f+88>>2]=0;F[f+84>>2]=b+4;if(k){break n}break k}if(!k){break k}}}b=i;i=a;break j}while(1){e=(g-1|0)==(e|0)?0:e+1|0;F[a+(h<<2)>>2]=e;g=F[f+12>>2];h=h+1|0;if(g>>>0>h>>>0){continue}break}break i}b=a}m=h;a=F[f+128>>2];g=a+g|0;h=F[g>>2];k=m+h|0;F[k>>2]=F[k>>2]+1;Pa(a+l|0,h,F[g+4>>2]);if(i){g=F[d+28>>2]+F[d+24>>2]|0;a=F[d+16>>2];h=F[d+12>>2];if((g|0)==(((a|0)==(h|0)?0:L(a-h>>2,341)-1|0)|0)){Ob(d+8|0);h=F[d+12>>2];g=F[d+24>>2]+F[d+28>>2]|0}a=(g>>>0)/341|0;a=F[(a<<2)+h>>2]+L(g-L(a,341)|0,12)|0;F[a+8>>2]=j;F[a+4>>2]=e;F[a>>2]=i;F[d+28>>2]=F[d+28>>2]+1}if(!b){break f}g=F[d+28>>2]+F[d+24>>2]|0;a=F[d+16>>2];h=F[d+12>>2];if((g|0)==(((a|0)==(h|0)?0:L(a-h>>2,341)-1|0)|0)){Ob(d+8|0);h=F[d+12>>2];g=F[d+24>>2]+F[d+28>>2]|0}a=(g>>>0)/341|0;a=F[(a<<2)+h>>2]+L(g-L(a,341)|0,12)|0;F[a+8>>2]=n;F[a+4>>2]=e;F[a>>2]=b;F[d+28>>2]=F[d+28>>2]+1;break f}o=0;if(!k){break f}while(1){if(F[f+12>>2]){q=F[m>>2];g=F[f+36>>2];u=F[n>>2];i=F[f+92>>2];v=F[f+104>>2];e=0;while(1){h=(e<<2)+v|0;F[i+(F[h>>2]<<2)>>2]=0;b=F[f>>2];a=F[h>>2]<<2;j=F[a+u>>2];o:{if((b|0)==(j|0)){break o}a=a+i|0;b=b-j|0;j=F[f+48>>2];p=32-j|0;if((b|0)<=(p|0)){l=F[f+44>>2];if((l|0)==(g|0)){F[a>>2]=0;break o}F[a>>2]=F[l>>2]<>>32-b;a=b+F[f+48>>2]|0;F[f+48>>2]=a;if((a|0)!=32){break o}F[f+48>>2]=0;F[f+44>>2]=l+4;break o}l=F[f+44>>2];s=l+4|0;if((g|0)==(s|0)){F[a>>2]=0;break o}w=F[l>>2];F[f+44>>2]=s;p=b-p|0;F[f+48>>2]=p;F[a>>2]=F[l+4>>2]>>>32-p|w<>>32-b}a=F[h>>2]<<2;b=a+i|0;F[b>>2]=F[b>>2]|F[a+q>>2];e=e+1|0;if(e>>>0>2]){continue}break}}h=0;e=F[c+16>>2];p:{if((e|0)==F[c+20>>2]){break p}while(1){i=L(h,20)+e|0;b=F[f+92>>2]+(F[i+4>>2]<<2)|0;l=F[i>>2];j=F[i+12>>2];a=b;q:{if(j>>>0>3){break q}e=0;g=F[c+12>>2];a=g;if(!F[i+16>>2]){break q}while(1){a=Ri(g,b+(e<<2)|0,j);j=F[i+12>>2];g=a+j|0;e=e+1|0;if(e>>>0>2]){continue}break}a=F[c+12>>2]}e=F[c+28>>2];e=G[l+84|0]?e:F[F[l+68>>2]+(e<<2)>>2];if(e>>>0>=I[l+80>>2]){break p}b=F[l+40>>2];Ri(F[F[l>>2]>>2]+L(b,e)|0,a,b);h=h+1|0;e=F[c+16>>2];if(h>>>0<(F[c+20>>2]-e|0)/20>>>0){continue}break}}F[c+28>>2]=F[c+28>>2]+1;F[f+8>>2]=F[f+8>>2]+1;o=o+1|0;if((k|0)!=(o|0)){continue}break}}e=F[d+28>>2];if(e){continue}break}i=1}F[d+28>>2]=0;h=F[d+16>>2];e=F[d+12>>2];g=h-e|0;if(g>>>0>=9){while(1){oj(F[e>>2]);e=F[d+12>>2]+4|0;F[d+12>>2]=e;h=F[d+16>>2];g=h-e|0;if(g>>>0>8){continue}break}}j=170;r:{switch((g>>>2|0)-1|0){case 1:j=341;case 0:F[d+24>>2]=j;break;default:break r}}s:{if((e|0)==(h|0)){break s}while(1){oj(F[e>>2]);e=e+4|0;if((h|0)!=(e|0)){continue}break}a=F[d+16>>2];b=F[d+12>>2];if((a|0)==(b|0)){break s}F[d+16>>2]=a+((b-a|0)+3&-4)}a=F[d+8>>2];if(a){oj(a)}fa=d+32|0;break b}Ia();V()}Ia();V()}}return i}function zb(a,b,c){var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0;j=F[b+12>>2];f=F[b+20>>2];i=F[b+16>>2];d=i+4|0;f=d>>>0<4?f+1|0:f;a:{if(d>>>0>I[b+8>>2]&(f|0)>=(j|0)|(f|0)>(j|0)){break a}f=i+F[b>>2]|0;F[a>>2]=G[f|0]|G[f+1|0]<<8|(G[f+2|0]<<16|G[f+3|0]<<24);f=F[b+20>>2];j=f;d=F[b+16>>2];i=d+4|0;f=i>>>0<4?f+1|0:f;e=i;F[b+16>>2]=e;F[b+20>>2]=f;if(I[a>>2]>32){break a}i=F[b+12>>2];f=j;j=d+8|0;f=j>>>0<8?f+1|0:f;if(j>>>0>I[b+8>>2]&(f|0)>=(i|0)|(f|0)>(i|0)){break a}g=e+F[b>>2]|0;f=G[g|0]|G[g+1|0]<<8|(G[g+2|0]<<16|G[g+3|0]<<24);F[a+4>>2]=f;g=F[b+20>>2];j=F[b+16>>2]+4|0;g=j>>>0<4?g+1|0:g;F[b+16>>2]=j;F[b+20>>2]=g;if(!f){return 1}g=0;F[a+8>>2]=0;if(!ge(a+16|0,b)){break a}if(!fe(a+32|0,b)){break a}if(!fe(a+52|0,b)){break a}if(!fe(a+72|0,b)){break a}p=F[a+4>>2];d=fa-32|0;fa=d;f=a;e=F[a+12>>2];F[d+16>>2]=0;F[d+8>>2]=0;F[d+12>>2]=0;b:{c:{if(e){if(e>>>0>=1073741824){break c}a=e<<2;h=rj(a);F[d+8>>2]=h;g=a+h|0;F[d+16>>2]=g;Ti(h,0,a);F[d+12>>2]=g}a=F[f+116>>2];b=F[a>>2];if(b){F[a+4>>2]=b;oj(b);F[a+8>>2]=0;F[a>>2]=0;F[a+4>>2]=0;e=F[f+12>>2];h=F[d+8>>2];g=F[d+12>>2]}F[a+4>>2]=g;F[a>>2]=h;F[a+8>>2]=F[d+16>>2];h=0;F[d+16>>2]=0;F[d+8>>2]=0;F[d+12>>2]=0;a=0;d:{if(e){if(e>>>0>=1073741824){break d}b=e<<2;a=rj(b);F[d+8>>2]=a;h=a+b|0;F[d+16>>2]=h;Ti(a,0,b);F[d+12>>2]=h}b=F[f+128>>2];g=F[b>>2];if(g){F[b+4>>2]=g;oj(g);F[b+8>>2]=0;F[b>>2]=0;F[b+4>>2]=0;h=F[d+12>>2];a=F[d+8>>2]}F[b+4>>2]=h;F[b>>2]=a;F[b+8>>2]=F[d+16>>2];F[d+24>>2]=0;F[d+28>>2]=0;F[d+16>>2]=0;F[d+20>>2]=0;F[d+8>>2]=0;F[d+12>>2]=0;Ob(d+8|0);a=F[d+24>>2]+F[d+28>>2]|0;b=(a>>>0)/341|0;a=F[F[d+12>>2]+(b<<2)>>2]+L(a-L(b,341)|0,12)|0;F[a+4>>2]=0;F[a+8>>2]=0;F[a>>2]=p;b=1;e=F[d+28>>2]+1|0;F[d+28>>2]=e;e:{if(!e){break e}s=f+16|0;while(1){a=F[d+12>>2];i=F[d+24>>2];h=e-1|0;b=i+h|0;g=(b>>>0)/341|0;b=F[a+(g<<2)>>2]+L(b-L(g,341)|0,12)|0;j=F[b+8>>2];g=F[b+4>>2];l=F[b>>2];F[d+28>>2]=h;b=F[d+16>>2];if((((a|0)==(b|0)?0:L(b-a>>2,341)-1|0)-(e+i|0)|0)+1>>>0>=682){oj(F[b-4>>2]);F[d+16>>2]=F[d+16>>2]-4}if(l>>>0>p>>>0){b=0;break e}b=0;a=F[f+12>>2];e=(g|0)==(a-1|0)?0:g+1|0;if(e>>>0>=a>>>0){break e}a=F[f+116>>2];i=L(j,12);n=a+i|0;g=F[f>>2];h=e<<2;q=i+F[f+128>>2]|0;k=F[h+F[q>>2]>>2];f:{if((g|0)==(k|0)){if(!l){break f}if(F[c+20>>2]==F[c+16>>2]){a=F[f+8>>2];F[c+28>>2]=l+F[c+28>>2];F[f+8>>2]=a+l;break f}while(1){a=0;e=F[c+16>>2];g:{if((e|0)==F[c+20>>2]){break g}while(1){k=L(a,20)+e|0;i=F[n>>2]+(F[k+4>>2]<<2)|0;m=F[k>>2];g=F[k+12>>2];j=i;h:{if(g>>>0>3){break h}e=0;h=F[c+12>>2];j=h;if(!F[k+16>>2]){break h}while(1){j=Ri(h,i+(e<<2)|0,g);g=F[k+12>>2];h=j+g|0;e=e+1|0;if(e>>>0>2]){continue}break}j=F[c+12>>2]}e=F[c+28>>2];e=G[m+84|0]?e:F[F[m+68>>2]+(e<<2)>>2];if(e>>>0>=I[m+80>>2]){break g}g=F[m+40>>2];Ri(F[F[m>>2]>>2]+L(g,e)|0,j,g);a=a+1|0;e=F[c+16>>2];if(a>>>0<(F[c+20>>2]-e|0)/20>>>0){continue}break}}F[c+28>>2]=F[c+28>>2]+1;F[f+8>>2]=F[f+8>>2]+1;b=b+1|0;if((l|0)!=(b|0)){continue}break}break f}i:{j:{k:{l:{if(l>>>0<=2){b=F[f+104>>2];F[b>>2]=e;a=1;h=F[f+12>>2];if(h>>>0>1){break l}break i}if(I[f+8>>2]>I[f+4>>2]){break e}m=a;a=i+12|0;Pa(m+a|0,F[n>>2],F[n+4>>2]);a=h+F[a+F[f+116>>2]>>2]|0;F[a>>2]=F[a>>2]+(1<>2]=0;je(s,O(l)^31,d+4|0);a=l>>>1|0;g=F[d+4>>2];if(a>>>0>>0){break e}k=j+1|0;a=a-g|0;g=l-a|0;m:{if((g|0)==(a|0)){b=a;break m}b=F[f+84>>2];if((b|0)==F[f+76>>2]){break k}l=F[b>>2];m=F[f+88>>2];n=m+1|0;F[f+88>>2]=n;l=l&-2147483648>>>m;n:{if((n|0)==32){F[f+88>>2]=0;F[f+84>>2]=b+4;if(l){break n}break k}if(!l){break k}}b=g}g=a;break j}while(1){e=(h-1|0)==(e|0)?0:e+1|0;F[b+(a<<2)>>2]=e;a=a+1|0;h=F[f+12>>2];if(a>>>0>>0){continue}break}break i}b=a}m=h;a=F[f+128>>2];i=a+i|0;h=F[i>>2];l=m+h|0;F[l>>2]=F[l>>2]+1;Pa(a+L(k,12)|0,h,F[i+4>>2]);if(g){h=F[d+28>>2]+F[d+24>>2]|0;i=F[d+16>>2];a=F[d+12>>2];if((h|0)==(((a|0)==(i|0)?0:L(i-a>>2,341)-1|0)|0)){Ob(d+8|0);h=F[d+24>>2]+F[d+28>>2]|0;i=F[d+12>>2]}else{i=a}a=(h>>>0)/341|0;a=F[i+(a<<2)>>2]+L(h-L(a,341)|0,12)|0;F[a+8>>2]=j;F[a+4>>2]=e;F[a>>2]=g;F[d+28>>2]=F[d+28>>2]+1}if(!b){break f}h=F[d+28>>2]+F[d+24>>2]|0;g=F[d+16>>2];a=F[d+12>>2];if((h|0)==(((a|0)==(g|0)?0:L(g-a>>2,341)-1|0)|0)){Ob(d+8|0);h=F[d+24>>2]+F[d+28>>2]|0;j=F[d+12>>2]}else{j=a}a=(h>>>0)/341|0;a=F[j+(a<<2)>>2]+L(h-L(a,341)|0,12)|0;F[a+8>>2]=k;F[a+4>>2]=e;F[a>>2]=b;F[d+28>>2]=F[d+28>>2]+1;break f}m=0;if(!l){break f}while(1){if(F[f+12>>2]){t=F[n>>2];j=F[f+36>>2];u=F[q>>2];g=F[f+92>>2];v=F[f+104>>2];e=0;while(1){i=(e<<2)+v|0;F[g+(F[i>>2]<<2)>>2]=0;b=F[f>>2];a=F[i>>2]<<2;h=F[a+u>>2];o:{if((b|0)==(h|0)){break o}a=a+g|0;b=b-h|0;h=F[f+48>>2];o=32-h|0;if((b|0)<=(o|0)){k=F[f+44>>2];if((k|0)==(j|0)){F[a>>2]=0;break o}F[a>>2]=F[k>>2]<>>32-b;a=b+F[f+48>>2]|0;F[f+48>>2]=a;if((a|0)!=32){break o}F[f+48>>2]=0;F[f+44>>2]=k+4;break o}k=F[f+44>>2];r=k+4|0;if((j|0)==(r|0)){F[a>>2]=0;break o}w=F[k>>2];F[f+44>>2]=r;o=b-o|0;F[f+48>>2]=o;F[a>>2]=F[k+4>>2]>>>32-o|w<>>32-b}a=F[i>>2]<<2;b=a+g|0;F[b>>2]=F[b>>2]|F[a+t>>2];e=e+1|0;if(e>>>0>2]){continue}break}}a=0;e=F[c+16>>2];p:{if((e|0)==F[c+20>>2]){break p}while(1){i=L(a,20)+e|0;j=F[f+92>>2]+(F[i+4>>2]<<2)|0;k=F[i>>2];g=F[i+12>>2];b=j;q:{if(g>>>0>3){break q}e=0;h=F[c+12>>2];b=h;if(!F[i+16>>2]){break q}while(1){b=Ri(h,j+(e<<2)|0,g);g=F[i+12>>2];h=b+g|0;e=e+1|0;if(e>>>0>2]){continue}break}b=F[c+12>>2]}e=F[c+28>>2];e=G[k+84|0]?e:F[F[k+68>>2]+(e<<2)>>2];if(e>>>0>=I[k+80>>2]){break p}g=F[k+40>>2];Ri(F[F[k>>2]>>2]+L(g,e)|0,b,g);a=a+1|0;e=F[c+16>>2];if(a>>>0<(F[c+20>>2]-e|0)/20>>>0){continue}break}}F[c+28>>2]=F[c+28>>2]+1;F[f+8>>2]=F[f+8>>2]+1;m=m+1|0;if((l|0)!=(m|0)){continue}break}}e=F[d+28>>2];if(e){continue}break}b=1}F[d+28>>2]=0;a=F[d+16>>2];e=F[d+12>>2];h=a-e|0;if(h>>>0>=9){while(1){oj(F[e>>2]);e=F[d+12>>2]+4|0;F[d+12>>2]=e;a=F[d+16>>2];h=a-e|0;if(h>>>0>8){continue}break}}g=170;r:{switch((h>>>2|0)-1|0){case 1:g=341;case 0:F[d+24>>2]=g;break;default:break r}}s:{if((a|0)==(e|0)){break s}while(1){oj(F[e>>2]);e=e+4|0;if((e|0)!=(a|0)){continue}break}a=F[d+16>>2];c=F[d+12>>2];if((a|0)==(c|0)){break s}F[d+16>>2]=a+((c-a|0)+3&-4)}a=F[d+8>>2];if(a){oj(a)}fa=d+32|0;break b}Ia();V()}Ia();V()}g=b}return g}function Rc(a,b,c,d){var e=0,f=0,g=0,h=0,i=0;a:{b:{if(!d){break b}c:{d:{switch(F[a+28>>2]-1|0){case 0:i=1;e:{e=D[a+24|0];if((((c|0)>(e|0)?e:c)|0)<=0){break e}e=F[a>>2];h=F[e>>2];b=F[a+48>>2]+Zj(F[a+40>>2],F[a+44>>2],b,0)|0;f=b;b=h+f|0;g=F[e+4>>2];e=g-h|0;if(!G[a+32|0]){if((e|0)<=(f|0)){break a}f=0;while(1){J[(f<<2)+d>>2]=D[b|0];f=f+1|0;e=D[a+24|0];if((f|0)>=(((c|0)>(e|0)?e:c)|0)){break e}b=b+1|0;if(g>>>0>b>>>0){continue}break}break a}if((e|0)<=(f|0)){break a}f=0;while(1){J[(f<<2)+d>>2]=M(D[b|0])/M(127);f=f+1|0;e=D[a+24|0];if((f|0)>=(((c|0)>(e|0)?e:c)|0)){break e}b=b+1|0;if(g>>>0>b>>>0){continue}break}break a}if((c|0)<=(e|0)){break b}c=c-e|0;a=(e<<2)+d|0;break c;case 1:i=1;f:{e=D[a+24|0];if((((c|0)>(e|0)?e:c)|0)<=0){break f}e=F[a>>2];h=F[e>>2];b=F[a+48>>2]+Zj(F[a+40>>2],F[a+44>>2],b,0)|0;f=b;b=h+f|0;g=F[e+4>>2];e=g-h|0;if(!G[a+32|0]){if((e|0)<=(f|0)){break a}f=0;while(1){J[(f<<2)+d>>2]=G[b|0];f=f+1|0;e=D[a+24|0];if((f|0)>=(((c|0)>(e|0)?e:c)|0)){break f}b=b+1|0;if(g>>>0>b>>>0){continue}break}break a}if((e|0)<=(f|0)){break a}f=0;while(1){J[(f<<2)+d>>2]=M(G[b|0])/M(255);f=f+1|0;e=D[a+24|0];if((f|0)>=(((c|0)>(e|0)?e:c)|0)){break f}b=b+1|0;if(g>>>0>b>>>0){continue}break}break a}if((c|0)<=(e|0)){break b}c=c-e|0;a=(e<<2)+d|0;break c;case 2:i=1;g:{e=D[a+24|0];if((((c|0)>(e|0)?e:c)|0)<=0){break g}e=F[a>>2];h=F[e>>2];b=F[a+48>>2]+Zj(F[a+40>>2],F[a+44>>2],b,0)|0;f=b;b=h+f|0;g=F[e+4>>2];e=g-h|0;if(!G[a+32|0]){if((e|0)<=(f|0)){break a}f=0;while(1){J[(f<<2)+d>>2]=E[b>>1];f=f+1|0;e=D[a+24|0];if((f|0)>=(((c|0)>(e|0)?e:c)|0)){break g}b=b+2|0;if(g>>>0>b>>>0){continue}break}break a}if((e|0)<=(f|0)){break a}f=0;while(1){J[(f<<2)+d>>2]=M(E[b>>1])/M(32767);f=f+1|0;e=D[a+24|0];if((f|0)>=(((c|0)>(e|0)?e:c)|0)){break g}b=b+2|0;if(g>>>0>b>>>0){continue}break}break a}if((c|0)<=(e|0)){break b}c=c-e|0;a=(e<<2)+d|0;break c;case 3:i=1;h:{e=D[a+24|0];if((((c|0)>(e|0)?e:c)|0)<=0){break h}e=F[a>>2];h=F[e>>2];b=F[a+48>>2]+Zj(F[a+40>>2],F[a+44>>2],b,0)|0;f=b;b=h+f|0;g=F[e+4>>2];e=g-h|0;if(!G[a+32|0]){if((e|0)<=(f|0)){break a}f=0;while(1){J[(f<<2)+d>>2]=H[b>>1];f=f+1|0;e=D[a+24|0];if((f|0)>=(((c|0)>(e|0)?e:c)|0)){break h}b=b+2|0;if(g>>>0>b>>>0){continue}break}break a}if((e|0)<=(f|0)){break a}f=0;while(1){J[(f<<2)+d>>2]=M(H[b>>1])/M(65535);f=f+1|0;e=D[a+24|0];if((f|0)>=(((c|0)>(e|0)?e:c)|0)){break h}b=b+2|0;if(g>>>0>b>>>0){continue}break}break a}if((c|0)<=(e|0)){break b}c=c-e|0;a=(e<<2)+d|0;break c;case 4:i=1;i:{e=D[a+24|0];if((((c|0)>(e|0)?e:c)|0)<=0){break i}e=F[a>>2];h=F[e>>2];b=F[a+48>>2]+Zj(F[a+40>>2],F[a+44>>2],b,0)|0;f=b;b=h+f|0;g=F[e+4>>2];e=g-h|0;if(!G[a+32|0]){if((e|0)<=(f|0)){break a}f=0;while(1){J[(f<<2)+d>>2]=F[b>>2];f=f+1|0;e=D[a+24|0];if((f|0)>=(((c|0)>(e|0)?e:c)|0)){break i}b=b+4|0;if(g>>>0>b>>>0){continue}break}break a}if((e|0)<=(f|0)){break a}f=0;while(1){J[(f<<2)+d>>2]=M(F[b>>2])*M(4.656612873077393e-10);f=f+1|0;e=D[a+24|0];if((f|0)>=(((c|0)>(e|0)?e:c)|0)){break i}b=b+4|0;if(g>>>0>b>>>0){continue}break}break a}if((c|0)<=(e|0)){break b}c=c-e|0;a=(e<<2)+d|0;break c;case 5:i=1;j:{e=D[a+24|0];if((((c|0)>(e|0)?e:c)|0)<=0){break j}e=F[a>>2];h=F[e>>2];b=F[a+48>>2]+Zj(F[a+40>>2],F[a+44>>2],b,0)|0;f=b;b=h+f|0;g=F[e+4>>2];e=g-h|0;if(!G[a+32|0]){if((e|0)<=(f|0)){break a}f=0;while(1){J[(f<<2)+d>>2]=I[b>>2];f=f+1|0;e=D[a+24|0];if((f|0)>=(((c|0)>(e|0)?e:c)|0)){break j}b=b+4|0;if(g>>>0>b>>>0){continue}break}break a}if((e|0)<=(f|0)){break a}f=0;while(1){J[(f<<2)+d>>2]=M(I[b>>2])*M(2.3283064365386963e-10);f=f+1|0;e=D[a+24|0];if((f|0)>=(((c|0)>(e|0)?e:c)|0)){break j}b=b+4|0;if(g>>>0>b>>>0){continue}break}break a}if((c|0)<=(e|0)){break b}c=c-e|0;a=(e<<2)+d|0;break c;case 6:i=1;k:{e=D[a+24|0];if((((c|0)>(e|0)?e:c)|0)<=0){break k}e=F[a>>2];h=F[e>>2];b=F[a+48>>2]+Zj(F[a+40>>2],F[a+44>>2],b,0)|0;f=b;b=h+f|0;g=F[e+4>>2];e=g-h|0;if(!G[a+32|0]){if((e|0)<=(f|0)){break a}f=0;while(1){J[(f<<2)+d>>2]=+I[b>>2]+ +F[b+4>>2]*4294967296;f=f+1|0;e=D[a+24|0];if((f|0)>=(((c|0)>(e|0)?e:c)|0)){break k}b=b+8|0;if(g>>>0>b>>>0){continue}break}break a}if((e|0)<=(f|0)){break a}f=0;while(1){J[(f<<2)+d>>2]=M(+I[b>>2]+ +F[b+4>>2]*4294967296)*M(10842021724855044e-35);f=f+1|0;e=D[a+24|0];if((f|0)>=(((c|0)>(e|0)?e:c)|0)){break k}b=b+8|0;if(g>>>0>b>>>0){continue}break}break a}if((c|0)<=(e|0)){break b}c=c-e|0;a=(e<<2)+d|0;break c;case 7:i=1;l:{e=D[a+24|0];if((((c|0)>(e|0)?e:c)|0)<=0){break l}e=F[a>>2];h=F[e>>2];b=F[a+48>>2]+Zj(F[a+40>>2],F[a+44>>2],b,0)|0;f=b;b=h+f|0;g=F[e+4>>2];e=g-h|0;if(!G[a+32|0]){if((e|0)<=(f|0)){break a}f=0;while(1){J[(f<<2)+d>>2]=+I[b>>2]+ +I[b+4>>2]*4294967296;f=f+1|0;e=D[a+24|0];if((f|0)>=(((c|0)>(e|0)?e:c)|0)){break l}b=b+8|0;if(g>>>0>b>>>0){continue}break}break a}if((e|0)<=(f|0)){break a}f=0;while(1){J[(f<<2)+d>>2]=M(+I[b>>2]+ +I[b+4>>2]*4294967296)*M(5.421010862427522e-20);f=f+1|0;e=D[a+24|0];if((f|0)>=(((c|0)>(e|0)?e:c)|0)){break l}b=b+8|0;if(g>>>0>b>>>0){continue}break}break a}if((c|0)<=(e|0)){break b}c=c-e|0;a=(e<<2)+d|0;break c;case 8:i=1;f=D[a+24|0];if((((c|0)>(f|0)?f:c)|0)>0){g=F[a>>2];f=F[g>>2];b=F[a+48>>2]+Zj(F[a+40>>2],F[a+44>>2],b,0)|0;b=f+b|0;g=F[g+4>>2];while(1){if(b>>>0>=g>>>0){break a}J[(e<<2)+d>>2]=J[b>>2];b=b+4|0;e=e+1|0;f=D[a+24|0];if((e|0)<(((c|0)>(f|0)?f:c)|0)){continue}break}}if((c|0)<=(f|0)){break b}c=c-f|0;a=(f<<2)+d|0;break c;case 9:i=1;f=D[a+24|0];if((((c|0)>(f|0)?f:c)|0)>0){g=F[a>>2];f=F[g>>2];b=F[a+48>>2]+Zj(F[a+40>>2],F[a+44>>2],b,0)|0;b=f+b|0;g=F[g+4>>2];while(1){if(b>>>0>=g>>>0){break a}J[(e<<2)+d>>2]=K[b>>3];b=b+8|0;e=e+1|0;f=D[a+24|0];if((e|0)<(((c|0)>(f|0)?f:c)|0)){continue}break}}if((c|0)<=(f|0)){break b}c=c-f|0;a=(f<<2)+d|0;break c;case 10:break d;default:break b}}i=1;f=D[a+24|0];if((((c|0)>(f|0)?f:c)|0)>0){g=F[a>>2];f=F[g>>2];b=F[a+48>>2]+Zj(F[a+40>>2],F[a+44>>2],b,0)|0;b=f+b|0;while(1){if(I[g+4>>2]<=b>>>0){break a}J[(e<<2)+d>>2]=G[b|0]?M(1):M(0);b=b+1|0;e=e+1|0;f=D[a+24|0];if((e|0)<(((c|0)>(f|0)?f:c)|0)){continue}break}}if((c|0)<=(f|0)){break b}c=c-f|0;a=(f<<2)+d|0}Ti(a,0,c<<2)}return i}return 0}function Ic(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,G=0,H=0,I=0,J=0,K=0,M=0,N=0;g=fa+-64|0;fa=g;F[a+8>>2]=e;x=a+32|0;f=F[x>>2];d=F[a+36>>2]-f>>2;a:{b:{if(d>>>0>>0){La(x,e-d|0);F[g+56>>2]=0;F[g+60>>2]=0;F[g+48>>2]=0;F[g+52>>2]=0;F[g+40>>2]=0;F[g+44>>2]=0;F[g+32>>2]=0;F[g+36>>2]=0;F[g+24>>2]=0;F[g+28>>2]=0;F[g+16>>2]=0;F[g+20>>2]=0;F[g>>2]=0;break b}if(d>>>0>e>>>0){F[a+36>>2]=f+(e<<2)}F[g+56>>2]=0;F[g+60>>2]=0;F[g+48>>2]=0;F[g+52>>2]=0;F[g+40>>2]=0;F[g+44>>2]=0;F[g+32>>2]=0;F[g+36>>2]=0;F[g+24>>2]=0;F[g+28>>2]=0;F[g+16>>2]=0;F[g+20>>2]=0;F[g>>2]=0;d=0;if(!e){break a}}gb(g+16|0,e,g);h=F[g+28>>2];d=F[g+32>>2]}F[g>>2]=0;d=d-h>>2;c:{if(d>>>0>=e>>>0){if(d>>>0<=e>>>0){break c}F[g+32>>2]=(e<<2)+h;break c}gb(g+16|12,e-d|0,g)}F[g>>2]=0;f=F[g+40>>2];d=F[g+44>>2]-f>>2;d:{if(d>>>0>=e>>>0){if(d>>>0<=e>>>0){break d}F[g+44>>2]=f+(e<<2);break d}gb(g+40|0,e-d|0,g)}F[g>>2]=0;f=F[g+52>>2];d=F[g+56>>2]-f>>2;e:{if(d>>>0>=e>>>0){if(d>>>0<=e>>>0){break e}F[g+56>>2]=f+(e<<2);break e}gb(g+52|0,e-d|0,g)}f:{if(F[a+8>>2]<=0){break f}i=F[g+16>>2];j=F[a+32>>2];h=0;while(1){d=h<<2;f=F[d+i>>2];n=F[a+16>>2];g:{if((f|0)>(n|0)){F[d+j>>2]=n;break g}d=d+j|0;n=F[a+12>>2];if((n|0)>(f|0)){F[d>>2]=n;break g}F[d>>2]=f}h=h+1|0;d=F[a+8>>2];if((h|0)<(d|0)){continue}break}if((d|0)<=0){break f}d=0;while(1){i=d<<2;f=i+c|0;i=F[b+i>>2]+F[j+i>>2]|0;F[f>>2]=i;h:{if((i|0)>F[a+16>>2]){i=i-F[a+20>>2]|0}else{if((i|0)>=F[a+12>>2]){break h}i=i+F[a+20>>2]|0}F[f>>2]=i}d=d+1|0;if((d|0)>2]){continue}break}}G=F[a+52>>2];q=F[a+48>>2];y=rj(16);d=y;F[d>>2]=0;F[d+4>>2]=0;F[d+8>>2]=0;F[d+12>>2]=0;F[g+8>>2]=0;F[g>>2]=0;F[g+4>>2]=0;i:{if(e){if(e>>>0>=1073741824){break i}d=e<<2;s=rj(d);F[g>>2]=s;F[g+8>>2]=d+s;Ti(s,0,d)}d=F[a+56>>2];A=F[d>>2];d=F[d+4>>2]-A|0;j:{if((d|0)<5){break j}u=d>>2;H=(u|0)>2?u:2;I=u>>>0>1?u:1;B=e&-2;C=e&1;J=e&-4;D=e&3;z=e-1|0;K=e<<2;E=1;n=1;while(1){k:{l:{m:{n:{if((n|0)!=(I|0)){o:{p:{f=F[(n<<2)+A>>2];if((f|0)==-1){break p}k=1;d=f+2|0;j=(f>>>0)%3|0;v=j?f-1|0:d;o=1<>>5|0;i=0;M=(j|0)!=0|(d|0)!=-1;N=F[q>>2];d=f;q:{while(1){r:{if(F[(d>>>3&536870908)+N>>2]>>>d&1){break r}j=F[F[F[q+64>>2]+12>>2]+(d<<2)>>2];if((j|0)==-1){break r}m=F[G>>2];h=F[q+28>>2];r=F[m+(F[h+(j<<2)>>2]<<2)>>2];if((r|0)>=(n|0)){break r}l=j+1|0;l=F[m+(F[h+(((l>>>0)%3|0?l:j-2|0)<<2)>>2]<<2)>>2];if((l|0)>=(n|0)){break r}h=F[m+(F[h+(j+((j>>>0)%3|0?-1:2)<<2)>>2]<<2)>>2];if((h|0)>=(n|0)){break r}s:{if(!e){break s}j=F[(g+16|0)+L(i,12)>>2];m=L(e,h);l=L(e,l);r=L(e,r);h=0;w=0;if(z){while(1){F[j+(h<<2)>>2]=(F[(h+m<<2)+c>>2]+F[(h+l<<2)+c>>2]|0)-F[(h+r<<2)+c>>2];p=h|1;F[j+(p<<2)>>2]=(F[(m+p<<2)+c>>2]+F[(l+p<<2)+c>>2]|0)-F[(r+p<<2)+c>>2];h=h+2|0;w=w+2|0;if((B|0)!=(w|0)){continue}break}}if(!C){break s}F[j+(h<<2)>>2]=(F[(h+m<<2)+c>>2]+F[(h+l<<2)+c>>2]|0)-F[(h+r<<2)+c>>2]}j=4;i=i+1|0;if((i|0)==4){break q}}t:{if(k&1){h=d-2|0;j=d+1|0;d=-1;j=(j>>>0)%3|0?j:h;if((j|0)==-1|F[F[q>>2]+(j>>>3&536870908)>>2]>>>j&1){break t}j=F[F[F[q+64>>2]+12>>2]+(j<<2)>>2];if((j|0)==-1){break t}d=j+1|0;d=(d>>>0)%3|0?d:j-2|0;break t}u:{if((d>>>0)%3|0){h=d-1|0;break u}h=d+2|0;d=-1;if((h|0)==-1){break t}}d=-1;if(F[F[q>>2]+(h>>>3&536870908)>>2]>>>h&1){break t}j=F[F[F[q+64>>2]+12>>2]+(h<<2)>>2];if((j|0)==-1){break t}if((j>>>0)%3|0){d=j-1|0;break t}d=j+2|0}v:{if((d|0)==(f|0)){break v}if(!((k^1)&1|(d|0)!=-1)){if(!M|o&F[F[q>>2]+(t<<2)>>2]){break v}d=F[F[F[q+64>>2]+12>>2]+(v<<2)>>2];if((d|0)==-1){break v}k=0;d=(d>>>0)%3|0?d-1|0:d+2|0}if((d|0)!=-1){continue}}break}j=i;if((j|0)<=0){break p}}if(e){Ti(s,0,K)}d=j-1|0;r=(d<<2)+y|0;d=L(d,12)+a|0;v=d;w=F[d- -64>>2];k=0;d=F[g>>2];f=0;while(1){i=F[r>>2];F[r>>2]=i+1;if(i>>>0>=w>>>0){break j}w:{if(F[F[v+60>>2]+(i>>>3&536870908)>>2]>>>i&1){break w}f=f+1|0;if(!e){break w}m=F[(g+16|0)+L(k,12)>>2];i=0;h=0;p=0;if(z>>>0>=3){while(1){l=h<<2;o=l+d|0;F[o>>2]=F[o>>2]+F[m+l>>2];o=l|4;t=o+d|0;F[t>>2]=F[t>>2]+F[m+o>>2];o=l|8;t=o+d|0;F[t>>2]=F[t>>2]+F[m+o>>2];l=l|12;o=l+d|0;F[o>>2]=F[o>>2]+F[m+l>>2];h=h+4|0;p=p+4|0;if((J|0)!=(p|0)){continue}break}}if(!D){break w}while(1){l=h<<2;p=l+d|0;F[p>>2]=F[p>>2]+F[m+l>>2];h=h+1|0;i=i+1|0;if((D|0)!=(i|0)){continue}break}}k=k+1|0;if((k|0)!=(j|0)){continue}break}i=L(e,n);if(!f){break o}if(!e){break l}h=0;d=0;if(z){break n}break m}i=L(e,n)}if(F[a+8>>2]<=0){break k}k=(L(n-1|0,e)<<2)+c|0;j=F[x>>2];h=0;while(1){d=h<<2;f=F[d+k>>2];m=F[a+16>>2];x:{if((f|0)>(m|0)){F[d+j>>2]=m;break x}d=d+j|0;m=F[a+12>>2];if((m|0)>(f|0)){F[d>>2]=m;break x}F[d>>2]=f}h=h+1|0;f=F[a+8>>2];if((h|0)<(f|0)){continue}break}d=0;if((f|0)<=0){break k}f=i<<2;h=f+c|0;k=b+f|0;while(1){i=d<<2;f=i+h|0;i=F[i+k>>2]+F[j+i>>2]|0;F[f>>2]=i;y:{if((i|0)>F[a+16>>2]){i=i-F[a+20>>2]|0}else{if((i|0)>=F[a+12>>2]){break y}i=i+F[a+20>>2]|0}F[f>>2]=i}d=d+1|0;if((d|0)>2]){continue}break}break k}yc();V()}while(1){j=h<<2;k=j+s|0;F[k>>2]=F[k>>2]/(f|0);j=(j|4)+s|0;F[j>>2]=F[j>>2]/(f|0);h=h+2|0;d=d+2|0;if((B|0)!=(d|0)){continue}break}}if(!C){break l}d=(h<<2)+s|0;F[d>>2]=F[d>>2]/(f|0)}if(F[a+8>>2]<=0){break k}j=F[x>>2];h=0;while(1){d=h<<2;f=F[d+s>>2];k=F[a+16>>2];z:{if((f|0)>(k|0)){F[d+j>>2]=k;break z}d=d+j|0;k=F[a+12>>2];if((k|0)>(f|0)){F[d>>2]=k;break z}F[d>>2]=f}h=h+1|0;f=F[a+8>>2];if((h|0)<(f|0)){continue}break}d=0;if((f|0)<=0){break k}f=i<<2;h=f+c|0;k=b+f|0;while(1){i=d<<2;f=i+h|0;i=F[i+k>>2]+F[j+i>>2]|0;F[f>>2]=i;A:{if((i|0)>F[a+16>>2]){i=i-F[a+20>>2]|0}else{if((i|0)>=F[a+12>>2]){break A}i=i+F[a+20>>2]|0}F[f>>2]=i}d=d+1|0;if((d|0)>2]){continue}break}}n=n+1|0;E=(u|0)>(n|0);if((n|0)!=(H|0)){continue}break}}a=F[g>>2];if(a){oj(a)}oj(y);a=F[g+52>>2];if(a){F[g+56>>2]=a;oj(a)}a=F[g+40>>2];if(a){F[g+44>>2]=a;oj(a)}a=F[g+28>>2];if(a){F[g+32>>2]=a;oj(a)}a=F[g+16>>2];if(a){F[g+20>>2]=a;oj(a)}fa=g- -64|0;return(E^-1)&1}Ia();V()}function ej(a,b,c,d,e){var f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0;i=fa-80|0;fa=i;F[i+76>>2]=b;x=i+55|0;r=i+56|0;a:{b:{c:{d:{e:while(1){h=b;if((2147483647-o|0)<(f|0)){break d}o=f+o|0;f:{g:{h:{f=h;g=G[f|0];if(g){while(1){i:{b=g&255;j:{if(!b){b=f;break j}if((b|0)!=37){break i}g=f;while(1){if(G[g+1|0]!=37){b=g;break j}f=f+1|0;j=G[g+2|0];b=g+2|0;g=b;if((j|0)==37){continue}break}}f=f-h|0;w=2147483647-o|0;if((f|0)>(w|0)){break d}if(a){fj(a,h,f)}if(f){continue e}F[i+76>>2]=b;f=b+1|0;p=-1;if(!(G[b+2|0]!=36|D[b+1|0]-48>>>0>=10)){p=D[b+1|0]-48|0;s=1;f=b+3|0}F[i+76>>2]=f;n=0;g=D[f|0];b=g-32|0;k:{if(b>>>0>31){k=f;break k}k=f;b=1<>2]=k;n=b|n;g=D[f+1|0];b=g-32|0;if(b>>>0>=32){break k}f=k;b=1<>>0>=10)){F[((D[k+1|0]<<2)+e|0)-192>>2]=10;g=k+3|0;s=1;b=F[((D[k+1|0]<<3)+d|0)-384>>2];break m}if(s){break h}g=k+1|0;if(!a){F[i+76>>2]=g;s=0;q=0;break l}b=F[c>>2];F[c>>2]=b+4;s=0;b=F[b>>2]}F[i+76>>2]=g;q=b;if((b|0)>=0){break l}q=0-q|0;n=n|8192;break l}q=gj(i+76|0);if((q|0)<0){break d}g=F[i+76>>2]}f=0;m=-1;n:{if(G[g|0]!=46){b=g;u=0;break n}if(G[g+1|0]==42){o:{if(!(G[g+3|0]!=36|D[g+2|0]-48>>>0>=10)){F[((D[g+2|0]<<2)+e|0)-192>>2]=10;b=g+4|0;m=F[((D[g+2|0]<<3)+d|0)-384>>2];break o}if(s){break h}b=g+2|0;m=0;if(!a){break o}j=F[c>>2];F[c>>2]=j+4;m=F[j>>2]}F[i+76>>2]=b;u=(m^-1)>>>31|0;break n}F[i+76>>2]=g+1;m=gj(i+76|0);b=F[i+76>>2];u=1}p:{while(1){l=f;g=b;f=D[g|0];if(f-123>>>0<4294967238){break p}b=g+1|0;f=G[(f+L(l,58)|0)+13711|0];if(f-1>>>0<8){continue}break}F[i+76>>2]=b;k=28;q:{r:{if((f|0)!=27){if(!f){break c}if((p|0)>=0){F[(p<<2)+e>>2]=f;j=(p<<3)+d|0;f=F[j+4>>2];F[i+64>>2]=F[j>>2];F[i+68>>2]=f;break r}if(!a){break f}hj(i- -64|0,f,c);break q}if((p|0)>=0){break c}}f=0;if(!a){continue e}}j=n&-65537;n=n&8192?j:n;p=0;t=1132;k=r;s:{t:{u:{v:{w:{x:{y:{z:{A:{B:{C:{D:{E:{F:{G:{H:{f=D[g|0];f=l?(f&15)==3?f&-33:f:f;switch(f-88|0){case 11:break s;case 9:case 13:case 14:case 15:break t;case 27:break y;case 12:case 17:break B;case 23:break C;case 0:case 32:break D;case 24:break E;case 22:break F;case 29:break G;case 1:case 2:case 3:case 4:case 5:case 6:case 7:case 8:case 10:case 16:case 18:case 19:case 20:case 21:case 25:case 26:case 28:case 30:case 31:break g;default:break H}}I:{switch(f-65|0){case 0:case 4:case 5:case 6:break t;case 2:break w;case 1:case 3:break g;default:break I}}if((f|0)==83){break x}break g}l=F[i+64>>2];j=F[i+68>>2];t=1132;break A}f=0;J:{switch(l&255){case 0:F[F[i+64>>2]>>2]=o;continue e;case 1:F[F[i+64>>2]>>2]=o;continue e;case 2:h=F[i+64>>2];F[h>>2]=o;F[h+4>>2]=o>>31;continue e;case 3:E[F[i+64>>2]>>1]=o;continue e;case 4:D[F[i+64>>2]]=o;continue e;case 6:F[F[i+64>>2]>>2]=o;continue e;case 7:break J;default:continue e}}h=F[i+64>>2];F[h>>2]=o;F[h+4>>2]=o>>31;continue e}m=m>>>0>8?m:8;n=n|8;f=120}h=r;y=f&32;l=F[i+64>>2];j=F[i+68>>2];if(l|j){while(1){h=h-1|0;D[h|0]=y|G[(l&15)+14240|0];v=!j&l>>>0>15|(j|0)!=0;g=j;j=g>>>4|0;l=(g&15)<<28|l>>>4;if(v){continue}break}}if(!(F[i+64>>2]|F[i+68>>2])|!(n&8)){break z}t=(f>>>4|0)+1132|0;p=2;break z}f=r;h=F[i+68>>2];j=h;l=F[i+64>>2];if(h|l){while(1){f=f-1|0;D[f|0]=l&7|48;v=!j&l>>>0>7|(j|0)!=0;h=j;j=h>>>3|0;l=(h&7)<<29|l>>>3;if(v){continue}break}}h=f;if(!(n&8)){break z}f=r-h|0;m=(f|0)<(m|0)?m:f+1|0;break z}h=F[i+68>>2];j=h;l=F[i+64>>2];if((h|0)<0){j=0-(((l|0)!=0)+j|0)|0;l=0-l|0;F[i+64>>2]=l;F[i+68>>2]=j;p=1;t=1132;break A}if(n&2048){p=1;t=1133;break A}p=n&1;t=p?1134:1132}g=r;K:{if(!j){h=l;break K}while(1){g=g-1|0;h=$j(l,j,10,0);f=ia;z=g,A=l-Zj(h,f,10,0)|48,D[z|0]=A;v=j>>>0>9;l=h;j=f;if(v){continue}break}}if(h){while(1){g=g-1|0;f=(h>>>0)/10|0;D[g|0]=h-L(f,10)|48;j=h>>>0>9;h=f;if(j){continue}break}}h=g}if((m|0)<0?u:0){break d}n=u?n&-65537:n;f=F[i+64>>2];j=F[i+68>>2];if(!(m|(f|j)!=0)){h=r;k=h;m=0;break g}f=!(f|j)+(r-h|0)|0;m=(f|0)<(m|0)?m:f;break g}l=m>>>0<2147483647?m:2147483647;k=l;n=(l|0)!=0;h=F[i+64>>2];h=h?h:1614;f=h;L:{M:{N:{O:{if(!(f&3)|!l){break O}while(1){if(!G[f|0]){break N}k=k-1|0;n=(k|0)!=0;f=f+1|0;if(!(f&3)){break O}if(k){continue}break}}if(!n){break M}}P:{if(!(!G[f|0]|k>>>0<4)){while(1){g=F[f>>2];if((g^-1)&g-16843009&-2139062144){break P}f=f+4|0;k=k-4|0;if(k>>>0>3){continue}break}}if(!k){break M}}while(1){if(!G[f|0]){break L}f=f+1|0;k=k-1|0;if(k){continue}break}}f=0}f=f?f-h|0:l;k=f+h|0;if((m|0)>=0){n=j;m=f;break g}n=j;m=f;if(G[k|0]){break d}break g}if(m){g=F[i+64>>2];break v}f=0;ij(a,32,q,0,n);break u}F[i+12>>2]=0;F[i+8>>2]=F[i+64>>2];g=i+8|0;F[i+64>>2]=g;m=-1}f=0;Q:{while(1){h=F[g>>2];if(!h){break Q}j=jj(i+4|0,h);h=(j|0)<0;if(!(h|j>>>0>m-f>>>0)){g=g+4|0;f=f+j|0;if(m>>>0>f>>>0){continue}break Q}break}if(h){break b}}k=61;if((f|0)<0){break c}ij(a,32,q,f,n);if(!f){f=0;break u}k=0;g=F[i+64>>2];while(1){h=F[g>>2];if(!h){break u}h=jj(i+4|0,h);k=h+k|0;if(k>>>0>f>>>0){break u}fj(a,i+4|0,h);g=g+4|0;if(f>>>0>k>>>0){continue}break}}ij(a,32,q,f,n^8192);f=(f|0)<(q|0)?q:f;continue e}if((m|0)<0?u:0){break d}k=61;f=ja[0](a,K[i+64>>3],q,m,n,f)|0;if((f|0)>=0){continue e}break c}D[i+55|0]=F[i+64>>2];m=1;h=x;n=j;break g}F[i+76>>2]=g;break h}g=G[f+1|0];f=f+1|0;continue}}if(a){break a}if(!s){break f}f=1;while(1){a=F[(f<<2)+e>>2];if(a){hj((f<<3)+d|0,a,c);o=1;f=f+1|0;if((f|0)!=10){continue}break a}break}o=1;if(f>>>0>=10){break a}while(1){if(F[(f<<2)+e>>2]){break h}f=f+1|0;if((f|0)!=10){continue}break}break a}k=28;break c}g=k-h|0;j=(g|0)<(m|0)?m:g;if((j|0)>(2147483647-p|0)){break d}k=61;l=j+p|0;f=(l|0)<(q|0)?q:l;if((w|0)<(f|0)){break c}ij(a,32,f,l,n);fj(a,t,p);ij(a,48,f,l,n^65536);ij(a,48,j,g,0);fj(a,h,g);ij(a,32,f,l,n^8192);continue}break}o=0;break a}k=61}F[3988]=k}o=-1}fa=i+80|0;return o}function $e(a,b){var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0;f=fa-32|0;fa=f;k=F[F[a+4>>2]+44>>2];d=F[a+8>>2];h=F[d>>2];d=F[d+4>>2];F[f+24>>2]=0;F[f+16>>2]=0;F[f+20>>2]=0;e=(d-h>>2>>>0)/3|0;d=F[k+96>>2];g=(F[k+100>>2]-d|0)/12|0;a:{if(e>>>0>g>>>0){j=e-g|0;c=F[k+104>>2];h=F[k+100>>2];if(j>>>0<=(c-h|0)/12>>>0){b:{if(!j){break b}d=L(j,12);j=d;e=d-12|0;g=((e>>>0)/12|0)+1&3;c:{if(!g){d=h;break c}d=h;while(1){c=F[f+20>>2];F[d>>2]=F[f+16>>2];F[d+4>>2]=c;F[d+8>>2]=F[f+24>>2];d=d+12|0;i=i+1|0;if((g|0)!=(i|0)){continue}break}}h=h+j|0;if(e>>>0<36){break b}while(1){c=F[f+20>>2];F[d>>2]=F[f+16>>2];F[d+4>>2]=c;F[d+8>>2]=F[f+24>>2];F[d+20>>2]=F[f+24>>2];c=F[f+20>>2];F[d+12>>2]=F[f+16>>2];F[d+16>>2]=c;F[d+32>>2]=F[f+24>>2];c=F[f+20>>2];F[d+24>>2]=F[f+16>>2];F[d+28>>2]=c;c=F[f+20>>2];F[d+36>>2]=F[f+16>>2];F[d+40>>2]=c;F[d+44>>2]=F[f+24>>2];d=d+48|0;if((h|0)!=(d|0)){continue}break}}F[k+100>>2]=h;break a}d:{d=F[k+96>>2];g=(h-d|0)/12|0;e=g+j|0;if(e>>>0<357913942){c=(c-d|0)/12|0;d=c<<1;l=c>>>0<178956970?d>>>0>e>>>0?d:e:357913941;if(l){if(l>>>0>=357913942){break d}o=rj(L(l,12))}c=L(g,12)+o|0;d=c;m=L(j,12);j=m-12|0;e=((j>>>0)/12|0)+1&3;if(e){d=c;while(1){g=F[f+20>>2];F[d>>2]=F[f+16>>2];F[d+4>>2]=g;F[d+8>>2]=F[f+24>>2];d=d+12|0;i=i+1|0;if((e|0)!=(i|0)){continue}break}}e=c+m|0;if(j>>>0>=36){while(1){g=F[f+20>>2];F[d>>2]=F[f+16>>2];F[d+4>>2]=g;F[d+8>>2]=F[f+24>>2];F[d+20>>2]=F[f+24>>2];g=F[f+20>>2];F[d+12>>2]=F[f+16>>2];F[d+16>>2]=g;F[d+32>>2]=F[f+24>>2];g=F[f+20>>2];F[d+24>>2]=F[f+16>>2];F[d+28>>2]=g;g=F[f+20>>2];F[d+36>>2]=F[f+16>>2];F[d+40>>2]=g;F[d+44>>2]=F[f+24>>2];d=d+48|0;if((e|0)!=(d|0)){continue}break}}g=F[k+96>>2];h=h-g|0;d=c+L((h|0)/-12|0,12)|0;if((h|0)>0){Ri(d,g,h)}F[k+104>>2]=L(l,12)+o;F[k+100>>2]=e;F[k+96>>2]=d;if(g){oj(g)}break a}Ia();V()}Wa();V()}if(e>>>0>=g>>>0){break a}F[k+100>>2]=d+L(e,12)}e:{if(F[a+216>>2]==F[a+220>>2]){e=F[a+4>>2];h=F[e+44>>2];d=F[h+100>>2];m=F[h+96>>2];if((d|0)!=(m|0)){d=(d-m|0)/12|0;g=d>>>0>1?d:1;c=0;while(1){k=F[a+8>>2];h=m+L(c,12)|0;l=L(c,3);f:{g:{if((l|0)==-1){i=F[(F[k>>2]+(l<<2)|0)+4>>2];n=-1;d=1;break g}i=-1;n=F[F[k>>2]+(l<<2)>>2];d=l+1|0;if((d|0)==-1){d=0;break g}i=F[F[k>>2]+(d<<2)>>2];d=l+2|0;j=-1;if((d|0)==-1){break f}}j=F[F[k>>2]+(d<<2)>>2]}F[h+8>>2]=j;F[h+4>>2]=i;F[h>>2]=n;c=c+1|0;if((g|0)!=(c|0)){continue}break}}F[F[e+4>>2]+80>>2]=b;c=1;break e}h=0;F[f+24>>2]=0;F[f+16>>2]=0;F[f+20>>2]=0;o=F[a+8>>2];c=F[o>>2];d=F[o+4>>2];F[f+8>>2]=0;F[f>>2]=0;F[f+4>>2]=0;b=0;h:{i:{j:{k:{l:{m:{if((d|0)!=(c|0)){d=d-c|0;if((d|0)<0){break m}b=rj(d);F[f>>2]=b;F[f+8>>2]=(d>>2<<2)+b;u=f,v=Ti(b,0,d)+d|0,F[u+4>>2]=v}c=F[o+24>>2];if((F[o+28>>2]-c|0)<=0){break i}d=0;while(1){g=F[(q<<2)+c>>2];n:{if((g|0)==-1){break n}o:{if(F[F[a+120>>2]+(q>>>3&536870908)>>2]>>>q&1){break o}s=F[a+216>>2];c=F[a+220>>2];if((s|0)==(c|0)){break o}i=g+2|0;e=(g>>>0)%3|0;t=e?g-1|0:i;c=(c-s|0)/144|0;k=c>>>0>1?c:1;r=0;l=(e|0)!=0|(i|0)!=-1;while(1){e=g<<2;i=L(r,144)+s|0;c=F[e+F[F[i+68>>2]>>2]>>2];p:{if(!(F[F[i+16>>2]+(c>>>3&536870908)>>2]>>>c&1)){break p}c=-1;q:{if(!l){break q}j=F[F[o+12>>2]+(t<<2)>>2];c=-1;if((j|0)==-1){break q}c=j-1|0;if((j>>>0)%3|0){break q}c=j+2|0}if((g|0)==(c|0)){break p}m=F[i+32>>2];j=F[m+e>>2];while(1){i=0;if((c|0)==-1){break h}if((j|0)!=F[m+(c<<2)>>2]){g=c;break o}r:{s:{if((c>>>0)%3|0){i=c-1|0;break s}i=c+2|0;e=-1;if((i|0)==-1){break r}}c=F[F[o+12>>2]+(i<<2)>>2];e=-1;if((c|0)==-1){break r}e=c-1|0;if((c>>>0)%3|0){break r}e=c+2|0}c=e;if((g|0)!=(c|0)){continue}break}}r=r+1|0;if((k|0)!=(r|0)){continue}break}}j=n-d|0;i=j>>2;F[(g<<2)+b>>2]=i;t:{if(n>>>0

>>0){F[n>>2]=g;n=n+4|0;F[f+20>>2]=n;break t}e=i+1|0;if(e>>>0>=1073741824){break l}c=p-d|0;h=c>>1;e=c>>>0<2147483644?e>>>0>>0?h:e:1073741823;if(e){if(e>>>0>=1073741824){break k}h=rj(e<<2)}else{h=0}c=h+(i<<2)|0;F[c>>2]=g;p=(e<<2)+h|0;n=c+4|0;if((j|0)>0){Ri(h,d,j)}F[f+24>>2]=p;F[f+20>>2]=n;F[f+16>>2]=h;if(d){oj(d);o=F[a+8>>2]}d=h}if((g|0)==-1){break n}u:{if((g>>>0)%3|0){c=g-1|0;break u}c=g+2|0;if((c|0)==-1){break n}}c=F[F[o+12>>2]+(c<<2)>>2];if((c|0)==-1){break n}c=c+((c>>>0)%3|0?-1:2)|0;if((c|0)==-1){break n}i=g;if((g|0)==(c|0)){break n}while(1){e=c;v:{w:{c=F[a+220>>2];k=F[a+216>>2];if((c|0)==(k|0)){break w}c=(c-k|0)/144|0;l=c>>>0>1?c:1;c=0;while(1){m=F[(k+L(c,144)|0)+32>>2];j=e<<2;if(F[m+j>>2]==F[m+(i<<2)>>2]){c=c+1|0;if((l|0)!=(c|0)){continue}break w}break}d=b+j|0;m=n-h|0;j=m>>2;F[d>>2]=j;if(n>>>0

>>0){F[n>>2]=e;n=n+4|0;F[f+20>>2]=n;d=h;break v}i=j+1|0;if(i>>>0>=1073741824){break j}c=p-h|0;d=c>>1;i=c>>>0<2147483644?d>>>0>i>>>0?d:i:1073741823;if(i){if(i>>>0>=1073741824){break k}d=rj(i<<2)}else{d=0}c=d+(j<<2)|0;F[c>>2]=e;p=(i<<2)+d|0;n=c+4|0;if((m|0)>0){Ri(d,h,m)}F[f+24>>2]=p;F[f+20>>2]=n;F[f+16>>2]=d;if(!h){h=d;break v}oj(h);o=F[a+8>>2];h=d;break v}F[(e<<2)+b>>2]=F[(i<<2)+b>>2]}if((e|0)==-1){break n}x:{if((e>>>0)%3|0){c=e-1|0;break x}c=e+2|0;if((c|0)==-1){break n}}c=F[F[o+12>>2]+(c<<2)>>2];if((c|0)==-1){break n}c=c+((c>>>0)%3|0?-1:2)|0;if((c|0)==-1){break n}i=e;if((c|0)!=(g|0)){continue}break}}q=q+1|0;c=F[o+24>>2];if((q|0)>2]-c>>2){continue}break}break i}Ia();V()}Ia();V()}Wa();V()}Ia();V()}m=F[a+4>>2];d=F[m+44>>2];a=F[d+100>>2];k=F[d+96>>2];y:{if((a|0)==(k|0)){break y}d=(a-k|0)/12|0;a=d>>>0>1?d:1;j=a&1;c=0;if(d>>>0>=2){i=a&-2;d=0;while(1){e=L(c,12);l=e+b|0;g=F[l+4>>2];a=F[l>>2];e=e+k|0;F[e+8>>2]=F[l+8>>2];F[e>>2]=a;F[e+4>>2]=g;e=L(c|1,12);l=e+b|0;g=F[l+4>>2];a=F[l>>2];e=e+k|0;F[e+8>>2]=F[l+8>>2];F[e>>2]=a;F[e+4>>2]=g;c=c+2|0;d=d+2|0;if((i|0)!=(d|0)){continue}break}}if(!j){break y}c=L(c,12);g=c+b|0;d=F[g+4>>2];a=F[g>>2];c=c+k|0;F[c+8>>2]=F[g+8>>2];F[c>>2]=a;F[c+4>>2]=d}F[F[m+4>>2]+80>>2]=n-h>>2;i=1}c=i;if(b){oj(b)}if(!h){break e}F[f+20>>2]=h;oj(h)}fa=f+32|0;return c}function kd(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,G=0,H=0,I=0,J=0,K=0;h=fa+-64|0;fa=h;F[a+8>>2]=e;w=a+32|0;f=F[w>>2];d=F[a+36>>2]-f>>2;a:{b:{if(d>>>0>>0){La(w,e-d|0);F[h+56>>2]=0;F[h+60>>2]=0;F[h+48>>2]=0;F[h+52>>2]=0;F[h+40>>2]=0;F[h+44>>2]=0;F[h+32>>2]=0;F[h+36>>2]=0;F[h+24>>2]=0;F[h+28>>2]=0;F[h+16>>2]=0;F[h+20>>2]=0;F[h>>2]=0;break b}if(d>>>0>e>>>0){F[a+36>>2]=f+(e<<2)}F[h+56>>2]=0;F[h+60>>2]=0;F[h+48>>2]=0;F[h+52>>2]=0;F[h+40>>2]=0;F[h+44>>2]=0;F[h+32>>2]=0;F[h+36>>2]=0;F[h+24>>2]=0;F[h+28>>2]=0;F[h+16>>2]=0;F[h+20>>2]=0;F[h>>2]=0;d=0;if(!e){break a}}gb(h+16|0,e,h);i=F[h+28>>2];d=F[h+32>>2]}F[h>>2]=0;d=d-i>>2;c:{if(d>>>0>=e>>>0){if(d>>>0<=e>>>0){break c}F[h+32>>2]=(e<<2)+i;break c}gb(h+16|12,e-d|0,h)}F[h>>2]=0;f=F[h+40>>2];d=F[h+44>>2]-f>>2;d:{if(d>>>0>=e>>>0){if(d>>>0<=e>>>0){break d}F[h+44>>2]=f+(e<<2);break d}gb(h+40|0,e-d|0,h)}F[h>>2]=0;f=F[h+52>>2];d=F[h+56>>2]-f>>2;e:{if(d>>>0>=e>>>0){if(d>>>0<=e>>>0){break e}F[h+56>>2]=f+(e<<2);break e}gb(h+52|0,e-d|0,h)}f:{if(F[a+8>>2]<=0){break f}g=F[h+16>>2];j=F[a+32>>2];i=0;while(1){d=i<<2;f=F[d+g>>2];m=F[a+16>>2];g:{if((f|0)>(m|0)){F[d+j>>2]=m;break g}d=d+j|0;m=F[a+12>>2];if((m|0)>(f|0)){F[d>>2]=m;break g}F[d>>2]=f}i=i+1|0;d=F[a+8>>2];if((i|0)<(d|0)){continue}break}if((d|0)<=0){break f}d=0;while(1){g=d<<2;f=g+c|0;g=F[b+g>>2]+F[g+j>>2]|0;F[f>>2]=g;h:{if((g|0)>F[a+16>>2]){g=g-F[a+20>>2]|0}else{if((g|0)>=F[a+12>>2]){break h}g=g+F[a+20>>2]|0}F[f>>2]=g}d=d+1|0;if((d|0)>2]){continue}break}}G=F[a+52>>2];z=F[a+48>>2];x=rj(16);d=x;F[d>>2]=0;F[d+4>>2]=0;F[d+8>>2]=0;F[d+12>>2]=0;F[h+8>>2]=0;F[h>>2]=0;F[h+4>>2]=0;i:{if(e){if(e>>>0>=1073741824){break i}d=e<<2;t=rj(d);F[h>>2]=t;F[h+8>>2]=d+t;Ti(t,0,d)}d=F[a+56>>2];A=F[d>>2];d=F[d+4>>2]-A|0;j:{if((d|0)<5){break j}v=d>>2;H=(v|0)>2?v:2;I=v>>>0>1?v:1;B=e&-2;C=e&1;J=e&-4;D=e&3;y=e-1|0;K=e<<2;E=1;m=1;while(1){k:{l:{m:{n:{if((m|0)!=(I|0)){o:{p:{f=F[(m<<2)+A>>2];if((f|0)==-1){break p}n=F[z+12>>2];d=f+2|0;g=(f>>>0)%3|0;q=n+((g?f-1|0:d)<<2)|0;j=0;u=(g|0)!=0|(d|0)!=-1;k=1;d=f;q:{while(1){g=F[n+(d<<2)>>2];r:{if((g|0)==-1){break r}l=-1;p=F[G>>2];r=F[z>>2];i=p+(F[r+(g<<2)>>2]<<2)|0;o=g+1|0;o=(o>>>0)%3|0?o:g-2|0;if((o|0)!=-1){l=F[r+(o<<2)>>2]}o=F[i>>2];s:{t:{if((g>>>0)%3|0){i=g-1|0;break t}i=g+2|0;s=-1;if((i|0)==-1){break s}}s=F[r+(i<<2)>>2]}if((m|0)<=(o|0)){break r}i=F[p+(l<<2)>>2];if((i|0)>=(m|0)){break r}l=F[p+(s<<2)>>2];if((l|0)>=(m|0)){break r}g=F[(h+16|0)+L(j,12)>>2];u:{if(!e){break u}l=L(e,l);r=L(e,i);p=L(e,o);i=0;s=0;if(y){while(1){F[g+(i<<2)>>2]=(F[(i+l<<2)+c>>2]+F[(i+r<<2)+c>>2]|0)-F[(i+p<<2)+c>>2];o=i|1;F[g+(o<<2)>>2]=(F[(l+o<<2)+c>>2]+F[(o+r<<2)+c>>2]|0)-F[(o+p<<2)+c>>2];i=i+2|0;s=s+2|0;if((B|0)!=(s|0)){continue}break}}if(!C){break u}F[g+(i<<2)>>2]=(F[(i+l<<2)+c>>2]+F[(i+r<<2)+c>>2]|0)-F[(i+p<<2)+c>>2]}g=4;j=j+1|0;if((j|0)==4){break q}}v:{if(k&1){i=d+1|0;d=(i>>>0)%3|0?i:d-2|0;g=-1;if((d|0)==-1){break v}d=F[n+(d<<2)>>2];g=-1;if((d|0)==-1){break v}g=d+1|0;g=(g>>>0)%3|0?g:d-2|0;break v}w:{if((d>>>0)%3|0){i=d-1|0;break w}i=d+2|0;g=-1;if((i|0)==-1){break v}}d=F[n+(i<<2)>>2];g=-1;if((d|0)==-1){break v}g=d-1|0;if((d>>>0)%3|0){break v}g=d+2|0}d=g;x:{if((f|0)==(d|0)){break x}if(!((k^1)&1|(d|0)!=-1)){if(!u){break x}d=F[q>>2];if((d|0)==-1){break x}k=0;d=(d>>>0)%3|0?d-1|0:d+2|0}if((d|0)!=-1){continue}}break}g=j;if((g|0)<=0){break p}}if(e){Ti(t,0,K)}d=g-1|0;r=(d<<2)+x|0;d=L(d,12)+a|0;o=d;s=F[d- -64>>2];k=0;d=F[h>>2];f=0;while(1){j=F[r>>2];F[r>>2]=j+1;if(j>>>0>=s>>>0){break j}y:{if(F[F[o+60>>2]+(j>>>3&536870908)>>2]>>>j&1){break y}f=f+1|0;if(!e){break y}j=F[(h+16|0)+L(k,12)>>2];l=0;i=0;p=0;if(y>>>0>=3){while(1){n=i<<2;q=n+d|0;F[q>>2]=F[q>>2]+F[j+n>>2];q=n|4;u=q+d|0;F[u>>2]=F[u>>2]+F[j+q>>2];q=n|8;u=q+d|0;F[u>>2]=F[u>>2]+F[j+q>>2];n=n|12;q=n+d|0;F[q>>2]=F[q>>2]+F[j+n>>2];i=i+4|0;p=p+4|0;if((J|0)!=(p|0)){continue}break}}if(!D){break y}while(1){n=i<<2;p=n+d|0;F[p>>2]=F[p>>2]+F[j+n>>2];i=i+1|0;l=l+1|0;if((D|0)!=(l|0)){continue}break}}k=k+1|0;if((k|0)!=(g|0)){continue}break}g=L(e,m);if(!f){break o}if(!e){break l}i=0;d=0;if(y){break n}break m}g=L(e,m)}if(F[a+8>>2]<=0){break k}k=(L(m-1|0,e)<<2)+c|0;j=F[w>>2];i=0;while(1){d=i<<2;f=F[d+k>>2];l=F[a+16>>2];z:{if((f|0)>(l|0)){F[d+j>>2]=l;break z}d=d+j|0;l=F[a+12>>2];if((l|0)>(f|0)){F[d>>2]=l;break z}F[d>>2]=f}i=i+1|0;f=F[a+8>>2];if((i|0)<(f|0)){continue}break}d=0;if((f|0)<=0){break k}f=g<<2;i=f+c|0;k=b+f|0;while(1){g=d<<2;f=g+i|0;g=F[g+k>>2]+F[g+j>>2]|0;F[f>>2]=g;A:{if((g|0)>F[a+16>>2]){g=g-F[a+20>>2]|0}else{if((g|0)>=F[a+12>>2]){break A}g=g+F[a+20>>2]|0}F[f>>2]=g}d=d+1|0;if((d|0)>2]){continue}break}break k}yc();V()}while(1){j=i<<2;k=j+t|0;F[k>>2]=F[k>>2]/(f|0);j=(j|4)+t|0;F[j>>2]=F[j>>2]/(f|0);i=i+2|0;d=d+2|0;if((B|0)!=(d|0)){continue}break}}if(!C){break l}d=(i<<2)+t|0;F[d>>2]=F[d>>2]/(f|0)}if(F[a+8>>2]<=0){break k}j=F[w>>2];i=0;while(1){d=i<<2;f=F[d+t>>2];k=F[a+16>>2];B:{if((f|0)>(k|0)){F[d+j>>2]=k;break B}d=d+j|0;k=F[a+12>>2];if((k|0)>(f|0)){F[d>>2]=k;break B}F[d>>2]=f}i=i+1|0;f=F[a+8>>2];if((i|0)<(f|0)){continue}break}d=0;if((f|0)<=0){break k}f=g<<2;i=f+c|0;k=b+f|0;while(1){g=d<<2;f=g+i|0;g=F[g+k>>2]+F[g+j>>2]|0;F[f>>2]=g;C:{if((g|0)>F[a+16>>2]){g=g-F[a+20>>2]|0}else{if((g|0)>=F[a+12>>2]){break C}g=g+F[a+20>>2]|0}F[f>>2]=g}d=d+1|0;if((d|0)>2]){continue}break}}m=m+1|0;E=(v|0)>(m|0);if((m|0)!=(H|0)){continue}break}}a=F[h>>2];if(a){oj(a)}oj(x);a=F[h+52>>2];if(a){F[h+56>>2]=a;oj(a)}a=F[h+40>>2];if(a){F[h+44>>2]=a;oj(a)}a=F[h+28>>2];if(a){F[h+32>>2]=a;oj(a)}a=F[h+16>>2];if(a){F[h+20>>2]=a;oj(a)}fa=h- -64|0;return(E^-1)&1}Ia();V()}function Cb(a,b){var c=0,d=0,e=0,f=0,g=0;e=fa-16|0;fa=e;F[a+12>>2]=b;F[a+8>>2]=0;F[a>>2]=0;F[a+4>>2]=0;d=a+16|0;F[d>>2]=0;F[d+4>>2]=0;D[d+5|0]=0;D[d+6|0]=0;D[d+7|0]=0;D[d+8|0]=0;D[d+9|0]=0;D[d+10|0]=0;D[d+11|0]=0;D[d+12|0]=0;c=d+16|0;F[c>>2]=0;F[c+4>>2]=0;D[c+5|0]=0;D[c+6|0]=0;D[c+7|0]=0;D[c+8|0]=0;D[c+9|0]=0;D[c+10|0]=0;D[c+11|0]=0;D[c+12|0]=0;c=d+32|0;F[c>>2]=0;F[c+4>>2]=0;D[c+5|0]=0;D[c+6|0]=0;D[c+7|0]=0;D[c+8|0]=0;D[c+9|0]=0;D[c+10|0]=0;D[c+11|0]=0;D[c+12|0]=0;c=d+48|0;F[c>>2]=0;F[c+4>>2]=0;D[c+5|0]=0;D[c+6|0]=0;D[c+7|0]=0;D[c+8|0]=0;D[c+9|0]=0;D[c+10|0]=0;D[c+11|0]=0;D[c+12|0]=0;c=d- -64|0;F[c>>2]=0;F[c+4>>2]=0;D[c+5|0]=0;D[c+6|0]=0;D[c+7|0]=0;D[c+8|0]=0;D[c+9|0]=0;D[c+10|0]=0;D[c+11|0]=0;D[c+12|0]=0;c=d+80|0;F[c>>2]=0;F[c+4>>2]=0;D[c+5|0]=0;D[c+6|0]=0;D[c+7|0]=0;D[c+8|0]=0;D[c+9|0]=0;D[c+10|0]=0;D[c+11|0]=0;D[c+12|0]=0;c=d+96|0;F[c>>2]=0;F[c+4>>2]=0;D[c+5|0]=0;D[c+6|0]=0;D[c+7|0]=0;D[c+8|0]=0;D[c+9|0]=0;D[c+10|0]=0;D[c+11|0]=0;D[c+12|0]=0;c=d+112|0;F[c>>2]=0;F[c+4>>2]=0;D[c+5|0]=0;D[c+6|0]=0;D[c+7|0]=0;D[c+8|0]=0;D[c+9|0]=0;D[c+10|0]=0;D[c+11|0]=0;D[c+12|0]=0;c=d+128|0;F[c>>2]=0;F[c+4>>2]=0;D[c+5|0]=0;D[c+6|0]=0;D[c+7|0]=0;D[c+8|0]=0;D[c+9|0]=0;D[c+10|0]=0;D[c+11|0]=0;D[c+12|0]=0;c=d+144|0;F[c>>2]=0;F[c+4>>2]=0;D[c+5|0]=0;D[c+6|0]=0;D[c+7|0]=0;D[c+8|0]=0;D[c+9|0]=0;D[c+10|0]=0;D[c+11|0]=0;D[c+12|0]=0;c=d+160|0;F[c>>2]=0;F[c+4>>2]=0;D[c+5|0]=0;D[c+6|0]=0;D[c+7|0]=0;D[c+8|0]=0;D[c+9|0]=0;D[c+10|0]=0;D[c+11|0]=0;D[c+12|0]=0;c=d+176|0;F[c>>2]=0;F[c+4>>2]=0;D[c+5|0]=0;D[c+6|0]=0;D[c+7|0]=0;D[c+8|0]=0;D[c+9|0]=0;D[c+10|0]=0;D[c+11|0]=0;D[c+12|0]=0;c=d+192|0;F[c>>2]=0;F[c+4>>2]=0;D[c+5|0]=0;D[c+6|0]=0;D[c+7|0]=0;D[c+8|0]=0;D[c+9|0]=0;D[c+10|0]=0;D[c+11|0]=0;D[c+12|0]=0;c=d+208|0;F[c>>2]=0;F[c+4>>2]=0;D[c+5|0]=0;D[c+6|0]=0;D[c+7|0]=0;D[c+8|0]=0;D[c+9|0]=0;D[c+10|0]=0;D[c+11|0]=0;D[c+12|0]=0;c=d+224|0;F[c>>2]=0;F[c+4>>2]=0;D[c+5|0]=0;D[c+6|0]=0;D[c+7|0]=0;D[c+8|0]=0;D[c+9|0]=0;D[c+10|0]=0;D[c+11|0]=0;D[c+12|0]=0;c=d+240|0;F[c>>2]=0;F[c+4>>2]=0;D[c+5|0]=0;D[c+6|0]=0;D[c+7|0]=0;D[c+8|0]=0;D[c+9|0]=0;D[c+10|0]=0;D[c+11|0]=0;D[c+12|0]=0;c=d+256|0;F[c>>2]=0;F[c+4>>2]=0;D[c+5|0]=0;D[c+6|0]=0;D[c+7|0]=0;D[c+8|0]=0;D[c+9|0]=0;D[c+10|0]=0;D[c+11|0]=0;D[c+12|0]=0;c=d+272|0;F[c>>2]=0;F[c+4>>2]=0;D[c+5|0]=0;D[c+6|0]=0;D[c+7|0]=0;D[c+8|0]=0;D[c+9|0]=0;D[c+10|0]=0;D[c+11|0]=0;D[c+12|0]=0;c=d+288|0;F[c>>2]=0;F[c+4>>2]=0;D[c+5|0]=0;D[c+6|0]=0;D[c+7|0]=0;D[c+8|0]=0;D[c+9|0]=0;D[c+10|0]=0;D[c+11|0]=0;D[c+12|0]=0;c=d+304|0;F[c>>2]=0;F[c+4>>2]=0;D[c+5|0]=0;D[c+6|0]=0;D[c+7|0]=0;D[c+8|0]=0;D[c+9|0]=0;D[c+10|0]=0;D[c+11|0]=0;D[c+12|0]=0;c=d+320|0;F[c>>2]=0;F[c+4>>2]=0;D[c+5|0]=0;D[c+6|0]=0;D[c+7|0]=0;D[c+8|0]=0;D[c+9|0]=0;D[c+10|0]=0;D[c+11|0]=0;D[c+12|0]=0;c=d+336|0;F[c>>2]=0;F[c+4>>2]=0;D[c+5|0]=0;D[c+6|0]=0;D[c+7|0]=0;D[c+8|0]=0;D[c+9|0]=0;D[c+10|0]=0;D[c+11|0]=0;D[c+12|0]=0;c=d+352|0;F[c>>2]=0;F[c+4>>2]=0;D[c+5|0]=0;D[c+6|0]=0;D[c+7|0]=0;D[c+8|0]=0;D[c+9|0]=0;D[c+10|0]=0;D[c+11|0]=0;D[c+12|0]=0;c=d+368|0;F[c>>2]=0;F[c+4>>2]=0;D[c+5|0]=0;D[c+6|0]=0;D[c+7|0]=0;D[c+8|0]=0;D[c+9|0]=0;D[c+10|0]=0;D[c+11|0]=0;D[c+12|0]=0;c=d+384|0;F[c>>2]=0;F[c+4>>2]=0;D[c+5|0]=0;D[c+6|0]=0;D[c+7|0]=0;D[c+8|0]=0;D[c+9|0]=0;D[c+10|0]=0;D[c+11|0]=0;D[c+12|0]=0;c=d+400|0;F[c>>2]=0;F[c+4>>2]=0;D[c+5|0]=0;D[c+6|0]=0;D[c+7|0]=0;D[c+8|0]=0;D[c+9|0]=0;D[c+10|0]=0;D[c+11|0]=0;D[c+12|0]=0;c=d+416|0;F[c>>2]=0;F[c+4>>2]=0;D[c+5|0]=0;D[c+6|0]=0;D[c+7|0]=0;D[c+8|0]=0;D[c+9|0]=0;D[c+10|0]=0;D[c+11|0]=0;D[c+12|0]=0;c=d+432|0;F[c>>2]=0;F[c+4>>2]=0;D[c+5|0]=0;D[c+6|0]=0;D[c+7|0]=0;D[c+8|0]=0;D[c+9|0]=0;D[c+10|0]=0;D[c+11|0]=0;D[c+12|0]=0;c=d+448|0;F[c>>2]=0;F[c+4>>2]=0;D[c+5|0]=0;D[c+6|0]=0;D[c+7|0]=0;D[c+8|0]=0;D[c+9|0]=0;D[c+10|0]=0;D[c+11|0]=0;D[c+12|0]=0;c=d+464|0;F[c>>2]=0;F[c+4>>2]=0;D[c+5|0]=0;D[c+6|0]=0;D[c+7|0]=0;D[c+8|0]=0;D[c+9|0]=0;D[c+10|0]=0;D[c+11|0]=0;D[c+12|0]=0;c=d+480|0;F[c>>2]=0;F[c+4>>2]=0;D[c+5|0]=0;D[c+6|0]=0;D[c+7|0]=0;D[c+8|0]=0;D[c+9|0]=0;D[c+10|0]=0;D[c+11|0]=0;D[c+12|0]=0;d=d+496|0;F[d>>2]=0;F[d+4>>2]=0;D[d+5|0]=0;D[d+6|0]=0;D[d+7|0]=0;D[d+8|0]=0;D[d+9|0]=0;D[d+10|0]=0;D[d+11|0]=0;D[d+12|0]=0;F[a+528>>2]=0;F[a+532>>2]=0;D[a+533|0]=0;D[a+534|0]=0;D[a+535|0]=0;D[a+536|0]=0;D[a+537|0]=0;D[a+538|0]=0;D[a+539|0]=0;D[a+540|0]=0;F[a+544>>2]=0;F[a+548>>2]=0;F[a+560>>2]=0;F[a+552>>2]=0;F[a+556>>2]=0;F[a+564>>2]=0;F[a+568>>2]=0;F[a+580>>2]=0;F[a+572>>2]=0;F[a+576>>2]=0;F[a+584>>2]=0;F[a+588>>2]=0;F[a+600>>2]=0;F[a+592>>2]=0;F[a+596>>2]=0;F[a+612>>2]=0;F[a+604>>2]=0;F[a+608>>2]=0;g=a+628|0;a:{b:{if(b){if(b>>>0<1073741824){break b}Ia();V()}F[a+616>>2]=0;F[a+620>>2]=0;F[a+624>>2]=0;F[e+8>>2]=0;F[e>>2]=0;F[e+4>>2]=0;d=1;break a}d=b<<2;c=rj(d);F[a+604>>2]=c;f=c+d|0;F[a+612>>2]=f;Ti(c,0,d);F[a+624>>2]=0;F[a+616>>2]=0;F[a+620>>2]=0;F[a+608>>2]=f;c=rj(d);F[a+616>>2]=c;f=c+d|0;F[a+624>>2]=f;Ti(c,0,d);F[a+620>>2]=f;c=rj(d);F[e>>2]=c;f=c+d|0;F[e+8>>2]=f;Ti(c,0,d);F[e+4>>2]=f;d=b<<5|1}Fb(g,d,e);c=F[e>>2];if(c){F[e+4>>2]=c;oj(c)}F[e+8>>2]=0;F[e>>2]=0;F[e+4>>2]=0;if(b){b=b<<2;c=rj(b);F[e>>2]=c;f=b+c|0;F[e+8>>2]=f;Ti(c,0,b);F[e+4>>2]=f}Fb(a+640|0,d,e);b=F[e>>2];if(b){F[e+4>>2]=b;oj(b)}fa=e+16|0;return a}function nc(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0;j=a;a:{b:{c:{d:{e:{f:{g:{h:{a=F[a+8>>2];switch(F[a+28>>2]-1|0){case 4:break c;case 5:break d;case 2:break e;case 3:break f;case 0:break g;case 1:break h;default:break a}}e=D[a+24|0];c=rj((e|0)>=0?e:-1);a=F[j+16>>2];if(F[a+80>>2]){h=F[F[a>>2]>>2]+F[a+48>>2]|0}else{h=0}if(!b){break b}a=0;if((e|0)<=0){if((b|0)!=1){h=b&-2;while(1){Ri(F[F[F[j+8>>2]+64>>2]>>2]+a|0,c,e);a=a+e|0;Ri(a+F[F[F[j+8>>2]+64>>2]>>2]|0,c,e);a=a+e|0;d=d+2|0;if((h|0)!=(d|0)){continue}break}}if(!(b&1)){break b}Ri(F[F[F[j+8>>2]+64>>2]>>2]+a|0,c,e);break b}o=e&-4;l=e&3;g=e-1>>>0<3;while(1){a=0;f=0;if(!g){while(1){k=h+(d<<2)|0;D[a+c|0]=F[k>>2];D[(a|1)+c|0]=F[k+4>>2];D[(a|2)+c|0]=F[k+8>>2];D[(a|3)+c|0]=F[k+12>>2];a=a+4|0;d=d+4|0;f=f+4|0;if((o|0)!=(f|0)){continue}break}}f=0;if(l){while(1){D[a+c|0]=F[h+(d<<2)>>2];a=a+1|0;d=d+1|0;f=f+1|0;if((l|0)!=(f|0)){continue}break}}Ri(F[F[F[j+8>>2]+64>>2]>>2]+m|0,c,e);m=e+m|0;n=n+1|0;if((n|0)!=(b|0)){continue}break}break b}e=D[a+24|0];c=rj((e|0)>=0?e:-1);a=F[j+16>>2];if(F[a+80>>2]){h=F[F[a>>2]>>2]+F[a+48>>2]|0}else{h=0}if(!b){break b}a=0;if((e|0)<=0){if((b|0)!=1){h=b&-2;while(1){Ri(F[F[F[j+8>>2]+64>>2]>>2]+a|0,c,e);a=a+e|0;Ri(a+F[F[F[j+8>>2]+64>>2]>>2]|0,c,e);a=a+e|0;d=d+2|0;if((h|0)!=(d|0)){continue}break}}if(!(b&1)){break b}Ri(F[F[F[j+8>>2]+64>>2]>>2]+a|0,c,e);break b}o=e&-4;l=e&3;g=e-1>>>0<3;while(1){a=0;f=0;if(!g){while(1){k=h+(d<<2)|0;D[a+c|0]=F[k>>2];D[(a|1)+c|0]=F[k+4>>2];D[(a|2)+c|0]=F[k+8>>2];D[(a|3)+c|0]=F[k+12>>2];a=a+4|0;d=d+4|0;f=f+4|0;if((o|0)!=(f|0)){continue}break}}f=0;if(l){while(1){D[a+c|0]=F[h+(d<<2)>>2];a=a+1|0;d=d+1|0;f=f+1|0;if((l|0)!=(f|0)){continue}break}}Ri(F[F[F[j+8>>2]+64>>2]>>2]+m|0,c,e);m=e+m|0;n=n+1|0;if((n|0)!=(b|0)){continue}break}break b}g=D[a+24|0];a=g+g|0;c=rj(a>>>0>>0?-1:a);a=F[j+16>>2];if(F[a+80>>2]){h=F[F[a>>2]>>2]+F[a+48>>2]|0}else{h=0}if(!b){break b}i=g<<1;a=0;if((g|0)<=0){if((b|0)!=1){h=b&-2;while(1){Ri(F[F[F[j+8>>2]+64>>2]>>2]+a|0,c,i);a=a+i|0;Ri(a+F[F[F[j+8>>2]+64>>2]>>2]|0,c,i);a=a+i|0;d=d+2|0;if((h|0)!=(d|0)){continue}break}}if(!(b&1)){break b}Ri(F[F[F[j+8>>2]+64>>2]>>2]+a|0,c,i);break b}o=g&-4;l=g&3;g=g-1>>>0<3;while(1){a=0;f=0;if(!g){while(1){e=a<<1;k=h+(d<<2)|0;E[e+c>>1]=F[k>>2];E[(e|2)+c>>1]=F[k+4>>2];E[(e|4)+c>>1]=F[k+8>>2];E[(e|6)+c>>1]=F[k+12>>2];a=a+4|0;d=d+4|0;f=f+4|0;if((o|0)!=(f|0)){continue}break}}f=0;if(l){while(1){E[(a<<1)+c>>1]=F[h+(d<<2)>>2];a=a+1|0;d=d+1|0;f=f+1|0;if((l|0)!=(f|0)){continue}break}}Ri(F[F[F[j+8>>2]+64>>2]>>2]+n|0,c,i);n=i+n|0;m=m+1|0;if((m|0)!=(b|0)){continue}break}break b}g=D[a+24|0];a=g+g|0;c=rj(a>>>0>>0?-1:a);a=F[j+16>>2];if(F[a+80>>2]){h=F[F[a>>2]>>2]+F[a+48>>2]|0}else{h=0}if(!b){break b}i=g<<1;a=0;if((g|0)<=0){if((b|0)!=1){h=b&-2;while(1){Ri(F[F[F[j+8>>2]+64>>2]>>2]+a|0,c,i);a=a+i|0;Ri(a+F[F[F[j+8>>2]+64>>2]>>2]|0,c,i);a=a+i|0;d=d+2|0;if((h|0)!=(d|0)){continue}break}}if(!(b&1)){break b}Ri(F[F[F[j+8>>2]+64>>2]>>2]+a|0,c,i);break b}o=g&-4;l=g&3;g=g-1>>>0<3;while(1){a=0;f=0;if(!g){while(1){e=a<<1;k=h+(d<<2)|0;E[e+c>>1]=F[k>>2];E[(e|2)+c>>1]=F[k+4>>2];E[(e|4)+c>>1]=F[k+8>>2];E[(e|6)+c>>1]=F[k+12>>2];a=a+4|0;d=d+4|0;f=f+4|0;if((o|0)!=(f|0)){continue}break}}f=0;if(l){while(1){E[(a<<1)+c>>1]=F[h+(d<<2)>>2];a=a+1|0;d=d+1|0;f=f+1|0;if((l|0)!=(f|0)){continue}break}}Ri(F[F[F[j+8>>2]+64>>2]>>2]+n|0,c,i);n=i+n|0;m=m+1|0;if((m|0)!=(b|0)){continue}break}break b}g=D[a+24|0];i=g<<2;c=rj((g|0)!=(g&1073741823)?-1:i);a=F[j+16>>2];if(F[a+80>>2]){h=F[F[a>>2]>>2]+F[a+48>>2]|0}else{h=0}if(!b){break b}a=0;if((g|0)<=0){if((b|0)!=1){h=b&-2;while(1){Ri(F[F[F[j+8>>2]+64>>2]>>2]+a|0,c,i);a=a+i|0;Ri(a+F[F[F[j+8>>2]+64>>2]>>2]|0,c,i);a=a+i|0;d=d+2|0;if((h|0)!=(d|0)){continue}break}}if(!(b&1)){break b}Ri(F[F[F[j+8>>2]+64>>2]>>2]+a|0,c,i);break b}o=g&-4;l=g&3;g=g-1>>>0<3;while(1){a=0;f=0;if(!g){while(1){e=a<<2;k=h+(d<<2)|0;F[e+c>>2]=F[k>>2];F[(e|4)+c>>2]=F[k+4>>2];F[(e|8)+c>>2]=F[k+8>>2];F[(e|12)+c>>2]=F[k+12>>2];a=a+4|0;d=d+4|0;f=f+4|0;if((o|0)!=(f|0)){continue}break}}f=0;if(l){while(1){F[(a<<2)+c>>2]=F[h+(d<<2)>>2];a=a+1|0;d=d+1|0;f=f+1|0;if((l|0)!=(f|0)){continue}break}}Ri(F[F[F[j+8>>2]+64>>2]>>2]+n|0,c,i);n=i+n|0;m=m+1|0;if((m|0)!=(b|0)){continue}break}break b}g=D[a+24|0];i=g<<2;c=rj((g|0)!=(g&1073741823)?-1:i);a=F[j+16>>2];if(F[a+80>>2]){h=F[F[a>>2]>>2]+F[a+48>>2]|0}else{h=0}if(!b){break b}a=0;if((g|0)<=0){if((b|0)!=1){h=b&-2;while(1){Ri(F[F[F[j+8>>2]+64>>2]>>2]+a|0,c,i);a=a+i|0;Ri(a+F[F[F[j+8>>2]+64>>2]>>2]|0,c,i);a=a+i|0;d=d+2|0;if((h|0)!=(d|0)){continue}break}}if(!(b&1)){break b}Ri(F[F[F[j+8>>2]+64>>2]>>2]+a|0,c,i);break b}o=g&-4;l=g&3;g=g-1>>>0<3;while(1){a=0;f=0;if(!g){while(1){e=a<<2;k=h+(d<<2)|0;F[e+c>>2]=F[k>>2];F[(e|4)+c>>2]=F[k+4>>2];F[(e|8)+c>>2]=F[k+8>>2];F[(e|12)+c>>2]=F[k+12>>2];a=a+4|0;d=d+4|0;f=f+4|0;if((o|0)!=(f|0)){continue}break}}f=0;if(l){while(1){F[(a<<2)+c>>2]=F[h+(d<<2)>>2];a=a+1|0;d=d+1|0;f=f+1|0;if((l|0)!=(f|0)){continue}break}}Ri(F[F[F[j+8>>2]+64>>2]>>2]+n|0,c,i);n=i+n|0;m=m+1|0;if((m|0)!=(b|0)){continue}break}}oj(c);c=1}return c|0}function qd(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,E=0,H=0,I=0,J=0,K=0,L=0,M=0,N=0,O=0,P=0,Q=0,R=0,S=0,T=0,U=0,W=0;a:{if((e|0)==2){F[a+8>>2]=2;F[a- -64>>2]=f;H=a+32|0;e=F[H>>2];d=F[a+36>>2]-e|0;b:{if(d>>>0<=7){La(H,2-(d>>>2|0)|0);break b}if((d|0)==8){break b}F[a+36>>2]=e+8}d=F[a+56>>2];d=F[d+4>>2]-F[d>>2]|0;c:{if((d|0)<=0){f=0;break c}n=a+60|0;I=d>>2;S=(I|0)>1?I:1;T=a+68|0;f=1;while(1){e=F[a+56>>2];d=F[e>>2];if(F[e+4>>2]-d>>2>>>0<=r>>>0){break a}k=fa-80|0;fa=k;e=-1;d:{e:{i=F[d+(r<<2)>>2];if((i|0)==-1){break e}h=F[n+32>>2];d=i+1|0;d=(d>>>0)%3|0?d:i-2|0;if((d|0)!=-1){e=F[F[h>>2]+(d<<2)>>2]}d=-1;i=i+((i>>>0)%3|0?-1:2)|0;if((i|0)!=-1){d=F[F[h>>2]+(i<<2)>>2]}h=F[n+36>>2];i=F[h>>2];h=F[h+4>>2]-i>>2;if(h>>>0<=e>>>0|d>>>0>=h>>>0){break e}h=F[i+(e<<2)>>2];f:{g:{h:{i:{j:{k:{i=F[i+(d<<2)>>2];if((i|0)>=(r|0)|(h|0)>=(r|0)){break k}d=(i<<3)+c|0;v=F[d+4>>2];e=(h<<3)+c|0;w=F[e+4>>2];x=F[d>>2];B=F[e>>2];if(!((x|0)!=(B|0)|(v|0)!=(w|0))){F[n+8>>2]=B;F[n+12>>2]=w;break j}d=F[F[n+4>>2]+(r<<2)>>2];F[k+72>>2]=0;F[k+76>>2]=0;e=k- -64|0;F[e>>2]=0;F[e+4>>2]=0;F[k+56>>2]=0;F[k+60>>2]=0;e=F[n>>2];if(!G[e+84|0]){d=F[F[e+68>>2]+(d<<2)>>2]}Xc(e,d,D[e+24|0],k+56|0);d=F[F[n+4>>2]+(h<<2)>>2];F[k+48>>2]=0;F[k+52>>2]=0;F[k+40>>2]=0;F[k+44>>2]=0;F[k+32>>2]=0;F[k+36>>2]=0;e=F[n>>2];if(!G[e+84|0]){d=F[F[e+68>>2]+(d<<2)>>2]}Xc(e,d,D[e+24|0],k+32|0);e=F[F[n+4>>2]+(i<<2)>>2];F[k+24>>2]=0;F[k+28>>2]=0;F[k+16>>2]=0;F[k+20>>2]=0;F[k+8>>2]=0;F[k+12>>2]=0;d=F[n>>2];if(!G[d+84|0]){e=F[F[d+68>>2]+(e<<2)>>2]}Xc(d,e,D[d+24|0],k+8|0);J=F[k+44>>2];d=F[k+16>>2];s=F[k+40>>2];e=s;i=F[k+20>>2]-(J+(d>>>0>>0)|0)|0;l=d-e|0;d=Zj(l,i,l,i);g=ia;m=d;K=F[k+36>>2];d=F[k+8>>2];C=F[k+32>>2];e=C;j=F[k+12>>2]-(K+(d>>>0>>0)|0)|0;e=d-e|0;o=Zj(e,j,e,j);m=m+o|0;d=ia+g|0;d=m>>>0>>0?d+1|0:d;q=m;L=F[k+52>>2];g=F[k+24>>2];E=F[k+48>>2];o=E;m=F[k+28>>2]-(L+(g>>>0>>0)|0)|0;u=g-o|0;p=Zj(u,m,u,m);o=q+p|0;g=ia+d|0;t=o;o=o>>>0

>>0?g+1|0:g;if(!(t|o)){break k}M=F[k+64>>2];d=M;N=F[k+68>>2];d=Zj(d-s|0,N-((d>>>0>>0)+J|0)|0,l,i);h=ia;g=d;O=F[k+56>>2];d=O;P=F[k+60>>2];p=Zj(d-C|0,P-((d>>>0>>0)+K|0)|0,e,j);d=g+p|0;g=ia+h|0;g=d>>>0

>>0?g+1|0:g;h=d;Q=F[k+72>>2];d=Q;R=F[k+76>>2];p=Zj(d-E|0,R-((d>>>0>>0)+L|0)|0,u,m);h=h+p|0;d=ia+g|0;y=h;p=h>>>0

>>0?d+1|0:d;d=j>>31;h=d;g=e^d;d=(j^d)-((d>>>0>g>>>0)+d|0)|0;g=g-h|0;q=g;h=i>>31;z=h^l;A=z-h|0;h=(i^h)-((h>>>0>z>>>0)+h|0)|0;g=(d|0)==(h|0)&g>>>0>A>>>0|d>>>0>h>>>0;z=g?q:A;d=g?d:h;h=d;d=m>>31;g=d;A=d^u;d=A-d|0;g=(m^g)-((g>>>0>A>>>0)+g|0)|0;q=(h|0)==(g|0)&d>>>0>>0|h>>>0>g>>>0;g=$j(-1,2147483647,q?z:d,q?h:g)>>>0>>0;h=ia;d=0;if(g&(h|0)<=(p|0)|(h|0)<(p|0)){break f}h=1;d=0;g=M;q=s;s=_j(Zj(l,i,y,p),ia,t,o);i=q+s|0;l=ia+J|0;l=i>>>0>>0?l+1|0:l;l=N-((i>>>0>g>>>0)+l|0)|0;i=g-i|0;i=Zj(i,l,i,l);l=ia;g=O;q=i;j=_j(Zj(e,j,y,p),ia,t,o);e=j+C|0;i=ia+K|0;i=e>>>0>>0?i+1|0:i;i=P-((e>>>0>g>>>0)+i|0)|0;e=g-e|0;j=Zj(e,i,e,i);i=q+j|0;e=ia+l|0;e=i>>>0>>0?e+1|0:e;j=i;i=e;e=Q;g=j;m=_j(Zj(u,m,y,p),ia,t,o);j=m+E|0;l=ia+L|0;l=j>>>0>>0?l+1|0:l;m=R-((e>>>0>>0)+l|0)|0;e=e-j|0;j=Zj(e,m,e,m);e=g+j|0;i=ia+i|0;j=Zj(e,e>>>0>>0?i+1|0:i,t,o);e=ia;m=e;if(!e&j>>>0<=1){break i}g=j;e=m;while(1){i=d<<1|h>>>31;h=h<<1;d=i;l=!e&g>>>0>7|(e|0)!=0;g=(e&3)<<30|g>>>2;e=e>>>2|0;if(l){continue}break}break h}if((h|0)<(r|0)){d=h<<1}else{if((r|0)<=0){F[n+8>>2]=0;F[n+12>>2]=0;break j}d=(r<<1)-2|0}d=(d<<2)+c|0;F[n+8>>2]=F[d>>2];F[n+12>>2]=F[d+4>>2]}d=1;break f}d=m;h=j;if(h-1|0){break g}}while(1){e=$j(j,m,h,d)+h|0;g=d+ia|0;g=e>>>0>>0?g+1|0:g;h=(g&1)<<31|e>>>1;d=g>>>1|0;e=Zj(h,d,h,d);i=ia;if((m|0)==(i|0)&e>>>0>j>>>0|i>>>0>m>>>0){continue}break}}i=F[n+20>>2];if(i){e=i-1|0;m=F[F[n+16>>2]+(e>>>3&536870908)>>2];F[n+20>>2]=e;j=w;u=v-j|0;g=j>>31;v=(v>>31)-(g+(j>>>0>v>>>0)|0)|0;j=Zj(y,p,u,v);l=ia;g=Zj(w,g,t,o);j=g+j|0;l=ia+l|0;l=j>>>0>>0?l+1|0:l;q=j;j=B;w=x-j|0;s=j>>31;x=(x>>31)-(s+(j>>>0>x>>>0)|0)|0;j=Zj(h,d,w,x);g=j;e=m>>>e&1;m=e?0-j|0:j;j=q+m|0;q=l;l=ia;g=q+(e?0-(l+((g|0)!=0)|0)|0:l)|0;U=n,W=_j(j,j>>>0>>0?g+1|0:g,t,o),F[U+12>>2]=W;j=Zj(w,x,y,p);m=ia;g=Zj(t,o,B,s);j=g+j|0;l=ia+m|0;l=j>>>0>>0?l+1|0:l;g=j;d=Zj(h,d,u,v);j=e?d:0-d|0;h=g+j|0;m=ia;e=(e?m:0-(((d|0)!=0)+m|0)|0)+l|0;U=n,W=_j(h,h>>>0>>0?e+1|0:e,t,o),F[U+8>>2]=W}d=(i|0)!=0}fa=k+80|0;break d}yc();V()}if(!d){break c}l:{if(F[a+8>>2]<=0){break l}i=F[H>>2];d=0;while(1){e=d<<2;f=F[e+T>>2];h=F[a+16>>2];m:{if((f|0)>(h|0)){F[e+i>>2]=h;break m}e=e+i|0;h=F[a+12>>2];if((h|0)>(f|0)){F[e>>2]=h;break m}F[e>>2]=f}d=d+1|0;f=F[a+8>>2];if((d|0)<(f|0)){continue}break}e=0;if((f|0)<=0){break l}d=r<<3;h=d+c|0;j=b+d|0;while(1){f=e<<2;d=f+h|0;f=F[f+j>>2]+F[f+i>>2]|0;F[d>>2]=f;n:{if((f|0)>F[a+16>>2]){f=f-F[a+20>>2]|0}else{if((f|0)>=F[a+12>>2]){break n}f=f+F[a+20>>2]|0}F[d>>2]=f}e=e+1|0;if((e|0)>2]){continue}break}}r=r+1|0;f=(I|0)>(r|0);if((r|0)!=(S|0)){continue}break}}a=f^1}else{a=0}return a&1}yc();V()}function Wc(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,E=0,H=0,I=0,J=0,K=0,L=0,M=0,N=0,O=0,P=0,Q=0,R=0,S=0,T=0,U=0,W=0;a:{if((e|0)==2){F[a+8>>2]=2;F[a- -64>>2]=f;I=a+32|0;e=F[I>>2];d=F[a+36>>2]-e|0;b:{if(d>>>0<=7){La(I,2-(d>>>2|0)|0);break b}if((d|0)==8){break b}F[a+36>>2]=e+8}d=F[a+56>>2];d=F[d+4>>2]-F[d>>2]|0;c:{if((d|0)<=0){f=0;break c}n=a+60|0;J=d>>2;S=(J|0)>1?J:1;T=a+68|0;f=1;while(1){d=F[a+56>>2];i=F[d>>2];if(F[d+4>>2]-i>>2>>>0<=q>>>0){break a}k=fa-80|0;fa=k;e=-1;i=F[i+(q<<2)>>2];d=-1;d:{if((i|0)==-1){break d}d=i+1|0;e=(d>>>0)%3|0?d:i-2|0;d=i-1|0;if((i>>>0)%3|0){break d}d=i+2|0}g=F[n+36>>2];i=F[g>>2];e:{f:{g:{h:{i:{g=F[g+4>>2]-i>>2;j=e<<2;e=F[F[n+32>>2]+28>>2];j=F[j+e>>2];if(g>>>0<=j>>>0){break i}d=F[e+(d<<2)>>2];if(d>>>0>=g>>>0){break i}g=F[i+(j<<2)>>2];j:{k:{i=F[i+(d<<2)>>2];if((i|0)>=(q|0)|(g|0)>=(q|0)){break k}d=(i<<3)+c|0;w=F[d+4>>2];e=(g<<3)+c|0;x=F[e+4>>2];y=F[d>>2];C=F[e>>2];if(!((y|0)!=(C|0)|(w|0)!=(x|0))){F[n+8>>2]=C;F[n+12>>2]=x;break j}d=F[F[n+4>>2]+(q<<2)>>2];F[k+72>>2]=0;F[k+76>>2]=0;e=k- -64|0;F[e>>2]=0;F[e+4>>2]=0;F[k+56>>2]=0;F[k+60>>2]=0;e=F[n>>2];if(!G[e+84|0]){d=F[F[e+68>>2]+(d<<2)>>2]}Xc(e,d,D[e+24|0],k+56|0);d=F[F[n+4>>2]+(g<<2)>>2];F[k+48>>2]=0;F[k+52>>2]=0;F[k+40>>2]=0;F[k+44>>2]=0;F[k+32>>2]=0;F[k+36>>2]=0;e=F[n>>2];if(!G[e+84|0]){d=F[F[e+68>>2]+(d<<2)>>2]}Xc(e,d,D[e+24|0],k+32|0);d=F[F[n+4>>2]+(i<<2)>>2];F[k+24>>2]=0;F[k+28>>2]=0;F[k+16>>2]=0;F[k+20>>2]=0;F[k+8>>2]=0;F[k+12>>2]=0;e=F[n>>2];if(!G[e+84|0]){d=F[F[e+68>>2]+(d<<2)>>2]}Xc(e,d,D[e+24|0],k+8|0);K=F[k+44>>2];d=F[k+16>>2];r=F[k+40>>2];e=r;i=F[k+20>>2]-(K+(d>>>0>>0)|0)|0;l=d-e|0;d=Zj(l,i,l,i);h=ia;m=d;L=F[k+36>>2];d=F[k+8>>2];E=F[k+32>>2];e=E;j=F[k+12>>2]-(L+(d>>>0>>0)|0)|0;e=d-e|0;o=Zj(e,j,e,j);m=m+o|0;d=ia+h|0;d=m>>>0>>0?d+1|0:d;s=m;M=F[k+52>>2];h=F[k+24>>2];H=F[k+48>>2];o=H;m=F[k+28>>2]-(M+(h>>>0>>0)|0)|0;v=h-o|0;p=Zj(v,m,v,m);o=s+p|0;h=ia+d|0;u=o;o=o>>>0

>>0?h+1|0:h;if(!(u|o)){break k}s=F[k+64>>2];d=s;N=F[k+68>>2];d=Zj(d-r|0,N-((d>>>0>>0)+K|0)|0,l,i);g=ia;h=d;O=F[k+56>>2];d=O;P=F[k+60>>2];p=Zj(d-E|0,P-((d>>>0>>0)+L|0)|0,e,j);d=h+p|0;h=ia+g|0;h=d>>>0

>>0?h+1|0:h;g=d;Q=F[k+72>>2];d=Q;R=F[k+76>>2];p=Zj(d-H|0,R-((d>>>0>>0)+M|0)|0,v,m);g=g+p|0;d=ia+h|0;z=g;p=g>>>0

>>0?d+1|0:d;d=j>>31;g=d;h=e^d;d=(d^j)-(d+(d>>>0>h>>>0)|0)|0;t=h-g|0;h=i>>31;g=h;A=g^l;B=A-g|0;g=(i^g)-((g>>>0>A>>>0)+g|0)|0;h=(d|0)==(g|0)&t>>>0>B>>>0|d>>>0>g>>>0;A=h?t:B;d=h?d:g;h=m>>31;g=h;B=g^v;t=B-g|0;g=(g^m)-((g>>>0>B>>>0)+g|0)|0;h=(d|0)==(g|0)&t>>>0>>0|d>>>0>g>>>0;h=$j(-1,2147483647,h?A:t,h?d:g)>>>0>>0;d=ia;t=0;if(h&(d|0)<=(p|0)|(d|0)<(p|0)){break e}g=1;d=0;h=s;s=r;r=_j(Zj(l,i,z,p),ia,u,o);i=s+r|0;l=ia+K|0;l=i>>>0>>0?l+1|0:l;l=N-((i>>>0>h>>>0)+l|0)|0;i=h-i|0;i=Zj(i,l,i,l);l=ia;h=O;r=i;j=_j(Zj(e,j,z,p),ia,u,o);e=j+E|0;i=ia+L|0;i=e>>>0>>0?i+1|0:i;i=P-((e>>>0>h>>>0)+i|0)|0;e=h-e|0;j=Zj(e,i,e,i);i=r+j|0;e=ia+l|0;e=i>>>0>>0?e+1|0:e;j=i;i=e;e=Q;h=j;m=_j(Zj(v,m,z,p),ia,u,o);j=m+H|0;l=ia+M|0;l=j>>>0>>0?l+1|0:l;m=R-((e>>>0>>0)+l|0)|0;e=e-j|0;j=Zj(e,m,e,m);e=h+j|0;i=ia+i|0;j=Zj(e,e>>>0>>0?i+1|0:i,u,o);e=ia;m=e;if(!e&j>>>0<=1){break h}h=j;e=m;while(1){i=d<<1|g>>>31;g=g<<1;d=i;l=!e&h>>>0>7|(e|0)!=0;h=(e&3)<<30|h>>>2;e=e>>>2|0;if(l){continue}break}break g}if((g|0)<(q|0)){d=g<<1}else{if((q|0)<=0){F[n+8>>2]=0;F[n+12>>2]=0;break j}d=(q<<1)-2|0}d=(d<<2)+c|0;F[n+8>>2]=F[d>>2];F[n+12>>2]=F[d+4>>2]}t=1;break e}yc();V()}d=m;g=j;if(g-1|0){break f}}while(1){e=$j(j,m,g,d)+g|0;h=d+ia|0;h=e>>>0>>0?h+1|0:h;g=(h&1)<<31|e>>>1;d=h>>>1|0;e=Zj(g,d,g,d);i=ia;if((m|0)==(i|0)&e>>>0>j>>>0|i>>>0>m>>>0){continue}break}}i=F[n+20>>2];if(i){e=i-1|0;m=F[F[n+16>>2]+(e>>>3&536870908)>>2];F[n+20>>2]=e;j=x;v=w-j|0;h=j>>31;w=(w>>31)-(h+(j>>>0>w>>>0)|0)|0;j=Zj(z,p,v,w);l=ia;h=Zj(x,h,u,o);j=h+j|0;l=ia+l|0;l=h>>>0>j>>>0?l+1|0:l;s=j;j=C;x=y-j|0;r=j>>31;y=(y>>31)-(r+(j>>>0>y>>>0)|0)|0;j=Zj(g,d,x,y);h=j;e=m>>>e&1;m=e?0-j|0:j;j=s+m|0;s=l;l=ia;h=s+(e?0-(l+((h|0)!=0)|0)|0:l)|0;U=n,W=_j(j,j>>>0>>0?h+1|0:h,u,o),F[U+12>>2]=W;j=Zj(x,y,z,p);m=ia;h=Zj(u,o,C,r);j=h+j|0;l=ia+m|0;l=h>>>0>j>>>0?l+1|0:l;h=j;d=Zj(g,d,v,w);j=e?d:0-d|0;g=h+j|0;m=ia;e=(e?m:0-(((d|0)!=0)+m|0)|0)+l|0;U=n,W=_j(g,j>>>0>g>>>0?e+1|0:e,u,o),F[U+8>>2]=W}t=(i|0)!=0}fa=k+80|0;if(!t){break c}l:{if(F[a+8>>2]<=0){break l}i=F[I>>2];d=0;while(1){e=d<<2;f=F[e+T>>2];g=F[a+16>>2];m:{if((f|0)>(g|0)){F[e+i>>2]=g;break m}e=e+i|0;g=F[a+12>>2];if((g|0)>(f|0)){F[e>>2]=g;break m}F[e>>2]=f}d=d+1|0;f=F[a+8>>2];if((d|0)<(f|0)){continue}break}e=0;if((f|0)<=0){break l}d=q<<3;g=d+c|0;j=b+d|0;while(1){f=e<<2;d=f+g|0;f=F[f+j>>2]+F[f+i>>2]|0;F[d>>2]=f;n:{if((f|0)>F[a+16>>2]){f=f-F[a+20>>2]|0}else{if((f|0)>=F[a+12>>2]){break n}f=f+F[a+20>>2]|0}F[d>>2]=f}e=e+1|0;if((e|0)>2]){continue}break}}q=q+1|0;f=(J|0)>(q|0);if((q|0)!=(S|0)){continue}break}}a=f^1}else{a=0}return a&1}yc();V()}function Kb(a){a=a|0;var b=0,c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=M(0),x=0;j=fa-32|0;fa=j;a:{if(!(F[a+60>>2]!=F[a- -64>>2]|F[a+48>>2]!=F[a+52>>2])){i=1;break a}i=1;if((ja[F[F[a>>2]+24>>2]](a)|0)<=0){break a}b:{c:{while(1){d:{c=ja[F[F[a>>2]+20>>2]](a,x)|0;e:{f:{g:{e=F[F[F[(ja[F[F[a>>2]+28>>2]](a)|0)+4>>2]+8>>2]+(c<<2)>>2];switch(F[e+28>>2]-1|0){case 8:break f;case 0:case 2:case 4:break g;default:break e}}c=D[e+24|0];F[j+24>>2]=0;F[j+16>>2]=0;F[j+20>>2]=0;h:{if(!c){i=0;F[j>>2]=0;o=0;break h}if((c|0)<0){break d}c=c<<2;i=rj(c);F[j+16>>2]=i;b=c+i|0;F[j+24>>2]=b;o=0;Ti(i,0,c);F[j+20>>2]=b;c=D[e+24|0];F[j+8>>2]=0;F[j>>2]=0;F[j+4>>2]=0;if(!c){break h}if((c|0)<0){break c}c=c<<2;o=rj(c);F[j>>2]=o;Ti(o,0,c)}i:{j:{k:{switch(F[e+28>>2]-1|0){case 4:k=0;f=0;h=0;m=0;c=0;b=0;l=fa-16|0;fa=l;d=D[e+24|0];F[l+8>>2]=0;F[l>>2]=0;F[l+4>>2]=0;l:{m:{if(d){if((d|0)<0){break m}d=d<<2;f=rj(d);F[l>>2]=f;F[l+8>>2]=d+f;Ti(f,0,d);h=rj(d);Ti(h,0,d)}n:{if(F[e+80>>2]){while(1){q=F[e>>2];g=F[q>>2];d=F[e+40>>2];n=F[e+48>>2]+Zj(d,F[e+44>>2],m,c)|0;n=Ri(f,g+n|0,d);p=D[e+24|0];if((p|0)>0){v=F[a+48>>2];g=0;while(1){s=g<<2;t=F[s+n>>2];if((t|0)<0){break n}F[h+s>>2]=t+F[v+(g+u<<2)>>2];g=g+1|0;if((p|0)!=(g|0)){continue}break}}Ri(F[q>>2]+L(d,m)|0,h,d);d=m+1|0;c=d?c:c+1|0;m=d;if(!c&I[e+80>>2]>d>>>0){continue}break}}b=1}if(h){oj(h)}if(f){oj(f)}fa=l+16|0;break l}Ia();V()}if(b){break j}break i;case 2:f=0;g=0;m=0;c=0;k=fa-16|0;fa=k;b=D[e+24|0];F[k+8>>2]=0;F[k>>2]=0;F[k+4>>2]=0;o:{p:{if(b){if((b|0)<0){break p}b=b<<1;g=rj(b);F[k>>2]=g;F[k+8>>2]=b+g;Ti(g,0,b);f=rj(b);Ti(f,0,b)}if(F[e+80>>2]){while(1){p=F[e>>2];b=F[p>>2];d=F[e+40>>2];h=F[e+48>>2]+Zj(d,F[e+44>>2],m,c)|0;l=Ri(g,b+h|0,d);n=D[e+24|0];q:{if((n|0)<=0){break q}q=F[a+48>>2];h=0;if((n|0)!=1){v=n&-2;b=0;while(1){s=h<<1;E[s+f>>1]=H[l+s>>1]+H[q+(h+u<<2)>>1];s=h|1;t=s<<1;E[t+f>>1]=H[l+t>>1]+H[q+(u+s<<2)>>1];h=h+2|0;b=b+2|0;if((v|0)!=(b|0)){continue}break}}if(!(n&1)){break q}b=h<<1;E[b+f>>1]=H[b+l>>1]+H[q+(h+u<<2)>>1]}Ri(F[p>>2]+L(d,m)|0,f,d);b=m+1|0;c=b?c:c+1|0;m=b;if(!c&I[e+80>>2]>b>>>0){continue}break}}if(f){oj(f)}if(g){oj(g)}fa=k+16|0;break o}Ia();V()}break j;case 0:break k;default:break j}}h=0;g=0;m=0;c=0;d=fa-16|0;fa=d;b=D[e+24|0];F[d+8>>2]=0;F[d>>2]=0;F[d+4>>2]=0;r:{s:{if(b){if((b|0)<0){break s}g=rj(b);F[d>>2]=g;F[d+8>>2]=b+g;Ti(g,0,b);h=rj(b);Ti(h,0,b)}if(F[e+80>>2]){while(1){f=F[F[e>>2]>>2];k=F[e+40>>2];b=F[e+48>>2]+Zj(k,F[e+44>>2],m,c)|0;b=Ri(g,f+b|0,k);k=D[e+24|0];t:{if((k|0)<=0){break t}n=F[a+48>>2];f=0;if((k|0)!=1){p=k&-2;l=0;while(1){D[f+h|0]=G[b+f|0]+G[n+(f+u<<2)|0];q=f|1;D[q+h|0]=G[b+q|0]+G[n+(q+u<<2)|0];f=f+2|0;l=l+2|0;if((p|0)!=(l|0)){continue}break}}if(!(k&1)){break t}D[f+h|0]=G[b+f|0]+G[n+(f+u<<2)|0]}b=F[e+40>>2];Ri(F[F[e>>2]>>2]+L(b,m)|0,h,b);b=m+1|0;c=b?c:c+1|0;m=b;if(!c&I[e+80>>2]>b>>>0){continue}break}}if(h){oj(h)}if(g){oj(g)}fa=d+16|0;break r}Ia();V()}}u=D[e+24|0]+u|0;k=1}if(o){oj(o)}if(i){oj(i)}if(k){break e}i=0;break a}g=F[F[a+60>>2]+(r<<2)>>2];f=F[a+36>>2];i=F[(ja[F[F[a>>2]+28>>2]](a)|0)+40>>2];F[j>>2]=F[e+56>>2];c=rj(32);F[j+16>>2]=c;F[j+20>>2]=24;F[j+24>>2]=-2147483616;D[c+24|0]=0;b=G[1206]|G[1207]<<8|(G[1208]<<16|G[1209]<<24);d=G[1202]|G[1203]<<8|(G[1204]<<16|G[1205]<<24);D[c+16|0]=d;D[c+17|0]=d>>>8;D[c+18|0]=d>>>16;D[c+19|0]=d>>>24;D[c+20|0]=b;D[c+21|0]=b>>>8;D[c+22|0]=b>>>16;D[c+23|0]=b>>>24;b=G[1198]|G[1199]<<8|(G[1200]<<16|G[1201]<<24);d=G[1194]|G[1195]<<8|(G[1196]<<16|G[1197]<<24);D[c+8|0]=d;D[c+9|0]=d>>>8;D[c+10|0]=d>>>16;D[c+11|0]=d>>>24;D[c+12|0]=b;D[c+13|0]=b>>>8;D[c+14|0]=b>>>16;D[c+15|0]=b>>>24;b=G[1190]|G[1191]<<8|(G[1192]<<16|G[1193]<<24);d=G[1186]|G[1187]<<8|(G[1188]<<16|G[1189]<<24);D[c|0]=d;D[c+1|0]=d>>>8;D[c+2|0]=d>>>16;D[c+3|0]=d>>>24;D[c+4|0]=b;D[c+5|0]=b>>>8;D[c+6|0]=b>>>16;D[c+7|0]=b>>>24;b=Lb(i,j,j+16|0);if(D[j+27|0]<0){oj(F[j+16>>2])}c=r+1|0;u:{if(b){bb(e,g);break u}m=f+L(r,24)|0;b=F[m+4>>2];r=D[e+24|0];f=r<<2;d=rj((r|0)!=(r&1073741823)?-1:f);n=j+16|0;F[n>>2]=1065353216;w=J[m+20>>2];b=-1<0){J[n>>2]=w/M(b|0)}if((b|0)<=0){break b}v:{if(!F[g+80>>2]){break v}if((r|0)<=0){o=0;i=0;while(1){Ri(F[F[e+64>>2]>>2]+i|0,d,f);i=f+i|0;o=o+1|0;if(o>>>0>2]){continue}break}break v}q=F[F[g>>2]>>2]+F[g+48>>2]|0;v=r&-2;s=r&1;l=0;k=0;i=0;while(1){h=F[m+8>>2];w=J[n>>2];o=0;b=0;if((r|0)!=1){while(1){p=o<<2;t=q+(i<<2)|0;J[p+d>>2]=M(w*M(F[t>>2]))+J[h+p>>2];p=p|4;J[p+d>>2]=M(w*M(F[t+4>>2]))+J[h+p>>2];o=o+2|0;i=i+2|0;b=b+2|0;if((v|0)!=(b|0)){continue}break}}if(s){b=o<<2;J[b+d>>2]=M(w*M(F[q+(i<<2)>>2]))+J[b+h>>2];i=i+1|0}Ri(F[F[e+64>>2]>>2]+k|0,d,f);k=f+k|0;l=l+1|0;if(l>>>0>2]){continue}break}}oj(d)}r=c}i=1;x=x+1|0;if((ja[F[F[a>>2]+24>>2]](a)|0)>(x|0)){continue}break a}break}Ia();V()}Ia();V()}oj(d);i=0}fa=j+32|0;return i|0}function Ke(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0;g=fa-96|0;fa=g;n=F[a+4>>2];e=F[n+32>>2];k=F[e+8>>2];f=k;l=F[e+12>>2];d=l;c=F[e+20>>2];o=F[e+16>>2];a:{if((d|0)<=(c|0)&o>>>0>=f>>>0|(c|0)>(d|0)){break a}m=F[e>>2];p=G[m+o|0];f=o+1|0;d=f?c:c+1|0;F[e+16>>2]=f;F[e+20>>2]=d;if((d|0)>=(l|0)&f>>>0>=k>>>0|(d|0)>(l|0)){break a}j=G[f+m|0];f=o+2|0;d=f>>>0<2?c+1|0:c;i=f;F[e+16>>2]=f;F[e+20>>2]=d;q=p<<24>>24;b:{if((q|0)>=0){f=F[a+216>>2];if(p>>>0>=(F[a+220>>2]-f|0)/144>>>0){break a}f=f+L(p,144)|0;if(F[f>>2]<0){break b}break a}if(F[a+212>>2]>=0){break a}f=a+212|0}F[f>>2]=b;c:{d:{e:{f:{g:{h:{f=H[n+36>>1];i:{if(((f<<8|f>>>8)&65535)>>>0>=258){if((d|0)>=(l|0)&i>>>0>=k>>>0|(d|0)>(l|0)){break a}f=G[i+m|0];d=o+3|0;c=d>>>0<3?c+1|0:c;F[e+16>>2]=d;F[e+20>>2]=c;c=f>>>0>1;if(c){break a}c=c?0:f;if(!j){break i}if(!c){break h}break a}if(j){break g}c=0}if((q|0)<0){e=a+184|0}else{e=F[a+216>>2]+L(p,144)|0;D[e+100|0]=0;e=e+104|0}if((c|0)!=1){break e}c=fa-112|0;fa=c;m=F[F[a+4>>2]+44>>2];d=rj(120);F[d>>2]=12172;F[d+4>>2]=0;F[d+116>>2]=0;F[d+112>>2]=e;F[d+108>>2]=m;F[d+12>>2]=0;F[d+16>>2]=0;F[d+20>>2]=0;F[d+24>>2]=0;F[d+28>>2]=0;F[d+32>>2]=0;F[d+36>>2]=0;F[d+40>>2]=0;F[d+44>>2]=0;F[d+48>>2]=0;F[d+52>>2]=0;F[d+56>>2]=0;F[d+60>>2]=0;F[d+8>>2]=12384;f=d- -64|0;F[f>>2]=0;F[f+4>>2]=0;F[d+72>>2]=0;F[d+76>>2]=0;F[d+80>>2]=0;F[d+84>>2]=0;F[d+88>>2]=0;F[d+104>>2]=0;F[d+96>>2]=0;F[d+100>>2]=0;k=F[a+8>>2];F[c+48>>2]=0;F[c+52>>2]=0;F[c+40>>2]=0;F[c+44>>2]=0;j=c+32|0;f=j;F[f>>2]=0;F[f+4>>2]=0;F[c+24>>2]=0;F[c+28>>2]=0;f=c- -64|0;F[f>>2]=0;F[f+4>>2]=0;F[c+72>>2]=0;F[c+76>>2]=0;F[c+80>>2]=0;F[c+84>>2]=0;F[c+88>>2]=0;F[c+104>>2]=0;F[c+16>>2]=0;F[c+20>>2]=0;F[c+56>>2]=0;F[c+60>>2]=0;F[c+8>>2]=12384;F[c+96>>2]=0;F[c+100>>2]=0;F[c+12>>2]=k;i=F[k>>2];f=F[k+4>>2];D[c+111|0]=0;l=j;j=c+111|0;Ne(l,(f-i>>2>>>0)/3|0,j);f=F[c+12>>2];i=F[f+28>>2];f=F[f+24>>2];D[c+111|0]=0;Ne(c+44|0,i-f>>2,j);F[c+28>>2]=d;F[c+24>>2]=m;F[c+20>>2]=e;F[c+16>>2]=k;e=d+8|0;f=c+8|0;Oe(e,f);j:{if((f|0)==(e|0)){F[d+92>>2]=F[f+84>>2];break j}cb(d+56|0,F[f+48>>2],F[f+52>>2]);cb(d+68|0,F[f+60>>2],F[f- -64>>2]);cb(d+80|0,F[f+72>>2],F[f+76>>2]);F[d+92>>2]=F[f+84>>2];Pa(d+96|0,F[f+88>>2],F[f+92>>2])}F[c+8>>2]=12384;e=F[c+96>>2];if(e){F[c+100>>2]=e;oj(e)}e=F[c+80>>2];if(e){F[c+84>>2]=e;oj(e)}e=F[c+68>>2];if(e){F[c+72>>2]=e;oj(e)}e=F[c+56>>2];if(e){F[c+60>>2]=e;oj(e)}F[c+8>>2]=12620;e=F[c+44>>2];if(e){oj(e)}e=F[c+32>>2];if(e){oj(e)}fa=c+112|0;c=d;break d}if((q|0)>=0){break f}break a}if((q|0)<0){break a}}e=F[a+216>>2];f=F[n+44>>2];c=rj(80);F[c>>2]=12932;F[c+4>>2]=0;F[c+76>>2]=0;F[c+68>>2]=f;F[c+8>>2]=11872;F[c+12>>2]=0;F[c+16>>2]=0;F[c+20>>2]=0;F[c+24>>2]=0;F[c+28>>2]=0;F[c+32>>2]=0;F[c+36>>2]=0;F[c+40>>2]=0;F[c+44>>2]=0;F[c+48>>2]=0;F[c+52>>2]=0;h=e+L(p,144)|0;d=h+104|0;F[c+72>>2]=d;F[c- -64>>2]=0;F[c+56>>2]=0;F[c+60>>2]=0;F[g+24>>2]=f;F[g+68>>2]=0;F[g+72>>2]=0;F[g+60>>2]=0;F[g+64>>2]=0;F[g+52>>2]=0;F[g+56>>2]=0;F[g+44>>2]=0;F[g+48>>2]=0;F[g+84>>2]=0;F[g+88>>2]=0;F[g+76>>2]=0;F[g+80>>2]=0;F[g+28>>2]=c;e=F[g+28>>2];F[g+8>>2]=F[g+24>>2];F[g+12>>2]=e;F[g+20>>2]=d;d=h+4|0;F[g+16>>2]=d;F[g+36>>2]=0;F[g+40>>2]=0;F[g+32>>2]=11872;e=F[g+20>>2];F[g>>2]=F[g+16>>2];F[g+4>>2]=e;h=g+32|0;Le(h,d,g);e=c+8|0;Oe(e,h);if((e|0)!=(h|0)){cb(c+56|0,F[h+48>>2],F[h+52>>2])}Me(h);break c}d=fa+-64|0;fa=d;k=F[F[a+4>>2]+44>>2];c=rj(80);F[c>>2]=12640;F[c+4>>2]=0;F[c+76>>2]=0;F[c+72>>2]=e;F[c+68>>2]=k;F[c+8>>2]=12804;F[c+12>>2]=0;F[c+16>>2]=0;F[c+20>>2]=0;F[c+24>>2]=0;F[c+28>>2]=0;F[c+32>>2]=0;F[c+36>>2]=0;F[c+40>>2]=0;F[c+44>>2]=0;F[c+48>>2]=0;F[c+52>>2]=0;F[c- -64>>2]=0;m=c+56|0;f=m;F[f>>2]=0;F[f+4>>2]=0;n=F[a+8>>2];F[d+40>>2]=0;F[d+44>>2]=0;F[d+32>>2]=0;F[d+36>>2]=0;j=d+24|0;f=j;F[f>>2]=0;F[f+4>>2]=0;F[d+16>>2]=0;F[d+20>>2]=0;F[d+56>>2]=0;F[d+8>>2]=0;F[d+12>>2]=0;F[d+48>>2]=0;F[d+52>>2]=0;F[d>>2]=12804;F[d+4>>2]=n;i=F[n>>2];f=F[n+4>>2];D[d+63|0]=0;l=j;j=d+63|0;Ne(l,(f-i>>2>>>0)/3|0,j);f=F[d+4>>2];i=F[f+28>>2];f=F[f+24>>2];D[d+63|0]=0;Ne(d+36|0,i-f>>2,j);F[d+20>>2]=c;F[d+16>>2]=k;F[d+12>>2]=e;F[d+8>>2]=n;Oe(c+8|0,d);cb(m,F[d+48>>2],F[d+52>>2]);F[d>>2]=12804;e=F[d+48>>2];if(e){F[d+52>>2]=e;oj(e)}F[d>>2]=12620;e=F[d+36>>2];if(e){oj(e)}e=F[d+24>>2];if(e){oj(e)}fa=d- -64|0}if(!c){break a}}c=_b(rj(64),c);i=F[a+4>>2];a=c;c=b;k:{l:{if((c|0)>=0){d=i+8|0;b=F[i+12>>2];e=F[i+8>>2];f=b-e>>2;m:{if((f|0)>(c|0)){break m}h=c+1|0;if(c>>>0>=f>>>0){ac(d,h-f|0);break m}if(f>>>0<=h>>>0){break m}e=e+(h<<2)|0;if((e|0)!=(b|0)){while(1){b=b-4|0;h=F[b>>2];F[b>>2]=0;if(h){ja[F[F[h>>2]+4>>2]](h)}if((b|0)!=(e|0)){continue}break}}F[i+12>>2]=e}e=F[d>>2]+(c<<2)|0;b=F[e>>2];F[e>>2]=a;if(b){break l}break k}b=a;if(!a){break k}}ja[F[F[b>>2]+4>>2]](b)}h=(c^-1)>>>31|0}fa=g+96|0;return h|0}function kj(a){var b=0,c=0,d=0,e=0,f=0,g=0;e=fa-16|0;fa=e;F[e+12>>2]=a;a:{if(a>>>0<=211){d=F[lj(14256,14448,e+12|0)>>2];break a}if(a>>>0>=4294967292){ba();V()}f=(a>>>0)/210|0;d=L(f,210);F[e+8>>2]=a-d;g=lj(14448,14640,e+8|0)-14448>>2;while(1){d=F[(g<<2)+14448>>2]+d|0;a=5;b:{while(1){c:{if((a|0)==47){a=211;while(1){b=(d>>>0)/(a>>>0)|0;if(b>>>0>>0){break b}if((L(a,b)|0)==(d|0)){break c}b=a+10|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break b}if((L(b,c)|0)==(d|0)){break c}b=a+12|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break b}if((L(b,c)|0)==(d|0)){break c}b=a+16|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break b}if((L(b,c)|0)==(d|0)){break c}b=a+18|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break b}if((L(b,c)|0)==(d|0)){break c}b=a+22|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break b}if((L(b,c)|0)==(d|0)){break c}b=a+28|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break b}if((L(b,c)|0)==(d|0)){break c}b=a+30|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break b}if((L(b,c)|0)==(d|0)){break c}b=a+36|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break b}if((L(b,c)|0)==(d|0)){break c}b=a+40|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break b}if((L(b,c)|0)==(d|0)){break c}b=a+42|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break b}if((L(b,c)|0)==(d|0)){break c}b=a+46|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break b}if((L(b,c)|0)==(d|0)){break c}b=a+52|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break b}if((L(b,c)|0)==(d|0)){break c}b=a+58|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break b}if((L(b,c)|0)==(d|0)){break c}b=a+60|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break b}if((L(b,c)|0)==(d|0)){break c}b=a+66|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break b}if((L(b,c)|0)==(d|0)){break c}b=a+70|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break b}if((L(b,c)|0)==(d|0)){break c}b=a+72|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break b}if((L(b,c)|0)==(d|0)){break c}b=a+78|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break b}if((L(b,c)|0)==(d|0)){break c}b=a+82|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break b}if((L(b,c)|0)==(d|0)){break c}b=a+88|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break b}if((L(b,c)|0)==(d|0)){break c}b=a+96|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break b}if((L(b,c)|0)==(d|0)){break c}b=a+100|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break b}if((L(b,c)|0)==(d|0)){break c}b=a+102|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break b}if((L(b,c)|0)==(d|0)){break c}b=a+106|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break b}if((L(b,c)|0)==(d|0)){break c}b=a+108|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break b}if((L(b,c)|0)==(d|0)){break c}b=a+112|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break b}if((L(b,c)|0)==(d|0)){break c}b=a+120|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break b}if((L(b,c)|0)==(d|0)){break c}b=a+126|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break b}if((L(b,c)|0)==(d|0)){break c}b=a+130|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break b}if((L(b,c)|0)==(d|0)){break c}b=a+136|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break b}if((L(b,c)|0)==(d|0)){break c}b=a+138|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break b}if((L(b,c)|0)==(d|0)){break c}b=a+142|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break b}if((L(b,c)|0)==(d|0)){break c}b=a+148|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break b}if((L(b,c)|0)==(d|0)){break c}b=a+150|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break b}if((L(b,c)|0)==(d|0)){break c}b=a+156|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break b}if((L(b,c)|0)==(d|0)){break c}b=a+162|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break b}if((L(b,c)|0)==(d|0)){break c}b=a+166|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break b}if((L(b,c)|0)==(d|0)){break c}b=a+168|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break b}if((L(b,c)|0)==(d|0)){break c}b=a+172|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break b}if((L(b,c)|0)==(d|0)){break c}b=a+178|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break b}if((L(b,c)|0)==(d|0)){break c}b=a+180|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break b}if((L(b,c)|0)==(d|0)){break c}b=a+186|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break b}if((L(b,c)|0)==(d|0)){break c}b=a+190|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break b}if((L(b,c)|0)==(d|0)){break c}b=a+192|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break b}if((L(b,c)|0)==(d|0)){break c}b=a+196|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break b}if((L(b,c)|0)==(d|0)){break c}b=a+198|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break b}if((L(b,c)|0)==(d|0)){break c}b=a+208|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break b}a=a+210|0;if((L(b,c)|0)!=(d|0)){continue}break}break c}b=F[(a<<2)+14256>>2];c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break b}a=a+1|0;if((L(b,c)|0)!=(d|0)){continue}}break}d=g+1|0;a=(d|0)==48;g=a?0:d;f=a+f|0;d=L(f,210);continue}break}F[e+12>>2]=d}fa=e+16|0;return d}function Xc(a,b,c,d){var e=0,f=0,g=0,h=0,i=M(0),j=0,k=0,l=M(0),m=0;a:{if(!d){break a}b:{c:{switch(F[a+28>>2]-1|0){case 0:e=D[a+24|0];if((((c|0)>(e|0)?e:c)|0)>0){e=F[a>>2];g=F[e>>2];b=F[a+48>>2]+Zj(F[a+40>>2],F[a+44>>2],b,0)|0;b=g+b|0;h=F[e+4>>2];while(1){if(b>>>0>=h>>>0){break a}e=(f<<3)+d|0;g=D[b|0];F[e>>2]=g;F[e+4>>2]=g>>31;b=b+1|0;f=f+1|0;e=D[a+24|0];if((f|0)<(((c|0)>(e|0)?e:c)|0)){continue}break}}if((c|0)<=(e|0)){break a}c=c-e|0;a=(e<<3)+d|0;break b;case 1:e=D[a+24|0];if((((c|0)>(e|0)?e:c)|0)>0){e=F[a>>2];g=F[e>>2];b=F[a+48>>2]+Zj(F[a+40>>2],F[a+44>>2],b,0)|0;b=g+b|0;h=F[e+4>>2];while(1){if(b>>>0>=h>>>0){break a}e=(f<<3)+d|0;F[e>>2]=G[b|0];F[e+4>>2]=0;b=b+1|0;f=f+1|0;e=D[a+24|0];if((f|0)<(((c|0)>(e|0)?e:c)|0)){continue}break}}if((c|0)<=(e|0)){break a}c=c-e|0;a=(e<<3)+d|0;break b;case 2:e=D[a+24|0];if((((c|0)>(e|0)?e:c)|0)>0){e=F[a>>2];g=F[e>>2];b=F[a+48>>2]+Zj(F[a+40>>2],F[a+44>>2],b,0)|0;b=g+b|0;h=F[e+4>>2];while(1){if(b>>>0>=h>>>0){break a}e=(f<<3)+d|0;g=E[b>>1];F[e>>2]=g;F[e+4>>2]=g>>31;b=b+2|0;f=f+1|0;e=D[a+24|0];if((f|0)<(((c|0)>(e|0)?e:c)|0)){continue}break}}if((c|0)<=(e|0)){break a}c=c-e|0;a=(e<<3)+d|0;break b;case 3:e=D[a+24|0];if((((c|0)>(e|0)?e:c)|0)>0){e=F[a>>2];g=F[e>>2];b=F[a+48>>2]+Zj(F[a+40>>2],F[a+44>>2],b,0)|0;b=g+b|0;h=F[e+4>>2];while(1){if(b>>>0>=h>>>0){break a}e=(f<<3)+d|0;F[e>>2]=H[b>>1];F[e+4>>2]=0;b=b+2|0;f=f+1|0;e=D[a+24|0];if((f|0)<(((c|0)>(e|0)?e:c)|0)){continue}break}}if((c|0)<=(e|0)){break a}c=c-e|0;a=(e<<3)+d|0;break b;case 4:e=D[a+24|0];if((((c|0)>(e|0)?e:c)|0)>0){e=F[a>>2];g=F[e>>2];b=F[a+48>>2]+Zj(F[a+40>>2],F[a+44>>2],b,0)|0;b=g+b|0;h=F[e+4>>2];while(1){if(b>>>0>=h>>>0){break a}e=(f<<3)+d|0;g=F[b>>2];F[e>>2]=g;F[e+4>>2]=g>>31;b=b+4|0;f=f+1|0;e=D[a+24|0];if((f|0)<(((c|0)>(e|0)?e:c)|0)){continue}break}}if((c|0)<=(e|0)){break a}c=c-e|0;a=(e<<3)+d|0;break b;case 5:e=D[a+24|0];if((((c|0)>(e|0)?e:c)|0)>0){e=F[a>>2];g=F[e>>2];b=F[a+48>>2]+Zj(F[a+40>>2],F[a+44>>2],b,0)|0;b=g+b|0;h=F[e+4>>2];while(1){if(b>>>0>=h>>>0){break a}e=(f<<3)+d|0;F[e>>2]=F[b>>2];F[e+4>>2]=0;b=b+4|0;f=f+1|0;e=D[a+24|0];if((f|0)<(((c|0)>(e|0)?e:c)|0)){continue}break}}if((c|0)<=(e|0)){break a}c=c-e|0;a=(e<<3)+d|0;break b;case 6:e=D[a+24|0];if((((c|0)>(e|0)?e:c)|0)>0){e=F[a>>2];g=F[e>>2];b=F[a+48>>2]+Zj(F[a+40>>2],F[a+44>>2],b,0)|0;b=g+b|0;h=F[e+4>>2];while(1){if(b>>>0>=h>>>0){break a}g=F[b+4>>2];e=(f<<3)+d|0;F[e>>2]=F[b>>2];F[e+4>>2]=g;b=b+8|0;f=f+1|0;e=D[a+24|0];if((f|0)<(((c|0)>(e|0)?e:c)|0)){continue}break}}if((c|0)<=(e|0)){break a}c=c-e|0;a=(e<<3)+d|0;break b;case 7:e=D[a+24|0];if((((c|0)>(e|0)?e:c)|0)>0){e=F[a>>2];g=F[e>>2];b=F[a+48>>2]+Zj(F[a+40>>2],F[a+44>>2],b,0)|0;b=g+b|0;h=F[e+4>>2];while(1){if(b>>>0>=h>>>0){break a}e=F[b>>2];g=F[b+4>>2];if((g|0)<0){break a}k=(f<<3)+d|0;F[k>>2]=e;F[k+4>>2]=g;b=b+8|0;f=f+1|0;e=D[a+24|0];if((f|0)<(((c|0)>(e|0)?e:c)|0)){continue}break}}if((c|0)<=(e|0)){break a}c=c-e|0;a=(e<<3)+d|0;break b;case 8:e=D[a+24|0];if((((c|0)>(e|0)?e:c)|0)>0){e=F[a>>2];g=F[e>>2];b=F[a+48>>2]+Zj(F[a+40>>2],F[a+44>>2],b,0)|0;b=g+b|0;k=F[e+4>>2];while(1){if(b>>>0>=k>>>0){break a}i=J[b>>2];if(i>M(0x8000000000000000)|i=M(1)?~~(i>M(0)?M(P(M(R(M(i*M(2.3283064365386963e-10)))),M(4294967296))):M(S(M(M(i-M(~~i>>>0>>>0))*M(2.3283064365386963e-10)))))>>>0:0;h=~~i>>>0;break d}g=-2147483648;h=0}F[e>>2]=h;F[e+4>>2]=g;b=b+4|0;f=f+1|0;e=D[a+24|0];if((f|0)<(((c|0)>(e|0)?e:c)|0)){continue}break}}if((c|0)<=(e|0)){break a}c=c-e|0;a=(e<<3)+d|0;break b;case 9:e=D[a+24|0];if((((c|0)>(e|0)?e:c)|0)>0){e=F[a>>2];g=F[e>>2];b=F[a+48>>2]+Zj(F[a+40>>2],F[a+44>>2],b,0)|0;b=g+b|0;k=F[e+4>>2];while(1){if(b>>>0>=k>>>0){break a}j=K[b>>3];if(j>0x8000000000000000|j<-0x8000000000000000|j!=j){break a}m=N(j);if(m==X){break a}e=(f<<3)+d|0;e:{if(m<0x8000000000000000){g=N(j)>=1?~~(j>0?P(R(j*2.3283064365386963e-10),4294967295):S((j-+(~~j>>>0>>>0))*2.3283064365386963e-10))>>>0:0;h=~~j>>>0;break e}g=-2147483648;h=0}F[e>>2]=h;F[e+4>>2]=g;b=b+8|0;f=f+1|0;e=D[a+24|0];if((f|0)<(((c|0)>(e|0)?e:c)|0)){continue}break}}if((c|0)<=(e|0)){break a}c=c-e|0;a=(e<<3)+d|0;break b;case 10:break c;default:break a}}e=D[a+24|0];if((((c|0)>(e|0)?e:c)|0)>0){e=F[a>>2];g=F[e>>2];b=F[a+48>>2]+Zj(F[a+40>>2],F[a+44>>2],b,0)|0;b=g+b|0;h=F[e+4>>2];while(1){if(b>>>0>=h>>>0){break a}e=(f<<3)+d|0;F[e>>2]=G[b|0];F[e+4>>2]=0;b=b+1|0;f=f+1|0;e=D[a+24|0];if((f|0)<(((c|0)>(e|0)?e:c)|0)){continue}break}}if((c|0)<=(e|0)){break a}c=c-e|0;a=(e<<3)+d|0}Ti(a,0,c<<3)}}function Ve(a,b){var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0;j=fa-16|0;fa=j;a:{b:{c:{d:{if(G[F[a+4>>2]+36|0]<=1){k=-1;c=F[b+20>>2];h=F[b+16>>2];d=h+4|0;c=d>>>0<4?c+1|0:c;f=d;d=F[b+12>>2];if(f>>>0>I[b+8>>2]&(d|0)<=(c|0)|(c|0)>(d|0)){break c}d=h+F[b>>2]|0;l=G[d|0]|G[d+1|0]<<8|(G[d+2|0]<<16|G[d+3|0]<<24);F[j+12>>2]=l;F[b+16>>2]=f;F[b+20>>2]=c;break d}k=-1;if(!Qe(1,j+12|0,b)){break c}l=F[j+12>>2]}e:{f:{g:{h:{i:{if(!l){break i}c=F[a+8>>2];if((F[c+4>>2]-F[c>>2]>>2>>>0)/3>>>0>>0){break c}c=H[F[a+4>>2]+36>>1];if(((c<<8|c>>>8)&65535)>>>0>=258){j:{while(1){if(!Qe(1,j+8|0,b)){break c}c=F[j+8>>2];if(!Qe(1,j+8|0,b)){break c}e=c+e|0;c=F[j+8>>2];if(e>>>0>>0){break c}f=e-c|0;c=F[a+40>>2];k:{if((c|0)!=F[a+44>>2]){F[c+4>>2]=e;F[c>>2]=f;F[a+40>>2]=c+12;l=F[j+12>>2];break k}m=F[a+36>>2];i=c-m|0;h=(i|0)/12|0;d=h+1|0;if(d>>>0>=357913942){break j}c=h<<1;g=h>>>0<178956970?c>>>0>d>>>0?c:d:357913941;if(g){if(g>>>0>=357913942){break b}c=rj(L(g,12))}else{c=0}h=c+L(h,12)|0;F[h+4>>2]=e;F[h>>2]=f;d=h+L((i|0)/-12|0,12)|0;if((i|0)>0){Ri(d,m,i)}F[a+44>>2]=c+L(g,12);F[a+40>>2]=h+12;F[a+36>>2]=d;if(!m){break k}oj(m)}o=o+1|0;if(o>>>0>>0){continue}break}k=0;og(b,0,0);if(l){while(1){e=G[b+36|0];c=H[F[a+4>>2]+36>>1];l:{m:{if(((c<<8|c>>>8)&65535)>>>0<=513){if(!e){break l}o=0;c=F[b+32>>2];n=c>>>3|0;h=F[b+24>>2];e=n+h|0;f=F[b+28>>2];n:{if(e>>>0>=f>>>0){e=c;break n}d=G[e|0];e=c+1|0;F[b+32>>2]=e;n=e>>>3|0;o=d>>>(c&7)&1}if(f>>>0>h+n>>>0){break m}break l}if(!e){break l}o=0;e=F[b+32>>2];c=F[b+24>>2]+(e>>>3|0)|0;if(c>>>0>=I[b+28>>2]){break l}o=G[c|0]>>>(e&7)&1}F[b+32>>2]=e+1}c=F[a+36>>2]+L(k,12)|0;D[c+8|0]=G[c+8|0]&254|o&1;k=k+1|0;if((l|0)!=(k|0)){continue}break}}D[b+36|0]=0;f=F[b+20>>2];e=0;c=F[b+32>>2]+7|0;e=c>>>0<7?1:e;d=c;c=e>>>3|0;e=(e&7)<<29|d>>>3;d=e+F[b+16>>2]|0;c=c+f|0;F[b+16>>2]=d;F[b+20>>2]=d>>>0>>0?c+1|0:c;break i}Ia();V()}while(1){d=F[b+12>>2];c=F[b+20>>2];e=c;p=F[b+16>>2];f=p+4|0;c=f>>>0<4?c+1|0:c;m=F[b+8>>2];i=f;if(m>>>0>>0&(c|0)>=(d|0)|(c|0)>(d|0)){break c}g=F[b>>2];f=g+p|0;h=G[f|0]|G[f+1|0]<<8|(G[f+2|0]<<16|G[f+3|0]<<24);F[b+16>>2]=i;F[b+20>>2]=c;c=e;f=p+8|0;c=f>>>0<8?c+1|0:c;q=f;if(f>>>0>m>>>0&(c|0)>=(d|0)|(c|0)>(d|0)){break c}f=g+i|0;f=G[f|0]|G[f+1|0]<<8|(G[f+2|0]<<16|G[f+3|0]<<24);F[b+16>>2]=q;F[b+20>>2]=c;if(m>>>0<=q>>>0&(c|0)>=(d|0)|(c|0)>(d|0)){break c}d=G[g+q|0];c=p+9|0;e=c>>>0<9?e+1|0:e;F[b+16>>2]=c;F[b+20>>2]=e;n=d&1|n&-2;c=F[a+40>>2];o:{if((c|0)!=F[a+44>>2]){D[c+8|0]=n;F[c+4>>2]=f;F[c>>2]=h;F[a+40>>2]=c+12;l=F[j+12>>2];break o}m=F[a+36>>2];i=c-m|0;g=(i|0)/12|0;e=g+1|0;if(e>>>0>=357913942){break h}c=g<<1;d=g>>>0<178956970?c>>>0>e>>>0?c:e:357913941;if(d){if(d>>>0>=357913942){break b}c=rj(L(d,12))}else{c=0}g=c+L(g,12)|0;D[g+8|0]=n;F[g+4>>2]=f;F[g>>2]=h;e=g+L((i|0)/-12|0,12)|0;if((i|0)>0){Ri(e,m,i)}F[a+44>>2]=c+L(d,12);F[a+40>>2]=g+12;F[a+36>>2]=e;if(!m){break o}oj(m)}o=o+1|0;if(o>>>0>>0){continue}break}}F[j+8>>2]=0;c=H[F[a+4>>2]+36>>1];c=(c<<8|c>>>8)&65535;p:{if(c>>>0<=511){k=-1;c=F[b+20>>2];f=F[b+16>>2];e=f+4|0;c=e>>>0<4?c+1|0:c;d=e;e=F[b+12>>2];if(d>>>0>I[b+8>>2]&(e|0)<=(c|0)|(c|0)>(e|0)){break c}e=f+F[b>>2]|0;e=G[e|0]|G[e+1|0]<<8|(G[e+2|0]<<16|G[e+3|0]<<24);F[b+16>>2]=d;F[b+20>>2]=c;break p}if((c|0)!=512){break e}k=-1;if(!Qe(1,j+8|0,b)){break c}e=F[j+8>>2]}if(!e){break e}c=H[F[a+4>>2]+36>>1];if(((c<<8|c>>>8)&65535)>>>0<258){break f}n=0;l=0;while(1){if(!Qe(1,j+4|0,b)){break c}l=F[j+4>>2]+l|0;c=F[a+52>>2];q:{if((c|0)!=F[a+56>>2]){F[c>>2]=l;F[a+52>>2]=c+4;break q}h=F[a+48>>2];g=c-h|0;d=g>>2;f=d+1|0;if(f>>>0>=1073741824){break g}c=g>>1;f=g>>>0<2147483644?c>>>0>f>>>0?c:f:1073741823;if(f){if(f>>>0>=1073741824){break b}c=rj(f<<2)}else{c=0}d=c+(d<<2)|0;F[d>>2]=l;if((g|0)>0){Ri(c,h,g)}F[a+56>>2]=c+(f<<2);F[a+52>>2]=d+4;F[a+48>>2]=c;if(!h){break q}oj(h)}n=n+1|0;if((n|0)!=(e|0)){continue}break}break e}Ia();V()}Ia();V()}k=0;while(1){c=F[b+20>>2];h=F[b+16>>2];d=h+4|0;c=d>>>0<4?c+1|0:c;f=d;d=F[b+12>>2];if(f>>>0>I[b+8>>2]&(d|0)<=(c|0)|(c|0)>(d|0)){k=-1;break c}d=h+F[b>>2]|0;h=G[d|0]|G[d+1|0]<<8|(G[d+2|0]<<16|G[d+3|0]<<24);F[b+16>>2]=f;F[b+20>>2]=c;c=F[a+52>>2];r:{if((c|0)!=F[a+56>>2]){F[c>>2]=h;F[a+52>>2]=c+4;break r}g=F[a+48>>2];i=c-g|0;d=i>>2;f=d+1|0;if(f>>>0>=1073741824){break a}c=i>>1;f=i>>>0<2147483644?c>>>0>f>>>0?c:f:1073741823;if(f){if(f>>>0>=1073741824){break b}c=rj(f<<2)}else{c=0}d=c+(d<<2)|0;F[d>>2]=h;if((i|0)>0){Ri(c,g,i)}F[a+56>>2]=c+(f<<2);F[a+52>>2]=d+4;F[a+48>>2]=c;if(!g){break r}oj(g)}k=k+1|0;if((k|0)!=(e|0)){continue}break}}k=F[b+16>>2]}fa=j+16|0;return k}Wa();V()}Ia();V()}function Cf(a,b){var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0;a:{b:{c:{d:{e:{if(F[a+92>>2]==F[a+88>>2]){break e}c=F[a+52>>2];f:{if((c|0)!=F[a+56>>2]){F[c>>2]=b;F[a+52>>2]=c+4;break f}d=F[a+48>>2];h=c-d|0;f=h>>2;e=f+1|0;if(e>>>0>=1073741824){break a}c=h>>1;e=h>>>0<2147483644?c>>>0>e>>>0?c:e:1073741823;if(e){if(e>>>0>=1073741824){break d}c=rj(e<<2)}else{c=0}f=c+(f<<2)|0;F[f>>2]=b;if((h|0)>0){Ri(c,d,h)}F[a+56>>2]=c+(e<<2);F[a+52>>2]=f+4;F[a+48>>2]=c;if(!d){break f}oj(d)}F[a+84>>2]=0;f=-1;c=-1;g:{if((b|0)==-1){break g}e=F[a+4>>2];c=b+1|0;c=(c>>>0)%3|0?c:b-2|0;if((c|0)!=-1){f=F[F[e>>2]+(c<<2)>>2]}h:{if((b>>>0)%3|0){d=b-1|0;break h}d=b+2|0;c=-1;if((d|0)==-1){break g}}c=F[F[e>>2]+(d<<2)>>2]}i=c>>>3&536870908;e=F[a+36>>2];g=e+(f>>>3&536870908)|0;h=F[g>>2];d=1<>2]=d|h;g=a+8|0;if((b|0)!=-1){e=b+1|0;d=(e>>>0)%3|0?e:b-2|0}else{d=-1}Df(g,f,d);e=F[a+36>>2]}d=e+i|0;e=F[d>>2];f=1<>2]=e|f;d=a+8|0;f=-1;i:{if((b|0)==-1){break i}f=b-1|0;if((b>>>0)%3|0){break i}f=b+2|0}Df(d,c,f)}f=-1;f=(b|0)!=-1?F[F[F[a+4>>2]>>2]+(b<<2)>>2]:f;d=F[a+36>>2]+(f>>>3&536870908)|0;e=F[d>>2];c=1<>2]=c|e;Df(a+8|0,f,b)}d=F[a+84>>2];if((d|0)>2){break e}while(1){f=L(d,12)+a|0;b=F[f+52>>2];if((b|0)==F[f+48>>2]){d=d+1|0;if((d|0)!=3){continue}break e}c=b-4|0;b=F[c>>2];F[f+52>>2]=c;F[a+84>>2]=d;if((b|0)==-1){break e}f=F[a+24>>2];c=(b>>>0)/3|0;j:{if(F[f+(c>>>3&268435452)>>2]>>>c&1){break j}k:{while(1){i=(b>>>0)/3|0;c=(i>>>3&268435452)+f|0;F[c>>2]=F[c>>2]|1<>2]>>2]+(b<<2)>>2]:f;d=F[a+36>>2]+(f>>>3&536870908)|0;e=F[d>>2];c=1<>2]=c|e;h=F[(F[F[a+16>>2]+96>>2]+L(i,12)|0)+((b>>>0)%3<<2)>>2];k=F[F[a+20>>2]+4>>2];c=F[k+4>>2];t:{if((c|0)!=F[k+8>>2]){F[c>>2]=h;F[k+4>>2]=c+4;break t}g=F[k>>2];j=c-g|0;e=j>>2;d=e+1|0;if(d>>>0>=1073741824){break s}c=j>>1;d=j>>>0<2147483644?c>>>0>d>>>0?c:d:1073741823;if(d){if(d>>>0>=1073741824){break d}c=rj(d<<2)}else{c=0}e=c+(e<<2)|0;F[e>>2]=h;if((j|0)>0){Ri(c,g,j)}F[k+8>>2]=c+(d<<2);F[k+4>>2]=e+4;F[k>>2]=c;if(!g){break t}oj(g)}j=F[a+12>>2];c=F[j+4>>2];u:{if((c|0)!=F[j+8>>2]){F[c>>2]=b;F[j+4>>2]=c+4;break u}h=F[j>>2];g=c-h|0;e=g>>2;d=e+1|0;if(d>>>0>=1073741824){break r}c=g>>1;d=g>>>0<2147483644?c>>>0>d>>>0?c:d:1073741823;if(d){if(d>>>0>=1073741824){break d}c=rj(d<<2)}else{c=0}e=c+(e<<2)|0;F[e>>2]=b;if((g|0)>0){Ri(c,h,g)}F[j+8>>2]=c+(d<<2);F[j+4>>2]=e+4;F[j>>2]=c;if(!h){break u}oj(h)}c=F[a+12>>2];F[F[c+12>>2]+(f<<2)>>2]=F[c+24>>2];F[c+24>>2]=F[c+24>>2]+1}if((b|0)==-1){break k}g=F[a+4>>2];f=-1;c=b+1|0;c=(c>>>0)%3|0?c:b-2|0;if((c|0)!=-1){f=F[F[g+12>>2]+(c<<2)>>2]}v:{w:{if((L(i,3)|0)!=(b|0)){e=b-1|0;break w}e=b+2|0;b=-1;if((e|0)==-1){break v}}b=F[F[g+12>>2]+(e<<2)>>2]}h=(b|0)==-1;e=(b>>>0)/3|0;if((f|0)!=-1){c=(f>>>0)/3|0;c=F[F[a+24>>2]+(c>>>3&268435452)>>2]&1<>2]+(c>>>3&536870908)>>2]>>>c&1){break x}e=0;c=F[F[g>>2]+(b<<2)>>2];if(!(F[F[a+36>>2]+(c>>>3&536870908)>>2]>>>c&1)){c=F[a+88>>2]+(c<<2)|0;e=F[c>>2];F[c>>2]=e+1;e=(e|0)<=0?2:1}if(F[a+84>>2]>=(e|0)?d:0){break m}k=L(e,12)+a|0;c=F[k+52>>2];y:{if((c|0)!=F[k+56>>2]){F[c>>2]=b;F[k+52>>2]=c+4;break y}i=F[k+48>>2];j=c-i|0;h=j>>2;g=h+1|0;if(g>>>0>=1073741824){break c}c=j>>1;g=j>>>0<2147483644?c>>>0>g>>>0?c:g:1073741823;if(g){if(g>>>0>=1073741824){break d}c=rj(g<<2)}else{c=0}h=c+(h<<2)|0;F[h>>2]=b;if((j|0)>0){Ri(c,i,j)}F[k+48>>2]=c;F[k+52>>2]=h+4;F[k+56>>2]=c+(g<<2);if(!i){break y}oj(i)}if(F[a+84>>2]<=(e|0)){break x}F[a+84>>2]=e}if(d){break k}b=-1;if((f|0)==-1){break n}}b=F[F[F[a+4>>2]>>2]+(f<<2)>>2]}e=0;if(!(F[F[a+36>>2]+(b>>>3&536870908)>>2]>>>b&1)){b=F[a+88>>2]+(b<<2)|0;c=F[b>>2];F[b>>2]=c+1;e=(c|0)<=0?2:1}if(F[a+84>>2]<(e|0)){break l}b=f}f=F[a+24>>2];continue}break}i=L(e,12)+a|0;b=F[i+52>>2];z:{if((b|0)!=F[i+56>>2]){F[b>>2]=f;F[i+52>>2]=b+4;break z}h=F[i+48>>2];g=b-h|0;c=g>>2;d=c+1|0;if(d>>>0>=1073741824){break b}b=g>>1;d=g>>>0<2147483644?b>>>0>d>>>0?b:d:1073741823;if(d){if(d>>>0>=1073741824){break d}b=rj(d<<2)}else{b=0}c=b+(c<<2)|0;F[c>>2]=f;if((g|0)>0){Ri(b,h,g)}F[i+48>>2]=b;F[i+52>>2]=c+4;F[i+56>>2]=b+(d<<2);if(!h){break z}oj(h)}d=F[a+84>>2];if((d|0)<=(e|0)){break j}F[a+84>>2]=e;d=e;break j}d=F[a+84>>2]}if((d|0)<3){continue}break}}return 1}Wa();V()}Ia();V()}Ia();V()}Ia();V()}function wg(a,b,c,d){var e=0,f=0,g=0,h=0,i=0,j=M(0),k=0,l=M(0),m=0;a:{b:{if(!d){break b}c:{d:{switch(F[a+28>>2]-1|0){case 0:h=1;e=D[a+24|0];if((((c|0)>(e|0)?e:c)|0)>0){e=F[a>>2];f=F[e>>2];b=F[a+48>>2]+Zj(F[a+40>>2],F[a+44>>2],b,0)|0;b=f+b|0;f=F[e+4>>2];while(1){if(b>>>0>=f>>>0){break a}E[(g<<1)+d>>1]=D[b|0];b=b+1|0;g=g+1|0;e=D[a+24|0];if((g|0)<(((c|0)>(e|0)?e:c)|0)){continue}break}}if((c|0)<=(e|0)){break b}c=c-e|0;a=(e<<1)+d|0;break c;case 1:h=1;e=D[a+24|0];if((((c|0)>(e|0)?e:c)|0)>0){e=F[a>>2];f=F[e>>2];b=F[a+48>>2]+Zj(F[a+40>>2],F[a+44>>2],b,0)|0;b=f+b|0;f=F[e+4>>2];while(1){if(b>>>0>=f>>>0){break a}E[(g<<1)+d>>1]=G[b|0];b=b+1|0;g=g+1|0;e=D[a+24|0];if((g|0)<(((c|0)>(e|0)?e:c)|0)){continue}break}}if((c|0)<=(e|0)){break b}c=c-e|0;a=(e<<1)+d|0;break c;case 2:h=1;e=D[a+24|0];if((((c|0)>(e|0)?e:c)|0)>0){e=F[a>>2];f=F[e>>2];b=F[a+48>>2]+Zj(F[a+40>>2],F[a+44>>2],b,0)|0;b=f+b|0;f=F[e+4>>2];while(1){if(b>>>0>=f>>>0){break a}E[(g<<1)+d>>1]=H[b>>1];b=b+2|0;g=g+1|0;e=D[a+24|0];if((g|0)<(((c|0)>(e|0)?e:c)|0)){continue}break}}if((c|0)<=(e|0)){break b}c=c-e|0;a=(e<<1)+d|0;break c;case 3:e=D[a+24|0];if((((c|0)>(e|0)?e:c)|0)>0){e=F[a>>2];f=F[e>>2];b=F[a+48>>2]+Zj(F[a+40>>2],F[a+44>>2],b,0)|0;b=f+b|0;f=F[e+4>>2];while(1){if(b>>>0>=f>>>0){break a}e=E[b>>1];if((e|0)<0){break b}E[(g<<1)+d>>1]=e;b=b+2|0;g=g+1|0;e=D[a+24|0];if((g|0)<(((c|0)>(e|0)?e:c)|0)){continue}break}}h=1;if((c|0)<=(e|0)){break b}c=c-e|0;a=(e<<1)+d|0;break c;case 4:h=1;e=D[a+24|0];if((((c|0)>(e|0)?e:c)|0)>0){e=F[a>>2];f=F[e>>2];b=F[a+48>>2]+Zj(F[a+40>>2],F[a+44>>2],b,0)|0;b=f+b|0;f=F[e+4>>2];while(1){if(b>>>0>=f>>>0){break a}e=F[b>>2];if(e-32768>>>0<4294901760){break a}E[(g<<1)+d>>1]=e;b=b+4|0;g=g+1|0;e=D[a+24|0];if((g|0)<(((c|0)>(e|0)?e:c)|0)){continue}break}}if((c|0)<=(e|0)){break b}c=c-e|0;a=(e<<1)+d|0;break c;case 5:h=1;e=D[a+24|0];if((((c|0)>(e|0)?e:c)|0)>0){e=F[a>>2];f=F[e>>2];b=F[a+48>>2]+Zj(F[a+40>>2],F[a+44>>2],b,0)|0;b=f+b|0;f=F[e+4>>2];while(1){if(b>>>0>=f>>>0){break a}e=F[b>>2];if(e>>>0>32767){break a}E[(g<<1)+d>>1]=e;b=b+4|0;g=g+1|0;e=D[a+24|0];if((g|0)<(((c|0)>(e|0)?e:c)|0)){continue}break}}if((c|0)<=(e|0)){break b}c=c-e|0;a=(e<<1)+d|0;break c;case 6:h=1;e=D[a+24|0];if((((c|0)>(e|0)?e:c)|0)>0){e=F[a>>2];f=F[e>>2];b=F[a+48>>2]+Zj(F[a+40>>2],F[a+44>>2],b,0)|0;b=f+b|0;f=F[e+4>>2];while(1){if(b>>>0>=f>>>0){break a}i=F[b>>2];e=F[b+4>>2]-(i>>>0<32768)|0;if((e|0)==-1&i-32768>>>0<4294901760|(e|0)!=-1){break a}E[(g<<1)+d>>1]=i;b=b+8|0;g=g+1|0;e=D[a+24|0];if((g|0)<(((c|0)>(e|0)?e:c)|0)){continue}break}}if((c|0)<=(e|0)){break b}c=c-e|0;a=(e<<1)+d|0;break c;case 7:h=1;e=D[a+24|0];if((((c|0)>(e|0)?e:c)|0)>0){e=F[a>>2];f=F[e>>2];b=F[a+48>>2]+Zj(F[a+40>>2],F[a+44>>2],b,0)|0;b=f+b|0;f=F[e+4>>2];while(1){if(b>>>0>=f>>>0){break a}e=F[b+4>>2];i=F[b>>2];if(!e&i>>>0>32767|e){break a}E[(g<<1)+d>>1]=i;b=b+8|0;g=g+1|0;e=D[a+24|0];if((g|0)<(((c|0)>(e|0)?e:c)|0)){continue}break}}if((c|0)<=(e|0)){break b}c=c-e|0;a=(e<<1)+d|0;break c;case 8:h=1;e=D[a+24|0];if((((c|0)>(e|0)?e:c)|0)>0){e=F[a>>2];f=F[e>>2];b=F[a+48>>2]+Zj(F[a+40>>2],F[a+44>>2],b,0)|0;b=f+b|0;f=F[e+4>>2];while(1){if(b>>>0>=f>>>0){break a}j=J[b>>2];if(j>M(32767)|j>1]=e;b=b+4|0;g=g+1|0;e=D[a+24|0];if((g|0)<(((c|0)>(e|0)?e:c)|0)){continue}break}}if((c|0)<=(e|0)){break b}c=c-e|0;a=(e<<1)+d|0;break c;case 9:h=1;e=D[a+24|0];if((((c|0)>(e|0)?e:c)|0)>0){e=F[a>>2];f=F[e>>2];b=F[a+48>>2]+Zj(F[a+40>>2],F[a+44>>2],b,0)|0;b=f+b|0;f=F[e+4>>2];while(1){if(b>>>0>=f>>>0){break a}k=K[b>>3];if(k>32767|k<-32768|k!=k){break a}m=N(k);if(m==X){break a}i=(g<<1)+d|0;if(m<2147483648){e=~~k}else{e=-2147483648}E[i>>1]=e;b=b+8|0;g=g+1|0;e=D[a+24|0];if((g|0)<(((c|0)>(e|0)?e:c)|0)){continue}break}}if((c|0)<=(e|0)){break b}c=c-e|0;a=(e<<1)+d|0;break c;case 10:break d;default:break b}}h=1;e=D[a+24|0];if((((c|0)>(e|0)?e:c)|0)>0){e=F[a>>2];f=F[e>>2];b=F[a+48>>2]+Zj(F[a+40>>2],F[a+44>>2],b,0)|0;b=f+b|0;f=F[e+4>>2];while(1){if(b>>>0>=f>>>0){break a}E[(g<<1)+d>>1]=G[b|0];b=b+1|0;g=g+1|0;e=D[a+24|0];if((g|0)<(((c|0)>(e|0)?e:c)|0)){continue}break}}if((c|0)<=(e|0)){break b}c=c-e|0;a=(e<<1)+d|0}Ti(a,0,c<<1)}return h}return 0}function xg(a,b,c,d){var e=0,f=0,g=0,h=0,i=0,j=M(0),k=0;a:{b:{if(!d){break b}c:{d:{switch(F[a+28>>2]-1|0){case 0:e=D[a+24|0];if((((c|0)>(e|0)?e:c)|0)>0){e=F[a>>2];f=F[e>>2];b=F[a+48>>2]+Zj(F[a+40>>2],F[a+44>>2],b,0)|0;b=f+b|0;f=F[e+4>>2];while(1){if(b>>>0>=f>>>0){break a}e=D[b|0];if((e|0)<0){break b}E[(g<<1)+d>>1]=e&255;b=b+1|0;g=g+1|0;e=D[a+24|0];if((g|0)<(((c|0)>(e|0)?e:c)|0)){continue}break}}h=1;if((c|0)<=(e|0)){break b}c=c-e|0;a=(e<<1)+d|0;break c;case 1:h=1;e=D[a+24|0];if((((c|0)>(e|0)?e:c)|0)>0){e=F[a>>2];f=F[e>>2];b=F[a+48>>2]+Zj(F[a+40>>2],F[a+44>>2],b,0)|0;b=f+b|0;f=F[e+4>>2];while(1){if(b>>>0>=f>>>0){break a}E[(g<<1)+d>>1]=G[b|0];b=b+1|0;g=g+1|0;e=D[a+24|0];if((g|0)<(((c|0)>(e|0)?e:c)|0)){continue}break}}if((c|0)<=(e|0)){break b}c=c-e|0;a=(e<<1)+d|0;break c;case 2:e=D[a+24|0];if((((c|0)>(e|0)?e:c)|0)>0){e=F[a>>2];f=F[e>>2];b=F[a+48>>2]+Zj(F[a+40>>2],F[a+44>>2],b,0)|0;b=f+b|0;f=F[e+4>>2];while(1){if(b>>>0>=f>>>0){break a}e=E[b>>1];if((e|0)<0){break b}E[(g<<1)+d>>1]=e;b=b+2|0;g=g+1|0;e=D[a+24|0];if((g|0)<(((c|0)>(e|0)?e:c)|0)){continue}break}}h=1;if((c|0)<=(e|0)){break b}c=c-e|0;a=(e<<1)+d|0;break c;case 3:h=1;e=D[a+24|0];if((((c|0)>(e|0)?e:c)|0)>0){e=F[a>>2];f=F[e>>2];b=F[a+48>>2]+Zj(F[a+40>>2],F[a+44>>2],b,0)|0;b=f+b|0;f=F[e+4>>2];while(1){if(b>>>0>=f>>>0){break a}E[(g<<1)+d>>1]=H[b>>1];b=b+2|0;g=g+1|0;e=D[a+24|0];if((g|0)<(((c|0)>(e|0)?e:c)|0)){continue}break}}if((c|0)<=(e|0)){break b}c=c-e|0;a=(e<<1)+d|0;break c;case 4:h=1;e=D[a+24|0];if((((c|0)>(e|0)?e:c)|0)>0){e=F[a>>2];f=F[e>>2];b=F[a+48>>2]+Zj(F[a+40>>2],F[a+44>>2],b,0)|0;b=f+b|0;f=F[e+4>>2];while(1){if(b>>>0>=f>>>0){break a}e=F[b>>2];if(e>>>0>65535){break a}E[(g<<1)+d>>1]=e;b=b+4|0;g=g+1|0;e=D[a+24|0];if((g|0)<(((c|0)>(e|0)?e:c)|0)){continue}break}}if((c|0)<=(e|0)){break b}c=c-e|0;a=(e<<1)+d|0;break c;case 5:h=1;e=D[a+24|0];if((((c|0)>(e|0)?e:c)|0)>0){e=F[a>>2];f=F[e>>2];b=F[a+48>>2]+Zj(F[a+40>>2],F[a+44>>2],b,0)|0;b=f+b|0;f=F[e+4>>2];while(1){if(b>>>0>=f>>>0){break a}e=F[b>>2];if(e>>>0>65535){break a}E[(g<<1)+d>>1]=e;b=b+4|0;g=g+1|0;e=D[a+24|0];if((g|0)<(((c|0)>(e|0)?e:c)|0)){continue}break}}if((c|0)<=(e|0)){break b}c=c-e|0;a=(e<<1)+d|0;break c;case 6:h=1;e=D[a+24|0];if((((c|0)>(e|0)?e:c)|0)>0){e=F[a>>2];f=F[e>>2];b=F[a+48>>2]+Zj(F[a+40>>2],F[a+44>>2],b,0)|0;b=f+b|0;f=F[e+4>>2];while(1){if(b>>>0>=f>>>0){break a}e=F[b+4>>2];i=F[b>>2];if(!e&i>>>0>65535|e){break a}E[(g<<1)+d>>1]=i;b=b+8|0;g=g+1|0;e=D[a+24|0];if((g|0)<(((c|0)>(e|0)?e:c)|0)){continue}break}}if((c|0)<=(e|0)){break b}c=c-e|0;a=(e<<1)+d|0;break c;case 7:h=1;e=D[a+24|0];if((((c|0)>(e|0)?e:c)|0)>0){e=F[a>>2];f=F[e>>2];b=F[a+48>>2]+Zj(F[a+40>>2],F[a+44>>2],b,0)|0;b=f+b|0;f=F[e+4>>2];while(1){if(b>>>0>=f>>>0){break a}e=F[b+4>>2];i=F[b>>2];if(!e&i>>>0>65535|e){break a}E[(g<<1)+d>>1]=i;b=b+8|0;g=g+1|0;e=D[a+24|0];if((g|0)<(((c|0)>(e|0)?e:c)|0)){continue}break}}if((c|0)<=(e|0)){break b}c=c-e|0;a=(e<<1)+d|0;break c;case 8:h=1;e=D[a+24|0];if((((c|0)>(e|0)?e:c)|0)>0){e=F[a>>2];f=F[e>>2];b=F[a+48>>2]+Zj(F[a+40>>2],F[a+44>>2],b,0)|0;b=f+b|0;f=F[e+4>>2];while(1){if(b>>>0>=f>>>0){break a}j=J[b>>2];if(j>M(65535)|j=M(0)){e=~~j>>>0}else{e=0}E[i>>1]=e;b=b+4|0;g=g+1|0;e=D[a+24|0];if((g|0)<(((c|0)>(e|0)?e:c)|0)){continue}break}}if((c|0)<=(e|0)){break b}c=c-e|0;a=(e<<1)+d|0;break c;case 9:h=1;e=D[a+24|0];if((((c|0)>(e|0)?e:c)|0)>0){e=F[a>>2];f=F[e>>2];b=F[a+48>>2]+Zj(F[a+40>>2],F[a+44>>2],b,0)|0;b=f+b|0;f=F[e+4>>2];while(1){if(b>>>0>=f>>>0){break a}k=K[b>>3];if(k>65535|k<0|(N(k)==X|k!=k)){break a}i=(g<<1)+d|0;if(k<4294967296&k>=0){e=~~k>>>0}else{e=0}E[i>>1]=e;b=b+8|0;g=g+1|0;e=D[a+24|0];if((g|0)<(((c|0)>(e|0)?e:c)|0)){continue}break}}if((c|0)<=(e|0)){break b}c=c-e|0;a=(e<<1)+d|0;break c;case 10:break d;default:break b}}h=1;e=D[a+24|0];if((((c|0)>(e|0)?e:c)|0)>0){e=F[a>>2];f=F[e>>2];b=F[a+48>>2]+Zj(F[a+40>>2],F[a+44>>2],b,0)|0;b=f+b|0;f=F[e+4>>2];while(1){if(b>>>0>=f>>>0){break a}E[(g<<1)+d>>1]=G[b|0];b=b+1|0;g=g+1|0;e=D[a+24|0];if((g|0)<(((c|0)>(e|0)?e:c)|0)){continue}break}}if((c|0)<=(e|0)){break b}c=c-e|0;a=(e<<1)+d|0}Ti(a,0,c<<1)}return h}return 0}function yg(a,b,c,d){var e=0,f=0,g=0,h=0,i=0,j=M(0),k=0,l=M(0),m=0;a:{b:{if(!d){break b}c:{d:{switch(F[a+28>>2]-1|0){case 0:h=1;e=D[a+24|0];if((((c|0)>(e|0)?e:c)|0)>0){e=F[a>>2];f=F[e>>2];b=F[a+48>>2]+Zj(F[a+40>>2],F[a+44>>2],b,0)|0;b=f+b|0;f=F[e+4>>2];while(1){if(b>>>0>=f>>>0){break a}F[(g<<2)+d>>2]=D[b|0];b=b+1|0;g=g+1|0;e=D[a+24|0];if((g|0)<(((c|0)>(e|0)?e:c)|0)){continue}break}}if((c|0)<=(e|0)){break b}c=c-e|0;a=(e<<2)+d|0;break c;case 1:h=1;e=D[a+24|0];if((((c|0)>(e|0)?e:c)|0)>0){e=F[a>>2];f=F[e>>2];b=F[a+48>>2]+Zj(F[a+40>>2],F[a+44>>2],b,0)|0;b=f+b|0;f=F[e+4>>2];while(1){if(b>>>0>=f>>>0){break a}F[(g<<2)+d>>2]=G[b|0];b=b+1|0;g=g+1|0;e=D[a+24|0];if((g|0)<(((c|0)>(e|0)?e:c)|0)){continue}break}}if((c|0)<=(e|0)){break b}c=c-e|0;a=(e<<2)+d|0;break c;case 2:h=1;e=D[a+24|0];if((((c|0)>(e|0)?e:c)|0)>0){e=F[a>>2];f=F[e>>2];b=F[a+48>>2]+Zj(F[a+40>>2],F[a+44>>2],b,0)|0;b=f+b|0;f=F[e+4>>2];while(1){if(b>>>0>=f>>>0){break a}F[(g<<2)+d>>2]=E[b>>1];b=b+2|0;g=g+1|0;e=D[a+24|0];if((g|0)<(((c|0)>(e|0)?e:c)|0)){continue}break}}if((c|0)<=(e|0)){break b}c=c-e|0;a=(e<<2)+d|0;break c;case 3:h=1;e=D[a+24|0];if((((c|0)>(e|0)?e:c)|0)>0){e=F[a>>2];f=F[e>>2];b=F[a+48>>2]+Zj(F[a+40>>2],F[a+44>>2],b,0)|0;b=f+b|0;f=F[e+4>>2];while(1){if(b>>>0>=f>>>0){break a}F[(g<<2)+d>>2]=H[b>>1];b=b+2|0;g=g+1|0;e=D[a+24|0];if((g|0)<(((c|0)>(e|0)?e:c)|0)){continue}break}}if((c|0)<=(e|0)){break b}c=c-e|0;a=(e<<2)+d|0;break c;case 4:h=1;e=D[a+24|0];if((((c|0)>(e|0)?e:c)|0)>0){e=F[a>>2];f=F[e>>2];b=F[a+48>>2]+Zj(F[a+40>>2],F[a+44>>2],b,0)|0;b=f+b|0;f=F[e+4>>2];while(1){if(b>>>0>=f>>>0){break a}F[(g<<2)+d>>2]=F[b>>2];b=b+4|0;g=g+1|0;e=D[a+24|0];if((g|0)<(((c|0)>(e|0)?e:c)|0)){continue}break}}if((c|0)<=(e|0)){break b}c=c-e|0;a=(e<<2)+d|0;break c;case 5:e=D[a+24|0];if((((c|0)>(e|0)?e:c)|0)>0){e=F[a>>2];f=F[e>>2];b=F[a+48>>2]+Zj(F[a+40>>2],F[a+44>>2],b,0)|0;b=f+b|0;f=F[e+4>>2];while(1){if(b>>>0>=f>>>0){break a}e=F[b>>2];if((e|0)<0){break b}F[(g<<2)+d>>2]=e;b=b+4|0;g=g+1|0;e=D[a+24|0];if((g|0)<(((c|0)>(e|0)?e:c)|0)){continue}break}}h=1;if((c|0)<=(e|0)){break b}c=c-e|0;a=(e<<2)+d|0;break c;case 6:h=1;e=D[a+24|0];if((((c|0)>(e|0)?e:c)|0)>0){e=F[a>>2];f=F[e>>2];b=F[a+48>>2]+Zj(F[a+40>>2],F[a+44>>2],b,0)|0;b=f+b|0;f=F[e+4>>2];while(1){if(b>>>0>=f>>>0){break a}e=F[b>>2];if((F[b+4>>2]-(e>>>0<2147483648)|0)!=-1){break a}F[(g<<2)+d>>2]=e;b=b+8|0;g=g+1|0;e=D[a+24|0];if((g|0)<(((c|0)>(e|0)?e:c)|0)){continue}break}}if((c|0)<=(e|0)){break b}c=c-e|0;a=(e<<2)+d|0;break c;case 7:h=1;e=D[a+24|0];if((((c|0)>(e|0)?e:c)|0)>0){e=F[a>>2];f=F[e>>2];b=F[a+48>>2]+Zj(F[a+40>>2],F[a+44>>2],b,0)|0;b=f+b|0;f=F[e+4>>2];while(1){if(b>>>0>=f>>>0){break a}e=F[b+4>>2];i=F[b>>2];if(!e&i>>>0>2147483647|e){break a}F[(g<<2)+d>>2]=i;b=b+8|0;g=g+1|0;e=D[a+24|0];if((g|0)<(((c|0)>(e|0)?e:c)|0)){continue}break}}if((c|0)<=(e|0)){break b}c=c-e|0;a=(e<<2)+d|0;break c;case 8:h=1;e=D[a+24|0];if((((c|0)>(e|0)?e:c)|0)>0){e=F[a>>2];f=F[e>>2];b=F[a+48>>2]+Zj(F[a+40>>2],F[a+44>>2],b,0)|0;b=f+b|0;f=F[e+4>>2];while(1){if(b>>>0>=f>>>0){break a}j=J[b>>2];if(j>M(2147483648)|j>2]=e;b=b+4|0;g=g+1|0;e=D[a+24|0];if((g|0)<(((c|0)>(e|0)?e:c)|0)){continue}break}}if((c|0)<=(e|0)){break b}c=c-e|0;a=(e<<2)+d|0;break c;case 9:h=1;e=D[a+24|0];if((((c|0)>(e|0)?e:c)|0)>0){e=F[a>>2];f=F[e>>2];b=F[a+48>>2]+Zj(F[a+40>>2],F[a+44>>2],b,0)|0;b=f+b|0;f=F[e+4>>2];while(1){if(b>>>0>=f>>>0){break a}k=K[b>>3];if(k>2147483647|k<-2147483648|k!=k){break a}m=N(k);if(m==X){break a}i=(g<<2)+d|0;if(m<2147483648){e=~~k}else{e=-2147483648}F[i>>2]=e;b=b+8|0;g=g+1|0;e=D[a+24|0];if((g|0)<(((c|0)>(e|0)?e:c)|0)){continue}break}}if((c|0)<=(e|0)){break b}c=c-e|0;a=(e<<2)+d|0;break c;case 10:break d;default:break b}}h=1;e=D[a+24|0];if((((c|0)>(e|0)?e:c)|0)>0){e=F[a>>2];f=F[e>>2];b=F[a+48>>2]+Zj(F[a+40>>2],F[a+44>>2],b,0)|0;b=f+b|0;f=F[e+4>>2];while(1){if(b>>>0>=f>>>0){break a}F[(g<<2)+d>>2]=G[b|0];b=b+1|0;g=g+1|0;e=D[a+24|0];if((g|0)<(((c|0)>(e|0)?e:c)|0)){continue}break}}if((c|0)<=(e|0)){break b}c=c-e|0;a=(e<<2)+d|0}Ti(a,0,c<<2)}return h}return 0}function Tf(a){a=a|0;var b=0,c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0;g=fa-32|0;fa=g;d=F[a+32>>2];b=H[a+36>>1];a:{b:{if(((b<<8|b>>>8)&65535)>>>0<=513){c=F[d+12>>2];b=F[d+20>>2];f=b;n=F[d+16>>2];j=n+4|0;b=j>>>0<4?b+1|0:b;h=F[d+8>>2];k=j;if(h>>>0>>0&(b|0)>=(c|0)|(b|0)>(c|0)){break a}e=F[d>>2];j=e+n|0;j=G[j|0]|G[j+1|0]<<8|(G[j+2|0]<<16|G[j+3|0]<<24);F[d+16>>2]=k;F[d+20>>2]=b;b=f;f=n+8|0;b=f>>>0<8?b+1|0:b;if(f>>>0>h>>>0&(b|0)>=(c|0)|(b|0)>(c|0)){break a}c=e+k|0;n=G[c|0]|G[c+1|0]<<8|(G[c+2|0]<<16|G[c+3|0]<<24);F[g+24>>2]=n;F[d+16>>2]=f;F[d+20>>2]=b;break b}if(!Uf(1,g+28|0,d)){break a}if(!Uf(1,g+24|0,F[a+32>>2])){break a}j=F[g+28>>2];n=F[g+24>>2]}if(j>>>0>1431655765){break a}c=F[a+32>>2];b=c;k=F[b+8>>2];f=F[b+16>>2];d=F[b+12>>2];b=F[b+20>>2];h=_j(k-f|0,d-(b+(f>>>0>k>>>0)|0)|0,3,0);if(!ia&j>>>0>h>>>0){break a}h=Zj(j,0,3,0);if(!ia&h>>>0>>0|((b|0)>=(d|0)&f>>>0>=k>>>0|(b|0)>(d|0))){break a}d=G[f+F[c>>2]|0];f=f+1|0;b=f?b:b+1|0;F[c+16>>2]=f;F[c+20>>2]=b;c:{d:{if(!d){f=0;c=fa-32|0;fa=c;F[c+24>>2]=0;F[c+16>>2]=0;F[c+20>>2]=0;e:{f:{b=L(j,3);if(b){if(b>>>0>=1073741824){break f}d=L(j,12);f=rj(d);F[c+16>>2]=f;Ti(f,0,d)}b=oe(b,1,F[a+32>>2],f);g:{h:{if(!(!b|!j)){k=0;d=0;while(1){o=i;h=(d<<2)+f|0;e=F[h>>2];i=e>>>1|0;e=o+(e&1?0-i|0:i)|0;F[c>>2]=e;i=F[h+4>>2];l=i>>>1|0;e=e+(i&1?0-l|0:l)|0;F[c+4>>2]=e;h=F[h+8>>2];i=h>>>1|0;i=e+(h&1?0-i|0:i)|0;F[c+8>>2]=i;Vf(F[a+44>>2]+96|0,c);d=d+3|0;k=k+1|0;if((k|0)!=(j|0)){continue}break}break h}if(!f){break g}}oj(f)}fa=c+32|0;break e}Ia();V()}if(b){break d}break a}if(n>>>0<=255){if(!j){break d}while(1){i:{F[g+16>>2]=0;F[g+8>>2]=0;F[g+12>>2]=0;c=F[a+32>>2];b=c;h=F[b+8>>2];d=F[b+12>>2];f=F[b+20>>2];k=F[b+16>>2];if((d|0)<=(f|0)&h>>>0<=k>>>0|(d|0)<(f|0)){break i}e=F[c>>2];l=G[e+k|0];b=f;i=k+1|0;b=i?b:b+1|0;F[c+16>>2]=i;F[c+20>>2]=b;F[g+8>>2]=l;if((b|0)>=(d|0)&i>>>0>=h>>>0|(b|0)>(d|0)){break i}l=G[e+i|0];b=f;i=k+2|0;b=i>>>0<2?b+1|0:b;F[c+16>>2]=i;F[c+20>>2]=b;F[g+12>>2]=l;if((b|0)>=(d|0)&i>>>0>=h>>>0|(b|0)>(d|0)){break i}d=G[e+i|0];b=f;f=k+3|0;b=f>>>0<3?b+1|0:b;F[c+16>>2]=f;F[c+20>>2]=b;F[g+16>>2]=d;Vf(F[a+44>>2]+96|0,g+8|0);m=m+1|0;if((m|0)!=(j|0)){continue}break d}break}m=0;break a}if(n>>>0<=65535){if(!j){break d}while(1){j:{F[g+16>>2]=0;F[g+8>>2]=0;F[g+12>>2]=0;d=F[a+32>>2];c=F[d+12>>2];k=F[d+8>>2];b=F[d+20>>2];f=b;h=F[d+16>>2];e=h+2|0;b=e>>>0<2?b+1|0:b;if(e>>>0>k>>>0&(b|0)>=(c|0)|(b|0)>(c|0)){break j}i=F[d>>2];l=i+h|0;l=G[l|0]|G[l+1|0]<<8;F[d+16>>2]=e;F[d+20>>2]=b;F[g+8>>2]=l;b=f;l=h+4|0;b=l>>>0<4?b+1|0:b;if(l>>>0>k>>>0&(b|0)>=(c|0)|(b|0)>(c|0)){break j}e=e+i|0;e=G[e|0]|G[e+1|0]<<8;F[d+16>>2]=l;F[d+20>>2]=b;F[g+12>>2]=e;b=f;f=h+6|0;b=f>>>0<6?b+1|0:b;if(f>>>0>k>>>0&(b|0)>=(c|0)|(b|0)>(c|0)){break j}c=i+l|0;c=G[c|0]|G[c+1|0]<<8;F[d+16>>2]=f;F[d+20>>2]=b;F[g+16>>2]=c;Vf(F[a+44>>2]+96|0,g+8|0);m=m+1|0;if((m|0)!=(j|0)){continue}break d}break}m=0;break a}k:{if(n>>>0>2097151){break k}b=H[a+36>>1];if(((b<<8|b>>>8)&65535)>>>0<514){break k}if(!j){break d}while(1){l:{F[g+16>>2]=0;F[g+8>>2]=0;F[g+12>>2]=0;if(!Uf(1,g+4|0,F[a+32>>2])){break l}F[g+8>>2]=F[g+4>>2];if(!Uf(1,g+4|0,F[a+32>>2])){break l}F[g+12>>2]=F[g+4>>2];if(!Uf(1,g+4|0,F[a+32>>2])){break l}F[g+16>>2]=F[g+4>>2];Vf(F[a+44>>2]+96|0,g+8|0);m=m+1|0;if((m|0)!=(j|0)){continue}break d}break}m=0;break a}if(!j){break d}while(1){F[g+16>>2]=0;F[g+8>>2]=0;F[g+12>>2]=0;d=F[a+32>>2];c=F[d+12>>2];k=F[d+8>>2];b=F[d+20>>2];f=b;h=F[d+16>>2];e=h+4|0;b=e>>>0<4?b+1|0:b;i=e;if(e>>>0>k>>>0&(b|0)>=(c|0)|(b|0)>(c|0)){break c}l=F[d>>2];e=l+h|0;e=G[e|0]|G[e+1|0]<<8|(G[e+2|0]<<16|G[e+3|0]<<24);F[d+16>>2]=i;F[d+20>>2]=b;F[g+8>>2]=e;b=f;e=h+8|0;b=e>>>0<8?b+1|0:b;o=e;if(e>>>0>k>>>0&(b|0)>=(c|0)|(b|0)>(c|0)){break c}e=i+l|0;e=G[e|0]|G[e+1|0]<<8|(G[e+2|0]<<16|G[e+3|0]<<24);F[d+16>>2]=o;F[d+20>>2]=b;F[g+12>>2]=e;b=f;f=h+12|0;b=f>>>0<12?b+1|0:b;if(f>>>0>k>>>0&(b|0)>=(c|0)|(b|0)>(c|0)){break c}c=l+o|0;c=G[c|0]|G[c+1|0]<<8|(G[c+2|0]<<16|G[c+3|0]<<24);F[d+16>>2]=f;F[d+20>>2]=b;F[g+16>>2]=c;Vf(F[a+44>>2]+96|0,g+8|0);m=m+1|0;if((m|0)!=(j|0)){continue}break}}F[F[a+4>>2]+80>>2]=n;m=1;break a}m=0}fa=g+32|0;return m|0}function zg(a,b,c,d){var e=0,f=0,g=0,h=0,i=M(0),j=0,k=0;a:{b:{if(!d){break b}c:{d:{switch(F[a+28>>2]-1|0){case 0:h=1;e=D[a+24|0];if((((c|0)>(e|0)?e:c)|0)>0){e=F[a>>2];f=F[e>>2];b=F[a+48>>2]+Zj(F[a+40>>2],F[a+44>>2],b,0)|0;b=f+b|0;f=F[e+4>>2];while(1){if(b>>>0>=f>>>0){break a}F[(g<<2)+d>>2]=D[b|0];b=b+1|0;g=g+1|0;e=D[a+24|0];if((g|0)<(((c|0)>(e|0)?e:c)|0)){continue}break}}if((c|0)<=(e|0)){break b}c=c-e|0;a=(e<<2)+d|0;break c;case 1:h=1;e=D[a+24|0];if((((c|0)>(e|0)?e:c)|0)>0){e=F[a>>2];f=F[e>>2];b=F[a+48>>2]+Zj(F[a+40>>2],F[a+44>>2],b,0)|0;b=f+b|0;f=F[e+4>>2];while(1){if(b>>>0>=f>>>0){break a}F[(g<<2)+d>>2]=G[b|0];b=b+1|0;g=g+1|0;e=D[a+24|0];if((g|0)<(((c|0)>(e|0)?e:c)|0)){continue}break}}if((c|0)<=(e|0)){break b}c=c-e|0;a=(e<<2)+d|0;break c;case 2:h=1;e=D[a+24|0];if((((c|0)>(e|0)?e:c)|0)>0){e=F[a>>2];f=F[e>>2];b=F[a+48>>2]+Zj(F[a+40>>2],F[a+44>>2],b,0)|0;b=f+b|0;f=F[e+4>>2];while(1){if(b>>>0>=f>>>0){break a}F[(g<<2)+d>>2]=E[b>>1];b=b+2|0;g=g+1|0;e=D[a+24|0];if((g|0)<(((c|0)>(e|0)?e:c)|0)){continue}break}}if((c|0)<=(e|0)){break b}c=c-e|0;a=(e<<2)+d|0;break c;case 3:h=1;e=D[a+24|0];if((((c|0)>(e|0)?e:c)|0)>0){e=F[a>>2];f=F[e>>2];b=F[a+48>>2]+Zj(F[a+40>>2],F[a+44>>2],b,0)|0;b=f+b|0;f=F[e+4>>2];while(1){if(b>>>0>=f>>>0){break a}F[(g<<2)+d>>2]=H[b>>1];b=b+2|0;g=g+1|0;e=D[a+24|0];if((g|0)<(((c|0)>(e|0)?e:c)|0)){continue}break}}if((c|0)<=(e|0)){break b}c=c-e|0;a=(e<<2)+d|0;break c;case 4:h=1;e=D[a+24|0];if((((c|0)>(e|0)?e:c)|0)>0){e=F[a>>2];f=F[e>>2];b=F[a+48>>2]+Zj(F[a+40>>2],F[a+44>>2],b,0)|0;b=f+b|0;f=F[e+4>>2];while(1){if(b>>>0>=f>>>0){break a}F[(g<<2)+d>>2]=F[b>>2];b=b+4|0;g=g+1|0;e=D[a+24|0];if((g|0)<(((c|0)>(e|0)?e:c)|0)){continue}break}}if((c|0)<=(e|0)){break b}c=c-e|0;a=(e<<2)+d|0;break c;case 5:h=1;e=D[a+24|0];if((((c|0)>(e|0)?e:c)|0)>0){e=F[a>>2];f=F[e>>2];b=F[a+48>>2]+Zj(F[a+40>>2],F[a+44>>2],b,0)|0;b=f+b|0;f=F[e+4>>2];while(1){if(b>>>0>=f>>>0){break a}F[(g<<2)+d>>2]=F[b>>2];b=b+4|0;g=g+1|0;e=D[a+24|0];if((g|0)<(((c|0)>(e|0)?e:c)|0)){continue}break}}if((c|0)<=(e|0)){break b}c=c-e|0;a=(e<<2)+d|0;break c;case 6:h=1;e=D[a+24|0];if((((c|0)>(e|0)?e:c)|0)>0){e=F[a>>2];f=F[e>>2];b=F[a+48>>2]+Zj(F[a+40>>2],F[a+44>>2],b,0)|0;b=f+b|0;f=F[e+4>>2];while(1){if(b>>>0>=f>>>0){break a}e=F[b>>2];if(F[b+4>>2]){break a}F[(g<<2)+d>>2]=e;b=b+8|0;g=g+1|0;e=D[a+24|0];if((g|0)<(((c|0)>(e|0)?e:c)|0)){continue}break}}if((c|0)<=(e|0)){break b}c=c-e|0;a=(e<<2)+d|0;break c;case 7:h=1;e=D[a+24|0];if((((c|0)>(e|0)?e:c)|0)>0){e=F[a>>2];f=F[e>>2];b=F[a+48>>2]+Zj(F[a+40>>2],F[a+44>>2],b,0)|0;b=f+b|0;f=F[e+4>>2];while(1){if(b>>>0>=f>>>0){break a}e=F[b>>2];if(F[b+4>>2]){break a}F[(g<<2)+d>>2]=e;b=b+8|0;g=g+1|0;e=D[a+24|0];if((g|0)<(((c|0)>(e|0)?e:c)|0)){continue}break}}if((c|0)<=(e|0)){break b}c=c-e|0;a=(e<<2)+d|0;break c;case 8:h=1;e=D[a+24|0];if((((c|0)>(e|0)?e:c)|0)>0){e=F[a>>2];f=F[e>>2];b=F[a+48>>2]+Zj(F[a+40>>2],F[a+44>>2],b,0)|0;b=f+b|0;f=F[e+4>>2];while(1){if(b>>>0>=f>>>0){break a}i=J[b>>2];if(i>M(4294967296)|i=M(0)){e=~~i>>>0}else{e=0}F[k>>2]=e;b=b+4|0;g=g+1|0;e=D[a+24|0];if((g|0)<(((c|0)>(e|0)?e:c)|0)){continue}break}}if((c|0)<=(e|0)){break b}c=c-e|0;a=(e<<2)+d|0;break c;case 9:h=1;e=D[a+24|0];if((((c|0)>(e|0)?e:c)|0)>0){e=F[a>>2];f=F[e>>2];b=F[a+48>>2]+Zj(F[a+40>>2],F[a+44>>2],b,0)|0;b=f+b|0;f=F[e+4>>2];while(1){if(b>>>0>=f>>>0){break a}j=K[b>>3];if(j>4294967295|j<0|(N(j)==X|j!=j)){break a}k=(g<<2)+d|0;if(j<4294967296&j>=0){e=~~j>>>0}else{e=0}F[k>>2]=e;b=b+8|0;g=g+1|0;e=D[a+24|0];if((g|0)<(((c|0)>(e|0)?e:c)|0)){continue}break}}if((c|0)<=(e|0)){break b}c=c-e|0;a=(e<<2)+d|0;break c;case 10:break d;default:break b}}h=1;e=D[a+24|0];if((((c|0)>(e|0)?e:c)|0)>0){e=F[a>>2];f=F[e>>2];b=F[a+48>>2]+Zj(F[a+40>>2],F[a+44>>2],b,0)|0;b=f+b|0;f=F[e+4>>2];while(1){if(b>>>0>=f>>>0){break a}F[(g<<2)+d>>2]=G[b|0];b=b+1|0;g=g+1|0;e=D[a+24|0];if((g|0)<(((c|0)>(e|0)?e:c)|0)){continue}break}}if((c|0)<=(e|0)){break b}c=c-e|0;a=(e<<2)+d|0}Ti(a,0,c<<2)}return h}return 0}function re(a,b,c){var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0;g=fa+-64|0;fa=g;F[g+56>>2]=0;F[g+48>>2]=0;F[g+52>>2]=0;F[g+40>>2]=0;F[g+44>>2]=0;F[g+32>>2]=0;F[g+36>>2]=0;F[g+24>>2]=0;F[g+28>>2]=0;F[g+16>>2]=0;F[g+20>>2]=0;F[g+8>>2]=0;F[g+12>>2]=0;i=g+8|0;d=H[b+38>>1];a:{b:{if(!d){break b}c:{if(d>>>0<=511){e=F[b+12>>2];d=F[b+20>>2];f=F[b+16>>2];h=f+4|0;d=h>>>0<4?d+1|0:d;if(h>>>0>I[b+8>>2]&(d|0)>=(e|0)|(d|0)>(e|0)){break b}d=f+F[b>>2]|0;j=G[d|0]|G[d+1|0]<<8|(G[d+2|0]<<16|G[d+3|0]<<24);F[i+12>>2]=j;d=F[b+20>>2];e=F[b+16>>2]+4|0;d=e>>>0<4?d+1|0:d;F[b+16>>2]=e;F[b+20>>2]=d;break c}if(!se(1,i+12|0,b)){break b}e=F[b+16>>2];d=F[b+20>>2];j=F[i+12>>2]}f=F[b+8>>2];h=f-e|0;d=F[b+12>>2]-((e>>>0>f>>>0)+d|0)|0;if(h>>>0>>6>>>0&(d|0)<=0|(d|0)<0){break b}e=F[i>>2];d=F[i+4>>2]-e>>2;d:{if(d>>>0>>0){La(i,j-d|0);j=F[i+12>>2];break d}if(d>>>0<=j>>>0){break d}F[i+4>>2]=e+(j<<2)}k=1;if(!j){break a}e=F[b+16>>2];d=F[b+20>>2];r=F[i>>2];s=F[b+8>>2];p=F[b+12>>2];h=0;while(1){k=0;if((d|0)>=(p|0)&e>>>0>=s>>>0|(d|0)>(p|0)){break a}k=F[b>>2];n=G[k+e|0];e=e+1|0;d=e?d:d+1|0;F[b+16>>2]=e;F[b+20>>2]=d;f=n>>>2|0;m=0;e:{f:{g:{h:{t=n&3;switch(t|0){case 0:break f;case 3:break h;default:break g}}f=f+h|0;k=0;if(f>>>0>=j>>>0){break a}Ti(r+(h<<2)|0,0,(n&252)+4|0);h=f;break e}while(1){if((d|0)>=(p|0)&e>>>0>=s>>>0|(d|0)>(p|0)){break b}j=G[e+k|0];e=e+1|0;d=e?d:d+1|0;F[b+16>>2]=e;F[b+20>>2]=d;f=j<<(m<<3|6)|f;m=m+1|0;if((t|0)!=(m|0)){continue}break}}F[r+(h<<2)>>2]=f}j=F[i+12>>2];h=h+1|0;if(j>>>0>h>>>0){continue}break}d=i+16|0;p=F[i>>2];f=F[i+16>>2];e=F[i+20>>2]-f|0;i:{if(e>>>0<=4194303){La(d,1048576-(e>>>2|0)|0);break i}if((e|0)==4194304){break i}F[i+20>>2]=f+4194304}e=i+28|0;h=F[e>>2];f=F[i+32>>2]-h>>3;j:{if(f>>>0>>0){te(e,j-f|0);h=F[e>>2];break j}if(f>>>0>j>>>0){F[i+32>>2]=(j<<3)+h}if(!j){break b}}i=F[d>>2];d=0;k=0;while(1){e=p+(d<<2)|0;m=F[e>>2];n=(d<<3)+h|0;f=k;F[n+4>>2]=f;F[n>>2]=m;e=F[e>>2];k=e+f|0;if(k>>>0>1048576){break b}k:{if(f>>>0>=k>>>0){break k}m=0;n=e&7;if(n){while(1){F[i+(f<<2)>>2]=d;f=f+1|0;m=m+1|0;if((n|0)!=(m|0)){continue}break}}if(e-1>>>0<=6){break k}while(1){e=i+(f<<2)|0;F[e>>2]=d;F[e+28>>2]=d;F[e+24>>2]=d;F[e+20>>2]=d;F[e+16>>2]=d;F[e+12>>2]=d;F[e+8>>2]=d;F[e+4>>2]=d;f=f+8|0;if((k|0)!=(f|0)){continue}break}}d=d+1|0;if((j|0)!=(d|0)){continue}break}l=(k|0)==1048576}k=l}l:{if(!k|(F[g+20>>2]?0:a)){break l}k=0;i=fa-16|0;fa=i;m:{n:{if(H[b+38>>1]<=511){f=F[b+12>>2];j=f;d=F[b+20>>2];l=F[b+16>>2];e=l+8|0;d=e>>>0<8?d+1|0:d;h=F[b+8>>2];if(h>>>0>>0&(d|0)>=(f|0)|(d|0)>(f|0)){break m}l=l+F[b>>2]|0;f=G[l|0]|G[l+1|0]<<8|(G[l+2|0]<<16|G[l+3|0]<<24);l=G[l+4|0]|G[l+5|0]<<8|(G[l+6|0]<<16|G[l+7|0]<<24);F[b+16>>2]=e;F[b+20>>2]=d;break n}if(!ue(1,i+8|0,b)){break m}e=F[b+16>>2];d=F[b+20>>2];h=F[b+8>>2];j=F[b+12>>2];f=F[i+8>>2];l=F[i+12>>2]}m=h-e|0;h=j-((e>>>0>h>>>0)+d|0)|0;if((h|0)==(l|0)&f>>>0>m>>>0|h>>>0>>0){break m}d=d+l|0;h=e+f|0;d=h>>>0>>0?d+1|0:d;F[b+16>>2]=h;F[b+20>>2]=d;if((f|0)<=0){break m}b=e+F[b>>2]|0;F[g+48>>2]=b;d=f-1|0;e=d+b|0;h=G[e|0];o:{if(h>>>0<=63){F[g+52>>2]=d;b=G[e|0]&63;break o}p:{switch((h>>>6|0)-1|0){case 0:if(f>>>0<2){break m}F[g+52>>2]=f-2;b=(b+f|0)-2|0;b=G[b+1|0]<<8&16128|G[b|0];break o;case 1:if(f>>>0<3){break m}F[g+52>>2]=f-3;b=(b+f|0)-3|0;b=G[b+1|0]<<8|G[b+2|0]<<16&4128768|G[b|0];break o;default:break p}}F[g+52>>2]=f-4;b=(b+f|0)-4|0;b=G[b+2|0]<<16|G[b+3|0]<<24&1056964608|G[b+1|0]<<8|G[b|0]}F[g+56>>2]=b+4194304;k=b>>>0<1069547520}fa=i+16|0;if(!k){break l}if(!a){o=1;break l}b=F[g+56>>2];d=F[g+36>>2];e=F[g+48>>2];f=F[g+24>>2];while(1){q:{if(b>>>0>4194303){break q}o=F[g+52>>2];while(1){if((o|0)<=0){break q}o=o-1|0;F[g+52>>2]=o;b=G[e+o|0]|b<<8;F[g+56>>2]=b;if(b>>>0<4194304){continue}break}}h=b&1048575;k=F[f+(h<<2)>>2];l=d+(k<<3)|0;b=(L(F[l>>2],b>>>20|0)+h|0)-F[l+4>>2]|0;F[g+56>>2]=b;F[(q<<2)+c>>2]=k;o=1;q=q+1|0;if((q|0)!=(a|0)){continue}break}}a=F[g+36>>2];if(a){F[g+40>>2]=a;oj(a)}a=F[g+24>>2];if(a){F[g+28>>2]=a;oj(a)}a=F[g+8>>2];if(a){F[g+12>>2]=a;oj(a)}fa=g- -64|0;return o}function dd(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0;f=fa-96|0;fa=f;e=F[a+16>>2];D[f+92|0]=1;F[f+88>>2]=b;F[f+84>>2]=b;F[f+80>>2]=e;k=F[a+20>>2];d=F[k>>2];a:{b:{e=F[F[e+28>>2]+(b<<2)>>2];if(e>>>0>2]-d>>2>>>0){d=F[F[a+8>>2]+(F[d+(e<<2)>>2]<<2)>>2];e=F[a+4>>2];if(!G[e+84|0]){d=F[F[e+68>>2]+(d<<2)>>2]}F[f+72>>2]=0;F[f+76>>2]=0;k=f- -64|0;F[k>>2]=0;F[k+4>>2]=0;F[f+56>>2]=0;F[f+60>>2]=0;Xc(e,d,D[e+24|0],f+56|0);if((b|0)!=-1){e=b+1|0;k=(e>>>0)%3|0?e:b-2|0;i=((b>>>0)%3|0?-1:2)+b|0;while(1){d=k;e=i;c:{if(!F[a+28>>2]){break c}e=b+1|0;d=(e>>>0)%3|0?e:b-2|0;e=b-1|0;if((b>>>0)%3|0){break c}e=b+2|0}h=F[a+20>>2];b=F[h>>2];d=F[F[F[a+16>>2]+28>>2]+(d<<2)>>2];if(d>>>0>=F[h+4>>2]-b>>2>>>0){break b}d=F[F[a+8>>2]+(F[b+(d<<2)>>2]<<2)>>2];b=F[a+4>>2];if(!G[b+84|0]){d=F[F[b+68>>2]+(d<<2)>>2]}F[f+48>>2]=0;F[f+52>>2]=0;F[f+40>>2]=0;F[f+44>>2]=0;F[f+32>>2]=0;F[f+36>>2]=0;Xc(b,d,D[b+24|0],f+32|0);d=F[a+20>>2];b=F[d>>2];e=F[F[F[a+16>>2]+28>>2]+(e<<2)>>2];if(e>>>0>=F[d+4>>2]-b>>2>>>0){break a}d=F[F[a+8>>2]+(F[b+(e<<2)>>2]<<2)>>2];b=F[a+4>>2];if(!G[b+84|0]){d=F[F[b+68>>2]+(d<<2)>>2]}F[f+24>>2]=0;F[f+28>>2]=0;F[f+16>>2]=0;F[f+20>>2]=0;F[f+8>>2]=0;F[f+12>>2]=0;Xc(b,d,D[b+24|0],f+8|0);e=F[f+8>>2];b=F[f+56>>2];d=e-b|0;h=F[f+60>>2];j=F[f+12>>2]-(h+(b>>>0>e>>>0)|0)|0;p=F[f+40>>2];e=F[f+64>>2];s=p-e|0;t=F[f+68>>2];p=F[f+44>>2]-(t+(e>>>0>p>>>0)|0)|0;u=Zj(d,j,s,p);v=n-u|0;n=g-(ia+(n>>>0>>0)|0)|0;o=v;g=F[f+16>>2];u=g-e|0;t=F[f+20>>2]-((e>>>0>g>>>0)+t|0)|0;g=F[f+32>>2];v=g-b|0;h=F[f+36>>2]-((b>>>0>g>>>0)+h|0)|0;e=Zj(u,t,v,h);b=o+e|0;g=ia+n|0;g=b>>>0>>0?g+1|0:g;n=b;e=l;o=d;x=j;b=F[f+48>>2];l=F[f+72>>2];d=b-l|0;j=F[f+76>>2];w=F[f+52>>2]-(j+(b>>>0>>0)|0)|0;o=Zj(o,x,d,w);e=e+o|0;b=ia+m|0;b=e>>>0>>0?b+1|0:b;m=F[f+24>>2];o=m-l|0;j=F[f+28>>2]-((l>>>0>m>>>0)+j|0)|0;m=Zj(o,j,v,h);l=e-m|0;m=b-(ia+(e>>>0>>0)|0)|0;b=Zj(u,t,d,w);e=q-b|0;b=r-(ia+(b>>>0>q>>>0)|0)|0;r=Zj(o,j,s,p);q=r+e|0;b=ia+b|0;b=q>>>0>>0?b+1|0:b;r=b;b=F[f+88>>2];e=F[f+80>>2];d:{if(G[f+92|0]){e:{f:{g:{h:{if((b|0)==-1){break h}d=b+1|0;b=(d>>>0)%3|0?d:b-2|0;if((b|0)==-1|F[F[e>>2]+(b>>>3&536870908)>>2]>>>b&1){break h}b=F[F[F[e+64>>2]+12>>2]+(b<<2)>>2];if((b|0)!=-1){break g}}F[f+88>>2]=-1;break f}d=b+1|0;b=(d>>>0)%3|0?d:b-2|0;F[f+88>>2]=b;if((b|0)!=-1){break e}}b=F[f+84>>2];d=-1;i:{if((b|0)==-1){break i}j:{if((b>>>0)%3|0){b=b-1|0;break j}b=b+2|0;d=-1;if((b|0)==-1){break i}}d=-1;if(F[F[e>>2]+(b>>>3&536870908)>>2]>>>b&1){break i}b=F[F[F[e+64>>2]+12>>2]+(b<<2)>>2];d=-1;if((b|0)==-1){break i}d=b-1|0;if((b>>>0)%3|0){break i}d=b+2|0}D[f+92|0]=0;F[f+88>>2]=d;break d}if((b|0)!=F[f+84>>2]){break d}F[f+88>>2]=-1;break d}d=-1;k:{if((b|0)==-1){break k}l:{if((b>>>0)%3|0){b=b-1|0;break l}b=b+2|0;d=-1;if((b|0)==-1){break k}}d=-1;if(F[F[e>>2]+(b>>>3&536870908)>>2]>>>b&1){break k}b=F[F[F[e+64>>2]+12>>2]+(b<<2)>>2];d=-1;if((b|0)==-1){break k}d=b-1|0;if((b>>>0)%3|0){break k}d=b+2|0}F[f+88>>2]=d}b=F[f+88>>2];if((b|0)!=-1){continue}break}}b=r>>31;e=b^q;j=e-b|0;h=(b^r)-((b>>>0>e>>>0)+b|0)|0;p=-1;e=2147483647;b=m>>31;k=b^l;d=(b^m)-((b>>>0>k>>>0)+b|0)|0;b=k-b|0;s=b^-1;i=d^2147483647;k=g;m:{n:{if(!F[a+28>>2]){if((i|0)==(h|0)&j>>>0>s>>>0|i>>>0>>0){break m}i=g;a=b;e=b+j|0;b=d+h|0;b=a>>>0>e>>>0?b+1|0:b;a=g>>31;d=a;h=d^n;j=h-d|0;g=e+j|0;d=(d^i)-((d>>>0>h>>>0)+d|0)|0;a=g;g=d^2147483647;g=(g|0)==(b|0)&(j^-1)>>>0>>0|b>>>0>g>>>0;a=g?-1:a;if(!(g&0)&(a|0)<=536870912|(a|0)<536870912){break m}b=0;a=a>>>29|0;break n}o:{if((i|0)==(h|0)&j>>>0>s>>>0|i>>>0>>0){break o}a=b;i=b+j|0;b=d+h|0;b=a>>>0>i>>>0?b+1|0:b;a=i;h=g;d=g>>31;g=d;i=d^n;d=(d^h)-(d+(d>>>0>i>>>0)|0)|0;g=i-g|0;i=d^2147483647;if((i|0)==(b|0)&(g^-1)>>>0>>0|b>>>0>i>>>0){break o}b=b+d|0;a=a+g|0;b=a>>>0>>0?b+1|0:b;p=a;e=b;if(!b&a>>>0<536870913){break m}}b=e>>>29|0;a=(e&536870911)<<3|p>>>29}n=_j(n,k,a,b);l=_j(l,m,a,b);q=_j(q,r,a,b)}F[c+8>>2]=n;F[c+4>>2]=l;F[c>>2]=q;fa=f+96|0;return}yc();V()}yc();V()}yc();V()}function tg(a,b,c,d){var e=0,f=0,g=0,h=0,i=M(0),j=0,k=M(0),l=0;a:{b:{c:{if(!d){break c}d:{switch(F[a+28>>2]-1|0){case 0:g=1;e=D[a+24|0];if((((c|0)>(e|0)?e:c)|0)>0){e=F[F[a>>2]>>2];b=F[a+48>>2]+Zj(F[a+40>>2],F[a+44>>2],b,0)|0;b=e+b|0;while(1){if(I[F[a>>2]+4>>2]<=b>>>0){break b}D[d+f|0]=G[b|0];b=b+1|0;f=f+1|0;e=D[a+24|0];if((f|0)<(((c|0)>(e|0)?e:c)|0)){continue}break}}if((c|0)<=(e|0)){break c}break a;case 1:g=D[a+24|0];if((((c|0)>(g|0)?g:c)|0)>0){e=F[F[a>>2]>>2];b=F[a+48>>2]+Zj(F[a+40>>2],F[a+44>>2],b,0)|0;b=e+b|0;while(1){if(I[F[a>>2]+4>>2]<=b>>>0){break b}g=0;e=D[b|0];if((e|0)<0){break c}D[d+f|0]=e;b=b+1|0;f=f+1|0;g=D[a+24|0];if((f|0)<(((c|0)>(g|0)?g:c)|0)){continue}break}}if((c|0)<=(g|0)){return 1}Ti(d+g|0,0,c-g|0);return 1;case 2:g=1;e=D[a+24|0];if((((c|0)>(e|0)?e:c)|0)>0){e=F[F[a>>2]>>2];b=F[a+48>>2]+Zj(F[a+40>>2],F[a+44>>2],b,0)|0;b=e+b|0;while(1){if(I[F[a>>2]+4>>2]<=b>>>0){break b}e=H[b>>1];if((e-128&65535)>>>0<65280){break b}D[d+f|0]=e;b=b+2|0;f=f+1|0;e=D[a+24|0];if((f|0)<(((c|0)>(e|0)?e:c)|0)){continue}break}}if((c|0)<=(e|0)){break c}break a;case 3:g=1;e=D[a+24|0];if((((c|0)>(e|0)?e:c)|0)>0){e=F[F[a>>2]>>2];b=F[a+48>>2]+Zj(F[a+40>>2],F[a+44>>2],b,0)|0;b=e+b|0;while(1){if(I[F[a>>2]+4>>2]<=b>>>0){break b}e=H[b>>1];if(e>>>0>127){break b}D[d+f|0]=e;b=b+2|0;f=f+1|0;e=D[a+24|0];if((f|0)<(((c|0)>(e|0)?e:c)|0)){continue}break}}if((c|0)<=(e|0)){break c}break a;case 4:g=1;e=D[a+24|0];if((((c|0)>(e|0)?e:c)|0)>0){e=F[F[a>>2]>>2];b=F[a+48>>2]+Zj(F[a+40>>2],F[a+44>>2],b,0)|0;b=e+b|0;while(1){if(I[F[a>>2]+4>>2]<=b>>>0){break b}e=F[b>>2];if(e-128>>>0<4294967040){break b}D[d+f|0]=e;b=b+4|0;f=f+1|0;e=D[a+24|0];if((f|0)<(((c|0)>(e|0)?e:c)|0)){continue}break}}if((c|0)<=(e|0)){break c}break a;case 5:g=1;e=D[a+24|0];if((((c|0)>(e|0)?e:c)|0)>0){e=F[F[a>>2]>>2];b=F[a+48>>2]+Zj(F[a+40>>2],F[a+44>>2],b,0)|0;b=e+b|0;while(1){if(I[F[a>>2]+4>>2]<=b>>>0){break b}e=F[b>>2];if(e>>>0>127){break b}D[d+f|0]=e;b=b+4|0;f=f+1|0;e=D[a+24|0];if((f|0)<(((c|0)>(e|0)?e:c)|0)){continue}break}}if((c|0)<=(e|0)){break c}break a;case 6:g=1;e=D[a+24|0];if((((c|0)>(e|0)?e:c)|0)>0){e=F[F[a>>2]>>2];b=F[a+48>>2]+Zj(F[a+40>>2],F[a+44>>2],b,0)|0;b=e+b|0;while(1){if(I[F[a>>2]+4>>2]<=b>>>0){break b}h=F[b>>2];e=F[b+4>>2]-(h>>>0<128)|0;if((e|0)==-1&h-128>>>0<4294967040|(e|0)!=-1){break b}D[d+f|0]=h;b=b+8|0;f=f+1|0;e=D[a+24|0];if((f|0)<(((c|0)>(e|0)?e:c)|0)){continue}break}}if((c|0)<=(e|0)){break c}break a;case 7:g=1;e=D[a+24|0];if((((c|0)>(e|0)?e:c)|0)>0){e=F[F[a>>2]>>2];b=F[a+48>>2]+Zj(F[a+40>>2],F[a+44>>2],b,0)|0;b=e+b|0;while(1){if(I[F[a>>2]+4>>2]<=b>>>0){break b}e=F[b+4>>2];h=F[b>>2];if(!e&h>>>0>127|e){break b}D[d+f|0]=h;b=b+8|0;f=f+1|0;e=D[a+24|0];if((f|0)<(((c|0)>(e|0)?e:c)|0)){continue}break}}if((c|0)<=(e|0)){break c}break a;case 8:g=1;e=D[a+24|0];if((((c|0)>(e|0)?e:c)|0)>0){e=F[F[a>>2]>>2];b=F[a+48>>2]+Zj(F[a+40>>2],F[a+44>>2],b,0)|0;b=e+b|0;while(1){if(I[F[a>>2]+4>>2]<=b>>>0){break b}i=J[b>>2];if(i>M(127)|i(e|0)?e:c)|0)){continue}break}}if((c|0)<=(e|0)){break c}break a;case 9:g=1;e=D[a+24|0];if((((c|0)>(e|0)?e:c)|0)>0){e=F[F[a>>2]>>2];b=F[a+48>>2]+Zj(F[a+40>>2],F[a+44>>2],b,0)|0;b=e+b|0;while(1){if(I[F[a>>2]+4>>2]<=b>>>0){break b}j=K[b>>3];if(j>127|j<-128|j!=j){break b}l=N(j);if(l==X){break b}h=d+f|0;if(l<2147483648){e=~~j}else{e=-2147483648}D[h|0]=e;b=b+8|0;f=f+1|0;e=D[a+24|0];if((f|0)<(((c|0)>(e|0)?e:c)|0)){continue}break}}if((c|0)<=(e|0)){break c}break a;case 10:break d;default:break c}}g=1;e=D[a+24|0];if((((c|0)>(e|0)?e:c)|0)>0){e=F[F[a>>2]>>2];b=F[a+48>>2]+Zj(F[a+40>>2],F[a+44>>2],b,0)|0;b=e+b|0;while(1){if(I[F[a>>2]+4>>2]<=b>>>0){break b}D[d+f|0]=G[b|0];b=b+1|0;f=f+1|0;e=D[a+24|0];if((f|0)<(((c|0)>(e|0)?e:c)|0)){continue}break}}if((c|0)<=(e|0)){break c}Ti(d+e|0,0,c-e|0)}return g}return 0}Ti(d+e|0,0,c-e|0);return 1}function Bc(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0;F[a+8>>2]=e;s=a+32|0;g=F[s>>2];f=F[a+36>>2]-g>>2;a:{if(f>>>0>>0){La(s,e-f|0);d=F[a+8>>2];break a}d=e;if(d>>>0>=f>>>0){break a}F[a+36>>2]=g+(e<<2);d=e}f=(e&1073741823)!=(e|0)?-1:e<<2;m=Ti(rj(f),0,f);p=Ti(rj(f),0,f);b:{if((d|0)<=0){break b}i=F[a+32>>2];while(1){d=h<<2;f=F[d+m>>2];g=F[a+16>>2];c:{if((f|0)>(g|0)){F[d+i>>2]=g;break c}d=d+i|0;g=F[a+12>>2];if((g|0)>(f|0)){F[d>>2]=g;break c}F[d>>2]=f}d=F[a+8>>2];h=h+1|0;if((d|0)>(h|0)){continue}break}if((d|0)<=0){break b}f=0;while(1){g=f<<2;d=g+c|0;g=F[b+g>>2]+F[g+i>>2]|0;F[d>>2]=g;d:{if((g|0)>F[a+16>>2]){g=g-F[a+20>>2]|0}else{if((g|0)>=F[a+12>>2]){break d}g=g+F[a+20>>2]|0}F[d>>2]=g}d=F[a+8>>2];f=f+1|0;if((d|0)>(f|0)){continue}break}}f=F[a+56>>2];w=F[f>>2];f=F[f+4>>2]-w|0;if((f|0)>=5){A=F[a+52>>2];r=F[a+48>>2];u=f>>>2|0;B=u>>>0>2?u:2;x=e&-2;y=e&1;C=e&-4;z=e&3;v=e-1|0;D=e<<2;n=1;while(1){e:{f:{g:{h:{if((n|0)!=(u|0)){g=F[(n<<2)+w>>2];t=(e|0)<=0;if(!t){Ti(m,0,D)}if((g|0)==-1){i=L(e,n);break f}E=F[r>>2];l=0;f=g;while(1){i:{if(F[(f>>>3&536870908)+E>>2]>>>f&1){break i}i=F[F[F[r+64>>2]+12>>2]+(f<<2)>>2];if((i|0)==-1){break i}j=F[A>>2];h=F[r+28>>2];o=F[j+(F[h+(i<<2)>>2]<<2)>>2];if((o|0)>=(n|0)){break i}k=i+1|0;k=F[j+(F[h+(((k>>>0)%3|0?k:i-2|0)<<2)>>2]<<2)>>2];if((k|0)>=(n|0)){break i}i=F[j+(F[h+(i+((i>>>0)%3|0?-1:2)<<2)>>2]<<2)>>2];if((i|0)>=(n|0)){break i}j:{if(t){break j}i=L(e,i);j=L(e,k);o=L(e,o);h=0;q=0;if(v){while(1){F[(h<<2)+p>>2]=(F[(h+i<<2)+c>>2]+F[(h+j<<2)+c>>2]|0)-F[(h+o<<2)+c>>2];k=h|1;F[(k<<2)+p>>2]=(F[(i+k<<2)+c>>2]+F[(j+k<<2)+c>>2]|0)-F[(k+o<<2)+c>>2];h=h+2|0;q=q+2|0;if((x|0)!=(q|0)){continue}break}}if(y){F[(h<<2)+p>>2]=(F[(h+i<<2)+c>>2]+F[(h+j<<2)+c>>2]|0)-F[(h+o<<2)+c>>2]}if(t){break j}o=0;h=0;i=0;if(v>>>0>2){while(1){j=h<<2;k=j+m|0;F[k>>2]=F[k>>2]+F[j+p>>2];k=j|4;q=k+m|0;F[q>>2]=F[q>>2]+F[k+p>>2];k=j|8;q=k+m|0;F[q>>2]=F[q>>2]+F[k+p>>2];j=j|12;k=j+m|0;F[k>>2]=F[k>>2]+F[j+p>>2];h=h+4|0;i=i+4|0;if((C|0)!=(i|0)){continue}break}}if(!z){break j}while(1){i=h<<2;j=i+m|0;F[j>>2]=F[j>>2]+F[i+p>>2];h=h+1|0;o=o+1|0;if((z|0)!=(o|0)){continue}break}}l=l+1|0}k:{l:{if((f>>>0)%3|0){h=f-1|0;break l}h=f+2|0;i=-1;if((h|0)==-1){break k}}i=-1;if(F[F[r>>2]+(h>>>3&536870908)>>2]>>>h&1){break k}f=F[F[F[r+64>>2]+12>>2]+(h<<2)>>2];i=-1;if((f|0)==-1){break k}i=f-1|0;if((f>>>0)%3|0){break k}i=f+2|0}f=i;if((g|0)!=(f|0)&(f|0)!=-1){continue}break}i=L(e,n);if(!l){break f}if(t){break g}h=0;f=0;if(!v){break h}while(1){g=h<<2;j=g+m|0;F[j>>2]=F[j>>2]/(l|0);g=(g|4)+m|0;F[g>>2]=F[g>>2]/(l|0);h=h+2|0;f=f+2|0;if((x|0)!=(f|0)){continue}break}break h}yc();V()}if(!y){break g}f=(h<<2)+m|0;F[f>>2]=F[f>>2]/(l|0)}if((d|0)<=0){break e}l=F[s>>2];h=0;while(1){d=h<<2;f=F[d+m>>2];g=F[a+16>>2];m:{if((f|0)>(g|0)){F[d+l>>2]=g;break m}d=d+l|0;g=F[a+12>>2];if((g|0)>(f|0)){F[d>>2]=g;break m}F[d>>2]=f}d=F[a+8>>2];h=h+1|0;if((d|0)>(h|0)){continue}break}f=0;if((d|0)<=0){break e}d=i<<2;i=d+c|0;h=b+d|0;while(1){g=f<<2;d=g+i|0;g=F[h+g>>2]+F[g+l>>2]|0;F[d>>2]=g;n:{if((g|0)>F[a+16>>2]){g=g-F[a+20>>2]|0}else{if((g|0)>=F[a+12>>2]){break n}g=g+F[a+20>>2]|0}F[d>>2]=g}d=F[a+8>>2];f=f+1|0;if((d|0)>(f|0)){continue}break}break e}if((d|0)<=0){break e}g=(L(n-1|0,e)<<2)+c|0;l=F[s>>2];h=0;while(1){d=h<<2;f=F[d+g>>2];j=F[a+16>>2];o:{if((f|0)>(j|0)){F[d+l>>2]=j;break o}d=d+l|0;j=F[a+12>>2];if((j|0)>(f|0)){F[d>>2]=j;break o}F[d>>2]=f}d=F[a+8>>2];h=h+1|0;if((d|0)>(h|0)){continue}break}f=0;if((d|0)<=0){break e}d=i<<2;i=d+c|0;h=b+d|0;while(1){g=f<<2;d=g+i|0;g=F[h+g>>2]+F[g+l>>2]|0;F[d>>2]=g;p:{if((g|0)>F[a+16>>2]){g=g-F[a+20>>2]|0}else{if((g|0)>=F[a+12>>2]){break p}g=g+F[a+20>>2]|0}F[d>>2]=g}d=F[a+8>>2];f=f+1|0;if((d|0)>(f|0)){continue}break}}n=n+1|0;if((B|0)!=(n|0)){continue}break}}oj(p);oj(m);return 1}function ug(a,b,c,d){var e=0,f=0,g=0,h=0,i=M(0),j=0;a:{b:{c:{if(!d){break c}d:{switch(F[a+28>>2]-1|0){case 0:g=D[a+24|0];if((((c|0)>(g|0)?g:c)|0)>0){e=F[F[a>>2]>>2];b=F[a+48>>2]+Zj(F[a+40>>2],F[a+44>>2],b,0)|0;b=e+b|0;while(1){if(I[F[a>>2]+4>>2]<=b>>>0){break b}g=0;e=D[b|0];if((e|0)<0){break c}D[d+f|0]=e;b=b+1|0;f=f+1|0;g=D[a+24|0];if((f|0)<(((c|0)>(g|0)?g:c)|0)){continue}break}}if((c|0)<=(g|0)){return 1}Ti(d+g|0,0,c-g|0);return 1;case 1:g=1;e=D[a+24|0];if((((c|0)>(e|0)?e:c)|0)>0){e=F[F[a>>2]>>2];b=F[a+48>>2]+Zj(F[a+40>>2],F[a+44>>2],b,0)|0;b=e+b|0;while(1){if(I[F[a>>2]+4>>2]<=b>>>0){break b}D[d+f|0]=G[b|0];b=b+1|0;f=f+1|0;e=D[a+24|0];if((f|0)<(((c|0)>(e|0)?e:c)|0)){continue}break}}if((c|0)<=(e|0)){break c}break a;case 2:g=1;e=D[a+24|0];if((((c|0)>(e|0)?e:c)|0)>0){e=F[F[a>>2]>>2];b=F[a+48>>2]+Zj(F[a+40>>2],F[a+44>>2],b,0)|0;b=e+b|0;while(1){if(I[F[a>>2]+4>>2]<=b>>>0){break b}e=H[b>>1];if(e>>>0>255){break b}D[d+f|0]=e;b=b+2|0;f=f+1|0;e=D[a+24|0];if((f|0)<(((c|0)>(e|0)?e:c)|0)){continue}break}}if((c|0)<=(e|0)){break c}break a;case 3:g=1;e=D[a+24|0];if((((c|0)>(e|0)?e:c)|0)>0){e=F[F[a>>2]>>2];b=F[a+48>>2]+Zj(F[a+40>>2],F[a+44>>2],b,0)|0;b=e+b|0;while(1){if(I[F[a>>2]+4>>2]<=b>>>0){break b}e=H[b>>1];if(e>>>0>255){break b}D[d+f|0]=e;b=b+2|0;f=f+1|0;e=D[a+24|0];if((f|0)<(((c|0)>(e|0)?e:c)|0)){continue}break}}if((c|0)<=(e|0)){break c}break a;case 4:g=1;e=D[a+24|0];if((((c|0)>(e|0)?e:c)|0)>0){e=F[F[a>>2]>>2];b=F[a+48>>2]+Zj(F[a+40>>2],F[a+44>>2],b,0)|0;b=e+b|0;while(1){if(I[F[a>>2]+4>>2]<=b>>>0){break b}e=F[b>>2];if(e>>>0>255){break b}D[d+f|0]=e;b=b+4|0;f=f+1|0;e=D[a+24|0];if((f|0)<(((c|0)>(e|0)?e:c)|0)){continue}break}}if((c|0)<=(e|0)){break c}break a;case 5:g=1;e=D[a+24|0];if((((c|0)>(e|0)?e:c)|0)>0){e=F[F[a>>2]>>2];b=F[a+48>>2]+Zj(F[a+40>>2],F[a+44>>2],b,0)|0;b=e+b|0;while(1){if(I[F[a>>2]+4>>2]<=b>>>0){break b}e=F[b>>2];if(e>>>0>255){break b}D[d+f|0]=e;b=b+4|0;f=f+1|0;e=D[a+24|0];if((f|0)<(((c|0)>(e|0)?e:c)|0)){continue}break}}if((c|0)<=(e|0)){break c}break a;case 6:g=1;e=D[a+24|0];if((((c|0)>(e|0)?e:c)|0)>0){e=F[F[a>>2]>>2];b=F[a+48>>2]+Zj(F[a+40>>2],F[a+44>>2],b,0)|0;b=e+b|0;while(1){if(I[F[a>>2]+4>>2]<=b>>>0){break b}e=F[b+4>>2];h=F[b>>2];if(!e&h>>>0>255|e){break b}D[d+f|0]=h;b=b+8|0;f=f+1|0;e=D[a+24|0];if((f|0)<(((c|0)>(e|0)?e:c)|0)){continue}break}}if((c|0)<=(e|0)){break c}break a;case 7:g=1;e=D[a+24|0];if((((c|0)>(e|0)?e:c)|0)>0){e=F[F[a>>2]>>2];b=F[a+48>>2]+Zj(F[a+40>>2],F[a+44>>2],b,0)|0;b=e+b|0;while(1){if(I[F[a>>2]+4>>2]<=b>>>0){break b}e=F[b+4>>2];h=F[b>>2];if(!e&h>>>0>255|e){break b}D[d+f|0]=h;b=b+8|0;f=f+1|0;e=D[a+24|0];if((f|0)<(((c|0)>(e|0)?e:c)|0)){continue}break}}if((c|0)<=(e|0)){break c}break a;case 8:g=1;e=D[a+24|0];if((((c|0)>(e|0)?e:c)|0)>0){e=F[F[a>>2]>>2];b=F[a+48>>2]+Zj(F[a+40>>2],F[a+44>>2],b,0)|0;b=e+b|0;while(1){if(I[F[a>>2]+4>>2]<=b>>>0){break b}i=J[b>>2];if(i>M(255)|i=M(0)){e=~~i>>>0}else{e=0}D[h|0]=e;b=b+4|0;f=f+1|0;e=D[a+24|0];if((f|0)<(((c|0)>(e|0)?e:c)|0)){continue}break}}if((c|0)<=(e|0)){break c}break a;case 9:g=1;e=D[a+24|0];if((((c|0)>(e|0)?e:c)|0)>0){e=F[F[a>>2]>>2];b=F[a+48>>2]+Zj(F[a+40>>2],F[a+44>>2],b,0)|0;b=e+b|0;while(1){if(I[F[a>>2]+4>>2]<=b>>>0){break b}j=K[b>>3];if(j>255|j<0|(N(j)==X|j!=j)){break b}h=d+f|0;if(j<4294967296&j>=0){e=~~j>>>0}else{e=0}D[h|0]=e;b=b+8|0;f=f+1|0;e=D[a+24|0];if((f|0)<(((c|0)>(e|0)?e:c)|0)){continue}break}}if((c|0)<=(e|0)){break c}break a;case 10:break d;default:break c}}g=1;e=D[a+24|0];if((((c|0)>(e|0)?e:c)|0)>0){e=F[F[a>>2]>>2];b=F[a+48>>2]+Zj(F[a+40>>2],F[a+44>>2],b,0)|0;b=e+b|0;while(1){if(I[F[a>>2]+4>>2]<=b>>>0){break b}D[d+f|0]=G[b|0];b=b+1|0;f=f+1|0;e=D[a+24|0];if((f|0)<(((c|0)>(e|0)?e:c)|0)){continue}break}}if((c|0)<=(e|0)){break c}Ti(d+e|0,0,c-e|0)}return g}return 0}Ti(d+e|0,0,c-e|0);return 1}function $f(a,b,c){var d=0,e=0,f=0,g=0,h=0,i=0;e=fa-48|0;fa=e;d=H[6677]|H[6678]<<16;f=H[6675]|H[6676]<<16;E[e+38>>1]=f;E[e+40>>1]=f>>>16;E[e+42>>1]=d;E[e+44>>1]=d>>>16;d=F[3337];F[e+32>>2]=F[3336];F[e+36>>2]=d;d=F[3335];F[e+24>>2]=F[3334];F[e+28>>2]=d;d=F[3333];F[e+16>>2]=F[3332];F[e+20>>2]=d;f=F[b+12>>2];d=F[b+20>>2];g=F[b+16>>2];h=g+5|0;d=h>>>0<5?d+1|0:d;a:{b:{if(h>>>0>I[b+8>>2]&(d|0)>=(f|0)|(d|0)>(f|0)){b=dj(e+16|0);if(b>>>0>=4294967280){break a}c:{d:{if(b>>>0>=11){d=b+16&-16;c=rj(d);F[e+8>>2]=d|-2147483648;F[e>>2]=c;F[e+4>>2]=b;break d}D[e+11|0]=b;c=e;if(!b){break c}}Ri(c,e+16|0,b)}D[b+c|0]=0;F[a>>2]=-2;a=a+4|0;if(D[e+11|0]>=0){b=F[e+4>>2];F[a>>2]=F[e>>2];F[a+4>>2]=b;F[a+8>>2]=F[e+8>>2];break b}b=a;a=F[e>>2];uj(b,a,F[e+4>>2]);oj(a);break b}d=g+F[b>>2]|0;f=G[d|0]|G[d+1|0]<<8|(G[d+2|0]<<16|G[d+3|0]<<24);D[c|0]=f;D[c+1|0]=f>>>8;D[c+2|0]=f>>>16;D[c+3|0]=f>>>24;D[c+4|0]=G[d+4|0];d=F[b+20>>2];f=F[b+16>>2]+5|0;d=f>>>0<5?d+1|0:d;F[b+16>>2]=f;F[b+20>>2]=d;if(Zi(c,1260,5)){b=rj(32);D[b+16|0]=G[1496];c=G[1492]|G[1493]<<8|(G[1494]<<16|G[1495]<<24);d=G[1488]|G[1489]<<8|(G[1490]<<16|G[1491]<<24);D[b+8|0]=d;D[b+9|0]=d>>>8;D[b+10|0]=d>>>16;D[b+11|0]=d>>>24;D[b+12|0]=c;D[b+13|0]=c>>>8;D[b+14|0]=c>>>16;D[b+15|0]=c>>>24;c=G[1484]|G[1485]<<8|(G[1486]<<16|G[1487]<<24);d=G[1480]|G[1481]<<8|(G[1482]<<16|G[1483]<<24);D[b|0]=d;D[b+1|0]=d>>>8;D[b+2|0]=d>>>16;D[b+3|0]=d>>>24;D[b+4|0]=c;D[b+5|0]=c>>>8;D[b+6|0]=c>>>16;D[b+7|0]=c>>>24;D[b+17|0]=0;F[a>>2]=-1;uj(a+4|0,b,17);oj(b);break b}g=F[b+12>>2];if((g|0)<=(d|0)&I[b+8>>2]<=f>>>0|(d|0)>(g|0)){b=dj(e+16|0);if(b>>>0>=4294967280){break a}e:{f:{if(b>>>0>=11){d=b+16&-16;c=rj(d);F[e+8>>2]=d|-2147483648;F[e>>2]=c;F[e+4>>2]=b;break f}D[e+11|0]=b;c=e;if(!b){break e}}Ri(c,e+16|0,b)}D[b+c|0]=0;F[a>>2]=-2;a=a+4|0;if(D[e+11|0]>=0){b=F[e+4>>2];F[a>>2]=F[e>>2];F[a+4>>2]=b;F[a+8>>2]=F[e+8>>2];break b}b=a;a=F[e>>2];uj(b,a,F[e+4>>2]);oj(a);break b}D[c+5|0]=G[f+F[b>>2]|0];d=F[b+20>>2];f=F[b+16>>2]+1|0;d=f?d:d+1|0;F[b+16>>2]=f;F[b+20>>2]=d;g=F[b+12>>2];if((g|0)<=(d|0)&I[b+8>>2]<=f>>>0|(d|0)>(g|0)){b=dj(e+16|0);if(b>>>0>=4294967280){break a}g:{h:{if(b>>>0>=11){d=b+16&-16;c=rj(d);F[e+8>>2]=d|-2147483648;F[e>>2]=c;F[e+4>>2]=b;break h}D[e+11|0]=b;c=e;if(!b){break g}}Ri(c,e+16|0,b)}D[b+c|0]=0;F[a>>2]=-2;a=a+4|0;if(D[e+11|0]>=0){b=F[e+4>>2];F[a>>2]=F[e>>2];F[a+4>>2]=b;F[a+8>>2]=F[e+8>>2];break b}b=a;a=F[e>>2];uj(b,a,F[e+4>>2]);oj(a);break b}D[c+6|0]=G[f+F[b>>2]|0];d=F[b+20>>2];f=F[b+16>>2]+1|0;d=f?d:d+1|0;F[b+16>>2]=f;F[b+20>>2]=d;g=F[b+12>>2];if((g|0)<=(d|0)&I[b+8>>2]<=f>>>0|(d|0)>(g|0)){b=dj(e+16|0);if(b>>>0>=4294967280){break a}i:{j:{if(b>>>0>=11){d=b+16&-16;c=rj(d);F[e+8>>2]=d|-2147483648;F[e>>2]=c;F[e+4>>2]=b;break j}D[e+11|0]=b;c=e;if(!b){break i}}Ri(c,e+16|0,b)}D[b+c|0]=0;F[a>>2]=-2;a=a+4|0;if(D[e+11|0]>=0){b=F[e+4>>2];F[a>>2]=F[e>>2];F[a+4>>2]=b;F[a+8>>2]=F[e+8>>2];break b}b=a;a=F[e>>2];uj(b,a,F[e+4>>2]);oj(a);break b}D[c+7|0]=G[f+F[b>>2]|0];d=F[b+20>>2];f=F[b+16>>2]+1|0;d=f?d:d+1|0;F[b+16>>2]=f;F[b+20>>2]=d;g=F[b+12>>2];if((g|0)<=(d|0)&I[b+8>>2]<=f>>>0|(d|0)>(g|0)){b=ag(e,e+16|0);F[a>>2]=-2;a=a+4|0;if(D[b+11|0]>=0){c=F[b+4>>2];F[a>>2]=F[b>>2];F[a+4>>2]=c;F[a+8>>2]=F[b+8>>2];break b}uj(a,F[b>>2],F[b+4>>2]);if(D[b+11|0]>=0){break b}oj(F[b>>2]);break b}D[c+8|0]=G[f+F[b>>2]|0];d=F[b+20>>2];f=d;i=F[b+16>>2];g=i+1|0;d=g?d:d+1|0;F[b+16>>2]=g;F[b+20>>2]=d;h=F[b+12>>2];d=f;f=i+3|0;d=f>>>0<3?d+1|0:d;if(f>>>0>I[b+8>>2]&(d|0)>=(h|0)|(d|0)>(h|0)){b=ag(e,e+16|0);F[a>>2]=-2;a=a+4|0;if(D[b+11|0]>=0){c=F[b+4>>2];F[a>>2]=F[b>>2];F[a+4>>2]=c;F[a+8>>2]=F[b+8>>2];break b}uj(a,F[b>>2],F[b+4>>2]);if(D[b+11|0]>=0){break b}oj(F[b>>2]);break b}f=c;c=g+F[b>>2]|0;E[f+10>>1]=G[c|0]|G[c+1|0]<<8;d=F[b+20>>2];c=F[b+16>>2]+2|0;d=c>>>0<2?d+1|0:d;F[b+16>>2]=c;F[b+20>>2]=d;F[a+8>>2]=0;F[a+12>>2]=0;F[a>>2]=0;F[a+4>>2]=0}fa=e+48|0;return}bg();V()}function gd(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0;F[a+8>>2]=e;r=a+32|0;f=F[r>>2];j=F[a+36>>2]-f>>2;a:{if(j>>>0>>0){La(r,e-j|0);d=F[a+8>>2];break a}d=e;if(e>>>0>=j>>>0){break a}F[a+36>>2]=f+(e<<2);d=e}f=(e&1073741823)!=(e|0)?-1:e<<2;m=Ti(rj(f),0,f);p=Ti(rj(f),0,f);b:{if((d|0)<=0){break b}i=F[a+32>>2];while(1){f=h<<2;j=F[f+m>>2];d=F[a+16>>2];c:{if((j|0)>(d|0)){F[f+i>>2]=d;break c}f=f+i|0;d=F[a+12>>2];if((d|0)>(j|0)){F[f>>2]=d;break c}F[f>>2]=j}d=F[a+8>>2];h=h+1|0;if((d|0)>(h|0)){continue}break}if((d|0)<=0){break b}f=0;while(1){j=f<<2;d=j+c|0;j=F[b+j>>2]+F[j+i>>2]|0;F[d>>2]=j;d:{if((j|0)>F[a+16>>2]){j=j-F[a+20>>2]|0}else{if((j|0)>=F[a+12>>2]){break d}j=j+F[a+20>>2]|0}F[d>>2]=j}d=F[a+8>>2];f=f+1|0;if((d|0)>(f|0)){continue}break}}f=F[a+56>>2];v=F[f>>2];f=F[f+4>>2]-v|0;if((f|0)>=5){B=F[a+52>>2];w=F[a+48>>2];t=f>>>2|0;C=t>>>0>2?t:2;x=e&-2;y=e&1;D=e&-4;z=e&3;u=e-1|0;E=e<<2;n=1;while(1){e:{f:{g:{h:{if((n|0)!=(t|0)){j=F[(n<<2)+v>>2];s=(e|0)<=0;if(!s){Ti(m,0,E)}if((j|0)==-1){g=L(e,n);break f}A=F[w+12>>2];q=0;f=j;while(1){h=F[(f<<2)+A>>2];i:{if((h|0)==-1){break i}o=F[B>>2];l=F[w>>2];k=F[o+(F[l+(h<<2)>>2]<<2)>>2];i=h+1|0;i=(i>>>0)%3|0?i:h-2|0;if((i|0)!=-1){g=F[l+(i<<2)>>2]}else{g=-1}j:{k:{if((h>>>0)%3|0){h=h-1|0;break k}h=h+2|0;i=-1;if((h|0)==-1){break j}}i=F[l+(h<<2)>>2]}if((k|0)>=(n|0)){break i}g=F[(g<<2)+o>>2];if((g|0)>=(n|0)){break i}i=F[o+(i<<2)>>2];if((i|0)>=(n|0)){break i}l:{if(s){break l}l=L(e,i);o=L(e,g);k=L(e,k);h=0;i=0;if(u){while(1){F[(h<<2)+p>>2]=(F[(h+l<<2)+c>>2]+F[(h+o<<2)+c>>2]|0)-F[(h+k<<2)+c>>2];g=h|1;F[(g<<2)+p>>2]=(F[(g+l<<2)+c>>2]+F[(g+o<<2)+c>>2]|0)-F[(g+k<<2)+c>>2];h=h+2|0;i=i+2|0;if((x|0)!=(i|0)){continue}break}}if(y){F[(h<<2)+p>>2]=(F[(h+l<<2)+c>>2]+F[(h+o<<2)+c>>2]|0)-F[(h+k<<2)+c>>2]}if(s){break l}o=0;h=0;k=0;if(u>>>0>2){while(1){l=h<<2;i=l+m|0;F[i>>2]=F[i>>2]+F[l+p>>2];g=l|4;i=g+m|0;F[i>>2]=F[i>>2]+F[g+p>>2];g=l|8;i=g+m|0;F[i>>2]=F[i>>2]+F[g+p>>2];g=l|12;i=g+m|0;F[i>>2]=F[i>>2]+F[g+p>>2];h=h+4|0;k=k+4|0;if((D|0)!=(k|0)){continue}break}}if(!z){break l}while(1){g=h<<2;i=g+m|0;F[i>>2]=F[i>>2]+F[g+p>>2];h=h+1|0;o=o+1|0;if((z|0)!=(o|0)){continue}break}}q=q+1|0}m:{n:{if((f>>>0)%3|0){h=f-1|0;break n}h=f+2|0;g=-1;if((h|0)==-1){break m}}f=F[(h<<2)+A>>2];g=-1;if((f|0)==-1){break m}g=f-1|0;if((f>>>0)%3|0){break m}g=f+2|0}f=g;if((j|0)!=(f|0)&(f|0)!=-1){continue}break}g=L(e,n);if(!q){break f}if(s){break g}h=0;f=0;if(!u){break h}while(1){i=h<<2;j=i+m|0;F[j>>2]=F[j>>2]/(q|0);j=(i|4)+m|0;F[j>>2]=F[j>>2]/(q|0);h=h+2|0;f=f+2|0;if((x|0)!=(f|0)){continue}break}break h}yc();V()}if(!y){break g}f=(h<<2)+m|0;F[f>>2]=F[f>>2]/(q|0)}if((d|0)<=0){break e}k=F[r>>2];h=0;while(1){f=h<<2;j=F[f+m>>2];d=F[a+16>>2];o:{if((j|0)>(d|0)){F[f+k>>2]=d;break o}f=f+k|0;d=F[a+12>>2];if((d|0)>(j|0)){F[f>>2]=d;break o}F[f>>2]=j}d=F[a+8>>2];h=h+1|0;if((d|0)>(h|0)){continue}break}f=0;if((d|0)<=0){break e}d=g<<2;i=d+c|0;j=b+d|0;while(1){g=f<<2;d=g+i|0;g=F[g+j>>2]+F[g+k>>2]|0;F[d>>2]=g;p:{if((g|0)>F[a+16>>2]){g=g-F[a+20>>2]|0}else{if((g|0)>=F[a+12>>2]){break p}g=g+F[a+20>>2]|0}F[d>>2]=g}d=F[a+8>>2];f=f+1|0;if((d|0)>(f|0)){continue}break}break e}if((d|0)<=0){break e}f=(L(n-1|0,e)<<2)+c|0;k=F[r>>2];h=0;while(1){j=h<<2;i=F[j+f>>2];d=F[a+16>>2];q:{if((i|0)>(d|0)){F[j+k>>2]=d;break q}j=j+k|0;d=F[a+12>>2];if((d|0)>(i|0)){F[j>>2]=d;break q}F[j>>2]=i}d=F[a+8>>2];h=h+1|0;if((d|0)>(h|0)){continue}break}f=0;if((d|0)<=0){break e}d=g<<2;i=d+c|0;j=b+d|0;while(1){g=f<<2;d=g+i|0;g=F[g+j>>2]+F[g+k>>2]|0;F[d>>2]=g;r:{if((g|0)>F[a+16>>2]){g=g-F[a+20>>2]|0}else{if((g|0)>=F[a+12>>2]){break r}g=g+F[a+20>>2]|0}F[d>>2]=g}d=F[a+8>>2];f=f+1|0;if((d|0)>(f|0)){continue}break}}n=n+1|0;if((C|0)!=(n|0)){continue}break}}oj(p);oj(m);return 1}function Qc(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=M(0),k=0,l=0,m=M(0),n=M(0),o=M(0),p=M(0),q=M(0),r=M(0),s=M(0),t=0,u=M(0),v=M(0),w=0,x=0,y=M(0),z=M(0),A=M(0),B=0;a:{if((e|0)==2){F[a+64>>2]=f;F[a+72>>2]=2;e=rj(8);d=F[a+68>>2];F[a+68>>2]=e;if(d){oj(d)}F[a+8>>2]=2;w=a+32|0;e=F[w>>2];d=F[a+36>>2]-e|0;b:{if(d>>>0<=7){La(w,2-(d>>>2|0)|0);break b}if((d|0)==8){break b}F[a+36>>2]=e+8}d=F[a+56>>2];d=F[d+4>>2]-F[d>>2]|0;c:{if((d|0)<=0){f=0;break c}x=d>>2;B=(x|0)>1?x:1;f=1;while(1){d=F[a+56>>2];g=F[d>>2];if(F[d+4>>2]-g>>2>>>0<=l>>>0){break a}q=M(0);h=fa-48|0;fa=h;d=-1;g=F[g+(l<<2)>>2];e=-1;d:{if((g|0)==-1){break d}d=g+1|0;d=(d>>>0)%3|0?d:g-2|0;e=g-1|0;if((g>>>0)%3|0){break d}e=g+2|0}i=F[a+52>>2];g=F[i>>2];e:{f:{i=F[i+4>>2]-g>>2;t=d<<2;d=F[F[a+48>>2]+28>>2];t=F[t+d>>2];if(i>>>0<=t>>>0){break f}d=F[d+(e<<2)>>2];if(d>>>0>=i>>>0){break f}i=F[g+(d<<2)>>2];e=F[g+(t<<2)>>2];g:{if(!((i|0)>=(l|0)|(e|0)>=(l|0))){d=F[a+72>>2];g=(L(d,i)<<2)+c|0;m=M(F[g+4>>2]);d=(L(d,e)<<2)+c|0;p=M(F[d+4>>2]);y=M(F[d>>2]);n=M(F[g>>2]);if(!(y!=n|m!=p)){g=+m>2147483647;d=F[a+68>>2];if(M(N(m))>2]=m2147483647;if(M(N(n))>2]=n>2]+(l<<2)>>2];F[h+40>>2]=0;F[h+32>>2]=0;F[h+36>>2]=0;g=F[a+60>>2];if(!G[g+84|0]){d=F[F[g+68>>2]+(d<<2)>>2]}Rc(g,d,D[g+24|0],h+32|0);e=F[F[a+64>>2]+(e<<2)>>2];F[h+24>>2]=0;F[h+16>>2]=0;F[h+20>>2]=0;d=F[a+60>>2];if(!G[d+84|0]){e=F[F[d+68>>2]+(e<<2)>>2]}Rc(d,e,D[d+24|0],h+16|0);e=F[F[a+64>>2]+(i<<2)>>2];F[h+8>>2]=0;F[h>>2]=0;F[h+4>>2]=0;d=F[a+60>>2];if(!G[d+84|0]){e=F[F[d+68>>2]+(e<<2)>>2]}Rc(d,e,D[d+24|0],h);o=J[h+24>>2];r=M(J[h+8>>2]-o);s=J[h+20>>2];u=M(J[h+4>>2]-s);A=J[h+16>>2];v=M(J[h>>2]-A);z=M(M(r*r)+M(M(u*u)+M(M(v*v)+M(0))));h:{if(F[a+88>>2]>=258){j=M(0);if(!(z>M(0))){break h}}j=M(J[h+40>>2]-o);o=M(J[h+36>>2]-s);s=M(J[h+32>>2]-A);q=M(M(M(r*j)+M(M(u*o)+M(M(v*s)+M(0))))/z);j=M(j-M(r*q));r=M(j*j);j=M(o-M(u*q));o=M(j*j);j=M(s-M(v*q));j=M(U(M(M(r+M(o+M(M(j*j)+M(0))))/z)))}e=F[a+80>>2];if(e){d=e-1|0;g=F[F[a+76>>2]+(d>>>3&536870908)>>2];F[a+80>>2]=d;m=M(m-p);o=M(M(m*q)+p);n=M(n-y);p=M(n*j);d=g>>>d&1;p=M(o+(d?p:M(-p)));j=M(j*m);k=R(+M(M(M(n*q)+y)+(d?M(-j):j))+.5);i:{if(k>2147483647?1:k<-2147483648|k!=k){d=F[a+68>>2];F[d>>2]=-2147483648;break i}d=F[a+68>>2];if(N(k)<2147483648){g=~~k}else{g=-2147483648}F[d>>2]=g}k=R(+p+.5);i=k>2147483647;if(N(k)<2147483648){g=~~k}else{g=-2147483648}F[d+4>>2]=k<-2147483648?-2147483648:k!=k?-2147483648:i?-2147483648:g}e=(e|0)!=0;break g}j:{if((e|0)<(l|0)){d=F[a+72>>2];g=L(e,d);break j}if((l|0)<=0){e=1;if(F[a+72>>2]<=0){break g}g=F[a+68>>2];d=0;while(1){F[g+(d<<2)>>2]=0;d=d+1|0;if((d|0)>2]){continue}break}break g}d=F[a+72>>2];g=L(d,l-1|0)}e=1;if((d|0)<=0){break g}i=F[a+68>>2];d=0;while(1){F[i+(d<<2)>>2]=F[(d+g<<2)+c>>2];d=d+1|0;if((d|0)>2]){continue}break}}fa=h+48|0;break e}yc();V()}if(!e){break c}k:{if(F[a+8>>2]<=0){break k}h=F[a+68>>2];g=F[w>>2];d=0;while(1){e=d<<2;f=F[e+h>>2];i=F[a+16>>2];l:{if((f|0)>(i|0)){F[e+g>>2]=i;break l}e=e+g|0;i=F[a+12>>2];if((i|0)>(f|0)){F[e>>2]=i;break l}F[e>>2]=f}d=d+1|0;f=F[a+8>>2];if((d|0)<(f|0)){continue}break}e=0;if((f|0)<=0){break k}d=l<<3;h=d+c|0;i=b+d|0;while(1){f=e<<2;d=f+h|0;f=F[f+i>>2]+F[f+g>>2]|0;F[d>>2]=f;m:{if((f|0)>F[a+16>>2]){f=f-F[a+20>>2]|0}else{if((f|0)>=F[a+12>>2]){break m}f=f+F[a+20>>2]|0}F[d>>2]=f}e=e+1|0;if((e|0)>2]){continue}break}}l=l+1|0;f=(x|0)>(l|0);if((l|0)!=(B|0)){continue}break}}a=f^1}else{a=0}return a&1}yc();V()}function nd(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=M(0),k=0,l=0,m=M(0),n=M(0),o=M(0),p=M(0),q=M(0),r=M(0),s=M(0),t=M(0),u=M(0),v=0,w=0,x=M(0),y=M(0),z=M(0),A=0;a:{if((e|0)==2){F[a+64>>2]=f;F[a+72>>2]=2;e=rj(8);d=F[a+68>>2];F[a+68>>2]=e;if(d){oj(d)}F[a+8>>2]=2;v=a+32|0;e=F[v>>2];d=F[a+36>>2]-e|0;b:{if(d>>>0<=7){La(v,2-(d>>>2|0)|0);break b}if((d|0)==8){break b}F[a+36>>2]=e+8}d=F[a+56>>2];d=F[d+4>>2]-F[d>>2]|0;c:{if((d|0)<=0){f=0;break c}w=d>>2;A=(w|0)>1?w:1;f=1;while(1){e=F[a+56>>2];d=F[e>>2];if(F[e+4>>2]-d>>2>>>0<=l>>>0){break a}q=M(0);h=fa-48|0;fa=h;g=-1;d:{e:{d=F[d+(l<<2)>>2];if((d|0)==-1){break e}i=F[a+48>>2];e=d+1|0;e=(e>>>0)%3|0?e:d-2|0;if((e|0)!=-1){g=F[F[i>>2]+(e<<2)>>2]}e=-1;d=d+((d>>>0)%3|0?-1:2)|0;if((d|0)!=-1){e=F[F[i>>2]+(d<<2)>>2]}d=F[a+52>>2];i=F[d>>2];d=F[d+4>>2]-i>>2;if(d>>>0<=g>>>0|d>>>0<=e>>>0){break e}d=F[i+(g<<2)>>2];i=F[i+(e<<2)>>2];f:{if(!((i|0)>=(l|0)|(d|0)>=(l|0))){e=F[a+72>>2];g=(L(e,i)<<2)+c|0;m=M(F[g+4>>2]);e=(L(d,e)<<2)+c|0;p=M(F[e+4>>2]);x=M(F[e>>2]);n=M(F[g>>2]);if(!(x!=n|m!=p)){g=+m>2147483647;d=F[a+68>>2];if(M(N(m))>2]=m2147483647;if(M(N(n))>2]=n>2]+(l<<2)>>2];F[h+40>>2]=0;F[h+32>>2]=0;F[h+36>>2]=0;g=F[a+60>>2];if(!G[g+84|0]){e=F[F[g+68>>2]+(e<<2)>>2]}Rc(g,e,D[g+24|0],h+32|0);e=F[F[a+64>>2]+(d<<2)>>2];F[h+24>>2]=0;F[h+16>>2]=0;F[h+20>>2]=0;d=F[a+60>>2];if(!G[d+84|0]){e=F[F[d+68>>2]+(e<<2)>>2]}Rc(d,e,D[d+24|0],h+16|0);d=F[F[a+64>>2]+(i<<2)>>2];F[h+8>>2]=0;F[h>>2]=0;F[h+4>>2]=0;e=F[a+60>>2];if(!G[e+84|0]){d=F[F[e+68>>2]+(d<<2)>>2]}Rc(e,d,D[e+24|0],h);o=J[h+24>>2];r=M(J[h+8>>2]-o);s=J[h+20>>2];t=M(J[h+4>>2]-s);z=J[h+16>>2];u=M(J[h>>2]-z);y=M(M(r*r)+M(M(t*t)+M(M(u*u)+M(0))));g:{if(F[a+88>>2]>=258){j=M(0);if(!(y>M(0))){break g}}j=M(J[h+40>>2]-o);o=M(J[h+36>>2]-s);s=M(J[h+32>>2]-z);q=M(M(M(r*j)+M(M(t*o)+M(M(u*s)+M(0))))/y);j=M(j-M(r*q));r=M(j*j);j=M(o-M(t*q));o=M(j*j);j=M(s-M(u*q));j=M(U(M(M(r+M(o+M(M(j*j)+M(0))))/y)))}e=F[a+80>>2];if(e){d=e-1|0;g=F[F[a+76>>2]+(d>>>3&536870908)>>2];F[a+80>>2]=d;m=M(m-p);o=M(M(m*q)+p);n=M(n-x);p=M(n*j);d=g>>>d&1;p=M(o+(d?p:M(-p)));j=M(j*m);k=R(+M(M(M(n*q)+x)+(d?M(-j):j))+.5);h:{if(k>2147483647?1:k<-2147483648|k!=k){d=F[a+68>>2];F[d>>2]=-2147483648;break h}d=F[a+68>>2];if(N(k)<2147483648){g=~~k}else{g=-2147483648}F[d>>2]=g}k=R(+p+.5);i=k>2147483647;if(N(k)<2147483648){g=~~k}else{g=-2147483648}F[d+4>>2]=k<-2147483648?-2147483648:k!=k?-2147483648:i?-2147483648:g}d=(e|0)!=0;break f}i:{if((d|0)<(l|0)){e=F[a+72>>2];g=L(d,e);break i}if((l|0)<=0){d=1;if(F[a+72>>2]<=0){break f}g=F[a+68>>2];e=0;while(1){F[g+(e<<2)>>2]=0;e=e+1|0;if((e|0)>2]){continue}break}break f}e=F[a+72>>2];g=L(e,l-1|0)}d=1;if((e|0)<=0){break f}i=F[a+68>>2];e=0;while(1){F[i+(e<<2)>>2]=F[(e+g<<2)+c>>2];e=e+1|0;if((e|0)>2]){continue}break}}fa=h+48|0;break d}yc();V()}if(!d){break c}j:{if(F[a+8>>2]<=0){break j}h=F[a+68>>2];g=F[v>>2];d=0;while(1){e=d<<2;f=F[e+h>>2];i=F[a+16>>2];k:{if((f|0)>(i|0)){F[e+g>>2]=i;break k}e=e+g|0;i=F[a+12>>2];if((i|0)>(f|0)){F[e>>2]=i;break k}F[e>>2]=f}d=d+1|0;f=F[a+8>>2];if((d|0)<(f|0)){continue}break}e=0;if((f|0)<=0){break j}d=l<<3;h=d+c|0;i=b+d|0;while(1){f=e<<2;d=f+h|0;f=F[f+i>>2]+F[f+g>>2]|0;F[d>>2]=f;l:{if((f|0)>F[a+16>>2]){f=f-F[a+20>>2]|0}else{if((f|0)>=F[a+12>>2]){break l}f=f+F[a+20>>2]|0}F[d>>2]=f}e=e+1|0;if((e|0)>2]){continue}break}}l=l+1|0;f=(w|0)>(l|0);if((l|0)!=(A|0)){continue}break}}a=f^1}else{a=0}return a&1}yc();V()}function Na(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=M(0),f=0,g=0,h=0,i=0,j=0,k=0,l=M(0),m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0;if(F[c>>2]==F[c+4>>2]){h=F[d+80>>2];u=fa-16|0;fa=u;q=F[a+4>>2];j=F[d+48>>2];d=F[F[d>>2]>>2];i=D[b+24|0];c=u+8|0;F[c>>2]=1065353216;J[c>>2]=M(-1<>2];s=rj((i|0)!=(i&1073741823)?-1:i<<2);a:{if(!h|(i|0)<=0){break a}t=d+j|0;l=J[c>>2];k=F[a+8>>2];w=F[b>>2];c=F[b+48>>2];m=F[b+44>>2];v=F[b+40>>2];if(!G[b+84|0]){r=F[b+68>>2];q=i&-2;j=i&1;a=0;while(1){d=F[w>>2];b=Zj(v,m,F[r+(o<<2)>>2],0)+c|0;p=Ri(s,d+b|0,v);b=0;n=0;if((i|0)!=1){while(1){d=t+(a<<2)|0;g=b<<2;e=M(R(M(M(l*M(J[g+p>>2]-J[k+g>>2]))+M(.5))));b:{if(M(N(e))>2]=f;f=g|4;e=M(R(M(M(l*M(J[f+p>>2]-J[f+k>>2]))+M(.5))));c:{if(M(N(e))>2]=f;b=b+2|0;a=a+2|0;n=n+2|0;if((q|0)!=(n|0)){continue}break}}if(j){d=t+(a<<2)|0;b=b<<2;e=M(R(M(M(l*M(J[b+p>>2]-J[b+k>>2]))+M(.5))));d:{if(M(N(e))>2]=b;a=a+1|0}o=o+1|0;if((h|0)!=(o|0)){continue}break}break a}r=i&-2;q=i&1;a=0;while(1){d=F[w>>2];b=Zj(v,m,p,f)+c|0;o=Ri(s,d+b|0,v);b=0;n=0;if((i|0)!=1){while(1){d=t+(a<<2)|0;g=b<<2;e=M(R(M(M(l*M(J[g+o>>2]-J[k+g>>2]))+M(.5))));e:{if(M(N(e))>2]=j;j=g|4;e=M(R(M(M(l*M(J[j+o>>2]-J[k+j>>2]))+M(.5))));f:{if(M(N(e))>2]=g;b=b+2|0;a=a+2|0;n=n+2|0;if((r|0)!=(n|0)){continue}break}}if(q){d=t+(a<<2)|0;b=b<<2;e=M(R(M(M(l*M(J[b+o>>2]-J[b+k>>2]))+M(.5))));g:{if(M(N(e))>2]=b;a=a+1|0}b=p+1|0;f=b?f:f+1|0;p=b;if((h|0)!=(b|0)|f){continue}break}}oj(s);fa=u+16|0;return 1}u=fa-16|0;fa=u;f=F[a+4>>2];j=F[d+48>>2];h=F[F[d>>2]>>2];m=D[b+24|0];d=u+8|0;F[d>>2]=1065353216;J[d>>2]=M(-1<>2];t=rj((m|0)!=(m&1073741823)?-1:m<<2);f=F[c+4>>2];s=F[c>>2];h:{if((f|0)==(s|0)|(m|0)<=0){break h}n=j+h|0;c=f-s>>2;w=c>>>0>1?c:1;l=J[d>>2];i=F[a+8>>2];x=F[b>>2];d=F[b+48>>2];v=F[b+44>>2];p=F[b+40>>2];if(G[b+84|0]){q=m&-2;j=m&1;a=0;c=0;while(1){f=F[x>>2];b=Zj(p,v,F[s+(c<<2)>>2],0)+d|0;g=Ri(t,f+b|0,p);b=0;k=0;if((m|0)!=1){while(1){f=n+(a<<2)|0;r=b<<2;e=M(R(M(M(l*M(J[r+g>>2]-J[i+r>>2]))+M(.5))));i:{if(M(N(e))>2]=h;h=r|4;e=M(R(M(M(l*M(J[h+g>>2]-J[i+h>>2]))+M(.5))));j:{if(M(N(e))>2]=h;b=b+2|0;a=a+2|0;k=k+2|0;if((q|0)!=(k|0)){continue}break}}if(j){f=n+(a<<2)|0;b=b<<2;e=M(R(M(M(l*M(J[b+g>>2]-J[b+i>>2]))+M(.5))));k:{if(M(N(e))>2]=b;a=a+1|0}c=c+1|0;if((w|0)!=(c|0)){continue}break}break h}r=F[b+68>>2];q=m&-2;j=m&1;a=0;c=0;while(1){f=F[x>>2];b=Zj(p,v,F[r+(F[s+(c<<2)>>2]<<2)>>2],0)+d|0;o=Ri(t,f+b|0,p);b=0;k=0;if((m|0)!=1){while(1){f=n+(a<<2)|0;g=b<<2;e=M(R(M(M(l*M(J[g+o>>2]-J[i+g>>2]))+M(.5))));l:{if(M(N(e))>2]=h;h=g|4;e=M(R(M(M(l*M(J[h+o>>2]-J[i+h>>2]))+M(.5))));m:{if(M(N(e))>2]=g;b=b+2|0;a=a+2|0;k=k+2|0;if((q|0)!=(k|0)){continue}break}}if(j){f=n+(a<<2)|0;b=b<<2;e=M(R(M(M(l*M(J[b+o>>2]-J[b+i>>2]))+M(.5))));n:{if(M(N(e))>2]=b;a=a+1|0}c=c+1|0;if((w|0)!=(c|0)){continue}break}}oj(t);fa=u+16|0;return 1}function Bd(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0,g=0,h=0,i=0;e=fa-32|0;fa=e;a:{b:{switch(c-2|0){case 0:c=F[a+4>>2];f=F[a+12>>2];F[e+24>>2]=-1;F[e+16>>2]=-1;F[e+20>>2]=1065353216;F[e+8>>2]=-1;F[e+12>>2]=-1;if((b|0)==-2){break a}i=F[F[F[c+4>>2]+8>>2]+(f<<2)>>2];if((ja[F[F[c>>2]+8>>2]](c)|0)==1){h=F[F[F[c+4>>2]+8>>2]+(f<<2)>>2];c:{if((ja[F[F[c>>2]+8>>2]](c)|0)!=1|b-1>>>0>5){break c}g=ja[F[F[c>>2]+36>>2]](c)|0;a=ja[F[F[c>>2]+44>>2]](c,f)|0;if(!g|!a){break c}f=ja[F[F[c>>2]+40>>2]](c,f)|0;d:{if(f){if((b|0)!=6){break c}b=F[c+44>>2];d=rj(112);F[d+4>>2]=h;c=F[e+12>>2];F[d+8>>2]=F[e+8>>2];F[d+12>>2]=c;c=F[e+20>>2];F[d+16>>2]=F[e+16>>2];F[d+20>>2]=c;F[d+24>>2]=F[e+24>>2];F[d+40>>2]=a;c=a+12|0;F[d+36>>2]=c;F[d+32>>2]=f;F[d+28>>2]=b;F[d+68>>2]=a;F[d- -64>>2]=c;F[d+60>>2]=f;F[d+56>>2]=b;F[d+48>>2]=0;F[d+52>>2]=0;F[d>>2]=7144;F[d+88>>2]=1065353216;F[d+92>>2]=-1;F[d+80>>2]=-1;F[d+84>>2]=-1;F[d+72>>2]=1;F[d+76>>2]=-1;F[d+44>>2]=7668;a=d+96|0;break d}if((b|0)!=6){break c}b=F[c+44>>2];d=rj(112);F[d+4>>2]=h;c=F[e+12>>2];F[d+8>>2]=F[e+8>>2];F[d+12>>2]=c;c=F[e+20>>2];F[d+16>>2]=F[e+16>>2];F[d+20>>2]=c;F[d+24>>2]=F[e+24>>2];F[d+40>>2]=a;c=a+12|0;F[d+36>>2]=c;F[d+32>>2]=g;F[d+28>>2]=b;F[d+68>>2]=a;F[d- -64>>2]=c;F[d+60>>2]=g;F[d+56>>2]=b;F[d+48>>2]=0;F[d+52>>2]=0;F[d>>2]=8080;F[d+88>>2]=1065353216;F[d+92>>2]=-1;F[d+80>>2]=-1;F[d+84>>2]=-1;F[d+72>>2]=1;F[d+76>>2]=-1;F[d+44>>2]=8472;a=d+96|0}F[a>>2]=0;F[a+4>>2]=0;D[a+5|0]=0;D[a+6|0]=0;D[a+7|0]=0;D[a+8|0]=0;D[a+9|0]=0;D[a+10|0]=0;D[a+11|0]=0;D[a+12|0]=0}if(d){break a}}d=rj(28);F[d+4>>2]=i;a=F[e+12>>2];F[d+8>>2]=F[e+8>>2];F[d+12>>2]=a;a=F[e+20>>2];F[d+16>>2]=F[e+16>>2];F[d+20>>2]=a;F[d+24>>2]=F[e+24>>2];F[d>>2]=8860;break a;case 1:break b;default:break a}}c=F[a+4>>2];f=F[a+12>>2];F[e+24>>2]=-1;F[e+16>>2]=-1;F[e+20>>2]=1065353216;F[e+8>>2]=-1;F[e+12>>2]=-1;if((b|0)==-2){break a}i=F[F[F[c+4>>2]+8>>2]+(f<<2)>>2];if((ja[F[F[c>>2]+8>>2]](c)|0)==1){h=F[F[F[c+4>>2]+8>>2]+(f<<2)>>2];e:{if((ja[F[F[c>>2]+8>>2]](c)|0)!=1|b-1>>>0>5){break e}g=ja[F[F[c>>2]+36>>2]](c)|0;a=ja[F[F[c>>2]+44>>2]](c,f)|0;if(!g|!a){break e}f=ja[F[F[c>>2]+40>>2]](c,f)|0;f:{if(f){if((b|0)!=6){break e}b=F[c+44>>2];d=rj(112);F[d+4>>2]=h;c=F[e+12>>2];F[d+8>>2]=F[e+8>>2];F[d+12>>2]=c;c=F[e+20>>2];F[d+16>>2]=F[e+16>>2];F[d+20>>2]=c;F[d+24>>2]=F[e+24>>2];F[d+40>>2]=a;c=a+12|0;F[d+36>>2]=c;F[d+32>>2]=f;F[d+28>>2]=b;F[d+68>>2]=a;F[d- -64>>2]=c;F[d+60>>2]=f;F[d+56>>2]=b;F[d+48>>2]=0;F[d+52>>2]=0;F[d>>2]=9028;F[d+88>>2]=1065353216;F[d+92>>2]=-1;F[d+80>>2]=-1;F[d+84>>2]=-1;F[d+72>>2]=1;F[d+76>>2]=-1;F[d+44>>2]=9592;a=d+96|0;break f}if((b|0)!=6){break e}b=F[c+44>>2];d=rj(112);F[d+4>>2]=h;c=F[e+12>>2];F[d+8>>2]=F[e+8>>2];F[d+12>>2]=c;c=F[e+20>>2];F[d+16>>2]=F[e+16>>2];F[d+20>>2]=c;F[d+24>>2]=F[e+24>>2];F[d+40>>2]=a;c=a+12|0;F[d+36>>2]=c;F[d+32>>2]=g;F[d+28>>2]=b;F[d+68>>2]=a;F[d- -64>>2]=c;F[d+60>>2]=g;F[d+56>>2]=b;F[d+48>>2]=0;F[d+52>>2]=0;F[d>>2]=10032;F[d+88>>2]=1065353216;F[d+92>>2]=-1;F[d+80>>2]=-1;F[d+84>>2]=-1;F[d+72>>2]=1;F[d+76>>2]=-1;F[d+44>>2]=10452;a=d+96|0}F[a>>2]=0;F[a+4>>2]=0;D[a+5|0]=0;D[a+6|0]=0;D[a+7|0]=0;D[a+8|0]=0;D[a+9|0]=0;D[a+10|0]=0;D[a+11|0]=0;D[a+12|0]=0}if(d){break a}}d=rj(28);F[d+4>>2]=i;a=F[e+12>>2];F[d+8>>2]=F[e+8>>2];F[d+12>>2]=a;a=F[e+20>>2];F[d+16>>2]=F[e+16>>2];F[d+20>>2]=a;F[d+24>>2]=F[e+24>>2];F[d>>2]=10864}fa=e+32|0;return d|0}function Ue(a,b){var c=0,d=0,e=0,f=0,g=0,h=0;d=F[a+4>>2];c=F[a>>2];e=(d-c|0)/144|0;if(e>>>0>>0){c=a;e=b-e|0;f=F[a+8>>2];d=F[a+4>>2];a:{if(e>>>0<=(f-d|0)/144>>>0){b:{if(!e){break b}a=d;f=e&7;if(f){b=0;while(1){ff(a);a=a+144|0;b=b+1|0;if((f|0)!=(b|0)){continue}break}}d=L(e,144)+d|0;if((e-1&268435455)>>>0<7){break b}while(1){ff(a);ff(a+144|0);ff(a+288|0);ff(a+432|0);ff(a+576|0);ff(a+720|0);ff(a+864|0);ff(a+1008|0);a=a+1152|0;if((d|0)!=(a|0)){continue}break}}F[c+4>>2]=d;break a}c:{d:{e:{b=F[c>>2];g=(d-b|0)/144|0;a=g+e|0;if(a>>>0<29826162){d=0;b=(f-b|0)/144|0;f=b<<1;f=b>>>0<14913080?a>>>0>>0?f:a:29826161;if(f){if(f>>>0>=29826162){break e}h=rj(L(f,144))}b=L(g,144)+h|0;a=b;g=e&7;if(g){a=b;while(1){ff(a);a=a+144|0;d=d+1|0;if((g|0)!=(d|0)){continue}break}}g=L(e,144)+b|0;if((e-1&268435455)>>>0>=7){while(1){ff(a);ff(a+144|0);ff(a+288|0);ff(a+432|0);ff(a+576|0);ff(a+720|0);ff(a+864|0);ff(a+1008|0);a=a+1152|0;if((g|0)!=(a|0)){continue}break}}e=L(f,144)+h|0;a=F[c+4>>2];d=F[c>>2];if((a|0)==(d|0)){break d}while(1){b=b-144|0;a=a-144|0;F[b>>2]=F[a>>2];F[b+4>>2]=F[a+4>>2];F[b+8>>2]=F[a+8>>2];F[b+12>>2]=F[a+12>>2];F[a+12>>2]=0;F[a+4>>2]=0;F[a+8>>2]=0;F[b+16>>2]=F[a+16>>2];F[b+20>>2]=F[a+20>>2];F[b+24>>2]=F[a+24>>2];F[a+24>>2]=0;F[a+16>>2]=0;F[a+20>>2]=0;f=G[a+28|0];F[b+40>>2]=0;F[b+32>>2]=0;F[b+36>>2]=0;D[b+28|0]=f;F[b+32>>2]=F[a+32>>2];F[b+36>>2]=F[a+36>>2];F[b+40>>2]=F[a+40>>2];F[a+40>>2]=0;F[a+32>>2]=0;F[a+36>>2]=0;F[b+52>>2]=0;F[b+44>>2]=0;F[b+48>>2]=0;F[b+44>>2]=F[a+44>>2];F[b+48>>2]=F[a+48>>2];F[b+52>>2]=F[a+52>>2];F[a+52>>2]=0;F[a+44>>2]=0;F[a+48>>2]=0;f=b- -64|0;F[f>>2]=0;F[b+56>>2]=0;F[b+60>>2]=0;F[b+56>>2]=F[a+56>>2];F[b+60>>2]=F[a+60>>2];h=f;f=a- -64|0;F[h>>2]=F[f>>2];F[f>>2]=0;F[a+56>>2]=0;F[a+60>>2]=0;F[b+68>>2]=F[a+68>>2];f=F[a+72>>2];F[b+84>>2]=0;F[b+76>>2]=0;F[b+80>>2]=0;F[b+72>>2]=f;F[b+76>>2]=F[a+76>>2];F[b+80>>2]=F[a+80>>2];F[b+84>>2]=F[a+84>>2];F[a+84>>2]=0;F[a+76>>2]=0;F[a+80>>2]=0;F[b+96>>2]=0;F[b+88>>2]=0;F[b+92>>2]=0;F[b+88>>2]=F[a+88>>2];F[b+92>>2]=F[a+92>>2];F[b+96>>2]=F[a+96>>2];F[a+96>>2]=0;F[a+88>>2]=0;F[a+92>>2]=0;f=G[a+100|0];F[b+112>>2]=0;F[b+104>>2]=0;F[b+108>>2]=0;D[b+100|0]=f;F[b+104>>2]=F[a+104>>2];F[b+108>>2]=F[a+108>>2];F[b+112>>2]=F[a+112>>2];F[a+112>>2]=0;F[a+104>>2]=0;F[a+108>>2]=0;F[b+124>>2]=0;F[b+116>>2]=0;F[b+120>>2]=0;F[b+116>>2]=F[a+116>>2];F[b+120>>2]=F[a+120>>2];F[b+124>>2]=F[a+124>>2];F[a+124>>2]=0;F[a+116>>2]=0;F[a+120>>2]=0;f=F[a+128>>2];F[b+140>>2]=0;F[b+132>>2]=0;F[b+136>>2]=0;F[b+128>>2]=f;F[b+132>>2]=F[a+132>>2];F[b+136>>2]=F[a+136>>2];F[b+140>>2]=F[a+140>>2];F[a+140>>2]=0;F[a+132>>2]=0;F[a+136>>2]=0;if((a|0)!=(d|0)){continue}break}F[c+8>>2]=e;a=F[c+4>>2];F[c+4>>2]=g;d=F[c>>2];F[c>>2]=b;if((a|0)==(d|0)){break c}while(1){b=a-144|0;c=F[b+132>>2];if(c){F[a-8>>2]=c;oj(c)}c=F[a-28>>2];if(c){F[a-24>>2]=c;oj(c)}c=F[a-40>>2];if(c){F[a-36>>2]=c;oj(c)}af(a-140|0);a=b;if((d|0)!=(a|0)){continue}break}break c}Ia();V()}Wa();V()}F[c+8>>2]=e;F[c+4>>2]=g;F[c>>2]=b}if(d){oj(d)}}return}if(b>>>0>>0){c=c+L(b,144)|0;if((c|0)!=(d|0)){while(1){b=d-144|0;e=F[b+132>>2];if(e){F[d-8>>2]=e;oj(e)}e=F[d-28>>2];if(e){F[d-24>>2]=e;oj(e)}e=F[d-40>>2];if(e){F[d-36>>2]=e;oj(e)}af(d-140|0);d=b;if((b|0)!=(c|0)){continue}break}}F[a+4>>2]=c}}function ke(a,b,c,d){var e=0,f=0,g=0,h=0,i=0,j=0,k=0;f=fa-80|0;fa=f;e=F[c+36>>2];F[f+72>>2]=F[c+32>>2];F[f+76>>2]=e;g=F[c+28>>2];e=f- -64|0;F[e>>2]=F[c+24>>2];F[e+4>>2]=g;e=F[c+20>>2];F[f+56>>2]=F[c+16>>2];F[f+60>>2]=e;e=F[c+12>>2];F[f+48>>2]=F[c+8>>2];F[f+52>>2]=e;e=F[c+4>>2];F[f+40>>2]=F[c>>2];F[f+44>>2]=e;$f(a,f+40|0,f+24|0);a:{if(F[a>>2]){break a}j=a+4|0;if(D[a+15|0]<0){oj(F[j>>2])}if(G[f+31|0]){b=rj(32);c=G[1521]|G[1522]<<8|(G[1523]<<16|G[1524]<<24);D[b+23|0]=c;D[b+24|0]=c>>>8;D[b+25|0]=c>>>16;D[b+26|0]=c>>>24;c=G[1518]|G[1519]<<8|(G[1520]<<16|G[1521]<<24);d=G[1514]|G[1515]<<8|(G[1516]<<16|G[1517]<<24);D[b+16|0]=d;D[b+17|0]=d>>>8;D[b+18|0]=d>>>16;D[b+19|0]=d>>>24;D[b+20|0]=c;D[b+21|0]=c>>>8;D[b+22|0]=c>>>16;D[b+23|0]=c>>>24;c=G[1510]|G[1511]<<8|(G[1512]<<16|G[1513]<<24);d=G[1506]|G[1507]<<8|(G[1508]<<16|G[1509]<<24);D[b+8|0]=d;D[b+9|0]=d>>>8;D[b+10|0]=d>>>16;D[b+11|0]=d>>>24;D[b+12|0]=c;D[b+13|0]=c>>>8;D[b+14|0]=c>>>16;D[b+15|0]=c>>>24;c=G[1502]|G[1503]<<8|(G[1504]<<16|G[1505]<<24);d=G[1498]|G[1499]<<8|(G[1500]<<16|G[1501]<<24);D[b|0]=d;D[b+1|0]=d>>>8;D[b+2|0]=d>>>16;D[b+3|0]=d>>>24;D[b+4|0]=c;D[b+5|0]=c>>>8;D[b+6|0]=c>>>16;D[b+7|0]=c>>>24;D[b+27|0]=0;F[a>>2]=-1;uj(j,b,27);oj(b);break a}i=fa-16|0;fa=i;b:{c:{switch(D[f+32|0]){case 0:e=rj(44);F[e>>2]=0;F[e+4>>2]=0;F[e+40>>2]=0;F[e+32>>2]=0;F[e+36>>2]=0;F[e+24>>2]=0;F[e+28>>2]=0;F[e+16>>2]=0;F[e+20>>2]=0;F[e+8>>2]=0;F[e+12>>2]=0;e=_f(e);F[e>>2]=13496;F[f+8>>2]=0;F[f+12>>2]=0;F[f>>2]=0;F[f+4>>2]=0;F[f+16>>2]=e;break b;case 1:e=rj(44);F[e>>2]=0;F[e+4>>2]=0;F[e+40>>2]=0;F[e+32>>2]=0;F[e+36>>2]=0;F[e+24>>2]=0;F[e+28>>2]=0;F[e+16>>2]=0;F[e+20>>2]=0;F[e+8>>2]=0;F[e+12>>2]=0;e=_f(e);F[e>>2]=13404;F[f+8>>2]=0;F[f+12>>2]=0;F[f>>2]=0;F[f+4>>2]=0;F[f+16>>2]=e;break b;default:break c}}g=rj(32);e=G[1550]|G[1551]<<8|(G[1552]<<16|G[1553]<<24);D[g+24|0]=e;D[g+25|0]=e>>>8;D[g+26|0]=e>>>16;D[g+27|0]=e>>>24;e=G[1546]|G[1547]<<8|(G[1548]<<16|G[1549]<<24);h=G[1542]|G[1543]<<8|(G[1544]<<16|G[1545]<<24);D[g+16|0]=h;D[g+17|0]=h>>>8;D[g+18|0]=h>>>16;D[g+19|0]=h>>>24;D[g+20|0]=e;D[g+21|0]=e>>>8;D[g+22|0]=e>>>16;D[g+23|0]=e>>>24;e=G[1538]|G[1539]<<8|(G[1540]<<16|G[1541]<<24);h=G[1534]|G[1535]<<8|(G[1536]<<16|G[1537]<<24);D[g+8|0]=h;D[g+9|0]=h>>>8;D[g+10|0]=h>>>16;D[g+11|0]=h>>>24;D[g+12|0]=e;D[g+13|0]=e>>>8;D[g+14|0]=e>>>16;D[g+15|0]=e>>>24;e=G[1530]|G[1531]<<8|(G[1532]<<16|G[1533]<<24);h=G[1526]|G[1527]<<8|(G[1528]<<16|G[1529]<<24);D[g|0]=h;D[g+1|0]=h>>>8;D[g+2|0]=h>>>16;D[g+3|0]=h>>>24;D[g+4|0]=e;D[g+5|0]=e>>>8;D[g+6|0]=e>>>16;D[g+7|0]=e>>>24;D[g+28|0]=0;F[i>>2]=-1;e=i|4;uj(e,g,28);k=D[i+15|0];F[f>>2]=F[i>>2];h=f+4|0;d:{if((k|0)>=0){k=F[e+4>>2];F[h>>2]=F[e>>2];F[h+4>>2]=k;F[h+8>>2]=F[e+8>>2];F[f+16>>2]=0;break d}uj(h,F[i+4>>2],F[i+8>>2]);e=D[i+15|0];F[f+16>>2]=0;if((e|0)>=0){break d}oj(F[i+4>>2])}oj(g)}fa=i+16|0;e=F[f>>2];e:{if(e){F[a>>2]=e;if(D[f+15|0]>=0){a=f|4;b=F[a+4>>2];F[j>>2]=F[a>>2];F[j+4>>2]=b;F[j+8>>2]=F[a+8>>2];break e}uj(j,F[f+4>>2],F[f+8>>2]);break e}e=F[f+16>>2];F[f+16>>2]=0;dg(a,e,b,c,d);if(!F[a>>2]){if(D[j+11|0]<0){oj(F[j>>2])}F[a>>2]=0;F[a+4>>2]=0;F[a+8>>2]=0;F[a+12>>2]=0}ja[F[F[e>>2]+4>>2]](e)}a=F[f+16>>2];F[f+16>>2]=0;if(a){ja[F[F[a>>2]+4>>2]](a)}if(D[f+15|0]>=0){break a}oj(F[f+4>>2])}fa=f+80|0}function ze(a){a=a|0;var b=0,c=0,d=0,e=0,f=0;b=F[a+32>>2];e=F[b+16>>2];d=F[b+12>>2];c=F[b+20>>2];if(I[b+8>>2]>e>>>0&(d|0)>=(c|0)|(c|0)<(d|0)){f=G[e+F[b>>2]|0];d=e+1|0;c=d?c:c+1|0;F[b+16>>2]=d;F[b+20>>2]=c;b=F[a+48>>2];F[a+48>>2]=0;if(b){ja[F[F[b>>2]+4>>2]](b)}a:{b:{c:{d:{switch(f|0){case 0:b=rj(384);F[b>>2]=11384;Ti(b+4|0,0,80);F[b+96>>2]=0;F[b+100>>2]=0;F[b+92>>2]=-1;F[b+84>>2]=-1;F[b+88>>2]=-1;F[b+104>>2]=0;F[b+108>>2]=0;F[b+112>>2]=0;F[b+116>>2]=0;F[b+120>>2]=0;F[b+124>>2]=0;F[b+128>>2]=0;F[b+132>>2]=0;F[b+136>>2]=0;F[b+140>>2]=0;F[b+144>>2]=0;F[b+148>>2]=0;F[b+156>>2]=0;F[b+160>>2]=0;F[b+152>>2]=1065353216;F[b+164>>2]=0;F[b+168>>2]=0;F[b+172>>2]=0;F[b+176>>2]=0;F[b+180>>2]=0;F[b+184>>2]=0;F[b+188>>2]=0;F[b+192>>2]=0;F[b+196>>2]=0;F[b+200>>2]=0;F[b+204>>2]=0;F[b+208>>2]=0;F[b+212>>2]=-1;F[b+216>>2]=0;F[b+220>>2]=0;F[b+224>>2]=0;ng(b+232|0);ng(b+272|0);c=b+312|0;F[c>>2]=0;F[c+4>>2]=0;D[c+5|0]=0;D[c+6|0]=0;D[c+7|0]=0;D[c+8|0]=0;D[c+9|0]=0;D[c+10|0]=0;D[c+11|0]=0;D[c+12|0]=0;ng(b+328|0);F[b+376>>2]=0;F[b+368>>2]=0;F[b+372>>2]=0;break c;case 1:b=rj(424);F[b>>2]=11436;Ti(b+4|0,0,80);F[b+96>>2]=0;F[b+100>>2]=0;F[b+92>>2]=-1;F[b+84>>2]=-1;F[b+88>>2]=-1;F[b+104>>2]=0;F[b+108>>2]=0;F[b+112>>2]=0;F[b+116>>2]=0;F[b+120>>2]=0;F[b+124>>2]=0;F[b+128>>2]=0;F[b+132>>2]=0;F[b+136>>2]=0;F[b+140>>2]=0;F[b+144>>2]=0;F[b+148>>2]=0;F[b+156>>2]=0;F[b+160>>2]=0;F[b+152>>2]=1065353216;F[b+164>>2]=0;F[b+168>>2]=0;F[b+172>>2]=0;F[b+176>>2]=0;F[b+180>>2]=0;F[b+184>>2]=0;F[b+188>>2]=0;F[b+192>>2]=0;F[b+196>>2]=0;F[b+200>>2]=0;F[b+204>>2]=0;F[b+208>>2]=0;F[b+212>>2]=-1;F[b+216>>2]=0;F[b+220>>2]=0;F[b+224>>2]=0;ng(b+232|0);ng(b+272|0);c=b+312|0;F[c>>2]=0;F[c+4>>2]=0;D[c+5|0]=0;D[c+6|0]=0;D[c+7|0]=0;D[c+8|0]=0;D[c+9|0]=0;D[c+10|0]=0;D[c+11|0]=0;D[c+12|0]=0;ng(b+328|0);F[b+392>>2]=0;F[b+396>>2]=0;F[b+384>>2]=0;F[b+388>>2]=0;F[b+376>>2]=0;F[b+380>>2]=0;F[b+368>>2]=0;F[b+372>>2]=0;c=b+400|0;F[c>>2]=0;F[c+4>>2]=0;D[c+5|0]=0;D[c+6|0]=0;D[c+7|0]=0;D[c+8|0]=0;D[c+9|0]=0;D[c+10|0]=0;D[c+11|0]=0;D[c+12|0]=0;F[b+416>>2]=-1;F[b+420>>2]=-1;break c;case 2:break d;default:break b}}b=rj(440);F[b>>2]=11484;Ti(b+4|0,0,80);F[b+96>>2]=0;F[b+100>>2]=0;F[b+92>>2]=-1;F[b+84>>2]=-1;F[b+88>>2]=-1;F[b+104>>2]=0;F[b+108>>2]=0;F[b+112>>2]=0;F[b+116>>2]=0;F[b+120>>2]=0;F[b+124>>2]=0;F[b+128>>2]=0;F[b+132>>2]=0;F[b+136>>2]=0;F[b+140>>2]=0;F[b+144>>2]=0;F[b+148>>2]=0;F[b+156>>2]=0;F[b+160>>2]=0;F[b+152>>2]=1065353216;F[b+164>>2]=0;F[b+168>>2]=0;F[b+172>>2]=0;F[b+176>>2]=0;F[b+180>>2]=0;F[b+184>>2]=0;F[b+188>>2]=0;F[b+192>>2]=0;F[b+196>>2]=0;F[b+200>>2]=0;F[b+204>>2]=0;F[b+208>>2]=0;F[b+212>>2]=-1;F[b+216>>2]=0;F[b+220>>2]=0;F[b+224>>2]=0;ng(b+232|0);ng(b+272|0);c=b+312|0;F[c>>2]=0;F[c+4>>2]=0;D[c+5|0]=0;D[c+6|0]=0;D[c+7|0]=0;D[c+8|0]=0;D[c+9|0]=0;D[c+10|0]=0;D[c+11|0]=0;D[c+12|0]=0;ng(b+328|0);F[b+392>>2]=0;F[b+396>>2]=0;F[b+384>>2]=0;F[b+388>>2]=0;F[b+376>>2]=0;F[b+380>>2]=0;F[b+368>>2]=0;F[b+372>>2]=0;F[b+416>>2]=0;F[b+420>>2]=0;F[b+408>>2]=2;F[b+412>>2]=7;F[b+400>>2]=-1;F[b+404>>2]=-1;F[b+424>>2]=0;F[b+428>>2]=0;F[b+432>>2]=0;F[b+436>>2]=0}c=F[a+48>>2];F[a+48>>2]=b;if(!c){break a}ja[F[F[c>>2]+4>>2]](c)}b=F[a+48>>2];if(b){break a}return 0}a=ja[F[F[b>>2]+8>>2]](b,a)|0}else{a=0}return a|0}function pb(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0;f=fa-704|0;fa=f;m=1;a:{b:{c:{d:{if(H[b+38>>1]<515){break d}m=0;c=F[b+20>>2];e=F[b+12>>2];d=F[b+16>>2];if((c|0)>=(e|0)&d>>>0>=I[b+8>>2]|(c|0)>(e|0)){break d}o=G[d+F[b>>2]|0];d=d+1|0;c=d?c:c+1|0;F[b+16>>2]=d;F[b+20>>2]=c;n=F[F[(ja[F[F[a>>2]+28>>2]](a)|0)+4>>2]+80>>2];c=ja[F[F[a>>2]+24>>2]](a)|0;F[f+696>>2]=0;F[f+688>>2]=0;F[f+692>>2]=0;if(c){if(c>>>0>=214748365){break c}c=L(c,20);d=rj(c);F[f+688>>2]=d;F[f+696>>2]=c+d;c=c-20|0;c=(c-((c>>>0)%20|0)|0)+20|0;q=f,r=Ti(d,0,c)+c|0,F[q+692>>2]=r}e:{if((ja[F[F[a>>2]+24>>2]](a)|0)>0){while(1){c=ja[F[F[a>>2]+20>>2]](a,l)|0;e=F[F[F[(ja[F[F[a>>2]+28>>2]](a)|0)+4>>2]+8>>2]+(c<<2)>>2];ab(e,n);D[e+84|0]=1;F[e+72>>2]=F[e+68>>2];c=F[e+28>>2];if(c>>>0>9){break e}f:{g:{h:{d=1<>2],g,6,0,c,c>>31);c=$a(rj(96),d);F[f+656>>2]=c;D[c+84|0]=1;F[c+72>>2]=F[c+68>>2];ab(c,n);c=F[a+64>>2];if(c>>>0>=I[a+68>>2]){break h}d=F[f+656>>2];F[f+656>>2]=0;F[c>>2]=d;d=c+4|0;F[a+64>>2]=d;break g}d=0;if(D[e+24|0]<=0){break f}while(1){c=F[a+52>>2];g=F[a+56>>2];i:{if(c>>>0>>0){F[c>>2]=0;F[a+52>>2]=c+4;break i}h=F[a+48>>2];k=c-h|0;j=k>>2;c=j+1|0;if(c>>>0>=1073741824){break b}p=j<<2;g=g-h|0;j=g>>1;g=g>>>0<2147483644?c>>>0>>0?j:c:1073741823;if(g){if(g>>>0>=1073741824){break a}c=rj(g<<2)}else{c=0}j=p+c|0;F[j>>2]=0;if((k|0)>0){Ri(c,h,k)}F[a+56>>2]=c+(g<<2);F[a+52>>2]=j+4;F[a+48>>2]=c;if(!h){break i}oj(h)}d=d+1|0;if((d|0)>2];h=F[a+64>>2]-e>>2;c=h+1|0;if(c>>>0<1073741824){e=F[a+68>>2]-e|0;g=e>>1;e=e>>>0<2147483644?c>>>0>>0?g:c:1073741823;if(e){if(e>>>0>=1073741824){break l}d=rj(e<<2)}g=F[f+656>>2];F[f+656>>2]=0;c=(h<<2)+d|0;F[c>>2]=g;h=(e<<2)+d|0;g=c+4|0;d=F[a+64>>2];e=F[a+60>>2];if((d|0)==(e|0)){break k}while(1){d=d-4|0;k=F[d>>2];F[d>>2]=0;c=c-4|0;F[c>>2]=k;if((d|0)!=(e|0)){continue}break}F[a+68>>2]=h;d=F[a+64>>2];F[a+64>>2]=g;e=F[a+60>>2];F[a+60>>2]=c;if((d|0)==(e|0)){break j}while(1){d=d-4|0;c=F[d>>2];F[d>>2]=0;if(c){qb(c)}if((d|0)!=(e|0)){continue}break}break j}Ia();V()}Wa();V()}F[a+68>>2]=h;F[a+64>>2]=g;F[a+60>>2]=c}if(e){oj(e)}d=F[a+64>>2]}e=F[d-4>>2];c=F[f+656>>2];F[f+656>>2]=0;if(!c){break f}qb(c)}h=F[e+28>>2];c=h-1|0;if(c>>>0<=10){d=F[(c<<2)+13584>>2]}else{d=-1}c=F[f+688>>2]+L(l,20)|0;g=D[e+24|0];F[c+16>>2]=g;F[c+12>>2]=(d|0)>0?d:0;F[c+8>>2]=h;F[c+4>>2]=i;F[c>>2]=e;i=g+i|0;l=l+1|0;if((ja[F[F[a>>2]+24>>2]](a)|0)>(l|0)){continue}break}}a=rb(f+656|0,f+688|0);m:{n:{o:{switch(o|0){case 0:c=ub(f,i);b=sb(c,b,a);tb(c);if(b){break n}break m;case 1:c=ub(f,i);b=vb(c,b,a);tb(c);if(b){break n}break m;case 2:c=yb(f,i);b=wb(c,b,a);xb(c);if(b){break n}break m;case 3:c=yb(f,i);b=zb(c,b,a);xb(c);if(b){break n}break m;case 4:c=Cb(f,i);b=Ab(c,b,a);Bb(c);if(b){break n}break m;case 5:c=Cb(f,i);b=Db(c,b,a);Bb(c);if(b){break n}break m;case 6:break o;default:break m}}c=Cb(f,i);b=Eb(c,b,a);Bb(c);if(!b){break m}}m=1}b=F[a+16>>2];if(b){F[a+20>>2]=b;oj(b)}b=F[a>>2];if(!b){break e}F[a+4>>2]=b;oj(b)}a=F[f+688>>2];if(!a){break d}F[f+692>>2]=a;oj(a)}fa=f+704|0;return m|0}Ia();V()}Ia();V()}Wa();V()}function ud(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0;f=fa-96|0;fa=f;d=F[a+16>>2];D[f+92|0]=1;F[f+88>>2]=b;F[f+84>>2]=b;F[f+80>>2]=d;a:{if((b|0)==-1){break a}l=F[a+20>>2];e=F[l>>2];d=F[F[d>>2]+(b<<2)>>2];if(d>>>0>=F[l+4>>2]-e>>2>>>0){break a}d=F[F[a+8>>2]+(F[e+(d<<2)>>2]<<2)>>2];e=F[a+4>>2];if(!G[e+84|0]){d=F[F[e+68>>2]+(d<<2)>>2]}F[f+72>>2]=0;F[f+76>>2]=0;l=f- -64|0;F[l>>2]=0;F[l+4>>2]=0;F[f+56>>2]=0;F[f+60>>2]=0;Xc(e,d,D[e+24|0],f+56|0);d=b+1|0;l=(d>>>0)%3|0?d:b-2|0;i=((b>>>0)%3|0?-1:2)+b|0;b:{c:{while(1){e=l;d=i;d:{if(!F[a+28>>2]){break d}d=b+1|0;e=(d>>>0)%3|0?d:b-2|0;d=b-1|0;if((b>>>0)%3|0){break d}d=b+2|0}if((e|0)==-1){break b}h=F[a+20>>2];b=F[h>>2];e=F[F[F[a+16>>2]>>2]+(e<<2)>>2];if(e>>>0>=F[h+4>>2]-b>>2>>>0){break b}e=F[F[a+8>>2]+(F[(e<<2)+b>>2]<<2)>>2];b=F[a+4>>2];if(!G[b+84|0]){e=F[F[b+68>>2]+(e<<2)>>2]}F[f+48>>2]=0;F[f+52>>2]=0;F[f+40>>2]=0;F[f+44>>2]=0;F[f+32>>2]=0;F[f+36>>2]=0;Xc(b,e,D[b+24|0],f+32|0);if((d|0)==-1){break c}e=F[a+20>>2];b=F[e>>2];d=F[F[F[a+16>>2]>>2]+(d<<2)>>2];if(d>>>0>=F[e+4>>2]-b>>2>>>0){break c}e=F[F[a+8>>2]+(F[b+(d<<2)>>2]<<2)>>2];b=F[a+4>>2];if(!G[b+84|0]){e=F[F[b+68>>2]+(e<<2)>>2]}F[f+24>>2]=0;F[f+28>>2]=0;F[f+16>>2]=0;F[f+20>>2]=0;F[f+8>>2]=0;F[f+12>>2]=0;Xc(b,e,D[b+24|0],f+8|0);d=F[f+8>>2];b=F[f+56>>2];e=d-b|0;h=F[f+60>>2];j=F[f+12>>2]-(h+(b>>>0>d>>>0)|0)|0;p=F[f+40>>2];d=F[f+64>>2];s=p-d|0;t=F[f+68>>2];p=F[f+44>>2]-(t+(d>>>0>p>>>0)|0)|0;u=Zj(e,j,s,p);v=o-u|0;o=g-(ia+(o>>>0>>0)|0)|0;k=v;g=F[f+16>>2];u=g-d|0;t=F[f+20>>2]-((d>>>0>g>>>0)+t|0)|0;g=F[f+32>>2];v=g-b|0;h=F[f+36>>2]-((b>>>0>g>>>0)+h|0)|0;d=Zj(u,t,v,h);b=k+d|0;g=ia+o|0;g=b>>>0>>0?g+1|0:g;o=b;x=m;k=e;d=j;b=F[f+48>>2];m=F[f+72>>2];e=b-m|0;j=F[f+76>>2];w=F[f+52>>2]-(j+(b>>>0>>0)|0)|0;k=Zj(k,d,e,w);d=x+k|0;b=ia+n|0;b=d>>>0>>0?b+1|0:b;n=F[f+24>>2];k=n-m|0;j=F[f+28>>2]-((m>>>0>n>>>0)+j|0)|0;n=Zj(k,j,v,h);m=d-n|0;n=b-(ia+(d>>>0>>0)|0)|0;b=Zj(u,t,e,w);d=q-b|0;b=r-(ia+(b>>>0>q>>>0)|0)|0;r=Zj(k,j,s,p);q=r+d|0;b=ia+b|0;b=q>>>0>>0?b+1|0:b;r=b;vd(f+80|0);b=F[f+88>>2];if((b|0)!=-1){continue}break}b=r>>31;d=b^q;j=d-b|0;h=(b^r)-((b>>>0>d>>>0)+b|0)|0;p=-1;d=2147483647;b=n>>31;l=b^m;e=(b^n)-((b>>>0>l>>>0)+b|0)|0;b=l-b|0;s=b^-1;i=e^2147483647;k=g;e:{f:{if(!F[a+28>>2]){if((i|0)==(h|0)&j>>>0>s>>>0|i>>>0>>0){break e}i=g;a=b;d=b+j|0;b=e+h|0;b=a>>>0>d>>>0?b+1|0:b;a=g>>31;h=a^o;j=h-a|0;g=d+j|0;e=(a^i)-((a>>>0>h>>>0)+a|0)|0;a=g;g=e^2147483647;g=(g|0)==(b|0)&(j^-1)>>>0>>0|b>>>0>g>>>0;a=g?-1:a;if(!(g&0)&(a|0)<=536870912|(a|0)<536870912){break e}b=0;a=a>>>29|0;break f}g:{if((i|0)==(h|0)&j>>>0>s>>>0|i>>>0>>0){break g}a=b;i=b+j|0;b=e+h|0;b=a>>>0>i>>>0?b+1|0:b;a=i;h=g;e=g>>31;g=e;i=e^o;e=(e^h)-(e+(e>>>0>i>>>0)|0)|0;g=i-g|0;i=e^2147483647;if((i|0)==(b|0)&(g^-1)>>>0>>0|b>>>0>i>>>0){break g}b=b+e|0;a=a+g|0;b=a>>>0>>0?b+1|0:b;p=a;d=b;if(!b&a>>>0<536870913){break e}}b=d>>>29|0;a=(d&536870911)<<3|p>>>29}o=_j(o,k,a,b);m=_j(m,n,a,b);q=_j(q,r,a,b)}F[c+8>>2]=o;F[c+4>>2]=m;F[c>>2]=q;fa=f+96|0;return}yc();V()}yc();V()}yc();V()}function Mi(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0;a:{if((b|0)<0){break a}c=F[a+12>>2];d=F[a+8>>2];if(c-d>>2>>>0<=b>>>0){break a}e=d+(b<<2)|0;d=F[e>>2];i=F[d+60>>2];g=F[d+56>>2];d=e+4|0;b:{if((d|0)!=(c|0)){while(1){h=F[d>>2];F[d>>2]=0;f=F[e>>2];F[e>>2]=h;if(f){qb(f)}e=e+4|0;d=d+4|0;if((d|0)!=(c|0)){continue}break}c=F[a+12>>2];if((e|0)==(c|0)){break b}}while(1){c=c-4|0;d=F[c>>2];F[c>>2]=0;if(d){qb(d)}if((c|0)!=(e|0)){continue}break}}F[a+12>>2]=e;f=F[a+4>>2];c:{if(!f|(i|0)<0){break c}c=F[f+24>>2];d=F[f+28>>2];if((c|0)==(d|0)){break c}while(1){if((i|0)==F[F[c>>2]+24>>2]){e=c+4|0;i=F[f+28>>2];d:{if((e|0)!=(i|0)){while(1){h=F[e>>2];F[e>>2]=0;d=F[c>>2];F[c>>2]=h;if(d){gg(d+12|0,F[d+16>>2]);hg(d,F[d+4>>2]);oj(d)}c=c+4|0;e=e+4|0;if((i|0)!=(e|0)){continue}break}e=F[f+28>>2];if((e|0)==(c|0)){break d}}while(1){e=e-4|0;d=F[e>>2];F[e>>2]=0;if(d){gg(d+12|0,F[d+16>>2]);hg(d,F[d+4>>2]);oj(d)}if((c|0)!=(e|0)){continue}break}}F[f+28>>2]=c;break c}c=c+4|0;if((d|0)!=(c|0)){continue}break}}e:{if((g|0)>4){break e}f:{e=L(g,12)+a|0;c=F[e+20>>2];d=F[e+24>>2];if((c|0)==(d|0)){break f}while(1){if(F[c>>2]==(b|0)){break f}c=c+4|0;if((d|0)!=(c|0)){continue}break}break e}if((c|0)==(d|0)){break e}f=c+4|0;i=d-f|0;if((d|0)!=(f|0)){Si(c,f,i)}F[e+24>>2]=c+i}c=F[a+24>>2];e=F[a+20>>2];g:{if((c|0)==(e|0)){break g}d=c-e|0;c=d>>2;f=c>>>0>1?c:1;i=f&1;c=0;if(d>>>0>=8){f=f&-2;d=0;while(1){g=c<<2;h=g+e|0;j=F[h>>2];if((j|0)>(b|0)){F[h>>2]=j-1}g=e+(g|4)|0;h=F[g>>2];if((h|0)>(b|0)){F[g>>2]=h-1}c=c+2|0;d=d+2|0;if((f|0)!=(d|0)){continue}break}}if(!i){break g}c=e+(c<<2)|0;d=F[c>>2];if((d|0)<=(b|0)){break g}F[c>>2]=d-1}c=F[a+36>>2];e=F[a+32>>2];h:{if((c|0)==(e|0)){break h}d=c-e|0;c=d>>2;f=c>>>0>1?c:1;i=f&1;c=0;if(d>>>0>=8){f=f&-2;d=0;while(1){g=c<<2;h=g+e|0;j=F[h>>2];if((j|0)>(b|0)){F[h>>2]=j-1}g=e+(g|4)|0;h=F[g>>2];if((h|0)>(b|0)){F[g>>2]=h-1}c=c+2|0;d=d+2|0;if((f|0)!=(d|0)){continue}break}}if(!i){break h}c=e+(c<<2)|0;d=F[c>>2];if((d|0)<=(b|0)){break h}F[c>>2]=d-1}c=F[a+48>>2];e=F[a+44>>2];i:{if((c|0)==(e|0)){break i}d=c-e|0;c=d>>2;f=c>>>0>1?c:1;i=f&1;c=0;if(d>>>0>=8){f=f&-2;d=0;while(1){g=c<<2;h=g+e|0;j=F[h>>2];if((j|0)>(b|0)){F[h>>2]=j-1}g=e+(g|4)|0;h=F[g>>2];if((h|0)>(b|0)){F[g>>2]=h-1}c=c+2|0;d=d+2|0;if((f|0)!=(d|0)){continue}break}}if(!i){break i}c=e+(c<<2)|0;d=F[c>>2];if((d|0)<=(b|0)){break i}F[c>>2]=d-1}c=F[a+60>>2];e=F[a+56>>2];j:{if((c|0)==(e|0)){break j}d=c-e|0;c=d>>2;f=c>>>0>1?c:1;i=f&1;c=0;if(d>>>0>=8){f=f&-2;d=0;while(1){g=c<<2;h=g+e|0;j=F[h>>2];if((j|0)>(b|0)){F[h>>2]=j-1}g=e+(g|4)|0;h=F[g>>2];if((h|0)>(b|0)){F[g>>2]=h-1}c=c+2|0;d=d+2|0;if((f|0)!=(d|0)){continue}break}}if(!i){break j}c=e+(c<<2)|0;d=F[c>>2];if((d|0)<=(b|0)){break j}F[c>>2]=d-1}c=F[a+72>>2];a=F[a+68>>2];if((c|0)==(a|0)){break a}d=c-a|0;c=d>>2;e=c>>>0>1?c:1;f=e&1;c=0;if(d>>>0>=8){e=e&-2;d=0;while(1){i=c<<2;g=i+a|0;h=F[g>>2];if((h|0)>(b|0)){F[g>>2]=h-1}i=a+(i|4)|0;g=F[i>>2];if((g|0)>(b|0)){F[i>>2]=g-1}c=c+2|0;d=d+2|0;if((e|0)!=(d|0)){continue}break}}if(!f){break a}d=b;a=a+(c<<2)|0;b=F[a>>2];if((d|0)>=(b|0)){break a}F[a>>2]=b-1}}function oj(a){a=a|0;var b=0,c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0;a:{if(!a){break a}d=a-8|0;b=F[a-4>>2];a=b&-8;f=d+a|0;b:{if(b&1){break b}if(!(b&3)){break a}b=F[d>>2];d=d-b|0;if(d>>>0>>0<=255){e=F[d+8>>2];b=b>>>3|0;c=F[d+12>>2];if((c|0)==(e|0)){i=17184,j=F[4296]&bk(b),F[i>>2]=j;break b}F[e+12>>2]=c;F[c+8>>2]=e;break b}h=F[d+24>>2];b=F[d+12>>2];c:{if((d|0)!=(b|0)){c=F[d+8>>2];F[c+12>>2]=b;F[b+8>>2]=c;break c}d:{e=d+20|0;c=F[e>>2];if(c){break d}e=d+16|0;c=F[e>>2];if(c){break d}b=0;break c}while(1){g=e;b=c;e=b+20|0;c=F[e>>2];if(c){continue}e=b+16|0;c=F[b+16>>2];if(c){continue}break}F[g>>2]=0}if(!h){break b}e=F[d+28>>2];c=(e<<2)+17488|0;e:{if(F[c>>2]==(d|0)){F[c>>2]=b;if(b){break e}i=17188,j=F[4297]&bk(e),F[i>>2]=j;break b}F[h+(F[h+16>>2]==(d|0)?16:20)>>2]=b;if(!b){break b}}F[b+24>>2]=h;c=F[d+16>>2];if(c){F[b+16>>2]=c;F[c+24>>2]=b}c=F[d+20>>2];if(!c){break b}F[b+20>>2]=c;F[c+24>>2]=b;break b}b=F[f+4>>2];if((b&3)!=3){break b}F[4298]=a;F[f+4>>2]=b&-2;F[d+4>>2]=a|1;F[a+d>>2]=a;return}if(d>>>0>=f>>>0){break a}b=F[f+4>>2];if(!(b&1)){break a}f:{if(!(b&2)){if(F[4302]==(f|0)){F[4302]=d;a=F[4299]+a|0;F[4299]=a;F[d+4>>2]=a|1;if(F[4301]!=(d|0)){break a}F[4298]=0;F[4301]=0;return}if(F[4301]==(f|0)){F[4301]=d;a=F[4298]+a|0;F[4298]=a;F[d+4>>2]=a|1;F[a+d>>2]=a;return}a=(b&-8)+a|0;g:{if(b>>>0<=255){e=F[f+8>>2];b=b>>>3|0;c=F[f+12>>2];if((c|0)==(e|0)){i=17184,j=F[4296]&bk(b),F[i>>2]=j;break g}F[e+12>>2]=c;F[c+8>>2]=e;break g}h=F[f+24>>2];b=F[f+12>>2];h:{if((f|0)!=(b|0)){c=F[f+8>>2];F[c+12>>2]=b;F[b+8>>2]=c;break h}i:{e=f+20|0;c=F[e>>2];if(c){break i}e=f+16|0;c=F[e>>2];if(c){break i}b=0;break h}while(1){g=e;b=c;e=b+20|0;c=F[e>>2];if(c){continue}e=b+16|0;c=F[b+16>>2];if(c){continue}break}F[g>>2]=0}if(!h){break g}e=F[f+28>>2];c=(e<<2)+17488|0;j:{if(F[c>>2]==(f|0)){F[c>>2]=b;if(b){break j}i=17188,j=F[4297]&bk(e),F[i>>2]=j;break g}F[h+(F[h+16>>2]==(f|0)?16:20)>>2]=b;if(!b){break g}}F[b+24>>2]=h;c=F[f+16>>2];if(c){F[b+16>>2]=c;F[c+24>>2]=b}c=F[f+20>>2];if(!c){break g}F[b+20>>2]=c;F[c+24>>2]=b}F[d+4>>2]=a|1;F[a+d>>2]=a;if(F[4301]!=(d|0)){break f}F[4298]=a;return}F[f+4>>2]=b&-2;F[d+4>>2]=a|1;F[a+d>>2]=a}if(a>>>0<=255){b=(a&-8)+17224|0;c=F[4296];a=1<<(a>>>3);k:{if(!(c&a)){F[4296]=a|c;a=b;break k}a=F[b+8>>2]}F[b+8>>2]=d;F[a+12>>2]=d;F[d+12>>2]=b;F[d+8>>2]=a;return}e=31;if(a>>>0<=16777215){b=a>>>8|0;g=b+1048320>>>16&8;b=b<>>16&4;b=b<>>16&2;b=(b<>>15|0)-(c|(e|g))|0;e=(b<<1|a>>>b+21&1)+28|0}F[d+28>>2]=e;F[d+16>>2]=0;F[d+20>>2]=0;g=(e<<2)+17488|0;l:{m:{c=F[4297];b=1<>2]=d;F[d+24>>2]=g;break n}e=a<<((e|0)==31?0:25-(e>>>1|0)|0);b=F[g>>2];while(1){c=b;if((F[b+4>>2]&-8)==(a|0)){break m}b=e>>>29|0;e=e<<1;g=c+(b&4)|0;b=F[g+16>>2];if(b){continue}break}F[g+16>>2]=d;F[d+24>>2]=c}F[d+12>>2]=d;F[d+8>>2]=d;break l}a=F[c+8>>2];F[a+12>>2]=d;F[c+8>>2]=d;F[d+24>>2]=0;F[d+12>>2]=c;F[d+8>>2]=a}a=F[4304]-1|0;F[4304]=a?a:-1}}function fd(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0;F[a+8>>2]=e;n=a+32|0;h=F[n>>2];f=F[a+36>>2]-h>>2;a:{if(f>>>0>>0){La(n,e-f|0);d=F[a+8>>2];break a}d=e;if(d>>>0>=f>>>0){break a}F[a+36>>2]=h+(e<<2);d=e}s=F[a+52>>2];p=F[a+48>>2];f=0;h=(e&1073741823)!=(e|0)?-1:e<<2;m=Ti(rj(h),0,h);b:{if((d|0)<=0){break b}g=F[a+32>>2];while(1){d=f<<2;h=F[d+m>>2];j=F[a+16>>2];c:{if((h|0)>(j|0)){F[d+g>>2]=j;break c}d=d+g|0;j=F[a+12>>2];if((j|0)>(h|0)){F[d>>2]=j;break c}F[d>>2]=h}d=F[a+8>>2];f=f+1|0;if((d|0)>(f|0)){continue}break}if((d|0)<=0){break b}f=0;while(1){h=f<<2;d=h+c|0;h=F[b+h>>2]+F[g+h>>2]|0;F[d>>2]=h;d:{if((h|0)>F[a+16>>2]){i=h-F[a+20>>2]|0}else{if((h|0)>=F[a+12>>2]){break d}i=h+F[a+20>>2]|0}F[d>>2]=i}d=F[a+8>>2];f=f+1|0;if((d|0)>(f|0)){continue}break}}f=F[a+56>>2];q=F[f>>2];f=F[f+4>>2]-q|0;if((f|0)>=5){o=f>>>2|0;t=o>>>0>2?o:2;u=e&-2;v=e&1;h=1;while(1){e:{f:{if((h|0)!=(o|0)){r=L(e,h);f=F[(h<<2)+q>>2];if((f|0)==-1){break f}f=F[F[p+12>>2]+(f<<2)>>2];if((f|0)==-1){break f}j=F[s>>2];g=F[p>>2];k=F[j+(F[g+(f<<2)>>2]<<2)>>2];i=f+1|0;i=(i>>>0)%3|0?i:f-2|0;if((i|0)!=-1){i=F[g+(i<<2)>>2]}else{i=-1}g:{h:{if((f>>>0)%3|0){f=f-1|0;break h}f=f+2|0;l=-1;if((f|0)==-1){break g}}l=F[g+(f<<2)>>2]}if((h|0)<=(k|0)){break f}f=F[(i<<2)+j>>2];if((f|0)>=(h|0)){break f}g=F[j+(l<<2)>>2];if((g|0)>=(h|0)){break f}i:{if((e|0)<=0){break i}g=L(e,g);j=L(e,f);k=L(e,k);f=0;l=0;if((e|0)!=1){while(1){F[(f<<2)+m>>2]=(F[(f+g<<2)+c>>2]+F[(f+j<<2)+c>>2]|0)-F[(f+k<<2)+c>>2];i=f|1;F[(i<<2)+m>>2]=(F[(g+i<<2)+c>>2]+F[(j+i<<2)+c>>2]|0)-F[(i+k<<2)+c>>2];f=f+2|0;l=l+2|0;if((u|0)!=(l|0)){continue}break}}if(!v){break i}F[(f<<2)+m>>2]=(F[(f+g<<2)+c>>2]+F[(f+j<<2)+c>>2]|0)-F[(f+k<<2)+c>>2]}if((d|0)<=0){break e}j=F[n>>2];f=0;while(1){d=f<<2;g=F[d+m>>2];k=F[a+16>>2];j:{if((g|0)>(k|0)){F[d+j>>2]=k;break j}d=d+j|0;k=F[a+12>>2];if((k|0)>(g|0)){F[d>>2]=k;break j}F[d>>2]=g}d=F[a+8>>2];f=f+1|0;if((d|0)>(f|0)){continue}break}f=0;if((d|0)<=0){break e}d=r<<2;k=d+c|0;i=b+d|0;while(1){g=f<<2;d=g+k|0;g=F[g+i>>2]+F[g+j>>2]|0;F[d>>2]=g;k:{if((g|0)>F[a+16>>2]){l=g-F[a+20>>2]|0}else{if((g|0)>=F[a+12>>2]){break k}l=g+F[a+20>>2]|0}F[d>>2]=l}d=F[a+8>>2];f=f+1|0;if((d|0)>(f|0)){continue}break}break e}yc();V()}if((d|0)<=0){break e}k=(L(h-1|0,e)<<2)+c|0;j=F[n>>2];f=0;while(1){d=f<<2;g=F[d+k>>2];i=F[a+16>>2];l:{if((g|0)>(i|0)){F[d+j>>2]=i;break l}d=d+j|0;i=F[a+12>>2];if((i|0)>(g|0)){F[d>>2]=i;break l}F[d>>2]=g}d=F[a+8>>2];f=f+1|0;if((d|0)>(f|0)){continue}break}f=0;if((d|0)<=0){break e}d=r<<2;k=d+c|0;i=b+d|0;while(1){g=f<<2;d=g+k|0;g=F[g+i>>2]+F[g+j>>2]|0;F[d>>2]=g;m:{if((g|0)>F[a+16>>2]){l=g-F[a+20>>2]|0}else{if((g|0)>=F[a+12>>2]){break m}l=g+F[a+20>>2]|0}F[d>>2]=l}d=F[a+8>>2];f=f+1|0;if((d|0)>(f|0)){continue}break}}h=h+1|0;if((t|0)!=(h|0)){continue}break}}oj(m);return 1}function df(a,b,c,d){var e=0,f=0,g=0,h=0,i=0,j=0,k=M(0),l=0,m=0,n=M(0);j=F[c>>2];a:{b:{f=F[b+4>>2];if(!f){break b}c=f-1|0;if(c&f){e=j;if(e>>>0>=f>>>0){e=(j>>>0)%(f>>>0)|0}c=F[F[b>>2]+(e<<2)>>2];if(!c){break b}while(1){c=F[c>>2];if(!c){break b}g=F[c+4>>2];if((g|0)!=(j|0)){if(f>>>0<=g>>>0){g=(g>>>0)%(f>>>0)|0}if((e|0)!=(g|0)){break b}}if(F[c+8>>2]!=(j|0)){continue}break}b=0;break a}e=c&j;c=F[F[b>>2]+(e<<2)>>2];if(!c){break b}g=f-1|0;while(1){c=F[c>>2];if(!c){break b}h=F[c+4>>2];if((h|0)!=(j|0)&(g&h)!=(e|0)){break b}if(F[c+8>>2]!=(j|0)){continue}break}b=0;break a}c=rj(16);d=F[F[d>>2]>>2];F[c+12>>2]=0;F[c+8>>2]=d;F[c+4>>2]=j;F[c>>2]=0;n=M(F[b+12>>2]+1>>>0);k=J[b+16>>2];c:{if(n>M(k*M(f>>>0))?0:f){break c}d=2;g=(f-1&f)!=0|f>>>0<3|f<<1;k=M(S(M(n/k)));d:{if(k=M(0)){e=~~k>>>0;break d}e=0}e=e>>>0>>0?g:e;e:{if((e|0)==1){break e}if(!(e&e-1)){d=e;break e}d=kj(e);f=F[b+4>>2]}f:{if(d>>>0<=f>>>0){if(d>>>0>=f>>>0){break f}g=f>>>0<3;k=M(S(M(M(I[b+12>>2])/J[b+16>>2])));g:{if(k=M(0)){e=~~k>>>0;break g}e=0}h:{i:{if(g){break i}if(ak(f)>>>0>1){break i}e=e>>>0<2?e:1<<32-O(e-1|0);break h}e=kj(e)}d=d>>>0>e>>>0?d:e;if(f>>>0<=d>>>0){break f}}e=0;h=d;j:{k:{l:{if(d){if(h>>>0>=1073741824){break l}f=rj(h<<2);d=F[b>>2];F[b>>2]=f;if(d){oj(d)}F[b+4>>2]=h;if(h-1>>>0>=3){g=h&-4;d=0;while(1){f=e<<2;F[f+F[b>>2]>>2]=0;F[F[b>>2]+(f|4)>>2]=0;F[F[b>>2]+(f|8)>>2]=0;F[F[b>>2]+(f|12)>>2]=0;e=e+4|0;d=d+4|0;if((g|0)!=(d|0)){continue}break}}d=h&3;if(d){while(1){F[F[b>>2]+(e<<2)>>2]=0;e=e+1|0;i=i+1|0;if((d|0)!=(i|0)){continue}break}}d=F[b+8>>2];if(!d){break j}e=b+8|0;g=F[d+4>>2];f=h-1|0;if(!(f&h)){break k}g=g>>>0>=h>>>0?(g>>>0)%(h>>>0)|0:g;F[F[b>>2]+(g<<2)>>2]=e;while(1){f=F[d>>2];if(!f){break j}i=F[f+4>>2];if(h>>>0<=i>>>0){i=(i>>>0)%(h>>>0)|0}if((g|0)==(i|0)){d=f;continue}e=f;l=i<<2;m=l+F[b>>2]|0;if(F[m>>2]){while(1){i=e;e=F[e>>2];if(F[f+8>>2]==F[e+8>>2]?e:0){continue}break}F[d>>2]=e;F[i>>2]=F[F[l+F[b>>2]>>2]>>2];F[F[l+F[b>>2]>>2]>>2]=f}else{F[m>>2]=d;d=f;g=i}continue}}d=F[b>>2];F[b>>2]=0;if(d){oj(d)}F[b+4>>2]=0;break j}Wa();V()}g=f&g;F[F[b>>2]+(g<<2)>>2]=e;f=F[d>>2];if(!f){break j}l=h-1|0;while(1){h=l&F[f+4>>2];m:{if((h|0)==(g|0)){d=f;break m}e=f;i=h<<2;m=i+F[b>>2]|0;if(F[m>>2]){while(1){h=e;e=F[e>>2];if(F[f+8>>2]==F[e+8>>2]?e:0){continue}break}F[d>>2]=e;F[h>>2]=F[F[i+F[b>>2]>>2]>>2];F[F[i+F[b>>2]>>2]>>2]=f;break m}F[m>>2]=d;d=f;g=h}f=F[d>>2];if(f){continue}break}}}f=F[b+4>>2];d=f-1|0;if(!(d&f)){e=d&j;break c}if(f>>>0>j>>>0){e=j;break c}e=(j>>>0)%(f>>>0)|0}e=F[b>>2]+(e<<2)|0;d=F[e>>2];n:{o:{if(!d){d=b+8|0;F[c>>2]=F[d>>2];F[b+8>>2]=c;F[e>>2]=d;d=F[c>>2];if(!d){break n}d=F[d+4>>2];e=f-1|0;p:{if(!(e&f)){d=d&e;break p}if(d>>>0>>0){break p}d=(d>>>0)%(f>>>0)|0}d=F[b>>2]+(d<<2)|0;break o}F[c>>2]=F[d>>2]}F[d>>2]=c}F[b+12>>2]=F[b+12>>2]+1;b=1}D[a+4|0]=b;F[a>>2]=c}function zi(a){var b=0,c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0;F[a+56>>2]=F[a+52>>2];F[a+44>>2]=F[a+40>>2];a:{b:{c:{e=F[a+64>>2];c=F[e+24>>2];if((c|0)!=F[e+28>>2]){while(1){d=b;i=F[(j<<2)+c>>2];d:{if((i|0)==-1){break d}b=F[a+56>>2];e:{if((b|0)!=F[a+60>>2]){F[b>>2]=d;F[a+56>>2]=b+4;break e}e=F[a+52>>2];c=b-e|0;g=c>>2;b=g+1|0;if(b>>>0>=1073741824){break c}f=c>>1;f=c>>>0<2147483644?b>>>0>>0?f:b:1073741823;if(f){if(f>>>0>=1073741824){break b}b=rj(f<<2)}else{b=0}g=b+(g<<2)|0;F[g>>2]=d;if((c|0)>0){Ri(b,e,c)}F[a+60>>2]=b+(f<<2);F[a+56>>2]=g+4;F[a+52>>2]=b;if(!e){break e}oj(e)}f:{if(!(F[F[a+12>>2]+(j>>>3&536870908)>>2]>>>j&1)){break f}b=i+1|0;b=(b>>>0)%3|0?b:i-2|0;if((b|0)==-1|F[F[a>>2]+(b>>>3&536870908)>>2]>>>b&1){break f}b=F[F[F[a+64>>2]+12>>2]+(b<<2)>>2];if((b|0)==-1){break f}c=b+1|0;c=(c>>>0)%3|0?c:b-2|0;if((c|0)==-1){break f}e=F[a+64>>2];f=F[a>>2];while(1){i=c;b=c+1|0;b=(b>>>0)%3|0?b:c-2|0;if((b|0)==-1|F[f+(b>>>3&536870908)>>2]>>>b&1){break f}b=F[F[e+12>>2]+(b<<2)>>2];if((b|0)==-1){break f}c=b+1|0;c=(c>>>0)%3|0?c:b-2|0;if((c|0)!=-1){continue}break}}F[F[a+28>>2]+(i<<2)>>2]=d;b=F[a+44>>2];g:{if((b|0)!=F[a+48>>2]){F[b>>2]=i;F[a+44>>2]=b+4;break g}e=F[a+40>>2];c=b-e|0;g=c>>2;b=g+1|0;if(b>>>0>=1073741824){break a}f=c>>1;f=c>>>0<2147483644?b>>>0>>0?f:b:1073741823;if(f){if(f>>>0>=1073741824){break b}b=rj(f<<2)}else{b=0}g=b+(g<<2)|0;F[g>>2]=i;if((c|0)>0){Ri(b,e,c)}F[a+48>>2]=b+(f<<2);F[a+44>>2]=g+4;F[a+40>>2]=b;if(!e){break g}oj(e)}b=d+1|0;e=F[a+64>>2];h:{if((i>>>0)%3|0){c=i-1|0;break h}c=i+2|0;if((c|0)==-1){break d}}c=F[F[e+12>>2]+(c<<2)>>2];if((c|0)==-1){break d}c=c+((c>>>0)%3|0?-1:2)|0;if((c|0)==-1|(c|0)==(i|0)){break d}while(1){e=c+1|0;e=(e>>>0)%3|0?e:c-2|0;if(F[F[a>>2]+(e>>>3&536870908)>>2]>>>e&1){d=F[a+56>>2];i:{if((d|0)!=F[a+60>>2]){F[d>>2]=b;F[a+56>>2]=d+4;break i}f=F[a+52>>2];e=d-f|0;h=e>>2;d=h+1|0;if(d>>>0>=1073741824){break c}g=e>>1;g=e>>>0<2147483644?d>>>0>>0?g:d:1073741823;if(g){if(g>>>0>=1073741824){break b}d=rj(g<<2)}else{d=0}h=d+(h<<2)|0;F[h>>2]=b;if((e|0)>0){Ri(d,f,e)}F[a+60>>2]=d+(g<<2);F[a+56>>2]=h+4;F[a+52>>2]=d;if(!f){break i}oj(f)}e=b+1|0;d=F[a+44>>2];j:{if((d|0)!=F[a+48>>2]){F[d>>2]=c;F[a+44>>2]=d+4;break j}g=F[a+40>>2];f=d-g|0;k=f>>2;d=k+1|0;if(d>>>0>=1073741824){break a}h=f>>1;h=f>>>0<2147483644?d>>>0>>0?h:d:1073741823;if(h){if(h>>>0>=1073741824){break b}d=rj(h<<2)}else{d=0}k=d+(k<<2)|0;F[k>>2]=c;if((f|0)>0){Ri(d,g,f)}F[a+48>>2]=d+(h<<2);F[a+44>>2]=k+4;F[a+40>>2]=d;if(!g){break j}oj(g)}d=b;b=e}F[F[a+28>>2]+(c<<2)>>2]=d;e=F[a+64>>2];k:{if((c>>>0)%3|0){c=c-1|0;break k}c=c+2|0;if((c|0)==-1){break d}}c=F[F[e+12>>2]+(c<<2)>>2];if((c|0)==-1){break d}c=c+((c>>>0)%3|0?-1:2)|0;if((c|0)==-1){break d}if((c|0)!=(i|0)){continue}break}}j=j+1|0;c=F[e+24>>2];if(j>>>0>2]-c>>2>>>0){continue}break}}return}Ia();V()}Wa();V()}Ia();V()}function xc(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0;F[a+8>>2]=e;m=a+32|0;h=F[m>>2];f=F[a+36>>2]-h>>2;a:{if(f>>>0>>0){La(m,e-f|0);d=F[a+8>>2];break a}d=e;if(d>>>0>=f>>>0){break a}F[a+36>>2]=h+(e<<2);d=e}s=F[a+52>>2];n=F[a+48>>2];f=0;h=(e&1073741823)!=(e|0)?-1:e<<2;l=Ti(rj(h),0,h);b:{if((d|0)<=0){break b}g=F[a+32>>2];while(1){d=f<<2;h=F[d+l>>2];i=F[a+16>>2];c:{if((h|0)>(i|0)){F[d+g>>2]=i;break c}d=d+g|0;i=F[a+12>>2];if((i|0)>(h|0)){F[d>>2]=i;break c}F[d>>2]=h}d=F[a+8>>2];f=f+1|0;if((d|0)>(f|0)){continue}break}if((d|0)<=0){break b}f=0;while(1){h=f<<2;d=h+c|0;h=F[b+h>>2]+F[g+h>>2]|0;F[d>>2]=h;d:{if((h|0)>F[a+16>>2]){h=h-F[a+20>>2]|0}else{if((h|0)>=F[a+12>>2]){break d}h=h+F[a+20>>2]|0}F[d>>2]=h}d=F[a+8>>2];f=f+1|0;if((d|0)>(f|0)){continue}break}}f=F[a+56>>2];q=F[f>>2];f=F[f+4>>2]-q|0;if((f|0)>=5){o=f>>>2|0;t=o>>>0>2?o:2;u=e&-2;v=e&1;h=1;while(1){e:{f:{if((h|0)!=(o|0)){r=L(e,h);f=F[(h<<2)+q>>2];if((f|0)==-1|F[F[n>>2]+(f>>>3&536870908)>>2]>>>f&1){break f}f=F[F[F[n+64>>2]+12>>2]+(f<<2)>>2];if((f|0)==-1){break f}i=F[s>>2];g=F[n+28>>2];k=F[i+(F[g+(f<<2)>>2]<<2)>>2];if((k|0)>=(h|0)){break f}j=f+1|0;j=F[i+(F[g+(((j>>>0)%3|0?j:f-2|0)<<2)>>2]<<2)>>2];if((j|0)>=(h|0)){break f}f=F[i+(F[g+(f+((f>>>0)%3|0?-1:2)<<2)>>2]<<2)>>2];if((f|0)>=(h|0)){break f}g:{if((e|0)<=0){break g}g=L(e,f);i=L(e,j);k=L(e,k);f=0;p=0;if((e|0)!=1){while(1){F[(f<<2)+l>>2]=(F[(f+g<<2)+c>>2]+F[(f+i<<2)+c>>2]|0)-F[(f+k<<2)+c>>2];j=f|1;F[(j<<2)+l>>2]=(F[(g+j<<2)+c>>2]+F[(i+j<<2)+c>>2]|0)-F[(k+j<<2)+c>>2];f=f+2|0;p=p+2|0;if((u|0)!=(p|0)){continue}break}}if(!v){break g}F[(f<<2)+l>>2]=(F[(f+g<<2)+c>>2]+F[(f+i<<2)+c>>2]|0)-F[(f+k<<2)+c>>2]}if((d|0)<=0){break e}i=F[m>>2];f=0;while(1){d=f<<2;g=F[d+l>>2];k=F[a+16>>2];h:{if((g|0)>(k|0)){F[d+i>>2]=k;break h}d=d+i|0;k=F[a+12>>2];if((k|0)>(g|0)){F[d>>2]=k;break h}F[d>>2]=g}d=F[a+8>>2];f=f+1|0;if((d|0)>(f|0)){continue}break}f=0;if((d|0)<=0){break e}d=r<<2;k=d+c|0;j=b+d|0;while(1){g=f<<2;d=g+k|0;g=F[g+j>>2]+F[g+i>>2]|0;F[d>>2]=g;i:{if((g|0)>F[a+16>>2]){g=g-F[a+20>>2]|0}else{if((g|0)>=F[a+12>>2]){break i}g=g+F[a+20>>2]|0}F[d>>2]=g}d=F[a+8>>2];f=f+1|0;if((d|0)>(f|0)){continue}break}break e}yc();V()}if((d|0)<=0){break e}k=(L(h-1|0,e)<<2)+c|0;i=F[m>>2];f=0;while(1){d=f<<2;g=F[d+k>>2];j=F[a+16>>2];j:{if((g|0)>(j|0)){F[d+i>>2]=j;break j}d=d+i|0;j=F[a+12>>2];if((j|0)>(g|0)){F[d>>2]=j;break j}F[d>>2]=g}d=F[a+8>>2];f=f+1|0;if((d|0)>(f|0)){continue}break}f=0;if((d|0)<=0){break e}d=r<<2;k=d+c|0;j=b+d|0;while(1){g=f<<2;d=g+k|0;g=F[g+j>>2]+F[g+i>>2]|0;F[d>>2]=g;k:{if((g|0)>F[a+16>>2]){g=g-F[a+20>>2]|0}else{if((g|0)>=F[a+12>>2]){break k}g=g+F[a+20>>2]|0}F[d>>2]=g}d=F[a+8>>2];f=f+1|0;if((d|0)>(f|0)){continue}break}}h=h+1|0;if((t|0)!=(h|0)){continue}break}}oj(l);return 1}function le(a,b,c,d){var e=0,f=0,g=0,h=0,i=0,j=0,k=0;f=fa-80|0;fa=f;e=F[c+36>>2];F[f+72>>2]=F[c+32>>2];F[f+76>>2]=e;g=F[c+28>>2];e=f- -64|0;F[e>>2]=F[c+24>>2];F[e+4>>2]=g;e=F[c+20>>2];F[f+56>>2]=F[c+16>>2];F[f+60>>2]=e;e=F[c+12>>2];F[f+48>>2]=F[c+8>>2];F[f+52>>2]=e;e=F[c+4>>2];F[f+40>>2]=F[c>>2];F[f+44>>2]=e;$f(a,f+40|0,f+24|0);a:{if(F[a>>2]){break a}j=a+4|0;if(D[a+15|0]<0){oj(F[j>>2])}if(G[f+31|0]!=1){b=rj(32);c=G[1448]|G[1449]<<8|(G[1450]<<16|G[1451]<<24);D[b+16|0]=c;D[b+17|0]=c>>>8;D[b+18|0]=c>>>16;D[b+19|0]=c>>>24;c=G[1444]|G[1445]<<8|(G[1446]<<16|G[1447]<<24);d=G[1440]|G[1441]<<8|(G[1442]<<16|G[1443]<<24);D[b+8|0]=d;D[b+9|0]=d>>>8;D[b+10|0]=d>>>16;D[b+11|0]=d>>>24;D[b+12|0]=c;D[b+13|0]=c>>>8;D[b+14|0]=c>>>16;D[b+15|0]=c>>>24;c=G[1436]|G[1437]<<8|(G[1438]<<16|G[1439]<<24);d=G[1432]|G[1433]<<8|(G[1434]<<16|G[1435]<<24);D[b|0]=d;D[b+1|0]=d>>>8;D[b+2|0]=d>>>16;D[b+3|0]=d>>>24;D[b+4|0]=c;D[b+5|0]=c>>>8;D[b+6|0]=c>>>16;D[b+7|0]=c>>>24;D[b+20|0]=0;F[a>>2]=-1;uj(j,b,20);oj(b);break a}i=fa-16|0;fa=i;b:{c:{switch(G[f+32|0]){case 0:e=ve(rj(48));F[e>>2]=13112;F[f+8>>2]=0;F[f+12>>2]=0;F[f>>2]=0;F[f+4>>2]=0;F[f+16>>2]=e;break b;case 1:e=ve(rj(52));F[e+48>>2]=0;F[e>>2]=11276;F[f+8>>2]=0;F[f+12>>2]=0;F[f>>2]=0;F[f+4>>2]=0;F[f+16>>2]=e;break b;default:break c}}g=rj(32);e=G[1550]|G[1551]<<8|(G[1552]<<16|G[1553]<<24);D[g+24|0]=e;D[g+25|0]=e>>>8;D[g+26|0]=e>>>16;D[g+27|0]=e>>>24;e=G[1546]|G[1547]<<8|(G[1548]<<16|G[1549]<<24);h=G[1542]|G[1543]<<8|(G[1544]<<16|G[1545]<<24);D[g+16|0]=h;D[g+17|0]=h>>>8;D[g+18|0]=h>>>16;D[g+19|0]=h>>>24;D[g+20|0]=e;D[g+21|0]=e>>>8;D[g+22|0]=e>>>16;D[g+23|0]=e>>>24;e=G[1538]|G[1539]<<8|(G[1540]<<16|G[1541]<<24);h=G[1534]|G[1535]<<8|(G[1536]<<16|G[1537]<<24);D[g+8|0]=h;D[g+9|0]=h>>>8;D[g+10|0]=h>>>16;D[g+11|0]=h>>>24;D[g+12|0]=e;D[g+13|0]=e>>>8;D[g+14|0]=e>>>16;D[g+15|0]=e>>>24;e=G[1530]|G[1531]<<8|(G[1532]<<16|G[1533]<<24);h=G[1526]|G[1527]<<8|(G[1528]<<16|G[1529]<<24);D[g|0]=h;D[g+1|0]=h>>>8;D[g+2|0]=h>>>16;D[g+3|0]=h>>>24;D[g+4|0]=e;D[g+5|0]=e>>>8;D[g+6|0]=e>>>16;D[g+7|0]=e>>>24;D[g+28|0]=0;F[i>>2]=-1;e=i|4;uj(e,g,28);k=D[i+15|0];F[f>>2]=F[i>>2];h=f+4|0;d:{if((k|0)>=0){k=F[e+4>>2];F[h>>2]=F[e>>2];F[h+4>>2]=k;F[h+8>>2]=F[e+8>>2];F[f+16>>2]=0;break d}uj(h,F[i+4>>2],F[i+8>>2]);e=D[i+15|0];F[f+16>>2]=0;if((e|0)>=0){break d}oj(F[i+4>>2])}oj(g)}fa=i+16|0;e=F[f>>2];e:{if(e){F[a>>2]=e;if(D[f+15|0]>=0){a=f|4;b=F[a+4>>2];F[j>>2]=F[a>>2];F[j+4>>2]=b;F[j+8>>2]=F[a+8>>2];break e}uj(j,F[f+4>>2],F[f+8>>2]);break e}e=F[f+16>>2];F[f+16>>2]=0;F[e+44>>2]=d;dg(a,e,b,c,d);if(!F[a>>2]){if(D[j+11|0]<0){oj(F[j>>2])}F[a>>2]=0;F[a+4>>2]=0;F[a+8>>2]=0;F[a+12>>2]=0}ja[F[F[e>>2]+4>>2]](e)}a=F[f+16>>2];F[f+16>>2]=0;if(a){ja[F[F[a>>2]+4>>2]](a)}if(D[f+15|0]>=0){break a}oj(F[f+4>>2])}fa=f+80|0}function Sf(a,b){var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0;if((b|0)==-1){return 1}c=(b>>>0)/3|0;if(!(F[F[a+24>>2]+(c>>>3&268435452)>>2]>>>c&1)){d=F[a+48>>2];F[a+52>>2]=d;a:{if((d|0)!=F[a+56>>2]){F[d>>2]=b;F[a+52>>2]=d+4;break a}e=rj(4);F[e>>2]=b;f=e+4|0;F[a+56>>2]=f;F[a+52>>2]=f;F[a+48>>2]=e;if(!d){break a}oj(d)}f=F[F[a+4>>2]+28>>2];d=b+1|0;e=(d>>>0)%3|0?d:b-2|0;d=F[f+(e<<2)>>2];if((d|0)==-1){return 0}g=(b-L(c,3)|0?-1:2)+b|0;c=F[f+(g<<2)>>2];if((c|0)==-1){return 0}b=F[a+36>>2];f=b+(d>>>3&536870908)|0;h=F[f>>2];i=1<>2]=h|i;Df(a+8|0,d,e);b=F[a+36>>2]}b=(c>>>3&536870908)+b|0;d=F[b>>2];e=1<>2]=d|e;Df(a+8|0,c,g)}c=F[a+52>>2];if((c|0)==F[a+48>>2]){return 1}k=a+8|0;while(1){b:{c:{c=c-4|0;b=F[c>>2];if((b|0)==-1){break c}d=(b>>>0)/3|0;e=F[a+24>>2]+(d>>>3&268435452)|0;f=F[e>>2];d=1<>2]=d|f;e=F[a+4>>2];d=F[F[e+28>>2]+(b<<2)>>2];if((d|0)==-1){return 0}while(1){c=b;d:{e:{f=F[a+36>>2]+(d>>>3&536870908)|0;g=F[f>>2];h=1<>2]+(d<<2)>>2];g:{if((b|0)==-1){break g}i=b+1|0;b=(i>>>0)%3|0?i:b-2|0;if((b|0)==-1|F[F[e>>2]+(b>>>3&536870908)>>2]>>>b&1){break g}b=F[F[F[e+64>>2]+12>>2]+(b<<2)>>2];if((b|0)!=-1){break f}}F[f>>2]=g|h;Df(k,d,c);break e}F[f>>2]=g|h;Df(k,d,c);d=b+1|0;if((((d>>>0)%3|0?d:b-2|0)|0)==-1){break e}b=-1;e=F[a+4>>2];h:{if((c|0)==-1){break h}d=c+1|0;d=(d>>>0)%3|0?d:c-2|0;if((d|0)==-1|F[F[e>>2]+(d>>>3&536870908)>>2]>>>d&1){break h}b=F[F[F[e+64>>2]+12>>2]+(d<<2)>>2]}d=(b>>>0)/3|0;h=1<>2];i=d>>>5|0;f=F[c+(i<<2)>>2];break d}i:{j:{if((c|0)==-1){break j}d=-1;b=c+1|0;b=(b>>>0)%3|0?b:c-2|0;e=F[a+4>>2];if(!((b|0)==-1|F[F[e>>2]+(b>>>3&536870908)>>2]>>>b&1)){d=F[F[F[e+64>>2]+12>>2]+(b<<2)>>2]}k:{l:{if((c>>>0)%3|0){c=c-1|0;break l}c=c+2|0;b=-1;if((c|0)==-1){break k}}b=-1;if(F[F[e>>2]+(c>>>3&536870908)>>2]>>>c&1){break k}b=F[F[F[e+64>>2]+12>>2]+(c<<2)>>2]}j=(b|0)==-1;g=j?-1:(b>>>0)/3|0;if((d|0)!=-1){c=F[a+24>>2];h=(d>>>0)/3|0;i=h>>>5|0;f=F[c+(i<<2)>>2];h=1<>2];i=g>>>5|0;f=F[c+(i<<2)>>2];if(!(h&f)){break d}}c=F[a+52>>2]-4|0;F[a+52>>2]=c;break b}if(j){b=d;break d}if(F[(g>>>3&536870908)+c>>2]>>>g&1){b=d;break d}c=F[a+52>>2];F[c-4>>2]=b;if((c|0)!=F[a+56>>2]){F[c>>2]=d;c=c+4|0;break c}m:{f=F[a+48>>2];e=c-f|0;c=e>>2;b=c+1|0;if(b>>>0<1073741824){g=e>>1;g=e>>>0<2147483644?b>>>0>>0?g:b:1073741823;if(g){if(g>>>0>=1073741824){break m}b=rj(g<<2)}else{b=0}c=b+(c<<2)|0;F[c>>2]=d;c=c+4|0;if((e|0)>0){Ri(b,f,e)}F[a+56>>2]=b+(g<<2);F[a+52>>2]=c;F[a+48>>2]=b;if(!f){break b}oj(f);c=F[a+52>>2];break b}Ia();V()}Wa();V()}F[(i<<2)+c>>2]=f|h;d=F[F[e+28>>2]+(b<<2)>>2];if((d|0)!=-1){continue}break}return 0}F[a+52>>2]=c}if(F[a+48>>2]!=(c|0)){continue}break}}return 1}function Ob(a){var b=0,c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0;f=fa-32|0;fa=f;a:{b:{c:{d:{b=F[a+16>>2];if(b>>>0>=341){F[a+16>>2]=b-341;b=F[a+4>>2];k=F[b>>2];c=b+4|0;F[a+4>>2]=c;b=F[a+8>>2];e:{if((b|0)!=F[a+12>>2]){d=b;break e}h=F[a>>2];if(h>>>0>>0){g=b-c|0;e=((c-h>>2)+1|0)/-2<<2;d=e+c|0;if((b|0)!=(c|0)){Si(d,c,g);c=F[a+4>>2]}d=d+g|0;F[a+8>>2]=d;F[a+4>>2]=c+e;break e}d=(b|0)==(h|0)?1:b-h>>1;if(d>>>0>=1073741824){break d}e=d<<2;i=rj(e);l=e+i|0;e=i+(d&-4)|0;d=e;f:{if((b|0)==(c|0)){break f}b=b-c|0;m=b&-4;j=b-4|0;g=(j>>>2|0)+1&7;g:{if(!g){b=e;break g}d=0;b=e;while(1){F[b>>2]=F[c>>2];c=c+4|0;b=b+4|0;d=d+1|0;if((g|0)!=(d|0)){continue}break}}d=e+m|0;if(j>>>0<28){break f}while(1){F[b>>2]=F[c>>2];F[b+4>>2]=F[c+4>>2];F[b+8>>2]=F[c+8>>2];F[b+12>>2]=F[c+12>>2];F[b+16>>2]=F[c+16>>2];F[b+20>>2]=F[c+20>>2];F[b+24>>2]=F[c+24>>2];F[b+28>>2]=F[c+28>>2];c=c+32|0;b=b+32|0;if((d|0)!=(b|0)){continue}break}}F[a+12>>2]=l;F[a+8>>2]=d;F[a+4>>2]=e;F[a>>2]=i;if(!h){break e}oj(h);d=F[a+8>>2]}F[d>>2]=k;F[a+8>>2]=F[a+8>>2]+4;break a}b=F[a+8>>2];d=b-F[a+4>>2]>>2;g=F[a+12>>2];c=F[a>>2];e=g-c|0;if(d>>>0>2>>>0){if((b|0)!=(g|0)){n=f,o=rj(4092),F[n+8>>2]=o;Pb(a,f+8|0);break a}n=f,o=rj(4092),F[n+8>>2]=o;Qb(a,f+8|0);b=F[a+4>>2];k=F[b>>2];c=b+4|0;F[a+4>>2]=c;b=F[a+8>>2];h:{if((b|0)!=F[a+12>>2]){d=b;break h}h=F[a>>2];if(h>>>0>>0){g=b-c|0;e=((c-h>>2)+1|0)/-2<<2;d=e+c|0;if((b|0)!=(c|0)){Si(d,c,g);c=F[a+4>>2]}d=d+g|0;F[a+8>>2]=d;F[a+4>>2]=c+e;break h}d=(b|0)==(h|0)?1:b-h>>1;if(d>>>0>=1073741824){break d}e=d<<2;i=rj(e);l=e+i|0;e=i+(d&-4)|0;d=e;i:{if((b|0)==(c|0)){break i}b=b-c|0;m=b&-4;j=b-4|0;g=(j>>>2|0)+1&7;j:{if(!g){b=e;break j}d=0;b=e;while(1){F[b>>2]=F[c>>2];c=c+4|0;b=b+4|0;d=d+1|0;if((g|0)!=(d|0)){continue}break}}d=e+m|0;if(j>>>0<28){break i}while(1){F[b>>2]=F[c>>2];F[b+4>>2]=F[c+4>>2];F[b+8>>2]=F[c+8>>2];F[b+12>>2]=F[c+12>>2];F[b+16>>2]=F[c+16>>2];F[b+20>>2]=F[c+20>>2];F[b+24>>2]=F[c+24>>2];F[b+28>>2]=F[c+28>>2];c=c+32|0;b=b+32|0;if((d|0)!=(b|0)){continue}break}}F[a+12>>2]=l;F[a+8>>2]=d;F[a+4>>2]=e;F[a>>2]=i;if(!h){break h}oj(h);d=F[a+8>>2]}F[d>>2]=k;F[a+8>>2]=F[a+8>>2]+4;break a}F[f+24>>2]=a+12;b=(c|0)==(g|0)?1:e>>1;if(b>>>0>=1073741824){break d}e=b<<2;c=rj(e);F[f+8>>2]=c;b=c+(d<<2)|0;F[f+16>>2]=b;F[f+20>>2]=c+e;F[f+12>>2]=b;n=f,o=rj(4092),F[n+4>>2]=o;Pb(f+8|0,f+4|0);c=F[a+8>>2];if((c|0)==F[a+4>>2]){b=c;break b}while(1){c=c-4|0;Qb(f+8|0,c);if(F[a+4>>2]!=(c|0)){continue}break}break c}Wa();V()}b=F[a+8>>2]}d=F[a>>2];F[a>>2]=F[f+8>>2];F[f+8>>2]=d;F[a+4>>2]=F[f+12>>2];F[f+12>>2]=c;F[a+8>>2]=F[f+16>>2];F[f+16>>2]=b;e=F[a+12>>2];F[a+12>>2]=F[f+20>>2];F[f+20>>2]=e;if((b|0)!=(c|0)){F[f+16>>2]=b+((c-b|0)+3&-4)}if(!d){break a}oj(d)}fa=f+32|0}function Fc(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0;i=fa-32|0;fa=i;a:{if(H[b+38>>1]<=513){c=F[b+20>>2];h=F[b+12>>2];d=F[b+16>>2];if((c|0)>=(h|0)&d>>>0>=I[b+8>>2]|(c|0)>(h|0)){break a}h=G[d+F[b>>2]|0];d=d+1|0;c=d?c:c+1|0;F[b+16>>2]=d;F[b+20>>2]=c;if(h){break a}}b:{if(!Gc(1,i+28|0,b)){break b}d=F[i+28>>2];c=F[F[a+48>>2]+64>>2];if(d>>>0>F[c+4>>2]-F[c>>2]>>2>>>0){break b}c:{if(d){Hc(a+60|0,d);c=i+8|0;F[c>>2]=0;F[c+4>>2]=0;D[c+5|0]=0;D[c+6|0]=0;D[c+7|0]=0;D[c+8|0]=0;D[c+9|0]=0;D[c+10|0]=0;D[c+11|0]=0;D[c+12|0]=0;if(!ge(c,b)){break c}while(1){h=1<>2]+(e>>>3&536870908)|0;if(f){f=h|F[g>>2]}else{f=F[g>>2]&(h^-1)}F[g>>2]=f;e=e+1|0;if((d|0)!=(e|0)){continue}break}}if(!Gc(1,i+28|0,b)){break b}d=F[i+28>>2];c=F[F[a+48>>2]+64>>2];if(d>>>0>F[c+4>>2]-F[c>>2]>>2>>>0){break b}if(d){e=0;Hc(a+72|0,d);c=i+8|0;F[c>>2]=0;F[c+4>>2]=0;D[c+5|0]=0;D[c+6|0]=0;D[c+7|0]=0;D[c+8|0]=0;D[c+9|0]=0;D[c+10|0]=0;D[c+11|0]=0;D[c+12|0]=0;if(!ge(c,b)){break c}while(1){h=1<>2]+(e>>>3&536870908)|0;if(f){f=h|F[g>>2]}else{f=F[g>>2]&(h^-1)}F[g>>2]=f;e=e+1|0;if((d|0)!=(e|0)){continue}break}}if(!Gc(1,i+28|0,b)){break b}d=F[i+28>>2];c=F[F[a+48>>2]+64>>2];if(d>>>0>F[c+4>>2]-F[c>>2]>>2>>>0){break b}if(d){e=0;Hc(a+84|0,d);c=i+8|0;F[c>>2]=0;F[c+4>>2]=0;D[c+5|0]=0;D[c+6|0]=0;D[c+7|0]=0;D[c+8|0]=0;D[c+9|0]=0;D[c+10|0]=0;D[c+11|0]=0;D[c+12|0]=0;if(!ge(c,b)){break c}while(1){h=1<>2]+(e>>>3&536870908)|0;if(f){f=h|F[g>>2]}else{f=F[g>>2]&(h^-1)}F[g>>2]=f;e=e+1|0;if((d|0)!=(e|0)){continue}break}}if(!Gc(1,i+28|0,b)){break b}d=F[i+28>>2];c=F[F[a+48>>2]+64>>2];if(d>>>0>F[c+4>>2]-F[c>>2]>>2>>>0){break b}if(d){e=0;Hc(a+96|0,d);c=i+8|0;F[c>>2]=0;F[c+4>>2]=0;D[c+5|0]=0;D[c+6|0]=0;D[c+7|0]=0;D[c+8|0]=0;D[c+9|0]=0;D[c+10|0]=0;D[c+11|0]=0;D[c+12|0]=0;if(!ge(c,b)){break c}while(1){h=1<>2]+(e>>>3&536870908)|0;if(f){f=h|F[g>>2]}else{f=F[g>>2]&(h^-1)}F[g>>2]=f;e=e+1|0;if((d|0)!=(e|0)){continue}break}}e=0;d=F[b+12>>2];h=d;c=F[b+20>>2];g=c;f=F[b+16>>2];j=f+4|0;c=j>>>0<4?c+1|0:c;k=F[b+8>>2];if(k>>>0>>0&(c|0)>=(d|0)|(c|0)>(d|0)){break a}l=F[b>>2];d=l+f|0;d=G[d|0]|G[d+1|0]<<8|(G[d+2|0]<<16|G[d+3|0]<<24);F[b+16>>2]=j;F[b+20>>2]=c;c=g;g=f+8|0;c=g>>>0<8?c+1|0:c;f=g;g=c;if(f>>>0>k>>>0&(c|0)>=(h|0)|(c|0)>(h|0)){break a}c=j+l|0;c=G[c|0]|G[c+1|0]<<8|(G[c+2|0]<<16|G[c+3|0]<<24);F[b+16>>2]=f;F[b+20>>2]=g;if((c|0)<(d|0)){break a}F[a+16>>2]=c;F[a+12>>2]=d;b=(c>>31)-((d>>31)+(c>>>0>>0)|0)|0;c=c-d|0;if(!b&c>>>0>2147483646|b){break a}e=1;b=c+1|0;F[a+20>>2]=b;c=b>>>1|0;F[a+24>>2]=c;F[a+28>>2]=0-c;if(b&1){break a}F[a+24>>2]=c-1;break a}}e=0}fa=i+32|0;return e|0}function jd(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0;i=fa-32|0;fa=i;a:{if(H[b+38>>1]<=513){c=F[b+20>>2];h=F[b+12>>2];d=F[b+16>>2];if((c|0)>=(h|0)&d>>>0>=I[b+8>>2]|(c|0)>(h|0)){break a}h=G[d+F[b>>2]|0];d=d+1|0;c=d?c:c+1|0;F[b+16>>2]=d;F[b+20>>2]=c;if(h){break a}}b:{if(!Gc(1,i+28|0,b)){break b}d=F[i+28>>2];c=F[a+48>>2];if(d>>>0>F[c+4>>2]-F[c>>2]>>2>>>0){break b}c:{if(d){Hc(a+60|0,d);c=i+8|0;F[c>>2]=0;F[c+4>>2]=0;D[c+5|0]=0;D[c+6|0]=0;D[c+7|0]=0;D[c+8|0]=0;D[c+9|0]=0;D[c+10|0]=0;D[c+11|0]=0;D[c+12|0]=0;if(!ge(c,b)){break c}while(1){h=1<>2]+(e>>>3&536870908)|0;if(f){f=h|F[g>>2]}else{f=F[g>>2]&(h^-1)}F[g>>2]=f;e=e+1|0;if((d|0)!=(e|0)){continue}break}}if(!Gc(1,i+28|0,b)){break b}d=F[i+28>>2];c=F[a+48>>2];if(d>>>0>F[c+4>>2]-F[c>>2]>>2>>>0){break b}if(d){e=0;Hc(a+72|0,d);c=i+8|0;F[c>>2]=0;F[c+4>>2]=0;D[c+5|0]=0;D[c+6|0]=0;D[c+7|0]=0;D[c+8|0]=0;D[c+9|0]=0;D[c+10|0]=0;D[c+11|0]=0;D[c+12|0]=0;if(!ge(c,b)){break c}while(1){h=1<>2]+(e>>>3&536870908)|0;if(f){f=h|F[g>>2]}else{f=F[g>>2]&(h^-1)}F[g>>2]=f;e=e+1|0;if((d|0)!=(e|0)){continue}break}}if(!Gc(1,i+28|0,b)){break b}d=F[i+28>>2];c=F[a+48>>2];if(d>>>0>F[c+4>>2]-F[c>>2]>>2>>>0){break b}if(d){e=0;Hc(a+84|0,d);c=i+8|0;F[c>>2]=0;F[c+4>>2]=0;D[c+5|0]=0;D[c+6|0]=0;D[c+7|0]=0;D[c+8|0]=0;D[c+9|0]=0;D[c+10|0]=0;D[c+11|0]=0;D[c+12|0]=0;if(!ge(c,b)){break c}while(1){h=1<>2]+(e>>>3&536870908)|0;if(f){f=h|F[g>>2]}else{f=F[g>>2]&(h^-1)}F[g>>2]=f;e=e+1|0;if((d|0)!=(e|0)){continue}break}}if(!Gc(1,i+28|0,b)){break b}d=F[i+28>>2];c=F[a+48>>2];if(d>>>0>F[c+4>>2]-F[c>>2]>>2>>>0){break b}if(d){e=0;Hc(a+96|0,d);c=i+8|0;F[c>>2]=0;F[c+4>>2]=0;D[c+5|0]=0;D[c+6|0]=0;D[c+7|0]=0;D[c+8|0]=0;D[c+9|0]=0;D[c+10|0]=0;D[c+11|0]=0;D[c+12|0]=0;if(!ge(c,b)){break c}while(1){h=1<>2]+(e>>>3&536870908)|0;if(f){f=h|F[g>>2]}else{f=F[g>>2]&(h^-1)}F[g>>2]=f;e=e+1|0;if((d|0)!=(e|0)){continue}break}}e=0;d=F[b+12>>2];h=d;c=F[b+20>>2];g=c;f=F[b+16>>2];j=f+4|0;c=j>>>0<4?c+1|0:c;k=F[b+8>>2];if(k>>>0>>0&(c|0)>=(d|0)|(c|0)>(d|0)){break a}l=F[b>>2];d=l+f|0;d=G[d|0]|G[d+1|0]<<8|(G[d+2|0]<<16|G[d+3|0]<<24);F[b+16>>2]=j;F[b+20>>2]=c;c=g;g=f+8|0;c=g>>>0<8?c+1|0:c;f=g;g=c;if(f>>>0>k>>>0&(c|0)>=(h|0)|(c|0)>(h|0)){break a}c=j+l|0;c=G[c|0]|G[c+1|0]<<8|(G[c+2|0]<<16|G[c+3|0]<<24);F[b+16>>2]=f;F[b+20>>2]=g;if((c|0)<(d|0)){break a}F[a+16>>2]=c;F[a+12>>2]=d;b=(c>>31)-((d>>31)+(c>>>0>>0)|0)|0;c=c-d|0;if(!b&c>>>0>2147483646|b){break a}e=1;b=c+1|0;F[a+20>>2]=b;c=b>>>1|0;F[a+24>>2]=c;F[a+28>>2]=0-c;if(b&1){break a}F[a+24>>2]=c-1;break a}}e=0}fa=i+32|0;return e|0}function Bi(a,b,c){var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0;i=L(b,12)+a|0;F[i+12>>2]=F[i+8>>2];j=(c|0)==-1?-1:(c>>>0)/3|0;l=1;k=c;a:{b:{c:{while(1){d:{n=e&1;if(n){if((k|0)==-1){break d}if((Ci(a,((k>>>0)%3|0?-1:2)+k|0)|0)==-1){break a}c=k+1|0;c=(c>>>0)%3|0?c:k-2|0;if((c|0)==-1){break a}e=c+1|0;c=(e>>>0)%3|0?e:c-2|0;if((c|0)==-1){break a}c=F[F[F[a+4>>2]+12>>2]+(c<<2)>>2];if((c|0)==-1){break a}e=c+1|0;c=(e>>>0)%3|0?e:c-2|0;if((c|0)==-1){break a}j=(c>>>0)/3|0}d=F[a+56>>2]+(j>>>3&536870908)|0;g=F[d>>2];f=1<>2]=g|f;d=F[i+12>>2];f:{if((d|0)!=F[i+16>>2]){F[d>>2]=j;F[i+12>>2]=d+4;break f}g=F[i+8>>2];h=d-g|0;m=h>>2;d=m+1|0;if(d>>>0>=1073741824){break c}f=h>>1;f=h>>>0<2147483644?d>>>0>>0?f:d:1073741823;if(f){if(f>>>0>=1073741824){break b}d=rj(f<<2)}else{d=0}m=d+(m<<2)|0;F[m>>2]=j;if((h|0)>0){Ri(d,g,h)}F[i+8>>2]=d;F[i+12>>2]=m+4;F[i+16>>2]=d+(f<<2);if(!g){break f}oj(g)}h=e+1|0;g:{h:{i:{if(!e){break i}if(h&1){if((c|0)==-1){c=-1;break g}e=c+1|0;c=(e>>>0)%3|0?e:c-2|0;break i}k=n?c:k;if((c|0)==-1){c=-1;break g}if((c>>>0)%3|0){e=c-1|0;break h}c=c+2|0}d=c;c=-1;e=d;if((d|0)==-1){break g}}c=F[F[F[a+4>>2]+12>>2]+(e<<2)>>2];d=-1;g=-1;f=e+1|0;f=(f>>>0)%3|0?f:e-2|0;if((f|0)>=0){g=(f>>>0)/3|0;g=F[(F[F[a>>2]+96>>2]+L(g,12)|0)+(f-L(g,3)<<2)>>2]}j:{if((c|0)==-1){break j}f=((c>>>0)%3|0?-1:2)+c|0;if((f|0)<0){break j}d=(f>>>0)/3|0;d=F[(F[F[a>>2]+96>>2]+L(d,12)|0)+(f-L(d,3)<<2)>>2]}if((d|0)!=(g|0)){c=-1;break g}k:{l:{e=((e>>>0)%3|0?-1:2)+e|0;if((e|0)>=0){d=(e>>>0)/3|0;if((c|0)!=-1){break l}c=-1;break g}e=-1;if((c|0)!=-1){break k}c=-1;break g}e=F[(F[F[a>>2]+96>>2]+L(d,12)|0)+(e-L(d,3)<<2)>>2]}d=c+1|0;d=(d>>>0)%3|0?d:c-2|0;if((d|0)>=0){g=(d>>>0)/3|0;d=F[(F[F[a>>2]+96>>2]+L(g,12)|0)+(d-L(g,3)<<2)>>2]}else{d=-1}if((d|0)!=(e|0)){c=-1;break g}e=h;j=(c>>>0)/3|0;d=F[a+56>>2]+(j>>>3&268435452)|0;g=F[d>>2];f=1<>2]-4|0;d=F[e>>2];h=F[a+56>>2]+(d>>>3&536870908)|0;g=F[h>>2];o=h,p=bk(d)&g,F[o>>2]=p;F[i+12>>2]=e}e=1;d=l;l=0;if(d){continue}break a}break}k=-1;Ci(a,-1);break a}Ia();V()}Wa();V()}F[((b<<2)+a|0)+44>>2]=k;c=F[i+12>>2];b=F[i+8>>2];m:{if((c|0)==(b|0)){break m}e=c-b|0;c=e>>2;d=c>>>0>1?c:1;k=d&1;a=F[a+56>>2];c=0;if(e>>>0>=8){e=d&-2;j=0;while(1){d=c<<2;h=F[d+b>>2];l=a+(h>>>3&536870908)|0;i=F[l>>2];o=l,p=bk(h)&i,F[o>>2]=p;d=F[b+(d|4)>>2];h=a+(d>>>3&536870908)|0;l=F[h>>2];o=h,p=bk(d)&l,F[o>>2]=p;c=c+2|0;j=j+2|0;if((e|0)!=(j|0)){continue}break}}if(!k){break m}b=F[b+(c<<2)>>2];a=a+(b>>>3&536870908)|0;c=F[a>>2];o=a,p=bk(b)&c,F[o>>2]=p}}function Mf(a,b){var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0;if((b|0)==-1){return 1}d=(b>>>0)/3|0;if(!(F[F[a+24>>2]+(d>>>3&268435452)>>2]>>>d&1)){c=F[a+48>>2];F[a+52>>2]=c;a:{if((c|0)!=F[a+56>>2]){F[c>>2]=b;F[a+52>>2]=c+4;break a}e=rj(4);F[e>>2]=b;f=e+4|0;F[a+56>>2]=f;F[a+52>>2]=f;F[a+48>>2]=e;if(!c){break a}oj(c)}e=-1;f=F[a+4>>2];c=b+1|0;g=(c>>>0)%3|0?c:b-2|0;if((g|0)!=-1){e=F[F[f>>2]+(g<<2)>>2]}b:{h=b-L(d,3)|0;if(h){c=b-1|0;break b}c=b+2|0;if((c|0)!=-1){break b}return 0}if((e|0)==-1){return 0}d=F[F[f>>2]+(c<<2)>>2];if((d|0)==-1){return 0}c=F[a+36>>2];f=c+(e>>>3&536870908)|0;i=F[f>>2];j=1<>2]=i|j;Df(a+8|0,e,g);c=F[a+36>>2]}c=(d>>>3&536870908)+c|0;e=F[c>>2];f=1<>2]=e|f;Df(a+8|0,d,(h?-1:2)+b|0)}c=F[a+52>>2];if((c|0)==F[a+48>>2]){return 1}j=a+8|0;while(1){c:{d:{c=c-4|0;b=F[c>>2];if((b|0)==-1){break d}d=(b>>>0)/3|0;e=F[a+24>>2]+(d>>>3&268435452)|0;f=F[e>>2];d=1<>2]=d|f;while(1){d=F[a+4>>2];c=F[F[d>>2]+(b<<2)>>2];if((c|0)==-1){return 0}e:{f:{e=F[a+36>>2]+(c>>>3&536870908)|0;f=F[e>>2];g=1<>2]+(c<<2)>>2];h:{if((h|0)==-1){break h}i=h+1|0;h=(i>>>0)%3|0?i:h-2|0;if((h|0)==-1){break h}d=F[F[d+12>>2]+(h<<2)>>2];if((d|0)!=-1){break g}}F[e>>2]=f|g;Df(j,c,b);break f}F[e>>2]=f|g;Df(j,c,b);c=d+1|0;if((((c>>>0)%3|0?c:d-2|0)|0)==-1){break f}d=b-2|0;c=b+1|0;b=-1;c=(c>>>0)%3|0?c:d;if((c|0)!=-1){b=F[F[F[a+4>>2]+12>>2]+(c<<2)>>2]}c=(b>>>0)/3|0;g=1<>2];h=c>>>5|0;d=F[e+(h<<2)>>2];break e}c=-1;f=F[a+4>>2];d=b+1|0;d=(d>>>0)%3|0?d:b-2|0;if((d|0)!=-1){c=F[F[f+12>>2]+(d<<2)>>2]}i:{j:{if((b>>>0)%3|0){e=b-1|0;break j}e=b+2|0;b=-1;if((e|0)==-1){break i}}b=F[F[f+12>>2]+(e<<2)>>2]}i=(b|0)==-1;f=i?-1:(b>>>0)/3|0;k:{if((c|0)!=-1){e=F[a+24>>2];g=(c>>>0)/3|0;h=g>>>5|0;d=F[e+(h<<2)>>2];g=1<>2];h=f>>>5|0;d=F[e+(h<<2)>>2];if(!(g&d)){break e}}c=F[a+52>>2]-4|0;F[a+52>>2]=c;break c}if(i){b=c;break e}if(F[(f>>>3&536870908)+e>>2]>>>f&1){b=c;break e}d=F[a+52>>2];F[d-4>>2]=b;if((d|0)!=F[a+56>>2]){F[d>>2]=c;c=d+4|0;break d}l:{e=F[a+48>>2];d=d-e|0;g=d>>2;b=g+1|0;if(b>>>0<1073741824){f=d>>1;f=d>>>0<2147483644?b>>>0>>0?f:b:1073741823;if(f){if(f>>>0>=1073741824){break l}b=rj(f<<2)}else{b=0}g=b+(g<<2)|0;F[g>>2]=c;c=g+4|0;if((d|0)>0){Ri(b,e,d)}F[a+56>>2]=b+(f<<2);F[a+52>>2]=c;F[a+48>>2]=b;if(!e){break c}oj(e);c=F[a+52>>2];break c}Ia();V()}Wa();V()}F[(h<<2)+e>>2]=d|g;if((b|0)!=-1){continue}break}return 0}F[a+52>>2]=c}if(F[a+48>>2]!=(c|0)){continue}break}}return 1}function td(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0;g=fa-32|0;fa=g;F[a+68>>2]=f;d=F[a+56>>2];e=F[d>>2];d=F[d+4>>2];F[g+24>>2]=0;F[g+16>>2]=0;F[g+20>>2]=0;a:{d=d-e|0;if((d|0)>0){m=a+60|0;d=d>>>2|0;n=d>>>0>1?d:1;o=a+112|0;while(1){e=F[a+56>>2];d=F[e>>2];if(F[e+4>>2]-d>>2>>>0<=k>>>0){break a}ud(m,F[d+(k<<2)>>2],g+16|0);e=F[g+20>>2];d=e>>31;f=F[g+16>>2];h=f>>31;j=F[g+24>>2];i=j>>31;i=(i^j)-i|0;h=i+((d^e)-d+((f^h)-h)|0)|0;d=0;d=h>>>0>>0?1:d;b:{if(!(d|h)){F[g+16>>2]=F[a+108>>2];break b}i=F[a+108>>2];l=i>>31;f=_j(Zj(i,l,f,f>>31),ia,h,d);F[g+16>>2]=f;d=_j(Zj(i,l,e,e>>31),ia,h,d);F[g+20>>2]=d;e=d;d=d>>31;e=(e^d)-d|0;d=f>>31;d=e+((d^f)-d|0)|0;if((j|0)>=0){F[g+24>>2]=i-d;break b}F[g+24>>2]=d-i}d=ie(o);f=F[g+16>>2];c:{if(d){F[g+24>>2]=0-F[g+24>>2];e=0-F[g+20>>2]|0;F[g+20>>2]=e;f=0-f|0;F[g+16>>2]=f;break c}e=F[g+20>>2]}d:{if((f|0)>=0){f=F[a+108>>2];d=f+F[g+24>>2]|0;f=e+f|0;break d}e:{if((e|0)<0){d=F[g+24>>2];f=d>>31;f=(d^f)-f|0;break e}d=F[g+24>>2];f=d>>31;f=F[a+100>>2]+(f-(d^f)|0)|0}if((d|0)<0){d=e>>31;d=(d^e)-d|0;break d}d=e>>31;d=F[a+100>>2]+(d-(d^e)|0)|0}e=F[a+100>>2];f:{if(!(d|f)){d=e;f=d;break f}if(!((d|0)!=(e|0)|f)){f=d;break f}if(!((e|0)!=(f|0)|d)){d=f;break f}g:{if(f){break g}h=F[a+108>>2];if((h|0)>=(d|0)){break g}d=(h<<1)-d|0;f=0;break f}h:{if((e|0)!=(f|0)){break h}h=F[a+108>>2];if((h|0)<=(d|0)){break h}d=(h<<1)-d|0;break f}i:{if((d|0)!=(e|0)){break i}e=F[a+108>>2];if((e|0)<=(f|0)){break i}f=(e<<1)-f|0;break f}if(d){break f}d=0;e=F[a+108>>2];if((e|0)>=(f|0)){break f}f=(e<<1)-f|0}F[g+12>>2]=d;F[g+8>>2]=f;j:{if(F[a+8>>2]<=0){break j}h=F[a+32>>2];f=0;while(1){d=f<<2;e=F[d+(g+8|0)>>2];j=F[a+16>>2];k:{if((e|0)>(j|0)){F[d+h>>2]=j;break k}d=d+h|0;j=F[a+12>>2];if((j|0)>(e|0)){F[d>>2]=j;break k}F[d>>2]=e}f=f+1|0;e=F[a+8>>2];if((f|0)<(e|0)){continue}break}d=0;if((e|0)<=0){break j}e=k<<3;j=e+c|0;i=b+e|0;while(1){f=d<<2;e=f+j|0;f=F[f+i>>2]+F[f+h>>2]|0;F[e>>2]=f;l:{if((f|0)>F[a+16>>2]){f=f-F[a+20>>2]|0}else{if((f|0)>=F[a+12>>2]){break l}f=f+F[a+20>>2]|0}F[e>>2]=f}d=d+1|0;if((d|0)>2]){continue}break}}k=k+1|0;if((n|0)!=(k|0)){continue}break}}fa=g+32|0;return 1}yc();V()}function cd(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0;g=fa-32|0;fa=g;F[a+68>>2]=f;d=F[a+56>>2];e=F[d>>2];d=F[d+4>>2];F[g+24>>2]=0;F[g+16>>2]=0;F[g+20>>2]=0;a:{d=d-e|0;if((d|0)>0){m=a+60|0;d=d>>>2|0;n=d>>>0>1?d:1;o=a+112|0;while(1){e=F[a+56>>2];d=F[e>>2];if(F[e+4>>2]-d>>2>>>0<=k>>>0){break a}dd(m,F[d+(k<<2)>>2],g+16|0);e=F[g+20>>2];d=e>>31;f=F[g+16>>2];h=f>>31;j=F[g+24>>2];i=j>>31;i=(i^j)-i|0;h=i+((d^e)-d+((f^h)-h)|0)|0;d=0;d=h>>>0>>0?1:d;b:{if(!(d|h)){F[g+16>>2]=F[a+108>>2];break b}i=F[a+108>>2];l=i>>31;f=_j(Zj(i,l,f,f>>31),ia,h,d);F[g+16>>2]=f;d=_j(Zj(i,l,e,e>>31),ia,h,d);F[g+20>>2]=d;e=d;d=d>>31;e=(e^d)-d|0;d=f>>31;d=e+((d^f)-d|0)|0;if((j|0)>=0){F[g+24>>2]=i-d;break b}F[g+24>>2]=d-i}d=ie(o);f=F[g+16>>2];c:{if(d){F[g+24>>2]=0-F[g+24>>2];e=0-F[g+20>>2]|0;F[g+20>>2]=e;f=0-f|0;F[g+16>>2]=f;break c}e=F[g+20>>2]}d:{if((f|0)>=0){f=F[a+108>>2];d=f+F[g+24>>2]|0;f=e+f|0;break d}e:{if((e|0)<0){d=F[g+24>>2];f=d>>31;f=(d^f)-f|0;break e}d=F[g+24>>2];f=d>>31;f=F[a+100>>2]+(f-(d^f)|0)|0}if((d|0)<0){d=e>>31;d=(d^e)-d|0;break d}d=e>>31;d=F[a+100>>2]+(d-(d^e)|0)|0}e=F[a+100>>2];f:{if(!(d|f)){d=e;f=d;break f}if(!((d|0)!=(e|0)|f)){f=d;break f}if(!((e|0)!=(f|0)|d)){d=f;break f}g:{if(f){break g}h=F[a+108>>2];if((h|0)>=(d|0)){break g}d=(h<<1)-d|0;f=0;break f}h:{if((e|0)!=(f|0)){break h}h=F[a+108>>2];if((h|0)<=(d|0)){break h}d=(h<<1)-d|0;break f}i:{if((d|0)!=(e|0)){break i}e=F[a+108>>2];if((e|0)<=(f|0)){break i}f=(e<<1)-f|0;break f}if(d){break f}d=0;e=F[a+108>>2];if((e|0)>=(f|0)){break f}f=(e<<1)-f|0}F[g+12>>2]=d;F[g+8>>2]=f;j:{if(F[a+8>>2]<=0){break j}h=F[a+32>>2];f=0;while(1){d=f<<2;e=F[d+(g+8|0)>>2];j=F[a+16>>2];k:{if((e|0)>(j|0)){F[d+h>>2]=j;break k}d=d+h|0;j=F[a+12>>2];if((j|0)>(e|0)){F[d>>2]=j;break k}F[d>>2]=e}f=f+1|0;e=F[a+8>>2];if((f|0)<(e|0)){continue}break}d=0;if((e|0)<=0){break j}e=k<<3;j=e+c|0;i=b+e|0;while(1){f=d<<2;e=f+j|0;f=F[f+i>>2]+F[f+h>>2]|0;F[e>>2]=f;l:{if((f|0)>F[a+16>>2]){f=f-F[a+20>>2]|0}else{if((f|0)>=F[a+12>>2]){break l}f=f+F[a+20>>2]|0}F[e>>2]=f}d=d+1|0;if((d|0)>2]){continue}break}}k=k+1|0;if((n|0)!=(k|0)){continue}break}}fa=g+32|0;return 1}yc();V()}function mc(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0;l=ja[F[F[a>>2]+44>>2]](a)|0;a:{if((l|0)<=0){break a}h=F[b+4>>2]-F[b>>2]>>2;e=fa+-64|0;fa=e;d=Za(e);f=L(F[3400],l);_a(d,F[F[a+8>>2]+56>>2],l<<24>>24,5,0,f,f>>31);d=$a(rj(96),d);D[d+84|0]=1;F[d+72>>2]=F[d+68>>2];ab(d,h);F[d+60>>2]=F[F[a+8>>2]+60>>2];f=F[a+16>>2];F[a+16>>2]=d;if(f){qb(f)}fa=e- -64|0;d=F[a+16>>2];if(!F[d+80>>2]){break a}j=F[F[d>>2]>>2];if(!j){break a}i=F[c+12>>2];g=i;e=F[c+20>>2];k=F[c+8>>2];f=F[c+16>>2];if((g|0)<=(e|0)&k>>>0<=f>>>0|(e|0)>(g|0)){break a}h=L(h,l);j=j+F[d+48>>2]|0;m=F[c>>2];n=G[m+f|0];d=e;g=f+1|0;d=g?d:d+1|0;F[c+16>>2]=g;F[c+20>>2]=d;b:{c:{if(n){if(oe(h,l,c,j)){break c}break a}if((d|0)>=(i|0)&g>>>0>=k>>>0|(d|0)>(i|0)){break a}d=G[g+m|0];f=f+2|0;e=f>>>0<2?e+1|0:e;F[c+16>>2]=f;F[c+20>>2]=e;e=F[F[a+16>>2]+64>>2];e=F[e+4>>2]-F[e>>2]|0;if((d|0)==F[3400]){d=h<<2;if(d>>>0>e>>>0){break a}f=F[c+12>>2];e=F[c+20>>2];i=F[c+16>>2];g=d+i|0;e=g>>>0>>0?e+1|0:e;if(g>>>0>I[c+8>>2]&(e|0)>=(f|0)|(e|0)>(f|0)){break a}Ri(j,i+F[c>>2]|0,d);e=d;f=d+F[c+16>>2]|0;d=F[c+20>>2];F[c+16>>2]=f;F[c+20>>2]=e>>>0>f>>>0?d+1|0:d;break c}if(e>>>0>>0){break a}e=F[c+8>>2];i=F[c+16>>2];f=i;g=e-f|0;f=e>>>0>>0;e=F[c+20>>2];f=F[c+12>>2]-(f+e|0)|0;k=Zj(d,0,h,0)>>>0>g>>>0;g=ia;if(k&(g|0)>=(f|0)|(f|0)<(g|0)){break a}f=1;if(!h){break b}g=0;while(1){m=d+i|0;k=F[c+12>>2];e=d>>>0>m>>>0?e+1|0:e;if(m>>>0>I[c+8>>2]&(k|0)<=(e|0)|(e|0)>(k|0)){return 0}Ri(j+(g<<2)|0,i+F[c>>2]|0,d);e=F[c+20>>2];i=d+F[c+16>>2]|0;e=i>>>0>>0?e+1|0:e;F[c+16>>2]=i;F[c+20>>2]=e;g=g+1|0;if((h|0)!=(g|0)){continue}break}}f=1;if(!h){break b}d=F[a+20>>2];if(d){f=0;if(ja[F[F[d>>2]+32>>2]](d)|0){break b}}d=0;g=0;d:{if((h|0)<=0){break d}if((h|0)!=1){i=h&-2;while(1){e=d<<2;f=F[e+j>>2];F[e+j>>2]=0-(f&1)^f>>>1;f=e|4;e=F[f+j>>2];F[f+j>>2]=0-(e&1)^e>>>1;d=d+2|0;g=g+2|0;if((i|0)!=(g|0)){continue}break}}if(!(h&1)){break d}e=d<<2;d=F[e+j>>2];F[e+j>>2]=0-(d&1)^d>>>1}f=0}d=F[a+20>>2];e:{if(!d){break e}if(!(ja[F[F[d>>2]+40>>2]](d,c)|0)){break a}if(f){break e}a=F[a+20>>2];if(!(ja[F[F[a>>2]+44>>2]](a,j,j,h,l,F[b>>2])|0)){break a}}o=1}return o|0}function eb(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0;h=fa-80|0;fa=h;a:{b:{if(G[F[a+28>>2]+36|0]<=1){d=F[b+20>>2];c=F[b+16>>2];e=c+4|0;d=e>>>0<4?d+1|0:d;k=F[b+12>>2];if((k|0)<=(d|0)&e>>>0>I[b+8>>2]|(d|0)>(k|0)){break a}c=c+F[b>>2]|0;i=G[c|0]|G[c+1|0]<<8|(G[c+2|0]<<16|G[c+3|0]<<24);F[b+16>>2]=e;F[b+20>>2]=d;break b}if(!fb(1,h+76|0,b)){break a}i=F[h+76>>2]}if(!i){break a}d=F[b+8>>2];c=F[b+16>>2];d=Zj(d-c|0,F[b+12>>2]-(F[b+20>>2]+(c>>>0>d>>>0)|0)|0,5,0);c=ia;if(d>>>0>>0&(c|0)<=0|(c|0)<0){break a}c=F[a+4>>2];d=F[a+8>>2]-c>>2;c:{if(d>>>0>>0){La(a+4|0,i-d|0);break c}if(d>>>0<=i>>>0){break c}F[a+8>>2]=c+(i<<2)}r=a+16|0;m=F[a+32>>2];f=1;while(1){d:{g=F[b+12>>2];c=g;d=F[b+20>>2];o=F[b+8>>2];j=F[b+16>>2];if((c|0)<=(d|0)&o>>>0<=j>>>0|(c|0)<(d|0)){break d}p=F[b>>2];k=G[p+j|0];c=d;e=j+1|0;c=e?c:c+1|0;F[b+16>>2]=e;F[b+20>>2]=c;if((c|0)>=(g|0)&e>>>0>=o>>>0|(c|0)>(g|0)){break d}e=G[e+p|0];c=d;l=j+2|0;c=l>>>0<2?c+1|0:c;F[b+16>>2]=l;F[b+20>>2]=c;if((c|0)>=(g|0)&l>>>0>=o>>>0|(c|0)>(g|0)){break d}l=G[l+p|0];c=d;q=j+3|0;c=q>>>0<3?c+1|0:c;F[b+16>>2]=q;F[b+20>>2]=c;if((c|0)>=(g|0)&q>>>0>=o>>>0|(c|0)>(g|0)){break d}g=G[q+p|0];c=d;d=j+4|0;c=d>>>0<4?c+1|0:c;F[b+16>>2]=d;F[b+20>>2]=c;if(!l|((e-12&255)>>>0<245|k>>>0>4)){break d}j=Za(h+8|0);o=l<<24>>24;g=(g|0)!=0;d=e-1|0;if(d>>>0<=10){c=F[(d<<2)+13584>>2]}else{c=-1}d=L(c,l);_a(j,k,o,e,g,d,d>>31);d=H[F[a+28>>2]+36>>1];e:{if(((d<<8|d>>>8)&65535)>>>0<=258){c=F[b+20>>2];d=F[b+16>>2];e=d+2|0;c=e>>>0<2?c+1|0:c;k=F[b+12>>2];if((k|0)<=(c|0)&e>>>0>I[b+8>>2]|(c|0)>(k|0)){break d}d=d+F[b>>2]|0;f=G[d|0]|G[d+1|0]<<8;F[b+16>>2]=e;F[b+20>>2]=c;break e}if(!fb(1,h+4|0,b)){break d}f=F[h+4>>2]}F[h+68>>2]=f;d=$a(rj(96),j);ja[F[F[m>>2]+8>>2]](m,F[m+12>>2]-F[m+8>>2]>>2,d);d=(F[m+12>>2]-F[m+8>>2]>>2)-1|0;e=d<<2;F[F[e+F[m+8>>2]>>2]+60>>2]=f;F[F[a+4>>2]+(n<<2)>>2]=d;f=F[a+16>>2];c=F[a+20>>2]-f>>2;f:{if((c|0)>(d|0)){break f}F[h>>2]=-1;d=d+1|0;if(d>>>0>c>>>0){gb(r,d-c|0,h);f=F[r>>2];break f}if(c>>>0<=d>>>0){break f}F[a+20>>2]=(d<<2)+f}F[e+f>>2]=n;n=n+1|0;f=n>>>0>>0;if((i|0)!=(n|0)){continue}}break}n=!f}fa=h+80|0;return n&1}function Jc(a,b){var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0;g=fa-32|0;fa=g;a:{b:{if(F[a+8>>2]<<5>>>0>=b>>>0){break b}if((b|0)<0){break a}b=(b-1>>>5|0)+1|0;c=rj(b<<2);F[g+24>>2]=b;F[g+20>>2]=0;F[g+16>>2]=c;b=F[a>>2];F[g+12>>2]=0;F[g+8>>2]=b;c=F[a+4>>2];F[g+4>>2]=c&31;F[g>>2]=b+(c>>>3&536870908);f=fa-32|0;fa=f;i=F[g+4>>2];e=F[g+12>>2];j=F[g>>2];h=F[g+8>>2];b=(i-e|0)+(j-h<<3)|0;d=F[g+20>>2];c=b+d|0;F[g+20>>2]=c;if(!((c-1^d-1)>>>0<32?d:0)){F[F[g+16>>2]+((c>>>0<33?0:c-1>>>5|0)<<2)>>2]=0}c=F[g+16>>2]+(d>>>3&536870908)|0;d=d&31;c:{if((d|0)==(e|0)){if((b|0)<=0){break c}if(e){i=32-e|0;d=(b|0)<(i|0)?b:i;i=-1<>>i-d;F[c>>2]=F[c>>2]&(i^-1)|i&F[h>>2];b=b-d|0;h=h+4|0;c=c+(d+e>>>3&536870908)|0}j=c;e=(b|0)/32|0;c=e<<2;d=Si(j,h,c);b=b-(e<<5)|0;if((b|0)<=0){break c}e=c+d|0;b=-1>>>32-b|0;F[e>>2]=F[e>>2]&(b^-1)|b&F[c+h>>2];break c}F[f+28>>2]=e;F[f+24>>2]=h;F[f+20>>2]=i;F[f+16>>2]=j;F[f+12>>2]=d;F[f+8>>2]=c;b=F[f+28>>2];c=F[f+24>>2];h=(F[f+20>>2]-b|0)+(F[f+16>>2]-c<<3)|0;d:{if((h|0)<=0){b=F[f+12>>2];break d}e:{if(!b){b=F[f+12>>2];break e}e=F[f+12>>2];j=32-e|0;k=32-b|0;d=(h|0)<(k|0)?h:k;i=d>>>0>j>>>0?j:d;l=F[f+8>>2];m=F[l>>2]&(-1<>>j-i^-1);j=F[c>>2]&(-1<>>k-d);F[l>>2]=m|(b>>>0>>0?j<>>b-e|0);c=e+i|0;b=c&31;F[f+12>>2]=b;e=l+(c>>>3&536870908)|0;F[f+8>>2]=e;c=d-i|0;if((c|0)>0){F[e>>2]=F[e>>2]&(-1>>>32-c^-1)|j>>>i+F[f+28>>2];F[f+12>>2]=c;b=c}h=h-d|0;c=F[f+24>>2]+4|0;F[f+24>>2]=c}i=-1<=32){j=i^-1;while(1){d=F[f+8>>2];c=F[c>>2];F[d>>2]=j&F[d>>2]|c<>2]=d+4;F[d+4>>2]=i&F[d+4>>2]|c>>>e;c=F[f+24>>2]+4|0;F[f+24>>2]=c;d=h>>>0>63;h=h-32|0;if(d){continue}break}}if((h|0)<=0){break d}d=F[f+8>>2];j=e;e=(e|0)<(h|0)?e:h;j=F[d>>2]&(i&-1>>>j-e^-1);i=F[c>>2]&-1>>>32-h;F[d>>2]=j|i<>2]=b;d=d+(c>>>3&536870908)|0;F[f+8>>2]=d;c=h-e|0;if((c|0)<=0){break d}F[d>>2]=F[d>>2]&(-1>>>32-c^-1)|i>>>e;F[f+12>>2]=c;b=c}c=F[f+8>>2];F[f+4>>2]=b;F[f>>2]=c}fa=f+32|0;b=F[a>>2];F[a>>2]=F[g+16>>2];F[g+16>>2]=b;c=F[a+4>>2];F[a+4>>2]=F[g+20>>2];F[g+20>>2]=c;c=F[a+8>>2];F[a+8>>2]=F[g+24>>2];F[g+24>>2]=c;if(!b){break b}oj(b)}fa=g+32|0;return}Ia();V()}function pe(a,b){var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0;c=H[b+38>>1];a:{if(!c){break a}b:{if(c>>>0<=511){d=F[b+12>>2];c=F[b+20>>2];e=F[b+16>>2];g=e+4|0;c=g>>>0<4?c+1|0:c;if(g>>>0>I[b+8>>2]&(c|0)>=(d|0)|(c|0)>(d|0)){break a}c=e+F[b>>2]|0;f=G[c|0]|G[c+1|0]<<8|(G[c+2|0]<<16|G[c+3|0]<<24);F[a+12>>2]=f;c=F[b+20>>2];d=F[b+16>>2]+4|0;c=d>>>0<4?c+1|0:c;e=d;F[b+16>>2]=d;F[b+20>>2]=c;break b}if(!se(1,a+12|0,b)){break a}e=F[b+16>>2];c=F[b+20>>2];f=F[a+12>>2]}d=F[b+8>>2];g=d-e|0;c=F[b+12>>2]-(c+(d>>>0>>0)|0)|0;if(g>>>0>>6>>>0&(c|0)<=0|(c|0)<0){break a}d=F[a>>2];c=F[a+4>>2]-d>>2;c:{if(c>>>0>>0){La(a,f-c|0);f=F[a+12>>2];break c}if(c>>>0<=f>>>0){break c}F[a+4>>2]=d+(f<<2)}if(!f){return 1}e=F[b+16>>2];c=F[b+20>>2];k=F[a>>2];l=F[b+8>>2];j=F[b+12>>2];g=0;while(1){if((c|0)>=(j|0)&e>>>0>=l>>>0|(c|0)>(j|0)){return 0}m=F[b>>2];i=G[m+e|0];d=e+1|0;c=d?c:c+1|0;e=d;F[b+16>>2]=d;F[b+20>>2]=c;d=i>>>2|0;h=0;d:{e:{f:{g:{n=i&3;switch(n|0){case 0:break e;case 3:break g;default:break f}}d=d+g|0;if(d>>>0>=f>>>0){return 0}Ti(k+(g<<2)|0,0,(i&252)+4|0);g=d;break d}while(1){if((c|0)>=(j|0)&e>>>0>=l>>>0|(c|0)>(j|0)){break a}f=G[e+m|0];e=e+1|0;c=e?c:c+1|0;F[b+16>>2]=e;F[b+20>>2]=c;d=f<<(h<<3|6)|d;h=h+1|0;if((n|0)!=(h|0)){continue}break}}F[k+(g<<2)>>2]=d}f=F[a+12>>2];g=g+1|0;if(f>>>0>g>>>0){continue}break}b=a+16|0;j=F[a>>2];d=F[a+16>>2];c=F[a+20>>2]-d|0;h:{if(c>>>0<=16383){La(b,4096-(c>>>2|0)|0);break h}if((c|0)==16384){break h}F[a+20>>2]=d+16384}c=a+28|0;g=F[c>>2];d=F[a+32>>2]-g>>3;i:{if(d>>>0>>0){te(c,f-d|0);g=F[c>>2];break i}if(d>>>0>f>>>0){F[a+32>>2]=(f<<3)+g}if(!f){break a}}e=F[b>>2];b=0;a=0;while(1){c=j+(b<<2)|0;h=F[c>>2];d=a;i=(b<<3)+g|0;F[i+4>>2]=d;F[i>>2]=h;c=F[c>>2];a=c+d|0;if(a>>>0>4096){break a}j:{if(a>>>0<=d>>>0){break j}h=0;i=c&7;if(i){while(1){F[e+(d<<2)>>2]=b;d=d+1|0;h=h+1|0;if((i|0)!=(h|0)){continue}break}}if(c-1>>>0<=6){break j}while(1){c=e+(d<<2)|0;F[c>>2]=b;F[c+28>>2]=b;F[c+24>>2]=b;F[c+20>>2]=b;F[c+16>>2]=b;F[c+12>>2]=b;F[c+8>>2]=b;F[c+4>>2]=b;d=d+8|0;if((d|0)!=(a|0)){continue}break}}b=b+1|0;if((f|0)!=(b|0)){continue}break}o=(a|0)==4096}return o}function Wd(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0;g=fa-48|0;fa=g;d=F[a+8>>2];if(d-31>>>0>=4294967267){F[a+76>>2]=d;e=-1<>2]=d;F[a+80>>2]=e^-1;F[a+92>>2]=(d|0)/2;J[a+88>>2]=M(2)/M(d|0)}F[a+52>>2]=f;d=F[a+40>>2];e=F[d>>2];d=F[d+4>>2];F[g+16>>2]=0;F[g+8>>2]=0;F[g+12>>2]=0;a:{d=d-e|0;if((d|0)>0){m=a+8|0;n=a+44|0;d=d>>>2|0;o=d>>>0>1?d:1;p=a+96|0;while(1){e=F[a+40>>2];d=F[e>>2];if(F[e+4>>2]-d>>2>>>0<=j>>>0){break a}ud(n,F[d+(j<<2)>>2],g+8|0);e=F[g+12>>2];d=e>>31;f=F[g+8>>2];h=f>>31;k=F[g+16>>2];i=k>>31;i=(i^k)-i|0;h=i+((d^e)-d+((f^h)-h)|0)|0;d=0;d=h>>>0>>0?1:d;b:{if(!(d|h)){F[g+8>>2]=F[a+92>>2];break b}i=F[a+92>>2];l=i>>31;f=_j(Zj(i,l,f,f>>31),ia,h,d);F[g+8>>2]=f;d=_j(Zj(i,l,e,e>>31),ia,h,d);F[g+12>>2]=d;e=d>>31;e=(d^e)-e|0;d=f>>31;d=e+((d^f)-d|0)|0;if((k|0)>=0){F[g+16>>2]=i-d;break b}F[g+16>>2]=d-i}d=ie(p);f=F[g+8>>2];c:{if(d){F[g+16>>2]=0-F[g+16>>2];e=0-F[g+12>>2]|0;F[g+12>>2]=e;f=0-f|0;F[g+8>>2]=f;break c}e=F[g+12>>2]}d:{if((f|0)>=0){f=F[a+92>>2];d=f+F[g+16>>2]|0;f=e+f|0;break d}e:{if((e|0)<0){d=F[g+16>>2];f=d>>31;f=(d^f)-f|0;break e}d=F[g+16>>2];f=d>>31;f=F[a+84>>2]+(f-(d^f)|0)|0}if((d|0)<0){d=e>>31;d=(d^e)-d|0;break d}d=e>>31;d=F[a+84>>2]+(d-(d^e)|0)|0}e=F[a+84>>2];f:{if(!(d|f)){d=e;f=d;break f}if(!((d|0)!=(e|0)|f)){f=d;break f}if(!((e|0)!=(f|0)|d)){d=f;break f}g:{if(f){break g}h=F[a+92>>2];if((h|0)>=(d|0)){break g}d=(h<<1)-d|0;f=0;break f}h:{if((e|0)!=(f|0)){break h}h=F[a+92>>2];if((h|0)<=(d|0)){break h}d=(h<<1)-d|0;break f}i:{if((d|0)!=(e|0)){break i}e=F[a+92>>2];if((e|0)<=(f|0)){break i}f=(e<<1)-f|0;break f}if(d){break f}d=0;e=F[a+92>>2];if((e|0)>=(f|0)){break f}f=(e<<1)-f|0}e=j<<3;h=e+b|0;k=F[h+4>>2];h=F[h>>2];F[g+36>>2]=d;F[g+32>>2]=f;F[g+24>>2]=h;F[g+28>>2]=k;Sd(g+40|0,m,g+32|0,g+24|0);d=c+e|0;F[d>>2]=F[g+40>>2];F[d+4>>2]=F[g+44>>2];j=j+1|0;if((o|0)!=(j|0)){continue}break}}fa=g+48|0;return 1}yc();V()}function Rd(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0;g=fa-48|0;fa=g;d=F[a+8>>2];if(d-31>>>0>=4294967267){F[a+76>>2]=d;e=-1<>2]=d;F[a+80>>2]=e^-1;F[a+92>>2]=(d|0)/2;J[a+88>>2]=M(2)/M(d|0)}F[a+52>>2]=f;d=F[a+40>>2];e=F[d>>2];d=F[d+4>>2];F[g+16>>2]=0;F[g+8>>2]=0;F[g+12>>2]=0;a:{d=d-e|0;if((d|0)>0){m=a+8|0;n=a+44|0;d=d>>>2|0;o=d>>>0>1?d:1;p=a+96|0;while(1){e=F[a+40>>2];d=F[e>>2];if(F[e+4>>2]-d>>2>>>0<=j>>>0){break a}dd(n,F[d+(j<<2)>>2],g+8|0);e=F[g+12>>2];d=e>>31;f=F[g+8>>2];h=f>>31;k=F[g+16>>2];i=k>>31;i=(i^k)-i|0;h=i+((d^e)-d+((f^h)-h)|0)|0;d=0;d=h>>>0>>0?1:d;b:{if(!(d|h)){F[g+8>>2]=F[a+92>>2];break b}i=F[a+92>>2];l=i>>31;f=_j(Zj(i,l,f,f>>31),ia,h,d);F[g+8>>2]=f;d=_j(Zj(i,l,e,e>>31),ia,h,d);F[g+12>>2]=d;e=d>>31;e=(d^e)-e|0;d=f>>31;d=e+((d^f)-d|0)|0;if((k|0)>=0){F[g+16>>2]=i-d;break b}F[g+16>>2]=d-i}d=ie(p);f=F[g+8>>2];c:{if(d){F[g+16>>2]=0-F[g+16>>2];e=0-F[g+12>>2]|0;F[g+12>>2]=e;f=0-f|0;F[g+8>>2]=f;break c}e=F[g+12>>2]}d:{if((f|0)>=0){f=F[a+92>>2];d=f+F[g+16>>2]|0;f=e+f|0;break d}e:{if((e|0)<0){d=F[g+16>>2];f=d>>31;f=(d^f)-f|0;break e}d=F[g+16>>2];f=d>>31;f=F[a+84>>2]+(f-(d^f)|0)|0}if((d|0)<0){d=e>>31;d=(d^e)-d|0;break d}d=e>>31;d=F[a+84>>2]+(d-(d^e)|0)|0}e=F[a+84>>2];f:{if(!(d|f)){d=e;f=d;break f}if(!((d|0)!=(e|0)|f)){f=d;break f}if(!((e|0)!=(f|0)|d)){d=f;break f}g:{if(f){break g}h=F[a+92>>2];if((h|0)>=(d|0)){break g}d=(h<<1)-d|0;f=0;break f}h:{if((e|0)!=(f|0)){break h}h=F[a+92>>2];if((h|0)<=(d|0)){break h}d=(h<<1)-d|0;break f}i:{if((d|0)!=(e|0)){break i}e=F[a+92>>2];if((e|0)<=(f|0)){break i}f=(e<<1)-f|0;break f}if(d){break f}d=0;e=F[a+92>>2];if((e|0)>=(f|0)){break f}f=(e<<1)-f|0}e=j<<3;h=e+b|0;k=F[h+4>>2];h=F[h>>2];F[g+36>>2]=d;F[g+32>>2]=f;F[g+24>>2]=h;F[g+28>>2]=k;Sd(g+40|0,m,g+32|0,g+24|0);d=c+e|0;F[d>>2]=F[g+40>>2];F[d+4>>2]=F[g+44>>2];j=j+1|0;if((o|0)!=(j|0)){continue}break}}fa=g+48|0;return 1}yc();V()}function Md(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0;g=fa-48|0;fa=g;d=F[a+8>>2];if(d-31>>>0>=4294967267){F[a+76>>2]=d;e=-1<>2]=d;F[a+80>>2]=e^-1;F[a+92>>2]=(d|0)/2;J[a+88>>2]=M(2)/M(d|0)}F[a+52>>2]=f;d=F[a+40>>2];e=F[d>>2];d=F[d+4>>2];F[g+16>>2]=0;F[g+8>>2]=0;F[g+12>>2]=0;a:{d=d-e|0;if((d|0)>0){m=a+8|0;n=a+44|0;d=d>>>2|0;o=d>>>0>1?d:1;p=a+96|0;while(1){e=F[a+40>>2];d=F[e>>2];if(F[e+4>>2]-d>>2>>>0<=j>>>0){break a}ud(n,F[d+(j<<2)>>2],g+8|0);e=F[g+12>>2];d=e>>31;f=F[g+8>>2];h=f>>31;k=F[g+16>>2];i=k>>31;i=(i^k)-i|0;h=i+((d^e)-d+((f^h)-h)|0)|0;d=0;d=h>>>0>>0?1:d;b:{if(!(d|h)){F[g+8>>2]=F[a+92>>2];break b}i=F[a+92>>2];l=i>>31;f=_j(Zj(i,l,f,f>>31),ia,h,d);F[g+8>>2]=f;d=_j(Zj(i,l,e,e>>31),ia,h,d);F[g+12>>2]=d;e=d>>31;e=(d^e)-e|0;d=f>>31;d=e+((d^f)-d|0)|0;if((k|0)>=0){F[g+16>>2]=i-d;break b}F[g+16>>2]=d-i}d=ie(p);f=F[g+8>>2];c:{if(d){F[g+16>>2]=0-F[g+16>>2];e=0-F[g+12>>2]|0;F[g+12>>2]=e;f=0-f|0;F[g+8>>2]=f;break c}e=F[g+12>>2]}d:{if((f|0)>=0){f=F[a+92>>2];d=f+F[g+16>>2]|0;f=e+f|0;break d}e:{if((e|0)<0){d=F[g+16>>2];f=d>>31;f=(d^f)-f|0;break e}d=F[g+16>>2];f=d>>31;f=F[a+84>>2]+(f-(d^f)|0)|0}if((d|0)<0){d=e>>31;d=(d^e)-d|0;break d}d=e>>31;d=F[a+84>>2]+(d-(d^e)|0)|0}e=F[a+84>>2];f:{if(!(d|f)){d=e;f=d;break f}if(!((d|0)!=(e|0)|f)){f=d;break f}if(!((e|0)!=(f|0)|d)){d=f;break f}g:{if(f){break g}h=F[a+92>>2];if((h|0)>=(d|0)){break g}d=(h<<1)-d|0;f=0;break f}h:{if((e|0)!=(f|0)){break h}h=F[a+92>>2];if((h|0)<=(d|0)){break h}d=(h<<1)-d|0;break f}i:{if((d|0)!=(e|0)){break i}e=F[a+92>>2];if((e|0)<=(f|0)){break i}f=(e<<1)-f|0;break f}if(d){break f}d=0;e=F[a+92>>2];if((e|0)>=(f|0)){break f}f=(e<<1)-f|0}e=j<<3;h=e+b|0;k=F[h+4>>2];F[g+40>>2]=F[h>>2];F[g+44>>2]=k;F[g+28>>2]=d;F[g+24>>2]=f;Id(g+32|0,m,g+24|0,g+40|0);d=c+e|0;F[d>>2]=F[g+32>>2];F[d+4>>2]=F[g+36>>2];j=j+1|0;if((o|0)!=(j|0)){continue}break}}fa=g+48|0;return 1}yc();V()}function Hd(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0;g=fa-48|0;fa=g;d=F[a+8>>2];if(d-31>>>0>=4294967267){F[a+76>>2]=d;e=-1<>2]=d;F[a+80>>2]=e^-1;F[a+92>>2]=(d|0)/2;J[a+88>>2]=M(2)/M(d|0)}F[a+52>>2]=f;d=F[a+40>>2];e=F[d>>2];d=F[d+4>>2];F[g+16>>2]=0;F[g+8>>2]=0;F[g+12>>2]=0;a:{d=d-e|0;if((d|0)>0){m=a+8|0;n=a+44|0;d=d>>>2|0;o=d>>>0>1?d:1;p=a+96|0;while(1){e=F[a+40>>2];d=F[e>>2];if(F[e+4>>2]-d>>2>>>0<=j>>>0){break a}dd(n,F[d+(j<<2)>>2],g+8|0);e=F[g+12>>2];d=e>>31;f=F[g+8>>2];h=f>>31;k=F[g+16>>2];i=k>>31;i=(i^k)-i|0;h=i+((d^e)-d+((f^h)-h)|0)|0;d=0;d=h>>>0>>0?1:d;b:{if(!(d|h)){F[g+8>>2]=F[a+92>>2];break b}i=F[a+92>>2];l=i>>31;f=_j(Zj(i,l,f,f>>31),ia,h,d);F[g+8>>2]=f;d=_j(Zj(i,l,e,e>>31),ia,h,d);F[g+12>>2]=d;e=d>>31;e=(d^e)-e|0;d=f>>31;d=e+((d^f)-d|0)|0;if((k|0)>=0){F[g+16>>2]=i-d;break b}F[g+16>>2]=d-i}d=ie(p);f=F[g+8>>2];c:{if(d){F[g+16>>2]=0-F[g+16>>2];e=0-F[g+12>>2]|0;F[g+12>>2]=e;f=0-f|0;F[g+8>>2]=f;break c}e=F[g+12>>2]}d:{if((f|0)>=0){f=F[a+92>>2];d=f+F[g+16>>2]|0;f=e+f|0;break d}e:{if((e|0)<0){d=F[g+16>>2];f=d>>31;f=(d^f)-f|0;break e}d=F[g+16>>2];f=d>>31;f=F[a+84>>2]+(f-(d^f)|0)|0}if((d|0)<0){d=e>>31;d=(d^e)-d|0;break d}d=e>>31;d=F[a+84>>2]+(d-(d^e)|0)|0}e=F[a+84>>2];f:{if(!(d|f)){d=e;f=d;break f}if(!((d|0)!=(e|0)|f)){f=d;break f}if(!((e|0)!=(f|0)|d)){d=f;break f}g:{if(f){break g}h=F[a+92>>2];if((h|0)>=(d|0)){break g}d=(h<<1)-d|0;f=0;break f}h:{if((e|0)!=(f|0)){break h}h=F[a+92>>2];if((h|0)<=(d|0)){break h}d=(h<<1)-d|0;break f}i:{if((d|0)!=(e|0)){break i}e=F[a+92>>2];if((e|0)<=(f|0)){break i}f=(e<<1)-f|0;break f}if(d){break f}d=0;e=F[a+92>>2];if((e|0)>=(f|0)){break f}f=(e<<1)-f|0}e=j<<3;h=e+b|0;k=F[h+4>>2];F[g+40>>2]=F[h>>2];F[g+44>>2]=k;F[g+28>>2]=d;F[g+24>>2]=f;Id(g+32|0,m,g+24|0,g+40|0);d=c+e|0;F[d>>2]=F[g+32>>2];F[d+4>>2]=F[g+36>>2];j=j+1|0;if((o|0)!=(j|0)){continue}break}}fa=g+48|0;return 1}yc();V()}function We(a,b){var c=0,d=0,e=0,f=0,g=0,h=0,i=0;f=fa-16|0;fa=f;c=F[a+4>>2];F[a+40>>2]=F[a>>2];F[a+44>>2]=c;c=F[a+36>>2];F[a+72>>2]=F[a+32>>2];F[a+76>>2]=c;d=F[a+28>>2];c=a- -64|0;F[c>>2]=F[a+24>>2];F[c+4>>2]=d;c=F[a+20>>2];F[a+56>>2]=F[a+16>>2];F[a+60>>2]=c;c=F[a+12>>2];F[a+48>>2]=F[a+8>>2];F[a+52>>2]=c;a:{b:{if(og(a+40|0,1,f+8|0)){c=F[a+44>>2];F[a>>2]=F[a+40>>2];F[a+4>>2]=c;c=F[a+76>>2];F[a+32>>2]=F[a+72>>2];F[a+36>>2]=c;c=F[a+68>>2];F[a+24>>2]=F[a+64>>2];F[a+28>>2]=c;d=F[a+60>>2];h=d;c=F[a+56>>2];F[a+16>>2]=c;F[a+20>>2]=d;e=F[a+52>>2];d=F[a+48>>2];F[a+8>>2]=d;F[a+12>>2]=e;i=d-c|0;g=F[f+12>>2];e=e-((c>>>0>d>>>0)+h|0)|0;d=F[f+8>>2];if((g|0)==(e|0)&i>>>0>=d>>>0|e>>>0>g>>>0){break b}}c=0;break a}e=c+d|0;c=h+g|0;F[a+16>>2]=e;F[a+20>>2]=d>>>0>e>>>0?c+1|0:c;c:{if(H[a+38>>1]<=513){c=F[a+4>>2];F[a+96>>2]=F[a>>2];F[a+100>>2]=c;c=F[a+36>>2];F[a+128>>2]=F[a+32>>2];F[a+132>>2]=c;c=F[a+28>>2];F[a+120>>2]=F[a+24>>2];F[a+124>>2]=c;c=F[a+20>>2];F[a+112>>2]=F[a+16>>2];F[a+116>>2]=c;c=F[a+12>>2];F[a+104>>2]=F[a+8>>2];F[a+108>>2]=c;d:{if(og(a+96|0,1,f+8|0)){c=F[a+100>>2];F[a>>2]=F[a+96>>2];F[a+4>>2]=c;c=F[a+132>>2];F[a+32>>2]=F[a+128>>2];F[a+36>>2]=c;c=F[a+124>>2];F[a+24>>2]=F[a+120>>2];F[a+28>>2]=c;d=F[a+116>>2];h=d;c=F[a+112>>2];F[a+16>>2]=c;F[a+20>>2]=d;e=F[a+108>>2];d=F[a+104>>2];F[a+8>>2]=d;F[a+12>>2]=e;i=d-c|0;g=F[f+12>>2];e=e-((c>>>0>d>>>0)+h|0)|0;d=F[f+8>>2];if((g|0)==(e|0)&i>>>0>=d>>>0|e>>>0>g>>>0){break d}}c=0;break a}e=c+d|0;c=h+g|0;F[a+16>>2]=e;F[a+20>>2]=d>>>0>e>>>0?c+1|0:c;break c}c=0;if(!ge(a+80|0,a)){break a}}c=0;if(!bf(a)){break a}c=F[a+4>>2];F[b>>2]=F[a>>2];F[b+4>>2]=c;c=F[a+36>>2];F[b+32>>2]=F[a+32>>2];F[b+36>>2]=c;c=F[a+28>>2];F[b+24>>2]=F[a+24>>2];F[b+28>>2]=c;c=F[a+20>>2];F[b+16>>2]=F[a+16>>2];F[b+20>>2]=c;c=F[a+12>>2];F[b+8>>2]=F[a+8>>2];F[b+12>>2]=c;c=1}fa=f+16|0;return c}function Vh(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0;f=fa-32|0;fa=f;e=f+8|0;c=fa-80|0;fa=c;a=F[b+36>>2];F[c+72>>2]=F[b+32>>2];F[c+76>>2]=a;d=F[b+28>>2];a=c- -64|0;F[a>>2]=F[b+24>>2];F[a+4>>2]=d;a=F[b+20>>2];F[c+56>>2]=F[b+16>>2];F[c+60>>2]=a;a=F[b+12>>2];F[c+48>>2]=F[b+8>>2];F[c+52>>2]=a;a=F[b+4>>2];F[c+40>>2]=F[b>>2];F[c+44>>2]=a;$f(c+8|0,c+40|0,c+24|0);a=F[c+8>>2];a:{if(a){F[e>>2]=a;a=e+4|0;if(D[c+23|0]>=0){b=c+8|4;e=F[b+4>>2];F[a>>2]=F[b>>2];F[a+4>>2]=e;F[a+8>>2]=F[b+8>>2];break a}uj(a,F[c+12>>2],F[c+16>>2]);if(D[c+23|0]>=0){break a}oj(F[c+12>>2]);break a}if(D[c+23|0]<0){oj(F[c+12>>2])}a=G[c+31|0];if(a>>>0>=2){b=rj(32);a=G[1477]|G[1478]<<8;D[b+24|0]=a;D[b+25|0]=a>>>8;a=G[1473]|G[1474]<<8|(G[1475]<<16|G[1476]<<24);d=G[1469]|G[1470]<<8|(G[1471]<<16|G[1472]<<24);D[b+16|0]=d;D[b+17|0]=d>>>8;D[b+18|0]=d>>>16;D[b+19|0]=d>>>24;D[b+20|0]=a;D[b+21|0]=a>>>8;D[b+22|0]=a>>>16;D[b+23|0]=a>>>24;a=G[1465]|G[1466]<<8|(G[1467]<<16|G[1468]<<24);d=G[1461]|G[1462]<<8|(G[1463]<<16|G[1464]<<24);D[b+8|0]=d;D[b+9|0]=d>>>8;D[b+10|0]=d>>>16;D[b+11|0]=d>>>24;D[b+12|0]=a;D[b+13|0]=a>>>8;D[b+14|0]=a>>>16;D[b+15|0]=a>>>24;a=G[1457]|G[1458]<<8|(G[1459]<<16|G[1460]<<24);d=G[1453]|G[1454]<<8|(G[1455]<<16|G[1456]<<24);D[b|0]=d;D[b+1|0]=d>>>8;D[b+2|0]=d>>>16;D[b+3|0]=d>>>24;D[b+4|0]=a;D[b+5|0]=a>>>8;D[b+6|0]=a>>>16;D[b+7|0]=a>>>24;D[b+26|0]=0;F[c+8>>2]=-1;a=c+8|4;uj(a,b,26);d=D[c+23|0];F[e>>2]=F[c+8>>2];e=e+4|0;if((d|0)>=0){d=F[a+4>>2];F[e>>2]=F[a>>2];F[e+4>>2]=d;F[e+8>>2]=F[a+8>>2];oj(b);break a}uj(e,F[c+12>>2],F[c+16>>2]);if(D[c+23|0]<0){oj(F[c+12>>2])}oj(b);break a}F[e>>2]=0;F[e+4>>2]=0;F[e+16>>2]=a;F[e+8>>2]=0;F[e+12>>2]=0}fa=c+80|0;a=F[f+24>>2];if(D[f+23|0]<0){oj(F[f+12>>2])}fa=f+32|0;return a|0}function Li(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0;k=fa-16|0;fa=k;F[k+8>>2]=c;e=F[a+12>>2];d=F[a+8>>2];f=e-d>>2;a:{if((f|0)>(b|0)){break a}h=b+1|0;if(h>>>0>f>>>0){f=h-f|0;g=F[a+16>>2];d=F[a+12>>2];if(f>>>0<=g-d>>2>>>0){if(f){e=d;d=f<<2;d=Ti(e,0,d)+d|0}F[a+12>>2]=d;break a}b:{c:{d:{h=F[a+8>>2];i=d-h>>2;e=i+f|0;if(e>>>0<1073741824){g=g-h|0;l=g>>1;g=g>>>0<2147483644?e>>>0>>0?l:e:1073741823;if(g){if(g>>>0>=1073741824){break d}j=rj(g<<2)}e=(i<<2)+j|0;i=f<<2;f=Ti(e,0,i);i=f+i|0;g=(g<<2)+j|0;if((d|0)==(h|0)){break c}while(1){d=d-4|0;f=F[d>>2];F[d>>2]=0;e=e-4|0;F[e>>2]=f;if((d|0)!=(h|0)){continue}break}F[a+16>>2]=g;f=F[a+12>>2];F[a+12>>2]=i;d=F[a+8>>2];F[a+8>>2]=e;if((d|0)==(f|0)){break b}while(1){f=f-4|0;e=F[f>>2];F[f>>2]=0;if(e){qb(e)}if((d|0)!=(f|0)){continue}break}break b}Ia();V()}Wa();V()}F[a+16>>2]=g;F[a+12>>2]=i;F[a+8>>2]=f}if(d){oj(d)}break a}if(f>>>0<=h>>>0){break a}d=d+(h<<2)|0;if((d|0)!=(e|0)){while(1){e=e-4|0;c=F[e>>2];F[e>>2]=0;if(c){qb(c)}if((d|0)!=(e|0)){continue}break}c=F[k+8>>2]}F[a+12>>2]=d}e:{f:{d=F[c+56>>2];g:{if((d|0)>4){break g}e=L(d,12)+a|0;d=F[e+24>>2];if((d|0)!=F[e+28>>2]){F[d>>2]=b;F[e+24>>2]=d+4;break g}h=F[e+20>>2];f=d-h|0;j=f>>2;d=j+1|0;if(d>>>0>=1073741824){break f}g=f>>1;g=f>>>0<2147483644?d>>>0>>0?g:d:1073741823;if(g){if(g>>>0>=1073741824){break e}d=rj(g<<2)}else{d=0}j=d+(j<<2)|0;F[j>>2]=b;if((f|0)>0){Ri(d,h,f)}F[e+20>>2]=d;F[e+24>>2]=j+4;F[e+28>>2]=d+(g<<2);if(!h){break g}oj(h)}F[c+60>>2]=b;a=F[a+8>>2];F[k+8>>2]=0;b=a+(b<<2)|0;a=F[b>>2];F[b>>2]=c;if(a){qb(a)}a=F[k+8>>2];F[k+8>>2]=0;if(a){qb(a)}fa=k+16|0;return}Ia();V()}Wa();V()}function Ye(a,b){var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0;i=fa-16|0;fa=i;F[i>>2]=b;g=-1;a:{if((b|0)==-1){F[i+4>>2]=-1;break a}c=b+1|0;F[i+4>>2]=(c>>>0)%3|0?c:b-2|0;if((b>>>0)%3|0){g=b-1|0;break a}g=b+2|0}F[i+8>>2]=g;n=(b>>>0)/3|0;b:{c:{d:{while(1){e:{f:{k=F[(l<<2)+i>>2];if((k|0)!=-1){c=F[F[F[a+8>>2]+12>>2]+(k<<2)>>2];if((c|0)!=-1){break f}}g=0;c=F[a+216>>2];if((c|0)==F[a+220>>2]){break e}while(1){f=L(g,144)+c|0;c=F[f+136>>2];d=F[f+140>>2];g:{if(c>>>0>>0){F[c>>2]=k;F[f+136>>2]=c+4;break g}h=F[f+132>>2];j=c-h|0;e=j>>2;c=e+1|0;if(c>>>0>=1073741824){break d}m=e<<2;d=d-h|0;e=d>>1;d=d>>>0<2147483644?c>>>0>>0?e:c:1073741823;if(d){if(d>>>0>=1073741824){break c}c=rj(d<<2)}else{c=0}e=m+c|0;F[e>>2]=k;if((j|0)>0){Ri(c,h,j)}F[f+132>>2]=c;F[f+136>>2]=e+4;F[f+140>>2]=c+(d<<2);if(!h){break g}oj(h)}g=g+1|0;c=F[a+216>>2];if(g>>>0<(F[a+220>>2]-c|0)/144>>>0){continue}break}break e}if((b|0)==-1|(c>>>0)/3>>>0>>0){break e}g=0;if(F[a+220>>2]==F[a+216>>2]){break e}while(1){h:{if(!ie(F[a+368>>2]+(g<<4)|0)){break h}f=F[a+216>>2]+L(g,144)|0;c=F[f+136>>2];d=F[f+140>>2];if(c>>>0>>0){F[c>>2]=k;F[f+136>>2]=c+4;break h}h=F[f+132>>2];j=c-h|0;e=j>>2;c=e+1|0;if(c>>>0>=1073741824){break b}m=e<<2;d=d-h|0;e=d>>1;d=d>>>0<2147483644?c>>>0>>0?e:c:1073741823;if(d){if(d>>>0>=1073741824){break c}c=rj(d<<2)}else{c=0}e=m+c|0;F[e>>2]=k;if((j|0)>0){Ri(c,h,j)}F[f+132>>2]=c;F[f+136>>2]=e+4;F[f+140>>2]=c+(d<<2);if(!h){break h}oj(h)}g=g+1|0;if(g>>>0<(F[a+220>>2]-F[a+216>>2]|0)/144>>>0){continue}break}}l=l+1|0;if((l|0)!=3){continue}break}fa=i+16|0;return 1}Ia();V()}Wa();V()}Ia();V()}function vh(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0;e=a;a:{if(F[a+12>>2]==(b|0)){break a}d=F[e+4>>2];a=F[e>>2];if((d|0)!=(a|0)){while(1){d=d-12|0;if(D[d+11|0]<0){oj(F[d>>2])}if((a|0)!=(d|0)){continue}break}}F[e+12>>2]=b;F[e+4>>2]=a;d=F[b>>2];j=b+4|0;if((d|0)==(j|0)){break a}while(1){a=F[e+4>>2];b:{if((a|0)!=F[e+8>>2]){c:{if(D[d+27|0]>=0){b=F[d+20>>2];F[a>>2]=F[d+16>>2];F[a+4>>2]=b;F[a+8>>2]=F[d+24>>2];break c}uj(a,F[d+16>>2],F[d+20>>2])}F[e+4>>2]=a+12;break b}h=0;d:{e:{f:{b=F[e+4>>2];a=F[e>>2];g=(b-a|0)/12|0;f=g+1|0;if(f>>>0<357913942){i=(F[e+8>>2]-a|0)/12|0;k=i<<1;f=i>>>0<178956970?f>>>0>>0?k:f:357913941;if(f){if(f>>>0>=357913942){break f}h=rj(L(f,12))}i=L(f,12);f=L(g,12)+h|0;g:{if(D[d+27|0]>=0){g=F[d+20>>2];F[f>>2]=F[d+16>>2];F[f+4>>2]=g;F[f+8>>2]=F[d+24>>2];break g}uj(f,F[d+16>>2],F[d+20>>2]);b=F[e+4>>2];a=F[e>>2]}h=h+i|0;g=f+12|0;if((a|0)==(b|0)){break e}while(1){b=b-12|0;i=F[b+4>>2];f=f-12|0;F[f>>2]=F[b>>2];F[f+4>>2]=i;F[f+8>>2]=F[b+8>>2];F[b>>2]=0;F[b+4>>2]=0;F[b+8>>2]=0;if((a|0)!=(b|0)){continue}break}F[e+8>>2]=h;a=F[e+4>>2];F[e+4>>2]=g;b=F[e>>2];F[e>>2]=f;if((a|0)==(b|0)){break d}while(1){a=a-12|0;if(D[a+11|0]<0){oj(F[a>>2])}if((a|0)!=(b|0)){continue}break}break d}Ia();V()}Wa();V()}F[e+8>>2]=h;F[e+4>>2]=g;F[e>>2]=f}if(b){oj(b)}}a=F[d+4>>2];h:{if(a){while(1){d=a;a=F[a>>2];if(a){continue}break h}}while(1){a=d;d=F[d+8>>2];if((a|0)!=F[d>>2]){continue}break}}if((d|0)!=(j|0)){continue}break}}d=0;i:{if((c|0)<0){break i}a=F[e>>2];if((F[e+4>>2]-a|0)/12>>>0<=c>>>0){break i}a=a+L(c,12)|0;d=D[a+11|0]<0?F[a>>2]:a}return d|0}function Xe(a,b){var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0;h=fa-16|0;fa=h;F[h>>2]=b;c=-1;a:{if((b|0)==-1){F[h+4>>2]=-1;break a}c=b+1|0;F[h+4>>2]=(c>>>0)%3|0?c:b-2|0;if((b>>>0)%3|0){c=b-1|0;break a}c=b+2|0}F[h+8>>2]=c;b:{c:{while(1){j=F[(k<<2)+h>>2];d:{if(!((j|0)==-1|F[F[F[a+8>>2]+12>>2]+(j<<2)>>2]==-1)){b=0;if(F[a+220>>2]==F[a+216>>2]){break d}while(1){e:{f:{if(!ie(F[a+368>>2]+(b<<4)|0)){break f}f=F[a+216>>2]+L(b,144)|0;c=F[f+136>>2];d=F[f+140>>2];if(c>>>0>>0){F[c>>2]=j;F[f+136>>2]=c+4;break f}g=F[f+132>>2];i=c-g|0;e=i>>2;c=e+1|0;if(c>>>0>=1073741824){break e}l=e<<2;d=d-g|0;e=d>>1;d=d>>>0<2147483644?c>>>0>>0?e:c:1073741823;if(d){if(d>>>0>=1073741824){break b}c=rj(d<<2)}else{c=0}e=l+c|0;F[e>>2]=j;if((i|0)>0){Ri(c,g,i)}F[f+132>>2]=c;F[f+136>>2]=e+4;F[f+140>>2]=c+(d<<2);if(!g){break f}oj(g)}b=b+1|0;if(b>>>0<(F[a+220>>2]-F[a+216>>2]|0)/144>>>0){continue}break d}break}Ia();V()}b=0;c=F[a+216>>2];if((c|0)==F[a+220>>2]){break d}while(1){f=L(b,144)+c|0;c=F[f+136>>2];d=F[f+140>>2];g:{if(c>>>0>>0){F[c>>2]=j;F[f+136>>2]=c+4;break g}g=F[f+132>>2];i=c-g|0;e=i>>2;c=e+1|0;if(c>>>0>=1073741824){break c}l=e<<2;d=d-g|0;e=d>>1;d=d>>>0<2147483644?c>>>0>>0?e:c:1073741823;if(d){if(d>>>0>=1073741824){break b}c=rj(d<<2)}else{c=0}e=l+c|0;F[e>>2]=j;if((i|0)>0){Ri(c,g,i)}F[f+132>>2]=c;F[f+136>>2]=e+4;F[f+140>>2]=c+(d<<2);if(!g){break g}oj(g)}b=b+1|0;c=F[a+216>>2];if(b>>>0<(F[a+220>>2]-c|0)/144>>>0){continue}break}}k=k+1|0;if((k|0)!=3){continue}break}fa=h+16|0;return 1}Ia();V()}Wa();V()}function Ph(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0;a=0;g=fa-16|0;fa=g;i=D[c+24|0];k=F[b+80>>2];b=L(i,k);a:{b:{c:{e=F[c+28>>2];d:{if(!(!G[c+84|0]|(e|0)!=1&(e|0)!=2)){a=F[c+48>>2];c=F[F[c>>2]>>2];F[g+8>>2]=0;F[g>>2]=0;F[g+4>>2]=0;e=0;if(b){if((b|0)<0){break b}e=rj(b);f=Ri(e,a+c|0,b)+b|0}a=F[d>>2];if(a){F[d+4>>2]=a;oj(a)}F[d+8>>2]=f;F[d+4>>2]=f;F[d>>2]=e;a=1;break d}F[g+8>>2]=0;F[g>>2]=0;F[g+4>>2]=0;if(i){if((i|0)<0){break b}a=rj(i);F[g>>2]=a;f=a+i|0;F[g+8>>2]=f;Ti(a,0,i);F[g+4>>2]=f}h=F[d+4>>2];f=F[d>>2];e=h-f|0;e:{if(e>>>0>>0){l=b-e|0;j=F[d+8>>2];if(l>>>0<=j-h>>>0){m=d,n=Ti(h,0,l)+l|0,F[m+4>>2]=n;break e}if((b|0)<0){break c}h=j-f|0;j=h<<1;j=h>>>0<1073741823?b>>>0>>0?j:b:2147483647;h=rj(j);Ti(h+e|0,0,l);if((e|0)>0){Ri(h,f,e)}F[d+8>>2]=h+j;F[d+4>>2]=b+h;F[d>>2]=h;if(!f){break e}oj(f);break e}if(b>>>0>=e>>>0){break e}F[d+4>>2]=b+f}f:{if(!k){e=0;break f}if(!i){b=0;e=1;while(1){if(!ug(c,G[c+84|0]?b:F[F[c+68>>2]+(b<<2)>>2],D[c+24|0],a)){break f}b=b+1|0;e=k>>>0>b>>>0;if((b|0)!=(k|0)){continue}break}break f}h=i&-2;l=i&1;b=0;e=1;a=0;while(1){if(ug(c,G[c+84|0]?a:F[F[c+68>>2]+(a<<2)>>2],D[c+24|0],F[g>>2])){f=0;e=0;if((i|0)!=1){while(1){D[F[d>>2]+b|0]=G[F[g>>2]+f|0];D[(F[d>>2]+b|0)+1|0]=G[F[g>>2]+(f|1)|0];f=f+2|0;b=b+2|0;e=e+2|0;if((h|0)!=(e|0)){continue}break}}if(l){D[F[d>>2]+b|0]=G[F[g>>2]+f|0];b=b+1|0}a=a+1|0;e=k>>>0>a>>>0;if((a|0)!=(k|0)){continue}}break}a=F[g>>2]}if(a){oj(a)}a=e^1}fa=g+16|0;a=a&1;break a}Ia();V()}Ia();V()}return a|0}function Oh(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0;a=0;g=fa-16|0;fa=g;i=D[c+24|0];k=F[b+80>>2];b=L(i,k);a:{b:{c:{e=F[c+28>>2];d:{if(!(!G[c+84|0]|(e|0)!=1&(e|0)!=2)){a=F[c+48>>2];c=F[F[c>>2]>>2];F[g+8>>2]=0;F[g>>2]=0;F[g+4>>2]=0;e=0;if(b){if((b|0)<0){break b}e=rj(b);f=Ri(e,a+c|0,b)+b|0}a=F[d>>2];if(a){F[d+4>>2]=a;oj(a)}F[d+8>>2]=f;F[d+4>>2]=f;F[d>>2]=e;a=1;break d}F[g+8>>2]=0;F[g>>2]=0;F[g+4>>2]=0;if(i){if((i|0)<0){break b}a=rj(i);F[g>>2]=a;f=a+i|0;F[g+8>>2]=f;Ti(a,0,i);F[g+4>>2]=f}h=F[d+4>>2];f=F[d>>2];e=h-f|0;e:{if(e>>>0>>0){l=b-e|0;j=F[d+8>>2];if(l>>>0<=j-h>>>0){m=d,n=Ti(h,0,l)+l|0,F[m+4>>2]=n;break e}if((b|0)<0){break c}h=j-f|0;j=h<<1;j=h>>>0<1073741823?b>>>0>>0?j:b:2147483647;h=rj(j);Ti(h+e|0,0,l);if((e|0)>0){Ri(h,f,e)}F[d+8>>2]=h+j;F[d+4>>2]=b+h;F[d>>2]=h;if(!f){break e}oj(f);break e}if(b>>>0>=e>>>0){break e}F[d+4>>2]=b+f}f:{if(!k){e=0;break f}if(!i){b=0;e=1;while(1){if(!tg(c,G[c+84|0]?b:F[F[c+68>>2]+(b<<2)>>2],D[c+24|0],a)){break f}b=b+1|0;e=k>>>0>b>>>0;if((b|0)!=(k|0)){continue}break}break f}h=i&-2;l=i&1;b=0;e=1;a=0;while(1){if(tg(c,G[c+84|0]?a:F[F[c+68>>2]+(a<<2)>>2],D[c+24|0],F[g>>2])){f=0;e=0;if((i|0)!=1){while(1){D[F[d>>2]+b|0]=G[F[g>>2]+f|0];D[(F[d>>2]+b|0)+1|0]=G[F[g>>2]+(f|1)|0];f=f+2|0;b=b+2|0;e=e+2|0;if((h|0)!=(e|0)){continue}break}}if(l){D[F[d>>2]+b|0]=G[F[g>>2]+f|0];b=b+1|0}a=a+1|0;e=k>>>0>a>>>0;if((a|0)!=(k|0)){continue}}break}a=F[g>>2]}if(a){oj(a)}a=e^1}fa=g+16|0;a=a&1;break a}Ia();V()}Ia();V()}return a|0}function Sd(a,b,c,d){var e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0;k=F[b+16>>2];g=F[c+4>>2]-k|0;e=g;f=F[c>>2]-k|0;F[c>>2]=f;F[c+4>>2]=e;j=F[b+16>>2];e=e>>31;h=(e^g)-e|0;e=f>>31;l=(j|0)>=(h+((e^f)-e|0)|0);a:{if(l){e=g;break a}b:{c:{if((f|0)>=0){i=1;h=1;if((g|0)>=0){break b}e=1;i=-1;h=-1;if(f){break c}break b}e=-1;i=-1;h=-1;if((g|0)<=0){break b}}i=(g|0)<=0?-1:1;h=e}e=f<<1;f=L(h,j);e=e-f|0;h=(L(i,h)|0)>=0;i=L(i,j);e=((h?0-e|0:e)+i|0)/2|0;F[c+4>>2]=e;j=f;f=(g<<1)-i|0;f=(j+(h?0-f|0:f)|0)/2|0;F[c>>2]=f}d:{e:{f:{g:{h:{i:{j:{if(f){if((f|0)<0){break j}if((e|0)>=0){break i}break f}if(e){break h}i=1;g=0;e=0;h=0;break d}i=1;if((e|0)>0){break g}h=(e|0)>0?253:0;g=e;e=f;break d}g=0-e|0;e=0-f|0;h=254;break e}if((e|0)<=0){break f}}e=0-e|0;g=f;h=253;break e}g=0-f|0;h=255}F[c>>2]=e;F[c+4>>2]=g;i=0}c=F[d+4>>2]+g|0;f=F[d>>2]+e|0;g=F[b+16>>2];k:{if((f|0)>(g|0)){f=f-F[b+4>>2]|0;break k}if((0-g|0)<=(f|0)){break k}f=F[b+4>>2]+f|0}l:{if((c|0)>(g|0)){c=c-F[b+4>>2]|0;break l}if((0-g|0)<=(c|0)){break l}c=F[b+4>>2]+c|0}m:{if(i){b=c;break m}b=c;n:{switch((h&3)-1|0){case 0:b=0-f|0;f=c;break m;case 1:b=0-c|0;f=0-f|0;break m;case 2:break n;default:break m}}b=f;f=0-c|0}o:{if(l){c=b;break o}p:{q:{if((f|0)>=0){c=1;e=1;if((b|0)>=0){break p}d=1;c=-1;e=-1;if(f){break q}break p}d=-1;c=-1;e=-1;if((b|0)<=0){break p}}c=(b|0)<=0?-1:1;e=d}d=f<<1;f=L(e,g);d=d-f|0;F[a>>2]=d;j=0-d|0;h=d;d=(L(c,e)|0)>=0;e=L(c,g);c=((d?j:h)+e|0)/2|0;b=(b<<1)-e|0;f=(f+(d?0-b|0:b)|0)/2|0}F[a>>2]=f+k;F[a+4>>2]=c+k}function Mh(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0;a=0;h=fa-16|0;fa=h;j=F[b+80>>2];b=G[c+24|0];F[h+8>>2]=0;F[h>>2]=0;F[h+4>>2]=0;e=b<<24>>24;a:{b:{c:{d:{if(b){if((e|0)<0){break d}b=e<<2;a=rj(b);F[h>>2]=a;g=a+b|0;F[h+8>>2]=g;b=a;k=e&7;if(k){while(1){F[b>>2]=-1073741824;b=b+4|0;f=f+1|0;if((k|0)!=(f|0)){continue}break}}if((e-1&1073741823)>>>0>=7){while(1){F[b+24>>2]=-1073741824;F[b+28>>2]=-1073741824;F[b+16>>2]=-1073741824;F[b+20>>2]=-1073741824;F[b+8>>2]=-1073741824;F[b+12>>2]=-1073741824;F[b>>2]=-1073741824;F[b+4>>2]=-1073741824;b=b+32|0;if((g|0)!=(b|0)){continue}break}}F[h+4>>2]=g}b=L(e,j);g=F[d>>2];f=F[d+4>>2]-g>>2;e:{if(b>>>0>f>>>0){La(d,b-f|0);break e}if(b>>>0>=f>>>0){break e}F[d+4>>2]=g+(b<<2)}if(!j){break c}i=1;if((e|0)<=0){b=0;while(1){if(!Rc(c,G[c+84|0]?b:F[F[c+68>>2]+(b<<2)>>2],D[c+24|0],a)){break c}b=b+1|0;i=j>>>0>b>>>0;if((b|0)!=(j|0)){continue}break}break c}o=e&-4;k=e&3;f=0;p=e-1>>>0<3;while(1){if(!Rc(c,G[c+84|0]?l:F[F[c+68>>2]+(l<<2)>>2],D[c+24|0],a)){break c}n=F[d>>2];m=0;b=0;i=0;if(!p){while(1){e=(f<<2)+n|0;g=b<<2;J[e>>2]=J[g+a>>2];J[e+4>>2]=J[(g|4)+a>>2];J[e+8>>2]=J[(g|8)+a>>2];J[e+12>>2]=J[(g|12)+a>>2];b=b+4|0;f=f+4|0;i=i+4|0;if((o|0)!=(i|0)){continue}break}}if(k){while(1){J[(f<<2)+n>>2]=J[(b<<2)+a>>2];b=b+1|0;f=f+1|0;m=m+1|0;if((k|0)!=(m|0)){continue}break}}l=l+1|0;i=l>>>0>>0;if((j|0)!=(l|0)){continue}break}break b}Ia();V()}if(!a){break a}}oj(a)}fa=h+16|0;return(i^-1)&1}function Ba(a,b,c,d){var e=0,f=0,g=0,h=0,i=0,j=0,k=0;i=d-c|0;if((i|0)<=0){return}a:{g=F[a+8>>2];h=F[a+4>>2];if((g-h|0)>=(i|0)){j=h-b|0;if((j|0)>=(i|0)){f=h;g=d;break a}f=h;g=c+j|0;if((g|0)!=(d|0)){e=g;while(1){D[f|0]=G[e|0];f=f+1|0;e=e+1|0;if((e|0)!=(d|0)){continue}break}}F[a+4>>2]=f;if((j|0)>0){break a}return}f=F[a>>2];e=(h-f|0)+i|0;if((e|0)>=0){j=b-f|0;g=g-f|0;k=g<<1;k=g>>>0<1073741823?e>>>0>>0?k:e:2147483647;if(k){g=rj(k)}else{g=0}e=j+g|0;if((c|0)!=(d|0)){e=Ri(e,c,i)+i|0}if((j|0)>0){Ri(g,f,j)}if((b|0)!=(h|0)){d=(b^-1)+h|0;f=h-b&7;if(f){c=0;while(1){D[e|0]=G[b|0];e=e+1|0;b=b+1|0;c=c+1|0;if((f|0)!=(c|0)){continue}break}}if(d>>>0>=7){while(1){D[e|0]=G[b|0];D[e+1|0]=G[b+1|0];D[e+2|0]=G[b+2|0];D[e+3|0]=G[b+3|0];D[e+4|0]=G[b+4|0];D[e+5|0]=G[b+5|0];D[e+6|0]=G[b+6|0];D[e+7|0]=G[b+7|0];e=e+8|0;b=b+8|0;if((h|0)!=(b|0)){continue}break}}f=F[a>>2]}F[a+8>>2]=g+k;F[a+4>>2]=e;F[a>>2]=g;if(f){oj(f)}return}Ia();V()}e=f;d=e-i|0;if(h>>>0>d>>>0){while(1){D[e|0]=G[d|0];e=e+1|0;d=d+1|0;if(h>>>0>d>>>0){continue}break}}F[a+4>>2]=e;a=b+i|0;if((a|0)!=(f|0)){a=f-a|0;Si(f-a|0,b,a)}if((c|0)==(g|0)){return}a=(c^-1)+g|0;f=g-c&7;b:{if(!f){e=b;break b}d=0;e=b;while(1){D[e|0]=G[c|0];e=e+1|0;c=c+1|0;d=d+1|0;if((f|0)!=(d|0)){continue}break}}if(a>>>0<7){return}while(1){D[e|0]=G[c|0];D[e+1|0]=G[c+1|0];D[e+2|0]=G[c+2|0];D[e+3|0]=G[c+3|0];D[e+4|0]=G[c+4|0];D[e+5|0]=G[c+5|0];D[e+6|0]=G[c+6|0];D[e+7|0]=G[c+7|0];e=e+8|0;c=c+8|0;if((g|0)!=(c|0)){continue}break}}function bb(a,b){var c=0,d=0,e=0,f=0;if(!F[a+64>>2]){c=rj(32);F[c+16>>2]=0;F[c+20>>2]=0;F[c+8>>2]=0;F[c>>2]=0;F[c+4>>2]=0;F[c+24>>2]=0;F[c+28>>2]=0;d=F[a+64>>2];F[a+64>>2]=c;if(d){c=F[d>>2];if(c){F[d+4>>2]=c;oj(c)}oj(d);c=F[a+64>>2]}F[a>>2]=c;d=F[c+20>>2];F[a+8>>2]=F[c+16>>2];F[a+12>>2]=d;d=F[c+24>>2];c=F[c+28>>2];F[a+48>>2]=0;F[a+52>>2]=0;F[a+40>>2]=0;F[a+44>>2]=0;F[a+16>>2]=d;F[a+20>>2]=c}a:{D[a+24|0]=G[b+24|0];F[a+28>>2]=F[b+28>>2];D[a+32|0]=G[b+32|0];c=F[b+44>>2];F[a+40>>2]=F[b+40>>2];F[a+44>>2]=c;c=F[b+52>>2];F[a+48>>2]=F[b+48>>2];F[a+52>>2]=c;F[a+56>>2]=F[b+56>>2];c=F[b+12>>2];F[a+8>>2]=F[b+8>>2];F[a+12>>2]=c;c=F[b+20>>2];F[a+16>>2]=F[b+16>>2];F[a+20>>2]=c;F[a+60>>2]=F[b+60>>2];d=F[b>>2];b:{if(!d){F[a>>2]=0;c=1;break b}e=F[a>>2];c=0;if(!e){break b}c=F[d>>2];lg(e,c,F[d+4>>2]-c|0,0);c=1}c:{if(!c){break c}D[a+84|0]=G[b+84|0];F[a+80>>2]=F[b+80>>2];if((a|0)!=(b|0)){cb(a+68|0,F[b+68>>2],F[b+72>>2])}d=F[b+88>>2];d:{if(d){b=rj(40);c=F[d>>2];F[b+16>>2]=0;F[b+8>>2]=0;F[b+12>>2]=0;F[b>>2]=c;c=F[d+12>>2];e=F[d+8>>2];if((c|0)!=(e|0)){e=c-e|0;if((e|0)<0){break a}c=rj(e);F[b+8>>2]=c;F[b+12>>2]=c;F[b+16>>2]=c+e;f=F[d+8>>2];e=F[d+12>>2]-f|0;if((e|0)>0){c=Ri(c,f,e)+e|0}F[b+12>>2]=c}c=F[d+36>>2];F[b+32>>2]=F[d+32>>2];F[b+36>>2]=c;c=F[d+28>>2];F[b+24>>2]=F[d+24>>2];F[b+28>>2]=c;c=F[a+88>>2];F[a+88>>2]=b;if(c){break d}break c}c=F[a+88>>2];F[a+88>>2]=0;if(!c){break c}}a=F[c+8>>2];if(a){F[c+12>>2]=a;oj(a)}oj(c)}return}Ia();V()}function wd(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0;F[a+8>>2]=e;m=a+32|0;h=F[m>>2];g=F[a+36>>2]-h>>2;a:{if(g>>>0>>0){La(m,e-g|0);f=F[a+8>>2];break a}f=e;if(f>>>0>=g>>>0){break a}F[a+36>>2]=h+(e<<2);f=e}g=(e&1073741823)!=(e|0)?-1:e<<2;n=Ti(rj(g),0,g);b:{if((f|0)<=0){break b}h=F[a+32>>2];while(1){f=i<<2;g=F[f+n>>2];j=F[a+16>>2];c:{if((g|0)>(j|0)){F[f+h>>2]=j;break c}f=f+h|0;j=F[a+12>>2];if((j|0)>(g|0)){F[f>>2]=j;break c}F[f>>2]=g}f=F[a+8>>2];i=i+1|0;if((f|0)>(i|0)){continue}break}if((f|0)<=0){break b}i=0;while(1){g=i<<2;f=g+c|0;g=F[b+g>>2]+F[g+h>>2]|0;F[f>>2]=g;d:{if((g|0)>F[a+16>>2]){g=g-F[a+20>>2]|0}else{if((g|0)>=F[a+12>>2]){break d}g=g+F[a+20>>2]|0}F[f>>2]=g}f=F[a+8>>2];i=i+1|0;if((f|0)>(i|0)){continue}break}}if(!((d|0)<=(e|0)|(f|0)<=0)){p=0-e<<2;g=e;while(1){e:{if((f|0)<=0){break e}l=g<<2;o=l+c|0;q=o+p|0;j=F[m>>2];i=0;while(1){f=i<<2;h=F[f+q>>2];k=F[a+16>>2];f:{if((h|0)>(k|0)){F[f+j>>2]=k;break f}f=f+j|0;k=F[a+12>>2];if((k|0)>(h|0)){F[f>>2]=k;break f}F[f>>2]=h}f=F[a+8>>2];i=i+1|0;if((f|0)>(i|0)){continue}break}i=0;if((f|0)<=0){break e}l=b+l|0;while(1){h=i<<2;f=h+o|0;h=F[h+l>>2]+F[h+j>>2]|0;F[f>>2]=h;g:{if((h|0)>F[a+16>>2]){h=h-F[a+20>>2]|0}else{if((h|0)>=F[a+12>>2]){break g}h=h+F[a+20>>2]|0}F[f>>2]=h}f=F[a+8>>2];i=i+1|0;if((f|0)>(i|0)){continue}break}}g=e+g|0;if((g|0)<(d|0)){continue}break}}oj(n);return 1}function Sh(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0;g=fa-16|0;fa=g;j=F[b+80>>2];a=D[c+24|0];b=L(j,a);a:{b:{c:{d:{e=F[c+28>>2];if(!(!G[c+84|0]|(e|0)!=5&(e|0)!=6)){e=F[c+48>>2];c=F[F[c>>2]>>2];F[g+8>>2]=0;F[g>>2]=0;F[g+4>>2]=0;if(b){if((b|0)<0){break d}a=b<<2;f=rj(a);i=Ri(f,c+e|0,a)+a|0}a=F[d>>2];if(a){F[d+4>>2]=a;oj(a)}F[d+8>>2]=i;F[d+4>>2]=i;F[d>>2]=f;a=1;break a}F[g+8>>2]=0;F[g>>2]=0;F[g+4>>2]=0;if(a){if((a|0)<0){break d}e=a<<2;f=rj(e);F[g>>2]=f;h=e+f|0;F[g+8>>2]=h;Ti(f,0,e);F[g+4>>2]=h}h=F[d>>2];e=F[d+4>>2]-h>>2;e:{if(e>>>0>>0){La(d,b-e|0);break e}if(b>>>0>=e>>>0){break e}F[d+4>>2]=h+(b<<2)}if(!j){b=0;break c}if(!a){a=0;b=1;while(1){if(!zg(c,G[c+84|0]?a:F[F[c+68>>2]+(a<<2)>>2],D[c+24|0],f)){break c}a=a+1|0;b=j>>>0>a>>>0;if((a|0)!=(j|0)){continue}break}break c}o=a&-4;m=a&3;p=a-1>>>0<3;b=1;e=0;while(1){if(!zg(c,G[c+84|0]?e:F[F[c+68>>2]+(e<<2)>>2],D[c+24|0],f)){break c}n=F[d>>2];l=0;a=0;b=0;if(!p){while(1){h=(i<<2)+n|0;k=a<<2;F[h>>2]=F[k+f>>2];F[h+4>>2]=F[(k|4)+f>>2];F[h+8>>2]=F[(k|8)+f>>2];F[h+12>>2]=F[(k|12)+f>>2];a=a+4|0;i=i+4|0;b=b+4|0;if((o|0)!=(b|0)){continue}break}}if(m){while(1){F[(i<<2)+n>>2]=F[(a<<2)+f>>2];a=a+1|0;i=i+1|0;l=l+1|0;if((l|0)!=(m|0)){continue}break}}e=e+1|0;b=j>>>0>e>>>0;if((e|0)!=(j|0)){continue}break}a=e>>>0>=j>>>0;break b}Ia();V()}a=!b;if(!f){break a}}oj(f)}fa=g+16|0;return a&1}function Nh(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0;g=fa-16|0;fa=g;j=F[b+80>>2];a=D[c+24|0];b=L(j,a);a:{b:{c:{d:{e=F[c+28>>2];if(!(!G[c+84|0]|(e|0)!=5&(e|0)!=6)){e=F[c+48>>2];c=F[F[c>>2]>>2];F[g+8>>2]=0;F[g>>2]=0;F[g+4>>2]=0;if(b){if((b|0)<0){break d}a=b<<2;f=rj(a);i=Ri(f,c+e|0,a)+a|0}a=F[d>>2];if(a){F[d+4>>2]=a;oj(a)}F[d+8>>2]=i;F[d+4>>2]=i;F[d>>2]=f;a=1;break a}F[g+8>>2]=0;F[g>>2]=0;F[g+4>>2]=0;if(a){if((a|0)<0){break d}e=a<<2;f=rj(e);F[g>>2]=f;h=e+f|0;F[g+8>>2]=h;Ti(f,0,e);F[g+4>>2]=h}h=F[d>>2];e=F[d+4>>2]-h>>2;e:{if(e>>>0>>0){La(d,b-e|0);break e}if(b>>>0>=e>>>0){break e}F[d+4>>2]=h+(b<<2)}if(!j){b=0;break c}if(!a){a=0;b=1;while(1){if(!yg(c,G[c+84|0]?a:F[F[c+68>>2]+(a<<2)>>2],D[c+24|0],f)){break c}a=a+1|0;b=j>>>0>a>>>0;if((a|0)!=(j|0)){continue}break}break c}o=a&-4;m=a&3;p=a-1>>>0<3;b=1;e=0;while(1){if(!yg(c,G[c+84|0]?e:F[F[c+68>>2]+(e<<2)>>2],D[c+24|0],f)){break c}n=F[d>>2];l=0;a=0;b=0;if(!p){while(1){h=(i<<2)+n|0;k=a<<2;F[h>>2]=F[k+f>>2];F[h+4>>2]=F[(k|4)+f>>2];F[h+8>>2]=F[(k|8)+f>>2];F[h+12>>2]=F[(k|12)+f>>2];a=a+4|0;i=i+4|0;b=b+4|0;if((o|0)!=(b|0)){continue}break}}if(m){while(1){F[(i<<2)+n>>2]=F[(a<<2)+f>>2];a=a+1|0;i=i+1|0;l=l+1|0;if((l|0)!=(m|0)){continue}break}}e=e+1|0;b=j>>>0>e>>>0;if((e|0)!=(j|0)){continue}break}a=e>>>0>=j>>>0;break b}Ia();V()}a=!b;if(!f){break a}}oj(f)}fa=g+16|0;return a&1}function Rh(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0;g=fa-16|0;fa=g;j=F[b+80>>2];a=D[c+24|0];b=L(j,a);a:{b:{c:{d:{e=F[c+28>>2];if(!(!G[c+84|0]|(e|0)!=3&(e|0)!=4)){e=F[c+48>>2];c=F[F[c>>2]>>2];F[g+8>>2]=0;F[g>>2]=0;F[g+4>>2]=0;if(b){if((b|0)<0){break d}a=b<<1;f=rj(a);i=Ri(f,c+e|0,a)+a|0}a=F[d>>2];if(a){F[d+4>>2]=a;oj(a)}F[d+8>>2]=i;F[d+4>>2]=i;F[d>>2]=f;a=1;break a}F[g+8>>2]=0;F[g>>2]=0;F[g+4>>2]=0;if(a){if((a|0)<0){break d}e=a<<1;f=rj(e);F[g>>2]=f;h=e+f|0;F[g+8>>2]=h;Ti(f,0,e);F[g+4>>2]=h}h=F[d>>2];e=F[d+4>>2]-h>>1;e:{if(e>>>0>>0){vg(d,b-e|0);break e}if(b>>>0>=e>>>0){break e}F[d+4>>2]=h+(b<<1)}if(!j){b=0;break c}if(!a){a=0;b=1;while(1){if(!xg(c,G[c+84|0]?a:F[F[c+68>>2]+(a<<2)>>2],D[c+24|0],f)){break c}a=a+1|0;b=j>>>0>a>>>0;if((a|0)!=(j|0)){continue}break}break c}o=a&-4;m=a&3;p=a-1>>>0<3;b=1;e=0;while(1){if(!xg(c,G[c+84|0]?e:F[F[c+68>>2]+(e<<2)>>2],D[c+24|0],f)){break c}n=F[d>>2];l=0;a=0;b=0;if(!p){while(1){h=(i<<1)+n|0;k=a<<1;E[h>>1]=H[k+f>>1];E[h+2>>1]=H[(k|2)+f>>1];E[h+4>>1]=H[(k|4)+f>>1];E[h+6>>1]=H[(k|6)+f>>1];a=a+4|0;i=i+4|0;b=b+4|0;if((o|0)!=(b|0)){continue}break}}if(m){while(1){E[(i<<1)+n>>1]=H[(a<<1)+f>>1];a=a+1|0;i=i+1|0;l=l+1|0;if((l|0)!=(m|0)){continue}break}}e=e+1|0;b=j>>>0>e>>>0;if((e|0)!=(j|0)){continue}break}a=e>>>0>=j>>>0;break b}Ia();V()}a=!b;if(!f){break a}}oj(f)}fa=g+16|0;return a&1}function Qh(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0;g=fa-16|0;fa=g;j=F[b+80>>2];a=D[c+24|0];b=L(j,a);a:{b:{c:{d:{e=F[c+28>>2];if(!(!G[c+84|0]|(e|0)!=3&(e|0)!=4)){e=F[c+48>>2];c=F[F[c>>2]>>2];F[g+8>>2]=0;F[g>>2]=0;F[g+4>>2]=0;if(b){if((b|0)<0){break d}a=b<<1;f=rj(a);i=Ri(f,c+e|0,a)+a|0}a=F[d>>2];if(a){F[d+4>>2]=a;oj(a)}F[d+8>>2]=i;F[d+4>>2]=i;F[d>>2]=f;a=1;break a}F[g+8>>2]=0;F[g>>2]=0;F[g+4>>2]=0;if(a){if((a|0)<0){break d}e=a<<1;f=rj(e);F[g>>2]=f;h=e+f|0;F[g+8>>2]=h;Ti(f,0,e);F[g+4>>2]=h}h=F[d>>2];e=F[d+4>>2]-h>>1;e:{if(e>>>0>>0){vg(d,b-e|0);break e}if(b>>>0>=e>>>0){break e}F[d+4>>2]=h+(b<<1)}if(!j){b=0;break c}if(!a){a=0;b=1;while(1){if(!wg(c,G[c+84|0]?a:F[F[c+68>>2]+(a<<2)>>2],D[c+24|0],f)){break c}a=a+1|0;b=j>>>0>a>>>0;if((a|0)!=(j|0)){continue}break}break c}o=a&-4;m=a&3;p=a-1>>>0<3;b=1;e=0;while(1){if(!wg(c,G[c+84|0]?e:F[F[c+68>>2]+(e<<2)>>2],D[c+24|0],f)){break c}n=F[d>>2];l=0;a=0;b=0;if(!p){while(1){h=(i<<1)+n|0;k=a<<1;E[h>>1]=H[k+f>>1];E[h+2>>1]=H[(k|2)+f>>1];E[h+4>>1]=H[(k|4)+f>>1];E[h+6>>1]=H[(k|6)+f>>1];a=a+4|0;i=i+4|0;b=b+4|0;if((o|0)!=(b|0)){continue}break}}if(m){while(1){E[(i<<1)+n>>1]=H[(a<<1)+f>>1];a=a+1|0;i=i+1|0;l=l+1|0;if((l|0)!=(m|0)){continue}break}}e=e+1|0;b=j>>>0>e>>>0;if((e|0)!=(j|0)){continue}break}a=e>>>0>=j>>>0;break b}Ia();V()}a=!b;if(!f){break a}}oj(f)}fa=g+16|0;return a&1}function jf(a,b){var c=0,d=0,e=0,f=0,g=0;d=-1;f=-1;a:{if((b|0)==-1){break a}c=b+1|0;d=(c>>>0)%3|0?c:b-2|0;f=b-1|0;if((b>>>0)%3|0){break a}f=b+2|0}b:{c:{d:{e:{f:{g:{e=F[a+184>>2];switch(e|0){case 7:break d;case 3:break e;case 5:break f;case 0:case 1:break g;default:break b}}g=F[a+148>>2];c=-1;e=1;d=((d|0)!=-1?F[F[g>>2]+(d<<2)>>2]:c)<<2;c=F[a+156>>2];d=d+c|0;F[d>>2]=F[d>>2]+1;c=(((f|0)!=-1?F[F[g>>2]+(f<<2)>>2]:-1)<<2)+c|0;break c}g=F[a+148>>2];c=F[a+156>>2];e=c+(((b|0)!=-1?F[F[g>>2]+(b<<2)>>2]:-1)<<2)|0;F[e>>2]=F[e>>2]+1;d=(((d|0)!=-1?F[F[g>>2]+(d<<2)>>2]:-1)<<2)+c|0;F[d>>2]=F[d>>2]+1;e=2;c=(((f|0)!=-1?F[F[g>>2]+(f<<2)>>2]:-1)<<2)+c|0;break c}g=F[a+148>>2];c=F[a+156>>2];e=c+(((b|0)!=-1?F[F[g>>2]+(b<<2)>>2]:-1)<<2)|0;F[e>>2]=F[e>>2]+1;d=(((d|0)!=-1?F[F[g>>2]+(d<<2)>>2]:-1)<<2)+c|0;F[d>>2]=F[d>>2]+2;e=1;c=(((f|0)!=-1?F[F[g>>2]+(f<<2)>>2]:-1)<<2)+c|0;break c}g=F[a+148>>2];c=F[a+156>>2];e=c+(((b|0)!=-1?F[F[g>>2]+(b<<2)>>2]:-1)<<2)|0;F[e>>2]=F[e>>2]+2;d=(((d|0)!=-1?F[F[g>>2]+(d<<2)>>2]:-1)<<2)+c|0;F[d>>2]=F[d>>2]+2;e=2;c=(((f|0)!=-1?F[F[g>>2]+(f<<2)>>2]:-1)<<2)+c|0}F[c>>2]=F[c>>2]+e;e=F[a+184>>2]}h:{switch(e|0){case 0:case 5:f=F[a+156>>2];c=-1;i:{if((b|0)==-1){break i}d=b+1|0;b=(d>>>0)%3|0?d:b-2|0;c=-1;if((b|0)==-1){break i}c=F[F[F[a+148>>2]>>2]+(b<<2)>>2]}if(F[f+(c<<2)>>2]<=5){F[a+188>>2]=5;return}F[a+188>>2]=0;return;default:break h}}F[a+188>>2]=-1} -function Pc(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0;i=fa-32|0;fa=i;F[i+28>>2]=0;a:{b:{if(H[b+38>>1]<=513){c=F[b+20>>2];d=F[b+16>>2];f=d+4|0;c=f>>>0<4?c+1|0:c;e=F[b+12>>2];if((e|0)<=(c|0)&f>>>0>I[b+8>>2]|(c|0)>(e|0)){break a}d=d+F[b>>2]|0;d=G[d|0]|G[d+1|0]<<8|(G[d+2|0]<<16|G[d+3|0]<<24);F[b+16>>2]=f;F[b+20>>2]=c;break b}if(!Gc(1,i+28|0,b)){break a}d=F[i+28>>2]}if(!d){break a}Hc(a+76|0,d);c=i+8|0;F[c>>2]=0;F[c+4>>2]=0;D[c+5|0]=0;D[c+6|0]=0;D[c+7|0]=0;D[c+8|0]=0;D[c+9|0]=0;D[c+10|0]=0;D[c+11|0]=0;D[c+12|0]=0;c:{if(!ge(c,b)){break c}e=1;while(1){g=1<>2]+(h>>>3&536870908)|0;e=e^j;if(e&1){g=F[f>>2]&(g^-1)}else{g=g|F[f>>2]}e=e^1;F[f>>2]=g;h=h+1|0;if((h|0)!=(d|0)){continue}break}d=F[b+12>>2];h=d;c=F[b+20>>2];f=c;e=F[b+16>>2];g=e+4|0;c=g>>>0<4?c+1|0:c;j=F[b+8>>2];if(j>>>0>>0&(c|0)>=(d|0)|(c|0)>(d|0)){break c}k=F[b>>2];d=k+e|0;d=G[d|0]|G[d+1|0]<<8|(G[d+2|0]<<16|G[d+3|0]<<24);F[b+16>>2]=g;F[b+20>>2]=c;c=f;f=e+8|0;c=f>>>0<8?c+1|0:c;e=f;f=c;if(e>>>0>j>>>0&(c|0)>=(h|0)|(c|0)>(h|0)){break c}c=g+k|0;c=G[c|0]|G[c+1|0]<<8|(G[c+2|0]<<16|G[c+3|0]<<24);F[b+16>>2]=e;F[b+20>>2]=f;if((c|0)<(d|0)){break c}F[a+16>>2]=c;F[a+12>>2]=d;b=(c>>31)-((d>>31)+(c>>>0>>0)|0)|0;c=c-d|0;if(!b&c>>>0>2147483646|b){break c}l=1;b=c+1|0;F[a+20>>2]=b;c=b>>>1|0;F[a+24>>2]=c;F[a+28>>2]=0-c;if(b&1){break c}F[a+24>>2]=c-1}}fa=i+32|0;return l|0}function ec(a){a=a|0;var b=0,c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0;e=fa-16|0;fa=e;h=ja[F[F[a>>2]+24>>2]](a)|0;a:{if((h|0)<=0){break a}l=a+48|0;i=1;while(1){b:{c:{if(!F[(ja[F[F[a>>2]+28>>2]](a)|0)+40>>2]){break c}j=f<<2;g=F[j+F[a+36>>2]>>2];b=F[g+8>>2];k=Vb(g);if(!k){break c}g=F[(ja[F[F[a>>2]+28>>2]](a)|0)+40>>2];F[e+12>>2]=F[b+56>>2];b=rj(32);F[e>>2]=b;F[e+4>>2]=24;F[e+8>>2]=-2147483616;D[b+24|0]=0;c=G[1206]|G[1207]<<8|(G[1208]<<16|G[1209]<<24);d=G[1202]|G[1203]<<8|(G[1204]<<16|G[1205]<<24);D[b+16|0]=d;D[b+17|0]=d>>>8;D[b+18|0]=d>>>16;D[b+19|0]=d>>>24;D[b+20|0]=c;D[b+21|0]=c>>>8;D[b+22|0]=c>>>16;D[b+23|0]=c>>>24;c=G[1198]|G[1199]<<8|(G[1200]<<16|G[1201]<<24);d=G[1194]|G[1195]<<8|(G[1196]<<16|G[1197]<<24);D[b+8|0]=d;D[b+9|0]=d>>>8;D[b+10|0]=d>>>16;D[b+11|0]=d>>>24;D[b+12|0]=c;D[b+13|0]=c>>>8;D[b+14|0]=c>>>16;D[b+15|0]=c>>>24;c=G[1190]|G[1191]<<8|(G[1192]<<16|G[1193]<<24);d=G[1186]|G[1187]<<8|(G[1188]<<16|G[1189]<<24);D[b|0]=d;D[b+1|0]=d>>>8;D[b+2|0]=d>>>16;D[b+3|0]=d>>>24;D[b+4|0]=c;D[b+5|0]=c>>>8;D[b+6|0]=c>>>16;D[b+7|0]=c>>>24;b=Lb(g,e+12|0,e);if(D[e+11|0]<0){oj(F[e>>2])}if(!b){break c}bb(F[F[F[a+36>>2]+j>>2]+8>>2],k);break b}b=F[F[a+36>>2]+(f<<2)>>2];if(!(ja[F[F[b>>2]+24>>2]](b,l)|0)){break a}}f=f+1|0;i=(h|0)>(f|0);if((f|0)!=(h|0)){continue}break}}fa=e+16|0;return(i^-1)&1}function Vc(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0;j=fa-16|0;fa=j;c=F[b+20>>2];d=F[b+16>>2];g=d+4|0;c=g>>>0<4?c+1|0:c;e=F[b+12>>2];a:{if((e|0)<=(c|0)&g>>>0>I[b+8>>2]|(c|0)>(e|0)){break a}d=d+F[b>>2]|0;d=G[d|0]|G[d+1|0]<<8|(G[d+2|0]<<16|G[d+3|0]<<24);F[b+16>>2]=g;F[b+20>>2]=c;if((d|0)<0){break a}Hc(a+76|0,d);c=j;F[c>>2]=0;F[c+4>>2]=0;D[c+5|0]=0;D[c+6|0]=0;D[c+7|0]=0;D[c+8|0]=0;D[c+9|0]=0;D[c+10|0]=0;D[c+11|0]=0;D[c+12|0]=0;b:{if(!ge(c,b)){break b}if(d){e=1;while(1){f=1<>2]+(h>>>3&536870908)|0;e=e^i;if(e&1){f=F[g>>2]&(f^-1)}else{f=f|F[g>>2]}e=e^1;F[g>>2]=f;h=h+1|0;if((d|0)!=(h|0)){continue}break}}h=0;d=F[b+12>>2];g=d;c=F[b+20>>2];e=c;f=F[b+16>>2];i=f+4|0;c=i>>>0<4?c+1|0:c;k=F[b+8>>2];if(k>>>0>>0&(c|0)>=(d|0)|(c|0)>(d|0)){break b}l=F[b>>2];d=l+f|0;d=G[d|0]|G[d+1|0]<<8|(G[d+2|0]<<16|G[d+3|0]<<24);F[b+16>>2]=i;F[b+20>>2]=c;c=e;e=f+8|0;c=e>>>0<8?c+1|0:c;f=e;e=c;if(f>>>0>k>>>0&(c|0)>=(g|0)|(c|0)>(g|0)){break b}c=i+l|0;c=G[c|0]|G[c+1|0]<<8|(G[c+2|0]<<16|G[c+3|0]<<24);F[b+16>>2]=f;F[b+20>>2]=e;if((c|0)<(d|0)){break b}F[a+16>>2]=c;F[a+12>>2]=d;b=(c>>31)-((d>>31)+(c>>>0>>0)|0)|0;c=c-d|0;if(!b&c>>>0>2147483646|b){break b}h=1;b=c+1|0;F[a+20>>2]=b;c=b>>>1|0;F[a+24>>2]=c;F[a+28>>2]=0-c;if(b&1){break b}F[a+24>>2]=c-1}}fa=j+16|0;return h|0}function lf(a,b){var c=0,d=0,e=0,f=0,g=0;f=-1;d=-1;a:{if((b|0)==-1){break a}d=b+1|0;f=(d>>>0)%3|0?d:b-2|0;d=b-1|0;if((b>>>0)%3|0){break a}d=b+2|0}b:{c:{d:{switch(F[a+168>>2]){case 0:case 1:e=F[a+148>>2];c=1;b=F[a+156>>2];g=b+(((f|0)!=-1?F[F[e>>2]+(f<<2)>>2]:-1)<<2)|0;F[g>>2]=F[g>>2]+1;b=(((d|0)!=-1?F[F[e>>2]+(d<<2)>>2]:-1)<<2)+b|0;break c;case 5:e=F[a+148>>2];c=-1;c=((b|0)!=-1?F[F[e>>2]+(b<<2)>>2]:c)<<2;b=F[a+156>>2];c=c+b|0;F[c>>2]=F[c>>2]+1;c=(((f|0)!=-1?F[F[e>>2]+(f<<2)>>2]:-1)<<2)+b|0;F[c>>2]=F[c>>2]+1;c=2;b=(((d|0)!=-1?F[F[e>>2]+(d<<2)>>2]:-1)<<2)+b|0;break c;case 3:e=F[a+148>>2];c=-1;c=((b|0)!=-1?F[F[e>>2]+(b<<2)>>2]:c)<<2;b=F[a+156>>2];c=c+b|0;F[c>>2]=F[c>>2]+1;c=(((f|0)!=-1?F[F[e>>2]+(f<<2)>>2]:-1)<<2)+b|0;F[c>>2]=F[c>>2]+2;c=1;b=(((d|0)!=-1?F[F[e>>2]+(d<<2)>>2]:-1)<<2)+b|0;break c;case 7:break d;default:break b}}e=F[a+148>>2];c=-1;c=((b|0)!=-1?F[F[e>>2]+(b<<2)>>2]:c)<<2;b=F[a+156>>2];c=c+b|0;F[c>>2]=F[c>>2]+2;c=(((f|0)!=-1?F[F[e>>2]+(f<<2)>>2]:-1)<<2)+b|0;F[c>>2]=F[c>>2]+2;c=2;b=(((d|0)!=-1?F[F[e>>2]+(d<<2)>>2]:-1)<<2)+b|0}F[b>>2]=F[b>>2]+c}c=a;b=F[F[a+156>>2]+(((f|0)!=-1?F[F[F[a+148>>2]>>2]+(f<<2)>>2]:-1)<<2)>>2];d=F[a+180>>2];a=F[a+176>>2];F[c+172>>2]=(a|0)>(b|0)?0:((b|0)<(d|0)?b:d)-a|0}function eg(a){a=a|0;var b=0,c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0;a:{c=F[a+32>>2];e=F[c+8>>2];f=F[c+12>>2];d=F[c+20>>2];g=e;e=F[c+16>>2];b=0;b:{if((f|0)<=(d|0)&g>>>0<=e>>>0|(d|0)>(f|0)){break b}g=G[e+F[c>>2]|0];f=e+1|0;d=f?d:d+1|0;F[c+16>>2]=f;F[c+20>>2]=d;c:{if(!g){break c}while(1){if(ja[F[F[a>>2]+16>>2]](a,b)|0){b=b+1|0;if((g|0)!=(b|0)){continue}break c}break}return 0}b=F[a+8>>2];d=F[a+12>>2];if((b|0)!=(d|0)){while(1){c=F[b>>2];if(!(ja[F[F[c>>2]+8>>2]](c,a,F[a+4>>2])|0)){break a}b=b+4|0;if((d|0)!=(b|0)){continue}break}}d:{if(!g){break d}b=0;while(1){c=F[F[a+8>>2]+(b<<2)>>2];if(!(ja[F[F[c>>2]+12>>2]](c,F[a+32>>2])|0)){break a}b=b+1|0;if((g|0)!=(b|0)){continue}break}if(!g){break d}e=a+20|0;while(1){b=0;f=h<<2;c=F[f+F[a+8>>2]>>2];d=ja[F[F[c>>2]+24>>2]](c)|0;if((d|0)>0){while(1){c=F[F[a+8>>2]+f>>2];k=ja[F[F[c>>2]+20>>2]](c,b)|0;i=F[a+20>>2];j=F[a+24>>2]-i>>2;e:{if(k>>>0>>0){break e}c=k+1|0;if(c>>>0>j>>>0){La(e,c-j|0);i=F[e>>2];break e}if(c>>>0>=j>>>0){break e}F[a+24>>2]=(c<<2)+i}F[(k<<2)+i>>2]=h;b=b+1|0;if((d|0)!=(b|0)){continue}break}}h=h+1|0;if((g|0)!=(h|0)){continue}break}}b=0;if(!(ja[F[F[a>>2]+28>>2]](a)|0)){break b}b=ja[F[F[a>>2]+32>>2]](a)|0}return b|0}return 0}function ge(a,b){var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0;i=fa-16|0;fa=i;e=F[b+20>>2];c=F[b+12>>2];f=F[b+16>>2];a:{if((e|0)>=(c|0)&f>>>0>=I[b+8>>2]|(c|0)<(e|0)){break a}D[a+12|0]=G[f+F[b>>2]|0];e=F[b+20>>2];c=e;f=F[b+16>>2];d=f+1|0;e=d?c:c+1|0;g=d;F[b+16>>2]=d;F[b+20>>2]=e;b:{if(H[b+38>>1]<=513){h=F[b+12>>2];e=c;c=f+5|0;e=c>>>0<5?e+1|0:e;d=F[b+8>>2];f=c;if(d>>>0>>0&(e|0)>=(h|0)|(e|0)>(h|0)){break a}c=g+F[b>>2]|0;c=G[c|0]|G[c+1|0]<<8|(G[c+2|0]<<16|G[c+3|0]<<24);F[b+16>>2]=f;F[b+20>>2]=e;break b}if(!he(1,i+12|0,b)){break a}f=F[b+16>>2];e=F[b+20>>2];d=F[b+8>>2];h=F[b+12>>2];c=F[i+12>>2]}g=d-f|0;d=h-(e+(d>>>0>>0)|0)|0;if((d|0)<=0&c>>>0>g>>>0|(d|0)<0|(c|0)<=0){break a}d=f+F[b>>2]|0;F[a>>2]=d;c:{d:{h=c-1|0;g=h+d|0;j=G[g|0];e:{if(j>>>0<=63){F[a+4>>2]=h;d=G[g|0]&63;break e}f:{switch((j>>>6|0)-1|0){case 1:break d;case 0:break f;default:break a}}if(c>>>0<2){break a}F[a+4>>2]=c-2;d=(c+d|0)-2|0;d=G[d+1|0]<<8&16128|G[d|0]}F[a+8>>2]=d+4096;break c}if(c>>>0<3){break a}F[a+4>>2]=c-3;g=a;a=(c+d|0)-3|0;a=G[a+1|0]<<8|G[a+2|0]<<16&4128768|G[a|0];F[g+8>>2]=a+4096;if(a>>>0>1044479){break a}}a=c+f|0;e=a>>>0>>0?e+1|0:e;F[b+16>>2]=a;F[b+20>>2]=e;k=1}fa=i+16|0;return k}function si(a,b,c){var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0;d=F[a+8>>2];e=F[a>>2];if(d-e>>2>>>0>=b>>>0){g=F[a+4>>2];h=g-e>>2;f=b>>>0>h>>>0?h:b;a:{if(!f){break a}k=f-1|0;i=f&7;b:{if(!i){d=e;break b}d=e;while(1){F[d>>2]=F[c>>2];f=f-1|0;d=d+4|0;j=j+1|0;if((j|0)!=(i|0)){continue}break}}if(k>>>0<7){break a}while(1){F[d>>2]=F[c>>2];F[d+4>>2]=F[c>>2];F[d+8>>2]=F[c>>2];F[d+12>>2]=F[c>>2];F[d+16>>2]=F[c>>2];F[d+20>>2]=F[c>>2];F[d+24>>2]=F[c>>2];F[d+28>>2]=F[c>>2];d=d+32|0;f=f-8|0;if(f){continue}break}}if(b>>>0>h>>>0){b=(b-h<<2)+g|0;while(1){F[g>>2]=F[c>>2];g=g+4|0;if((b|0)!=(g|0)){continue}break}F[a+4>>2]=b;return}F[a+4>>2]=e+(b<<2);return}if(e){F[a+4>>2]=e;oj(e);F[a+8>>2]=0;F[a>>2]=0;F[a+4>>2]=0;d=0}c:{if(b>>>0>=1073741824){break c}e=d>>1;d=d>>>0<2147483644?b>>>0>>0?e:b:1073741823;if(d>>>0>=1073741824){break c}d=d<<2;e=rj(d);F[a>>2]=e;F[a+8>>2]=d+e;c=F[c>>2];d=e;f=b&7;if(f){while(1){F[d>>2]=c;d=d+4|0;g=g+1|0;if((f|0)!=(g|0)){continue}break}}e=e+(b<<2)|0;if((b-1&1073741823)>>>0>=7){while(1){F[d+28>>2]=c;F[d+24>>2]=c;F[d+20>>2]=c;F[d+16>>2]=c;F[d+12>>2]=c;F[d+8>>2]=c;F[d+4>>2]=c;F[d>>2]=c;d=d+32|0;if((e|0)!=(d|0)){continue}break}}F[a+4>>2]=e;return}Ia();V()}function wi(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0;Li(a,b,c);c=F[a+84>>2];d=F[a+88>>2]-c>>2;a:{if((d|0)>(b|0)){break a}b=b+1|0;if(b>>>0>d>>>0){b:{d=b-d|0;e=F[a+92>>2];c=F[a+88>>2];if(d>>>0<=e-c>>2>>>0){c:{if(!d){break c}b=c;f=d&7;if(f){while(1){F[b>>2]=1;b=b+4|0;g=g+1|0;if((f|0)!=(g|0)){continue}break}}c=(d<<2)+c|0;if((d-1&1073741823)>>>0<7){break c}while(1){F[b+24>>2]=1;F[b+28>>2]=1;F[b+16>>2]=1;F[b+20>>2]=1;F[b+8>>2]=1;F[b+12>>2]=1;F[b>>2]=1;F[b+4>>2]=1;b=b+32|0;if((c|0)!=(b|0)){continue}break}}F[a+88>>2]=c;break b}d:{f=F[a+84>>2];j=c-f|0;c=j>>2;b=c+d|0;if(b>>>0<1073741824){e=e-f|0;h=e>>1;e=e>>>0<2147483644?b>>>0>>0?h:b:1073741823;if(e){if(e>>>0>=1073741824){break d}i=rj(e<<2)}c=(c<<2)+i|0;b=c;h=d&7;if(h){b=c;while(1){F[b>>2]=1;b=b+4|0;g=g+1|0;if((h|0)!=(g|0)){continue}break}}c=c+(d<<2)|0;if((d-1&1073741823)>>>0>=7){while(1){F[b+24>>2]=1;F[b+28>>2]=1;F[b+16>>2]=1;F[b+20>>2]=1;F[b+8>>2]=1;F[b+12>>2]=1;F[b>>2]=1;F[b+4>>2]=1;b=b+32|0;if((c|0)!=(b|0)){continue}break}}if((j|0)>0){Ri(i,f,j)}F[a+92>>2]=(e<<2)+i;F[a+88>>2]=c;F[a+84>>2]=i;if(f){oj(f)}break b}Ia();V()}Wa();V()}return}if(b>>>0>=d>>>0){break a}F[a+88>>2]=c+(b<<2)}}function qe(a,b){var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0;h=fa-16|0;fa=h;a:{b:{if(H[b+38>>1]<=511){g=F[b+12>>2];i=g;c=F[b+20>>2];d=F[b+16>>2];f=d+8|0;c=f>>>0<8?c+1|0:c;e=F[b+8>>2];if(e>>>0>>0&(c|0)>=(g|0)|(c|0)>(g|0)){break a}d=d+F[b>>2]|0;g=G[d|0]|G[d+1|0]<<8|(G[d+2|0]<<16|G[d+3|0]<<24);d=G[d+4|0]|G[d+5|0]<<8|(G[d+6|0]<<16|G[d+7|0]<<24);F[b+16>>2]=f;F[b+20>>2]=c;break b}if(!ue(1,h+8|0,b)){break a}f=F[b+16>>2];c=F[b+20>>2];e=F[b+8>>2];i=F[b+12>>2];g=F[h+8>>2];d=F[h+12>>2]}j=e-f|0;e=i-(c+(f>>>0>e>>>0)|0)|0;if((e|0)==(d|0)&g>>>0>j>>>0|d>>>0>e>>>0){break a}c=c+d|0;e=f+g|0;c=e>>>0>>0?c+1|0:c;F[b+16>>2]=e;F[b+20>>2]=c;c=g;if((c|0)<=0){break a}b=f+F[b>>2]|0;F[a+40>>2]=b;f=c-1|0;g=b+f|0;e=G[g|0];c:{if(e>>>0<=63){F[a+44>>2]=f;b=G[g|0]&63;break c}d:{switch((e>>>6|0)-1|0){case 0:if(c>>>0<2){break a}F[a+44>>2]=c-2;b=(b+c|0)-2|0;b=G[b+1|0]<<8&16128|G[b|0];break c;case 1:if(c>>>0<3){break a}F[a+44>>2]=c-3;b=(b+c|0)-3|0;b=G[b+1|0]<<8|G[b+2|0]<<16&4128768|G[b|0];break c;default:break d}}F[a+44>>2]=c-4;b=(b+c|0)-4|0;b=G[b+2|0]<<16|G[b+3|0]<<24&1056964608|G[b+1|0]<<8|G[b|0]}F[a+48>>2]=b+16384;k=b>>>0<4177920}fa=h+16|0;return k}function Ri(a,b,c){var d=0,e=0,f=0;if(c>>>0>=512){_(a|0,b|0,c|0);return a}e=a+c|0;a:{if(!((a^b)&3)){b:{if(!(a&3)){c=a;break b}if(!c){c=a;break b}c=a;while(1){D[c|0]=G[b|0];b=b+1|0;c=c+1|0;if(!(c&3)){break b}if(c>>>0>>0){continue}break}}d=e&-4;c:{if(d>>>0<64){break c}f=d+-64|0;if(f>>>0>>0){break c}while(1){F[c>>2]=F[b>>2];F[c+4>>2]=F[b+4>>2];F[c+8>>2]=F[b+8>>2];F[c+12>>2]=F[b+12>>2];F[c+16>>2]=F[b+16>>2];F[c+20>>2]=F[b+20>>2];F[c+24>>2]=F[b+24>>2];F[c+28>>2]=F[b+28>>2];F[c+32>>2]=F[b+32>>2];F[c+36>>2]=F[b+36>>2];F[c+40>>2]=F[b+40>>2];F[c+44>>2]=F[b+44>>2];F[c+48>>2]=F[b+48>>2];F[c+52>>2]=F[b+52>>2];F[c+56>>2]=F[b+56>>2];F[c+60>>2]=F[b+60>>2];b=b- -64|0;c=c- -64|0;if(f>>>0>=c>>>0){continue}break}}if(c>>>0>=d>>>0){break a}while(1){F[c>>2]=F[b>>2];b=b+4|0;c=c+4|0;if(d>>>0>c>>>0){continue}break}break a}if(e>>>0<4){c=a;break a}d=e-4|0;if(d>>>0>>0){c=a;break a}c=a;while(1){D[c|0]=G[b|0];D[c+1|0]=G[b+1|0];D[c+2|0]=G[b+2|0];D[c+3|0]=G[b+3|0];b=b+4|0;c=c+4|0;if(d>>>0>=c>>>0){continue}break}}if(c>>>0>>0){while(1){D[c|0]=G[b|0];b=b+1|0;c=c+1|0;if((e|0)!=(c|0)){continue}break}}return a}function gb(a,b,c){var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0;f=F[a+8>>2];e=F[a+4>>2];if(f-e>>2>>>0>=b>>>0){a:{if(!b){break a}d=e;g=b&7;if(g){while(1){F[d>>2]=F[c>>2];d=d+4|0;h=h+1|0;if((g|0)!=(h|0)){continue}break}}e=(b<<2)+e|0;if((b-1&1073741823)>>>0<7){break a}while(1){F[d>>2]=F[c>>2];F[d+4>>2]=F[c>>2];F[d+8>>2]=F[c>>2];F[d+12>>2]=F[c>>2];F[d+16>>2]=F[c>>2];F[d+20>>2]=F[c>>2];F[d+24>>2]=F[c>>2];F[d+28>>2]=F[c>>2];d=d+32|0;if((e|0)!=(d|0)){continue}break}}F[a+4>>2]=e;return}b:{g=F[a>>2];k=e-g|0;e=k>>2;d=e+b|0;if(d>>>0<1073741824){f=f-g|0;i=f>>1;f=f>>>0<2147483644?d>>>0>>0?i:d:1073741823;if(f){if(f>>>0>=1073741824){break b}j=rj(f<<2)}e=(e<<2)+j|0;d=e;i=b&7;if(i){d=e;while(1){F[d>>2]=F[c>>2];d=d+4|0;h=h+1|0;if((i|0)!=(h|0)){continue}break}}e=e+(b<<2)|0;if((b-1&1073741823)>>>0>=7){while(1){F[d>>2]=F[c>>2];F[d+4>>2]=F[c>>2];F[d+8>>2]=F[c>>2];F[d+12>>2]=F[c>>2];F[d+16>>2]=F[c>>2];F[d+20>>2]=F[c>>2];F[d+24>>2]=F[c>>2];F[d+28>>2]=F[c>>2];d=d+32|0;if((e|0)!=(d|0)){continue}break}}if((k|0)>0){Ri(j,g,k)}F[a+8>>2]=(f<<2)+j;F[a+4>>2]=e;F[a>>2]=j;if(g){oj(g)}return}Ia();V()}Wa();V()}function yb(a,b){var c=0,d=0,e=0,f=0,g=0;d=fa-16|0;fa=d;F[a+12>>2]=b;F[a+8>>2]=0;F[a>>2]=0;F[a+4>>2]=0;c=a+16|0;F[c>>2]=0;F[c+4>>2]=0;D[c+5|0]=0;D[c+6|0]=0;D[c+7|0]=0;D[c+8|0]=0;D[c+9|0]=0;D[c+10|0]=0;D[c+11|0]=0;D[c+12|0]=0;F[a+32>>2]=0;F[a+36>>2]=0;F[a+48>>2]=0;F[a+40>>2]=0;F[a+44>>2]=0;F[a+52>>2]=0;F[a+56>>2]=0;F[a+68>>2]=0;F[a+60>>2]=0;F[a+64>>2]=0;F[a+72>>2]=0;F[a+76>>2]=0;F[a+88>>2]=0;F[a+80>>2]=0;F[a+84>>2]=0;F[a+100>>2]=0;F[a+92>>2]=0;F[a+96>>2]=0;g=a+116|0;a:{b:{if(b){if(b>>>0<1073741824){break b}Ia();V()}F[a+104>>2]=0;F[a+108>>2]=0;F[a+112>>2]=0;F[d+8>>2]=0;F[d>>2]=0;F[d+4>>2]=0;c=1;break a}c=b<<2;e=rj(c);F[a+92>>2]=e;f=c+e|0;F[a+100>>2]=f;Ti(e,0,c);F[a+112>>2]=0;F[a+104>>2]=0;F[a+108>>2]=0;F[a+96>>2]=f;e=rj(c);F[a+104>>2]=e;f=c+e|0;F[a+112>>2]=f;Ti(e,0,c);F[a+108>>2]=f;e=rj(c);F[d>>2]=e;f=c+e|0;F[d+8>>2]=f;Ti(e,0,c);F[d+4>>2]=f;c=b<<5|1}Fb(g,c,d);e=F[d>>2];if(e){F[d+4>>2]=e;oj(e)}F[d+8>>2]=0;F[d>>2]=0;F[d+4>>2]=0;if(b){b=b<<2;e=rj(b);F[d>>2]=e;f=b+e|0;F[d+8>>2]=f;Ti(e,0,b);F[d+4>>2]=f}Fb(a+128|0,c,d);b=F[d>>2];if(b){F[d+4>>2]=b;oj(b)}fa=d+16|0;return a}function rf(a){a=a|0;var b=0,c=0,d=0,e=0,f=0;F[a>>2]=11484;d=a+232|0;b=F[d+196>>2];if(b){F[d+200>>2]=b;oj(b)}c=F[d+184>>2];if(c){b=c;e=F[d+188>>2];if((b|0)!=(e|0)){while(1){b=e-12|0;f=F[b>>2];if(f){F[e-8>>2]=f;oj(f)}e=b;if((b|0)!=(c|0)){continue}break}b=F[d+184>>2]}F[d+188>>2]=c;oj(b)}b=F[d+156>>2];if(b){F[d+160>>2]=b;oj(b)}c=F[d+136>>2];F[d+136>>2]=0;if(c){e=c-4|0;b=F[e>>2];if(b){b=c+(b<<4)|0;while(1){b=b-16|0;if((c|0)!=(b|0)){continue}break}}oj(e)}nf(a+216|0);b=F[a+196>>2];if(b){F[a+200>>2]=b;oj(b)}b=F[a+184>>2];if(b){F[a+188>>2]=b;oj(b)}b=F[a+172>>2];if(b){F[a+176>>2]=b;oj(b)}b=F[a+160>>2];if(b){F[a+164>>2]=b;oj(b)}b=F[a+144>>2];if(b){while(1){c=F[b>>2];oj(b);b=c;if(b){continue}break}}b=F[a+136>>2];F[a+136>>2]=0;if(b){oj(b)}b=F[a+120>>2];if(b){oj(b)}b=F[a+108>>2];if(b){oj(b)}b=F[a+96>>2];if(b){oj(b)}b=F[a+72>>2];if(b){F[a+76>>2]=b;oj(b)}b=F[a+60>>2];if(b){oj(b)}b=F[a+48>>2];if(b){F[a+52>>2]=b;oj(b)}b=F[a+36>>2];if(b){F[a+40>>2]=b;oj(b)}b=F[a+24>>2];if(b){F[a+28>>2]=b;oj(b)}b=F[a+12>>2];if(b){F[a+16>>2]=b;oj(b)}b=F[a+8>>2];F[a+8>>2]=0;if(b){Re(b)}return a|0}function rb(a,b){var c=0,d=0,e=0,f=0,g=0,h=0,i=0;F[a+16>>2]=0;F[a+20>>2]=0;F[a+8>>2]=0;F[a>>2]=0;F[a+4>>2]=0;F[a+24>>2]=0;c=F[b+4>>2];g=F[b>>2];e=c-g|0;f=(e|0)/20|0;a:{if((c|0)==(g|0)){break a}b:{if(f>>>0<214748365){c=rj(e);F[a+16>>2]=c;F[a+20>>2]=c;F[a+24>>2]=c+L(f,20);f=F[b>>2];b=F[b+4>>2]-f|0;if((b|0)<=0){break a}f=Ri(c,f,b);g=0;F[a+28>>2]=0;F[a+20>>2]=f+L((b>>>0)/20|0,20);b=(b|0)/20|0;e=b>>>0>1?b:1;h=e&3;b=0;c=0;if(e-1>>>0>=3){i=e&-4;e=0;while(1){d=f+L(b,20)|0;d=L(F[d+16>>2],F[d+12>>2]);c=c>>>0>d>>>0?c:d;d=f+L(b|1,20)|0;d=L(F[d+16>>2],F[d+12>>2]);c=c>>>0>d>>>0?c:d;d=f+L(b|2,20)|0;d=L(F[d+16>>2],F[d+12>>2]);c=c>>>0>d>>>0?c:d;d=f+L(b|3,20)|0;d=L(F[d+16>>2],F[d+12>>2]);c=c>>>0>d>>>0?c:d;b=b+4|0;e=e+4|0;if((i|0)!=(e|0)){continue}break}}if(h){while(1){e=f+L(b,20)|0;e=L(F[e+16>>2],F[e+12>>2]);c=c>>>0>e>>>0?c:e;b=b+1|0;g=g+1|0;if((h|0)!=(g|0)){continue}break}}if(!c){F[a+12>>2]=0;return a}if((c|0)<0){break b}b=Ti(rj(c),0,c);c=b+c|0;F[a+8>>2]=c;F[a+4>>2]=c;F[a>>2]=b;F[a+12>>2]=b;return a}Ia();V()}Ia();V()}F[a+28>>2]=0;F[a+12>>2]=0;return a}function $j(a,b,c,d){var e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0;g=c;a:{b:{c:{d:{e:{f:{g:{h:{i:{j:{k:{if(b){if(!g){break k}if(!d){break j}c=O(d)-O(b)|0;if(c>>>0<=31){break i}break c}if((d|0)==1|d>>>0>1){break c}a=(a>>>0)/(g>>>0)|0;ia=0;break a}if(!a){break h}if(!d){break g}if(d-1&d){break g}a=b>>>ck(d)|0;ia=0;break a}if(!(g-1&g)){break f}h=(O(g)+33|0)-O(b)|0;e=0-h|0;break d}h=c+1|0;e=63-c|0;break d}a=(b>>>0)/(d>>>0)|0;ia=0;break a}c=O(d)-O(b)|0;if(c>>>0<31){break e}break c}if((g|0)==1){break b}c=ck(g);d=c&31;if((c&63)>>>0>=32){c=0;a=b>>>d|0}else{c=b>>>d|0;a=((1<>>d}ia=c;break a}h=c+1|0;e=63-c|0}c=h&63;f=c&31;if(c>>>0>=32){c=0;i=b>>>f|0}else{c=b>>>f|0;i=((1<>>f}f=c;c=e&63;e=c&31;if(c>>>0>=32){c=a<>>32-e|b<>>31;f=f<<1|i>>>31;j=m-(f+(c>>>0>e>>>0)|0)>>31;k=g&j;i=c-k|0;f=f-((d&j)+(c>>>0>>0)|0)|0;b=b<<1|a>>>31;a=l|a<<1;l=j&1;h=h-1|0;if(h){continue}break}}ia=b<<1|a>>>31;a=l|a<<1;break a}a=0;b=0}ia=b}return a}function ub(a,b){var c=0,d=0,e=0,f=0,g=0;c=fa-16|0;fa=c;F[a+12>>2]=b;F[a+8>>2]=0;F[a>>2]=0;F[a+4>>2]=0;F[a+16>>2]=0;F[a+20>>2]=0;F[a+32>>2]=0;F[a+24>>2]=0;F[a+28>>2]=0;F[a+36>>2]=0;F[a+40>>2]=0;F[a+52>>2]=0;F[a+44>>2]=0;F[a+48>>2]=0;F[a+56>>2]=0;F[a+60>>2]=0;F[a+72>>2]=0;F[a+64>>2]=0;F[a+68>>2]=0;F[a+76>>2]=0;F[a+80>>2]=0;F[a+92>>2]=0;F[a+84>>2]=0;F[a+88>>2]=0;F[a+104>>2]=0;F[a+96>>2]=0;F[a+100>>2]=0;g=a+120|0;a:{b:{if(b){if(b>>>0<1073741824){break b}Ia();V()}F[a+108>>2]=0;F[a+112>>2]=0;F[a+116>>2]=0;F[c+8>>2]=0;F[c>>2]=0;F[c+4>>2]=0;e=1;break a}e=b<<2;d=rj(e);F[a+96>>2]=d;f=d+e|0;F[a+104>>2]=f;Ti(d,0,e);F[a+116>>2]=0;F[a+108>>2]=0;F[a+112>>2]=0;F[a+100>>2]=f;d=rj(e);F[a+108>>2]=d;f=d+e|0;F[a+116>>2]=f;Ti(d,0,e);F[a+112>>2]=f;d=rj(e);F[c>>2]=d;f=d+e|0;F[c+8>>2]=f;Ti(d,0,e);F[c+4>>2]=f;e=b<<5|1}Fb(g,e,c);d=F[c>>2];if(d){F[c+4>>2]=d;oj(d)}F[c+8>>2]=0;F[c>>2]=0;F[c+4>>2]=0;if(b){b=b<<2;d=rj(b);F[c>>2]=d;f=b+d|0;F[c+8>>2]=f;Ti(d,0,b);F[c+4>>2]=f}Fb(a+132|0,e,c);b=F[c>>2];if(b){F[c+4>>2]=b;oj(b)}fa=c+16|0;return a}function Id(a,b,c,d){var e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0;k=F[b+16>>2];i=F[c+4>>2]-k|0;e=i;f=F[c>>2]-k|0;F[c>>2]=f;F[c+4>>2]=e;g=F[b+16>>2];e=e>>31;h=(e^i)-e|0;e=f>>31;l=(g|0)>=(h+((e^f)-e|0)|0);a:{if(l){e=i;break a}b:{c:{if((f|0)>=0){e=1;h=1;if((i|0)>=0){break b}j=1;e=-1;h=-1;if(f){break c}break b}j=-1;e=-1;h=-1;if((i|0)<=0){break b}}e=(i|0)<=0?-1:1;h=j}j=L(g,h);f=(f<<1)-j|0;h=(L(e,h)|0)>=0;g=L(e,g);e=((h?0-f|0:f)+g|0)/2|0;F[c+4>>2]=e;m=c;c=(i<<1)-g|0;f=(j+(h?0-c|0:c)|0)/2|0;F[m>>2]=f;g=F[b+16>>2]}c=F[d+4>>2]+e|0;f=F[d>>2]+f|0;d:{if((g|0)<(f|0)){f=f-F[b+4>>2]|0;break d}if((0-g|0)<=(f|0)){break d}f=F[b+4>>2]+f|0}e:{if((c|0)>(g|0)){c=c-F[b+4>>2]|0;break e}if((0-g|0)<=(c|0)){break e}c=F[b+4>>2]+c|0}f:{if(l){g=c;break f}g:{h:{if((f|0)>=0){b=1;e=1;if((c|0)>=0){break g}d=1;b=-1;e=-1;if(f){break h}break g}d=-1;b=-1;e=-1;if((c|0)<=0){break g}}b=(c|0)<=0?-1:1;e=d}i=L(e,g);d=(f<<1)-i|0;F[a>>2]=d;j=0-d|0;h=d;d=(L(b,e)|0)>=0;b=L(b,g);g=((d?j:h)+b|0)/2|0;b=(c<<1)-b|0;f=(i+(d?0-b|0:b)|0)/2|0}F[a>>2]=f+k;F[a+4>>2]=g+k}function me(a,b){var c=0,d=0,e=0;c=(a|0)==(b|0);D[b+12|0]=c;a:{if(c){break a}while(1){d=F[b+8>>2];if(G[d+12|0]){break a}b:{c=F[d+8>>2];e=F[c>>2];if((e|0)==(d|0)){e=F[c+4>>2];if(!(!e|G[e+12|0])){break b}c:{if(F[d>>2]==(b|0)){b=d;break c}b=F[d+4>>2];a=F[b>>2];F[d+4>>2]=a;if(a){F[a+8>>2]=d;c=F[d+8>>2]}F[b+8>>2]=c;a=F[d+8>>2];F[((F[a>>2]!=(d|0))<<2)+a>>2]=b;F[b>>2]=d;F[d+8>>2]=b;c=F[b+8>>2];d=F[c>>2]}D[b+12|0]=1;D[c+12|0]=0;a=F[d+4>>2];F[c>>2]=a;if(a){F[a+8>>2]=c}F[d+8>>2]=F[c+8>>2];a=F[c+8>>2];F[((F[a>>2]!=(c|0))<<2)+a>>2]=d;F[d+4>>2]=c;F[c+8>>2]=d;return}if(!(G[e+12|0]|!e)){break b}d:{if(F[d>>2]!=(b|0)){b=d;break d}a=F[b+4>>2];F[d>>2]=a;if(a){F[a+8>>2]=d;c=F[d+8>>2]}F[b+8>>2]=c;a=F[d+8>>2];F[((F[a>>2]!=(d|0))<<2)+a>>2]=b;F[b+4>>2]=d;F[d+8>>2]=b;c=F[b+8>>2]}D[b+12|0]=1;D[c+12|0]=0;a=F[c+4>>2];b=F[a>>2];F[c+4>>2]=b;if(b){F[b+8>>2]=c}F[a+8>>2]=F[c+8>>2];b=F[c+8>>2];F[((F[b>>2]!=(c|0))<<2)+b>>2]=a;F[a>>2]=c;F[c+8>>2]=a;break a}D[d+12|0]=1;D[c+12|0]=(a|0)==(c|0);D[e+12|0]=1;b=c;if((c|0)!=(a|0)){continue}break}}}function lg(a,b,c,d){var e=0,f=0,g=0,h=0,i=0,j=0;a:{b:{c:{if(!b){if((d|0)<0){break a}e=F[a+4>>2];b=F[a>>2];d=e-b|0;if(c>>>0>d>>>0){g=c-d|0;f=F[a+8>>2];if(g>>>0<=f-e>>>0){i=a,j=Ti(e,0,g)+g|0,F[i+4>>2]=j;break c}if((c|0)<0){break b}e=f-b|0;f=e<<1;f=e>>>0<1073741823?c>>>0>>0?f:c:2147483647;e=rj(f);Ti(e+d|0,0,g);if((d|0)>0){Ri(e,b,d)}F[a+8>>2]=e+f;F[a+4>>2]=c+e;F[a>>2]=e;if(!b){break c}oj(b);break c}if(c>>>0>=d>>>0){break c}F[a+4>>2]=b+c;break c}if((d|0)<0){break a}h=F[a+4>>2];g=F[a>>2];e=h-g|0;d:{if((d|0)<=0&c>>>0<=e>>>0|(d|0)<0){break d}if(c>>>0>e>>>0){f=c-e|0;d=F[a+8>>2];if(f>>>0<=d-h>>>0){i=a,j=Ti(h,0,f)+f|0,F[i+4>>2]=j;break d}if((c|0)<0){break b}d=d-g|0;h=d<<1;h=d>>>0<1073741823?c>>>0>>0?h:c:2147483647;d=rj(h);Ti(d+e|0,0,f);if((e|0)>0){Ri(d,g,e)}F[a+8>>2]=d+h;F[a+4>>2]=c+d;F[a>>2]=d;if(!g){break d}oj(g);break d}if(c>>>0>=e>>>0){break d}F[a+4>>2]=c+g}if(!c){break c}Si(F[a>>2],b,c)}b=F[a+28>>2];c=F[a+24>>2]+1|0;b=c?b:b+1|0;F[a+24>>2]=c;F[a+28>>2]=b;e=1;break a}Ia();V()}return e}function Oa(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0,g=0,h=0,i=M(0),j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0;k=fa-16|0;fa=k;if(F[c+28>>2]==9){d=F[a+4>>2];g=D[c+24|0];e=g<<2;f=rj((g&1073741823)!=(g|0)?-1:e);l=k+8|0;F[l>>2]=1065353216;i=J[a+20>>2];d=-1<0){J[l>>2]=i/M(d|0)}o=(d|0)>0;a:{if(!o){break a}j=F[c+80>>2];if(!j){break a}d=0;if((g|0)<=0){if((j|0)!=1){a=j&-2;b=0;while(1){Ri(F[F[c+64>>2]>>2]+d|0,f,e);d=d+e|0;Ri(d+F[F[c+64>>2]>>2]|0,f,e);d=d+e|0;b=b+2|0;if((a|0)!=(b|0)){continue}break}}if(!(j&1)){break a}Ri(F[F[c+64>>2]>>2]+d|0,f,e);break a}p=F[F[b>>2]>>2]+F[b+48>>2]|0;t=g&-2;u=g&1;while(1){m=F[a+8>>2];i=J[l>>2];b=0;n=0;if((g|0)!=1){while(1){h=b<<2;q=(d<<2)+p|0;J[h+f>>2]=M(i*M(F[q>>2]))+J[h+m>>2];h=h|4;J[h+f>>2]=M(i*M(F[q+4>>2]))+J[h+m>>2];b=b+2|0;d=d+2|0;n=n+2|0;if((t|0)!=(n|0)){continue}break}}if(u){b=b<<2;J[b+f>>2]=M(i*M(F[(d<<2)+p>>2]))+J[b+m>>2];d=d+1|0}Ri(F[F[c+64>>2]>>2]+r|0,f,e);r=e+r|0;s=s+1|0;if((s|0)!=(j|0)){continue}break}}oj(f)}fa=k+16|0;return o|0}function Ka(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0;c=F[b+88>>2];if(!(!c|F[c>>2]!=1)){d=F[c+8>>2];F[a+4>>2]=G[d|0]|G[d+1|0]<<8|(G[d+2|0]<<16|G[d+3|0]<<24);e=a+8|0;d=D[b+24|0];f=F[a+8>>2];g=F[a+12>>2]-f>>2;a:{if(d>>>0>g>>>0){La(e,d-g|0);d=D[b+24|0];break a}if(d>>>0>=g>>>0){break a}F[a+12>>2]=f+(d<<2)}k=1;g=F[c+8>>2];b:{if((d|0)<=0){b=4;break b}h=d&3;e=F[e>>2];c:{if(d-1>>>0<3){b=4;d=0;break c}l=d&-4;d=0;b=4;while(1){f=d<<2;c=b+g|0;F[f+e>>2]=G[c|0]|G[c+1|0]<<8|(G[c+2|0]<<16|G[c+3|0]<<24);F[e+(f|4)>>2]=G[c+4|0]|G[c+5|0]<<8|(G[c+6|0]<<16|G[c+7|0]<<24);F[e+(f|8)>>2]=G[c+8|0]|G[c+9|0]<<8|(G[c+10|0]<<16|G[c+11|0]<<24);F[e+(f|12)>>2]=G[c+12|0]|G[c+13|0]<<8|(G[c+14|0]<<16|G[c+15|0]<<24);d=d+4|0;b=b+16|0;i=i+4|0;if((l|0)!=(i|0)){continue}break}}if(!h){break b}while(1){c=b+g|0;F[e+(d<<2)>>2]=G[c|0]|G[c+1|0]<<8|(G[c+2|0]<<16|G[c+3|0]<<24);d=d+1|0;b=b+4|0;j=j+1|0;if((j|0)!=(h|0)){continue}break}}c=a;a=b+g|0;F[c+20>>2]=G[a|0]|G[a+1|0]<<8|(G[a+2|0]<<16|G[a+3|0]<<24)}return k|0}function $b(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0;if(eb(a,b)){i=a+36|0;g=ja[F[F[a>>2]+24>>2]](a)|0;d=F[a+40>>2];e=F[a+36>>2];c=d-e>>2;a:{if(g>>>0>c>>>0){ac(i,g-c|0);break a}if(c>>>0<=g>>>0){break a}e=e+(g<<2)|0;if((e|0)!=(d|0)){while(1){d=d-4|0;c=F[d>>2];F[d>>2]=0;if(c){ja[F[F[c>>2]+4>>2]](c)}if((d|0)!=(e|0)){continue}break}}F[a+40>>2]=e}b:{if((g|0)<=0){e=0;break b}e=1;c=F[b+20>>2];d=F[b+12>>2];f=F[b+16>>2];if((c|0)>=(d|0)&f>>>0>=I[b+8>>2]|(c|0)>(d|0)){break b}d=0;while(1){h=G[f+F[b>>2]|0];f=f+1|0;c=f?c:c+1|0;F[b+16>>2]=f;F[b+20>>2]=c;f=ja[F[F[a>>2]+48>>2]](a,h)|0;h=d<<2;j=h+F[a+36>>2]|0;c=F[j>>2];F[j>>2]=f;if(c){ja[F[F[c>>2]+4>>2]](c)}c=F[F[i>>2]+h>>2];if(!c){break b}if(!(l=c,m=ja[F[F[a>>2]+28>>2]](a)|0,n=ja[F[F[a>>2]+20>>2]](a,d)|0,k=F[F[c>>2]+8>>2],ja[k](l|0,m|0,n|0)|0)){break b}d=d+1|0;e=(g|0)>(d|0);if((d|0)==(g|0)){break b}f=F[b+16>>2];c=F[b+20>>2];h=F[b+12>>2];if(f>>>0>2]&(c|0)<=(h|0)|(c|0)<(h|0)){continue}break}}a=!e}else{a=0}return a|0}function Qf(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0;k=F[a+12>>2];c=F[a+68>>2];d=F[c+80>>2];D[b+84|0]=0;m=b+68|0;i=F[b+68>>2];e=F[b+72>>2]-i>>2;a:{if(e>>>0>>0){gb(m,d-e|0,12372);c=F[a+68>>2];d=F[c+80>>2];break a}if(d>>>0>=e>>>0){break a}F[b+72>>2]=i+(d<<2)}b=F[c+100>>2];e=F[c+96>>2];i=(b-e|0)/12|0;b:{if((b|0)==(e|0)){break b}n=1;k=F[k+28>>2];f=F[k>>2];if((f|0)==-1){break b}o=i>>>0>1?i:1;c=e;b=0;while(1){g=F[c>>2];if(g>>>0>=d>>>0){break b}j=F[F[a+72>>2]+12>>2];h=F[j+(f<<2)>>2];if(h>>>0>=d>>>0){break b}f=F[m>>2];F[f+(g<<2)>>2]=h;g=k+(l<<2)|0;h=F[g+4>>2];if((h|0)==-1){break b}l=F[c+4>>2];if(l>>>0>=d>>>0){break b}h=F[(h<<2)+j>>2];if(h>>>0>=d>>>0){break b}F[f+(l<<2)>>2]=h;g=F[g+8>>2];if((g|0)==-1){break b}c=F[c+8>>2];if(c>>>0>=d>>>0){break b}j=F[(g<<2)+j>>2];if(j>>>0>=d>>>0){break b}F[f+(c<<2)>>2]=j;b=b+1|0;n=i>>>0>b>>>0;if((b|0)==(o|0)){break b}c=e+L(b,12)|0;l=L(b,3);f=F[k+(l<<2)>>2];if((f|0)!=-1){continue}break}}return(n^-1)&1}function xa(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0;h=F[d+80>>2];e=fa-48|0;fa=e;a=F[a+4>>2];k=a-31|0;a:{if(k>>>0<4294967267){break a}i=F[F[d>>2]>>2]+F[d+48>>2]|0;F[e+16>>2]=a;a=-1<>2]=a^-1;a=-2-a|0;F[e+24>>2]=a;F[e+32>>2]=(a|0)/2;J[e+28>>2]=M(2)/M(a|0);f=F[c>>2];if((f|0)!=F[c+4>>2]){a=0;d=0;while(1){g=F[(d<<2)+f>>2];h=e+36|0;j=F[F[b>>2]>>2];m=F[b+48>>2];f=F[b+44>>2];l=F[b+40>>2];if(!G[b+84|0]){g=F[F[b+68>>2]+(g<<2)>>2]}g=Zj(l,f,g,0)+m|0;Ri(h,g+j|0,l);ya(e+16|0,h,e+12|0,e+8|0);f=a<<2;F[f+i>>2]=F[e+12>>2];F[(f|4)+i>>2]=F[e+8>>2];a=a+2|0;d=d+1|0;f=F[c>>2];if(d>>>0>2]-f>>2>>>0){continue}break}break a}if(!h){break a}d=0;a=0;while(1){j=e+36|0;c=F[F[b>>2]>>2];g=F[b+40>>2];f=F[b+48>>2]+Zj(g,F[b+44>>2],G[b+84|0]?a:F[F[b+68>>2]+(a<<2)>>2],0)|0;Ri(j,c+f|0,g);ya(e+16|0,j,e+12|0,e+8|0);c=d<<2;F[c+i>>2]=F[e+12>>2];F[(c|4)+i>>2]=F[e+8>>2];d=d+2|0;a=a+1|0;if((h|0)!=(a|0)){continue}break}}fa=e+48|0;return k>>>0>4294967266|0}function Af(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0;j=F[a+12>>2];c=F[a+108>>2];d=F[c+80>>2];D[b+84|0]=0;m=b+68|0;h=F[b+68>>2];f=F[b+72>>2]-h>>2;a:{if(f>>>0>>0){gb(m,d-f|0,12372);c=F[a+108>>2];d=F[c+80>>2];break a}if(d>>>0>=f>>>0){break a}F[b+72>>2]=h+(d<<2)}b=F[c+100>>2];f=F[c+96>>2];h=(b-f|0)/12|0;b:{if((b|0)==(f|0)){j=0;break b}n=h>>>0>1?h:1;o=F[j>>2];c=f;b=0;j=1;while(1){e=(e<<2)+o|0;i=F[e>>2];if((i|0)==-1){break b}g=F[c>>2];if(g>>>0>=d>>>0){break b}l=F[F[a+112>>2]+12>>2];k=F[l+(i<<2)>>2];if(k>>>0>=d>>>0){break b}i=F[m>>2];F[i+(g<<2)>>2]=k;g=F[e+4>>2];if((g|0)==-1){break b}k=F[c+4>>2];if(k>>>0>=d>>>0){break b}g=F[(g<<2)+l>>2];if(g>>>0>=d>>>0){break b}F[i+(k<<2)>>2]=g;e=F[e+8>>2];if((e|0)==-1){break b}c=F[c+8>>2];if(c>>>0>=d>>>0){break b}e=F[(e<<2)+l>>2];if(e>>>0>=d>>>0){break b}F[i+(c<<2)>>2]=e;b=b+1|0;j=h>>>0>b>>>0;if((b|0)==(n|0)){break b}e=L(b,3);c=f+L(b,12)|0;if((b|0)!=1431655765){continue}break}}return(j^-1)&1}function Kf(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0;j=F[a+12>>2];c=F[a+68>>2];d=F[c+80>>2];D[b+84|0]=0;m=b+68|0;h=F[b+68>>2];f=F[b+72>>2]-h>>2;a:{if(f>>>0>>0){gb(m,d-f|0,12372);c=F[a+68>>2];d=F[c+80>>2];break a}if(d>>>0>=f>>>0){break a}F[b+72>>2]=h+(d<<2)}b=F[c+100>>2];f=F[c+96>>2];h=(b-f|0)/12|0;b:{if((b|0)==(f|0)){j=0;break b}n=h>>>0>1?h:1;o=F[j>>2];c=f;b=0;j=1;while(1){e=(e<<2)+o|0;i=F[e>>2];if((i|0)==-1){break b}g=F[c>>2];if(g>>>0>=d>>>0){break b}l=F[F[a+72>>2]+12>>2];k=F[l+(i<<2)>>2];if(k>>>0>=d>>>0){break b}i=F[m>>2];F[i+(g<<2)>>2]=k;g=F[e+4>>2];if((g|0)==-1){break b}k=F[c+4>>2];if(k>>>0>=d>>>0){break b}g=F[(g<<2)+l>>2];if(g>>>0>=d>>>0){break b}F[i+(k<<2)>>2]=g;e=F[e+8>>2];if((e|0)==-1){break b}c=F[c+8>>2];if(c>>>0>=d>>>0){break b}e=F[(e<<2)+l>>2];if(e>>>0>=d>>>0){break b}F[i+(c<<2)>>2]=e;b=b+1|0;j=h>>>0>b>>>0;if((b|0)==(n|0)){break b}e=L(b,3);c=f+L(b,12)|0;if((b|0)!=1431655765){continue}break}}return(j^-1)&1}function Df(a,b,c){var d=0,e=0,f=0,g=0,h=0,i=0,j=0;d=(c>>>0)/3|0;i=F[(F[F[a+8>>2]+96>>2]+L(d,12)|0)+(c-L(d,3)<<2)>>2];e=F[F[a+12>>2]+4>>2];d=F[e+4>>2];a:{if((d|0)!=F[e+8>>2]){F[d>>2]=i;F[e+4>>2]=d+4;break a}b:{h=F[e>>2];g=d-h|0;j=g>>2;d=j+1|0;if(d>>>0<1073741824){f=g>>1;f=g>>>0<2147483644?d>>>0>>0?f:d:1073741823;if(f){if(f>>>0>=1073741824){break b}d=rj(f<<2)}else{d=0}j=d+(j<<2)|0;F[j>>2]=i;if((g|0)>0){Ri(d,h,g)}F[e+8>>2]=d+(f<<2);F[e+4>>2]=j+4;F[e>>2]=d;if(h){oj(h)}break a}Ia();V()}Wa();V()}e=F[a+4>>2];d=F[e+4>>2];c:{d:{e:{if((d|0)!=F[e+8>>2]){F[d>>2]=c;F[e+4>>2]=d+4;break e}h=F[e>>2];g=d-h|0;i=g>>2;d=i+1|0;if(d>>>0>=1073741824){break d}f=g>>1;f=g>>>0<2147483644?d>>>0>>0?f:d:1073741823;if(f){if(f>>>0>=1073741824){break c}d=rj(f<<2)}else{d=0}i=d+(i<<2)|0;F[i>>2]=c;if((g|0)>0){Ri(d,h,g)}F[e+8>>2]=d+(f<<2);F[e+4>>2]=i+4;F[e>>2]=d;if(!h){break e}oj(h)}a=F[a+4>>2];F[F[a+12>>2]+(b<<2)>>2]=F[a+24>>2];F[a+24>>2]=F[a+24>>2]+1;return}Ia();V()}Wa();V()}function Ai(a,b){var c=0,d=0,e=0,f=0,g=0,h=0;h=F[a>>2];c=h+(b>>>3&536870908)|0;F[c>>2]=F[c>>2]|1<>2];e=(b|0)==-1;c=-1;a:{if(e){break a}d=b+1|0;d=(d>>>0)%3|0?d:b-2|0;c=-1;if((d|0)==-1){break a}c=F[F[f>>2]+(d<<2)>>2]}d=F[a+12>>2];g=(c>>>3&536870908)+d|0;F[g>>2]=F[g>>2]|1<>>0)%3|0){c=b-1|0;break f}c=b+2|0;if((c|0)==-1){break e}}e=F[F[f>>2]+(c<<2)>>2];c=1<>>3&536870908)|0;g=F[e>>2];break d}e=d+536870908|0;c=F[d+536870908>>2];g=-2147483648}F[e>>2]=c|g;c=-1;b=F[F[f+12>>2]+(b<<2)>>2];if((b|0)==-1){break b}D[a+24|0]=0;a=(b>>>3&536870908)+h|0;F[a>>2]=F[a>>2]|1<>>0)%3|0?a:b-2|0;if((a|0)!=-1){c=F[F[f>>2]+(a<<2)>>2]}a=d+(c>>>3&536870908)|0;F[a>>2]=F[a>>2]|1<>>0)%3|0){b=b-1|0;break h}b=b+2|0;a=-1;if((b|0)==-1){break g}}a=F[F[f>>2]+(b<<2)>>2]}b=1<>>3&536870908)|0;c=F[a>>2];break c}a=d+536870908|0;b=F[d+536870908>>2];c=-2147483648}F[a>>2]=b|c}}function Pb(a,b){var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0;a:{c=F[a+8>>2];b:{if((c|0)!=F[a+12>>2]){e=c;break b}d=F[a+4>>2];g=F[a>>2];if(d>>>0>g>>>0){f=c-d|0;g=((d-g>>2)+1|0)/-2<<2;e=g+d|0;if((c|0)!=(d|0)){Si(e,d,f);c=F[a+4>>2]}e=e+f|0;F[a+8>>2]=e;F[a+4>>2]=c+g;break b}f=(c|0)==(g|0)?1:c-g>>1;if(f>>>0>=1073741824){break a}e=f<<2;h=rj(e);k=h+e|0;f=(f&-4)+h|0;e=f;c:{if((c|0)==(d|0)){break c}c=c-d|0;l=c&-4;i=c-4|0;j=(i>>>2|0)+1&7;d:{if(!j){c=f;break d}e=0;c=f;while(1){F[c>>2]=F[d>>2];d=d+4|0;c=c+4|0;e=e+1|0;if((j|0)!=(e|0)){continue}break}}e=f+l|0;if(i>>>0<28){break c}while(1){F[c>>2]=F[d>>2];F[c+4>>2]=F[d+4>>2];F[c+8>>2]=F[d+8>>2];F[c+12>>2]=F[d+12>>2];F[c+16>>2]=F[d+16>>2];F[c+20>>2]=F[d+20>>2];F[c+24>>2]=F[d+24>>2];F[c+28>>2]=F[d+28>>2];d=d+32|0;c=c+32|0;if((e|0)!=(c|0)){continue}break}}F[a+12>>2]=k;F[a+8>>2]=e;F[a+4>>2]=f;F[a>>2]=h;if(!g){break b}oj(g);e=F[a+8>>2]}F[e>>2]=F[b>>2];F[a+8>>2]=F[a+8>>2]+4;return}Wa();V()}function Qb(a,b){var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0;a:{f=F[a+4>>2];b:{if((f|0)!=F[a>>2]){c=f;break b}g=F[a+8>>2];c=F[a+12>>2];if(g>>>0>>0){e=((c-g>>2)+1|0)/2<<2;c=e+g|0;if((f|0)!=(g|0)){d=g-f|0;c=c-d|0;Si(c,f,d);f=F[a+8>>2]}F[a+4>>2]=c;F[a+8>>2]=e+f;break b}d=(c|0)==(f|0)?1:c-f>>1;if(d>>>0>=1073741824){break a}c=d<<2;i=rj(c);k=i+c|0;c=(d+3&-4)+i|0;h=c;c:{if((f|0)==(g|0)){break c}g=g-f|0;l=g&-4;e=c;d=f;j=g-4|0;g=(j>>>2|0)+1&7;if(g){h=0;while(1){F[e>>2]=F[d>>2];d=d+4|0;e=e+4|0;h=h+1|0;if((g|0)!=(h|0)){continue}break}}h=c+l|0;if(j>>>0<28){break c}while(1){F[e>>2]=F[d>>2];F[e+4>>2]=F[d+4>>2];F[e+8>>2]=F[d+8>>2];F[e+12>>2]=F[d+12>>2];F[e+16>>2]=F[d+16>>2];F[e+20>>2]=F[d+20>>2];F[e+24>>2]=F[d+24>>2];F[e+28>>2]=F[d+28>>2];d=d+32|0;e=e+32|0;if((h|0)!=(e|0)){continue}break}}F[a+12>>2]=k;F[a+8>>2]=h;F[a+4>>2]=c;F[a>>2]=i;if(!f){break b}oj(f);c=F[a+4>>2]}F[c-4>>2]=F[b>>2];F[a+4>>2]=F[a+4>>2]-4;return}Wa();V()}function Bf(a){a=a|0;var b=0,c=0,d=0,e=0,f=0,g=0,h=0;g=fa-16|0;fa=g;b=F[a+4>>2];d=F[b>>2];a:{c=F[a+12>>2];c=F[c+28>>2]-F[c+24>>2]|0;e=c>>2;b:{if(e>>>0<=F[b+8>>2]-d>>2>>>0){break b}if((c|0)<0){break a}f=F[b+4>>2];c=rj(c);h=c+(e<<2)|0;e=f-d|0;f=e+c|0;if((e|0)>0){Ri(c,d,e)}F[b+8>>2]=h;F[b+4>>2]=f;F[b>>2]=c;if(!d){break b}oj(d)}b=F[a+12>>2];d=F[b+28>>2];b=F[b+24>>2];F[g+12>>2]=0;b=d-b>>2;c=a+96|0;e=F[c>>2];d=F[a+100>>2]-e>>2;c:{if(b>>>0>d>>>0){gb(c,b-d|0,g+12|0);break c}if(b>>>0>=d>>>0){break c}F[a+100>>2]=e+(b<<2)}e=a+8|0;b=F[a+116>>2];d:{if(b){c=F[b>>2];if((c|0)==F[b+4>>2]){d=1;break d}b=0;while(1){d=Cf(e,F[(b<<2)+c>>2]);if(!d){break d}f=F[a+116>>2];c=F[f>>2];b=b+1|0;if(b>>>0>2]-c>>2>>>0){continue}break}break d}d=1;a=F[a+12>>2];a=F[a+4>>2]-F[a>>2]|0;if(a>>>0<12){break d}a=(a>>2>>>0)/3|0;b=0;while(1){d=Cf(e,L(b,3));if(!d){break d}b=b+1|0;if((a|0)!=(b|0)){continue}break}}fa=g+16|0;return d|0}Ia();V()}function Hc(a,b){var c=0,d=0,e=0,f=0,g=0,h=0;d=fa-16|0;fa=d;a:{e=F[a+4>>2];b:{if(e>>>0>>0){f=b-e|0;c=F[a+8>>2];g=c<<5;c:{if(!(f>>>0>g>>>0|e>>>0>g-f>>>0)){F[a+4>>2]=b;h=e&31;b=F[a>>2]+(e>>>3&536870908)|0;break c}F[d+8>>2]=0;F[d>>2]=0;F[d+4>>2]=0;if((b|0)<0){break a}if(g>>>0<=1073741822){c=c<<6;b=b+31&-32;b=b>>>0>>0?c:b}else{b=2147483647}Jc(d,b);c=F[a+4>>2];F[d+4>>2]=c+f;e=F[a>>2];b=F[d>>2];d:{if((c|0)<=0){break d}g=c>>>5<<2;b=Si(b,e,g)+g|0;h=c&31;e:{if(!h){h=0;break e}c=-1>>>32-h|0;F[b>>2]=F[b>>2]&(c^-1)|F[e+g>>2]&c}e=F[a>>2]}F[a>>2]=F[d>>2];F[d>>2]=e;c=F[a+4>>2];F[a+4>>2]=F[d+4>>2];F[d+4>>2]=c;c=F[a+8>>2];F[a+8>>2]=F[d+8>>2];F[d+8>>2]=c;if(!e){break c}oj(e)}if(!f){break b}if(h){c=32-h|0;a=c>>>0>>0?c:f;F[b>>2]=F[b>>2]&(-1<>>c-a^-1);f=f-a|0;b=b+4|0}a=b;b=f>>>5<<2;a=Ti(a,0,b);if((f&-32)==(f|0)){break b}a=a+b|0;F[a>>2]=F[a>>2]&(-1>>>32-(f&31)^-1);break b}F[a+4>>2]=b}fa=d+16|0;return}Ia();V()}function yj(a,b){var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0;d=G[a+11|0]>>>7|0?F[a+4>>2]:G[a+11|0];if(d>>>0>>0){h=fa-16|0;fa=h;f=b-d|0;if(f){b=G[a+11|0]>>>7|0;g=b?F[a+4>>2]:G[a+11|0];i=g+f|0;b=b?(F[a+8>>2]&2147483647)-1|0:10;if(b-g>>>0>>0){a:{d=fa-16|0;fa=d;c=i-b|0;if(c>>>0<=-17-b>>>0){j=G[a+11|0]>>>7|0?F[a>>2]:a;b:{if(b>>>0<2147483623){F[d+8>>2]=b<<1;F[d+12>>2]=b+c;c=fa-16|0;fa=c;fa=c+16|0;c=d+8|0;e=d+12|0;c=F[(I[e>>2]>2]?c:e)>>2];if(c>>>0>=11){e=c+16&-16;c=e-1|0;c=(c|0)==11?e:c}else{c=10}break b}c=-18}e=c+1|0;c=rj(e);if(g){qj(c,j,g)}if((b|0)!=10){oj(j)}F[a>>2]=c;F[a+8>>2]=e|-2147483648;fa=d+16|0;break a}bg();V()}}b=G[a+11|0]>>>7|0?F[a>>2]:a;d=g+b|0;if(f){Ti(d,0,f)}c:{if(G[a+11|0]>>>7|0){F[a+4>>2]=i;break c}D[a+11|0]=i}D[h+15|0]=0;D[b+i|0]=G[h+15|0]}fa=h+16|0;return}c=G[a+11|0]>>>7|0;f=c?F[a>>2]:a;d=fa-16|0;fa=d;d:{if(c){F[a+4>>2]=b;break d}D[a+11|0]=b}D[d+15|0]=0;D[b+f|0]=G[d+15|0];fa=d+16|0}function Ra(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0;f=F[a+12>>2];h=F[a+8>>2];d=f-h>>2;b=D[b+24|0];a:{if(d>>>0>>0){La(a+8|0,b-d|0);h=F[a+8>>2];f=F[a+12>>2];break a}if(b>>>0>=d>>>0){break a}f=(b<<2)+h|0;F[a+12>>2]=f}b=0;i=F[c+20>>2];e=F[c+16>>2];d=f-h|0;f=d;g=e+d|0;j=F[c+12>>2];i=d>>>0>g>>>0?i+1|0:i;b:{if(g>>>0>I[c+8>>2]&(j|0)<=(i|0)|(i|0)>(j|0)){break b}Ri(h,e+F[c>>2]|0,d);d=F[c+20>>2];e=f+F[c+16>>2]|0;d=e>>>0>>0?d+1|0:d;g=e;F[c+16>>2]=e;F[c+20>>2]=d;e=F[c+12>>2];f=g+4|0;d=f>>>0<4?d+1|0:d;if(f>>>0>I[c+8>>2]&(d|0)>=(e|0)|(d|0)>(e|0)){break b}d=g+F[c>>2]|0;F[a+20>>2]=G[d|0]|G[d+1|0]<<8|(G[d+2|0]<<16|G[d+3|0]<<24);d=F[c+20>>2];g=F[c+16>>2];e=g+4|0;f=e>>>0<4?d+1|0:d;j=e;F[c+16>>2]=e;F[c+20>>2]=f;e=F[c+12>>2];if((f|0)>=(e|0)&j>>>0>=I[c+8>>2]|(f|0)>(e|0)){break b}e=G[j+F[c>>2]|0];f=g+5|0;d=f>>>0<5?d+1|0:d;F[c+16>>2]=f;F[c+20>>2]=d;if(e-1>>>0>29){break b}F[a+4>>2]=e;b=1}return b|0}function Gb(a,b){var c=0;a:{if(!ge(a,b)){break a}if(!ge(a+16|0,b)){break a}if(!ge(a+32|0,b)){break a}if(!ge(a+48|0,b)){break a}if(!ge(a- -64|0,b)){break a}if(!ge(a+80|0,b)){break a}if(!ge(a+96|0,b)){break a}if(!ge(a+112|0,b)){break a}if(!ge(a+128|0,b)){break a}if(!ge(a+144|0,b)){break a}if(!ge(a+160|0,b)){break a}if(!ge(a+176|0,b)){break a}if(!ge(a+192|0,b)){break a}if(!ge(a+208|0,b)){break a}if(!ge(a+224|0,b)){break a}if(!ge(a+240|0,b)){break a}if(!ge(a+256|0,b)){break a}if(!ge(a+272|0,b)){break a}if(!ge(a+288|0,b)){break a}if(!ge(a+304|0,b)){break a}if(!ge(a+320|0,b)){break a}if(!ge(a+336|0,b)){break a}if(!ge(a+352|0,b)){break a}if(!ge(a+368|0,b)){break a}if(!ge(a+384|0,b)){break a}if(!ge(a+400|0,b)){break a}if(!ge(a+416|0,b)){break a}if(!ge(a+432|0,b)){break a}if(!ge(a+448|0,b)){break a}if(!ge(a+464|0,b)){break a}if(!ge(a+480|0,b)){break a}if(!ge(a+496|0,b)){break a}c=ge(a+512|0,b)}return c}function yi(a,b){var c=0,d=0,e=0,f=0,g=0,h=0;g=fa-16|0;fa=g;a:{b:{if(b){F[a+88>>2]=0;F[a+92>>2]=0;c=F[a+84>>2];F[a+84>>2]=0;if(c){oj(c)}F[a+76>>2]=0;F[a+80>>2]=0;c=F[a+72>>2];F[a+72>>2]=0;if(c){oj(c)}c=F[b>>2];d=F[b+4>>2];D[g+15|0]=0;Ne(a,d-c>>2,g+15|0);c=F[b+28>>2];d=F[b+24>>2];D[g+14|0]=0;Ne(a+12|0,c-d>>2,g+14|0);si(a+28|0,F[b+4>>2]-F[b>>2]>>2,13708);d=F[b+28>>2]-F[b+24>>2]|0;e=d>>2;c=F[a+52>>2];c:{if(e>>>0<=F[a+60>>2]-c>>2>>>0){break c}if((d|0)<0){break b}f=F[a+56>>2];d=rj(d);h=d+(e<<2)|0;e=f-c|0;f=e+d|0;if((e|0)>0){Ri(d,c,e)}F[a+60>>2]=h;F[a+56>>2]=f;F[a+52>>2]=d;if(!c){break c}oj(c)}d=F[b+28>>2]-F[b+24>>2]|0;e=d>>2;c=F[a+40>>2];d:{if(e>>>0<=F[a+48>>2]-c>>2>>>0){break d}if((d|0)<0){break a}f=F[a+44>>2];d=rj(d);h=d+(e<<2)|0;e=f-c|0;f=e+d|0;if((e|0)>0){Ri(d,c,e)}F[a+48>>2]=h;F[a+44>>2]=f;F[a+40>>2]=d;if(!c){break d}oj(c)}D[a+24|0]=1;F[a+64>>2]=b}fa=g+16|0;return}Ia();V()}Ia();V()}function ya(a,b,c,d){var e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0;j=+J[b>>2];k=+J[b+4>>2];l=+J[b+8>>2];g=N(j)+N(k)+N(l);a:{if(!(g>1e-6)){j=1;k=0;e=0;break a}g=1/g;k=g*k;j=g*j;e=g*l<0}h=F[a+16>>2];l=+(h|0);g=R(j*l+.5);b:{if(N(g)<2147483648){m=~~g;break b}m=-2147483648}f=m>>31;i=(f^m)-f|0;g=R(k*l+.5);c:{if(N(g)<2147483648){f=~~g;break c}f=-2147483648}b=f>>31;b=h-(i+((f^b)-b|0)|0)|0;i=(b|0)>0?b:0;e=e?0-i|0:i;f=f+(b>>31&((f|0)>0?b:0-b|0))|0;d:{if((m|0)>=0){b=e+h|0;a=F[a+8>>2];e=h+f|0;break d}b=f>>31;b=(b^f)-b|0;a=F[a+8>>2];b=(e|0)<0?b:a-b|0;e=(f|0)<0?i:a-i|0}e:{if(!(b|e)){b=a;break e}if(!((a|0)!=(b|0)|e)){b=a;break e}if(!((a|0)!=(e|0)|b)){b=a;break e}if(!((b|0)<=(h|0)|e)){b=(h<<1)-b|0;a=0;break e}if(!((a|0)!=(e|0)|(b|0)>=(h|0))){b=(h<<1)-b|0;break e}if(!((a|0)!=(b|0)|(e|0)>=(h|0))){b=a;a=(h<<1)-e|0;break e}if(b){a=e;break e}b=0;if((e|0)<=(h|0)){a=e;break e}a=(h<<1)-e|0}F[c>>2]=a;F[d>>2]=b}function bd(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0;f=F[b+12>>2];c=f;d=F[b+20>>2];g=d;i=F[b+16>>2];e=i+4|0;d=e>>>0<4?d+1|0:d;j=F[b+8>>2];a:{if(j>>>0>>0&(c|0)<=(d|0)|(c|0)<(d|0)){break a}k=F[b>>2];c=i+k|0;c=G[c|0]|G[c+1|0]<<8|(G[c+2|0]<<16|G[c+3|0]<<24);F[b+16>>2]=e;F[b+20>>2]=d;d=g;h=i+8|0;d=h>>>0<8?d+1|0:d;if(h>>>0>j>>>0&(d|0)>=(f|0)|(d|0)>(f|0)){break a}e=e+k|0;e=G[e|0]|G[e+1|0]<<8|(G[e+2|0]<<16|G[e+3|0]<<24);F[b+16>>2]=h;F[b+20>>2]=d;if((c|0)>(e|0)){break a}F[a+16>>2]=e;F[a+12>>2]=c;l=(e>>31)-((c>>31)+(c>>>0>e>>>0)|0)|0;c=e-c|0;if(!l&c>>>0>2147483646|l){break a}c=c+1|0;F[a+20>>2]=c;e=c>>>1|0;F[a+24>>2]=e;F[a+28>>2]=0-e;if(!(c&1)){F[a+24>>2]=e-1}if(H[b+38>>1]<=513){if((d|0)>=(f|0)&h>>>0>=j>>>0|(d|0)>(f|0)){break a}c=G[h+k|0];d=g;g=i+9|0;d=g>>>0<9?d+1|0:d;F[b+16>>2]=g;F[b+20>>2]=d;if(c>>>0>1){break a}F[a+88>>2]=c}m=ge(a+112|0,b)}return m|0}function za(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=M(0),f=M(0),g=M(0),h=M(0),i=M(0),j=0,k=M(0),l=M(0),m=M(0),n=M(0),o=0;a:{if(F[c+28>>2]!=9|G[c+24|0]!=3){break a}a=F[a+4>>2];if(a-31>>>0<4294967267){break a}o=1;j=F[c+80>>2];if(!j){break a}k=M(M(2)/M((1<>2]>>2]+F[c+48>>2]|0;a=F[F[b>>2]>>2]+F[b+48>>2]|0;b=0;while(1){g=M(0);l=M(0);m=M(0);e=M(M(M(F[a>>2])*k)+M(-1));f=M(M(M(F[a+4>>2])*k)+M(-1));i=M(M(M(1)-M(N(e)))-M(N(f)));h=M(Q(M(-i),M(0)));n=M(-h);f=M(f+(f>>8;D[c+10|0]=d>>>16;D[c+11|0]=d>>>24;d=(v(l),x(2));D[c+4|0]=d;D[c+5|0]=d>>>8;D[c+6|0]=d>>>16;D[c+7|0]=d>>>24;d=(v(g),x(2));D[c|0]=d;D[c+1|0]=d>>>8;D[c+2|0]=d>>>16;D[c+3|0]=d>>>24;c=c+12|0;b=b+1|0;if((j|0)!=(b|0)){continue}break}}return o|0}function Oi(a,b,c){var d=0,e=0,f=0,g=0,h=0,i=0,j=0;a:{if(b>>>0<=63){b=0;a=F[a+12>>2];if(a>>>0<2){break a}b=a-1|0;e=b&3;d=F[c>>2];c=0;b:{if(a-2>>>0<3){a=1;b=0;break b}f=b&-4;b=0;a=1;while(1){g=a+3|0;h=a+2|0;i=a+1|0;b=I[d+(b<<2)>>2]>I[d+(a<<2)>>2]?a:b;b=I[d+(b<<2)>>2]>I[d+(i<<2)>>2]?i:b;b=I[d+(b<<2)>>2]>I[d+(h<<2)>>2]?h:b;b=I[d+(b<<2)>>2]>I[d+(g<<2)>>2]?g:b;a=a+4|0;j=j+4|0;if((f|0)!=(j|0)){continue}break}}if(!e){break a}while(1){b=I[d+(b<<2)>>2]>I[d+(a<<2)>>2]?a:b;a=a+1|0;c=c+1|0;if((e|0)!=(c|0)){continue}break}break a}b=F[a+580>>2];d=32-b|0;if((d|0)>=4){c=F[a+576>>2];if((c|0)==F[a+568>>2]){return 0}d=F[c>>2];e=b+4|0;F[a+580>>2]=e;b=d<>>28|0;if((e|0)!=32){break a}F[a+580>>2]=0;F[a+576>>2]=c+4;return b}c=F[a+576>>2];e=c+4|0;if((e|0)==F[a+568>>2]){return 0}f=F[c>>2];F[a+576>>2]=e;F[a+580>>2]=b-28;a=60-b|0;b=F[c+4>>2]>>>a|f<>>a-d}return b}function pf(a){a=a|0;var b=0,c=0,d=0,e=0;F[a>>2]=11436;b=F[a+388>>2];if(b){F[a+392>>2]=b;oj(b)}d=F[a+368>>2];F[a+368>>2]=0;if(d){e=d-4|0;b=F[e>>2];if(b){c=(b<<4)+d|0;while(1){c=c-16|0;if((d|0)!=(c|0)){continue}break}}oj(e)}nf(a+216|0);b=F[a+196>>2];if(b){F[a+200>>2]=b;oj(b)}b=F[a+184>>2];if(b){F[a+188>>2]=b;oj(b)}b=F[a+172>>2];if(b){F[a+176>>2]=b;oj(b)}b=F[a+160>>2];if(b){F[a+164>>2]=b;oj(b)}c=F[a+144>>2];if(c){while(1){b=F[c>>2];oj(c);c=b;if(b){continue}break}}b=F[a+136>>2];F[a+136>>2]=0;if(b){oj(b)}b=F[a+120>>2];if(b){oj(b)}b=F[a+108>>2];if(b){oj(b)}b=F[a+96>>2];if(b){oj(b)}b=F[a+72>>2];if(b){F[a+76>>2]=b;oj(b)}b=F[a+60>>2];if(b){oj(b)}b=F[a+48>>2];if(b){F[a+52>>2]=b;oj(b)}b=F[a+36>>2];if(b){F[a+40>>2]=b;oj(b)}b=F[a+24>>2];if(b){F[a+28>>2]=b;oj(b)}b=F[a+12>>2];if(b){F[a+16>>2]=b;oj(b)}b=F[a+8>>2];F[a+8>>2]=0;if(b){Re(b)}return a|0}function mf(a){a=a|0;var b=0,c=0,d=0,e=0;F[a>>2]=11384;d=F[a+368>>2];F[a+368>>2]=0;if(d){e=d-4|0;b=F[e>>2];if(b){c=(b<<4)+d|0;while(1){c=c-16|0;if((d|0)!=(c|0)){continue}break}}oj(e)}nf(a+216|0);b=F[a+196>>2];if(b){F[a+200>>2]=b;oj(b)}b=F[a+184>>2];if(b){F[a+188>>2]=b;oj(b)}b=F[a+172>>2];if(b){F[a+176>>2]=b;oj(b)}b=F[a+160>>2];if(b){F[a+164>>2]=b;oj(b)}c=F[a+144>>2];if(c){while(1){b=F[c>>2];oj(c);c=b;if(b){continue}break}}b=F[a+136>>2];F[a+136>>2]=0;if(b){oj(b)}b=F[a+120>>2];if(b){oj(b)}b=F[a+108>>2];if(b){oj(b)}b=F[a+96>>2];if(b){oj(b)}b=F[a+72>>2];if(b){F[a+76>>2]=b;oj(b)}b=F[a+60>>2];if(b){oj(b)}b=F[a+48>>2];if(b){F[a+52>>2]=b;oj(b)}b=F[a+36>>2];if(b){F[a+40>>2]=b;oj(b)}b=F[a+24>>2];if(b){F[a+28>>2]=b;oj(b)}b=F[a+12>>2];if(b){F[a+16>>2]=b;oj(b)}b=F[a+8>>2];F[a+8>>2]=0;if(b){Re(b)}return a|0}function rh(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,f=0,g=0;a:{a=fa-32|0;fa=a;e=dj(c);if(e>>>0<4294967280){b:{c:{if(e>>>0>=11){g=e+16&-16;f=rj(g);F[a+24>>2]=g|-2147483648;F[a+16>>2]=f;F[a+20>>2]=e;break c}D[a+27|0]=e;f=a+16|0;if(!e){break b}}Ri(f,c,e)}D[e+f|0]=0;F[a+8>>2]=0;F[a>>2]=0;F[a+4>>2]=0;d:{c=qg(b,a+16|0);if((c|0)==(b+4|0)){break d}b=F[c+28>>2];f=F[c+32>>2];if((b|0)==(f|0)){break d}b=f-b|0;if(b&3){break d}e=b>>>2|0;f=F[a+4>>2];b=F[a>>2];g=f-b>>2;e:{if(e>>>0>g>>>0){La(a,e-g|0);b=F[a>>2];f=F[a+4>>2];break e}if(e>>>0>=g>>>0){break e}f=(e<<2)+b|0;F[a+4>>2]=f}if((b|0)!=(f|0)){e=b;b=F[c+28>>2];Ri(e,b,F[c+32>>2]-b|0);break d}yc();V()}b=F[d>>2];if(b){F[d+4>>2]=b;oj(b)}F[d>>2]=F[a>>2];F[d+4>>2]=F[a+4>>2];F[d+8>>2]=F[a+8>>2];if(D[a+27|0]<0){oj(F[a+16>>2])}fa=a+32|0;break a}bg();V()}}function Oe(a,b){var c=0,d=0;c=F[b+8>>2];F[a+4>>2]=F[b+4>>2];F[a+8>>2]=c;F[a+20>>2]=F[b+20>>2];c=F[b+16>>2];F[a+12>>2]=F[b+12>>2];F[a+16>>2]=c;a:{b:{if((a|0)!=(b|0)){c=F[b+28>>2];if(c){d=F[a+24>>2];if(F[a+32>>2]<<5>>>0>>0){if(d){oj(d);F[a+32>>2]=0;F[a+24>>2]=0;F[a+28>>2]=0;c=F[b+28>>2]}if((c|0)<0){break b}c=(c-1>>>5|0)+1|0;d=rj(c<<2);F[a+32>>2]=c;F[a+28>>2]=0;F[a+24>>2]=d;c=F[b+28>>2]}Si(d,F[b+24>>2],(c-1>>>3&536870908)+4|0);c=F[b+28>>2]}else{c=0}F[a+28>>2]=c;c=F[b+40>>2];if(c){d=F[a+36>>2];if(F[a+44>>2]<<5>>>0>>0){if(d){oj(d);F[a+44>>2]=0;F[a+36>>2]=0;F[a+40>>2]=0;c=F[b+40>>2]}if((c|0)<0){break a}c=(c-1>>>5|0)+1|0;d=rj(c<<2);F[a+44>>2]=c;F[a+40>>2]=0;F[a+36>>2]=d;c=F[b+40>>2]}Si(d,F[b+36>>2],(c-1>>>3&536870908)+4|0);b=F[b+40>>2]}else{b=0}F[a+40>>2]=b}return}Ia();V()}Ia();V()}function ph(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0;d=fa-16|0;fa=d;a:{e=dj(c);if(e>>>0<4294967280){b:{c:{if(e>>>0>=11){f=e+16&-16;a=rj(f);F[d+8>>2]=f|-2147483648;F[d>>2]=a;F[d+4>>2]=e;break c}D[d+11|0]=e;a=d;if(!e){break b}}Ri(a,c,e)}D[a+e|0]=0;c=G[d+11|0];e=c<<24>>24;b=F[b+4>>2];a=0;d:{if(!b){break d}a=c;c=(e|0)<0;a=c?F[d+4>>2]:a;f=c?F[d>>2]:d;while(1){c=G[b+27|0];g=c<<24>>24<0;c=g?F[b+20>>2]:c;j=c>>>0>>0;e:{f:{g:{h:{i:{j:{i=j?c:a;if(i){h=b+16|0;g=g?F[h>>2]:h;h=Zi(f,g,i);if(h){break j}if(a>>>0>=c>>>0){break i}break e}if(a>>>0>=c>>>0){break h}break e}if((h|0)<0){break e}}c=Zi(g,f,i);if(c){break g}}if(j){break f}a=1;break d}if((c|0)<0){break f}a=1;break d}b=b+4|0}b=F[b>>2];if(b){continue}break}a=0}if((e|0)<0){oj(F[d>>2])}fa=d+16|0;break a}bg();V()}return a|0}function vd(a){var b=0,c=0,d=0;b=F[a+8>>2];d=F[a>>2];a:{if(G[a+12|0]){b:{c:{d:{e:{if((b|0)==-1){break e}c=b+1|0;b=(c>>>0)%3|0?c:b-2|0;if((b|0)==-1){break e}b=F[F[d+12>>2]+(b<<2)>>2];if((b|0)!=-1){break d}}F[a+8>>2]=-1;break c}c=b+1|0;b=(c>>>0)%3|0?c:b-2|0;F[a+8>>2]=b;if((b|0)!=-1){break b}}c=F[a+4>>2];b=-1;f:{if((c|0)==-1){break f}g:{if((c>>>0)%3|0){c=c-1|0;break g}c=c+2|0;b=-1;if((c|0)==-1){break f}}c=F[F[d+12>>2]+(c<<2)>>2];b=-1;if((c|0)==-1){break f}b=c-1|0;if((c>>>0)%3|0){break f}b=c+2|0}D[a+12|0]=0;F[a+8>>2]=b;return}if((b|0)!=F[a+4>>2]){break a}F[a+8>>2]=-1;return}c=-1;h:{if((b|0)==-1){break h}i:{if((b>>>0)%3|0){b=b-1|0;break i}b=b+2|0;c=-1;if((b|0)==-1){break h}}b=F[F[d+12>>2]+(b<<2)>>2];c=-1;if((b|0)==-1){break h}c=b-1|0;if((b>>>0)%3|0){break h}c=b+2|0}F[a+8>>2]=c}}function Gd(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0;f=F[b+12>>2];c=F[b+20>>2];d=c;i=F[b+16>>2];e=i+4|0;c=e>>>0<4?c+1|0:c;j=F[b+8>>2];g=e;a:{if(j>>>0>>0&(c|0)>=(f|0)|(c|0)>(f|0)){break a}k=F[b>>2];e=i+k|0;h=G[e|0]|G[e+1|0]<<8|(G[e+2|0]<<16|G[e+3|0]<<24);F[b+16>>2]=g;F[b+20>>2]=c;e=H[b+38>>1];if(e>>>0<=513){c=d;d=i+8|0;c=d>>>0<8?c+1|0:c;g=d;if(d>>>0>j>>>0&(c|0)>=(f|0)|(c|0)>(f|0)){break a}F[b+16>>2]=g;F[b+20>>2]=c}if(!(h&1)){break a}d=O(h)^31;if(d-30>>>0<4294967267){break a}F[a+8>>2]=d+1;d=-2<>2]=h;F[a+12>>2]=d^-1;F[a+24>>2]=(h|0)/2;J[a+20>>2]=M(2)/M(h|0);if(e>>>0<=513){if((c|0)>=(f|0)&g>>>0>=j>>>0|(c|0)>(f|0)){break a}f=G[g+k|0];d=g+1|0;c=d?c:c+1|0;F[b+16>>2]=d;F[b+20>>2]=c;if(f>>>0>1){break a}F[a+72>>2]=f}l=ge(a+96|0,b)}return l|0}function aj(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0;f=fa-32|0;fa=f;d=F[a+28>>2];F[f+16>>2]=d;g=F[a+20>>2];F[f+28>>2]=c;F[f+24>>2]=b;b=g-d|0;F[f+20>>2]=b;g=b+c|0;i=2;a:{b:{b=f+16|0;d=aa(F[a+60>>2],b|0,2,f+12|0)|0;if(d){F[3988]=d;d=-1}else{d=0}c:{d:{if(d){d=b;break d}while(1){e=F[f+12>>2];if((e|0)==(g|0)){break c}if((e|0)<0){d=b;break b}h=F[b+4>>2];j=h>>>0>>0;d=(j<<3)+b|0;h=e-(j?h:0)|0;F[d>>2]=h+F[d>>2];b=(j?12:4)+b|0;F[b>>2]=F[b>>2]-h;g=g-e|0;b=d;i=i-j|0;e=aa(F[a+60>>2],b|0,i|0,f+12|0)|0;if(e){F[3988]=e;e=-1}else{e=0}if(!e){continue}break}}if((g|0)!=-1){break b}}b=F[a+44>>2];F[a+28>>2]=b;F[a+20>>2]=b;F[a+16>>2]=b+F[a+48>>2];a=c;break a}F[a+28>>2]=0;F[a+16>>2]=0;F[a+20>>2]=0;F[a>>2]=F[a>>2]|32;a=0;if((i|0)==2){break a}a=c-F[d+4>>2]|0}fa=f+32|0;return a|0}function Qd(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0;f=F[b+12>>2];c=F[b+20>>2];g=c;h=F[b+16>>2];d=h+4|0;c=d>>>0<4?c+1|0:c;i=F[b+8>>2];a:{if(i>>>0>>0&(c|0)>=(f|0)|(c|0)>(f|0)){break a}k=F[b>>2];e=h+k|0;e=G[e|0]|G[e+1|0]<<8|(G[e+2|0]<<16|G[e+3|0]<<24);F[b+16>>2]=d;F[b+20>>2]=c;c=g;d=h+8|0;c=d>>>0<8?c+1|0:c;j=d;if(d>>>0>i>>>0&(c|0)>=(f|0)|(c|0)>(f|0)){break a}F[b+16>>2]=j;F[b+20>>2]=c;if(!(e&1)){break a}d=O(e)^31;if(d-30>>>0<4294967267){break a}F[a+8>>2]=d+1;d=-2<>2]=e;F[a+12>>2]=d^-1;F[a+24>>2]=(e|0)/2;J[a+20>>2]=M(2)/M(e|0);if(H[b+38>>1]<=513){if((c|0)>=(f|0)&j>>>0>=i>>>0|(c|0)>(f|0)){break a}f=G[j+k|0];c=h+9|0;g=c>>>0<9?g+1|0:g;F[b+16>>2]=c;F[b+20>>2]=g;if(f>>>0>1){break a}F[a+72>>2]=f}l=ge(a+96|0,b)}return l|0}function Si(a,b,c){var d=0,e=0;a:{if((a|0)==(b|0)){break a}e=a+c|0;if(b-e>>>0<=0-(c<<1)>>>0){return Ri(a,b,c)}d=(a^b)&3;b:{c:{if(a>>>0>>0){if(d){d=a;break b}if(!(a&3)){d=a;break c}d=a;while(1){if(!c){break a}D[d|0]=G[b|0];b=b+1|0;c=c-1|0;d=d+1|0;if(d&3){continue}break}break c}d:{if(d){break d}if(e&3){while(1){if(!c){break a}c=c-1|0;d=c+a|0;D[d|0]=G[b+c|0];if(d&3){continue}break}}if(c>>>0<=3){break d}while(1){c=c-4|0;F[c+a>>2]=F[b+c>>2];if(c>>>0>3){continue}break}}if(!c){break a}while(1){c=c-1|0;D[c+a|0]=G[b+c|0];if(c){continue}break}break a}if(c>>>0<=3){break b}while(1){F[d>>2]=F[b>>2];b=b+4|0;d=d+4|0;c=c-4|0;if(c>>>0>3){continue}break}}if(!c){break a}while(1){D[d|0]=G[b|0];d=d+1|0;b=b+1|0;c=c-1|0;if(c){continue}break}}return a}function kc(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0;h=F[c+12>>2];d=h;e=F[c+20>>2];i=F[c+8>>2];f=F[c+16>>2];a:{if((d|0)<=(e|0)&i>>>0<=f>>>0|(d|0)<(e|0)){break a}j=F[c>>2];k=D[j+f|0];d=e;g=f+1|0;d=g?d:d+1|0;F[c+16>>2]=g;F[c+20>>2]=d;b:{if((k|0)==-2){break b}if((d|0)>=(h|0)&g>>>0>=i>>>0|(d|0)>(h|0)){break a}d=D[g+j|0];f=f+2|0;e=f>>>0<2?e+1|0:e;F[c+16>>2]=f;F[c+20>>2]=e;if((d-4&255)>>>0<251){break a}e=ja[F[F[a>>2]+40>>2]](a,k,d)|0;d=F[a+20>>2];F[a+20>>2]=e;if(!d){break b}ja[F[F[d>>2]+4>>2]](d)}d=F[a+20>>2];if(d){if(!(ja[F[F[a>>2]+28>>2]](a,d)|0)){break a}}if(!(ja[F[F[a>>2]+36>>2]](a,b,c)|0)){break a}c=F[a+4>>2];if(!(!c|G[c+36|0]>1)){if(!(ja[F[F[a>>2]+48>>2]](a,F[b+4>>2]-F[b>>2]>>2)|0)){break a}}l=1}return l|0}function hj(a,b,c){a:{switch(b-9|0){case 0:b=F[c>>2];F[c>>2]=b+4;F[a>>2]=F[b>>2];return;case 6:b=F[c>>2];F[c>>2]=b+4;b=E[b>>1];F[a>>2]=b;F[a+4>>2]=b>>31;return;case 7:b=F[c>>2];F[c>>2]=b+4;F[a>>2]=H[b>>1];F[a+4>>2]=0;return;case 8:b=F[c>>2];F[c>>2]=b+4;b=D[b|0];F[a>>2]=b;F[a+4>>2]=b>>31;return;case 9:b=F[c>>2];F[c>>2]=b+4;F[a>>2]=G[b|0];F[a+4>>2]=0;return;case 16:b=F[c>>2]+7&-8;F[c>>2]=b+8;K[a>>3]=K[b>>3];return;case 17:ja[0](a,c);default:return;case 1:case 4:case 14:b=F[c>>2];F[c>>2]=b+4;b=F[b>>2];F[a>>2]=b;F[a+4>>2]=b>>31;return;case 2:case 5:case 11:case 15:b=F[c>>2];F[c>>2]=b+4;F[a>>2]=F[b>>2];F[a+4>>2]=0;return;case 3:case 10:case 12:case 13:break a}}b=F[c>>2]+7&-8;F[c>>2]=b+8;c=F[b+4>>2];F[a>>2]=F[b>>2];F[a+4>>2]=c}function ac(a,b){var c=0,d=0,e=0,f=0,g=0,h=0,i=0;d=F[a+8>>2];c=F[a+4>>2];if(d-c>>2>>>0>=b>>>0){if(b){b=b<<2;c=Ti(c,0,b)+b|0}F[a+4>>2]=c;return}a:{b:{c:{g=F[a>>2];f=c-g>>2;e=f+b|0;if(e>>>0<1073741824){d=d-g|0;h=d>>1;e=d>>>0<2147483644?e>>>0>>0?h:e:1073741823;if(e){if(e>>>0>=1073741824){break c}i=rj(e<<2)}d=(f<<2)+i|0;f=b<<2;b=Ti(d,0,f);f=b+f|0;e=(e<<2)+i|0;if((c|0)==(g|0)){break b}while(1){c=c-4|0;b=F[c>>2];F[c>>2]=0;d=d-4|0;F[d>>2]=b;if((c|0)!=(g|0)){continue}break}F[a+8>>2]=e;b=F[a+4>>2];F[a+4>>2]=f;c=F[a>>2];F[a>>2]=d;if((b|0)==(c|0)){break a}while(1){b=b-4|0;a=F[b>>2];F[b>>2]=0;if(a){ja[F[F[a>>2]+4>>2]](a)}if((b|0)!=(c|0)){continue}break}break a}Ia();V()}Wa();V()}F[a+8>>2]=e;F[a+4>>2]=f;F[a>>2]=b}if(c){oj(c)}}function Cj(a,b){var c=0,d=0,e=0;c=fa+-64|0;fa=c;d=F[a>>2];e=F[d-4>>2];d=F[d-8>>2];F[c+32>>2]=0;F[c+36>>2]=0;F[c+40>>2]=0;F[c+44>>2]=0;F[c+48>>2]=0;F[c+52>>2]=0;D[c+55|0]=0;D[c+56|0]=0;D[c+57|0]=0;D[c+58|0]=0;D[c+59|0]=0;D[c+60|0]=0;D[c+61|0]=0;D[c+62|0]=0;F[c+24>>2]=0;F[c+28>>2]=0;F[c+20>>2]=0;F[c+16>>2]=14924;F[c+12>>2]=a;F[c+8>>2]=b;a=a+d|0;d=0;a:{if(Aj(e,b,0)){F[c+56>>2]=1;ja[F[F[e>>2]+20>>2]](e,c+8|0,a,a,1,0);d=F[c+32>>2]==1?a:0;break a}ja[F[F[e>>2]+24>>2]](e,c+8|0,a,1,0);b:{switch(F[c+44>>2]){case 0:d=F[c+48>>2]==1?F[c+36>>2]==1?F[c+40>>2]==1?F[c+28>>2]:0:0:0;break a;case 1:break b;default:break a}}if(F[c+32>>2]!=1){if(F[c+48>>2]|F[c+36>>2]!=1|F[c+40>>2]!=1){break a}}d=F[c+24>>2]}fa=c- -64|0;return d}function fe(a,b){var c=0,d=0,e=0,f=0,g=0,h=0,i=0;F[a+16>>2]=0;c=F[a>>2];F[a+4>>2]=c;F[a+12>>2]=c;g=F[b+12>>2];c=g;d=F[b+20>>2];f=F[b+16>>2];e=f+4|0;d=e>>>0<4?d+1|0:d;h=F[b+8>>2];a:{if(h>>>0>>0&(c|0)<=(d|0)|(c|0)<(d|0)){break a}c=f+F[b>>2]|0;c=G[c|0]|G[c+1|0]<<8|(G[c+2|0]<<16|G[c+3|0]<<24);F[b+16>>2]=e;F[b+20>>2]=d;if(!c|c&3){break a}f=g-(d+(e>>>0>h>>>0)|0)|0;if(h-e>>>0>>0&(f|0)<=0|(f|0)<0){break a}if(c>>>0>=4){La(a,c>>>2|0);h=F[b+8>>2];g=F[b+12>>2];e=F[b+16>>2];d=F[b+20>>2]}f=c+e|0;d=c>>>0>f>>>0?d+1|0:d;if(f>>>0>h>>>0&(d|0)>=(g|0)|(d|0)>(g|0)){break a}Ri(F[a>>2],e+F[b>>2]|0,c);d=F[b+20>>2];e=c+F[b+16>>2]|0;d=e>>>0>>0?d+1|0:d;F[b+16>>2]=e;F[b+20>>2]=d;F[a+16>>2]=0;F[a+12>>2]=F[a>>2];i=1}return i}function Ci(a,b){var c=0,d=0,e=0,f=0;d=-1;e=-1;f=-1;a:{b:{if((b|0)==-1){break b}e=F[F[F[a+4>>2]+12>>2]+(b<<2)>>2];c=b+1|0;c=(c>>>0)%3|0?c:b-2|0;if((c|0)>=0){f=(c>>>0)/3|0;f=F[(F[F[a>>2]+96>>2]+L(f,12)|0)+(c-L(f,3)<<2)>>2]}c:{if((e|0)==-1){break c}c=((e>>>0)%3|0?-1:2)+e|0;if((c|0)<0){break c}d=(c>>>0)/3|0;d=F[(F[F[a>>2]+96>>2]+L(d,12)|0)+(c-L(d,3)<<2)>>2]}c=-1;if((d|0)!=(f|0)){break a}f=-1;d:{b=((b>>>0)%3|0?-1:2)+b|0;if((b|0)>=0){d=(b>>>0)/3|0;d=F[(F[F[a>>2]+96>>2]+L(d,12)|0)+(b-L(d,3)<<2)>>2];if((e|0)==-1){break b}break d}d=-1;if((e|0)!=-1){break d}break b}b=e+1|0;b=(b>>>0)%3|0?b:e-2|0;if((b|0)<0){break b}c=F[F[a>>2]+96>>2];a=(b>>>0)/3|0;f=F[(c+L(a,12)|0)+(b-L(a,3)<<2)>>2]}c=(d|0)==(f|0)?e:-1}return c}function jg(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0;c=rj(72);F[c+4>>2]=0;F[c+8>>2]=0;F[c>>2]=1984;F[c+12>>2]=0;F[c+16>>2]=0;F[c+20>>2]=0;F[c+24>>2]=0;F[c+28>>2]=0;F[c+32>>2]=0;F[c+36>>2]=0;F[c+40>>2]=0;F[c>>2]=2128;F[c+44>>2]=0;F[c+48>>2]=0;F[c+52>>2]=0;F[c+56>>2]=0;F[c+60>>2]=0;F[c+64>>2]=0;F[c+68>>2]=0;h=c;a:{if((b|0)>=0){g=a+8|0;c=F[a+12>>2];e=F[a+8>>2];f=c-e>>2;b:{if((f|0)>(b|0)){break b}d=b+1|0;if(b>>>0>=f>>>0){ac(g,d-f|0);break b}if(d>>>0>=f>>>0){break b}e=(d<<2)+e|0;if((e|0)!=(c|0)){while(1){c=c-4|0;d=F[c>>2];F[c>>2]=0;if(d){ja[F[F[d>>2]+4>>2]](d)}if((c|0)!=(e|0)){continue}break}}F[a+12>>2]=e}a=F[g>>2]+(b<<2)|0;c=F[a>>2];F[a>>2]=h;if(!c){break a}}ja[F[F[c>>2]+4>>2]](c)}return(b^-1)>>>31|0}function Ti(a,b,c){var d=0,e=0,f=0;a:{if(!c){break a}D[a|0]=b;e=a+c|0;D[e-1|0]=b;if(c>>>0<3){break a}D[a+2|0]=b;D[a+1|0]=b;D[e-3|0]=b;D[e-2|0]=b;if(c>>>0<7){break a}D[a+3|0]=b;D[e-4|0]=b;if(c>>>0<9){break a}e=0-a&3;f=e+a|0;d=L(b&255,16843009);F[f>>2]=d;b=c-e&-4;c=b+f|0;F[c-4>>2]=d;if(b>>>0<9){break a}F[f+8>>2]=d;F[f+4>>2]=d;F[c-8>>2]=d;F[c-12>>2]=d;if(b>>>0<25){break a}F[f+24>>2]=d;F[f+20>>2]=d;F[f+16>>2]=d;F[f+12>>2]=d;F[c-16>>2]=d;F[c-20>>2]=d;F[c-24>>2]=d;F[c-28>>2]=d;c=b;b=f&4|24;c=c-b|0;if(c>>>0<32){break a}d=Zj(d,0,1,1);e=ia;b=b+f|0;while(1){F[b+24>>2]=d;F[b+28>>2]=e;F[b+16>>2]=d;F[b+20>>2]=e;F[b+8>>2]=d;F[b+12>>2]=e;F[b>>2]=d;F[b+4>>2]=e;b=b+32|0;c=c-32|0;if(c>>>0>31){continue}break}}return a}function wc(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0;d=F[b+12>>2];h=d;c=F[b+20>>2];e=c;f=F[b+16>>2];g=f+4|0;c=g>>>0<4?c+1|0:c;i=F[b+8>>2];a:{if(i>>>0>>0&(c|0)>=(d|0)|(c|0)>(d|0)){break a}j=F[b>>2];d=j+f|0;d=G[d|0]|G[d+1|0]<<8|(G[d+2|0]<<16|G[d+3|0]<<24);F[b+16>>2]=g;F[b+20>>2]=c;c=e;e=f+8|0;c=e>>>0<8?c+1|0:c;f=e;e=c;if(f>>>0>i>>>0&(c|0)>=(h|0)|(c|0)>(h|0)){break a}c=g+j|0;c=G[c|0]|G[c+1|0]<<8|(G[c+2|0]<<16|G[c+3|0]<<24);F[b+16>>2]=f;F[b+20>>2]=e;if((c|0)<(d|0)){break a}F[a+16>>2]=c;F[a+12>>2]=d;b=(c>>31)-((d>>31)+(c>>>0>>0)|0)|0;c=c-d|0;if(!b&c>>>0>2147483646|b){break a}k=1;b=c+1|0;F[a+20>>2]=b;c=b>>>1|0;F[a+24>>2]=c;F[a+28>>2]=0-c;if(b&1){break a}F[a+24>>2]=c-1}return k|0}function Rf(a){a=a|0;var b=0,c=0,d=0,e=0,f=0,g=0;b=F[a+4>>2];d=F[b>>2];a:{c=F[a+12>>2];c=F[c+56>>2]-F[c+52>>2]|0;e=c>>2;b:{if(e>>>0<=F[b+8>>2]-d>>2>>>0){break b}if((c|0)<0){break a}f=F[b+4>>2];c=rj(c);g=c+(e<<2)|0;e=f-d|0;f=e+c|0;if((e|0)>0){Ri(c,d,e)}F[b+8>>2]=g;F[b+4>>2]=f;F[b>>2]=c;if(!d){break b}oj(d)}e=a+8|0;b=F[a+76>>2];c:{if(b){d=F[b>>2];if((d|0)==F[b+4>>2]){return 1}b=0;while(1){c=Sf(e,F[(b<<2)+d>>2]);if(!c){break c}f=F[a+76>>2];d=F[f>>2];b=b+1|0;if(b>>>0>2]-d>>2>>>0){continue}break}break c}c=1;a=F[F[a+12>>2]+64>>2];a=F[a+4>>2]-F[a>>2]|0;if(a>>>0<12){break c}a=(a>>2>>>0)/3|0;b=0;while(1){c=Sf(e,L(b,3));if(!c){break c}b=b+1|0;if((a|0)!=(b|0)){continue}break}}return c|0}Ia();V()}function Lb(a,b,c){var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0;d=a+16|0;e=F[d>>2];a:{if(!e){break a}f=F[b>>2];b=d;while(1){g=(f|0)>F[e+16>>2];b=g?b:e;e=F[(g?e+4|0:e)>>2];if(e){continue}break}if((b|0)==(d|0)|(f|0)>2]){break a}e=F[b+24>>2];if(!e){break a}f=b+20|0;b=G[c+11|0];d=b<<24>>24<0;g=d?F[c>>2]:c;b=d?F[c+4>>2]:b;while(1){d=G[e+27|0];h=d<<24>>24<0;d=h?F[e+20>>2]:d;k=d>>>0>>0;b:{c:{d:{e:{f:{g:{j=k?d:b;if(j){i=e+16|0;h=h?F[i>>2]:i;i=Zi(g,h,j);if(i){break g}if(b>>>0>=d>>>0){break f}break b}if(b>>>0>=d>>>0){break e}break b}if((i|0)<0){break b}}d=Zi(h,g,j);if(d){break d}}if(k){break c}return rg(f,c)}if((d|0)<0){break c}return rg(f,c)}e=e+4|0}e=F[e>>2];if(e){continue}break}}return rg(a,c)}function Lf(a){a=a|0;var b=0,c=0,d=0,e=0,f=0,g=0;b=F[a+4>>2];d=F[b>>2];a:{c=F[a+12>>2];c=F[c+28>>2]-F[c+24>>2]|0;e=c>>2;b:{if(e>>>0<=F[b+8>>2]-d>>2>>>0){break b}if((c|0)<0){break a}f=F[b+4>>2];c=rj(c);g=c+(e<<2)|0;e=f-d|0;f=e+c|0;if((e|0)>0){Ri(c,d,e)}F[b+8>>2]=g;F[b+4>>2]=f;F[b>>2]=c;if(!d){break b}oj(d)}e=a+8|0;b=F[a+76>>2];c:{if(b){d=F[b>>2];if((d|0)==F[b+4>>2]){return 1}b=0;while(1){c=Mf(e,F[(b<<2)+d>>2]);if(!c){break c}f=F[a+76>>2];d=F[f>>2];b=b+1|0;if(b>>>0>2]-d>>2>>>0){continue}break}break c}c=1;a=F[a+12>>2];a=F[a+4>>2]-F[a>>2]|0;if(a>>>0<12){break c}a=(a>>2>>>0)/3|0;b=0;while(1){c=Mf(e,L(b,3));if(!c){break c}b=b+1|0;if((a|0)!=(b|0)){continue}break}}return c|0}Ia();V()}function Fi(a,b,c){var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0;d=fa-16|0;fa=d;f=F[a+24>>2];k=F[a+28>>2];a:{if((f|0)!=(k|0)){while(1){F[d+8>>2]=0;F[d>>2]=0;F[d+4>>2]=0;a=Hi(F[f>>2],b,d);g=G[d+11|0];h=g<<24>>24;i=3;b:{c:{d:{if(!a){break d}i=0;a=G[c+11|0];e=a<<24>>24;j=(h|0)<0?F[d+4>>2]:g;if((j|0)!=(((e|0)<0?F[c+4>>2]:a)|0)){break d}a=(e|0)<0?F[c>>2]:c;e=(h|0)<0;e:{if(!e){e=d;if(!h){break e}while(1){if(G[e|0]!=G[a|0]){break d}a=a+1|0;e=e+1|0;g=g-1|0;if(g){continue}break}break e}if(!j){break e}if(Zi(e?F[d>>2]:d,a,j)){break c}}l=F[f>>2];i=1}if((h|0)>=0){break b}}oj(F[d>>2])}f:{switch(i|0){case 0:case 3:break f;default:break a}}f=f+4|0;if((k|0)!=(f|0)){continue}break}}l=0}fa=d+16|0;return l} -function Ne(a,b,c){var d=0,e=0,f=0;f=fa-16|0;fa=f;F[a+4>>2]=0;a:{b:{if(!b){break b}d=F[a+8>>2];e=d<<5;c:{if(e>>>0>=b>>>0){F[a+4>>2]=b;break c}F[f+8>>2]=0;F[f>>2]=0;F[f+4>>2]=0;if((b|0)<0){break a}if(e>>>0<=1073741822){d=d<<6;e=b+31&-32;d=d>>>0>e>>>0?d:e}else{d=2147483647}Jc(f,d);d=F[a>>2];F[a>>2]=F[f>>2];F[f>>2]=d;e=F[a+4>>2];F[a+4>>2]=b;F[f+4>>2]=e;e=F[a+8>>2];F[a+8>>2]=F[f+8>>2];F[f+8>>2]=e;if(!d){break c}oj(d)}d=b>>>5|0;e=d<<2;a=F[a>>2];if(G[c|0]){a=Ti(a,255,e);if((b&-32)==(b|0)){break b}a=a+(d<<2)|0;F[a>>2]=F[a>>2]|-1>>>32-(b&31);break b}a=Ti(a,0,e);if((b&-32)==(b|0)){break b}a=a+(d<<2)|0;F[a>>2]=F[a>>2]&(-1>>>32-(b&31)^-1)}fa=f+16|0;return}Ia();V()}function Xb(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0;d=F[b>>2];b=F[b+4>>2];f=F[F[a+8>>2]+40>>2];m=rj((f|0)>=0?f:-1);g=1;h=b-d|0;a:{if((h|0)<=0){break a}b=0;g=0;d=0+F[c+20>>2]|0;i=F[c+16>>2];e=f+i|0;d=e>>>0>>0?d+1|0:d;j=e;e=F[c+12>>2];if(j>>>0>I[c+8>>2]&(e|0)<=(d|0)|(d|0)>(e|0)){break a}k=h>>2;g=(k|0)>1?k:1;while(1){b:{e=Ri(m,i+F[c>>2]|0,f);F[c+16>>2]=j;F[c+20>>2]=d;Ri(F[F[F[a+8>>2]+64>>2]>>2]+b|0,e,f);l=l+1|0;if((g|0)==(l|0)){break b}b=b+f|0;d=n+F[c+20>>2]|0;i=F[c+16>>2];e=f+i|0;d=e>>>0>>0?d+1|0:d;j=e;h=e;e=F[c+12>>2];if((e|0)>=(d|0)&I[c+8>>2]>=h>>>0|(d|0)<(e|0)){continue}}break}g=(l|0)>=(k|0)}oj(m);return g|0}function fc(a,b){a=a|0;b=b|0;a=0;a:{switch(b|0){case 0:a=rj(20);F[a+12>>2]=-1;F[a+16>>2]=0;F[a+4>>2]=0;F[a+8>>2]=0;F[a>>2]=2232;return a|0;case 1:a=rj(24);F[a+12>>2]=-1;F[a+16>>2]=0;F[a+4>>2]=0;F[a+8>>2]=0;F[a>>2]=2232;F[a+20>>2]=0;F[a>>2]=2448;return a|0;case 2:a=rj(48);F[a+12>>2]=-1;F[a+16>>2]=0;F[a+4>>2]=0;F[a+8>>2]=0;F[a>>2]=2232;F[a+20>>2]=0;F[a>>2]=2448;F[a+24>>2]=1832;F[a>>2]=11048;F[a+32>>2]=0;F[a+36>>2]=0;F[a+28>>2]=-1;F[a+40>>2]=0;F[a+44>>2]=0;return a|0;case 3:a=rj(32);F[a+12>>2]=-1;F[a+16>>2]=0;F[a+4>>2]=0;F[a+8>>2]=0;F[a>>2]=2232;F[a+20>>2]=0;F[a>>2]=2448;F[a+24>>2]=1032;F[a>>2]=7028;F[a+28>>2]=-1;break;default:break a}}return a|0}function Qi(a,b){var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0;b=F[b>>2];h=F[b+8>>2];i=F[b+4>>2];j=F[b>>2];d=F[a>>2];b=F[d+4>>2];a=F[d+8>>2];if(b>>>0>>0){F[b+8>>2]=h;F[b+4>>2]=i;F[b>>2]=j;F[d+4>>2]=b+12;return}a:{e=F[d>>2];g=(b-e|0)/12|0;c=g+1|0;if(c>>>0<357913942){f=(a-e|0)/12|0;a=f<<1;c=f>>>0<178956970?a>>>0>c>>>0?a:c:357913941;if(c){if(c>>>0>=357913942){break a}f=rj(L(c,12))}else{f=0}a=f+L(g,12)|0;F[a+8>>2]=h;F[a+4>>2]=i;F[a>>2]=j;g=a+12|0;if((b|0)!=(e|0)){while(1){a=a-12|0;b=b-12|0;F[a>>2]=F[b>>2];F[a+4>>2]=F[b+4>>2];F[a+8>>2]=F[b+8>>2];if((b|0)!=(e|0)){continue}break}}F[d+8>>2]=f+L(c,12);F[d+4>>2]=g;F[d>>2]=a;if(e){oj(e)}return}Ia();V()}Wa();V()}function Ch(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,f=0,g=0;e=fa-32|0;fa=e;a:{b:{f=dj(c);if(f>>>0<4294967280){c:{d:{if(f>>>0>=11){g=f+16&-16;a=rj(g);F[e+24>>2]=g|-2147483648;F[e+16>>2]=a;F[e+20>>2]=f;break d}D[e+27|0]=f;a=e+16|0;if(!f){break c}}Ri(a,c,f)}D[a+f|0]=0;c=dj(d);if(c>>>0>=4294967280){break b}e:{f:{if(c>>>0>=11){f=c+16&-16;a=rj(f);F[e+8>>2]=f|-2147483648;F[e>>2]=a;F[e+4>>2]=c;break f}D[e+11|0]=c;a=e;if(!c){break e}}Ri(a,d,c)}D[a+c|0]=0;c=F[b+4>>2];a=-1;g:{if(!c){break g}c=Fi(c,e+16|0,e);a=-1;if(!c){break g}a=Ki(b,F[c+24>>2])}if(D[e+11|0]<0){oj(F[e>>2])}if(D[e+27|0]<0){oj(F[e+16>>2])}fa=e+32|0;break a}bg();V()}bg();V()}return a|0}function Ma(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0;F[b>>2]=1;f=b+8|0;c=F[b+8>>2];d=F[b+12>>2]-c|0;if(d>>>0<=4294967291){mg(f,d+4|0);c=F[f>>2]}c=c+d|0;d=F[a+4>>2];D[c|0]=d;D[c+1|0]=d>>>8;D[c+2|0]=d>>>16;D[c+3|0]=d>>>24;c=F[a+8>>2];if((c|0)!=F[a+12>>2]){d=0;while(1){g=(d<<2)+c|0;c=F[b+8>>2];e=F[b+12>>2]-c|0;if(e>>>0<=4294967291){mg(f,e+4|0);c=F[f>>2]}c=c+e|0;e=F[g>>2];D[c|0]=e;D[c+1|0]=e>>>8;D[c+2|0]=e>>>16;D[c+3|0]=e>>>24;d=d+1|0;c=F[a+8>>2];if(d>>>0>2]-c>>2>>>0){continue}break}}c=F[b+12>>2];b=F[b+8>>2];c=c-b|0;if(c>>>0<=4294967291){mg(f,c+4|0);b=F[f>>2]}b=b+c|0;a=F[a+20>>2];D[b|0]=a;D[b+1|0]=a>>>8;D[b+2|0]=a>>>16;D[b+3|0]=a>>>24}function Nd(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0;f=fa-32|0;fa=f;g=(e&1073741823)!=(e|0)?-1:e<<2;l=Ti(rj(g),0,g);g=l;i=F[g>>2];g=F[g+4>>2];k=F[b+4>>2];F[f+24>>2]=F[b>>2];F[f+28>>2]=k;F[f+8>>2]=i;F[f+12>>2]=g;i=a+8|0;Id(f+16|0,i,f+8|0,f+24|0);F[c>>2]=F[f+16>>2];F[c+4>>2]=F[f+20>>2];if((d|0)>(e|0)){k=0-e<<2;a=e;while(1){h=a<<2;g=h+c|0;j=g+k|0;m=F[j>>2];j=F[j+4>>2];h=b+h|0;n=F[h+4>>2];F[f+24>>2]=F[h>>2];F[f+28>>2]=n;F[f+8>>2]=m;F[f+12>>2]=j;Id(f+16|0,i,f+8|0,f+24|0);F[g>>2]=F[f+16>>2];F[g+4>>2]=F[f+20>>2];a=a+e|0;if((d|0)>(a|0)){continue}break}}oj(l);fa=f+32|0;return 1}function Xd(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0;f=fa-32|0;fa=f;h=(e&1073741823)!=(e|0)?-1:e<<2;h=Ti(rj(h),0,h);g=F[b>>2];i=F[b+4>>2];k=F[h+4>>2];F[f+16>>2]=F[h>>2];F[f+20>>2]=k;F[f+8>>2]=g;F[f+12>>2]=i;i=a+8|0;Sd(f+24|0,i,f+16|0,f+8|0);F[c>>2]=F[f+24>>2];F[c+4>>2]=F[f+28>>2];if((d|0)>(e|0)){k=0-e<<2;a=e;while(1){g=a<<2;j=g+b|0;m=F[j>>2];j=F[j+4>>2];g=c+g|0;l=g+k|0;n=F[l+4>>2];F[f+16>>2]=F[l>>2];F[f+20>>2]=n;F[f+8>>2]=m;F[f+12>>2]=j;Sd(f+24|0,i,f+16|0,f+8|0);F[g>>2]=F[f+24>>2];F[g+4>>2]=F[f+28>>2];a=a+e|0;if((d|0)>(a|0)){continue}break}}oj(h);fa=f+32|0;return 1}function cb(a,b,c){var d=0,e=0,f=0,g=0,h=0;f=c-b|0;g=f>>2;d=F[a+8>>2];e=F[a>>2];if(g>>>0<=d-e>>2>>>0){d=F[a+4>>2];f=d-e|0;h=f>>2;f=g>>>0>h>>>0?b+f|0:c;if((f|0)!=(b|0)){while(1){F[e>>2]=F[b>>2];e=e+4|0;b=b+4|0;if((f|0)!=(b|0)){continue}break}}if(g>>>0>h>>>0){b=c-f|0;if((b|0)>0){d=Ri(d,f,b)+b|0}F[a+4>>2]=d;return}F[a+4>>2]=e;return}if(e){F[a+4>>2]=e;oj(e);F[a+8>>2]=0;F[a>>2]=0;F[a+4>>2]=0;d=0}a:{if((f|0)<0){break a}e=d>>1;d=d>>>0<2147483644?e>>>0>g>>>0?e:g:1073741823;if(d>>>0>=1073741824){break a}e=d<<2;d=rj(e);F[a>>2]=d;F[a+4>>2]=d;F[a+8>>2]=d+e;if((b|0)!=(c|0)){d=Ri(d,b,f)+f|0}F[a+4>>2]=d;return}Ia();V()}function Jh(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0;a:{if(I[b+80>>2]>65535){break a}a=F[b+100>>2];b=F[b+96>>2];e=(a-b|0)/12|0;f=L(e,6);g=(f|0)==(c|0);if((a|0)==(b|0)|(c|0)!=(f|0)){break a}g=1;c=e>>>0>1?e:1;i=c&1;a=0;if(e>>>0>=2){j=c&-2;c=0;while(1){f=L(a,6);h=f+d|0;e=b+L(a,12)|0;E[h>>1]=F[e>>2];E[(f|2)+d>>1]=F[e+4>>2];E[h+4>>1]=F[e+8>>2];f=a|1;e=L(f,6)+d|0;f=b+L(f,12)|0;E[e>>1]=F[f>>2];E[e+2>>1]=F[f+4>>2];E[e+4>>1]=F[f+8>>2];a=a+2|0;c=c+2|0;if((j|0)!=(c|0)){continue}break}}if(!i){break a}c=L(a,6)+d|0;a=b+L(a,12)|0;E[c>>1]=F[a>>2];E[c+2>>1]=F[a+4>>2];E[c+4>>1]=F[a+8>>2]}return g|0}function Jd(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0;e=F[b+12>>2];c=F[b+20>>2];f=c;g=F[b+16>>2];d=g+4|0;c=d>>>0<4?c+1|0:c;h=F[b+8>>2];i=d;a:{if(h>>>0>>0&(c|0)>=(e|0)|(c|0)>(e|0)){break a}d=g+F[b>>2]|0;d=G[d|0]|G[d+1|0]<<8|(G[d+2|0]<<16|G[d+3|0]<<24);F[b+16>>2]=i;F[b+20>>2]=c;if(H[b+38>>1]<=513){c=f;f=g+8|0;c=f>>>0<8?c+1|0:c;if(f>>>0>h>>>0&(c|0)>=(e|0)|(c|0)>(e|0)){break a}F[b+16>>2]=f;F[b+20>>2]=c}if(!(d&1)){break a}b=O(d)^31;c=b-30|0;if(c>>>0>=4294967267){F[a+8>>2]=b+1;e=-2<>2]=b;F[a+12>>2]=e^-1;F[a+24>>2]=(b|0)/2;J[a+20>>2]=M(2)/M(b|0)}j=c>>>0>4294967266}return j|0}function Wb(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0;f=1;a:{if((ja[F[F[b>>2]+20>>2]](b)|0)<=0){break a}while(1){f=0;c=Ji(F[F[a+4>>2]+4>>2],ja[F[F[b>>2]+24>>2]](b,g)|0);if((c|0)==-1){break a}e=F[a+4>>2];b:{if(G[e+36|0]<=1){if(ja[F[F[b>>2]+28>>2]](b,F[F[F[e+4>>2]+8>>2]+(c<<2)>>2])|0){break b}break a}d=0;c:{if((c|0)<0){break c}h=F[e+4>>2];if(F[h+12>>2]-F[h+8>>2]>>2<=(c|0)){break c}d=F[F[e+8>>2]+(F[F[e+20>>2]+(c<<2)>>2]<<2)>>2];d=ja[F[F[d>>2]+32>>2]](d,c)|0}if(!d){break a}if(!(ja[F[F[b>>2]+28>>2]](b,d)|0)){break a}}f=1;g=g+1|0;if((ja[F[F[b>>2]+20>>2]](b)|0)>(g|0)){continue}break}}return f|0}function sh(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0,g=0;a=fa-32|0;fa=a;F[a+24>>2]=0;F[a+28>>2]=0;a:{d=dj(c);if(d>>>0<4294967280){b:{c:{if(d>>>0>=11){f=d+16&-16;e=rj(f);F[a+16>>2]=f|-2147483648;F[a+8>>2]=e;F[a+12>>2]=d;break c}D[a+19|0]=d;e=a+8|0;if(!d){break b}}Ri(e,c,d)}D[d+e|0]=0;c=b+4|0;b=qg(b,a+8|0);d:{if((c|0)==(b|0)){break d}c=F[b+32>>2];b=F[b+28>>2];if((c-b|0)!=8){break d}c=G[b+4|0]|G[b+5|0]<<8|(G[b+6|0]<<16|G[b+7|0]<<24);F[a+24>>2]=G[b|0]|G[b+1|0]<<8|(G[b+2|0]<<16|G[b+3|0]<<24);F[a+28>>2]=c}g=K[a+24>>3];if(D[a+19|0]<0){oj(F[a+8>>2])}fa=a+32|0;break a}bg();V()}return+g}function bf(a){var b=0,c=0,d=0,e=0,f=0;f=1;c=F[a+140>>2];a:{if((c|0)<=0){break a}b=c<<4;d=rj((c|0)!=(c&268435455)?-1:b|4);F[d>>2]=c;d=d+4|0;c=d+b|0;b=d;while(1){F[b>>2]=0;F[b+4>>2]=0;D[b+5|0]=0;D[b+6|0]=0;D[b+7|0]=0;D[b+8|0]=0;D[b+9|0]=0;D[b+10|0]=0;D[b+11|0]=0;D[b+12|0]=0;b=b+16|0;if((c|0)!=(b|0)){continue}break}e=F[a+136>>2];F[a+136>>2]=d;if(e){c=e-4|0;d=F[c>>2];if(d){b=(d<<4)+e|0;while(1){b=b-16|0;if((e|0)!=(b|0)){continue}break}}oj(c)}b=0;if(F[a+140>>2]<=0){break a}while(1){f=ge(F[a+136>>2]+(b<<4)|0,a);if(!f){break a}b=b+1|0;if((b|0)>2]){continue}break}}return f}function ab(a,b){var c=0,d=0,e=0,f=0,g=0;a:{if(F[a+64>>2]){break a}c=rj(32);F[c+16>>2]=0;F[c+20>>2]=0;F[c+8>>2]=0;F[c>>2]=0;F[c+4>>2]=0;F[c+24>>2]=0;F[c+28>>2]=0;d=F[a+64>>2];F[a+64>>2]=c;if(!d){break a}c=F[d>>2];if(c){F[d+4>>2]=c;oj(c)}oj(d)}e=F[a+64>>2];c=F[a+28>>2]-1|0;if(c>>>0<=10){d=F[(c<<2)+13584>>2]}else{d=-1}c=L(d,D[a+24|0]);d=c;g=c>>31;e=lg(e,0,Zj(c,g,b,0),ia);if(e){c=F[a+64>>2];F[a>>2]=c;f=F[c+20>>2];F[a+8>>2]=F[c+16>>2];F[a+12>>2]=f;f=F[c+24>>2];c=F[c+28>>2];F[a+48>>2]=0;F[a+52>>2]=0;F[a+40>>2]=d;F[a+44>>2]=g;F[a+16>>2]=f;F[a+20>>2]=c;F[a+80>>2]=b}return e}function Td(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0;f=F[b+12>>2];c=F[b+20>>2];e=c;g=F[b+16>>2];d=g+4|0;c=d>>>0<4?c+1|0:c;h=F[b+8>>2];i=d;a:{if(h>>>0>>0&(c|0)>=(f|0)|(c|0)>(f|0)){break a}d=g+F[b>>2]|0;d=G[d|0]|G[d+1|0]<<8|(G[d+2|0]<<16|G[d+3|0]<<24);F[b+16>>2]=i;F[b+20>>2]=c;c=e;e=g+8|0;c=e>>>0<8?c+1|0:c;if(e>>>0>h>>>0&(c|0)>=(f|0)|(c|0)>(f|0)){break a}F[b+16>>2]=e;F[b+20>>2]=c;if(!(d&1)){break a}b=O(d)^31;if(b-30>>>0<4294967267){break a}j=1;F[a+8>>2]=b+1;c=-2<>2]=b;F[a+12>>2]=c^-1;F[a+24>>2]=(b|0)/2;J[a+20>>2]=M(2)/M(b|0)}return j|0}function qg(a,b){var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0;h=a+4|0;a=F[a+4>>2];a:{b:{if(!a){break b}d=G[b+11|0];c=d<<24>>24<0;f=c?F[b>>2]:b;d=c?F[b+4>>2]:d;b=h;while(1){e=G[a+27|0];c=e<<24>>24<0;e=c?F[a+20>>2]:e;g=e>>>0>d>>>0;i=g?d:e;c:{if(i){j=a+16|0;c=Zi(c?F[j>>2]:j,f,i);if(c){break c}}c=d>>>0>e>>>0?-1:g}c=(c|0)<0;b=c?b:a;a=F[(c?a+4|0:a)>>2];if(a){continue}break}if((b|0)==(h|0)){break b}c=G[b+27|0];a=c<<24>>24<0;d:{c=a?F[b+20>>2]:c;e=c>>>0>>0?c:d;if(e){g=f;f=b+16|0;a=Zi(g,a?F[f>>2]:f,e);if(a){break d}}if(c>>>0>d>>>0){break b}break a}if((a|0)>=0){break a}}b=h}return b}function $a(a,b){var c=0;c=F[b+4>>2];F[a>>2]=F[b>>2];F[a+4>>2]=c;c=F[b+60>>2];F[a+56>>2]=F[b+56>>2];F[a+60>>2]=c;c=F[b+52>>2];F[a+48>>2]=F[b+48>>2];F[a+52>>2]=c;c=F[b+44>>2];F[a+40>>2]=F[b+40>>2];F[a+44>>2]=c;c=F[b+36>>2];F[a+32>>2]=F[b+32>>2];F[a+36>>2]=c;c=F[b+28>>2];F[a+24>>2]=F[b+24>>2];F[a+28>>2]=c;c=F[b+20>>2];F[a+16>>2]=F[b+16>>2];F[a+20>>2]=c;c=F[b+12>>2];F[a+8>>2]=F[b+8>>2];F[a+12>>2]=c;F[a+88>>2]=0;F[a+64>>2]=0;F[a+68>>2]=0;F[a+72>>2]=0;F[a+76>>2]=0;D[a+77|0]=0;D[a+78|0]=0;D[a+79|0]=0;D[a+80|0]=0;D[a+81|0]=0;D[a+82|0]=0;D[a+83|0]=0;D[a+84|0]=0;return a}function Pa(a,b,c){var d=0,e=0,f=0,g=0,h=0;g=c-b|0;f=g>>2;e=F[a+8>>2];d=F[a>>2];if(f>>>0<=e-d>>2>>>0){e=F[a+4>>2]-d|0;g=e>>2;e=g>>>0>>0?b+e|0:c;h=e-b|0;if((b|0)!=(e|0)){Si(d,b,h)}if(g>>>0>>0){b=F[a+4>>2];c=c-e|0;if((c|0)>0){b=Ri(b,e,c)+c|0}F[a+4>>2]=b;return}F[a+4>>2]=d+h;return}if(d){F[a+4>>2]=d;oj(d);F[a+8>>2]=0;F[a>>2]=0;F[a+4>>2]=0;e=0}a:{if((g|0)<0){break a}d=e>>1;d=e>>>0<2147483644?d>>>0>f>>>0?d:f:1073741823;if(d>>>0>=1073741824){break a}f=d<<2;d=rj(f);F[a>>2]=d;F[a+4>>2]=d;F[a+8>>2]=d+f;if((b|0)!=(c|0)){d=Ri(d,b,g)+g|0}F[a+4>>2]=d;return}Ia();V()}function Kh(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0;a=F[b+100>>2];b=F[b+96>>2];h=a-b|0;a:{if((h|0)!=(c|0)|(a|0)==(b|0)){break a}g=(c|0)/12|0;e=g>>>0>1?g:1;j=e&1;a=0;if(g>>>0>=2){k=e&-2;g=0;while(1){e=L(a,12);i=e+d|0;f=b+e|0;F[i>>2]=F[f>>2];F[(e|4)+d>>2]=F[f+4>>2];F[i+8>>2]=F[f+8>>2];f=L(a|1,12);e=f+d|0;f=b+f|0;F[e>>2]=F[f>>2];F[e+4>>2]=F[f+4>>2];F[e+8>>2]=F[f+8>>2];a=a+2|0;g=g+2|0;if((k|0)!=(g|0)){continue}break}}if(!j){break a}e=d;d=L(a,12);a=e+d|0;b=b+d|0;F[a>>2]=F[b>>2];F[a+4>>2]=F[b+4>>2];F[a+8>>2]=F[b+8>>2]}return(c|0)==(h|0)|0}function Fb(a,b,c){var d=0,e=0,f=0,g=0,h=0,i=0,j=0;F[a+8>>2]=0;F[a>>2]=0;F[a+4>>2]=0;a:{b:{if(b){if(b>>>0>=357913942){break b}d=L(b,12);b=rj(d);F[a>>2]=b;F[a+4>>2]=b;e=b+d|0;F[a+8>>2]=e;f=F[c>>2];c=F[c+4>>2];c:{if((f|0)==(c|0)){c=b;b=d-12|0;Ti(c,0,(b-((b>>>0)%12|0)|0)+12|0);break c}c=c-f|0;if((c|0)<0){break a}g=c>>2<<2;h=c>>>2<<2;while(1){F[b+8>>2]=0;F[b>>2]=0;F[b+4>>2]=0;d=rj(c);F[b>>2]=d;F[b+4>>2]=d;F[b+8>>2]=d+g;i=b,j=Ri(d,f,c)+h|0,F[i+4>>2]=j;b=b+12|0;if((e|0)!=(b|0)){continue}break}}F[a+4>>2]=e}return}Ia();V()}F[b+8>>2]=0;F[b>>2]=0;F[b+4>>2]=0;Ia();V()}function Hj(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;if(Aj(a,F[b+8>>2],e)){if(!(F[b+28>>2]==1|F[b+4>>2]!=(c|0))){F[b+28>>2]=d}return}a:{if(Aj(a,F[b>>2],e)){if(!(F[b+16>>2]!=(c|0)&F[b+20>>2]!=(c|0))){if((d|0)!=1){break a}F[b+32>>2]=1;return}F[b+32>>2]=d;b:{if(F[b+44>>2]==4){break b}E[b+52>>1]=0;a=F[a+8>>2];ja[F[F[a>>2]+20>>2]](a,b,c,c,1,e);if(G[b+53|0]){F[b+44>>2]=3;if(!G[b+52|0]){break b}break a}F[b+44>>2]=4}F[b+20>>2]=c;F[b+40>>2]=F[b+40>>2]+1;if(F[b+36>>2]!=1|F[b+24>>2]!=2){break a}D[b+54|0]=1;return}a=F[a+8>>2];ja[F[F[a>>2]+24>>2]](a,b,c,d,e)}}function og(a,b,c){var d=0,e=0,f=0,g=0;a:{b:{if(!b){break b}if(H[a+38>>1]<=513){e=F[a+12>>2];b=F[a+20>>2];f=F[a+16>>2];g=f+8|0;b=g>>>0<8?b+1|0:b;if(g>>>0>I[a+8>>2]&(b|0)>=(e|0)|(b|0)>(e|0)){break a}b=f+F[a>>2]|0;d=G[b+4|0]|G[b+5|0]<<8|(G[b+6|0]<<16|G[b+7|0]<<24);F[c>>2]=G[b|0]|G[b+1|0]<<8|(G[b+2|0]<<16|G[b+3|0]<<24);F[c+4>>2]=d;b=F[a+20>>2];c=F[a+16>>2]+8|0;b=c>>>0<8?b+1|0:b;F[a+16>>2]=c;F[a+20>>2]=b;break b}if(!pg(1,c,a)){break a}}D[a+36|0]=1;F[a+32>>2]=0;b=F[a+16>>2];c=b+F[a>>2]|0;F[a+24>>2]=c;d=a;a=F[a+8>>2];F[d+28>>2]=c+(a-b|0);d=1}return d}function Wf(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0;f=rj(64);c=rj(12);F[c+8>>2]=F[F[a+4>>2]+80>>2];F[c>>2]=13216;F[c+4>>2]=0;f=_b(f,c);a:{b:{if((b|0)<0){c=f;break b}h=a+8|0;c=F[a+12>>2];e=F[a+8>>2];g=c-e>>2;c:{if((g|0)>(b|0)){break c}d=b+1|0;if(b>>>0>=g>>>0){ac(h,d-g|0);break c}if(d>>>0>=g>>>0){break c}e=e+(d<<2)|0;if((e|0)!=(c|0)){while(1){c=c-4|0;d=F[c>>2];F[c>>2]=0;if(d){ja[F[F[d>>2]+4>>2]](d)}if((c|0)!=(e|0)){continue}break}}F[a+12>>2]=e}a=F[h>>2]+(b<<2)|0;c=F[a>>2];F[a>>2]=f;if(!c){break a}}ja[F[F[c>>2]+4>>2]](c)}return(b^-1)>>>31|0}function _i(a,b){var c=0,d=0,e=0,f=0;d=fa-16|0;fa=d;F[d+12>>2]=b;c=fa-208|0;fa=c;F[c+204>>2]=b;b=c+160|0;Ti(b,0,40);F[c+200>>2]=F[c+204>>2];a:{if((ej(0,a,c+200|0,c+80|0,b)|0)<0){break a}f=F[3943]>=0;b=F[3924];if(F[3942]<=0){F[3924]=b&-33}b:{c:{d:{if(!F[3936]){F[3936]=80;F[3931]=0;F[3928]=0;F[3929]=0;e=F[3935];F[3935]=c;break d}if(F[3928]){break c}}if(Wi(15696)){break b}}ej(15696,a,c+200|0,c+80|0,c+160|0)}if(e){ja[F[3933]](15696,0,0)|0;F[3936]=0;F[3935]=e;F[3931]=0;F[3928]=0;F[3929]=0}F[3924]=F[3924]|b&32;if(!f){break a}}fa=c+208|0;fa=d+16|0}function ri(a,b,c){var d=0,e=0,f=0,g=0;a:{if((b|c)>=0){b:{if(b>>>0>1431655765){break b}d=L(b,3);si(a,d,13648);si(a+12|0,d,13652);d=F[a+24>>2];c:{if(F[a+32>>2]-d>>2>>>0>=c>>>0){break c}if(c>>>0>=1073741824){break a}e=F[a+28>>2];f=c<<2;c=rj(f);f=c+f|0;e=e-d|0;g=e+c|0;if((e|0)>0){Ri(c,d,e)}F[a+32>>2]=f;F[a+28>>2]=g;F[a+24>>2]=c;if(!d){break c}oj(d)}F[a+80>>2]=0;F[a+84>>2]=0;c=F[a+76>>2];F[a+76>>2]=0;if(c){oj(c)}F[a+68>>2]=0;F[a+72>>2]=0;c=a- -64|0;a=F[c>>2];F[c>>2]=0;if(!a){break b}oj(a)}a=b>>>0<1431655766}else{a=0}return a}Ia();V()}function bc(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0;c=F[a+60>>2];a:{if(!c){break a}F[c+4>>2]=a+48;if(!(ja[F[F[c>>2]+12>>2]](c)|0)){break a}b:{c=ja[F[F[a>>2]+24>>2]](a)|0;if((c|0)<=0){break b}while(1){c:{f=F[(ja[F[F[a>>2]+28>>2]](a)|0)+4>>2];g=ja[F[F[a>>2]+20>>2]](a,d)|0;e=F[a+60>>2];if(!(ja[F[F[e>>2]+8>>2]](e,F[F[f+8>>2]+(g<<2)>>2])|0)){break c}d=d+1|0;if((c|0)!=(d|0)){continue}break b}break}return 0}d=0;if(!(ja[F[F[a>>2]+36>>2]](a,b)|0)){break a}if(!(ja[F[F[a>>2]+40>>2]](a,b)|0)){break a}d=ja[F[F[a>>2]+44>>2]](a)|0}return d|0}function Vf(a,b){var c=0,d=0,e=0,f=0,g=0,h=0;c=F[a+4>>2];if((c|0)!=F[a+8>>2]){d=F[b+4>>2];F[c>>2]=F[b>>2];F[c+4>>2]=d;F[c+8>>2]=F[b+8>>2];F[a+4>>2]=c+12;return}a:{f=F[a>>2];g=c-f|0;d=(g|0)/12|0;c=d+1|0;if(c>>>0<357913942){e=d<<1;e=d>>>0<178956970?c>>>0>>0?e:c:357913941;if(e){if(e>>>0>=357913942){break a}c=rj(L(e,12))}else{c=0}d=c+L(d,12)|0;h=F[b+4>>2];F[d>>2]=F[b>>2];F[d+4>>2]=h;F[d+8>>2]=F[b+8>>2];b=d+L((g|0)/-12|0,12)|0;if((g|0)>0){Ri(b,f,g)}F[a+8>>2]=c+L(e,12);F[a+4>>2]=d+12;F[a>>2]=b;if(f){oj(f)}return}Ia();V()}Wa();V()}function tj(a,b,c,d,e,f,g){var h=0,i=0,j=0;h=fa-16|0;fa=h;if((b^-1)-17>>>0>=c>>>0){if(G[a+11|0]>>>7|0){j=F[a>>2]}else{j=a}a:{if(b>>>0<2147483623){F[h+8>>2]=b<<1;F[h+12>>2]=b+c;c=fa-16|0;fa=c;fa=c+16|0;c=h+8|0;i=h+12|0;c=F[(I[i>>2]>2]?c:i)>>2];if(c>>>0>=11){i=c+16&-16;c=i-1|0;c=(c|0)==11?i:c}else{c=10}break a}c=-18}i=c+1|0;c=rj(i);if(f){qj(c,g,f)}g=d-e|0;if((d|0)!=(e|0)){qj(c+f|0,e+j|0,g)}if((b|0)!=10){oj(j)}F[a>>2]=c;F[a+8>>2]=i|-2147483648;b=a;a=f+g|0;F[b+4>>2]=a;D[h+7|0]=0;D[a+c|0]=G[h+7|0];fa=h+16|0;return}bg();V()}function Ie(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0;c=F[a+216>>2];if((c|0)!=F[a+220>>2]){while(1){a:{c=F[L(e,144)+c>>2];if((c|0)<0){break a}d=F[a+4>>2];f=F[d+8>>2];if((c|0)>=F[d+12>>2]-f>>2){break a}d=0;c=F[(c<<2)+f>>2];if((ja[F[F[c>>2]+24>>2]](c)|0)<=0){break a}while(1){if((ja[F[F[c>>2]+20>>2]](c,d)|0)!=(b|0)){d=d+1|0;if((ja[F[F[c>>2]+24>>2]](c)|0)>(d|0)){continue}break a}break}a=F[a+216>>2]+L(e,144)|0;return(G[a+100|0]?a+4|0:0)|0}e=e+1|0;c=F[a+216>>2];if(e>>>0<(F[a+220>>2]-c|0)/144>>>0){continue}break}}return 0}function tb(a){var b=0,c=0,d=0,e=0;c=F[a+132>>2];if(c){d=c;b=F[a+136>>2];if((c|0)!=(b|0)){while(1){d=b-12|0;e=F[d>>2];if(e){F[b-8>>2]=e;oj(e)}b=d;if((c|0)!=(b|0)){continue}break}d=F[a+132>>2]}F[a+136>>2]=c;oj(d)}c=F[a+120>>2];if(c){d=c;b=F[a+124>>2];if((c|0)!=(b|0)){while(1){d=b-12|0;e=F[d>>2];if(e){F[b-8>>2]=e;oj(e)}b=d;if((c|0)!=(b|0)){continue}break}d=F[a+120>>2]}F[a+124>>2]=c;oj(d)}b=F[a+108>>2];if(b){F[a+112>>2]=b;oj(b)}b=F[a+96>>2];if(b){F[a+100>>2]=b;oj(b)}ee(a+76|0);ee(a+56|0);ee(a+36|0);ee(a+16|0)}function Mb(a){a=a|0;var b=0,c=0,d=0;F[a>>2]=2128;d=F[a+60>>2];if(d){b=d;c=F[a- -64>>2];if((b|0)!=(c|0)){while(1){c=c-4|0;b=F[c>>2];F[c>>2]=0;if(b){qb(b)}if((c|0)!=(d|0)){continue}break}b=F[a+60>>2]}F[a+64>>2]=d;oj(b)}b=F[a+48>>2];if(b){F[a+52>>2]=b;oj(b)}d=F[a+36>>2];if(d){b=d;c=F[a+40>>2];if((b|0)!=(c|0)){while(1){c=c-24|0;ja[F[F[c>>2]>>2]](c)|0;if((c|0)!=(d|0)){continue}break}b=F[a+36>>2]}F[a+40>>2]=d;oj(b)}F[a>>2]=1984;b=F[a+16>>2];if(b){F[a+20>>2]=b;oj(b)}b=F[a+4>>2];if(b){F[a+8>>2]=b;oj(b)}return a|0}function Vb(a){var b=0,c=0,d=0,e=0,f=0;d=F[a+8>>2];a:{if(G[d+84|0]){break a}b=F[a+16>>2];if(!b|!G[b+84|0]){break a}c=F[d+72>>2];e=F[d+68>>2];D[b+84|0]=0;c=c-e>>2;f=F[b+68>>2];e=F[b+72>>2]-f>>2;b:{if(c>>>0>e>>>0){gb(b+68|0,c-e|0,2316);d=F[a+8>>2];break b}if(c>>>0>=e>>>0){break b}F[b+72>>2]=f+(c<<2)}if(G[d+84|0]){break a}c=F[d+68>>2];if((c|0)==F[d+72>>2]){break a}e=F[F[a+16>>2]+68>>2];b=0;while(1){f=b<<2;F[f+e>>2]=F[c+f>>2];b=b+1|0;c=F[d+68>>2];if(b>>>0>2]-c>>2>>>0){continue}break}}return F[a+16>>2]}function zh(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,f=0,g=0;e=fa+-64|0;fa=e;f=ng(e+8|0);F[f+16>>2]=0;F[f+20>>2]=0;F[f>>2]=b;F[f+8>>2]=c;F[f+12>>2]=0;b=e+48|0;le(b,a,f,d);F[a+24>>2]=F[e+48>>2];d=a+24|0;a:{if((d|0)==(b|0)){break a}b=e+48|4;f=G[e+63|0];c=f<<24>>24;a=a+28|0;if(D[a+11|0]>=0){if((c|0)>=0){c=F[b+4>>2];F[a>>2]=F[b>>2];F[a+4>>2]=c;F[a+8>>2]=F[b+8>>2];break a}wj(a,F[e+52>>2],F[e+56>>2]);break a}g=a;a=(c|0)<0;vj(g,a?F[e+52>>2]:b,a?F[e+56>>2]:f)}if(D[e+63|0]<0){oj(F[e+52>>2])}fa=e- -64|0;return d|0}function yh(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,f=0,g=0;e=fa+-64|0;fa=e;f=ng(e+8|0);F[f+16>>2]=0;F[f+20>>2]=0;F[f>>2]=b;F[f+8>>2]=c;F[f+12>>2]=0;b=e+48|0;ke(b,a,f,d);F[a+24>>2]=F[e+48>>2];d=a+24|0;a:{if((d|0)==(b|0)){break a}b=e+48|4;f=G[e+63|0];c=f<<24>>24;a=a+28|0;if(D[a+11|0]>=0){if((c|0)>=0){c=F[b+4>>2];F[a>>2]=F[b>>2];F[a+4>>2]=c;F[a+8>>2]=F[b+8>>2];break a}wj(a,F[e+52>>2],F[e+56>>2]);break a}g=a;a=(c|0)<0;vj(g,a?F[e+52>>2]:b,a?F[e+56>>2]:f)}if(D[e+63|0]<0){oj(F[e+52>>2])}fa=e- -64|0;return d|0}function Je(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0;c=F[a+216>>2];if((c|0)!=F[a+220>>2]){while(1){a:{c=F[L(e,144)+c>>2];if((c|0)<0){break a}d=F[a+4>>2];f=F[d+8>>2];if((c|0)>=F[d+12>>2]-f>>2){break a}d=0;c=F[(c<<2)+f>>2];if((ja[F[F[c>>2]+24>>2]](c)|0)<=0){break a}while(1){if((ja[F[F[c>>2]+20>>2]](c,d)|0)!=(b|0)){d=d+1|0;if((ja[F[F[c>>2]+24>>2]](c)|0)>(d|0)){continue}break a}break}return(F[a+216>>2]+L(e,144)|0)+104|0}e=e+1|0;c=F[a+216>>2];if(e>>>0<(F[a+220>>2]-c|0)/144>>>0){continue}break}}return a+184|0}function Bb(a){var b=0,c=0,d=0,e=0;c=F[a+640>>2];if(c){d=c;b=F[a+644>>2];if((c|0)!=(b|0)){while(1){d=b-12|0;e=F[d>>2];if(e){F[b-8>>2]=e;oj(e)}b=d;if((c|0)!=(b|0)){continue}break}d=F[a+640>>2]}F[a+644>>2]=c;oj(d)}c=F[a+628>>2];if(c){d=c;b=F[a+632>>2];if((c|0)!=(b|0)){while(1){d=b-12|0;e=F[d>>2];if(e){F[b-8>>2]=e;oj(e)}b=d;if((c|0)!=(b|0)){continue}break}d=F[a+628>>2]}F[a+632>>2]=c;oj(d)}b=F[a+616>>2];if(b){F[a+620>>2]=b;oj(b)}b=F[a+604>>2];if(b){F[a+608>>2]=b;oj(b)}ee(a+584|0);ee(a+564|0);ee(a+544|0)}function mg(a,b){var c=0,d=0,e=0,f=0,g=0,h=0,i=0;a:{c=F[a+4>>2];d=F[a>>2];f=c-d|0;b:{if(f>>>0>>0){g=b-f|0;e=F[a+8>>2];if(g>>>0<=e-c>>>0){h=a,i=Ti(c,0,g)+g|0,F[h+4>>2]=i;break b}if((b|0)<0){break a}c=e-d|0;e=c<<1;e=c>>>0<1073741823?b>>>0>>0?e:b:2147483647;c=rj(e);Ti(c+f|0,0,g);if((f|0)>0){Ri(c,d,f)}F[a+8>>2]=c+e;F[a+4>>2]=b+c;F[a>>2]=c;if(!d){break b}oj(d);break b}if(b>>>0>=f>>>0){break b}F[a+4>>2]=b+d}b=F[a+28>>2];c=b;d=b+1|0;b=F[a+24>>2]+1|0;d=b?c:d;F[a+24>>2]=b;F[a+28>>2]=d;return}Ia();V()}function xb(a){var b=0,c=0,d=0,e=0;c=F[a+128>>2];if(c){d=c;b=F[a+132>>2];if((c|0)!=(b|0)){while(1){d=b-12|0;e=F[d>>2];if(e){F[b-8>>2]=e;oj(e)}b=d;if((c|0)!=(b|0)){continue}break}d=F[a+128>>2]}F[a+132>>2]=c;oj(d)}c=F[a+116>>2];if(c){d=c;b=F[a+120>>2];if((c|0)!=(b|0)){while(1){d=b-12|0;e=F[d>>2];if(e){F[b-8>>2]=e;oj(e)}b=d;if((c|0)!=(b|0)){continue}break}d=F[a+116>>2]}F[a+120>>2]=c;oj(d)}b=F[a+104>>2];if(b){F[a+108>>2]=b;oj(b)}b=F[a+92>>2];if(b){F[a+96>>2]=b;oj(b)}ee(a+72|0);ee(a+52|0);ee(a+32|0)}function pj(a){a=a|0;var b=0,c=0,d=0;if(!a){if(F[3960]){b=pj(F[3960])}if(F[3922]){b=pj(F[3922])|b}a=F[3990];if(a){while(1){if(F[a+20>>2]!=F[a+28>>2]){b=pj(a)|b}a=F[a+56>>2];if(a){continue}break}}return b|0}d=F[a+76>>2]>=0;a:{b:{if(F[a+20>>2]==F[a+28>>2]){break b}ja[F[a+36>>2]](a,0,0)|0;if(F[a+20>>2]){break b}b=-1;break a}b=F[a+8>>2];c=F[a+4>>2];if((b|0)!=(c|0)){b=c-b|0;ja[F[a+40>>2]](a,b,b>>31,1)|0}b=0;F[a+28>>2]=0;F[a+16>>2]=0;F[a+20>>2]=0;F[a+4>>2]=0;F[a+8>>2]=0;if(!d){break a}}return b|0}function ff(a){F[a>>2]=-1;F[a+4>>2]=0;F[a+8>>2]=0;F[a+32>>2]=0;F[a+36>>2]=0;D[a+28|0]=1;F[a+20>>2]=0;F[a+24>>2]=0;F[a+12>>2]=0;F[a+16>>2]=0;F[a+40>>2]=0;F[a+44>>2]=0;F[a+48>>2]=0;F[a+52>>2]=0;F[a+56>>2]=0;F[a+60>>2]=0;F[a+64>>2]=0;F[a+68>>2]=0;F[a+76>>2]=0;F[a+80>>2]=0;F[a+84>>2]=0;F[a+88>>2]=0;F[a+92>>2]=0;F[a+96>>2]=0;F[a+72>>2]=a+4;F[a+104>>2]=0;F[a+108>>2]=0;D[a+100|0]=1;F[a+112>>2]=0;F[a+116>>2]=0;F[a+120>>2]=0;F[a+124>>2]=0;F[a+128>>2]=0;F[a+132>>2]=0;F[a+136>>2]=0;F[a+140>>2]=0}function Bh(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0;a=fa-32|0;fa=a;a:{d=dj(c);if(d>>>0<4294967280){b:{c:{if(d>>>0>=11){f=d+16&-16;e=rj(f);F[a+24>>2]=f|-2147483648;F[a+16>>2]=e;F[a+20>>2]=d;break c}D[a+27|0]=d;e=a+16|0;if(!d){break b}}Ri(e,c,d)}D[d+e|0]=0;D[a+4|0]=0;F[a>>2]=1701667182;D[a+11|0]=4;d=F[b+4>>2];c=-1;d:{if(!d){break d}d=Fi(d,a,a+16|0);c=-1;if(!d){break d}c=Ki(b,F[d+24>>2])}b=c;if(D[a+11|0]<0){oj(F[a>>2])}if(D[a+27|0]<0){oj(F[a+16>>2])}fa=a+32|0;break a}bg();V()}return b|0}function qh(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0;d=fa-16|0;fa=d;F[d+12>>2]=0;a:{e=dj(c);if(e>>>0<4294967280){b:{c:{if(e>>>0>=11){f=e+16&-16;a=rj(f);F[d+8>>2]=f|-2147483648;F[d>>2]=a;F[d+4>>2]=e;break c}D[d+11|0]=e;a=d;if(!e){break b}}Ri(a,c,e)}D[a+e|0]=0;a=qg(b,d);d:{if((a|0)==(b+4|0)){break d}b=F[a+32>>2];a=F[a+28>>2];if((b-a|0)!=4){break d}F[d+12>>2]=G[a|0]|G[a+1|0]<<8|(G[a+2|0]<<16|G[a+3|0]<<24)}a=F[d+12>>2];if(D[d+11|0]<0){oj(F[d>>2])}fa=d+16|0;break a}bg();V()}return a|0}function jj(a,b){if(!a){return 0}a:{b:{if(a){if(b>>>0<=127){break b}c:{if(!F[F[4290]>>2]){if((b&-128)==57216){break b}break c}if(b>>>0<=2047){D[a+1|0]=b&63|128;D[a|0]=b>>>6|192;a=2;break a}if(!((b&-8192)!=57344&b>>>0>=55296)){D[a+2|0]=b&63|128;D[a|0]=b>>>12|224;D[a+1|0]=b>>>6&63|128;a=3;break a}if(b-65536>>>0<=1048575){D[a+3|0]=b&63|128;D[a|0]=b>>>18|240;D[a+2|0]=b>>>6&63|128;D[a+1|0]=b>>>12&63|128;a=4;break a}}F[3988]=25;a=-1}else{a=1}break a}D[a|0]=b;a=1}return a}function ui(a){a=a|0;var b=0,c=0,d=0;F[a>>2]=13724;b=F[a+68>>2];if(b){F[a+72>>2]=b;oj(b)}b=F[a+56>>2];if(b){F[a+60>>2]=b;oj(b)}b=F[a+44>>2];if(b){F[a+48>>2]=b;oj(b)}b=F[a+32>>2];if(b){F[a+36>>2]=b;oj(b)}b=F[a+20>>2];if(b){F[a+24>>2]=b;oj(b)}b=F[a+8>>2];if(b){d=b;c=F[a+12>>2];if((b|0)!=(c|0)){while(1){c=c-4|0;d=F[c>>2];F[c>>2]=0;if(d){qb(d)}if((b|0)!=(c|0)){continue}break}d=F[a+8>>2]}F[a+12>>2]=b;oj(d)}b=F[a+4>>2];F[a+4>>2]=0;if(b){cg(b)}return a|0}function La(a,b){var c=0,d=0,e=0,f=0,g=0,h=0,i=0;e=F[a+8>>2];c=F[a+4>>2];if(e-c>>2>>>0>=b>>>0){if(b){b=b<<2;c=Ti(c,0,b)+b|0}F[a+4>>2]=c;return}a:{f=F[a>>2];g=c-f|0;h=g>>2;d=h+b|0;if(d>>>0<1073741824){c=0;e=e-f|0;i=e>>1;d=e>>>0<2147483644?d>>>0>>0?i:d:1073741823;if(d){if(d>>>0>=1073741824){break a}c=rj(d<<2)}b=b<<2;b=Ti((h<<2)+c|0,0,b)+b|0;if((g|0)>0){Ri(c,f,g)}F[a+8>>2]=(d<<2)+c;F[a+4>>2]=b;F[a>>2]=c;if(f){oj(f)}return}Ia();V()}Wa();V()}function te(a,b){var c=0,d=0,e=0,f=0,g=0,h=0,i=0;e=F[a+8>>2];c=F[a+4>>2];if(e-c>>3>>>0>=b>>>0){if(b){b=b<<3;c=Ti(c,0,b)+b|0}F[a+4>>2]=c;return}a:{f=F[a>>2];g=c-f|0;h=g>>3;d=h+b|0;if(d>>>0<536870912){c=0;e=e-f|0;i=e>>2;d=e>>>0<2147483640?d>>>0>>0?i:d:536870911;if(d){if(d>>>0>=536870912){break a}c=rj(d<<3)}b=b<<3;b=Ti((h<<3)+c|0,0,b)+b|0;if((g|0)>0){Ri(c,f,g)}F[a+8>>2]=(d<<3)+c;F[a+4>>2]=b;F[a>>2]=c;if(f){oj(f)}return}Ia();V()}Wa();V()}function sg(a,b){var c=0,d=0,e=0,f=0,g=0,h=0;e=F[a>>2];a=F[e+4>>2];c=F[e+8>>2];if(a>>>0>>0){F[a>>2]=F[b>>2];F[e+4>>2]=a+4;return}a:{f=F[e>>2];g=a-f|0;d=g>>2;a=d+1|0;if(a>>>0<1073741824){h=d<<2;c=c-f|0;d=c>>1;c=c>>>0<2147483644?a>>>0>>0?d:a:1073741823;if(c){if(c>>>0>=1073741824){break a}a=rj(c<<2)}else{a=0}d=h+a|0;F[d>>2]=F[b>>2];if((g|0)>0){Ri(a,f,g)}F[e+8>>2]=a+(c<<2);F[e+4>>2]=d+4;F[e>>2]=a;if(f){oj(f)}return}Ia();V()}Wa();V()}function rg(a,b){var c=0,d=0,e=0,f=0;c=a+4|0;a=qg(a,b);a:{if((c|0)==(a|0)){break a}b=a+28|0;b=D[a+39|0]<0?F[b>>2]:b;while(1){a=b;b=a+1|0;c=D[a|0];if((c|0)==32|c-9>>>0<5){continue}break}b:{c:{d:{c=D[a|0];switch(c-43|0){case 0:break c;case 2:break d;default:break b}}e=1}c=D[b|0];a=b}if(c-48>>>0<10){while(1){d=(L(d,10)-D[a|0]|0)+48|0;b=D[a+1|0];a=a+1|0;if(b-48>>>0<10){continue}break}}a=e?d:0-d|0;if((a|0)==-1){break a}f=(a|0)!=0}return f}function gc(a){a=a|0;var b=0,c=0,d=0;F[a>>2]=2328;b=F[a+60>>2];F[a+60>>2]=0;if(b){ja[F[F[b>>2]+4>>2]](b)}b=F[a+48>>2];if(b){F[a+52>>2]=b;oj(b)}d=F[a+36>>2];if(d){c=F[a+40>>2];b=d;if((c|0)!=(b|0)){while(1){c=c-4|0;b=F[c>>2];F[c>>2]=0;if(b){ja[F[F[b>>2]+4>>2]](b)}if((c|0)!=(d|0)){continue}break}b=F[a+36>>2]}F[a+40>>2]=d;oj(b)}F[a>>2]=1984;b=F[a+16>>2];if(b){F[a+20>>2]=b;oj(b)}b=F[a+4>>2];if(b){F[a+8>>2]=b;oj(b)}return a|0}function hc(a){a=a|0;var b=0,c=0,d=0;F[a>>2]=2328;b=F[a+60>>2];F[a+60>>2]=0;if(b){ja[F[F[b>>2]+4>>2]](b)}b=F[a+48>>2];if(b){F[a+52>>2]=b;oj(b)}d=F[a+36>>2];if(d){c=F[a+40>>2];b=d;if((c|0)!=(b|0)){while(1){c=c-4|0;b=F[c>>2];F[c>>2]=0;if(b){ja[F[F[b>>2]+4>>2]](b)}if((c|0)!=(d|0)){continue}break}b=F[a+36>>2]}F[a+40>>2]=d;oj(b)}F[a>>2]=1984;b=F[a+16>>2];if(b){F[a+20>>2]=b;oj(b)}b=F[a+4>>2];if(b){F[a+8>>2]=b;oj(b)}oj(a)}function vg(a,b){var c=0,d=0,e=0,f=0,g=0,h=0;e=F[a+8>>2];c=F[a+4>>2];if(e-c>>1>>>0>=b>>>0){if(b){b=b<<1;c=Ti(c,0,b)+b|0}F[a+4>>2]=c;return}a:{f=F[a>>2];g=c-f|0;h=g>>1;d=h+b|0;if((d|0)>=0){c=0;e=e-f|0;d=e>>>0<2147483646?d>>>0>>0?e:d:2147483647;if(d){if((d|0)<0){break a}c=rj(d<<1)}b=b<<1;b=Ti((h<<1)+c|0,0,b)+b|0;if((g|0)>0){Ri(c,f,g)}F[a+8>>2]=(d<<1)+c;F[a+4>>2]=b;F[a>>2]=c;if(f){oj(f)}return}Ia();V()}Wa();V()}function Qa(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0;d=fa-16|0;fa=d;e=F[a+4>>2];a:{if((e|0)==-1){break a}c=F[b+20>>2];if(!!F[b+16>>2]&(c|0)>=0|(c|0)>0){break a}Ba(b,F[b+4>>2],F[a+8>>2],F[a+12>>2]);c=F[b+20>>2];if(!!F[b+16>>2]&(c|0)>=0|(c|0)>0){break a}Ba(b,F[b+4>>2],a+20|0,a+24|0);c=F[b+20>>2];f=F[b+16>>2];D[d+15|0]=F[a+4>>2];if(!!f&(c|0)>=0|(c|0)>0){break a}Ba(b,F[b+4>>2],d+15|0,d+16|0)}fa=d+16|0;return(e|0)!=-1|0}function Zf(a){a=a|0;var b=0,c=0,d=0,e=0,f=0;a:{b=F[a+8>>2];b:{if((b|0)<0){break b}c=F[a+4>>2];e=F[c>>2];d=F[c+4>>2]-e>>2;c:{if(d>>>0>>0){La(c,b-d|0);f=F[a+8>>2];break c}f=b;if(b>>>0>=d>>>0){break c}F[c+4>>2]=e+(b<<2);f=b}d=f;if((d|0)<=0){break b}a=F[a+4>>2];c=F[a>>2];e=F[a+4>>2]-c>>2;a=0;while(1){if((a|0)==(e|0)){break a}F[c+(a<<2)>>2]=a;a=a+1|0;if((d|0)!=(a|0)){continue}break}}return(b^-1)>>>31|0}yc();V()}function Xh(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0,g=0;d=fa-16|0;fa=d;le(d,a,b,c);F[a+24>>2]=F[d>>2];e=a+24|0;a:{if((e|0)==(d|0)){break a}b=d|4;f=G[d+15|0];c=f<<24>>24;a=a+28|0;if(D[a+11|0]>=0){if((c|0)>=0){c=F[b+4>>2];F[a>>2]=F[b>>2];F[a+4>>2]=c;F[a+8>>2]=F[b+8>>2];break a}wj(a,F[d+4>>2],F[d+8>>2]);break a}g=a;a=(c|0)<0;vj(g,a?F[d+4>>2]:b,a?F[d+8>>2]:f)}if(D[d+15|0]<0){oj(F[d+4>>2])}fa=d+16|0;return e|0}function Wh(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0,g=0;d=fa-16|0;fa=d;ke(d,a,b,c);F[a+24>>2]=F[d>>2];e=a+24|0;a:{if((e|0)==(d|0)){break a}b=d|4;f=G[d+15|0];c=f<<24>>24;a=a+28|0;if(D[a+11|0]>=0){if((c|0)>=0){c=F[b+4>>2];F[a>>2]=F[b>>2];F[a+4>>2]=c;F[a+8>>2]=F[b+8>>2];break a}wj(a,F[d+4>>2],F[d+8>>2]);break a}g=a;a=(c|0)<0;vj(g,a?F[d+4>>2]:b,a?F[d+8>>2]:f)}if(D[d+15|0]<0){oj(F[d+4>>2])}fa=d+16|0;return e|0}function Lh(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,f=0,g=0;a=fa-32|0;fa=a;e=D[b+24|0];f=F[3411];F[a+24>>2]=F[3410];F[a+28>>2]=f;f=F[3409];F[a+16>>2]=F[3408];F[a+20>>2]=f;a:{b:{c=Rc(b,c,e,a+16|0);if(c){F[a+8>>2]=0;F[a>>2]=0;F[a+4>>2]=0;b=0;if(e){if((e|0)<0){break b}e=e<<2;b=rj(e);g=Ri(b,a+16|0,e)+e|0}e=F[d>>2];if(e){F[d+4>>2]=e;oj(e)}F[d+8>>2]=g;F[d+4>>2]=g;F[d>>2]=b}fa=a+32|0;break a}Ia();V()}return c|0}function cf(a){var b=0,c=0,d=0,e=0,f=0;b=F[a+4>>2];if((b|0)!=F[a+8>>2]){F[b>>2]=F[2856];F[a+4>>2]=b+4;return}a:{f=F[a>>2];d=b-f|0;e=d>>2;b=e+1|0;if(b>>>0<1073741824){c=d>>1;c=d>>>0<2147483644?b>>>0>>0?c:b:1073741823;if(c){if(c>>>0>=1073741824){break a}b=rj(c<<2)}else{b=0}e=b+(e<<2)|0;F[e>>2]=F[2856];if((d|0)>0){Ri(b,f,d)}F[a+8>>2]=b+(c<<2);F[a+4>>2]=e+4;F[a>>2]=b;if(f){oj(f)}return}Ia();V()}Wa();V()}function Xi(a,b,c){var d=0,e=0,f=0;d=F[c+16>>2];a:{if(!d){if(Wi(c)){break a}d=F[c+16>>2]}f=F[c+20>>2];if(d-f>>>0>>0){return ja[F[c+36>>2]](c,a,b)|0}b:{if(F[c+80>>2]<0){d=0;break b}e=b;while(1){d=e;if(!d){d=0;break b}e=d-1|0;if(G[e+a|0]!=10){continue}break}e=ja[F[c+36>>2]](c,a,d)|0;if(e>>>0>>0){break a}a=a+d|0;b=b-d|0;f=F[c+20>>2]}Ri(f,a,b);F[c+20>>2]=F[c+20>>2]+b;e=b+d|0}return e}function _e(a,b){var c=0,d=0,e=0,f=0;d=F[a+12>>2];c=F[a+16>>2]-d>>2;a:{if(c>>>0>>0){La(a+12|0,b-c|0);break a}if(b>>>0>=c>>>0){break a}F[a+16>>2]=d+(b<<2)}b:{c=F[a>>2];c:{if(F[a+8>>2]-c>>2>>>0>=b>>>0){break c}if(b>>>0>=1073741824){break b}d=F[a+4>>2];e=b<<2;b=rj(e);e=b+e|0;d=d-c|0;f=d+b|0;if((d|0)>0){Ri(b,c,d)}F[a+8>>2]=e;F[a+4>>2]=f;F[a>>2]=b;if(!c){break c}oj(c)}return}Ia();V()}function th(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0,g=0;d=fa-16|0;fa=d;a:{e=dj(c);if(e>>>0<4294967280){b:{c:{if(e>>>0>=11){g=e+16&-16;f=rj(g);F[d+8>>2]=g|-2147483648;F[d>>2]=f;F[d+4>>2]=e;break c}D[d+11|0]=e;f=d;if(!e){break b}}Ri(f,c,e)}D[e+f|0]=0;f=a+16|0;c=Hi(b,d,f);b=D[a+27|0];a=F[a+16>>2];if(D[d+11|0]<0){oj(F[d>>2])}fa=d+16|0;a=c?(b|0)<0?a:f:0;break a}bg();V()}return a|0}function Ze(a){var b=0,c=0,d=0,e=0;if(G[a+76|0]){D[a+76|0]=0;d=F[a+60>>2];c=F[a+72>>2]+7|0;b=c>>>0<7?1:b;e=b>>>3|0;c=b<<29|c>>>3;b=c+F[a+56>>2]|0;d=d+e|0;F[a+56>>2]=b;F[a+60>>2]=b>>>0>>0?d+1|0:d}if(H[a+38>>1]<=513){D[a+132|0]=0;d=F[a+116>>2];b=0;c=F[a+128>>2]+7|0;b=c>>>0<7?1:b;e=b>>>3|0;c=b<<29|c>>>3;b=c+F[a+112>>2]|0;d=d+e|0;F[a+112>>2]=b;F[a+116>>2]=b>>>0>>0?d+1|0:d}}function Ya(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0,g=0,h=0,i=0;d=fa+-64|0;fa=d;e=ja[F[F[a>>2]+44>>2]](a,b)|0;a=ja[F[F[a>>2]+40>>2]](a,b)|0;f=Za(d);g=F[b+56>>2];h=e<<24>>24;i=a;a=a-1|0;if(a>>>0<=10){a=F[(a<<2)+13584>>2]}else{a=-1}a=L(a,e);_a(f,g,h,i,0,a,a>>31);a=$a(rj(96),f);ab(a,c);D[a+84|0]=1;F[a+72>>2]=F[a+68>>2];F[a+60>>2]=F[b+60>>2];fa=d- -64|0;return a|0}function ue(a,b,c){var d=0,e=0,f=0,g=0;a:{if(a>>>0>10){break a}d=F[c+20>>2];e=F[c+12>>2];f=F[c+16>>2];if((d|0)>=(e|0)&f>>>0>=I[c+8>>2]|(d|0)>(e|0)){break a}e=D[f+F[c>>2]|0];f=f+1|0;d=f?d:d+1|0;F[c+16>>2]=f;F[c+20>>2]=d;b:{if((e|0)<0){if(!ue(a+1|0,b,c)){break a}c=F[b>>2];a=F[b+4>>2]<<7|c>>>25;c=e&127|c<<7;break b}a=0;c=e&255}F[b>>2]=c;F[b+4>>2]=a;g=1}return g}function pg(a,b,c){var d=0,e=0,f=0,g=0;a:{if(a>>>0>10){break a}d=F[c+20>>2];e=F[c+12>>2];f=F[c+16>>2];if((d|0)>=(e|0)&f>>>0>=I[c+8>>2]|(d|0)>(e|0)){break a}e=D[f+F[c>>2]|0];f=f+1|0;d=f?d:d+1|0;F[c+16>>2]=f;F[c+20>>2]=d;b:{if((e|0)<0){if(!pg(a+1|0,b,c)){break a}c=F[b>>2];a=F[b+4>>2]<<7|c>>>25;c=e&127|c<<7;break b}a=0;c=e&255}F[b>>2]=c;F[b+4>>2]=a;g=1}return g}function hf(a,b){var c=0,d=0,e=0,f=0,g=0;F[a+144>>2]=b;c=F[(ja[F[F[b>>2]+32>>2]](b)|0)+32>>2];e=F[c>>2]+F[c+16>>2]|0;d=F[(ja[F[F[b>>2]+32>>2]](b)|0)+32>>2];c=F[d+8>>2];d=F[d+16>>2];c=c-d|0;f=a,g=H[F[(ja[F[F[b>>2]+32>>2]](b)|0)+32>>2]+38>>1],E[f+38>>1]=g;F[a>>2]=e;F[a+16>>2]=0;F[a+20>>2]=0;F[a+8>>2]=c;F[a+12>>2]=0;f=a,g=ja[F[F[b>>2]+36>>2]](b)|0,F[f+148>>2]=g}function Ij(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;if(Aj(a,F[b+8>>2],e)){if(!(F[b+28>>2]==1|F[b+4>>2]!=(c|0))){F[b+28>>2]=d}return}a:{if(!Aj(a,F[b>>2],e)){break a}if(!(F[b+16>>2]!=(c|0)&F[b+20>>2]!=(c|0))){if((d|0)!=1){break a}F[b+32>>2]=1;return}F[b+20>>2]=c;F[b+32>>2]=d;F[b+40>>2]=F[b+40>>2]+1;if(!(F[b+36>>2]!=1|F[b+24>>2]!=2)){D[b+54|0]=1}F[b+44>>2]=4}}function Ce(a){a=a|0;var b=0,c=0,d=0;F[a>>2]=11276;b=F[a+48>>2];F[a+48>>2]=0;if(b){ja[F[F[b>>2]+4>>2]](b)}F[a>>2]=13280;b=F[a+20>>2];if(b){F[a+24>>2]=b;oj(b)}d=F[a+8>>2];if(d){c=F[a+12>>2];b=d;if((c|0)!=(b|0)){while(1){c=c-4|0;b=F[c>>2];F[c>>2]=0;if(b){ja[F[F[b>>2]+4>>2]](b)}if((c|0)!=(d|0)){continue}break}b=F[a+8>>2]}F[a+12>>2]=d;oj(b)}return a|0}function ig(a){a=a|0;var b=0,c=0,d=0,e=0,f=0,g=0,h=0;b=F[a+32>>2];f=F[b+8>>2];e=F[b+12>>2];d=F[b+20>>2];h=f;f=F[b+16>>2];g=f+4|0;d=g>>>0<4?d+1|0:d;a:{if(h>>>0>>0&(d|0)>=(e|0)|(d|0)>(e|0)){break a}c=f+F[b>>2]|0;e=G[c|0]|G[c+1|0]<<8|(G[c+2|0]<<16|G[c+3|0]<<24);F[b+16>>2]=g;F[b+20>>2]=d;c=0;if((e|0)<0){break a}F[F[a+4>>2]+80>>2]=e;c=1}return c|0}function je(a,b,c){var d=0,e=0,f=0,g=0,h=0,i=0,j=0;if(!b){F[c>>2]=0;return}g=0-G[a+12|0]&255;e=F[a+8>>2];h=F[a>>2];while(1){i=d<<1;a:{if(e>>>0>4095){break a}d=F[a+4>>2];if((d|0)<=0){break a}d=d-1|0;F[a+4>>2]=d;e=G[d+h|0]|e<<8}f=e&255;d=f>>>0>>0;j=f;f=L(e>>>8|0,g);e=d?j+f|0:e-(g+f|0)|0;F[a+8>>2]=e;d=d|i;b=b-1|0;if(b){continue}break}F[c>>2]=d}function Gj(a,b,c,d){D[a+53|0]=1;a:{if(F[a+4>>2]!=(c|0)){break a}D[a+52|0]=1;c=F[a+16>>2];b:{if(!c){F[a+36>>2]=1;F[a+24>>2]=d;F[a+16>>2]=b;if((d|0)!=1){break a}if(F[a+48>>2]==1){break b}break a}if((b|0)==(c|0)){c=F[a+24>>2];if((c|0)==2){F[a+24>>2]=d;c=d}if(F[a+48>>2]!=1){break a}if((c|0)==1){break b}break a}F[a+36>>2]=F[a+36>>2]+1}D[a+54|0]=1}}function De(a){a=a|0;var b=0,c=0,d=0;F[a>>2]=11276;b=F[a+48>>2];F[a+48>>2]=0;if(b){ja[F[F[b>>2]+4>>2]](b)}F[a>>2]=13280;b=F[a+20>>2];if(b){F[a+24>>2]=b;oj(b)}d=F[a+8>>2];if(d){c=F[a+12>>2];b=d;if((c|0)!=(b|0)){while(1){c=c-4|0;b=F[c>>2];F[c>>2]=0;if(b){ja[F[F[b>>2]+4>>2]](b)}if((c|0)!=(d|0)){continue}break}b=F[a+8>>2]}F[a+12>>2]=d;oj(b)}oj(a)}function kg(a){a=a|0;var b=0,c=0,d=0,e=0,f=0,g=0,h=0;d=F[a+32>>2];e=F[d+12>>2];g=F[d+8>>2];b=g;c=F[d+20>>2];h=F[d+16>>2];f=h+4|0;c=f>>>0<4?c+1|0:c;if((c|0)<=(e|0)&b>>>0>=f>>>0|(c|0)<(e|0)){b=h+F[d>>2]|0;b=G[b|0]|G[b+1|0]<<8|(G[b+2|0]<<16|G[b+3|0]<<24);F[d+16>>2]=f;F[d+20>>2]=c;F[F[a+4>>2]+80>>2]=b}return(c|0)<=(e|0)&f>>>0<=g>>>0|(c|0)<(e|0)}function Bj(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0;e=fa+-64|0;fa=e;d=1;a:{if(Aj(a,b,0)){break a}d=0;if(!b){break a}b=Cj(b,14972);d=0;if(!b){break a}d=e+8|0;Ti(d|4,0,52);F[e+56>>2]=1;F[e+20>>2]=-1;F[e+16>>2]=a;F[e+8>>2]=b;ja[F[F[b>>2]+28>>2]](b,d,F[c>>2],1);a=F[e+32>>2];if((a|0)==1){F[c>>2]=F[e+24>>2]}d=(a|0)==1}fa=e- -64|0;return d|0}function Le(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0;d=fa-16|0;fa=d;F[a+4>>2]=b;b=F[b+64>>2];e=F[b>>2];b=F[b+4>>2];D[d+15|0]=0;Ne(a+24|0,(b-e>>2>>>0)/3|0,d+15|0);b=F[a+4>>2];e=F[b+56>>2];b=F[b+52>>2];D[d+14|0]=0;Ne(a+36|0,e-b>>2,d+14|0);b=F[c+12>>2];F[a+16>>2]=F[c+8>>2];F[a+20>>2]=b;b=F[c+4>>2];F[a+8>>2]=F[c>>2];F[a+12>>2]=b;fa=d+16|0}function dc(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0;f=ja[F[F[a>>2]+24>>2]](a)|0;c=1;a:{if((f|0)<=0){break a}d=F[F[a+36>>2]>>2];g=a+48|0;c=0;if(!(ja[F[F[d>>2]+20>>2]](d,g,b)|0)){break a}while(1){e=e+1|0;if((f|0)!=(e|0)){d=F[F[a+36>>2]+(e<<2)>>2];if(ja[F[F[d>>2]+20>>2]](d,g,b)|0){continue}}break}c=(e|0)>=(f|0)}return c|0}function cc(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0;f=ja[F[F[a>>2]+24>>2]](a)|0;c=1;a:{if((f|0)<=0){break a}d=F[F[a+36>>2]>>2];g=a+48|0;c=0;if(!(ja[F[F[d>>2]+16>>2]](d,g,b)|0)){break a}while(1){e=e+1|0;if((f|0)!=(e|0)){d=F[F[a+36>>2]+(e<<2)>>2];if(ja[F[F[d>>2]+16>>2]](d,g,b)|0){continue}}break}c=(e|0)>=(f|0)}return c|0}function wf(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0;d=fa-16|0;fa=d;F[a+4>>2]=b;e=F[b>>2];b=F[b+4>>2];D[d+15|0]=0;Ne(a+24|0,(b-e>>2>>>0)/3|0,d+15|0);b=F[a+4>>2];e=F[b+28>>2];b=F[b+24>>2];D[d+14|0]=0;Ne(a+36|0,e-b>>2,d+14|0);b=F[c+12>>2];F[a+16>>2]=F[c+8>>2];F[a+20>>2]=b;b=F[c+4>>2];F[a+8>>2]=F[c>>2];F[a+12>>2]=b;fa=d+16|0}function qi(a){var b=0;F[a>>2]=0;F[a+4>>2]=0;F[a+56>>2]=0;F[a+48>>2]=0;F[a+52>>2]=0;F[a+40>>2]=0;F[a+44>>2]=0;F[a+32>>2]=0;F[a+36>>2]=0;F[a+24>>2]=0;F[a+28>>2]=0;F[a+16>>2]=0;F[a+20>>2]=0;F[a+8>>2]=0;F[a+12>>2]=0;b=a- -64|0;F[b>>2]=0;F[b+4>>2]=0;F[a+72>>2]=0;F[a+76>>2]=0;F[a+80>>2]=0;F[a+84>>2]=0;F[a+60>>2]=a;return a}function se(a,b,c){var d=0,e=0,f=0,g=0,h=0;a:{if(a>>>0>5){break a}f=F[c+20>>2];d=f;g=F[c+12>>2];e=F[c+16>>2];if((d|0)>=(g|0)&e>>>0>=I[c+8>>2]|(d|0)>(g|0)){break a}d=G[e+F[c>>2]|0];e=e+1|0;f=e?f:f+1|0;F[c+16>>2]=e;F[c+20>>2]=f;if(d&128){if(!se(a+1|0,b,c)){break a}d=d&127|F[b>>2]<<7}F[b>>2]=d;h=1}return h}function he(a,b,c){var d=0,e=0,f=0,g=0,h=0;a:{if(a>>>0>5){break a}f=F[c+20>>2];d=f;g=F[c+12>>2];e=F[c+16>>2];if((d|0)>=(g|0)&e>>>0>=I[c+8>>2]|(d|0)>(g|0)){break a}d=G[e+F[c>>2]|0];e=e+1|0;f=e?f:f+1|0;F[c+16>>2]=e;F[c+20>>2]=f;if(d&128){if(!he(a+1|0,b,c)){break a}d=d&127|F[b>>2]<<7}F[b>>2]=d;h=1}return h}function fb(a,b,c){var d=0,e=0,f=0,g=0,h=0;a:{if(a>>>0>5){break a}f=F[c+20>>2];d=f;g=F[c+12>>2];e=F[c+16>>2];if((d|0)>=(g|0)&e>>>0>=I[c+8>>2]|(d|0)>(g|0)){break a}d=G[e+F[c>>2]|0];e=e+1|0;f=e?f:f+1|0;F[c+16>>2]=e;F[c+20>>2]=f;if(d&128){if(!fb(a+1|0,b,c)){break a}d=d&127|F[b>>2]<<7}F[b>>2]=d;h=1}return h}function Uf(a,b,c){var d=0,e=0,f=0,g=0,h=0;a:{if(a>>>0>5){break a}f=F[c+20>>2];d=f;g=F[c+12>>2];e=F[c+16>>2];if((d|0)>=(g|0)&e>>>0>=I[c+8>>2]|(d|0)>(g|0)){break a}d=G[e+F[c>>2]|0];e=e+1|0;f=e?f:f+1|0;F[c+16>>2]=e;F[c+20>>2]=f;if(d&128){if(!Uf(a+1|0,b,c)){break a}d=d&127|F[b>>2]<<7}F[b>>2]=d;h=1}return h}function Qe(a,b,c){var d=0,e=0,f=0,g=0,h=0;a:{if(a>>>0>5){break a}f=F[c+20>>2];d=f;g=F[c+12>>2];e=F[c+16>>2];if((d|0)>=(g|0)&e>>>0>=I[c+8>>2]|(d|0)>(g|0)){break a}d=G[e+F[c>>2]|0];e=e+1|0;f=e?f:f+1|0;F[c+16>>2]=e;F[c+20>>2]=f;if(d&128){if(!Qe(a+1|0,b,c)){break a}d=d&127|F[b>>2]<<7}F[b>>2]=d;h=1}return h}function Jb(a,b,c){var d=0,e=0,f=0,g=0,h=0;a:{if(a>>>0>5){break a}f=F[c+20>>2];d=f;g=F[c+12>>2];e=F[c+16>>2];if((d|0)>=(g|0)&e>>>0>=I[c+8>>2]|(d|0)>(g|0)){break a}d=G[e+F[c>>2]|0];e=e+1|0;f=e?f:f+1|0;F[c+16>>2]=e;F[c+20>>2]=f;if(d&128){if(!Jb(a+1|0,b,c)){break a}d=d&127|F[b>>2]<<7}F[b>>2]=d;h=1}return h}function Gc(a,b,c){var d=0,e=0,f=0,g=0,h=0;a:{if(a>>>0>5){break a}f=F[c+20>>2];d=f;g=F[c+12>>2];e=F[c+16>>2];if((d|0)>=(g|0)&e>>>0>=I[c+8>>2]|(d|0)>(g|0)){break a}d=G[e+F[c>>2]|0];e=e+1|0;f=e?f:f+1|0;F[c+16>>2]=e;F[c+20>>2]=f;if(d&128){if(!Gc(a+1|0,b,c)){break a}d=d&127|F[b>>2]<<7}F[b>>2]=d;h=1}return h}function Ei(a,b,c){var d=0,e=0,f=0,g=0,h=0;a:{if(a>>>0>5){break a}f=F[c+20>>2];d=f;g=F[c+12>>2];e=F[c+16>>2];if((d|0)>=(g|0)&e>>>0>=I[c+8>>2]|(d|0)>(g|0)){break a}d=G[e+F[c>>2]|0];e=e+1|0;f=e?f:f+1|0;F[c+16>>2]=e;F[c+20>>2]=f;if(d&128){if(!Ei(a+1|0,b,c)){break a}d=d&127|F[b>>2]<<7}F[b>>2]=d;h=1}return h}function Zi(a,b,c){var d=0,e=0;a:{b:{if(c>>>0>=4){if((a|b)&3){break b}while(1){if(F[a>>2]!=F[b>>2]){break b}b=b+4|0;a=a+4|0;c=c-4|0;if(c>>>0>3){continue}break}}if(!c){break a}}while(1){d=G[a|0];e=G[b|0];if((d|0)==(e|0)){b=b+1|0;a=a+1|0;c=c-1|0;if(c){continue}break a}break}return d-e|0}return 0}function nf(a){var b=0,c=0,d=0,e=0;d=F[a>>2];if(d){e=d;c=F[a+4>>2];if((d|0)!=(c|0)){while(1){e=c-144|0;b=F[e+132>>2];if(b){F[c-8>>2]=b;oj(b)}b=F[c-28>>2];if(b){F[c-24>>2]=b;oj(b)}b=F[c-40>>2];if(b){F[c-36>>2]=b;oj(b)}af(c-140|0);c=e;if((d|0)!=(c|0)){continue}break}e=F[a>>2]}F[a+4>>2]=d;oj(e)}}function Gh(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0;d=F[b+4>>2];a:{if(!d){break a}b=F[F[F[b+8>>2]+(c<<2)>>2]+60>>2];if((b|0)<0){break a}a=F[d+24>>2];c=F[d+28>>2];if((a|0)==(c|0)){break a}b:{while(1){e=F[a>>2];if((b|0)==F[e+24>>2]){break b}a=a+4|0;if((c|0)!=(a|0)){continue}break}e=0}}return e|0}function yf(a){a=a|0;var b=0;F[a+8>>2]=12384;F[a>>2]=12172;b=F[a+96>>2];if(b){F[a+100>>2]=b;oj(b)}b=F[a+80>>2];if(b){F[a+84>>2]=b;oj(b)}b=F[a+68>>2];if(b){F[a+72>>2]=b;oj(b)}b=F[a+56>>2];if(b){F[a+60>>2]=b;oj(b)}F[a+8>>2]=12620;b=F[a+44>>2];if(b){oj(b)}b=F[a+32>>2];if(b){oj(b)}return a|0}function cg(a){var b=0,c=0,d=0;if(a){d=F[a+24>>2];if(d){b=d;c=F[a+28>>2];if((b|0)!=(c|0)){while(1){c=c-4|0;b=F[c>>2];F[c>>2]=0;if(b){gg(b+12|0,F[b+16>>2]);hg(b,F[b+4>>2]);oj(b)}if((c|0)!=(d|0)){continue}break}b=F[a+24>>2]}F[a+28>>2]=d;oj(b)}gg(a+12|0,F[a+16>>2]);hg(a,F[a+4>>2]);oj(a)}}function zf(a){a=a|0;var b=0;F[a+8>>2]=12384;F[a>>2]=12172;b=F[a+96>>2];if(b){F[a+100>>2]=b;oj(b)}b=F[a+80>>2];if(b){F[a+84>>2]=b;oj(b)}b=F[a+68>>2];if(b){F[a+72>>2]=b;oj(b)}b=F[a+56>>2];if(b){F[a+60>>2]=b;oj(b)}F[a+8>>2]=12620;b=F[a+44>>2];if(b){oj(b)}b=F[a+32>>2];if(b){oj(b)}oj(a)}function xe(a){a=a|0;var b=0,c=0,d=0;F[a>>2]=13280;b=F[a+20>>2];if(b){F[a+24>>2]=b;oj(b)}d=F[a+8>>2];if(d){c=F[a+12>>2];b=d;if((c|0)!=(b|0)){while(1){c=c-4|0;b=F[c>>2];F[c>>2]=0;if(b){ja[F[F[b>>2]+4>>2]](b)}if((c|0)!=(d|0)){continue}break}b=F[a+8>>2]}F[a+12>>2]=d;oj(b)}return a|0}function Ca(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0,g=0,h=0,i=0;h=F[c+8>>2];e=F[c+16>>2];g=F[c+12>>2];f=g;d=F[c+20>>2];if(h>>>0>e>>>0&(f|0)>=(d|0)|(d|0)<(f|0)){b=G[e+F[c>>2]|0];i=e+1|0;f=i?d:d+1|0;F[c+16>>2]=i;F[c+20>>2]=f;F[a+4>>2]=b}return e>>>0>>0&(d|0)<=(g|0)|(d|0)<(g|0)}function Xf(a){a=a|0;var b=0,c=0,d=0;F[a>>2]=13280;b=F[a+20>>2];if(b){F[a+24>>2]=b;oj(b)}d=F[a+8>>2];if(d){c=F[a+12>>2];b=d;if((c|0)!=(b|0)){while(1){c=c-4|0;b=F[c>>2];F[c>>2]=0;if(b){ja[F[F[b>>2]+4>>2]](b)}if((c|0)!=(d|0)){continue}break}b=F[a+8>>2]}F[a+12>>2]=d;oj(b)}oj(a)}function Aj(a,b,c){var d=0;if(!c){return F[a+4>>2]==F[b+4>>2]}if((a|0)==(b|0)){return 1}d=F[a+4>>2];a=G[d|0];c=F[b+4>>2];b=G[c|0];a:{if(!a|(b|0)!=(a|0)){break a}while(1){b=G[c+1|0];a=G[d+1|0];if(!a){break a}c=c+1|0;d=d+1|0;if((a|0)==(b|0)){continue}break}}return(a|0)==(b|0)}function xf(a){a=a|0;var b=0;F[a>>2]=12384;b=F[a+88>>2];if(b){F[a+92>>2]=b;oj(b)}b=F[a+72>>2];if(b){F[a+76>>2]=b;oj(b)}b=F[a+60>>2];if(b){F[a- -64>>2]=b;oj(b)}b=F[a+48>>2];if(b){F[a+52>>2]=b;oj(b)}F[a>>2]=12620;b=F[a+36>>2];if(b){oj(b)}b=F[a+24>>2];if(b){oj(b)}return a|0}function Eh(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0;d=F[b+12>>2];b=F[b+8>>2];a=0;a:{if((d|0)==(b|0)){break a}a=d-b>>2;d=a>>>0>1?a:1;a=0;b:{while(1){e=F[b+(a<<2)>>2];if(F[e+60>>2]==(c|0)){break b}a=a+1|0;if((d|0)!=(a|0)){continue}break}a=0;break a}a=(a|0)==-1?0:e}return a|0}function Gi(a,b){var c=0,d=0,e=0;F[a+8>>2]=0;F[a>>2]=0;F[a+4>>2]=0;a:{c=F[b+4>>2];d=F[b>>2];b:{if((c|0)==(d|0)){a=c;break b}c=c-d|0;if((c|0)<0){break a}d=c;e=rj(c);c=Ti(e,0,c);d=d+c|0;F[a+8>>2]=d;F[a+4>>2]=d;F[a>>2]=c;c=F[b>>2];a=F[b+4>>2]}Ri(e,c,a-c|0);return}Ia();V()}function Te(a){var b=0,c=0,d=0,e=0;c=F[a+4>>2];d=F[a>>2];if((c|0)!=(d|0)){while(1){e=c-144|0;b=F[e+132>>2];if(b){F[c-8>>2]=b;oj(b)}b=F[c-28>>2];if(b){F[c-24>>2]=b;oj(b)}b=F[c-40>>2];if(b){F[c-36>>2]=b;oj(b)}af(c-140|0);c=e;if((d|0)!=(c|0)){continue}break}}F[a+4>>2]=d}function Ef(a){a=a|0;var b=0;F[a>>2]=12384;b=F[a+88>>2];if(b){F[a+92>>2]=b;oj(b)}b=F[a+72>>2];if(b){F[a+76>>2]=b;oj(b)}b=F[a+60>>2];if(b){F[a- -64>>2]=b;oj(b)}b=F[a+48>>2];if(b){F[a+52>>2]=b;oj(b)}F[a>>2]=12620;b=F[a+36>>2];if(b){oj(b)}b=F[a+24>>2];if(b){oj(b)}oj(a)}function Se(a,b){var c=0,d=0,e=0,f=0;a:{c=F[a>>2];b:{if(F[a+8>>2]-c>>2>>>0>=b>>>0){break b}if(b>>>0>=1073741824){break a}d=F[a+4>>2];e=b<<2;b=rj(e);e=b+e|0;d=d-c|0;f=d+b|0;if((d|0)>0){Ri(b,c,d)}F[a+8>>2]=e;F[a+4>>2]=f;F[a>>2]=b;if(!c){break b}oj(c)}return}Ia();V()}function Re(a){var b=0;if(a){b=F[a+76>>2];if(b){F[a+80>>2]=b;oj(b)}b=F[a- -64>>2];if(b){F[a+68>>2]=b;oj(b)}b=F[a+48>>2];if(b){F[a+52>>2]=b;oj(b)}b=F[a+24>>2];if(b){F[a+28>>2]=b;oj(b)}b=F[a+12>>2];if(b){F[a+16>>2]=b;oj(b)}b=F[a>>2];if(b){F[a+4>>2]=b;oj(b)}oj(a)}}function lj(a,b,c){var d=0,e=0,f=0,g=0,h=0;f=fa-16|0;fa=f;d=fa-16|0;fa=d;b=b-a>>2;while(1){if(b){F[d+12>>2]=a;e=b>>>1|0;F[d+12>>2]=F[d+12>>2]+(e<<2);h=(e^-1)+b|0;b=e;e=F[d+12>>2];g=I[e>>2]>2];b=g?h:b;a=g?e+4|0:a;continue}break}fa=d+16|0;fa=f+16|0;return a}function af(a){var b=0;b=F[a+84>>2];if(b){F[a+88>>2]=b;oj(b)}b=F[a+72>>2];if(b){F[a+76>>2]=b;oj(b)}b=F[a+52>>2];if(b){F[a+56>>2]=b;oj(b)}b=F[a+40>>2];if(b){F[a+44>>2]=b;oj(b)}b=F[a+28>>2];if(b){F[a+32>>2]=b;oj(b)}b=F[a+12>>2];if(b){oj(b)}a=F[a>>2];if(a){oj(a)}}function uj(a,b,c){var d=0,e=0;a:{b:{if(c>>>0<11){d=a;D[d+11|0]=c;break b}if(c>>>0>4294967279){break a}if(c>>>0>=11){e=c+16&-16;d=e-1|0;d=(d|0)==11?e:d}else{d=10}e=d+1|0;d=rj(e);F[a>>2]=d;F[a+8>>2]=e|-2147483648;F[a+4>>2]=c}qj(d,b,c+1|0);return}bg();V()}function Xa(a,b){var c=0,d=0;d=rj(40);F[d>>2]=-1;c=d+8|0;F[c+16>>2]=0;F[c+20>>2]=0;F[c+8>>2]=0;F[c>>2]=0;F[c+4>>2]=0;F[c+24>>2]=0;F[c+28>>2]=0;ja[F[F[a>>2]+16>>2]](a,d);a=F[b+88>>2];F[b+88>>2]=d;if(a){b=F[a+8>>2];if(b){F[a+12>>2]=b;oj(b)}oj(a)}return 1}function dj(a){var b=0,c=0,d=0;b=a;a:{if(b&3){while(1){if(!G[b|0]){break a}b=b+1|0;if(b&3){continue}break}}while(1){c=b;b=b+4|0;d=F[c>>2];if(!((d^-1)&d-16843009&-2139062144)){continue}break}while(1){b=c;c=b+1|0;if(G[b|0]){continue}break}}return b-a|0}function ie(a){var b=0,c=0,d=0,e=0,f=0;d=G[a+12|0];c=F[a+8>>2];a:{if(c>>>0>4095){break a}b=F[a+4>>2];if((b|0)<=0){break a}b=b-1|0;F[a+4>>2]=b;c=G[b+F[a>>2]|0]|c<<8}d=0-d&255;b=L(d,c>>>8|0);e=c&255;f=e>>>0>>0;F[a+8>>2]=f?b+e|0:c-(b+d|0)|0;return f}function _b(a,b){F[a+4>>2]=0;F[a+8>>2]=0;F[a>>2]=1984;F[a+12>>2]=0;F[a+16>>2]=0;F[a+20>>2]=0;F[a+24>>2]=0;F[a+28>>2]=0;F[a+32>>2]=0;F[a+36>>2]=0;F[a+40>>2]=0;F[a>>2]=2328;F[a+60>>2]=b;F[a+44>>2]=0;F[a+48>>2]=0;F[a+52>>2]=0;F[a+56>>2]=0;return a}function wh(a){a=a|0;var b=0,c=0,d=0;if(a){if(D[a+27|0]<0){oj(F[a+16>>2])}c=F[a>>2];if(c){d=c;b=F[a+4>>2];if((b|0)!=(c|0)){while(1){b=b-12|0;if(D[b+11|0]<0){oj(F[b>>2])}if((c|0)!=(b|0)){continue}break}d=F[a>>2]}F[a+4>>2]=c;oj(d)}oj(a)}}function gj(a){var b=0,c=0,d=0;if(D[F[a>>2]]-48>>>0>=10){return 0}while(1){d=F[a>>2];c=-1;if(b>>>0<=214748364){c=D[d|0]-48|0;b=L(b,10);c=(c|0)>(2147483647-b|0)?-1:c+b|0}F[a>>2]=d+1;b=c;if(D[d+1|0]-48>>>0<10){continue}break}return b}function qb(a){a=a|0;var b=0,c=0;if(a){b=F[a+88>>2];F[a+88>>2]=0;if(b){c=F[b+8>>2];if(c){F[b+12>>2]=c;oj(c)}oj(b)}b=F[a+68>>2];if(b){F[a+72>>2]=b;oj(b)}b=F[a+64>>2];F[a+64>>2]=0;if(b){c=F[b>>2];if(c){F[b+4>>2]=c;oj(c)}oj(b)}oj(a)}}function ce(a){a=a|0;var b=0;F[a+24>>2]=1832;F[a>>2]=11048;b=F[a+32>>2];if(b){F[a+36>>2]=b;oj(b)}F[a>>2]=2448;b=F[a+20>>2];F[a+20>>2]=0;if(b){ja[F[F[b>>2]+4>>2]](b)}F[a>>2]=2232;b=F[a+16>>2];F[a+16>>2]=0;if(b){qb(b)}return a|0}function Hh(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;b=F[b+96>>2];a=rj(12);b=b+L(c,12)|0;c=F[b+4>>2];F[a>>2]=F[b>>2];F[a+4>>2]=c;F[a+8>>2]=F[b+8>>2];b=F[d>>2];if(b){F[d+4>>2]=b;oj(b)}F[d>>2]=a;a=a+12|0;F[d+8>>2]=a;F[d+4>>2]=a;return 1}function ag(a,b){var c=0,d=0,e=0;c=dj(b);if(c>>>0<4294967280){a:{b:{if(c>>>0>=11){e=c+16&-16;d=rj(e);F[a+8>>2]=e|-2147483648;F[a>>2]=d;F[a+4>>2]=c;break b}D[a+11|0]=c;d=a;if(!c){break a}}Ri(d,b,c)}D[c+d|0]=0;return a}bg();V()}function _j(a,b,c,d){var e=0,f=0,g=0,h=0;f=b^d;g=f>>31;e=b>>31;a=a^e;h=a-e|0;e=(b^e)-((a>>>0>>0)+e|0)|0;a=d>>31;b=c^a;f=f>>31;a=$j(h,e,b-a|0,(a^d)-((a>>>0>b>>>0)+a|0)|0)^f;b=a-f|0;ia=(g^ia)-((a>>>0>>0)+g|0)|0;return b}function de(a){a=a|0;var b=0;F[a+24>>2]=1832;F[a>>2]=11048;b=F[a+32>>2];if(b){F[a+36>>2]=b;oj(b)}F[a>>2]=2448;b=F[a+20>>2];F[a+20>>2]=0;if(b){ja[F[F[b>>2]+4>>2]](b)}F[a>>2]=2232;b=F[a+16>>2];F[a+16>>2]=0;if(b){qb(b)}oj(a)}function vj(a,b,c){var d=0,e=0,f=0;e=fa-16|0;fa=e;d=F[a+8>>2]&2147483647;a:{if(d>>>0>c>>>0){d=F[a>>2];F[a+4>>2]=c;qj(d,b,c);D[e+15|0]=0;D[c+d|0]=G[e+15|0];break a}f=a;a=F[a+4>>2];tj(f,d-1|0,(c-d|0)+1|0,a,a,c,b)}fa=e+16|0}function Aa(a,b){a=a|0;b=b|0;var c=0,d=0;c=fa-16|0;fa=c;a=F[a+4>>2];a:{if((a|0)==-1){break a}D[c+15|0]=a;d=F[b+20>>2];if(!!F[b+16>>2]&(d|0)>=0|(d|0)>0){break a}Ba(b,F[b+4>>2],c+15|0,c+16|0)}fa=c+16|0;return(a|0)!=-1|0}function Zj(a,b,c,d){var e=0,f=0,g=0,h=0,i=0,j=0;e=c>>>16|0;f=a>>>16|0;j=L(e,f);g=c&65535;h=a&65535;i=L(g,h);f=(i>>>16|0)+L(f,g)|0;e=(f&65535)+L(e,h)|0;ia=(L(b,c)+j|0)+L(a,d)+(f>>>16)+(e>>>16)|0;return i&65535|e<<16}function Dj(a,b,c){var d=0;d=F[a+16>>2];if(!d){F[a+36>>2]=1;F[a+24>>2]=c;F[a+16>>2]=b;return}a:{if((b|0)==(d|0)){if(F[a+24>>2]!=2){break a}F[a+24>>2]=c;return}D[a+54|0]=1;F[a+24>>2]=2;F[a+36>>2]=F[a+36>>2]+1}}function Hg(){var a=0;a=Za(rj(96));F[a+64>>2]=0;F[a+68>>2]=0;F[a+88>>2]=0;F[a+72>>2]=0;F[a+76>>2]=0;D[a+77|0]=0;D[a+78|0]=0;D[a+79|0]=0;D[a+80|0]=0;D[a+81|0]=0;D[a+82|0]=0;D[a+83|0]=0;D[a+84|0]=0;return a|0}function wa(a,b){a=a|0;b=b|0;var c=0,d=0;F[b>>2]=2;c=F[b+8>>2];d=F[b+12>>2]-c|0;if(d>>>0<=4294967291){mg(b+8|0,d+4|0);c=F[b+8>>2]}b=c+d|0;a=F[a+4>>2];D[b|0]=a;D[b+1|0]=a>>>8;D[b+2|0]=a>>>16;D[b+3|0]=a>>>24}function ij(a,b,c,d,e){var f=0;f=fa-256|0;fa=f;if(!(e&73728|(c|0)<=(d|0))){d=c-d|0;c=d>>>0<256;Ti(f,b&255,c?d:256);if(!c){while(1){fj(a,f,256);d=d-256|0;if(d>>>0>255){continue}break}}fj(a,f,d)}fa=f+256|0}function hd(a){a=a|0;var b=0;F[a>>2]=5580;b=F[a+96>>2];if(b){oj(b)}b=F[a+84>>2];if(b){oj(b)}b=F[a+72>>2];if(b){oj(b)}b=F[a+60>>2];if(b){oj(b)}F[a>>2]=3272;b=F[a+32>>2];if(b){F[a+36>>2]=b;oj(b)}return a|0}function fg(a){a=a|0;var b=0,c=0,d=0;b=F[a+8>>2];d=F[a+12>>2];if((b|0)==(d|0)){return 1}while(1){c=F[b>>2];c=ja[F[F[c>>2]+16>>2]](c,F[a+32>>2])|0;if(c){b=b+4|0;if((d|0)!=(b|0)){continue}}break}return c|0}function Cc(a){a=a|0;var b=0;F[a>>2]=3564;b=F[a+96>>2];if(b){oj(b)}b=F[a+84>>2];if(b){oj(b)}b=F[a+72>>2];if(b){oj(b)}b=F[a+60>>2];if(b){oj(b)}F[a>>2]=3272;b=F[a+32>>2];if(b){F[a+36>>2]=b;oj(b)}return a|0}function Ki(a,b){var c=0,d=0;c=F[a+8>>2];a=F[a+12>>2];if((c|0)!=(a|0)){a=a-c>>2;d=a>>>0>1?a:1;a=0;while(1){if(F[F[(a<<2)+c>>2]+60>>2]==(b|0)){return a}a=a+1|0;if((d|0)!=(a|0)){continue}break}}return-1}function xi(a,b){a=a|0;b=b|0;var c=0,d=0,e=0;Mi(a,b);a:{if((b|0)<0){break a}d=F[a+88>>2];c=F[a+84>>2];if(d-c>>2<=(b|0)){break a}b=c+(b<<2)|0;c=b+4|0;e=d-c|0;if((c|0)!=(d|0)){Si(b,c,e)}F[a+88>>2]=b+e}}function id(a){a=a|0;var b=0;F[a>>2]=5580;b=F[a+96>>2];if(b){oj(b)}b=F[a+84>>2];if(b){oj(b)}b=F[a+72>>2];if(b){oj(b)}b=F[a+60>>2];if(b){oj(b)}F[a>>2]=3272;b=F[a+32>>2];if(b){F[a+36>>2]=b;oj(b)}oj(a)}function Dc(a){a=a|0;var b=0;F[a>>2]=3564;b=F[a+96>>2];if(b){oj(b)}b=F[a+84>>2];if(b){oj(b)}b=F[a+72>>2];if(b){oj(b)}b=F[a+60>>2];if(b){oj(b)}F[a>>2]=3272;b=F[a+32>>2];if(b){F[a+36>>2]=b;oj(b)}oj(a)}function Hi(a,b,c){var d=0,e=0;d=a+4|0;a=qg(a,b);if((d|0)==(a|0)){return 0}b=F[a+32>>2];d=F[a+28>>2];if((b|0)!=(d|0)){yj(c,b-d|0);e=xj(c);c=F[a+28>>2];Ri(e,c,F[a+32>>2]-c|0)}return(b|0)!=(d|0)}function bj(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0;e=fa-16|0;fa=e;a=ea(F[a+60>>2],b|0,c|0,d&255,e+8|0)|0;if(a){F[3988]=a;a=-1}else{a=0}fa=e+16|0;ia=a?-1:F[e+12>>2];return(a?-1:F[e+8>>2])|0}function Za(a){F[a+8>>2]=0;F[a+12>>2]=0;F[a>>2]=0;F[a+40>>2]=0;F[a+44>>2]=0;F[a+28>>2]=9;D[a+24|0]=1;F[a+56>>2]=-1;F[a+60>>2]=0;F[a+16>>2]=0;F[a+20>>2]=0;F[a+48>>2]=0;F[a+52>>2]=0;return a}function Wi(a){var b=0;b=F[a+72>>2];F[a+72>>2]=b-1|b;b=F[a>>2];if(b&8){F[a>>2]=b|32;return-1}F[a+4>>2]=0;F[a+8>>2]=0;b=F[a+44>>2];F[a+28>>2]=b;F[a+20>>2]=b;F[a+16>>2]=b+F[a+48>>2];return 0}function ic(a,b){a=a|0;b=b|0;var c=0,d=0;d=F[a+16>>2];c=0;a:{if(F[a+20>>2]-d>>2<=(b|0)){break a}b=F[(b<<2)+d>>2];c=0;if((b|0)<0){break a}c=Vb(F[F[a+36>>2]+(b<<2)>>2])}return c|0}function wj(a,b,c){var d=0,e=0;d=fa-16|0;fa=d;a:{if(c>>>0<=10){D[a+11|0]=c;qj(a,b,c);D[d+15|0]=0;D[a+c|0]=G[d+15|0];break a}e=a;a=G[a+11|0];tj(e,10,c-10|0,a,a,c,b)}fa=d+16|0}function mj(a){var b=0,c=0;b=F[3961];c=a+3&-4;a=b+c|0;a:{if(a>>>0<=b>>>0?c:0){break a}if(a>>>0>ka()<<16>>>0){if(!(ca(a|0)|0)){break a}}F[3961]=a;return b}F[3988]=48;return-1}function Of(a){a=a|0;var b=0;F[a+8>>2]=11872;F[a>>2]=12932;b=F[a+56>>2];if(b){F[a+60>>2]=b;oj(b)}F[a+8>>2]=12124;b=F[a+44>>2];if(b){oj(b)}b=F[a+32>>2];if(b){oj(b)}return a|0}function If(a){a=a|0;var b=0;F[a+8>>2]=12804;F[a>>2]=12640;b=F[a+56>>2];if(b){F[a+60>>2]=b;oj(b)}F[a+8>>2]=12620;b=F[a+44>>2];if(b){oj(b)}b=F[a+32>>2];if(b){oj(b)}return a|0}function xh(){var a=0;a=rj(40);F[a+4>>2]=0;F[a+8>>2]=0;F[a>>2]=a+4;F[a+24>>2]=0;F[a+28>>2]=0;F[a+12>>2]=a+16;F[a+16>>2]=0;F[a+20>>2]=0;F[a+32>>2]=0;F[a+36>>2]=0;return a|0}function Tb(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0;d=F[a+8>>2];a:{if(D[d+24|0]<=0){break a}if(!ab(d,F[b+4>>2]-F[b>>2]>>2)){break a}e=ja[F[F[a>>2]+32>>2]](a,b,c)|0}return e|0}function xd(a,b,c){a=a|0;b=b|0;c=c|0;var d=0;F[a+4>>2]=b;b=F[F[F[b+4>>2]+8>>2]+(c<<2)>>2];F[a+12>>2]=c;F[a+8>>2]=b;a=F[a+8>>2];if(G[a+24|0]==3){d=F[a+28>>2]==9}return d|0}function Pf(a){a=a|0;var b=0;F[a+8>>2]=11872;F[a>>2]=12932;b=F[a+56>>2];if(b){F[a+60>>2]=b;oj(b)}F[a+8>>2]=12124;b=F[a+44>>2];if(b){oj(b)}b=F[a+32>>2];if(b){oj(b)}oj(a)}function Jf(a){a=a|0;var b=0;F[a+8>>2]=12804;F[a>>2]=12640;b=F[a+56>>2];if(b){F[a+60>>2]=b;oj(b)}F[a+8>>2]=12620;b=F[a+44>>2];if(b){oj(b)}b=F[a+32>>2];if(b){oj(b)}oj(a)}function ld(a){a=a|0;var b=0;F[a>>2]=5816;b=F[a+76>>2];if(b){oj(b)}b=F[a+68>>2];F[a+68>>2]=0;if(b){oj(b)}F[a>>2]=3272;b=F[a+32>>2];if(b){F[a+36>>2]=b;oj(b)}return a|0}function gg(a,b){if(b){gg(a,F[b>>2]);gg(a,F[b+4>>2]);a=F[b+28>>2];F[b+28>>2]=0;if(a){gg(a+12|0,F[a+16>>2]);hg(a,F[a+4>>2]);oj(a)}if(D[b+27|0]<0){oj(F[b+16>>2])}oj(b)}}function Yd(a,b,c){a=a|0;b=b|0;c=c|0;var d=0;F[a+4>>2]=b;d=F[F[F[b+4>>2]+8>>2]+(c<<2)>>2];F[a+12>>2]=c;F[a+8>>2]=d;return F[F[F[F[b+4>>2]+8>>2]+(c<<2)>>2]+28>>2]==9|0}function Kc(a){a=a|0;var b=0;F[a>>2]=3812;b=F[a+76>>2];if(b){oj(b)}b=F[a+68>>2];F[a+68>>2]=0;if(b){oj(b)}F[a>>2]=3272;b=F[a+32>>2];if(b){F[a+36>>2]=b;oj(b)}return a|0}function sj(a,b){var c=0,d=0,e=0,f=0;F[a>>2]=15260;F[a>>2]=15372;c=dj(b);d=rj(c+13|0);F[d+8>>2]=0;F[d+4>>2]=c;F[d>>2]=c;e=a,f=Ri(d+12|0,b,c+1|0),F[e+4>>2]=f;return a}function _f(a){F[a+40>>2]=0;F[a+4>>2]=0;F[a+8>>2]=0;F[a>>2]=13280;F[a+12>>2]=0;F[a+16>>2]=0;F[a+20>>2]=0;F[a+24>>2]=0;F[a+28>>2]=0;F[a+32>>2]=0;E[a+36>>1]=0;return a}function jb(a,b){a=a|0;b=b|0;var c=0;a:{if(!(ja[F[F[a>>2]+36>>2]](a,b)|0)){break a}if(!(ja[F[F[a>>2]+40>>2]](a,b)|0)){break a}c=ja[F[F[a>>2]+44>>2]](a)|0}return c|0}function md(a){a=a|0;var b=0;F[a>>2]=5816;b=F[a+76>>2];if(b){oj(b)}b=F[a+68>>2];F[a+68>>2]=0;if(b){oj(b)}F[a>>2]=3272;b=F[a+32>>2];if(b){F[a+36>>2]=b;oj(b)}oj(a)}function Lc(a){a=a|0;var b=0;F[a>>2]=3812;b=F[a+76>>2];if(b){oj(b)}b=F[a+68>>2];F[a+68>>2]=0;if(b){oj(b)}F[a>>2]=3272;b=F[a+32>>2];if(b){F[a+36>>2]=b;oj(b)}oj(a)}function $c(a){a=a|0;var b=0;a:{if(!F[a- -64>>2]|!F[a+68>>2]|(!F[a+44>>2]|!F[a+48>>2])){break a}if(!F[a+52>>2]|!F[a+56>>2]){break a}b=F[a+92>>2]!=-1}return b|0}function va(a,b){a=a|0;b=b|0;var c=0;b=F[b+88>>2];if(!(!b|F[b>>2]!=2)){c=a;a=F[b+8>>2];F[c+4>>2]=G[a|0]|G[a+1|0]<<8|(G[a+2|0]<<16|G[a+3|0]<<24);c=1}return c|0}function oc(a){a=a|0;var b=0;F[a>>2]=2448;b=F[a+20>>2];F[a+20>>2]=0;if(b){ja[F[F[b>>2]+4>>2]](b)}F[a>>2]=2232;b=F[a+16>>2];F[a+16>>2]=0;if(b){qb(b)}return a|0}function Ed(a){a=a|0;var b=0;a:{if(!F[a+48>>2]|!F[a+52>>2]|(!F[a+28>>2]|!F[a+32>>2])){break a}if(!F[a+36>>2]|!F[a+40>>2]){break a}b=F[a+76>>2]!=-1}return b|0}function Me(a){a=a|0;var b=0;F[a>>2]=11872;b=F[a+48>>2];if(b){F[a+52>>2]=b;oj(b)}F[a>>2]=12124;b=F[a+36>>2];if(b){oj(b)}b=F[a+24>>2];if(b){oj(b)}return a|0}function Hf(a){a=a|0;var b=0;F[a>>2]=12804;b=F[a+48>>2];if(b){F[a+52>>2]=b;oj(b)}F[a>>2]=12620;b=F[a+36>>2];if(b){oj(b)}b=F[a+24>>2];if(b){oj(b)}return a|0}function pc(a){a=a|0;var b=0;F[a>>2]=2448;b=F[a+20>>2];F[a+20>>2]=0;if(b){ja[F[F[b>>2]+4>>2]](b)}F[a>>2]=2232;b=F[a+16>>2];F[a+16>>2]=0;if(b){qb(b)}oj(a)}function tf(a){a=a|0;var b=0;F[a>>2]=11872;b=F[a+48>>2];if(b){F[a+52>>2]=b;oj(b)}F[a>>2]=12124;b=F[a+36>>2];if(b){oj(b)}b=F[a+24>>2];if(b){oj(b)}oj(a)}function jc(a,b){a=a|0;b=b|0;var c=0,d=0;d=F[a+4>>2];a:{if(d){c=1;if(G[d+36|0]<2){break a}}c=ja[F[F[a>>2]+48>>2]](a,F[b+4>>2]-F[b>>2]>>2)|0}return c|0}function Nf(a){a=a|0;var b=0;F[a>>2]=12804;b=F[a+48>>2];if(b){F[a+52>>2]=b;oj(b)}F[a>>2]=12620;b=F[a+36>>2];if(b){oj(b)}b=F[a+24>>2];if(b){oj(b)}oj(a)}function Dg(){var a=0,b=0;b=rj(40);F[b>>2]=-1;a=b+8|0;F[a+16>>2]=0;F[a+20>>2]=0;F[a+8>>2]=0;F[a>>2]=0;F[a+4>>2]=0;F[a+24>>2]=0;F[a+28>>2]=0;return b|0}function ng(a){F[a+8>>2]=0;F[a+12>>2]=0;F[a>>2]=0;F[a+16>>2]=0;F[a+20>>2]=0;F[a+32>>2]=0;F[a+24>>2]=0;F[a+28>>2]=0;E[a+38>>1]=0;D[a+36|0]=0;return a}function Jj(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;if(Aj(a,F[b+8>>2],f)){Gj(b,c,d,e);return}a=F[a+8>>2];ja[F[F[a>>2]+20>>2]](a,b,c,d,e,f)}function _d(a,b,c){a=a|0;b=b|0;c=c|0;a:{if(G[F[a+4>>2]+36|0]>=2){b=0;if(!(ja[F[F[a>>2]+52>>2]](a)|0)){break a}}b=Xa(a+24|0,F[a+16>>2])}return b|0}function Zd(a,b,c){a=a|0;b=b|0;c=c|0;var d=0;a:{if(G[F[a+4>>2]+36|0]<=1){d=0;if(!(ja[F[F[a>>2]+52>>2]](a)|0)){break a}}d=mc(a,b,c)}return d|0}function Yg(){var a=0;a=Ii(rj(108));F[a+84>>2]=0;F[a+88>>2]=0;F[a>>2]=13664;F[a+92>>2]=0;F[a+96>>2]=0;F[a+100>>2]=0;F[a+104>>2]=0;return a|0}function Ji(a,b){var c=0;c=-1;a:{if((b|0)==-1|(b|0)>4){break a}b=L(b,12)+a|0;a=F[b+20>>2];if((F[b+24>>2]-a|0)<=0){break a}c=F[a>>2]}return c}function _a(a,b,c,d,e,f,g){F[a>>2]=0;F[a+56>>2]=b;F[a+48>>2]=0;F[a+52>>2]=0;F[a+40>>2]=f;F[a+44>>2]=g;D[a+32|0]=e;F[a+28>>2]=d;D[a+24|0]=c}function zd(a,b,c){a=a|0;b=b|0;c=c|0;a:{if(G[F[a+4>>2]+36|0]>=2){b=0;if(!Ca(a+24|0,Vb(a),c)){break a}}b=Xa(a+24|0,F[a+16>>2])}return b|0}function yd(a,b,c){a=a|0;b=b|0;c=c|0;var d=0;a:{if(G[F[a+4>>2]+36|0]<=1){d=0;if(!Ca(a+24|0,F[a+8>>2],c)){break a}}d=mc(a,b,c)}return d|0}function ti(a){a=a|0;var b=0;F[a>>2]=13664;b=F[a+96>>2];if(b){F[a+100>>2]=b;oj(b)}b=F[a+84>>2];if(b){F[a+88>>2]=b;oj(b)}return ui(a)|0}function xj(a){var b=0;if(G[a+11|0]>>>7|0){b=F[a+4>>2]}else{b=G[a+11|0]}if(!b){zc(1232);V()}if(G[a+11|0]>>>7|0){a=F[a>>2]}return a}function vi(a){a=a|0;var b=0;F[a>>2]=13664;b=F[a+96>>2];if(b){F[a+100>>2]=b;oj(b)}b=F[a+84>>2];if(b){F[a+88>>2]=b;oj(b)}oj(ui(a))}function od(a){a=a|0;var b=0;F[a>>2]=6032;b=F[a+76>>2];if(b){oj(b)}F[a>>2]=3272;b=F[a+32>>2];if(b){F[a+36>>2]=b;oj(b)}return a|0}function hg(a,b){if(b){hg(a,F[b>>2]);hg(a,F[b+4>>2]);a=F[b+28>>2];if(a){F[b+32>>2]=a;oj(a)}if(D[b+27|0]<0){oj(F[b+16>>2])}oj(b)}}function Sc(a){a=a|0;var b=0;F[a>>2]=4040;b=F[a+76>>2];if(b){oj(b)}F[a>>2]=3272;b=F[a+32>>2];if(b){F[a+36>>2]=b;oj(b)}return a|0}function oh(){var a=0;a=rj(28);F[a>>2]=0;F[a+4>>2]=0;F[a+24>>2]=0;F[a+16>>2]=0;F[a+20>>2]=0;F[a+8>>2]=0;F[a+12>>2]=0;return a|0}function hb(a){a=a|0;var b=0;F[a>>2]=1984;b=F[a+16>>2];if(b){F[a+20>>2]=b;oj(b)}b=F[a+4>>2];if(b){F[a+8>>2]=b;oj(b)}return a|0}function _g(){var a=0,b=0;a=rj(24);F[a+4>>2]=0;F[a+8>>2]=0;b=a+16|0;F[b>>2]=0;F[b+4>>2]=0;F[a>>2]=a+4;F[a+12>>2]=b;return a|0}function Fj(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;if(Aj(a,F[b+8>>2],0)){Dj(b,c,d);return}a=F[a+8>>2];ja[F[F[a>>2]+28>>2]](a,b,c,d)}function rj(a){var b=0;a=a?a:1;a:{while(1){b=nj(a);if(b){break a}b=F[4420];if(b){ja[b|0]();continue}break}ba();V()}return b}function pd(a){a=a|0;var b=0;F[a>>2]=6032;b=F[a+76>>2];if(b){oj(b)}F[a>>2]=3272;b=F[a+32>>2];if(b){F[a+36>>2]=b;oj(b)}oj(a)}function Tc(a){a=a|0;var b=0;F[a>>2]=4040;b=F[a+76>>2];if(b){oj(b)}F[a>>2]=3272;b=F[a+32>>2];if(b){F[a+36>>2]=b;oj(b)}oj(a)}function ne(a,b){if(b){ne(a,F[b>>2]);ne(a,F[b+4>>2]);if(D[b+39|0]<0){oj(F[b+28>>2])}if(D[b+27|0]<0){oj(F[b+16>>2])}oj(b)}}function Pj(a){a=a|0;var b=0,c=0;F[a>>2]=15372;b=F[a+4>>2]-12|0;c=F[b+8>>2]-1|0;F[b+8>>2]=c;if((c|0)<0){oj(b)}return a|0}function Qg(){var a=0;a=rj(24);F[a+8>>2]=0;F[a+12>>2]=0;F[a+4>>2]=-1;F[a>>2]=1832;F[a+16>>2]=0;F[a+20>>2]=0;return a|0}function Rb(a,b,c){a=a|0;b=b|0;c=c|0;F[a+4>>2]=b;b=F[F[F[b+4>>2]+8>>2]+(c<<2)>>2];F[a+12>>2]=c;F[a+8>>2]=b;return 1}function Nc(a){a=a|0;var b=0;if(!(!F[a+60>>2]|!F[a+44>>2]|(!F[a+48>>2]|!F[a+52>>2]))){b=F[a+56>>2]!=0}return b|0}function uf(a){a=a|0;var b=0;F[a>>2]=12124;b=F[a+36>>2];if(b){oj(b)}b=F[a+24>>2];if(b){oj(b)}return a|0}function rd(a){a=a|0;var b=0;F[a>>2]=6256;F[a>>2]=3272;b=F[a+32>>2];if(b){F[a+36>>2]=b;oj(b)}return a|0}function Yc(a){a=a|0;var b=0;F[a>>2]=4276;F[a>>2]=3272;b=F[a+32>>2];if(b){F[a+36>>2]=b;oj(b)}return a|0}function Ff(a){a=a|0;var b=0;F[a>>2]=12620;b=F[a+36>>2];if(b){oj(b)}b=F[a+24>>2];if(b){oj(b)}return a|0}function Yh(a){a=a|0;if(a){if(D[a+39|0]<0){oj(F[a+28>>2])}Zh(a+12|0,F[a+16>>2]);ne(a,F[a+4>>2]);oj(a)}}function tc(a){a=a|0;var b=0;if(!(!F[a+52>>2]|(!F[a+44>>2]|!F[a+48>>2]))){b=F[a+56>>2]!=0}return b|0}function vf(a){a=a|0;var b=0;F[a>>2]=12124;b=F[a+36>>2];if(b){oj(b)}b=F[a+24>>2];if(b){oj(b)}oj(a)}function sd(a){a=a|0;var b=0;F[a>>2]=6256;F[a>>2]=3272;b=F[a+32>>2];if(b){F[a+36>>2]=b;oj(b)}oj(a)}function Zc(a){a=a|0;var b=0;F[a>>2]=4276;F[a>>2]=3272;b=F[a+32>>2];if(b){F[a+36>>2]=b;oj(b)}oj(a)}function Oc(a,b){a=a|0;b=b|0;var c=0;if(!(F[b+56>>2]|!b|G[b+24|0]!=3)){F[a+60>>2]=b;c=1}return c|0}function Gf(a){a=a|0;var b=0;F[a>>2]=12620;b=F[a+36>>2];if(b){oj(b)}b=F[a+24>>2];if(b){oj(b)}oj(a)}function ad(a,b){a=a|0;b=b|0;var c=0;if(!(F[b+56>>2]|G[b+24|0]!=3)){F[a- -64>>2]=b;c=1}return c|0}function Cg(a,b,c){a=a|0;b=b|0;c=c|0;F[a+16>>2]=0;F[a+20>>2]=0;F[a>>2]=b;F[a+8>>2]=c;F[a+12>>2]=0}function Kj(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;if(Aj(a,F[b+8>>2],f)){Gj(b,c,d,e)}}function Hb(a){var b=0;b=F[a+16>>2];if(b){F[a+20>>2]=b;oj(b)}b=F[a>>2];if(b){F[a+4>>2]=b;oj(b)}}function Fd(a,b){a=a|0;b=b|0;var c=0;if(!(F[b+56>>2]|G[b+24|0]!=3)){F[a+48>>2]=b;c=1}return c|0}function Yj(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;a=ja[a|0](b,c,d,e)|0;da(ia|0);return a|0}function Wa(){var a=0;a=Y(4)|0;F[a>>2]=15260;F[a>>2]=15220;F[a>>2]=15240;Z(a|0,15352,14);V()}function Yb(a){a=a|0;var b=0;F[a>>2]=2232;b=F[a+16>>2];F[a+16>>2]=0;if(b){qb(b)}return a|0}function Ac(a){a=a|0;var b=0;F[a>>2]=3272;b=F[a+32>>2];if(b){F[a+36>>2]=b;oj(b)}return a|0}function ae(a){a=a|0;var b=0;b=Vb(a);return Ra(a+24|0,b?b:F[a+8>>2],F[F[a+4>>2]+32>>2])|0}function Sa(a){a=a|0;var b=0;F[a>>2]=1832;b=F[a+8>>2];if(b){F[a+12>>2]=b;oj(b)}return a|0}function rc(a){a=a|0;var b=0;F[a>>2]=3272;b=F[a+32>>2];if(b){F[a+36>>2]=b;oj(b)}oj(a)}function Zb(a){a=a|0;var b=0;F[a>>2]=2232;b=F[a+16>>2];F[a+16>>2]=0;if(b){qb(b)}oj(a)}function Ta(a){a=a|0;var b=0;F[a>>2]=1832;b=F[a+8>>2];if(b){F[a+12>>2]=b;oj(b)}oj(a)}function ee(a){var b=0;F[a+16>>2]=0;b=F[a>>2];F[a+4>>2]=b;F[a+12>>2]=b;if(b){oj(b)}}function Zh(a,b){if(b){Zh(a,F[b>>2]);Zh(a,F[b+4>>2]);ne(b+20|0,F[b+24>>2]);oj(b)}}function we(a){a=a|0;if(!F[a+44>>2]){return 0}return ja[F[F[a>>2]+48>>2]](a)|0}function Fg(a){a=a|0;var b=0;if(a){b=F[a+8>>2];if(b){F[a+12>>2]=b;oj(b)}oj(a)}}function ak(a){var b=0;while(1){if(a){a=a-1&a;b=b+1|0;continue}break}return b}function Ej(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;if(Aj(a,F[b+8>>2],0)){Dj(b,c,d)}}function ye(a,b){a=a|0;b=b|0;a=F[a+48>>2];return ja[F[F[a>>2]+20>>2]](a,b)|0}function Ge(a,b){a=a|0;b=b|0;a=F[a+48>>2];return ja[F[F[a>>2]+16>>2]](a,b)|0}function Fe(a,b){a=a|0;b=b|0;a=F[a+48>>2];return ja[F[F[a>>2]+12>>2]](a,b)|0}function gh(a){a=a|0;var b=0;if(a){b=F[a>>2];if(b){F[a+4>>2]=b;oj(b)}oj(a)}}function dh(){var a=0;a=rj(12);F[a>>2]=0;F[a+4>>2]=0;F[a+8>>2]=0;return a|0}function bk(a){var b=0;b=a&31;a=0-a&31;return(-1>>>b&-2)<>>a}function ed(a,b){a=a|0;b=b|0;if(b>>>0<=1){F[a+28>>2]=b}return b>>>0<2|0} -function db(a,b,c){a=a|0;b=b|0;c=c|0;F[a+32>>2]=c;F[a+28>>2]=b;return 1}function Yi(a,b,c){a:{if(F[c+76>>2]<0){a=Xi(a,b,c);break a}a=Xi(a,b,c)}}function Yf(a,b){a=a|0;b=b|0;D[b+84|0]=1;F[b+72>>2]=F[b+68>>2];return 1}function $g(a){a=a|0;if(a){gg(a+12|0,F[a+16>>2]);hg(a,F[a+4>>2]);oj(a)}}function Vg(){var a=0;a=rj(8);F[a+4>>2]=-1;F[a>>2]=1032;return a|0}function Ee(a){a=a|0;a=F[a+48>>2];return ja[F[F[a>>2]+36>>2]](a)|0}function Dh(a,b,c){a=a|0;b=b|0;c=c|0;return F[F[b+8>>2]+(c<<2)>>2]}function Be(a){a=a|0;a=F[a+48>>2];return ja[F[F[a>>2]+28>>2]](a)|0}function Ae(a){a=a|0;a=F[a+48>>2];return ja[F[F[a>>2]+24>>2]](a)|0}function be(a,b){a=a|0;b=b|0;return Oa(a+24|0,Vb(a),F[a+8>>2])|0}function Ad(a,b){a=a|0;b=b|0;return za(a+24|0,Vb(a),F[a+8>>2])|0}function ch(a){a=a|0;if(a){if(D[a+15|0]<0){oj(F[a+4>>2])}oj(a)}}function Sb(a,b){a=a|0;b=b|0;F[a+12>>2]=-1;F[a+8>>2]=b;return 1}function Rg(a,b){a=a|0;b=b|0;return ja[F[F[a>>2]+12>>2]](a,b)|0}function Lj(a){a=a|0;if(!a){return 0}return(Cj(a,15068)|0)!=0|0}function $d(a,b){a=a|0;b=b|0;return ja[F[F[a>>2]+56>>2]](a,b)|0}function zc(a){a=sj(Y(8)|0,a);F[a>>2]=15472;Z(a|0,15504,1);V()}function Ja(a){a=sj(Y(8)|0,a);F[a>>2]=15420;Z(a|0,15452,1);V()}function Sg(a,b){a=a|0;b=b|0;return M(J[F[a+8>>2]+(b<<2)>>2])}function eh(a,b){a=a|0;b=b|0;return M(J[F[a>>2]+(b<<2)>>2])}function ve(a){a=_f(a);F[a+44>>2]=0;F[a>>2]=11180;return a}function ua(){ha=5260576;ga=17696;F[4290]=17048;F[4272]=42}function kb(a,b){a=a|0;b=b|0;return F[F[a+4>>2]+(b<<2)>>2]}function cj(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;ia=0;return 0}function bh(a){a=a|0;return(D[a+15|0]<0?F[a+4>>2]:a+4|0)|0}function Zg(a){a=a|0;return(F[a+100>>2]-F[a+96>>2]|0)/12|0}function nh(a,b){a=a|0;b=b|0;return F[F[a>>2]+(b<<2)>>2]}function mh(a,b){a=a|0;b=b|0;return H[F[a>>2]+(b<<1)>>1]}function kh(a,b){a=a|0;b=b|0;return E[F[a>>2]+(b<<1)>>1]}function Ah(a,b,c){a=a|0;b=b|0;c=c|0;return Ji(b,c)|0}function ck(a){if(a){return 31-O(a-1^a)|0}return 32} -function Ii(a){F[a>>2]=13724;Ti(a+4|0,0,80);return a}function Xg(a){a=a|0;return F[a+12>>2]-F[a+8>>2]>>2}function lb(a){a=a|0;return F[a+8>>2]-F[a+4>>2]>>2}function jh(a,b){a=a|0;b=b|0;return G[F[a>>2]+b|0]}function hh(a,b){a=a|0;b=b|0;return D[F[a>>2]+b|0]}function Ug(a){a=a|0;if(a){ja[F[F[a>>2]+4>>2]](a)}}function He(a,b){a=a|0;b=b|0;F[a+4>>2]=b;return 1}function lh(a){a=a|0;return F[a+4>>2]-F[a>>2]>>1}function fh(a){a=a|0;return F[a+4>>2]-F[a>>2]>>2}function ih(a){a=a|0;return F[a+4>>2]-F[a>>2]|0}function Tj(a){a=a|0;a=fa-a&-16;fa=a;return a|0}function fj(a,b,c){if(!(G[a|0]&32)){Xi(b,c,a)}}function uh(a,b){a=a|0;b=b|0;return F[b+8>>2]}function qc(a){a=a|0;return D[F[a+8>>2]+24|0]}function Va(a,b){a=a|0;b=b|0;return D[b+24|0]}function Ud(a){a=a|0;F[a>>2]=10032;return a|0}function Ub(a,b,c){a=a|0;b=b|0;c=c|0;return 1}function Fh(a,b){a=a|0;b=b|0;return F[b+4>>2]}function Od(a){a=a|0;F[a>>2]=9028;return a|0}function Kd(a){a=a|0;F[a>>2]=8080;return a|0}function Cd(a){a=a|0;F[a>>2]=7144;return a|0}function $i(a){a=a|0;return $(F[a+60>>2])|0}function Tg(a){a=a|0;return M(J[a+20>>2])}function Vd(a){a=a|0;F[a>>2]=10032;oj(a)}function Pd(a){a=a|0;F[a>>2]=9028;oj(a)}function Ld(a){a=a|0;F[a>>2]=8080;oj(a)}function Dd(a){a=a|0;F[a>>2]=7144;oj(a)}function mb(a){a=a|0;return F[a+28>>2]}function Pg(a){a=a|0;return F[a+60>>2]}function Og(a){a=a|0;return F[a+48>>2]}function Ng(a){a=a|0;return F[a+40>>2]}function Kg(a){a=a|0;return F[a+56>>2]}function Jg(a){a=a|0;return F[a+88>>2]}function Ig(a){a=a|0;return F[a+80>>2]}function vc(a,b){a=a|0;b=b|0;return-1}function sc(a){a=a|0;return F[a+4>>2]}function ob(a,b){a=a|0;b=b|0;return 1}function nb(a,b){a=a|0;b=b|0;return 0}function ef(a){a=a|0;return F[a+8>>2]}function ah(a){a=a|0;return!F[a>>2]|0}function Mg(a){a=a|0;return G[a+32|0]}function Lg(a){a=a|0;return D[a+24|0]}function Ha(a,b){a=a|0;b=b|0;return 2}function Ga(a,b){a=a|0;b=b|0;return 6}function qj(a,b,c){if(c){Ri(a,b,c)}}function Eg(a){a=a|0;return F[a>>2]}function Wg(){return Ii(rj(84))|0}function Uj(){ha=5260576;ga=17696}function Gg(){return Za(rj(64))|0}function Bg(){return ng(rj(40))|0}function Ag(a){a=a|0;if(a){oj(a)}}function Qj(a){a=a|0;Pj(a);oj(a)}function Oj(a){a=a|0;return 1211}function Nj(a){a=a|0;return 1245}function Mj(a){a=a|0;return 1171}function Da(a){a=a|0;return a|0}function sf(a){a=a|0;oj(rf(a))}function qf(a){a=a|0;oj(pf(a))}function of(a){a=a|0;oj(mf(a))}function Ni(a){a=a|0;oj(ui(a))}function Nb(a){a=a|0;oj(Mb(a))}function uc(a){a=a|0;return 0}function _c(a){a=a|0;return 6}function Uc(a){a=a|0;return 5}function Ua(a){a=a|0;return 1}function Mc(a){a=a|0;return 3}function Fa(a){a=a|0;return 2}function Ec(a){a=a|0;return 4}function Vj(){return fa-ga|0}function yc(){zc(1164);V()}function bg(){Ja(1232);V()}function Ui(){return 15952}function Ia(){Ja(1164);V()}function Ea(a){a=a|0;oj(a)}function Xj(){return ga|0}function Wj(){return ha|0}function Sj(a){a=a|0;fa=a}function Rj(){return fa|0}function ib(a){a=a|0;V()}function li(){return 12}function ki(){return 11}function ji(){return 10}function zj(){ba();V()}function pi(){return-5}function oi(){return-4}function ni(){return-3}function mi(){return-2}function ii(){return 9}function hi(){return 8}function gi(){return 7}function fi(){return 6}function ei(){return 5}function di(){return 4}function ci(){return 3}function bi(){return 2}function ai(){return 1}function _h(){return-1}function $h(){return 0}function Vi(a){a=a|0} +function Ti(a,b,c){var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0;w=ia-672|0;ia=w;d=J[b+12>>2];e=J[b+20>>2];i=J[b+16>>2];l=i+4|0;e=l>>>0<4?e+1|0:e;a:{b:{c:{if((d|0)<=(e|0)&l>>>0>M[b+8>>2]|(d|0)<(e|0)){break c}e=i+J[b>>2]|0;J[a>>2]=K[e|0]|K[e+1|0]<<8|(K[e+2|0]<<16|K[e+3|0]<<24);e=J[b+20>>2];d=e;l=J[b+16>>2];i=l+4|0;e=i>>>0<4?d+1|0:d;n=i;J[b+16>>2]=i;J[b+20>>2]=e;if(M[a>>2]>31){break c}i=J[b+12>>2];e=d;d=l+8|0;e=d>>>0<8?e+1|0:e;if(d>>>0>M[b+8>>2]&(e|0)>=(i|0)|(e|0)>(i|0)){break c}e=n+J[b>>2]|0;J[a+4>>2]=K[e|0]|K[e+1|0]<<8|(K[e+2|0]<<16|K[e+3|0]<<24);e=J[b+20>>2];d=e;l=J[b+16>>2];i=l+4|0;e=i>>>0<4?d+1|0:d;n=i;J[b+16>>2]=i;J[b+20>>2]=e;i=J[b+12>>2];e=d;d=l+8|0;e=d>>>0<8?e+1|0:e;if(d>>>0>M[b+8>>2]&(e|0)>=(i|0)|(e|0)>(i|0)){break c}e=n+J[b>>2]|0;J[a+12>>2]=K[e|0]|K[e+1|0]<<8|(K[e+2|0]<<16|K[e+3|0]<<24);e=J[b+20>>2];d=e;l=J[b+16>>2];i=l+4|0;e=i>>>0<4?d+1|0:d;t=i;J[b+16>>2]=i;J[b+20>>2]=e;e=J[a+20>>2];n=J[a+12>>2];if((n|0)!=(e|0)?e:0){break c}i=J[b+12>>2];e=d;d=l+8|0;e=d>>>0<8?e+1|0:e;if(d>>>0>M[b+8>>2]&(e|0)>=(i|0)|(e|0)>(i|0)){break c}e=t+J[b>>2]|0;d=K[e|0]|K[e+1|0]<<8|(K[e+2|0]<<16|K[e+3|0]<<24);J[a+16>>2]=d;e=J[b+20>>2];i=J[b+16>>2]+4|0;e=i>>>0<4?e+1|0:e;J[b+16>>2]=i;J[b+20>>2]=e;if(d>>>0>=7){J[w>>2]=d;cj(1760,w);break c}J[w+664>>2]=c;d:{if(!n){break d}e:{l=J[c>>2];if(n>>>0<=(J[c+8>>2]-l|0)/12>>>0){break e}if(n>>>0<357913942){i=J[c+4>>2];d=P(n,12);e=Aj(d);n=d+e|0;d=e+P((i-l|0)/12|0,12)|0;e=d;if((i|0)!=(l|0)){e=d;while(1){e=e-12|0;i=i-12|0;J[e>>2]=J[i>>2];J[e+4>>2]=J[i+4>>2];J[e+8>>2]=J[i+8>>2];if((i|0)!=(l|0)){continue}break}}J[c+8>>2]=n;J[c+4>>2]=d;J[c>>2]=e;if(!l){break e}xj(l);break e}break b}f:{switch(J[a+16>>2]){case 0:g=xb(w+8|0,3);t=w+664|0;d=J[b+12>>2];e=J[b+20>>2];h=J[b+16>>2];i=h+4|0;e=i>>>0<4?e+1|0:e;g:{if((d|0)<=(e|0)&i>>>0>M[b+8>>2]|(d|0)<(e|0)){break g}e=h+J[b>>2]|0;J[g>>2]=K[e|0]|K[e+1|0]<<8|(K[e+2|0]<<16|K[e+3|0]<<24);e=J[b+20>>2];d=e;i=J[b+16>>2];h=i+4|0;e=h>>>0<4?d+1|0:d;j=h;J[b+16>>2]=h;J[b+20>>2]=e;if(M[g>>2]>32){break g}h=J[b+12>>2];e=d;d=i+8|0;e=d>>>0<8?e+1|0:e;if(d>>>0>M[b+8>>2]&(e|0)>=(h|0)|(e|0)>(h|0)){break g}e=j+J[b>>2]|0;d=K[e|0]|K[e+1|0]<<8|(K[e+2|0]<<16|K[e+3|0]<<24);J[g+4>>2]=d;e=J[b+20>>2];h=J[b+16>>2]+4|0;e=h>>>0<4?e+1|0:e;J[b+16>>2]=h;J[b+20>>2]=e;if(!d){break g}J[g+8>>2]=0;if(!ie(g+16|0,b)){break g}if(!ie(g+36|0,b)){break g}if(!ie(g+56|0,b)){break g}if(!ie(g+76|0,b)){break g}q=J[g+4>>2];j=0;d=ia-32|0;ia=d;h=J[g+12>>2];J[d+16>>2]=0;J[d+8>>2]=0;J[d+12>>2]=0;if(h){if(h>>>0>=1073741824){break b}b=h<<2;j=Aj(b);J[d+8>>2]=j;f=b+j|0;J[d+16>>2]=f;Xi(j,0,b);J[d+12>>2]=f}b=J[g+120>>2];e=J[b>>2];if(e){J[b+4>>2]=e;xj(e);h=J[g+12>>2];j=J[d+8>>2];f=J[d+12>>2]}J[b+4>>2]=f;J[b>>2]=j;J[b+8>>2]=J[d+16>>2];j=0;J[d+16>>2]=0;J[d+8>>2]=0;J[d+12>>2]=0;h:{if(h){if(h>>>0>=1073741824){break b}b=h<<2;k=Aj(b);J[d+8>>2]=k;j=b+k|0;J[d+16>>2]=j;Xi(k,0,b);J[d+12>>2]=j}b=J[g+132>>2];e=J[b>>2];if(e){J[b+4>>2]=e;xj(e);k=J[d+8>>2];j=J[d+12>>2]}J[b+4>>2]=j;J[b>>2]=k;J[b+8>>2]=J[d+16>>2];J[d+24>>2]=0;J[d+28>>2]=0;J[d+16>>2]=0;J[d+20>>2]=0;J[d+8>>2]=0;J[d+12>>2]=0;Rb(d+8|0);b=J[d+24>>2]+J[d+28>>2]|0;e=(b>>>0)/341|0;b=J[J[d+12>>2]+(e<<2)>>2]+P(b-P(e,341)|0,12)|0;J[b+4>>2]=0;J[b+8>>2]=0;J[b>>2]=q;h=J[d+28>>2]+1|0;J[d+28>>2]=h;i:{if(!h){break i}y=g+96|0;while(1){b=J[d+12>>2];j=J[d+24>>2];k=h-1|0;e=j+k|0;f=(e>>>0)/341|0;e=J[b+(f<<2)>>2]+P(e-P(f,341)|0,12)|0;n=J[e+8>>2];f=J[e+4>>2];i=J[e>>2];J[d+28>>2]=k;e=J[d+16>>2];if((((b|0)!=(e|0)?P(e-b>>2,341)-1|0:0)-(h+j|0)|0)+1>>>0>=682){xj(J[e-4>>2]);J[d+16>>2]=J[d+16>>2]-4}e=0;if(i>>>0>q>>>0){break i}b=J[g+12>>2];h=(f|0)!=(b-1|0)?f+1|0:0;if(h>>>0>=b>>>0){break i}j=P(n,12);m=j+J[g+132>>2]|0;l=j+J[g+120>>2]|0;f=J[g>>2];o=h<<2;k=J[o+J[m>>2]>>2];j:{k:{if((f|0)==(k|0)){if(!i){break k}while(1){b=J[l>>2];m=J[b+8>>2];o=J[b+4>>2];p=J[b>>2];f=J[t>>2];h=J[f+4>>2];k=J[f+8>>2];l:{if(h>>>0>>0){J[h+8>>2]=m;J[h+4>>2]=o;J[h>>2]=p;J[f+4>>2]=h+12;break l}j=J[f>>2];u=(h-j|0)/12|0;b=u+1|0;if(b>>>0>=357913942){break b}k=(k-j|0)/12|0;n=k<<1;n=k>>>0>=178956970?357913941:b>>>0>>0?n:b;if(n){if(n>>>0>=357913942){break a}b=Aj(P(n,12))}else{b=0}k=b+P(u,12)|0;J[k+8>>2]=m;J[k+4>>2]=o;J[k>>2]=p;m=k+12|0;if((h|0)!=(j|0)){while(1){k=k-12|0;h=h-12|0;J[k>>2]=J[h>>2];J[k+4>>2]=J[h+4>>2];J[k+8>>2]=J[h+8>>2];if((h|0)!=(j|0)){continue}break}}J[f+8>>2]=b+P(n,12);J[f+4>>2]=m;J[f>>2]=k;if(!j){break l}xj(j)}J[g+8>>2]=J[g+8>>2]+1;e=e+1|0;if((i|0)!=(e|0)){continue}break}break k}m:{n:{o:{p:{if(i>>>0<=2){b=J[g+108>>2];J[b>>2]=h;k=1;j=J[g+12>>2];if(j>>>0>1){break p}break m}if(M[g+8>>2]>M[g+4>>2]){break i}b=J[g+120>>2];p=n+1|0;m=P(p,12);e=b+m|0;if((e|0)!=(l|0)){Sa(e,J[l>>2],J[l+4>>2]);b=J[g+120>>2]}b=o+J[b+m>>2]|0;J[b>>2]=J[b>>2]+(1<>2];k=32-e|0;q:{if((b|0)<=(k|0)){f=J[g+28>>2];if((f|0)==J[g+20>>2]){break o}k=J[f>>2];l=b+e|0;J[g+32>>2]=l;k=k<>>32-b|0;if((l|0)!=32){break q}J[g+32>>2]=0;J[g+28>>2]=f+4;break q}f=J[g+28>>2];l=f+4|0;if((l|0)==J[g+20>>2]){break o}u=J[f>>2];J[g+28>>2]=l;k=b-k|0;J[g+32>>2]=k;k=J[f+4>>2]>>>32-k|u<>>32-b}f=i>>>1|0;if(k>>>0>f>>>0){break i}break n}while(1){h=(j-1|0)!=(h|0)?h+1|0:0;J[b+(k<<2)>>2]=h;j=J[g+12>>2];k=k+1|0;if(j>>>0>k>>>0){continue}break}break m}f=i>>>1|0;k=0}r:{s:{b=f-k|0;e=i-b|0;t:{if((e|0)==(b|0)){e=b;break t}f=J[g+88>>2];if((f|0)==J[g+80>>2]){break s}i=J[f>>2];k=J[g+92>>2];l=k+1|0;J[g+92>>2]=l;i=i&-2147483648>>>k;u:{if((l|0)==32){J[g+92>>2]=0;J[g+88>>2]=f+4;if(i){break u}break s}if(!i){break s}}}f=e;e=b;break r}f=b}b=J[g+132>>2];i=b+j|0;j=J[i>>2];k=j+o|0;J[k>>2]=J[k>>2]+1;Sa(b+m|0,j,J[i+4>>2]);if(e){j=J[d+28>>2]+J[d+24>>2]|0;b=J[d+16>>2];k=J[d+12>>2];if((j|0)==(((b|0)!=(k|0)?P(b-k>>2,341)-1|0:0)|0)){Rb(d+8|0);k=J[d+12>>2];j=J[d+24>>2]+J[d+28>>2]|0}b=(j>>>0)/341|0;b=J[(b<<2)+k>>2]+P(j-P(b,341)|0,12)|0;J[b+8>>2]=n;J[b+4>>2]=h;J[b>>2]=e;J[d+28>>2]=J[d+28>>2]+1}if(!f){break k}j=J[d+28>>2]+J[d+24>>2]|0;b=J[d+16>>2];k=J[d+12>>2];if((j|0)==(((b|0)!=(k|0)?P(b-k>>2,341)-1|0:0)|0)){Rb(d+8|0);k=J[d+12>>2];j=J[d+24>>2]+J[d+28>>2]|0}b=(j>>>0)/341|0;b=J[(b<<2)+k>>2]+P(j-P(b,341)|0,12)|0;J[b+8>>2]=p;J[b+4>>2]=h;J[b>>2]=f;h=J[d+28>>2]+1|0;J[d+28>>2]=h;break j}if(!i){break k}while(1){if(J[g+12>>2]){j=J[g+40>>2];u=J[m>>2];f=J[g+96>>2];s=J[g+108>>2];h=0;while(1){k=s+(h<<2)|0;J[f+(J[k>>2]<<2)>>2]=0;b=J[g>>2];n=J[k>>2]<<2;o=J[n+u>>2];v:{if((b|0)==(o|0)){break v}n=f+n|0;b=b-o|0;o=J[g+52>>2];v=32-o|0;if((b|0)<=(v|0)){p=J[g+48>>2];if((p|0)==(j|0)){break i}J[n>>2]=J[p>>2]<>>32-b;b=b+J[g+52>>2]|0;J[g+52>>2]=b;if((b|0)!=32){break v}J[g+52>>2]=0;J[g+48>>2]=p+4;break v}p=J[g+48>>2];r=p+4|0;if((r|0)==(j|0)){break i}x=J[p>>2];J[g+48>>2]=r;v=b-v|0;J[g+52>>2]=v;J[n>>2]=J[p+4>>2]>>>32-v|x<>>32-b}b=J[k>>2]<<2;k=b+f|0;J[k>>2]=J[k>>2]|J[b+J[l>>2]>>2];h=h+1|0;if(h>>>0>2]){continue}break}}Ui(t,y);J[g+8>>2]=J[g+8>>2]+1;e=e+1|0;if((i|0)!=(e|0)){continue}break}}h=J[d+28>>2]}if(h){continue}break}}J[d+28>>2]=0;k=J[d+16>>2];h=J[d+12>>2];j=k-h|0;if(j>>>0>=9){while(1){xj(J[h>>2]);h=J[d+12>>2]+4|0;J[d+12>>2]=h;k=J[d+16>>2];j=k-h|0;if(j>>>0>8){continue}break}}b=170;w:{switch((j>>>2|0)-1|0){case 1:b=341;case 0:J[d+24>>2]=b;break;default:break w}}x:{if((h|0)==(k|0)){break x}while(1){xj(J[h>>2]);h=h+4|0;if((k|0)!=(h|0)){continue}break}b=J[d+16>>2];e=J[d+12>>2];if((b|0)==(e|0)){break x}J[d+16>>2]=b+((e-b|0)+3&-4)}b=J[d+8>>2];if(b){xj(b)}ia=d+32|0;break h}}wb(g);break d;case 1:g=xb(w+8|0,3);n=w+664|0;f=J[b+12>>2];e=J[b+20>>2];d=J[b+16>>2];h=d+4|0;e=h>>>0<4?e+1|0:e;y:{if(h>>>0>M[b+8>>2]&(e|0)>=(f|0)|(e|0)>(f|0)){break y}e=d+J[b>>2]|0;J[g>>2]=K[e|0]|K[e+1|0]<<8|(K[e+2|0]<<16|K[e+3|0]<<24);e=J[b+20>>2];f=e;h=J[b+16>>2];d=h+4|0;e=d>>>0<4?e+1|0:e;i=d;J[b+16>>2]=d;J[b+20>>2]=e;if(M[g>>2]>32){break y}d=J[b+12>>2];e=f;f=h+8|0;e=f>>>0<8?e+1|0:e;if((d|0)<=(e|0)&f>>>0>M[b+8>>2]|(d|0)<(e|0)){break y}e=i+J[b>>2]|0;f=K[e|0]|K[e+1|0]<<8|(K[e+2|0]<<16|K[e+3|0]<<24);J[g+4>>2]=f;e=J[b+20>>2];d=J[b+16>>2]+4|0;e=d>>>0<4?e+1|0:e;J[b+16>>2]=d;J[b+20>>2]=e;if(!f){break y}J[g+8>>2]=0;if(!ie(g+16|0,b)){break y}if(!ie(g+36|0,b)){break y}if(!ie(g+56|0,b)){break y}if(!ie(g+76|0,b)){break y}t=J[g+4>>2];f=0;d=ia-32|0;ia=d;h=J[g+12>>2];J[d+16>>2]=0;J[d+8>>2]=0;J[d+12>>2]=0;if(h){if(h>>>0>=1073741824){break b}b=h<<2;k=Aj(b);J[d+8>>2]=k;f=b+k|0;J[d+16>>2]=f;Xi(k,0,b);J[d+12>>2]=f}b=J[g+120>>2];e=J[b>>2];if(e){J[b+4>>2]=e;xj(e);h=J[g+12>>2];k=J[d+8>>2];f=J[d+12>>2]}J[b+4>>2]=f;J[b>>2]=k;J[b+8>>2]=J[d+16>>2];k=0;J[d+16>>2]=0;J[d+8>>2]=0;J[d+12>>2]=0;z:{if(h){if(h>>>0>=1073741824){break b}b=h<<2;j=Aj(b);J[d+8>>2]=j;k=b+j|0;J[d+16>>2]=k;Xi(j,0,b);J[d+12>>2]=k}b=J[g+132>>2];e=J[b>>2];if(e){J[b+4>>2]=e;xj(e);k=J[d+12>>2];j=J[d+8>>2]}J[b+4>>2]=k;J[b>>2]=j;J[b+8>>2]=J[d+16>>2];J[d+24>>2]=0;J[d+28>>2]=0;J[d+16>>2]=0;J[d+20>>2]=0;J[d+8>>2]=0;J[d+12>>2]=0;Rb(d+8|0);b=J[d+24>>2]+J[d+28>>2]|0;e=(b>>>0)/341|0;b=J[J[d+12>>2]+(e<<2)>>2]+P(b-P(e,341)|0,12)|0;J[b+4>>2]=0;J[b+8>>2]=0;J[b>>2]=t;h=J[d+28>>2]+1|0;J[d+28>>2]=h;A:{if(!h){break A}y=g+96|0;while(1){b=J[d+12>>2];k=J[d+24>>2];j=h-1|0;e=k+j|0;f=(e>>>0)/341|0;e=J[b+(f<<2)>>2]+P(e-P(f,341)|0,12)|0;i=J[e+8>>2];f=J[e+4>>2];e=J[e>>2];J[d+28>>2]=j;j=J[d+16>>2];if((((b|0)!=(j|0)?P(j-b>>2,341)-1|0:0)-(h+k|0)|0)+1>>>0>=682){xj(J[j-4>>2]);J[d+16>>2]=J[d+16>>2]-4}if(e>>>0>t>>>0){break A}b=J[g+12>>2];h=(f|0)!=(b-1|0)?f+1|0:0;if(h>>>0>=b>>>0){break A}b=J[g+120>>2];k=P(i,12);l=b+k|0;f=J[g>>2];q=h<<2;p=k+J[g+132>>2]|0;j=J[q+J[p>>2]>>2];B:{C:{if((f|0)==(j|0)){q=0;if(!e){break C}while(1){b=J[l>>2];m=J[b+8>>2];o=J[b+4>>2];p=J[b>>2];f=J[n>>2];h=J[f+4>>2];j=J[f+8>>2];D:{if(h>>>0>>0){J[h+8>>2]=m;J[h+4>>2]=o;J[h>>2]=p;J[f+4>>2]=h+12;break D}i=J[f>>2];u=(h-i|0)/12|0;b=u+1|0;if(b>>>0>=357913942){break b}j=(j-i|0)/12|0;k=j<<1;k=j>>>0>=178956970?357913941:b>>>0>>0?k:b;if(k){if(k>>>0>=357913942){break a}b=Aj(P(k,12))}else{b=0}j=b+P(u,12)|0;J[j+8>>2]=m;J[j+4>>2]=o;J[j>>2]=p;m=j+12|0;if((h|0)!=(i|0)){while(1){j=j-12|0;h=h-12|0;J[j>>2]=J[h>>2];J[j+4>>2]=J[h+4>>2];J[j+8>>2]=J[h+8>>2];if((h|0)!=(i|0)){continue}break}}J[f+8>>2]=b+P(k,12);J[f+4>>2]=m;J[f>>2]=j;if(!i){break D}xj(i)}J[g+8>>2]=J[g+8>>2]+1;q=q+1|0;if((e|0)!=(q|0)){continue}break}break C}E:{F:{G:{H:{if(e>>>0<=2){b=J[g+108>>2];J[b>>2]=h;j=1;k=J[g+12>>2];if(k>>>0>1){break H}break E}if(M[g+8>>2]>M[g+4>>2]){break A}m=b;b=k+12|0;Sa(m+b|0,J[l>>2],J[l+4>>2]);b=q+J[b+J[g+120>>2]>>2]|0;J[b>>2]=J[b>>2]+(1<>2];l=32-f|0;I:{if((b|0)<=(l|0)){j=J[g+28>>2];if((j|0)==J[g+20>>2]){break G}l=J[j>>2];m=b+f|0;J[g+32>>2]=m;f=l<>>32-b|0;if((m|0)!=32){break I}J[g+32>>2]=0;J[g+28>>2]=j+4;break I}j=J[g+28>>2];m=j+4|0;if((m|0)==J[g+20>>2]){break G}o=J[j>>2];J[g+28>>2]=m;l=b-l|0;J[g+32>>2]=l;f=J[j+4>>2]>>>32-l|o<>>32-b}j=e>>>1|0;if(j>>>0>>0){break A}break F}while(1){h=(k-1|0)!=(h|0)?h+1|0:0;J[b+(j<<2)>>2]=h;j=j+1|0;k=J[g+12>>2];if(j>>>0>>0){continue}break}break E}j=e>>>1|0;f=0}l=i+1|0;J:{K:{b=j-f|0;f=e-b|0;L:{if((f|0)==(b|0)){e=b;break L}e=J[g+88>>2];if((e|0)==J[g+80>>2]){break K}j=J[e>>2];m=J[g+92>>2];o=m+1|0;J[g+92>>2]=o;j=j&-2147483648>>>m;M:{if((o|0)==32){J[g+92>>2]=0;J[g+88>>2]=e+4;if(j){break M}break K}if(!j){break K}}e=f}f=b;break J}e=b}b=J[g+132>>2];j=b+k|0;k=J[j>>2];q=k+q|0;J[q>>2]=J[q>>2]+1;Sa(b+P(l,12)|0,k,J[j+4>>2]);if(f){k=J[d+28>>2]+J[d+24>>2]|0;b=J[d+16>>2];j=J[d+12>>2];if((k|0)==(((b|0)!=(j|0)?P(b-j>>2,341)-1|0:0)|0)){Rb(d+8|0);k=J[d+24>>2]+J[d+28>>2]|0;j=J[d+12>>2]}b=(k>>>0)/341|0;b=J[j+(b<<2)>>2]+P(k-P(b,341)|0,12)|0;J[b+8>>2]=i;J[b+4>>2]=h;J[b>>2]=f;J[d+28>>2]=J[d+28>>2]+1}if(!e){break C}k=J[d+28>>2]+J[d+24>>2]|0;b=J[d+16>>2];j=J[d+12>>2];if((k|0)==(((b|0)!=(j|0)?P(b-j>>2,341)-1|0:0)|0)){Rb(d+8|0);k=J[d+24>>2]+J[d+28>>2]|0;j=J[d+12>>2]}b=(k>>>0)/341|0;b=J[j+(b<<2)>>2]+P(k-P(b,341)|0,12)|0;J[b+8>>2]=l;J[b+4>>2]=h;J[b>>2]=e;h=J[d+28>>2]+1|0;J[d+28>>2]=h;break B}k=0;if(!e){break C}while(1){if(J[g+12>>2]){i=J[g+40>>2];u=J[p>>2];f=J[g+96>>2];s=J[g+108>>2];h=0;while(1){j=s+(h<<2)|0;J[f+(J[j>>2]<<2)>>2]=0;b=J[g>>2];q=J[j>>2]<<2;m=J[q+u>>2];N:{if((b|0)==(m|0)){break N}q=f+q|0;b=b-m|0;m=J[g+52>>2];v=32-m|0;if((b|0)<=(v|0)){o=J[g+48>>2];if((o|0)==(i|0)){break A}J[q>>2]=J[o>>2]<>>32-b;b=b+J[g+52>>2]|0;J[g+52>>2]=b;if((b|0)!=32){break N}J[g+52>>2]=0;J[g+48>>2]=o+4;break N}o=J[g+48>>2];r=o+4|0;if((r|0)==(i|0)){break A}x=J[o>>2];J[g+48>>2]=r;v=b-v|0;J[g+52>>2]=v;J[q>>2]=J[o+4>>2]>>>32-v|x<>>32-b}b=J[j>>2]<<2;j=b+f|0;J[j>>2]=J[j>>2]|J[b+J[l>>2]>>2];h=h+1|0;if(h>>>0>2]){continue}break}}Ui(n,y);J[g+8>>2]=J[g+8>>2]+1;k=k+1|0;if((e|0)!=(k|0)){continue}break}}h=J[d+28>>2]}if(h){continue}break}}J[d+28>>2]=0;j=J[d+16>>2];h=J[d+12>>2];k=j-h|0;if(k>>>0>=9){while(1){xj(J[h>>2]);h=J[d+12>>2]+4|0;J[d+12>>2]=h;j=J[d+16>>2];k=j-h|0;if(k>>>0>8){continue}break}}b=170;O:{switch((k>>>2|0)-1|0){case 1:b=341;case 0:J[d+24>>2]=b;break;default:break O}}P:{if((h|0)==(j|0)){break P}while(1){xj(J[h>>2]);h=h+4|0;if((j|0)!=(h|0)){continue}break}b=J[d+16>>2];e=J[d+12>>2];if((b|0)==(e|0)){break P}J[d+16>>2]=b+((e-b|0)+3&-4)}b=J[d+8>>2];if(b){xj(b)}ia=d+32|0;break z}}wb(g);break d;case 2:h=Bb(w+8|0,3);t=w+664|0;f=J[b+12>>2];e=J[b+20>>2];d=J[b+16>>2];g=d+4|0;e=g>>>0<4?e+1|0:e;Q:{if(g>>>0>M[b+8>>2]&(e|0)>=(f|0)|(e|0)>(f|0)){break Q}e=d+J[b>>2]|0;J[h>>2]=K[e|0]|K[e+1|0]<<8|(K[e+2|0]<<16|K[e+3|0]<<24);e=J[b+20>>2];f=e;g=J[b+16>>2];d=g+4|0;e=d>>>0<4?e+1|0:e;i=d;J[b+16>>2]=d;J[b+20>>2]=e;if(M[h>>2]>32){break Q}d=J[b+12>>2];e=f;f=g+8|0;e=f>>>0<8?e+1|0:e;if((d|0)<=(e|0)&f>>>0>M[b+8>>2]|(d|0)<(e|0)){break Q}e=i+J[b>>2]|0;f=K[e|0]|K[e+1|0]<<8|(K[e+2|0]<<16|K[e+3|0]<<24);J[h+4>>2]=f;e=J[b+20>>2];d=J[b+16>>2]+4|0;e=d>>>0<4?e+1|0:e;J[b+16>>2]=d;J[b+20>>2]=e;if(!f){break Q}J[h+8>>2]=0;if(!je(h+16|0,b)){break Q}if(!ie(h+32|0,b)){break Q}if(!ie(h+52|0,b)){break Q}if(!ie(h+72|0,b)){break Q}q=J[h+4>>2];e=0;d=ia-32|0;ia=d;g=J[h+12>>2];J[d+16>>2]=0;J[d+8>>2]=0;J[d+12>>2]=0;if(g){if(g>>>0>=1073741824){break b}b=g<<2;j=Aj(b);J[d+8>>2]=j;e=b+j|0;J[d+16>>2]=e;Xi(j,0,b);J[d+12>>2]=e}b=J[h+116>>2];f=J[b>>2];if(f){J[b+4>>2]=f;xj(f);g=J[h+12>>2];j=J[d+8>>2];e=J[d+12>>2]}J[b+4>>2]=e;J[b>>2]=j;J[b+8>>2]=J[d+16>>2];j=0;J[d+16>>2]=0;J[d+8>>2]=0;J[d+12>>2]=0;R:{if(g){if(g>>>0>=1073741824){break b}b=g<<2;k=Aj(b);J[d+8>>2]=k;j=b+k|0;J[d+16>>2]=j;Xi(k,0,b);J[d+12>>2]=j}b=J[h+128>>2];e=J[b>>2];if(e){J[b+4>>2]=e;xj(e);k=J[d+8>>2];j=J[d+12>>2]}J[b+4>>2]=j;J[b>>2]=k;J[b+8>>2]=J[d+16>>2];J[d+24>>2]=0;J[d+28>>2]=0;J[d+16>>2]=0;J[d+20>>2]=0;J[d+8>>2]=0;J[d+12>>2]=0;Rb(d+8|0);b=J[d+24>>2]+J[d+28>>2]|0;e=(b>>>0)/341|0;b=J[J[d+12>>2]+(e<<2)>>2]+P(b-P(e,341)|0,12)|0;J[b+4>>2]=0;J[b+8>>2]=0;J[b>>2]=q;g=J[d+28>>2]+1|0;J[d+28>>2]=g;S:{if(!g){break S}y=h+92|0;u=h+16|0;while(1){b=J[d+12>>2];k=J[d+24>>2];f=g-1|0;e=k+f|0;i=(e>>>0)/341|0;e=J[b+(i<<2)>>2]+P(e-P(i,341)|0,12)|0;i=J[e+8>>2];j=J[e+4>>2];e=J[e>>2];J[d+28>>2]=f;f=J[d+16>>2];if((((b|0)!=(f|0)?P(f-b>>2,341)-1|0:0)-(g+k|0)|0)+1>>>0>=682){xj(J[f-4>>2]);J[d+16>>2]=J[d+16>>2]-4}f=0;if(e>>>0>q>>>0){break S}b=J[h+12>>2];g=(j|0)!=(b-1|0)?j+1|0:0;if(g>>>0>=b>>>0){break S}j=P(i,12);n=j+J[h+128>>2]|0;l=j+J[h+116>>2]|0;m=J[h>>2];k=g<<2;o=J[k+J[n>>2]>>2];T:{if((m|0)==(o|0)){if(!e){break T}while(1){b=J[l>>2];m=J[b+8>>2];o=J[b+4>>2];p=J[b>>2];i=J[t>>2];g=J[i+4>>2];k=J[i+8>>2];U:{if(g>>>0>>0){J[g+8>>2]=m;J[g+4>>2]=o;J[g>>2]=p;J[i+4>>2]=g+12;break U}j=J[i>>2];s=(g-j|0)/12|0;b=s+1|0;if(b>>>0>=357913942){break b}k=(k-j|0)/12|0;n=k<<1;n=k>>>0>=178956970?357913941:b>>>0>>0?n:b;if(n){if(n>>>0>=357913942){break a}b=Aj(P(n,12))}else{b=0}k=b+P(s,12)|0;J[k+8>>2]=m;J[k+4>>2]=o;J[k>>2]=p;m=k+12|0;if((g|0)!=(j|0)){while(1){k=k-12|0;g=g-12|0;J[k>>2]=J[g>>2];J[k+4>>2]=J[g+4>>2];J[k+8>>2]=J[g+8>>2];if((g|0)!=(j|0)){continue}break}}J[i+8>>2]=b+P(n,12);J[i+4>>2]=m;J[i>>2]=k;if(!j){break U}xj(j)}J[h+8>>2]=J[h+8>>2]+1;f=f+1|0;if((e|0)!=(f|0)){continue}break}break T}V:{W:{X:{Y:{if(e>>>0<=2){b=J[h+104>>2];J[b>>2]=g;k=1;j=J[h+12>>2];if(j>>>0>1){break Y}break V}if(M[h+8>>2]>M[h+4>>2]){break S}b=J[h+116>>2];p=i+1|0;n=P(p,12);f=b+n|0;if((f|0)!=(l|0)){Sa(f,J[l>>2],J[l+4>>2]);b=J[h+116>>2]}b=k+J[b+n>>2]|0;J[b>>2]=J[b>>2]+(1<>2]=0;me(u,S(e)^31,d+4|0);b=e>>>1|0;f=J[d+4>>2];if(b>>>0>>0){break S}b=b-f|0;f=e-b|0;Z:{if((f|0)==(b|0)){e=b;break Z}e=J[h+84>>2];if((e|0)==J[h+76>>2]){break X}l=J[e>>2];m=J[h+88>>2];o=m+1|0;J[h+88>>2]=o;l=l&-2147483648>>>m;_:{if((o|0)==32){J[h+88>>2]=0;J[h+84>>2]=e+4;if(l){break _}break X}if(!l){break X}}e=f}f=b;break W}while(1){g=(j-1|0)!=(g|0)?g+1|0:0;J[b+(k<<2)>>2]=g;j=J[h+12>>2];k=k+1|0;if(j>>>0>k>>>0){continue}break}break V}e=b}l=k;b=J[h+128>>2];j=b+j|0;k=J[j>>2];l=l+k|0;J[l>>2]=J[l>>2]+1;Sa(b+n|0,k,J[j+4>>2]);if(f){j=J[d+28>>2]+J[d+24>>2]|0;b=J[d+16>>2];k=J[d+12>>2];if((j|0)==(((b|0)!=(k|0)?P(b-k>>2,341)-1|0:0)|0)){Rb(d+8|0);k=J[d+12>>2];j=J[d+24>>2]+J[d+28>>2]|0}b=(j>>>0)/341|0;b=J[(b<<2)+k>>2]+P(j-P(b,341)|0,12)|0;J[b+8>>2]=i;J[b+4>>2]=g;J[b>>2]=f;J[d+28>>2]=J[d+28>>2]+1}if(!e){break T}j=J[d+28>>2]+J[d+24>>2]|0;b=J[d+16>>2];k=J[d+12>>2];if((j|0)==(((b|0)!=(k|0)?P(b-k>>2,341)-1|0:0)|0)){Rb(d+8|0);k=J[d+12>>2];j=J[d+24>>2]+J[d+28>>2]|0}b=(j>>>0)/341|0;b=J[(b<<2)+k>>2]+P(j-P(b,341)|0,12)|0;J[b+8>>2]=p;J[b+4>>2]=g;J[b>>2]=e;J[d+28>>2]=J[d+28>>2]+1;break T}if(!e){break T}while(1){if(J[h+12>>2]){j=J[h+36>>2];s=J[n>>2];i=J[h+92>>2];v=J[h+104>>2];g=0;while(1){k=v+(g<<2)|0;J[i+(J[k>>2]<<2)>>2]=0;b=J[h>>2];m=J[k>>2]<<2;o=J[m+s>>2];$:{if((b|0)==(o|0)){break $}m=i+m|0;b=b-o|0;o=J[h+48>>2];r=32-o|0;if((b|0)<=(r|0)){p=J[h+44>>2];if((p|0)==(j|0)){break S}J[m>>2]=J[p>>2]<>>32-b;b=b+J[h+48>>2]|0;J[h+48>>2]=b;if((b|0)!=32){break $}J[h+48>>2]=0;J[h+44>>2]=p+4;break $}p=J[h+44>>2];x=p+4|0;if((x|0)==(j|0)){break S}z=J[p>>2];J[h+44>>2]=x;r=b-r|0;J[h+48>>2]=r;J[m>>2]=J[p+4>>2]>>>32-r|z<>>32-b}b=J[k>>2]<<2;k=b+i|0;J[k>>2]=J[k>>2]|J[b+J[l>>2]>>2];g=g+1|0;if(g>>>0>2]){continue}break}}Ui(t,y);J[h+8>>2]=J[h+8>>2]+1;f=f+1|0;if((e|0)!=(f|0)){continue}break}}g=J[d+28>>2];if(g){continue}break}}J[d+28>>2]=0;k=J[d+16>>2];g=J[d+12>>2];j=k-g|0;if(j>>>0>=9){while(1){xj(J[g>>2]);g=J[d+12>>2]+4|0;J[d+12>>2]=g;k=J[d+16>>2];j=k-g|0;if(j>>>0>8){continue}break}}b=170;aa:{switch((j>>>2|0)-1|0){case 1:b=341;case 0:J[d+24>>2]=b;break;default:break aa}}ba:{if((g|0)==(k|0)){break ba}while(1){xj(J[g>>2]);g=g+4|0;if((k|0)!=(g|0)){continue}break}b=J[d+16>>2];e=J[d+12>>2];if((b|0)==(e|0)){break ba}J[d+16>>2]=b+((e-b|0)+3&-4)}b=J[d+8>>2];if(b){xj(b)}ia=d+32|0;break R}}Ab(h);break d;case 3:i=Bb(w+8|0,3);n=w+664|0;d=J[b+12>>2];e=J[b+20>>2];g=J[b+16>>2];k=g+4|0;e=k>>>0<4?e+1|0:e;ca:{if((d|0)<=(e|0)&k>>>0>M[b+8>>2]|(d|0)<(e|0)){break ca}e=g+J[b>>2]|0;J[i>>2]=K[e|0]|K[e+1|0]<<8|(K[e+2|0]<<16|K[e+3|0]<<24);e=J[b+20>>2];d=e;k=J[b+16>>2];g=k+4|0;e=g>>>0<4?d+1|0:d;l=g;J[b+16>>2]=g;J[b+20>>2]=e;if(M[i>>2]>32){break ca}g=J[b+12>>2];e=d;d=k+8|0;e=d>>>0<8?e+1|0:e;if(d>>>0>M[b+8>>2]&(e|0)>=(g|0)|(e|0)>(g|0)){break ca}e=l+J[b>>2]|0;d=K[e|0]|K[e+1|0]<<8|(K[e+2|0]<<16|K[e+3|0]<<24);J[i+4>>2]=d;e=J[b+20>>2];g=J[b+16>>2]+4|0;e=g>>>0<4?e+1|0:e;J[b+16>>2]=g;J[b+20>>2]=e;if(!d){break ca}J[i+8>>2]=0;if(!je(i+16|0,b)){break ca}if(!ie(i+32|0,b)){break ca}if(!ie(i+52|0,b)){break ca}if(!ie(i+72|0,b)){break ca}t=J[i+4>>2];d=ia-32|0;ia=d;g=J[i+12>>2];J[d+16>>2]=0;J[d+8>>2]=0;J[d+12>>2]=0;if(g){if(g>>>0>=1073741824){break b}b=g<<2;h=Aj(b);J[d+8>>2]=h;f=b+h|0;J[d+16>>2]=f;Xi(h,0,b);J[d+12>>2]=f}b=J[i+116>>2];e=J[b>>2];if(e){J[b+4>>2]=e;xj(e);g=J[i+12>>2];h=J[d+8>>2];f=J[d+12>>2]}J[b+4>>2]=f;J[b>>2]=h;J[b+8>>2]=J[d+16>>2];h=0;J[d+16>>2]=0;J[d+8>>2]=0;J[d+12>>2]=0;da:{if(g){if(g>>>0>=1073741824){break b}b=g<<2;j=Aj(b);J[d+8>>2]=j;h=b+j|0;J[d+16>>2]=h;Xi(j,0,b);J[d+12>>2]=h}b=J[i+128>>2];e=J[b>>2];if(e){J[b+4>>2]=e;xj(e);j=J[d+8>>2];h=J[d+12>>2]}J[b+4>>2]=h;J[b>>2]=j;J[b+8>>2]=J[d+16>>2];J[d+24>>2]=0;J[d+28>>2]=0;J[d+16>>2]=0;J[d+20>>2]=0;J[d+8>>2]=0;J[d+12>>2]=0;Rb(d+8|0);b=J[d+24>>2]+J[d+28>>2]|0;e=(b>>>0)/341|0;b=J[J[d+12>>2]+(e<<2)>>2]+P(b-P(e,341)|0,12)|0;J[b+4>>2]=0;J[b+8>>2]=0;J[b>>2]=t;g=J[d+28>>2]+1|0;J[d+28>>2]=g;ea:{if(!g){break ea}y=i+92|0;u=i+16|0;while(1){b=J[d+12>>2];j=J[d+24>>2];h=g-1|0;e=j+h|0;f=(e>>>0)/341|0;e=J[b+(f<<2)>>2]+P(e-P(f,341)|0,12)|0;l=J[e+8>>2];f=J[e+4>>2];e=J[e>>2];J[d+28>>2]=h;h=J[d+16>>2];if((((b|0)!=(h|0)?P(h-b>>2,341)-1|0:0)-(g+j|0)|0)+1>>>0>=682){xj(J[h-4>>2]);J[d+16>>2]=J[d+16>>2]-4}if(e>>>0>t>>>0){break ea}b=J[i+12>>2];g=(f|0)!=(b-1|0)?f+1|0:0;if(g>>>0>=b>>>0){break ea}b=J[i+116>>2];h=P(l,12);k=b+h|0;f=J[i>>2];j=g<<2;p=h+J[i+128>>2]|0;q=J[j+J[p>>2]>>2];fa:{if((f|0)==(q|0)){q=0;if(!e){break fa}while(1){b=J[k>>2];m=J[b+8>>2];o=J[b+4>>2];p=J[b>>2];f=J[n>>2];g=J[f+4>>2];j=J[f+8>>2];ga:{if(g>>>0>>0){J[g+8>>2]=m;J[g+4>>2]=o;J[g>>2]=p;J[f+4>>2]=g+12;break ga}h=J[f>>2];s=(g-h|0)/12|0;b=s+1|0;if(b>>>0>=357913942){break b}j=(j-h|0)/12|0;l=j<<1;l=j>>>0>=178956970?357913941:b>>>0>>0?l:b;if(l){if(l>>>0>=357913942){break a}b=Aj(P(l,12))}else{b=0}j=b+P(s,12)|0;J[j+8>>2]=m;J[j+4>>2]=o;J[j>>2]=p;m=j+12|0;if((g|0)!=(h|0)){while(1){j=j-12|0;g=g-12|0;J[j>>2]=J[g>>2];J[j+4>>2]=J[g+4>>2];J[j+8>>2]=J[g+8>>2];if((g|0)!=(h|0)){continue}break}}J[f+8>>2]=b+P(l,12);J[f+4>>2]=m;J[f>>2]=j;if(!h){break ga}xj(h)}J[i+8>>2]=J[i+8>>2]+1;q=q+1|0;if((e|0)!=(q|0)){continue}break}break fa}ha:{ia:{ja:{ka:{if(e>>>0<=2){b=J[i+104>>2];J[b>>2]=g;j=1;h=J[i+12>>2];if(h>>>0>1){break ka}break ha}if(M[i+8>>2]>M[i+4>>2]){break ea}m=b;b=h+12|0;Sa(m+b|0,J[k>>2],J[k+4>>2]);b=j+J[b+J[i+116>>2]>>2]|0;J[b>>2]=J[b>>2]+(1<>2]=0;me(u,S(e)^31,d+4|0);b=e>>>1|0;f=J[d+4>>2];if(b>>>0>>0){break ea}k=l+1|0;b=b-f|0;f=e-b|0;la:{if((f|0)==(b|0)){e=b;break la}e=J[i+84>>2];if((e|0)==J[i+76>>2]){break ja}q=J[e>>2];m=J[i+88>>2];o=m+1|0;J[i+88>>2]=o;q=q&-2147483648>>>m;ma:{if((o|0)==32){J[i+88>>2]=0;J[i+84>>2]=e+4;if(q){break ma}break ja}if(!q){break ja}}e=f}f=b;break ia}while(1){g=(h-1|0)!=(g|0)?g+1|0:0;J[b+(j<<2)>>2]=g;h=J[i+12>>2];j=j+1|0;if(h>>>0>j>>>0){continue}break}break ha}e=b}m=j;b=J[i+128>>2];h=b+h|0;j=J[h>>2];q=m+j|0;J[q>>2]=J[q>>2]+1;Sa(b+P(k,12)|0,j,J[h+4>>2]);if(f){h=J[d+28>>2]+J[d+24>>2]|0;b=J[d+16>>2];j=J[d+12>>2];if((h|0)==(((b|0)!=(j|0)?P(b-j>>2,341)-1|0:0)|0)){Rb(d+8|0);j=J[d+12>>2];h=J[d+24>>2]+J[d+28>>2]|0}b=(h>>>0)/341|0;b=J[(b<<2)+j>>2]+P(h-P(b,341)|0,12)|0;J[b+8>>2]=l;J[b+4>>2]=g;J[b>>2]=f;J[d+28>>2]=J[d+28>>2]+1}if(!e){break fa}h=J[d+28>>2]+J[d+24>>2]|0;b=J[d+16>>2];j=J[d+12>>2];if((h|0)==(((b|0)!=(j|0)?P(b-j>>2,341)-1|0:0)|0)){Rb(d+8|0);j=J[d+12>>2];h=J[d+24>>2]+J[d+28>>2]|0}b=(h>>>0)/341|0;b=J[(b<<2)+j>>2]+P(h-P(b,341)|0,12)|0;J[b+8>>2]=k;J[b+4>>2]=g;J[b>>2]=e;J[d+28>>2]=J[d+28>>2]+1;break fa}h=0;if(!e){break fa}while(1){if(J[i+12>>2]){j=J[i+36>>2];s=J[p>>2];f=J[i+92>>2];v=J[i+104>>2];g=0;while(1){l=v+(g<<2)|0;J[f+(J[l>>2]<<2)>>2]=0;b=J[i>>2];q=J[l>>2]<<2;m=J[q+s>>2];na:{if((b|0)==(m|0)){break na}q=f+q|0;b=b-m|0;m=J[i+48>>2];r=32-m|0;if((b|0)<=(r|0)){o=J[i+44>>2];if((o|0)==(j|0)){break ea}J[q>>2]=J[o>>2]<>>32-b;b=b+J[i+48>>2]|0;J[i+48>>2]=b;if((b|0)!=32){break na}J[i+48>>2]=0;J[i+44>>2]=o+4;break na}o=J[i+44>>2];x=o+4|0;if((x|0)==(j|0)){break ea}z=J[o>>2];J[i+44>>2]=x;r=b-r|0;J[i+48>>2]=r;J[q>>2]=J[o+4>>2]>>>32-r|z<>>32-b}b=J[l>>2]<<2;l=b+f|0;J[l>>2]=J[l>>2]|J[b+J[k>>2]>>2];g=g+1|0;if(g>>>0>2]){continue}break}}Ui(n,y);J[i+8>>2]=J[i+8>>2]+1;h=h+1|0;if((e|0)!=(h|0)){continue}break}}g=J[d+28>>2];if(g){continue}break}}J[d+28>>2]=0;j=J[d+16>>2];g=J[d+12>>2];h=j-g|0;if(h>>>0>=9){while(1){xj(J[g>>2]);g=J[d+12>>2]+4|0;J[d+12>>2]=g;j=J[d+16>>2];h=j-g|0;if(h>>>0>8){continue}break}}b=170;oa:{switch((h>>>2|0)-1|0){case 1:b=341;case 0:J[d+24>>2]=b;break;default:break oa}}pa:{if((g|0)==(j|0)){break pa}while(1){xj(J[g>>2]);g=g+4|0;if((j|0)!=(g|0)){continue}break}b=J[d+16>>2];e=J[d+12>>2];if((b|0)==(e|0)){break pa}J[d+16>>2]=b+((e-b|0)+3&-4)}b=J[d+8>>2];if(b){xj(b)}ia=d+32|0;break da}}Ab(i);break d;case 4:h=Fb(w+8|0,3);t=w+664|0;f=J[b+12>>2];e=J[b+20>>2];d=J[b+16>>2];i=d+4|0;e=i>>>0<4?e+1|0:e;qa:{if(i>>>0>M[b+8>>2]&(e|0)>=(f|0)|(e|0)>(f|0)){break qa}e=d+J[b>>2]|0;J[h>>2]=K[e|0]|K[e+1|0]<<8|(K[e+2|0]<<16|K[e+3|0]<<24);e=J[b+20>>2];f=e;i=J[b+16>>2];d=i+4|0;e=d>>>0<4?e+1|0:e;j=d;J[b+16>>2]=d;J[b+20>>2]=e;if(M[h>>2]>32){break qa}d=J[b+12>>2];e=f;f=i+8|0;e=f>>>0<8?e+1|0:e;if((d|0)<=(e|0)&f>>>0>M[b+8>>2]|(d|0)<(e|0)){break qa}e=j+J[b>>2]|0;f=K[e|0]|K[e+1|0]<<8|(K[e+2|0]<<16|K[e+3|0]<<24);J[h+4>>2]=f;e=J[b+20>>2];d=J[b+16>>2]+4|0;e=d>>>0<4?e+1|0:e;J[b+16>>2]=d;J[b+20>>2]=e;if(!f){break qa}J[h+8>>2]=0;if(!Mb(h+16|0,b)){break qa}if(!ie(h+544|0,b)){break qa}if(!ie(h+564|0,b)){break qa}if(!ie(h+584|0,b)){break qa}q=J[h+4>>2];i=0;e=0;d=ia-32|0;ia=d;f=J[h+12>>2];J[d+16>>2]=0;J[d+8>>2]=0;J[d+12>>2]=0;if(f){if(f>>>0>=1073741824){break b}b=f<<2;i=Aj(b);J[d+8>>2]=i;e=b+i|0;J[d+16>>2]=e;Xi(i,0,b);J[d+12>>2]=e}b=J[h+628>>2];j=J[b>>2];if(j){J[b+4>>2]=j;xj(j);f=J[h+12>>2];i=J[d+8>>2];e=J[d+12>>2]}J[b+4>>2]=e;J[b>>2]=i;J[b+8>>2]=J[d+16>>2];i=0;J[d+16>>2]=0;J[d+8>>2]=0;J[d+12>>2]=0;ra:{if(f){if(f>>>0>=1073741824){break b}b=f<<2;g=Aj(b);J[d+8>>2]=g;i=b+g|0;J[d+16>>2]=i;Xi(g,0,b);J[d+12>>2]=i}b=J[h+640>>2];e=J[b>>2];if(e){J[b+4>>2]=e;xj(e);i=J[d+12>>2];g=J[d+8>>2]}J[b+4>>2]=i;J[b>>2]=g;J[b+8>>2]=J[d+16>>2];J[d+24>>2]=0;J[d+28>>2]=0;J[d+16>>2]=0;J[d+20>>2]=0;J[d+8>>2]=0;J[d+12>>2]=0;Rb(d+8|0);b=J[d+24>>2]+J[d+28>>2]|0;e=(b>>>0)/341|0;b=J[J[d+12>>2]+(e<<2)>>2]+P(b-P(e,341)|0,12)|0;J[b+4>>2]=0;J[b+8>>2]=0;J[b>>2]=q;f=J[d+28>>2]+1|0;J[d+28>>2]=f;sa:{if(!f){break sa}y=h+604|0;u=h+16|0;while(1){b=J[d+12>>2];j=J[d+24>>2];i=f-1|0;e=j+i|0;g=(e>>>0)/341|0;e=J[b+(g<<2)>>2]+P(e-P(g,341)|0,12)|0;k=J[e+8>>2];g=J[e+4>>2];e=J[e>>2];J[d+28>>2]=i;i=J[d+16>>2];if((((b|0)!=(i|0)?P(i-b>>2,341)-1|0:0)-(f+j|0)|0)+1>>>0>=682){xj(J[i-4>>2]);J[d+16>>2]=J[d+16>>2]-4}if(e>>>0>q>>>0){break sa}b=J[h+12>>2];g=(g|0)!=(b-1|0)?g+1|0:0;if(g>>>0>=b>>>0){break sa}l=P(k,12);n=l+J[h+640>>2]|0;j=l+J[h+628>>2]|0;f=J[h>>2];m=g<<2;i=J[m+J[n>>2]>>2];ta:{ua:{if((f|0)==(i|0)){k=0;if(!e){break ua}while(1){b=J[j>>2];m=J[b+8>>2];o=J[b+4>>2];p=J[b>>2];i=J[t>>2];f=J[i+4>>2];g=J[i+8>>2];va:{if(f>>>0>>0){J[f+8>>2]=m;J[f+4>>2]=o;J[f>>2]=p;J[i+4>>2]=f+12;break va}l=J[i>>2];s=(f-l|0)/12|0;b=s+1|0;if(b>>>0>=357913942){break b}g=(g-l|0)/12|0;n=g<<1;n=g>>>0>=178956970?357913941:b>>>0>>0?n:b;if(n){if(n>>>0>=357913942){break a}b=Aj(P(n,12))}else{b=0}g=b+P(s,12)|0;J[g+8>>2]=m;J[g+4>>2]=o;J[g>>2]=p;m=g+12|0;if((f|0)!=(l|0)){while(1){g=g-12|0;f=f-12|0;J[g>>2]=J[f>>2];J[g+4>>2]=J[f+4>>2];J[g+8>>2]=J[f+8>>2];if((f|0)!=(l|0)){continue}break}}J[i+8>>2]=b+P(n,12);J[i+4>>2]=m;J[i>>2]=g;if(!l){break va}xj(l)}J[h+8>>2]=J[h+8>>2]+1;k=k+1|0;if((e|0)!=(k|0)){continue}break}break ua}wa:{xa:{ya:{if(e>>>0<=2){b=J[h+616>>2];J[b>>2]=g;f=1;i=J[h+12>>2];if(i>>>0>1){break ya}break wa}if(M[h+8>>2]>M[h+4>>2]){break sa}b=J[h+628>>2];o=k+1|0;n=P(o,12);p=b+n|0;if((p|0)!=(j|0)){Sa(p,J[j>>2],J[j+4>>2]);b=J[h+628>>2]}b=m+J[b+n>>2]|0;J[b>>2]=J[b>>2]+(1<>>1|0;break xa}while(1){i=le(u+(f<<4)|0)|i<<1;f=f+1|0;if((b|0)!=(f|0)){continue}break}f=e>>>1|0;if(i>>>0<=f>>>0){break xa}break sa}while(1){g=(i-1|0)!=(g|0)?g+1|0:0;J[b+(f<<2)>>2]=g;f=f+1|0;i=J[h+12>>2];if(f>>>0>>0){continue}break}break wa}za:{Aa:{b=f-i|0;f=e-b|0;Ba:{if((f|0)==(b|0)){e=b;break Ba}e=J[h+596>>2];if((e|0)==J[h+588>>2]){break Aa}i=J[e>>2];j=J[h+600>>2];p=j+1|0;J[h+600>>2]=p;i=i&-2147483648>>>j;Ca:{if((p|0)==32){J[h+600>>2]=0;J[h+596>>2]=e+4;if(i){break Ca}break Aa}if(!i){break Aa}}e=f}f=b;break za}e=b}b=J[h+640>>2];i=b+l|0;j=J[i>>2];l=j+m|0;J[l>>2]=J[l>>2]+1;Sa(b+n|0,j,J[i+4>>2]);if(f){j=J[d+28>>2]+J[d+24>>2]|0;b=J[d+16>>2];i=J[d+12>>2];if((j|0)==(((b|0)!=(i|0)?P(b-i>>2,341)-1|0:0)|0)){Rb(d+8|0);j=J[d+24>>2]+J[d+28>>2]|0;i=J[d+12>>2]}b=(j>>>0)/341|0;b=J[i+(b<<2)>>2]+P(j-P(b,341)|0,12)|0;J[b+8>>2]=k;J[b+4>>2]=g;J[b>>2]=f;J[d+28>>2]=J[d+28>>2]+1}if(!e){break ua}i=J[d+28>>2]+J[d+24>>2]|0;b=J[d+16>>2];f=J[d+12>>2];if((i|0)==(((b|0)!=(f|0)?P(b-f>>2,341)-1|0:0)|0)){Rb(d+8|0);i=J[d+24>>2]+J[d+28>>2]|0;f=J[d+12>>2]}b=(i>>>0)/341|0;b=J[f+(b<<2)>>2]+P(i-P(b,341)|0,12)|0;J[b+8>>2]=o;J[b+4>>2]=g;J[b>>2]=e;f=J[d+28>>2]+1|0;J[d+28>>2]=f;break ta}g=0;if(!e){break ua}while(1){if(J[h+12>>2]){k=J[h+548>>2];s=J[n>>2];i=J[h+604>>2];v=J[h+616>>2];f=0;while(1){l=v+(f<<2)|0;J[i+(J[l>>2]<<2)>>2]=0;b=J[h>>2];m=J[l>>2]<<2;o=J[m+s>>2];Da:{if((b|0)==(o|0)){break Da}m=i+m|0;b=b-o|0;o=J[h+560>>2];r=32-o|0;if((b|0)<=(r|0)){p=J[h+556>>2];if((p|0)==(k|0)){break sa}J[m>>2]=J[p>>2]<>>32-b;b=b+J[h+560>>2]|0;J[h+560>>2]=b;if((b|0)!=32){break Da}J[h+560>>2]=0;J[h+556>>2]=p+4;break Da}p=J[h+556>>2];x=p+4|0;if((x|0)==(k|0)){break sa}z=J[p>>2];J[h+556>>2]=x;r=b-r|0;J[h+560>>2]=r;J[m>>2]=J[p+4>>2]>>>32-r|z<>>32-b}b=J[l>>2]<<2;l=b+i|0;J[l>>2]=J[l>>2]|J[b+J[j>>2]>>2];f=f+1|0;if(f>>>0>2]){continue}break}}Ui(t,y);J[h+8>>2]=J[h+8>>2]+1;g=g+1|0;if((e|0)!=(g|0)){continue}break}}f=J[d+28>>2]}if(f){continue}break}}J[d+28>>2]=0;g=J[d+16>>2];f=J[d+12>>2];i=g-f|0;if(i>>>0>=9){while(1){xj(J[f>>2]);f=J[d+12>>2]+4|0;J[d+12>>2]=f;g=J[d+16>>2];i=g-f|0;if(i>>>0>8){continue}break}}b=170;Ea:{switch((i>>>2|0)-1|0){case 1:b=341;case 0:J[d+24>>2]=b;break;default:break Ea}}Fa:{if((g|0)==(f|0)){break Fa}while(1){xj(J[f>>2]);f=f+4|0;if((g|0)!=(f|0)){continue}break}b=J[d+16>>2];e=J[d+12>>2];if((b|0)==(e|0)){break Fa}J[d+16>>2]=b+((e-b|0)+3&-4)}b=J[d+8>>2];if(b){xj(b)}ia=d+32|0;break ra}}Eb(h);break d;case 5:g=Fb(w+8|0,3);t=w+664|0;f=J[b+12>>2];e=J[b+20>>2];d=J[b+16>>2];h=d+4|0;e=h>>>0<4?e+1|0:e;Ga:{if(h>>>0>M[b+8>>2]&(e|0)>=(f|0)|(e|0)>(f|0)){break Ga}e=d+J[b>>2]|0;J[g>>2]=K[e|0]|K[e+1|0]<<8|(K[e+2|0]<<16|K[e+3|0]<<24);e=J[b+20>>2];f=e;h=J[b+16>>2];d=h+4|0;e=d>>>0<4?e+1|0:e;i=d;J[b+16>>2]=d;J[b+20>>2]=e;if(M[g>>2]>32){break Ga}d=J[b+12>>2];e=f;f=h+8|0;e=f>>>0<8?e+1|0:e;if((d|0)<=(e|0)&f>>>0>M[b+8>>2]|(d|0)<(e|0)){break Ga}e=i+J[b>>2]|0;f=K[e|0]|K[e+1|0]<<8|(K[e+2|0]<<16|K[e+3|0]<<24);J[g+4>>2]=f;e=J[b+20>>2];d=J[b+16>>2]+4|0;e=d>>>0<4?e+1|0:e;J[b+16>>2]=d;J[b+20>>2]=e;if(!f){break Ga}J[g+8>>2]=0;if(!Mb(g+16|0,b)){break Ga}if(!ie(g+544|0,b)){break Ga}if(!ie(g+564|0,b)){break Ga}if(!ie(g+584|0,b)){break Ga}q=J[g+4>>2];i=0;e=0;d=ia-32|0;ia=d;f=J[g+12>>2];J[d+16>>2]=0;J[d+8>>2]=0;J[d+12>>2]=0;if(f){if(f>>>0>=1073741824){break b}b=f<<2;i=Aj(b);J[d+8>>2]=i;e=b+i|0;J[d+16>>2]=e;Xi(i,0,b);J[d+12>>2]=e}b=J[g+628>>2];h=J[b>>2];if(h){J[b+4>>2]=h;xj(h);f=J[g+12>>2];i=J[d+8>>2];e=J[d+12>>2]}J[b+4>>2]=e;J[b>>2]=i;J[b+8>>2]=J[d+16>>2];i=0;J[d+16>>2]=0;J[d+8>>2]=0;J[d+12>>2]=0;Ha:{if(f){if(f>>>0>=1073741824){break b}b=f<<2;j=Aj(b);J[d+8>>2]=j;i=b+j|0;J[d+16>>2]=i;Xi(j,0,b);J[d+12>>2]=i}b=J[g+640>>2];e=J[b>>2];if(e){J[b+4>>2]=e;xj(e);j=J[d+8>>2];i=J[d+12>>2]}J[b+4>>2]=i;J[b>>2]=j;J[b+8>>2]=J[d+16>>2];J[d+24>>2]=0;J[d+28>>2]=0;J[d+16>>2]=0;J[d+20>>2]=0;J[d+8>>2]=0;J[d+12>>2]=0;Rb(d+8|0);b=J[d+24>>2]+J[d+28>>2]|0;e=(b>>>0)/341|0;b=J[J[d+12>>2]+(e<<2)>>2]+P(b-P(e,341)|0,12)|0;J[b+4>>2]=0;J[b+8>>2]=0;J[b>>2]=q;f=J[d+28>>2]+1|0;J[d+28>>2]=f;Ia:{if(!f){break Ia}y=g+604|0;u=g+16|0;while(1){b=J[d+12>>2];j=J[d+24>>2];h=f-1|0;e=j+h|0;i=(e>>>0)/341|0;e=J[b+(i<<2)>>2]+P(e-P(i,341)|0,12)|0;k=J[e+8>>2];i=J[e+4>>2];e=J[e>>2];J[d+28>>2]=h;h=J[d+16>>2];if((((b|0)!=(h|0)?P(h-b>>2,341)-1|0:0)-(f+j|0)|0)+1>>>0>=682){xj(J[h-4>>2]);J[d+16>>2]=J[d+16>>2]-4}if(e>>>0>q>>>0){break Ia}h=0;b=J[g+12>>2];j=(i|0)!=(b-1|0)?i+1|0:0;if(j>>>0>=b>>>0){break Ia}b=J[g+628>>2];n=P(k,12);l=b+n|0;f=J[g>>2];m=j<<2;p=n+J[g+640>>2]|0;i=J[m+J[p>>2]>>2];Ja:{Ka:{if((f|0)==(i|0)){if(!e){break Ka}while(1){b=J[l>>2];m=J[b+8>>2];o=J[b+4>>2];p=J[b>>2];i=J[t>>2];f=J[i+4>>2];j=J[i+8>>2];La:{if(f>>>0>>0){J[f+8>>2]=m;J[f+4>>2]=o;J[f>>2]=p;J[i+4>>2]=f+12;break La}k=J[i>>2];s=(f-k|0)/12|0;b=s+1|0;if(b>>>0>=357913942){break b}j=(j-k|0)/12|0;n=j<<1;n=j>>>0>=178956970?357913941:b>>>0>>0?n:b;if(n){if(n>>>0>=357913942){break a}b=Aj(P(n,12))}else{b=0}j=b+P(s,12)|0;J[j+8>>2]=m;J[j+4>>2]=o;J[j>>2]=p;m=j+12|0;if((f|0)!=(k|0)){while(1){j=j-12|0;f=f-12|0;J[j>>2]=J[f>>2];J[j+4>>2]=J[f+4>>2];J[j+8>>2]=J[f+8>>2];if((f|0)!=(k|0)){continue}break}}J[i+8>>2]=b+P(n,12);J[i+4>>2]=m;J[i>>2]=j;if(!k){break La}xj(k)}J[g+8>>2]=J[g+8>>2]+1;h=h+1|0;if((e|0)!=(h|0)){continue}break}break Ka}Ma:{Na:{Oa:{if(e>>>0<=2){b=J[g+616>>2];J[b>>2]=j;f=1;i=J[g+12>>2];if(i>>>0>1){break Oa}break Ma}if(M[g+8>>2]>M[g+4>>2]){break Ia}h=b;b=n+12|0;Sa(h+b|0,J[l>>2],J[l+4>>2]);b=m+J[b+J[g+628>>2]>>2]|0;J[b>>2]=J[b>>2]+(1<>>1|0;break Na}while(1){i=le(u+(f<<4)|0)|i<<1;f=f+1|0;if((b|0)!=(f|0)){continue}break}f=e>>>1|0;if(i>>>0<=f>>>0){break Na}break Ia}while(1){j=(i-1|0)!=(j|0)?j+1|0:0;J[b+(f<<2)>>2]=j;f=f+1|0;i=J[g+12>>2];if(f>>>0>>0){continue}break}break Ma}l=k+1|0;Pa:{Qa:{b=f-i|0;f=e-b|0;Ra:{if((f|0)==(b|0)){e=b;break Ra}e=J[g+596>>2];if((e|0)==J[g+588>>2]){break Qa}h=J[e>>2];i=J[g+600>>2];o=i+1|0;J[g+600>>2]=o;h=h&-2147483648>>>i;Sa:{if((o|0)==32){J[g+600>>2]=0;J[g+596>>2]=e+4;if(h){break Sa}break Qa}if(!h){break Qa}}e=f}f=b;break Pa}e=b}b=J[g+640>>2];h=b+n|0;i=J[h>>2];n=i+m|0;J[n>>2]=J[n>>2]+1;Sa(b+P(l,12)|0,i,J[h+4>>2]);if(f){h=J[d+28>>2]+J[d+24>>2]|0;b=J[d+16>>2];i=J[d+12>>2];if((h|0)==(((b|0)!=(i|0)?P(b-i>>2,341)-1|0:0)|0)){Rb(d+8|0);i=J[d+12>>2];h=J[d+24>>2]+J[d+28>>2]|0}b=(h>>>0)/341|0;b=J[(b<<2)+i>>2]+P(h-P(b,341)|0,12)|0;J[b+8>>2]=k;J[b+4>>2]=j;J[b>>2]=f;J[d+28>>2]=J[d+28>>2]+1}if(!e){break Ka}i=J[d+28>>2]+J[d+24>>2]|0;b=J[d+16>>2];f=J[d+12>>2];if((i|0)==(((b|0)!=(f|0)?P(b-f>>2,341)-1|0:0)|0)){Rb(d+8|0);i=J[d+24>>2]+J[d+28>>2]|0;f=J[d+12>>2]}b=(i>>>0)/341|0;b=J[f+(b<<2)>>2]+P(i-P(b,341)|0,12)|0;J[b+8>>2]=l;J[b+4>>2]=j;J[b>>2]=e;f=J[d+28>>2]+1|0;J[d+28>>2]=f;break Ja}if(!e){break Ka}while(1){if(J[g+12>>2]){j=J[g+548>>2];s=J[p>>2];i=J[g+604>>2];v=J[g+616>>2];f=0;while(1){k=v+(f<<2)|0;J[i+(J[k>>2]<<2)>>2]=0;b=J[g>>2];n=J[k>>2]<<2;m=J[n+s>>2];Ta:{if((b|0)==(m|0)){break Ta}n=i+n|0;b=b-m|0;m=J[g+560>>2];r=32-m|0;if((b|0)<=(r|0)){o=J[g+556>>2];if((o|0)==(j|0)){break Ia}J[n>>2]=J[o>>2]<>>32-b;b=b+J[g+560>>2]|0;J[g+560>>2]=b;if((b|0)!=32){break Ta}J[g+560>>2]=0;J[g+556>>2]=o+4;break Ta}o=J[g+556>>2];x=o+4|0;if((x|0)==(j|0)){break Ia}z=J[o>>2];J[g+556>>2]=x;r=b-r|0;J[g+560>>2]=r;J[n>>2]=J[o+4>>2]>>>32-r|z<>>32-b}b=J[k>>2]<<2;k=b+i|0;J[k>>2]=J[k>>2]|J[b+J[l>>2]>>2];f=f+1|0;if(f>>>0>2]){continue}break}}Ui(t,y);J[g+8>>2]=J[g+8>>2]+1;h=h+1|0;if((e|0)!=(h|0)){continue}break}}f=J[d+28>>2]}if(f){continue}break}}J[d+28>>2]=0;j=J[d+16>>2];f=J[d+12>>2];i=j-f|0;if(i>>>0>=9){while(1){xj(J[f>>2]);f=J[d+12>>2]+4|0;J[d+12>>2]=f;j=J[d+16>>2];i=j-f|0;if(i>>>0>8){continue}break}}b=170;Ua:{switch((i>>>2|0)-1|0){case 1:b=341;case 0:J[d+24>>2]=b;break;default:break Ua}}Va:{if((f|0)==(j|0)){break Va}while(1){xj(J[f>>2]);f=f+4|0;if((j|0)!=(f|0)){continue}break}b=J[d+16>>2];e=J[d+12>>2];if((b|0)==(e|0)){break Va}J[d+16>>2]=b+((e-b|0)+3&-4)}b=J[d+8>>2];if(b){xj(b)}ia=d+32|0;break Ha}}Eb(g);break d;case 6:break f;default:break c}}h=Fb(w+8|0,3);t=w+664|0;f=J[b+12>>2];e=J[b+20>>2];d=J[b+16>>2];i=d+4|0;e=i>>>0<4?e+1|0:e;Wa:{if(i>>>0>M[b+8>>2]&(e|0)>=(f|0)|(e|0)>(f|0)){break Wa}e=d+J[b>>2]|0;J[h>>2]=K[e|0]|K[e+1|0]<<8|(K[e+2|0]<<16|K[e+3|0]<<24);e=J[b+20>>2];f=e;i=J[b+16>>2];d=i+4|0;e=d>>>0<4?e+1|0:e;j=d;J[b+16>>2]=d;J[b+20>>2]=e;if(M[h>>2]>32){break Wa}d=J[b+12>>2];e=f;f=i+8|0;e=f>>>0<8?e+1|0:e;if((d|0)<=(e|0)&f>>>0>M[b+8>>2]|(d|0)<(e|0)){break Wa}e=j+J[b>>2]|0;f=K[e|0]|K[e+1|0]<<8|(K[e+2|0]<<16|K[e+3|0]<<24);J[h+4>>2]=f;e=J[b+20>>2];d=J[b+16>>2]+4|0;e=d>>>0<4?e+1|0:e;J[b+16>>2]=d;J[b+20>>2]=e;if(!f){break Wa}J[h+8>>2]=0;if(!Mb(h+16|0,b)){break Wa}if(!ie(h+544|0,b)){break Wa}if(!ie(h+564|0,b)){break Wa}if(!ie(h+584|0,b)){break Wa}q=J[h+4>>2];i=0;e=0;d=ia-32|0;ia=d;f=J[h+12>>2];J[d+16>>2]=0;J[d+8>>2]=0;J[d+12>>2]=0;if(f){if(f>>>0>=1073741824){break b}b=f<<2;i=Aj(b);J[d+8>>2]=i;e=b+i|0;J[d+16>>2]=e;Xi(i,0,b);J[d+12>>2]=e}b=J[h+628>>2];j=J[b>>2];if(j){J[b+4>>2]=j;xj(j);f=J[h+12>>2];i=J[d+8>>2];e=J[d+12>>2]}J[b+4>>2]=e;J[b>>2]=i;J[b+8>>2]=J[d+16>>2];i=0;J[d+16>>2]=0;J[d+8>>2]=0;J[d+12>>2]=0;Xa:{if(f){if(f>>>0>=1073741824){break b}b=f<<2;g=Aj(b);J[d+8>>2]=g;i=b+g|0;J[d+16>>2]=i;Xi(g,0,b);J[d+12>>2]=i}b=J[h+640>>2];e=J[b>>2];if(e){J[b+4>>2]=e;xj(e);i=J[d+12>>2];g=J[d+8>>2]}J[b+4>>2]=i;J[b>>2]=g;J[b+8>>2]=J[d+16>>2];J[d+24>>2]=0;J[d+28>>2]=0;J[d+16>>2]=0;J[d+20>>2]=0;J[d+8>>2]=0;J[d+12>>2]=0;Rb(d+8|0);b=J[d+24>>2]+J[d+28>>2]|0;e=(b>>>0)/341|0;b=J[J[d+12>>2]+(e<<2)>>2]+P(b-P(e,341)|0,12)|0;J[b+4>>2]=0;J[b+8>>2]=0;J[b>>2]=q;f=J[d+28>>2]+1|0;J[d+28>>2]=f;Ya:{if(!f){break Ya}y=h+604|0;u=h+16|0;while(1){b=J[d+12>>2];i=J[d+24>>2];g=f-1|0;e=i+g|0;j=(e>>>0)/341|0;e=J[b+(j<<2)>>2]+P(e-P(j,341)|0,12)|0;k=J[e+8>>2];e=J[e>>2];J[d+28>>2]=g;g=J[d+16>>2];if((((b|0)!=(g|0)?P(g-b>>2,341)-1|0:0)-(f+i|0)|0)+1>>>0>=682){xj(J[g-4>>2]);J[d+16>>2]=J[d+16>>2]-4}if(e>>>0>q>>>0){break Ya}b=J[h+628>>2];l=P(k,12);n=l+J[h+640>>2]|0;g=Si(h,e,n);if(g>>>0>=M[h+12>>2]){break Ya}j=b+l|0;f=J[h>>2];m=g<<2;i=J[m+J[n>>2]>>2];Za:{_a:{if((f|0)==(i|0)){k=0;if(!e){break _a}while(1){b=J[j>>2];m=J[b+8>>2];o=J[b+4>>2];p=J[b>>2];i=J[t>>2];f=J[i+4>>2];g=J[i+8>>2];$a:{if(f>>>0>>0){J[f+8>>2]=m;J[f+4>>2]=o;J[f>>2]=p;J[i+4>>2]=f+12;break $a}l=J[i>>2];s=(f-l|0)/12|0;b=s+1|0;if(b>>>0>=357913942){break b}g=(g-l|0)/12|0;n=g<<1;n=g>>>0>=178956970?357913941:b>>>0>>0?n:b;if(n){if(n>>>0>=357913942){break a}b=Aj(P(n,12))}else{b=0}g=b+P(s,12)|0;J[g+8>>2]=m;J[g+4>>2]=o;J[g>>2]=p;m=g+12|0;if((f|0)!=(l|0)){while(1){g=g-12|0;f=f-12|0;J[g>>2]=J[f>>2];J[g+4>>2]=J[f+4>>2];J[g+8>>2]=J[f+8>>2];if((f|0)!=(l|0)){continue}break}}J[i+8>>2]=b+P(n,12);J[i+4>>2]=m;J[i>>2]=g;if(!l){break $a}xj(l)}J[h+8>>2]=J[h+8>>2]+1;k=k+1|0;if((e|0)!=(k|0)){continue}break}break _a}ab:{bb:{cb:{if(e>>>0<=2){b=J[h+616>>2];J[b>>2]=g;f=1;i=J[h+12>>2];if(i>>>0>1){break cb}break ab}if(M[h+8>>2]>M[h+4>>2]){break Ya}b=J[h+628>>2];o=k+1|0;n=P(o,12);p=b+n|0;if((p|0)!=(j|0)){Sa(p,J[j>>2],J[j+4>>2]);b=J[h+628>>2]}b=m+J[b+n>>2]|0;J[b>>2]=J[b>>2]+(1<>>1|0;break bb}while(1){i=le(u+(f<<4)|0)|i<<1;f=f+1|0;if((b|0)!=(f|0)){continue}break}f=e>>>1|0;if(i>>>0<=f>>>0){break bb}break Ya}while(1){g=(i-1|0)!=(g|0)?g+1|0:0;J[b+(f<<2)>>2]=g;f=f+1|0;i=J[h+12>>2];if(f>>>0>>0){continue}break}break ab}db:{eb:{b=f-i|0;f=e-b|0;fb:{if((f|0)==(b|0)){e=b;break fb}e=J[h+596>>2];if((e|0)==J[h+588>>2]){break eb}i=J[e>>2];j=J[h+600>>2];p=j+1|0;J[h+600>>2]=p;i=i&-2147483648>>>j;gb:{if((p|0)==32){J[h+600>>2]=0;J[h+596>>2]=e+4;if(i){break gb}break eb}if(!i){break eb}}e=f}f=b;break db}e=b}b=J[h+640>>2];i=b+l|0;j=J[i>>2];l=j+m|0;J[l>>2]=J[l>>2]+1;Sa(b+n|0,j,J[i+4>>2]);if(f){j=J[d+28>>2]+J[d+24>>2]|0;b=J[d+16>>2];i=J[d+12>>2];if((j|0)==(((b|0)!=(i|0)?P(b-i>>2,341)-1|0:0)|0)){Rb(d+8|0);j=J[d+24>>2]+J[d+28>>2]|0;i=J[d+12>>2]}b=(j>>>0)/341|0;b=J[i+(b<<2)>>2]+P(j-P(b,341)|0,12)|0;J[b+8>>2]=k;J[b+4>>2]=g;J[b>>2]=f;J[d+28>>2]=J[d+28>>2]+1}if(!e){break _a}i=J[d+28>>2]+J[d+24>>2]|0;b=J[d+16>>2];f=J[d+12>>2];if((i|0)==(((b|0)!=(f|0)?P(b-f>>2,341)-1|0:0)|0)){Rb(d+8|0);i=J[d+24>>2]+J[d+28>>2]|0;f=J[d+12>>2]}b=(i>>>0)/341|0;b=J[f+(b<<2)>>2]+P(i-P(b,341)|0,12)|0;J[b+8>>2]=o;J[b+4>>2]=g;J[b>>2]=e;f=J[d+28>>2]+1|0;J[d+28>>2]=f;break Za}g=0;if(!e){break _a}while(1){if(J[h+12>>2]){k=J[h+548>>2];s=J[n>>2];i=J[h+604>>2];v=J[h+616>>2];f=0;while(1){l=v+(f<<2)|0;J[i+(J[l>>2]<<2)>>2]=0;b=J[h>>2];m=J[l>>2]<<2;o=J[m+s>>2];hb:{if((b|0)==(o|0)){break hb}m=i+m|0;b=b-o|0;o=J[h+560>>2];r=32-o|0;if((b|0)<=(r|0)){p=J[h+556>>2];if((p|0)==(k|0)){break Ya}J[m>>2]=J[p>>2]<>>32-b;b=b+J[h+560>>2]|0;J[h+560>>2]=b;if((b|0)!=32){break hb}J[h+560>>2]=0;J[h+556>>2]=p+4;break hb}p=J[h+556>>2];x=p+4|0;if((x|0)==(k|0)){break Ya}z=J[p>>2];J[h+556>>2]=x;r=b-r|0;J[h+560>>2]=r;J[m>>2]=J[p+4>>2]>>>32-r|z<>>32-b}b=J[l>>2]<<2;l=b+i|0;J[l>>2]=J[l>>2]|J[b+J[j>>2]>>2];f=f+1|0;if(f>>>0>2]){continue}break}}Ui(t,y);J[h+8>>2]=J[h+8>>2]+1;g=g+1|0;if((e|0)!=(g|0)){continue}break}}f=J[d+28>>2]}if(f){continue}break}}J[d+28>>2]=0;g=J[d+16>>2];f=J[d+12>>2];i=g-f|0;if(i>>>0>=9){while(1){xj(J[f>>2]);f=J[d+12>>2]+4|0;J[d+12>>2]=f;g=J[d+16>>2];i=g-f|0;if(i>>>0>8){continue}break}}b=170;ib:{switch((i>>>2|0)-1|0){case 1:b=341;case 0:J[d+24>>2]=b;break;default:break ib}}jb:{if((g|0)==(f|0)){break jb}while(1){xj(J[f>>2]);f=f+4|0;if((g|0)!=(f|0)){continue}break}b=J[d+16>>2];e=J[d+12>>2];if((b|0)==(e|0)){break jb}J[d+16>>2]=b+((e-b|0)+3&-4)}b=J[d+8>>2];if(b){xj(b)}ia=d+32|0;break Xa}}Eb(h)}f=J[a+12>>2]==((J[c+4>>2]-J[c>>2]|0)/12|0)}ia=w+672|0;return f}La();C()}Za();C()}function re(a,b,c,d){var e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0;if(!a){return 1}e=J[c+20>>2];g=J[c+12>>2];i=J[c+16>>2];a:{if((e|0)>=(g|0)&i>>>0>=M[c+8>>2]|(e|0)>(g|0)){break a}g=K[i+J[c>>2]|0];i=i+1|0;e=i?e:e+1|0;J[c+16>>2]=i;J[c+20>>2]=e;b:{switch(g|0){case 0:f=a;e=b;k=d;d=0;m=ia+-64|0;ia=m;J[m+56>>2]=0;J[m+48>>2]=0;J[m+52>>2]=0;J[m+40>>2]=0;J[m+44>>2]=0;J[m+32>>2]=0;J[m+36>>2]=0;J[m+24>>2]=0;J[m+28>>2]=0;J[m+16>>2]=0;J[m+20>>2]=0;J[m+8>>2]=0;J[m+12>>2]=0;c:{if(!se(m+8|0,c)){break c}if(!te(m+8|0,c)|(J[m+20>>2]?0:f)){break c}sg(c,0,0);b=(f|0)!=0;d:{if(f){n=e<<2;q=J[m+36>>2];r=J[m+48>>2];s=J[m+24>>2];while(1){l=J[m+56>>2];e:{if(l>>>0>16383){break e}a=J[m+52>>2];while(1){if((a|0)<=0){break e}a=a-1|0;J[m+52>>2]=a;l=K[a+r|0]|l<<8;J[m+56>>2]=l;if(l>>>0<16384){continue}break}}a=l&4095;t=J[(a<<2)+s>>2];i=(t<<3)+q|0;J[m+56>>2]=(P(J[i>>2],l>>>12|0)+a|0)-J[i+4>>2];f:{if((e|0)<=0){break f}if(!K[c+36|0]|t>>>0>32){break d}if(!t){Xi(k+(d<<2)|0,0,n);d=d+e|0;break f}w=t&-2;x=t&1;g=d+e|0;b=J[c+32>>2];j=J[c+28>>2];h=J[c+24>>2];while(1){l=0;a=b;i=0;p=0;if((t|0)!=1){while(1){o=h+(a>>>3|0)|0;g:{if(o>>>0>=j>>>0){o=0;break g}o=K[o|0];b=a+1|0;J[c+32>>2]=b;o=o>>>(a&7)&1;a=b}o=o<>>3|0)|0;if(u>>>0>>0){i=K[u|0];b=a+1|0;J[c+32>>2]=b;i=i>>>(a&7)&1;a=b}u=l|1;l=l+2|0;i=o|i<>>3|0)|0;if(o>>>0>>0){o=K[o|0];b=a+1|0;J[c+32>>2]=b;a=o>>>(a&7)&1}else{a=0}i=a<>2]=i;d=d+1|0;if((g|0)!=(d|0)){continue}break}d=g}v=e+v|0;b=f>>>0>v>>>0;if(b){continue}break}}H[c+36|0]=0;d=J[c+20>>2];e=0;a=J[c+32>>2]+7|0;e=a>>>0<7?1:e;f=(e&7)<<29|a>>>3;a=f+J[c+16>>2]|0;e=(e>>>3|0)+d|0;J[c+16>>2]=a;J[c+20>>2]=a>>>0>>0?e+1|0:e}l=b^1}a=J[m+36>>2];if(a){J[m+40>>2]=a;xj(a)}a=J[m+24>>2];if(a){J[m+28>>2]=a;xj(a)}a=J[m+8>>2];if(a){J[m+12>>2]=a;xj(a)}ia=m- -64|0;return l&1;case 1:break b;default:break a}}b=0;e=J[c+20>>2];g=J[c+12>>2];i=J[c+16>>2];h:{if((e|0)>=(g|0)&i>>>0>=M[c+8>>2]|(e|0)>(g|0)){break h}g=K[i+J[c>>2]|0];i=i+1|0;e=i?e:e+1|0;J[c+16>>2]=i;J[c+20>>2]=e;i:{switch(g-1|0){case 8:m=a;t=d;g=ia+-64|0;ia=g;J[g+56>>2]=0;J[g+48>>2]=0;J[g+52>>2]=0;J[g+40>>2]=0;J[g+44>>2]=0;J[g+32>>2]=0;J[g+36>>2]=0;J[g+24>>2]=0;J[g+28>>2]=0;J[g+16>>2]=0;J[g+20>>2]=0;J[g+8>>2]=0;J[g+12>>2]=0;h=g+8|0;a=L[c+38>>1];j:{k:{if(!a){break k}l:{if(a>>>0<=511){a=J[c+12>>2];e=J[c+20>>2];b=J[c+16>>2];d=b+4|0;e=d>>>0<4?e+1|0:e;if((a|0)<=(e|0)&d>>>0>M[c+8>>2]|(a|0)<(e|0)){break k}a=b+J[c>>2]|0;j=K[a|0]|K[a+1|0]<<8|(K[a+2|0]<<16|K[a+3|0]<<24);J[h+12>>2]=j;e=J[c+20>>2];a=J[c+16>>2]+4|0;e=a>>>0<4?e+1|0:e;f=a;J[c+16>>2]=a;J[c+20>>2]=e;break l}if(!ve(1,h+12|0,c)){break k}f=J[c+16>>2];e=J[c+20>>2];j=J[h+12>>2]}a=J[c+8>>2];b=a-f|0;a=J[c+12>>2]-((a>>>0>>0)+e|0)|0;if(b>>>0>>6>>>0&(a|0)<=0|(a|0)<0){break k}b=J[h>>2];a=J[h+4>>2]-b>>2;m:{if(a>>>0>>0){Oa(h,j-a|0);j=J[h+12>>2];break m}if(a>>>0<=j>>>0){break m}J[h+4>>2]=b+(j<<2)}d=1;if(!j){break j}f=J[c+16>>2];e=J[c+20>>2];q=J[h>>2];r=J[c+8>>2];o=J[c+12>>2];b=0;while(1){d=0;if((e|0)>=(o|0)&f>>>0>=r>>>0|(e|0)>(o|0)){break j}d=J[c>>2];n=K[d+f|0];a=f+1|0;e=a?e:e+1|0;f=a;J[c+16>>2]=a;J[c+20>>2]=e;a=n>>>2|0;i=0;n:{o:{p:{q:{s=n&3;switch(s|0){case 0:break o;case 3:break q;default:break p}}a=a+b|0;d=0;if(a>>>0>=j>>>0){break j}Xi(q+(b<<2)|0,0,(n&252)+4|0);b=a;break n}while(1){if((e|0)>=(o|0)&f>>>0>=r>>>0|(e|0)>(o|0)){break k}j=K[d+f|0];f=f+1|0;e=f?e:e+1|0;J[c+16>>2]=f;J[c+20>>2]=e;a=j<<(i<<3|6)|a;i=i+1|0;if((s|0)!=(i|0)){continue}break}}J[q+(b<<2)>>2]=a}b=b+1|0;j=J[h+12>>2];if(b>>>0>>0){continue}break}a=h+16|0;o=J[h>>2];d=J[h+16>>2];b=J[h+20>>2]-d|0;r:{if(b>>>0<=32767){Oa(a,8192-(b>>>2|0)|0);break r}if((b|0)==32768){break r}J[h+20>>2]=d+32768}d=h+28|0;b=J[d>>2];e=J[h+32>>2]-b>>3;s:{if(e>>>0>>0){we(d,j-e|0);b=J[d>>2];break s}if(e>>>0>j>>>0){J[h+32>>2]=(j<<3)+b}if(!j){break k}}h=J[a>>2];e=0;d=0;while(1){f=o+(e<<2)|0;i=J[f>>2];n=(e<<3)+b|0;a=d;J[n+4>>2]=a;J[n>>2]=i;f=J[f>>2];d=f+a|0;if(d>>>0>8192){break k}t:{if(a>>>0>=d>>>0){break t}i=0;n=f&7;if(n){while(1){J[h+(a<<2)>>2]=e;a=a+1|0;i=i+1|0;if((n|0)!=(i|0)){continue}break}}if(f-1>>>0<=6){break t}while(1){f=h+(a<<2)|0;J[f>>2]=e;J[f+28>>2]=e;J[f+24>>2]=e;J[f+20>>2]=e;J[f+16>>2]=e;J[f+12>>2]=e;J[f+8>>2]=e;J[f+4>>2]=e;a=a+8|0;if((d|0)!=(a|0)){continue}break}}e=e+1|0;if((j|0)!=(e|0)){continue}break}k=(d|0)==8192}d=k}u:{if(!d|(J[g+20>>2]?0:m)){break u}d=0;i=ia-16|0;ia=i;v:{w:{if(L[c+38>>1]<=511){j=J[c+12>>2];a=j;e=J[c+20>>2];k=J[c+16>>2];f=k+8|0;e=f>>>0<8?e+1|0:e;b=J[c+8>>2];if(b>>>0>>0&(a|0)<=(e|0)|(a|0)<(e|0)){break v}k=k+J[c>>2]|0;a=K[k|0]|K[k+1|0]<<8|(K[k+2|0]<<16|K[k+3|0]<<24);k=K[k+4|0]|K[k+5|0]<<8|(K[k+6|0]<<16|K[k+7|0]<<24);J[c+16>>2]=f;J[c+20>>2]=e;break w}if(!xe(1,i+8|0,c)){break v}f=J[c+16>>2];e=J[c+20>>2];b=J[c+8>>2];j=J[c+12>>2];a=J[i+8>>2];k=J[i+12>>2]}h=b-f|0;b=j-((b>>>0>>0)+e|0)|0;if((b|0)==(k|0)&a>>>0>h>>>0|b>>>0>>0){break v}e=e+k|0;b=a+f|0;e=b>>>0>>0?e+1|0:e;J[c+16>>2]=b;J[c+20>>2]=e;if((a|0)<=0){break v}b=f+J[c>>2]|0;J[g+48>>2]=b;c=a-1|0;e=c+b|0;f=K[e|0];x:{if(f>>>0<=63){J[g+52>>2]=c;a=K[e|0]&63;break x}y:{switch((f>>>6|0)-1|0){case 0:if(a>>>0<2){break v}a=a-2|0;J[g+52>>2]=a;a=a+b|0;a=K[a+1|0]<<8&16128|K[a|0];break x;case 1:if(a>>>0<3){break v}a=a-3|0;J[g+52>>2]=a;a=a+b|0;a=K[a+1|0]<<8|K[a+2|0]<<16&4128768|K[a|0];break x;default:break y}}a=a-4|0;J[g+52>>2]=a;a=a+b|0;a=K[a+2|0]<<16|K[a+3|0]<<24&1056964608|K[a+1|0]<<8|K[a|0]}J[g+56>>2]=a+32768;d=a>>>0<8355840}ia=i+16|0;if(!d){break u}if(!m){l=1;break u}a=J[g+56>>2];b=J[g+36>>2];c=J[g+48>>2];d=J[g+24>>2];while(1){z:{if(a>>>0>32767){break z}l=J[g+52>>2];while(1){if((l|0)<=0){break z}l=l-1|0;J[g+52>>2]=l;a=K[c+l|0]|a<<8;J[g+56>>2]=a;if(a>>>0<32768){continue}break}}e=a&8191;f=J[d+(e<<2)>>2];l=b+(f<<3)|0;a=(P(J[l>>2],a>>>13|0)+e|0)-J[l+4>>2]|0;J[g+56>>2]=a;J[t+(p<<2)>>2]=f;l=1;p=p+1|0;if((m|0)!=(p|0)){continue}break}}a=J[g+36>>2];if(a){J[g+40>>2]=a;xj(a)}a=J[g+24>>2];if(a){J[g+28>>2]=a;xj(a)}a=J[g+8>>2];if(a){J[g+12>>2]=a;xj(a)}ia=g- -64|0;b=l;break h;case 9:m=a;t=d;g=ia+-64|0;ia=g;J[g+56>>2]=0;J[g+48>>2]=0;J[g+52>>2]=0;J[g+40>>2]=0;J[g+44>>2]=0;J[g+32>>2]=0;J[g+36>>2]=0;J[g+24>>2]=0;J[g+28>>2]=0;J[g+16>>2]=0;J[g+20>>2]=0;J[g+8>>2]=0;J[g+12>>2]=0;h=g+8|0;a=L[c+38>>1];A:{B:{if(!a){break B}C:{if(a>>>0<=511){a=J[c+12>>2];e=J[c+20>>2];b=J[c+16>>2];d=b+4|0;e=d>>>0<4?e+1|0:e;if((a|0)<=(e|0)&d>>>0>M[c+8>>2]|(a|0)<(e|0)){break B}a=b+J[c>>2]|0;j=K[a|0]|K[a+1|0]<<8|(K[a+2|0]<<16|K[a+3|0]<<24);J[h+12>>2]=j;e=J[c+20>>2];a=J[c+16>>2]+4|0;e=a>>>0<4?e+1|0:e;f=a;J[c+16>>2]=a;J[c+20>>2]=e;break C}if(!ve(1,h+12|0,c)){break B}f=J[c+16>>2];e=J[c+20>>2];j=J[h+12>>2]}a=J[c+8>>2];b=a-f|0;a=J[c+12>>2]-((a>>>0>>0)+e|0)|0;if(b>>>0>>6>>>0&(a|0)<=0|(a|0)<0){break B}b=J[h>>2];a=J[h+4>>2]-b>>2;D:{if(a>>>0>>0){Oa(h,j-a|0);j=J[h+12>>2];break D}if(a>>>0<=j>>>0){break D}J[h+4>>2]=b+(j<<2)}d=1;if(!j){break A}f=J[c+16>>2];e=J[c+20>>2];q=J[h>>2];r=J[c+8>>2];o=J[c+12>>2];b=0;while(1){d=0;if((e|0)>=(o|0)&f>>>0>=r>>>0|(e|0)>(o|0)){break A}d=J[c>>2];n=K[d+f|0];a=f+1|0;e=a?e:e+1|0;f=a;J[c+16>>2]=a;J[c+20>>2]=e;a=n>>>2|0;i=0;E:{F:{G:{H:{s=n&3;switch(s|0){case 0:break F;case 3:break H;default:break G}}a=a+b|0;d=0;if(a>>>0>=j>>>0){break A}Xi(q+(b<<2)|0,0,(n&252)+4|0);b=a;break E}while(1){if((e|0)>=(o|0)&f>>>0>=r>>>0|(e|0)>(o|0)){break B}j=K[d+f|0];f=f+1|0;e=f?e:e+1|0;J[c+16>>2]=f;J[c+20>>2]=e;a=j<<(i<<3|6)|a;i=i+1|0;if((s|0)!=(i|0)){continue}break}}J[q+(b<<2)>>2]=a}b=b+1|0;j=J[h+12>>2];if(b>>>0>>0){continue}break}a=h+16|0;o=J[h>>2];d=J[h+16>>2];b=J[h+20>>2]-d|0;I:{if(b>>>0<=131071){Oa(a,32768-(b>>>2|0)|0);break I}if((b|0)==131072){break I}J[h+20>>2]=d+131072}d=h+28|0;b=J[d>>2];e=J[h+32>>2]-b>>3;J:{if(e>>>0>>0){we(d,j-e|0);b=J[d>>2];break J}if(e>>>0>j>>>0){J[h+32>>2]=(j<<3)+b}if(!j){break B}}h=J[a>>2];e=0;d=0;while(1){f=o+(e<<2)|0;i=J[f>>2];n=(e<<3)+b|0;a=d;J[n+4>>2]=a;J[n>>2]=i;f=J[f>>2];d=f+a|0;if(d>>>0>32768){break B}K:{if(a>>>0>=d>>>0){break K}i=0;n=f&7;if(n){while(1){J[h+(a<<2)>>2]=e;a=a+1|0;i=i+1|0;if((n|0)!=(i|0)){continue}break}}if(f-1>>>0<=6){break K}while(1){f=h+(a<<2)|0;J[f>>2]=e;J[f+28>>2]=e;J[f+24>>2]=e;J[f+20>>2]=e;J[f+16>>2]=e;J[f+12>>2]=e;J[f+8>>2]=e;J[f+4>>2]=e;a=a+8|0;if((d|0)!=(a|0)){continue}break}}e=e+1|0;if((j|0)!=(e|0)){continue}break}k=(d|0)==32768}d=k}L:{if(!d|(J[g+20>>2]?0:m)){break L}d=0;h=ia-16|0;ia=h;M:{N:{if(L[c+38>>1]<=511){j=J[c+12>>2];a=j;e=J[c+20>>2];k=J[c+16>>2];f=k+8|0;e=f>>>0<8?e+1|0:e;b=J[c+8>>2];if(b>>>0>>0&(a|0)<=(e|0)|(a|0)<(e|0)){break M}k=k+J[c>>2]|0;a=K[k|0]|K[k+1|0]<<8|(K[k+2|0]<<16|K[k+3|0]<<24);k=K[k+4|0]|K[k+5|0]<<8|(K[k+6|0]<<16|K[k+7|0]<<24);J[c+16>>2]=f;J[c+20>>2]=e;break N}if(!xe(1,h+8|0,c)){break M}f=J[c+16>>2];e=J[c+20>>2];b=J[c+8>>2];j=J[c+12>>2];a=J[h+8>>2];k=J[h+12>>2]}i=b-f|0;b=j-((b>>>0>>0)+e|0)|0;if((b|0)==(k|0)&a>>>0>i>>>0|b>>>0>>0){break M}i=e+k|0;b=a+f|0;i=b>>>0>>0?i+1|0:i;J[c+16>>2]=b;J[c+20>>2]=i;if((a|0)<=0){break M}b=f+J[c>>2]|0;J[g+48>>2]=b;c=a-1|0;e=c+b|0;f=K[e|0];O:{if(f>>>0<=63){J[g+52>>2]=c;a=K[e|0]&63;break O}P:{switch((f>>>6|0)-1|0){case 0:if(a>>>0<2){break M}a=a-2|0;J[g+52>>2]=a;a=a+b|0;a=K[a+1|0]<<8&16128|K[a|0];break O;case 1:if(a>>>0<3){break M}a=a-3|0;J[g+52>>2]=a;a=a+b|0;a=K[a+1|0]<<8|K[a+2|0]<<16&4128768|K[a|0];break O;default:break P}}a=a-4|0;J[g+52>>2]=a;a=a+b|0;a=K[a+2|0]<<16|K[a+3|0]<<24&1056964608|K[a+1|0]<<8|K[a|0]}J[g+56>>2]=a+131072;d=a>>>0<33423360}ia=h+16|0;if(!d){break L}if(!m){l=1;break L}a=J[g+56>>2];b=J[g+36>>2];c=J[g+48>>2];d=J[g+24>>2];while(1){Q:{if(a>>>0>131071){break Q}l=J[g+52>>2];while(1){if((l|0)<=0){break Q}l=l-1|0;J[g+52>>2]=l;a=K[c+l|0]|a<<8;J[g+56>>2]=a;if(a>>>0<131072){continue}break}}e=a&32767;f=J[d+(e<<2)>>2];l=b+(f<<3)|0;a=(P(J[l>>2],a>>>15|0)+e|0)-J[l+4>>2]|0;J[g+56>>2]=a;J[t+(p<<2)>>2]=f;l=1;p=p+1|0;if((m|0)!=(p|0)){continue}break}}a=J[g+36>>2];if(a){J[g+40>>2]=a;xj(a)}a=J[g+24>>2];if(a){J[g+28>>2]=a;xj(a)}a=J[g+8>>2];if(a){J[g+12>>2]=a;xj(a)}ia=g- -64|0;b=l;break h;case 10:m=a;t=d;g=ia+-64|0;ia=g;J[g+56>>2]=0;J[g+48>>2]=0;J[g+52>>2]=0;J[g+40>>2]=0;J[g+44>>2]=0;J[g+32>>2]=0;J[g+36>>2]=0;J[g+24>>2]=0;J[g+28>>2]=0;J[g+16>>2]=0;J[g+20>>2]=0;J[g+8>>2]=0;J[g+12>>2]=0;h=g+8|0;a=L[c+38>>1];R:{S:{if(!a){break S}T:{if(a>>>0<=511){a=J[c+12>>2];e=J[c+20>>2];b=J[c+16>>2];d=b+4|0;e=d>>>0<4?e+1|0:e;if((a|0)<=(e|0)&d>>>0>M[c+8>>2]|(a|0)<(e|0)){break S}a=b+J[c>>2]|0;j=K[a|0]|K[a+1|0]<<8|(K[a+2|0]<<16|K[a+3|0]<<24);J[h+12>>2]=j;e=J[c+20>>2];a=J[c+16>>2]+4|0;e=a>>>0<4?e+1|0:e;f=a;J[c+16>>2]=a;J[c+20>>2]=e;break T}if(!ve(1,h+12|0,c)){break S}f=J[c+16>>2];e=J[c+20>>2];j=J[h+12>>2]}a=J[c+8>>2];b=a-f|0;a=J[c+12>>2]-((a>>>0>>0)+e|0)|0;if(b>>>0>>6>>>0&(a|0)<=0|(a|0)<0){break S}b=J[h>>2];a=J[h+4>>2]-b>>2;U:{if(a>>>0>>0){Oa(h,j-a|0);j=J[h+12>>2];break U}if(a>>>0<=j>>>0){break U}J[h+4>>2]=b+(j<<2)}d=1;if(!j){break R}f=J[c+16>>2];e=J[c+20>>2];q=J[h>>2];r=J[c+8>>2];o=J[c+12>>2];b=0;while(1){d=0;if((e|0)>=(o|0)&f>>>0>=r>>>0|(e|0)>(o|0)){break R}d=J[c>>2];n=K[d+f|0];a=f+1|0;i=a?e:e+1|0;f=a;J[c+16>>2]=a;e=i;J[c+20>>2]=e;a=n>>>2|0;i=0;V:{W:{X:{Y:{s=n&3;switch(s|0){case 0:break W;case 3:break Y;default:break X}}a=a+b|0;d=0;if(a>>>0>=j>>>0){break R}Xi(q+(b<<2)|0,0,(n&252)+4|0);b=a;break V}while(1){if((e|0)>=(o|0)&f>>>0>=r>>>0|(e|0)>(o|0)){break S}j=K[d+f|0];f=f+1|0;e=f?e:e+1|0;J[c+16>>2]=f;J[c+20>>2]=e;a=j<<(i<<3|6)|a;i=i+1|0;if((s|0)!=(i|0)){continue}break}}J[q+(b<<2)>>2]=a}b=b+1|0;j=J[h+12>>2];if(b>>>0>>0){continue}break}a=h+16|0;o=J[h>>2];d=J[h+16>>2];b=J[h+20>>2]-d|0;Z:{if(b>>>0<=262143){Oa(a,65536-(b>>>2|0)|0);break Z}if((b|0)==262144){break Z}J[h+20>>2]=d+262144}d=h+28|0;b=J[d>>2];e=J[h+32>>2]-b>>3;_:{if(e>>>0>>0){we(d,j-e|0);b=J[d>>2];break _}if(e>>>0>j>>>0){J[h+32>>2]=(j<<3)+b}if(!j){break S}}h=J[a>>2];e=0;d=0;while(1){f=o+(e<<2)|0;i=J[f>>2];n=(e<<3)+b|0;a=d;J[n+4>>2]=a;J[n>>2]=i;f=J[f>>2];d=f+a|0;if(d>>>0>65536){break S}$:{if(a>>>0>=d>>>0){break $}i=0;n=f&7;if(n){while(1){J[h+(a<<2)>>2]=e;a=a+1|0;i=i+1|0;if((n|0)!=(i|0)){continue}break}}if(f-1>>>0<=6){break $}while(1){f=h+(a<<2)|0;J[f>>2]=e;J[f+28>>2]=e;J[f+24>>2]=e;J[f+20>>2]=e;J[f+16>>2]=e;J[f+12>>2]=e;J[f+8>>2]=e;J[f+4>>2]=e;a=a+8|0;if((d|0)!=(a|0)){continue}break}}e=e+1|0;if((j|0)!=(e|0)){continue}break}k=(d|0)==65536}d=k}aa:{if(!d|(J[g+20>>2]?0:m)){break aa}d=0;i=ia-16|0;ia=i;ba:{ca:{if(L[c+38>>1]<=511){j=J[c+12>>2];a=j;e=J[c+20>>2];k=J[c+16>>2];f=k+8|0;e=f>>>0<8?e+1|0:e;b=J[c+8>>2];if(b>>>0>>0&(a|0)<=(e|0)|(a|0)<(e|0)){break ba}k=k+J[c>>2]|0;a=K[k|0]|K[k+1|0]<<8|(K[k+2|0]<<16|K[k+3|0]<<24);k=K[k+4|0]|K[k+5|0]<<8|(K[k+6|0]<<16|K[k+7|0]<<24);J[c+16>>2]=f;J[c+20>>2]=e;break ca}if(!xe(1,i+8|0,c)){break ba}f=J[c+16>>2];e=J[c+20>>2];b=J[c+8>>2];j=J[c+12>>2];a=J[i+8>>2];k=J[i+12>>2]}h=b-f|0;b=j-((b>>>0>>0)+e|0)|0;if((b|0)==(k|0)&a>>>0>h>>>0|b>>>0>>0){break ba}e=e+k|0;b=a+f|0;e=b>>>0>>0?e+1|0:e;J[c+16>>2]=b;J[c+20>>2]=e;if((a|0)<=0){break ba}b=f+J[c>>2]|0;J[g+48>>2]=b;c=a-1|0;e=c+b|0;f=K[e|0];da:{if(f>>>0<=63){J[g+52>>2]=c;a=K[e|0]&63;break da}ea:{switch((f>>>6|0)-1|0){case 0:if(a>>>0<2){break ba}a=a-2|0;J[g+52>>2]=a;a=a+b|0;a=K[a+1|0]<<8&16128|K[a|0];break da;case 1:if(a>>>0<3){break ba}a=a-3|0;J[g+52>>2]=a;a=a+b|0;a=K[a+1|0]<<8|K[a+2|0]<<16&4128768|K[a|0];break da;default:break ea}}a=a-4|0;J[g+52>>2]=a;a=a+b|0;a=K[a+2|0]<<16|K[a+3|0]<<24&1056964608|K[a+1|0]<<8|K[a|0]}J[g+56>>2]=a+262144;d=a>>>0<66846720}ia=i+16|0;if(!d){break aa}if(!m){l=1;break aa}a=J[g+56>>2];b=J[g+36>>2];c=J[g+48>>2];d=J[g+24>>2];while(1){fa:{if(a>>>0>262143){break fa}l=J[g+52>>2];while(1){if((l|0)<=0){break fa}l=l-1|0;J[g+52>>2]=l;a=K[c+l|0]|a<<8;J[g+56>>2]=a;if(a>>>0<262144){continue}break}}e=a&65535;f=J[d+(e<<2)>>2];l=b+(f<<3)|0;a=(P(J[l>>2],a>>>16|0)+e|0)-J[l+4>>2]|0;J[g+56>>2]=a;J[t+(p<<2)>>2]=f;l=1;p=p+1|0;if((m|0)!=(p|0)){continue}break}}a=J[g+36>>2];if(a){J[g+40>>2]=a;xj(a)}a=J[g+24>>2];if(a){J[g+28>>2]=a;xj(a)}a=J[g+8>>2];if(a){J[g+12>>2]=a;xj(a)}ia=g- -64|0;b=l;break h;case 11:m=a;t=d;g=ia+-64|0;ia=g;J[g+56>>2]=0;J[g+48>>2]=0;J[g+52>>2]=0;J[g+40>>2]=0;J[g+44>>2]=0;J[g+32>>2]=0;J[g+36>>2]=0;J[g+24>>2]=0;J[g+28>>2]=0;J[g+16>>2]=0;J[g+20>>2]=0;J[g+8>>2]=0;J[g+12>>2]=0;h=g+8|0;a=L[c+38>>1];ga:{ha:{if(!a){break ha}ia:{if(a>>>0<=511){a=J[c+12>>2];e=J[c+20>>2];b=J[c+16>>2];d=b+4|0;e=d>>>0<4?e+1|0:e;if((a|0)<=(e|0)&d>>>0>M[c+8>>2]|(a|0)<(e|0)){break ha}a=b+J[c>>2]|0;j=K[a|0]|K[a+1|0]<<8|(K[a+2|0]<<16|K[a+3|0]<<24);J[h+12>>2]=j;i=J[c+20>>2];a=J[c+16>>2]+4|0;i=a>>>0<4?i+1|0:i;f=a;J[c+16>>2]=a;e=i;J[c+20>>2]=e;break ia}if(!ve(1,h+12|0,c)){break ha}f=J[c+16>>2];e=J[c+20>>2];j=J[h+12>>2]}a=J[c+8>>2];b=a-f|0;a=J[c+12>>2]-((a>>>0>>0)+e|0)|0;if(b>>>0>>6>>>0&(a|0)<=0|(a|0)<0){break ha}b=J[h>>2];a=J[h+4>>2]-b>>2;ja:{if(a>>>0>>0){Oa(h,j-a|0);j=J[h+12>>2];break ja}if(a>>>0<=j>>>0){break ja}J[h+4>>2]=b+(j<<2)}d=1;if(!j){break ga}f=J[c+16>>2];e=J[c+20>>2];q=J[h>>2];r=J[c+8>>2];o=J[c+12>>2];b=0;while(1){d=0;if((e|0)>=(o|0)&f>>>0>=r>>>0|(e|0)>(o|0)){break ga}d=J[c>>2];n=K[d+f|0];a=f+1|0;e=a?e:e+1|0;f=a;J[c+16>>2]=a;J[c+20>>2]=e;a=n>>>2|0;i=0;ka:{la:{ma:{na:{s=n&3;switch(s|0){case 0:break la;case 3:break na;default:break ma}}a=a+b|0;d=0;if(a>>>0>=j>>>0){break ga}Xi(q+(b<<2)|0,0,(n&252)+4|0);b=a;break ka}while(1){if((e|0)>=(o|0)&f>>>0>=r>>>0|(e|0)>(o|0)){break ha}j=K[d+f|0];f=f+1|0;e=f?e:e+1|0;J[c+16>>2]=f;J[c+20>>2]=e;a=j<<(i<<3|6)|a;i=i+1|0;if((s|0)!=(i|0)){continue}break}}J[q+(b<<2)>>2]=a}b=b+1|0;j=J[h+12>>2];if(b>>>0>>0){continue}break}a=h+16|0;o=J[h>>2];d=J[h+16>>2];b=J[h+20>>2]-d|0;oa:{if(b>>>0<=1048575){Oa(a,262144-(b>>>2|0)|0);break oa}if((b|0)==1048576){break oa}J[h+20>>2]=d- -1048576}d=h+28|0;b=J[d>>2];e=J[h+32>>2]-b>>3;pa:{if(e>>>0>>0){we(d,j-e|0);b=J[d>>2];break pa}if(e>>>0>j>>>0){J[h+32>>2]=(j<<3)+b}if(!j){break ha}}h=J[a>>2];e=0;d=0;while(1){f=o+(e<<2)|0;i=J[f>>2];n=(e<<3)+b|0;a=d;J[n+4>>2]=a;J[n>>2]=i;f=J[f>>2];d=f+a|0;if(d>>>0>262144){break ha}qa:{if(a>>>0>=d>>>0){break qa}i=0;n=f&7;if(n){while(1){J[h+(a<<2)>>2]=e;a=a+1|0;i=i+1|0;if((n|0)!=(i|0)){continue}break}}if(f-1>>>0<=6){break qa}while(1){f=h+(a<<2)|0;J[f>>2]=e;J[f+28>>2]=e;J[f+24>>2]=e;J[f+20>>2]=e;J[f+16>>2]=e;J[f+12>>2]=e;J[f+8>>2]=e;J[f+4>>2]=e;a=a+8|0;if((d|0)!=(a|0)){continue}break}}e=e+1|0;if((j|0)!=(e|0)){continue}break}k=(d|0)==262144}d=k}ra:{if(!d|(J[g+20>>2]?0:m)){break ra}d=0;h=ia-16|0;ia=h;sa:{ta:{if(L[c+38>>1]<=511){j=J[c+12>>2];a=j;i=J[c+20>>2];k=J[c+16>>2];e=k+8|0;i=e>>>0<8?i+1|0:i;b=J[c+8>>2];f=e;e=i;if(b>>>0>>0&(e|0)>=(a|0)|(a|0)<(e|0)){break sa}k=k+J[c>>2]|0;a=K[k|0]|K[k+1|0]<<8|(K[k+2|0]<<16|K[k+3|0]<<24);k=K[k+4|0]|K[k+5|0]<<8|(K[k+6|0]<<16|K[k+7|0]<<24);J[c+16>>2]=f;J[c+20>>2]=e;break ta}if(!xe(1,h+8|0,c)){break sa}f=J[c+16>>2];e=J[c+20>>2];b=J[c+8>>2];j=J[c+12>>2];a=J[h+8>>2];k=J[h+12>>2]}i=b-f|0;b=j-((b>>>0>>0)+e|0)|0;if((b|0)==(k|0)&a>>>0>i>>>0|b>>>0>>0){break sa}e=e+k|0;b=a+f|0;e=b>>>0>>0?e+1|0:e;J[c+16>>2]=b;J[c+20>>2]=e;if((a|0)<=0){break sa}b=f+J[c>>2]|0;J[g+48>>2]=b;c=a-1|0;e=c+b|0;f=K[e|0];ua:{if(f>>>0<=63){J[g+52>>2]=c;a=K[e|0]&63;break ua}va:{switch((f>>>6|0)-1|0){case 0:if(a>>>0<2){break sa}a=a-2|0;J[g+52>>2]=a;a=a+b|0;a=K[a+1|0]<<8&16128|K[a|0];break ua;case 1:if(a>>>0<3){break sa}a=a-3|0;J[g+52>>2]=a;a=a+b|0;a=K[a+1|0]<<8|K[a+2|0]<<16&4128768|K[a|0];break ua;default:break va}}a=a-4|0;J[g+52>>2]=a;a=a+b|0;a=K[a+2|0]<<16|K[a+3|0]<<24&1056964608|K[a+1|0]<<8|K[a|0]}J[g+56>>2]=a- -1048576;d=a>>>0<267386880}ia=h+16|0;if(!d){break ra}if(!m){l=1;break ra}a=J[g+56>>2];b=J[g+36>>2];c=J[g+48>>2];d=J[g+24>>2];while(1){wa:{if(a>>>0>1048575){break wa}l=J[g+52>>2];while(1){if((l|0)<=0){break wa}l=l-1|0;J[g+52>>2]=l;a=K[c+l|0]|a<<8;J[g+56>>2]=a;if(a>>>0<1048576){continue}break}}e=a&262143;f=J[d+(e<<2)>>2];l=b+(f<<3)|0;a=(P(J[l>>2],a>>>18|0)+e|0)-J[l+4>>2]|0;J[g+56>>2]=a;J[t+(p<<2)>>2]=f;l=1;p=p+1|0;if((m|0)!=(p|0)){continue}break}}a=J[g+36>>2];if(a){J[g+40>>2]=a;xj(a)}a=J[g+24>>2];if(a){J[g+28>>2]=a;xj(a)}a=J[g+8>>2];if(a){J[g+12>>2]=a;xj(a)}ia=g- -64|0;b=l;break h;case 12:m=a;t=d;g=ia+-64|0;ia=g;J[g+56>>2]=0;J[g+48>>2]=0;J[g+52>>2]=0;J[g+40>>2]=0;J[g+44>>2]=0;J[g+32>>2]=0;J[g+36>>2]=0;J[g+24>>2]=0;J[g+28>>2]=0;J[g+16>>2]=0;J[g+20>>2]=0;J[g+8>>2]=0;J[g+12>>2]=0;h=g+8|0;a=L[c+38>>1];xa:{ya:{if(!a){break ya}za:{if(a>>>0<=511){a=J[c+12>>2];i=J[c+20>>2];b=J[c+16>>2];d=b+4|0;i=d>>>0<4?i+1|0:i;if((a|0)<=(i|0)&d>>>0>M[c+8>>2]|(a|0)<(i|0)){break ya}a=b+J[c>>2]|0;j=K[a|0]|K[a+1|0]<<8|(K[a+2|0]<<16|K[a+3|0]<<24);J[h+12>>2]=j;e=J[c+20>>2];a=J[c+16>>2]+4|0;e=a>>>0<4?e+1|0:e;f=a;J[c+16>>2]=a;J[c+20>>2]=e;break za}if(!ve(1,h+12|0,c)){break ya}f=J[c+16>>2];e=J[c+20>>2];j=J[h+12>>2]}a=J[c+8>>2];b=a-f|0;a=J[c+12>>2]-((a>>>0>>0)+e|0)|0;if(b>>>0>>6>>>0&(a|0)<=0|(a|0)<0){break ya}b=J[h>>2];a=J[h+4>>2]-b>>2;Aa:{if(a>>>0>>0){Oa(h,j-a|0);j=J[h+12>>2];break Aa}if(a>>>0<=j>>>0){break Aa}J[h+4>>2]=b+(j<<2)}d=1;if(!j){break xa}f=J[c+16>>2];e=J[c+20>>2];q=J[h>>2];r=J[c+8>>2];o=J[c+12>>2];b=0;while(1){d=0;if((e|0)>=(o|0)&f>>>0>=r>>>0|(e|0)>(o|0)){break xa}d=J[c>>2];n=K[d+f|0];a=f+1|0;e=a?e:e+1|0;f=a;J[c+16>>2]=a;J[c+20>>2]=e;a=n>>>2|0;i=0;Ba:{Ca:{Da:{Ea:{s=n&3;switch(s|0){case 0:break Ca;case 3:break Ea;default:break Da}}a=a+b|0;d=0;if(a>>>0>=j>>>0){break xa}Xi(q+(b<<2)|0,0,(n&252)+4|0);b=a;break Ba}while(1){if((e|0)>=(o|0)&f>>>0>=r>>>0|(e|0)>(o|0)){break ya}j=K[d+f|0];f=f+1|0;e=f?e:e+1|0;J[c+16>>2]=f;J[c+20>>2]=e;a=j<<(i<<3|6)|a;i=i+1|0;if((s|0)!=(i|0)){continue}break}}J[q+(b<<2)>>2]=a}b=b+1|0;j=J[h+12>>2];if(b>>>0>>0){continue}break}a=h+16|0;o=J[h>>2];d=J[h+16>>2];b=J[h+20>>2]-d|0;Fa:{if(b>>>0<=2097151){Oa(a,524288-(b>>>2|0)|0);break Fa}if((b|0)==2097152){break Fa}J[h+20>>2]=d+2097152}d=h+28|0;b=J[d>>2];e=J[h+32>>2]-b>>3;Ga:{if(e>>>0>>0){we(d,j-e|0);b=J[d>>2];break Ga}if(e>>>0>j>>>0){J[h+32>>2]=(j<<3)+b}if(!j){break ya}}h=J[a>>2];e=0;d=0;while(1){f=o+(e<<2)|0;i=J[f>>2];n=(e<<3)+b|0;a=d;J[n+4>>2]=a;J[n>>2]=i;f=J[f>>2];d=f+a|0;if(d>>>0>524288){break ya}Ha:{if(a>>>0>=d>>>0){break Ha}i=0;n=f&7;if(n){while(1){J[h+(a<<2)>>2]=e;a=a+1|0;i=i+1|0;if((n|0)!=(i|0)){continue}break}}if(f-1>>>0<=6){break Ha}while(1){f=h+(a<<2)|0;J[f>>2]=e;J[f+28>>2]=e;J[f+24>>2]=e;J[f+20>>2]=e;J[f+16>>2]=e;J[f+12>>2]=e;J[f+8>>2]=e;J[f+4>>2]=e;a=a+8|0;if((d|0)!=(a|0)){continue}break}}e=e+1|0;if((j|0)!=(e|0)){continue}break}k=(d|0)==524288}d=k}Ia:{if(!d|(J[g+20>>2]?0:m)){break Ia}d=0;i=ia-16|0;ia=i;Ja:{Ka:{if(L[c+38>>1]<=511){j=J[c+12>>2];a=j;e=J[c+20>>2];k=J[c+16>>2];f=k+8|0;e=f>>>0<8?e+1|0:e;b=J[c+8>>2];if(b>>>0>>0&(a|0)<=(e|0)|(a|0)<(e|0)){break Ja}k=k+J[c>>2]|0;a=K[k|0]|K[k+1|0]<<8|(K[k+2|0]<<16|K[k+3|0]<<24);k=K[k+4|0]|K[k+5|0]<<8|(K[k+6|0]<<16|K[k+7|0]<<24);J[c+16>>2]=f;J[c+20>>2]=e;break Ka}if(!xe(1,i+8|0,c)){break Ja}f=J[c+16>>2];e=J[c+20>>2];b=J[c+8>>2];j=J[c+12>>2];a=J[i+8>>2];k=J[i+12>>2]}h=b-f|0;b=j-((b>>>0>>0)+e|0)|0;if((b|0)==(k|0)&a>>>0>h>>>0|b>>>0>>0){break Ja}e=e+k|0;b=a+f|0;e=b>>>0>>0?e+1|0:e;J[c+16>>2]=b;J[c+20>>2]=e;if((a|0)<=0){break Ja}b=f+J[c>>2]|0;J[g+48>>2]=b;c=a-1|0;e=c+b|0;f=K[e|0];La:{if(f>>>0<=63){J[g+52>>2]=c;a=K[e|0]&63;break La}Ma:{switch((f>>>6|0)-1|0){case 0:if(a>>>0<2){break Ja}a=a-2|0;J[g+52>>2]=a;a=a+b|0;a=K[a+1|0]<<8&16128|K[a|0];break La;case 1:if(a>>>0<3){break Ja}a=a-3|0;J[g+52>>2]=a;a=a+b|0;a=K[a+1|0]<<8|K[a+2|0]<<16&4128768|K[a|0];break La;default:break Ma}}a=a-4|0;J[g+52>>2]=a;a=a+b|0;a=K[a+2|0]<<16|K[a+3|0]<<24&1056964608|K[a+1|0]<<8|K[a|0]}J[g+56>>2]=a+2097152;d=a>>>0<534773760}ia=i+16|0;if(!d){break Ia}if(!m){l=1;break Ia}a=J[g+56>>2];b=J[g+36>>2];c=J[g+48>>2];d=J[g+24>>2];while(1){Na:{if(a>>>0>2097151){break Na}l=J[g+52>>2];while(1){if((l|0)<=0){break Na}l=l-1|0;J[g+52>>2]=l;a=K[c+l|0]|a<<8;J[g+56>>2]=a;if(a>>>0<2097152){continue}break}}e=a&524287;f=J[d+(e<<2)>>2];l=b+(f<<3)|0;a=(P(J[l>>2],a>>>19|0)+e|0)-J[l+4>>2]|0;J[g+56>>2]=a;J[t+(p<<2)>>2]=f;l=1;p=p+1|0;if((m|0)!=(p|0)){continue}break}}a=J[g+36>>2];if(a){J[g+40>>2]=a;xj(a)}a=J[g+24>>2];if(a){J[g+28>>2]=a;xj(a)}a=J[g+8>>2];if(a){J[g+12>>2]=a;xj(a)}ia=g- -64|0;b=l;break h;case 17:b=ue(a,c,d);break h;case 0:case 1:case 2:case 3:case 4:case 5:case 6:case 7:e=ia+-64|0;ia=e;J[e+56>>2]=0;J[e+48>>2]=0;J[e+52>>2]=0;J[e+40>>2]=0;J[e+44>>2]=0;J[e+32>>2]=0;J[e+36>>2]=0;J[e+24>>2]=0;J[e+28>>2]=0;J[e+16>>2]=0;J[e+20>>2]=0;J[e+8>>2]=0;J[e+12>>2]=0;Oa:{if(!se(e+8|0,c)|(J[e+20>>2]?0:a)){break Oa}if(!te(e+8|0,c)){break Oa}if(!a){b=1;break Oa}c=J[e+56>>2];l=J[e+36>>2];k=J[e+48>>2];i=J[e+24>>2];while(1){Pa:{if(c>>>0>16383){break Pa}b=J[e+52>>2];while(1){if((b|0)<=0){break Pa}b=b-1|0;J[e+52>>2]=b;c=K[b+k|0]|c<<8;J[e+56>>2]=c;if(c>>>0<16384){continue}break}}b=c&4095;g=J[i+(b<<2)>>2];m=l+(g<<3)|0;c=(P(J[m>>2],c>>>12|0)+b|0)-J[m+4>>2]|0;J[e+56>>2]=c;J[(f<<2)+d>>2]=g;b=1;f=f+1|0;if((f|0)!=(a|0)){continue}break}}a=J[e+36>>2];if(a){J[e+40>>2]=a;xj(a)}a=J[e+24>>2];if(a){J[e+28>>2]=a;xj(a)}a=J[e+8>>2];if(a){J[e+12>>2]=a;xj(a)}ia=e- -64|0;break h;case 13:case 14:case 15:case 16:break i;default:break h}}b=ue(a,c,d)}f=b}return f}function of(a){a=a|0;var b=0,c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,D=0,E=0,F=0,G=0,N=0,O=0,Q=0,R=0;t=ia+-64|0;ia=t;J[a+132>>2]=0;if(J[a+148>>2]){c=J[a+144>>2];if(c){while(1){d=J[c>>2];xj(c);c=d;if(c){continue}break}}c=0;J[a+144>>2]=0;d=J[a+140>>2];a:{if(!d){break a}if(d>>>0>=4){f=d&-4;while(1){b=c<<2;J[b+J[a+136>>2]>>2]=0;J[J[a+136>>2]+(b|4)>>2]=0;J[J[a+136>>2]+(b|8)>>2]=0;J[J[a+136>>2]+(b|12)>>2]=0;c=c+4|0;g=g+4|0;if((f|0)!=(g|0)){continue}break}}d=d&3;if(!d){break a}while(1){J[J[a+136>>2]+(c<<2)>>2]=0;c=c+1|0;w=w+1|0;if((d|0)!=(w|0)){continue}break}}J[a+148>>2]=0}b:{c:{d:{c=J[a+4>>2];w=K[c+36|0];d=w<<8|K[c+37|0];if(d>>>0<=513){b=J[c+32>>2];e:{if(d>>>0<=511){g=J[b+20>>2];f=J[b+16>>2];d=f+4|0;g=d>>>0<4?g+1|0:g;e=d;d=g;i=J[b+12>>2];if(e>>>0>M[b+8>>2]&(d|0)>=(i|0)|(d|0)>(i|0)){break d}g=f+J[b>>2]|0;g=K[g|0]|K[g+1|0]<<8|(K[g+2|0]<<16|K[g+3|0]<<24);J[b+16>>2]=e;J[b+20>>2]=d;break e}if(!Te(1,t,b)){break d}c=J[a+4>>2];w=K[c+36|0];g=J[t>>2]}J[a+132>>2]=g}g=J[c+32>>2];f:{g:{h:{if((w&255)>>>0<=1){w=0;d=J[g+20>>2];b=J[g+16>>2];f=b+4|0;d=f>>>0<4?d+1|0:d;e=J[g+12>>2];if((e|0)<=(d|0)&f>>>0>M[g+8>>2]|(d|0)>(e|0)){break c}b=b+J[g>>2]|0;b=K[b|0]|K[b+1|0]<<8|(K[b+2|0]<<16|K[b+3|0]<<24);J[t+60>>2]=b;J[g+16>>2]=f;J[g+20>>2]=d;J[a+156>>2]=b;q=a+156|0;break h}w=0;if(!Te(1,t+60|0,g)){break c}c=J[a+4>>2];d=K[c+36|0];J[a+156>>2]=J[t+60>>2];q=a+156|0;if(d>>>0>1){break g}}d=J[c+32>>2];c=J[d+8>>2];g=J[d+12>>2];i=c;c=J[d+20>>2];b=J[d+16>>2];f=b+4|0;c=f>>>0<4?c+1|0:c;if(i>>>0>>0&(c|0)>=(g|0)|(c|0)>(g|0)){break c}g=b+J[d>>2]|0;g=K[g|0]|K[g+1|0]<<8|(K[g+2|0]<<16|K[g+3|0]<<24);J[t+56>>2]=g;J[d+16>>2]=f;J[d+20>>2]=c;break f}if(!Te(1,t+56|0,J[c+32>>2])){break c}g=J[t+56>>2]}if(g>>>0>1431655765|M[q>>2]>P(g,3)>>>0){break c}l=J[a+4>>2];b=J[l+32>>2];A=J[b+8>>2];f=J[b+12>>2];d=J[b+20>>2];e=J[b+16>>2];if((f|0)<=(d|0)&A>>>0<=e>>>0|(d|0)>(f|0)){break c}j=J[b>>2];i=K[j+e|0];c=d;q=e+1|0;c=q?c:c+1|0;J[b+16>>2]=q;J[b+20>>2]=c;i:{if(K[l+36|0]<=1){c=f;f=e+5|0;d=f>>>0<5?d+1|0:d;if((c|0)<=(d|0)&f>>>0>A>>>0|(c|0)<(d|0)){break c}c=j+q|0;q=K[c|0]|K[c+1|0]<<8|(K[c+2|0]<<16|K[c+3|0]<<24);J[t+52>>2]=q;J[b+16>>2]=f;J[b+20>>2]=d;break i}if(!Te(1,t+52|0,b)){break c}q=J[t+52>>2]}if(g>>>0>>0|((q>>>0)/3|0)+q>>>0>>0){break c}c=J[a+4>>2];b=J[c+32>>2];j:{if(K[c+36|0]<=1){c=J[b+20>>2];d=J[b+16>>2];f=d+4|0;c=f>>>0<4?c+1|0:c;e=J[b+12>>2];if((e|0)<=(c|0)&f>>>0>M[b+8>>2]|(c|0)>(e|0)){break c}d=d+J[b>>2]|0;d=K[d|0]|K[d+1|0]<<8|(K[d+2|0]<<16|K[d+3|0]<<24);J[t+48>>2]=d;J[b+16>>2]=f;J[b+20>>2]=c;break j}if(!Te(1,t+48|0,b)){break c}d=J[t+48>>2]}if(d>>>0>q>>>0){break c}J[a+28>>2]=J[a+24>>2];b=ui(Aj(88));c=J[a+8>>2];J[a+8>>2]=b;if(c){Ue(c);if(!J[a+8>>2]){break c}}J[a+164>>2]=J[a+160>>2];Ve(a+160|0,g);J[a+176>>2]=J[a+172>>2];Ve(a+172|0,g);J[a- -64>>2]=0;J[a+92>>2]=-1;J[a+84>>2]=-1;J[a+88>>2]=-1;J[a+40>>2]=J[a+36>>2];J[a+52>>2]=J[a+48>>2];J[a+76>>2]=J[a+72>>2];B=a+216|0;We(B);Xe(B,i);if(!vi(J[a+8>>2],g,J[a+156>>2]+d|0)){break c}c=J[a+156>>2];H[t|0]=1;Qe(a+120|0,c+d|0,t);c=J[a+4>>2];g=L[c+36>>1];g=(g<<8|g>>>8)&65535;k:{if(g>>>0<=513){b=J[c+32>>2];l:{if(g>>>0<=511){g=J[b+20>>2];f=J[b+16>>2];c=f+4|0;g=c>>>0<4?g+1|0:g;e=c;c=g;l=J[b+12>>2];if(e>>>0>M[b+8>>2]&(c|0)>=(l|0)|(c|0)>(l|0)){break c}g=f+J[b>>2]|0;g=K[g|0]|K[g+1|0]<<8|(K[g+2|0]<<16|K[g+3|0]<<24);J[b+16>>2]=e;J[b+20>>2]=c;break l}if(!Te(1,t+44|0,b)){break c}g=J[t+44>>2]}if(!g){break c}c=J[J[a+4>>2]+32>>2];b=J[c+8>>2];f=J[c+16>>2];e=b-f|0;c=J[c+12>>2]-(J[c+20>>2]+(b>>>0>>0)|0)|0;if(e>>>0>>0&(c|0)<=0|(c|0)<0){break c}c=rg(t);f=J[J[a+4>>2]+32>>2];b=J[f+16>>2];e=(b+J[f>>2]|0)+g|0;l=J[f+8>>2];g=(l-b|0)-g|0;I[c+38>>1]=L[f+38>>1];J[c>>2]=e;J[c+16>>2]=0;J[c+20>>2]=0;J[c+8>>2]=g;J[c+12>>2]=0;A=Ye(a,c);if((A|0)==-1){break c}N=A>>31;break k}A=-1;N=-1;if((Ye(a,J[c+32>>2])|0)==-1){break c}}e=a+232|0;mf(e,a);J[a+372>>2]=i;J[a+384>>2]=J[a+156>>2]+d;E=rg(t);b=E;g=0;i=ia-16|0;ia=i;m:{n:{c=J[e+144>>2];c=L[(na[J[J[c>>2]+32>>2]](c)|0)+36>>1];if(((c<<8|c>>>8)&65535)>>>0<=513){c=J[e+4>>2];J[e+40>>2]=J[e>>2];J[e+44>>2]=c;c=J[e+36>>2];J[e+72>>2]=J[e+32>>2];J[e+76>>2]=c;d=J[e+28>>2];c=e- -64|0;J[c>>2]=J[e+24>>2];J[c+4>>2]=d;c=J[e+20>>2];J[e+56>>2]=J[e+16>>2];J[e+60>>2]=c;c=J[e+12>>2];J[e+48>>2]=J[e+8>>2];J[e+52>>2]=c;if(!sg(e+40|0,1,i+8|0)){break n}c=J[e+44>>2];J[e>>2]=J[e+40>>2];J[e+4>>2]=c;c=J[e+76>>2];J[e+32>>2]=J[e+72>>2];J[e+36>>2]=c;c=J[e+68>>2];J[e+24>>2]=J[e+64>>2];J[e+28>>2]=c;d=J[e+60>>2];f=d;c=J[e+56>>2];J[e+16>>2]=c;J[e+20>>2]=d;l=J[e+52>>2];d=J[e+48>>2];J[e+8>>2]=d;J[e+12>>2]=l;j=d-c|0;m=J[i+12>>2];d=l-((c>>>0>d>>>0)+f|0)|0;l=J[i+8>>2];if((m|0)==(d|0)&j>>>0>>0|d>>>0>>0){break n}d=c;l=c+l|0;c=f+m|0;J[e+16>>2]=l;J[e+20>>2]=d>>>0>l>>>0?c+1|0:c}o:{if(L[e+38>>1]<=513){c=J[e+4>>2];J[e+96>>2]=J[e>>2];J[e+100>>2]=c;c=J[e+36>>2];J[e+128>>2]=J[e+32>>2];J[e+132>>2]=c;c=J[e+28>>2];J[e+120>>2]=J[e+24>>2];J[e+124>>2]=c;c=J[e+20>>2];J[e+112>>2]=J[e+16>>2];J[e+116>>2]=c;c=J[e+12>>2];J[e+104>>2]=J[e+8>>2];J[e+108>>2]=c;if(!sg(e+96|0,1,i+8|0)){break n}c=J[e+100>>2];J[e>>2]=J[e+96>>2];J[e+4>>2]=c;c=J[e+132>>2];J[e+32>>2]=J[e+128>>2];J[e+36>>2]=c;c=J[e+124>>2];J[e+24>>2]=J[e+120>>2];J[e+28>>2]=c;d=J[e+116>>2];f=d;c=J[e+112>>2];J[e+16>>2]=c;J[e+20>>2]=d;l=J[e+108>>2];d=J[e+104>>2];J[e+8>>2]=d;J[e+12>>2]=l;j=d-c|0;m=J[i+12>>2];d=l-((c>>>0>d>>>0)+f|0)|0;l=J[i+8>>2];if((m|0)==(d|0)&j>>>0>>0|d>>>0>>0){break n}d=f+m|0;l=c+l|0;d=l>>>0>>0?d+1|0:d;J[e+16>>2]=l;J[e+20>>2]=d;break o}if(!je(e+80|0,e)){break m}}if(!ef(e)){break m}c=J[e+4>>2];J[b>>2]=J[e>>2];J[b+4>>2]=c;c=J[e+36>>2];J[b+32>>2]=J[e+32>>2];J[b+36>>2]=c;c=J[e+28>>2];J[b+24>>2]=J[e+24>>2];J[b+28>>2]=c;c=J[e+20>>2];J[b+16>>2]=J[e+16>>2];J[b+20>>2]=c;c=J[e+12>>2];J[b+8>>2]=J[e+8>>2];J[b+12>>2]=c;c=J[e+144>>2];c=L[(na[J[J[c>>2]+32>>2]](c)|0)+36>>1];p:{if(((c<<8|c>>>8)&65535)>>>0<=513){c=J[e+144>>2];q:{if(K[(na[J[J[c>>2]+32>>2]](c)|0)+36|0]<=1){c=J[b+20>>2];d=J[b+16>>2];f=d+4|0;c=f>>>0<4?c+1|0:c;l=J[b+12>>2];if((l|0)<=(c|0)&f>>>0>M[b+8>>2]|(c|0)>(l|0)){break m}d=d+J[b>>2]|0;d=K[d|0]|K[d+1|0]<<8|(K[d+2|0]<<16|K[d+3|0]<<24);J[b+16>>2]=f;J[b+20>>2]=c;break q}if(!Te(1,i+8|0,b)){break m}d=J[i+8>>2]}c=J[e+152>>2];if(d>>>0>=c>>>0){break m}d=J[b+20>>2];l=J[b+12>>2];f=J[b+16>>2];if((d|0)>=(l|0)&f>>>0>=M[b+8>>2]|(d|0)>(l|0)){break m}l=K[f+J[b>>2]|0];f=f+1|0;d=f?d:d+1|0;J[b+16>>2]=f;J[b+20>>2]=d;if(l){break m}J[e+176>>2]=2;J[e+180>>2]=7;break p}J[e+176>>2]=2;J[e+180>>2]=7;c=J[e+152>>2]}if((c|0)<0){break m}J[i+8>>2]=0;g=2;l=J[e+156>>2];f=J[e+160>>2]-l>>2;r:{if(f>>>0>>0){jb(e+156|0,c-f|0,i+8|0);g=J[e+176>>2];d=J[e+180>>2];break r}d=7;if(c>>>0>=f>>>0){break r}J[e+160>>2]=l+(c<<2)}f=e+184|0;d=(d-g|0)+1|0;c=J[e+188>>2];l=J[e+184>>2];g=(c-l|0)/12|0;s:{if(d>>>0>g>>>0){d=d-g|0;j=J[f+8>>2];c=J[f+4>>2];t:{if(d>>>0<=(j-c|0)/12>>>0){if(d){g=c;c=P(d,12)-12|0;c=(c-((c>>>0)%12|0)|0)+12|0;c=Xi(g,0,c)+c|0}J[f+4>>2]=c;break t}u:{v:{w:{l=J[f>>2];m=(c-l|0)/12|0;g=m+d|0;if(g>>>0<357913942){j=(j-l|0)/12|0;h=j<<1;j=j>>>0>=178956970?357913941:g>>>0>>0?h:g;if(j){if(j>>>0>=357913942){break w}x=Aj(P(j,12))}g=P(m,12)+x|0;d=P(d,12)-12|0;m=(d-((d>>>0)%12|0)|0)+12|0;d=Xi(g,0,m);m=d+m|0;j=P(j,12)+x|0;if((c|0)==(l|0)){break v}while(1){g=g-12|0;c=c-12|0;J[g>>2]=J[c>>2];J[g+4>>2]=J[c+4>>2];J[g+8>>2]=J[c+8>>2];J[c+8>>2]=0;J[c>>2]=0;J[c+4>>2]=0;if((c|0)!=(l|0)){continue}break}J[f+8>>2]=j;d=J[f+4>>2];J[f+4>>2]=m;c=J[f>>2];J[f>>2]=g;if((c|0)==(d|0)){break u}while(1){g=d-12|0;l=J[g>>2];if(l){J[d-8>>2]=l;xj(l)}d=g;if((d|0)!=(c|0)){continue}break}break u}break b}Za();C()}J[f+8>>2]=j;J[f+4>>2]=m;J[f>>2]=d}if(c){xj(c)}}d=J[e+188>>2];break s}if(d>>>0>=g>>>0){d=c;break s}d=l+P(d,12)|0;if((d|0)!=(c|0)){while(1){g=c-12|0;l=J[g>>2];if(l){J[c-8>>2]=l;xj(l)}c=g;if((d|0)!=(c|0)){continue}break}}J[e+188>>2]=d}j=e+196|0;g=J[e+184>>2];c=(d-g|0)/12|0;m=J[e+196>>2];l=J[e+200>>2]-m>>2;x:{if(c>>>0>l>>>0){Oa(j,c-l|0);g=J[e+184>>2];d=J[e+188>>2];break x}if(c>>>0>=l>>>0){break x}J[e+200>>2]=m+(c<<2)}if((d|0)==(g|0)){g=1;break m}c=0;while(1){if(!Te(1,i+8|0,b)){break n}g=J[i+8>>2];d=J[e+148>>2];if(g>>>0>(J[d+4>>2]-J[d>>2]>>2>>>0)/3>>>0){break n}if(g){x=P(c,12);l=x+J[f>>2]|0;d=J[l>>2];m=J[l+4>>2]-d>>2;y:{if(m>>>0>>0){Oa(l,g-m|0);d=J[x+J[f>>2]>>2];break y}if(g>>>0>=m>>>0){break y}J[l+4>>2]=(g<<2)+d}re(g,1,b,d);J[J[j>>2]+(c<<2)>>2]=g}g=1;c=c+1|0;if(c>>>0<(J[e+188>>2]-J[e+184>>2]|0)/12>>>0){continue}break}break m}g=0}ia=i+16|0;z:{if(!g){break z}c=0;f=0;g=0;d=0;l=0;x=0;n=ia-96|0;ia=n;J[n+72>>2]=0;J[n+64>>2]=0;J[n+68>>2]=0;J[n+48>>2]=0;J[n+52>>2]=0;J[n+40>>2]=0;J[n+44>>2]=0;J[n+56>>2]=1065353216;J[n+32>>2]=0;J[n+24>>2]=0;J[n+28>>2]=0;j=a;F=J[a+124>>2];A:{B:{C:{D:{if((q|0)<=0){break D}r=j+232|0;O=J[j+216>>2]!=J[j+220>>2];D=1;while(1){i=l;l=i+1|0;a=J[r+172>>2];E:{F:{if((a|0)!=-1){b=J[r+196>>2]+(a<<2)|0;m=J[b>>2];a=m-1|0;J[b>>2]=a;b=9;if((m|0)<=0){break E}a=J[J[J[r+184>>2]+P(J[r+172>>2],12)>>2]+(a<<2)>>2];if(a>>>0>4){break E}b=J[(a<<2)+12192>>2];break F}b=7;a=J[r+144>>2];a=L[(na[J[J[a>>2]+32>>2]](a)|0)+36>>1];if(((a<<8|a>>>8)&65535)>>>0>513|!K[r+76|0]){break F}b=0;p=J[r- -64>>2];h=J[r+72>>2];a=p+(h>>>3|0)|0;o=J[r+68>>2];if(a>>>0>=o>>>0){break F}m=K[a|0];a=h+1|0;J[r+72>>2]=a;m=m>>>(h&7)&1;if(!m){break F}k=a>>>3|0;b=p+k|0;G:{if(b>>>0>=o>>>0){b=a;a=0;break G}s=K[b|0];b=h+2|0;J[r+72>>2]=b;k=b>>>3|0;a=s>>>(a&7)&1}h=k+p|0;if(h>>>0>>0){h=K[h|0];J[r+72>>2]=b+1;b=h>>>(b&7)<<1&2}else{b=0}b=(a|b)<<1|m}J[r+168>>2]=b}H:{I:{if(!b){if((c|0)==(g|0)){m=-1;break C}a=-1;k=J[j+8>>2];s=J[k+24>>2];v=c-4|0;h=J[v>>2];b=-1;J:{if((h|0)==-1){break J}m=h+1|0;m=(m>>>0)%3|0?m:h-2|0;b=-1;if((m|0)==-1){break J}b=J[J[k>>2]+(m<<2)>>2]}f=J[s+(b<<2)>>2];if((f|0)!=-1){a=f+1|0;a=(a>>>0)%3|0?a:f-2|0}if((a|0)==(h|0)){m=-1;break C}if((h|0)!=-1){m=-1;if(J[J[k+12>>2]+(h<<2)>>2]!=-1){break C}}f=J[k+12>>2];if((a|0)!=-1){m=-1;if(J[f+(a<<2)>>2]!=-1){break C}}i=P(i,3);m=i+1|0;J[f+(h<<2)>>2]=m;D=m<<2;J[D+f>>2]=h;o=i+2|0;J[f+(a<<2)>>2]=o;y=o<<2;J[y+f>>2]=a;p=-1;f=-1;K:{if((h|0)==-1){break K}L:{if((h>>>0)%3|0){m=h-1|0;break L}m=h+2|0;f=-1;if((m|0)==-1){break K}}f=J[J[k>>2]+(m<<2)>>2]}M:{if((a|0)==-1){break M}m=a+1|0;a=(m>>>0)%3|0?m:a-2|0;if((a|0)==-1){break M}p=J[J[k>>2]+(a<<2)>>2]}m=-1;if((b|0)==(f|0)|(b|0)==(p|0)){break C}a=J[k>>2];J[a+(i<<2)>>2]=b;J[a+D>>2]=p;J[a+y>>2]=f;if((f|0)!=-1){J[s+(f<<2)>>2]=o}a=J[j+120>>2]+(b>>>3&536870908)|0;f=J[a>>2];Q=a,R=nk(b)&f,J[Q>>2]=R;J[v>>2]=i;s=J[c-4>>2];break I}m=-1;N:{O:{P:{Q:{R:{S:{T:{U:{V:{switch(b-1|0){case 2:case 4:if((c|0)==(g|0)){break C}v=c-4|0;a=J[v>>2];h=J[j+8>>2];k=J[h+12>>2];if(!((a|0)==-1|J[k+(a<<2)>>2]==-1)){break C}f=P(i,3);o=(b|0)==5;s=f+(o?2:1)|0;y=s<<2;J[y+k>>2]=a;J[k+(a<<2)>>2]=s;ff(h+24|0,11472);b=J[j+8>>2];p=J[b+24>>2];if(J[b+28>>2]-p>>2>(F|0)){break C}b=J[b>>2];z=b+y|0;k=J[h+28>>2];h=J[h+24>>2];y=(k-h>>2)-1|0;J[z>>2]=y;if((h|0)!=(k|0)){J[p+(y<<2)>>2]=s}k=o?f:f+2|0;o=b+(f+o<<2)|0;W:{if((a|0)==-1){J[b+(k<<2)>>2]=-1;h=-1;break W}X:{Y:{Z:{if((a>>>0)%3|0){h=a-1|0;break Z}h=a+2|0;if((h|0)==-1){break Y}}h=J[b+(h<<2)>>2];J[b+(k<<2)>>2]=h;if((h|0)==-1){break X}J[p+(h<<2)>>2]=k;break X}J[b+(k<<2)>>2]=-1}k=a+1|0;a=(k>>>0)%3|0?k:a-2|0;h=-1;if((a|0)==-1){break W}h=J[b+(a<<2)>>2]}J[o>>2]=h;J[v>>2]=f;break U;case 0:if((c|0)==(f|0)){break C}a=c-4|0;p=J[a>>2];J[n+68>>2]=a;o=J[n+44>>2];_:{if(!o){c=a;break _}z=J[n+40>>2];s=mk(o)>>>0>1;b=i&o+2147483647;$:{if(!s){break $}b=i;if(b>>>0>>0){break $}b=(i>>>0)%(o>>>0)|0}h=b;b=J[z+(h<<2)>>2];if(!b){c=a;break _}k=J[b>>2];if(!k){c=a;break _}aa:{if(!s){b=o-1|0;while(1){o=J[k+4>>2];ba:{if((o|0)!=(i|0)){if((h|0)==(b&o)){break ba}c=a;break _}if((i|0)==J[k+8>>2]){break aa}}k=J[k>>2];if(k){continue}break}c=a;break _}while(1){b=J[k+4>>2];ca:{if((b|0)!=(i|0)){if(b>>>0>=o>>>0){b=(b>>>0)%(o>>>0)|0}if((b|0)==(h|0)){break ca}c=a;break _}if((i|0)==J[k+8>>2]){break aa}}k=J[k>>2];if(k){continue}break}c=a;break _}if((a|0)!=(u|0)){J[a>>2]=J[k+12>>2];J[n+68>>2]=c;break _}a=u-f|0;b=a>>2;c=b+1|0;if(c>>>0>=1073741824){break b}g=a>>1;c=a>>>0>=2147483644?1073741823:c>>>0>>0?g:c;if(c){if(c>>>0>=1073741824){break B}g=Aj(c<<2)}else{g=0}b=g+(b<<2)|0;J[b>>2]=J[k+12>>2];u=(c<<2)+g|0;c=b+4|0;if((a|0)>0){Vi(g,f,a)}J[n+72>>2]=u;J[n+68>>2]=c;J[n+64>>2]=g;if(!f){break _}xj(f)}if((c|0)==(g|0)){break O}y=c-4|0;a=J[y>>2];if((a|0)==(p|0)){break O}b=(a|0)==-1;o=J[j+8>>2];if(!b&J[J[o+12>>2]+(a<<2)>>2]!=-1){break O}v=J[o+12>>2];if((p|0)!=-1&J[v+(p<<2)>>2]!=-1){break O}s=P(i,3);k=s+2|0;J[v+(a<<2)>>2]=k;i=k<<2;J[i+v>>2]=a;f=s+1|0;J[v+(p<<2)>>2]=f;z=f<<2;J[z+v>>2]=p;if(b){break S}if((a>>>0)%3|0){b=a-1|0;break R}b=a+2|0;if((b|0)!=-1){break R}h=J[o>>2];f=-1;break Q;case 6:break V;default:break C}}h=J[j+8>>2];ff(h+24|0,11472);b=J[j+8>>2];a=P(i,3);k=J[h+28>>2];p=J[h+24>>2];o=k-p|0;h=o>>2;s=h-1|0;J[J[b>>2]+(a<<2)>>2]=s;ff(b+24|0,11472);v=a+1|0;J[J[b>>2]+(v<<2)>>2]=(J[b+28>>2]-J[b+24>>2]>>2)-1;b=J[j+8>>2];ff(b+24|0,11472);y=a+2|0;J[J[b>>2]+(y<<2)>>2]=(J[b+28>>2]-J[b+24>>2]>>2)-1;z=J[j+8>>2];b=J[z+24>>2];if(J[z+28>>2]-b>>2>(F|0)){break C}da:{ea:{if((k|0)!=(p|0)){J[b+(s<<2)>>2]=a;p=0;if((o|0)==-4){break ea}}J[b+(h<<2)>>2]=v;p=h+1|0;if((p|0)==-1){break da}}J[b+(p<<2)>>2]=y}if((c|0)!=(u|0)){J[c>>2]=a;c=c+4|0;J[n+68>>2]=c;break T}b=c-f|0;h=b>>2;c=h+1|0;if(c>>>0>=1073741824){break b}g=b>>1;c=b>>>0>=2147483644?1073741823:c>>>0>>0?g:c;if(c){if(c>>>0>=1073741824){break B}g=Aj(c<<2)}else{g=0}h=g+(h<<2)|0;J[h>>2]=a;u=(c<<2)+g|0;c=h+4|0;if((b|0)>0){Vi(g,f,b)}J[n+72>>2]=u;J[n+68>>2]=c;J[n+64>>2]=g;if(!f){break U}xj(f)}f=g}pf(r,J[c-4>>2]);a=J[j+40>>2];if((a|0)==J[j+36>>2]){break H}b=a-12|0;h=J[b+4>>2];i=(i^-1)+q|0;if(h>>>0>i>>>0){break O}if((h|0)!=(i|0)){break H}k=K[a-4|0];h=J[b>>2];J[j+40>>2]=b;if((h|0)<0){break O}p=c-4|0;a=J[p>>2];J[n+20>>2]=(h^-1)+q;b=n+20|0;J[n+88>>2]=b;gf(n,n+40|0,b,n+88|0);h=J[n>>2];fa:{if(k&1){b=-1;if((a|0)==-1){break fa}b=a+1|0;b=(b>>>0)%3|0?b:a-2|0;break fa}b=-1;if((a|0)==-1){break fa}b=a-1|0;if((a>>>0)%3|0){break fa}b=a+2|0}J[h+12>>2]=b;b=J[j+40>>2];if((b|0)==J[j+36>>2]){break H}while(1){a=b-12|0;h=J[a+4>>2];if(h>>>0>i>>>0){break O}if((h|0)!=(i|0)){break H}h=K[b-4|0];b=J[a>>2];J[j+40>>2]=a;if((b|0)<0){break O}a=J[p>>2];J[n+20>>2]=(b^-1)+q;b=n+20|0;J[n+88>>2]=b;gf(n,n+40|0,b,n+88|0);o=J[n>>2];ga:{if(h&1){b=-1;if((a|0)==-1){break ga}b=a+1|0;b=(b>>>0)%3|0?b:a-2|0;break ga}b=-1;if((a|0)==-1){break ga}b=a-1|0;if((a>>>0)%3|0){break ga}b=a+2|0}J[o+12>>2]=b;b=J[j+40>>2];if((b|0)!=J[j+36>>2]){continue}break}break H}f=-1;h=J[o>>2];J[h+(s<<2)>>2]=-1;b=-1;break P}h=J[o>>2];f=J[h+(b<<2)>>2]}J[(s<<2)+h>>2]=f;b=a+1|0;a=(b>>>0)%3|0?b:a-2|0;b=-1;if((a|0)==-1){break P}b=J[(a<<2)+h>>2]}J[h+z>>2]=b;ha:{if((p|0)==-1){J[h+i>>2]=-1;k=-1;a=-1;break ha}ia:{ja:{ka:{if((p>>>0)%3|0){b=p-1|0;break ka}b=p+2|0;if((b|0)==-1){break ja}}a=J[(b<<2)+h>>2];J[h+i>>2]=a;if((a|0)==-1){break ia}J[J[o+24>>2]+(a<<2)>>2]=k;break ia}J[h+i>>2]=-1}k=-1;b=p+1|0;b=(b>>>0)%3|0?b:p-2|0;a=-1;if((b|0)==-1){break ha}k=J[(b<<2)+h>>2];a=b}b=J[j+388>>2];i=f<<2;p=b+i|0;z=b;b=k<<2;J[p>>2]=J[p>>2]+J[z+b>>2];z=b;b=J[o+24>>2];p=z+b|0;if((f|0)!=-1){J[b+i>>2]=J[p>>2]}b=a;while(1){if((b|0)==-1){break N}J[(b<<2)+h>>2]=f;o=b+1|0;b=(o>>>0)%3|0?o:b-2|0;i=-1;la:{if((b|0)==-1){break la}b=J[v+(b<<2)>>2];i=-1;if((b|0)==-1){break la}i=b+1|0;i=(i>>>0)%3|0?i:b-2|0}b=i;if((a|0)!=(b|0)){continue}break}}if(!D){break D}break C}J[p>>2]=-1;ma:{if(O){break ma}if((x|0)!=(G|0)){J[x>>2]=k;x=x+4|0;J[n+28>>2]=x;break ma}b=G-d|0;i=b>>2;a=i+1|0;if(a>>>0>=1073741824){break b}f=b>>1;f=b>>>0>=2147483644?1073741823:a>>>0>>0?f:a;if(f){if(f>>>0>=1073741824){break B}a=Aj(f<<2)}else{a=0}i=a+(i<<2)|0;J[i>>2]=k;G=a+(f<<2)|0;x=i+4|0;if((b|0)>0){Vi(a,d,b)}J[n+32>>2]=G;J[n+28>>2]=x;J[n+24>>2]=a;if(d){xj(d)}d=a}J[y>>2]=s}pf(r,s);f=g}D=(l|0)<(q|0);if((l|0)!=(q|0)){continue}break}l=q}m=-1;f=J[j+8>>2];if(J[f+28>>2]-J[f+24>>2]>>2>(F|0)){break C}if((c|0)!=(g|0)){s=j+72|0;f=j+60|0;v=j+312|0;while(1){c=c-4|0;q=J[c>>2];J[n+68>>2]=c;na:{oa:{pa:{if(L[j+270>>1]<=513){if(!K[j+364|0]){break oa}a=J[j+360>>2];b=J[j+352>>2]+(a>>>3|0)|0;if(b>>>0>=M[j+356>>2]){break pa}b=K[b|0];J[j+360>>2]=a+1;if(!(b>>>(a&7)&1)){break pa}break oa}if(le(v)){break oa}}k=J[j+64>>2];a=J[j+68>>2];if((k|0)==a<<5){if((k+1|0)<0){break b}if(k>>>0<=1073741822){a=a<<6;b=(k&-32)+32|0;a=a>>>0>b>>>0?a:b}else{a=2147483647}Mc(f,a);k=J[j+64>>2]}J[j+64>>2]=k+1;a=J[j+60>>2]+(k>>>3&536870908)|0;b=J[a>>2];Q=a,R=nk(k)&b,J[Q>>2]=R;a=J[j+76>>2];if((a|0)!=J[j+80>>2]){J[a>>2]=q;J[j+76>>2]=a+4;break na}i=J[s>>2];b=a-i|0;k=b>>2;a=k+1|0;if(a>>>0<1073741824){h=b>>1;h=b>>>0>=2147483644?1073741823:a>>>0>>0?h:a;if(h){if(h>>>0>=1073741824){break B}a=Aj(h<<2)}else{a=0}k=a+(k<<2)|0;J[k>>2]=q;if((b|0)>0){Vi(a,i,b)}J[j+80>>2]=a+(h<<2);J[j+76>>2]=k+4;J[j+72>>2]=a;if(!i){break na}xj(i);break na}break b}o=J[j+8>>2];r=J[o>>2];if(((J[o+4>>2]-r>>2>>>0)/3|0)<=(l|0)){break C}a=-1;u=J[o+24>>2];i=-1;qa:{if((q|0)==-1){break qa}h=q+1|0;h=(h>>>0)%3|0?h:q-2|0;i=-1;if((h|0)==-1){break qa}i=J[r+(h<<2)>>2]}b=J[u+(i<<2)>>2];ra:{if((b|0)==-1){p=1;h=-1;break ra}p=1;h=-1;k=b+1|0;b=(k>>>0)%3|0?k:b-2|0;if((b|0)==-1){break ra}p=0;a=b+1|0;a=(a>>>0)%3|0?a:b-2|0;if((a|0)!=-1){h=J[r+(a<<2)>>2]}a=b}k=-1;b=J[u+(h<<2)>>2];if((b|0)!=-1){k=b+1|0;k=(k>>>0)%3|0?k:b-2|0}if((a|0)==(q|0)|(k|0)==(q|0)|(a|0)==(k|0)){break C}if(!((q|0)==-1|J[J[o+12>>2]+(q<<2)>>2]==-1)|!(J[J[o+12>>2]+(a<<2)>>2]==-1|p)){break C}p=-1;b=J[o+12>>2];o=-1;sa:{if((k|0)==-1){break sa}if(J[b+(k<<2)>>2]!=-1){break C}u=k+1|0;u=(u>>>0)%3|0?u:k-2|0;o=-1;if((u|0)==-1){break sa}o=J[r+(u<<2)>>2]}u=P(l,3);J[n>>2]=u;J[b+(u<<2)>>2]=q;J[b+(q<<2)>>2]=u;q=J[n>>2]+1|0;J[b+(q<<2)>>2]=a;J[b+(a<<2)>>2]=q;a=J[n>>2]+2|0;J[b+(a<<2)>>2]=k;J[b+(k<<2)>>2]=a;a=J[n>>2];J[r+(a<<2)>>2]=h;b=a+1|0;q=r+(b<<2)|0;J[q>>2]=o;k=a+2|0;r=r+(k<<2)|0;J[r>>2]=i;a=J[j+120>>2];i=b?h:-1;h=a+(i>>>3&536870908)|0;o=J[h>>2];Q=h,R=nk(i)&o,J[Q>>2]=R;p=(b|0)!=-1?J[q>>2]:p;b=a+(p>>>3&536870908)|0;i=J[b>>2];Q=b,R=nk(p)&i,J[Q>>2]=R;b=-1;b=(k|0)!=-1?J[r>>2]:b;a=a+(b>>>3&536870908)|0;i=J[a>>2];Q=a,R=nk(b)&i,J[Q>>2]=R;H[n+88|0]=1;hf(f,n+88|0);ff(s,n);l=l+1|0}if((c|0)!=(g|0)){continue}break}f=J[j+8>>2]}if(((J[f+4>>2]-J[f>>2]>>2>>>0)/3|0)!=(l|0)){break C}m=J[f+28>>2]-J[f+24>>2]>>2;if((d|0)==(x|0)){d=x;break C}a=d;while(1){i=J[a>>2];l=J[f+24>>2];b=m-1|0;c=l+(b<<2)|0;if(J[c>>2]==-1){while(1){b=m-2|0;m=m-1|0;c=l+(b<<2)|0;if(J[c>>2]==-1){continue}break}}if(b>>>0>=i>>>0){J[n>>2]=f;c=J[c>>2];H[n+12|0]=1;J[n+8>>2]=c;J[n+4>>2]=c;if((c|0)!=-1){while(1){c=J[J[j+8>>2]>>2]+(c<<2)|0;if(J[c>>2]!=(b|0)){m=-1;break C}J[c>>2]=i;yd(n);c=J[n+8>>2];if((c|0)!=-1){continue}break}f=J[j+8>>2]}l=J[f+24>>2];c=l+(b<<2)|0;if((i|0)!=-1){J[l+(i<<2)>>2]=J[c>>2]}J[c>>2]=-1;c=1<>2];i=l+(i>>>3&536870908)|0;l=l+(b>>>3&536870908)|0;b=1<>2]&b){c=c|J[i>>2]}else{c=J[i>>2]&(c^-1)}J[i>>2]=c;J[l>>2]=J[l>>2]&(b^-1);m=m-1|0}a=a+4|0;if((x|0)!=(a|0)){continue}break}}if(d){xj(d)}a=J[n+48>>2];if(a){while(1){c=J[a>>2];xj(a);a=c;if(a){continue}break}}a=J[n+40>>2];J[n+40>>2]=0;if(a){xj(a)}if(g){J[n+68>>2]=g;xj(g)}ia=n+96|0;a=m;break A}Za();C()}g=a;if((a|0)==-1){break z}a=J[E+16>>2];c=a+J[E>>2]|0;d=J[E+8>>2];d=d-a|0;a=J[J[j+4>>2]+32>>2];I[a+38>>1]=L[a+38>>1];J[a>>2]=c;J[a+16>>2]=0;J[a+20>>2]=0;J[a+8>>2]=d;J[a+12>>2]=0;a=J[j+4>>2];c=L[a+36>>1];b=c<<8|c>>>8;if((b&65535)>>>0<=513){a=J[a+32>>2];d=N+J[a+20>>2]|0;c=A+J[a+16>>2]|0;d=c>>>0>>0?d+1|0:d;J[a+16>>2]=c;J[a+20>>2]=d}ta:{if(J[j+216>>2]==J[j+220>>2]){break ta}c=J[j+8>>2];a=J[c>>2];c=J[c+4>>2];ua:{if((b&65535)>>>0>=513){if((a|0)==(c|0)){break ta}c=0;break ua}if((a|0)==(c|0)){break ta}c=0;while(1){if(_e(j,c)){c=c+3|0;a=J[j+8>>2];if(c>>>0>2]-J[a>>2]>>2>>>0){continue}break ta}break}break z}while(1){if($e(j,c)){c=c+3|0;a=J[j+8>>2];if(c>>>0>2]-J[a>>2]>>2>>>0){continue}break ta}break}break z}af(e);c=J[j+216>>2];if((c|0)!=J[j+220>>2]){q=0;while(1){d=P(q,144);Ci((d+c|0)+4|0,J[j+8>>2]);a=J[B>>2];b=a+d|0;c=J[b+132>>2];b=J[b+136>>2];if((c|0)!=(b|0)){while(1){Ei((d+J[B>>2]|0)+4|0,J[c>>2]);c=c+4|0;if((b|0)!=(c|0)){continue}break}a=J[B>>2]}if(!Di((a+d|0)+4|0)){break z}q=q+1|0;c=J[j+216>>2];if(q>>>0<(J[j+220>>2]-c|0)/144>>>0){continue}break}}a=J[j+8>>2];bf(j+184|0,J[a+28>>2]-J[a+24>>2]>>2);w=J[j+216>>2];if((w|0)!=J[j+220>>2]){c=0;while(1){a=P(c,144)+w|0;d=J[a+60>>2]-J[a+56>>2]>>2;b=a+104|0;a=J[j+8>>2];a=J[a+28>>2]-J[a+24>>2]>>2;bf(b,(a|0)<(d|0)?d:a);c=c+1|0;w=J[j+216>>2];if(c>>>0<(J[j+220>>2]-w|0)/144>>>0){continue}break}}w=cf(j,g)}break c}w=0}ia=t- -64|0;return w|0}La();C()}function lf(a){a=a|0;var b=0,c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,D=0,E=0,F=0,G=0,N=0,O=0,Q=0,R=0,S=0,T=0;t=ia+-64|0;ia=t;J[a+132>>2]=0;if(J[a+148>>2]){c=J[a+144>>2];if(c){while(1){d=J[c>>2];xj(c);c=d;if(c){continue}break}}c=0;J[a+144>>2]=0;o=J[a+140>>2];a:{if(!o){break a}if(o>>>0>=4){d=o&-4;while(1){h=c<<2;J[h+J[a+136>>2]>>2]=0;J[J[a+136>>2]+(h|4)>>2]=0;J[J[a+136>>2]+(h|8)>>2]=0;J[J[a+136>>2]+(h|12)>>2]=0;c=c+4|0;b=b+4|0;if((d|0)!=(b|0)){continue}break}}d=o&3;if(!d){break a}while(1){J[J[a+136>>2]+(c<<2)>>2]=0;c=c+1|0;y=y+1|0;if((d|0)!=(y|0)){continue}break}}J[a+148>>2]=0}b:{c:{c=J[a+4>>2];y=K[c+36|0];d=y<<8|K[c+37|0];if(d>>>0<=513){j=J[c+32>>2];d:{if(d>>>0<=511){d=J[j+20>>2];b=J[j+16>>2];h=b+4|0;d=h>>>0<4?d+1|0:d;o=h;h=J[j+12>>2];if(o>>>0>M[j+8>>2]&(h|0)<=(d|0)|(d|0)>(h|0)){break c}h=b+J[j>>2]|0;b=K[h|0]|K[h+1|0]<<8|(K[h+2|0]<<16|K[h+3|0]<<24);J[j+16>>2]=o;J[j+20>>2]=d;break d}if(!Te(1,t,j)){break c}c=J[a+4>>2];y=K[c+36|0];b=J[t>>2]}J[a+132>>2]=b}j=J[c+32>>2];e:{f:{g:{if((y&255)>>>0<=1){y=0;d=J[j+20>>2];o=J[j+16>>2];h=o+4|0;d=h>>>0<4?d+1|0:d;b=h;h=J[j+12>>2];if(b>>>0>M[j+8>>2]&(h|0)<=(d|0)|(d|0)>(h|0)){break b}h=o+J[j>>2]|0;h=K[h|0]|K[h+1|0]<<8|(K[h+2|0]<<16|K[h+3|0]<<24);J[t+60>>2]=h;J[j+16>>2]=b;J[j+20>>2]=d;J[a+156>>2]=h;p=a+156|0;break g}y=0;if(!Te(1,t+60|0,j)){break b}c=J[a+4>>2];d=K[c+36|0];J[a+156>>2]=J[t+60>>2];p=a+156|0;if(d>>>0>1){break f}}o=J[c+32>>2];c=J[o+8>>2];b=J[o+12>>2];e=c;c=J[o+20>>2];h=J[o+16>>2];d=h+4|0;c=d>>>0<4?c+1|0:c;if(e>>>0>>0&(c|0)>=(b|0)|(c|0)>(b|0)){break b}h=h+J[o>>2]|0;b=K[h|0]|K[h+1|0]<<8|(K[h+2|0]<<16|K[h+3|0]<<24);J[t+56>>2]=b;J[o+16>>2]=d;J[o+20>>2]=c;break e}if(!Te(1,t+56|0,J[c+32>>2])){break b}b=J[t+56>>2]}if(b>>>0>1431655765|M[p>>2]>P(b,3)>>>0){break b}i=J[a+4>>2];d=J[i+32>>2];e=J[d+8>>2];h=J[d+12>>2];c=J[d+20>>2];f=J[d+16>>2];if((h|0)<=(c|0)&f>>>0>=e>>>0|(c|0)>(h|0)){break b}k=J[d>>2];g=K[k+f|0];j=f+1|0;o=j?c:c+1|0;J[d+16>>2]=j;J[d+20>>2]=o;h:{if(K[i+36|0]<=1){o=f+5|0;c=o>>>0<5?c+1|0:c;if(o>>>0>e>>>0&(c|0)>=(h|0)|(c|0)>(h|0)){break b}h=j+k|0;p=K[h|0]|K[h+1|0]<<8|(K[h+2|0]<<16|K[h+3|0]<<24);J[t+52>>2]=p;J[d+16>>2]=o;J[d+20>>2]=c;break h}if(!Te(1,t+52|0,d)){break b}p=J[t+52>>2]}if(b>>>0

>>0|((p>>>0)/3|0)+p>>>0>>0){break b}c=J[a+4>>2];j=J[c+32>>2];i:{if(K[c+36|0]<=1){c=J[j+20>>2];h=J[j+16>>2];d=h+4|0;c=d>>>0<4?c+1|0:c;o=d;d=J[j+12>>2];if(o>>>0>M[j+8>>2]&(d|0)<=(c|0)|(c|0)>(d|0)){break b}d=h+J[j>>2]|0;h=K[d|0]|K[d+1|0]<<8|(K[d+2|0]<<16|K[d+3|0]<<24);J[t+48>>2]=h;J[j+16>>2]=o;J[j+20>>2]=c;break i}if(!Te(1,t+48|0,j)){break b}h=J[t+48>>2]}if(h>>>0>p>>>0){break b}J[a+28>>2]=J[a+24>>2];c=ui(Aj(88));d=J[a+8>>2];J[a+8>>2]=c;if(d){Ue(d);if(!J[a+8>>2]){break b}}J[a+164>>2]=J[a+160>>2];Ve(a+160|0,b);J[a+176>>2]=J[a+172>>2];Ve(a+172|0,b);J[a- -64>>2]=0;J[a+92>>2]=-1;J[a+84>>2]=-1;J[a+88>>2]=-1;J[a+40>>2]=J[a+36>>2];J[a+52>>2]=J[a+48>>2];J[a+76>>2]=J[a+72>>2];E=a+216|0;We(E);Xe(E,g);if(!vi(J[a+8>>2],b,J[a+156>>2]+h|0)){break b}c=J[a+156>>2];H[t|0]=1;Qe(a+120|0,c+h|0,t);d=J[a+4>>2];c=L[d+36>>1];c=(c<<8|c>>>8)&65535;j:{if(c>>>0<=513){j=J[d+32>>2];k:{if(c>>>0<=511){d=J[j+20>>2];b=J[j+16>>2];c=b+4|0;d=c>>>0<4?d+1|0:d;o=c;c=J[j+12>>2];if(o>>>0>M[j+8>>2]&(c|0)<=(d|0)|(c|0)<(d|0)){break b}c=b+J[j>>2]|0;b=K[c|0]|K[c+1|0]<<8|(K[c+2|0]<<16|K[c+3|0]<<24);J[j+16>>2]=o;J[j+20>>2]=d;break k}if(!Te(1,t+44|0,j)){break b}b=J[t+44>>2]}if(!b){break b}j=J[J[a+4>>2]+32>>2];o=J[j+8>>2];c=J[j+16>>2];d=o-c|0;c=J[j+12>>2]-(J[j+20>>2]+(c>>>0>o>>>0)|0)|0;if((c|0)<=0&b>>>0>d>>>0|(c|0)<0){break b}d=rg(t);k=J[J[a+4>>2]+32>>2];c=J[k+16>>2];j=(c+J[k>>2]|0)+b|0;o=J[k+8>>2];c=(o-c|0)-b|0;I[d+38>>1]=L[k+38>>1];J[d>>2]=j;J[d+16>>2]=0;J[d+20>>2]=0;J[d+8>>2]=c;J[d+12>>2]=0;o=Ye(a,d);if((o|0)==-1){break b}O=o>>31;break j}o=-1;O=-1;if((Ye(a,J[d+32>>2])|0)==-1){break b}}B=a+232|0;mf(B,a);J[a+372>>2]=g;J[a+384>>2]=J[a+156>>2]+h;Q=rg(t);k=Q;e=0;j=ia-16|0;ia=j;l:{if(!Ze(B,k)){break l}d=J[k+20>>2];b=J[k+16>>2];c=b+4|0;d=c>>>0<4?d+1|0:d;h=c;c=J[k+12>>2];if(h>>>0>M[k+8>>2]&(c|0)<=(d|0)|(c|0)<(d|0)){break l}c=b+J[k>>2]|0;c=K[c|0]|K[c+1|0]<<8|(K[c+2|0]<<16|K[c+3|0]<<24);J[k+16>>2]=h;J[k+20>>2]=d;if((c|0)<0){break l}h=J[B+152>>2];if((h|0)<=(c|0)){break l}J[j+12>>2]=0;c=J[B+156>>2];d=J[B+160>>2]-c>>2;m:{if(d>>>0>>0){jb(B+156|0,h-d|0,j+12|0);break m}if(d>>>0<=h>>>0){break m}J[B+160>>2]=c+(h<<2)}e=je(B+168|0,k)}ia=j+16|0;n:{if(!e){break n}e=0;c=0;d=0;h=0;j=0;l=ia-96|0;ia=l;J[l+72>>2]=0;J[l+64>>2]=0;J[l+68>>2]=0;J[l+48>>2]=0;J[l+52>>2]=0;J[l+40>>2]=0;J[l+44>>2]=0;J[l+56>>2]=1065353216;J[l+32>>2]=0;J[l+24>>2]=0;J[l+28>>2]=0;i=a;G=J[a+124>>2];o:{p:{q:{r:{s:{if((p|0)<=0){break s}F=i+400|0;R=i+232|0;x=J[i+216>>2]!=J[i+220>>2];A=1;while(1){k=j;j=j+1|0;t:{u:{v:{w:{x:{if(J[i+420>>2]!=-1){if(le(F)){break x}}if(!K[i+308|0]){break w}y:{m=J[i+296>>2];s=J[i+304>>2];a=m+(s>>>3|0)|0;v=J[i+300>>2];if(a>>>0>=v>>>0){break y}b=K[a|0];a=s+1|0;J[i+304>>2]=a;g=b>>>(s&7)&1;if(!g){break y}n=a>>>3|0;b=m+n|0;z:{if(b>>>0>=v>>>0){b=a;a=0;break z}f=K[b|0];b=s+2|0;J[i+304>>2]=b;n=b>>>3|0;a=f>>>(a&7)&1}f=n+m|0;if(f>>>0>>0){f=K[f|0];J[i+304>>2]=b+1;b=f>>>(b&7)<<1&2}else{b=0}b=(a|b)<<1|g;J[i+416>>2]=b;break v}J[i+416>>2]=0;break w}b=J[i+420>>2];J[i+416>>2]=b;if(b){break v}}if((c|0)==(d|0)){v=-1;break r}e=-1;A=J[i+8>>2];s=J[A+24>>2];m=c-4|0;n=J[m>>2];g=-1;A:{if((n|0)==-1){break A}b=n+1|0;b=(b>>>0)%3|0?b:n-2|0;g=-1;if((b|0)==-1){break A}g=J[J[A>>2]+(b<<2)>>2]}b=J[s+(g<<2)>>2];if((b|0)!=-1){a=b+1|0;e=(a>>>0)%3|0?a:b-2|0}if((e|0)==(n|0)){v=-1;break r}if((n|0)!=-1){v=-1;if(J[J[A+12>>2]+(n<<2)>>2]!=-1){break r}}b=J[A+12>>2];if((e|0)!=-1){v=-1;if(J[b+(e<<2)>>2]!=-1){break r}}u=P(k,3);a=u+1|0;J[b+(n<<2)>>2]=a;f=a<<2;J[f+b>>2]=n;r=u+2|0;J[b+(e<<2)>>2]=r;k=r<<2;J[k+b>>2]=e;w=-1;a=-1;B:{if((n|0)==-1){break B}C:{if((n>>>0)%3|0){b=n-1|0;break C}b=n+2|0;a=-1;if((b|0)==-1){break B}}a=J[J[A>>2]+(b<<2)>>2]}D:{if((e|0)==-1){break D}b=e+1|0;b=(b>>>0)%3|0?b:e-2|0;if((b|0)==-1){break D}w=J[J[A>>2]+(b<<2)>>2]}v=-1;if((a|0)==(g|0)|(g|0)==(w|0)){break r}b=J[A>>2];J[b+(u<<2)>>2]=g;J[b+f>>2]=w;J[b+k>>2]=a;if((a|0)!=-1){J[s+(a<<2)>>2]=r}b=J[i+120>>2]+(g>>>3&536870908)|0;a=J[b>>2];S=b,T=nk(g)&a,J[S>>2]=T;J[m>>2]=u;e=J[c-4>>2];break u}v=-1;E:{F:{G:{H:{I:{J:{K:{L:{M:{N:{O:{switch(b-1|0){case 2:case 4:if((c|0)==(d|0)){break r}g=c-4|0;q=J[g>>2];r=J[i+8>>2];e=J[r+12>>2];if(!((q|0)==-1|J[e+(q<<2)>>2]==-1)){break r}u=P(k,3);m=(b|0)==5;f=u+(m?2:1)|0;a=f<<2;J[a+e>>2]=q;J[e+(q<<2)>>2]=f;ff(r+24|0,11472);b=J[i+8>>2];s=J[b+24>>2];if(J[b+28>>2]-s>>2>(G|0)){break r}n=J[b>>2];w=n+a|0;e=J[r+28>>2];b=J[r+24>>2];a=(e-b>>2)-1|0;J[w>>2]=a;if((b|0)!=(e|0)){J[s+(a<<2)>>2]=f}f=m?u:u+2|0;m=n+(m+u<<2)|0;P:{if((q|0)==-1){J[n+(f<<2)>>2]=-1;b=-1;break P}Q:{R:{S:{if((q>>>0)%3|0){e=q-1|0;break S}e=q+2|0;if((e|0)==-1){break R}}a=J[n+(e<<2)>>2];J[n+(f<<2)>>2]=a;if((a|0)==-1){break Q}J[s+(a<<2)>>2]=f;break Q}J[n+(f<<2)>>2]=-1}a=q+1|0;a=(a>>>0)%3|0?a:q-2|0;b=-1;if((a|0)==-1){break P}b=J[n+(a<<2)>>2]}J[m>>2]=b;J[g>>2]=u;break N;case 0:if((c|0)==(e|0)){break r}a=c-4|0;q=J[a>>2];J[l+68>>2]=a;m=J[l+44>>2];T:{if(!m){c=a;break T}s=J[l+40>>2];g=mk(m)>>>0>1;b=k&m+2147483647;U:{if(!g){break U}b=k;if(b>>>0>>0){break U}b=(k>>>0)%(m>>>0)|0}f=b;b=J[s+(f<<2)>>2];if(!b){c=a;break T}b=J[b>>2];if(!b){c=a;break T}V:{if(!g){m=m-1|0;while(1){g=J[b+4>>2];W:{if((g|0)!=(k|0)){if((f|0)==(g&m)){break W}c=a;break T}if((k|0)==J[b+8>>2]){break V}}b=J[b>>2];if(b){continue}break}c=a;break T}while(1){g=J[b+4>>2];X:{if((g|0)!=(k|0)){if(g>>>0>=m>>>0){g=(g>>>0)%(m>>>0)|0}if((f|0)==(g|0)){break X}c=a;break T}if((k|0)==J[b+8>>2]){break V}}b=J[b>>2];if(b){continue}break}c=a;break T}if((a|0)!=(z|0)){J[a>>2]=J[b+12>>2];J[l+68>>2]=c;break T}f=z-e|0;c=f>>2;d=c+1|0;if(d>>>0>=1073741824){break L}a=f>>1;g=f>>>0>=2147483644?1073741823:a>>>0>d>>>0?a:d;if(g){if(g>>>0>=1073741824){break p}d=Aj(g<<2)}else{d=0}a=d+(c<<2)|0;J[a>>2]=J[b+12>>2];z=(g<<2)+d|0;c=a+4|0;if((f|0)>0){Vi(d,e,f)}J[l+72>>2]=z;J[l+68>>2]=c;J[l+64>>2]=d;if(!e){break T}xj(e)}if((c|0)==(d|0)){break F}m=c-4|0;n=J[m>>2];if((n|0)==(q|0)){break F}g=(n|0)==-1;u=J[i+8>>2];if(!g&J[J[u+12>>2]+(n<<2)>>2]!=-1){break F}r=J[u+12>>2];if((q|0)!=-1&J[r+(q<<2)>>2]!=-1){break F}e=P(k,3);k=e+2|0;J[r+(n<<2)>>2]=k;s=k<<2;J[s+r>>2]=n;a=e+1|0;J[r+(q<<2)>>2]=a;b=a<<2;J[b+r>>2]=q;if(g){break K}if((n>>>0)%3|0){g=n-1|0;break I}g=n+2|0;if((g|0)!=-1){break I}w=J[u>>2];a=-1;break H;case 6:break O;default:break r}}a=J[i+8>>2];ff(a+24|0,11472);b=J[i+8>>2];q=P(k,3);r=J[a+28>>2];s=J[a+24>>2];m=r-s|0;u=m>>2;g=u-1|0;J[J[b>>2]+(q<<2)>>2]=g;ff(b+24|0,11472);f=q+1|0;J[J[b>>2]+(f<<2)>>2]=(J[b+28>>2]-J[b+24>>2]>>2)-1;a=J[i+8>>2];ff(a+24|0,11472);b=q+2|0;J[J[a>>2]+(b<<2)>>2]=(J[a+28>>2]-J[a+24>>2]>>2)-1;a=J[i+8>>2];n=J[a+24>>2];if(J[a+28>>2]-n>>2>(G|0)){break r}Y:{Z:{if((r|0)!=(s|0)){J[n+(g<<2)>>2]=q;g=0;if((m|0)==-4){break Z}}J[n+(u<<2)>>2]=f;g=u+1|0;if((g|0)==-1){break Y}}J[n+(g<<2)>>2]=b}if((c|0)!=(z|0)){J[c>>2]=q;c=c+4|0;J[l+68>>2]=c;break M}g=c-e|0;c=g>>2;d=c+1|0;if(d>>>0>=1073741824){break J}a=g>>1;b=g>>>0>=2147483644?1073741823:a>>>0>d>>>0?a:d;if(b){if(b>>>0>=1073741824){break p}d=Aj(b<<2)}else{d=0}a=d+(c<<2)|0;J[a>>2]=q;z=(b<<2)+d|0;c=a+4|0;if((g|0)>0){Vi(d,e,g)}J[l+72>>2]=z;J[l+68>>2]=c;J[l+64>>2]=d;if(!e){break N}xj(e)}e=d}nf(R,J[c-4>>2]);g=J[i+40>>2];if((g|0)==J[i+36>>2]){break t}b=g-12|0;a=J[b+4>>2];m=(k^-1)+p|0;if(a>>>0>m>>>0){break F}if((a|0)!=(m|0)){break t}k=K[g-4|0];a=J[b>>2];J[i+40>>2]=b;if((a|0)<0){break F}g=c-4|0;f=J[g>>2];J[l+20>>2]=(a^-1)+p;a=l+20|0;J[l+88>>2]=a;gf(l,l+40|0,a,l+88|0);b=J[l>>2];_:{if(k&1){a=-1;if((f|0)==-1){break _}a=f+1|0;a=(a>>>0)%3|0?a:f-2|0;break _}a=-1;if((f|0)==-1){break _}a=f-1|0;if((f>>>0)%3|0){break _}a=f+2|0}J[b+12>>2]=a;b=J[i+40>>2];if((b|0)==J[i+36>>2]){break t}while(1){f=b-12|0;a=J[f+4>>2];if(a>>>0>m>>>0){break F}if((a|0)!=(m|0)){break t}k=K[b-4|0];a=J[f>>2];J[i+40>>2]=f;if((a|0)<0){break F}f=J[g>>2];J[l+20>>2]=(a^-1)+p;a=l+20|0;J[l+88>>2]=a;gf(l,l+40|0,a,l+88|0);b=J[l>>2];$:{if(k&1){a=-1;if((f|0)==-1){break $}a=f+1|0;a=(a>>>0)%3|0?a:f-2|0;break $}a=-1;if((f|0)==-1){break $}a=f-1|0;if((f>>>0)%3|0){break $}a=f+2|0}J[b+12>>2]=a;b=J[i+40>>2];if((b|0)!=J[i+36>>2]){continue}break}break t}La();C()}g=-1;w=J[u>>2];J[w+(e<<2)>>2]=-1;f=-1;break G}La();C()}w=J[u>>2];a=J[w+(g<<2)>>2]}g=a;J[(e<<2)+w>>2]=a;a=n+1|0;a=(a>>>0)%3|0?a:n-2|0;f=-1;if((a|0)==-1){break G}f=J[(a<<2)+w>>2]}J[b+w>>2]=f;aa:{if((q|0)==-1){J[s+w>>2]=-1;n=-1;a=-1;break aa}ba:{ca:{da:{if((q>>>0)%3|0){b=q-1|0;break da}b=q+2|0;if((b|0)==-1){break ca}}a=J[(b<<2)+w>>2];J[s+w>>2]=a;if((a|0)==-1){break ba}J[J[u+24>>2]+(a<<2)>>2]=k;break ba}J[s+w>>2]=-1}n=-1;b=q+1|0;b=(b>>>0)%3|0?b:q-2|0;a=-1;if((b|0)==-1){break aa}n=J[(b<<2)+w>>2];a=b}f=J[i+388>>2];k=g<<2;b=f+k|0;s=b;q=J[b>>2];b=n<<2;J[s>>2]=q+J[b+f>>2];f=b;b=J[u+24>>2];s=f+b|0;if((g|0)!=-1){J[b+k>>2]=J[s>>2]}b=a;while(1){if((b|0)==-1){break E}J[(b<<2)+w>>2]=g;f=b+1|0;b=(f>>>0)%3|0?f:b-2|0;k=-1;ea:{if((b|0)==-1){break ea}f=J[r+(b<<2)>>2];k=-1;if((f|0)==-1){break ea}b=f+1|0;k=(b>>>0)%3|0?b:f-2|0}b=k;if((a|0)!=(b|0)){continue}break}}if(!A){break s}break r}J[s>>2]=-1;fa:{if(x){break fa}if((D|0)!=(N|0)){J[D>>2]=n;D=D+4|0;J[l+28>>2]=D;break fa}g=N-h|0;b=g>>2;k=b+1|0;if(k>>>0>=1073741824){break q}a=g>>1;k=g>>>0>=2147483644?1073741823:a>>>0>k>>>0?a:k;if(k){if(k>>>0>=1073741824){break p}a=Aj(k<<2)}else{a=0}b=a+(b<<2)|0;J[b>>2]=n;N=a+(k<<2)|0;D=b+4|0;if((g|0)>0){Vi(a,h,g)}J[l+32>>2]=N;J[l+28>>2]=D;J[l+24>>2]=a;if(h){xj(h)}h=a}J[m>>2]=e}nf(R,e);e=d}A=(j|0)<(p|0);if((j|0)!=(p|0)){continue}break}j=p}v=-1;e=J[i+8>>2];if(J[e+28>>2]-J[e+24>>2]>>2>(G|0)){break r}if((c|0)!=(d|0)){F=i+72|0;k=i+60|0;s=i+312|0;while(1){c=c-4|0;x=J[c>>2];J[l+68>>2]=c;ga:{ha:{ia:{if(L[i+270>>1]<=513){if(!K[i+364|0]){break ha}b=J[i+360>>2];a=J[i+352>>2]+(b>>>3|0)|0;if(a>>>0>=M[i+356>>2]){break ia}a=K[a|0];J[i+360>>2]=b+1;if(!(a>>>(b&7)&1)){break ia}break ha}if(le(s)){break ha}}ja:{ka:{e=J[i+64>>2];b=J[i+68>>2];if((e|0)==b<<5){if((e+1|0)<0){break ka}if(e>>>0<=1073741822){g=b<<6;b=(e&-32)+32|0;a=b>>>0>>0?g:b}else{a=2147483647}Mc(k,a);e=J[i+64>>2]}J[i+64>>2]=e+1;b=J[i+60>>2]+(e>>>3&536870908)|0;a=J[b>>2];S=b,T=nk(e)&a,J[S>>2]=T;a=J[i+76>>2];if((a|0)!=J[i+80>>2]){J[a>>2]=x;J[i+76>>2]=a+4;break ga}g=J[F>>2];f=a-g|0;b=f>>2;e=b+1|0;if(e>>>0>=1073741824){break ja}a=f>>1;e=f>>>0>=2147483644?1073741823:a>>>0>e>>>0?a:e;if(e){if(e>>>0>=1073741824){break p}a=Aj(e<<2)}else{a=0}b=a+(b<<2)|0;J[b>>2]=x;if((f|0)>0){Vi(a,g,f)}J[i+80>>2]=a+(e<<2);J[i+76>>2]=b+4;J[i+72>>2]=a;if(!g){break ga}xj(g);break ga}La();C()}La();C()}m=J[i+8>>2];r=J[m>>2];if(((J[m+4>>2]-r>>2>>>0)/3|0)<=(j|0)){break r}a=-1;f=J[m+24>>2];b=-1;la:{if((x|0)==-1){break la}e=x+1|0;e=(e>>>0)%3|0?e:x-2|0;b=-1;if((e|0)==-1){break la}b=J[r+(e<<2)>>2]}p=J[f+(b<<2)>>2];ma:{if((p|0)==-1){g=1;z=-1;break ma}g=1;z=-1;e=p+1|0;e=(e>>>0)%3|0?e:p-2|0;if((e|0)==-1){break ma}g=0;a=e+1|0;a=(a>>>0)%3|0?a:e-2|0;if((a|0)!=-1){z=J[r+(a<<2)>>2]}a=e}e=-1;f=J[f+(z<<2)>>2];if((f|0)!=-1){e=f+1|0;e=(e>>>0)%3|0?e:f-2|0}if((a|0)==(x|0)|(e|0)==(x|0)|(a|0)==(e|0)){break r}if(!((x|0)==-1|J[J[m+12>>2]+(x<<2)>>2]==-1)|!(J[J[m+12>>2]+(a<<2)>>2]==-1|g)){break r}g=-1;m=J[m+12>>2];p=-1;na:{if((e|0)==-1){break na}if(J[m+(e<<2)>>2]!=-1){break r}f=e+1|0;f=(f>>>0)%3|0?f:e-2|0;p=-1;if((f|0)==-1){break na}p=J[r+(f<<2)>>2]}f=P(j,3);J[l>>2]=f;J[m+(f<<2)>>2]=x;J[m+(x<<2)>>2]=f;f=J[l>>2]+1|0;J[m+(f<<2)>>2]=a;J[m+(a<<2)>>2]=f;a=J[l>>2]+2|0;J[m+(a<<2)>>2]=e;J[m+(e<<2)>>2]=a;a=J[l>>2];J[r+(a<<2)>>2]=z;x=a+1|0;m=r+(x<<2)|0;J[m>>2]=p;p=a+2|0;f=r+(p<<2)|0;J[f>>2]=b;r=J[i+120>>2];e=x?z:-1;b=r+(e>>>3&536870908)|0;a=J[b>>2];S=b,T=nk(e)&a,J[S>>2]=T;g=(x|0)!=-1?J[m>>2]:g;b=r+(g>>>3&536870908)|0;a=J[b>>2];S=b,T=nk(g)&a,J[S>>2]=T;b=-1;b=(p|0)!=-1?J[f>>2]:b;e=r+(b>>>3&536870908)|0;a=J[e>>2];S=e,T=nk(b)&a,J[S>>2]=T;H[l+88|0]=1;hf(k,l+88|0);ff(F,l);j=j+1|0}if((c|0)!=(d|0)){continue}break}e=J[i+8>>2]}if(((J[e+4>>2]-J[e>>2]>>2>>>0)/3|0)!=(j|0)){break r}v=J[e+28>>2]-J[e+24>>2]>>2;if((h|0)==(D|0)){h=D;break r}a=h;while(1){k=J[a>>2];j=J[e+24>>2];b=v-1|0;c=j+(b<<2)|0;if(J[c>>2]==-1){while(1){b=v-2|0;v=v-1|0;c=j+(b<<2)|0;if(J[c>>2]==-1){continue}break}}if(b>>>0>=k>>>0){J[l>>2]=e;c=J[c>>2];H[l+12|0]=1;J[l+8>>2]=c;J[l+4>>2]=c;if((c|0)!=-1){while(1){c=J[J[i+8>>2]>>2]+(c<<2)|0;if(J[c>>2]!=(b|0)){v=-1;break r}J[c>>2]=k;yd(l);c=J[l+8>>2];if((c|0)!=-1){continue}break}e=J[i+8>>2]}c=J[e+24>>2];j=c+(b<<2)|0;if((k|0)!=-1){J[c+(k<<2)>>2]=J[j>>2]}J[j>>2]=-1;g=1<>2];j=c+(k>>>3&536870908)|0;k=c+(b>>>3&536870908)|0;c=1<>2]&c){b=g|J[j>>2]}else{b=J[j>>2]&(g^-1)}J[j>>2]=b;J[k>>2]=J[k>>2]&(c^-1);v=v-1|0}a=a+4|0;if((D|0)!=(a|0)){continue}break}}if(h){xj(h)}a=J[l+48>>2];if(a){while(1){c=J[a>>2];xj(a);a=c;if(a){continue}break}}a=J[l+40>>2];J[l+40>>2]=0;if(a){xj(a)}if(d){J[l+68>>2]=d;xj(d)}ia=l+96|0;a=v;break o}La();C()}Za();C()}d=a;if((a|0)==-1){break n}c=Q;a=J[c+16>>2];h=a+J[c>>2]|0;c=J[c+8>>2];a=c-a|0;c=J[J[i+4>>2]+32>>2];I[c+38>>1]=L[c+38>>1];J[c>>2]=h;J[c+16>>2]=0;J[c+20>>2]=0;J[c+8>>2]=a;J[c+12>>2]=0;c=J[i+4>>2];a=L[c+36>>1];h=a<<8|a>>>8;if((h&65535)>>>0<=513){a=J[c+32>>2];c=O+J[a+20>>2]|0;b=o+J[a+16>>2]|0;c=b>>>0>>0?c+1|0:c;J[a+16>>2]=b;J[a+20>>2]=c}oa:{if(J[i+216>>2]==J[i+220>>2]){break oa}a=J[i+8>>2];c=J[a>>2];a=J[a+4>>2];pa:{if((h&65535)>>>0>=513){if((a|0)==(c|0)){break oa}c=0;break pa}if((a|0)==(c|0)){break oa}c=0;while(1){if(_e(i,c)){c=c+3|0;a=J[i+8>>2];if(c>>>0>2]-J[a>>2]>>2>>>0){continue}break oa}break}break n}while(1){if($e(i,c)){c=c+3|0;a=J[i+8>>2];if(c>>>0>2]-J[a>>2]>>2>>>0){continue}break oa}break}break n}af(B);c=J[i+216>>2];if((c|0)!=J[i+220>>2]){p=0;while(1){b=P(p,144);Ci((b+c|0)+4|0,J[i+8>>2]);a=J[E>>2];h=a+b|0;c=J[h+132>>2];h=J[h+136>>2];if((c|0)!=(h|0)){while(1){Ei((b+J[E>>2]|0)+4|0,J[c>>2]);c=c+4|0;if((h|0)!=(c|0)){continue}break}a=J[E>>2]}if(!Di((a+b|0)+4|0)){break n}p=p+1|0;c=J[i+216>>2];if(p>>>0<(J[i+220>>2]-c|0)/144>>>0){continue}break}}a=J[i+8>>2];bf(i+184|0,J[a+28>>2]-J[a+24>>2]>>2);y=J[i+216>>2];if((y|0)!=J[i+220>>2]){c=0;while(1){a=P(c,144)+y|0;h=J[a+60>>2]-J[a+56>>2]>>2;b=a+104|0;a=J[i+8>>2];a=J[a+28>>2]-J[a+24>>2]>>2;bf(b,(a|0)<(h|0)?h:a);c=c+1|0;y=J[i+216>>2];if(c>>>0<(J[i+220>>2]-y|0)/144>>>0){continue}break}}y=cf(i,d)}break b}y=0}ia=t- -64|0;return y|0}function Se(a){a=a|0;var b=0,c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,D=0,E=0,F=0,G=0,N=0,O=0,Q=0;q=ia+-64|0;ia=q;J[a+132>>2]=0;if(J[a+148>>2]){d=J[a+144>>2];if(d){while(1){c=J[d>>2];xj(d);d=c;if(c){continue}break}}d=0;J[a+144>>2]=0;c=J[a+140>>2];a:{if(!c){break a}if(c>>>0>=4){m=c&-4;while(1){b=d<<2;J[b+J[a+136>>2]>>2]=0;J[J[a+136>>2]+(b|4)>>2]=0;J[J[a+136>>2]+(b|8)>>2]=0;J[J[a+136>>2]+(b|12)>>2]=0;d=d+4|0;e=e+4|0;if((m|0)!=(e|0)){continue}break}}e=c&3;if(!e){break a}while(1){J[J[a+136>>2]+(d<<2)>>2]=0;d=d+1|0;u=u+1|0;if((e|0)!=(u|0)){continue}break}}J[a+148>>2]=0}b:{c:{d=J[a+4>>2];u=K[d+36|0];e=u<<8|K[d+37|0];if(e>>>0<=513){b=J[d+32>>2];d:{if(e>>>0<=511){e=J[b+20>>2];m=J[b+16>>2];c=m+4|0;e=c>>>0<4?e+1|0:e;g=c;c=e;w=J[b+12>>2];if(g>>>0>M[b+8>>2]&(c|0)>=(w|0)|(c|0)>(w|0)){break c}e=m+J[b>>2]|0;e=K[e|0]|K[e+1|0]<<8|(K[e+2|0]<<16|K[e+3|0]<<24);J[b+16>>2]=g;J[b+20>>2]=c;break d}if(!Te(1,q,b)){break c}d=J[a+4>>2];u=K[d+36|0];e=J[q>>2]}J[a+132>>2]=e}c=J[d+32>>2];e:{f:{g:{if((u&255)>>>0<=1){u=0;e=J[c+20>>2];b=J[c+16>>2];m=b+4|0;e=m>>>0<4?e+1|0:e;g=J[c+12>>2];if((g|0)<=(e|0)&m>>>0>M[c+8>>2]|(e|0)>(g|0)){break b}b=b+J[c>>2]|0;b=K[b|0]|K[b+1|0]<<8|(K[b+2|0]<<16|K[b+3|0]<<24);J[q+60>>2]=b;J[c+16>>2]=m;J[c+20>>2]=e;J[a+156>>2]=b;o=a+156|0;break g}u=0;if(!Te(1,q+60|0,c)){break b}d=J[a+4>>2];e=K[d+36|0];J[a+156>>2]=J[q+60>>2];o=a+156|0;if(e>>>0>1){break f}}c=J[d+32>>2];d=J[c+8>>2];e=J[c+12>>2];g=d;d=J[c+20>>2];b=J[c+16>>2];m=b+4|0;d=m>>>0<4?d+1|0:d;if(g>>>0>>0&(d|0)>=(e|0)|(d|0)>(e|0)){break b}e=b+J[c>>2]|0;e=K[e|0]|K[e+1|0]<<8|(K[e+2|0]<<16|K[e+3|0]<<24);J[q+56>>2]=e;J[c+16>>2]=m;J[c+20>>2]=d;break e}if(!Te(1,q+56|0,J[d+32>>2])){break b}e=J[q+56>>2]}if(e>>>0>1431655765|M[o>>2]>P(e,3)>>>0){break b}w=J[a+4>>2];c=J[w+32>>2];o=J[c+8>>2];b=o;m=J[c+12>>2];d=J[c+20>>2];g=J[c+16>>2];if((m|0)<=(d|0)&g>>>0>=b>>>0|(d|0)>(m|0)){break b}n=J[c>>2];h=K[n+g|0];b=d;f=g+1|0;b=f?b:b+1|0;J[c+16>>2]=f;J[c+20>>2]=b;h:{if(K[w+36|0]<=1){b=m;m=g+5|0;d=m>>>0<5?d+1|0:d;if((b|0)<=(d|0)&m>>>0>o>>>0|(b|0)<(d|0)){break b}b=f+n|0;o=K[b|0]|K[b+1|0]<<8|(K[b+2|0]<<16|K[b+3|0]<<24);J[q+52>>2]=o;J[c+16>>2]=m;J[c+20>>2]=d;break h}if(!Te(1,q+52|0,c)){break b}o=J[q+52>>2]}if(e>>>0>>0|((o>>>0)/3|0)+o>>>0>>0){break b}d=J[a+4>>2];b=J[d+32>>2];i:{if(K[d+36|0]<=1){d=J[b+20>>2];c=J[b+16>>2];m=c+4|0;d=m>>>0<4?d+1|0:d;g=J[b+12>>2];if((g|0)<=(d|0)&m>>>0>M[b+8>>2]|(d|0)>(g|0)){break b}c=c+J[b>>2]|0;c=K[c|0]|K[c+1|0]<<8|(K[c+2|0]<<16|K[c+3|0]<<24);J[q+48>>2]=c;J[b+16>>2]=m;J[b+20>>2]=d;break i}if(!Te(1,q+48|0,b)){break b}c=J[q+48>>2]}if(c>>>0>o>>>0){break b}J[a+28>>2]=J[a+24>>2];b=ui(Aj(88));d=J[a+8>>2];J[a+8>>2]=b;if(d){Ue(d);if(!J[a+8>>2]){break b}}J[a+164>>2]=J[a+160>>2];Ve(a+160|0,e);J[a+176>>2]=J[a+172>>2];Ve(a+172|0,e);J[a- -64>>2]=0;J[a+92>>2]=-1;J[a+84>>2]=-1;J[a+88>>2]=-1;J[a+40>>2]=J[a+36>>2];J[a+52>>2]=J[a+48>>2];J[a+76>>2]=J[a+72>>2];B=a+216|0;We(B);Xe(B,h);if(!vi(J[a+8>>2],e,J[a+156>>2]+c|0)){break b}d=J[a+156>>2];H[q|0]=1;Qe(a+120|0,c+d|0,q);d=J[a+4>>2];e=L[d+36>>1];e=(e<<8|e>>>8)&65535;j:{if(e>>>0<=513){c=J[d+32>>2];k:{if(e>>>0<=511){e=J[c+20>>2];b=J[c+16>>2];d=b+4|0;e=d>>>0<4?e+1|0:e;m=d;d=e;g=J[c+12>>2];if(m>>>0>M[c+8>>2]&(d|0)>=(g|0)|(d|0)>(g|0)){break b}e=b+J[c>>2]|0;e=K[e|0]|K[e+1|0]<<8|(K[e+2|0]<<16|K[e+3|0]<<24);J[c+16>>2]=m;J[c+20>>2]=d;break k}if(!Te(1,q+44|0,c)){break b}e=J[q+44>>2]}if(!e){break b}d=J[J[a+4>>2]+32>>2];c=J[d+8>>2];b=J[d+16>>2];m=c-b|0;d=J[d+12>>2]-(J[d+20>>2]+(b>>>0>c>>>0)|0)|0;if((d|0)<=0&e>>>0>m>>>0|(d|0)<0){break b}c=rg(q);b=J[J[a+4>>2]+32>>2];d=J[b+16>>2];m=(d+J[b>>2]|0)+e|0;g=J[b+8>>2];d=(g-d|0)-e|0;I[c+38>>1]=L[b+38>>1];J[c>>2]=m;J[c+16>>2]=0;J[c+20>>2]=0;J[c+8>>2]=d;J[c+12>>2]=0;w=Ye(a,c);if((w|0)==-1){break b}F=w>>31;break j}w=-1;F=-1;if((Ye(a,J[d+32>>2])|0)==-1){break b}}G=a+232|0;e=G;J[e+144>>2]=a;d=J[(na[J[J[a>>2]+32>>2]](a)|0)+32>>2];c=J[d>>2]+J[d+16>>2]|0;b=J[(na[J[J[a>>2]+32>>2]](a)|0)+32>>2];d=J[b+8>>2];b=J[b+16>>2];d=d-b|0;O=e,Q=L[J[(na[J[J[a>>2]+32>>2]](a)|0)+32>>2]+38>>1],I[O+38>>1]=Q;J[e>>2]=c;J[e+16>>2]=0;J[e+20>>2]=0;J[e+8>>2]=d;J[e+12>>2]=0;J[a+372>>2]=h;E=rg(q);l:{if(!Ze(e,E)){break l}c=0;d=0;e=0;m=0;j=ia-96|0;ia=j;J[j+72>>2]=0;J[j+64>>2]=0;J[j+68>>2]=0;J[j+48>>2]=0;J[j+52>>2]=0;J[j+40>>2]=0;J[j+44>>2]=0;J[j+56>>2]=1065353216;J[j+32>>2]=0;J[j+24>>2]=0;J[j+28>>2]=0;h=a;v=J[a+124>>2];m:{n:{o:{p:{q:{if((o|0)<=0){break q}N=J[h+216>>2]!=J[h+220>>2];y=1;while(1){g=r;r=g+1|0;r:{s:{t:{u:{v:{w:{x:{y:{z:{A:{B:{C:{D:{E:{F:{if(!K[h+308|0]){break F}f=J[h+296>>2];b=J[h+304>>2];a=f+(b>>>3|0)|0;i=J[h+300>>2];if(a>>>0>=i>>>0){break F}n=K[a|0];a=b+1|0;J[h+304>>2]=a;l=n>>>(b&7)&1;if(!l){break F}k=0;n=a>>>3|0;p=f+n|0;G:{if(p>>>0>=i>>>0){b=a;a=0;break G}p=K[p|0];b=b+2|0;J[h+304>>2]=b;n=b>>>3|0;a=p>>>(a&7)&1}n=f+n|0;if(n>>>0>>0){n=K[n|0];J[h+304>>2]=b+1;k=n>>>(b&7)<<1&2}n=-1;f=l|(a|k)<<1;switch(f-1|0){case 6:break C;case 0:break D;case 2:case 4:break E;default:break p}}if((d|0)==(e|0)){n=-1;break p}c=-1;f=J[h+8>>2];p=J[f+24>>2];y=d-4|0;b=J[y>>2];a=-1;H:{if((b|0)==-1){break H}i=b+1|0;i=(i>>>0)%3|0?i:b-2|0;a=-1;if((i|0)==-1){break H}a=J[J[f>>2]+(i<<2)>>2]}n=J[p+(a<<2)>>2];if((n|0)!=-1){c=n+1|0;c=(c>>>0)%3|0?c:n-2|0}if((b|0)==(c|0)){n=-1;break p}if((b|0)!=-1){n=-1;if(J[J[f+12>>2]+(b<<2)>>2]!=-1){break p}}i=J[f+12>>2];if((c|0)!=-1){n=-1;if(J[i+(c<<2)>>2]!=-1){break p}}k=P(g,3);g=k+1|0;J[i+(b<<2)>>2]=g;t=g<<2;J[t+i>>2]=b;l=k+2|0;J[i+(c<<2)>>2]=l;g=i;i=l<<2;J[g+i>>2]=c;g=-1;n=-1;I:{if((b|0)==-1){break I}J:{if((b>>>0)%3|0){b=b-1|0;break J}b=b+2|0;n=-1;if((b|0)==-1){break I}}n=J[J[f>>2]+(b<<2)>>2]}b=n;K:{if((c|0)==-1){break K}n=c+1|0;c=(n>>>0)%3|0?n:c-2|0;if((c|0)==-1){break K}g=J[J[f>>2]+(c<<2)>>2]}n=-1;if((a|0)==(b|0)|(a|0)==(g|0)){break p}c=J[f>>2];J[c+(k<<2)>>2]=a;J[c+t>>2]=g;J[c+i>>2]=b;if((b|0)!=-1){J[p+(b<<2)>>2]=l}c=J[h+120>>2]+(a>>>3&536870908)|0;b=J[c>>2];O=c,Q=nk(a)&b,J[O>>2]=Q;J[y>>2]=k;c=e;break r}if((d|0)==(e|0)){break p}p=d-4|0;c=J[p>>2];a=J[h+8>>2];b=J[a+12>>2];if(!((c|0)==-1|J[b+(c<<2)>>2]==-1)){break p}l=(f|0)==5;f=P(g,3);i=(l?2:1)+f|0;t=i<<2;J[t+b>>2]=c;J[b+(c<<2)>>2]=i;ff(a+24|0,11472);b=J[h+8>>2];k=J[b+24>>2];if(J[b+28>>2]-k>>2>(v|0)){break p}b=J[b>>2];A=b+t|0;t=J[a+28>>2];a=J[a+24>>2];z=(t-a>>2)-1|0;J[A>>2]=z;if((a|0)!=(t|0)){J[k+(z<<2)>>2]=i}i=l?f:f+2|0;l=b+(f+l<<2)|0;L:{if((c|0)==-1){J[b+(i<<2)>>2]=-1;a=-1;break L}M:{N:{O:{if((c>>>0)%3|0){a=c-1|0;break O}a=c+2|0;if((a|0)==-1){break N}}a=J[b+(a<<2)>>2];J[b+(i<<2)>>2]=a;if((a|0)==-1){break M}J[k+(a<<2)>>2]=i;break M}J[b+(i<<2)>>2]=-1}i=c+1|0;c=(i>>>0)%3|0?i:c-2|0;a=-1;if((c|0)==-1){break L}a=J[b+(c<<2)>>2]}J[l>>2]=a;J[p>>2]=f;break B}if((c|0)==(d|0)){break p}a=d-4|0;k=J[a>>2];J[j+68>>2]=a;l=J[j+44>>2];P:{if(!l){d=a;break P}f=J[j+40>>2];p=mk(l)>>>0>1;b=g&l+2147483647;Q:{if(!p){break Q}b=g;if(b>>>0>>0){break Q}b=(g>>>0)%(l>>>0)|0}i=b;b=J[f+(i<<2)>>2];if(!b){d=a;break P}b=J[b>>2];if(!b){d=a;break P}R:{if(!p){f=l-1|0;while(1){l=J[b+4>>2];S:{if((l|0)!=(g|0)){if((i|0)==(f&l)){break S}d=a;break P}if((g|0)==J[b+8>>2]){break R}}b=J[b>>2];if(b){continue}break}d=a;break P}while(1){f=J[b+4>>2];T:{if((f|0)!=(g|0)){if(f>>>0>=l>>>0){f=(f>>>0)%(l>>>0)|0}if((f|0)==(i|0)){break T}d=a;break P}if((g|0)==J[b+8>>2]){break R}}b=J[b>>2];if(b){continue}break}d=a;break P}if((a|0)!=(s|0)){J[a>>2]=J[b+12>>2];J[j+68>>2]=d;break P}a=s-c|0;f=a>>2;d=f+1|0;if(d>>>0>=1073741824){break z}e=a>>1;d=a>>>0>=2147483644?1073741823:d>>>0>>0?e:d;if(d){if(d>>>0>=1073741824){break n}e=Aj(d<<2)}else{e=0}f=e+(f<<2)|0;J[f>>2]=J[b+12>>2];s=(d<<2)+e|0;d=f+4|0;if((a|0)>0){Vi(e,c,a)}J[j+72>>2]=s;J[j+68>>2]=d;J[j+64>>2]=e;if(!c){break P}xj(c)}if((d|0)==(e|0)){break t}z=d-4|0;c=J[z>>2];if((c|0)==(k|0)){break t}a=(c|0)==-1;f=J[h+8>>2];if(!a&J[J[f+12>>2]+(c<<2)>>2]!=-1){break t}i=J[f+12>>2];if((k|0)!=-1&J[i+(k<<2)>>2]!=-1){break t}p=P(g,3);t=p+2|0;J[i+(c<<2)>>2]=t;l=t<<2;J[l+i>>2]=c;b=p+1|0;J[i+(k<<2)>>2]=b;A=b<<2;J[A+i>>2]=k;if(a){break y}if((c>>>0)%3|0){g=c-1|0;break w}g=c+2|0;if((g|0)!=-1){break w}a=J[f>>2];g=-1;break v}f=J[h+8>>2];ff(f+24|0,11472);a=J[h+8>>2];b=P(g,3);k=J[f+28>>2];l=J[f+24>>2];p=k-l|0;i=p>>2;t=i-1|0;J[J[a>>2]+(b<<2)>>2]=t;ff(a+24|0,11472);z=b+1|0;J[J[a>>2]+(z<<2)>>2]=(J[a+28>>2]-J[a+24>>2]>>2)-1;a=J[h+8>>2];ff(a+24|0,11472);A=b+2|0;J[J[a>>2]+(A<<2)>>2]=(J[a+28>>2]-J[a+24>>2]>>2)-1;a=J[h+8>>2];f=J[a+24>>2];if(J[a+28>>2]-f>>2>(v|0)){break p}U:{V:{if((k|0)!=(l|0)){J[f+(t<<2)>>2]=b;a=0;if((p|0)==-4){break V}}J[f+(i<<2)>>2]=z;a=i+1|0;if((a|0)==-1){break U}}J[f+(a<<2)>>2]=A}if((d|0)!=(s|0)){J[d>>2]=b;d=d+4|0;J[j+68>>2]=d;break A}a=d-c|0;f=a>>2;d=f+1|0;if(d>>>0>=1073741824){break x}e=a>>1;d=a>>>0>=2147483644?1073741823:d>>>0>>0?e:d;if(d){if(d>>>0>=1073741824){break n}e=Aj(d<<2)}else{e=0}f=e+(f<<2)|0;J[f>>2]=b;s=(d<<2)+e|0;d=f+4|0;if((a|0)>0){Vi(e,c,a)}J[j+72>>2]=s;J[j+68>>2]=d;J[j+64>>2]=e;if(!c){break B}xj(c)}c=e}a=J[h+40>>2];if((a|0)==J[h+36>>2]){break r}b=a-12|0;f=J[b+4>>2];g=(g^-1)+o|0;if(f>>>0>g>>>0){break t}if((g|0)!=(f|0)){break r}i=K[a-4|0];f=J[b>>2];J[h+40>>2]=b;if((f|0)<0){break t}k=d-4|0;a=J[k>>2];J[j+20>>2]=(f^-1)+o;b=j+20|0;J[j+88>>2]=b;gf(j,j+40|0,b,j+88|0);f=J[j>>2];W:{if(i&1){b=-1;if((a|0)==-1){break W}b=a+1|0;b=(b>>>0)%3|0?b:a-2|0;break W}b=-1;if((a|0)==-1){break W}b=a-1|0;if((a>>>0)%3|0){break W}b=a+2|0}J[f+12>>2]=b;b=J[h+40>>2];if((b|0)==J[h+36>>2]){break r}while(1){a=b-12|0;f=J[a+4>>2];if(f>>>0>g>>>0){break t}if((g|0)!=(f|0)){break r}f=K[b-4|0];b=J[a>>2];J[h+40>>2]=a;if((b|0)<0){break t}a=J[k>>2];J[j+20>>2]=(b^-1)+o;b=j+20|0;J[j+88>>2]=b;gf(j,j+40|0,b,j+88|0);i=J[j>>2];X:{if(f&1){b=-1;if((a|0)==-1){break X}b=a+1|0;b=(b>>>0)%3|0?b:a-2|0;break X}b=-1;if((a|0)==-1){break X}b=a-1|0;if((a>>>0)%3|0){break X}b=a+2|0}J[i+12>>2]=b;b=J[h+40>>2];if((b|0)!=J[h+36>>2]){continue}break}break r}La();C()}g=-1;a=J[f>>2];J[a+(p<<2)>>2]=-1;b=-1;break u}La();C()}a=J[f>>2];g=J[a+(g<<2)>>2]}J[(p<<2)+a>>2]=g;b=c+1|0;c=(b>>>0)%3|0?b:c-2|0;b=-1;if((c|0)==-1){break u}b=J[(c<<2)+a>>2]}J[a+A>>2]=b;Y:{if((k|0)==-1){J[a+l>>2]=-1;l=-1;c=-1;break Y}Z:{_:{$:{if((k>>>0)%3|0){b=k-1|0;break $}b=k+2|0;if((b|0)==-1){break _}}c=J[(b<<2)+a>>2];J[a+l>>2]=c;if((c|0)==-1){break Z}J[J[f+24>>2]+(c<<2)>>2]=t;break Z}J[a+l>>2]=-1}l=-1;b=k+1|0;b=(b>>>0)%3|0?b:k-2|0;c=-1;if((b|0)==-1){break Y}l=J[(b<<2)+a>>2];c=b}b=J[f+24>>2];k=b+(l<<2)|0;if((g|0)!=-1){J[b+(g<<2)>>2]=J[k>>2]}b=c;while(1){if((b|0)==-1){break s}J[(b<<2)+a>>2]=g;t=b+1|0;b=(t>>>0)%3|0?t:b-2|0;f=-1;aa:{if((b|0)==-1){break aa}b=J[i+(b<<2)>>2];f=-1;if((b|0)==-1){break aa}f=b+1|0;f=(f>>>0)%3|0?f:b-2|0}b=f;if((c|0)!=(b|0)){continue}break}}if(!y){break q}break p}J[k>>2]=-1;ba:{if(N){break ba}if((x|0)!=(D|0)){J[x>>2]=l;x=x+4|0;J[j+28>>2]=x;break ba}c=D-m|0;g=c>>2;a=g+1|0;if(a>>>0>=1073741824){break o}b=c>>1;b=c>>>0>=2147483644?1073741823:a>>>0>>0?b:a;if(b){if(b>>>0>=1073741824){break n}a=Aj(b<<2)}else{a=0}g=a+(g<<2)|0;J[g>>2]=l;D=a+(b<<2)|0;x=g+4|0;if((c|0)>0){Vi(a,m,c)}J[j+32>>2]=D;J[j+28>>2]=x;J[j+24>>2]=a;if(m){xj(m)}m=a}J[z>>2]=p;c=e}y=(o|0)>(r|0);if((o|0)!=(r|0)){continue}break}r=o}n=-1;a=J[h+8>>2];if(J[a+28>>2]-J[a+24>>2]>>2>(v|0)){break p}if((d|0)!=(e|0)){p=h+72|0;o=h+60|0;D=h+312|0;while(1){d=d-4|0;k=J[d>>2];J[j+68>>2]=d;ca:{da:{ea:{if(L[h+270>>1]<=513){if(!K[h+364|0]){break da}a=J[h+360>>2];c=J[h+352>>2]+(a>>>3|0)|0;if(c>>>0>=M[h+356>>2]){break ea}c=K[c|0];J[h+360>>2]=a+1;if(!(c>>>(a&7)&1)){break ea}break da}if(le(D)){break da}}fa:{ga:{c=J[h+64>>2];a=J[h+68>>2];if((c|0)==a<<5){if((c+1|0)<0){break ga}if(c>>>0<=1073741822){a=a<<6;c=(c&-32)+32|0;a=a>>>0>c>>>0?a:c}else{a=2147483647}Mc(o,a);c=J[h+64>>2]}J[h+64>>2]=c+1;a=J[h+60>>2]+(c>>>3&536870908)|0;b=J[a>>2];O=a,Q=nk(c)&b,J[O>>2]=Q;a=J[h+76>>2];if((a|0)!=J[h+80>>2]){J[a>>2]=k;J[h+76>>2]=a+4;break ca}b=J[p>>2];c=a-b|0;f=c>>2;a=f+1|0;if(a>>>0>=1073741824){break fa}g=c>>1;g=c>>>0>=2147483644?1073741823:a>>>0>>0?g:a;if(g){if(g>>>0>=1073741824){break n}a=Aj(g<<2)}else{a=0}f=a+(f<<2)|0;J[f>>2]=k;if((c|0)>0){Vi(a,b,c)}J[h+80>>2]=a+(g<<2);J[h+76>>2]=f+4;J[h+72>>2]=a;if(!b){break ca}xj(b);break ca}La();C()}La();C()}s=J[h+8>>2];l=J[s>>2];if(((J[s+4>>2]-l>>2>>>0)/3|0)<=(r|0)){break p}a=-1;c=-1;v=J[s+24>>2];b=-1;ha:{if((k|0)==-1){break ha}f=k+1|0;f=(f>>>0)%3|0?f:k-2|0;b=-1;if((f|0)==-1){break ha}b=J[l+(f<<2)>>2]}f=b;i=J[v+(f<<2)>>2];ia:{if((i|0)==-1){g=1;b=-1;break ia}g=1;y=i+1|0;i=(y>>>0)%3|0?y:i-2|0;b=-1;if((i|0)==-1){break ia}g=0;a=i;b=a+1|0;b=(b>>>0)%3|0?b:a-2|0;if((b|0)!=-1){b=J[l+(b<<2)>>2]}else{b=-1}}i=J[(b<<2)+v>>2];if((i|0)!=-1){c=i+1|0;c=(c>>>0)%3|0?c:i-2|0}if((a|0)==(k|0)|(c|0)==(k|0)|(a|0)==(c|0)){break p}if(!((k|0)==-1|J[J[s+12>>2]+(k<<2)>>2]==-1)|!(J[J[s+12>>2]+(a<<2)>>2]==-1|g)){break p}g=-1;i=J[s+12>>2];s=-1;ja:{if((c|0)==-1){break ja}if(J[i+(c<<2)>>2]!=-1){break p}v=c+1|0;v=(v>>>0)%3|0?v:c-2|0;s=-1;if((v|0)==-1){break ja}s=J[l+(v<<2)>>2]}v=P(r,3);J[j>>2]=v;J[i+(v<<2)>>2]=k;J[i+(k<<2)>>2]=v;k=J[j>>2]+1|0;J[i+(k<<2)>>2]=a;J[i+(a<<2)>>2]=k;a=J[j>>2]+2|0;J[i+(a<<2)>>2]=c;J[i+(c<<2)>>2]=a;a=J[j>>2];J[l+(a<<2)>>2]=b;c=a+1|0;i=l+(c<<2)|0;J[i>>2]=s;k=a+2|0;l=l+(k<<2)|0;J[l>>2]=f;a=J[h+120>>2];b=c?b:-1;f=a+(b>>>3&536870908)|0;s=J[f>>2];O=f,Q=nk(b)&s,J[O>>2]=Q;g=(c|0)!=-1?J[i>>2]:g;c=a+(g>>>3&536870908)|0;b=J[c>>2];O=c,Q=nk(g)&b,J[O>>2]=Q;b=-1;b=(k|0)!=-1?J[l>>2]:b;a=a+(b>>>3&536870908)|0;c=J[a>>2];O=a,Q=nk(b)&c,J[O>>2]=Q;H[j+88|0]=1;hf(o,j+88|0);ff(p,j);r=r+1|0}if((d|0)!=(e|0)){continue}break}a=J[h+8>>2]}if(((J[a+4>>2]-J[a>>2]>>2>>>0)/3|0)!=(r|0)){break p}n=J[a+28>>2]-J[a+24>>2]>>2;if((m|0)==(x|0)){m=x;break p}d=m;while(1){g=J[d>>2];r=J[a+24>>2];b=n-1|0;c=r+(b<<2)|0;if(J[c>>2]==-1){while(1){b=n-2|0;n=n-1|0;c=r+(b<<2)|0;if(J[c>>2]==-1){continue}break}}if(b>>>0>=g>>>0){J[j>>2]=a;c=J[c>>2];H[j+12|0]=1;J[j+8>>2]=c;J[j+4>>2]=c;if((c|0)!=-1){while(1){a=J[J[h+8>>2]>>2]+(c<<2)|0;if(J[a>>2]!=(b|0)){n=-1;break p}J[a>>2]=g;yd(j);c=J[j+8>>2];if((c|0)!=-1){continue}break}a=J[h+8>>2]}r=J[a+24>>2];c=r+(b<<2)|0;if((g|0)!=-1){J[r+(g<<2)>>2]=J[c>>2]}J[c>>2]=-1;c=1<>2];g=r+(g>>>3&536870908)|0;r=r+(b>>>3&536870908)|0;b=1<>2]&b){c=c|J[g>>2]}else{c=J[g>>2]&(c^-1)}J[g>>2]=c;J[r>>2]=J[r>>2]&(b^-1);n=n-1|0}d=d+4|0;if((x|0)!=(d|0)){continue}break}}if(m){xj(m)}a=J[j+48>>2];if(a){while(1){d=J[a>>2];xj(a);a=d;if(a){continue}break}}a=J[j+40>>2];J[j+40>>2]=0;if(a){xj(a)}if(e){J[j+68>>2]=e;xj(e)}ia=j+96|0;a=n;break m}La();C()}Za();C()}c=a;if((a|0)==-1){break l}a=J[E+16>>2];d=a+J[E>>2]|0;e=J[E+8>>2];e=e-a|0;a=J[J[h+4>>2]+32>>2];I[a+38>>1]=L[a+38>>1];J[a>>2]=d;J[a+16>>2]=0;J[a+20>>2]=0;J[a+8>>2]=e;J[a+12>>2]=0;a=J[h+4>>2];d=L[a+36>>1];b=d<<8|d>>>8;if((b&65535)>>>0<=513){a=J[a+32>>2];e=F+J[a+20>>2]|0;d=w+J[a+16>>2]|0;e=d>>>0>>0?e+1|0:e;J[a+16>>2]=d;J[a+20>>2]=e}ka:{if(J[h+216>>2]==J[h+220>>2]){break ka}d=J[h+8>>2];a=J[d>>2];d=J[d+4>>2];la:{if((b&65535)>>>0>=513){if((a|0)==(d|0)){break ka}d=0;break la}if((a|0)==(d|0)){break ka}d=0;while(1){if(_e(h,d)){d=d+3|0;a=J[h+8>>2];if(d>>>0>2]-J[a>>2]>>2>>>0){continue}break ka}break}break l}while(1){if($e(h,d)){d=d+3|0;a=J[h+8>>2];if(d>>>0>2]-J[a>>2]>>2>>>0){continue}break ka}break}break l}af(G);d=J[h+216>>2];if((d|0)!=J[h+220>>2]){o=0;while(1){e=P(o,144);Ci((e+d|0)+4|0,J[h+8>>2]);a=J[B>>2];b=a+e|0;d=J[b+132>>2];b=J[b+136>>2];if((d|0)!=(b|0)){while(1){Ei((e+J[B>>2]|0)+4|0,J[d>>2]);d=d+4|0;if((b|0)!=(d|0)){continue}break}a=J[B>>2]}if(!Di((a+e|0)+4|0)){break l}o=o+1|0;d=J[h+216>>2];if(o>>>0<(J[h+220>>2]-d|0)/144>>>0){continue}break}}a=J[h+8>>2];bf(h+184|0,J[a+28>>2]-J[a+24>>2]>>2);u=J[h+216>>2];if((u|0)!=J[h+220>>2]){d=0;while(1){a=P(d,144)+u|0;e=J[a+60>>2]-J[a+56>>2]>>2;b=a+104|0;a=J[h+8>>2];a=J[a+28>>2]-J[a+24>>2]>>2;bf(b,(a|0)<(e|0)?e:a);d=d+1|0;u=J[h+216>>2];if(d>>>0<(J[h+220>>2]-u|0)/144>>>0){continue}break}}u=cf(h,c)}break b}u=0}ia=q- -64|0;return u|0}function Mh(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,D=0,E=0,F=0,G=0,I=0,L=0,M=0;z=c;c=0;m=ia-96|0;ia=m;k=m+16|0;Xi(k,0,76);J[m+92>>2]=-1;J[m+8>>2]=0;J[m>>2]=0;J[m+4>>2]=0;q=ia-16|0;ia=q;J[k+68>>2]=0;J[k+72>>2]=0;J[k>>2]=b;s=ia-16|0;ia=s;v=b;a=J[b+20>>2];a:{if((J[b+24>>2]-a|0)<=0){break a}a=J[a>>2];if((a|0)==-1){break a}c=J[J[v+8>>2]+(a<<2)>>2]}b:{c:{d:{if(!c){a=0;break d}a=J[v+100>>2];d=J[v+96>>2];J[s+8>>2]=0;J[s>>2]=0;J[s+4>>2]=0;e=a-d|0;b=(e|0)/12|0;e:{if((a|0)==(d|0)){break e}if(b>>>0>=357913942){break c}f=Aj(e);J[s>>2]=f;J[s+8>>2]=f+P(b,12);a=0;g=f;e=e-12|0;f=(e-((e>>>0)%12|0)|0)+12|0;e=Xi(g,0,f);J[s+4>>2]=e+f;if(K[c+84|0]){c=b>>>0<=1?1:b;g=c&1;if(b>>>0>=2){i=c&-2;c=0;while(1){f=P(a,12);b=f+d|0;h=J[b+4>>2];o=J[b>>2];f=e+f|0;J[f+8>>2]=J[b+8>>2];J[f>>2]=o;J[f+4>>2]=h;f=P(a|1,12);b=f+d|0;h=J[b+4>>2];o=J[b>>2];f=e+f|0;J[f+8>>2]=J[b+8>>2];J[f>>2]=o;J[f+4>>2]=h;a=a+2|0;c=c+2|0;if((i|0)!=(c|0)){continue}break}}if(!g){break e}b=P(a,12);a=b+d|0;c=J[a+4>>2];d=J[a>>2];b=b+e|0;J[b+8>>2]=J[a+8>>2];J[b>>2]=d;J[b+4>>2]=c;break e}g=b>>>0<=1?1:b;a=J[c+68>>2];c=0;while(1){f=P(c,12);b=f+d|0;i=J[a+(J[b>>2]<<2)>>2];h=J[a+(J[b+4>>2]<<2)>>2];f=e+f|0;J[f+8>>2]=J[a+(J[b+8>>2]<<2)>>2];J[f+4>>2]=h;J[f>>2]=i;c=c+1|0;if((g|0)!=(c|0)){continue}break}}c=0;D=ia-16|0;ia=D;h=Aj(88);ui(h);A=ia-16|0;ia=A;J[h+80>>2]=0;J[h+84>>2]=0;a=J[h+76>>2];J[h+76>>2]=0;if(a){xj(a)}J[h+68>>2]=0;J[h+72>>2]=0;b=h- -64|0;a=J[b>>2];J[b>>2]=0;if(a){xj(a)}d=J[s+4>>2];g=J[s>>2];b=(d-g|0)/12|0;a=P(b,3);f=J[h>>2];e=J[h+4>>2]-f>>2;f:{if(a>>>0>e>>>0){Oa(h,a-e|0);d=J[s+4>>2];g=J[s>>2];b=(d-g|0)/12|0;break f}if(a>>>0>=e>>>0){break f}J[h+4>>2]=f+(a<<2)}g:{if((d|0)==(g|0)){break g}d=b>>>0<=1?1:b;f=d&1;a=J[h>>2];if(b>>>0>=2){i=d&-2;b=0;while(1){d=P(c,12);o=d+a|0;e=d+g|0;J[o>>2]=J[e>>2];J[a+(d|4)>>2]=J[e+4>>2];J[o+8>>2]=J[e+8>>2];e=P(c|1,12);d=e+a|0;e=e+g|0;J[d>>2]=J[e>>2];J[d+4>>2]=J[e+4>>2];J[d+8>>2]=J[e+8>>2];c=c+2|0;b=b+2|0;if((i|0)!=(b|0)){continue}break}}if(!f){break g}b=P(c,12);a=b+a|0;b=b+g|0;J[a>>2]=J[b>>2];J[a+4>>2]=J[b+4>>2];J[a+8>>2]=J[b+8>>2]}J[A+12>>2]=-1;a=0;e=0;d=0;i=ia-32|0;ia=i;h:{i:{w=A+12|0;j:{if(!w){break j}b=J[h+4>>2];o=J[h>>2];c=b-o|0;j=c>>2;g=J[h+12>>2];f=J[h+16>>2]-g>>2;k:{if(j>>>0>f>>>0){jb(h+12|0,j-f|0,13700);b=J[h+4>>2];o=J[h>>2];c=b-o|0;j=c>>2;break k}if(f>>>0<=j>>>0){break k}J[h+16>>2]=g+(j<<2)}J[i+24>>2]=0;J[i+16>>2]=0;J[i+20>>2]=0;f=(b|0)==(o|0);if(!f){if((c|0)<0){break i}e=Aj(c);J[i+20>>2]=e;J[i+16>>2]=e;J[i+24>>2]=(j<<2)+e}l:{m:{n:{o:{p:{if(c){while(1){g=J[(a<<2)+o>>2];c=J[i+20>>2]-e>>2;q:{if(g>>>0>>0){break q}J[i>>2]=0;f=g+1|0;if(f>>>0>c>>>0){jb(i+16|0,f-c|0,i);o=J[h>>2];b=J[h+4>>2];e=J[i+16>>2];break q}if(c>>>0<=f>>>0){break q}J[i+20>>2]=(f<<2)+e}c=(g<<2)+e|0;J[c>>2]=J[c>>2]+1;a=a+1|0;c=b-o|0;j=c>>2;if(a>>>0>>0){continue}break}break p}c=0;if(!f){break o}break n}if((b|0)==(o|0)){c=0;break n}if(c>>>0>=2147483645){break m}}c=Aj(c<<1);Xi(c,255,j<<3)}J[i+8>>2]=0;J[i>>2]=0;J[i+4>>2]=0;b=J[i+20>>2];a=b-e|0;t=a>>2;r:{s:{if((b|0)==(e|0)){break s}if((a|0)<0){break r}n=Aj(a);J[i>>2]=n;J[i+8>>2]=(t<<2)+n;b=Xi(n,0,a);J[i+4>>2]=b+a;f=t>>>0<=1?1:t;g=f&3;a=0;if(f-1>>>0>=3){r=f&-4;while(1){f=d<<2;J[f+b>>2]=a;x=f|4;a=J[e+f>>2]+a|0;J[x+b>>2]=a;u=f|8;a=a+J[e+x>>2]|0;J[u+b>>2]=a;f=f|12;a=a+J[e+u>>2]|0;J[f+b>>2]=a;a=a+J[e+f>>2]|0;d=d+4|0;p=p+4|0;if((r|0)!=(p|0)){continue}break}}if(!g){break s}while(1){f=d<<2;J[f+b>>2]=a;d=d+1|0;a=J[e+f>>2]+a|0;l=l+1|0;if((g|0)!=(l|0)){continue}break}}if(!j){break l}x=J[h+12>>2];f=0;while(1){E=f<<2;a=E+o|0;l=-1;g=f+1|0;b=(g>>>0)%3|0?g:f-2|0;if((b|0)!=-1){l=J[(b<<2)+o>>2]}b=J[a>>2];t:{u:{if(!((f>>>0)%3|0)){p=-1;a=f+2|0;if((a|0)!=-1){p=J[(a<<2)+o>>2]}if(!((b|0)==(l|0)|(b|0)==(p|0))&(l|0)!=(p|0)){break u}J[h+40>>2]=J[h+40>>2]+1;f=f+3|0;break t}p=J[a-4>>2]}a=p<<2;u=J[a+e>>2];v:{w:{if((u|0)<=0){break w}a=J[a+n>>2];d=0;while(1){r=(a<<3)+c|0;y=J[r>>2];if((y|0)==-1){break w}x:{if((l|0)!=(y|0)){break x}r=J[r+4>>2];if((r|0)!=-1){y=J[(r<<2)+o>>2]}else{y=-1}if((y|0)==(b|0)){break x}while(1){y:{b=a;d=d+1|0;if((u|0)<=(d|0)){break y}a=b+1|0;F=(a<<3)+c|0;y=J[F>>2];G=(b<<3)+c|0;J[G+4>>2]=J[F+4>>2];J[G>>2]=y;if((y|0)!=-1){continue}}break}J[(b<<3)+c>>2]=-1;if((r|0)==-1){break w}J[x+E>>2]=r;J[x+(r<<2)>>2]=f;break v}a=a+1|0;d=d+1|0;if((u|0)!=(d|0)){continue}break}}a=l<<2;l=J[a+e>>2];if((l|0)<=0){break v}a=J[a+n>>2];d=0;while(1){b=(a<<3)+c|0;if(J[b>>2]==-1){J[b>>2]=p;J[b+4>>2]=f;break v}a=a+1|0;d=d+1|0;if((l|0)!=(d|0)){continue}break}}f=g}if(j>>>0>f>>>0){continue}break}break l}break i}La();C()}J[w>>2]=t;if(n){xj(n)}if(c){xj(c)}a=J[i+16>>2];if(!a){break j}J[i+20>>2]=a;xj(a)}ia=i+32|0;x=(w|0)!=0;if(x){l=ia-32|0;ia=l;n=J[h>>2];a=J[h+4>>2];J[l+24>>2]=0;J[l+16>>2]=0;J[l+20>>2]=0;z:{if((a|0)==(n|0)){break z}c=a-n|0;if((c|0)<0){break i}b=c>>2;e=b-1>>>5|0;d=Aj((e<<2)+4|0);J[l+16>>2]=d;J[d+((c>>>0>=132?e:0)<<2)>>2]=0;c=b>>>5<<2;d=Xi(d,0,c);if((b|0)==(b&-32)){break z}c=c+d|0;J[c>>2]=J[c>>2]&(-1>>>32-(b&31)^-1)}J[l+8>>2]=0;J[l>>2]=0;while(1){A:{r=0;o=0;if((a|0)==(n|0)){break A}while(1){b=J[l+16>>2];B:{if(J[b+(o>>>3&536870908)>>2]>>>o&1){break B}e=J[l>>2];J[l+4>>2]=e;c=J[h+12>>2];a=o;while(1){C:{d=a+1|0;i=a;a=(d>>>0)%3|0?d:a-2|0;if((a|0)==-1){break C}a=J[c+(a<<2)>>2];if((a|0)==-1){break C}d=a+1|0;a=(d>>>0)%3|0?d:a-2|0;if((o|0)==(a|0)|(a|0)==-1){break C}if(!(J[b+(a>>>3&536870908)>>2]>>>a&1)){continue}}break}d=i;D:{E:{F:{while(1){a=J[l+16>>2]+(d>>>3&536870908)|0;J[a>>2]=J[a>>2]|1<>>0)%3|0?a:d-2|0;n=J[h>>2];u=(d>>>0)%3|0;b=(u?-1:2)+d|0;j=J[l>>2];G:{if((j|0)==(e|0)){break G}w=J[(g<<2)+n>>2];p=J[h+12>>2];a=j;if((b|0)!=-1){c=p+(b<<2)|0;while(1){H:{if((w|0)!=J[a>>2]){break H}f=J[a+4>>2];t=J[c>>2];if((f|0)==(t|0)){break H}e=-1;c=b;a=-1;if((f|0)==-1){break D}break E}a=a+8|0;if((e|0)!=(a|0)){continue}break}break G}while(1){if((w|0)==J[a>>2]){t=-1;c=-1;f=J[a+4>>2];if((f|0)!=-1){break E}}a=a+8|0;if((e|0)!=(a|0)){continue}break}}f=J[(b<<2)+n>>2];I:{if(J[l+8>>2]!=(e|0)){J[e>>2]=f;J[e+4>>2]=g;e=e+8|0;J[l+4>>2]=e;break I}b=e-j|0;e=b>>3;a=e+1|0;if(a>>>0>=536870912){break i}c=b>>2;c=b>>>0>=2147483640?536870911:a>>>0>>0?c:a;if(c){if(c>>>0>=536870912){break F}a=Aj(c<<3)}else{a=0}e=a+(e<<3)|0;J[e>>2]=f;J[e+4>>2]=g;e=e+8|0;if((b|0)>0){Vi(a,j,b)}J[l+8>>2]=a+(c<<3);J[l+4>>2]=e;J[l>>2]=a;if(!j){break I}xj(j)}J:{K:{if(u){a=d-1|0;break K}a=d+2|0;if((a|0)==-1){break J}}a=J[J[h+12>>2]+(a<<2)>>2];if((a|0)==-1){break J}d=a+((a>>>0)%3|0?-1:2)|0;if((i|0)==(d|0)){break J}if((d|0)!=-1){continue}}break}n=J[h>>2];break B}Za();C()}b=c;e=f;a=J[p+(e<<2)>>2]}if((t|0)!=-1){J[p+(t<<2)>>2]=-1}if((a|0)!=-1){J[J[h+12>>2]+(a<<2)>>2]=-1}a=J[h+12>>2];J[a+(b<<2)>>2]=-1;J[a+(e<<2)>>2]=-1;r=1}o=o+1|0;a=J[h+4>>2];if(o>>>0>2>>>0){continue}break}if(r){continue}}break}a=J[l>>2];if(a){xj(a)}a=J[l+16>>2];if(a){xj(a)}ia=l+32|0;c=0;f=0;l=0;i=ia-32|0;ia=i;a=J[A+12>>2];J[h+36>>2]=a;o=h+24|0;d=J[h+24>>2];b=J[h+28>>2]-d>>2;L:{M:{if(b>>>0>>0){jb(o,a-b|0,13700);J[i+24>>2]=0;J[i+16>>2]=0;J[i+20>>2]=0;break M}if(a>>>0>>0){J[h+28>>2]=d+(a<<2)}J[i+24>>2]=0;J[i+16>>2]=0;J[i+20>>2]=0;if(!a){break L}}if((a|0)<0){break i}b=a-1>>>5|0;d=b+1|0;c=Aj(d<<2);J[i+24>>2]=d;J[i+16>>2]=c;J[i+20>>2]=a;J[((a>>>0>=33?b:0)<<2)+c>>2]=0;b=a>>>5<<2;d=Xi(c,0,b);if((a&-32)==(a|0)){break L}b=b+d|0;J[b>>2]=J[b>>2]&(-1>>>32-(a&31)^-1)}j=J[h>>2];e=J[h+4>>2];J[i+8>>2]=0;J[i>>2]=0;J[i+4>>2]=0;d=e-j|0;N:{if((e|0)==(j|0)){break N}if((d|0)<0){break i}b=d>>2;g=b-1>>>5|0;n=g+1|0;f=Aj(n<<2);J[i+8>>2]=n;J[i>>2]=f;J[i+4>>2]=b;J[((d>>>0>=132?g:0)<<2)+f>>2]=0;g=b>>>5<<2;n=Xi(f,0,g);if((b|0)==(b&-32)){break N}g=g+n|0;J[g>>2]=J[g>>2]&(-1>>>32-(b&31)^-1)}if(d>>>0>=12){O:{P:{while(1){p=P(l,3);d=(p<<2)+j|0;b=J[d>>2];g=-1;n=p+1|0;if((n|0)!=-1){g=J[(n<<2)+j>>2]}Q:{if((b|0)==(g|0)){break Q}n=b;b=J[d+8>>2];if((n|0)==(b|0)){break Q}n=0;if((b|0)==(g|0)){break Q}while(1){b=n+p|0;if(!(J[(b>>>3&536870908)+f>>2]>>>b&1)){d=J[(b<<2)+j>>2];g=1<>>5|0;t=g&J[(j<<2)+c>>2];if(t){c=J[h+28>>2];R:{if((c|0)!=J[h+32>>2]){J[c>>2]=-1;J[h+28>>2]=c+4;break R}f=J[o>>2];e=c-f|0;j=e>>2;c=j+1|0;if(c>>>0>=1073741824){break i}g=e>>1;g=e>>>0>=2147483644?1073741823:c>>>0>>0?g:c;if(g){if(g>>>0>=1073741824){break P}c=Aj(g<<2)}else{c=0}j=c+(j<<2)|0;J[j>>2]=-1;if((e|0)>0){Vi(c,f,e)}J[h+32>>2]=c+(g<<2);J[h+28>>2]=j+4;J[h+24>>2]=c;if(!f){break R}xj(f)}c=J[h+52>>2];S:{if((c|0)!=J[h+56>>2]){J[c>>2]=d;J[h+52>>2]=c+4;break S}f=J[h+48>>2];e=c-f|0;j=e>>2;c=j+1|0;if(c>>>0>=1073741824){break i}g=e>>1;g=e>>>0>=2147483644?1073741823:c>>>0>>0?g:c;if(g){if(g>>>0>=1073741824){break P}c=Aj(g<<2)}else{c=0}j=c+(j<<2)|0;J[j>>2]=d;if((e|0)>0){Vi(c,f,e)}J[h+56>>2]=c+(g<<2);J[h+52>>2]=j+4;J[h+48>>2]=c;if(!f){break S}xj(f)}g=J[i+20>>2];c=J[i+24>>2];if((g|0)==c<<5){if((g+1|0)<0){break i}d=i+16|0;if(g>>>0<=1073741822){c=c<<6;e=(g&-32)+32|0;c=c>>>0>e>>>0?c:e}else{c=2147483647}Mc(d,c);g=J[i+20>>2]}J[i+20>>2]=g+1;c=J[i+16>>2]+(g>>>3&536870908)|0;d=J[c>>2];L=c,M=nk(g)&d,J[L>>2]=M;g=1<>>5|0;d=a;a=a+1|0}e=a;c=J[i+16>>2];a=c+(j<<2)|0;J[a>>2]=J[a>>2]|g;w=J[h+24>>2]+(d<<2)|0;r=J[h+12>>2];j=J[h>>2];f=J[i>>2];a=b;T:{U:{V:{while(1){if((a|0)==-1){break V}g=(a>>>3&536870908)+f|0;J[g>>2]=J[g>>2]|1<>2]=a;if(t){J[(a<<2)+j>>2]=d}u=a+1|0;a=(u>>>0)%3|0?u:a-2|0;g=-1;W:{if((a|0)==-1){break W}a=J[r+(a<<2)>>2];g=-1;if((a|0)==-1){break W}g=a+1|0;g=(g>>>0)%3|0?g:a-2|0}a=g;if((b|0)!=(a|0)){continue}break}if((b|0)!=-1){break T}a=1;break U}if((b>>>0)%3|0){a=b-1|0;break U}a=b+2|0;if((a|0)==-1){break T}}a=J[r+(a<<2)>>2];if((a|0)==-1){break T}X:{if((a>>>0)%3|0){a=a-1|0;break X}a=a+2|0;if((a|0)==-1){break T}}b=J[h+12>>2];j=J[h>>2];f=J[i>>2];while(1){g=(a>>>3&536870908)+f|0;J[g>>2]=J[g>>2]|1<>2]=d}Y:{if((a>>>0)%3|0){a=a-1|0;break Y}a=a+2|0;if((a|0)==-1){break T}}a=J[b+(a<<2)>>2];if((a|0)==-1){break T}a=a+((a>>>0)%3|0?-1:2)|0;if((a|0)!=-1){continue}break}}a=e}n=n+1|0;if((n|0)!=3){continue}break}j=J[h>>2];e=J[h+4>>2]}l=l+1|0;if(l>>>0<(e-j>>2>>>0)/3>>>0){continue}break}break O}Za();C()}c=J[i+16>>2]}a=0;J[h+44>>2]=0;b=J[i+20>>2];if(b){d=b&31;b=(b>>>3&536870908)+c|0;g=c;f=0;while(1){if(!(J[g>>2]>>>a&1)){f=f+1|0;J[h+44>>2]=f}e=(a|0)==31;a=e?0:a+1|0;g=(e<<2)+g|0;if((b|0)!=(g|0)|(a|0)!=(d|0)){continue}break}}a=J[i>>2];if(a){xj(a);c=J[i+16>>2]}if(c){xj(c)}ia=i+32|0}ia=A+16|0;if(!x){J[D+8>>2]=0;Ue(h);h=0}ia=D+16|0;a=h;break h}La();C()}b=J[s>>2];if(!b){break d}J[s+4>>2]=b;xj(b)}ia=s+16|0;break b}La();C()}c=J[k+4>>2];b=a;J[k+4>>2]=a;if(c){Ue(c);b=J[k+4>>2]}Z:{if(!b){break Z}a=J[v+100>>2];c=J[v+96>>2];H[q+12|0]=0;Qe(k+56|0,(a-c|0)/12|0,q+12|0);a=J[v+100>>2];c=J[v+96>>2];if((a|0)==(c|0)){break Z}while(1){if(!(J[J[k+56>>2]+(B>>>3&536870908)>>2]>>>B&1)){a=P(B,3);Fi(k,0,a);c=J[k+8>>2];d=J[k+12>>2];Fi(k,1,a+1|0);e=J[k+20>>2];f=J[k+24>>2];Fi(k,2,a+2|0);g=(c|0)==(d|0)?-1:0;a=f-e>>2;c=d-c>>2;d=a>>>0>c>>>0;c=J[k+36>>2]-J[k+32>>2]>>2>>>0>(d?a:c)>>>0?2:d?1:g;_:{if(J[k+68>>2]<=0){break _}J[q+12>>2]=J[k+76>>2];J[q+8>>2]=m;wg(q+8|0,q+12|0);a=J[((c<<2)+k|0)+44>>2];if((a|0)<0){a=-1}else{d=(a>>>0)/3|0;a=J[(J[J[k>>2]+96>>2]+P(d,12)|0)+(a-P(d,3)<<2)>>2]}J[q+12>>2]=a;J[q+8>>2]=m;wg(q+8|0,q+12|0);d=J[k+72>>2];J[k+72>>2]=d+2;if(!(d&1)){break _}J[q+12>>2]=a;J[q+8>>2]=m;wg(q+8|0,q+12|0);J[k+72>>2]=J[k+72>>2]+1}f=0;d=ia-16|0;ia=d;J[k+68>>2]=J[k+68>>2]+1;a=P(c,12)+k|0;a=J[a+12>>2]-J[a+8>>2]|0;if((a|0)>0){a=a>>>2|0;g=a>>>0<=1?1:a;c=J[((c<<2)+k|0)+44>>2];while(1){a=c;e=(a>>>0)/3|0;c=(a|0)==-1;i=c?-1:e;h=J[k+56>>2]+(i>>>3&536870908)|0;J[h>>2]=J[h>>2]|1<>2]=J[k+72>>2]+1;$:{aa:{ba:{ca:{da:{if(!f){ea:{if((a|0)>=0){J[d+12>>2]=J[(J[J[k>>2]+96>>2]+P(e,12)|0)+((a>>>0)%3<<2)>>2];J[d+8>>2]=m;wg(d+8|0,d+12|0);break ea}J[d+12>>2]=-1;J[d+8>>2]=m;wg(d+8|0,d+12|0);if(c){break da}}c=-1;e=a+1|0;e=(e>>>0)%3|0?e:a-2|0;if((e|0)>=0){i=(e>>>0)/3|0;e=J[(J[J[k>>2]+96>>2]+P(i,12)|0)+(e-P(i,3)<<2)>>2]}else{e=-1}J[d+12>>2]=e;J[d+8>>2]=m;wg(d+8|0,d+12|0);e=((a>>>0)%3|0?-1:2)+a|0;if((e|0)<0){break ca}c=(e>>>0)/3|0;c=J[(J[J[k>>2]+96>>2]+P(c,12)|0)+(e-P(c,3)<<2)>>2];break ca}c=(a|0)<0?-1:J[(J[J[k>>2]+96>>2]+P(e,12)|0)+((a>>>0)%3<<2)>>2];J[k+76>>2]=c;J[d+12>>2]=c;J[d+8>>2]=m;wg(d+8|0,d+12|0);if(f&1){c=-1;if((a|0)==-1){break $}if((P(e,3)|0)!=(a|0)){a=a-1|0;break aa}a=a+2|0;break ba}c=-1;if((a|0)==-1){break $}c=a+1|0;a=(c>>>0)%3|0?c:a-2|0;break ba}c=-1;J[d+12>>2]=-1;J[d+8>>2]=m;wg(d+8|0,d+12|0)}J[k+76>>2]=c;J[d+12>>2]=c;J[d+8>>2]=m;wg(d+8|0,d+12|0)}c=-1;if((a|0)==-1){break $}}c=J[J[J[k+4>>2]+12>>2]+(a<<2)>>2]}f=f+1|0;if((g|0)!=(f|0)){continue}break}}ia=d+16|0;c=J[v+96>>2];a=J[v+100>>2]}B=B+1|0;if(B>>>0<(a-c|0)/12>>>0){continue}break}}ia=q+16|0;fa:{if(b){a=J[z>>2];if(a){J[z+4>>2]=a;xj(a)}J[z>>2]=J[m>>2];J[z+4>>2]=J[m+4>>2];J[z+8>>2]=J[m+8>>2];I=J[m+84>>2];break fa}a=J[m>>2];if(!a){break fa}J[m+4>>2]=a;xj(a)}a=J[m+72>>2];if(a){xj(a)}a=J[m+48>>2];if(a){J[m+52>>2]=a;xj(a)}a=J[m+36>>2];if(a){J[m+40>>2]=a;xj(a)}a=J[m+24>>2];if(a){J[m+28>>2]=a;xj(a)}a=J[m+20>>2];J[m+20>>2]=0;if(a){Ue(a)}ia=m+96|0;return I|0}function Xh(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0;a:{b:{switch(d-1|0){case 0:a=0;i=J[b+80>>2];l=K[c+24|0];c:{if((P(i,l)|0)!=(e|0)){break c}b=J[c+28>>2]!=1;a=K[c+84|0];if(!(b|!a)){Vi(f,J[J[c>>2]>>2]+J[c+48>>2]|0,e);a=1;break c}d=0;if(l){d=Aj(l);Xi(d,0,l)}d:{if(!i){break d}if(!b){if(l){b=0;a=0;while(1){h=J[J[c>>2]>>2];n=J[c+40>>2];e=J[c+48>>2]+jk(n,J[c+44>>2],K[c+84|0]?a:J[J[c+68>>2]+(a<<2)>>2],0)|0;Vi(b+f|0,Vi(d,h+e|0,n),l);b=b+l|0;a=a+1|0;if((i|0)!=(a|0)){continue}break}break d}if(a){e=J[c>>2];a=J[c+48>>2];l=J[c+44>>2];p=J[c+40>>2];if((i|0)!=1){m=i&-2;c=0;b=0;while(1){f=J[e>>2];h=jk(p,l,c,0)+a|0;f=Vi(d,f+h|0,p);k=J[e>>2];h=jk(p,l,c|1,0)+a|0;Vi(f,k+h|0,p);c=c+2|0;b=b+2|0;if((m|0)!=(b|0)){continue}break}h=c}if(!(i&1)){break d}c=J[e>>2];b=jk(h,0,p,l)+a|0;Vi(d,c+b|0,p);break d}e=J[c>>2];a=J[c+48>>2];h=J[c+68>>2];l=J[c+44>>2];p=J[c+40>>2];c=0;if((i|0)!=1){j=i&-2;b=0;while(1){f=J[e>>2];k=c<<2;m=jk(p,l,J[k+h>>2],0)+a|0;f=Vi(d,f+m|0,p);o=J[e>>2];m=jk(p,l,J[h+(k|4)>>2],0)+a|0;Vi(f,o+m|0,p);c=c+2|0;b=b+2|0;if((j|0)!=(b|0)){continue}break}}if(!(i&1)){break d}e=J[e>>2];b=jk(p,l,J[h+(c<<2)>>2],0)+a|0;Vi(d,e+b|0,p);break d}a=0;g=1;if(!l){while(1){if(!xg(c,K[c+84|0]?a:J[J[c+68>>2]+(a<<2)>>2],H[c+24|0],d)){break d}a=a+1|0;g=i>>>0>a>>>0;if((a|0)!=(i|0)){continue}break d}}b=0;while(1){if(!xg(c,K[c+84|0]?b:J[J[c+68>>2]+(b<<2)>>2],H[c+24|0],d)){break d}Vi(a+f|0,d,l);a=a+l|0;b=b+1|0;g=i>>>0>b>>>0;if((b|0)!=(i|0)){continue}break}}a=!g;if(!d){break c}xj(d)}g=a&1;break a;case 2:k=K[c+24|0];n=k<<1;b=J[b+80>>2];e:{f:{if((P(n,b)|0)!=(e|0)){break f}d=J[c+28>>2]!=3;q=K[c+84|0];if(!(d|!q)){Vi(f,J[J[c>>2]>>2]+J[c+48>>2]|0,e);g=1;break e}a=0;if(k){a=Aj(n);Xi(a,0,n)}g:{if(!b){break g}if(!d){d=J[c+68>>2];i=J[c>>2];e=J[c+48>>2];m=J[c+44>>2];j=J[c+40>>2];if(k){if(!q){c=0;while(1){o=J[i>>2];h=jk(j,m,J[d+(g<<2)>>2],0)+e|0;Vi((c<<1)+f|0,Vi(a,o+h|0,j),n);c=c+k|0;g=g+1|0;if((b|0)!=(g|0)){continue}break}break g}c=0;while(1){o=J[i>>2];d=jk(h,g,j,m)+e|0;Vi((c<<1)+f|0,Vi(a,o+d|0,j),n);c=c+k|0;d=g;g=h+1|0;d=g?d:d+1|0;h=g;g=d;if((b|0)!=(h|0)|d){continue}break}break g}if(!q){c=0;if((b|0)!=1){h=b&-2;while(1){o=J[i>>2];k=c<<2;f=jk(j,m,J[k+d>>2],0)+e|0;o=Vi(a,o+f|0,j);n=J[i>>2];f=jk(j,m,J[d+(k|4)>>2],0)+e|0;Vi(o,n+f|0,j);c=c+2|0;g=g+2|0;if((h|0)!=(g|0)){continue}break}}if(!(b&1)){break g}f=J[i>>2];b=jk(j,m,J[d+(c<<2)>>2],0)+e|0;Vi(a,f+b|0,j);break g}f=b&1;if((b|0)!=1){k=b&-2;c=0;b=0;while(1){o=J[i>>2];d=jk(h,g,j,m)+e|0;o=Vi(a,o+d|0,j);n=J[i>>2];d=jk(j,m,h|1,g)+e|0;Vi(o,n+d|0,j);d=h+2|0;g=d>>>0<2?g+1|0:g;h=d;d=b;b=c+2|0;d=b>>>0<2?d+1|0:d;c=b;b=d;if((k|0)!=(c|0)|b){continue}break}}if(!f){break g}c=J[i>>2];b=jk(h,g,j,m)+e|0;Vi(a,c+b|0,j);break g}d=0;l=1;if(!k){while(1){if(!Ag(c,K[c+84|0]?d:J[J[c+68>>2]+(d<<2)>>2],H[c+24|0],a)){break g}d=d+1|0;l=b>>>0>d>>>0;if((b|0)!=(d|0)){continue}break g}}while(1){if(!Ag(c,K[c+84|0]?g:J[J[c+68>>2]+(g<<2)>>2],H[c+24|0],a)){break g}Vi((d<<1)+f|0,a,n);d=d+k|0;g=g+1|0;l=b>>>0>g>>>0;if((b|0)!=(g|0)){continue}break}}g=!l;if(!a){break f}xj(a)}g=g&1}break a;case 4:k=K[c+24|0];n=k<<2;b=J[b+80>>2];h:{if((P(n,b)|0)!=(e|0)){break h}i=J[c+28>>2]!=5;d=K[c+84|0];if(!(i|!d)){Vi(f,J[J[c>>2]>>2]+J[c+48>>2]|0,e);g=1;break h}a=0;if(k){a=Aj(n);Xi(a,0,n)}i:{if(!b){break i}if(!i){q=J[c+68>>2];i=J[c>>2];e=J[c+48>>2];m=J[c+44>>2];j=J[c+40>>2];if(k){if(!d){c=0;d=0;while(1){h=J[i>>2];g=jk(j,m,J[q+(d<<2)>>2],0)+e|0;Vi((c<<2)+f|0,Vi(a,h+g|0,j),n);c=c+k|0;d=d+1|0;if((b|0)!=(d|0)){continue}break}break i}d=b;c=0;while(1){o=J[i>>2];b=jk(h,g,j,m)+e|0;Vi((c<<2)+f|0,Vi(a,o+b|0,j),n);c=c+k|0;b=g;g=h+1|0;b=g?b:b+1|0;h=g;g=b;if((d|0)!=(h|0)|b){continue}break}break i}if(!d){c=0;if((b|0)!=1){g=b&-2;d=0;while(1){k=J[i>>2];h=c<<2;f=jk(j,m,J[h+q>>2],0)+e|0;k=Vi(a,k+f|0,j);o=J[i>>2];f=jk(j,m,J[q+(h|4)>>2],0)+e|0;Vi(k,o+f|0,j);c=c+2|0;d=d+2|0;if((g|0)!=(d|0)){continue}break}}if(!(b&1)){break i}d=J[i>>2];b=jk(j,m,J[q+(c<<2)>>2],0)+e|0;Vi(a,d+b|0,j);break i}f=b&1;if((b|0)!=1){k=b&-2;c=0;b=0;while(1){o=J[i>>2];d=jk(h,g,j,m)+e|0;o=Vi(a,o+d|0,j);n=J[i>>2];d=jk(j,m,h|1,g)+e|0;Vi(o,n+d|0,j);d=g;g=h+2|0;d=g>>>0<2?d+1|0:d;h=g;g=d;c=c+2|0;b=c>>>0<2?b+1|0:b;if((k|0)!=(c|0)|b){continue}break}}if(!f){break i}c=J[i>>2];b=jk(h,g,j,m)+e|0;Vi(a,c+b|0,j);break i}l=1;if(!k){while(1){if(!Cg(c,K[c+84|0]?g:J[J[c+68>>2]+(g<<2)>>2],H[c+24|0],a)){break i}g=g+1|0;l=b>>>0>g>>>0;if((b|0)!=(g|0)){continue}break i}}d=0;while(1){if(!Cg(c,K[c+84|0]?d:J[J[c+68>>2]+(d<<2)>>2],H[c+24|0],a)){break i}Vi((g<<2)+f|0,a,n);g=g+k|0;d=d+1|0;l=b>>>0>d>>>0;if((b|0)!=(d|0)){continue}break}}g=!l;if(!a){break h}xj(a)}g=g&1;break a;case 1:a=0;i=J[b+80>>2];l=K[c+24|0];j:{if((P(i,l)|0)!=(e|0)){break j}b=J[c+28>>2]!=2;a=K[c+84|0];if(!(b|!a)){Vi(f,J[J[c>>2]>>2]+J[c+48>>2]|0,e);a=1;break j}d=0;if(l){d=Aj(l);Xi(d,0,l)}k:{if(!i){break k}if(!b){if(l){b=0;a=0;while(1){h=J[J[c>>2]>>2];n=J[c+40>>2];e=J[c+48>>2]+jk(n,J[c+44>>2],K[c+84|0]?a:J[J[c+68>>2]+(a<<2)>>2],0)|0;Vi(b+f|0,Vi(d,h+e|0,n),l);b=b+l|0;a=a+1|0;if((i|0)!=(a|0)){continue}break}break k}if(a){e=J[c>>2];a=J[c+48>>2];l=J[c+44>>2];p=J[c+40>>2];if((i|0)!=1){m=i&-2;c=0;b=0;while(1){f=J[e>>2];h=jk(p,l,c,0)+a|0;f=Vi(d,f+h|0,p);k=J[e>>2];h=jk(p,l,c|1,0)+a|0;Vi(f,k+h|0,p);c=c+2|0;b=b+2|0;if((m|0)!=(b|0)){continue}break}h=c}if(!(i&1)){break k}c=J[e>>2];b=jk(h,0,p,l)+a|0;Vi(d,c+b|0,p);break k}e=J[c>>2];a=J[c+48>>2];h=J[c+68>>2];l=J[c+44>>2];p=J[c+40>>2];c=0;if((i|0)!=1){j=i&-2;b=0;while(1){f=J[e>>2];k=c<<2;m=jk(p,l,J[k+h>>2],0)+a|0;f=Vi(d,f+m|0,p);o=J[e>>2];m=jk(p,l,J[h+(k|4)>>2],0)+a|0;Vi(f,o+m|0,p);c=c+2|0;b=b+2|0;if((j|0)!=(b|0)){continue}break}}if(!(i&1)){break k}e=J[e>>2];b=jk(p,l,J[h+(c<<2)>>2],0)+a|0;Vi(d,e+b|0,p);break k}a=0;g=1;if(!l){while(1){if(!yg(c,K[c+84|0]?a:J[J[c+68>>2]+(a<<2)>>2],H[c+24|0],d)){break k}a=a+1|0;g=i>>>0>a>>>0;if((a|0)!=(i|0)){continue}break k}}b=0;while(1){if(!yg(c,K[c+84|0]?b:J[J[c+68>>2]+(b<<2)>>2],H[c+24|0],d)){break k}Vi(a+f|0,d,l);a=a+l|0;b=b+1|0;g=i>>>0>b>>>0;if((b|0)!=(i|0)){continue}break}}a=!g;if(!d){break j}xj(d)}g=a&1;break a;case 3:k=K[c+24|0];n=k<<1;b=J[b+80>>2];l:{m:{if((P(n,b)|0)!=(e|0)){break m}d=J[c+28>>2]!=4;q=K[c+84|0];if(!(d|!q)){Vi(f,J[J[c>>2]>>2]+J[c+48>>2]|0,e);g=1;break l}a=0;if(k){a=Aj(n);Xi(a,0,n)}n:{if(!b){break n}if(!d){d=J[c+68>>2];i=J[c>>2];e=J[c+48>>2];m=J[c+44>>2];j=J[c+40>>2];if(k){if(!q){c=0;while(1){o=J[i>>2];h=jk(j,m,J[d+(g<<2)>>2],0)+e|0;Vi((c<<1)+f|0,Vi(a,o+h|0,j),n);c=c+k|0;g=g+1|0;if((b|0)!=(g|0)){continue}break}break n}c=0;while(1){o=J[i>>2];d=jk(h,g,j,m)+e|0;Vi((c<<1)+f|0,Vi(a,o+d|0,j),n);c=c+k|0;d=g;g=h+1|0;d=g?d:d+1|0;h=g;g=d;if((b|0)!=(h|0)|d){continue}break}break n}if(!q){c=0;if((b|0)!=1){h=b&-2;while(1){o=J[i>>2];k=c<<2;f=jk(j,m,J[k+d>>2],0)+e|0;o=Vi(a,o+f|0,j);n=J[i>>2];f=jk(j,m,J[d+(k|4)>>2],0)+e|0;Vi(o,n+f|0,j);c=c+2|0;g=g+2|0;if((h|0)!=(g|0)){continue}break}}if(!(b&1)){break n}f=J[i>>2];b=jk(j,m,J[d+(c<<2)>>2],0)+e|0;Vi(a,f+b|0,j);break n}f=b&1;if((b|0)!=1){k=b&-2;c=0;b=0;while(1){o=J[i>>2];d=jk(h,g,j,m)+e|0;o=Vi(a,o+d|0,j);n=J[i>>2];d=jk(j,m,h|1,g)+e|0;Vi(o,n+d|0,j);d=h+2|0;g=d>>>0<2?g+1|0:g;h=d;d=b;b=c+2|0;d=b>>>0<2?d+1|0:d;c=b;b=d;if((k|0)!=(c|0)|b){continue}break}}if(!f){break n}c=J[i>>2];b=jk(h,g,j,m)+e|0;Vi(a,c+b|0,j);break n}d=0;l=1;if(!k){while(1){if(!Bg(c,K[c+84|0]?d:J[J[c+68>>2]+(d<<2)>>2],H[c+24|0],a)){break n}d=d+1|0;l=b>>>0>d>>>0;if((b|0)!=(d|0)){continue}break n}}while(1){if(!Bg(c,K[c+84|0]?g:J[J[c+68>>2]+(g<<2)>>2],H[c+24|0],a)){break n}Vi((d<<1)+f|0,a,n);d=d+k|0;g=g+1|0;l=b>>>0>g>>>0;if((b|0)!=(g|0)){continue}break}}g=!l;if(!a){break m}xj(a)}g=g&1}break a;case 5:k=K[c+24|0];n=k<<2;b=J[b+80>>2];o:{if((P(n,b)|0)!=(e|0)){break o}i=J[c+28>>2]!=6;d=K[c+84|0];if(!(i|!d)){Vi(f,J[J[c>>2]>>2]+J[c+48>>2]|0,e);g=1;break o}a=0;if(k){a=Aj(n);Xi(a,0,n)}p:{if(!b){break p}if(!i){q=J[c+68>>2];i=J[c>>2];e=J[c+48>>2];m=J[c+44>>2];j=J[c+40>>2];if(k){if(!d){c=0;d=0;while(1){h=J[i>>2];g=jk(j,m,J[q+(d<<2)>>2],0)+e|0;Vi((c<<2)+f|0,Vi(a,h+g|0,j),n);c=c+k|0;d=d+1|0;if((b|0)!=(d|0)){continue}break}break p}d=b;c=0;while(1){o=J[i>>2];b=jk(h,g,j,m)+e|0;Vi((c<<2)+f|0,Vi(a,o+b|0,j),n);c=c+k|0;b=g;g=h+1|0;b=g?b:b+1|0;h=g;g=b;if((d|0)!=(h|0)|b){continue}break}break p}if(!d){c=0;if((b|0)!=1){g=b&-2;d=0;while(1){k=J[i>>2];h=c<<2;f=jk(j,m,J[h+q>>2],0)+e|0;k=Vi(a,k+f|0,j);o=J[i>>2];f=jk(j,m,J[q+(h|4)>>2],0)+e|0;Vi(k,o+f|0,j);c=c+2|0;d=d+2|0;if((g|0)!=(d|0)){continue}break}}if(!(b&1)){break p}d=J[i>>2];b=jk(j,m,J[q+(c<<2)>>2],0)+e|0;Vi(a,d+b|0,j);break p}f=b&1;if((b|0)!=1){k=b&-2;c=0;b=0;while(1){o=J[i>>2];d=jk(h,g,j,m)+e|0;o=Vi(a,o+d|0,j);n=J[i>>2];d=jk(j,m,h|1,g)+e|0;Vi(o,n+d|0,j);d=g;g=h+2|0;d=g>>>0<2?d+1|0:d;h=g;g=d;c=c+2|0;b=c>>>0<2?b+1|0:b;if((k|0)!=(c|0)|b){continue}break}}if(!f){break p}c=J[i>>2];b=jk(h,g,j,m)+e|0;Vi(a,c+b|0,j);break p}l=1;if(!k){while(1){if(!Dg(c,K[c+84|0]?g:J[J[c+68>>2]+(g<<2)>>2],H[c+24|0],a)){break p}g=g+1|0;l=b>>>0>g>>>0;if((b|0)!=(g|0)){continue}break p}}d=0;while(1){if(!Dg(c,K[c+84|0]?d:J[J[c+68>>2]+(d<<2)>>2],H[c+24|0],a)){break p}Vi((g<<2)+f|0,a,n);g=g+k|0;d=d+1|0;l=b>>>0>d>>>0;if((b|0)!=(d|0)){continue}break}}g=!l;if(!a){break o}xj(a)}g=g&1;break a;case 8:break b;default:break a}}a=0;n=K[c+24|0];q=n<<2;i=J[b+80>>2];q:{if((P(q,i)|0)!=(e|0)){break q}e=J[c+28>>2];b=0;r:{if(!n){break r}b=Aj(q);a=b;p=q-4|0;m=(p>>>2|0)+1&7;if(m){d=0;a=b;while(1){J[a>>2]=-1073741824;a=a+4|0;d=d+1|0;if((m|0)!=(d|0)){continue}break}}if(p>>>0<28){break r}d=(n<<2)+b|0;while(1){J[a+24>>2]=-1073741824;J[a+28>>2]=-1073741824;J[a+16>>2]=-1073741824;J[a+20>>2]=-1073741824;J[a+8>>2]=-1073741824;J[a+12>>2]=-1073741824;J[a>>2]=-1073741824;J[a+4>>2]=-1073741824;a=a+32|0;if((d|0)!=(a|0)){continue}break}}s:{if(!i){break s}if((e|0)==9){j=J[c+68>>2];m=J[c>>2];e=J[c+48>>2];s=K[c+84|0];p=J[c+44>>2];c=J[c+40>>2];k=c;if(n){d=0;a=0;while(1){h=J[m>>2];g=jk(c,p,s?a:J[j+(a<<2)>>2],0)+e|0;Vi((d<<2)+f|0,Vi(b,h+g|0,k),q);d=d+n|0;a=a+1|0;if((i|0)!=(a|0)){continue}break}break s}if(!s){a=0;if((i|0)!=1){g=i&-2;d=0;while(1){l=J[m>>2];h=a<<2;f=jk(c,p,J[h+j>>2],0)+e|0;l=Vi(b,l+f|0,k);o=J[m>>2];f=jk(c,p,J[j+(h|4)>>2],0)+e|0;Vi(l,o+f|0,k);a=a+2|0;d=d+2|0;if((g|0)!=(d|0)){continue}break}}if(!(i&1)){break s}d=J[m>>2];a=jk(c,p,J[j+(a<<2)>>2],0)+e|0;Vi(b,d+a|0,k);break s}f=i&1;if((i|0)!=1){i=i&-2;while(1){d=J[m>>2];a=jk(h,g,c,p)+e|0;d=Vi(b,d+a|0,k);j=J[m>>2];a=jk(c,p,h|1,g)+e|0;Vi(d,j+a|0,k);a=h+2|0;g=a>>>0<2?g+1|0:g;h=a;d=l;a=o+2|0;d=a>>>0<2?d+1|0:d;o=a;l=d;if((i|0)!=(a|0)|d){continue}break}}if(!f){break s}d=J[m>>2];a=jk(h,g,c,p)+e|0;Vi(b,d+a|0,k);break s}a=0;r=1;if(!n){while(1){if(!Uc(c,K[c+84|0]?a:J[J[c+68>>2]+(a<<2)>>2],H[c+24|0],b)){break s}a=a+1|0;r=i>>>0>a>>>0;if((a|0)!=(i|0)){continue}break s}}d=0;while(1){if(!Uc(c,K[c+84|0]?d:J[J[c+68>>2]+(d<<2)>>2],H[c+24|0],b)){break s}Vi((a<<2)+f|0,b,q);a=a+n|0;d=d+1|0;r=i>>>0>d>>>0;if((d|0)!=(i|0)){continue}break}}a=!r;if(!b){break q}xj(b)}g=a&1}return g|0}function wj(a){a=a|0;var b=0,c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0;l=ia-16|0;ia=l;a:{b:{c:{d:{e:{f:{g:{h:{i:{j:{k:{if(a>>>0<=244){e=J[4312];h=a>>>0<11?16:a+11&-8;c=h>>>3|0;b=e>>>c|0;if(b&3){c=c+((b^-1)&1)|0;a=c<<3;b=a+17288|0;d=J[a+17296>>2];a=J[d+8>>2];l:{if((b|0)==(a|0)){m=17248,n=nk(c)&e,J[m>>2]=n;break l}J[a+12>>2]=b;J[b+8>>2]=a}a=d+8|0;b=c<<3;J[d+4>>2]=b|3;b=b+d|0;J[b+4>>2]=J[b+4>>2]|1;break a}k=J[4314];if(k>>>0>=h>>>0){break k}if(b){a=2<>>12&16;c=a;b=b>>>a|0;a=b>>>5&8;c=c|a;b=b>>>a|0;a=b>>>2&4;c=c|a;b=b>>>a|0;a=b>>>1&2;c=c|a;b=b>>>a|0;a=b>>>1&1;d=(c|a)+(b>>>a|0)|0;a=d<<3;b=a+17288|0;g=J[a+17296>>2];a=J[g+8>>2];m:{if((b|0)==(a|0)){e=nk(d)&e;J[4312]=e;break m}J[a+12>>2]=b;J[b+8>>2]=a}J[g+4>>2]=h|3;c=g+h|0;a=d<<3;d=a-h|0;J[c+4>>2]=d|1;J[a+g>>2]=d;if(k){b=(k&-8)+17288|0;f=J[4317];a=1<<(k>>>3);n:{if(!(a&e)){J[4312]=a|e;a=b;break n}a=J[b+8>>2]}J[b+8>>2]=f;J[a+12>>2]=f;J[f+12>>2]=b;J[f+8>>2]=a}a=g+8|0;J[4317]=c;J[4314]=d;break a}j=J[4313];if(!j){break k}b=j-1&(j^-1);a=b>>>12&16;c=a;b=b>>>a|0;a=b>>>5&8;c=c|a;b=b>>>a|0;a=b>>>2&4;c=c|a;b=b>>>a|0;a=b>>>1&2;c=c|a;b=b>>>a|0;a=b>>>1&1;c=J[((c|a)+(b>>>a|0)<<2)+17552>>2];f=(J[c+4>>2]&-8)-h|0;b=c;while(1){o:{a=J[b+16>>2];if(!a){a=J[b+20>>2];if(!a){break o}}b=(J[a+4>>2]&-8)-h|0;d=b>>>0>>0;f=d?b:f;c=d?a:c;b=a;continue}break}i=J[c+24>>2];d=J[c+12>>2];if((d|0)!=(c|0)){a=J[c+8>>2];J[a+12>>2]=d;J[d+8>>2]=a;break b}b=c+20|0;a=J[b>>2];if(!a){a=J[c+16>>2];if(!a){break j}b=c+16|0}while(1){g=b;d=a;b=a+20|0;a=J[b>>2];if(a){continue}b=d+16|0;a=J[d+16>>2];if(a){continue}break}J[g>>2]=0;break b}h=-1;if(a>>>0>4294967231){break k}a=a+11|0;h=a&-8;j=J[4313];if(!j){break k}f=0-h|0;e=0;p:{if(h>>>0<256){break p}e=31;if(h>>>0>16777215){break p}a=a>>>8|0;g=a+1048320>>>16&8;a=a<>>16&4;a=a<>>16&2;a=(a<>>15|0)-(b|(c|g))|0;e=(a<<1|h>>>a+21&1)+28|0}b=J[(e<<2)+17552>>2];q:{r:{s:{if(!b){a=0;break s}a=0;c=h<<((e|0)!=31?25-(e>>>1|0)|0:0);while(1){t:{g=(J[b+4>>2]&-8)-h|0;if(g>>>0>=f>>>0){break t}d=b;f=g;if(f){break t}f=0;a=b;break r}g=J[b+20>>2];b=J[((c>>>29&4)+b|0)+16>>2];a=g?(g|0)==(b|0)?a:g:a;c=c<<1;if(b){continue}break}}if(!(a|d)){d=0;a=2<>>12&16;c=a;b=b>>>a|0;a=b>>>5&8;c=c|a;b=b>>>a|0;a=b>>>2&4;c=c|a;b=b>>>a|0;a=b>>>1&2;c=c|a;b=b>>>a|0;a=b>>>1&1;a=J[((c|a)+(b>>>a|0)<<2)+17552>>2]}if(!a){break q}}while(1){b=(J[a+4>>2]&-8)-h|0;c=b>>>0>>0;f=c?b:f;d=c?a:d;b=J[a+16>>2];if(b){a=b}else{a=J[a+20>>2]}if(a){continue}break}}if(!d|J[4314]-h>>>0<=f>>>0){break k}e=J[d+24>>2];c=J[d+12>>2];if((d|0)!=(c|0)){a=J[d+8>>2];J[a+12>>2]=c;J[c+8>>2]=a;break c}b=d+20|0;a=J[b>>2];if(!a){a=J[d+16>>2];if(!a){break i}b=d+16|0}while(1){g=b;c=a;b=a+20|0;a=J[b>>2];if(a){continue}b=c+16|0;a=J[c+16>>2];if(a){continue}break}J[g>>2]=0;break c}c=J[4314];if(c>>>0>=h>>>0){d=J[4317];b=c-h|0;u:{if(b>>>0>=16){J[4314]=b;a=d+h|0;J[4317]=a;J[a+4>>2]=b|1;J[c+d>>2]=b;J[d+4>>2]=h|3;break u}J[4317]=0;J[4314]=0;J[d+4>>2]=c|3;a=c+d|0;J[a+4>>2]=J[a+4>>2]|1}a=d+8|0;break a}i=J[4315];if(i>>>0>h>>>0){b=i-h|0;J[4315]=b;c=J[4318];a=c+h|0;J[4318]=a;J[a+4>>2]=b|1;J[c+4>>2]=h|3;a=c+8|0;break a}a=0;j=h+47|0;if(J[4430]){c=J[4432]}else{J[4433]=-1;J[4434]=-1;J[4431]=4096;J[4432]=4096;J[4430]=l+12&-16^1431655768;J[4435]=0;J[4423]=0;c=4096}g=j+c|0;f=0-c|0;b=g&f;if(b>>>0<=h>>>0){break a}d=J[4422];if(d){c=J[4420];e=c+b|0;if(d>>>0>>0|c>>>0>=e>>>0){break a}}if(K[17692]&4){break f}v:{w:{d=J[4318];if(d){a=17696;while(1){c=J[a>>2];if(c>>>0<=d>>>0&d>>>0>2]>>>0){break w}a=J[a+8>>2];if(a){continue}break}}c=vj(0);if((c|0)==-1){break g}e=b;d=J[4431];a=d-1|0;if(a&c){e=(b-c|0)+(a+c&0-d)|0}if(e>>>0<=h>>>0|e>>>0>2147483646){break g}d=J[4422];if(d){a=J[4420];f=a+e|0;if(d>>>0>>0|a>>>0>=f>>>0){break g}}a=vj(e);if((c|0)!=(a|0)){break v}break e}e=f&g-i;if(e>>>0>2147483646){break g}c=vj(e);if((c|0)==(J[a>>2]+J[a+4>>2]|0)){break h}a=c}if(!((a|0)==-1|h+48>>>0<=e>>>0)){c=J[4432];c=c+(j-e|0)&0-c;if(c>>>0>2147483646){c=a;break e}if((vj(c)|0)!=-1){e=c+e|0;c=a;break e}vj(0-e|0);break g}c=a;if((a|0)!=-1){break e}break g}d=0;break b}c=0;break c}if((c|0)!=-1){break e}}J[4423]=J[4423]|4}if(b>>>0>2147483646){break d}c=vj(b);a=vj(0);if((c|0)==-1|(a|0)==-1|a>>>0<=c>>>0){break d}e=a-c|0;if(e>>>0<=h+40>>>0){break d}}a=J[4420]+e|0;J[4420]=a;if(a>>>0>M[4421]){J[4421]=a}x:{y:{z:{g=J[4318];if(g){a=17696;while(1){d=J[a>>2];b=J[a+4>>2];if((d+b|0)==(c|0)){break z}a=J[a+8>>2];if(a){continue}break}break y}a=J[4316];if(!(a>>>0<=c>>>0?a:0)){J[4316]=c}a=0;J[4425]=e;J[4424]=c;J[4320]=-1;J[4321]=J[4430];J[4427]=0;while(1){d=a<<3;b=d+17288|0;J[d+17296>>2]=b;J[d+17300>>2]=b;a=a+1|0;if((a|0)!=32){continue}break}d=e-40|0;a=c+8&7?-8-c&7:0;b=d-a|0;J[4315]=b;a=a+c|0;J[4318]=a;J[a+4>>2]=b|1;J[(c+d|0)+4>>2]=40;J[4319]=J[4434];break x}if(K[a+12|0]&8|d>>>0>g>>>0|c>>>0<=g>>>0){break y}J[a+4>>2]=b+e;a=g+8&7?-8-g&7:0;c=a+g|0;J[4318]=c;b=J[4315]+e|0;a=b-a|0;J[4315]=a;J[c+4>>2]=a|1;J[(b+g|0)+4>>2]=40;J[4319]=J[4434];break x}if(M[4316]>c>>>0){J[4316]=c}b=c+e|0;a=17696;A:{B:{C:{D:{E:{F:{while(1){if((b|0)!=J[a>>2]){a=J[a+8>>2];if(a){continue}break F}break}if(!(K[a+12|0]&8)){break E}}a=17696;while(1){b=J[a>>2];if(b>>>0<=g>>>0){f=b+J[a+4>>2]|0;if(f>>>0>g>>>0){break D}}a=J[a+8>>2];continue}}J[a>>2]=c;J[a+4>>2]=J[a+4>>2]+e;j=(c+8&7?-8-c&7:0)+c|0;J[j+4>>2]=h|3;e=b+(b+8&7?-8-b&7:0)|0;i=h+j|0;a=e-i|0;if((e|0)==(g|0)){J[4318]=i;a=J[4315]+a|0;J[4315]=a;J[i+4>>2]=a|1;break B}if(J[4317]==(e|0)){J[4317]=i;a=J[4314]+a|0;J[4314]=a;J[i+4>>2]=a|1;J[a+i>>2]=a;break B}f=J[e+4>>2];if((f&3)==1){g=f&-8;G:{if(f>>>0<=255){d=J[e+8>>2];b=f>>>3|0;c=J[e+12>>2];if((c|0)==(d|0)){m=17248,n=J[4312]&nk(b),J[m>>2]=n;break G}J[d+12>>2]=c;J[c+8>>2]=d;break G}h=J[e+24>>2];c=J[e+12>>2];H:{if((e|0)!=(c|0)){b=J[e+8>>2];J[b+12>>2]=c;J[c+8>>2]=b;break H}I:{f=e+20|0;b=J[f>>2];if(b){break I}f=e+16|0;b=J[f>>2];if(b){break I}c=0;break H}while(1){d=f;c=b;f=b+20|0;b=J[f>>2];if(b){continue}f=c+16|0;b=J[c+16>>2];if(b){continue}break}J[d>>2]=0}if(!h){break G}d=J[e+28>>2];b=(d<<2)+17552|0;J:{if(J[b>>2]==(e|0)){J[b>>2]=c;if(c){break J}m=17252,n=J[4313]&nk(d),J[m>>2]=n;break G}J[h+(J[h+16>>2]==(e|0)?16:20)>>2]=c;if(!c){break G}}J[c+24>>2]=h;b=J[e+16>>2];if(b){J[c+16>>2]=b;J[b+24>>2]=c}b=J[e+20>>2];if(!b){break G}J[c+20>>2]=b;J[b+24>>2]=c}e=e+g|0;f=J[e+4>>2];a=a+g|0}J[e+4>>2]=f&-2;J[i+4>>2]=a|1;J[a+i>>2]=a;if(a>>>0<=255){b=(a&-8)+17288|0;c=J[4312];a=1<<(a>>>3);K:{if(!(c&a)){J[4312]=a|c;a=b;break K}a=J[b+8>>2]}J[b+8>>2]=i;J[a+12>>2]=i;J[i+12>>2]=b;J[i+8>>2]=a;break B}f=31;if(a>>>0<=16777215){b=a>>>8|0;f=b+1048320>>>16&8;b=b<>>16&4;b=b<>>16&2;b=(b<>>15|0)-(c|(d|f))|0;f=(b<<1|a>>>b+21&1)+28|0}J[i+28>>2]=f;J[i+16>>2]=0;J[i+20>>2]=0;b=(f<<2)+17552|0;d=J[4313];c=1<>2]=i;break L}f=a<<((f|0)!=31?25-(f>>>1|0)|0:0);c=J[b>>2];while(1){b=c;if((J[b+4>>2]&-8)==(a|0)){break C}c=f>>>29|0;f=f<<1;d=(c&4)+b|0;c=J[d+16>>2];if(c){continue}break}J[d+16>>2]=i}J[i+24>>2]=b;J[i+12>>2]=i;J[i+8>>2]=i;break B}d=e-40|0;a=c+8&7?-8-c&7:0;b=d-a|0;J[4315]=b;a=a+c|0;J[4318]=a;J[a+4>>2]=b|1;J[(c+d|0)+4>>2]=40;J[4319]=J[4434];a=(f+(f-39&7?39-f&7:0)|0)-47|0;d=a>>>0>>0?g:a;J[d+4>>2]=27;a=J[4427];J[d+16>>2]=J[4426];J[d+20>>2]=a;a=J[4425];J[d+8>>2]=J[4424];J[d+12>>2]=a;J[4426]=d+8;J[4425]=e;J[4424]=c;J[4427]=0;a=d+24|0;while(1){J[a+4>>2]=7;b=a+8|0;a=a+4|0;if(b>>>0>>0){continue}break}if((d|0)==(g|0)){break x}J[d+4>>2]=J[d+4>>2]&-2;f=d-g|0;J[g+4>>2]=f|1;J[d>>2]=f;if(f>>>0<=255){b=(f&-8)+17288|0;c=J[4312];a=1<<(f>>>3);M:{if(!(c&a)){J[4312]=a|c;a=b;break M}a=J[b+8>>2]}J[b+8>>2]=g;J[a+12>>2]=g;J[g+12>>2]=b;J[g+8>>2]=a;break x}a=31;if(f>>>0<=16777215){a=f>>>8|0;d=a+1048320>>>16&8;a=a<>>16&4;a=a<>>16&2;a=(a<>>15|0)-(b|(c|d))|0;a=(a<<1|f>>>a+21&1)+28|0}J[g+28>>2]=a;J[g+16>>2]=0;J[g+20>>2]=0;b=(a<<2)+17552|0;d=J[4313];c=1<>2]=g;break N}a=f<<((a|0)!=31?25-(a>>>1|0)|0:0);d=J[b>>2];while(1){b=d;if((f|0)==(J[b+4>>2]&-8)){break A}c=a>>>29|0;a=a<<1;c=(c&4)+b|0;d=J[c+16>>2];if(d){continue}break}J[c+16>>2]=g}J[g+24>>2]=b;J[g+12>>2]=g;J[g+8>>2]=g;break x}a=J[b+8>>2];J[a+12>>2]=i;J[b+8>>2]=i;J[i+24>>2]=0;J[i+12>>2]=b;J[i+8>>2]=a}a=j+8|0;break a}a=J[b+8>>2];J[a+12>>2]=g;J[b+8>>2]=g;J[g+24>>2]=0;J[g+12>>2]=b;J[g+8>>2]=a}a=J[4315];if(a>>>0<=h>>>0){break d}b=a-h|0;J[4315]=b;c=J[4318];a=c+h|0;J[4318]=a;J[a+4>>2]=b|1;J[c+4>>2]=h|3;a=c+8|0;break a}J[4004]=48;a=0;break a}O:{if(!e){break O}b=J[d+28>>2];a=(b<<2)+17552|0;P:{if(J[a>>2]==(d|0)){J[a>>2]=c;if(c){break P}j=nk(b)&j;J[4313]=j;break O}J[e+(J[e+16>>2]==(d|0)?16:20)>>2]=c;if(!c){break O}}J[c+24>>2]=e;a=J[d+16>>2];if(a){J[c+16>>2]=a;J[a+24>>2]=c}a=J[d+20>>2];if(!a){break O}J[c+20>>2]=a;J[a+24>>2]=c}Q:{if(f>>>0<=15){a=f+h|0;J[d+4>>2]=a|3;a=a+d|0;J[a+4>>2]=J[a+4>>2]|1;break Q}J[d+4>>2]=h|3;e=d+h|0;J[e+4>>2]=f|1;J[e+f>>2]=f;if(f>>>0<=255){b=(f&-8)+17288|0;c=J[4312];a=1<<(f>>>3);R:{if(!(c&a)){J[4312]=a|c;a=b;break R}a=J[b+8>>2]}J[b+8>>2]=e;J[a+12>>2]=e;J[e+12>>2]=b;J[e+8>>2]=a;break Q}a=31;if(f>>>0<=16777215){a=f>>>8|0;g=a+1048320>>>16&8;a=a<>>16&4;a=a<>>16&2;a=(a<>>15|0)-(b|(c|g))|0;a=(a<<1|f>>>a+21&1)+28|0}J[e+28>>2]=a;J[e+16>>2]=0;J[e+20>>2]=0;b=(a<<2)+17552|0;S:{c=1<>2]=e;break T}a=f<<((a|0)!=31?25-(a>>>1|0)|0:0);h=J[b>>2];while(1){b=h;if((J[b+4>>2]&-8)==(f|0)){break S}c=a>>>29|0;a=a<<1;c=(c&4)+b|0;h=J[c+16>>2];if(h){continue}break}J[c+16>>2]=e}J[e+24>>2]=b;J[e+12>>2]=e;J[e+8>>2]=e;break Q}a=J[b+8>>2];J[a+12>>2]=e;J[b+8>>2]=e;J[e+24>>2]=0;J[e+12>>2]=b;J[e+8>>2]=a}a=d+8|0;break a}U:{if(!i){break U}b=J[c+28>>2];a=(b<<2)+17552|0;V:{if(J[a>>2]==(c|0)){J[a>>2]=d;if(d){break V}m=17252,n=nk(b)&j,J[m>>2]=n;break U}J[i+(J[i+16>>2]==(c|0)?16:20)>>2]=d;if(!d){break U}}J[d+24>>2]=i;a=J[c+16>>2];if(a){J[d+16>>2]=a;J[a+24>>2]=d}a=J[c+20>>2];if(!a){break U}J[d+20>>2]=a;J[a+24>>2]=d}W:{if(f>>>0<=15){a=f+h|0;J[c+4>>2]=a|3;a=a+c|0;J[a+4>>2]=J[a+4>>2]|1;break W}J[c+4>>2]=h|3;d=c+h|0;J[d+4>>2]=f|1;J[d+f>>2]=f;if(k){b=(k&-8)+17288|0;g=J[4317];a=1<<(k>>>3);X:{if(!(a&e)){J[4312]=a|e;a=b;break X}a=J[b+8>>2]}J[b+8>>2]=g;J[a+12>>2]=g;J[g+12>>2]=b;J[g+8>>2]=a}J[4317]=d;J[4314]=f}a=c+8|0}ia=l+16|0;return a|0}function oc(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0;h=ia-48|0;ia=h;a:{b:{if((c|0)!=1){break b}g=J[a+4>>2];f=J[a+12>>2];J[h+40>>2]=0;J[h+32>>2]=0;J[h+36>>2]=0;J[h+24>>2]=0;J[h+28>>2]=0;J[h+16>>2]=0;J[h+20>>2]=0;J[h+8>>2]=0;J[h+12>>2]=0;d=h+8|0;c:{if((b|0)==-2){break c}m=J[J[J[g+4>>2]+8>>2]+(f<<2)>>2];if((na[J[J[g>>2]+8>>2]](g)|0)==1){a=L[g+36>>1];l=(a<<8|a>>>8)&65535;a=0;i=ia-32|0;ia=i;j=J[J[J[g+4>>2]+8>>2]+(f<<2)>>2];d:{if((na[J[J[g>>2]+8>>2]](g)|0)!=1|b-1>>>0>5){break d}e=na[J[J[g>>2]+36>>2]](g)|0;k=na[J[J[g>>2]+44>>2]](g,f)|0;if(!e|!k){break d}c=na[J[J[g>>2]+40>>2]](g,f)|0;if(c){a=J[g+44>>2];J[i+12>>2]=c;J[i+8>>2]=a;J[i+20>>2]=k;J[i+16>>2]=k+12;f=i+8|0;a=0;e:{f:{switch(b-1|0){case 0:a=Aj(60);J[a+4>>2]=j;J[a>>2]=3320;b=J[d+4>>2];J[a+8>>2]=J[d>>2];J[a+12>>2]=b;b=J[d+12>>2];J[a+16>>2]=J[d+8>>2];J[a+20>>2]=b;b=J[d+20>>2];J[a+24>>2]=J[d+16>>2];J[a+28>>2]=b;J[a+40>>2]=0;J[a+32>>2]=0;J[a+36>>2]=0;b=J[d+28>>2];c=J[d+24>>2];if((b|0)!=(c|0)){e=b-c|0;if((e|0)<0){break a}b=Aj(e);J[a+32>>2]=b;J[a+40>>2]=b+(e&-4);n=a,o=Vi(b,c,e)+e|0,J[n+36>>2]=o}b=J[f+4>>2];J[a+44>>2]=J[f>>2];J[a+48>>2]=b;b=J[f+12>>2];J[a+52>>2]=J[f+8>>2];J[a+56>>2]=b;J[a>>2]=2612;break e;case 1:a=Aj(60);J[a+4>>2]=j;J[a>>2]=3320;b=J[d+4>>2];J[a+8>>2]=J[d>>2];J[a+12>>2]=b;b=J[d+12>>2];J[a+16>>2]=J[d+8>>2];J[a+20>>2]=b;b=J[d+20>>2];J[a+24>>2]=J[d+16>>2];J[a+28>>2]=b;J[a+40>>2]=0;J[a+32>>2]=0;J[a+36>>2]=0;b=J[d+28>>2];c=J[d+24>>2];if((b|0)!=(c|0)){e=b-c|0;if((e|0)<0){break a}b=Aj(e);J[a+32>>2]=b;J[a+40>>2]=b+(e&-4);n=a,o=Vi(b,c,e)+e|0,J[n+36>>2]=o}b=J[f+4>>2];J[a+44>>2]=J[f>>2];J[a+48>>2]=b;b=J[f+12>>2];J[a+52>>2]=J[f+8>>2];J[a+56>>2]=b;J[a>>2]=3376;break e;case 3:a=Aj(112);J[a+4>>2]=j;J[a>>2]=3320;b=J[d+4>>2];J[a+8>>2]=J[d>>2];J[a+12>>2]=b;b=J[d+12>>2];J[a+16>>2]=J[d+8>>2];J[a+20>>2]=b;b=J[d+20>>2];J[a+24>>2]=J[d+16>>2];J[a+28>>2]=b;J[a+40>>2]=0;J[a+32>>2]=0;J[a+36>>2]=0;b=J[d+28>>2];c=J[d+24>>2];if((b|0)!=(c|0)){e=b-c|0;if((e|0)<0){break a}b=Aj(e);J[a+32>>2]=b;J[a+40>>2]=b+(e&-4);n=a,o=Vi(b,c,e)+e|0,J[n+36>>2]=o}b=J[f+4>>2];J[a+44>>2]=J[f>>2];J[a+48>>2]=b;b=J[f+12>>2];J[a+52>>2]=J[f+8>>2];J[a+56>>2]=b;J[a+60>>2]=0;J[a+64>>2]=0;J[a>>2]=3612;J[a+68>>2]=0;J[a+72>>2]=0;J[a+76>>2]=0;J[a+80>>2]=0;J[a+84>>2]=0;J[a+88>>2]=0;J[a+92>>2]=0;J[a+96>>2]=0;J[a+100>>2]=0;J[a+104>>2]=0;J[a+108>>2]=0;break e;case 2:a=Aj(92);J[a+4>>2]=j;J[a>>2]=3320;b=J[d+4>>2];J[a+8>>2]=J[d>>2];J[a+12>>2]=b;b=J[d+12>>2];J[a+16>>2]=J[d+8>>2];J[a+20>>2]=b;b=J[d+20>>2];J[a+24>>2]=J[d+16>>2];J[a+28>>2]=b;J[a+40>>2]=0;J[a+32>>2]=0;J[a+36>>2]=0;b=J[d+28>>2];c=J[d+24>>2];if((b|0)!=(c|0)){e=b-c|0;if((e|0)<0){break a}b=Aj(e);J[a+32>>2]=b;J[a+40>>2]=b+(e&-4);n=a,o=Vi(b,c,e)+e|0,J[n+36>>2]=o}b=J[f+4>>2];J[a+44>>2]=J[f>>2];J[a+48>>2]=b;b=J[f+12>>2];J[a+52>>2]=J[f+8>>2];J[a+56>>2]=b;J[a+60>>2]=0;J[a+64>>2]=0;J[a>>2]=3860;J[a+68>>2]=0;J[a+72>>2]=0;J[a+76>>2]=0;J[a+80>>2]=0;J[a+84>>2]=0;J[a+88>>2]=l;break e;case 4:a=Aj(104);J[a+4>>2]=j;J[a>>2]=3320;b=J[d+4>>2];J[a+8>>2]=J[d>>2];J[a+12>>2]=b;b=J[d+12>>2];J[a+16>>2]=J[d+8>>2];J[a+20>>2]=b;b=J[d+20>>2];J[a+24>>2]=J[d+16>>2];J[a+28>>2]=b;J[a+40>>2]=0;J[a+32>>2]=0;J[a+36>>2]=0;b=J[d+28>>2];c=J[d+24>>2];if((b|0)!=(c|0)){e=b-c|0;if((e|0)<0){break a}b=Aj(e);J[a+32>>2]=b;J[a+40>>2]=b+(e&-4);n=a,o=Vi(b,c,e)+e|0,J[n+36>>2]=o}b=J[f+4>>2];J[a+44>>2]=J[f>>2];J[a+48>>2]=b;b=J[f+12>>2];J[a+52>>2]=J[f+8>>2];J[a+56>>2]=b;J[a+84>>2]=0;J[a+76>>2]=0;J[a+80>>2]=0;J[a+60>>2]=0;J[a+64>>2]=0;J[a>>2]=4088;b=J[f+4>>2];J[a+88>>2]=J[f>>2];J[a+92>>2]=b;b=J[f+12>>2];J[a+96>>2]=J[f+8>>2];J[a+100>>2]=b;break e;case 5:break f;default:break e}}a=Aj(128);J[a+4>>2]=j;J[a>>2]=3320;b=J[d+4>>2];J[a+8>>2]=J[d>>2];J[a+12>>2]=b;b=J[d+12>>2];J[a+16>>2]=J[d+8>>2];J[a+20>>2]=b;b=J[d+20>>2];J[a+24>>2]=J[d+16>>2];J[a+28>>2]=b;J[a+40>>2]=0;J[a+32>>2]=0;J[a+36>>2]=0;g:{c=J[d+28>>2];b=J[d+24>>2];if((c|0)!=(b|0)){c=c-b|0;if((c|0)<0){break a}b=Aj(c);J[a+32>>2]=b;J[a+36>>2]=b;J[a+40>>2]=b+(c&-4);c=J[d+24>>2];e=J[d+28>>2]-c|0;if((e|0)>0){b=Vi(b,c,e)+e|0}J[a+36>>2]=b}J[a>>2]=3264;b=J[f+4>>2];J[a+44>>2]=J[f>>2];J[a+48>>2]=b;b=J[f+12>>2];J[a+52>>2]=J[f+8>>2];J[a+56>>2]=b;b=a- -64|0;J[b>>2]=0;J[b+4>>2]=0;J[a+60>>2]=4952;J[a>>2]=4324;b=J[f+4>>2];J[a+72>>2]=J[f>>2];J[a+76>>2]=b;b=J[f+12>>2];J[a+80>>2]=J[f+8>>2];J[a+84>>2]=b;J[a+104>>2]=1065353216;J[a+108>>2]=-1;J[a+96>>2]=-1;J[a+100>>2]=-1;J[a+88>>2]=1;J[a+92>>2]=-1;J[a+60>>2]=4560;J[a+112>>2]=0;J[a+116>>2]=0;H[a+117|0]=0;H[a+118|0]=0;H[a+119|0]=0;H[a+120|0]=0;H[a+121|0]=0;H[a+122|0]=0;H[a+123|0]=0;H[a+124|0]=0;break g}}break d}a=J[g+44>>2];J[i+12>>2]=e;J[i+8>>2]=a;J[i+20>>2]=k;J[i+16>>2]=k+12;f=i+8|0;a=0;h:{i:{switch(b-1|0){case 0:a=Aj(60);J[a+4>>2]=j;J[a>>2]=3320;b=J[d+4>>2];J[a+8>>2]=J[d>>2];J[a+12>>2]=b;b=J[d+12>>2];J[a+16>>2]=J[d+8>>2];J[a+20>>2]=b;b=J[d+20>>2];J[a+24>>2]=J[d+16>>2];J[a+28>>2]=b;J[a+40>>2]=0;J[a+32>>2]=0;J[a+36>>2]=0;b=J[d+28>>2];c=J[d+24>>2];if((b|0)!=(c|0)){e=b-c|0;if((e|0)<0){break a}b=Aj(e);J[a+32>>2]=b;J[a+40>>2]=b+(e&-4);n=a,o=Vi(b,c,e)+e|0,J[n+36>>2]=o}b=J[f+4>>2];J[a+44>>2]=J[f>>2];J[a+48>>2]=b;b=J[f+12>>2];J[a+52>>2]=J[f+8>>2];J[a+56>>2]=b;J[a>>2]=4980;break h;case 1:a=Aj(60);J[a+4>>2]=j;J[a>>2]=3320;b=J[d+4>>2];J[a+8>>2]=J[d>>2];J[a+12>>2]=b;b=J[d+12>>2];J[a+16>>2]=J[d+8>>2];J[a+20>>2]=b;b=J[d+20>>2];J[a+24>>2]=J[d+16>>2];J[a+28>>2]=b;J[a+40>>2]=0;J[a+32>>2]=0;J[a+36>>2]=0;b=J[d+28>>2];c=J[d+24>>2];if((b|0)!=(c|0)){e=b-c|0;if((e|0)<0){break a}b=Aj(e);J[a+32>>2]=b;J[a+40>>2]=b+(e&-4);n=a,o=Vi(b,c,e)+e|0,J[n+36>>2]=o}b=J[f+4>>2];J[a+44>>2]=J[f>>2];J[a+48>>2]=b;b=J[f+12>>2];J[a+52>>2]=J[f+8>>2];J[a+56>>2]=b;J[a>>2]=5404;break h;case 3:a=Aj(112);J[a+4>>2]=j;J[a>>2]=3320;b=J[d+4>>2];J[a+8>>2]=J[d>>2];J[a+12>>2]=b;b=J[d+12>>2];J[a+16>>2]=J[d+8>>2];J[a+20>>2]=b;b=J[d+20>>2];J[a+24>>2]=J[d+16>>2];J[a+28>>2]=b;J[a+40>>2]=0;J[a+32>>2]=0;J[a+36>>2]=0;b=J[d+28>>2];c=J[d+24>>2];if((b|0)!=(c|0)){e=b-c|0;if((e|0)<0){break a}b=Aj(e);J[a+32>>2]=b;J[a+40>>2]=b+(e&-4);n=a,o=Vi(b,c,e)+e|0,J[n+36>>2]=o}b=J[f+4>>2];J[a+44>>2]=J[f>>2];J[a+48>>2]=b;b=J[f+12>>2];J[a+52>>2]=J[f+8>>2];J[a+56>>2]=b;J[a+60>>2]=0;J[a+64>>2]=0;J[a>>2]=5628;J[a+68>>2]=0;J[a+72>>2]=0;J[a+76>>2]=0;J[a+80>>2]=0;J[a+84>>2]=0;J[a+88>>2]=0;J[a+92>>2]=0;J[a+96>>2]=0;J[a+100>>2]=0;J[a+104>>2]=0;J[a+108>>2]=0;break h;case 2:a=Aj(92);J[a+4>>2]=j;J[a>>2]=3320;b=J[d+4>>2];J[a+8>>2]=J[d>>2];J[a+12>>2]=b;b=J[d+12>>2];J[a+16>>2]=J[d+8>>2];J[a+20>>2]=b;b=J[d+20>>2];J[a+24>>2]=J[d+16>>2];J[a+28>>2]=b;J[a+40>>2]=0;J[a+32>>2]=0;J[a+36>>2]=0;b=J[d+28>>2];c=J[d+24>>2];if((b|0)!=(c|0)){e=b-c|0;if((e|0)<0){break a}b=Aj(e);J[a+32>>2]=b;J[a+40>>2]=b+(e&-4);n=a,o=Vi(b,c,e)+e|0,J[n+36>>2]=o}b=J[f+4>>2];J[a+44>>2]=J[f>>2];J[a+48>>2]=b;b=J[f+12>>2];J[a+52>>2]=J[f+8>>2];J[a+56>>2]=b;J[a+60>>2]=0;J[a+64>>2]=0;J[a>>2]=5864;J[a+68>>2]=0;J[a+72>>2]=0;J[a+76>>2]=0;J[a+80>>2]=0;J[a+84>>2]=0;J[a+88>>2]=l;break h;case 4:a=Aj(104);J[a+4>>2]=j;J[a>>2]=3320;b=J[d+4>>2];J[a+8>>2]=J[d>>2];J[a+12>>2]=b;b=J[d+12>>2];J[a+16>>2]=J[d+8>>2];J[a+20>>2]=b;b=J[d+20>>2];J[a+24>>2]=J[d+16>>2];J[a+28>>2]=b;J[a+40>>2]=0;J[a+32>>2]=0;J[a+36>>2]=0;b=J[d+28>>2];c=J[d+24>>2];if((b|0)!=(c|0)){e=b-c|0;if((e|0)<0){break a}b=Aj(e);J[a+32>>2]=b;J[a+40>>2]=b+(e&-4);n=a,o=Vi(b,c,e)+e|0,J[n+36>>2]=o}b=J[f+4>>2];J[a+44>>2]=J[f>>2];J[a+48>>2]=b;b=J[f+12>>2];J[a+52>>2]=J[f+8>>2];J[a+56>>2]=b;J[a+84>>2]=0;J[a+76>>2]=0;J[a+80>>2]=0;J[a+60>>2]=0;J[a+64>>2]=0;J[a>>2]=6080;b=J[f+4>>2];J[a+88>>2]=J[f>>2];J[a+92>>2]=b;b=J[f+12>>2];J[a+96>>2]=J[f+8>>2];J[a+100>>2]=b;break h;case 5:break i;default:break h}}a=Aj(128);J[a+4>>2]=j;J[a>>2]=3320;b=J[d+4>>2];J[a+8>>2]=J[d>>2];J[a+12>>2]=b;b=J[d+12>>2];J[a+16>>2]=J[d+8>>2];J[a+20>>2]=b;b=J[d+20>>2];J[a+24>>2]=J[d+16>>2];J[a+28>>2]=b;J[a+40>>2]=0;J[a+32>>2]=0;J[a+36>>2]=0;j:{c=J[d+28>>2];b=J[d+24>>2];if((c|0)!=(b|0)){c=c-b|0;if((c|0)<0){break a}b=Aj(c);J[a+32>>2]=b;J[a+36>>2]=b;J[a+40>>2]=b+(c&-4);c=J[d+24>>2];e=J[d+28>>2]-c|0;if((e|0)>0){b=Vi(b,c,e)+e|0}J[a+36>>2]=b}J[a>>2]=5348;b=J[f+4>>2];J[a+44>>2]=J[f>>2];J[a+48>>2]=b;b=J[f+12>>2];J[a+52>>2]=J[f+8>>2];J[a+56>>2]=b;b=a- -64|0;J[b>>2]=0;J[b+4>>2]=0;J[a+60>>2]=6888;J[a>>2]=6304;b=J[f+4>>2];J[a+72>>2]=J[f>>2];J[a+76>>2]=b;b=J[f+12>>2];J[a+80>>2]=J[f+8>>2];J[a+84>>2]=b;J[a+104>>2]=1065353216;J[a+108>>2]=-1;J[a+96>>2]=-1;J[a+100>>2]=-1;J[a+88>>2]=1;J[a+92>>2]=-1;J[a+60>>2]=6524;J[a+112>>2]=0;J[a+116>>2]=0;H[a+117|0]=0;H[a+118|0]=0;H[a+119|0]=0;H[a+120|0]=0;H[a+121|0]=0;H[a+122|0]=0;H[a+123|0]=0;H[a+124|0]=0;break j}}}ia=i+32|0;e=a;if(a){break c}}e=Aj(44);J[e+4>>2]=m;J[e>>2]=3320;a=J[d+4>>2];J[e+8>>2]=J[d>>2];J[e+12>>2]=a;a=J[d+12>>2];J[e+16>>2]=J[d+8>>2];J[e+20>>2]=a;a=J[d+20>>2];J[e+24>>2]=J[d+16>>2];J[e+28>>2]=a;J[e+40>>2]=0;J[e+32>>2]=0;J[e+36>>2]=0;a=J[d+28>>2];b=J[d+24>>2];if((a|0)!=(b|0)){c=a-b|0;if((c|0)<0){break a}a=Aj(c);J[e+32>>2]=a;J[e+40>>2]=a+(c&-4);n=e,o=Vi(a,b,c)+c|0,J[n+36>>2]=o}J[e>>2]=6916;break c}a=J[h+32>>2];if(!a){break b}J[h+36>>2]=a;xj(a)}ia=h+48|0;return e|0}La();C()}function Hi(a,b){var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0;n=ia-32|0;ia=n;o=Aj(12);J[o+8>>2]=0;J[o+4>>2]=b;J[o>>2]=0;t=o+12|0;b=t;a:{b:{c:{d:{while(1){b=b-12|0;v=J[b+8>>2];j=J[b+4>>2];u=J[b>>2];if(u){q=0;if((v|0)>1e3){break a}J[n+24>>2]=0;J[n+16>>2]=0;J[n+20>>2]=0;f=1;c=J[a>>2];d=J[c+8>>2];g=J[c+12>>2];e=J[c+20>>2];l=d;d=J[c+16>>2];e:{if((g|0)<=(e|0)&l>>>0<=d>>>0|(e|0)>(g|0)){break e}g=K[d+J[c>>2]|0];d=d+1|0;e=d?e:e+1|0;J[c+16>>2]=d;J[c+20>>2]=e;Ij(n+16|0,g);if(g){d=J[a>>2];m=Hj(n+16|0);e=J[d+20>>2];i=J[d+16>>2];c=g;l=i+c|0;h=J[d+12>>2];e=c>>>0>l>>>0?e+1|0:e;if(l>>>0>M[d+8>>2]&(h|0)<=(e|0)|(e|0)>(h|0)){break e}Vi(m,i+J[d>>2]|0,g);e=J[d+20>>2];f=c+J[d+16>>2]|0;e=f>>>0>>0?e+1|0:e;J[d+16>>2]=f;J[d+20>>2]=e}j=Aj(24);c=j;J[c+4>>2]=0;J[c+8>>2]=0;c=c+16|0;J[c>>2]=0;J[c+4>>2]=0;J[j>>2]=j+4;J[j+12>>2]=c;e=ia-32|0;ia=e;g=u+12|0;c=n+16|0;p=ug(g,c);k=u+16|0;f:{if((p|0)==(k|0)){J[e+16>>2]=c;g:{h:{d=J[g+4>>2];i:{if(!d){f=g+4|0;c=f;break i}f=K[c+11|0];h=f<<24>>24<0;l=h?J[c>>2]:c;h=h?J[c+4>>2]:f;while(1){c=d;d=K[c+27|0];f=d<<24>>24<0;d=f?J[c+20>>2]:d;m=d>>>0>>0;j:{k:{l:{m:{i=m?d:h;n:{if(i){f=f?J[c+16>>2]:c+16|0;r=bj(l,f,i);if(!r){if(d>>>0>h>>>0){break n}break m}if((r|0)>=0){break m}break n}if(d>>>0<=h>>>0){break l}}f=c;d=J[c>>2];if(d){continue}break i}d=bj(f,l,i);if(d){break k}}if(m){break j}break h}if((d|0)>=0){break h}}d=J[c+4>>2];if(d){continue}break}f=c+4|0}d=Aj(32);l=d+16|0;h=J[e+16>>2];o:{if(H[h+11|0]>=0){m=J[h+4>>2];J[l>>2]=J[h>>2];J[l+4>>2]=m;J[l+8>>2]=J[h+8>>2];break o}Ej(l,J[h>>2],J[h+4>>2])}J[d+8>>2]=c;J[d>>2]=0;J[d+4>>2]=0;J[d+28>>2]=0;J[f>>2]=d;c=d;h=J[J[g>>2]>>2];if(h){J[g>>2]=h;c=J[f>>2]}qe(J[g+4>>2],c);J[g+8>>2]=J[g+8>>2]+1;c=1;break g}d=c;c=0}H[e+28|0]=c;J[e+24>>2]=d;d=J[e+24>>2];c=J[d+28>>2];J[d+28>>2]=j;if(!c){break f}kg(c+12|0,J[c+16>>2]);lg(c,J[c+4>>2]);xj(c);break f}if(!j){break f}kg(j+12|0,J[j+16>>2]);lg(j,J[j+4>>2]);xj(j)}ia=e+32|0;f=(k|0)!=(p|0)}if(H[n+27|0]<0){xj(J[n+16>>2])}if(f){break a}}q=0;if(!j){break a}J[n+16>>2]=0;if(!Ii(1,n+16|0,J[a>>2])){break a}p=0;w=J[n+16>>2];if(w){while(1){c=0;i=ia-32|0;ia=i;J[i+24>>2]=0;J[i+16>>2]=0;J[i+20>>2]=0;d=J[a>>2];f=J[d+8>>2];p:{q:{g=J[d+12>>2];e=J[d+20>>2];l=f;f=J[d+16>>2];r:{if((g|0)<=(e|0)&l>>>0<=f>>>0|(e|0)>(g|0)){break r}g=K[f+J[d>>2]|0];f=f+1|0;e=f?e:e+1|0;J[d+16>>2]=f;J[d+20>>2]=e;Ij(i+16|0,g);if(g){f=J[a>>2];m=Hj(i+16|0);e=J[f+20>>2];k=J[f+16>>2];d=g;l=k+d|0;h=J[f+12>>2];e=d>>>0>l>>>0?e+1|0:e;if(l>>>0>M[f+8>>2]&(h|0)<=(e|0)|(e|0)>(h|0)){break r}Vi(m,k+J[f>>2]|0,g);e=J[f+20>>2];g=d+J[f+16>>2]|0;e=g>>>0>>0?e+1|0:e;J[f+16>>2]=g;J[f+20>>2]=e}J[i+12>>2]=0;if(!Ii(1,i+12|0,J[a>>2])){break r}d=J[i+12>>2];if(!d){break r}f=J[a>>2];e=J[f+8>>2];g=J[f+16>>2];h=e-g|0;e=J[f+12>>2]-(J[f+20>>2]+(e>>>0>>0)|0)|0;if((e|0)<=0&d>>>0>h>>>0|(e|0)<0){break r}J[i+8>>2]=0;J[i>>2]=0;J[i+4>>2]=0;if((d|0)<0){break q}c=Aj(d);J[i>>2]=c;e=c+d|0;J[i+8>>2]=e;m=Xi(c,0,d);J[i+4>>2]=e;g=J[f+12>>2];r=g;e=J[f+20>>2];s:{x=J[f+8>>2];k=J[f+16>>2];l=d+k|0;y=l;e=d>>>0>l>>>0?e+1|0:e;l=e;if(x>>>0>>0&(e|0)>=(g|0)|(e|0)>(g|0)){break s}Vi(m,k+J[f>>2]|0,d);e=J[f+20>>2];c=d+J[f+16>>2]|0;e=c>>>0>>0?e+1|0:e;J[f+16>>2]=c;J[f+20>>2]=e;g=ia-48|0;ia=g;e=ug(j,i+16|0);if((e|0)!=(j+4|0)){c=J[e+4>>2];t:{if(!c){c=e;while(1){d=J[c+8>>2];f=J[d>>2]!=(c|0);c=d;if(f){continue}break}break t}while(1){d=c;c=J[c>>2];if(c){continue}break}}if((e|0)==J[j>>2]){J[j>>2]=d}J[j+8>>2]=J[j+8>>2]-1;f=J[j+4>>2];u:{v:{h=e;d=e;e=J[d>>2];if(e){c=J[h+4>>2];if(!c){break v}while(1){d=c;c=J[c>>2];if(c){continue}break}}e=J[d+4>>2];if(e){break v}e=0;m=1;break u}J[e+8>>2]=J[d+8>>2];m=0}k=J[d+8>>2];c=J[k>>2];w:{if((d|0)==(c|0)){J[k>>2]=e;if((d|0)==(f|0)){c=0;f=e;break w}c=J[k+4>>2];break w}J[k+4>>2]=e}s=!K[d+12|0];if((d|0)!=(h|0)){k=J[h+8>>2];J[d+8>>2]=k;J[k+(((h|0)!=J[J[h+8>>2]>>2])<<2)>>2]=d;k=J[h>>2];J[d>>2]=k;J[k+8>>2]=d;k=J[h+4>>2];J[d+4>>2]=k;if(k){J[k+8>>2]=d}H[d+12|0]=K[h+12|0];f=(f|0)==(h|0)?d:f}x:{if(s|!f){break x}if(m){while(1){e=K[c+12|0];y:{d=J[c+8>>2];if(J[d>>2]!=(c|0)){if(!e){H[c+12|0]=1;H[d+12|0]=0;e=J[d+4>>2];m=J[e>>2];J[d+4>>2]=m;if(m){J[m+8>>2]=d}J[e+8>>2]=J[d+8>>2];m=J[d+8>>2];J[(((d|0)!=J[m>>2])<<2)+m>>2]=e;J[e>>2]=d;J[d+8>>2]=e;d=c;c=J[c>>2];f=(c|0)==(f|0)?d:f;c=J[c+4>>2]}z:{A:{d=J[c>>2];B:{if(!(K[d+12|0]?0:d)){e=J[c+4>>2];if(K[e+12|0]?0:e){break B}H[c+12|0]=0;c=J[c+8>>2];C:{if((f|0)==(c|0)){c=f;break C}if(K[c+12|0]){break y}}H[c+12|0]=1;break x}e=J[c+4>>2];if(!e){break A}}if(K[e+12|0]){break A}d=c;break z}H[d+12|0]=1;H[c+12|0]=0;e=J[d+4>>2];J[c>>2]=e;if(e){J[e+8>>2]=c}J[d+8>>2]=J[c+8>>2];e=J[c+8>>2];J[((J[e>>2]!=(c|0))<<2)+e>>2]=d;J[d+4>>2]=c;J[c+8>>2]=d;e=c}c=J[d+8>>2];H[d+12|0]=K[c+12|0];H[c+12|0]=1;H[e+12|0]=1;d=J[c+4>>2];e=J[d>>2];J[c+4>>2]=e;if(e){J[e+8>>2]=c}J[d+8>>2]=J[c+8>>2];e=J[c+8>>2];J[(((c|0)!=J[e>>2])<<2)+e>>2]=d;J[d>>2]=c;J[c+8>>2]=d;break x}if(!e){H[c+12|0]=1;H[d+12|0]=0;e=J[c+4>>2];J[d>>2]=e;if(e){J[e+8>>2]=d}J[c+8>>2]=J[d+8>>2];e=J[d+8>>2];J[(((d|0)!=J[e>>2])<<2)+e>>2]=c;J[c+4>>2]=d;J[d+8>>2]=c;f=(d|0)==(f|0)?c:f;c=J[d>>2]}e=J[c>>2];D:{if(!(!e|K[e+12|0])){d=c;break D}d=J[c+4>>2];if(!(K[d+12|0]?0:d)){H[c+12|0]=0;c=J[c+8>>2];if((c|0)!=(f|0)?K[c+12|0]:0){break y}H[c+12|0]=1;break x}if(e){if(!K[e+12|0]){d=c;break D}d=J[c+4>>2]}H[d+12|0]=1;H[c+12|0]=0;e=J[d>>2];J[c+4>>2]=e;if(e){J[e+8>>2]=c}J[d+8>>2]=J[c+8>>2];e=J[c+8>>2];J[((J[e>>2]!=(c|0))<<2)+e>>2]=d;J[d>>2]=c;J[c+8>>2]=d;e=c}c=J[d+8>>2];H[d+12|0]=K[c+12|0];H[c+12|0]=1;H[e+12|0]=1;d=J[c>>2];e=J[d+4>>2];J[c>>2]=e;if(e){J[e+8>>2]=c}J[d+8>>2]=J[c+8>>2];e=J[c+8>>2];J[(((c|0)!=J[e>>2])<<2)+e>>2]=d;J[d+4>>2]=c;J[c+8>>2]=d;break x}d=c;c=J[c+8>>2];c=J[(((d|0)==J[c>>2])<<2)+c>>2];continue}}H[e+12|0]=1}c=J[h+28>>2];if(c){J[h+32>>2]=c;xj(c)}if(H[h+27|0]<0){xj(J[h+16>>2])}xj(h)}J[g+8>>2]=0;J[g>>2]=0;J[g+4>>2]=0;c=J[i+4>>2];d=J[i>>2];f=c-d|0;e=0;E:{F:{if((c|0)!=(d|0)){if((f|0)<0){break F}e=Aj(f);c=Xi(e,0,f);h=c+f|0;J[g+8>>2]=h;J[g+4>>2]=h;J[g>>2]=c;c=d}Vi(e,c,f);G:{if(H[i+27|0]>=0){J[g+24>>2]=J[i+24>>2];c=J[i+20>>2];J[g+16>>2]=J[i+16>>2];J[g+20>>2]=c;break G}Ej(g+16|0,J[i+16>>2],J[i+20>>2])}Ki(g+28|0,g);f=g+16|0;c=f;H:{I:{d=J[j+4>>2];J:{if(!d){e=j+4|0;c=e;break J}e=K[c+11|0];h=e<<24>>24<0;m=h?J[c>>2]:c;h=h?J[c+4>>2]:e;while(1){c=d;d=K[c+27|0];e=d<<24>>24<0;d=e?J[c+20>>2]:d;k=d>>>0>>0;K:{L:{M:{N:{s=k?d:h;O:{if(s){e=e?J[c+16>>2]:c+16|0;z=bj(m,e,s);if(!z){if(d>>>0>h>>>0){break O}break N}if((z|0)>=0){break N}break O}if(d>>>0<=h>>>0){break M}}e=c;d=J[c>>2];if(d){continue}break J}d=bj(e,m,s);if(d){break L}}if(k){break K}break I}if((d|0)>=0){break I}}d=J[c+4>>2];if(d){continue}break}e=c+4|0}d=Aj(40);J[d+24>>2]=J[f+8>>2];h=J[f+4>>2];J[d+16>>2]=J[f>>2];J[d+20>>2]=h;J[f>>2]=0;J[f+4>>2]=0;J[f+8>>2]=0;Ki(d+28|0,f+12|0);J[d+8>>2]=c;J[d>>2]=0;J[d+4>>2]=0;J[e>>2]=d;c=d;f=J[J[j>>2]>>2];if(f){J[j>>2]=f;c=J[e>>2]}qe(J[j+4>>2],c);J[j+8>>2]=J[j+8>>2]+1;c=1;break H}d=c;c=0}H[g+44|0]=c;J[g+40>>2]=d;c=J[g+28>>2];if(c){J[g+32>>2]=c;xj(c)}if(H[g+27|0]<0){xj(J[g+16>>2])}c=J[g>>2];if(c){J[g+4>>2]=c;xj(c)}ia=g+48|0;break E}La();C()}c=J[i>>2];if(c){break s}c=1;break r}J[i+4>>2]=c;xj(c);c=(l|0)<=(r|0)&x>>>0>=y>>>0|(l|0)<(r|0)}if(H[i+27|0]<0){xj(J[i+16>>2])}ia=i+32|0;break p}La();C()}if(!c){break a}p=p+1|0;if((w|0)!=(p|0)){continue}break}}J[n+12>>2]=0;if(!Ii(1,n+12|0,J[a>>2])){break b}c=J[a>>2];d=J[c+8>>2];e=J[c+16>>2];f=d-e|0;q=J[n+12>>2];c=J[c+12>>2]-(J[c+20>>2]+(d>>>0>>0)|0)|0;if(f>>>0>>0&(c|0)<=0|(c|0)<0){break b}if(q){p=0;g=((u|0)!=0)+v|0;while(1){P:{if(b>>>0>>0){J[b+8>>2]=g;J[b+4>>2]=0;J[b>>2]=j;b=b+12|0;q=J[n+12>>2];break P}e=b-o|0;c=(e|0)/12|0;b=c+1|0;if(b>>>0>=357913942){break d}d=(t-o|0)/12|0;f=d<<1;f=d>>>0>=178956970?357913941:b>>>0>>0?f:b;if(f){if(f>>>0>=357913942){break c}b=Aj(P(f,12))}else{b=0}d=b+P(c,12)|0;J[d+8>>2]=g;J[d+4>>2]=0;J[d>>2]=j;c=d+P((e|0)/-12|0,12)|0;if((e|0)>0){Vi(c,o,e)}t=b+P(f,12)|0;b=d+12|0;if(o){xj(o)}o=c}p=p+1|0;if(p>>>0>>0){continue}break}}if((b|0)!=(o|0)){continue}break}q=1;break a}La();C()}Za();C()}q=0}if(o){xj(o)}ia=n+32|0;return q}function hg(a,b,c,d,e){var f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0;h=ia-32|0;ia=h;J[b+32>>2]=d;J[b+40>>2]=c;J[b+4>>2]=e;dg(a,d,h+16|0);a:{if(J[a>>2]){break a}if(H[a+15|0]<0){xj(J[a+4>>2])}d=K[h+23|0];if((na[J[J[b>>2]+8>>2]](b)|0)!=(d|0)){b=Aj(64);H[b+50|0]=0;c=K[1349]|K[1350]<<8;H[b+48|0]=c;H[b+49|0]=c>>>8;c=K[1345]|K[1346]<<8|(K[1347]<<16|K[1348]<<24);d=K[1341]|K[1342]<<8|(K[1343]<<16|K[1344]<<24);H[b+40|0]=d;H[b+41|0]=d>>>8;H[b+42|0]=d>>>16;H[b+43|0]=d>>>24;H[b+44|0]=c;H[b+45|0]=c>>>8;H[b+46|0]=c>>>16;H[b+47|0]=c>>>24;c=K[1337]|K[1338]<<8|(K[1339]<<16|K[1340]<<24);d=K[1333]|K[1334]<<8|(K[1335]<<16|K[1336]<<24);H[b+32|0]=d;H[b+33|0]=d>>>8;H[b+34|0]=d>>>16;H[b+35|0]=d>>>24;H[b+36|0]=c;H[b+37|0]=c>>>8;H[b+38|0]=c>>>16;H[b+39|0]=c>>>24;c=K[1329]|K[1330]<<8|(K[1331]<<16|K[1332]<<24);d=K[1325]|K[1326]<<8|(K[1327]<<16|K[1328]<<24);H[b+24|0]=d;H[b+25|0]=d>>>8;H[b+26|0]=d>>>16;H[b+27|0]=d>>>24;H[b+28|0]=c;H[b+29|0]=c>>>8;H[b+30|0]=c>>>16;H[b+31|0]=c>>>24;c=K[1321]|K[1322]<<8|(K[1323]<<16|K[1324]<<24);d=K[1317]|K[1318]<<8|(K[1319]<<16|K[1320]<<24);H[b+16|0]=d;H[b+17|0]=d>>>8;H[b+18|0]=d>>>16;H[b+19|0]=d>>>24;H[b+20|0]=c;H[b+21|0]=c>>>8;H[b+22|0]=c>>>16;H[b+23|0]=c>>>24;c=K[1313]|K[1314]<<8|(K[1315]<<16|K[1316]<<24);d=K[1309]|K[1310]<<8|(K[1311]<<16|K[1312]<<24);H[b+8|0]=d;H[b+9|0]=d>>>8;H[b+10|0]=d>>>16;H[b+11|0]=d>>>24;H[b+12|0]=c;H[b+13|0]=c>>>8;H[b+14|0]=c>>>16;H[b+15|0]=c>>>24;c=K[1305]|K[1306]<<8|(K[1307]<<16|K[1308]<<24);d=K[1301]|K[1302]<<8|(K[1303]<<16|K[1304]<<24);H[b|0]=d;H[b+1|0]=d>>>8;H[b+2|0]=d>>>16;H[b+3|0]=d>>>24;H[b+4|0]=c;H[b+5|0]=c>>>8;H[b+6|0]=c>>>16;H[b+7|0]=c>>>24;J[a>>2]=-1;Ej(a+4|0,b,50);xj(b);break a}c=K[h+21|0];H[b+36|0]=c;e=K[h+22|0];H[b+37|0]=e;if((c-3&255)>>>0<=253){b=Aj(32);H[b+22|0]=0;c=K[1462]|K[1463]<<8|(K[1464]<<16|K[1465]<<24);d=K[1458]|K[1459]<<8|(K[1460]<<16|K[1461]<<24);H[b+14|0]=d;H[b+15|0]=d>>>8;H[b+16|0]=d>>>16;H[b+17|0]=d>>>24;H[b+18|0]=c;H[b+19|0]=c>>>8;H[b+20|0]=c>>>16;H[b+21|0]=c>>>24;c=K[1456]|K[1457]<<8|(K[1458]<<16|K[1459]<<24);d=K[1452]|K[1453]<<8|(K[1454]<<16|K[1455]<<24);H[b+8|0]=d;H[b+9|0]=d>>>8;H[b+10|0]=d>>>16;H[b+11|0]=d>>>24;H[b+12|0]=c;H[b+13|0]=c>>>8;H[b+14|0]=c>>>16;H[b+15|0]=c>>>24;c=K[1448]|K[1449]<<8|(K[1450]<<16|K[1451]<<24);d=K[1444]|K[1445]<<8|(K[1446]<<16|K[1447]<<24);H[b|0]=d;H[b+1|0]=d>>>8;H[b+2|0]=d>>>16;H[b+3|0]=d>>>24;H[b+4|0]=c;H[b+5|0]=c>>>8;H[b+6|0]=c>>>16;H[b+7|0]=c>>>24;J[a>>2]=-5;Ej(a+4|0,b,22);xj(b);break a}if(!((c|0)!=2|e>>>0<=(d?2:3)>>>0)){b=Aj(32);H[b+22|0]=0;c=K[1439]|K[1440]<<8|(K[1441]<<16|K[1442]<<24);d=K[1435]|K[1436]<<8|(K[1437]<<16|K[1438]<<24);H[b+14|0]=d;H[b+15|0]=d>>>8;H[b+16|0]=d>>>16;H[b+17|0]=d>>>24;H[b+18|0]=c;H[b+19|0]=c>>>8;H[b+20|0]=c>>>16;H[b+21|0]=c>>>24;c=K[1433]|K[1434]<<8|(K[1435]<<16|K[1436]<<24);d=K[1429]|K[1430]<<8|(K[1431]<<16|K[1432]<<24);H[b+8|0]=d;H[b+9|0]=d>>>8;H[b+10|0]=d>>>16;H[b+11|0]=d>>>24;H[b+12|0]=c;H[b+13|0]=c>>>8;H[b+14|0]=c>>>16;H[b+15|0]=c>>>24;c=K[1425]|K[1426]<<8|(K[1427]<<16|K[1428]<<24);d=K[1421]|K[1422]<<8|(K[1423]<<16|K[1424]<<24);H[b|0]=d;H[b+1|0]=d>>>8;H[b+2|0]=d>>>16;H[b+3|0]=d>>>24;H[b+4|0]=c;H[b+5|0]=c>>>8;H[b+6|0]=c>>>16;H[b+7|0]=c>>>24;J[a>>2]=-5;Ej(a+4|0,b,22);xj(b);break a}c=e|c<<8;I[J[b+32>>2]+38>>1]=c;b:{if((c&65535)>>>0<259|I[h+26>>1]>=0){break b}i=ia-16|0;ia=i;e=Aj(36);c=e;J[c+4>>2]=0;J[c+8>>2]=0;J[c+24>>2]=0;J[c+28>>2]=0;c=c+16|0;J[c>>2]=0;J[c+4>>2]=0;J[e>>2]=e+4;J[e+32>>2]=0;J[e+12>>2]=c;J[i>>2]=0;d=J[b+32>>2];j=ia-16|0;ia=j;c=0;c:{if(!e){break c}J[i>>2]=d;J[j+12>>2]=0;c=0;if(!Ii(1,j+12|0,d)){break c}m=J[j+12>>2];if(m){while(1){d:{if(Ii(1,j+8|0,J[i>>2])){c=Aj(28);J[c+4>>2]=0;J[c+8>>2]=0;d=c+16|0;J[d>>2]=0;J[d+4>>2]=0;J[c>>2]=c+4;J[c+12>>2]=d;J[c+24>>2]=J[j+8>>2];if(Hi(i,c)){break d}kg(c+12|0,J[c+16>>2]);lg(c,J[c+4>>2]);xj(c)}c=0;break c}f=ia-16|0;ia=f;J[f+8>>2]=c;e:{if(!c){break e}d=J[e+28>>2];f:{if(d>>>0>2]){J[f+8>>2]=0;J[d>>2]=c;J[e+28>>2]=d+4;break f}d=0;g:{h:{i:{g=J[e+24>>2];l=J[e+28>>2]-g>>2;c=l+1|0;if(c>>>0<1073741824){g=J[e+32>>2]-g|0;k=g>>1;c=g>>>0>=2147483644?1073741823:c>>>0>>0?k:c;if(c){if(c>>>0>=1073741824){break i}d=Aj(c<<2)}k=J[f+8>>2];J[f+8>>2]=0;g=(l<<2)+d|0;J[g>>2]=k;l=(c<<2)+d|0;k=g+4|0;d=J[e+28>>2];c=J[e+24>>2];if((d|0)==(c|0)){break h}while(1){d=d-4|0;o=J[d>>2];J[d>>2]=0;g=g-4|0;J[g>>2]=o;if((c|0)!=(d|0)){continue}break}J[e+32>>2]=l;d=J[e+28>>2];J[e+28>>2]=k;c=J[e+24>>2];J[e+24>>2]=g;if((c|0)==(d|0)){break g}while(1){d=d-4|0;g=J[d>>2];J[d>>2]=0;if(g){kg(g+12|0,J[g+16>>2]);lg(g,J[g+4>>2]);xj(g)}if((c|0)!=(d|0)){continue}break}break g}La();C()}Za();C()}J[e+32>>2]=l;J[e+28>>2]=k;J[e+24>>2]=g}if(c){xj(c)}}c=J[f+8>>2];J[f+8>>2]=0;if(!c){break e}kg(c+12|0,J[c+16>>2]);lg(c,J[c+4>>2]);xj(c)}ia=f+16|0;n=n+1|0;if((m|0)!=(n|0)){continue}break}}c=Hi(i,e)}ia=j+16|0;j:{if(c){d=J[b+4>>2];c=J[d+4>>2];J[d+4>>2]=e;if(c){gg(c)}J[a>>2]=0;J[a+4>>2]=0;J[a+8>>2]=0;J[a+12>>2]=0;break j}c=Aj(32);H[c+26|0]=0;d=K[1614]|K[1615]<<8;H[c+24|0]=d;H[c+25|0]=d>>>8;d=K[1610]|K[1611]<<8|(K[1612]<<16|K[1613]<<24);f=K[1606]|K[1607]<<8|(K[1608]<<16|K[1609]<<24);H[c+16|0]=f;H[c+17|0]=f>>>8;H[c+18|0]=f>>>16;H[c+19|0]=f>>>24;H[c+20|0]=d;H[c+21|0]=d>>>8;H[c+22|0]=d>>>16;H[c+23|0]=d>>>24;d=K[1602]|K[1603]<<8|(K[1604]<<16|K[1605]<<24);f=K[1598]|K[1599]<<8|(K[1600]<<16|K[1601]<<24);H[c+8|0]=f;H[c+9|0]=f>>>8;H[c+10|0]=f>>>16;H[c+11|0]=f>>>24;H[c+12|0]=d;H[c+13|0]=d>>>8;H[c+14|0]=d>>>16;H[c+15|0]=d>>>24;d=K[1594]|K[1595]<<8|(K[1596]<<16|K[1597]<<24);f=K[1590]|K[1591]<<8|(K[1592]<<16|K[1593]<<24);H[c|0]=f;H[c+1|0]=f>>>8;H[c+2|0]=f>>>16;H[c+3|0]=f>>>24;H[c+4|0]=d;H[c+5|0]=d>>>8;H[c+6|0]=d>>>16;H[c+7|0]=d>>>24;J[a>>2]=-1;Ej(a+4|0,c,26);xj(c);J[i+8>>2]=0;gg(e)}ia=i+16|0;if(J[a>>2]){break a}if(H[a+15|0]>=0){break b}xj(J[a+4>>2])}if(!(na[J[J[b>>2]+12>>2]](b)|0)){b=Aj(48);H[b+33|0]=0;H[b+32|0]=K[1419];c=K[1415]|K[1416]<<8|(K[1417]<<16|K[1418]<<24);d=K[1411]|K[1412]<<8|(K[1413]<<16|K[1414]<<24);H[b+24|0]=d;H[b+25|0]=d>>>8;H[b+26|0]=d>>>16;H[b+27|0]=d>>>24;H[b+28|0]=c;H[b+29|0]=c>>>8;H[b+30|0]=c>>>16;H[b+31|0]=c>>>24;c=K[1407]|K[1408]<<8|(K[1409]<<16|K[1410]<<24);d=K[1403]|K[1404]<<8|(K[1405]<<16|K[1406]<<24);H[b+16|0]=d;H[b+17|0]=d>>>8;H[b+18|0]=d>>>16;H[b+19|0]=d>>>24;H[b+20|0]=c;H[b+21|0]=c>>>8;H[b+22|0]=c>>>16;H[b+23|0]=c>>>24;c=K[1399]|K[1400]<<8|(K[1401]<<16|K[1402]<<24);d=K[1395]|K[1396]<<8|(K[1397]<<16|K[1398]<<24);H[b+8|0]=d;H[b+9|0]=d>>>8;H[b+10|0]=d>>>16;H[b+11|0]=d>>>24;H[b+12|0]=c;H[b+13|0]=c>>>8;H[b+14|0]=c>>>16;H[b+15|0]=c>>>24;c=K[1391]|K[1392]<<8|(K[1393]<<16|K[1394]<<24);d=K[1387]|K[1388]<<8|(K[1389]<<16|K[1390]<<24);H[b|0]=d;H[b+1|0]=d>>>8;H[b+2|0]=d>>>16;H[b+3|0]=d>>>24;H[b+4|0]=c;H[b+5|0]=c>>>8;H[b+6|0]=c>>>16;H[b+7|0]=c>>>24;J[a>>2]=-1;Ej(a+4|0,b,33);xj(b);break a}if(!(na[J[J[b>>2]+20>>2]](b)|0)){b=eg(h,1617);J[a>>2]=-1;a=a+4|0;if(H[b+11|0]>=0){c=J[b+4>>2];J[a>>2]=J[b>>2];J[a+4>>2]=c;J[a+8>>2]=J[b+8>>2];break a}Ej(a,J[b>>2],J[b+4>>2]);if(H[b+11|0]>=0){break a}xj(J[b>>2]);break a}if(!(na[J[J[b>>2]+24>>2]](b)|0)){b=eg(h,1352);J[a>>2]=-1;a=a+4|0;if(H[b+11|0]>=0){c=J[b+4>>2];J[a>>2]=J[b>>2];J[a+4>>2]=c;J[a+8>>2]=J[b+8>>2];break a}Ej(a,J[b>>2],J[b+4>>2]);if(H[b+11|0]>=0){break a}xj(J[b>>2]);break a}J[a>>2]=0;J[a+4>>2]=0;J[a+8>>2]=0;J[a+12>>2]=0}ia=h+32|0}function Jb(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=Q(0),q=0,r=0,s=0;f=ia-720|0;ia=f;a:{b:{c:{d:{e:{f:{g:{h:{i:{if(L[b+38>>1]>=515){J[f+680>>2]=0;J[f+672>>2]=0;J[f+676>>2]=0;if((na[J[J[a>>2]+24>>2]](a)|0)<=0){break d}while(1){c=na[J[J[a>>2]+20>>2]](a,m)|0;d=J[J[J[(na[J[J[a>>2]+28>>2]](a)|0)+4>>2]+8>>2]+(c<<2)>>2];if(J[d+28>>2]==9){g=J[f+672>>2];c=J[f+676>>2]-g>>2;e=K[d+24|0];j:{if(c>>>0>>0){Oa(f+672|0,e-c|0);break j}if(c>>>0<=e>>>0){break j}J[f+676>>2]=g+(e<<2)}k=0;c=J[b+20>>2];j=J[b+16>>2];d=e<<2;h=j+d|0;g=J[b+12>>2];c=d>>>0>h>>>0?c+1|0:c;if(h>>>0>M[b+8>>2]&(g|0)<=(c|0)|(c|0)>(g|0)){break b}Vi(J[f+672>>2],j+J[b>>2]|0,d);c=J[b+20>>2];g=d+J[b+16>>2]|0;c=g>>>0>>0?c+1|0:c;J[b+16>>2]=g;J[b+20>>2]=c;l=J[b+12>>2];j=l;h=g+4|0;d=h>>>0<4?c+1|0:c;n=J[b+8>>2];if(n>>>0>>0&(d|0)>=(j|0)|(d|0)>(j|0)){break b}o=J[b>>2];j=o+g|0;j=K[j|0]|K[j+1|0]<<8|(K[j+2|0]<<16|K[j+3|0]<<24);J[b+16>>2]=h;J[b+20>>2]=d;if((d|0)>=(l|0)&h>>>0>=n>>>0|(d|0)>(l|0)){break b}d=K[h+o|0];g=g+5|0;c=g>>>0<5?c+1|0:c;J[b+16>>2]=g;J[b+20>>2]=c;if(d>>>0>31){break b}p=(x(2,j),D());J[f+20>>2]=-1;J[f+16>>2]=1880;J[f+32>>2]=0;J[f+36>>2]=0;J[f+24>>2]=0;J[f+28>>2]=0;c=f+16|0;g=J[f+672>>2];h=d-1|0;if(h>>>0<=29){J[c+4>>2]=d;Sa(c+8|0,g,g+(e<<2)|0);N[c+20>>2]=p}k:{if(h>>>0>=30){break k}if(!_a(f+16|0,J[J[a+60>>2]+((J[a+40>>2]-J[a+36>>2]|0)/24<<2)>>2])){break k}c=J[a+40>>2];l:{if((c|0)!=J[a+44>>2]){J[c>>2]=1880;d=J[f+20>>2];J[c+16>>2]=0;J[c+8>>2]=0;J[c+12>>2]=0;J[c+4>>2]=d;d=J[f+28>>2];e=J[f+24>>2];if((d|0)!=(e|0)){e=d-e|0;if((e|0)<0){break i}d=Aj(e);J[c+8>>2]=d;J[c+12>>2]=d;J[c+16>>2]=d+(e&-4);g=J[f+24>>2];e=J[f+28>>2]-g|0;if((e|0)>0){d=Vi(d,g,e)+e|0}J[c+12>>2]=d}N[c+20>>2]=N[f+36>>2];J[a+40>>2]=c+24;break l}m:{n:{o:{p:{g=J[a+40>>2];d=J[a+36>>2];e=(g-d|0)/24|0;c=e+1|0;if(c>>>0<178956971){h=(J[a+44>>2]-d|0)/24|0;j=h<<1;h=h>>>0>=89478485?178956970:c>>>0>>0?j:c;if(h){if(h>>>0>=178956971){break p}k=Aj(P(h,24))}e=P(e,24)+k|0;J[e>>2]=1880;c=J[f+20>>2];J[e+16>>2]=0;J[e+8>>2]=0;J[e+12>>2]=0;J[e+4>>2]=c;c=J[f+28>>2];j=J[f+24>>2];if((c|0)!=(j|0)){c=c-j|0;if((c|0)<0){break o}l=Aj(c);J[e+8>>2]=l;J[e+16>>2]=l+(c&-4);r=e,s=Vi(l,j,c)+c|0,J[r+12>>2]=s}c=P(h,24)+k|0;N[e+20>>2]=N[f+36>>2];h=e+24|0;if((d|0)==(g|0)){break n}while(1){e=e-24|0;J[e>>2]=1880;g=g-24|0;J[e+4>>2]=J[g+4>>2];J[e+8>>2]=J[g+8>>2];J[e+12>>2]=J[g+12>>2];J[e+16>>2]=J[g+16>>2];J[g+16>>2]=0;J[g+8>>2]=0;J[g+12>>2]=0;N[e+20>>2]=N[g+20>>2];if((d|0)!=(g|0)){continue}break}J[a+44>>2]=c;k=J[a+40>>2];J[a+40>>2]=h;g=J[a+36>>2];J[a+36>>2]=e;if((g|0)==(k|0)){break m}while(1){k=k-24|0;na[J[J[k>>2]>>2]](k)|0;if((g|0)!=(k|0)){continue}break}break m}La();C()}Za();C()}La();C()}J[a+44>>2]=c;J[a+40>>2]=h;J[a+36>>2]=e}if(g){xj(g)}}k=1}J[f+16>>2]=1880;c=J[f+24>>2];if(c){J[f+28>>2]=c;xj(c)}if(!k){break c}}m=m+1|0;if((na[J[J[a>>2]+24>>2]](a)|0)>(m|0)){continue}break}break d}m=na[J[J[a>>2]+24>>2]](a)|0;J[f+712>>2]=0;J[f+704>>2]=0;J[f+708>>2]=0;if(m){if(m>>>0>=214748365){break h}c=P(m,20);d=Aj(c);J[f+704>>2]=d;J[f+712>>2]=c+d;c=c-20|0;c=(c-((c>>>0)%20|0)|0)+20|0;r=f,s=Xi(d,0,c)+c|0,J[r+708>>2]=s;while(1){c=na[J[J[a>>2]+20>>2]](a,i)|0;d=J[J[J[(na[J[J[a>>2]+28>>2]](a)|0)+4>>2]+8>>2]+(c<<2)>>2];h=J[d+28>>2];c=h-1|0;if(c>>>0<=10){c=J[(c<<2)+13632>>2]}else{c=-1}j=(c|0)>0?c:0;if(j>>>0>4){break f}c=J[f+704>>2]+P(i,20)|0;l=K[d+24|0];J[c+16>>2]=l;J[c+12>>2]=j;J[c+8>>2]=h;J[c+4>>2]=e;J[c>>2]=d;e=e+l|0;i=i+1|0;if((m|0)!=(i|0)){continue}break}}c=na[J[J[a>>2]+20>>2]](a,0)|0;n=J[J[J[(na[J[J[a>>2]+28>>2]](a)|0)+4>>2]+8>>2]+(c<<2)>>2];H[n+84|0]=1;J[n+72>>2]=J[n+68>>2];i=J[b+12>>2];c=i;d=J[b+20>>2];j=J[b+8>>2];h=J[b+16>>2];if((c|0)<=(d|0)&j>>>0<=h>>>0|(c|0)<(d|0)){break f}o=J[b>>2];q=K[o+h|0];c=d;l=h+1|0;c=l?c:c+1|0;J[b+16>>2]=l;J[b+20>>2]=c;q:{switch(q|0){case 0:a=J[f+704>>2];if((J[f+708>>2]-a|0)!=20){break e}if(J[a+16>>2]!=3){break f}r:{if(j>>>0<=l>>>0&(c|0)>=(i|0)|(c|0)>(i|0)){break r}c=d;a=h+2|0;c=a>>>0<2?c+1|0:c;J[b+16>>2]=a;J[b+20>>2]=c;c=d;d=h+6|0;c=d>>>0<6?c+1|0:c;if(d>>>0>j>>>0&(c|0)>=(i|0)|(c|0)>(i|0)){break r}a=a+o|0;a=K[a|0]|K[a+1|0]<<8|(K[a+2|0]<<16|K[a+3|0]<<24);J[b+16>>2]=d;J[b+20>>2]=c;db(n,a);i=f+672|0;J[i+20>>2]=0;J[i+12>>2]=0;J[i+16>>2]=0;J[i>>2]=0;J[i+4>>2]=0;J[i+20>>2]=a;d=ub(f+16|0,f+704|0);e=ia-32|0;ia=e;J[e+24>>2]=0;J[e+16>>2]=0;J[e+20>>2]=0;h=J[b+12>>2];c=J[b+20>>2];a=c;j=J[b+16>>2];k=j+4|0;c=k>>>0<4?c+1|0:c;l=J[b+8>>2];s:{if(l>>>0>>0&(c|0)>=(h|0)|(c|0)>(h|0)){break s}n=J[b>>2];m=n+j|0;m=K[m|0]|K[m+1|0]<<8|(K[m+2|0]<<16|K[m+3|0]<<24);J[b+16>>2]=k;J[b+20>>2]=c;t:{u:{switch(m-2|0){case 1:if((c|0)>=(h|0)&k>>>0>=l>>>0|(c|0)>(h|0)){break s}k=H[k+n|0];c=a;a=j+5|0;c=a>>>0<5?c+1|0:c;J[b+16>>2]=a;J[b+20>>2]=c;J[i+8>>2]=k;if((k|0)==1){if(Ti(i,b,e+16|0)){break t}break s}aj(1846,23,J[3455]);break s;default:aj(1821,24,J[3455]);break s;case 0:break u}}if(!Ti(i,b,e+16|0)){break s}}J[e+8>>2]=J[e+16>>2];J[e>>2]=J[e+20>>2];c=ia-32|0;ia=c;a=J[i>>2];p=N[i+4>>2];h=c+24|0;J[h>>2]=1065353216;k=-1<0){N[h>>2]=p/Q(a|0)}i=J[e+8>>2];m=J[e>>2];if((i|0)!=(m|0)){a=J[d+28>>2];while(1){b=J[i>>2];g=J[i+4>>2];p=N[h>>2];N[c+16>>2]=p*Q(J[i+8>>2]-k|0);N[c+12>>2]=p*Q(g-k|0);N[c+8>>2]=p*Q(b-k|0);b=a;j=J[d+16>>2];g=J[j>>2];if(!K[g+84|0]){b=J[J[g+68>>2]+(a<<2)>>2]}if(M[g+80>>2]>b>>>0){a=J[g+40>>2];Vi(J[J[g>>2]>>2]+P(a,b)|0,(c+8|0)+(J[j+4>>2]<<2)|0,a);m=J[e>>2];a=J[d+28>>2]}a=a+1|0;J[d+28>>2]=a;i=i+12|0;if((m|0)!=(i|0)){continue}break}}ia=c+32|0;g=1}a=J[e+16>>2];if(a){J[e+20>>2]=a;xj(a)}ia=e+32|0;Ib(d);k=1;if(g){break f}}k=0;break f;case 1:break q;default:break f}}if(j>>>0<=l>>>0&(c|0)>=(i|0)|(c|0)>(i|0)){break f}g=K[l+o|0];c=d;l=h+2|0;c=l>>>0<2?c+1|0:c;J[b+16>>2]=l;J[b+20>>2]=c;if(g>>>0>=7){J[f>>2]=g;cj(1698,f);break f}c=d;d=h+6|0;c=d>>>0<6?c+1|0:c;h=d;if(d>>>0>j>>>0&(c|0)>=(i|0)|(c|0)>(i|0)){break f}d=l+o|0;d=K[d|0]|K[d+1|0]<<8|(K[d+2|0]<<16|K[d+3|0]<<24);J[b+16>>2]=h;J[b+20>>2]=c;if(m){i=0;while(1){c=na[J[J[a>>2]+20>>2]](a,i)|0;c=J[J[J[(na[J[J[a>>2]+28>>2]](a)|0)+4>>2]+8>>2]+(c<<2)>>2];db(c,d);H[c+84|0]=1;J[c+72>>2]=J[c+68>>2];i=i+1|0;if((m|0)!=(i|0)){continue}break}}a=ub(f+672|0,f+704|0);v:{w:{switch(g|0){case 1:c=xb(f+16|0,e);b=yb(c,b,a);wb(c);if(!b){break g}break v;case 2:c=Bb(f+16|0,e);b=zb(c,b,a);Ab(c);if(!b){break g}break v;case 3:c=Bb(f+16|0,e);b=Cb(c,b,a);Ab(c);if(!b){break g}break v;case 4:c=Fb(f+16|0,e);b=Db(c,b,a);Eb(c);if(!b){break g}break v;case 5:c=Fb(f+16|0,e);b=Gb(c,b,a);Eb(c);if(!b){break g}break v;case 6:c=Fb(f+16|0,e);b=Hb(c,b,a);Eb(c);if(b){break v}break g;case 0:break w;default:break g}}c=xb(f+16|0,e);b=vb(c,b,a);wb(c);if(!b){break g}}Ib(a);k=1;break f}La();C()}La();C()}Ib(a)}a=J[f+704>>2]}if(!a){break a}J[f+708>>2]=a;xj(a);break a}k=1;if(J[a+52>>2]==J[a+48>>2]){break b}while(1){if(!Kb(1,f+16|0,b)){break c}c=J[a+48>>2];d=J[f+16>>2];J[c+(i<<2)>>2]=d>>>1^0-(d&1);i=i+1|0;if(i>>>0>2]-c>>2>>>0){continue}break}break b}k=0}a=J[f+672>>2];if(!a){break a}J[f+676>>2]=a;xj(a)}ia=f+720|0;return k|0}function Yh(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0;m=ia-16|0;ia=m;J[m+12>>2]=b;b=Aj(32);J[m>>2]=b;J[m+4>>2]=24;J[m+8>>2]=-2147483616;c=K[1229]|K[1230]<<8|(K[1231]<<16|K[1232]<<24);d=K[1225]|K[1226]<<8|(K[1227]<<16|K[1228]<<24);H[b+16|0]=d;H[b+17|0]=d>>>8;H[b+18|0]=d>>>16;H[b+19|0]=d>>>24;H[b+20|0]=c;H[b+21|0]=c>>>8;H[b+22|0]=c>>>16;H[b+23|0]=c>>>24;c=K[1221]|K[1222]<<8|(K[1223]<<16|K[1224]<<24);d=K[1217]|K[1218]<<8|(K[1219]<<16|K[1220]<<24);H[b+8|0]=d;H[b+9|0]=d>>>8;H[b+10|0]=d>>>16;H[b+11|0]=d>>>24;H[b+12|0]=c;H[b+13|0]=c>>>8;H[b+14|0]=c>>>16;H[b+15|0]=c>>>24;c=K[1213]|K[1214]<<8|(K[1215]<<16|K[1216]<<24);d=K[1209]|K[1210]<<8|(K[1211]<<16|K[1212]<<24);H[b|0]=d;H[b+1|0]=d>>>8;H[b+2|0]=d>>>16;H[b+3|0]=d>>>24;H[b+4|0]=c;H[b+5|0]=c>>>8;H[b+6|0]=c>>>16;H[b+7|0]=c>>>24;H[b+24|0]=0;l=ia-48|0;ia=l;f=J[m+12>>2];d=a;a=a+16|0;b=J[a>>2];a:{b:{if(!b){break b}c=a;while(1){e=(f|0)>J[b+16>>2];c=e?c:b;b=J[(e?b+4|0:b)>>2];if(b){continue}break}if((a|0)==(c|0)){break b}if((f|0)>=J[c+16>>2]){break a}}J[l+28>>2]=0;J[l+32>>2]=0;x=l+24|0;J[l+24>>2]=x|4;a=l+16|0;J[a>>2]=0;J[a+4>>2]=0;J[l+8>>2]=f;J[l+12>>2]=a;v=l+8|0;a=v;w=ia-16|0;ia=w;t=d+12|0;c=J[t+4>>2];c:{d:{if(!c){o=t+4|0;d=o;break d}a=J[a>>2];while(1){d=c;b=J[c+16>>2];if((b|0)>(a|0)){o=d;c=J[d>>2];if(c){continue}break d}if((a|0)<=(b|0)){g=d;a=0;break c}c=J[d+4>>2];if(c){continue}break}o=d+4|0}g=Aj(32);b=J[v>>2];q=g+24|0;a=q;J[a>>2]=0;J[a+4>>2]=0;J[g+16>>2]=b;r=g+20|0;J[r>>2]=a;c=J[v+4>>2];y=v+8|0;if((c|0)!=(y|0)){while(1){p=ia-16|0;ia=p;a=p+8|0;k=c+16|0;e:{f:{g:{h:{i:{j:{k:{f=q;e=r+4|0;l:{if((f|0)==(e|0)){break l}b=K[f+27|0];h=b<<24>>24<0;i=K[k+11|0];n=i<<24>>24;j=(n|0)<0;i=j?J[k+4>>2]:i;b=h?J[f+20>>2]:b;s=i>>>0>b>>>0;u=s?b:i;if(u){j=j?J[k>>2]:k;h=h?J[f+16>>2]:f+16|0;z=bj(j,h,u);if(!z){if(b>>>0>i>>>0){break l}break k}if((z|0)>=0){break k}break l}if(b>>>0<=i>>>0){break j}}h=J[f>>2];m:{a=f;n:{if((a|0)==J[r>>2]){break n}o:{if(!h){b=f;while(1){a=J[b+8>>2];i=J[a>>2]==(b|0);b=a;if(i){continue}break}break o}b=h;while(1){a=b;b=J[b+4>>2];if(b){continue}break}}i=K[k+11|0];s=i<<24>>24;b=(s|0)<0;j=K[a+27|0];n=j<<24>>24<0;p:{i=b?J[k+4>>2]:i;j=n?J[a+20>>2]:j;u=i>>>0>>0?i:j;if(u){b=bj(n?J[a+16>>2]:a+16|0,b?J[k>>2]:k,u);if(b){break p}}if(i>>>0>j>>>0){break n}break m}if((b|0)>=0){break m}}if(!h){J[p+12>>2]=f;a=f;break e}J[p+12>>2]=a;a=a+4|0;break e}b=J[e>>2];if(!b){J[p+12>>2]=e;a=e;break e}h=(s|0)<0?J[k>>2]:k;f=e;while(1){a=b;b=K[b+27|0];e=b<<24>>24<0;b=e?J[a+20>>2]:b;k=b>>>0>>0;q:{r:{s:{t:{n=k?b:i;u:{if(n){e=e?J[a+16>>2]:a+16|0;j=bj(h,e,n);if(!j){if(b>>>0>i>>>0){break u}break t}if((j|0)>=0){break t}break u}if(b>>>0<=i>>>0){break s}}f=a;b=J[a>>2];if(b){continue}break g}b=bj(e,h,n);if(b){break r}}if(k){break q}break g}if((b|0)>=0){break g}}f=a+4|0;b=J[a+4>>2];if(b){continue}break}break g}b=bj(h,j,u);if(b){break i}}if(s){break h}break f}if((b|0)>=0){break f}}h=J[f+4>>2];v:{if(!h){b=f;while(1){a=J[b+8>>2];j=J[a>>2]!=(b|0);b=a;if(j){continue}break}break v}b=h;while(1){a=b;b=J[b>>2];if(b){continue}break}}w:{x:{if((a|0)==(e|0)){break x}j=K[a+27|0];b=j<<24>>24<0;y:{j=b?J[a+20>>2]:j;s=i>>>0>j>>>0?j:i;if(s){b=bj((n|0)<0?J[k>>2]:k,b?J[a+16>>2]:a+16|0,s);if(b){break y}}if(i>>>0>>0){break x}break w}if((b|0)>=0){break w}}if(!h){J[p+12>>2]=f;a=f+4|0;break e}J[p+12>>2]=a;break e}b=J[e>>2];if(!b){J[p+12>>2]=e;a=e;break e}h=(n|0)<0?J[k>>2]:k;f=e;while(1){a=b;b=K[b+27|0];e=b<<24>>24<0;b=e?J[a+20>>2]:b;k=b>>>0>>0;z:{A:{B:{C:{n=k?b:i;D:{if(n){e=e?J[a+16>>2]:a+16|0;j=bj(h,e,n);if(!j){if(b>>>0>i>>>0){break D}break C}if((j|0)>=0){break C}break D}if(b>>>0<=i>>>0){break B}}f=a;b=J[a>>2];if(b){continue}break g}b=bj(e,h,n);if(b){break A}}if(k){break z}break g}if((b|0)>=0){break g}}f=a+4|0;b=J[a+4>>2];if(b){continue}break}}J[p+12>>2]=a;a=f;break e}J[p+12>>2]=f;J[a>>2]=f}f=a;a=J[a>>2];if(a){b=0}else{a=Aj(40);b=a+16|0;E:{if(H[c+27|0]>=0){e=J[c+20>>2];J[b>>2]=J[c+16>>2];J[b+4>>2]=e;J[b+8>>2]=J[c+24>>2];break E}Ej(b,J[c+16>>2],J[c+20>>2])}b=a+28|0;F:{if(H[c+39|0]>=0){e=J[c+32>>2];J[b>>2]=J[c+28>>2];J[b+4>>2]=e;J[b+8>>2]=J[c+36>>2];break F}Ej(b,J[c+28>>2],J[c+32>>2])}J[a+8>>2]=J[p+12>>2];J[a>>2]=0;J[a+4>>2]=0;J[f>>2]=a;b=a;e=J[J[r>>2]>>2];if(e){J[r>>2]=e;b=J[f>>2]}qe(J[r+4>>2],b);J[r+8>>2]=J[r+8>>2]+1;b=1}H[w+12|0]=b;J[w+8>>2]=a;ia=p+16|0;b=J[c+4>>2];G:{if(b){while(1){c=b;b=J[b>>2];if(b){continue}break G}}while(1){a=c;c=J[c+8>>2];if((a|0)!=J[c>>2]){continue}break}}if((c|0)!=(y|0)){continue}break}}J[g+8>>2]=d;J[g>>2]=0;J[g+4>>2]=0;J[o>>2]=g;c=g;a=J[J[t>>2]>>2];if(a){J[t>>2]=a;c=J[o>>2]}qe(J[t+4>>2],c);J[t+8>>2]=J[t+8>>2]+1;a=1}H[l+44|0]=a;J[l+40>>2]=g;ia=w+16|0;c=J[l+40>>2];pe(v|4,J[l+16>>2]);pe(x,J[l+28>>2])}f=ia-48|0;ia=f;d=f+8|0;e=ia-32|0;ia=e;o=e+32|0;b=o;a=e+21|0;H:{if((b|0)==(a|0)){break H}}g=b-a|0;I:{if((g|0)<=9){h=61;if((g|0)<(M[3724]<=1|0)){break I}}H[a|0]=49;b=a+1|0;h=0}J[e+12>>2]=h;J[e+8>>2]=b;h=ia-16|0;ia=h;g=ia-16|0;ia=g;J:{q=J[e+8>>2];e=q-a|0;if(e>>>0<=4294967279){K:{if(e>>>0<11){H[d+11|0]=e;b=d;break K}if(e>>>0>=11){k=e+16&-16;b=k-1|0;b=(b|0)==11?k:b}else{b=10}k=b+1|0;b=Aj(k);J[d>>2]=b;J[d+8>>2]=k|-2147483648;J[d+4>>2]=e}while(1){if((a|0)!=(q|0)){H[b|0]=K[a|0];b=b+1|0;a=a+1|0;continue}break}H[g+15|0]=0;H[b|0]=K[g+15|0];ia=g+16|0;break J}fg();C()}ia=h+16|0;ia=o;J[f+32>>2]=m;L:{M:{a=c+20|0;d=J[a+4>>2];N:{if(!d){g=a+4|0;c=g;break N}b=K[m+11|0];c=b<<24>>24<0;e=c?J[m>>2]:m;b=c?J[m+4>>2]:b;while(1){c=d;d=K[c+27|0];g=d<<24>>24<0;d=g?J[c+20>>2]:d;o=d>>>0>>0;O:{P:{Q:{R:{h=o?d:b;S:{if(h){g=g?J[c+16>>2]:c+16|0;q=bj(e,g,h);if(!q){if(b>>>0>>0){break S}break R}if((q|0)>=0){break R}break S}if(b>>>0>=d>>>0){break Q}}g=c;d=J[c>>2];if(d){continue}break N}d=bj(g,e,h);if(d){break P}}if(o){break O}break M}if((d|0)>=0){break M}}d=J[c+4>>2];if(d){continue}break}g=c+4|0}d=Aj(40);e=d+16|0;b=J[f+32>>2];T:{if(H[b+11|0]>=0){o=J[b+4>>2];J[e>>2]=J[b>>2];J[e+4>>2]=o;J[e+8>>2]=J[b+8>>2];break T}Ej(e,J[b>>2],J[b+4>>2])}J[d+8>>2]=c;J[d>>2]=0;J[d+4>>2]=0;J[d+36>>2]=0;J[d+28>>2]=0;J[d+32>>2]=0;J[g>>2]=d;c=d;b=J[J[a>>2]>>2];if(b){J[a>>2]=b;c=J[g>>2]}qe(J[a+4>>2],c);J[a+8>>2]=J[a+8>>2]+1;a=1;break L}d=c;a=0}H[f+44|0]=a;J[f+40>>2]=d;a=J[f+40>>2];if(H[a+39|0]<0){xj(J[a+28>>2])}b=J[f+12>>2];J[a+28>>2]=J[f+8>>2];J[a+32>>2]=b;J[a+36>>2]=J[f+16>>2];ia=f+48|0;ia=l+48|0;if(H[m+11|0]<0){xj(J[m>>2])}ia=m+16|0}function vb(a,b,c){var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0;i=J[b+12>>2];e=J[b+20>>2];d=J[b+16>>2];j=d+4|0;e=j>>>0<4?e+1|0:e;a:{if(j>>>0>M[b+8>>2]&(e|0)>=(i|0)|(e|0)>(i|0)){break a}e=d+J[b>>2]|0;J[a>>2]=K[e|0]|K[e+1|0]<<8|(K[e+2|0]<<16|K[e+3|0]<<24);e=J[b+20>>2];i=e;j=J[b+16>>2];d=j+4|0;e=d>>>0<4?e+1|0:e;k=d;J[b+16>>2]=d;J[b+20>>2]=e;if(M[a>>2]>32){break a}d=J[b+12>>2];e=i;i=j+8|0;e=i>>>0<8?e+1|0:e;if((d|0)<=(e|0)&i>>>0>M[b+8>>2]|(d|0)<(e|0)){break a}e=k+J[b>>2]|0;f=K[e|0]|K[e+1|0]<<8|(K[e+2|0]<<16|K[e+3|0]<<24);J[a+4>>2]=f;e=J[b+20>>2];i=J[b+16>>2]+4|0;e=i>>>0<4?e+1|0:e;J[b+16>>2]=i;J[b+20>>2]=e;if(!f){return 1}f=0;J[a+8>>2]=0;if(!ie(a+16|0,b)){break a}if(!ie(a+36|0,b)){break a}if(!ie(a+56|0,b)){break a}if(!ie(a+76|0,b)){break a}s=J[a+4>>2];i=c;b=0;d=ia-32|0;ia=d;f=a;a=J[a+12>>2];J[d+16>>2]=0;J[d+8>>2]=0;J[d+12>>2]=0;b:{c:{if(a){if(a>>>0>=1073741824){break c}c=a<<2;b=Aj(c);J[d+8>>2]=b;h=b+c|0;J[d+16>>2]=h;Xi(b,0,c);J[d+12>>2]=h}c=J[f+120>>2];e=J[c>>2];if(e){J[c+4>>2]=e;xj(e);h=J[d+12>>2];b=J[d+8>>2];a=J[f+12>>2]}J[c+4>>2]=h;J[c>>2]=b;J[c+8>>2]=J[d+16>>2];b=0;J[d+16>>2]=0;J[d+8>>2]=0;J[d+12>>2]=0;d:{if(a){if(a>>>0>=1073741824){break d}a=a<<2;g=Aj(a);J[d+8>>2]=g;b=a+g|0;J[d+16>>2]=b;Xi(g,0,a);J[d+12>>2]=b}a=J[f+132>>2];c=J[a>>2];if(c){J[a+4>>2]=c;xj(c);g=J[d+8>>2];b=J[d+12>>2]}J[a+4>>2]=b;J[a>>2]=g;J[a+8>>2]=J[d+16>>2];J[d+24>>2]=0;J[d+28>>2]=0;J[d+16>>2]=0;J[d+20>>2]=0;J[d+8>>2]=0;J[d+12>>2]=0;Rb(d+8|0);a=J[d+24>>2]+J[d+28>>2]|0;b=(a>>>0)/341|0;a=J[J[d+12>>2]+(b<<2)>>2]+P(a-P(b,341)|0,12)|0;J[a+4>>2]=0;J[a+8>>2]=0;J[a>>2]=s;c=1;a=J[d+28>>2]+1|0;J[d+28>>2]=a;e:{if(!a){break e}while(1){b=J[d+12>>2];g=J[d+24>>2];k=a-1|0;c=g+k|0;e=(c>>>0)/341|0;c=J[b+(e<<2)>>2]+P(c-P(e,341)|0,12)|0;h=J[c+8>>2];e=J[c+4>>2];j=J[c>>2];J[d+28>>2]=k;c=J[d+16>>2];if((((b|0)!=(c|0)?P(c-b>>2,341)-1|0:0)-(a+g|0)|0)+1>>>0>=682){xj(J[c-4>>2]);J[d+16>>2]=J[d+16>>2]-4}c=0;if(j>>>0>s>>>0){break e}b=J[f+12>>2];a=(b-1|0)!=(e|0)?e+1|0:0;if(a>>>0>=b>>>0){break e}g=P(h,12);o=g+J[f+132>>2]|0;k=g+J[f+120>>2]|0;e=J[f>>2];l=a<<2;m=J[l+J[o>>2]>>2];f:{g:{if((e|0)==(m|0)){if(!j){break g}o=0;b=J[i+20>>2];h=J[i+16>>2];if((b|0)==(h|0)){a=J[f+8>>2];J[i+28>>2]=j+J[i+28>>2];J[f+8>>2]=a+j;break g}while(1){c=(b|0)==(h|0);a=b;e=0;b=h;h:{if(c){break h}while(1){g=J[i+28>>2];b=a;c=P(e,20)+h|0;l=J[c>>2];if(!K[l+84|0]){g=J[J[l+68>>2]+(g<<2)>>2]}if(M[l+80>>2]<=g>>>0){break h}m=J[k>>2]+(J[c+4>>2]<<2)|0;h=J[c+12>>2];b=m;i:{if(h>>>0>3){break i}a=0;b=J[i+12>>2];if(!J[c+16>>2]){break i}while(1){b=Vi(b,m+(a<<2)|0,h);h=J[c+12>>2];b=b+h|0;a=a+1|0;if(a>>>0>2]){continue}break}b=J[i+12>>2]}a=J[l+40>>2];Vi(J[J[l>>2]>>2]+P(a,g)|0,b,a);e=e+1|0;a=J[i+20>>2];b=a;h=J[i+16>>2];if(e>>>0<(b-h|0)/20>>>0){continue}break}}J[i+28>>2]=J[i+28>>2]+1;J[f+8>>2]=J[f+8>>2]+1;o=o+1|0;if((j|0)!=(o|0)){continue}break}break g}j:{k:{l:{m:{if(j>>>0<=2){c=J[f+108>>2];J[c>>2]=a;g=1;b=J[f+12>>2];if(b>>>0>1){break m}break j}if(M[f+8>>2]>M[f+4>>2]){break e}b=J[f+120>>2];n=h+1|0;o=P(n,12);p=b+o|0;if((p|0)!=(k|0)){Sa(p,J[k>>2],J[k+4>>2]);b=J[f+120>>2]}b=l+J[b+o>>2]|0;J[b>>2]=J[b>>2]+(1<>2];m=32-e|0;n:{if((b|0)<=(m|0)){k=J[f+28>>2];if((k|0)==J[f+20>>2]){break l}m=J[k>>2];p=b+e|0;J[f+32>>2]=p;b=m<>>32-b|0;if((p|0)!=32){break n}J[f+32>>2]=0;J[f+28>>2]=k+4;break n}k=J[f+28>>2];p=k+4|0;if((p|0)==J[f+20>>2]){break l}r=J[k>>2];J[f+28>>2]=p;m=b-m|0;J[f+32>>2]=m;b=J[k+4>>2]>>>32-m|r<>>32-b}e=j>>>1|0;if(e>>>0>>0){break e}break k}while(1){a=(b-1|0)!=(a|0)?a+1|0:0;J[c+(g<<2)>>2]=a;b=J[f+12>>2];g=g+1|0;if(b>>>0>g>>>0){continue}break}break j}e=j>>>1|0;b=0}o:{p:{b=e-b|0;c=j-b|0;q:{if((c|0)==(b|0)){c=b;break q}e=J[f+88>>2];if((e|0)==J[f+80>>2]){break p}j=J[e>>2];k=J[f+92>>2];m=k+1|0;J[f+92>>2]=m;j=j&-2147483648>>>k;r:{if((m|0)==32){J[f+92>>2]=0;J[f+88>>2]=e+4;if(j){break r}break p}if(!j){break p}}}e=c;c=b;break o}e=b}b=J[f+132>>2];g=b+g|0;j=J[g>>2];k=j+l|0;J[k>>2]=J[k>>2]+1;Sa(b+o|0,j,J[g+4>>2]);if(c){b=J[d+28>>2]+J[d+24>>2]|0;j=J[d+16>>2];g=J[d+12>>2];if((b|0)==(((g|0)!=(j|0)?P(j-g>>2,341)-1|0:0)|0)){Rb(d+8|0);g=J[d+12>>2];b=J[d+24>>2]+J[d+28>>2]|0}m=g;g=(b>>>0)/341|0;b=J[m+(g<<2)>>2]+P(b-P(g,341)|0,12)|0;J[b+8>>2]=h;J[b+4>>2]=a;J[b>>2]=c;J[d+28>>2]=J[d+28>>2]+1}if(!e){break g}b=J[d+28>>2]+J[d+24>>2]|0;c=J[d+16>>2];g=J[d+12>>2];if((b|0)==(((c|0)!=(g|0)?P(c-g>>2,341)-1|0:0)|0)){Rb(d+8|0);g=J[d+12>>2];b=J[d+24>>2]+J[d+28>>2]|0}c=(b>>>0)/341|0;b=J[(c<<2)+g>>2]+P(b-P(c,341)|0,12)|0;J[b+8>>2]=n;J[b+4>>2]=a;J[b>>2]=e;a=J[d+28>>2]+1|0;J[d+28>>2]=a;break f}m=0;if(!j){break g}while(1){if(J[f+12>>2]){e=J[f+40>>2];p=J[o>>2];c=J[f+96>>2];r=J[f+108>>2];a=0;while(1){h=r+(a<<2)|0;J[c+(J[h>>2]<<2)>>2]=0;b=J[f>>2];g=J[h>>2]<<2;l=J[g+p>>2];s:{if((b|0)==(l|0)){break s}g=c+g|0;b=b-l|0;l=J[f+52>>2];q=32-l|0;if((b|0)<=(q|0)){n=J[f+48>>2];if((n|0)==(e|0)){c=0;break e}J[g>>2]=J[n>>2]<>>32-b;b=b+J[f+52>>2]|0;J[f+52>>2]=b;if((b|0)!=32){break s}J[f+52>>2]=0;J[f+48>>2]=n+4;break s}n=J[f+48>>2];t=n+4|0;if((e|0)==(t|0)){c=0;break e}u=J[n>>2];J[f+48>>2]=t;q=b-q|0;J[f+52>>2]=q;J[g>>2]=J[n+4>>2]>>>32-q|u<>>32-b}b=J[h>>2]<<2;h=b+c|0;J[h>>2]=J[h>>2]|J[b+J[k>>2]>>2];a=a+1|0;if(a>>>0>2]){continue}break}}e=0;a=J[i+16>>2];t:{if((a|0)==J[i+20>>2]){break t}while(1){g=J[i+28>>2];c=P(e,20)+a|0;l=J[c>>2];if(!K[l+84|0]){g=J[J[l+68>>2]+(g<<2)>>2]}if(M[l+80>>2]<=g>>>0){break t}n=J[f+96>>2]+(J[c+4>>2]<<2)|0;h=J[c+12>>2];b=n;u:{if(h>>>0>3){break u}a=0;b=J[i+12>>2];if(!J[c+16>>2]){break u}while(1){b=Vi(b,n+(a<<2)|0,h);h=J[c+12>>2];b=b+h|0;a=a+1|0;if(a>>>0>2]){continue}break}b=J[i+12>>2]}a=J[l+40>>2];Vi(J[J[l>>2]>>2]+P(a,g)|0,b,a);e=e+1|0;a=J[i+16>>2];if(e>>>0<(J[i+20>>2]-a|0)/20>>>0){continue}break}}J[i+28>>2]=J[i+28>>2]+1;J[f+8>>2]=J[f+8>>2]+1;m=m+1|0;if((j|0)!=(m|0)){continue}break}}a=J[d+28>>2]}if(a){continue}break}c=1}J[d+28>>2]=0;g=J[d+16>>2];a=J[d+12>>2];b=g-a|0;if(b>>>0>=9){while(1){xj(J[a>>2]);a=J[d+12>>2]+4|0;J[d+12>>2]=a;g=J[d+16>>2];b=g-a|0;if(b>>>0>8){continue}break}}h=170;v:{switch((b>>>2|0)-1|0){case 1:h=341;case 0:J[d+24>>2]=h;break;default:break v}}w:{if((a|0)==(g|0)){break w}while(1){xj(J[a>>2]);a=a+4|0;if((g|0)!=(a|0)){continue}break}a=J[d+16>>2];b=J[d+12>>2];if((a|0)==(b|0)){break w}J[d+16>>2]=a+((b-a|0)+3&-4)}a=J[d+8>>2];if(a){xj(a)}ia=d+32|0;break b}La();C()}La();C()}f=c}return f}function yb(a,b,c){var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0;i=J[b+12>>2];d=J[b+20>>2];h=J[b+16>>2];e=h+4|0;d=e>>>0<4?d+1|0:d;a:{if(e>>>0>M[b+8>>2]&(d|0)>=(i|0)|(d|0)>(i|0)){break a}d=h+J[b>>2]|0;J[a>>2]=K[d|0]|K[d+1|0]<<8|(K[d+2|0]<<16|K[d+3|0]<<24);d=J[b+20>>2];i=d;e=J[b+16>>2];h=e+4|0;d=h>>>0<4?d+1|0:d;k=h;J[b+16>>2]=h;J[b+20>>2]=d;if(M[a>>2]>32){break a}h=J[b+12>>2];d=i;i=e+8|0;d=i>>>0<8?d+1|0:d;if(i>>>0>M[b+8>>2]&(d|0)>=(h|0)|(d|0)>(h|0)){break a}d=k+J[b>>2]|0;f=K[d|0]|K[d+1|0]<<8|(K[d+2|0]<<16|K[d+3|0]<<24);J[a+4>>2]=f;d=J[b+20>>2];i=J[b+16>>2]+4|0;d=i>>>0<4?d+1|0:d;J[b+16>>2]=i;J[b+20>>2]=d;if(!f){return 1}f=0;J[a+8>>2]=0;if(!ie(a+16|0,b)){break a}if(!ie(a+36|0,b)){break a}if(!ie(a+56|0,b)){break a}if(!ie(a+76|0,b)){break a}q=J[a+4>>2];i=c;b=0;c=0;e=ia-32|0;ia=e;f=a;a=J[a+12>>2];J[e+16>>2]=0;J[e+8>>2]=0;J[e+12>>2]=0;b:{c:{if(a){if(a>>>0>=1073741824){break c}d=a<<2;b=Aj(d);J[e+8>>2]=b;c=b+d|0;J[e+16>>2]=c;Xi(b,0,d);J[e+12>>2]=c}d=J[f+120>>2];h=J[d>>2];if(h){J[d+4>>2]=h;xj(h);c=J[e+12>>2];b=J[e+8>>2];a=J[f+12>>2]}J[d+4>>2]=c;J[d>>2]=b;J[d+8>>2]=J[e+16>>2];b=0;J[e+16>>2]=0;J[e+8>>2]=0;J[e+12>>2]=0;d:{if(a){if(a>>>0>=1073741824){break d}a=a<<2;g=Aj(a);J[e+8>>2]=g;b=a+g|0;J[e+16>>2]=b;Xi(g,0,a);J[e+12>>2]=b}a=J[f+132>>2];c=J[a>>2];if(c){J[a+4>>2]=c;xj(c);g=J[e+8>>2];b=J[e+12>>2]}J[a+4>>2]=b;J[a>>2]=g;J[a+8>>2]=J[e+16>>2];J[e+24>>2]=0;J[e+28>>2]=0;J[e+16>>2]=0;J[e+20>>2]=0;J[e+8>>2]=0;J[e+12>>2]=0;Rb(e+8|0);a=J[e+24>>2]+J[e+28>>2]|0;b=(a>>>0)/341|0;a=J[J[e+12>>2]+(b<<2)>>2]+P(a-P(b,341)|0,12)|0;J[a+4>>2]=0;J[a+8>>2]=0;J[a>>2]=q;h=1;a=J[e+28>>2]+1|0;J[e+28>>2]=a;e:{if(!a){break e}while(1){b=J[e+12>>2];h=J[e+24>>2];g=a-1|0;c=h+g|0;d=(c>>>0)/341|0;c=J[b+(d<<2)>>2]+P(c-P(d,341)|0,12)|0;l=J[c+8>>2];d=J[c+4>>2];k=J[c>>2];J[e+28>>2]=g;c=J[e+16>>2];if((((b|0)!=(c|0)?P(c-b>>2,341)-1|0:0)-(a+h|0)|0)+1>>>0>=682){xj(J[c-4>>2]);J[e+16>>2]=J[e+16>>2]-4}if(k>>>0>q>>>0){h=0;break e}h=0;b=J[f+12>>2];a=(d|0)!=(b-1|0)?d+1|0:0;if(a>>>0>=b>>>0){break e}b=J[f+120>>2];g=P(l,12);m=b+g|0;c=J[f>>2];n=a<<2;p=g+J[f+132>>2]|0;d=J[n+J[p>>2]>>2];f:{g:{if((c|0)==(d|0)){if(!k){break g}g=0;b=J[i+20>>2];c=J[i+16>>2];if((b|0)==(c|0)){a=J[f+8>>2];J[i+28>>2]=k+J[i+28>>2];J[f+8>>2]=a+k;break g}while(1){h=(b|0)==(c|0);a=b;d=0;b=c;h:{if(h){break h}while(1){h=J[i+28>>2];b=a;l=P(d,20)+c|0;n=J[l>>2];if(!K[n+84|0]){h=J[J[n+68>>2]+(h<<2)>>2]}if(M[n+80>>2]<=h>>>0){break h}j=J[m>>2]+(J[l+4>>2]<<2)|0;c=J[l+12>>2];b=j;i:{if(c>>>0>3){break i}a=0;b=J[i+12>>2];if(!J[l+16>>2]){break i}while(1){b=Vi(b,j+(a<<2)|0,c);c=J[l+12>>2];b=b+c|0;a=a+1|0;if(a>>>0>2]){continue}break}b=J[i+12>>2]}a=J[n+40>>2];Vi(J[J[n>>2]>>2]+P(a,h)|0,b,a);d=d+1|0;a=J[i+20>>2];b=a;c=J[i+16>>2];if(d>>>0<(b-c|0)/20>>>0){continue}break}}J[i+28>>2]=J[i+28>>2]+1;J[f+8>>2]=J[f+8>>2]+1;g=g+1|0;if((k|0)!=(g|0)){continue}break}break g}j:{k:{l:{m:{if(k>>>0<=2){c=J[f+108>>2];J[c>>2]=a;g=1;b=J[f+12>>2];if(b>>>0>1){break m}break j}if(M[f+8>>2]>M[f+4>>2]){break e}j=b;b=g+12|0;Sa(j+b|0,J[m>>2],J[m+4>>2]);b=n+J[b+J[f+120>>2]>>2]|0;J[b>>2]=J[b>>2]+(1<>2];m=32-c|0;n:{if((b|0)<=(m|0)){d=J[f+28>>2];if((d|0)==J[f+20>>2]){break l}m=J[d>>2];j=b+c|0;J[f+32>>2]=j;c=m<>>32-b|0;if((j|0)!=32){break n}J[f+32>>2]=0;J[f+28>>2]=d+4;break n}d=J[f+28>>2];j=d+4|0;if((j|0)==J[f+20>>2]){break l}p=J[d>>2];J[f+28>>2]=j;m=b-m|0;J[f+32>>2]=m;c=J[d+4>>2]>>>32-m|p<>>32-b}d=k>>>1|0;if(d>>>0>>0){break e}break k}while(1){a=(b-1|0)!=(a|0)?a+1|0:0;J[c+(g<<2)>>2]=a;b=J[f+12>>2];g=g+1|0;if(b>>>0>g>>>0){continue}break}break j}d=k>>>1|0;c=0}h=l+1|0;o:{p:{b=d-c|0;c=k-b|0;q:{if((c|0)==(b|0)){c=b;break q}d=J[f+88>>2];if((d|0)==J[f+80>>2]){break p}k=J[d>>2];m=J[f+92>>2];j=m+1|0;J[f+92>>2]=j;k=k&-2147483648>>>m;r:{if((j|0)==32){J[f+92>>2]=0;J[f+88>>2]=d+4;if(k){break r}break p}if(!k){break p}}}d=c;c=b;break o}d=b}b=J[f+132>>2];g=b+g|0;k=J[g>>2];m=k+n|0;J[m>>2]=J[m>>2]+1;Sa(b+P(h,12)|0,k,J[g+4>>2]);if(c){b=J[e+28>>2]+J[e+24>>2]|0;k=J[e+16>>2];g=J[e+12>>2];if((b|0)==(((g|0)!=(k|0)?P(k-g>>2,341)-1|0:0)|0)){Rb(e+8|0);g=J[e+12>>2];b=J[e+24>>2]+J[e+28>>2]|0}j=g;g=(b>>>0)/341|0;b=J[j+(g<<2)>>2]+P(b-P(g,341)|0,12)|0;J[b+8>>2]=l;J[b+4>>2]=a;J[b>>2]=c;J[e+28>>2]=J[e+28>>2]+1}if(!d){break g}b=J[e+28>>2]+J[e+24>>2]|0;c=J[e+16>>2];g=J[e+12>>2];if((b|0)==(((c|0)!=(g|0)?P(c-g>>2,341)-1|0:0)|0)){Rb(e+8|0);g=J[e+12>>2];b=J[e+24>>2]+J[e+28>>2]|0}c=(b>>>0)/341|0;b=J[(c<<2)+g>>2]+P(b-P(c,341)|0,12)|0;J[b+8>>2]=h;J[b+4>>2]=a;J[b>>2]=d;a=J[e+28>>2]+1|0;J[e+28>>2]=a;break f}n=0;if(!k){break g}while(1){if(J[f+12>>2]){d=J[f+40>>2];s=J[p>>2];c=J[f+96>>2];t=J[f+108>>2];a=0;while(1){h=(a<<2)+t|0;J[c+(J[h>>2]<<2)>>2]=0;b=J[f>>2];g=J[h>>2]<<2;l=J[g+s>>2];s:{if((b|0)==(l|0)){break s}g=c+g|0;b=b-l|0;l=J[f+52>>2];o=32-l|0;if((b|0)<=(o|0)){j=J[f+48>>2];if((j|0)==(d|0)){h=0;break e}J[g>>2]=J[j>>2]<>>32-b;b=b+J[f+52>>2]|0;J[f+52>>2]=b;if((b|0)!=32){break s}J[f+52>>2]=0;J[f+48>>2]=j+4;break s}j=J[f+48>>2];r=j+4|0;if((d|0)==(r|0)){h=0;break e}u=J[j>>2];J[f+48>>2]=r;o=b-o|0;J[f+52>>2]=o;J[g>>2]=J[j+4>>2]>>>32-o|u<>>32-b}b=J[h>>2]<<2;h=b+c|0;J[h>>2]=J[h>>2]|J[b+J[m>>2]>>2];a=a+1|0;if(a>>>0>2]){continue}break}}d=0;a=J[i+16>>2];t:{if((a|0)==J[i+20>>2]){break t}while(1){h=J[i+28>>2];g=P(d,20)+a|0;l=J[g>>2];if(!K[l+84|0]){h=J[J[l+68>>2]+(h<<2)>>2]}if(M[l+80>>2]<=h>>>0){break t}j=J[f+96>>2]+(J[g+4>>2]<<2)|0;c=J[g+12>>2];b=j;u:{if(c>>>0>3){break u}a=0;b=J[i+12>>2];if(!J[g+16>>2]){break u}while(1){b=Vi(b,j+(a<<2)|0,c);c=J[g+12>>2];b=b+c|0;a=a+1|0;if(a>>>0>2]){continue}break}b=J[i+12>>2]}a=J[l+40>>2];Vi(J[J[l>>2]>>2]+P(a,h)|0,b,a);d=d+1|0;a=J[i+16>>2];if(d>>>0<(J[i+20>>2]-a|0)/20>>>0){continue}break}}J[i+28>>2]=J[i+28>>2]+1;J[f+8>>2]=J[f+8>>2]+1;n=n+1|0;if((k|0)!=(n|0)){continue}break}}a=J[e+28>>2]}if(a){continue}break}h=1}J[e+28>>2]=0;g=J[e+16>>2];a=J[e+12>>2];b=g-a|0;if(b>>>0>=9){while(1){xj(J[a>>2]);a=J[e+12>>2]+4|0;J[e+12>>2]=a;g=J[e+16>>2];b=g-a|0;if(b>>>0>8){continue}break}}c=170;v:{switch((b>>>2|0)-1|0){case 1:c=341;case 0:J[e+24>>2]=c;break;default:break v}}w:{if((a|0)==(g|0)){break w}while(1){xj(J[a>>2]);a=a+4|0;if((g|0)!=(a|0)){continue}break}a=J[e+16>>2];b=J[e+12>>2];if((a|0)==(b|0)){break w}J[e+16>>2]=a+((b-a|0)+3&-4)}a=J[e+8>>2];if(a){xj(a)}ia=e+32|0;a=h;break b}La();C()}La();C()}f=a}return f}function Db(a,b,c){var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0;d=J[b+12>>2];g=J[b+20>>2];f=J[b+16>>2];k=f+4|0;g=k>>>0<4?g+1|0:g;a:{if((d|0)<=(g|0)&k>>>0>M[b+8>>2]|(d|0)<(g|0)){break a}g=f+J[b>>2]|0;J[a>>2]=K[g|0]|K[g+1|0]<<8|(K[g+2|0]<<16|K[g+3|0]<<24);g=J[b+20>>2];d=g;k=J[b+16>>2];f=k+4|0;g=f>>>0<4?d+1|0:d;j=f;J[b+16>>2]=f;J[b+20>>2]=g;if(M[a>>2]>32){break a}f=J[b+12>>2];g=d;d=k+8|0;g=d>>>0<8?g+1|0:g;if(d>>>0>M[b+8>>2]&(g|0)>=(f|0)|(g|0)>(f|0)){break a}e=j+J[b>>2]|0;g=K[e|0]|K[e+1|0]<<8|(K[e+2|0]<<16|K[e+3|0]<<24);J[a+4>>2]=g;e=J[b+20>>2];d=J[b+16>>2]+4|0;e=d>>>0<4?e+1|0:e;J[b+16>>2]=d;J[b+20>>2]=e;if(!g){return 1}e=0;J[a+8>>2]=0;if(!Mb(a+16|0,b)){break a}if(!ie(a+544|0,b)){break a}if(!ie(a+564|0,b)){break a}if(!ie(a+584|0,b)){break a}q=J[a+4>>2];g=c;b=0;c=0;d=ia-32|0;ia=d;e=a;a=J[a+12>>2];J[d+16>>2]=0;J[d+8>>2]=0;J[d+12>>2]=0;b:{c:{if(a){if(a>>>0>=1073741824){break c}f=a<<2;b=Aj(f);J[d+8>>2]=b;c=b+f|0;J[d+16>>2]=c;Xi(b,0,f);J[d+12>>2]=c}f=J[e+628>>2];k=J[f>>2];if(k){J[f+4>>2]=k;xj(k);c=J[d+12>>2];b=J[d+8>>2];a=J[e+12>>2]}J[f+4>>2]=c;J[f>>2]=b;J[f+8>>2]=J[d+16>>2];b=0;J[d+16>>2]=0;J[d+8>>2]=0;J[d+12>>2]=0;d:{if(a){if(a>>>0>=1073741824){break d}a=a<<2;h=Aj(a);J[d+8>>2]=h;b=a+h|0;J[d+16>>2]=b;Xi(h,0,a);J[d+12>>2]=b}a=J[e+640>>2];c=J[a>>2];if(c){J[a+4>>2]=c;xj(c);h=J[d+8>>2];b=J[d+12>>2]}J[a+4>>2]=b;J[a>>2]=h;J[a+8>>2]=J[d+16>>2];J[d+24>>2]=0;J[d+28>>2]=0;J[d+16>>2]=0;J[d+20>>2]=0;J[d+8>>2]=0;J[d+12>>2]=0;Rb(d+8|0);a=J[d+24>>2]+J[d+28>>2]|0;b=(a>>>0)/341|0;a=J[J[d+12>>2]+(b<<2)>>2]+P(a-P(b,341)|0,12)|0;J[a+4>>2]=0;J[a+8>>2]=0;J[a>>2]=q;c=1;a=J[d+28>>2]+1|0;J[d+28>>2]=a;e:{if(!a){break e}s=e+16|0;while(1){b=J[d+12>>2];j=J[d+24>>2];i=a-1|0;c=j+i|0;h=(c>>>0)/341|0;c=J[b+(h<<2)>>2]+P(c-P(h,341)|0,12)|0;k=J[c+8>>2];h=J[c+4>>2];f=J[c>>2];J[d+28>>2]=i;c=J[d+16>>2];if((((b|0)!=(c|0)?P(c-b>>2,341)-1|0:0)-(a+j|0)|0)+1>>>0>=682){xj(J[c-4>>2]);J[d+16>>2]=J[d+16>>2]-4}c=0;if(f>>>0>q>>>0){break e}a=J[e+12>>2];h=(h|0)!=(a-1|0)?h+1|0:0;if(h>>>0>=a>>>0){break e}j=P(k,12);n=j+J[e+640>>2]|0;o=j+J[e+628>>2]|0;b=J[e>>2];i=h<<2;l=J[i+J[n>>2]>>2];f:{g:{if((b|0)==(l|0)){if(!f){break g}c=J[g+16>>2];b=J[g+20>>2];i=0;while(1){h=(b|0)==(c|0);a=b;j=0;b=c;h:{if(h){break h}while(1){k=J[g+28>>2];b=a;h=P(j,20)+c|0;m=J[h>>2];if(!K[m+84|0]){k=J[J[m+68>>2]+(k<<2)>>2]}if(M[m+80>>2]<=k>>>0){break h}n=J[o>>2]+(J[h+4>>2]<<2)|0;c=J[h+12>>2];b=n;i:{if(c>>>0>3){break i}a=0;b=J[g+12>>2];if(!J[h+16>>2]){break i}while(1){b=Vi(b,n+(a<<2)|0,c);c=J[h+12>>2];b=b+c|0;a=a+1|0;if(a>>>0>2]){continue}break}b=J[g+12>>2]}a=J[m+40>>2];Vi(J[J[m>>2]>>2]+P(a,k)|0,b,a);a=J[g+20>>2];b=a;j=j+1|0;c=J[g+16>>2];if(j>>>0<(a-c|0)/20>>>0){continue}break}}J[g+28>>2]=J[g+28>>2]+1;J[e+8>>2]=J[e+8>>2]+1;i=i+1|0;if((f|0)!=(i|0)){continue}break}break g}j:{k:{l:{if(f>>>0<=2){c=J[e+616>>2];J[c>>2]=h;a=1;b=J[e+12>>2];if(b>>>0>1){break l}break j}if(M[e+8>>2]>M[e+4>>2]){break e}a=J[e+628>>2];n=k+1|0;m=P(n,12);c=a+m|0;if((c|0)!=(o|0)){Sa(c,J[o>>2],J[o+4>>2]);a=J[e+628>>2]}a=i+J[a+m>>2]|0;J[a>>2]=J[a>>2]+(1<>>1|0;break k}while(1){b=le((a<<4)+s|0)|b<<1;a=a+1|0;if((c|0)!=(a|0)){continue}break}a=f>>>1|0;if(b>>>0<=a>>>0){break k}c=0;break e}while(1){h=(b-1|0)!=(h|0)?h+1|0:0;J[c+(a<<2)>>2]=h;a=a+1|0;b=J[e+12>>2];if(a>>>0>>0){continue}break}break j}m:{n:{b=a-b|0;a=f-b|0;o:{if((a|0)==(b|0)){a=b;break o}c=J[e+596>>2];if((c|0)==J[e+588>>2]){break n}f=J[c>>2];o=J[e+600>>2];l=o+1|0;J[e+600>>2]=l;f=f&-2147483648>>>o;p:{if((l|0)==32){J[e+600>>2]=0;J[e+596>>2]=c+4;if(f){break p}break n}if(!f){break n}}}c=a;a=b;break m}c=b}b=J[e+640>>2];f=b+j|0;j=J[f>>2];i=j+i|0;J[i>>2]=J[i>>2]+1;Sa(b+m|0,j,J[f+4>>2]);if(a){i=J[d+28>>2]+J[d+24>>2]|0;f=J[d+16>>2];b=J[d+12>>2];if((i|0)==(((b|0)!=(f|0)?P(f-b>>2,341)-1|0:0)|0)){Rb(d+8|0);i=J[d+24>>2]+J[d+28>>2]|0;l=J[d+12>>2]}else{l=b}b=(i>>>0)/341|0;b=J[l+(b<<2)>>2]+P(i-P(b,341)|0,12)|0;J[b+8>>2]=k;J[b+4>>2]=h;J[b>>2]=a;J[d+28>>2]=J[d+28>>2]+1}if(!c){break g}b=J[d+28>>2]+J[d+24>>2]|0;f=J[d+16>>2];a=J[d+12>>2];if((b|0)==(((a|0)!=(f|0)?P(f-a>>2,341)-1|0:0)|0)){Rb(d+8|0);b=J[d+24>>2]+J[d+28>>2]|0;l=J[d+12>>2]}else{l=a}a=(b>>>0)/341|0;a=J[l+(a<<2)>>2]+P(b-P(a,341)|0,12)|0;J[a+8>>2]=n;J[a+4>>2]=h;J[a>>2]=c;a=J[d+28>>2]+1|0;J[d+28>>2]=a;break f}h=0;if(!f){break g}while(1){if(J[e+12>>2]){k=J[e+548>>2];t=J[n>>2];c=J[e+604>>2];u=J[e+616>>2];a=0;while(1){j=(a<<2)+u|0;J[c+(J[j>>2]<<2)>>2]=0;b=J[e>>2];i=J[j>>2]<<2;m=J[i+t>>2];q:{if((b|0)==(m|0)){break q}i=c+i|0;b=b-m|0;m=J[e+560>>2];p=32-m|0;if((b|0)<=(p|0)){l=J[e+556>>2];if((l|0)==(k|0)){c=0;break e}J[i>>2]=J[l>>2]<>>32-b;b=b+J[e+560>>2]|0;J[e+560>>2]=b;if((b|0)!=32){break q}J[e+560>>2]=0;J[e+556>>2]=l+4;break q}l=J[e+556>>2];r=l+4|0;if((k|0)==(r|0)){c=0;break e}v=J[l>>2];J[e+556>>2]=r;p=b-p|0;J[e+560>>2]=p;J[i>>2]=J[l+4>>2]>>>32-p|v<>>32-b}b=J[j>>2]<<2;j=b+c|0;J[j>>2]=J[j>>2]|J[b+J[o>>2]>>2];a=a+1|0;if(a>>>0>2]){continue}break}}j=0;a=J[g+16>>2];r:{if((a|0)==J[g+20>>2]){break r}while(1){k=J[g+28>>2];i=P(j,20)+a|0;m=J[i>>2];if(!K[m+84|0]){k=J[J[m+68>>2]+(k<<2)>>2]}if(M[m+80>>2]<=k>>>0){break r}l=J[e+604>>2]+(J[i+4>>2]<<2)|0;c=J[i+12>>2];b=l;s:{if(c>>>0>3){break s}a=0;b=J[g+12>>2];if(!J[i+16>>2]){break s}while(1){b=Vi(b,l+(a<<2)|0,c);c=J[i+12>>2];b=b+c|0;a=a+1|0;if(a>>>0>2]){continue}break}b=J[g+12>>2]}a=J[m+40>>2];Vi(J[J[m>>2]>>2]+P(a,k)|0,b,a);j=j+1|0;a=J[g+16>>2];if(j>>>0<(J[g+20>>2]-a|0)/20>>>0){continue}break}}J[g+28>>2]=J[g+28>>2]+1;J[e+8>>2]=J[e+8>>2]+1;h=h+1|0;if((f|0)!=(h|0)){continue}break}}a=J[d+28>>2]}if(a){continue}break}c=1}J[d+28>>2]=0;h=J[d+16>>2];a=J[d+12>>2];b=h-a|0;if(b>>>0>=9){while(1){xj(J[a>>2]);a=J[d+12>>2]+4|0;J[d+12>>2]=a;h=J[d+16>>2];b=h-a|0;if(b>>>0>8){continue}break}}e=170;t:{switch((b>>>2|0)-1|0){case 1:e=341;case 0:J[d+24>>2]=e;break;default:break t}}u:{if((a|0)==(h|0)){break u}while(1){xj(J[a>>2]);a=a+4|0;if((h|0)!=(a|0)){continue}break}a=J[d+16>>2];b=J[d+12>>2];if((a|0)==(b|0)){break u}J[d+16>>2]=a+((b-a|0)+3&-4)}a=J[d+8>>2];if(a){xj(a)}ia=d+32|0;break b}La();C()}La();C()}e=c}return e}function Hb(a,b,c){var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0;d=J[b+12>>2];g=J[b+20>>2];f=J[b+16>>2];i=f+4|0;g=i>>>0<4?g+1|0:g;a:{if((d|0)<=(g|0)&i>>>0>M[b+8>>2]|(d|0)<(g|0)){break a}g=f+J[b>>2]|0;J[a>>2]=K[g|0]|K[g+1|0]<<8|(K[g+2|0]<<16|K[g+3|0]<<24);g=J[b+20>>2];d=g;i=J[b+16>>2];f=i+4|0;g=f>>>0<4?d+1|0:d;k=f;J[b+16>>2]=f;J[b+20>>2]=g;if(M[a>>2]>32){break a}f=J[b+12>>2];g=d;d=i+8|0;g=d>>>0<8?g+1|0:g;if(d>>>0>M[b+8>>2]&(g|0)>=(f|0)|(g|0)>(f|0)){break a}e=k+J[b>>2]|0;g=K[e|0]|K[e+1|0]<<8|(K[e+2|0]<<16|K[e+3|0]<<24);J[a+4>>2]=g;e=J[b+20>>2];d=J[b+16>>2]+4|0;e=d>>>0<4?e+1|0:e;J[b+16>>2]=d;J[b+20>>2]=e;if(!g){return 1}e=0;J[a+8>>2]=0;if(!Mb(a+16|0,b)){break a}if(!ie(a+544|0,b)){break a}if(!ie(a+564|0,b)){break a}if(!ie(a+584|0,b)){break a}q=J[a+4>>2];g=c;b=0;c=0;d=ia-32|0;ia=d;e=a;a=J[a+12>>2];J[d+16>>2]=0;J[d+8>>2]=0;J[d+12>>2]=0;b:{c:{if(a){if(a>>>0>=1073741824){break c}f=a<<2;b=Aj(f);J[d+8>>2]=b;c=b+f|0;J[d+16>>2]=c;Xi(b,0,f);J[d+12>>2]=c}f=J[e+628>>2];i=J[f>>2];if(i){J[f+4>>2]=i;xj(i);c=J[d+12>>2];b=J[d+8>>2];a=J[e+12>>2]}J[f+4>>2]=c;J[f>>2]=b;J[f+8>>2]=J[d+16>>2];b=0;J[d+16>>2]=0;J[d+8>>2]=0;J[d+12>>2]=0;d:{if(a){if(a>>>0>=1073741824){break d}a=a<<2;h=Aj(a);J[d+8>>2]=h;b=a+h|0;J[d+16>>2]=b;Xi(h,0,a);J[d+12>>2]=b}a=J[e+640>>2];c=J[a>>2];if(c){J[a+4>>2]=c;xj(c);h=J[d+8>>2];b=J[d+12>>2]}J[a+4>>2]=b;J[a>>2]=h;J[a+8>>2]=J[d+16>>2];J[d+24>>2]=0;J[d+28>>2]=0;J[d+16>>2]=0;J[d+20>>2]=0;J[d+8>>2]=0;J[d+12>>2]=0;Rb(d+8|0);a=J[d+24>>2]+J[d+28>>2]|0;b=(a>>>0)/341|0;a=J[J[d+12>>2]+(b<<2)>>2]+P(a-P(b,341)|0,12)|0;J[a+4>>2]=0;J[a+8>>2]=0;J[a>>2]=q;c=1;a=J[d+28>>2]+1|0;J[d+28>>2]=a;e:{if(!a){break e}s=e+16|0;while(1){b=J[d+12>>2];h=J[d+24>>2];c=a-1|0;f=h+c|0;i=(f>>>0)/341|0;f=J[b+(i<<2)>>2]+P(f-P(i,341)|0,12)|0;i=J[f+8>>2];f=J[f>>2];J[d+28>>2]=c;c=J[d+16>>2];if((((b|0)!=(c|0)?P(c-b>>2,341)-1|0:0)-(a+h|0)|0)+1>>>0>=682){xj(J[c-4>>2]);J[d+16>>2]=J[d+16>>2]-4}c=0;if(f>>>0>q>>>0){break e}a=J[e+628>>2];k=P(i,12);n=k+J[e+640>>2]|0;h=Si(e,f,n);if(h>>>0>=M[e+12>>2]){break e}o=a+k|0;b=J[e>>2];j=h<<2;m=J[j+J[n>>2]>>2];f:{g:{if((b|0)==(m|0)){if(!f){break g}c=J[g+16>>2];b=J[g+20>>2];j=0;while(1){h=(b|0)==(c|0);a=b;k=0;b=c;h:{if(h){break h}while(1){i=J[g+28>>2];b=a;h=P(k,20)+c|0;l=J[h>>2];if(!K[l+84|0]){i=J[J[l+68>>2]+(i<<2)>>2]}if(M[l+80>>2]<=i>>>0){break h}n=J[o>>2]+(J[h+4>>2]<<2)|0;c=J[h+12>>2];b=n;i:{if(c>>>0>3){break i}a=0;b=J[g+12>>2];if(!J[h+16>>2]){break i}while(1){b=Vi(b,n+(a<<2)|0,c);c=J[h+12>>2];b=b+c|0;a=a+1|0;if(a>>>0>2]){continue}break}b=J[g+12>>2]}a=J[l+40>>2];Vi(J[J[l>>2]>>2]+P(a,i)|0,b,a);a=J[g+20>>2];b=a;k=k+1|0;c=J[g+16>>2];if(k>>>0<(a-c|0)/20>>>0){continue}break}}J[g+28>>2]=J[g+28>>2]+1;J[e+8>>2]=J[e+8>>2]+1;j=j+1|0;if((f|0)!=(j|0)){continue}break}break g}j:{k:{l:{if(f>>>0<=2){c=J[e+616>>2];J[c>>2]=h;a=1;b=J[e+12>>2];if(b>>>0>1){break l}break j}if(M[e+8>>2]>M[e+4>>2]){break e}a=J[e+628>>2];n=i+1|0;l=P(n,12);c=a+l|0;if((c|0)!=(o|0)){Sa(c,J[o>>2],J[o+4>>2]);a=J[e+628>>2]}a=j+J[a+l>>2]|0;J[a>>2]=J[a>>2]+(1<>>1|0;break k}while(1){b=le((a<<4)+s|0)|b<<1;a=a+1|0;if((c|0)!=(a|0)){continue}break}a=f>>>1|0;if(b>>>0<=a>>>0){break k}c=0;break e}while(1){h=(b-1|0)!=(h|0)?h+1|0:0;J[c+(a<<2)>>2]=h;a=a+1|0;b=J[e+12>>2];if(a>>>0>>0){continue}break}break j}m:{n:{b=a-b|0;a=f-b|0;o:{if((a|0)==(b|0)){a=b;break o}c=J[e+596>>2];if((c|0)==J[e+588>>2]){break n}f=J[c>>2];o=J[e+600>>2];m=o+1|0;J[e+600>>2]=m;f=f&-2147483648>>>o;p:{if((m|0)==32){J[e+600>>2]=0;J[e+596>>2]=c+4;if(f){break p}break n}if(!f){break n}}}c=a;a=b;break m}c=b}b=J[e+640>>2];f=b+k|0;k=J[f>>2];j=k+j|0;J[j>>2]=J[j>>2]+1;Sa(b+l|0,k,J[f+4>>2]);if(a){j=J[d+28>>2]+J[d+24>>2]|0;f=J[d+16>>2];b=J[d+12>>2];if((j|0)==(((b|0)!=(f|0)?P(f-b>>2,341)-1|0:0)|0)){Rb(d+8|0);j=J[d+24>>2]+J[d+28>>2]|0;f=J[d+12>>2]}else{f=b}b=(j>>>0)/341|0;b=J[f+(b<<2)>>2]+P(j-P(b,341)|0,12)|0;J[b+8>>2]=i;J[b+4>>2]=h;J[b>>2]=a;J[d+28>>2]=J[d+28>>2]+1}if(!c){break g}b=J[d+28>>2]+J[d+24>>2]|0;f=J[d+16>>2];a=J[d+12>>2];if((b|0)==(((a|0)!=(f|0)?P(f-a>>2,341)-1|0:0)|0)){Rb(d+8|0);b=J[d+24>>2]+J[d+28>>2]|0;f=J[d+12>>2]}else{f=a}a=(b>>>0)/341|0;a=J[f+(a<<2)>>2]+P(b-P(a,341)|0,12)|0;J[a+8>>2]=n;J[a+4>>2]=h;J[a>>2]=c;a=J[d+28>>2]+1|0;J[d+28>>2]=a;break f}h=0;if(!f){break g}while(1){if(J[e+12>>2]){i=J[e+548>>2];t=J[n>>2];c=J[e+604>>2];u=J[e+616>>2];a=0;while(1){k=(a<<2)+u|0;J[c+(J[k>>2]<<2)>>2]=0;b=J[e>>2];j=J[k>>2]<<2;l=J[j+t>>2];q:{if((b|0)==(l|0)){break q}j=c+j|0;b=b-l|0;l=J[e+560>>2];p=32-l|0;if((b|0)<=(p|0)){m=J[e+556>>2];if((m|0)==(i|0)){c=0;break e}J[j>>2]=J[m>>2]<>>32-b;b=b+J[e+560>>2]|0;J[e+560>>2]=b;if((b|0)!=32){break q}J[e+560>>2]=0;J[e+556>>2]=m+4;break q}m=J[e+556>>2];r=m+4|0;if((i|0)==(r|0)){c=0;break e}v=J[m>>2];J[e+556>>2]=r;p=b-p|0;J[e+560>>2]=p;J[j>>2]=J[m+4>>2]>>>32-p|v<>>32-b}b=J[k>>2]<<2;k=b+c|0;J[k>>2]=J[k>>2]|J[b+J[o>>2]>>2];a=a+1|0;if(a>>>0>2]){continue}break}}k=0;a=J[g+16>>2];r:{if((a|0)==J[g+20>>2]){break r}while(1){i=J[g+28>>2];j=P(k,20)+a|0;l=J[j>>2];if(!K[l+84|0]){i=J[J[l+68>>2]+(i<<2)>>2]}if(M[l+80>>2]<=i>>>0){break r}m=J[e+604>>2]+(J[j+4>>2]<<2)|0;c=J[j+12>>2];b=m;s:{if(c>>>0>3){break s}a=0;b=J[g+12>>2];if(!J[j+16>>2]){break s}while(1){b=Vi(b,m+(a<<2)|0,c);c=J[j+12>>2];b=b+c|0;a=a+1|0;if(a>>>0>2]){continue}break}b=J[g+12>>2]}a=J[l+40>>2];Vi(J[J[l>>2]>>2]+P(a,i)|0,b,a);k=k+1|0;a=J[g+16>>2];if(k>>>0<(J[g+20>>2]-a|0)/20>>>0){continue}break}}J[g+28>>2]=J[g+28>>2]+1;J[e+8>>2]=J[e+8>>2]+1;h=h+1|0;if((f|0)!=(h|0)){continue}break}}a=J[d+28>>2]}if(a){continue}break}c=1}J[d+28>>2]=0;h=J[d+16>>2];a=J[d+12>>2];b=h-a|0;if(b>>>0>=9){while(1){xj(J[a>>2]);a=J[d+12>>2]+4|0;J[d+12>>2]=a;h=J[d+16>>2];b=h-a|0;if(b>>>0>8){continue}break}}e=170;t:{switch((b>>>2|0)-1|0){case 1:e=341;case 0:J[d+24>>2]=e;break;default:break t}}u:{if((a|0)==(h|0)){break u}while(1){xj(J[a>>2]);a=a+4|0;if((h|0)!=(a|0)){continue}break}a=J[d+16>>2];b=J[d+12>>2];if((a|0)==(b|0)){break u}J[d+16>>2]=a+((b-a|0)+3&-4)}a=J[d+8>>2];if(a){xj(a)}ia=d+32|0;break b}La();C()}La();C()}e=c}return e}function Gb(a,b,c){var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0;d=J[b+12>>2];f=J[b+20>>2];h=J[b+16>>2];k=h+4|0;f=k>>>0<4?f+1|0:f;a:{if((d|0)<=(f|0)&k>>>0>M[b+8>>2]|(d|0)<(f|0)){break a}f=h+J[b>>2]|0;J[a>>2]=K[f|0]|K[f+1|0]<<8|(K[f+2|0]<<16|K[f+3|0]<<24);f=J[b+20>>2];d=f;k=J[b+16>>2];h=k+4|0;f=h>>>0<4?d+1|0:d;j=h;J[b+16>>2]=h;J[b+20>>2]=f;if(M[a>>2]>32){break a}h=J[b+12>>2];f=d;d=k+8|0;f=d>>>0<8?f+1|0:f;if(d>>>0>M[b+8>>2]&(f|0)>=(h|0)|(f|0)>(h|0)){break a}e=j+J[b>>2]|0;f=K[e|0]|K[e+1|0]<<8|(K[e+2|0]<<16|K[e+3|0]<<24);J[a+4>>2]=f;e=J[b+20>>2];d=J[b+16>>2]+4|0;e=d>>>0<4?e+1|0:e;J[b+16>>2]=d;J[b+20>>2]=e;if(!f){return 1}e=0;J[a+8>>2]=0;if(!Mb(a+16|0,b)){break a}if(!ie(a+544|0,b)){break a}if(!ie(a+564|0,b)){break a}if(!ie(a+584|0,b)){break a}p=J[a+4>>2];b=0;d=ia-32|0;ia=d;f=a;a=J[a+12>>2];J[d+16>>2]=0;J[d+8>>2]=0;J[d+12>>2]=0;b:{c:{if(a){if(a>>>0>=1073741824){break c}e=a<<2;b=Aj(e);J[d+8>>2]=b;i=b+e|0;J[d+16>>2]=i;Xi(b,0,e);J[d+12>>2]=i}e=J[f+628>>2];h=J[e>>2];if(h){J[e+4>>2]=h;xj(h);i=J[d+12>>2];b=J[d+8>>2];a=J[f+12>>2]}J[e+4>>2]=i;J[e>>2]=b;J[e+8>>2]=J[d+16>>2];b=0;J[d+16>>2]=0;J[d+8>>2]=0;J[d+12>>2]=0;d:{if(a){if(a>>>0>=1073741824){break d}a=a<<2;g=Aj(a);J[d+8>>2]=g;b=a+g|0;J[d+16>>2]=b;Xi(g,0,a);J[d+12>>2]=b}a=J[f+640>>2];e=J[a>>2];if(e){J[a+4>>2]=e;xj(e);g=J[d+8>>2];b=J[d+12>>2]}J[a+4>>2]=b;J[a>>2]=g;J[a+8>>2]=J[d+16>>2];J[d+24>>2]=0;J[d+28>>2]=0;J[d+16>>2]=0;J[d+20>>2]=0;J[d+8>>2]=0;J[d+12>>2]=0;Rb(d+8|0);a=J[d+24>>2]+J[d+28>>2]|0;b=(a>>>0)/341|0;a=J[J[d+12>>2]+(b<<2)>>2]+P(a-P(b,341)|0,12)|0;J[a+4>>2]=0;J[a+8>>2]=0;J[a>>2]=p;e=1;a=J[d+28>>2]+1|0;J[d+28>>2]=a;e:{if(!a){break e}s=f+16|0;while(1){b=J[d+12>>2];k=J[d+24>>2];j=a-1|0;e=k+j|0;i=(e>>>0)/341|0;e=J[b+(i<<2)>>2]+P(e-P(i,341)|0,12)|0;i=J[e+8>>2];g=J[e+4>>2];h=J[e>>2];J[d+28>>2]=j;e=J[d+16>>2];if((((b|0)!=(e|0)?P(e-b>>2,341)-1|0:0)-(a+k|0)|0)+1>>>0>=682){xj(J[e-4>>2]);J[d+16>>2]=J[d+16>>2]-4}if(h>>>0>p>>>0){e=0;break e}e=0;a=J[f+12>>2];g=(g|0)!=(a-1|0)?g+1|0:0;if(g>>>0>=a>>>0){break e}a=J[f+628>>2];k=P(i,12);n=a+k|0;b=J[f>>2];j=g<<2;q=k+J[f+640>>2]|0;l=J[j+J[q>>2]>>2];f:{g:{if((b|0)==(l|0)){if(!h){break g}i=J[c+16>>2];b=J[c+20>>2];k=0;while(1){e=(b|0)==(i|0);a=b;g=0;b=i;h:{if(e){break h}while(1){e=J[c+28>>2];b=a;j=P(g,20)+i|0;l=J[j>>2];if(!K[l+84|0]){e=J[J[l+68>>2]+(e<<2)>>2]}if(M[l+80>>2]<=e>>>0){break h}m=J[n>>2]+(J[j+4>>2]<<2)|0;i=J[j+12>>2];b=m;i:{if(i>>>0>3){break i}a=0;b=J[c+12>>2];if(!J[j+16>>2]){break i}while(1){b=Vi(b,m+(a<<2)|0,i);i=J[j+12>>2];b=b+i|0;a=a+1|0;if(a>>>0>2]){continue}break}b=J[c+12>>2]}a=J[l+40>>2];Vi(J[J[l>>2]>>2]+P(a,e)|0,b,a);a=J[c+20>>2];b=a;g=g+1|0;i=J[c+16>>2];if(g>>>0<(a-i|0)/20>>>0){continue}break}}J[c+28>>2]=J[c+28>>2]+1;J[f+8>>2]=J[f+8>>2]+1;k=k+1|0;if((k|0)!=(h|0)){continue}break}break g}j:{k:{l:{if(h>>>0<=2){e=J[f+616>>2];J[e>>2]=g;a=1;b=J[f+12>>2];if(b>>>0>1){break l}break j}if(M[f+8>>2]>M[f+4>>2]){break e}m=a;a=k+12|0;Sa(m+a|0,J[n>>2],J[n+4>>2]);a=j+J[a+J[f+628>>2]>>2]|0;J[a>>2]=J[a>>2]+(1<>>1|0;break k}while(1){b=le((a<<4)+s|0)|b<<1;a=a+1|0;if((n|0)!=(a|0)){continue}break}a=h>>>1|0;if(b>>>0<=a>>>0){break k}break e}while(1){g=(b-1|0)!=(g|0)?g+1|0:0;J[e+(a<<2)>>2]=g;a=a+1|0;b=J[f+12>>2];if(a>>>0>>0){continue}break}break j}n=i+1|0;m:{n:{b=a-b|0;a=h-b|0;o:{if((a|0)==(b|0)){a=b;break o}e=J[f+596>>2];if((e|0)==J[f+588>>2]){break n}h=J[e>>2];l=J[f+600>>2];m=l+1|0;J[f+600>>2]=m;h=h&-2147483648>>>l;p:{if((m|0)==32){J[f+600>>2]=0;J[f+596>>2]=e+4;if(h){break p}break n}if(!h){break n}}}e=a;a=b;break m}e=b}b=J[f+640>>2];h=b+k|0;k=J[h>>2];j=k+j|0;J[j>>2]=J[j>>2]+1;Sa(b+P(n,12)|0,k,J[h+4>>2]);if(a){h=J[d+28>>2]+J[d+24>>2]|0;k=J[d+16>>2];b=J[d+12>>2];if((h|0)==(((b|0)!=(k|0)?P(k-b>>2,341)-1|0:0)|0)){Rb(d+8|0);h=J[d+24>>2]+J[d+28>>2]|0;m=J[d+12>>2]}else{m=b}b=(h>>>0)/341|0;b=J[m+(b<<2)>>2]+P(h-P(b,341)|0,12)|0;J[b+8>>2]=i;J[b+4>>2]=g;J[b>>2]=a;J[d+28>>2]=J[d+28>>2]+1}if(!e){break g}b=J[d+28>>2]+J[d+24>>2]|0;i=J[d+16>>2];a=J[d+12>>2];if((b|0)==(((a|0)!=(i|0)?P(i-a>>2,341)-1|0:0)|0)){Rb(d+8|0);b=J[d+24>>2]+J[d+28>>2]|0;m=J[d+12>>2]}else{m=a}a=(b>>>0)/341|0;a=J[m+(a<<2)>>2]+P(b-P(a,341)|0,12)|0;J[a+8>>2]=n;J[a+4>>2]=g;J[a>>2]=e;a=J[d+28>>2]+1|0;J[d+28>>2]=a;break f}k=0;if(!h){break g}while(1){if(J[f+12>>2]){i=J[f+548>>2];t=J[q>>2];e=J[f+604>>2];u=J[f+616>>2];a=0;while(1){g=u+(a<<2)|0;J[(J[g>>2]<<2)+e>>2]=0;b=J[f>>2];j=J[g>>2]<<2;l=J[j+t>>2];q:{if((b|0)==(l|0)){break q}j=e+j|0;b=b-l|0;l=J[f+560>>2];o=32-l|0;if((b|0)<=(o|0)){m=J[f+556>>2];if((m|0)==(i|0)){e=0;break e}J[j>>2]=J[m>>2]<>>32-b;b=J[f+560>>2]+b|0;J[f+560>>2]=b;if((b|0)!=32){break q}J[f+560>>2]=0;J[f+556>>2]=m+4;break q}m=J[f+556>>2];r=m+4|0;if((r|0)==(i|0)){e=0;break e}v=J[m>>2];J[f+556>>2]=r;o=b-o|0;J[f+560>>2]=o;J[j>>2]=J[m+4>>2]>>>32-o|v<>>32-b}b=J[g>>2]<<2;g=b+e|0;J[g>>2]=J[g>>2]|J[b+J[n>>2]>>2];a=a+1|0;if(a>>>0>2]){continue}break}}g=0;a=J[c+16>>2];r:{if((a|0)==J[c+20>>2]){break r}while(1){e=J[c+28>>2];j=P(g,20)+a|0;l=J[j>>2];if(!K[l+84|0]){e=J[J[l+68>>2]+(e<<2)>>2]}if(M[l+80>>2]<=e>>>0){break r}m=J[f+604>>2]+(J[j+4>>2]<<2)|0;i=J[j+12>>2];b=m;s:{if(i>>>0>3){break s}a=0;b=J[c+12>>2];if(!J[j+16>>2]){break s}while(1){b=Vi(b,m+(a<<2)|0,i);i=J[j+12>>2];b=b+i|0;a=a+1|0;if(a>>>0>2]){continue}break}b=J[c+12>>2]}a=J[l+40>>2];Vi(J[J[l>>2]>>2]+P(a,e)|0,b,a);g=g+1|0;a=J[c+16>>2];if(g>>>0<(J[c+20>>2]-a|0)/20>>>0){continue}break}}J[c+28>>2]=J[c+28>>2]+1;J[f+8>>2]=J[f+8>>2]+1;k=k+1|0;if((k|0)!=(h|0)){continue}break}}a=J[d+28>>2]}if(a){continue}break}e=1}J[d+28>>2]=0;g=J[d+16>>2];a=J[d+12>>2];b=g-a|0;if(b>>>0>=9){while(1){xj(J[a>>2]);a=J[d+12>>2]+4|0;J[d+12>>2]=a;g=J[d+16>>2];b=g-a|0;if(b>>>0>8){continue}break}}i=170;t:{switch((b>>>2|0)-1|0){case 1:i=341;case 0:J[d+24>>2]=i;break;default:break t}}u:{if((a|0)==(g|0)){break u}while(1){xj(J[a>>2]);a=a+4|0;if((g|0)!=(a|0)){continue}break}a=J[d+16>>2];b=J[d+12>>2];if((a|0)==(b|0)){break u}J[d+16>>2]=a+((b-a|0)+3&-4)}a=J[d+8>>2];if(a){xj(a)}ia=d+32|0;break b}La();C()}La();C()}}return e}function zb(a,b,c){var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0;i=J[b+12>>2];e=J[b+20>>2];d=J[b+16>>2];j=d+4|0;e=j>>>0<4?e+1|0:e;a:{if(j>>>0>M[b+8>>2]&(e|0)>=(i|0)|(e|0)>(i|0)){break a}e=d+J[b>>2]|0;J[a>>2]=K[e|0]|K[e+1|0]<<8|(K[e+2|0]<<16|K[e+3|0]<<24);e=J[b+20>>2];i=e;j=J[b+16>>2];d=j+4|0;e=d>>>0<4?e+1|0:e;l=d;J[b+16>>2]=d;J[b+20>>2]=e;if(M[a>>2]>32){break a}d=J[b+12>>2];e=i;i=j+8|0;e=i>>>0<8?e+1|0:e;if((d|0)<=(e|0)&i>>>0>M[b+8>>2]|(d|0)<(e|0)){break a}e=l+J[b>>2]|0;g=K[e|0]|K[e+1|0]<<8|(K[e+2|0]<<16|K[e+3|0]<<24);J[a+4>>2]=g;e=J[b+20>>2];i=J[b+16>>2]+4|0;e=i>>>0<4?e+1|0:e;J[b+16>>2]=i;J[b+20>>2]=e;if(!g){return 1}g=0;J[a+8>>2]=0;if(!je(a+16|0,b)){break a}if(!ie(a+32|0,b)){break a}if(!ie(a+52|0,b)){break a}if(!ie(a+72|0,b)){break a}r=J[a+4>>2];i=c;b=0;d=ia-32|0;ia=d;g=a;a=J[a+12>>2];J[d+16>>2]=0;J[d+8>>2]=0;J[d+12>>2]=0;b:{c:{if(a){if(a>>>0>=1073741824){break c}c=a<<2;b=Aj(c);J[d+8>>2]=b;h=b+c|0;J[d+16>>2]=h;Xi(b,0,c);J[d+12>>2]=h}c=J[g+116>>2];e=J[c>>2];if(e){J[c+4>>2]=e;xj(e);h=J[d+12>>2];b=J[d+8>>2];a=J[g+12>>2]}J[c+4>>2]=h;J[c>>2]=b;J[c+8>>2]=J[d+16>>2];b=0;J[d+16>>2]=0;J[d+8>>2]=0;J[d+12>>2]=0;d:{if(a){if(a>>>0>=1073741824){break d}a=a<<2;f=Aj(a);J[d+8>>2]=f;b=a+f|0;J[d+16>>2]=b;Xi(f,0,a);J[d+12>>2]=b}a=J[g+128>>2];c=J[a>>2];if(c){J[a+4>>2]=c;xj(c);f=J[d+8>>2];b=J[d+12>>2]}J[a+4>>2]=b;J[a>>2]=f;J[a+8>>2]=J[d+16>>2];J[d+24>>2]=0;J[d+28>>2]=0;J[d+16>>2]=0;J[d+20>>2]=0;J[d+8>>2]=0;J[d+12>>2]=0;Rb(d+8|0);a=J[d+24>>2]+J[d+28>>2]|0;b=(a>>>0)/341|0;a=J[J[d+12>>2]+(b<<2)>>2]+P(a-P(b,341)|0,12)|0;J[a+4>>2]=0;J[a+8>>2]=0;J[a>>2]=r;c=1;a=J[d+28>>2]+1|0;J[d+28>>2]=a;e:{if(!a){break e}t=g+16|0;while(1){b=J[d+12>>2];f=J[d+24>>2];l=a-1|0;c=f+l|0;e=(c>>>0)/341|0;c=J[b+(e<<2)>>2]+P(c-P(e,341)|0,12)|0;h=J[c+8>>2];e=J[c+4>>2];j=J[c>>2];J[d+28>>2]=l;c=J[d+16>>2];if((((b|0)!=(c|0)?P(c-b>>2,341)-1|0:0)-(a+f|0)|0)+1>>>0>=682){xj(J[c-4>>2]);J[d+16>>2]=J[d+16>>2]-4}c=0;if(j>>>0>r>>>0){break e}b=J[g+12>>2];a=(b-1|0)!=(e|0)?e+1|0:0;if(a>>>0>=b>>>0){break e}f=P(h,12);o=f+J[g+128>>2]|0;l=f+J[g+116>>2]|0;e=J[g>>2];k=a<<2;m=J[k+J[o>>2]>>2];f:{if((e|0)==(m|0)){if(!j){break f}o=0;b=J[i+20>>2];h=J[i+16>>2];if((b|0)==(h|0)){a=J[g+8>>2];J[i+28>>2]=j+J[i+28>>2];J[g+8>>2]=a+j;break f}while(1){c=(b|0)==(h|0);a=b;e=0;b=h;g:{if(c){break g}while(1){f=J[i+28>>2];b=a;c=P(e,20)+h|0;k=J[c>>2];if(!K[k+84|0]){f=J[J[k+68>>2]+(f<<2)>>2]}if(M[k+80>>2]<=f>>>0){break g}m=J[l>>2]+(J[c+4>>2]<<2)|0;h=J[c+12>>2];b=m;h:{if(h>>>0>3){break h}a=0;b=J[i+12>>2];if(!J[c+16>>2]){break h}while(1){b=Vi(b,m+(a<<2)|0,h);h=J[c+12>>2];b=b+h|0;a=a+1|0;if(a>>>0>2]){continue}break}b=J[i+12>>2]}a=J[k+40>>2];Vi(J[J[k>>2]>>2]+P(a,f)|0,b,a);e=e+1|0;a=J[i+20>>2];b=a;h=J[i+16>>2];if(e>>>0<(b-h|0)/20>>>0){continue}break}}J[i+28>>2]=J[i+28>>2]+1;J[g+8>>2]=J[g+8>>2]+1;o=o+1|0;if((j|0)!=(o|0)){continue}break}break f}i:{j:{k:{l:{if(j>>>0<=2){c=J[g+104>>2];J[c>>2]=a;f=1;b=J[g+12>>2];if(b>>>0>1){break l}break i}if(M[g+8>>2]>M[g+4>>2]){break e}b=J[g+116>>2];n=h+1|0;o=P(n,12);q=b+o|0;if((q|0)!=(l|0)){Sa(q,J[l>>2],J[l+4>>2]);b=J[g+116>>2]}b=k+J[b+o>>2]|0;J[b>>2]=J[b>>2]+(1<>2]=0;me(t,S(j)^31,d+4|0);b=j>>>1|0;e=J[d+4>>2];if(b>>>0>>0){break e}b=b-e|0;c=j-b|0;m:{if((c|0)==(b|0)){c=b;break m}e=J[g+84>>2];if((e|0)==J[g+76>>2]){break k}j=J[e>>2];l=J[g+88>>2];m=l+1|0;J[g+88>>2]=m;j=j&-2147483648>>>l;n:{if((m|0)==32){J[g+88>>2]=0;J[g+84>>2]=e+4;if(j){break n}break k}if(!j){break k}}}e=c;c=b;break j}while(1){a=(b-1|0)!=(a|0)?a+1|0:0;J[c+(f<<2)>>2]=a;b=J[g+12>>2];f=f+1|0;if(b>>>0>f>>>0){continue}break}break i}e=b}b=J[g+128>>2];f=b+f|0;j=J[f>>2];l=j+k|0;J[l>>2]=J[l>>2]+1;Sa(b+o|0,j,J[f+4>>2]);if(c){b=J[d+28>>2]+J[d+24>>2]|0;j=J[d+16>>2];f=J[d+12>>2];if((b|0)==(((f|0)!=(j|0)?P(j-f>>2,341)-1|0:0)|0)){Rb(d+8|0);f=J[d+12>>2];b=J[d+24>>2]+J[d+28>>2]|0}m=f;f=(b>>>0)/341|0;b=J[m+(f<<2)>>2]+P(b-P(f,341)|0,12)|0;J[b+8>>2]=h;J[b+4>>2]=a;J[b>>2]=c;J[d+28>>2]=J[d+28>>2]+1}if(!e){break f}b=J[d+28>>2]+J[d+24>>2]|0;c=J[d+16>>2];f=J[d+12>>2];if((b|0)==(((c|0)!=(f|0)?P(c-f>>2,341)-1|0:0)|0)){Rb(d+8|0);f=J[d+12>>2];b=J[d+24>>2]+J[d+28>>2]|0}c=(b>>>0)/341|0;b=J[(c<<2)+f>>2]+P(b-P(c,341)|0,12)|0;J[b+8>>2]=n;J[b+4>>2]=a;J[b>>2]=e;J[d+28>>2]=J[d+28>>2]+1;break f}m=0;if(!j){break f}while(1){if(J[g+12>>2]){e=J[g+36>>2];q=J[o>>2];c=J[g+92>>2];u=J[g+104>>2];a=0;while(1){h=(a<<2)+u|0;J[c+(J[h>>2]<<2)>>2]=0;b=J[g>>2];f=J[h>>2]<<2;k=J[f+q>>2];o:{if((b|0)==(k|0)){break o}f=c+f|0;b=b-k|0;k=J[g+48>>2];p=32-k|0;if((b|0)<=(p|0)){n=J[g+44>>2];if((n|0)==(e|0)){c=0;break e}J[f>>2]=J[n>>2]<>>32-b;b=b+J[g+48>>2]|0;J[g+48>>2]=b;if((b|0)!=32){break o}J[g+48>>2]=0;J[g+44>>2]=n+4;break o}n=J[g+44>>2];s=n+4|0;if((e|0)==(s|0)){c=0;break e}v=J[n>>2];J[g+44>>2]=s;p=b-p|0;J[g+48>>2]=p;J[f>>2]=J[n+4>>2]>>>32-p|v<>>32-b}b=J[h>>2]<<2;h=b+c|0;J[h>>2]=J[h>>2]|J[b+J[l>>2]>>2];a=a+1|0;if(a>>>0>2]){continue}break}}e=0;a=J[i+16>>2];p:{if((a|0)==J[i+20>>2]){break p}while(1){f=J[i+28>>2];c=P(e,20)+a|0;k=J[c>>2];if(!K[k+84|0]){f=J[J[k+68>>2]+(f<<2)>>2]}if(M[k+80>>2]<=f>>>0){break p}n=J[g+92>>2]+(J[c+4>>2]<<2)|0;h=J[c+12>>2];b=n;q:{if(h>>>0>3){break q}a=0;b=J[i+12>>2];if(!J[c+16>>2]){break q}while(1){b=Vi(b,n+(a<<2)|0,h);h=J[c+12>>2];b=b+h|0;a=a+1|0;if(a>>>0>2]){continue}break}b=J[i+12>>2]}a=J[k+40>>2];Vi(J[J[k>>2]>>2]+P(a,f)|0,b,a);e=e+1|0;a=J[i+16>>2];if(e>>>0<(J[i+20>>2]-a|0)/20>>>0){continue}break}}J[i+28>>2]=J[i+28>>2]+1;J[g+8>>2]=J[g+8>>2]+1;m=m+1|0;if((j|0)!=(m|0)){continue}break}}a=J[d+28>>2];if(a){continue}break}c=1}J[d+28>>2]=0;f=J[d+16>>2];a=J[d+12>>2];b=f-a|0;if(b>>>0>=9){while(1){xj(J[a>>2]);a=J[d+12>>2]+4|0;J[d+12>>2]=a;f=J[d+16>>2];b=f-a|0;if(b>>>0>8){continue}break}}h=170;r:{switch((b>>>2|0)-1|0){case 1:h=341;case 0:J[d+24>>2]=h;break;default:break r}}s:{if((a|0)==(f|0)){break s}while(1){xj(J[a>>2]);a=a+4|0;if((f|0)!=(a|0)){continue}break}a=J[d+16>>2];b=J[d+12>>2];if((a|0)==(b|0)){break s}J[d+16>>2]=a+((b-a|0)+3&-4)}a=J[d+8>>2];if(a){xj(a)}ia=d+32|0;break b}La();C()}La();C()}g=c}return g}function Cb(a,b,c){var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0;i=J[b+12>>2];e=J[b+20>>2];h=J[b+16>>2];d=h+4|0;e=d>>>0<4?e+1|0:e;a:{if(d>>>0>M[b+8>>2]&(e|0)>=(i|0)|(e|0)>(i|0)){break a}e=h+J[b>>2]|0;J[a>>2]=K[e|0]|K[e+1|0]<<8|(K[e+2|0]<<16|K[e+3|0]<<24);e=J[b+20>>2];i=e;d=J[b+16>>2];h=d+4|0;e=h>>>0<4?e+1|0:e;j=h;J[b+16>>2]=h;J[b+20>>2]=e;if(M[a>>2]>32){break a}h=J[b+12>>2];e=i;i=d+8|0;e=i>>>0<8?e+1|0:e;if(i>>>0>M[b+8>>2]&(e|0)>=(h|0)|(e|0)>(h|0)){break a}e=j+J[b>>2]|0;g=K[e|0]|K[e+1|0]<<8|(K[e+2|0]<<16|K[e+3|0]<<24);J[a+4>>2]=g;e=J[b+20>>2];i=J[b+16>>2]+4|0;e=i>>>0<4?e+1|0:e;J[b+16>>2]=i;J[b+20>>2]=e;if(!g){return 1}g=0;J[a+8>>2]=0;if(!je(a+16|0,b)){break a}if(!ie(a+32|0,b)){break a}if(!ie(a+52|0,b)){break a}if(!ie(a+72|0,b)){break a}p=J[a+4>>2];i=c;b=0;c=0;d=ia-32|0;ia=d;g=a;a=J[a+12>>2];J[d+16>>2]=0;J[d+8>>2]=0;J[d+12>>2]=0;b:{c:{if(a){if(a>>>0>=1073741824){break c}e=a<<2;b=Aj(e);J[d+8>>2]=b;c=b+e|0;J[d+16>>2]=c;Xi(b,0,e);J[d+12>>2]=c}e=J[g+116>>2];h=J[e>>2];if(h){J[e+4>>2]=h;xj(h);c=J[d+12>>2];b=J[d+8>>2];a=J[g+12>>2]}J[e+4>>2]=c;J[e>>2]=b;J[e+8>>2]=J[d+16>>2];b=0;J[d+16>>2]=0;J[d+8>>2]=0;J[d+12>>2]=0;d:{if(a){if(a>>>0>=1073741824){break d}a=a<<2;f=Aj(a);J[d+8>>2]=f;b=a+f|0;J[d+16>>2]=b;Xi(f,0,a);J[d+12>>2]=b}a=J[g+128>>2];c=J[a>>2];if(c){J[a+4>>2]=c;xj(c);f=J[d+8>>2];b=J[d+12>>2]}J[a+4>>2]=b;J[a>>2]=f;J[a+8>>2]=J[d+16>>2];J[d+24>>2]=0;J[d+28>>2]=0;J[d+16>>2]=0;J[d+20>>2]=0;J[d+8>>2]=0;J[d+12>>2]=0;Rb(d+8|0);a=J[d+24>>2]+J[d+28>>2]|0;b=(a>>>0)/341|0;a=J[J[d+12>>2]+(b<<2)>>2]+P(a-P(b,341)|0,12)|0;J[a+4>>2]=0;J[a+8>>2]=0;J[a>>2]=p;h=1;a=J[d+28>>2]+1|0;J[d+28>>2]=a;e:{if(!a){break e}s=g+16|0;while(1){b=J[d+12>>2];h=J[d+24>>2];f=a-1|0;c=h+f|0;e=(c>>>0)/341|0;c=J[b+(e<<2)>>2]+P(c-P(e,341)|0,12)|0;k=J[c+8>>2];e=J[c+4>>2];j=J[c>>2];J[d+28>>2]=f;c=J[d+16>>2];if((((b|0)!=(c|0)?P(c-b>>2,341)-1|0:0)-(a+h|0)|0)+1>>>0>=682){xj(J[c-4>>2]);J[d+16>>2]=J[d+16>>2]-4}if(j>>>0>p>>>0){h=0;break e}h=0;b=J[g+12>>2];a=(e|0)!=(b-1|0)?e+1|0:0;if(a>>>0>=b>>>0){break e}b=J[g+116>>2];f=P(k,12);n=b+f|0;c=J[g>>2];m=a<<2;q=f+J[g+128>>2]|0;e=J[m+J[q>>2]>>2];f:{if((c|0)==(e|0)){if(!j){break f}b=J[i+20>>2];c=J[i+16>>2];if((b|0)==(c|0)){a=J[g+8>>2];J[i+28>>2]=j+J[i+28>>2];J[g+8>>2]=a+j;break f}while(1){f=(b|0)==(c|0);a=b;e=0;b=c;g:{if(f){break g}while(1){f=J[i+28>>2];b=a;k=P(e,20)+c|0;m=J[k>>2];if(!K[m+84|0]){f=J[J[m+68>>2]+(f<<2)>>2]}if(M[m+80>>2]<=f>>>0){break g}l=J[n>>2]+(J[k+4>>2]<<2)|0;c=J[k+12>>2];b=l;h:{if(c>>>0>3){break h}a=0;b=J[i+12>>2];if(!J[k+16>>2]){break h}while(1){b=Vi(b,l+(a<<2)|0,c);c=J[k+12>>2];b=b+c|0;a=a+1|0;if(a>>>0>2]){continue}break}b=J[i+12>>2]}a=J[m+40>>2];Vi(J[J[m>>2]>>2]+P(a,f)|0,b,a);e=e+1|0;a=J[i+20>>2];b=a;c=J[i+16>>2];if(e>>>0<(b-c|0)/20>>>0){continue}break}}J[i+28>>2]=J[i+28>>2]+1;J[g+8>>2]=J[g+8>>2]+1;h=h+1|0;if((j|0)!=(h|0)){continue}break}break f}i:{j:{k:{l:{if(j>>>0<=2){c=J[g+104>>2];J[c>>2]=a;f=1;b=J[g+12>>2];if(b>>>0>1){break l}break i}if(M[g+8>>2]>M[g+4>>2]){break e}l=b;b=f+12|0;Sa(l+b|0,J[n>>2],J[n+4>>2]);b=m+J[b+J[g+116>>2]>>2]|0;J[b>>2]=J[b>>2]+(1<>2]=0;me(s,S(j)^31,d+4|0);b=j>>>1|0;c=J[d+4>>2];if(b>>>0>>0){break e}h=k+1|0;b=b-c|0;c=j-b|0;m:{if((c|0)==(b|0)){c=b;break m}e=J[g+84>>2];if((e|0)==J[g+76>>2]){break k}j=J[e>>2];n=J[g+88>>2];l=n+1|0;J[g+88>>2]=l;j=j&-2147483648>>>n;n:{if((l|0)==32){J[g+88>>2]=0;J[g+84>>2]=e+4;if(j){break n}break k}if(!j){break k}}}e=c;c=b;break j}while(1){a=(b-1|0)!=(a|0)?a+1|0:0;J[c+(f<<2)>>2]=a;b=J[g+12>>2];f=f+1|0;if(b>>>0>f>>>0){continue}break}break i}e=b}b=J[g+128>>2];f=b+f|0;j=J[f>>2];n=j+m|0;J[n>>2]=J[n>>2]+1;Sa(b+P(h,12)|0,j,J[f+4>>2]);if(c){b=J[d+28>>2]+J[d+24>>2]|0;j=J[d+16>>2];f=J[d+12>>2];if((b|0)==(((f|0)!=(j|0)?P(j-f>>2,341)-1|0:0)|0)){Rb(d+8|0);f=J[d+12>>2];b=J[d+24>>2]+J[d+28>>2]|0}l=f;f=(b>>>0)/341|0;b=J[l+(f<<2)>>2]+P(b-P(f,341)|0,12)|0;J[b+8>>2]=k;J[b+4>>2]=a;J[b>>2]=c;J[d+28>>2]=J[d+28>>2]+1}if(!e){break f}b=J[d+28>>2]+J[d+24>>2]|0;c=J[d+16>>2];f=J[d+12>>2];if((b|0)==(((c|0)!=(f|0)?P(c-f>>2,341)-1|0:0)|0)){Rb(d+8|0);f=J[d+12>>2];b=J[d+24>>2]+J[d+28>>2]|0}c=(b>>>0)/341|0;b=J[(c<<2)+f>>2]+P(b-P(c,341)|0,12)|0;J[b+8>>2]=h;J[b+4>>2]=a;J[b>>2]=e;J[d+28>>2]=J[d+28>>2]+1;break f}m=0;if(!j){break f}while(1){if(J[g+12>>2]){e=J[g+36>>2];t=J[q>>2];c=J[g+92>>2];u=J[g+104>>2];a=0;while(1){h=(a<<2)+u|0;J[c+(J[h>>2]<<2)>>2]=0;b=J[g>>2];f=J[h>>2]<<2;k=J[f+t>>2];o:{if((b|0)==(k|0)){break o}f=c+f|0;b=b-k|0;k=J[g+48>>2];o=32-k|0;if((b|0)<=(o|0)){l=J[g+44>>2];if((l|0)==(e|0)){h=0;break e}J[f>>2]=J[l>>2]<>>32-b;b=b+J[g+48>>2]|0;J[g+48>>2]=b;if((b|0)!=32){break o}J[g+48>>2]=0;J[g+44>>2]=l+4;break o}l=J[g+44>>2];r=l+4|0;if((e|0)==(r|0)){h=0;break e}v=J[l>>2];J[g+44>>2]=r;o=b-o|0;J[g+48>>2]=o;J[f>>2]=J[l+4>>2]>>>32-o|v<>>32-b}b=J[h>>2]<<2;h=b+c|0;J[h>>2]=J[h>>2]|J[b+J[n>>2]>>2];a=a+1|0;if(a>>>0>2]){continue}break}}e=0;a=J[i+16>>2];p:{if((a|0)==J[i+20>>2]){break p}while(1){f=J[i+28>>2];h=P(e,20)+a|0;k=J[h>>2];if(!K[k+84|0]){f=J[J[k+68>>2]+(f<<2)>>2]}if(M[k+80>>2]<=f>>>0){break p}l=J[g+92>>2]+(J[h+4>>2]<<2)|0;c=J[h+12>>2];b=l;q:{if(c>>>0>3){break q}a=0;b=J[i+12>>2];if(!J[h+16>>2]){break q}while(1){b=Vi(b,l+(a<<2)|0,c);c=J[h+12>>2];b=b+c|0;a=a+1|0;if(a>>>0>2]){continue}break}b=J[i+12>>2]}a=J[k+40>>2];Vi(J[J[k>>2]>>2]+P(a,f)|0,b,a);e=e+1|0;a=J[i+16>>2];if(e>>>0<(J[i+20>>2]-a|0)/20>>>0){continue}break}}J[i+28>>2]=J[i+28>>2]+1;J[g+8>>2]=J[g+8>>2]+1;m=m+1|0;if((j|0)!=(m|0)){continue}break}}a=J[d+28>>2];if(a){continue}break}h=1}J[d+28>>2]=0;f=J[d+16>>2];a=J[d+12>>2];b=f-a|0;if(b>>>0>=9){while(1){xj(J[a>>2]);a=J[d+12>>2]+4|0;J[d+12>>2]=a;f=J[d+16>>2];b=f-a|0;if(b>>>0>8){continue}break}}c=170;r:{switch((b>>>2|0)-1|0){case 1:c=341;case 0:J[d+24>>2]=c;break;default:break r}}s:{if((a|0)==(f|0)){break s}while(1){xj(J[a>>2]);a=a+4|0;if((f|0)!=(a|0)){continue}break}a=J[d+16>>2];b=J[d+12>>2];if((a|0)==(b|0)){break s}J[d+16>>2]=a+((b-a|0)+3&-4)}a=J[d+8>>2];if(a){xj(a)}ia=d+32|0;a=h;break b}La();C()}La();C()}g=a}return g}function Lc(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,D=0,E=0,F=0,G=0,H=0,I=0,K=0,L=0,M=0,N=0,O=0;g=ia+-64|0;ia=g;J[a+8>>2]=e;x=a+32|0;f=J[x>>2];d=J[a+36>>2]-f>>2;a:{b:{if(d>>>0>>0){Oa(x,e-d|0);J[g+56>>2]=0;J[g+60>>2]=0;J[g+48>>2]=0;J[g+52>>2]=0;J[g+40>>2]=0;J[g+44>>2]=0;J[g+32>>2]=0;J[g+36>>2]=0;J[g+24>>2]=0;J[g+28>>2]=0;J[g+16>>2]=0;J[g+20>>2]=0;J[g>>2]=0;break b}if(d>>>0>e>>>0){J[a+36>>2]=f+(e<<2)}J[g+56>>2]=0;J[g+60>>2]=0;J[g+48>>2]=0;J[g+52>>2]=0;J[g+40>>2]=0;J[g+44>>2]=0;J[g+32>>2]=0;J[g+36>>2]=0;J[g+24>>2]=0;J[g+28>>2]=0;J[g+16>>2]=0;J[g+20>>2]=0;J[g>>2]=0;d=0;if(!e){break a}}jb(g+16|0,e,g);h=J[g+28>>2];d=J[g+32>>2]}J[g>>2]=0;d=d-h>>2;c:{if(d>>>0>=e>>>0){if(d>>>0<=e>>>0){break c}J[g+32>>2]=(e<<2)+h;break c}jb(g+16|12,e-d|0,g)}J[g>>2]=0;f=J[g+40>>2];d=J[g+44>>2]-f>>2;d:{if(d>>>0>=e>>>0){if(d>>>0<=e>>>0){break d}J[g+44>>2]=f+(e<<2);break d}jb(g+40|0,e-d|0,g)}J[g>>2]=0;f=J[g+52>>2];d=J[g+56>>2]-f>>2;e:{if(d>>>0>=e>>>0){if(d>>>0<=e>>>0){break e}J[g+56>>2]=f+(e<<2);break e}jb(g+52|0,e-d|0,g)}f:{if(J[a+8>>2]<=0){break f}i=J[g+16>>2];j=J[a+32>>2];h=0;while(1){d=h<<2;f=J[d+i>>2];n=J[a+16>>2];g:{if((f|0)>(n|0)){J[d+j>>2]=n;break g}d=d+j|0;n=J[a+12>>2];if((n|0)>(f|0)){J[d>>2]=n;break g}J[d>>2]=f}h=h+1|0;d=J[a+8>>2];if((h|0)<(d|0)){continue}break}if((d|0)<=0){break f}d=0;while(1){i=d<<2;f=i+c|0;i=J[b+i>>2]+J[j+i>>2]|0;J[f>>2]=i;h:{if((i|0)>J[a+16>>2]){i=i-J[a+20>>2]|0}else{if((i|0)>=J[a+12>>2]){break h}i=i+J[a+20>>2]|0}J[f>>2]=i}d=d+1|0;if((d|0)>2]){continue}break}}G=J[a+52>>2];q=J[a+48>>2];y=Aj(16);d=y;J[d>>2]=0;J[d+4>>2]=0;J[d+8>>2]=0;J[d+12>>2]=0;J[g+8>>2]=0;J[g>>2]=0;J[g+4>>2]=0;i:{if(e){if(e>>>0>=1073741824){break i}d=e<<2;s=Aj(d);J[g>>2]=s;J[g+8>>2]=d+s;Xi(s,0,d)}d=J[a+56>>2];z=J[d>>2];d=J[d+4>>2]-z|0;j:{if((d|0)<5){break j}u=d>>2;H=(u|0)<=2?2:u;I=u>>>0<=1?1:u;A=e&-2;B=e&1;K=e&-4;D=e&3;E=e-1|0;L=e<<2;M=e>>>0<4;F=1;n=1;while(1){k:{l:{m:{n:{if((n|0)!=(I|0)){o:{p:{f=J[(n<<2)+z>>2];if((f|0)==-1){break p}k=1;d=f+2|0;j=(f>>>0)%3|0;v=j?f-1|0:d;o=1<>>5|0;i=0;N=(j|0)!=0|(d|0)!=-1;O=J[q>>2];d=f;q:{while(1){r:{if(J[(d>>>3&536870908)+O>>2]>>>d&1){break r}j=J[J[J[q+64>>2]+12>>2]+(d<<2)>>2];if((j|0)==-1){break r}m=J[G>>2];h=J[q+28>>2];r=J[m+(J[h+(j<<2)>>2]<<2)>>2];if((r|0)>=(n|0)){break r}l=j+1|0;l=J[m+(J[h+(((l>>>0)%3|0?l:j-2|0)<<2)>>2]<<2)>>2];if((l|0)>=(n|0)){break r}h=J[m+(J[h+(j+((j>>>0)%3|0?-1:2)<<2)>>2]<<2)>>2];if((h|0)>=(n|0)){break r}s:{if(!e){break s}j=J[(g+16|0)+P(i,12)>>2];m=P(e,h);l=P(e,l);r=P(e,r);h=0;w=0;if(E){while(1){J[j+(h<<2)>>2]=(J[(h+m<<2)+c>>2]+J[(h+l<<2)+c>>2]|0)-J[(h+r<<2)+c>>2];p=h|1;J[j+(p<<2)>>2]=(J[(m+p<<2)+c>>2]+J[(l+p<<2)+c>>2]|0)-J[(r+p<<2)+c>>2];h=h+2|0;w=w+2|0;if((A|0)!=(w|0)){continue}break}}if(!B){break s}J[j+(h<<2)>>2]=(J[(h+m<<2)+c>>2]+J[(h+l<<2)+c>>2]|0)-J[(h+r<<2)+c>>2]}j=4;i=i+1|0;if((i|0)==4){break q}}t:{if(k&1){h=d-2|0;j=d+1|0;d=-1;j=(j>>>0)%3|0?j:h;if((j|0)==-1|J[J[q>>2]+(j>>>3&536870908)>>2]>>>j&1){break t}j=J[J[J[q+64>>2]+12>>2]+(j<<2)>>2];if((j|0)==-1){break t}d=j+1|0;d=(d>>>0)%3|0?d:j-2|0;break t}u:{if((d>>>0)%3|0){h=d-1|0;break u}h=d+2|0;d=-1;if((h|0)==-1){break t}}d=-1;if(J[J[q>>2]+(h>>>3&536870908)>>2]>>>h&1){break t}j=J[J[J[q+64>>2]+12>>2]+(h<<2)>>2];if((j|0)==-1){break t}if((j>>>0)%3|0){d=j-1|0;break t}d=j+2|0}v:{if((d|0)==(f|0)){break v}if(!((k^1)&1|(d|0)!=-1)){if(!N|o&J[J[q>>2]+(t<<2)>>2]){break v}d=J[J[J[q+64>>2]+12>>2]+(v<<2)>>2];if((d|0)==-1){break v}k=0;d=(d>>>0)%3|0?d-1|0:d+2|0}if((d|0)!=-1){continue}}break}j=i;if((j|0)<=0){break p}}if(e){Xi(s,0,L)}d=j-1|0;r=(d<<2)+y|0;d=P(d,12)+a|0;v=d;w=J[d- -64>>2];k=0;d=J[g>>2];f=0;while(1){i=J[r>>2];J[r>>2]=i+1;if(i>>>0>=w>>>0){break j}w:{if(J[J[v+60>>2]+(i>>>3&536870908)>>2]>>>i&1){break w}f=f+1|0;if(!e){break w}m=J[(g+16|0)+P(k,12)>>2];i=0;h=0;p=0;if(!M){while(1){l=h<<2;o=l+d|0;J[o>>2]=J[m+l>>2]+J[o>>2];o=l|4;t=o+d|0;J[t>>2]=J[m+o>>2]+J[t>>2];o=l|8;t=o+d|0;J[t>>2]=J[m+o>>2]+J[t>>2];l=l|12;o=l+d|0;J[o>>2]=J[m+l>>2]+J[o>>2];h=h+4|0;p=p+4|0;if((K|0)!=(p|0)){continue}break}}if(!D){break w}while(1){l=h<<2;p=l+d|0;J[p>>2]=J[m+l>>2]+J[p>>2];h=h+1|0;i=i+1|0;if((D|0)!=(i|0)){continue}break}}k=k+1|0;if((k|0)!=(j|0)){continue}break}i=P(e,n);if(!f){break o}if(!e){break l}h=0;d=0;if(E){break n}break m}i=P(e,n)}if(J[a+8>>2]<=0){break k}k=(P(n-1|0,e)<<2)+c|0;j=J[x>>2];h=0;while(1){d=h<<2;f=J[d+k>>2];m=J[a+16>>2];x:{if((f|0)>(m|0)){J[d+j>>2]=m;break x}d=d+j|0;m=J[a+12>>2];if((m|0)>(f|0)){J[d>>2]=m;break x}J[d>>2]=f}h=h+1|0;f=J[a+8>>2];if((h|0)<(f|0)){continue}break}d=0;if((f|0)<=0){break k}f=i<<2;h=f+c|0;k=b+f|0;while(1){i=d<<2;f=i+h|0;i=J[i+k>>2]+J[j+i>>2]|0;J[f>>2]=i;y:{if((i|0)>J[a+16>>2]){i=i-J[a+20>>2]|0}else{if((i|0)>=J[a+12>>2]){break y}i=i+J[a+20>>2]|0}J[f>>2]=i}d=d+1|0;if((d|0)>2]){continue}break}break k}Bc();C()}while(1){j=h<<2;k=j+s|0;J[k>>2]=J[k>>2]/(f|0);j=(j|4)+s|0;J[j>>2]=J[j>>2]/(f|0);h=h+2|0;d=d+2|0;if((A|0)!=(d|0)){continue}break}}if(!B){break l}d=(h<<2)+s|0;J[d>>2]=J[d>>2]/(f|0)}if(J[a+8>>2]<=0){break k}j=J[x>>2];h=0;while(1){d=h<<2;f=J[d+s>>2];k=J[a+16>>2];z:{if((f|0)>(k|0)){J[d+j>>2]=k;break z}d=d+j|0;k=J[a+12>>2];if((k|0)>(f|0)){J[d>>2]=k;break z}J[d>>2]=f}h=h+1|0;f=J[a+8>>2];if((h|0)<(f|0)){continue}break}d=0;if((f|0)<=0){break k}f=i<<2;h=f+c|0;k=b+f|0;while(1){i=d<<2;f=i+h|0;i=J[i+k>>2]+J[j+i>>2]|0;J[f>>2]=i;A:{if((i|0)>J[a+16>>2]){i=i-J[a+20>>2]|0}else{if((i|0)>=J[a+12>>2]){break A}i=i+J[a+20>>2]|0}J[f>>2]=i}d=d+1|0;if((d|0)>2]){continue}break}}n=n+1|0;F=(u|0)>(n|0);if((n|0)!=(H|0)){continue}break}}a=J[g>>2];if(a){xj(a)}xj(y);a=J[g+52>>2];if(a){J[g+56>>2]=a;xj(a)}a=J[g+40>>2];if(a){J[g+44>>2]=a;xj(a)}a=J[g+28>>2];if(a){J[g+32>>2]=a;xj(a)}a=J[g+16>>2];if(a){J[g+20>>2]=a;xj(a)}ia=g- -64|0;return(F^-1)&1}La();C()}function cf(a,b){var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0;f=ia-32|0;ia=f;k=J[J[a+4>>2]+44>>2];d=J[a+8>>2];h=J[d>>2];d=J[d+4>>2];J[f+24>>2]=0;J[f+16>>2]=0;J[f+20>>2]=0;e=(d-h>>2>>>0)/3|0;d=J[k+96>>2];g=(J[k+100>>2]-d|0)/12|0;a:{if(e>>>0>g>>>0){j=e-g|0;c=J[k+104>>2];h=J[k+100>>2];if(j>>>0<=(c-h|0)/12>>>0){b:{if(!j){break b}d=P(j,12);j=d;e=d-12|0;g=((e>>>0)/12|0)+1&3;c:{if(!g){d=h;break c}d=h;while(1){c=J[f+20>>2];J[d>>2]=J[f+16>>2];J[d+4>>2]=c;J[d+8>>2]=J[f+24>>2];d=d+12|0;i=i+1|0;if((g|0)!=(i|0)){continue}break}}h=h+j|0;if(e>>>0<36){break b}while(1){c=J[f+20>>2];J[d>>2]=J[f+16>>2];J[d+4>>2]=c;J[d+8>>2]=J[f+24>>2];J[d+20>>2]=J[f+24>>2];c=J[f+20>>2];J[d+12>>2]=J[f+16>>2];J[d+16>>2]=c;J[d+32>>2]=J[f+24>>2];c=J[f+20>>2];J[d+24>>2]=J[f+16>>2];J[d+28>>2]=c;c=J[f+20>>2];J[d+36>>2]=J[f+16>>2];J[d+40>>2]=c;J[d+44>>2]=J[f+24>>2];d=d+48|0;if((h|0)!=(d|0)){continue}break}}J[k+100>>2]=h;break a}d:{d=J[k+96>>2];g=(h-d|0)/12|0;e=g+j|0;if(e>>>0<357913942){c=(c-d|0)/12|0;d=c<<1;l=c>>>0>=178956970?357913941:d>>>0>e>>>0?d:e;if(l){if(l>>>0>=357913942){break d}o=Aj(P(l,12))}c=P(g,12)+o|0;d=c;m=P(j,12);j=m-12|0;e=((j>>>0)/12|0)+1&3;if(e){d=c;while(1){g=J[f+20>>2];J[d>>2]=J[f+16>>2];J[d+4>>2]=g;J[d+8>>2]=J[f+24>>2];d=d+12|0;i=i+1|0;if((e|0)!=(i|0)){continue}break}}e=c+m|0;if(j>>>0>=36){while(1){g=J[f+20>>2];J[d>>2]=J[f+16>>2];J[d+4>>2]=g;J[d+8>>2]=J[f+24>>2];J[d+20>>2]=J[f+24>>2];g=J[f+20>>2];J[d+12>>2]=J[f+16>>2];J[d+16>>2]=g;J[d+32>>2]=J[f+24>>2];g=J[f+20>>2];J[d+24>>2]=J[f+16>>2];J[d+28>>2]=g;g=J[f+20>>2];J[d+36>>2]=J[f+16>>2];J[d+40>>2]=g;J[d+44>>2]=J[f+24>>2];d=d+48|0;if((e|0)!=(d|0)){continue}break}}g=J[k+96>>2];h=h-g|0;d=c+P((h|0)/-12|0,12)|0;if((h|0)>0){Vi(d,g,h)}J[k+104>>2]=P(l,12)+o;J[k+100>>2]=e;J[k+96>>2]=d;if(g){xj(g)}break a}La();C()}Za();C()}if(e>>>0>=g>>>0){break a}J[k+100>>2]=d+P(e,12)}e:{if(J[a+216>>2]==J[a+220>>2]){e=J[a+4>>2];h=J[e+44>>2];d=J[h+100>>2];m=J[h+96>>2];if((d|0)!=(m|0)){d=(d-m|0)/12|0;g=d>>>0<=1?1:d;c=0;while(1){k=J[a+8>>2];h=m+P(c,12)|0;l=P(c,3);f:{g:{if((l|0)==-1){i=J[(J[k>>2]+(l<<2)|0)+4>>2];n=-1;d=1;break g}i=-1;n=J[J[k>>2]+(l<<2)>>2];d=l+1|0;if((d|0)==-1){d=0;break g}i=J[J[k>>2]+(d<<2)>>2];d=l+2|0;j=-1;if((d|0)==-1){break f}}j=J[J[k>>2]+(d<<2)>>2]}J[h+8>>2]=j;J[h+4>>2]=i;J[h>>2]=n;c=c+1|0;if((g|0)!=(c|0)){continue}break}}J[J[e+4>>2]+80>>2]=b;c=1;break e}h=0;J[f+24>>2]=0;J[f+16>>2]=0;J[f+20>>2]=0;o=J[a+8>>2];c=J[o>>2];d=J[o+4>>2];J[f+8>>2]=0;J[f>>2]=0;J[f+4>>2]=0;b=0;h:{i:{j:{k:{l:{m:{if((d|0)!=(c|0)){d=d-c|0;if((d|0)<0){break m}b=Aj(d);J[f>>2]=b;J[f+8>>2]=(d&-4)+b;u=f,v=Xi(b,0,d)+d|0,J[u+4>>2]=v}c=J[o+24>>2];if((J[o+28>>2]-c|0)<=0){break i}d=0;while(1){g=J[(q<<2)+c>>2];n:{if((g|0)==-1){break n}o:{if(J[J[a+120>>2]+(q>>>3&536870908)>>2]>>>q&1){break o}s=J[a+216>>2];c=J[a+220>>2];if((s|0)==(c|0)){break o}i=g+2|0;e=(g>>>0)%3|0;t=e?g-1|0:i;c=(c-s|0)/144|0;k=c>>>0<=1?1:c;r=0;l=(e|0)!=0|(i|0)!=-1;while(1){e=g<<2;i=P(r,144)+s|0;c=J[e+J[J[i+68>>2]>>2]>>2];p:{if(!(J[J[i+16>>2]+(c>>>3&536870908)>>2]>>>c&1)){break p}c=-1;q:{if(!l){break q}j=J[J[o+12>>2]+(t<<2)>>2];c=-1;if((j|0)==-1){break q}c=j-1|0;if((j>>>0)%3|0){break q}c=j+2|0}if((g|0)==(c|0)){break p}m=J[i+32>>2];j=J[m+e>>2];while(1){i=0;if((c|0)==-1){break h}if((j|0)!=J[m+(c<<2)>>2]){g=c;break o}r:{s:{if((c>>>0)%3|0){i=c-1|0;break s}i=c+2|0;e=-1;if((i|0)==-1){break r}}c=J[J[o+12>>2]+(i<<2)>>2];e=-1;if((c|0)==-1){break r}e=c-1|0;if((c>>>0)%3|0){break r}e=c+2|0}c=e;if((g|0)!=(c|0)){continue}break}}r=r+1|0;if((k|0)!=(r|0)){continue}break}}j=n-d|0;i=j>>2;J[(g<<2)+b>>2]=i;t:{if(n>>>0

>>0){J[n>>2]=g;n=n+4|0;J[f+20>>2]=n;break t}e=i+1|0;if(e>>>0>=1073741824){break l}c=p-d|0;h=c>>1;e=c>>>0>=2147483644?1073741823:e>>>0>>0?h:e;if(e){if(e>>>0>=1073741824){break k}h=Aj(e<<2)}else{h=0}c=h+(i<<2)|0;J[c>>2]=g;p=(e<<2)+h|0;n=c+4|0;if((j|0)>0){Vi(h,d,j)}J[f+24>>2]=p;J[f+20>>2]=n;J[f+16>>2]=h;if(d){xj(d);o=J[a+8>>2]}d=h}if((g|0)==-1){break n}u:{if((g>>>0)%3|0){c=g-1|0;break u}c=g+2|0;if((c|0)==-1){break n}}c=J[J[o+12>>2]+(c<<2)>>2];if((c|0)==-1){break n}c=c+((c>>>0)%3|0?-1:2)|0;if((c|0)==-1){break n}i=g;if((g|0)==(c|0)){break n}while(1){e=c;v:{w:{c=J[a+220>>2];k=J[a+216>>2];if((c|0)==(k|0)){break w}c=(c-k|0)/144|0;l=c>>>0<=1?1:c;c=0;while(1){m=J[(k+P(c,144)|0)+32>>2];j=e<<2;if(J[m+j>>2]==J[m+(i<<2)>>2]){c=c+1|0;if((l|0)!=(c|0)){continue}break w}break}d=b+j|0;m=n-h|0;j=m>>2;J[d>>2]=j;if(n>>>0

>>0){J[n>>2]=e;n=n+4|0;J[f+20>>2]=n;d=h;break v}i=j+1|0;if(i>>>0>=1073741824){break j}c=p-h|0;d=c>>1;i=c>>>0>=2147483644?1073741823:d>>>0>i>>>0?d:i;if(i){if(i>>>0>=1073741824){break k}d=Aj(i<<2)}else{d=0}c=d+(j<<2)|0;J[c>>2]=e;p=(i<<2)+d|0;n=c+4|0;if((m|0)>0){Vi(d,h,m)}J[f+24>>2]=p;J[f+20>>2]=n;J[f+16>>2]=d;if(!h){h=d;break v}xj(h);o=J[a+8>>2];h=d;break v}J[(e<<2)+b>>2]=J[(i<<2)+b>>2]}if((e|0)==-1){break n}x:{if((e>>>0)%3|0){c=e-1|0;break x}c=e+2|0;if((c|0)==-1){break n}}c=J[J[o+12>>2]+(c<<2)>>2];if((c|0)==-1){break n}c=c+((c>>>0)%3|0?-1:2)|0;if((c|0)==-1){break n}i=e;if((c|0)!=(g|0)){continue}break}}q=q+1|0;c=J[o+24>>2];if((q|0)>2]-c>>2){continue}break}break i}La();C()}La();C()}Za();C()}La();C()}m=J[a+4>>2];d=J[m+44>>2];a=J[d+100>>2];k=J[d+96>>2];y:{if((a|0)==(k|0)){break y}d=(a-k|0)/12|0;a=d>>>0<=1?1:d;j=a&1;c=0;if(d>>>0>=2){i=a&-2;d=0;while(1){e=P(c,12);l=e+b|0;g=J[l+4>>2];a=J[l>>2];e=e+k|0;J[e+8>>2]=J[l+8>>2];J[e>>2]=a;J[e+4>>2]=g;e=P(c|1,12);l=e+b|0;g=J[l+4>>2];a=J[l>>2];e=e+k|0;J[e+8>>2]=J[l+8>>2];J[e>>2]=a;J[e+4>>2]=g;c=c+2|0;d=d+2|0;if((i|0)!=(d|0)){continue}break}}if(!j){break y}c=P(c,12);g=c+b|0;d=J[g+4>>2];a=J[g>>2];c=c+k|0;J[c+8>>2]=J[g+8>>2];J[c>>2]=a;J[c+4>>2]=d}J[J[m+4>>2]+80>>2]=n-h>>2;i=1}c=i;if(b){xj(b)}if(!h){break e}J[f+20>>2]=h;xj(h)}ia=f+32|0;return c}function nd(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,D=0,E=0,F=0,G=0,H=0,I=0,K=0,L=0,M=0;h=ia+-64|0;ia=h;J[a+8>>2]=e;w=a+32|0;f=J[w>>2];d=J[a+36>>2]-f>>2;a:{b:{if(d>>>0>>0){Oa(w,e-d|0);J[h+56>>2]=0;J[h+60>>2]=0;J[h+48>>2]=0;J[h+52>>2]=0;J[h+40>>2]=0;J[h+44>>2]=0;J[h+32>>2]=0;J[h+36>>2]=0;J[h+24>>2]=0;J[h+28>>2]=0;J[h+16>>2]=0;J[h+20>>2]=0;J[h>>2]=0;break b}if(d>>>0>e>>>0){J[a+36>>2]=f+(e<<2)}J[h+56>>2]=0;J[h+60>>2]=0;J[h+48>>2]=0;J[h+52>>2]=0;J[h+40>>2]=0;J[h+44>>2]=0;J[h+32>>2]=0;J[h+36>>2]=0;J[h+24>>2]=0;J[h+28>>2]=0;J[h+16>>2]=0;J[h+20>>2]=0;J[h>>2]=0;d=0;if(!e){break a}}jb(h+16|0,e,h);i=J[h+28>>2];d=J[h+32>>2]}J[h>>2]=0;d=d-i>>2;c:{if(d>>>0>=e>>>0){if(d>>>0<=e>>>0){break c}J[h+32>>2]=(e<<2)+i;break c}jb(h+16|12,e-d|0,h)}J[h>>2]=0;f=J[h+40>>2];d=J[h+44>>2]-f>>2;d:{if(d>>>0>=e>>>0){if(d>>>0<=e>>>0){break d}J[h+44>>2]=f+(e<<2);break d}jb(h+40|0,e-d|0,h)}J[h>>2]=0;f=J[h+52>>2];d=J[h+56>>2]-f>>2;e:{if(d>>>0>=e>>>0){if(d>>>0<=e>>>0){break e}J[h+56>>2]=f+(e<<2);break e}jb(h+52|0,e-d|0,h)}f:{if(J[a+8>>2]<=0){break f}g=J[h+16>>2];j=J[a+32>>2];i=0;while(1){d=i<<2;f=J[d+g>>2];m=J[a+16>>2];g:{if((f|0)>(m|0)){J[d+j>>2]=m;break g}d=d+j|0;m=J[a+12>>2];if((m|0)>(f|0)){J[d>>2]=m;break g}J[d>>2]=f}i=i+1|0;d=J[a+8>>2];if((i|0)<(d|0)){continue}break}if((d|0)<=0){break f}d=0;while(1){g=d<<2;f=g+c|0;g=J[b+g>>2]+J[g+j>>2]|0;J[f>>2]=g;h:{if((g|0)>J[a+16>>2]){g=g-J[a+20>>2]|0}else{if((g|0)>=J[a+12>>2]){break h}g=g+J[a+20>>2]|0}J[f>>2]=g}d=d+1|0;if((d|0)>2]){continue}break}}G=J[a+52>>2];y=J[a+48>>2];x=Aj(16);d=x;J[d>>2]=0;J[d+4>>2]=0;J[d+8>>2]=0;J[d+12>>2]=0;J[h+8>>2]=0;J[h>>2]=0;J[h+4>>2]=0;i:{if(e){if(e>>>0>=1073741824){break i}d=e<<2;t=Aj(d);J[h>>2]=t;J[h+8>>2]=d+t;Xi(t,0,d)}d=J[a+56>>2];z=J[d>>2];d=J[d+4>>2]-z|0;j:{if((d|0)<5){break j}v=d>>2;H=(v|0)<=2?2:v;I=v>>>0<=1?1:v;A=e&-2;B=e&1;K=e&-4;D=e&3;E=e-1|0;L=e<<2;M=e>>>0<4;F=1;m=1;while(1){k:{l:{m:{n:{if((m|0)!=(I|0)){o:{p:{f=J[(m<<2)+z>>2];if((f|0)==-1){break p}n=J[y+12>>2];d=f+2|0;g=(f>>>0)%3|0;q=n+((g?f-1|0:d)<<2)|0;j=0;u=(g|0)!=0|(d|0)!=-1;k=1;d=f;q:{while(1){g=J[n+(d<<2)>>2];r:{if((g|0)==-1){break r}l=-1;p=J[G>>2];r=J[y>>2];i=p+(J[r+(g<<2)>>2]<<2)|0;o=g+1|0;o=(o>>>0)%3|0?o:g-2|0;if((o|0)!=-1){l=J[r+(o<<2)>>2]}o=J[i>>2];s:{t:{if((g>>>0)%3|0){i=g-1|0;break t}i=g+2|0;s=-1;if((i|0)==-1){break s}}s=J[r+(i<<2)>>2]}if((m|0)<=(o|0)){break r}i=J[p+(l<<2)>>2];if((i|0)>=(m|0)){break r}l=J[p+(s<<2)>>2];if((l|0)>=(m|0)){break r}g=J[(h+16|0)+P(j,12)>>2];u:{if(!e){break u}l=P(e,l);r=P(e,i);p=P(e,o);i=0;s=0;if(E){while(1){J[g+(i<<2)>>2]=(J[(i+l<<2)+c>>2]+J[(i+r<<2)+c>>2]|0)-J[(i+p<<2)+c>>2];o=i|1;J[g+(o<<2)>>2]=(J[(l+o<<2)+c>>2]+J[(o+r<<2)+c>>2]|0)-J[(o+p<<2)+c>>2];i=i+2|0;s=s+2|0;if((A|0)!=(s|0)){continue}break}}if(!B){break u}J[g+(i<<2)>>2]=(J[(i+l<<2)+c>>2]+J[(i+r<<2)+c>>2]|0)-J[(i+p<<2)+c>>2]}g=4;j=j+1|0;if((j|0)==4){break q}}v:{if(k&1){i=d+1|0;d=(i>>>0)%3|0?i:d-2|0;g=-1;if((d|0)==-1){break v}d=J[n+(d<<2)>>2];g=-1;if((d|0)==-1){break v}g=d+1|0;g=(g>>>0)%3|0?g:d-2|0;break v}w:{if((d>>>0)%3|0){i=d-1|0;break w}i=d+2|0;g=-1;if((i|0)==-1){break v}}d=J[n+(i<<2)>>2];g=-1;if((d|0)==-1){break v}g=d-1|0;if((d>>>0)%3|0){break v}g=d+2|0}d=g;x:{if((f|0)==(d|0)){break x}if(!((k^1)&1|(d|0)!=-1)){if(!u){break x}d=J[q>>2];if((d|0)==-1){break x}k=0;d=(d>>>0)%3|0?d-1|0:d+2|0}if((d|0)!=-1){continue}}break}g=j;if((g|0)<=0){break p}}if(e){Xi(t,0,L)}d=g-1|0;r=(d<<2)+x|0;d=P(d,12)+a|0;o=d;s=J[d- -64>>2];k=0;d=J[h>>2];f=0;while(1){j=J[r>>2];J[r>>2]=j+1;if(j>>>0>=s>>>0){break j}y:{if(J[J[o+60>>2]+(j>>>3&536870908)>>2]>>>j&1){break y}f=f+1|0;if(!e){break y}j=J[(h+16|0)+P(k,12)>>2];l=0;i=0;p=0;if(!M){while(1){n=i<<2;q=n+d|0;J[q>>2]=J[j+n>>2]+J[q>>2];q=n|4;u=q+d|0;J[u>>2]=J[j+q>>2]+J[u>>2];q=n|8;u=q+d|0;J[u>>2]=J[j+q>>2]+J[u>>2];n=n|12;q=n+d|0;J[q>>2]=J[j+n>>2]+J[q>>2];i=i+4|0;p=p+4|0;if((K|0)!=(p|0)){continue}break}}if(!D){break y}while(1){n=i<<2;p=n+d|0;J[p>>2]=J[j+n>>2]+J[p>>2];i=i+1|0;l=l+1|0;if((D|0)!=(l|0)){continue}break}}k=k+1|0;if((k|0)!=(g|0)){continue}break}g=P(e,m);if(!f){break o}if(!e){break l}i=0;d=0;if(E){break n}break m}g=P(e,m)}if(J[a+8>>2]<=0){break k}k=(P(m-1|0,e)<<2)+c|0;j=J[w>>2];i=0;while(1){d=i<<2;f=J[d+k>>2];l=J[a+16>>2];z:{if((f|0)>(l|0)){J[d+j>>2]=l;break z}d=d+j|0;l=J[a+12>>2];if((l|0)>(f|0)){J[d>>2]=l;break z}J[d>>2]=f}i=i+1|0;f=J[a+8>>2];if((i|0)<(f|0)){continue}break}d=0;if((f|0)<=0){break k}f=g<<2;i=f+c|0;k=b+f|0;while(1){g=d<<2;f=g+i|0;g=J[g+k>>2]+J[g+j>>2]|0;J[f>>2]=g;A:{if((g|0)>J[a+16>>2]){g=g-J[a+20>>2]|0}else{if((g|0)>=J[a+12>>2]){break A}g=g+J[a+20>>2]|0}J[f>>2]=g}d=d+1|0;if((d|0)>2]){continue}break}break k}Bc();C()}while(1){j=i<<2;k=j+t|0;J[k>>2]=J[k>>2]/(f|0);j=(j|4)+t|0;J[j>>2]=J[j>>2]/(f|0);i=i+2|0;d=d+2|0;if((A|0)!=(d|0)){continue}break}}if(!B){break l}d=(i<<2)+t|0;J[d>>2]=J[d>>2]/(f|0)}if(J[a+8>>2]<=0){break k}j=J[w>>2];i=0;while(1){d=i<<2;f=J[d+t>>2];k=J[a+16>>2];B:{if((f|0)>(k|0)){J[d+j>>2]=k;break B}d=d+j|0;k=J[a+12>>2];if((k|0)>(f|0)){J[d>>2]=k;break B}J[d>>2]=f}i=i+1|0;f=J[a+8>>2];if((i|0)<(f|0)){continue}break}d=0;if((f|0)<=0){break k}f=g<<2;i=f+c|0;k=b+f|0;while(1){g=d<<2;f=g+i|0;g=J[g+k>>2]+J[g+j>>2]|0;J[f>>2]=g;C:{if((g|0)>J[a+16>>2]){g=g-J[a+20>>2]|0}else{if((g|0)>=J[a+12>>2]){break C}g=g+J[a+20>>2]|0}J[f>>2]=g}d=d+1|0;if((d|0)>2]){continue}break}}m=m+1|0;F=(v|0)>(m|0);if((m|0)!=(H|0)){continue}break}}a=J[h>>2];if(a){xj(a)}xj(x);a=J[h+52>>2];if(a){J[h+56>>2]=a;xj(a)}a=J[h+40>>2];if(a){J[h+44>>2]=a;xj(a)}a=J[h+28>>2];if(a){J[h+32>>2]=a;xj(a)}a=J[h+16>>2];if(a){J[h+20>>2]=a;xj(a)}ia=h- -64|0;return(F^-1)&1}La();C()}function qj(a,b,c,d,e,f){a=a|0;b=+b;c=c|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,w=0,x=0,y=0,z=0;l=ia-560|0;ia=l;J[l+44>>2]=0;A(+b);g=v(1)|0;v(0)|0;a:{if((g|0)<0){s=1;w=1142;b=-b;A(+b);g=v(1)|0;v(0)|0;break a}if(e&2048){s=1;w=1145;break a}s=e&1;w=s?1148:1143;z=!s}b:{if((g&2146435072)==2146435072){d=s+3|0;pj(a,32,c,d,e&-65537);lj(a,w,s);f=f&32;lj(a,b!=b?f?1205:1293:f?1268:1297,3);pj(a,32,c,d,e^8192);i=(c|0)<(d|0)?d:c;break b}u=l+16|0;c:{d:{e:{b=ij(b,l+44|0);b=b+b;if(b!=0){g=J[l+44>>2];J[l+44>>2]=g-1;r=f|32;if((r|0)!=97){break e}break c}r=f|32;if((r|0)==97){break c}k=J[l+44>>2];m=(d|0)<0?6:d;break d}k=g-29|0;J[l+44>>2]=k;b=b*268435456;m=(d|0)<0?6:d}p=(l+48|0)+((k|0)>=0?288:0)|0;h=p;while(1){if(b<4294967296&b>=0){d=~~b>>>0}else{d=0}J[h>>2]=d;h=h+4|0;b=(b-+(d>>>0))*1e9;if(b!=0){continue}break}f:{if((k|0)<=0){d=k;g=h;j=p;break f}j=p;d=k;while(1){d=(d|0)>=29?29:d;g=h-4|0;g:{if(j>>>0>g>>>0){break g}i=0;while(1){o=J[g>>2];n=d&31;x=i;if((d&63)>>>0>=32){i=o<>>32-n;o=o<>>0>>0?i+1|0:i;i=lk(n,i,1e9,0);o=jk(i,ma,1e9,0);J[g>>2]=n-o;g=g-4|0;if(j>>>0<=g>>>0){continue}break}if(!i){break g}j=j-4|0;J[j>>2]=i}while(1){g=h;if(j>>>0>>0){h=g-4|0;if(!J[h>>2]){continue}}break}d=J[l+44>>2]-d|0;J[l+44>>2]=d;h=g;if((d|0)>0){continue}break}}if((d|0)<0){t=((m+25>>>0)/9|0)+1|0;n=(r|0)==102;while(1){d=0-d|0;i=(d|0)>=9?9:d;h:{if(g>>>0<=j>>>0){h=J[j>>2];break h}o=1e9>>>i|0;y=-1<>2];J[h>>2]=x+(d>>>i|0);d=P(o,d&y);h=h+4|0;if(h>>>0>>0){continue}break}h=J[j>>2];if(!d){break h}J[g>>2]=d;g=g+4|0}d=i+J[l+44>>2]|0;J[l+44>>2]=d;j=(!h<<2)+j|0;h=n?p:j;g=g-h>>2>(t|0)?h+(t<<2)|0:g;if((d|0)<0){continue}break}}d=0;i:{if(g>>>0<=j>>>0){break i}d=P(p-j>>2,9);h=10;i=J[j>>2];if(i>>>0<10){break i}while(1){d=d+1|0;h=P(h,10);if(i>>>0>=h>>>0){continue}break}}h=(m-((r|0)!=102?d:0)|0)-((r|0)==103&(m|0)!=0)|0;if((h|0)<(P(g-p>>2,9)-9|0)){i=h+9216|0;n=(i|0)/9|0;k=((((k|0)<0?4:292)+l|0)+(n<<2)|0)-4048|0;h=10;i=i-P(n,9)|0;if((i|0)<=7){while(1){h=P(h,10);i=i+1|0;if((i|0)!=8){continue}break}}n=J[k>>2];t=(n>>>0)/(h>>>0)|0;i=n-P(h,t)|0;o=k+4|0;j:{if(!i&(o|0)==(g|0)){break j}k:{if(!(t&1)){b=9007199254740992;if(!(H[k-4|0]&1)|((h|0)!=1e9|j>>>0>=k>>>0)){break k}}b=9007199254740994}q=(g|0)==(o|0)?1:1.5;o=h>>>1|0;q=i>>>0>>0?.5:(o|0)==(i|0)?q:1.5;if(!(K[w|0]!=45|z)){q=-q;b=-b}i=n-i|0;J[k>>2]=i;if(b+q==b){break j}d=h+i|0;J[k>>2]=d;if(d>>>0>=1e9){while(1){J[k>>2]=0;k=k-4|0;if(k>>>0>>0){j=j-4|0;J[j>>2]=0}d=J[k>>2]+1|0;J[k>>2]=d;if(d>>>0>999999999){continue}break}}d=P(p-j>>2,9);h=10;i=J[j>>2];if(i>>>0<10){break j}while(1){d=d+1|0;h=P(h,10);if(i>>>0>=h>>>0){continue}break}}h=k+4|0;g=g>>>0>h>>>0?h:g}while(1){h=g;i=g>>>0<=j>>>0;if(!i){g=h-4|0;if(!J[g>>2]){continue}}break}l:{if((r|0)!=103){k=e&8;break l}g=m?m:1;k=(g|0)>(d|0)&(d|0)>-5;m=(k?d^-1:-1)+g|0;f=(k?-1:-2)+f|0;k=e&8;if(k){break l}g=-9;m:{if(i){break m}n=J[h-4>>2];if(!n){break m}i=10;g=0;if((n>>>0)%10|0){break m}while(1){k=g;g=g+1|0;i=P(i,10);if(!((n>>>0)%(i>>>0)|0)){continue}break}g=k^-1}i=P(h-p>>2,9);if((f&-33)==70){k=0;g=(g+i|0)-9|0;g=(g|0)>0?g:0;m=(g|0)>(m|0)?m:g;break l}k=0;g=((d+i|0)+g|0)-9|0;g=(g|0)>0?g:0;m=(g|0)>(m|0)?m:g}i=-1;r=k|m;if(((r?2147483645:2147483646)|0)<(m|0)){break b}n=(((r|0)!=0)+m|0)+1|0;o=f&-33;n:{if((o|0)==70){if((n^2147483647)<(d|0)){break b}g=(d|0)>0?d:0;break n}g=d>>31;g=oj((g^d)-g|0,0,u);if((u-g|0)<=1){while(1){g=g-1|0;H[g|0]=48;if((u-g|0)<2){continue}break}}t=g-2|0;H[t|0]=f;H[g-1|0]=(d|0)<0?45:43;g=u-t|0;if((g|0)>(n^2147483647)){break b}}d=g+n|0;if((d|0)>(s^2147483647)){break b}f=d+s|0;pj(a,32,c,f,e);lj(a,w,s);pj(a,48,c,f,e^65536);o:{p:{q:{if((o|0)==70){g=l+16|0;d=g|8;k=g|9;i=j>>>0>p>>>0?p:j;j=i;while(1){g=oj(J[j>>2],0,k);r:{if((i|0)!=(j|0)){if(l+16>>>0>=g>>>0){break r}while(1){g=g-1|0;H[g|0]=48;if(l+16>>>0>>0){continue}break}break r}if((g|0)!=(k|0)){break r}H[l+24|0]=48;g=d}lj(a,g,k-g|0);j=j+4|0;if(p>>>0>=j>>>0){continue}break}if(r){lj(a,1647,1)}if((m|0)<=0|h>>>0<=j>>>0){break q}while(1){g=oj(J[j>>2],0,k);if(g>>>0>l+16>>>0){while(1){g=g-1|0;H[g|0]=48;if(l+16>>>0>>0){continue}break}}lj(a,g,(m|0)>=9?9:m);g=m-9|0;j=j+4|0;if(h>>>0<=j>>>0){break p}d=(m|0)>9;m=g;if(d){continue}break}break p}s:{if((m|0)<0){break s}i=h>>>0>j>>>0?h:j+4|0;g=l+16|0;d=g|8;p=g|9;h=j;while(1){g=oj(J[h>>2],0,p);if((p|0)==(g|0)){H[l+24|0]=48;g=d}t:{if((h|0)!=(j|0)){if(l+16>>>0>=g>>>0){break t}while(1){g=g-1|0;H[g|0]=48;if(l+16>>>0>>0){continue}break}break t}lj(a,g,1);g=g+1|0;if(!(k|m)){break t}lj(a,1647,1)}x=g;g=p-g|0;lj(a,x,(g|0)>(m|0)?m:g);m=m-g|0;h=h+4|0;if(i>>>0<=h>>>0){break s}if((m|0)>=0){continue}break}}pj(a,48,m+18|0,18,0);lj(a,t,u-t|0);break o}g=m}pj(a,48,g+9|0,9,0)}pj(a,32,c,f,e^8192);i=(c|0)<(f|0)?f:c;break b}m=(f<<26>>31&9)+w|0;u:{if(d>>>0>11){break u}g=12-d|0;q=16;while(1){q=q*16;g=g-1|0;if(g){continue}break}if(K[m|0]==45){b=-(q+(-b-q));break u}b=b+q-q}h=J[l+44>>2];g=h>>31;g=oj((g^h)-g|0,0,u);if((u|0)==(g|0)){H[l+15|0]=48;g=l+15|0}k=s|2;j=f&32;h=J[l+44>>2];p=g-2|0;H[p|0]=f+15;H[g-1|0]=(h|0)<0?45:43;i=e&8;h=l+16|0;while(1){f=h;if(R(b)<2147483648){g=~~b}else{g=-2147483648}H[h|0]=j|K[g+14288|0];b=(b-+(g|0))*16;h=f+1|0;if(!(!((d|0)>0|i)&b==0|(h-(l+16|0)|0)!=1)){H[f+1|0]=46;h=f+2|0}if(b!=0){continue}break}i=-1;n=u-p|0;f=n+k|0;if((2147483645-f|0)<(d|0)){break b}v:{w:{if(!d){break w}j=h-(l+16|0)|0;if((j-2|0)>=(d|0)){break w}g=d+2|0;break v}j=h-(l+16|0)|0;g=j}d=g+f|0;pj(a,32,c,d,e);lj(a,m,k);pj(a,48,c,d,e^65536);lj(a,l+16|0,j);pj(a,48,g-j|0,0,0);lj(a,p,n);pj(a,32,c,d,e^8192);i=(c|0)<(d|0)?d:c}ia=l+560|0;return i|0}function kj(a,b,c,d,e,f,g){var h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0;j=ia-80|0;ia=j;J[j+76>>2]=b;y=j+55|0;s=j+56|0;a:{b:{c:{d:{e:while(1){l=b;if((p^2147483647)<(h|0)){break d}p=h+p|0;f:{g:{h:{h=l;i=K[h|0];if(i){while(1){i:{b=i&255;j:{if(!b){b=h;break j}if((b|0)!=37){break i}i=h;while(1){if(K[i+1|0]!=37){b=i;break j}h=h+1|0;k=K[i+2|0];b=i+2|0;i=b;if((k|0)==37){continue}break}}h=h-l|0;x=p^2147483647;if((h|0)>(x|0)){break d}if(a){lj(a,l,h)}if(h){continue e}J[j+76>>2]=b;h=b+1|0;q=-1;if(!(K[b+2|0]!=36|H[b+1|0]-48>>>0>=10)){q=H[b+1|0]-48|0;t=1;h=b+3|0}J[j+76>>2]=h;n=0;i=H[h|0];b=i-32|0;k:{if(b>>>0>31){k=h;break k}k=h;b=1<>2]=k;n=b|n;i=H[h+1|0];b=i-32|0;if(b>>>0>=32){break k}h=k;b=1<>>0>=10)){J[((H[k+1|0]<<2)+e|0)-192>>2]=10;i=k+3|0;t=1;b=J[((H[k+1|0]<<3)+d|0)-384>>2];break m}if(t){break h}i=k+1|0;if(!a){J[j+76>>2]=i;t=0;r=0;break l}b=J[c>>2];J[c>>2]=b+4;t=0;b=J[b>>2]}r=b;J[j+76>>2]=i;if((r|0)>=0){break l}r=0-r|0;n=n|8192;break l}r=mj(j+76|0);if((r|0)<0){break d}i=J[j+76>>2]}h=0;m=-1;n:{if(K[i|0]!=46){b=i;w=0;break n}if(K[i+1|0]==42){o:{if(!(K[i+3|0]!=36|H[i+2|0]-48>>>0>=10)){J[((H[i+2|0]<<2)+e|0)-192>>2]=10;b=i+4|0;m=J[((H[i+2|0]<<3)+d|0)-384>>2];break o}if(t){break h}b=i+2|0;m=0;if(!a){break o}i=J[c>>2];J[c>>2]=i+4;m=J[i>>2]}J[j+76>>2]=b;w=(m^-1)>>>31|0;break n}J[j+76>>2]=i+1;m=mj(j+76|0);b=J[j+76>>2];w=1}while(1){o=h;k=28;u=b;h=H[b|0];if(h-123>>>0<4294967238){break c}b=u+1|0;h=K[(h+P(o,58)|0)+13759|0];if(h-1>>>0<8){continue}break}J[j+76>>2]=b;p:{q:{if((h|0)!=27){if(!h){break c}if((q|0)>=0){J[(q<<2)+e>>2]=h;h=(q<<3)+d|0;i=J[h+4>>2];J[j+64>>2]=J[h>>2];J[j+68>>2]=i;break q}if(!a){break f}nj(j- -64|0,h,c,g);break p}if((q|0)>=0){break c}}h=0;if(!a){continue e}}i=n&-65537;n=n&8192?i:n;q=0;v=1132;k=s;r:{s:{t:{u:{v:{w:{x:{y:{z:{A:{B:{C:{D:{E:{F:{G:{h=H[u|0];h=o?(h&15)==3?h&-33:h:h;switch(h-88|0){case 11:break r;case 9:case 13:case 14:case 15:break s;case 27:break x;case 12:case 17:break A;case 23:break B;case 0:case 32:break C;case 24:break D;case 22:break E;case 29:break F;case 1:case 2:case 3:case 4:case 5:case 6:case 7:case 8:case 10:case 16:case 18:case 19:case 20:case 21:case 25:case 26:case 28:case 30:case 31:break g;default:break G}}H:{switch(h-65|0){case 0:case 4:case 5:case 6:break s;case 2:break v;case 1:case 3:break g;default:break H}}if((h|0)==83){break w}break g}o=J[j+64>>2];i=J[j+68>>2];v=1132;break z}h=0;I:{switch(o&255){case 0:J[J[j+64>>2]>>2]=p;continue e;case 1:J[J[j+64>>2]>>2]=p;continue e;case 2:l=J[j+64>>2];J[l>>2]=p;J[l+4>>2]=p>>31;continue e;case 3:I[J[j+64>>2]>>1]=p;continue e;case 4:H[J[j+64>>2]]=p;continue e;case 6:J[J[j+64>>2]>>2]=p;continue e;case 7:break I;default:continue e}}l=J[j+64>>2];J[l>>2]=p;J[l+4>>2]=p>>31;continue e}m=m>>>0<=8?8:m;n=n|8;h=120}l=s;z=h&32;o=J[j+64>>2];i=J[j+68>>2];if(o|i){while(1){l=l-1|0;H[l|0]=z|K[(o&15)+14288|0];u=!i&o>>>0>15|(i|0)!=0;o=(i&15)<<28|o>>>4;i=i>>>4|0;if(u){continue}break}}if(!(J[j+64>>2]|J[j+68>>2])|!(n&8)){break y}v=(h>>>4|0)+1132|0;q=2;break y}h=s;l=J[j+68>>2];i=l;o=J[j+64>>2];if(i|o){while(1){h=h-1|0;H[h|0]=o&7|48;u=!i&o>>>0>7|(i|0)!=0;o=(i&7)<<29|o>>>3;i=i>>>3|0;if(u){continue}break}}l=h;if(!(n&8)){break y}h=s-l|0;m=(h|0)<(m|0)?m:h+1|0;break y}h=J[j+68>>2];i=h;o=J[j+64>>2];if((h|0)<0){i=0-(i+((o|0)!=0)|0)|0;o=0-o|0;J[j+64>>2]=o;J[j+68>>2]=i;q=1;v=1132;break z}if(n&2048){q=1;v=1133;break z}q=n&1;v=q?1134:1132}l=oj(o,i,s)}if((m|0)<0?w:0){break d}n=w?n&-65537:n;i=J[j+64>>2];h=J[j+68>>2];if(!(m|(i|h)!=0)){l=s;k=l;m=0;break g}h=!(h|i)+(s-l|0)|0;m=(h|0)<(m|0)?m:h;break g}o=m>>>0>=2147483647?2147483647:m;k=o;n=(k|0)!=0;h=J[j+64>>2];l=h?h:1649;h=l;J:{K:{L:{M:{if(!(h&3)|!k){break M}while(1){if(!K[h|0]){break L}k=k-1|0;n=(k|0)!=0;h=h+1|0;if(!(h&3)){break M}if(k){continue}break}}if(!n){break K}if(!(!K[h|0]|k>>>0<4)){while(1){n=J[h>>2];if((n^-1)&n-16843009&-2139062144){break L}h=h+4|0;k=k-4|0;if(k>>>0>3){continue}break}}if(!k){break K}}while(1){if(!K[h|0]){break J}h=h+1|0;k=k-1|0;if(k){continue}break}}h=0}h=h?h-l|0:o;k=h+l|0;if((m|0)>=0){n=i;m=h;break g}n=i;m=h;if(K[k|0]){break d}break g}if(m){i=J[j+64>>2];break u}h=0;pj(a,32,r,0,n);break t}J[j+12>>2]=0;J[j+8>>2]=J[j+64>>2];i=j+8|0;J[j+64>>2]=i;m=-1}h=0;N:{while(1){l=J[i>>2];if(!l){break N}l=sj(j+4|0,l);k=(l|0)<0;if(!(k|l>>>0>m-h>>>0)){i=i+4|0;h=h+l|0;if(m>>>0>h>>>0){continue}break N}break}if(k){break b}}k=61;if((h|0)<0){break c}pj(a,32,r,h,n);if(!h){h=0;break t}k=0;i=J[j+64>>2];while(1){l=J[i>>2];if(!l){break t}l=sj(j+4|0,l);k=l+k|0;if(k>>>0>h>>>0){break t}lj(a,j+4|0,l);i=i+4|0;if(h>>>0>k>>>0){continue}break}}pj(a,32,r,h,n^8192);h=(h|0)<(r|0)?r:h;continue e}if((m|0)<0?w:0){break d}k=61;h=na[f|0](a,O[j+64>>3],r,m,n,h)|0;if((h|0)>=0){continue e}break c}H[j+55|0]=J[j+64>>2];m=1;l=y;n=i;break g}i=K[h+1|0];h=h+1|0;continue}}if(a){break a}if(!t){break f}h=1;while(1){a=J[(h<<2)+e>>2];if(a){nj((h<<3)+d|0,a,c,g);p=1;h=h+1|0;if((h|0)!=10){continue}break a}break}p=1;if(h>>>0>=10){break a}while(1){if(J[(h<<2)+e>>2]){break h}h=h+1|0;if((h|0)!=10){continue}break}break a}k=28;break c}o=k-l|0;m=(m|0)>(o|0)?m:o;if((m|0)>(q^2147483647)){break d}k=61;i=m+q|0;h=(i|0)<(r|0)?r:i;if((x|0)<(h|0)){break c}pj(a,32,h,i,n);lj(a,v,q);pj(a,48,h,i,n^65536);pj(a,48,m,o,0);lj(a,l,o);pj(a,32,h,i,n^8192);continue}break}p=0;break a}k=61}J[4004]=k}p=-1}ia=j+80|0;return p}function td(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,D=0,E=0,F=0,G=0,I=0,L=0,M=0,N=0,O=0,P=0,Q=0,R=0,S=0,T=0,U=0,V=0,W=0,X=0,Y=0;a:{if((e|0)==2){J[a+8>>2]=2;J[a- -64>>2]=f;O=a+32|0;e=J[O>>2];d=J[a+36>>2]-e|0;b:{if(d>>>0<=7){Oa(O,2-(d>>>2|0)|0);break b}if((d|0)==8){break b}J[a+36>>2]=e+8}d=J[a+56>>2];d=J[d+4>>2]-J[d>>2]|0;c:{if((d|0)<=0){f=0;break c}p=a+60|0;P=d>>2;V=(P|0)<=1?1:P;W=a+68|0;f=1;while(1){e=J[a+56>>2];d=J[e>>2];if(J[e+4>>2]-d>>2>>>0<=u>>>0){break a}k=ia-80|0;ia=k;n=-1;d:{e:{d=J[d+(u<<2)>>2];if((d|0)==-1){break e}m=J[p+32>>2];e=d+1|0;e=(e>>>0)%3|0?e:d-2|0;if((e|0)!=-1){n=J[J[m>>2]+(e<<2)>>2]}e=-1;d=d+((d>>>0)%3|0?-1:2)|0;if((d|0)!=-1){e=J[J[m>>2]+(d<<2)>>2]}d=J[p+36>>2];m=J[d>>2];d=J[d+4>>2]-m>>2;if(d>>>0<=n>>>0|d>>>0<=e>>>0){break e}f:{g:{h:{i:{j:{k:{h=J[m+(e<<2)>>2];d=J[m+(n<<2)>>2];if((h|0)>=(u|0)|(d|0)>=(u|0)){break k}e=(h<<3)+c|0;x=J[e+4>>2];n=(d<<3)+c|0;m=J[n+4>>2];G=J[e>>2];n=J[n>>2];if(!((G|0)!=(n|0)|(m|0)!=(x|0))){J[p+8>>2]=n;J[p+12>>2]=m;break j}e=J[J[p+4>>2]+(u<<2)>>2];J[k+72>>2]=0;J[k+76>>2]=0;g=k- -64|0;J[g>>2]=0;J[g+4>>2]=0;J[k+56>>2]=0;J[k+60>>2]=0;g=J[p>>2];if(!K[g+84|0]){e=J[J[g+68>>2]+(e<<2)>>2]}_c(g,e,H[g+24|0],k+56|0);e=J[J[p+4>>2]+(d<<2)>>2];J[k+48>>2]=0;J[k+52>>2]=0;J[k+40>>2]=0;J[k+44>>2]=0;J[k+32>>2]=0;J[k+36>>2]=0;g=J[p>>2];if(!K[g+84|0]){e=J[J[g+68>>2]+(e<<2)>>2]}_c(g,e,H[g+24|0],k+32|0);e=J[J[p+4>>2]+(h<<2)>>2];J[k+24>>2]=0;J[k+28>>2]=0;J[k+16>>2]=0;J[k+20>>2]=0;J[k+8>>2]=0;J[k+12>>2]=0;g=J[p>>2];if(!K[g+84|0]){e=J[J[g+68>>2]+(e<<2)>>2]}_c(g,e,H[g+24|0],k+8|0);Q=J[k+44>>2];e=J[k+16>>2];I=J[k+40>>2];g=I;i=J[k+20>>2]-(Q+(e>>>0>>0)|0)|0;s=e-g|0;e=jk(s,i,s,i);h=ma;l=e;R=J[k+36>>2];e=J[k+8>>2];L=J[k+32>>2];g=L;o=J[k+12>>2]-(R+(e>>>0>>0)|0)|0;g=e-g|0;r=jk(g,o,g,o);e=l+r|0;l=ma+h|0;l=e>>>0>>0?l+1|0:l;j=e;S=J[k+52>>2];e=J[k+24>>2];M=J[k+48>>2];h=M;r=J[k+28>>2]-(S+(e>>>0>>0)|0)|0;v=e-h|0;t=jk(v,r,v,r);h=j+t|0;e=ma+l|0;w=h;t=h>>>0>>0?e+1|0:e;if(!(h|t)){break k}e=0;N=lk(-1,2147483647,w,t);d=n>>31;T=d;l=d>>31;h=l;j=d^h;d=h^n;h=j-((h>>>0>d>>>0)+h|0)|0;z=d-l|0;d=m>>31;U=d;q=d>>31;A=q^m;B=A-q|0;l=d>>31;d=(l^d)-((q>>>0>A>>>0)+l|0)|0;l=(h|0)==(d|0)&z>>>0>B>>>0|d>>>0>>0;q=l?z:B;D=ma;d=l?h:d;if((D|0)==(d|0)&q>>>0>N>>>0|d>>>0>D>>>0){break f}l=J[k+64>>2];d=l;D=J[k+68>>2];d=jk(d-I|0,D-((d>>>0>>0)+Q|0)|0,s,i);h=ma;j=d;z=J[k+56>>2];d=z;N=J[k+60>>2];q=jk(d-L|0,N-((d>>>0>>0)+R|0)|0,g,o);d=j+q|0;j=ma+h|0;j=d>>>0>>0?j+1|0:j;h=d;A=J[k+72>>2];d=A;B=J[k+76>>2];q=jk(d-M|0,B-((d>>>0>>0)+S|0)|0,v,r);h=h+q|0;d=ma+j|0;y=h;q=h>>>0>>0?d+1|0:d;d=o>>31;h=d;j=g^d;d=(d^o)-(d+(d>>>0>j>>>0)|0)|0;E=j-h|0;j=i>>31;h=j;j=h^s;F=j-h|0;h=(i^h)-((h>>>0>j>>>0)+h|0)|0;j=(d|0)==(h|0)&E>>>0>F>>>0|d>>>0>h>>>0;E=j?E:F;d=j?d:h;j=r>>31;h=j;j=h^v;F=j-h|0;h=(h^r)-((h>>>0>j>>>0)+h|0)|0;j=(d|0)==(h|0)&E>>>0>F>>>0|d>>>0>h>>>0;h=lk(-1,2147483647,j?E:F,j?d:h)>>>0>>0;d=ma;if(h&(d|0)<=(q|0)|(d|0)<(q|0)){break f}h=1;d=0;e=l;s=kk(jk(s,i,y,q),ma,w,t);l=s+I|0;i=ma+Q|0;i=l>>>0>>0?i+1|0:i;i=D-((e>>>0>>0)+i|0)|0;e=e-l|0;e=jk(e,i,e,i);l=ma;i=z;j=e;o=kk(jk(g,o,y,q),ma,w,t);g=o+L|0;e=ma+R|0;e=g>>>0>>0?e+1|0:e;e=N-((g>>>0>i>>>0)+e|0)|0;g=i-g|0;g=jk(g,e,g,e);e=j+g|0;l=ma+l|0;l=e>>>0>>0?l+1|0:l;g=e;e=A;j=g;o=kk(jk(v,r,y,q),ma,w,t);g=o+M|0;i=ma+S|0;i=g>>>0>>0?i+1|0:i;i=B-((e>>>0>>0)+i|0)|0;e=e-g|0;i=jk(e,i,e,i);g=j+i|0;e=ma+l|0;i=jk(g,g>>>0>>0?e+1|0:e,w,t);e=ma;o=e;if(!e&i>>>0<=1){break i}r=i;g=o;while(1){e=d<<1|h>>>31;h=h<<1;d=e;l=!g&r>>>0>7|(g|0)!=0;r=(g&3)<<30|r>>>2;g=g>>>2|0;if(l){continue}break}break h}if((d|0)<(u|0)){d=d<<1}else{if((u|0)<=0){J[p+8>>2]=0;J[p+12>>2]=0;break j}d=(u<<1)-2|0}d=(d<<2)+c|0;J[p+8>>2]=J[d>>2];J[p+12>>2]=J[d+4>>2]}e=1;break f}d=o;h=i;if(h-1|0){break g}}while(1){e=lk(i,o,h,d)+h|0;j=d+ma|0;j=e>>>0>>0?j+1|0:j;h=(j&1)<<31|e>>>1;d=j>>>1|0;e=jk(h,d,h,d);g=ma;if((o|0)==(g|0)&e>>>0>i>>>0|g>>>0>o>>>0){continue}break}}e=J[p+20>>2];if(e){g=e-1|0;o=J[J[p+16>>2]+(g>>>3&536870908)>>2];J[p+20>>2]=g;r=x-m|0;l=(x>>31)-((m>>>0>x>>>0)+U|0)|0;i=jk(y,q,r,l);s=ma;v=jk(w,t,m,U);m=v+i|0;i=ma+s|0;i=m>>>0>>0?i+1|0:i;j=m;s=G-n|0;v=(G>>31)-((n>>>0>G>>>0)+T|0)|0;m=jk(h,d,s,v);x=m;m=o>>>g&1;o=m?0-x|0:x;g=j+o|0;j=i;i=ma;j=j+(m?0-(i+((x|0)!=0)|0)|0:i)|0;X=p,Y=kk(g,g>>>0>>0?j+1|0:j,w,t),J[X+12>>2]=Y;g=jk(s,v,y,q);i=ma;j=g;g=jk(w,t,n,T);n=j+g|0;i=ma+i|0;i=g>>>0>n>>>0?i+1|0:i;d=jk(h,d,r,l);g=m?d:0-d|0;n=g+n|0;h=ma;l=(m?h:0-(((d|0)!=0)+h|0)|0)+i|0;X=p,Y=kk(n,g>>>0>n>>>0?l+1|0:l,w,t),J[X+8>>2]=Y}e=(e|0)!=0}ia=k+80|0;break d}Bc();C()}if(!e){break c}l:{if(J[a+8>>2]<=0){break l}n=J[O>>2];d=0;while(1){e=d<<2;f=J[e+W>>2];m=J[a+16>>2];m:{if((f|0)>(m|0)){J[e+n>>2]=m;break m}e=e+n|0;m=J[a+12>>2];if((m|0)>(f|0)){J[e>>2]=m;break m}J[e>>2]=f}d=d+1|0;f=J[a+8>>2];if((d|0)<(f|0)){continue}break}e=0;if((f|0)<=0){break l}d=u<<3;m=d+c|0;g=b+d|0;while(1){f=e<<2;d=f+m|0;f=J[f+g>>2]+J[f+n>>2]|0;J[d>>2]=f;n:{if((f|0)>J[a+16>>2]){f=f-J[a+20>>2]|0}else{if((f|0)>=J[a+12>>2]){break n}f=f+J[a+20>>2]|0}J[d>>2]=f}e=e+1|0;if((e|0)>2]){continue}break}}u=u+1|0;f=(P|0)>(u|0);if((u|0)!=(V|0)){continue}break}}a=f^1}else{a=0}return a&1}Bc();C()}function Zc(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,D=0,E=0,F=0,G=0,I=0,L=0,M=0,N=0,O=0,P=0,Q=0,R=0,S=0,T=0,U=0,V=0,W=0,X=0,Y=0;a:{if((e|0)==2){J[a+8>>2]=2;J[a- -64>>2]=f;O=a+32|0;e=J[O>>2];d=J[a+36>>2]-e|0;b:{if(d>>>0<=7){Oa(O,2-(d>>>2|0)|0);break b}if((d|0)==8){break b}J[a+36>>2]=e+8}d=J[a+56>>2];d=J[d+4>>2]-J[d>>2]|0;c:{if((d|0)<=0){f=0;break c}o=a+60|0;P=d>>2;V=(P|0)<=1?1:P;W=a+68|0;f=1;while(1){d=J[a+56>>2];m=J[d>>2];if(J[d+4>>2]-m>>2>>>0<=u>>>0){break a}k=ia-80|0;ia=k;e=-1;m=J[m+(u<<2)>>2];d=-1;d:{if((m|0)==-1){break d}d=m+1|0;e=(d>>>0)%3|0?d:m-2|0;d=m-1|0;if((m>>>0)%3|0){break d}d=m+2|0}l=J[o+36>>2];m=J[l>>2];e:{f:{g:{h:{i:{l=J[l+4>>2]-m>>2;g=e<<2;e=J[J[o+32>>2]+28>>2];j=J[g+e>>2];if(l>>>0<=j>>>0){break i}e=J[e+(d<<2)>>2];if(e>>>0>=l>>>0){break i}d=J[m+(j<<2)>>2];j:{k:{j=J[m+(e<<2)>>2];if((j|0)>=(u|0)|(d|0)>=(u|0)){break k}e=(j<<3)+c|0;v=J[e+4>>2];m=(d<<3)+c|0;l=J[m+4>>2];z=J[e>>2];m=J[m>>2];if(!((z|0)!=(m|0)|(l|0)!=(v|0))){J[o+8>>2]=m;J[o+12>>2]=l;break j}t=J[J[o+4>>2]+(u<<2)>>2];J[k+72>>2]=0;J[k+76>>2]=0;e=k- -64|0;J[e>>2]=0;J[e+4>>2]=0;J[k+56>>2]=0;J[k+60>>2]=0;e=J[o>>2];if(!K[e+84|0]){t=J[J[e+68>>2]+(t<<2)>>2]}_c(e,t,H[e+24|0],k+56|0);t=J[J[o+4>>2]+(d<<2)>>2];J[k+48>>2]=0;J[k+52>>2]=0;J[k+40>>2]=0;J[k+44>>2]=0;J[k+32>>2]=0;J[k+36>>2]=0;e=J[o>>2];if(!K[e+84|0]){t=J[J[e+68>>2]+(t<<2)>>2]}_c(e,t,H[e+24|0],k+32|0);t=J[J[o+4>>2]+(j<<2)>>2];J[k+24>>2]=0;J[k+28>>2]=0;J[k+16>>2]=0;J[k+20>>2]=0;J[k+8>>2]=0;J[k+12>>2]=0;e=J[o>>2];if(!K[e+84|0]){t=J[J[e+68>>2]+(t<<2)>>2]}_c(e,t,H[e+24|0],k+8|0);Q=J[k+44>>2];e=J[k+16>>2];y=J[k+40>>2];j=y;h=J[k+20>>2]-(Q+(e>>>0>>0)|0)|0;s=e-j|0;e=jk(s,h,s,h);r=ma;g=e;R=J[k+36>>2];e=J[k+8>>2];L=J[k+32>>2];j=L;n=J[k+12>>2]-(R+(e>>>0>>0)|0)|0;j=e-j|0;p=jk(j,n,j,n);g=g+p|0;e=ma+r|0;e=g>>>0

>>0?e+1|0:e;i=g;S=J[k+52>>2];g=J[k+24>>2];M=J[k+48>>2];p=M;r=J[k+28>>2]-(S+(g>>>0

>>0)|0)|0;w=g-p|0;p=jk(w,r,w,r);g=i+p|0;e=ma+e|0;x=g;p=g>>>0

>>0?e+1|0:e;if(!(g|p)){break k}t=0;N=lk(-1,2147483647,x,p);d=m>>31;T=d;e=d>>31;g=d^e;d=e^m;g=g-((e>>>0>d>>>0)+e|0)|0;B=d-e|0;d=l>>31;U=d;q=d>>31;D=q^l;E=D-q|0;e=d>>31;d=(e^d)-((q>>>0>D>>>0)+e|0)|0;e=(g|0)==(d|0)&B>>>0>E>>>0|d>>>0>>0;q=e?B:E;F=ma;d=e?g:d;if((F|0)==(d|0)&q>>>0>N>>>0|d>>>0>F>>>0){break e}e=J[k+64>>2];F=J[k+68>>2];d=jk(e-y|0,F-((e>>>0>>0)+Q|0)|0,s,h);g=ma;i=d;B=J[k+56>>2];d=B;N=J[k+60>>2];q=jk(d-L|0,N-((d>>>0>>0)+R|0)|0,j,n);d=i+q|0;i=ma+g|0;i=d>>>0>>0?i+1|0:i;g=d;D=J[k+72>>2];d=D;E=J[k+76>>2];q=jk(d-M|0,E-((d>>>0>>0)+S|0)|0,w,r);g=g+q|0;d=ma+i|0;A=g;q=g>>>0>>0?d+1|0:d;d=n>>31;g=d;i=d^j;d=(d^n)-(d+(d>>>0>i>>>0)|0)|0;G=i-g|0;i=h>>31;g=i;i=g^s;I=i-g|0;g=(h^g)-((g>>>0>i>>>0)+g|0)|0;i=(d|0)==(g|0)&G>>>0>I>>>0|d>>>0>g>>>0;G=i?G:I;d=i?d:g;i=r>>31;g=i;i=g^w;I=i-g|0;g=(g^r)-((g>>>0>i>>>0)+g|0)|0;i=(d|0)==(g|0)&G>>>0>I>>>0|d>>>0>g>>>0;g=lk(-1,2147483647,i?G:I,i?d:g)>>>0>>0;d=ma;if(g&(d|0)<=(q|0)|(d|0)<(q|0)){break e}g=1;d=0;i=y;y=kk(jk(s,h,A,q),ma,x,p);s=i+y|0;h=ma+Q|0;h=s>>>0>>0?h+1|0:h;h=F-((e>>>0>>0)+h|0)|0;e=e-s|0;e=jk(e,h,e,h);s=ma;h=B;i=e;n=kk(jk(j,n,A,q),ma,x,p);j=n+L|0;e=ma+R|0;e=j>>>0>>0?e+1|0:e;e=N-((h>>>0>>0)+e|0)|0;j=h-j|0;h=jk(j,e,j,e);j=i+h|0;e=ma+s|0;e=h>>>0>j>>>0?e+1|0:e;h=j;j=e;e=D;i=h;r=kk(jk(w,r,A,q),ma,x,p);n=r+M|0;h=ma+S|0;h=n>>>0>>0?h+1|0:h;h=E-((e>>>0>>0)+h|0)|0;e=e-n|0;n=jk(e,h,e,h);h=i+n|0;e=ma+j|0;h=jk(h,h>>>0>>0?e+1|0:e,x,p);e=ma;n=e;if(!e&h>>>0<=1){break h}r=h;j=n;while(1){e=d<<1|g>>>31;g=g<<1;d=e;s=!j&r>>>0>7|(j|0)!=0;r=(j&3)<<30|r>>>2;j=j>>>2|0;if(s){continue}break}break g}if((d|0)<(u|0)){d=d<<1}else{if((u|0)<=0){J[o+8>>2]=0;J[o+12>>2]=0;break j}d=(u<<1)-2|0}d=(d<<2)+c|0;J[o+8>>2]=J[d>>2];J[o+12>>2]=J[d+4>>2]}t=1;break e}Bc();C()}d=n;g=h;if(g-1|0){break f}}while(1){e=lk(h,n,g,d)+g|0;i=d+ma|0;i=e>>>0>>0?i+1|0:i;g=(i&1)<<31|e>>>1;d=i>>>1|0;e=jk(g,d,g,d);j=ma;if((n|0)==(j|0)&e>>>0>h>>>0|j>>>0>n>>>0){continue}break}}j=J[o+20>>2];if(j){e=j-1|0;n=J[J[o+16>>2]+(e>>>3&536870908)>>2];J[o+20>>2]=e;r=v-l|0;s=(v>>31)-((l>>>0>v>>>0)+U|0)|0;h=jk(A,q,r,s);w=ma;v=jk(x,p,l,U);l=v+h|0;h=ma+w|0;h=l>>>0>>0?h+1|0:h;i=l;w=z-m|0;v=(z>>31)-((m>>>0>z>>>0)+T|0)|0;l=jk(g,d,w,v);z=l;e=n>>>e&1;n=e?0-l|0:l;l=i+n|0;i=h;h=ma;i=i+(e?0-(h+((z|0)!=0)|0)|0:h)|0;X=o,Y=kk(l,l>>>0>>0?i+1|0:i,x,p),J[X+12>>2]=Y;l=jk(w,v,A,q);h=ma;n=l;l=jk(x,p,m,T);m=n+l|0;h=ma+h|0;h=m>>>0>>0?h+1|0:h;d=jk(g,d,r,s);l=e?d:0-d|0;m=l+m|0;g=ma;e=(e?g:0-(((d|0)!=0)+g|0)|0)+h|0;X=o,Y=kk(m,m>>>0>>0?e+1|0:e,x,p),J[X+8>>2]=Y}t=(j|0)!=0}ia=k+80|0;if(!t){break c}l:{if(J[a+8>>2]<=0){break l}m=J[O>>2];d=0;while(1){e=d<<2;f=J[e+W>>2];l=J[a+16>>2];m:{if((f|0)>(l|0)){J[e+m>>2]=l;break m}e=e+m|0;l=J[a+12>>2];if((l|0)>(f|0)){J[e>>2]=l;break m}J[e>>2]=f}d=d+1|0;f=J[a+8>>2];if((d|0)<(f|0)){continue}break}e=0;if((f|0)<=0){break l}d=u<<3;l=d+c|0;j=b+d|0;while(1){f=e<<2;d=f+l|0;f=J[f+j>>2]+J[f+m>>2]|0;J[d>>2]=f;n:{if((f|0)>J[a+16>>2]){f=f-J[a+20>>2]|0}else{if((f|0)>=J[a+12>>2]){break n}f=f+J[a+20>>2]|0}J[d>>2]=f}e=e+1|0;if((e|0)>2]){continue}break}}u=u+1|0;f=(P|0)>(u|0);if((u|0)!=(V|0)){continue}break}}a=f^1}else{a=0}return a&1}Bc();C()}function Fb(a,b){var c=0,d=0,e=0,f=0,g=0;e=ia-16|0;ia=e;J[a+12>>2]=b;J[a+8>>2]=0;J[a>>2]=0;J[a+4>>2]=0;d=a+16|0;J[d>>2]=0;J[d+4>>2]=0;H[d+5|0]=0;H[d+6|0]=0;H[d+7|0]=0;H[d+8|0]=0;H[d+9|0]=0;H[d+10|0]=0;H[d+11|0]=0;H[d+12|0]=0;c=d+16|0;J[c>>2]=0;J[c+4>>2]=0;H[c+5|0]=0;H[c+6|0]=0;H[c+7|0]=0;H[c+8|0]=0;H[c+9|0]=0;H[c+10|0]=0;H[c+11|0]=0;H[c+12|0]=0;c=d+32|0;J[c>>2]=0;J[c+4>>2]=0;H[c+5|0]=0;H[c+6|0]=0;H[c+7|0]=0;H[c+8|0]=0;H[c+9|0]=0;H[c+10|0]=0;H[c+11|0]=0;H[c+12|0]=0;c=d+48|0;J[c>>2]=0;J[c+4>>2]=0;H[c+5|0]=0;H[c+6|0]=0;H[c+7|0]=0;H[c+8|0]=0;H[c+9|0]=0;H[c+10|0]=0;H[c+11|0]=0;H[c+12|0]=0;c=d- -64|0;J[c>>2]=0;J[c+4>>2]=0;H[c+5|0]=0;H[c+6|0]=0;H[c+7|0]=0;H[c+8|0]=0;H[c+9|0]=0;H[c+10|0]=0;H[c+11|0]=0;H[c+12|0]=0;c=d+80|0;J[c>>2]=0;J[c+4>>2]=0;H[c+5|0]=0;H[c+6|0]=0;H[c+7|0]=0;H[c+8|0]=0;H[c+9|0]=0;H[c+10|0]=0;H[c+11|0]=0;H[c+12|0]=0;c=d+96|0;J[c>>2]=0;J[c+4>>2]=0;H[c+5|0]=0;H[c+6|0]=0;H[c+7|0]=0;H[c+8|0]=0;H[c+9|0]=0;H[c+10|0]=0;H[c+11|0]=0;H[c+12|0]=0;c=d+112|0;J[c>>2]=0;J[c+4>>2]=0;H[c+5|0]=0;H[c+6|0]=0;H[c+7|0]=0;H[c+8|0]=0;H[c+9|0]=0;H[c+10|0]=0;H[c+11|0]=0;H[c+12|0]=0;c=d+128|0;J[c>>2]=0;J[c+4>>2]=0;H[c+5|0]=0;H[c+6|0]=0;H[c+7|0]=0;H[c+8|0]=0;H[c+9|0]=0;H[c+10|0]=0;H[c+11|0]=0;H[c+12|0]=0;c=d+144|0;J[c>>2]=0;J[c+4>>2]=0;H[c+5|0]=0;H[c+6|0]=0;H[c+7|0]=0;H[c+8|0]=0;H[c+9|0]=0;H[c+10|0]=0;H[c+11|0]=0;H[c+12|0]=0;c=d+160|0;J[c>>2]=0;J[c+4>>2]=0;H[c+5|0]=0;H[c+6|0]=0;H[c+7|0]=0;H[c+8|0]=0;H[c+9|0]=0;H[c+10|0]=0;H[c+11|0]=0;H[c+12|0]=0;c=d+176|0;J[c>>2]=0;J[c+4>>2]=0;H[c+5|0]=0;H[c+6|0]=0;H[c+7|0]=0;H[c+8|0]=0;H[c+9|0]=0;H[c+10|0]=0;H[c+11|0]=0;H[c+12|0]=0;c=d+192|0;J[c>>2]=0;J[c+4>>2]=0;H[c+5|0]=0;H[c+6|0]=0;H[c+7|0]=0;H[c+8|0]=0;H[c+9|0]=0;H[c+10|0]=0;H[c+11|0]=0;H[c+12|0]=0;c=d+208|0;J[c>>2]=0;J[c+4>>2]=0;H[c+5|0]=0;H[c+6|0]=0;H[c+7|0]=0;H[c+8|0]=0;H[c+9|0]=0;H[c+10|0]=0;H[c+11|0]=0;H[c+12|0]=0;c=d+224|0;J[c>>2]=0;J[c+4>>2]=0;H[c+5|0]=0;H[c+6|0]=0;H[c+7|0]=0;H[c+8|0]=0;H[c+9|0]=0;H[c+10|0]=0;H[c+11|0]=0;H[c+12|0]=0;c=d+240|0;J[c>>2]=0;J[c+4>>2]=0;H[c+5|0]=0;H[c+6|0]=0;H[c+7|0]=0;H[c+8|0]=0;H[c+9|0]=0;H[c+10|0]=0;H[c+11|0]=0;H[c+12|0]=0;c=d+256|0;J[c>>2]=0;J[c+4>>2]=0;H[c+5|0]=0;H[c+6|0]=0;H[c+7|0]=0;H[c+8|0]=0;H[c+9|0]=0;H[c+10|0]=0;H[c+11|0]=0;H[c+12|0]=0;c=d+272|0;J[c>>2]=0;J[c+4>>2]=0;H[c+5|0]=0;H[c+6|0]=0;H[c+7|0]=0;H[c+8|0]=0;H[c+9|0]=0;H[c+10|0]=0;H[c+11|0]=0;H[c+12|0]=0;c=d+288|0;J[c>>2]=0;J[c+4>>2]=0;H[c+5|0]=0;H[c+6|0]=0;H[c+7|0]=0;H[c+8|0]=0;H[c+9|0]=0;H[c+10|0]=0;H[c+11|0]=0;H[c+12|0]=0;c=d+304|0;J[c>>2]=0;J[c+4>>2]=0;H[c+5|0]=0;H[c+6|0]=0;H[c+7|0]=0;H[c+8|0]=0;H[c+9|0]=0;H[c+10|0]=0;H[c+11|0]=0;H[c+12|0]=0;c=d+320|0;J[c>>2]=0;J[c+4>>2]=0;H[c+5|0]=0;H[c+6|0]=0;H[c+7|0]=0;H[c+8|0]=0;H[c+9|0]=0;H[c+10|0]=0;H[c+11|0]=0;H[c+12|0]=0;c=d+336|0;J[c>>2]=0;J[c+4>>2]=0;H[c+5|0]=0;H[c+6|0]=0;H[c+7|0]=0;H[c+8|0]=0;H[c+9|0]=0;H[c+10|0]=0;H[c+11|0]=0;H[c+12|0]=0;c=d+352|0;J[c>>2]=0;J[c+4>>2]=0;H[c+5|0]=0;H[c+6|0]=0;H[c+7|0]=0;H[c+8|0]=0;H[c+9|0]=0;H[c+10|0]=0;H[c+11|0]=0;H[c+12|0]=0;c=d+368|0;J[c>>2]=0;J[c+4>>2]=0;H[c+5|0]=0;H[c+6|0]=0;H[c+7|0]=0;H[c+8|0]=0;H[c+9|0]=0;H[c+10|0]=0;H[c+11|0]=0;H[c+12|0]=0;c=d+384|0;J[c>>2]=0;J[c+4>>2]=0;H[c+5|0]=0;H[c+6|0]=0;H[c+7|0]=0;H[c+8|0]=0;H[c+9|0]=0;H[c+10|0]=0;H[c+11|0]=0;H[c+12|0]=0;c=d+400|0;J[c>>2]=0;J[c+4>>2]=0;H[c+5|0]=0;H[c+6|0]=0;H[c+7|0]=0;H[c+8|0]=0;H[c+9|0]=0;H[c+10|0]=0;H[c+11|0]=0;H[c+12|0]=0;c=d+416|0;J[c>>2]=0;J[c+4>>2]=0;H[c+5|0]=0;H[c+6|0]=0;H[c+7|0]=0;H[c+8|0]=0;H[c+9|0]=0;H[c+10|0]=0;H[c+11|0]=0;H[c+12|0]=0;c=d+432|0;J[c>>2]=0;J[c+4>>2]=0;H[c+5|0]=0;H[c+6|0]=0;H[c+7|0]=0;H[c+8|0]=0;H[c+9|0]=0;H[c+10|0]=0;H[c+11|0]=0;H[c+12|0]=0;c=d+448|0;J[c>>2]=0;J[c+4>>2]=0;H[c+5|0]=0;H[c+6|0]=0;H[c+7|0]=0;H[c+8|0]=0;H[c+9|0]=0;H[c+10|0]=0;H[c+11|0]=0;H[c+12|0]=0;c=d+464|0;J[c>>2]=0;J[c+4>>2]=0;H[c+5|0]=0;H[c+6|0]=0;H[c+7|0]=0;H[c+8|0]=0;H[c+9|0]=0;H[c+10|0]=0;H[c+11|0]=0;H[c+12|0]=0;c=d+480|0;J[c>>2]=0;J[c+4>>2]=0;H[c+5|0]=0;H[c+6|0]=0;H[c+7|0]=0;H[c+8|0]=0;H[c+9|0]=0;H[c+10|0]=0;H[c+11|0]=0;H[c+12|0]=0;d=d+496|0;J[d>>2]=0;J[d+4>>2]=0;H[d+5|0]=0;H[d+6|0]=0;H[d+7|0]=0;H[d+8|0]=0;H[d+9|0]=0;H[d+10|0]=0;H[d+11|0]=0;H[d+12|0]=0;J[a+528>>2]=0;J[a+532>>2]=0;H[a+533|0]=0;H[a+534|0]=0;H[a+535|0]=0;H[a+536|0]=0;H[a+537|0]=0;H[a+538|0]=0;H[a+539|0]=0;H[a+540|0]=0;J[a+544>>2]=0;J[a+548>>2]=0;J[a+560>>2]=0;J[a+552>>2]=0;J[a+556>>2]=0;J[a+564>>2]=0;J[a+568>>2]=0;J[a+580>>2]=0;J[a+572>>2]=0;J[a+576>>2]=0;J[a+584>>2]=0;J[a+588>>2]=0;J[a+600>>2]=0;J[a+592>>2]=0;J[a+596>>2]=0;J[a+612>>2]=0;J[a+604>>2]=0;J[a+608>>2]=0;g=a+628|0;a:{b:{if(b){if(b>>>0<1073741824){break b}La();C()}J[a+616>>2]=0;J[a+620>>2]=0;J[a+624>>2]=0;J[e+8>>2]=0;J[e>>2]=0;J[e+4>>2]=0;d=1;break a}d=b<<2;c=Aj(d);J[a+604>>2]=c;f=c+d|0;J[a+612>>2]=f;Xi(c,0,d);J[a+624>>2]=0;J[a+616>>2]=0;J[a+620>>2]=0;J[a+608>>2]=f;c=Aj(d);J[a+616>>2]=c;f=c+d|0;J[a+624>>2]=f;Xi(c,0,d);J[a+620>>2]=f;c=Aj(d);J[e>>2]=c;f=c+d|0;J[e+8>>2]=f;Xi(c,0,d);J[e+4>>2]=f;d=b<<5|1}Lb(g,d,e);c=J[e>>2];if(c){J[e+4>>2]=c;xj(c)}J[e+8>>2]=0;J[e>>2]=0;J[e+4>>2]=0;if(b){b=b<<2;c=Aj(b);J[e>>2]=c;f=b+c|0;J[e+8>>2]=f;Xi(c,0,b);J[e+4>>2]=f}Lb(a+640|0,d,e);b=J[e>>2];if(b){J[e+4>>2]=b;xj(b)}ia=e+16|0;return a}function Ag(a,b,c,d){var e=0,f=0,g=0,h=0,i=0,j=0,k=Q(0),l=0,m=Q(0),n=0;a:{b:{if(!d){break b}c:{switch(J[a+28>>2]-1|0){case 0:e=K[a+24|0];f=c&255;if(e>>>0>>0?e:f){g=J[a>>2];e=J[g>>2];b=J[a+48>>2]+jk(J[a+40>>2],J[a+44>>2],b,0)|0;b=e+b|0;g=J[g+4>>2];while(1){if(b>>>0>=g>>>0){break b}I[(h<<1)+d>>1]=H[b|0];b=b+1|0;h=h+1|0;e=K[a+24|0];if(h>>>0<(e>>>0>>0?e:f)>>>0){continue}break}}i=1;if(e>>>0>=f>>>0){break b}break a;case 1:e=K[a+24|0];f=c&255;if(e>>>0>>0?e:f){g=J[a>>2];e=J[g>>2];b=J[a+48>>2]+jk(J[a+40>>2],J[a+44>>2],b,0)|0;b=e+b|0;g=J[g+4>>2];while(1){if(b>>>0>=g>>>0){break b}I[(h<<1)+d>>1]=K[b|0];b=b+1|0;h=h+1|0;e=K[a+24|0];if(h>>>0<(e>>>0>>0?e:f)>>>0){continue}break}}i=1;if(e>>>0>=f>>>0){break b}break a;case 2:e=K[a+24|0];f=c&255;if(e>>>0>>0?e:f){g=J[a>>2];e=J[g>>2];b=J[a+48>>2]+jk(J[a+40>>2],J[a+44>>2],b,0)|0;b=e+b|0;g=J[g+4>>2];while(1){if(b>>>0>=g>>>0){break b}I[(h<<1)+d>>1]=L[b>>1];b=b+2|0;h=h+1|0;e=K[a+24|0];if(h>>>0<(e>>>0>>0?e:f)>>>0){continue}break}}i=1;if(e>>>0>=f>>>0){break b}break a;case 3:e=K[a+24|0];f=c&255;if(e>>>0>>0?e:f){g=J[a>>2];e=J[g>>2];b=J[a+48>>2]+jk(J[a+40>>2],J[a+44>>2],b,0)|0;b=e+b|0;g=J[g+4>>2];while(1){if(b>>>0>=g>>>0){return 0}e=I[b>>1];if((e|0)<0){break b}I[(h<<1)+d>>1]=e;b=b+2|0;h=h+1|0;e=K[a+24|0];if(h>>>0<(e>>>0>>0?e:f)>>>0){continue}break}}i=1;if(e>>>0>=f>>>0){break b}break a;case 4:e=K[a+24|0];f=c&255;if(e>>>0>>0?e:f){g=J[a>>2];e=J[g>>2];b=J[a+48>>2]+jk(J[a+40>>2],J[a+44>>2],b,0)|0;b=e+b|0;g=J[g+4>>2];while(1){if(b>>>0>=g>>>0){break b}e=J[b>>2];if(e-32768>>>0<4294901760){break b}I[(h<<1)+d>>1]=e;b=b+4|0;h=h+1|0;e=K[a+24|0];if(h>>>0<(e>>>0>>0?e:f)>>>0){continue}break}}i=1;if(e>>>0>=f>>>0){break b}break a;case 5:e=K[a+24|0];f=c&255;if(e>>>0>>0?e:f){g=J[a>>2];e=J[g>>2];b=J[a+48>>2]+jk(J[a+40>>2],J[a+44>>2],b,0)|0;b=e+b|0;g=J[g+4>>2];while(1){if(b>>>0>=g>>>0){break b}e=J[b>>2];if(e>>>0>32767){break b}I[(h<<1)+d>>1]=e;b=b+4|0;h=h+1|0;e=K[a+24|0];if(h>>>0<(e>>>0>>0?e:f)>>>0){continue}break}}i=1;if(e>>>0>=f>>>0){break b}break a;case 6:e=K[a+24|0];f=c&255;if(e>>>0>>0?e:f){g=J[a>>2];e=J[g>>2];b=J[a+48>>2]+jk(J[a+40>>2],J[a+44>>2],b,0)|0;b=e+b|0;g=J[g+4>>2];while(1){if(b>>>0>=g>>>0){break b}l=J[b>>2];e=J[b+4>>2]-(l>>>0<32768)|0;if((e|0)==-1&l-32768>>>0<4294901760|(e|0)!=-1){break b}I[(h<<1)+d>>1]=l;b=b+8|0;h=h+1|0;e=K[a+24|0];if(h>>>0<(e>>>0>>0?e:f)>>>0){continue}break}}i=1;if(e>>>0>=f>>>0){break b}break a;case 7:e=K[a+24|0];f=c&255;if(e>>>0>>0?e:f){g=J[a>>2];e=J[g>>2];b=J[a+48>>2]+jk(J[a+40>>2],J[a+44>>2],b,0)|0;b=e+b|0;g=J[g+4>>2];while(1){if(b>>>0>=g>>>0){break b}e=J[b+4>>2];l=J[b>>2];if(!e&l>>>0>32767|e){break b}I[(h<<1)+d>>1]=l;b=b+8|0;h=h+1|0;e=K[a+24|0];if(h>>>0<(e>>>0>>0?e:f)>>>0){continue}break}}i=1;if(e>>>0>=f>>>0){break b}break a;case 8:d:{e:{e=K[a+24|0];c=c&255;if(!(c>>>0>e>>>0?e:c)){break e}i=J[a>>2];g=J[i>>2];b=J[a+48>>2]+jk(J[a+40>>2],J[a+44>>2],b,0)|0;h=g+b|0;f=J[i+4>>2];e=f-g|0;if(!K[a+32|0]){i=0;if((b|0)>=(e|0)){break d}b=0;while(1){k=N[h>>2];if(k=Q(32767)){break d}g=(b<<1)+d|0;if(m>1]=e;b=b+1|0;e=K[a+24|0];if(b>>>0>=(c>>>0>e>>>0?e:c)>>>0){break e}h=h+4|0;if(f>>>0>h>>>0){continue}break}break d}i=0;if((b|0)>=(e|0)){break d}b=0;while(1){k=N[h>>2];if(k=Q(32767))){break d}if(kQ(1)){break d}g=(b<<1)+d|0;j=V(+k*32767+.5);f:{if(R(j)<2147483648){e=~~j;break f}e=-2147483648}I[g>>1]=e;b=b+1|0;e=K[a+24|0];if(b>>>0>=(c>>>0>e>>>0?e:c)>>>0){break e}h=h+4|0;if(f>>>0>h>>>0){continue}break}break d}i=1;if(c>>>0<=e>>>0){break d}Xi((e<<1)+d|0,0,c-e<<1)}return i;case 9:g:{h:{e=K[a+24|0];c=c&255;if(!(c>>>0>e>>>0?e:c)){break h}i=J[a>>2];g=J[i>>2];b=J[a+48>>2]+jk(J[a+40>>2],J[a+44>>2],b,0)|0;h=g+b|0;f=J[i+4>>2];e=f-g|0;if(!K[a+32|0]){i=0;if((b|0)>=(e|0)){break g}b=0;while(1){j=O[h>>3];if(j<-32768|j!=j){break g}n=R(j);if(n==_|j>=32767){break g}g=(b<<1)+d|0;if(n<2147483648){e=~~j}else{e=-2147483648}I[g>>1]=e;b=b+1|0;e=K[a+24|0];if(b>>>0>=(c>>>0>e>>>0?e:c)>>>0){break h}h=h+8|0;if(f>>>0>h>>>0){continue}break}break g}i=0;if((b|0)>=(e|0)){break g}b=0;while(1){j=O[h>>3];if(j<-32768|j!=j|(R(j)==_|j>=32767)){break g}if(j<0|j>1){break g}g=(b<<1)+d|0;j=V(j*32767+.5);i:{if(R(j)<2147483648){e=~~j;break i}e=-2147483648}I[g>>1]=e;b=b+1|0;e=K[a+24|0];if(b>>>0>=(c>>>0>e>>>0?e:c)>>>0){break h}h=h+8|0;if(f>>>0>h>>>0){continue}break}break g}i=1;if(c>>>0<=e>>>0){break g}Xi((e<<1)+d|0,0,c-e<<1)}return i;case 10:break c;default:break b}}e=K[a+24|0];f=c&255;if(e>>>0>>0?e:f){g=J[a>>2];e=J[g>>2];b=J[a+48>>2]+jk(J[a+40>>2],J[a+44>>2],b,0)|0;b=e+b|0;g=J[g+4>>2];while(1){if(b>>>0>=g>>>0){break b}I[(h<<1)+d>>1]=K[b|0];b=b+1|0;h=h+1|0;e=K[a+24|0];if(h>>>0<(e>>>0>>0?e:f)>>>0){continue}break}}i=1;if(e>>>0>=f>>>0){break b}Xi((e<<1)+d|0,0,(c&255)-e<<1)}return i}Xi((e<<1)+d|0,0,(c&255)-e<<1);return 1}function qc(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0;j=a;a:{b:{c:{d:{e:{f:{g:{h:{a=J[a+8>>2];switch(J[a+28>>2]-1|0){case 4:break c;case 5:break d;case 2:break e;case 3:break f;case 0:break g;case 1:break h;default:break a}}f=K[a+24|0];c=Aj(f);a=J[j+16>>2];if(J[a+80>>2]){g=J[J[a>>2]>>2]+J[a+48>>2]|0}else{g=0}if(!b){break b}if(f){o=f&252;l=f&3;h=f>>>0<4;while(1){a=0;e=0;if(!h){while(1){k=g+(d<<2)|0;H[a+c|0]=J[k>>2];H[(a|1)+c|0]=J[k+4>>2];H[(a|2)+c|0]=J[k+8>>2];H[(a|3)+c|0]=J[k+12>>2];a=a+4|0;d=d+4|0;e=e+4|0;if((o|0)!=(e|0)){continue}break}}e=0;if(l){while(1){H[a+c|0]=J[g+(d<<2)>>2];a=a+1|0;d=d+1|0;e=e+1|0;if((l|0)!=(e|0)){continue}break}}Vi(J[J[J[j+8>>2]+64>>2]>>2]+m|0,c,f);m=f+m|0;n=n+1|0;if((n|0)!=(b|0)){continue}break}break b}a=0;if((b|0)!=1){g=b&-2;while(1){Vi(J[J[J[j+8>>2]+64>>2]>>2]+a|0,c,f);a=a+f|0;Vi(a+J[J[J[j+8>>2]+64>>2]>>2]|0,c,f);a=a+f|0;d=d+2|0;if((g|0)!=(d|0)){continue}break}}if(!(b&1)){break b}Vi(J[J[J[j+8>>2]+64>>2]>>2]+a|0,c,f);break b}f=K[a+24|0];c=Aj(f);a=J[j+16>>2];if(J[a+80>>2]){g=J[J[a>>2]>>2]+J[a+48>>2]|0}else{g=0}if(!b){break b}if(f){o=f&252;l=f&3;h=f>>>0<4;while(1){a=0;e=0;if(!h){while(1){k=g+(d<<2)|0;H[a+c|0]=J[k>>2];H[(a|1)+c|0]=J[k+4>>2];H[(a|2)+c|0]=J[k+8>>2];H[(a|3)+c|0]=J[k+12>>2];a=a+4|0;d=d+4|0;e=e+4|0;if((o|0)!=(e|0)){continue}break}}e=0;if(l){while(1){H[a+c|0]=J[g+(d<<2)>>2];a=a+1|0;d=d+1|0;e=e+1|0;if((l|0)!=(e|0)){continue}break}}Vi(J[J[J[j+8>>2]+64>>2]>>2]+m|0,c,f);m=f+m|0;n=n+1|0;if((n|0)!=(b|0)){continue}break}break b}a=0;if((b|0)!=1){g=b&-2;while(1){Vi(J[J[J[j+8>>2]+64>>2]>>2]+a|0,c,f);a=a+f|0;Vi(a+J[J[J[j+8>>2]+64>>2]>>2]|0,c,f);a=a+f|0;d=d+2|0;if((g|0)!=(d|0)){continue}break}}if(!(b&1)){break b}Vi(J[J[J[j+8>>2]+64>>2]>>2]+a|0,c,f);break b}h=K[a+24|0];i=h<<1;c=Aj(i);a=J[j+16>>2];if(J[a+80>>2]){g=J[J[a>>2]>>2]+J[a+48>>2]|0}else{g=0}if(!b){break b}if(h){o=h&252;l=h&3;h=h>>>0<4;while(1){a=0;e=0;if(!h){while(1){f=a<<1;k=g+(d<<2)|0;I[f+c>>1]=J[k>>2];I[(f|2)+c>>1]=J[k+4>>2];I[(f|4)+c>>1]=J[k+8>>2];I[(f|6)+c>>1]=J[k+12>>2];a=a+4|0;d=d+4|0;e=e+4|0;if((o|0)!=(e|0)){continue}break}}e=0;if(l){while(1){I[(a<<1)+c>>1]=J[g+(d<<2)>>2];a=a+1|0;d=d+1|0;e=e+1|0;if((l|0)!=(e|0)){continue}break}}Vi(J[J[J[j+8>>2]+64>>2]>>2]+n|0,c,i);n=i+n|0;m=m+1|0;if((m|0)!=(b|0)){continue}break}break b}a=0;if((b|0)!=1){g=b&-2;while(1){Vi(J[J[J[j+8>>2]+64>>2]>>2]+a|0,c,i);a=a+i|0;Vi(a+J[J[J[j+8>>2]+64>>2]>>2]|0,c,i);a=a+i|0;d=d+2|0;if((g|0)!=(d|0)){continue}break}}if(!(b&1)){break b}Vi(J[J[J[j+8>>2]+64>>2]>>2]+a|0,c,i);break b}h=K[a+24|0];i=h<<1;c=Aj(i);a=J[j+16>>2];if(J[a+80>>2]){g=J[J[a>>2]>>2]+J[a+48>>2]|0}else{g=0}if(!b){break b}if(h){o=h&252;l=h&3;h=h>>>0<4;while(1){a=0;e=0;if(!h){while(1){f=a<<1;k=g+(d<<2)|0;I[f+c>>1]=J[k>>2];I[(f|2)+c>>1]=J[k+4>>2];I[(f|4)+c>>1]=J[k+8>>2];I[(f|6)+c>>1]=J[k+12>>2];a=a+4|0;d=d+4|0;e=e+4|0;if((o|0)!=(e|0)){continue}break}}e=0;if(l){while(1){I[(a<<1)+c>>1]=J[g+(d<<2)>>2];a=a+1|0;d=d+1|0;e=e+1|0;if((l|0)!=(e|0)){continue}break}}Vi(J[J[J[j+8>>2]+64>>2]>>2]+n|0,c,i);n=i+n|0;m=m+1|0;if((m|0)!=(b|0)){continue}break}break b}a=0;if((b|0)!=1){g=b&-2;while(1){Vi(J[J[J[j+8>>2]+64>>2]>>2]+a|0,c,i);a=a+i|0;Vi(a+J[J[J[j+8>>2]+64>>2]>>2]|0,c,i);a=a+i|0;d=d+2|0;if((g|0)!=(d|0)){continue}break}}if(!(b&1)){break b}Vi(J[J[J[j+8>>2]+64>>2]>>2]+a|0,c,i);break b}h=K[a+24|0];i=h<<2;c=Aj(i);a=J[j+16>>2];if(J[a+80>>2]){g=J[J[a>>2]>>2]+J[a+48>>2]|0}else{g=0}if(!b){break b}if(h){o=h&252;l=h&3;h=h>>>0<4;while(1){a=0;e=0;if(!h){while(1){f=a<<2;k=g+(d<<2)|0;J[f+c>>2]=J[k>>2];J[(f|4)+c>>2]=J[k+4>>2];J[(f|8)+c>>2]=J[k+8>>2];J[(f|12)+c>>2]=J[k+12>>2];a=a+4|0;d=d+4|0;e=e+4|0;if((o|0)!=(e|0)){continue}break}}e=0;if(l){while(1){J[(a<<2)+c>>2]=J[g+(d<<2)>>2];a=a+1|0;d=d+1|0;e=e+1|0;if((l|0)!=(e|0)){continue}break}}Vi(J[J[J[j+8>>2]+64>>2]>>2]+n|0,c,i);n=i+n|0;m=m+1|0;if((m|0)!=(b|0)){continue}break}break b}a=0;if((b|0)!=1){g=b&-2;while(1){Vi(J[J[J[j+8>>2]+64>>2]>>2]+a|0,c,i);a=a+i|0;Vi(a+J[J[J[j+8>>2]+64>>2]>>2]|0,c,i);a=a+i|0;d=d+2|0;if((g|0)!=(d|0)){continue}break}}if(!(b&1)){break b}Vi(J[J[J[j+8>>2]+64>>2]>>2]+a|0,c,i);break b}h=K[a+24|0];i=h<<2;c=Aj(i);a=J[j+16>>2];if(J[a+80>>2]){g=J[J[a>>2]>>2]+J[a+48>>2]|0}else{g=0}if(!b){break b}if(h){o=h&252;l=h&3;h=h>>>0<4;while(1){a=0;e=0;if(!h){while(1){f=a<<2;k=g+(d<<2)|0;J[f+c>>2]=J[k>>2];J[(f|4)+c>>2]=J[k+4>>2];J[(f|8)+c>>2]=J[k+8>>2];J[(f|12)+c>>2]=J[k+12>>2];a=a+4|0;d=d+4|0;e=e+4|0;if((o|0)!=(e|0)){continue}break}}e=0;if(l){while(1){J[(a<<2)+c>>2]=J[g+(d<<2)>>2];a=a+1|0;d=d+1|0;e=e+1|0;if((l|0)!=(e|0)){continue}break}}Vi(J[J[J[j+8>>2]+64>>2]>>2]+n|0,c,i);n=i+n|0;m=m+1|0;if((m|0)!=(b|0)){continue}break}break b}a=0;if((b|0)!=1){g=b&-2;while(1){Vi(J[J[J[j+8>>2]+64>>2]>>2]+a|0,c,i);a=a+i|0;Vi(a+J[J[J[j+8>>2]+64>>2]>>2]|0,c,i);a=a+i|0;d=d+2|0;if((g|0)!=(d|0)){continue}break}}if(!(b&1)){break b}Vi(J[J[J[j+8>>2]+64>>2]>>2]+a|0,c,i)}xj(c);c=1}return c|0}function Cg(a,b,c,d){var e=0,f=0,g=0,h=0,i=0,j=0,k=Q(0),l=0,m=Q(0),n=0;a:{b:{if(!d){break b}c:{switch(J[a+28>>2]-1|0){case 0:e=K[a+24|0];f=c&255;if(e>>>0>>0?e:f){g=J[a>>2];e=J[g>>2];b=J[a+48>>2]+jk(J[a+40>>2],J[a+44>>2],b,0)|0;b=e+b|0;g=J[g+4>>2];while(1){if(b>>>0>=g>>>0){break b}J[(h<<2)+d>>2]=H[b|0];b=b+1|0;h=h+1|0;e=K[a+24|0];if(h>>>0<(e>>>0>>0?e:f)>>>0){continue}break}}i=1;if(e>>>0>=f>>>0){break b}break a;case 1:e=K[a+24|0];f=c&255;if(e>>>0>>0?e:f){g=J[a>>2];e=J[g>>2];b=J[a+48>>2]+jk(J[a+40>>2],J[a+44>>2],b,0)|0;b=e+b|0;g=J[g+4>>2];while(1){if(b>>>0>=g>>>0){break b}J[(h<<2)+d>>2]=K[b|0];b=b+1|0;h=h+1|0;e=K[a+24|0];if(h>>>0<(e>>>0>>0?e:f)>>>0){continue}break}}i=1;if(e>>>0>=f>>>0){break b}break a;case 2:e=K[a+24|0];f=c&255;if(e>>>0>>0?e:f){g=J[a>>2];e=J[g>>2];b=J[a+48>>2]+jk(J[a+40>>2],J[a+44>>2],b,0)|0;b=e+b|0;g=J[g+4>>2];while(1){if(b>>>0>=g>>>0){break b}J[(h<<2)+d>>2]=I[b>>1];b=b+2|0;h=h+1|0;e=K[a+24|0];if(h>>>0<(e>>>0>>0?e:f)>>>0){continue}break}}i=1;if(e>>>0>=f>>>0){break b}break a;case 3:e=K[a+24|0];f=c&255;if(e>>>0>>0?e:f){g=J[a>>2];e=J[g>>2];b=J[a+48>>2]+jk(J[a+40>>2],J[a+44>>2],b,0)|0;b=e+b|0;g=J[g+4>>2];while(1){if(b>>>0>=g>>>0){break b}J[(h<<2)+d>>2]=L[b>>1];b=b+2|0;h=h+1|0;e=K[a+24|0];if(h>>>0<(e>>>0>>0?e:f)>>>0){continue}break}}i=1;if(e>>>0>=f>>>0){break b}break a;case 4:e=K[a+24|0];f=c&255;if(e>>>0>>0?e:f){g=J[a>>2];e=J[g>>2];b=J[a+48>>2]+jk(J[a+40>>2],J[a+44>>2],b,0)|0;b=e+b|0;g=J[g+4>>2];while(1){if(b>>>0>=g>>>0){break b}J[(h<<2)+d>>2]=J[b>>2];b=b+4|0;h=h+1|0;e=K[a+24|0];if(h>>>0<(e>>>0>>0?e:f)>>>0){continue}break}}i=1;if(e>>>0>=f>>>0){break b}break a;case 5:e=K[a+24|0];f=c&255;if(e>>>0>>0?e:f){g=J[a>>2];e=J[g>>2];b=J[a+48>>2]+jk(J[a+40>>2],J[a+44>>2],b,0)|0;b=e+b|0;g=J[g+4>>2];while(1){if(b>>>0>=g>>>0){return 0}e=J[b>>2];if((e|0)<0){break b}J[(h<<2)+d>>2]=e;b=b+4|0;h=h+1|0;e=K[a+24|0];if(h>>>0<(e>>>0>>0?e:f)>>>0){continue}break}}i=1;if(e>>>0>=f>>>0){break b}break a;case 6:e=K[a+24|0];f=c&255;if(e>>>0>>0?e:f){g=J[a>>2];e=J[g>>2];b=J[a+48>>2]+jk(J[a+40>>2],J[a+44>>2],b,0)|0;b=e+b|0;g=J[g+4>>2];while(1){if(b>>>0>=g>>>0){break b}l=J[b>>2];if((J[b+4>>2]-(l>>>0<2147483648)|0)!=-1){break b}J[(h<<2)+d>>2]=l;b=b+8|0;h=h+1|0;e=K[a+24|0];if(h>>>0<(e>>>0>>0?e:f)>>>0){continue}break}}i=1;if(e>>>0>=f>>>0){break b}break a;case 7:e=K[a+24|0];f=c&255;if(e>>>0>>0?e:f){g=J[a>>2];e=J[g>>2];b=J[a+48>>2]+jk(J[a+40>>2],J[a+44>>2],b,0)|0;b=e+b|0;g=J[g+4>>2];while(1){if(b>>>0>=g>>>0){break b}e=J[b+4>>2];l=J[b>>2];if(!e&l>>>0>2147483647|e){break b}J[(h<<2)+d>>2]=l;b=b+8|0;h=h+1|0;e=K[a+24|0];if(h>>>0<(e>>>0>>0?e:f)>>>0){continue}break}}i=1;if(e>>>0>=f>>>0){break b}break a;case 8:d:{e:{e=K[a+24|0];c=c&255;if(!(c>>>0>e>>>0?e:c)){break e}i=J[a>>2];g=J[i>>2];b=J[a+48>>2]+jk(J[a+40>>2],J[a+44>>2],b,0)|0;h=g+b|0;f=J[i+4>>2];e=f-g|0;if(!K[a+32|0]){i=0;if((b|0)>=(e|0)){break d}b=0;while(1){k=N[h>>2];if(k=Q(2147483648)){break d}g=(b<<2)+d|0;if(m>2]=e;b=b+1|0;e=K[a+24|0];if(b>>>0>=(c>>>0>e>>>0?e:c)>>>0){break e}h=h+4|0;if(f>>>0>h>>>0){continue}break}break d}i=0;if((b|0)>=(e|0)){break d}b=0;while(1){k=N[h>>2];if(k=Q(2147483648))){break d}if(kQ(1)){break d}g=(b<<2)+d|0;j=V(+k*2147483647+.5);f:{if(R(j)<2147483648){e=~~j;break f}e=-2147483648}J[g>>2]=e;b=b+1|0;e=K[a+24|0];if(b>>>0>=(c>>>0>e>>>0?e:c)>>>0){break e}h=h+4|0;if(f>>>0>h>>>0){continue}break}break d}i=1;if(c>>>0<=e>>>0){break d}Xi((e<<2)+d|0,0,c-e<<2)}return i;case 9:g:{h:{e=K[a+24|0];c=c&255;if(!(c>>>0>e>>>0?e:c)){break h}i=J[a>>2];g=J[i>>2];b=J[a+48>>2]+jk(J[a+40>>2],J[a+44>>2],b,0)|0;h=g+b|0;f=J[i+4>>2];e=f-g|0;if(!K[a+32|0]){i=0;if((b|0)>=(e|0)){break g}b=0;while(1){j=O[h>>3];if(j<-2147483648|j!=j){break g}n=R(j);if(n==_|j>=2147483647){break g}g=(b<<2)+d|0;if(n<2147483648){e=~~j}else{e=-2147483648}J[g>>2]=e;b=b+1|0;e=K[a+24|0];if(b>>>0>=(c>>>0>e>>>0?e:c)>>>0){break h}h=h+8|0;if(f>>>0>h>>>0){continue}break}break g}i=0;if((b|0)>=(e|0)){break g}b=0;while(1){j=O[h>>3];if(j<-2147483648|j!=j|(R(j)==_|j>=2147483647)){break g}if(j<0|j>1){break g}g=(b<<2)+d|0;j=V(j*2147483647+.5);i:{if(R(j)<2147483648){e=~~j;break i}e=-2147483648}J[g>>2]=e;b=b+1|0;e=K[a+24|0];if(b>>>0>=(c>>>0>e>>>0?e:c)>>>0){break h}h=h+8|0;if(f>>>0>h>>>0){continue}break}break g}i=1;if(c>>>0<=e>>>0){break g}Xi((e<<2)+d|0,0,c-e<<2)}return i;case 10:break c;default:break b}}e=K[a+24|0];f=c&255;if(e>>>0>>0?e:f){g=J[a>>2];e=J[g>>2];b=J[a+48>>2]+jk(J[a+40>>2],J[a+44>>2],b,0)|0;b=e+b|0;g=J[g+4>>2];while(1){if(b>>>0>=g>>>0){break b}J[(h<<2)+d>>2]=K[b|0];b=b+1|0;h=h+1|0;e=K[a+24|0];if(h>>>0<(e>>>0>>0?e:f)>>>0){continue}break}}i=1;if(e>>>0>=f>>>0){break b}Xi((e<<2)+d|0,0,(c&255)-e<<2)}return i}Xi((e<<2)+d|0,0,(c&255)-e<<2);return 1}function Bg(a,b,c,d){var e=0,f=0,g=0,h=0,i=0,j=0,k=Q(0),l=0;a:{b:{if(!d){break b}c:{switch(J[a+28>>2]-1|0){case 0:e=K[a+24|0];f=c&255;if(e>>>0>>0?e:f){g=J[a>>2];e=J[g>>2];b=J[a+48>>2]+jk(J[a+40>>2],J[a+44>>2],b,0)|0;b=e+b|0;g=J[g+4>>2];while(1){if(b>>>0>=g>>>0){return 0}e=H[b|0];if((e|0)<0){break b}I[(h<<1)+d>>1]=e&255;b=b+1|0;h=h+1|0;e=K[a+24|0];if(h>>>0<(e>>>0>>0?e:f)>>>0){continue}break}}j=1;if(e>>>0>=f>>>0){break b}break a;case 1:e=K[a+24|0];f=c&255;if(e>>>0>>0?e:f){g=J[a>>2];e=J[g>>2];b=J[a+48>>2]+jk(J[a+40>>2],J[a+44>>2],b,0)|0;b=e+b|0;g=J[g+4>>2];while(1){if(b>>>0>=g>>>0){break b}I[(h<<1)+d>>1]=K[b|0];b=b+1|0;h=h+1|0;e=K[a+24|0];if(h>>>0<(e>>>0>>0?e:f)>>>0){continue}break}}j=1;if(e>>>0>=f>>>0){break b}break a;case 2:e=K[a+24|0];f=c&255;if(e>>>0>>0?e:f){g=J[a>>2];e=J[g>>2];b=J[a+48>>2]+jk(J[a+40>>2],J[a+44>>2],b,0)|0;b=e+b|0;g=J[g+4>>2];while(1){if(b>>>0>=g>>>0){return 0}e=I[b>>1];if((e|0)<0){break b}I[(h<<1)+d>>1]=e;b=b+2|0;h=h+1|0;e=K[a+24|0];if(h>>>0<(e>>>0>>0?e:f)>>>0){continue}break}}j=1;if(e>>>0>=f>>>0){break b}break a;case 3:e=K[a+24|0];f=c&255;if(e>>>0>>0?e:f){g=J[a>>2];e=J[g>>2];b=J[a+48>>2]+jk(J[a+40>>2],J[a+44>>2],b,0)|0;b=e+b|0;g=J[g+4>>2];while(1){if(b>>>0>=g>>>0){break b}I[(h<<1)+d>>1]=L[b>>1];b=b+2|0;h=h+1|0;e=K[a+24|0];if(h>>>0<(e>>>0>>0?e:f)>>>0){continue}break}}j=1;if(e>>>0>=f>>>0){break b}break a;case 4:e=K[a+24|0];f=c&255;if(e>>>0>>0?e:f){g=J[a>>2];e=J[g>>2];b=J[a+48>>2]+jk(J[a+40>>2],J[a+44>>2],b,0)|0;b=e+b|0;g=J[g+4>>2];while(1){if(b>>>0>=g>>>0){break b}e=J[b>>2];if(e>>>0>65535){break b}I[(h<<1)+d>>1]=e;b=b+4|0;h=h+1|0;e=K[a+24|0];if(h>>>0<(e>>>0>>0?e:f)>>>0){continue}break}}j=1;if(e>>>0>=f>>>0){break b}break a;case 5:e=K[a+24|0];f=c&255;if(e>>>0>>0?e:f){g=J[a>>2];e=J[g>>2];b=J[a+48>>2]+jk(J[a+40>>2],J[a+44>>2],b,0)|0;b=e+b|0;g=J[g+4>>2];while(1){if(b>>>0>=g>>>0){break b}e=J[b>>2];if(e>>>0>65535){break b}I[(h<<1)+d>>1]=e;b=b+4|0;h=h+1|0;e=K[a+24|0];if(h>>>0<(e>>>0>>0?e:f)>>>0){continue}break}}j=1;if(e>>>0>=f>>>0){break b}break a;case 6:e=K[a+24|0];f=c&255;if(e>>>0>>0?e:f){g=J[a>>2];e=J[g>>2];b=J[a+48>>2]+jk(J[a+40>>2],J[a+44>>2],b,0)|0;b=e+b|0;g=J[g+4>>2];while(1){if(b>>>0>=g>>>0){break b}e=J[b+4>>2];l=J[b>>2];if(!e&l>>>0>65535|e){break b}I[(h<<1)+d>>1]=l;b=b+8|0;h=h+1|0;e=K[a+24|0];if(h>>>0<(e>>>0>>0?e:f)>>>0){continue}break}}j=1;if(e>>>0>=f>>>0){break b}break a;case 7:e=K[a+24|0];f=c&255;if(e>>>0>>0?e:f){g=J[a>>2];e=J[g>>2];b=J[a+48>>2]+jk(J[a+40>>2],J[a+44>>2],b,0)|0;b=e+b|0;g=J[g+4>>2];while(1){if(b>>>0>=g>>>0){break b}e=J[b+4>>2];l=J[b>>2];if(!e&l>>>0>65535|e){break b}I[(h<<1)+d>>1]=l;b=b+8|0;h=h+1|0;e=K[a+24|0];if(h>>>0<(e>>>0>>0?e:f)>>>0){continue}break}}j=1;if(e>>>0>=f>>>0){break b}break a;case 8:d:{e:{e=K[a+24|0];c=c&255;if(!(c>>>0>e>>>0?e:c)){break e}j=J[a>>2];g=J[j>>2];b=J[a+48>>2]+jk(J[a+40>>2],J[a+44>>2],b,0)|0;h=g+b|0;f=J[j+4>>2];e=f-g|0;if(!K[a+32|0]){j=0;if((b|0)>=(e|0)){break d}b=0;while(1){k=N[h>>2];if(k=Q(65535))){break d}g=(b<<1)+d|0;if(k=Q(0)){e=~~k>>>0}else{e=0}I[g>>1]=e;b=b+1|0;e=K[a+24|0];if(b>>>0>=(c>>>0>e>>>0?e:c)>>>0){break e}h=h+4|0;if(f>>>0>h>>>0){continue}break}break d}j=0;if((b|0)>=(e|0)){break d}b=0;while(1){k=N[h>>2];if(k=Q(65535))){break d}if(k>Q(1)){break d}g=(b<<1)+d|0;i=V(+k*65535+.5);f:{if(i<4294967296&i>=0){e=~~i>>>0;break f}e=0}I[g>>1]=e;b=b+1|0;e=K[a+24|0];if(b>>>0>=(c>>>0>e>>>0?e:c)>>>0){break e}h=h+4|0;if(f>>>0>h>>>0){continue}break}break d}j=1;if(c>>>0<=e>>>0){break d}Xi((e<<1)+d|0,0,c-e<<1)}return j;case 9:g:{h:{e=K[a+24|0];c=c&255;if(!(c>>>0>e>>>0?e:c)){break h}j=J[a>>2];g=J[j>>2];b=J[a+48>>2]+jk(J[a+40>>2],J[a+44>>2],b,0)|0;h=g+b|0;f=J[j+4>>2];e=f-g|0;if(!K[a+32|0]){j=0;if((b|0)>=(e|0)){break g}b=0;while(1){i=O[h>>3];if(i<0|i!=i|(R(i)==_|i>=65535)){break g}g=(b<<1)+d|0;if(i<4294967296&i>=0){e=~~i>>>0}else{e=0}I[g>>1]=e;b=b+1|0;e=K[a+24|0];if(b>>>0>=(c>>>0>e>>>0?e:c)>>>0){break h}h=h+8|0;if(f>>>0>h>>>0){continue}break}break g}j=0;if((b|0)>=(e|0)){break g}b=0;while(1){i=O[h>>3];if(i<0|i!=i|(R(i)==_|i>=65535)){break g}if(i>1){break g}g=(b<<1)+d|0;i=V(i*65535+.5);i:{if(i<4294967296&i>=0){e=~~i>>>0;break i}e=0}I[g>>1]=e;b=b+1|0;e=K[a+24|0];if(b>>>0>=(c>>>0>e>>>0?e:c)>>>0){break h}h=h+8|0;if(f>>>0>h>>>0){continue}break}break g}j=1;if(c>>>0<=e>>>0){break g}Xi((e<<1)+d|0,0,c-e<<1)}return j;case 10:break c;default:break b}}e=K[a+24|0];f=c&255;if(e>>>0>>0?e:f){g=J[a>>2];e=J[g>>2];b=J[a+48>>2]+jk(J[a+40>>2],J[a+44>>2],b,0)|0;b=e+b|0;g=J[g+4>>2];while(1){if(b>>>0>=g>>>0){break b}I[(h<<1)+d>>1]=K[b|0];b=b+1|0;h=h+1|0;e=K[a+24|0];if(h>>>0<(e>>>0>>0?e:f)>>>0){continue}break}}j=1;if(e>>>0>=f>>>0){break b}Xi((e<<1)+d|0,0,(c&255)-e<<1)}return j}Xi((e<<1)+d|0,0,(c&255)-e<<1);return 1}function _c(a,b,c,d){var e=0,f=0,g=0,h=0,i=0,j=Q(0),k=0,l=0,m=0,n=Q(0),o=0;a:{if(!d){break a}b:{c:{switch(J[a+28>>2]-1|0){case 0:e=K[a+24|0];f=c&255;if(e>>>0>>0?e:f){e=J[a>>2];h=J[e>>2];b=J[a+48>>2]+jk(J[a+40>>2],J[a+44>>2],b,0)|0;b=h+b|0;h=J[e+4>>2];while(1){if(b>>>0>=h>>>0){break a}e=(g<<3)+d|0;i=H[b|0];J[e>>2]=i;J[e+4>>2]=i>>31;b=b+1|0;g=g+1|0;e=K[a+24|0];if(g>>>0<(e>>>0>>0?e:f)>>>0){continue}break}}if(e>>>0>=f>>>0){break a}d=(e<<3)+d|0;a=(c&255)-e|0;break b;case 1:e=K[a+24|0];f=c&255;if(e>>>0>>0?e:f){e=J[a>>2];h=J[e>>2];b=J[a+48>>2]+jk(J[a+40>>2],J[a+44>>2],b,0)|0;b=h+b|0;h=J[e+4>>2];while(1){if(b>>>0>=h>>>0){break a}e=(g<<3)+d|0;J[e>>2]=K[b|0];J[e+4>>2]=0;b=b+1|0;g=g+1|0;e=K[a+24|0];if(g>>>0<(e>>>0>>0?e:f)>>>0){continue}break}}if(e>>>0>=f>>>0){break a}d=(e<<3)+d|0;a=(c&255)-e|0;break b;case 2:e=K[a+24|0];f=c&255;if(e>>>0>>0?e:f){e=J[a>>2];h=J[e>>2];b=J[a+48>>2]+jk(J[a+40>>2],J[a+44>>2],b,0)|0;b=h+b|0;h=J[e+4>>2];while(1){if(b>>>0>=h>>>0){break a}e=(g<<3)+d|0;i=I[b>>1];J[e>>2]=i;J[e+4>>2]=i>>31;b=b+2|0;g=g+1|0;e=K[a+24|0];if(g>>>0<(e>>>0>>0?e:f)>>>0){continue}break}}if(e>>>0>=f>>>0){break a}d=(e<<3)+d|0;a=(c&255)-e|0;break b;case 3:e=K[a+24|0];f=c&255;if(e>>>0>>0?e:f){e=J[a>>2];h=J[e>>2];b=J[a+48>>2]+jk(J[a+40>>2],J[a+44>>2],b,0)|0;b=h+b|0;h=J[e+4>>2];while(1){if(b>>>0>=h>>>0){break a}e=(g<<3)+d|0;J[e>>2]=L[b>>1];J[e+4>>2]=0;b=b+2|0;g=g+1|0;e=K[a+24|0];if(g>>>0<(e>>>0>>0?e:f)>>>0){continue}break}}if(e>>>0>=f>>>0){break a}d=(e<<3)+d|0;a=(c&255)-e|0;break b;case 4:e=K[a+24|0];f=c&255;if(e>>>0>>0?e:f){e=J[a>>2];h=J[e>>2];b=J[a+48>>2]+jk(J[a+40>>2],J[a+44>>2],b,0)|0;b=h+b|0;h=J[e+4>>2];while(1){if(b>>>0>=h>>>0){break a}e=(g<<3)+d|0;i=J[b>>2];J[e>>2]=i;J[e+4>>2]=i>>31;b=b+4|0;g=g+1|0;e=K[a+24|0];if(g>>>0<(e>>>0>>0?e:f)>>>0){continue}break}}if(e>>>0>=f>>>0){break a}d=(e<<3)+d|0;a=(c&255)-e|0;break b;case 5:e=K[a+24|0];f=c&255;if(e>>>0>>0?e:f){e=J[a>>2];h=J[e>>2];b=J[a+48>>2]+jk(J[a+40>>2],J[a+44>>2],b,0)|0;b=h+b|0;h=J[e+4>>2];while(1){if(b>>>0>=h>>>0){break a}e=(g<<3)+d|0;J[e>>2]=J[b>>2];J[e+4>>2]=0;b=b+4|0;g=g+1|0;e=K[a+24|0];if(g>>>0<(e>>>0>>0?e:f)>>>0){continue}break}}if(e>>>0>=f>>>0){break a}d=(e<<3)+d|0;a=(c&255)-e|0;break b;case 6:e=K[a+24|0];f=c&255;if(e>>>0>>0?e:f){e=J[a>>2];h=J[e>>2];b=J[a+48>>2]+jk(J[a+40>>2],J[a+44>>2],b,0)|0;b=h+b|0;h=J[e+4>>2];while(1){if(b>>>0>=h>>>0){break a}i=J[b+4>>2];e=(g<<3)+d|0;J[e>>2]=J[b>>2];J[e+4>>2]=i;b=b+8|0;g=g+1|0;e=K[a+24|0];if(g>>>0<(e>>>0>>0?e:f)>>>0){continue}break}}if(e>>>0>=f>>>0){break a}d=(e<<3)+d|0;a=(c&255)-e|0;break b;case 7:e=K[a+24|0];f=c&255;if(e>>>0>>0?e:f){e=J[a>>2];h=J[e>>2];b=J[a+48>>2]+jk(J[a+40>>2],J[a+44>>2],b,0)|0;b=h+b|0;h=J[e+4>>2];while(1){if(b>>>0>=h>>>0){break a}e=J[b>>2];i=J[b+4>>2];if((i|0)<0){break a}l=(g<<3)+d|0;J[l>>2]=e;J[l+4>>2]=i;b=b+8|0;g=g+1|0;e=K[a+24|0];if(g>>>0<(e>>>0>>0?e:f)>>>0){continue}break}}if(e>>>0>=f>>>0){break a}d=(e<<3)+d|0;a=(c&255)-e|0;break b;case 8:d:{e=K[a+24|0];f=c&255;if(!(e>>>0>>0?e:f)){break d}if(K[a+32|0]){break a}b=J[a+48>>2]+jk(J[a+40>>2],J[a+44>>2],b,0)|0;e=J[a>>2];i=J[e+4>>2];e=J[e>>2];if((b|0)>=(i-e|0)){break a}g=b+e|0;h=c&255;b=0;while(1){j=N[g>>2];if(j>=Q(0x8000000000000000)|j=Q(1)?~~(j>Q(0)?Q(T(Q(V(Q(j*Q(2.3283064365386963e-10)))),Q(4294967296))):Q(W(Q(Q(j-Q(~~j>>>0>>>0))*Q(2.3283064365386963e-10)))))>>>0:0;m=~~j>>>0;break e}l=-2147483648;m=0}J[e>>2]=m;J[e+4>>2]=l;b=b+1|0;e=K[a+24|0];if(b>>>0>=(e>>>0>>0?e:h)>>>0){break d}g=g+4|0;if(i>>>0>g>>>0){continue}break}break a}if(e>>>0>=f>>>0){break a}d=(e<<3)+d|0;a=(c&255)-e|0;break b;case 9:f:{e=K[a+24|0];f=c&255;if(!(e>>>0>>0?e:f)){break f}if(K[a+32|0]){break a}b=J[a+48>>2]+jk(J[a+40>>2],J[a+44>>2],b,0)|0;e=J[a>>2];i=J[e+4>>2];e=J[e>>2];if((b|0)>=(i-e|0)){break a}g=b+e|0;h=c&255;b=0;while(1){k=O[g>>3];if(k>=0x8000000000000000|k<-0x8000000000000000|k!=k){break a}o=R(k);if(o==_){break a}e=(b<<3)+d|0;g:{if(o<0x8000000000000000){l=R(k)>=1?~~(k>0?T(V(k*2.3283064365386963e-10),4294967295):W((k-+(~~k>>>0>>>0))*2.3283064365386963e-10))>>>0:0;m=~~k>>>0;break g}l=-2147483648;m=0}J[e>>2]=m;J[e+4>>2]=l;b=b+1|0;e=K[a+24|0];if(b>>>0>=(e>>>0>>0?e:h)>>>0){break f}g=g+8|0;if(i>>>0>g>>>0){continue}break}break a}if(e>>>0>=f>>>0){break a}d=(e<<3)+d|0;a=(c&255)-e|0;break b;case 10:break c;default:break a}}e=K[a+24|0];f=c&255;if(e>>>0>>0?e:f){e=J[a>>2];h=J[e>>2];b=J[a+48>>2]+jk(J[a+40>>2],J[a+44>>2],b,0)|0;b=h+b|0;h=J[e+4>>2];while(1){if(b>>>0>=h>>>0){break a}e=(g<<3)+d|0;J[e>>2]=K[b|0];J[e+4>>2]=0;b=b+1|0;g=g+1|0;e=K[a+24|0];if(g>>>0<(e>>>0>>0?e:f)>>>0){continue}break}}if(e>>>0>=f>>>0){break a}d=(e<<3)+d|0;a=(c&255)-e|0}Xi(d,0,a<<3)}}function Ne(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0;g=ia-96|0;ia=g;n=J[a+4>>2];e=J[n+32>>2];k=J[e+8>>2];f=k;l=J[e+12>>2];d=l;c=J[e+20>>2];o=J[e+16>>2];a:{if((d|0)<=(c|0)&o>>>0>=f>>>0|(c|0)>(d|0)){break a}m=J[e>>2];p=K[m+o|0];f=o+1|0;d=f?c:c+1|0;J[e+16>>2]=f;J[e+20>>2]=d;if((d|0)>=(l|0)&f>>>0>=k>>>0|(d|0)>(l|0)){break a}j=K[f+m|0];f=o+2|0;d=f>>>0<2?c+1|0:c;i=f;J[e+16>>2]=f;J[e+20>>2]=d;q=p<<24>>24;b:{if((q|0)>=0){f=J[a+216>>2];if(p>>>0>=(J[a+220>>2]-f|0)/144>>>0){break a}f=f+P(p,144)|0;if(J[f>>2]<0){break b}break a}if(J[a+212>>2]>=0){break a}f=a+212|0}J[f>>2]=b;c:{d:{e:{f:{g:{h:{f=L[n+36>>1];i:{if(((f<<8|f>>>8)&65535)>>>0>=258){if((d|0)>=(l|0)&i>>>0>=k>>>0|(d|0)>(l|0)){break a}f=K[i+m|0];d=o+3|0;c=d>>>0<3?c+1|0:c;J[e+16>>2]=d;J[e+20>>2]=c;c=f>>>0>1;if(c){break a}c=c?0:f;if(!j){break i}if(!c){break h}break a}if(j){break g}c=0}if((q|0)<0){e=a+184|0}else{e=J[a+216>>2]+P(p,144)|0;H[e+100|0]=0;e=e+104|0}if((c|0)!=1){break e}c=ia-112|0;ia=c;m=J[J[a+4>>2]+44>>2];d=Aj(120);J[d>>2]=12220;J[d+4>>2]=0;J[d+116>>2]=0;J[d+112>>2]=e;J[d+108>>2]=m;J[d+12>>2]=0;J[d+16>>2]=0;J[d+20>>2]=0;J[d+24>>2]=0;J[d+28>>2]=0;J[d+32>>2]=0;J[d+36>>2]=0;J[d+40>>2]=0;J[d+44>>2]=0;J[d+48>>2]=0;J[d+52>>2]=0;J[d+56>>2]=0;J[d+60>>2]=0;J[d+8>>2]=12432;f=d- -64|0;J[f>>2]=0;J[f+4>>2]=0;J[d+72>>2]=0;J[d+76>>2]=0;J[d+80>>2]=0;J[d+84>>2]=0;J[d+88>>2]=0;J[d+104>>2]=0;J[d+96>>2]=0;J[d+100>>2]=0;k=J[a+8>>2];J[c+48>>2]=0;J[c+52>>2]=0;J[c+40>>2]=0;J[c+44>>2]=0;j=c+32|0;f=j;J[f>>2]=0;J[f+4>>2]=0;J[c+24>>2]=0;J[c+28>>2]=0;f=c- -64|0;J[f>>2]=0;J[f+4>>2]=0;J[c+72>>2]=0;J[c+76>>2]=0;J[c+80>>2]=0;J[c+84>>2]=0;J[c+88>>2]=0;J[c+104>>2]=0;J[c+16>>2]=0;J[c+20>>2]=0;J[c+56>>2]=0;J[c+60>>2]=0;J[c+8>>2]=12432;J[c+96>>2]=0;J[c+100>>2]=0;J[c+12>>2]=k;i=J[k>>2];f=J[k+4>>2];H[c+111|0]=0;l=j;j=c+111|0;Qe(l,(f-i>>2>>>0)/3|0,j);f=J[c+12>>2];i=J[f+28>>2];f=J[f+24>>2];H[c+111|0]=0;Qe(c+44|0,i-f>>2,j);J[c+28>>2]=d;J[c+24>>2]=m;J[c+20>>2]=e;J[c+16>>2]=k;e=d+8|0;f=c+8|0;Re(e,f);j:{if((f|0)==(e|0)){J[d+92>>2]=J[f+84>>2];break j}fb(d+56|0,J[f+48>>2],J[f+52>>2]);fb(d+68|0,J[f+60>>2],J[f- -64>>2]);fb(d+80|0,J[f+72>>2],J[f+76>>2]);J[d+92>>2]=J[f+84>>2];Sa(d+96|0,J[f+88>>2],J[f+92>>2])}J[c+8>>2]=12432;e=J[c+96>>2];if(e){J[c+100>>2]=e;xj(e)}e=J[c+80>>2];if(e){J[c+84>>2]=e;xj(e)}e=J[c+68>>2];if(e){J[c+72>>2]=e;xj(e)}e=J[c+56>>2];if(e){J[c+60>>2]=e;xj(e)}J[c+8>>2]=12668;e=J[c+44>>2];if(e){xj(e)}e=J[c+32>>2];if(e){xj(e)}ia=c+112|0;c=d;break d}if((q|0)>=0){break f}break a}if((q|0)<0){break a}}e=J[a+216>>2];f=J[n+44>>2];c=Aj(80);J[c>>2]=12980;J[c+4>>2]=0;J[c+76>>2]=0;J[c+68>>2]=f;J[c+8>>2]=11920;J[c+12>>2]=0;J[c+16>>2]=0;J[c+20>>2]=0;J[c+24>>2]=0;J[c+28>>2]=0;J[c+32>>2]=0;J[c+36>>2]=0;J[c+40>>2]=0;J[c+44>>2]=0;J[c+48>>2]=0;J[c+52>>2]=0;h=e+P(p,144)|0;d=h+104|0;J[c+72>>2]=d;J[c- -64>>2]=0;J[c+56>>2]=0;J[c+60>>2]=0;J[g+24>>2]=f;J[g+68>>2]=0;J[g+72>>2]=0;J[g+60>>2]=0;J[g+64>>2]=0;J[g+52>>2]=0;J[g+56>>2]=0;J[g+44>>2]=0;J[g+48>>2]=0;J[g+84>>2]=0;J[g+88>>2]=0;J[g+76>>2]=0;J[g+80>>2]=0;J[g+28>>2]=c;e=J[g+28>>2];J[g+8>>2]=J[g+24>>2];J[g+12>>2]=e;J[g+20>>2]=d;d=h+4|0;J[g+16>>2]=d;J[g+36>>2]=0;J[g+40>>2]=0;J[g+32>>2]=11920;e=J[g+20>>2];J[g>>2]=J[g+16>>2];J[g+4>>2]=e;h=g+32|0;Oe(h,d,g);e=c+8|0;Re(e,h);if((e|0)!=(h|0)){fb(c+56|0,J[h+48>>2],J[h+52>>2])}Pe(h);break c}d=ia+-64|0;ia=d;k=J[J[a+4>>2]+44>>2];c=Aj(80);J[c>>2]=12688;J[c+4>>2]=0;J[c+76>>2]=0;J[c+72>>2]=e;J[c+68>>2]=k;J[c+8>>2]=12852;J[c+12>>2]=0;J[c+16>>2]=0;J[c+20>>2]=0;J[c+24>>2]=0;J[c+28>>2]=0;J[c+32>>2]=0;J[c+36>>2]=0;J[c+40>>2]=0;J[c+44>>2]=0;J[c+48>>2]=0;J[c+52>>2]=0;J[c- -64>>2]=0;m=c+56|0;f=m;J[f>>2]=0;J[f+4>>2]=0;n=J[a+8>>2];J[d+40>>2]=0;J[d+44>>2]=0;J[d+32>>2]=0;J[d+36>>2]=0;j=d+24|0;f=j;J[f>>2]=0;J[f+4>>2]=0;J[d+16>>2]=0;J[d+20>>2]=0;J[d+56>>2]=0;J[d+8>>2]=0;J[d+12>>2]=0;J[d+48>>2]=0;J[d+52>>2]=0;J[d>>2]=12852;J[d+4>>2]=n;i=J[n>>2];f=J[n+4>>2];H[d+63|0]=0;l=j;j=d+63|0;Qe(l,(f-i>>2>>>0)/3|0,j);f=J[d+4>>2];i=J[f+28>>2];f=J[f+24>>2];H[d+63|0]=0;Qe(d+36|0,i-f>>2,j);J[d+20>>2]=c;J[d+16>>2]=k;J[d+12>>2]=e;J[d+8>>2]=n;Re(c+8|0,d);fb(m,J[d+48>>2],J[d+52>>2]);J[d>>2]=12852;e=J[d+48>>2];if(e){J[d+52>>2]=e;xj(e)}J[d>>2]=12668;e=J[d+36>>2];if(e){xj(e)}e=J[d+24>>2];if(e){xj(e)}ia=d- -64|0}if(!c){break a}}c=bc(Aj(64),c);i=J[a+4>>2];a=c;c=b;k:{l:{if((c|0)>=0){d=i+8|0;b=J[i+12>>2];e=J[i+8>>2];f=b-e>>2;m:{if((f|0)>(c|0)){break m}h=c+1|0;if(c>>>0>=f>>>0){dc(d,h-f|0);break m}if(f>>>0<=h>>>0){break m}e=e+(h<<2)|0;if((e|0)!=(b|0)){while(1){b=b-4|0;h=J[b>>2];J[b>>2]=0;if(h){na[J[J[h>>2]+4>>2]](h)}if((b|0)!=(e|0)){continue}break}}J[i+12>>2]=e}e=J[d>>2]+(c<<2)|0;b=J[e>>2];J[e>>2]=a;if(b){break l}break k}b=a;if(!a){break k}}na[J[J[b>>2]+4>>2]](b)}h=(c^-1)>>>31|0}ia=g+96|0;return h|0}function Dg(a,b,c,d){var e=0,f=0,g=0,h=0,i=0,j=0,k=Q(0);a:{b:{if(!d){break b}c:{switch(J[a+28>>2]-1|0){case 0:e=K[a+24|0];f=c&255;if(e>>>0>>0?e:f){g=J[a>>2];e=J[g>>2];b=J[a+48>>2]+jk(J[a+40>>2],J[a+44>>2],b,0)|0;b=e+b|0;g=J[g+4>>2];while(1){if(b>>>0>=g>>>0){break b}J[(h<<2)+d>>2]=H[b|0];b=b+1|0;h=h+1|0;e=K[a+24|0];if(h>>>0<(e>>>0>>0?e:f)>>>0){continue}break}}j=1;if(e>>>0>=f>>>0){break b}break a;case 1:e=K[a+24|0];f=c&255;if(e>>>0>>0?e:f){g=J[a>>2];e=J[g>>2];b=J[a+48>>2]+jk(J[a+40>>2],J[a+44>>2],b,0)|0;b=e+b|0;g=J[g+4>>2];while(1){if(b>>>0>=g>>>0){break b}J[(h<<2)+d>>2]=K[b|0];b=b+1|0;h=h+1|0;e=K[a+24|0];if(h>>>0<(e>>>0>>0?e:f)>>>0){continue}break}}j=1;if(e>>>0>=f>>>0){break b}break a;case 2:e=K[a+24|0];f=c&255;if(e>>>0>>0?e:f){g=J[a>>2];e=J[g>>2];b=J[a+48>>2]+jk(J[a+40>>2],J[a+44>>2],b,0)|0;b=e+b|0;g=J[g+4>>2];while(1){if(b>>>0>=g>>>0){break b}J[(h<<2)+d>>2]=I[b>>1];b=b+2|0;h=h+1|0;e=K[a+24|0];if(h>>>0<(e>>>0>>0?e:f)>>>0){continue}break}}j=1;if(e>>>0>=f>>>0){break b}break a;case 3:e=K[a+24|0];f=c&255;if(e>>>0>>0?e:f){g=J[a>>2];e=J[g>>2];b=J[a+48>>2]+jk(J[a+40>>2],J[a+44>>2],b,0)|0;b=e+b|0;g=J[g+4>>2];while(1){if(b>>>0>=g>>>0){break b}J[(h<<2)+d>>2]=L[b>>1];b=b+2|0;h=h+1|0;e=K[a+24|0];if(h>>>0<(e>>>0>>0?e:f)>>>0){continue}break}}j=1;if(e>>>0>=f>>>0){break b}break a;case 4:e=K[a+24|0];f=c&255;if(e>>>0>>0?e:f){g=J[a>>2];e=J[g>>2];b=J[a+48>>2]+jk(J[a+40>>2],J[a+44>>2],b,0)|0;b=e+b|0;g=J[g+4>>2];while(1){if(b>>>0>=g>>>0){break b}J[(h<<2)+d>>2]=J[b>>2];b=b+4|0;h=h+1|0;e=K[a+24|0];if(h>>>0<(e>>>0>>0?e:f)>>>0){continue}break}}j=1;if(e>>>0>=f>>>0){break b}break a;case 5:e=K[a+24|0];f=c&255;if(e>>>0>>0?e:f){g=J[a>>2];e=J[g>>2];b=J[a+48>>2]+jk(J[a+40>>2],J[a+44>>2],b,0)|0;b=e+b|0;g=J[g+4>>2];while(1){if(b>>>0>=g>>>0){break b}J[(h<<2)+d>>2]=J[b>>2];b=b+4|0;h=h+1|0;e=K[a+24|0];if(h>>>0<(e>>>0>>0?e:f)>>>0){continue}break}}j=1;if(e>>>0>=f>>>0){break b}break a;case 6:e=K[a+24|0];f=c&255;if(e>>>0>>0?e:f){g=J[a>>2];e=J[g>>2];b=J[a+48>>2]+jk(J[a+40>>2],J[a+44>>2],b,0)|0;b=e+b|0;g=J[g+4>>2];while(1){if(b>>>0>=g>>>0){break b}e=J[b>>2];if(J[b+4>>2]){break b}J[(h<<2)+d>>2]=e;b=b+8|0;h=h+1|0;e=K[a+24|0];if(h>>>0<(e>>>0>>0?e:f)>>>0){continue}break}}j=1;if(e>>>0>=f>>>0){break b}break a;case 7:e=K[a+24|0];f=c&255;if(e>>>0>>0?e:f){g=J[a>>2];e=J[g>>2];b=J[a+48>>2]+jk(J[a+40>>2],J[a+44>>2],b,0)|0;b=e+b|0;g=J[g+4>>2];while(1){if(b>>>0>=g>>>0){break b}e=J[b>>2];if(J[b+4>>2]){break b}J[(h<<2)+d>>2]=e;b=b+8|0;h=h+1|0;e=K[a+24|0];if(h>>>0<(e>>>0>>0?e:f)>>>0){continue}break}}j=1;if(e>>>0>=f>>>0){break b}break a;case 8:d:{e:{e=K[a+24|0];c=c&255;if(!(c>>>0>e>>>0?e:c)){break e}j=J[a>>2];g=J[j>>2];b=J[a+48>>2]+jk(J[a+40>>2],J[a+44>>2],b,0)|0;h=g+b|0;f=J[j+4>>2];e=f-g|0;if(!K[a+32|0]){j=0;if((b|0)>=(e|0)){break d}b=0;while(1){k=N[h>>2];if(k=Q(4294967296))){break d}g=(b<<2)+d|0;if(k=Q(0)){e=~~k>>>0}else{e=0}J[g>>2]=e;b=b+1|0;e=K[a+24|0];if(b>>>0>=(c>>>0>e>>>0?e:c)>>>0){break e}h=h+4|0;if(f>>>0>h>>>0){continue}break}break d}j=0;if((b|0)>=(e|0)){break d}b=0;while(1){k=N[h>>2];if(k=Q(4294967296))){break d}if(k>Q(1)){break d}g=(b<<2)+d|0;i=V(+k*4294967295+.5);f:{if(i<4294967296&i>=0){e=~~i>>>0;break f}e=0}J[g>>2]=e;b=b+1|0;e=K[a+24|0];if(b>>>0>=(c>>>0>e>>>0?e:c)>>>0){break e}h=h+4|0;if(f>>>0>h>>>0){continue}break}break d}j=1;if(c>>>0<=e>>>0){break d}Xi((e<<2)+d|0,0,c-e<<2)}return j;case 9:g:{h:{e=K[a+24|0];c=c&255;if(!(c>>>0>e>>>0?e:c)){break h}j=J[a>>2];g=J[j>>2];b=J[a+48>>2]+jk(J[a+40>>2],J[a+44>>2],b,0)|0;h=g+b|0;f=J[j+4>>2];e=f-g|0;if(!K[a+32|0]){j=0;if((b|0)>=(e|0)){break g}b=0;while(1){i=O[h>>3];if(i<0|i!=i|(R(i)==_|i>=4294967295)){break g}g=(b<<2)+d|0;if(i<4294967296&i>=0){e=~~i>>>0}else{e=0}J[g>>2]=e;b=b+1|0;e=K[a+24|0];if(b>>>0>=(c>>>0>e>>>0?e:c)>>>0){break h}h=h+8|0;if(f>>>0>h>>>0){continue}break}break g}j=0;if((b|0)>=(e|0)){break g}b=0;while(1){i=O[h>>3];if(i<0|i!=i|(R(i)==_|i>=4294967295)){break g}if(i>1){break g}g=(b<<2)+d|0;i=V(i*4294967295+.5);i:{if(i<4294967296&i>=0){e=~~i>>>0;break i}e=0}J[g>>2]=e;b=b+1|0;e=K[a+24|0];if(b>>>0>=(c>>>0>e>>>0?e:c)>>>0){break h}h=h+8|0;if(f>>>0>h>>>0){continue}break}break g}j=1;if(c>>>0<=e>>>0){break g}Xi((e<<2)+d|0,0,c-e<<2)}return j;case 10:break c;default:break b}}e=K[a+24|0];f=c&255;if(e>>>0>>0?e:f){g=J[a>>2];e=J[g>>2];b=J[a+48>>2]+jk(J[a+40>>2],J[a+44>>2],b,0)|0;b=e+b|0;g=J[g+4>>2];while(1){if(b>>>0>=g>>>0){break b}J[(h<<2)+d>>2]=K[b|0];b=b+1|0;h=h+1|0;e=K[a+24|0];if(h>>>0<(e>>>0>>0?e:f)>>>0){continue}break}}j=1;if(e>>>0>=f>>>0){break b}Xi((e<<2)+d|0,0,(c&255)-e<<2)}return j}Xi((e<<2)+d|0,0,(c&255)-e<<2);return 1}function tj(a){var b=0,c=0,d=0,e=0,f=0,g=0;e=ia-16|0;ia=e;J[e+12>>2]=a;a:{if(a>>>0<=211){d=J[uj(14304,14496,e+12|0)>>2];break a}if(a>>>0>=4294967292){fa();C()}f=(a>>>0)/210|0;d=P(f,210);J[e+8>>2]=a-d;g=uj(14496,14688,e+8|0)-14496>>2;while(1){d=J[(g<<2)+14496>>2]+d|0;a=5;while(1){b:{if((a|0)==47){a=211;while(1){b=(d>>>0)/(a>>>0)|0;if(b>>>0>>0){break a}if((P(a,b)|0)==(d|0)){break b}b=a+10|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}if((P(b,c)|0)==(d|0)){break b}b=a+12|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}if((P(b,c)|0)==(d|0)){break b}b=a+16|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}if((P(b,c)|0)==(d|0)){break b}b=a+18|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}if((P(b,c)|0)==(d|0)){break b}b=a+22|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}if((P(b,c)|0)==(d|0)){break b}b=a+28|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}if((P(b,c)|0)==(d|0)){break b}b=a+30|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}if((P(b,c)|0)==(d|0)){break b}b=a+36|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}if((P(b,c)|0)==(d|0)){break b}b=a+40|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}if((P(b,c)|0)==(d|0)){break b}b=a+42|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}if((P(b,c)|0)==(d|0)){break b}b=a+46|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}if((P(b,c)|0)==(d|0)){break b}b=a+52|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}if((P(b,c)|0)==(d|0)){break b}b=a+58|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}if((P(b,c)|0)==(d|0)){break b}b=a+60|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}if((P(b,c)|0)==(d|0)){break b}b=a+66|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}if((P(b,c)|0)==(d|0)){break b}b=a+70|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}if((P(b,c)|0)==(d|0)){break b}b=a+72|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}if((P(b,c)|0)==(d|0)){break b}b=a+78|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}if((P(b,c)|0)==(d|0)){break b}b=a+82|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}if((P(b,c)|0)==(d|0)){break b}b=a+88|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}if((P(b,c)|0)==(d|0)){break b}b=a+96|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}if((P(b,c)|0)==(d|0)){break b}b=a+100|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}if((P(b,c)|0)==(d|0)){break b}b=a+102|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}if((P(b,c)|0)==(d|0)){break b}b=a+106|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}if((P(b,c)|0)==(d|0)){break b}b=a+108|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}if((P(b,c)|0)==(d|0)){break b}b=a+112|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}if((P(b,c)|0)==(d|0)){break b}b=a+120|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}if((P(b,c)|0)==(d|0)){break b}b=a+126|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}if((P(b,c)|0)==(d|0)){break b}b=a+130|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}if((P(b,c)|0)==(d|0)){break b}b=a+136|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}if((P(b,c)|0)==(d|0)){break b}b=a+138|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}if((P(b,c)|0)==(d|0)){break b}b=a+142|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}if((P(b,c)|0)==(d|0)){break b}b=a+148|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}if((P(b,c)|0)==(d|0)){break b}b=a+150|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}if((P(b,c)|0)==(d|0)){break b}b=a+156|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}if((P(b,c)|0)==(d|0)){break b}b=a+162|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}if((P(b,c)|0)==(d|0)){break b}b=a+166|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}if((P(b,c)|0)==(d|0)){break b}b=a+168|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}if((P(b,c)|0)==(d|0)){break b}b=a+172|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}if((P(b,c)|0)==(d|0)){break b}b=a+178|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}if((P(b,c)|0)==(d|0)){break b}b=a+180|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}if((P(b,c)|0)==(d|0)){break b}b=a+186|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}if((P(b,c)|0)==(d|0)){break b}b=a+190|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}if((P(b,c)|0)==(d|0)){break b}b=a+192|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}if((P(b,c)|0)==(d|0)){break b}b=a+196|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}if((P(b,c)|0)==(d|0)){break b}b=a+198|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}if((P(b,c)|0)==(d|0)){break b}b=a+208|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}a=a+210|0;if((P(b,c)|0)!=(d|0)){continue}break}break b}b=J[(a<<2)+14304>>2];c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}a=a+1|0;if((P(b,c)|0)!=(d|0)){continue}}break}d=g+1|0;a=(d|0)==48;g=a?0:d;f=a+f|0;d=P(f,210);continue}}ia=e+16|0;return d}function Ye(a,b){var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0;j=ia-16|0;ia=j;a:{b:{c:{d:{if(K[J[a+4>>2]+36|0]<=1){l=-1;c=J[b+20>>2];g=J[b+16>>2];d=g+4|0;c=d>>>0<4?c+1|0:c;f=d;d=J[b+12>>2];if(f>>>0>M[b+8>>2]&(d|0)<=(c|0)|(c|0)>(d|0)){break c}d=g+J[b>>2]|0;m=K[d|0]|K[d+1|0]<<8|(K[d+2|0]<<16|K[d+3|0]<<24);J[j+12>>2]=m;J[b+16>>2]=f;J[b+20>>2]=c;break d}l=-1;if(!Te(1,j+12|0,b)){break c}m=J[j+12>>2]}e:{f:{g:{h:{i:{if(!m){break i}c=J[a+8>>2];if((J[c+4>>2]-J[c>>2]>>2>>>0)/3>>>0>>0){break c}c=L[J[a+4>>2]+36>>1];if(((c<<8|c>>>8)&65535)>>>0>=258){j:{while(1){if(!Te(1,j+8|0,b)){break c}c=J[j+8>>2];if(!Te(1,j+8|0,b)){break c}e=c+e|0;c=J[j+8>>2];if(e>>>0>>0){break c}f=e-c|0;c=J[a+40>>2];k:{if((c|0)!=J[a+44>>2]){J[c+4>>2]=e;J[c>>2]=f;J[a+40>>2]=c+12;m=J[j+12>>2];break k}n=J[a+36>>2];h=c-n|0;g=(h|0)/12|0;d=g+1|0;if(d>>>0>=357913942){break j}c=g<<1;i=g>>>0>=178956970?357913941:c>>>0>d>>>0?c:d;if(i){if(i>>>0>=357913942){break b}c=Aj(P(i,12))}else{c=0}g=c+P(g,12)|0;J[g+4>>2]=e;J[g>>2]=f;d=g+P((h|0)/-12|0,12)|0;if((h|0)>0){Vi(d,n,h)}J[a+44>>2]=c+P(i,12);J[a+40>>2]=g+12;J[a+36>>2]=d;if(!n){break k}xj(n)}k=k+1|0;if(k>>>0>>0){continue}break}l=0;sg(b,0,0);if(m){while(1){e=K[b+36|0];c=L[J[a+4>>2]+36>>1];l:{m:{if(((c<<8|c>>>8)&65535)>>>0<=513){if(!e){break l}k=0;c=J[b+32>>2];o=c>>>3|0;g=J[b+24>>2];e=o+g|0;f=J[b+28>>2];n:{if(e>>>0>=f>>>0){e=c;break n}d=K[e|0];e=c+1|0;J[b+32>>2]=e;o=e>>>3|0;k=d>>>(c&7)&1}if(f>>>0>g+o>>>0){break m}break l}if(!e){break l}k=0;e=J[b+32>>2];c=J[b+24>>2]+(e>>>3|0)|0;if(c>>>0>=M[b+28>>2]){break l}k=K[c|0]>>>(e&7)&1}J[b+32>>2]=e+1}c=J[a+36>>2]+P(l,12)|0;H[c+8|0]=K[c+8|0]&254|k&1;l=l+1|0;if((m|0)!=(l|0)){continue}break}}H[b+36|0]=0;f=J[b+20>>2];e=0;c=J[b+32>>2]+7|0;e=c>>>0<7?1:e;d=c;c=e>>>3|0;e=(e&7)<<29|d>>>3;d=e+J[b+16>>2]|0;c=c+f|0;J[b+16>>2]=d;J[b+20>>2]=d>>>0>>0?c+1|0:c;break i}La();C()}while(1){d=J[b+12>>2];c=J[b+20>>2];e=c;p=J[b+16>>2];f=p+4|0;c=f>>>0<4?c+1|0:c;n=J[b+8>>2];h=f;if(n>>>0>>0&(c|0)>=(d|0)|(c|0)>(d|0)){break c}i=J[b>>2];f=i+p|0;g=K[f|0]|K[f+1|0]<<8|(K[f+2|0]<<16|K[f+3|0]<<24);J[b+16>>2]=h;J[b+20>>2]=c;c=e;f=p+8|0;c=f>>>0<8?c+1|0:c;k=f;if(f>>>0>n>>>0&(c|0)>=(d|0)|(c|0)>(d|0)){break c}f=h+i|0;f=K[f|0]|K[f+1|0]<<8|(K[f+2|0]<<16|K[f+3|0]<<24);J[b+16>>2]=k;J[b+20>>2]=c;if((c|0)>=(d|0)&k>>>0>=n>>>0|(c|0)>(d|0)){break c}d=K[i+k|0];c=p+9|0;e=c>>>0<9?e+1|0:e;J[b+16>>2]=c;J[b+20>>2]=e;d=d&1;c=J[a+40>>2];o:{if((c|0)!=J[a+44>>2]){H[c+8|0]=d;J[c+4>>2]=f;J[c>>2]=g;J[a+40>>2]=c+12;m=J[j+12>>2];break o}k=J[a+36>>2];n=c-k|0;h=(n|0)/12|0;e=h+1|0;if(e>>>0>=357913942){break h}c=h<<1;i=h>>>0>=178956970?357913941:c>>>0>e>>>0?c:e;if(i){if(i>>>0>=357913942){break b}c=Aj(P(i,12))}else{c=0}h=c+P(h,12)|0;H[h+8|0]=d;J[h+4>>2]=f;J[h>>2]=g;e=h+P((n|0)/-12|0,12)|0;if((n|0)>0){Vi(e,k,n)}J[a+44>>2]=c+P(i,12);J[a+40>>2]=h+12;J[a+36>>2]=e;if(!k){break o}xj(k)}o=o+1|0;if(o>>>0>>0){continue}break}}J[j+8>>2]=0;c=L[J[a+4>>2]+36>>1];c=(c<<8|c>>>8)&65535;p:{if(c>>>0<=511){l=-1;c=J[b+20>>2];f=J[b+16>>2];e=f+4|0;c=e>>>0<4?c+1|0:c;d=e;e=J[b+12>>2];if(d>>>0>M[b+8>>2]&(e|0)<=(c|0)|(c|0)>(e|0)){break c}e=f+J[b>>2]|0;e=K[e|0]|K[e+1|0]<<8|(K[e+2|0]<<16|K[e+3|0]<<24);J[b+16>>2]=d;J[b+20>>2]=c;break p}if((c|0)!=512){break e}l=-1;if(!Te(1,j+8|0,b)){break c}e=J[j+8>>2]}if(!e){break e}c=L[J[a+4>>2]+36>>1];if(((c<<8|c>>>8)&65535)>>>0<258){break f}o=0;m=0;while(1){if(!Te(1,j+4|0,b)){break c}m=J[j+4>>2]+m|0;c=J[a+52>>2];q:{if((c|0)!=J[a+56>>2]){J[c>>2]=m;J[a+52>>2]=c+4;break q}g=J[a+48>>2];i=c-g|0;d=i>>2;f=d+1|0;if(f>>>0>=1073741824){break g}c=i>>1;f=i>>>0>=2147483644?1073741823:c>>>0>f>>>0?c:f;if(f){if(f>>>0>=1073741824){break b}c=Aj(f<<2)}else{c=0}d=c+(d<<2)|0;J[d>>2]=m;if((i|0)>0){Vi(c,g,i)}J[a+56>>2]=c+(f<<2);J[a+52>>2]=d+4;J[a+48>>2]=c;if(!g){break q}xj(g)}o=o+1|0;if((o|0)!=(e|0)){continue}break}break e}La();C()}La();C()}l=0;while(1){c=J[b+20>>2];g=J[b+16>>2];d=g+4|0;c=d>>>0<4?c+1|0:c;f=d;d=J[b+12>>2];if(f>>>0>M[b+8>>2]&(d|0)<=(c|0)|(c|0)>(d|0)){l=-1;break c}d=g+J[b>>2]|0;g=K[d|0]|K[d+1|0]<<8|(K[d+2|0]<<16|K[d+3|0]<<24);J[b+16>>2]=f;J[b+20>>2]=c;c=J[a+52>>2];r:{if((c|0)!=J[a+56>>2]){J[c>>2]=g;J[a+52>>2]=c+4;break r}i=J[a+48>>2];h=c-i|0;d=h>>2;f=d+1|0;if(f>>>0>=1073741824){break a}c=h>>1;f=h>>>0>=2147483644?1073741823:c>>>0>f>>>0?c:f;if(f){if(f>>>0>=1073741824){break b}c=Aj(f<<2)}else{c=0}d=c+(d<<2)|0;J[d>>2]=g;if((h|0)>0){Vi(c,i,h)}J[a+56>>2]=c+(f<<2);J[a+52>>2]=d+4;J[a+48>>2]=c;if(!i){break r}xj(i)}l=l+1|0;if((l|0)!=(e|0)){continue}break}}l=J[b+16>>2]}ia=j+16|0;return l}Za();C()}La();C()}function Gf(a,b){var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0;a:{b:{c:{d:{e:{if(J[a+92>>2]==J[a+88>>2]){break e}c=J[a+52>>2];f:{if((c|0)!=J[a+56>>2]){J[c>>2]=b;J[a+52>>2]=c+4;break f}d=J[a+48>>2];h=c-d|0;f=h>>2;e=f+1|0;if(e>>>0>=1073741824){break a}c=h>>1;e=h>>>0>=2147483644?1073741823:c>>>0>e>>>0?c:e;if(e){if(e>>>0>=1073741824){break d}c=Aj(e<<2)}else{c=0}f=c+(f<<2)|0;J[f>>2]=b;if((h|0)>0){Vi(c,d,h)}J[a+56>>2]=c+(e<<2);J[a+52>>2]=f+4;J[a+48>>2]=c;if(!d){break f}xj(d)}J[a+84>>2]=0;f=-1;c=-1;g:{if((b|0)==-1){break g}e=J[a+4>>2];c=b+1|0;c=(c>>>0)%3|0?c:b-2|0;if((c|0)!=-1){f=J[J[e>>2]+(c<<2)>>2]}h:{if((b>>>0)%3|0){d=b-1|0;break h}d=b+2|0;c=-1;if((d|0)==-1){break g}}c=J[J[e>>2]+(d<<2)>>2]}i=c>>>3&536870908;e=J[a+36>>2];g=e+(f>>>3&536870908)|0;h=J[g>>2];d=1<>2]=d|h;g=a+8|0;if((b|0)!=-1){e=b+1|0;d=(e>>>0)%3|0?e:b-2|0}else{d=-1}Hf(g,f,d);e=J[a+36>>2]}d=e+i|0;e=J[d>>2];f=1<>2]=e|f;d=a+8|0;f=-1;i:{if((b|0)==-1){break i}f=b-1|0;if((b>>>0)%3|0){break i}f=b+2|0}Hf(d,c,f)}f=-1;f=(b|0)!=-1?J[J[J[a+4>>2]>>2]+(b<<2)>>2]:f;d=J[a+36>>2]+(f>>>3&536870908)|0;e=J[d>>2];c=1<>2]=c|e;Hf(a+8|0,f,b)}d=J[a+84>>2];if((d|0)>2){break e}while(1){f=P(d,12)+a|0;b=J[f+52>>2];if((b|0)==J[f+48>>2]){d=d+1|0;if((d|0)!=3){continue}break e}c=b-4|0;b=J[c>>2];J[f+52>>2]=c;J[a+84>>2]=d;if((b|0)==-1){break e}f=J[a+24>>2];c=(b>>>0)/3|0;j:{if(J[f+(c>>>3&268435452)>>2]>>>c&1){break j}k:{while(1){i=(b>>>0)/3|0;c=(i>>>3&268435452)+f|0;J[c>>2]=J[c>>2]|1<>2]>>2]+(b<<2)>>2]:f;d=J[a+36>>2]+(f>>>3&536870908)|0;e=J[d>>2];c=1<>2]=c|e;h=J[(J[J[a+16>>2]+96>>2]+P(i,12)|0)+((b>>>0)%3<<2)>>2];k=J[J[a+20>>2]+4>>2];c=J[k+4>>2];t:{if((c|0)!=J[k+8>>2]){J[c>>2]=h;J[k+4>>2]=c+4;break t}g=J[k>>2];j=c-g|0;e=j>>2;d=e+1|0;if(d>>>0>=1073741824){break s}c=j>>1;d=j>>>0>=2147483644?1073741823:c>>>0>d>>>0?c:d;if(d){if(d>>>0>=1073741824){break d}c=Aj(d<<2)}else{c=0}e=c+(e<<2)|0;J[e>>2]=h;if((j|0)>0){Vi(c,g,j)}J[k+8>>2]=c+(d<<2);J[k+4>>2]=e+4;J[k>>2]=c;if(!g){break t}xj(g)}j=J[a+12>>2];c=J[j+4>>2];u:{if((c|0)!=J[j+8>>2]){J[c>>2]=b;J[j+4>>2]=c+4;break u}h=J[j>>2];g=c-h|0;e=g>>2;d=e+1|0;if(d>>>0>=1073741824){break r}c=g>>1;d=g>>>0>=2147483644?1073741823:c>>>0>d>>>0?c:d;if(d){if(d>>>0>=1073741824){break d}c=Aj(d<<2)}else{c=0}e=c+(e<<2)|0;J[e>>2]=b;if((g|0)>0){Vi(c,h,g)}J[j+8>>2]=c+(d<<2);J[j+4>>2]=e+4;J[j>>2]=c;if(!h){break u}xj(h)}c=J[a+12>>2];J[J[c+12>>2]+(f<<2)>>2]=J[c+24>>2];J[c+24>>2]=J[c+24>>2]+1}if((b|0)==-1){break k}g=J[a+4>>2];f=-1;c=b+1|0;c=(c>>>0)%3|0?c:b-2|0;if((c|0)!=-1){f=J[J[g+12>>2]+(c<<2)>>2]}v:{w:{if((P(i,3)|0)!=(b|0)){e=b-1|0;break w}e=b+2|0;b=-1;if((e|0)==-1){break v}}b=J[J[g+12>>2]+(e<<2)>>2]}h=(b|0)==-1;e=(b>>>0)/3|0;if((f|0)!=-1){c=(f>>>0)/3|0;c=J[J[a+24>>2]+(c>>>3&268435452)>>2]&1<>2]+(c>>>3&536870908)>>2]>>>c&1){break x}e=0;c=J[J[g>>2]+(b<<2)>>2];if(!(J[J[a+36>>2]+(c>>>3&536870908)>>2]>>>c&1)){c=J[a+88>>2]+(c<<2)|0;e=J[c>>2];J[c>>2]=e+1;e=(e|0)<=0?2:1}if(J[a+84>>2]>=(e|0)?d:0){break m}k=P(e,12)+a|0;c=J[k+52>>2];y:{if((c|0)!=J[k+56>>2]){J[c>>2]=b;J[k+52>>2]=c+4;break y}i=J[k+48>>2];j=c-i|0;h=j>>2;g=h+1|0;if(g>>>0>=1073741824){break c}c=j>>1;g=j>>>0>=2147483644?1073741823:c>>>0>g>>>0?c:g;if(g){if(g>>>0>=1073741824){break d}c=Aj(g<<2)}else{c=0}h=c+(h<<2)|0;J[h>>2]=b;if((j|0)>0){Vi(c,i,j)}J[k+48>>2]=c;J[k+52>>2]=h+4;J[k+56>>2]=c+(g<<2);if(!i){break y}xj(i)}if(J[a+84>>2]<=(e|0)){break x}J[a+84>>2]=e}if(d){break k}b=-1;if((f|0)==-1){break n}}b=J[J[J[a+4>>2]>>2]+(f<<2)>>2]}e=0;if(!(J[J[a+36>>2]+(b>>>3&536870908)>>2]>>>b&1)){b=J[a+88>>2]+(b<<2)|0;c=J[b>>2];J[b>>2]=c+1;e=(c|0)<=0?2:1}if(J[a+84>>2]<(e|0)){break l}b=f}f=J[a+24>>2];continue}break}i=P(e,12)+a|0;b=J[i+52>>2];z:{if((b|0)!=J[i+56>>2]){J[b>>2]=f;J[i+52>>2]=b+4;break z}h=J[i+48>>2];g=b-h|0;c=g>>2;d=c+1|0;if(d>>>0>=1073741824){break b}b=g>>1;d=g>>>0>=2147483644?1073741823:b>>>0>d>>>0?b:d;if(d){if(d>>>0>=1073741824){break d}b=Aj(d<<2)}else{b=0}c=b+(c<<2)|0;J[c>>2]=f;if((g|0)>0){Vi(b,h,g)}J[i+48>>2]=b;J[i+52>>2]=c+4;J[i+56>>2]=b+(d<<2);if(!h){break z}xj(h)}d=J[a+84>>2];if((d|0)<=(e|0)){break j}J[a+84>>2]=e;d=e;break j}d=J[a+84>>2]}if((d|0)<3){continue}break}}return 1}Za();C()}La();C()}La();C()}La();C()}function Uc(a,b,c,d){var e=0,f=0,g=0,h=0,i=Q(0),j=0,k=0;a:{if(!d){break a}b:{c:{switch(J[a+28>>2]-1|0){case 0:e=K[a+24|0];f=c&255;if(e>>>0>>0?e:f){g=J[a>>2];e=J[g>>2];b=J[a+48>>2]+jk(J[a+40>>2],J[a+44>>2],b,0)|0;b=e+b|0;g=J[g+4>>2];j=K[a+32|0];while(1){if(b>>>0>=g>>>0){break a}i=Q(H[b|0]);N[(h<<2)+d>>2]=j?Q(i/Q(127)):i;b=b+1|0;h=h+1|0;e=K[a+24|0];if(h>>>0<(e>>>0>>0?e:f)>>>0){continue}break}}k=1;if(e>>>0>=f>>>0){break a}d=(e<<2)+d|0;a=(c&255)-e|0;break b;case 1:e=K[a+24|0];f=c&255;if(e>>>0>>0?e:f){g=J[a>>2];e=J[g>>2];b=J[a+48>>2]+jk(J[a+40>>2],J[a+44>>2],b,0)|0;b=e+b|0;g=J[g+4>>2];j=K[a+32|0];while(1){if(b>>>0>=g>>>0){break a}i=Q(K[b|0]);N[(h<<2)+d>>2]=j?Q(i/Q(255)):i;b=b+1|0;h=h+1|0;e=K[a+24|0];if(h>>>0<(e>>>0>>0?e:f)>>>0){continue}break}}k=1;if(e>>>0>=f>>>0){break a}d=(e<<2)+d|0;a=(c&255)-e|0;break b;case 2:e=K[a+24|0];f=c&255;if(e>>>0>>0?e:f){g=J[a>>2];e=J[g>>2];b=J[a+48>>2]+jk(J[a+40>>2],J[a+44>>2],b,0)|0;b=e+b|0;g=J[g+4>>2];j=K[a+32|0];while(1){if(b>>>0>=g>>>0){break a}i=Q(I[b>>1]);N[(h<<2)+d>>2]=j?Q(i/Q(32767)):i;b=b+2|0;h=h+1|0;e=K[a+24|0];if(h>>>0<(e>>>0>>0?e:f)>>>0){continue}break}}k=1;if(e>>>0>=f>>>0){break a}d=(e<<2)+d|0;a=(c&255)-e|0;break b;case 3:e=K[a+24|0];f=c&255;if(e>>>0>>0?e:f){g=J[a>>2];e=J[g>>2];b=J[a+48>>2]+jk(J[a+40>>2],J[a+44>>2],b,0)|0;b=e+b|0;g=J[g+4>>2];j=K[a+32|0];while(1){if(b>>>0>=g>>>0){break a}i=Q(L[b>>1]);N[(h<<2)+d>>2]=j?Q(i/Q(65535)):i;b=b+2|0;h=h+1|0;e=K[a+24|0];if(h>>>0<(e>>>0>>0?e:f)>>>0){continue}break}}k=1;if(e>>>0>=f>>>0){break a}d=(e<<2)+d|0;a=(c&255)-e|0;break b;case 4:e=K[a+24|0];f=c&255;if(e>>>0>>0?e:f){g=J[a>>2];e=J[g>>2];b=J[a+48>>2]+jk(J[a+40>>2],J[a+44>>2],b,0)|0;b=e+b|0;g=J[g+4>>2];j=K[a+32|0];while(1){if(b>>>0>=g>>>0){break a}i=Q(J[b>>2]);N[(h<<2)+d>>2]=j?Q(i*Q(4.656612873077393e-10)):i;b=b+4|0;h=h+1|0;e=K[a+24|0];if(h>>>0<(e>>>0>>0?e:f)>>>0){continue}break}}k=1;if(e>>>0>=f>>>0){break a}d=(e<<2)+d|0;a=(c&255)-e|0;break b;case 5:e=K[a+24|0];f=c&255;if(e>>>0>>0?e:f){g=J[a>>2];e=J[g>>2];b=J[a+48>>2]+jk(J[a+40>>2],J[a+44>>2],b,0)|0;b=e+b|0;g=J[g+4>>2];j=K[a+32|0];while(1){if(b>>>0>=g>>>0){break a}i=Q(M[b>>2]);N[(h<<2)+d>>2]=j?Q(i*Q(2.3283064365386963e-10)):i;b=b+4|0;h=h+1|0;e=K[a+24|0];if(h>>>0<(e>>>0>>0?e:f)>>>0){continue}break}}k=1;if(e>>>0>=f>>>0){break a}d=(e<<2)+d|0;a=(c&255)-e|0;break b;case 6:e=K[a+24|0];f=c&255;if(e>>>0>>0?e:f){g=J[a>>2];e=J[g>>2];b=J[a+48>>2]+jk(J[a+40>>2],J[a+44>>2],b,0)|0;b=e+b|0;g=J[g+4>>2];j=K[a+32|0];while(1){if(b>>>0>=g>>>0){break a}i=Q(+M[b>>2]+ +J[b+4>>2]*4294967296);N[(h<<2)+d>>2]=j?Q(i*Q(10842021724855044e-35)):i;b=b+8|0;h=h+1|0;e=K[a+24|0];if(h>>>0<(e>>>0>>0?e:f)>>>0){continue}break}}k=1;if(e>>>0>=f>>>0){break a}d=(e<<2)+d|0;a=(c&255)-e|0;break b;case 7:e=K[a+24|0];f=c&255;if(e>>>0>>0?e:f){g=J[a>>2];e=J[g>>2];b=J[a+48>>2]+jk(J[a+40>>2],J[a+44>>2],b,0)|0;b=e+b|0;g=J[g+4>>2];j=K[a+32|0];while(1){if(b>>>0>=g>>>0){break a}i=Q(+M[b>>2]+ +M[b+4>>2]*4294967296);N[(h<<2)+d>>2]=j?Q(i*Q(5.421010862427522e-20)):i;b=b+8|0;h=h+1|0;e=K[a+24|0];if(h>>>0<(e>>>0>>0?e:f)>>>0){continue}break}}k=1;if(e>>>0>=f>>>0){break a}d=(e<<2)+d|0;a=(c&255)-e|0;break b;case 8:e=K[a+24|0];f=c&255;if(e>>>0>>0?e:f){g=J[a>>2];e=J[g>>2];b=J[a+48>>2]+jk(J[a+40>>2],J[a+44>>2],b,0)|0;b=e+b|0;g=J[g+4>>2];while(1){if(b>>>0>=g>>>0){break a}N[(h<<2)+d>>2]=N[b>>2];b=b+4|0;h=h+1|0;e=K[a+24|0];if(h>>>0<(e>>>0>>0?e:f)>>>0){continue}break}}k=1;if(e>>>0>=f>>>0){break a}d=(e<<2)+d|0;a=(c&255)-e|0;break b;case 9:e=K[a+24|0];f=c&255;if(e>>>0>>0?e:f){g=J[a>>2];e=J[g>>2];b=J[a+48>>2]+jk(J[a+40>>2],J[a+44>>2],b,0)|0;b=e+b|0;g=J[g+4>>2];while(1){if(b>>>0>=g>>>0){break a}N[(h<<2)+d>>2]=O[b>>3];b=b+8|0;h=h+1|0;e=K[a+24|0];if(h>>>0<(e>>>0>>0?e:f)>>>0){continue}break}}k=1;if(e>>>0>=f>>>0){break a}d=(e<<2)+d|0;a=(c&255)-e|0;break b;case 10:break c;default:break a}}e=K[a+24|0];f=c&255;if(e>>>0>>0?e:f){g=J[a>>2];e=J[g>>2];b=J[a+48>>2]+jk(J[a+40>>2],J[a+44>>2],b,0)|0;b=e+b|0;g=J[g+4>>2];while(1){if(b>>>0>=g>>>0){break a}N[(h<<2)+d>>2]=K[b|0]?Q(1):Q(0);b=b+1|0;h=h+1|0;e=K[a+24|0];if(h>>>0<(e>>>0>>0?e:f)>>>0){continue}break}}k=1;if(e>>>0>=f>>>0){break a}d=(e<<2)+d|0;a=(c&255)-e|0}Xi(d,0,a<<2)}return k}function Xf(a){a=a|0;var b=0,c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0;g=ia-32|0;ia=g;c=J[a+32>>2];b=L[a+36>>1];a:{b:{if(((b<<8|b>>>8)&65535)>>>0<=513){d=J[c+12>>2];b=J[c+20>>2];f=b;n=J[c+16>>2];j=n+4|0;b=j>>>0<4?b+1|0:b;e=J[c+8>>2];h=j;if(e>>>0>>0&(b|0)>=(d|0)|(b|0)>(d|0)){break a}i=J[c>>2];j=i+n|0;j=K[j|0]|K[j+1|0]<<8|(K[j+2|0]<<16|K[j+3|0]<<24);J[c+16>>2]=h;J[c+20>>2]=b;b=f;f=n+8|0;b=f>>>0<8?b+1|0:b;if(f>>>0>e>>>0&(b|0)>=(d|0)|(b|0)>(d|0)){break a}d=i+h|0;n=K[d|0]|K[d+1|0]<<8|(K[d+2|0]<<16|K[d+3|0]<<24);J[c+16>>2]=f;J[c+20>>2]=b;break b}if(!Yf(1,g+28|0,c)){break a}if(!Yf(1,g+24|0,J[a+32>>2])){break a}j=J[g+28>>2];n=J[g+24>>2]}if(j>>>0>1431655765){break a}d=J[a+32>>2];b=d;h=J[b+8>>2];f=J[b+16>>2];c=J[b+12>>2];b=J[b+20>>2];e=kk(h-f|0,c-(b+(f>>>0>h>>>0)|0)|0,3,0);if(!ma&e>>>0>>0){break a}e=jk(j,0,3,0);if(!ma&e>>>0>>0|((b|0)>=(c|0)&f>>>0>=h>>>0|(b|0)>(c|0))){break a}c=K[f+J[d>>2]|0];f=f+1|0;b=f?b:b+1|0;J[d+16>>2]=f;J[d+20>>2]=b;c:{d:{if(!c){d=0;b=ia-32|0;ia=b;J[b+24>>2]=0;J[b+16>>2]=0;J[b+20>>2]=0;e:{f:{f=P(j,3);if(f){if(f>>>0>=1073741824){break f}c=P(j,12);d=Aj(c);Xi(d,0,c)}if(re(f,1,J[a+32>>2],d)){g:{if(!j){f=0;break g}f=1;c=J[d>>2];h=c>>>1|0;c=c&1?0-h|0:h;if((c|0)<0){break g}h=0;while(1){J[b>>2]=c;o=c;e=(k<<2)+d|0;c=J[e+4>>2];i=c>>>1|0;c=o+(c&1?0-i|0:i)|0;if((c|0)<0){break g}J[b+4>>2]=c;e=J[e+8>>2];i=e>>>1|0;c=c+(e&1?0-i|0:i)|0;if((c|0)<0){break g}J[b+8>>2]=c;Zf(J[a+44>>2]+96|0,b);h=h+1|0;f=h>>>0>>0;if((j|0)==(h|0)){break g}k=k+3|0;e=J[(k<<2)+d>>2];i=e>>>1|0;c=c+(e&1?0-i|0:i)|0;if((c|0)>=0){continue}break}}k=!f}if(d){xj(d)}ia=b+32|0;b=k&1;break e}La();C()}if(b){break d}break a}if(n>>>0<=255){if(!j){break d}while(1){h:{J[g+16>>2]=0;J[g+8>>2]=0;J[g+12>>2]=0;d=J[a+32>>2];b=d;h=J[b+8>>2];c=J[b+12>>2];f=J[b+20>>2];k=J[b+16>>2];if((c|0)<=(f|0)&h>>>0<=k>>>0|(c|0)<(f|0)){break h}e=J[d>>2];l=K[e+k|0];b=f;i=k+1|0;b=i?b:b+1|0;J[d+16>>2]=i;J[d+20>>2]=b;J[g+8>>2]=l;if((b|0)>=(c|0)&i>>>0>=h>>>0|(b|0)>(c|0)){break h}l=K[e+i|0];b=f;i=k+2|0;b=i>>>0<2?b+1|0:b;J[d+16>>2]=i;J[d+20>>2]=b;J[g+12>>2]=l;if((b|0)>=(c|0)&i>>>0>=h>>>0|(b|0)>(c|0)){break h}c=K[e+i|0];b=f;f=k+3|0;b=f>>>0<3?b+1|0:b;J[d+16>>2]=f;J[d+20>>2]=b;J[g+16>>2]=c;Zf(J[a+44>>2]+96|0,g+8|0);m=m+1|0;if((m|0)!=(j|0)){continue}break d}break}m=0;break a}if(n>>>0<=65535){if(!j){break d}while(1){i:{J[g+16>>2]=0;J[g+8>>2]=0;J[g+12>>2]=0;c=J[a+32>>2];d=J[c+12>>2];k=J[c+8>>2];b=J[c+20>>2];f=b;h=J[c+16>>2];e=h+2|0;b=e>>>0<2?b+1|0:b;if(e>>>0>k>>>0&(b|0)>=(d|0)|(b|0)>(d|0)){break i}i=J[c>>2];l=i+h|0;l=K[l|0]|K[l+1|0]<<8;J[c+16>>2]=e;J[c+20>>2]=b;J[g+8>>2]=l;b=f;l=h+4|0;b=l>>>0<4?b+1|0:b;if(l>>>0>k>>>0&(b|0)>=(d|0)|(b|0)>(d|0)){break i}e=e+i|0;e=K[e|0]|K[e+1|0]<<8;J[c+16>>2]=l;J[c+20>>2]=b;J[g+12>>2]=e;b=f;f=h+6|0;b=f>>>0<6?b+1|0:b;if(f>>>0>k>>>0&(b|0)>=(d|0)|(b|0)>(d|0)){break i}d=i+l|0;d=K[d|0]|K[d+1|0]<<8;J[c+16>>2]=f;J[c+20>>2]=b;J[g+16>>2]=d;Zf(J[a+44>>2]+96|0,g+8|0);m=m+1|0;if((m|0)!=(j|0)){continue}break d}break}m=0;break a}j:{if(n>>>0>2097151){break j}b=L[a+36>>1];if(((b<<8|b>>>8)&65535)>>>0<514){break j}if(!j){break d}while(1){k:{J[g+16>>2]=0;J[g+8>>2]=0;J[g+12>>2]=0;if(!Yf(1,g+4|0,J[a+32>>2])){break k}J[g+8>>2]=J[g+4>>2];if(!Yf(1,g+4|0,J[a+32>>2])){break k}J[g+12>>2]=J[g+4>>2];if(!Yf(1,g+4|0,J[a+32>>2])){break k}J[g+16>>2]=J[g+4>>2];Zf(J[a+44>>2]+96|0,g+8|0);m=m+1|0;if((m|0)!=(j|0)){continue}break d}break}m=0;break a}if(!j){break d}while(1){J[g+16>>2]=0;J[g+8>>2]=0;J[g+12>>2]=0;c=J[a+32>>2];d=J[c+12>>2];k=J[c+8>>2];b=J[c+20>>2];f=b;h=J[c+16>>2];e=h+4|0;b=e>>>0<4?b+1|0:b;i=e;if(e>>>0>k>>>0&(b|0)>=(d|0)|(b|0)>(d|0)){break c}l=J[c>>2];e=l+h|0;e=K[e|0]|K[e+1|0]<<8|(K[e+2|0]<<16|K[e+3|0]<<24);J[c+16>>2]=i;J[c+20>>2]=b;J[g+8>>2]=e;b=f;e=h+8|0;b=e>>>0<8?b+1|0:b;o=e;if(e>>>0>k>>>0&(b|0)>=(d|0)|(b|0)>(d|0)){break c}e=i+l|0;e=K[e|0]|K[e+1|0]<<8|(K[e+2|0]<<16|K[e+3|0]<<24);J[c+16>>2]=o;J[c+20>>2]=b;J[g+12>>2]=e;b=f;f=h+12|0;b=f>>>0<12?b+1|0:b;if(f>>>0>k>>>0&(b|0)>=(d|0)|(b|0)>(d|0)){break c}d=l+o|0;d=K[d|0]|K[d+1|0]<<8|(K[d+2|0]<<16|K[d+3|0]<<24);J[c+16>>2]=f;J[c+20>>2]=b;J[g+16>>2]=d;Zf(J[a+44>>2]+96|0,g+8|0);m=m+1|0;if((m|0)!=(j|0)){continue}break}}J[J[a+4>>2]+80>>2]=n;m=1;break a}m=0}ia=g+32|0;return m|0}function xg(a,b,c,d){var e=0,f=0,g=0,h=0,i=0,j=Q(0),k=0,l=Q(0);a:{b:{if(!d){break b}c:{switch(J[a+28>>2]-1|0){case 0:e=K[a+24|0];f=c&255;if(e>>>0>>0?e:f){e=J[J[a>>2]>>2];b=J[a+48>>2]+jk(J[a+40>>2],J[a+44>>2],b,0)|0;b=e+b|0;while(1){if(M[J[a>>2]+4>>2]<=b>>>0){break b}H[d+g|0]=K[b|0];b=b+1|0;g=g+1|0;e=K[a+24|0];if(g>>>0<(e>>>0>>0?e:f)>>>0){continue}break}}i=1;if(e>>>0>=f>>>0){break b}break a;case 1:e=K[a+24|0];f=c&255;if(e>>>0>>0?e:f){e=J[J[a>>2]>>2];b=J[a+48>>2]+jk(J[a+40>>2],J[a+44>>2],b,0)|0;b=e+b|0;while(1){if(M[J[a>>2]+4>>2]<=b>>>0){return 0}e=H[b|0];if((e|0)<0){break b}H[d+g|0]=e;b=b+1|0;g=g+1|0;e=K[a+24|0];if(g>>>0<(e>>>0>>0?e:f)>>>0){continue}break}}i=1;if(e>>>0>=f>>>0){break b}break a;case 2:e=K[a+24|0];f=c&255;if(e>>>0>>0?e:f){e=J[J[a>>2]>>2];b=J[a+48>>2]+jk(J[a+40>>2],J[a+44>>2],b,0)|0;b=e+b|0;while(1){if(M[J[a>>2]+4>>2]<=b>>>0){break b}e=L[b>>1];if((e-128&65535)>>>0<65280){break b}H[d+g|0]=e;b=b+2|0;g=g+1|0;e=K[a+24|0];if(g>>>0<(e>>>0>>0?e:f)>>>0){continue}break}}i=1;if(e>>>0>=f>>>0){break b}break a;case 3:e=K[a+24|0];f=c&255;if(e>>>0>>0?e:f){e=J[J[a>>2]>>2];b=J[a+48>>2]+jk(J[a+40>>2],J[a+44>>2],b,0)|0;b=e+b|0;while(1){if(M[J[a>>2]+4>>2]<=b>>>0){break b}e=L[b>>1];if(e>>>0>127){break b}H[d+g|0]=e;b=b+2|0;g=g+1|0;e=K[a+24|0];if(g>>>0<(e>>>0>>0?e:f)>>>0){continue}break}}i=1;if(e>>>0>=f>>>0){break b}break a;case 4:e=K[a+24|0];f=c&255;if(e>>>0>>0?e:f){e=J[J[a>>2]>>2];b=J[a+48>>2]+jk(J[a+40>>2],J[a+44>>2],b,0)|0;b=e+b|0;while(1){if(M[J[a>>2]+4>>2]<=b>>>0){break b}e=J[b>>2];if(e-128>>>0<4294967040){break b}H[d+g|0]=e;b=b+4|0;g=g+1|0;e=K[a+24|0];if(g>>>0<(e>>>0>>0?e:f)>>>0){continue}break}}i=1;if(e>>>0>=f>>>0){break b}break a;case 5:e=K[a+24|0];f=c&255;if(e>>>0>>0?e:f){e=J[J[a>>2]>>2];b=J[a+48>>2]+jk(J[a+40>>2],J[a+44>>2],b,0)|0;b=e+b|0;while(1){if(M[J[a>>2]+4>>2]<=b>>>0){break b}e=J[b>>2];if(e>>>0>127){break b}H[d+g|0]=e;b=b+4|0;g=g+1|0;e=K[a+24|0];if(g>>>0<(e>>>0>>0?e:f)>>>0){continue}break}}i=1;if(e>>>0>=f>>>0){break b}break a;case 6:e=K[a+24|0];f=c&255;if(e>>>0>>0?e:f){e=J[J[a>>2]>>2];b=J[a+48>>2]+jk(J[a+40>>2],J[a+44>>2],b,0)|0;b=e+b|0;while(1){if(M[J[a>>2]+4>>2]<=b>>>0){break b}k=J[b>>2];e=J[b+4>>2]-(k>>>0<128)|0;if((e|0)==-1&k-128>>>0<4294967040|(e|0)!=-1){break b}H[d+g|0]=k;b=b+8|0;g=g+1|0;e=K[a+24|0];if(g>>>0<(e>>>0>>0?e:f)>>>0){continue}break}}i=1;if(e>>>0>=f>>>0){break b}break a;case 7:e=K[a+24|0];f=c&255;if(e>>>0>>0?e:f){e=J[J[a>>2]>>2];b=J[a+48>>2]+jk(J[a+40>>2],J[a+44>>2],b,0)|0;b=e+b|0;while(1){if(M[J[a>>2]+4>>2]<=b>>>0){break b}e=J[b+4>>2];k=J[b>>2];if(!e&k>>>0>127|e){break b}H[d+g|0]=k;b=b+8|0;g=g+1|0;e=K[a+24|0];if(g>>>0<(e>>>0>>0?e:f)>>>0){continue}break}}i=1;if(e>>>0>=f>>>0){break b}break a;case 8:e=K[a+24|0];c=c&255;d:{if(c>>>0>e>>>0?e:c){e=J[J[a>>2]>>2];b=J[a+48>>2]+jk(J[a+40>>2],J[a+44>>2],b,0)|0;b=e+b|0;while(1){if(M[J[a>>2]+4>>2]<=b>>>0){break d}j=N[b>>2];if(j=Q(127)){break d}f=d+g|0;e:{f:{if(K[a+32|0]){if(jQ(1)){break d}h=V(+j*127+.5);if(!(R(h)<2147483648)){break f}e=~~h;break e}if(!(l>>0<(c>>>0>e>>>0?e:c)>>>0){continue}break}}i=1;if(c>>>0<=e>>>0){break d}Xi(d+e|0,0,c-e|0)}return i;case 9:e=K[a+24|0];c=c&255;g:{if(c>>>0>e>>>0?e:c){e=J[J[a>>2]>>2];b=J[a+48>>2]+jk(J[a+40>>2],J[a+44>>2],b,0)|0;b=e+b|0;while(1){if(M[J[a>>2]+4>>2]<=b>>>0){break g}h=O[b>>3];if(h<-128|h!=h|(R(h)==_|h>=127)){break g}f=d+g|0;if(K[a+32|0]){if(h<0|h>1){break g}h=V(h*127+.5)}h:{if(R(h)<2147483648){e=~~h;break h}e=-2147483648}H[f|0]=e;b=b+8|0;g=g+1|0;e=K[a+24|0];if(g>>>0<(c>>>0>e>>>0?e:c)>>>0){continue}break}}i=1;if(c>>>0<=e>>>0){break g}Xi(d+e|0,0,c-e|0)}return i;case 10:break c;default:break b}}e=K[a+24|0];f=c&255;if(e>>>0>>0?e:f){e=J[J[a>>2]>>2];b=J[a+48>>2]+jk(J[a+40>>2],J[a+44>>2],b,0)|0;b=e+b|0;while(1){if(M[J[a>>2]+4>>2]<=b>>>0){break b}H[d+g|0]=K[b|0];b=b+1|0;g=g+1|0;e=K[a+24|0];if(g>>>0<(e>>>0>>0?e:f)>>>0){continue}break}}i=1;if(e>>>0>=f>>>0){break b}Xi(d+e|0,0,(c&255)-e|0)}return i}Xi(d+e|0,0,(c&255)-e|0);return 1}function Nb(a){a=a|0;var b=0,c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=Q(0),w=0;q=ia-16|0;ia=q;a:{if(!(J[a+60>>2]!=J[a- -64>>2]|J[a+48>>2]!=J[a+52>>2])){f=1;break a}f=1;if((na[J[J[a>>2]+24>>2]](a)|0)<=0){break a}while(1){b:{c=na[J[J[a>>2]+20>>2]](a,w)|0;c:{d:{e:{e=J[J[J[(na[J[J[a>>2]+28>>2]](a)|0)+4>>2]+8>>2]+(c<<2)>>2];switch(J[e+28>>2]-1|0){case 8:break d;case 0:case 2:case 4:break e;default:break c}}c=K[e+24|0];f:{if(!c){k=0;f=0;break f}f=0;c=c<<2;k=Aj(c);Xi(k,0,c);c=K[e+24|0];if(!c){break f}c=c<<2;f=Aj(c);Xi(f,0,c)}g:{h:{i:{switch(J[e+28>>2]-1|0){case 4:j=0;g=0;i=0;c=0;l=0;b=K[e+24|0];j:{if(!b){d=0;break j}b=b<<2;g=Aj(b);Xi(g,0,b);d=Aj(b);Xi(d,0,b)}k:{if(J[e+80>>2]){while(1){o=J[e>>2];p=J[o>>2];b=J[e+40>>2];h=J[e+48>>2]+jk(b,J[e+44>>2],i,c)|0;m=Vi(g,p+h|0,b);n=K[e+24|0];if(n){t=J[a+48>>2];h=0;while(1){r=h<<2;p=J[r+m>>2];if((p|0)<0){break k}J[d+r>>2]=p+J[t+(h+u<<2)>>2];h=h+1|0;if((n|0)!=(h|0)){continue}break}}Vi(J[o>>2]+P(b,i)|0,d,b);b=i+1|0;c=b?c:c+1|0;i=b;if(!c&M[e+80>>2]>b>>>0){continue}break}}l=1}if(d){xj(d)}if(g){xj(g)}if(l){break h}break g;case 2:d=0;h=0;i=0;c=0;b=K[e+24|0];if(b){b=b<<1;h=Aj(b);Xi(h,0,b);d=Aj(b);Xi(d,0,b)}if(J[e+80>>2]){while(1){n=J[e>>2];p=J[n>>2];b=J[e+40>>2];g=J[e+48>>2]+jk(b,J[e+44>>2],i,c)|0;m=Vi(h,p+g|0,b);l=K[e+24|0];l:{if(!l){break l}o=J[a+48>>2];g=0;if((l|0)!=1){t=l&254;j=0;while(1){r=g<<1;I[r+d>>1]=L[m+r>>1]+L[o+(g+u<<2)>>1];r=g|1;p=r<<1;I[p+d>>1]=L[m+p>>1]+L[o+(r+u<<2)>>1];g=g+2|0;j=j+2|0;if((t|0)!=(j|0)){continue}break}}if(!(l&1)){break l}j=g<<1;I[j+d>>1]=L[m+j>>1]+L[o+(g+u<<2)>>1]}Vi(J[n>>2]+P(b,i)|0,d,b);b=i+1|0;c=b?c:c+1|0;i=b;if(!c&M[e+80>>2]>b>>>0){continue}break}}if(d){xj(d)}if(h){xj(h)}break h;case 0:break i;default:break h}}g=0;h=0;i=0;c=0;b=K[e+24|0];if(b){h=Aj(b);Xi(h,0,b);g=Aj(b);Xi(g,0,b)}if(J[e+80>>2]){while(1){t=J[e>>2];p=J[t>>2];b=J[e+40>>2];d=J[e+48>>2]+jk(b,J[e+44>>2],i,c)|0;m=Vi(h,p+d|0,b);l=K[e+24|0];m:{if(!l){break m}o=J[a+48>>2];d=0;if((l|0)!=1){r=l&254;j=0;while(1){H[d+g|0]=K[d+m|0]+K[o+(d+u<<2)|0];n=d|1;H[n+g|0]=K[m+n|0]+K[o+(n+u<<2)|0];d=d+2|0;j=j+2|0;if((r|0)!=(j|0)){continue}break}}if(!(l&1)){break m}H[d+g|0]=K[d+m|0]+K[o+(d+u<<2)|0]}Vi(J[t>>2]+P(b,i)|0,g,b);b=i+1|0;c=b?c:c+1|0;i=b;if(!c&M[e+80>>2]>b>>>0){continue}break}}if(g){xj(g)}if(h){xj(h)}}u=K[e+24|0]+u|0;j=1}if(f){xj(f)}if(k){xj(k)}if(j){break c}f=0;break a}m=J[J[a+60>>2]+(s<<2)>>2];f=J[a+36>>2];g=J[(na[J[J[a>>2]+28>>2]](a)|0)+40>>2];J[q+12>>2]=J[e+56>>2];c=Aj(32);J[q>>2]=c;J[q+4>>2]=24;J[q+8>>2]=-2147483616;b=K[1229]|K[1230]<<8|(K[1231]<<16|K[1232]<<24);d=K[1225]|K[1226]<<8|(K[1227]<<16|K[1228]<<24);H[c+16|0]=d;H[c+17|0]=d>>>8;H[c+18|0]=d>>>16;H[c+19|0]=d>>>24;H[c+20|0]=b;H[c+21|0]=b>>>8;H[c+22|0]=b>>>16;H[c+23|0]=b>>>24;b=K[1221]|K[1222]<<8|(K[1223]<<16|K[1224]<<24);d=K[1217]|K[1218]<<8|(K[1219]<<16|K[1220]<<24);H[c+8|0]=d;H[c+9|0]=d>>>8;H[c+10|0]=d>>>16;H[c+11|0]=d>>>24;H[c+12|0]=b;H[c+13|0]=b>>>8;H[c+14|0]=b>>>16;H[c+15|0]=b>>>24;b=K[1213]|K[1214]<<8|(K[1215]<<16|K[1216]<<24);d=K[1209]|K[1210]<<8|(K[1211]<<16|K[1212]<<24);H[c|0]=d;H[c+1|0]=d>>>8;H[c+2|0]=d>>>16;H[c+3|0]=d>>>24;H[c+4|0]=b;H[c+5|0]=b>>>8;H[c+6|0]=b>>>16;H[c+7|0]=b>>>24;H[c+24|0]=0;b=Ob(g,q+12|0,q);if(H[q+11|0]<0){xj(J[q>>2])}c=s+1|0;n:{if(b){eb(e,m);break n}i=f+P(s,24)|0;f=J[i+4>>2];s=K[e+24|0];d=s<<2;b=Aj(d);J[q>>2]=1065353216;v=N[i+20>>2];f=-1<0){N[q>>2]=v/Q(f|0)}if((f|0)<=0){break b}o:{if(!J[m+80>>2]){break o}if(!s){k=0;f=0;while(1){Vi(J[J[e+64>>2]>>2]+f|0,b,d);f=d+f|0;k=k+1|0;if(k>>>0>2]){continue}break}break o}h=J[J[m>>2]>>2]+J[m+48>>2]|0;t=s&254;r=s&1;j=0;l=0;f=0;while(1){g=J[i+8>>2];v=N[q>>2];k=0;o=0;if((s|0)!=1){while(1){n=k<<2;p=h+(f<<2)|0;N[n+b>>2]=Q(v*Q(J[p>>2]))+N[g+n>>2];n=n|4;N[n+b>>2]=Q(v*Q(J[p+4>>2]))+N[g+n>>2];k=k+2|0;f=f+2|0;o=o+2|0;if((t|0)!=(o|0)){continue}break}}if(r){k=k<<2;N[k+b>>2]=Q(v*Q(J[h+(f<<2)>>2]))+N[g+k>>2];f=f+1|0}Vi(J[J[e+64>>2]>>2]+l|0,b,d);l=d+l|0;j=j+1|0;if(j>>>0>2]){continue}break}}xj(b)}s=c}f=1;w=w+1|0;if((na[J[J[a>>2]+24>>2]](a)|0)>(w|0)){continue}break a}break}xj(b);f=0}ia=q+16|0;return f|0}function yg(a,b,c,d){var e=0,f=0,g=0,h=0,i=0,j=Q(0),k=0;a:{b:{if(!d){break b}c:{switch(J[a+28>>2]-1|0){case 0:e=K[a+24|0];f=c&255;if(e>>>0>>0?e:f){e=J[J[a>>2]>>2];b=J[a+48>>2]+jk(J[a+40>>2],J[a+44>>2],b,0)|0;b=e+b|0;while(1){if(M[J[a>>2]+4>>2]<=b>>>0){return 0}e=H[b|0];if((e|0)<0){break b}H[d+g|0]=e;b=b+1|0;g=g+1|0;e=K[a+24|0];if(g>>>0<(e>>>0>>0?e:f)>>>0){continue}break}}i=1;if(e>>>0>=f>>>0){break b}break a;case 1:e=K[a+24|0];f=c&255;if(e>>>0>>0?e:f){e=J[J[a>>2]>>2];b=J[a+48>>2]+jk(J[a+40>>2],J[a+44>>2],b,0)|0;b=e+b|0;while(1){if(M[J[a>>2]+4>>2]<=b>>>0){break b}H[d+g|0]=K[b|0];b=b+1|0;g=g+1|0;e=K[a+24|0];if(g>>>0<(e>>>0>>0?e:f)>>>0){continue}break}}i=1;if(e>>>0>=f>>>0){break b}break a;case 2:e=K[a+24|0];f=c&255;if(e>>>0>>0?e:f){e=J[J[a>>2]>>2];b=J[a+48>>2]+jk(J[a+40>>2],J[a+44>>2],b,0)|0;b=e+b|0;while(1){if(M[J[a>>2]+4>>2]<=b>>>0){break b}e=L[b>>1];if(e>>>0>255){break b}H[d+g|0]=e;b=b+2|0;g=g+1|0;e=K[a+24|0];if(g>>>0<(e>>>0>>0?e:f)>>>0){continue}break}}i=1;if(e>>>0>=f>>>0){break b}break a;case 3:e=K[a+24|0];f=c&255;if(e>>>0>>0?e:f){e=J[J[a>>2]>>2];b=J[a+48>>2]+jk(J[a+40>>2],J[a+44>>2],b,0)|0;b=e+b|0;while(1){if(M[J[a>>2]+4>>2]<=b>>>0){break b}e=L[b>>1];if(e>>>0>255){break b}H[d+g|0]=e;b=b+2|0;g=g+1|0;e=K[a+24|0];if(g>>>0<(e>>>0>>0?e:f)>>>0){continue}break}}i=1;if(e>>>0>=f>>>0){break b}break a;case 4:e=K[a+24|0];f=c&255;if(e>>>0>>0?e:f){e=J[J[a>>2]>>2];b=J[a+48>>2]+jk(J[a+40>>2],J[a+44>>2],b,0)|0;b=e+b|0;while(1){if(M[J[a>>2]+4>>2]<=b>>>0){break b}e=J[b>>2];if(e>>>0>255){break b}H[d+g|0]=e;b=b+4|0;g=g+1|0;e=K[a+24|0];if(g>>>0<(e>>>0>>0?e:f)>>>0){continue}break}}i=1;if(e>>>0>=f>>>0){break b}break a;case 5:e=K[a+24|0];f=c&255;if(e>>>0>>0?e:f){e=J[J[a>>2]>>2];b=J[a+48>>2]+jk(J[a+40>>2],J[a+44>>2],b,0)|0;b=e+b|0;while(1){if(M[J[a>>2]+4>>2]<=b>>>0){break b}e=J[b>>2];if(e>>>0>255){break b}H[d+g|0]=e;b=b+4|0;g=g+1|0;e=K[a+24|0];if(g>>>0<(e>>>0>>0?e:f)>>>0){continue}break}}i=1;if(e>>>0>=f>>>0){break b}break a;case 6:e=K[a+24|0];f=c&255;if(e>>>0>>0?e:f){e=J[J[a>>2]>>2];b=J[a+48>>2]+jk(J[a+40>>2],J[a+44>>2],b,0)|0;b=e+b|0;while(1){if(M[J[a>>2]+4>>2]<=b>>>0){break b}e=J[b+4>>2];k=J[b>>2];if(!e&k>>>0>255|e){break b}H[d+g|0]=k;b=b+8|0;g=g+1|0;e=K[a+24|0];if(g>>>0<(e>>>0>>0?e:f)>>>0){continue}break}}i=1;if(e>>>0>=f>>>0){break b}break a;case 7:e=K[a+24|0];f=c&255;if(e>>>0>>0?e:f){e=J[J[a>>2]>>2];b=J[a+48>>2]+jk(J[a+40>>2],J[a+44>>2],b,0)|0;b=e+b|0;while(1){if(M[J[a>>2]+4>>2]<=b>>>0){break b}e=J[b+4>>2];k=J[b>>2];if(!e&k>>>0>255|e){break b}H[d+g|0]=k;b=b+8|0;g=g+1|0;e=K[a+24|0];if(g>>>0<(e>>>0>>0?e:f)>>>0){continue}break}}i=1;if(e>>>0>=f>>>0){break b}break a;case 8:e=K[a+24|0];c=c&255;d:{if(c>>>0>e>>>0?e:c){e=J[J[a>>2]>>2];b=J[a+48>>2]+jk(J[a+40>>2],J[a+44>>2],b,0)|0;b=e+b|0;while(1){if(M[J[a>>2]+4>>2]<=b>>>0){break d}j=N[b>>2];if(j=Q(255))){break d}f=d+g|0;e:{f:{if(K[a+32|0]){if(j>Q(1)){break d}h=V(+j*255+.5);if(!(h<4294967296&h>=0)){break f}e=~~h>>>0;break e}if(!(j=Q(0))){break f}e=~~j>>>0;break e}e=0}H[f|0]=e;b=b+4|0;g=g+1|0;e=K[a+24|0];if(g>>>0<(c>>>0>e>>>0?e:c)>>>0){continue}break}}i=1;if(c>>>0<=e>>>0){break d}Xi(d+e|0,0,c-e|0)}return i;case 9:e=K[a+24|0];f=c&255;if(e>>>0>>0?e:f){e=J[J[a>>2]>>2];b=J[a+48>>2]+jk(J[a+40>>2],J[a+44>>2],b,0)|0;b=e+b|0;while(1){if(M[J[a>>2]+4>>2]<=b>>>0){break b}h=O[b>>3];if(h<0|h!=h|(R(h)==_|h>=255)){break b}k=d+g|0;if(K[a+32|0]){if(h>1){break b}h=V(h*255+.5)}g:{if(h<4294967296&h>=0){e=~~h>>>0;break g}e=0}H[k|0]=e;b=b+8|0;g=g+1|0;e=K[a+24|0];if(g>>>0<(e>>>0>>0?e:f)>>>0){continue}break}}i=1;if(e>>>0>=f>>>0){break b}break a;case 10:break c;default:break b}}e=K[a+24|0];f=c&255;if(e>>>0>>0?e:f){e=J[J[a>>2]>>2];b=J[a+48>>2]+jk(J[a+40>>2],J[a+44>>2],b,0)|0;b=e+b|0;while(1){if(M[J[a>>2]+4>>2]<=b>>>0){break b}H[d+g|0]=K[b|0];b=b+1|0;g=g+1|0;e=K[a+24|0];if(g>>>0<(e>>>0>>0?e:f)>>>0){continue}break}}i=1;if(e>>>0>=f>>>0){break b}Xi(d+e|0,0,(c&255)-e|0)}return i}Xi(d+e|0,0,(c&255)-e|0);return 1}function ue(a,b,c){var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0;g=ia+-64|0;ia=g;J[g+56>>2]=0;J[g+48>>2]=0;J[g+52>>2]=0;J[g+40>>2]=0;J[g+44>>2]=0;J[g+32>>2]=0;J[g+36>>2]=0;J[g+24>>2]=0;J[g+28>>2]=0;J[g+16>>2]=0;J[g+20>>2]=0;J[g+8>>2]=0;J[g+12>>2]=0;i=g+8|0;d=L[b+38>>1];a:{b:{if(!d){break b}c:{if(d>>>0<=511){e=J[b+12>>2];d=J[b+20>>2];f=J[b+16>>2];h=f+4|0;d=h>>>0<4?d+1|0:d;if(h>>>0>M[b+8>>2]&(d|0)>=(e|0)|(d|0)>(e|0)){break b}d=f+J[b>>2]|0;j=K[d|0]|K[d+1|0]<<8|(K[d+2|0]<<16|K[d+3|0]<<24);J[i+12>>2]=j;d=J[b+20>>2];e=J[b+16>>2]+4|0;d=e>>>0<4?d+1|0:d;J[b+16>>2]=e;J[b+20>>2]=d;break c}if(!ve(1,i+12|0,b)){break b}e=J[b+16>>2];d=J[b+20>>2];j=J[i+12>>2]}f=J[b+8>>2];h=f-e|0;d=J[b+12>>2]-((e>>>0>f>>>0)+d|0)|0;if(h>>>0>>6>>>0&(d|0)<=0|(d|0)<0){break b}e=J[i>>2];d=J[i+4>>2]-e>>2;d:{if(d>>>0>>0){Oa(i,j-d|0);j=J[i+12>>2];break d}if(d>>>0<=j>>>0){break d}J[i+4>>2]=e+(j<<2)}k=1;if(!j){break a}e=J[b+16>>2];d=J[b+20>>2];r=J[i>>2];s=J[b+8>>2];p=J[b+12>>2];h=0;while(1){k=0;if((d|0)>=(p|0)&e>>>0>=s>>>0|(d|0)>(p|0)){break a}k=J[b>>2];n=K[k+e|0];e=e+1|0;d=e?d:d+1|0;J[b+16>>2]=e;J[b+20>>2]=d;f=n>>>2|0;m=0;e:{f:{g:{h:{t=n&3;switch(t|0){case 0:break f;case 3:break h;default:break g}}f=f+h|0;k=0;if(f>>>0>=j>>>0){break a}Xi(r+(h<<2)|0,0,(n&252)+4|0);h=f;break e}while(1){if((d|0)>=(p|0)&e>>>0>=s>>>0|(d|0)>(p|0)){break b}j=K[e+k|0];e=e+1|0;d=e?d:d+1|0;J[b+16>>2]=e;J[b+20>>2]=d;f=j<<(m<<3|6)|f;m=m+1|0;if((t|0)!=(m|0)){continue}break}}J[r+(h<<2)>>2]=f}j=J[i+12>>2];h=h+1|0;if(j>>>0>h>>>0){continue}break}d=i+16|0;p=J[i>>2];f=J[i+16>>2];e=J[i+20>>2]-f|0;i:{if(e>>>0<=4194303){Oa(d,1048576-(e>>>2|0)|0);break i}if((e|0)==4194304){break i}J[i+20>>2]=f+4194304}e=i+28|0;h=J[e>>2];f=J[i+32>>2]-h>>3;j:{if(f>>>0>>0){we(e,j-f|0);h=J[e>>2];break j}if(f>>>0>j>>>0){J[i+32>>2]=(j<<3)+h}if(!j){break b}}i=J[d>>2];d=0;k=0;while(1){e=p+(d<<2)|0;m=J[e>>2];n=(d<<3)+h|0;f=k;J[n+4>>2]=f;J[n>>2]=m;e=J[e>>2];k=e+f|0;if(k>>>0>1048576){break b}k:{if(f>>>0>=k>>>0){break k}m=0;n=e&7;if(n){while(1){J[i+(f<<2)>>2]=d;f=f+1|0;m=m+1|0;if((n|0)!=(m|0)){continue}break}}if(e-1>>>0<=6){break k}while(1){e=i+(f<<2)|0;J[e>>2]=d;J[e+28>>2]=d;J[e+24>>2]=d;J[e+20>>2]=d;J[e+16>>2]=d;J[e+12>>2]=d;J[e+8>>2]=d;J[e+4>>2]=d;f=f+8|0;if((k|0)!=(f|0)){continue}break}}d=d+1|0;if((j|0)!=(d|0)){continue}break}l=(k|0)==1048576}k=l}l:{if(!k|(J[g+20>>2]?0:a)){break l}k=0;i=ia-16|0;ia=i;m:{n:{if(L[b+38>>1]<=511){f=J[b+12>>2];j=f;d=J[b+20>>2];l=J[b+16>>2];e=l+8|0;d=e>>>0<8?d+1|0:d;h=J[b+8>>2];if(h>>>0>>0&(d|0)>=(f|0)|(d|0)>(f|0)){break m}l=l+J[b>>2]|0;f=K[l|0]|K[l+1|0]<<8|(K[l+2|0]<<16|K[l+3|0]<<24);l=K[l+4|0]|K[l+5|0]<<8|(K[l+6|0]<<16|K[l+7|0]<<24);J[b+16>>2]=e;J[b+20>>2]=d;break n}if(!xe(1,i+8|0,b)){break m}e=J[b+16>>2];d=J[b+20>>2];h=J[b+8>>2];j=J[b+12>>2];f=J[i+8>>2];l=J[i+12>>2]}m=h-e|0;h=j-((e>>>0>h>>>0)+d|0)|0;if((h|0)==(l|0)&f>>>0>m>>>0|h>>>0>>0){break m}d=d+l|0;h=e+f|0;d=h>>>0>>0?d+1|0:d;J[b+16>>2]=h;J[b+20>>2]=d;if((f|0)<=0){break m}b=e+J[b>>2]|0;J[g+48>>2]=b;d=f-1|0;e=d+b|0;h=K[e|0];o:{if(h>>>0<=63){J[g+52>>2]=d;b=K[e|0]&63;break o}p:{switch((h>>>6|0)-1|0){case 0:if(f>>>0<2){break m}d=f-2|0;J[g+52>>2]=d;b=b+d|0;b=K[b+1|0]<<8&16128|K[b|0];break o;case 1:if(f>>>0<3){break m}d=f-3|0;J[g+52>>2]=d;b=b+d|0;b=K[b+1|0]<<8|K[b+2|0]<<16&4128768|K[b|0];break o;default:break p}}d=f-4|0;J[g+52>>2]=d;b=b+d|0;b=K[b+2|0]<<16|K[b+3|0]<<24&1056964608|K[b+1|0]<<8|K[b|0]}J[g+56>>2]=b+4194304;k=b>>>0<1069547520}ia=i+16|0;if(!k){break l}if(!a){o=1;break l}b=J[g+56>>2];d=J[g+36>>2];e=J[g+48>>2];f=J[g+24>>2];while(1){q:{if(b>>>0>4194303){break q}o=J[g+52>>2];while(1){if((o|0)<=0){break q}o=o-1|0;J[g+52>>2]=o;b=K[e+o|0]|b<<8;J[g+56>>2]=b;if(b>>>0<4194304){continue}break}}h=b&1048575;k=J[f+(h<<2)>>2];l=d+(k<<3)|0;b=(P(J[l>>2],b>>>20|0)+h|0)-J[l+4>>2]|0;J[g+56>>2]=b;J[(q<<2)+c>>2]=k;o=1;q=q+1|0;if((q|0)!=(a|0)){continue}break}}a=J[g+36>>2];if(a){J[g+40>>2]=a;xj(a)}a=J[g+24>>2];if(a){J[g+28>>2]=a;xj(a)}a=J[g+8>>2];if(a){J[g+12>>2]=a;xj(a)}ia=g- -64|0;return o}function gd(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0;f=ia-96|0;ia=f;e=J[a+16>>2];H[f+92|0]=1;J[f+88>>2]=b;J[f+84>>2]=b;J[f+80>>2]=e;k=J[a+20>>2];d=J[k>>2];a:{b:{e=J[J[e+28>>2]+(b<<2)>>2];if(e>>>0>2]-d>>2>>>0){d=J[J[a+8>>2]+(J[d+(e<<2)>>2]<<2)>>2];e=J[a+4>>2];if(!K[e+84|0]){d=J[J[e+68>>2]+(d<<2)>>2]}J[f+72>>2]=0;J[f+76>>2]=0;k=f- -64|0;J[k>>2]=0;J[k+4>>2]=0;J[f+56>>2]=0;J[f+60>>2]=0;_c(e,d,H[e+24|0],f+56|0);if((b|0)!=-1){e=b+1|0;k=(e>>>0)%3|0?e:b-2|0;i=((b>>>0)%3|0?-1:2)+b|0;while(1){d=k;e=i;c:{if(!J[a+28>>2]){break c}e=b+1|0;d=(e>>>0)%3|0?e:b-2|0;e=b-1|0;if((b>>>0)%3|0){break c}e=b+2|0}h=J[a+20>>2];b=J[h>>2];d=J[J[J[a+16>>2]+28>>2]+(d<<2)>>2];if(d>>>0>=J[h+4>>2]-b>>2>>>0){break b}d=J[J[a+8>>2]+(J[b+(d<<2)>>2]<<2)>>2];b=J[a+4>>2];if(!K[b+84|0]){d=J[J[b+68>>2]+(d<<2)>>2]}J[f+48>>2]=0;J[f+52>>2]=0;J[f+40>>2]=0;J[f+44>>2]=0;J[f+32>>2]=0;J[f+36>>2]=0;_c(b,d,H[b+24|0],f+32|0);d=J[a+20>>2];b=J[d>>2];e=J[J[J[a+16>>2]+28>>2]+(e<<2)>>2];if(e>>>0>=J[d+4>>2]-b>>2>>>0){break a}d=J[J[a+8>>2]+(J[b+(e<<2)>>2]<<2)>>2];b=J[a+4>>2];if(!K[b+84|0]){d=J[J[b+68>>2]+(d<<2)>>2]}J[f+24>>2]=0;J[f+28>>2]=0;J[f+16>>2]=0;J[f+20>>2]=0;J[f+8>>2]=0;J[f+12>>2]=0;_c(b,d,H[b+24|0],f+8|0);e=J[f+8>>2];b=J[f+56>>2];d=e-b|0;h=J[f+60>>2];j=J[f+12>>2]-(h+(b>>>0>e>>>0)|0)|0;p=J[f+40>>2];e=J[f+64>>2];s=p-e|0;t=J[f+68>>2];p=J[f+44>>2]-(t+(e>>>0>p>>>0)|0)|0;u=jk(d,j,s,p);v=n-u|0;n=g-(ma+(n>>>0>>0)|0)|0;o=v;g=J[f+16>>2];u=g-e|0;t=J[f+20>>2]-((e>>>0>g>>>0)+t|0)|0;g=J[f+32>>2];v=g-b|0;h=J[f+36>>2]-((b>>>0>g>>>0)+h|0)|0;e=jk(u,t,v,h);b=o+e|0;g=ma+n|0;g=b>>>0>>0?g+1|0:g;n=b;e=l;o=d;x=j;b=J[f+48>>2];l=J[f+72>>2];d=b-l|0;j=J[f+76>>2];w=J[f+52>>2]-(j+(b>>>0>>0)|0)|0;o=jk(o,x,d,w);e=e+o|0;b=ma+m|0;b=e>>>0>>0?b+1|0:b;m=J[f+24>>2];o=m-l|0;j=J[f+28>>2]-((l>>>0>m>>>0)+j|0)|0;m=jk(o,j,v,h);l=e-m|0;m=b-(ma+(e>>>0>>0)|0)|0;b=jk(u,t,d,w);e=q-b|0;b=r-(ma+(b>>>0>q>>>0)|0)|0;r=jk(o,j,s,p);q=r+e|0;b=ma+b|0;b=q>>>0>>0?b+1|0:b;r=b;b=J[f+88>>2];e=J[f+80>>2];d:{if(K[f+92|0]){e:{f:{g:{h:{if((b|0)==-1){break h}d=b+1|0;b=(d>>>0)%3|0?d:b-2|0;if((b|0)==-1|J[J[e>>2]+(b>>>3&536870908)>>2]>>>b&1){break h}b=J[J[J[e+64>>2]+12>>2]+(b<<2)>>2];if((b|0)!=-1){break g}}J[f+88>>2]=-1;break f}d=b+1|0;b=(d>>>0)%3|0?d:b-2|0;J[f+88>>2]=b;if((b|0)!=-1){break e}}b=J[f+84>>2];d=-1;i:{if((b|0)==-1){break i}j:{if((b>>>0)%3|0){b=b-1|0;break j}b=b+2|0;d=-1;if((b|0)==-1){break i}}d=-1;if(J[J[e>>2]+(b>>>3&536870908)>>2]>>>b&1){break i}b=J[J[J[e+64>>2]+12>>2]+(b<<2)>>2];d=-1;if((b|0)==-1){break i}d=b-1|0;if((b>>>0)%3|0){break i}d=b+2|0}H[f+92|0]=0;J[f+88>>2]=d;break d}if((b|0)!=J[f+84>>2]){break d}J[f+88>>2]=-1;break d}d=-1;k:{if((b|0)==-1){break k}l:{if((b>>>0)%3|0){b=b-1|0;break l}b=b+2|0;d=-1;if((b|0)==-1){break k}}d=-1;if(J[J[e>>2]+(b>>>3&536870908)>>2]>>>b&1){break k}b=J[J[J[e+64>>2]+12>>2]+(b<<2)>>2];d=-1;if((b|0)==-1){break k}d=b-1|0;if((b>>>0)%3|0){break k}d=b+2|0}J[f+88>>2]=d}b=J[f+88>>2];if((b|0)!=-1){continue}break}}b=r>>31;e=b^q;j=e-b|0;h=(b^r)-((b>>>0>e>>>0)+b|0)|0;p=-1;e=2147483647;b=m>>31;k=b^l;d=(b^m)-((b>>>0>k>>>0)+b|0)|0;b=k-b|0;s=b^-1;i=d^2147483647;k=g;m:{n:{if(!J[a+28>>2]){if((i|0)==(h|0)&j>>>0>s>>>0|i>>>0>>0){break m}i=g;a=b;e=b+j|0;b=d+h|0;b=a>>>0>e>>>0?b+1|0:b;a=g>>31;d=a;h=d^n;j=h-d|0;g=e+j|0;d=(d^i)-((d>>>0>h>>>0)+d|0)|0;a=g;g=d^2147483647;g=(g|0)==(b|0)&(j^-1)>>>0>>0|b>>>0>g>>>0;a=g?-1:a;if(!(g&0)&(a|0)<=536870912|(a|0)<536870912){break m}b=0;a=a>>>29|0;break n}o:{if((i|0)==(h|0)&j>>>0>s>>>0|i>>>0>>0){break o}a=b;i=b+j|0;b=d+h|0;b=a>>>0>i>>>0?b+1|0:b;a=i;h=g;d=g>>31;g=d;i=d^n;d=(d^h)-(d+(d>>>0>i>>>0)|0)|0;g=i-g|0;i=d^2147483647;if((i|0)==(b|0)&(g^-1)>>>0>>0|b>>>0>i>>>0){break o}b=b+d|0;a=a+g|0;b=a>>>0>>0?b+1|0:b;p=a;e=b;if(!b&a>>>0<536870913){break m}}b=e>>>29|0;a=(e&536870911)<<3|p>>>29}n=kk(n,k,a,b);l=kk(l,m,a,b);q=kk(q,r,a,b)}J[c+8>>2]=n;J[c+4>>2]=l;J[c>>2]=q;ia=f+96|0;return}Bc();C()}Bc();C()}Bc();C()}function Ec(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,D=0,E=0,F=0;J[a+8>>2]=e;s=a+32|0;g=J[s>>2];f=J[a+36>>2]-g>>2;a:{if(f>>>0>>0){Oa(s,e-f|0);d=J[a+8>>2];break a}d=e;if(d>>>0>=f>>>0){break a}J[a+36>>2]=g+(e<<2);d=e}v=e<<2;f=e>>>0>1073741823?-1:v;m=Xi(Aj(f),0,f);p=Xi(Aj(f),0,f);b:{if((d|0)<=0){break b}i=J[a+32>>2];while(1){d=h<<2;f=J[d+m>>2];g=J[a+16>>2];c:{if((f|0)>(g|0)){J[d+i>>2]=g;break c}d=d+i|0;g=J[a+12>>2];if((g|0)>(f|0)){J[d>>2]=g;break c}J[d>>2]=f}d=J[a+8>>2];h=h+1|0;if((d|0)>(h|0)){continue}break}if((d|0)<=0){break b}f=0;while(1){g=f<<2;d=g+c|0;g=J[b+g>>2]+J[g+i>>2]|0;J[d>>2]=g;d:{if((g|0)>J[a+16>>2]){g=g-J[a+20>>2]|0}else{if((g|0)>=J[a+12>>2]){break d}g=g+J[a+20>>2]|0}J[d>>2]=g}d=J[a+8>>2];f=f+1|0;if((d|0)>(f|0)){continue}break}}f=J[a+56>>2];w=J[f>>2];f=J[f+4>>2]-w|0;if((f|0)>=5){B=J[a+52>>2];r=J[a+48>>2];u=f>>>2|0;D=u>>>0<=2?2:u;x=e&-2;y=e&1;E=e&-4;z=e&3;A=e-1|0;n=1;while(1){e:{f:{g:{h:{if((n|0)!=(u|0)){g=J[(n<<2)+w>>2];t=(e|0)<=0;if(!t){Xi(m,0,v)}if((g|0)==-1){i=P(e,n);break f}F=J[r>>2];l=0;f=g;while(1){i:{if(J[(f>>>3&536870908)+F>>2]>>>f&1){break i}i=J[J[J[r+64>>2]+12>>2]+(f<<2)>>2];if((i|0)==-1){break i}j=J[B>>2];h=J[r+28>>2];o=J[j+(J[h+(i<<2)>>2]<<2)>>2];if((o|0)>=(n|0)){break i}k=i+1|0;k=J[j+(J[h+(((k>>>0)%3|0?k:i-2|0)<<2)>>2]<<2)>>2];if((k|0)>=(n|0)){break i}i=J[j+(J[h+(i+((i>>>0)%3|0?-1:2)<<2)>>2]<<2)>>2];if((i|0)>=(n|0)){break i}j:{if(t){break j}i=P(e,i);j=P(e,k);o=P(e,o);h=0;q=0;if(A){while(1){J[(h<<2)+p>>2]=(J[(h+i<<2)+c>>2]+J[(h+j<<2)+c>>2]|0)-J[(h+o<<2)+c>>2];k=h|1;J[(k<<2)+p>>2]=(J[(i+k<<2)+c>>2]+J[(j+k<<2)+c>>2]|0)-J[(k+o<<2)+c>>2];h=h+2|0;q=q+2|0;if((x|0)!=(q|0)){continue}break}}if(y){J[(h<<2)+p>>2]=(J[(h+i<<2)+c>>2]+J[(h+j<<2)+c>>2]|0)-J[(h+o<<2)+c>>2]}if(t){break j}o=0;h=0;i=0;if(e>>>0>3){while(1){j=h<<2;k=j+m|0;J[k>>2]=J[j+p>>2]+J[k>>2];k=j|4;q=k+m|0;J[q>>2]=J[k+p>>2]+J[q>>2];k=j|8;q=k+m|0;J[q>>2]=J[k+p>>2]+J[q>>2];j=j|12;k=j+m|0;J[k>>2]=J[j+p>>2]+J[k>>2];h=h+4|0;i=i+4|0;if((E|0)!=(i|0)){continue}break}}if(!z){break j}while(1){i=h<<2;j=i+m|0;J[j>>2]=J[i+p>>2]+J[j>>2];h=h+1|0;o=o+1|0;if((z|0)!=(o|0)){continue}break}}l=l+1|0}k:{l:{if((f>>>0)%3|0){h=f-1|0;break l}h=f+2|0;i=-1;if((h|0)==-1){break k}}i=-1;if(J[J[r>>2]+(h>>>3&536870908)>>2]>>>h&1){break k}f=J[J[J[r+64>>2]+12>>2]+(h<<2)>>2];i=-1;if((f|0)==-1){break k}i=f-1|0;if((f>>>0)%3|0){break k}i=f+2|0}f=i;if((g|0)!=(f|0)&(f|0)!=-1){continue}break}i=P(e,n);if(!l){break f}if(t){break g}h=0;f=0;if(!A){break h}while(1){g=h<<2;j=g+m|0;J[j>>2]=J[j>>2]/(l|0);g=(g|4)+m|0;J[g>>2]=J[g>>2]/(l|0);h=h+2|0;f=f+2|0;if((x|0)!=(f|0)){continue}break}break h}Bc();C()}if(!y){break g}f=(h<<2)+m|0;J[f>>2]=J[f>>2]/(l|0)}if((d|0)<=0){break e}l=J[s>>2];h=0;while(1){d=h<<2;f=J[d+m>>2];g=J[a+16>>2];m:{if((f|0)>(g|0)){J[d+l>>2]=g;break m}d=d+l|0;g=J[a+12>>2];if((g|0)>(f|0)){J[d>>2]=g;break m}J[d>>2]=f}d=J[a+8>>2];h=h+1|0;if((d|0)>(h|0)){continue}break}f=0;if((d|0)<=0){break e}d=i<<2;i=d+c|0;h=b+d|0;while(1){g=f<<2;d=g+i|0;g=J[h+g>>2]+J[g+l>>2]|0;J[d>>2]=g;n:{if((g|0)>J[a+16>>2]){g=g-J[a+20>>2]|0}else{if((g|0)>=J[a+12>>2]){break n}g=g+J[a+20>>2]|0}J[d>>2]=g}d=J[a+8>>2];f=f+1|0;if((d|0)>(f|0)){continue}break}break e}if((d|0)<=0){break e}g=(P(n-1|0,e)<<2)+c|0;l=J[s>>2];h=0;while(1){d=h<<2;f=J[d+g>>2];j=J[a+16>>2];o:{if((f|0)>(j|0)){J[d+l>>2]=j;break o}d=d+l|0;j=J[a+12>>2];if((j|0)>(f|0)){J[d>>2]=j;break o}J[d>>2]=f}d=J[a+8>>2];h=h+1|0;if((d|0)>(h|0)){continue}break}f=0;if((d|0)<=0){break e}d=i<<2;i=d+c|0;h=b+d|0;while(1){g=f<<2;d=g+i|0;g=J[h+g>>2]+J[g+l>>2]|0;J[d>>2]=g;p:{if((g|0)>J[a+16>>2]){g=g-J[a+20>>2]|0}else{if((g|0)>=J[a+12>>2]){break p}g=g+J[a+20>>2]|0}J[d>>2]=g}d=J[a+8>>2];f=f+1|0;if((d|0)>(f|0)){continue}break}}n=n+1|0;if((D|0)!=(n|0)){continue}break}}xj(p);xj(m);return 1}function dg(a,b,c){var d=0,e=0,f=0,g=0,h=0,i=0;e=ia-48|0;ia=e;d=L[6701]|L[6702]<<16;f=L[6699]|L[6700]<<16;I[e+38>>1]=f;I[e+40>>1]=f>>>16;I[e+42>>1]=d;I[e+44>>1]=d>>>16;d=J[3349];J[e+32>>2]=J[3348];J[e+36>>2]=d;d=J[3347];J[e+24>>2]=J[3346];J[e+28>>2]=d;d=J[3345];J[e+16>>2]=J[3344];J[e+20>>2]=d;f=J[b+12>>2];d=J[b+20>>2];g=J[b+16>>2];h=g+5|0;d=h>>>0<5?d+1|0:d;a:{b:{if(h>>>0>M[b+8>>2]&(d|0)>=(f|0)|(d|0)>(f|0)){b=hj(e+16|0);if(b>>>0>=4294967280){break a}c:{d:{if(b>>>0>=11){d=(b|15)+1|0;c=Aj(d);J[e+8>>2]=d|-2147483648;J[e>>2]=c;J[e+4>>2]=b;break d}H[e+11|0]=b;c=e;if(!b){break c}}Vi(c,e+16|0,b)}H[b+c|0]=0;J[a>>2]=-2;a=a+4|0;if(H[e+11|0]>=0){b=J[e+4>>2];J[a>>2]=J[e>>2];J[a+4>>2]=b;J[a+8>>2]=J[e+8>>2];break b}b=a;a=J[e>>2];Ej(b,a,J[e+4>>2]);xj(a);break b}d=g+J[b>>2]|0;f=K[d|0]|K[d+1|0]<<8|(K[d+2|0]<<16|K[d+3|0]<<24);H[c|0]=f;H[c+1|0]=f>>>8;H[c+2|0]=f>>>16;H[c+3|0]=f>>>24;H[c+4|0]=K[d+4|0];d=J[b+20>>2];f=J[b+16>>2]+5|0;d=f>>>0<5?d+1|0:d;J[b+16>>2]=f;J[b+20>>2]=d;if(bj(c,1287,5)){b=Aj(32);H[b+17|0]=0;H[b+16|0]=K[1531];c=K[1527]|K[1528]<<8|(K[1529]<<16|K[1530]<<24);d=K[1523]|K[1524]<<8|(K[1525]<<16|K[1526]<<24);H[b+8|0]=d;H[b+9|0]=d>>>8;H[b+10|0]=d>>>16;H[b+11|0]=d>>>24;H[b+12|0]=c;H[b+13|0]=c>>>8;H[b+14|0]=c>>>16;H[b+15|0]=c>>>24;c=K[1519]|K[1520]<<8|(K[1521]<<16|K[1522]<<24);d=K[1515]|K[1516]<<8|(K[1517]<<16|K[1518]<<24);H[b|0]=d;H[b+1|0]=d>>>8;H[b+2|0]=d>>>16;H[b+3|0]=d>>>24;H[b+4|0]=c;H[b+5|0]=c>>>8;H[b+6|0]=c>>>16;H[b+7|0]=c>>>24;J[a>>2]=-1;Ej(a+4|0,b,17);xj(b);break b}g=J[b+12>>2];if((g|0)<=(d|0)&M[b+8>>2]<=f>>>0|(d|0)>(g|0)){b=hj(e+16|0);if(b>>>0>=4294967280){break a}e:{f:{if(b>>>0>=11){d=(b|15)+1|0;c=Aj(d);J[e+8>>2]=d|-2147483648;J[e>>2]=c;J[e+4>>2]=b;break f}H[e+11|0]=b;c=e;if(!b){break e}}Vi(c,e+16|0,b)}H[b+c|0]=0;J[a>>2]=-2;a=a+4|0;if(H[e+11|0]>=0){b=J[e+4>>2];J[a>>2]=J[e>>2];J[a+4>>2]=b;J[a+8>>2]=J[e+8>>2];break b}b=a;a=J[e>>2];Ej(b,a,J[e+4>>2]);xj(a);break b}H[c+5|0]=K[f+J[b>>2]|0];d=J[b+20>>2];f=J[b+16>>2]+1|0;d=f?d:d+1|0;J[b+16>>2]=f;J[b+20>>2]=d;g=J[b+12>>2];if((g|0)<=(d|0)&M[b+8>>2]<=f>>>0|(d|0)>(g|0)){b=hj(e+16|0);if(b>>>0>=4294967280){break a}g:{h:{if(b>>>0>=11){d=(b|15)+1|0;c=Aj(d);J[e+8>>2]=d|-2147483648;J[e>>2]=c;J[e+4>>2]=b;break h}H[e+11|0]=b;c=e;if(!b){break g}}Vi(c,e+16|0,b)}H[b+c|0]=0;J[a>>2]=-2;a=a+4|0;if(H[e+11|0]>=0){b=J[e+4>>2];J[a>>2]=J[e>>2];J[a+4>>2]=b;J[a+8>>2]=J[e+8>>2];break b}b=a;a=J[e>>2];Ej(b,a,J[e+4>>2]);xj(a);break b}H[c+6|0]=K[f+J[b>>2]|0];d=J[b+20>>2];f=J[b+16>>2]+1|0;d=f?d:d+1|0;J[b+16>>2]=f;J[b+20>>2]=d;g=J[b+12>>2];if((g|0)<=(d|0)&M[b+8>>2]<=f>>>0|(d|0)>(g|0)){b=hj(e+16|0);if(b>>>0>=4294967280){break a}i:{j:{if(b>>>0>=11){d=(b|15)+1|0;c=Aj(d);J[e+8>>2]=d|-2147483648;J[e>>2]=c;J[e+4>>2]=b;break j}H[e+11|0]=b;c=e;if(!b){break i}}Vi(c,e+16|0,b)}H[b+c|0]=0;J[a>>2]=-2;a=a+4|0;if(H[e+11|0]>=0){b=J[e+4>>2];J[a>>2]=J[e>>2];J[a+4>>2]=b;J[a+8>>2]=J[e+8>>2];break b}b=a;a=J[e>>2];Ej(b,a,J[e+4>>2]);xj(a);break b}H[c+7|0]=K[f+J[b>>2]|0];d=J[b+20>>2];f=J[b+16>>2]+1|0;d=f?d:d+1|0;J[b+16>>2]=f;J[b+20>>2]=d;g=J[b+12>>2];if((g|0)<=(d|0)&M[b+8>>2]<=f>>>0|(d|0)>(g|0)){b=eg(e,e+16|0);J[a>>2]=-2;a=a+4|0;if(H[b+11|0]>=0){c=J[b+4>>2];J[a>>2]=J[b>>2];J[a+4>>2]=c;J[a+8>>2]=J[b+8>>2];break b}Ej(a,J[b>>2],J[b+4>>2]);if(H[b+11|0]>=0){break b}xj(J[b>>2]);break b}H[c+8|0]=K[f+J[b>>2]|0];d=J[b+20>>2];f=d;i=J[b+16>>2];g=i+1|0;d=g?d:d+1|0;J[b+16>>2]=g;J[b+20>>2]=d;h=J[b+12>>2];d=f;f=i+3|0;d=f>>>0<3?d+1|0:d;if(f>>>0>M[b+8>>2]&(d|0)>=(h|0)|(d|0)>(h|0)){b=eg(e,e+16|0);J[a>>2]=-2;a=a+4|0;if(H[b+11|0]>=0){c=J[b+4>>2];J[a>>2]=J[b>>2];J[a+4>>2]=c;J[a+8>>2]=J[b+8>>2];break b}Ej(a,J[b>>2],J[b+4>>2]);if(H[b+11|0]>=0){break b}xj(J[b>>2]);break b}f=c;c=g+J[b>>2]|0;I[f+10>>1]=K[c|0]|K[c+1|0]<<8;d=J[b+20>>2];c=J[b+16>>2]+2|0;d=c>>>0<2?d+1|0:d;J[b+16>>2]=c;J[b+20>>2]=d;J[a+8>>2]=0;J[a+12>>2]=0;J[a>>2]=0;J[a+4>>2]=0}ia=e+48|0;return}fg();C()}function jd(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,D=0,E=0,F=0;J[a+8>>2]=e;r=a+32|0;f=J[r>>2];j=J[a+36>>2]-f>>2;a:{if(j>>>0>>0){Oa(r,e-j|0);d=J[a+8>>2];break a}d=e;if(e>>>0>=j>>>0){break a}J[a+36>>2]=f+(e<<2);d=e}u=e<<2;f=e>>>0>1073741823?-1:u;m=Xi(Aj(f),0,f);p=Xi(Aj(f),0,f);b:{if((d|0)<=0){break b}i=J[a+32>>2];while(1){f=h<<2;j=J[f+m>>2];d=J[a+16>>2];c:{if((j|0)>(d|0)){J[f+i>>2]=d;break c}f=f+i|0;d=J[a+12>>2];if((d|0)>(j|0)){J[f>>2]=d;break c}J[f>>2]=j}d=J[a+8>>2];h=h+1|0;if((d|0)>(h|0)){continue}break}if((d|0)<=0){break b}f=0;while(1){j=f<<2;d=j+c|0;j=J[b+j>>2]+J[j+i>>2]|0;J[d>>2]=j;d:{if((j|0)>J[a+16>>2]){j=j-J[a+20>>2]|0}else{if((j|0)>=J[a+12>>2]){break d}j=j+J[a+20>>2]|0}J[d>>2]=j}d=J[a+8>>2];f=f+1|0;if((d|0)>(f|0)){continue}break}}f=J[a+56>>2];v=J[f>>2];f=J[f+4>>2]-v|0;if((f|0)>=5){D=J[a+52>>2];w=J[a+48>>2];t=f>>>2|0;E=t>>>0<=2?2:t;x=e&-2;y=e&1;F=e&-4;z=e&3;A=e-1|0;n=1;while(1){e:{f:{g:{h:{if((n|0)!=(t|0)){j=J[(n<<2)+v>>2];s=(e|0)<=0;if(!s){Xi(m,0,u)}if((j|0)==-1){g=P(e,n);break f}B=J[w+12>>2];q=0;f=j;while(1){h=J[(f<<2)+B>>2];i:{if((h|0)==-1){break i}o=J[D>>2];l=J[w>>2];k=J[o+(J[l+(h<<2)>>2]<<2)>>2];i=h+1|0;i=(i>>>0)%3|0?i:h-2|0;if((i|0)!=-1){g=J[l+(i<<2)>>2]}else{g=-1}j:{k:{if((h>>>0)%3|0){h=h-1|0;break k}h=h+2|0;i=-1;if((h|0)==-1){break j}}i=J[l+(h<<2)>>2]}if((k|0)>=(n|0)){break i}g=J[(g<<2)+o>>2];if((g|0)>=(n|0)){break i}i=J[o+(i<<2)>>2];if((i|0)>=(n|0)){break i}l:{if(s){break l}l=P(e,i);o=P(e,g);k=P(e,k);h=0;i=0;if(A){while(1){J[(h<<2)+p>>2]=(J[(h+l<<2)+c>>2]+J[(h+o<<2)+c>>2]|0)-J[(h+k<<2)+c>>2];g=h|1;J[(g<<2)+p>>2]=(J[(g+l<<2)+c>>2]+J[(g+o<<2)+c>>2]|0)-J[(g+k<<2)+c>>2];h=h+2|0;i=i+2|0;if((x|0)!=(i|0)){continue}break}}if(y){J[(h<<2)+p>>2]=(J[(h+l<<2)+c>>2]+J[(h+o<<2)+c>>2]|0)-J[(h+k<<2)+c>>2]}if(s){break l}o=0;h=0;k=0;if(e>>>0>3){while(1){l=h<<2;i=l+m|0;J[i>>2]=J[l+p>>2]+J[i>>2];g=l|4;i=g+m|0;J[i>>2]=J[g+p>>2]+J[i>>2];g=l|8;i=g+m|0;J[i>>2]=J[g+p>>2]+J[i>>2];g=l|12;i=g+m|0;J[i>>2]=J[g+p>>2]+J[i>>2];h=h+4|0;k=k+4|0;if((F|0)!=(k|0)){continue}break}}if(!z){break l}while(1){g=h<<2;i=g+m|0;J[i>>2]=J[g+p>>2]+J[i>>2];h=h+1|0;o=o+1|0;if((z|0)!=(o|0)){continue}break}}q=q+1|0}m:{n:{if((f>>>0)%3|0){h=f-1|0;break n}h=f+2|0;g=-1;if((h|0)==-1){break m}}f=J[(h<<2)+B>>2];g=-1;if((f|0)==-1){break m}g=f-1|0;if((f>>>0)%3|0){break m}g=f+2|0}f=g;if((j|0)!=(f|0)&(f|0)!=-1){continue}break}g=P(e,n);if(!q){break f}if(s){break g}h=0;f=0;if(!A){break h}while(1){i=h<<2;j=i+m|0;J[j>>2]=J[j>>2]/(q|0);j=(i|4)+m|0;J[j>>2]=J[j>>2]/(q|0);h=h+2|0;f=f+2|0;if((x|0)!=(f|0)){continue}break}break h}Bc();C()}if(!y){break g}f=(h<<2)+m|0;J[f>>2]=J[f>>2]/(q|0)}if((d|0)<=0){break e}k=J[r>>2];h=0;while(1){f=h<<2;j=J[f+m>>2];d=J[a+16>>2];o:{if((j|0)>(d|0)){J[f+k>>2]=d;break o}f=f+k|0;d=J[a+12>>2];if((d|0)>(j|0)){J[f>>2]=d;break o}J[f>>2]=j}d=J[a+8>>2];h=h+1|0;if((d|0)>(h|0)){continue}break}f=0;if((d|0)<=0){break e}d=g<<2;i=d+c|0;j=b+d|0;while(1){g=f<<2;d=g+i|0;g=J[g+j>>2]+J[g+k>>2]|0;J[d>>2]=g;p:{if((g|0)>J[a+16>>2]){g=g-J[a+20>>2]|0}else{if((g|0)>=J[a+12>>2]){break p}g=g+J[a+20>>2]|0}J[d>>2]=g}d=J[a+8>>2];f=f+1|0;if((d|0)>(f|0)){continue}break}break e}if((d|0)<=0){break e}f=(P(n-1|0,e)<<2)+c|0;k=J[r>>2];h=0;while(1){j=h<<2;i=J[j+f>>2];d=J[a+16>>2];q:{if((i|0)>(d|0)){J[j+k>>2]=d;break q}j=j+k|0;d=J[a+12>>2];if((d|0)>(i|0)){J[j>>2]=d;break q}J[j>>2]=i}d=J[a+8>>2];h=h+1|0;if((d|0)>(h|0)){continue}break}f=0;if((d|0)<=0){break e}d=g<<2;i=d+c|0;j=b+d|0;while(1){g=f<<2;d=g+i|0;g=J[g+j>>2]+J[g+k>>2]|0;J[d>>2]=g;r:{if((g|0)>J[a+16>>2]){g=g-J[a+20>>2]|0}else{if((g|0)>=J[a+12>>2]){break r}g=g+J[a+20>>2]|0}J[d>>2]=g}d=J[a+8>>2];f=f+1|0;if((d|0)>(f|0)){continue}break}}n=n+1|0;if((E|0)!=(n|0)){continue}break}}xj(p);xj(m);return 1}function Tc(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=Q(0),k=0,l=0,m=Q(0),n=Q(0),o=Q(0),p=Q(0),q=Q(0),r=Q(0),s=Q(0),t=0,u=Q(0),v=Q(0),w=0,x=0,y=Q(0),z=Q(0),A=Q(0),B=0;a:{if((e|0)==2){J[a+64>>2]=f;J[a+72>>2]=2;e=Aj(8);d=J[a+68>>2];J[a+68>>2]=e;if(d){xj(d)}J[a+8>>2]=2;w=a+32|0;e=J[w>>2];d=J[a+36>>2]-e|0;b:{if(d>>>0<=7){Oa(w,2-(d>>>2|0)|0);break b}if((d|0)==8){break b}J[a+36>>2]=e+8}d=J[a+56>>2];d=J[d+4>>2]-J[d>>2]|0;c:{if((d|0)<=0){f=0;break c}x=d>>2;B=(x|0)<=1?1:x;f=1;while(1){d=J[a+56>>2];g=J[d>>2];if(J[d+4>>2]-g>>2>>>0<=l>>>0){break a}q=Q(0);h=ia-48|0;ia=h;d=-1;g=J[g+(l<<2)>>2];e=-1;d:{if((g|0)==-1){break d}d=g+1|0;d=(d>>>0)%3|0?d:g-2|0;e=g-1|0;if((g>>>0)%3|0){break d}e=g+2|0}i=J[a+52>>2];g=J[i>>2];e:{f:{i=J[i+4>>2]-g>>2;t=d<<2;d=J[J[a+48>>2]+28>>2];t=J[t+d>>2];if(i>>>0<=t>>>0){break f}d=J[d+(e<<2)>>2];if(d>>>0>=i>>>0){break f}i=J[g+(d<<2)>>2];e=J[g+(t<<2)>>2];g:{if(!((i|0)>=(l|0)|(e|0)>=(l|0))){d=J[a+72>>2];g=(P(d,i)<<2)+c|0;m=Q(J[g+4>>2]);d=(P(d,e)<<2)+c|0;p=Q(J[d+4>>2]);y=Q(J[d>>2]);n=Q(J[g>>2]);if(!(y!=n|m!=p)){g=+m>2147483647;d=J[a+68>>2];if(Q(R(m))>2]=m2147483647;if(Q(R(n))>2]=n>2]+(l<<2)>>2];J[h+40>>2]=0;J[h+32>>2]=0;J[h+36>>2]=0;g=J[a+60>>2];if(!K[g+84|0]){d=J[J[g+68>>2]+(d<<2)>>2]}Uc(g,d,H[g+24|0],h+32|0);e=J[J[a+64>>2]+(e<<2)>>2];J[h+24>>2]=0;J[h+16>>2]=0;J[h+20>>2]=0;d=J[a+60>>2];if(!K[d+84|0]){e=J[J[d+68>>2]+(e<<2)>>2]}Uc(d,e,H[d+24|0],h+16|0);e=J[J[a+64>>2]+(i<<2)>>2];J[h+8>>2]=0;J[h>>2]=0;J[h+4>>2]=0;d=J[a+60>>2];if(!K[d+84|0]){e=J[J[d+68>>2]+(e<<2)>>2]}Uc(d,e,H[d+24|0],h);o=N[h+24>>2];r=Q(N[h+8>>2]-o);s=N[h+20>>2];u=Q(N[h+4>>2]-s);A=N[h+16>>2];v=Q(N[h>>2]-A);z=Q(Q(r*r)+Q(Q(u*u)+Q(Q(v*v)+Q(0))));h:{if(J[a+88>>2]>=258){j=Q(0);if(!(z>Q(0))){break h}}j=Q(N[h+40>>2]-o);o=Q(N[h+36>>2]-s);s=Q(N[h+32>>2]-A);q=Q(Q(Q(r*j)+Q(Q(u*o)+Q(Q(v*s)+Q(0))))/z);j=Q(j-Q(r*q));r=Q(j*j);j=Q(o-Q(u*q));o=Q(j*j);j=Q(s-Q(v*q));j=Q(Y(Q(Q(r+Q(o+Q(Q(j*j)+Q(0))))/z)))}e=J[a+80>>2];if(e){d=e-1|0;g=J[J[a+76>>2]+(d>>>3&536870908)>>2];J[a+80>>2]=d;m=Q(m-p);o=Q(Q(m*q)+p);n=Q(n-y);p=Q(n*j);d=g>>>d&1;p=Q(o+(d?p:Q(-p)));j=Q(j*m);k=V(+Q(Q(Q(n*q)+y)+(d?Q(-j):j))+.5);i:{if(k<-2147483648|k!=k|k>2147483647){d=J[a+68>>2];J[d>>2]=-2147483648;break i}d=J[a+68>>2];if(R(k)<2147483648){g=~~k}else{g=-2147483648}J[d>>2]=g}k=V(+p+.5);i=k>2147483647;if(R(k)<2147483648){g=~~k}else{g=-2147483648}J[d+4>>2]=k<-2147483648?-2147483648:k!=k?-2147483648:i?-2147483648:g}e=(e|0)!=0;break g}j:{if((e|0)<(l|0)){d=J[a+72>>2];g=P(e,d);break j}if((l|0)<=0){e=1;if(J[a+72>>2]<=0){break g}g=J[a+68>>2];d=0;while(1){J[g+(d<<2)>>2]=0;d=d+1|0;if((d|0)>2]){continue}break}break g}d=J[a+72>>2];g=P(d,l-1|0)}e=1;if((d|0)<=0){break g}i=J[a+68>>2];d=0;while(1){J[i+(d<<2)>>2]=J[(d+g<<2)+c>>2];d=d+1|0;if((d|0)>2]){continue}break}}ia=h+48|0;break e}Bc();C()}if(!e){break c}k:{if(J[a+8>>2]<=0){break k}h=J[a+68>>2];g=J[w>>2];d=0;while(1){e=d<<2;f=J[e+h>>2];i=J[a+16>>2];l:{if((f|0)>(i|0)){J[e+g>>2]=i;break l}e=e+g|0;i=J[a+12>>2];if((i|0)>(f|0)){J[e>>2]=i;break l}J[e>>2]=f}d=d+1|0;f=J[a+8>>2];if((d|0)<(f|0)){continue}break}e=0;if((f|0)<=0){break k}d=l<<3;h=d+c|0;i=b+d|0;while(1){f=e<<2;d=f+h|0;f=J[f+i>>2]+J[f+g>>2]|0;J[d>>2]=f;m:{if((f|0)>J[a+16>>2]){f=f-J[a+20>>2]|0}else{if((f|0)>=J[a+12>>2]){break m}f=f+J[a+20>>2]|0}J[d>>2]=f}e=e+1|0;if((e|0)>2]){continue}break}}l=l+1|0;f=(x|0)>(l|0);if((l|0)!=(B|0)){continue}break}}a=f^1}else{a=0}return a&1}Bc();C()}function qd(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=Q(0),k=0,l=0,m=Q(0),n=Q(0),o=Q(0),p=Q(0),q=Q(0),r=Q(0),s=Q(0),t=Q(0),u=Q(0),v=0,w=0,x=Q(0),y=Q(0),z=Q(0),A=0;a:{if((e|0)==2){J[a+64>>2]=f;J[a+72>>2]=2;e=Aj(8);d=J[a+68>>2];J[a+68>>2]=e;if(d){xj(d)}J[a+8>>2]=2;v=a+32|0;e=J[v>>2];d=J[a+36>>2]-e|0;b:{if(d>>>0<=7){Oa(v,2-(d>>>2|0)|0);break b}if((d|0)==8){break b}J[a+36>>2]=e+8}d=J[a+56>>2];d=J[d+4>>2]-J[d>>2]|0;c:{if((d|0)<=0){f=0;break c}w=d>>2;A=(w|0)<=1?1:w;f=1;while(1){e=J[a+56>>2];d=J[e>>2];if(J[e+4>>2]-d>>2>>>0<=l>>>0){break a}q=Q(0);h=ia-48|0;ia=h;g=-1;d:{e:{d=J[d+(l<<2)>>2];if((d|0)==-1){break e}i=J[a+48>>2];e=d+1|0;e=(e>>>0)%3|0?e:d-2|0;if((e|0)!=-1){g=J[J[i>>2]+(e<<2)>>2]}e=-1;d=d+((d>>>0)%3|0?-1:2)|0;if((d|0)!=-1){e=J[J[i>>2]+(d<<2)>>2]}d=J[a+52>>2];i=J[d>>2];d=J[d+4>>2]-i>>2;if(d>>>0<=g>>>0|d>>>0<=e>>>0){break e}d=J[i+(g<<2)>>2];i=J[i+(e<<2)>>2];f:{if(!((i|0)>=(l|0)|(d|0)>=(l|0))){e=J[a+72>>2];g=(P(e,i)<<2)+c|0;m=Q(J[g+4>>2]);e=(P(d,e)<<2)+c|0;p=Q(J[e+4>>2]);x=Q(J[e>>2]);n=Q(J[g>>2]);if(!(x!=n|m!=p)){g=+m>2147483647;d=J[a+68>>2];if(Q(R(m))>2]=m2147483647;if(Q(R(n))>2]=n>2]+(l<<2)>>2];J[h+40>>2]=0;J[h+32>>2]=0;J[h+36>>2]=0;g=J[a+60>>2];if(!K[g+84|0]){e=J[J[g+68>>2]+(e<<2)>>2]}Uc(g,e,H[g+24|0],h+32|0);e=J[J[a+64>>2]+(d<<2)>>2];J[h+24>>2]=0;J[h+16>>2]=0;J[h+20>>2]=0;d=J[a+60>>2];if(!K[d+84|0]){e=J[J[d+68>>2]+(e<<2)>>2]}Uc(d,e,H[d+24|0],h+16|0);d=J[J[a+64>>2]+(i<<2)>>2];J[h+8>>2]=0;J[h>>2]=0;J[h+4>>2]=0;e=J[a+60>>2];if(!K[e+84|0]){d=J[J[e+68>>2]+(d<<2)>>2]}Uc(e,d,H[e+24|0],h);o=N[h+24>>2];r=Q(N[h+8>>2]-o);s=N[h+20>>2];t=Q(N[h+4>>2]-s);z=N[h+16>>2];u=Q(N[h>>2]-z);y=Q(Q(r*r)+Q(Q(t*t)+Q(Q(u*u)+Q(0))));g:{if(J[a+88>>2]>=258){j=Q(0);if(!(y>Q(0))){break g}}j=Q(N[h+40>>2]-o);o=Q(N[h+36>>2]-s);s=Q(N[h+32>>2]-z);q=Q(Q(Q(r*j)+Q(Q(t*o)+Q(Q(u*s)+Q(0))))/y);j=Q(j-Q(r*q));r=Q(j*j);j=Q(o-Q(t*q));o=Q(j*j);j=Q(s-Q(u*q));j=Q(Y(Q(Q(r+Q(o+Q(Q(j*j)+Q(0))))/y)))}e=J[a+80>>2];if(e){d=e-1|0;g=J[J[a+76>>2]+(d>>>3&536870908)>>2];J[a+80>>2]=d;m=Q(m-p);o=Q(Q(m*q)+p);n=Q(n-x);p=Q(n*j);d=g>>>d&1;p=Q(o+(d?p:Q(-p)));j=Q(j*m);k=V(+Q(Q(Q(n*q)+x)+(d?Q(-j):j))+.5);h:{if(k<-2147483648|k!=k|k>2147483647){d=J[a+68>>2];J[d>>2]=-2147483648;break h}d=J[a+68>>2];if(R(k)<2147483648){g=~~k}else{g=-2147483648}J[d>>2]=g}k=V(+p+.5);i=k>2147483647;if(R(k)<2147483648){g=~~k}else{g=-2147483648}J[d+4>>2]=k<-2147483648?-2147483648:k!=k?-2147483648:i?-2147483648:g}d=(e|0)!=0;break f}i:{if((d|0)<(l|0)){e=J[a+72>>2];g=P(d,e);break i}if((l|0)<=0){d=1;if(J[a+72>>2]<=0){break f}g=J[a+68>>2];e=0;while(1){J[g+(e<<2)>>2]=0;e=e+1|0;if((e|0)>2]){continue}break}break f}e=J[a+72>>2];g=P(e,l-1|0)}d=1;if((e|0)<=0){break f}i=J[a+68>>2];e=0;while(1){J[i+(e<<2)>>2]=J[(e+g<<2)+c>>2];e=e+1|0;if((e|0)>2]){continue}break}}ia=h+48|0;break d}Bc();C()}if(!d){break c}j:{if(J[a+8>>2]<=0){break j}h=J[a+68>>2];g=J[v>>2];d=0;while(1){e=d<<2;f=J[e+h>>2];i=J[a+16>>2];k:{if((f|0)>(i|0)){J[e+g>>2]=i;break k}e=e+g|0;i=J[a+12>>2];if((i|0)>(f|0)){J[e>>2]=i;break k}J[e>>2]=f}d=d+1|0;f=J[a+8>>2];if((d|0)<(f|0)){continue}break}e=0;if((f|0)<=0){break j}d=l<<3;h=d+c|0;i=b+d|0;while(1){f=e<<2;d=f+h|0;f=J[f+i>>2]+J[f+g>>2]|0;J[d>>2]=f;l:{if((f|0)>J[a+16>>2]){f=f-J[a+20>>2]|0}else{if((f|0)>=J[a+12>>2]){break l}f=f+J[a+20>>2]|0}J[d>>2]=f}e=e+1|0;if((e|0)>2]){continue}break}}l=l+1|0;f=(w|0)>(l|0);if((l|0)!=(A|0)){continue}break}}a=f^1}else{a=0}return a&1}Bc();C()}function sb(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0;f=ia-704|0;ia=f;n=1;a:{b:{c:{d:{if(L[b+38>>1]<515){break d}n=0;c=J[b+20>>2];i=J[b+12>>2];d=J[b+16>>2];if((c|0)>=(i|0)&d>>>0>=M[b+8>>2]|(c|0)>(i|0)){break d}o=K[d+J[b>>2]|0];d=d+1|0;c=d?c:c+1|0;J[b+16>>2]=d;J[b+20>>2]=c;i=J[J[(na[J[J[a>>2]+28>>2]](a)|0)+4>>2]+80>>2];c=na[J[J[a>>2]+24>>2]](a)|0;J[f+40>>2]=0;J[f+32>>2]=0;J[f+36>>2]=0;if(c){if(c>>>0>=214748365){break c}c=P(c,20);d=Aj(c);J[f+32>>2]=d;J[f+40>>2]=c+d;c=c-20|0;c=(c-((c>>>0)%20|0)|0)+20|0;q=f,r=Xi(d,0,c)+c|0,J[q+36>>2]=r}e:{if((na[J[J[a>>2]+24>>2]](a)|0)>0){while(1){c=na[J[J[a>>2]+20>>2]](a,m)|0;d=J[J[J[(na[J[J[a>>2]+28>>2]](a)|0)+4>>2]+8>>2]+(c<<2)>>2];db(d,i);H[d+84|0]=1;J[d+72>>2]=J[d+68>>2];c=J[d+28>>2];if(c>>>0>9){break e}f:{g:{h:{e=1<>2],g,6,0,c,c>>31);c=cb(Aj(96),e);J[f>>2]=c;H[c+84|0]=1;J[c+72>>2]=J[c+68>>2];db(c,i);c=J[a+64>>2];if(c>>>0>=M[a+68>>2]){break h}d=J[f>>2];J[f>>2]=0;J[c>>2]=d;d=c+4|0;J[a+64>>2]=d;break g}h=0;if(!K[d+24|0]){break f}while(1){c=J[a+52>>2];g=J[a+56>>2];i:{if(c>>>0>>0){J[c>>2]=0;J[a+52>>2]=c+4;break i}e=J[a+48>>2];l=c-e|0;k=l>>2;c=k+1|0;if(c>>>0>=1073741824){break b}p=k<<2;g=g-e|0;k=g>>1;g=g>>>0>=2147483644?1073741823:c>>>0>>0?k:c;if(g){if(g>>>0>=1073741824){break a}c=Aj(g<<2)}else{c=0}k=p+c|0;J[k>>2]=0;if((l|0)>0){Vi(c,e,l)}J[a+56>>2]=c+(g<<2);J[a+52>>2]=k+4;J[a+48>>2]=c;if(!e){break i}xj(e)}h=h+1|0;if(h>>>0>2];g=J[a+64>>2]-e>>2;c=g+1|0;if(c>>>0<1073741824){e=J[a+68>>2]-e|0;h=e>>1;c=e>>>0>=2147483644?1073741823:c>>>0>>0?h:c;if(c){if(c>>>0>=1073741824){break l}d=Aj(c<<2)}h=J[f>>2];J[f>>2]=0;e=(g<<2)+d|0;J[e>>2]=h;g=(c<<2)+d|0;h=e+4|0;d=J[a+64>>2];c=J[a+60>>2];if((d|0)==(c|0)){break k}while(1){d=d-4|0;l=J[d>>2];J[d>>2]=0;e=e-4|0;J[e>>2]=l;if((c|0)!=(d|0)){continue}break}J[a+68>>2]=g;d=J[a+64>>2];J[a+64>>2]=h;c=J[a+60>>2];J[a+60>>2]=e;if((c|0)==(d|0)){break j}while(1){d=d-4|0;e=J[d>>2];J[d>>2]=0;if(e){tb(e)}if((c|0)!=(d|0)){continue}break}break j}La();C()}Za();C()}J[a+68>>2]=g;J[a+64>>2]=h;J[a+60>>2]=e}if(c){xj(c)}d=J[a+64>>2]}d=J[d-4>>2];c=J[f>>2];J[f>>2]=0;if(!c){break f}tb(c)}g=J[d+28>>2];c=g-1|0;if(c>>>0<=10){e=J[(c<<2)+13632>>2]}else{e=-1}c=J[f+32>>2]+P(m,20)|0;h=K[d+24|0];J[c+16>>2]=h;J[c+12>>2]=(e|0)>0?e:0;J[c+8>>2]=g;J[c+4>>2]=j;J[c>>2]=d;j=h+j|0;m=m+1|0;if((na[J[J[a>>2]+24>>2]](a)|0)>(m|0)){continue}break}}a=ub(f,f+32|0);m:{n:{o:{switch(o|0){case 0:c=xb(f+48|0,j);b=vb(c,b,a);d=J[c+8>>2];wb(c);if(!b){break m}if((d|0)==(i|0)){break n}break m;case 1:c=xb(f+48|0,j);b=yb(c,b,a);d=J[c+8>>2];wb(c);if(!b){break m}if((d|0)==(i|0)){break n}break m;case 2:c=Bb(f+48|0,j);b=zb(c,b,a);d=J[c+8>>2];Ab(c);if(!b){break m}if((d|0)==(i|0)){break n}break m;case 3:c=Bb(f+48|0,j);b=Cb(c,b,a);d=J[c+8>>2];Ab(c);if(!b){break m}if((d|0)==(i|0)){break n}break m;case 4:c=Fb(f+48|0,j);b=Db(c,b,a);d=J[c+8>>2];Eb(c);if(!b){break m}if((d|0)==(i|0)){break n}break m;case 5:c=Fb(f+48|0,j);b=Gb(c,b,a);d=J[c+8>>2];Eb(c);if(!b){break m}if((d|0)==(i|0)){break n}break m;case 6:break o;default:break m}}c=Fb(f+48|0,j);b=Hb(c,b,a);d=J[c+8>>2];Eb(c);if(!b|(d|0)!=(i|0)){break m}}n=1}b=J[a+16>>2];if(b){J[a+20>>2]=b;xj(b)}b=J[a>>2];if(!b){break e}J[a+4>>2]=b;xj(b)}a=J[f+32>>2];if(!a){break d}J[f+36>>2]=a;xj(a)}ia=f+704|0;return n|0}La();C()}La();C()}Za();C()}function Ed(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0,g=0,h=0,i=0;e=ia-32|0;ia=e;a:{b:{switch(c-2|0){case 0:c=J[a+4>>2];f=J[a+12>>2];J[e+24>>2]=-1;J[e+16>>2]=-1;J[e+20>>2]=1065353216;J[e+8>>2]=-1;J[e+12>>2]=-1;if((b|0)==-2){break a}i=J[J[J[c+4>>2]+8>>2]+(f<<2)>>2];if((na[J[J[c>>2]+8>>2]](c)|0)==1){h=J[J[J[c+4>>2]+8>>2]+(f<<2)>>2];c:{if((na[J[J[c>>2]+8>>2]](c)|0)!=1|b-1>>>0>5){break c}g=na[J[J[c>>2]+36>>2]](c)|0;a=na[J[J[c>>2]+44>>2]](c,f)|0;if(!g|!a){break c}f=na[J[J[c>>2]+40>>2]](c,f)|0;d:{if(f){if((b|0)!=6){break c}b=J[c+44>>2];d=Aj(112);J[d+4>>2]=h;c=J[e+12>>2];J[d+8>>2]=J[e+8>>2];J[d+12>>2]=c;c=J[e+20>>2];J[d+16>>2]=J[e+16>>2];J[d+20>>2]=c;J[d+24>>2]=J[e+24>>2];J[d+40>>2]=a;c=a+12|0;J[d+36>>2]=c;J[d+32>>2]=f;J[d+28>>2]=b;J[d+68>>2]=a;J[d- -64>>2]=c;J[d+60>>2]=f;J[d+56>>2]=b;J[d+48>>2]=0;J[d+52>>2]=0;J[d>>2]=7192;J[d+88>>2]=1065353216;J[d+92>>2]=-1;J[d+80>>2]=-1;J[d+84>>2]=-1;J[d+72>>2]=1;J[d+76>>2]=-1;J[d+44>>2]=7716;a=d+96|0;break d}if((b|0)!=6){break c}b=J[c+44>>2];d=Aj(112);J[d+4>>2]=h;c=J[e+12>>2];J[d+8>>2]=J[e+8>>2];J[d+12>>2]=c;c=J[e+20>>2];J[d+16>>2]=J[e+16>>2];J[d+20>>2]=c;J[d+24>>2]=J[e+24>>2];J[d+40>>2]=a;c=a+12|0;J[d+36>>2]=c;J[d+32>>2]=g;J[d+28>>2]=b;J[d+68>>2]=a;J[d- -64>>2]=c;J[d+60>>2]=g;J[d+56>>2]=b;J[d+48>>2]=0;J[d+52>>2]=0;J[d>>2]=8128;J[d+88>>2]=1065353216;J[d+92>>2]=-1;J[d+80>>2]=-1;J[d+84>>2]=-1;J[d+72>>2]=1;J[d+76>>2]=-1;J[d+44>>2]=8520;a=d+96|0}J[a>>2]=0;J[a+4>>2]=0;H[a+5|0]=0;H[a+6|0]=0;H[a+7|0]=0;H[a+8|0]=0;H[a+9|0]=0;H[a+10|0]=0;H[a+11|0]=0;H[a+12|0]=0}if(d){break a}}d=Aj(28);J[d+4>>2]=i;a=J[e+12>>2];J[d+8>>2]=J[e+8>>2];J[d+12>>2]=a;a=J[e+20>>2];J[d+16>>2]=J[e+16>>2];J[d+20>>2]=a;J[d+24>>2]=J[e+24>>2];J[d>>2]=8908;break a;case 1:break b;default:break a}}c=J[a+4>>2];f=J[a+12>>2];J[e+24>>2]=-1;J[e+16>>2]=-1;J[e+20>>2]=1065353216;J[e+8>>2]=-1;J[e+12>>2]=-1;if((b|0)==-2){break a}i=J[J[J[c+4>>2]+8>>2]+(f<<2)>>2];if((na[J[J[c>>2]+8>>2]](c)|0)==1){h=J[J[J[c+4>>2]+8>>2]+(f<<2)>>2];e:{if((na[J[J[c>>2]+8>>2]](c)|0)!=1|b-1>>>0>5){break e}g=na[J[J[c>>2]+36>>2]](c)|0;a=na[J[J[c>>2]+44>>2]](c,f)|0;if(!g|!a){break e}f=na[J[J[c>>2]+40>>2]](c,f)|0;f:{if(f){if((b|0)!=6){break e}b=J[c+44>>2];d=Aj(112);J[d+4>>2]=h;c=J[e+12>>2];J[d+8>>2]=J[e+8>>2];J[d+12>>2]=c;c=J[e+20>>2];J[d+16>>2]=J[e+16>>2];J[d+20>>2]=c;J[d+24>>2]=J[e+24>>2];J[d+40>>2]=a;c=a+12|0;J[d+36>>2]=c;J[d+32>>2]=f;J[d+28>>2]=b;J[d+68>>2]=a;J[d- -64>>2]=c;J[d+60>>2]=f;J[d+56>>2]=b;J[d+48>>2]=0;J[d+52>>2]=0;J[d>>2]=9076;J[d+88>>2]=1065353216;J[d+92>>2]=-1;J[d+80>>2]=-1;J[d+84>>2]=-1;J[d+72>>2]=1;J[d+76>>2]=-1;J[d+44>>2]=9640;a=d+96|0;break f}if((b|0)!=6){break e}b=J[c+44>>2];d=Aj(112);J[d+4>>2]=h;c=J[e+12>>2];J[d+8>>2]=J[e+8>>2];J[d+12>>2]=c;c=J[e+20>>2];J[d+16>>2]=J[e+16>>2];J[d+20>>2]=c;J[d+24>>2]=J[e+24>>2];J[d+40>>2]=a;c=a+12|0;J[d+36>>2]=c;J[d+32>>2]=g;J[d+28>>2]=b;J[d+68>>2]=a;J[d- -64>>2]=c;J[d+60>>2]=g;J[d+56>>2]=b;J[d+48>>2]=0;J[d+52>>2]=0;J[d>>2]=10080;J[d+88>>2]=1065353216;J[d+92>>2]=-1;J[d+80>>2]=-1;J[d+84>>2]=-1;J[d+72>>2]=1;J[d+76>>2]=-1;J[d+44>>2]=10500;a=d+96|0}J[a>>2]=0;J[a+4>>2]=0;H[a+5|0]=0;H[a+6|0]=0;H[a+7|0]=0;H[a+8|0]=0;H[a+9|0]=0;H[a+10|0]=0;H[a+11|0]=0;H[a+12|0]=0}if(d){break a}}d=Aj(28);J[d+4>>2]=i;a=J[e+12>>2];J[d+8>>2]=J[e+8>>2];J[d+12>>2]=a;a=J[e+20>>2];J[d+16>>2]=J[e+16>>2];J[d+20>>2]=a;J[d+24>>2]=J[e+24>>2];J[d>>2]=10912}ia=e+32|0;return d|0}function Qa(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=Q(0),f=0,g=0,h=0,i=0,j=0,k=0,l=Q(0),m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0;if(J[c>>2]==J[c+4>>2]){h=J[d+80>>2];u=ia-16|0;ia=u;q=J[a+4>>2];i=K[b+24|0];j=J[d+48>>2];d=J[J[d>>2]>>2];c=u+8|0;J[c>>2]=1065353216;N[c>>2]=Q(-1<>2];s=Aj(i<<2);a:{if(!h|!i){break a}t=d+j|0;l=N[c>>2];k=J[a+8>>2];w=J[b>>2];c=J[b+48>>2];n=J[b+44>>2];v=J[b+40>>2];if(!K[b+84|0]){r=J[b+68>>2];q=i&254;j=i&1;a=0;while(1){d=J[w>>2];b=jk(v,n,J[r+(o<<2)>>2],0)+c|0;p=Vi(s,d+b|0,v);b=0;m=0;if((i|0)!=1){while(1){d=t+(a<<2)|0;g=b<<2;e=Q(V(Q(Q(l*Q(N[g+p>>2]-N[k+g>>2]))+Q(.5))));b:{if(Q(R(e))>2]=f;f=g|4;e=Q(V(Q(Q(l*Q(N[f+p>>2]-N[f+k>>2]))+Q(.5))));c:{if(Q(R(e))>2]=f;b=b+2|0;a=a+2|0;m=m+2|0;if((q|0)!=(m|0)){continue}break}}if(j){d=t+(a<<2)|0;b=b<<2;e=Q(V(Q(Q(l*Q(N[b+p>>2]-N[b+k>>2]))+Q(.5))));d:{if(Q(R(e))>2]=b;a=a+1|0}o=o+1|0;if((h|0)!=(o|0)){continue}break}break a}r=i&254;q=i&1;a=0;while(1){d=J[w>>2];b=jk(v,n,p,f)+c|0;o=Vi(s,d+b|0,v);b=0;m=0;if((i|0)!=1){while(1){d=t+(a<<2)|0;g=b<<2;e=Q(V(Q(Q(l*Q(N[g+o>>2]-N[k+g>>2]))+Q(.5))));e:{if(Q(R(e))>2]=j;j=g|4;e=Q(V(Q(Q(l*Q(N[j+o>>2]-N[k+j>>2]))+Q(.5))));f:{if(Q(R(e))>2]=g;b=b+2|0;a=a+2|0;m=m+2|0;if((r|0)!=(m|0)){continue}break}}if(q){d=t+(a<<2)|0;b=b<<2;e=Q(V(Q(Q(l*Q(N[b+o>>2]-N[b+k>>2]))+Q(.5))));g:{if(Q(R(e))>2]=b;a=a+1|0}b=p+1|0;f=b?f:f+1|0;p=b;if((h|0)!=(b|0)|f){continue}break}}xj(s);ia=u+16|0;return 1}u=ia-16|0;ia=u;f=J[a+4>>2];n=K[b+24|0];j=J[d+48>>2];h=J[J[d>>2]>>2];d=u+8|0;J[d>>2]=1065353216;N[d>>2]=Q(-1<>2];t=Aj(n<<2);f=J[c+4>>2];s=J[c>>2];h:{if(!n|(f|0)==(s|0)){break h}m=j+h|0;c=f-s>>2;w=c>>>0<=1?1:c;l=N[d>>2];i=J[a+8>>2];x=J[b>>2];d=J[b+48>>2];v=J[b+44>>2];p=J[b+40>>2];if(K[b+84|0]){q=n&254;j=n&1;a=0;c=0;while(1){f=J[x>>2];b=jk(p,v,J[s+(c<<2)>>2],0)+d|0;g=Vi(t,f+b|0,p);b=0;k=0;if((n|0)!=1){while(1){f=m+(a<<2)|0;r=b<<2;e=Q(V(Q(Q(l*Q(N[r+g>>2]-N[i+r>>2]))+Q(.5))));i:{if(Q(R(e))>2]=h;h=r|4;e=Q(V(Q(Q(l*Q(N[h+g>>2]-N[i+h>>2]))+Q(.5))));j:{if(Q(R(e))>2]=h;b=b+2|0;a=a+2|0;k=k+2|0;if((q|0)!=(k|0)){continue}break}}if(j){f=m+(a<<2)|0;b=b<<2;e=Q(V(Q(Q(l*Q(N[b+g>>2]-N[b+i>>2]))+Q(.5))));k:{if(Q(R(e))>2]=b;a=a+1|0}c=c+1|0;if((w|0)!=(c|0)){continue}break}break h}r=J[b+68>>2];q=n&254;j=n&1;a=0;c=0;while(1){f=J[x>>2];b=jk(p,v,J[r+(J[s+(c<<2)>>2]<<2)>>2],0)+d|0;o=Vi(t,f+b|0,p);b=0;k=0;if((n|0)!=1){while(1){f=m+(a<<2)|0;g=b<<2;e=Q(V(Q(Q(l*Q(N[g+o>>2]-N[i+g>>2]))+Q(.5))));l:{if(Q(R(e))>2]=h;h=g|4;e=Q(V(Q(Q(l*Q(N[h+o>>2]-N[i+h>>2]))+Q(.5))));m:{if(Q(R(e))>2]=g;b=b+2|0;a=a+2|0;k=k+2|0;if((q|0)!=(k|0)){continue}break}}if(j){f=m+(a<<2)|0;b=b<<2;e=Q(V(Q(Q(l*Q(N[b+o>>2]-N[b+i>>2]))+Q(.5))));n:{if(Q(R(e))>2]=b;a=a+1|0}c=c+1|0;if((w|0)!=(c|0)){continue}break}}xj(t);ia=u+16|0;return 1}function Xe(a,b){var c=0,d=0,e=0,f=0,g=0,h=0;d=J[a+4>>2];c=J[a>>2];e=(d-c|0)/144|0;if(e>>>0>>0){c=a;e=b-e|0;f=J[a+8>>2];d=J[a+4>>2];a:{if(e>>>0<=(f-d|0)/144>>>0){b:{if(!e){break b}a=d;f=e&7;if(f){b=0;while(1){kf(a);a=a+144|0;b=b+1|0;if((f|0)!=(b|0)){continue}break}}d=P(e,144)+d|0;if((e-1&268435455)>>>0<7){break b}while(1){kf(a);kf(a+144|0);kf(a+288|0);kf(a+432|0);kf(a+576|0);kf(a+720|0);kf(a+864|0);kf(a+1008|0);a=a+1152|0;if((d|0)!=(a|0)){continue}break}}J[c+4>>2]=d;break a}c:{d:{e:{b=J[c>>2];g=(d-b|0)/144|0;a=g+e|0;if(a>>>0<29826162){d=0;b=(f-b|0)/144|0;f=b<<1;f=b>>>0>=14913080?29826161:a>>>0>>0?f:a;if(f){if(f>>>0>=29826162){break e}h=Aj(P(f,144))}b=P(g,144)+h|0;a=b;g=e&7;if(g){a=b;while(1){kf(a);a=a+144|0;d=d+1|0;if((g|0)!=(d|0)){continue}break}}g=P(e,144)+b|0;if((e-1&268435455)>>>0>=7){while(1){kf(a);kf(a+144|0);kf(a+288|0);kf(a+432|0);kf(a+576|0);kf(a+720|0);kf(a+864|0);kf(a+1008|0);a=a+1152|0;if((g|0)!=(a|0)){continue}break}}e=P(f,144)+h|0;a=J[c+4>>2];d=J[c>>2];if((a|0)==(d|0)){break d}while(1){b=b-144|0;a=a-144|0;J[b>>2]=J[a>>2];J[b+4>>2]=J[a+4>>2];J[b+8>>2]=J[a+8>>2];J[b+12>>2]=J[a+12>>2];J[a+12>>2]=0;J[a+4>>2]=0;J[a+8>>2]=0;J[b+16>>2]=J[a+16>>2];J[b+20>>2]=J[a+20>>2];J[b+24>>2]=J[a+24>>2];J[a+24>>2]=0;J[a+16>>2]=0;J[a+20>>2]=0;f=K[a+28|0];J[b+40>>2]=0;J[b+32>>2]=0;J[b+36>>2]=0;H[b+28|0]=f;J[b+32>>2]=J[a+32>>2];J[b+36>>2]=J[a+36>>2];J[b+40>>2]=J[a+40>>2];J[a+40>>2]=0;J[a+32>>2]=0;J[a+36>>2]=0;J[b+52>>2]=0;J[b+44>>2]=0;J[b+48>>2]=0;J[b+44>>2]=J[a+44>>2];J[b+48>>2]=J[a+48>>2];J[b+52>>2]=J[a+52>>2];J[a+52>>2]=0;J[a+44>>2]=0;J[a+48>>2]=0;f=b- -64|0;J[f>>2]=0;J[b+56>>2]=0;J[b+60>>2]=0;J[b+56>>2]=J[a+56>>2];J[b+60>>2]=J[a+60>>2];h=f;f=a- -64|0;J[h>>2]=J[f>>2];J[f>>2]=0;J[a+56>>2]=0;J[a+60>>2]=0;J[b+68>>2]=J[a+68>>2];f=J[a+72>>2];J[b+84>>2]=0;J[b+76>>2]=0;J[b+80>>2]=0;J[b+72>>2]=f;J[b+76>>2]=J[a+76>>2];J[b+80>>2]=J[a+80>>2];J[b+84>>2]=J[a+84>>2];J[a+84>>2]=0;J[a+76>>2]=0;J[a+80>>2]=0;J[b+96>>2]=0;J[b+88>>2]=0;J[b+92>>2]=0;J[b+88>>2]=J[a+88>>2];J[b+92>>2]=J[a+92>>2];J[b+96>>2]=J[a+96>>2];J[a+96>>2]=0;J[a+88>>2]=0;J[a+92>>2]=0;f=K[a+100|0];J[b+112>>2]=0;J[b+104>>2]=0;J[b+108>>2]=0;H[b+100|0]=f;J[b+104>>2]=J[a+104>>2];J[b+108>>2]=J[a+108>>2];J[b+112>>2]=J[a+112>>2];J[a+112>>2]=0;J[a+104>>2]=0;J[a+108>>2]=0;J[b+124>>2]=0;J[b+116>>2]=0;J[b+120>>2]=0;J[b+116>>2]=J[a+116>>2];J[b+120>>2]=J[a+120>>2];J[b+124>>2]=J[a+124>>2];J[a+124>>2]=0;J[a+116>>2]=0;J[a+120>>2]=0;f=J[a+128>>2];J[b+140>>2]=0;J[b+132>>2]=0;J[b+136>>2]=0;J[b+128>>2]=f;J[b+132>>2]=J[a+132>>2];J[b+136>>2]=J[a+136>>2];J[b+140>>2]=J[a+140>>2];J[a+140>>2]=0;J[a+132>>2]=0;J[a+136>>2]=0;if((a|0)!=(d|0)){continue}break}J[c+8>>2]=e;a=J[c+4>>2];J[c+4>>2]=g;d=J[c>>2];J[c>>2]=b;if((a|0)==(d|0)){break c}while(1){b=a-144|0;c=J[b+132>>2];if(c){J[a-8>>2]=c;xj(c)}c=J[a-28>>2];if(c){J[a-24>>2]=c;xj(c)}c=J[a-40>>2];if(c){J[a-36>>2]=c;xj(c)}df(a-140|0);a=b;if((d|0)!=(a|0)){continue}break}break c}La();C()}Za();C()}J[c+8>>2]=e;J[c+4>>2]=g;J[c>>2]=b}if(d){xj(d)}}return}if(b>>>0>>0){c=c+P(b,144)|0;if((c|0)!=(d|0)){while(1){b=d-144|0;e=J[b+132>>2];if(e){J[d-8>>2]=e;xj(e)}e=J[d-28>>2];if(e){J[d-24>>2]=e;xj(e)}e=J[d-40>>2];if(e){J[d-36>>2]=e;xj(e)}df(d-140|0);d=b;if((b|0)!=(c|0)){continue}break}}J[a+4>>2]=c}}function ne(a,b,c,d){var e=0,f=0,g=0,h=0,i=0,j=0;f=ia-80|0;ia=f;e=J[c+36>>2];J[f+72>>2]=J[c+32>>2];J[f+76>>2]=e;g=J[c+28>>2];e=f- -64|0;J[e>>2]=J[c+24>>2];J[e+4>>2]=g;e=J[c+20>>2];J[f+56>>2]=J[c+16>>2];J[f+60>>2]=e;e=J[c+12>>2];J[f+48>>2]=J[c+8>>2];J[f+52>>2]=e;e=J[c+4>>2];J[f+40>>2]=J[c>>2];J[f+44>>2]=e;dg(a,f+40|0,f+24|0);a:{if(J[a>>2]){break a}if(H[a+15|0]<0){xj(J[a+4>>2])}if(K[f+31|0]){b=Aj(32);H[b+27|0]=0;c=K[1556]|K[1557]<<8|(K[1558]<<16|K[1559]<<24);H[b+23|0]=c;H[b+24|0]=c>>>8;H[b+25|0]=c>>>16;H[b+26|0]=c>>>24;c=K[1553]|K[1554]<<8|(K[1555]<<16|K[1556]<<24);d=K[1549]|K[1550]<<8|(K[1551]<<16|K[1552]<<24);H[b+16|0]=d;H[b+17|0]=d>>>8;H[b+18|0]=d>>>16;H[b+19|0]=d>>>24;H[b+20|0]=c;H[b+21|0]=c>>>8;H[b+22|0]=c>>>16;H[b+23|0]=c>>>24;c=K[1545]|K[1546]<<8|(K[1547]<<16|K[1548]<<24);d=K[1541]|K[1542]<<8|(K[1543]<<16|K[1544]<<24);H[b+8|0]=d;H[b+9|0]=d>>>8;H[b+10|0]=d>>>16;H[b+11|0]=d>>>24;H[b+12|0]=c;H[b+13|0]=c>>>8;H[b+14|0]=c>>>16;H[b+15|0]=c>>>24;c=K[1537]|K[1538]<<8|(K[1539]<<16|K[1540]<<24);d=K[1533]|K[1534]<<8|(K[1535]<<16|K[1536]<<24);H[b|0]=d;H[b+1|0]=d>>>8;H[b+2|0]=d>>>16;H[b+3|0]=d>>>24;H[b+4|0]=c;H[b+5|0]=c>>>8;H[b+6|0]=c>>>16;H[b+7|0]=c>>>24;J[a>>2]=-1;Ej(a+4|0,b,27);xj(b);break a}i=ia-16|0;ia=i;b:{c:{switch(H[f+32|0]){case 0:e=Aj(44);J[e>>2]=0;J[e+4>>2]=0;J[e+40>>2]=0;J[e+32>>2]=0;J[e+36>>2]=0;J[e+24>>2]=0;J[e+28>>2]=0;J[e+16>>2]=0;J[e+20>>2]=0;J[e+8>>2]=0;J[e+12>>2]=0;e=cg(e);J[e>>2]=13544;J[f+8>>2]=0;J[f+12>>2]=0;J[f>>2]=0;J[f+4>>2]=0;J[f+16>>2]=e;break b;case 1:e=Aj(44);J[e>>2]=0;J[e+4>>2]=0;J[e+40>>2]=0;J[e+32>>2]=0;J[e+36>>2]=0;J[e+24>>2]=0;J[e+28>>2]=0;J[e+16>>2]=0;J[e+20>>2]=0;J[e+8>>2]=0;J[e+12>>2]=0;e=cg(e);J[e>>2]=13452;J[f+8>>2]=0;J[f+12>>2]=0;J[f>>2]=0;J[f+4>>2]=0;J[f+16>>2]=e;break b;default:break c}}g=Aj(32);H[g+28|0]=0;e=K[1585]|K[1586]<<8|(K[1587]<<16|K[1588]<<24);H[g+24|0]=e;H[g+25|0]=e>>>8;H[g+26|0]=e>>>16;H[g+27|0]=e>>>24;e=K[1581]|K[1582]<<8|(K[1583]<<16|K[1584]<<24);h=K[1577]|K[1578]<<8|(K[1579]<<16|K[1580]<<24);H[g+16|0]=h;H[g+17|0]=h>>>8;H[g+18|0]=h>>>16;H[g+19|0]=h>>>24;H[g+20|0]=e;H[g+21|0]=e>>>8;H[g+22|0]=e>>>16;H[g+23|0]=e>>>24;e=K[1573]|K[1574]<<8|(K[1575]<<16|K[1576]<<24);h=K[1569]|K[1570]<<8|(K[1571]<<16|K[1572]<<24);H[g+8|0]=h;H[g+9|0]=h>>>8;H[g+10|0]=h>>>16;H[g+11|0]=h>>>24;H[g+12|0]=e;H[g+13|0]=e>>>8;H[g+14|0]=e>>>16;H[g+15|0]=e>>>24;e=K[1565]|K[1566]<<8|(K[1567]<<16|K[1568]<<24);h=K[1561]|K[1562]<<8|(K[1563]<<16|K[1564]<<24);H[g|0]=h;H[g+1|0]=h>>>8;H[g+2|0]=h>>>16;H[g+3|0]=h>>>24;H[g+4|0]=e;H[g+5|0]=e>>>8;H[g+6|0]=e>>>16;H[g+7|0]=e>>>24;J[i>>2]=-1;e=i|4;Ej(e,g,28);j=H[i+15|0];J[f>>2]=J[i>>2];h=f+4|0;d:{if((j|0)>=0){j=J[e+4>>2];J[h>>2]=J[e>>2];J[h+4>>2]=j;J[h+8>>2]=J[e+8>>2];J[f+16>>2]=0;break d}Ej(h,J[i+4>>2],J[i+8>>2]);e=H[i+15|0];J[f+16>>2]=0;if((e|0)>=0){break d}xj(J[i+4>>2])}xj(g)}ia=i+16|0;e=J[f>>2];e:{if(e){J[a>>2]=e;a=a+4|0;if(H[f+15|0]>=0){b=f|4;c=J[b+4>>2];J[a>>2]=J[b>>2];J[a+4>>2]=c;J[a+8>>2]=J[b+8>>2];break e}Ej(a,J[f+4>>2],J[f+8>>2]);break e}e=J[f+16>>2];J[f+16>>2]=0;hg(a,e,b,c,d);if(!J[a>>2]){if(H[a+15|0]<0){xj(J[a+4>>2])}J[a>>2]=0;J[a+4>>2]=0;J[a+8>>2]=0;J[a+12>>2]=0}na[J[J[e>>2]+4>>2]](e)}a=J[f+16>>2];J[f+16>>2]=0;if(a){na[J[J[a>>2]+4>>2]](a)}if(H[f+15|0]>=0){break a}xj(J[f+4>>2])}ia=f+80|0}function Ce(a){a=a|0;var b=0,c=0,d=0,e=0,f=0;b=J[a+32>>2];e=J[b+16>>2];d=J[b+12>>2];c=J[b+20>>2];if(M[b+8>>2]>e>>>0&(d|0)>=(c|0)|(c|0)<(d|0)){f=K[e+J[b>>2]|0];d=e+1|0;c=d?c:c+1|0;J[b+16>>2]=d;J[b+20>>2]=c;b=J[a+48>>2];J[a+48>>2]=0;if(b){na[J[J[b>>2]+4>>2]](b)}a:{b:{c:{d:{switch(f|0){case 0:b=Aj(384);J[b>>2]=11432;Xi(b+4|0,0,80);J[b+96>>2]=0;J[b+100>>2]=0;J[b+92>>2]=-1;J[b+84>>2]=-1;J[b+88>>2]=-1;J[b+104>>2]=0;J[b+108>>2]=0;J[b+112>>2]=0;J[b+116>>2]=0;J[b+120>>2]=0;J[b+124>>2]=0;J[b+128>>2]=0;J[b+132>>2]=0;J[b+136>>2]=0;J[b+140>>2]=0;J[b+144>>2]=0;J[b+148>>2]=0;J[b+156>>2]=0;J[b+160>>2]=0;J[b+152>>2]=1065353216;J[b+164>>2]=0;J[b+168>>2]=0;J[b+172>>2]=0;J[b+176>>2]=0;J[b+180>>2]=0;J[b+184>>2]=0;J[b+188>>2]=0;J[b+192>>2]=0;J[b+196>>2]=0;J[b+200>>2]=0;J[b+204>>2]=0;J[b+208>>2]=0;J[b+212>>2]=-1;J[b+216>>2]=0;J[b+220>>2]=0;J[b+224>>2]=0;rg(b+232|0);rg(b+272|0);c=b+312|0;J[c>>2]=0;J[c+4>>2]=0;H[c+5|0]=0;H[c+6|0]=0;H[c+7|0]=0;H[c+8|0]=0;H[c+9|0]=0;H[c+10|0]=0;H[c+11|0]=0;H[c+12|0]=0;rg(b+328|0);J[b+376>>2]=0;J[b+368>>2]=0;J[b+372>>2]=0;break c;case 1:b=Aj(424);J[b>>2]=11484;Xi(b+4|0,0,80);J[b+96>>2]=0;J[b+100>>2]=0;J[b+92>>2]=-1;J[b+84>>2]=-1;J[b+88>>2]=-1;J[b+104>>2]=0;J[b+108>>2]=0;J[b+112>>2]=0;J[b+116>>2]=0;J[b+120>>2]=0;J[b+124>>2]=0;J[b+128>>2]=0;J[b+132>>2]=0;J[b+136>>2]=0;J[b+140>>2]=0;J[b+144>>2]=0;J[b+148>>2]=0;J[b+156>>2]=0;J[b+160>>2]=0;J[b+152>>2]=1065353216;J[b+164>>2]=0;J[b+168>>2]=0;J[b+172>>2]=0;J[b+176>>2]=0;J[b+180>>2]=0;J[b+184>>2]=0;J[b+188>>2]=0;J[b+192>>2]=0;J[b+196>>2]=0;J[b+200>>2]=0;J[b+204>>2]=0;J[b+208>>2]=0;J[b+212>>2]=-1;J[b+216>>2]=0;J[b+220>>2]=0;J[b+224>>2]=0;rg(b+232|0);rg(b+272|0);c=b+312|0;J[c>>2]=0;J[c+4>>2]=0;H[c+5|0]=0;H[c+6|0]=0;H[c+7|0]=0;H[c+8|0]=0;H[c+9|0]=0;H[c+10|0]=0;H[c+11|0]=0;H[c+12|0]=0;rg(b+328|0);J[b+392>>2]=0;J[b+396>>2]=0;J[b+384>>2]=0;J[b+388>>2]=0;J[b+376>>2]=0;J[b+380>>2]=0;J[b+368>>2]=0;J[b+372>>2]=0;c=b+400|0;J[c>>2]=0;J[c+4>>2]=0;H[c+5|0]=0;H[c+6|0]=0;H[c+7|0]=0;H[c+8|0]=0;H[c+9|0]=0;H[c+10|0]=0;H[c+11|0]=0;H[c+12|0]=0;J[b+416>>2]=-1;J[b+420>>2]=-1;break c;case 2:break d;default:break b}}b=Aj(440);J[b>>2]=11532;Xi(b+4|0,0,80);J[b+96>>2]=0;J[b+100>>2]=0;J[b+92>>2]=-1;J[b+84>>2]=-1;J[b+88>>2]=-1;J[b+104>>2]=0;J[b+108>>2]=0;J[b+112>>2]=0;J[b+116>>2]=0;J[b+120>>2]=0;J[b+124>>2]=0;J[b+128>>2]=0;J[b+132>>2]=0;J[b+136>>2]=0;J[b+140>>2]=0;J[b+144>>2]=0;J[b+148>>2]=0;J[b+156>>2]=0;J[b+160>>2]=0;J[b+152>>2]=1065353216;J[b+164>>2]=0;J[b+168>>2]=0;J[b+172>>2]=0;J[b+176>>2]=0;J[b+180>>2]=0;J[b+184>>2]=0;J[b+188>>2]=0;J[b+192>>2]=0;J[b+196>>2]=0;J[b+200>>2]=0;J[b+204>>2]=0;J[b+208>>2]=0;J[b+212>>2]=-1;J[b+216>>2]=0;J[b+220>>2]=0;J[b+224>>2]=0;rg(b+232|0);rg(b+272|0);c=b+312|0;J[c>>2]=0;J[c+4>>2]=0;H[c+5|0]=0;H[c+6|0]=0;H[c+7|0]=0;H[c+8|0]=0;H[c+9|0]=0;H[c+10|0]=0;H[c+11|0]=0;H[c+12|0]=0;rg(b+328|0);J[b+392>>2]=0;J[b+396>>2]=0;J[b+384>>2]=0;J[b+388>>2]=0;J[b+376>>2]=0;J[b+380>>2]=0;J[b+368>>2]=0;J[b+372>>2]=0;J[b+416>>2]=0;J[b+420>>2]=0;J[b+408>>2]=2;J[b+412>>2]=7;J[b+400>>2]=-1;J[b+404>>2]=-1;J[b+424>>2]=0;J[b+428>>2]=0;J[b+432>>2]=0;J[b+436>>2]=0}c=J[a+48>>2];J[a+48>>2]=b;if(!c){break a}na[J[J[c>>2]+4>>2]](c)}b=J[a+48>>2];if(b){break a}return 0}a=na[J[J[b>>2]+8>>2]](b,a)|0}else{a=0}return a|0}function xd(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0;f=ia-96|0;ia=f;d=J[a+16>>2];H[f+92|0]=1;J[f+88>>2]=b;J[f+84>>2]=b;J[f+80>>2]=d;a:{if((b|0)==-1){break a}l=J[a+20>>2];e=J[l>>2];d=J[J[d>>2]+(b<<2)>>2];if(d>>>0>=J[l+4>>2]-e>>2>>>0){break a}d=J[J[a+8>>2]+(J[e+(d<<2)>>2]<<2)>>2];e=J[a+4>>2];if(!K[e+84|0]){d=J[J[e+68>>2]+(d<<2)>>2]}J[f+72>>2]=0;J[f+76>>2]=0;l=f- -64|0;J[l>>2]=0;J[l+4>>2]=0;J[f+56>>2]=0;J[f+60>>2]=0;_c(e,d,H[e+24|0],f+56|0);d=b+1|0;l=(d>>>0)%3|0?d:b-2|0;i=((b>>>0)%3|0?-1:2)+b|0;b:{c:{while(1){e=l;d=i;d:{if(!J[a+28>>2]){break d}d=b+1|0;e=(d>>>0)%3|0?d:b-2|0;d=b-1|0;if((b>>>0)%3|0){break d}d=b+2|0}if((e|0)==-1){break b}h=J[a+20>>2];b=J[h>>2];e=J[J[J[a+16>>2]>>2]+(e<<2)>>2];if(e>>>0>=J[h+4>>2]-b>>2>>>0){break b}e=J[J[a+8>>2]+(J[(e<<2)+b>>2]<<2)>>2];b=J[a+4>>2];if(!K[b+84|0]){e=J[J[b+68>>2]+(e<<2)>>2]}J[f+48>>2]=0;J[f+52>>2]=0;J[f+40>>2]=0;J[f+44>>2]=0;J[f+32>>2]=0;J[f+36>>2]=0;_c(b,e,H[b+24|0],f+32|0);if((d|0)==-1){break c}e=J[a+20>>2];b=J[e>>2];d=J[J[J[a+16>>2]>>2]+(d<<2)>>2];if(d>>>0>=J[e+4>>2]-b>>2>>>0){break c}e=J[J[a+8>>2]+(J[b+(d<<2)>>2]<<2)>>2];b=J[a+4>>2];if(!K[b+84|0]){e=J[J[b+68>>2]+(e<<2)>>2]}J[f+24>>2]=0;J[f+28>>2]=0;J[f+16>>2]=0;J[f+20>>2]=0;J[f+8>>2]=0;J[f+12>>2]=0;_c(b,e,H[b+24|0],f+8|0);d=J[f+8>>2];b=J[f+56>>2];e=d-b|0;h=J[f+60>>2];j=J[f+12>>2]-(h+(b>>>0>d>>>0)|0)|0;p=J[f+40>>2];d=J[f+64>>2];s=p-d|0;t=J[f+68>>2];p=J[f+44>>2]-(t+(d>>>0>p>>>0)|0)|0;u=jk(e,j,s,p);v=o-u|0;o=g-(ma+(o>>>0>>0)|0)|0;k=v;g=J[f+16>>2];u=g-d|0;t=J[f+20>>2]-((d>>>0>g>>>0)+t|0)|0;g=J[f+32>>2];v=g-b|0;h=J[f+36>>2]-((b>>>0>g>>>0)+h|0)|0;d=jk(u,t,v,h);b=k+d|0;g=ma+o|0;g=b>>>0>>0?g+1|0:g;o=b;x=m;k=e;d=j;b=J[f+48>>2];m=J[f+72>>2];e=b-m|0;j=J[f+76>>2];w=J[f+52>>2]-(j+(b>>>0>>0)|0)|0;k=jk(k,d,e,w);d=x+k|0;b=ma+n|0;b=d>>>0>>0?b+1|0:b;n=J[f+24>>2];k=n-m|0;j=J[f+28>>2]-((m>>>0>n>>>0)+j|0)|0;n=jk(k,j,v,h);m=d-n|0;n=b-(ma+(d>>>0>>0)|0)|0;b=jk(u,t,e,w);d=q-b|0;b=r-(ma+(b>>>0>q>>>0)|0)|0;r=jk(k,j,s,p);q=r+d|0;b=ma+b|0;b=q>>>0>>0?b+1|0:b;r=b;yd(f+80|0);b=J[f+88>>2];if((b|0)!=-1){continue}break}b=r>>31;d=b^q;j=d-b|0;h=(b^r)-((b>>>0>d>>>0)+b|0)|0;p=-1;d=2147483647;b=n>>31;l=b^m;e=(b^n)-((b>>>0>l>>>0)+b|0)|0;b=l-b|0;s=b^-1;i=e^2147483647;k=g;e:{f:{if(!J[a+28>>2]){if((i|0)==(h|0)&j>>>0>s>>>0|i>>>0>>0){break e}i=g;a=b;d=b+j|0;b=e+h|0;b=a>>>0>d>>>0?b+1|0:b;a=g>>31;h=a^o;j=h-a|0;g=d+j|0;e=(a^i)-((a>>>0>h>>>0)+a|0)|0;a=g;g=e^2147483647;g=(g|0)==(b|0)&(j^-1)>>>0>>0|b>>>0>g>>>0;a=g?-1:a;if(!(g&0)&(a|0)<=536870912|(a|0)<536870912){break e}b=0;a=a>>>29|0;break f}g:{if((i|0)==(h|0)&j>>>0>s>>>0|i>>>0>>0){break g}a=b;i=b+j|0;b=e+h|0;b=a>>>0>i>>>0?b+1|0:b;a=i;h=g;e=g>>31;g=e;i=e^o;e=(e^h)-(e+(e>>>0>i>>>0)|0)|0;g=i-g|0;i=e^2147483647;if((i|0)==(b|0)&(g^-1)>>>0>>0|b>>>0>i>>>0){break g}b=b+e|0;a=a+g|0;b=a>>>0>>0?b+1|0:b;p=a;d=b;if(!b&a>>>0<536870913){break e}}b=d>>>29|0;a=(d&536870911)<<3|p>>>29}o=kk(o,k,a,b);m=kk(m,n,a,b);q=kk(q,r,a,b)}J[c+8>>2]=o;J[c+4>>2]=m;J[c>>2]=q;ia=f+96|0;return}Bc();C()}Bc();C()}Bc();C()}function Qi(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0;a:{if((b|0)<0){break a}c=J[a+12>>2];d=J[a+8>>2];if(c-d>>2>>>0<=b>>>0){break a}e=d+(b<<2)|0;d=J[e>>2];i=J[d+60>>2];g=J[d+56>>2];d=e+4|0;b:{if((d|0)!=(c|0)){while(1){h=J[d>>2];J[d>>2]=0;f=J[e>>2];J[e>>2]=h;if(f){tb(f)}e=e+4|0;d=d+4|0;if((d|0)!=(c|0)){continue}break}c=J[a+12>>2];if((e|0)==(c|0)){break b}}while(1){c=c-4|0;d=J[c>>2];J[c>>2]=0;if(d){tb(d)}if((c|0)!=(e|0)){continue}break}}J[a+12>>2]=e;f=J[a+4>>2];c:{if(!f|(i|0)<0){break c}c=J[f+24>>2];d=J[f+28>>2];if((c|0)==(d|0)){break c}while(1){if((i|0)==J[J[c>>2]+24>>2]){e=c+4|0;i=J[f+28>>2];d:{if((e|0)!=(i|0)){while(1){h=J[e>>2];J[e>>2]=0;d=J[c>>2];J[c>>2]=h;if(d){kg(d+12|0,J[d+16>>2]);lg(d,J[d+4>>2]);xj(d)}c=c+4|0;e=e+4|0;if((i|0)!=(e|0)){continue}break}e=J[f+28>>2];if((e|0)==(c|0)){break d}}while(1){e=e-4|0;d=J[e>>2];J[e>>2]=0;if(d){kg(d+12|0,J[d+16>>2]);lg(d,J[d+4>>2]);xj(d)}if((c|0)!=(e|0)){continue}break}}J[f+28>>2]=c;break c}c=c+4|0;if((d|0)!=(c|0)){continue}break}}e:{if((g|0)>4){break e}f:{e=P(g,12)+a|0;c=J[e+20>>2];d=J[e+24>>2];if((c|0)==(d|0)){break f}while(1){if(J[c>>2]==(b|0)){break f}c=c+4|0;if((d|0)!=(c|0)){continue}break}break e}if((c|0)==(d|0)){break e}f=c+4|0;i=d-f|0;if((d|0)!=(f|0)){Wi(c,f,i)}J[e+24>>2]=c+i}c=J[a+24>>2];e=J[a+20>>2];g:{if((c|0)==(e|0)){break g}d=c-e|0;c=d>>2;f=c>>>0<=1?1:c;i=f&1;c=0;if(d>>>0>=8){f=f&-2;d=0;while(1){g=c<<2;h=g+e|0;j=J[h>>2];if((j|0)>(b|0)){J[h>>2]=j-1}g=e+(g|4)|0;h=J[g>>2];if((h|0)>(b|0)){J[g>>2]=h-1}c=c+2|0;d=d+2|0;if((f|0)!=(d|0)){continue}break}}if(!i){break g}c=e+(c<<2)|0;d=J[c>>2];if((d|0)<=(b|0)){break g}J[c>>2]=d-1}c=J[a+36>>2];e=J[a+32>>2];h:{if((c|0)==(e|0)){break h}d=c-e|0;c=d>>2;f=c>>>0<=1?1:c;i=f&1;c=0;if(d>>>0>=8){f=f&-2;d=0;while(1){g=c<<2;h=g+e|0;j=J[h>>2];if((j|0)>(b|0)){J[h>>2]=j-1}g=e+(g|4)|0;h=J[g>>2];if((h|0)>(b|0)){J[g>>2]=h-1}c=c+2|0;d=d+2|0;if((f|0)!=(d|0)){continue}break}}if(!i){break h}c=e+(c<<2)|0;d=J[c>>2];if((d|0)<=(b|0)){break h}J[c>>2]=d-1}c=J[a+48>>2];e=J[a+44>>2];i:{if((c|0)==(e|0)){break i}d=c-e|0;c=d>>2;f=c>>>0<=1?1:c;i=f&1;c=0;if(d>>>0>=8){f=f&-2;d=0;while(1){g=c<<2;h=g+e|0;j=J[h>>2];if((j|0)>(b|0)){J[h>>2]=j-1}g=e+(g|4)|0;h=J[g>>2];if((h|0)>(b|0)){J[g>>2]=h-1}c=c+2|0;d=d+2|0;if((f|0)!=(d|0)){continue}break}}if(!i){break i}c=e+(c<<2)|0;d=J[c>>2];if((d|0)<=(b|0)){break i}J[c>>2]=d-1}c=J[a+60>>2];e=J[a+56>>2];j:{if((c|0)==(e|0)){break j}d=c-e|0;c=d>>2;f=c>>>0<=1?1:c;i=f&1;c=0;if(d>>>0>=8){f=f&-2;d=0;while(1){g=c<<2;h=g+e|0;j=J[h>>2];if((j|0)>(b|0)){J[h>>2]=j-1}g=e+(g|4)|0;h=J[g>>2];if((h|0)>(b|0)){J[g>>2]=h-1}c=c+2|0;d=d+2|0;if((f|0)!=(d|0)){continue}break}}if(!i){break j}c=e+(c<<2)|0;d=J[c>>2];if((d|0)<=(b|0)){break j}J[c>>2]=d-1}c=J[a+72>>2];a=J[a+68>>2];if((c|0)==(a|0)){break a}d=c-a|0;c=d>>2;e=c>>>0<=1?1:c;f=e&1;c=0;if(d>>>0>=8){e=e&-2;d=0;while(1){i=c<<2;g=i+a|0;h=J[g>>2];if((h|0)>(b|0)){J[g>>2]=h-1}i=a+(i|4)|0;g=J[i>>2];if((g|0)>(b|0)){J[i>>2]=g-1}c=c+2|0;d=d+2|0;if((e|0)!=(d|0)){continue}break}}if(!f){break a}d=b;a=a+(c<<2)|0;b=J[a>>2];if((d|0)>=(b|0)){break a}J[a>>2]=b-1}}function xj(a){a=a|0;var b=0,c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0;a:{if(!a){break a}d=a-8|0;b=J[a-4>>2];a=b&-8;f=d+a|0;b:{if(b&1){break b}if(!(b&3)){break a}b=J[d>>2];d=d-b|0;if(d>>>0>>0<=255){e=J[d+8>>2];b=b>>>3|0;c=J[d+12>>2];if((c|0)==(e|0)){i=17248,j=J[4312]&nk(b),J[i>>2]=j;break b}J[e+12>>2]=c;J[c+8>>2]=e;break b}h=J[d+24>>2];b=J[d+12>>2];c:{if((d|0)!=(b|0)){c=J[d+8>>2];J[c+12>>2]=b;J[b+8>>2]=c;break c}d:{e=d+20|0;c=J[e>>2];if(c){break d}e=d+16|0;c=J[e>>2];if(c){break d}b=0;break c}while(1){g=e;b=c;e=b+20|0;c=J[e>>2];if(c){continue}e=b+16|0;c=J[b+16>>2];if(c){continue}break}J[g>>2]=0}if(!h){break b}e=J[d+28>>2];c=(e<<2)+17552|0;e:{if(J[c>>2]==(d|0)){J[c>>2]=b;if(b){break e}i=17252,j=J[4313]&nk(e),J[i>>2]=j;break b}J[h+(J[h+16>>2]==(d|0)?16:20)>>2]=b;if(!b){break b}}J[b+24>>2]=h;c=J[d+16>>2];if(c){J[b+16>>2]=c;J[c+24>>2]=b}c=J[d+20>>2];if(!c){break b}J[b+20>>2]=c;J[c+24>>2]=b;break b}b=J[f+4>>2];if((b&3)!=3){break b}J[4314]=a;J[f+4>>2]=b&-2;J[d+4>>2]=a|1;J[a+d>>2]=a;return}if(d>>>0>=f>>>0){break a}b=J[f+4>>2];if(!(b&1)){break a}f:{if(!(b&2)){if(J[4318]==(f|0)){J[4318]=d;a=J[4315]+a|0;J[4315]=a;J[d+4>>2]=a|1;if(J[4317]!=(d|0)){break a}J[4314]=0;J[4317]=0;return}if(J[4317]==(f|0)){J[4317]=d;a=J[4314]+a|0;J[4314]=a;J[d+4>>2]=a|1;J[a+d>>2]=a;return}a=(b&-8)+a|0;g:{if(b>>>0<=255){e=J[f+8>>2];b=b>>>3|0;c=J[f+12>>2];if((c|0)==(e|0)){i=17248,j=J[4312]&nk(b),J[i>>2]=j;break g}J[e+12>>2]=c;J[c+8>>2]=e;break g}h=J[f+24>>2];b=J[f+12>>2];h:{if((f|0)!=(b|0)){c=J[f+8>>2];J[c+12>>2]=b;J[b+8>>2]=c;break h}i:{e=f+20|0;c=J[e>>2];if(c){break i}e=f+16|0;c=J[e>>2];if(c){break i}b=0;break h}while(1){g=e;b=c;e=b+20|0;c=J[e>>2];if(c){continue}e=b+16|0;c=J[b+16>>2];if(c){continue}break}J[g>>2]=0}if(!h){break g}e=J[f+28>>2];c=(e<<2)+17552|0;j:{if(J[c>>2]==(f|0)){J[c>>2]=b;if(b){break j}i=17252,j=J[4313]&nk(e),J[i>>2]=j;break g}J[h+(J[h+16>>2]==(f|0)?16:20)>>2]=b;if(!b){break g}}J[b+24>>2]=h;c=J[f+16>>2];if(c){J[b+16>>2]=c;J[c+24>>2]=b}c=J[f+20>>2];if(!c){break g}J[b+20>>2]=c;J[c+24>>2]=b}J[d+4>>2]=a|1;J[a+d>>2]=a;if(J[4317]!=(d|0)){break f}J[4314]=a;return}J[f+4>>2]=b&-2;J[d+4>>2]=a|1;J[a+d>>2]=a}if(a>>>0<=255){b=(a&-8)+17288|0;c=J[4312];a=1<<(a>>>3);k:{if(!(c&a)){J[4312]=a|c;a=b;break k}a=J[b+8>>2]}J[b+8>>2]=d;J[a+12>>2]=d;J[d+12>>2]=b;J[d+8>>2]=a;return}e=31;if(a>>>0<=16777215){b=a>>>8|0;g=b+1048320>>>16&8;b=b<>>16&4;b=b<>>16&2;b=(b<>>15|0)-(c|(e|g))|0;e=(b<<1|a>>>b+21&1)+28|0}J[d+28>>2]=e;J[d+16>>2]=0;J[d+20>>2]=0;g=(e<<2)+17552|0;l:{m:{c=J[4313];b=1<>2]=d;J[d+24>>2]=g;break n}e=a<<((e|0)!=31?25-(e>>>1|0)|0:0);b=J[g>>2];while(1){c=b;if((J[b+4>>2]&-8)==(a|0)){break m}b=e>>>29|0;e=e<<1;g=c+(b&4)|0;b=J[g+16>>2];if(b){continue}break}J[g+16>>2]=d;J[d+24>>2]=c}J[d+12>>2]=d;J[d+8>>2]=d;break l}a=J[c+8>>2];J[a+12>>2]=d;J[c+8>>2]=d;J[d+24>>2]=0;J[d+12>>2]=c;J[d+8>>2]=a}a=J[4320]-1|0;J[4320]=a?a:-1}}function gf(a,b,c,d){var e=0,f=0,g=0,h=0,i=0,j=0,k=Q(0),l=0,m=0,n=Q(0);j=J[c>>2];a:{b:{f=J[b+4>>2];if(!f){break b}g=mk(f);c:{if(g>>>0>=2){e=j;if(e>>>0>=f>>>0){e=(j>>>0)%(f>>>0)|0}c=J[J[b>>2]+(e<<2)>>2];if(!c){break b}if(g>>>0<=1){break c}while(1){c=J[c>>2];if(!c){break b}g=J[c+4>>2];if((g|0)!=(j|0)){if(f>>>0<=g>>>0){g=(g>>>0)%(f>>>0)|0}if((e|0)!=(g|0)){break b}}if(J[c+8>>2]!=(j|0)){continue}break}b=0;break a}e=f-1&j;c=J[J[b>>2]+(e<<2)>>2];if(!c){break b}}g=f-1|0;while(1){c=J[c>>2];if(!c){break b}h=J[c+4>>2];if((h|0)!=(j|0)&(g&h)!=(e|0)){break b}if(J[c+8>>2]!=(j|0)){continue}break}b=0;break a}c=Aj(16);d=J[J[d>>2]>>2];J[c+12>>2]=0;J[c+8>>2]=d;J[c+4>>2]=j;J[c>>2]=0;n=Q(J[b+12>>2]+1>>>0);k=N[b+16>>2];d:{if(n>Q(k*Q(f>>>0))?0:f){break d}e=2;g=(f-1&f)!=0|f>>>0<3|f<<1;k=Q(W(Q(n/k)));e:{if(k=Q(0)){d=~~k>>>0;break e}d=0}d=d>>>0>>0?g:d;f:{if((d|0)==1){break f}if(!(d&d-1)){e=d;break f}e=tj(d);f=J[b+4>>2]}g:{if(e>>>0<=f>>>0){if(e>>>0>=f>>>0){break g}g=f>>>0<3;k=Q(W(Q(Q(M[b+12>>2])/N[b+16>>2])));h:{if(k=Q(0)){d=~~k>>>0;break h}d=0}i:{j:{if(g){break j}if(mk(f)>>>0>1){break j}d=d>>>0<2?d:1<<32-S(d-1|0);break i}d=tj(d)}e=d>>>0>>0?e:d;if(e>>>0>=f>>>0){break g}}f=0;h=e;k:{l:{m:{n:{if(e){if(h>>>0>=1073741824){break n}e=Aj(h<<2);d=J[b>>2];J[b>>2]=e;if(d){xj(d)}J[b+4>>2]=h;e=0;if(h>>>0>=4){g=h&-4;while(1){d=e<<2;J[d+J[b>>2]>>2]=0;J[J[b>>2]+(d|4)>>2]=0;J[J[b>>2]+(d|8)>>2]=0;J[J[b>>2]+(d|12)>>2]=0;e=e+4|0;f=f+4|0;if((g|0)!=(f|0)){continue}break}}d=h&3;if(d){while(1){J[J[b>>2]+(e<<2)>>2]=0;e=e+1|0;i=i+1|0;if((d|0)!=(i|0)){continue}break}}f=J[b+8>>2];if(!f){break k}d=b+8|0;g=J[f+4>>2];e=mk(h);if(e>>>0<2){break m}g=g>>>0>=h>>>0?(g>>>0)%(h>>>0)|0:g;J[J[b>>2]+(g<<2)>>2]=d;d=J[f>>2];if(!d){break k}if(e>>>0<=1){break l}while(1){i=J[d+4>>2];if(h>>>0<=i>>>0){i=(i>>>0)%(h>>>0)|0}o:{if((g|0)==(i|0)){f=d;break o}e=d;l=i<<2;m=l+J[b>>2]|0;if(!J[m>>2]){J[m>>2]=f;f=d;g=i;break o}while(1){i=e;e=J[e>>2];if(J[d+8>>2]==J[e+8>>2]?e:0){continue}break}J[f>>2]=e;J[i>>2]=J[J[l+J[b>>2]>>2]>>2];J[J[l+J[b>>2]>>2]>>2]=d}d=J[f>>2];if(d){continue}break}break k}d=J[b>>2];J[b>>2]=0;if(d){xj(d)}J[b+4>>2]=0;break k}Za();C()}g=h-1&g;J[J[b>>2]+(g<<2)>>2]=d;d=J[f>>2];if(!d){break k}}l=h-1|0;while(1){h=l&J[d+4>>2];p:{if((h|0)==(g|0)){f=d;break p}e=d;i=h<<2;m=i+J[b>>2]|0;if(J[m>>2]){while(1){h=e;e=J[e>>2];if(J[d+8>>2]==J[e+8>>2]?e:0){continue}break}J[f>>2]=e;J[h>>2]=J[J[i+J[b>>2]>>2]>>2];J[J[i+J[b>>2]>>2]>>2]=d;break p}J[m>>2]=f;f=d;g=h}d=J[f>>2];if(d){continue}break}}}f=J[b+4>>2];d=f-1|0;if(!(d&f)){e=d&j;break d}if(f>>>0>j>>>0){e=j;break d}e=(j>>>0)%(f>>>0)|0}e=J[b>>2]+(e<<2)|0;d=J[e>>2];q:{r:{if(!d){d=b+8|0;J[c>>2]=J[d>>2];J[b+8>>2]=c;J[e>>2]=d;d=J[c>>2];if(!d){break q}d=J[d+4>>2];e=f-1|0;s:{if(!(e&f)){d=d&e;break s}if(d>>>0>>0){break s}d=(d>>>0)%(f>>>0)|0}d=J[b>>2]+(d<<2)|0;break r}J[c>>2]=J[d>>2]}J[d>>2]=c}J[b+12>>2]=J[b+12>>2]+1;b=1}H[a+4|0]=b;J[a>>2]=c}function Di(a){var b=0,c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0;J[a+56>>2]=J[a+52>>2];J[a+44>>2]=J[a+40>>2];d=J[a+64>>2];c=J[d+24>>2];if((c|0)==J[d+28>>2]){return 1}a:{b:{c:{while(1){e=b;c=J[(j<<2)+c>>2];d:{if((c|0)==-1){break d}b=J[a+56>>2];e:{if((b|0)!=J[a+60>>2]){J[b>>2]=e;J[a+56>>2]=b+4;break e}d=J[a+52>>2];h=b-d|0;g=h>>2;b=g+1|0;if(b>>>0>=1073741824){break c}f=h>>1;f=h>>>0>=2147483644?1073741823:b>>>0>>0?f:b;if(f){if(f>>>0>=1073741824){break b}b=Aj(f<<2)}else{b=0}g=b+(g<<2)|0;J[g>>2]=e;if((h|0)>0){Vi(b,d,h)}J[a+60>>2]=b+(f<<2);J[a+56>>2]=g+4;J[a+52>>2]=b;if(!d){break e}xj(d)}f:{g:{if(!(J[J[a+12>>2]+(j>>>3&536870908)>>2]>>>j&1)){break g}b=c+1|0;b=(b>>>0)%3|0?b:c-2|0;if((b|0)==-1|J[J[a>>2]+(b>>>3&536870908)>>2]>>>b&1){break g}b=J[J[J[a+64>>2]+12>>2]+(b<<2)>>2];if((b|0)==-1){break g}h=b+1|0;d=(h>>>0)%3|0?h:b-2|0;if((d|0)==-1){break g}f=J[a+64>>2];g=J[a>>2];while(1){h=d;d=-1;b=h+1|0;b=(b>>>0)%3|0?b:h-2|0;h:{if((b|0)==-1|J[g+(b>>>3&536870908)>>2]>>>b&1){break h}b=J[J[f+12>>2]+(b<<2)>>2];if((b|0)==-1){break h}d=b+1|0;d=(d>>>0)%3|0?d:b-2|0}if((d|0)!=(c|0)){if((d|0)==-1){break f}continue}break}return 0}h=c}J[J[a+28>>2]+(h<<2)>>2]=e;b=J[a+44>>2];i:{if((b|0)!=J[a+48>>2]){J[b>>2]=h;J[a+44>>2]=b+4;break i}c=J[a+40>>2];d=b-c|0;g=d>>2;b=g+1|0;if(b>>>0>=1073741824){break a}f=d>>1;f=d>>>0>=2147483644?1073741823:b>>>0>>0?f:b;if(f){if(f>>>0>=1073741824){break b}b=Aj(f<<2)}else{b=0}g=b+(g<<2)|0;J[g>>2]=h;if((d|0)>0){Vi(b,c,d)}J[a+48>>2]=b+(f<<2);J[a+44>>2]=g+4;J[a+40>>2]=b;if(!c){break i}xj(c)}b=e+1|0;d=J[a+64>>2];j:{if((h>>>0)%3|0){c=h-1|0;break j}c=h+2|0;if((c|0)==-1){break d}}c=J[J[d+12>>2]+(c<<2)>>2];if((c|0)==-1){break d}c=c+((c>>>0)%3|0?-1:2)|0;if((c|0)==-1|(c|0)==(h|0)){break d}while(1){d=c+1|0;d=(d>>>0)%3|0?d:c-2|0;if(J[J[a>>2]+(d>>>3&536870908)>>2]>>>d&1){e=J[a+56>>2];k:{if((e|0)!=J[a+60>>2]){J[e>>2]=b;J[a+56>>2]=e+4;break k}f=J[a+52>>2];d=e-f|0;i=d>>2;e=i+1|0;if(e>>>0>=1073741824){break c}g=d>>1;g=d>>>0>=2147483644?1073741823:e>>>0>>0?g:e;if(g){if(g>>>0>=1073741824){break b}e=Aj(g<<2)}else{e=0}i=e+(i<<2)|0;J[i>>2]=b;if((d|0)>0){Vi(e,f,d)}J[a+60>>2]=e+(g<<2);J[a+56>>2]=i+4;J[a+52>>2]=e;if(!f){break k}xj(f)}d=b+1|0;e=J[a+44>>2];l:{if((e|0)!=J[a+48>>2]){J[e>>2]=c;J[a+44>>2]=e+4;break l}g=J[a+40>>2];f=e-g|0;k=f>>2;e=k+1|0;if(e>>>0>=1073741824){break a}i=f>>1;i=f>>>0>=2147483644?1073741823:e>>>0>>0?i:e;if(i){if(i>>>0>=1073741824){break b}e=Aj(i<<2)}else{e=0}k=e+(k<<2)|0;J[k>>2]=c;if((f|0)>0){Vi(e,g,f)}J[a+48>>2]=e+(i<<2);J[a+44>>2]=k+4;J[a+40>>2]=e;if(!g){break l}xj(g)}e=b;b=d}J[J[a+28>>2]+(c<<2)>>2]=e;d=J[a+64>>2];m:{if((c>>>0)%3|0){c=c-1|0;break m}c=c+2|0;if((c|0)==-1){break d}}c=J[J[d+12>>2]+(c<<2)>>2];if((c|0)==-1){break d}c=c+((c>>>0)%3|0?-1:2)|0;if((c|0)==-1){break d}if((c|0)!=(h|0)){continue}break}}j=j+1|0;c=J[d+24>>2];if(j>>>0>2]-c>>2>>>0){continue}break}return 1}La();C()}Za();C()}La();C()}function id(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0;J[a+8>>2]=e;n=a+32|0;h=J[n>>2];f=J[a+36>>2]-h>>2;a:{if(f>>>0>>0){Oa(n,e-f|0);d=J[a+8>>2];break a}d=e;if(d>>>0>=f>>>0){break a}J[a+36>>2]=h+(e<<2);d=e}s=J[a+52>>2];p=J[a+48>>2];f=0;h=e>>>0>1073741823?-1:e<<2;m=Xi(Aj(h),0,h);b:{if((d|0)<=0){break b}g=J[a+32>>2];while(1){d=f<<2;h=J[d+m>>2];j=J[a+16>>2];c:{if((h|0)>(j|0)){J[d+g>>2]=j;break c}d=d+g|0;j=J[a+12>>2];if((j|0)>(h|0)){J[d>>2]=j;break c}J[d>>2]=h}d=J[a+8>>2];f=f+1|0;if((d|0)>(f|0)){continue}break}if((d|0)<=0){break b}f=0;while(1){h=f<<2;d=h+c|0;h=J[b+h>>2]+J[g+h>>2]|0;J[d>>2]=h;d:{if((h|0)>J[a+16>>2]){i=h-J[a+20>>2]|0}else{if((h|0)>=J[a+12>>2]){break d}i=h+J[a+20>>2]|0}J[d>>2]=i}d=J[a+8>>2];f=f+1|0;if((d|0)>(f|0)){continue}break}}f=J[a+56>>2];q=J[f>>2];f=J[f+4>>2]-q|0;if((f|0)>=5){o=f>>>2|0;t=o>>>0<=2?2:o;u=e&-2;v=e&1;h=1;while(1){e:{f:{if((h|0)!=(o|0)){r=P(e,h);f=J[(h<<2)+q>>2];if((f|0)==-1){break f}f=J[J[p+12>>2]+(f<<2)>>2];if((f|0)==-1){break f}j=J[s>>2];g=J[p>>2];k=J[j+(J[g+(f<<2)>>2]<<2)>>2];i=f+1|0;i=(i>>>0)%3|0?i:f-2|0;if((i|0)!=-1){i=J[g+(i<<2)>>2]}else{i=-1}g:{h:{if((f>>>0)%3|0){f=f-1|0;break h}f=f+2|0;l=-1;if((f|0)==-1){break g}}l=J[g+(f<<2)>>2]}if((h|0)<=(k|0)){break f}f=J[(i<<2)+j>>2];if((f|0)>=(h|0)){break f}g=J[j+(l<<2)>>2];if((g|0)>=(h|0)){break f}i:{if((e|0)<=0){break i}g=P(e,g);j=P(e,f);k=P(e,k);f=0;l=0;if((e|0)!=1){while(1){J[(f<<2)+m>>2]=(J[(f+g<<2)+c>>2]+J[(f+j<<2)+c>>2]|0)-J[(f+k<<2)+c>>2];i=f|1;J[(i<<2)+m>>2]=(J[(g+i<<2)+c>>2]+J[(j+i<<2)+c>>2]|0)-J[(i+k<<2)+c>>2];f=f+2|0;l=l+2|0;if((u|0)!=(l|0)){continue}break}}if(!v){break i}J[(f<<2)+m>>2]=(J[(f+g<<2)+c>>2]+J[(f+j<<2)+c>>2]|0)-J[(f+k<<2)+c>>2]}if((d|0)<=0){break e}j=J[n>>2];f=0;while(1){d=f<<2;g=J[d+m>>2];k=J[a+16>>2];j:{if((g|0)>(k|0)){J[d+j>>2]=k;break j}d=d+j|0;k=J[a+12>>2];if((k|0)>(g|0)){J[d>>2]=k;break j}J[d>>2]=g}d=J[a+8>>2];f=f+1|0;if((d|0)>(f|0)){continue}break}f=0;if((d|0)<=0){break e}d=r<<2;k=d+c|0;i=b+d|0;while(1){g=f<<2;d=g+k|0;g=J[g+i>>2]+J[g+j>>2]|0;J[d>>2]=g;k:{if((g|0)>J[a+16>>2]){l=g-J[a+20>>2]|0}else{if((g|0)>=J[a+12>>2]){break k}l=g+J[a+20>>2]|0}J[d>>2]=l}d=J[a+8>>2];f=f+1|0;if((d|0)>(f|0)){continue}break}break e}Bc();C()}if((d|0)<=0){break e}k=(P(h-1|0,e)<<2)+c|0;j=J[n>>2];f=0;while(1){d=f<<2;g=J[d+k>>2];i=J[a+16>>2];l:{if((g|0)>(i|0)){J[d+j>>2]=i;break l}d=d+j|0;i=J[a+12>>2];if((i|0)>(g|0)){J[d>>2]=i;break l}J[d>>2]=g}d=J[a+8>>2];f=f+1|0;if((d|0)>(f|0)){continue}break}f=0;if((d|0)<=0){break e}d=r<<2;k=d+c|0;i=b+d|0;while(1){g=f<<2;d=g+k|0;g=J[g+i>>2]+J[g+j>>2]|0;J[d>>2]=g;m:{if((g|0)>J[a+16>>2]){l=g-J[a+20>>2]|0}else{if((g|0)>=J[a+12>>2]){break m}l=g+J[a+20>>2]|0}J[d>>2]=l}d=J[a+8>>2];f=f+1|0;if((d|0)>(f|0)){continue}break}}h=h+1|0;if((t|0)!=(h|0)){continue}break}}xj(m);return 1} +function Ac(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0;J[a+8>>2]=e;m=a+32|0;h=J[m>>2];f=J[a+36>>2]-h>>2;a:{if(f>>>0>>0){Oa(m,e-f|0);d=J[a+8>>2];break a}d=e;if(d>>>0>=f>>>0){break a}J[a+36>>2]=h+(e<<2);d=e}s=J[a+52>>2];n=J[a+48>>2];f=0;h=e>>>0>1073741823?-1:e<<2;l=Xi(Aj(h),0,h);b:{if((d|0)<=0){break b}g=J[a+32>>2];while(1){d=f<<2;h=J[d+l>>2];i=J[a+16>>2];c:{if((h|0)>(i|0)){J[d+g>>2]=i;break c}d=d+g|0;i=J[a+12>>2];if((i|0)>(h|0)){J[d>>2]=i;break c}J[d>>2]=h}d=J[a+8>>2];f=f+1|0;if((d|0)>(f|0)){continue}break}if((d|0)<=0){break b}f=0;while(1){h=f<<2;d=h+c|0;h=J[b+h>>2]+J[g+h>>2]|0;J[d>>2]=h;d:{if((h|0)>J[a+16>>2]){h=h-J[a+20>>2]|0}else{if((h|0)>=J[a+12>>2]){break d}h=h+J[a+20>>2]|0}J[d>>2]=h}d=J[a+8>>2];f=f+1|0;if((d|0)>(f|0)){continue}break}}f=J[a+56>>2];q=J[f>>2];f=J[f+4>>2]-q|0;if((f|0)>=5){o=f>>>2|0;t=o>>>0<=2?2:o;u=e&-2;v=e&1;h=1;while(1){e:{f:{if((h|0)!=(o|0)){r=P(e,h);f=J[(h<<2)+q>>2];if((f|0)==-1|J[J[n>>2]+(f>>>3&536870908)>>2]>>>f&1){break f}f=J[J[J[n+64>>2]+12>>2]+(f<<2)>>2];if((f|0)==-1){break f}i=J[s>>2];g=J[n+28>>2];k=J[i+(J[g+(f<<2)>>2]<<2)>>2];if((k|0)>=(h|0)){break f}j=f+1|0;j=J[i+(J[g+(((j>>>0)%3|0?j:f-2|0)<<2)>>2]<<2)>>2];if((j|0)>=(h|0)){break f}f=J[i+(J[g+(f+((f>>>0)%3|0?-1:2)<<2)>>2]<<2)>>2];if((f|0)>=(h|0)){break f}g:{if((e|0)<=0){break g}g=P(e,f);i=P(e,j);k=P(e,k);f=0;p=0;if((e|0)!=1){while(1){J[(f<<2)+l>>2]=(J[(f+g<<2)+c>>2]+J[(f+i<<2)+c>>2]|0)-J[(f+k<<2)+c>>2];j=f|1;J[(j<<2)+l>>2]=(J[(g+j<<2)+c>>2]+J[(i+j<<2)+c>>2]|0)-J[(k+j<<2)+c>>2];f=f+2|0;p=p+2|0;if((u|0)!=(p|0)){continue}break}}if(!v){break g}J[(f<<2)+l>>2]=(J[(f+g<<2)+c>>2]+J[(f+i<<2)+c>>2]|0)-J[(f+k<<2)+c>>2]}if((d|0)<=0){break e}i=J[m>>2];f=0;while(1){d=f<<2;g=J[d+l>>2];k=J[a+16>>2];h:{if((g|0)>(k|0)){J[d+i>>2]=k;break h}d=d+i|0;k=J[a+12>>2];if((k|0)>(g|0)){J[d>>2]=k;break h}J[d>>2]=g}d=J[a+8>>2];f=f+1|0;if((d|0)>(f|0)){continue}break}f=0;if((d|0)<=0){break e}d=r<<2;k=d+c|0;j=b+d|0;while(1){g=f<<2;d=g+k|0;g=J[g+j>>2]+J[g+i>>2]|0;J[d>>2]=g;i:{if((g|0)>J[a+16>>2]){g=g-J[a+20>>2]|0}else{if((g|0)>=J[a+12>>2]){break i}g=g+J[a+20>>2]|0}J[d>>2]=g}d=J[a+8>>2];f=f+1|0;if((d|0)>(f|0)){continue}break}break e}Bc();C()}if((d|0)<=0){break e}k=(P(h-1|0,e)<<2)+c|0;i=J[m>>2];f=0;while(1){d=f<<2;g=J[d+k>>2];j=J[a+16>>2];j:{if((g|0)>(j|0)){J[d+i>>2]=j;break j}d=d+i|0;j=J[a+12>>2];if((j|0)>(g|0)){J[d>>2]=j;break j}J[d>>2]=g}d=J[a+8>>2];f=f+1|0;if((d|0)>(f|0)){continue}break}f=0;if((d|0)<=0){break e}d=r<<2;k=d+c|0;j=b+d|0;while(1){g=f<<2;d=g+k|0;g=J[g+j>>2]+J[g+i>>2]|0;J[d>>2]=g;k:{if((g|0)>J[a+16>>2]){g=g-J[a+20>>2]|0}else{if((g|0)>=J[a+12>>2]){break k}g=g+J[a+20>>2]|0}J[d>>2]=g}d=J[a+8>>2];f=f+1|0;if((d|0)>(f|0)){continue}break}}h=h+1|0;if((t|0)!=(h|0)){continue}break}}xj(l);return 1}function oe(a,b,c,d){var e=0,f=0,g=0,h=0,i=0,j=0;f=ia-80|0;ia=f;e=J[c+36>>2];J[f+72>>2]=J[c+32>>2];J[f+76>>2]=e;g=J[c+28>>2];e=f- -64|0;J[e>>2]=J[c+24>>2];J[e+4>>2]=g;e=J[c+20>>2];J[f+56>>2]=J[c+16>>2];J[f+60>>2]=e;e=J[c+12>>2];J[f+48>>2]=J[c+8>>2];J[f+52>>2]=e;e=J[c+4>>2];J[f+40>>2]=J[c>>2];J[f+44>>2]=e;dg(a,f+40|0,f+24|0);a:{if(J[a>>2]){break a}if(H[a+15|0]<0){xj(J[a+4>>2])}if(K[f+31|0]!=1){b=Aj(32);H[b+20|0]=0;c=K[1483]|K[1484]<<8|(K[1485]<<16|K[1486]<<24);H[b+16|0]=c;H[b+17|0]=c>>>8;H[b+18|0]=c>>>16;H[b+19|0]=c>>>24;c=K[1479]|K[1480]<<8|(K[1481]<<16|K[1482]<<24);d=K[1475]|K[1476]<<8|(K[1477]<<16|K[1478]<<24);H[b+8|0]=d;H[b+9|0]=d>>>8;H[b+10|0]=d>>>16;H[b+11|0]=d>>>24;H[b+12|0]=c;H[b+13|0]=c>>>8;H[b+14|0]=c>>>16;H[b+15|0]=c>>>24;c=K[1471]|K[1472]<<8|(K[1473]<<16|K[1474]<<24);d=K[1467]|K[1468]<<8|(K[1469]<<16|K[1470]<<24);H[b|0]=d;H[b+1|0]=d>>>8;H[b+2|0]=d>>>16;H[b+3|0]=d>>>24;H[b+4|0]=c;H[b+5|0]=c>>>8;H[b+6|0]=c>>>16;H[b+7|0]=c>>>24;J[a>>2]=-1;Ej(a+4|0,b,20);xj(b);break a}i=ia-16|0;ia=i;b:{c:{switch(K[f+32|0]){case 0:e=ye(Aj(48));J[e>>2]=13160;J[f+8>>2]=0;J[f+12>>2]=0;J[f>>2]=0;J[f+4>>2]=0;J[f+16>>2]=e;break b;case 1:e=ye(Aj(52));J[e+48>>2]=0;J[e>>2]=11324;J[f+8>>2]=0;J[f+12>>2]=0;J[f>>2]=0;J[f+4>>2]=0;J[f+16>>2]=e;break b;default:break c}}g=Aj(32);H[g+28|0]=0;e=K[1585]|K[1586]<<8|(K[1587]<<16|K[1588]<<24);H[g+24|0]=e;H[g+25|0]=e>>>8;H[g+26|0]=e>>>16;H[g+27|0]=e>>>24;e=K[1581]|K[1582]<<8|(K[1583]<<16|K[1584]<<24);h=K[1577]|K[1578]<<8|(K[1579]<<16|K[1580]<<24);H[g+16|0]=h;H[g+17|0]=h>>>8;H[g+18|0]=h>>>16;H[g+19|0]=h>>>24;H[g+20|0]=e;H[g+21|0]=e>>>8;H[g+22|0]=e>>>16;H[g+23|0]=e>>>24;e=K[1573]|K[1574]<<8|(K[1575]<<16|K[1576]<<24);h=K[1569]|K[1570]<<8|(K[1571]<<16|K[1572]<<24);H[g+8|0]=h;H[g+9|0]=h>>>8;H[g+10|0]=h>>>16;H[g+11|0]=h>>>24;H[g+12|0]=e;H[g+13|0]=e>>>8;H[g+14|0]=e>>>16;H[g+15|0]=e>>>24;e=K[1565]|K[1566]<<8|(K[1567]<<16|K[1568]<<24);h=K[1561]|K[1562]<<8|(K[1563]<<16|K[1564]<<24);H[g|0]=h;H[g+1|0]=h>>>8;H[g+2|0]=h>>>16;H[g+3|0]=h>>>24;H[g+4|0]=e;H[g+5|0]=e>>>8;H[g+6|0]=e>>>16;H[g+7|0]=e>>>24;J[i>>2]=-1;e=i|4;Ej(e,g,28);j=H[i+15|0];J[f>>2]=J[i>>2];h=f+4|0;d:{if((j|0)>=0){j=J[e+4>>2];J[h>>2]=J[e>>2];J[h+4>>2]=j;J[h+8>>2]=J[e+8>>2];J[f+16>>2]=0;break d}Ej(h,J[i+4>>2],J[i+8>>2]);e=H[i+15|0];J[f+16>>2]=0;if((e|0)>=0){break d}xj(J[i+4>>2])}xj(g)}ia=i+16|0;e=J[f>>2];e:{if(e){J[a>>2]=e;a=a+4|0;if(H[f+15|0]>=0){b=f|4;c=J[b+4>>2];J[a>>2]=J[b>>2];J[a+4>>2]=c;J[a+8>>2]=J[b+8>>2];break e}Ej(a,J[f+4>>2],J[f+8>>2]);break e}e=J[f+16>>2];J[f+16>>2]=0;J[e+44>>2]=d;hg(a,e,b,c,d);if(!J[a>>2]){if(H[a+15|0]<0){xj(J[a+4>>2])}J[a>>2]=0;J[a+4>>2]=0;J[a+8>>2]=0;J[a+12>>2]=0}na[J[J[e>>2]+4>>2]](e)}a=J[f+16>>2];J[f+16>>2]=0;if(a){na[J[J[a>>2]+4>>2]](a)}if(H[f+15|0]>=0){break a}xj(J[f+4>>2])}ia=f+80|0}function Wf(a,b){var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0;if((b|0)==-1){return 1}c=(b>>>0)/3|0;if(!(J[J[a+24>>2]+(c>>>3&268435452)>>2]>>>c&1)){d=J[a+48>>2];J[a+52>>2]=d;a:{if((d|0)!=J[a+56>>2]){J[d>>2]=b;J[a+52>>2]=d+4;break a}e=Aj(4);J[e>>2]=b;f=e+4|0;J[a+56>>2]=f;J[a+52>>2]=f;J[a+48>>2]=e;if(!d){break a}xj(d)}f=J[J[a+4>>2]+28>>2];d=b+1|0;e=(d>>>0)%3|0?d:b-2|0;d=J[f+(e<<2)>>2];if((d|0)==-1){return 0}g=(b-P(c,3)|0?-1:2)+b|0;c=J[f+(g<<2)>>2];if((c|0)==-1){return 0}b=J[a+36>>2];f=b+(d>>>3&536870908)|0;h=J[f>>2];i=1<>2]=h|i;Hf(a+8|0,d,e);b=J[a+36>>2]}b=(c>>>3&536870908)+b|0;d=J[b>>2];e=1<>2]=d|e;Hf(a+8|0,c,g)}c=J[a+52>>2];if((c|0)==J[a+48>>2]){return 1}k=a+8|0;while(1){b:{c:{c=c-4|0;b=J[c>>2];if((b|0)==-1){break c}d=(b>>>0)/3|0;e=J[a+24>>2]+(d>>>3&268435452)|0;f=J[e>>2];d=1<>2]=d|f;e=J[a+4>>2];d=J[J[e+28>>2]+(b<<2)>>2];if((d|0)==-1){return 0}while(1){c=b;d:{e:{f=J[a+36>>2]+(d>>>3&536870908)|0;g=J[f>>2];h=1<>2]+(d<<2)>>2];g:{if((b|0)==-1){break g}i=b+1|0;b=(i>>>0)%3|0?i:b-2|0;if((b|0)==-1|J[J[e>>2]+(b>>>3&536870908)>>2]>>>b&1){break g}b=J[J[J[e+64>>2]+12>>2]+(b<<2)>>2];if((b|0)!=-1){break f}}J[f>>2]=g|h;Hf(k,d,c);break e}J[f>>2]=g|h;Hf(k,d,c);d=b+1|0;if((((d>>>0)%3|0?d:b-2|0)|0)==-1){break e}b=-1;e=J[a+4>>2];h:{if((c|0)==-1){break h}d=c+1|0;d=(d>>>0)%3|0?d:c-2|0;if((d|0)==-1|J[J[e>>2]+(d>>>3&536870908)>>2]>>>d&1){break h}b=J[J[J[e+64>>2]+12>>2]+(d<<2)>>2]}d=(b>>>0)/3|0;h=1<>2];i=d>>>5|0;f=J[c+(i<<2)>>2];break d}i:{j:{if((c|0)==-1){break j}d=-1;b=c+1|0;b=(b>>>0)%3|0?b:c-2|0;e=J[a+4>>2];if(!((b|0)==-1|J[J[e>>2]+(b>>>3&536870908)>>2]>>>b&1)){d=J[J[J[e+64>>2]+12>>2]+(b<<2)>>2]}k:{l:{if((c>>>0)%3|0){c=c-1|0;break l}c=c+2|0;b=-1;if((c|0)==-1){break k}}b=-1;if(J[J[e>>2]+(c>>>3&536870908)>>2]>>>c&1){break k}b=J[J[J[e+64>>2]+12>>2]+(c<<2)>>2]}j=(b|0)==-1;g=j?-1:(b>>>0)/3|0;if((d|0)!=-1){c=J[a+24>>2];h=(d>>>0)/3|0;i=h>>>5|0;f=J[c+(i<<2)>>2];h=1<>2];i=g>>>5|0;f=J[c+(i<<2)>>2];if(!(h&f)){break d}}c=J[a+52>>2]-4|0;J[a+52>>2]=c;break b}if(j){b=d;break d}if(J[(g>>>3&536870908)+c>>2]>>>g&1){b=d;break d}c=J[a+52>>2];J[c-4>>2]=b;if((c|0)!=J[a+56>>2]){J[c>>2]=d;c=c+4|0;break c}m:{f=J[a+48>>2];e=c-f|0;c=e>>2;b=c+1|0;if(b>>>0<1073741824){g=e>>1;g=e>>>0>=2147483644?1073741823:b>>>0>>0?g:b;if(g){if(g>>>0>=1073741824){break m}b=Aj(g<<2)}else{b=0}c=b+(c<<2)|0;J[c>>2]=d;c=c+4|0;if((e|0)>0){Vi(b,f,e)}J[a+56>>2]=b+(g<<2);J[a+52>>2]=c;J[a+48>>2]=b;if(!f){break b}xj(f);c=J[a+52>>2];break b}La();C()}Za();C()}J[(i<<2)+c>>2]=f|h;d=J[J[e+28>>2]+(b<<2)>>2];if((d|0)!=-1){continue}break}return 0}J[a+52>>2]=c}if(J[a+48>>2]!=(c|0)){continue}break}}return 1}function Rb(a){var b=0,c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0;f=ia-32|0;ia=f;a:{b:{c:{d:{b=J[a+16>>2];if(b>>>0>=341){J[a+16>>2]=b-341;b=J[a+4>>2];k=J[b>>2];c=b+4|0;J[a+4>>2]=c;b=J[a+8>>2];e:{if((b|0)!=J[a+12>>2]){d=b;break e}h=J[a>>2];if(h>>>0>>0){g=b-c|0;e=((c-h>>2)+1|0)/-2<<2;d=e+c|0;if((b|0)!=(c|0)){Wi(d,c,g);c=J[a+4>>2]}d=d+g|0;J[a+8>>2]=d;J[a+4>>2]=c+e;break e}d=(b|0)==(h|0)?1:b-h>>1;if(d>>>0>=1073741824){break d}e=d<<2;i=Aj(e);l=e+i|0;e=i+(d&-4)|0;d=e;f:{if((b|0)==(c|0)){break f}b=b-c|0;m=b&-4;j=b-4|0;g=(j>>>2|0)+1&7;g:{if(!g){b=e;break g}d=0;b=e;while(1){J[b>>2]=J[c>>2];c=c+4|0;b=b+4|0;d=d+1|0;if((g|0)!=(d|0)){continue}break}}d=e+m|0;if(j>>>0<28){break f}while(1){J[b>>2]=J[c>>2];J[b+4>>2]=J[c+4>>2];J[b+8>>2]=J[c+8>>2];J[b+12>>2]=J[c+12>>2];J[b+16>>2]=J[c+16>>2];J[b+20>>2]=J[c+20>>2];J[b+24>>2]=J[c+24>>2];J[b+28>>2]=J[c+28>>2];c=c+32|0;b=b+32|0;if((d|0)!=(b|0)){continue}break}}J[a+12>>2]=l;J[a+8>>2]=d;J[a+4>>2]=e;J[a>>2]=i;if(!h){break e}xj(h);d=J[a+8>>2]}J[d>>2]=k;J[a+8>>2]=J[a+8>>2]+4;break a}b=J[a+8>>2];d=b-J[a+4>>2]>>2;g=J[a+12>>2];c=J[a>>2];e=g-c|0;if(d>>>0>2>>>0){if((b|0)!=(g|0)){n=f,o=Aj(4092),J[n+8>>2]=o;Sb(a,f+8|0);break a}n=f,o=Aj(4092),J[n+8>>2]=o;Tb(a,f+8|0);b=J[a+4>>2];k=J[b>>2];c=b+4|0;J[a+4>>2]=c;b=J[a+8>>2];h:{if((b|0)!=J[a+12>>2]){d=b;break h}h=J[a>>2];if(h>>>0>>0){g=b-c|0;e=((c-h>>2)+1|0)/-2<<2;d=e+c|0;if((b|0)!=(c|0)){Wi(d,c,g);c=J[a+4>>2]}d=d+g|0;J[a+8>>2]=d;J[a+4>>2]=c+e;break h}d=(b|0)==(h|0)?1:b-h>>1;if(d>>>0>=1073741824){break d}e=d<<2;i=Aj(e);l=e+i|0;e=i+(d&-4)|0;d=e;i:{if((b|0)==(c|0)){break i}b=b-c|0;m=b&-4;j=b-4|0;g=(j>>>2|0)+1&7;j:{if(!g){b=e;break j}d=0;b=e;while(1){J[b>>2]=J[c>>2];c=c+4|0;b=b+4|0;d=d+1|0;if((g|0)!=(d|0)){continue}break}}d=e+m|0;if(j>>>0<28){break i}while(1){J[b>>2]=J[c>>2];J[b+4>>2]=J[c+4>>2];J[b+8>>2]=J[c+8>>2];J[b+12>>2]=J[c+12>>2];J[b+16>>2]=J[c+16>>2];J[b+20>>2]=J[c+20>>2];J[b+24>>2]=J[c+24>>2];J[b+28>>2]=J[c+28>>2];c=c+32|0;b=b+32|0;if((d|0)!=(b|0)){continue}break}}J[a+12>>2]=l;J[a+8>>2]=d;J[a+4>>2]=e;J[a>>2]=i;if(!h){break h}xj(h);d=J[a+8>>2]}J[d>>2]=k;J[a+8>>2]=J[a+8>>2]+4;break a}J[f+24>>2]=a+12;b=(c|0)==(g|0)?1:e>>1;if(b>>>0>=1073741824){break d}e=b<<2;c=Aj(e);J[f+8>>2]=c;b=c+(d<<2)|0;J[f+16>>2]=b;J[f+20>>2]=c+e;J[f+12>>2]=b;n=f,o=Aj(4092),J[n+4>>2]=o;Sb(f+8|0,f+4|0);c=J[a+8>>2];if((c|0)==J[a+4>>2]){b=c;break b}while(1){c=c-4|0;Tb(f+8|0,c);if(J[a+4>>2]!=(c|0)){continue}break}break c}Za();C()}b=J[a+8>>2]}d=J[a>>2];J[a>>2]=J[f+8>>2];J[f+8>>2]=d;J[a+4>>2]=J[f+12>>2];J[f+12>>2]=c;J[a+8>>2]=J[f+16>>2];J[f+16>>2]=b;e=J[a+12>>2];J[a+12>>2]=J[f+20>>2];J[f+20>>2]=e;if((b|0)!=(c|0)){J[f+16>>2]=b+((c-b|0)+3&-4)}if(!d){break a}xj(d)}ia=f+32|0}function Ic(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0;i=ia-32|0;ia=i;a:{if(L[b+38>>1]<=513){c=J[b+20>>2];h=J[b+12>>2];d=J[b+16>>2];if((c|0)>=(h|0)&d>>>0>=M[b+8>>2]|(c|0)>(h|0)){break a}h=K[d+J[b>>2]|0];d=d+1|0;c=d?c:c+1|0;J[b+16>>2]=d;J[b+20>>2]=c;if(h){break a}}b:{if(!Jc(1,i+28|0,b)){break b}d=J[i+28>>2];c=J[J[a+48>>2]+64>>2];if(d>>>0>J[c+4>>2]-J[c>>2]>>2>>>0){break b}c:{if(d){Kc(a+60|0,d);c=i+8|0;J[c>>2]=0;J[c+4>>2]=0;H[c+5|0]=0;H[c+6|0]=0;H[c+7|0]=0;H[c+8|0]=0;H[c+9|0]=0;H[c+10|0]=0;H[c+11|0]=0;H[c+12|0]=0;if(!je(c,b)){break c}while(1){h=1<>2]+(e>>>3&536870908)|0;if(f){f=h|J[g>>2]}else{f=J[g>>2]&(h^-1)}J[g>>2]=f;e=e+1|0;if((d|0)!=(e|0)){continue}break}}if(!Jc(1,i+28|0,b)){break b}d=J[i+28>>2];c=J[J[a+48>>2]+64>>2];if(d>>>0>J[c+4>>2]-J[c>>2]>>2>>>0){break b}if(d){e=0;Kc(a+72|0,d);c=i+8|0;J[c>>2]=0;J[c+4>>2]=0;H[c+5|0]=0;H[c+6|0]=0;H[c+7|0]=0;H[c+8|0]=0;H[c+9|0]=0;H[c+10|0]=0;H[c+11|0]=0;H[c+12|0]=0;if(!je(c,b)){break c}while(1){h=1<>2]+(e>>>3&536870908)|0;if(f){f=h|J[g>>2]}else{f=J[g>>2]&(h^-1)}J[g>>2]=f;e=e+1|0;if((d|0)!=(e|0)){continue}break}}if(!Jc(1,i+28|0,b)){break b}d=J[i+28>>2];c=J[J[a+48>>2]+64>>2];if(d>>>0>J[c+4>>2]-J[c>>2]>>2>>>0){break b}if(d){e=0;Kc(a+84|0,d);c=i+8|0;J[c>>2]=0;J[c+4>>2]=0;H[c+5|0]=0;H[c+6|0]=0;H[c+7|0]=0;H[c+8|0]=0;H[c+9|0]=0;H[c+10|0]=0;H[c+11|0]=0;H[c+12|0]=0;if(!je(c,b)){break c}while(1){h=1<>2]+(e>>>3&536870908)|0;if(f){f=h|J[g>>2]}else{f=J[g>>2]&(h^-1)}J[g>>2]=f;e=e+1|0;if((d|0)!=(e|0)){continue}break}}if(!Jc(1,i+28|0,b)){break b}d=J[i+28>>2];c=J[J[a+48>>2]+64>>2];if(d>>>0>J[c+4>>2]-J[c>>2]>>2>>>0){break b}if(d){e=0;Kc(a+96|0,d);c=i+8|0;J[c>>2]=0;J[c+4>>2]=0;H[c+5|0]=0;H[c+6|0]=0;H[c+7|0]=0;H[c+8|0]=0;H[c+9|0]=0;H[c+10|0]=0;H[c+11|0]=0;H[c+12|0]=0;if(!je(c,b)){break c}while(1){h=1<>2]+(e>>>3&536870908)|0;if(f){f=h|J[g>>2]}else{f=J[g>>2]&(h^-1)}J[g>>2]=f;e=e+1|0;if((d|0)!=(e|0)){continue}break}}e=0;d=J[b+12>>2];h=d;c=J[b+20>>2];g=c;f=J[b+16>>2];j=f+4|0;c=j>>>0<4?c+1|0:c;k=J[b+8>>2];if(k>>>0>>0&(c|0)>=(d|0)|(c|0)>(d|0)){break a}l=J[b>>2];d=l+f|0;d=K[d|0]|K[d+1|0]<<8|(K[d+2|0]<<16|K[d+3|0]<<24);J[b+16>>2]=j;J[b+20>>2]=c;c=g;g=f+8|0;c=g>>>0<8?c+1|0:c;f=g;g=c;if(f>>>0>k>>>0&(c|0)>=(h|0)|(c|0)>(h|0)){break a}c=j+l|0;c=K[c|0]|K[c+1|0]<<8|(K[c+2|0]<<16|K[c+3|0]<<24);J[b+16>>2]=f;J[b+20>>2]=g;if((c|0)<(d|0)){break a}J[a+16>>2]=c;J[a+12>>2]=d;b=(c>>31)-((d>>31)+(c>>>0>>0)|0)|0;c=c-d|0;if(!b&c>>>0>2147483646|b){break a}e=1;b=c+1|0;J[a+20>>2]=b;c=b>>>1|0;J[a+24>>2]=c;J[a+28>>2]=0-c;if(b&1){break a}J[a+24>>2]=c-1;break a}}e=0}ia=i+32|0;return e|0}function md(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0;i=ia-32|0;ia=i;a:{if(L[b+38>>1]<=513){c=J[b+20>>2];h=J[b+12>>2];d=J[b+16>>2];if((c|0)>=(h|0)&d>>>0>=M[b+8>>2]|(c|0)>(h|0)){break a}h=K[d+J[b>>2]|0];d=d+1|0;c=d?c:c+1|0;J[b+16>>2]=d;J[b+20>>2]=c;if(h){break a}}b:{if(!Jc(1,i+28|0,b)){break b}d=J[i+28>>2];c=J[a+48>>2];if(d>>>0>J[c+4>>2]-J[c>>2]>>2>>>0){break b}c:{if(d){Kc(a+60|0,d);c=i+8|0;J[c>>2]=0;J[c+4>>2]=0;H[c+5|0]=0;H[c+6|0]=0;H[c+7|0]=0;H[c+8|0]=0;H[c+9|0]=0;H[c+10|0]=0;H[c+11|0]=0;H[c+12|0]=0;if(!je(c,b)){break c}while(1){h=1<>2]+(e>>>3&536870908)|0;if(f){f=h|J[g>>2]}else{f=J[g>>2]&(h^-1)}J[g>>2]=f;e=e+1|0;if((d|0)!=(e|0)){continue}break}}if(!Jc(1,i+28|0,b)){break b}d=J[i+28>>2];c=J[a+48>>2];if(d>>>0>J[c+4>>2]-J[c>>2]>>2>>>0){break b}if(d){e=0;Kc(a+72|0,d);c=i+8|0;J[c>>2]=0;J[c+4>>2]=0;H[c+5|0]=0;H[c+6|0]=0;H[c+7|0]=0;H[c+8|0]=0;H[c+9|0]=0;H[c+10|0]=0;H[c+11|0]=0;H[c+12|0]=0;if(!je(c,b)){break c}while(1){h=1<>2]+(e>>>3&536870908)|0;if(f){f=h|J[g>>2]}else{f=J[g>>2]&(h^-1)}J[g>>2]=f;e=e+1|0;if((d|0)!=(e|0)){continue}break}}if(!Jc(1,i+28|0,b)){break b}d=J[i+28>>2];c=J[a+48>>2];if(d>>>0>J[c+4>>2]-J[c>>2]>>2>>>0){break b}if(d){e=0;Kc(a+84|0,d);c=i+8|0;J[c>>2]=0;J[c+4>>2]=0;H[c+5|0]=0;H[c+6|0]=0;H[c+7|0]=0;H[c+8|0]=0;H[c+9|0]=0;H[c+10|0]=0;H[c+11|0]=0;H[c+12|0]=0;if(!je(c,b)){break c}while(1){h=1<>2]+(e>>>3&536870908)|0;if(f){f=h|J[g>>2]}else{f=J[g>>2]&(h^-1)}J[g>>2]=f;e=e+1|0;if((d|0)!=(e|0)){continue}break}}if(!Jc(1,i+28|0,b)){break b}d=J[i+28>>2];c=J[a+48>>2];if(d>>>0>J[c+4>>2]-J[c>>2]>>2>>>0){break b}if(d){e=0;Kc(a+96|0,d);c=i+8|0;J[c>>2]=0;J[c+4>>2]=0;H[c+5|0]=0;H[c+6|0]=0;H[c+7|0]=0;H[c+8|0]=0;H[c+9|0]=0;H[c+10|0]=0;H[c+11|0]=0;H[c+12|0]=0;if(!je(c,b)){break c}while(1){h=1<>2]+(e>>>3&536870908)|0;if(f){f=h|J[g>>2]}else{f=J[g>>2]&(h^-1)}J[g>>2]=f;e=e+1|0;if((d|0)!=(e|0)){continue}break}}e=0;d=J[b+12>>2];h=d;c=J[b+20>>2];g=c;f=J[b+16>>2];j=f+4|0;c=j>>>0<4?c+1|0:c;k=J[b+8>>2];if(k>>>0>>0&(c|0)>=(d|0)|(c|0)>(d|0)){break a}l=J[b>>2];d=l+f|0;d=K[d|0]|K[d+1|0]<<8|(K[d+2|0]<<16|K[d+3|0]<<24);J[b+16>>2]=j;J[b+20>>2]=c;c=g;g=f+8|0;c=g>>>0<8?c+1|0:c;f=g;g=c;if(f>>>0>k>>>0&(c|0)>=(h|0)|(c|0)>(h|0)){break a}c=j+l|0;c=K[c|0]|K[c+1|0]<<8|(K[c+2|0]<<16|K[c+3|0]<<24);J[b+16>>2]=f;J[b+20>>2]=g;if((c|0)<(d|0)){break a}J[a+16>>2]=c;J[a+12>>2]=d;b=(c>>31)-((d>>31)+(c>>>0>>0)|0)|0;c=c-d|0;if(!b&c>>>0>2147483646|b){break a}e=1;b=c+1|0;J[a+20>>2]=b;c=b>>>1|0;J[a+24>>2]=c;J[a+28>>2]=0-c;if(b&1){break a}J[a+24>>2]=c-1;break a}}e=0}ia=i+32|0;return e|0}function Fi(a,b,c){var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0;i=P(b,12)+a|0;J[i+12>>2]=J[i+8>>2];j=(c|0)==-1?-1:(c>>>0)/3|0;l=1;k=c;a:{b:{c:{while(1){d:{n=e&1;if(n){if((k|0)==-1){break d}if((Gi(a,((k>>>0)%3|0?-1:2)+k|0)|0)==-1){break a}c=k+1|0;c=(c>>>0)%3|0?c:k-2|0;if((c|0)==-1){break a}e=c+1|0;c=(e>>>0)%3|0?e:c-2|0;if((c|0)==-1){break a}c=J[J[J[a+4>>2]+12>>2]+(c<<2)>>2];if((c|0)==-1){break a}e=c+1|0;c=(e>>>0)%3|0?e:c-2|0;if((c|0)==-1){break a}j=(c>>>0)/3|0}d=J[a+56>>2]+(j>>>3&536870908)|0;g=J[d>>2];f=1<>2]=g|f;d=J[i+12>>2];f:{if((d|0)!=J[i+16>>2]){J[d>>2]=j;J[i+12>>2]=d+4;break f}g=J[i+8>>2];h=d-g|0;m=h>>2;d=m+1|0;if(d>>>0>=1073741824){break c}f=h>>1;f=h>>>0>=2147483644?1073741823:d>>>0>>0?f:d;if(f){if(f>>>0>=1073741824){break b}d=Aj(f<<2)}else{d=0}m=d+(m<<2)|0;J[m>>2]=j;if((h|0)>0){Vi(d,g,h)}J[i+8>>2]=d;J[i+12>>2]=m+4;J[i+16>>2]=d+(f<<2);if(!g){break f}xj(g)}h=e+1|0;g:{h:{i:{if(!e){break i}if(h&1){if((c|0)==-1){c=-1;break g}e=c+1|0;c=(e>>>0)%3|0?e:c-2|0;break i}k=n?c:k;if((c|0)==-1){c=-1;break g}if((c>>>0)%3|0){e=c-1|0;break h}c=c+2|0}d=c;c=-1;e=d;if((d|0)==-1){break g}}c=J[J[J[a+4>>2]+12>>2]+(e<<2)>>2];d=-1;g=-1;f=e+1|0;f=(f>>>0)%3|0?f:e-2|0;if((f|0)>=0){g=(f>>>0)/3|0;g=J[(J[J[a>>2]+96>>2]+P(g,12)|0)+(f-P(g,3)<<2)>>2]}j:{if((c|0)==-1){break j}f=((c>>>0)%3|0?-1:2)+c|0;if((f|0)<0){break j}d=(f>>>0)/3|0;d=J[(J[J[a>>2]+96>>2]+P(d,12)|0)+(f-P(d,3)<<2)>>2]}if((d|0)!=(g|0)){c=-1;break g}k:{l:{e=((e>>>0)%3|0?-1:2)+e|0;if((e|0)>=0){d=(e>>>0)/3|0;if((c|0)!=-1){break l}c=-1;break g}e=-1;if((c|0)!=-1){break k}c=-1;break g}e=J[(J[J[a>>2]+96>>2]+P(d,12)|0)+(e-P(d,3)<<2)>>2]}d=c+1|0;d=(d>>>0)%3|0?d:c-2|0;if((d|0)>=0){g=(d>>>0)/3|0;d=J[(J[J[a>>2]+96>>2]+P(g,12)|0)+(d-P(g,3)<<2)>>2]}else{d=-1}if((d|0)!=(e|0)){c=-1;break g}e=h;j=(c>>>0)/3|0;d=J[a+56>>2]+(j>>>3&268435452)|0;g=J[d>>2];f=1<>2]-4|0;d=J[e>>2];h=J[a+56>>2]+(d>>>3&536870908)|0;g=J[h>>2];o=h,p=nk(d)&g,J[o>>2]=p;J[i+12>>2]=e}e=1;d=l;l=0;if(d){continue}break a}break}k=-1;Gi(a,-1);break a}La();C()}Za();C()}J[((b<<2)+a|0)+44>>2]=k;c=J[i+12>>2];b=J[i+8>>2];m:{if((c|0)==(b|0)){break m}e=c-b|0;c=e>>2;d=c>>>0<=1?1:c;k=d&1;a=J[a+56>>2];c=0;if(e>>>0>=8){e=d&-2;j=0;while(1){d=c<<2;h=J[d+b>>2];l=a+(h>>>3&536870908)|0;i=J[l>>2];o=l,p=nk(h)&i,J[o>>2]=p;d=J[b+(d|4)>>2];h=a+(d>>>3&536870908)|0;l=J[h>>2];o=h,p=nk(d)&l,J[o>>2]=p;c=c+2|0;j=j+2|0;if((e|0)!=(j|0)){continue}break}}if(!k){break m}b=J[b+(c<<2)>>2];a=a+(b>>>3&536870908)|0;c=J[a>>2];o=a,p=nk(b)&c,J[o>>2]=p}}function Qf(a,b){var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0;if((b|0)==-1){return 1}d=(b>>>0)/3|0;if(!(J[J[a+24>>2]+(d>>>3&268435452)>>2]>>>d&1)){c=J[a+48>>2];J[a+52>>2]=c;a:{if((c|0)!=J[a+56>>2]){J[c>>2]=b;J[a+52>>2]=c+4;break a}e=Aj(4);J[e>>2]=b;f=e+4|0;J[a+56>>2]=f;J[a+52>>2]=f;J[a+48>>2]=e;if(!c){break a}xj(c)}e=-1;f=J[a+4>>2];c=b+1|0;g=(c>>>0)%3|0?c:b-2|0;if((g|0)!=-1){e=J[J[f>>2]+(g<<2)>>2]}b:{h=b-P(d,3)|0;if(h){c=b-1|0;break b}c=b+2|0;if((c|0)!=-1){break b}return 0}if((e|0)==-1){return 0}d=J[J[f>>2]+(c<<2)>>2];if((d|0)==-1){return 0}c=J[a+36>>2];f=c+(e>>>3&536870908)|0;i=J[f>>2];j=1<>2]=i|j;Hf(a+8|0,e,g);c=J[a+36>>2]}c=(d>>>3&536870908)+c|0;e=J[c>>2];f=1<>2]=e|f;Hf(a+8|0,d,(h?-1:2)+b|0)}c=J[a+52>>2];if((c|0)==J[a+48>>2]){return 1}j=a+8|0;while(1){c:{d:{c=c-4|0;b=J[c>>2];if((b|0)==-1){break d}d=(b>>>0)/3|0;e=J[a+24>>2]+(d>>>3&268435452)|0;f=J[e>>2];d=1<>2]=d|f;while(1){d=J[a+4>>2];c=J[J[d>>2]+(b<<2)>>2];if((c|0)==-1){return 0}e:{f:{e=J[a+36>>2]+(c>>>3&536870908)|0;f=J[e>>2];g=1<>2]+(c<<2)>>2];h:{if((h|0)==-1){break h}i=h+1|0;h=(i>>>0)%3|0?i:h-2|0;if((h|0)==-1){break h}d=J[J[d+12>>2]+(h<<2)>>2];if((d|0)!=-1){break g}}J[e>>2]=f|g;Hf(j,c,b);break f}J[e>>2]=f|g;Hf(j,c,b);c=d+1|0;if((((c>>>0)%3|0?c:d-2|0)|0)==-1){break f}d=b-2|0;c=b+1|0;b=-1;c=(c>>>0)%3|0?c:d;if((c|0)!=-1){b=J[J[J[a+4>>2]+12>>2]+(c<<2)>>2]}c=(b>>>0)/3|0;g=1<>2];h=c>>>5|0;d=J[e+(h<<2)>>2];break e}c=-1;f=J[a+4>>2];d=b+1|0;d=(d>>>0)%3|0?d:b-2|0;if((d|0)!=-1){c=J[J[f+12>>2]+(d<<2)>>2]}i:{j:{if((b>>>0)%3|0){e=b-1|0;break j}e=b+2|0;b=-1;if((e|0)==-1){break i}}b=J[J[f+12>>2]+(e<<2)>>2]}i=(b|0)==-1;f=i?-1:(b>>>0)/3|0;k:{if((c|0)!=-1){e=J[a+24>>2];g=(c>>>0)/3|0;h=g>>>5|0;d=J[e+(h<<2)>>2];g=1<>2];h=f>>>5|0;d=J[e+(h<<2)>>2];if(!(g&d)){break e}}c=J[a+52>>2]-4|0;J[a+52>>2]=c;break c}if(i){b=c;break e}if(J[(f>>>3&536870908)+e>>2]>>>f&1){b=c;break e}d=J[a+52>>2];J[d-4>>2]=b;if((d|0)!=J[a+56>>2]){J[d>>2]=c;c=d+4|0;break d}l:{e=J[a+48>>2];d=d-e|0;g=d>>2;b=g+1|0;if(b>>>0<1073741824){f=d>>1;f=d>>>0>=2147483644?1073741823:b>>>0>>0?f:b;if(f){if(f>>>0>=1073741824){break l}b=Aj(f<<2)}else{b=0}g=b+(g<<2)|0;J[g>>2]=c;c=g+4|0;if((d|0)>0){Vi(b,e,d)}J[a+56>>2]=b+(f<<2);J[a+52>>2]=c;J[a+48>>2]=b;if(!e){break c}xj(e);c=J[a+52>>2];break c}La();C()}Za();C()}J[(h<<2)+e>>2]=d|g;if((b|0)!=-1){continue}break}return 0}J[a+52>>2]=c}if(J[a+48>>2]!=(c|0)){continue}break}}return 1}function wd(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0;g=ia-32|0;ia=g;J[a+68>>2]=f;d=J[a+56>>2];e=J[d>>2];d=J[d+4>>2];J[g+24>>2]=0;J[g+16>>2]=0;J[g+20>>2]=0;a:{d=d-e|0;if((d|0)>0){m=a+60|0;d=d>>>2|0;n=d>>>0<=1?1:d;o=a+112|0;while(1){e=J[a+56>>2];d=J[e>>2];if(J[e+4>>2]-d>>2>>>0<=k>>>0){break a}xd(m,J[d+(k<<2)>>2],g+16|0);e=J[g+20>>2];d=e>>31;f=J[g+16>>2];h=f>>31;j=J[g+24>>2];i=j>>31;i=(i^j)-i|0;h=i+((d^e)-d+((f^h)-h)|0)|0;d=0;d=h>>>0>>0?1:d;b:{if(!(d|h)){J[g+16>>2]=J[a+108>>2];break b}i=J[a+108>>2];l=i>>31;f=kk(jk(i,l,f,f>>31),ma,h,d);J[g+16>>2]=f;d=kk(jk(i,l,e,e>>31),ma,h,d);J[g+20>>2]=d;e=d;d=d>>31;e=(e^d)-d|0;d=f>>31;d=e+((d^f)-d|0)|0;if((j|0)>=0){J[g+24>>2]=i-d;break b}J[g+24>>2]=d-i}d=le(o);f=J[g+16>>2];c:{if(d){J[g+24>>2]=0-J[g+24>>2];e=0-J[g+20>>2]|0;J[g+20>>2]=e;f=0-f|0;J[g+16>>2]=f;break c}e=J[g+20>>2]}d:{if((f|0)>=0){f=J[a+108>>2];d=f+J[g+24>>2]|0;f=e+f|0;break d}e:{if((e|0)<0){d=J[g+24>>2];f=d>>31;f=(d^f)-f|0;break e}d=J[g+24>>2];f=d>>31;f=J[a+100>>2]+(f-(d^f)|0)|0}if((d|0)<0){d=e>>31;d=(d^e)-d|0;break d}d=e>>31;d=J[a+100>>2]+(d-(d^e)|0)|0}e=J[a+100>>2];f:{if(!(d|f)){d=e;f=d;break f}if(!((d|0)!=(e|0)|f)){f=d;break f}if(!((e|0)!=(f|0)|d)){d=f;break f}g:{if(f){break g}h=J[a+108>>2];if((h|0)>=(d|0)){break g}d=(h<<1)-d|0;f=0;break f}h:{if((e|0)!=(f|0)){break h}h=J[a+108>>2];if((h|0)<=(d|0)){break h}d=(h<<1)-d|0;break f}i:{if((d|0)!=(e|0)){break i}e=J[a+108>>2];if((e|0)<=(f|0)){break i}f=(e<<1)-f|0;break f}if(d){break f}d=0;e=J[a+108>>2];if((e|0)>=(f|0)){break f}f=(e<<1)-f|0}J[g+12>>2]=d;J[g+8>>2]=f;j:{if(J[a+8>>2]<=0){break j}h=J[a+32>>2];f=0;while(1){d=f<<2;e=J[d+(g+8|0)>>2];j=J[a+16>>2];k:{if((e|0)>(j|0)){J[d+h>>2]=j;break k}d=d+h|0;j=J[a+12>>2];if((j|0)>(e|0)){J[d>>2]=j;break k}J[d>>2]=e}f=f+1|0;e=J[a+8>>2];if((f|0)<(e|0)){continue}break}d=0;if((e|0)<=0){break j}e=k<<3;j=e+c|0;i=b+e|0;while(1){f=d<<2;e=f+j|0;f=J[f+i>>2]+J[f+h>>2]|0;J[e>>2]=f;l:{if((f|0)>J[a+16>>2]){f=f-J[a+20>>2]|0}else{if((f|0)>=J[a+12>>2]){break l}f=f+J[a+20>>2]|0}J[e>>2]=f}d=d+1|0;if((d|0)>2]){continue}break}}k=k+1|0;if((n|0)!=(k|0)){continue}break}}ia=g+32|0;return 1}Bc();C()}function fd(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0;g=ia-32|0;ia=g;J[a+68>>2]=f;d=J[a+56>>2];e=J[d>>2];d=J[d+4>>2];J[g+24>>2]=0;J[g+16>>2]=0;J[g+20>>2]=0;a:{d=d-e|0;if((d|0)>0){m=a+60|0;d=d>>>2|0;n=d>>>0<=1?1:d;o=a+112|0;while(1){e=J[a+56>>2];d=J[e>>2];if(J[e+4>>2]-d>>2>>>0<=k>>>0){break a}gd(m,J[d+(k<<2)>>2],g+16|0);e=J[g+20>>2];d=e>>31;f=J[g+16>>2];h=f>>31;j=J[g+24>>2];i=j>>31;i=(i^j)-i|0;h=i+((d^e)-d+((f^h)-h)|0)|0;d=0;d=h>>>0>>0?1:d;b:{if(!(d|h)){J[g+16>>2]=J[a+108>>2];break b}i=J[a+108>>2];l=i>>31;f=kk(jk(i,l,f,f>>31),ma,h,d);J[g+16>>2]=f;d=kk(jk(i,l,e,e>>31),ma,h,d);J[g+20>>2]=d;e=d;d=d>>31;e=(e^d)-d|0;d=f>>31;d=e+((d^f)-d|0)|0;if((j|0)>=0){J[g+24>>2]=i-d;break b}J[g+24>>2]=d-i}d=le(o);f=J[g+16>>2];c:{if(d){J[g+24>>2]=0-J[g+24>>2];e=0-J[g+20>>2]|0;J[g+20>>2]=e;f=0-f|0;J[g+16>>2]=f;break c}e=J[g+20>>2]}d:{if((f|0)>=0){f=J[a+108>>2];d=f+J[g+24>>2]|0;f=e+f|0;break d}e:{if((e|0)<0){d=J[g+24>>2];f=d>>31;f=(d^f)-f|0;break e}d=J[g+24>>2];f=d>>31;f=J[a+100>>2]+(f-(d^f)|0)|0}if((d|0)<0){d=e>>31;d=(d^e)-d|0;break d}d=e>>31;d=J[a+100>>2]+(d-(d^e)|0)|0}e=J[a+100>>2];f:{if(!(d|f)){d=e;f=d;break f}if(!((d|0)!=(e|0)|f)){f=d;break f}if(!((e|0)!=(f|0)|d)){d=f;break f}g:{if(f){break g}h=J[a+108>>2];if((h|0)>=(d|0)){break g}d=(h<<1)-d|0;f=0;break f}h:{if((e|0)!=(f|0)){break h}h=J[a+108>>2];if((h|0)<=(d|0)){break h}d=(h<<1)-d|0;break f}i:{if((d|0)!=(e|0)){break i}e=J[a+108>>2];if((e|0)<=(f|0)){break i}f=(e<<1)-f|0;break f}if(d){break f}d=0;e=J[a+108>>2];if((e|0)>=(f|0)){break f}f=(e<<1)-f|0}J[g+12>>2]=d;J[g+8>>2]=f;j:{if(J[a+8>>2]<=0){break j}h=J[a+32>>2];f=0;while(1){d=f<<2;e=J[d+(g+8|0)>>2];j=J[a+16>>2];k:{if((e|0)>(j|0)){J[d+h>>2]=j;break k}d=d+h|0;j=J[a+12>>2];if((j|0)>(e|0)){J[d>>2]=j;break k}J[d>>2]=e}f=f+1|0;e=J[a+8>>2];if((f|0)<(e|0)){continue}break}d=0;if((e|0)<=0){break j}e=k<<3;j=e+c|0;i=b+e|0;while(1){f=d<<2;e=f+j|0;f=J[f+i>>2]+J[f+h>>2]|0;J[e>>2]=f;l:{if((f|0)>J[a+16>>2]){f=f-J[a+20>>2]|0}else{if((f|0)>=J[a+12>>2]){break l}f=f+J[a+20>>2]|0}J[e>>2]=f}d=d+1|0;if((d|0)>2]){continue}break}}k=k+1|0;if((n|0)!=(k|0)){continue}break}}ia=g+32|0;return 1}Bc();C()}function pc(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0;l=na[J[J[a>>2]+44>>2]](a)|0;a:{if((l|0)<=0){break a}h=J[b+4>>2]-J[b>>2]>>2;e=ia+-64|0;ia=e;d=ab(e);f=P(J[3412],l);bb(d,J[J[a+8>>2]+56>>2],l&255,5,0,f,f>>31);d=cb(Aj(96),d);H[d+84|0]=1;J[d+72>>2]=J[d+68>>2];db(d,h);J[d+60>>2]=J[J[a+8>>2]+60>>2];f=J[a+16>>2];J[a+16>>2]=d;if(f){tb(f)}ia=e- -64|0;d=J[a+16>>2];if(!J[d+80>>2]){break a}j=J[J[d>>2]>>2];if(!j){break a}i=J[c+12>>2];g=i;e=J[c+20>>2];k=J[c+8>>2];f=J[c+16>>2];if((g|0)<=(e|0)&k>>>0<=f>>>0|(e|0)>(g|0)){break a}h=P(h,l);j=j+J[d+48>>2]|0;m=J[c>>2];n=K[m+f|0];d=e;g=f+1|0;d=g?d:d+1|0;J[c+16>>2]=g;J[c+20>>2]=d;b:{c:{if(n){if(re(h,l,c,j)){break c}break a}if((d|0)>=(i|0)&g>>>0>=k>>>0|(d|0)>(i|0)){break a}d=K[g+m|0];f=f+2|0;e=f>>>0<2?e+1|0:e;J[c+16>>2]=f;J[c+20>>2]=e;e=J[J[a+16>>2]+64>>2];e=J[e+4>>2]-J[e>>2]|0;if((d|0)==J[3412]){d=h<<2;if(d>>>0>e>>>0){break a}f=J[c+12>>2];e=J[c+20>>2];i=J[c+16>>2];g=d+i|0;e=g>>>0>>0?e+1|0:e;if(g>>>0>M[c+8>>2]&(e|0)>=(f|0)|(e|0)>(f|0)){break a}Vi(j,i+J[c>>2]|0,d);e=d;f=d+J[c+16>>2]|0;d=J[c+20>>2];J[c+16>>2]=f;J[c+20>>2]=e>>>0>f>>>0?d+1|0:d;break c}if(e>>>0>>0){break a}e=J[c+8>>2];i=J[c+16>>2];f=i;g=e-f|0;f=e>>>0>>0;e=J[c+20>>2];f=J[c+12>>2]-(f+e|0)|0;k=jk(d,0,h,0)>>>0>g>>>0;g=ma;if(k&(g|0)>=(f|0)|(f|0)<(g|0)){break a}f=1;if(!h){break b}g=0;while(1){m=d+i|0;k=J[c+12>>2];e=d>>>0>m>>>0?e+1|0:e;if(m>>>0>M[c+8>>2]&(k|0)<=(e|0)|(e|0)>(k|0)){return 0}Vi(j+(g<<2)|0,i+J[c>>2]|0,d);e=J[c+20>>2];i=d+J[c+16>>2]|0;e=i>>>0>>0?e+1|0:e;J[c+16>>2]=i;J[c+20>>2]=e;g=g+1|0;if((h|0)!=(g|0)){continue}break}}f=1;if(!h){break b}d=J[a+20>>2];if(d){f=0;if(na[J[J[d>>2]+32>>2]](d)|0){break b}}d=0;g=0;d:{if((h|0)<=0){break d}if((h|0)!=1){i=h&-2;while(1){e=d<<2;f=J[e+j>>2];J[e+j>>2]=0-(f&1)^f>>>1;f=e|4;e=J[f+j>>2];J[f+j>>2]=0-(e&1)^e>>>1;d=d+2|0;g=g+2|0;if((i|0)!=(g|0)){continue}break}}if(!(h&1)){break d}e=d<<2;d=J[e+j>>2];J[e+j>>2]=0-(d&1)^d>>>1}f=0}d=J[a+20>>2];e:{if(!d){break e}if(!(na[J[J[d>>2]+40>>2]](d,c)|0)){break a}if(f){break e}a=J[a+20>>2];if(!(na[J[J[a>>2]+44>>2]](a,j,j,h,l,J[b>>2])|0)){break a}}o=1}return o|0}function Mc(a,b){var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0;g=ia-32|0;ia=g;a:{b:{if(J[a+8>>2]<<5>>>0>=b>>>0){break b}if((b|0)<0){break a}b=(b-1>>>5|0)+1|0;c=Aj(b<<2);J[g+24>>2]=b;J[g+20>>2]=0;J[g+16>>2]=c;b=J[a>>2];J[g+12>>2]=0;J[g+8>>2]=b;c=J[a+4>>2];J[g+4>>2]=c&31;J[g>>2]=b+(c>>>3&536870908);f=ia-32|0;ia=f;i=J[g+4>>2];e=J[g+12>>2];j=J[g>>2];h=J[g+8>>2];b=(i-e|0)+(j-h<<3)|0;d=J[g+20>>2];c=b+d|0;J[g+20>>2]=c;if(!((c-1^d-1)>>>0<32?d:0)){J[J[g+16>>2]+((c>>>0>=33?c-1>>>5|0:0)<<2)>>2]=0}c=J[g+16>>2]+(d>>>3&536870908)|0;d=d&31;c:{if((d|0)==(e|0)){if((b|0)<=0){break c}if(e){i=32-e|0;d=(b|0)<(i|0)?b:i;i=-1<>>i-d;J[c>>2]=J[c>>2]&(i^-1)|i&J[h>>2];b=b-d|0;h=h+4|0;c=c+(d+e>>>3&536870908)|0}j=c;e=(b|0)/32|0;c=e<<2;d=Wi(j,h,c);b=b-(e<<5)|0;if((b|0)<=0){break c}e=c+d|0;b=-1>>>32-b|0;J[e>>2]=J[e>>2]&(b^-1)|b&J[c+h>>2];break c}J[f+28>>2]=e;J[f+24>>2]=h;J[f+20>>2]=i;J[f+16>>2]=j;J[f+12>>2]=d;J[f+8>>2]=c;b=J[f+28>>2];c=J[f+24>>2];h=(J[f+20>>2]-b|0)+(J[f+16>>2]-c<<3)|0;d:{if((h|0)<=0){b=J[f+12>>2];break d}e:{if(!b){b=J[f+12>>2];break e}e=J[f+12>>2];j=32-e|0;k=32-b|0;d=(h|0)<(k|0)?h:k;i=d>>>0>j>>>0?j:d;l=J[f+8>>2];m=J[l>>2]&(-1<>>j-i^-1);j=J[c>>2]&(-1<>>k-d);J[l>>2]=m|(b>>>0>>0?j<>>b-e|0);c=e+i|0;b=c&31;J[f+12>>2]=b;e=l+(c>>>3&536870908)|0;J[f+8>>2]=e;c=d-i|0;if((c|0)>0){J[e>>2]=J[e>>2]&(-1>>>32-c^-1)|j>>>i+J[f+28>>2];J[f+12>>2]=c;b=c}h=h-d|0;c=J[f+24>>2]+4|0;J[f+24>>2]=c}i=-1<=32){j=i^-1;while(1){d=J[f+8>>2];c=J[c>>2];J[d>>2]=j&J[d>>2]|c<>2]=d+4;J[d+4>>2]=i&J[d+4>>2]|c>>>e;c=J[f+24>>2]+4|0;J[f+24>>2]=c;d=h>>>0>63;h=h-32|0;if(d){continue}break}}if((h|0)<=0){break d}d=J[f+8>>2];j=e;e=(e|0)<(h|0)?e:h;j=J[d>>2]&(i&-1>>>j-e^-1);i=J[c>>2]&-1>>>32-h;J[d>>2]=j|i<>2]=b;d=d+(c>>>3&536870908)|0;J[f+8>>2]=d;c=h-e|0;if((c|0)<=0){break d}J[d>>2]=J[d>>2]&(-1>>>32-c^-1)|i>>>e;J[f+12>>2]=c;b=c}c=J[f+8>>2];J[f+4>>2]=b;J[f>>2]=c}ia=f+32|0;b=J[a>>2];J[a>>2]=J[g+16>>2];J[g+16>>2]=b;c=J[a+4>>2];J[a+4>>2]=J[g+20>>2];J[g+20>>2]=c;c=J[a+8>>2];J[a+8>>2]=J[g+24>>2];J[g+24>>2]=c;if(!b){break b}xj(b)}ia=g+32|0;return}La();C()}function hb(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0;i=ia-80|0;ia=i;a:{b:{if(K[J[a+28>>2]+36|0]<=1){d=J[b+20>>2];c=J[b+16>>2];e=c+4|0;d=e>>>0<4?d+1|0:d;f=J[b+12>>2];if((f|0)<=(d|0)&e>>>0>M[b+8>>2]|(d|0)>(f|0)){break a}c=c+J[b>>2]|0;j=K[c|0]|K[c+1|0]<<8|(K[c+2|0]<<16|K[c+3|0]<<24);J[b+16>>2]=e;J[b+20>>2]=d;break b}if(!ib(1,i+76|0,b)){break a}j=J[i+76>>2]}if(!j){break a}d=J[b+8>>2];c=J[b+16>>2];d=jk(d-c|0,J[b+12>>2]-(J[b+20>>2]+(c>>>0>d>>>0)|0)|0,5,0);c=ma;if(d>>>0>>0&(c|0)<=0|(c|0)<0){break a}c=J[a+4>>2];d=J[a+8>>2]-c>>2;c:{if(d>>>0>>0){Oa(a+4|0,j-d|0);break c}if(d>>>0<=j>>>0){break c}J[a+8>>2]=c+(j<<2)}q=a+16|0;l=J[a+32>>2];g=1;while(1){d:{h=J[b+12>>2];c=h;d=J[b+20>>2];n=J[b+8>>2];k=J[b+16>>2];if((c|0)<=(d|0)&n>>>0<=k>>>0|(c|0)<(d|0)){break d}o=J[b>>2];r=K[o+k|0];c=d;e=k+1|0;c=e?c:c+1|0;J[b+16>>2]=e;J[b+20>>2]=c;if((c|0)>=(h|0)&e>>>0>=n>>>0|(c|0)>(h|0)){break d}e=K[e+o|0];c=d;f=k+2|0;c=f>>>0<2?c+1|0:c;J[b+16>>2]=f;J[b+20>>2]=c;if((c|0)>=(h|0)&f>>>0>=n>>>0|(c|0)>(h|0)){break d}f=K[f+o|0];c=d;p=k+3|0;c=p>>>0<3?c+1|0:c;J[b+16>>2]=p;J[b+20>>2]=c;if((c|0)>=(h|0)&p>>>0>=n>>>0|(c|0)>(h|0)){break d}h=K[p+o|0];c=d;d=k+4|0;c=d>>>0<4?c+1|0:c;J[b+16>>2]=d;J[b+20>>2]=c;if(!f|((e-12&255)>>>0<245|r>>>0>4)){break d}k=ab(i+8|0);h=(h|0)!=0;d=e-1|0;if(d>>>0<=10){c=J[(d<<2)+13632>>2]}else{c=-1}d=P(c,f);bb(k,r,f,e,h,d,d>>31);d=L[J[a+28>>2]+36>>1];e:{if(((d<<8|d>>>8)&65535)>>>0<=258){c=J[b+20>>2];d=J[b+16>>2];e=d+2|0;c=e>>>0<2?c+1|0:c;f=J[b+12>>2];if((f|0)<=(c|0)&e>>>0>M[b+8>>2]|(c|0)>(f|0)){break d}d=d+J[b>>2]|0;g=K[d|0]|K[d+1|0]<<8;J[b+16>>2]=e;J[b+20>>2]=c;break e}if(!ib(1,i+4|0,b)){break d}g=J[i+4>>2]}J[i+68>>2]=g;d=cb(Aj(96),k);na[J[J[l>>2]+8>>2]](l,J[l+12>>2]-J[l+8>>2]>>2,d);d=(J[l+12>>2]-J[l+8>>2]>>2)-1|0;e=d<<2;J[J[e+J[l+8>>2]>>2]+60>>2]=g;J[J[a+4>>2]+(m<<2)>>2]=d;g=J[a+16>>2];c=J[a+20>>2]-g>>2;f:{if((c|0)>(d|0)){break f}J[i>>2]=-1;d=d+1|0;if(d>>>0>c>>>0){jb(q,d-c|0,i);g=J[q>>2];break f}if(c>>>0<=d>>>0){break f}J[a+20>>2]=(d<<2)+g}J[e+g>>2]=m;m=m+1|0;g=m>>>0>>0;if((j|0)!=(m|0)){continue}}break}m=!g}ia=i+80|0;return m&1}function se(a,b){var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0;c=L[b+38>>1];a:{if(!c){break a}b:{if(c>>>0<=511){d=J[b+12>>2];c=J[b+20>>2];e=J[b+16>>2];g=e+4|0;c=g>>>0<4?c+1|0:c;if(g>>>0>M[b+8>>2]&(c|0)>=(d|0)|(c|0)>(d|0)){break a}c=e+J[b>>2]|0;f=K[c|0]|K[c+1|0]<<8|(K[c+2|0]<<16|K[c+3|0]<<24);J[a+12>>2]=f;c=J[b+20>>2];d=J[b+16>>2]+4|0;c=d>>>0<4?c+1|0:c;e=d;J[b+16>>2]=d;J[b+20>>2]=c;break b}if(!ve(1,a+12|0,b)){break a}e=J[b+16>>2];c=J[b+20>>2];f=J[a+12>>2]}d=J[b+8>>2];g=d-e|0;c=J[b+12>>2]-(c+(d>>>0>>0)|0)|0;if(g>>>0>>6>>>0&(c|0)<=0|(c|0)<0){break a}d=J[a>>2];c=J[a+4>>2]-d>>2;c:{if(c>>>0>>0){Oa(a,f-c|0);f=J[a+12>>2];break c}if(c>>>0<=f>>>0){break c}J[a+4>>2]=d+(f<<2)}if(!f){return 1}e=J[b+16>>2];c=J[b+20>>2];k=J[a>>2];l=J[b+8>>2];j=J[b+12>>2];g=0;while(1){if((c|0)>=(j|0)&e>>>0>=l>>>0|(c|0)>(j|0)){return 0}m=J[b>>2];i=K[m+e|0];d=e+1|0;c=d?c:c+1|0;e=d;J[b+16>>2]=d;J[b+20>>2]=c;d=i>>>2|0;h=0;d:{e:{f:{g:{n=i&3;switch(n|0){case 0:break e;case 3:break g;default:break f}}d=d+g|0;if(d>>>0>=f>>>0){return 0}Xi(k+(g<<2)|0,0,(i&252)+4|0);g=d;break d}while(1){if((c|0)>=(j|0)&e>>>0>=l>>>0|(c|0)>(j|0)){break a}f=K[e+m|0];e=e+1|0;c=e?c:c+1|0;J[b+16>>2]=e;J[b+20>>2]=c;d=f<<(h<<3|6)|d;h=h+1|0;if((n|0)!=(h|0)){continue}break}}J[k+(g<<2)>>2]=d}f=J[a+12>>2];g=g+1|0;if(f>>>0>g>>>0){continue}break}b=a+16|0;j=J[a>>2];d=J[a+16>>2];c=J[a+20>>2]-d|0;h:{if(c>>>0<=16383){Oa(b,4096-(c>>>2|0)|0);break h}if((c|0)==16384){break h}J[a+20>>2]=d+16384}c=a+28|0;g=J[c>>2];d=J[a+32>>2]-g>>3;i:{if(d>>>0>>0){we(c,f-d|0);g=J[c>>2];break i}if(d>>>0>f>>>0){J[a+32>>2]=(f<<3)+g}if(!f){break a}}e=J[b>>2];b=0;a=0;while(1){c=j+(b<<2)|0;h=J[c>>2];d=a;i=(b<<3)+g|0;J[i+4>>2]=d;J[i>>2]=h;c=J[c>>2];a=c+d|0;if(a>>>0>4096){break a}j:{if(a>>>0<=d>>>0){break j}h=0;i=c&7;if(i){while(1){J[e+(d<<2)>>2]=b;d=d+1|0;h=h+1|0;if((i|0)!=(h|0)){continue}break}}if(c-1>>>0<=6){break j}while(1){c=e+(d<<2)|0;J[c>>2]=b;J[c+28>>2]=b;J[c+24>>2]=b;J[c+20>>2]=b;J[c+16>>2]=b;J[c+12>>2]=b;J[c+8>>2]=b;J[c+4>>2]=b;d=d+8|0;if((d|0)!=(a|0)){continue}break}}b=b+1|0;if((f|0)!=(b|0)){continue}break}o=(a|0)==4096}return o}function rj(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0;d=b;b=J[b>>2]+7&-8;J[d>>2]=b+16;o=a;a=b;k=J[a>>2];b=J[a+4>>2];e=J[a+12>>2];m=e;g=ia-32|0;ia=g;e=e&2147483647;c=e-1006698496|0;f=e-1140785152|0;d=J[a+8>>2];a:{if((c|0)==(f|0)&d>>>0>>0|c>>>0>>0){a=d;d=m<<4|a>>>28;c=a<<4|b>>>28;e=d;a=b&268435455;b=a;if((a|0)==134217728&(k|0)!=0|a>>>0>134217728){a=e+1073741824|0;b=c+1|0;a=b?a:a+1|0;c=b;break a}a=e+1073741824|0;if(k|(b|0)!=134217728){break a}b=c&1;e=b+c|0;c=e;a=b>>>0>c>>>0?a+1|0:a;break a}if(!(!d&(e|0)==2147418112?!(b|k):e>>>0<2147418112)){a=d;d=m<<4|a>>>28;c=a<<4|b>>>28;a=d&524287|2146959360;break a}c=0;a=2146435072;if(e>>>0>1140785151){break a}a=0;n=e>>>16|0;if(n>>>0<15249){break a}c=k;a=b;f=m&65535|65536;e=f;l=d;h=d;j=n-15233|0;b:{if(j&64){f=c;d=j+-64|0;c=d&31;if((d&63)>>>0>=32){a=f<>>32-c|a<>>0>=32){d=h<>>32-i|f<>>0>=32){d=0;h=a>>>i|0}else{d=a>>>i|0;h=((1<>>i}h=p|h;f=d|f;i=j&31;if((j&63)>>>0>=32){d=c<>>32-i|a<>2]=c;J[g+20>>2]=a;J[g+24>>2]=h;J[g+28>>2]=f;d=15361-n|0;c:{if(d&64){b=l;a=d+-64|0;f=a&31;if((a&63)>>>0>=32){d=0;k=e>>>f|0}else{d=e>>>f|0;k=((1<>>f}b=d;l=0;e=0;break c}if(!d){break c}f=l;a=64-d|0;c=a&31;if((a&63)>>>0>=32){a=f<>>32-c|e<>>0>=32){d=0;b=b>>>j|0}else{d=b>>>j|0;b=((1<>>j}k=h|b;b=d|f;d=l;f=a&31;if((a&63)>>>0>=32){a=0;l=e>>>f|0}else{a=e>>>f|0;l=((1<>>f}e=a}J[g>>2]=k;J[g+4>>2]=b;J[g+8>>2]=l;J[g+12>>2]=e;b=J[g+8>>2];e=J[g+4>>2];c=b<<4|e>>>28;a=J[g+12>>2]<<4|b>>>28;e=e&268435455;b=J[g>>2]|(J[g+16>>2]|J[g+24>>2]|(J[g+20>>2]|J[g+28>>2]))!=0;if((e|0)==134217728&(b|0)!=0|e>>>0>134217728){b=c+1|0;a=b?a:a+1|0;c=b;break a}if(b|(e|0)!=134217728){break a}b=c+(c&1)|0;a=b>>>0>>0?a+1|0:a;c=b}ia=g+32|0;x(0,c|0);x(1,m&-2147483648|a);q=o,r=+z(),O[q>>3]=r}function Zd(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0;g=ia-48|0;ia=g;d=J[a+8>>2];if(d-31>>>0>=4294967267){J[a+76>>2]=d;e=-1<>2]=d;J[a+80>>2]=e^-1;J[a+92>>2]=(d|0)/2;N[a+88>>2]=Q(2)/Q(d|0)}J[a+52>>2]=f;d=J[a+40>>2];e=J[d>>2];d=J[d+4>>2];J[g+16>>2]=0;J[g+8>>2]=0;J[g+12>>2]=0;a:{d=d-e|0;if((d|0)>0){m=a+8|0;n=a+44|0;d=d>>>2|0;o=d>>>0<=1?1:d;p=a+96|0;while(1){e=J[a+40>>2];d=J[e>>2];if(J[e+4>>2]-d>>2>>>0<=j>>>0){break a}xd(n,J[d+(j<<2)>>2],g+8|0);e=J[g+12>>2];d=e>>31;f=J[g+8>>2];h=f>>31;k=J[g+16>>2];i=k>>31;i=(i^k)-i|0;h=i+((d^e)-d+((f^h)-h)|0)|0;d=0;d=h>>>0>>0?1:d;b:{if(!(d|h)){J[g+8>>2]=J[a+92>>2];break b}i=J[a+92>>2];l=i>>31;f=kk(jk(i,l,f,f>>31),ma,h,d);J[g+8>>2]=f;d=kk(jk(i,l,e,e>>31),ma,h,d);J[g+12>>2]=d;e=d>>31;e=(d^e)-e|0;d=f>>31;d=e+((d^f)-d|0)|0;if((k|0)>=0){J[g+16>>2]=i-d;break b}J[g+16>>2]=d-i}d=le(p);f=J[g+8>>2];c:{if(d){J[g+16>>2]=0-J[g+16>>2];e=0-J[g+12>>2]|0;J[g+12>>2]=e;f=0-f|0;J[g+8>>2]=f;break c}e=J[g+12>>2]}d:{if((f|0)>=0){f=J[a+92>>2];d=f+J[g+16>>2]|0;f=e+f|0;break d}e:{if((e|0)<0){d=J[g+16>>2];f=d>>31;f=(d^f)-f|0;break e}d=J[g+16>>2];f=d>>31;f=J[a+84>>2]+(f-(d^f)|0)|0}if((d|0)<0){d=e>>31;d=(d^e)-d|0;break d}d=e>>31;d=J[a+84>>2]+(d-(d^e)|0)|0}e=J[a+84>>2];f:{if(!(d|f)){d=e;f=d;break f}if(!((d|0)!=(e|0)|f)){f=d;break f}if(!((e|0)!=(f|0)|d)){d=f;break f}g:{if(f){break g}h=J[a+92>>2];if((h|0)>=(d|0)){break g}d=(h<<1)-d|0;f=0;break f}h:{if((e|0)!=(f|0)){break h}h=J[a+92>>2];if((h|0)<=(d|0)){break h}d=(h<<1)-d|0;break f}i:{if((d|0)!=(e|0)){break i}e=J[a+92>>2];if((e|0)<=(f|0)){break i}f=(e<<1)-f|0;break f}if(d){break f}d=0;e=J[a+92>>2];if((e|0)>=(f|0)){break f}f=(e<<1)-f|0}e=j<<3;h=e+b|0;k=J[h+4>>2];h=J[h>>2];J[g+36>>2]=d;J[g+32>>2]=f;J[g+24>>2]=h;J[g+28>>2]=k;Vd(g+40|0,m,g+32|0,g+24|0);d=c+e|0;J[d>>2]=J[g+40>>2];J[d+4>>2]=J[g+44>>2];j=j+1|0;if((o|0)!=(j|0)){continue}break}}ia=g+48|0;return 1}Bc();C()}function Ud(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0;g=ia-48|0;ia=g;d=J[a+8>>2];if(d-31>>>0>=4294967267){J[a+76>>2]=d;e=-1<>2]=d;J[a+80>>2]=e^-1;J[a+92>>2]=(d|0)/2;N[a+88>>2]=Q(2)/Q(d|0)}J[a+52>>2]=f;d=J[a+40>>2];e=J[d>>2];d=J[d+4>>2];J[g+16>>2]=0;J[g+8>>2]=0;J[g+12>>2]=0;a:{d=d-e|0;if((d|0)>0){m=a+8|0;n=a+44|0;d=d>>>2|0;o=d>>>0<=1?1:d;p=a+96|0;while(1){e=J[a+40>>2];d=J[e>>2];if(J[e+4>>2]-d>>2>>>0<=j>>>0){break a}gd(n,J[d+(j<<2)>>2],g+8|0);e=J[g+12>>2];d=e>>31;f=J[g+8>>2];h=f>>31;k=J[g+16>>2];i=k>>31;i=(i^k)-i|0;h=i+((d^e)-d+((f^h)-h)|0)|0;d=0;d=h>>>0>>0?1:d;b:{if(!(d|h)){J[g+8>>2]=J[a+92>>2];break b}i=J[a+92>>2];l=i>>31;f=kk(jk(i,l,f,f>>31),ma,h,d);J[g+8>>2]=f;d=kk(jk(i,l,e,e>>31),ma,h,d);J[g+12>>2]=d;e=d>>31;e=(d^e)-e|0;d=f>>31;d=e+((d^f)-d|0)|0;if((k|0)>=0){J[g+16>>2]=i-d;break b}J[g+16>>2]=d-i}d=le(p);f=J[g+8>>2];c:{if(d){J[g+16>>2]=0-J[g+16>>2];e=0-J[g+12>>2]|0;J[g+12>>2]=e;f=0-f|0;J[g+8>>2]=f;break c}e=J[g+12>>2]}d:{if((f|0)>=0){f=J[a+92>>2];d=f+J[g+16>>2]|0;f=e+f|0;break d}e:{if((e|0)<0){d=J[g+16>>2];f=d>>31;f=(d^f)-f|0;break e}d=J[g+16>>2];f=d>>31;f=J[a+84>>2]+(f-(d^f)|0)|0}if((d|0)<0){d=e>>31;d=(d^e)-d|0;break d}d=e>>31;d=J[a+84>>2]+(d-(d^e)|0)|0}e=J[a+84>>2];f:{if(!(d|f)){d=e;f=d;break f}if(!((d|0)!=(e|0)|f)){f=d;break f}if(!((e|0)!=(f|0)|d)){d=f;break f}g:{if(f){break g}h=J[a+92>>2];if((h|0)>=(d|0)){break g}d=(h<<1)-d|0;f=0;break f}h:{if((e|0)!=(f|0)){break h}h=J[a+92>>2];if((h|0)<=(d|0)){break h}d=(h<<1)-d|0;break f}i:{if((d|0)!=(e|0)){break i}e=J[a+92>>2];if((e|0)<=(f|0)){break i}f=(e<<1)-f|0;break f}if(d){break f}d=0;e=J[a+92>>2];if((e|0)>=(f|0)){break f}f=(e<<1)-f|0}e=j<<3;h=e+b|0;k=J[h+4>>2];h=J[h>>2];J[g+36>>2]=d;J[g+32>>2]=f;J[g+24>>2]=h;J[g+28>>2]=k;Vd(g+40|0,m,g+32|0,g+24|0);d=c+e|0;J[d>>2]=J[g+40>>2];J[d+4>>2]=J[g+44>>2];j=j+1|0;if((o|0)!=(j|0)){continue}break}}ia=g+48|0;return 1}Bc();C()}function Pd(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0;g=ia-48|0;ia=g;d=J[a+8>>2];if(d-31>>>0>=4294967267){J[a+76>>2]=d;e=-1<>2]=d;J[a+80>>2]=e^-1;J[a+92>>2]=(d|0)/2;N[a+88>>2]=Q(2)/Q(d|0)}J[a+52>>2]=f;d=J[a+40>>2];e=J[d>>2];d=J[d+4>>2];J[g+16>>2]=0;J[g+8>>2]=0;J[g+12>>2]=0;a:{d=d-e|0;if((d|0)>0){m=a+8|0;n=a+44|0;d=d>>>2|0;o=d>>>0<=1?1:d;p=a+96|0;while(1){e=J[a+40>>2];d=J[e>>2];if(J[e+4>>2]-d>>2>>>0<=j>>>0){break a}xd(n,J[d+(j<<2)>>2],g+8|0);e=J[g+12>>2];d=e>>31;f=J[g+8>>2];h=f>>31;k=J[g+16>>2];i=k>>31;i=(i^k)-i|0;h=i+((d^e)-d+((f^h)-h)|0)|0;d=0;d=h>>>0>>0?1:d;b:{if(!(d|h)){J[g+8>>2]=J[a+92>>2];break b}i=J[a+92>>2];l=i>>31;f=kk(jk(i,l,f,f>>31),ma,h,d);J[g+8>>2]=f;d=kk(jk(i,l,e,e>>31),ma,h,d);J[g+12>>2]=d;e=d>>31;e=(d^e)-e|0;d=f>>31;d=e+((d^f)-d|0)|0;if((k|0)>=0){J[g+16>>2]=i-d;break b}J[g+16>>2]=d-i}d=le(p);f=J[g+8>>2];c:{if(d){J[g+16>>2]=0-J[g+16>>2];e=0-J[g+12>>2]|0;J[g+12>>2]=e;f=0-f|0;J[g+8>>2]=f;break c}e=J[g+12>>2]}d:{if((f|0)>=0){f=J[a+92>>2];d=f+J[g+16>>2]|0;f=e+f|0;break d}e:{if((e|0)<0){d=J[g+16>>2];f=d>>31;f=(d^f)-f|0;break e}d=J[g+16>>2];f=d>>31;f=J[a+84>>2]+(f-(d^f)|0)|0}if((d|0)<0){d=e>>31;d=(d^e)-d|0;break d}d=e>>31;d=J[a+84>>2]+(d-(d^e)|0)|0}e=J[a+84>>2];f:{if(!(d|f)){d=e;f=d;break f}if(!((d|0)!=(e|0)|f)){f=d;break f}if(!((e|0)!=(f|0)|d)){d=f;break f}g:{if(f){break g}h=J[a+92>>2];if((h|0)>=(d|0)){break g}d=(h<<1)-d|0;f=0;break f}h:{if((e|0)!=(f|0)){break h}h=J[a+92>>2];if((h|0)<=(d|0)){break h}d=(h<<1)-d|0;break f}i:{if((d|0)!=(e|0)){break i}e=J[a+92>>2];if((e|0)<=(f|0)){break i}f=(e<<1)-f|0;break f}if(d){break f}d=0;e=J[a+92>>2];if((e|0)>=(f|0)){break f}f=(e<<1)-f|0}e=j<<3;h=e+b|0;k=J[h+4>>2];J[g+40>>2]=J[h>>2];J[g+44>>2]=k;J[g+28>>2]=d;J[g+24>>2]=f;Ld(g+32|0,m,g+24|0,g+40|0);d=c+e|0;J[d>>2]=J[g+32>>2];J[d+4>>2]=J[g+36>>2];j=j+1|0;if((o|0)!=(j|0)){continue}break}}ia=g+48|0;return 1}Bc();C()}function Kd(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0;g=ia-48|0;ia=g;d=J[a+8>>2];if(d-31>>>0>=4294967267){J[a+76>>2]=d;e=-1<>2]=d;J[a+80>>2]=e^-1;J[a+92>>2]=(d|0)/2;N[a+88>>2]=Q(2)/Q(d|0)}J[a+52>>2]=f;d=J[a+40>>2];e=J[d>>2];d=J[d+4>>2];J[g+16>>2]=0;J[g+8>>2]=0;J[g+12>>2]=0;a:{d=d-e|0;if((d|0)>0){m=a+8|0;n=a+44|0;d=d>>>2|0;o=d>>>0<=1?1:d;p=a+96|0;while(1){e=J[a+40>>2];d=J[e>>2];if(J[e+4>>2]-d>>2>>>0<=j>>>0){break a}gd(n,J[d+(j<<2)>>2],g+8|0);e=J[g+12>>2];d=e>>31;f=J[g+8>>2];h=f>>31;k=J[g+16>>2];i=k>>31;i=(i^k)-i|0;h=i+((d^e)-d+((f^h)-h)|0)|0;d=0;d=h>>>0>>0?1:d;b:{if(!(d|h)){J[g+8>>2]=J[a+92>>2];break b}i=J[a+92>>2];l=i>>31;f=kk(jk(i,l,f,f>>31),ma,h,d);J[g+8>>2]=f;d=kk(jk(i,l,e,e>>31),ma,h,d);J[g+12>>2]=d;e=d>>31;e=(d^e)-e|0;d=f>>31;d=e+((d^f)-d|0)|0;if((k|0)>=0){J[g+16>>2]=i-d;break b}J[g+16>>2]=d-i}d=le(p);f=J[g+8>>2];c:{if(d){J[g+16>>2]=0-J[g+16>>2];e=0-J[g+12>>2]|0;J[g+12>>2]=e;f=0-f|0;J[g+8>>2]=f;break c}e=J[g+12>>2]}d:{if((f|0)>=0){f=J[a+92>>2];d=f+J[g+16>>2]|0;f=e+f|0;break d}e:{if((e|0)<0){d=J[g+16>>2];f=d>>31;f=(d^f)-f|0;break e}d=J[g+16>>2];f=d>>31;f=J[a+84>>2]+(f-(d^f)|0)|0}if((d|0)<0){d=e>>31;d=(d^e)-d|0;break d}d=e>>31;d=J[a+84>>2]+(d-(d^e)|0)|0}e=J[a+84>>2];f:{if(!(d|f)){d=e;f=d;break f}if(!((d|0)!=(e|0)|f)){f=d;break f}if(!((e|0)!=(f|0)|d)){d=f;break f}g:{if(f){break g}h=J[a+92>>2];if((h|0)>=(d|0)){break g}d=(h<<1)-d|0;f=0;break f}h:{if((e|0)!=(f|0)){break h}h=J[a+92>>2];if((h|0)<=(d|0)){break h}d=(h<<1)-d|0;break f}i:{if((d|0)!=(e|0)){break i}e=J[a+92>>2];if((e|0)<=(f|0)){break i}f=(e<<1)-f|0;break f}if(d){break f}d=0;e=J[a+92>>2];if((e|0)>=(f|0)){break f}f=(e<<1)-f|0}e=j<<3;h=e+b|0;k=J[h+4>>2];J[g+40>>2]=J[h>>2];J[g+44>>2]=k;J[g+28>>2]=d;J[g+24>>2]=f;Ld(g+32|0,m,g+24|0,g+40|0);d=c+e|0;J[d>>2]=J[g+32>>2];J[d+4>>2]=J[g+36>>2];j=j+1|0;if((o|0)!=(j|0)){continue}break}}ia=g+48|0;return 1}Bc();C()}function Ze(a,b){var c=0,d=0,e=0,f=0,g=0,h=0,i=0;f=ia-16|0;ia=f;c=J[a+4>>2];J[a+40>>2]=J[a>>2];J[a+44>>2]=c;c=J[a+36>>2];J[a+72>>2]=J[a+32>>2];J[a+76>>2]=c;d=J[a+28>>2];c=a- -64|0;J[c>>2]=J[a+24>>2];J[c+4>>2]=d;c=J[a+20>>2];J[a+56>>2]=J[a+16>>2];J[a+60>>2]=c;c=J[a+12>>2];J[a+48>>2]=J[a+8>>2];J[a+52>>2]=c;a:{b:{if(sg(a+40|0,1,f+8|0)){c=J[a+44>>2];J[a>>2]=J[a+40>>2];J[a+4>>2]=c;c=J[a+76>>2];J[a+32>>2]=J[a+72>>2];J[a+36>>2]=c;c=J[a+68>>2];J[a+24>>2]=J[a+64>>2];J[a+28>>2]=c;d=J[a+60>>2];h=d;c=J[a+56>>2];J[a+16>>2]=c;J[a+20>>2]=d;e=J[a+52>>2];d=J[a+48>>2];J[a+8>>2]=d;J[a+12>>2]=e;i=d-c|0;g=J[f+12>>2];e=e-((c>>>0>d>>>0)+h|0)|0;d=J[f+8>>2];if((g|0)==(e|0)&i>>>0>=d>>>0|e>>>0>g>>>0){break b}}c=0;break a}e=c+d|0;c=h+g|0;J[a+16>>2]=e;J[a+20>>2]=d>>>0>e>>>0?c+1|0:c;c:{if(L[a+38>>1]<=513){c=J[a+4>>2];J[a+96>>2]=J[a>>2];J[a+100>>2]=c;c=J[a+36>>2];J[a+128>>2]=J[a+32>>2];J[a+132>>2]=c;c=J[a+28>>2];J[a+120>>2]=J[a+24>>2];J[a+124>>2]=c;c=J[a+20>>2];J[a+112>>2]=J[a+16>>2];J[a+116>>2]=c;c=J[a+12>>2];J[a+104>>2]=J[a+8>>2];J[a+108>>2]=c;d:{if(sg(a+96|0,1,f+8|0)){c=J[a+100>>2];J[a>>2]=J[a+96>>2];J[a+4>>2]=c;c=J[a+132>>2];J[a+32>>2]=J[a+128>>2];J[a+36>>2]=c;c=J[a+124>>2];J[a+24>>2]=J[a+120>>2];J[a+28>>2]=c;d=J[a+116>>2];h=d;c=J[a+112>>2];J[a+16>>2]=c;J[a+20>>2]=d;e=J[a+108>>2];d=J[a+104>>2];J[a+8>>2]=d;J[a+12>>2]=e;i=d-c|0;g=J[f+12>>2];e=e-((c>>>0>d>>>0)+h|0)|0;d=J[f+8>>2];if((g|0)==(e|0)&i>>>0>=d>>>0|e>>>0>g>>>0){break d}}c=0;break a}e=c+d|0;c=h+g|0;J[a+16>>2]=e;J[a+20>>2]=d>>>0>e>>>0?c+1|0:c;break c}c=0;if(!je(a+80|0,a)){break a}}c=0;if(!ef(a)){break a}c=J[a+4>>2];J[b>>2]=J[a>>2];J[b+4>>2]=c;c=J[a+36>>2];J[b+32>>2]=J[a+32>>2];J[b+36>>2]=c;c=J[a+28>>2];J[b+24>>2]=J[a+24>>2];J[b+28>>2]=c;c=J[a+20>>2];J[b+16>>2]=J[a+16>>2];J[b+20>>2]=c;c=J[a+12>>2];J[b+8>>2]=J[a+8>>2];J[b+12>>2]=c;c=1}ia=f+16|0;return c}function Zh(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0;f=ia-32|0;ia=f;e=f+8|0;c=ia-80|0;ia=c;a=J[b+36>>2];J[c+72>>2]=J[b+32>>2];J[c+76>>2]=a;d=J[b+28>>2];a=c- -64|0;J[a>>2]=J[b+24>>2];J[a+4>>2]=d;a=J[b+20>>2];J[c+56>>2]=J[b+16>>2];J[c+60>>2]=a;a=J[b+12>>2];J[c+48>>2]=J[b+8>>2];J[c+52>>2]=a;a=J[b+4>>2];J[c+40>>2]=J[b>>2];J[c+44>>2]=a;dg(c+8|0,c+40|0,c+24|0);a=J[c+8>>2];a:{if(a){J[e>>2]=a;a=e+4|0;if(H[c+23|0]>=0){b=c+8|4;e=J[b+4>>2];J[a>>2]=J[b>>2];J[a+4>>2]=e;J[a+8>>2]=J[b+8>>2];break a}Ej(a,J[c+12>>2],J[c+16>>2]);if(H[c+23|0]>=0){break a}xj(J[c+12>>2]);break a}if(H[c+23|0]<0){xj(J[c+12>>2])}a=K[c+31|0];if(a>>>0>=2){b=Aj(32);H[b+26|0]=0;a=K[1512]|K[1513]<<8;H[b+24|0]=a;H[b+25|0]=a>>>8;a=K[1508]|K[1509]<<8|(K[1510]<<16|K[1511]<<24);d=K[1504]|K[1505]<<8|(K[1506]<<16|K[1507]<<24);H[b+16|0]=d;H[b+17|0]=d>>>8;H[b+18|0]=d>>>16;H[b+19|0]=d>>>24;H[b+20|0]=a;H[b+21|0]=a>>>8;H[b+22|0]=a>>>16;H[b+23|0]=a>>>24;a=K[1500]|K[1501]<<8|(K[1502]<<16|K[1503]<<24);d=K[1496]|K[1497]<<8|(K[1498]<<16|K[1499]<<24);H[b+8|0]=d;H[b+9|0]=d>>>8;H[b+10|0]=d>>>16;H[b+11|0]=d>>>24;H[b+12|0]=a;H[b+13|0]=a>>>8;H[b+14|0]=a>>>16;H[b+15|0]=a>>>24;a=K[1492]|K[1493]<<8|(K[1494]<<16|K[1495]<<24);d=K[1488]|K[1489]<<8|(K[1490]<<16|K[1491]<<24);H[b|0]=d;H[b+1|0]=d>>>8;H[b+2|0]=d>>>16;H[b+3|0]=d>>>24;H[b+4|0]=a;H[b+5|0]=a>>>8;H[b+6|0]=a>>>16;H[b+7|0]=a>>>24;J[c+8>>2]=-1;a=c+8|4;Ej(a,b,26);d=H[c+23|0];J[e>>2]=J[c+8>>2];e=e+4|0;if((d|0)>=0){d=J[a+4>>2];J[e>>2]=J[a>>2];J[e+4>>2]=d;J[e+8>>2]=J[a+8>>2];xj(b);break a}Ej(e,J[c+12>>2],J[c+16>>2]);if(H[c+23|0]<0){xj(J[c+12>>2])}xj(b);break a}J[e>>2]=0;J[e+4>>2]=0;J[e+16>>2]=a;J[e+8>>2]=0;J[e+12>>2]=0}ia=c+80|0;a=J[f+24>>2];if(H[f+23|0]<0){xj(J[f+12>>2])}ia=f+32|0;return a|0}function Pi(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0;k=ia-16|0;ia=k;J[k+8>>2]=c;e=J[a+12>>2];d=J[a+8>>2];f=e-d>>2;a:{if((f|0)>(b|0)){break a}h=b+1|0;if(h>>>0>f>>>0){f=h-f|0;g=J[a+16>>2];d=J[a+12>>2];if(f>>>0<=g-d>>2>>>0){if(f){e=d;d=f<<2;d=Xi(e,0,d)+d|0}J[a+12>>2]=d;break a}b:{c:{d:{h=J[a+8>>2];i=d-h>>2;e=i+f|0;if(e>>>0<1073741824){g=g-h|0;l=g>>1;g=g>>>0>=2147483644?1073741823:e>>>0>>0?l:e;if(g){if(g>>>0>=1073741824){break d}j=Aj(g<<2)}e=(i<<2)+j|0;i=f<<2;f=Xi(e,0,i);i=f+i|0;g=(g<<2)+j|0;if((d|0)==(h|0)){break c}while(1){d=d-4|0;f=J[d>>2];J[d>>2]=0;e=e-4|0;J[e>>2]=f;if((d|0)!=(h|0)){continue}break}J[a+16>>2]=g;f=J[a+12>>2];J[a+12>>2]=i;d=J[a+8>>2];J[a+8>>2]=e;if((d|0)==(f|0)){break b}while(1){f=f-4|0;e=J[f>>2];J[f>>2]=0;if(e){tb(e)}if((d|0)!=(f|0)){continue}break}break b}La();C()}Za();C()}J[a+16>>2]=g;J[a+12>>2]=i;J[a+8>>2]=f}if(d){xj(d)}break a}if(f>>>0<=h>>>0){break a}d=d+(h<<2)|0;if((d|0)!=(e|0)){while(1){e=e-4|0;c=J[e>>2];J[e>>2]=0;if(c){tb(c)}if((d|0)!=(e|0)){continue}break}c=J[k+8>>2]}J[a+12>>2]=d}e:{f:{d=J[c+56>>2];g:{if((d|0)>4){break g}e=P(d,12)+a|0;d=J[e+24>>2];if((d|0)!=J[e+28>>2]){J[d>>2]=b;J[e+24>>2]=d+4;break g}h=J[e+20>>2];f=d-h|0;j=f>>2;d=j+1|0;if(d>>>0>=1073741824){break f}g=f>>1;g=f>>>0>=2147483644?1073741823:d>>>0>>0?g:d;if(g){if(g>>>0>=1073741824){break e}d=Aj(g<<2)}else{d=0}j=d+(j<<2)|0;J[j>>2]=b;if((f|0)>0){Vi(d,h,f)}J[e+20>>2]=d;J[e+24>>2]=j+4;J[e+28>>2]=d+(g<<2);if(!h){break g}xj(h)}J[c+60>>2]=b;a=J[a+8>>2];J[k+8>>2]=0;b=a+(b<<2)|0;a=J[b>>2];J[b>>2]=c;if(a){tb(a)}a=J[k+8>>2];J[k+8>>2]=0;if(a){tb(a)}ia=k+16|0;return}La();C()}Za();C()}function zh(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0;i=c;d=a;a:{if(J[a+12>>2]==(b|0)){break a}a=b;b=J[d+4>>2];e=J[d>>2];if((b|0)!=(e|0)){while(1){c=b-12|0;if(H[b-1|0]<0){xj(J[c>>2])}b=c;if((e|0)!=(b|0)){continue}break}}J[d+12>>2]=a;J[d+4>>2]=e;c=J[a>>2];j=a+4|0;if((c|0)==(j|0)){break a}while(1){a=J[d+4>>2];b:{if((a|0)!=J[d+8>>2]){c:{if(H[c+27|0]>=0){b=J[c+20>>2];J[a>>2]=J[c+16>>2];J[a+4>>2]=b;J[a+8>>2]=J[c+24>>2];break c}Ej(a,J[c+16>>2],J[c+20>>2])}J[d+4>>2]=a+12;break b}g=0;d:{e:{f:{e=J[d+4>>2];a=J[d>>2];f=(e-a|0)/12|0;b=f+1|0;if(b>>>0<357913942){h=(J[d+8>>2]-a|0)/12|0;k=h<<1;b=h>>>0>=178956970?357913941:b>>>0>>0?k:b;if(b){if(b>>>0>=357913942){break f}g=Aj(P(b,12))}h=P(b,12);b=P(f,12)+g|0;g:{if(H[c+27|0]>=0){f=J[c+20>>2];J[b>>2]=J[c+16>>2];J[b+4>>2]=f;J[b+8>>2]=J[c+24>>2];break g}Ej(b,J[c+16>>2],J[c+20>>2]);e=J[d+4>>2];a=J[d>>2]}g=g+h|0;f=b+12|0;if((a|0)==(e|0)){break e}while(1){e=e-12|0;h=J[e+4>>2];b=b-12|0;J[b>>2]=J[e>>2];J[b+4>>2]=h;J[b+8>>2]=J[e+8>>2];J[e>>2]=0;J[e+4>>2]=0;J[e+8>>2]=0;if((a|0)!=(e|0)){continue}break}J[d+8>>2]=g;a=J[d+4>>2];J[d+4>>2]=f;e=J[d>>2];J[d>>2]=b;if((a|0)==(e|0)){break d}while(1){b=a-12|0;if(H[a-1|0]<0){xj(J[b>>2])}a=b;if((b|0)!=(e|0)){continue}break}break d}La();C()}Za();C()}J[d+8>>2]=g;J[d+4>>2]=f;J[d>>2]=b}if(e){xj(e)}}b=J[c+4>>2];h:{if(b){while(1){a=b;b=J[b>>2];if(b){continue}break h}}while(1){a=J[c+8>>2];b=J[a>>2]!=(c|0);c=a;if(b){continue}break}}c=a;if((j|0)!=(a|0)){continue}break}}a=0;i:{if((i|0)<0){break i}b=J[d>>2];if((J[d+4>>2]-b|0)/12>>>0<=i>>>0){break i}a=b+P(i,12)|0;a=H[a+11|0]<0?J[a>>2]:a}return a|0}function $e(a,b){var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0;i=ia-16|0;ia=i;J[i>>2]=b;g=-1;a:{if((b|0)==-1){J[i+4>>2]=-1;break a}c=b+1|0;J[i+4>>2]=(c>>>0)%3|0?c:b-2|0;if((b>>>0)%3|0){g=b-1|0;break a}g=b+2|0}J[i+8>>2]=g;n=(b>>>0)/3|0;b:{c:{d:{while(1){e:{f:{k=J[(l<<2)+i>>2];if((k|0)!=-1){c=J[J[J[a+8>>2]+12>>2]+(k<<2)>>2];if((c|0)!=-1){break f}}g=0;c=J[a+216>>2];if((c|0)==J[a+220>>2]){break e}while(1){f=P(g,144)+c|0;c=J[f+136>>2];d=J[f+140>>2];g:{if(c>>>0>>0){J[c>>2]=k;J[f+136>>2]=c+4;break g}h=J[f+132>>2];j=c-h|0;e=j>>2;c=e+1|0;if(c>>>0>=1073741824){break d}m=e<<2;d=d-h|0;e=d>>1;d=d>>>0>=2147483644?1073741823:c>>>0>>0?e:c;if(d){if(d>>>0>=1073741824){break c}c=Aj(d<<2)}else{c=0}e=m+c|0;J[e>>2]=k;if((j|0)>0){Vi(c,h,j)}J[f+132>>2]=c;J[f+136>>2]=e+4;J[f+140>>2]=c+(d<<2);if(!h){break g}xj(h)}g=g+1|0;c=J[a+216>>2];if(g>>>0<(J[a+220>>2]-c|0)/144>>>0){continue}break}break e}if((b|0)==-1|(c>>>0)/3>>>0>>0){break e}g=0;if(J[a+220>>2]==J[a+216>>2]){break e}while(1){h:{if(!le(J[a+368>>2]+(g<<4)|0)){break h}f=J[a+216>>2]+P(g,144)|0;c=J[f+136>>2];d=J[f+140>>2];if(c>>>0>>0){J[c>>2]=k;J[f+136>>2]=c+4;break h}h=J[f+132>>2];j=c-h|0;e=j>>2;c=e+1|0;if(c>>>0>=1073741824){break b}m=e<<2;d=d-h|0;e=d>>1;d=d>>>0>=2147483644?1073741823:c>>>0>>0?e:c;if(d){if(d>>>0>=1073741824){break c}c=Aj(d<<2)}else{c=0}e=m+c|0;J[e>>2]=k;if((j|0)>0){Vi(c,h,j)}J[f+132>>2]=c;J[f+136>>2]=e+4;J[f+140>>2]=c+(d<<2);if(!h){break h}xj(h)}g=g+1|0;if(g>>>0<(J[a+220>>2]-J[a+216>>2]|0)/144>>>0){continue}break}}l=l+1|0;if((l|0)!=3){continue}break}ia=i+16|0;return 1}La();C()}Za();C()}La();C()}function Th(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0;m=ia-16|0;ia=m;k=J[b+80>>2];b=K[c+24|0];a=P(k,b);a:{b:{c:{d:{e=J[c+28>>2];if(!(!K[c+84|0]|(e|0)!=1&(e|0)!=2)){b=J[c+48>>2];c=J[J[c>>2]>>2];J[m+8>>2]=0;J[m>>2]=0;J[m+4>>2]=0;if(a){if((a|0)<0){break d}g=Aj(a);h=Vi(g,b+c|0,a)+a|0}a=J[d>>2];if(a){J[d+4>>2]=a;xj(a)}J[d+8>>2]=h;J[d+4>>2]=h;J[d>>2]=g;a=1;break a}if(b){g=Aj(b);Xi(g,0,b)}e:{f=J[d+4>>2];e=J[d>>2];j=f-e|0;f:{if(j>>>0>>0){l=a-j|0;i=J[d+8>>2];if(l>>>0<=i-f>>>0){n=d,o=Xi(f,0,l)+l|0,J[n+4>>2]=o;break f}if((a|0)<0){break e}f=i-e|0;i=f<<1;i=f>>>0>=1073741823?2147483647:a>>>0>>0?i:a;f=Aj(i);Xi(f+j|0,0,l);if((j|0)>0){Vi(f,e,j)}J[d+8>>2]=f+i;J[d+4>>2]=a+f;J[d>>2]=f;if(!e){break f}xj(e);break f}if(a>>>0>=j>>>0){break f}J[d+4>>2]=a+e}if(!k){b=0;break c}if(!b){a=0;b=1;while(1){if(!yg(c,K[c+84|0]?a:J[J[c+68>>2]+(a<<2)>>2],H[c+24|0],g)){break c}a=a+1|0;b=k>>>0>a>>>0;if((a|0)!=(k|0)){continue}break}break c}l=b&252;j=b&3;i=b>>>0<4;b=1;e=0;while(1){if(!yg(c,K[c+84|0]?e:J[J[c+68>>2]+(e<<2)>>2],H[c+24|0],g)){break c}b=0;a=0;f=0;if(!i){while(1){H[J[d>>2]+h|0]=K[a+g|0];H[(J[d>>2]+h|0)+1|0]=K[(a|1)+g|0];H[(J[d>>2]+h|0)+2|0]=K[(a|2)+g|0];H[(J[d>>2]+h|0)+3|0]=K[(a|3)+g|0];a=a+4|0;h=h+4|0;f=f+4|0;if((l|0)!=(f|0)){continue}break}}if(j){while(1){H[J[d>>2]+h|0]=K[a+g|0];a=a+1|0;h=h+1|0;b=b+1|0;if((j|0)!=(b|0)){continue}break}}e=e+1|0;b=k>>>0>e>>>0;if((e|0)!=(k|0)){continue}break}a=e>>>0>=k>>>0;break b}La();C()}La();C()}a=b^1;if(!g){break a}}xj(g)}ia=m+16|0;return a&1}function Sh(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0;m=ia-16|0;ia=m;k=J[b+80>>2];b=K[c+24|0];a=P(k,b);a:{b:{c:{d:{e=J[c+28>>2];if(!(!K[c+84|0]|(e|0)!=1&(e|0)!=2)){b=J[c+48>>2];c=J[J[c>>2]>>2];J[m+8>>2]=0;J[m>>2]=0;J[m+4>>2]=0;if(a){if((a|0)<0){break d}g=Aj(a);h=Vi(g,b+c|0,a)+a|0}a=J[d>>2];if(a){J[d+4>>2]=a;xj(a)}J[d+8>>2]=h;J[d+4>>2]=h;J[d>>2]=g;a=1;break a}if(b){g=Aj(b);Xi(g,0,b)}e:{f=J[d+4>>2];e=J[d>>2];j=f-e|0;f:{if(j>>>0>>0){l=a-j|0;i=J[d+8>>2];if(l>>>0<=i-f>>>0){n=d,o=Xi(f,0,l)+l|0,J[n+4>>2]=o;break f}if((a|0)<0){break e}f=i-e|0;i=f<<1;i=f>>>0>=1073741823?2147483647:a>>>0>>0?i:a;f=Aj(i);Xi(f+j|0,0,l);if((j|0)>0){Vi(f,e,j)}J[d+8>>2]=f+i;J[d+4>>2]=a+f;J[d>>2]=f;if(!e){break f}xj(e);break f}if(a>>>0>=j>>>0){break f}J[d+4>>2]=a+e}if(!k){b=0;break c}if(!b){a=0;b=1;while(1){if(!xg(c,K[c+84|0]?a:J[J[c+68>>2]+(a<<2)>>2],H[c+24|0],g)){break c}a=a+1|0;b=k>>>0>a>>>0;if((a|0)!=(k|0)){continue}break}break c}l=b&252;j=b&3;i=b>>>0<4;b=1;e=0;while(1){if(!xg(c,K[c+84|0]?e:J[J[c+68>>2]+(e<<2)>>2],H[c+24|0],g)){break c}b=0;a=0;f=0;if(!i){while(1){H[J[d>>2]+h|0]=K[a+g|0];H[(J[d>>2]+h|0)+1|0]=K[(a|1)+g|0];H[(J[d>>2]+h|0)+2|0]=K[(a|2)+g|0];H[(J[d>>2]+h|0)+3|0]=K[(a|3)+g|0];a=a+4|0;h=h+4|0;f=f+4|0;if((l|0)!=(f|0)){continue}break}}if(j){while(1){H[J[d>>2]+h|0]=K[a+g|0];a=a+1|0;h=h+1|0;b=b+1|0;if((j|0)!=(b|0)){continue}break}}e=e+1|0;b=k>>>0>e>>>0;if((e|0)!=(k|0)){continue}break}a=e>>>0>=k>>>0;break b}La();C()}La();C()}a=b^1;if(!g){break a}}xj(g)}ia=m+16|0;return a&1}function _e(a,b){var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0;h=ia-16|0;ia=h;J[h>>2]=b;c=-1;a:{if((b|0)==-1){J[h+4>>2]=-1;break a}c=b+1|0;J[h+4>>2]=(c>>>0)%3|0?c:b-2|0;if((b>>>0)%3|0){c=b-1|0;break a}c=b+2|0}J[h+8>>2]=c;b:{c:{while(1){j=J[(k<<2)+h>>2];d:{if(!((j|0)==-1|J[J[J[a+8>>2]+12>>2]+(j<<2)>>2]==-1)){b=0;if(J[a+220>>2]==J[a+216>>2]){break d}while(1){e:{f:{if(!le(J[a+368>>2]+(b<<4)|0)){break f}f=J[a+216>>2]+P(b,144)|0;c=J[f+136>>2];d=J[f+140>>2];if(c>>>0>>0){J[c>>2]=j;J[f+136>>2]=c+4;break f}g=J[f+132>>2];i=c-g|0;e=i>>2;c=e+1|0;if(c>>>0>=1073741824){break e}l=e<<2;d=d-g|0;e=d>>1;d=d>>>0>=2147483644?1073741823:c>>>0>>0?e:c;if(d){if(d>>>0>=1073741824){break b}c=Aj(d<<2)}else{c=0}e=l+c|0;J[e>>2]=j;if((i|0)>0){Vi(c,g,i)}J[f+132>>2]=c;J[f+136>>2]=e+4;J[f+140>>2]=c+(d<<2);if(!g){break f}xj(g)}b=b+1|0;if(b>>>0<(J[a+220>>2]-J[a+216>>2]|0)/144>>>0){continue}break d}break}La();C()}b=0;c=J[a+216>>2];if((c|0)==J[a+220>>2]){break d}while(1){f=P(b,144)+c|0;c=J[f+136>>2];d=J[f+140>>2];g:{if(c>>>0>>0){J[c>>2]=j;J[f+136>>2]=c+4;break g}g=J[f+132>>2];i=c-g|0;e=i>>2;c=e+1|0;if(c>>>0>=1073741824){break c}l=e<<2;d=d-g|0;e=d>>1;d=d>>>0>=2147483644?1073741823:c>>>0>>0?e:c;if(d){if(d>>>0>=1073741824){break b}c=Aj(d<<2)}else{c=0}e=l+c|0;J[e>>2]=j;if((i|0)>0){Vi(c,g,i)}J[f+132>>2]=c;J[f+136>>2]=e+4;J[f+140>>2]=c+(d<<2);if(!g){break g}xj(g)}b=b+1|0;c=J[a+216>>2];if(b>>>0<(J[a+220>>2]-c|0)/144>>>0){continue}break}}k=k+1|0;if((k|0)!=3){continue}break}ia=h+16|0;return 1}La();C()}Za();C()}function Vd(a,b,c,d){var e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0;k=J[b+16>>2];h=J[c+4>>2]-k|0;f=h;e=J[c>>2]-k|0;J[c>>2]=e;J[c+4>>2]=f;l=J[b+16>>2];f=f>>31;g=(f^h)-f|0;f=e>>31;m=l>>>0>=g+((f^e)-f|0)>>>0;a:{if(m){f=h;break a}b:{c:{if((e|0)>=0){g=1;j=1;if((h|0)>=0){break b}i=1;g=-1;j=-1;if(e){break c}break b}i=-1;g=-1;j=-1;if((h|0)<=0){break b}}g=(h|0)<=0?-1:1;j=i}n=P(j,l);f=(e<<1)-n|0;i=(P(g,j)|0)>=0;e=P(g,l);f=((i?0-f|0:f)+e|0)/2|0;J[c+4>>2]=f;e=(h<<1)-e|0;e=((i?0-e|0:e)+n|0)/2|0;J[c>>2]=e}d:{e:{f:{g:{h:{i:{j:{if(e){if((e|0)<0){break j}if((f|0)>=0){break i}break f}if(f){break h}j=1;g=0;f=0;i=0;break d}j=1;if((f|0)>0){break g}i=(f|0)>0?253:0;g=f;f=e;break d}g=0-f|0;f=0-e|0;i=254;break e}if((f|0)<=0){break f}}f=0-f|0;g=e;i=253;break e}g=0-e|0;i=255}J[c>>2]=f;J[c+4>>2]=g;j=0}e=J[d>>2]+f|0;h=J[b+16>>2];k:{if((e|0)>(h|0)){e=e-J[b+4>>2]|0;break k}if((0-h|0)<=(e|0)){break k}e=J[b+4>>2]+e|0}c=J[d+4>>2]+g|0;l:{if((h|0)<(c|0)){c=c-J[b+4>>2]|0;break l}if((0-h|0)<=(c|0)){break l}c=J[b+4>>2]+c|0}m:{if(j){b=c;break m}b=c;n:{switch((i&3)-1|0){case 0:b=0-e|0;e=c;break m;case 1:b=0-c|0;e=0-e|0;break m;case 2:break n;default:break m}}b=e;e=0-c|0}o:{if(m){c=b;break o}p:{q:{if((e|0)>=0){c=1;f=1;if((b|0)>=0){break p}d=1;c=-1;f=-1;if(e){break q}break p}d=-1;c=-1;f=-1;if((b|0)<=0){break p}}c=(b|0)<=0?-1:1;f=d}d=e<<1;e=P(f,h);d=d-e|0;f=(P(c,f)|0)>=0;g=f?0-d|0:d;d=P(c,h);c=(g+d|0)/2|0;b=(b<<1)-d|0;e=(e+(f?0-b|0:b)|0)/2|0}b=a;J[b>>2]=e+k;J[b+4>>2]=c+k}function Ea(a,b,c,d){var e=0,f=0,g=0,h=0,i=0,j=0,k=0;i=d-c|0;if((i|0)<=0){return}a:{g=J[a+8>>2];h=J[a+4>>2];if((g-h|0)>=(i|0)){j=h-b|0;if((j|0)>=(i|0)){f=h;g=d;break a}f=h;g=c+j|0;if((g|0)!=(d|0)){e=g;while(1){H[f|0]=K[e|0];f=f+1|0;e=e+1|0;if((e|0)!=(d|0)){continue}break}}J[a+4>>2]=f;if((j|0)>0){break a}return}f=J[a>>2];e=(h-f|0)+i|0;if((e|0)>=0){j=b-f|0;g=g-f|0;k=g<<1;k=g>>>0>=1073741823?2147483647:e>>>0>>0?k:e;if(k){g=Aj(k)}else{g=0}e=j+g|0;if((c|0)!=(d|0)){e=Vi(e,c,i)+i|0}if((j|0)>0){Vi(g,f,j)}if((b|0)!=(h|0)){d=(b^-1)+h|0;f=h-b&7;if(f){c=0;while(1){H[e|0]=K[b|0];e=e+1|0;b=b+1|0;c=c+1|0;if((f|0)!=(c|0)){continue}break}}if(d>>>0>=7){while(1){H[e|0]=K[b|0];H[e+1|0]=K[b+1|0];H[e+2|0]=K[b+2|0];H[e+3|0]=K[b+3|0];H[e+4|0]=K[b+4|0];H[e+5|0]=K[b+5|0];H[e+6|0]=K[b+6|0];H[e+7|0]=K[b+7|0];e=e+8|0;b=b+8|0;if((h|0)!=(b|0)){continue}break}}f=J[a>>2]}J[a+8>>2]=g+k;J[a+4>>2]=e;J[a>>2]=g;if(f){xj(f)}return}La();C()}e=f;d=e-i|0;if(h>>>0>d>>>0){while(1){H[e|0]=K[d|0];e=e+1|0;d=d+1|0;if(h>>>0>d>>>0){continue}break}}J[a+4>>2]=e;a=b+i|0;if((a|0)!=(f|0)){a=f-a|0;Wi(f-a|0,b,a)}if((c|0)==(g|0)){return}a=(c^-1)+g|0;f=g-c&7;b:{if(!f){e=b;break b}d=0;e=b;while(1){H[e|0]=K[c|0];e=e+1|0;c=c+1|0;d=d+1|0;if((f|0)!=(d|0)){continue}break}}if(a>>>0<7){return}while(1){H[e|0]=K[c|0];H[e+1|0]=K[c+1|0];H[e+2|0]=K[c+2|0];H[e+3|0]=K[c+3|0];H[e+4|0]=K[c+4|0];H[e+5|0]=K[c+5|0];H[e+6|0]=K[c+6|0];H[e+7|0]=K[c+7|0];e=e+8|0;c=c+8|0;if((g|0)!=(c|0)){continue}break}}function eb(a,b){var c=0,d=0,e=0,f=0;if(!J[a+64>>2]){c=Aj(32);J[c+16>>2]=0;J[c+20>>2]=0;J[c+8>>2]=0;J[c>>2]=0;J[c+4>>2]=0;J[c+24>>2]=0;J[c+28>>2]=0;d=J[a+64>>2];J[a+64>>2]=c;if(d){c=J[d>>2];if(c){J[d+4>>2]=c;xj(c)}xj(d);c=J[a+64>>2]}J[a>>2]=c;d=J[c+20>>2];J[a+8>>2]=J[c+16>>2];J[a+12>>2]=d;d=J[c+24>>2];c=J[c+28>>2];J[a+48>>2]=0;J[a+52>>2]=0;J[a+40>>2]=0;J[a+44>>2]=0;J[a+16>>2]=d;J[a+20>>2]=c}a:{H[a+24|0]=K[b+24|0];J[a+28>>2]=J[b+28>>2];H[a+32|0]=K[b+32|0];c=J[b+44>>2];J[a+40>>2]=J[b+40>>2];J[a+44>>2]=c;c=J[b+52>>2];J[a+48>>2]=J[b+48>>2];J[a+52>>2]=c;J[a+56>>2]=J[b+56>>2];c=J[b+12>>2];J[a+8>>2]=J[b+8>>2];J[a+12>>2]=c;c=J[b+20>>2];J[a+16>>2]=J[b+16>>2];J[a+20>>2]=c;J[a+60>>2]=J[b+60>>2];d=J[b>>2];b:{if(!d){J[a>>2]=0;c=1;break b}e=J[a>>2];c=0;if(!e){break b}c=J[d>>2];pg(e,c,J[d+4>>2]-c|0,0);c=1}c:{if(!c){break c}H[a+84|0]=K[b+84|0];J[a+80>>2]=J[b+80>>2];if((a|0)!=(b|0)){fb(a+68|0,J[b+68>>2],J[b+72>>2])}d=J[b+88>>2];d:{if(d){b=Aj(40);c=J[d>>2];J[b+16>>2]=0;J[b+8>>2]=0;J[b+12>>2]=0;J[b>>2]=c;c=J[d+12>>2];e=J[d+8>>2];if((c|0)!=(e|0)){e=c-e|0;if((e|0)<0){break a}c=Aj(e);J[b+8>>2]=c;J[b+12>>2]=c;J[b+16>>2]=c+e;f=J[d+8>>2];e=J[d+12>>2]-f|0;if((e|0)>0){c=Vi(c,f,e)+e|0}J[b+12>>2]=c}c=J[d+36>>2];J[b+32>>2]=J[d+32>>2];J[b+36>>2]=c;c=J[d+28>>2];J[b+24>>2]=J[d+24>>2];J[b+28>>2]=c;c=J[a+88>>2];J[a+88>>2]=b;if(c){break d}break c}c=J[a+88>>2];J[a+88>>2]=0;if(!c){break c}}a=J[c+8>>2];if(a){J[c+12>>2]=a;xj(a)}xj(c)}return}La();C()}function zd(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0;J[a+8>>2]=e;m=a+32|0;h=J[m>>2];g=J[a+36>>2]-h>>2;a:{if(g>>>0>>0){Oa(m,e-g|0);f=J[a+8>>2];break a}f=e;if(f>>>0>=g>>>0){break a}J[a+36>>2]=h+(e<<2);f=e}g=e>>>0>1073741823?-1:e<<2;n=Xi(Aj(g),0,g);b:{if((f|0)<=0){break b}h=J[a+32>>2];while(1){f=i<<2;g=J[f+n>>2];j=J[a+16>>2];c:{if((g|0)>(j|0)){J[f+h>>2]=j;break c}f=f+h|0;j=J[a+12>>2];if((j|0)>(g|0)){J[f>>2]=j;break c}J[f>>2]=g}f=J[a+8>>2];i=i+1|0;if((f|0)>(i|0)){continue}break}if((f|0)<=0){break b}i=0;while(1){g=i<<2;f=g+c|0;g=J[b+g>>2]+J[g+h>>2]|0;J[f>>2]=g;d:{if((g|0)>J[a+16>>2]){g=g-J[a+20>>2]|0}else{if((g|0)>=J[a+12>>2]){break d}g=g+J[a+20>>2]|0}J[f>>2]=g}f=J[a+8>>2];i=i+1|0;if((f|0)>(i|0)){continue}break}}if(!((d|0)<=(e|0)|(f|0)<=0)){p=0-e<<2;g=e;while(1){e:{if((f|0)<=0){break e}l=g<<2;o=l+c|0;q=o+p|0;j=J[m>>2];i=0;while(1){f=i<<2;h=J[f+q>>2];k=J[a+16>>2];f:{if((h|0)>(k|0)){J[f+j>>2]=k;break f}f=f+j|0;k=J[a+12>>2];if((k|0)>(h|0)){J[f>>2]=k;break f}J[f>>2]=h}f=J[a+8>>2];i=i+1|0;if((f|0)>(i|0)){continue}break}i=0;if((f|0)<=0){break e}l=b+l|0;while(1){h=i<<2;f=h+o|0;h=J[h+l>>2]+J[h+j>>2]|0;J[f>>2]=h;g:{if((h|0)>J[a+16>>2]){h=h-J[a+20>>2]|0}else{if((h|0)>=J[a+12>>2]){break g}h=h+J[a+20>>2]|0}J[f>>2]=h}f=J[a+8>>2];i=i+1|0;if((f|0)>(i|0)){continue}break}}g=e+g|0;if((g|0)<(d|0)){continue}break}}xj(n);return 1}function nf(a,b){var c=0,d=0,e=0,f=0,g=0;d=-1;f=-1;a:{if((b|0)==-1){break a}c=b+1|0;d=(c>>>0)%3|0?c:b-2|0;f=b-1|0;if((b>>>0)%3|0){break a}f=b+2|0}b:{c:{d:{e:{f:{g:{e=J[a+184>>2];switch(e|0){case 7:break d;case 3:break e;case 5:break f;case 0:case 1:break g;default:break b}}g=J[a+148>>2];c=-1;e=1;d=((d|0)!=-1?J[J[g>>2]+(d<<2)>>2]:c)<<2;c=J[a+156>>2];d=d+c|0;J[d>>2]=J[d>>2]+1;c=(((f|0)==-1?-1:J[J[g>>2]+(f<<2)>>2])<<2)+c|0;break c}g=J[a+148>>2];c=J[a+156>>2];e=c+(((b|0)==-1?-1:J[J[g>>2]+(b<<2)>>2])<<2)|0;J[e>>2]=J[e>>2]+1;d=(((d|0)==-1?-1:J[J[g>>2]+(d<<2)>>2])<<2)+c|0;J[d>>2]=J[d>>2]+1;e=2;c=(((f|0)==-1?-1:J[J[g>>2]+(f<<2)>>2])<<2)+c|0;break c}g=J[a+148>>2];c=J[a+156>>2];e=c+(((b|0)==-1?-1:J[J[g>>2]+(b<<2)>>2])<<2)|0;J[e>>2]=J[e>>2]+1;d=(((d|0)==-1?-1:J[J[g>>2]+(d<<2)>>2])<<2)+c|0;J[d>>2]=J[d>>2]+2;e=1;c=(((f|0)==-1?-1:J[J[g>>2]+(f<<2)>>2])<<2)+c|0;break c}g=J[a+148>>2];c=J[a+156>>2];e=c+(((b|0)==-1?-1:J[J[g>>2]+(b<<2)>>2])<<2)|0;J[e>>2]=J[e>>2]+2;d=(((d|0)==-1?-1:J[J[g>>2]+(d<<2)>>2])<<2)+c|0;J[d>>2]=J[d>>2]+2;e=2;c=(((f|0)==-1?-1:J[J[g>>2]+(f<<2)>>2])<<2)+c|0}J[c>>2]=J[c>>2]+e;e=J[a+184>>2]}h:{switch(e|0){case 0:case 5:f=J[a+156>>2];c=-1;i:{if((b|0)==-1){break i}d=b+1|0;b=(d>>>0)%3|0?d:b-2|0;c=-1;if((b|0)==-1){break i}c=J[J[J[a+148>>2]>>2]+(b<<2)>>2]}if(J[f+(c<<2)>>2]<=5){J[a+188>>2]=5;return}J[a+188>>2]=0;return;default:break h}}J[a+188>>2]=-1} +function Sc(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0;i=ia-32|0;ia=i;J[i+28>>2]=0;a:{b:{if(L[b+38>>1]<=513){c=J[b+20>>2];d=J[b+16>>2];f=d+4|0;c=f>>>0<4?c+1|0:c;e=J[b+12>>2];if((e|0)<=(c|0)&f>>>0>M[b+8>>2]|(c|0)>(e|0)){break a}d=d+J[b>>2]|0;d=K[d|0]|K[d+1|0]<<8|(K[d+2|0]<<16|K[d+3|0]<<24);J[b+16>>2]=f;J[b+20>>2]=c;break b}if(!Jc(1,i+28|0,b)){break a}d=J[i+28>>2]}if(!d){break a}Kc(a+76|0,d);c=i+8|0;J[c>>2]=0;J[c+4>>2]=0;H[c+5|0]=0;H[c+6|0]=0;H[c+7|0]=0;H[c+8|0]=0;H[c+9|0]=0;H[c+10|0]=0;H[c+11|0]=0;H[c+12|0]=0;c:{if(!je(c,b)){break c}e=1;while(1){g=1<>2]+(h>>>3&536870908)|0;e=e^j;if(e&1){g=J[f>>2]&(g^-1)}else{g=g|J[f>>2]}e=e^1;J[f>>2]=g;h=h+1|0;if((h|0)!=(d|0)){continue}break}d=J[b+12>>2];h=d;c=J[b+20>>2];f=c;e=J[b+16>>2];g=e+4|0;c=g>>>0<4?c+1|0:c;j=J[b+8>>2];if(j>>>0>>0&(c|0)>=(d|0)|(c|0)>(d|0)){break c}k=J[b>>2];d=k+e|0;d=K[d|0]|K[d+1|0]<<8|(K[d+2|0]<<16|K[d+3|0]<<24);J[b+16>>2]=g;J[b+20>>2]=c;c=f;f=e+8|0;c=f>>>0<8?c+1|0:c;e=f;f=c;if(e>>>0>j>>>0&(c|0)>=(h|0)|(c|0)>(h|0)){break c}c=g+k|0;c=K[c|0]|K[c+1|0]<<8|(K[c+2|0]<<16|K[c+3|0]<<24);J[b+16>>2]=e;J[b+20>>2]=f;if((c|0)<(d|0)){break c}J[a+16>>2]=c;J[a+12>>2]=d;b=(c>>31)-((d>>31)+(c>>>0>>0)|0)|0;c=c-d|0;if(!b&c>>>0>2147483646|b){break c}l=1;b=c+1|0;J[a+20>>2]=b;c=b>>>1|0;J[a+24>>2]=c;J[a+28>>2]=0-c;if(b&1){break c}J[a+24>>2]=c-1}}ia=i+32|0;return l|0}function Qh(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0;a=0;i=J[b+80>>2];e=K[c+24|0];g=P(i,e);a:{if(!e){break a}j=e<<2;a=Aj(j);b=a;k=e&7;if(k){b=a;while(1){J[b>>2]=-1073741824;b=b+4|0;f=f+1|0;if((k|0)!=(f|0)){continue}break}}if((e-1&1073741823)>>>0<7){break a}f=a+j|0;while(1){J[b+24>>2]=-1073741824;J[b+28>>2]=-1073741824;J[b+16>>2]=-1073741824;J[b+20>>2]=-1073741824;J[b+8>>2]=-1073741824;J[b+12>>2]=-1073741824;J[b>>2]=-1073741824;J[b+4>>2]=-1073741824;b=b+32|0;if((f|0)!=(b|0)){continue}break}}f=J[d>>2];b=J[d+4>>2]-f>>2;b:{if(b>>>0>>0){Oa(d,g-b|0);break b}if(b>>>0<=g>>>0){break b}J[d+4>>2]=f+(g<<2)}c:{d:{e:{if(!i){break e}if(!e){b=0;h=1;while(1){if(!Uc(c,K[c+84|0]?b:J[J[c+68>>2]+(b<<2)>>2],H[c+24|0],a)){break e}b=b+1|0;h=i>>>0>b>>>0;if((b|0)!=(i|0)){continue}break}break e}n=e&252;j=e&3;f=0;o=e>>>0<4;h=1;while(1){if(!Uc(c,K[c+84|0]?l:J[J[c+68>>2]+(l<<2)>>2],H[c+24|0],a)){break e}k=J[d>>2];m=0;b=0;h=0;if(!o){while(1){e=k+(f<<2)|0;g=b<<2;N[e>>2]=N[g+a>>2];N[e+4>>2]=N[(g|4)+a>>2];N[e+8>>2]=N[(g|8)+a>>2];N[e+12>>2]=N[(g|12)+a>>2];b=b+4|0;f=f+4|0;h=h+4|0;if((n|0)!=(h|0)){continue}break}}if(j){while(1){N[k+(f<<2)>>2]=N[(b<<2)+a>>2];b=b+1|0;f=f+1|0;m=m+1|0;if((j|0)!=(m|0)){continue}break}}l=l+1|0;h=l>>>0>>0;if((i|0)!=(l|0)){continue}break}break d}if(!a){break c}}xj(a)}return(h^-1)&1}function hc(a){a=a|0;var b=0,c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0;e=ia-16|0;ia=e;h=na[J[J[a>>2]+24>>2]](a)|0;a:{if((h|0)<=0){break a}l=a+48|0;i=1;while(1){b:{c:{if(!J[(na[J[J[a>>2]+28>>2]](a)|0)+40>>2]){break c}j=f<<2;g=J[j+J[a+36>>2]>>2];b=J[g+8>>2];k=Yb(g);if(!k){break c}g=J[(na[J[J[a>>2]+28>>2]](a)|0)+40>>2];J[e+12>>2]=J[b+56>>2];b=Aj(32);J[e>>2]=b;J[e+4>>2]=24;J[e+8>>2]=-2147483616;c=K[1229]|K[1230]<<8|(K[1231]<<16|K[1232]<<24);d=K[1225]|K[1226]<<8|(K[1227]<<16|K[1228]<<24);H[b+16|0]=d;H[b+17|0]=d>>>8;H[b+18|0]=d>>>16;H[b+19|0]=d>>>24;H[b+20|0]=c;H[b+21|0]=c>>>8;H[b+22|0]=c>>>16;H[b+23|0]=c>>>24;c=K[1221]|K[1222]<<8|(K[1223]<<16|K[1224]<<24);d=K[1217]|K[1218]<<8|(K[1219]<<16|K[1220]<<24);H[b+8|0]=d;H[b+9|0]=d>>>8;H[b+10|0]=d>>>16;H[b+11|0]=d>>>24;H[b+12|0]=c;H[b+13|0]=c>>>8;H[b+14|0]=c>>>16;H[b+15|0]=c>>>24;c=K[1213]|K[1214]<<8|(K[1215]<<16|K[1216]<<24);d=K[1209]|K[1210]<<8|(K[1211]<<16|K[1212]<<24);H[b|0]=d;H[b+1|0]=d>>>8;H[b+2|0]=d>>>16;H[b+3|0]=d>>>24;H[b+4|0]=c;H[b+5|0]=c>>>8;H[b+6|0]=c>>>16;H[b+7|0]=c>>>24;H[b+24|0]=0;b=Ob(g,e+12|0,e);if(H[e+11|0]<0){xj(J[e>>2])}if(!b){break c}eb(J[J[J[a+36>>2]+j>>2]+8>>2],k);break b}b=J[J[a+36>>2]+(f<<2)>>2];if(!(na[J[J[b>>2]+24>>2]](b,l)|0)){break a}}f=f+1|0;i=(h|0)>(f|0);if((f|0)!=(h|0)){continue}break}}ia=e+16|0;return(i^-1)&1}function Yc(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0;j=ia-16|0;ia=j;c=J[b+20>>2];d=J[b+16>>2];g=d+4|0;c=g>>>0<4?c+1|0:c;e=J[b+12>>2];a:{if((e|0)<=(c|0)&g>>>0>M[b+8>>2]|(c|0)>(e|0)){break a}d=d+J[b>>2]|0;d=K[d|0]|K[d+1|0]<<8|(K[d+2|0]<<16|K[d+3|0]<<24);J[b+16>>2]=g;J[b+20>>2]=c;if((d|0)<0){break a}Kc(a+76|0,d);c=j;J[c>>2]=0;J[c+4>>2]=0;H[c+5|0]=0;H[c+6|0]=0;H[c+7|0]=0;H[c+8|0]=0;H[c+9|0]=0;H[c+10|0]=0;H[c+11|0]=0;H[c+12|0]=0;b:{if(!je(c,b)){break b}if(d){e=1;while(1){f=1<>2]+(h>>>3&536870908)|0;e=e^i;if(e&1){f=J[g>>2]&(f^-1)}else{f=f|J[g>>2]}e=e^1;J[g>>2]=f;h=h+1|0;if((d|0)!=(h|0)){continue}break}}h=0;d=J[b+12>>2];g=d;c=J[b+20>>2];e=c;f=J[b+16>>2];i=f+4|0;c=i>>>0<4?c+1|0:c;k=J[b+8>>2];if(k>>>0>>0&(c|0)>=(d|0)|(c|0)>(d|0)){break b}l=J[b>>2];d=l+f|0;d=K[d|0]|K[d+1|0]<<8|(K[d+2|0]<<16|K[d+3|0]<<24);J[b+16>>2]=i;J[b+20>>2]=c;c=e;e=f+8|0;c=e>>>0<8?c+1|0:c;f=e;e=c;if(f>>>0>k>>>0&(c|0)>=(g|0)|(c|0)>(g|0)){break b}c=i+l|0;c=K[c|0]|K[c+1|0]<<8|(K[c+2|0]<<16|K[c+3|0]<<24);J[b+16>>2]=f;J[b+20>>2]=e;if((c|0)<(d|0)){break b}J[a+16>>2]=c;J[a+12>>2]=d;b=(c>>31)-((d>>31)+(c>>>0>>0)|0)|0;c=c-d|0;if(!b&c>>>0>2147483646|b){break b}h=1;b=c+1|0;J[a+20>>2]=b;c=b>>>1|0;J[a+24>>2]=c;J[a+28>>2]=0-c;if(b&1){break b}J[a+24>>2]=c-1}}ia=j+16|0;return h|0}function Wh(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0;k=ia-16|0;ia=k;i=J[b+80>>2];b=K[c+24|0];a=P(i,b);a:{b:{c:{d:{e=J[c+28>>2];if(!(!K[c+84|0]|(e|0)!=5&(e|0)!=6)){b=J[c+48>>2];c=J[J[c>>2]>>2];J[k+8>>2]=0;J[k>>2]=0;J[k+4>>2]=0;if(a){if((a|0)<0){break d}a=a<<2;f=Aj(a);g=Vi(f,b+c|0,a)+a|0}a=J[d>>2];if(a){J[d+4>>2]=a;xj(a)}J[d+8>>2]=g;J[d+4>>2]=g;J[d>>2]=f;a=1;break a}if(b){e=b<<2;f=Aj(e);Xi(f,0,e)}j=J[d>>2];e=J[d+4>>2]-j>>2;e:{if(e>>>0>>0){Oa(d,a-e|0);break e}if(a>>>0>=e>>>0){break e}J[d+4>>2]=j+(a<<2)}if(!i){break c}if(!b){a=0;h=1;while(1){if(!Dg(c,K[c+84|0]?a:J[J[c+68>>2]+(a<<2)>>2],H[c+24|0],f)){break c}a=a+1|0;h=i>>>0>a>>>0;if((a|0)!=(i|0)){continue}break}break c}o=b&252;m=b&3;p=b>>>0<4;h=1;b=0;while(1){if(!Dg(c,K[c+84|0]?b:J[J[c+68>>2]+(b<<2)>>2],H[c+24|0],f)){break c}n=J[d>>2];l=0;a=0;h=0;if(!p){while(1){e=(g<<2)+n|0;j=a<<2;J[e>>2]=J[j+f>>2];J[e+4>>2]=J[(j|4)+f>>2];J[e+8>>2]=J[(j|8)+f>>2];J[e+12>>2]=J[(j|12)+f>>2];a=a+4|0;g=g+4|0;h=h+4|0;if((o|0)!=(h|0)){continue}break}}if(m){while(1){J[(g<<2)+n>>2]=J[(a<<2)+f>>2];a=a+1|0;g=g+1|0;l=l+1|0;if((l|0)!=(m|0)){continue}break}}b=b+1|0;h=i>>>0>b>>>0;if((b|0)!=(i|0)){continue}break}a=b>>>0>=i>>>0;break b}La();C()}a=!h;if(!f){break a}}xj(f)}ia=k+16|0;return a&1}function Rh(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0;k=ia-16|0;ia=k;i=J[b+80>>2];b=K[c+24|0];a=P(i,b);a:{b:{c:{d:{e=J[c+28>>2];if(!(!K[c+84|0]|(e|0)!=5&(e|0)!=6)){b=J[c+48>>2];c=J[J[c>>2]>>2];J[k+8>>2]=0;J[k>>2]=0;J[k+4>>2]=0;if(a){if((a|0)<0){break d}a=a<<2;f=Aj(a);g=Vi(f,b+c|0,a)+a|0}a=J[d>>2];if(a){J[d+4>>2]=a;xj(a)}J[d+8>>2]=g;J[d+4>>2]=g;J[d>>2]=f;a=1;break a}if(b){e=b<<2;f=Aj(e);Xi(f,0,e)}j=J[d>>2];e=J[d+4>>2]-j>>2;e:{if(e>>>0>>0){Oa(d,a-e|0);break e}if(a>>>0>=e>>>0){break e}J[d+4>>2]=j+(a<<2)}if(!i){break c}if(!b){a=0;h=1;while(1){if(!Cg(c,K[c+84|0]?a:J[J[c+68>>2]+(a<<2)>>2],H[c+24|0],f)){break c}a=a+1|0;h=i>>>0>a>>>0;if((a|0)!=(i|0)){continue}break}break c}o=b&252;m=b&3;p=b>>>0<4;h=1;b=0;while(1){if(!Cg(c,K[c+84|0]?b:J[J[c+68>>2]+(b<<2)>>2],H[c+24|0],f)){break c}n=J[d>>2];l=0;a=0;h=0;if(!p){while(1){e=(g<<2)+n|0;j=a<<2;J[e>>2]=J[j+f>>2];J[e+4>>2]=J[(j|4)+f>>2];J[e+8>>2]=J[(j|8)+f>>2];J[e+12>>2]=J[(j|12)+f>>2];a=a+4|0;g=g+4|0;h=h+4|0;if((o|0)!=(h|0)){continue}break}}if(m){while(1){J[(g<<2)+n>>2]=J[(a<<2)+f>>2];a=a+1|0;g=g+1|0;l=l+1|0;if((l|0)!=(m|0)){continue}break}}b=b+1|0;h=i>>>0>b>>>0;if((b|0)!=(i|0)){continue}break}a=b>>>0>=i>>>0;break b}La();C()}a=!h;if(!f){break a}}xj(f)}ia=k+16|0;return a&1}function Vh(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0;k=ia-16|0;ia=k;i=J[b+80>>2];b=K[c+24|0];a=P(i,b);a:{b:{c:{d:{e=J[c+28>>2];if(!(!K[c+84|0]|(e|0)!=3&(e|0)!=4)){b=J[c+48>>2];c=J[J[c>>2]>>2];J[k+8>>2]=0;J[k>>2]=0;J[k+4>>2]=0;if(a){if((a|0)<0){break d}a=a<<1;f=Aj(a);g=Vi(f,b+c|0,a)+a|0}a=J[d>>2];if(a){J[d+4>>2]=a;xj(a)}J[d+8>>2]=g;J[d+4>>2]=g;J[d>>2]=f;a=1;break a}if(b){e=b<<1;f=Aj(e);Xi(f,0,e)}j=J[d>>2];e=J[d+4>>2]-j>>1;e:{if(e>>>0>>0){zg(d,a-e|0);break e}if(a>>>0>=e>>>0){break e}J[d+4>>2]=j+(a<<1)}if(!i){break c}if(!b){a=0;h=1;while(1){if(!Bg(c,K[c+84|0]?a:J[J[c+68>>2]+(a<<2)>>2],H[c+24|0],f)){break c}a=a+1|0;h=i>>>0>a>>>0;if((a|0)!=(i|0)){continue}break}break c}o=b&252;m=b&3;p=b>>>0<4;h=1;b=0;while(1){if(!Bg(c,K[c+84|0]?b:J[J[c+68>>2]+(b<<2)>>2],H[c+24|0],f)){break c}n=J[d>>2];l=0;a=0;h=0;if(!p){while(1){e=(g<<1)+n|0;j=a<<1;I[e>>1]=L[j+f>>1];I[e+2>>1]=L[(j|2)+f>>1];I[e+4>>1]=L[(j|4)+f>>1];I[e+6>>1]=L[(j|6)+f>>1];a=a+4|0;g=g+4|0;h=h+4|0;if((o|0)!=(h|0)){continue}break}}if(m){while(1){I[(g<<1)+n>>1]=L[(a<<1)+f>>1];a=a+1|0;g=g+1|0;l=l+1|0;if((l|0)!=(m|0)){continue}break}}b=b+1|0;h=i>>>0>b>>>0;if((b|0)!=(i|0)){continue}break}a=b>>>0>=i>>>0;break b}La();C()}a=!h;if(!f){break a}}xj(f)}ia=k+16|0;return a&1}function Uh(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0;k=ia-16|0;ia=k;i=J[b+80>>2];b=K[c+24|0];a=P(i,b);a:{b:{c:{d:{e=J[c+28>>2];if(!(!K[c+84|0]|(e|0)!=3&(e|0)!=4)){b=J[c+48>>2];c=J[J[c>>2]>>2];J[k+8>>2]=0;J[k>>2]=0;J[k+4>>2]=0;if(a){if((a|0)<0){break d}a=a<<1;f=Aj(a);g=Vi(f,b+c|0,a)+a|0}a=J[d>>2];if(a){J[d+4>>2]=a;xj(a)}J[d+8>>2]=g;J[d+4>>2]=g;J[d>>2]=f;a=1;break a}if(b){e=b<<1;f=Aj(e);Xi(f,0,e)}j=J[d>>2];e=J[d+4>>2]-j>>1;e:{if(e>>>0>>0){zg(d,a-e|0);break e}if(a>>>0>=e>>>0){break e}J[d+4>>2]=j+(a<<1)}if(!i){break c}if(!b){a=0;h=1;while(1){if(!Ag(c,K[c+84|0]?a:J[J[c+68>>2]+(a<<2)>>2],H[c+24|0],f)){break c}a=a+1|0;h=i>>>0>a>>>0;if((a|0)!=(i|0)){continue}break}break c}o=b&252;m=b&3;p=b>>>0<4;h=1;b=0;while(1){if(!Ag(c,K[c+84|0]?b:J[J[c+68>>2]+(b<<2)>>2],H[c+24|0],f)){break c}n=J[d>>2];l=0;a=0;h=0;if(!p){while(1){e=(g<<1)+n|0;j=a<<1;I[e>>1]=L[j+f>>1];I[e+2>>1]=L[(j|2)+f>>1];I[e+4>>1]=L[(j|4)+f>>1];I[e+6>>1]=L[(j|6)+f>>1];a=a+4|0;g=g+4|0;h=h+4|0;if((o|0)!=(h|0)){continue}break}}if(m){while(1){I[(g<<1)+n>>1]=L[(a<<1)+f>>1];a=a+1|0;g=g+1|0;l=l+1|0;if((l|0)!=(m|0)){continue}break}}b=b+1|0;h=i>>>0>b>>>0;if((b|0)!=(i|0)){continue}break}a=b>>>0>=i>>>0;break b}La();C()}a=!h;if(!f){break a}}xj(f)}ia=k+16|0;return a&1}function pf(a,b){var c=0,d=0,e=0,f=0,g=0;f=-1;d=-1;a:{if((b|0)==-1){break a}d=b+1|0;f=(d>>>0)%3|0?d:b-2|0;d=b-1|0;if((b>>>0)%3|0){break a}d=b+2|0}b:{c:{d:{switch(J[a+168>>2]){case 0:case 1:e=J[a+148>>2];c=1;b=J[a+156>>2];g=b+(((f|0)==-1?-1:J[J[e>>2]+(f<<2)>>2])<<2)|0;J[g>>2]=J[g>>2]+1;b=(((d|0)==-1?-1:J[J[e>>2]+(d<<2)>>2])<<2)+b|0;break c;case 5:e=J[a+148>>2];c=-1;c=((b|0)!=-1?J[J[e>>2]+(b<<2)>>2]:c)<<2;b=J[a+156>>2];c=c+b|0;J[c>>2]=J[c>>2]+1;c=(((f|0)==-1?-1:J[J[e>>2]+(f<<2)>>2])<<2)+b|0;J[c>>2]=J[c>>2]+1;c=2;b=(((d|0)==-1?-1:J[J[e>>2]+(d<<2)>>2])<<2)+b|0;break c;case 3:e=J[a+148>>2];c=-1;c=((b|0)!=-1?J[J[e>>2]+(b<<2)>>2]:c)<<2;b=J[a+156>>2];c=c+b|0;J[c>>2]=J[c>>2]+1;c=(((f|0)==-1?-1:J[J[e>>2]+(f<<2)>>2])<<2)+b|0;J[c>>2]=J[c>>2]+2;c=1;b=(((d|0)==-1?-1:J[J[e>>2]+(d<<2)>>2])<<2)+b|0;break c;case 7:break d;default:break b}}e=J[a+148>>2];c=-1;c=((b|0)!=-1?J[J[e>>2]+(b<<2)>>2]:c)<<2;b=J[a+156>>2];c=c+b|0;J[c>>2]=J[c>>2]+2;c=(((f|0)==-1?-1:J[J[e>>2]+(f<<2)>>2])<<2)+b|0;J[c>>2]=J[c>>2]+2;c=2;b=(((d|0)==-1?-1:J[J[e>>2]+(d<<2)>>2])<<2)+b|0}J[b>>2]=J[b>>2]+c}c=a;b=J[J[a+156>>2]+(((f|0)==-1?-1:J[J[J[a+148>>2]>>2]+(f<<2)>>2])<<2)>>2];d=J[a+180>>2];a=J[a+176>>2];J[c+172>>2]=(a|0)<=(b|0)?((b|0)<(d|0)?b:d)-a|0:0}function ig(a){a=a|0;var b=0,c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0;a:{c=J[a+32>>2];e=J[c+8>>2];f=J[c+12>>2];d=J[c+20>>2];g=e;e=J[c+16>>2];b=0;b:{if((f|0)<=(d|0)&g>>>0<=e>>>0|(d|0)>(f|0)){break b}g=K[e+J[c>>2]|0];f=e+1|0;d=f?d:d+1|0;J[c+16>>2]=f;J[c+20>>2]=d;c:{if(!g){break c}while(1){if(na[J[J[a>>2]+16>>2]](a,b)|0){b=b+1|0;if((g|0)!=(b|0)){continue}break c}break}return 0}b=J[a+8>>2];d=J[a+12>>2];if((b|0)!=(d|0)){while(1){c=J[b>>2];if(!(na[J[J[c>>2]+8>>2]](c,a,J[a+4>>2])|0)){break a}b=b+4|0;if((d|0)!=(b|0)){continue}break}}d:{if(!g){break d}b=0;while(1){c=J[J[a+8>>2]+(b<<2)>>2];if(!(na[J[J[c>>2]+12>>2]](c,J[a+32>>2])|0)){break a}b=b+1|0;if((g|0)!=(b|0)){continue}break}if(!g){break d}e=a+20|0;while(1){b=0;f=h<<2;c=J[f+J[a+8>>2]>>2];d=na[J[J[c>>2]+24>>2]](c)|0;if((d|0)>0){while(1){c=J[J[a+8>>2]+f>>2];k=na[J[J[c>>2]+20>>2]](c,b)|0;i=J[a+20>>2];j=J[a+24>>2]-i>>2;e:{if(k>>>0>>0){break e}c=k+1|0;if(c>>>0>j>>>0){Oa(e,c-j|0);i=J[e>>2];break e}if(c>>>0>=j>>>0){break e}J[a+24>>2]=(c<<2)+i}J[(k<<2)+i>>2]=h;b=b+1|0;if((d|0)!=(b|0)){continue}break}}h=h+1|0;if((g|0)!=(h|0)){continue}break}}b=0;if(!(na[J[J[a>>2]+28>>2]](a)|0)){break b}b=na[J[J[a>>2]+32>>2]](a)|0}return b|0}return 0}function je(a,b){var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0;i=ia-16|0;ia=i;e=J[b+20>>2];c=J[b+12>>2];g=J[b+16>>2];a:{if((e|0)>=(c|0)&g>>>0>=M[b+8>>2]|(c|0)<(e|0)){break a}H[a+12|0]=K[g+J[b>>2]|0];e=J[b+20>>2];c=e;g=J[b+16>>2];d=g+1|0;e=d?c:c+1|0;h=d;J[b+16>>2]=d;J[b+20>>2]=e;b:{if(L[b+38>>1]<=513){f=J[b+12>>2];e=c;c=g+5|0;e=c>>>0<5?e+1|0:e;d=J[b+8>>2];g=c;if(d>>>0>>0&(e|0)>=(f|0)|(e|0)>(f|0)){break a}c=h+J[b>>2]|0;c=K[c|0]|K[c+1|0]<<8|(K[c+2|0]<<16|K[c+3|0]<<24);J[b+16>>2]=g;J[b+20>>2]=e;break b}if(!ke(1,i+12|0,b)){break a}g=J[b+16>>2];e=J[b+20>>2];d=J[b+8>>2];f=J[b+12>>2];c=J[i+12>>2]}h=d-g|0;d=f-(e+(d>>>0>>0)|0)|0;if((d|0)<=0&c>>>0>h>>>0|(d|0)<0|(c|0)<=0){break a}d=g+J[b>>2]|0;J[a>>2]=d;c:{d:{f=c-1|0;h=f+d|0;j=K[h|0];e:{if(j>>>0<=63){J[a+4>>2]=f;d=K[h|0]&63;break e}f:{switch((j>>>6|0)-1|0){case 1:break d;case 0:break f;default:break a}}if(c>>>0<2){break a}f=c-2|0;J[a+4>>2]=f;d=d+f|0;d=K[d+1|0]<<8&16128|K[d|0]}J[a+8>>2]=d+4096;break c}if(c>>>0<3){break a}f=c-3|0;J[a+4>>2]=f;h=a;a=d+f|0;a=K[a+1|0]<<8|K[a+2|0]<<16&4128768|K[a|0];J[h+8>>2]=a+4096;if(a>>>0>1044479){break a}}a=c+g|0;e=a>>>0>>0?e+1|0:e;J[b+16>>2]=a;J[b+20>>2]=e;k=1}ia=i+16|0;return k}function Ai(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0;Pi(a,b,c);c=J[a+84>>2];d=J[a+88>>2]-c>>2;a:{if((d|0)>(b|0)){break a}b=b+1|0;if(b>>>0>d>>>0){b:{d=b-d|0;e=J[a+92>>2];c=J[a+88>>2];if(d>>>0<=e-c>>2>>>0){c:{if(!d){break c}b=c;f=d&7;if(f){while(1){J[b>>2]=1;b=b+4|0;g=g+1|0;if((f|0)!=(g|0)){continue}break}}c=(d<<2)+c|0;if((d-1&1073741823)>>>0<7){break c}while(1){J[b+24>>2]=1;J[b+28>>2]=1;J[b+16>>2]=1;J[b+20>>2]=1;J[b+8>>2]=1;J[b+12>>2]=1;J[b>>2]=1;J[b+4>>2]=1;b=b+32|0;if((c|0)!=(b|0)){continue}break}}J[a+88>>2]=c;break b}d:{f=J[a+84>>2];j=c-f|0;c=j>>2;b=c+d|0;if(b>>>0<1073741824){e=e-f|0;h=e>>1;e=e>>>0>=2147483644?1073741823:b>>>0>>0?h:b;if(e){if(e>>>0>=1073741824){break d}i=Aj(e<<2)}c=(c<<2)+i|0;b=c;h=d&7;if(h){b=c;while(1){J[b>>2]=1;b=b+4|0;g=g+1|0;if((h|0)!=(g|0)){continue}break}}c=c+(d<<2)|0;if((d-1&1073741823)>>>0>=7){while(1){J[b+24>>2]=1;J[b+28>>2]=1;J[b+16>>2]=1;J[b+20>>2]=1;J[b+8>>2]=1;J[b+12>>2]=1;J[b>>2]=1;J[b+4>>2]=1;b=b+32|0;if((c|0)!=(b|0)){continue}break}}if((j|0)>0){Vi(i,f,j)}J[a+92>>2]=(e<<2)+i;J[a+88>>2]=c;J[a+84>>2]=i;if(f){xj(f)}break b}La();C()}Za();C()}return}if(b>>>0>=d>>>0){break a}J[a+88>>2]=c+(b<<2)}}function wi(a,b,c){var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0;d=J[a+8>>2];e=J[a>>2];if(d-e>>2>>>0>=b>>>0){f=J[a+4>>2];h=f-e>>2;i=b>>>0>h>>>0?h:b;a:{if(!i){break a}d=e;g=i;j=g&7;if(j){while(1){J[d>>2]=J[c>>2];g=g-1|0;d=d+4|0;k=k+1|0;if((k|0)!=(j|0)){continue}break}}if(i>>>0<8){break a}while(1){J[d>>2]=J[c>>2];J[d+4>>2]=J[c>>2];J[d+8>>2]=J[c>>2];J[d+12>>2]=J[c>>2];J[d+16>>2]=J[c>>2];J[d+20>>2]=J[c>>2];J[d+24>>2]=J[c>>2];J[d+28>>2]=J[c>>2];d=d+32|0;g=g-8|0;if(g){continue}break}}if(b>>>0>h>>>0){b=(b-h<<2)+f|0;while(1){J[f>>2]=J[c>>2];f=f+4|0;if((b|0)!=(f|0)){continue}break}J[a+4>>2]=b;return}J[a+4>>2]=e+(b<<2);return}if(e){J[a+4>>2]=e;xj(e);J[a+8>>2]=0;J[a>>2]=0;J[a+4>>2]=0;d=0}b:{if(b>>>0>=1073741824){break b}e=d>>1;d=d>>>0>=2147483644?1073741823:b>>>0>>0?e:b;if(d>>>0>=1073741824){break b}d=d<<2;e=Aj(d);J[a>>2]=e;J[a+8>>2]=d+e;c=J[c>>2];d=e;g=b&7;if(g){while(1){J[d>>2]=c;d=d+4|0;f=f+1|0;if((g|0)!=(f|0)){continue}break}}e=e+(b<<2)|0;if((b-1&1073741823)>>>0>=7){while(1){J[d+28>>2]=c;J[d+24>>2]=c;J[d+20>>2]=c;J[d+16>>2]=c;J[d+12>>2]=c;J[d+8>>2]=c;J[d+4>>2]=c;J[d>>2]=c;d=d+32|0;if((e|0)!=(d|0)){continue}break}}J[a+4>>2]=e;return}La();C()}function te(a,b){var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0;h=ia-16|0;ia=h;a:{b:{if(L[b+38>>1]<=511){g=J[b+12>>2];i=g;c=J[b+20>>2];e=J[b+16>>2];d=e+8|0;c=d>>>0<8?c+1|0:c;f=J[b+8>>2];if(f>>>0>>0&(c|0)>=(g|0)|(c|0)>(g|0)){break a}e=e+J[b>>2]|0;g=K[e|0]|K[e+1|0]<<8|(K[e+2|0]<<16|K[e+3|0]<<24);e=K[e+4|0]|K[e+5|0]<<8|(K[e+6|0]<<16|K[e+7|0]<<24);J[b+16>>2]=d;J[b+20>>2]=c;break b}if(!xe(1,h+8|0,b)){break a}d=J[b+16>>2];c=J[b+20>>2];f=J[b+8>>2];i=J[b+12>>2];g=J[h+8>>2];e=J[h+12>>2]}j=f-d|0;f=i-(c+(d>>>0>f>>>0)|0)|0;if((f|0)==(e|0)&g>>>0>j>>>0|e>>>0>f>>>0){break a}c=c+e|0;f=d+g|0;c=f>>>0>>0?c+1|0:c;J[b+16>>2]=f;J[b+20>>2]=c;c=g;if((c|0)<=0){break a}b=d+J[b>>2]|0;J[a+40>>2]=b;d=c-1|0;g=b+d|0;f=K[g|0];c:{if(f>>>0<=63){J[a+44>>2]=d;b=K[g|0]&63;break c}d:{switch((f>>>6|0)-1|0){case 0:if(c>>>0<2){break a}d=c-2|0;J[a+44>>2]=d;b=b+d|0;b=K[b+1|0]<<8&16128|K[b|0];break c;case 1:if(c>>>0<3){break a}d=c-3|0;J[a+44>>2]=d;b=b+d|0;b=K[b+1|0]<<8|K[b+2|0]<<16&4128768|K[b|0];break c;default:break d}}d=c-4|0;J[a+44>>2]=d;b=b+d|0;b=K[b+2|0]<<16|K[b+3|0]<<24&1056964608|K[b+1|0]<<8|K[b|0]}J[a+48>>2]=b+16384;k=b>>>0<4177920}ia=h+16|0;return k}function Vi(a,b,c){var d=0,e=0,f=0;if(c>>>0>=512){ba(a|0,b|0,c|0);return a}e=a+c|0;a:{if(!((a^b)&3)){b:{if(!(a&3)){c=a;break b}if(!c){c=a;break b}c=a;while(1){H[c|0]=K[b|0];b=b+1|0;c=c+1|0;if(!(c&3)){break b}if(c>>>0>>0){continue}break}}d=e&-4;c:{if(d>>>0<64){break c}f=d+-64|0;if(f>>>0>>0){break c}while(1){J[c>>2]=J[b>>2];J[c+4>>2]=J[b+4>>2];J[c+8>>2]=J[b+8>>2];J[c+12>>2]=J[b+12>>2];J[c+16>>2]=J[b+16>>2];J[c+20>>2]=J[b+20>>2];J[c+24>>2]=J[b+24>>2];J[c+28>>2]=J[b+28>>2];J[c+32>>2]=J[b+32>>2];J[c+36>>2]=J[b+36>>2];J[c+40>>2]=J[b+40>>2];J[c+44>>2]=J[b+44>>2];J[c+48>>2]=J[b+48>>2];J[c+52>>2]=J[b+52>>2];J[c+56>>2]=J[b+56>>2];J[c+60>>2]=J[b+60>>2];b=b- -64|0;c=c- -64|0;if(f>>>0>=c>>>0){continue}break}}if(c>>>0>=d>>>0){break a}while(1){J[c>>2]=J[b>>2];b=b+4|0;c=c+4|0;if(d>>>0>c>>>0){continue}break}break a}if(e>>>0<4){c=a;break a}d=e-4|0;if(d>>>0>>0){c=a;break a}c=a;while(1){H[c|0]=K[b|0];H[c+1|0]=K[b+1|0];H[c+2|0]=K[b+2|0];H[c+3|0]=K[b+3|0];b=b+4|0;c=c+4|0;if(d>>>0>=c>>>0){continue}break}}if(c>>>0>>0){while(1){H[c|0]=K[b|0];b=b+1|0;c=c+1|0;if((e|0)!=(c|0)){continue}break}}return a}function jb(a,b,c){var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0;f=J[a+8>>2];e=J[a+4>>2];if(f-e>>2>>>0>=b>>>0){a:{if(!b){break a}d=e;g=b&7;if(g){while(1){J[d>>2]=J[c>>2];d=d+4|0;h=h+1|0;if((g|0)!=(h|0)){continue}break}}e=(b<<2)+e|0;if((b-1&1073741823)>>>0<7){break a}while(1){J[d>>2]=J[c>>2];J[d+4>>2]=J[c>>2];J[d+8>>2]=J[c>>2];J[d+12>>2]=J[c>>2];J[d+16>>2]=J[c>>2];J[d+20>>2]=J[c>>2];J[d+24>>2]=J[c>>2];J[d+28>>2]=J[c>>2];d=d+32|0;if((e|0)!=(d|0)){continue}break}}J[a+4>>2]=e;return}b:{g=J[a>>2];k=e-g|0;e=k>>2;d=e+b|0;if(d>>>0<1073741824){f=f-g|0;i=f>>1;f=f>>>0>=2147483644?1073741823:d>>>0>>0?i:d;if(f){if(f>>>0>=1073741824){break b}j=Aj(f<<2)}e=(e<<2)+j|0;d=e;i=b&7;if(i){d=e;while(1){J[d>>2]=J[c>>2];d=d+4|0;h=h+1|0;if((i|0)!=(h|0)){continue}break}}e=e+(b<<2)|0;if((b-1&1073741823)>>>0>=7){while(1){J[d>>2]=J[c>>2];J[d+4>>2]=J[c>>2];J[d+8>>2]=J[c>>2];J[d+12>>2]=J[c>>2];J[d+16>>2]=J[c>>2];J[d+20>>2]=J[c>>2];J[d+24>>2]=J[c>>2];J[d+28>>2]=J[c>>2];d=d+32|0;if((e|0)!=(d|0)){continue}break}}if((k|0)>0){Vi(j,g,k)}J[a+8>>2]=(f<<2)+j;J[a+4>>2]=e;J[a>>2]=j;if(g){xj(g)}return}La();C()}Za();C()}function Bb(a,b){var c=0,d=0,e=0,f=0,g=0;d=ia-16|0;ia=d;J[a+12>>2]=b;J[a+8>>2]=0;J[a>>2]=0;J[a+4>>2]=0;c=a+16|0;J[c>>2]=0;J[c+4>>2]=0;H[c+5|0]=0;H[c+6|0]=0;H[c+7|0]=0;H[c+8|0]=0;H[c+9|0]=0;H[c+10|0]=0;H[c+11|0]=0;H[c+12|0]=0;J[a+32>>2]=0;J[a+36>>2]=0;J[a+48>>2]=0;J[a+40>>2]=0;J[a+44>>2]=0;J[a+52>>2]=0;J[a+56>>2]=0;J[a+68>>2]=0;J[a+60>>2]=0;J[a+64>>2]=0;J[a+72>>2]=0;J[a+76>>2]=0;J[a+88>>2]=0;J[a+80>>2]=0;J[a+84>>2]=0;J[a+100>>2]=0;J[a+92>>2]=0;J[a+96>>2]=0;g=a+116|0;a:{b:{if(b){if(b>>>0<1073741824){break b}La();C()}J[a+104>>2]=0;J[a+108>>2]=0;J[a+112>>2]=0;J[d+8>>2]=0;J[d>>2]=0;J[d+4>>2]=0;c=1;break a}c=b<<2;e=Aj(c);J[a+92>>2]=e;f=c+e|0;J[a+100>>2]=f;Xi(e,0,c);J[a+112>>2]=0;J[a+104>>2]=0;J[a+108>>2]=0;J[a+96>>2]=f;e=Aj(c);J[a+104>>2]=e;f=c+e|0;J[a+112>>2]=f;Xi(e,0,c);J[a+108>>2]=f;e=Aj(c);J[d>>2]=e;f=c+e|0;J[d+8>>2]=f;Xi(e,0,c);J[d+4>>2]=f;c=b<<5|1}Lb(g,c,d);e=J[d>>2];if(e){J[d+4>>2]=e;xj(e)}J[d+8>>2]=0;J[d>>2]=0;J[d+4>>2]=0;if(b){b=b<<2;e=Aj(b);J[d>>2]=e;f=b+e|0;J[d+8>>2]=f;Xi(e,0,b);J[d+4>>2]=f}Lb(a+128|0,c,d);b=J[d>>2];if(b){J[d+4>>2]=b;xj(b)}ia=d+16|0;return a}function vf(a){a=a|0;var b=0,c=0,d=0,e=0,f=0;J[a>>2]=11532;d=a+232|0;b=J[d+196>>2];if(b){J[d+200>>2]=b;xj(b)}c=J[d+184>>2];if(c){b=c;e=J[d+188>>2];if((b|0)!=(e|0)){while(1){b=e-12|0;f=J[b>>2];if(f){J[e-8>>2]=f;xj(f)}e=b;if((b|0)!=(c|0)){continue}break}b=J[d+184>>2]}J[d+188>>2]=c;xj(b)}b=J[d+156>>2];if(b){J[d+160>>2]=b;xj(b)}c=J[d+136>>2];J[d+136>>2]=0;if(c){e=c-4|0;b=J[e>>2];if(b){b=c+(b<<4)|0;while(1){b=b-16|0;if((c|0)!=(b|0)){continue}break}}xj(e)}rf(a+216|0);b=J[a+196>>2];if(b){J[a+200>>2]=b;xj(b)}b=J[a+184>>2];if(b){J[a+188>>2]=b;xj(b)}b=J[a+172>>2];if(b){J[a+176>>2]=b;xj(b)}b=J[a+160>>2];if(b){J[a+164>>2]=b;xj(b)}b=J[a+144>>2];if(b){while(1){c=J[b>>2];xj(b);b=c;if(b){continue}break}}b=J[a+136>>2];J[a+136>>2]=0;if(b){xj(b)}b=J[a+120>>2];if(b){xj(b)}b=J[a+108>>2];if(b){xj(b)}b=J[a+96>>2];if(b){xj(b)}b=J[a+72>>2];if(b){J[a+76>>2]=b;xj(b)}b=J[a+60>>2];if(b){xj(b)}b=J[a+48>>2];if(b){J[a+52>>2]=b;xj(b)}b=J[a+36>>2];if(b){J[a+40>>2]=b;xj(b)}b=J[a+24>>2];if(b){J[a+28>>2]=b;xj(b)}b=J[a+12>>2];if(b){J[a+16>>2]=b;xj(b)}b=J[a+8>>2];J[a+8>>2]=0;if(b){Ue(b)}return a|0}function ub(a,b){var c=0,d=0,e=0,f=0,g=0,h=0,i=0;J[a+16>>2]=0;J[a+20>>2]=0;J[a+8>>2]=0;J[a>>2]=0;J[a+4>>2]=0;J[a+24>>2]=0;c=J[b+4>>2];g=J[b>>2];e=c-g|0;f=(e|0)/20|0;a:{if((c|0)==(g|0)){break a}b:{if(f>>>0<214748365){c=Aj(e);J[a+16>>2]=c;J[a+20>>2]=c;J[a+24>>2]=c+P(f,20);f=J[b>>2];b=J[b+4>>2]-f|0;if((b|0)<=0){break a}f=Vi(c,f,b);g=0;J[a+28>>2]=0;J[a+20>>2]=f+P((b>>>0)/20|0,20);b=(b|0)/20|0;e=b>>>0<=1?1:b;h=e&3;b=0;c=0;if(e-1>>>0>=3){i=e&-4;e=0;while(1){d=f+P(b,20)|0;d=P(J[d+16>>2],J[d+12>>2]);c=c>>>0>d>>>0?c:d;d=f+P(b|1,20)|0;d=P(J[d+16>>2],J[d+12>>2]);c=c>>>0>d>>>0?c:d;d=f+P(b|2,20)|0;d=P(J[d+16>>2],J[d+12>>2]);c=c>>>0>d>>>0?c:d;d=f+P(b|3,20)|0;d=P(J[d+16>>2],J[d+12>>2]);c=c>>>0>d>>>0?c:d;b=b+4|0;e=e+4|0;if((i|0)!=(e|0)){continue}break}}if(h){while(1){e=f+P(b,20)|0;e=P(J[e+16>>2],J[e+12>>2]);c=c>>>0>e>>>0?c:e;b=b+1|0;g=g+1|0;if((h|0)!=(g|0)){continue}break}}if(!c){J[a+12>>2]=0;return a}if((c|0)<0){break b}b=Xi(Aj(c),0,c);c=b+c|0;J[a+8>>2]=c;J[a+4>>2]=c;J[a>>2]=b;J[a+12>>2]=b;return a}La();C()}La();C()}J[a+28>>2]=0;J[a+12>>2]=0;return a}function lk(a,b,c,d){var e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0;g=c;a:{b:{c:{d:{e:{f:{g:{h:{i:{j:{k:{if(b){if(!g){break k}if(!d){break j}c=S(d)-S(b)|0;if(c>>>0<=31){break i}break c}if((d|0)==1|d>>>0>1){break c}a=(a>>>0)/(g>>>0)|0;ma=0;break a}if(!a){break h}if(!d){break g}if(d-1&d){break g}a=b>>>ok(d)|0;ma=0;break a}if(!(g-1&g)){break f}h=(S(g)+33|0)-S(b)|0;e=0-h|0;break d}h=c+1|0;e=63-c|0;break d}a=(b>>>0)/(d>>>0)|0;ma=0;break a}c=S(d)-S(b)|0;if(c>>>0<31){break e}break c}if((g|0)==1){break b}c=ok(g);d=c&31;if((c&63)>>>0>=32){c=0;a=b>>>d|0}else{c=b>>>d|0;a=((1<>>d}ma=c;break a}h=c+1|0;e=63-c|0}c=h&63;f=c&31;if(c>>>0>=32){c=0;i=b>>>f|0}else{c=b>>>f|0;i=((1<>>f}f=c;c=e&63;e=c&31;if(c>>>0>=32){c=a<>>32-e|b<>>31;f=f<<1|i>>>31;j=m-(f+(c>>>0>e>>>0)|0)>>31;k=g&j;i=c-k|0;f=f-((d&j)+(c>>>0>>0)|0)|0;b=b<<1|a>>>31;a=l|a<<1;l=j&1;h=h-1|0;if(h){continue}break}}ma=b<<1|a>>>31;a=l|a<<1;break a}a=0;b=0}ma=b}return a}function xb(a,b){var c=0,d=0,e=0,f=0,g=0;c=ia-16|0;ia=c;J[a+12>>2]=b;J[a+8>>2]=0;J[a>>2]=0;J[a+4>>2]=0;J[a+16>>2]=0;J[a+20>>2]=0;J[a+32>>2]=0;J[a+24>>2]=0;J[a+28>>2]=0;J[a+36>>2]=0;J[a+40>>2]=0;J[a+52>>2]=0;J[a+44>>2]=0;J[a+48>>2]=0;J[a+56>>2]=0;J[a+60>>2]=0;J[a+72>>2]=0;J[a+64>>2]=0;J[a+68>>2]=0;J[a+76>>2]=0;J[a+80>>2]=0;J[a+92>>2]=0;J[a+84>>2]=0;J[a+88>>2]=0;J[a+104>>2]=0;J[a+96>>2]=0;J[a+100>>2]=0;g=a+120|0;a:{b:{if(b){if(b>>>0<1073741824){break b}La();C()}J[a+108>>2]=0;J[a+112>>2]=0;J[a+116>>2]=0;J[c+8>>2]=0;J[c>>2]=0;J[c+4>>2]=0;e=1;break a}e=b<<2;d=Aj(e);J[a+96>>2]=d;f=d+e|0;J[a+104>>2]=f;Xi(d,0,e);J[a+116>>2]=0;J[a+108>>2]=0;J[a+112>>2]=0;J[a+100>>2]=f;d=Aj(e);J[a+108>>2]=d;f=d+e|0;J[a+116>>2]=f;Xi(d,0,e);J[a+112>>2]=f;d=Aj(e);J[c>>2]=d;f=d+e|0;J[c+8>>2]=f;Xi(d,0,e);J[c+4>>2]=f;e=b<<5|1}Lb(g,e,c);d=J[c>>2];if(d){J[c+4>>2]=d;xj(d)}J[c+8>>2]=0;J[c>>2]=0;J[c+4>>2]=0;if(b){b=b<<2;d=Aj(b);J[c>>2]=d;f=b+d|0;J[c+8>>2]=f;Xi(d,0,b);J[c+4>>2]=f}Lb(a+132|0,e,c);b=J[c>>2];if(b){J[c+4>>2]=b;xj(b)}ia=c+16|0;return a}function qe(a,b){var c=0,d=0,e=0;c=(a|0)==(b|0);H[b+12|0]=c;a:{if(c){break a}while(1){d=J[b+8>>2];if(K[d+12|0]){break a}b:{c=J[d+8>>2];e=J[c>>2];if((e|0)==(d|0)){e=J[c+4>>2];if(!(!e|K[e+12|0])){break b}c:{if(J[d>>2]==(b|0)){b=d;break c}b=J[d+4>>2];a=J[b>>2];J[d+4>>2]=a;if(a){J[a+8>>2]=d;c=J[d+8>>2]}J[b+8>>2]=c;a=J[d+8>>2];J[((J[a>>2]!=(d|0))<<2)+a>>2]=b;J[b>>2]=d;J[d+8>>2]=b;c=J[b+8>>2];d=J[c>>2]}H[b+12|0]=1;H[c+12|0]=0;a=J[d+4>>2];J[c>>2]=a;if(a){J[a+8>>2]=c}J[d+8>>2]=J[c+8>>2];a=J[c+8>>2];J[((J[a>>2]!=(c|0))<<2)+a>>2]=d;J[d+4>>2]=c;J[c+8>>2]=d;return}if(!(K[e+12|0]|!e)){break b}d:{if(J[d>>2]!=(b|0)){b=d;break d}a=J[b+4>>2];J[d>>2]=a;if(a){J[a+8>>2]=d;c=J[d+8>>2]}J[b+8>>2]=c;a=J[d+8>>2];J[((J[a>>2]!=(d|0))<<2)+a>>2]=b;J[b+4>>2]=d;J[d+8>>2]=b;c=J[b+8>>2]}H[b+12|0]=1;H[c+12|0]=0;a=J[c+4>>2];b=J[a>>2];J[c+4>>2]=b;if(b){J[b+8>>2]=c}J[a+8>>2]=J[c+8>>2];b=J[c+8>>2];J[((J[b>>2]!=(c|0))<<2)+b>>2]=a;J[a>>2]=c;J[c+8>>2]=a;break a}H[d+12|0]=1;H[c+12|0]=(a|0)==(c|0);H[e+12|0]=1;b=c;if((c|0)!=(a|0)){continue}break}}}function Ld(a,b,c,d){var e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0;k=J[b+16>>2];h=J[c+4>>2]-k|0;e=h;f=J[c>>2]-k|0;J[c>>2]=f;J[c+4>>2]=e;g=J[b+16>>2];e=e>>31;i=(e^h)-e|0;e=f>>31;l=g>>>0>=i+((e^f)-e|0)>>>0;a:{if(l){e=h;break a}b:{c:{if((f|0)>=0){e=1;i=1;if((h|0)>=0){break b}j=1;e=-1;i=-1;if(f){break c}break b}j=-1;e=-1;i=-1;if((h|0)<=0){break b}}e=(h|0)<=0?-1:1;i=j}j=P(g,i);f=(f<<1)-j|0;i=(P(e,i)|0)>=0;g=P(e,g);e=((i?0-f|0:f)+g|0)/2|0;J[c+4>>2]=e;m=c;c=(h<<1)-g|0;f=(j+(i?0-c|0:c)|0)/2|0;J[m>>2]=f;g=J[b+16>>2]}c=J[d+4>>2]+e|0;f=J[d>>2]+f|0;d:{if((g|0)<(f|0)){f=f-J[b+4>>2]|0;break d}if((0-g|0)<=(f|0)){break d}f=J[b+4>>2]+f|0}e:{if((c|0)>(g|0)){c=c-J[b+4>>2]|0;break e}if((0-g|0)<=(c|0)){break e}c=J[b+4>>2]+c|0}f:{if(l){g=c;break f}g:{h:{if((f|0)>=0){b=1;e=1;if((c|0)>=0){break g}d=1;b=-1;e=-1;if(f){break h}break g}d=-1;b=-1;e=-1;if((c|0)<=0){break g}}b=(c|0)<=0?-1:1;e=d}d=P(e,g);h=(f<<1)-d|0;e=(P(b,e)|0)>=0;b=P(b,g);g=((e?0-h|0:h)+b|0)/2|0;b=(c<<1)-b|0;f=(d+(e?0-b|0:b)|0)/2|0}J[a>>2]=f+k;J[a+4>>2]=g+k}function pg(a,b,c,d){var e=0,f=0,g=0,h=0,i=0,j=0;a:{b:{c:{if(!b){if((d|0)<0){break a}e=J[a+4>>2];b=J[a>>2];d=e-b|0;if(c>>>0>d>>>0){g=c-d|0;f=J[a+8>>2];if(g>>>0<=f-e>>>0){i=a,j=Xi(e,0,g)+g|0,J[i+4>>2]=j;break c}if((c|0)<0){break b}e=f-b|0;f=e<<1;f=e>>>0>=1073741823?2147483647:c>>>0>>0?f:c;e=Aj(f);Xi(e+d|0,0,g);if((d|0)>0){Vi(e,b,d)}J[a+8>>2]=e+f;J[a+4>>2]=c+e;J[a>>2]=e;if(!b){break c}xj(b);break c}if(c>>>0>=d>>>0){break c}J[a+4>>2]=b+c;break c}if((d|0)<0){break a}h=J[a+4>>2];g=J[a>>2];e=h-g|0;d:{if((d|0)<=0&c>>>0<=e>>>0|(d|0)<0){break d}if(c>>>0>e>>>0){f=c-e|0;d=J[a+8>>2];if(f>>>0<=d-h>>>0){i=a,j=Xi(h,0,f)+f|0,J[i+4>>2]=j;break d}if((c|0)<0){break b}d=d-g|0;h=d<<1;h=d>>>0>=1073741823?2147483647:c>>>0>>0?h:c;d=Aj(h);Xi(d+e|0,0,f);if((e|0)>0){Vi(d,g,e)}J[a+8>>2]=d+h;J[a+4>>2]=c+d;J[a>>2]=d;if(!g){break d}xj(g);break d}if(c>>>0>=e>>>0){break d}J[a+4>>2]=c+g}if(!c){break c}Wi(J[a>>2],b,c)}b=J[a+28>>2];c=J[a+24>>2]+1|0;b=c?b:b+1|0;J[a+24>>2]=c;J[a+28>>2]=b;e=1;break a}La();C()}return e}function cc(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0;if(hb(a,b)){i=a+36|0;g=na[J[J[a>>2]+24>>2]](a)|0;d=J[a+40>>2];e=J[a+36>>2];c=d-e>>2;a:{if(g>>>0>c>>>0){dc(i,g-c|0);break a}if(c>>>0<=g>>>0){break a}e=e+(g<<2)|0;if((e|0)!=(d|0)){while(1){d=d-4|0;c=J[d>>2];J[d>>2]=0;if(c){na[J[J[c>>2]+4>>2]](c)}if((d|0)!=(e|0)){continue}break}}J[a+40>>2]=e}b:{if((g|0)<=0){e=0;break b}e=1;c=J[b+20>>2];d=J[b+12>>2];f=J[b+16>>2];if((c|0)>=(d|0)&f>>>0>=M[b+8>>2]|(c|0)>(d|0)){break b}d=0;while(1){h=K[f+J[b>>2]|0];f=f+1|0;c=f?c:c+1|0;J[b+16>>2]=f;J[b+20>>2]=c;f=na[J[J[a>>2]+48>>2]](a,h)|0;h=d<<2;j=h+J[a+36>>2]|0;c=J[j>>2];J[j>>2]=f;if(c){na[J[J[c>>2]+4>>2]](c)}c=J[J[i>>2]+h>>2];if(!c){break b}if(!(l=c,m=na[J[J[a>>2]+28>>2]](a)|0,n=na[J[J[a>>2]+20>>2]](a,d)|0,k=J[J[c>>2]+8>>2],na[k](l|0,m|0,n|0)|0)){break b}d=d+1|0;e=(g|0)>(d|0);if((d|0)==(g|0)){break b}f=J[b+16>>2];c=J[b+20>>2];h=J[b+12>>2];if(f>>>0>2]&(c|0)<=(h|0)|(c|0)<(h|0)){continue}break}}a=!e}else{a=0}return a|0}function Na(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0;c=J[b+88>>2];if(!(!c|J[c>>2]!=1)){d=J[c+8>>2];J[a+4>>2]=K[d|0]|K[d+1|0]<<8|(K[d+2|0]<<16|K[d+3|0]<<24);e=a+8|0;d=K[b+24|0];f=J[a+8>>2];g=J[a+12>>2]-f>>2;a:{if(d>>>0>g>>>0){Oa(e,d-g|0);d=K[b+24|0];break a}if(d>>>0>=g>>>0){break a}J[a+12>>2]=f+(d<<2)}g=J[c+8>>2];b:{if(!d){b=4;break b}h=d&3;e=J[e>>2];c:{if(d-1>>>0<3){b=4;d=0;break c}k=d&252;d=0;b=4;while(1){f=d<<2;c=b+g|0;J[f+e>>2]=K[c|0]|K[c+1|0]<<8|(K[c+2|0]<<16|K[c+3|0]<<24);J[e+(f|4)>>2]=K[c+4|0]|K[c+5|0]<<8|(K[c+6|0]<<16|K[c+7|0]<<24);J[e+(f|8)>>2]=K[c+8|0]|K[c+9|0]<<8|(K[c+10|0]<<16|K[c+11|0]<<24);J[e+(f|12)>>2]=K[c+12|0]|K[c+13|0]<<8|(K[c+14|0]<<16|K[c+15|0]<<24);d=d+4|0;b=b+16|0;i=i+4|0;if((k|0)!=(i|0)){continue}break}}if(!h){break b}while(1){c=b+g|0;J[e+(d<<2)>>2]=K[c|0]|K[c+1|0]<<8|(K[c+2|0]<<16|K[c+3|0]<<24);d=d+1|0;b=b+4|0;j=j+1|0;if((j|0)!=(h|0)){continue}break}}d=a;a=b+g|0;J[d+20>>2]=K[a|0]|K[a+1|0]<<8|(K[a+2|0]<<16|K[a+3|0]<<24);d=1}return d|0}function Uf(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0;k=J[a+12>>2];c=J[a+68>>2];d=J[c+80>>2];H[b+84|0]=0;m=b+68|0;i=J[b+68>>2];e=J[b+72>>2]-i>>2;a:{if(e>>>0>>0){jb(m,d-e|0,12420);c=J[a+68>>2];d=J[c+80>>2];break a}if(d>>>0>=e>>>0){break a}J[b+72>>2]=i+(d<<2)}b=J[c+100>>2];e=J[c+96>>2];i=(b-e|0)/12|0;b:{if((b|0)==(e|0)){break b}n=1;k=J[k+28>>2];f=J[k>>2];if((f|0)==-1){break b}o=i>>>0<=1?1:i;c=e;b=0;while(1){g=J[c>>2];if(g>>>0>=d>>>0){break b}j=J[J[a+72>>2]+12>>2];h=J[j+(f<<2)>>2];if(h>>>0>=d>>>0){break b}f=J[m>>2];J[f+(g<<2)>>2]=h;g=k+(l<<2)|0;h=J[g+4>>2];if((h|0)==-1){break b}l=J[c+4>>2];if(l>>>0>=d>>>0){break b}h=J[(h<<2)+j>>2];if(h>>>0>=d>>>0){break b}J[f+(l<<2)>>2]=h;g=J[g+8>>2];if((g|0)==-1){break b}c=J[c+8>>2];if(c>>>0>=d>>>0){break b}j=J[(g<<2)+j>>2];if(j>>>0>=d>>>0){break b}J[f+(c<<2)>>2]=j;b=b+1|0;n=i>>>0>b>>>0;if((b|0)==(o|0)){break b}c=e+P(b,12)|0;l=P(b,3);f=J[k+(l<<2)>>2];if((f|0)!=-1){continue}break}}return(n^-1)&1}function Ra(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0,g=0,h=0,i=Q(0),j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0;k=ia-16|0;ia=k;if(J[c+28>>2]==9){d=J[a+4>>2];h=K[c+24|0];e=h<<2;f=Aj(e);l=k+8|0;J[l>>2]=1065353216;i=N[a+20>>2];d=-1<0){N[l>>2]=i/Q(d|0)}o=(d|0)>0;a:{if(!o){break a}j=J[c+80>>2];if(!j){break a}if(h){p=J[J[b>>2]>>2]+J[b+48>>2]|0;t=h&254;u=h&1;b=0;while(1){m=J[a+8>>2];i=N[l>>2];d=0;n=0;if((h|0)!=1){while(1){g=d<<2;q=(b<<2)+p|0;N[g+f>>2]=Q(i*Q(J[q>>2]))+N[g+m>>2];g=g|4;N[g+f>>2]=Q(i*Q(J[q+4>>2]))+N[g+m>>2];d=d+2|0;b=b+2|0;n=n+2|0;if((t|0)!=(n|0)){continue}break}}if(u){d=d<<2;N[d+f>>2]=Q(i*Q(J[(b<<2)+p>>2]))+N[d+m>>2];b=b+1|0}Vi(J[J[c+64>>2]>>2]+r|0,f,e);r=e+r|0;s=s+1|0;if((s|0)!=(j|0)){continue}break}break a}b=0;if((j|0)!=1){a=j&-2;d=0;while(1){Vi(J[J[c+64>>2]>>2]+b|0,f,e);b=b+e|0;Vi(b+J[J[c+64>>2]>>2]|0,f,e);b=b+e|0;d=d+2|0;if((a|0)!=(d|0)){continue}break}}if(!(j&1)){break a}Vi(J[J[c+64>>2]>>2]+b|0,f,e)}xj(f)}ia=k+16|0;return o|0}function Aa(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0;h=J[d+80>>2];e=ia-48|0;ia=e;a=J[a+4>>2];k=a-31|0;a:{if(k>>>0<4294967267){break a}i=J[J[d>>2]>>2]+J[d+48>>2]|0;J[e+16>>2]=a;a=-1<>2]=a^-1;a=-2-a|0;J[e+24>>2]=a;J[e+32>>2]=(a|0)/2;N[e+28>>2]=Q(2)/Q(a|0);f=J[c>>2];if((f|0)!=J[c+4>>2]){a=0;d=0;while(1){g=J[(d<<2)+f>>2];h=e+36|0;j=J[J[b>>2]>>2];m=J[b+48>>2];f=J[b+44>>2];l=J[b+40>>2];if(!K[b+84|0]){g=J[J[b+68>>2]+(g<<2)>>2]}g=jk(l,f,g,0)+m|0;Vi(h,g+j|0,l);Ba(e+16|0,h,e+12|0,e+8|0);f=a<<2;J[f+i>>2]=J[e+12>>2];J[(f|4)+i>>2]=J[e+8>>2];a=a+2|0;d=d+1|0;f=J[c>>2];if(d>>>0>2]-f>>2>>>0){continue}break}break a}if(!h){break a}d=0;a=0;while(1){j=e+36|0;c=J[J[b>>2]>>2];g=J[b+40>>2];f=J[b+48>>2]+jk(g,J[b+44>>2],K[b+84|0]?a:J[J[b+68>>2]+(a<<2)>>2],0)|0;Vi(j,c+f|0,g);Ba(e+16|0,j,e+12|0,e+8|0);c=d<<2;J[c+i>>2]=J[e+12>>2];J[(c|4)+i>>2]=J[e+8>>2];d=d+2|0;a=a+1|0;if((h|0)!=(a|0)){continue}break}}ia=e+48|0;return k>>>0>4294967266|0}function Ef(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0;j=J[a+12>>2];c=J[a+108>>2];d=J[c+80>>2];H[b+84|0]=0;m=b+68|0;h=J[b+68>>2];f=J[b+72>>2]-h>>2;a:{if(f>>>0>>0){jb(m,d-f|0,12420);c=J[a+108>>2];d=J[c+80>>2];break a}if(d>>>0>=f>>>0){break a}J[b+72>>2]=h+(d<<2)}b=J[c+100>>2];f=J[c+96>>2];h=(b-f|0)/12|0;b:{if((b|0)==(f|0)){j=0;break b}n=h>>>0<=1?1:h;o=J[j>>2];c=f;b=0;j=1;while(1){e=(e<<2)+o|0;i=J[e>>2];if((i|0)==-1){break b}g=J[c>>2];if(g>>>0>=d>>>0){break b}l=J[J[a+112>>2]+12>>2];k=J[l+(i<<2)>>2];if(k>>>0>=d>>>0){break b}i=J[m>>2];J[i+(g<<2)>>2]=k;g=J[e+4>>2];if((g|0)==-1){break b}k=J[c+4>>2];if(k>>>0>=d>>>0){break b}g=J[(g<<2)+l>>2];if(g>>>0>=d>>>0){break b}J[i+(k<<2)>>2]=g;e=J[e+8>>2];if((e|0)==-1){break b}c=J[c+8>>2];if(c>>>0>=d>>>0){break b}e=J[(e<<2)+l>>2];if(e>>>0>=d>>>0){break b}J[i+(c<<2)>>2]=e;b=b+1|0;j=h>>>0>b>>>0;if((b|0)==(n|0)){break b}e=P(b,3);c=f+P(b,12)|0;if((b|0)!=1431655765){continue}break}}return(j^-1)&1}function Of(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0;j=J[a+12>>2];c=J[a+68>>2];d=J[c+80>>2];H[b+84|0]=0;m=b+68|0;h=J[b+68>>2];f=J[b+72>>2]-h>>2;a:{if(f>>>0>>0){jb(m,d-f|0,12420);c=J[a+68>>2];d=J[c+80>>2];break a}if(d>>>0>=f>>>0){break a}J[b+72>>2]=h+(d<<2)}b=J[c+100>>2];f=J[c+96>>2];h=(b-f|0)/12|0;b:{if((b|0)==(f|0)){j=0;break b}n=h>>>0<=1?1:h;o=J[j>>2];c=f;b=0;j=1;while(1){e=(e<<2)+o|0;i=J[e>>2];if((i|0)==-1){break b}g=J[c>>2];if(g>>>0>=d>>>0){break b}l=J[J[a+72>>2]+12>>2];k=J[l+(i<<2)>>2];if(k>>>0>=d>>>0){break b}i=J[m>>2];J[i+(g<<2)>>2]=k;g=J[e+4>>2];if((g|0)==-1){break b}k=J[c+4>>2];if(k>>>0>=d>>>0){break b}g=J[(g<<2)+l>>2];if(g>>>0>=d>>>0){break b}J[i+(k<<2)>>2]=g;e=J[e+8>>2];if((e|0)==-1){break b}c=J[c+8>>2];if(c>>>0>=d>>>0){break b}e=J[(e<<2)+l>>2];if(e>>>0>=d>>>0){break b}J[i+(c<<2)>>2]=e;b=b+1|0;j=h>>>0>b>>>0;if((b|0)==(n|0)){break b}e=P(b,3);c=f+P(b,12)|0;if((b|0)!=1431655765){continue}break}}return(j^-1)&1}function Hf(a,b,c){var d=0,e=0,f=0,g=0,h=0,i=0,j=0;d=(c>>>0)/3|0;i=J[(J[J[a+8>>2]+96>>2]+P(d,12)|0)+(c-P(d,3)<<2)>>2];e=J[J[a+12>>2]+4>>2];d=J[e+4>>2];a:{if((d|0)!=J[e+8>>2]){J[d>>2]=i;J[e+4>>2]=d+4;break a}b:{h=J[e>>2];g=d-h|0;j=g>>2;d=j+1|0;if(d>>>0<1073741824){f=g>>1;f=g>>>0>=2147483644?1073741823:d>>>0>>0?f:d;if(f){if(f>>>0>=1073741824){break b}d=Aj(f<<2)}else{d=0}j=d+(j<<2)|0;J[j>>2]=i;if((g|0)>0){Vi(d,h,g)}J[e+8>>2]=d+(f<<2);J[e+4>>2]=j+4;J[e>>2]=d;if(h){xj(h)}break a}La();C()}Za();C()}e=J[a+4>>2];d=J[e+4>>2];c:{d:{e:{if((d|0)!=J[e+8>>2]){J[d>>2]=c;J[e+4>>2]=d+4;break e}h=J[e>>2];g=d-h|0;i=g>>2;d=i+1|0;if(d>>>0>=1073741824){break d}f=g>>1;f=g>>>0>=2147483644?1073741823:d>>>0>>0?f:d;if(f){if(f>>>0>=1073741824){break c}d=Aj(f<<2)}else{d=0}i=d+(i<<2)|0;J[i>>2]=c;if((g|0)>0){Vi(d,h,g)}J[e+8>>2]=d+(f<<2);J[e+4>>2]=i+4;J[e>>2]=d;if(!h){break e}xj(h)}a=J[a+4>>2];J[J[a+12>>2]+(b<<2)>>2]=J[a+24>>2];J[a+24>>2]=J[a+24>>2]+1;return}La();C()}Za();C()}function Sb(a,b){var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0;a:{c=J[a+8>>2];b:{if((c|0)!=J[a+12>>2]){e=c;break b}d=J[a+4>>2];g=J[a>>2];if(d>>>0>g>>>0){f=c-d|0;g=((d-g>>2)+1|0)/-2<<2;e=g+d|0;if((c|0)!=(d|0)){Wi(e,d,f);c=J[a+4>>2]}e=e+f|0;J[a+8>>2]=e;J[a+4>>2]=c+g;break b}f=(c|0)==(g|0)?1:c-g>>1;if(f>>>0>=1073741824){break a}e=f<<2;h=Aj(e);k=h+e|0;f=(f&-4)+h|0;e=f;c:{if((c|0)==(d|0)){break c}c=c-d|0;l=c&-4;i=c-4|0;j=(i>>>2|0)+1&7;d:{if(!j){c=f;break d}e=0;c=f;while(1){J[c>>2]=J[d>>2];d=d+4|0;c=c+4|0;e=e+1|0;if((j|0)!=(e|0)){continue}break}}e=f+l|0;if(i>>>0<28){break c}while(1){J[c>>2]=J[d>>2];J[c+4>>2]=J[d+4>>2];J[c+8>>2]=J[d+8>>2];J[c+12>>2]=J[d+12>>2];J[c+16>>2]=J[d+16>>2];J[c+20>>2]=J[d+20>>2];J[c+24>>2]=J[d+24>>2];J[c+28>>2]=J[d+28>>2];d=d+32|0;c=c+32|0;if((e|0)!=(c|0)){continue}break}}J[a+12>>2]=k;J[a+8>>2]=e;J[a+4>>2]=f;J[a>>2]=h;if(!g){break b}xj(g);e=J[a+8>>2]}J[e>>2]=J[b>>2];J[a+8>>2]=J[a+8>>2]+4;return}Za();C()}function Tb(a,b){var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0;a:{f=J[a+4>>2];b:{if((f|0)!=J[a>>2]){c=f;break b}g=J[a+8>>2];c=J[a+12>>2];if(g>>>0>>0){e=((c-g>>2)+1|0)/2<<2;c=e+g|0;if((f|0)!=(g|0)){d=g-f|0;c=c-d|0;Wi(c,f,d);f=J[a+8>>2]}J[a+4>>2]=c;J[a+8>>2]=e+f;break b}d=(c|0)==(f|0)?1:c-f>>1;if(d>>>0>=1073741824){break a}c=d<<2;i=Aj(c);k=i+c|0;c=(d+3&-4)+i|0;h=c;c:{if((f|0)==(g|0)){break c}g=g-f|0;l=g&-4;e=c;d=f;j=g-4|0;g=(j>>>2|0)+1&7;if(g){h=0;while(1){J[e>>2]=J[d>>2];d=d+4|0;e=e+4|0;h=h+1|0;if((g|0)!=(h|0)){continue}break}}h=c+l|0;if(j>>>0<28){break c}while(1){J[e>>2]=J[d>>2];J[e+4>>2]=J[d+4>>2];J[e+8>>2]=J[d+8>>2];J[e+12>>2]=J[d+12>>2];J[e+16>>2]=J[d+16>>2];J[e+20>>2]=J[d+20>>2];J[e+24>>2]=J[d+24>>2];J[e+28>>2]=J[d+28>>2];d=d+32|0;e=e+32|0;if((h|0)!=(e|0)){continue}break}}J[a+12>>2]=k;J[a+8>>2]=h;J[a+4>>2]=c;J[a>>2]=i;if(!f){break b}xj(f);c=J[a+4>>2]}J[c-4>>2]=J[b>>2];J[a+4>>2]=J[a+4>>2]-4;return}Za();C()}function Ff(a){a=a|0;var b=0,c=0,d=0,e=0,f=0,g=0,h=0;g=ia-16|0;ia=g;b=J[a+4>>2];d=J[b>>2];a:{c=J[a+12>>2];c=J[c+28>>2]-J[c+24>>2]|0;e=c>>2;b:{if(e>>>0<=J[b+8>>2]-d>>2>>>0){break b}if((c|0)<0){break a}f=J[b+4>>2];c=Aj(c);h=c+(e<<2)|0;e=f-d|0;f=e+c|0;if((e|0)>0){Vi(c,d,e)}J[b+8>>2]=h;J[b+4>>2]=f;J[b>>2]=c;if(!d){break b}xj(d)}b=J[a+12>>2];d=J[b+28>>2];b=J[b+24>>2];J[g+12>>2]=0;b=d-b>>2;c=a+96|0;e=J[c>>2];d=J[a+100>>2]-e>>2;c:{if(b>>>0>d>>>0){jb(c,b-d|0,g+12|0);break c}if(b>>>0>=d>>>0){break c}J[a+100>>2]=e+(b<<2)}e=a+8|0;b=J[a+116>>2];d:{if(b){c=J[b>>2];if((c|0)==J[b+4>>2]){d=1;break d}b=0;while(1){d=Gf(e,J[(b<<2)+c>>2]);if(!d){break d}f=J[a+116>>2];c=J[f>>2];b=b+1|0;if(b>>>0>2]-c>>2>>>0){continue}break}break d}d=1;a=J[a+12>>2];a=J[a+4>>2]-J[a>>2]|0;if(a>>>0<12){break d}a=(a>>2>>>0)/3|0;b=0;while(1){d=Gf(e,P(b,3));if(!d){break d}b=b+1|0;if((a|0)!=(b|0)){continue}break}}ia=g+16|0;return d|0}La();C()}function Ua(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0;f=J[a+12>>2];h=J[a+8>>2];d=f-h>>2;b=K[b+24|0];a:{if(d>>>0>>0){Oa(a+8|0,b-d|0);h=J[a+8>>2];f=J[a+12>>2];break a}if(b>>>0>=d>>>0){break a}f=(b<<2)+h|0;J[a+12>>2]=f}b=0;i=J[c+20>>2];e=J[c+16>>2];d=f-h|0;f=d;g=e+d|0;j=J[c+12>>2];i=d>>>0>g>>>0?i+1|0:i;b:{if(g>>>0>M[c+8>>2]&(j|0)<=(i|0)|(i|0)>(j|0)){break b}Vi(h,e+J[c>>2]|0,d);d=J[c+20>>2];e=f+J[c+16>>2]|0;d=e>>>0>>0?d+1|0:d;g=e;J[c+16>>2]=e;J[c+20>>2]=d;e=J[c+12>>2];f=g+4|0;d=f>>>0<4?d+1|0:d;if(f>>>0>M[c+8>>2]&(d|0)>=(e|0)|(d|0)>(e|0)){break b}d=g+J[c>>2]|0;J[a+20>>2]=K[d|0]|K[d+1|0]<<8|(K[d+2|0]<<16|K[d+3|0]<<24);d=J[c+20>>2];g=J[c+16>>2];e=g+4|0;f=e>>>0<4?d+1|0:d;j=e;J[c+16>>2]=e;J[c+20>>2]=f;e=J[c+12>>2];if((f|0)>=(e|0)&j>>>0>=M[c+8>>2]|(f|0)>(e|0)){break b}e=K[j+J[c>>2]|0];f=g+5|0;d=f>>>0<5?d+1|0:d;J[c+16>>2]=f;J[c+20>>2]=d;if(e-1>>>0>29){break b}J[a+4>>2]=e;b=1}return b|0}function Mb(a,b){var c=0;a:{if(!je(a,b)){break a}if(!je(a+16|0,b)){break a}if(!je(a+32|0,b)){break a}if(!je(a+48|0,b)){break a}if(!je(a- -64|0,b)){break a}if(!je(a+80|0,b)){break a}if(!je(a+96|0,b)){break a}if(!je(a+112|0,b)){break a}if(!je(a+128|0,b)){break a}if(!je(a+144|0,b)){break a}if(!je(a+160|0,b)){break a}if(!je(a+176|0,b)){break a}if(!je(a+192|0,b)){break a}if(!je(a+208|0,b)){break a}if(!je(a+224|0,b)){break a}if(!je(a+240|0,b)){break a}if(!je(a+256|0,b)){break a}if(!je(a+272|0,b)){break a}if(!je(a+288|0,b)){break a}if(!je(a+304|0,b)){break a}if(!je(a+320|0,b)){break a}if(!je(a+336|0,b)){break a}if(!je(a+352|0,b)){break a}if(!je(a+368|0,b)){break a}if(!je(a+384|0,b)){break a}if(!je(a+400|0,b)){break a}if(!je(a+416|0,b)){break a}if(!je(a+432|0,b)){break a}if(!je(a+448|0,b)){break a}if(!je(a+464|0,b)){break a}if(!je(a+480|0,b)){break a}if(!je(a+496|0,b)){break a}c=je(a+512|0,b)}return c}function Kc(a,b){var c=0,d=0,e=0,f=0,g=0,h=0;d=ia-16|0;ia=d;a:{e=J[a+4>>2];b:{if(e>>>0>>0){f=b-e|0;c=J[a+8>>2];g=c<<5;c:{if(!(f>>>0>g>>>0|e>>>0>g-f>>>0)){J[a+4>>2]=b;h=e&31;b=J[a>>2]+(e>>>3&536870908)|0;break c}J[d+8>>2]=0;J[d>>2]=0;J[d+4>>2]=0;if((b|0)<0){break a}if(g>>>0<=1073741822){c=c<<6;b=b+31&-32;b=b>>>0>>0?c:b}else{b=2147483647}Mc(d,b);c=J[a+4>>2];J[d+4>>2]=c+f;e=J[a>>2];b=J[d>>2];d:{if((c|0)<=0){break d}g=c>>>5<<2;b=Wi(b,e,g)+g|0;h=c&31;if(h){c=-1>>>32-h|0;J[b>>2]=J[b>>2]&(c^-1)|J[e+g>>2]&c}e=J[a>>2]}J[a>>2]=J[d>>2];J[d>>2]=e;c=J[a+4>>2];J[a+4>>2]=J[d+4>>2];J[d+4>>2]=c;c=J[a+8>>2];J[a+8>>2]=J[d+8>>2];J[d+8>>2]=c;if(!e){break c}xj(e)}if(!f){break b}if(h){c=32-h|0;a=c>>>0>>0?c:f;J[b>>2]=J[b>>2]&(-1<>>c-a^-1);f=f-a|0;b=b+4|0}a=b;b=f>>>5<<2;a=Xi(a,0,b);if((f&-32)==(f|0)){break b}a=a+b|0;J[a>>2]=J[a>>2]&(-1>>>32-(f&31)^-1);break b}J[a+4>>2]=b}ia=d+16|0;return}La();C()}function Ij(a,b){var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0;d=K[a+11|0]>>>7|0?J[a+4>>2]:K[a+11|0];if(d>>>0>>0){h=ia-16|0;ia=h;f=b-d|0;if(f){b=K[a+11|0]>>>7|0;g=b?J[a+4>>2]:K[a+11|0];i=g+f|0;b=b?(J[a+8>>2]&2147483647)-1|0:10;if(b-g>>>0>>0){a:{d=ia-16|0;ia=d;c=-17;e=i-b|0;if(e>>>0<=-17-b>>>0){j=K[a+11|0]>>>7|0?J[a>>2]:a;if(b>>>0<2147483623){J[d+8>>2]=b<<1;J[d+12>>2]=b+e;c=ia-16|0;ia=c;ia=c+16|0;c=d+8|0;e=d+12|0;c=J[(M[e>>2]>2]?c:e)>>2];if(c>>>0>=11){e=c+16&-16;c=e-1|0;c=(c|0)==11?e:c}else{c=10}c=c+1|0}e=Aj(c);if(g){zj(e,j,g)}if((b|0)!=10){xj(j)}J[a>>2]=e;J[a+8>>2]=c|-2147483648;ia=d+16|0;break a}fg();C()}}b=K[a+11|0]>>>7|0?J[a>>2]:a;d=g+b|0;if(f){Xi(d,0,f)}b:{if(K[a+11|0]>>>7|0){J[a+4>>2]=i;break b}H[a+11|0]=i}H[h+15|0]=0;H[b+i|0]=K[h+15|0]}ia=h+16|0;return}c=K[a+11|0]>>>7|0;f=c?J[a>>2]:a;d=ia-16|0;ia=d;c:{if(c){J[a+4>>2]=b;break c}H[a+11|0]=b}H[d+15|0]=0;H[b+f|0]=K[d+15|0];ia=d+16|0}function Ci(a,b){var c=0,d=0,e=0,f=0,g=0,h=0;g=ia-16|0;ia=g;a:{b:{if(b){J[a+88>>2]=0;J[a+92>>2]=0;c=J[a+84>>2];J[a+84>>2]=0;if(c){xj(c)}J[a+76>>2]=0;J[a+80>>2]=0;c=J[a+72>>2];J[a+72>>2]=0;if(c){xj(c)}c=J[b>>2];d=J[b+4>>2];H[g+15|0]=0;Qe(a,d-c>>2,g+15|0);c=J[b+28>>2];d=J[b+24>>2];H[g+14|0]=0;Qe(a+12|0,c-d>>2,g+14|0);wi(a+28|0,J[b+4>>2]-J[b>>2]>>2,13756);d=J[b+28>>2]-J[b+24>>2]|0;e=d>>2;c=J[a+52>>2];c:{if(e>>>0<=J[a+60>>2]-c>>2>>>0){break c}if((d|0)<0){break b}f=J[a+56>>2];d=Aj(d);h=d+(e<<2)|0;e=f-c|0;f=e+d|0;if((e|0)>0){Vi(d,c,e)}J[a+60>>2]=h;J[a+56>>2]=f;J[a+52>>2]=d;if(!c){break c}xj(c)}d=J[b+28>>2]-J[b+24>>2]|0;e=d>>2;c=J[a+40>>2];d:{if(e>>>0<=J[a+48>>2]-c>>2>>>0){break d}if((d|0)<0){break a}f=J[a+44>>2];d=Aj(d);h=d+(e<<2)|0;e=f-c|0;f=e+d|0;if((e|0)>0){Vi(d,c,e)}J[a+48>>2]=h;J[a+44>>2]=f;J[a+40>>2]=d;if(!c){break d}xj(c)}H[a+24|0]=1;J[a+64>>2]=b}ia=g+16|0;return}La();C()}La();C()}function Ba(a,b,c,d){var e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0;j=+N[b>>2];k=+N[b+4>>2];l=+N[b+8>>2];g=R(j)+R(k)+R(l);a:{if(!(g>1e-6)){j=1;k=0;e=0;break a}g=1/g;k=g*k;j=g*j;e=g*l<0}h=J[a+16>>2];l=+(h|0);g=V(j*l+.5);b:{if(R(g)<2147483648){m=~~g;break b}m=-2147483648}f=m>>31;i=(f^m)-f|0;g=V(k*l+.5);c:{if(R(g)<2147483648){f=~~g;break c}f=-2147483648}b=f>>31;b=h-(i+((f^b)-b|0)|0)|0;i=(b|0)>0?b:0;e=e?0-i|0:i;f=f+(b>>31&((f|0)>0?b:0-b|0))|0;d:{if((m|0)>=0){b=e+h|0;a=J[a+8>>2];e=h+f|0;break d}b=f>>31;b=(b^f)-b|0;a=J[a+8>>2];b=(e|0)<0?b:a-b|0;e=(f|0)<0?i:a-i|0}e:{if(!(b|e)){b=a;break e}if(!((a|0)!=(b|0)|e)){b=a;break e}if(!((a|0)!=(e|0)|b)){b=a;break e}if(!((b|0)<=(h|0)|e)){b=(h<<1)-b|0;a=0;break e}if(!((a|0)!=(e|0)|(b|0)>=(h|0))){b=(h<<1)-b|0;break e}if(!((a|0)!=(b|0)|(e|0)>=(h|0))){b=a;a=(h<<1)-e|0;break e}if(b){a=e;break e}b=0;if((e|0)<=(h|0)){a=e;break e}a=(h<<1)-e|0}J[c>>2]=a;J[d>>2]=b}function ed(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0;f=J[b+12>>2];c=f;d=J[b+20>>2];g=d;i=J[b+16>>2];e=i+4|0;d=e>>>0<4?d+1|0:d;j=J[b+8>>2];a:{if(j>>>0>>0&(c|0)<=(d|0)|(c|0)<(d|0)){break a}k=J[b>>2];c=i+k|0;c=K[c|0]|K[c+1|0]<<8|(K[c+2|0]<<16|K[c+3|0]<<24);J[b+16>>2]=e;J[b+20>>2]=d;d=g;h=i+8|0;d=h>>>0<8?d+1|0:d;if(h>>>0>j>>>0&(d|0)>=(f|0)|(d|0)>(f|0)){break a}e=e+k|0;e=K[e|0]|K[e+1|0]<<8|(K[e+2|0]<<16|K[e+3|0]<<24);J[b+16>>2]=h;J[b+20>>2]=d;if((c|0)>(e|0)){break a}J[a+16>>2]=e;J[a+12>>2]=c;l=(e>>31)-((c>>31)+(c>>>0>e>>>0)|0)|0;c=e-c|0;if(!l&c>>>0>2147483646|l){break a}c=c+1|0;J[a+20>>2]=c;e=c>>>1|0;J[a+24>>2]=e;J[a+28>>2]=0-e;if(!(c&1)){J[a+24>>2]=e-1}if(L[b+38>>1]<=513){if((d|0)>=(f|0)&h>>>0>=j>>>0|(d|0)>(f|0)){break a}c=K[h+k|0];d=g;g=i+9|0;d=g>>>0<9?d+1|0:d;J[b+16>>2]=g;J[b+20>>2]=d;if(c>>>0>1){break a}J[a+88>>2]=c}m=je(a+112|0,b)}return m|0}function Ca(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=Q(0),f=Q(0),g=Q(0),h=Q(0),i=Q(0),j=0,k=Q(0),l=Q(0),m=Q(0),n=Q(0),o=0;a:{if(J[c+28>>2]!=9|K[c+24|0]!=3){break a}a=J[a+4>>2];if(a-31>>>0<4294967267){break a}o=1;j=J[c+80>>2];if(!j){break a}k=Q(Q(2)/Q((1<>2]>>2]+J[c+48>>2]|0;a=J[J[b>>2]>>2]+J[b+48>>2]|0;b=0;while(1){g=Q(0);l=Q(0);m=Q(0);e=Q(Q(Q(J[a>>2])*k)+Q(-1));f=Q(Q(Q(J[a+4>>2])*k)+Q(-1));i=Q(Q(Q(1)-Q(R(e)))-Q(R(f)));h=Q(U(Q(-i),Q(0)));n=Q(-h);f=Q(f+(f>>8;H[c+10|0]=d>>>16;H[c+11|0]=d>>>24;d=(B(l),v(2));H[c+4|0]=d;H[c+5|0]=d>>>8;H[c+6|0]=d>>>16;H[c+7|0]=d>>>24;d=(B(g),v(2));H[c|0]=d;H[c+1|0]=d>>>8;H[c+2|0]=d>>>16;H[c+3|0]=d>>>24;c=c+12|0;b=b+1|0;if((j|0)!=(b|0)){continue}break}}return o|0}function Ei(a,b){var c=0,d=0,e=0,f=0,g=0,h=0;g=J[a>>2];c=g+(b>>>3&536870908)|0;J[c>>2]=J[c>>2]|1<>2];e=(b|0)==-1;d=-1;a:{if(e){break a}c=b+1|0;c=(c>>>0)%3|0?c:b-2|0;d=-1;if((c|0)==-1){break a}d=J[J[f>>2]+(c<<2)>>2]}c=J[a+12>>2];h=(d>>>3&536870908)+c|0;J[h>>2]=J[h>>2]|1<>>0)%3|0){e=b-1|0;break e}e=b+2|0;d=-1;if((e|0)==-1){break d}}d=J[J[f>>2]+(e<<2)>>2]}e=(d>>>3&536870908)+c|0;J[e>>2]=J[e>>2]|1<>2]+(b<<2)>>2];if((b|0)==-1){break b}H[a+24|0]=0;a=(b>>>3&536870908)+g|0;J[a>>2]=J[a>>2]|1<>>0)%3|0?a:b-2|0;if((a|0)!=-1){d=J[J[f>>2]+(a<<2)>>2]}a=c+(d>>>3&536870908)|0;J[a>>2]=J[a>>2]|1<>>0)%3|0){b=b-1|0;break g}b=b+2|0;a=-1;if((b|0)==-1){break f}}a=J[J[f>>2]+(b<<2)>>2]}b=1<>>3&536870908)|0;c=J[a>>2];break c}a=c+536870908|0;b=J[c+536870908>>2];c=-2147483648}J[a>>2]=b|c}}function Si(a,b,c){var d=0,e=0,f=0,g=0,h=0,i=0,j=0;a:{if(b>>>0<=63){b=0;a=J[a+12>>2];if(a>>>0<2){break a}b=a-1|0;e=b&3;d=J[c>>2];c=0;b:{if(a-2>>>0<3){a=1;b=0;break b}f=b&-4;b=0;a=1;while(1){g=a+3|0;h=a+2|0;i=a+1|0;b=M[d+(b<<2)>>2]>M[d+(a<<2)>>2]?a:b;b=M[d+(b<<2)>>2]>M[d+(i<<2)>>2]?i:b;b=M[d+(b<<2)>>2]>M[d+(h<<2)>>2]?h:b;b=M[d+(b<<2)>>2]>M[d+(g<<2)>>2]?g:b;a=a+4|0;j=j+4|0;if((f|0)!=(j|0)){continue}break}}if(!e){break a}while(1){b=M[d+(b<<2)>>2]>M[d+(a<<2)>>2]?a:b;a=a+1|0;c=c+1|0;if((e|0)!=(c|0)){continue}break}break a}b=J[a+580>>2];d=32-b|0;if((d|0)>=4){c=J[a+576>>2];if((c|0)==J[a+568>>2]){return 0}d=J[c>>2];e=b+4|0;J[a+580>>2]=e;b=d<>>28|0;if((e|0)!=32){break a}J[a+580>>2]=0;J[a+576>>2]=c+4;return b}c=J[a+576>>2];e=c+4|0;if((e|0)==J[a+568>>2]){return 0}f=J[c>>2];J[a+576>>2]=e;J[a+580>>2]=b-28;a=60-b|0;b=J[c+4>>2]>>>a|f<>>a-d}return b}function tf(a){a=a|0;var b=0,c=0,d=0,e=0;J[a>>2]=11484;b=J[a+388>>2];if(b){J[a+392>>2]=b;xj(b)}d=J[a+368>>2];J[a+368>>2]=0;if(d){e=d-4|0;b=J[e>>2];if(b){c=(b<<4)+d|0;while(1){c=c-16|0;if((d|0)!=(c|0)){continue}break}}xj(e)}rf(a+216|0);b=J[a+196>>2];if(b){J[a+200>>2]=b;xj(b)}b=J[a+184>>2];if(b){J[a+188>>2]=b;xj(b)}b=J[a+172>>2];if(b){J[a+176>>2]=b;xj(b)}b=J[a+160>>2];if(b){J[a+164>>2]=b;xj(b)}c=J[a+144>>2];if(c){while(1){b=J[c>>2];xj(c);c=b;if(b){continue}break}}b=J[a+136>>2];J[a+136>>2]=0;if(b){xj(b)}b=J[a+120>>2];if(b){xj(b)}b=J[a+108>>2];if(b){xj(b)}b=J[a+96>>2];if(b){xj(b)}b=J[a+72>>2];if(b){J[a+76>>2]=b;xj(b)}b=J[a+60>>2];if(b){xj(b)}b=J[a+48>>2];if(b){J[a+52>>2]=b;xj(b)}b=J[a+36>>2];if(b){J[a+40>>2]=b;xj(b)}b=J[a+24>>2];if(b){J[a+28>>2]=b;xj(b)}b=J[a+12>>2];if(b){J[a+16>>2]=b;xj(b)}b=J[a+8>>2];J[a+8>>2]=0;if(b){Ue(b)}return a|0}function qf(a){a=a|0;var b=0,c=0,d=0,e=0;J[a>>2]=11432;d=J[a+368>>2];J[a+368>>2]=0;if(d){e=d-4|0;b=J[e>>2];if(b){c=(b<<4)+d|0;while(1){c=c-16|0;if((d|0)!=(c|0)){continue}break}}xj(e)}rf(a+216|0);b=J[a+196>>2];if(b){J[a+200>>2]=b;xj(b)}b=J[a+184>>2];if(b){J[a+188>>2]=b;xj(b)}b=J[a+172>>2];if(b){J[a+176>>2]=b;xj(b)}b=J[a+160>>2];if(b){J[a+164>>2]=b;xj(b)}c=J[a+144>>2];if(c){while(1){b=J[c>>2];xj(c);c=b;if(b){continue}break}}b=J[a+136>>2];J[a+136>>2]=0;if(b){xj(b)}b=J[a+120>>2];if(b){xj(b)}b=J[a+108>>2];if(b){xj(b)}b=J[a+96>>2];if(b){xj(b)}b=J[a+72>>2];if(b){J[a+76>>2]=b;xj(b)}b=J[a+60>>2];if(b){xj(b)}b=J[a+48>>2];if(b){J[a+52>>2]=b;xj(b)}b=J[a+36>>2];if(b){J[a+40>>2]=b;xj(b)}b=J[a+24>>2];if(b){J[a+28>>2]=b;xj(b)}b=J[a+12>>2];if(b){J[a+16>>2]=b;xj(b)}b=J[a+8>>2];J[a+8>>2]=0;if(b){Ue(b)}return a|0}function vh(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,f=0,g=0;a:{a=ia-32|0;ia=a;e=hj(c);if(e>>>0<4294967280){b:{c:{if(e>>>0>=11){g=(e|15)+1|0;f=Aj(g);J[a+24>>2]=g|-2147483648;J[a+16>>2]=f;J[a+20>>2]=e;break c}H[a+27|0]=e;f=a+16|0;if(!e){break b}}Vi(f,c,e)}H[e+f|0]=0;J[a+8>>2]=0;J[a>>2]=0;J[a+4>>2]=0;d:{c=ug(b,a+16|0);if((c|0)==(b+4|0)){break d}b=J[c+28>>2];f=J[c+32>>2];if((b|0)==(f|0)){break d}b=f-b|0;if(b&3){break d}e=b>>>2|0;f=J[a+4>>2];b=J[a>>2];g=f-b>>2;e:{if(e>>>0>g>>>0){Oa(a,e-g|0);b=J[a>>2];f=J[a+4>>2];break e}if(e>>>0>=g>>>0){break e}f=(e<<2)+b|0;J[a+4>>2]=f}if((b|0)!=(f|0)){e=b;b=J[c+28>>2];Vi(e,b,J[c+32>>2]-b|0);break d}Bc();C()}b=J[d>>2];if(b){J[d+4>>2]=b;xj(b)}J[d>>2]=J[a>>2];J[d+4>>2]=J[a+4>>2];J[d+8>>2]=J[a+8>>2];if(H[a+27|0]<0){xj(J[a+16>>2])}ia=a+32|0;break a}fg();C()}}function Re(a,b){var c=0,d=0;c=J[b+8>>2];J[a+4>>2]=J[b+4>>2];J[a+8>>2]=c;J[a+20>>2]=J[b+20>>2];c=J[b+16>>2];J[a+12>>2]=J[b+12>>2];J[a+16>>2]=c;a:{b:{if((a|0)!=(b|0)){c=J[b+28>>2];if(c){d=J[a+24>>2];if(J[a+32>>2]<<5>>>0>>0){if(d){xj(d);J[a+32>>2]=0;J[a+24>>2]=0;J[a+28>>2]=0;c=J[b+28>>2]}if((c|0)<0){break b}c=(c-1>>>5|0)+1|0;d=Aj(c<<2);J[a+32>>2]=c;J[a+28>>2]=0;J[a+24>>2]=d;c=J[b+28>>2]}Wi(d,J[b+24>>2],(c-1>>>3&536870908)+4|0);c=J[b+28>>2]}else{c=0}J[a+28>>2]=c;c=J[b+40>>2];if(c){d=J[a+36>>2];if(J[a+44>>2]<<5>>>0>>0){if(d){xj(d);J[a+44>>2]=0;J[a+36>>2]=0;J[a+40>>2]=0;c=J[b+40>>2]}if((c|0)<0){break a}c=(c-1>>>5|0)+1|0;d=Aj(c<<2);J[a+44>>2]=c;J[a+40>>2]=0;J[a+36>>2]=d;c=J[b+40>>2]}Wi(d,J[b+36>>2],(c-1>>>3&536870908)+4|0);b=J[b+40>>2]}else{b=0}J[a+40>>2]=b}return}La();C()}La();C()}function th(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0;d=ia-16|0;ia=d;a:{e=hj(c);if(e>>>0<4294967280){b:{c:{if(e>>>0>=11){f=(e|15)+1|0;a=Aj(f);J[d+8>>2]=f|-2147483648;J[d>>2]=a;J[d+4>>2]=e;break c}H[d+11|0]=e;a=d;if(!e){break b}}Vi(a,c,e)}H[a+e|0]=0;c=K[d+11|0];e=c<<24>>24;b=J[b+4>>2];a=0;d:{if(!b){break d}a=c;c=(e|0)<0;a=c?J[d+4>>2]:a;f=c?J[d>>2]:d;while(1){c=K[b+27|0];g=c<<24>>24<0;c=g?J[b+20>>2]:c;i=c>>>0>>0;e:{f:{g:{h:{i:{j:{h=i?c:a;if(h){g=g?J[b+16>>2]:b+16|0;j=bj(f,g,h);if(j){break j}if(a>>>0>=c>>>0){break i}break e}if(a>>>0>=c>>>0){break h}break e}if((j|0)<0){break e}}c=bj(g,f,h);if(c){break g}}if(i){break f}a=1;break d}if((c|0)<0){break f}a=1;break d}b=b+4|0}b=J[b>>2];if(b){continue}break}a=0}if((e|0)<0){xj(J[d>>2])}ia=d+16|0;break a}fg();C()}return a|0}function yd(a){var b=0,c=0,d=0;b=J[a+8>>2];d=J[a>>2];a:{if(K[a+12|0]){b:{c:{d:{e:{if((b|0)==-1){break e}c=b+1|0;b=(c>>>0)%3|0?c:b-2|0;if((b|0)==-1){break e}b=J[J[d+12>>2]+(b<<2)>>2];if((b|0)!=-1){break d}}J[a+8>>2]=-1;break c}c=b+1|0;b=(c>>>0)%3|0?c:b-2|0;J[a+8>>2]=b;if((b|0)!=-1){break b}}c=J[a+4>>2];b=-1;f:{if((c|0)==-1){break f}g:{if((c>>>0)%3|0){c=c-1|0;break g}c=c+2|0;b=-1;if((c|0)==-1){break f}}c=J[J[d+12>>2]+(c<<2)>>2];b=-1;if((c|0)==-1){break f}b=c-1|0;if((c>>>0)%3|0){break f}b=c+2|0}H[a+12|0]=0;J[a+8>>2]=b;return}if((b|0)!=J[a+4>>2]){break a}J[a+8>>2]=-1;return}c=-1;h:{if((b|0)==-1){break h}i:{if((b>>>0)%3|0){b=b-1|0;break i}b=b+2|0;c=-1;if((b|0)==-1){break h}}b=J[J[d+12>>2]+(b<<2)>>2];c=-1;if((b|0)==-1){break h}c=b-1|0;if((b>>>0)%3|0){break h}c=b+2|0}J[a+8>>2]=c}}function ej(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0;f=ia-32|0;ia=f;d=J[a+28>>2];J[f+16>>2]=d;g=J[a+20>>2];J[f+28>>2]=c;J[f+24>>2]=b;b=g-d|0;J[f+20>>2]=b;g=b+c|0;i=2;a:{b:{b=f+16|0;d=ea(J[a+60>>2],b|0,2,f+12|0)|0;if(d){J[4004]=d;d=-1}else{d=0}c:{d:{if(d){d=b;break d}while(1){e=J[f+12>>2];if((e|0)==(g|0)){break c}if((e|0)<0){d=b;break b}h=J[b+4>>2];j=h>>>0>>0;d=(j<<3)+b|0;h=e-(j?h:0)|0;J[d>>2]=h+J[d>>2];b=(j?12:4)+b|0;J[b>>2]=J[b>>2]-h;g=g-e|0;b=d;i=i-j|0;e=ea(J[a+60>>2],b|0,i|0,f+12|0)|0;if(e){J[4004]=e;e=-1}else{e=0}if(!e){continue}break}}if((g|0)!=-1){break b}}b=J[a+44>>2];J[a+28>>2]=b;J[a+20>>2]=b;J[a+16>>2]=b+J[a+48>>2];a=c;break a}J[a+28>>2]=0;J[a+16>>2]=0;J[a+20>>2]=0;J[a>>2]=J[a>>2]|32;a=0;if((i|0)==2){break a}a=c-J[d+4>>2]|0}ia=f+32|0;return a|0}function Jd(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0;f=J[b+12>>2];c=J[b+20>>2];d=c;i=J[b+16>>2];e=i+4|0;c=e>>>0<4?c+1|0:c;j=J[b+8>>2];g=e;a:{if(j>>>0>>0&(c|0)>=(f|0)|(c|0)>(f|0)){break a}k=J[b>>2];e=i+k|0;h=K[e|0]|K[e+1|0]<<8|(K[e+2|0]<<16|K[e+3|0]<<24);J[b+16>>2]=g;J[b+20>>2]=c;e=L[b+38>>1];if(e>>>0<=513){c=d;d=i+8|0;c=d>>>0<8?c+1|0:c;g=d;if(d>>>0>j>>>0&(c|0)>=(f|0)|(c|0)>(f|0)){break a}J[b+16>>2]=g;J[b+20>>2]=c}if(!(h&1)){break a}d=S(h)^31;if(d-30>>>0<4294967267){break a}J[a+8>>2]=d+1;d=-2<>2]=h;J[a+12>>2]=d^-1;J[a+24>>2]=(h|0)/2;N[a+20>>2]=Q(2)/Q(h|0);if(e>>>0<=513){if((c|0)>=(f|0)&g>>>0>=j>>>0|(c|0)>(f|0)){break a}f=K[g+k|0];d=g+1|0;c=d?c:c+1|0;J[b+16>>2]=d;J[b+20>>2]=c;if(f>>>0>1){break a}J[a+72>>2]=f}l=je(a+96|0,b)}return l|0}function Td(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0;f=J[b+12>>2];c=J[b+20>>2];g=c;h=J[b+16>>2];d=h+4|0;c=d>>>0<4?c+1|0:c;i=J[b+8>>2];a:{if(i>>>0>>0&(c|0)>=(f|0)|(c|0)>(f|0)){break a}k=J[b>>2];e=h+k|0;e=K[e|0]|K[e+1|0]<<8|(K[e+2|0]<<16|K[e+3|0]<<24);J[b+16>>2]=d;J[b+20>>2]=c;c=g;d=h+8|0;c=d>>>0<8?c+1|0:c;j=d;if(d>>>0>i>>>0&(c|0)>=(f|0)|(c|0)>(f|0)){break a}J[b+16>>2]=j;J[b+20>>2]=c;if(!(e&1)){break a}d=S(e)^31;if(d-30>>>0<4294967267){break a}J[a+8>>2]=d+1;d=-2<>2]=e;J[a+12>>2]=d^-1;J[a+24>>2]=(e|0)/2;N[a+20>>2]=Q(2)/Q(e|0);if(L[b+38>>1]<=513){if((c|0)>=(f|0)&j>>>0>=i>>>0|(c|0)>(f|0)){break a}f=K[j+k|0];c=h+9|0;g=c>>>0<9?g+1|0:g;J[b+16>>2]=c;J[b+20>>2]=g;if(f>>>0>1){break a}J[a+72>>2]=f}l=je(a+96|0,b)}return l|0}function Wi(a,b,c){var d=0,e=0;a:{if((a|0)==(b|0)){break a}e=a+c|0;if(b-e>>>0<=0-(c<<1)>>>0){return Vi(a,b,c)}d=(a^b)&3;b:{c:{if(a>>>0>>0){if(d){d=a;break b}if(!(a&3)){d=a;break c}d=a;while(1){if(!c){break a}H[d|0]=K[b|0];b=b+1|0;c=c-1|0;d=d+1|0;if(d&3){continue}break}break c}d:{if(d){break d}if(e&3){while(1){if(!c){break a}c=c-1|0;d=c+a|0;H[d|0]=K[b+c|0];if(d&3){continue}break}}if(c>>>0<=3){break d}while(1){c=c-4|0;J[c+a>>2]=J[b+c>>2];if(c>>>0>3){continue}break}}if(!c){break a}while(1){c=c-1|0;H[c+a|0]=K[b+c|0];if(c){continue}break}break a}if(c>>>0<=3){break b}while(1){J[d>>2]=J[b>>2];b=b+4|0;d=d+4|0;c=c-4|0;if(c>>>0>3){continue}break}}if(!c){break a}while(1){H[d|0]=K[b|0];d=d+1|0;b=b+1|0;c=c-1|0;if(c){continue}break}}return a}function nc(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0;h=J[c+12>>2];d=h;e=J[c+20>>2];i=J[c+8>>2];f=J[c+16>>2];a:{if((d|0)<=(e|0)&i>>>0<=f>>>0|(d|0)<(e|0)){break a}j=J[c>>2];k=H[j+f|0];d=e;g=f+1|0;d=g?d:d+1|0;J[c+16>>2]=g;J[c+20>>2]=d;b:{if((k|0)==-2){break b}if((d|0)>=(h|0)&g>>>0>=i>>>0|(d|0)>(h|0)){break a}d=H[g+j|0];f=f+2|0;e=f>>>0<2?e+1|0:e;J[c+16>>2]=f;J[c+20>>2]=e;if((d-4&255)>>>0<251){break a}e=na[J[J[a>>2]+40>>2]](a,k,d)|0;d=J[a+20>>2];J[a+20>>2]=e;if(!d){break b}na[J[J[d>>2]+4>>2]](d)}d=J[a+20>>2];if(d){if(!(na[J[J[a>>2]+28>>2]](a,d)|0)){break a}}if(!(na[J[J[a>>2]+36>>2]](a,b,c)|0)){break a}c=J[a+4>>2];if(!(!c|K[c+36|0]>1)){if(!(na[J[J[a>>2]+48>>2]](a,J[b+4>>2]-J[b>>2]>>2)|0)){break a}}l=1}return l|0}function nj(a,b,c,d){a:{switch(b-9|0){case 0:b=J[c>>2];J[c>>2]=b+4;J[a>>2]=J[b>>2];return;case 6:b=J[c>>2];J[c>>2]=b+4;b=I[b>>1];J[a>>2]=b;J[a+4>>2]=b>>31;return;case 7:b=J[c>>2];J[c>>2]=b+4;J[a>>2]=L[b>>1];J[a+4>>2]=0;return;case 8:b=J[c>>2];J[c>>2]=b+4;b=H[b|0];J[a>>2]=b;J[a+4>>2]=b>>31;return;case 9:b=J[c>>2];J[c>>2]=b+4;J[a>>2]=K[b|0];J[a+4>>2]=0;return;case 16:b=J[c>>2]+7&-8;J[c>>2]=b+8;O[a>>3]=O[b>>3];return;case 17:na[d|0](a,c);default:return;case 1:case 4:case 14:b=J[c>>2];J[c>>2]=b+4;b=J[b>>2];J[a>>2]=b;J[a+4>>2]=b>>31;return;case 2:case 5:case 11:case 15:b=J[c>>2];J[c>>2]=b+4;J[a>>2]=J[b>>2];J[a+4>>2]=0;return;case 3:case 10:case 12:case 13:break a}}b=J[c>>2]+7&-8;J[c>>2]=b+8;c=J[b+4>>2];J[a>>2]=J[b>>2];J[a+4>>2]=c}function dc(a,b){var c=0,d=0,e=0,f=0,g=0,h=0,i=0;d=J[a+8>>2];c=J[a+4>>2];if(d-c>>2>>>0>=b>>>0){if(b){b=b<<2;c=Xi(c,0,b)+b|0}J[a+4>>2]=c;return}a:{b:{c:{g=J[a>>2];f=c-g>>2;e=f+b|0;if(e>>>0<1073741824){d=d-g|0;h=d>>1;e=d>>>0>=2147483644?1073741823:e>>>0>>0?h:e;if(e){if(e>>>0>=1073741824){break c}i=Aj(e<<2)}d=(f<<2)+i|0;f=b<<2;b=Xi(d,0,f);f=b+f|0;e=(e<<2)+i|0;if((c|0)==(g|0)){break b}while(1){c=c-4|0;b=J[c>>2];J[c>>2]=0;d=d-4|0;J[d>>2]=b;if((c|0)!=(g|0)){continue}break}J[a+8>>2]=e;b=J[a+4>>2];J[a+4>>2]=f;c=J[a>>2];J[a>>2]=d;if((b|0)==(c|0)){break a}while(1){b=b-4|0;a=J[b>>2];J[b>>2]=0;if(a){na[J[J[a>>2]+4>>2]](a)}if((b|0)!=(c|0)){continue}break}break a}La();C()}Za();C()}J[a+8>>2]=e;J[a+4>>2]=f;J[a>>2]=b}if(c){xj(c)}}function Mj(a,b){var c=0,d=0,e=0;c=ia+-64|0;ia=c;d=J[a>>2];e=J[d-4>>2];d=J[d-8>>2];J[c+32>>2]=0;J[c+36>>2]=0;J[c+40>>2]=0;J[c+44>>2]=0;J[c+48>>2]=0;J[c+52>>2]=0;H[c+55|0]=0;H[c+56|0]=0;H[c+57|0]=0;H[c+58|0]=0;H[c+59|0]=0;H[c+60|0]=0;H[c+61|0]=0;H[c+62|0]=0;J[c+24>>2]=0;J[c+28>>2]=0;J[c+20>>2]=0;J[c+16>>2]=14972;J[c+12>>2]=a;J[c+8>>2]=b;a=a+d|0;d=0;a:{if(Kj(e,b,0)){J[c+56>>2]=1;na[J[J[e>>2]+20>>2]](e,c+8|0,a,a,1,0);d=J[c+32>>2]==1?a:0;break a}na[J[J[e>>2]+24>>2]](e,c+8|0,a,1,0);b:{switch(J[c+44>>2]){case 0:d=J[c+48>>2]==1?J[c+36>>2]==1?J[c+40>>2]==1?J[c+28>>2]:0:0:0;break a;case 1:break b;default:break a}}if(J[c+32>>2]!=1){if(J[c+48>>2]|J[c+36>>2]!=1|J[c+40>>2]!=1){break a}}d=J[c+24>>2]}ia=c- -64|0;return d}function ie(a,b){var c=0,d=0,e=0,f=0,g=0,h=0,i=0;J[a+16>>2]=0;c=J[a>>2];J[a+4>>2]=c;J[a+12>>2]=c;g=J[b+12>>2];c=g;d=J[b+20>>2];f=J[b+16>>2];e=f+4|0;d=e>>>0<4?d+1|0:d;h=J[b+8>>2];a:{if(h>>>0>>0&(c|0)<=(d|0)|(c|0)<(d|0)){break a}c=f+J[b>>2]|0;c=K[c|0]|K[c+1|0]<<8|(K[c+2|0]<<16|K[c+3|0]<<24);J[b+16>>2]=e;J[b+20>>2]=d;if(!c|c&3){break a}f=g-(d+(e>>>0>h>>>0)|0)|0;if(h-e>>>0>>0&(f|0)<=0|(f|0)<0){break a}if(c>>>0>=4){Oa(a,c>>>2|0);h=J[b+8>>2];g=J[b+12>>2];e=J[b+16>>2];d=J[b+20>>2]}f=c+e|0;d=c>>>0>f>>>0?d+1|0:d;if(f>>>0>h>>>0&(d|0)>=(g|0)|(d|0)>(g|0)){break a}Vi(J[a>>2],e+J[b>>2]|0,c);d=J[b+20>>2];e=c+J[b+16>>2]|0;d=e>>>0>>0?d+1|0:d;J[b+16>>2]=e;J[b+20>>2]=d;J[a+16>>2]=0;J[a+12>>2]=J[a>>2];i=1}return i}function Gi(a,b){var c=0,d=0,e=0,f=0;d=-1;e=-1;f=-1;a:{b:{if((b|0)==-1){break b}e=J[J[J[a+4>>2]+12>>2]+(b<<2)>>2];c=b+1|0;c=(c>>>0)%3|0?c:b-2|0;if((c|0)>=0){f=(c>>>0)/3|0;f=J[(J[J[a>>2]+96>>2]+P(f,12)|0)+(c-P(f,3)<<2)>>2]}c:{if((e|0)==-1){break c}c=((e>>>0)%3|0?-1:2)+e|0;if((c|0)<0){break c}d=(c>>>0)/3|0;d=J[(J[J[a>>2]+96>>2]+P(d,12)|0)+(c-P(d,3)<<2)>>2]}c=-1;if((d|0)!=(f|0)){break a}f=-1;d:{b=((b>>>0)%3|0?-1:2)+b|0;if((b|0)>=0){d=(b>>>0)/3|0;d=J[(J[J[a>>2]+96>>2]+P(d,12)|0)+(b-P(d,3)<<2)>>2];if((e|0)==-1){break b}break d}d=-1;if((e|0)!=-1){break d}break b}b=e+1|0;b=(b>>>0)%3|0?b:e-2|0;if((b|0)<0){break b}c=J[J[a>>2]+96>>2];a=(b>>>0)/3|0;f=J[(c+P(a,12)|0)+(b-P(a,3)<<2)>>2]}c=(d|0)!=(f|0)?-1:e}return c}function ng(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0;c=Aj(72);J[c+4>>2]=0;J[c+8>>2]=0;J[c>>2]=2032;J[c+12>>2]=0;J[c+16>>2]=0;J[c+20>>2]=0;J[c+24>>2]=0;J[c+28>>2]=0;J[c+32>>2]=0;J[c+36>>2]=0;J[c+40>>2]=0;J[c>>2]=2176;J[c+44>>2]=0;J[c+48>>2]=0;J[c+52>>2]=0;J[c+56>>2]=0;J[c+60>>2]=0;J[c+64>>2]=0;J[c+68>>2]=0;h=c;a:{if((b|0)>=0){g=a+8|0;c=J[a+12>>2];e=J[a+8>>2];f=c-e>>2;b:{if((f|0)>(b|0)){break b}d=b+1|0;if(b>>>0>=f>>>0){dc(g,d-f|0);break b}if(d>>>0>=f>>>0){break b}e=(d<<2)+e|0;if((e|0)!=(c|0)){while(1){c=c-4|0;d=J[c>>2];J[c>>2]=0;if(d){na[J[J[d>>2]+4>>2]](d)}if((c|0)!=(e|0)){continue}break}}J[a+12>>2]=e}a=J[g>>2]+(b<<2)|0;c=J[a>>2];J[a>>2]=h;if(!c){break a}}na[J[J[c>>2]+4>>2]](c)}return(b^-1)>>>31|0}function Xi(a,b,c){var d=0,e=0,f=0;a:{if(!c){break a}H[a|0]=b;e=a+c|0;H[e-1|0]=b;if(c>>>0<3){break a}H[a+2|0]=b;H[a+1|0]=b;H[e-3|0]=b;H[e-2|0]=b;if(c>>>0<7){break a}H[a+3|0]=b;H[e-4|0]=b;if(c>>>0<9){break a}e=0-a&3;f=e+a|0;d=P(b&255,16843009);J[f>>2]=d;b=c-e&-4;c=b+f|0;J[c-4>>2]=d;if(b>>>0<9){break a}J[f+8>>2]=d;J[f+4>>2]=d;J[c-8>>2]=d;J[c-12>>2]=d;if(b>>>0<25){break a}J[f+24>>2]=d;J[f+20>>2]=d;J[f+16>>2]=d;J[f+12>>2]=d;J[c-16>>2]=d;J[c-20>>2]=d;J[c-24>>2]=d;J[c-28>>2]=d;c=b;b=f&4|24;c=c-b|0;if(c>>>0<32){break a}d=jk(d,0,1,1);e=ma;b=b+f|0;while(1){J[b+24>>2]=d;J[b+28>>2]=e;J[b+16>>2]=d;J[b+20>>2]=e;J[b+8>>2]=d;J[b+12>>2]=e;J[b>>2]=d;J[b+4>>2]=e;b=b+32|0;c=c-32|0;if(c>>>0>31){continue}break}}return a}function zc(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0;d=J[b+12>>2];h=d;c=J[b+20>>2];e=c;f=J[b+16>>2];g=f+4|0;c=g>>>0<4?c+1|0:c;i=J[b+8>>2];a:{if(i>>>0>>0&(c|0)>=(d|0)|(c|0)>(d|0)){break a}j=J[b>>2];d=j+f|0;d=K[d|0]|K[d+1|0]<<8|(K[d+2|0]<<16|K[d+3|0]<<24);J[b+16>>2]=g;J[b+20>>2]=c;c=e;e=f+8|0;c=e>>>0<8?c+1|0:c;f=e;e=c;if(f>>>0>i>>>0&(c|0)>=(h|0)|(c|0)>(h|0)){break a}c=g+j|0;c=K[c|0]|K[c+1|0]<<8|(K[c+2|0]<<16|K[c+3|0]<<24);J[b+16>>2]=f;J[b+20>>2]=e;if((c|0)<(d|0)){break a}J[a+16>>2]=c;J[a+12>>2]=d;b=(c>>31)-((d>>31)+(c>>>0>>0)|0)|0;c=c-d|0;if(!b&c>>>0>2147483646|b){break a}k=1;b=c+1|0;J[a+20>>2]=b;c=b>>>1|0;J[a+24>>2]=c;J[a+28>>2]=0-c;if(b&1){break a}J[a+24>>2]=c-1}return k|0}function Vf(a){a=a|0;var b=0,c=0,d=0,e=0,f=0,g=0;b=J[a+4>>2];d=J[b>>2];a:{c=J[a+12>>2];c=J[c+56>>2]-J[c+52>>2]|0;e=c>>2;b:{if(e>>>0<=J[b+8>>2]-d>>2>>>0){break b}if((c|0)<0){break a}f=J[b+4>>2];c=Aj(c);g=c+(e<<2)|0;e=f-d|0;f=e+c|0;if((e|0)>0){Vi(c,d,e)}J[b+8>>2]=g;J[b+4>>2]=f;J[b>>2]=c;if(!d){break b}xj(d)}e=a+8|0;b=J[a+76>>2];c:{if(b){d=J[b>>2];if((d|0)==J[b+4>>2]){return 1}b=0;while(1){c=Wf(e,J[(b<<2)+d>>2]);if(!c){break c}f=J[a+76>>2];d=J[f>>2];b=b+1|0;if(b>>>0>2]-d>>2>>>0){continue}break}break c}c=1;a=J[J[a+12>>2]+64>>2];a=J[a+4>>2]-J[a>>2]|0;if(a>>>0<12){break c}a=(a>>2>>>0)/3|0;b=0;while(1){c=Wf(e,P(b,3));if(!c){break c}b=b+1|0;if((a|0)!=(b|0)){continue}break}}return c|0}La();C()}function Ob(a,b,c){var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0;e=a+16|0;d=J[e>>2];a:{if(!d){break a}f=J[b>>2];b=e;while(1){g=(f|0)>J[d+16>>2];b=g?b:d;d=J[(g?d+4|0:d)>>2];if(d){continue}break}if((b|0)==(e|0)|(f|0)>2]){break a}d=J[b+24>>2];if(!d){break a}f=b+20|0;b=K[c+11|0];e=b<<24>>24<0;g=e?J[c>>2]:c;b=e?J[c+4>>2]:b;while(1){e=K[d+27|0];h=e<<24>>24<0;e=h?J[d+20>>2]:e;j=e>>>0>>0;b:{c:{d:{e:{f:{g:{i=j?e:b;if(i){h=h?J[d+16>>2]:d+16|0;k=bj(g,h,i);if(k){break g}if(b>>>0>=e>>>0){break f}break b}if(b>>>0>=e>>>0){break e}break b}if((k|0)<0){break b}}e=bj(h,g,i);if(e){break d}}if(j){break c}return vg(f,c)}if((e|0)<0){break c}return vg(f,c)}d=d+4|0}d=J[d>>2];if(d){continue}break}}return vg(a,c)}function Pf(a){a=a|0;var b=0,c=0,d=0,e=0,f=0,g=0;b=J[a+4>>2];d=J[b>>2];a:{c=J[a+12>>2];c=J[c+28>>2]-J[c+24>>2]|0;e=c>>2;b:{if(e>>>0<=J[b+8>>2]-d>>2>>>0){break b}if((c|0)<0){break a}f=J[b+4>>2];c=Aj(c);g=c+(e<<2)|0;e=f-d|0;f=e+c|0;if((e|0)>0){Vi(c,d,e)}J[b+8>>2]=g;J[b+4>>2]=f;J[b>>2]=c;if(!d){break b}xj(d)}e=a+8|0;b=J[a+76>>2];c:{if(b){d=J[b>>2];if((d|0)==J[b+4>>2]){return 1}b=0;while(1){c=Qf(e,J[(b<<2)+d>>2]);if(!c){break c}f=J[a+76>>2];d=J[f>>2];b=b+1|0;if(b>>>0>2]-d>>2>>>0){continue}break}break c}c=1;a=J[a+12>>2];a=J[a+4>>2]-J[a>>2]|0;if(a>>>0<12){break c}a=(a>>2>>>0)/3|0;b=0;while(1){c=Qf(e,P(b,3));if(!c){break c}b=b+1|0;if((a|0)!=(b|0)){continue}break}}return c|0}La();C()}function Ji(a,b,c){var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0;d=ia-16|0;ia=d;f=J[a+24>>2];k=J[a+28>>2];a:{if((f|0)!=(k|0)){while(1){J[d+8>>2]=0;J[d>>2]=0;J[d+4>>2]=0;a=Li(J[f>>2],b,d);g=K[d+11|0];h=g<<24>>24;i=3;b:{c:{d:{if(!a){break d}i=0;a=K[c+11|0];e=a<<24>>24;j=(h|0)<0?J[d+4>>2]:g;if((j|0)!=(((e|0)<0?J[c+4>>2]:a)|0)){break d}a=(e|0)<0?J[c>>2]:c;e=(h|0)<0;e:{if(!e){e=d;if(!h){break e}while(1){if(K[e|0]!=K[a|0]){break d}a=a+1|0;e=e+1|0;g=g-1|0;if(g){continue}break}break e}if(!j){break e}if(bj(e?J[d>>2]:d,a,j)){break c}}l=J[f>>2];i=1}if((h|0)>=0){break b}}xj(J[d>>2])}f:{switch(i|0){case 0:case 3:break f;default:break a}}f=f+4|0;if((k|0)!=(f|0)){continue}break}}l=0}ia=d+16|0;return l}function Qe(a,b,c){var d=0,e=0,f=0,g=0;f=ia-16|0;ia=f;J[a+4>>2]=0;a:{b:{if(!b){break b}d=J[a+8>>2];e=d<<5;c:{if(e>>>0>=b>>>0){J[a+4>>2]=b;break c}J[f+8>>2]=0;J[f>>2]=0;J[f+4>>2]=0;if((b|0)<0){break a}if(e>>>0<=1073741822){d=d<<6;e=b+31&-32;d=d>>>0>e>>>0?d:e}else{d=2147483647}Mc(f,d);d=J[a>>2];J[a>>2]=J[f>>2];J[f>>2]=d;e=J[a+4>>2];J[a+4>>2]=b;J[f+4>>2]=e;e=J[a+8>>2];J[a+8>>2]=J[f+8>>2];J[f+8>>2]=e;if(!d){break c}xj(d)}g=b&-32;d=b>>>5|0;e=d<<2;a=J[a>>2];if(K[c|0]){a=Xi(a,255,e);if((b|0)==(g|0)){break b}a=a+(d<<2)|0;J[a>>2]=J[a>>2]|-1>>>32-(b&31);break b}a=Xi(a,0,e);if((b|0)==(g|0)){break b}a=a+(d<<2)|0;J[a>>2]=J[a>>2]&(-1>>>32-(b&31)^-1)}ia=f+16|0;return}La();C()}function _b(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0;d=J[b>>2];b=J[b+4>>2];f=J[J[a+8>>2]+40>>2];m=Aj((f|0)<0?-1:f);g=1;h=b-d|0;a:{if((h|0)<=0){break a}b=0;g=0;d=0+J[c+20>>2]|0;i=J[c+16>>2];e=f+i|0;d=e>>>0>>0?d+1|0:d;j=e;e=J[c+12>>2];if(j>>>0>M[c+8>>2]&(e|0)<=(d|0)|(d|0)>(e|0)){break a}k=h>>2;g=(k|0)<=1?1:k;while(1){b:{e=Vi(m,i+J[c>>2]|0,f);J[c+16>>2]=j;J[c+20>>2]=d;Vi(J[J[J[a+8>>2]+64>>2]>>2]+b|0,e,f);l=l+1|0;if((g|0)==(l|0)){break b}b=b+f|0;d=n+J[c+20>>2]|0;i=J[c+16>>2];e=f+i|0;d=e>>>0>>0?d+1|0:d;j=e;h=e;e=J[c+12>>2];if((e|0)>=(d|0)&M[c+8>>2]>=h>>>0|(d|0)<(e|0)){continue}}break}g=(l|0)>=(k|0)}xj(m);return g|0}function Ui(a,b){var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0;b=J[b>>2];h=J[b+8>>2];i=J[b+4>>2];j=J[b>>2];d=J[a>>2];b=J[d+4>>2];a=J[d+8>>2];if(b>>>0>>0){J[b+8>>2]=h;J[b+4>>2]=i;J[b>>2]=j;J[d+4>>2]=b+12;return}a:{e=J[d>>2];g=(b-e|0)/12|0;c=g+1|0;if(c>>>0<357913942){f=(a-e|0)/12|0;a=f<<1;c=f>>>0>=178956970?357913941:a>>>0>c>>>0?a:c;if(c){if(c>>>0>=357913942){break a}f=Aj(P(c,12))}else{f=0}a=f+P(g,12)|0;J[a+8>>2]=h;J[a+4>>2]=i;J[a>>2]=j;g=a+12|0;if((b|0)!=(e|0)){while(1){a=a-12|0;b=b-12|0;J[a>>2]=J[b>>2];J[a+4>>2]=J[b+4>>2];J[a+8>>2]=J[b+8>>2];if((b|0)!=(e|0)){continue}break}}J[d+8>>2]=f+P(c,12);J[d+4>>2]=g;J[d>>2]=a;if(e){xj(e)}return}La();C()}Za();C()}function ic(a,b){a=a|0;b=b|0;a=0;a:{switch(b|0){case 0:a=Aj(20);J[a+12>>2]=-1;J[a+16>>2]=0;J[a+4>>2]=0;J[a+8>>2]=0;J[a>>2]=2280;return a|0;case 1:a=Aj(24);J[a+12>>2]=-1;J[a+16>>2]=0;J[a+4>>2]=0;J[a+8>>2]=0;J[a>>2]=2280;J[a+20>>2]=0;J[a>>2]=2496;return a|0;case 2:a=Aj(48);J[a+12>>2]=-1;J[a+16>>2]=0;J[a+4>>2]=0;J[a+8>>2]=0;J[a>>2]=2280;J[a+20>>2]=0;J[a>>2]=2496;J[a+24>>2]=1880;J[a>>2]=11096;J[a+32>>2]=0;J[a+36>>2]=0;J[a+28>>2]=-1;J[a+40>>2]=0;J[a+44>>2]=0;return a|0;case 3:a=Aj(32);J[a+12>>2]=-1;J[a+16>>2]=0;J[a+4>>2]=0;J[a+8>>2]=0;J[a>>2]=2280;J[a+20>>2]=0;J[a>>2]=2496;J[a+24>>2]=1032;J[a>>2]=7076;J[a+28>>2]=-1;break;default:break a}}return a|0}function Gh(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,f=0,g=0;e=ia-32|0;ia=e;a:{b:{f=hj(c);if(f>>>0<4294967280){c:{d:{if(f>>>0>=11){g=(f|15)+1|0;a=Aj(g);J[e+24>>2]=g|-2147483648;J[e+16>>2]=a;J[e+20>>2]=f;break d}H[e+27|0]=f;a=e+16|0;if(!f){break c}}Vi(a,c,f)}H[a+f|0]=0;c=hj(d);if(c>>>0>=4294967280){break b}e:{f:{if(c>>>0>=11){f=(c|15)+1|0;a=Aj(f);J[e+8>>2]=f|-2147483648;J[e>>2]=a;J[e+4>>2]=c;break f}H[e+11|0]=c;a=e;if(!c){break e}}Vi(a,d,c)}H[a+c|0]=0;c=J[b+4>>2];a=-1;g:{if(!c){break g}c=Ji(c,e+16|0,e);a=-1;if(!c){break g}a=Oi(b,J[c+24>>2])}if(H[e+11|0]<0){xj(J[e>>2])}if(H[e+27|0]<0){xj(J[e+16>>2])}ia=e+32|0;break a}fg();C()}fg();C()}return a|0}function Pa(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0;J[b>>2]=1;f=b+8|0;c=J[b+8>>2];d=J[b+12>>2]-c|0;if(d>>>0<=4294967291){qg(f,d+4|0);c=J[f>>2]}c=c+d|0;d=J[a+4>>2];H[c|0]=d;H[c+1|0]=d>>>8;H[c+2|0]=d>>>16;H[c+3|0]=d>>>24;c=J[a+8>>2];if((c|0)!=J[a+12>>2]){d=0;while(1){g=(d<<2)+c|0;c=J[b+8>>2];e=J[b+12>>2]-c|0;if(e>>>0<=4294967291){qg(f,e+4|0);c=J[f>>2]}c=c+e|0;e=J[g>>2];H[c|0]=e;H[c+1|0]=e>>>8;H[c+2|0]=e>>>16;H[c+3|0]=e>>>24;d=d+1|0;c=J[a+8>>2];if(d>>>0>2]-c>>2>>>0){continue}break}}c=J[b+12>>2];b=J[b+8>>2];c=c-b|0;if(c>>>0<=4294967291){qg(f,c+4|0);b=J[f>>2]}b=b+c|0;a=J[a+20>>2];H[b|0]=a;H[b+1|0]=a>>>8;H[b+2|0]=a>>>16;H[b+3|0]=a>>>24}function Qd(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0;f=ia-32|0;ia=f;g=e>>>0>1073741823?-1:e<<2;l=Xi(Aj(g),0,g);g=l;i=J[g>>2];g=J[g+4>>2];k=J[b+4>>2];J[f+24>>2]=J[b>>2];J[f+28>>2]=k;J[f+8>>2]=i;J[f+12>>2]=g;i=a+8|0;Ld(f+16|0,i,f+8|0,f+24|0);J[c>>2]=J[f+16>>2];J[c+4>>2]=J[f+20>>2];if((d|0)>(e|0)){k=0-e<<2;a=e;while(1){h=a<<2;g=h+c|0;j=g+k|0;m=J[j>>2];j=J[j+4>>2];h=b+h|0;n=J[h+4>>2];J[f+24>>2]=J[h>>2];J[f+28>>2]=n;J[f+8>>2]=m;J[f+12>>2]=j;Ld(f+16|0,i,f+8|0,f+24|0);J[g>>2]=J[f+16>>2];J[g+4>>2]=J[f+20>>2];a=a+e|0;if((d|0)>(a|0)){continue}break}}xj(l);ia=f+32|0;return 1}function fb(a,b,c){var d=0,e=0,f=0,g=0,h=0;f=c-b|0;g=f>>2;d=J[a+8>>2];e=J[a>>2];if(g>>>0<=d-e>>2>>>0){d=J[a+4>>2];f=d-e|0;h=f>>2;f=g>>>0>h>>>0?b+f|0:c;if((f|0)!=(b|0)){while(1){J[e>>2]=J[b>>2];e=e+4|0;b=b+4|0;if((f|0)!=(b|0)){continue}break}}if(g>>>0>h>>>0){b=c-f|0;if((b|0)>0){d=Vi(d,f,b)+b|0}J[a+4>>2]=d;return}J[a+4>>2]=e;return}if(e){J[a+4>>2]=e;xj(e);J[a+8>>2]=0;J[a>>2]=0;J[a+4>>2]=0;d=0}a:{if((f|0)<0){break a}e=d>>1;d=d>>>0>=2147483644?1073741823:e>>>0>g>>>0?e:g;if(d>>>0>=1073741824){break a}e=d<<2;d=Aj(e);J[a>>2]=d;J[a+4>>2]=d;J[a+8>>2]=d+e;if((b|0)!=(c|0)){d=Vi(d,b,f)+f|0}J[a+4>>2]=d;return}La();C()}function _d(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0;f=ia-32|0;ia=f;h=e>>>0>1073741823?-1:e<<2;h=Xi(Aj(h),0,h);g=J[b>>2];i=J[b+4>>2];k=J[h+4>>2];J[f+16>>2]=J[h>>2];J[f+20>>2]=k;J[f+8>>2]=g;J[f+12>>2]=i;i=a+8|0;Vd(f+24|0,i,f+16|0,f+8|0);J[c>>2]=J[f+24>>2];J[c+4>>2]=J[f+28>>2];if((d|0)>(e|0)){k=0-e<<2;a=e;while(1){g=a<<2;j=g+b|0;m=J[j>>2];j=J[j+4>>2];g=c+g|0;l=g+k|0;n=J[l+4>>2];J[f+16>>2]=J[l>>2];J[f+20>>2]=n;J[f+8>>2]=m;J[f+12>>2]=j;Vd(f+24|0,i,f+16|0,f+8|0);J[g>>2]=J[f+24>>2];J[g+4>>2]=J[f+28>>2];a=a+e|0;if((d|0)>(a|0)){continue}break}}xj(h);ia=f+32|0;return 1}function Nh(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0;a:{if(M[b+80>>2]>65535){break a}a=J[b+100>>2];b=J[b+96>>2];e=(a-b|0)/12|0;f=P(e,6);g=(f|0)==(c|0);if((a|0)==(b|0)|(c|0)!=(f|0)){break a}g=1;c=e>>>0<=1?1:e;i=c&1;a=0;if(e>>>0>=2){j=c&-2;c=0;while(1){f=P(a,6);h=f+d|0;e=b+P(a,12)|0;I[h>>1]=J[e>>2];I[(f|2)+d>>1]=J[e+4>>2];I[h+4>>1]=J[e+8>>2];f=a|1;e=P(f,6)+d|0;f=b+P(f,12)|0;I[e>>1]=J[f>>2];I[e+2>>1]=J[f+4>>2];I[e+4>>1]=J[f+8>>2];a=a+2|0;c=c+2|0;if((j|0)!=(c|0)){continue}break}}if(!i){break a}c=P(a,6)+d|0;a=b+P(a,12)|0;I[c>>1]=J[a>>2];I[c+2>>1]=J[a+4>>2];I[c+4>>1]=J[a+8>>2]}return g|0}function Md(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0;e=J[b+12>>2];c=J[b+20>>2];f=c;g=J[b+16>>2];d=g+4|0;c=d>>>0<4?c+1|0:c;h=J[b+8>>2];i=d;a:{if(h>>>0>>0&(c|0)>=(e|0)|(c|0)>(e|0)){break a}d=g+J[b>>2]|0;d=K[d|0]|K[d+1|0]<<8|(K[d+2|0]<<16|K[d+3|0]<<24);J[b+16>>2]=i;J[b+20>>2]=c;if(L[b+38>>1]<=513){c=f;f=g+8|0;c=f>>>0<8?c+1|0:c;if(f>>>0>h>>>0&(c|0)>=(e|0)|(c|0)>(e|0)){break a}J[b+16>>2]=f;J[b+20>>2]=c}if(!(d&1)){break a}b=S(d)^31;c=b-30|0;if(c>>>0>=4294967267){J[a+8>>2]=b+1;e=-2<>2]=b;J[a+12>>2]=e^-1;J[a+24>>2]=(b|0)/2;N[a+20>>2]=Q(2)/Q(b|0)}j=c>>>0>4294967266}return j|0}function Zb(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0;f=1;a:{if((na[J[J[b>>2]+20>>2]](b)|0)<=0){break a}while(1){f=0;c=Ni(J[J[a+4>>2]+4>>2],na[J[J[b>>2]+24>>2]](b,g)|0);if((c|0)==-1){break a}e=J[a+4>>2];b:{if(K[e+36|0]<=1){if(na[J[J[b>>2]+28>>2]](b,J[J[J[e+4>>2]+8>>2]+(c<<2)>>2])|0){break b}break a}d=0;c:{if((c|0)<0){break c}h=J[e+4>>2];if(J[h+12>>2]-J[h+8>>2]>>2<=(c|0)){break c}d=J[J[e+8>>2]+(J[J[e+20>>2]+(c<<2)>>2]<<2)>>2];d=na[J[J[d>>2]+32>>2]](d,c)|0}if(!d){break a}if(!(na[J[J[b>>2]+28>>2]](b,d)|0)){break a}}f=1;g=g+1|0;if((na[J[J[b>>2]+20>>2]](b)|0)>(g|0)){continue}break}}return f|0}function wh(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0,g=0;a=ia-32|0;ia=a;J[a+24>>2]=0;J[a+28>>2]=0;a:{d=hj(c);if(d>>>0<4294967280){b:{c:{if(d>>>0>=11){f=(d|15)+1|0;e=Aj(f);J[a+16>>2]=f|-2147483648;J[a+8>>2]=e;J[a+12>>2]=d;break c}H[a+19|0]=d;e=a+8|0;if(!d){break b}}Vi(e,c,d)}H[d+e|0]=0;c=b+4|0;b=ug(b,a+8|0);d:{if((c|0)==(b|0)){break d}c=J[b+32>>2];b=J[b+28>>2];if((c-b|0)!=8){break d}c=K[b+4|0]|K[b+5|0]<<8|(K[b+6|0]<<16|K[b+7|0]<<24);J[a+24>>2]=K[b|0]|K[b+1|0]<<8|(K[b+2|0]<<16|K[b+3|0]<<24);J[a+28>>2]=c}g=O[a+24>>3];if(H[a+19|0]<0){xj(J[a+8>>2])}ia=a+32|0;break a}fg();C()}return+g}function ef(a){var b=0,c=0,d=0,e=0,f=0;f=1;c=J[a+140>>2];a:{if((c|0)<=0){break a}b=c<<4;d=Aj(c>>>0>268435455?-1:b|4);J[d>>2]=c;d=d+4|0;c=d+b|0;b=d;while(1){J[b>>2]=0;J[b+4>>2]=0;H[b+5|0]=0;H[b+6|0]=0;H[b+7|0]=0;H[b+8|0]=0;H[b+9|0]=0;H[b+10|0]=0;H[b+11|0]=0;H[b+12|0]=0;b=b+16|0;if((c|0)!=(b|0)){continue}break}e=J[a+136>>2];J[a+136>>2]=d;if(e){c=e-4|0;d=J[c>>2];if(d){b=(d<<4)+e|0;while(1){b=b-16|0;if((e|0)!=(b|0)){continue}break}}xj(c)}b=0;if(J[a+140>>2]<=0){break a}while(1){f=je(J[a+136>>2]+(b<<4)|0,a);if(!f){break a}b=b+1|0;if((b|0)>2]){continue}break}}return f}function db(a,b){var c=0,d=0,e=0,f=0,g=0;a:{if(J[a+64>>2]){break a}c=Aj(32);J[c+16>>2]=0;J[c+20>>2]=0;J[c+8>>2]=0;J[c>>2]=0;J[c+4>>2]=0;J[c+24>>2]=0;J[c+28>>2]=0;d=J[a+64>>2];J[a+64>>2]=c;if(!d){break a}c=J[d>>2];if(c){J[d+4>>2]=c;xj(c)}xj(d)}e=J[a+64>>2];c=J[a+28>>2]-1|0;if(c>>>0<=10){d=J[(c<<2)+13632>>2]}else{d=-1}c=P(d,K[a+24|0]);d=c;g=c>>31;e=pg(e,0,jk(c,g,b,0),ma);if(e){c=J[a+64>>2];J[a>>2]=c;f=J[c+20>>2];J[a+8>>2]=J[c+16>>2];J[a+12>>2]=f;f=J[c+24>>2];c=J[c+28>>2];J[a+48>>2]=0;J[a+52>>2]=0;J[a+40>>2]=d;J[a+44>>2]=g;J[a+16>>2]=f;J[a+20>>2]=c;J[a+80>>2]=b}return e}function Wd(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0;f=J[b+12>>2];c=J[b+20>>2];e=c;g=J[b+16>>2];d=g+4|0;c=d>>>0<4?c+1|0:c;h=J[b+8>>2];i=d;a:{if(h>>>0>>0&(c|0)>=(f|0)|(c|0)>(f|0)){break a}d=g+J[b>>2]|0;d=K[d|0]|K[d+1|0]<<8|(K[d+2|0]<<16|K[d+3|0]<<24);J[b+16>>2]=i;J[b+20>>2]=c;c=e;e=g+8|0;c=e>>>0<8?c+1|0:c;if(e>>>0>h>>>0&(c|0)>=(f|0)|(c|0)>(f|0)){break a}J[b+16>>2]=e;J[b+20>>2]=c;if(!(d&1)){break a}b=S(d)^31;if(b-30>>>0<4294967267){break a}j=1;J[a+8>>2]=b+1;c=-2<>2]=b;J[a+12>>2]=c^-1;J[a+24>>2]=(b|0)/2;N[a+20>>2]=Q(2)/Q(b|0)}return j|0}function cb(a,b){var c=0;c=J[b+4>>2];J[a>>2]=J[b>>2];J[a+4>>2]=c;c=J[b+60>>2];J[a+56>>2]=J[b+56>>2];J[a+60>>2]=c;c=J[b+52>>2];J[a+48>>2]=J[b+48>>2];J[a+52>>2]=c;c=J[b+44>>2];J[a+40>>2]=J[b+40>>2];J[a+44>>2]=c;c=J[b+36>>2];J[a+32>>2]=J[b+32>>2];J[a+36>>2]=c;c=J[b+28>>2];J[a+24>>2]=J[b+24>>2];J[a+28>>2]=c;c=J[b+20>>2];J[a+16>>2]=J[b+16>>2];J[a+20>>2]=c;c=J[b+12>>2];J[a+8>>2]=J[b+8>>2];J[a+12>>2]=c;J[a+88>>2]=0;J[a+64>>2]=0;J[a+68>>2]=0;J[a+72>>2]=0;J[a+76>>2]=0;H[a+77|0]=0;H[a+78|0]=0;H[a+79|0]=0;H[a+80|0]=0;H[a+81|0]=0;H[a+82|0]=0;H[a+83|0]=0;H[a+84|0]=0;return a}function Sa(a,b,c){var d=0,e=0,f=0,g=0,h=0;g=c-b|0;f=g>>2;e=J[a+8>>2];d=J[a>>2];if(f>>>0<=e-d>>2>>>0){e=J[a+4>>2]-d|0;g=e>>2;e=g>>>0>>0?b+e|0:c;h=e-b|0;if((b|0)!=(e|0)){Wi(d,b,h)}if(g>>>0>>0){b=J[a+4>>2];c=c-e|0;if((c|0)>0){b=Vi(b,e,c)+c|0}J[a+4>>2]=b;return}J[a+4>>2]=d+h;return}if(d){J[a+4>>2]=d;xj(d);J[a+8>>2]=0;J[a>>2]=0;J[a+4>>2]=0;e=0}a:{if((g|0)<0){break a}d=e>>1;d=e>>>0>=2147483644?1073741823:d>>>0>f>>>0?d:f;if(d>>>0>=1073741824){break a}f=d<<2;d=Aj(f);J[a>>2]=d;J[a+4>>2]=d;J[a+8>>2]=d+f;if((b|0)!=(c|0)){d=Vi(d,b,g)+g|0}J[a+4>>2]=d;return}La();C()}function Oh(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0;a=J[b+100>>2];b=J[b+96>>2];h=a-b|0;a:{if((h|0)!=(c|0)|(a|0)==(b|0)){break a}g=(c|0)/12|0;e=g>>>0<=1?1:g;j=e&1;a=0;if(g>>>0>=2){k=e&-2;g=0;while(1){e=P(a,12);i=e+d|0;f=b+e|0;J[i>>2]=J[f>>2];J[(e|4)+d>>2]=J[f+4>>2];J[i+8>>2]=J[f+8>>2];f=P(a|1,12);e=f+d|0;f=b+f|0;J[e>>2]=J[f>>2];J[e+4>>2]=J[f+4>>2];J[e+8>>2]=J[f+8>>2];a=a+2|0;g=g+2|0;if((k|0)!=(g|0)){continue}break}}if(!j){break a}e=d;d=P(a,12);a=e+d|0;b=b+d|0;J[a>>2]=J[b>>2];J[a+4>>2]=J[b+4>>2];J[a+8>>2]=J[b+8>>2]}return(c|0)==(h|0)|0}function ug(a,b){var c=0,d=0,e=0,f=0,g=0,h=0,i=0;f=a+4|0;a=J[a+4>>2];a:{b:{if(!a){break b}d=K[b+11|0];c=d<<24>>24<0;g=c?J[b>>2]:b;d=c?J[b+4>>2]:d;b=f;while(1){e=K[a+27|0];c=e<<24>>24<0;e=c?J[a+20>>2]:e;h=e>>>0>d>>>0;i=h?d:e;c:{if(i){c=bj(c?J[a+16>>2]:a+16|0,g,i);if(c){break c}}c=d>>>0>e>>>0?-1:h}c=(c|0)<0;b=c?b:a;a=J[(c?a+4|0:a)>>2];if(a){continue}break}if((b|0)==(f|0)){break b}c=K[b+27|0];a=c<<24>>24<0;d:{c=a?J[b+20>>2]:c;e=c>>>0>>0?c:d;if(e){a=bj(g,a?J[b+16>>2]:b+16|0,e);if(a){break d}}if(c>>>0>d>>>0){break b}break a}if((a|0)>=0){break a}}b=f}return b}function jj(a,b,c,d,e){var f=0,g=0,h=0;f=ia-208|0;ia=f;J[f+204>>2]=c;c=f+160|0;Xi(c,0,40);J[f+200>>2]=J[f+204>>2];a:{if((kj(0,b,f+200|0,f+80|0,c,d,e)|0)<0){break a}h=J[a+76>>2]>=0;c=J[a>>2];if(J[a+72>>2]<=0){J[a>>2]=c&-33}b:{c:{d:{if(!J[a+48>>2]){J[a+48>>2]=80;J[a+28>>2]=0;J[a+16>>2]=0;J[a+20>>2]=0;g=J[a+44>>2];J[a+44>>2]=f;break d}if(J[a+16>>2]){break c}}if(_i(a)){break b}}kj(a,b,f+200|0,f+80|0,f+160|0,d,e)}if(g){na[J[a+36>>2]](a,0,0)|0;J[a+48>>2]=0;J[a+44>>2]=g;J[a+28>>2]=0;J[a+16>>2]=0;J[a+20>>2]=0}J[a>>2]=J[a>>2]|c&32;if(!h){break a}}ia=f+208|0}function Rj(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;if(Kj(a,J[b+8>>2],e)){if(!(J[b+28>>2]==1|J[b+4>>2]!=(c|0))){J[b+28>>2]=d}return}a:{if(Kj(a,J[b>>2],e)){if(!(J[b+16>>2]!=(c|0)&J[b+20>>2]!=(c|0))){if((d|0)!=1){break a}J[b+32>>2]=1;return}J[b+32>>2]=d;b:{if(J[b+44>>2]==4){break b}I[b+52>>1]=0;a=J[a+8>>2];na[J[J[a>>2]+20>>2]](a,b,c,c,1,e);if(K[b+53|0]){J[b+44>>2]=3;if(!K[b+52|0]){break b}break a}J[b+44>>2]=4}J[b+20>>2]=c;J[b+40>>2]=J[b+40>>2]+1;if(J[b+36>>2]!=1|J[b+24>>2]!=2){break a}H[b+54|0]=1;return}a=J[a+8>>2];na[J[J[a>>2]+24>>2]](a,b,c,d,e)}}function sg(a,b,c){var d=0,e=0,f=0,g=0;a:{b:{if(!b){break b}if(L[a+38>>1]<=513){e=J[a+12>>2];b=J[a+20>>2];f=J[a+16>>2];g=f+8|0;b=g>>>0<8?b+1|0:b;if(g>>>0>M[a+8>>2]&(b|0)>=(e|0)|(b|0)>(e|0)){break a}b=f+J[a>>2]|0;d=K[b+4|0]|K[b+5|0]<<8|(K[b+6|0]<<16|K[b+7|0]<<24);J[c>>2]=K[b|0]|K[b+1|0]<<8|(K[b+2|0]<<16|K[b+3|0]<<24);J[c+4>>2]=d;b=J[a+20>>2];c=J[a+16>>2]+8|0;b=c>>>0<8?b+1|0:b;J[a+16>>2]=c;J[a+20>>2]=b;break b}if(!tg(1,c,a)){break a}}H[a+36|0]=1;J[a+32>>2]=0;b=J[a+16>>2];c=b+J[a>>2]|0;J[a+24>>2]=c;d=a;a=J[a+8>>2];J[d+28>>2]=c+(a-b|0);d=1}return d}function _f(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0;f=Aj(64);c=Aj(12);J[c+8>>2]=J[J[a+4>>2]+80>>2];J[c>>2]=13264;J[c+4>>2]=0;f=bc(f,c);a:{b:{if((b|0)<0){c=f;break b}h=a+8|0;c=J[a+12>>2];e=J[a+8>>2];g=c-e>>2;c:{if((g|0)>(b|0)){break c}d=b+1|0;if(b>>>0>=g>>>0){dc(h,d-g|0);break c}if(d>>>0>=g>>>0){break c}e=e+(d<<2)|0;if((e|0)!=(c|0)){while(1){c=c-4|0;d=J[c>>2];J[c>>2]=0;if(d){na[J[J[d>>2]+4>>2]](d)}if((c|0)!=(e|0)){continue}break}}J[a+12>>2]=e}a=J[h>>2]+(b<<2)|0;c=J[a>>2];J[a>>2]=f;if(!c){break a}}na[J[J[c>>2]+4>>2]](c)}return(b^-1)>>>31|0}function Lb(a,b,c){var d=0,e=0,f=0,g=0,h=0,i=0;J[a+8>>2]=0;J[a>>2]=0;J[a+4>>2]=0;a:{b:{if(b){if(b>>>0>=357913942){break b}d=P(b,12);b=Aj(d);J[a>>2]=b;J[a+4>>2]=b;e=b+d|0;J[a+8>>2]=e;f=J[c>>2];c=J[c+4>>2];c:{if((f|0)==(c|0)){c=b;b=d-12|0;Xi(c,0,(b-((b>>>0)%12|0)|0)+12|0);break c}c=c-f|0;if((c|0)<0){break a}g=c&-4;while(1){J[b+8>>2]=0;J[b>>2]=0;J[b+4>>2]=0;d=Aj(c);J[b>>2]=d;J[b+4>>2]=d;J[b+8>>2]=d+g;h=b,i=Vi(d,f,c)+g|0,J[h+4>>2]=i;b=b+12|0;if((e|0)!=(b|0)){continue}break}}J[a+4>>2]=e}return}La();C()}J[b+8>>2]=0;J[b>>2]=0;J[b+4>>2]=0;La();C()}function vi(a,b,c){var d=0,e=0,f=0,g=0;a:{if((b|c)>=0){b:{if(b>>>0>1431655765){break b}d=P(b,3);wi(a,d,13696);wi(a+12|0,d,13700);d=J[a+24>>2];c:{if(J[a+32>>2]-d>>2>>>0>=c>>>0){break c}if(c>>>0>=1073741824){break a}e=J[a+28>>2];f=c<<2;c=Aj(f);f=c+f|0;e=e-d|0;g=e+c|0;if((e|0)>0){Vi(c,d,e)}J[a+32>>2]=f;J[a+28>>2]=g;J[a+24>>2]=c;if(!d){break c}xj(d)}J[a+80>>2]=0;J[a+84>>2]=0;c=J[a+76>>2];J[a+76>>2]=0;if(c){xj(c)}J[a+68>>2]=0;J[a+72>>2]=0;c=a- -64|0;a=J[c>>2];J[c>>2]=0;if(!a){break b}xj(a)}a=b>>>0<1431655766}else{a=0}return a}La();C()}function ec(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0;c=J[a+60>>2];a:{if(!c){break a}J[c+4>>2]=a+48;if(!(na[J[J[c>>2]+12>>2]](c)|0)){break a}b:{c=na[J[J[a>>2]+24>>2]](a)|0;if((c|0)<=0){break b}while(1){c:{f=J[(na[J[J[a>>2]+28>>2]](a)|0)+4>>2];g=na[J[J[a>>2]+20>>2]](a,d)|0;e=J[a+60>>2];if(!(na[J[J[e>>2]+8>>2]](e,J[J[f+8>>2]+(g<<2)>>2])|0)){break c}d=d+1|0;if((c|0)!=(d|0)){continue}break b}break}return 0}d=0;if(!(na[J[J[a>>2]+36>>2]](a,b)|0)){break a}if(!(na[J[J[a>>2]+40>>2]](a,b)|0)){break a}d=na[J[J[a>>2]+44>>2]](a)|0}return d|0}function Zf(a,b){var c=0,d=0,e=0,f=0,g=0,h=0;c=J[a+4>>2];if((c|0)!=J[a+8>>2]){d=J[b+4>>2];J[c>>2]=J[b>>2];J[c+4>>2]=d;J[c+8>>2]=J[b+8>>2];J[a+4>>2]=c+12;return}a:{f=J[a>>2];g=c-f|0;d=(g|0)/12|0;c=d+1|0;if(c>>>0<357913942){e=d<<1;e=d>>>0>=178956970?357913941:c>>>0>>0?e:c;if(e){if(e>>>0>=357913942){break a}c=Aj(P(e,12))}else{c=0}d=c+P(d,12)|0;h=J[b+4>>2];J[d>>2]=J[b>>2];J[d+4>>2]=h;J[d+8>>2]=J[b+8>>2];b=d+P((g|0)/-12|0,12)|0;if((g|0)>0){Vi(b,f,g)}J[a+8>>2]=c+P(e,12);J[a+4>>2]=d+12;J[a>>2]=b;if(f){xj(f)}return}La();C()}Za();C()}function Dj(a,b,c,d,e,f,g){var h=0,i=0,j=0;i=ia-16|0;ia=i;h=-17;if((b^-1)-17>>>0>=c>>>0){if(K[a+11|0]>>>7|0){j=J[a>>2]}else{j=a}if(b>>>0<2147483623){J[i+8>>2]=b<<1;J[i+12>>2]=b+c;c=ia-16|0;ia=c;ia=c+16|0;c=i+8|0;h=i+12|0;c=J[(M[h>>2]>2]?c:h)>>2];if(c>>>0>=11){h=c+16&-16;c=h-1|0;c=(c|0)==11?h:c}else{c=10}h=c+1|0}c=Aj(h);if(f){zj(c,g,f)}g=d-e|0;if((d|0)!=(e|0)){zj(c+f|0,e+j|0,g)}if((b|0)!=10){xj(j)}J[a>>2]=c;J[a+8>>2]=h|-2147483648;b=a;a=f+g|0;J[b+4>>2]=a;H[i+7|0]=0;H[a+c|0]=K[i+7|0];ia=i+16|0;return}fg();C()}function Le(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0;c=J[a+216>>2];if((c|0)!=J[a+220>>2]){while(1){a:{c=J[P(e,144)+c>>2];if((c|0)<0){break a}d=J[a+4>>2];f=J[d+8>>2];if((c|0)>=J[d+12>>2]-f>>2){break a}d=0;c=J[(c<<2)+f>>2];if((na[J[J[c>>2]+24>>2]](c)|0)<=0){break a}while(1){if((na[J[J[c>>2]+20>>2]](c,d)|0)!=(b|0)){d=d+1|0;if((na[J[J[c>>2]+24>>2]](c)|0)>(d|0)){continue}break a}break}a=J[a+216>>2]+P(e,144)|0;return(K[a+100|0]?a+4|0:0)|0}e=e+1|0;c=J[a+216>>2];if(e>>>0<(J[a+220>>2]-c|0)/144>>>0){continue}break}}return 0}function wb(a){var b=0,c=0,d=0,e=0;c=J[a+132>>2];if(c){d=c;b=J[a+136>>2];if((c|0)!=(b|0)){while(1){d=b-12|0;e=J[d>>2];if(e){J[b-8>>2]=e;xj(e)}b=d;if((c|0)!=(b|0)){continue}break}d=J[a+132>>2]}J[a+136>>2]=c;xj(d)}c=J[a+120>>2];if(c){d=c;b=J[a+124>>2];if((c|0)!=(b|0)){while(1){d=b-12|0;e=J[d>>2];if(e){J[b-8>>2]=e;xj(e)}b=d;if((c|0)!=(b|0)){continue}break}d=J[a+120>>2]}J[a+124>>2]=c;xj(d)}b=J[a+108>>2];if(b){J[a+112>>2]=b;xj(b)}b=J[a+96>>2];if(b){J[a+100>>2]=b;xj(b)}he(a+76|0);he(a+56|0);he(a+36|0);he(a+16|0)}function Pb(a){a=a|0;var b=0,c=0,d=0;J[a>>2]=2176;d=J[a+60>>2];if(d){b=d;c=J[a- -64>>2];if((b|0)!=(c|0)){while(1){c=c-4|0;b=J[c>>2];J[c>>2]=0;if(b){tb(b)}if((c|0)!=(d|0)){continue}break}b=J[a+60>>2]}J[a+64>>2]=d;xj(b)}b=J[a+48>>2];if(b){J[a+52>>2]=b;xj(b)}d=J[a+36>>2];if(d){b=d;c=J[a+40>>2];if((b|0)!=(c|0)){while(1){c=c-24|0;na[J[J[c>>2]>>2]](c)|0;if((c|0)!=(d|0)){continue}break}b=J[a+36>>2]}J[a+40>>2]=d;xj(b)}J[a>>2]=2032;b=J[a+16>>2];if(b){J[a+20>>2]=b;xj(b)}b=J[a+4>>2];if(b){J[a+8>>2]=b;xj(b)}return a|0}function Yb(a){var b=0,c=0,d=0,e=0,f=0;d=J[a+8>>2];a:{if(K[d+84|0]){break a}b=J[a+16>>2];if(!b|!K[b+84|0]){break a}c=J[d+72>>2];e=J[d+68>>2];H[b+84|0]=0;c=c-e>>2;f=J[b+68>>2];e=J[b+72>>2]-f>>2;b:{if(c>>>0>e>>>0){jb(b+68|0,c-e|0,2364);d=J[a+8>>2];break b}if(c>>>0>=e>>>0){break b}J[b+72>>2]=f+(c<<2)}if(K[d+84|0]){break a}c=J[d+68>>2];if((c|0)==J[d+72>>2]){break a}e=J[J[a+16>>2]+68>>2];b=0;while(1){f=b<<2;J[f+e>>2]=J[c+f>>2];b=b+1|0;c=J[d+68>>2];if(b>>>0>2]-c>>2>>>0){continue}break}}return J[a+16>>2]}function Dh(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,f=0,g=0;e=ia+-64|0;ia=e;f=rg(e+8|0);J[f+16>>2]=0;J[f+20>>2]=0;J[f>>2]=b;J[f+8>>2]=c;J[f+12>>2]=0;b=e+48|0;oe(b,a,f,d);J[a+24>>2]=J[e+48>>2];f=a+24|0;a:{if((f|0)==(b|0)){break a}b=a+28|0;c=e+48|4;g=K[e+63|0];d=g<<24>>24;if(H[a+39|0]>=0){if((d|0)>=0){a=J[c+4>>2];J[b>>2]=J[c>>2];J[b+4>>2]=a;J[b+8>>2]=J[c+8>>2];break a}Gj(b,J[e+52>>2],J[e+56>>2]);break a}a=(d|0)<0;Fj(b,a?J[e+52>>2]:c,a?J[e+56>>2]:g)}if(H[e+63|0]<0){xj(J[e+52>>2])}ia=e- -64|0;return f|0}function Ch(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,f=0,g=0;e=ia+-64|0;ia=e;f=rg(e+8|0);J[f+16>>2]=0;J[f+20>>2]=0;J[f>>2]=b;J[f+8>>2]=c;J[f+12>>2]=0;b=e+48|0;ne(b,a,f,d);J[a+24>>2]=J[e+48>>2];f=a+24|0;a:{if((f|0)==(b|0)){break a}b=a+28|0;c=e+48|4;g=K[e+63|0];d=g<<24>>24;if(H[a+39|0]>=0){if((d|0)>=0){a=J[c+4>>2];J[b>>2]=J[c>>2];J[b+4>>2]=a;J[b+8>>2]=J[c+8>>2];break a}Gj(b,J[e+52>>2],J[e+56>>2]);break a}a=(d|0)<0;Fj(b,a?J[e+52>>2]:c,a?J[e+56>>2]:g)}if(H[e+63|0]<0){xj(J[e+52>>2])}ia=e- -64|0;return f|0}function Me(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0;c=J[a+216>>2];if((c|0)!=J[a+220>>2]){while(1){a:{c=J[P(e,144)+c>>2];if((c|0)<0){break a}d=J[a+4>>2];f=J[d+8>>2];if((c|0)>=J[d+12>>2]-f>>2){break a}d=0;c=J[(c<<2)+f>>2];if((na[J[J[c>>2]+24>>2]](c)|0)<=0){break a}while(1){if((na[J[J[c>>2]+20>>2]](c,d)|0)!=(b|0)){d=d+1|0;if((na[J[J[c>>2]+24>>2]](c)|0)>(d|0)){continue}break a}break}return(J[a+216>>2]+P(e,144)|0)+104|0}e=e+1|0;c=J[a+216>>2];if(e>>>0<(J[a+220>>2]-c|0)/144>>>0){continue}break}}return a+184|0}function Eb(a){var b=0,c=0,d=0,e=0;c=J[a+640>>2];if(c){d=c;b=J[a+644>>2];if((c|0)!=(b|0)){while(1){d=b-12|0;e=J[d>>2];if(e){J[b-8>>2]=e;xj(e)}b=d;if((c|0)!=(b|0)){continue}break}d=J[a+640>>2]}J[a+644>>2]=c;xj(d)}c=J[a+628>>2];if(c){d=c;b=J[a+632>>2];if((c|0)!=(b|0)){while(1){d=b-12|0;e=J[d>>2];if(e){J[b-8>>2]=e;xj(e)}b=d;if((c|0)!=(b|0)){continue}break}d=J[a+628>>2]}J[a+632>>2]=c;xj(d)}b=J[a+616>>2];if(b){J[a+620>>2]=b;xj(b)}b=J[a+604>>2];if(b){J[a+608>>2]=b;xj(b)}he(a+584|0);he(a+564|0);he(a+544|0)}function qg(a,b){var c=0,d=0,e=0,f=0,g=0,h=0,i=0;a:{c=J[a+4>>2];d=J[a>>2];f=c-d|0;b:{if(f>>>0>>0){g=b-f|0;e=J[a+8>>2];if(g>>>0<=e-c>>>0){h=a,i=Xi(c,0,g)+g|0,J[h+4>>2]=i;break b}if((b|0)<0){break a}c=e-d|0;e=c<<1;e=c>>>0>=1073741823?2147483647:b>>>0>>0?e:b;c=Aj(e);Xi(c+f|0,0,g);if((f|0)>0){Vi(c,d,f)}J[a+8>>2]=c+e;J[a+4>>2]=b+c;J[a>>2]=c;if(!d){break b}xj(d);break b}if(b>>>0>=f>>>0){break b}J[a+4>>2]=b+d}b=J[a+28>>2];c=b;d=b+1|0;b=J[a+24>>2]+1|0;d=b?c:d;J[a+24>>2]=b;J[a+28>>2]=d;return}La();C()}function Ab(a){var b=0,c=0,d=0,e=0;c=J[a+128>>2];if(c){d=c;b=J[a+132>>2];if((c|0)!=(b|0)){while(1){d=b-12|0;e=J[d>>2];if(e){J[b-8>>2]=e;xj(e)}b=d;if((c|0)!=(b|0)){continue}break}d=J[a+128>>2]}J[a+132>>2]=c;xj(d)}c=J[a+116>>2];if(c){d=c;b=J[a+120>>2];if((c|0)!=(b|0)){while(1){d=b-12|0;e=J[d>>2];if(e){J[b-8>>2]=e;xj(e)}b=d;if((c|0)!=(b|0)){continue}break}d=J[a+116>>2]}J[a+120>>2]=c;xj(d)}b=J[a+104>>2];if(b){J[a+108>>2]=b;xj(b)}b=J[a+92>>2];if(b){J[a+96>>2]=b;xj(b)}he(a+72|0);he(a+52|0);he(a+32|0)}function yj(a){a=a|0;var b=0,c=0,d=0;if(!a){if(J[3972]){b=yj(J[3972])}if(J[3934]){b=yj(J[3934])|b}a=J[4006];if(a){while(1){if(J[a+20>>2]!=J[a+28>>2]){b=yj(a)|b}a=J[a+56>>2];if(a){continue}break}}return b|0}d=J[a+76>>2]>=0;a:{b:{if(J[a+20>>2]==J[a+28>>2]){break b}na[J[a+36>>2]](a,0,0)|0;if(J[a+20>>2]){break b}b=-1;break a}b=J[a+8>>2];c=J[a+4>>2];if((b|0)!=(c|0)){b=c-b|0;na[J[a+40>>2]](a,b,b>>31,1)|0}b=0;J[a+28>>2]=0;J[a+16>>2]=0;J[a+20>>2]=0;J[a+4>>2]=0;J[a+8>>2]=0;if(!d){break a}}return b|0}function Fh(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0;a=ia-32|0;ia=a;a:{d=hj(c);if(d>>>0<4294967280){b:{c:{if(d>>>0>=11){f=(d|15)+1|0;e=Aj(f);J[a+24>>2]=f|-2147483648;J[a+16>>2]=e;J[a+20>>2]=d;break c}H[a+27|0]=d;e=a+16|0;if(!d){break b}}Vi(e,c,d)}H[d+e|0]=0;H[a+4|0]=0;J[a>>2]=1701667182;H[a+11|0]=4;d=J[b+4>>2];c=-1;d:{if(!d){break d}d=Ji(d,a,a+16|0);c=-1;if(!d){break d}c=Oi(b,J[d+24>>2])}b=c;if(H[a+11|0]<0){xj(J[a>>2])}if(H[a+27|0]<0){xj(J[a+16>>2])}ia=a+32|0;break a}fg();C()}return b|0}function kf(a){J[a>>2]=-1;J[a+4>>2]=0;J[a+8>>2]=0;J[a+32>>2]=0;J[a+36>>2]=0;H[a+28|0]=1;J[a+20>>2]=0;J[a+24>>2]=0;J[a+12>>2]=0;J[a+16>>2]=0;J[a+40>>2]=0;J[a+44>>2]=0;J[a+48>>2]=0;J[a+52>>2]=0;J[a+56>>2]=0;J[a+60>>2]=0;J[a+64>>2]=0;J[a+68>>2]=0;J[a+76>>2]=0;J[a+80>>2]=0;J[a+84>>2]=0;J[a+88>>2]=0;J[a+92>>2]=0;J[a+96>>2]=0;J[a+72>>2]=a+4;J[a+104>>2]=0;J[a+108>>2]=0;H[a+100|0]=1;J[a+112>>2]=0;J[a+116>>2]=0;J[a+120>>2]=0;J[a+124>>2]=0;J[a+128>>2]=0;J[a+132>>2]=0;J[a+136>>2]=0;J[a+140>>2]=0}function uh(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0;d=ia-16|0;ia=d;J[d+12>>2]=0;a:{e=hj(c);if(e>>>0<4294967280){b:{c:{if(e>>>0>=11){f=(e|15)+1|0;a=Aj(f);J[d+8>>2]=f|-2147483648;J[d>>2]=a;J[d+4>>2]=e;break c}H[d+11|0]=e;a=d;if(!e){break b}}Vi(a,c,e)}H[a+e|0]=0;a=ug(b,d);d:{if((a|0)==(b+4|0)){break d}b=J[a+32>>2];a=J[a+28>>2];if((b-a|0)!=4){break d}J[d+12>>2]=K[a|0]|K[a+1|0]<<8|(K[a+2|0]<<16|K[a+3|0]<<24)}a=J[d+12>>2];if(H[d+11|0]<0){xj(J[d>>2])}ia=d+16|0;break a}fg();C()}return a|0}function sj(a,b){if(!a){return 0}a:{b:{if(a){if(b>>>0<=127){break b}c:{if(!J[J[4306]>>2]){if((b&-128)==57216){break b}break c}if(b>>>0<=2047){H[a+1|0]=b&63|128;H[a|0]=b>>>6|192;a=2;break a}if(!((b&-8192)!=57344&b>>>0>=55296)){H[a+2|0]=b&63|128;H[a|0]=b>>>12|224;H[a+1|0]=b>>>6&63|128;a=3;break a}if(b-65536>>>0<=1048575){H[a+3|0]=b&63|128;H[a|0]=b>>>18|240;H[a+2|0]=b>>>6&63|128;H[a+1|0]=b>>>12&63|128;a=4;break a}}J[4004]=25;a=-1}else{a=1}break a}H[a|0]=b;a=1}return a}function Jj(){var a=0,b=0;a=ia-16|0;ia=a;b=J[3455];aj(1686,11,b);J[a+12>>2]=0;jj(b,1656,0,377,378);a=J[b+76>>2];a:{if(!((a|0)>=0&(!a|J[4288]!=(a&-1073741825)))){b:{if(J[b+80>>2]==10){break b}a=J[b+20>>2];if((a|0)==J[b+16>>2]){break b}J[b+20>>2]=a+1;H[a|0]=10;break a}Cj(b);break a}a=J[b+76>>2];J[b+76>>2]=a?a:1073741823;c:{d:{if(J[b+80>>2]==10){break d}a=J[b+20>>2];if((a|0)==J[b+16>>2]){break d}J[b+20>>2]=a+1;H[a|0]=10;break c}Cj(b)}J[b+76>>2]=0}fa();C()}function yi(a){a=a|0;var b=0,c=0,d=0;J[a>>2]=13772;b=J[a+68>>2];if(b){J[a+72>>2]=b;xj(b)}b=J[a+56>>2];if(b){J[a+60>>2]=b;xj(b)}b=J[a+44>>2];if(b){J[a+48>>2]=b;xj(b)}b=J[a+32>>2];if(b){J[a+36>>2]=b;xj(b)}b=J[a+20>>2];if(b){J[a+24>>2]=b;xj(b)}b=J[a+8>>2];if(b){d=b;c=J[a+12>>2];if((b|0)!=(c|0)){while(1){c=c-4|0;d=J[c>>2];J[c>>2]=0;if(d){tb(d)}if((b|0)!=(c|0)){continue}break}d=J[a+8>>2]}J[a+12>>2]=b;xj(d)}b=J[a+4>>2];J[a+4>>2]=0;if(b){gg(b)}return a|0}function Oa(a,b){var c=0,d=0,e=0,f=0,g=0,h=0,i=0;e=J[a+8>>2];c=J[a+4>>2];if(e-c>>2>>>0>=b>>>0){if(b){b=b<<2;c=Xi(c,0,b)+b|0}J[a+4>>2]=c;return}a:{f=J[a>>2];g=c-f|0;h=g>>2;d=h+b|0;if(d>>>0<1073741824){c=0;e=e-f|0;i=e>>1;d=e>>>0>=2147483644?1073741823:d>>>0>>0?i:d;if(d){if(d>>>0>=1073741824){break a}c=Aj(d<<2)}b=b<<2;b=Xi((h<<2)+c|0,0,b)+b|0;if((g|0)>0){Vi(c,f,g)}J[a+8>>2]=(d<<2)+c;J[a+4>>2]=b;J[a>>2]=c;if(f){xj(f)}return}La();C()}Za();C()}function we(a,b){var c=0,d=0,e=0,f=0,g=0,h=0,i=0;e=J[a+8>>2];c=J[a+4>>2];if(e-c>>3>>>0>=b>>>0){if(b){b=b<<3;c=Xi(c,0,b)+b|0}J[a+4>>2]=c;return}a:{f=J[a>>2];g=c-f|0;h=g>>3;d=h+b|0;if(d>>>0<536870912){c=0;e=e-f|0;i=e>>2;d=e>>>0>=2147483640?536870911:d>>>0>>0?i:d;if(d){if(d>>>0>=536870912){break a}c=Aj(d<<3)}b=b<<3;b=Xi((h<<3)+c|0,0,b)+b|0;if((g|0)>0){Vi(c,f,g)}J[a+8>>2]=(d<<3)+c;J[a+4>>2]=b;J[a>>2]=c;if(f){xj(f)}return}La();C()}Za();C()}function wg(a,b){var c=0,d=0,e=0,f=0,g=0,h=0;e=J[a>>2];a=J[e+4>>2];c=J[e+8>>2];if(a>>>0>>0){J[a>>2]=J[b>>2];J[e+4>>2]=a+4;return}a:{f=J[e>>2];g=a-f|0;d=g>>2;a=d+1|0;if(a>>>0<1073741824){h=d<<2;c=c-f|0;d=c>>1;c=c>>>0>=2147483644?1073741823:a>>>0>>0?d:a;if(c){if(c>>>0>=1073741824){break a}a=Aj(c<<2)}else{a=0}d=h+a|0;J[d>>2]=J[b>>2];if((g|0)>0){Vi(a,f,g)}J[e+8>>2]=a+(c<<2);J[e+4>>2]=d+4;J[e>>2]=a;if(f){xj(f)}return}La();C()}Za();C()}function vg(a,b){var c=0,d=0,e=0,f=0;c=a+4|0;a=ug(a,b);a:{if((c|0)==(a|0)){break a}b=a+28|0;b=H[a+39|0]<0?J[b>>2]:b;while(1){a=b;b=a+1|0;c=H[a|0];if((c|0)==32|c-9>>>0<5){continue}break}b:{c:{d:{c=H[a|0];switch(c-43|0){case 0:break c;case 2:break d;default:break b}}e=1}c=H[b|0];a=b}if(c-48>>>0<10){while(1){d=(P(d,10)-H[a|0]|0)+48|0;b=H[a+1|0];a=a+1|0;if(b-48>>>0<10){continue}break}}a=e?d:0-d|0;if((a|0)==-1){break a}f=(a|0)!=0}return f}function jc(a){a=a|0;var b=0,c=0,d=0;J[a>>2]=2376;b=J[a+60>>2];J[a+60>>2]=0;if(b){na[J[J[b>>2]+4>>2]](b)}b=J[a+48>>2];if(b){J[a+52>>2]=b;xj(b)}d=J[a+36>>2];if(d){c=J[a+40>>2];b=d;if((c|0)!=(b|0)){while(1){c=c-4|0;b=J[c>>2];J[c>>2]=0;if(b){na[J[J[b>>2]+4>>2]](b)}if((c|0)!=(d|0)){continue}break}b=J[a+36>>2]}J[a+40>>2]=d;xj(b)}J[a>>2]=2032;b=J[a+16>>2];if(b){J[a+20>>2]=b;xj(b)}b=J[a+4>>2];if(b){J[a+8>>2]=b;xj(b)}return a|0}function kc(a){a=a|0;var b=0,c=0,d=0;J[a>>2]=2376;b=J[a+60>>2];J[a+60>>2]=0;if(b){na[J[J[b>>2]+4>>2]](b)}b=J[a+48>>2];if(b){J[a+52>>2]=b;xj(b)}d=J[a+36>>2];if(d){c=J[a+40>>2];b=d;if((c|0)!=(b|0)){while(1){c=c-4|0;b=J[c>>2];J[c>>2]=0;if(b){na[J[J[b>>2]+4>>2]](b)}if((c|0)!=(d|0)){continue}break}b=J[a+36>>2]}J[a+40>>2]=d;xj(b)}J[a>>2]=2032;b=J[a+16>>2];if(b){J[a+20>>2]=b;xj(b)}b=J[a+4>>2];if(b){J[a+8>>2]=b;xj(b)}xj(a)}function zg(a,b){var c=0,d=0,e=0,f=0,g=0,h=0;e=J[a+8>>2];c=J[a+4>>2];if(e-c>>1>>>0>=b>>>0){if(b){b=b<<1;c=Xi(c,0,b)+b|0}J[a+4>>2]=c;return}a:{f=J[a>>2];g=c-f|0;h=g>>1;d=h+b|0;if((d|0)>=0){c=0;e=e-f|0;d=e>>>0>=2147483646?2147483647:d>>>0>>0?e:d;if(d){if((d|0)<0){break a}c=Aj(d<<1)}b=b<<1;b=Xi((h<<1)+c|0,0,b)+b|0;if((g|0)>0){Vi(c,f,g)}J[a+8>>2]=(d<<1)+c;J[a+4>>2]=b;J[a>>2]=c;if(f){xj(f)}return}La();C()}Za();C()}function Ta(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0;d=ia-16|0;ia=d;e=J[a+4>>2];a:{if((e|0)==-1){break a}c=J[b+20>>2];if(!!J[b+16>>2]&(c|0)>=0|(c|0)>0){break a}Ea(b,J[b+4>>2],J[a+8>>2],J[a+12>>2]);c=J[b+20>>2];if(!!J[b+16>>2]&(c|0)>=0|(c|0)>0){break a}Ea(b,J[b+4>>2],a+20|0,a+24|0);c=J[b+20>>2];f=J[b+16>>2];H[d+15|0]=J[a+4>>2];if(!!f&(c|0)>=0|(c|0)>0){break a}Ea(b,J[b+4>>2],d+15|0,d+16|0)}ia=d+16|0;return(e|0)!=-1|0}function bg(a){a=a|0;var b=0,c=0,d=0,e=0,f=0;a:{b=J[a+8>>2];b:{if((b|0)<0){break b}c=J[a+4>>2];e=J[c>>2];d=J[c+4>>2]-e>>2;c:{if(d>>>0>>0){Oa(c,b-d|0);f=J[a+8>>2];break c}f=b;if(b>>>0>=d>>>0){break c}J[c+4>>2]=e+(b<<2);f=b}d=f;if((d|0)<=0){break b}a=J[a+4>>2];c=J[a>>2];e=J[a+4>>2]-c>>2;a=0;while(1){if((a|0)==(e|0)){break a}J[c+(a<<2)>>2]=a;a=a+1|0;if((d|0)!=(a|0)){continue}break}}return(b^-1)>>>31|0}Bc();C()}function ff(a,b){var c=0,d=0,e=0,f=0,g=0;c=J[a+4>>2];if((c|0)!=J[a+8>>2]){J[c>>2]=J[b>>2];J[a+4>>2]=c+4;return}a:{g=J[a>>2];e=c-g|0;f=e>>2;c=f+1|0;if(c>>>0<1073741824){d=e>>1;d=e>>>0>=2147483644?1073741823:c>>>0>>0?d:c;if(d){if(d>>>0>=1073741824){break a}c=Aj(d<<2)}else{c=0}f=c+(f<<2)|0;J[f>>2]=J[b>>2];if((e|0)>0){Vi(c,g,e)}J[a+8>>2]=c+(d<<2);J[a+4>>2]=f+4;J[a>>2]=c;if(g){xj(g)}return}La();C()}Za();C()}function _h(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0,g=0;d=ia-16|0;ia=d;ne(d,a,b,c);J[a+24>>2]=J[d>>2];e=a+24|0;a:{if((e|0)==(d|0)){break a}b=a+28|0;c=d|4;f=K[d+15|0];g=f<<24>>24;if(H[a+39|0]>=0){if((g|0)>=0){a=J[c+4>>2];J[b>>2]=J[c>>2];J[b+4>>2]=a;J[b+8>>2]=J[c+8>>2];break a}Gj(b,J[d+4>>2],J[d+8>>2]);break a}a=(g|0)<0;Fj(b,a?J[d+4>>2]:c,a?J[d+8>>2]:f)}if(H[d+15|0]<0){xj(J[d+4>>2])}ia=d+16|0;return e|0}function $h(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0,g=0;d=ia-16|0;ia=d;oe(d,a,b,c);J[a+24>>2]=J[d>>2];e=a+24|0;a:{if((e|0)==(d|0)){break a}b=a+28|0;c=d|4;f=K[d+15|0];g=f<<24>>24;if(H[a+39|0]>=0){if((g|0)>=0){a=J[c+4>>2];J[b>>2]=J[c>>2];J[b+4>>2]=a;J[b+8>>2]=J[c+8>>2];break a}Gj(b,J[d+4>>2],J[d+8>>2]);break a}a=(g|0)<0;Fj(b,a?J[d+4>>2]:c,a?J[d+8>>2]:f)}if(H[d+15|0]<0){xj(J[d+4>>2])}ia=d+16|0;return e|0}function $i(a,b,c){var d=0,e=0,f=0;d=J[c+16>>2];a:{if(!d){if(_i(c)){break a}d=J[c+16>>2]}f=J[c+20>>2];if(d-f>>>0>>0){return na[J[c+36>>2]](c,a,b)|0}b:{if(J[c+80>>2]<0){d=0;break b}e=b;while(1){d=e;if(!d){d=0;break b}e=d-1|0;if(K[e+a|0]!=10){continue}break}e=na[J[c+36>>2]](c,a,d)|0;if(e>>>0>>0){break a}a=a+d|0;b=b-d|0;f=J[c+20>>2]}Vi(f,a,b);J[c+20>>2]=J[c+20>>2]+b;e=b+d|0}return e}function bf(a,b){var c=0,d=0,e=0,f=0;d=J[a+12>>2];c=J[a+16>>2]-d>>2;a:{if(c>>>0>>0){Oa(a+12|0,b-c|0);break a}if(b>>>0>=c>>>0){break a}J[a+16>>2]=d+(b<<2)}b:{c=J[a>>2];c:{if(J[a+8>>2]-c>>2>>>0>=b>>>0){break c}if(b>>>0>=1073741824){break b}d=J[a+4>>2];e=b<<2;b=Aj(e);e=b+e|0;d=d-c|0;f=d+b|0;if((d|0)>0){Vi(b,c,d)}J[a+8>>2]=e;J[a+4>>2]=f;J[a>>2]=b;if(!c){break c}xj(c)}return}La();C()}function xh(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0,g=0;d=ia-16|0;ia=d;a:{e=hj(c);if(e>>>0<4294967280){b:{c:{if(e>>>0>=11){g=(e|15)+1|0;f=Aj(g);J[d+8>>2]=g|-2147483648;J[d>>2]=f;J[d+4>>2]=e;break c}H[d+11|0]=e;f=d;if(!e){break b}}Vi(f,c,e)}H[e+f|0]=0;f=a+16|0;c=Li(b,d,f);b=J[a+16>>2];a=H[a+27|0];if(H[d+11|0]<0){xj(J[d>>2])}ia=d+16|0;a=c?(a|0)<0?b:f:0;break a}fg();C()}return a|0}function af(a){var b=0,c=0,d=0,e=0;if(K[a+76|0]){H[a+76|0]=0;d=J[a+60>>2];c=J[a+72>>2]+7|0;b=c>>>0<7?1:b;e=b>>>3|0;c=b<<29|c>>>3;b=c+J[a+56>>2]|0;d=d+e|0;J[a+56>>2]=b;J[a+60>>2]=b>>>0>>0?d+1|0:d}if(L[a+38>>1]<=513){H[a+132|0]=0;d=J[a+116>>2];b=0;c=J[a+128>>2]+7|0;b=c>>>0<7?1:b;e=b>>>3|0;c=b<<29|c>>>3;b=c+J[a+112>>2]|0;d=d+e|0;J[a+112>>2]=b;J[a+116>>2]=b>>>0>>0?d+1|0:d}}function xe(a,b,c){var d=0,e=0,f=0,g=0;a:{if(a>>>0>10){break a}d=J[c+20>>2];e=J[c+12>>2];f=J[c+16>>2];if((d|0)>=(e|0)&f>>>0>=M[c+8>>2]|(d|0)>(e|0)){break a}e=H[f+J[c>>2]|0];f=f+1|0;d=f?d:d+1|0;J[c+16>>2]=f;J[c+20>>2]=d;b:{if((e|0)<0){if(!xe(a+1|0,b,c)){break a}c=J[b>>2];a=J[b+4>>2]<<7|c>>>25;c=e&127|c<<7;break b}a=0;c=e&255}J[b>>2]=c;J[b+4>>2]=a;g=1}return g}function tg(a,b,c){var d=0,e=0,f=0,g=0;a:{if(a>>>0>10){break a}d=J[c+20>>2];e=J[c+12>>2];f=J[c+16>>2];if((d|0)>=(e|0)&f>>>0>=M[c+8>>2]|(d|0)>(e|0)){break a}e=H[f+J[c>>2]|0];f=f+1|0;d=f?d:d+1|0;J[c+16>>2]=f;J[c+20>>2]=d;b:{if((e|0)<0){if(!tg(a+1|0,b,c)){break a}c=J[b>>2];a=J[b+4>>2]<<7|c>>>25;c=e&127|c<<7;break b}a=0;c=e&255}J[b>>2]=c;J[b+4>>2]=a;g=1}return g}function mf(a,b){var c=0,d=0,e=0,f=0,g=0;J[a+144>>2]=b;c=J[(na[J[J[b>>2]+32>>2]](b)|0)+32>>2];e=J[c>>2]+J[c+16>>2]|0;d=J[(na[J[J[b>>2]+32>>2]](b)|0)+32>>2];c=J[d+8>>2];d=J[d+16>>2];c=c-d|0;f=a,g=L[J[(na[J[J[b>>2]+32>>2]](b)|0)+32>>2]+38>>1],I[f+38>>1]=g;J[a>>2]=e;J[a+16>>2]=0;J[a+20>>2]=0;J[a+8>>2]=c;J[a+12>>2]=0;f=a,g=na[J[J[b>>2]+36>>2]](b)|0,J[f+148>>2]=g}function Sj(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;if(Kj(a,J[b+8>>2],e)){if(!(J[b+28>>2]==1|J[b+4>>2]!=(c|0))){J[b+28>>2]=d}return}a:{if(!Kj(a,J[b>>2],e)){break a}if(!(J[b+16>>2]!=(c|0)&J[b+20>>2]!=(c|0))){if((d|0)!=1){break a}J[b+32>>2]=1;return}J[b+20>>2]=c;J[b+32>>2]=d;J[b+40>>2]=J[b+40>>2]+1;if(!(J[b+36>>2]!=1|J[b+24>>2]!=2)){H[b+54|0]=1}J[b+44>>2]=4}}function $a(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0,g=0,h=0,i=0;d=ia+-64|0;ia=d;e=na[J[J[a>>2]+44>>2]](a,b)|0;a=na[J[J[a>>2]+40>>2]](a,b)|0;f=ab(d);g=J[b+56>>2];h=e&255;i=a;a=a-1|0;if(a>>>0<=10){a=J[(a<<2)+13632>>2]}else{a=-1}a=P(a,e);bb(f,g,h,i,0,a,a>>31);a=cb(Aj(96),f);db(a,c);H[a+84|0]=1;J[a+72>>2]=J[a+68>>2];J[a+60>>2]=J[b+60>>2];ia=d- -64|0;return a|0}function Fe(a){a=a|0;var b=0,c=0,d=0;J[a>>2]=11324;b=J[a+48>>2];J[a+48>>2]=0;if(b){na[J[J[b>>2]+4>>2]](b)}J[a>>2]=13328;b=J[a+20>>2];if(b){J[a+24>>2]=b;xj(b)}d=J[a+8>>2];if(d){c=J[a+12>>2];b=d;if((c|0)!=(b|0)){while(1){c=c-4|0;b=J[c>>2];J[c>>2]=0;if(b){na[J[J[b>>2]+4>>2]](b)}if((c|0)!=(d|0)){continue}break}b=J[a+8>>2]}J[a+12>>2]=d;xj(b)}return a|0}function mg(a){a=a|0;var b=0,c=0,d=0,e=0,f=0,g=0,h=0;b=J[a+32>>2];f=J[b+8>>2];e=J[b+12>>2];d=J[b+20>>2];h=f;f=J[b+16>>2];g=f+4|0;d=g>>>0<4?d+1|0:d;a:{if(h>>>0>>0&(d|0)>=(e|0)|(d|0)>(e|0)){break a}c=f+J[b>>2]|0;e=K[c|0]|K[c+1|0]<<8|(K[c+2|0]<<16|K[c+3|0]<<24);J[b+16>>2]=g;J[b+20>>2]=d;c=0;if((e|0)<0){break a}J[J[a+4>>2]+80>>2]=e;c=1}return c|0}function me(a,b,c){var d=0,e=0,f=0,g=0,h=0,i=0,j=0;if(!b){J[c>>2]=0;return}g=0-K[a+12|0]&255;e=J[a+8>>2];h=J[a>>2];while(1){i=d<<1;a:{if(e>>>0>4095){break a}d=J[a+4>>2];if((d|0)<=0){break a}d=d-1|0;J[a+4>>2]=d;e=K[d+h|0]|e<<8}f=e&255;d=f>>>0>>0;j=f;f=P(e>>>8|0,g);e=d?j+f|0:e-(g+f|0)|0;J[a+8>>2]=e;d=d|i;b=b-1|0;if(b){continue}break}J[c>>2]=d}function Qj(a,b,c,d){H[a+53|0]=1;a:{if(J[a+4>>2]!=(c|0)){break a}H[a+52|0]=1;c=J[a+16>>2];b:{if(!c){J[a+36>>2]=1;J[a+24>>2]=d;J[a+16>>2]=b;if((d|0)!=1){break a}if(J[a+48>>2]==1){break b}break a}if((b|0)==(c|0)){c=J[a+24>>2];if((c|0)==2){J[a+24>>2]=d;c=d}if(J[a+48>>2]!=1){break a}if((c|0)==1){break b}break a}J[a+36>>2]=J[a+36>>2]+1}H[a+54|0]=1}}function Ge(a){a=a|0;var b=0,c=0,d=0;J[a>>2]=11324;b=J[a+48>>2];J[a+48>>2]=0;if(b){na[J[J[b>>2]+4>>2]](b)}J[a>>2]=13328;b=J[a+20>>2];if(b){J[a+24>>2]=b;xj(b)}d=J[a+8>>2];if(d){c=J[a+12>>2];b=d;if((c|0)!=(b|0)){while(1){c=c-4|0;b=J[c>>2];J[c>>2]=0;if(b){na[J[J[b>>2]+4>>2]](b)}if((c|0)!=(d|0)){continue}break}b=J[a+8>>2]}J[a+12>>2]=d;xj(b)}xj(a)}function og(a){a=a|0;var b=0,c=0,d=0,e=0,f=0,g=0,h=0;d=J[a+32>>2];e=J[d+12>>2];g=J[d+8>>2];b=g;c=J[d+20>>2];h=J[d+16>>2];f=h+4|0;c=f>>>0<4?c+1|0:c;if((c|0)<=(e|0)&b>>>0>=f>>>0|(c|0)<(e|0)){b=h+J[d>>2]|0;b=K[b|0]|K[b+1|0]<<8|(K[b+2|0]<<16|K[b+3|0]<<24);J[d+16>>2]=f;J[d+20>>2]=c;J[J[a+4>>2]+80>>2]=b}return(c|0)<=(e|0)&f>>>0<=g>>>0|(c|0)<(e|0)}function Lj(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0;e=ia+-64|0;ia=e;d=1;a:{if(Kj(a,b,0)){break a}d=0;if(!b){break a}b=Mj(b,15020);d=0;if(!b){break a}d=e+8|0;Xi(d|4,0,52);J[e+56>>2]=1;J[e+20>>2]=-1;J[e+16>>2]=a;J[e+8>>2]=b;na[J[J[b>>2]+28>>2]](b,d,J[c>>2],1);a=J[e+32>>2];if((a|0)==1){J[c>>2]=J[e+24>>2]}d=(a|0)==1}ia=e- -64|0;return d|0}function Oe(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0;d=ia-16|0;ia=d;J[a+4>>2]=b;b=J[b+64>>2];e=J[b>>2];b=J[b+4>>2];H[d+15|0]=0;Qe(a+24|0,(b-e>>2>>>0)/3|0,d+15|0);b=J[a+4>>2];e=J[b+56>>2];b=J[b+52>>2];H[d+14|0]=0;Qe(a+36|0,e-b>>2,d+14|0);b=J[c+12>>2];J[a+16>>2]=J[c+8>>2];J[a+20>>2]=b;b=J[c+4>>2];J[a+8>>2]=J[c>>2];J[a+12>>2]=b;ia=d+16|0}function Ph(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,f=0,g=0;a=ia-16|0;ia=a;f=H[b+24|0];e=J[3423];J[a+8>>2]=J[3422];J[a+12>>2]=e;e=J[3421];J[a>>2]=J[3420];J[a+4>>2]=e;e=Uc(b,c,f,a);if(e){b=0;if(f){c=(f&255)<<2;b=Aj(c);g=Vi(b,a,c)+c|0}c=J[d>>2];if(c){J[d+4>>2]=c;xj(c)}J[d+8>>2]=g;J[d+4>>2]=g;J[d>>2]=b}ia=a+16|0;return e|0}function gc(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0;f=na[J[J[a>>2]+24>>2]](a)|0;c=1;a:{if((f|0)<=0){break a}d=J[J[a+36>>2]>>2];g=a+48|0;c=0;if(!(na[J[J[d>>2]+20>>2]](d,g,b)|0)){break a}while(1){e=e+1|0;if((f|0)!=(e|0)){d=J[J[a+36>>2]+(e<<2)>>2];if(na[J[J[d>>2]+20>>2]](d,g,b)|0){continue}}break}c=(e|0)>=(f|0)}return c|0}function fc(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0;f=na[J[J[a>>2]+24>>2]](a)|0;c=1;a:{if((f|0)<=0){break a}d=J[J[a+36>>2]>>2];g=a+48|0;c=0;if(!(na[J[J[d>>2]+16>>2]](d,g,b)|0)){break a}while(1){e=e+1|0;if((f|0)!=(e|0)){d=J[J[a+36>>2]+(e<<2)>>2];if(na[J[J[d>>2]+16>>2]](d,g,b)|0){continue}}break}c=(e|0)>=(f|0)}return c|0}function ui(a){var b=0;J[a>>2]=0;J[a+4>>2]=0;J[a+56>>2]=0;J[a+48>>2]=0;J[a+52>>2]=0;J[a+40>>2]=0;J[a+44>>2]=0;J[a+32>>2]=0;J[a+36>>2]=0;J[a+24>>2]=0;J[a+28>>2]=0;J[a+16>>2]=0;J[a+20>>2]=0;J[a+8>>2]=0;J[a+12>>2]=0;b=a- -64|0;J[b>>2]=0;J[b+4>>2]=0;J[a+72>>2]=0;J[a+76>>2]=0;J[a+80>>2]=0;J[a+84>>2]=0;J[a+60>>2]=a;return a}function hf(a,b){var c=0,d=0;a:{c=J[a+4>>2];d=J[a+8>>2];if((c|0)==d<<5){if((c+1|0)<0){break a}if(c>>>0<=1073741822){d=d<<6;c=(c&-32)+32|0;c=c>>>0>>0?d:c}else{c=2147483647}Mc(a,c);c=J[a+4>>2]}J[a+4>>2]=c+1;d=1<>2]+(c>>>3&536870908)|0;if(K[b|0]){J[a>>2]=d|J[a>>2];return}J[a>>2]=J[a>>2]&(d^-1);return}La();C()}function Af(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0;d=ia-16|0;ia=d;J[a+4>>2]=b;e=J[b>>2];b=J[b+4>>2];H[d+15|0]=0;Qe(a+24|0,(b-e>>2>>>0)/3|0,d+15|0);b=J[a+4>>2];e=J[b+28>>2];b=J[b+24>>2];H[d+14|0]=0;Qe(a+36|0,e-b>>2,d+14|0);b=J[c+12>>2];J[a+16>>2]=J[c+8>>2];J[a+20>>2]=b;b=J[c+4>>2];J[a+8>>2]=J[c>>2];J[a+12>>2]=b;ia=d+16|0}function ve(a,b,c){var d=0,e=0,f=0,g=0;a:{if(a>>>0>5){break a}d=J[c+20>>2];e=J[c+12>>2];f=J[c+16>>2];if((d|0)>=(e|0)&f>>>0>=M[c+8>>2]|(d|0)>(e|0)){break a}e=K[f+J[c>>2]|0];f=f+1|0;d=f?d:d+1|0;J[c+16>>2]=f;J[c+20>>2]=d;d=e<<24>>24;if((d|0)<0){if(!ve(a+1|0,b,c)){break a}e=d&127|J[b>>2]<<7}J[b>>2]=e;g=1}return g}function ke(a,b,c){var d=0,e=0,f=0,g=0;a:{if(a>>>0>5){break a}d=J[c+20>>2];e=J[c+12>>2];f=J[c+16>>2];if((d|0)>=(e|0)&f>>>0>=M[c+8>>2]|(d|0)>(e|0)){break a}e=K[f+J[c>>2]|0];f=f+1|0;d=f?d:d+1|0;J[c+16>>2]=f;J[c+20>>2]=d;d=e<<24>>24;if((d|0)<0){if(!ke(a+1|0,b,c)){break a}e=d&127|J[b>>2]<<7}J[b>>2]=e;g=1}return g}function ib(a,b,c){var d=0,e=0,f=0,g=0;a:{if(a>>>0>5){break a}d=J[c+20>>2];e=J[c+12>>2];f=J[c+16>>2];if((d|0)>=(e|0)&f>>>0>=M[c+8>>2]|(d|0)>(e|0)){break a}e=K[f+J[c>>2]|0];f=f+1|0;d=f?d:d+1|0;J[c+16>>2]=f;J[c+20>>2]=d;d=e<<24>>24;if((d|0)<0){if(!ib(a+1|0,b,c)){break a}e=d&127|J[b>>2]<<7}J[b>>2]=e;g=1}return g}function Yf(a,b,c){var d=0,e=0,f=0,g=0;a:{if(a>>>0>5){break a}d=J[c+20>>2];e=J[c+12>>2];f=J[c+16>>2];if((d|0)>=(e|0)&f>>>0>=M[c+8>>2]|(d|0)>(e|0)){break a}e=K[f+J[c>>2]|0];f=f+1|0;d=f?d:d+1|0;J[c+16>>2]=f;J[c+20>>2]=d;d=e<<24>>24;if((d|0)<0){if(!Yf(a+1|0,b,c)){break a}e=d&127|J[b>>2]<<7}J[b>>2]=e;g=1}return g}function Te(a,b,c){var d=0,e=0,f=0,g=0;a:{if(a>>>0>5){break a}d=J[c+20>>2];e=J[c+12>>2];f=J[c+16>>2];if((d|0)>=(e|0)&f>>>0>=M[c+8>>2]|(d|0)>(e|0)){break a}e=K[f+J[c>>2]|0];f=f+1|0;d=f?d:d+1|0;J[c+16>>2]=f;J[c+20>>2]=d;d=e<<24>>24;if((d|0)<0){if(!Te(a+1|0,b,c)){break a}e=d&127|J[b>>2]<<7}J[b>>2]=e;g=1}return g}function Kb(a,b,c){var d=0,e=0,f=0,g=0;a:{if(a>>>0>5){break a}d=J[c+20>>2];e=J[c+12>>2];f=J[c+16>>2];if((d|0)>=(e|0)&f>>>0>=M[c+8>>2]|(d|0)>(e|0)){break a}e=K[f+J[c>>2]|0];f=f+1|0;d=f?d:d+1|0;J[c+16>>2]=f;J[c+20>>2]=d;d=e<<24>>24;if((d|0)<0){if(!Kb(a+1|0,b,c)){break a}e=d&127|J[b>>2]<<7}J[b>>2]=e;g=1}return g}function Jc(a,b,c){var d=0,e=0,f=0,g=0;a:{if(a>>>0>5){break a}d=J[c+20>>2];e=J[c+12>>2];f=J[c+16>>2];if((d|0)>=(e|0)&f>>>0>=M[c+8>>2]|(d|0)>(e|0)){break a}e=K[f+J[c>>2]|0];f=f+1|0;d=f?d:d+1|0;J[c+16>>2]=f;J[c+20>>2]=d;d=e<<24>>24;if((d|0)<0){if(!Jc(a+1|0,b,c)){break a}e=d&127|J[b>>2]<<7}J[b>>2]=e;g=1}return g}function Ii(a,b,c){var d=0,e=0,f=0,g=0;a:{if(a>>>0>5){break a}d=J[c+20>>2];e=J[c+12>>2];f=J[c+16>>2];if((d|0)>=(e|0)&f>>>0>=M[c+8>>2]|(d|0)>(e|0)){break a}e=K[f+J[c>>2]|0];f=f+1|0;d=f?d:d+1|0;J[c+16>>2]=f;J[c+20>>2]=d;d=e<<24>>24;if((d|0)<0){if(!Ii(a+1|0,b,c)){break a}e=d&127|J[b>>2]<<7}J[b>>2]=e;g=1}return g}function bj(a,b,c){var d=0,e=0;a:{b:{if(c>>>0>=4){if((a|b)&3){break b}while(1){if(J[a>>2]!=J[b>>2]){break b}b=b+4|0;a=a+4|0;c=c-4|0;if(c>>>0>3){continue}break}}if(!c){break a}}while(1){d=K[a|0];e=K[b|0];if((d|0)==(e|0)){b=b+1|0;a=a+1|0;c=c-1|0;if(c){continue}break a}break}return d-e|0}return 0}function rf(a){var b=0,c=0,d=0,e=0;d=J[a>>2];if(d){e=d;c=J[a+4>>2];if((d|0)!=(c|0)){while(1){e=c-144|0;b=J[e+132>>2];if(b){J[c-8>>2]=b;xj(b)}b=J[c-28>>2];if(b){J[c-24>>2]=b;xj(b)}b=J[c-40>>2];if(b){J[c-36>>2]=b;xj(b)}df(c-140|0);c=e;if((d|0)!=(c|0)){continue}break}e=J[a>>2]}J[a+4>>2]=d;xj(e)}}function Kh(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0;d=J[b+4>>2];a:{if(!d){break a}b=J[J[J[b+8>>2]+(c<<2)>>2]+60>>2];if((b|0)<0){break a}a=J[d+24>>2];c=J[d+28>>2];if((a|0)==(c|0)){break a}b:{while(1){e=J[a>>2];if((b|0)==J[e+24>>2]){break b}a=a+4|0;if((c|0)!=(a|0)){continue}break}e=0}}return e|0}function Cf(a){a=a|0;var b=0;J[a+8>>2]=12432;J[a>>2]=12220;b=J[a+96>>2];if(b){J[a+100>>2]=b;xj(b)}b=J[a+80>>2];if(b){J[a+84>>2]=b;xj(b)}b=J[a+68>>2];if(b){J[a+72>>2]=b;xj(b)}b=J[a+56>>2];if(b){J[a+60>>2]=b;xj(b)}J[a+8>>2]=12668;b=J[a+44>>2];if(b){xj(b)}b=J[a+32>>2];if(b){xj(b)}return a|0}function gg(a){var b=0,c=0,d=0;if(a){d=J[a+24>>2];if(d){b=d;c=J[a+28>>2];if((b|0)!=(c|0)){while(1){c=c-4|0;b=J[c>>2];J[c>>2]=0;if(b){kg(b+12|0,J[b+16>>2]);lg(b,J[b+4>>2]);xj(b)}if((c|0)!=(d|0)){continue}break}b=J[a+24>>2]}J[a+28>>2]=d;xj(b)}kg(a+12|0,J[a+16>>2]);lg(a,J[a+4>>2]);xj(a)}}function Df(a){a=a|0;var b=0;J[a+8>>2]=12432;J[a>>2]=12220;b=J[a+96>>2];if(b){J[a+100>>2]=b;xj(b)}b=J[a+80>>2];if(b){J[a+84>>2]=b;xj(b)}b=J[a+68>>2];if(b){J[a+72>>2]=b;xj(b)}b=J[a+56>>2];if(b){J[a+60>>2]=b;xj(b)}J[a+8>>2]=12668;b=J[a+44>>2];if(b){xj(b)}b=J[a+32>>2];if(b){xj(b)}xj(a)}function Ae(a){a=a|0;var b=0,c=0,d=0;J[a>>2]=13328;b=J[a+20>>2];if(b){J[a+24>>2]=b;xj(b)}d=J[a+8>>2];if(d){c=J[a+12>>2];b=d;if((c|0)!=(b|0)){while(1){c=c-4|0;b=J[c>>2];J[c>>2]=0;if(b){na[J[J[b>>2]+4>>2]](b)}if((c|0)!=(d|0)){continue}break}b=J[a+8>>2]}J[a+12>>2]=d;xj(b)}return a|0}function Fa(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0,g=0,h=0,i=0;h=J[c+8>>2];e=J[c+16>>2];g=J[c+12>>2];f=g;d=J[c+20>>2];if(h>>>0>e>>>0&(f|0)>=(d|0)|(d|0)<(f|0)){b=K[e+J[c>>2]|0];i=e+1|0;f=i?d:d+1|0;J[c+16>>2]=i;J[c+20>>2]=f;J[a+4>>2]=b}return e>>>0>>0&(d|0)<=(g|0)|(d|0)<(g|0)}function $f(a){a=a|0;var b=0,c=0,d=0;J[a>>2]=13328;b=J[a+20>>2];if(b){J[a+24>>2]=b;xj(b)}d=J[a+8>>2];if(d){c=J[a+12>>2];b=d;if((c|0)!=(b|0)){while(1){c=c-4|0;b=J[c>>2];J[c>>2]=0;if(b){na[J[J[b>>2]+4>>2]](b)}if((c|0)!=(d|0)){continue}break}b=J[a+8>>2]}J[a+12>>2]=d;xj(b)}xj(a)}function Kj(a,b,c){var d=0;if(!c){return J[a+4>>2]==J[b+4>>2]}if((a|0)==(b|0)){return 1}d=J[a+4>>2];a=K[d|0];c=J[b+4>>2];b=K[c|0];a:{if(!a|(b|0)!=(a|0)){break a}while(1){b=K[c+1|0];a=K[d+1|0];if(!a){break a}c=c+1|0;d=d+1|0;if((a|0)==(b|0)){continue}break}}return(a|0)==(b|0)}function Ih(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0;d=J[b+12>>2];b=J[b+8>>2];a=0;a:{if((d|0)==(b|0)){break a}a=d-b>>2;d=a>>>0<=1?1:a;a=0;b:{while(1){e=J[b+(a<<2)>>2];if(J[e+60>>2]==(c|0)){break b}a=a+1|0;if((d|0)!=(a|0)){continue}break}a=0;break a}a=(a|0)!=-1?e:0}return a|0}function Bf(a){a=a|0;var b=0;J[a>>2]=12432;b=J[a+88>>2];if(b){J[a+92>>2]=b;xj(b)}b=J[a+72>>2];if(b){J[a+76>>2]=b;xj(b)}b=J[a+60>>2];if(b){J[a- -64>>2]=b;xj(b)}b=J[a+48>>2];if(b){J[a+52>>2]=b;xj(b)}J[a>>2]=12668;b=J[a+36>>2];if(b){xj(b)}b=J[a+24>>2];if(b){xj(b)}return a|0}function Ki(a,b){var c=0,d=0,e=0;J[a+8>>2]=0;J[a>>2]=0;J[a+4>>2]=0;a:{c=J[b+4>>2];d=J[b>>2];b:{if((c|0)==(d|0)){a=c;break b}c=c-d|0;if((c|0)<0){break a}d=c;e=Aj(c);c=Xi(e,0,c);d=d+c|0;J[a+8>>2]=d;J[a+4>>2]=d;J[a>>2]=c;c=J[b>>2];a=J[b+4>>2]}Vi(e,c,a-c|0);return}La();C()}function We(a){var b=0,c=0,d=0,e=0;c=J[a+4>>2];d=J[a>>2];if((c|0)!=(d|0)){while(1){e=c-144|0;b=J[e+132>>2];if(b){J[c-8>>2]=b;xj(b)}b=J[c-28>>2];if(b){J[c-24>>2]=b;xj(b)}b=J[c-40>>2];if(b){J[c-36>>2]=b;xj(b)}df(c-140|0);c=e;if((d|0)!=(c|0)){continue}break}}J[a+4>>2]=d}function If(a){a=a|0;var b=0;J[a>>2]=12432;b=J[a+88>>2];if(b){J[a+92>>2]=b;xj(b)}b=J[a+72>>2];if(b){J[a+76>>2]=b;xj(b)}b=J[a+60>>2];if(b){J[a- -64>>2]=b;xj(b)}b=J[a+48>>2];if(b){J[a+52>>2]=b;xj(b)}J[a>>2]=12668;b=J[a+36>>2];if(b){xj(b)}b=J[a+24>>2];if(b){xj(b)}xj(a)}function oj(a,b,c){var d=0,e=0,f=0;a:{if(!b){d=a;break a}while(1){d=lk(a,b,10,0);f=ma;e=jk(d,f,10,0);c=c-1|0;H[c|0]=a-e|48;e=b>>>0>9;a=d;b=f;if(e){continue}break}}if(d){while(1){c=c-1|0;a=(d>>>0)/10|0;H[c|0]=d-P(a,10)|48;b=d>>>0>9;d=a;if(b){continue}break}}return c}function Ve(a,b){var c=0,d=0,e=0,f=0;a:{c=J[a>>2];b:{if(J[a+8>>2]-c>>2>>>0>=b>>>0){break b}if(b>>>0>=1073741824){break a}d=J[a+4>>2];e=b<<2;b=Aj(e);e=b+e|0;d=d-c|0;f=d+b|0;if((d|0)>0){Vi(b,c,d)}J[a+8>>2]=e;J[a+4>>2]=f;J[a>>2]=b;if(!c){break b}xj(c)}return}La();C()}function Ue(a){var b=0;if(a){b=J[a+76>>2];if(b){J[a+80>>2]=b;xj(b)}b=J[a- -64>>2];if(b){J[a+68>>2]=b;xj(b)}b=J[a+48>>2];if(b){J[a+52>>2]=b;xj(b)}b=J[a+24>>2];if(b){J[a+28>>2]=b;xj(b)}b=J[a+12>>2];if(b){J[a+16>>2]=b;xj(b)}b=J[a>>2];if(b){J[a+4>>2]=b;xj(b)}xj(a)}}function uj(a,b,c){var d=0,e=0,f=0,g=0,h=0;f=ia-16|0;ia=f;d=ia-16|0;ia=d;b=b-a>>2;while(1){if(b){J[d+12>>2]=a;e=b>>>1|0;J[d+12>>2]=J[d+12>>2]+(e<<2);h=(e^-1)+b|0;b=e;e=J[d+12>>2];g=M[e>>2]>2];b=g?h:b;a=g?e+4|0:a;continue}break}ia=d+16|0;ia=f+16|0;return a}function df(a){var b=0;b=J[a+84>>2];if(b){J[a+88>>2]=b;xj(b)}b=J[a+72>>2];if(b){J[a+76>>2]=b;xj(b)}b=J[a+52>>2];if(b){J[a+56>>2]=b;xj(b)}b=J[a+40>>2];if(b){J[a+44>>2]=b;xj(b)}b=J[a+28>>2];if(b){J[a+32>>2]=b;xj(b)}b=J[a+12>>2];if(b){xj(b)}a=J[a>>2];if(a){xj(a)}}function Cj(a){var b=0,c=0,d=0;c=ia-16|0;ia=c;H[c+15|0]=10;b=J[a+16>>2];a:{if(!b){if(_i(a)){break a}b=J[a+16>>2]}d=b;b=J[a+20>>2];if(!((d|0)==(b|0)|J[a+80>>2]==10)){J[a+20>>2]=b+1;H[b|0]=10;break a}if((na[J[a+36>>2]](a,c+15|0,1)|0)!=1){break a}}ia=c+16|0}function Ej(a,b,c){var d=0,e=0;a:{b:{if(c>>>0<11){d=a;H[d+11|0]=c;break b}if(c>>>0>4294967279){break a}if(c>>>0>=11){e=c+16&-16;d=e-1|0;d=(d|0)==11?e:d}else{d=10}e=d+1|0;d=Aj(e);J[a>>2]=d;J[a+8>>2]=e|-2147483648;J[a+4>>2]=c}zj(d,b,c+1|0);return}fg();C()}function _a(a,b){var c=0,d=0;d=Aj(40);J[d>>2]=-1;c=d+8|0;J[c+16>>2]=0;J[c+20>>2]=0;J[c+8>>2]=0;J[c>>2]=0;J[c+4>>2]=0;J[c+24>>2]=0;J[c+28>>2]=0;na[J[J[a>>2]+16>>2]](a,d);a=J[b+88>>2];J[b+88>>2]=d;if(a){b=J[a+8>>2];if(b){J[a+12>>2]=b;xj(b)}xj(a)}return 1}function hj(a){var b=0,c=0,d=0;b=a;a:{if(b&3){while(1){if(!K[b|0]){break a}b=b+1|0;if(b&3){continue}break}}while(1){c=b;b=b+4|0;d=J[c>>2];if(!((d^-1)&d-16843009&-2139062144)){continue}break}while(1){b=c;c=b+1|0;if(K[b|0]){continue}break}}return b-a|0}function le(a){var b=0,c=0,d=0,e=0,f=0;d=K[a+12|0];c=J[a+8>>2];a:{if(c>>>0>4095){break a}b=J[a+4>>2];if((b|0)<=0){break a}b=b-1|0;J[a+4>>2]=b;c=K[b+J[a>>2]|0]|c<<8}d=0-d&255;b=P(d,c>>>8|0);e=c&255;f=e>>>0>>0;J[a+8>>2]=f?b+e|0:c-(b+d|0)|0;return f}function ij(a,b){var c=0,d=0,e=0;A(+a);d=v(1)|0;e=v(0)|0;c=d>>>20&2047;if((c|0)!=2047){if(!c){if(a==0){c=0}else{a=ij(a*0x10000000000000000,b);c=J[b>>2]+-64|0}J[b>>2]=c;return a}J[b>>2]=c-1022;x(0,e|0);x(1,d&-2146435073|1071644672);a=+z()}return a}function bc(a,b){J[a+4>>2]=0;J[a+8>>2]=0;J[a>>2]=2032;J[a+12>>2]=0;J[a+16>>2]=0;J[a+20>>2]=0;J[a+24>>2]=0;J[a+28>>2]=0;J[a+32>>2]=0;J[a+36>>2]=0;J[a+40>>2]=0;J[a>>2]=2376;J[a+60>>2]=b;J[a+44>>2]=0;J[a+48>>2]=0;J[a+52>>2]=0;J[a+56>>2]=0;return a}function Ah(a){a=a|0;var b=0,c=0,d=0;if(a){if(H[a+27|0]<0){xj(J[a+16>>2])}b=J[a>>2];if(b){c=b;d=J[a+4>>2];if((b|0)!=(d|0)){while(1){c=d-12|0;if(H[d-1|0]<0){xj(J[c>>2])}d=c;if((d|0)!=(b|0)){continue}break}c=J[a>>2]}J[a+4>>2]=b;xj(c)}xj(a)}}function tb(a){a=a|0;var b=0,c=0;if(a){b=J[a+88>>2];J[a+88>>2]=0;if(b){c=J[b+8>>2];if(c){J[b+12>>2]=c;xj(c)}xj(b)}b=J[a+68>>2];if(b){J[a+72>>2]=b;xj(b)}b=J[a+64>>2];J[a+64>>2]=0;if(b){c=J[b>>2];if(c){J[b+4>>2]=c;xj(c)}xj(b)}xj(a)}}function mj(a){var b=0,c=0,d=0;if(H[J[a>>2]]-48>>>0>=10){return 0}while(1){d=J[a>>2];c=-1;if(b>>>0<=214748364){c=H[d|0]-48|0;b=P(b,10);c=(c|0)>(b^2147483647)?-1:c+b|0}J[a>>2]=d+1;b=c;if(H[d+1|0]-48>>>0<10){continue}break}return b}function eg(a,b){var c=0,d=0,e=0;c=hj(b);if(c>>>0<4294967280){a:{b:{if(c>>>0>=11){e=(c|15)+1|0;d=Aj(e);J[a+8>>2]=e|-2147483648;J[a>>2]=d;J[a+4>>2]=c;break b}H[a+11|0]=c;d=a;if(!c){break a}}Vi(d,b,c)}H[c+d|0]=0;return a}fg();C()}function fe(a){a=a|0;var b=0;J[a+24>>2]=1880;J[a>>2]=11096;b=J[a+32>>2];if(b){J[a+36>>2]=b;xj(b)}J[a>>2]=2496;b=J[a+20>>2];J[a+20>>2]=0;if(b){na[J[J[b>>2]+4>>2]](b)}J[a>>2]=2280;b=J[a+16>>2];J[a+16>>2]=0;if(b){tb(b)}return a|0}function Lh(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;b=J[b+96>>2];a=Aj(12);b=b+P(c,12)|0;c=J[b+4>>2];J[a>>2]=J[b>>2];J[a+4>>2]=c;J[a+8>>2]=J[b+8>>2];b=J[d>>2];if(b){J[d+4>>2]=b;xj(b)}J[d>>2]=a;a=a+12|0;J[d+8>>2]=a;J[d+4>>2]=a;return 1}function kk(a,b,c,d){var e=0,f=0,g=0,h=0;f=b^d;g=f>>31;e=b>>31;a=a^e;h=a-e|0;e=(b^e)-((a>>>0>>0)+e|0)|0;a=d>>31;b=c^a;f=f>>31;a=lk(h,e,b-a|0,(a^d)-((a>>>0>b>>>0)+a|0)|0)^f;b=a-f|0;ma=(g^ma)-((a>>>0>>0)+g|0)|0;return b}function ge(a){a=a|0;var b=0;J[a+24>>2]=1880;J[a>>2]=11096;b=J[a+32>>2];if(b){J[a+36>>2]=b;xj(b)}J[a>>2]=2496;b=J[a+20>>2];J[a+20>>2]=0;if(b){na[J[J[b>>2]+4>>2]](b)}J[a>>2]=2280;b=J[a+16>>2];J[a+16>>2]=0;if(b){tb(b)}xj(a)}function Fj(a,b,c){var d=0,e=0,f=0;e=ia-16|0;ia=e;d=J[a+8>>2]&2147483647;a:{if(d>>>0>c>>>0){d=J[a>>2];J[a+4>>2]=c;zj(d,b,c);H[e+15|0]=0;H[c+d|0]=K[e+15|0];break a}f=a;a=J[a+4>>2];Dj(f,d-1|0,(c-d|0)+1|0,a,a,c,b)}ia=e+16|0}function Da(a,b){a=a|0;b=b|0;var c=0,d=0;c=ia-16|0;ia=c;a=J[a+4>>2];a:{if((a|0)==-1){break a}H[c+15|0]=a;d=J[b+20>>2];if(!!J[b+16>>2]&(d|0)>=0|(d|0)>0){break a}Ea(b,J[b+4>>2],c+15|0,c+16|0)}ia=c+16|0;return(a|0)!=-1|0}function jk(a,b,c,d){var e=0,f=0,g=0,h=0,i=0,j=0;e=c>>>16|0;f=a>>>16|0;j=P(e,f);g=c&65535;h=a&65535;i=P(g,h);f=(i>>>16|0)+P(f,g)|0;e=(f&65535)+P(e,h)|0;ma=(P(b,c)+j|0)+P(a,d)+(f>>>16)+(e>>>16)|0;return i&65535|e<<16}function Nj(a,b,c){var d=0;d=J[a+16>>2];if(!d){J[a+36>>2]=1;J[a+24>>2]=c;J[a+16>>2]=b;return}a:{if((b|0)==(d|0)){if(J[a+24>>2]!=2){break a}J[a+24>>2]=c;return}H[a+54|0]=1;J[a+24>>2]=2;J[a+36>>2]=J[a+36>>2]+1}}function Lg(){var a=0;a=ab(Aj(96));J[a+64>>2]=0;J[a+68>>2]=0;J[a+88>>2]=0;J[a+72>>2]=0;J[a+76>>2]=0;H[a+77|0]=0;H[a+78|0]=0;H[a+79|0]=0;H[a+80|0]=0;H[a+81|0]=0;H[a+82|0]=0;H[a+83|0]=0;H[a+84|0]=0;return a|0}function za(a,b){a=a|0;b=b|0;var c=0,d=0;J[b>>2]=2;c=J[b+8>>2];d=J[b+12>>2]-c|0;if(d>>>0<=4294967291){qg(b+8|0,d+4|0);c=J[b+8>>2]}b=c+d|0;a=J[a+4>>2];H[b|0]=a;H[b+1|0]=a>>>8;H[b+2|0]=a>>>16;H[b+3|0]=a>>>24}function pj(a,b,c,d,e){var f=0;f=ia-256|0;ia=f;if(!(e&73728|(c|0)<=(d|0))){d=c-d|0;c=d>>>0<256;Xi(f,b&255,c?d:256);if(!c){while(1){lj(a,f,256);d=d-256|0;if(d>>>0>255){continue}break}}lj(a,f,d)}ia=f+256|0}function kd(a){a=a|0;var b=0;J[a>>2]=5628;b=J[a+96>>2];if(b){xj(b)}b=J[a+84>>2];if(b){xj(b)}b=J[a+72>>2];if(b){xj(b)}b=J[a+60>>2];if(b){xj(b)}J[a>>2]=3320;b=J[a+32>>2];if(b){J[a+36>>2]=b;xj(b)}return a|0}function jg(a){a=a|0;var b=0,c=0,d=0;b=J[a+8>>2];d=J[a+12>>2];if((b|0)==(d|0)){return 1}while(1){c=J[b>>2];c=na[J[J[c>>2]+16>>2]](c,J[a+32>>2])|0;if(c){b=b+4|0;if((d|0)!=(b|0)){continue}}break}return c|0}function Fc(a){a=a|0;var b=0;J[a>>2]=3612;b=J[a+96>>2];if(b){xj(b)}b=J[a+84>>2];if(b){xj(b)}b=J[a+72>>2];if(b){xj(b)}b=J[a+60>>2];if(b){xj(b)}J[a>>2]=3320;b=J[a+32>>2];if(b){J[a+36>>2]=b;xj(b)}return a|0}function Oi(a,b){var c=0,d=0;c=J[a+8>>2];a=J[a+12>>2];if((c|0)!=(a|0)){a=a-c>>2;d=a>>>0<=1?1:a;a=0;while(1){if(J[J[(a<<2)+c>>2]+60>>2]==(b|0)){return a}a=a+1|0;if((d|0)!=(a|0)){continue}break}}return-1} +function Bi(a,b){a=a|0;b=b|0;var c=0,d=0,e=0;Qi(a,b);a:{if((b|0)<0){break a}d=J[a+88>>2];c=J[a+84>>2];if(d-c>>2<=(b|0)){break a}b=c+(b<<2)|0;c=b+4|0;e=d-c|0;if((c|0)!=(d|0)){Wi(b,c,e)}J[a+88>>2]=b+e}}function ld(a){a=a|0;var b=0;J[a>>2]=5628;b=J[a+96>>2];if(b){xj(b)}b=J[a+84>>2];if(b){xj(b)}b=J[a+72>>2];if(b){xj(b)}b=J[a+60>>2];if(b){xj(b)}J[a>>2]=3320;b=J[a+32>>2];if(b){J[a+36>>2]=b;xj(b)}xj(a)}function Gc(a){a=a|0;var b=0;J[a>>2]=3612;b=J[a+96>>2];if(b){xj(b)}b=J[a+84>>2];if(b){xj(b)}b=J[a+72>>2];if(b){xj(b)}b=J[a+60>>2];if(b){xj(b)}J[a>>2]=3320;b=J[a+32>>2];if(b){J[a+36>>2]=b;xj(b)}xj(a)}function Li(a,b,c){var d=0,e=0;d=a+4|0;a=ug(a,b);if((d|0)==(a|0)){return 0}b=J[a+32>>2];d=J[a+28>>2];if((b|0)!=(d|0)){Ij(c,b-d|0);e=Hj(c);c=J[a+28>>2];Vi(e,c,J[a+32>>2]-c|0)}return(b|0)!=(d|0)}function fj(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0;e=ia-16|0;ia=e;a=ha(J[a+60>>2],b|0,c|0,d&255,e+8|0)|0;if(a){J[4004]=a;a=-1}else{a=0}ia=e+16|0;ma=a?-1:J[e+12>>2];return(a?-1:J[e+8>>2])|0}function ab(a){J[a+8>>2]=0;J[a+12>>2]=0;J[a>>2]=0;J[a+40>>2]=0;J[a+44>>2]=0;J[a+28>>2]=9;H[a+24|0]=1;J[a+56>>2]=-1;J[a+60>>2]=0;J[a+16>>2]=0;J[a+20>>2]=0;J[a+48>>2]=0;J[a+52>>2]=0;return a}function _i(a){var b=0;b=J[a+72>>2];J[a+72>>2]=b-1|b;b=J[a>>2];if(b&8){J[a>>2]=b|32;return-1}J[a+4>>2]=0;J[a+8>>2]=0;b=J[a+44>>2];J[a+28>>2]=b;J[a+20>>2]=b;J[a+16>>2]=b+J[a+48>>2];return 0}function lc(a,b){a=a|0;b=b|0;var c=0,d=0;d=J[a+16>>2];c=0;a:{if(J[a+20>>2]-d>>2<=(b|0)){break a}b=J[(b<<2)+d>>2];c=0;if((b|0)<0){break a}c=Yb(J[J[a+36>>2]+(b<<2)>>2])}return c|0}function Bh(){var a=0,b=0;a=Aj(40);J[a+4>>2]=0;J[a+8>>2]=0;J[a+24>>2]=0;J[a+28>>2]=0;b=a+16|0;J[b>>2]=0;J[b+4>>2]=0;J[a>>2]=a+4;J[a+12>>2]=b;J[a+32>>2]=0;J[a+36>>2]=0;return a|0}function vj(a){var b=0,c=0;b=J[3973];c=a+7&-8;a=b+c|0;a:{if(a>>>0<=b>>>0?c:0){break a}if(a>>>0>oa()<<16>>>0){if(!(ga(a|0)|0)){break a}}J[3973]=a;return b}J[4004]=48;return-1}function Sf(a){a=a|0;var b=0;J[a+8>>2]=11920;J[a>>2]=12980;b=J[a+56>>2];if(b){J[a+60>>2]=b;xj(b)}J[a+8>>2]=12172;b=J[a+44>>2];if(b){xj(b)}b=J[a+32>>2];if(b){xj(b)}return a|0}function Mf(a){a=a|0;var b=0;J[a+8>>2]=12852;J[a>>2]=12688;b=J[a+56>>2];if(b){J[a+60>>2]=b;xj(b)}J[a+8>>2]=12668;b=J[a+44>>2];if(b){xj(b)}b=J[a+32>>2];if(b){xj(b)}return a|0}function Gj(a,b,c){var d=0,e=0;d=ia-16|0;ia=d;a:{if(c>>>0<=10){H[a+11|0]=c;zj(a,b,c);H[d+15|0]=0;H[a+c|0]=K[d+15|0];break a}e=a;a=K[a+11|0];Dj(e,10,c-10|0,a,a,c,b)}ia=d+16|0}function Ad(a,b,c){a=a|0;b=b|0;c=c|0;var d=0;J[a+4>>2]=b;b=J[J[J[b+4>>2]+8>>2]+(c<<2)>>2];J[a+12>>2]=c;J[a+8>>2]=b;a=J[a+8>>2];if(K[a+24|0]==3){d=J[a+28>>2]==9}return d|0}function Wb(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0;d=J[a+8>>2];a:{if(!K[d+24|0]){break a}if(!db(d,J[b+4>>2]-J[b>>2]>>2)){break a}e=na[J[J[a>>2]+32>>2]](a,b,c)|0}return e|0}function Tf(a){a=a|0;var b=0;J[a+8>>2]=11920;J[a>>2]=12980;b=J[a+56>>2];if(b){J[a+60>>2]=b;xj(b)}J[a+8>>2]=12172;b=J[a+44>>2];if(b){xj(b)}b=J[a+32>>2];if(b){xj(b)}xj(a)}function Nf(a){a=a|0;var b=0;J[a+8>>2]=12852;J[a>>2]=12688;b=J[a+56>>2];if(b){J[a+60>>2]=b;xj(b)}J[a+8>>2]=12668;b=J[a+44>>2];if(b){xj(b)}b=J[a+32>>2];if(b){xj(b)}xj(a)}function od(a){a=a|0;var b=0;J[a>>2]=5864;b=J[a+76>>2];if(b){xj(b)}b=J[a+68>>2];J[a+68>>2]=0;if(b){xj(b)}J[a>>2]=3320;b=J[a+32>>2];if(b){J[a+36>>2]=b;xj(b)}return a|0}function kg(a,b){if(b){kg(a,J[b>>2]);kg(a,J[b+4>>2]);a=J[b+28>>2];J[b+28>>2]=0;if(a){kg(a+12|0,J[a+16>>2]);lg(a,J[a+4>>2]);xj(a)}if(H[b+27|0]<0){xj(J[b+16>>2])}xj(b)}}function Nc(a){a=a|0;var b=0;J[a>>2]=3860;b=J[a+76>>2];if(b){xj(b)}b=J[a+68>>2];J[a+68>>2]=0;if(b){xj(b)}J[a>>2]=3320;b=J[a+32>>2];if(b){J[a+36>>2]=b;xj(b)}return a|0}function $d(a,b,c){a=a|0;b=b|0;c=c|0;var d=0;J[a+4>>2]=b;d=J[J[J[b+4>>2]+8>>2]+(c<<2)>>2];J[a+12>>2]=c;J[a+8>>2]=d;return J[J[J[J[b+4>>2]+8>>2]+(c<<2)>>2]+28>>2]==9|0}function cg(a){J[a+40>>2]=0;J[a+4>>2]=0;J[a+8>>2]=0;J[a>>2]=13328;J[a+12>>2]=0;J[a+16>>2]=0;J[a+20>>2]=0;J[a+24>>2]=0;J[a+28>>2]=0;J[a+32>>2]=0;I[a+36>>1]=0;return a}function Bj(a,b){var c=0,d=0,e=0,f=0;J[a>>2]=15308;J[a>>2]=15420;c=hj(b);d=Aj(c+13|0);J[d+8>>2]=0;J[d+4>>2]=c;J[d>>2]=c;e=a,f=Vi(d+12|0,b,c+1|0),J[e+4>>2]=f;return a}function mb(a,b){a=a|0;b=b|0;var c=0;a:{if(!(na[J[J[a>>2]+36>>2]](a,b)|0)){break a}if(!(na[J[J[a>>2]+40>>2]](a,b)|0)){break a}c=na[J[J[a>>2]+44>>2]](a)|0}return c|0}function pd(a){a=a|0;var b=0;J[a>>2]=5864;b=J[a+76>>2];if(b){xj(b)}b=J[a+68>>2];J[a+68>>2]=0;if(b){xj(b)}J[a>>2]=3320;b=J[a+32>>2];if(b){J[a+36>>2]=b;xj(b)}xj(a)}function Oc(a){a=a|0;var b=0;J[a>>2]=3860;b=J[a+76>>2];if(b){xj(b)}b=J[a+68>>2];J[a+68>>2]=0;if(b){xj(b)}J[a>>2]=3320;b=J[a+32>>2];if(b){J[a+36>>2]=b;xj(b)}xj(a)}function cd(a){a=a|0;var b=0;a:{if(!J[a- -64>>2]|!J[a+68>>2]|(!J[a+44>>2]|!J[a+48>>2])){break a}if(!J[a+52>>2]|!J[a+56>>2]){break a}b=J[a+92>>2]!=-1}return b|0}function ya(a,b){a=a|0;b=b|0;var c=0;b=J[b+88>>2];if(!(!b|J[b>>2]!=2)){c=a;a=J[b+8>>2];J[c+4>>2]=K[a|0]|K[a+1|0]<<8|(K[a+2|0]<<16|K[a+3|0]<<24);c=1}return c|0}function rc(a){a=a|0;var b=0;J[a>>2]=2496;b=J[a+20>>2];J[a+20>>2]=0;if(b){na[J[J[b>>2]+4>>2]](b)}J[a>>2]=2280;b=J[a+16>>2];J[a+16>>2]=0;if(b){tb(b)}return a|0}function Hd(a){a=a|0;var b=0;a:{if(!J[a+48>>2]|!J[a+52>>2]|(!J[a+28>>2]|!J[a+32>>2])){break a}if(!J[a+36>>2]|!J[a+40>>2]){break a}b=J[a+76>>2]!=-1}return b|0}function Pe(a){a=a|0;var b=0;J[a>>2]=11920;b=J[a+48>>2];if(b){J[a+52>>2]=b;xj(b)}J[a>>2]=12172;b=J[a+36>>2];if(b){xj(b)}b=J[a+24>>2];if(b){xj(b)}return a|0}function Lf(a){a=a|0;var b=0;J[a>>2]=12852;b=J[a+48>>2];if(b){J[a+52>>2]=b;xj(b)}J[a>>2]=12668;b=J[a+36>>2];if(b){xj(b)}b=J[a+24>>2];if(b){xj(b)}return a|0}function sc(a){a=a|0;var b=0;J[a>>2]=2496;b=J[a+20>>2];J[a+20>>2]=0;if(b){na[J[J[b>>2]+4>>2]](b)}J[a>>2]=2280;b=J[a+16>>2];J[a+16>>2]=0;if(b){tb(b)}xj(a)}function xf(a){a=a|0;var b=0;J[a>>2]=11920;b=J[a+48>>2];if(b){J[a+52>>2]=b;xj(b)}J[a>>2]=12172;b=J[a+36>>2];if(b){xj(b)}b=J[a+24>>2];if(b){xj(b)}xj(a)}function mc(a,b){a=a|0;b=b|0;var c=0,d=0;d=J[a+4>>2];a:{if(d){c=1;if(K[d+36|0]<2){break a}}c=na[J[J[a>>2]+48>>2]](a,J[b+4>>2]-J[b>>2]>>2)|0}return c|0}function Rf(a){a=a|0;var b=0;J[a>>2]=12852;b=J[a+48>>2];if(b){J[a+52>>2]=b;xj(b)}J[a>>2]=12668;b=J[a+36>>2];if(b){xj(b)}b=J[a+24>>2];if(b){xj(b)}xj(a)}function Hg(){var a=0,b=0;b=Aj(40);J[b>>2]=-1;a=b+8|0;J[a+16>>2]=0;J[a+20>>2]=0;J[a+8>>2]=0;J[a>>2]=0;J[a+4>>2]=0;J[a+24>>2]=0;J[a+28>>2]=0;return b|0}function rg(a){J[a+8>>2]=0;J[a+12>>2]=0;J[a>>2]=0;J[a+16>>2]=0;J[a+20>>2]=0;J[a+32>>2]=0;J[a+24>>2]=0;J[a+28>>2]=0;I[a+38>>1]=0;H[a+36|0]=0;return a}function Tj(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;if(Kj(a,J[b+8>>2],f)){Qj(b,c,d,e);return}a=J[a+8>>2];na[J[J[a>>2]+20>>2]](a,b,c,d,e,f)}function be(a,b,c){a=a|0;b=b|0;c=c|0;a:{if(K[J[a+4>>2]+36|0]>=2){b=0;if(!(na[J[J[a>>2]+52>>2]](a)|0)){break a}}b=_a(a+24|0,J[a+16>>2])}return b|0}function ae(a,b,c){a=a|0;b=b|0;c=c|0;var d=0;a:{if(K[J[a+4>>2]+36|0]<=1){d=0;if(!(na[J[J[a>>2]+52>>2]](a)|0)){break a}}d=pc(a,b,c)}return d|0}function ah(){var a=0;a=Mi(Aj(108));J[a+84>>2]=0;J[a+88>>2]=0;J[a>>2]=13712;J[a+92>>2]=0;J[a+96>>2]=0;J[a+100>>2]=0;J[a+104>>2]=0;return a|0}function Ni(a,b){var c=0;c=-1;a:{if((b|0)==-1|(b|0)>4){break a}b=P(b,12)+a|0;a=J[b+20>>2];if((J[b+24>>2]-a|0)<=0){break a}c=J[a>>2]}return c}function bb(a,b,c,d,e,f,g){J[a>>2]=0;J[a+56>>2]=b;J[a+48>>2]=0;J[a+52>>2]=0;J[a+40>>2]=f;J[a+44>>2]=g;H[a+32|0]=e;J[a+28>>2]=d;H[a+24|0]=c}function Cd(a,b,c){a=a|0;b=b|0;c=c|0;a:{if(K[J[a+4>>2]+36|0]>=2){b=0;if(!Fa(a+24|0,Yb(a),c)){break a}}b=_a(a+24|0,J[a+16>>2])}return b|0}function Bd(a,b,c){a=a|0;b=b|0;c=c|0;var d=0;a:{if(K[J[a+4>>2]+36|0]<=1){d=0;if(!Fa(a+24|0,J[a+8>>2],c)){break a}}d=pc(a,b,c)}return d|0}function xi(a){a=a|0;var b=0;J[a>>2]=13712;b=J[a+96>>2];if(b){J[a+100>>2]=b;xj(b)}b=J[a+84>>2];if(b){J[a+88>>2]=b;xj(b)}return yi(a)|0}function Hj(a){var b=0;if(K[a+11|0]>>>7|0){b=J[a+4>>2]}else{b=K[a+11|0]}if(!b){Cc(1255);C()}if(K[a+11|0]>>>7|0){a=J[a>>2]}return a}function zi(a){a=a|0;var b=0;J[a>>2]=13712;b=J[a+96>>2];if(b){J[a+100>>2]=b;xj(b)}b=J[a+84>>2];if(b){J[a+88>>2]=b;xj(b)}xj(yi(a))}function rd(a){a=a|0;var b=0;J[a>>2]=6080;b=J[a+76>>2];if(b){xj(b)}J[a>>2]=3320;b=J[a+32>>2];if(b){J[a+36>>2]=b;xj(b)}return a|0}function lg(a,b){if(b){lg(a,J[b>>2]);lg(a,J[b+4>>2]);a=J[b+28>>2];if(a){J[b+32>>2]=a;xj(a)}if(H[b+27|0]<0){xj(J[b+16>>2])}xj(b)}}function Vc(a){a=a|0;var b=0;J[a>>2]=4088;b=J[a+76>>2];if(b){xj(b)}J[a>>2]=3320;b=J[a+32>>2];if(b){J[a+36>>2]=b;xj(b)}return a|0}function sh(){var a=0;a=Aj(28);J[a>>2]=0;J[a+4>>2]=0;J[a+24>>2]=0;J[a+16>>2]=0;J[a+20>>2]=0;J[a+8>>2]=0;J[a+12>>2]=0;return a|0}function kb(a){a=a|0;var b=0;J[a>>2]=2032;b=J[a+16>>2];if(b){J[a+20>>2]=b;xj(b)}b=J[a+4>>2];if(b){J[a+8>>2]=b;xj(b)}return a|0}function ch(){var a=0,b=0;a=Aj(24);J[a+4>>2]=0;J[a+8>>2]=0;b=a+16|0;J[b>>2]=0;J[b+4>>2]=0;J[a>>2]=a+4;J[a+12>>2]=b;return a|0}function Pj(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;if(Kj(a,J[b+8>>2],0)){Nj(b,c,d);return}a=J[a+8>>2];na[J[J[a>>2]+28>>2]](a,b,c,d)}function sd(a){a=a|0;var b=0;J[a>>2]=6080;b=J[a+76>>2];if(b){xj(b)}J[a>>2]=3320;b=J[a+32>>2];if(b){J[a+36>>2]=b;xj(b)}xj(a)}function Wc(a){a=a|0;var b=0;J[a>>2]=4088;b=J[a+76>>2];if(b){xj(b)}J[a>>2]=3320;b=J[a+32>>2];if(b){J[a+36>>2]=b;xj(b)}xj(a)}function Aj(a){var b=0;a=a?a:1;a:{while(1){b=wj(a);if(b){break a}b=J[4436];if(b){na[b|0]();continue}break}fa();C()}return b}function pe(a,b){if(b){pe(a,J[b>>2]);pe(a,J[b+4>>2]);if(H[b+39|0]<0){xj(J[b+28>>2])}if(H[b+27|0]<0){xj(J[b+16>>2])}xj(b)}}function Zj(a){a=a|0;var b=0,c=0;J[a>>2]=15420;b=J[a+4>>2]-12|0;c=J[b+8>>2]-1|0;J[b+8>>2]=c;if((c|0)<0){xj(b)}return a|0}function Ug(){var a=0;a=Aj(24);J[a+8>>2]=0;J[a+12>>2]=0;J[a+4>>2]=-1;J[a>>2]=1880;J[a+16>>2]=0;J[a+20>>2]=0;return a|0}function Ub(a,b,c){a=a|0;b=b|0;c=c|0;J[a+4>>2]=b;b=J[J[J[b+4>>2]+8>>2]+(c<<2)>>2];J[a+12>>2]=c;J[a+8>>2]=b;return 1}function Qc(a){a=a|0;var b=0;if(!(!J[a+60>>2]|!J[a+44>>2]|(!J[a+48>>2]|!J[a+52>>2]))){b=J[a+56>>2]!=0}return b|0}function yf(a){a=a|0;var b=0;J[a>>2]=12172;b=J[a+36>>2];if(b){xj(b)}b=J[a+24>>2];if(b){xj(b)}return a|0}function ud(a){a=a|0;var b=0;J[a>>2]=6304;J[a>>2]=3320;b=J[a+32>>2];if(b){J[a+36>>2]=b;xj(b)}return a|0}function Jf(a){a=a|0;var b=0;J[a>>2]=12668;b=J[a+36>>2];if(b){xj(b)}b=J[a+24>>2];if(b){xj(b)}return a|0}function $c(a){a=a|0;var b=0;J[a>>2]=4324;J[a>>2]=3320;b=J[a+32>>2];if(b){J[a+36>>2]=b;xj(b)}return a|0}function ai(a){a=a|0;if(a){if(H[a+39|0]<0){xj(J[a+28>>2])}bi(a+12|0,J[a+16>>2]);pe(a,J[a+4>>2]);xj(a)}}function wc(a){a=a|0;var b=0;if(!(!J[a+52>>2]|(!J[a+44>>2]|!J[a+48>>2]))){b=J[a+56>>2]!=0}return b|0}function zf(a){a=a|0;var b=0;J[a>>2]=12172;b=J[a+36>>2];if(b){xj(b)}b=J[a+24>>2];if(b){xj(b)}xj(a)}function vd(a){a=a|0;var b=0;J[a>>2]=6304;J[a>>2]=3320;b=J[a+32>>2];if(b){J[a+36>>2]=b;xj(b)}xj(a)}function ad(a){a=a|0;var b=0;J[a>>2]=4324;J[a>>2]=3320;b=J[a+32>>2];if(b){J[a+36>>2]=b;xj(b)}xj(a)}function Rc(a,b){a=a|0;b=b|0;var c=0;if(!(J[b+56>>2]|!b|K[b+24|0]!=3)){J[a+60>>2]=b;c=1}return c|0}function Kf(a){a=a|0;var b=0;J[a>>2]=12668;b=J[a+36>>2];if(b){xj(b)}b=J[a+24>>2];if(b){xj(b)}xj(a)}function dd(a,b){a=a|0;b=b|0;var c=0;if(!(J[b+56>>2]|K[b+24|0]!=3)){J[a- -64>>2]=b;c=1}return c|0}function Gg(a,b,c){a=a|0;b=b|0;c=c|0;J[a+16>>2]=0;J[a+20>>2]=0;J[a>>2]=b;J[a+8>>2]=c;J[a+12>>2]=0}function Uj(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;if(Kj(a,J[b+8>>2],f)){Qj(b,c,d,e)}}function Id(a,b){a=a|0;b=b|0;var c=0;if(!(J[b+56>>2]|K[b+24|0]!=3)){J[a+48>>2]=b;c=1}return c|0}function Ib(a){var b=0;b=J[a+16>>2];if(b){J[a+20>>2]=b;xj(b)}b=J[a>>2];if(b){J[a+4>>2]=b;xj(b)}}function Za(){var a=0;a=$(4)|0;J[a>>2]=15308;J[a>>2]=15268;J[a>>2]=15288;aa(a|0,15400,14);C()}function ik(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;a=na[a|0](b,c,d,e)|0;ja=ma;return a|0}function Dc(a){a=a|0;var b=0;J[a>>2]=3320;b=J[a+32>>2];if(b){J[a+36>>2]=b;xj(b)}return a|0}function $b(a){a=a|0;var b=0;J[a>>2]=2280;b=J[a+16>>2];J[a+16>>2]=0;if(b){tb(b)}return a|0}function de(a){a=a|0;var b=0;b=Yb(a);return Ua(a+24|0,b?b:J[a+8>>2],J[J[a+4>>2]+32>>2])|0}function Va(a){a=a|0;var b=0;J[a>>2]=1880;b=J[a+8>>2];if(b){J[a+12>>2]=b;xj(b)}return a|0}function uc(a){a=a|0;var b=0;J[a>>2]=3320;b=J[a+32>>2];if(b){J[a+36>>2]=b;xj(b)}xj(a)}function ac(a){a=a|0;var b=0;J[a>>2]=2280;b=J[a+16>>2];J[a+16>>2]=0;if(b){tb(b)}xj(a)}function Wa(a){a=a|0;var b=0;J[a>>2]=1880;b=J[a+8>>2];if(b){J[a+12>>2]=b;xj(b)}xj(a)}function he(a){var b=0;J[a+16>>2]=0;b=J[a>>2];J[a+4>>2]=b;J[a+12>>2]=b;if(b){xj(b)}}function bi(a,b){if(b){bi(a,J[b>>2]);bi(a,J[b+4>>2]);pe(b+20|0,J[b+24>>2]);xj(b)}}function cj(a,b){var c=0;c=ia-16|0;ia=c;J[c+12>>2]=b;jj(15744,a,b,0,0);ia=c+16|0}function ze(a){a=a|0;if(!J[a+44>>2]){return 0}return na[J[J[a>>2]+48>>2]](a)|0}function Jg(a){a=a|0;var b=0;if(a){b=J[a+8>>2];if(b){J[a+12>>2]=b;xj(b)}xj(a)}}function mk(a){var b=0;while(1){if(a){a=a-1&a;b=b+1|0;continue}break}return b}function Oj(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;if(Kj(a,J[b+8>>2],0)){Nj(b,c,d)}}function Je(a,b){a=a|0;b=b|0;a=J[a+48>>2];return na[J[J[a>>2]+16>>2]](a,b)|0}function Ie(a,b){a=a|0;b=b|0;a=J[a+48>>2];return na[J[J[a>>2]+12>>2]](a,b)|0}function Be(a,b){a=a|0;b=b|0;a=J[a+48>>2];return na[J[J[a>>2]+20>>2]](a,b)|0}function kh(a){a=a|0;var b=0;if(a){b=J[a>>2];if(b){J[a+4>>2]=b;xj(b)}xj(a)}}function hh(){var a=0;a=Aj(12);J[a>>2]=0;J[a+4>>2]=0;J[a+8>>2]=0;return a|0}function nk(a){var b=0;b=a&31;a=0-a&31;return(-1>>>b&-2)<>>a}function hd(a,b){a=a|0;b=b|0;if(b>>>0<=1){J[a+28>>2]=b}return b>>>0<2|0}function gb(a,b,c){a=a|0;b=b|0;c=c|0;J[a+32>>2]=c;J[a+28>>2]=b;return 1}function dh(a){a=a|0;if(a){kg(a+12|0,J[a+16>>2]);lg(a,J[a+4>>2]);xj(a)}}function aj(a,b,c){a:{if(J[c+76>>2]<0){a=$i(a,b,c);break a}a=$i(a,b,c)}}function ag(a,b){a=a|0;b=b|0;H[b+84|0]=1;J[b+72>>2]=J[b+68>>2];return 1}function Zg(){var a=0;a=Aj(8);J[a+4>>2]=-1;J[a>>2]=1032;return a|0}function Hh(a,b,c){a=a|0;b=b|0;c=c|0;return J[J[b+8>>2]+(c<<2)>>2]}function He(a){a=a|0;a=J[a+48>>2];return na[J[J[a>>2]+36>>2]](a)|0}function Ee(a){a=a|0;a=J[a+48>>2];return na[J[J[a>>2]+28>>2]](a)|0}function De(a){a=a|0;a=J[a+48>>2];return na[J[J[a>>2]+24>>2]](a)|0}function ee(a,b){a=a|0;b=b|0;return Ra(a+24|0,Yb(a),J[a+8>>2])|0}function Dd(a,b){a=a|0;b=b|0;return Ca(a+24|0,Yb(a),J[a+8>>2])|0}function gh(a){a=a|0;if(a){if(H[a+15|0]<0){xj(J[a+4>>2])}xj(a)}}function ce(a,b){a=a|0;b=b|0;return na[J[J[a>>2]+56>>2]](a,b)|0}function Vj(a){a=a|0;if(!a){return 0}return(Mj(a,15116)|0)!=0|0}function Vg(a,b){a=a|0;b=b|0;return na[J[J[a>>2]+12>>2]](a,b)|0}function Vb(a,b){a=a|0;b=b|0;J[a+12>>2]=-1;J[a+8>>2]=b;return 1}function Ma(a){a=Bj($(8)|0,a);J[a>>2]=15468;aa(a|0,15500,1);C()}function Cc(a){a=Bj($(8)|0,a);J[a>>2]=15520;aa(a|0,15552,1);C()}function Wg(a,b){a=a|0;b=b|0;return Q(N[J[a+8>>2]+(b<<2)>>2])}function ih(a,b){a=a|0;b=b|0;return Q(N[J[a>>2]+(b<<2)>>2])}function ye(a){a=cg(a);J[a+44>>2]=0;J[a>>2]=11228;return a}function xa(){la=5260640;ka=17760;J[4306]=17112;J[4288]=42}function nb(a,b){a=a|0;b=b|0;return J[J[a+4>>2]+(b<<2)>>2]}function gj(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;ma=0;return 0}function fh(a){a=a|0;return(H[a+15|0]<0?J[a+4>>2]:a+4|0)|0}function bh(a){a=a|0;return(J[a+100>>2]-J[a+96>>2]|0)/12|0}function rh(a,b){a=a|0;b=b|0;return J[J[a>>2]+(b<<2)>>2]}function qh(a,b){a=a|0;b=b|0;return L[J[a>>2]+(b<<1)>>1]}function oh(a,b){a=a|0;b=b|0;return I[J[a>>2]+(b<<1)>>1]}function Eh(a,b,c){a=a|0;b=b|0;c=c|0;return Ni(b,c)|0}function ok(a){if(a){return 31-S(a-1^a)|0}return 32} +function Mi(a){J[a>>2]=13772;Xi(a+4|0,0,80);return a}function $g(a){a=a|0;return J[a+12>>2]-J[a+8>>2]>>2}function ob(a){a=a|0;return J[a+8>>2]-J[a+4>>2]>>2}function nh(a,b){a=a|0;b=b|0;return K[J[a>>2]+b|0]}function lh(a,b){a=a|0;b=b|0;return H[J[a>>2]+b|0]}function Yg(a){a=a|0;if(a){na[J[J[a>>2]+4>>2]](a)}}function Ke(a,b){a=a|0;b=b|0;J[a+4>>2]=b;return 1}function ph(a){a=a|0;return J[a+4>>2]-J[a>>2]>>1}function jh(a){a=a|0;return J[a+4>>2]-J[a>>2]>>2}function mh(a){a=a|0;return J[a+4>>2]-J[a>>2]|0}function dk(a){a=a|0;a=ia-a&-16;ia=a;return a|0}function lj(a,b,c){if(!(K[a|0]&32)){$i(b,c,a)}}function yh(a,b){a=a|0;b=b|0;return J[b+8>>2]}function tc(a){a=a|0;return K[J[a+8>>2]+24|0]}function Ya(a,b){a=a|0;b=b|0;return K[b+24|0]}function Xd(a){a=a|0;J[a>>2]=10080;return a|0}function Xb(a,b,c){a=a|0;b=b|0;c=c|0;return 1}function Jh(a,b){a=a|0;b=b|0;return J[b+4>>2]}function dj(a){a=a|0;return da(J[a+60>>2])|0}function Rd(a){a=a|0;J[a>>2]=9076;return a|0}function Nd(a){a=a|0;J[a>>2]=8128;return a|0}function Fd(a){a=a|0;J[a>>2]=7192;return a|0}function Xg(a){a=a|0;return Q(N[a+20>>2])}function Yd(a){a=a|0;J[a>>2]=10080;xj(a)}function Sd(a){a=a|0;J[a>>2]=9076;xj(a)}function Od(a){a=a|0;J[a>>2]=8128;xj(a)}function Gd(a){a=a|0;J[a>>2]=7192;xj(a)}function pb(a){a=a|0;return J[a+28>>2]}function Tg(a){a=a|0;return J[a+60>>2]}function Sg(a){a=a|0;return J[a+48>>2]}function Rg(a){a=a|0;return J[a+40>>2]}function Og(a){a=a|0;return J[a+56>>2]}function Ng(a){a=a|0;return J[a+88>>2]}function Mg(a){a=a|0;return J[a+80>>2]}function yc(a,b){a=a|0;b=b|0;return-1}function vc(a){a=a|0;return J[a+4>>2]}function rb(a,b){a=a|0;b=b|0;return 1}function qb(a,b){a=a|0;b=b|0;return 0}function jf(a){a=a|0;return J[a+8>>2]}function eh(a){a=a|0;return!J[a>>2]|0}function Qg(a){a=a|0;return K[a+32|0]}function Pg(a){a=a|0;return H[a+24|0]}function Ka(a,b){a=a|0;b=b|0;return 2}function Ja(a,b){a=a|0;b=b|0;return 6}function zj(a,b,c){if(c){Vi(a,b,c)}}function Ig(a){a=a|0;return J[a>>2]}function ek(){la=5260640;ka=17760}function _g(){return Mi(Aj(84))|0}function Kg(){return ab(Aj(64))|0}function Fg(){return rg(Aj(40))|0}function Eg(a){a=a|0;if(a){xj(a)}}function _j(a){a=a|0;Zj(a);xj(a)}function Yj(a){a=a|0;return 1234}function Xj(a){a=a|0;return 1272}function Wj(a){a=a|0;return 1190}function Ga(a){a=a|0;return a|0}function wf(a){a=a|0;xj(vf(a))}function uf(a){a=a|0;xj(tf(a))}function sf(a){a=a|0;xj(qf(a))}function Ri(a){a=a|0;xj(yi(a))}function Qb(a){a=a|0;xj(Pb(a))}function xc(a){a=a|0;return 0}function bd(a){a=a|0;return 6}function Xc(a){a=a|0;return 5}function Xa(a){a=a|0;return 1}function Pc(a){a=a|0;return 3}function Ia(a){a=a|0;return 2}function Hc(a){a=a|0;return 4}function fk(){return ia-ka|0}function fg(){Ma(1255);C()}function Yi(){return 16016}function La(){Ma(1183);C()}function Ha(a){a=a|0;xj(a)}function Bc(){Cc(1183);C()}function hk(){return ka|0}function gk(){return la|0}function ck(a){a=a|0;ia=a}function bk(){return ia|0}function ak(){return ja|0}function $j(a){a=a|0;ja=a}function lb(a){a=a|0;C()}function pi(){return 12}function oi(){return 11}function ni(){return 10}function ti(){return-5}function si(){return-4}function ri(){return-3}function qi(){return-2}function mi(){return 9}function li(){return 8}function ki(){return 7}function ji(){return 6}function ii(){return 5}function hi(){return 4}function gi(){return 3}function fi(){return 2}function ei(){return 1}function di(){return 0}function ci(){return-1}function Zi(a){a=a|0} // EMSCRIPTEN_END_FUNCS -e=G;p(sa);var ja=c([null,Pj,Da,Ea,Fa,va,wa,xa,za,Aa,Ca,Ya,Ga,Ha,Da,Sa,Ta,Ua,Ka,Ma,Na,Oa,Qa,Ra,Ga,Va,hb,ib,db,eb,jb,kb,lb,mb,nb,zj,ob,Ua,Mb,Nb,pb,Ib,Kb,Yb,Zb,Rb,Sb,Tb,Ub,ob,Wb,Xb,gc,hc,$b,bc,ic,cc,dc,ec,fc,oc,pc,Rb,jc,kc,mc,lc,qc,nc,Ac,rc,Ua,sc,tc,uc,vc,nb,uc,Ua,wc,xc,ib,ib,rc,Fa,tc,Bc,Cc,Dc,Ec,tc,Fc,Ic,Kc,Lc,Mc,Nc,Ua,nb,Oc,Pc,Qc,Sc,Tc,Uc,Nc,Ua,nb,Oc,Vc,Wc,Yc,Zc,_c,$c,Ua,nb,ad,bd,cd,Da,Ea,ed,mb,dd,ib,rc,Ua,tc,fd,ib,rc,Fa,tc,gd,hd,id,Ec,tc,jd,kd,ld,md,Mc,Nc,Ua,nb,Oc,Pc,nd,od,pd,Uc,Nc,Ua,nb,Oc,Vc,qd,rd,sd,_c,$c,Ua,nb,ad,bd,td,Da,Ea,ed,mb,ud,ib,rc,uc,Ua,wd,oc,pc,xd,zd,yd,Bd,Fa,Ad,Cd,Dd,_c,sc,Ed,Ua,nb,Fd,Ua,Fa,Gd,Hd,Da,Ea,ed,mb,dd,Kd,Ld,_c,Ed,Ua,nb,Fd,Gd,Md,Da,Ea,ed,mb,ud,Da,Ea,uc,Ua,uc,vc,nb,Jd,Nd,Od,Pd,_c,sc,Ed,Ua,nb,Fd,Ua,Mc,Qd,Rd,Da,Ea,ed,mb,dd,Ud,Vd,_c,Ed,Ua,nb,Fd,Qd,Wd,Da,Ea,ed,mb,ud,Ea,uc,Ua,uc,vc,nb,Td,Xd,ce,de,Yd,_d,Zd,$d,ae,be,xe,ib,Ua,Ua,we,eg,fg,Ua,uc,nb,nb,Ce,De,ze,ye,Be,Ee,Fe,Ge,Ae,mf,of,He,Ie,Je,Ke,Pe,Ua,sc,ef,pf,qf,He,Ie,Je,Ke,gf,Ua,sc,ef,rf,sf,He,Ie,Je,Ke,kf,Ua,sc,ef,Me,tf,Le,uf,vf,yf,zf,Af,Bf,xf,Ef,wf,Ff,Gf,If,Jf,Kf,Lf,Hf,Nf,Of,Pf,Qf,Rf,Xf,Wf,Tf,Da,Ea,Yf,Zf,ib,uc,Ua,Xf,jg,ig,Xf,Wf,kg,ti,vi,wi,xi,ui,Ni,Li,Mi,$i,aj,bj,uc,cj,Da,Ea,Vi,Vi,Bj,Kj,Ij,Ej,Ea,Jj,Hj,Fj,Ea,Nj,Ea,Oj,Ea,Mj,Qj,sc,Qj,Qj]);function ka(){return C.byteLength/65536|0}function pa(qa){qa=qa|0;var la=ka()|0;var ma=la+qa|0;if(la=endIdx))++endPtr;if(endPtr-idx>16&&heapOrArray.buffer&&UTF8Decoder){return UTF8Decoder.decode(heapOrArray.subarray(idx,endPtr))}else{var str="";while(idx>10,56320|ch&1023)}}}return str}function UTF8ToString(ptr,maxBytesToRead){return ptr?UTF8ArrayToString(HEAPU8,ptr,maxBytesToRead):""}function stringToUTF8Array(str,heap,outIdx,maxBytesToWrite){if(!(maxBytesToWrite>0))return 0;var startIdx=outIdx;var endIdx=outIdx+maxBytesToWrite-1;for(var i=0;i=55296&&u<=57343){var u1=str.charCodeAt(++i);u=65536+((u&1023)<<10)|u1&1023}if(u<=127){if(outIdx>=endIdx)break;heap[outIdx++]=u}else if(u<=2047){if(outIdx+1>=endIdx)break;heap[outIdx++]=192|u>>6;heap[outIdx++]=128|u&63}else if(u<=65535){if(outIdx+2>=endIdx)break;heap[outIdx++]=224|u>>12;heap[outIdx++]=128|u>>6&63;heap[outIdx++]=128|u&63}else{if(outIdx+3>=endIdx)break;if(u>1114111)warnOnce("Invalid Unicode code point 0x"+u.toString(16)+" encountered when serializing a JS string to a UTF-8 string in wasm memory! (Valid unicode code points should be in range 0-0x10FFFF).");heap[outIdx++]=240|u>>18;heap[outIdx++]=128|u>>12&63;heap[outIdx++]=128|u>>6&63;heap[outIdx++]=128|u&63}}heap[outIdx]=0;return outIdx-startIdx}function stringToUTF8(str,outPtr,maxBytesToWrite){assert(typeof maxBytesToWrite=="number","stringToUTF8(str, outPtr, maxBytesToWrite) is missing the third parameter that specifies the length of the output buffer!");return stringToUTF8Array(str,HEAPU8,outPtr,maxBytesToWrite)}function lengthBytesUTF8(str){var len=0;for(var i=0;i=55296&&u<=57343)u=65536+((u&1023)<<10)|str.charCodeAt(++i)&1023;if(u<=127)++len;else if(u<=2047)len+=2;else if(u<=65535)len+=3;else len+=4}return len}var UTF16Decoder=typeof TextDecoder!="undefined"?new TextDecoder("utf-16le"):undefined;function writeArrayToMemory(array,buffer){assert(array.length>=0,"writeArrayToMemory array must have a length (should be an array or typed array)");HEAP8.set(array,buffer)}function writeAsciiToMemory(str,buffer,dontAddNull){for(var i=0;i>0]=str.charCodeAt(i)}if(!dontAddNull)HEAP8[buffer>>0]=0}var buffer,HEAP8,HEAPU8,HEAP16,HEAPU16,HEAP32,HEAPU32,HEAPF32,HEAPF64;function updateGlobalBufferAndViews(buf){buffer=buf;Module["HEAP8"]=HEAP8=new Int8Array(buf);Module["HEAP16"]=HEAP16=new Int16Array(buf);Module["HEAP32"]=HEAP32=new Int32Array(buf);Module["HEAPU8"]=HEAPU8=new Uint8Array(buf);Module["HEAPU16"]=HEAPU16=new Uint16Array(buf);Module["HEAPU32"]=HEAPU32=new Uint32Array(buf);Module["HEAPF32"]=HEAPF32=new Float32Array(buf);Module["HEAPF64"]=HEAPF64=new Float64Array(buf)}var TOTAL_STACK=5242880;if(Module["TOTAL_STACK"])assert(TOTAL_STACK===Module["TOTAL_STACK"],"the stack size can no longer be determined at runtime");var INITIAL_MEMORY=Module["INITIAL_MEMORY"]||16777216;legacyModuleProp("INITIAL_MEMORY","INITIAL_MEMORY");assert(INITIAL_MEMORY>=TOTAL_STACK,"INITIAL_MEMORY should be larger than TOTAL_STACK, was "+INITIAL_MEMORY+"! (TOTAL_STACK="+TOTAL_STACK+")");assert(typeof Int32Array!="undefined"&&typeof Float64Array!=="undefined"&&Int32Array.prototype.subarray!=undefined&&Int32Array.prototype.set!=undefined,"JS engine does not provide full typed array support");if(Module["wasmMemory"]){wasmMemory=Module["wasmMemory"]}else{wasmMemory=new WebAssembly.Memory({"initial":INITIAL_MEMORY/65536,"maximum":2147483648/65536})}if(wasmMemory){buffer=wasmMemory.buffer}INITIAL_MEMORY=buffer.byteLength;assert(INITIAL_MEMORY%65536===0);updateGlobalBufferAndViews(buffer);var wasmTable;function writeStackCookie(){var max=_emscripten_stack_get_end();assert((max&3)==0);HEAP32[max>>2]=34821223;HEAP32[max+4>>2]=2310721022;HEAPU32[0]=1668509029}function checkStackCookie(){if(ABORT)return;var max=_emscripten_stack_get_end();var cookie1=HEAPU32[max>>2];var cookie2=HEAPU32[max+4>>2];if(cookie1!=34821223||cookie2!=2310721022){abort("Stack overflow! Stack cookie has been overwritten at 0x"+max.toString(16)+", expected hex dwords 0x89BACDFE and 0x2135467, but received 0x"+cookie2.toString(16)+" 0x"+cookie1.toString(16))}if(HEAPU32[0]!==1668509029)abort("Runtime error: The application has corrupted its heap memory area (address zero)!")}(function(){var h16=new Int16Array(1);var h8=new Int8Array(h16.buffer);h16[0]=25459;if(h8[0]!==115||h8[1]!==99)throw"Runtime error: expected the system to be little-endian! (Run with -sSUPPORT_BIG_ENDIAN to bypass)"})();var __ATPRERUN__=[];var __ATINIT__=[];var __ATPOSTRUN__=[];var runtimeInitialized=false;function keepRuntimeAlive(){return noExitRuntime}function preRun(){if(Module["preRun"]){if(typeof Module["preRun"]=="function")Module["preRun"]=[Module["preRun"]];while(Module["preRun"].length){addOnPreRun(Module["preRun"].shift())}}callRuntimeCallbacks(__ATPRERUN__)}function initRuntime(){assert(!runtimeInitialized);runtimeInitialized=true;checkStackCookie();callRuntimeCallbacks(__ATINIT__)}function postRun(){checkStackCookie();if(Module["postRun"]){if(typeof Module["postRun"]=="function")Module["postRun"]=[Module["postRun"]];while(Module["postRun"].length){addOnPostRun(Module["postRun"].shift())}}callRuntimeCallbacks(__ATPOSTRUN__)}function addOnPreRun(cb){__ATPRERUN__.unshift(cb)}function addOnInit(cb){__ATINIT__.unshift(cb)}function addOnPostRun(cb){__ATPOSTRUN__.unshift(cb)}assert(Math.imul,"This browser does not support Math.imul(), build with LEGACY_VM_SUPPORT or POLYFILL_OLD_MATH_FUNCTIONS to add in a polyfill");assert(Math.fround,"This browser does not support Math.fround(), build with LEGACY_VM_SUPPORT or POLYFILL_OLD_MATH_FUNCTIONS to add in a polyfill");assert(Math.clz32,"This browser does not support Math.clz32(), build with LEGACY_VM_SUPPORT or POLYFILL_OLD_MATH_FUNCTIONS to add in a polyfill");assert(Math.trunc,"This browser does not support Math.trunc(), build with LEGACY_VM_SUPPORT or POLYFILL_OLD_MATH_FUNCTIONS to add in a polyfill");var runDependencies=0;var runDependencyWatcher=null;var dependenciesFulfilled=null;var runDependencyTracking={};function addRunDependency(id){runDependencies++;if(Module["monitorRunDependencies"]){Module["monitorRunDependencies"](runDependencies)}if(id){assert(!runDependencyTracking[id]);runDependencyTracking[id]=1;if(runDependencyWatcher===null&&typeof setInterval!="undefined"){runDependencyWatcher=setInterval(function(){if(ABORT){clearInterval(runDependencyWatcher);runDependencyWatcher=null;return}var shown=false;for(var dep in runDependencyTracking){if(!shown){shown=true;err("still waiting on run dependencies:")}err("dependency: "+dep)}if(shown){err("(end of list)")}},1e4)}}else{err("warning: run dependency added without ID")}}function removeRunDependency(id){runDependencies--;if(Module["monitorRunDependencies"]){Module["monitorRunDependencies"](runDependencies)}if(id){assert(runDependencyTracking[id]);delete runDependencyTracking[id]}else{err("warning: run dependency removed without ID")}if(runDependencies==0){if(runDependencyWatcher!==null){clearInterval(runDependencyWatcher);runDependencyWatcher=null}if(dependenciesFulfilled){var callback=dependenciesFulfilled;dependenciesFulfilled=null;callback()}}}function abort(what){{if(Module["onAbort"]){Module["onAbort"](what)}}what="Aborted("+what+")";err(what);ABORT=true;EXITSTATUS=1;var e=new WebAssembly.RuntimeError(what);readyPromiseReject(e);throw e}var FS={error:function(){abort("Filesystem support (FS) was not included. The problem is that you are using files from JS, but files were not used from C/C++, so filesystem support was not auto-included. You can force-include filesystem support with -sFORCE_FILESYSTEM")},init:function(){FS.error()},createDataFile:function(){FS.error()},createPreloadedFile:function(){FS.error()},createLazyFile:function(){FS.error()},open:function(){FS.error()},mkdev:function(){FS.error()},registerDevice:function(){FS.error()},analyzePath:function(){FS.error()},loadFilesFromDB:function(){FS.error()},ErrnoError:function ErrnoError(){FS.error()}};Module["FS_createDataFile"]=FS.createDataFile;Module["FS_createPreloadedFile"]=FS.createPreloadedFile;var dataURIPrefix="data:application/octet-stream;base64,";function isDataURI(filename){return filename.startsWith(dataURIPrefix)}function isFileURI(filename){return filename.startsWith("file://")}function createExportWrapper(name,fixedasm){return function(){var displayName=name;var asm=fixedasm;if(!fixedasm){asm=Module["asm"]}assert(runtimeInitialized,"native function `"+displayName+"` called before runtime initialization");if(!asm[name]){assert(asm[name],"exported native function `"+displayName+"` not found")}return asm[name].apply(null,arguments)}}var wasmBinaryFile;wasmBinaryFile="draco_decoder.wasm";if(!isDataURI(wasmBinaryFile)){wasmBinaryFile=locateFile(wasmBinaryFile)}function getBinary(file){try{if(file==wasmBinaryFile&&wasmBinary){return new Uint8Array(wasmBinary)}var binary=tryParseAsDataURI(file);if(binary){return binary}if(readBinary){return readBinary(file)}else{throw"both async and sync fetching of the wasm failed"}}catch(err){abort(err)}}function getBinaryPromise(){if(!wasmBinary&&(ENVIRONMENT_IS_WEB||ENVIRONMENT_IS_WORKER)){if(typeof fetch=="function"&&!isFileURI(wasmBinaryFile)){return fetch(wasmBinaryFile,{credentials:"same-origin"}).then(function(response){if(!response["ok"]){throw"failed to load wasm binary file at '"+wasmBinaryFile+"'"}return response["arrayBuffer"]()}).catch(function(){return getBinary(wasmBinaryFile)})}else{if(readAsync){return new Promise(function(resolve,reject){readAsync(wasmBinaryFile,function(response){resolve(new Uint8Array(response))},reject)})}}}return Promise.resolve().then(function(){return getBinary(wasmBinaryFile)})}function createWasm(){var info={"env":asmLibraryArg,"wasi_snapshot_preview1":asmLibraryArg};function receiveInstance(instance,module){var exports=instance.exports;Module["asm"]=exports;wasmTable=Module["asm"]["__indirect_function_table"];assert(wasmTable,"table not found in wasm exports");addOnInit(Module["asm"]["__wasm_call_ctors"]);removeRunDependency("wasm-instantiate")}addRunDependency("wasm-instantiate");var trueModule=Module;function receiveInstantiationResult(result){assert(Module===trueModule,"the Module object should not be replaced during async compilation - perhaps the order of HTML elements is wrong?");trueModule=null;receiveInstance(result["instance"])}function instantiateArrayBuffer(receiver){return getBinaryPromise().then(function(binary){return WebAssembly.instantiate(binary,info)}).then(function(instance){return instance}).then(receiver,function(reason){err("failed to asynchronously prepare wasm: "+reason);if(isFileURI(wasmBinaryFile)){err("warning: Loading from a file URI ("+wasmBinaryFile+") is not supported in most browsers. See https://emscripten.org/docs/getting_started/FAQ.html#how-do-i-run-a-local-webserver-for-testing-why-does-my-program-stall-in-downloading-or-preparing")}abort(reason)})}function instantiateAsync(){if(!wasmBinary&&typeof WebAssembly.instantiateStreaming=="function"&&!isDataURI(wasmBinaryFile)&&!isFileURI(wasmBinaryFile)&&!ENVIRONMENT_IS_NODE&&typeof fetch=="function"){return fetch(wasmBinaryFile,{credentials:"same-origin"}).then(function(response){var result=WebAssembly.instantiateStreaming(response,info);return result.then(receiveInstantiationResult,function(reason){err("wasm streaming compile failed: "+reason);err("falling back to ArrayBuffer instantiation");return instantiateArrayBuffer(receiveInstantiationResult)})})}else{return instantiateArrayBuffer(receiveInstantiationResult)}}if(Module["instantiateWasm"]){try{var exports=Module["instantiateWasm"](info,receiveInstance);return exports}catch(e){err("Module.instantiateWasm callback failed with error: "+e);return false}}instantiateAsync().catch(readyPromiseReject);return{}}var tempDouble;var tempI64;function array_bounds_check_error(idx,size){throw"Array index "+idx+" out of bounds: [0,"+size+")"}function callRuntimeCallbacks(callbacks){while(callbacks.length>0){var callback=callbacks.shift();if(typeof callback=="function"){callback(Module);continue}var func=callback.func;if(typeof func=="number"){if(callback.arg===undefined){getWasmTableEntry(func)()}else{getWasmTableEntry(func)(callback.arg)}}else{func(callback.arg===undefined?null:callback.arg)}}}function demangle(func){warnOnce("warning: build with -sDEMANGLE_SUPPORT to link in libcxxabi demangling");return func}function demangleAll(text){var regex=/\b_Z[\w\d_]+/g;return text.replace(regex,function(x){var y=demangle(x);return x===y?x:y+" ["+x+"]"})}var wasmTableMirror=[];function getWasmTableEntry(funcPtr){var func=wasmTableMirror[funcPtr];if(!func){if(funcPtr>=wasmTableMirror.length)wasmTableMirror.length=funcPtr+1;wasmTableMirror[funcPtr]=func=wasmTable.get(funcPtr)}assert(wasmTable.get(funcPtr)==func,"JavaScript-side Wasm function table mirror is out of date!");return func}function jsStackTrace(){var error=new Error;if(!error.stack){try{throw new Error}catch(e){error=e}if(!error.stack){return"(no stack trace available)"}}return error.stack.toString()}function setWasmTableEntry(idx,func){wasmTable.set(idx,func);wasmTableMirror[idx]=wasmTable.get(idx)}function ___cxa_allocate_exception(size){return _malloc(size+24)+24}function ExceptionInfo(excPtr){this.excPtr=excPtr;this.ptr=excPtr-24;this.set_type=function(type){HEAPU32[this.ptr+4>>2]=type};this.get_type=function(){return HEAPU32[this.ptr+4>>2]};this.set_destructor=function(destructor){HEAPU32[this.ptr+8>>2]=destructor};this.get_destructor=function(){return HEAPU32[this.ptr+8>>2]};this.set_refcount=function(refcount){HEAP32[this.ptr>>2]=refcount};this.set_caught=function(caught){caught=caught?1:0;HEAP8[this.ptr+12>>0]=caught};this.get_caught=function(){return HEAP8[this.ptr+12>>0]!=0};this.set_rethrown=function(rethrown){rethrown=rethrown?1:0;HEAP8[this.ptr+13>>0]=rethrown};this.get_rethrown=function(){return HEAP8[this.ptr+13>>0]!=0};this.init=function(type,destructor){this.set_adjusted_ptr(0);this.set_type(type);this.set_destructor(destructor);this.set_refcount(0);this.set_caught(false);this.set_rethrown(false)};this.add_ref=function(){var value=HEAP32[this.ptr>>2];HEAP32[this.ptr>>2]=value+1};this.release_ref=function(){var prev=HEAP32[this.ptr>>2];HEAP32[this.ptr>>2]=prev-1;assert(prev>0);return prev===1};this.set_adjusted_ptr=function(adjustedPtr){HEAPU32[this.ptr+16>>2]=adjustedPtr};this.get_adjusted_ptr=function(){return HEAPU32[this.ptr+16>>2]};this.get_exception_ptr=function(){var isPointer=___cxa_is_pointer_type(this.get_type());if(isPointer){return HEAPU32[this.excPtr>>2]}var adjusted=this.get_adjusted_ptr();if(adjusted!==0)return adjusted;return this.excPtr}}var exceptionLast=0;var uncaughtExceptionCount=0;function ___cxa_throw(ptr,type,destructor){var info=new ExceptionInfo(ptr);info.init(type,destructor);exceptionLast=ptr;uncaughtExceptionCount++;throw ptr+" - Exception catching is disabled, this exception cannot be caught. Compile with -sNO_DISABLE_EXCEPTION_CATCHING or -sEXCEPTION_CATCHING_ALLOWED=[..] to catch."}function _abort(){abort("native code called abort()")}function _emscripten_memcpy_big(dest,src,num){HEAPU8.copyWithin(dest,src,src+num)}function getHeapMax(){return 2147483648}function emscripten_realloc_buffer(size){try{wasmMemory.grow(size-buffer.byteLength+65535>>>16);updateGlobalBufferAndViews(wasmMemory.buffer);return 1}catch(e){err("emscripten_realloc_buffer: Attempted to grow heap from "+buffer.byteLength+" bytes to "+size+" bytes, but got error: "+e)}}function _emscripten_resize_heap(requestedSize){var oldSize=HEAPU8.length;requestedSize=requestedSize>>>0;assert(requestedSize>oldSize);var maxHeapSize=getHeapMax();if(requestedSize>maxHeapSize){err("Cannot enlarge memory, asked to go up to "+requestedSize+" bytes, but the limit is "+maxHeapSize+" bytes!");return false}let alignUp=(x,multiple)=>x+(multiple-x%multiple)%multiple;for(var cutDown=1;cutDown<=4;cutDown*=2){var overGrownHeapSize=oldSize*(1+.2/cutDown);overGrownHeapSize=Math.min(overGrownHeapSize,requestedSize+100663296);var newSize=Math.min(maxHeapSize,alignUp(Math.max(requestedSize,overGrownHeapSize),65536));var replacement=emscripten_realloc_buffer(newSize);if(replacement){err("Warning: Enlarging memory arrays, this is not fast! "+[oldSize,newSize]);return true}}err("Failed to grow the heap from "+oldSize+" bytes to "+newSize+" bytes, not enough memory!");return false}var SYSCALLS={varargs:undefined,get:function(){assert(SYSCALLS.varargs!=undefined);SYSCALLS.varargs+=4;var ret=HEAP32[SYSCALLS.varargs-4>>2];return ret},getStr:function(ptr){var ret=UTF8ToString(ptr);return ret}};function _fd_close(fd){abort("fd_close called without SYSCALLS_REQUIRE_FILESYSTEM")}function _fd_seek(fd,offset_low,offset_high,whence,newOffset){return 70}var printCharBuffers=[null,[],[]];function printChar(stream,curr){var buffer=printCharBuffers[stream];assert(buffer);if(curr===0||curr===10){(stream===1?out:err)(UTF8ArrayToString(buffer,0));buffer.length=0}else{buffer.push(curr)}}function flush_NO_FILESYSTEM(){_fflush(0);if(printCharBuffers[1].length)printChar(1,10);if(printCharBuffers[2].length)printChar(2,10)}function _fd_write(fd,iov,iovcnt,pnum){var num=0;for(var i=0;i>2];var len=HEAPU32[iov+4>>2];iov+=8;for(var j=0;j>2]=num;return 0}var ASSERTIONS=true;function intArrayFromString(stringy,dontAddNull,length){var len=length>0?length:lengthBytesUTF8(stringy)+1;var u8array=new Array(len);var numBytesWritten=stringToUTF8Array(stringy,u8array,0,u8array.length);if(dontAddNull)u8array.length=numBytesWritten;return u8array}function intArrayToString(array){var ret=[];for(var i=0;i255){if(ASSERTIONS){assert(false,"Character code "+chr+" ("+String.fromCharCode(chr)+") at offset "+i+" not in 0x00-0xFF.")}chr&=255}ret.push(String.fromCharCode(chr))}return ret.join("")}var decodeBase64=typeof atob=="function"?atob:function(input){var keyStr="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=";var output="";var chr1,chr2,chr3;var enc1,enc2,enc3,enc4;var i=0;input=input.replace(/[^A-Za-z0-9\+\/\=]/g,"");do{enc1=keyStr.indexOf(input.charAt(i++));enc2=keyStr.indexOf(input.charAt(i++));enc3=keyStr.indexOf(input.charAt(i++));enc4=keyStr.indexOf(input.charAt(i++));chr1=enc1<<2|enc2>>4;chr2=(enc2&15)<<4|enc3>>2;chr3=(enc3&3)<<6|enc4;output=output+String.fromCharCode(chr1);if(enc3!==64){output=output+String.fromCharCode(chr2)}if(enc4!==64){output=output+String.fromCharCode(chr3)}}while(i0){return}stackCheckInit();preRun();if(runDependencies>0){return}function doRun(){if(calledRun)return;calledRun=true;Module["calledRun"]=true;if(ABORT)return;initRuntime();readyPromiseResolve(Module);if(Module["onRuntimeInitialized"])Module["onRuntimeInitialized"]();assert(!Module["_main"],'compiled without a main, but one is present. if you added it from JS, use Module["onRuntimeInitialized"]');postRun()}if(Module["setStatus"]){Module["setStatus"]("Running...");setTimeout(function(){setTimeout(function(){Module["setStatus"]("")},1);doRun()},1)}else{doRun()}checkStackCookie()}Module["run"]=run;function checkUnflushedContent(){var oldOut=out;var oldErr=err;var has=false;out=err=x=>{has=true};try{flush_NO_FILESYSTEM()}catch(e){}out=oldOut;err=oldErr;if(has){warnOnce("stdio streams had content in them that was not flushed. you should set EXIT_RUNTIME to 1 (see the FAQ), or make sure to emit a newline when you printf etc.");warnOnce("(this may also be due to not including full filesystem support - try building with -sFORCE_FILESYSTEM)")}}function procExit(code){EXITSTATUS=code;if(!keepRuntimeAlive()){if(Module["onExit"])Module["onExit"](code);ABORT=true}quit_(code,new ExitStatus(code))}if(Module["preInit"]){if(typeof Module["preInit"]=="function")Module["preInit"]=[Module["preInit"]];while(Module["preInit"].length>0){Module["preInit"].pop()()}}run();function WrapperObject(){}WrapperObject.prototype=Object.create(WrapperObject.prototype);WrapperObject.prototype.constructor=WrapperObject;WrapperObject.prototype.__class__=WrapperObject;WrapperObject.__cache__={};Module["WrapperObject"]=WrapperObject;function getCache(__class__){return(__class__||WrapperObject).__cache__}Module["getCache"]=getCache;function wrapPointer(ptr,__class__){var cache=getCache(__class__);var ret=cache[ptr];if(ret)return ret;ret=Object.create((__class__||WrapperObject).prototype);ret.ptr=ptr;return cache[ptr]=ret}Module["wrapPointer"]=wrapPointer;function castObject(obj,__class__){return wrapPointer(obj.ptr,__class__)}Module["castObject"]=castObject;Module["NULL"]=wrapPointer(0);function destroy(obj){if(!obj["__destroy__"])throw"Error: Cannot destroy object. (Did you create it yourself?)";obj["__destroy__"]();delete getCache(obj.__class__)[obj.ptr]}Module["destroy"]=destroy;function compare(obj1,obj2){return obj1.ptr===obj2.ptr}Module["compare"]=compare;function getPointer(obj){return obj.ptr}Module["getPointer"]=getPointer;function getClass(obj){return obj.__class__}Module["getClass"]=getClass;var ensureCache={buffer:0,size:0,pos:0,temps:[],needed:0,prepare:function(){if(ensureCache.needed){for(var i=0;i=ensureCache.size){assert(len>0);ensureCache.needed+=len;ret=Module["_malloc"](len);ensureCache.temps.push(ret)}else{ret=ensureCache.buffer+ensureCache.pos;ensureCache.pos+=len}return ret},copy:function(array,view,offset){offset>>>=0;var bytes=view.BYTES_PER_ELEMENT;switch(bytes){case 2:offset>>>=1;break;case 4:offset>>>=2;break;case 8:offset>>>=3;break}for(var i=0;i=endIdx))++endPtr;if(endPtr-idx>16&&heapOrArray.buffer&&UTF8Decoder){return UTF8Decoder.decode(heapOrArray.subarray(idx,endPtr))}var str="";while(idx>10,56320|ch&1023)}}return str}function UTF8ToString(ptr,maxBytesToRead){return ptr?UTF8ArrayToString(HEAPU8,ptr,maxBytesToRead):""}function stringToUTF8Array(str,heap,outIdx,maxBytesToWrite){if(!(maxBytesToWrite>0))return 0;var startIdx=outIdx;var endIdx=outIdx+maxBytesToWrite-1;for(var i=0;i=55296&&u<=57343){var u1=str.charCodeAt(++i);u=65536+((u&1023)<<10)|u1&1023}if(u<=127){if(outIdx>=endIdx)break;heap[outIdx++]=u}else if(u<=2047){if(outIdx+1>=endIdx)break;heap[outIdx++]=192|u>>6;heap[outIdx++]=128|u&63}else if(u<=65535){if(outIdx+2>=endIdx)break;heap[outIdx++]=224|u>>12;heap[outIdx++]=128|u>>6&63;heap[outIdx++]=128|u&63}else{if(outIdx+3>=endIdx)break;if(u>1114111)warnOnce("Invalid Unicode code point 0x"+u.toString(16)+" encountered when serializing a JS string to a UTF-8 string in wasm memory! (Valid unicode code points should be in range 0-0x10FFFF).");heap[outIdx++]=240|u>>18;heap[outIdx++]=128|u>>12&63;heap[outIdx++]=128|u>>6&63;heap[outIdx++]=128|u&63}}heap[outIdx]=0;return outIdx-startIdx}function lengthBytesUTF8(str){var len=0;for(var i=0;i=55296&&c<=57343){len+=4;++i}else{len+=3}}return len}var buffer,HEAP8,HEAPU8,HEAP16,HEAPU16,HEAP32,HEAPU32,HEAPF32,HEAPF64;function updateGlobalBufferAndViews(buf){buffer=buf;Module["HEAP8"]=HEAP8=new Int8Array(buf);Module["HEAP16"]=HEAP16=new Int16Array(buf);Module["HEAP32"]=HEAP32=new Int32Array(buf);Module["HEAPU8"]=HEAPU8=new Uint8Array(buf);Module["HEAPU16"]=HEAPU16=new Uint16Array(buf);Module["HEAPU32"]=HEAPU32=new Uint32Array(buf);Module["HEAPF32"]=HEAPF32=new Float32Array(buf);Module["HEAPF64"]=HEAPF64=new Float64Array(buf)}var TOTAL_STACK=5242880;if(Module["TOTAL_STACK"])assert(TOTAL_STACK===Module["TOTAL_STACK"],"the stack size can no longer be determined at runtime");var INITIAL_MEMORY=Module["INITIAL_MEMORY"]||16777216;legacyModuleProp("INITIAL_MEMORY","INITIAL_MEMORY");assert(INITIAL_MEMORY>=TOTAL_STACK,"INITIAL_MEMORY should be larger than TOTAL_STACK, was "+INITIAL_MEMORY+"! (TOTAL_STACK="+TOTAL_STACK+")");assert(typeof Int32Array!="undefined"&&typeof Float64Array!=="undefined"&&Int32Array.prototype.subarray!=undefined&&Int32Array.prototype.set!=undefined,"JS engine does not provide full typed array support");if(Module["wasmMemory"]){wasmMemory=Module["wasmMemory"]}else{wasmMemory=new WebAssembly.Memory({"initial":INITIAL_MEMORY/65536,"maximum":2147483648/65536})}if(wasmMemory){buffer=wasmMemory.buffer}INITIAL_MEMORY=buffer.byteLength;assert(INITIAL_MEMORY%65536===0);updateGlobalBufferAndViews(buffer);var wasmTable;function writeStackCookie(){var max=_emscripten_stack_get_end();assert((max&3)==0);HEAPU32[max>>2]=34821223;HEAPU32[max+4>>2]=2310721022;HEAPU32[0]=1668509029}function checkStackCookie(){if(ABORT)return;var max=_emscripten_stack_get_end();var cookie1=HEAPU32[max>>2];var cookie2=HEAPU32[max+4>>2];if(cookie1!=34821223||cookie2!=2310721022){abort("Stack overflow! Stack cookie has been overwritten at 0x"+max.toString(16)+", expected hex dwords 0x89BACDFE and 0x2135467, but received 0x"+cookie2.toString(16)+" 0x"+cookie1.toString(16))}if(HEAPU32[0]!==1668509029)abort("Runtime error: The application has corrupted its heap memory area (address zero)!")}(function(){var h16=new Int16Array(1);var h8=new Int8Array(h16.buffer);h16[0]=25459;if(h8[0]!==115||h8[1]!==99)throw"Runtime error: expected the system to be little-endian! (Run with -sSUPPORT_BIG_ENDIAN to bypass)"})();var __ATPRERUN__=[];var __ATINIT__=[];var __ATPOSTRUN__=[];var runtimeInitialized=false;function keepRuntimeAlive(){return noExitRuntime}function preRun(){if(Module["preRun"]){if(typeof Module["preRun"]=="function")Module["preRun"]=[Module["preRun"]];while(Module["preRun"].length){addOnPreRun(Module["preRun"].shift())}}callRuntimeCallbacks(__ATPRERUN__)}function initRuntime(){assert(!runtimeInitialized);runtimeInitialized=true;checkStackCookie();callRuntimeCallbacks(__ATINIT__)}function postRun(){checkStackCookie();if(Module["postRun"]){if(typeof Module["postRun"]=="function")Module["postRun"]=[Module["postRun"]];while(Module["postRun"].length){addOnPostRun(Module["postRun"].shift())}}callRuntimeCallbacks(__ATPOSTRUN__)}function addOnPreRun(cb){__ATPRERUN__.unshift(cb)}function addOnInit(cb){__ATINIT__.unshift(cb)}function addOnPostRun(cb){__ATPOSTRUN__.unshift(cb)}assert(Math.imul,"This browser does not support Math.imul(), build with LEGACY_VM_SUPPORT or POLYFILL_OLD_MATH_FUNCTIONS to add in a polyfill");assert(Math.fround,"This browser does not support Math.fround(), build with LEGACY_VM_SUPPORT or POLYFILL_OLD_MATH_FUNCTIONS to add in a polyfill");assert(Math.clz32,"This browser does not support Math.clz32(), build with LEGACY_VM_SUPPORT or POLYFILL_OLD_MATH_FUNCTIONS to add in a polyfill");assert(Math.trunc,"This browser does not support Math.trunc(), build with LEGACY_VM_SUPPORT or POLYFILL_OLD_MATH_FUNCTIONS to add in a polyfill");var runDependencies=0;var runDependencyWatcher=null;var dependenciesFulfilled=null;var runDependencyTracking={};function addRunDependency(id){runDependencies++;if(Module["monitorRunDependencies"]){Module["monitorRunDependencies"](runDependencies)}if(id){assert(!runDependencyTracking[id]);runDependencyTracking[id]=1;if(runDependencyWatcher===null&&typeof setInterval!="undefined"){runDependencyWatcher=setInterval(function(){if(ABORT){clearInterval(runDependencyWatcher);runDependencyWatcher=null;return}var shown=false;for(var dep in runDependencyTracking){if(!shown){shown=true;err("still waiting on run dependencies:")}err("dependency: "+dep)}if(shown){err("(end of list)")}},1e4)}}else{err("warning: run dependency added without ID")}}function removeRunDependency(id){runDependencies--;if(Module["monitorRunDependencies"]){Module["monitorRunDependencies"](runDependencies)}if(id){assert(runDependencyTracking[id]);delete runDependencyTracking[id]}else{err("warning: run dependency removed without ID")}if(runDependencies==0){if(runDependencyWatcher!==null){clearInterval(runDependencyWatcher);runDependencyWatcher=null}if(dependenciesFulfilled){var callback=dependenciesFulfilled;dependenciesFulfilled=null;callback()}}}function abort(what){{if(Module["onAbort"]){Module["onAbort"](what)}}what="Aborted("+what+")";err(what);ABORT=true;EXITSTATUS=1;var e=new WebAssembly.RuntimeError(what);readyPromiseReject(e);throw e}var FS={error:function(){abort("Filesystem support (FS) was not included. The problem is that you are using files from JS, but files were not used from C/C++, so filesystem support was not auto-included. You can force-include filesystem support with -sFORCE_FILESYSTEM")},init:function(){FS.error()},createDataFile:function(){FS.error()},createPreloadedFile:function(){FS.error()},createLazyFile:function(){FS.error()},open:function(){FS.error()},mkdev:function(){FS.error()},registerDevice:function(){FS.error()},analyzePath:function(){FS.error()},loadFilesFromDB:function(){FS.error()},ErrnoError:function ErrnoError(){FS.error()}};Module["FS_createDataFile"]=FS.createDataFile;Module["FS_createPreloadedFile"]=FS.createPreloadedFile;var dataURIPrefix="data:application/octet-stream;base64,";function isDataURI(filename){return filename.startsWith(dataURIPrefix)}function isFileURI(filename){return filename.startsWith("file://")}function createExportWrapper(name,fixedasm){return function(){var displayName=name;var asm=fixedasm;if(!fixedasm){asm=Module["asm"]}assert(runtimeInitialized,"native function `"+displayName+"` called before runtime initialization");if(!asm[name]){assert(asm[name],"exported native function `"+displayName+"` not found")}return asm[name].apply(null,arguments)}}var wasmBinaryFile;wasmBinaryFile="draco_decoder.wasm";if(!isDataURI(wasmBinaryFile)){wasmBinaryFile=locateFile(wasmBinaryFile)}function getBinary(file){try{if(file==wasmBinaryFile&&wasmBinary){return new Uint8Array(wasmBinary)}var binary=tryParseAsDataURI(file);if(binary){return binary}if(readBinary){return readBinary(file)}throw"both async and sync fetching of the wasm failed"}catch(err){abort(err)}}function getBinaryPromise(){if(!wasmBinary&&(ENVIRONMENT_IS_WEB||ENVIRONMENT_IS_WORKER)){if(typeof fetch=="function"&&!isFileURI(wasmBinaryFile)){return fetch(wasmBinaryFile,{credentials:"same-origin"}).then(function(response){if(!response["ok"]){throw"failed to load wasm binary file at '"+wasmBinaryFile+"'"}return response["arrayBuffer"]()}).catch(function(){return getBinary(wasmBinaryFile)})}else{if(readAsync){return new Promise(function(resolve,reject){readAsync(wasmBinaryFile,function(response){resolve(new Uint8Array(response))},reject)})}}}return Promise.resolve().then(function(){return getBinary(wasmBinaryFile)})}function createWasm(){var info={"env":asmLibraryArg,"wasi_snapshot_preview1":asmLibraryArg};function receiveInstance(instance,module){var exports=instance.exports;Module["asm"]=exports;wasmTable=Module["asm"]["__indirect_function_table"];assert(wasmTable,"table not found in wasm exports");addOnInit(Module["asm"]["__wasm_call_ctors"]);removeRunDependency("wasm-instantiate")}addRunDependency("wasm-instantiate");var trueModule=Module;function receiveInstantiationResult(result){assert(Module===trueModule,"the Module object should not be replaced during async compilation - perhaps the order of HTML elements is wrong?");trueModule=null;receiveInstance(result["instance"])}function instantiateArrayBuffer(receiver){return getBinaryPromise().then(function(binary){return WebAssembly.instantiate(binary,info)}).then(function(instance){return instance}).then(receiver,function(reason){err("failed to asynchronously prepare wasm: "+reason);if(isFileURI(wasmBinaryFile)){err("warning: Loading from a file URI ("+wasmBinaryFile+") is not supported in most browsers. See https://emscripten.org/docs/getting_started/FAQ.html#how-do-i-run-a-local-webserver-for-testing-why-does-my-program-stall-in-downloading-or-preparing")}abort(reason)})}function instantiateAsync(){if(!wasmBinary&&typeof WebAssembly.instantiateStreaming=="function"&&!isDataURI(wasmBinaryFile)&&!isFileURI(wasmBinaryFile)&&!ENVIRONMENT_IS_NODE&&typeof fetch=="function"){return fetch(wasmBinaryFile,{credentials:"same-origin"}).then(function(response){var result=WebAssembly.instantiateStreaming(response,info);return result.then(receiveInstantiationResult,function(reason){err("wasm streaming compile failed: "+reason);err("falling back to ArrayBuffer instantiation");return instantiateArrayBuffer(receiveInstantiationResult)})})}else{return instantiateArrayBuffer(receiveInstantiationResult)}}if(Module["instantiateWasm"]){try{var exports=Module["instantiateWasm"](info,receiveInstance);return exports}catch(e){err("Module.instantiateWasm callback failed with error: "+e);readyPromiseReject(e)}}instantiateAsync().catch(readyPromiseReject);return{}}var tempDouble;var tempI64;function array_bounds_check_error(idx,size){throw"Array index "+idx+" out of bounds: [0,"+size+")"}function ExitStatus(status){this.name="ExitStatus";this.message="Program terminated with exit("+status+")";this.status=status}function callRuntimeCallbacks(callbacks){while(callbacks.length>0){callbacks.shift()(Module)}}function intArrayToString(array){var ret=[];for(var i=0;i255){if(ASSERTIONS){assert(false,"Character code "+chr+" ("+String.fromCharCode(chr)+") at offset "+i+" not in 0x00-0xFF.")}chr&=255}ret.push(String.fromCharCode(chr))}return ret.join("")}function warnOnce(text){if(!warnOnce.shown)warnOnce.shown={};if(!warnOnce.shown[text]){warnOnce.shown[text]=1;if(ENVIRONMENT_IS_NODE)text="warning: "+text;err(text)}}function ___cxa_allocate_exception(size){return _malloc(size+24)+24}function ExceptionInfo(excPtr){this.excPtr=excPtr;this.ptr=excPtr-24;this.set_type=function(type){HEAPU32[this.ptr+4>>2]=type};this.get_type=function(){return HEAPU32[this.ptr+4>>2]};this.set_destructor=function(destructor){HEAPU32[this.ptr+8>>2]=destructor};this.get_destructor=function(){return HEAPU32[this.ptr+8>>2]};this.set_refcount=function(refcount){HEAP32[this.ptr>>2]=refcount};this.set_caught=function(caught){caught=caught?1:0;HEAP8[this.ptr+12>>0]=caught};this.get_caught=function(){return HEAP8[this.ptr+12>>0]!=0};this.set_rethrown=function(rethrown){rethrown=rethrown?1:0;HEAP8[this.ptr+13>>0]=rethrown};this.get_rethrown=function(){return HEAP8[this.ptr+13>>0]!=0};this.init=function(type,destructor){this.set_adjusted_ptr(0);this.set_type(type);this.set_destructor(destructor);this.set_refcount(0);this.set_caught(false);this.set_rethrown(false)};this.add_ref=function(){var value=HEAP32[this.ptr>>2];HEAP32[this.ptr>>2]=value+1};this.release_ref=function(){var prev=HEAP32[this.ptr>>2];HEAP32[this.ptr>>2]=prev-1;assert(prev>0);return prev===1};this.set_adjusted_ptr=function(adjustedPtr){HEAPU32[this.ptr+16>>2]=adjustedPtr};this.get_adjusted_ptr=function(){return HEAPU32[this.ptr+16>>2]};this.get_exception_ptr=function(){var isPointer=___cxa_is_pointer_type(this.get_type());if(isPointer){return HEAPU32[this.excPtr>>2]}var adjusted=this.get_adjusted_ptr();if(adjusted!==0)return adjusted;return this.excPtr}}var exceptionLast=0;var uncaughtExceptionCount=0;function ___cxa_throw(ptr,type,destructor){var info=new ExceptionInfo(ptr);info.init(type,destructor);exceptionLast=ptr;uncaughtExceptionCount++;throw ptr+" - Exception catching is disabled, this exception cannot be caught. Compile with -sNO_DISABLE_EXCEPTION_CATCHING or -sEXCEPTION_CATCHING_ALLOWED=[..] to catch."}function _abort(){abort("native code called abort()")}function _emscripten_memcpy_big(dest,src,num){HEAPU8.copyWithin(dest,src,src+num)}function getHeapMax(){return 2147483648}function emscripten_realloc_buffer(size){try{wasmMemory.grow(size-buffer.byteLength+65535>>>16);updateGlobalBufferAndViews(wasmMemory.buffer);return 1}catch(e){err("emscripten_realloc_buffer: Attempted to grow heap from "+buffer.byteLength+" bytes to "+size+" bytes, but got error: "+e)}}function _emscripten_resize_heap(requestedSize){var oldSize=HEAPU8.length;requestedSize=requestedSize>>>0;assert(requestedSize>oldSize);var maxHeapSize=getHeapMax();if(requestedSize>maxHeapSize){err("Cannot enlarge memory, asked to go up to "+requestedSize+" bytes, but the limit is "+maxHeapSize+" bytes!");return false}let alignUp=(x,multiple)=>x+(multiple-x%multiple)%multiple;for(var cutDown=1;cutDown<=4;cutDown*=2){var overGrownHeapSize=oldSize*(1+.2/cutDown);overGrownHeapSize=Math.min(overGrownHeapSize,requestedSize+100663296);var newSize=Math.min(maxHeapSize,alignUp(Math.max(requestedSize,overGrownHeapSize),65536));var replacement=emscripten_realloc_buffer(newSize);if(replacement){err("Warning: Enlarging memory arrays, this is not fast! "+[oldSize,newSize]);return true}}err("Failed to grow the heap from "+oldSize+" bytes to "+newSize+" bytes, not enough memory!");return false}var SYSCALLS={varargs:undefined,get:function(){assert(SYSCALLS.varargs!=undefined);SYSCALLS.varargs+=4;var ret=HEAP32[SYSCALLS.varargs-4>>2];return ret},getStr:function(ptr){var ret=UTF8ToString(ptr);return ret}};function _fd_close(fd){abort("fd_close called without SYSCALLS_REQUIRE_FILESYSTEM")}function _fd_seek(fd,offset_low,offset_high,whence,newOffset){return 70}var printCharBuffers=[null,[],[]];function printChar(stream,curr){var buffer=printCharBuffers[stream];assert(buffer);if(curr===0||curr===10){(stream===1?out:err)(UTF8ArrayToString(buffer,0));buffer.length=0}else{buffer.push(curr)}}function flush_NO_FILESYSTEM(){_fflush(0);if(printCharBuffers[1].length)printChar(1,10);if(printCharBuffers[2].length)printChar(2,10)}function _fd_write(fd,iov,iovcnt,pnum){var num=0;for(var i=0;i>2];var len=HEAPU32[iov+4>>2];iov+=8;for(var j=0;j>2]=num;return 0}function intArrayFromString(stringy,dontAddNull,length){var len=length>0?length:lengthBytesUTF8(stringy)+1;var u8array=new Array(len);var numBytesWritten=stringToUTF8Array(stringy,u8array,0,u8array.length);if(dontAddNull)u8array.length=numBytesWritten;return u8array}var ASSERTIONS=true;var decodeBase64=typeof atob=="function"?atob:function(input){var keyStr="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=";var output="";var chr1,chr2,chr3;var enc1,enc2,enc3,enc4;var i=0;input=input.replace(/[^A-Za-z0-9\+\/\=]/g,"");do{enc1=keyStr.indexOf(input.charAt(i++));enc2=keyStr.indexOf(input.charAt(i++));enc3=keyStr.indexOf(input.charAt(i++));enc4=keyStr.indexOf(input.charAt(i++));chr1=enc1<<2|enc2>>4;chr2=(enc2&15)<<4|enc3>>2;chr3=(enc3&3)<<6|enc4;output=output+String.fromCharCode(chr1);if(enc3!==64){output=output+String.fromCharCode(chr2)}if(enc4!==64){output=output+String.fromCharCode(chr3)}}while(i0){return}stackCheckInit();preRun();if(runDependencies>0){return}function doRun(){if(calledRun)return;calledRun=true;Module["calledRun"]=true;if(ABORT)return;initRuntime();readyPromiseResolve(Module);if(Module["onRuntimeInitialized"])Module["onRuntimeInitialized"]();assert(!Module["_main"],'compiled without a main, but one is present. if you added it from JS, use Module["onRuntimeInitialized"]');postRun()}if(Module["setStatus"]){Module["setStatus"]("Running...");setTimeout(function(){setTimeout(function(){Module["setStatus"]("")},1);doRun()},1)}else{doRun()}checkStackCookie()}if(Module["preInit"]){if(typeof Module["preInit"]=="function")Module["preInit"]=[Module["preInit"]];while(Module["preInit"].length>0){Module["preInit"].pop()()}}run();function WrapperObject(){}WrapperObject.prototype=Object.create(WrapperObject.prototype);WrapperObject.prototype.constructor=WrapperObject;WrapperObject.prototype.__class__=WrapperObject;WrapperObject.__cache__={};Module["WrapperObject"]=WrapperObject;function getCache(__class__){return(__class__||WrapperObject).__cache__}Module["getCache"]=getCache;function wrapPointer(ptr,__class__){var cache=getCache(__class__);var ret=cache[ptr];if(ret)return ret;ret=Object.create((__class__||WrapperObject).prototype);ret.ptr=ptr;return cache[ptr]=ret}Module["wrapPointer"]=wrapPointer;function castObject(obj,__class__){return wrapPointer(obj.ptr,__class__)}Module["castObject"]=castObject;Module["NULL"]=wrapPointer(0);function destroy(obj){if(!obj["__destroy__"])throw"Error: Cannot destroy object. (Did you create it yourself?)";obj["__destroy__"]();delete getCache(obj.__class__)[obj.ptr]}Module["destroy"]=destroy;function compare(obj1,obj2){return obj1.ptr===obj2.ptr}Module["compare"]=compare;function getPointer(obj){return obj.ptr}Module["getPointer"]=getPointer;function getClass(obj){return obj.__class__}Module["getClass"]=getClass;var ensureCache={buffer:0,size:0,pos:0,temps:[],needed:0,prepare:function(){if(ensureCache.needed){for(var i=0;i=ensureCache.size){assert(len>0);ensureCache.needed+=len;ret=Module["_malloc"](len);ensureCache.temps.push(ret)}else{ret=ensureCache.buffer+ensureCache.pos;ensureCache.pos+=len}return ret},copy:function(array,view,offset){offset>>>=0;var bytes=view.BYTES_PER_ELEMENT;switch(bytes){case 2:offset>>>=1;break;case 4:offset>>>=2;break;case 8:offset>>>=3;break}for(var i=0;i { function(DracoEncoderModule) { DracoEncoderModule = DracoEncoderModule || {}; -var Module=typeof DracoEncoderModule!="undefined"?DracoEncoderModule:{};var readyPromiseResolve,readyPromiseReject;Module["ready"]=new Promise(function(resolve,reject){readyPromiseResolve=resolve;readyPromiseReject=reject});if(!Object.getOwnPropertyDescriptor(Module["ready"],"_free")){Object.defineProperty(Module["ready"],"_free",{configurable:true,get:function(){abort("You are getting _free on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}});Object.defineProperty(Module["ready"],"_free",{configurable:true,set:function(){abort("You are setting _free on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}})}if(!Object.getOwnPropertyDescriptor(Module["ready"],"_malloc")){Object.defineProperty(Module["ready"],"_malloc",{configurable:true,get:function(){abort("You are getting _malloc on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}});Object.defineProperty(Module["ready"],"_malloc",{configurable:true,set:function(){abort("You are setting _malloc on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}})}if(!Object.getOwnPropertyDescriptor(Module["ready"],"_emscripten_bind_VoidPtr___destroy___0")){Object.defineProperty(Module["ready"],"_emscripten_bind_VoidPtr___destroy___0",{configurable:true,get:function(){abort("You are getting _emscripten_bind_VoidPtr___destroy___0 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}});Object.defineProperty(Module["ready"],"_emscripten_bind_VoidPtr___destroy___0",{configurable:true,set:function(){abort("You are setting _emscripten_bind_VoidPtr___destroy___0 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}})}if(!Object.getOwnPropertyDescriptor(Module["ready"],"_emscripten_bind_GeometryAttribute_GeometryAttribute_0")){Object.defineProperty(Module["ready"],"_emscripten_bind_GeometryAttribute_GeometryAttribute_0",{configurable:true,get:function(){abort("You are getting _emscripten_bind_GeometryAttribute_GeometryAttribute_0 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}});Object.defineProperty(Module["ready"],"_emscripten_bind_GeometryAttribute_GeometryAttribute_0",{configurable:true,set:function(){abort("You are setting _emscripten_bind_GeometryAttribute_GeometryAttribute_0 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}})}if(!Object.getOwnPropertyDescriptor(Module["ready"],"_emscripten_bind_GeometryAttribute___destroy___0")){Object.defineProperty(Module["ready"],"_emscripten_bind_GeometryAttribute___destroy___0",{configurable:true,get:function(){abort("You are getting _emscripten_bind_GeometryAttribute___destroy___0 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}});Object.defineProperty(Module["ready"],"_emscripten_bind_GeometryAttribute___destroy___0",{configurable:true,set:function(){abort("You are setting _emscripten_bind_GeometryAttribute___destroy___0 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}})}if(!Object.getOwnPropertyDescriptor(Module["ready"],"_emscripten_bind_PointAttribute_PointAttribute_0")){Object.defineProperty(Module["ready"],"_emscripten_bind_PointAttribute_PointAttribute_0",{configurable:true,get:function(){abort("You are getting _emscripten_bind_PointAttribute_PointAttribute_0 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}});Object.defineProperty(Module["ready"],"_emscripten_bind_PointAttribute_PointAttribute_0",{configurable:true,set:function(){abort("You are setting _emscripten_bind_PointAttribute_PointAttribute_0 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}})}if(!Object.getOwnPropertyDescriptor(Module["ready"],"_emscripten_bind_PointAttribute_size_0")){Object.defineProperty(Module["ready"],"_emscripten_bind_PointAttribute_size_0",{configurable:true,get:function(){abort("You are getting _emscripten_bind_PointAttribute_size_0 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}});Object.defineProperty(Module["ready"],"_emscripten_bind_PointAttribute_size_0",{configurable:true,set:function(){abort("You are setting _emscripten_bind_PointAttribute_size_0 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}})}if(!Object.getOwnPropertyDescriptor(Module["ready"],"_emscripten_bind_PointAttribute_attribute_type_0")){Object.defineProperty(Module["ready"],"_emscripten_bind_PointAttribute_attribute_type_0",{configurable:true,get:function(){abort("You are getting _emscripten_bind_PointAttribute_attribute_type_0 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}});Object.defineProperty(Module["ready"],"_emscripten_bind_PointAttribute_attribute_type_0",{configurable:true,set:function(){abort("You are setting _emscripten_bind_PointAttribute_attribute_type_0 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}})}if(!Object.getOwnPropertyDescriptor(Module["ready"],"_emscripten_bind_PointAttribute_data_type_0")){Object.defineProperty(Module["ready"],"_emscripten_bind_PointAttribute_data_type_0",{configurable:true,get:function(){abort("You are getting _emscripten_bind_PointAttribute_data_type_0 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}});Object.defineProperty(Module["ready"],"_emscripten_bind_PointAttribute_data_type_0",{configurable:true,set:function(){abort("You are setting _emscripten_bind_PointAttribute_data_type_0 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}})}if(!Object.getOwnPropertyDescriptor(Module["ready"],"_emscripten_bind_PointAttribute_num_components_0")){Object.defineProperty(Module["ready"],"_emscripten_bind_PointAttribute_num_components_0",{configurable:true,get:function(){abort("You are getting _emscripten_bind_PointAttribute_num_components_0 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}});Object.defineProperty(Module["ready"],"_emscripten_bind_PointAttribute_num_components_0",{configurable:true,set:function(){abort("You are setting _emscripten_bind_PointAttribute_num_components_0 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}})}if(!Object.getOwnPropertyDescriptor(Module["ready"],"_emscripten_bind_PointAttribute_normalized_0")){Object.defineProperty(Module["ready"],"_emscripten_bind_PointAttribute_normalized_0",{configurable:true,get:function(){abort("You are getting _emscripten_bind_PointAttribute_normalized_0 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}});Object.defineProperty(Module["ready"],"_emscripten_bind_PointAttribute_normalized_0",{configurable:true,set:function(){abort("You are setting _emscripten_bind_PointAttribute_normalized_0 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}})}if(!Object.getOwnPropertyDescriptor(Module["ready"],"_emscripten_bind_PointAttribute_byte_stride_0")){Object.defineProperty(Module["ready"],"_emscripten_bind_PointAttribute_byte_stride_0",{configurable:true,get:function(){abort("You are getting _emscripten_bind_PointAttribute_byte_stride_0 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}});Object.defineProperty(Module["ready"],"_emscripten_bind_PointAttribute_byte_stride_0",{configurable:true,set:function(){abort("You are setting _emscripten_bind_PointAttribute_byte_stride_0 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}})}if(!Object.getOwnPropertyDescriptor(Module["ready"],"_emscripten_bind_PointAttribute_byte_offset_0")){Object.defineProperty(Module["ready"],"_emscripten_bind_PointAttribute_byte_offset_0",{configurable:true,get:function(){abort("You are getting _emscripten_bind_PointAttribute_byte_offset_0 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}});Object.defineProperty(Module["ready"],"_emscripten_bind_PointAttribute_byte_offset_0",{configurable:true,set:function(){abort("You are setting _emscripten_bind_PointAttribute_byte_offset_0 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}})}if(!Object.getOwnPropertyDescriptor(Module["ready"],"_emscripten_bind_PointAttribute_unique_id_0")){Object.defineProperty(Module["ready"],"_emscripten_bind_PointAttribute_unique_id_0",{configurable:true,get:function(){abort("You are getting _emscripten_bind_PointAttribute_unique_id_0 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}});Object.defineProperty(Module["ready"],"_emscripten_bind_PointAttribute_unique_id_0",{configurable:true,set:function(){abort("You are setting _emscripten_bind_PointAttribute_unique_id_0 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}})}if(!Object.getOwnPropertyDescriptor(Module["ready"],"_emscripten_bind_PointAttribute___destroy___0")){Object.defineProperty(Module["ready"],"_emscripten_bind_PointAttribute___destroy___0",{configurable:true,get:function(){abort("You are getting _emscripten_bind_PointAttribute___destroy___0 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}});Object.defineProperty(Module["ready"],"_emscripten_bind_PointAttribute___destroy___0",{configurable:true,set:function(){abort("You are setting _emscripten_bind_PointAttribute___destroy___0 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}})}if(!Object.getOwnPropertyDescriptor(Module["ready"],"_emscripten_bind_PointCloud_PointCloud_0")){Object.defineProperty(Module["ready"],"_emscripten_bind_PointCloud_PointCloud_0",{configurable:true,get:function(){abort("You are getting _emscripten_bind_PointCloud_PointCloud_0 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}});Object.defineProperty(Module["ready"],"_emscripten_bind_PointCloud_PointCloud_0",{configurable:true,set:function(){abort("You are setting _emscripten_bind_PointCloud_PointCloud_0 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}})}if(!Object.getOwnPropertyDescriptor(Module["ready"],"_emscripten_bind_PointCloud_num_attributes_0")){Object.defineProperty(Module["ready"],"_emscripten_bind_PointCloud_num_attributes_0",{configurable:true,get:function(){abort("You are getting _emscripten_bind_PointCloud_num_attributes_0 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}});Object.defineProperty(Module["ready"],"_emscripten_bind_PointCloud_num_attributes_0",{configurable:true,set:function(){abort("You are setting _emscripten_bind_PointCloud_num_attributes_0 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}})}if(!Object.getOwnPropertyDescriptor(Module["ready"],"_emscripten_bind_PointCloud_num_points_0")){Object.defineProperty(Module["ready"],"_emscripten_bind_PointCloud_num_points_0",{configurable:true,get:function(){abort("You are getting _emscripten_bind_PointCloud_num_points_0 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}});Object.defineProperty(Module["ready"],"_emscripten_bind_PointCloud_num_points_0",{configurable:true,set:function(){abort("You are setting _emscripten_bind_PointCloud_num_points_0 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}})}if(!Object.getOwnPropertyDescriptor(Module["ready"],"_emscripten_bind_PointCloud___destroy___0")){Object.defineProperty(Module["ready"],"_emscripten_bind_PointCloud___destroy___0",{configurable:true,get:function(){abort("You are getting _emscripten_bind_PointCloud___destroy___0 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}});Object.defineProperty(Module["ready"],"_emscripten_bind_PointCloud___destroy___0",{configurable:true,set:function(){abort("You are setting _emscripten_bind_PointCloud___destroy___0 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}})}if(!Object.getOwnPropertyDescriptor(Module["ready"],"_emscripten_bind_Mesh_Mesh_0")){Object.defineProperty(Module["ready"],"_emscripten_bind_Mesh_Mesh_0",{configurable:true,get:function(){abort("You are getting _emscripten_bind_Mesh_Mesh_0 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}});Object.defineProperty(Module["ready"],"_emscripten_bind_Mesh_Mesh_0",{configurable:true,set:function(){abort("You are setting _emscripten_bind_Mesh_Mesh_0 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}})}if(!Object.getOwnPropertyDescriptor(Module["ready"],"_emscripten_bind_Mesh_num_faces_0")){Object.defineProperty(Module["ready"],"_emscripten_bind_Mesh_num_faces_0",{configurable:true,get:function(){abort("You are getting _emscripten_bind_Mesh_num_faces_0 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}});Object.defineProperty(Module["ready"],"_emscripten_bind_Mesh_num_faces_0",{configurable:true,set:function(){abort("You are setting _emscripten_bind_Mesh_num_faces_0 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}})}if(!Object.getOwnPropertyDescriptor(Module["ready"],"_emscripten_bind_Mesh_num_attributes_0")){Object.defineProperty(Module["ready"],"_emscripten_bind_Mesh_num_attributes_0",{configurable:true,get:function(){abort("You are getting _emscripten_bind_Mesh_num_attributes_0 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}});Object.defineProperty(Module["ready"],"_emscripten_bind_Mesh_num_attributes_0",{configurable:true,set:function(){abort("You are setting _emscripten_bind_Mesh_num_attributes_0 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}})}if(!Object.getOwnPropertyDescriptor(Module["ready"],"_emscripten_bind_Mesh_num_points_0")){Object.defineProperty(Module["ready"],"_emscripten_bind_Mesh_num_points_0",{configurable:true,get:function(){abort("You are getting _emscripten_bind_Mesh_num_points_0 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}});Object.defineProperty(Module["ready"],"_emscripten_bind_Mesh_num_points_0",{configurable:true,set:function(){abort("You are setting _emscripten_bind_Mesh_num_points_0 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}})}if(!Object.getOwnPropertyDescriptor(Module["ready"],"_emscripten_bind_Mesh_set_num_points_1")){Object.defineProperty(Module["ready"],"_emscripten_bind_Mesh_set_num_points_1",{configurable:true,get:function(){abort("You are getting _emscripten_bind_Mesh_set_num_points_1 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}});Object.defineProperty(Module["ready"],"_emscripten_bind_Mesh_set_num_points_1",{configurable:true,set:function(){abort("You are setting _emscripten_bind_Mesh_set_num_points_1 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}})}if(!Object.getOwnPropertyDescriptor(Module["ready"],"_emscripten_bind_Mesh___destroy___0")){Object.defineProperty(Module["ready"],"_emscripten_bind_Mesh___destroy___0",{configurable:true,get:function(){abort("You are getting _emscripten_bind_Mesh___destroy___0 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}});Object.defineProperty(Module["ready"],"_emscripten_bind_Mesh___destroy___0",{configurable:true,set:function(){abort("You are setting _emscripten_bind_Mesh___destroy___0 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}})}if(!Object.getOwnPropertyDescriptor(Module["ready"],"_emscripten_bind_Metadata_Metadata_0")){Object.defineProperty(Module["ready"],"_emscripten_bind_Metadata_Metadata_0",{configurable:true,get:function(){abort("You are getting _emscripten_bind_Metadata_Metadata_0 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}});Object.defineProperty(Module["ready"],"_emscripten_bind_Metadata_Metadata_0",{configurable:true,set:function(){abort("You are setting _emscripten_bind_Metadata_Metadata_0 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}})}if(!Object.getOwnPropertyDescriptor(Module["ready"],"_emscripten_bind_Metadata___destroy___0")){Object.defineProperty(Module["ready"],"_emscripten_bind_Metadata___destroy___0",{configurable:true,get:function(){abort("You are getting _emscripten_bind_Metadata___destroy___0 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}});Object.defineProperty(Module["ready"],"_emscripten_bind_Metadata___destroy___0",{configurable:true,set:function(){abort("You are setting _emscripten_bind_Metadata___destroy___0 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}})}if(!Object.getOwnPropertyDescriptor(Module["ready"],"_emscripten_bind_DracoInt8Array_DracoInt8Array_0")){Object.defineProperty(Module["ready"],"_emscripten_bind_DracoInt8Array_DracoInt8Array_0",{configurable:true,get:function(){abort("You are getting _emscripten_bind_DracoInt8Array_DracoInt8Array_0 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}});Object.defineProperty(Module["ready"],"_emscripten_bind_DracoInt8Array_DracoInt8Array_0",{configurable:true,set:function(){abort("You are setting _emscripten_bind_DracoInt8Array_DracoInt8Array_0 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}})}if(!Object.getOwnPropertyDescriptor(Module["ready"],"_emscripten_bind_DracoInt8Array_GetValue_1")){Object.defineProperty(Module["ready"],"_emscripten_bind_DracoInt8Array_GetValue_1",{configurable:true,get:function(){abort("You are getting _emscripten_bind_DracoInt8Array_GetValue_1 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}});Object.defineProperty(Module["ready"],"_emscripten_bind_DracoInt8Array_GetValue_1",{configurable:true,set:function(){abort("You are setting _emscripten_bind_DracoInt8Array_GetValue_1 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}})}if(!Object.getOwnPropertyDescriptor(Module["ready"],"_emscripten_bind_DracoInt8Array_size_0")){Object.defineProperty(Module["ready"],"_emscripten_bind_DracoInt8Array_size_0",{configurable:true,get:function(){abort("You are getting _emscripten_bind_DracoInt8Array_size_0 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}});Object.defineProperty(Module["ready"],"_emscripten_bind_DracoInt8Array_size_0",{configurable:true,set:function(){abort("You are setting _emscripten_bind_DracoInt8Array_size_0 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}})}if(!Object.getOwnPropertyDescriptor(Module["ready"],"_emscripten_bind_DracoInt8Array___destroy___0")){Object.defineProperty(Module["ready"],"_emscripten_bind_DracoInt8Array___destroy___0",{configurable:true,get:function(){abort("You are getting _emscripten_bind_DracoInt8Array___destroy___0 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}});Object.defineProperty(Module["ready"],"_emscripten_bind_DracoInt8Array___destroy___0",{configurable:true,set:function(){abort("You are setting _emscripten_bind_DracoInt8Array___destroy___0 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}})}if(!Object.getOwnPropertyDescriptor(Module["ready"],"_emscripten_bind_MetadataBuilder_MetadataBuilder_0")){Object.defineProperty(Module["ready"],"_emscripten_bind_MetadataBuilder_MetadataBuilder_0",{configurable:true,get:function(){abort("You are getting _emscripten_bind_MetadataBuilder_MetadataBuilder_0 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}});Object.defineProperty(Module["ready"],"_emscripten_bind_MetadataBuilder_MetadataBuilder_0",{configurable:true,set:function(){abort("You are setting _emscripten_bind_MetadataBuilder_MetadataBuilder_0 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}})}if(!Object.getOwnPropertyDescriptor(Module["ready"],"_emscripten_bind_MetadataBuilder_AddStringEntry_3")){Object.defineProperty(Module["ready"],"_emscripten_bind_MetadataBuilder_AddStringEntry_3",{configurable:true,get:function(){abort("You are getting _emscripten_bind_MetadataBuilder_AddStringEntry_3 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}});Object.defineProperty(Module["ready"],"_emscripten_bind_MetadataBuilder_AddStringEntry_3",{configurable:true,set:function(){abort("You are setting _emscripten_bind_MetadataBuilder_AddStringEntry_3 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}})}if(!Object.getOwnPropertyDescriptor(Module["ready"],"_emscripten_bind_MetadataBuilder_AddIntEntry_3")){Object.defineProperty(Module["ready"],"_emscripten_bind_MetadataBuilder_AddIntEntry_3",{configurable:true,get:function(){abort("You are getting _emscripten_bind_MetadataBuilder_AddIntEntry_3 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}});Object.defineProperty(Module["ready"],"_emscripten_bind_MetadataBuilder_AddIntEntry_3",{configurable:true,set:function(){abort("You are setting _emscripten_bind_MetadataBuilder_AddIntEntry_3 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}})}if(!Object.getOwnPropertyDescriptor(Module["ready"],"_emscripten_bind_MetadataBuilder_AddIntEntryArray_4")){Object.defineProperty(Module["ready"],"_emscripten_bind_MetadataBuilder_AddIntEntryArray_4",{configurable:true,get:function(){abort("You are getting _emscripten_bind_MetadataBuilder_AddIntEntryArray_4 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}});Object.defineProperty(Module["ready"],"_emscripten_bind_MetadataBuilder_AddIntEntryArray_4",{configurable:true,set:function(){abort("You are setting _emscripten_bind_MetadataBuilder_AddIntEntryArray_4 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}})}if(!Object.getOwnPropertyDescriptor(Module["ready"],"_emscripten_bind_MetadataBuilder_AddDoubleEntry_3")){Object.defineProperty(Module["ready"],"_emscripten_bind_MetadataBuilder_AddDoubleEntry_3",{configurable:true,get:function(){abort("You are getting _emscripten_bind_MetadataBuilder_AddDoubleEntry_3 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}});Object.defineProperty(Module["ready"],"_emscripten_bind_MetadataBuilder_AddDoubleEntry_3",{configurable:true,set:function(){abort("You are setting _emscripten_bind_MetadataBuilder_AddDoubleEntry_3 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}})}if(!Object.getOwnPropertyDescriptor(Module["ready"],"_emscripten_bind_MetadataBuilder___destroy___0")){Object.defineProperty(Module["ready"],"_emscripten_bind_MetadataBuilder___destroy___0",{configurable:true,get:function(){abort("You are getting _emscripten_bind_MetadataBuilder___destroy___0 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}});Object.defineProperty(Module["ready"],"_emscripten_bind_MetadataBuilder___destroy___0",{configurable:true,set:function(){abort("You are setting _emscripten_bind_MetadataBuilder___destroy___0 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}})}if(!Object.getOwnPropertyDescriptor(Module["ready"],"_emscripten_bind_PointCloudBuilder_PointCloudBuilder_0")){Object.defineProperty(Module["ready"],"_emscripten_bind_PointCloudBuilder_PointCloudBuilder_0",{configurable:true,get:function(){abort("You are getting _emscripten_bind_PointCloudBuilder_PointCloudBuilder_0 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}});Object.defineProperty(Module["ready"],"_emscripten_bind_PointCloudBuilder_PointCloudBuilder_0",{configurable:true,set:function(){abort("You are setting _emscripten_bind_PointCloudBuilder_PointCloudBuilder_0 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}})}if(!Object.getOwnPropertyDescriptor(Module["ready"],"_emscripten_bind_PointCloudBuilder_AddFloatAttribute_5")){Object.defineProperty(Module["ready"],"_emscripten_bind_PointCloudBuilder_AddFloatAttribute_5",{configurable:true,get:function(){abort("You are getting _emscripten_bind_PointCloudBuilder_AddFloatAttribute_5 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}});Object.defineProperty(Module["ready"],"_emscripten_bind_PointCloudBuilder_AddFloatAttribute_5",{configurable:true,set:function(){abort("You are setting _emscripten_bind_PointCloudBuilder_AddFloatAttribute_5 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}})}if(!Object.getOwnPropertyDescriptor(Module["ready"],"_emscripten_bind_PointCloudBuilder_AddInt8Attribute_5")){Object.defineProperty(Module["ready"],"_emscripten_bind_PointCloudBuilder_AddInt8Attribute_5",{configurable:true,get:function(){abort("You are getting _emscripten_bind_PointCloudBuilder_AddInt8Attribute_5 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}});Object.defineProperty(Module["ready"],"_emscripten_bind_PointCloudBuilder_AddInt8Attribute_5",{configurable:true,set:function(){abort("You are setting _emscripten_bind_PointCloudBuilder_AddInt8Attribute_5 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}})}if(!Object.getOwnPropertyDescriptor(Module["ready"],"_emscripten_bind_PointCloudBuilder_AddUInt8Attribute_5")){Object.defineProperty(Module["ready"],"_emscripten_bind_PointCloudBuilder_AddUInt8Attribute_5",{configurable:true,get:function(){abort("You are getting _emscripten_bind_PointCloudBuilder_AddUInt8Attribute_5 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}});Object.defineProperty(Module["ready"],"_emscripten_bind_PointCloudBuilder_AddUInt8Attribute_5",{configurable:true,set:function(){abort("You are setting _emscripten_bind_PointCloudBuilder_AddUInt8Attribute_5 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}})}if(!Object.getOwnPropertyDescriptor(Module["ready"],"_emscripten_bind_PointCloudBuilder_AddInt16Attribute_5")){Object.defineProperty(Module["ready"],"_emscripten_bind_PointCloudBuilder_AddInt16Attribute_5",{configurable:true,get:function(){abort("You are getting _emscripten_bind_PointCloudBuilder_AddInt16Attribute_5 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}});Object.defineProperty(Module["ready"],"_emscripten_bind_PointCloudBuilder_AddInt16Attribute_5",{configurable:true,set:function(){abort("You are setting _emscripten_bind_PointCloudBuilder_AddInt16Attribute_5 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}})}if(!Object.getOwnPropertyDescriptor(Module["ready"],"_emscripten_bind_PointCloudBuilder_AddUInt16Attribute_5")){Object.defineProperty(Module["ready"],"_emscripten_bind_PointCloudBuilder_AddUInt16Attribute_5",{configurable:true,get:function(){abort("You are getting _emscripten_bind_PointCloudBuilder_AddUInt16Attribute_5 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}});Object.defineProperty(Module["ready"],"_emscripten_bind_PointCloudBuilder_AddUInt16Attribute_5",{configurable:true,set:function(){abort("You are setting _emscripten_bind_PointCloudBuilder_AddUInt16Attribute_5 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}})}if(!Object.getOwnPropertyDescriptor(Module["ready"],"_emscripten_bind_PointCloudBuilder_AddInt32Attribute_5")){Object.defineProperty(Module["ready"],"_emscripten_bind_PointCloudBuilder_AddInt32Attribute_5",{configurable:true,get:function(){abort("You are getting _emscripten_bind_PointCloudBuilder_AddInt32Attribute_5 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}});Object.defineProperty(Module["ready"],"_emscripten_bind_PointCloudBuilder_AddInt32Attribute_5",{configurable:true,set:function(){abort("You are setting _emscripten_bind_PointCloudBuilder_AddInt32Attribute_5 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}})}if(!Object.getOwnPropertyDescriptor(Module["ready"],"_emscripten_bind_PointCloudBuilder_AddUInt32Attribute_5")){Object.defineProperty(Module["ready"],"_emscripten_bind_PointCloudBuilder_AddUInt32Attribute_5",{configurable:true,get:function(){abort("You are getting _emscripten_bind_PointCloudBuilder_AddUInt32Attribute_5 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}});Object.defineProperty(Module["ready"],"_emscripten_bind_PointCloudBuilder_AddUInt32Attribute_5",{configurable:true,set:function(){abort("You are setting _emscripten_bind_PointCloudBuilder_AddUInt32Attribute_5 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}})}if(!Object.getOwnPropertyDescriptor(Module["ready"],"_emscripten_bind_PointCloudBuilder_AddMetadata_2")){Object.defineProperty(Module["ready"],"_emscripten_bind_PointCloudBuilder_AddMetadata_2",{configurable:true,get:function(){abort("You are getting _emscripten_bind_PointCloudBuilder_AddMetadata_2 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}});Object.defineProperty(Module["ready"],"_emscripten_bind_PointCloudBuilder_AddMetadata_2",{configurable:true,set:function(){abort("You are setting _emscripten_bind_PointCloudBuilder_AddMetadata_2 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}})}if(!Object.getOwnPropertyDescriptor(Module["ready"],"_emscripten_bind_PointCloudBuilder_SetMetadataForAttribute_3")){Object.defineProperty(Module["ready"],"_emscripten_bind_PointCloudBuilder_SetMetadataForAttribute_3",{configurable:true,get:function(){abort("You are getting _emscripten_bind_PointCloudBuilder_SetMetadataForAttribute_3 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}});Object.defineProperty(Module["ready"],"_emscripten_bind_PointCloudBuilder_SetMetadataForAttribute_3",{configurable:true,set:function(){abort("You are setting _emscripten_bind_PointCloudBuilder_SetMetadataForAttribute_3 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}})}if(!Object.getOwnPropertyDescriptor(Module["ready"],"_emscripten_bind_PointCloudBuilder___destroy___0")){Object.defineProperty(Module["ready"],"_emscripten_bind_PointCloudBuilder___destroy___0",{configurable:true,get:function(){abort("You are getting _emscripten_bind_PointCloudBuilder___destroy___0 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}});Object.defineProperty(Module["ready"],"_emscripten_bind_PointCloudBuilder___destroy___0",{configurable:true,set:function(){abort("You are setting _emscripten_bind_PointCloudBuilder___destroy___0 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}})}if(!Object.getOwnPropertyDescriptor(Module["ready"],"_emscripten_bind_MeshBuilder_MeshBuilder_0")){Object.defineProperty(Module["ready"],"_emscripten_bind_MeshBuilder_MeshBuilder_0",{configurable:true,get:function(){abort("You are getting _emscripten_bind_MeshBuilder_MeshBuilder_0 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}});Object.defineProperty(Module["ready"],"_emscripten_bind_MeshBuilder_MeshBuilder_0",{configurable:true,set:function(){abort("You are setting _emscripten_bind_MeshBuilder_MeshBuilder_0 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}})}if(!Object.getOwnPropertyDescriptor(Module["ready"],"_emscripten_bind_MeshBuilder_AddFacesToMesh_3")){Object.defineProperty(Module["ready"],"_emscripten_bind_MeshBuilder_AddFacesToMesh_3",{configurable:true,get:function(){abort("You are getting _emscripten_bind_MeshBuilder_AddFacesToMesh_3 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}});Object.defineProperty(Module["ready"],"_emscripten_bind_MeshBuilder_AddFacesToMesh_3",{configurable:true,set:function(){abort("You are setting _emscripten_bind_MeshBuilder_AddFacesToMesh_3 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}})}if(!Object.getOwnPropertyDescriptor(Module["ready"],"_emscripten_bind_MeshBuilder_AddFloatAttributeToMesh_5")){Object.defineProperty(Module["ready"],"_emscripten_bind_MeshBuilder_AddFloatAttributeToMesh_5",{configurable:true,get:function(){abort("You are getting _emscripten_bind_MeshBuilder_AddFloatAttributeToMesh_5 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}});Object.defineProperty(Module["ready"],"_emscripten_bind_MeshBuilder_AddFloatAttributeToMesh_5",{configurable:true,set:function(){abort("You are setting _emscripten_bind_MeshBuilder_AddFloatAttributeToMesh_5 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}})}if(!Object.getOwnPropertyDescriptor(Module["ready"],"_emscripten_bind_MeshBuilder_AddInt32AttributeToMesh_5")){Object.defineProperty(Module["ready"],"_emscripten_bind_MeshBuilder_AddInt32AttributeToMesh_5",{configurable:true,get:function(){abort("You are getting _emscripten_bind_MeshBuilder_AddInt32AttributeToMesh_5 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}});Object.defineProperty(Module["ready"],"_emscripten_bind_MeshBuilder_AddInt32AttributeToMesh_5",{configurable:true,set:function(){abort("You are setting _emscripten_bind_MeshBuilder_AddInt32AttributeToMesh_5 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}})}if(!Object.getOwnPropertyDescriptor(Module["ready"],"_emscripten_bind_MeshBuilder_AddMetadataToMesh_2")){Object.defineProperty(Module["ready"],"_emscripten_bind_MeshBuilder_AddMetadataToMesh_2",{configurable:true,get:function(){abort("You are getting _emscripten_bind_MeshBuilder_AddMetadataToMesh_2 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}});Object.defineProperty(Module["ready"],"_emscripten_bind_MeshBuilder_AddMetadataToMesh_2",{configurable:true,set:function(){abort("You are setting _emscripten_bind_MeshBuilder_AddMetadataToMesh_2 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}})}if(!Object.getOwnPropertyDescriptor(Module["ready"],"_emscripten_bind_MeshBuilder_AddFloatAttribute_5")){Object.defineProperty(Module["ready"],"_emscripten_bind_MeshBuilder_AddFloatAttribute_5",{configurable:true,get:function(){abort("You are getting _emscripten_bind_MeshBuilder_AddFloatAttribute_5 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}});Object.defineProperty(Module["ready"],"_emscripten_bind_MeshBuilder_AddFloatAttribute_5",{configurable:true,set:function(){abort("You are setting _emscripten_bind_MeshBuilder_AddFloatAttribute_5 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}})}if(!Object.getOwnPropertyDescriptor(Module["ready"],"_emscripten_bind_MeshBuilder_AddInt8Attribute_5")){Object.defineProperty(Module["ready"],"_emscripten_bind_MeshBuilder_AddInt8Attribute_5",{configurable:true,get:function(){abort("You are getting _emscripten_bind_MeshBuilder_AddInt8Attribute_5 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}});Object.defineProperty(Module["ready"],"_emscripten_bind_MeshBuilder_AddInt8Attribute_5",{configurable:true,set:function(){abort("You are setting _emscripten_bind_MeshBuilder_AddInt8Attribute_5 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}})}if(!Object.getOwnPropertyDescriptor(Module["ready"],"_emscripten_bind_MeshBuilder_AddUInt8Attribute_5")){Object.defineProperty(Module["ready"],"_emscripten_bind_MeshBuilder_AddUInt8Attribute_5",{configurable:true,get:function(){abort("You are getting _emscripten_bind_MeshBuilder_AddUInt8Attribute_5 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}});Object.defineProperty(Module["ready"],"_emscripten_bind_MeshBuilder_AddUInt8Attribute_5",{configurable:true,set:function(){abort("You are setting _emscripten_bind_MeshBuilder_AddUInt8Attribute_5 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}})}if(!Object.getOwnPropertyDescriptor(Module["ready"],"_emscripten_bind_MeshBuilder_AddInt16Attribute_5")){Object.defineProperty(Module["ready"],"_emscripten_bind_MeshBuilder_AddInt16Attribute_5",{configurable:true,get:function(){abort("You are getting _emscripten_bind_MeshBuilder_AddInt16Attribute_5 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}});Object.defineProperty(Module["ready"],"_emscripten_bind_MeshBuilder_AddInt16Attribute_5",{configurable:true,set:function(){abort("You are setting _emscripten_bind_MeshBuilder_AddInt16Attribute_5 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}})}if(!Object.getOwnPropertyDescriptor(Module["ready"],"_emscripten_bind_MeshBuilder_AddUInt16Attribute_5")){Object.defineProperty(Module["ready"],"_emscripten_bind_MeshBuilder_AddUInt16Attribute_5",{configurable:true,get:function(){abort("You are getting _emscripten_bind_MeshBuilder_AddUInt16Attribute_5 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}});Object.defineProperty(Module["ready"],"_emscripten_bind_MeshBuilder_AddUInt16Attribute_5",{configurable:true,set:function(){abort("You are setting _emscripten_bind_MeshBuilder_AddUInt16Attribute_5 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}})}if(!Object.getOwnPropertyDescriptor(Module["ready"],"_emscripten_bind_MeshBuilder_AddInt32Attribute_5")){Object.defineProperty(Module["ready"],"_emscripten_bind_MeshBuilder_AddInt32Attribute_5",{configurable:true,get:function(){abort("You are getting _emscripten_bind_MeshBuilder_AddInt32Attribute_5 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}});Object.defineProperty(Module["ready"],"_emscripten_bind_MeshBuilder_AddInt32Attribute_5",{configurable:true,set:function(){abort("You are setting _emscripten_bind_MeshBuilder_AddInt32Attribute_5 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}})}if(!Object.getOwnPropertyDescriptor(Module["ready"],"_emscripten_bind_MeshBuilder_AddUInt32Attribute_5")){Object.defineProperty(Module["ready"],"_emscripten_bind_MeshBuilder_AddUInt32Attribute_5",{configurable:true,get:function(){abort("You are getting _emscripten_bind_MeshBuilder_AddUInt32Attribute_5 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}});Object.defineProperty(Module["ready"],"_emscripten_bind_MeshBuilder_AddUInt32Attribute_5",{configurable:true,set:function(){abort("You are setting _emscripten_bind_MeshBuilder_AddUInt32Attribute_5 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}})}if(!Object.getOwnPropertyDescriptor(Module["ready"],"_emscripten_bind_MeshBuilder_AddMetadata_2")){Object.defineProperty(Module["ready"],"_emscripten_bind_MeshBuilder_AddMetadata_2",{configurable:true,get:function(){abort("You are getting _emscripten_bind_MeshBuilder_AddMetadata_2 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}});Object.defineProperty(Module["ready"],"_emscripten_bind_MeshBuilder_AddMetadata_2",{configurable:true,set:function(){abort("You are setting _emscripten_bind_MeshBuilder_AddMetadata_2 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}})}if(!Object.getOwnPropertyDescriptor(Module["ready"],"_emscripten_bind_MeshBuilder_SetMetadataForAttribute_3")){Object.defineProperty(Module["ready"],"_emscripten_bind_MeshBuilder_SetMetadataForAttribute_3",{configurable:true,get:function(){abort("You are getting _emscripten_bind_MeshBuilder_SetMetadataForAttribute_3 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}});Object.defineProperty(Module["ready"],"_emscripten_bind_MeshBuilder_SetMetadataForAttribute_3",{configurable:true,set:function(){abort("You are setting _emscripten_bind_MeshBuilder_SetMetadataForAttribute_3 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}})}if(!Object.getOwnPropertyDescriptor(Module["ready"],"_emscripten_bind_MeshBuilder___destroy___0")){Object.defineProperty(Module["ready"],"_emscripten_bind_MeshBuilder___destroy___0",{configurable:true,get:function(){abort("You are getting _emscripten_bind_MeshBuilder___destroy___0 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}});Object.defineProperty(Module["ready"],"_emscripten_bind_MeshBuilder___destroy___0",{configurable:true,set:function(){abort("You are setting _emscripten_bind_MeshBuilder___destroy___0 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}})}if(!Object.getOwnPropertyDescriptor(Module["ready"],"_emscripten_bind_Encoder_Encoder_0")){Object.defineProperty(Module["ready"],"_emscripten_bind_Encoder_Encoder_0",{configurable:true,get:function(){abort("You are getting _emscripten_bind_Encoder_Encoder_0 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}});Object.defineProperty(Module["ready"],"_emscripten_bind_Encoder_Encoder_0",{configurable:true,set:function(){abort("You are setting _emscripten_bind_Encoder_Encoder_0 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}})}if(!Object.getOwnPropertyDescriptor(Module["ready"],"_emscripten_bind_Encoder_SetEncodingMethod_1")){Object.defineProperty(Module["ready"],"_emscripten_bind_Encoder_SetEncodingMethod_1",{configurable:true,get:function(){abort("You are getting _emscripten_bind_Encoder_SetEncodingMethod_1 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}});Object.defineProperty(Module["ready"],"_emscripten_bind_Encoder_SetEncodingMethod_1",{configurable:true,set:function(){abort("You are setting _emscripten_bind_Encoder_SetEncodingMethod_1 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}})}if(!Object.getOwnPropertyDescriptor(Module["ready"],"_emscripten_bind_Encoder_SetAttributeQuantization_2")){Object.defineProperty(Module["ready"],"_emscripten_bind_Encoder_SetAttributeQuantization_2",{configurable:true,get:function(){abort("You are getting _emscripten_bind_Encoder_SetAttributeQuantization_2 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}});Object.defineProperty(Module["ready"],"_emscripten_bind_Encoder_SetAttributeQuantization_2",{configurable:true,set:function(){abort("You are setting _emscripten_bind_Encoder_SetAttributeQuantization_2 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}})}if(!Object.getOwnPropertyDescriptor(Module["ready"],"_emscripten_bind_Encoder_SetAttributeExplicitQuantization_5")){Object.defineProperty(Module["ready"],"_emscripten_bind_Encoder_SetAttributeExplicitQuantization_5",{configurable:true,get:function(){abort("You are getting _emscripten_bind_Encoder_SetAttributeExplicitQuantization_5 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}});Object.defineProperty(Module["ready"],"_emscripten_bind_Encoder_SetAttributeExplicitQuantization_5",{configurable:true,set:function(){abort("You are setting _emscripten_bind_Encoder_SetAttributeExplicitQuantization_5 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}})}if(!Object.getOwnPropertyDescriptor(Module["ready"],"_emscripten_bind_Encoder_SetSpeedOptions_2")){Object.defineProperty(Module["ready"],"_emscripten_bind_Encoder_SetSpeedOptions_2",{configurable:true,get:function(){abort("You are getting _emscripten_bind_Encoder_SetSpeedOptions_2 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}});Object.defineProperty(Module["ready"],"_emscripten_bind_Encoder_SetSpeedOptions_2",{configurable:true,set:function(){abort("You are setting _emscripten_bind_Encoder_SetSpeedOptions_2 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}})}if(!Object.getOwnPropertyDescriptor(Module["ready"],"_emscripten_bind_Encoder_SetTrackEncodedProperties_1")){Object.defineProperty(Module["ready"],"_emscripten_bind_Encoder_SetTrackEncodedProperties_1",{configurable:true,get:function(){abort("You are getting _emscripten_bind_Encoder_SetTrackEncodedProperties_1 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}});Object.defineProperty(Module["ready"],"_emscripten_bind_Encoder_SetTrackEncodedProperties_1",{configurable:true,set:function(){abort("You are setting _emscripten_bind_Encoder_SetTrackEncodedProperties_1 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}})}if(!Object.getOwnPropertyDescriptor(Module["ready"],"_emscripten_bind_Encoder_EncodeMeshToDracoBuffer_2")){Object.defineProperty(Module["ready"],"_emscripten_bind_Encoder_EncodeMeshToDracoBuffer_2",{configurable:true,get:function(){abort("You are getting _emscripten_bind_Encoder_EncodeMeshToDracoBuffer_2 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}});Object.defineProperty(Module["ready"],"_emscripten_bind_Encoder_EncodeMeshToDracoBuffer_2",{configurable:true,set:function(){abort("You are setting _emscripten_bind_Encoder_EncodeMeshToDracoBuffer_2 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}})}if(!Object.getOwnPropertyDescriptor(Module["ready"],"_emscripten_bind_Encoder_EncodePointCloudToDracoBuffer_3")){Object.defineProperty(Module["ready"],"_emscripten_bind_Encoder_EncodePointCloudToDracoBuffer_3",{configurable:true,get:function(){abort("You are getting _emscripten_bind_Encoder_EncodePointCloudToDracoBuffer_3 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}});Object.defineProperty(Module["ready"],"_emscripten_bind_Encoder_EncodePointCloudToDracoBuffer_3",{configurable:true,set:function(){abort("You are setting _emscripten_bind_Encoder_EncodePointCloudToDracoBuffer_3 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}})}if(!Object.getOwnPropertyDescriptor(Module["ready"],"_emscripten_bind_Encoder_GetNumberOfEncodedPoints_0")){Object.defineProperty(Module["ready"],"_emscripten_bind_Encoder_GetNumberOfEncodedPoints_0",{configurable:true,get:function(){abort("You are getting _emscripten_bind_Encoder_GetNumberOfEncodedPoints_0 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}});Object.defineProperty(Module["ready"],"_emscripten_bind_Encoder_GetNumberOfEncodedPoints_0",{configurable:true,set:function(){abort("You are setting _emscripten_bind_Encoder_GetNumberOfEncodedPoints_0 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}})}if(!Object.getOwnPropertyDescriptor(Module["ready"],"_emscripten_bind_Encoder_GetNumberOfEncodedFaces_0")){Object.defineProperty(Module["ready"],"_emscripten_bind_Encoder_GetNumberOfEncodedFaces_0",{configurable:true,get:function(){abort("You are getting _emscripten_bind_Encoder_GetNumberOfEncodedFaces_0 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}});Object.defineProperty(Module["ready"],"_emscripten_bind_Encoder_GetNumberOfEncodedFaces_0",{configurable:true,set:function(){abort("You are setting _emscripten_bind_Encoder_GetNumberOfEncodedFaces_0 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}})}if(!Object.getOwnPropertyDescriptor(Module["ready"],"_emscripten_bind_Encoder___destroy___0")){Object.defineProperty(Module["ready"],"_emscripten_bind_Encoder___destroy___0",{configurable:true,get:function(){abort("You are getting _emscripten_bind_Encoder___destroy___0 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}});Object.defineProperty(Module["ready"],"_emscripten_bind_Encoder___destroy___0",{configurable:true,set:function(){abort("You are setting _emscripten_bind_Encoder___destroy___0 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}})}if(!Object.getOwnPropertyDescriptor(Module["ready"],"_emscripten_bind_ExpertEncoder_ExpertEncoder_1")){Object.defineProperty(Module["ready"],"_emscripten_bind_ExpertEncoder_ExpertEncoder_1",{configurable:true,get:function(){abort("You are getting _emscripten_bind_ExpertEncoder_ExpertEncoder_1 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}});Object.defineProperty(Module["ready"],"_emscripten_bind_ExpertEncoder_ExpertEncoder_1",{configurable:true,set:function(){abort("You are setting _emscripten_bind_ExpertEncoder_ExpertEncoder_1 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}})}if(!Object.getOwnPropertyDescriptor(Module["ready"],"_emscripten_bind_ExpertEncoder_SetEncodingMethod_1")){Object.defineProperty(Module["ready"],"_emscripten_bind_ExpertEncoder_SetEncodingMethod_1",{configurable:true,get:function(){abort("You are getting _emscripten_bind_ExpertEncoder_SetEncodingMethod_1 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}});Object.defineProperty(Module["ready"],"_emscripten_bind_ExpertEncoder_SetEncodingMethod_1",{configurable:true,set:function(){abort("You are setting _emscripten_bind_ExpertEncoder_SetEncodingMethod_1 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}})}if(!Object.getOwnPropertyDescriptor(Module["ready"],"_emscripten_bind_ExpertEncoder_SetAttributeQuantization_2")){Object.defineProperty(Module["ready"],"_emscripten_bind_ExpertEncoder_SetAttributeQuantization_2",{configurable:true,get:function(){abort("You are getting _emscripten_bind_ExpertEncoder_SetAttributeQuantization_2 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}});Object.defineProperty(Module["ready"],"_emscripten_bind_ExpertEncoder_SetAttributeQuantization_2",{configurable:true,set:function(){abort("You are setting _emscripten_bind_ExpertEncoder_SetAttributeQuantization_2 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}})}if(!Object.getOwnPropertyDescriptor(Module["ready"],"_emscripten_bind_ExpertEncoder_SetAttributeExplicitQuantization_5")){Object.defineProperty(Module["ready"],"_emscripten_bind_ExpertEncoder_SetAttributeExplicitQuantization_5",{configurable:true,get:function(){abort("You are getting _emscripten_bind_ExpertEncoder_SetAttributeExplicitQuantization_5 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}});Object.defineProperty(Module["ready"],"_emscripten_bind_ExpertEncoder_SetAttributeExplicitQuantization_5",{configurable:true,set:function(){abort("You are setting _emscripten_bind_ExpertEncoder_SetAttributeExplicitQuantization_5 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}})}if(!Object.getOwnPropertyDescriptor(Module["ready"],"_emscripten_bind_ExpertEncoder_SetSpeedOptions_2")){Object.defineProperty(Module["ready"],"_emscripten_bind_ExpertEncoder_SetSpeedOptions_2",{configurable:true,get:function(){abort("You are getting _emscripten_bind_ExpertEncoder_SetSpeedOptions_2 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}});Object.defineProperty(Module["ready"],"_emscripten_bind_ExpertEncoder_SetSpeedOptions_2",{configurable:true,set:function(){abort("You are setting _emscripten_bind_ExpertEncoder_SetSpeedOptions_2 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}})}if(!Object.getOwnPropertyDescriptor(Module["ready"],"_emscripten_bind_ExpertEncoder_SetTrackEncodedProperties_1")){Object.defineProperty(Module["ready"],"_emscripten_bind_ExpertEncoder_SetTrackEncodedProperties_1",{configurable:true,get:function(){abort("You are getting _emscripten_bind_ExpertEncoder_SetTrackEncodedProperties_1 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}});Object.defineProperty(Module["ready"],"_emscripten_bind_ExpertEncoder_SetTrackEncodedProperties_1",{configurable:true,set:function(){abort("You are setting _emscripten_bind_ExpertEncoder_SetTrackEncodedProperties_1 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}})}if(!Object.getOwnPropertyDescriptor(Module["ready"],"_emscripten_bind_ExpertEncoder_EncodeToDracoBuffer_2")){Object.defineProperty(Module["ready"],"_emscripten_bind_ExpertEncoder_EncodeToDracoBuffer_2",{configurable:true,get:function(){abort("You are getting _emscripten_bind_ExpertEncoder_EncodeToDracoBuffer_2 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}});Object.defineProperty(Module["ready"],"_emscripten_bind_ExpertEncoder_EncodeToDracoBuffer_2",{configurable:true,set:function(){abort("You are setting _emscripten_bind_ExpertEncoder_EncodeToDracoBuffer_2 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}})}if(!Object.getOwnPropertyDescriptor(Module["ready"],"_emscripten_bind_ExpertEncoder_GetNumberOfEncodedPoints_0")){Object.defineProperty(Module["ready"],"_emscripten_bind_ExpertEncoder_GetNumberOfEncodedPoints_0",{configurable:true,get:function(){abort("You are getting _emscripten_bind_ExpertEncoder_GetNumberOfEncodedPoints_0 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}});Object.defineProperty(Module["ready"],"_emscripten_bind_ExpertEncoder_GetNumberOfEncodedPoints_0",{configurable:true,set:function(){abort("You are setting _emscripten_bind_ExpertEncoder_GetNumberOfEncodedPoints_0 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}})}if(!Object.getOwnPropertyDescriptor(Module["ready"],"_emscripten_bind_ExpertEncoder_GetNumberOfEncodedFaces_0")){Object.defineProperty(Module["ready"],"_emscripten_bind_ExpertEncoder_GetNumberOfEncodedFaces_0",{configurable:true,get:function(){abort("You are getting _emscripten_bind_ExpertEncoder_GetNumberOfEncodedFaces_0 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}});Object.defineProperty(Module["ready"],"_emscripten_bind_ExpertEncoder_GetNumberOfEncodedFaces_0",{configurable:true,set:function(){abort("You are setting _emscripten_bind_ExpertEncoder_GetNumberOfEncodedFaces_0 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}})}if(!Object.getOwnPropertyDescriptor(Module["ready"],"_emscripten_bind_ExpertEncoder___destroy___0")){Object.defineProperty(Module["ready"],"_emscripten_bind_ExpertEncoder___destroy___0",{configurable:true,get:function(){abort("You are getting _emscripten_bind_ExpertEncoder___destroy___0 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}});Object.defineProperty(Module["ready"],"_emscripten_bind_ExpertEncoder___destroy___0",{configurable:true,set:function(){abort("You are setting _emscripten_bind_ExpertEncoder___destroy___0 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}})}if(!Object.getOwnPropertyDescriptor(Module["ready"],"_emscripten_enum_draco_GeometryAttribute_Type_INVALID")){Object.defineProperty(Module["ready"],"_emscripten_enum_draco_GeometryAttribute_Type_INVALID",{configurable:true,get:function(){abort("You are getting _emscripten_enum_draco_GeometryAttribute_Type_INVALID on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}});Object.defineProperty(Module["ready"],"_emscripten_enum_draco_GeometryAttribute_Type_INVALID",{configurable:true,set:function(){abort("You are setting _emscripten_enum_draco_GeometryAttribute_Type_INVALID on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}})}if(!Object.getOwnPropertyDescriptor(Module["ready"],"_emscripten_enum_draco_GeometryAttribute_Type_POSITION")){Object.defineProperty(Module["ready"],"_emscripten_enum_draco_GeometryAttribute_Type_POSITION",{configurable:true,get:function(){abort("You are getting _emscripten_enum_draco_GeometryAttribute_Type_POSITION on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}});Object.defineProperty(Module["ready"],"_emscripten_enum_draco_GeometryAttribute_Type_POSITION",{configurable:true,set:function(){abort("You are setting _emscripten_enum_draco_GeometryAttribute_Type_POSITION on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}})}if(!Object.getOwnPropertyDescriptor(Module["ready"],"_emscripten_enum_draco_GeometryAttribute_Type_NORMAL")){Object.defineProperty(Module["ready"],"_emscripten_enum_draco_GeometryAttribute_Type_NORMAL",{configurable:true,get:function(){abort("You are getting _emscripten_enum_draco_GeometryAttribute_Type_NORMAL on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}});Object.defineProperty(Module["ready"],"_emscripten_enum_draco_GeometryAttribute_Type_NORMAL",{configurable:true,set:function(){abort("You are setting _emscripten_enum_draco_GeometryAttribute_Type_NORMAL on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}})}if(!Object.getOwnPropertyDescriptor(Module["ready"],"_emscripten_enum_draco_GeometryAttribute_Type_COLOR")){Object.defineProperty(Module["ready"],"_emscripten_enum_draco_GeometryAttribute_Type_COLOR",{configurable:true,get:function(){abort("You are getting _emscripten_enum_draco_GeometryAttribute_Type_COLOR on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}});Object.defineProperty(Module["ready"],"_emscripten_enum_draco_GeometryAttribute_Type_COLOR",{configurable:true,set:function(){abort("You are setting _emscripten_enum_draco_GeometryAttribute_Type_COLOR on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}})}if(!Object.getOwnPropertyDescriptor(Module["ready"],"_emscripten_enum_draco_GeometryAttribute_Type_TEX_COORD")){Object.defineProperty(Module["ready"],"_emscripten_enum_draco_GeometryAttribute_Type_TEX_COORD",{configurable:true,get:function(){abort("You are getting _emscripten_enum_draco_GeometryAttribute_Type_TEX_COORD on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}});Object.defineProperty(Module["ready"],"_emscripten_enum_draco_GeometryAttribute_Type_TEX_COORD",{configurable:true,set:function(){abort("You are setting _emscripten_enum_draco_GeometryAttribute_Type_TEX_COORD on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}})}if(!Object.getOwnPropertyDescriptor(Module["ready"],"_emscripten_enum_draco_GeometryAttribute_Type_GENERIC")){Object.defineProperty(Module["ready"],"_emscripten_enum_draco_GeometryAttribute_Type_GENERIC",{configurable:true,get:function(){abort("You are getting _emscripten_enum_draco_GeometryAttribute_Type_GENERIC on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}});Object.defineProperty(Module["ready"],"_emscripten_enum_draco_GeometryAttribute_Type_GENERIC",{configurable:true,set:function(){abort("You are setting _emscripten_enum_draco_GeometryAttribute_Type_GENERIC on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}})}if(!Object.getOwnPropertyDescriptor(Module["ready"],"_emscripten_enum_draco_EncodedGeometryType_INVALID_GEOMETRY_TYPE")){Object.defineProperty(Module["ready"],"_emscripten_enum_draco_EncodedGeometryType_INVALID_GEOMETRY_TYPE",{configurable:true,get:function(){abort("You are getting _emscripten_enum_draco_EncodedGeometryType_INVALID_GEOMETRY_TYPE on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}});Object.defineProperty(Module["ready"],"_emscripten_enum_draco_EncodedGeometryType_INVALID_GEOMETRY_TYPE",{configurable:true,set:function(){abort("You are setting _emscripten_enum_draco_EncodedGeometryType_INVALID_GEOMETRY_TYPE on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}})}if(!Object.getOwnPropertyDescriptor(Module["ready"],"_emscripten_enum_draco_EncodedGeometryType_POINT_CLOUD")){Object.defineProperty(Module["ready"],"_emscripten_enum_draco_EncodedGeometryType_POINT_CLOUD",{configurable:true,get:function(){abort("You are getting _emscripten_enum_draco_EncodedGeometryType_POINT_CLOUD on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}});Object.defineProperty(Module["ready"],"_emscripten_enum_draco_EncodedGeometryType_POINT_CLOUD",{configurable:true,set:function(){abort("You are setting _emscripten_enum_draco_EncodedGeometryType_POINT_CLOUD on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}})}if(!Object.getOwnPropertyDescriptor(Module["ready"],"_emscripten_enum_draco_EncodedGeometryType_TRIANGULAR_MESH")){Object.defineProperty(Module["ready"],"_emscripten_enum_draco_EncodedGeometryType_TRIANGULAR_MESH",{configurable:true,get:function(){abort("You are getting _emscripten_enum_draco_EncodedGeometryType_TRIANGULAR_MESH on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}});Object.defineProperty(Module["ready"],"_emscripten_enum_draco_EncodedGeometryType_TRIANGULAR_MESH",{configurable:true,set:function(){abort("You are setting _emscripten_enum_draco_EncodedGeometryType_TRIANGULAR_MESH on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}})}if(!Object.getOwnPropertyDescriptor(Module["ready"],"_emscripten_enum_draco_MeshEncoderMethod_MESH_SEQUENTIAL_ENCODING")){Object.defineProperty(Module["ready"],"_emscripten_enum_draco_MeshEncoderMethod_MESH_SEQUENTIAL_ENCODING",{configurable:true,get:function(){abort("You are getting _emscripten_enum_draco_MeshEncoderMethod_MESH_SEQUENTIAL_ENCODING on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}});Object.defineProperty(Module["ready"],"_emscripten_enum_draco_MeshEncoderMethod_MESH_SEQUENTIAL_ENCODING",{configurable:true,set:function(){abort("You are setting _emscripten_enum_draco_MeshEncoderMethod_MESH_SEQUENTIAL_ENCODING on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}})}if(!Object.getOwnPropertyDescriptor(Module["ready"],"_emscripten_enum_draco_MeshEncoderMethod_MESH_EDGEBREAKER_ENCODING")){Object.defineProperty(Module["ready"],"_emscripten_enum_draco_MeshEncoderMethod_MESH_EDGEBREAKER_ENCODING",{configurable:true,get:function(){abort("You are getting _emscripten_enum_draco_MeshEncoderMethod_MESH_EDGEBREAKER_ENCODING on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}});Object.defineProperty(Module["ready"],"_emscripten_enum_draco_MeshEncoderMethod_MESH_EDGEBREAKER_ENCODING",{configurable:true,set:function(){abort("You are setting _emscripten_enum_draco_MeshEncoderMethod_MESH_EDGEBREAKER_ENCODING on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}})}if(!Object.getOwnPropertyDescriptor(Module["ready"],"_fflush")){Object.defineProperty(Module["ready"],"_fflush",{configurable:true,get:function(){abort("You are getting _fflush on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}});Object.defineProperty(Module["ready"],"_fflush",{configurable:true,set:function(){abort("You are setting _fflush on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}})}if(!Object.getOwnPropertyDescriptor(Module["ready"],"onRuntimeInitialized")){Object.defineProperty(Module["ready"],"onRuntimeInitialized",{configurable:true,get:function(){abort("You are getting onRuntimeInitialized on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}});Object.defineProperty(Module["ready"],"onRuntimeInitialized",{configurable:true,set:function(){abort("You are setting onRuntimeInitialized on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}})}var isRuntimeInitialized=false;var isModuleParsed=false;Module["onRuntimeInitialized"]=function(){isRuntimeInitialized=true;if(isModuleParsed){if(typeof Module["onModuleLoaded"]==="function"){Module["onModuleLoaded"](Module)}}};Module["onModuleParsed"]=function(){isModuleParsed=true;if(isRuntimeInitialized){if(typeof Module["onModuleLoaded"]==="function"){Module["onModuleLoaded"](Module)}}};function isVersionSupported(versionString){if(typeof versionString!=="string")return false;const version=versionString.split(".");if(version.length<2||version.length>3)return false;if(version[0]==1&&version[1]>=0&&version[1]<=5)return true;if(version[0]!=0||version[1]>10)return false;return true}Module["isVersionSupported"]=isVersionSupported;var moduleOverrides=Object.assign({},Module);var arguments_=[];var thisProgram="./this.program";var quit_=(status,toThrow)=>{throw toThrow};var ENVIRONMENT_IS_WEB=typeof window=="object";var ENVIRONMENT_IS_WORKER=typeof importScripts=="function";var ENVIRONMENT_IS_NODE=typeof process=="object"&&typeof process.versions=="object"&&typeof process.versions.node=="string";var ENVIRONMENT_IS_SHELL=!ENVIRONMENT_IS_WEB&&!ENVIRONMENT_IS_NODE&&!ENVIRONMENT_IS_WORKER;if(Module["ENVIRONMENT"]){throw new Error("Module.ENVIRONMENT has been deprecated. To force the environment, use the ENVIRONMENT compile-time option (for example, -sENVIRONMENT=web or -sENVIRONMENT=node)")}var scriptDirectory="";function locateFile(path){if(Module["locateFile"]){return Module["locateFile"](path,scriptDirectory)}return scriptDirectory+path}var read_,readAsync,readBinary,setWindowTitle;function logExceptionOnExit(e){if(e instanceof ExitStatus)return;let toLog=e;if(e&&typeof e=="object"&&e.stack){toLog=[e,e.stack]}err("exiting due to exception: "+toLog)}var fs;var nodePath;var requireNodeFS;if(ENVIRONMENT_IS_NODE){if(!(typeof process=="object"&&typeof require=="function"))throw new Error("not compiled for this environment (did you build to HTML and try to run it not on the web, or set ENVIRONMENT to something - like node - and run it someplace else - like on the web?)");if(ENVIRONMENT_IS_WORKER){scriptDirectory=require("path").dirname(scriptDirectory)+"/"}else{scriptDirectory=__dirname+"/"}requireNodeFS=()=>{if(!nodePath){fs=require("fs");nodePath=require("path")}};read_=function shell_read(filename,binary){var ret=tryParseAsDataURI(filename);if(ret){return binary?ret:ret.toString()}requireNodeFS();filename=nodePath["normalize"](filename);return fs.readFileSync(filename,binary?undefined:"utf8")};readBinary=filename=>{var ret=read_(filename,true);if(!ret.buffer){ret=new Uint8Array(ret)}assert(ret.buffer);return ret};readAsync=(filename,onload,onerror)=>{var ret=tryParseAsDataURI(filename);if(ret){onload(ret)}requireNodeFS();filename=nodePath["normalize"](filename);fs.readFile(filename,function(err,data){if(err)onerror(err);else onload(data.buffer)})};if(process["argv"].length>1){thisProgram=process["argv"][1].replace(/\\/g,"/")}arguments_=process["argv"].slice(2);quit_=(status,toThrow)=>{if(keepRuntimeAlive()){process["exitCode"]=status;throw toThrow}logExceptionOnExit(toThrow);process["exit"](status)};Module["inspect"]=function(){return"[Emscripten Module object]"}}else if(ENVIRONMENT_IS_SHELL){if(typeof process=="object"&&typeof require==="function"||typeof window=="object"||typeof importScripts=="function")throw new Error("not compiled for this environment (did you build to HTML and try to run it not on the web, or set ENVIRONMENT to something - like node - and run it someplace else - like on the web?)");if(typeof read!="undefined"){read_=function shell_read(f){const data=tryParseAsDataURI(f);if(data){return intArrayToString(data)}return read(f)}}readBinary=function readBinary(f){let data;data=tryParseAsDataURI(f);if(data){return data}if(typeof readbuffer=="function"){return new Uint8Array(readbuffer(f))}data=read(f,"binary");assert(typeof data=="object");return data};readAsync=function readAsync(f,onload,onerror){setTimeout(()=>onload(readBinary(f)),0)};if(typeof scriptArgs!="undefined"){arguments_=scriptArgs}else if(typeof arguments!="undefined"){arguments_=arguments}if(typeof quit=="function"){quit_=(status,toThrow)=>{logExceptionOnExit(toThrow);quit(status)}}if(typeof print!="undefined"){if(typeof console=="undefined")console={};console.log=print;console.warn=console.error=typeof printErr!="undefined"?printErr:print}}else if(ENVIRONMENT_IS_WEB||ENVIRONMENT_IS_WORKER){if(ENVIRONMENT_IS_WORKER){scriptDirectory=self.location.href}else if(typeof document!="undefined"&&document.currentScript){scriptDirectory=document.currentScript.src}if(_scriptDir){scriptDirectory=_scriptDir}if(scriptDirectory.indexOf("blob:")!==0){scriptDirectory=scriptDirectory.substr(0,scriptDirectory.replace(/[?#].*/,"").lastIndexOf("/")+1)}else{scriptDirectory=""}if(!(typeof window=="object"||typeof importScripts=="function"))throw new Error("not compiled for this environment (did you build to HTML and try to run it not on the web, or set ENVIRONMENT to something - like node - and run it someplace else - like on the web?)");{read_=url=>{try{var xhr=new XMLHttpRequest;xhr.open("GET",url,false);xhr.send(null);return xhr.responseText}catch(err){var data=tryParseAsDataURI(url);if(data){return intArrayToString(data)}throw err}};if(ENVIRONMENT_IS_WORKER){readBinary=url=>{try{var xhr=new XMLHttpRequest;xhr.open("GET",url,false);xhr.responseType="arraybuffer";xhr.send(null);return new Uint8Array(xhr.response)}catch(err){var data=tryParseAsDataURI(url);if(data){return data}throw err}}}readAsync=(url,onload,onerror)=>{var xhr=new XMLHttpRequest;xhr.open("GET",url,true);xhr.responseType="arraybuffer";xhr.onload=()=>{if(xhr.status==200||xhr.status==0&&xhr.response){onload(xhr.response);return}var data=tryParseAsDataURI(url);if(data){onload(data.buffer);return}onerror()};xhr.onerror=onerror;xhr.send(null)}}setWindowTitle=title=>document.title=title}else{throw new Error("environment detection error")}var out=Module["print"]||console.log.bind(console);var err=Module["printErr"]||console.warn.bind(console);Object.assign(Module,moduleOverrides);moduleOverrides=null;checkIncomingModuleAPI();if(Module["arguments"])arguments_=Module["arguments"];legacyModuleProp("arguments","arguments_");if(Module["thisProgram"])thisProgram=Module["thisProgram"];legacyModuleProp("thisProgram","thisProgram");if(Module["quit"])quit_=Module["quit"];legacyModuleProp("quit","quit_");assert(typeof Module["memoryInitializerPrefixURL"]=="undefined","Module.memoryInitializerPrefixURL option was removed, use Module.locateFile instead");assert(typeof Module["pthreadMainPrefixURL"]=="undefined","Module.pthreadMainPrefixURL option was removed, use Module.locateFile instead");assert(typeof Module["cdInitializerPrefixURL"]=="undefined","Module.cdInitializerPrefixURL option was removed, use Module.locateFile instead");assert(typeof Module["filePackagePrefixURL"]=="undefined","Module.filePackagePrefixURL option was removed, use Module.locateFile instead");assert(typeof Module["read"]=="undefined","Module.read option was removed (modify read_ in JS)");assert(typeof Module["readAsync"]=="undefined","Module.readAsync option was removed (modify readAsync in JS)");assert(typeof Module["readBinary"]=="undefined","Module.readBinary option was removed (modify readBinary in JS)");assert(typeof Module["setWindowTitle"]=="undefined","Module.setWindowTitle option was removed (modify setWindowTitle in JS)");assert(typeof Module["TOTAL_MEMORY"]=="undefined","Module.TOTAL_MEMORY has been renamed Module.INITIAL_MEMORY");legacyModuleProp("read","read_");legacyModuleProp("readAsync","readAsync");legacyModuleProp("readBinary","readBinary");legacyModuleProp("setWindowTitle","setWindowTitle");assert(!ENVIRONMENT_IS_SHELL,"shell environment detected but not enabled at build time. Add 'shell' to `-sENVIRONMENT` to enable.");var POINTER_SIZE=4;function warnOnce(text){if(!warnOnce.shown)warnOnce.shown={};if(!warnOnce.shown[text]){warnOnce.shown[text]=1;err(text)}}function convertJsFunctionToWasm(func,sig){return func}var freeTableIndexes=[];var functionsInTableMap;function getEmptyTableSlot(){if(freeTableIndexes.length){return freeTableIndexes.pop()}try{wasmTable.grow(1)}catch(err){if(!(err instanceof RangeError)){throw err}throw"Unable to grow wasm table. Set ALLOW_TABLE_GROWTH."}return wasmTable.length-1}function updateTableMap(offset,count){for(var i=offset;iabort(unexportedMessage(sym,isFSSybol))}}var tempRet0=0;var setTempRet0=value=>{tempRet0=value};var getTempRet0=()=>tempRet0;var wasmBinary;if(Module["wasmBinary"])wasmBinary=Module["wasmBinary"];legacyModuleProp("wasmBinary","wasmBinary");var noExitRuntime=Module["noExitRuntime"]||true;legacyModuleProp("noExitRuntime","noExitRuntime");var WebAssembly={Memory:function(opts){this.buffer=new ArrayBuffer(opts["initial"]*65536)},Module:function(binary){},Instance:function(module,info){this.exports=( +var Module=typeof DracoEncoderModule!="undefined"?DracoEncoderModule:{};var readyPromiseResolve,readyPromiseReject;Module["ready"]=new Promise(function(resolve,reject){readyPromiseResolve=resolve;readyPromiseReject=reject});["_free","_malloc","_emscripten_bind_VoidPtr___destroy___0","_emscripten_bind_GeometryAttribute_GeometryAttribute_0","_emscripten_bind_GeometryAttribute___destroy___0","_emscripten_bind_PointAttribute_PointAttribute_0","_emscripten_bind_PointAttribute_size_0","_emscripten_bind_PointAttribute_attribute_type_0","_emscripten_bind_PointAttribute_data_type_0","_emscripten_bind_PointAttribute_num_components_0","_emscripten_bind_PointAttribute_normalized_0","_emscripten_bind_PointAttribute_byte_stride_0","_emscripten_bind_PointAttribute_byte_offset_0","_emscripten_bind_PointAttribute_unique_id_0","_emscripten_bind_PointAttribute___destroy___0","_emscripten_bind_PointCloud_PointCloud_0","_emscripten_bind_PointCloud_num_attributes_0","_emscripten_bind_PointCloud_num_points_0","_emscripten_bind_PointCloud___destroy___0","_emscripten_bind_Mesh_Mesh_0","_emscripten_bind_Mesh_num_faces_0","_emscripten_bind_Mesh_num_attributes_0","_emscripten_bind_Mesh_num_points_0","_emscripten_bind_Mesh_set_num_points_1","_emscripten_bind_Mesh___destroy___0","_emscripten_bind_Metadata_Metadata_0","_emscripten_bind_Metadata___destroy___0","_emscripten_bind_DracoInt8Array_DracoInt8Array_0","_emscripten_bind_DracoInt8Array_GetValue_1","_emscripten_bind_DracoInt8Array_size_0","_emscripten_bind_DracoInt8Array___destroy___0","_emscripten_bind_MetadataBuilder_MetadataBuilder_0","_emscripten_bind_MetadataBuilder_AddStringEntry_3","_emscripten_bind_MetadataBuilder_AddIntEntry_3","_emscripten_bind_MetadataBuilder_AddIntEntryArray_4","_emscripten_bind_MetadataBuilder_AddDoubleEntry_3","_emscripten_bind_MetadataBuilder___destroy___0","_emscripten_bind_PointCloudBuilder_PointCloudBuilder_0","_emscripten_bind_PointCloudBuilder_AddFloatAttribute_5","_emscripten_bind_PointCloudBuilder_AddInt8Attribute_5","_emscripten_bind_PointCloudBuilder_AddUInt8Attribute_5","_emscripten_bind_PointCloudBuilder_AddInt16Attribute_5","_emscripten_bind_PointCloudBuilder_AddUInt16Attribute_5","_emscripten_bind_PointCloudBuilder_AddInt32Attribute_5","_emscripten_bind_PointCloudBuilder_AddUInt32Attribute_5","_emscripten_bind_PointCloudBuilder_AddMetadata_2","_emscripten_bind_PointCloudBuilder_SetMetadataForAttribute_3","_emscripten_bind_PointCloudBuilder___destroy___0","_emscripten_bind_MeshBuilder_MeshBuilder_0","_emscripten_bind_MeshBuilder_AddFacesToMesh_3","_emscripten_bind_MeshBuilder_AddFloatAttributeToMesh_5","_emscripten_bind_MeshBuilder_AddInt32AttributeToMesh_5","_emscripten_bind_MeshBuilder_AddMetadataToMesh_2","_emscripten_bind_MeshBuilder_AddFloatAttribute_5","_emscripten_bind_MeshBuilder_AddInt8Attribute_5","_emscripten_bind_MeshBuilder_AddUInt8Attribute_5","_emscripten_bind_MeshBuilder_AddInt16Attribute_5","_emscripten_bind_MeshBuilder_AddUInt16Attribute_5","_emscripten_bind_MeshBuilder_AddInt32Attribute_5","_emscripten_bind_MeshBuilder_AddUInt32Attribute_5","_emscripten_bind_MeshBuilder_AddMetadata_2","_emscripten_bind_MeshBuilder_SetMetadataForAttribute_3","_emscripten_bind_MeshBuilder___destroy___0","_emscripten_bind_Encoder_Encoder_0","_emscripten_bind_Encoder_SetEncodingMethod_1","_emscripten_bind_Encoder_SetAttributeQuantization_2","_emscripten_bind_Encoder_SetAttributeExplicitQuantization_5","_emscripten_bind_Encoder_SetSpeedOptions_2","_emscripten_bind_Encoder_SetTrackEncodedProperties_1","_emscripten_bind_Encoder_EncodeMeshToDracoBuffer_2","_emscripten_bind_Encoder_EncodePointCloudToDracoBuffer_3","_emscripten_bind_Encoder_GetNumberOfEncodedPoints_0","_emscripten_bind_Encoder_GetNumberOfEncodedFaces_0","_emscripten_bind_Encoder___destroy___0","_emscripten_bind_ExpertEncoder_ExpertEncoder_1","_emscripten_bind_ExpertEncoder_SetEncodingMethod_1","_emscripten_bind_ExpertEncoder_SetAttributeQuantization_2","_emscripten_bind_ExpertEncoder_SetAttributeExplicitQuantization_5","_emscripten_bind_ExpertEncoder_SetSpeedOptions_2","_emscripten_bind_ExpertEncoder_SetTrackEncodedProperties_1","_emscripten_bind_ExpertEncoder_EncodeToDracoBuffer_2","_emscripten_bind_ExpertEncoder_GetNumberOfEncodedPoints_0","_emscripten_bind_ExpertEncoder_GetNumberOfEncodedFaces_0","_emscripten_bind_ExpertEncoder___destroy___0","_emscripten_enum_draco_GeometryAttribute_Type_INVALID","_emscripten_enum_draco_GeometryAttribute_Type_POSITION","_emscripten_enum_draco_GeometryAttribute_Type_NORMAL","_emscripten_enum_draco_GeometryAttribute_Type_COLOR","_emscripten_enum_draco_GeometryAttribute_Type_TEX_COORD","_emscripten_enum_draco_GeometryAttribute_Type_GENERIC","_emscripten_enum_draco_EncodedGeometryType_INVALID_GEOMETRY_TYPE","_emscripten_enum_draco_EncodedGeometryType_POINT_CLOUD","_emscripten_enum_draco_EncodedGeometryType_TRIANGULAR_MESH","_emscripten_enum_draco_MeshEncoderMethod_MESH_SEQUENTIAL_ENCODING","_emscripten_enum_draco_MeshEncoderMethod_MESH_EDGEBREAKER_ENCODING","_fflush","onRuntimeInitialized"].forEach(prop=>{if(!Object.getOwnPropertyDescriptor(Module["ready"],prop)){Object.defineProperty(Module["ready"],prop,{get:()=>abort("You are getting "+prop+" on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js"),set:()=>abort("You are setting "+prop+" on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")})}});var isRuntimeInitialized=false;var isModuleParsed=false;Module["onRuntimeInitialized"]=function(){isRuntimeInitialized=true;if(isModuleParsed){if(typeof Module["onModuleLoaded"]==="function"){Module["onModuleLoaded"](Module)}}};Module["onModuleParsed"]=function(){isModuleParsed=true;if(isRuntimeInitialized){if(typeof Module["onModuleLoaded"]==="function"){Module["onModuleLoaded"](Module)}}};function isVersionSupported(versionString){if(typeof versionString!=="string")return false;const version=versionString.split(".");if(version.length<2||version.length>3)return false;if(version[0]==1&&version[1]>=0&&version[1]<=5)return true;if(version[0]!=0||version[1]>10)return false;return true}Module["isVersionSupported"]=isVersionSupported;var moduleOverrides=Object.assign({},Module);var arguments_=[];var thisProgram="./this.program";var quit_=(status,toThrow)=>{throw toThrow};var ENVIRONMENT_IS_WEB=typeof window=="object";var ENVIRONMENT_IS_WORKER=typeof importScripts=="function";var ENVIRONMENT_IS_NODE=typeof process=="object"&&typeof process.versions=="object"&&typeof process.versions.node=="string";var ENVIRONMENT_IS_SHELL=!ENVIRONMENT_IS_WEB&&!ENVIRONMENT_IS_NODE&&!ENVIRONMENT_IS_WORKER;if(Module["ENVIRONMENT"]){throw new Error("Module.ENVIRONMENT has been deprecated. To force the environment, use the ENVIRONMENT compile-time option (for example, -sENVIRONMENT=web or -sENVIRONMENT=node)")}var scriptDirectory="";function locateFile(path){if(Module["locateFile"]){return Module["locateFile"](path,scriptDirectory)}return scriptDirectory+path}var read_,readAsync,readBinary,setWindowTitle;function logExceptionOnExit(e){if(e instanceof ExitStatus)return;let toLog=e;if(e&&typeof e=="object"&&e.stack){toLog=[e,e.stack]}err("exiting due to exception: "+toLog)}if(ENVIRONMENT_IS_NODE){if(typeof process=="undefined"||!process.release||process.release.name!=="node")throw new Error("not compiled for this environment (did you build to HTML and try to run it not on the web, or set ENVIRONMENT to something - like node - and run it someplace else - like on the web?)");if(ENVIRONMENT_IS_WORKER){scriptDirectory=require("path").dirname(scriptDirectory)+"/"}else{scriptDirectory=__dirname+"/"}var fs,nodePath;if(typeof require==="function"){fs=require("fs");nodePath=require("path")}read_=(filename,binary)=>{var ret=tryParseAsDataURI(filename);if(ret){return binary?ret:ret.toString()}filename=nodePath["normalize"](filename);return fs.readFileSync(filename,binary?undefined:"utf8")};readBinary=filename=>{var ret=read_(filename,true);if(!ret.buffer){ret=new Uint8Array(ret)}assert(ret.buffer);return ret};readAsync=(filename,onload,onerror)=>{var ret=tryParseAsDataURI(filename);if(ret){onload(ret)}filename=nodePath["normalize"](filename);fs.readFile(filename,function(err,data){if(err)onerror(err);else onload(data.buffer)})};if(process["argv"].length>1){thisProgram=process["argv"][1].replace(/\\/g,"/")}arguments_=process["argv"].slice(2);quit_=(status,toThrow)=>{if(keepRuntimeAlive()){process["exitCode"]=status;throw toThrow}logExceptionOnExit(toThrow);process["exit"](status)};Module["inspect"]=function(){return"[Emscripten Module object]"}}else if(ENVIRONMENT_IS_SHELL){if(typeof process=="object"&&typeof require==="function"||typeof window=="object"||typeof importScripts=="function")throw new Error("not compiled for this environment (did you build to HTML and try to run it not on the web, or set ENVIRONMENT to something - like node - and run it someplace else - like on the web?)");if(typeof read!="undefined"){read_=function shell_read(f){const data=tryParseAsDataURI(f);if(data){return intArrayToString(data)}return read(f)}}readBinary=function readBinary(f){let data;data=tryParseAsDataURI(f);if(data){return data}if(typeof readbuffer=="function"){return new Uint8Array(readbuffer(f))}data=read(f,"binary");assert(typeof data=="object");return data};readAsync=function readAsync(f,onload,onerror){setTimeout(()=>onload(readBinary(f)),0)};if(typeof scriptArgs!="undefined"){arguments_=scriptArgs}else if(typeof arguments!="undefined"){arguments_=arguments}if(typeof quit=="function"){quit_=(status,toThrow)=>{logExceptionOnExit(toThrow);quit(status)}}if(typeof print!="undefined"){if(typeof console=="undefined")console={};console.log=print;console.warn=console.error=typeof printErr!="undefined"?printErr:print}}else if(ENVIRONMENT_IS_WEB||ENVIRONMENT_IS_WORKER){if(ENVIRONMENT_IS_WORKER){scriptDirectory=self.location.href}else if(typeof document!="undefined"&&document.currentScript){scriptDirectory=document.currentScript.src}if(_scriptDir){scriptDirectory=_scriptDir}if(scriptDirectory.indexOf("blob:")!==0){scriptDirectory=scriptDirectory.substr(0,scriptDirectory.replace(/[?#].*/,"").lastIndexOf("/")+1)}else{scriptDirectory=""}if(!(typeof window=="object"||typeof importScripts=="function"))throw new Error("not compiled for this environment (did you build to HTML and try to run it not on the web, or set ENVIRONMENT to something - like node - and run it someplace else - like on the web?)");{read_=url=>{try{var xhr=new XMLHttpRequest;xhr.open("GET",url,false);xhr.send(null);return xhr.responseText}catch(err){var data=tryParseAsDataURI(url);if(data){return intArrayToString(data)}throw err}};if(ENVIRONMENT_IS_WORKER){readBinary=url=>{try{var xhr=new XMLHttpRequest;xhr.open("GET",url,false);xhr.responseType="arraybuffer";xhr.send(null);return new Uint8Array(xhr.response)}catch(err){var data=tryParseAsDataURI(url);if(data){return data}throw err}}}readAsync=(url,onload,onerror)=>{var xhr=new XMLHttpRequest;xhr.open("GET",url,true);xhr.responseType="arraybuffer";xhr.onload=()=>{if(xhr.status==200||xhr.status==0&&xhr.response){onload(xhr.response);return}var data=tryParseAsDataURI(url);if(data){onload(data.buffer);return}onerror()};xhr.onerror=onerror;xhr.send(null)}}setWindowTitle=title=>document.title=title}else{throw new Error("environment detection error")}var out=Module["print"]||console.log.bind(console);var err=Module["printErr"]||console.warn.bind(console);Object.assign(Module,moduleOverrides);moduleOverrides=null;checkIncomingModuleAPI();if(Module["arguments"])arguments_=Module["arguments"];legacyModuleProp("arguments","arguments_");if(Module["thisProgram"])thisProgram=Module["thisProgram"];legacyModuleProp("thisProgram","thisProgram");if(Module["quit"])quit_=Module["quit"];legacyModuleProp("quit","quit_");assert(typeof Module["memoryInitializerPrefixURL"]=="undefined","Module.memoryInitializerPrefixURL option was removed, use Module.locateFile instead");assert(typeof Module["pthreadMainPrefixURL"]=="undefined","Module.pthreadMainPrefixURL option was removed, use Module.locateFile instead");assert(typeof Module["cdInitializerPrefixURL"]=="undefined","Module.cdInitializerPrefixURL option was removed, use Module.locateFile instead");assert(typeof Module["filePackagePrefixURL"]=="undefined","Module.filePackagePrefixURL option was removed, use Module.locateFile instead");assert(typeof Module["read"]=="undefined","Module.read option was removed (modify read_ in JS)");assert(typeof Module["readAsync"]=="undefined","Module.readAsync option was removed (modify readAsync in JS)");assert(typeof Module["readBinary"]=="undefined","Module.readBinary option was removed (modify readBinary in JS)");assert(typeof Module["setWindowTitle"]=="undefined","Module.setWindowTitle option was removed (modify setWindowTitle in JS)");assert(typeof Module["TOTAL_MEMORY"]=="undefined","Module.TOTAL_MEMORY has been renamed Module.INITIAL_MEMORY");legacyModuleProp("read","read_");legacyModuleProp("readAsync","readAsync");legacyModuleProp("readBinary","readBinary");legacyModuleProp("setWindowTitle","setWindowTitle");assert(!ENVIRONMENT_IS_SHELL,"shell environment detected but not enabled at build time. Add 'shell' to `-sENVIRONMENT` to enable.");var POINTER_SIZE=4;function legacyModuleProp(prop,newName){if(!Object.getOwnPropertyDescriptor(Module,prop)){Object.defineProperty(Module,prop,{configurable:true,get:function(){abort("Module."+prop+" has been replaced with plain "+newName+" (the initial value can be provided on Module, but after startup the value is only looked for on a local variable of that name)")}})}}function ignoredModuleProp(prop){if(Object.getOwnPropertyDescriptor(Module,prop)){abort("`Module."+prop+"` was supplied but `"+prop+"` not included in INCOMING_MODULE_JS_API")}}function isExportedByForceFilesystem(name){return name==="FS_createPath"||name==="FS_createDataFile"||name==="FS_createPreloadedFile"||name==="FS_unlink"||name==="addRunDependency"||name==="FS_createLazyFile"||name==="FS_createDevice"||name==="removeRunDependency"}function missingLibrarySymbol(sym){if(typeof globalThis!=="undefined"&&!Object.getOwnPropertyDescriptor(globalThis,sym)){Object.defineProperty(globalThis,sym,{configurable:true,get:function(){var msg="`"+sym+"` is a library symbol and not included by default; add it to your library.js __deps or to DEFAULT_LIBRARY_FUNCS_TO_INCLUDE on the command line";var librarySymbol=sym;if(!librarySymbol.startsWith("_")){librarySymbol="$"+sym}msg+=" (e.g. -sDEFAULT_LIBRARY_FUNCS_TO_INCLUDE="+librarySymbol+")";if(isExportedByForceFilesystem(sym)){msg+=". Alternatively, forcing filesystem support (-sFORCE_FILESYSTEM) can export this for you"}warnOnce(msg);return undefined}})}}function unexportedRuntimeSymbol(sym){if(!Object.getOwnPropertyDescriptor(Module,sym)){Object.defineProperty(Module,sym,{configurable:true,get:function(){var msg="'"+sym+"' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)";if(isExportedByForceFilesystem(sym)){msg+=". Alternatively, forcing filesystem support (-sFORCE_FILESYSTEM) can export this for you"}abort(msg)}})}}var wasmBinary;if(Module["wasmBinary"])wasmBinary=Module["wasmBinary"];legacyModuleProp("wasmBinary","wasmBinary");var noExitRuntime=Module["noExitRuntime"]||true;legacyModuleProp("noExitRuntime","noExitRuntime");var WebAssembly={Memory:function(opts){this.buffer=new ArrayBuffer(opts["initial"]*65536)},Module:function(binary){},Instance:function(module,info){this.exports=( // EMSCRIPTEN_START_ASM -function instantiate(va){function c(d){d.set=function(a,b){this[a]=b};d.get=function(a){return this[a]};return d}var e;var f=new Uint8Array(123);for(var a=25;a>=0;--a){f[48+a]=52+a;f[65+a]=a;f[97+a]=26+a}f[43]=62;f[47]=63;function l(m,n,o){var g,h,a=0,i=n,j=o.length,k=n+(j*3>>2)-(o[j-2]=="=")-(o[j-1]=="=");for(;a>4;if(i>2;if(i=0;--a){f[48+a]=52+a;f[65+a]=a;f[97+a]=26+a}f[43]=62;f[47]=63;function l(m,n,o){var g,h,a=0,i=n,j=o.length,k=n+(j*3>>2)-(o[j-2]=="=")-(o[j-1]=="=");for(;a>4;if(i>2;if(i>2]=0;H[E+32>>2]=0;H[E+36>>2]=0;c:{d:{if(b>>>0<1073741824){f=b<<2;g=hl(f);H[E+36>>2]=g;H[E+32>>2]=g;f=f+g|0;h=(c|0)>1?c:1;c=h-1|0;t=c&-4;o=c&3;s=h-2>>>0>2;z=g;n=g;e:{f:{g:{while(1){l=H[(k<<2)+a>>2];h:{if(h>>>0<2){break h}p=0;c=1;if(s){while(1){j=(c+k<<2)+a|0;r=H[j>>2];l=l>>>0>r>>>0?l:r;r=H[j+4>>2];l=l>>>0>r>>>0?l:r;r=H[j+8>>2];l=l>>>0>r>>>0?l:r;j=H[j+12>>2];l=j>>>0>>0?l:j;c=c+4|0;p=p+4|0;if((t|0)!=(p|0)){continue}break}}p=0;if(!o){break h}while(1){j=H[(c+k<<2)+a>>2];l=j>>>0>>0?l:j;c=c+1|0;p=p+1|0;if((o|0)!=(p|0)){continue}break}}j=l?(Q(l)^31)+1|0:1;i:{if(f>>>0>n>>>0){H[n>>2]=j;n=n+4|0;H[E+36>>2]=n;break i}p=n-z|0;n=p>>2;c=n+1|0;if(c>>>0>=1073741824){break g}f=f-z|0;r=f>>1;c=f>>>0<2147483644?c>>>0>>0?r:c:1073741823;if(c){if(c>>>0>=1073741824){break f}g=hl(c<<2)}else{g=0}f=g+(n<<2)|0;H[f>>2]=j;n=f+4|0;if((p|0)>0){jk(g,z,p)}f=(c<<2)+g|0;H[E+36>>2]=n;if(z){bl(z)}z=g}m=l>>>0>m>>>0?l:m;k=h+k|0;if((k|0)<(b|0)){continue}break}H[E+40>>2]=f;H[E+32>>2]=g;g=0;H[E+24>>2]=0;H[E+16>>2]=0;H[E+20>>2]=0;j=(n|0)==(z|0);j:{if(j){c=0;break j}f=n-z|0;if((f|0)<0){break e}c=hl(f);H[E+16>>2]=c;g=f>>2;H[E+24>>2]=(g<<2)+c;o=jk(c,z,f);H[E+20>>2]=o+f;if(j){break j}f=g>>>0>1?g:1;t=f&3;k=0;k:{if(f-1>>>0<3){l=0;break k}s=f&-4;l=0;p=0;while(1){f=u;n=l<<2;u=H[n+o>>2];f=f+u|0;j=f>>>0>>0?i+1|0:i;u=H[o+(n|4)>>2];i=u+f|0;f=j;f=i>>>0>>0?f+1|0:f;j=H[o+(n|8)>>2];i=j+i|0;f=i>>>0>>0?f+1|0:f;n=H[o+(n|12)>>2];i=n+i|0;u=i;i=i>>>0>>0?f+1|0:f;l=l+4|0;p=p+4|0;if((s|0)!=(p|0)){continue}break}}if(!t){break j}while(1){f=i;p=H[o+(l<<2)>>2];j=p+u|0;u=j;i=j>>>0

>>0?f+1|0:f;l=l+1|0;k=k+1|0;if((t|0)!=(k|0)){continue}break}}p=cf(c,g,32,E);n=ka;t=H[E>>2];if(c){H[E+20>>2]=c;bl(c)}s=cf(a,b,m,E);r=ka;k=H[E>>2];G=(m-k|0)/64|0;if(d){c=hl(32);f=I[1587]|I[1588]<<8|(I[1589]<<16|I[1590]<<24);g=I[1583]|I[1584]<<8|(I[1585]<<16|I[1586]<<24);F[c+14|0]=g;F[c+15|0]=g>>>8;F[c+16|0]=g>>>16;F[c+17|0]=g>>>24;F[c+18|0]=f;F[c+19|0]=f>>>8;F[c+20|0]=f>>>16;F[c+21|0]=f>>>24;f=I[1581]|I[1582]<<8|(I[1583]<<16|I[1584]<<24);g=I[1577]|I[1578]<<8|(I[1579]<<16|I[1580]<<24);F[c+8|0]=g;F[c+9|0]=g>>>8;F[c+10|0]=g>>>16;F[c+11|0]=g>>>24;F[c+12|0]=f;F[c+13|0]=f>>>8;F[c+14|0]=f>>>16;F[c+15|0]=f>>>24;f=I[1573]|I[1574]<<8|(I[1575]<<16|I[1576]<<24);g=I[1569]|I[1570]<<8|(I[1571]<<16|I[1572]<<24);F[c|0]=g;F[c+1|0]=g>>>8;F[c+2|0]=g>>>16;F[c+3|0]=g>>>24;F[c+4|0]=f;F[c+5|0]=f>>>8;F[c+6|0]=f>>>16;F[c+7|0]=f>>>24;F[c+22|0]=0;l=H[d+4>>2];if(l){while(1){f=I[l+27|0];g=f<<24>>24<0;f=g?H[l+20>>2]:f;j=f>>>0<22;l:{m:{n:{o:{p:{q:{o=j?f:22;if(o){y=l+16|0;g=g?H[y>>2]:y;y=ok(c,g,o);if(y){break q}if(f>>>0<=22){break p}break l}if(f>>>0<=22){break o}break l}if((y|0)<0){break l}}f=ok(g,c,o);if(f){break n}}if(j){break m}break d}if((f|0)>=0){break d}}l=l+4|0}l=H[l>>2];if(l){continue}break}}bl(c)}if((Q(m>>>0>1?m:1)^30)>>>0<18){i=Sl(u,i,h,0);c=i+p|0;f=ka+n|0;f=c>>>0>>0?f+1|0:f;g=c;c=t<<3;i=c>>31;o=i<<1|c>>>31;i=c<<1;c=g+i|0;j=f+o|0;j=c>>>0>>0?j+1|0:j;i=c;c=k+G<<3;g=c>>31;u=c;f=k<<3;o=f;c=f+s|0;f=(f>>31)+r|0;f=c>>>0>>0?f+1|0:f;o=c;c=u+c|0;g=f+g|0;g=c>>>0>>0?g+1|0:g;c=(g|0)<=(j|0)&c>>>0<=i>>>0|(g|0)<(j|0)}else{c=0}break c}H[E+40>>2]=f;H[E+32>>2]=g;break a}H[E+32>>2]=g;_a();X()}break a}break a}bl(c);c=hl(32);H[E>>2]=c;H[E+4>>2]=22;H[E+8>>2]=-2147483616;F[c+22|0]=0;i=I[1587]|I[1588]<<8|(I[1589]<<16|I[1590]<<24);f=I[1583]|I[1584]<<8|(I[1585]<<16|I[1586]<<24);F[c+14|0]=f;F[c+15|0]=f>>>8;F[c+16|0]=f>>>16;F[c+17|0]=f>>>24;F[c+18|0]=i;F[c+19|0]=i>>>8;F[c+20|0]=i>>>16;F[c+21|0]=i>>>24;i=I[1581]|I[1582]<<8|(I[1583]<<16|I[1584]<<24);f=I[1577]|I[1578]<<8|(I[1579]<<16|I[1580]<<24);F[c+8|0]=f;F[c+9|0]=f>>>8;F[c+10|0]=f>>>16;F[c+11|0]=f>>>24;F[c+12|0]=i;F[c+13|0]=i>>>8;F[c+14|0]=i>>>16;F[c+15|0]=i>>>24;i=I[1573]|I[1574]<<8|(I[1575]<<16|I[1576]<<24);f=I[1569]|I[1570]<<8|(I[1571]<<16|I[1572]<<24);F[c|0]=f;F[c+1|0]=f>>>8;F[c+2|0]=f>>>16;F[c+3|0]=f>>>24;F[c+4|0]=i;F[c+5|0]=i>>>8;F[c+6|0]=i>>>16;F[c+7|0]=i>>>24;c=li(d,E);if(F[E+11|0]>=0){break c}bl(H[E>>2])}F[E|0]=c;i=H[e+20>>2];if(!H[e+16>>2]&(i|0)<=0|(i|0)<0){Da(e,H[e+4>>2],E,E+1|0)}l=0;r:{s:{switch(c|0){case 0:m=0;p=0;z=ha-336|0;ha=z;lk(z+80|0,0,256);d=H[E+36>>2];c=H[E+32>>2];t:{if((d|0)==(c|0)){break t}d=d-c>>2;d=d>>>0>1?d:1;g=d&3;if(d-1>>>0>=3){l=d&-4;while(1){i=z+80|0;d=m<<2;j=i+(H[d+c>>2]<<3)|0;f=H[j+4>>2];k=H[j>>2]+1|0;f=k?f:f+1|0;H[j>>2]=k;H[j+4>>2]=f;f=i+(H[c+(d|4)>>2]<<3)|0;o=H[f+4>>2];j=H[f>>2]+1|0;o=j?o:o+1|0;H[f>>2]=j;H[f+4>>2]=o;f=i+(H[c+(d|8)>>2]<<3)|0;k=H[f+4>>2];j=H[f>>2]+1|0;k=j?k:k+1|0;H[f>>2]=j;H[f+4>>2]=k;d=i+(H[c+(d|12)>>2]<<3)|0;f=H[d+4>>2];i=H[d>>2]+1|0;f=i?f:f+1|0;H[d>>2]=i;H[d+4>>2]=f;m=m+4|0;p=p+4|0;if((l|0)!=(p|0)){continue}break}}if(!g){break t}p=0;while(1){d=(z+80|0)+(H[c+(m<<2)>>2]<<3)|0;o=H[d+4>>2];i=H[d>>2]+1|0;o=i?o:o+1|0;H[d>>2]=i;H[d+4>>2]=o;m=m+1|0;p=p+1|0;if((g|0)!=(p|0)){continue}break}}n=z+48|0;c=n;H[c>>2]=0;H[c+4>>2]=0;F[c+24|0]=0;H[c+16>>2]=0;H[c+20>>2]=0;H[c+8>>2]=0;H[c+12>>2]=0;H[z+8>>2]=0;H[z+12>>2]=0;H[z+16>>2]=0;H[z+20>>2]=0;H[z+24>>2]=0;H[z+28>>2]=0;H[z+32>>2]=0;H[z>>2]=0;H[z+4>>2]=0;H[z+40>>2]=0;H[z+44>>2]=0;lf(z,z+80|0,32,e);i=H[z+16>>2];c=H[z+20>>2];d=H[e+4>>2]-H[e>>2]|0;H[z+40>>2]=d;H[z+44>>2]=0;o=c<<1|i>>>31;c=(i<<1)+39|0;k=o;k=c>>>0<39?k+1|0:k;c=d+((k&7)<<29|c>>>3)|0;f=k>>>3|0;f=c>>>0>>0?f+1|0:f;c=c+8|0;hi(e,c);c=H[e>>2];H[z+28>>2]=0;H[z+32>>2]=16384;H[z+24>>2]=c+H[z+40>>2];c=b;ii(n,c<<5,c>>31<<5|c>>>27,0);b=c-h|0;if((b|0)>=0){j=(h|0)<=0;c=b;while(1){m=H[z+32>>2];l=H[E+32>>2];i=H[z>>2]+(H[l+((c|0)/(h|0)<<2)>>2]<<3)|0;d=H[i>>2];f=d<<10;if(m>>>0>=f>>>0){while(1){g=H[z+28>>2];H[z+28>>2]=g+1;F[g+H[z+24>>2]|0]=m;m=H[z+32>>2]>>>8|0;H[z+32>>2]=m;if(f>>>0<=m>>>0){continue}break}l=H[E+32>>2]}g=H[i+4>>2];i=(m>>>0)/(d>>>0)|0;H[z+32>>2]=g+((i<<12)+(m-N(d,i)|0)|0);k=b-c|0;d=(k|0)/(h|0)|0;u:{if(j){break u}u=H[n+16>>2];i=H[n+20>>2];if(!u&(i|0)<=0|(i|0)<0){break u}f=H[(d<<2)+l>>2];l=0;while(1){if(!(!u&(i|0)<=0|(i|0)<0|(f|0)<=0)){i=H[(l+k<<2)+a>>2];d=H[n+12>>2];g=H[d+4>>2];p=0;while(1){o=g>>>3|0;t=o+H[d>>2]|0;m=I[t|0];g=g&7;J=t,L=Wl(g)&m,F[J|0]=L;o=o+H[d>>2]|0;F[o|0]=I[o|0]|(i>>>p&1)<>2]+1|0;H[d+4>>2]=g;p=p+1|0;if((f|0)!=(p|0)){continue}break}}l=l+1|0;if((h|0)==(l|0)){break u}u=H[n+16>>2];i=H[n+20>>2];continue}}c=c-h|0;if((c|0)>=0){continue}break}}mf(z,e);ji(n);a=H[e+20>>2];if(!H[e+16>>2]&(a|0)<=0|(a|0)<0){Da(e,H[e+4>>2],H[n>>2],H[n+4>>2])}a=H[z>>2];if(a){H[z+4>>2]=a;bl(a)}a=H[n+12>>2];H[n+12>>2]=0;if(a){bl(a)}a=H[n>>2];if(a){H[n+4>>2]=a;bl(a)}ha=z+336|0;l=1;z=H[E+32>>2];break r;case 1:break s;default:break r}}p=0;G=ha-32|0;ha=G;l=1;v:{if((k|0)>0){c=Q(k);if((c^30)>>>0>17){break v}l=32-c|0}w:{if(!d){break w}c=hl(48);F[c+32|0]=I[1470];i=I[1466]|I[1467]<<8|(I[1468]<<16|I[1469]<<24);f=I[1462]|I[1463]<<8|(I[1464]<<16|I[1465]<<24);F[c+24|0]=f;F[c+25|0]=f>>>8;F[c+26|0]=f>>>16;F[c+27|0]=f>>>24;F[c+28|0]=i;F[c+29|0]=i>>>8;F[c+30|0]=i>>>16;F[c+31|0]=i>>>24;i=I[1458]|I[1459]<<8|(I[1460]<<16|I[1461]<<24);f=I[1454]|I[1455]<<8|(I[1456]<<16|I[1457]<<24);F[c+16|0]=f;F[c+17|0]=f>>>8;F[c+18|0]=f>>>16;F[c+19|0]=f>>>24;F[c+20|0]=i;F[c+21|0]=i>>>8;F[c+22|0]=i>>>16;F[c+23|0]=i>>>24;i=I[1450]|I[1451]<<8|(I[1452]<<16|I[1453]<<24);f=I[1446]|I[1447]<<8|(I[1448]<<16|I[1449]<<24);F[c+8|0]=f;F[c+9|0]=f>>>8;F[c+10|0]=f>>>16;F[c+11|0]=f>>>24;F[c+12|0]=i;F[c+13|0]=i>>>8;F[c+14|0]=i>>>16;F[c+15|0]=i>>>24;i=I[1442]|I[1443]<<8|(I[1444]<<16|I[1445]<<24);f=I[1438]|I[1439]<<8|(I[1440]<<16|I[1441]<<24);F[c|0]=f;F[c+1|0]=f>>>8;F[c+2|0]=f>>>16;F[c+3|0]=f>>>24;F[c+4|0]=i;F[c+5|0]=i>>>8;F[c+6|0]=i>>>16;F[c+7|0]=i>>>24;F[c+33|0]=0;x:{p=H[d+4>>2];if(p){while(1){i=I[p+27|0];f=i<<24>>24<0;i=f?H[p+20>>2]:i;g=i>>>0<33;y:{z:{A:{B:{C:{D:{j=g?i:33;if(j){k=p+16|0;f=f?H[k>>2]:k;k=ok(c,f,j);if(k){break D}if(i>>>0<=33){break C}break y}if(i>>>0<=33){break B}break y}if((k|0)<0){break y}}i=ok(f,c,j);if(i){break A}}if(g){break z}break x}if((i|0)>=0){break x}}p=p+4|0}p=H[p>>2];if(p){continue}break}bl(c);break w}bl(c);break w}bl(c);c=hl(48);H[G+16>>2]=c;H[G+20>>2]=33;H[G+24>>2]=-2147483600;F[c+33|0]=0;F[c+32|0]=I[1470];i=I[1466]|I[1467]<<8|(I[1468]<<16|I[1469]<<24);f=I[1462]|I[1463]<<8|(I[1464]<<16|I[1465]<<24);F[c+24|0]=f;F[c+25|0]=f>>>8;F[c+26|0]=f>>>16;F[c+27|0]=f>>>24;F[c+28|0]=i;F[c+29|0]=i>>>8;F[c+30|0]=i>>>16;F[c+31|0]=i>>>24;i=I[1458]|I[1459]<<8|(I[1460]<<16|I[1461]<<24);f=I[1454]|I[1455]<<8|(I[1456]<<16|I[1457]<<24);F[c+16|0]=f;F[c+17|0]=f>>>8;F[c+18|0]=f>>>16;F[c+19|0]=f>>>24;F[c+20|0]=i;F[c+21|0]=i>>>8;F[c+22|0]=i>>>16;F[c+23|0]=i>>>24;i=I[1450]|I[1451]<<8|(I[1452]<<16|I[1453]<<24);f=I[1446]|I[1447]<<8|(I[1448]<<16|I[1449]<<24);F[c+8|0]=f;F[c+9|0]=f>>>8;F[c+10|0]=f>>>16;F[c+11|0]=f>>>24;F[c+12|0]=i;F[c+13|0]=i>>>8;F[c+14|0]=i>>>16;F[c+15|0]=i>>>24;i=I[1442]|I[1443]<<8|(I[1444]<<16|I[1445]<<24);f=I[1438]|I[1439]<<8|(I[1440]<<16|I[1441]<<24);F[c|0]=f;F[c+1|0]=f>>>8;F[c+2|0]=f>>>16;F[c+3|0]=f>>>24;F[c+4|0]=i;F[c+5|0]=i>>>8;F[c+6|0]=i>>>16;F[c+7|0]=i>>>24;c=li(d,G+16|0);if(F[G+27|0]<0){bl(H[G+16>>2])}if((c|0)<=3){l=l-2|0;break w}if(c>>>0<=5){l=l-1|0;break w}if(c>>>0>=10){l=l+2|0;break w}l=(c>>>0>7)+l|0}c=(l|0)>1?l:1;c=(c|0)<18?c:18;F[G+15|0]=c;d=H[e+20>>2];if(!H[e+16>>2]&(d|0)<=0|(d|0)<0){Da(e,H[e+4>>2],G+15|0,G+16|0)}p=0;E:{switch(c-1|0){case 0:t=a;l=0;n=0;d=0;s=0;u=0;i=0;h=ha+-64|0;ha=h;H[h+56>>2]=0;H[h+48>>2]=0;H[h+52>>2]=0;F:{a=m+1|0;if(a){if(a>>>0>=536870912){break a}a=a<<3;p=hl(a);H[h+48>>2]=p;l=a+p|0;H[h+56>>2]=l;lk(p,0,(m<<3)+8|0);H[h+52>>2]=l}G:{if((b|0)<=0){break G}a=0;if(b-1>>>0>=3){j=b&-4;while(1){c=a<<2;f=(H[c+t>>2]<<3)+p|0;o=H[f+4>>2];g=H[f>>2]+1|0;o=g?o:o+1|0;H[f>>2]=g;H[f+4>>2]=o;f=(H[t+(c|4)>>2]<<3)+p|0;k=H[f+4>>2];g=H[f>>2]+1|0;k=g?k:k+1|0;H[f>>2]=g;H[f+4>>2]=k;g=(H[t+(c|8)>>2]<<3)+p|0;f=H[g+4>>2];k=H[g>>2]+1|0;f=k?f:f+1|0;H[g>>2]=k;H[g+4>>2]=f;c=(H[t+(c|12)>>2]<<3)+p|0;o=H[c+4>>2];f=H[c>>2]+1|0;o=f?o:o+1|0;H[c>>2]=f;H[c+4>>2]=o;a=a+4|0;n=n+4|0;if((j|0)!=(n|0)){continue}break}}f=b&3;if(!f){break G}while(1){c=(H[t+(a<<2)>>2]<<3)+p|0;k=H[c+4>>2];g=H[c>>2]+1|0;k=g?k:k+1|0;H[c>>2]=g;H[c+4>>2]=k;a=a+1|0;d=d+1|0;if((f|0)!=(d|0)){continue}break}}H[h+8>>2]=0;H[h+12>>2]=0;H[h+16>>2]=0;H[h+20>>2]=0;H[h+24>>2]=0;H[h+28>>2]=0;H[h+32>>2]=0;H[h>>2]=0;H[h+4>>2]=0;H[h+40>>2]=0;H[h+44>>2]=0;m=0;d=0;c=0;r=ha-32|0;ha=r;a=l-p>>3;H:{if((a|0)<=0){break H}l=a&3;I:{if(a-1>>>0<3){a=0;break I}D=a&-4;a=0;while(1){o=a|1;g=(o<<3)+p|0;f=H[g+4>>2];n=H[g>>2];B=a|2;j=(B<<3)+p|0;g=H[j+4>>2];y=H[j>>2];x=a|3;k=(x<<3)+p|0;j=H[k+4>>2];A=H[k>>2];w=c;c=(a<<3)+p|0;C=H[c+4>>2];k=H[c>>2];c=j|A?x:g|y?B:f|n?o:!(C|k)?w:a;o=f;w=n;f=i+C|0;n=k+u|0;f=n>>>0>>0?f+1|0:f;k=n;i=w+k|0;o=f+o|0;o=i>>>0>>0?o+1|0:o;k=i;i=i+y|0;f=g+o|0;f=i>>>0>>0?f+1|0:f;k=i;i=i+A|0;g=f+j|0;u=i;i=i>>>0>>0?g+1|0:g;a=a+4|0;d=d+4|0;if((D|0)!=(d|0)){continue}break}}if(!l){break H}while(1){g=c;c=(a<<3)+p|0;f=H[c+4>>2];d=H[c>>2];c=!(f|d)?g:a;a=a+1|0;k=f+i|0;g=d+u|0;k=g>>>0>>0?k+1|0:k;u=g;i=k;m=m+1|0;if((l|0)!=(m|0)){continue}break}}f=c+1|0;H[h+12>>2]=f;d=H[h>>2];a=H[h+4>>2]-d>>3;J:{if(a>>>0>>0){jf(h,f-a|0);break J}if(a>>>0<=f>>>0){break J}H[h+4>>2]=d+(f<<3)}n=0;K:{L:{M:{N:{if((c|0)>=0){v=+(u>>>0)+ +(i>>>0)*4294967296;i=H[h>>2];a=0;while(1){g=a<<3;j=g+p|0;d=H[j+4>>2];j=H[j>>2];k=(d|j)!=0;g=g+i|0;q=(+(j>>>0)+ +(d>>>0)*4294967296)/v*4096+.5;O:{if(q<4294967296&q>=0){d=~~q>>>0;break O}d=0}d=d?d:k?1:d;H[g>>2]=d;n=d+n|0;d=(a|0)==(c|0);a=a+1|0;if(!d){continue}break}if((n|0)==4096){break N}}H[r+16>>2]=0;H[r+8>>2]=0;H[r+12>>2]=0;l=0;if(f){if(f>>>0>=1073741824){break a}a=f<<2;l=hl(a);H[r+8>>2]=l;s=a+l|0;H[r+16>>2]=s;lk(l,0,a);H[r+12>>2]=s}a=0;P:{if((c|0)<0){break P}i=c+1|0;d=i&7;if(c>>>0>=7){i=i&-8;m=0;while(1){H[(a<<2)+l>>2]=a;f=a|1;H[(f<<2)+l>>2]=f;f=a|2;H[(f<<2)+l>>2]=f;f=a|3;H[(f<<2)+l>>2]=f;f=a|4;H[(f<<2)+l>>2]=f;f=a|5;H[(f<<2)+l>>2]=f;f=a|6;H[(f<<2)+l>>2]=f;f=a|7;H[(f<<2)+l>>2]=f;a=a+8|0;m=m+8|0;if((i|0)!=(m|0)){continue}break}}if(!d){break P}m=0;while(1){H[(a<<2)+l>>2]=a;a=a+1|0;m=m+1|0;if((d|0)!=(m|0)){continue}break}}H[r+24>>2]=h;a=s-l|0;d=a>>2;Q:{R:{if((a|0)>=513){a=d;while(1){i=hl(a<<2);if(i){break R}i=a>>>0>1;a=a>>>1|0;if(i){continue}break}}vf(l,s,r+24|0,d,0,0);break Q}vf(l,s,r+24|0,d,i,a);bl(i)}if((n|0)<4096){a=H[h>>2]+(H[s-4>>2]<<3)|0;H[a>>2]=(H[a>>2]-n|0)+4096;a=0;break M}if((c|0)>0){g=H[h>>2];m=n-4096|0;while(1){q=4096/+(n|0);d=c;while(1){S:{T:{i=g+(H[(d<<2)+l>>2]<<3)|0;a=H[i>>2];if(a>>>0>=2){k=i;o=a;v=T(q*+(a>>>0));U:{if(P(v)<2147483648){f=~~v;break U}f=-2147483648}i=(a|0)==(f|0)?1:a-f|0;a=(a|0)>(i|0)?i:a-1|0;a=(a|0)<(m|0)?a:m;H[k>>2]=o-a;m=m-a|0;n=n-a|0;if((n|0)!=4096){break T}n=4096;break S}if((c|0)!=(d|0)){break S}a=1;break M}a=(d|0)>1;d=d-1|0;if(a){continue}}break}a=0;if((m|0)>0){continue}break}break M}a=0;if(n>>>0<4097){break M}while(1)continue}if((c|0)<0){break K}break L}d=H[r+8>>2];if(d){bl(d)}if((c|0)<0|a){break K}}i=c+1|0;g=i&3;d=H[h>>2];n=0;m=0;a=0;if(c>>>0>=3){j=i&-4;l=0;while(1){f=m<<3;k=f+d|0;H[k+4>>2]=a;o=d+(f|8)|0;a=H[k>>2]+a|0;H[o+4>>2]=a;k=d+(f|16)|0;a=a+H[o>>2]|0;H[k+4>>2]=a;f=d+(f|24)|0;a=a+H[k>>2]|0;H[f+4>>2]=a;a=a+H[f>>2]|0;m=m+4|0;l=l+4|0;if((j|0)!=(l|0)){continue}break}}if(g){while(1){f=d+(m<<3)|0;H[f+4>>2]=a;m=m+1|0;a=H[f>>2]+a|0;n=n+1|0;if((g|0)!=(n|0)){continue}break}}if((a|0)!=4096){break K}a=0;q=0;V:{if((c|0)<0){break V}f=H[h>>2];if(c){c=i&-2;d=0;while(1){g=a<<3;j=H[g+f>>2];if(j){g=g+p|0;q=(+K[g>>2]+ +K[g+4>>2]*4294967296)*nk(+(j>>>0)*.000244140625)+q}g=(a|1)<<3;j=H[g+f>>2];if(j){g=g+p|0;q=(+K[g>>2]+ +K[g+4>>2]*4294967296)*nk(+(j>>>0)*.000244140625)+q}a=a+2|0;d=d+2|0;if((c|0)!=(d|0)){continue}break}}if(!(i&1)){break V}a=a<<3;c=H[a+f>>2];if(!c){break V}a=a+p|0;q=(+K[a>>2]+ +K[a+4>>2]*4294967296)*nk(+(c>>>0)*.000244140625)+q}q=U(-q);W:{if(q<0x10000000000000000&q>=0){c=P(q)>=1?~~(q>0?R(T(q*2.3283064365386963e-10),4294967295):U((q-+(~~q>>>0>>>0))*2.3283064365386963e-10))>>>0:0;a=~~q>>>0;break W}c=0;a=0}H[h+16>>2]=a;H[h+20>>2]=c;of(h,e)}ha=r+32|0;d=H[h+16>>2];a=H[h+20>>2];c=H[e+4>>2]-H[e>>2]|0;H[h+40>>2]=c;H[h+44>>2]=0;f=a<<1|d>>>31;a=(d<<1)+39|0;f=a>>>0<39?f+1|0:f;a=c+((f&7)<<29|a>>>3)|0;g=f>>>3|0;g=a>>>0>>0?g+1|0:g;a=a+8|0;hi(e,a);a=H[e>>2];H[h+28>>2]=0;H[h+32>>2]=16384;H[h+24>>2]=a+H[h+40>>2];if((b|0)>0){a=16384;while(1){c=b-1|0;i=H[h>>2]+(H[t+(c<<2)>>2]<<3)|0;d=H[i>>2];f=d<<10;if(f>>>0<=a>>>0){while(1){g=H[h+28>>2];H[h+28>>2]=g+1;F[g+H[h+24>>2]|0]=a;a=H[h+32>>2]>>>8|0;H[h+32>>2]=a;if(a>>>0>=f>>>0){continue}break}}g=H[i+4>>2];i=(a>>>0)/(d>>>0)|0;a=g+((i<<12)+(a-N(d,i)|0)|0)|0;H[h+32>>2]=a;d=(b|0)>1;b=c;if(d){continue}break}}mf(h,e);a=H[h>>2];if(a){H[h+4>>2]=a;bl(a)}a=H[h+48>>2];if(a){bl(a)}ha=h- -64|0;break F}p=1;break v;case 1:t=a;l=0;n=0;d=0;s=0;u=0;i=0;h=ha+-64|0;ha=h;H[h+56>>2]=0;H[h+48>>2]=0;H[h+52>>2]=0;X:{a=m+1|0;if(a){if(a>>>0>=536870912){break a}a=a<<3;p=hl(a);H[h+48>>2]=p;l=a+p|0;H[h+56>>2]=l;lk(p,0,(m<<3)+8|0);H[h+52>>2]=l}Y:{if((b|0)<=0){break Y}a=0;if(b-1>>>0>=3){k=b&-4;while(1){c=a<<2;g=(H[c+t>>2]<<3)+p|0;f=H[g+4>>2];j=H[g>>2]+1|0;f=j?f:f+1|0;H[g>>2]=j;H[g+4>>2]=f;g=(H[t+(c|4)>>2]<<3)+p|0;f=H[g+4>>2];j=H[g>>2]+1|0;f=j?f:f+1|0;H[g>>2]=j;H[g+4>>2]=f;f=(H[t+(c|8)>>2]<<3)+p|0;j=H[f+4>>2];g=H[f>>2]+1|0;j=g?j:j+1|0;H[f>>2]=g;H[f+4>>2]=j;c=(H[t+(c|12)>>2]<<3)+p|0;f=H[c+4>>2];g=H[c>>2]+1|0;f=g?f:f+1|0;H[c>>2]=g;H[c+4>>2]=f;a=a+4|0;n=n+4|0;if((k|0)!=(n|0)){continue}break}}g=b&3;if(!g){break Y}while(1){c=(H[t+(a<<2)>>2]<<3)+p|0;f=H[c+4>>2];j=H[c>>2]+1|0;f=j?f:f+1|0;H[c>>2]=j;H[c+4>>2]=f;a=a+1|0;d=d+1|0;if((g|0)!=(d|0)){continue}break}}H[h+8>>2]=0;H[h+12>>2]=0;H[h+16>>2]=0;H[h+20>>2]=0;H[h+24>>2]=0;H[h+28>>2]=0;H[h+32>>2]=0;H[h>>2]=0;H[h+4>>2]=0;H[h+40>>2]=0;H[h+44>>2]=0;m=0;d=0;c=0;r=ha-32|0;ha=r;a=l-p>>3;Z:{if((a|0)<=0){break Z}l=a&3;_:{if(a-1>>>0<3){a=0;break _}D=a&-4;a=0;while(1){o=a|1;g=(o<<3)+p|0;f=H[g+4>>2];n=H[g>>2];B=a|2;j=(B<<3)+p|0;g=H[j+4>>2];y=H[j>>2];x=a|3;k=(x<<3)+p|0;j=H[k+4>>2];A=H[k>>2];w=c;c=(a<<3)+p|0;C=H[c+4>>2];k=H[c>>2];c=j|A?x:g|y?B:f|n?o:!(C|k)?w:a;o=j;w=n;j=i+C|0;n=k+u|0;j=n>>>0>>0?j+1|0:j;k=n;i=w+k|0;f=f+j|0;f=i>>>0>>0?f+1|0:f;j=i;i=i+y|0;g=f+g|0;g=i>>>0>>0?g+1|0:g;f=i;i=f+A|0;o=g+o|0;u=i;i=f>>>0>i>>>0?o+1|0:o;a=a+4|0;d=d+4|0;if((D|0)!=(d|0)){continue}break}}if(!l){break Z}while(1){g=c;c=(a<<3)+p|0;f=H[c+4>>2];d=H[c>>2];c=!(f|d)?g:a;a=a+1|0;f=f+i|0;g=d+u|0;f=g>>>0>>0?f+1|0:f;u=g;i=f;m=m+1|0;if((l|0)!=(m|0)){continue}break}}f=c+1|0;H[h+12>>2]=f;d=H[h>>2];a=H[h+4>>2]-d>>3;$:{if(a>>>0>>0){jf(h,f-a|0);break $}if(a>>>0<=f>>>0){break $}H[h+4>>2]=d+(f<<3)}n=0;aa:{ba:{ca:{da:{if((c|0)>=0){v=+(u>>>0)+ +(i>>>0)*4294967296;i=H[h>>2];a=0;while(1){g=a<<3;j=g+p|0;d=H[j+4>>2];j=H[j>>2];k=(d|j)!=0;g=g+i|0;q=(+(j>>>0)+ +(d>>>0)*4294967296)/v*4096+.5;ea:{if(q<4294967296&q>=0){d=~~q>>>0;break ea}d=0}d=d?d:k?1:d;H[g>>2]=d;n=d+n|0;d=(a|0)==(c|0);a=a+1|0;if(!d){continue}break}if((n|0)==4096){break da}}H[r+16>>2]=0;H[r+8>>2]=0;H[r+12>>2]=0;l=0;if(f){if(f>>>0>=1073741824){break a}a=f<<2;l=hl(a);H[r+8>>2]=l;s=a+l|0;H[r+16>>2]=s;lk(l,0,a);H[r+12>>2]=s}a=0;fa:{if((c|0)<0){break fa}i=c+1|0;d=i&7;if(c>>>0>=7){i=i&-8;m=0;while(1){H[(a<<2)+l>>2]=a;f=a|1;H[(f<<2)+l>>2]=f;f=a|2;H[(f<<2)+l>>2]=f;f=a|3;H[(f<<2)+l>>2]=f;f=a|4;H[(f<<2)+l>>2]=f;f=a|5;H[(f<<2)+l>>2]=f;f=a|6;H[(f<<2)+l>>2]=f;f=a|7;H[(f<<2)+l>>2]=f;a=a+8|0;m=m+8|0;if((i|0)!=(m|0)){continue}break}}if(!d){break fa}m=0;while(1){H[(a<<2)+l>>2]=a;a=a+1|0;m=m+1|0;if((d|0)!=(m|0)){continue}break}}H[r+24>>2]=h;a=s-l|0;d=a>>2;ga:{ha:{if((a|0)>=513){a=d;while(1){i=hl(a<<2);if(i){break ha}i=a>>>0>1;a=a>>>1|0;if(i){continue}break}}yf(l,s,r+24|0,d,0,0);break ga}yf(l,s,r+24|0,d,i,a);bl(i)}if((n|0)<4096){a=H[h>>2]+(H[s-4>>2]<<3)|0;H[a>>2]=(H[a>>2]-n|0)+4096;a=0;break ca}if((c|0)>0){g=H[h>>2];m=n-4096|0;while(1){q=4096/+(n|0);d=c;while(1){ia:{ja:{i=g+(H[(d<<2)+l>>2]<<3)|0;a=H[i>>2];if(a>>>0>=2){k=i;o=a;v=T(q*+(a>>>0));ka:{if(P(v)<2147483648){f=~~v;break ka}f=-2147483648}i=(a|0)==(f|0)?1:a-f|0;a=(a|0)>(i|0)?i:a-1|0;a=(a|0)<(m|0)?a:m;H[k>>2]=o-a;m=m-a|0;n=n-a|0;if((n|0)!=4096){break ja}n=4096;break ia}if((c|0)!=(d|0)){break ia}a=1;break ca}a=(d|0)>1;d=d-1|0;if(a){continue}}break}a=0;if((m|0)>0){continue}break}break ca}a=0;if(n>>>0<4097){break ca}while(1)continue}if((c|0)<0){break aa}break ba}d=H[r+8>>2];if(d){bl(d)}if((c|0)<0|a){break aa}}i=c+1|0;g=i&3;d=H[h>>2];n=0;m=0;a=0;if(c>>>0>=3){j=i&-4;l=0;while(1){f=m<<3;k=f+d|0;H[k+4>>2]=a;o=d+(f|8)|0;a=H[k>>2]+a|0;H[o+4>>2]=a;k=d+(f|16)|0;a=a+H[o>>2]|0;H[k+4>>2]=a;f=d+(f|24)|0;a=a+H[k>>2]|0;H[f+4>>2]=a;a=a+H[f>>2]|0;m=m+4|0;l=l+4|0;if((j|0)!=(l|0)){continue}break}}if(g){while(1){f=d+(m<<3)|0;H[f+4>>2]=a;m=m+1|0;a=H[f>>2]+a|0;n=n+1|0;if((g|0)!=(n|0)){continue}break}}if((a|0)!=4096){break aa}a=0;q=0;la:{if((c|0)<0){break la}f=H[h>>2];if(c){c=i&-2;d=0;while(1){g=a<<3;j=H[g+f>>2];if(j){g=g+p|0;q=(+K[g>>2]+ +K[g+4>>2]*4294967296)*nk(+(j>>>0)*.000244140625)+q}g=(a|1)<<3;j=H[g+f>>2];if(j){g=g+p|0;q=(+K[g>>2]+ +K[g+4>>2]*4294967296)*nk(+(j>>>0)*.000244140625)+q}a=a+2|0;d=d+2|0;if((c|0)!=(d|0)){continue}break}}if(!(i&1)){break la}a=a<<3;c=H[a+f>>2];if(!c){break la}a=a+p|0;q=(+K[a>>2]+ +K[a+4>>2]*4294967296)*nk(+(c>>>0)*.000244140625)+q}q=U(-q);ma:{if(q<0x10000000000000000&q>=0){c=P(q)>=1?~~(q>0?R(T(q*2.3283064365386963e-10),4294967295):U((q-+(~~q>>>0>>>0))*2.3283064365386963e-10))>>>0:0;a=~~q>>>0;break ma}c=0;a=0}H[h+16>>2]=a;H[h+20>>2]=c;of(h,e)}ha=r+32|0;d=H[h+16>>2];a=H[h+20>>2];c=H[e+4>>2]-H[e>>2]|0;H[h+40>>2]=c;H[h+44>>2]=0;g=a<<1|d>>>31;a=(d<<1)+39|0;j=a>>>0<39?g+1|0:g;a=c+((j&7)<<29|a>>>3)|0;o=j>>>3|0;o=a>>>0>>0?o+1|0:o;a=a+8|0;hi(e,a);a=H[e>>2];H[h+28>>2]=0;H[h+32>>2]=16384;H[h+24>>2]=a+H[h+40>>2];if((b|0)>0){a=16384;while(1){c=b-1|0;i=H[h>>2]+(H[t+(c<<2)>>2]<<3)|0;d=H[i>>2];f=d<<10;if(f>>>0<=a>>>0){while(1){g=H[h+28>>2];H[h+28>>2]=g+1;F[g+H[h+24>>2]|0]=a;a=H[h+32>>2]>>>8|0;H[h+32>>2]=a;if(a>>>0>=f>>>0){continue}break}}g=H[i+4>>2];i=(a>>>0)/(d>>>0)|0;a=g+((i<<12)+(a-N(d,i)|0)|0)|0;H[h+32>>2]=a;d=(b|0)>1;b=c;if(d){continue}break}}mf(h,e);a=H[h>>2];if(a){H[h+4>>2]=a;bl(a)}a=H[h+48>>2];if(a){bl(a)}ha=h- -64|0;break X}p=1;break v;case 2:t=a;l=0;n=0;d=0;s=0;u=0;i=0;h=ha+-64|0;ha=h;H[h+56>>2]=0;H[h+48>>2]=0;H[h+52>>2]=0;na:{a=m+1|0;if(a){if(a>>>0>=536870912){break a}a=a<<3;p=hl(a);H[h+48>>2]=p;l=a+p|0;H[h+56>>2]=l;lk(p,0,(m<<3)+8|0);H[h+52>>2]=l}oa:{if((b|0)<=0){break oa}a=0;if(b-1>>>0>=3){o=b&-4;while(1){c=a<<2;f=(H[c+t>>2]<<3)+p|0;g=H[f+4>>2];j=H[f>>2]+1|0;g=j?g:g+1|0;H[f>>2]=j;H[f+4>>2]=g;f=(H[t+(c|4)>>2]<<3)+p|0;j=H[f+4>>2];g=H[f>>2]+1|0;j=g?j:j+1|0;H[f>>2]=g;H[f+4>>2]=j;f=(H[t+(c|8)>>2]<<3)+p|0;k=H[f+4>>2];g=H[f>>2]+1|0;k=g?k:k+1|0;H[f>>2]=g;H[f+4>>2]=k;c=(H[t+(c|12)>>2]<<3)+p|0;g=H[c+4>>2];f=H[c>>2]+1|0;g=f?g:g+1|0;H[c>>2]=f;H[c+4>>2]=g;a=a+4|0;n=n+4|0;if((o|0)!=(n|0)){continue}break}}f=b&3;if(!f){break oa}while(1){c=(H[t+(a<<2)>>2]<<3)+p|0;j=H[c+4>>2];g=H[c>>2]+1|0;j=g?j:j+1|0;H[c>>2]=g;H[c+4>>2]=j;a=a+1|0;d=d+1|0;if((f|0)!=(d|0)){continue}break}}H[h+8>>2]=0;H[h+12>>2]=0;H[h+16>>2]=0;H[h+20>>2]=0;H[h+24>>2]=0;H[h+28>>2]=0;H[h+32>>2]=0;H[h>>2]=0;H[h+4>>2]=0;H[h+40>>2]=0;H[h+44>>2]=0;m=0;d=0;c=0;r=ha-32|0;ha=r;a=l-p>>3;pa:{if((a|0)<=0){break pa}l=a&3;qa:{if(a-1>>>0<3){a=0;break qa}D=a&-4;a=0;while(1){o=a|1;g=(o<<3)+p|0;f=H[g+4>>2];n=H[g>>2];B=a|2;j=(B<<3)+p|0;g=H[j+4>>2];y=H[j>>2];x=a|3;k=(x<<3)+p|0;j=H[k+4>>2];A=H[k>>2];w=c;c=(a<<3)+p|0;C=H[c+4>>2];k=H[c>>2];c=j|A?x:g|y?B:f|n?o:!(C|k)?w:a;o=g;w=n;g=k;n=g+u|0;k=i+C|0;k=g>>>0>n>>>0?k+1|0:k;i=w+n|0;g=f+k|0;g=i>>>0>>0?g+1|0:g;f=i;i=f+y|0;o=g+o|0;o=f>>>0>i>>>0?o+1|0:o;g=i;i=g+A|0;f=j+o|0;u=i;i=g>>>0>i>>>0?f+1|0:f;a=a+4|0;d=d+4|0;if((D|0)!=(d|0)){continue}break}}if(!l){break pa}while(1){g=c;c=(a<<3)+p|0;f=H[c+4>>2];d=H[c>>2];c=!(f|d)?g:a;a=a+1|0;j=f+i|0;g=d+u|0;j=g>>>0>>0?j+1|0:j;u=g;i=j;m=m+1|0;if((l|0)!=(m|0)){continue}break}}f=c+1|0;H[h+12>>2]=f;d=H[h>>2];a=H[h+4>>2]-d>>3;ra:{if(a>>>0>>0){jf(h,f-a|0);break ra}if(a>>>0<=f>>>0){break ra}H[h+4>>2]=d+(f<<3)}n=0;sa:{ta:{ua:{va:{if((c|0)>=0){v=+(u>>>0)+ +(i>>>0)*4294967296;i=H[h>>2];a=0;while(1){g=a<<3;j=g+p|0;d=H[j+4>>2];j=H[j>>2];k=(d|j)!=0;g=g+i|0;q=(+(j>>>0)+ +(d>>>0)*4294967296)/v*4096+.5;wa:{if(q<4294967296&q>=0){d=~~q>>>0;break wa}d=0}d=d?d:k?1:d;H[g>>2]=d;n=d+n|0;d=(a|0)==(c|0);a=a+1|0;if(!d){continue}break}if((n|0)==4096){break va}}H[r+16>>2]=0;H[r+8>>2]=0;H[r+12>>2]=0;l=0;if(f){if(f>>>0>=1073741824){break a}a=f<<2;l=hl(a);H[r+8>>2]=l;s=a+l|0;H[r+16>>2]=s;lk(l,0,a);H[r+12>>2]=s}a=0;xa:{if((c|0)<0){break xa}i=c+1|0;d=i&7;if(c>>>0>=7){i=i&-8;m=0;while(1){H[(a<<2)+l>>2]=a;f=a|1;H[(f<<2)+l>>2]=f;f=a|2;H[(f<<2)+l>>2]=f;f=a|3;H[(f<<2)+l>>2]=f;f=a|4;H[(f<<2)+l>>2]=f;f=a|5;H[(f<<2)+l>>2]=f;f=a|6;H[(f<<2)+l>>2]=f;f=a|7;H[(f<<2)+l>>2]=f;a=a+8|0;m=m+8|0;if((i|0)!=(m|0)){continue}break}}if(!d){break xa}m=0;while(1){H[(a<<2)+l>>2]=a;a=a+1|0;m=m+1|0;if((d|0)!=(m|0)){continue}break}}H[r+24>>2]=h;a=s-l|0;d=a>>2;ya:{za:{if((a|0)>=513){a=d;while(1){i=hl(a<<2);if(i){break za}i=a>>>0>1;a=a>>>1|0;if(i){continue}break}}Bf(l,s,r+24|0,d,0,0);break ya}Bf(l,s,r+24|0,d,i,a);bl(i)}if((n|0)<4096){a=H[h>>2]+(H[s-4>>2]<<3)|0;H[a>>2]=(H[a>>2]-n|0)+4096;a=0;break ua}if((c|0)>0){g=H[h>>2];m=n-4096|0;while(1){q=4096/+(n|0);d=c;while(1){Aa:{Ba:{i=g+(H[(d<<2)+l>>2]<<3)|0;a=H[i>>2];if(a>>>0>=2){k=i;o=a;v=T(q*+(a>>>0));Ca:{if(P(v)<2147483648){f=~~v;break Ca}f=-2147483648}i=(a|0)==(f|0)?1:a-f|0;a=(a|0)>(i|0)?i:a-1|0;a=(a|0)<(m|0)?a:m;H[k>>2]=o-a;m=m-a|0;n=n-a|0;if((n|0)!=4096){break Ba}n=4096;break Aa}if((c|0)!=(d|0)){break Aa}a=1;break ua}a=(d|0)>1;d=d-1|0;if(a){continue}}break}a=0;if((m|0)>0){continue}break}break ua}a=0;if(n>>>0<4097){break ua}while(1)continue}if((c|0)<0){break sa}break ta}d=H[r+8>>2];if(d){bl(d)}if((c|0)<0|a){break sa}}i=c+1|0;g=i&3;d=H[h>>2];n=0;m=0;a=0;if(c>>>0>=3){j=i&-4;l=0;while(1){f=m<<3;k=f+d|0;H[k+4>>2]=a;o=d+(f|8)|0;a=H[k>>2]+a|0;H[o+4>>2]=a;k=d+(f|16)|0;a=a+H[o>>2]|0;H[k+4>>2]=a;f=d+(f|24)|0;a=a+H[k>>2]|0;H[f+4>>2]=a;a=a+H[f>>2]|0;m=m+4|0;l=l+4|0;if((j|0)!=(l|0)){continue}break}}if(g){while(1){f=d+(m<<3)|0;H[f+4>>2]=a;m=m+1|0;a=H[f>>2]+a|0;n=n+1|0;if((g|0)!=(n|0)){continue}break}}if((a|0)!=4096){break sa}a=0;q=0;Da:{if((c|0)<0){break Da}f=H[h>>2];if(c){c=i&-2;d=0;while(1){g=a<<3;j=H[g+f>>2];if(j){g=g+p|0;q=(+K[g>>2]+ +K[g+4>>2]*4294967296)*nk(+(j>>>0)*.000244140625)+q}g=(a|1)<<3;j=H[g+f>>2];if(j){g=g+p|0;q=(+K[g>>2]+ +K[g+4>>2]*4294967296)*nk(+(j>>>0)*.000244140625)+q}a=a+2|0;d=d+2|0;if((c|0)!=(d|0)){continue}break}}if(!(i&1)){break Da}a=a<<3;c=H[a+f>>2];if(!c){break Da}a=a+p|0;q=(+K[a>>2]+ +K[a+4>>2]*4294967296)*nk(+(c>>>0)*.000244140625)+q}q=U(-q);Ea:{if(q<0x10000000000000000&q>=0){c=P(q)>=1?~~(q>0?R(T(q*2.3283064365386963e-10),4294967295):U((q-+(~~q>>>0>>>0))*2.3283064365386963e-10))>>>0:0;a=~~q>>>0;break Ea}c=0;a=0}H[h+16>>2]=a;H[h+20>>2]=c;of(h,e)}ha=r+32|0;d=H[h+16>>2];a=H[h+20>>2];c=H[e+4>>2]-H[e>>2]|0;H[h+40>>2]=c;H[h+44>>2]=0;o=a<<1|d>>>31;a=(d<<1)+39|0;k=o;k=a>>>0<39?k+1|0:k;a=c+((k&7)<<29|a>>>3)|0;f=k>>>3|0;f=a>>>0>>0?f+1|0:f;a=a+8|0;hi(e,a);a=H[e>>2];H[h+28>>2]=0;H[h+32>>2]=16384;H[h+24>>2]=a+H[h+40>>2];if((b|0)>0){a=16384;while(1){c=b-1|0;i=H[h>>2]+(H[t+(c<<2)>>2]<<3)|0;d=H[i>>2];f=d<<10;if(f>>>0<=a>>>0){while(1){g=H[h+28>>2];H[h+28>>2]=g+1;F[g+H[h+24>>2]|0]=a;a=H[h+32>>2]>>>8|0;H[h+32>>2]=a;if(a>>>0>=f>>>0){continue}break}}g=H[i+4>>2];i=(a>>>0)/(d>>>0)|0;a=g+((i<<12)+(a-N(d,i)|0)|0)|0;H[h+32>>2]=a;d=(b|0)>1;b=c;if(d){continue}break}}mf(h,e);a=H[h>>2];if(a){H[h+4>>2]=a;bl(a)}a=H[h+48>>2];if(a){bl(a)}ha=h- -64|0;break na}p=1;break v;case 3:t=a;l=0;n=0;d=0;s=0;u=0;i=0;h=ha+-64|0;ha=h;H[h+56>>2]=0;H[h+48>>2]=0;H[h+52>>2]=0;Fa:{a=m+1|0;if(a){if(a>>>0>=536870912){break a}a=a<<3;p=hl(a);H[h+48>>2]=p;l=a+p|0;H[h+56>>2]=l;lk(p,0,(m<<3)+8|0);H[h+52>>2]=l}Ga:{if((b|0)<=0){break Ga}a=0;if(b-1>>>0>=3){j=b&-4;while(1){c=a<<2;f=(H[c+t>>2]<<3)+p|0;o=H[f+4>>2];g=H[f>>2]+1|0;o=g?o:o+1|0;H[f>>2]=g;H[f+4>>2]=o;f=(H[t+(c|4)>>2]<<3)+p|0;k=H[f+4>>2];g=H[f>>2]+1|0;k=g?k:k+1|0;H[f>>2]=g;H[f+4>>2]=k;g=(H[t+(c|8)>>2]<<3)+p|0;f=H[g+4>>2];k=H[g>>2]+1|0;f=k?f:f+1|0;H[g>>2]=k;H[g+4>>2]=f;c=(H[t+(c|12)>>2]<<3)+p|0;o=H[c+4>>2];f=H[c>>2]+1|0;o=f?o:o+1|0;H[c>>2]=f;H[c+4>>2]=o;a=a+4|0;n=n+4|0;if((j|0)!=(n|0)){continue}break}}f=b&3;if(!f){break Ga}while(1){c=(H[t+(a<<2)>>2]<<3)+p|0;k=H[c+4>>2];g=H[c>>2]+1|0;k=g?k:k+1|0;H[c>>2]=g;H[c+4>>2]=k;a=a+1|0;d=d+1|0;if((f|0)!=(d|0)){continue}break}}H[h+8>>2]=0;H[h+12>>2]=0;H[h+16>>2]=0;H[h+20>>2]=0;H[h+24>>2]=0;H[h+28>>2]=0;H[h+32>>2]=0;H[h>>2]=0;H[h+4>>2]=0;H[h+40>>2]=0;H[h+44>>2]=0;m=0;d=0;c=0;r=ha-32|0;ha=r;a=l-p>>3;Ha:{if((a|0)<=0){break Ha}l=a&3;Ia:{if(a-1>>>0<3){a=0;break Ia}D=a&-4;a=0;while(1){o=a|1;g=(o<<3)+p|0;f=H[g+4>>2];n=H[g>>2];B=a|2;j=(B<<3)+p|0;g=H[j+4>>2];y=H[j>>2];x=a|3;k=(x<<3)+p|0;j=H[k+4>>2];A=H[k>>2];w=c;c=(a<<3)+p|0;C=H[c+4>>2];k=H[c>>2];c=j|A?x:g|y?B:f|n?o:!(C|k)?w:a;o=f;w=n;f=i+C|0;n=k+u|0;f=n>>>0>>0?f+1|0:f;k=n;i=w+k|0;o=f+o|0;o=i>>>0>>0?o+1|0:o;k=i;i=i+y|0;f=g+o|0;f=i>>>0>>0?f+1|0:f;k=i;i=i+A|0;g=f+j|0;u=i;i=i>>>0>>0?g+1|0:g;a=a+4|0;d=d+4|0;if((D|0)!=(d|0)){continue}break}}if(!l){break Ha}while(1){g=c;c=(a<<3)+p|0;f=H[c+4>>2];d=H[c>>2];c=!(f|d)?g:a;a=a+1|0;k=f+i|0;g=d+u|0;k=g>>>0>>0?k+1|0:k;u=g;i=k;m=m+1|0;if((l|0)!=(m|0)){continue}break}}f=c+1|0;H[h+12>>2]=f;d=H[h>>2];a=H[h+4>>2]-d>>3;Ja:{if(a>>>0>>0){jf(h,f-a|0);break Ja}if(a>>>0<=f>>>0){break Ja}H[h+4>>2]=d+(f<<3)}n=0;Ka:{La:{Ma:{Na:{if((c|0)>=0){v=+(u>>>0)+ +(i>>>0)*4294967296;i=H[h>>2];a=0;while(1){g=a<<3;j=g+p|0;d=H[j+4>>2];j=H[j>>2];k=(d|j)!=0;g=g+i|0;q=(+(j>>>0)+ +(d>>>0)*4294967296)/v*4096+.5;Oa:{if(q<4294967296&q>=0){d=~~q>>>0;break Oa}d=0}d=d?d:k?1:d;H[g>>2]=d;n=d+n|0;d=(a|0)==(c|0);a=a+1|0;if(!d){continue}break}if((n|0)==4096){break Na}}H[r+16>>2]=0;H[r+8>>2]=0;H[r+12>>2]=0;l=0;if(f){if(f>>>0>=1073741824){break a}a=f<<2;l=hl(a);H[r+8>>2]=l;s=a+l|0;H[r+16>>2]=s;lk(l,0,a);H[r+12>>2]=s}a=0;Pa:{if((c|0)<0){break Pa}i=c+1|0;d=i&7;if(c>>>0>=7){i=i&-8;m=0;while(1){H[(a<<2)+l>>2]=a;f=a|1;H[(f<<2)+l>>2]=f;f=a|2;H[(f<<2)+l>>2]=f;f=a|3;H[(f<<2)+l>>2]=f;f=a|4;H[(f<<2)+l>>2]=f;f=a|5;H[(f<<2)+l>>2]=f;f=a|6;H[(f<<2)+l>>2]=f;f=a|7;H[(f<<2)+l>>2]=f;a=a+8|0;m=m+8|0;if((i|0)!=(m|0)){continue}break}}if(!d){break Pa}m=0;while(1){H[(a<<2)+l>>2]=a;a=a+1|0;m=m+1|0;if((d|0)!=(m|0)){continue}break}}H[r+24>>2]=h;a=s-l|0;d=a>>2;Qa:{Ra:{if((a|0)>=513){a=d;while(1){i=hl(a<<2);if(i){break Ra}i=a>>>0>1;a=a>>>1|0;if(i){continue}break}}Ef(l,s,r+24|0,d,0,0);break Qa}Ef(l,s,r+24|0,d,i,a);bl(i)}if((n|0)<4096){a=H[h>>2]+(H[s-4>>2]<<3)|0;H[a>>2]=(H[a>>2]-n|0)+4096;a=0;break Ma}if((c|0)>0){g=H[h>>2];m=n-4096|0;while(1){q=4096/+(n|0);d=c;while(1){Sa:{Ta:{i=g+(H[(d<<2)+l>>2]<<3)|0;a=H[i>>2];if(a>>>0>=2){k=i;o=a;v=T(q*+(a>>>0));Ua:{if(P(v)<2147483648){f=~~v;break Ua}f=-2147483648}i=(a|0)==(f|0)?1:a-f|0;a=(a|0)>(i|0)?i:a-1|0;a=(a|0)<(m|0)?a:m;H[k>>2]=o-a;m=m-a|0;n=n-a|0;if((n|0)!=4096){break Ta}n=4096;break Sa}if((c|0)!=(d|0)){break Sa}a=1;break Ma}a=(d|0)>1;d=d-1|0;if(a){continue}}break}a=0;if((m|0)>0){continue}break}break Ma}a=0;if(n>>>0<4097){break Ma}while(1)continue}if((c|0)<0){break Ka}break La}d=H[r+8>>2];if(d){bl(d)}if((c|0)<0|a){break Ka}}i=c+1|0;g=i&3;d=H[h>>2];n=0;m=0;a=0;if(c>>>0>=3){j=i&-4;l=0;while(1){f=m<<3;k=f+d|0;H[k+4>>2]=a;o=d+(f|8)|0;a=H[k>>2]+a|0;H[o+4>>2]=a;k=d+(f|16)|0;a=a+H[o>>2]|0;H[k+4>>2]=a;f=d+(f|24)|0;a=a+H[k>>2]|0;H[f+4>>2]=a;a=a+H[f>>2]|0;m=m+4|0;l=l+4|0;if((j|0)!=(l|0)){continue}break}}if(g){while(1){f=d+(m<<3)|0;H[f+4>>2]=a;m=m+1|0;a=H[f>>2]+a|0;n=n+1|0;if((g|0)!=(n|0)){continue}break}}if((a|0)!=4096){break Ka}a=0;q=0;Va:{if((c|0)<0){break Va}f=H[h>>2];if(c){c=i&-2;d=0;while(1){g=a<<3;j=H[g+f>>2];if(j){g=g+p|0;q=(+K[g>>2]+ +K[g+4>>2]*4294967296)*nk(+(j>>>0)*.000244140625)+q}g=(a|1)<<3;j=H[g+f>>2];if(j){g=g+p|0;q=(+K[g>>2]+ +K[g+4>>2]*4294967296)*nk(+(j>>>0)*.000244140625)+q}a=a+2|0;d=d+2|0;if((c|0)!=(d|0)){continue}break}}if(!(i&1)){break Va}a=a<<3;c=H[a+f>>2];if(!c){break Va}a=a+p|0;q=(+K[a>>2]+ +K[a+4>>2]*4294967296)*nk(+(c>>>0)*.000244140625)+q}q=U(-q);Wa:{if(q<0x10000000000000000&q>=0){c=P(q)>=1?~~(q>0?R(T(q*2.3283064365386963e-10),4294967295):U((q-+(~~q>>>0>>>0))*2.3283064365386963e-10))>>>0:0;a=~~q>>>0;break Wa}c=0;a=0}H[h+16>>2]=a;H[h+20>>2]=c;of(h,e)}ha=r+32|0;d=H[h+16>>2];a=H[h+20>>2];c=H[e+4>>2]-H[e>>2]|0;H[h+40>>2]=c;H[h+44>>2]=0;f=a<<1|d>>>31;a=(d<<1)+39|0;f=a>>>0<39?f+1|0:f;a=c+((f&7)<<29|a>>>3)|0;g=f>>>3|0;g=a>>>0>>0?g+1|0:g;a=a+8|0;hi(e,a);a=H[e>>2];H[h+28>>2]=0;H[h+32>>2]=16384;H[h+24>>2]=a+H[h+40>>2];if((b|0)>0){a=16384;while(1){c=b-1|0;i=H[h>>2]+(H[t+(c<<2)>>2]<<3)|0;d=H[i>>2];f=d<<10;if(f>>>0<=a>>>0){while(1){g=H[h+28>>2];H[h+28>>2]=g+1;F[g+H[h+24>>2]|0]=a;a=H[h+32>>2]>>>8|0;H[h+32>>2]=a;if(a>>>0>=f>>>0){continue}break}}g=H[i+4>>2];i=(a>>>0)/(d>>>0)|0;a=g+((i<<12)+(a-N(d,i)|0)|0)|0;H[h+32>>2]=a;d=(b|0)>1;b=c;if(d){continue}break}}mf(h,e);a=H[h>>2];if(a){H[h+4>>2]=a;bl(a)}a=H[h+48>>2];if(a){bl(a)}ha=h- -64|0;break Fa}p=1;break v;case 4:c=0;g=0;l=0;i=ha+-64|0;ha=i;H[i+56>>2]=0;H[i+48>>2]=0;H[i+52>>2]=0;Xa:{d=m+1|0;if(d){if(d>>>0>=536870912){break a}d=d<<3;c=hl(d);H[i+48>>2]=c;g=c+d|0;H[i+56>>2]=g;lk(c,0,(m<<3)+8|0);H[i+52>>2]=g}Ya:{if((b|0)<=0){break Ya}m=0;if(b-1>>>0>=3){k=b&-4;while(1){d=m<<2;j=(H[d+a>>2]<<3)+c|0;f=H[j+4>>2];o=H[j>>2]+1|0;f=o?f:f+1|0;H[j>>2]=o;H[j+4>>2]=f;j=(H[(d|4)+a>>2]<<3)+c|0;f=H[j+4>>2];o=H[j>>2]+1|0;f=o?f:f+1|0;H[j>>2]=o;H[j+4>>2]=f;f=(H[(d|8)+a>>2]<<3)+c|0;j=H[f+4>>2];o=H[f>>2]+1|0;j=o?j:j+1|0;H[f>>2]=o;H[f+4>>2]=j;d=(H[(d|12)+a>>2]<<3)+c|0;f=H[d+4>>2];j=H[d>>2]+1|0;f=j?f:f+1|0;H[d>>2]=j;H[d+4>>2]=f;m=m+4|0;l=l+4|0;if((k|0)!=(l|0)){continue}break}}j=b&3;if(!j){break Ya}while(1){d=(H[(m<<2)+a>>2]<<3)+c|0;f=H[d+4>>2];k=H[d>>2]+1|0;f=k?f:f+1|0;H[d>>2]=k;H[d+4>>2]=f;m=m+1|0;p=p+1|0;if((j|0)!=(p|0)){continue}break}}H[i+8>>2]=0;H[i+12>>2]=0;H[i+16>>2]=0;H[i+20>>2]=0;H[i+24>>2]=0;H[i+28>>2]=0;H[i+32>>2]=0;H[i>>2]=0;H[i+4>>2]=0;H[i+40>>2]=0;H[i+44>>2]=0;lf(i,c,g-c>>3,e);f=H[i+16>>2];c=H[i+20>>2];d=H[e+4>>2]-H[e>>2]|0;H[i+40>>2]=d;H[i+44>>2]=0;g=f;f=c<<1|f>>>31;c=(g<<1)+39|0;j=c>>>0<39?f+1|0:f;c=d+((j&7)<<29|c>>>3)|0;f=j>>>3|0;f=c>>>0>>0?f+1|0:f;c=c+8|0;hi(e,c);c=H[e>>2];H[i+28>>2]=0;H[i+32>>2]=16384;H[i+24>>2]=c+H[i+40>>2];if((b|0)>0){m=16384;while(1){c=b-1|0;f=H[i>>2]+(H[(c<<2)+a>>2]<<3)|0;d=H[f>>2];g=d<<10;if(g>>>0<=m>>>0){while(1){j=H[i+28>>2];H[i+28>>2]=j+1;F[j+H[i+24>>2]|0]=m;m=H[i+32>>2]>>>8|0;H[i+32>>2]=m;if(g>>>0<=m>>>0){continue}break}}g=H[f+4>>2];f=(m>>>0)/(d>>>0)|0;m=g+((f<<12)+(m-N(d,f)|0)|0)|0;H[i+32>>2]=m;d=(b|0)>1;b=c;if(d){continue}break}}mf(i,e);a=H[i>>2];if(a){H[i+4>>2]=a;bl(a)}a=H[i+48>>2];if(a){bl(a)}ha=i- -64|0;break Xa}p=1;break v;case 5:t=a;l=0;n=0;d=0;s=0;u=0;i=0;h=ha+-64|0;ha=h;H[h+56>>2]=0;H[h+48>>2]=0;H[h+52>>2]=0;Za:{a=m+1|0;if(a){if(a>>>0>=536870912){break a}a=a<<3;p=hl(a);H[h+48>>2]=p;l=a+p|0;H[h+56>>2]=l;lk(p,0,(m<<3)+8|0);H[h+52>>2]=l}_a:{if((b|0)<=0){break _a}a=0;if(b-1>>>0>=3){k=b&-4;while(1){c=a<<2;g=(H[c+t>>2]<<3)+p|0;f=H[g+4>>2];j=H[g>>2]+1|0;f=j?f:f+1|0;H[g>>2]=j;H[g+4>>2]=f;f=(H[t+(c|4)>>2]<<3)+p|0;j=H[f+4>>2];g=H[f>>2]+1|0;j=g?j:j+1|0;H[f>>2]=g;H[f+4>>2]=j;f=(H[t+(c|8)>>2]<<3)+p|0;o=H[f+4>>2];g=H[f>>2]+1|0;o=g?o:o+1|0;H[f>>2]=g;H[f+4>>2]=o;c=(H[t+(c|12)>>2]<<3)+p|0;f=H[c+4>>2];g=H[c>>2]+1|0;f=g?f:f+1|0;H[c>>2]=g;H[c+4>>2]=f;a=a+4|0;n=n+4|0;if((k|0)!=(n|0)){continue}break}}f=b&3;if(!f){break _a}while(1){c=(H[t+(a<<2)>>2]<<3)+p|0;j=H[c+4>>2];g=H[c>>2]+1|0;j=g?j:j+1|0;H[c>>2]=g;H[c+4>>2]=j;a=a+1|0;d=d+1|0;if((f|0)!=(d|0)){continue}break}}H[h+8>>2]=0;H[h+12>>2]=0;H[h+16>>2]=0;H[h+20>>2]=0;H[h+24>>2]=0;H[h+28>>2]=0;H[h+32>>2]=0;H[h>>2]=0;H[h+4>>2]=0;H[h+40>>2]=0;H[h+44>>2]=0;m=0;d=0;c=0;r=ha-32|0;ha=r;a=l-p>>3;$a:{if((a|0)<=0){break $a}l=a&3;ab:{if(a-1>>>0<3){a=0;break ab}C=a&-4;a=0;while(1){D=a|1;g=(D<<3)+p|0;f=H[g+4>>2];o=H[g>>2];B=a|2;j=(B<<3)+p|0;g=H[j+4>>2];n=H[j>>2];x=a|3;k=(x<<3)+p|0;j=H[k+4>>2];y=H[k>>2];w=c;c=(a<<3)+p|0;A=H[c+4>>2];k=H[c>>2];c=j|y?x:g|n?B:f|o?D:!(A|k)?w:a;w=n;x=o;o=i+A|0;n=k+u|0;o=n>>>0>>0?o+1|0:o;k=n;i=x+k|0;f=f+o|0;f=i>>>0>>0?f+1|0:f;k=i;i=w+i|0;f=f+g|0;f=i>>>0>>0?f+1|0:f;k=i;i=i+y|0;g=f+j|0;u=i;i=i>>>0>>0?g+1|0:g;a=a+4|0;d=d+4|0;if((C|0)!=(d|0)){continue}break}}if(!l){break $a}while(1){g=c;c=(a<<3)+p|0;f=H[c+4>>2];d=H[c>>2];c=!(f|d)?g:a;a=a+1|0;j=f+i|0;g=d+u|0;j=g>>>0>>0?j+1|0:j;u=g;i=j;m=m+1|0;if((l|0)!=(m|0)){continue}break}}f=c+1|0;H[h+12>>2]=f;d=H[h>>2];a=H[h+4>>2]-d>>3;bb:{if(a>>>0>>0){jf(h,f-a|0);break bb}if(a>>>0<=f>>>0){break bb}H[h+4>>2]=d+(f<<3)}n=0;cb:{db:{eb:{fb:{if((c|0)>=0){v=+(u>>>0)+ +(i>>>0)*4294967296;i=H[h>>2];a=0;while(1){g=a<<3;j=g+p|0;d=H[j+4>>2];j=H[j>>2];k=(d|j)!=0;g=g+i|0;q=(+(j>>>0)+ +(d>>>0)*4294967296)/v*4096+.5;gb:{if(q<4294967296&q>=0){d=~~q>>>0;break gb}d=0}d=d?d:k?1:d;H[g>>2]=d;n=d+n|0;d=(a|0)==(c|0);a=a+1|0;if(!d){continue}break}if((n|0)==4096){break fb}}H[r+16>>2]=0;H[r+8>>2]=0;H[r+12>>2]=0;l=0;if(f){if(f>>>0>=1073741824){break a}a=f<<2;l=hl(a);H[r+8>>2]=l;s=a+l|0;H[r+16>>2]=s;lk(l,0,a);H[r+12>>2]=s}a=0;hb:{if((c|0)<0){break hb}i=c+1|0;d=i&7;if(c>>>0>=7){i=i&-8;m=0;while(1){H[(a<<2)+l>>2]=a;f=a|1;H[(f<<2)+l>>2]=f;f=a|2;H[(f<<2)+l>>2]=f;f=a|3;H[(f<<2)+l>>2]=f;f=a|4;H[(f<<2)+l>>2]=f;f=a|5;H[(f<<2)+l>>2]=f;f=a|6;H[(f<<2)+l>>2]=f;f=a|7;H[(f<<2)+l>>2]=f;a=a+8|0;m=m+8|0;if((i|0)!=(m|0)){continue}break}}if(!d){break hb}m=0;while(1){H[(a<<2)+l>>2]=a;a=a+1|0;m=m+1|0;if((d|0)!=(m|0)){continue}break}}H[r+24>>2]=h;a=s-l|0;d=a>>2;ib:{jb:{if((a|0)>=513){a=d;while(1){i=hl(a<<2);if(i){break jb}i=a>>>0>1;a=a>>>1|0;if(i){continue}break}}Hf(l,s,r+24|0,d,0,0);break ib}Hf(l,s,r+24|0,d,i,a);bl(i)}if((n|0)<4096){a=H[h>>2]+(H[s-4>>2]<<3)|0;H[a>>2]=(H[a>>2]-n|0)+4096;a=0;break eb}if((c|0)>0){g=H[h>>2];m=n-4096|0;while(1){q=4096/+(n|0);d=c;while(1){kb:{lb:{i=g+(H[(d<<2)+l>>2]<<3)|0;a=H[i>>2];if(a>>>0>=2){k=i;o=a;v=T(q*+(a>>>0));mb:{if(P(v)<2147483648){f=~~v;break mb}f=-2147483648}i=(a|0)==(f|0)?1:a-f|0;a=(a|0)>(i|0)?i:a-1|0;a=(a|0)<(m|0)?a:m;H[k>>2]=o-a;m=m-a|0;n=n-a|0;if((n|0)!=4096){break lb}n=4096;break kb}if((c|0)!=(d|0)){break kb}a=1;break eb}a=(d|0)>1;d=d-1|0;if(a){continue}}break}a=0;if((m|0)>0){continue}break}break eb}a=0;if(n>>>0<4097){break eb}while(1)continue}if((c|0)<0){break cb}break db}d=H[r+8>>2];if(d){bl(d)}if((c|0)<0|a){break cb}}i=c+1|0;g=i&3;d=H[h>>2];n=0;m=0;a=0;if(c>>>0>=3){j=i&-4;l=0;while(1){f=m<<3;k=f+d|0;H[k+4>>2]=a;o=d+(f|8)|0;a=H[k>>2]+a|0;H[o+4>>2]=a;k=d+(f|16)|0;a=a+H[o>>2]|0;H[k+4>>2]=a;f=d+(f|24)|0;a=a+H[k>>2]|0;H[f+4>>2]=a;a=a+H[f>>2]|0;m=m+4|0;l=l+4|0;if((j|0)!=(l|0)){continue}break}}if(g){while(1){f=d+(m<<3)|0;H[f+4>>2]=a;m=m+1|0;a=H[f>>2]+a|0;n=n+1|0;if((g|0)!=(n|0)){continue}break}}if((a|0)!=4096){break cb}a=0;q=0;nb:{if((c|0)<0){break nb}f=H[h>>2];if(c){c=i&-2;d=0;while(1){g=a<<3;j=H[g+f>>2];if(j){g=g+p|0;q=(+K[g>>2]+ +K[g+4>>2]*4294967296)*nk(+(j>>>0)*.000244140625)+q}g=(a|1)<<3;j=H[g+f>>2];if(j){g=g+p|0;q=(+K[g>>2]+ +K[g+4>>2]*4294967296)*nk(+(j>>>0)*.000244140625)+q}a=a+2|0;d=d+2|0;if((c|0)!=(d|0)){continue}break}}if(!(i&1)){break nb}a=a<<3;c=H[a+f>>2];if(!c){break nb}a=a+p|0;q=(+K[a>>2]+ +K[a+4>>2]*4294967296)*nk(+(c>>>0)*.000244140625)+q}q=U(-q);ob:{if(q<0x10000000000000000&q>=0){c=P(q)>=1?~~(q>0?R(T(q*2.3283064365386963e-10),4294967295):U((q-+(~~q>>>0>>>0))*2.3283064365386963e-10))>>>0:0;a=~~q>>>0;break ob}c=0;a=0}H[h+16>>2]=a;H[h+20>>2]=c;of(h,e)}ha=r+32|0;d=H[h+16>>2];a=H[h+20>>2];c=H[e+4>>2]-H[e>>2]|0;H[h+40>>2]=c;H[h+44>>2]=0;f=a<<1|d>>>31;a=(d<<1)+39|0;o=a>>>0<39?f+1|0:f;a=c+((o&7)<<29|a>>>3)|0;g=o>>>3|0;g=a>>>0>>0?g+1|0:g;a=a+8|0;hi(e,a);a=H[e>>2];H[h+28>>2]=0;H[h+32>>2]=16384;H[h+24>>2]=a+H[h+40>>2];if((b|0)>0){a=16384;while(1){c=b-1|0;i=H[h>>2]+(H[t+(c<<2)>>2]<<3)|0;d=H[i>>2];f=d<<10;if(f>>>0<=a>>>0){while(1){g=H[h+28>>2];H[h+28>>2]=g+1;F[g+H[h+24>>2]|0]=a;a=H[h+32>>2]>>>8|0;H[h+32>>2]=a;if(a>>>0>=f>>>0){continue}break}}g=H[i+4>>2];i=(a>>>0)/(d>>>0)|0;a=g+((i<<12)+(a-N(d,i)|0)|0)|0;H[h+32>>2]=a;d=(b|0)>1;b=c;if(d){continue}break}}mf(h,e);a=H[h>>2];if(a){H[h+4>>2]=a;bl(a)}a=H[h+48>>2];if(a){bl(a)}ha=h- -64|0;break Za}p=1;break v;case 6:t=a;l=0;n=0;d=0;s=0;u=0;i=0;h=ha+-64|0;ha=h;H[h+56>>2]=0;H[h+48>>2]=0;H[h+52>>2]=0;pb:{a=m+1|0;if(a){if(a>>>0>=536870912){break a}a=a<<3;p=hl(a);H[h+48>>2]=p;l=a+p|0;H[h+56>>2]=l;lk(p,0,(m<<3)+8|0);H[h+52>>2]=l}qb:{if((b|0)<=0){break qb}a=0;if(b-1>>>0>=3){j=b&-4;while(1){c=a<<2;g=(H[c+t>>2]<<3)+p|0;f=H[g+4>>2];k=H[g>>2]+1|0;f=k?f:f+1|0;H[g>>2]=k;H[g+4>>2]=f;f=(H[t+(c|4)>>2]<<3)+p|0;o=H[f+4>>2];g=H[f>>2]+1|0;o=g?o:o+1|0;H[f>>2]=g;H[f+4>>2]=o;f=(H[t+(c|8)>>2]<<3)+p|0;k=H[f+4>>2];g=H[f>>2]+1|0;k=g?k:k+1|0;H[f>>2]=g;H[f+4>>2]=k;c=(H[t+(c|12)>>2]<<3)+p|0;f=H[c+4>>2];g=H[c>>2]+1|0;f=g?f:f+1|0;H[c>>2]=g;H[c+4>>2]=f;a=a+4|0;n=n+4|0;if((j|0)!=(n|0)){continue}break}}f=b&3;if(!f){break qb}while(1){c=(H[t+(a<<2)>>2]<<3)+p|0;o=H[c+4>>2];g=H[c>>2]+1|0;o=g?o:o+1|0;H[c>>2]=g;H[c+4>>2]=o;a=a+1|0;d=d+1|0;if((f|0)!=(d|0)){continue}break}}H[h+8>>2]=0;H[h+12>>2]=0;H[h+16>>2]=0;H[h+20>>2]=0;H[h+24>>2]=0;H[h+28>>2]=0;H[h+32>>2]=0;H[h>>2]=0;H[h+4>>2]=0;H[h+40>>2]=0;H[h+44>>2]=0;m=0;d=0;c=0;r=ha-32|0;ha=r;a=l-p>>3;rb:{if((a|0)<=0){break rb}l=a&3;sb:{if(a-1>>>0<3){a=0;break sb}C=a&-4;a=0;while(1){D=a|1;g=(D<<3)+p|0;f=H[g+4>>2];o=H[g>>2];B=a|2;j=(B<<3)+p|0;g=H[j+4>>2];n=H[j>>2];x=a|3;k=(x<<3)+p|0;j=H[k+4>>2];y=H[k>>2];w=c;c=(a<<3)+p|0;A=H[c+4>>2];k=H[c>>2];c=j|y?x:g|n?B:f|o?D:!(A|k)?w:a;w=n;x=o;o=k;n=k+u|0;k=i+A|0;k=n>>>0>>0?k+1|0:k;i=x+n|0;f=f+k|0;f=i>>>0>>0?f+1|0:f;k=i;i=w+i|0;g=f+g|0;g=i>>>0>>0?g+1|0:g;k=i;i=i+y|0;f=g+j|0;u=i;i=i>>>0>>0?f+1|0:f;a=a+4|0;d=d+4|0;if((C|0)!=(d|0)){continue}break}}if(!l){break rb}while(1){g=c;c=(a<<3)+p|0;f=H[c+4>>2];d=H[c>>2];c=!(f|d)?g:a;a=a+1|0;o=f+i|0;g=d+u|0;o=g>>>0>>0?o+1|0:o;u=g;i=o;m=m+1|0;if((l|0)!=(m|0)){continue}break}}f=c+1|0;H[h+12>>2]=f;d=H[h>>2];a=H[h+4>>2]-d>>3;tb:{if(a>>>0>>0){jf(h,f-a|0);break tb}if(a>>>0<=f>>>0){break tb}H[h+4>>2]=d+(f<<3)}n=0;ub:{vb:{wb:{xb:{if((c|0)>=0){v=+(u>>>0)+ +(i>>>0)*4294967296;i=H[h>>2];a=0;while(1){g=a<<3;j=g+p|0;d=H[j+4>>2];j=H[j>>2];k=(d|j)!=0;g=g+i|0;q=(+(j>>>0)+ +(d>>>0)*4294967296)/v*4096+.5;yb:{if(q<4294967296&q>=0){d=~~q>>>0;break yb}d=0}d=d?d:k?1:d;H[g>>2]=d;n=d+n|0;d=(a|0)==(c|0);a=a+1|0;if(!d){continue}break}if((n|0)==4096){break xb}}H[r+16>>2]=0;H[r+8>>2]=0;H[r+12>>2]=0;l=0;if(f){if(f>>>0>=1073741824){break a}a=f<<2;l=hl(a);H[r+8>>2]=l;s=a+l|0;H[r+16>>2]=s;lk(l,0,a);H[r+12>>2]=s}a=0;zb:{if((c|0)<0){break zb}i=c+1|0;d=i&7;if(c>>>0>=7){i=i&-8;m=0;while(1){H[(a<<2)+l>>2]=a;f=a|1;H[(f<<2)+l>>2]=f;f=a|2;H[(f<<2)+l>>2]=f;f=a|3;H[(f<<2)+l>>2]=f;f=a|4;H[(f<<2)+l>>2]=f;f=a|5;H[(f<<2)+l>>2]=f;f=a|6;H[(f<<2)+l>>2]=f;f=a|7;H[(f<<2)+l>>2]=f;a=a+8|0;m=m+8|0;if((i|0)!=(m|0)){continue}break}}if(!d){break zb}m=0;while(1){H[(a<<2)+l>>2]=a;a=a+1|0;m=m+1|0;if((d|0)!=(m|0)){continue}break}}H[r+24>>2]=h;a=s-l|0;d=a>>2;Ab:{Bb:{if((a|0)>=513){a=d;while(1){i=hl(a<<2);if(i){break Bb}i=a>>>0>1;a=a>>>1|0;if(i){continue}break}}Kf(l,s,r+24|0,d,0,0);break Ab}Kf(l,s,r+24|0,d,i,a);bl(i)}if((n|0)<4096){a=H[h>>2]+(H[s-4>>2]<<3)|0;H[a>>2]=(H[a>>2]-n|0)+4096;a=0;break wb}if((c|0)>0){g=H[h>>2];m=n-4096|0;while(1){q=4096/+(n|0);d=c;while(1){Cb:{Db:{i=g+(H[(d<<2)+l>>2]<<3)|0;a=H[i>>2];if(a>>>0>=2){k=i;o=a;v=T(q*+(a>>>0));Eb:{if(P(v)<2147483648){f=~~v;break Eb}f=-2147483648}i=(a|0)==(f|0)?1:a-f|0;a=(a|0)>(i|0)?i:a-1|0;a=(a|0)<(m|0)?a:m;H[k>>2]=o-a;m=m-a|0;n=n-a|0;if((n|0)!=4096){break Db}n=4096;break Cb}if((c|0)!=(d|0)){break Cb}a=1;break wb}a=(d|0)>1;d=d-1|0;if(a){continue}}break}a=0;if((m|0)>0){continue}break}break wb}a=0;if(n>>>0<4097){break wb}while(1)continue}if((c|0)<0){break ub}break vb}d=H[r+8>>2];if(d){bl(d)}if((c|0)<0|a){break ub}}i=c+1|0;g=i&3;d=H[h>>2];n=0;m=0;a=0;if(c>>>0>=3){j=i&-4;l=0;while(1){f=m<<3;k=f+d|0;H[k+4>>2]=a;o=d+(f|8)|0;a=H[k>>2]+a|0;H[o+4>>2]=a;k=d+(f|16)|0;a=a+H[o>>2]|0;H[k+4>>2]=a;f=d+(f|24)|0;a=a+H[k>>2]|0;H[f+4>>2]=a;a=a+H[f>>2]|0;m=m+4|0;l=l+4|0;if((j|0)!=(l|0)){continue}break}}if(g){while(1){f=d+(m<<3)|0;H[f+4>>2]=a;m=m+1|0;a=H[f>>2]+a|0;n=n+1|0;if((g|0)!=(n|0)){continue}break}}if((a|0)!=4096){break ub}a=0;q=0;Fb:{if((c|0)<0){break Fb}f=H[h>>2];if(c){c=i&-2;d=0;while(1){g=a<<3;j=H[g+f>>2];if(j){g=g+p|0;q=(+K[g>>2]+ +K[g+4>>2]*4294967296)*nk(+(j>>>0)*.000244140625)+q}g=(a|1)<<3;j=H[g+f>>2];if(j){g=g+p|0;q=(+K[g>>2]+ +K[g+4>>2]*4294967296)*nk(+(j>>>0)*.000244140625)+q}a=a+2|0;d=d+2|0;if((c|0)!=(d|0)){continue}break}}if(!(i&1)){break Fb}a=a<<3;c=H[a+f>>2];if(!c){break Fb}a=a+p|0;q=(+K[a>>2]+ +K[a+4>>2]*4294967296)*nk(+(c>>>0)*.000244140625)+q}q=U(-q);Gb:{if(q<0x10000000000000000&q>=0){c=P(q)>=1?~~(q>0?R(T(q*2.3283064365386963e-10),4294967295):U((q-+(~~q>>>0>>>0))*2.3283064365386963e-10))>>>0:0;a=~~q>>>0;break Gb}c=0;a=0}H[h+16>>2]=a;H[h+20>>2]=c;of(h,e)}ha=r+32|0;d=H[h+16>>2];a=H[h+20>>2];c=H[e+4>>2]-H[e>>2]|0;H[h+40>>2]=c;H[h+44>>2]=0;g=a<<1|d>>>31;a=(d<<1)+39|0;k=a>>>0<39?g+1|0:g;f=k>>>3|0;a=c+((k&7)<<29|a>>>3)|0;f=a>>>0>>0?f+1|0:f;a=a+8|0;hi(e,a);a=H[e>>2];H[h+28>>2]=0;H[h+32>>2]=16384;H[h+24>>2]=a+H[h+40>>2];if((b|0)>0){a=16384;while(1){c=b-1|0;i=H[h>>2]+(H[t+(c<<2)>>2]<<3)|0;d=H[i>>2];f=d<<10;if(f>>>0<=a>>>0){while(1){g=H[h+28>>2];H[h+28>>2]=g+1;F[g+H[h+24>>2]|0]=a;a=H[h+32>>2]>>>8|0;H[h+32>>2]=a;if(a>>>0>=f>>>0){continue}break}}g=H[i+4>>2];i=(a>>>0)/(d>>>0)|0;a=g+((i<<12)+(a-N(d,i)|0)|0)|0;H[h+32>>2]=a;d=(b|0)>1;b=c;if(d){continue}break}}mf(h,e);a=H[h>>2];if(a){H[h+4>>2]=a;bl(a)}a=H[h+48>>2];if(a){bl(a)}ha=h- -64|0;break pb}p=1;break v;case 7:t=a;l=0;n=0;d=0;s=0;u=0;i=0;h=ha+-64|0;ha=h;H[h+56>>2]=0;H[h+48>>2]=0;H[h+52>>2]=0;Hb:{a=m+1|0;if(a){if(a>>>0>=536870912){break a}a=a<<3;p=hl(a);H[h+48>>2]=p;l=a+p|0;H[h+56>>2]=l;lk(p,0,(m<<3)+8|0);H[h+52>>2]=l}Ib:{if((b|0)<=0){break Ib}a=0;if(b-1>>>0>=3){o=b&-4;while(1){c=a<<2;f=(H[c+t>>2]<<3)+p|0;g=H[f+4>>2];j=H[f>>2]+1|0;g=j?g:g+1|0;H[f>>2]=j;H[f+4>>2]=g;f=(H[t+(c|4)>>2]<<3)+p|0;k=H[f+4>>2];g=H[f>>2]+1|0;k=g?k:k+1|0;H[f>>2]=g;H[f+4>>2]=k;f=(H[t+(c|8)>>2]<<3)+p|0;j=H[f+4>>2];g=H[f>>2]+1|0;j=g?j:j+1|0;H[f>>2]=g;H[f+4>>2]=j;c=(H[t+(c|12)>>2]<<3)+p|0;g=H[c+4>>2];f=H[c>>2]+1|0;g=f?g:g+1|0;H[c>>2]=f;H[c+4>>2]=g;a=a+4|0;n=n+4|0;if((o|0)!=(n|0)){continue}break}}f=b&3;if(!f){break Ib}while(1){c=(H[t+(a<<2)>>2]<<3)+p|0;k=H[c+4>>2];g=H[c>>2]+1|0;k=g?k:k+1|0;H[c>>2]=g;H[c+4>>2]=k;a=a+1|0;d=d+1|0;if((f|0)!=(d|0)){continue}break}}H[h+8>>2]=0;H[h+12>>2]=0;H[h+16>>2]=0;H[h+20>>2]=0;H[h+24>>2]=0;H[h+28>>2]=0;H[h+32>>2]=0;H[h>>2]=0;H[h+4>>2]=0;H[h+40>>2]=0;H[h+44>>2]=0;m=0;d=0;c=0;r=ha-32|0;ha=r;a=l-p>>3;Jb:{if((a|0)<=0){break Jb}n=a&3;Kb:{if(a-1>>>0<3){a=0;break Kb}B=a&-4;a=0;while(1){o=a|1;g=(o<<3)+p|0;f=H[g+4>>2];y=H[g>>2];l=a|2;j=(l<<3)+p|0;g=H[j+4>>2];A=H[j>>2];x=a|3;k=(x<<3)+p|0;j=H[k+4>>2];C=H[k>>2];w=c;c=(a<<3)+p|0;D=H[c+4>>2];k=H[c>>2];c=j|C?x:g|A?l:f|y?o:!(D|k)?w:a;o=j;l=g;j=i+D|0;g=k+u|0;j=g>>>0>>0?j+1|0:j;k=g;i=g+y|0;g=f+j|0;g=i>>>0>>0?g+1|0:g;j=i;i=i+A|0;f=g+l|0;f=i>>>0>>0?f+1|0:f;g=i;i=g+C|0;f=f+o|0;u=i;i=g>>>0>i>>>0?f+1|0:f;a=a+4|0;d=d+4|0;if((B|0)!=(d|0)){continue}break}}if(!n){break Jb}while(1){g=c;c=(a<<3)+p|0;f=H[c+4>>2];d=H[c>>2];c=!(f|d)?g:a;a=a+1|0;k=f+i|0;g=d+u|0;k=g>>>0>>0?k+1|0:k;u=g;i=k;m=m+1|0;if((n|0)!=(m|0)){continue}break}}f=c+1|0;H[h+12>>2]=f;d=H[h>>2];a=H[h+4>>2]-d>>3;Lb:{if(a>>>0>>0){jf(h,f-a|0);break Lb}if(a>>>0<=f>>>0){break Lb}H[h+4>>2]=d+(f<<3)}n=0;Mb:{Nb:{Ob:{Pb:{if((c|0)>=0){v=+(u>>>0)+ +(i>>>0)*4294967296;i=H[h>>2];a=0;while(1){g=a<<3;j=g+p|0;d=H[j+4>>2];j=H[j>>2];k=(d|j)!=0;g=g+i|0;q=(+(j>>>0)+ +(d>>>0)*4294967296)/v*4096+.5;Qb:{if(q<4294967296&q>=0){d=~~q>>>0;break Qb}d=0}d=d?d:k?1:d;H[g>>2]=d;n=d+n|0;d=(a|0)==(c|0);a=a+1|0;if(!d){continue}break}if((n|0)==4096){break Pb}}H[r+16>>2]=0;H[r+8>>2]=0;H[r+12>>2]=0;l=0;if(f){if(f>>>0>=1073741824){break a}a=f<<2;l=hl(a);H[r+8>>2]=l;s=a+l|0;H[r+16>>2]=s;lk(l,0,a);H[r+12>>2]=s}a=0;Rb:{if((c|0)<0){break Rb}i=c+1|0;d=i&7;if(c>>>0>=7){i=i&-8;m=0;while(1){H[(a<<2)+l>>2]=a;f=a|1;H[(f<<2)+l>>2]=f;f=a|2;H[(f<<2)+l>>2]=f;f=a|3;H[(f<<2)+l>>2]=f;f=a|4;H[(f<<2)+l>>2]=f;f=a|5;H[(f<<2)+l>>2]=f;f=a|6;H[(f<<2)+l>>2]=f;f=a|7;H[(f<<2)+l>>2]=f;a=a+8|0;m=m+8|0;if((i|0)!=(m|0)){continue}break}}if(!d){break Rb}m=0;while(1){H[(a<<2)+l>>2]=a;a=a+1|0;m=m+1|0;if((d|0)!=(m|0)){continue}break}}H[r+24>>2]=h;a=s-l|0;d=a>>2;Sb:{Tb:{if((a|0)>=513){a=d;while(1){i=hl(a<<2);if(i){break Tb}i=a>>>0>1;a=a>>>1|0;if(i){continue}break}}Nf(l,s,r+24|0,d,0,0);break Sb}Nf(l,s,r+24|0,d,i,a);bl(i)}if((n|0)<4096){a=H[h>>2]+(H[s-4>>2]<<3)|0;H[a>>2]=(H[a>>2]-n|0)+4096;a=0;break Ob}if((c|0)>0){g=H[h>>2];m=n-4096|0;while(1){q=4096/+(n|0);d=c;while(1){Ub:{Vb:{i=g+(H[(d<<2)+l>>2]<<3)|0;a=H[i>>2];if(a>>>0>=2){k=i;o=a;v=T(q*+(a>>>0));Wb:{if(P(v)<2147483648){f=~~v;break Wb}f=-2147483648}i=(a|0)==(f|0)?1:a-f|0;a=(a|0)>(i|0)?i:a-1|0;a=(a|0)<(m|0)?a:m;H[k>>2]=o-a;m=m-a|0;n=n-a|0;if((n|0)!=4096){break Vb}n=4096;break Ub}if((c|0)!=(d|0)){break Ub}a=1;break Ob}a=(d|0)>1;d=d-1|0;if(a){continue}}break}a=0;if((m|0)>0){continue}break}break Ob}a=0;if(n>>>0<4097){break Ob}while(1)continue}if((c|0)<0){break Mb}break Nb}d=H[r+8>>2];if(d){bl(d)}if((c|0)<0|a){break Mb}}i=c+1|0;g=i&3;d=H[h>>2];n=0;m=0;a=0;if(c>>>0>=3){j=i&-4;l=0;while(1){f=m<<3;k=f+d|0;H[k+4>>2]=a;o=d+(f|8)|0;a=H[k>>2]+a|0;H[o+4>>2]=a;k=d+(f|16)|0;a=a+H[o>>2]|0;H[k+4>>2]=a;f=d+(f|24)|0;a=a+H[k>>2]|0;H[f+4>>2]=a;a=a+H[f>>2]|0;m=m+4|0;l=l+4|0;if((j|0)!=(l|0)){continue}break}}if(g){while(1){f=d+(m<<3)|0;H[f+4>>2]=a;m=m+1|0;a=H[f>>2]+a|0;n=n+1|0;if((g|0)!=(n|0)){continue}break}}if((a|0)!=4096){break Mb}a=0;q=0;Xb:{if((c|0)<0){break Xb}f=H[h>>2];if(c){c=i&-2;d=0;while(1){g=a<<3;j=H[g+f>>2];if(j){g=g+p|0;q=(+K[g>>2]+ +K[g+4>>2]*4294967296)*nk(+(j>>>0)*.000244140625)+q}g=(a|1)<<3;j=H[g+f>>2];if(j){g=g+p|0;q=(+K[g>>2]+ +K[g+4>>2]*4294967296)*nk(+(j>>>0)*.000244140625)+q}a=a+2|0;d=d+2|0;if((c|0)!=(d|0)){continue}break}}if(!(i&1)){break Xb}a=a<<3;c=H[a+f>>2];if(!c){break Xb}a=a+p|0;q=(+K[a>>2]+ +K[a+4>>2]*4294967296)*nk(+(c>>>0)*.000244140625)+q}q=U(-q);Yb:{if(q<0x10000000000000000&q>=0){c=P(q)>=1?~~(q>0?R(T(q*2.3283064365386963e-10),4294967295):U((q-+(~~q>>>0>>>0))*2.3283064365386963e-10))>>>0:0;a=~~q>>>0;break Yb}c=0;a=0}H[h+16>>2]=a;H[h+20>>2]=c;of(h,e)}ha=r+32|0;d=H[h+16>>2];a=H[h+20>>2];c=H[e+4>>2]-H[e>>2]|0;H[h+40>>2]=c;H[h+44>>2]=0;f=a<<1|d>>>31;a=(d<<1)+39|0;j=a>>>0<39?f+1|0:f;a=c+((j&7)<<29|a>>>3)|0;f=j>>>3|0;f=a>>>0>>0?f+1|0:f;a=a+8|0;hi(e,a);a=H[e>>2];H[h+28>>2]=0;H[h+32>>2]=16384;H[h+24>>2]=a+H[h+40>>2];if((b|0)>0){a=16384;while(1){c=b-1|0;i=H[h>>2]+(H[t+(c<<2)>>2]<<3)|0;d=H[i>>2];f=d<<10;if(f>>>0<=a>>>0){while(1){g=H[h+28>>2];H[h+28>>2]=g+1;F[g+H[h+24>>2]|0]=a;a=H[h+32>>2]>>>8|0;H[h+32>>2]=a;if(a>>>0>=f>>>0){continue}break}}g=H[i+4>>2];i=(a>>>0)/(d>>>0)|0;a=g+((i<<12)+(a-N(d,i)|0)|0)|0;H[h+32>>2]=a;d=(b|0)>1;b=c;if(d){continue}break}}mf(h,e);a=H[h>>2];if(a){H[h+4>>2]=a;bl(a)}a=H[h+48>>2];if(a){bl(a)}ha=h- -64|0;break Hb}p=1;break v;case 8:t=a;l=0;n=0;d=0;s=0;u=0;i=0;h=ha+-64|0;ha=h;H[h+56>>2]=0;H[h+48>>2]=0;H[h+52>>2]=0;Zb:{a=m+1|0;if(a){if(a>>>0>=536870912){break a}a=a<<3;p=hl(a);H[h+48>>2]=p;l=a+p|0;H[h+56>>2]=l;lk(p,0,(m<<3)+8|0);H[h+52>>2]=l}_b:{if((b|0)<=0){break _b}a=0;if(b-1>>>0>=3){k=b&-4;while(1){c=a<<2;g=(H[c+t>>2]<<3)+p|0;f=H[g+4>>2];j=H[g>>2]+1|0;f=j?f:f+1|0;H[g>>2]=j;H[g+4>>2]=f;f=(H[t+(c|4)>>2]<<3)+p|0;j=H[f+4>>2];g=H[f>>2]+1|0;j=g?j:j+1|0;H[f>>2]=g;H[f+4>>2]=j;f=(H[t+(c|8)>>2]<<3)+p|0;o=H[f+4>>2];g=H[f>>2]+1|0;o=g?o:o+1|0;H[f>>2]=g;H[f+4>>2]=o;c=(H[t+(c|12)>>2]<<3)+p|0;f=H[c+4>>2];g=H[c>>2]+1|0;f=g?f:f+1|0;H[c>>2]=g;H[c+4>>2]=f;a=a+4|0;n=n+4|0;if((k|0)!=(n|0)){continue}break}}f=b&3;if(!f){break _b}while(1){c=(H[t+(a<<2)>>2]<<3)+p|0;j=H[c+4>>2];g=H[c>>2]+1|0;j=g?j:j+1|0;H[c>>2]=g;H[c+4>>2]=j;a=a+1|0;d=d+1|0;if((f|0)!=(d|0)){continue}break}}H[h+8>>2]=0;H[h+12>>2]=0;H[h+16>>2]=0;H[h+20>>2]=0;H[h+24>>2]=0;H[h+28>>2]=0;H[h+32>>2]=0;H[h>>2]=0;H[h+4>>2]=0;H[h+40>>2]=0;H[h+44>>2]=0;m=0;d=0;c=0;r=ha-32|0;ha=r;a=l-p>>3;$b:{if((a|0)<=0){break $b}l=a&3;ac:{if(a-1>>>0<3){a=0;break ac}C=a&-4;a=0;while(1){D=a|1;g=(D<<3)+p|0;f=H[g+4>>2];o=H[g>>2];B=a|2;j=(B<<3)+p|0;g=H[j+4>>2];n=H[j>>2];x=a|3;k=(x<<3)+p|0;j=H[k+4>>2];y=H[k>>2];w=c;c=(a<<3)+p|0;A=H[c+4>>2];k=H[c>>2];c=j|y?x:g|n?B:f|o?D:!(A|k)?w:a;w=n;x=o;o=i+A|0;n=k+u|0;o=n>>>0>>0?o+1|0:o;k=n;i=x+k|0;f=f+o|0;f=i>>>0>>0?f+1|0:f;k=i;i=w+i|0;f=f+g|0;f=i>>>0>>0?f+1|0:f;k=i;i=i+y|0;g=f+j|0;u=i;i=i>>>0>>0?g+1|0:g;a=a+4|0;d=d+4|0;if((C|0)!=(d|0)){continue}break}}if(!l){break $b}while(1){g=c;c=(a<<3)+p|0;f=H[c+4>>2];d=H[c>>2];c=!(f|d)?g:a;a=a+1|0;j=f+i|0;g=d+u|0;j=g>>>0>>0?j+1|0:j;u=g;i=j;m=m+1|0;if((l|0)!=(m|0)){continue}break}}f=c+1|0;H[h+12>>2]=f;d=H[h>>2];a=H[h+4>>2]-d>>3;bc:{if(a>>>0>>0){jf(h,f-a|0);break bc}if(a>>>0<=f>>>0){break bc}H[h+4>>2]=d+(f<<3)}n=0;cc:{dc:{ec:{fc:{if((c|0)>=0){v=+(u>>>0)+ +(i>>>0)*4294967296;i=H[h>>2];a=0;while(1){g=a<<3;j=g+p|0;d=H[j+4>>2];j=H[j>>2];k=(d|j)!=0;g=g+i|0;q=(+(j>>>0)+ +(d>>>0)*4294967296)/v*8192+.5;gc:{if(q<4294967296&q>=0){d=~~q>>>0;break gc}d=0}d=d?d:k?1:d;H[g>>2]=d;n=d+n|0;d=(a|0)==(c|0);a=a+1|0;if(!d){continue}break}if((n|0)==8192){break fc}}H[r+16>>2]=0;H[r+8>>2]=0;H[r+12>>2]=0;l=0;if(f){if(f>>>0>=1073741824){break a}a=f<<2;l=hl(a);H[r+8>>2]=l;s=a+l|0;H[r+16>>2]=s;lk(l,0,a);H[r+12>>2]=s}a=0;hc:{if((c|0)<0){break hc}i=c+1|0;d=i&7;if(c>>>0>=7){i=i&-8;m=0;while(1){H[(a<<2)+l>>2]=a;f=a|1;H[(f<<2)+l>>2]=f;f=a|2;H[(f<<2)+l>>2]=f;f=a|3;H[(f<<2)+l>>2]=f;f=a|4;H[(f<<2)+l>>2]=f;f=a|5;H[(f<<2)+l>>2]=f;f=a|6;H[(f<<2)+l>>2]=f;f=a|7;H[(f<<2)+l>>2]=f;a=a+8|0;m=m+8|0;if((i|0)!=(m|0)){continue}break}}if(!d){break hc}m=0;while(1){H[(a<<2)+l>>2]=a;a=a+1|0;m=m+1|0;if((d|0)!=(m|0)){continue}break}}H[r+24>>2]=h;a=s-l|0;d=a>>2;ic:{jc:{if((a|0)>=513){a=d;while(1){i=hl(a<<2);if(i){break jc}i=a>>>0>1;a=a>>>1|0;if(i){continue}break}}Qf(l,s,r+24|0,d,0,0);break ic}Qf(l,s,r+24|0,d,i,a);bl(i)}if((n|0)<8192){a=H[h>>2]+(H[s-4>>2]<<3)|0;H[a>>2]=(H[a>>2]-n|0)- -8192;a=0;break ec}if((c|0)>0){g=H[h>>2];m=n+-8192|0;while(1){q=8192/+(n|0);d=c;while(1){kc:{lc:{i=g+(H[(d<<2)+l>>2]<<3)|0;a=H[i>>2];if(a>>>0>=2){k=i;o=a;v=T(q*+(a>>>0));mc:{if(P(v)<2147483648){f=~~v;break mc}f=-2147483648}i=(a|0)==(f|0)?1:a-f|0;a=(a|0)>(i|0)?i:a-1|0;a=(a|0)<(m|0)?a:m;H[k>>2]=o-a;m=m-a|0;n=n-a|0;if((n|0)!=8192){break lc}n=8192;break kc}if((c|0)!=(d|0)){break kc}a=1;break ec}a=(d|0)>1;d=d-1|0;if(a){continue}}break}a=0;if((m|0)>0){continue}break}break ec}a=0;if(n>>>0<8193){break ec}while(1)continue}if((c|0)<0){break cc}break dc}d=H[r+8>>2];if(d){bl(d)}if((c|0)<0|a){break cc}}i=c+1|0;g=i&3;d=H[h>>2];n=0;m=0;a=0;if(c>>>0>=3){j=i&-4;l=0;while(1){f=m<<3;k=f+d|0;H[k+4>>2]=a;o=d+(f|8)|0;a=H[k>>2]+a|0;H[o+4>>2]=a;k=d+(f|16)|0;a=a+H[o>>2]|0;H[k+4>>2]=a;f=d+(f|24)|0;a=a+H[k>>2]|0;H[f+4>>2]=a;a=a+H[f>>2]|0;m=m+4|0;l=l+4|0;if((j|0)!=(l|0)){continue}break}}if(g){while(1){f=d+(m<<3)|0;H[f+4>>2]=a;m=m+1|0;a=H[f>>2]+a|0;n=n+1|0;if((g|0)!=(n|0)){continue}break}}if((a|0)!=8192){break cc}a=0;q=0;nc:{if((c|0)<0){break nc}f=H[h>>2];if(c){c=i&-2;d=0;while(1){g=a<<3;j=H[g+f>>2];if(j){g=g+p|0;q=(+K[g>>2]+ +K[g+4>>2]*4294967296)*nk(+(j>>>0)*.0001220703125)+q}g=(a|1)<<3;j=H[g+f>>2];if(j){g=g+p|0;q=(+K[g>>2]+ +K[g+4>>2]*4294967296)*nk(+(j>>>0)*.0001220703125)+q}a=a+2|0;d=d+2|0;if((c|0)!=(d|0)){continue}break}}if(!(i&1)){break nc}a=a<<3;c=H[a+f>>2];if(!c){break nc}a=a+p|0;q=(+K[a>>2]+ +K[a+4>>2]*4294967296)*nk(+(c>>>0)*.0001220703125)+q}q=U(-q);oc:{if(q<0x10000000000000000&q>=0){c=P(q)>=1?~~(q>0?R(T(q*2.3283064365386963e-10),4294967295):U((q-+(~~q>>>0>>>0))*2.3283064365386963e-10))>>>0:0;a=~~q>>>0;break oc}c=0;a=0}H[h+16>>2]=a;H[h+20>>2]=c;of(h,e)}ha=r+32|0;d=H[h+16>>2];a=H[h+20>>2];c=H[e+4>>2]-H[e>>2]|0;H[h+40>>2]=c;H[h+44>>2]=0;f=a<<1|d>>>31;a=(d<<1)+39|0;o=a>>>0<39?f+1|0:f;a=c+((o&7)<<29|a>>>3)|0;g=o>>>3|0;g=a>>>0>>0?g+1|0:g;a=a+8|0;hi(e,a);a=H[e>>2];H[h+28>>2]=0;H[h+32>>2]=32768;H[h+24>>2]=a+H[h+40>>2];if((b|0)>0){a=32768;while(1){c=b-1|0;i=H[h>>2]+(H[t+(c<<2)>>2]<<3)|0;d=H[i>>2];f=d<<10;if(f>>>0<=a>>>0){while(1){g=H[h+28>>2];H[h+28>>2]=g+1;F[g+H[h+24>>2]|0]=a;a=H[h+32>>2]>>>8|0;H[h+32>>2]=a;if(a>>>0>=f>>>0){continue}break}}g=H[i+4>>2];i=(a>>>0)/(d>>>0)|0;a=g+((i<<13)+(a-N(d,i)|0)|0)|0;H[h+32>>2]=a;d=(b|0)>1;b=c;if(d){continue}break}}b=ha-32|0;ha=b;c=H[e>>2]+H[h+40>>2]|0;d=H[h+32>>2];a=d-32768|0;pc:{if(a>>>0<=63){F[H[h+24>>2]+H[h+28>>2]|0]=a;a=H[h+28>>2]+1|0;break pc}if(a>>>0<=16383){a=H[h+24>>2]+H[h+28>>2]|0;d=d-16384|0;F[a|0]=d;F[a+1|0]=d>>>8;a=H[h+28>>2]+2|0;break pc}if(a>>>0<=4194303){a=H[h+24>>2]+H[h+28>>2]|0;d=d+8355840|0;F[a+2|0]=d>>>16;F[a+1|0]=d>>>8;F[a|0]=d;a=H[h+28>>2]+3|0;break pc}if(a>>>0<=1073741823){a=H[h+24>>2]+H[h+28>>2]|0;d=d-1073774592|0;F[a|0]=d;F[a+1|0]=d>>>8;F[a+2|0]=d>>>16;F[a+3|0]=d>>>24;a=H[h+28>>2]+4|0;break pc}a=H[h+28>>2]}H[b>>2]=0;H[b+4>>2]=0;F[b+24|0]=0;H[b+16>>2]=0;H[b+20>>2]=0;H[b+8>>2]=0;H[b+12>>2]=0;f=a>>31;pf(a,f,b);d=H[b+4>>2]-H[b>>2]|0;kk(d+c|0,c,a);jk(c,H[b>>2],d);i=H[h+44>>2];c=a+d|0;f=c>>>0>>0?f+1|0:f;a=c+H[h+40>>2]|0;hi(e,a);a=H[b+12>>2];H[b+12>>2]=0;if(a){bl(a)}a=H[b>>2];if(a){H[b+4>>2]=a;bl(a)}ha=b+32|0;a=H[h>>2];if(a){H[h+4>>2]=a;bl(a)}a=H[h+48>>2];if(a){bl(a)}ha=h- -64|0;break Zb}p=1;break v;case 9:t=a;l=0;n=0;d=0;s=0;u=0;i=0;h=ha+-64|0;ha=h;H[h+56>>2]=0;H[h+48>>2]=0;H[h+52>>2]=0;qc:{a=m+1|0;if(a){if(a>>>0>=536870912){break a}a=a<<3;p=hl(a);H[h+48>>2]=p;l=a+p|0;H[h+56>>2]=l;lk(p,0,(m<<3)+8|0);H[h+52>>2]=l}rc:{if((b|0)<=0){break rc}a=0;if(b-1>>>0>=3){j=b&-4;while(1){c=a<<2;f=(H[c+t>>2]<<3)+p|0;k=H[f+4>>2];g=H[f>>2]+1|0;k=g?k:k+1|0;H[f>>2]=g;H[f+4>>2]=k;f=(H[t+(c|4)>>2]<<3)+p|0;g=H[f+4>>2];k=H[f>>2]+1|0;g=k?g:g+1|0;H[f>>2]=k;H[f+4>>2]=g;f=(H[t+(c|8)>>2]<<3)+p|0;o=H[f+4>>2];g=H[f>>2]+1|0;o=g?o:o+1|0;H[f>>2]=g;H[f+4>>2]=o;c=(H[t+(c|12)>>2]<<3)+p|0;k=H[c+4>>2];f=H[c>>2]+1|0;k=f?k:k+1|0;H[c>>2]=f;H[c+4>>2]=k;a=a+4|0;n=n+4|0;if((j|0)!=(n|0)){continue}break}}f=b&3;if(!f){break rc}while(1){c=(H[t+(a<<2)>>2]<<3)+p|0;g=H[c+4>>2];j=H[c>>2]+1|0;g=j?g:g+1|0;H[c>>2]=j;H[c+4>>2]=g;a=a+1|0;d=d+1|0;if((f|0)!=(d|0)){continue}break}}H[h+8>>2]=0;H[h+12>>2]=0;H[h+16>>2]=0;H[h+20>>2]=0;H[h+24>>2]=0;H[h+28>>2]=0;H[h+32>>2]=0;H[h>>2]=0;H[h+4>>2]=0;H[h+40>>2]=0;H[h+44>>2]=0;m=0;d=0;c=0;r=ha-32|0;ha=r;a=l-p>>3;sc:{if((a|0)<=0){break sc}l=a&3;tc:{if(a-1>>>0<3){a=0;break tc}C=a&-4;a=0;while(1){D=a|1;g=(D<<3)+p|0;f=H[g+4>>2];o=H[g>>2];B=a|2;j=(B<<3)+p|0;g=H[j+4>>2];n=H[j>>2];x=a|3;k=(x<<3)+p|0;j=H[k+4>>2];y=H[k>>2];w=c;c=(a<<3)+p|0;A=H[c+4>>2];k=H[c>>2];c=j|y?x:g|n?B:f|o?D:!(A|k)?w:a;w=n;x=o;o=i+A|0;n=k+u|0;o=n>>>0>>0?o+1|0:o;i=x+n|0;k=f+o|0;k=i>>>0>>0?k+1|0:k;o=i;i=w+i|0;f=g+k|0;f=i>>>0>>0?f+1|0:f;g=i;i=g+y|0;f=f+j|0;u=i;i=g>>>0>i>>>0?f+1|0:f;a=a+4|0;d=d+4|0;if((C|0)!=(d|0)){continue}break}}if(!l){break sc}while(1){g=c;c=(a<<3)+p|0;f=H[c+4>>2];d=H[c>>2];c=!(f|d)?g:a;a=a+1|0;g=f+i|0;j=d+u|0;g=j>>>0>>0?g+1|0:g;u=j;i=g;m=m+1|0;if((l|0)!=(m|0)){continue}break}}f=c+1|0;H[h+12>>2]=f;d=H[h>>2];a=H[h+4>>2]-d>>3;uc:{if(a>>>0>>0){jf(h,f-a|0);break uc}if(a>>>0<=f>>>0){break uc}H[h+4>>2]=d+(f<<3)}n=0;vc:{wc:{xc:{yc:{if((c|0)>=0){v=+(u>>>0)+ +(i>>>0)*4294967296;i=H[h>>2];a=0;while(1){g=a<<3;j=g+p|0;d=H[j+4>>2];j=H[j>>2];k=(d|j)!=0;g=g+i|0;q=(+(j>>>0)+ +(d>>>0)*4294967296)/v*32768+.5;zc:{if(q<4294967296&q>=0){d=~~q>>>0;break zc}d=0}d=d?d:k?1:d;H[g>>2]=d;n=d+n|0;d=(a|0)==(c|0);a=a+1|0;if(!d){continue}break}if((n|0)==32768){break yc}}H[r+16>>2]=0;H[r+8>>2]=0;H[r+12>>2]=0;l=0;if(f){if(f>>>0>=1073741824){break a}a=f<<2;l=hl(a);H[r+8>>2]=l;s=a+l|0;H[r+16>>2]=s;lk(l,0,a);H[r+12>>2]=s}a=0;Ac:{if((c|0)<0){break Ac}i=c+1|0;d=i&7;if(c>>>0>=7){i=i&-8;m=0;while(1){H[(a<<2)+l>>2]=a;f=a|1;H[(f<<2)+l>>2]=f;f=a|2;H[(f<<2)+l>>2]=f;f=a|3;H[(f<<2)+l>>2]=f;f=a|4;H[(f<<2)+l>>2]=f;f=a|5;H[(f<<2)+l>>2]=f;f=a|6;H[(f<<2)+l>>2]=f;f=a|7;H[(f<<2)+l>>2]=f;a=a+8|0;m=m+8|0;if((i|0)!=(m|0)){continue}break}}if(!d){break Ac}m=0;while(1){H[(a<<2)+l>>2]=a;a=a+1|0;m=m+1|0;if((d|0)!=(m|0)){continue}break}}H[r+24>>2]=h;a=s-l|0;d=a>>2;Bc:{Cc:{if((a|0)>=513){a=d;while(1){i=hl(a<<2);if(i){break Cc}i=a>>>0>1;a=a>>>1|0;if(i){continue}break}}Tf(l,s,r+24|0,d,0,0);break Bc}Tf(l,s,r+24|0,d,i,a);bl(i)}if((n|0)<32768){a=H[h>>2]+(H[s-4>>2]<<3)|0;H[a>>2]=(H[a>>2]-n|0)+32768;a=0;break xc}if((c|0)>0){g=H[h>>2];m=n-32768|0;while(1){q=32768/+(n|0);d=c;while(1){Dc:{Ec:{i=g+(H[(d<<2)+l>>2]<<3)|0;a=H[i>>2];if(a>>>0>=2){k=i;o=a;v=T(q*+(a>>>0));Fc:{if(P(v)<2147483648){f=~~v;break Fc}f=-2147483648}i=(a|0)==(f|0)?1:a-f|0;a=(a|0)>(i|0)?i:a-1|0;a=(a|0)<(m|0)?a:m;H[k>>2]=o-a;m=m-a|0;n=n-a|0;if((n|0)!=32768){break Ec}n=32768;break Dc}if((c|0)!=(d|0)){break Dc}a=1;break xc}a=(d|0)>1;d=d-1|0;if(a){continue}}break}a=0;if((m|0)>0){continue}break}break xc}a=0;if(n>>>0<32769){break xc}while(1)continue}if((c|0)<0){break vc}break wc}d=H[r+8>>2];if(d){bl(d)}if((c|0)<0|a){break vc}}i=c+1|0;g=i&3;d=H[h>>2];n=0;m=0;a=0;if(c>>>0>=3){j=i&-4;l=0;while(1){f=m<<3;k=f+d|0;H[k+4>>2]=a;o=d+(f|8)|0;a=H[k>>2]+a|0;H[o+4>>2]=a;k=d+(f|16)|0;a=a+H[o>>2]|0;H[k+4>>2]=a;f=d+(f|24)|0;a=a+H[k>>2]|0;H[f+4>>2]=a;a=a+H[f>>2]|0;m=m+4|0;l=l+4|0;if((j|0)!=(l|0)){continue}break}}if(g){while(1){f=d+(m<<3)|0;H[f+4>>2]=a;m=m+1|0;a=H[f>>2]+a|0;n=n+1|0;if((g|0)!=(n|0)){continue}break}}if((a|0)!=32768){break vc}a=0;q=0;Gc:{if((c|0)<0){break Gc}f=H[h>>2];if(c){c=i&-2;d=0;while(1){g=a<<3;j=H[g+f>>2];if(j){g=g+p|0;q=(+K[g>>2]+ +K[g+4>>2]*4294967296)*nk(+(j>>>0)*30517578125e-15)+q}g=(a|1)<<3;j=H[g+f>>2];if(j){g=g+p|0;q=(+K[g>>2]+ +K[g+4>>2]*4294967296)*nk(+(j>>>0)*30517578125e-15)+q}a=a+2|0;d=d+2|0;if((c|0)!=(d|0)){continue}break}}if(!(i&1)){break Gc}a=a<<3;c=H[a+f>>2];if(!c){break Gc}a=a+p|0;q=(+K[a>>2]+ +K[a+4>>2]*4294967296)*nk(+(c>>>0)*30517578125e-15)+q}q=U(-q);Hc:{if(q<0x10000000000000000&q>=0){c=P(q)>=1?~~(q>0?R(T(q*2.3283064365386963e-10),4294967295):U((q-+(~~q>>>0>>>0))*2.3283064365386963e-10))>>>0:0;a=~~q>>>0;break Hc}c=0;a=0}H[h+16>>2]=a;H[h+20>>2]=c;of(h,e)}ha=r+32|0;d=H[h+16>>2];a=H[h+20>>2];c=H[e+4>>2]-H[e>>2]|0;H[h+40>>2]=c;H[h+44>>2]=0;f=a<<1|d>>>31;a=(d<<1)+39|0;o=a>>>0<39?f+1|0:f;a=c+((o&7)<<29|a>>>3)|0;f=o>>>3|0;f=a>>>0>>0?f+1|0:f;a=a+8|0;hi(e,a);a=H[e>>2];H[h+28>>2]=0;H[h+32>>2]=131072;H[h+24>>2]=a+H[h+40>>2];if((b|0)>0){a=131072;while(1){c=b-1|0;i=H[h>>2]+(H[t+(c<<2)>>2]<<3)|0;d=H[i>>2];f=d<<10;if(f>>>0<=a>>>0){while(1){g=H[h+28>>2];H[h+28>>2]=g+1;F[g+H[h+24>>2]|0]=a;a=H[h+32>>2]>>>8|0;H[h+32>>2]=a;if(a>>>0>=f>>>0){continue}break}}g=H[i+4>>2];i=(a>>>0)/(d>>>0)|0;a=g+((i<<15)+(a-N(d,i)|0)|0)|0;H[h+32>>2]=a;d=(b|0)>1;b=c;if(d){continue}break}}b=ha-32|0;ha=b;c=H[e>>2]+H[h+40>>2]|0;d=H[h+32>>2];a=d-131072|0;Ic:{if(a>>>0<=63){F[H[h+24>>2]+H[h+28>>2]|0]=a;a=H[h+28>>2]+1|0;break Ic}if(a>>>0<=16383){a=H[h+24>>2]+H[h+28>>2]|0;d=d-114688|0;F[a|0]=d;F[a+1|0]=d>>>8;a=H[h+28>>2]+2|0;break Ic}if(a>>>0<=4194303){a=H[h+24>>2]+H[h+28>>2]|0;d=d+8257536|0;F[a+2|0]=d>>>16;F[a+1|0]=d>>>8;F[a|0]=d;a=H[h+28>>2]+3|0;break Ic}if(a>>>0<=1073741823){a=H[h+24>>2]+H[h+28>>2]|0;d=d-1073872896|0;F[a|0]=d;F[a+1|0]=d>>>8;F[a+2|0]=d>>>16;F[a+3|0]=d>>>24;a=H[h+28>>2]+4|0;break Ic}a=H[h+28>>2]}H[b>>2]=0;H[b+4>>2]=0;F[b+24|0]=0;H[b+16>>2]=0;H[b+20>>2]=0;H[b+8>>2]=0;H[b+12>>2]=0;f=a>>31;pf(a,f,b);d=H[b+4>>2]-H[b>>2]|0;kk(d+c|0,c,a);jk(c,H[b>>2],d);i=H[h+44>>2];c=a+d|0;f=c>>>0>>0?f+1|0:f;a=c+H[h+40>>2]|0;hi(e,a);a=H[b+12>>2];H[b+12>>2]=0;if(a){bl(a)}a=H[b>>2];if(a){H[b+4>>2]=a;bl(a)}ha=b+32|0;a=H[h>>2];if(a){H[h+4>>2]=a;bl(a)}a=H[h+48>>2];if(a){bl(a)}ha=h- -64|0;break qc}p=1;break v;case 10:t=a;l=0;n=0;d=0;s=0;u=0;i=0;h=ha+-64|0;ha=h;H[h+56>>2]=0;H[h+48>>2]=0;H[h+52>>2]=0;Jc:{a=m+1|0;if(a){if(a>>>0>=536870912){break a}a=a<<3;p=hl(a);H[h+48>>2]=p;l=a+p|0;H[h+56>>2]=l;lk(p,0,(m<<3)+8|0);H[h+52>>2]=l}Kc:{if((b|0)<=0){break Kc}a=0;if(b-1>>>0>=3){k=b&-4;while(1){c=a<<2;f=(H[c+t>>2]<<3)+p|0;j=H[f+4>>2];g=H[f>>2]+1|0;j=g?j:j+1|0;H[f>>2]=g;H[f+4>>2]=j;g=(H[t+(c|4)>>2]<<3)+p|0;f=H[g+4>>2];j=H[g>>2]+1|0;f=j?f:f+1|0;H[g>>2]=j;H[g+4>>2]=f;f=(H[t+(c|8)>>2]<<3)+p|0;o=H[f+4>>2];g=H[f>>2]+1|0;o=g?o:o+1|0;H[f>>2]=g;H[f+4>>2]=o;c=(H[t+(c|12)>>2]<<3)+p|0;j=H[c+4>>2];f=H[c>>2]+1|0;j=f?j:j+1|0;H[c>>2]=f;H[c+4>>2]=j;a=a+4|0;n=n+4|0;if((k|0)!=(n|0)){continue}break}}g=b&3;if(!g){break Kc}while(1){c=(H[t+(a<<2)>>2]<<3)+p|0;f=H[c+4>>2];j=H[c>>2]+1|0;f=j?f:f+1|0;H[c>>2]=j;H[c+4>>2]=f;a=a+1|0;d=d+1|0;if((g|0)!=(d|0)){continue}break}}H[h+8>>2]=0;H[h+12>>2]=0;H[h+16>>2]=0;H[h+20>>2]=0;H[h+24>>2]=0;H[h+28>>2]=0;H[h+32>>2]=0;H[h>>2]=0;H[h+4>>2]=0;H[h+40>>2]=0;H[h+44>>2]=0;m=0;d=0;c=0;r=ha-32|0;ha=r;a=l-p>>3;Lc:{if((a|0)<=0){break Lc}n=a&3;Mc:{if(a-1>>>0<3){a=0;break Mc}D=a&-4;a=0;while(1){l=a|1;g=(l<<3)+p|0;f=H[g+4>>2];o=H[g>>2];B=a|2;j=(B<<3)+p|0;g=H[j+4>>2];y=H[j>>2];x=a|3;k=(x<<3)+p|0;j=H[k+4>>2];A=H[k>>2];w=c;c=(a<<3)+p|0;C=H[c+4>>2];k=H[c>>2];c=j|A?x:g|y?B:f|o?l:!(C|k)?w:a;l=j;w=o;o=i+C|0;j=k+u|0;o=j>>>0>>0?o+1|0:o;k=j;i=w+j|0;j=f+o|0;j=i>>>0>>0?j+1|0:j;k=i;i=i+y|0;f=g+j|0;f=i>>>0>>0?f+1|0:f;g=i;i=g+A|0;k=f+l|0;u=i;i=g>>>0>i>>>0?k+1|0:k;a=a+4|0;d=d+4|0;if((D|0)!=(d|0)){continue}break}}if(!n){break Lc}while(1){g=c;c=(a<<3)+p|0;f=H[c+4>>2];d=H[c>>2];c=!(f|d)?g:a;a=a+1|0;f=f+i|0;g=d+u|0;f=g>>>0>>0?f+1|0:f;u=g;i=f;m=m+1|0;if((n|0)!=(m|0)){continue}break}}f=c+1|0;H[h+12>>2]=f;d=H[h>>2];a=H[h+4>>2]-d>>3;Nc:{if(a>>>0>>0){jf(h,f-a|0);break Nc}if(a>>>0<=f>>>0){break Nc}H[h+4>>2]=d+(f<<3)}n=0;Oc:{Pc:{Qc:{Rc:{if((c|0)>=0){v=+(u>>>0)+ +(i>>>0)*4294967296;i=H[h>>2];a=0;while(1){g=a<<3;j=g+p|0;d=H[j+4>>2];j=H[j>>2];k=(d|j)!=0;g=g+i|0;q=(+(j>>>0)+ +(d>>>0)*4294967296)/v*65536+.5;Sc:{if(q<4294967296&q>=0){d=~~q>>>0;break Sc}d=0}d=d?d:k?1:d;H[g>>2]=d;n=d+n|0;d=(a|0)==(c|0);a=a+1|0;if(!d){continue}break}if((n|0)==65536){break Rc}}H[r+16>>2]=0;H[r+8>>2]=0;H[r+12>>2]=0;l=0;if(f){if(f>>>0>=1073741824){break a}a=f<<2;l=hl(a);H[r+8>>2]=l;s=a+l|0;H[r+16>>2]=s;lk(l,0,a);H[r+12>>2]=s}a=0;Tc:{if((c|0)<0){break Tc}i=c+1|0;d=i&7;if(c>>>0>=7){i=i&-8;m=0;while(1){H[(a<<2)+l>>2]=a;f=a|1;H[(f<<2)+l>>2]=f;f=a|2;H[(f<<2)+l>>2]=f;f=a|3;H[(f<<2)+l>>2]=f;f=a|4;H[(f<<2)+l>>2]=f;f=a|5;H[(f<<2)+l>>2]=f;f=a|6;H[(f<<2)+l>>2]=f;f=a|7;H[(f<<2)+l>>2]=f;a=a+8|0;m=m+8|0;if((i|0)!=(m|0)){continue}break}}if(!d){break Tc}m=0;while(1){H[(a<<2)+l>>2]=a;a=a+1|0;m=m+1|0;if((d|0)!=(m|0)){continue}break}}H[r+24>>2]=h;a=s-l|0;d=a>>2;Uc:{Vc:{if((a|0)>=513){a=d;while(1){i=hl(a<<2);if(i){break Vc}i=a>>>0>1;a=a>>>1|0;if(i){continue}break}}Wf(l,s,r+24|0,d,0,0);break Uc}Wf(l,s,r+24|0,d,i,a);bl(i)}if((n|0)<65536){a=H[h>>2]+(H[s-4>>2]<<3)|0;H[a>>2]=(H[a>>2]-n|0)+65536;a=0;break Qc}if((c|0)>0){g=H[h>>2];m=n-65536|0;while(1){q=65536/+(n|0);d=c;while(1){Wc:{Xc:{i=g+(H[(d<<2)+l>>2]<<3)|0;a=H[i>>2];if(a>>>0>=2){k=i;o=a;v=T(q*+(a>>>0));Yc:{if(P(v)<2147483648){f=~~v;break Yc}f=-2147483648}i=(a|0)==(f|0)?1:a-f|0;a=(a|0)>(i|0)?i:a-1|0;a=(a|0)<(m|0)?a:m;H[k>>2]=o-a;m=m-a|0;n=n-a|0;if((n|0)!=65536){break Xc}n=65536;break Wc}if((c|0)!=(d|0)){break Wc}a=1;break Qc}a=(d|0)>1;d=d-1|0;if(a){continue}}break}a=0;if((m|0)>0){continue}break}break Qc}a=0;if(n>>>0<65537){break Qc}while(1)continue}if((c|0)<0){break Oc}break Pc}d=H[r+8>>2];if(d){bl(d)}if((c|0)<0|a){break Oc}}i=c+1|0;g=i&3;d=H[h>>2];n=0;m=0;a=0;if(c>>>0>=3){j=i&-4;l=0;while(1){f=m<<3;k=f+d|0;H[k+4>>2]=a;o=d+(f|8)|0;a=H[k>>2]+a|0;H[o+4>>2]=a;k=d+(f|16)|0;a=a+H[o>>2]|0;H[k+4>>2]=a;f=d+(f|24)|0;a=a+H[k>>2]|0;H[f+4>>2]=a;a=a+H[f>>2]|0;m=m+4|0;l=l+4|0;if((j|0)!=(l|0)){continue}break}}if(g){while(1){f=d+(m<<3)|0;H[f+4>>2]=a;m=m+1|0;a=H[f>>2]+a|0;n=n+1|0;if((g|0)!=(n|0)){continue}break}}if((a|0)!=65536){break Oc}a=0;q=0;Zc:{if((c|0)<0){break Zc}f=H[h>>2];if(c){c=i&-2;d=0;while(1){g=a<<3;j=H[g+f>>2];if(j){g=g+p|0;q=(+K[g>>2]+ +K[g+4>>2]*4294967296)*nk(+(j>>>0)*152587890625e-16)+q}g=(a|1)<<3;j=H[g+f>>2];if(j){g=g+p|0;q=(+K[g>>2]+ +K[g+4>>2]*4294967296)*nk(+(j>>>0)*152587890625e-16)+q}a=a+2|0;d=d+2|0;if((c|0)!=(d|0)){continue}break}}if(!(i&1)){break Zc}a=a<<3;c=H[a+f>>2];if(!c){break Zc}a=a+p|0;q=(+K[a>>2]+ +K[a+4>>2]*4294967296)*nk(+(c>>>0)*152587890625e-16)+q}q=U(-q);_c:{if(q<0x10000000000000000&q>=0){c=P(q)>=1?~~(q>0?R(T(q*2.3283064365386963e-10),4294967295):U((q-+(~~q>>>0>>>0))*2.3283064365386963e-10))>>>0:0;a=~~q>>>0;break _c}c=0;a=0}H[h+16>>2]=a;H[h+20>>2]=c;of(h,e)}ha=r+32|0;d=H[h+16>>2];a=H[h+20>>2];c=H[e+4>>2]-H[e>>2]|0;H[h+40>>2]=c;H[h+44>>2]=0;f=a<<1|d>>>31;a=(d<<1)+39|0;o=a>>>0<39?f+1|0:f;a=c+((o&7)<<29|a>>>3)|0;k=o>>>3|0;k=a>>>0>>0?k+1|0:k;a=a+8|0;hi(e,a);a=H[e>>2];H[h+28>>2]=0;H[h+32>>2]=262144;H[h+24>>2]=a+H[h+40>>2];if((b|0)>0){a=262144;while(1){c=b-1|0;i=H[h>>2]+(H[t+(c<<2)>>2]<<3)|0;d=H[i>>2];f=d<<10;if(f>>>0<=a>>>0){while(1){g=H[h+28>>2];H[h+28>>2]=g+1;F[g+H[h+24>>2]|0]=a;a=H[h+32>>2]>>>8|0;H[h+32>>2]=a;if(a>>>0>=f>>>0){continue}break}}g=H[i+4>>2];i=(a>>>0)/(d>>>0)|0;a=g+((i<<16)+(a-N(d,i)|0)|0)|0;H[h+32>>2]=a;d=(b|0)>1;b=c;if(d){continue}break}}b=ha-32|0;ha=b;c=H[e>>2]+H[h+40>>2]|0;d=H[h+32>>2];a=d-262144|0;$c:{if(a>>>0<=63){F[H[h+24>>2]+H[h+28>>2]|0]=a;a=H[h+28>>2]+1|0;break $c}if(a>>>0<=16383){a=H[h+24>>2]+H[h+28>>2]|0;d=d-245760|0;F[a|0]=d;F[a+1|0]=d>>>8;a=H[h+28>>2]+2|0;break $c}if(a>>>0<=4194303){a=H[h+24>>2]+H[h+28>>2]|0;d=d+8126464|0;F[a+2|0]=d>>>16;F[a+1|0]=d>>>8;F[a|0]=d;a=H[h+28>>2]+3|0;break $c}if(a>>>0<=1073741823){a=H[h+24>>2]+H[h+28>>2]|0;d=d-1074003968|0;F[a|0]=d;F[a+1|0]=d>>>8;F[a+2|0]=d>>>16;F[a+3|0]=d>>>24;a=H[h+28>>2]+4|0;break $c}a=H[h+28>>2]}H[b>>2]=0;H[b+4>>2]=0;F[b+24|0]=0;H[b+16>>2]=0;H[b+20>>2]=0;H[b+8>>2]=0;H[b+12>>2]=0;f=a>>31;pf(a,f,b);d=H[b+4>>2]-H[b>>2]|0;kk(d+c|0,c,a);jk(c,H[b>>2],d);i=H[h+44>>2];c=a+d|0;f=c>>>0>>0?f+1|0:f;a=c+H[h+40>>2]|0;hi(e,a);a=H[b+12>>2];H[b+12>>2]=0;if(a){bl(a)}a=H[b>>2];if(a){H[b+4>>2]=a;bl(a)}ha=b+32|0;a=H[h>>2];if(a){H[h+4>>2]=a;bl(a)}a=H[h+48>>2];if(a){bl(a)}ha=h- -64|0;break Jc}p=1;break v;case 11:t=a;l=0;n=0;d=0;s=0;u=0;i=0;h=ha+-64|0;ha=h;H[h+56>>2]=0;H[h+48>>2]=0;H[h+52>>2]=0;ad:{a=m+1|0;if(a){if(a>>>0>=536870912){break a}a=a<<3;p=hl(a);H[h+48>>2]=p;l=a+p|0;H[h+56>>2]=l;lk(p,0,(m<<3)+8|0);H[h+52>>2]=l}bd:{if((b|0)<=0){break bd}a=0;if(b-1>>>0>=3){j=b&-4;while(1){c=a<<2;f=(H[c+t>>2]<<3)+p|0;g=H[f+4>>2];k=H[f>>2]+1|0;g=k?g:g+1|0;H[f>>2]=k;H[f+4>>2]=g;f=(H[t+(c|4)>>2]<<3)+p|0;k=H[f+4>>2];g=H[f>>2]+1|0;k=g?k:k+1|0;H[f>>2]=g;H[f+4>>2]=k;f=(H[t+(c|8)>>2]<<3)+p|0;o=H[f+4>>2];g=H[f>>2]+1|0;o=g?o:o+1|0;H[f>>2]=g;H[f+4>>2]=o;c=(H[t+(c|12)>>2]<<3)+p|0;g=H[c+4>>2];f=H[c>>2]+1|0;g=f?g:g+1|0;H[c>>2]=f;H[c+4>>2]=g;a=a+4|0;n=n+4|0;if((j|0)!=(n|0)){continue}break}}f=b&3;if(!f){break bd}while(1){c=(H[t+(a<<2)>>2]<<3)+p|0;k=H[c+4>>2];g=H[c>>2]+1|0;k=g?k:k+1|0;H[c>>2]=g;H[c+4>>2]=k;a=a+1|0;d=d+1|0;if((f|0)!=(d|0)){continue}break}}H[h+8>>2]=0;H[h+12>>2]=0;H[h+16>>2]=0;H[h+20>>2]=0;H[h+24>>2]=0;H[h+28>>2]=0;H[h+32>>2]=0;H[h>>2]=0;H[h+4>>2]=0;H[h+40>>2]=0;H[h+44>>2]=0;m=0;d=0;c=0;r=ha-32|0;ha=r;a=l-p>>3;cd:{if((a|0)<=0){break cd}n=a&3;dd:{if(a-1>>>0<3){a=0;break dd}D=a&-4;a=0;while(1){l=a|1;g=(l<<3)+p|0;f=H[g+4>>2];o=H[g>>2];B=a|2;j=(B<<3)+p|0;g=H[j+4>>2];y=H[j>>2];x=a|3;k=(x<<3)+p|0;j=H[k+4>>2];A=H[k>>2];w=c;c=(a<<3)+p|0;C=H[c+4>>2];k=H[c>>2];c=j|A?x:g|y?B:f|o?l:!(C|k)?w:a;l=g;w=o;o=i+C|0;g=k+u|0;o=g>>>0>>0?o+1|0:o;k=g;i=w+g|0;g=f+o|0;g=i>>>0>>0?g+1|0:g;k=i;i=i+y|0;f=g+l|0;f=i>>>0>>0?f+1|0:f;g=i;i=g+A|0;j=f+j|0;u=i;i=g>>>0>i>>>0?j+1|0:j;a=a+4|0;d=d+4|0;if((D|0)!=(d|0)){continue}break}}if(!n){break cd}while(1){g=c;c=(a<<3)+p|0;f=H[c+4>>2];d=H[c>>2];c=!(f|d)?g:a;a=a+1|0;k=f+i|0;g=d+u|0;k=g>>>0>>0?k+1|0:k;u=g;i=k;m=m+1|0;if((n|0)!=(m|0)){continue}break}}f=c+1|0;H[h+12>>2]=f;d=H[h>>2];a=H[h+4>>2]-d>>3;ed:{if(a>>>0>>0){jf(h,f-a|0);break ed}if(a>>>0<=f>>>0){break ed}H[h+4>>2]=d+(f<<3)}n=0;fd:{gd:{hd:{id:{if((c|0)>=0){v=+(u>>>0)+ +(i>>>0)*4294967296;i=H[h>>2];a=0;while(1){g=a<<3;j=g+p|0;d=H[j+4>>2];j=H[j>>2];k=(d|j)!=0;g=g+i|0;q=(+(j>>>0)+ +(d>>>0)*4294967296)/v*262144+.5;jd:{if(q<4294967296&q>=0){d=~~q>>>0;break jd}d=0}d=d?d:k?1:d;H[g>>2]=d;n=d+n|0;d=(a|0)==(c|0);a=a+1|0;if(!d){continue}break}if((n|0)==262144){break id}}H[r+16>>2]=0;H[r+8>>2]=0;H[r+12>>2]=0;l=0;if(f){if(f>>>0>=1073741824){break a}a=f<<2;l=hl(a);H[r+8>>2]=l;s=a+l|0;H[r+16>>2]=s;lk(l,0,a);H[r+12>>2]=s}a=0;kd:{if((c|0)<0){break kd}i=c+1|0;d=i&7;if(c>>>0>=7){i=i&-8;m=0;while(1){H[(a<<2)+l>>2]=a;f=a|1;H[(f<<2)+l>>2]=f;f=a|2;H[(f<<2)+l>>2]=f;f=a|3;H[(f<<2)+l>>2]=f;f=a|4;H[(f<<2)+l>>2]=f;f=a|5;H[(f<<2)+l>>2]=f;f=a|6;H[(f<<2)+l>>2]=f;f=a|7;H[(f<<2)+l>>2]=f;a=a+8|0;m=m+8|0;if((i|0)!=(m|0)){continue}break}}if(!d){break kd}m=0;while(1){H[(a<<2)+l>>2]=a;a=a+1|0;m=m+1|0;if((d|0)!=(m|0)){continue}break}}H[r+24>>2]=h;a=s-l|0;d=a>>2;ld:{md:{if((a|0)>=513){a=d;while(1){i=hl(a<<2);if(i){break md}i=a>>>0>1;a=a>>>1|0;if(i){continue}break}}Zf(l,s,r+24|0,d,0,0);break ld}Zf(l,s,r+24|0,d,i,a);bl(i)}if((n|0)<262144){a=H[h>>2]+(H[s-4>>2]<<3)|0;H[a>>2]=(H[a>>2]-n|0)+262144;a=0;break hd}if((c|0)>0){g=H[h>>2];m=n-262144|0;while(1){q=262144/+(n|0);d=c;while(1){nd:{od:{i=g+(H[(d<<2)+l>>2]<<3)|0;a=H[i>>2];if(a>>>0>=2){k=i;o=a;v=T(q*+(a>>>0));pd:{if(P(v)<2147483648){f=~~v;break pd}f=-2147483648}i=(a|0)==(f|0)?1:a-f|0;a=(a|0)>(i|0)?i:a-1|0;a=(a|0)<(m|0)?a:m;H[k>>2]=o-a;m=m-a|0;n=n-a|0;if((n|0)!=262144){break od}n=262144;break nd}if((c|0)!=(d|0)){break nd}a=1;break hd}a=(d|0)>1;d=d-1|0;if(a){continue}}break}a=0;if((m|0)>0){continue}break}break hd}a=0;if(n>>>0<262145){break hd}while(1)continue}if((c|0)<0){break fd}break gd}d=H[r+8>>2];if(d){bl(d)}if((c|0)<0|a){break fd}}i=c+1|0;g=i&3;d=H[h>>2];n=0;m=0;a=0;if(c>>>0>=3){j=i&-4;l=0;while(1){f=m<<3;k=f+d|0;H[k+4>>2]=a;o=d+(f|8)|0;a=H[k>>2]+a|0;H[o+4>>2]=a;k=d+(f|16)|0;a=a+H[o>>2]|0;H[k+4>>2]=a;f=d+(f|24)|0;a=a+H[k>>2]|0;H[f+4>>2]=a;a=a+H[f>>2]|0;m=m+4|0;l=l+4|0;if((j|0)!=(l|0)){continue}break}}if(g){while(1){f=d+(m<<3)|0;H[f+4>>2]=a;m=m+1|0;a=H[f>>2]+a|0;n=n+1|0;if((g|0)!=(n|0)){continue}break}}if((a|0)!=262144){break fd}a=0;q=0;qd:{if((c|0)<0){break qd}f=H[h>>2];if(c){c=i&-2;d=0;while(1){g=a<<3;j=H[g+f>>2];if(j){g=g+p|0;q=(+K[g>>2]+ +K[g+4>>2]*4294967296)*nk(+(j>>>0)*3814697265625e-18)+q}g=(a|1)<<3;j=H[g+f>>2];if(j){g=g+p|0;q=(+K[g>>2]+ +K[g+4>>2]*4294967296)*nk(+(j>>>0)*3814697265625e-18)+q}a=a+2|0;d=d+2|0;if((c|0)!=(d|0)){continue}break}}if(!(i&1)){break qd}a=a<<3;c=H[a+f>>2];if(!c){break qd}a=a+p|0;q=(+K[a>>2]+ +K[a+4>>2]*4294967296)*nk(+(c>>>0)*3814697265625e-18)+q}q=U(-q);rd:{if(q<0x10000000000000000&q>=0){c=P(q)>=1?~~(q>0?R(T(q*2.3283064365386963e-10),4294967295):U((q-+(~~q>>>0>>>0))*2.3283064365386963e-10))>>>0:0;a=~~q>>>0;break rd}c=0;a=0}H[h+16>>2]=a;H[h+20>>2]=c;of(h,e)}ha=r+32|0;d=H[h+16>>2];a=H[h+20>>2];c=H[e+4>>2]-H[e>>2]|0;H[h+40>>2]=c;H[h+44>>2]=0;f=a<<1|d>>>31;a=(d<<1)+39|0;o=a>>>0<39?f+1|0:f;a=c+((o&7)<<29|a>>>3)|0;j=o>>>3|0;j=a>>>0>>0?j+1|0:j;a=a+8|0;hi(e,a);a=H[e>>2];H[h+28>>2]=0;H[h+32>>2]=1048576;H[h+24>>2]=a+H[h+40>>2];if((b|0)>0){a=1048576;while(1){c=b-1|0;i=H[h>>2]+(H[t+(c<<2)>>2]<<3)|0;d=H[i>>2];f=d<<10;if(f>>>0<=a>>>0){while(1){g=H[h+28>>2];H[h+28>>2]=g+1;F[g+H[h+24>>2]|0]=a;a=H[h+32>>2]>>>8|0;H[h+32>>2]=a;if(a>>>0>=f>>>0){continue}break}}g=H[i+4>>2];i=(a>>>0)/(d>>>0)|0;a=g+((i<<18)+(a-N(d,i)|0)|0)|0;H[h+32>>2]=a;d=(b|0)>1;b=c;if(d){continue}break}}b=ha-32|0;ha=b;c=H[e>>2]+H[h+40>>2]|0;d=H[h+32>>2];a=d+-1048576|0;sd:{if(a>>>0<=63){F[H[h+24>>2]+H[h+28>>2]|0]=a;a=H[h+28>>2]+1|0;break sd}if(a>>>0<=16383){a=H[h+24>>2]+H[h+28>>2]|0;d=d-1032192|0;F[a|0]=d;F[a+1|0]=d>>>8;a=H[h+28>>2]+2|0;break sd}if(a>>>0<=4194303){a=H[h+24>>2]+H[h+28>>2]|0;d=d+7340032|0;F[a+2|0]=d>>>16;F[a+1|0]=d>>>8;F[a|0]=d;a=H[h+28>>2]+3|0;break sd}if(a>>>0<=1073741823){a=H[h+24>>2]+H[h+28>>2]|0;d=d-1074790400|0;F[a|0]=d;F[a+1|0]=d>>>8;F[a+2|0]=d>>>16;F[a+3|0]=d>>>24;a=H[h+28>>2]+4|0;break sd}a=H[h+28>>2]}H[b>>2]=0;H[b+4>>2]=0;F[b+24|0]=0;H[b+16>>2]=0;H[b+20>>2]=0;H[b+8>>2]=0;H[b+12>>2]=0;f=a>>31;pf(a,f,b);d=H[b+4>>2]-H[b>>2]|0;kk(d+c|0,c,a);jk(c,H[b>>2],d);i=H[h+44>>2];c=a+d|0;f=c>>>0>>0?f+1|0:f;a=c+H[h+40>>2]|0;hi(e,a);a=H[b+12>>2];H[b+12>>2]=0;if(a){bl(a)}a=H[b>>2];if(a){H[b+4>>2]=a;bl(a)}ha=b+32|0;a=H[h>>2];if(a){H[h+4>>2]=a;bl(a)}a=H[h+48>>2];if(a){bl(a)}ha=h- -64|0;break ad}p=1;break v;case 12:t=a;l=0;n=0;d=0;s=0;u=0;i=0;h=ha+-64|0;ha=h;H[h+56>>2]=0;H[h+48>>2]=0;H[h+52>>2]=0;td:{a=m+1|0;if(a){if(a>>>0>=536870912){break a}a=a<<3;p=hl(a);H[h+48>>2]=p;l=a+p|0;H[h+56>>2]=l;lk(p,0,(m<<3)+8|0);H[h+52>>2]=l}ud:{if((b|0)<=0){break ud}a=0;if(b-1>>>0>=3){k=b&-4;while(1){c=a<<2;g=(H[c+t>>2]<<3)+p|0;f=H[g+4>>2];j=H[g>>2]+1|0;f=j?f:f+1|0;H[g>>2]=j;H[g+4>>2]=f;f=(H[t+(c|4)>>2]<<3)+p|0;j=H[f+4>>2];g=H[f>>2]+1|0;j=g?j:j+1|0;H[f>>2]=g;H[f+4>>2]=j;f=(H[t+(c|8)>>2]<<3)+p|0;o=H[f+4>>2];g=H[f>>2]+1|0;o=g?o:o+1|0;H[f>>2]=g;H[f+4>>2]=o;c=(H[t+(c|12)>>2]<<3)+p|0;f=H[c+4>>2];g=H[c>>2]+1|0;f=g?f:f+1|0;H[c>>2]=g;H[c+4>>2]=f;a=a+4|0;n=n+4|0;if((k|0)!=(n|0)){continue}break}}f=b&3;if(!f){break ud}while(1){c=(H[t+(a<<2)>>2]<<3)+p|0;j=H[c+4>>2];g=H[c>>2]+1|0;j=g?j:j+1|0;H[c>>2]=g;H[c+4>>2]=j;a=a+1|0;d=d+1|0;if((f|0)!=(d|0)){continue}break}}H[h+8>>2]=0;H[h+12>>2]=0;H[h+16>>2]=0;H[h+20>>2]=0;H[h+24>>2]=0;H[h+28>>2]=0;H[h+32>>2]=0;H[h>>2]=0;H[h+4>>2]=0;H[h+40>>2]=0;H[h+44>>2]=0;m=0;d=0;c=0;r=ha-32|0;ha=r;a=l-p>>3;vd:{if((a|0)<=0){break vd}l=a&3;wd:{if(a-1>>>0<3){a=0;break wd}C=a&-4;a=0;while(1){D=a|1;g=(D<<3)+p|0;f=H[g+4>>2];o=H[g>>2];B=a|2;j=(B<<3)+p|0;g=H[j+4>>2];n=H[j>>2];x=a|3;k=(x<<3)+p|0;j=H[k+4>>2];y=H[k>>2];w=c;c=(a<<3)+p|0;A=H[c+4>>2];k=H[c>>2];c=j|y?x:g|n?B:f|o?D:!(A|k)?w:a;w=n;x=o;o=i+A|0;n=k+u|0;o=n>>>0>>0?o+1|0:o;k=n;i=x+k|0;f=f+o|0;f=i>>>0>>0?f+1|0:f;k=i;i=w+i|0;f=f+g|0;f=i>>>0>>0?f+1|0:f;k=i;i=i+y|0;g=f+j|0;u=i;i=i>>>0>>0?g+1|0:g;a=a+4|0;d=d+4|0;if((C|0)!=(d|0)){continue}break}}if(!l){break vd}while(1){g=c;c=(a<<3)+p|0;f=H[c+4>>2];d=H[c>>2];c=!(f|d)?g:a;a=a+1|0;j=f+i|0;g=d+u|0;j=g>>>0>>0?j+1|0:j;u=g;i=j;m=m+1|0;if((l|0)!=(m|0)){continue}break}}f=c+1|0;H[h+12>>2]=f;d=H[h>>2];a=H[h+4>>2]-d>>3;xd:{if(a>>>0>>0){jf(h,f-a|0);break xd}if(a>>>0<=f>>>0){break xd}H[h+4>>2]=d+(f<<3)}n=0;yd:{zd:{Ad:{Bd:{if((c|0)>=0){v=+(u>>>0)+ +(i>>>0)*4294967296;i=H[h>>2];a=0;while(1){g=a<<3;j=g+p|0;d=H[j+4>>2];j=H[j>>2];k=(d|j)!=0;g=g+i|0;q=(+(j>>>0)+ +(d>>>0)*4294967296)/v*524288+.5;Cd:{if(q<4294967296&q>=0){d=~~q>>>0;break Cd}d=0}d=d?d:k?1:d;H[g>>2]=d;n=d+n|0;d=(a|0)==(c|0);a=a+1|0;if(!d){continue}break}if((n|0)==524288){break Bd}}H[r+16>>2]=0;H[r+8>>2]=0;H[r+12>>2]=0;l=0;if(f){if(f>>>0>=1073741824){break a}a=f<<2;l=hl(a);H[r+8>>2]=l;s=a+l|0;H[r+16>>2]=s;lk(l,0,a);H[r+12>>2]=s}a=0;Dd:{if((c|0)<0){break Dd}i=c+1|0;d=i&7;if(c>>>0>=7){i=i&-8;m=0;while(1){H[(a<<2)+l>>2]=a;f=a|1;H[(f<<2)+l>>2]=f;f=a|2;H[(f<<2)+l>>2]=f;f=a|3;H[(f<<2)+l>>2]=f;f=a|4;H[(f<<2)+l>>2]=f;f=a|5;H[(f<<2)+l>>2]=f;f=a|6;H[(f<<2)+l>>2]=f;f=a|7;H[(f<<2)+l>>2]=f;a=a+8|0;m=m+8|0;if((i|0)!=(m|0)){continue}break}}if(!d){break Dd}m=0;while(1){H[(a<<2)+l>>2]=a;a=a+1|0;m=m+1|0;if((d|0)!=(m|0)){continue}break}}H[r+24>>2]=h;a=s-l|0;d=a>>2;Ed:{Fd:{if((a|0)>=513){a=d;while(1){i=hl(a<<2);if(i){break Fd}i=a>>>0>1;a=a>>>1|0;if(i){continue}break}}ag(l,s,r+24|0,d,0,0);break Ed}ag(l,s,r+24|0,d,i,a);bl(i)}if((n|0)<524288){a=H[h>>2]+(H[s-4>>2]<<3)|0;H[a>>2]=(H[a>>2]-n|0)+524288;a=0;break Ad}if((c|0)>0){g=H[h>>2];m=n-524288|0;while(1){q=524288/+(n|0);d=c;while(1){Gd:{Hd:{i=g+(H[(d<<2)+l>>2]<<3)|0;a=H[i>>2];if(a>>>0>=2){k=i;o=a;v=T(q*+(a>>>0));Id:{if(P(v)<2147483648){f=~~v;break Id}f=-2147483648}i=(a|0)==(f|0)?1:a-f|0;a=(a|0)>(i|0)?i:a-1|0;a=(a|0)<(m|0)?a:m;H[k>>2]=o-a;m=m-a|0;n=n-a|0;if((n|0)!=524288){break Hd}n=524288;break Gd}if((c|0)!=(d|0)){break Gd}a=1;break Ad}a=(d|0)>1;d=d-1|0;if(a){continue}}break}a=0;if((m|0)>0){continue}break}break Ad}a=0;if(n>>>0<524289){break Ad}while(1)continue}if((c|0)<0){break yd}break zd}d=H[r+8>>2];if(d){bl(d)}if((c|0)<0|a){break yd}}i=c+1|0;g=i&3;d=H[h>>2];n=0;m=0;a=0;if(c>>>0>=3){j=i&-4;l=0;while(1){f=m<<3;k=f+d|0;H[k+4>>2]=a;o=d+(f|8)|0;a=H[k>>2]+a|0;H[o+4>>2]=a;k=d+(f|16)|0;a=a+H[o>>2]|0;H[k+4>>2]=a;f=d+(f|24)|0;a=a+H[k>>2]|0;H[f+4>>2]=a;a=a+H[f>>2]|0;m=m+4|0;l=l+4|0;if((j|0)!=(l|0)){continue}break}}if(g){while(1){f=d+(m<<3)|0;H[f+4>>2]=a;m=m+1|0;a=H[f>>2]+a|0;n=n+1|0;if((g|0)!=(n|0)){continue}break}}if((a|0)!=524288){break yd}a=0;q=0;Jd:{if((c|0)<0){break Jd}f=H[h>>2];if(c){c=i&-2;d=0;while(1){g=a<<3;j=H[g+f>>2];if(j){g=g+p|0;q=(+K[g>>2]+ +K[g+4>>2]*4294967296)*nk(+(j>>>0)*19073486328125e-19)+q}g=(a|1)<<3;j=H[g+f>>2];if(j){g=g+p|0;q=(+K[g>>2]+ +K[g+4>>2]*4294967296)*nk(+(j>>>0)*19073486328125e-19)+q}a=a+2|0;d=d+2|0;if((c|0)!=(d|0)){continue}break}}if(!(i&1)){break Jd}a=a<<3;c=H[a+f>>2];if(!c){break Jd}a=a+p|0;q=(+K[a>>2]+ +K[a+4>>2]*4294967296)*nk(+(c>>>0)*19073486328125e-19)+q}q=U(-q);Kd:{if(q<0x10000000000000000&q>=0){c=P(q)>=1?~~(q>0?R(T(q*2.3283064365386963e-10),4294967295):U((q-+(~~q>>>0>>>0))*2.3283064365386963e-10))>>>0:0;a=~~q>>>0;break Kd}c=0;a=0}H[h+16>>2]=a;H[h+20>>2]=c;of(h,e)}ha=r+32|0;d=H[h+16>>2];a=H[h+20>>2];c=H[e+4>>2]-H[e>>2]|0;H[h+40>>2]=c;H[h+44>>2]=0;f=a<<1|d>>>31;a=(d<<1)+39|0;o=a>>>0<39?f+1|0:f;a=c+((o&7)<<29|a>>>3)|0;g=o>>>3|0;g=a>>>0>>0?g+1|0:g;a=a+8|0;hi(e,a);a=H[e>>2];H[h+28>>2]=0;H[h+32>>2]=2097152;H[h+24>>2]=a+H[h+40>>2];if((b|0)>0){a=2097152;while(1){c=b-1|0;i=H[h>>2]+(H[t+(c<<2)>>2]<<3)|0;d=H[i>>2];f=d<<10;if(f>>>0<=a>>>0){while(1){g=H[h+28>>2];H[h+28>>2]=g+1;F[g+H[h+24>>2]|0]=a;a=H[h+32>>2]>>>8|0;H[h+32>>2]=a;if(a>>>0>=f>>>0){continue}break}}g=H[i+4>>2];i=(a>>>0)/(d>>>0)|0;a=g+((i<<19)+(a-N(d,i)|0)|0)|0;H[h+32>>2]=a;d=(b|0)>1;b=c;if(d){continue}break}}b=ha-32|0;ha=b;c=H[e>>2]+H[h+40>>2]|0;d=H[h+32>>2];a=d-2097152|0;Ld:{if(a>>>0<=63){F[H[h+24>>2]+H[h+28>>2]|0]=a;a=H[h+28>>2]+1|0;break Ld}if(a>>>0<=16383){a=H[h+24>>2]+H[h+28>>2]|0;d=d-2080768|0;F[a|0]=d;F[a+1|0]=d>>>8;a=H[h+28>>2]+2|0;break Ld}if(a>>>0<=4194303){a=H[h+24>>2]+H[h+28>>2]|0;d=d+6291456|0;F[a+2|0]=d>>>16;F[a+1|0]=d>>>8;F[a|0]=d;a=H[h+28>>2]+3|0;break Ld}if(a>>>0<=1073741823){a=H[h+24>>2]+H[h+28>>2]|0;d=d-1075838976|0;F[a|0]=d;F[a+1|0]=d>>>8;F[a+2|0]=d>>>16;F[a+3|0]=d>>>24;a=H[h+28>>2]+4|0;break Ld}a=H[h+28>>2]}H[b>>2]=0;H[b+4>>2]=0;F[b+24|0]=0;H[b+16>>2]=0;H[b+20>>2]=0;H[b+8>>2]=0;H[b+12>>2]=0;f=a>>31;pf(a,f,b);d=H[b+4>>2]-H[b>>2]|0;kk(d+c|0,c,a);jk(c,H[b>>2],d);i=H[h+44>>2];c=a+d|0;f=c>>>0>>0?f+1|0:f;a=c+H[h+40>>2]|0;hi(e,a);a=H[b+12>>2];H[b+12>>2]=0;if(a){bl(a)}a=H[b>>2];if(a){H[b+4>>2]=a;bl(a)}ha=b+32|0;a=H[h>>2];if(a){H[h+4>>2]=a;bl(a)}a=H[h+48>>2];if(a){bl(a)}ha=h- -64|0;break td}p=1;break v;case 13:t=a;l=0;n=0;d=0;s=0;u=0;i=0;h=ha+-64|0;ha=h;H[h+56>>2]=0;H[h+48>>2]=0;H[h+52>>2]=0;Md:{a=m+1|0;if(a){if(a>>>0>=536870912){break a}a=a<<3;p=hl(a);H[h+48>>2]=p;l=a+p|0;H[h+56>>2]=l;lk(p,0,(m<<3)+8|0);H[h+52>>2]=l}Nd:{if((b|0)<=0){break Nd}a=0;if(b-1>>>0>=3){j=b&-4;while(1){c=a<<2;f=(H[c+t>>2]<<3)+p|0;k=H[f+4>>2];g=H[f>>2]+1|0;k=g?k:k+1|0;H[f>>2]=g;H[f+4>>2]=k;f=(H[t+(c|4)>>2]<<3)+p|0;g=H[f+4>>2];k=H[f>>2]+1|0;g=k?g:g+1|0;H[f>>2]=k;H[f+4>>2]=g;f=(H[t+(c|8)>>2]<<3)+p|0;o=H[f+4>>2];g=H[f>>2]+1|0;o=g?o:o+1|0;H[f>>2]=g;H[f+4>>2]=o;c=(H[t+(c|12)>>2]<<3)+p|0;k=H[c+4>>2];f=H[c>>2]+1|0;k=f?k:k+1|0;H[c>>2]=f;H[c+4>>2]=k;a=a+4|0;n=n+4|0;if((j|0)!=(n|0)){continue}break}}f=b&3;if(!f){break Nd}while(1){c=(H[t+(a<<2)>>2]<<3)+p|0;g=H[c+4>>2];j=H[c>>2]+1|0;g=j?g:g+1|0;H[c>>2]=j;H[c+4>>2]=g;a=a+1|0;d=d+1|0;if((f|0)!=(d|0)){continue}break}}H[h+8>>2]=0;H[h+12>>2]=0;H[h+16>>2]=0;H[h+20>>2]=0;H[h+24>>2]=0;H[h+28>>2]=0;H[h+32>>2]=0;H[h>>2]=0;H[h+4>>2]=0;H[h+40>>2]=0;H[h+44>>2]=0;m=0;d=0;c=0;r=ha-32|0;ha=r;a=l-p>>3;Od:{if((a|0)<=0){break Od}l=a&3;Pd:{if(a-1>>>0<3){a=0;break Pd}C=a&-4;a=0;while(1){D=a|1;g=(D<<3)+p|0;f=H[g+4>>2];o=H[g>>2];B=a|2;j=(B<<3)+p|0;g=H[j+4>>2];n=H[j>>2];x=a|3;k=(x<<3)+p|0;j=H[k+4>>2];y=H[k>>2];w=c;c=(a<<3)+p|0;A=H[c+4>>2];k=H[c>>2];c=j|y?x:g|n?B:f|o?D:!(A|k)?w:a;w=n;x=o;o=i+A|0;n=k+u|0;o=n>>>0>>0?o+1|0:o;i=x+n|0;k=f+o|0;k=i>>>0>>0?k+1|0:k;o=i;i=w+i|0;f=g+k|0;f=i>>>0>>0?f+1|0:f;g=i;i=g+y|0;f=f+j|0;u=i;i=g>>>0>i>>>0?f+1|0:f;a=a+4|0;d=d+4|0;if((C|0)!=(d|0)){continue}break}}if(!l){break Od}while(1){g=c;c=(a<<3)+p|0;f=H[c+4>>2];d=H[c>>2];c=!(f|d)?g:a;a=a+1|0;g=f+i|0;j=d+u|0;g=j>>>0>>0?g+1|0:g;u=j;i=g;m=m+1|0;if((l|0)!=(m|0)){continue}break}}f=c+1|0;H[h+12>>2]=f;d=H[h>>2];a=H[h+4>>2]-d>>3;Qd:{if(a>>>0>>0){jf(h,f-a|0);break Qd}if(a>>>0<=f>>>0){break Qd}H[h+4>>2]=d+(f<<3)}n=0;Rd:{Sd:{Td:{Ud:{if((c|0)>=0){v=+(u>>>0)+ +(i>>>0)*4294967296;i=H[h>>2];a=0;while(1){g=a<<3;j=g+p|0;d=H[j+4>>2];j=H[j>>2];k=(d|j)!=0;g=g+i|0;q=(+(j>>>0)+ +(d>>>0)*4294967296)/v*1048576+.5;Vd:{if(q<4294967296&q>=0){d=~~q>>>0;break Vd}d=0}d=d?d:k?1:d;H[g>>2]=d;n=d+n|0;d=(a|0)==(c|0);a=a+1|0;if(!d){continue}break}if((n|0)==1048576){break Ud}}H[r+16>>2]=0;H[r+8>>2]=0;H[r+12>>2]=0;l=0;if(f){if(f>>>0>=1073741824){break a}a=f<<2;l=hl(a);H[r+8>>2]=l;s=a+l|0;H[r+16>>2]=s;lk(l,0,a);H[r+12>>2]=s}a=0;Wd:{if((c|0)<0){break Wd}i=c+1|0;d=i&7;if(c>>>0>=7){i=i&-8;m=0;while(1){H[(a<<2)+l>>2]=a;f=a|1;H[(f<<2)+l>>2]=f;f=a|2;H[(f<<2)+l>>2]=f;f=a|3;H[(f<<2)+l>>2]=f;f=a|4;H[(f<<2)+l>>2]=f;f=a|5;H[(f<<2)+l>>2]=f;f=a|6;H[(f<<2)+l>>2]=f;f=a|7;H[(f<<2)+l>>2]=f;a=a+8|0;m=m+8|0;if((i|0)!=(m|0)){continue}break}}if(!d){break Wd}m=0;while(1){H[(a<<2)+l>>2]=a;a=a+1|0;m=m+1|0;if((d|0)!=(m|0)){continue}break}}H[r+24>>2]=h;a=s-l|0;d=a>>2;Xd:{Yd:{if((a|0)>=513){a=d;while(1){i=hl(a<<2);if(i){break Yd}i=a>>>0>1;a=a>>>1|0;if(i){continue}break}}dg(l,s,r+24|0,d,0,0);break Xd}dg(l,s,r+24|0,d,i,a);bl(i)}if((n|0)<1048576){a=H[h>>2]+(H[s-4>>2]<<3)|0;H[a>>2]=(H[a>>2]-n|0)- -1048576;a=0;break Td}if((c|0)>0){g=H[h>>2];m=n+-1048576|0;while(1){q=1048576/+(n|0);d=c;while(1){Zd:{_d:{i=g+(H[(d<<2)+l>>2]<<3)|0;a=H[i>>2];if(a>>>0>=2){k=i;o=a;v=T(q*+(a>>>0));$d:{if(P(v)<2147483648){f=~~v;break $d}f=-2147483648}i=(a|0)==(f|0)?1:a-f|0;a=(a|0)>(i|0)?i:a-1|0;a=(a|0)<(m|0)?a:m;H[k>>2]=o-a;m=m-a|0;n=n-a|0;if((n|0)!=1048576){break _d}n=1048576;break Zd}if((c|0)!=(d|0)){break Zd}a=1;break Td}a=(d|0)>1;d=d-1|0;if(a){continue}}break}a=0;if((m|0)>0){continue}break}break Td}a=0;if(n>>>0<1048577){break Td}while(1)continue}if((c|0)<0){break Rd}break Sd}d=H[r+8>>2];if(d){bl(d)}if((c|0)<0|a){break Rd}}i=c+1|0;g=i&3;d=H[h>>2];n=0;m=0;a=0;if(c>>>0>=3){j=i&-4;l=0;while(1){f=m<<3;k=f+d|0;H[k+4>>2]=a;o=d+(f|8)|0;a=H[k>>2]+a|0;H[o+4>>2]=a;k=d+(f|16)|0;a=a+H[o>>2]|0;H[k+4>>2]=a;f=d+(f|24)|0;a=a+H[k>>2]|0;H[f+4>>2]=a;a=a+H[f>>2]|0;m=m+4|0;l=l+4|0;if((j|0)!=(l|0)){continue}break}}if(g){while(1){f=d+(m<<3)|0;H[f+4>>2]=a;m=m+1|0;a=H[f>>2]+a|0;n=n+1|0;if((g|0)!=(n|0)){continue}break}}if((a|0)!=1048576){break Rd}a=0;q=0;ae:{if((c|0)<0){break ae}f=H[h>>2];if(c){c=i&-2;d=0;while(1){g=a<<3;j=H[g+f>>2];if(j){g=g+p|0;q=(+K[g>>2]+ +K[g+4>>2]*4294967296)*nk(+(j>>>0)*9.5367431640625e-7)+q}g=(a|1)<<3;j=H[g+f>>2];if(j){g=g+p|0;q=(+K[g>>2]+ +K[g+4>>2]*4294967296)*nk(+(j>>>0)*9.5367431640625e-7)+q}a=a+2|0;d=d+2|0;if((c|0)!=(d|0)){continue}break}}if(!(i&1)){break ae}a=a<<3;c=H[a+f>>2];if(!c){break ae}a=a+p|0;q=(+K[a>>2]+ +K[a+4>>2]*4294967296)*nk(+(c>>>0)*9.5367431640625e-7)+q}q=U(-q);be:{if(q<0x10000000000000000&q>=0){c=P(q)>=1?~~(q>0?R(T(q*2.3283064365386963e-10),4294967295):U((q-+(~~q>>>0>>>0))*2.3283064365386963e-10))>>>0:0;a=~~q>>>0;break be}c=0;a=0}H[h+16>>2]=a;H[h+20>>2]=c;of(h,e)}ha=r+32|0;d=H[h+16>>2];a=H[h+20>>2];c=H[e+4>>2]-H[e>>2]|0;H[h+40>>2]=c;H[h+44>>2]=0;f=a<<1|d>>>31;a=(d<<1)+39|0;o=a>>>0<39?f+1|0:f;a=c+((o&7)<<29|a>>>3)|0;f=o>>>3|0;f=a>>>0>>0?f+1|0:f;a=a+8|0;hi(e,a);a=H[e>>2];H[h+28>>2]=0;H[h+32>>2]=4194304;H[h+24>>2]=a+H[h+40>>2];if((b|0)>0){a=4194304;while(1){c=b-1|0;i=H[h>>2]+(H[t+(c<<2)>>2]<<3)|0;d=H[i>>2];f=d<<10;if(f>>>0<=a>>>0){while(1){g=H[h+28>>2];H[h+28>>2]=g+1;F[g+H[h+24>>2]|0]=a;a=H[h+32>>2]>>>8|0;H[h+32>>2]=a;if(a>>>0>=f>>>0){continue}break}}g=H[i+4>>2];i=(a>>>0)/(d>>>0)|0;a=g+((i<<20)+(a-N(d,i)|0)|0)|0;H[h+32>>2]=a;d=(b|0)>1;b=c;if(d){continue}break}}uf(h,e);a=H[h>>2];if(a){H[h+4>>2]=a;bl(a)}a=H[h+48>>2];if(a){bl(a)}ha=h- -64|0;break Md}p=1;break v;case 14:t=a;l=0;n=0;d=0;s=0;u=0;i=0;h=ha+-64|0;ha=h;H[h+56>>2]=0;H[h+48>>2]=0;H[h+52>>2]=0;ce:{a=m+1|0;if(a){if(a>>>0>=536870912){break a}a=a<<3;p=hl(a);H[h+48>>2]=p;l=a+p|0;H[h+56>>2]=l;lk(p,0,(m<<3)+8|0);H[h+52>>2]=l}de:{if((b|0)<=0){break de}a=0;if(b-1>>>0>=3){k=b&-4;while(1){c=a<<2;g=(H[c+t>>2]<<3)+p|0;f=H[g+4>>2];j=H[g>>2]+1|0;f=j?f:f+1|0;H[g>>2]=j;H[g+4>>2]=f;f=(H[t+(c|4)>>2]<<3)+p|0;o=H[f+4>>2];g=H[f>>2]+1|0;o=g?o:o+1|0;H[f>>2]=g;H[f+4>>2]=o;f=(H[t+(c|8)>>2]<<3)+p|0;j=H[f+4>>2];g=H[f>>2]+1|0;j=g?j:j+1|0;H[f>>2]=g;H[f+4>>2]=j;c=(H[t+(c|12)>>2]<<3)+p|0;f=H[c+4>>2];g=H[c>>2]+1|0;f=g?f:f+1|0;H[c>>2]=g;H[c+4>>2]=f;a=a+4|0;n=n+4|0;if((k|0)!=(n|0)){continue}break}}f=b&3;if(!f){break de}while(1){c=(H[t+(a<<2)>>2]<<3)+p|0;o=H[c+4>>2];g=H[c>>2]+1|0;o=g?o:o+1|0;H[c>>2]=g;H[c+4>>2]=o;a=a+1|0;d=d+1|0;if((f|0)!=(d|0)){continue}break}}H[h+8>>2]=0;H[h+12>>2]=0;H[h+16>>2]=0;H[h+20>>2]=0;H[h+24>>2]=0;H[h+28>>2]=0;H[h+32>>2]=0;H[h>>2]=0;H[h+4>>2]=0;H[h+40>>2]=0;H[h+44>>2]=0;m=0;d=0;c=0;r=ha-32|0;ha=r;a=l-p>>3;ee:{if((a|0)<=0){break ee}l=a&3;fe:{if(a-1>>>0<3){a=0;break fe}D=a&-4;a=0;while(1){o=a|1;g=(o<<3)+p|0;f=H[g+4>>2];n=H[g>>2];B=a|2;j=(B<<3)+p|0;g=H[j+4>>2];y=H[j>>2];x=a|3;k=(x<<3)+p|0;j=H[k+4>>2];A=H[k>>2];w=c;c=(a<<3)+p|0;C=H[c+4>>2];k=H[c>>2];c=j|A?x:g|y?B:f|n?o:!(C|k)?w:a;o=j;w=n;j=i+C|0;n=k+u|0;j=n>>>0>>0?j+1|0:j;k=n;i=w+k|0;f=f+j|0;f=i>>>0>>0?f+1|0:f;j=i;i=i+y|0;f=f+g|0;f=i>>>0>>0?f+1|0:f;g=i;i=g+A|0;k=f+o|0;u=i;i=g>>>0>i>>>0?k+1|0:k;a=a+4|0;d=d+4|0;if((D|0)!=(d|0)){continue}break}}if(!l){break ee}while(1){g=c;c=(a<<3)+p|0;f=H[c+4>>2];d=H[c>>2];c=!(f|d)?g:a;a=a+1|0;o=f+i|0;g=d+u|0;o=g>>>0>>0?o+1|0:o;u=g;i=o;m=m+1|0;if((l|0)!=(m|0)){continue}break}}f=c+1|0;H[h+12>>2]=f;d=H[h>>2];a=H[h+4>>2]-d>>3;ge:{if(a>>>0>>0){jf(h,f-a|0);break ge}if(a>>>0<=f>>>0){break ge}H[h+4>>2]=d+(f<<3)}n=0;he:{ie:{je:{ke:{if((c|0)>=0){v=+(u>>>0)+ +(i>>>0)*4294967296;i=H[h>>2];a=0;while(1){g=a<<3;j=g+p|0;d=H[j+4>>2];j=H[j>>2];k=(d|j)!=0;g=g+i|0;q=(+(j>>>0)+ +(d>>>0)*4294967296)/v*1048576+.5;le:{if(q<4294967296&q>=0){d=~~q>>>0;break le}d=0}d=d?d:k?1:d;H[g>>2]=d;n=d+n|0;d=(a|0)==(c|0);a=a+1|0;if(!d){continue}break}if((n|0)==1048576){break ke}}H[r+16>>2]=0;H[r+8>>2]=0;H[r+12>>2]=0;l=0;if(f){if(f>>>0>=1073741824){break a}a=f<<2;l=hl(a);H[r+8>>2]=l;s=a+l|0;H[r+16>>2]=s;lk(l,0,a);H[r+12>>2]=s}a=0;me:{if((c|0)<0){break me}i=c+1|0;d=i&7;if(c>>>0>=7){i=i&-8;m=0;while(1){H[(a<<2)+l>>2]=a;f=a|1;H[(f<<2)+l>>2]=f;f=a|2;H[(f<<2)+l>>2]=f;f=a|3;H[(f<<2)+l>>2]=f;f=a|4;H[(f<<2)+l>>2]=f;f=a|5;H[(f<<2)+l>>2]=f;f=a|6;H[(f<<2)+l>>2]=f;f=a|7;H[(f<<2)+l>>2]=f;a=a+8|0;m=m+8|0;if((i|0)!=(m|0)){continue}break}}if(!d){break me}m=0;while(1){H[(a<<2)+l>>2]=a;a=a+1|0;m=m+1|0;if((d|0)!=(m|0)){continue}break}}H[r+24>>2]=h;a=s-l|0;d=a>>2;ne:{oe:{if((a|0)>=513){a=d;while(1){i=hl(a<<2);if(i){break oe}i=a>>>0>1;a=a>>>1|0;if(i){continue}break}}gg(l,s,r+24|0,d,0,0);break ne}gg(l,s,r+24|0,d,i,a);bl(i)}if((n|0)<1048576){a=H[h>>2]+(H[s-4>>2]<<3)|0;H[a>>2]=(H[a>>2]-n|0)- -1048576;a=0;break je}if((c|0)>0){g=H[h>>2];m=n+-1048576|0;while(1){q=1048576/+(n|0);d=c;while(1){pe:{qe:{i=g+(H[(d<<2)+l>>2]<<3)|0;a=H[i>>2];if(a>>>0>=2){k=i;o=a;v=T(q*+(a>>>0));re:{if(P(v)<2147483648){f=~~v;break re}f=-2147483648}i=(a|0)==(f|0)?1:a-f|0;a=(a|0)>(i|0)?i:a-1|0;a=(a|0)<(m|0)?a:m;H[k>>2]=o-a;m=m-a|0;n=n-a|0;if((n|0)!=1048576){break qe}n=1048576;break pe}if((c|0)!=(d|0)){break pe}a=1;break je}a=(d|0)>1;d=d-1|0;if(a){continue}}break}a=0;if((m|0)>0){continue}break}break je}a=0;if(n>>>0<1048577){break je}while(1)continue}if((c|0)<0){break he}break ie}d=H[r+8>>2];if(d){bl(d)}if((c|0)<0|a){break he}}i=c+1|0;g=i&3;d=H[h>>2];n=0;m=0;a=0;if(c>>>0>=3){j=i&-4;l=0;while(1){f=m<<3;k=f+d|0;H[k+4>>2]=a;o=d+(f|8)|0;a=H[k>>2]+a|0;H[o+4>>2]=a;k=d+(f|16)|0;a=a+H[o>>2]|0;H[k+4>>2]=a;f=d+(f|24)|0;a=a+H[k>>2]|0;H[f+4>>2]=a;a=a+H[f>>2]|0;m=m+4|0;l=l+4|0;if((j|0)!=(l|0)){continue}break}}if(g){while(1){f=d+(m<<3)|0;H[f+4>>2]=a;m=m+1|0;a=H[f>>2]+a|0;n=n+1|0;if((g|0)!=(n|0)){continue}break}}if((a|0)!=1048576){break he}a=0;q=0;se:{if((c|0)<0){break se}f=H[h>>2];if(c){c=i&-2;d=0;while(1){g=a<<3;j=H[g+f>>2];if(j){g=g+p|0;q=(+K[g>>2]+ +K[g+4>>2]*4294967296)*nk(+(j>>>0)*9.5367431640625e-7)+q}g=(a|1)<<3;j=H[g+f>>2];if(j){g=g+p|0;q=(+K[g>>2]+ +K[g+4>>2]*4294967296)*nk(+(j>>>0)*9.5367431640625e-7)+q}a=a+2|0;d=d+2|0;if((c|0)!=(d|0)){continue}break}}if(!(i&1)){break se}a=a<<3;c=H[a+f>>2];if(!c){break se}a=a+p|0;q=(+K[a>>2]+ +K[a+4>>2]*4294967296)*nk(+(c>>>0)*9.5367431640625e-7)+q}q=U(-q);te:{if(q<0x10000000000000000&q>=0){c=P(q)>=1?~~(q>0?R(T(q*2.3283064365386963e-10),4294967295):U((q-+(~~q>>>0>>>0))*2.3283064365386963e-10))>>>0:0;a=~~q>>>0;break te}c=0;a=0}H[h+16>>2]=a;H[h+20>>2]=c;of(h,e)}ha=r+32|0;d=H[h+16>>2];a=H[h+20>>2];c=H[e+4>>2]-H[e>>2]|0;H[h+40>>2]=c;H[h+44>>2]=0;f=a<<1|d>>>31;a=(d<<1)+39|0;j=a>>>0<39?f+1|0:f;a=c+((j&7)<<29|a>>>3)|0;k=j>>>3|0;k=a>>>0>>0?k+1|0:k;a=a+8|0;hi(e,a);a=H[e>>2];H[h+28>>2]=0;H[h+32>>2]=4194304;H[h+24>>2]=a+H[h+40>>2];if((b|0)>0){a=4194304;while(1){c=b-1|0;i=H[h>>2]+(H[t+(c<<2)>>2]<<3)|0;d=H[i>>2];f=d<<10;if(f>>>0<=a>>>0){while(1){g=H[h+28>>2];H[h+28>>2]=g+1;F[g+H[h+24>>2]|0]=a;a=H[h+32>>2]>>>8|0;H[h+32>>2]=a;if(a>>>0>=f>>>0){continue}break}}g=H[i+4>>2];i=(a>>>0)/(d>>>0)|0;a=g+((i<<20)+(a-N(d,i)|0)|0)|0;H[h+32>>2]=a;d=(b|0)>1;b=c;if(d){continue}break}}uf(h,e);a=H[h>>2];if(a){H[h+4>>2]=a;bl(a)}a=H[h+48>>2];if(a){bl(a)}ha=h- -64|0;break ce}p=1;break v;case 15:t=a;l=0;n=0;d=0;s=0;u=0;i=0;h=ha+-64|0;ha=h;H[h+56>>2]=0;H[h+48>>2]=0;H[h+52>>2]=0;ue:{a=m+1|0;if(a){if(a>>>0>=536870912){break a}a=a<<3;p=hl(a);H[h+48>>2]=p;l=a+p|0;H[h+56>>2]=l;lk(p,0,(m<<3)+8|0);H[h+52>>2]=l}ve:{if((b|0)<=0){break ve}a=0;if(b-1>>>0>=3){k=b&-4;while(1){c=a<<2;g=(H[c+t>>2]<<3)+p|0;f=H[g+4>>2];j=H[g>>2]+1|0;f=j?f:f+1|0;H[g>>2]=j;H[g+4>>2]=f;f=(H[t+(c|4)>>2]<<3)+p|0;j=H[f+4>>2];g=H[f>>2]+1|0;j=g?j:j+1|0;H[f>>2]=g;H[f+4>>2]=j;f=(H[t+(c|8)>>2]<<3)+p|0;g=H[f+4>>2];j=H[f>>2]+1|0;g=j?g:g+1|0;H[f>>2]=j;H[f+4>>2]=g;c=(H[t+(c|12)>>2]<<3)+p|0;f=H[c+4>>2];g=H[c>>2]+1|0;f=g?f:f+1|0;H[c>>2]=g;H[c+4>>2]=f;a=a+4|0;n=n+4|0;if((k|0)!=(n|0)){continue}break}}f=b&3;if(!f){break ve}while(1){c=(H[t+(a<<2)>>2]<<3)+p|0;j=H[c+4>>2];g=H[c>>2]+1|0;j=g?j:j+1|0;H[c>>2]=g;H[c+4>>2]=j;a=a+1|0;d=d+1|0;if((f|0)!=(d|0)){continue}break}}H[h+8>>2]=0;H[h+12>>2]=0;H[h+16>>2]=0;H[h+20>>2]=0;H[h+24>>2]=0;H[h+28>>2]=0;H[h+32>>2]=0;H[h>>2]=0;H[h+4>>2]=0;H[h+40>>2]=0;H[h+44>>2]=0;m=0;d=0;c=0;r=ha-32|0;ha=r;a=l-p>>3;we:{if((a|0)<=0){break we}l=a&3;xe:{if(a-1>>>0<3){a=0;break xe}D=a&-4;a=0;while(1){o=a|1;g=(o<<3)+p|0;f=H[g+4>>2];n=H[g>>2];B=a|2;j=(B<<3)+p|0;g=H[j+4>>2];y=H[j>>2];x=a|3;k=(x<<3)+p|0;j=H[k+4>>2];A=H[k>>2];w=c;c=(a<<3)+p|0;C=H[c+4>>2];k=H[c>>2];c=j|A?x:g|y?B:f|n?o:!(C|k)?w:a;o=g;w=n;g=i+C|0;n=k+u|0;g=n>>>0>>0?g+1|0:g;k=n;i=w+k|0;f=f+g|0;f=i>>>0>>0?f+1|0:f;g=i;i=g+y|0;k=f+o|0;k=g>>>0>i>>>0?k+1|0:k;g=i;i=g+A|0;f=j+k|0;u=i;i=g>>>0>i>>>0?f+1|0:f;a=a+4|0;d=d+4|0;if((D|0)!=(d|0)){continue}break}}if(!l){break we}while(1){g=c;c=(a<<3)+p|0;f=H[c+4>>2];d=H[c>>2];c=!(f|d)?g:a;a=a+1|0;j=f+i|0;g=d+u|0;j=g>>>0>>0?j+1|0:j;u=g;i=j;m=m+1|0;if((l|0)!=(m|0)){continue}break}}f=c+1|0;H[h+12>>2]=f;d=H[h>>2];a=H[h+4>>2]-d>>3;ye:{if(a>>>0>>0){jf(h,f-a|0);break ye}if(a>>>0<=f>>>0){break ye}H[h+4>>2]=d+(f<<3)}n=0;ze:{Ae:{Be:{Ce:{if((c|0)>=0){v=+(u>>>0)+ +(i>>>0)*4294967296;i=H[h>>2];a=0;while(1){g=a<<3;j=g+p|0;d=H[j+4>>2];j=H[j>>2];k=(d|j)!=0;g=g+i|0;q=(+(j>>>0)+ +(d>>>0)*4294967296)/v*1048576+.5;De:{if(q<4294967296&q>=0){d=~~q>>>0;break De}d=0}d=d?d:k?1:d;H[g>>2]=d;n=d+n|0;d=(a|0)==(c|0);a=a+1|0;if(!d){continue}break}if((n|0)==1048576){break Ce}}H[r+16>>2]=0;H[r+8>>2]=0;H[r+12>>2]=0;l=0;if(f){if(f>>>0>=1073741824){break a}a=f<<2;l=hl(a);H[r+8>>2]=l;s=a+l|0;H[r+16>>2]=s;lk(l,0,a);H[r+12>>2]=s}a=0;Ee:{if((c|0)<0){break Ee}i=c+1|0;d=i&7;if(c>>>0>=7){i=i&-8;m=0;while(1){H[(a<<2)+l>>2]=a;f=a|1;H[(f<<2)+l>>2]=f;f=a|2;H[(f<<2)+l>>2]=f;f=a|3;H[(f<<2)+l>>2]=f;f=a|4;H[(f<<2)+l>>2]=f;f=a|5;H[(f<<2)+l>>2]=f;f=a|6;H[(f<<2)+l>>2]=f;f=a|7;H[(f<<2)+l>>2]=f;a=a+8|0;m=m+8|0;if((i|0)!=(m|0)){continue}break}}if(!d){break Ee}m=0;while(1){H[(a<<2)+l>>2]=a;a=a+1|0;m=m+1|0;if((d|0)!=(m|0)){continue}break}}H[r+24>>2]=h;a=s-l|0;d=a>>2;Fe:{Ge:{if((a|0)>=513){a=d;while(1){i=hl(a<<2);if(i){break Ge}i=a>>>0>1;a=a>>>1|0;if(i){continue}break}}jg(l,s,r+24|0,d,0,0);break Fe}jg(l,s,r+24|0,d,i,a);bl(i)}if((n|0)<1048576){a=H[h>>2]+(H[s-4>>2]<<3)|0;H[a>>2]=(H[a>>2]-n|0)- -1048576;a=0;break Be}if((c|0)>0){g=H[h>>2];m=n+-1048576|0;while(1){q=1048576/+(n|0);d=c;while(1){He:{Ie:{i=g+(H[(d<<2)+l>>2]<<3)|0;a=H[i>>2];if(a>>>0>=2){k=i;o=a;v=T(q*+(a>>>0));Je:{if(P(v)<2147483648){f=~~v;break Je}f=-2147483648}i=(a|0)==(f|0)?1:a-f|0;a=(a|0)>(i|0)?i:a-1|0;a=(a|0)<(m|0)?a:m;H[k>>2]=o-a;m=m-a|0;n=n-a|0;if((n|0)!=1048576){break Ie}n=1048576;break He}if((c|0)!=(d|0)){break He}a=1;break Be}a=(d|0)>1;d=d-1|0;if(a){continue}}break}a=0;if((m|0)>0){continue}break}break Be}a=0;if(n>>>0<1048577){break Be}while(1)continue}if((c|0)<0){break ze}break Ae}d=H[r+8>>2];if(d){bl(d)}if((c|0)<0|a){break ze}}i=c+1|0;g=i&3;d=H[h>>2];n=0;m=0;a=0;if(c>>>0>=3){j=i&-4;l=0;while(1){f=m<<3;k=f+d|0;H[k+4>>2]=a;o=d+(f|8)|0;a=H[k>>2]+a|0;H[o+4>>2]=a;k=d+(f|16)|0;a=a+H[o>>2]|0;H[k+4>>2]=a;f=d+(f|24)|0;a=a+H[k>>2]|0;H[f+4>>2]=a;a=a+H[f>>2]|0;m=m+4|0;l=l+4|0;if((j|0)!=(l|0)){continue}break}}if(g){while(1){f=d+(m<<3)|0;H[f+4>>2]=a;m=m+1|0;a=H[f>>2]+a|0;n=n+1|0;if((g|0)!=(n|0)){continue}break}}if((a|0)!=1048576){break ze}a=0;q=0;Ke:{if((c|0)<0){break Ke}f=H[h>>2];if(c){c=i&-2;d=0;while(1){g=a<<3;j=H[g+f>>2];if(j){g=g+p|0;q=(+K[g>>2]+ +K[g+4>>2]*4294967296)*nk(+(j>>>0)*9.5367431640625e-7)+q}g=(a|1)<<3;j=H[g+f>>2];if(j){g=g+p|0;q=(+K[g>>2]+ +K[g+4>>2]*4294967296)*nk(+(j>>>0)*9.5367431640625e-7)+q}a=a+2|0;d=d+2|0;if((c|0)!=(d|0)){continue}break}}if(!(i&1)){break Ke}a=a<<3;c=H[a+f>>2];if(!c){break Ke}a=a+p|0;q=(+K[a>>2]+ +K[a+4>>2]*4294967296)*nk(+(c>>>0)*9.5367431640625e-7)+q}q=U(-q);Le:{if(q<0x10000000000000000&q>=0){c=P(q)>=1?~~(q>0?R(T(q*2.3283064365386963e-10),4294967295):U((q-+(~~q>>>0>>>0))*2.3283064365386963e-10))>>>0:0;a=~~q>>>0;break Le}c=0;a=0}H[h+16>>2]=a;H[h+20>>2]=c;of(h,e)}ha=r+32|0;d=H[h+16>>2];a=H[h+20>>2];c=H[e+4>>2]-H[e>>2]|0;H[h+40>>2]=c;H[h+44>>2]=0;k=a<<1|d>>>31;a=(d<<1)+39|0;g=k;g=a>>>0<39?g+1|0:g;f=g>>>3|0;a=c+((g&7)<<29|a>>>3)|0;f=a>>>0>>0?f+1|0:f;a=a+8|0;hi(e,a);a=H[e>>2];H[h+28>>2]=0;H[h+32>>2]=4194304;H[h+24>>2]=a+H[h+40>>2];if((b|0)>0){a=4194304;while(1){c=b-1|0;i=H[h>>2]+(H[t+(c<<2)>>2]<<3)|0;d=H[i>>2];f=d<<10;if(f>>>0<=a>>>0){while(1){g=H[h+28>>2];H[h+28>>2]=g+1;F[g+H[h+24>>2]|0]=a;a=H[h+32>>2]>>>8|0;H[h+32>>2]=a;if(a>>>0>=f>>>0){continue}break}}g=H[i+4>>2];i=(a>>>0)/(d>>>0)|0;a=g+((i<<20)+(a-N(d,i)|0)|0)|0;H[h+32>>2]=a;d=(b|0)>1;b=c;if(d){continue}break}}uf(h,e);a=H[h>>2];if(a){H[h+4>>2]=a;bl(a)}a=H[h+48>>2];if(a){bl(a)}ha=h- -64|0;break ue}p=1;break v;case 16:t=a;l=0;n=0;d=0;s=0;u=0;i=0;h=ha+-64|0;ha=h;H[h+56>>2]=0;H[h+48>>2]=0;H[h+52>>2]=0;Me:{a=m+1|0;if(a){if(a>>>0>=536870912){break a}a=a<<3;p=hl(a);H[h+48>>2]=p;l=a+p|0;H[h+56>>2]=l;lk(p,0,(m<<3)+8|0);H[h+52>>2]=l}Ne:{if((b|0)<=0){break Ne}a=0;if(b-1>>>0>=3){j=b&-4;while(1){c=a<<2;f=(H[c+t>>2]<<3)+p|0;k=H[f+4>>2];g=H[f>>2]+1|0;k=g?k:k+1|0;H[f>>2]=g;H[f+4>>2]=k;f=(H[t+(c|4)>>2]<<3)+p|0;g=H[f+4>>2];k=H[f>>2]+1|0;g=k?g:g+1|0;H[f>>2]=k;H[f+4>>2]=g;f=(H[t+(c|8)>>2]<<3)+p|0;o=H[f+4>>2];g=H[f>>2]+1|0;o=g?o:o+1|0;H[f>>2]=g;H[f+4>>2]=o;c=(H[t+(c|12)>>2]<<3)+p|0;k=H[c+4>>2];f=H[c>>2]+1|0;k=f?k:k+1|0;H[c>>2]=f;H[c+4>>2]=k;a=a+4|0;n=n+4|0;if((j|0)!=(n|0)){continue}break}}f=b&3;if(!f){break Ne}while(1){c=(H[t+(a<<2)>>2]<<3)+p|0;g=H[c+4>>2];j=H[c>>2]+1|0;g=j?g:g+1|0;H[c>>2]=j;H[c+4>>2]=g;a=a+1|0;d=d+1|0;if((f|0)!=(d|0)){continue}break}}H[h+8>>2]=0;H[h+12>>2]=0;H[h+16>>2]=0;H[h+20>>2]=0;H[h+24>>2]=0;H[h+28>>2]=0;H[h+32>>2]=0;H[h>>2]=0;H[h+4>>2]=0;H[h+40>>2]=0;H[h+44>>2]=0;m=0;d=0;c=0;r=ha-32|0;ha=r;a=l-p>>3;Oe:{if((a|0)<=0){break Oe}l=a&3;Pe:{if(a-1>>>0<3){a=0;break Pe}C=a&-4;a=0;while(1){D=a|1;g=(D<<3)+p|0;f=H[g+4>>2];o=H[g>>2];B=a|2;j=(B<<3)+p|0;g=H[j+4>>2];n=H[j>>2];x=a|3;k=(x<<3)+p|0;j=H[k+4>>2];y=H[k>>2];w=c;c=(a<<3)+p|0;A=H[c+4>>2];k=H[c>>2];c=j|y?x:g|n?B:f|o?D:!(A|k)?w:a;w=n;x=o;o=i+A|0;n=k+u|0;o=n>>>0>>0?o+1|0:o;i=x+n|0;k=f+o|0;k=i>>>0>>0?k+1|0:k;o=i;i=w+i|0;f=g+k|0;f=i>>>0>>0?f+1|0:f;g=i;i=g+y|0;f=f+j|0;u=i;i=g>>>0>i>>>0?f+1|0:f;a=a+4|0;d=d+4|0;if((C|0)!=(d|0)){continue}break}}if(!l){break Oe}while(1){g=c;c=(a<<3)+p|0;f=H[c+4>>2];d=H[c>>2];c=!(f|d)?g:a;a=a+1|0;g=f+i|0;j=d+u|0;g=j>>>0>>0?g+1|0:g;u=j;i=g;m=m+1|0;if((l|0)!=(m|0)){continue}break}}f=c+1|0;H[h+12>>2]=f;d=H[h>>2];a=H[h+4>>2]-d>>3;Qe:{if(a>>>0>>0){jf(h,f-a|0);break Qe}if(a>>>0<=f>>>0){break Qe}H[h+4>>2]=d+(f<<3)}n=0;Re:{Se:{Te:{Ue:{if((c|0)>=0){v=+(u>>>0)+ +(i>>>0)*4294967296;i=H[h>>2];a=0;while(1){g=a<<3;j=g+p|0;d=H[j+4>>2];j=H[j>>2];k=(d|j)!=0;g=g+i|0;q=(+(j>>>0)+ +(d>>>0)*4294967296)/v*1048576+.5;Ve:{if(q<4294967296&q>=0){d=~~q>>>0;break Ve}d=0}d=d?d:k?1:d;H[g>>2]=d;n=d+n|0;d=(a|0)==(c|0);a=a+1|0;if(!d){continue}break}if((n|0)==1048576){break Ue}}H[r+16>>2]=0;H[r+8>>2]=0;H[r+12>>2]=0;l=0;if(f){if(f>>>0>=1073741824){break a}a=f<<2;l=hl(a);H[r+8>>2]=l;s=a+l|0;H[r+16>>2]=s;lk(l,0,a);H[r+12>>2]=s}a=0;We:{if((c|0)<0){break We}i=c+1|0;d=i&7;if(c>>>0>=7){i=i&-8;m=0;while(1){H[(a<<2)+l>>2]=a;f=a|1;H[(f<<2)+l>>2]=f;f=a|2;H[(f<<2)+l>>2]=f;f=a|3;H[(f<<2)+l>>2]=f;f=a|4;H[(f<<2)+l>>2]=f;f=a|5;H[(f<<2)+l>>2]=f;f=a|6;H[(f<<2)+l>>2]=f;f=a|7;H[(f<<2)+l>>2]=f;a=a+8|0;m=m+8|0;if((i|0)!=(m|0)){continue}break}}if(!d){break We}m=0;while(1){H[(a<<2)+l>>2]=a;a=a+1|0;m=m+1|0;if((d|0)!=(m|0)){continue}break}}H[r+24>>2]=h;a=s-l|0;d=a>>2;Xe:{Ye:{if((a|0)>=513){a=d;while(1){i=hl(a<<2);if(i){break Ye}i=a>>>0>1;a=a>>>1|0;if(i){continue}break}}mg(l,s,r+24|0,d,0,0);break Xe}mg(l,s,r+24|0,d,i,a);bl(i)}if((n|0)<1048576){a=H[h>>2]+(H[s-4>>2]<<3)|0;H[a>>2]=(H[a>>2]-n|0)- -1048576;a=0;break Te}if((c|0)>0){g=H[h>>2];m=n+-1048576|0;while(1){q=1048576/+(n|0);d=c;while(1){Ze:{_e:{i=g+(H[(d<<2)+l>>2]<<3)|0;a=H[i>>2];if(a>>>0>=2){k=i;o=a;v=T(q*+(a>>>0));$e:{if(P(v)<2147483648){f=~~v;break $e}f=-2147483648}i=(a|0)==(f|0)?1:a-f|0;a=(a|0)>(i|0)?i:a-1|0;a=(a|0)<(m|0)?a:m;H[k>>2]=o-a;m=m-a|0;n=n-a|0;if((n|0)!=1048576){break _e}n=1048576;break Ze}if((c|0)!=(d|0)){break Ze}a=1;break Te}a=(d|0)>1;d=d-1|0;if(a){continue}}break}a=0;if((m|0)>0){continue}break}break Te}a=0;if(n>>>0<1048577){break Te}while(1)continue}if((c|0)<0){break Re}break Se}d=H[r+8>>2];if(d){bl(d)}if((c|0)<0|a){break Re}}i=c+1|0;g=i&3;d=H[h>>2];n=0;m=0;a=0;if(c>>>0>=3){j=i&-4;l=0;while(1){f=m<<3;k=f+d|0;H[k+4>>2]=a;o=d+(f|8)|0;a=H[k>>2]+a|0;H[o+4>>2]=a;k=d+(f|16)|0;a=a+H[o>>2]|0;H[k+4>>2]=a;f=d+(f|24)|0;a=a+H[k>>2]|0;H[f+4>>2]=a;a=a+H[f>>2]|0;m=m+4|0;l=l+4|0;if((j|0)!=(l|0)){continue}break}}if(g){while(1){f=d+(m<<3)|0;H[f+4>>2]=a;m=m+1|0;a=H[f>>2]+a|0;n=n+1|0;if((g|0)!=(n|0)){continue}break}}if((a|0)!=1048576){break Re}a=0;q=0;af:{if((c|0)<0){break af}f=H[h>>2];if(c){c=i&-2;d=0;while(1){g=a<<3;j=H[g+f>>2];if(j){g=g+p|0;q=(+K[g>>2]+ +K[g+4>>2]*4294967296)*nk(+(j>>>0)*9.5367431640625e-7)+q}g=(a|1)<<3;j=H[g+f>>2];if(j){g=g+p|0;q=(+K[g>>2]+ +K[g+4>>2]*4294967296)*nk(+(j>>>0)*9.5367431640625e-7)+q}a=a+2|0;d=d+2|0;if((c|0)!=(d|0)){continue}break}}if(!(i&1)){break af}a=a<<3;c=H[a+f>>2];if(!c){break af}a=a+p|0;q=(+K[a>>2]+ +K[a+4>>2]*4294967296)*nk(+(c>>>0)*9.5367431640625e-7)+q}q=U(-q);bf:{if(q<0x10000000000000000&q>=0){c=P(q)>=1?~~(q>0?R(T(q*2.3283064365386963e-10),4294967295):U((q-+(~~q>>>0>>>0))*2.3283064365386963e-10))>>>0:0;a=~~q>>>0;break bf}c=0;a=0}H[h+16>>2]=a;H[h+20>>2]=c;of(h,e)}ha=r+32|0;d=H[h+16>>2];a=H[h+20>>2];c=H[e+4>>2]-H[e>>2]|0;H[h+40>>2]=c;H[h+44>>2]=0;f=a<<1|d>>>31;a=(d<<1)+39|0;o=a>>>0<39?f+1|0:f;a=c+((o&7)<<29|a>>>3)|0;f=o>>>3|0;f=a>>>0>>0?f+1|0:f;a=a+8|0;hi(e,a);a=H[e>>2];H[h+28>>2]=0;H[h+32>>2]=4194304;H[h+24>>2]=a+H[h+40>>2];if((b|0)>0){a=4194304;while(1){c=b-1|0;i=H[h>>2]+(H[t+(c<<2)>>2]<<3)|0;d=H[i>>2];f=d<<10;if(f>>>0<=a>>>0){while(1){g=H[h+28>>2];H[h+28>>2]=g+1;F[g+H[h+24>>2]|0]=a;a=H[h+32>>2]>>>8|0;H[h+32>>2]=a;if(a>>>0>=f>>>0){continue}break}}g=H[i+4>>2];i=(a>>>0)/(d>>>0)|0;a=g+((i<<20)+(a-N(d,i)|0)|0)|0;H[h+32>>2]=a;d=(b|0)>1;b=c;if(d){continue}break}}uf(h,e);a=H[h>>2];if(a){H[h+4>>2]=a;bl(a)}a=H[h+48>>2];if(a){bl(a)}ha=h- -64|0;break Me}p=1;break v;case 17:break E;default:break v}}t=a;l=0;n=0;d=0;s=0;u=0;i=0;h=ha+-64|0;ha=h;H[h+56>>2]=0;H[h+48>>2]=0;H[h+52>>2]=0;cf:{a=m+1|0;if(a){if(a>>>0>=536870912){break a}a=a<<3;p=hl(a);H[h+48>>2]=p;l=a+p|0;H[h+56>>2]=l;lk(p,0,(m<<3)+8|0);H[h+52>>2]=l}df:{if((b|0)<=0){break df}a=0;if(b-1>>>0>=3){k=b&-4;while(1){c=a<<2;g=(H[c+t>>2]<<3)+p|0;f=H[g+4>>2];j=H[g>>2]+1|0;f=j?f:f+1|0;H[g>>2]=j;H[g+4>>2]=f;f=(H[t+(c|4)>>2]<<3)+p|0;o=H[f+4>>2];g=H[f>>2]+1|0;o=g?o:o+1|0;H[f>>2]=g;H[f+4>>2]=o;f=(H[t+(c|8)>>2]<<3)+p|0;j=H[f+4>>2];g=H[f>>2]+1|0;j=g?j:j+1|0;H[f>>2]=g;H[f+4>>2]=j;c=(H[t+(c|12)>>2]<<3)+p|0;f=H[c+4>>2];g=H[c>>2]+1|0;f=g?f:f+1|0;H[c>>2]=g;H[c+4>>2]=f;a=a+4|0;n=n+4|0;if((k|0)!=(n|0)){continue}break}}f=b&3;if(!f){break df}while(1){c=(H[t+(a<<2)>>2]<<3)+p|0;o=H[c+4>>2];g=H[c>>2]+1|0;o=g?o:o+1|0;H[c>>2]=g;H[c+4>>2]=o;a=a+1|0;d=d+1|0;if((f|0)!=(d|0)){continue}break}}H[h+8>>2]=0;H[h+12>>2]=0;H[h+16>>2]=0;H[h+20>>2]=0;H[h+24>>2]=0;H[h+28>>2]=0;H[h+32>>2]=0;H[h>>2]=0;H[h+4>>2]=0;H[h+40>>2]=0;H[h+44>>2]=0;m=0;d=0;c=0;r=ha-32|0;ha=r;a=l-p>>3;ef:{if((a|0)<=0){break ef}l=a&3;ff:{if(a-1>>>0<3){a=0;break ff}D=a&-4;a=0;while(1){o=a|1;g=(o<<3)+p|0;f=H[g+4>>2];n=H[g>>2];B=a|2;j=(B<<3)+p|0;g=H[j+4>>2];y=H[j>>2];x=a|3;k=(x<<3)+p|0;j=H[k+4>>2];A=H[k>>2];w=c;c=(a<<3)+p|0;C=H[c+4>>2];k=H[c>>2];c=j|A?x:g|y?B:f|n?o:!(C|k)?w:a;o=j;w=n;j=i+C|0;n=k+u|0;j=n>>>0>>0?j+1|0:j;k=n;i=w+k|0;f=f+j|0;f=i>>>0>>0?f+1|0:f;j=i;i=i+y|0;f=f+g|0;f=i>>>0>>0?f+1|0:f;g=i;i=g+A|0;k=f+o|0;u=i;i=g>>>0>i>>>0?k+1|0:k;a=a+4|0;d=d+4|0;if((D|0)!=(d|0)){continue}break}}if(!l){break ef}while(1){g=c;c=(a<<3)+p|0;f=H[c+4>>2];d=H[c>>2];c=!(f|d)?g:a;a=a+1|0;o=f+i|0;g=d+u|0;o=g>>>0>>0?o+1|0:o;u=g;i=o;m=m+1|0;if((l|0)!=(m|0)){continue}break}}f=c+1|0;H[h+12>>2]=f;d=H[h>>2];a=H[h+4>>2]-d>>3;gf:{if(a>>>0>>0){jf(h,f-a|0);break gf}if(a>>>0<=f>>>0){break gf}H[h+4>>2]=d+(f<<3)}n=0;hf:{jf:{kf:{lf:{if((c|0)>=0){v=+(u>>>0)+ +(i>>>0)*4294967296;i=H[h>>2];a=0;while(1){g=a<<3;j=g+p|0;d=H[j+4>>2];j=H[j>>2];k=(d|j)!=0;g=g+i|0;q=(+(j>>>0)+ +(d>>>0)*4294967296)/v*1048576+.5;mf:{if(q<4294967296&q>=0){d=~~q>>>0;break mf}d=0}d=d?d:k?1:d;H[g>>2]=d;n=d+n|0;d=(a|0)==(c|0);a=a+1|0;if(!d){continue}break}if((n|0)==1048576){break lf}}H[r+16>>2]=0;H[r+8>>2]=0;H[r+12>>2]=0;l=0;if(f){if(f>>>0>=1073741824){break a}a=f<<2;l=hl(a);H[r+8>>2]=l;s=a+l|0;H[r+16>>2]=s;lk(l,0,a);H[r+12>>2]=s}a=0;nf:{if((c|0)<0){break nf}i=c+1|0;d=i&7;if(c>>>0>=7){i=i&-8;m=0;while(1){H[(a<<2)+l>>2]=a;f=a|1;H[(f<<2)+l>>2]=f;f=a|2;H[(f<<2)+l>>2]=f;f=a|3;H[(f<<2)+l>>2]=f;f=a|4;H[(f<<2)+l>>2]=f;f=a|5;H[(f<<2)+l>>2]=f;f=a|6;H[(f<<2)+l>>2]=f;f=a|7;H[(f<<2)+l>>2]=f;a=a+8|0;m=m+8|0;if((i|0)!=(m|0)){continue}break}}if(!d){break nf}m=0;while(1){H[(a<<2)+l>>2]=a;a=a+1|0;m=m+1|0;if((d|0)!=(m|0)){continue}break}}H[r+24>>2]=h;a=s-l|0;d=a>>2;of:{pf:{if((a|0)>=513){a=d;while(1){i=hl(a<<2);if(i){break pf}i=a>>>0>1;a=a>>>1|0;if(i){continue}break}}pg(l,s,r+24|0,d,0,0);break of}pg(l,s,r+24|0,d,i,a);bl(i)}if((n|0)<1048576){a=H[h>>2]+(H[s-4>>2]<<3)|0;H[a>>2]=(H[a>>2]-n|0)- -1048576;a=0;break kf}if((c|0)>0){g=H[h>>2];m=n+-1048576|0;while(1){q=1048576/+(n|0);d=c;while(1){qf:{rf:{i=g+(H[(d<<2)+l>>2]<<3)|0;a=H[i>>2];if(a>>>0>=2){k=i;o=a;v=T(q*+(a>>>0));sf:{if(P(v)<2147483648){f=~~v;break sf}f=-2147483648}i=(a|0)==(f|0)?1:a-f|0;a=(a|0)>(i|0)?i:a-1|0;a=(a|0)<(m|0)?a:m;H[k>>2]=o-a;m=m-a|0;n=n-a|0;if((n|0)!=1048576){break rf}n=1048576;break qf}if((c|0)!=(d|0)){break qf}a=1;break kf}a=(d|0)>1;d=d-1|0;if(a){continue}}break}a=0;if((m|0)>0){continue}break}break kf}a=0;if(n>>>0<1048577){break kf}while(1)continue}if((c|0)<0){break hf}break jf}d=H[r+8>>2];if(d){bl(d)}if((c|0)<0|a){break hf}}i=c+1|0;g=i&3;d=H[h>>2];n=0;m=0;a=0;if(c>>>0>=3){j=i&-4;l=0;while(1){f=m<<3;k=f+d|0;H[k+4>>2]=a;o=d+(f|8)|0;a=H[k>>2]+a|0;H[o+4>>2]=a;k=d+(f|16)|0;a=a+H[o>>2]|0;H[k+4>>2]=a;f=d+(f|24)|0;a=a+H[k>>2]|0;H[f+4>>2]=a;a=a+H[f>>2]|0;m=m+4|0;l=l+4|0;if((j|0)!=(l|0)){continue}break}}if(g){while(1){f=d+(m<<3)|0;H[f+4>>2]=a;m=m+1|0;a=H[f>>2]+a|0;n=n+1|0;if((g|0)!=(n|0)){continue}break}}if((a|0)!=1048576){break hf}a=0;q=0;tf:{if((c|0)<0){break tf}f=H[h>>2];if(c){c=i&-2;d=0;while(1){g=a<<3;j=H[g+f>>2];if(j){g=g+p|0;q=(+K[g>>2]+ +K[g+4>>2]*4294967296)*nk(+(j>>>0)*9.5367431640625e-7)+q}g=(a|1)<<3;j=H[g+f>>2];if(j){g=g+p|0;q=(+K[g>>2]+ +K[g+4>>2]*4294967296)*nk(+(j>>>0)*9.5367431640625e-7)+q}a=a+2|0;d=d+2|0;if((c|0)!=(d|0)){continue}break}}if(!(i&1)){break tf}a=a<<3;c=H[a+f>>2];if(!c){break tf}a=a+p|0;q=(+K[a>>2]+ +K[a+4>>2]*4294967296)*nk(+(c>>>0)*9.5367431640625e-7)+q}q=U(-q);uf:{if(q<0x10000000000000000&q>=0){c=P(q)>=1?~~(q>0?R(T(q*2.3283064365386963e-10),4294967295):U((q-+(~~q>>>0>>>0))*2.3283064365386963e-10))>>>0:0;a=~~q>>>0;break uf}c=0;a=0}H[h+16>>2]=a;H[h+20>>2]=c;of(h,e)}ha=r+32|0;d=H[h+16>>2];a=H[h+20>>2];c=H[e+4>>2]-H[e>>2]|0;H[h+40>>2]=c;H[h+44>>2]=0;f=a<<1|d>>>31;a=(d<<1)+39|0;j=a>>>0<39?f+1|0:f;a=c+((j&7)<<29|a>>>3)|0;k=j>>>3|0;k=a>>>0>>0?k+1|0:k;a=a+8|0;hi(e,a);a=H[e>>2];H[h+28>>2]=0;H[h+32>>2]=4194304;H[h+24>>2]=a+H[h+40>>2];if((b|0)>0){a=4194304;while(1){c=b-1|0;i=H[h>>2]+(H[t+(c<<2)>>2]<<3)|0;d=H[i>>2];f=d<<10;if(f>>>0<=a>>>0){while(1){g=H[h+28>>2];H[h+28>>2]=g+1;F[g+H[h+24>>2]|0]=a;a=H[h+32>>2]>>>8|0;H[h+32>>2]=a;if(a>>>0>=f>>>0){continue}break}}g=H[i+4>>2];i=(a>>>0)/(d>>>0)|0;a=g+((i<<20)+(a-N(d,i)|0)|0)|0;H[h+32>>2]=a;d=(b|0)>1;b=c;if(d){continue}break}}uf(h,e);a=H[h>>2];if(a){H[h+4>>2]=a;bl(a)}a=H[h+48>>2];if(a){bl(a)}ha=h- -64|0;break cf}p=1}ha=G+32|0;l=p}if(!z){break b}H[E+36>>2]=z;bl(z)}ha=E+48|0;return l}Ka();X()}function Pb(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=O(0),D=0,E=0,R=0,S=0,T=0,U=0,V=0,W=0,Y=0,_=0,$=0,aa=0,ba=0,ca=0,da=0,ea=0,fa=0,ga=0,ia=0,ja=0;d=ha-1696|0;ha=d;c=10-Qb(H[H[a+28>>2]+48>>2])|0;h=(c|0)<6?c:6;c=H[a+72>>2];F[d+1695|0]=(h&255)==6?(c|0)>15?5:h:h;h=H[b+20>>2];if(!H[b+16>>2]&(h|0)<=0|(h|0)<0){Da(b,H[b+4>>2],d+1695|0,d+1696|0);c=H[a+72>>2]}i=H[H[H[a+28>>2]+4>>2]+80>>2];H[d+1684>>2]=0;H[d+1676>>2]=0;H[d+1680>>2]=0;H[d+1664>>2]=i;H[d+1668>>2]=c;H[d+1672>>2]=c<<2;a:{e=N(c,i);if(e){if(e>>>0>=1073741824){break a}h=e<<2;g=hl(h);H[d+1676>>2]=g;j=g+h|0;H[d+1684>>2]=j;lk(g,0,h);H[d+1680>>2]=j}H[d+1688>>2]=g;h=H[a+4>>2];b:{if((h|0)!=H[a+8>>2]){while(1){g=H[H[H[H[a+28>>2]+4>>2]+8>>2]+(H[(l<<2)+h>>2]<<2)>>2];c=H[g+28>>2];if(c-1>>>0>=6){if((c|0)!=9){break b}g=H[H[a+60>>2]+(k<<2)>>2];if(!g){break b}k=k+1|0;c=H[g+28>>2]}c:{d:{e:{f:{switch(c-1|0){case 5:if(!i){break c}h=0;while(1){e=(H[d+1688>>2]+(o<<2)|0)+(N(H[d+1668>>2],h)<<2)|0;f=H[H[g>>2]>>2];c=H[g+48>>2]+Sl(H[g+40>>2],H[g+44>>2],I[g+84|0]?h:H[H[g+68>>2]+(h<<2)>>2],0)|0;jk(e,f+c|0,F[g+24|0]<<2);h=h+1|0;if((i|0)!=(h|0)){continue}break};break c;case 0:case 2:case 4:c=F[g+24|0];H[d+464>>2]=0;H[d+456>>2]=0;H[d+460>>2]=0;g:{if(!c){h=0;H[d+1648>>2]=0;break g}if((c|0)<0){break a}c=c<<2;e=hl(c);H[d+456>>2]=e;H[d+464>>2]=c+e;h=0;lk(e,0,c);c=F[g+24|0];H[d+1656>>2]=0;H[d+1648>>2]=0;H[d+1652>>2]=0;if(!c){break g}if((c|0)<0){break a}c=c<<2;h=hl(c);H[d+1648>>2]=h;lk(h,0,c)}if(!i){break d}c=0;while(1){m=H[d+456>>2];Mb(g,I[g+84|0]?c:H[H[g+68>>2]+(c<<2)>>2],F[g+24|0],m);j=F[g+24|0];h:{if((j|0)<=0){e=H[d+1648>>2];break h}p=H[a+48>>2];h=0;e=H[d+1648>>2];if((j|0)!=1){z=j&-2;f=0;while(1){y=h<<2;H[y+e>>2]=H[m+y>>2]-H[p+(h+q<<2)>>2];y=h|1;v=y<<2;H[v+e>>2]=H[m+v>>2]-H[p+(q+y<<2)>>2];h=h+2|0;f=f+2|0;if((z|0)!=(f|0)){continue}break}}if(!(j&1)){break h}f=h<<2;H[f+e>>2]=H[f+m>>2]-H[p+(h+q<<2)>>2]}jk((H[d+1688>>2]+(o<<2)|0)+(N(H[d+1668>>2],c)<<2)|0,e,j<<2);c=c+1|0;if((i|0)!=(c|0)){continue}break};break e;default:break f}}c=F[g+24|0];h=0;H[d+464>>2]=0;H[d+456>>2]=0;H[d+460>>2]=0;if(c){if((c|0)<0){break a}c=c<<2;h=hl(c);H[d+456>>2]=h;lk(h,0,c)}if(i){h=0;while(1){c=I[g+84|0]?h:H[H[g+68>>2]+(h<<2)>>2];j=F[g+24|0];m=0;p=H[d+456>>2];i:{if(!p){break i}j:{k:{switch(H[g+28>>2]-1|0){case 0:e=F[g+24|0];if((((e|0)<(j|0)?e:j)|0)>0){e=H[g>>2];f=H[e>>2];c=H[g+48>>2]+Sl(H[g+40>>2],H[g+44>>2],c,0)|0;f=f+c|0;c=H[e+4>>2];while(1){if(c>>>0<=f>>>0){break i}H[p+(m<<2)>>2]=F[f|0];f=f+1|0;m=m+1|0;e=F[g+24|0];if((m|0)<(((e|0)<(j|0)?e:j)|0)){continue}break}}if((e|0)>=(j|0)){break i}c=j-e|0;e=p+(e<<2)|0;break j;case 1:e=F[g+24|0];if((((e|0)<(j|0)?e:j)|0)>0){e=H[g>>2];f=H[e>>2];c=H[g+48>>2]+Sl(H[g+40>>2],H[g+44>>2],c,0)|0;f=f+c|0;c=H[e+4>>2];while(1){if(c>>>0<=f>>>0){break i}H[p+(m<<2)>>2]=I[f|0];f=f+1|0;m=m+1|0;e=F[g+24|0];if((m|0)<(((e|0)<(j|0)?e:j)|0)){continue}break}}if((e|0)>=(j|0)){break i}c=j-e|0;e=p+(e<<2)|0;break j;case 2:e=F[g+24|0];if((((e|0)<(j|0)?e:j)|0)>0){e=H[g>>2];f=H[e>>2];c=H[g+48>>2]+Sl(H[g+40>>2],H[g+44>>2],c,0)|0;f=f+c|0;c=H[e+4>>2];while(1){if(c>>>0<=f>>>0){break i}H[p+(m<<2)>>2]=G[f>>1];f=f+2|0;m=m+1|0;e=F[g+24|0];if((m|0)<(((e|0)<(j|0)?e:j)|0)){continue}break}}if((e|0)>=(j|0)){break i}c=j-e|0;e=p+(e<<2)|0;break j;case 3:e=F[g+24|0];if((((e|0)<(j|0)?e:j)|0)>0){e=H[g>>2];f=H[e>>2];c=H[g+48>>2]+Sl(H[g+40>>2],H[g+44>>2],c,0)|0;f=f+c|0;c=H[e+4>>2];while(1){if(c>>>0<=f>>>0){break i}H[p+(m<<2)>>2]=J[f>>1];f=f+2|0;m=m+1|0;e=F[g+24|0];if((m|0)<(((e|0)<(j|0)?e:j)|0)){continue}break}}if((e|0)>=(j|0)){break i}c=j-e|0;e=p+(e<<2)|0;break j;case 4:e=F[g+24|0];if((((e|0)<(j|0)?e:j)|0)>0){e=H[g>>2];f=H[e>>2];c=H[g+48>>2]+Sl(H[g+40>>2],H[g+44>>2],c,0)|0;f=f+c|0;c=H[e+4>>2];while(1){if(c>>>0<=f>>>0){break i}H[p+(m<<2)>>2]=H[f>>2];f=f+4|0;m=m+1|0;e=F[g+24|0];if((m|0)<(((e|0)<(j|0)?e:j)|0)){continue}break}}if((e|0)>=(j|0)){break i}c=j-e|0;e=p+(e<<2)|0;break j;case 5:e=F[g+24|0];if((((e|0)<(j|0)?e:j)|0)>0){e=H[g>>2];f=H[e>>2];c=H[g+48>>2]+Sl(H[g+40>>2],H[g+44>>2],c,0)|0;f=f+c|0;c=H[e+4>>2];while(1){if(c>>>0<=f>>>0){break i}H[p+(m<<2)>>2]=H[f>>2];f=f+4|0;m=m+1|0;e=F[g+24|0];if((m|0)<(((e|0)<(j|0)?e:j)|0)){continue}break}}if((e|0)>=(j|0)){break i}c=j-e|0;e=p+(e<<2)|0;break j;case 6:e=F[g+24|0];if((((e|0)<(j|0)?e:j)|0)>0){e=H[g>>2];f=H[e>>2];c=H[g+48>>2]+Sl(H[g+40>>2],H[g+44>>2],c,0)|0;f=f+c|0;c=H[e+4>>2];while(1){if(c>>>0<=f>>>0){break i}e=H[f>>2];if(H[f+4>>2]){break i}H[p+(m<<2)>>2]=e;f=f+8|0;m=m+1|0;e=F[g+24|0];if((m|0)<(((e|0)<(j|0)?e:j)|0)){continue}break}}if((e|0)>=(j|0)){break i}c=j-e|0;e=p+(e<<2)|0;break j;case 7:e=F[g+24|0];if((((e|0)<(j|0)?e:j)|0)>0){e=H[g>>2];f=H[e>>2];c=H[g+48>>2]+Sl(H[g+40>>2],H[g+44>>2],c,0)|0;f=f+c|0;c=H[e+4>>2];while(1){if(c>>>0<=f>>>0){break i}e=H[f>>2];if(H[f+4>>2]){break i}H[p+(m<<2)>>2]=e;f=f+8|0;m=m+1|0;e=F[g+24|0];if((m|0)<(((e|0)<(j|0)?e:j)|0)){continue}break}}if((e|0)>=(j|0)){break i}c=j-e|0;e=p+(e<<2)|0;break j;case 8:e=F[g+24|0];if((((e|0)<(j|0)?e:j)|0)>0){e=H[g>>2];f=H[e>>2];c=H[g+48>>2]+Sl(H[g+40>>2],H[g+44>>2],c,0)|0;f=f+c|0;z=H[e+4>>2];while(1){if(f>>>0>=z>>>0){break i}C=L[f>>2];if(C>O(4294967296)|C=O(0)){c=~~C>>>0}else{c=0}H[e>>2]=c;f=f+4|0;m=m+1|0;e=F[g+24|0];if((m|0)<(((e|0)<(j|0)?e:j)|0)){continue}break}}if((e|0)>=(j|0)){break i}c=j-e|0;e=p+(e<<2)|0;break j;case 9:e=F[g+24|0];if((((e|0)<(j|0)?e:j)|0)>0){e=H[g>>2];f=H[e>>2];c=H[g+48>>2]+Sl(H[g+40>>2],H[g+44>>2],c,0)|0;f=f+c|0;z=H[e+4>>2];while(1){if(f>>>0>=z>>>0){break i}D=M[f>>3];if(D>4294967295|D<0|(P(D)==Z|D!=D)){break i}e=p+(m<<2)|0;if(D<4294967296&D>=0){c=~~D>>>0}else{c=0}H[e>>2]=c;f=f+8|0;m=m+1|0;e=F[g+24|0];if((m|0)<(((e|0)<(j|0)?e:j)|0)){continue}break}}if((e|0)>=(j|0)){break i}c=j-e|0;e=p+(e<<2)|0;break j;case 10:break k;default:break i}}e=F[g+24|0];if((((e|0)<(j|0)?e:j)|0)>0){e=H[g>>2];f=H[e>>2];c=H[g+48>>2]+Sl(H[g+40>>2],H[g+44>>2],c,0)|0;f=f+c|0;c=H[e+4>>2];while(1){if(c>>>0<=f>>>0){break i}H[p+(m<<2)>>2]=I[f|0];f=f+1|0;m=m+1|0;e=F[g+24|0];if((m|0)<(((e|0)<(j|0)?e:j)|0)){continue}break}}if((e|0)>=(j|0)){break i}c=j-e|0;e=p+(e<<2)|0}lk(e,0,c<<2)}jk((H[d+1688>>2]+(o<<2)|0)+(N(H[d+1668>>2],h)<<2)|0,p,F[g+24|0]<<2);h=h+1|0;if((i|0)!=(h|0)){continue}break}h=H[d+456>>2]}if(!h){break c}bl(h);break c}h=H[d+1648>>2]}c=F[g+24|0];if(h){bl(h)}h=H[d+456>>2];if(h){bl(h)}q=c+q|0}o=F[g+24|0]+o|0;l=l+1|0;h=H[a+4>>2];if(l>>>0>2]-h>>2>>>0){continue}break}c=H[a+72>>2];e=N(i,c);g=H[d+1688>>2]}h=0;l:{if((e|0)<=0){break l}l=e&1;m:{if((e|0)==1){e=0;break m}j=e&-2;e=0;a=0;while(1){f=e<<2;m=H[f+g>>2];if(m){m=Q(m);h=(m^31)<(h|0)?h:32-m|0}f=H[(f|4)+g>>2];if(f){f=Q(f);h=(f^31)<(h|0)?h:32-f|0}e=e+2|0;a=a+2|0;if((j|0)!=(a|0)){continue}break}}if(!l){break l}a=H[(e<<2)+g>>2];if(!a){break l}a=Q(a);h=(a^31)<(h|0)?h:32-a|0}n:{o:{switch(I[d+1695|0]){case 6:o=Sb(d+456|0,c);a=H[d+1668>>2];H[d+448>>2]=a;H[d+432>>2]=a;H[d+32>>2]=a;H[d+16>>2]=a;H[d+440>>2]=0;H[d+424>>2]=H[d+1664>>2];a=d+1664|0;H[d+444>>2]=a;c=H[d+444>>2];H[d+24>>2]=H[d+440>>2];H[d+28>>2]=c;H[d+428>>2]=a;H[d+1648>>2]=h;a=H[d+428>>2];H[d+8>>2]=H[d+424>>2];H[d+12>>2]=a;q=ha-32|0;ha=q;H[o>>2]=H[d+1648>>2];a=H[d+8>>2]-H[d+24>>2]|0;H[o+4>>2]=a;c=H[b+20>>2];if(!H[b+16>>2]&(c|0)<=0|(c|0)<0){a=o+4|0;Da(b,H[b+4>>2],o,a);c=H[b+20>>2];if(!H[b+16>>2]&(c|0)<=0|(c|0)<0){Da(b,H[b+4>>2],a,o+8|0)}a=H[a>>2]}if(a){V=o+12|0;_b(V);W=o+1068|0;a=W;H[a+12>>2]=0;H[a+16>>2]=0;H[a+4>>2]=H[a>>2];Y=o+1088|0;a=Y;H[a+12>>2]=0;H[a+16>>2]=0;H[a+4>>2]=H[a>>2];_=o+1108|0;a=_;H[a+12>>2]=0;H[a+16>>2]=0;H[a+4>>2]=H[a>>2];H[q+24>>2]=H[d+32>>2];a=H[d+28>>2];H[q+16>>2]=H[d+24>>2];H[q+20>>2]=a;H[q+8>>2]=H[d+16>>2];a=H[d+12>>2];H[q>>2]=H[d+8>>2];H[q+4>>2]=a;c=0;i=ha+-64|0;ha=i;k=H[o+8>>2];H[i+48>>2]=0;H[i+40>>2]=0;H[i+44>>2]=0;if(k){if(k>>>0>=1073741824){break a}a=k<<2;c=hl(a);H[i+40>>2]=c;n=a+c|0;H[i+48>>2]=n;lk(c,0,a);H[i+44>>2]=n}a=H[o+1164>>2];h=H[a>>2];if(h){H[a+4>>2]=h;bl(h);H[a+8>>2]=0;H[a>>2]=0;H[a+4>>2]=0;k=H[o+8>>2];n=H[i+44>>2];c=H[i+40>>2]}H[a+4>>2]=n;H[a>>2]=c;H[a+8>>2]=H[i+48>>2];c=0;H[i+48>>2]=0;H[i+40>>2]=0;H[i+44>>2]=0;a=0;p:{if(k){if(k>>>0>=1073741824){break a}h=k<<2;a=hl(h);H[i+40>>2]=a;c=a+h|0;H[i+48>>2]=c;lk(a,0,h);H[i+44>>2]=c}h=H[o+1176>>2];g=H[h>>2];if(g){H[h+4>>2]=g;bl(g);H[h+8>>2]=0;H[h>>2]=0;H[h+4>>2]=0;c=H[i+44>>2];a=H[i+40>>2]}H[h+4>>2]=c;H[h>>2]=a;H[h+8>>2]=H[i+48>>2];e=H[q+20>>2];m=H[q+24>>2];j=H[q+4>>2];p=H[q+8>>2];c=H[q>>2];h=H[q+16>>2];H[i+56>>2]=0;H[i+60>>2]=0;H[i+48>>2]=0;H[i+52>>2]=0;H[i+40>>2]=0;H[i+44>>2]=0;ec(i+40|0);a=H[i+56>>2]+H[i+60>>2]|0;g=(a>>>0)/113|0;a=H[H[i+44>>2]+(g<<2)>>2]+N(a-N(g,113)|0,36)|0;H[a+32>>2]=0;H[a+28>>2]=c-h;H[a+24>>2]=0;H[a+16>>2]=j;H[a+20>>2]=p;H[a+12>>2]=c;H[a+4>>2]=e;H[a+8>>2]=m;H[a>>2]=h;k=H[i+60>>2]+1|0;H[i+60>>2]=k;if(k){y=e;z=m;ba=m&-4;$=m&3;ca=o+1068|0;aa=o+12|0;da=o+1108|0;ea=m-1>>>0<3;while(1){a=H[i+44>>2];l=H[i+56>>2];f=k-1|0;c=l+f|0;h=(c>>>0)/113|0;c=H[a+(h<<2)>>2]+N(c-N(h,113)|0,36)|0;T=H[c+32>>2];g=H[c+12>>2];h=H[c>>2];H[i+60>>2]=f;c=H[i+48>>2];if((((a|0)==(c|0)?0:N(c-a>>2,113)-1|0)-(k+l|0)|0)+1>>>0>=226){bl(H[c-4>>2]);H[i+48>>2]=H[i+48>>2]-4}H[q+16>>2]=h;H[q>>2]=g;a=H[o+1164>>2];c=H[o+1176>>2];H[i+32>>2]=H[q+24>>2];l=H[q+20>>2];H[i+24>>2]=H[q+16>>2];H[i+28>>2]=l;H[i+16>>2]=H[q+8>>2];l=H[q+4>>2];H[i+8>>2]=H[q>>2];H[i+12>>2]=l;U=N(T,12);v=a+U|0;k=v;R=c+U|0;a=R;u=0;l=H[o+8>>2];q:{r:{s:{t:{t=H[i+8>>2];f=H[i+24>>2];r=t-f|0;if(r>>>0>=64){if(!l){k=0;break r}B=H[o+1140>>2];S=H[a>>2];s=H[o+1128>>2];if((f|0)!=(t|0)){break t}l=0;while(1){a=l<<2;c=a+s|0;H[c>>2]=0;k=a+B|0;f=H[o>>2];a=H[a+S>>2];H[k>>2]=f-a;if((a|0)!=(f|0)){k=c;a=H[c>>2];c=r-a|0;H[k>>2]=a>>>0>>0?c:a}c=H[o+8>>2];l=l+1|0;if(c>>>0>l>>>0){continue}break}break s}k=0;if(l>>>0<2){break q}f=l-1|0;n=f&3;c=H[a>>2];a=0;u:{if(l-2>>>0<3){l=1;break u}u=f&-4;l=1;f=0;while(1){t=l+3|0;r=l+2|0;w=l+1|0;k=K[c+(k<<2)>>2]>K[c+(l<<2)>>2]?l:k;k=K[c+(k<<2)>>2]>K[c+(w<<2)>>2]?w:k;k=K[c+(k<<2)>>2]>K[c+(r<<2)>>2]?r:k;k=K[c+(k<<2)>>2]>K[c+(t<<2)>>2]?t:k;l=l+4|0;f=f+4|0;if((u|0)!=(f|0)){continue}break}}if(!n){break q}while(1){k=K[c+(k<<2)>>2]>K[c+(l<<2)>>2]?l:k;l=l+1|0;a=a+1|0;if((n|0)!=(a|0)){continue}break}break q}E=H[i+28>>2];fa=H[k>>2];ga=r&1;k=f+1|0;ia=(k|0)!=(t|0);x=H[i+32>>2];ja=N(x,f)<<2;while(1){a=u<<2;n=s+a|0;H[n>>2]=0;c=H[o>>2];l=H[a+S>>2];w=c-l|0;H[a+B>>2]=w;if((c|0)!=(l|0)){w=H[a+fa>>2]+(1<>2]+a|0;c=H[n>>2];if(ga){c=(w>>>0>K[A+ja>>2])+c|0;H[n>>2]=c;a=k}else{a=f}l=a;if(ia){while(1){a=(w>>>0>K[A+(N(l,x)<<2)>>2])+c|0;H[n>>2]=a;c=a+(w>>>0>K[A+(N(x,l+1|0)<<2)>>2])|0;H[n>>2]=c;l=l+2|0;if((t|0)!=(l|0)){continue}break}}a=r-c|0;H[n>>2]=a>>>0>c>>>0?a:c}c=H[o+8>>2];u=u+1|0;if(c>>>0>u>>>0){continue}break}}if(!c){k=0;break r}r=c&1;n=H[o+1128>>2];u=H[o+1140>>2];v:{if((c|0)==1){l=0;c=0;k=0;break v}w=c&-2;l=0;c=0;k=0;f=0;while(1){a=l<<2;w:{if(!H[a+u>>2]){a=c;break w}t=H[a+n>>2];a=c>>>0>t>>>0?c:t;k=c>>>0>>0?l:k}A=l|1;c=A<<2;x:{if(!H[c+u>>2]){c=a;break x}t=H[c+n>>2];c=a>>>0>t>>>0?a:t;k=a>>>0>>0?A:k}l=l+2|0;f=f+2|0;if((w|0)!=(f|0)){continue}break}}if(!r){break r}a=l<<2;if(!H[a+u>>2]){break r}k=K[a+n>>2]>c>>>0?l:k}gc(o+1088|0,4,k)}c=H[o>>2];l=k<<2;f=H[l+H[R>>2]>>2];y:{z:{if((c|0)==(f|0)){break z}A:{B:{w=g-h|0;if(w>>>0<=2){l=H[o+1152>>2];H[l>>2]=k;c=1;a=H[o+8>>2];if(a>>>0>1){break B}break A}a=H[o+1164>>2];S=T+1|0;A=N(S,12);n=a+A|0;if((n|0)!=(v|0)){Sa(n,H[v>>2],H[v+4>>2]);a=H[o+1164>>2]}a=l+H[a+A>>2]|0;v=H[a>>2]+(1<>2]=v;a=h;C:{if((g|0)==(a|0)){break C}R=H[y+24>>2];c=h;a=g;if(!z){if(v>>>0>K[l+R>>2]){break C}while(1){a=a-1|0;if((c|0)==(a|0)){a=c;break C}if(v>>>0<=K[(l+H[j+24>>2]|0)+(N(a,p)<<2)>>2]){continue}c=c+1|0;if((c|0)!=(a|0)){continue}break}break C}while(1){u=R+(N(c,z)<<2)|0;if(v>>>0>K[u+l>>2]){c=c+1|0;if((c|0)!=(a|0)){continue}break C}while(1){a=a-1|0;if((c|0)==(a|0)){a=c;break C}t=H[j+24>>2]+(N(a,p)<<2)|0;if(v>>>0<=K[t+l>>2]){continue}break}f=0;n=0;B=0;if(!ea){while(1){r=n<<2;s=r+u|0;x=H[s>>2];E=s;s=t+r|0;H[E>>2]=H[s>>2];H[s>>2]=x;s=r|4;x=s+u|0;E=H[x>>2];s=t+s|0;H[x>>2]=H[s>>2];H[s>>2]=E;s=r|8;x=s+u|0;E=H[x>>2];s=t+s|0;H[x>>2]=H[s>>2];H[s>>2]=E;r=r|12;s=r+u|0;x=H[s>>2];r=t+r|0;H[s>>2]=H[r>>2];H[r>>2]=x;n=n+4|0;B=B+4|0;if((ba|0)!=(B|0)){continue}break}}if($){while(1){r=n<<2;B=r+u|0;s=H[B>>2];r=t+r|0;H[B>>2]=H[r>>2];H[r>>2]=s;n=n+1|0;f=f+1|0;if(($|0)!=(f|0)){continue}break}}c=c+1|0;if((c|0)!=(a|0)){continue}break}}f=a-h|0;v=g-a|0;if((f|0)!=(v|0)){fc(da,f>>>0>>0)}c=Q(w);u=c^31;n=w>>>1|0;D:{if(f>>>0>>0){if(!u){break D}t=n-f|0;c=1<<30-c;n=0;while(1){Ce((n<<5)+aa|0,(c&t)!=0);c=c>>>1|0;n=n+1|0;if((u|0)!=(n|0)){continue}break}break D}if(!u){break D}t=n-v|0;c=1<<30-c;n=0;while(1){Ce((n<<5)+aa|0,(c&t)!=0);c=c>>>1|0;n=n+1|0;if((u|0)!=(n|0)){continue}break}}s=l;c=H[o+1176>>2];l=c+U|0;n=H[l>>2];u=s+n|0;H[u>>2]=H[u>>2]+1;Sa(c+A|0,n,H[l+4>>2]);if((a|0)!=(h|0)){n=H[i+60>>2]+H[i+56>>2]|0;l=H[i+48>>2];c=H[i+44>>2];if((n|0)==(((c|0)==(l|0)?0:N(l-c>>2,113)-1|0)|0)){ec(i+40|0);n=H[i+56>>2]+H[i+60>>2]|0;l=H[i+44>>2]}else{l=c}c=(n>>>0)/113|0;c=H[l+(c<<2)>>2]+N(n-N(c,113)|0,36)|0;H[c+32>>2]=T;H[c+28>>2]=f;H[c+24>>2]=k;H[c+16>>2]=y;H[c+12>>2]=a;H[c+4>>2]=e;H[c+8>>2]=m;H[c>>2]=h;H[c+20>>2]=z;H[i+60>>2]=H[i+60>>2]+1}if((a|0)==(g|0)){break z}n=H[i+60>>2]+H[i+56>>2]|0;h=H[i+48>>2];c=H[i+44>>2];if((n|0)==(((c|0)==(h|0)?0:N(h-c>>2,113)-1|0)|0)){ec(i+40|0);n=H[i+56>>2]+H[i+60>>2]|0;h=H[i+44>>2]}else{h=c}c=(n>>>0)/113|0;c=H[h+(c<<2)>>2]+N(n-N(c,113)|0,36)|0;H[c+32>>2]=S;H[c+28>>2]=v;H[c+24>>2]=k;H[c+16>>2]=j;H[c+20>>2]=p;H[c+12>>2]=g;H[c+4>>2]=y;H[c>>2]=a;H[c+8>>2]=z;k=H[i+60>>2]+1|0;H[i+60>>2]=k;break y}while(1){k=(a-1|0)==(k|0)?0:k+1|0;H[l+(c<<2)>>2]=k;a=H[o+8>>2];c=c+1|0;if(a>>>0>c>>>0){continue}break}}n=0;c=a;if((g|0)==(h|0)){break z}while(1){E:{if(!c){c=0;break E}g=H[y+24>>2]+(N(H[y+4>>2],h+n|0)<<2)|0;k=0;while(1){c=H[o>>2];l=H[H[o+1152>>2]+(k<<2)>>2]<<2;f=H[l+H[R>>2]>>2];if((c|0)!=(f|0)){gc(ca,c-f|0,H[g+l>>2]);a=H[o+8>>2]}c=a;k=k+1|0;if(c>>>0>k>>>0){continue}break}}n=n+1|0;if((w|0)!=(n|0)){continue}break}}k=H[i+60>>2]}if(k){continue}break}}H[i+60>>2]=0;h=H[i+48>>2];k=H[i+44>>2];a=h-k|0;if(a>>>0>=9){while(1){bl(H[k>>2]);k=H[i+44>>2]+4|0;H[i+44>>2]=k;h=H[i+48>>2];a=h-k|0;if(a>>>0>8){continue}break}}c=56;F:{switch((a>>>2|0)-1|0){case 1:c=113;case 0:H[i+56>>2]=c;break;default:break F}}G:{if((h|0)==(k|0)){break G}while(1){bl(H[k>>2]);k=k+4|0;if((k|0)!=(h|0)){continue}break}a=H[i+48>>2];c=H[i+44>>2];if((a|0)==(c|0)){break G}H[i+48>>2]=a+((c-a|0)+3&-4)}a=H[i+40>>2];if(a){bl(a)}ha=i- -64|0;break p}$b(V,b);ye(W,b);ye(Y,b);ye(_,b)}ha=q+32|0;Rb(o);break n;case 5:c=Sb(d+456|0,c);a=H[d+1668>>2];H[d+416>>2]=a;H[d+400>>2]=a;H[d- -64>>2]=a;H[d+48>>2]=a;H[d+408>>2]=0;H[d+392>>2]=H[d+1664>>2];a=d+1664|0;H[d+412>>2]=a;g=H[d+412>>2];H[d+56>>2]=H[d+408>>2];H[d+60>>2]=g;H[d+396>>2]=a;H[d+1648>>2]=h;a=H[d+396>>2];H[d+40>>2]=H[d+392>>2];H[d+44>>2]=a;a=Tb(c,d+56|0,d+40|0,d+1648|0,b);Rb(c);if(a){break n}break b;case 4:c=Sb(d+456|0,c);a=H[d+1668>>2];H[d+384>>2]=a;H[d+368>>2]=a;H[d+96>>2]=a;H[d+80>>2]=a;H[d+376>>2]=0;H[d+360>>2]=H[d+1664>>2];a=d+1664|0;H[d+380>>2]=a;g=H[d+380>>2];H[d+88>>2]=H[d+376>>2];H[d+92>>2]=g;H[d+364>>2]=a;H[d+1648>>2]=h;a=H[d+364>>2];H[d+72>>2]=H[d+360>>2];H[d+76>>2]=a;a=Tb(c,d+88|0,d+72|0,d+1648|0,b);Rb(c);if(a){break n}break b;case 3:c=Ub(d+456|0,c);a=H[d+1668>>2];H[d+352>>2]=a;H[d+336>>2]=a;H[d+128>>2]=a;H[d+112>>2]=a;H[d+344>>2]=0;H[d+328>>2]=H[d+1664>>2];a=d+1664|0;H[d+348>>2]=a;g=H[d+348>>2];H[d+120>>2]=H[d+344>>2];H[d+124>>2]=g;H[d+332>>2]=a;H[d+1648>>2]=h;a=H[d+332>>2];H[d+104>>2]=H[d+328>>2];H[d+108>>2]=a;a=Vb(c,d+120|0,d+104|0,d+1648|0,b);Wb(c);if(a){break n}break b;case 2:c=Ub(d+456|0,c);a=H[d+1668>>2];H[d+320>>2]=a;H[d+304>>2]=a;H[d+160>>2]=a;H[d+144>>2]=a;H[d+312>>2]=0;H[d+296>>2]=H[d+1664>>2];a=d+1664|0;H[d+316>>2]=a;g=H[d+316>>2];H[d+152>>2]=H[d+312>>2];H[d+156>>2]=g;H[d+300>>2]=a;H[d+1648>>2]=h;a=H[d+300>>2];H[d+136>>2]=H[d+296>>2];H[d+140>>2]=a;a=Vb(c,d+152|0,d+136|0,d+1648|0,b);Wb(c);if(a){break n}break b;case 1:c=Xb(d+456|0,c);a=H[d+1668>>2];H[d+288>>2]=a;H[d+272>>2]=a;H[d+192>>2]=a;H[d+176>>2]=a;H[d+280>>2]=0;H[d+264>>2]=H[d+1664>>2];a=d+1664|0;H[d+284>>2]=a;g=H[d+284>>2];H[d+184>>2]=H[d+280>>2];H[d+188>>2]=g;H[d+268>>2]=a;H[d+1648>>2]=h;a=H[d+268>>2];H[d+168>>2]=H[d+264>>2];H[d+172>>2]=a;a=Yb(c,d+184|0,d+168|0,d+1648|0,b);Zb(c);if(a){break n}break b;case 0:break o;default:break b}}c=Xb(d+456|0,c);a=H[d+1668>>2];H[d+256>>2]=a;H[d+240>>2]=a;H[d+224>>2]=a;H[d+208>>2]=a;H[d+248>>2]=0;H[d+232>>2]=H[d+1664>>2];a=d+1664|0;H[d+252>>2]=a;g=H[d+252>>2];H[d+216>>2]=H[d+248>>2];H[d+220>>2]=g;H[d+236>>2]=a;H[d+1648>>2]=h;a=H[d+236>>2];H[d+200>>2]=H[d+232>>2];H[d+204>>2]=a;a=Yb(c,d+216|0,d+200|0,d+1648|0,b);Zb(c);if(!a){break b}}n=1}a=H[d+1676>>2];if(a){H[d+1680>>2]=a;bl(a)}ha=d+1696|0;return n|0}Ka();X()}function Ak(a,b,c,d){var e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,w=0,x=0,y=0,z=0,A=0,C=0,D=0,E=0,G=0,J=0,L=0;w=ha-160|0;ha=w;H[w+60>>2]=b;H[w+20>>2]=b;H[w+24>>2]=-1;h=w+16|0;H[h+112>>2]=0;H[h+116>>2]=0;n=H[h+44>>2]-H[h+4>>2]|0;H[h+120>>2]=n;H[h+124>>2]=n>>31;H[h+104>>2]=H[h+8>>2];q=ha-48|0;ha=q;if(d>>>0<=2){a:{d=d<<2;D=H[d+17292>>2];E=H[d+17280>>2];while(1){d=H[h+4>>2];b:{if((d|0)!=H[h+104>>2]){H[h+4>>2]=d+1;d=I[d|0];break b}d=uk(h)}if((d|0)==32|d-9>>>0<5){continue}break}n=1;c:{d:{switch(d-43|0){case 0:case 2:break d;default:break c}}n=(d|0)==45?-1:1;d=H[h+4>>2];if((d|0)!=H[h+104>>2]){H[h+4>>2]=d+1;d=I[d|0];break c}d=uk(h)}e:{f:{while(1){if(F[g+1154|0]==(d|32)){g:{if(g>>>0>6){break g}d=H[h+4>>2];if((d|0)!=H[h+104>>2]){H[h+4>>2]=d+1;d=I[d|0];break g}d=uk(h)}g=g+1|0;if((g|0)!=8){continue}break f}break}if((g|0)!=3){if((g|0)==8){break f}if(g>>>0<4){break e}if((g|0)==8){break f}}d=H[h+116>>2];if((d|0)>0|(d|0)>=0){H[h+4>>2]=H[h+4>>2]-1}if(g>>>0<4){break f}d=(d|0)<0;while(1){if(!d){H[h+4>>2]=H[h+4>>2]-1}g=g-1|0;if(g>>>0>3){continue}break}}l=ha-16|0;ha=l;k=(B(O(O(n|0)*O(Z))),v(2));d=k&2147483647;h:{if(d-8388608>>>0<=2130706431){n=d<<25;g=(d>>>7|0)+1065353216|0;break h}n=k<<25;g=k>>>7|2147418112;if(d>>>0>=2139095040){break h}n=0;g=0;if(!d){break h}g=d;d=Q(d);Nk(l,g,0,0,0,d+81|0);i=H[l>>2];j=H[l+4>>2];n=H[l+8>>2];g=H[l+12>>2]^65536|16265-d<<16}H[q>>2]=i;H[q+4>>2]=j;H[q+8>>2]=n;H[q+12>>2]=k&-2147483648|g;ha=l+16|0;i=H[q+8>>2];j=H[q+12>>2];l=H[q>>2];k=H[q+4>>2];break a}i:{j:{k:{if(g){break k}g=0;while(1){if(F[g+1434|0]!=(d|32)){break k}l:{if(g>>>0>1){break l}d=H[h+4>>2];if((d|0)!=H[h+104>>2]){H[h+4>>2]=d+1;d=I[d|0];break l}d=uk(h)}g=g+1|0;if((g|0)!=3){continue}break}break j}m:{switch(g|0){case 0:n:{if((d|0)!=48){break n}g=H[h+4>>2];o:{if((g|0)!=H[h+104>>2]){H[h+4>>2]=g+1;g=I[g|0];break o}g=uk(h)}if((g&-33)==88){f=ha-432|0;ha=f;d=H[h+4>>2];p:{if((d|0)!=H[h+104>>2]){H[h+4>>2]=d+1;g=I[d|0];break p}g=uk(h)}q:{r:{while(1){if((g|0)!=48){s:{if((g|0)!=46){break q}d=H[h+4>>2];if((d|0)==H[h+104>>2]){break s}H[h+4>>2]=d+1;g=I[d|0];break r}}else{d=H[h+4>>2];if((d|0)!=H[h+104>>2]){p=1;H[h+4>>2]=d+1;g=I[d|0]}else{p=1;g=uk(h)}continue}break}g=uk(h)}x=1;if((g|0)!=48){break q}while(1){d=r;r=d-1|0;s=s-!d|0;d=H[h+4>>2];t:{if((d|0)!=H[h+104>>2]){H[h+4>>2]=d+1;g=I[d|0];break t}g=uk(h)}if((g|0)==48){continue}break}p=1}k=1073676288;while(1){u:{d=g|32;v:{w:{G=g-48|0;if(G>>>0<10){break w}if((g|0)!=46&d-97>>>0>=6){break u}if((g|0)!=46){break w}if(x){break u}x=1;r=i;s=j;break v}d=(g|0)>57?d-87|0:G;x:{if((j|0)<=0&i>>>0<=7|(j|0)<0){t=d+(t<<4)|0;break x}if(!j&i>>>0<=28){Sk(f+48|0,d);Vk(f+32|0,A,C,l,k,0,0,0,1073414144);A=H[f+32>>2];C=H[f+36>>2];l=H[f+40>>2];k=H[f+44>>2];Vk(f+16|0,H[f+48>>2],H[f+52>>2],H[f+56>>2],H[f+60>>2],A,C,l,k);Mk(f,H[f+16>>2],H[f+20>>2],H[f+24>>2],H[f+28>>2],m,o,y,z);y=H[f+8>>2];z=H[f+12>>2];m=H[f>>2];o=H[f+4>>2];break x}if(J|!d){break x}Vk(f+80|0,A,C,l,k,0,0,0,1073610752);Mk(f- -64|0,H[f+80>>2],H[f+84>>2],H[f+88>>2],H[f+92>>2],m,o,y,z);y=H[f+72>>2];z=H[f+76>>2];J=1;m=H[f+64>>2];o=H[f+68>>2]}d=i+1|0;j=d?j:j+1|0;i=d;p=1}d=H[h+4>>2];if((d|0)!=H[h+104>>2]){H[h+4>>2]=d+1;g=I[d|0]}else{g=uk(h)}continue}break}y:{if(!p){d=H[h+116>>2];if((d|0)>0|(d|0)>=0){z:{d=H[h+4>>2];H[h+4>>2]=d-1;H[h+4>>2]=d-2;if(!x){break z}H[h+4>>2]=d-3}}Rk(f+96|0,+(n|0)*0);m=H[f+96>>2];o=H[f+100>>2];i=H[f+108>>2];d=H[f+104>>2];break y}if((j|0)<=0&i>>>0<=7|(j|0)<0){l=i;k=j;while(1){t=t<<4;d=l+1|0;k=d?k:k+1|0;l=d;if((d|0)!=8|k){continue}break}}A:{B:{C:{if((g&-33)==80){l=zk(h);d=ka;k=d;if(l|(d|0)!=-2147483648){break A}d=H[h+116>>2];if((d|0)>0|(d|0)>=0){break C}break B}l=0;k=0;if(H[h+116>>2]<0){break A}}H[h+4>>2]=H[h+4>>2]-1}l=0;k=0}if(!t){Rk(f+112|0,+(n|0)*0);m=H[f+112>>2];o=H[f+116>>2];i=H[f+124>>2];d=H[f+120>>2];break y}d=x?r:i;j=(x?s:j)<<2|d>>>30;d=l+(d<<2)|0;g=j+k|0;g=d>>>0>>0?g+1|0:g;i=d-32|0;j=g-(d>>>0<32)|0;d=j;if(i>>>0>0-D>>>0&(d|0)>=0|(d|0)>0){H[4837]=68;Sk(f+160|0,n);Vk(f+144|0,H[f+160>>2],H[f+164>>2],H[f+168>>2],H[f+172>>2],-1,-1,-1,2147418111);Vk(f+128|0,H[f+144>>2],H[f+148>>2],H[f+152>>2],H[f+156>>2],-1,-1,-1,2147418111);m=H[f+128>>2];o=H[f+132>>2];i=H[f+140>>2];d=H[f+136>>2];break y}d=D-226|0;g=d>>31;if((j|0)>=(g|0)&d>>>0<=i>>>0|(g|0)<(j|0)){if((t|0)>=0){while(1){Mk(f+416|0,m,o,y,z,0,0,0,-1073807360);g=Pk(m,o,y,z,1073610752);d=(g|0)<0;Mk(f+400|0,m,o,y,z,d?m:H[f+416>>2],d?o:H[f+420>>2],d?y:H[f+424>>2],d?z:H[f+428>>2]);d=i;i=d-1|0;j=j-!d|0;y=H[f+408>>2];z=H[f+412>>2];m=H[f+400>>2];o=H[f+404>>2];t=t<<1|(g|0)>=0;if((t|0)>=0){continue}break}}g=j-((D>>31)+(i>>>0>>0)|0)|0;d=(i-D|0)+32|0;g=d>>>0<32?g+1|0:g;j=d>>>0>>0&(g|0)<=0|(g|0)<0?(d|0)>0?d:0:E;D:{if((j|0)>=113){Sk(f+384|0,n);r=H[f+392>>2];s=H[f+396>>2];A=H[f+384>>2];C=H[f+388>>2];k=0;d=0;break D}Rk(f+352|0,vk(144-j|0));Sk(f+336|0,n);A=H[f+336>>2];C=H[f+340>>2];r=H[f+344>>2];s=H[f+348>>2];wk(f+368|0,H[f+352>>2],H[f+356>>2],H[f+360>>2],H[f+364>>2],A,C,r,s);e=H[f+376>>2];u=H[f+380>>2];k=H[f+372>>2];d=H[f+368>>2]}j=!(t&1)&((Ok(m,o,y,z,0,0,0,0)|0)!=0&(j|0)<32);Tk(f+320|0,j+t|0);Vk(f+304|0,A,C,r,s,H[f+320>>2],H[f+324>>2],H[f+328>>2],H[f+332>>2]);g=d;Mk(f+272|0,H[f+304>>2],H[f+308>>2],H[f+312>>2],H[f+316>>2],d,k,e,u);d=j;Vk(f+288|0,A,C,r,s,d?0:m,d?0:o,d?0:y,d?0:z);Mk(f+256|0,H[f+288>>2],H[f+292>>2],H[f+296>>2],H[f+300>>2],H[f+272>>2],H[f+276>>2],H[f+280>>2],H[f+284>>2]);Xk(f+240|0,H[f+256>>2],H[f+260>>2],H[f+264>>2],H[f+268>>2],g,k,e,u);d=H[f+240>>2];j=H[f+244>>2];g=H[f+248>>2];k=H[f+252>>2];if(!Ok(d,j,g,k,0,0,0,0)){H[4837]=68}xk(f+224|0,d,j,g,k,i);m=H[f+224>>2];o=H[f+228>>2];i=H[f+236>>2];d=H[f+232>>2];break y}H[4837]=68;Sk(f+208|0,n);Vk(f+192|0,H[f+208>>2],H[f+212>>2],H[f+216>>2],H[f+220>>2],0,0,0,65536);Vk(f+176|0,H[f+192>>2],H[f+196>>2],H[f+200>>2],H[f+204>>2],0,0,0,65536);m=H[f+176>>2];o=H[f+180>>2];i=H[f+188>>2];d=H[f+184>>2]}H[q+16>>2]=m;H[q+20>>2]=o;H[q+24>>2]=d;H[q+28>>2]=i;ha=f+432|0;i=H[q+24>>2];j=H[q+28>>2];l=H[q+16>>2];k=H[q+20>>2];break a}if(H[h+116>>2]<0){break n}H[h+4>>2]=H[h+4>>2]-1}g=h;t=n;n=0;e=ha-8976|0;ha=e;G=D+E|0;J=0-G|0;E:{F:{while(1){if((d|0)!=48){G:{if((d|0)!=46){break E}d=H[g+4>>2];if((d|0)==H[g+104>>2]){break G}H[g+4>>2]=d+1;d=I[d|0];break F}}else{d=H[g+4>>2];if((d|0)!=H[g+104>>2]){n=1;H[g+4>>2]=d+1;d=I[d|0]}else{n=1;d=uk(g)}continue}break}d=uk(g)}f=1;if((d|0)!=48){break E}while(1){d=i;i=d-1|0;j=j-!d|0;d=H[g+4>>2];H:{if((d|0)!=H[g+104>>2]){H[g+4>>2]=d+1;d=I[d|0];break H}d=uk(g)}if((d|0)==48){continue}break}n=1}H[e+784>>2]=0;I:{J:{h=(d|0)==46;m=d-48|0;K:{L:{M:{if(h|m>>>0<=9){while(1){N:{if(h&1){if(!f){i=l;j=k;f=1;break N}h=!n;break M}l=l+1|0;k=l?k:k+1|0;if((p|0)<=2044){x=(d|0)==48?x:l;n=(e+784|0)+(p<<2)|0;if(u){m=(N(H[n>>2],10)+d|0)-48|0}H[n>>2]=m;n=1;h=u+1|0;d=(h|0)==9;u=d?0:h;p=d+p|0;break N}if((d|0)==48){break N}H[e+8960>>2]=H[e+8960>>2]|1;x=18396}d=H[g+4>>2];O:{if((d|0)!=H[g+104>>2]){H[g+4>>2]=d+1;d=I[d|0];break O}d=uk(g)}h=(d|0)==46;m=d-48|0;if(h|m>>>0<10){continue}break}}i=f?i:l;j=f?j:k;if(!(!n|(d&-33)!=69)){m=zk(g);d=ka;o=d;P:{if(m|(d|0)!=-2147483648){break P}m=0;o=0;if(H[g+116>>2]<0){break P}H[g+4>>2]=H[g+4>>2]-1}if(!n){break K}j=j+o|0;d=i+m|0;j=d>>>0>>0?j+1|0:j;i=d;break J}h=!n;if((d|0)<0){break L}}if(H[g+116>>2]<0){break L}H[g+4>>2]=H[g+4>>2]-1}if(!h){break J}}H[4837]=28;l=0;k=0;H[g+112>>2]=0;H[g+116>>2]=0;d=H[g+44>>2]-H[g+4>>2]|0;H[g+120>>2]=d;H[g+124>>2]=d>>31;H[g+104>>2]=H[g+8>>2];i=0;d=0;break I}d=H[e+784>>2];if(!d){Rk(e,+(t|0)*0);l=H[e>>2];k=H[e+4>>2];i=H[e+12>>2];d=H[e+8>>2];break I}if(!(l>>>0>9&(k|0)>=0|(k|0)>0|((i|0)!=(l|0)|(j|0)!=(k|0))|(d>>>E|0?(E|0)<=30:0))){Sk(e+48|0,t);Tk(e+32|0,d);Vk(e+16|0,H[e+48>>2],H[e+52>>2],H[e+56>>2],H[e+60>>2],H[e+32>>2],H[e+36>>2],H[e+40>>2],H[e+44>>2]);l=H[e+16>>2];k=H[e+20>>2];i=H[e+28>>2];d=H[e+24>>2];break I}if(i>>>0>(D|0)/-2>>>0&(j|0)>=0|(j|0)>0){H[4837]=68;Sk(e+96|0,t);Vk(e+80|0,H[e+96>>2],H[e+100>>2],H[e+104>>2],H[e+108>>2],-1,-1,-1,2147418111);Vk(e- -64|0,H[e+80>>2],H[e+84>>2],H[e+88>>2],H[e+92>>2],-1,-1,-1,2147418111);l=H[e+64>>2];k=H[e+68>>2];i=H[e+76>>2];d=H[e+72>>2];break I}d=D-226|0;g=i>>>0>>0;d=d>>31;if(g&(j|0)<=(d|0)|(d|0)>(j|0)){H[4837]=68;Sk(e+144|0,t);Vk(e+128|0,H[e+144>>2],H[e+148>>2],H[e+152>>2],H[e+156>>2],0,0,0,65536);Vk(e+112|0,H[e+128>>2],H[e+132>>2],H[e+136>>2],H[e+140>>2],0,0,0,65536);l=H[e+112>>2];k=H[e+116>>2];i=H[e+124>>2];d=H[e+120>>2];break I}if(u){if((u|0)<=8){d=(e+784|0)+(p<<2)|0;g=H[d>>2];while(1){g=N(g,10);u=u+1|0;if((u|0)!=9){continue}break}H[d>>2]=g}p=p+1|0}Q:{f=i;if((x|0)>(f|0)|(x|0)>=9|(f|0)>17){break Q}if((f|0)==9){Sk(e+192|0,t);Tk(e+176|0,H[e+784>>2]);Vk(e+160|0,H[e+192>>2],H[e+196>>2],H[e+200>>2],H[e+204>>2],H[e+176>>2],H[e+180>>2],H[e+184>>2],H[e+188>>2]);l=H[e+160>>2];k=H[e+164>>2];i=H[e+172>>2];d=H[e+168>>2];break I}if((f|0)<=8){Sk(e+272|0,t);Tk(e+256|0,H[e+784>>2]);Vk(e+240|0,H[e+272>>2],H[e+276>>2],H[e+280>>2],H[e+284>>2],H[e+256>>2],H[e+260>>2],H[e+264>>2],H[e+268>>2]);Sk(e+224|0,H[(0-f<<2)+17280>>2]);Qk(e+208|0,H[e+240>>2],H[e+244>>2],H[e+248>>2],H[e+252>>2],H[e+224>>2],H[e+228>>2],H[e+232>>2],H[e+236>>2]);l=H[e+208>>2];k=H[e+212>>2];i=H[e+220>>2];d=H[e+216>>2];break I}d=(N(f,-3)+E|0)+27|0;i=H[e+784>>2];if(i>>>d|0?(d|0)<=30:0){break Q}Sk(e+352|0,t);Tk(e+336|0,i);Vk(e+320|0,H[e+352>>2],H[e+356>>2],H[e+360>>2],H[e+364>>2],H[e+336>>2],H[e+340>>2],H[e+344>>2],H[e+348>>2]);Sk(e+304|0,H[(f<<2)+17208>>2]);Vk(e+288|0,H[e+320>>2],H[e+324>>2],H[e+328>>2],H[e+332>>2],H[e+304>>2],H[e+308>>2],H[e+312>>2],H[e+316>>2]);l=H[e+288>>2];k=H[e+292>>2];i=H[e+300>>2];d=H[e+296>>2];break I}while(1){d=p;p=d-1|0;if(!H[(e+784|0)+(p<<2)>>2]){continue}break}u=0;i=(f|0)%9|0;R:{if(!i){h=0;break R}h=0;i=(f|0)<0?i+9|0:i;S:{if(!d){d=0;break S}j=H[(0-i<<2)+17280>>2];l=1e9/(j|0)|0;m=0;g=0;while(1){k=m;n=(e+784|0)+(g<<2)|0;m=H[n>>2];p=(m>>>0)/(j>>>0)|0;k=k+p|0;H[n>>2]=k;k=!k&(g|0)==(h|0);h=k?h+1&2047:h;f=k?f-9|0:f;m=N(l,m-N(j,p)|0);g=g+1|0;if((g|0)!=(d|0)){continue}break}if(!m){break S}H[(e+784|0)+(d<<2)>>2]=m;d=d+1|0}f=(f-i|0)+9|0}while(1){p=(e+784|0)+(h<<2)|0;T:{while(1){if(((f|0)!=36|K[p>>2]>=10384593)&(f|0)>=36){break T}n=d+2047|0;m=0;while(1){l=n&2047;n=(e+784|0)+(l<<2)|0;i=H[n>>2];k=i>>>3|0;j=i<<29;i=j+m|0;g=k;g=i>>>0>>0?g+1|0:g;j=g;if(!g&i>>>0<1000000001){m=0}else{g=i;m=Ul(g,j,1e9,0);i=g-Sl(m,ka,1e9,0)|0}H[n>>2]=i;d=(l|0)!=(d-1&2047)?d:(h|0)==(l|0)?d:i?d:l;n=l-1|0;if((h|0)!=(l|0)){continue}break}u=u-29|0;if(!m){continue}break}h=h-1&2047;if((h|0)==(d|0)){i=e+784|0;j=i+((d+2046&2047)<<2)|0;d=d-1&2047;H[j>>2]=H[j>>2]|H[i+(d<<2)>>2]}f=f+9|0;H[(e+784|0)+(h<<2)>>2]=m;continue}break}U:{V:while(1){i=d+1&2047;k=(e+784|0)+((d-1&2047)<<2)|0;while(1){j=(f|0)>45?9:1;W:{while(1){n=h;g=0;X:{while(1){Y:{l=g+n&2047;if((l|0)==(d|0)){break Y}l=H[(e+784|0)+(l<<2)>>2];h=H[(g<<2)+17232>>2];if(l>>>0>>0){break Y}if(h>>>0>>0){break X}g=g+1|0;if((g|0)!=4){continue}}break}if((f|0)!=36){break X}i=0;j=0;g=0;l=0;k=0;while(1){h=g+n&2047;if((h|0)==(d|0)){d=d+1&2047;H[(e+(d<<2)|0)+780>>2]=0}Tk(e+768|0,H[(e+784|0)+(h<<2)>>2]);Vk(e+752|0,i,j,l,k,0,0,1342177280,1075633366);Mk(e+736|0,H[e+752>>2],H[e+756>>2],H[e+760>>2],H[e+764>>2],H[e+768>>2],H[e+772>>2],H[e+776>>2],H[e+780>>2]);l=H[e+744>>2];k=H[e+748>>2];i=H[e+736>>2];j=H[e+740>>2];g=g+1|0;if((g|0)!=4){continue}break}Sk(e+720|0,t);Vk(e+704|0,i,j,l,k,H[e+720>>2],H[e+724>>2],H[e+728>>2],H[e+732>>2]);l=H[e+712>>2];k=H[e+716>>2];i=0;j=0;m=H[e+704>>2];o=H[e+708>>2];x=u+113|0;h=x-D|0;f=(h|0)<(E|0);g=f?(h|0)>0?h:0:E;if((g|0)<=112){break W}break U}u=j+u|0;h=d;if((d|0)==(n|0)){continue}break}l=1e9>>>j|0;m=-1<>2];g=(o>>>j|0)+g|0;H[p>>2]=g;g=!g&(h|0)==(n|0);h=g?h+1&2047:h;f=g?f-9|0:f;g=N(l,m&o);n=n+1&2047;if((n|0)!=(d|0)){continue}break}if(!g){continue}if((h|0)!=(i|0)){H[(e+784|0)+(d<<2)>>2]=g;d=i;continue V}H[k>>2]=H[k>>2]|1;continue}break}break}Rk(e+656|0,vk(225-g|0));wk(e+688|0,H[e+656>>2],H[e+660>>2],H[e+664>>2],H[e+668>>2],m,o,l,k);y=H[e+696>>2];z=H[e+700>>2];A=H[e+688>>2];C=H[e+692>>2];Rk(e+640|0,vk(113-g|0));yk(e+672|0,m,o,l,k,H[e+640>>2],H[e+644>>2],H[e+648>>2],H[e+652>>2]);i=H[e+672>>2];j=H[e+676>>2];r=H[e+680>>2];s=H[e+684>>2];Xk(e+624|0,m,o,l,k,i,j,r,s);Mk(e+608|0,A,C,y,z,H[e+624>>2],H[e+628>>2],H[e+632>>2],H[e+636>>2]);l=H[e+616>>2];k=H[e+620>>2];m=H[e+608>>2];o=H[e+612>>2]}p=n+4&2047;Z:{if((p|0)==(d|0)){break Z}p=H[(e+784|0)+(p<<2)>>2];_:{if(p>>>0<=499999999){if(!p&(n+5&2047)==(d|0)){break _}Rk(e+496|0,+(t|0)*.25);Mk(e+480|0,i,j,r,s,H[e+496>>2],H[e+500>>2],H[e+504>>2],H[e+508>>2]);r=H[e+488>>2];s=H[e+492>>2];i=H[e+480>>2];j=H[e+484>>2];break _}if((p|0)!=5e8){Rk(e+592|0,+(t|0)*.75);Mk(e+576|0,i,j,r,s,H[e+592>>2],H[e+596>>2],H[e+600>>2],H[e+604>>2]);r=H[e+584>>2];s=H[e+588>>2];i=H[e+576>>2];j=H[e+580>>2];break _}L=+(t|0);if((n+5&2047)==(d|0)){Rk(e+528|0,L*.5);Mk(e+512|0,i,j,r,s,H[e+528>>2],H[e+532>>2],H[e+536>>2],H[e+540>>2]);r=H[e+520>>2];s=H[e+524>>2];i=H[e+512>>2];j=H[e+516>>2];break _}Rk(e+560|0,L*.75);Mk(e+544|0,i,j,r,s,H[e+560>>2],H[e+564>>2],H[e+568>>2],H[e+572>>2]);r=H[e+552>>2];s=H[e+556>>2];i=H[e+544>>2];j=H[e+548>>2]}if((g|0)>111){break Z}yk(e+464|0,i,j,r,s,0,0,0,1073676288);if(Ok(H[e+464>>2],H[e+468>>2],H[e+472>>2],H[e+476>>2],0,0,0,0)){break Z}Mk(e+448|0,i,j,r,s,0,0,0,1073676288);r=H[e+456>>2];s=H[e+460>>2];i=H[e+448>>2];j=H[e+452>>2]}Mk(e+432|0,m,o,l,k,i,j,r,s);Xk(e+416|0,H[e+432>>2],H[e+436>>2],H[e+440>>2],H[e+444>>2],A,C,y,z);l=H[e+424>>2];k=H[e+428>>2];m=H[e+416>>2];o=H[e+420>>2];$:{if((-2-G|0)>=(x&2147483647)){break $}H[e+408>>2]=l;H[e+412>>2]=k&2147483647;H[e+400>>2]=m;H[e+404>>2]=o;Vk(e+384|0,m,o,l,k,0,0,0,1073610752);n=Pk(H[e+400>>2],H[e+404>>2],H[e+408>>2],H[e+412>>2],1081081856);d=(n|0)<0;l=d?l:H[e+392>>2];k=d?k:H[e+396>>2];m=d?m:H[e+384>>2];o=d?o:H[e+388>>2];u=((n|0)>=0)+u|0;if((Ok(i,j,r,s,0,0,0,0)|0)!=0&(d?f:f&(g|0)!=(h|0))?0:(u+110|0)<=(J|0)){break $}H[4837]=68}xk(e+368|0,m,o,l,k,u);l=H[e+368>>2];k=H[e+372>>2];i=H[e+380>>2];d=H[e+376>>2]}H[q+40>>2]=d;H[q+44>>2]=i;H[q+32>>2]=l;H[q+36>>2]=k;ha=e+8976|0;i=H[q+40>>2];j=H[q+44>>2];l=H[q+32>>2];k=H[q+36>>2];break a;case 3:break j;default:break m}}d=H[h+116>>2];if((d|0)>0|(d|0)>=0){H[h+4>>2]=H[h+4>>2]-1}H[4837]=28;break i}aa:{d=H[h+4>>2];ba:{if((d|0)!=H[h+104>>2]){H[h+4>>2]=d+1;d=I[d|0];break ba}d=uk(h)}if((d|0)==40){g=1;break aa}j=2147450880;if(H[h+116>>2]<0){break a}H[h+4>>2]=H[h+4>>2]-1;break a}while(1){ca:{d=H[h+4>>2];da:{if((d|0)!=H[h+104>>2]){H[h+4>>2]=d+1;d=I[d|0];break da}d=uk(h)}if(!(d-48>>>0<10|d-65>>>0<26|(d|0)==95)){if(d-97>>>0>=26){break ca}}g=g+1|0;continue}break}j=2147450880;if((d|0)==41){break a}d=H[h+116>>2];if((d|0)>0|(d|0)>=0){H[h+4>>2]=H[h+4>>2]-1}if(!g){break a}while(1){g=g-1|0;if((d|0)>0|(d|0)>=0){H[h+4>>2]=H[h+4>>2]-1}if(g){continue}break}break a}H[h+112>>2]=0;H[h+116>>2]=0;d=H[h+44>>2]-H[h+4>>2]|0;H[h+120>>2]=d;H[h+124>>2]=d>>31;H[h+104>>2]=H[h+8>>2]}}H[w>>2]=l;H[w+4>>2]=k;H[w+8>>2]=i;H[w+12>>2]=j;ha=q+48|0;d=H[w+8>>2];i=H[w+12>>2];j=H[w>>2];g=H[w+4>>2];if(c){H[c>>2]=((H[w+20>>2]+H[w+136>>2]|0)-H[w+60>>2]|0)+b}H[a+8>>2]=d;H[a+12>>2]=i;H[a>>2]=j;H[a+4>>2]=g;ha=w+160|0}function bd(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,G=0,J=0,K=0,L=0,M=0,O=0,Q=0,S=0,V=0,W=0,Y=0,Z=0,_=0,$=0,aa=0,ba=0,ca=0;i=ha-224|0;ha=i;H[a+8>>2]=e;B=a+32|0;h=H[B>>2];f=H[a+36>>2]-h>>2;a:{if(f>>>0>>0){Na(B,e-f|0);break a}if(e>>>0>=f>>>0){break a}H[a+36>>2]=h+(e<<2)}b:{if(!d){break b}g=H[b>>2];c:{if((d|0)<2){d=g;break c}h=1;f=d-1|0;l=f&1;d:{if((d|0)==2){d=g;break d}q=f&-2;f=0;d=g;while(1){k=(h<<2)+b|0;j=H[k+4>>2];k=H[k>>2];r=(k|0)<(d|0);d=r?k:d;y=(d|0)>(j|0);d=y?j:d;g=r?g:(g|0)<(k|0)?k:g;g=y?g:(g|0)<(j|0)?j:g;h=h+2|0;f=f+2|0;if((q|0)!=(f|0)){continue}break}}if(!l){break c}f=H[(h<<2)+b>>2];h=(f|0)<(d|0);d=h?f:d;g=h?g:(f|0)>(g|0)?f:g}H[a+16>>2]=g;H[a+12>>2]=d;f=(g>>31)-((d>>31)+(d>>>0>g>>>0)|0)|0;d=g-d|0;if(!f&d>>>0>2147483646|f){break b}d=d+1|0;H[a+20>>2]=d;f=d>>>1|0;H[a+24>>2]=f;H[a+28>>2]=0-f;if(d&1){break b}H[a+24>>2]=f-1}Y=H[a+52>>2];u=H[a+48>>2];H[i+184>>2]=0;H[i+188>>2]=0;H[i+176>>2]=0;H[i+180>>2]=0;H[i+168>>2]=0;H[i+172>>2]=0;H[i+160>>2]=0;H[i+164>>2]=0;H[i+152>>2]=0;H[i+156>>2]=0;H[i+144>>2]=0;H[i+148>>2]=0;e:{if(!e){g=0;d=0;break e}Na(i+144|0,e);g=H[i+156>>2];d=H[i+160>>2]}d=d-g>>2;f:{if(d>>>0>=e>>>0){if(d>>>0<=e>>>0){break f}H[i+160>>2]=(e<<2)+g;break f}Na(i+144|12,e-d|0)}f=H[i+168>>2];d=H[i+172>>2]-f>>2;g:{if(d>>>0>=e>>>0){if(d>>>0<=e>>>0){break g}H[i+172>>2]=f+(e<<2);break g}Na(i+168|0,e-d|0)}h:{i:{f=H[i+180>>2];d=H[i+184>>2]-f>>2;j:{k:{if(d>>>0>=e>>>0){if(d>>>0>e>>>0){H[i+184>>2]=f+(e<<2)}H[i+136>>2]=0;H[i+128>>2]=0;H[i+132>>2]=0;if(e){break k}d=1;break j}Na(i+180|0,e-d|0);H[i+136>>2]=0;H[i+128>>2]=0;H[i+132>>2]=0}if(e>>>0>=1073741824){break i}d=e<<2;f=hl(d);H[i+128>>2]=f;h=d+f|0;H[i+136>>2]=h;lk(f,0,d);H[i+132>>2]=h;d=0}z=a+152|0;h=H[a+152>>2];f=H[a+156>>2]-h>>2;l:{if(f>>>0>>0){Na(z,e-f|0);break l}if(e>>>0>=f>>>0){break l}H[a+156>>2]=h+(e<<2)}H[i+104>>2]=0;H[i+108>>2]=0;H[i+96>>2]=0;H[i+100>>2]=0;H[i+88>>2]=0;H[i+92>>2]=0;H[i+80>>2]=0;H[i+84>>2]=0;H[i+72>>2]=0;H[i+76>>2]=0;f=i- -64|0;H[f>>2]=0;H[f+4>>2]=0;H[i+56>>2]=0;H[i+60>>2]=0;H[i+48>>2]=0;H[i+52>>2]=0;q=0;if(!d){d=e<<2;q=hl(d);A=lk(q,0,d)+d|0}d=H[a+56>>2];d=H[d+4>>2]-H[d>>2]|0;if((d|0)<5){break h}L=e&-2;M=e&1;Z=e&-4;S=e&3;G=e-1|0;V=e<<2;O=a+112|0;y=d>>>2|0;Q=A-q|0;W=Q&-4;C=Q>>2;_=i+36|0;$=i+24|0;while(1){f=H[a+56>>2];d=H[f>>2];m:{n:{r=y-1|0;if(r>>>0>2]-d>>2>>>0){f=0;j=0;k=H[d+(r<<2)>>2];o:{if((k|0)==-1){break o}o=1;d=k+2|0;j=(k>>>0)%3|0;v=j?k-1|0:d;w=1<>>5|0;h=0;J=(j|0)!=0|(d|0)!=-1;K=H[u>>2];d=k;while(1){p:{if(H[K+(d>>>3&536870908)>>2]>>>d&1){break p}j=H[H[H[u+64>>2]+12>>2]+(d<<2)>>2];if((j|0)==-1){break p}l=H[Y>>2];g=H[u+28>>2];m=H[l+(H[g+(j<<2)>>2]<<2)>>2];if((m|0)>=(r|0)){break p}n=j+1|0;n=H[l+(H[g+(((n>>>0)%3|0?n:j-2|0)<<2)>>2]<<2)>>2];if((n|0)>=(r|0)){break p}g=H[l+(H[g+(j+((j>>>0)%3|0?-1:2)<<2)>>2]<<2)>>2];if((g|0)>=(r|0)){break p}q:{if(!e){break q}j=H[(i+144|0)+N(h,12)>>2];l=N(e,g);n=N(e,n);p=N(e,m);g=0;m=0;if(G){while(1){H[j+(g<<2)>>2]=(H[(g+l<<2)+b>>2]+H[(g+n<<2)+b>>2]|0)-H[(g+p<<2)+b>>2];x=g|1;H[j+(x<<2)>>2]=(H[(l+x<<2)+b>>2]+H[(n+x<<2)+b>>2]|0)-H[(p+x<<2)+b>>2];g=g+2|0;m=m+2|0;if((L|0)!=(m|0)){continue}break}}if(!M){break q}H[j+(g<<2)>>2]=(H[(g+l<<2)+b>>2]+H[(g+n<<2)+b>>2]|0)-H[(g+p<<2)+b>>2]}j=4;h=h+1|0;if((h|0)==4){break o}}r:{if(o&1){g=d-2|0;j=d+1|0;d=-1;j=(j>>>0)%3|0?j:g;if((j|0)==-1|H[H[u>>2]+(j>>>3&536870908)>>2]>>>j&1){break r}j=H[H[H[u+64>>2]+12>>2]+(j<<2)>>2];if((j|0)==-1){break r}d=j+1|0;d=(d>>>0)%3|0?d:j-2|0;break r}s:{if((d>>>0)%3|0){g=d-1|0;break s}g=d+2|0;d=-1;if((g|0)==-1){break r}}d=-1;if(H[H[u>>2]+(g>>>3&536870908)>>2]>>>g&1){break r}j=H[H[H[u+64>>2]+12>>2]+(g<<2)>>2];if((j|0)==-1){break r}if((j>>>0)%3|0){d=j-1|0;break r}d=j+2|0}if((d|0)==(k|0)){j=h;break o}if(!((o^1)&1|(d|0)!=-1)){if(!J){j=h;break o}if(w&H[H[u>>2]+(D<<2)>>2]){j=h;break o}d=H[H[H[u+64>>2]+12>>2]+(v<<2)>>2];if((d|0)==-1){j=h;break o}o=0;d=(d>>>0)%3|0?d-1|0:d+2|0}j=h;if((d|0)!=-1){continue}break}}F[i+16|0]=0;H[i+8>>2]=0;H[i+12>>2]=0;H[i+44>>2]=0;H[i+36>>2]=0;H[i+40>>2]=0;H[i+28>>2]=0;H[i+32>>2]=0;H[i+20>>2]=0;H[i+24>>2]=0;K=N(e,r)<<2;x=K+b|0;k=(N(y-2|0,e)<<2)+b|0;l=H[z>>2];d=0;if(e){while(1){g=f<<2;h=H[g+k>>2]-H[g+x>>2]|0;H[g+q>>2]=h;H[g+l>>2]=(h|0)<0?(h^-1)<<1|1:h<<1;g=d;d=h>>31;d=g+((d^h)-d|0)|0;f=f+1|0;if((f|0)!=(e|0)){continue}break}}f=i+200|0;ef(f,O,l,e);h=hf(f);g=ka;m=h;h=H[f+12>>2];f=H[f+16>>2];l=(((h-f|0)+1|0)/64|0)+f<<3;f=f<<3;o=f;h=l+f|0;f=(l>>31)+(f>>31)|0;f=h>>>0>>0?f+1|0:f;l=h;h=m+h|0;f=f+g|0;f=h>>>0>>0?f+1|0:f;g=h;D=(j|0)<=0;if(!D){o=(j<<3)-8|0;h=o+(i+48|0)|0;m=h;l=j+H[h>>2]|0;h=H[h+4>>2];h=j>>>0>l>>>0?h+1|0:h;H[m>>2]=l;H[m+4>>2]=h;t=U(df(l,H[o+(i+80|0)>>2])*(+(l>>>0)+ +(h|0)*4294967296));t:{if(P(t)<0x8000000000000000){l=P(t)>=1?~~(t>0?R(T(t*2.3283064365386963e-10),4294967295):U((t-+(~~t>>>0>>>0))*2.3283064365386963e-10))>>>0:0;h=~~t>>>0;break t}l=-2147483648;h=0}h=g+h|0;g=h}H[i+20>>2]=0;F[i+16|0]=0;H[i+8>>2]=g;H[i+12>>2]=d;Sa($,k,k+V|0);cd(_,q,A);u:{v:{if(!D){l=(i+124|0)+j|0;k=l-1|0;d=(j<<3)-8|0;J=d+(i+48|0)|0;aa=d+(i+80|0)|0;o=1;v=0;while(1){d=i+124|0;lk(d,1,j);v=v+1|0;lk(d,0,v);w:{x:while(1){if(e){lk(H[i+128>>2],0,V)}m=0;d=H[i+128>>2];w=0;while(1){if(!I[(i+124|0)+m|0]){y:{if(!e){break y}n=H[(i+144|0)+N(m,12)>>2];h=0;g=0;f=0;if(G>>>0>2){while(1){p=g<<2;s=p+d|0;H[s>>2]=H[s>>2]+H[n+p>>2];s=p|4;E=s+d|0;H[E>>2]=H[E>>2]+H[n+s>>2];s=p|8;E=s+d|0;H[E>>2]=H[E>>2]+H[n+s>>2];p=p|12;s=p+d|0;H[s>>2]=H[s>>2]+H[n+p>>2];g=g+4|0;f=f+4|0;if((Z|0)!=(f|0)){continue}break}}if(!S){break y}while(1){f=g<<2;p=f+d|0;H[p>>2]=H[p>>2]+H[f+n>>2];g=g+1|0;h=h+1|0;if((S|0)!=(h|0)){continue}break}}w=1<>2];d=0;break z}g=0;d=H[i+128>>2];f=0;if(G){while(1){h=g<<2;m=h+d|0;H[m>>2]=H[m>>2]/(o|0);h=d+(h|4)|0;H[h>>2]=H[h>>2]/(o|0);g=g+2|0;f=f+2|0;if((L|0)!=(f|0)){continue}break}}if(M){d=d+(g<<2)|0;H[d>>2]=H[d>>2]/(o|0)}h=H[z>>2];f=0;d=0;if(!e){break z}n=H[i+128>>2];while(1){m=f<<2;g=H[m+n>>2]-H[m+x>>2]|0;H[m+q>>2]=g;H[h+m>>2]=(g|0)<0?(g^-1)<<1|1:g<<1;m=d;d=g>>31;d=m+((d^g)-d|0)|0;f=f+1|0;if((f|0)!=(e|0)){continue}break}}f=i+200|0;ef(f,O,h,e);h=hf(f);m=h;h=H[f+12>>2];f=H[f+16>>2];g=(((h-f|0)+1|0)/64|0)+f<<3;f=f<<3;h=g+f|0;f=m+h|0;g=f;if((j|0)>0){f=H[J+4>>2];h=H[J>>2];t=U(df(h,H[aa>>2]+o|0)*(+(h>>>0)+ +(f|0)*4294967296));A:{if(P(t)<0x8000000000000000){f=~~t>>>0;break A}f=0}g=f+g|0}f=H[i+8>>2];if(!((f|0)<=(g|0)&((f|0)<(g|0)|(d|0)>=H[i+12>>2]))){H[i+20>>2]=o;F[i+16|0]=w;H[i+8>>2]=g;H[i+12>>2]=d;m=H[i+132>>2];h=H[i+128>>2];n=m-h|0;g=n>>2;d=H[i+32>>2];f=H[i+24>>2];B:{if(g>>>0<=d-f>>2>>>0){n=H[i+28>>2]-f|0;d=n+h|0;w=n>>2;n=w>>>0>>0?d:m;p=n-h|0;if((h|0)!=(n|0)){kk(f,h,p)}if(g>>>0>w>>>0){g=H[i+28>>2];if((m|0)==(n|0)){break B}while(1){H[g>>2]=H[d>>2];g=g+4|0;d=d+4|0;if((m|0)!=(d|0)){continue}break}break B}g=f+p|0;break B}if(f){H[i+28>>2]=f;bl(f);H[i+32>>2]=0;H[i+24>>2]=0;H[i+28>>2]=0;d=0}if((n|0)<0){break v}f=d>>1;d=d>>>0<2147483644?f>>>0>g>>>0?f:g:1073741823;if(d>>>0>=1073741824){break v}d=d<<2;g=hl(d);H[i+24>>2]=g;H[i+32>>2]=d+g;if((h|0)==(m|0)){break B}d=n&-4;g=jk(g,h,d)+d|0}H[i+28>>2]=g;d=H[i+44>>2];f=H[i+36>>2];C:{if(d-f>>2>>>0>=C>>>0){h=H[i+40>>2]-f|0;d=h+q|0;m=h>>2;h=m>>>0>>0?d:A;g=h-q|0;if((h|0)!=(q|0)){kk(f,q,g)}if(m>>>0>>0){g=H[i+40>>2];if((h|0)==(A|0)){break C}while(1){H[g>>2]=H[d>>2];g=g+4|0;d=d+4|0;if((A|0)!=(d|0)){continue}break}break C}g=f+g|0;break C}if(f){H[i+40>>2]=f;bl(f);H[i+44>>2]=0;H[i+36>>2]=0;H[i+40>>2]=0;d=0}if((Q|0)<0){break u}f=d>>1;d=d>>>0<2147483644?f>>>0>C>>>0?f:C:1073741823;if(d>>>0>=1073741824){break u}d=d<<2;g=hl(d);H[i+36>>2]=g;H[i+44>>2]=d+g;if((q|0)==(A|0)){break C}g=jk(g,q,W)+W|0}H[i+40>>2]=g}if((k|0)==(i+124|0)){break w}g=I[k|0];d=-1;while(1){m=g&255;f=d-1|0;h=f+l|0;g=I[h|0];if(m>>>0>g>>>0){f=l;while(1){f=f-1|0;m=I[f|0];if(m>>>0<=g>>>0){continue}break}F[h|0]=m;F[f|0]=g;if((d|0)==-1){continue x}g=d+l|0;d=k;while(1){f=I[g|0];F[g|0]=I[d|0];F[d|0]=f;d=d-1|0;g=g+1|0;if(d>>>0>g>>>0){continue}break}continue x}d=f;if((h|0)!=(i+124|0)){continue}break}break}f=i+124|0;g=f;d=k;if(f>>>0>=d>>>0){break w}while(1){f=I[g|0];F[g|0]=I[d|0];F[d|0]=f;d=d-1|0;g=g+1|0;if(d>>>0>g>>>0){continue}break}}o=o+1|0;if((j|0)!=(v|0)){continue}break}}if((j|0)>0){d=(j<<3)+i|0;f=H[i+20>>2];g=f;h=f+H[d+72>>2]|0;f=H[d+76>>2]+(f>>31)|0;H[d+72>>2]=h;H[d+76>>2]=g>>>0>h>>>0?f+1|0:f}if(!e){break m}d=H[z>>2];g=0;h=H[i+36>>2];f=0;if(!G){break n}while(1){l=g<<2;k=H[l+h>>2];H[d+l>>2]=(k|0)<0?(k^-1)<<1|1:k<<1;l=l|4;k=H[l+h>>2];H[d+l>>2]=(k|0)<0?(k^-1)<<1|1:k<<1;g=g+2|0;f=f+2|0;if((L|0)!=(f|0)){continue}break}break n}Ka();X()}Ka();X()}Yc();X()}if(!M){break m}f=h;h=g<<2;f=H[f+h>>2];H[d+h>>2]=(f|0)<0?(f^-1)<<1|1:f<<1}gf(i+200|0,O,H[z>>2],e);D:{if(D){break D}g=N(j,12)+a|0;d=0;while(1){E:{k=H[g+56>>2];l=k<<5;f=H[g+52>>2];F:{if(!(I[i+16|0]>>>d&1)){h=f;G:{if((f|0)!=(l|0)){break G}if((f+1|0)<0){break E}H:{if(f>>>0<=1073741822){k=k<<6;l=f+32&-32;k=k>>>0>l>>>0?k:l;h=f;if(f>>>0>=k>>>0){break G}if((k|0)>=0){break H}break E}k=2147483647;h=-1;if(f>>>0>=2147483647){break G}}l=(k-1>>>5|0)+1|0;h=hl(l<<2);k=H[g+48>>2];H[h+((f>>>0<33?0:f-1>>>5|0)<<2)>>2]=0;I:{J:{if(!f){break J}o=f>>>5<<2;m=kk(h,k,o);n=f&31;if(!n){break J}h=m+o|0;p=h;s=H[h>>2];h=-1>>>32-n|0;H[p>>2]=s&(h^-1)|h&H[k+o>>2];H[g+48>>2]=m;H[g+52>>2]=f;H[g+56>>2]=l;break I}H[g+48>>2]=h;H[g+52>>2]=f;H[g+56>>2]=l;h=f;if(!k){break G}}bl(k);h=H[g+52>>2]}H[g+52>>2]=h+1;f=H[g+48>>2]+(h>>>3&536870908)|0;H[f>>2]=H[f>>2]|1<>>0<=1073741822){k=k<<6;l=f+32&-32;k=k>>>0>l>>>0?k:l;h=f;if(f>>>0>=k>>>0){break K}if((k|0)<0){break E}break L}k=2147483647;h=-1;if(f>>>0>=2147483647){break K}}l=(k-1>>>5|0)+1|0;h=hl(l<<2);k=H[g+48>>2];H[h+((f>>>0<33?0:f-1>>>5|0)<<2)>>2]=0;M:{N:{if(!f){break N}o=f>>>5<<2;m=kk(h,k,o);n=f&31;if(!n){break N}h=m+o|0;p=h;s=H[h>>2];h=-1>>>32-n|0;H[p>>2]=s&(h^-1)|h&H[k+o>>2];H[g+48>>2]=m;H[g+52>>2]=f;H[g+56>>2]=l;break M}H[g+48>>2]=h;H[g+52>>2]=f;H[g+56>>2]=l;h=f;if(!k){break K}}bl(k);h=H[g+52>>2]}H[g+52>>2]=h+1;f=H[g+48>>2]+(h>>>3&536870908)|0;k=H[f>>2];ba=f,ca=Wl(h)&k,H[ba>>2]=ca}d=d+1|0;if((j|0)!=(d|0)){continue}break D}break}Ka();X()}g=H[a+8>>2];if((g|0)>0){o=c+K|0;d=H[B>>2];k=0;f=H[i+24>>2];while(1){h=d;if((g|0)>0){h=H[B>>2];g=0;while(1){j=g<<2;l=H[j+f>>2];m=H[a+16>>2];O:{if((l|0)>(m|0)){H[h+j>>2]=m;break O}j=h+j|0;m=H[a+12>>2];if((m|0)>(l|0)){H[j>>2]=m;break O}H[j>>2]=l}g=g+1|0;if((g|0)>2]){continue}break}}j=k<<2;f=j+o|0;j=H[j+x>>2]-H[h+j>>2]|0;H[f>>2]=j;P:{if((j|0)>2]){g=j+H[a+20>>2]|0}else{if((j|0)<=H[a+24>>2]){break P}g=j-H[a+20>>2]|0}H[f>>2]=g}f=h;g=H[a+8>>2];k=k+1|0;if((g|0)>(k|0)){continue}break}}d=H[i+36>>2];if(d){H[i+40>>2]=d;bl(d)}d=H[i+24>>2];if(d){H[i+28>>2]=d;bl(d)}d=(y|0)>2;y=r;if(d){continue}break}break h}Ka();X()}if((e|0)>0){lk(H[i+144>>2],0,e<<2)}g=H[a+8>>2];if((g|0)>0){d=H[a+32>>2];k=0;f=H[i+144>>2];while(1){h=d;if((g|0)>0){h=H[B>>2];g=0;while(1){e=g<<2;j=H[e+f>>2];r=H[a+16>>2];Q:{if((j|0)>(r|0)){H[e+h>>2]=r;break Q}e=e+h|0;r=H[a+12>>2];if((r|0)>(j|0)){H[e>>2]=r;break Q}H[e>>2]=j}g=g+1|0;if((g|0)>2]){continue}break}}f=k<<2;e=f+c|0;f=H[b+f>>2]-H[f+h>>2]|0;H[e>>2]=f;R:{if((f|0)>2]){f=f+H[a+20>>2]|0}else{if((f|0)<=H[a+24>>2]){break R}f=f-H[a+20>>2]|0}H[e>>2]=f}f=h;g=H[a+8>>2];k=k+1|0;if((g|0)>(k|0)){continue}break}}if(q){bl(q)}a=H[i+128>>2];if(a){H[i+132>>2]=a;bl(a)}a=H[i+180>>2];if(a){H[i+184>>2]=a;bl(a)}a=H[i+168>>2];if(a){H[i+172>>2]=a;bl(a)}a=H[i+156>>2];if(a){H[i+160>>2]=a;bl(a)}a=H[i+144>>2];if(a){H[i+148>>2]=a;bl(a)}ha=i+224|0;return 1}function ih(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0;k=ha-32|0;ha=k;c=H[b+8>>2];a:{if(I[b+352|0]){d=Sj(c);c=H[b+12>>2];H[b+12>>2]=d;if(!c){break a}Sg(c);break a}d=Rj(c);c=H[b+12>>2];H[b+12>>2]=d;if(!c){break a}Sg(c)}b:{c=H[b+12>>2];c:{if(!(H[c+40>>2]!=((H[c+4>>2]-H[c>>2]>>2>>>0)/3|0)?c:0)){b=hl(32);c=I[1828]|I[1829]<<8|(I[1830]<<16|I[1831]<<24);d=I[1824]|I[1825]<<8|(I[1826]<<16|I[1827]<<24);F[b+21|0]=d;F[b+22|0]=d>>>8;F[b+23|0]=d>>>16;F[b+24|0]=d>>>24;F[b+25|0]=c;F[b+26|0]=c>>>8;F[b+27|0]=c>>>16;F[b+28|0]=c>>>24;c=I[1823]|I[1824]<<8|(I[1825]<<16|I[1826]<<24);d=I[1819]|I[1820]<<8|(I[1821]<<16|I[1822]<<24);F[b+16|0]=d;F[b+17|0]=d>>>8;F[b+18|0]=d>>>16;F[b+19|0]=d>>>24;F[b+20|0]=c;F[b+21|0]=c>>>8;F[b+22|0]=c>>>16;F[b+23|0]=c>>>24;c=I[1815]|I[1816]<<8|(I[1817]<<16|I[1818]<<24);d=I[1811]|I[1812]<<8|(I[1813]<<16|I[1814]<<24);F[b+8|0]=d;F[b+9|0]=d>>>8;F[b+10|0]=d>>>16;F[b+11|0]=d>>>24;F[b+12|0]=c;F[b+13|0]=c>>>8;F[b+14|0]=c>>>16;F[b+15|0]=c>>>24;c=I[1807]|I[1808]<<8|(I[1809]<<16|I[1810]<<24);d=I[1803]|I[1804]<<8|(I[1805]<<16|I[1806]<<24);F[b|0]=d;F[b+1|0]=d>>>8;F[b+2|0]=d>>>16;F[b+3|0]=d>>>24;F[b+4|0]=c;F[b+5|0]=c>>>8;F[b+6|0]=c>>>16;F[b+7|0]=c>>>24;F[b+29|0]=0;H[a>>2]=-1;nl(a+4|0,b,29);bl(b);break c}j=b+200|0;d=j;H[d+128>>2]=2;H[d+132>>2]=7;H[d+64>>2]=b;c=la[H[H[b>>2]+32>>2]](b)|0;H[d+88>>2]=c;e=H[c+28>>2]-H[c+24>>2]>>2;c=H[d+108>>2];h=H[d+104>>2];d=c-h>>2;d:{if(e>>>0>d>>>0){Na(j+104|0,e-d|0);h=H[j+104>>2];c=H[j+108>>2];break d}if(d>>>0<=e>>>0){break d}c=(e<<2)+h|0;H[j+108>>2]=c}if((c|0)!=(h|0)){h=0;while(1){p=H[j+104>>2];r=p+(h<<2)|0;c=H[j+88>>2];g=-1;e:{if((h|0)==-1){break e}g=0;d=H[H[c+24>>2]+(h<<2)>>2];if((d|0)==-1){break e}o=H[c+12>>2];e=1;c=d;while(1){g=g+1|0;f=e;f:{if(e&255){e=0;l=c+1|0;c=(l>>>0)%3|0?l:c-2|0;if((c|0)==-1){c=d;break f}l=H[o+(c<<2)>>2];if((l|0)==-1){c=d;break f}c=d;q=l+1|0;l=(q>>>0)%3|0?q:l-2|0;if((l|0)==-1){break f}e=f;c=l;if((d|0)!=(c|0)){break f}break e}g:{if((c>>>0)%3|0){c=c-1|0;break g}c=c+2|0;if((c|0)==-1){break e}}c=H[o+(c<<2)>>2];if((c|0)==-1){break e}c=(c>>>0)%3|0?c-1|0:c+2|0;e=0}if((c|0)!=-1){continue}break}}H[r>>2]=g;h=h+1|0;if(h>>>0>2]-p>>2>>>0){continue}break}}e=j+92|0;h=H[j+88>>2];c=H[h>>2];d=H[h+4>>2]-c>>2;g=H[j+92>>2];f=H[j+96>>2]-g>>2;h:{if(d>>>0>f>>>0){Na(e,d-f|0);h=H[j+88>>2];c=H[h>>2];break h}if(d>>>0>=f>>>0){break h}H[j+96>>2]=g+(d<<2)}d=H[h+4>>2];i:{if((d|0)==(c|0)){break i}d=d-c>>2;f=d>>>0>1?d:1;g=f&3;d=H[e>>2];h=0;if(f-1>>>0>=3){l=f&-4;e=0;while(1){f=h<<2;H[f+d>>2]=H[c+f>>2];o=f|4;H[o+d>>2]=H[c+o>>2];o=f|8;H[o+d>>2]=H[c+o>>2];f=f|12;H[f+d>>2]=H[c+f>>2];h=h+4|0;e=e+4|0;if((l|0)!=(e|0)){continue}break}}if(!g){break i}while(1){e=h<<2;H[e+d>>2]=H[c+e>>2];h=h+1|0;i=i+1|0;if((g|0)!=(i|0)){continue}break}}e=(H[j+132>>2]-H[j+128>>2]|0)+1|0;c=H[j+140>>2];d=H[j+136>>2];f=(c-d|0)/12|0;j:{if(e>>>0>f>>>0){h=0;c=e-f|0;g=H[j+144>>2];d=H[j+140>>2];if(c>>>0<=(g-d|0)/12>>>0){if(c){c=N(c,12)-12|0;c=(c-((c>>>0)%12|0)|0)+12|0;d=lk(d,0,c)+c|0}H[j+140>>2]=d;break j}k:{l:{m:{f=H[j+136>>2];l=(d-f|0)/12|0;e=l+c|0;if(e>>>0<357913942){g=(g-f|0)/12|0;i=g<<1;g=g>>>0<178956970?e>>>0>>0?i:e:357913941;if(g){if(g>>>0>=357913942){break m}h=hl(N(g,12))}e=N(l,12)+h|0;c=N(c,12)-12|0;l=(c-((c>>>0)%12|0)|0)+12|0;c=lk(e,0,l);l=c+l|0;g=N(g,12)+h|0;if((d|0)==(f|0)){break l}while(1){e=e-12|0;d=d-12|0;H[e>>2]=H[d>>2];H[e+4>>2]=H[d+4>>2];H[e+8>>2]=H[d+8>>2];H[d+8>>2]=0;H[d>>2]=0;H[d+4>>2]=0;if((d|0)!=(f|0)){continue}break}H[j+144>>2]=g;c=H[j+140>>2];H[j+140>>2]=l;d=H[j+136>>2];H[j+136>>2]=e;if((c|0)==(d|0)){break k}while(1){e=c-12|0;f=H[e>>2];if(f){H[c-8>>2]=f;bl(f)}c=e;if((c|0)!=(d|0)){continue}break}break k}break b}_a();X()}H[j+144>>2]=g;H[j+140>>2]=l;H[j+136>>2]=c}if(d){bl(d)}break j}if(e>>>0>>0){e=d+N(e,12)|0;if((e|0)!=(c|0)){while(1){d=c-12|0;f=H[d>>2];if(f){H[c-8>>2]=f;bl(f)}c=d;if((c|0)!=(e|0)){continue}break}}H[j+140>>2]=e}}c=H[b+12>>2];zb((H[c+28>>2]-H[c+24>>2]>>2)-H[c+44>>2]|0,H[H[b+4>>2]+44>>2]);c=H[b+12>>2];zb(((H[c+4>>2]-H[c>>2]>>2>>>0)/3|0)-H[c+40>>2]|0,H[H[b+4>>2]+44>>2]);c=H[b+8>>2];d=H[c+100>>2];c=H[c+96>>2];F[k+16|0]=0;l=b+28|0;d=(d-c|0)/12|0;c=k+16|0;Jg(l,d,c);d=H[b+12>>2];e=H[d+28>>2];d=H[d+24>>2];H[k+16>>2]=-1;Hg(b+52|0,e-d>>2,c);d=H[b+40>>2];H[b+44>>2]=d;c=H[b+12>>2];e=H[c+4>>2]-H[c>>2]>>2;e=e-((e>>>0)%3|0)|0;n:{if(e>>>0<=H[b+48>>2]-d>>2>>>0){break n}if(e>>>0>=1073741824){break b}f=e<<2;e=hl(f);H[b+44>>2]=e;H[b+40>>2]=e;H[b+48>>2]=e+f;if(!d){break n}bl(d);c=H[b+12>>2]}d=H[c+28>>2];c=H[c+24>>2];F[k+16|0]=0;Jg(b+84|0,d-c>>2,k+16|0);H[b+164>>2]=-1;H[b+168>>2]=0;H[b+100>>2]=H[b+96>>2];H[b+112>>2]=H[b+108>>2];if(H[b+132>>2]){c=H[b+128>>2];if(c){while(1){d=H[c>>2];bl(c);c=d;if(c){continue}break}}c=0;H[b+128>>2]=0;d=H[b+124>>2];o:{if(!d){break o}if(d-1>>>0>=3){f=d&-4;while(1){e=c<<2;H[e+H[b+120>>2]>>2]=0;H[H[b+120>>2]+(e|4)>>2]=0;H[H[b+120>>2]+(e|8)>>2]=0;H[H[b+120>>2]+(e|12)>>2]=0;c=c+4|0;m=m+4|0;if((f|0)!=(m|0)){continue}break}}d=d&3;if(!d){break o}e=0;while(1){H[H[b+120>>2]+(c<<2)>>2]=0;c=c+1|0;e=e+1|0;if((d|0)!=(e|0)){continue}break}}H[b+132>>2]=0}H[b+144>>2]=0;c=H[b+12>>2];d=H[c+28>>2];c=H[c+24>>2];H[k+16>>2]=-1;Hg(b+152|0,d-c>>2,k+16|0);c=H[b+72>>2];H[b+76>>2]=c;o=b+72|0;d=H[b+12>>2];d=H[d+4>>2]-H[d>>2]|0;e=(d>>2>>>0)/3|0;p:{if(e>>>0<=H[b+80>>2]-c>>2>>>0){break p}if((d|0)<0){break b}e=e<<2;d=hl(e);H[b+76>>2]=d;H[b+72>>2]=d;H[b+80>>2]=d+e;if(!c){break p}bl(c)}H[b- -64>>2]=0;if(!Tg(b)){b=hl(32);c=I[1768]|I[1769]<<8|(I[1770]<<16|I[1771]<<24);d=I[1764]|I[1765]<<8|(I[1766]<<16|I[1767]<<24);F[b+21|0]=d;F[b+22|0]=d>>>8;F[b+23|0]=d>>>16;F[b+24|0]=d>>>24;F[b+25|0]=c;F[b+26|0]=c>>>8;F[b+27|0]=c>>>16;F[b+28|0]=c>>>24;c=I[1763]|I[1764]<<8|(I[1765]<<16|I[1766]<<24);d=I[1759]|I[1760]<<8|(I[1761]<<16|I[1762]<<24);F[b+16|0]=d;F[b+17|0]=d>>>8;F[b+18|0]=d>>>16;F[b+19|0]=d>>>24;F[b+20|0]=c;F[b+21|0]=c>>>8;F[b+22|0]=c>>>16;F[b+23|0]=c>>>24;c=I[1755]|I[1756]<<8|(I[1757]<<16|I[1758]<<24);d=I[1751]|I[1752]<<8|(I[1753]<<16|I[1754]<<24);F[b+8|0]=d;F[b+9|0]=d>>>8;F[b+10|0]=d>>>16;F[b+11|0]=d>>>24;F[b+12|0]=c;F[b+13|0]=c>>>8;F[b+14|0]=c>>>16;F[b+15|0]=c>>>24;c=I[1747]|I[1748]<<8|(I[1749]<<16|I[1750]<<24);d=I[1743]|I[1744]<<8|(I[1745]<<16|I[1746]<<24);F[b|0]=d;F[b+1|0]=d>>>8;F[b+2|0]=d>>>16;F[b+3|0]=d>>>24;F[b+4|0]=c;F[b+5|0]=c>>>8;F[b+6|0]=c>>>16;F[b+7|0]=c>>>24;F[b+29|0]=0;H[a>>2]=-1;nl(a+4|0,b,29);bl(b);break c}e=0;d=b;q:{if(I[d+352|0]){break q}b=H[d+8>>2];f=H[b+12>>2]-H[b+8>>2]|0;g=f>>2;c=g-1|0;b=H[d+176>>2];i=H[d+172>>2];h=(b-i|0)/136|0;r:{if(c>>>0>h>>>0){$g(d+172|0,c-h|0);break r}if(c>>>0>=h>>>0){break r}h=i+N(c,136)|0;if((h|0)!=(b|0)){while(1){c=b-136|0;i=H[c+116>>2];if(i){H[b-16>>2]=i;bl(i)}i=H[b-32>>2];if(i){H[b-28>>2]=i;bl(i)}ah(b-132|0);b=c;if((c|0)!=(h|0)){continue}break}}H[d+176>>2]=h}if((f|0)==4|(f|0)<=0){break q}h=(g|0)>1?g:1;b=0;s:{while(1){i=H[H[H[d+8>>2]+8>>2]+(b<<2)>>2];if(H[i+56>>2]){m=N(e,136);c=m+H[d+172>>2]|0;H[c>>2]=b;f=H[c+104>>2];H[c+108>>2]=f;g=H[d+12>>2];g=H[g+4>>2]-H[g>>2]|0;p=g>>2;t:{if(p>>>0<=H[c+112>>2]-f>>2>>>0){break t}if((g|0)<0){break s}g=hl(g);H[c+108>>2]=g;H[c+104>>2]=g;H[c+112>>2]=g+(p<<2);if(!f){break t}bl(f)}c=m+H[d+172>>2]|0;H[c+128>>2]=0;Qj(c+4|0,H[d+8>>2],H[d+12>>2],i);e=e+1|0}b=b+1|0;if((h|0)!=(b|0)){continue}break}break q}break b}b=(H[d+176>>2]-H[d+172>>2]|0)/136|0;F[k+31|0]=b;c=H[H[d+4>>2]+44>>2];e=H[c+20>>2];if(!H[c+16>>2]&(e|0)<=0|(e|0)<0){Da(c,H[c+4>>2],k+31|0,k+32|0);b=I[k+31|0]}H[d+284>>2]=b&255;b=H[d+12>>2];c=H[b>>2];e=H[b+4>>2];Ug(j);H[k+24>>2]=0;H[k+16>>2]=0;H[k+20>>2]=0;b=0;u:{v:{w:{c=e-c|0;if((c|0)>0){c=c>>>2|0;p=c>>>0>1?c:1;c=0;while(1){e=(c>>>0)/3|0;r=e>>>5<<2;q=1<>2]>>2]&q){break x}if(Jj(H[d+12>>2],e)){break x}H[k>>2]=0;e=Vg(d,e,k);Ce(j,e);f=H[k>>2];if(e){i=-1;g=-1;e=-1;y:{if((f|0)==-1){break y}h=H[H[d+12>>2]>>2];e=h+(f<<2)|0;i=f+1|0;i=(i>>>0)%3|0?i:f-2|0;if((i|0)!=-1){g=H[h+(i<<2)>>2]}i=H[e>>2];z:{if((f>>>0)%3|0){m=f-1|0;break z}m=f+2|0;e=-1;if((m|0)==-1){break y}}e=H[h+(m<<2)>>2]}h=H[d+84>>2];m=h+(i>>>3&536870908)|0;H[m>>2]=H[m>>2]|1<>>3&536870908)|0;H[i>>2]=H[i>>2]|1<>>3&536870908)|0;H[g>>2]=H[g>>2]|1<>2];h=H[d+104>>2];A:{if(e>>>0>>0){H[e>>2]=1;H[d+100>>2]=e+4;break A}g=H[d+96>>2];i=e-g|0;m=i>>2;e=m+1|0;if(e>>>0>=1073741824){break b}t=m<<2;h=h-g|0;m=h>>1;h=h>>>0<2147483644?e>>>0>>0?m:e:1073741823;if(h){if(h>>>0>=1073741824){break w}e=hl(h<<2)}else{e=0}m=t+e|0;H[m>>2]=1;if((i|0)>0){jk(e,g,i)}H[d+104>>2]=e+(h<<2);H[d+100>>2]=m+4;H[d+96>>2]=e;if(!g){break A}bl(g)}e=r+H[l>>2]|0;H[e>>2]=q|H[e>>2];i=-1;if((f|0)!=-1){e=f+1|0;i=(e>>>0)%3|0?e:f-2|0}B:{if(n>>>0>>0){H[n>>2]=i;n=n+4|0;H[k+20>>2]=n;break B}h=n-b|0;n=h>>2;e=n+1|0;if(e>>>0>=1073741824){break b}g=s-b|0;m=g>>1;g=g>>>0<2147483644?e>>>0>>0?m:e:1073741823;if(g){if(g>>>0>=1073741824){break w}e=hl(g<<2)}else{e=0}n=e+(n<<2)|0;H[n>>2]=i;s=e+(g<<2)|0;n=n+4|0;if((h|0)>0){jk(e,b,h)}H[k+24>>2]=s;H[k+20>>2]=n;H[k+16>>2]=e;if(b){bl(b)}b=e}if((f|0)==-1){break x}e=f+1|0;e=(e>>>0)%3|0?e:f-2|0;if((e|0)==-1){break x}e=H[H[H[d+12>>2]+12>>2]+(e<<2)>>2];if((e|0)==-1){break x}f=(e>>>0)/3|0;if(H[H[l>>2]+(f>>>3&268435452)>>2]>>>f&1){break x}if(jh(d,e)){break x}break v}if((f|0)!=-1){e=f+1|0;e=(e>>>0)%3|0?e:f-2|0}else{e=-1}Xg(d,e,1);if(!jh(d,H[k>>2])){break v}}c=c+1|0;if((p|0)!=(c|0)){continue}break}}c=H[d+72>>2];f=H[d+76>>2];C:{if((c|0)==(f|0)){break C}e=f-4|0;if(e>>>0<=c>>>0){break C}while(1){g=H[c>>2];H[c>>2]=H[e>>2];H[e>>2]=g;c=c+4|0;e=e-4|0;if(c>>>0>>0){continue}break}}Yg(o,f,b,n);D:{if(H[d+172>>2]==H[d+176>>2]){break D}c=H[d+8>>2];e=H[c+100>>2];c=H[c+96>>2];F[k|0]=0;Jg(l,(e-c|0)/12|0,k);c=H[d+72>>2];e=H[d+76>>2];if((c|0)==(e|0)){break D}while(1){Zg(d,H[c>>2]);c=c+4|0;if((e|0)!=(c|0)){continue}break}}i=0;e=0;c=j+32|0;De(j,c);if(!(!H[j+80>>2]|H[j+84>>2]<=0)){while(1){De(H[j+80>>2]+(i<<5)|0,c);i=i+1|0;if((i|0)>2]){continue}break}}i=H[j+136>>2];if((i|0)!=H[j+140>>2]){while(1){f=N(e,12);g=f+i|0;zb(H[g+4>>2]-H[g>>2]>>2,c);i=H[j+136>>2];f=f+i|0;g=H[f+4>>2];f=H[f>>2];if((g|0)!=(f|0)){kf(f,g-f>>2,1,0,c);i=H[j+136>>2]}e=e+1|0;if(e>>>0<(H[j+140>>2]-i|0)/12>>>0){continue}break}}zb(H[d+324>>2],H[H[d+4>>2]+44>>2]);zb(H[d+168>>2],H[H[d+4>>2]+44>>2]);if(!_g(d)){c=Pe(k,1885);H[a>>2]=-1;a=a+4|0;if(F[c+11|0]>=0){d=H[c+4>>2];H[a>>2]=H[c>>2];H[a+4>>2]=d;H[a+8>>2]=H[c+8>>2];break u}nl(a,H[c>>2],H[c+4>>2]);if(F[c+11|0]>=0){break u}bl(H[c>>2]);break u}c=H[H[d+4>>2]+44>>2];e=H[c+20>>2];if(!H[c+16>>2]&(e|0)<=0|(e|0)<0){Da(c,H[c+4>>2],H[d+232>>2],H[d+236>>2])}H[a>>2]=0;H[a+4>>2]=0;H[a+8>>2]=0;H[a+12>>2]=0;break u}_a();X()}c=hl(48);d=I[1703]|I[1704]<<8|(I[1705]<<16|I[1706]<<24);e=I[1699]|I[1700]<<8|(I[1701]<<16|I[1702]<<24);F[c+24|0]=e;F[c+25|0]=e>>>8;F[c+26|0]=e>>>16;F[c+27|0]=e>>>24;F[c+28|0]=d;F[c+29|0]=d>>>8;F[c+30|0]=d>>>16;F[c+31|0]=d>>>24;d=I[1695]|I[1696]<<8|(I[1697]<<16|I[1698]<<24);e=I[1691]|I[1692]<<8|(I[1693]<<16|I[1694]<<24);F[c+16|0]=e;F[c+17|0]=e>>>8;F[c+18|0]=e>>>16;F[c+19|0]=e>>>24;F[c+20|0]=d;F[c+21|0]=d>>>8;F[c+22|0]=d>>>16;F[c+23|0]=d>>>24;d=I[1687]|I[1688]<<8|(I[1689]<<16|I[1690]<<24);e=I[1683]|I[1684]<<8|(I[1685]<<16|I[1686]<<24);F[c+8|0]=e;F[c+9|0]=e>>>8;F[c+10|0]=e>>>16;F[c+11|0]=e>>>24;F[c+12|0]=d;F[c+13|0]=d>>>8;F[c+14|0]=d>>>16;F[c+15|0]=d>>>24;d=I[1679]|I[1680]<<8|(I[1681]<<16|I[1682]<<24);e=I[1675]|I[1676]<<8|(I[1677]<<16|I[1678]<<24);F[c|0]=e;F[c+1|0]=e>>>8;F[c+2|0]=e>>>16;F[c+3|0]=e>>>24;F[c+4|0]=d;F[c+5|0]=d>>>8;F[c+6|0]=d>>>16;F[c+7|0]=d>>>24;F[c+32|0]=0;H[a>>2]=-1;nl(a+4|0,c,32);bl(c)}if(!b){break c}bl(b)}ha=k+32|0;return}Ka();X()}function zd(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,G=0,J=0,K=0,L=0,M=0,O=0,Q=0,S=0,V=0,W=0,Y=0,Z=0,_=0,$=0,aa=0,ba=0,ca=0;i=ha-224|0;ha=i;H[a+8>>2]=e;A=a+32|0;g=H[A>>2];f=H[a+36>>2]-g>>2;a:{if(f>>>0>>0){Na(A,e-f|0);break a}if(e>>>0>=f>>>0){break a}H[a+36>>2]=g+(e<<2)}b:{if(!d){break b}h=H[b>>2];c:{if((d|0)<2){d=h;break c}g=1;f=d-1|0;v=f&1;d:{if((d|0)==2){d=h;break d}w=f&-2;d=h;while(1){l=(g<<2)+b|0;f=H[l+4>>2];l=H[l>>2];k=(l|0)<(d|0);d=k?l:d;p=(d|0)>(f|0);d=p?f:d;l=k?h:(h|0)<(l|0)?l:h;h=p?l:(f|0)>(l|0)?f:l;g=g+2|0;j=j+2|0;if((w|0)!=(j|0)){continue}break}}if(!v){break c}f=H[(g<<2)+b>>2];g=(f|0)<(d|0);d=g?f:d;h=g?h:(f|0)>(h|0)?f:h}H[a+16>>2]=h;H[a+12>>2]=d;f=(h>>31)-((d>>31)+(d>>>0>h>>>0)|0)|0;d=h-d|0;if(!f&d>>>0>2147483646|f){break b}d=d+1|0;H[a+20>>2]=d;f=d>>>1|0;H[a+24>>2]=f;H[a+28>>2]=0-f;if(d&1){break b}H[a+24>>2]=f-1}Y=H[a+52>>2];M=H[a+48>>2];H[i+184>>2]=0;H[i+188>>2]=0;H[i+176>>2]=0;H[i+180>>2]=0;H[i+168>>2]=0;H[i+172>>2]=0;H[i+160>>2]=0;H[i+164>>2]=0;H[i+152>>2]=0;H[i+156>>2]=0;H[i+144>>2]=0;H[i+148>>2]=0;e:{if(!e){h=0;d=0;break e}Na(i+144|0,e);h=H[i+156>>2];d=H[i+160>>2]}d=d-h>>2;f:{if(d>>>0>=e>>>0){if(d>>>0<=e>>>0){break f}H[i+160>>2]=(e<<2)+h;break f}Na(i+144|12,e-d|0)}f=H[i+168>>2];d=H[i+172>>2]-f>>2;g:{if(d>>>0>=e>>>0){if(d>>>0<=e>>>0){break g}H[i+172>>2]=f+(e<<2);break g}Na(i+168|0,e-d|0)}h:{i:{f=H[i+180>>2];d=H[i+184>>2]-f>>2;j:{k:{if(d>>>0>=e>>>0){if(d>>>0>e>>>0){H[i+184>>2]=f+(e<<2)}H[i+136>>2]=0;H[i+128>>2]=0;H[i+132>>2]=0;if(e){break k}d=1;break j}Na(i+180|0,e-d|0);H[i+136>>2]=0;H[i+128>>2]=0;H[i+132>>2]=0}if(e>>>0>=1073741824){break i}d=e<<2;f=hl(d);H[i+128>>2]=f;g=d+f|0;H[i+136>>2]=g;lk(f,0,d);H[i+132>>2]=g;d=0}x=a+152|0;g=H[a+152>>2];f=H[a+156>>2]-g>>2;l:{if(f>>>0>>0){Na(x,e-f|0);break l}if(e>>>0>=f>>>0){break l}H[a+156>>2]=g+(e<<2)}H[i+104>>2]=0;H[i+108>>2]=0;H[i+96>>2]=0;H[i+100>>2]=0;H[i+88>>2]=0;H[i+92>>2]=0;H[i+80>>2]=0;H[i+84>>2]=0;H[i+72>>2]=0;H[i+76>>2]=0;f=i- -64|0;H[f>>2]=0;H[f+4>>2]=0;H[i+56>>2]=0;H[i+60>>2]=0;H[i+48>>2]=0;H[i+52>>2]=0;if(!d){d=e<<2;r=hl(d);y=lk(r,0,d)+d|0}d=H[a+56>>2];d=H[d+4>>2]-H[d>>2]|0;if((d|0)<5){break h}G=e&-2;J=e&1;Z=e&-4;O=e&3;E=e-1|0;Q=e<<2;K=a+112|0;w=d>>>2|0;L=y-r|0;S=L&-4;B=L>>2;_=i+36|0;$=i+24|0;while(1){f=H[a+56>>2];d=H[f>>2];m:{n:{v=w-1|0;if(v>>>0>2]-d>>2>>>0){f=0;l=0;d=H[d+(v<<2)>>2];o:{if((d|0)==-1){break o}p=H[M+12>>2];g=d+2|0;l=(d>>>0)%3|0;z=p+((l?d-1|0:g)<<2)|0;k=0;C=(l|0)!=0|(g|0)!=-1;t=1;g=d;while(1){l=H[p+(g<<2)>>2];p:{if((l|0)==-1){break p}j=-1;m=H[Y>>2];o=H[M>>2];h=m+(H[o+(l<<2)>>2]<<2)|0;n=l+1|0;n=(n>>>0)%3|0?n:l-2|0;if((n|0)!=-1){j=H[o+(n<<2)>>2]}n=H[h>>2];q:{r:{if((l>>>0)%3|0){h=l-1|0;break r}h=l+2|0;s=-1;if((h|0)==-1){break q}}s=H[o+(h<<2)>>2]}if((n|0)>=(v|0)){break p}h=H[m+(j<<2)>>2];if((h|0)>=(v|0)){break p}j=H[m+(s<<2)>>2];if((j|0)>=(v|0)){break p}l=H[(i+144|0)+N(k,12)>>2];s:{if(!e){break s}j=N(e,j);o=N(e,h);n=N(e,n);h=0;m=0;if(E){while(1){H[l+(h<<2)>>2]=(H[(h+j<<2)+b>>2]+H[(h+o<<2)+b>>2]|0)-H[(h+n<<2)+b>>2];s=h|1;H[l+(s<<2)>>2]=(H[(j+s<<2)+b>>2]+H[(o+s<<2)+b>>2]|0)-H[(n+s<<2)+b>>2];h=h+2|0;m=m+2|0;if((G|0)!=(m|0)){continue}break}}if(!J){break s}H[l+(h<<2)>>2]=(H[(h+j<<2)+b>>2]+H[(h+o<<2)+b>>2]|0)-H[(h+n<<2)+b>>2]}l=4;k=k+1|0;if((k|0)==4){break o}}t:{if(t&1){h=g+1|0;g=(h>>>0)%3|0?h:g-2|0;j=-1;if((g|0)==-1){break t}g=H[p+(g<<2)>>2];j=-1;if((g|0)==-1){break t}l=g+1|0;j=(l>>>0)%3|0?l:g-2|0;break t}u:{if((g>>>0)%3|0){h=g-1|0;break u}h=g+2|0;j=-1;if((h|0)==-1){break t}}g=H[p+(h<<2)>>2];j=-1;if((g|0)==-1){break t}j=g-1|0;if((g>>>0)%3|0){break t}j=g+2|0}g=j;if((d|0)==(g|0)){l=k;break o}if(!((t^1)&1|(g|0)!=-1)){if(!C){l=k;break o}g=H[z>>2];if((g|0)==-1){l=k;break o}t=0;g=(g>>>0)%3|0?g-1|0:g+2|0}l=k;if((g|0)!=-1){continue}break}}F[i+16|0]=0;H[i+8>>2]=0;H[i+12>>2]=0;H[i+44>>2]=0;H[i+36>>2]=0;H[i+40>>2]=0;H[i+28>>2]=0;H[i+32>>2]=0;H[i+20>>2]=0;H[i+24>>2]=0;V=N(e,v)<<2;s=V+b|0;k=(N(w-2|0,e)<<2)+b|0;j=H[x>>2];d=0;if(e){while(1){h=f<<2;g=H[h+k>>2]-H[h+s>>2]|0;H[h+r>>2]=g;H[h+j>>2]=(g|0)<0?(g^-1)<<1|1:g<<1;h=d;d=g>>31;d=h+((d^g)-d|0)|0;f=f+1|0;if((f|0)!=(e|0)){continue}break}}f=i+200|0;ef(f,K,j,e);g=hf(f);h=ka;o=g;g=H[f+12>>2];f=H[f+16>>2];j=(((g-f|0)+1|0)/64|0)+f<<3;f=f<<3;p=f;g=j+f|0;f=(j>>31)+(f>>31)|0;f=g>>>0

>>0?f+1|0:f;j=g;g=o+g|0;f=f+h|0;f=g>>>0>>0?f+1|0:f;h=g;C=(l|0)<=0;if(!C){p=(l<<3)-8|0;g=p+(i+48|0)|0;o=g;j=l+H[g>>2]|0;g=H[g+4>>2];g=j>>>0>>0?g+1|0:g;H[o>>2]=j;H[o+4>>2]=g;u=U(df(j,H[p+(i+80|0)>>2])*(+(j>>>0)+ +(g|0)*4294967296));v:{if(P(u)<0x8000000000000000){j=P(u)>=1?~~(u>0?R(T(u*2.3283064365386963e-10),4294967295):U((u-+(~~u>>>0>>>0))*2.3283064365386963e-10))>>>0:0;g=~~u>>>0;break v}j=-2147483648;g=0}g=h+g|0;h=g}H[i+20>>2]=0;F[i+16|0]=0;H[i+8>>2]=h;H[i+12>>2]=d;Sa($,k,k+Q|0);cd(_,r,y);w:{x:{if(!C){o=(i+124|0)+l|0;p=o-1|0;d=(l<<3)-8|0;W=d+(i+48|0)|0;aa=d+(i+80|0)|0;k=1;z=0;while(1){d=i+124|0;lk(d,1,l);z=z+1|0;lk(d,0,z);y:{z:while(1){if(e){lk(H[i+128>>2],0,Q)}m=0;d=H[i+128>>2];t=0;while(1){if(!I[(i+124|0)+m|0]){A:{if(!e){break A}f=H[(i+144|0)+N(m,12)>>2];g=0;h=0;j=0;if(E>>>0>2){while(1){n=h<<2;q=n+d|0;H[q>>2]=H[q>>2]+H[f+n>>2];q=n|4;D=q+d|0;H[D>>2]=H[D>>2]+H[f+q>>2];q=n|8;D=q+d|0;H[D>>2]=H[D>>2]+H[f+q>>2];n=n|12;q=n+d|0;H[q>>2]=H[q>>2]+H[f+n>>2];h=h+4|0;j=j+4|0;if((Z|0)!=(j|0)){continue}break}}if(!O){break A}while(1){j=h<<2;n=j+d|0;H[n>>2]=H[n>>2]+H[f+j>>2];h=h+1|0;g=g+1|0;if((O|0)!=(g|0)){continue}break}}t=1<>2];d=0;break B}h=0;d=H[i+128>>2];f=0;if(E){while(1){g=h<<2;j=g+d|0;H[j>>2]=H[j>>2]/(k|0);g=d+(g|4)|0;H[g>>2]=H[g>>2]/(k|0);h=h+2|0;f=f+2|0;if((G|0)!=(f|0)){continue}break}}if(J){d=d+(h<<2)|0;H[d>>2]=H[d>>2]/(k|0)}g=H[x>>2];f=0;d=0;if(!e){break B}m=H[i+128>>2];while(1){j=f<<2;h=H[j+m>>2]-H[j+s>>2]|0;H[j+r>>2]=h;H[g+j>>2]=(h|0)<0?(h^-1)<<1|1:h<<1;j=d;d=h>>31;d=j+((d^h)-d|0)|0;f=f+1|0;if((f|0)!=(e|0)){continue}break}}f=i+200|0;ef(f,K,g,e);g=hf(f);j=g;g=H[f+12>>2];f=H[f+16>>2];h=(((g-f|0)+1|0)/64|0)+f<<3;f=f<<3;g=h+f|0;f=j+g|0;h=f;if((l|0)>0){f=H[W+4>>2];g=H[W>>2];u=U(df(g,H[aa>>2]+k|0)*(+(g>>>0)+ +(f|0)*4294967296));C:{if(P(u)<0x8000000000000000){f=~~u>>>0;break C}f=0}h=f+h|0}f=H[i+8>>2];if(!((f|0)<=(h|0)&((f|0)<(h|0)|(d|0)>=H[i+12>>2]))){H[i+20>>2]=k;F[i+16|0]=t;H[i+8>>2]=h;H[i+12>>2]=d;j=H[i+132>>2];g=H[i+128>>2];m=j-g|0;h=m>>2;d=H[i+32>>2];f=H[i+24>>2];D:{if(h>>>0<=d-f>>2>>>0){m=H[i+28>>2]-f|0;d=m+g|0;n=m>>2;m=n>>>0>>0?d:j;t=m-g|0;if((g|0)!=(m|0)){kk(f,g,t)}if(h>>>0>n>>>0){h=H[i+28>>2];if((j|0)==(m|0)){break D}while(1){H[h>>2]=H[d>>2];h=h+4|0;d=d+4|0;if((j|0)!=(d|0)){continue}break}break D}h=f+t|0;break D}if(f){H[i+28>>2]=f;bl(f);H[i+32>>2]=0;H[i+24>>2]=0;H[i+28>>2]=0;d=0}if((m|0)<0){break x}f=d>>1;d=d>>>0<2147483644?f>>>0>h>>>0?f:h:1073741823;if(d>>>0>=1073741824){break x}d=d<<2;h=hl(d);H[i+24>>2]=h;H[i+32>>2]=d+h;if((g|0)==(j|0)){break D}d=m&-4;h=jk(h,g,d)+d|0}H[i+28>>2]=h;d=H[i+44>>2];f=H[i+36>>2];E:{if(d-f>>2>>>0>=B>>>0){g=H[i+40>>2]-f|0;d=g+r|0;j=g>>2;g=j>>>0>>0?d:y;h=g-r|0;if((g|0)!=(r|0)){kk(f,r,h)}if(j>>>0>>0){h=H[i+40>>2];if((g|0)==(y|0)){break E}while(1){H[h>>2]=H[d>>2];h=h+4|0;d=d+4|0;if((y|0)!=(d|0)){continue}break}break E}h=f+h|0;break E}if(f){H[i+40>>2]=f;bl(f);H[i+44>>2]=0;H[i+36>>2]=0;H[i+40>>2]=0;d=0}if((L|0)<0){break w}f=d>>1;d=d>>>0<2147483644?f>>>0>B>>>0?f:B:1073741823;if(d>>>0>=1073741824){break w}d=d<<2;h=hl(d);H[i+36>>2]=h;H[i+44>>2]=d+h;if((r|0)==(y|0)){break E}h=jk(h,r,S)+S|0}H[i+40>>2]=h}if((p|0)==(i+124|0)){break y}h=I[p|0];d=-1;while(1){j=h&255;f=d-1|0;g=f+o|0;h=I[g|0];if(j>>>0>h>>>0){f=o;while(1){f=f-1|0;j=I[f|0];if(j>>>0<=h>>>0){continue}break}F[g|0]=j;F[f|0]=h;if((d|0)==-1){continue z}h=d+o|0;d=p;while(1){f=I[h|0];F[h|0]=I[d|0];F[d|0]=f;d=d-1|0;h=h+1|0;if(d>>>0>h>>>0){continue}break}continue z}d=f;if((g|0)!=(i+124|0)){continue}break}break}f=i+124|0;h=f;d=p;if(f>>>0>=d>>>0){break y}while(1){f=I[h|0];F[h|0]=I[d|0];F[d|0]=f;d=d-1|0;h=h+1|0;if(d>>>0>h>>>0){continue}break}}k=k+1|0;if((l|0)!=(z|0)){continue}break}}if((l|0)>0){d=(l<<3)+i|0;f=H[i+20>>2];h=f;g=f+H[d+72>>2]|0;f=H[d+76>>2]+(f>>31)|0;H[d+72>>2]=g;H[d+76>>2]=h>>>0>g>>>0?f+1|0:f}if(!e){break m}d=H[x>>2];h=0;f=H[i+36>>2];j=0;if(!E){break n}while(1){k=h<<2;g=H[k+f>>2];H[d+k>>2]=(g|0)<0?(g^-1)<<1|1:g<<1;k=k|4;g=H[k+f>>2];H[d+k>>2]=(g|0)<0?(g^-1)<<1|1:g<<1;h=h+2|0;j=j+2|0;if((G|0)!=(j|0)){continue}break}break n}Ka();X()}Ka();X()}Yc();X()}if(!J){break m}g=h<<2;f=H[g+f>>2];H[d+g>>2]=(f|0)<0?(f^-1)<<1|1:f<<1}gf(i+200|0,K,H[x>>2],e);F:{if(C){break F}h=N(l,12)+a|0;d=0;while(1){G:{k=H[h+56>>2];j=k<<5;f=H[h+52>>2];H:{if(!(I[i+16|0]>>>d&1)){g=f;I:{if((f|0)!=(j|0)){break I}if((f+1|0)<0){break G}J:{if(f>>>0<=1073741822){k=k<<6;j=f+32&-32;k=j>>>0>>0?k:j;g=f;if(f>>>0>=k>>>0){break I}if((k|0)>=0){break J}break G}k=2147483647;g=-1;if(f>>>0>=2147483647){break I}}j=(k-1>>>5|0)+1|0;g=hl(j<<2);k=H[h+48>>2];H[g+((f>>>0<33?0:f-1>>>5|0)<<2)>>2]=0;K:{L:{if(!f){break L}p=f>>>5<<2;o=kk(g,k,p);m=f&31;if(!m){break L}g=p+o|0;n=g;q=H[g>>2];g=-1>>>32-m|0;H[n>>2]=q&(g^-1)|g&H[k+p>>2];H[h+48>>2]=o;H[h+52>>2]=f;H[h+56>>2]=j;break K}H[h+48>>2]=g;H[h+52>>2]=f;H[h+56>>2]=j;g=f;if(!k){break I}}bl(k);g=H[h+52>>2]}H[h+52>>2]=g+1;f=H[h+48>>2]+(g>>>3&536870908)|0;H[f>>2]=H[f>>2]|1<>>0<=1073741822){k=k<<6;j=f+32&-32;k=j>>>0>>0?k:j;g=f;if(f>>>0>=k>>>0){break M}if((k|0)<0){break G}break N}k=2147483647;g=-1;if(f>>>0>=2147483647){break M}}j=(k-1>>>5|0)+1|0;g=hl(j<<2);k=H[h+48>>2];H[g+((f>>>0<33?0:f-1>>>5|0)<<2)>>2]=0;O:{P:{if(!f){break P}p=f>>>5<<2;o=kk(g,k,p);m=f&31;if(!m){break P}g=p+o|0;n=g;q=H[g>>2];g=-1>>>32-m|0;H[n>>2]=q&(g^-1)|g&H[k+p>>2];H[h+48>>2]=o;H[h+52>>2]=f;H[h+56>>2]=j;break O}H[h+48>>2]=g;H[h+52>>2]=f;H[h+56>>2]=j;g=f;if(!k){break M}}bl(k);g=H[h+52>>2]}H[h+52>>2]=g+1;f=H[h+48>>2]+(g>>>3&536870908)|0;k=H[f>>2];ba=f,ca=Wl(g)&k,H[ba>>2]=ca}d=d+1|0;if((l|0)!=(d|0)){continue}break F}break}Ka();X()}h=H[a+8>>2];if((h|0)>0){p=c+V|0;d=H[A>>2];k=0;j=H[i+24>>2];while(1){g=d;if((h|0)>0){g=H[A>>2];h=0;while(1){f=h<<2;l=H[f+j>>2];o=H[a+16>>2];Q:{if((l|0)>(o|0)){H[f+g>>2]=o;break Q}f=f+g|0;o=H[a+12>>2];if((o|0)>(l|0)){H[f>>2]=o;break Q}H[f>>2]=l}h=h+1|0;if((h|0)>2]){continue}break}}l=k<<2;f=l+p|0;l=H[l+s>>2]-H[g+l>>2]|0;H[f>>2]=l;R:{if((l|0)>2]){h=l+H[a+20>>2]|0}else{if((l|0)<=H[a+24>>2]){break R}h=l-H[a+20>>2]|0}H[f>>2]=h}j=g;h=H[a+8>>2];k=k+1|0;if((h|0)>(k|0)){continue}break}}d=H[i+36>>2];if(d){H[i+40>>2]=d;bl(d)}d=H[i+24>>2];if(d){H[i+28>>2]=d;bl(d)}d=(w|0)>2;w=v;if(d){continue}break}break h}Ka();X()}if((e|0)>0){lk(H[i+144>>2],0,e<<2)}h=H[a+8>>2];if((h|0)>0){d=H[a+32>>2];k=0;j=H[i+144>>2];while(1){g=d;if((h|0)>0){g=H[A>>2];h=0;while(1){e=h<<2;f=H[e+j>>2];l=H[a+16>>2];S:{if((f|0)>(l|0)){H[e+g>>2]=l;break S}e=e+g|0;l=H[a+12>>2];if((l|0)>(f|0)){H[e>>2]=l;break S}H[e>>2]=f}h=h+1|0;if((h|0)>2]){continue}break}}f=k<<2;e=f+c|0;f=H[b+f>>2]-H[f+g>>2]|0;H[e>>2]=f;T:{if((f|0)>2]){f=f+H[a+20>>2]|0}else{if((f|0)<=H[a+24>>2]){break T}f=f-H[a+20>>2]|0}H[e>>2]=f}j=g;h=H[a+8>>2];k=k+1|0;if((h|0)>(k|0)){continue}break}}if(r){bl(r)}a=H[i+128>>2];if(a){H[i+132>>2]=a;bl(a)}a=H[i+180>>2];if(a){H[i+184>>2]=a;bl(a)}a=H[i+168>>2];if(a){H[i+172>>2]=a;bl(a)}a=H[i+156>>2];if(a){H[i+160>>2]=a;bl(a)}a=H[i+144>>2];if(a){H[i+148>>2]=a;bl(a)}ha=i+224|0;return 1}function al(a){a=a|0;var b=0,c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0;l=ha-16|0;ha=l;a:{b:{c:{d:{e:{f:{g:{h:{i:{j:{k:{if(a>>>0<=244){e=H[4885];h=a>>>0<11?16:a+11&-8;c=h>>>3|0;b=e>>>c|0;if(b&3){c=c+((b^-1)&1)|0;a=c<<3;b=a+19580|0;d=H[a+19588>>2];a=H[d+8>>2];l:{if((b|0)==(a|0)){m=19540,n=Wl(c)&e,H[m>>2]=n;break l}H[a+12>>2]=b;H[b+8>>2]=a}a=d+8|0;b=c<<3;H[d+4>>2]=b|3;b=b+d|0;H[b+4>>2]=H[b+4>>2]|1;break a}k=H[4887];if(k>>>0>=h>>>0){break k}if(b){a=2<>>12&16;c=a;b=b>>>a|0;a=b>>>5&8;c=c|a;b=b>>>a|0;a=b>>>2&4;c=c|a;b=b>>>a|0;a=b>>>1&2;c=c|a;b=b>>>a|0;a=b>>>1&1;d=(c|a)+(b>>>a|0)|0;a=d<<3;b=a+19580|0;g=H[a+19588>>2];a=H[g+8>>2];m:{if((b|0)==(a|0)){e=Wl(d)&e;H[4885]=e;break m}H[a+12>>2]=b;H[b+8>>2]=a}H[g+4>>2]=h|3;c=g+h|0;a=d<<3;d=a-h|0;H[c+4>>2]=d|1;H[a+g>>2]=d;if(k){b=(k&-8)+19580|0;f=H[4890];a=1<<(k>>>3);n:{if(!(a&e)){H[4885]=a|e;a=b;break n}a=H[b+8>>2]}H[b+8>>2]=f;H[a+12>>2]=f;H[f+12>>2]=b;H[f+8>>2]=a}a=g+8|0;H[4890]=c;H[4887]=d;break a}j=H[4886];if(!j){break k}b=(0-j&j)-1|0;a=b>>>12&16;c=a;b=b>>>a|0;a=b>>>5&8;c=c|a;b=b>>>a|0;a=b>>>2&4;c=c|a;b=b>>>a|0;a=b>>>1&2;c=c|a;b=b>>>a|0;a=b>>>1&1;c=H[((c|a)+(b>>>a|0)<<2)+19844>>2];f=(H[c+4>>2]&-8)-h|0;b=c;while(1){o:{a=H[b+16>>2];if(!a){a=H[b+20>>2];if(!a){break o}}b=(H[a+4>>2]&-8)-h|0;d=b>>>0>>0;f=d?b:f;c=d?a:c;b=a;continue}break}i=H[c+24>>2];d=H[c+12>>2];if((d|0)!=(c|0)){a=H[c+8>>2];H[a+12>>2]=d;H[d+8>>2]=a;break b}b=c+20|0;a=H[b>>2];if(!a){a=H[c+16>>2];if(!a){break j}b=c+16|0}while(1){g=b;d=a;b=a+20|0;a=H[b>>2];if(a){continue}b=d+16|0;a=H[d+16>>2];if(a){continue}break}H[g>>2]=0;break b}h=-1;if(a>>>0>4294967231){break k}a=a+11|0;h=a&-8;j=H[4886];if(!j){break k}f=0-h|0;e=0;p:{if(h>>>0<256){break p}e=31;if(h>>>0>16777215){break p}a=a>>>8|0;g=a+1048320>>>16&8;a=a<>>16&4;a=a<>>16&2;a=(a<>>15|0)-(b|(c|g))|0;e=(a<<1|h>>>a+21&1)+28|0}b=H[(e<<2)+19844>>2];q:{r:{s:{if(!b){a=0;break s}a=0;c=h<<((e|0)==31?0:25-(e>>>1|0)|0);while(1){t:{g=(H[b+4>>2]&-8)-h|0;if(g>>>0>=f>>>0){break t}d=b;f=g;if(f){break t}f=0;a=b;break r}g=H[b+20>>2];b=H[((c>>>29&4)+b|0)+16>>2];a=g?(g|0)==(b|0)?a:g:a;c=c<<1;if(b){continue}break}}if(!(a|d)){d=0;a=2<>>12&16;c=a;b=b>>>a|0;a=b>>>5&8;c=c|a;b=b>>>a|0;a=b>>>2&4;c=c|a;b=b>>>a|0;a=b>>>1&2;c=c|a;b=b>>>a|0;a=b>>>1&1;a=H[((c|a)+(b>>>a|0)<<2)+19844>>2]}if(!a){break q}}while(1){b=(H[a+4>>2]&-8)-h|0;c=b>>>0>>0;f=c?b:f;d=c?a:d;b=H[a+16>>2];if(b){a=b}else{a=H[a+20>>2]}if(a){continue}break}}if(!d|H[4887]-h>>>0<=f>>>0){break k}e=H[d+24>>2];c=H[d+12>>2];if((d|0)!=(c|0)){a=H[d+8>>2];H[a+12>>2]=c;H[c+8>>2]=a;break c}b=d+20|0;a=H[b>>2];if(!a){a=H[d+16>>2];if(!a){break i}b=d+16|0}while(1){g=b;c=a;b=a+20|0;a=H[b>>2];if(a){continue}b=c+16|0;a=H[c+16>>2];if(a){continue}break}H[g>>2]=0;break c}c=H[4887];if(c>>>0>=h>>>0){d=H[4890];b=c-h|0;u:{if(b>>>0>=16){H[4887]=b;a=d+h|0;H[4890]=a;H[a+4>>2]=b|1;H[c+d>>2]=b;H[d+4>>2]=h|3;break u}H[4890]=0;H[4887]=0;H[d+4>>2]=c|3;a=c+d|0;H[a+4>>2]=H[a+4>>2]|1}a=d+8|0;break a}i=H[4888];if(i>>>0>h>>>0){b=i-h|0;H[4888]=b;c=H[4891];a=c+h|0;H[4891]=a;H[a+4>>2]=b|1;H[c+4>>2]=h|3;a=c+8|0;break a}a=0;j=h+47|0;if(H[5003]){c=H[5005]}else{H[5006]=-1;H[5007]=-1;H[5004]=4096;H[5005]=4096;H[5003]=l+12&-16^1431655768;H[5008]=0;H[4996]=0;c=4096}g=j+c|0;f=0-c|0;b=g&f;if(b>>>0<=h>>>0){break a}d=H[4995];if(d){c=H[4993];e=c+b|0;if(d>>>0>>0|c>>>0>=e>>>0){break a}}if(I[19984]&4){break f}v:{w:{d=H[4891];if(d){a=19988;while(1){c=H[a>>2];if(c>>>0<=d>>>0&d>>>0>2]>>>0){break w}a=H[a+8>>2];if(a){continue}break}}c=$k(0);if((c|0)==-1){break g}e=b;d=H[5004];a=d-1|0;if(a&c){e=(b-c|0)+(a+c&0-d)|0}if(e>>>0<=h>>>0|e>>>0>2147483646){break g}d=H[4995];if(d){a=H[4993];f=a+e|0;if(d>>>0>>0|a>>>0>=f>>>0){break g}}a=$k(e);if((c|0)!=(a|0)){break v}break e}e=f&g-i;if(e>>>0>2147483646){break g}c=$k(e);if((c|0)==(H[a>>2]+H[a+4>>2]|0)){break h}a=c}if(!((a|0)==-1|h+48>>>0<=e>>>0)){c=H[5005];c=c+(j-e|0)&0-c;if(c>>>0>2147483646){c=a;break e}if(($k(c)|0)!=-1){e=c+e|0;c=a;break e}$k(0-e|0);break g}c=a;if((a|0)!=-1){break e}break g}d=0;break b}c=0;break c}if((c|0)!=-1){break e}}H[4996]=H[4996]|4}if(b>>>0>2147483646){break d}c=$k(b);a=$k(0);if((c|0)==-1|(a|0)==-1|a>>>0<=c>>>0){break d}e=a-c|0;if(e>>>0<=h+40>>>0){break d}}a=H[4993]+e|0;H[4993]=a;if(a>>>0>K[4994]){H[4994]=a}x:{y:{z:{g=H[4891];if(g){a=19988;while(1){d=H[a>>2];b=H[a+4>>2];if((d+b|0)==(c|0)){break z}a=H[a+8>>2];if(a){continue}break}break y}a=H[4889];if(!(a>>>0<=c>>>0?a:0)){H[4889]=c}a=0;H[4998]=e;H[4997]=c;H[4893]=-1;H[4894]=H[5003];H[5e3]=0;while(1){d=a<<3;b=d+19580|0;H[d+19588>>2]=b;H[d+19592>>2]=b;a=a+1|0;if((a|0)!=32){continue}break}d=e-40|0;a=c+8&7?-8-c&7:0;b=d-a|0;H[4888]=b;a=a+c|0;H[4891]=a;H[a+4>>2]=b|1;H[(c+d|0)+4>>2]=40;H[4892]=H[5007];break x}if(I[a+12|0]&8|d>>>0>g>>>0|c>>>0<=g>>>0){break y}H[a+4>>2]=b+e;a=g+8&7?-8-g&7:0;c=a+g|0;H[4891]=c;b=H[4888]+e|0;a=b-a|0;H[4888]=a;H[c+4>>2]=a|1;H[(b+g|0)+4>>2]=40;H[4892]=H[5007];break x}if(K[4889]>c>>>0){H[4889]=c}b=c+e|0;a=19988;A:{B:{C:{D:{E:{F:{while(1){if((b|0)!=H[a>>2]){a=H[a+8>>2];if(a){continue}break F}break}if(!(I[a+12|0]&8)){break E}}a=19988;while(1){b=H[a>>2];if(b>>>0<=g>>>0){f=b+H[a+4>>2]|0;if(f>>>0>g>>>0){break D}}a=H[a+8>>2];continue}}H[a>>2]=c;H[a+4>>2]=H[a+4>>2]+e;j=(c+8&7?-8-c&7:0)+c|0;H[j+4>>2]=h|3;e=b+(b+8&7?-8-b&7:0)|0;i=h+j|0;a=e-i|0;if((e|0)==(g|0)){H[4891]=i;a=H[4888]+a|0;H[4888]=a;H[i+4>>2]=a|1;break B}if(H[4890]==(e|0)){H[4890]=i;a=H[4887]+a|0;H[4887]=a;H[i+4>>2]=a|1;H[a+i>>2]=a;break B}f=H[e+4>>2];if((f&3)==1){g=f&-8;G:{if(f>>>0<=255){d=H[e+8>>2];b=f>>>3|0;c=H[e+12>>2];if((c|0)==(d|0)){m=19540,n=H[4885]&Wl(b),H[m>>2]=n;break G}H[d+12>>2]=c;H[c+8>>2]=d;break G}h=H[e+24>>2];c=H[e+12>>2];H:{if((e|0)!=(c|0)){b=H[e+8>>2];H[b+12>>2]=c;H[c+8>>2]=b;break H}I:{f=e+20|0;b=H[f>>2];if(b){break I}f=e+16|0;b=H[f>>2];if(b){break I}c=0;break H}while(1){d=f;c=b;f=b+20|0;b=H[f>>2];if(b){continue}f=c+16|0;b=H[c+16>>2];if(b){continue}break}H[d>>2]=0}if(!h){break G}d=H[e+28>>2];b=(d<<2)+19844|0;J:{if(H[b>>2]==(e|0)){H[b>>2]=c;if(c){break J}m=19544,n=H[4886]&Wl(d),H[m>>2]=n;break G}H[h+(H[h+16>>2]==(e|0)?16:20)>>2]=c;if(!c){break G}}H[c+24>>2]=h;b=H[e+16>>2];if(b){H[c+16>>2]=b;H[b+24>>2]=c}b=H[e+20>>2];if(!b){break G}H[c+20>>2]=b;H[b+24>>2]=c}e=e+g|0;f=H[e+4>>2];a=a+g|0}H[e+4>>2]=f&-2;H[i+4>>2]=a|1;H[a+i>>2]=a;if(a>>>0<=255){b=(a&-8)+19580|0;c=H[4885];a=1<<(a>>>3);K:{if(!(c&a)){H[4885]=a|c;a=b;break K}a=H[b+8>>2]}H[b+8>>2]=i;H[a+12>>2]=i;H[i+12>>2]=b;H[i+8>>2]=a;break B}f=31;if(a>>>0<=16777215){b=a>>>8|0;f=b+1048320>>>16&8;b=b<>>16&4;b=b<>>16&2;b=(b<>>15|0)-(c|(d|f))|0;f=(b<<1|a>>>b+21&1)+28|0}H[i+28>>2]=f;H[i+16>>2]=0;H[i+20>>2]=0;b=(f<<2)+19844|0;d=H[4886];c=1<>2]=i;break L}f=a<<((f|0)==31?0:25-(f>>>1|0)|0);c=H[b>>2];while(1){b=c;if((H[b+4>>2]&-8)==(a|0)){break C}c=f>>>29|0;f=f<<1;d=(c&4)+b|0;c=H[d+16>>2];if(c){continue}break}H[d+16>>2]=i}H[i+24>>2]=b;H[i+12>>2]=i;H[i+8>>2]=i;break B}d=e-40|0;a=c+8&7?-8-c&7:0;b=d-a|0;H[4888]=b;a=a+c|0;H[4891]=a;H[a+4>>2]=b|1;H[(c+d|0)+4>>2]=40;H[4892]=H[5007];a=(f+(f-39&7?39-f&7:0)|0)-47|0;d=a>>>0>>0?g:a;H[d+4>>2]=27;a=H[5e3];H[d+16>>2]=H[4999];H[d+20>>2]=a;a=H[4998];H[d+8>>2]=H[4997];H[d+12>>2]=a;H[4999]=d+8;H[4998]=e;H[4997]=c;H[5e3]=0;a=d+24|0;while(1){H[a+4>>2]=7;b=a+8|0;a=a+4|0;if(b>>>0>>0){continue}break}if((d|0)==(g|0)){break x}H[d+4>>2]=H[d+4>>2]&-2;f=d-g|0;H[g+4>>2]=f|1;H[d>>2]=f;if(f>>>0<=255){b=(f&-8)+19580|0;c=H[4885];a=1<<(f>>>3);M:{if(!(c&a)){H[4885]=a|c;a=b;break M}a=H[b+8>>2]}H[b+8>>2]=g;H[a+12>>2]=g;H[g+12>>2]=b;H[g+8>>2]=a;break x}a=31;if(f>>>0<=16777215){a=f>>>8|0;d=a+1048320>>>16&8;a=a<>>16&4;a=a<>>16&2;a=(a<>>15|0)-(b|(c|d))|0;a=(a<<1|f>>>a+21&1)+28|0}H[g+28>>2]=a;H[g+16>>2]=0;H[g+20>>2]=0;b=(a<<2)+19844|0;d=H[4886];c=1<>2]=g;break N}a=f<<((a|0)==31?0:25-(a>>>1|0)|0);d=H[b>>2];while(1){b=d;if((f|0)==(H[b+4>>2]&-8)){break A}c=a>>>29|0;a=a<<1;c=(c&4)+b|0;d=H[c+16>>2];if(d){continue}break}H[c+16>>2]=g}H[g+24>>2]=b;H[g+12>>2]=g;H[g+8>>2]=g;break x}a=H[b+8>>2];H[a+12>>2]=i;H[b+8>>2]=i;H[i+24>>2]=0;H[i+12>>2]=b;H[i+8>>2]=a}a=j+8|0;break a}a=H[b+8>>2];H[a+12>>2]=g;H[b+8>>2]=g;H[g+24>>2]=0;H[g+12>>2]=b;H[g+8>>2]=a}a=H[4888];if(a>>>0<=h>>>0){break d}b=a-h|0;H[4888]=b;c=H[4891];a=c+h|0;H[4891]=a;H[a+4>>2]=b|1;H[c+4>>2]=h|3;a=c+8|0;break a}H[4837]=48;a=0;break a}O:{if(!e){break O}b=H[d+28>>2];a=(b<<2)+19844|0;P:{if(H[a>>2]==(d|0)){H[a>>2]=c;if(c){break P}j=Wl(b)&j;H[4886]=j;break O}H[e+(H[e+16>>2]==(d|0)?16:20)>>2]=c;if(!c){break O}}H[c+24>>2]=e;a=H[d+16>>2];if(a){H[c+16>>2]=a;H[a+24>>2]=c}a=H[d+20>>2];if(!a){break O}H[c+20>>2]=a;H[a+24>>2]=c}Q:{if(f>>>0<=15){a=f+h|0;H[d+4>>2]=a|3;a=a+d|0;H[a+4>>2]=H[a+4>>2]|1;break Q}H[d+4>>2]=h|3;e=d+h|0;H[e+4>>2]=f|1;H[e+f>>2]=f;if(f>>>0<=255){b=(f&-8)+19580|0;c=H[4885];a=1<<(f>>>3);R:{if(!(c&a)){H[4885]=a|c;a=b;break R}a=H[b+8>>2]}H[b+8>>2]=e;H[a+12>>2]=e;H[e+12>>2]=b;H[e+8>>2]=a;break Q}a=31;if(f>>>0<=16777215){a=f>>>8|0;g=a+1048320>>>16&8;a=a<>>16&4;a=a<>>16&2;a=(a<>>15|0)-(b|(c|g))|0;a=(a<<1|f>>>a+21&1)+28|0}H[e+28>>2]=a;H[e+16>>2]=0;H[e+20>>2]=0;b=(a<<2)+19844|0;S:{c=1<>2]=e;break T}a=f<<((a|0)==31?0:25-(a>>>1|0)|0);h=H[b>>2];while(1){b=h;if((H[b+4>>2]&-8)==(f|0)){break S}c=a>>>29|0;a=a<<1;c=(c&4)+b|0;h=H[c+16>>2];if(h){continue}break}H[c+16>>2]=e}H[e+24>>2]=b;H[e+12>>2]=e;H[e+8>>2]=e;break Q}a=H[b+8>>2];H[a+12>>2]=e;H[b+8>>2]=e;H[e+24>>2]=0;H[e+12>>2]=b;H[e+8>>2]=a}a=d+8|0;break a}U:{if(!i){break U}b=H[c+28>>2];a=(b<<2)+19844|0;V:{if(H[a>>2]==(c|0)){H[a>>2]=d;if(d){break V}m=19544,n=Wl(b)&j,H[m>>2]=n;break U}H[i+(H[i+16>>2]==(c|0)?16:20)>>2]=d;if(!d){break U}}H[d+24>>2]=i;a=H[c+16>>2];if(a){H[d+16>>2]=a;H[a+24>>2]=d}a=H[c+20>>2];if(!a){break U}H[d+20>>2]=a;H[a+24>>2]=d}W:{if(f>>>0<=15){a=f+h|0;H[c+4>>2]=a|3;a=a+c|0;H[a+4>>2]=H[a+4>>2]|1;break W}H[c+4>>2]=h|3;d=c+h|0;H[d+4>>2]=f|1;H[d+f>>2]=f;if(k){b=(k&-8)+19580|0;g=H[4890];a=1<<(k>>>3);X:{if(!(a&e)){H[4885]=a|e;a=b;break X}a=H[b+8>>2]}H[b+8>>2]=g;H[a+12>>2]=g;H[g+12>>2]=b;H[g+8>>2]=a}H[4890]=d;H[4887]=f}a=c+8|0}ha=l+16|0;return a|0}function Vd(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,G=0,J=0,K=0,L=0,M=0,O=0,Q=0,S=0,V=0,W=0,Y=0,Z=0,_=0,$=0,aa=0,ba=0,ca=0;g=ha-240|0;ha=g;W=H[a+36>>2];u=H[a+32>>2];H[g+184>>2]=0;H[g+188>>2]=0;H[g+176>>2]=0;H[g+180>>2]=0;H[g+168>>2]=0;H[g+172>>2]=0;H[g+160>>2]=0;H[g+164>>2]=0;H[g+152>>2]=0;H[g+156>>2]=0;H[g+144>>2]=0;H[g+148>>2]=0;if(e){Na(g+144|0,e);h=H[g+156>>2];d=H[g+160>>2]}else{d=0}d=d-h>>2;a:{if(d>>>0>=e>>>0){if(d>>>0<=e>>>0){break a}H[g+160>>2]=(e<<2)+h;break a}Na(g+144|12,e-d|0)}f=H[g+168>>2];d=H[g+172>>2]-f>>2;b:{if(d>>>0>=e>>>0){if(d>>>0<=e>>>0){break b}H[g+172>>2]=f+(e<<2);break b}Na(g+168|0,e-d|0)}c:{d:{f=H[g+180>>2];d=H[g+184>>2]-f>>2;e:{f:{if(d>>>0>=e>>>0){if(d>>>0>e>>>0){H[g+184>>2]=f+(e<<2)}H[g+136>>2]=0;H[g+128>>2]=0;H[g+132>>2]=0;if(e){break f}d=1;break e}Na(g+180|0,e-d|0);H[g+136>>2]=0;H[g+128>>2]=0;H[g+132>>2]=0}if(e>>>0>=1073741824){break d}d=e<<2;f=hl(d);H[g+128>>2]=f;i=d+f|0;H[g+136>>2]=i;lk(f,0,d);H[g+132>>2]=i;d=0}y=a+136|0;i=H[a+136>>2];f=H[a+140>>2]-i>>2;g:{if(f>>>0>>0){Na(y,e-f|0);break g}if(e>>>0>=f>>>0){break g}H[a+140>>2]=i+(e<<2)}H[g+104>>2]=0;H[g+108>>2]=0;H[g+96>>2]=0;H[g+100>>2]=0;H[g+88>>2]=0;H[g+92>>2]=0;H[g+80>>2]=0;H[g+84>>2]=0;H[g+72>>2]=0;H[g+76>>2]=0;f=g- -64|0;H[f>>2]=0;H[f+4>>2]=0;H[g+56>>2]=0;H[g+60>>2]=0;H[g+48>>2]=0;H[g+52>>2]=0;if(!d){d=e<<2;r=hl(d);z=lk(r,0,d)+d|0}d=H[a+40>>2];d=H[d+4>>2]-H[d>>2]|0;if((d|0)<5){break c}K=e&-2;L=e&1;Y=e&-4;Q=e&3;D=e-1|0;S=e<<2;Z=a+8|0;M=a+96|0;E=d>>>2|0;O=z-r|0;V=O&-4;A=O>>2;_=g+36|0;$=g+24|0;while(1){d=H[a+40>>2];f=H[d>>2];h:{i:{x=E-1|0;if(x>>>0>2]-f>>2>>>0){d=0;m=0;k=H[f+(x<<2)>>2];j:{if((k|0)==-1){break j}l=1;i=k+2|0;m=(k>>>0)%3|0;v=m?k-1|0:i;w=1<>>5|0;f=0;G=(m|0)!=0|(i|0)!=-1;J=H[u>>2];i=k;while(1){k:{if(H[J+(i>>>3&536870908)>>2]>>>i&1){break k}m=H[H[H[u+64>>2]+12>>2]+(i<<2)>>2];if((m|0)==-1){break k}j=H[W>>2];h=H[u+28>>2];s=H[j+(H[h+(m<<2)>>2]<<2)>>2];if((s|0)>=(x|0)){break k}n=m+1|0;o=H[j+(H[h+(((n>>>0)%3|0?n:m-2|0)<<2)>>2]<<2)>>2];if((o|0)>=(x|0)){break k}h=H[j+(H[h+(m+((m>>>0)%3|0?-1:2)<<2)>>2]<<2)>>2];if((h|0)>=(x|0)){break k}l:{if(!e){break l}m=H[(g+144|0)+N(f,12)>>2];n=N(e,h);o=N(e,o);s=N(e,s);h=0;j=0;if(D){while(1){H[m+(h<<2)>>2]=(H[(h+n<<2)+b>>2]+H[(h+o<<2)+b>>2]|0)-H[(h+s<<2)+b>>2];p=h|1;H[m+(p<<2)>>2]=(H[(n+p<<2)+b>>2]+H[(o+p<<2)+b>>2]|0)-H[(p+s<<2)+b>>2];h=h+2|0;j=j+2|0;if((K|0)!=(j|0)){continue}break}}if(!L){break l}H[m+(h<<2)>>2]=(H[(h+n<<2)+b>>2]+H[(h+o<<2)+b>>2]|0)-H[(h+s<<2)+b>>2]}m=4;f=f+1|0;if((f|0)==4){break j}}m:{if(l&1){h=i-2|0;m=i+1|0;i=-1;m=(m>>>0)%3|0?m:h;if((m|0)==-1|H[H[u>>2]+(m>>>3&536870908)>>2]>>>m&1){break m}m=H[H[H[u+64>>2]+12>>2]+(m<<2)>>2];if((m|0)==-1){break m}i=m+1|0;i=(i>>>0)%3|0?i:m-2|0;break m}n:{if((i>>>0)%3|0){h=i-1|0;break n}h=i+2|0;i=-1;if((h|0)==-1){break m}}i=-1;if(H[H[u>>2]+(h>>>3&536870908)>>2]>>>h&1){break m}m=H[H[H[u+64>>2]+12>>2]+(h<<2)>>2];if((m|0)==-1){break m}if((m>>>0)%3|0){i=m-1|0;break m}i=m+2|0}if((i|0)==(k|0)){m=f;break j}if(!((l^1)&1|(i|0)!=-1)){if(!G){m=f;break j}if(w&H[H[u>>2]+(B<<2)>>2]){m=f;break j}i=H[H[H[u+64>>2]+12>>2]+(v<<2)>>2];if((i|0)==-1){m=f;break j}l=0;i=(i>>>0)%3|0?i-1|0:i+2|0}m=f;if((i|0)!=-1){continue}break}}F[g+16|0]=0;H[g+8>>2]=0;H[g+12>>2]=0;H[g+44>>2]=0;H[g+36>>2]=0;H[g+40>>2]=0;H[g+28>>2]=0;H[g+32>>2]=0;H[g+20>>2]=0;H[g+24>>2]=0;J=N(e,x)<<2;s=J+b|0;h=(N(E-2|0,e)<<2)+b|0;l=H[y>>2];i=0;if(e){while(1){k=d<<2;f=H[k+h>>2]-H[k+s>>2]|0;H[k+r>>2]=f;H[k+l>>2]=(f|0)<0?(f^-1)<<1|1:f<<1;k=f;f=f>>31;i=((k^f)-f|0)+i|0;d=d+1|0;if((e|0)!=(d|0)){continue}break}}d=g+200|0;ef(d,M,l,e);f=hf(d);k=ka;n=f;f=H[d+12>>2];d=H[d+16>>2];l=(((f-d|0)+1|0)/64|0)+d<<3;d=d<<3;j=d;f=l+d|0;d=(l>>31)+(d>>31)|0;d=f>>>0>>0?d+1|0:d;l=f;f=n+f|0;d=d+k|0;d=f>>>0>>0?d+1|0:d;k=f;B=(m|0)<=0;if(!B){j=(m<<3)-8|0;f=j+(g+48|0)|0;n=f;l=m+H[f>>2]|0;f=H[f+4>>2];f=l>>>0>>0?f+1|0:f;H[n>>2]=l;H[n+4>>2]=f;t=U(df(l,H[j+(g+80|0)>>2])*(+(l>>>0)+ +(f|0)*4294967296));o:{if(P(t)<0x8000000000000000){l=P(t)>=1?~~(t>0?R(T(t*2.3283064365386963e-10),4294967295):U((t-+(~~t>>>0>>>0))*2.3283064365386963e-10))>>>0:0;f=~~t>>>0;break o}l=-2147483648;f=0}f=f+k|0;k=f}H[g+20>>2]=0;F[g+16|0]=0;H[g+8>>2]=k;H[g+12>>2]=i;Sa($,h,h+S|0);cd(_,r,z);p:{q:{if(!B){k=(g+124|0)+m|0;f=k-1|0;d=(m<<3)-8|0;G=d+(g+48|0)|0;aa=d+(g+80|0)|0;l=1;v=0;while(1){d=g+124|0;lk(d,1,m);v=v+1|0;lk(d,0,v);r:{s:while(1){if(e){lk(H[g+128>>2],0,S)}j=0;d=H[g+128>>2];w=0;while(1){if(!I[(g+124|0)+j|0]){t:{if(!e){break t}i=H[(g+144|0)+N(j,12)>>2];n=0;h=0;o=0;if(D>>>0>2){while(1){p=h<<2;q=p+d|0;H[q>>2]=H[q>>2]+H[i+p>>2];q=p|4;C=q+d|0;H[C>>2]=H[C>>2]+H[i+q>>2];q=p|8;C=q+d|0;H[C>>2]=H[C>>2]+H[i+q>>2];p=p|12;q=p+d|0;H[q>>2]=H[q>>2]+H[i+p>>2];h=h+4|0;o=o+4|0;if((Y|0)!=(o|0)){continue}break}}if(!Q){break t}while(1){o=h<<2;p=o+d|0;H[p>>2]=H[p>>2]+H[i+o>>2];h=h+1|0;n=n+1|0;if((Q|0)!=(n|0)){continue}break}}w=1<>2];i=0;break u}h=0;i=H[g+128>>2];d=0;if(D){while(1){j=h<<2;n=j+i|0;H[n>>2]=H[n>>2]/(l|0);j=i+(j|4)|0;H[j>>2]=H[j>>2]/(l|0);h=h+2|0;d=d+2|0;if((K|0)!=(d|0)){continue}break}}if(L){d=i+(h<<2)|0;H[d>>2]=H[d>>2]/(l|0)}n=H[y>>2];d=0;i=0;if(!e){break u}o=H[g+128>>2];while(1){j=d<<2;h=H[j+o>>2]-H[j+s>>2]|0;H[j+r>>2]=h;H[j+n>>2]=(h|0)<0?(h^-1)<<1|1:h<<1;j=i;i=h>>31;i=j+((i^h)-i|0)|0;d=d+1|0;if((e|0)!=(d|0)){continue}break}}d=g+200|0;ef(d,M,n,e);h=hf(d);n=h;h=H[d+12>>2];d=H[d+16>>2];j=(((h-d|0)+1|0)/64|0)+d<<3;d=d<<3;h=j+d|0;d=n+h|0;h=d;if((m|0)>0){d=H[G+4>>2];j=H[G>>2];t=U(df(j,H[aa>>2]+l|0)*(+(j>>>0)+ +(d|0)*4294967296));v:{if(P(t)<0x8000000000000000){d=~~t>>>0;break v}d=0}h=d+h|0}d=H[g+8>>2];if(!((d|0)<=(h|0)&((d|0)<(h|0)|(i|0)>=H[g+12>>2]))){H[g+20>>2]=l;F[g+16|0]=w;H[g+8>>2]=h;H[g+12>>2]=i;n=H[g+132>>2];j=H[g+128>>2];o=n-j|0;h=o>>2;i=H[g+32>>2];d=H[g+24>>2];w:{if(h>>>0<=i-d>>2>>>0){o=H[g+28>>2]-d|0;i=o+j|0;w=o>>2;o=w>>>0>>0?i:n;p=o-j|0;if((j|0)!=(o|0)){kk(d,j,p)}if(h>>>0>w>>>0){h=H[g+28>>2];if((n|0)==(o|0)){break w}while(1){H[h>>2]=H[i>>2];h=h+4|0;i=i+4|0;if((n|0)!=(i|0)){continue}break}break w}h=d+p|0;break w}if(d){H[g+28>>2]=d;bl(d);H[g+32>>2]=0;H[g+24>>2]=0;H[g+28>>2]=0;i=0}if((o|0)<0){break q}d=i>>1;d=i>>>0<2147483644?d>>>0>h>>>0?d:h:1073741823;if(d>>>0>=1073741824){break q}d=d<<2;h=hl(d);H[g+24>>2]=h;H[g+32>>2]=d+h;if((j|0)==(n|0)){break w}d=o&-4;h=jk(h,j,d)+d|0}H[g+28>>2]=h;i=H[g+44>>2];d=H[g+36>>2];x:{if(i-d>>2>>>0>=A>>>0){h=H[g+40>>2]-d|0;i=h+r|0;n=h>>2;j=n>>>0>>0?i:z;h=j-r|0;if((j|0)!=(r|0)){kk(d,r,h)}if(n>>>0>>0){h=H[g+40>>2];if((j|0)==(z|0)){break x}while(1){H[h>>2]=H[i>>2];h=h+4|0;i=i+4|0;if((z|0)!=(i|0)){continue}break}break x}h=d+h|0;break x}if(d){H[g+40>>2]=d;bl(d);H[g+44>>2]=0;H[g+36>>2]=0;H[g+40>>2]=0;i=0}if((O|0)<0){break p}d=i>>1;d=i>>>0<2147483644?d>>>0>A>>>0?d:A:1073741823;if(d>>>0>=1073741824){break p}d=d<<2;h=hl(d);H[g+36>>2]=h;H[g+44>>2]=d+h;if((r|0)==(z|0)){break x}h=jk(h,r,V)+V|0}H[g+40>>2]=h}if((f|0)==(g+124|0)){break r}h=I[f|0];i=-1;while(1){n=h&255;d=i-1|0;j=d+k|0;h=I[j|0];if(n>>>0>h>>>0){d=k;while(1){d=d-1|0;n=I[d|0];if(n>>>0<=h>>>0){continue}break}F[j|0]=n;F[d|0]=h;if((i|0)==-1){continue s}h=i+k|0;i=f;while(1){d=I[h|0];F[h|0]=I[i|0];F[i|0]=d;h=h+1|0;i=i-1|0;if(h>>>0>>0){continue}break}continue s}i=d;if((j|0)!=(g+124|0)){continue}break}break}d=g+124|0;h=d;i=f;if(d>>>0>=f>>>0){break r}while(1){d=I[h|0];F[h|0]=I[i|0];F[i|0]=d;h=h+1|0;i=i-1|0;if(h>>>0>>0){continue}break}}l=l+1|0;if((m|0)!=(v|0)){continue}break}}if((m|0)>0){d=(m<<3)+g|0;i=d;k=H[g+20>>2];f=k+H[d+72>>2]|0;d=H[d+76>>2]+(k>>31)|0;H[i+72>>2]=f;H[i+76>>2]=f>>>0>>0?d+1|0:d}if(!e){break h}d=H[y>>2];h=0;f=H[g+36>>2];o=0;if(!D){break i}while(1){k=h<<2;i=H[k+f>>2];H[d+k>>2]=(i|0)<0?(i^-1)<<1|1:i<<1;k=k|4;i=H[k+f>>2];H[d+k>>2]=(i|0)<0?(i^-1)<<1|1:i<<1;h=h+2|0;o=o+2|0;if((K|0)!=(o|0)){continue}break}break i}Ka();X()}Ka();X()}Yc();X()}if(!L){break h}i=h<<2;f=H[i+f>>2];H[d+i>>2]=(f|0)<0?(f^-1)<<1|1:f<<1}gf(g+200|0,M,H[y>>2],e);y:{if(B){break y}k=N(m,12)+a|0;i=0;while(1){z:{h=H[k+40>>2];l=h<<5;d=H[k+36>>2];A:{if(!(I[g+16|0]>>>i&1)){f=d;B:{if((d|0)!=(l|0)){break B}if((d+1|0)<0){break z}C:{if(d>>>0<=1073741822){h=h<<6;l=d+32&-32;l=h>>>0>l>>>0?h:l;f=d;if(d>>>0>=l>>>0){break B}if((l|0)>=0){break C}break z}l=2147483647;f=-1;if(d>>>0>=2147483647){break B}}l=(l-1>>>5|0)+1|0;f=hl(l<<2);h=H[k+32>>2];H[f+((d>>>0<33?0:d-1>>>5|0)<<2)>>2]=0;D:{E:{if(!d){break E}j=d>>>5<<2;n=kk(f,h,j);o=d&31;if(!o){break E}f=j+n|0;p=f;q=H[f>>2];f=-1>>>32-o|0;H[p>>2]=q&(f^-1)|f&H[h+j>>2];H[k+32>>2]=n;H[k+36>>2]=d;H[k+40>>2]=l;break D}H[k+32>>2]=f;H[k+36>>2]=d;H[k+40>>2]=l;f=d;if(!h){break B}}bl(h);f=H[k+36>>2]}H[k+36>>2]=f+1;d=H[k+32>>2]+(f>>>3&536870908)|0;H[d>>2]=H[d>>2]|1<>>0<=1073741822){h=h<<6;l=d+32&-32;l=h>>>0>l>>>0?h:l;f=d;if(d>>>0>=l>>>0){break F}if((l|0)<0){break z}break G}l=2147483647;f=-1;if(d>>>0>=2147483647){break F}}l=(l-1>>>5|0)+1|0;f=hl(l<<2);h=H[k+32>>2];H[f+((d>>>0<33?0:d-1>>>5|0)<<2)>>2]=0;H:{I:{if(!d){break I}j=d>>>5<<2;n=kk(f,h,j);o=d&31;if(!o){break I}f=j+n|0;p=f;q=H[f>>2];f=-1>>>32-o|0;H[p>>2]=q&(f^-1)|f&H[h+j>>2];H[k+32>>2]=n;H[k+36>>2]=d;H[k+40>>2]=l;break H}H[k+32>>2]=f;H[k+36>>2]=d;H[k+40>>2]=l;f=d;if(!h){break F}}bl(h);f=H[k+36>>2]}H[k+36>>2]=f+1;d=H[k+32>>2]+(f>>>3&536870908)|0;h=H[d>>2];ba=d,ca=Wl(f)&h,H[ba>>2]=ca}i=i+1|0;if((m|0)!=(i|0)){continue}break y}break}Ka();X()}d=H[g+24>>2];f=H[d>>2];d=H[d+4>>2];i=H[s+4>>2];H[g+232>>2]=H[s>>2];H[g+236>>2]=i;H[g+224>>2]=f;H[g+228>>2]=d;Rd(g+200|0,Z,g+232|0,g+224|0);d=c+J|0;H[d>>2]=H[g+200>>2];H[d+4>>2]=H[g+204>>2];d=H[g+36>>2];if(d){H[g+40>>2]=d;bl(d)}d=H[g+24>>2];if(d){H[g+28>>2]=d;bl(d)}d=(E|0)>2;E=x;if(d){continue}break}break c}Ka();X()}d=H[g+144>>2];if((e|0)>0){lk(d,0,e<<2)}e=H[d>>2];d=H[d+4>>2];f=H[b+4>>2];H[g+200>>2]=H[b>>2];H[g+204>>2]=f;H[g+232>>2]=e;H[g+236>>2]=d;Rd(g+8|0,a+8|0,g+200|0,g+232|0);H[c>>2]=H[g+8>>2];H[c+4>>2]=H[g+12>>2];if(r){bl(r)}a=H[g+128>>2];if(a){H[g+132>>2]=a;bl(a)}a=H[g+180>>2];if(a){H[g+184>>2]=a;bl(a)}a=H[g+168>>2];if(a){H[g+172>>2]=a;bl(a)}a=H[g+156>>2];if(a){H[g+160>>2]=a;bl(a)}a=H[g+144>>2];if(a){H[g+148>>2]=a;bl(a)}ha=g+240|0;return 1}function je(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,G=0,J=0,K=0,L=0,M=0,O=0,Q=0,S=0,V=0,W=0,Y=0,Z=0,_=0,$=0,aa=0,ba=0,ca=0;g=ha-240|0;ha=g;Y=H[a+36>>2];Q=H[a+32>>2];H[g+184>>2]=0;H[g+188>>2]=0;H[g+176>>2]=0;H[g+180>>2]=0;H[g+168>>2]=0;H[g+172>>2]=0;H[g+160>>2]=0;H[g+164>>2]=0;H[g+152>>2]=0;H[g+156>>2]=0;H[g+144>>2]=0;H[g+148>>2]=0;if(e){Na(g+144|0,e);h=H[g+156>>2];d=H[g+160>>2]}else{d=0}d=d-h>>2;a:{if(d>>>0>=e>>>0){if(d>>>0<=e>>>0){break a}H[g+160>>2]=(e<<2)+h;break a}Na(g+144|12,e-d|0)}d=H[g+168>>2];f=H[g+172>>2]-d>>2;b:{if(f>>>0>=e>>>0){if(e>>>0>=f>>>0){break b}H[g+172>>2]=d+(e<<2);break b}Na(g+168|0,e-f|0)}c:{d:{d=H[g+180>>2];f=H[g+184>>2]-d>>2;e:{f:{if(f>>>0>=e>>>0){if(e>>>0>>0){H[g+184>>2]=d+(e<<2)}H[g+136>>2]=0;H[g+128>>2]=0;H[g+132>>2]=0;if(e){break f}d=1;break e}Na(g+180|0,e-f|0);H[g+136>>2]=0;H[g+128>>2]=0;H[g+132>>2]=0}if(e>>>0>=1073741824){break d}j=e<<2;f=hl(j);H[g+128>>2]=f;d=f+j|0;H[g+136>>2]=d;lk(f,0,j);H[g+132>>2]=d;d=0}A=a+136|0;f=H[a+136>>2];j=H[a+140>>2]-f>>2;g:{if(j>>>0>>0){Na(A,e-j|0);break g}if(e>>>0>=j>>>0){break g}H[a+140>>2]=f+(e<<2)}H[g+104>>2]=0;H[g+108>>2]=0;H[g+96>>2]=0;H[g+100>>2]=0;H[g+88>>2]=0;H[g+92>>2]=0;H[g+80>>2]=0;H[g+84>>2]=0;H[g+72>>2]=0;H[g+76>>2]=0;f=g- -64|0;H[f>>2]=0;H[f+4>>2]=0;H[g+56>>2]=0;H[g+60>>2]=0;H[g+48>>2]=0;H[g+52>>2]=0;if(!d){d=e<<2;t=hl(d);B=lk(t,0,d)+d|0}d=H[a+40>>2];d=H[d+4>>2]-H[d>>2]|0;if((d|0)<5){break c}K=e&-2;L=e&1;Z=e&-4;S=e&3;D=e-1|0;V=e<<2;_=a+8|0;M=a+96|0;E=d>>>2|0;O=B-t|0;W=O&-4;C=O>>2;$=g+36|0;aa=g+24|0;while(1){d=H[a+40>>2];f=H[d>>2];h:{i:{z=E-1|0;if(z>>>0>2]-f>>2>>>0){d=0;j=0;k=H[f+(z<<2)>>2];j:{if((k|0)==-1){break j}y=H[Q+12>>2];i=k+2|0;j=(k>>>0)%3|0;l=y+((j?k-1|0:i)<<2)|0;f=0;n=(j|0)!=0|(i|0)!=-1;r=1;i=k;while(1){s=H[y+(i<<2)>>2];k:{if((s|0)==-1){break k}u=-1;v=H[Y>>2];m=H[Q>>2];h=v+(H[m+(s<<2)>>2]<<2)|0;j=s+1|0;j=(j>>>0)%3|0?j:s-2|0;if((j|0)!=-1){u=H[m+(j<<2)>>2]}q=H[h>>2];l:{m:{if((s>>>0)%3|0){h=s-1|0;break m}h=s+2|0;j=-1;if((h|0)==-1){break l}}j=H[m+(h<<2)>>2]}if((q|0)>=(z|0)){break k}h=H[v+(u<<2)>>2];if((h|0)>=(z|0)){break k}j=H[v+(j<<2)>>2];if((j|0)>=(z|0)){break k}s=H[(g+144|0)+N(f,12)>>2];n:{if(!e){break n}m=N(e,j);v=N(e,h);q=N(e,q);h=0;w=0;if(D){while(1){H[s+(h<<2)>>2]=(H[(h+m<<2)+b>>2]+H[(h+v<<2)+b>>2]|0)-H[(h+q<<2)+b>>2];j=h|1;H[s+(j<<2)>>2]=(H[(j+m<<2)+b>>2]+H[(j+v<<2)+b>>2]|0)-H[(j+q<<2)+b>>2];h=h+2|0;w=w+2|0;if((K|0)!=(w|0)){continue}break}}if(!L){break n}H[s+(h<<2)>>2]=(H[(h+m<<2)+b>>2]+H[(h+v<<2)+b>>2]|0)-H[(h+q<<2)+b>>2]}j=4;f=f+1|0;if((f|0)==4){break j}}o:{if(r&1){h=i+1|0;i=(h>>>0)%3|0?h:i-2|0;j=-1;if((i|0)==-1){break o}i=H[y+(i<<2)>>2];j=-1;if((i|0)==-1){break o}j=i+1|0;j=(j>>>0)%3|0?j:i-2|0;break o}p:{if((i>>>0)%3|0){h=i-1|0;break p}h=i+2|0;j=-1;if((h|0)==-1){break o}}i=H[y+(h<<2)>>2];j=-1;if((i|0)==-1){break o}j=i-1|0;if((i>>>0)%3|0){break o}j=i+2|0}i=j;if((k|0)==(i|0)){j=f;break j}if(!((r^1)&1|(i|0)!=-1)){if(!n){j=f;break j}j=H[l>>2];if((j|0)==-1){j=f;break j}r=0;i=(j>>>0)%3|0?j-1|0:j+2|0}j=f;if((i|0)!=-1){continue}break}}F[g+16|0]=0;H[g+8>>2]=0;H[g+12>>2]=0;H[g+44>>2]=0;H[g+36>>2]=0;H[g+40>>2]=0;H[g+28>>2]=0;H[g+32>>2]=0;H[g+20>>2]=0;H[g+24>>2]=0;v=N(e,z)<<2;G=v+b|0;q=(N(E-2|0,e)<<2)+b|0;i=H[A>>2];h=0;if(e){while(1){f=d<<2;k=H[f+q>>2]-H[f+G>>2]|0;H[f+t>>2]=k;H[f+i>>2]=(k|0)<0?(k^-1)<<1|1:k<<1;f=k>>31;h=((f^k)-f|0)+h|0;d=d+1|0;if((e|0)!=(d|0)){continue}break}}f=g+200|0;ef(f,M,i,e);d=hf(f);k=ka;o=d;d=H[f+16>>2];i=(((H[f+12>>2]-d|0)+1|0)/64|0)+d<<3;d=d<<3;f=d;n=i+d|0;d=(i>>31)+(d>>31)|0;d=f>>>0>n>>>0?d+1|0:d;f=n;n=o+f|0;i=d+k|0;i=f>>>0>n>>>0?i+1|0:i;f=n;d=i;y=(j|0)<=0;if(!y){n=(j<<3)-8|0;i=n+(g+48|0)|0;k=i;l=j+H[i>>2]|0;i=H[i+4>>2];i=j>>>0>l>>>0?i+1|0:i;H[k>>2]=l;H[k+4>>2]=i;x=U(df(l,H[n+(g+80|0)>>2])*(+(l>>>0)+ +(i|0)*4294967296));q:{if(P(x)<0x8000000000000000){k=P(x)>=1?~~(x>0?R(T(x*2.3283064365386963e-10),4294967295):U((x-+(~~x>>>0>>>0))*2.3283064365386963e-10))>>>0:0;i=~~x>>>0;break q}k=-2147483648;i=0}i=f+i|0;f=i}H[g+20>>2]=0;F[g+16|0]=0;H[g+8>>2]=f;H[g+12>>2]=h;Sa(aa,q,q+V|0);cd($,t,B);r:{s:{if(!y){n=(g+124|0)+j|0;k=n-1|0;d=(j<<3)-8|0;s=d+(g+48|0)|0;q=d+(g+80|0)|0;f=1;J=0;while(1){d=g+124|0;lk(d,1,j);J=J+1|0;lk(d,0,J);t:{u:while(1){if(e){lk(H[g+128>>2],0,V)}w=0;o=H[g+128>>2];r=0;while(1){if(!I[(g+124|0)+w|0]){v:{if(!e){break v}p=H[(g+144|0)+N(w,12)>>2];i=0;h=0;u=0;if(D>>>0>2){while(1){m=h<<2;d=m+o|0;H[d>>2]=H[d>>2]+H[m+p>>2];l=m|4;d=l+o|0;H[d>>2]=H[d>>2]+H[l+p>>2];l=m|8;d=l+o|0;H[d>>2]=H[d>>2]+H[l+p>>2];l=m|12;d=l+o|0;H[d>>2]=H[d>>2]+H[l+p>>2];h=h+4|0;u=u+4|0;if((Z|0)!=(u|0)){continue}break}}if(!S){break v}while(1){l=h<<2;d=l+o|0;H[d>>2]=H[d>>2]+H[l+p>>2];h=h+1|0;i=i+1|0;if((S|0)!=(i|0)){continue}break}}r=1<>2];d=0;break w}h=0;m=H[g+128>>2];d=0;if(D){while(1){l=h<<2;i=l+m|0;H[i>>2]=H[i>>2]/(f|0);i=m+(l|4)|0;H[i>>2]=H[i>>2]/(f|0);h=h+2|0;d=d+2|0;if((K|0)!=(d|0)){continue}break}}if(L){d=m+(h<<2)|0;H[d>>2]=H[d>>2]/(f|0)}i=H[A>>2];d=0;if(!e){break w}l=H[g+128>>2];h=0;while(1){m=d<<2;p=H[m+l>>2]-H[m+G>>2]|0;H[m+t>>2]=p;H[i+m>>2]=(p|0)<0?(p^-1)<<1|1:p<<1;o=h;h=p>>31;h=o+((h^p)-h|0)|0;d=d+1|0;if((e|0)!=(d|0)){continue}break}d=h}h=g+200|0;ef(h,M,i,e);i=hf(h);o=i;i=H[h+16>>2];l=(((H[h+12>>2]-i|0)+1|0)/64|0)+i<<3;i=i<<3;h=i;m=l+h|0;h=o+m|0;if((j|0)>0){l=H[s+4>>2];i=H[s>>2];x=U(df(i,H[q>>2]+f|0)*(+(i>>>0)+ +(l|0)*4294967296));x:{if(P(x)<0x8000000000000000){i=~~x>>>0;break x}i=0}h=i+h|0}i=H[g+8>>2];if(!((i|0)<=(h|0)&((h|0)>(i|0)|(d|0)>=H[g+12>>2]))){H[g+20>>2]=f;F[g+16|0]=r;H[g+8>>2]=h;H[g+12>>2]=d;p=H[g+132>>2];o=H[g+128>>2];l=p-o|0;m=l>>2;i=H[g+32>>2];r=H[g+24>>2];y:{if(m>>>0<=i-r>>2>>>0){d=H[g+28>>2]-r|0;i=d+o|0;d=d>>2;l=d>>>0>>0?i:p;h=l-o|0;if((l|0)!=(o|0)){kk(r,o,h)}if(d>>>0>>0){h=H[g+28>>2];if((l|0)==(p|0)){break y}while(1){H[h>>2]=H[i>>2];h=h+4|0;i=i+4|0;if((p|0)!=(i|0)){continue}break}break y}h=h+r|0;break y}if(r){H[g+28>>2]=r;bl(r);H[g+32>>2]=0;H[g+24>>2]=0;H[g+28>>2]=0;i=0}if((l|0)<0){break s}d=i>>1;d=i>>>0<2147483644?d>>>0>m>>>0?d:m:1073741823;if(d>>>0>=1073741824){break s}d=d<<2;h=hl(d);H[g+24>>2]=h;H[g+32>>2]=d+h;if((p|0)==(o|0)){break y}d=l&-4;h=jk(h,o,d)+d|0}H[g+28>>2]=h;i=H[g+44>>2];m=H[g+36>>2];z:{if(i-m>>2>>>0>=C>>>0){d=H[g+40>>2]-m|0;i=d+t|0;d=d>>2;l=d>>>0>>0?i:B;h=l-t|0;if((l|0)!=(t|0)){kk(m,t,h)}if(d>>>0>>0){h=H[g+40>>2];if((l|0)==(B|0)){break z}while(1){H[h>>2]=H[i>>2];h=h+4|0;i=i+4|0;if((B|0)!=(i|0)){continue}break}break z}h=h+m|0;break z}if(m){H[g+40>>2]=m;bl(m);H[g+44>>2]=0;H[g+36>>2]=0;H[g+40>>2]=0;i=0}if((O|0)<0){break r}d=i>>1;d=i>>>0<2147483644?d>>>0>C>>>0?d:C:1073741823;if(d>>>0>=1073741824){break r}d=d<<2;h=hl(d);H[g+36>>2]=h;H[g+44>>2]=d+h;if((t|0)==(B|0)){break z}h=jk(h,t,W)+W|0}H[g+40>>2]=h}if((k|0)==(g+124|0)){break t}h=I[k|0];i=-1;while(1){l=h&255;d=i-1|0;m=d+n|0;h=I[m|0];if(l>>>0>h>>>0){d=n;while(1){d=d-1|0;l=I[d|0];if(l>>>0<=h>>>0){continue}break}F[m|0]=l;F[d|0]=h;if((i|0)==-1){continue u}h=i+n|0;i=k;while(1){d=I[h|0];F[h|0]=I[i|0];F[i|0]=d;h=h+1|0;i=i-1|0;if(h>>>0>>0){continue}break}continue u}i=d;if((m|0)!=(g+124|0)){continue}break}break}d=g+124|0;h=d;i=k;if(d>>>0>=i>>>0){break t}while(1){d=I[h|0];F[h|0]=I[i|0];F[i|0]=d;h=h+1|0;i=i-1|0;if(h>>>0>>0){continue}break}}f=f+1|0;if((j|0)!=(J|0)){continue}break}}if((j|0)>0){i=(j<<3)+g|0;d=H[g+20>>2];f=d;k=d+H[i+72>>2]|0;d=H[i+76>>2]+(d>>31)|0;H[i+72>>2]=k;H[i+76>>2]=f>>>0>k>>>0?d+1|0:d}if(!e){break h}k=H[A>>2];h=0;i=H[g+36>>2];u=0;if(!D){break i}while(1){d=h<<2;f=H[d+i>>2];H[d+k>>2]=(f|0)<0?(f^-1)<<1|1:f<<1;d=d|4;f=H[d+i>>2];H[d+k>>2]=(f|0)<0?(f^-1)<<1|1:f<<1;h=h+2|0;u=u+2|0;if((K|0)!=(u|0)){continue}break}break i}Ka();X()}Ka();X()}Yc();X()}if(!L){break h}d=h<<2;f=H[d+i>>2];H[d+k>>2]=(f|0)<0?(f^-1)<<1|1:f<<1}gf(g+200|0,M,H[A>>2],e);A:{if(y){break A}k=N(j,12)+a|0;i=0;while(1){B:{n=H[k+40>>2];h=n<<5;d=H[k+36>>2];C:{if(!(I[g+16|0]>>>i&1)){f=d;D:{if((d|0)!=(h|0)){break D}if((d+1|0)<0){break B}E:{if(d>>>0<=1073741822){n=n<<6;h=d+32&-32;h=h>>>0>>0?n:h;f=d;if(d>>>0>=h>>>0){break D}if((h|0)>=0){break E}break B}h=2147483647;f=-1;if(d>>>0>=2147483647){break D}}q=(h-1>>>5|0)+1|0;f=hl(q<<2);m=H[k+32>>2];H[f+((d>>>0<33?0:d-1>>>5|0)<<2)>>2]=0;F:{G:{if(!d){break G}l=d>>>5<<2;n=kk(f,m,l);h=d&31;if(!h){break G}f=l+n|0;o=f;p=H[f>>2];f=-1>>>32-h|0;H[o>>2]=p&(f^-1)|f&H[m+l>>2];H[k+32>>2]=n;H[k+36>>2]=d;H[k+40>>2]=q;break F}H[k+32>>2]=f;H[k+36>>2]=d;H[k+40>>2]=q;f=d;if(!m){break D}}bl(m);f=H[k+36>>2]}H[k+36>>2]=f+1;d=H[k+32>>2]+(f>>>3&536870908)|0;H[d>>2]=H[d>>2]|1<>>0<=1073741822){n=n<<6;h=d+32&-32;h=h>>>0>>0?n:h;f=d;if(d>>>0>=h>>>0){break H}if((h|0)<0){break B}break I}h=2147483647;f=-1;if(d>>>0>=2147483647){break H}}q=(h-1>>>5|0)+1|0;f=hl(q<<2);m=H[k+32>>2];H[f+((d>>>0<33?0:d-1>>>5|0)<<2)>>2]=0;J:{K:{if(!d){break K}l=d>>>5<<2;n=kk(f,m,l);h=d&31;if(!h){break K}f=l+n|0;o=f;p=H[f>>2];f=-1>>>32-h|0;H[o>>2]=p&(f^-1)|f&H[m+l>>2];H[k+32>>2]=n;H[k+36>>2]=d;H[k+40>>2]=q;break J}H[k+32>>2]=f;H[k+36>>2]=d;H[k+40>>2]=q;f=d;if(!m){break H}}bl(m);f=H[k+36>>2]}H[k+36>>2]=f+1;h=H[k+32>>2]+(f>>>3&536870908)|0;d=H[h>>2];ba=h,ca=Wl(f)&d,H[ba>>2]=ca}i=i+1|0;if((j|0)!=(i|0)){continue}break A}break}Ka();X()}d=H[g+24>>2];j=H[d>>2];f=H[d+4>>2];d=H[G+4>>2];H[g+232>>2]=H[G>>2];H[g+236>>2]=d;H[g+224>>2]=j;H[g+228>>2]=f;Rd(g+200|0,_,g+232|0,g+224|0);d=c+v|0;H[d>>2]=H[g+200>>2];H[d+4>>2]=H[g+204>>2];d=H[g+36>>2];if(d){H[g+40>>2]=d;bl(d)}d=H[g+24>>2];if(d){H[g+28>>2]=d;bl(d)}d=(E|0)>2;E=z;if(d){continue}break}break c}Ka();X()}d=H[g+144>>2];if((e|0)>0){lk(d,0,e<<2)}f=H[d>>2];e=H[d+4>>2];d=H[b+4>>2];H[g+200>>2]=H[b>>2];H[g+204>>2]=d;H[g+232>>2]=f;H[g+236>>2]=e;Rd(g+8|0,a+8|0,g+200|0,g+232|0);H[c>>2]=H[g+8>>2];H[c+4>>2]=H[g+12>>2];if(t){bl(t)}a=H[g+128>>2];if(a){H[g+132>>2]=a;bl(a)}a=H[g+180>>2];if(a){H[g+184>>2]=a;bl(a)}a=H[g+168>>2];if(a){H[g+172>>2]=a;bl(a)}a=H[g+156>>2];if(a){H[g+160>>2]=a;bl(a)}a=H[g+144>>2];if(a){H[g+148>>2]=a;bl(a)}ha=g+240|0;return 1}function Ij(a){var b=0,c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0;v=ha-16|0;ha=v;b=hl(88);H[b>>2]=0;H[b+4>>2]=0;H[b+56>>2]=0;H[b+48>>2]=0;H[b+52>>2]=0;H[b+40>>2]=0;H[b+44>>2]=0;H[b+32>>2]=0;H[b+36>>2]=0;H[b+24>>2]=0;H[b+28>>2]=0;H[b+16>>2]=0;H[b+20>>2]=0;H[b+8>>2]=0;H[b+12>>2]=0;c=b- -64|0;H[c>>2]=0;H[c+4>>2]=0;H[b+72>>2]=0;H[b+76>>2]=0;H[b+80>>2]=0;H[b+84>>2]=0;H[b+60>>2]=b;c=a;u=ha-16|0;ha=u;H[b+80>>2]=0;H[b+84>>2]=0;d=H[b+76>>2];a=b;H[b+76>>2]=0;if(d){bl(d)}H[a+68>>2]=0;H[a+72>>2]=0;d=a- -64|0;b=H[d>>2];H[d>>2]=0;if(b){bl(b)}d=H[c+4>>2];g=H[c>>2];h=(d-g|0)/12|0;b=N(h,3);e=H[a>>2];f=H[a+4>>2]-e>>2;a:{if(b>>>0>f>>>0){Na(a,b-f|0);d=H[c+4>>2];g=H[c>>2];h=(d-g|0)/12|0;break a}if(b>>>0>=f>>>0){break a}H[a+4>>2]=e+(b<<2)}b:{if((d|0)==(g|0)){break b}d=h>>>0>1?h:1;e=d&1;c=H[a>>2];b=0;if(h>>>0>=2){i=d&-2;h=0;while(1){d=N(b,12);m=d+c|0;f=d+g|0;H[m>>2]=H[f>>2];H[c+(d|4)>>2]=H[f+4>>2];H[m+8>>2]=H[f+8>>2];f=N(b|1,12);d=f+c|0;f=f+g|0;H[d>>2]=H[f>>2];H[d+4>>2]=H[f+4>>2];H[d+8>>2]=H[f+8>>2];b=b+2|0;h=h+2|0;if((i|0)!=(h|0)){continue}break}}if(!e){break b}h=c;c=N(b,12);b=h+c|0;c=c+g|0;H[b>>2]=H[c>>2];H[b+4>>2]=H[c+4>>2];H[b+8>>2]=H[c+8>>2]}H[u+12>>2]=-1;b=0;d=0;f=0;i=ha-32|0;ha=i;c:{r=u+12|0;d:{if(!r){break d}h=H[a+4>>2];m=H[a>>2];c=h-m|0;j=c>>2;g=H[a+12>>2];e=H[a+16>>2]-g>>2;e:{if(j>>>0>e>>>0){tb(a+12|0,j-e|0,14880);h=H[a+4>>2];m=H[a>>2];c=h-m|0;j=c>>2;break e}if(e>>>0<=j>>>0){break e}H[a+16>>2]=g+(j<<2)}H[i+24>>2]=0;H[i+16>>2]=0;H[i+20>>2]=0;e=(h|0)==(m|0);if(!e){if((c|0)<0){break c}d=hl(c);H[i+20>>2]=d;H[i+16>>2]=d;H[i+24>>2]=(j<<2)+d}f:{g:{h:{i:{j:{if(c){while(1){g=H[(b<<2)+m>>2];c=H[i+20>>2]-d>>2;k:{if(g>>>0>>0){break k}H[i>>2]=0;e=g+1|0;if(e>>>0>c>>>0){tb(i+16|0,e-c|0,i);m=H[a>>2];h=H[a+4>>2];d=H[i+16>>2];break k}if(c>>>0<=e>>>0){break k}H[i+20>>2]=(e<<2)+d}c=(g<<2)+d|0;H[c>>2]=H[c>>2]+1;b=b+1|0;c=h-m|0;j=c>>2;if(b>>>0>>0){continue}break}break j}c=0;if(!e){break i}break h}if((h|0)==(m|0)){c=0;break h}if(c>>>0>=2147483645){break g}}c=hl(c<<1);lk(c,255,j<<3)}H[i+8>>2]=0;H[i>>2]=0;H[i+4>>2]=0;e=H[i+20>>2];b=e-d|0;p=b>>2;l:{m:{if((d|0)==(e|0)){break m}if((b|0)<0){break l}l=hl(b);H[i>>2]=l;H[i+8>>2]=(p<<2)+l;e=lk(l,0,b);H[i+4>>2]=e+b;h=p>>>0>1?p:1;g=h&3;b=0;if(h-1>>>0>=3){o=h&-4;while(1){h=f<<2;H[h+e>>2]=b;s=h|4;b=H[d+h>>2]+b|0;H[s+e>>2]=b;q=h|8;b=b+H[d+s>>2]|0;H[q+e>>2]=b;h=h|12;b=b+H[d+q>>2]|0;H[h+e>>2]=b;b=b+H[d+h>>2]|0;f=f+4|0;n=n+4|0;if((o|0)!=(n|0)){continue}break}}if(!g){break m}while(1){h=f<<2;H[h+e>>2]=b;f=f+1|0;b=H[d+h>>2]+b|0;k=k+1|0;if((g|0)!=(k|0)){continue}break}}if(!j){break f}s=H[a+12>>2];e=0;while(1){w=e<<2;b=w+m|0;k=-1;g=e+1|0;f=(g>>>0)%3|0?g:e-2|0;if((f|0)!=-1){k=H[(f<<2)+m>>2]}h=H[b>>2];n:{o:{if(!((e>>>0)%3|0)){n=-1;b=e+2|0;if((b|0)!=-1){n=H[(b<<2)+m>>2]}if(!((h|0)==(k|0)|(h|0)==(n|0))&(k|0)!=(n|0)){break o}H[a+40>>2]=H[a+40>>2]+1;e=e+3|0;break n}n=H[b-4>>2]}b=n<<2;q=H[b+d>>2];p:{q:{if((q|0)<=0){break q}b=H[b+l>>2];f=0;while(1){o=(b<<3)+c|0;t=H[o>>2];if((t|0)==-1){break q}r:{if((k|0)!=(t|0)){break r}o=H[o+4>>2];if((o|0)!=-1){t=H[(o<<2)+m>>2]}else{t=-1}if((t|0)==(h|0)){break r}while(1){s:{h=b;f=f+1|0;if((q|0)<=(f|0)){break s}b=h+1|0;x=(b<<3)+c|0;t=H[x>>2];y=(h<<3)+c|0;H[y+4>>2]=H[x+4>>2];H[y>>2]=t;if((t|0)!=-1){continue}}break}H[(h<<3)+c>>2]=-1;if((o|0)==-1){break q}H[s+w>>2]=o;H[s+(o<<2)>>2]=e;break p}b=b+1|0;f=f+1|0;if((q|0)!=(f|0)){continue}break}}b=k<<2;k=H[b+d>>2];if((k|0)<=0){break p}b=H[b+l>>2];f=0;while(1){h=(b<<3)+c|0;if(H[h>>2]==-1){H[h>>2]=n;H[h+4>>2]=e;break p}b=b+1|0;f=f+1|0;if((k|0)!=(f|0)){continue}break}}e=g}if(j>>>0>e>>>0){continue}break}break f}break c}La(1313);X()}H[r>>2]=p;if(l){bl(l)}if(c){bl(c)}b=H[i+16>>2];if(!b){break d}H[i+20>>2]=b;bl(b)}ha=i+32|0;s=(r|0)!=0;if(s){k=ha-32|0;ha=k;l=H[a>>2];b=H[a+4>>2];H[k+24>>2]=0;H[k+16>>2]=0;H[k+20>>2]=0;t:{if((b|0)==(l|0)){break t}f=b-l|0;if((f|0)<0){break c}c=f>>2;e=c-1>>>5|0;h=e+1|0;d=hl(h<<2);H[k+24>>2]=h;H[k+16>>2]=d;H[k+20>>2]=c;H[d+((f>>>0<132?0:e)<<2)>>2]=0;h=d;d=c>>>5<<2;f=lk(h,0,d);if((c|0)==(c&-32)){break t}d=d+f|0;H[d>>2]=H[d>>2]&(-1>>>32-(c&31)^-1)}H[k+8>>2]=0;H[k>>2]=0;while(1){u:{o=0;m=0;if((b|0)==(l|0)){break u}while(1){c=H[k+16>>2];v:{if(H[c+(m>>>3&536870908)>>2]>>>m&1){break v}d=H[k>>2];H[k+4>>2]=d;f=H[a+12>>2];b=m;while(1){w:{e=b+1|0;i=b;b=(e>>>0)%3|0?e:b-2|0;if((b|0)==-1){break w}b=H[f+(b<<2)>>2];if((b|0)==-1){break w}e=b+1|0;b=(e>>>0)%3|0?e:b-2|0;if((m|0)==(b|0)|(b|0)==-1){break w}if(!(H[c+(b>>>3&536870908)>>2]>>>b&1)){continue}}break}f=i;x:{y:{z:{while(1){b=H[k+16>>2]+(f>>>3&536870908)|0;H[b>>2]=H[b>>2]|1<>>0)%3|0?b:f-2|0;l=H[a>>2];q=(f>>>0)%3|0;h=(q?-1:2)+f|0;j=H[k>>2];A:{if((j|0)==(d|0)){break A}r=H[(g<<2)+l>>2];n=H[a+12>>2];b=j;if((h|0)!=-1){c=n+(h<<2)|0;while(1){B:{if((r|0)!=H[b>>2]){break B}e=H[b+4>>2];p=H[c>>2];if((e|0)==(p|0)){break B}d=-1;c=h;b=-1;if((e|0)==-1){break x}break y}b=b+8|0;if((d|0)!=(b|0)){continue}break}break A}while(1){if((r|0)==H[b>>2]){p=-1;c=-1;e=H[b+4>>2];if((e|0)!=-1){break y}}b=b+8|0;if((d|0)!=(b|0)){continue}break}}h=H[(h<<2)+l>>2];C:{if(H[k+8>>2]!=(d|0)){H[d>>2]=h;H[d+4>>2]=g;d=d+8|0;H[k+4>>2]=d;break C}c=d-j|0;d=c>>3;b=d+1|0;if(b>>>0>=536870912){break c}e=c>>2;e=c>>>0<2147483640?b>>>0>>0?e:b:536870911;if(e){if(e>>>0>=536870912){break z}b=hl(e<<3)}else{b=0}d=b+(d<<3)|0;H[d>>2]=h;H[d+4>>2]=g;d=d+8|0;if((c|0)>0){jk(b,j,c)}H[k+8>>2]=b+(e<<3);H[k+4>>2]=d;H[k>>2]=b;if(!j){break C}bl(j)}D:{E:{if(q){b=f-1|0;break E}b=f+2|0;if((b|0)==-1){break D}}b=H[H[a+12>>2]+(b<<2)>>2];if((b|0)==-1){break D}f=b+((b>>>0)%3|0?-1:2)|0;if((i|0)==(f|0)){break D}if((f|0)!=-1){continue}}break}l=H[a>>2];break v}_a();X()}h=c;d=e;b=H[n+(d<<2)>>2]}if((p|0)!=-1){H[n+(p<<2)>>2]=-1}if((b|0)!=-1){H[H[a+12>>2]+(b<<2)>>2]=-1}b=H[a+12>>2];H[b+(h<<2)>>2]=-1;H[b+(d<<2)>>2]=-1;o=1}m=m+1|0;b=H[a+4>>2];if(m>>>0>2>>>0){continue}break}if(o){continue}}break}b=H[k>>2];if(b){bl(b)}b=H[k+16>>2];if(b){bl(b)}ha=k+32|0;c=0;e=0;k=0;i=ha-32|0;ha=i;b=H[u+12>>2];H[a+36>>2]=b;m=a+24|0;f=H[a+24>>2];d=H[a+28>>2]-f>>2;F:{G:{if(d>>>0>>0){tb(m,b-d|0,14880);H[i+24>>2]=0;H[i+16>>2]=0;H[i+20>>2]=0;break G}if(b>>>0>>0){H[a+28>>2]=f+(b<<2)}H[i+24>>2]=0;H[i+16>>2]=0;H[i+20>>2]=0;if(!b){break F}}if((b|0)<0){break c}d=b-1>>>5|0;f=d+1|0;c=hl(f<<2);H[i+24>>2]=f;H[i+16>>2]=c;H[i+20>>2]=b;H[((b>>>0<33?0:d)<<2)+c>>2]=0;d=b>>>5<<2;f=lk(c,0,d);if((b&-32)==(b|0)){break F}d=d+f|0;H[d>>2]=H[d>>2]&(-1>>>32-(b&31)^-1)}j=H[a>>2];d=H[a+4>>2];H[i+8>>2]=0;H[i>>2]=0;H[i+4>>2]=0;h=d-j|0;H:{if((d|0)==(j|0)){break H}if((h|0)<0){break c}f=h>>2;g=f-1>>>5|0;l=g+1|0;e=hl(l<<2);H[i+8>>2]=l;H[i>>2]=e;H[i+4>>2]=f;H[((h>>>0<132?0:g)<<2)+e>>2]=0;g=f>>>5<<2;l=lk(e,0,g);if((f|0)==(f&-32)){break H}g=g+l|0;H[g>>2]=H[g>>2]&(-1>>>32-(f&31)^-1)}if(h>>>0>=12){I:{J:{while(1){n=N(k,3);h=(n<<2)+j|0;f=H[h>>2];g=-1;l=n+1|0;if((l|0)!=-1){g=H[(l<<2)+j>>2]}K:{if((f|0)==(g|0)){break K}l=f;f=H[h+8>>2];if((l|0)==(f|0)){break K}l=0;if((f|0)==(g|0)){break K}while(1){d=l+n|0;if(!(H[(d>>>3&536870908)+e>>2]>>>d&1)){f=H[(d<<2)+j>>2];g=1<>>5|0;p=g&H[(j<<2)+c>>2];if(p){c=H[a+28>>2];L:{if((c|0)!=H[a+32>>2]){H[c>>2]=-1;H[a+28>>2]=c+4;break L}h=H[m>>2];e=c-h|0;j=e>>2;c=j+1|0;if(c>>>0>=1073741824){break c}g=e>>1;g=e>>>0<2147483644?c>>>0>>0?g:c:1073741823;if(g){if(g>>>0>=1073741824){break J}c=hl(g<<2)}else{c=0}j=c+(j<<2)|0;H[j>>2]=-1;if((e|0)>0){jk(c,h,e)}H[a+32>>2]=c+(g<<2);H[a+28>>2]=j+4;H[a+24>>2]=c;if(!h){break L}bl(h)}c=H[a+52>>2];M:{if((c|0)!=H[a+56>>2]){H[c>>2]=f;H[a+52>>2]=c+4;break M}h=H[a+48>>2];e=c-h|0;j=e>>2;c=j+1|0;if(c>>>0>=1073741824){break c}g=e>>1;g=e>>>0<2147483644?c>>>0>>0?g:c:1073741823;if(g){if(g>>>0>=1073741824){break J}c=hl(g<<2)}else{c=0}j=c+(j<<2)|0;H[j>>2]=f;if((e|0)>0){jk(c,h,e)}H[a+56>>2]=c+(g<<2);H[a+52>>2]=j+4;H[a+48>>2]=c;if(!h){break M}bl(h)}g=H[i+20>>2];c=H[i+24>>2];if((g|0)==c<<5){if((g+1|0)<0){break c}h=i+16|0;if(g>>>0<=1073741822){c=c<<6;e=g+32&-32;c=c>>>0>e>>>0?c:e}else{c=2147483647}Hc(h,c);g=H[i+20>>2]}H[i+20>>2]=g+1;c=H[i+16>>2]+(g>>>3&536870908)|0;f=H[c>>2];z=c,A=Wl(g)&f,H[z>>2]=A;g=1<>>5|0;f=b;b=b+1|0}h=b;c=H[i+16>>2];b=c+(j<<2)|0;H[b>>2]=H[b>>2]|g;r=H[a+24>>2]+(f<<2)|0;o=H[a+12>>2];j=H[a>>2];e=H[i>>2];b=d;N:{O:{P:{while(1){if((b|0)==-1){break P}g=(b>>>3&536870908)+e|0;H[g>>2]=H[g>>2]|1<>2]=b;if(p){H[(b<<2)+j>>2]=f}q=b+1|0;b=(q>>>0)%3|0?q:b-2|0;g=-1;Q:{if((b|0)==-1){break Q}b=H[o+(b<<2)>>2];g=-1;if((b|0)==-1){break Q}g=b+1|0;g=(g>>>0)%3|0?g:b-2|0}b=g;if((d|0)!=(b|0)){continue}break}if((d|0)!=-1){break N}b=1;break O}if((d>>>0)%3|0){b=d-1|0;break O}b=d+2|0;if((b|0)==-1){break N}}b=H[o+(b<<2)>>2];if((b|0)==-1){break N}R:{if((b>>>0)%3|0){b=b-1|0;break R}b=b+2|0;if((b|0)==-1){break N}}d=H[a+12>>2];j=H[a>>2];e=H[i>>2];while(1){g=(b>>>3&536870908)+e|0;H[g>>2]=H[g>>2]|1<>2]=f}S:{if((b>>>0)%3|0){b=b-1|0;break S}b=b+2|0;if((b|0)==-1){break N}}b=H[d+(b<<2)>>2];if((b|0)==-1){break N}b=b+((b>>>0)%3|0?-1:2)|0;if((b|0)!=-1){continue}break}}b=h}l=l+1|0;if((l|0)!=3){continue}break}j=H[a>>2];d=H[a+4>>2]}k=k+1|0;if(k>>>0<(d-j>>2>>>0)/3>>>0){continue}break}break I}_a();X()}c=H[i+16>>2]}b=0;H[a+44>>2]=0;d=H[i+20>>2];if(d){f=d&31;d=(d>>>3&536870908)+c|0;g=c;e=0;while(1){if(!(H[g>>2]>>>b&1)){e=e+1|0;H[a+44>>2]=e}h=(b|0)==31;b=h?0:b+1|0;g=(h<<2)+g|0;if((d|0)!=(g|0)|(b|0)!=(f|0)){continue}break}}b=H[i>>2];if(b){bl(b);c=H[i+16>>2]}if(c){bl(c)}ha=i+32|0}ha=u+16|0;if(!s){H[v+8>>2]=0;Sg(a);a=0}ha=v+16|0;return a}Ka();X()}function Rg(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0;j=ha-32|0;ha=j;c=H[b+8>>2];a:{if(I[b+288|0]){d=Sj(c);c=H[b+12>>2];H[b+12>>2]=d;if(!c){break a}Sg(c);break a}d=Rj(c);c=H[b+12>>2];H[b+12>>2]=d;if(!c){break a}Sg(c)}c=H[b+12>>2];b:{if(!(H[c+40>>2]!=((H[c+4>>2]-H[c>>2]>>2>>>0)/3|0)?c:0)){b=hl(32);c=I[1828]|I[1829]<<8|(I[1830]<<16|I[1831]<<24);d=I[1824]|I[1825]<<8|(I[1826]<<16|I[1827]<<24);F[b+21|0]=d;F[b+22|0]=d>>>8;F[b+23|0]=d>>>16;F[b+24|0]=d>>>24;F[b+25|0]=c;F[b+26|0]=c>>>8;F[b+27|0]=c>>>16;F[b+28|0]=c>>>24;c=I[1823]|I[1824]<<8|(I[1825]<<16|I[1826]<<24);d=I[1819]|I[1820]<<8|(I[1821]<<16|I[1822]<<24);F[b+16|0]=d;F[b+17|0]=d>>>8;F[b+18|0]=d>>>16;F[b+19|0]=d>>>24;F[b+20|0]=c;F[b+21|0]=c>>>8;F[b+22|0]=c>>>16;F[b+23|0]=c>>>24;c=I[1815]|I[1816]<<8|(I[1817]<<16|I[1818]<<24);d=I[1811]|I[1812]<<8|(I[1813]<<16|I[1814]<<24);F[b+8|0]=d;F[b+9|0]=d>>>8;F[b+10|0]=d>>>16;F[b+11|0]=d>>>24;F[b+12|0]=c;F[b+13|0]=c>>>8;F[b+14|0]=c>>>16;F[b+15|0]=c>>>24;c=I[1807]|I[1808]<<8|(I[1809]<<16|I[1810]<<24);d=I[1803]|I[1804]<<8|(I[1805]<<16|I[1806]<<24);F[b|0]=d;F[b+1|0]=d>>>8;F[b+2|0]=d>>>16;F[b+3|0]=d>>>24;F[b+4|0]=c;F[b+5|0]=c>>>8;F[b+6|0]=c>>>16;F[b+7|0]=c>>>24;F[b+29|0]=0;H[a>>2]=-1;nl(a+4|0,b,29);bl(b);break b}H[b+264>>2]=b;zb((H[c+28>>2]-H[c+24>>2]>>2)-H[c+44>>2]|0,H[H[b+4>>2]+44>>2]);c=H[b+12>>2];zb(((H[c+4>>2]-H[c>>2]>>2>>>0)/3|0)-H[c+40>>2]|0,H[H[b+4>>2]+44>>2]);c=H[b+8>>2];d=H[c+100>>2];c=H[c+96>>2];F[j+16|0]=0;o=b+28|0;d=(d-c|0)/12|0;c=j+16|0;Jg(o,d,c);d=H[b+12>>2];g=H[d+28>>2];d=H[d+24>>2];H[j+16>>2]=-1;Hg(b+52|0,g-d>>2,c);c=H[b+40>>2];H[b+44>>2]=c;c:{d:{e:{f:{g:{h:{i:{d=H[b+12>>2];g=H[d+4>>2]-H[d>>2]>>2;g=g-((g>>>0)%3|0)|0;j:{if(g>>>0<=H[b+48>>2]-c>>2>>>0){break j}if(g>>>0>=1073741824){break i}i=g<<2;g=hl(i);H[b+44>>2]=g;H[b+40>>2]=g;H[b+48>>2]=g+i;if(!c){break j}bl(c);d=H[b+12>>2]}c=H[d+28>>2];d=H[d+24>>2];F[j+16|0]=0;Jg(b+84|0,c-d>>2,j+16|0);H[b+164>>2]=-1;H[b+168>>2]=0;H[b+100>>2]=H[b+96>>2];H[b+112>>2]=H[b+108>>2];if(H[b+132>>2]){d=H[b+128>>2];if(d){while(1){c=H[d>>2];bl(d);d=c;if(c){continue}break}}d=0;H[b+128>>2]=0;c=H[b+124>>2];k:{if(!c){break k}if(c-1>>>0>=3){i=c&-4;while(1){g=d<<2;H[g+H[b+120>>2]>>2]=0;H[H[b+120>>2]+(g|4)>>2]=0;H[H[b+120>>2]+(g|8)>>2]=0;H[H[b+120>>2]+(g|12)>>2]=0;d=d+4|0;k=k+4|0;if((i|0)!=(k|0)){continue}break}}c=c&3;if(!c){break k}while(1){H[H[b+120>>2]+(d<<2)>>2]=0;d=d+1|0;e=e+1|0;if((c|0)!=(e|0)){continue}break}}H[b+132>>2]=0}H[b+144>>2]=0;c=H[b+12>>2];d=H[c+28>>2];c=H[c+24>>2];H[j+16>>2]=-1;Hg(b+152|0,d-c>>2,j+16|0);c=H[b+72>>2];H[b+76>>2]=c;r=b+72|0;d=H[b+12>>2];d=H[d+4>>2]-H[d>>2]|0;g=(d>>2>>>0)/3|0;l:{if(g>>>0<=H[b+80>>2]-c>>2>>>0){break l}if((d|0)<0){break h}g=g<<2;d=hl(g);H[b+76>>2]=d;H[b+72>>2]=d;H[b+80>>2]=d+g;if(!c){break l}bl(c)}H[b- -64>>2]=0;if(!Tg(b)){b=hl(32);c=I[1768]|I[1769]<<8|(I[1770]<<16|I[1771]<<24);d=I[1764]|I[1765]<<8|(I[1766]<<16|I[1767]<<24);F[b+21|0]=d;F[b+22|0]=d>>>8;F[b+23|0]=d>>>16;F[b+24|0]=d>>>24;F[b+25|0]=c;F[b+26|0]=c>>>8;F[b+27|0]=c>>>16;F[b+28|0]=c>>>24;c=I[1763]|I[1764]<<8|(I[1765]<<16|I[1766]<<24);d=I[1759]|I[1760]<<8|(I[1761]<<16|I[1762]<<24);F[b+16|0]=d;F[b+17|0]=d>>>8;F[b+18|0]=d>>>16;F[b+19|0]=d>>>24;F[b+20|0]=c;F[b+21|0]=c>>>8;F[b+22|0]=c>>>16;F[b+23|0]=c>>>24;c=I[1755]|I[1756]<<8|(I[1757]<<16|I[1758]<<24);d=I[1751]|I[1752]<<8|(I[1753]<<16|I[1754]<<24);F[b+8|0]=d;F[b+9|0]=d>>>8;F[b+10|0]=d>>>16;F[b+11|0]=d>>>24;F[b+12|0]=c;F[b+13|0]=c>>>8;F[b+14|0]=c>>>16;F[b+15|0]=c>>>24;c=I[1747]|I[1748]<<8|(I[1749]<<16|I[1750]<<24);d=I[1743]|I[1744]<<8|(I[1745]<<16|I[1746]<<24);F[b|0]=d;F[b+1|0]=d>>>8;F[b+2|0]=d>>>16;F[b+3|0]=d>>>24;F[b+4|0]=c;F[b+5|0]=c>>>8;F[b+6|0]=c>>>16;F[b+7|0]=c>>>24;F[b+29|0]=0;H[a>>2]=-1;nl(a+4|0,b,29);bl(b);break b}c=b;m:{if(I[b+288|0]){break m}b=H[c+8>>2];g=H[b+12>>2]-H[b+8>>2]|0;i=g>>2;d=i-1|0;b=H[c+176>>2];f=H[c+172>>2];e=(b-f|0)/136|0;n:{if(d>>>0>e>>>0){$g(c+172|0,d-e|0);break n}if(d>>>0>=e>>>0){break n}e=f+N(d,136)|0;if((e|0)!=(b|0)){while(1){d=b-136|0;f=H[d+116>>2];if(f){H[b-16>>2]=f;bl(f)}f=H[b-32>>2];if(f){H[b-28>>2]=f;bl(f)}ah(b-132|0);b=d;if((e|0)!=(b|0)){continue}break}}H[c+176>>2]=e}if((g|0)==4|(g|0)<=0){break m}e=(i|0)>1?i:1;b=0;o:{while(1){f=H[H[H[c+8>>2]+8>>2]+(b<<2)>>2];if(H[f+56>>2]){k=N(h,136);d=k+H[c+172>>2]|0;H[d>>2]=b;g=H[d+104>>2];H[d+108>>2]=g;i=H[c+12>>2];i=H[i+4>>2]-H[i>>2]|0;p=i>>2;p:{if(p>>>0<=H[d+112>>2]-g>>2>>>0){break p}if((i|0)<0){break o}i=hl(i);H[d+108>>2]=i;H[d+104>>2]=i;H[d+112>>2]=i+(p<<2);if(!g){break p}bl(g)}d=k+H[c+172>>2]|0;H[d+128>>2]=0;Qj(d+4|0,H[c+8>>2],H[c+12>>2],f);h=h+1|0}b=b+1|0;if((e|0)!=(b|0)){continue}break}break m}Ka();X()}b=(H[c+176>>2]-H[c+172>>2]|0)/136|0;F[j+31|0]=b;d=H[H[c+4>>2]+44>>2];g=H[d+20>>2];if(!H[d+16>>2]&(g|0)<=0|(g|0)<0){Da(d,H[d+4>>2],j+31|0,j+32|0);b=I[j+31|0]}H[c+284>>2]=b&255;b=H[c+12>>2];d=H[b>>2];b=H[b+4>>2];i=c+200|0;Ug(i);H[j+24>>2]=0;H[j+16>>2]=0;H[j+20>>2]=0;g=0;b=b-d|0;if((b|0)>0){b=b>>>2|0;s=b>>>0>1?b:1;d=0;while(1){b=(d>>>0)/3|0;p=b>>>5<<2;q=1<>2]+p>>2]){break q}if(Jj(H[c+12>>2],b)){break q}H[j>>2]=0;b=Vg(c,b,j);Ce(i,b);e=H[j>>2];if(b){f=-1;h=-1;b=-1;r:{if((e|0)==-1){break r}m=H[H[c+12>>2]>>2];b=m+(e<<2)|0;f=e+1|0;f=(f>>>0)%3|0?f:e-2|0;if((f|0)!=-1){h=H[m+(f<<2)>>2]}f=H[b>>2];s:{if((e>>>0)%3|0){k=e-1|0;break s}k=e+2|0;b=-1;if((k|0)==-1){break r}}b=H[m+(k<<2)>>2]}k=H[c+84>>2];m=k+(f>>>3&536870908)|0;H[m>>2]=H[m>>2]|1<>>3&536870908)|0;H[f>>2]=H[f>>2]|1<>>3&536870908)|0;H[h>>2]=H[h>>2]|1<>2];f=H[c+104>>2];t:{if(b>>>0>>0){H[b>>2]=1;H[c+100>>2]=b+4;break t}h=H[c+96>>2];k=b-h|0;m=k>>2;b=m+1|0;if(b>>>0>=1073741824){break g}t=m<<2;f=f-h|0;m=f>>1;f=f>>>0<2147483644?b>>>0>>0?m:b:1073741823;if(f){if(f>>>0>=1073741824){break f}b=hl(f<<2)}else{b=0}m=t+b|0;H[m>>2]=1;if((k|0)>0){jk(b,h,k)}H[c+104>>2]=b+(f<<2);H[c+100>>2]=m+4;H[c+96>>2]=b;if(!h){break t}bl(h)}b=H[o>>2]+p|0;H[b>>2]=H[b>>2]|q;f=-1;if((e|0)!=-1){b=e+1|0;f=(b>>>0)%3|0?b:e-2|0}u:{if(l>>>0>>0){H[l>>2]=f;l=l+4|0;H[j+20>>2]=l;break u}k=l-g|0;l=k>>2;b=l+1|0;if(b>>>0>=1073741824){break e}h=n-g|0;n=h>>1;h=h>>>0<2147483644?b>>>0>>0?n:b:1073741823;if(h){if(h>>>0>=1073741824){break f}b=hl(h<<2)}else{b=0}l=b+(l<<2)|0;H[l>>2]=f;n=b+(h<<2)|0;l=l+4|0;if((k|0)>0){jk(b,g,k)}H[j+24>>2]=n;H[j+20>>2]=l;H[j+16>>2]=b;if(g){bl(g)}g=b}if((e|0)==-1){break q}b=e+1|0;b=(b>>>0)%3|0?b:e-2|0;if((b|0)==-1){break q}b=H[H[H[c+12>>2]+12>>2]+(b<<2)>>2];if((b|0)==-1){break q}e=(b>>>0)/3|0;if(H[H[o>>2]+(e>>>3&268435452)>>2]>>>e&1){break q}if(Wg(c,b)){break q}break d}if((e|0)!=-1){b=e+1|0;b=(b>>>0)%3|0?b:e-2|0}else{b=-1}Xg(c,b,1);if(!Wg(c,H[j>>2])){break d}}d=d+1|0;if((s|0)!=(d|0)){continue}break}}d=H[c+72>>2];b=H[c+76>>2];v:{if((d|0)==(b|0)){break v}e=b-4|0;if(e>>>0<=d>>>0){break v}while(1){h=H[d>>2];H[d>>2]=H[e>>2];H[e>>2]=h;d=d+4|0;e=e-4|0;if(d>>>0>>0){continue}break}}Yg(r,b,g,l);w:{if(H[c+172>>2]==H[c+176>>2]){break w}b=H[c+8>>2];d=H[b+100>>2];b=H[b+96>>2];F[j|0]=0;Jg(o,(d-b|0)/12|0,j);d=H[c+72>>2];b=H[c+76>>2];if((d|0)==(b|0)){break w}while(1){Zg(c,H[d>>2]);d=d+4|0;if((b|0)!=(d|0)){continue}break}}d=i;o=d+32|0;b=H[d+64>>2];b=H[(la[H[H[b>>2]+40>>2]](b)|0)+56>>2];ii(o,N((H[b+100>>2]-H[b+96>>2]|0)/12|0,3),0,1);b=H[d+72>>2]-H[d+68>>2]|0;x:{if((b|0)<=0){break x}i=H[d+52>>2];if(!H[d+48>>2]&(i|0)<=0|(i|0)<0){break x}b=b>>>2|0;while(1){i=b;b=b-1|0;e=H[d+52>>2];y:{if(!H[d+48>>2]&(e|0)<=0|(e|0)<0){break y}l=H[H[d+68>>2]+(b<<2)>>2];if(!(171>>>l&1)){break y}k=H[(l<<2)+11152>>2];f=H[d+44>>2];e=H[f+4>>2];h=0;while(1){n=e>>>3|0;p=n+H[f>>2]|0;m=I[p|0];e=e&7;u=p,v=Wl(e)&m,F[u|0]=v;n=n+H[f>>2]|0;F[n|0]=I[n|0]|(l>>>h&1)<>2]+1|0;H[f+4>>2]=e;h=h+1|0;if((k|0)!=(h|0)){continue}break}}if((i|0)>1){continue}break}}ji(o);b=c+232|0;De(d,b);if(!(!H[c+280>>2]|H[c+284>>2]<=0)){d=0;while(1){De(H[c+280>>2]+(d<<5)|0,b);d=d+1|0;if((d|0)>2]){continue}break}}zb(H[c+272>>2]-H[c+268>>2]>>2,H[H[c+4>>2]+44>>2]);zb(H[c+168>>2],H[H[c+4>>2]+44>>2]);if(!_g(c)){b=Pe(j,1885);H[a>>2]=-1;a=a+4|0;if(F[b+11|0]>=0){c=H[b+4>>2];H[a>>2]=H[b>>2];H[a+4>>2]=c;H[a+8>>2]=H[b+8>>2];break c}nl(a,H[b>>2],H[b+4>>2]);if(F[b+11|0]>=0){break c}bl(H[b>>2]);break c}b=H[H[c+4>>2]+44>>2];d=H[b+20>>2];if(!H[b+16>>2]&(d|0)<=0|(d|0)<0){Da(b,H[b+4>>2],H[c+232>>2],H[c+236>>2])}H[a>>2]=0;H[a+4>>2]=0;H[a+8>>2]=0;H[a+12>>2]=0;break c}Ka();X()}Ka();X()}Ka();X()}_a();X()}Ka();X()}b=hl(48);c=I[1703]|I[1704]<<8|(I[1705]<<16|I[1706]<<24);d=I[1699]|I[1700]<<8|(I[1701]<<16|I[1702]<<24);F[b+24|0]=d;F[b+25|0]=d>>>8;F[b+26|0]=d>>>16;F[b+27|0]=d>>>24;F[b+28|0]=c;F[b+29|0]=c>>>8;F[b+30|0]=c>>>16;F[b+31|0]=c>>>24;c=I[1695]|I[1696]<<8|(I[1697]<<16|I[1698]<<24);d=I[1691]|I[1692]<<8|(I[1693]<<16|I[1694]<<24);F[b+16|0]=d;F[b+17|0]=d>>>8;F[b+18|0]=d>>>16;F[b+19|0]=d>>>24;F[b+20|0]=c;F[b+21|0]=c>>>8;F[b+22|0]=c>>>16;F[b+23|0]=c>>>24;c=I[1687]|I[1688]<<8|(I[1689]<<16|I[1690]<<24);d=I[1683]|I[1684]<<8|(I[1685]<<16|I[1686]<<24);F[b+8|0]=d;F[b+9|0]=d>>>8;F[b+10|0]=d>>>16;F[b+11|0]=d>>>24;F[b+12|0]=c;F[b+13|0]=c>>>8;F[b+14|0]=c>>>16;F[b+15|0]=c>>>24;c=I[1679]|I[1680]<<8|(I[1681]<<16|I[1682]<<24);d=I[1675]|I[1676]<<8|(I[1677]<<16|I[1678]<<24);F[b|0]=d;F[b+1|0]=d>>>8;F[b+2|0]=d>>>16;F[b+3|0]=d>>>24;F[b+4|0]=c;F[b+5|0]=c>>>8;F[b+6|0]=c>>>16;F[b+7|0]=c>>>24;F[b+32|0]=0;H[a>>2]=-1;nl(a+4|0,b,32);bl(b)}if(!g){break b}bl(g)}ha=j+32|0}function Qj(a,b,c,d){var e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0;e=ha-16|0;ha=e;a:{b:{if(c){H[a+88>>2]=0;H[a+92>>2]=0;f=H[a+84>>2];H[a+84>>2]=0;if(f){bl(f)}H[a+76>>2]=0;H[a+80>>2]=0;f=H[a+72>>2];H[a+72>>2]=0;if(f){bl(f)}f=H[c>>2];g=H[c+4>>2];F[e+15|0]=0;Jg(a,g-f>>2,e+15|0);f=H[c+28>>2];g=H[c+24>>2];F[e+14|0]=0;Jg(a+12|0,f-g>>2,e+14|0);Hg(a+28|0,H[c+4>>2]-H[c>>2]>>2,14948);g=H[c+28>>2]-H[c+24>>2]|0;h=g>>2;f=H[a+52>>2];c:{if(h>>>0<=H[a+60>>2]-f>>2>>>0){break c}if((g|0)<0){break a}j=H[a+56>>2];g=hl(g);i=g+(h<<2)|0;h=j-f|0;j=h+g|0;if((h|0)>0){jk(g,f,h)}H[a+60>>2]=i;H[a+56>>2]=j;H[a+52>>2]=g;if(!f){break c}bl(f)}g=H[c+28>>2]-H[c+24>>2]|0;h=g>>2;f=H[a+40>>2];d:{if(h>>>0<=H[a+48>>2]-f>>2>>>0){break d}if((g|0)<0){break a}j=H[a+44>>2];g=hl(g);i=g+(h<<2)|0;h=j-f|0;j=h+g|0;if((h|0)>0){jk(g,f,h)}H[a+48>>2]=i;H[a+44>>2]=j;H[a+40>>2]=g;if(!f){break d}bl(f)}F[a+24|0]=1;H[a+64>>2]=c}ha=e+16|0;c=(c|0)!=0;break b}if(c){H[a+88>>2]=0;H[a+92>>2]=0;c=H[a+84>>2];H[a+84>>2]=0;if(c){bl(c)}H[a+76>>2]=0;H[a+80>>2]=0;c=H[a+72>>2];H[a+72>>2]=0;if(c){bl(c)}g=H[a+64>>2];if(H[g+4>>2]!=H[g>>2]){c=0;while(1){m=(c>>>0)/3|0;e=Jj(g,m);g=H[a+64>>2];e:{if(e){break e}i=H[H[g+12>>2]+(c<<2)>>2];f:{g:{if((i|0)==-1){e=H[a>>2]+(c>>>3&536870908)|0;H[e>>2]=H[e>>2]|1<>>0)%3|0?f:c-2|0;if((f|0)!=-1){e=H[H[g>>2]+(f<<2)>>2]}j=H[a+12>>2];f=j+(e>>>3&536870908)|0;H[f>>2]=H[f>>2]|1<>>0)%3|0){e=c-1|0;break g}h=-1;e=c+2|0;if((e|0)!=-1){break g}break f}if(c>>>0>i>>>0){break e}e=-1;l=I[d+84|0];h=-1;k=c+1|0;n=c-2|0;j=(k>>>0)%3|0?k:n;if((j|0)>=0){f=(j>>>0)/3|0;h=H[(H[b+96>>2]+N(f,12)|0)+(j-N(f,3)<<2)>>2]}f=i+((i>>>0)%3|0?-1:2)|0;if((f|0)>=0){e=(f>>>0)/3|0;e=H[(H[b+96>>2]+N(e,12)|0)+(f-N(e,3)<<2)>>2]}if(!l){o=H[d+68>>2];e=H[o+(e<<2)>>2];h=H[(h<<2)+o>>2]}if((e|0)==(h|0)){e=-1;h=-1;if((j|0)!=-1){h=j+1|0;h=(h>>>0)%3|0?h:j-2|0}h:{if((f|0)==-1){break h}if((f>>>0)%3|0){e=f-1|0;break h}e=f+2|0}j=-1;f=-1;if((h|0)>=0){f=(h>>>0)/3|0;f=H[(H[b+96>>2]+N(f,12)|0)+(h-N(f,3)<<2)>>2]}if((e|0)>=0){h=(e>>>0)/3|0;j=H[(H[b+96>>2]+N(h,12)|0)+(e-N(h,3)<<2)>>2]}if(!l){e=H[d+68>>2];j=H[e+(j<<2)>>2];f=H[e+(f<<2)>>2]}if((f|0)==(j|0)){break e}}F[a+24|0]=0;e=H[a>>2];f=e+(c>>>3&536870908)|0;H[f>>2]=H[f>>2]|1<>>3&536870908)|0;H[e>>2]=H[e>>2]|1<>>0)%3|0?k:n;if((e|0)!=-1){f=H[H[g>>2]+(e<<2)>>2]}j=H[a+12>>2];e=j+(f>>>3&536870908)|0;H[e>>2]=H[e>>2]|1<>2]+(e<<2)>>2]}e=(f>>>3&536870908)+j|0;H[e>>2]=H[e>>2]|1<>>0)%3|0?e:i-2|0;if((e|0)!=-1){h=H[H[g>>2]+(e<<2)>>2]}e=(h>>>3&536870908)+j|0;H[e>>2]=H[e>>2]|1<>>0)%3|0){e=i-1|0;break g}h=-1;e=i+2|0;if((e|0)==-1){break f}}h=H[H[g>>2]+(e<<2)>>2]}e=(h>>>3&536870908)+j|0;H[e>>2]=H[e>>2]|1<>>0>2]-H[g>>2]>>2>>>0){continue}break}}if(!(!b|!d)){j=b;b=0;h=0;f=a;H[f+56>>2]=H[f+52>>2];H[f+44>>2]=H[f+40>>2];k:{l:{g=H[f+64>>2];e=H[g+24>>2];if((e|0)!=H[g+28>>2]){while(1){a=b;c=H[(h<<2)+e>>2];m:{if((c|0)==-1){break m}if((c|0)<0){e=-1}else{b=(c>>>0)/3|0;e=H[(H[j+96>>2]+N(b,12)|0)+(c-N(b,3)<<2)>>2]}e=I[d+84|0]?e:H[H[d+68>>2]+(e<<2)>>2];b=H[f+56>>2];i=H[f+60>>2];n:{if(b>>>0>>0){H[b>>2]=e;H[f+56>>2]=b+4;break n}g=H[f+52>>2];k=b-g|0;l=k>>2;b=l+1|0;if(b>>>0>=1073741824){break a}i=i-g|0;m=i>>1;i=i>>>0<2147483644?b>>>0>>0?m:b:1073741823;if(i){if(i>>>0>=1073741824){break l}b=hl(i<<2)}else{b=0}l=b+(l<<2)|0;H[l>>2]=e;if((k|0)>0){jk(b,g,k)}H[f+60>>2]=b+(i<<2);H[f+56>>2]=l+4;H[f+52>>2]=b;if(!g){break n}bl(g)}o:{if(!(H[H[f+12>>2]+(h>>>3&536870908)>>2]>>>h&1)){break o}b=c+1|0;b=(b>>>0)%3|0?b:c-2|0;if((b|0)==-1|H[H[f>>2]+(b>>>3&536870908)>>2]>>>b&1){break o}b=H[H[H[f+64>>2]+12>>2]+(b<<2)>>2];if((b|0)==-1){break o}e=b+1|0;e=(e>>>0)%3|0?e:b-2|0;if((e|0)==-1){break o}g=H[f+64>>2];i=H[f>>2];while(1){c=e;b=e+1|0;b=(b>>>0)%3|0?b:e-2|0;if((b|0)==-1|H[i+(b>>>3&536870908)>>2]>>>b&1){break o}b=H[H[g+12>>2]+(b<<2)>>2];if((b|0)==-1){break o}e=b+1|0;e=(e>>>0)%3|0?e:b-2|0;if((e|0)!=-1){continue}break}}H[H[f+28>>2]+(c<<2)>>2]=a;b=H[f+44>>2];p:{if((b|0)!=H[f+48>>2]){H[b>>2]=c;H[f+44>>2]=b+4;break p}g=H[f+40>>2];e=b-g|0;k=e>>2;b=k+1|0;if(b>>>0>=1073741824){break a}i=e>>1;i=e>>>0<2147483644?b>>>0>>0?i:b:1073741823;if(i){if(i>>>0>=1073741824){break l}b=hl(i<<2)}else{b=0}k=b+(k<<2)|0;H[k>>2]=c;if((e|0)>0){jk(b,g,e)}H[f+48>>2]=b+(i<<2);H[f+44>>2]=k+4;H[f+40>>2]=b;if(!g){break p}bl(g)}b=a+1|0;g=H[f+64>>2];q:{if((c>>>0)%3|0){e=c-1|0;break q}e=c+2|0;if((e|0)==-1){break m}}e=H[H[g+12>>2]+(e<<2)>>2];if((e|0)==-1){break m}e=e+((e>>>0)%3|0?-1:2)|0;if((e|0)==-1|(c|0)==(e|0)){break m}while(1){g=e+1|0;g=(g>>>0)%3|0?g:e-2|0;if(H[H[f>>2]+(g>>>3&536870908)>>2]>>>g&1){g=(e|0)<0?-1:H[(H[j+96>>2]+N((e>>>0)/3|0,12)|0)+((e>>>0)%3<<2)>>2];g=I[d+84|0]?g:H[H[d+68>>2]+(g<<2)>>2];a=H[f+56>>2];k=H[f+60>>2];r:{if(a>>>0>>0){H[a>>2]=g;H[f+56>>2]=a+4;break r}i=H[f+52>>2];l=a-i|0;m=l>>2;a=m+1|0;if(a>>>0>=1073741824){break a}k=k-i|0;n=k>>1;k=k>>>0<2147483644?a>>>0>>0?n:a:1073741823;if(k){if(k>>>0>=1073741824){break l}a=hl(k<<2)}else{a=0}m=a+(m<<2)|0;H[m>>2]=g;if((l|0)>0){jk(a,i,l)}H[f+60>>2]=a+(k<<2);H[f+56>>2]=m+4;H[f+52>>2]=a;if(!i){break r}bl(i)}g=b+1|0;a=H[f+44>>2];s:{if((a|0)!=H[f+48>>2]){H[a>>2]=e;H[f+44>>2]=a+4;break s}k=H[f+40>>2];i=a-k|0;m=i>>2;a=m+1|0;if(a>>>0>=1073741824){break a}l=i>>1;l=i>>>0<2147483644?a>>>0>>0?l:a:1073741823;if(l){if(l>>>0>=1073741824){break l}a=hl(l<<2)}else{a=0}m=a+(m<<2)|0;H[m>>2]=e;if((i|0)>0){jk(a,k,i)}H[f+48>>2]=a+(l<<2);H[f+44>>2]=m+4;H[f+40>>2]=a;if(!k){break s}bl(k)}a=b;b=g}H[H[f+28>>2]+(e<<2)>>2]=a;g=H[f+64>>2];t:{if((e>>>0)%3|0){e=e-1|0;break t}e=e+2|0;if((e|0)==-1){break m}}e=H[H[g+12>>2]+(e<<2)>>2];if((e|0)==-1){break m}e=e+((e>>>0)%3|0?-1:2)|0;if((e|0)==-1){break m}if((c|0)!=(e|0)){continue}break}}h=h+1|0;e=H[g+24>>2];if(h>>>0>2]-e>>2>>>0){continue}break}}break k}_a();X()}return}b=0;j=0;f=a;H[f+56>>2]=H[f+52>>2];H[f+44>>2]=H[f+40>>2];u:{v:{e=H[f+64>>2];c=H[e+24>>2];if((c|0)!=H[e+28>>2]){while(1){a=b;d=H[(j<<2)+c>>2];w:{if((d|0)==-1){break w}b=H[f+56>>2];x:{if((b|0)!=H[f+60>>2]){H[b>>2]=a;H[f+56>>2]=b+4;break x}e=H[f+52>>2];c=b-e|0;h=c>>2;b=h+1|0;if(b>>>0>=1073741824){break a}g=c>>1;g=c>>>0<2147483644?b>>>0>>0?g:b:1073741823;if(g){if(g>>>0>=1073741824){break v}b=hl(g<<2)}else{b=0}h=b+(h<<2)|0;H[h>>2]=a;if((c|0)>0){jk(b,e,c)}H[f+60>>2]=b+(g<<2);H[f+56>>2]=h+4;H[f+52>>2]=b;if(!e){break x}bl(e)}y:{if(!(H[H[f+12>>2]+(j>>>3&536870908)>>2]>>>j&1)){break y}b=d+1|0;b=(b>>>0)%3|0?b:d-2|0;if((b|0)==-1|H[H[f>>2]+(b>>>3&536870908)>>2]>>>b&1){break y}b=H[H[H[f+64>>2]+12>>2]+(b<<2)>>2];if((b|0)==-1){break y}c=b+1|0;c=(c>>>0)%3|0?c:b-2|0;if((c|0)==-1){break y}e=H[f+64>>2];g=H[f>>2];while(1){d=c;b=c+1|0;b=(b>>>0)%3|0?b:c-2|0;if((b|0)==-1|H[g+(b>>>3&536870908)>>2]>>>b&1){break y}b=H[H[e+12>>2]+(b<<2)>>2];if((b|0)==-1){break y}c=b+1|0;c=(c>>>0)%3|0?c:b-2|0;if((c|0)!=-1){continue}break}}H[H[f+28>>2]+(d<<2)>>2]=a;b=H[f+44>>2];z:{if((b|0)!=H[f+48>>2]){H[b>>2]=d;H[f+44>>2]=b+4;break z}e=H[f+40>>2];c=b-e|0;h=c>>2;b=h+1|0;if(b>>>0>=1073741824){break a}g=c>>1;g=c>>>0<2147483644?b>>>0>>0?g:b:1073741823;if(g){if(g>>>0>=1073741824){break v}b=hl(g<<2)}else{b=0}h=b+(h<<2)|0;H[h>>2]=d;if((c|0)>0){jk(b,e,c)}H[f+48>>2]=b+(g<<2);H[f+44>>2]=h+4;H[f+40>>2]=b;if(!e){break z}bl(e)}b=a+1|0;e=H[f+64>>2];A:{if((d>>>0)%3|0){c=d-1|0;break A}c=d+2|0;if((c|0)==-1){break w}}c=H[H[e+12>>2]+(c<<2)>>2];if((c|0)==-1){break w}c=c+((c>>>0)%3|0?-1:2)|0;if((c|0)==-1|(c|0)==(d|0)){break w}while(1){e=c+1|0;e=(e>>>0)%3|0?e:c-2|0;if(H[H[f>>2]+(e>>>3&536870908)>>2]>>>e&1){a=H[f+56>>2];B:{if((a|0)!=H[f+60>>2]){H[a>>2]=b;H[f+56>>2]=a+4;break B}g=H[f+52>>2];e=a-g|0;i=e>>2;a=i+1|0;if(a>>>0>=1073741824){break a}h=e>>1;h=e>>>0<2147483644?a>>>0>>0?h:a:1073741823;if(h){if(h>>>0>=1073741824){break v}a=hl(h<<2)}else{a=0}i=a+(i<<2)|0;H[i>>2]=b;if((e|0)>0){jk(a,g,e)}H[f+60>>2]=a+(h<<2);H[f+56>>2]=i+4;H[f+52>>2]=a;if(!g){break B}bl(g)}e=b+1|0;a=H[f+44>>2];C:{if((a|0)!=H[f+48>>2]){H[a>>2]=c;H[f+44>>2]=a+4;break C}h=H[f+40>>2];g=a-h|0;k=g>>2;a=k+1|0;if(a>>>0>=1073741824){break a}i=g>>1;i=g>>>0<2147483644?a>>>0>>0?i:a:1073741823;if(i){if(i>>>0>=1073741824){break v}a=hl(i<<2)}else{a=0}k=a+(k<<2)|0;H[k>>2]=c;if((g|0)>0){jk(a,h,g)}H[f+48>>2]=a+(i<<2);H[f+44>>2]=k+4;H[f+40>>2]=a;if(!h){break C}bl(h)}a=b;b=e}H[H[f+28>>2]+(c<<2)>>2]=a;e=H[f+64>>2];D:{if((c>>>0)%3|0){c=c-1|0;break D}c=c+2|0;if((c|0)==-1){break w}}c=H[H[e+12>>2]+(c<<2)>>2];if((c|0)==-1){break w}c=c+((c>>>0)%3|0?-1:2)|0;if((c|0)==-1){break w}if((c|0)!=(d|0)){continue}break}}j=j+1|0;c=H[e+24>>2];if(j>>>0>2]-c>>2>>>0){continue}break}}break u}_a();X()}}return}Ka();X()}function Gb(a){a=a|0;var b=0,c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=O(0),q=0,r=0;e=ha+-64|0;ha=e;j=H[H[a+28>>2]+4>>2];b=H[a+4>>2];d=H[a+8>>2];i=(b|0)==(d|0);a:{if(i){break a}d=d-b>>2;l=d>>>0>1?d:1;h=l&3;d=H[j+8>>2];if(l-1>>>0>=3){l=l&-4;while(1){m=g;g=c<<2;g=(((m+F[H[d+(H[g+b>>2]<<2)>>2]+24|0]|0)+F[H[d+(H[(g|4)+b>>2]<<2)>>2]+24|0]|0)+F[H[d+(H[(g|8)+b>>2]<<2)>>2]+24|0]|0)+F[H[d+(H[(g|12)+b>>2]<<2)>>2]+24|0]|0;c=c+4|0;k=k+4|0;if((l|0)!=(k|0)){continue}break}}if(!h){break a}while(1){g=F[H[d+(H[(c<<2)+b>>2]<<2)>>2]+24|0]+g|0;c=c+1|0;f=f+1|0;if((h|0)!=(f|0)){continue}break}}o=H[j+80>>2];H[a+72>>2]=g;b:{c:{if(i){c=1;break c}l=0;while(1){b=H[(l<<2)+b>>2];H[e+60>>2]=b;d:{e:{f:{d=H[a+28>>2];j=H[H[H[d+4>>2]+8>>2]+(b<<2)>>2];switch(H[j+28>>2]-1|0){case 0:case 2:case 4:break e;case 8:break f;default:break d}}H[e+36>>2]=-1;H[e+32>>2]=2032;H[e+48>>2]=0;H[e+52>>2]=0;H[e+40>>2]=0;H[e+44>>2]=0;g=H[d+48>>2];b=hl(32);H[e+16>>2]=b;H[e+20>>2]=17;H[e+24>>2]=-2147483616;F[b+17|0]=0;F[b+16|0]=I[1261];d=I[1257]|I[1258]<<8|(I[1259]<<16|I[1260]<<24);c=I[1253]|I[1254]<<8|(I[1255]<<16|I[1256]<<24);F[b+8|0]=c;F[b+9|0]=c>>>8;F[b+10|0]=c>>>16;F[b+11|0]=c>>>24;F[b+12|0]=d;F[b+13|0]=d>>>8;F[b+14|0]=d>>>16;F[b+15|0]=d>>>24;d=I[1249]|I[1250]<<8|(I[1251]<<16|I[1252]<<24);c=I[1245]|I[1246]<<8|(I[1247]<<16|I[1248]<<24);F[b|0]=c;F[b+1|0]=c>>>8;F[b+2|0]=c>>>16;F[b+3|0]=c>>>24;F[b+4|0]=d;F[b+5|0]=d>>>8;F[b+6|0]=d>>>16;F[b+7|0]=d>>>24;g=Hb(g,e+60|0,e+16|0,-1);if(F[e+27|0]<0){bl(H[e+16>>2])}g:{if((g|0)<=0){break g}h=H[H[a+28>>2]+48>>2];b=hl(32);H[e+16>>2]=b;H[e+20>>2]=19;H[e+24>>2]=-2147483616;d=0;F[b+19|0]=0;c=I[1429]|I[1430]<<8|(I[1431]<<16|I[1432]<<24);F[b+15|0]=c;F[b+16|0]=c>>>8;F[b+17|0]=c>>>16;F[b+18|0]=c>>>24;c=I[1426]|I[1427]<<8|(I[1428]<<16|I[1429]<<24);f=I[1422]|I[1423]<<8|(I[1424]<<16|I[1425]<<24);F[b+8|0]=f;F[b+9|0]=f>>>8;F[b+10|0]=f>>>16;F[b+11|0]=f>>>24;F[b+12|0]=c;F[b+13|0]=c>>>8;F[b+14|0]=c>>>16;F[b+15|0]=c>>>24;c=I[1418]|I[1419]<<8|(I[1420]<<16|I[1421]<<24);f=I[1414]|I[1415]<<8|(I[1416]<<16|I[1417]<<24);F[b|0]=f;F[b+1|0]=f>>>8;F[b+2|0]=f>>>16;F[b+3|0]=f>>>24;F[b+4|0]=c;F[b+5|0]=c>>>8;F[b+6|0]=c>>>16;F[b+7|0]=c>>>24;h:{if(!Ib(h,e+60|0,e+16|0)){break h}f=H[H[a+28>>2]+48>>2];b=hl(32);H[e>>2]=b;H[e+4>>2]=18;H[e+8>>2]=-2147483616;F[b+18|0]=0;d=I[1547]|I[1548]<<8;F[b+16|0]=d;F[b+17|0]=d>>>8;d=I[1543]|I[1544]<<8|(I[1545]<<16|I[1546]<<24);c=I[1539]|I[1540]<<8|(I[1541]<<16|I[1542]<<24);F[b+8|0]=c;F[b+9|0]=c>>>8;F[b+10|0]=c>>>16;F[b+11|0]=c>>>24;F[b+12|0]=d;F[b+13|0]=d>>>8;F[b+14|0]=d>>>16;F[b+15|0]=d>>>24;d=I[1535]|I[1536]<<8|(I[1537]<<16|I[1538]<<24);c=I[1531]|I[1532]<<8|(I[1533]<<16|I[1534]<<24);F[b|0]=c;F[b+1|0]=c>>>8;F[b+2|0]=c>>>16;F[b+3|0]=c>>>24;F[b+4|0]=d;F[b+5|0]=d>>>8;F[b+6|0]=d>>>16;F[b+7|0]=d>>>24;d=Ib(f,e+60|0,e);if(F[e+11|0]>=0){break h}bl(H[e>>2])}if(F[e+27|0]<0){bl(H[e+16>>2])}i:{if(d){d=F[j+24|0];b=0;H[e+24>>2]=0;H[e+16>>2]=0;H[e+20>>2]=0;if(d){if((d|0)<0){break b}d=d<<2;b=hl(d);H[e+16>>2]=b;c=b+d|0;H[e+24>>2]=c;lk(b,0,d);H[e+20>>2]=c}h=H[H[a+28>>2]+48>>2];d=hl(32);H[e>>2]=d;H[e+4>>2]=19;H[e+8>>2]=-2147483616;F[d+19|0]=0;c=I[1429]|I[1430]<<8|(I[1431]<<16|I[1432]<<24);F[d+15|0]=c;F[d+16|0]=c>>>8;F[d+17|0]=c>>>16;F[d+18|0]=c>>>24;c=I[1426]|I[1427]<<8|(I[1428]<<16|I[1429]<<24);f=I[1422]|I[1423]<<8|(I[1424]<<16|I[1425]<<24);F[d+8|0]=f;F[d+9|0]=f>>>8;F[d+10|0]=f>>>16;F[d+11|0]=f>>>24;F[d+12|0]=c;F[d+13|0]=c>>>8;F[d+14|0]=c>>>16;F[d+15|0]=c>>>24;c=I[1418]|I[1419]<<8|(I[1420]<<16|I[1421]<<24);f=I[1414]|I[1415]<<8|(I[1416]<<16|I[1417]<<24);F[d|0]=f;F[d+1|0]=f>>>8;F[d+2|0]=f>>>16;F[d+3|0]=f>>>24;F[d+4|0]=c;F[d+5|0]=c>>>8;F[d+6|0]=c>>>16;F[d+7|0]=c>>>24;Jb(h,e+60|0,e,F[j+24|0],b);if(F[e+11|0]<0){bl(H[e>>2])}h=H[H[a+28>>2]+48>>2];d=hl(32);H[e>>2]=d;H[e+4>>2]=18;H[e+8>>2]=-2147483616;F[d+18|0]=0;c=I[1547]|I[1548]<<8;F[d+16|0]=c;F[d+17|0]=c>>>8;c=I[1543]|I[1544]<<8|(I[1545]<<16|I[1546]<<24);f=I[1539]|I[1540]<<8|(I[1541]<<16|I[1542]<<24);F[d+8|0]=f;F[d+9|0]=f>>>8;F[d+10|0]=f>>>16;F[d+11|0]=f>>>24;F[d+12|0]=c;F[d+13|0]=c>>>8;F[d+14|0]=c>>>16;F[d+15|0]=c>>>24;c=I[1535]|I[1536]<<8|(I[1537]<<16|I[1538]<<24);f=I[1531]|I[1532]<<8|(I[1533]<<16|I[1534]<<24);F[d|0]=f;F[d+1|0]=f>>>8;F[d+2|0]=f>>>16;F[d+3|0]=f>>>24;F[d+4|0]=c;F[d+5|0]=c>>>8;F[d+6|0]=c>>>16;F[d+7|0]=c>>>24;p=Kb(h,e+60|0,e);if(F[e+11|0]<0){bl(H[e>>2])}Ra(e+32|0,g,b,F[j+24|0],p);if(!b){break i}bl(b);break i}if(!Ta(e+32|0,j,g)){break g}}b=H[a+40>>2];j:{if((b|0)!=H[a+44>>2]){H[b>>2]=2032;d=H[e+36>>2];H[b+16>>2]=0;H[b+8>>2]=0;H[b+12>>2]=0;H[b+4>>2]=d;d=H[e+44>>2];c=H[e+40>>2];if((d|0)!=(c|0)){c=d-c|0;if((c|0)<0){break b}d=hl(c);H[b+8>>2]=d;H[b+12>>2]=d;H[b+16>>2]=d+(c>>2<<2);g=H[e+40>>2];c=H[e+44>>2]-g|0;if((c|0)>0){d=jk(d,g,c)+c|0}H[b+12>>2]=d}L[b+20>>2]=L[e+52>>2];H[a+40>>2]=b+24;break j}g=0;k:{l:{m:{d=H[a+40>>2];f=H[a+36>>2];c=(d-f|0)/24|0;b=c+1|0;if(b>>>0<178956971){h=(H[a+44>>2]-f|0)/24|0;i=h<<1;h=h>>>0<89478485?b>>>0>>0?i:b:178956970;if(h){if(h>>>0>=178956971){break m}g=hl(N(h,24))}b=N(c,24)+g|0;H[b>>2]=2032;c=H[e+36>>2];H[b+16>>2]=0;H[b+8>>2]=0;H[b+12>>2]=0;H[b+4>>2]=c;c=H[e+44>>2];i=H[e+40>>2];if((c|0)!=(i|0)){c=c-i|0;if((c|0)<0){break b}k=hl(c);H[b+8>>2]=k;H[b+16>>2]=k+(c>>2<<2);q=b,r=jk(k,i,c)+c|0,H[q+12>>2]=r}c=N(h,24)+g|0;L[b+20>>2]=L[e+52>>2];g=b+24|0;if((d|0)==(f|0)){break l}while(1){b=b-24|0;H[b>>2]=2032;d=d-24|0;H[b+4>>2]=H[d+4>>2];H[b+8>>2]=H[d+8>>2];H[b+12>>2]=H[d+12>>2];H[b+16>>2]=H[d+16>>2];H[d+16>>2]=0;H[d+8>>2]=0;H[d+12>>2]=0;L[b+20>>2]=L[d+20>>2];if((d|0)!=(f|0)){continue}break}H[a+44>>2]=c;c=H[a+40>>2];H[a+40>>2]=g;d=H[a+36>>2];H[a+36>>2]=b;if((d|0)==(c|0)){break k}while(1){c=c-24|0;la[H[H[c>>2]>>2]](c)|0;if((d|0)!=(c|0)){continue}break}break k}break b}_a();X()}H[a+44>>2]=c;H[a+40>>2]=g;H[a+36>>2]=b}if(d){bl(d)}}b=e+32|0;d=$a(b,j,o);H[e>>2]=d;H[e+24>>2]=0;H[e+16>>2]=0;H[e+20>>2]=0;Pa(b,j,e+16|0,d);b=H[e+16>>2];if(b){H[e+20>>2]=b;bl(b)}b=H[a+64>>2];n:{if(b>>>0>2]){d=H[e>>2];H[e>>2]=0;H[b>>2]=d;H[a+64>>2]=b+4;break n}b=0;o:{p:{q:{c=H[a+60>>2];g=H[a+64>>2]-c>>2;d=g+1|0;if(d>>>0<1073741824){c=H[a+68>>2]-c|0;j=c>>1;d=c>>>0<2147483644?d>>>0>>0?j:d:1073741823;if(d){if(d>>>0>=1073741824){break q}b=hl(d<<2)}j=H[e>>2];H[e>>2]=0;c=(g<<2)+b|0;H[c>>2]=j;g=(d<<2)+b|0;j=c+4|0;b=H[a+64>>2];d=H[a+60>>2];if((b|0)==(d|0)){break p}while(1){b=b-4|0;f=H[b>>2];H[b>>2]=0;c=c-4|0;H[c>>2]=f;if((b|0)!=(d|0)){continue}break}H[a+68>>2]=g;b=H[a+64>>2];H[a+64>>2]=j;d=H[a+60>>2];H[a+60>>2]=c;if((b|0)==(d|0)){break o}while(1){b=b-4|0;c=H[b>>2];H[b>>2]=0;if(c){Lb(c)}if((b|0)!=(d|0)){continue}break}break o}break b}_a();X()}H[a+68>>2]=g;H[a+64>>2]=j;H[a+60>>2]=c}if(d){bl(d)}}b=H[e>>2];H[e>>2]=0;if(b){Lb(b)}H[e+32>>2]=2032;b=H[e+40>>2];if(!b){break d}H[e+44>>2]=b;bl(b);break d}H[e+32>>2]=2032;a=H[e+40>>2];if(a){H[e+44>>2]=a;bl(a)}c=0;break c}g=F[j+24|0];H[e+40>>2]=0;H[e+32>>2]=0;H[e+36>>2]=0;r:{if(!g){d=0;H[e+24>>2]=0;H[e+16>>2]=0;H[e+20>>2]=0;g=0;break r}if((g|0)<0){break b}b=g<<2;d=hl(b);H[e+32>>2]=d;f=b+d|0;H[e+40>>2]=f;c=0;b=d;h=g&7;if(h){while(1){H[b>>2]=2147483647;b=b+4|0;c=c+1|0;if((h|0)!=(c|0)){continue}break}}if((g-1&1073741823)>>>0>=7){while(1){H[b+24>>2]=2147483647;H[b+28>>2]=2147483647;H[b+16>>2]=2147483647;H[b+20>>2]=2147483647;H[b+8>>2]=2147483647;H[b+12>>2]=2147483647;H[b>>2]=2147483647;H[b+4>>2]=2147483647;b=b+32|0;if((f|0)!=(b|0)){continue}break}}H[e+36>>2]=f;b=F[j+24|0];g=0;H[e+24>>2]=0;H[e+16>>2]=0;H[e+20>>2]=0;if(!b){break r}if((b|0)<0){break b}b=b<<2;g=hl(b);H[e+16>>2]=g;c=b+g|0;H[e+24>>2]=c;lk(g,0,b);H[e+20>>2]=c}c=I[j+24|0];f=0;if(H[j+80>>2]){while(1){Mb(j,f,c<<24>>24,g);c=F[j+24|0];s:{if((c|0)<=0){break s}b=0;if((c|0)!=1){m=c&-2;h=0;while(1){i=b<<2;k=i+d|0;n=H[g+i>>2];if((n|0)>2]){H[k>>2]=n}i=i|4;k=i+d|0;i=H[g+i>>2];if(H[k>>2]>(i|0)){H[k>>2]=i}b=b+2|0;h=h+2|0;if((m|0)!=(h|0)){continue}break}}if(!(c&1)){break s}b=b<<2;h=b+d|0;b=H[b+g>>2];if(H[h>>2]<=(b|0)){break s}H[h>>2]=b}f=f+1|0;if(f>>>0>2]){continue}break}}b=0;t:{if(c<<24>>24<=0){break t}u:{while(1){v:{k=(b<<2)+d|0;c=H[a+52>>2];w:{if((c|0)!=H[a+56>>2]){H[c>>2]=H[k>>2];H[a+52>>2]=c+4;break w}h=H[a+48>>2];f=c-h|0;m=f>>2;c=m+1|0;if(c>>>0>=1073741824){break v}i=f>>1;i=f>>>0<2147483644?c>>>0>>0?i:c:1073741823;if(i){if(i>>>0>=1073741824){break u}c=hl(i<<2)}else{c=0}m=c+(m<<2)|0;H[m>>2]=H[k>>2];if((f|0)>0){jk(c,h,f)}H[a+56>>2]=c+(i<<2);H[a+52>>2]=m+4;H[a+48>>2]=c;if(!h){break w}bl(h)}b=b+1|0;if((b|0)>2];if(l>>>0>2]-b>>2>>>0){continue}break}}ha=e- -64|0;return c|0}Ka();X()}function ib(a,b){var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=O(0),r=0,s=0,t=0,u=O(0);e=ha-112|0;ha=e;H[e+88>>2]=0;H[e+92>>2]=0;H[e+80>>2]=0;H[e+84>>2]=0;H[e+96>>2]=1065353216;c=H[a+80>>2];H[e+40>>2]=0;H[e+32>>2]=0;H[e+36>>2]=0;a:{if(c){if(c>>>0>=1073741824){break a}d=c<<2;f=hl(d);H[e+32>>2]=f;c=d+f|0;H[e+40>>2]=c;lk(f,0,d);H[e+36>>2]=c;while(1){c=H[H[b>>2]>>2];d=H[b+48>>2]+Sl(H[b+40>>2],H[b+44>>2],s,0)|0;h=c+d|0;c=I[h+12|0]|I[h+13|0]<<8|(I[h+14|0]<<16|I[h+15|0]<<24);H[e+72>>2]=I[h+8|0]|I[h+9|0]<<8|(I[h+10|0]<<16|I[h+11|0]<<24);H[e+76>>2]=c;c=I[h+4|0]|I[h+5|0]<<8|(I[h+6|0]<<16|I[h+7|0]<<24);H[e+64>>2]=I[h|0]|I[h+1|0]<<8|(I[h+2|0]<<16|I[h+3|0]<<24);H[e+68>>2]=c;g=I[h|0]|I[h+1|0]<<8|(I[h+2|0]<<16|I[h+3|0]<<24);d=I[h+4|0]|I[h+5|0]<<8|(I[h+6|0]<<16|I[h+7|0]<<24);c=I[h+12|0]|I[h+13|0]<<8|(I[h+14|0]<<16|I[h+15|0]<<24);H[e+56>>2]=I[h+8|0]|I[h+9|0]<<8|(I[h+10|0]<<16|I[h+11|0]<<24);H[e+60>>2]=c;H[e+48>>2]=g;H[e+52>>2]=d;d=0;i=H[e+84>>2];b:{if(!i){break b}h=H[e+80>>2];j=H[e+60>>2]^(H[e+56>>2]^(H[e+52>>2]^(H[e+48>>2]^318)+239)+239)+239;c=j&i-1;g=Vl(i);c:{if(g>>>0<=1){break c}c=j;if(c>>>0>>0){break c}c=(j>>>0)%(i>>>0)|0}k=h;h=c;c=H[k+(c<<2)>>2];if(!c){break b}c=H[c>>2];if(!c){break b}d:{if(g>>>0>=2){k=H[e+60>>2];p=H[e+56>>2];o=H[e+52>>2];l=H[e+48>>2];while(1){g=H[c+4>>2];e:{if((g|0)!=(j|0)){if(g>>>0>=i>>>0){g=(g>>>0)%(i>>>0)|0}if((h|0)!=(g|0)){break b}break e}g=H[c+8>>2];f:{if((g|0)!=(l|0)){g=(g|0)==(l|0);break f}g=H[c+12>>2];if((g|0)!=(o|0)){g=(g|0)==(o|0);break f}g=H[c+16>>2];if((g|0)!=(p|0)){g=(g|0)==(p|0);break f}g=(k|0)==H[c+20>>2]}if(g){break d}}c=H[c>>2];if(c){continue}break}break b}l=i-1|0;k=H[e+60>>2];i=H[e+56>>2];p=H[e+52>>2];o=H[e+48>>2];while(1){g=H[c+4>>2];g:{if((g|0)!=(j|0)){if((h|0)!=(g&l)){break b}break g}g=H[c+8>>2];if((g|0)!=(o|0)){if((g|0)!=(o|0)){break g}break d}g=H[c+12>>2];if((g|0)!=(p|0)){if((g|0)!=(p|0)){break g}break d}g=H[c+16>>2];if((g|0)!=(i|0)){if((g|0)!=(i|0)){break g}break d}if((k|0)==H[c+20>>2]){break d}}c=H[c>>2];if(c){continue}break}break b}d=c}h:{if(d){H[(s<<2)+f>>2]=H[d+24>>2];break h}c=H[e+60>>2];H[e+16>>2]=H[e+56>>2];H[e+20>>2]=c;c=H[e+52>>2];H[e+8>>2]=H[e+48>>2];H[e+12>>2]=c;H[e+24>>2]=r;c=0;h=H[e+20>>2]^(H[e+16>>2]^(H[e+12>>2]^(H[e+8>>2]^318)+239)+239)+239;i:{j:{m=e+80|0;f=H[m+4>>2];if(!f){break j}c=f-1|0;if(c&f){c=h;if(f>>>0<=c>>>0){c=(h>>>0)%(f>>>0)|0}i=H[H[m>>2]+(c<<2)>>2];if(!i){break j}g=H[e+20>>2];l=H[e+16>>2];k=H[e+12>>2];j=H[e+8>>2];while(1){i=H[i>>2];if(!i){break j}d=H[i+4>>2];if((d|0)!=(h|0)){if(d>>>0>=f>>>0){d=(d>>>0)%(f>>>0)|0}if((c|0)!=(d|0)){break j}}d=H[i+8>>2];k:{if((d|0)!=(j|0)){d=(d|0)==(j|0);break k}d=H[i+12>>2];if((d|0)!=(k|0)){d=(d|0)==(k|0);break k}d=H[i+16>>2];if((d|0)!=(l|0)){d=(d|0)==(l|0);break k}d=(g|0)==H[i+20>>2]}if(!d){continue}break}c=0;break i}c=c&h;i=H[H[m>>2]+(c<<2)>>2];if(!i){break j}j=f-1|0;g=H[e+20>>2];o=H[e+16>>2];l=H[e+12>>2];k=H[e+8>>2];while(1){i=H[i>>2];if(!i){break j}d=H[i+4>>2];if((d|0)!=(h|0)&(d&j)!=(c|0)){break j}d=H[i+8>>2];l:{if((d|0)!=(k|0)){d=(d|0)==(k|0);break l}d=H[i+12>>2];if((d|0)!=(l|0)){d=(d|0)==(l|0);break l}d=H[i+16>>2];if((d|0)!=(o|0)){d=(d|0)==(o|0);break l}d=(g|0)==H[i+20>>2]}if(!d){continue}break}c=0;break i}i=hl(28);d=H[e+20>>2];H[i+16>>2]=H[e+16>>2];H[i+20>>2]=d;d=H[e+12>>2];H[i+8>>2]=H[e+8>>2];H[i+12>>2]=d;d=H[e+24>>2];H[i>>2]=0;H[i+4>>2]=h;H[i+24>>2]=d;q=O(H[m+12>>2]+1>>>0);u=L[m+16>>2];m:{if(q>O(u*O(f>>>0))?0:f){break m}c=2;d=(f-1&f)!=0|f>>>0<3|f<<1;q=O(U(O(q/u)));n:{if(q=O(0)){g=~~q>>>0;break n}g=0}d=d>>>0>g>>>0?d:g;o:{if((d|0)==1){break o}if(!(d&d-1)){c=d;break o}c=Zk(d);f=H[m+4>>2]}p:{if(c>>>0<=f>>>0){if(c>>>0>=f>>>0){break p}g=f>>>0<3;q=O(U(O(O(K[m+12>>2])/L[m+16>>2])));q:{if(q=O(0)){d=~~q>>>0;break q}d=0}r:{s:{if(g){break s}if(Vl(f)>>>0>1){break s}d=d>>>0<2?d:1<<32-Q(d-1|0);break r}d=Zk(d)}c=c>>>0>d>>>0?c:d;if(f>>>0<=c>>>0){break p}}d=0;j=0;k=c;t:{u:{v:{if(c){if(k>>>0>=1073741824){break v}c=hl(k<<2);f=H[m>>2];H[m>>2]=c;if(f){bl(f)}H[m+4>>2]=k;if(k-1>>>0>=3){c=k&-4;f=0;while(1){g=d<<2;H[g+H[m>>2]>>2]=0;H[H[m>>2]+(g|4)>>2]=0;H[H[m>>2]+(g|8)>>2]=0;H[H[m>>2]+(g|12)>>2]=0;d=d+4|0;f=f+4|0;if((c|0)!=(f|0)){continue}break}}c=k&3;if(c){while(1){H[H[m>>2]+(d<<2)>>2]=0;d=d+1|0;j=j+1|0;if((c|0)!=(j|0)){continue}break}}f=H[m+8>>2];if(!f){break t}d=m+8|0;g=H[f+4>>2];c=k-1|0;if(!(c&k)){break u}g=g>>>0>=k>>>0?(g>>>0)%(k>>>0)|0:g;H[H[m>>2]+(g<<2)>>2]=d;c=H[f>>2];if(!c){break t}while(1){j=H[c+4>>2];if(k>>>0<=j>>>0){j=(j>>>0)%(k>>>0)|0}w:{if((g|0)==(j|0)){f=c;break w}d=c;p=j<<2;l=p+H[m>>2]|0;if(!H[l>>2]){H[l>>2]=f;f=c;g=j;break w}while(1){j=d;d=H[d>>2];if(d){o=H[c+8>>2];l=H[d+8>>2];x:{if((o|0)!=(l|0)){l=(l|0)==(o|0);break x}o=H[c+12>>2];l=H[d+12>>2];if((o|0)!=(l|0)){l=(l|0)==(o|0);break x}o=H[c+16>>2];l=H[d+16>>2];if((o|0)!=(l|0)){l=(l|0)==(o|0);break x}l=H[c+20>>2]==H[d+20>>2]}if(l){continue}}break}H[f>>2]=d;H[j>>2]=H[H[p+H[m>>2]>>2]>>2];H[H[p+H[m>>2]>>2]>>2]=c}c=H[f>>2];if(c){continue}break}break t}c=H[m>>2];H[m>>2]=0;if(c){bl(c)}H[m+4>>2]=0;break t}_a();X()}g=c&g;H[H[m>>2]+(g<<2)>>2]=d;c=H[f>>2];if(!c){break t}o=k-1|0;while(1){j=o&H[c+4>>2];y:{if((j|0)==(g|0)){f=c;break y}d=c;p=j<<2;k=p+H[m>>2]|0;if(H[k>>2]){while(1){j=d;d=H[d>>2];if(d){l=H[c+8>>2];k=H[d+8>>2];z:{if((l|0)!=(k|0)){k=(k|0)==(l|0);break z}l=H[c+12>>2];k=H[d+12>>2];if((l|0)!=(k|0)){k=(k|0)==(l|0);break z}l=H[c+16>>2];k=H[d+16>>2];if((l|0)!=(k|0)){k=(k|0)==(l|0);break z}k=H[c+20>>2]==H[d+20>>2]}if(k){continue}}break}H[f>>2]=d;H[j>>2]=H[H[p+H[m>>2]>>2]>>2];H[H[p+H[m>>2]>>2]>>2]=c;break y}H[k>>2]=f;f=c;g=j}c=H[f>>2];if(c){continue}break}}}f=H[m+4>>2];c=f-1|0;if(!(c&f)){c=c&h;break m}if(f>>>0>h>>>0){c=h;break m}c=(h>>>0)%(f>>>0)|0}d=H[m>>2]+(c<<2)|0;c=H[d>>2];A:{B:{if(!c){c=m+8|0;H[i>>2]=H[c>>2];H[m+8>>2]=i;H[d>>2]=c;c=H[i>>2];if(!c){break A}c=H[c+4>>2];d=f-1|0;C:{if(!(d&f)){c=c&d;break C}if(c>>>0>>0){break C}c=(c>>>0)%(f>>>0)|0}c=H[m>>2]+(c<<2)|0;break B}H[i>>2]=H[c>>2]}H[c>>2]=i}H[m+12>>2]=H[m+12>>2]+1;c=1}F[e+108|0]=c;H[e+104>>2]=i;c=H[a+40>>2];jk(H[H[a>>2]>>2]+N(c,r)|0,e- -64|0,c);f=H[e+32>>2];H[f+(s<<2)>>2]=r;r=r+1|0}c=s+1|0;n=c?n:n+1|0;s=c;c=H[a+80>>2];if(!n&c>>>0>s>>>0){continue}break}if((c|0)!=(r|0)){D:{if(!I[a+84|0]){b=H[a+72>>2];j=H[a+68>>2];if((b|0)==(j|0)){break D}b=b-j>>2;c=b>>>0>1?b:1;g=c&3;d=0;b=0;if(c-1>>>0>=3){n=c&-4;while(1){h=b<<2;c=h+j|0;H[c>>2]=H[(H[c>>2]<<2)+f>>2];c=j+(h|4)|0;H[c>>2]=H[(H[c>>2]<<2)+f>>2];c=j+(h|8)|0;H[c>>2]=H[(H[c>>2]<<2)+f>>2];c=j+(h|12)|0;H[c>>2]=H[(H[c>>2]<<2)+f>>2];b=b+4|0;t=t+4|0;if((n|0)!=(t|0)){continue}break}}if(!g){break D}while(1){c=j+(b<<2)|0;H[c>>2]=H[(H[c>>2]<<2)+f>>2];b=b+1|0;d=d+1|0;if((g|0)!=(d|0)){continue}break}break D}F[a+84|0]=0;n=a+68|0;b=H[a+68>>2];d=H[a+72>>2]-b>>2;E:{if(d>>>0>>0){tb(n,c-d|0,2176);c=H[a+80>>2];break E}if(c>>>0>=d>>>0){break E}H[a+72>>2]=b+(c<<2)}if(!c){break D}j=H[n>>2];d=0;b=0;if(c-1>>>0>=3){g=c&-4;while(1){h=b<<2;H[h+j>>2]=H[f+h>>2];n=h|4;H[n+j>>2]=H[f+n>>2];n=h|8;H[n+j>>2]=H[f+n>>2];n=h|12;H[n+j>>2]=H[f+n>>2];b=b+4|0;t=t+4|0;if((g|0)!=(t|0)){continue}break}}n=c&3;if(!n){break D}while(1){c=b<<2;H[c+j>>2]=H[c+f>>2];b=b+1|0;d=d+1|0;if((n|0)!=(d|0)){continue}break}}H[a+80>>2]=r}bl(f)}b=H[e+88>>2];if(b){while(1){a=H[b>>2];bl(b);b=a;if(b){continue}break}}a=H[e+80>>2];H[e+80>>2]=0;if(a){bl(a)}ha=e+112|0;return r}Ka();X()}function Qk(a,b,c,d,e,f,g,h,i){var j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,I=0,J=0,L=0,M=0,N=0;l=ha-336|0;ha=l;m=i&65535;p=d;q=e&65535;s=(e^i)&-2147483648;k=h;x=i>>>16&32767;y=e>>>16&32767;a:{b:{if(x-32767>>>0>4294934529&y-32767>>>0>=4294934530){break b}j=e&2147483647;if(!(!d&(j|0)==2147418112?!(b|c):j>>>0<2147418112)){o=d;s=e|32768;break a}e=i&2147483647;if(!(!h&(e|0)==2147418112?!(f|g):e>>>0<2147418112)){o=h;s=i|32768;b=f;c=g;break a}if(!(b|d|(j^2147418112|c))){if(!(f|h|(e^2147418112|g))){b=0;c=0;s=2147450880;break a}s=s|2147418112;b=0;c=0;break a}if(!(f|h|(e^2147418112|g))){b=0;c=0;break a}if(!(b|d|(c|j))){b=!(f|h|(e|g));o=b?0:o;s=b?2147450880:s;b=0;c=0;break a}if(!(f|h|(e|g))){s=s|2147418112;b=0;c=0;break a}if((j|0)==65535|j>>>0<65535){i=b;d=!(p|q);h=d<<6;j=Q(d?b:p)+32|0;b=Q(d?c:q);b=h+((b|0)==32?j:b)|0;Nk(l+320|0,i,c,p,q,b-15|0);n=16-b|0;p=H[l+328>>2];q=H[l+332>>2];c=H[l+324>>2];b=H[l+320>>2]}if(e>>>0>65535){break b}d=!(k|m);e=d<<6;h=Q(d?f:k)+32|0;d=Q(d?g:m);d=e+((d|0)==32?h:d)|0;Nk(l+304|0,f,g,k,m,d-15|0);n=(d+n|0)-16|0;k=H[l+312>>2];m=H[l+316>>2];f=H[l+304>>2];g=H[l+308>>2]}e=m|65536;z=e;A=k;d=k;k=e<<15|d>>>17;d=d<<15|g>>>17;h=0-d|0;e=k;i=1963258675-(e+((d|0)!=0)|0)|0;Wk(l+288|0,d,e,0,0,h,i,0,0);j=H[l+296>>2];Wk(l+272|0,0-j|0,0-(H[l+300>>2]+((j|0)!=0)|0)|0,0,0,h,i,0,0);h=H[l+280>>2];i=h<<1|H[l+276>>2]>>>31;h=H[l+284>>2]<<1|h>>>31;Wk(l+256|0,i,h,0,0,d,e,0,0);j=h;h=H[l+264>>2];Wk(l+240|0,i,j,0,0,0-h|0,0-(H[l+268>>2]+((h|0)!=0)|0)|0,0,0);h=H[l+248>>2];i=h<<1|H[l+244>>2]>>>31;h=H[l+252>>2]<<1|h>>>31;Wk(l+224|0,i,h,0,0,d,e,0,0);j=h;h=H[l+232>>2];Wk(l+208|0,i,j,0,0,0-h|0,0-(H[l+236>>2]+((h|0)!=0)|0)|0,0,0);h=H[l+216>>2];i=h<<1|H[l+212>>2]>>>31;h=H[l+220>>2]<<1|h>>>31;Wk(l+192|0,i,h,0,0,d,e,0,0);e=h;h=H[l+200>>2];Wk(l+176|0,i,e,0,0,0-h|0,0-(H[l+204>>2]+((h|0)!=0)|0)|0,0,0);i=d;h=H[l+184>>2];d=h<<1|H[l+180>>2]>>>31;e=d-1|0;h=(H[l+188>>2]<<1|h>>>31)-!d|0;Wk(l+160|0,i,k,0,0,e,h,0,0);d=f;j=g<<15|d>>>17;Wk(l+144|0,d<<15,j,0,0,e,h,0,0);k=H[l+172>>2];m=H[l+160>>2];B=H[l+152>>2];d=m+B|0;i=H[l+164>>2];j=i+H[l+156>>2]|0;j=d>>>0>>0?j+1|0:j;m=(i|0)==(j|0)&d>>>0>>0|i>>>0>j>>>0;i=m+H[l+168>>2]|0;k=i>>>0>>0?k+1|0:k;m=!j&d>>>0>1|(j|0)!=0;i=m+i|0;k=i>>>0>>0?k+1|0:k;Wk(l+112|0,e,h,0,0,0-i|0,0-(((i|0)!=0)+k|0)|0,0,0);Wk(l+128|0,1-d|0,0-((d>>>0>1)+j|0)|0,0,0,e,h,0,0);G=(y-x|0)+n|0;e=H[l+116>>2];w=e;d=H[l+112>>2];j=e<<1|d>>>31;m=d<<1;n=j;d=j;h=H[l+140>>2];u=h;e=H[l+136>>2];j=h<<1|e>>>31;i=e<<1|H[l+132>>2]>>>31;h=i+m|0;j=d+j|0;j=h>>>0>>0?j+1|0:j;i=h;e=j;j=j-(h>>>0<13927)|0;r=j;k=q|65536;L=k;B=p;j=p;k=k<<1|j>>>31;p=j<<1|c>>>31;d=0;j=d|k;q=j;v=Sl(r,d,j,0);d=ka;t=d;j=b;d=c<<1|j>>>31;x=j<<1;y=d;h=h-13927|0;j=(e|0)==(r|0)&h>>>0>>0|e>>>0>r>>>0;e=(e|0)==(n|0)&i>>>0>>0|e>>>0>>0;d=H[l+120>>2];k=H[l+124>>2]<<1|d>>>31;i=d<<1;m=j;n=e;e=u>>>31|0;d=e+(w>>>31|i)|0;j=k;j=d>>>0>>0?j+1|0:j;e=d;d=n+d|0;j=d>>>0>>0?j+1|0:j;e=d;d=m+d|0;k=d>>>0>>0?j+1|0:j;e=d;d=d-1|0;C=k-!e|0;D=0;i=Sl(y,o,C,D);e=i+v|0;k=ka+t|0;k=e>>>0>>0?k+1|0:k;m=(k|0)==(t|0)&e>>>0>>0|k>>>0>>0;v=d;i=Sl(d,0,p,0);d=i+e|0;j=ka+k|0;j=d>>>0>>0?j+1|0:j;n=d;i=j;e=(j|0)==(k|0)&d>>>0>>0|j>>>0>>0;d=m+e|0;k=0;k=d>>>0>>0?1:k;e=Sl(q,o,C,D);d=e+d|0;j=ka+k|0;u=d;d=d>>>0>>0?j+1|0:j;m=Sl(q,o,v,o);k=ka;w=Sl(C,D,p,o);e=w+m|0;j=ka+k|0;j=e>>>0>>0?j+1|0:j;w=e;e=j;j=(k|0)==(j|0)&m>>>0>w>>>0|j>>>0>>0;m=u+e|0;d=d+j|0;j=m;m=j>>>0>>0?d+1|0:d;u=j;e=0;d=e+n|0;j=i+w|0;j=d>>>0>>0?j+1|0:j;e=j;k=(j|0)==(i|0)&d>>>0>>0|i>>>0>j>>>0;i=u+k|0;j=m;u=i;i=i>>>0>>0?j+1|0:j;n=d;m=e;w=h;h=Sl(h,0,p,o);e=ka;t=Sl(r,o,y,o);d=t+h|0;j=ka+e|0;j=d>>>0>>0?j+1|0:j;e=(e|0)==(j|0)&d>>>0>>0|e>>>0>j>>>0;h=j;E=u;t=e;F=x&-2;k=Sl(v,o,F,0);e=k+d|0;j=ka+j|0;j=e>>>0>>0?j+1|0:j;u=e;k=e;e=j;h=(j|0)==(h|0)&d>>>0>k>>>0|h>>>0>j>>>0;d=t+h|0;k=0;k=d>>>0>>0?1:k;j=d;h=n+d|0;d=k+m|0;d=h>>>0>>0?d+1|0:d;t=h;j=h;h=d;k=(d|0)==(m|0)&j>>>0>>0|d>>>0>>0;d=E+k|0;j=i;M=d;n=d>>>0>>0?j+1|0:j;I=Sl(q,o,w,o);E=ka;i=Sl(C,D,F,o);d=i+I|0;j=ka+E|0;j=d>>>0>>0?j+1|0:j;C=d;k=Sl(r,o,p,o);i=d+k|0;m=j;d=j+ka|0;d=i>>>0>>0?d+1|0:d;J=i;j=Sl(y,o,v,o);i=i+j|0;k=ka+d|0;D=i;k=i>>>0>>0?k+1|0:k;i=k;v=0;N=(d|0)==(k|0)&D>>>0>>0|d>>>0>k>>>0;j=(d|0)==(m|0)&C>>>0>J>>>0|d>>>0>>0;d=j+((m|0)==(E|0)&C>>>0>>0|m>>>0>>0)|0;k=0;d=N+d|0;m=i|0;k=m+t|0;j=(d|v)+h|0;v=k;d=k;j=d>>>0>>0?j+1|0:j;m=j;h=(h|0)==(j|0)&d>>>0>>0|h>>>0>j>>>0;d=h+M|0;j=n;E=d;h=d>>>0>>0?j+1|0:j;t=Sl(r,o,F,o);r=ka;k=Sl(y,o,w,o);d=k+t|0;j=ka+r|0;j=d>>>0>>0?j+1|0:j;n=0;k=(j|0)==(r|0)&d>>>0>>0|j>>>0>>0;r=j;d=j+u|0;j=(k|n)+e|0;n=d;j=d>>>0>>0?j+1|0:j;u=(e|0)==(j|0)&d>>>0>>0|e>>>0>j>>>0;i=0;e=i+d|0;d=j;k=D+d|0;k=e>>>0>>0?k+1|0:k;e=(d|0)==(k|0)&e>>>0>>0|d>>>0>k>>>0;d=u+e|0;j=0;j=d>>>0>>0?1:j;e=d;d=d+v|0;j=j+m|0;j=d>>>0>>0?j+1|0:j;e=j;j=(m|0)==(j|0)&d>>>0>>0|j>>>0>>0;i=j+E|0;k=h;h=i;k=h>>>0>>0?k+1|0:k;i=k;c:{if((k|0)==131071|k>>>0<131071){Wk(l+80|0,d,e,h,i,f,g,A,z);j=b<<17;b=0;c=H[l+88>>2];n=b-c|0;k=H[l+80>>2];m=H[l+84>>2];B=(k|m)!=0;r=n-B|0;n=(j-(H[l+92>>2]+(b>>>0>>0)|0)|0)-(n>>>0>>0)|0;b=k;k=0-k|0;m=0-(((b|0)!=0)+m|0)|0;b=G+16382|0;break c}k=h<<31;d=(e&1)<<31|d>>>1;e=e>>>1|k;h=(i&1)<<31|h>>>1;i=i>>>1|0;Wk(l+96|0,d,e,h,i,f,g,A,z);q=0;m=H[l+104>>2];n=q-m|0;k=H[l+96>>2];p=H[l+100>>2];x=(k|p)!=0;r=n-x|0;n=((b<<16)-(H[l+108>>2]+(m>>>0>q>>>0)|0)|0)-(n>>>0>>0)|0;j=k;k=0-j|0;m=0-(((j|0)!=0)+p|0)|0;x=b;y=c;p=B;q=L;b=G+16383|0}if((b|0)>=32767){s=s|2147418112;b=0;c=0;break a}d:{if((b|0)>0){c=r;j=n<<1|c>>>31;r=c<<1|m>>>31;n=j;p=h;q=i&65535|b<<16;j=m<<1|k>>>31;b=k<<1;break d}if((b|0)<=-113){b=0;c=0;break a}Uk(l- -64|0,d,e,h,i,1-b|0);Nk(l+48|0,x,y,p,q,b+112|0);d=H[l+64>>2];e=H[l+68>>2];p=H[l+72>>2];q=H[l+76>>2];Wk(l+32|0,f,g,A,z,d,e,p,q);c=H[l+40>>2];i=c<<1;c=H[l+44>>2]<<1|c>>>31;b=H[l+56>>2];h=H[l+36>>2];n=h>>>31|i;i=b-n|0;n=H[l+60>>2]-((b>>>0>>0)+c|0)|0;c=H[l+32>>2];k=h<<1|c>>>31;c=c<<1;j=H[l+52>>2];b=H[l+48>>2];h=(k|0)==(j|0)&c>>>0>b>>>0|j>>>0>>0;r=i-h|0;n=n-(h>>>0>i>>>0)|0;h=b;b=h-c|0;j=j-((c>>>0>h>>>0)+k|0)|0}Wk(l+16|0,f,g,A,z,3,0,0,0);Wk(l,f,g,A,z,5,0,0,0);h=d;m=p;p=d&1;c=b+p|0;d=0;k=j+d|0;k=b>>>0>c>>>0?k+1|0:k;i=c;c=k;g=(k|0)==(g|0)&i>>>0>f>>>0|g>>>0>>0;d=(d|0)==(k|0)&i>>>0

>>0|d>>>0>k>>>0;b=d+r|0;j=n;j=b>>>0>>0?j+1|0:j;f=b;d=b;b=j;g=(d|0)==(A|0)&(j|0)==(z|0)?g:(z|0)==(j|0)&d>>>0>A>>>0|j>>>0>z>>>0;d=h+g|0;k=e;k=d>>>0>>0?k+1|0:k;g=(e|0)==(k|0)&d>>>0>>0|e>>>0>k>>>0;e=m+g|0;j=q;j=e>>>0>>0?j+1|0:j;g=e;e=d;m=g;d=H[l+20>>2];h=(d|0)==(c|0)&K[l+16>>2]>>0|c>>>0>d>>>0;d=H[l+28>>2];g=H[l+24>>2];h=j>>>0<2147418112&((f|0)==(g|0)&(b|0)==(d|0)?h:(d|0)==(b|0)&g>>>0>>0|b>>>0>d>>>0);g=e+h|0;d=k;d=g>>>0>>0?d+1|0:d;h=(d|0)==(k|0)&e>>>0>g>>>0|d>>>0>>0;e=m+h|0;k=e>>>0>>0?j+1|0:j;h=e;e=H[l+4>>2];i=(e|0)==(c|0)&K[l>>2]>>0|c>>>0>e>>>0;c=H[l+12>>2];e=H[l+8>>2];c=k>>>0<2147418112&((e|0)==(f|0)&(b|0)==(c|0)?i:(c|0)==(b|0)&e>>>0>>0|b>>>0>c>>>0);b=c+g|0;j=b>>>0>>0?d+1|0:d;c=j;f=(d|0)==(j|0)&b>>>0>>0|d>>>0>j>>>0;e=h+f|0;d=k;o=e|o;s=s|(e>>>0>>0?d+1|0:d)}H[a>>2]=b;H[a+4>>2]=c;H[a+8>>2]=o;H[a+12>>2]=s;ha=l+336|0}function Lc(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0;h=ha-48|0;ha=h;e=H[a+4>>2];i=H[a+12>>2];H[h+40>>2]=0;a=h;H[a+32>>2]=0;H[a+36>>2]=0;H[a+24>>2]=0;H[a+28>>2]=0;H[a+16>>2]=0;H[a+20>>2]=0;H[a+8>>2]=0;H[a+12>>2]=0;k=H[H[H[e+4>>2]+8>>2]+(i<<2)>>2];c=a+8|0;if((b|0)==-1){b=we(i,e)}a:{if((b|0)==-2){break a}if((la[H[H[e>>2]+8>>2]](e)|0)==1){g=ha-32|0;ha=g;f=H[H[H[e+4>>2]+8>>2]+(i<<2)>>2];b:{c:{d:{if((la[H[H[e>>2]+8>>2]](e)|0)!=1|b-1>>>0>5){break d}j=la[H[H[e>>2]+52>>2]](e)|0;a=la[H[H[e>>2]+60>>2]](e,i)|0;if(!j|!a){break d}d=la[H[H[e>>2]+56>>2]](e,i)|0;if(d){e=H[e+56>>2];H[g+20>>2]=d;H[g+16>>2]=e;H[g+28>>2]=a;H[g+24>>2]=a+12;d=g+16|0;a=0;e:{f:{switch(b-1|0){case 0:a=hl(60);H[a+4>>2]=f;H[a>>2]=3456;b=H[c+4>>2];H[a+8>>2]=H[c>>2];H[a+12>>2]=b;b=H[c+12>>2];H[a+16>>2]=H[c+8>>2];H[a+20>>2]=b;b=H[c+20>>2];H[a+24>>2]=H[c+16>>2];H[a+28>>2]=b;H[a+40>>2]=0;H[a+32>>2]=0;H[a+36>>2]=0;b=H[c+28>>2];e=H[c+24>>2];if((b|0)!=(e|0)){b=b-e|0;if((b|0)<0){break c}f=hl(b);H[a+32>>2]=f;H[a+40>>2]=f+(b>>2<<2);l=a,m=jk(f,e,b)+b|0,H[l+36>>2]=m}b=H[d+4>>2];H[a+44>>2]=H[d>>2];H[a+48>>2]=b;b=H[d+12>>2];H[a+52>>2]=H[d+8>>2];H[a+56>>2]=b;H[a>>2]=2748;break e;case 3:a=hl(168);H[a+4>>2]=f;H[a>>2]=3456;b=H[c+4>>2];H[a+8>>2]=H[c>>2];H[a+12>>2]=b;b=H[c+12>>2];H[a+16>>2]=H[c+8>>2];H[a+20>>2]=b;b=H[c+20>>2];H[a+24>>2]=H[c+16>>2];H[a+28>>2]=b;H[a+40>>2]=0;H[a+32>>2]=0;H[a+36>>2]=0;b=H[c+28>>2];e=H[c+24>>2];if((b|0)!=(e|0)){b=b-e|0;if((b|0)<0){break c}f=hl(b);H[a+32>>2]=f;H[a+40>>2]=f+(b>>2<<2);l=a,m=jk(f,e,b)+b|0,H[l+36>>2]=m}b=H[d+4>>2];H[a+44>>2]=H[d>>2];H[a+48>>2]=b;b=H[d+12>>2];H[a+52>>2]=H[d+8>>2];H[a+56>>2]=b;H[a+60>>2]=0;H[a+64>>2]=0;H[a>>2]=3512;H[a+68>>2]=0;H[a+72>>2]=0;H[a+76>>2]=0;H[a+80>>2]=0;H[a+84>>2]=0;H[a+88>>2]=0;H[a+92>>2]=0;H[a+96>>2]=0;H[a+100>>2]=0;H[a+104>>2]=0;H[a+108>>2]=0;H[a+128>>2]=0;H[a+132>>2]=0;H[a+120>>2]=0;H[a+112>>2]=0;H[a+116>>2]=0;H[a+136>>2]=0;H[a+140>>2]=0;H[a+144>>2]=0;H[a+160>>2]=0;H[a+152>>2]=0;H[a+156>>2]=0;break e;case 4:a=hl(104);H[a+4>>2]=f;H[a>>2]=3456;b=H[c+4>>2];H[a+8>>2]=H[c>>2];H[a+12>>2]=b;b=H[c+12>>2];H[a+16>>2]=H[c+8>>2];H[a+20>>2]=b;b=H[c+20>>2];H[a+24>>2]=H[c+16>>2];H[a+28>>2]=b;H[a+40>>2]=0;H[a+32>>2]=0;H[a+36>>2]=0;b=H[c+28>>2];e=H[c+24>>2];if((b|0)!=(e|0)){b=b-e|0;if((b|0)<0){break c}f=hl(b);H[a+32>>2]=f;H[a+40>>2]=f+(b>>2<<2);l=a,m=jk(f,e,b)+b|0,H[l+36>>2]=m}b=H[d+4>>2];H[a+44>>2]=H[d>>2];H[a+48>>2]=b;b=H[d+12>>2];H[a+52>>2]=H[d+8>>2];H[a+56>>2]=b;H[a+84>>2]=0;H[a+76>>2]=0;H[a+80>>2]=0;H[a+60>>2]=0;H[a+64>>2]=0;H[a>>2]=3760;b=H[d+4>>2];H[a+88>>2]=H[d>>2];H[a+92>>2]=b;b=H[d+12>>2];H[a+96>>2]=H[d+8>>2];H[a+100>>2]=b;break e;case 5:break f;default:break e}}a=hl(144);H[a+4>>2]=f;H[a>>2]=3456;b=H[c+4>>2];H[a+8>>2]=H[c>>2];H[a+12>>2]=b;b=H[c+12>>2];H[a+16>>2]=H[c+8>>2];H[a+20>>2]=b;b=H[c+20>>2];H[a+24>>2]=H[c+16>>2];H[a+28>>2]=b;H[a+40>>2]=0;H[a+32>>2]=0;H[a+36>>2]=0;g:{h:{b=H[c+28>>2];e=H[c+24>>2];if((b|0)!=(e|0)){e=b-e|0;if((e|0)<0){break h}b=hl(e);H[a+32>>2]=b;H[a+36>>2]=b;H[a+40>>2]=b+(e>>2<<2);f=H[c+24>>2];e=H[c+28>>2]-f|0;if((e|0)>0){b=jk(b,f,e)+e|0}H[a+36>>2]=b}H[a>>2]=3400;b=H[d+4>>2];H[a+44>>2]=H[d>>2];H[a+48>>2]=b;b=H[d+12>>2];H[a+52>>2]=H[d+8>>2];H[a+56>>2]=b;b=a- -64|0;H[b>>2]=0;H[b+4>>2]=0;H[a+60>>2]=4624;H[a>>2]=3996;b=H[d+4>>2];H[a+72>>2]=H[d>>2];H[a+76>>2]=b;b=H[d+12>>2];H[a+80>>2]=H[d+8>>2];H[a+84>>2]=b;H[a+104>>2]=1065353216;H[a+108>>2]=-1;H[a+96>>2]=-1;H[a+100>>2]=-1;H[a+88>>2]=1;H[a+92>>2]=-1;H[a+60>>2]=4232;H[a+112>>2]=0;H[a+116>>2]=0;H[a+136>>2]=0;H[a+140>>2]=0;H[a+128>>2]=0;H[a+132>>2]=0;H[a+120>>2]=0;H[a+124>>2]=0;break g}Ka();X()}break e}d=a;break d}d=H[e+56>>2];H[g+20>>2]=j;H[g+16>>2]=d;H[g+28>>2]=a;H[g+24>>2]=a+12;d=g+16|0;a=0;i:{j:{switch(b-1|0){case 0:a=hl(60);H[a+4>>2]=f;H[a>>2]=3456;b=H[c+4>>2];H[a+8>>2]=H[c>>2];H[a+12>>2]=b;b=H[c+12>>2];H[a+16>>2]=H[c+8>>2];H[a+20>>2]=b;b=H[c+20>>2];H[a+24>>2]=H[c+16>>2];H[a+28>>2]=b;H[a+40>>2]=0;H[a+32>>2]=0;H[a+36>>2]=0;b=H[c+28>>2];e=H[c+24>>2];if((b|0)!=(e|0)){b=b-e|0;if((b|0)<0){break c}f=hl(b);H[a+32>>2]=f;H[a+40>>2]=f+(b>>2<<2);l=a,m=jk(f,e,b)+b|0,H[l+36>>2]=m}b=H[d+4>>2];H[a+44>>2]=H[d>>2];H[a+48>>2]=b;b=H[d+12>>2];H[a+52>>2]=H[d+8>>2];H[a+56>>2]=b;H[a>>2]=4652;break i;case 3:a=hl(168);H[a+4>>2]=f;H[a>>2]=3456;b=H[c+4>>2];H[a+8>>2]=H[c>>2];H[a+12>>2]=b;b=H[c+12>>2];H[a+16>>2]=H[c+8>>2];H[a+20>>2]=b;b=H[c+20>>2];H[a+24>>2]=H[c+16>>2];H[a+28>>2]=b;H[a+40>>2]=0;H[a+32>>2]=0;H[a+36>>2]=0;b=H[c+28>>2];e=H[c+24>>2];if((b|0)!=(e|0)){b=b-e|0;if((b|0)<0){break c}f=hl(b);H[a+32>>2]=f;H[a+40>>2]=f+(b>>2<<2);l=a,m=jk(f,e,b)+b|0,H[l+36>>2]=m}b=H[d+4>>2];H[a+44>>2]=H[d>>2];H[a+48>>2]=b;b=H[d+12>>2];H[a+52>>2]=H[d+8>>2];H[a+56>>2]=b;H[a+60>>2]=0;H[a+64>>2]=0;H[a>>2]=5076;H[a+68>>2]=0;H[a+72>>2]=0;H[a+76>>2]=0;H[a+80>>2]=0;H[a+84>>2]=0;H[a+88>>2]=0;H[a+92>>2]=0;H[a+96>>2]=0;H[a+100>>2]=0;H[a+104>>2]=0;H[a+108>>2]=0;H[a+128>>2]=0;H[a+132>>2]=0;H[a+120>>2]=0;H[a+112>>2]=0;H[a+116>>2]=0;H[a+136>>2]=0;H[a+140>>2]=0;H[a+144>>2]=0;H[a+160>>2]=0;H[a+152>>2]=0;H[a+156>>2]=0;break i;case 4:a=hl(104);H[a+4>>2]=f;H[a>>2]=3456;b=H[c+4>>2];H[a+8>>2]=H[c>>2];H[a+12>>2]=b;b=H[c+12>>2];H[a+16>>2]=H[c+8>>2];H[a+20>>2]=b;b=H[c+20>>2];H[a+24>>2]=H[c+16>>2];H[a+28>>2]=b;H[a+40>>2]=0;H[a+32>>2]=0;H[a+36>>2]=0;b=H[c+28>>2];e=H[c+24>>2];if((b|0)!=(e|0)){b=b-e|0;if((b|0)<0){break c}f=hl(b);H[a+32>>2]=f;H[a+40>>2]=f+(b>>2<<2);l=a,m=jk(f,e,b)+b|0,H[l+36>>2]=m}b=H[d+4>>2];H[a+44>>2]=H[d>>2];H[a+48>>2]=b;b=H[d+12>>2];H[a+52>>2]=H[d+8>>2];H[a+56>>2]=b;H[a+84>>2]=0;H[a+76>>2]=0;H[a+80>>2]=0;H[a+60>>2]=0;H[a+64>>2]=0;H[a>>2]=5312;b=H[d+4>>2];H[a+88>>2]=H[d>>2];H[a+92>>2]=b;b=H[d+12>>2];H[a+96>>2]=H[d+8>>2];H[a+100>>2]=b;break i;case 5:break j;default:break i}}a=hl(144);H[a+4>>2]=f;H[a>>2]=3456;b=H[c+4>>2];H[a+8>>2]=H[c>>2];H[a+12>>2]=b;b=H[c+12>>2];H[a+16>>2]=H[c+8>>2];H[a+20>>2]=b;b=H[c+20>>2];H[a+24>>2]=H[c+16>>2];H[a+28>>2]=b;H[a+40>>2]=0;H[a+32>>2]=0;H[a+36>>2]=0;k:{l:{b=H[c+28>>2];e=H[c+24>>2];if((b|0)!=(e|0)){e=b-e|0;if((e|0)<0){break l}b=hl(e);H[a+32>>2]=b;H[a+36>>2]=b;H[a+40>>2]=b+(e>>2<<2);f=H[c+24>>2];e=H[c+28>>2]-f|0;if((e|0)>0){b=jk(b,f,e)+e|0}H[a+36>>2]=b}H[a>>2]=5020;b=H[d+4>>2];H[a+44>>2]=H[d>>2];H[a+48>>2]=b;b=H[d+12>>2];H[a+52>>2]=H[d+8>>2];H[a+56>>2]=b;b=a- -64|0;H[b>>2]=0;H[b+4>>2]=0;H[a+60>>2]=6120;H[a>>2]=5536;b=H[d+4>>2];H[a+72>>2]=H[d>>2];H[a+76>>2]=b;b=H[d+12>>2];H[a+80>>2]=H[d+8>>2];H[a+84>>2]=b;H[a+104>>2]=1065353216;H[a+108>>2]=-1;H[a+96>>2]=-1;H[a+100>>2]=-1;H[a+88>>2]=1;H[a+92>>2]=-1;H[a+60>>2]=5756;H[a+112>>2]=0;H[a+116>>2]=0;H[a+136>>2]=0;H[a+140>>2]=0;H[a+128>>2]=0;H[a+132>>2]=0;H[a+120>>2]=0;H[a+124>>2]=0;break k}Ka();X()}break i}d=a}ha=g+32|0;break b}Ka();X()}if(d){break a}}d=hl(44);H[d+4>>2]=k;H[d>>2]=3456;a=H[c+4>>2];H[d+8>>2]=H[c>>2];H[d+12>>2]=a;a=H[c+12>>2];H[d+16>>2]=H[c+8>>2];H[d+20>>2]=a;a=H[c+20>>2];H[d+24>>2]=H[c+16>>2];H[d+28>>2]=a;H[d+40>>2]=0;H[d+32>>2]=0;H[d+36>>2]=0;m:{a=H[c+28>>2];b=H[c+24>>2];if((a|0)!=(b|0)){a=a-b|0;if((a|0)<0){break m}c=hl(a);H[d+32>>2]=c;H[d+40>>2]=c+(a>>2<<2);l=d,m=jk(c,b,a)+a|0,H[l+36>>2]=m}H[d>>2]=6148;break a}Ka();X()}a=H[h+32>>2];if(a){H[h+36>>2]=a;bl(a)}ha=h+48|0;return d|0}function qb(a,b){var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=O(0),r=0,s=0,t=O(0);f=ha-80|0;ha=f;H[f+56>>2]=0;H[f+60>>2]=0;H[f+48>>2]=0;H[f+52>>2]=0;H[f+64>>2]=1065353216;c=H[a+80>>2];H[f+24>>2]=0;H[f+16>>2]=0;H[f+20>>2]=0;a:{if(c){if(c>>>0>=1073741824){break a}d=c<<2;g=hl(d);H[f+16>>2]=g;c=d+g|0;H[f+24>>2]=c;lk(g,0,d);H[f+20>>2]=c;while(1){c=H[H[b>>2]>>2];d=H[b+48>>2]+Sl(H[b+40>>2],H[b+44>>2],s,0)|0;c=c+d|0;d=I[c+4|0]|I[c+5|0]<<8|(I[c+6|0]<<16|I[c+7|0]<<24);c=I[c|0]|I[c+1|0]<<8|(I[c+2|0]<<16|I[c+3|0]<<24);H[f+32>>2]=c;H[f+36>>2]=d;H[f+40>>2]=c;H[f+44>>2]=d;d=0;n=H[f+52>>2];b:{if(!n){break b}j=H[f+48>>2];m=J[f+38>>1]^(J[f+36>>1]^(J[f+34>>1]^(J[f+32>>1]^318)+239)+239)+239;c=m&n-1;e=Vl(n);c:{if(e>>>0<=1){break c}c=m;if(c>>>0>>0){break c}c=(m>>>0)%(n>>>0)|0}h=j;j=c;c=H[h+(c<<2)>>2];if(!c){break b}c=H[c>>2];if(!c){break b}d:{if(e>>>0>=2){o=J[f+32>>1];k=J[f+34>>1];i=J[f+36>>1];h=J[f+38>>1];while(1){e=H[c+4>>2];e:{if((e|0)!=(m|0)){if(e>>>0>=n>>>0){e=(e>>>0)%(n>>>0)|0}if((e|0)!=(j|0)){break b}break e}e=J[c+8>>1];f:{if((e|0)!=(o|0)){e=(e|0)==(o|0);break f}e=J[c+10>>1];if((e|0)!=(k|0)){e=(e|0)==(k|0);break f}e=J[c+12>>1];if((e|0)!=(i|0)){e=(e|0)==(i|0);break f}e=(h|0)==J[c+14>>1]}if(e){break d}}c=H[c>>2];if(c){continue}break}break b}i=n-1|0;n=J[f+32>>1];o=J[f+34>>1];k=J[f+36>>1];h=J[f+38>>1];while(1){e=H[c+4>>2];g:{if((e|0)!=(m|0)){if((j|0)!=(e&i)){break b}break g}e=J[c+8>>1];if((e|0)!=(n|0)){if((e|0)!=(n|0)){break g}break d}e=J[c+10>>1];if((e|0)!=(o|0)){if((e|0)!=(o|0)){break g}break d}e=J[c+12>>1];if((e|0)!=(k|0)){if((e|0)!=(k|0)){break g}break d}if((h|0)==J[c+14>>1]){break d}}c=H[c>>2];if(c){continue}break}break b}d=c}h:{if(d){H[(s<<2)+g>>2]=H[d+16>>2];break h}H[f+8>>2]=r;c=H[f+36>>2];H[f>>2]=H[f+32>>2];H[f+4>>2]=c;c=0;m=J[f+6>>1]^(J[f+4>>1]^(J[f+2>>1]^(J[f>>1]^318)+239)+239)+239;i:{j:{l=f+48|0;e=H[l+4>>2];if(!e){break j}c=e-1|0;if(c&e){c=m;if(e>>>0<=c>>>0){c=(m>>>0)%(e>>>0)|0}g=H[H[l>>2]+(c<<2)>>2];if(!g){break j}k=J[f>>1];i=J[f+2>>1];h=J[f+4>>1];j=J[f+6>>1];while(1){g=H[g>>2];if(!g){break j}d=H[g+4>>2];if((d|0)!=(m|0)){if(d>>>0>=e>>>0){d=(d>>>0)%(e>>>0)|0}if((c|0)!=(d|0)){break j}}d=J[g+8>>1];k:{if((d|0)!=(k|0)){d=(d|0)==(k|0);break k}d=J[g+10>>1];if((d|0)!=(i|0)){d=(d|0)==(i|0);break k}d=J[g+12>>1];if((d|0)!=(h|0)){d=(d|0)==(h|0);break k}d=(j|0)==J[g+14>>1]}if(!d){continue}break}c=0;break i}c=c&m;g=H[H[l>>2]+(c<<2)>>2];if(!g){break j}h=e-1|0;o=J[f>>1];k=J[f+2>>1];i=J[f+4>>1];j=J[f+6>>1];while(1){g=H[g>>2];if(!g){break j}d=H[g+4>>2];if((d|0)!=(m|0)&(d&h)!=(c|0)){break j}d=J[g+8>>1];l:{if((d|0)!=(o|0)){d=(d|0)==(o|0);break l}d=J[g+10>>1];if((d|0)!=(k|0)){d=(d|0)==(k|0);break l}d=J[g+12>>1];if((d|0)!=(i|0)){d=(d|0)==(i|0);break l}d=(j|0)==J[g+14>>1]}if(!d){continue}break}c=0;break i}g=hl(20);d=H[f+4>>2];H[g+8>>2]=H[f>>2];H[g+12>>2]=d;d=H[f+8>>2];H[g+4>>2]=m;H[g+16>>2]=d;H[g>>2]=0;q=O(H[l+12>>2]+1>>>0);t=L[l+16>>2];m:{if(q>O(t*O(e>>>0))?0:e){break m}c=2;d=(e-1&e)!=0|e>>>0<3|e<<1;q=O(U(O(q/t)));n:{if(q=O(0)){j=~~q>>>0;break n}j=0}d=d>>>0>j>>>0?d:j;o:{if((d|0)==1){break o}if(!(d&d-1)){c=d;break o}c=Zk(d);e=H[l+4>>2]}p:{if(c>>>0<=e>>>0){if(c>>>0>=e>>>0){break p}j=e>>>0<3;q=O(U(O(O(K[l+12>>2])/L[l+16>>2])));q:{if(q=O(0)){d=~~q>>>0;break q}d=0}r:{s:{if(j){break s}if(Vl(e)>>>0>1){break s}d=d>>>0<2?d:1<<32-Q(d-1|0);break r}d=Zk(d)}c=c>>>0>d>>>0?c:d;if(e>>>0<=c>>>0){break p}}d=0;h=0;i=c;t:{u:{v:{if(c){if(i>>>0>=1073741824){break v}c=hl(i<<2);e=H[l>>2];H[l>>2]=c;if(e){bl(e)}H[l+4>>2]=i;if(i-1>>>0>=3){c=i&-4;e=0;while(1){j=d<<2;H[j+H[l>>2]>>2]=0;H[H[l>>2]+(j|4)>>2]=0;H[H[l>>2]+(j|8)>>2]=0;H[H[l>>2]+(j|12)>>2]=0;d=d+4|0;e=e+4|0;if((c|0)!=(e|0)){continue}break}}c=i&3;if(c){while(1){H[H[l>>2]+(d<<2)>>2]=0;d=d+1|0;h=h+1|0;if((c|0)!=(h|0)){continue}break}}e=H[l+8>>2];if(!e){break t}d=l+8|0;j=H[e+4>>2];c=i-1|0;if(!(c&i)){break u}j=j>>>0>=i>>>0?(j>>>0)%(i>>>0)|0:j;H[H[l>>2]+(j<<2)>>2]=d;c=H[e>>2];if(!c){break t}while(1){h=H[c+4>>2];if(i>>>0<=h>>>0){h=(h>>>0)%(i>>>0)|0}w:{if((h|0)==(j|0)){e=c;break w}d=c;n=h<<2;k=n+H[l>>2]|0;if(!H[k>>2]){H[k>>2]=e;e=c;j=h;break w}while(1){h=d;d=H[d>>2];if(d){o=J[c+8>>1];k=J[d+8>>1];x:{if((o|0)!=(k|0)){k=(k|0)==(o|0);break x}o=J[c+10>>1];k=J[d+10>>1];if((o|0)!=(k|0)){k=(k|0)==(o|0);break x}o=J[c+12>>1];k=J[d+12>>1];if((o|0)!=(k|0)){k=(k|0)==(o|0);break x}k=J[c+14>>1]==J[d+14>>1]}if(k){continue}}break}H[e>>2]=d;H[h>>2]=H[H[n+H[l>>2]>>2]>>2];H[H[n+H[l>>2]>>2]>>2]=c}c=H[e>>2];if(c){continue}break}break t}c=H[l>>2];H[l>>2]=0;if(c){bl(c)}H[l+4>>2]=0;break t}_a();X()}j=c&j;H[H[l>>2]+(j<<2)>>2]=d;c=H[e>>2];if(!c){break t}o=i-1|0;while(1){h=o&H[c+4>>2];y:{if((h|0)==(j|0)){e=c;break y}d=c;n=h<<2;i=n+H[l>>2]|0;if(H[i>>2]){while(1){h=d;d=H[d>>2];if(d){k=J[c+8>>1];i=J[d+8>>1];z:{if((k|0)!=(i|0)){i=(i|0)==(k|0);break z}k=J[c+10>>1];i=J[d+10>>1];if((k|0)!=(i|0)){i=(i|0)==(k|0);break z}k=J[c+12>>1];i=J[d+12>>1];if((k|0)!=(i|0)){i=(i|0)==(k|0);break z}i=J[c+14>>1]==J[d+14>>1]}if(i){continue}}break}H[e>>2]=d;H[h>>2]=H[H[n+H[l>>2]>>2]>>2];H[H[n+H[l>>2]>>2]>>2]=c;break y}H[i>>2]=e;e=c;j=h}c=H[e>>2];if(c){continue}break}}}e=H[l+4>>2];c=e-1|0;if(!(c&e)){c=c&m;break m}if(e>>>0>m>>>0){c=m;break m}c=(m>>>0)%(e>>>0)|0}d=H[l>>2]+(c<<2)|0;c=H[d>>2];A:{B:{if(!c){c=l+8|0;H[g>>2]=H[c>>2];H[l+8>>2]=g;H[d>>2]=c;c=H[g>>2];if(!c){break A}c=H[c+4>>2];d=e-1|0;C:{if(!(d&e)){c=c&d;break C}if(c>>>0>>0){break C}c=(c>>>0)%(e>>>0)|0}c=H[l>>2]+(c<<2)|0;break B}H[g>>2]=H[c>>2]}H[c>>2]=g}H[l+12>>2]=H[l+12>>2]+1;c=1}F[f+76|0]=c;H[f+72>>2]=g;c=H[a+40>>2];jk(H[H[a>>2]>>2]+N(c,r)|0,f+40|0,c);g=H[f+16>>2];H[g+(s<<2)>>2]=r;r=r+1|0}c=s+1|0;p=c?p:p+1|0;s=c;c=H[a+80>>2];if(!p&c>>>0>s>>>0){continue}break}if((c|0)!=(r|0)){D:{if(!I[a+84|0]){b=H[a+72>>2];h=H[a+68>>2];if((b|0)==(h|0)){break D}b=b-h>>2;c=b>>>0>1?b:1;j=c&3;d=0;b=0;if(c-1>>>0>=3){p=c&-4;e=0;while(1){m=b<<2;c=m+h|0;H[c>>2]=H[(H[c>>2]<<2)+g>>2];c=h+(m|4)|0;H[c>>2]=H[(H[c>>2]<<2)+g>>2];c=h+(m|8)|0;H[c>>2]=H[(H[c>>2]<<2)+g>>2];c=h+(m|12)|0;H[c>>2]=H[(H[c>>2]<<2)+g>>2];b=b+4|0;e=e+4|0;if((p|0)!=(e|0)){continue}break}}if(!j){break D}while(1){c=h+(b<<2)|0;H[c>>2]=H[(H[c>>2]<<2)+g>>2];b=b+1|0;d=d+1|0;if((j|0)!=(d|0)){continue}break}break D}F[a+84|0]=0;e=a+68|0;b=H[a+68>>2];d=H[a+72>>2]-b>>2;E:{if(d>>>0>>0){tb(e,c-d|0,2176);c=H[a+80>>2];break E}if(c>>>0>=d>>>0){break E}H[a+72>>2]=b+(c<<2)}if(!c){break D}h=H[e>>2];d=0;b=0;if(c-1>>>0>=3){j=c&-4;e=0;while(1){m=b<<2;H[m+h>>2]=H[g+m>>2];p=m|4;H[p+h>>2]=H[g+p>>2];p=m|8;H[p+h>>2]=H[g+p>>2];p=m|12;H[p+h>>2]=H[g+p>>2];b=b+4|0;e=e+4|0;if((j|0)!=(e|0)){continue}break}}e=c&3;if(!e){break D}while(1){c=b<<2;H[c+h>>2]=H[c+g>>2];b=b+1|0;d=d+1|0;if((e|0)!=(d|0)){continue}break}}H[a+80>>2]=r}bl(g)}b=H[f+56>>2];if(b){while(1){a=H[b>>2];bl(b);b=a;if(b){continue}break}}a=H[f+48>>2];H[f+48>>2]=0;if(a){bl(a)}ha=f+80|0;return r}Ka();X()}function Vb(a,b,c,d,e){var f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,I=0,J=0,L=0,M=0,O=0;r=ha-32|0;ha=r;H[a>>2]=H[d>>2];d=H[c>>2]-H[b>>2]|0;H[a+4>>2]=d;n=H[e+20>>2];if(!H[e+16>>2]&(n|0)<=0|(n|0)<0){d=a+4|0;Da(e,H[e+4>>2],a,d);n=H[e+20>>2];if(!H[e+16>>2]&(n|0)<=0|(n|0)<0){Da(e,H[e+4>>2],d,a+8|0)}d=H[d>>2]}if(d){D=a+12|0;Be(D);E=a+44|0;d=E;H[d+12>>2]=0;H[d+16>>2]=0;H[d+4>>2]=H[d>>2];F=a- -64|0;d=F;H[d+12>>2]=0;H[d+16>>2]=0;H[d+4>>2]=H[d>>2];G=a+84|0;d=G;H[d+12>>2]=0;H[d+16>>2]=0;H[d+4>>2]=H[d>>2];H[r+24>>2]=H[b+8>>2];d=H[b+4>>2];H[r+16>>2]=H[b>>2];H[r+20>>2]=d;H[r+8>>2]=H[c+8>>2];b=H[c+4>>2];H[r>>2]=H[c>>2];H[r+4>>2]=b;b=0;g=ha-32|0;ha=g;d=a;i=H[a+8>>2];H[g+16>>2]=0;H[g+8>>2]=0;H[g+12>>2]=0;a:{b:{if(i){if(i>>>0>=1073741824){break b}a=i<<2;b=hl(a);H[g+8>>2]=b;f=a+b|0;H[g+16>>2]=f;lk(b,0,a);H[g+12>>2]=f}a=H[d+140>>2];c=H[a>>2];if(c){H[a+4>>2]=c;bl(c);H[a+8>>2]=0;H[a>>2]=0;H[a+4>>2]=0;i=H[d+8>>2];f=H[g+12>>2];b=H[g+8>>2]}H[a+4>>2]=f;H[a>>2]=b;H[a+8>>2]=H[g+16>>2];b=0;H[g+16>>2]=0;H[g+8>>2]=0;H[g+12>>2]=0;a=0;c:{if(i){if(i>>>0>=1073741824){break c}c=i<<2;a=hl(c);H[g+8>>2]=a;b=a+c|0;H[g+16>>2]=b;lk(a,0,c);H[g+12>>2]=b}c=H[d+152>>2];n=H[c>>2];if(n){H[c+4>>2]=n;bl(n);H[c+8>>2]=0;H[c>>2]=0;H[c+4>>2]=0;b=H[g+12>>2];a=H[g+8>>2]}H[c+4>>2]=b;H[c>>2]=a;H[c+8>>2]=H[g+16>>2];x=H[r+20>>2];v=H[r+24>>2];z=H[r+4>>2];A=H[r+8>>2];b=H[r>>2];c=H[r+16>>2];H[g+24>>2]=0;H[g+28>>2]=0;H[g+16>>2]=0;H[g+20>>2]=0;H[g+8>>2]=0;H[g+12>>2]=0;ec(g+8|0);a=H[g+24>>2]+H[g+28>>2]|0;n=(a>>>0)/113|0;a=H[H[g+12>>2]+(n<<2)>>2]+N(a-N(n,113)|0,36)|0;H[a+32>>2]=0;H[a+28>>2]=b-c;H[a+24>>2]=0;H[a+16>>2]=z;H[a+20>>2]=A;H[a+12>>2]=b;H[a+4>>2]=x;H[a+8>>2]=v;H[a>>2]=c;i=H[g+28>>2]+1|0;H[g+28>>2]=i;if(i){J=v&-4;I=v&3;L=d+44|0;l=d+12|0;M=d+84|0;O=v-1>>>0<3;while(1){b=H[g+12>>2];o=H[g+24>>2];m=i-1|0;a=o+m|0;c=(a>>>0)/113|0;a=H[b+(c<<2)>>2]+N(a-N(c,113)|0,36)|0;C=H[a+32>>2];f=H[a+24>>2];n=H[a+12>>2];c=H[a>>2];H[g+28>>2]=m;a=H[g+16>>2];if((((a|0)==(b|0)?0:N(a-b>>2,113)-1|0)-(i+o|0)|0)+1>>>0>=226){bl(H[a-4>>2]);H[g+16>>2]=H[g+16>>2]-4}b=H[d>>2];i=(f|0)==(H[d+8>>2]-1|0)?0:f+1|0;o=i<<2;B=N(C,12);m=B+H[d+152>>2]|0;f=H[o+H[m>>2]>>2];d:{e:{if((b|0)==(f|0)){break e}f:{g:{p=n-c|0;if(p>>>0<=2){f=H[d+128>>2];H[f>>2]=i;b=1;a=H[d+8>>2];if(a>>>0>1){break g}break f}m=H[d+140>>2];a=m+B|0;j=m;m=B+12|0;Sa(j+m|0,H[a>>2],H[a+4>>2]);a=H[m+H[d+140>>2]>>2]+o|0;m=H[a>>2]+(1<>2]=m;a=c;h:{if((n|0)==(a|0)){break h}q=H[x+24>>2];b=c;a=n;if(!v){if(m>>>0>K[o+q>>2]){break h}while(1){a=a-1|0;if((b|0)==(a|0)){a=b;break h}if(m>>>0<=K[(H[z+24>>2]+o|0)+(N(a,A)<<2)>>2]){continue}b=b+1|0;if((b|0)!=(a|0)){continue}break}break h}while(1){s=q+(N(b,v)<<2)|0;if(m>>>0>K[s+o>>2]){b=b+1|0;if((b|0)!=(a|0)){continue}break h}while(1){a=a-1|0;if((b|0)==(a|0)){a=b;break h}h=H[z+24>>2]+(N(a,A)<<2)|0;if(m>>>0<=K[h+o>>2]){continue}break}t=0;f=0;u=0;if(!O){while(1){k=f<<2;j=k+s|0;w=H[j>>2];y=j;j=h+k|0;H[y>>2]=H[j>>2];H[j>>2]=w;j=k|4;w=j+s|0;y=H[w>>2];j=h+j|0;H[w>>2]=H[j>>2];H[j>>2]=y;j=k|8;w=j+s|0;y=H[w>>2];j=h+j|0;H[w>>2]=H[j>>2];H[j>>2]=y;k=k|12;j=k+s|0;w=H[j>>2];k=h+k|0;H[j>>2]=H[k>>2];H[k>>2]=w;f=f+4|0;u=u+4|0;if((J|0)!=(u|0)){continue}break}}if(I){while(1){k=f<<2;u=k+s|0;j=H[u>>2];k=h+k|0;H[u>>2]=H[k>>2];H[k>>2]=j;f=f+1|0;t=t+1|0;if((I|0)!=(t|0)){continue}break}}b=b+1|0;if((b|0)!=(a|0)){continue}break}}m=a-c|0;s=n-a|0;if((m|0)!=(s|0)){fc(M,m>>>0>>0)}b=H[l>>2];f=H[b+12>>2];j=H[b+8>>2];h=(p>>>1|0)-(m>>>0>>0?m:s)|0;h=h<<8&16711680|h<<24|(h>>>8&65280|h>>>24);h=h>>>4&252645135|(h&252645135)<<4;h=h>>>2&858993459|(h&858993459)<<2;t=h>>>1&1431655765|(h&1431655765)<<1;h=Q(p)^31;q=32-h|0;k=t>>>q|0;t=Vl(k);p=j+t|0;H[b+8>>2]=p;H[b+12>>2]=p>>>0>>0?f+1|0:f;f=h-t|0;t=f;p=f+H[b>>2]|0;f=H[b+4>>2]+(f>>31)|0;H[b>>2]=p;H[b+4>>2]=p>>>0>>0?f+1|0:f;i:{j:{k:{l:{b=H[l+28>>2];t=32-b|0;m:{if((t|0)>=(h|0)){f=b+h|0;H[l+28>>2]=f;h=-1>>>q<>2]&(h^-1)|h&k<>2]=p;if((f|0)!=32){break i}b=H[l+16>>2];if((b|0)!=H[l+20>>2]){H[b>>2]=p;H[l+16>>2]=b+4;b=0;f=0;break m}h=H[l+12>>2];f=b-h|0;q=f>>2;b=q+1|0;if(b>>>0>=1073741824){break l}k=f>>1;k=f>>>0<2147483644?b>>>0>>0?k:b:1073741823;if(k){if(k>>>0>=1073741824){break k}b=hl(k<<2)}else{b=0}q=b+(q<<2)|0;H[q>>2]=p;if((f|0)>0){jk(b,h,f)}H[l+20>>2]=b+(k<<2);H[l+16>>2]=q+4;H[l+12>>2]=b;b=0;if(!h){f=0;break m}bl(h);f=0;break m}u=H[l+24>>2]&(-1<>2]=u;b=H[l+16>>2];n:{if((b|0)!=H[l+20>>2]){H[b>>2]=u;H[l+16>>2]=b+4;break n}p=H[l+12>>2];f=b-p|0;j=f>>2;b=j+1|0;if(b>>>0>=1073741824){break j}q=f>>1;q=f>>>0<2147483644?b>>>0>>0?q:b:1073741823;if(q){if(q>>>0>=1073741824){break k}b=hl(q<<2)}else{b=0}j=b+(j<<2)|0;H[j>>2]=u;if((f|0)>0){jk(b,p,f)}H[l+20>>2]=b+(q<<2);H[l+16>>2]=j+4;H[l+12>>2]=b;if(!p){break n}bl(p)}f=h-t|0;b=-1>>>32-f&k>>>t}H[l+28>>2]=f;H[l+24>>2]=b;break i}Ka();X()}_a();X()}Ka();X()}j=o;b=H[d+152>>2];f=b+B|0;o=H[f>>2];h=j+o|0;H[h>>2]=H[h>>2]+1;h=C+1|0;Sa(b+N(h,12)|0,o,H[f+4>>2]);if((a|0)!=(c|0)){b=H[g+28>>2]+H[g+24>>2]|0;o=H[g+16>>2];f=H[g+12>>2];if((b|0)==(((f|0)==(o|0)?0:N(o-f>>2,113)-1|0)|0)){ec(g+8|0);f=H[g+12>>2];b=H[g+24>>2]+H[g+28>>2]|0}j=f;f=(b>>>0)/113|0;b=H[j+(f<<2)>>2]+N(b-N(f,113)|0,36)|0;H[b+32>>2]=C;H[b+28>>2]=m;H[b+24>>2]=i;H[b+16>>2]=x;H[b+12>>2]=a;H[b+4>>2]=x;H[b+8>>2]=v;H[b>>2]=c;H[b+20>>2]=v;H[g+28>>2]=H[g+28>>2]+1}if((a|0)==(n|0)){break e}f=H[g+28>>2]+H[g+24>>2]|0;o=H[g+16>>2];b=H[g+12>>2];if((f|0)==(((b|0)==(o|0)?0:N(o-b>>2,113)-1|0)|0)){ec(g+8|0);f=H[g+24>>2]+H[g+28>>2]|0;j=H[g+12>>2]}else{j=b}b=(f>>>0)/113|0;b=H[j+(b<<2)>>2]+N(f-N(b,113)|0,36)|0;H[b+32>>2]=h;H[b+28>>2]=s;H[b+24>>2]=i;H[b+16>>2]=z;H[b+20>>2]=A;H[b+12>>2]=n;H[b+4>>2]=x;H[b>>2]=a;H[b+8>>2]=v;i=H[g+28>>2]+1|0;H[g+28>>2]=i;break d}while(1){i=(a-1|0)==(i|0)?0:i+1|0;H[f+(b<<2)>>2]=i;a=H[d+8>>2];b=b+1|0;if(a>>>0>b>>>0){continue}break}}if(!a|(c|0)==(n|0)){break e}f=0;b=1;while(1){i=0;o:{if(!b){b=0;break o}o=H[x+24>>2]+(N(H[x+4>>2],c+f|0)<<2)|0;while(1){b=H[d>>2];s=H[H[d+128>>2]+(i<<2)>>2]<<2;h=H[s+H[m>>2]>>2];if((b|0)!=(h|0)){gc(L,b-h|0,H[o+s>>2]);a=H[d+8>>2]}b=a;i=i+1|0;if(b>>>0>i>>>0){continue}break}}f=f+1|0;if((p|0)!=(f|0)){continue}break}}i=H[g+28>>2]}if(i){continue}break}H[r+16>>2]=c;H[r>>2]=n}H[g+28>>2]=0;c=H[g+16>>2];i=H[g+12>>2];a=c-i|0;if(a>>>0>=9){while(1){bl(H[i>>2]);i=H[g+12>>2]+4|0;H[g+12>>2]=i;c=H[g+16>>2];a=c-i|0;if(a>>>0>8){continue}break}}b=56;p:{switch((a>>>2|0)-1|0){case 1:b=113;case 0:H[g+24>>2]=b;break;default:break p}}q:{if((c|0)==(i|0)){break q}while(1){bl(H[i>>2]);i=i+4|0;if((i|0)!=(c|0)){continue}break}a=H[g+16>>2];b=H[g+12>>2];if((a|0)==(b|0)){break q}H[g+16>>2]=a+((b-a|0)+3&-4)}a=H[g+8>>2];if(a){bl(a)}ha=g+32|0;break a}Ka();X()}Ka();X()}De(D,e);ye(E,e);ye(F,e);ye(G,e)}ha=r+32|0;return 1}function hb(a,b){var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=O(0),q=0,r=0,s=0,t=0,u=O(0);g=ha-96|0;ha=g;H[g+72>>2]=0;H[g+76>>2]=0;H[g+64>>2]=0;H[g+68>>2]=0;H[g+80>>2]=1065353216;c=H[a+80>>2];H[g+24>>2]=0;H[g+16>>2]=0;H[g+20>>2]=0;a:{if(c){if(c>>>0>=1073741824){break a}e=c<<2;n=hl(e);H[g+16>>2]=n;c=e+n|0;H[g+24>>2]=c;lk(n,0,e);H[g+20>>2]=c;while(1){c=H[H[b>>2]>>2];d=H[b+48>>2]+Sl(H[b+40>>2],H[b+44>>2],s,0)|0;d=c+d|0;H[g+56>>2]=I[d+8|0]|I[d+9|0]<<8|(I[d+10|0]<<16|I[d+11|0]<<24);c=I[d+4|0]|I[d+5|0]<<8|(I[d+6|0]<<16|I[d+7|0]<<24);H[g+48>>2]=I[d|0]|I[d+1|0]<<8|(I[d+2|0]<<16|I[d+3|0]<<24);H[g+52>>2]=c;e=I[d+4|0]|I[d+5|0]<<8|(I[d+6|0]<<16|I[d+7|0]<<24);c=I[d|0]|I[d+1|0]<<8|(I[d+2|0]<<16|I[d+3|0]<<24);H[g+40>>2]=I[d+8|0]|I[d+9|0]<<8|(I[d+10|0]<<16|I[d+11|0]<<24);H[g+32>>2]=c;H[g+36>>2]=e;e=0;c=g- -64|0;o=H[c+4>>2];b:{if(!o){break b}h=H[c>>2];j=H[g+40>>2]^(H[g+36>>2]^(H[g+32>>2]^318)+239)+239;c=j&o-1;d=Vl(o);c:{if(d>>>0<=1){break c}c=j;if(c>>>0>>0){break c}c=(j>>>0)%(o>>>0)|0}k=h;h=c;c=H[k+(c<<2)>>2];if(!c){break b}c=H[c>>2];if(!c){break b}d:{if(d>>>0>=2){k=H[g+40>>2];f=H[g+36>>2];l=H[g+32>>2];while(1){d=H[c+4>>2];e:{if((d|0)!=(j|0)){if(d>>>0>=o>>>0){d=(d>>>0)%(o>>>0)|0}if((d|0)!=(h|0)){break b}break e}d=H[c+8>>2];f:{if((d|0)!=(l|0)){d=(d|0)==(l|0);break f}d=H[c+12>>2];if((d|0)!=(f|0)){d=(d|0)==(f|0);break f}d=(k|0)==H[c+16>>2]}if(d){break d}}c=H[c>>2];if(c){continue}break}break b}l=o-1|0;k=H[g+40>>2];o=H[g+36>>2];f=H[g+32>>2];while(1){d=H[c+4>>2];g:{if((d|0)!=(j|0)){if((h|0)!=(d&l)){break b}break g}d=H[c+8>>2];if((d|0)!=(f|0)){if((d|0)!=(f|0)){break g}break d}d=H[c+12>>2];if((d|0)!=(o|0)){if((d|0)!=(o|0)){break g}break d}if((k|0)==H[c+16>>2]){break d}}c=H[c>>2];if(c){continue}break}break b}e=c}h:{if(e){H[(s<<2)+n>>2]=H[e+20>>2];break h}H[g+8>>2]=H[g+40>>2];c=H[g+36>>2];H[g>>2]=H[g+32>>2];H[g+4>>2]=c;H[g+12>>2]=r;c=0;j=H[g+8>>2]^(H[g+4>>2]^(H[g>>2]^318)+239)+239;i:{j:{i=g- -64|0;f=H[i+4>>2];if(!f){break j}c=f-1|0;if(c&f){c=j;if(f>>>0<=c>>>0){c=(j>>>0)%(f>>>0)|0}m=H[H[i>>2]+(c<<2)>>2];if(!m){break j}d=H[g+8>>2];k=H[g+4>>2];h=H[g>>2];while(1){m=H[m>>2];if(!m){break j}e=H[m+4>>2];if((e|0)!=(j|0)){if(e>>>0>=f>>>0){e=(e>>>0)%(f>>>0)|0}if((c|0)!=(e|0)){break j}}e=H[m+8>>2];k:{if((e|0)!=(h|0)){e=(e|0)==(h|0);break k}e=H[m+12>>2];if((e|0)!=(k|0)){e=(e|0)==(k|0);break k}e=(d|0)==H[m+16>>2]}if(!e){continue}break}c=0;break i}c=c&j;m=H[H[i>>2]+(c<<2)>>2];if(!m){break j}h=f-1|0;d=H[g+8>>2];l=H[g+4>>2];k=H[g>>2];while(1){m=H[m>>2];if(!m){break j}e=H[m+4>>2];if((e|0)!=(j|0)&(e&h)!=(c|0)){break j}e=H[m+8>>2];l:{if((e|0)!=(k|0)){e=(e|0)==(k|0);break l}e=H[m+12>>2];if((e|0)!=(l|0)){e=(e|0)==(l|0);break l}e=(d|0)==H[m+16>>2]}if(!e){continue}break}c=0;break i}m=hl(24);H[m+16>>2]=H[g+8>>2];e=H[g+4>>2];H[m+8>>2]=H[g>>2];H[m+12>>2]=e;e=H[g+12>>2];H[m>>2]=0;H[m+4>>2]=j;H[m+20>>2]=e;u=O(H[i+12>>2]+1>>>0);p=L[i+16>>2];m:{if(u>O(p*O(f>>>0))?0:f){break m}c=2;e=(f-1&f)!=0|f>>>0<3|f<<1;p=O(U(O(u/p)));n:{if(p=O(0)){d=~~p>>>0;break n}d=0}e=d>>>0>>0?e:d;o:{if((e|0)==1){break o}if(!(e&e-1)){c=e;break o}c=Zk(e);f=H[i+4>>2]}p:{if(c>>>0<=f>>>0){if(c>>>0>=f>>>0){break p}d=f>>>0<3;p=O(U(O(O(K[i+12>>2])/L[i+16>>2])));q:{if(p=O(0)){e=~~p>>>0;break q}e=0}r:{s:{if(d){break s}if(Vl(f)>>>0>1){break s}e=e>>>0<2?e:1<<32-Q(e-1|0);break r}e=Zk(e)}c=c>>>0>e>>>0?c:e;if(f>>>0<=c>>>0){break p}}d=0;k=0;l=c;t:{u:{v:{if(c){if(l>>>0>=1073741824){break v}c=hl(l<<2);e=H[i>>2];H[i>>2]=c;if(e){bl(e)}H[i+4>>2]=l;if(l-1>>>0>=3){c=l&-4;e=0;while(1){h=d<<2;H[h+H[i>>2]>>2]=0;H[H[i>>2]+(h|4)>>2]=0;H[H[i>>2]+(h|8)>>2]=0;H[H[i>>2]+(h|12)>>2]=0;d=d+4|0;e=e+4|0;if((c|0)!=(e|0)){continue}break}}c=l&3;if(c){while(1){H[H[i>>2]+(d<<2)>>2]=0;d=d+1|0;k=k+1|0;if((c|0)!=(k|0)){continue}break}}e=H[i+8>>2];if(!e){break t}d=i+8|0;h=H[e+4>>2];c=l-1|0;if(!(c&l)){break u}h=h>>>0>=l>>>0?(h>>>0)%(l>>>0)|0:h;H[H[i>>2]+(h<<2)>>2]=d;c=H[e>>2];if(!c){break t}while(1){k=H[c+4>>2];if(l>>>0<=k>>>0){k=(k>>>0)%(l>>>0)|0}w:{if((h|0)==(k|0)){e=c;break w}d=c;n=k<<2;f=n+H[i>>2]|0;if(!H[f>>2]){H[f>>2]=e;e=c;h=k;break w}while(1){k=d;d=H[d>>2];if(d){o=H[c+8>>2];f=H[d+8>>2];x:{if((o|0)!=(f|0)){f=(f|0)==(o|0);break x}o=H[c+12>>2];f=H[d+12>>2];if((o|0)!=(f|0)){f=(f|0)==(o|0);break x}f=H[c+16>>2]==H[d+16>>2]}if(f){continue}}break}H[e>>2]=d;H[k>>2]=H[H[n+H[i>>2]>>2]>>2];H[H[n+H[i>>2]>>2]>>2]=c}c=H[e>>2];if(c){continue}break}break t}c=H[i>>2];H[i>>2]=0;if(c){bl(c)}H[i+4>>2]=0;break t}_a();X()}h=c&h;H[H[i>>2]+(h<<2)>>2]=d;c=H[e>>2];if(!c){break t}o=l-1|0;while(1){k=o&H[c+4>>2];y:{if((k|0)==(h|0)){e=c;break y}d=c;n=k<<2;l=n+H[i>>2]|0;if(H[l>>2]){while(1){k=d;d=H[d>>2];if(d){f=H[c+8>>2];l=H[d+8>>2];z:{if((f|0)!=(l|0)){f=(f|0)==(l|0);break z}f=H[c+12>>2];l=H[d+12>>2];if((f|0)!=(l|0)){f=(f|0)==(l|0);break z}f=H[c+16>>2]==H[d+16>>2]}if(f){continue}}break}H[e>>2]=d;H[k>>2]=H[H[n+H[i>>2]>>2]>>2];H[H[n+H[i>>2]>>2]>>2]=c;break y}H[l>>2]=e;e=c;h=k}c=H[e>>2];if(c){continue}break}}}f=H[i+4>>2];c=f-1|0;if(!(c&f)){c=c&j;break m}if(f>>>0>j>>>0){c=j;break m}c=(j>>>0)%(f>>>0)|0}e=H[i>>2]+(c<<2)|0;c=H[e>>2];A:{B:{if(!c){c=i+8|0;H[m>>2]=H[c>>2];H[i+8>>2]=m;H[e>>2]=c;c=H[m>>2];if(!c){break A}c=H[c+4>>2];e=f-1|0;C:{if(!(e&f)){c=c&e;break C}if(c>>>0>>0){break C}c=(c>>>0)%(f>>>0)|0}c=H[i>>2]+(c<<2)|0;break B}H[m>>2]=H[c>>2]}H[c>>2]=m}H[i+12>>2]=H[i+12>>2]+1;c=1}F[g+92|0]=c;H[g+88>>2]=m;c=H[a+40>>2];jk(H[H[a>>2]>>2]+N(c,r)|0,g+48|0,c);n=H[g+16>>2];H[n+(s<<2)>>2]=r;r=r+1|0}c=s+1|0;q=c?q:q+1|0;s=c;c=H[a+80>>2];if(!q&c>>>0>s>>>0){continue}break}if((c|0)!=(r|0)){D:{if(!I[a+84|0]){b=H[a+72>>2];j=H[a+68>>2];if((b|0)==(j|0)){break D}b=b-j>>2;c=b>>>0>1?b:1;q=c&3;e=0;b=0;if(c-1>>>0>=3){d=c&-4;while(1){h=b<<2;c=h+j|0;H[c>>2]=H[(H[c>>2]<<2)+n>>2];c=j+(h|4)|0;H[c>>2]=H[(H[c>>2]<<2)+n>>2];c=j+(h|8)|0;H[c>>2]=H[(H[c>>2]<<2)+n>>2];c=j+(h|12)|0;H[c>>2]=H[(H[c>>2]<<2)+n>>2];b=b+4|0;t=t+4|0;if((d|0)!=(t|0)){continue}break}}if(!q){break D}while(1){c=j+(b<<2)|0;H[c>>2]=H[(H[c>>2]<<2)+n>>2];b=b+1|0;e=e+1|0;if((q|0)!=(e|0)){continue}break}break D}F[a+84|0]=0;d=a+68|0;b=H[a+68>>2];e=H[a+72>>2]-b>>2;E:{if(e>>>0>>0){tb(d,c-e|0,2176);c=H[a+80>>2];break E}if(c>>>0>=e>>>0){break E}H[a+72>>2]=b+(c<<2)}if(!c){break D}j=H[d>>2];e=0;b=0;if(c-1>>>0>=3){q=c&-4;while(1){h=b<<2;H[h+j>>2]=H[h+n>>2];d=h|4;H[d+j>>2]=H[d+n>>2];d=h|8;H[d+j>>2]=H[d+n>>2];d=h|12;H[d+j>>2]=H[d+n>>2];b=b+4|0;t=t+4|0;if((q|0)!=(t|0)){continue}break}}d=c&3;if(!d){break D}while(1){c=b<<2;H[c+j>>2]=H[c+n>>2];b=b+1|0;e=e+1|0;if((d|0)!=(e|0)){continue}break}}H[a+80>>2]=r}bl(n)}b=H[g+72>>2];if(b){while(1){a=H[b>>2];bl(b);b=a;if(b){continue}break}}a=H[g+64>>2];H[g+64>>2]=0;if(a){bl(a)}ha=g+96|0;return r}Ka();X()}function mb(a,b){var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=O(0),r=0,s=0,t=O(0);f=ha+-64|0;ha=f;H[f+40>>2]=0;H[f+44>>2]=0;H[f+32>>2]=0;H[f+36>>2]=0;H[f+48>>2]=1065353216;c=H[a+80>>2];H[f+16>>2]=0;H[f+8>>2]=0;H[f+12>>2]=0;a:{if(c){if(c>>>0>=1073741824){break a}d=c<<2;g=hl(d);H[f+8>>2]=g;c=d+g|0;H[f+16>>2]=c;lk(g,0,d);H[f+12>>2]=c;while(1){c=H[H[b>>2]>>2];e=H[b+48>>2]+Sl(H[b+40>>2],H[b+44>>2],s,0)|0;c=c+e|0;c=I[c|0]|I[c+1|0]<<8|(I[c+2|0]<<16|I[c+3|0]<<24);H[f+24>>2]=c;H[f+28>>2]=c;d=0;n=H[f+36>>2];b:{if(!n){break b}j=H[f+32>>2];m=I[f+27|0]^(I[f+26|0]^(I[f+25|0]^(I[f+24|0]^318)+239)+239)+239;c=m&n-1;e=Vl(n);c:{if(e>>>0<=1){break c}c=m;if(c>>>0>>0){break c}c=(m>>>0)%(n>>>0)|0}h=j;j=c;c=H[h+(c<<2)>>2];if(!c){break b}c=H[c>>2];if(!c){break b}d:{if(e>>>0>=2){o=I[f+24|0];k=I[f+25|0];i=I[f+26|0];h=I[f+27|0];while(1){e=H[c+4>>2];e:{if((e|0)!=(m|0)){if(e>>>0>=n>>>0){e=(e>>>0)%(n>>>0)|0}if((e|0)!=(j|0)){break b}break e}e=I[c+8|0];f:{if((e|0)!=(o|0)){e=(e|0)==(o|0);break f}e=I[c+9|0];if((e|0)!=(k|0)){e=(e|0)==(k|0);break f}e=I[c+10|0];if((e|0)!=(i|0)){e=(e|0)==(i|0);break f}e=(h|0)==I[c+11|0]}if(e){break d}}c=H[c>>2];if(c){continue}break}break b}i=n-1|0;n=I[f+24|0];o=I[f+25|0];k=I[f+26|0];h=I[f+27|0];while(1){e=H[c+4>>2];g:{if((e|0)!=(m|0)){if((j|0)!=(e&i)){break b}break g}e=I[c+8|0];if((e|0)!=(n|0)){if((e|0)!=(n|0)){break g}break d}e=I[c+9|0];if((e|0)!=(o|0)){if((e|0)!=(o|0)){break g}break d}e=I[c+10|0];if((e|0)!=(k|0)){if((e|0)!=(k|0)){break g}break d}if((h|0)==I[c+11|0]){break d}}c=H[c>>2];if(c){continue}break}break b}d=c}h:{if(d){H[(s<<2)+g>>2]=H[d+12>>2];break h}H[f+4>>2]=r;H[f>>2]=H[f+24>>2];c=0;m=I[f+3|0]^(I[f+2|0]^(I[f+1|0]^(I[f|0]^318)+239)+239)+239;i:{j:{l=f+32|0;e=H[l+4>>2];if(!e){break j}c=e-1|0;if(c&e){c=m;if(e>>>0<=c>>>0){c=(m>>>0)%(e>>>0)|0}g=H[H[l>>2]+(c<<2)>>2];if(!g){break j}k=I[f|0];i=I[f+1|0];h=I[f+2|0];j=I[f+3|0];while(1){g=H[g>>2];if(!g){break j}d=H[g+4>>2];if((d|0)!=(m|0)){if(d>>>0>=e>>>0){d=(d>>>0)%(e>>>0)|0}if((c|0)!=(d|0)){break j}}d=I[g+8|0];k:{if((d|0)!=(k|0)){d=(d|0)==(k|0);break k}d=I[g+9|0];if((d|0)!=(i|0)){d=(d|0)==(i|0);break k}d=I[g+10|0];if((d|0)!=(h|0)){d=(d|0)==(h|0);break k}d=(j|0)==I[g+11|0]}if(!d){continue}break}c=0;break i}c=c&m;g=H[H[l>>2]+(c<<2)>>2];if(!g){break j}h=e-1|0;o=I[f|0];k=I[f+1|0];i=I[f+2|0];j=I[f+3|0];while(1){g=H[g>>2];if(!g){break j}d=H[g+4>>2];if((d|0)!=(m|0)&(d&h)!=(c|0)){break j}d=I[g+8|0];l:{if((d|0)!=(o|0)){d=(d|0)==(o|0);break l}d=I[g+9|0];if((d|0)!=(k|0)){d=(d|0)==(k|0);break l}d=I[g+10|0];if((d|0)!=(i|0)){d=(d|0)==(i|0);break l}d=(j|0)==I[g+11|0]}if(!d){continue}break}c=0;break i}g=hl(16);H[g+8>>2]=H[f>>2];d=H[f+4>>2];H[g+4>>2]=m;H[g+12>>2]=d;H[g>>2]=0;q=O(H[l+12>>2]+1>>>0);t=L[l+16>>2];m:{if(q>O(t*O(e>>>0))?0:e){break m}c=2;d=(e-1&e)!=0|e>>>0<3|e<<1;q=O(U(O(q/t)));n:{if(q=O(0)){j=~~q>>>0;break n}j=0}d=d>>>0>j>>>0?d:j;o:{if((d|0)==1){break o}if(!(d&d-1)){c=d;break o}c=Zk(d);e=H[l+4>>2]}p:{if(c>>>0<=e>>>0){if(c>>>0>=e>>>0){break p}j=e>>>0<3;q=O(U(O(O(K[l+12>>2])/L[l+16>>2])));q:{if(q=O(0)){d=~~q>>>0;break q}d=0}r:{s:{if(j){break s}if(Vl(e)>>>0>1){break s}d=d>>>0<2?d:1<<32-Q(d-1|0);break r}d=Zk(d)}c=c>>>0>d>>>0?c:d;if(e>>>0<=c>>>0){break p}}d=0;h=0;i=c;t:{u:{v:{if(c){if(i>>>0>=1073741824){break v}c=hl(i<<2);e=H[l>>2];H[l>>2]=c;if(e){bl(e)}H[l+4>>2]=i;if(i-1>>>0>=3){c=i&-4;e=0;while(1){j=d<<2;H[j+H[l>>2]>>2]=0;H[H[l>>2]+(j|4)>>2]=0;H[H[l>>2]+(j|8)>>2]=0;H[H[l>>2]+(j|12)>>2]=0;d=d+4|0;e=e+4|0;if((c|0)!=(e|0)){continue}break}}c=i&3;if(c){while(1){H[H[l>>2]+(d<<2)>>2]=0;d=d+1|0;h=h+1|0;if((c|0)!=(h|0)){continue}break}}e=H[l+8>>2];if(!e){break t}d=l+8|0;j=H[e+4>>2];c=i-1|0;if(!(c&i)){break u}j=j>>>0>=i>>>0?(j>>>0)%(i>>>0)|0:j;H[H[l>>2]+(j<<2)>>2]=d;c=H[e>>2];if(!c){break t}while(1){h=H[c+4>>2];if(i>>>0<=h>>>0){h=(h>>>0)%(i>>>0)|0}w:{if((h|0)==(j|0)){e=c;break w}d=c;n=h<<2;k=n+H[l>>2]|0;if(!H[k>>2]){H[k>>2]=e;e=c;j=h;break w}while(1){h=d;d=H[d>>2];if(d){o=I[c+8|0];k=I[d+8|0];x:{if((o|0)!=(k|0)){k=(k|0)==(o|0);break x}o=I[c+9|0];k=I[d+9|0];if((o|0)!=(k|0)){k=(k|0)==(o|0);break x}o=I[c+10|0];k=I[d+10|0];if((o|0)!=(k|0)){k=(k|0)==(o|0);break x}k=I[c+11|0]==I[d+11|0]}if(k){continue}}break}H[e>>2]=d;H[h>>2]=H[H[n+H[l>>2]>>2]>>2];H[H[n+H[l>>2]>>2]>>2]=c}c=H[e>>2];if(c){continue}break}break t}c=H[l>>2];H[l>>2]=0;if(c){bl(c)}H[l+4>>2]=0;break t}_a();X()}j=c&j;H[H[l>>2]+(j<<2)>>2]=d;c=H[e>>2];if(!c){break t}o=i-1|0;while(1){h=o&H[c+4>>2];y:{if((h|0)==(j|0)){e=c;break y}d=c;n=h<<2;i=n+H[l>>2]|0;if(H[i>>2]){while(1){h=d;d=H[d>>2];if(d){k=I[c+8|0];i=I[d+8|0];z:{if((k|0)!=(i|0)){i=(i|0)==(k|0);break z}k=I[c+9|0];i=I[d+9|0];if((k|0)!=(i|0)){i=(i|0)==(k|0);break z}k=I[c+10|0];i=I[d+10|0];if((k|0)!=(i|0)){i=(i|0)==(k|0);break z}i=I[c+11|0]==I[d+11|0]}if(i){continue}}break}H[e>>2]=d;H[h>>2]=H[H[n+H[l>>2]>>2]>>2];H[H[n+H[l>>2]>>2]>>2]=c;break y}H[i>>2]=e;e=c;j=h}c=H[e>>2];if(c){continue}break}}}e=H[l+4>>2];c=e-1|0;if(!(c&e)){c=c&m;break m}if(e>>>0>m>>>0){c=m;break m}c=(m>>>0)%(e>>>0)|0}d=H[l>>2]+(c<<2)|0;c=H[d>>2];A:{B:{if(!c){c=l+8|0;H[g>>2]=H[c>>2];H[l+8>>2]=g;H[d>>2]=c;c=H[g>>2];if(!c){break A}c=H[c+4>>2];d=e-1|0;C:{if(!(d&e)){c=c&d;break C}if(c>>>0>>0){break C}c=(c>>>0)%(e>>>0)|0}c=H[l>>2]+(c<<2)|0;break B}H[g>>2]=H[c>>2]}H[c>>2]=g}H[l+12>>2]=H[l+12>>2]+1;c=1}F[f+60|0]=c;H[f+56>>2]=g;c=H[a+40>>2];jk(H[H[a>>2]>>2]+N(c,r)|0,f+28|0,c);g=H[f+8>>2];H[g+(s<<2)>>2]=r;r=r+1|0}c=s+1|0;p=c?p:p+1|0;s=c;c=H[a+80>>2];if(!p&c>>>0>s>>>0){continue}break}if((c|0)!=(r|0)){D:{if(!I[a+84|0]){b=H[a+72>>2];h=H[a+68>>2];if((b|0)==(h|0)){break D}b=b-h>>2;c=b>>>0>1?b:1;j=c&3;d=0;b=0;if(c-1>>>0>=3){p=c&-4;e=0;while(1){m=b<<2;c=m+h|0;H[c>>2]=H[(H[c>>2]<<2)+g>>2];c=h+(m|4)|0;H[c>>2]=H[(H[c>>2]<<2)+g>>2];c=h+(m|8)|0;H[c>>2]=H[(H[c>>2]<<2)+g>>2];c=h+(m|12)|0;H[c>>2]=H[(H[c>>2]<<2)+g>>2];b=b+4|0;e=e+4|0;if((p|0)!=(e|0)){continue}break}}if(!j){break D}while(1){c=h+(b<<2)|0;H[c>>2]=H[(H[c>>2]<<2)+g>>2];b=b+1|0;d=d+1|0;if((j|0)!=(d|0)){continue}break}break D}F[a+84|0]=0;e=a+68|0;b=H[a+68>>2];d=H[a+72>>2]-b>>2;E:{if(d>>>0>>0){tb(e,c-d|0,2176);c=H[a+80>>2];break E}if(c>>>0>=d>>>0){break E}H[a+72>>2]=b+(c<<2)}if(!c){break D}h=H[e>>2];d=0;b=0;if(c-1>>>0>=3){j=c&-4;e=0;while(1){m=b<<2;H[m+h>>2]=H[g+m>>2];p=m|4;H[p+h>>2]=H[g+p>>2];p=m|8;H[p+h>>2]=H[g+p>>2];p=m|12;H[p+h>>2]=H[g+p>>2];b=b+4|0;e=e+4|0;if((j|0)!=(e|0)){continue}break}}e=c&3;if(!e){break D}while(1){c=b<<2;H[c+h>>2]=H[c+g>>2];b=b+1|0;d=d+1|0;if((e|0)!=(d|0)){continue}break}}H[a+80>>2]=r}bl(g)}b=H[f+40>>2];if(b){while(1){a=H[b>>2];bl(b);b=a;if(b){continue}break}}a=H[f+32>>2];H[f+32>>2]=0;if(a){bl(a)}ha=f- -64|0;return r}Ka();X()}function pb(a,b){var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=O(0),r=0,s=0,t=O(0);f=ha-80|0;ha=f;H[f+56>>2]=0;H[f+60>>2]=0;H[f+48>>2]=0;H[f+52>>2]=0;H[f+64>>2]=1065353216;d=H[a+80>>2];H[f+24>>2]=0;H[f+16>>2]=0;H[f+20>>2]=0;a:{if(d){if(d>>>0>=1073741824){break a}c=d<<2;n=hl(c);H[f+16>>2]=n;d=c+n|0;H[f+24>>2]=d;lk(n,0,c);H[f+20>>2]=d;while(1){d=H[H[b>>2]>>2];e=H[b+48>>2]+Sl(H[b+40>>2],H[b+44>>2],s,0)|0;c=d+e|0;G[f+44>>1]=I[c+4|0]|I[c+5|0]<<8;H[f+40>>2]=I[c|0]|I[c+1|0]<<8|(I[c+2|0]<<16|I[c+3|0]<<24);d=I[c|0]|I[c+1|0]<<8|(I[c+2|0]<<16|I[c+3|0]<<24);G[f+36>>1]=I[c+4|0]|I[c+5|0]<<8;H[f+32>>2]=d;d=0;o=H[f+52>>2];b:{if(!o){break b}h=H[f+48>>2];l=J[f+36>>1]^(J[f+34>>1]^(J[f+32>>1]^318)+239)+239;c=l&o+262143;e=Vl(o);c:{if(e>>>0<=1){break c}c=l;if(c>>>0>>0){break c}c=(l>>>0)%(o>>>0)|0}g=h;h=c;c=H[g+(c<<2)>>2];if(!c){break b}c=H[c>>2];if(!c){break b}d:{if(e>>>0>=2){m=J[f+32>>1];i=J[f+34>>1];g=J[f+36>>1];while(1){e=H[c+4>>2];e:{if((e|0)!=(l|0)){if(e>>>0>=o>>>0){e=(e>>>0)%(o>>>0)|0}if((e|0)!=(h|0)){break b}break e}e=J[c+8>>1];f:{if((e|0)!=(m|0)){e=(e|0)==(m|0);break f}e=J[c+10>>1];if((e|0)!=(i|0)){e=(e|0)==(i|0);break f}e=(g|0)==J[c+12>>1]}if(e){break d}}c=H[c>>2];if(c){continue}break}break b}i=o-1|0;o=J[f+32>>1];m=J[f+34>>1];g=J[f+36>>1];while(1){e=H[c+4>>2];g:{if((e|0)!=(l|0)){if((h|0)!=(e&i)){break b}break g}e=J[c+8>>1];if((e|0)!=(o|0)){if((e|0)!=(o|0)){break g}break d}e=J[c+10>>1];if((e|0)!=(m|0)){if((e|0)!=(m|0)){break g}break d}if((g|0)==J[c+12>>1]){break d}}c=H[c>>2];if(c){continue}break}break b}d=c}h:{if(d){H[(s<<2)+n>>2]=H[d+16>>2];break h}G[f+4>>1]=J[f+36>>1];H[f>>2]=H[f+32>>2];H[f+8>>2]=r;d=0;l=J[f+4>>1]^(J[f+2>>1]^(J[f>>1]^318)+239)+239;i:{j:{j=f+48|0;e=H[j+4>>2];if(!e){break j}if(e-1&e){d=l;if(e>>>0<=d>>>0){d=(l>>>0)%(e>>>0)|0}k=H[H[j>>2]+(d<<2)>>2];if(!k){break j}i=J[f>>1];g=J[f+2>>1];h=J[f+4>>1];while(1){k=H[k>>2];if(!k){break j}c=H[k+4>>2];if((c|0)!=(l|0)){if(c>>>0>=e>>>0){c=(c>>>0)%(e>>>0)|0}if((c|0)!=(d|0)){break j}}c=J[k+8>>1];k:{if((c|0)!=(i|0)){c=(c|0)==(i|0);break k}c=J[k+10>>1];if((c|0)!=(g|0)){c=(c|0)==(g|0);break k}c=(h|0)==J[k+12>>1]}if(!c){continue}break}d=0;break i}d=l&e+262143;k=H[H[j>>2]+(d<<2)>>2];if(!k){break j}g=e-1|0;m=J[f>>1];i=J[f+2>>1];h=J[f+4>>1];while(1){k=H[k>>2];if(!k){break j}c=H[k+4>>2];if((c|0)!=(l|0)&(c&g)!=(d|0)){break j}c=J[k+8>>1];l:{if((c|0)!=(m|0)){c=(c|0)==(m|0);break l}c=J[k+10>>1];if((c|0)!=(i|0)){c=(c|0)==(i|0);break l}c=(h|0)==J[k+12>>1]}if(!c){continue}break}d=0;break i}k=hl(20);G[k+12>>1]=J[f+4>>1];H[k+8>>2]=H[f>>2];c=H[f+8>>2];H[k>>2]=0;H[k+4>>2]=l;H[k+16>>2]=c;q=O(H[j+12>>2]+1>>>0);t=L[j+16>>2];m:{if(q>O(t*O(e>>>0))?0:e){break m}d=2;c=(e-1&e)!=0|e>>>0<3|e<<1;q=O(U(O(q/t)));n:{if(q=O(0)){h=~~q>>>0;break n}h=0}c=c>>>0>h>>>0?c:h;o:{if((c|0)==1){break o}if(!(c&c-1)){d=c;break o}d=Zk(c);e=H[j+4>>2]}p:{if(d>>>0<=e>>>0){if(d>>>0>=e>>>0){break p}h=e>>>0<3;q=O(U(O(O(K[j+12>>2])/L[j+16>>2])));q:{if(q=O(0)){c=~~q>>>0;break q}c=0}r:{s:{if(h){break s}if(Vl(e)>>>0>1){break s}c=c>>>0<2?c:1<<32-Q(c-1|0);break r}c=Zk(c)}d=c>>>0>>0?d:c;if(e>>>0<=d>>>0){break p}}c=0;g=0;i=d;t:{u:{v:{if(d){if(i>>>0>=1073741824){break v}d=hl(i<<2);e=H[j>>2];H[j>>2]=d;if(e){bl(e)}H[j+4>>2]=i;if(i-1>>>0>=3){d=i&-4;e=0;while(1){h=c<<2;H[h+H[j>>2]>>2]=0;H[H[j>>2]+(h|4)>>2]=0;H[H[j>>2]+(h|8)>>2]=0;H[H[j>>2]+(h|12)>>2]=0;c=c+4|0;e=e+4|0;if((d|0)!=(e|0)){continue}break}}d=i&3;if(d){while(1){H[H[j>>2]+(c<<2)>>2]=0;c=c+1|0;g=g+1|0;if((d|0)!=(g|0)){continue}break}}e=H[j+8>>2];if(!e){break t}c=j+8|0;h=H[e+4>>2];d=i-1|0;if(!(d&i)){break u}h=h>>>0>=i>>>0?(h>>>0)%(i>>>0)|0:h;H[H[j>>2]+(h<<2)>>2]=c;d=H[e>>2];if(!d){break t}while(1){g=H[d+4>>2];if(i>>>0<=g>>>0){g=(g>>>0)%(i>>>0)|0}w:{if((g|0)==(h|0)){e=d;break w}c=d;n=g<<2;m=n+H[j>>2]|0;if(!H[m>>2]){H[m>>2]=e;e=d;h=g;break w}while(1){g=c;c=H[c>>2];if(c){o=J[d+8>>1];m=J[c+8>>1];x:{if((o|0)!=(m|0)){m=(m|0)==(o|0);break x}o=J[d+10>>1];m=J[c+10>>1];if((o|0)!=(m|0)){m=(m|0)==(o|0);break x}m=J[d+12>>1]==J[c+12>>1]}if(m){continue}}break}H[e>>2]=c;H[g>>2]=H[H[n+H[j>>2]>>2]>>2];H[H[n+H[j>>2]>>2]>>2]=d}d=H[e>>2];if(d){continue}break}break t}d=H[j>>2];H[j>>2]=0;if(d){bl(d)}H[j+4>>2]=0;break t}_a();X()}h=d&h;H[H[j>>2]+(h<<2)>>2]=c;d=H[e>>2];if(!d){break t}o=i-1|0;while(1){g=o&H[d+4>>2];y:{if((g|0)==(h|0)){e=d;break y}c=d;n=g<<2;i=n+H[j>>2]|0;if(H[i>>2]){while(1){g=c;c=H[c>>2];if(c){m=J[d+8>>1];i=J[c+8>>1];z:{if((m|0)!=(i|0)){i=(i|0)==(m|0);break z}m=J[d+10>>1];i=J[c+10>>1];if((m|0)!=(i|0)){i=(i|0)==(m|0);break z}i=J[d+12>>1]==J[c+12>>1]}if(i){continue}}break}H[e>>2]=c;H[g>>2]=H[H[n+H[j>>2]>>2]>>2];H[H[n+H[j>>2]>>2]>>2]=d;break y}H[i>>2]=e;e=d;h=g}d=H[e>>2];if(d){continue}break}}}e=H[j+4>>2];d=e-1|0;if(!(d&e)){d=d&l;break m}if(e>>>0>l>>>0){d=l;break m}d=(l>>>0)%(e>>>0)|0}c=H[j>>2]+(d<<2)|0;d=H[c>>2];A:{B:{if(!d){d=j+8|0;H[k>>2]=H[d>>2];H[j+8>>2]=k;H[c>>2]=d;d=H[k>>2];if(!d){break A}d=H[d+4>>2];c=e-1|0;C:{if(!(c&e)){d=c&d;break C}if(d>>>0>>0){break C}d=(d>>>0)%(e>>>0)|0}d=H[j>>2]+(d<<2)|0;break B}H[k>>2]=H[d>>2]}H[d>>2]=k}H[j+12>>2]=H[j+12>>2]+1;d=1}F[f+76|0]=d;H[f+72>>2]=k;d=H[a+40>>2];jk(H[H[a>>2]>>2]+N(d,r)|0,f+40|0,d);n=H[f+16>>2];H[n+(s<<2)>>2]=r;r=r+1|0}d=s+1|0;p=d?p:p+1|0;s=d;c=H[a+80>>2];if(!p&c>>>0>d>>>0){continue}break}if((c|0)!=(r|0)){D:{if(!I[a+84|0]){b=H[a+72>>2];g=H[a+68>>2];if((b|0)==(g|0)){break D}b=b-g>>2;c=b>>>0>1?b:1;h=c&3;d=0;b=0;if(c-1>>>0>=3){p=c&-4;e=0;while(1){l=b<<2;c=l+g|0;H[c>>2]=H[(H[c>>2]<<2)+n>>2];c=g+(l|4)|0;H[c>>2]=H[(H[c>>2]<<2)+n>>2];c=g+(l|8)|0;H[c>>2]=H[(H[c>>2]<<2)+n>>2];c=g+(l|12)|0;H[c>>2]=H[(H[c>>2]<<2)+n>>2];b=b+4|0;e=e+4|0;if((p|0)!=(e|0)){continue}break}}if(!h){break D}while(1){c=g+(b<<2)|0;H[c>>2]=H[(H[c>>2]<<2)+n>>2];b=b+1|0;d=d+1|0;if((h|0)!=(d|0)){continue}break}break D}F[a+84|0]=0;e=a+68|0;b=H[a+68>>2];d=H[a+72>>2]-b>>2;E:{if(d>>>0>>0){tb(e,c-d|0,2176);c=H[a+80>>2];break E}if(c>>>0>=d>>>0){break E}H[a+72>>2]=b+(c<<2)}if(!c){break D}g=H[e>>2];d=0;b=0;if(c-1>>>0>=3){h=c&-4;e=0;while(1){l=b<<2;H[l+g>>2]=H[l+n>>2];p=l|4;H[p+g>>2]=H[n+p>>2];p=l|8;H[p+g>>2]=H[n+p>>2];p=l|12;H[p+g>>2]=H[n+p>>2];b=b+4|0;e=e+4|0;if((h|0)!=(e|0)){continue}break}}e=c&3;if(!e){break D}while(1){c=b<<2;H[c+g>>2]=H[c+n>>2];b=b+1|0;d=d+1|0;if((e|0)!=(d|0)){continue}break}}H[a+80>>2]=r}bl(n)}b=H[f+56>>2];if(b){while(1){a=H[b>>2];bl(b);b=a;if(b){continue}break}}a=H[f+48>>2];H[f+48>>2]=0;if(a){bl(a)}ha=f+80|0;return r}Ka();X()}function lb(a,b){var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=O(0),q=0,r=0,s=0,t=O(0);g=ha+-64|0;ha=g;H[g+40>>2]=0;H[g+44>>2]=0;H[g+32>>2]=0;H[g+36>>2]=0;H[g+48>>2]=1065353216;c=H[a+80>>2];H[g+16>>2]=0;H[g+8>>2]=0;H[g+12>>2]=0;a:{if(c){if(c>>>0>=1073741824){break a}d=c<<2;n=hl(d);H[g+8>>2]=n;c=d+n|0;H[g+16>>2]=c;lk(n,0,d);H[g+12>>2]=c;while(1){c=H[H[b>>2]>>2];e=H[b+48>>2]+Sl(H[b+40>>2],H[b+44>>2],s,0)|0;d=c+e|0;F[g+30|0]=I[d+2|0];G[g+28>>1]=I[d|0]|I[d+1|0]<<8;c=I[d|0]|I[d+1|0]<<8;F[g+26|0]=I[d+2|0];G[g+24>>1]=c;d=0;o=H[g+36>>2];b:{if(!o){break b}h=H[g+32>>2];j=I[g+26|0]^(I[g+25|0]^(I[g+24|0]^318)+239)+239;c=j&o-1;e=Vl(o);c:{if(e>>>0<=1){break c}c=j;if(c>>>0>>0){break c}c=(j>>>0)%(o>>>0)|0}k=h;h=c;c=H[k+(c<<2)>>2];if(!c){break b}c=H[c>>2];if(!c){break b}d:{if(e>>>0>=2){f=I[g+24|0];l=I[g+25|0];k=I[g+26|0];while(1){e=H[c+4>>2];e:{if((e|0)!=(j|0)){if(e>>>0>=o>>>0){e=(e>>>0)%(o>>>0)|0}if((e|0)!=(h|0)){break b}break e}e=I[c+8|0];f:{if((e|0)!=(f|0)){e=(e|0)==(f|0);break f}e=I[c+9|0];if((e|0)!=(l|0)){e=(e|0)==(l|0);break f}e=(k|0)==I[c+10|0]}if(e){break d}}c=H[c>>2];if(c){continue}break}break b}l=o-1|0;o=I[g+24|0];f=I[g+25|0];k=I[g+26|0];while(1){e=H[c+4>>2];g:{if((e|0)!=(j|0)){if((h|0)!=(e&l)){break b}break g}e=I[c+8|0];if((e|0)!=(o|0)){if((e|0)!=(o|0)){break g}break d}e=I[c+9|0];if((e|0)!=(f|0)){if((e|0)!=(f|0)){break g}break d}if((k|0)==I[c+10|0]){break d}}c=H[c>>2];if(c){continue}break}break b}d=c}h:{if(d){H[(s<<2)+n>>2]=H[d+12>>2];break h}F[g+2|0]=I[g+26|0];G[g>>1]=J[g+24>>1];H[g+4>>2]=r;c=0;j=I[g+2|0]^(I[g+1|0]^(I[g|0]^318)+239)+239;i:{j:{i=g+32|0;f=H[i+4>>2];if(!f){break j}c=f-1|0;if(c&f){c=j;if(f>>>0<=c>>>0){c=(j>>>0)%(f>>>0)|0}m=H[H[i>>2]+(c<<2)>>2];if(!m){break j}k=I[g|0];h=I[g+1|0];e=I[g+2|0];while(1){m=H[m>>2];if(!m){break j}d=H[m+4>>2];if((d|0)!=(j|0)){if(d>>>0>=f>>>0){d=(d>>>0)%(f>>>0)|0}if((c|0)!=(d|0)){break j}}d=I[m+8|0];k:{if((d|0)!=(k|0)){d=(d|0)==(k|0);break k}d=I[m+9|0];if((d|0)!=(h|0)){d=(d|0)==(h|0);break k}d=(e|0)==I[m+10|0]}if(!d){continue}break}c=0;break i}c=c&j;m=H[H[i>>2]+(c<<2)>>2];if(!m){break j}h=f-1|0;l=I[g|0];k=I[g+1|0];e=I[g+2|0];while(1){m=H[m>>2];if(!m){break j}d=H[m+4>>2];if((d|0)!=(j|0)&(d&h)!=(c|0)){break j}d=I[m+8|0];l:{if((d|0)!=(l|0)){d=(d|0)==(l|0);break l}d=I[m+9|0];if((d|0)!=(k|0)){d=(d|0)==(k|0);break l}d=(e|0)==I[m+10|0]}if(!d){continue}break}c=0;break i}m=hl(16);F[m+10|0]=I[g+2|0];G[m+8>>1]=J[g>>1];d=H[g+4>>2];H[m>>2]=0;H[m+4>>2]=j;H[m+12>>2]=d;t=O(H[i+12>>2]+1>>>0);p=L[i+16>>2];m:{if(t>O(p*O(f>>>0))?0:f){break m}c=2;d=(f-1&f)!=0|f>>>0<3|f<<1;p=O(U(O(t/p)));n:{if(p=O(0)){e=~~p>>>0;break n}e=0}d=d>>>0>e>>>0?d:e;o:{if((d|0)==1){break o}if(!(d&d-1)){c=d;break o}c=Zk(d);f=H[i+4>>2]}p:{if(c>>>0<=f>>>0){if(c>>>0>=f>>>0){break p}e=f>>>0<3;p=O(U(O(O(K[i+12>>2])/L[i+16>>2])));q:{if(p=O(0)){d=~~p>>>0;break q}d=0}r:{s:{if(e){break s}if(Vl(f)>>>0>1){break s}d=d>>>0<2?d:1<<32-Q(d-1|0);break r}d=Zk(d)}c=c>>>0>d>>>0?c:d;if(f>>>0<=c>>>0){break p}}e=0;k=0;l=c;t:{u:{v:{if(c){if(l>>>0>=1073741824){break v}c=hl(l<<2);d=H[i>>2];H[i>>2]=c;if(d){bl(d)}H[i+4>>2]=l;if(l-1>>>0>=3){c=l&-4;d=0;while(1){h=e<<2;H[h+H[i>>2]>>2]=0;H[H[i>>2]+(h|4)>>2]=0;H[H[i>>2]+(h|8)>>2]=0;H[H[i>>2]+(h|12)>>2]=0;e=e+4|0;d=d+4|0;if((c|0)!=(d|0)){continue}break}}c=l&3;if(c){while(1){H[H[i>>2]+(e<<2)>>2]=0;e=e+1|0;k=k+1|0;if((c|0)!=(k|0)){continue}break}}d=H[i+8>>2];if(!d){break t}e=i+8|0;h=H[d+4>>2];c=l-1|0;if(!(c&l)){break u}h=h>>>0>=l>>>0?(h>>>0)%(l>>>0)|0:h;H[H[i>>2]+(h<<2)>>2]=e;c=H[d>>2];if(!c){break t}while(1){k=H[c+4>>2];if(l>>>0<=k>>>0){k=(k>>>0)%(l>>>0)|0}w:{if((h|0)==(k|0)){d=c;break w}e=c;n=k<<2;f=n+H[i>>2]|0;if(!H[f>>2]){H[f>>2]=d;d=c;h=k;break w}while(1){k=e;e=H[e>>2];if(e){o=I[c+8|0];f=I[e+8|0];x:{if((o|0)!=(f|0)){f=(f|0)==(o|0);break x}o=I[c+9|0];f=I[e+9|0];if((o|0)!=(f|0)){f=(f|0)==(o|0);break x}f=I[c+10|0]==I[e+10|0]}if(f){continue}}break}H[d>>2]=e;H[k>>2]=H[H[n+H[i>>2]>>2]>>2];H[H[n+H[i>>2]>>2]>>2]=c}c=H[d>>2];if(c){continue}break}break t}c=H[i>>2];H[i>>2]=0;if(c){bl(c)}H[i+4>>2]=0;break t}_a();X()}h=c&h;H[H[i>>2]+(h<<2)>>2]=e;c=H[d>>2];if(!c){break t}o=l-1|0;while(1){k=o&H[c+4>>2];y:{if((k|0)==(h|0)){d=c;break y}e=c;n=k<<2;l=n+H[i>>2]|0;if(H[l>>2]){while(1){k=e;e=H[e>>2];if(e){f=I[c+8|0];l=I[e+8|0];z:{if((f|0)!=(l|0)){f=(f|0)==(l|0);break z}f=I[c+9|0];l=I[e+9|0];if((f|0)!=(l|0)){f=(f|0)==(l|0);break z}f=I[c+10|0]==I[e+10|0]}if(f){continue}}break}H[d>>2]=e;H[k>>2]=H[H[n+H[i>>2]>>2]>>2];H[H[n+H[i>>2]>>2]>>2]=c;break y}H[l>>2]=d;d=c;h=k}c=H[d>>2];if(c){continue}break}}}f=H[i+4>>2];c=f-1|0;if(!(c&f)){c=c&j;break m}if(f>>>0>j>>>0){c=j;break m}c=(j>>>0)%(f>>>0)|0}d=H[i>>2]+(c<<2)|0;c=H[d>>2];A:{B:{if(!c){c=i+8|0;H[m>>2]=H[c>>2];H[i+8>>2]=m;H[d>>2]=c;c=H[m>>2];if(!c){break A}c=H[c+4>>2];d=f-1|0;C:{if(!(d&f)){c=c&d;break C}if(c>>>0>>0){break C}c=(c>>>0)%(f>>>0)|0}c=H[i>>2]+(c<<2)|0;break B}H[m>>2]=H[c>>2]}H[c>>2]=m}H[i+12>>2]=H[i+12>>2]+1;c=1}F[g+60|0]=c;H[g+56>>2]=m;c=H[a+40>>2];jk(H[H[a>>2]>>2]+N(c,r)|0,g+28|0,c);n=H[g+8>>2];H[n+(s<<2)>>2]=r;r=r+1|0}c=s+1|0;q=c?q:q+1|0;s=c;c=H[a+80>>2];if(!q&c>>>0>s>>>0){continue}break}if((c|0)!=(r|0)){D:{if(!I[a+84|0]){b=H[a+72>>2];j=H[a+68>>2];if((b|0)==(j|0)){break D}b=b-j>>2;c=b>>>0>1?b:1;q=c&3;d=0;b=0;if(c-1>>>0>=3){e=c&-4;f=0;while(1){h=b<<2;c=h+j|0;H[c>>2]=H[(H[c>>2]<<2)+n>>2];c=j+(h|4)|0;H[c>>2]=H[(H[c>>2]<<2)+n>>2];c=j+(h|8)|0;H[c>>2]=H[(H[c>>2]<<2)+n>>2];c=j+(h|12)|0;H[c>>2]=H[(H[c>>2]<<2)+n>>2];b=b+4|0;f=f+4|0;if((e|0)!=(f|0)){continue}break}}if(!q){break D}while(1){c=j+(b<<2)|0;H[c>>2]=H[(H[c>>2]<<2)+n>>2];b=b+1|0;d=d+1|0;if((q|0)!=(d|0)){continue}break}break D}F[a+84|0]=0;e=a+68|0;b=H[a+68>>2];d=H[a+72>>2]-b>>2;E:{if(d>>>0>>0){tb(e,c-d|0,2176);c=H[a+80>>2];break E}if(c>>>0>=d>>>0){break E}H[a+72>>2]=b+(c<<2)}if(!c){break D}j=H[e>>2];d=0;b=0;if(c-1>>>0>=3){q=c&-4;f=0;while(1){h=b<<2;H[h+j>>2]=H[h+n>>2];e=h|4;H[e+j>>2]=H[e+n>>2];e=h|8;H[e+j>>2]=H[e+n>>2];e=h|12;H[e+j>>2]=H[e+n>>2];b=b+4|0;f=f+4|0;if((q|0)!=(f|0)){continue}break}}e=c&3;if(!e){break D}while(1){c=b<<2;H[c+j>>2]=H[c+n>>2];b=b+1|0;d=d+1|0;if((e|0)!=(d|0)){continue}break}}H[a+80>>2]=r}bl(n)}b=H[g+40>>2];if(b){while(1){a=H[b>>2];bl(b);b=a;if(b){continue}break}}a=H[g+32>>2];H[g+32>>2]=0;if(a){bl(a)}ha=g- -64|0;return r}Ka();X()}function gb(a,b){var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=O(0),p=0,q=0,r=0,s=0,t=O(0);g=ha-80|0;ha=g;H[g+56>>2]=0;H[g+60>>2]=0;H[g+48>>2]=0;H[g+52>>2]=0;H[g+64>>2]=1065353216;c=H[a+80>>2];H[g+24>>2]=0;H[g+16>>2]=0;H[g+20>>2]=0;a:{if(c){if(c>>>0>=1073741824){break a}d=c<<2;m=hl(d);H[g+16>>2]=m;c=d+m|0;H[g+24>>2]=c;lk(m,0,d);H[g+20>>2]=c;while(1){c=H[H[b>>2]>>2];d=H[b+48>>2]+Sl(H[b+40>>2],H[b+44>>2],s,0)|0;c=c+d|0;d=I[c+4|0]|I[c+5|0]<<8|(I[c+6|0]<<16|I[c+7|0]<<24);c=I[c|0]|I[c+1|0]<<8|(I[c+2|0]<<16|I[c+3|0]<<24);H[g+32>>2]=c;H[g+36>>2]=d;H[g+40>>2]=c;H[g+44>>2]=d;d=0;n=H[g+52>>2];b:{if(!n){break b}h=H[g+48>>2];j=H[g+36>>2]^(H[g+32>>2]^318)+239;c=j&n-1;e=Vl(n);c:{if(e>>>0<=1){break c}c=j;if(c>>>0>>0){break c}c=(j>>>0)%(n>>>0)|0}k=h;h=c;c=H[k+(c<<2)>>2];if(!c){break b}c=H[c>>2];if(!c){break b}d:{if(e>>>0>=2){k=H[g+36>>2];f=H[g+32>>2];while(1){e=H[c+4>>2];e:{if((e|0)!=(j|0)){if(e>>>0>=n>>>0){e=(e>>>0)%(n>>>0)|0}if((e|0)!=(h|0)){break b}break e}e=H[c+8>>2];f:{if((e|0)!=(f|0)){e=(e|0)==(f|0);break f}e=(k|0)==H[c+12>>2]}if(e){break d}}c=H[c>>2];if(c){continue}break}break b}f=n-1|0;k=H[g+36>>2];n=H[g+32>>2];while(1){e=H[c+4>>2];g:{if((e|0)!=(j|0)){if((h|0)!=(e&f)){break b}break g}e=H[c+8>>2];if((e|0)!=(n|0)){if((e|0)!=(n|0)){break g}break d}if((k|0)==H[c+12>>2]){break d}}c=H[c>>2];if(c){continue}break}break b}d=c}h:{if(d){H[(s<<2)+m>>2]=H[d+16>>2];break h}H[g+8>>2]=q;c=H[g+36>>2];H[g>>2]=H[g+32>>2];H[g+4>>2]=c;c=0;j=H[g+4>>2]^(H[g>>2]^318)+239;i:{j:{i=g+48|0;f=H[i+4>>2];if(!f){break j}c=f-1|0;if(c&f){c=j;if(f>>>0<=c>>>0){c=(j>>>0)%(f>>>0)|0}l=H[H[i>>2]+(c<<2)>>2];if(!l){break j}e=H[g+4>>2];h=H[g>>2];while(1){l=H[l>>2];if(!l){break j}d=H[l+4>>2];if((d|0)!=(j|0)){if(d>>>0>=f>>>0){d=(d>>>0)%(f>>>0)|0}if((c|0)!=(d|0)){break j}}d=H[l+8>>2];k:{if((d|0)!=(h|0)){d=(d|0)==(h|0);break k}d=(e|0)==H[l+12>>2]}if(!d){continue}break}c=0;break i}c=c&j;l=H[H[i>>2]+(c<<2)>>2];if(!l){break j}h=f-1|0;e=H[g+4>>2];k=H[g>>2];while(1){l=H[l>>2];if(!l){break j}d=H[l+4>>2];if((d|0)!=(j|0)&(d&h)!=(c|0)){break j}d=H[l+8>>2];l:{if((d|0)!=(k|0)){d=(d|0)==(k|0);break l}d=(e|0)==H[l+12>>2]}if(!d){continue}break}c=0;break i}l=hl(20);d=H[g+4>>2];H[l+8>>2]=H[g>>2];H[l+12>>2]=d;d=H[g+8>>2];H[l+4>>2]=j;H[l+16>>2]=d;H[l>>2]=0;t=O(H[i+12>>2]+1>>>0);o=L[i+16>>2];m:{if(t>O(o*O(f>>>0))?0:f){break m}c=2;d=(f-1&f)!=0|f>>>0<3|f<<1;o=O(U(O(t/o)));n:{if(o=O(0)){e=~~o>>>0;break n}e=0}d=d>>>0>e>>>0?d:e;o:{if((d|0)==1){break o}if(!(d&d-1)){c=d;break o}c=Zk(d);f=H[i+4>>2]}p:{if(c>>>0<=f>>>0){if(c>>>0>=f>>>0){break p}e=f>>>0<3;o=O(U(O(O(K[i+12>>2])/L[i+16>>2])));q:{if(o=O(0)){d=~~o>>>0;break q}d=0}r:{s:{if(e){break s}if(Vl(f)>>>0>1){break s}d=d>>>0<2?d:1<<32-Q(d-1|0);break r}d=Zk(d)}c=c>>>0>d>>>0?c:d;if(f>>>0<=c>>>0){break p}}e=0;k=0;f=c;t:{u:{v:{if(c){if(f>>>0>=1073741824){break v}c=hl(f<<2);d=H[i>>2];H[i>>2]=c;if(d){bl(d)}H[i+4>>2]=f;if(f-1>>>0>=3){c=f&-4;d=0;while(1){h=e<<2;H[h+H[i>>2]>>2]=0;H[H[i>>2]+(h|4)>>2]=0;H[H[i>>2]+(h|8)>>2]=0;H[H[i>>2]+(h|12)>>2]=0;e=e+4|0;d=d+4|0;if((c|0)!=(d|0)){continue}break}}c=f&3;if(c){while(1){H[H[i>>2]+(e<<2)>>2]=0;e=e+1|0;k=k+1|0;if((c|0)!=(k|0)){continue}break}}d=H[i+8>>2];if(!d){break t}e=i+8|0;h=H[d+4>>2];c=f-1|0;if(!(c&f)){break u}h=f>>>0<=h>>>0?(h>>>0)%(f>>>0)|0:h;H[H[i>>2]+(h<<2)>>2]=e;c=H[d>>2];if(!c){break t}while(1){k=H[c+4>>2];if(f>>>0<=k>>>0){k=(k>>>0)%(f>>>0)|0}w:{if((h|0)==(k|0)){d=c;break w}e=c;r=k<<2;n=r+H[i>>2]|0;if(!H[n>>2]){H[n>>2]=d;d=c;h=k;break w}while(1){k=e;e=H[e>>2];if(e){m=H[c+8>>2];n=H[e+8>>2];x:{if((m|0)!=(n|0)){m=(m|0)==(n|0);break x}m=H[c+12>>2]==H[e+12>>2]}if(m){continue}}break}H[d>>2]=e;H[k>>2]=H[H[r+H[i>>2]>>2]>>2];H[H[r+H[i>>2]>>2]>>2]=c}c=H[d>>2];if(c){continue}break}break t}c=H[i>>2];H[i>>2]=0;if(c){bl(c)}H[i+4>>2]=0;break t}_a();X()}h=c&h;H[H[i>>2]+(h<<2)>>2]=e;c=H[d>>2];if(!c){break t}m=f-1|0;while(1){k=m&H[c+4>>2];y:{if((k|0)==(h|0)){d=c;break y}e=c;r=k<<2;f=r+H[i>>2]|0;if(H[f>>2]){while(1){k=e;e=H[e>>2];if(e){n=H[c+8>>2];f=H[e+8>>2];z:{if((n|0)!=(f|0)){f=(f|0)==(n|0);break z}f=H[c+12>>2]==H[e+12>>2]}if(f){continue}}break}H[d>>2]=e;H[k>>2]=H[H[r+H[i>>2]>>2]>>2];H[H[r+H[i>>2]>>2]>>2]=c;break y}H[f>>2]=d;d=c;h=k}c=H[d>>2];if(c){continue}break}}}f=H[i+4>>2];c=f-1|0;if(!(c&f)){c=c&j;break m}if(f>>>0>j>>>0){c=j;break m}c=(j>>>0)%(f>>>0)|0}d=H[i>>2]+(c<<2)|0;c=H[d>>2];A:{B:{if(!c){c=i+8|0;H[l>>2]=H[c>>2];H[i+8>>2]=l;H[d>>2]=c;c=H[l>>2];if(!c){break A}c=H[c+4>>2];d=f-1|0;C:{if(!(d&f)){c=c&d;break C}if(c>>>0>>0){break C}c=(c>>>0)%(f>>>0)|0}c=H[i>>2]+(c<<2)|0;break B}H[l>>2]=H[c>>2]}H[c>>2]=l}H[i+12>>2]=H[i+12>>2]+1;c=1}F[g+76|0]=c;H[g+72>>2]=l;c=H[a+40>>2];jk(H[H[a>>2]>>2]+N(c,q)|0,g+40|0,c);m=H[g+16>>2];H[m+(s<<2)>>2]=q;q=q+1|0}c=s+1|0;p=c?p:p+1|0;s=c;c=H[a+80>>2];if(!p&c>>>0>s>>>0){continue}break}if((c|0)!=(q|0)){D:{if(!I[a+84|0]){b=H[a+72>>2];j=H[a+68>>2];if((b|0)==(j|0)){break D}b=b-j>>2;c=b>>>0>1?b:1;p=c&3;d=0;b=0;if(c-1>>>0>=3){e=c&-4;f=0;while(1){h=b<<2;c=h+j|0;H[c>>2]=H[(H[c>>2]<<2)+m>>2];c=j+(h|4)|0;H[c>>2]=H[(H[c>>2]<<2)+m>>2];c=j+(h|8)|0;H[c>>2]=H[(H[c>>2]<<2)+m>>2];c=j+(h|12)|0;H[c>>2]=H[(H[c>>2]<<2)+m>>2];b=b+4|0;f=f+4|0;if((e|0)!=(f|0)){continue}break}}if(!p){break D}while(1){c=j+(b<<2)|0;H[c>>2]=H[(H[c>>2]<<2)+m>>2];b=b+1|0;d=d+1|0;if((p|0)!=(d|0)){continue}break}break D}F[a+84|0]=0;e=a+68|0;b=H[a+68>>2];d=H[a+72>>2]-b>>2;E:{if(d>>>0>>0){tb(e,c-d|0,2176);c=H[a+80>>2];break E}if(c>>>0>=d>>>0){break E}H[a+72>>2]=b+(c<<2)}if(!c){break D}j=H[e>>2];d=0;b=0;if(c-1>>>0>=3){p=c&-4;f=0;while(1){h=b<<2;H[h+j>>2]=H[h+m>>2];e=h|4;H[e+j>>2]=H[e+m>>2];e=h|8;H[e+j>>2]=H[e+m>>2];e=h|12;H[e+j>>2]=H[e+m>>2];b=b+4|0;f=f+4|0;if((p|0)!=(f|0)){continue}break}}e=c&3;if(!e){break D}while(1){c=b<<2;H[c+j>>2]=H[c+m>>2];b=b+1|0;d=d+1|0;if((e|0)!=(d|0)){continue}break}}H[a+80>>2]=q}bl(m)}b=H[g+56>>2];if(b){while(1){a=H[b>>2];bl(b);b=a;if(b){continue}break}}a=H[g+48>>2];H[g+48>>2]=0;if(a){bl(a)}ha=g+80|0;return q}Ka();X()}function ob(a,b){var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=O(0),q=0,r=0,s=0,t=O(0);g=ha+-64|0;ha=g;H[g+40>>2]=0;H[g+44>>2]=0;H[g+32>>2]=0;H[g+36>>2]=0;H[g+48>>2]=1065353216;d=H[a+80>>2];H[g+16>>2]=0;H[g+8>>2]=0;H[g+12>>2]=0;a:{if(d){if(d>>>0>=1073741824){break a}c=d<<2;m=hl(c);H[g+8>>2]=m;d=c+m|0;H[g+16>>2]=d;lk(m,0,c);H[g+12>>2]=d;while(1){d=H[H[b>>2]>>2];e=H[b+48>>2]+Sl(H[b+40>>2],H[b+44>>2],s,0)|0;d=d+e|0;d=I[d|0]|I[d+1|0]<<8|(I[d+2|0]<<16|I[d+3|0]<<24);H[g+24>>2]=d;H[g+28>>2]=d;d=0;n=H[g+36>>2];b:{if(!n){break b}h=H[g+32>>2];k=J[g+26>>1]^(J[g+24>>1]^318)+239;c=k&n+131071;e=Vl(n);c:{if(e>>>0<=1){break c}c=k;if(c>>>0>>0){break c}c=(k>>>0)%(n>>>0)|0}f=h;h=c;c=H[f+(c<<2)>>2];if(!c){break b}c=H[c>>2];if(!c){break b}d:{if(e>>>0>=2){j=J[g+24>>1];f=J[g+26>>1];while(1){e=H[c+4>>2];e:{if((e|0)!=(k|0)){if(e>>>0>=n>>>0){e=(e>>>0)%(n>>>0)|0}if((e|0)!=(h|0)){break b}break e}e=J[c+8>>1];f:{if((e|0)!=(j|0)){e=(e|0)==(j|0);break f}e=(f|0)==J[c+10>>1]}if(e){break d}}c=H[c>>2];if(c){continue}break}break b}j=n-1|0;n=J[g+24>>1];f=J[g+26>>1];while(1){e=H[c+4>>2];g:{if((e|0)!=(k|0)){if((h|0)!=(e&j)){break b}break g}e=J[c+8>>1];if((e|0)!=(n|0)){if((e|0)!=(n|0)){break g}break d}if((f|0)==J[c+10>>1]){break d}}c=H[c>>2];if(c){continue}break}break b}d=c}h:{if(d){H[(s<<2)+m>>2]=H[d+12>>2];break h}H[g+4>>2]=q;H[g>>2]=H[g+24>>2];d=0;k=J[g+2>>1]^(J[g>>1]^318)+239;i:{j:{i=g+32|0;e=H[i+4>>2];if(!e){break j}if(e-1&e){d=k;if(e>>>0<=d>>>0){d=(k>>>0)%(e>>>0)|0}l=H[H[i>>2]+(d<<2)>>2];if(!l){break j}f=J[g>>1];h=J[g+2>>1];while(1){l=H[l>>2];if(!l){break j}c=H[l+4>>2];if((c|0)!=(k|0)){if(c>>>0>=e>>>0){c=(c>>>0)%(e>>>0)|0}if((c|0)!=(d|0)){break j}}c=J[l+8>>1];k:{if((c|0)!=(f|0)){c=(c|0)==(f|0);break k}c=(h|0)==J[l+10>>1]}if(!c){continue}break}d=0;break i}d=k&e+131071;l=H[H[i>>2]+(d<<2)>>2];if(!l){break j}f=e-1|0;j=J[g>>1];h=J[g+2>>1];while(1){l=H[l>>2];if(!l){break j}c=H[l+4>>2];if((c|0)!=(k|0)&(c&f)!=(d|0)){break j}c=J[l+8>>1];l:{if((c|0)!=(j|0)){c=(c|0)==(j|0);break l}c=(h|0)==J[l+10>>1]}if(!c){continue}break}d=0;break i}l=hl(16);H[l+8>>2]=H[g>>2];c=H[g+4>>2];H[l+4>>2]=k;H[l+12>>2]=c;H[l>>2]=0;p=O(H[i+12>>2]+1>>>0);t=L[i+16>>2];m:{if(p>O(t*O(e>>>0))?0:e){break m}d=2;c=(e-1&e)!=0|e>>>0<3|e<<1;p=O(U(O(p/t)));n:{if(p=O(0)){h=~~p>>>0;break n}h=0}c=c>>>0>h>>>0?c:h;o:{if((c|0)==1){break o}if(!(c&c-1)){d=c;break o}d=Zk(c);e=H[i+4>>2]}p:{if(d>>>0<=e>>>0){if(d>>>0>=e>>>0){break p}h=e>>>0<3;p=O(U(O(O(K[i+12>>2])/L[i+16>>2])));q:{if(p=O(0)){c=~~p>>>0;break q}c=0}r:{s:{if(h){break s}if(Vl(e)>>>0>1){break s}c=c>>>0<2?c:1<<32-Q(c-1|0);break r}c=Zk(c)}d=c>>>0>>0?d:c;if(e>>>0<=d>>>0){break p}}c=0;f=0;j=d;t:{u:{v:{if(d){if(j>>>0>=1073741824){break v}d=hl(j<<2);e=H[i>>2];H[i>>2]=d;if(e){bl(e)}H[i+4>>2]=j;if(j-1>>>0>=3){d=j&-4;e=0;while(1){h=c<<2;H[h+H[i>>2]>>2]=0;H[H[i>>2]+(h|4)>>2]=0;H[H[i>>2]+(h|8)>>2]=0;H[H[i>>2]+(h|12)>>2]=0;c=c+4|0;e=e+4|0;if((d|0)!=(e|0)){continue}break}}d=j&3;if(d){while(1){H[H[i>>2]+(c<<2)>>2]=0;c=c+1|0;f=f+1|0;if((d|0)!=(f|0)){continue}break}}e=H[i+8>>2];if(!e){break t}c=i+8|0;h=H[e+4>>2];d=j-1|0;if(!(d&j)){break u}h=h>>>0>=j>>>0?(h>>>0)%(j>>>0)|0:h;H[H[i>>2]+(h<<2)>>2]=c;d=H[e>>2];if(!d){break t}while(1){f=H[d+4>>2];if(j>>>0<=f>>>0){f=(f>>>0)%(j>>>0)|0}w:{if((f|0)==(h|0)){e=d;break w}c=d;r=f<<2;n=r+H[i>>2]|0;if(!H[n>>2]){H[n>>2]=e;e=d;h=f;break w}while(1){f=c;c=H[c>>2];if(c){m=J[d+8>>1];n=J[c+8>>1];x:{if((m|0)!=(n|0)){m=(m|0)==(n|0);break x}m=J[d+10>>1]==J[c+10>>1]}if(m){continue}}break}H[e>>2]=c;H[f>>2]=H[H[r+H[i>>2]>>2]>>2];H[H[r+H[i>>2]>>2]>>2]=d}d=H[e>>2];if(d){continue}break}break t}d=H[i>>2];H[i>>2]=0;if(d){bl(d)}H[i+4>>2]=0;break t}_a();X()}h=d&h;H[H[i>>2]+(h<<2)>>2]=c;d=H[e>>2];if(!d){break t}m=j-1|0;while(1){f=m&H[d+4>>2];y:{if((f|0)==(h|0)){e=d;break y}c=d;r=f<<2;j=r+H[i>>2]|0;if(H[j>>2]){while(1){f=c;c=H[c>>2];if(c){n=J[d+8>>1];j=J[c+8>>1];z:{if((n|0)!=(j|0)){j=(j|0)==(n|0);break z}j=J[d+10>>1]==J[c+10>>1]}if(j){continue}}break}H[e>>2]=c;H[f>>2]=H[H[r+H[i>>2]>>2]>>2];H[H[r+H[i>>2]>>2]>>2]=d;break y}H[j>>2]=e;e=d;h=f}d=H[e>>2];if(d){continue}break}}}e=H[i+4>>2];d=e-1|0;if(!(d&e)){d=d&k;break m}if(e>>>0>k>>>0){d=k;break m}d=(k>>>0)%(e>>>0)|0}c=H[i>>2]+(d<<2)|0;d=H[c>>2];A:{B:{if(!d){d=i+8|0;H[l>>2]=H[d>>2];H[i+8>>2]=l;H[c>>2]=d;d=H[l>>2];if(!d){break A}d=H[d+4>>2];c=e-1|0;C:{if(!(c&e)){d=c&d;break C}if(d>>>0>>0){break C}d=(d>>>0)%(e>>>0)|0}d=H[i>>2]+(d<<2)|0;break B}H[l>>2]=H[d>>2]}H[d>>2]=l}H[i+12>>2]=H[i+12>>2]+1;d=1}F[g+60|0]=d;H[g+56>>2]=l;d=H[a+40>>2];jk(H[H[a>>2]>>2]+N(d,q)|0,g+28|0,d);m=H[g+8>>2];H[m+(s<<2)>>2]=q;q=q+1|0}d=s+1|0;o=d?o:o+1|0;s=d;c=H[a+80>>2];if(!o&c>>>0>d>>>0){continue}break}if((c|0)!=(q|0)){D:{if(!I[a+84|0]){b=H[a+72>>2];f=H[a+68>>2];if((b|0)==(f|0)){break D}b=b-f>>2;c=b>>>0>1?b:1;h=c&3;d=0;b=0;if(c-1>>>0>=3){o=c&-4;e=0;while(1){k=b<<2;c=k+f|0;H[c>>2]=H[(H[c>>2]<<2)+m>>2];c=f+(k|4)|0;H[c>>2]=H[(H[c>>2]<<2)+m>>2];c=f+(k|8)|0;H[c>>2]=H[(H[c>>2]<<2)+m>>2];c=f+(k|12)|0;H[c>>2]=H[(H[c>>2]<<2)+m>>2];b=b+4|0;e=e+4|0;if((o|0)!=(e|0)){continue}break}}if(!h){break D}while(1){c=f+(b<<2)|0;H[c>>2]=H[(H[c>>2]<<2)+m>>2];b=b+1|0;d=d+1|0;if((h|0)!=(d|0)){continue}break}break D}F[a+84|0]=0;e=a+68|0;b=H[a+68>>2];d=H[a+72>>2]-b>>2;E:{if(d>>>0>>0){tb(e,c-d|0,2176);c=H[a+80>>2];break E}if(c>>>0>=d>>>0){break E}H[a+72>>2]=b+(c<<2)}if(!c){break D}f=H[e>>2];d=0;b=0;if(c-1>>>0>=3){h=c&-4;e=0;while(1){k=b<<2;H[k+f>>2]=H[k+m>>2];o=k|4;H[o+f>>2]=H[m+o>>2];o=k|8;H[o+f>>2]=H[m+o>>2];o=k|12;H[o+f>>2]=H[m+o>>2];b=b+4|0;e=e+4|0;if((h|0)!=(e|0)){continue}break}}e=c&3;if(!e){break D}while(1){c=b<<2;H[c+f>>2]=H[c+m>>2];b=b+1|0;d=d+1|0;if((e|0)!=(d|0)){continue}break}}H[a+80>>2]=q}bl(m)}b=H[g+40>>2];if(b){while(1){a=H[b>>2];bl(b);b=a;if(b){continue}break}}a=H[g+32>>2];H[g+32>>2]=0;if(a){bl(a)}ha=g- -64|0;return q}Ka();X()}function kb(a,b){var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=O(0),q=0,r=0,s=0,t=O(0);g=ha+-64|0;ha=g;H[g+40>>2]=0;H[g+44>>2]=0;H[g+32>>2]=0;H[g+36>>2]=0;H[g+48>>2]=1065353216;d=H[a+80>>2];H[g+16>>2]=0;H[g+8>>2]=0;H[g+12>>2]=0;a:{if(d){if(d>>>0>=1073741824){break a}c=d<<2;m=hl(c);H[g+8>>2]=m;d=c+m|0;H[g+16>>2]=d;lk(m,0,c);H[g+12>>2]=d;while(1){d=H[H[b>>2]>>2];e=H[b+48>>2]+Sl(H[b+40>>2],H[b+44>>2],s,0)|0;d=d+e|0;d=I[d|0]|I[d+1|0]<<8;G[g+24>>1]=d;G[g+30>>1]=d;d=0;n=H[g+36>>2];b:{if(!n){break b}h=H[g+32>>2];k=I[g+25|0]^(I[g+24|0]^318)+239;c=k&n+1023;e=Vl(n);c:{if(e>>>0<=1){break c}c=k;if(c>>>0>>0){break c}c=(k>>>0)%(n>>>0)|0}f=h;h=c;c=H[f+(c<<2)>>2];if(!c){break b}c=H[c>>2];if(!c){break b}d:{if(e>>>0>=2){j=I[g+24|0];f=I[g+25|0];while(1){e=H[c+4>>2];e:{if((e|0)!=(k|0)){if(e>>>0>=n>>>0){e=(e>>>0)%(n>>>0)|0}if((e|0)!=(h|0)){break b}break e}e=I[c+8|0];f:{if((e|0)!=(j|0)){e=(e|0)==(j|0);break f}e=(f|0)==I[c+9|0]}if(e){break d}}c=H[c>>2];if(c){continue}break}break b}j=n-1|0;n=I[g+24|0];f=I[g+25|0];while(1){e=H[c+4>>2];g:{if((e|0)!=(k|0)){if((h|0)!=(e&j)){break b}break g}e=I[c+8|0];if((e|0)!=(n|0)){if((e|0)!=(n|0)){break g}break d}if((f|0)==I[c+9|0]){break d}}c=H[c>>2];if(c){continue}break}break b}d=c}h:{if(d){H[(s<<2)+m>>2]=H[d+12>>2];break h}H[g+4>>2]=q;G[g>>1]=J[g+24>>1];d=0;k=I[g+1|0]^(I[g|0]^318)+239;i:{j:{i=g+32|0;e=H[i+4>>2];if(!e){break j}if(e-1&e){d=k;if(e>>>0<=d>>>0){d=(k>>>0)%(e>>>0)|0}l=H[H[i>>2]+(d<<2)>>2];if(!l){break j}f=I[g|0];h=I[g+1|0];while(1){l=H[l>>2];if(!l){break j}c=H[l+4>>2];if((c|0)!=(k|0)){if(c>>>0>=e>>>0){c=(c>>>0)%(e>>>0)|0}if((c|0)!=(d|0)){break j}}c=I[l+8|0];k:{if((c|0)!=(f|0)){c=(c|0)==(f|0);break k}c=(h|0)==I[l+9|0]}if(!c){continue}break}d=0;break i}d=k&e+1023;l=H[H[i>>2]+(d<<2)>>2];if(!l){break j}f=e-1|0;j=I[g|0];h=I[g+1|0];while(1){l=H[l>>2];if(!l){break j}c=H[l+4>>2];if((c|0)!=(k|0)&(c&f)!=(d|0)){break j}c=I[l+8|0];l:{if((c|0)!=(j|0)){c=(c|0)==(j|0);break l}c=(h|0)==I[l+9|0]}if(!c){continue}break}d=0;break i}l=hl(16);G[l+8>>1]=J[g>>1];c=H[g+4>>2];H[l+4>>2]=k;H[l+12>>2]=c;H[l>>2]=0;p=O(H[i+12>>2]+1>>>0);t=L[i+16>>2];m:{if(p>O(t*O(e>>>0))?0:e){break m}d=2;c=(e-1&e)!=0|e>>>0<3|e<<1;p=O(U(O(p/t)));n:{if(p=O(0)){h=~~p>>>0;break n}h=0}c=c>>>0>h>>>0?c:h;o:{if((c|0)==1){break o}if(!(c&c-1)){d=c;break o}d=Zk(c);e=H[i+4>>2]}p:{if(d>>>0<=e>>>0){if(d>>>0>=e>>>0){break p}h=e>>>0<3;p=O(U(O(O(K[i+12>>2])/L[i+16>>2])));q:{if(p=O(0)){c=~~p>>>0;break q}c=0}r:{s:{if(h){break s}if(Vl(e)>>>0>1){break s}c=c>>>0<2?c:1<<32-Q(c-1|0);break r}c=Zk(c)}d=c>>>0>>0?d:c;if(e>>>0<=d>>>0){break p}}c=0;f=0;j=d;t:{u:{v:{if(d){if(j>>>0>=1073741824){break v}d=hl(j<<2);e=H[i>>2];H[i>>2]=d;if(e){bl(e)}H[i+4>>2]=j;if(j-1>>>0>=3){d=j&-4;e=0;while(1){h=c<<2;H[h+H[i>>2]>>2]=0;H[H[i>>2]+(h|4)>>2]=0;H[H[i>>2]+(h|8)>>2]=0;H[H[i>>2]+(h|12)>>2]=0;c=c+4|0;e=e+4|0;if((d|0)!=(e|0)){continue}break}}d=j&3;if(d){while(1){H[H[i>>2]+(c<<2)>>2]=0;c=c+1|0;f=f+1|0;if((d|0)!=(f|0)){continue}break}}e=H[i+8>>2];if(!e){break t}c=i+8|0;h=H[e+4>>2];d=j-1|0;if(!(d&j)){break u}h=h>>>0>=j>>>0?(h>>>0)%(j>>>0)|0:h;H[H[i>>2]+(h<<2)>>2]=c;d=H[e>>2];if(!d){break t}while(1){f=H[d+4>>2];if(j>>>0<=f>>>0){f=(f>>>0)%(j>>>0)|0}w:{if((f|0)==(h|0)){e=d;break w}c=d;r=f<<2;n=r+H[i>>2]|0;if(!H[n>>2]){H[n>>2]=e;e=d;h=f;break w}while(1){f=c;c=H[c>>2];if(c){m=I[d+8|0];n=I[c+8|0];x:{if((m|0)!=(n|0)){m=(m|0)==(n|0);break x}m=I[d+9|0]==I[c+9|0]}if(m){continue}}break}H[e>>2]=c;H[f>>2]=H[H[r+H[i>>2]>>2]>>2];H[H[r+H[i>>2]>>2]>>2]=d}d=H[e>>2];if(d){continue}break}break t}d=H[i>>2];H[i>>2]=0;if(d){bl(d)}H[i+4>>2]=0;break t}_a();X()}h=d&h;H[H[i>>2]+(h<<2)>>2]=c;d=H[e>>2];if(!d){break t}m=j-1|0;while(1){f=m&H[d+4>>2];y:{if((f|0)==(h|0)){e=d;break y}c=d;r=f<<2;j=r+H[i>>2]|0;if(H[j>>2]){while(1){f=c;c=H[c>>2];if(c){n=I[d+8|0];j=I[c+8|0];z:{if((n|0)!=(j|0)){j=(j|0)==(n|0);break z}j=I[d+9|0]==I[c+9|0]}if(j){continue}}break}H[e>>2]=c;H[f>>2]=H[H[r+H[i>>2]>>2]>>2];H[H[r+H[i>>2]>>2]>>2]=d;break y}H[j>>2]=e;e=d;h=f}d=H[e>>2];if(d){continue}break}}}e=H[i+4>>2];d=e-1|0;if(!(d&e)){d=d&k;break m}if(e>>>0>k>>>0){d=k;break m}d=(k>>>0)%(e>>>0)|0}c=H[i>>2]+(d<<2)|0;d=H[c>>2];A:{B:{if(!d){d=i+8|0;H[l>>2]=H[d>>2];H[i+8>>2]=l;H[c>>2]=d;d=H[l>>2];if(!d){break A}d=H[d+4>>2];c=e-1|0;C:{if(!(c&e)){d=c&d;break C}if(d>>>0>>0){break C}d=(d>>>0)%(e>>>0)|0}d=H[i>>2]+(d<<2)|0;break B}H[l>>2]=H[d>>2]}H[d>>2]=l}H[i+12>>2]=H[i+12>>2]+1;d=1}F[g+60|0]=d;H[g+56>>2]=l;d=H[a+40>>2];jk(H[H[a>>2]>>2]+N(d,q)|0,g+30|0,d);m=H[g+8>>2];H[m+(s<<2)>>2]=q;q=q+1|0}d=s+1|0;o=d?o:o+1|0;s=d;c=H[a+80>>2];if(!o&c>>>0>d>>>0){continue}break}if((c|0)!=(q|0)){D:{if(!I[a+84|0]){b=H[a+72>>2];f=H[a+68>>2];if((b|0)==(f|0)){break D}b=b-f>>2;c=b>>>0>1?b:1;h=c&3;d=0;b=0;if(c-1>>>0>=3){o=c&-4;e=0;while(1){k=b<<2;c=k+f|0;H[c>>2]=H[(H[c>>2]<<2)+m>>2];c=f+(k|4)|0;H[c>>2]=H[(H[c>>2]<<2)+m>>2];c=f+(k|8)|0;H[c>>2]=H[(H[c>>2]<<2)+m>>2];c=f+(k|12)|0;H[c>>2]=H[(H[c>>2]<<2)+m>>2];b=b+4|0;e=e+4|0;if((o|0)!=(e|0)){continue}break}}if(!h){break D}while(1){c=f+(b<<2)|0;H[c>>2]=H[(H[c>>2]<<2)+m>>2];b=b+1|0;d=d+1|0;if((h|0)!=(d|0)){continue}break}break D}F[a+84|0]=0;e=a+68|0;b=H[a+68>>2];d=H[a+72>>2]-b>>2;E:{if(d>>>0>>0){tb(e,c-d|0,2176);c=H[a+80>>2];break E}if(c>>>0>=d>>>0){break E}H[a+72>>2]=b+(c<<2)}if(!c){break D}f=H[e>>2];d=0;b=0;if(c-1>>>0>=3){h=c&-4;e=0;while(1){k=b<<2;H[k+f>>2]=H[k+m>>2];o=k|4;H[o+f>>2]=H[m+o>>2];o=k|8;H[o+f>>2]=H[m+o>>2];o=k|12;H[o+f>>2]=H[m+o>>2];b=b+4|0;e=e+4|0;if((h|0)!=(e|0)){continue}break}}e=c&3;if(!e){break D}while(1){c=b<<2;H[c+f>>2]=H[c+m>>2];b=b+1|0;d=d+1|0;if((e|0)!=(d|0)){continue}break}}H[a+80>>2]=q}bl(m)}b=H[g+40>>2];if(b){while(1){a=H[b>>2];bl(b);b=a;if(b){continue}break}}a=H[g+32>>2];H[g+32>>2]=0;if(a){bl(a)}ha=g- -64|0;return q}Ka();X()}function Tb(a,b,c,d,e){var f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,I=0,J=0,L=0,M=0,O=0;o=ha-32|0;ha=o;H[a>>2]=H[d>>2];d=H[c>>2]-H[b>>2]|0;H[a+4>>2]=d;k=H[e+20>>2];if(!H[e+16>>2]&(k|0)<=0|(k|0)<0){d=a+4|0;Da(e,H[e+4>>2],a,d);k=H[e+20>>2];if(!H[e+16>>2]&(k|0)<=0|(k|0)<0){Da(e,H[e+4>>2],d,a+8|0)}d=H[d>>2]}if(d){B=a+12|0;_b(B);C=a+1068|0;d=C;H[d+12>>2]=0;H[d+16>>2]=0;H[d+4>>2]=H[d>>2];D=a+1088|0;d=D;H[d+12>>2]=0;H[d+16>>2]=0;H[d+4>>2]=H[d>>2];E=a+1108|0;d=E;H[d+12>>2]=0;H[d+16>>2]=0;H[d+4>>2]=H[d>>2];H[o+24>>2]=H[b+8>>2];d=H[b+4>>2];H[o+16>>2]=H[b>>2];H[o+20>>2]=d;H[o+8>>2]=H[c+8>>2];b=H[c+4>>2];H[o>>2]=H[c>>2];H[o+4>>2]=b;b=0;f=ha-32|0;ha=f;d=a;h=H[a+8>>2];H[f+16>>2]=0;H[f+8>>2]=0;H[f+12>>2]=0;a:{b:{if(h){if(h>>>0>=1073741824){break b}a=h<<2;b=hl(a);H[f+8>>2]=b;g=a+b|0;H[f+16>>2]=g;lk(b,0,a);H[f+12>>2]=g}a=H[d+1164>>2];c=H[a>>2];if(c){H[a+4>>2]=c;bl(c);H[a+8>>2]=0;H[a>>2]=0;H[a+4>>2]=0;h=H[d+8>>2];g=H[f+12>>2];b=H[f+8>>2]}H[a+4>>2]=g;H[a>>2]=b;H[a+8>>2]=H[f+16>>2];b=0;H[f+16>>2]=0;H[f+8>>2]=0;H[f+12>>2]=0;a=0;c:{if(h){if(h>>>0>=1073741824){break c}c=h<<2;a=hl(c);H[f+8>>2]=a;b=a+c|0;H[f+16>>2]=b;lk(a,0,c);H[f+12>>2]=b}c=H[d+1176>>2];k=H[c>>2];if(k){H[c+4>>2]=k;bl(k);H[c+8>>2]=0;H[c>>2]=0;H[c+4>>2]=0;b=H[f+12>>2];a=H[f+8>>2]}H[c+4>>2]=b;H[c>>2]=a;H[c+8>>2]=H[f+16>>2];t=H[o+20>>2];q=H[o+24>>2];w=H[o+4>>2];x=H[o+8>>2];b=H[o>>2];c=H[o+16>>2];H[f+24>>2]=0;H[f+28>>2]=0;H[f+16>>2]=0;H[f+20>>2]=0;H[f+8>>2]=0;H[f+12>>2]=0;ec(f+8|0);a=H[f+24>>2]+H[f+28>>2]|0;k=(a>>>0)/113|0;a=H[H[f+12>>2]+(k<<2)>>2]+N(a-N(k,113)|0,36)|0;H[a+32>>2]=0;H[a+28>>2]=b-c;H[a+24>>2]=0;H[a+16>>2]=w;H[a+20>>2]=x;H[a+12>>2]=b;H[a+4>>2]=t;H[a+8>>2]=q;H[a>>2]=c;h=H[f+28>>2]+1|0;H[f+28>>2]=h;if(h){J=q&-4;F=q&3;L=d+1068|0;G=d+12|0;M=d+1108|0;O=q-1>>>0<3;while(1){b=H[f+12>>2];l=H[f+24>>2];j=h-1|0;a=l+j|0;c=(a>>>0)/113|0;a=H[b+(c<<2)>>2]+N(a-N(c,113)|0,36)|0;z=H[a+32>>2];g=H[a+24>>2];k=H[a+12>>2];c=H[a>>2];H[f+28>>2]=j;a=H[f+16>>2];if((((a|0)==(b|0)?0:N(a-b>>2,113)-1|0)-(h+l|0)|0)+1>>>0>=226){bl(H[a-4>>2]);H[f+16>>2]=H[f+16>>2]-4}b=H[d>>2];h=(g|0)==(H[d+8>>2]-1|0)?0:g+1|0;l=h<<2;y=N(z,12);j=y+H[d+1176>>2]|0;g=H[l+H[j>>2]>>2];d:{e:{if((b|0)==(g|0)){break e}f:{g:{s=k-c|0;if(s>>>0<=2){g=H[d+1152>>2];H[g>>2]=h;b=1;a=H[d+8>>2];if(a>>>0>1){break g}break f}j=H[d+1164>>2];a=j+y|0;i=j;j=y+12|0;Sa(i+j|0,H[a>>2],H[a+4>>2]);a=l+H[j+H[d+1164>>2]>>2]|0;j=H[a>>2]+(1<>2]=j;a=c;h:{if((k|0)==(a|0)){break h}I=H[t+24>>2];b=c;a=k;if(!q){if(j>>>0>K[l+I>>2]){break h}while(1){a=a-1|0;if((b|0)==(a|0)){a=b;break h}if(j>>>0<=K[(l+H[w+24>>2]|0)+(N(a,x)<<2)>>2]){continue}b=b+1|0;if((b|0)!=(a|0)){continue}break}break h}while(1){p=(N(b,q)<<2)+I|0;if(j>>>0>K[p+l>>2]){b=b+1|0;if((b|0)!=(a|0)){continue}break h}while(1){a=a-1|0;if((b|0)==(a|0)){a=b;break h}n=H[w+24>>2]+(N(a,x)<<2)|0;if(j>>>0<=K[n+l>>2]){continue}break}A=0;g=0;u=0;if(!O){while(1){m=g<<2;i=m+p|0;r=H[i>>2];v=i;i=m+n|0;H[v>>2]=H[i>>2];H[i>>2]=r;i=m|4;r=i+p|0;v=H[r>>2];i=i+n|0;H[r>>2]=H[i>>2];H[i>>2]=v;i=m|8;r=i+p|0;v=H[r>>2];i=i+n|0;H[r>>2]=H[i>>2];H[i>>2]=v;m=m|12;i=m+p|0;r=H[i>>2];m=m+n|0;H[i>>2]=H[m>>2];H[m>>2]=r;g=g+4|0;u=u+4|0;if((J|0)!=(u|0)){continue}break}}if(F){while(1){m=g<<2;u=m+p|0;i=H[u>>2];m=m+n|0;H[u>>2]=H[m>>2];H[m>>2]=i;g=g+1|0;A=A+1|0;if((A|0)!=(F|0)){continue}break}}b=b+1|0;if((b|0)!=(a|0)){continue}break}}j=a-c|0;p=k-a|0;if((j|0)!=(p|0)){fc(M,j>>>0

>>0)}m=z+1|0;b=Q(s);n=b^31;g=s>>>1|0;i:{if(j>>>0

>>0){if(!n){break i}s=g-j|0;b=1<<30-b;g=0;while(1){Ce((g<<5)+G|0,(b&s)!=0);b=b>>>1|0;g=g+1|0;if((n|0)!=(g|0)){continue}break}break i}if(!n){break i}s=g-p|0;b=1<<30-b;g=0;while(1){Ce((g<<5)+G|0,(b&s)!=0);b=b>>>1|0;g=g+1|0;if((n|0)!=(g|0)){continue}break}}i=l;b=H[d+1176>>2];g=b+y|0;l=H[g>>2];n=i+l|0;H[n>>2]=H[n>>2]+1;Sa(b+N(m,12)|0,l,H[g+4>>2]);if((a|0)!=(c|0)){g=H[f+28>>2]+H[f+24>>2]|0;l=H[f+16>>2];b=H[f+12>>2];if((g|0)==(((b|0)==(l|0)?0:N(l-b>>2,113)-1|0)|0)){ec(f+8|0);g=H[f+24>>2]+H[f+28>>2]|0;i=H[f+12>>2]}else{i=b}b=(g>>>0)/113|0;b=H[i+(b<<2)>>2]+N(g-N(b,113)|0,36)|0;H[b+32>>2]=z;H[b+28>>2]=j;H[b+24>>2]=h;H[b+16>>2]=t;H[b+12>>2]=a;H[b+4>>2]=t;H[b+8>>2]=q;H[b>>2]=c;H[b+20>>2]=q;H[f+28>>2]=H[f+28>>2]+1}if((a|0)==(k|0)){break e}g=H[f+28>>2]+H[f+24>>2]|0;l=H[f+16>>2];b=H[f+12>>2];if((g|0)==(((b|0)==(l|0)?0:N(l-b>>2,113)-1|0)|0)){ec(f+8|0);g=H[f+24>>2]+H[f+28>>2]|0;j=H[f+12>>2]}else{j=b}b=(g>>>0)/113|0;b=H[j+(b<<2)>>2]+N(g-N(b,113)|0,36)|0;H[b+32>>2]=m;H[b+28>>2]=p;H[b+24>>2]=h;H[b+16>>2]=w;H[b+20>>2]=x;H[b+12>>2]=k;H[b+4>>2]=t;H[b>>2]=a;H[b+8>>2]=q;h=H[f+28>>2]+1|0;H[f+28>>2]=h;break d}while(1){h=(a-1|0)==(h|0)?0:h+1|0;H[g+(b<<2)>>2]=h;a=H[d+8>>2];b=b+1|0;if(a>>>0>b>>>0){continue}break}}g=0;b=a;if((c|0)==(k|0)){break e}while(1){j:{if(!b){b=0;break j}l=H[t+24>>2]+(N(H[t+4>>2],c+g|0)<<2)|0;h=0;while(1){b=H[d>>2];p=H[H[d+1152>>2]+(h<<2)>>2]<<2;n=H[p+H[j>>2]>>2];if((b|0)!=(n|0)){gc(L,b-n|0,H[l+p>>2]);a=H[d+8>>2]}b=a;h=h+1|0;if(h>>>0>>0){continue}break}}g=g+1|0;if((s|0)!=(g|0)){continue}break}}h=H[f+28>>2]}if(h){continue}break}H[o+16>>2]=c;H[o>>2]=k}H[f+28>>2]=0;c=H[f+16>>2];h=H[f+12>>2];a=c-h|0;if(a>>>0>=9){while(1){bl(H[h>>2]);h=H[f+12>>2]+4|0;H[f+12>>2]=h;c=H[f+16>>2];a=c-h|0;if(a>>>0>8){continue}break}}b=56;k:{switch((a>>>2|0)-1|0){case 1:b=113;case 0:H[f+24>>2]=b;break;default:break k}}l:{if((c|0)==(h|0)){break l}while(1){bl(H[h>>2]);h=h+4|0;if((h|0)!=(c|0)){continue}break}a=H[f+16>>2];b=H[f+12>>2];if((a|0)==(b|0)){break l}H[f+16>>2]=a+((b-a|0)+3&-4)}a=H[f+8>>2];if(a){bl(a)}ha=f+32|0;break a}Ka();X()}Ka();X()}$b(B,e);ye(C,e);ye(D,e);ye(E,e)}ha=o+32|0;return 1}function Jk(a,b,c,d,e,f){a=a|0;b=+b;c=c|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,w=0,x=0,y=0,z=0;l=ha-560|0;ha=l;H[l+44>>2]=0;A(+b);g=v(1)|0;v(0)|0;a:{if((g|0)<0){s=1;w=1173;b=-b;A(+b);g=v(1)|0;v(0)|0;break a}if(e&2048){s=1;w=1176;break a}s=e&1;w=s?1179:1174;z=!s}b:{if((g&2146435072)==2146435072){d=s+3|0;Ik(a,32,c,d,e&-65537);Ek(a,w,s);f=f&32;Ek(a,b!=b?f?1434:1643:f?1506:1647,3);Ik(a,32,c,d,e^8192);i=(c|0)<(d|0)?d:c;break b}u=l+16|0;c:{d:{e:{b=Ck(b,l+44|0);b=b+b;if(b!=0){g=H[l+44>>2];H[l+44>>2]=g-1;r=f|32;if((r|0)!=97){break e}break c}r=f|32;if((r|0)==97){break c}k=H[l+44>>2];m=(d|0)<0?6:d;break d}k=g-29|0;H[l+44>>2]=k;b=b*268435456;m=(d|0)<0?6:d}p=(l+48|0)+((k|0)<0?0:288)|0;h=p;while(1){if(b<4294967296&b>=0){d=~~b>>>0}else{d=0}H[h>>2]=d;h=h+4|0;b=(b-+(d>>>0))*1e9;if(b!=0){continue}break}f:{if((k|0)<=0){d=k;g=h;j=p;break f}j=p;d=k;while(1){d=(d|0)<29?d:29;g=h-4|0;g:{if(j>>>0>g>>>0){break g}i=0;while(1){o=H[g>>2];n=d&31;x=i;if((d&63)>>>0>=32){i=o<>>32-n;o=o<>>0>>0?i+1|0:i;i=Ul(n,i,1e9,0);o=Sl(i,ka,1e9,0);H[g>>2]=n-o;g=g-4|0;if(j>>>0<=g>>>0){continue}break}if(!i){break g}j=j-4|0;H[j>>2]=i}while(1){g=h;if(j>>>0>>0){h=g-4|0;if(!H[h>>2]){continue}}break}d=H[l+44>>2]-d|0;H[l+44>>2]=d;h=g;if((d|0)>0){continue}break}}if((d|0)<0){t=((m+25>>>0)/9|0)+1|0;n=(r|0)==102;while(1){d=0-d|0;i=(d|0)<9?d:9;h:{if(g>>>0<=j>>>0){h=H[j>>2];break h}o=1e9>>>i|0;y=-1<>2];H[h>>2]=x+(d>>>i|0);d=N(o,d&y);h=h+4|0;if(h>>>0>>0){continue}break}h=H[j>>2];if(!d){break h}H[g>>2]=d;g=g+4|0}d=i+H[l+44>>2]|0;H[l+44>>2]=d;j=(!h<<2)+j|0;h=n?p:j;g=g-h>>2>(t|0)?h+(t<<2)|0:g;if((d|0)<0){continue}break}}d=0;i:{if(g>>>0<=j>>>0){break i}d=N(p-j>>2,9);h=10;i=H[j>>2];if(i>>>0<10){break i}while(1){d=d+1|0;h=N(h,10);if(i>>>0>=h>>>0){continue}break}}h=(m-((r|0)==102?0:d)|0)-((r|0)==103&(m|0)!=0)|0;if((h|0)<(N(g-p>>2,9)-9|0)){i=h+9216|0;n=(i|0)/9|0;k=((((k|0)<0?4:292)+l|0)+(n<<2)|0)-4048|0;h=10;i=i-N(n,9)|0;if((i|0)<=7){while(1){h=N(h,10);i=i+1|0;if((i|0)!=8){continue}break}}n=H[k>>2];t=(n>>>0)/(h>>>0)|0;i=n-N(h,t)|0;o=k+4|0;j:{if(!i&(o|0)==(g|0)){break j}k:{if(!(t&1)){b=9007199254740992;if(!(F[k-4|0]&1)|((h|0)!=1e9|j>>>0>=k>>>0)){break k}}b=9007199254740994}q=(g|0)==(o|0)?1:1.5;o=h>>>1|0;q=i>>>0>>0?.5:(o|0)==(i|0)?q:1.5;if(!(I[w|0]!=45|z)){q=-q;b=-b}i=n-i|0;H[k>>2]=i;if(b+q==b){break j}d=h+i|0;H[k>>2]=d;if(d>>>0>=1e9){while(1){H[k>>2]=0;k=k-4|0;if(k>>>0>>0){j=j-4|0;H[j>>2]=0}d=H[k>>2]+1|0;H[k>>2]=d;if(d>>>0>999999999){continue}break}}d=N(p-j>>2,9);h=10;i=H[j>>2];if(i>>>0<10){break j}while(1){d=d+1|0;h=N(h,10);if(i>>>0>=h>>>0){continue}break}}h=k+4|0;g=g>>>0>h>>>0?h:g}while(1){h=g;i=g>>>0<=j>>>0;if(!i){g=h-4|0;if(!H[g>>2]){continue}}break}l:{if((r|0)!=103){k=e&8;break l}g=m?m:1;k=(g|0)>(d|0)&(d|0)>-5;m=(k?d^-1:-1)+g|0;f=(k?-1:-2)+f|0;k=e&8;if(k){break l}g=-9;m:{if(i){break m}n=H[h-4>>2];if(!n){break m}i=10;g=0;if((n>>>0)%10|0){break m}while(1){k=g;g=g+1|0;i=N(i,10);if(!((n>>>0)%(i>>>0)|0)){continue}break}g=k^-1}i=N(h-p>>2,9);if((f&-33)==70){k=0;g=(g+i|0)-9|0;g=(g|0)>0?g:0;m=(g|0)>(m|0)?m:g;break l}k=0;g=((d+i|0)+g|0)-9|0;g=(g|0)>0?g:0;m=(g|0)>(m|0)?m:g}i=-1;r=k|m;if(((r?2147483645:2147483646)|0)<(m|0)){break b}n=(((r|0)!=0)+m|0)+1|0;o=f&-33;n:{if((o|0)==70){if((2147483647-n|0)<(d|0)){break b}g=(d|0)>0?d:0;break n}g=d>>31;g=Hk((g^d)-g|0,0,u);if((u-g|0)<=1){while(1){g=g-1|0;F[g|0]=48;if((u-g|0)<2){continue}break}}t=g-2|0;F[t|0]=f;F[g-1|0]=(d|0)<0?45:43;g=u-t|0;if((g|0)>(2147483647-n|0)){break b}}d=g+n|0;if((d|0)>(s^2147483647)){break b}f=d+s|0;Ik(a,32,c,f,e);Ek(a,w,s);Ik(a,48,c,f,e^65536);o:{p:{q:{if((o|0)==70){g=l+16|0;d=g|8;k=g|9;i=j>>>0>p>>>0?p:j;j=i;while(1){g=Hk(H[j>>2],0,k);r:{if((i|0)!=(j|0)){if(l+16>>>0>=g>>>0){break r}while(1){g=g-1|0;F[g|0]=48;if(l+16>>>0>>0){continue}break}break r}if((g|0)!=(k|0)){break r}F[l+24|0]=48;g=d}Ek(a,g,k-g|0);j=j+4|0;if(p>>>0>=j>>>0){continue}break}if(r){Ek(a,1981,1)}if((m|0)<=0|h>>>0<=j>>>0){break q}while(1){g=Hk(H[j>>2],0,k);if(g>>>0>l+16>>>0){while(1){g=g-1|0;F[g|0]=48;if(l+16>>>0>>0){continue}break}}Ek(a,g,(m|0)<9?m:9);g=m-9|0;j=j+4|0;if(h>>>0<=j>>>0){break p}d=(m|0)>9;m=g;if(d){continue}break}break p}s:{if((m|0)<0){break s}i=h>>>0>j>>>0?h:j+4|0;g=l+16|0;d=g|8;p=g|9;h=j;while(1){g=Hk(H[h>>2],0,p);if((p|0)==(g|0)){F[l+24|0]=48;g=d}t:{if((h|0)!=(j|0)){if(l+16>>>0>=g>>>0){break t}while(1){g=g-1|0;F[g|0]=48;if(l+16>>>0>>0){continue}break}break t}Ek(a,g,1);g=g+1|0;if(!(k|m)){break t}Ek(a,1981,1)}x=g;g=p-g|0;Ek(a,x,(g|0)>(m|0)?m:g);m=m-g|0;h=h+4|0;if(i>>>0<=h>>>0){break s}if((m|0)>=0){continue}break}}Ik(a,48,m+18|0,18,0);Ek(a,t,u-t|0);break o}g=m}Ik(a,48,g+9|0,9,0)}Ik(a,32,c,f,e^8192);i=(c|0)<(f|0)?f:c;break b}m=(f<<26>>31&9)+w|0;u:{if(d>>>0>11){break u}g=12-d|0;q=16;while(1){q=q*16;g=g-1|0;if(g){continue}break}if(I[m|0]==45){b=-(q+(-b-q));break u}b=b+q-q}h=H[l+44>>2];g=h>>31;g=Hk((g^h)-g|0,0,u);if((u|0)==(g|0)){F[l+15|0]=48;g=l+15|0}k=s|2;j=f&32;h=H[l+44>>2];p=g-2|0;F[p|0]=f+15;F[g-1|0]=(h|0)<0?45:43;i=e&8;h=l+16|0;while(1){f=h;if(P(b)<2147483648){g=~~b}else{g=-2147483648}F[h|0]=j|I[g+17776|0];b=(b-+(g|0))*16;h=f+1|0;if(!(!((d|0)>0|i)&b==0|(h-(l+16|0)|0)!=1)){F[f+1|0]=46;h=f+2|0}if(b!=0){continue}break}i=-1;n=u-p|0;f=n+k|0;if((2147483645-f|0)<(d|0)){break b}v:{w:{if(!d){break w}j=h-(l+16|0)|0;if((j-2|0)>=(d|0)){break w}g=d+2|0;break v}j=h-(l+16|0)|0;g=j}d=g+f|0;Ik(a,32,c,d,e);Ek(a,m,k);Ik(a,48,c,d,e^65536);Ek(a,l+16|0,j);Ik(a,48,g-j|0,0,0);Ek(a,p,n);Ik(a,32,c,d,e^8192);i=(c|0)<(d|0)?d:c}ha=l+560|0;return i|0}function Dk(a,b,c,d){var e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0;l=1510;g=ha-80|0;ha=g;H[g+76>>2]=1510;x=g+55|0;r=g+56|0;a:{b:{c:{d:{e:while(1){i=l;if((2147483647-n|0)<(e|0)){break d}n=e+n|0;f:{g:{h:{e=i;f=I[e|0];if(f){while(1){i:{f=f&255;j:{if(!f){l=e;break j}if((f|0)!=37){break i}f=e;while(1){if(I[f+1|0]!=37){l=f;break j}e=e+1|0;h=I[f+2|0];l=f+2|0;f=l;if((h|0)==37){continue}break}}e=e-i|0;w=2147483647-n|0;if((e|0)>(w|0)){break d}if(a){Ek(a,i,e)}if(e){continue e}H[g+76>>2]=l;e=l+1|0;o=-1;if(!(I[l+2|0]!=36|F[l+1|0]-48>>>0>=10)){o=F[l+1|0]-48|0;s=1;e=l+3|0}H[g+76>>2]=e;k=0;f=F[e|0];l=f-32|0;k:{if(l>>>0>31){h=e;break k}h=e;l=1<>2]=h;k=k|l;f=F[e+1|0];l=f-32|0;if(l>>>0>=32){break k}e=h;l=1<>>0>=10)){H[((F[h+1|0]<<2)+d|0)-192>>2]=10;f=h+3|0;s=1;e=H[((F[h+1|0]<<3)+c|0)-384>>2];break m}if(s){break h}f=h+1|0;if(!a){H[g+76>>2]=f;s=0;p=0;break l}e=H[b>>2];H[b>>2]=e+4;s=0;e=H[e>>2]}H[g+76>>2]=f;p=e;if((e|0)>=0){break l}p=0-p|0;k=k|8192;break l}p=Fk(g+76|0);if((p|0)<0){break d}f=H[g+76>>2]}e=0;j=-1;n:{if(I[f|0]!=46){l=f;u=0;break n}if(I[f+1|0]==42){o:{if(!(I[f+3|0]!=36|F[f+2|0]-48>>>0>=10)){H[((F[f+2|0]<<2)+d|0)-192>>2]=10;l=f+4|0;j=H[((F[f+2|0]<<3)+c|0)-384>>2];break o}if(s){break h}l=f+2|0;j=0;if(!a){break o}f=H[b>>2];H[b>>2]=f+4;j=H[f>>2]}H[g+76>>2]=l;u=(j^-1)>>>31|0;break n}H[g+76>>2]=f+1;j=Fk(g+76|0);l=H[g+76>>2];u=1}p:{while(1){m=e;q=l;e=F[l|0];if(e-123>>>0<4294967238){break p}l=q+1|0;e=I[(e+N(m,58)|0)+17247|0];if(e-1>>>0<8){continue}break}H[g+76>>2]=l;h=28;q:{r:{if((e|0)!=27){if(!e){break c}if((o|0)>=0){H[(o<<2)+d>>2]=e;f=(o<<3)+c|0;e=H[f+4>>2];H[g+64>>2]=H[f>>2];H[g+68>>2]=e;break r}if(!a){break f}Gk(g- -64|0,e,b);break q}if((o|0)>=0){break c}}e=0;if(!a){continue e}}f=k&-65537;k=k&8192?f:k;o=0;t=1163;h=r;s:{t:{u:{v:{w:{x:{y:{z:{A:{B:{C:{D:{E:{F:{G:{H:{e=F[q|0];e=m?(e&15)==3?e&-33:e:e;switch(e-88|0){case 11:break s;case 9:case 13:case 14:case 15:break t;case 27:break y;case 12:case 17:break B;case 23:break C;case 0:case 32:break D;case 24:break E;case 22:break F;case 29:break G;case 1:case 2:case 3:case 4:case 5:case 6:case 7:case 8:case 10:case 16:case 18:case 19:case 20:case 21:case 25:case 26:case 28:case 30:case 31:break g;default:break H}}I:{switch(e-65|0){case 0:case 4:case 5:case 6:break t;case 2:break w;case 1:case 3:break g;default:break I}}if((e|0)==83){break x}break g}m=H[g+64>>2];f=H[g+68>>2];t=1163;break A}e=0;J:{switch(m&255){case 0:H[H[g+64>>2]>>2]=n;continue e;case 1:H[H[g+64>>2]>>2]=n;continue e;case 2:i=H[g+64>>2];H[i>>2]=n;H[i+4>>2]=n>>31;continue e;case 3:G[H[g+64>>2]>>1]=n;continue e;case 4:F[H[g+64>>2]]=n;continue e;case 6:H[H[g+64>>2]>>2]=n;continue e;case 7:break J;default:continue e}}i=H[g+64>>2];H[i>>2]=n;H[i+4>>2]=n>>31;continue e}j=j>>>0>8?j:8;k=k|8;e=120}i=r;y=e&32;m=H[g+64>>2];f=H[g+68>>2];if(m|f){while(1){i=i-1|0;F[i|0]=y|I[(m&15)+17776|0];v=!f&m>>>0>15|(f|0)!=0;q=f;f=f>>>4|0;m=(q&15)<<28|m>>>4;if(v){continue}break}}if(!(H[g+64>>2]|H[g+68>>2])|!(k&8)){break z}t=(e>>>4|0)+1163|0;o=2;break z}e=r;i=H[g+68>>2];f=i;m=H[g+64>>2];if(f|m){while(1){e=e-1|0;F[e|0]=m&7|48;v=!f&m>>>0>7|(f|0)!=0;i=f;f=f>>>3|0;m=(i&7)<<29|m>>>3;if(v){continue}break}}i=e;if(!(k&8)){break z}e=r-i|0;j=(e|0)<(j|0)?j:e+1|0;break z}e=H[g+68>>2];f=e;m=H[g+64>>2];if((e|0)<0){e=m;f=0-(f+((e|0)!=0)|0)|0;m=0-e|0;H[g+64>>2]=m;H[g+68>>2]=f;o=1;t=1163;break A}if(k&2048){o=1;t=1164;break A}o=k&1;t=o?1165:1163}i=Hk(m,f,r)}if((j|0)<0?u:0){break d}k=u?k&-65537:k;e=H[g+64>>2];f=H[g+68>>2];if(!(j|(e|f)!=0)){i=r;h=i;j=0;break g}e=!(e|f)+(r-i|0)|0;j=(e|0)<(j|0)?j:e;break g}q=j>>>0<2147483647?j:2147483647;h=q;k=(h|0)!=0;e=H[g+64>>2];i=e?e:1983;e=i;K:{L:{M:{N:{if(!(e&3)|!h){break N}while(1){if(!I[e|0]){break M}h=h-1|0;k=(h|0)!=0;e=e+1|0;if(!(e&3)){break N}if(h){continue}break}}if(!k){break L}}O:{if(!(!I[e|0]|h>>>0<4)){while(1){k=H[e>>2];if((k^-1)&k-16843009&-2139062144){break O}e=e+4|0;h=h-4|0;if(h>>>0>3){continue}break}}if(!h){break L}}while(1){if(!I[e|0]){break K}e=e+1|0;h=h-1|0;if(h){continue}break}}e=0}e=e?e-i|0:q;h=e+i|0;if((j|0)>=0){k=f;j=e;break g}k=f;j=e;if(I[h|0]){break d}break g}if(j){f=H[g+64>>2];break v}e=0;Ik(a,32,p,0,k);break u}H[g+12>>2]=0;H[g+8>>2]=H[g+64>>2];f=g+8|0;H[g+64>>2]=f;j=-1}e=0;P:{while(1){i=H[f>>2];if(!i){break P}h=Lk(g+4|0,i);i=(h|0)<0;if(!(i|h>>>0>j-e>>>0)){f=f+4|0;e=e+h|0;if(j>>>0>e>>>0){continue}break P}break}if(i){break b}}h=61;if((e|0)<0){break c}Ik(a,32,p,e,k);if(!e){e=0;break u}h=0;f=H[g+64>>2];while(1){i=H[f>>2];if(!i){break u}i=Lk(g+4|0,i);h=i+h|0;if(h>>>0>e>>>0){break u}Ek(a,g+4|0,i);f=f+4|0;if(e>>>0>h>>>0){continue}break}}Ik(a,32,p,e,k^8192);e=(e|0)<(p|0)?p:e;continue e}if((j|0)<0?u:0){break d}h=61;e=la[372](a,M[g+64>>3],p,j,k,e)|0;if((e|0)>=0){continue e}break c}F[g+55|0]=H[g+64>>2];j=1;i=x;k=f;break g}H[g+76>>2]=q;break h}f=I[e+1|0];e=e+1|0;continue}}if(a){break a}if(!s){break f}e=1;while(1){a=H[(e<<2)+d>>2];if(a){Gk((e<<3)+c|0,a,b);n=1;e=e+1|0;if((e|0)!=10){continue}break a}break}n=1;if(e>>>0>=10){break a}while(1){if(H[(e<<2)+d>>2]){break h}e=e+1|0;if((e|0)!=10){continue}break}break a}h=28;break c}q=h-i|0;f=(j|0)>(q|0)?j:q;if((f|0)>(2147483647-o|0)){break d}h=61;j=f+o|0;e=(j|0)<(p|0)?p:j;if((w|0)<(e|0)){break c}Ik(a,32,e,j,k);Ek(a,t,o);Ik(a,48,e,j,k^65536);Ik(a,48,f,q,0);Ek(a,i,q);Ik(a,32,e,j,k^8192);continue}break}n=0;break a}h=61}H[4837]=h}n=-1}ha=g+80|0;return n}function Yb(a,b,c,d,e){var f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,I=0,J=0,L=0,M=0,O=0;n=ha-32|0;ha=n;H[a>>2]=H[d>>2];d=H[c>>2]-H[b>>2]|0;H[a+4>>2]=d;k=H[e+20>>2];if(!H[e+16>>2]&(k|0)<=0|(k|0)<0){d=a+4|0;Da(e,H[e+4>>2],a,d);k=H[e+20>>2];if(!H[e+16>>2]&(k|0)<=0|(k|0)<0){Da(e,H[e+4>>2],d,a+8|0)}d=H[d>>2]}if(d){B=a+12|0;d=B;H[d+12>>2]=0;H[d+16>>2]=0;H[d+4>>2]=H[d>>2];C=a+32|0;d=C;H[d+12>>2]=0;H[d+16>>2]=0;H[d+4>>2]=H[d>>2];D=a+52|0;d=D;H[d+12>>2]=0;H[d+16>>2]=0;H[d+4>>2]=H[d>>2];E=a+72|0;d=E;H[d+12>>2]=0;H[d+16>>2]=0;H[d+4>>2]=H[d>>2];H[n+24>>2]=H[b+8>>2];d=H[b+4>>2];H[n+16>>2]=H[b>>2];H[n+20>>2]=d;H[n+8>>2]=H[c+8>>2];b=H[c+4>>2];H[n>>2]=H[c>>2];H[n+4>>2]=b;b=0;f=ha-32|0;ha=f;d=a;g=H[a+8>>2];H[f+16>>2]=0;H[f+8>>2]=0;H[f+12>>2]=0;a:{b:{if(g){if(g>>>0>=1073741824){break b}a=g<<2;b=hl(a);H[f+8>>2]=b;h=a+b|0;H[f+16>>2]=h;lk(b,0,a);H[f+12>>2]=h}a=H[d+128>>2];c=H[a>>2];if(c){H[a+4>>2]=c;bl(c);H[a+8>>2]=0;H[a>>2]=0;H[a+4>>2]=0;g=H[d+8>>2];h=H[f+12>>2];b=H[f+8>>2]}H[a+4>>2]=h;H[a>>2]=b;H[a+8>>2]=H[f+16>>2];b=0;H[f+16>>2]=0;H[f+8>>2]=0;H[f+12>>2]=0;a=0;c:{if(g){if(g>>>0>=1073741824){break c}c=g<<2;a=hl(c);H[f+8>>2]=a;b=a+c|0;H[f+16>>2]=b;lk(a,0,c);H[f+12>>2]=b}c=H[d+140>>2];k=H[c>>2];if(k){H[c+4>>2]=k;bl(k);H[c+8>>2]=0;H[c>>2]=0;H[c+4>>2]=0;b=H[f+12>>2];a=H[f+8>>2]}H[c+4>>2]=b;H[c>>2]=a;H[c+8>>2]=H[f+16>>2];s=H[n+20>>2];q=H[n+24>>2];v=H[n+4>>2];w=H[n+8>>2];b=H[n>>2];c=H[n+16>>2];H[f+24>>2]=0;H[f+28>>2]=0;H[f+16>>2]=0;H[f+20>>2]=0;H[f+8>>2]=0;H[f+12>>2]=0;ec(f+8|0);a=H[f+24>>2]+H[f+28>>2]|0;k=(a>>>0)/113|0;a=H[H[f+12>>2]+(k<<2)>>2]+N(a-N(k,113)|0,36)|0;H[a+32>>2]=0;H[a+28>>2]=b-c;H[a+24>>2]=0;H[a+16>>2]=v;H[a+20>>2]=w;H[a+12>>2]=b;H[a+4>>2]=s;H[a+8>>2]=q;H[a>>2]=c;g=H[f+28>>2]+1|0;H[f+28>>2]=g;if(g){I=q&-4;F=q&3;J=d+32|0;L=d+12|0;M=d+72|0;O=q-1>>>0<3;while(1){b=H[f+12>>2];l=H[f+24>>2];j=g-1|0;a=l+j|0;c=(a>>>0)/113|0;a=H[b+(c<<2)>>2]+N(a-N(c,113)|0,36)|0;z=H[a+32>>2];h=H[a+24>>2];k=H[a+12>>2];c=H[a>>2];H[f+28>>2]=j;a=H[f+16>>2];if((((a|0)==(b|0)?0:N(a-b>>2,113)-1|0)-(g+l|0)|0)+1>>>0>=226){bl(H[a-4>>2]);H[f+16>>2]=H[f+16>>2]-4}b=H[d>>2];g=(h|0)==(H[d+8>>2]-1|0)?0:h+1|0;l=g<<2;x=N(z,12);j=x+H[d+140>>2]|0;h=H[l+H[j>>2]>>2];d:{e:{if((b|0)==(h|0)){break e}f:{g:{y=k-c|0;if(y>>>0<=2){h=H[d+116>>2];H[h>>2]=g;b=1;a=H[d+8>>2];if(a>>>0>1){break g}break f}j=H[d+128>>2];a=j+x|0;i=j;j=x+12|0;Sa(i+j|0,H[a>>2],H[a+4>>2]);a=l+H[j+H[d+128>>2]>>2]|0;j=H[a>>2]+(1<>2]=j;a=c;h:{if((k|0)==(a|0)){break h}G=H[s+24>>2];b=c;a=k;if(!q){if(j>>>0>K[l+G>>2]){break h}while(1){a=a-1|0;if((b|0)==(a|0)){a=b;break h}if(j>>>0<=K[(l+H[v+24>>2]|0)+(N(a,w)<<2)>>2]){continue}b=b+1|0;if((b|0)!=(a|0)){continue}break}break h}while(1){o=(N(b,q)<<2)+G|0;if(j>>>0>K[o+l>>2]){b=b+1|0;if((b|0)!=(a|0)){continue}break h}while(1){a=a-1|0;if((b|0)==(a|0)){a=b;break h}p=H[v+24>>2]+(N(a,w)<<2)|0;if(j>>>0<=K[p+l>>2]){continue}break}A=0;h=0;t=0;if(!O){while(1){m=h<<2;i=m+o|0;r=H[i>>2];u=i;i=m+p|0;H[u>>2]=H[i>>2];H[i>>2]=r;i=m|4;r=i+o|0;u=H[r>>2];i=i+p|0;H[r>>2]=H[i>>2];H[i>>2]=u;i=m|8;r=i+o|0;u=H[r>>2];i=i+p|0;H[r>>2]=H[i>>2];H[i>>2]=u;m=m|12;i=m+o|0;r=H[i>>2];m=m+p|0;H[i>>2]=H[m>>2];H[m>>2]=r;h=h+4|0;t=t+4|0;if((I|0)!=(t|0)){continue}break}}if(F){while(1){m=h<<2;t=m+o|0;i=H[t>>2];m=m+p|0;H[t>>2]=H[m>>2];H[m>>2]=i;h=h+1|0;A=A+1|0;if((A|0)!=(F|0)){continue}break}}b=b+1|0;if((b|0)!=(a|0)){continue}break}}j=a-c|0;o=k-a|0;if((j|0)!=(o|0)){fc(M,j>>>0>>0)}gc(L,Q(y)^31,(y>>>1|0)-(j>>>0>>0?j:o)|0);i=l;b=H[d+140>>2];h=b+x|0;l=H[h>>2];p=i+l|0;H[p>>2]=H[p>>2]+1;p=z+1|0;Sa(b+N(p,12)|0,l,H[h+4>>2]);if((a|0)!=(c|0)){b=H[f+28>>2]+H[f+24>>2]|0;l=H[f+16>>2];h=H[f+12>>2];if((b|0)==(((h|0)==(l|0)?0:N(l-h>>2,113)-1|0)|0)){ec(f+8|0);h=H[f+12>>2];b=H[f+24>>2]+H[f+28>>2]|0}i=h;h=(b>>>0)/113|0;b=H[i+(h<<2)>>2]+N(b-N(h,113)|0,36)|0;H[b+32>>2]=z;H[b+28>>2]=j;H[b+24>>2]=g;H[b+16>>2]=s;H[b+12>>2]=a;H[b+4>>2]=s;H[b+8>>2]=q;H[b>>2]=c;H[b+20>>2]=q;H[f+28>>2]=H[f+28>>2]+1}if((a|0)==(k|0)){break e}h=H[f+28>>2]+H[f+24>>2]|0;l=H[f+16>>2];b=H[f+12>>2];if((h|0)==(((b|0)==(l|0)?0:N(l-b>>2,113)-1|0)|0)){ec(f+8|0);h=H[f+24>>2]+H[f+28>>2]|0;j=H[f+12>>2]}else{j=b}b=(h>>>0)/113|0;b=H[j+(b<<2)>>2]+N(h-N(b,113)|0,36)|0;H[b+32>>2]=p;H[b+28>>2]=o;H[b+24>>2]=g;H[b+16>>2]=v;H[b+20>>2]=w;H[b+12>>2]=k;H[b+4>>2]=s;H[b>>2]=a;H[b+8>>2]=q;g=H[f+28>>2]+1|0;H[f+28>>2]=g;break d}while(1){g=(a-1|0)==(g|0)?0:g+1|0;H[h+(b<<2)>>2]=g;a=H[d+8>>2];b=b+1|0;if(a>>>0>b>>>0){continue}break}}if(!a|(c|0)==(k|0)){break e}h=0;b=1;while(1){g=0;i:{if(!b){b=0;break i}l=H[s+24>>2]+(N(H[s+4>>2],c+h|0)<<2)|0;while(1){b=H[d>>2];o=H[H[d+116>>2]+(g<<2)>>2]<<2;p=H[o+H[j>>2]>>2];if((b|0)!=(p|0)){gc(J,b-p|0,H[l+o>>2]);a=H[d+8>>2]}b=a;g=g+1|0;if(g>>>0>>0){continue}break}}h=h+1|0;if((y|0)!=(h|0)){continue}break}}g=H[f+28>>2]}if(g){continue}break}H[n+16>>2]=c;H[n>>2]=k}H[f+28>>2]=0;c=H[f+16>>2];g=H[f+12>>2];a=c-g|0;if(a>>>0>=9){while(1){bl(H[g>>2]);g=H[f+12>>2]+4|0;H[f+12>>2]=g;c=H[f+16>>2];a=c-g|0;if(a>>>0>8){continue}break}}b=56;j:{switch((a>>>2|0)-1|0){case 1:b=113;case 0:H[f+24>>2]=b;break;default:break j}}k:{if((c|0)==(g|0)){break k}while(1){bl(H[g>>2]);g=g+4|0;if((g|0)!=(c|0)){continue}break}a=H[f+16>>2];b=H[f+12>>2];if((a|0)==(b|0)){break k}H[f+16>>2]=a+((b-a|0)+3&-4)}a=H[f+8>>2];if(a){bl(a)}ha=f+32|0;break a}Ka();X()}Ka();X()}ye(B,e);ye(C,e);ye(D,e);ye(E,e)}ha=n+32|0;return 1}function _h(a,b,c,d){var e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0;h=ha-16|0;ha=h;H[b+44>>2]=d;H[b+48>>2]=c;d=H[b+12>>2];f=H[b+8>>2];if((d|0)!=(f|0)){while(1){d=d-4|0;e=H[d>>2];H[d>>2]=0;if(e){la[H[H[e>>2]+4>>2]](e)}if((d|0)!=(f|0)){continue}break}}H[b+12>>2]=f;H[b+24>>2]=H[b+20>>2];H[b+36>>2]=H[b+32>>2];a:{if(!H[b+4>>2]){b=hl(32);c=I[1670]|I[1671]<<8|(I[1672]<<16|I[1673]<<24);d=I[1666]|I[1667]<<8|(I[1668]<<16|I[1669]<<24);F[b+15|0]=d;F[b+16|0]=d>>>8;F[b+17|0]=d>>>16;F[b+18|0]=d>>>24;F[b+19|0]=c;F[b+20|0]=c>>>8;F[b+21|0]=c>>>16;F[b+22|0]=c>>>24;c=I[1663]|I[1664]<<8|(I[1665]<<16|I[1666]<<24);d=I[1659]|I[1660]<<8|(I[1661]<<16|I[1662]<<24);F[b+8|0]=d;F[b+9|0]=d>>>8;F[b+10|0]=d>>>16;F[b+11|0]=d>>>24;F[b+12|0]=c;F[b+13|0]=c>>>8;F[b+14|0]=c>>>16;F[b+15|0]=c>>>24;c=I[1655]|I[1656]<<8|(I[1657]<<16|I[1658]<<24);d=I[1651]|I[1652]<<8|(I[1653]<<16|I[1654]<<24);F[b|0]=d;F[b+1|0]=d>>>8;F[b+2|0]=d>>>16;F[b+3|0]=d>>>24;F[b+4|0]=c;F[b+5|0]=c>>>8;F[b+6|0]=c>>>16;F[b+7|0]=c>>>24;F[b+23|0]=0;H[a>>2]=-1;nl(a+4|0,b,23);bl(b);break a}d=ha-16|0;ha=d;e=H[b+44>>2];f=H[e+20>>2];if(!H[e+16>>2]&(f|0)<=0|(f|0)<0){Da(e,H[e+4>>2],1637,1642)}e=la[H[H[b>>2]+8>>2]](b)|0;F[d+15|0]=e;F[d+14|0]=2;F[d+13|0]=e&255?2:3;e=H[b+44>>2];f=H[e+20>>2];b:{if(!!H[e+16>>2]&(f|0)>=0|(f|0)>0){break b}Da(e,H[e+4>>2],d+14|0,d+15|0);e=H[b+44>>2];f=H[e+20>>2];if(!!H[e+16>>2]&(f|0)>=0|(f|0)>0){break b}Da(e,H[e+4>>2],d+13|0,d+14|0);e=H[b+44>>2];f=H[e+20>>2];if(!!H[e+16>>2]&(f|0)>=0|(f|0)>0){break b}Da(e,H[e+4>>2],d+15|0,d+16|0);e=H[b+44>>2]}k=d,l=la[H[H[b>>2]+12>>2]](b)|0,F[k+12|0]=l;f=H[e+20>>2];if(!H[e+16>>2]&(f|0)<=0|(f|0)<0){Da(e,H[e+4>>2],d+12|0,d+13|0)}G[d+10>>1]=(H[H[b+4>>2]+4>>2]!=0)<<15;e=H[b+44>>2];f=H[e+20>>2];if(!H[e+16>>2]&(f|0)<=0|(f|0)<0){Da(e,H[e+4>>2],d+10|0,d+12|0)}H[a>>2]=0;H[a+4>>2]=0;H[a+8>>2]=0;H[a+12>>2]=0;ha=d+16|0;if(H[a>>2]){break a}e=a+4|0;if(F[a+15|0]<0){bl(H[e>>2])}d=H[H[b+4>>2]+4>>2];c:{if(!d){H[a>>2]=0;H[a+4>>2]=0;H[a+8>>2]=0;H[a+12>>2]=0;break c}f=H[b+44>>2];if(d){zb(H[d+28>>2]-H[d+24>>2]>>2,f);g=H[d+24>>2];j=H[d+28>>2];if((g|0)!=(j|0)){while(1){i=H[g>>2];if(i){zb(H[i+24>>2],f);Tj(h,f,i)}g=g+4|0;if((j|0)!=(g|0)){continue}break}}Tj(h,f,d)}if(d){H[a>>2]=0;H[a+4>>2]=0;H[a+8>>2]=0;H[a+12>>2]=0;break c}d=hl(32);f=I[1882]|I[1883]<<8;F[d+24|0]=f;F[d+25|0]=f>>>8;f=I[1878]|I[1879]<<8|(I[1880]<<16|I[1881]<<24);g=I[1874]|I[1875]<<8|(I[1876]<<16|I[1877]<<24);F[d+16|0]=g;F[d+17|0]=g>>>8;F[d+18|0]=g>>>16;F[d+19|0]=g>>>24;F[d+20|0]=f;F[d+21|0]=f>>>8;F[d+22|0]=f>>>16;F[d+23|0]=f>>>24;f=I[1870]|I[1871]<<8|(I[1872]<<16|I[1873]<<24);g=I[1866]|I[1867]<<8|(I[1868]<<16|I[1869]<<24);F[d+8|0]=g;F[d+9|0]=g>>>8;F[d+10|0]=g>>>16;F[d+11|0]=g>>>24;F[d+12|0]=f;F[d+13|0]=f>>>8;F[d+14|0]=f>>>16;F[d+15|0]=f>>>24;f=I[1862]|I[1863]<<8|(I[1864]<<16|I[1865]<<24);g=I[1858]|I[1859]<<8|(I[1860]<<16|I[1861]<<24);F[d|0]=g;F[d+1|0]=g>>>8;F[d+2|0]=g>>>16;F[d+3|0]=g>>>24;F[d+4|0]=f;F[d+5|0]=f>>>8;F[d+6|0]=f>>>16;F[d+7|0]=f>>>24;F[d+26|0]=0;H[a>>2]=-1;nl(e,d,26);bl(d);if(H[a>>2]){break a}}if(F[e+11|0]<0){bl(H[e>>2])}if(!(la[H[H[b>>2]+16>>2]](b)|0)){b=hl(32);c=I[1798]|I[1799]<<8|(I[1800]<<16|I[1801]<<24);d=I[1794]|I[1795]<<8|(I[1796]<<16|I[1797]<<24);F[b+21|0]=d;F[b+22|0]=d>>>8;F[b+23|0]=d>>>16;F[b+24|0]=d>>>24;F[b+25|0]=c;F[b+26|0]=c>>>8;F[b+27|0]=c>>>16;F[b+28|0]=c>>>24;c=I[1793]|I[1794]<<8|(I[1795]<<16|I[1796]<<24);d=I[1789]|I[1790]<<8|(I[1791]<<16|I[1792]<<24);F[b+16|0]=d;F[b+17|0]=d>>>8;F[b+18|0]=d>>>16;F[b+19|0]=d>>>24;F[b+20|0]=c;F[b+21|0]=c>>>8;F[b+22|0]=c>>>16;F[b+23|0]=c>>>24;c=I[1785]|I[1786]<<8|(I[1787]<<16|I[1788]<<24);d=I[1781]|I[1782]<<8|(I[1783]<<16|I[1784]<<24);F[b+8|0]=d;F[b+9|0]=d>>>8;F[b+10|0]=d>>>16;F[b+11|0]=d>>>24;F[b+12|0]=c;F[b+13|0]=c>>>8;F[b+14|0]=c>>>16;F[b+15|0]=c>>>24;c=I[1777]|I[1778]<<8|(I[1779]<<16|I[1780]<<24);d=I[1773]|I[1774]<<8|(I[1775]<<16|I[1776]<<24);F[b|0]=d;F[b+1|0]=d>>>8;F[b+2|0]=d>>>16;F[b+3|0]=d>>>24;F[b+4|0]=c;F[b+5|0]=c>>>8;F[b+6|0]=c>>>16;F[b+7|0]=c>>>24;F[b+29|0]=0;H[a>>2]=-1;nl(e,b,29);bl(b);break a}if(!(la[H[H[b>>2]+20>>2]](b)|0)){b=hl(32);c=I[1941]|I[1942]<<8|(I[1943]<<16|I[1944]<<24);d=I[1937]|I[1938]<<8|(I[1939]<<16|I[1940]<<24);F[b+23|0]=d;F[b+24|0]=d>>>8;F[b+25|0]=d>>>16;F[b+26|0]=d>>>24;F[b+27|0]=c;F[b+28|0]=c>>>8;F[b+29|0]=c>>>16;F[b+30|0]=c>>>24;c=I[1934]|I[1935]<<8|(I[1936]<<16|I[1937]<<24);d=I[1930]|I[1931]<<8|(I[1932]<<16|I[1933]<<24);F[b+16|0]=d;F[b+17|0]=d>>>8;F[b+18|0]=d>>>16;F[b+19|0]=d>>>24;F[b+20|0]=c;F[b+21|0]=c>>>8;F[b+22|0]=c>>>16;F[b+23|0]=c>>>24;c=I[1926]|I[1927]<<8|(I[1928]<<16|I[1929]<<24);d=I[1922]|I[1923]<<8|(I[1924]<<16|I[1925]<<24);F[b+8|0]=d;F[b+9|0]=d>>>8;F[b+10|0]=d>>>16;F[b+11|0]=d>>>24;F[b+12|0]=c;F[b+13|0]=c>>>8;F[b+14|0]=c>>>16;F[b+15|0]=c>>>24;c=I[1918]|I[1919]<<8|(I[1920]<<16|I[1921]<<24);d=I[1914]|I[1915]<<8|(I[1916]<<16|I[1917]<<24);F[b|0]=d;F[b+1|0]=d>>>8;F[b+2|0]=d>>>16;F[b+3|0]=d>>>24;F[b+4|0]=c;F[b+5|0]=c>>>8;F[b+6|0]=c>>>16;F[b+7|0]=c>>>24;F[b+31|0]=0;H[a>>2]=-1;nl(e,b,31);bl(b);break a}la[H[H[b>>2]+24>>2]](a,b);if(H[a>>2]){break a}if(F[e+11|0]<0){bl(H[e>>2])}if(!(la[H[H[b>>2]+28>>2]](b)|0)){b=Pe(h,1708);H[a>>2]=-1;if(F[b+11|0]>=0){a=H[b+4>>2];H[e>>2]=H[b>>2];H[e+4>>2]=a;H[e+8>>2]=H[b+8>>2];break a}nl(e,H[b>>2],H[b+4>>2]);if(F[b+11|0]>=0){break a}bl(H[b>>2]);break a}d=c;c=Pe(h,1214);d=pi(d,c,0);if(F[c+11|0]<0){bl(H[c>>2])}if(d){la[H[H[b>>2]+48>>2]](b)}H[a>>2]=0;H[a+4>>2]=0;H[a+8>>2]=0;H[a+12>>2]=0}ha=h+16|0}function dk(a){a=a|0;var b=0,c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=O(0),r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=O(0),z=0,A=0;d=ha+-64|0;ha=d;f=H[a+80>>2];H[d+40>>2]=0;H[d+44>>2]=0;H[d+56>>2]=a;H[d+48>>2]=a;H[d+32>>2]=0;H[d+36>>2]=0;H[d+52>>2]=1065353216;e=2;a:{if((f|0)!=1){if(f&f-1){f=Zk(f)}e=f;if(!f){break a}}ek(d+32|0,e)}f=H[a+80>>2];H[d+24>>2]=0;H[d+16>>2]=0;H[d+20>>2]=0;b:{c:{d:{e:{if(!f){break e}if(f>>>0>=1073741824){break b}f=f<<2;s=hl(f);H[d+16>>2]=s;b=f+s|0;H[d+24>>2]=b;lk(s,0,f);H[d+20>>2]=b;H[d+8>>2]=0;H[d>>2]=0;H[d+4>>2]=0;z=d+40|0;f=0;while(1){c=0;b=H[d+48>>2];m=H[b+8>>2];n=H[b+12>>2]-m|0;u=(n|0)<=0;f:{if(u){break f}b=n>>>2|0;b=b>>>0>1?b:1;i=b&1;e=0;if(n>>>0>=8){j=b&1073741822;b=0;while(1){g=e<<2;h=H[g+m>>2];if(I[h+84|0]){h=f}else{h=H[H[h+68>>2]+(f<<2)>>2]}e=e+2|0;h=h<<3^c<<2;c=H[m+(g|4)>>2];if(I[c+84|0]){c=f}else{c=H[H[c+68>>2]+(f<<2)>>2]}c=h^c<<2;b=b+2|0;if((j|0)!=(b|0)){continue}break}}if(!i){break f}b=H[m+(e<<2)>>2];if(I[b+84|0]){b=f}else{b=H[H[b+68>>2]+(f<<2)>>2]}c=b<<2^c<<1}g:{h:{g=H[d+36>>2];if(!g){break h}i=H[d+32>>2];e=Vl(g)>>>0>1;b=g-1&c;i:{if(!e){break i}b=c;if(b>>>0>>0){break i}b=(c>>>0)%(g>>>0)|0}h=b;b=H[i+(h<<2)>>2];if(!b){break h}k=H[b>>2];if(!k){break h}p=H[d+56>>2];j:{k:{if(!e){v=g-1|0;while(1){b=H[k+4>>2];l:{if((b|0)!=(c|0)){if((h|0)==(b&v)){break l}break h}w=H[p+8>>2];b=H[p+12>>2]-w|0;if((b|0)<=0){break j}i=H[k+8>>2];l=1;o=b>>2;A=(o|0)>1?o:1;e=0;while(1){b=f;j=H[w+(e<<2)>>2];if(I[j+84|0]){j=i}else{j=H[j+68>>2];b=H[j+(f<<2)>>2];j=H[j+(i<<2)>>2]}if((b|0)==(j|0)){e=e+1|0;l=(o|0)>(e|0);if((e|0)!=(A|0)){continue}}break}if(!l){break k}}k=H[k>>2];if(k){continue}break}break h}while(1){b=H[k+4>>2];m:{if((b|0)!=(c|0)){if(b>>>0>=g>>>0){b=(b>>>0)%(g>>>0)|0}if((b|0)==(h|0)){break m}break h}v=H[p+8>>2];b=H[p+12>>2]-v|0;if((b|0)<=0){break j}i=H[k+8>>2];l=1;o=b>>2;w=(o|0)>1?o:1;e=0;while(1){b=f;j=H[v+(e<<2)>>2];if(I[j+84|0]){j=i}else{j=H[j+68>>2];b=H[j+(f<<2)>>2];j=H[j+(i<<2)>>2]}if((b|0)==(j|0)){e=e+1|0;l=(o|0)>(e|0);if((e|0)!=(w|0)){continue}}break}if(!l){break k}}k=H[k>>2];if(k){continue}break}break h}if(!k){break h}}H[(f<<2)+s>>2]=H[k+12>>2];break g}n:{if(u){h=0;break n}b=n>>>2|0;b=b>>>0>1?b:1;i=b&1;h=0;e=0;if(n>>>0>=8){j=b&1073741822;b=0;while(1){l=e<<2;c=H[l+m>>2];if(I[c+84|0]){c=f}else{c=H[H[c+68>>2]+(f<<2)>>2]}e=e+2|0;h=c<<3^h<<2;c=H[m+(l|4)>>2];if(I[c+84|0]){c=f}else{c=H[H[c+68>>2]+(f<<2)>>2]}h=h^c<<2;b=b+2|0;if((j|0)!=(b|0)){continue}break}}if(!i){break n}b=H[m+(e<<2)>>2];if(I[b+84|0]){b=f}else{b=H[H[b+68>>2]+(f<<2)>>2]}h=b<<2^h<<1}o:{p:{if(!g){break p}l=g-1|0;if(l&g){k=g>>>0<=h>>>0?(h>>>0)%(g>>>0)|0:h;j=H[H[d+32>>2]+(k<<2)>>2];if(!j){break p}m=H[d+56>>2];while(1){j=H[j>>2];if(!j){break p}b=H[j+4>>2];if((b|0)!=(h|0)){if(b>>>0>=g>>>0){b=(b>>>0)%(g>>>0)|0}if((b|0)!=(k|0)){break p}}p=H[m+8>>2];b=H[m+12>>2]-p|0;if((b|0)<=0){break o}c=H[j+8>>2];l=1;n=b>>2;o=(n|0)>1?n:1;e=0;while(1){b=f;i=H[p+(e<<2)>>2];if(I[i+84|0]){i=c}else{i=H[i+68>>2];b=H[i+(f<<2)>>2];i=H[i+(c<<2)>>2]}if((b|0)==(i|0)){e=e+1|0;l=(n|0)>(e|0);if((e|0)!=(o|0)){continue}}break}if(l){continue}break}break o}k=h&l;j=H[H[d+32>>2]+(k<<2)>>2];if(!j){break p}m=H[d+56>>2];while(1){j=H[j>>2];if(!j){break p}b=H[j+4>>2];if((b|0)!=(h|0)&(b&l)!=(k|0)){break p}o=H[m+8>>2];b=H[m+12>>2]-o|0;if((b|0)<=0){break o}c=H[j+8>>2];n=1;p=b>>2;u=(p|0)>1?p:1;e=0;while(1){b=f;i=H[o+(e<<2)>>2];if(I[i+84|0]){i=c}else{i=H[i+68>>2];b=H[i+(f<<2)>>2];i=H[i+(c<<2)>>2]}if((b|0)==(i|0)){e=e+1|0;n=(p|0)>(e|0);if((e|0)!=(u|0)){continue}}break}if(n){continue}break}break o}e=hl(16);H[e+8>>2]=f;H[e+4>>2]=h;H[e>>2]=0;H[e+12>>2]=t;y=O(H[d+44>>2]+1>>>0);q=L[d+52>>2];q:{if(y>O(q*O(g>>>0))?0:g){break q}c=2;k=(g-1&g)!=0|g>>>0<3|g<<1;q=O(U(O(y/q)));r:{if(q=O(0)){b=~~q>>>0;break r}b=0}b=b>>>0>>0?k:b;s:{if((b|0)==1){break s}if(!(b&b-1)){c=b;break s}c=Zk(b);g=H[d+36>>2]}t:{if(c>>>0<=g>>>0){if(c>>>0>=g>>>0){break t}k=g>>>0<3;q=O(U(O(O(K[d+44>>2])/L[d+52>>2])));u:{if(q=O(0)){b=~~q>>>0;break u}b=0}v:{w:{if(k){break w}if(Vl(g)>>>0>1){break w}b=b>>>0<2?b:1<<32-Q(b-1|0);break v}b=Zk(b)}c=b>>>0>>0?c:b;if(g>>>0<=c>>>0){break t}}ek(d+32|0,c)}g=H[d+36>>2];b=g-1|0;if(!(b&g)){k=b&h;break q}if(g>>>0>h>>>0){k=h;break q}k=(h>>>0)%(g>>>0)|0}b=H[d+32>>2]+(k<<2)|0;c=H[b>>2];x:{y:{if(!c){H[e>>2]=H[d+40>>2];H[d+40>>2]=e;H[b>>2]=z;b=H[e>>2];if(!b){break x}c=H[b+4>>2];b=g-1|0;z:{if(!(b&g)){c=b&c;break z}if(c>>>0>>0){break z}c=(c>>>0)%(g>>>0)|0}c=H[d+32>>2]+(c<<2)|0;break y}H[e>>2]=H[c>>2]}H[c>>2]=e}H[d+44>>2]=H[d+44>>2]+1;x=H[d+8>>2];r=H[d+4>>2];s=H[d+16>>2]}H[(f<<2)+s>>2]=t;t=t+1|0;if((r|0)!=(x|0)){H[r>>2]=f;r=r+4|0;H[d+4>>2]=r;break g}h=H[d>>2];c=x-h|0;i=c>>2;b=i+1|0;if(b>>>0>=1073741824){break d}e=c>>1;e=c>>>0<2147483644?b>>>0>>0?e:b:1073741823;if(e){if(e>>>0>=1073741824){break c}b=hl(e<<2)}else{b=0}i=b+(i<<2)|0;H[i>>2]=f;x=b+(e<<2)|0;r=i+4|0;if((c|0)>0){jk(b,h,c)}H[d+8>>2]=x;H[d+4>>2]=r;H[d>>2]=b;if(!h){break g}bl(h)}f=f+1|0;b=H[a+80>>2];if(f>>>0>>0){continue}break}if((b|0)!=(t|0)){la[H[H[a>>2]+24>>2]](a,d+16|0,d);H[a+80>>2]=t}a=H[d>>2];if(!a){break e}H[d+4>>2]=a;bl(a)}a=H[d+16>>2];if(a){H[d+20>>2]=a;bl(a)}f=H[d+40>>2];if(f){while(1){a=H[f>>2];bl(f);f=a;if(f){continue}break}}a=H[d+32>>2];H[d+32>>2]=0;if(a){bl(a)}ha=d- -64|0;return}Ka();X()}_a();X()}Ka();X()}function nb(a,b){var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=O(0),o=0,p=0,q=0,r=0,s=O(0);k=ha+-64|0;ha=k;H[k+40>>2]=0;H[k+44>>2]=0;H[k+32>>2]=0;H[k+36>>2]=0;H[k+48>>2]=1065353216;d=H[a+80>>2];H[k+24>>2]=0;H[k+16>>2]=0;H[k+20>>2]=0;a:{if(d){if(d>>>0>=1073741824){break a}e=d<<2;d=hl(e);H[k+16>>2]=d;c=d+e|0;H[k+24>>2]=c;lk(d,0,e);H[k+20>>2]=c;while(1){c=H[H[b>>2]>>2];g=H[b+48>>2]+Sl(H[b+40>>2],H[b+44>>2],r,0)|0;c=c+g|0;f=I[c|0]|I[c+1|0]<<8;G[k+30>>1]=f;b:{c:{h=H[k+36>>2];d:{if(!h){break d}q=H[k+32>>2];j=f^318;e=Vl(h)>>>0>1;c=j&h-1;e:{if(!e){break e}c=j;if(c>>>0>>0){break e}c=(j>>>0)%(h>>>0)|0}g=c;c=H[q+(g<<2)>>2];if(!c){break d}c=H[c>>2];if(!c){break d}if(!e){h=h-1|0;while(1){e=H[c+4>>2];f:{if((e|0)!=(j|0)){if((g|0)==(e&h)){break f}break d}if((f|0)==J[c+8>>1]){break c}}c=H[c>>2];if(c){continue}break}break d}while(1){e=H[c+4>>2];g:{if((e|0)!=(j|0)){if(e>>>0>=h>>>0){e=(e>>>0)%(h>>>0)|0}if((e|0)==(g|0)){break g}break d}if((f|0)==J[c+8>>1]){break c}}c=H[c>>2];if(c){continue}break}}H[k+12>>2]=o;G[k+8>>1]=f;d=0;g=J[k+8>>1];j=g^318;h:{i:{i=k+32|0;f=H[i+4>>2];if(!f){break i}d=f-1|0;if(d&f){d=j;if(f>>>0<=d>>>0){d=(j>>>0)%(f>>>0)|0}l=H[H[i>>2]+(d<<2)>>2];if(!l){break i}while(1){l=H[l>>2];if(!l){break i}c=H[l+4>>2];if((c|0)!=(j|0)){if(c>>>0>=f>>>0){c=(c>>>0)%(f>>>0)|0}if((c|0)!=(d|0)){break i}}if((g|0)!=J[l+8>>1]){continue}break}c=0;break h}d=d&j;l=H[H[i>>2]+(d<<2)>>2];if(!l){break i}e=f-1|0;while(1){l=H[l>>2];if(!l){break i}c=H[l+4>>2];if((c|0)!=(j|0)&(c&e)!=(d|0)){break i}if((g|0)!=J[l+8>>1]){continue}break}c=0;break h}l=hl(16);G[l+8>>1]=J[k+8>>1];c=H[k+12>>2];H[l+4>>2]=j;H[l+12>>2]=c;H[l>>2]=0;s=O(H[i+12>>2]+1>>>0);n=L[i+16>>2];j:{if(s>O(n*O(f>>>0))?0:f){break j}d=2;c=(f-1&f)!=0|f>>>0<3|f<<1;n=O(U(O(s/n)));k:{if(n=O(0)){e=~~n>>>0;break k}e=0}c=c>>>0>e>>>0?c:e;l:{if((c|0)==1){break l}if(!(c&c-1)){d=c;break l}d=Zk(c);f=H[i+4>>2]}m:{if(d>>>0<=f>>>0){if(d>>>0>=f>>>0){break m}e=f>>>0<3;n=O(U(O(O(K[i+12>>2])/L[i+16>>2])));n:{if(n=O(0)){c=~~n>>>0;break n}c=0}o:{p:{if(e){break p}if(Vl(f)>>>0>1){break p}c=c>>>0<2?c:1<<32-Q(c-1|0);break o}c=Zk(c)}d=c>>>0>>0?d:c;if(f>>>0<=d>>>0){break m}}c=0;h=0;f=d;q:{r:{s:{if(d){if(f>>>0>=1073741824){break s}d=hl(f<<2);e=H[i>>2];H[i>>2]=d;if(e){bl(e)}H[i+4>>2]=f;if(f-1>>>0>=3){e=f&-4;d=0;while(1){g=c<<2;H[g+H[i>>2]>>2]=0;H[H[i>>2]+(g|4)>>2]=0;H[H[i>>2]+(g|8)>>2]=0;H[H[i>>2]+(g|12)>>2]=0;c=c+4|0;d=d+4|0;if((e|0)!=(d|0)){continue}break}}d=f&3;if(d){while(1){H[H[i>>2]+(c<<2)>>2]=0;c=c+1|0;h=h+1|0;if((d|0)!=(h|0)){continue}break}}d=H[i+8>>2];if(!d){break q}e=i+8|0;g=H[d+4>>2];c=f-1|0;if(!(c&f)){break r}g=f>>>0<=g>>>0?(g>>>0)%(f>>>0)|0:g;H[H[i>>2]+(g<<2)>>2]=e;while(1){e=H[d>>2];if(!e){break q}h=H[e+4>>2];if(f>>>0<=h>>>0){h=(h>>>0)%(f>>>0)|0}if((g|0)==(h|0)){d=e;continue}c=e;p=h<<2;q=p+H[i>>2]|0;if(H[q>>2]){while(1){h=c;c=H[c>>2];if(J[e+8>>1]==J[c+8>>1]?c:0){continue}break}H[d>>2]=c;H[h>>2]=H[H[p+H[i>>2]>>2]>>2];H[H[p+H[i>>2]>>2]>>2]=e}else{H[q>>2]=d;d=e;g=h}continue}}d=H[i>>2];H[i>>2]=0;if(d){bl(d)}H[i+4>>2]=0;break q}_a();X()}g=c&g;H[H[i>>2]+(g<<2)>>2]=e;e=H[d>>2];if(!e){break q}q=f-1|0;while(1){h=q&H[e+4>>2];t:{if((h|0)==(g|0)){d=e;break t}c=e;p=h<<2;f=p+H[i>>2]|0;if(H[f>>2]){while(1){h=c;c=H[c>>2];if(J[e+8>>1]==J[c+8>>1]?c:0){continue}break}H[d>>2]=c;H[h>>2]=H[H[p+H[i>>2]>>2]>>2];H[H[p+H[i>>2]>>2]>>2]=e;break t}H[f>>2]=d;d=e;g=h}e=H[d>>2];if(e){continue}break}}}f=H[i+4>>2];d=f-1|0;if(!(d&f)){d=d&j;break j}if(f>>>0>j>>>0){d=j;break j}d=(j>>>0)%(f>>>0)|0}e=H[i>>2]+(d<<2)|0;c=H[e>>2];u:{v:{if(!c){d=i+8|0;H[l>>2]=H[d>>2];H[i+8>>2]=l;H[e>>2]=d;d=H[l>>2];if(!d){break u}c=H[d+4>>2];d=f-1|0;w:{if(!(d&f)){c=c&d;break w}if(c>>>0>>0){break w}c=(c>>>0)%(f>>>0)|0}c=H[i>>2]+(c<<2)|0;break v}H[l>>2]=H[c>>2]}H[c>>2]=l}H[i+12>>2]=H[i+12>>2]+1;c=1}F[k+60|0]=c;H[k+56>>2]=l;d=H[a+40>>2];jk(H[H[a>>2]>>2]+N(d,o)|0,k+30|0,d);d=H[k+16>>2];H[d+(r<<2)>>2]=o;o=o+1|0;break b}H[(r<<2)+d>>2]=H[c+12>>2]}c=r+1|0;m=c?m:m+1|0;r=c;c=H[a+80>>2];if(!m&c>>>0>r>>>0){continue}break}if((c|0)!=(o|0)){x:{if(!I[a+84|0]){b=H[a+72>>2];j=H[a+68>>2];if((b|0)==(j|0)){break x}b=b-j>>2;b=b>>>0>1?b:1;m=b&3;h=0;c=0;if(b-1>>>0>=3){e=b&-4;f=0;while(1){g=c<<2;b=g+j|0;H[b>>2]=H[(H[b>>2]<<2)+d>>2];b=j+(g|4)|0;H[b>>2]=H[(H[b>>2]<<2)+d>>2];b=j+(g|8)|0;H[b>>2]=H[(H[b>>2]<<2)+d>>2];b=j+(g|12)|0;H[b>>2]=H[(H[b>>2]<<2)+d>>2];c=c+4|0;f=f+4|0;if((e|0)!=(f|0)){continue}break}}if(!m){break x}while(1){b=j+(c<<2)|0;H[b>>2]=H[(H[b>>2]<<2)+d>>2];c=c+1|0;h=h+1|0;if((m|0)!=(h|0)){continue}break}break x}F[a+84|0]=0;m=a+68|0;b=H[a+68>>2];e=H[a+72>>2]-b>>2;y:{if(e>>>0>>0){tb(m,c-e|0,2176);c=H[a+80>>2];break y}if(c>>>0>=e>>>0){break y}H[a+72>>2]=b+(c<<2)}if(!c){break x}j=H[m>>2];h=0;b=0;if(c-1>>>0>=3){m=c&-4;f=0;while(1){g=b<<2;H[g+j>>2]=H[d+g>>2];e=g|4;H[e+j>>2]=H[d+e>>2];e=g|8;H[e+j>>2]=H[d+e>>2];e=g|12;H[e+j>>2]=H[d+e>>2];b=b+4|0;f=f+4|0;if((m|0)!=(f|0)){continue}break}}e=c&3;if(!e){break x}while(1){c=b<<2;H[c+j>>2]=H[c+d>>2];b=b+1|0;h=h+1|0;if((e|0)!=(h|0)){continue}break}}H[a+80>>2]=o}bl(d)}c=H[k+40>>2];if(c){while(1){a=H[c>>2];bl(c);c=a;if(c){continue}break}}a=H[k+32>>2];H[k+32>>2]=0;if(a){bl(a)}ha=k- -64|0;return o}Ka();X()}function jb(a,b){var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=O(0),o=0,p=0,q=0,r=0,s=O(0);k=ha+-64|0;ha=k;H[k+40>>2]=0;H[k+44>>2]=0;H[k+32>>2]=0;H[k+36>>2]=0;H[k+48>>2]=1065353216;d=H[a+80>>2];H[k+24>>2]=0;H[k+16>>2]=0;H[k+20>>2]=0;a:{if(d){if(d>>>0>=1073741824){break a}e=d<<2;d=hl(e);H[k+16>>2]=d;c=d+e|0;H[k+24>>2]=c;lk(d,0,e);H[k+20>>2]=c;while(1){c=H[H[b>>2]>>2];g=H[b+48>>2]+Sl(H[b+40>>2],H[b+44>>2],r,0)|0;f=I[c+g|0];F[k+31|0]=f;b:{c:{h=H[k+36>>2];d:{if(!h){break d}q=H[k+32>>2];j=f^318;e=Vl(h)>>>0>1;c=j&h-1;e:{if(!e){break e}c=j;if(c>>>0>>0){break e}c=(j>>>0)%(h>>>0)|0}g=c;c=H[q+(g<<2)>>2];if(!c){break d}c=H[c>>2];if(!c){break d}if(!e){h=h-1|0;while(1){e=H[c+4>>2];f:{if((e|0)!=(j|0)){if((g|0)==(e&h)){break f}break d}if((f|0)==I[c+8|0]){break c}}c=H[c>>2];if(c){continue}break}break d}while(1){e=H[c+4>>2];g:{if((e|0)!=(j|0)){if(e>>>0>=h>>>0){e=(e>>>0)%(h>>>0)|0}if((e|0)==(g|0)){break g}break d}if((f|0)==I[c+8|0]){break c}}c=H[c>>2];if(c){continue}break}}H[k+12>>2]=o;F[k+8|0]=f;d=0;g=I[k+8|0];j=g^318;h:{i:{i=k+32|0;f=H[i+4>>2];if(!f){break i}d=f-1|0;if(d&f){d=j;if(f>>>0<=d>>>0){d=(j>>>0)%(f>>>0)|0}l=H[H[i>>2]+(d<<2)>>2];if(!l){break i}while(1){l=H[l>>2];if(!l){break i}c=H[l+4>>2];if((c|0)!=(j|0)){if(c>>>0>=f>>>0){c=(c>>>0)%(f>>>0)|0}if((c|0)!=(d|0)){break i}}if((g|0)!=I[l+8|0]){continue}break}c=0;break h}d=d&j;l=H[H[i>>2]+(d<<2)>>2];if(!l){break i}e=f-1|0;while(1){l=H[l>>2];if(!l){break i}c=H[l+4>>2];if((c|0)!=(j|0)&(c&e)!=(d|0)){break i}if((g|0)!=I[l+8|0]){continue}break}c=0;break h}l=hl(16);F[l+8|0]=I[k+8|0];c=H[k+12>>2];H[l+4>>2]=j;H[l+12>>2]=c;H[l>>2]=0;s=O(H[i+12>>2]+1>>>0);n=L[i+16>>2];j:{if(s>O(n*O(f>>>0))?0:f){break j}d=2;c=(f-1&f)!=0|f>>>0<3|f<<1;n=O(U(O(s/n)));k:{if(n=O(0)){e=~~n>>>0;break k}e=0}c=c>>>0>e>>>0?c:e;l:{if((c|0)==1){break l}if(!(c&c-1)){d=c;break l}d=Zk(c);f=H[i+4>>2]}m:{if(d>>>0<=f>>>0){if(d>>>0>=f>>>0){break m}e=f>>>0<3;n=O(U(O(O(K[i+12>>2])/L[i+16>>2])));n:{if(n=O(0)){c=~~n>>>0;break n}c=0}o:{p:{if(e){break p}if(Vl(f)>>>0>1){break p}c=c>>>0<2?c:1<<32-Q(c-1|0);break o}c=Zk(c)}d=c>>>0>>0?d:c;if(f>>>0<=d>>>0){break m}}c=0;h=0;f=d;q:{r:{s:{if(d){if(f>>>0>=1073741824){break s}d=hl(f<<2);e=H[i>>2];H[i>>2]=d;if(e){bl(e)}H[i+4>>2]=f;if(f-1>>>0>=3){e=f&-4;d=0;while(1){g=c<<2;H[g+H[i>>2]>>2]=0;H[H[i>>2]+(g|4)>>2]=0;H[H[i>>2]+(g|8)>>2]=0;H[H[i>>2]+(g|12)>>2]=0;c=c+4|0;d=d+4|0;if((e|0)!=(d|0)){continue}break}}d=f&3;if(d){while(1){H[H[i>>2]+(c<<2)>>2]=0;c=c+1|0;h=h+1|0;if((d|0)!=(h|0)){continue}break}}d=H[i+8>>2];if(!d){break q}e=i+8|0;g=H[d+4>>2];c=f-1|0;if(!(c&f)){break r}g=f>>>0<=g>>>0?(g>>>0)%(f>>>0)|0:g;H[H[i>>2]+(g<<2)>>2]=e;while(1){e=H[d>>2];if(!e){break q}h=H[e+4>>2];if(f>>>0<=h>>>0){h=(h>>>0)%(f>>>0)|0}if((g|0)==(h|0)){d=e;continue}c=e;p=h<<2;q=p+H[i>>2]|0;if(H[q>>2]){while(1){h=c;c=H[c>>2];if(I[e+8|0]==I[c+8|0]?c:0){continue}break}H[d>>2]=c;H[h>>2]=H[H[p+H[i>>2]>>2]>>2];H[H[p+H[i>>2]>>2]>>2]=e}else{H[q>>2]=d;d=e;g=h}continue}}d=H[i>>2];H[i>>2]=0;if(d){bl(d)}H[i+4>>2]=0;break q}_a();X()}g=c&g;H[H[i>>2]+(g<<2)>>2]=e;e=H[d>>2];if(!e){break q}q=f-1|0;while(1){h=q&H[e+4>>2];t:{if((h|0)==(g|0)){d=e;break t}c=e;p=h<<2;f=p+H[i>>2]|0;if(H[f>>2]){while(1){h=c;c=H[c>>2];if(I[e+8|0]==I[c+8|0]?c:0){continue}break}H[d>>2]=c;H[h>>2]=H[H[p+H[i>>2]>>2]>>2];H[H[p+H[i>>2]>>2]>>2]=e;break t}H[f>>2]=d;d=e;g=h}e=H[d>>2];if(e){continue}break}}}f=H[i+4>>2];d=f-1|0;if(!(d&f)){d=d&j;break j}if(f>>>0>j>>>0){d=j;break j}d=(j>>>0)%(f>>>0)|0}e=H[i>>2]+(d<<2)|0;c=H[e>>2];u:{v:{if(!c){d=i+8|0;H[l>>2]=H[d>>2];H[i+8>>2]=l;H[e>>2]=d;d=H[l>>2];if(!d){break u}c=H[d+4>>2];d=f-1|0;w:{if(!(d&f)){c=c&d;break w}if(c>>>0>>0){break w}c=(c>>>0)%(f>>>0)|0}c=H[i>>2]+(c<<2)|0;break v}H[l>>2]=H[c>>2]}H[c>>2]=l}H[i+12>>2]=H[i+12>>2]+1;c=1}F[k+60|0]=c;H[k+56>>2]=l;d=H[a+40>>2];jk(H[H[a>>2]>>2]+N(d,o)|0,k+31|0,d);d=H[k+16>>2];H[d+(r<<2)>>2]=o;o=o+1|0;break b}H[(r<<2)+d>>2]=H[c+12>>2]}c=r+1|0;m=c?m:m+1|0;r=c;c=H[a+80>>2];if(!m&c>>>0>r>>>0){continue}break}if((c|0)!=(o|0)){x:{if(!I[a+84|0]){b=H[a+72>>2];j=H[a+68>>2];if((b|0)==(j|0)){break x}b=b-j>>2;b=b>>>0>1?b:1;m=b&3;h=0;c=0;if(b-1>>>0>=3){e=b&-4;f=0;while(1){g=c<<2;b=g+j|0;H[b>>2]=H[(H[b>>2]<<2)+d>>2];b=j+(g|4)|0;H[b>>2]=H[(H[b>>2]<<2)+d>>2];b=j+(g|8)|0;H[b>>2]=H[(H[b>>2]<<2)+d>>2];b=j+(g|12)|0;H[b>>2]=H[(H[b>>2]<<2)+d>>2];c=c+4|0;f=f+4|0;if((e|0)!=(f|0)){continue}break}}if(!m){break x}while(1){b=j+(c<<2)|0;H[b>>2]=H[(H[b>>2]<<2)+d>>2];c=c+1|0;h=h+1|0;if((m|0)!=(h|0)){continue}break}break x}F[a+84|0]=0;m=a+68|0;b=H[a+68>>2];e=H[a+72>>2]-b>>2;y:{if(e>>>0>>0){tb(m,c-e|0,2176);c=H[a+80>>2];break y}if(c>>>0>=e>>>0){break y}H[a+72>>2]=b+(c<<2)}if(!c){break x}j=H[m>>2];h=0;b=0;if(c-1>>>0>=3){m=c&-4;f=0;while(1){g=b<<2;H[g+j>>2]=H[d+g>>2];e=g|4;H[e+j>>2]=H[d+e>>2];e=g|8;H[e+j>>2]=H[d+e>>2];e=g|12;H[e+j>>2]=H[d+e>>2];b=b+4|0;f=f+4|0;if((m|0)!=(f|0)){continue}break}}e=c&3;if(!e){break x}while(1){c=b<<2;H[c+j>>2]=H[c+d>>2];b=b+1|0;h=h+1|0;if((e|0)!=(h|0)){continue}break}}H[a+80>>2]=o}bl(d)}c=H[k+40>>2];if(c){while(1){a=H[c>>2];bl(c);c=a;if(c){continue}break}}a=H[k+32>>2];H[k+32>>2]=0;if(a){bl(a)}ha=k- -64|0;return o}Ka();X()}function Wg(a,b){var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0;j=ha-32|0;ha=j;c=H[a+16>>2];H[a+20>>2]=c;a:{b:{c:{d:{e:{f:{g:{h:{if((c|0)!=H[a+24>>2]){H[c>>2]=b;b=c+4|0;H[a+20>>2]=b;f=c;break h}f=hl(4);H[f>>2]=b;b=f+4|0;H[a+24>>2]=b;H[a+20>>2]=b;H[a+16>>2]=f;if(c){break g}}c=H[a+8>>2];c=H[c+100>>2]-H[c+96>>2]|0;break f}bl(c);b=H[a+20>>2];f=H[a+16>>2];if((b|0)==(f|0)){break e}c=H[a+8>>2];c=H[c+100>>2]-H[c+96>>2]|0}if((c|0)>0){p=a+120|0;c=(c|0)/12|0;q=(c|0)>1?c:1;while(1){i:{j:{c=b-4|0;b=H[c>>2];if((b|0)==-1){break j}f=(b>>>0)/3|0;if(H[H[a+28>>2]+(f>>>3&268435452)>>2]>>>f&1){break j}i=0;while(1){H[a+164>>2]=H[a+164>>2]+1;f=b;g=(b>>>0)/3|0;h=(b|0)==-1;l=h?-1:g;b=H[a+28>>2]+(l>>>3&536870908)|0;H[b>>2]=H[b>>2]|1<>2];k:{if((b|0)!=H[a+80>>2]){H[b>>2]=f;H[a+76>>2]=b+4;break k}d=H[a+72>>2];c=b-d|0;k=c>>2;b=k+1|0;if(b>>>0>1073741823){break d}e=c>>1;e=c>>>0<2147483644?b>>>0>>0?e:b:1073741823;if(e){if(e>>>0>1073741823){break a}b=hl(e<<2)}else{b=0}k=b+(k<<2)|0;H[k>>2]=f;if((c|0)>0){jk(b,d,c)}H[a+80>>2]=b+(e<<2);H[a+76>>2]=k+4;H[a+72>>2]=b;if(!d){break k}bl(d)}b=-1;d=H[a+12>>2];b=(f|0)!=-1?H[H[d>>2]+(f<<2)>>2]:b;m=b<<2;k=H[m+H[a+152>>2]>>2];l:{m:{c=H[a+84>>2]+(b>>>3&536870908)|0;e=H[c>>2];b=1<>2]=b|e;if((k|0)==-1){break m}}n:{if(h){break n}b=-1;c=f+1|0;e=(c>>>0)%3|0?c:f-2|0;if((e|0)!=-1){b=H[H[d+12>>2]+(e<<2)>>2]}r=(b>>>0)/3|0;h=f-N(g,3)|0;o:{p:{if(h){g=f-1|0;break p}g=f+2|0;c=-1;if((g|0)==-1){break o}}c=H[H[d+12>>2]+(g<<2)>>2]}g=(c|0)==-1;n=g?-1:(c>>>0)/3|0;q:{if((e|0)==-1){break q}o=H[d+12>>2];d=H[o+(e<<2)>>2];if((d|0)==-1){break q}e=H[a+28>>2];d=(d>>>0)/3|0;if(H[e+(d>>>3&268435452)>>2]>>>d&1){break q}r:{s:{if(h){d=f-1|0;break s}d=f+2|0;if((d|0)==-1){break r}}d=H[(d<<2)+o>>2];if((d|0)==-1){break r}d=(d>>>0)/3|0;if(H[e+(d>>>3&268435452)>>2]>>>d&1){break r}d=H[a+272>>2];t:{if((d|0)!=H[a+276>>2]){H[d>>2]=1;H[a+272>>2]=d+4;break t}g=H[a+268>>2];e=d-g|0;h=e>>2;d=h+1|0;if(d>>>0>1073741823){break c}i=e>>1;i=e>>>0<2147483644?d>>>0>>0?i:d:1073741823;if(i){if(i>>>0>1073741823){break a}d=hl(i<<2)}else{d=0}h=d+(h<<2)|0;H[h>>2]=1;if((e|0)>0){jk(d,g,e)}H[a+276>>2]=d+(i<<2);H[a+272>>2]=h+4;H[a+268>>2]=d;if(!g){break t}bl(g)}H[a+168>>2]=H[a+168>>2]+1;u:{if((k|0)==-1){break u}d=H[H[a+152>>2]+m>>2];if(H[H[a+140>>2]+(d>>>3&536870908)>>2]>>>d&1){break u}Xg(a,f,0)}f=H[a+164>>2];H[j+4>>2]=l;d=j+4|0;H[j+16>>2]=d;bh(j+24|0,p,d,j+16|0);H[H[j+24>>2]+12>>2]=f;f=H[a+20>>2];H[f-4>>2]=c;if((f|0)!=H[a+24>>2]){H[f>>2]=b;H[a+20>>2]=f+4;break i}d=H[a+16>>2];f=f-d|0;g=f>>2;c=g+1|0;if(c>>>0>1073741823){break b}e=f>>1;e=f>>>0<2147483644?c>>>0>>0?e:c:1073741823;if(e){if(e>>>0>1073741823){break a}c=hl(e<<2)}else{c=0}g=c+(g<<2)|0;H[g>>2]=b;if((f|0)>0){jk(c,d,f)}H[a+24>>2]=c+(e<<2);H[a+20>>2]=g+4;H[a+16>>2]=c;if(!d){break i}bl(d);break i}if(!g){ch(a,H[a+164>>2],0,n)}c=H[a+272>>2];if((c|0)!=H[a+276>>2]){H[c>>2]=3;H[a+272>>2]=c+4;break l}d=H[a+268>>2];f=c-d|0;g=f>>2;c=g+1|0;if(c>>>0>1073741823){break c}e=f>>1;e=f>>>0<2147483644?c>>>0>>0?e:c:1073741823;if(e){if(e>>>0>1073741823){break a}c=hl(e<<2)}else{c=0}g=c+(g<<2)|0;H[g>>2]=3;if((f|0)>0){jk(c,d,f)}H[a+276>>2]=c+(e<<2);H[a+272>>2]=g+4;H[a+268>>2]=c;if(!d){break l}bl(d);break l}b=(b|0)==-1;if(!b){ch(a,H[a+164>>2],1,b?-1:r)}v:{w:{if(h){b=f-1|0;break w}b=f+2|0;if((b|0)==-1){break v}}b=H[H[H[a+12>>2]+12>>2]+(b<<2)>>2];if((b|0)==-1){break v}b=(b>>>0)/3|0;if(H[H[a+28>>2]+(b>>>3&268435452)>>2]>>>b&1){break v}b=H[a+272>>2];if((b|0)!=H[a+276>>2]){H[b>>2]=5;H[a+272>>2]=b+4;b=c;break l}d=H[a+268>>2];f=b-d|0;g=f>>2;b=g+1|0;if(b>>>0>1073741823){break c}e=f>>1;e=f>>>0<2147483644?b>>>0>>0?e:b:1073741823;if(e){if(e>>>0>1073741823){break a}b=hl(e<<2)}else{b=0}g=b+(g<<2)|0;H[g>>2]=5;if((f|0)>0){jk(b,d,f)}H[a+276>>2]=b+(e<<2);H[a+272>>2]=g+4;H[a+268>>2]=b;if(!d){b=c;break l}bl(d);b=c;break l}if(g){break n}ch(a,H[a+164>>2],0,n)}b=H[a+272>>2];x:{if((b|0)!=H[a+276>>2]){H[b>>2]=7;H[a+272>>2]=b+4;break x}f=H[a+268>>2];c=b-f|0;e=c>>2;b=e+1|0;if(b>>>0>1073741823){break c}d=c>>1;d=c>>>0<2147483644?b>>>0>>0?d:b:1073741823;if(d){if(d>>>0>1073741823){break a}b=hl(d<<2)}else{b=0}e=b+(e<<2)|0;H[e>>2]=7;if((c|0)>0){jk(b,f,c)}H[a+276>>2]=b+(d<<2);H[a+272>>2]=e+4;H[a+268>>2]=b;if(!f){break x}bl(f)}H[a+20>>2]=H[a+20>>2]-4;break i}b=H[a+272>>2];y:{if((b|0)!=H[a+276>>2]){H[b>>2]=0;H[a+272>>2]=b+4;break y}d=H[a+268>>2];c=b-d|0;g=c>>2;b=g+1|0;if(b>>>0>1073741823){break c}e=c>>1;e=c>>>0<2147483644?b>>>0>>0?e:b:1073741823;if(e){if(e>>>0>1073741823){break a}b=hl(e<<2)}else{b=0}g=b+(g<<2)|0;H[g>>2]=0;if((c|0)>0){jk(b,d,c)}H[a+276>>2]=b+(e<<2);H[a+272>>2]=g+4;H[a+268>>2]=b;if(!d){break y}bl(d)}b=-1;if((f|0)==-1){break l}c=f+1|0;c=(c>>>0)%3|0?c:f-2|0;if((c|0)==-1){break l}b=H[H[H[a+12>>2]+12>>2]+(c<<2)>>2]}i=i+1|0;if((q|0)!=(i|0)){continue}break}break i}H[a+20>>2]=c}b=H[a+20>>2];if((b|0)!=H[a+16>>2]){continue}break}break e}d=H[a+28>>2];while(1){c=b-4|0;e=H[c>>2];z:{if((e|0)!=-1){e=(e>>>0)/3|0;if(!(H[d+(e>>>3&268435452)>>2]>>>e&1)){break z}}H[a+20>>2]=c;b=c}if((b|0)!=(f|0)){continue}break}}ha=j+32|0;return 1}Ka();X()}Ka();X()}Ka();X()}_a();X()}function af(a,b,c){var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0;g=H[b+48>>2];if(!g){b=hl(32);c=I[1670]|I[1671]<<8|(I[1672]<<16|I[1673]<<24);e=I[1666]|I[1667]<<8|(I[1668]<<16|I[1669]<<24);F[b+15|0]=e;F[b+16|0]=e>>>8;F[b+17|0]=e>>>16;F[b+18|0]=e>>>24;F[b+19|0]=c;F[b+20|0]=c>>>8;F[b+21|0]=c>>>16;F[b+22|0]=c>>>24;c=I[1663]|I[1664]<<8|(I[1665]<<16|I[1666]<<24);e=I[1659]|I[1660]<<8|(I[1661]<<16|I[1662]<<24);F[b+8|0]=e;F[b+9|0]=e>>>8;F[b+10|0]=e>>>16;F[b+11|0]=e>>>24;F[b+12|0]=c;F[b+13|0]=c>>>8;F[b+14|0]=c>>>16;F[b+15|0]=c>>>24;c=I[1655]|I[1656]<<8|(I[1657]<<16|I[1658]<<24);e=I[1651]|I[1652]<<8|(I[1653]<<16|I[1654]<<24);F[b|0]=e;F[b+1|0]=e>>>8;F[b+2|0]=e>>>16;F[b+3|0]=e>>>24;F[b+4|0]=c;F[b+5|0]=c>>>8;F[b+6|0]=c>>>16;F[b+7|0]=c>>>24;F[b+23|0]=0;H[a>>2]=-1;nl(a+4|0,b,23);bl(b);return}h=H[b+52>>2];if(!h){e=ha-32|0;ha=e;d=hl(16);H[e+16>>2]=d;H[e+20>>2]=15;H[e+24>>2]=-2147483632;F[d+15|0]=0;f=I[1587]|I[1588]<<8|(I[1589]<<16|I[1590]<<24);h=I[1583]|I[1584]<<8|(I[1585]<<16|I[1586]<<24);F[d+7|0]=h;F[d+8|0]=h>>>8;F[d+9|0]=h>>>16;F[d+10|0]=h>>>24;F[d+11|0]=f;F[d+12|0]=f>>>8;F[d+13|0]=f>>>16;F[d+14|0]=f>>>24;f=I[1580]|I[1581]<<8|(I[1582]<<16|I[1583]<<24);h=I[1576]|I[1577]<<8|(I[1578]<<16|I[1579]<<24);F[d|0]=h;F[d+1|0]=h>>>8;F[d+2|0]=h>>>16;F[d+3|0]=h>>>24;F[d+4|0]=f;F[d+5|0]=f>>>8;F[d+6|0]=f>>>16;F[d+7|0]=f>>>24;h=b+4|0;j=mi(h,e+16|0,-1);if(F[e+27|0]<0){bl(H[e+16>>2])}a:{b:{c:{d:{e:{switch(j+1|0){case 1:d=hl(56);H[d>>2]=0;H[d+4>>2]=0;H[d+48>>2]=0;H[d+52>>2]=0;H[d+40>>2]=0;H[d+44>>2]=0;H[d+32>>2]=0;H[d+36>>2]=0;H[d+24>>2]=0;H[d+28>>2]=0;H[d+16>>2]=0;H[d+20>>2]=0;H[d+8>>2]=0;H[d+12>>2]=0;d=Zh(d);H[d>>2]=12672;break c;case 0:break e;default:break d}}if((Qb(h)|0)!=10){break d}d=hl(56);H[d>>2]=0;H[d+4>>2]=0;H[d+48>>2]=0;H[d+52>>2]=0;H[d+40>>2]=0;H[d+44>>2]=0;H[d+32>>2]=0;H[d+36>>2]=0;H[d+24>>2]=0;H[d+28>>2]=0;H[d+16>>2]=0;H[d+20>>2]=0;H[d+8>>2]=0;H[d+12>>2]=0;d=Zh(d);H[d>>2]=12672;break c}H[e+12>>2]=0;f:{i=H[g+12>>2];f=H[g+8>>2];if((i-f|0)>0){d=0;while(1){k=H[H[(d<<2)+f>>2]+28>>2];if(k-1>>>0>=6){if((k|0)!=9){break f}d=hl(32);H[e+16>>2]=d;H[e+20>>2]=17;H[e+24>>2]=-2147483616;F[d+17|0]=0;F[d+16|0]=I[1261];f=I[1257]|I[1258]<<8|(I[1259]<<16|I[1260]<<24);i=I[1253]|I[1254]<<8|(I[1255]<<16|I[1256]<<24);F[d+8|0]=i;F[d+9|0]=i>>>8;F[d+10|0]=i>>>16;F[d+11|0]=i>>>24;F[d+12|0]=f;F[d+13|0]=f>>>8;F[d+14|0]=f>>>16;F[d+15|0]=f>>>24;f=I[1249]|I[1250]<<8|(I[1251]<<16|I[1252]<<24);i=I[1245]|I[1246]<<8|(I[1247]<<16|I[1248]<<24);F[d|0]=i;F[d+1|0]=i>>>8;F[d+2|0]=i>>>16;F[d+3|0]=i>>>24;F[d+4|0]=f;F[d+5|0]=f>>>8;F[d+6|0]=f>>>16;F[d+7|0]=f>>>24;d=Hb(h,e+12|0,e+16|0,-1);if(F[e+27|0]<0){bl(H[e+16>>2])}if((d|0)<=0){break f}f=H[g+8>>2];i=H[g+12>>2];d=H[e+12>>2]}d=d+1|0;H[e+12>>2]=d;if(i-f>>2>(d|0)){continue}break}}d=hl(56);H[d>>2]=0;H[d+4>>2]=0;H[d+48>>2]=0;H[d+52>>2]=0;H[d+40>>2]=0;H[d+44>>2]=0;H[d+32>>2]=0;H[d+36>>2]=0;H[d+24>>2]=0;H[d+28>>2]=0;H[d+16>>2]=0;H[d+20>>2]=0;H[d+8>>2]=0;H[d+12>>2]=0;d=Zh(d);H[d>>2]=12564;break c}if((j|0)==1){break b}d=hl(56);H[d>>2]=0;H[d+4>>2]=0;H[d+48>>2]=0;H[d+52>>2]=0;H[d+40>>2]=0;H[d+44>>2]=0;H[d+32>>2]=0;H[d+36>>2]=0;H[d+24>>2]=0;H[d+28>>2]=0;H[d+16>>2]=0;H[d+20>>2]=0;H[d+8>>2]=0;H[d+12>>2]=0;d=Zh(d);H[d>>2]=12672}H[d+4>>2]=g;_h(a,d,h,c);if(!H[a>>2]){if(F[a+15|0]<0){bl(H[a+4>>2])}c=H[d+52>>2];H[b+44>>2]=0;H[b+40>>2]=c;H[a+8>>2]=0;H[a+12>>2]=0;H[a>>2]=0;H[a+4>>2]=0}la[H[H[d>>2]+4>>2]](d);break a}b=hl(32);c=I[1853]|I[1854]<<8|(I[1855]<<16|I[1856]<<24);d=I[1849]|I[1850]<<8|(I[1851]<<16|I[1852]<<24);F[b+16|0]=d;F[b+17|0]=d>>>8;F[b+18|0]=d>>>16;F[b+19|0]=d>>>24;F[b+20|0]=c;F[b+21|0]=c>>>8;F[b+22|0]=c>>>16;F[b+23|0]=c>>>24;c=I[1845]|I[1846]<<8|(I[1847]<<16|I[1848]<<24);d=I[1841]|I[1842]<<8|(I[1843]<<16|I[1844]<<24);F[b+8|0]=d;F[b+9|0]=d>>>8;F[b+10|0]=d>>>16;F[b+11|0]=d>>>24;F[b+12|0]=c;F[b+13|0]=c>>>8;F[b+14|0]=c>>>16;F[b+15|0]=c>>>24;c=I[1837]|I[1838]<<8|(I[1839]<<16|I[1840]<<24);d=I[1833]|I[1834]<<8|(I[1835]<<16|I[1836]<<24);F[b|0]=d;F[b+1|0]=d>>>8;F[b+2|0]=d>>>16;F[b+3|0]=d>>>24;F[b+4|0]=c;F[b+5|0]=c>>>8;F[b+6|0]=c>>>16;F[b+7|0]=c>>>24;F[b+24|0]=0;H[a>>2]=-1;nl(a+4|0,b,24);bl(b)}ha=e+32|0;return}d=ha-16|0;ha=d;e=hl(16);H[d>>2]=e;H[d+4>>2]=15;H[d+8>>2]=-2147483632;F[e+15|0]=0;g=I[1587]|I[1588]<<8|(I[1589]<<16|I[1590]<<24);f=I[1583]|I[1584]<<8|(I[1585]<<16|I[1586]<<24);F[e+7|0]=f;F[e+8|0]=f>>>8;F[e+9|0]=f>>>16;F[e+10|0]=f>>>24;F[e+11|0]=g;F[e+12|0]=g>>>8;F[e+13|0]=g>>>16;F[e+14|0]=g>>>24;g=I[1580]|I[1581]<<8|(I[1582]<<16|I[1583]<<24);f=I[1576]|I[1577]<<8|(I[1578]<<16|I[1579]<<24);F[e|0]=f;F[e+1|0]=f>>>8;F[e+2|0]=f>>>16;F[e+3|0]=f>>>24;F[e+4|0]=g;F[e+5|0]=g>>>8;F[e+6|0]=g>>>16;F[e+7|0]=g>>>24;g=b+4|0;e=mi(g,d,-1);if(F[d+11|0]<0){bl(H[d>>2])}g:{h:{i:{switch(e+1|0){case 0:if((Qb(g)|0)==10){break h}break;case 2:break i;default:break h}}e=Ph(hl(68));H[e+64>>2]=0;H[e>>2]=10404;break g}e=Ph(hl(64));H[e>>2]=12280}H[e+56>>2]=h;H[e+4>>2]=h;_h(a,e,g,c);if(!H[a>>2]){if(F[a+15|0]<0){bl(H[a+4>>2])}H[b+40>>2]=H[e+52>>2];H[b+44>>2]=H[e+60>>2];H[a+8>>2]=0;H[a+12>>2]=0;H[a>>2]=0;H[a+4>>2]=0}la[H[H[e>>2]+4>>2]](e);ha=d+16|0}function sg(a){a=a|0;var b=0,c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0;e=ha-16|0;ha=e;f=H[a+48>>2];b=hl(32);H[e>>2]=b;H[e+4>>2]=20;H[e+8>>2]=-2147483616;F[b+20|0]=0;c=I[1359]|I[1360]<<8|(I[1361]<<16|I[1362]<<24);F[b+16|0]=c;F[b+17|0]=c>>>8;F[b+18|0]=c>>>16;F[b+19|0]=c>>>24;c=I[1355]|I[1356]<<8|(I[1357]<<16|I[1358]<<24);d=I[1351]|I[1352]<<8|(I[1353]<<16|I[1354]<<24);F[b+8|0]=d;F[b+9|0]=d>>>8;F[b+10|0]=d>>>16;F[b+11|0]=d>>>24;F[b+12|0]=c;F[b+13|0]=c>>>8;F[b+14|0]=c>>>16;F[b+15|0]=c>>>24;c=I[1347]|I[1348]<<8|(I[1349]<<16|I[1350]<<24);d=I[1343]|I[1344]<<8|(I[1345]<<16|I[1346]<<24);F[b|0]=d;F[b+1|0]=d>>>8;F[b+2|0]=d>>>16;F[b+3|0]=d>>>24;F[b+4|0]=c;F[b+5|0]=c>>>8;F[b+6|0]=c>>>16;F[b+7|0]=c>>>24;f=oi(f+24|0,e);if(F[e+11|0]<0){bl(H[e>>2])}g=H[a+48>>2];b=hl(32);H[e>>2]=b;H[e+4>>2]=22;H[e+8>>2]=-2147483616;F[b+22|0]=0;c=I[1338]|I[1339]<<8|(I[1340]<<16|I[1341]<<24);d=I[1334]|I[1335]<<8|(I[1336]<<16|I[1337]<<24);F[b+14|0]=d;F[b+15|0]=d>>>8;F[b+16|0]=d>>>16;F[b+17|0]=d>>>24;F[b+18|0]=c;F[b+19|0]=c>>>8;F[b+20|0]=c>>>16;F[b+21|0]=c>>>24;c=I[1332]|I[1333]<<8|(I[1334]<<16|I[1335]<<24);d=I[1328]|I[1329]<<8|(I[1330]<<16|I[1331]<<24);F[b+8|0]=d;F[b+9|0]=d>>>8;F[b+10|0]=d>>>16;F[b+11|0]=d>>>24;F[b+12|0]=c;F[b+13|0]=c>>>8;F[b+14|0]=c>>>16;F[b+15|0]=c>>>24;c=I[1324]|I[1325]<<8|(I[1326]<<16|I[1327]<<24);d=I[1320]|I[1321]<<8|(I[1322]<<16|I[1323]<<24);F[b|0]=d;F[b+1|0]=d>>>8;F[b+2|0]=d>>>16;F[b+3|0]=d>>>24;F[b+4|0]=c;F[b+5|0]=c>>>8;F[b+6|0]=c>>>16;F[b+7|0]=c>>>24;g=oi(g+24|0,e);if(F[e+11|0]<0){bl(H[e>>2])}b=H[a+64>>2];H[a+64>>2]=0;if(b){la[H[H[b>>2]+4>>2]](b)}b=H[a+56>>2];h=H[b+100>>2];i=H[a+48>>2];j=H[b+96>>2];b=hl(32);H[e>>2]=b;H[e+4>>2]=18;H[e+8>>2]=-2147483616;F[b+18|0]=0;c=I[1566]|I[1567]<<8;F[b+16|0]=c;F[b+17|0]=c>>>8;c=I[1562]|I[1563]<<8|(I[1564]<<16|I[1565]<<24);d=I[1558]|I[1559]<<8|(I[1560]<<16|I[1561]<<24);F[b+8|0]=d;F[b+9|0]=d>>>8;F[b+10|0]=d>>>16;F[b+11|0]=d>>>24;F[b+12|0]=c;F[b+13|0]=c>>>8;F[b+14|0]=c>>>16;F[b+15|0]=c>>>24;c=I[1554]|I[1555]<<8|(I[1556]<<16|I[1557]<<24);d=I[1550]|I[1551]<<8|(I[1552]<<16|I[1553]<<24);F[b|0]=d;F[b+1|0]=d>>>8;F[b+2|0]=d>>>16;F[b+3|0]=d>>>24;F[b+4|0]=c;F[b+5|0]=c>>>8;F[b+6|0]=c>>>16;F[b+7|0]=c>>>24;b=mi(i,e,-1);if(F[e+11|0]<0){bl(H[e>>2])}c=(h-j|0)/12|0;a:{b:{c:{d:{e:{f:{g:{h:{switch(b+1|0){case 1:break f;case 3:break g;case 0:break h;default:break c}}if(!f){break g}if(c>>>0<1e3|(Qb(H[a+48>>2])|0)>4|g^1){break e}}b=H[a+44>>2];F[e|0]=2;c=H[b+20>>2];if(!H[b+16>>2]&(c|0)<=0|(c|0)<0){Da(b,H[b+4>>2],e,e+1|0)}b=hl(360);H[b+4>>2]=0;H[b+8>>2]=0;H[b+72>>2]=0;H[b+76>>2]=0;H[b>>2]=10584;H[b+12>>2]=0;H[b+16>>2]=0;H[b+20>>2]=0;H[b+24>>2]=0;H[b+28>>2]=0;H[b+32>>2]=0;H[b+36>>2]=0;H[b+40>>2]=0;H[b+44>>2]=0;H[b+48>>2]=0;H[b+52>>2]=0;H[b+56>>2]=0;H[b+60>>2]=0;H[b+64>>2]=0;H[b+80>>2]=0;H[b+84>>2]=0;H[b+88>>2]=0;H[b+92>>2]=0;H[b+96>>2]=0;H[b+100>>2]=0;H[b+104>>2]=0;H[b+108>>2]=0;H[b+112>>2]=0;H[b+116>>2]=0;H[b+120>>2]=0;H[b+124>>2]=0;H[b+128>>2]=0;H[b+132>>2]=0;H[b+136>>2]=1065353216;H[b+156>>2]=0;H[b+160>>2]=0;H[b+148>>2]=0;H[b+152>>2]=0;H[b+140>>2]=0;H[b+144>>2]=0;H[b+168>>2]=0;H[b+172>>2]=0;H[b+164>>2]=-1;H[b+176>>2]=0;H[b+180>>2]=0;H[b+184>>2]=0;H[b+188>>2]=0;H[b+192>>2]=0;c=b+200|0;H[c>>2]=0;H[c+4>>2]=0;H[c+24>>2]=0;H[c+28>>2]=0;H[c+16>>2]=0;H[c+20>>2]=0;H[c+8>>2]=0;H[c+12>>2]=0;c=b+232|0;H[c>>2]=0;H[c+4>>2]=0;F[c+24|0]=0;H[c+16>>2]=0;H[c+20>>2]=0;H[c+8>>2]=0;H[c+12>>2]=0;H[b+304>>2]=0;H[b+308>>2]=0;H[b+296>>2]=0;H[b+300>>2]=0;H[b+288>>2]=0;H[b+292>>2]=0;H[b+280>>2]=0;H[b+284>>2]=0;H[b+272>>2]=0;H[b+276>>2]=0;H[b+264>>2]=0;H[b+268>>2]=0;F[b+352|0]=0;H[b+344>>2]=0;H[b+336>>2]=0;H[b+340>>2]=0;H[b+328>>2]=2;H[b+332>>2]=7;H[b+320>>2]=-1;H[b+324>>2]=0;H[b+312>>2]=0;H[b+316>>2]=-1;break d}if(!f){break c}}b=H[a+44>>2];F[e|0]=0;c=H[b+20>>2];if(!H[b+16>>2]&(c|0)<=0|(c|0)<0){Da(b,H[b+4>>2],e,e+1|0)}b=hl(296);H[b+4>>2]=0;H[b+8>>2]=0;H[b+72>>2]=0;H[b+76>>2]=0;H[b>>2]=10532;H[b+12>>2]=0;H[b+16>>2]=0;H[b+20>>2]=0;H[b+24>>2]=0;H[b+28>>2]=0;H[b+32>>2]=0;H[b+36>>2]=0;H[b+40>>2]=0;H[b+44>>2]=0;H[b+48>>2]=0;H[b+52>>2]=0;H[b+56>>2]=0;H[b+60>>2]=0;H[b+64>>2]=0;H[b+80>>2]=0;H[b+84>>2]=0;H[b+88>>2]=0;H[b+92>>2]=0;H[b+96>>2]=0;H[b+100>>2]=0;H[b+104>>2]=0;H[b+108>>2]=0;H[b+112>>2]=0;H[b+116>>2]=0;H[b+120>>2]=0;H[b+124>>2]=0;H[b+128>>2]=0;H[b+132>>2]=0;H[b+136>>2]=1065353216;H[b+156>>2]=0;H[b+160>>2]=0;H[b+148>>2]=0;H[b+152>>2]=0;H[b+140>>2]=0;H[b+144>>2]=0;H[b+168>>2]=0;H[b+172>>2]=0;H[b+164>>2]=-1;H[b+176>>2]=0;H[b+180>>2]=0;H[b+184>>2]=0;H[b+188>>2]=0;H[b+192>>2]=0;c=b+200|0;H[c>>2]=0;H[c+4>>2]=0;H[c+24>>2]=0;H[c+28>>2]=0;H[c+16>>2]=0;H[c+20>>2]=0;H[c+8>>2]=0;H[c+12>>2]=0;c=b+232|0;H[c>>2]=0;H[c+4>>2]=0;F[c+24|0]=0;H[c+16>>2]=0;H[c+20>>2]=0;H[c+8>>2]=0;H[c+12>>2]=0;F[b+288|0]=0;H[b+280>>2]=0;H[b+284>>2]=0;H[b+272>>2]=0;H[b+276>>2]=0;H[b+264>>2]=0;H[b+268>>2]=0}c=H[a+64>>2];H[a+64>>2]=b;if(!c){break b}la[H[H[c>>2]+4>>2]](c)}b=H[a+64>>2];if(b){break b}a=0;break a}a=la[H[H[b>>2]+8>>2]](b,a)|0}ha=e+16|0;return a|0}function Sb(a,b){var c=0,d=0,e=0,f=0,g=0,h=0;e=ha-16|0;ha=e;H[a+8>>2]=b;H[a>>2]=0;d=a+12|0;H[d>>2]=0;H[d+4>>2]=0;H[d+24>>2]=0;H[d+28>>2]=0;H[d+16>>2]=0;H[d+20>>2]=0;H[d+8>>2]=0;H[d+12>>2]=0;c=d+32|0;H[c>>2]=0;H[c+4>>2]=0;H[c+24>>2]=0;H[c+28>>2]=0;H[c+16>>2]=0;H[c+20>>2]=0;H[c+8>>2]=0;H[c+12>>2]=0;c=d- -64|0;H[c>>2]=0;H[c+4>>2]=0;H[c+24>>2]=0;H[c+28>>2]=0;H[c+16>>2]=0;H[c+20>>2]=0;H[c+8>>2]=0;H[c+12>>2]=0;c=d+96|0;H[c>>2]=0;H[c+4>>2]=0;H[c+24>>2]=0;H[c+28>>2]=0;H[c+16>>2]=0;H[c+20>>2]=0;H[c+8>>2]=0;H[c+12>>2]=0;c=d+128|0;H[c>>2]=0;H[c+4>>2]=0;H[c+24>>2]=0;H[c+28>>2]=0;H[c+16>>2]=0;H[c+20>>2]=0;H[c+8>>2]=0;H[c+12>>2]=0;c=d+160|0;H[c>>2]=0;H[c+4>>2]=0;H[c+24>>2]=0;H[c+28>>2]=0;H[c+16>>2]=0;H[c+20>>2]=0;H[c+8>>2]=0;H[c+12>>2]=0;c=d+192|0;H[c>>2]=0;H[c+4>>2]=0;H[c+24>>2]=0;H[c+28>>2]=0;H[c+16>>2]=0;H[c+20>>2]=0;H[c+8>>2]=0;H[c+12>>2]=0;c=d+224|0;H[c>>2]=0;H[c+4>>2]=0;H[c+24>>2]=0;H[c+28>>2]=0;H[c+16>>2]=0;H[c+20>>2]=0;H[c+8>>2]=0;H[c+12>>2]=0;c=d+256|0;H[c>>2]=0;H[c+4>>2]=0;H[c+24>>2]=0;H[c+28>>2]=0;H[c+16>>2]=0;H[c+20>>2]=0;H[c+8>>2]=0;H[c+12>>2]=0;c=d+288|0;H[c>>2]=0;H[c+4>>2]=0;H[c+24>>2]=0;H[c+28>>2]=0;H[c+16>>2]=0;H[c+20>>2]=0;H[c+8>>2]=0;H[c+12>>2]=0;c=d+320|0;H[c>>2]=0;H[c+4>>2]=0;H[c+24>>2]=0;H[c+28>>2]=0;H[c+16>>2]=0;H[c+20>>2]=0;H[c+8>>2]=0;H[c+12>>2]=0;c=d+352|0;H[c>>2]=0;H[c+4>>2]=0;H[c+24>>2]=0;H[c+28>>2]=0;H[c+16>>2]=0;H[c+20>>2]=0;H[c+8>>2]=0;H[c+12>>2]=0;c=d+384|0;H[c>>2]=0;H[c+4>>2]=0;H[c+24>>2]=0;H[c+28>>2]=0;H[c+16>>2]=0;H[c+20>>2]=0;H[c+8>>2]=0;H[c+12>>2]=0;c=d+416|0;H[c>>2]=0;H[c+4>>2]=0;H[c+24>>2]=0;H[c+28>>2]=0;H[c+16>>2]=0;H[c+20>>2]=0;H[c+8>>2]=0;H[c+12>>2]=0;c=d+448|0;H[c>>2]=0;H[c+4>>2]=0;H[c+24>>2]=0;H[c+28>>2]=0;H[c+16>>2]=0;H[c+20>>2]=0;H[c+8>>2]=0;H[c+12>>2]=0;c=d+480|0;H[c>>2]=0;H[c+4>>2]=0;H[c+24>>2]=0;H[c+28>>2]=0;H[c+16>>2]=0;H[c+20>>2]=0;H[c+8>>2]=0;H[c+12>>2]=0;c=d+512|0;H[c>>2]=0;H[c+4>>2]=0;H[c+24>>2]=0;H[c+28>>2]=0;H[c+16>>2]=0;H[c+20>>2]=0;H[c+8>>2]=0;H[c+12>>2]=0;c=d+544|0;H[c>>2]=0;H[c+4>>2]=0;H[c+24>>2]=0;H[c+28>>2]=0;H[c+16>>2]=0;H[c+20>>2]=0;H[c+8>>2]=0;H[c+12>>2]=0;c=d+576|0;H[c>>2]=0;H[c+4>>2]=0;H[c+24>>2]=0;H[c+28>>2]=0;H[c+16>>2]=0;H[c+20>>2]=0;H[c+8>>2]=0;H[c+12>>2]=0;c=d+608|0;H[c>>2]=0;H[c+4>>2]=0;H[c+24>>2]=0;H[c+28>>2]=0;H[c+16>>2]=0;H[c+20>>2]=0;H[c+8>>2]=0;H[c+12>>2]=0;c=d+640|0;H[c>>2]=0;H[c+4>>2]=0;H[c+24>>2]=0;H[c+28>>2]=0;H[c+16>>2]=0;H[c+20>>2]=0;H[c+8>>2]=0;H[c+12>>2]=0;c=d+672|0;H[c>>2]=0;H[c+4>>2]=0;H[c+24>>2]=0;H[c+28>>2]=0;H[c+16>>2]=0;H[c+20>>2]=0;H[c+8>>2]=0;H[c+12>>2]=0;c=d+704|0;H[c>>2]=0;H[c+4>>2]=0;H[c+24>>2]=0;H[c+28>>2]=0;H[c+16>>2]=0;H[c+20>>2]=0;H[c+8>>2]=0;H[c+12>>2]=0;c=d+736|0;H[c>>2]=0;H[c+4>>2]=0;H[c+24>>2]=0;H[c+28>>2]=0;H[c+16>>2]=0;H[c+20>>2]=0;H[c+8>>2]=0;H[c+12>>2]=0;c=d+768|0;H[c>>2]=0;H[c+4>>2]=0;H[c+24>>2]=0;H[c+28>>2]=0;H[c+16>>2]=0;H[c+20>>2]=0;H[c+8>>2]=0;H[c+12>>2]=0;c=d+800|0;H[c>>2]=0;H[c+4>>2]=0;H[c+24>>2]=0;H[c+28>>2]=0;H[c+16>>2]=0;H[c+20>>2]=0;H[c+8>>2]=0;H[c+12>>2]=0;c=d+832|0;H[c>>2]=0;H[c+4>>2]=0;H[c+24>>2]=0;H[c+28>>2]=0;H[c+16>>2]=0;H[c+20>>2]=0;H[c+8>>2]=0;H[c+12>>2]=0;c=d+864|0;H[c>>2]=0;H[c+4>>2]=0;H[c+24>>2]=0;H[c+28>>2]=0;H[c+16>>2]=0;H[c+20>>2]=0;H[c+8>>2]=0;H[c+12>>2]=0;c=d+896|0;H[c>>2]=0;H[c+4>>2]=0;H[c+24>>2]=0;H[c+28>>2]=0;H[c+16>>2]=0;H[c+20>>2]=0;H[c+8>>2]=0;H[c+12>>2]=0;c=d+928|0;H[c>>2]=0;H[c+4>>2]=0;H[c+24>>2]=0;H[c+28>>2]=0;H[c+16>>2]=0;H[c+20>>2]=0;H[c+8>>2]=0;H[c+12>>2]=0;c=d+960|0;H[c>>2]=0;H[c+4>>2]=0;H[c+24>>2]=0;H[c+28>>2]=0;H[c+16>>2]=0;H[c+20>>2]=0;H[c+8>>2]=0;H[c+12>>2]=0;d=d+992|0;H[d>>2]=0;H[d+4>>2]=0;H[d+24>>2]=0;H[d+28>>2]=0;H[d+16>>2]=0;H[d+20>>2]=0;H[d+8>>2]=0;H[d+12>>2]=0;d=a+1036|0;H[d>>2]=0;H[d+4>>2]=0;H[d+24>>2]=0;H[d+28>>2]=0;H[d+16>>2]=0;H[d+20>>2]=0;H[d+8>>2]=0;H[d+12>>2]=0;d=a+1068|0;H[d>>2]=0;H[d+4>>2]=0;H[d+16>>2]=0;H[d+8>>2]=0;H[d+12>>2]=0;d=a+1088|0;H[d>>2]=0;H[d+4>>2]=0;H[d+16>>2]=0;H[d+8>>2]=0;H[d+12>>2]=0;d=a+1108|0;H[d>>2]=0;H[d+4>>2]=0;H[d+16>>2]=0;H[d+8>>2]=0;H[d+12>>2]=0;H[a+1136>>2]=0;H[a+1128>>2]=0;H[a+1132>>2]=0;h=a+1164|0;a:{b:{if(b){if(b>>>0<1073741824){break b}Ka();X()}H[a+1140>>2]=0;H[a+1144>>2]=0;d=a+1156|0;H[d>>2]=0;H[d+4>>2]=0;d=a+1148|0;H[d>>2]=0;H[d+4>>2]=0;H[e+8>>2]=0;H[e>>2]=0;H[e+4>>2]=0;d=1;break a}d=b<<2;c=hl(d);H[a+1128>>2]=c;f=c+d|0;H[a+1136>>2]=f;lk(c,0,d);g=a+1148|0;H[g>>2]=0;H[a+1140>>2]=0;H[a+1144>>2]=0;H[a+1132>>2]=f;c=hl(d);H[a+1140>>2]=c;f=c+d|0;H[g>>2]=f;lk(c,0,d);g=a+1160|0;H[g>>2]=0;H[a+1152>>2]=0;H[a+1156>>2]=0;H[a+1144>>2]=f;c=hl(d);H[a+1152>>2]=c;f=c+d|0;H[g>>2]=f;lk(c,0,d);H[a+1156>>2]=f;c=hl(d);H[e>>2]=c;f=c+d|0;H[e+8>>2]=f;lk(c,0,d);H[e+4>>2]=f;d=b<<5|1}ac(h,d,e);c=H[e>>2];if(c){H[e+4>>2]=c;bl(c)}H[e+8>>2]=0;H[e>>2]=0;H[e+4>>2]=0;if(b){b=b<<2;c=hl(b);H[e>>2]=c;f=b+c|0;H[e+8>>2]=f;lk(c,0,b);H[e+4>>2]=f}ac(a+1176|0,d,e);b=H[e>>2];if(b){H[e+4>>2]=b;bl(b)}ha=e+16|0;return a}function Dd(a,b,c,d){var e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,G=0,J=0,K=0,L=0,M=0,N=0,O=0,P=0,Q=0,R=0,S=0;i=ha-80|0;ha=i;f=-1;a:{if((b|0)==-1){break a}j=H[a+32>>2];e=b+1|0;e=(e>>>0)%3|0?e:b-2|0;if((e|0)!=-1){f=H[H[j>>2]+(e<<2)>>2]}e=((b>>>0)%3|0?-1:2)+b|0;b=-1;b=(e|0)!=-1?H[H[j>>2]+(e<<2)>>2]:b;e=H[a+36>>2];j=H[e>>2];e=H[e+4>>2]-j>>2;if(e>>>0<=f>>>0|b>>>0>=e>>>0){break a}b:{c:{d:{e:{f:{g:{h:{i:{k=H[j+(b<<2)>>2];g=H[j+(f<<2)>>2];if((k|0)>=(d|0)|(g|0)>=(d|0)){break i}b=(k<<3)+c|0;j=H[b+4>>2];e=(g<<3)+c|0;f=H[e+4>>2];q=H[e>>2];z=H[b>>2];if(!((q|0)!=(z|0)|(f|0)!=(j|0))){H[a+8>>2]=q;H[a+12>>2]=f;break h}b=H[H[a+4>>2]+(d<<2)>>2];H[i+72>>2]=0;H[i+76>>2]=0;e=i- -64|0;H[e>>2]=0;H[e+4>>2]=0;H[i+56>>2]=0;H[i+60>>2]=0;e=H[a>>2];if(!I[e+84|0]){b=H[H[e+68>>2]+(b<<2)>>2]}ld(e,b,F[e+24|0],i+56|0);b=H[H[a+4>>2]+(g<<2)>>2];H[i+48>>2]=0;H[i+52>>2]=0;H[i+40>>2]=0;H[i+44>>2]=0;H[i+32>>2]=0;H[i+36>>2]=0;e=H[a>>2];if(!I[e+84|0]){b=H[H[e+68>>2]+(b<<2)>>2]}ld(e,b,F[e+24|0],i+32|0);b=H[H[a+4>>2]+(k<<2)>>2];H[i+24>>2]=0;H[i+28>>2]=0;H[i+16>>2]=0;H[i+20>>2]=0;H[i+8>>2]=0;H[i+12>>2]=0;e=H[a>>2];if(!I[e+84|0]){b=H[H[e+68>>2]+(b<<2)>>2]}ld(e,b,F[e+24|0],i+8|0);K=H[i+44>>2];b=H[i+16>>2];w=H[i+40>>2];e=w;h=H[i+20>>2]-(K+(b>>>0>>0)|0)|0;r=b-e|0;b=Sl(r,h,r,h);m=ka;l=b;L=H[i+36>>2];b=H[i+8>>2];A=H[i+32>>2];e=A;o=H[i+12>>2]-(L+(b>>>0>>0)|0)|0;k=b-e|0;n=Sl(k,o,k,o);e=l+n|0;b=ka+m|0;b=e>>>0>>0?b+1|0:b;l=e;M=H[i+52>>2];e=H[i+24>>2];B=H[i+48>>2];n=B;m=H[i+28>>2]-(M+(e>>>0>>0)|0)|0;t=e-n|0;p=Sl(t,m,t,m);n=l+p|0;e=ka+b|0;s=n;n=n>>>0

>>0?e+1|0:e;if(!(s|n)){break i}u=H[i+64>>2];b=u;D=H[i+68>>2];b=Sl(b-w|0,D-((b>>>0>>0)+K|0)|0,r,h);e=ka;l=b;J=H[i+56>>2];b=J;G=H[i+60>>2];g=Sl(b-A|0,G-((b>>>0>>0)+L|0)|0,k,o);b=l+g|0;e=ka+e|0;e=b>>>0>>0?e+1|0:e;g=b;N=H[i+72>>2];b=N;O=H[i+76>>2];p=Sl(b-B|0,O-((b>>>0>>0)+M|0)|0,t,m);g=g+p|0;b=ka+e|0;b=g>>>0

>>0?b+1|0:b;p=g;C=b;e=o>>31;g=e;l=e^k;e=(e^o)-(e+(e>>>0>l>>>0)|0)|0;v=l-g|0;E=h>>31;l=E;g=l;x=g^r;y=x-g|0;g=(h^g)-((g>>>0>x>>>0)+g|0)|0;l=(g|0)==(e|0)&v>>>0>y>>>0|e>>>0>g>>>0;v=l?v:y;e=l?e:g;E=m>>31;l=E;g=l;x=g^t;y=x-g|0;g=(m^g)-((g>>>0>x>>>0)+g|0)|0;l=(g|0)==(e|0)&v>>>0>y>>>0|e>>>0>g>>>0;x=Ul(-1,2147483647,l?v:y,l?e:g);v=ka;e=v;if(x>>>0

>>0&(e|0)<=(b|0)|(b|0)>(e|0)){break d}b=f;y=j-b|0;e=b>>31;P=(j>>31)-(e+(b>>>0>j>>>0)|0)|0;b=Sl(p,C,y,P);j=ka;e=Sl(f,e,s,n);f=e+b|0;b=ka+j|0;g=f;l=e>>>0>f>>>0?b+1|0:b;b=q;Q=z-b|0;f=b>>31;E=(z>>31)-(f+(b>>>0>z>>>0)|0)|0;b=Sl(p,C,Q,E);j=ka;f=Sl(q,f,s,n);b=f+b|0;e=ka+j|0;q=b;z=b>>>0>>0?e+1|0:e;j=1;f=0;b=u;r=Tl(Sl(r,h,p,C),ka,s,n);h=r+w|0;e=ka+K|0;e=h>>>0>>0?e+1|0:e;e=D-((b>>>0>>0)+e|0)|0;b=b-h|0;b=Sl(b,e,b,e);h=ka;e=J;u=b;o=Tl(Sl(k,o,p,C),ka,s,n);k=o+A|0;b=ka+L|0;b=k>>>0>>0?b+1|0:b;b=G-((e>>>0>>0)+b|0)|0;e=e-k|0;k=Sl(e,b,e,b);b=u+k|0;e=ka+h|0;h=b;k=b>>>0>>0?e+1|0:e;b=N;u=h;o=Tl(Sl(t,m,p,C),ka,s,n);h=o+B|0;e=ka+M|0;e=h>>>0>>0?e+1|0:e;e=O-((b>>>0>>0)+e|0)|0;b=b-h|0;h=Sl(b,e,b,e);e=u+h|0;b=ka+k|0;k=Sl(e,e>>>0>>0?b+1|0:b,s,n);b=ka;h=b;if(!b&k>>>0<=1){break g}o=k;e=h;while(1){b=f<<1|j>>>31;j=j<<1;f=b;m=!e&o>>>0>7|(e|0)!=0;o=(e&3)<<30|o>>>2;e=e>>>2|0;if(m){continue}break}break f}if((d|0)>(g|0)){b=g<<1}else{if((d|0)<=0){H[a+8>>2]=0;H[a+12>>2]=0;break h}b=(d<<1)-2|0}b=(b<<2)+c|0;H[a+8>>2]=H[b>>2];H[a+12>>2]=H[b+4>>2]}a=1;break c}f=h;j=k;if(j-1|0){break e}}while(1){b=Ul(k,h,j,f)+j|0;e=f+ka|0;e=b>>>0>>0?e+1|0:e;j=(e&1)<<31|b>>>1;f=e>>>1|0;b=Sl(j,f,j,f);e=ka;if((h|0)==(e|0)&b>>>0>k>>>0|e>>>0>h>>>0){continue}break}}k=a+16|0;w=H[a+24>>2];A=w<<5;b=H[a+20>>2];h=(d<<3)+c|0;d=H[h+4>>2];B=Sl(j,f,Q,E);c=B;u=ka;c=Tl(g-c|0,l-(u+(c>>>0>g>>>0)|0)|0,s,n);m=d-c|0;o=d>>31;e=o-(ka+(c>>>0>d>>>0)|0)|0;D=Sl(m,e,m,e);J=ka;h=H[h>>2];e=h>>31;m=h;r=e;t=Sl(j,f,y,P);f=q+t|0;G=ka;e=z+G|0;j=Tl(f,f>>>0>>0?e+1|0:e,s,n);e=h-j|0;f=r-(ka+(h>>>0>>0)|0)|0;h=Sl(e,f,e,f);f=h+D|0;e=ka+J|0;D=f;h=f>>>0>>0?e+1|0:e;f=d;e=l+u|0;d=g+B|0;e=d>>>0>>0?e+1|0:e;d=Tl(d,e,s,n);e=o-(ka+(d>>>0>f>>>0)|0)|0;f=f-d|0;e=Sl(f,e,f,e);g=ka;f=Tl(q-t|0,z-((q>>>0>>0)+G|0)|0,s,n);l=e;e=r-(ka+(f>>>0>m>>>0)|0)|0;m=m-f|0;q=Sl(m,e,m,e);m=l+q|0;e=ka+g|0;e=m>>>0>>0?e+1|0:e;j:{if((e|0)==(h|0)&m>>>0>D>>>0|e>>>0>h>>>0){if((b|0)==(A|0)){if((b+1|0)<0){break b}if(b>>>0<=1073741822){d=w<<6;b=b+32&-32;b=b>>>0>>0?d:b}else{b=2147483647}Hc(k,b);b=H[a+20>>2]}H[a+20>>2]=b+1;d=H[a+16>>2]+(b>>>3&536870908)|0;H[d>>2]=H[d>>2]|1<>>0<=1073741822){c=w<<6;b=b+32&-32;b=b>>>0>>0?c:b}else{b=2147483647}Hc(k,b);b=H[a+20>>2]}H[a+20>>2]=b+1;c=H[a+16>>2]+(b>>>3&536870908)|0;j=H[c>>2];R=c,S=Wl(b)&j,H[R>>2]=S;c=d;j=f}H[a+8>>2]=j;H[a+12>>2]=c}a=(C|0)<=(v|0)&p>>>0<=x>>>0|(C|0)<(v|0)}ha=i+80|0;return a}Ka();X()}Yc();X()}function kd(a,b,c,d){var e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,G=0,J=0,K=0,L=0,M=0,N=0,O=0,P=0,Q=0,R=0,S=0;i=ha-80|0;ha=i;j=-1;f=-1;a:{if((b|0)==-1){break a}f=b+1|0;j=(f>>>0)%3|0?f:b-2|0;f=b-1|0;if((b>>>0)%3|0){break a}f=b+2|0}b:{e=H[a+36>>2];b=H[e>>2];c:{d:{e:{f:{g:{h:{e=H[e+4>>2]-b>>2;h=j<<2;j=H[H[a+32>>2]+28>>2];k=H[h+j>>2];if(e>>>0<=k>>>0){break h}f=H[j+(f<<2)>>2];if(f>>>0>=e>>>0){break h}g=H[b+(k<<2)>>2];i:{j:{k=H[b+(f<<2)>>2];if((d|0)<=(g|0)|(k|0)>=(d|0)){break j}b=(k<<3)+c|0;j=H[b+4>>2];e=(g<<3)+c|0;f=H[e+4>>2];q=H[e>>2];z=H[b>>2];if(!((q|0)!=(z|0)|(f|0)!=(j|0))){H[a+8>>2]=q;H[a+12>>2]=f;break i}b=H[H[a+4>>2]+(d<<2)>>2];H[i+72>>2]=0;H[i+76>>2]=0;e=i- -64|0;H[e>>2]=0;H[e+4>>2]=0;H[i+56>>2]=0;H[i+60>>2]=0;e=H[a>>2];if(!I[e+84|0]){b=H[H[e+68>>2]+(b<<2)>>2]}ld(e,b,F[e+24|0],i+56|0);b=H[H[a+4>>2]+(g<<2)>>2];H[i+48>>2]=0;H[i+52>>2]=0;H[i+40>>2]=0;H[i+44>>2]=0;H[i+32>>2]=0;H[i+36>>2]=0;e=H[a>>2];if(!I[e+84|0]){b=H[H[e+68>>2]+(b<<2)>>2]}ld(e,b,F[e+24|0],i+32|0);b=H[H[a+4>>2]+(k<<2)>>2];H[i+24>>2]=0;H[i+28>>2]=0;H[i+16>>2]=0;H[i+20>>2]=0;H[i+8>>2]=0;H[i+12>>2]=0;e=H[a>>2];if(!I[e+84|0]){b=H[H[e+68>>2]+(b<<2)>>2]}ld(e,b,F[e+24|0],i+8|0);J=H[i+44>>2];b=H[i+16>>2];w=H[i+40>>2];e=w;h=H[i+20>>2]-(J+(b>>>0>>0)|0)|0;r=b-e|0;b=Sl(r,h,r,h);l=ka;n=b;K=H[i+36>>2];b=H[i+8>>2];A=H[i+32>>2];e=A;o=H[i+12>>2]-(K+(b>>>0>>0)|0)|0;k=b-e|0;m=Sl(k,o,k,o);e=n+m|0;b=ka+l|0;b=e>>>0>>0?b+1|0:b;n=e;L=H[i+52>>2];e=H[i+24>>2];B=H[i+48>>2];m=B;l=H[i+28>>2]-(L+(e>>>0>>0)|0)|0;t=e-m|0;p=Sl(t,l,t,l);m=n+p|0;e=ka+b|0;s=m;m=m>>>0

>>0?e+1|0:e;if(!(s|m)){break j}u=H[i+64>>2];b=u;D=H[i+68>>2];b=Sl(b-w|0,D-((b>>>0>>0)+J|0)|0,r,h);e=ka;n=b;G=H[i+56>>2];b=G;E=H[i+60>>2];g=Sl(b-A|0,E-((b>>>0>>0)+K|0)|0,k,o);b=n+g|0;e=ka+e|0;e=b>>>0>>0?e+1|0:e;g=b;M=H[i+72>>2];b=M;N=H[i+76>>2];p=Sl(b-B|0,N-((b>>>0>>0)+L|0)|0,t,l);g=g+p|0;b=ka+e|0;b=g>>>0

>>0?b+1|0:b;p=g;C=b;e=o>>31;g=e;n=e^k;e=(e^o)-(e+(e>>>0>n>>>0)|0)|0;v=n-g|0;g=h>>31;x=g^r;y=x-g|0;g=(h^g)-((g>>>0>x>>>0)+g|0)|0;n=(g|0)==(e|0)&v>>>0>y>>>0|e>>>0>g>>>0;v=n?v:y;e=n?e:g;g=l>>31;x=g^t;y=x-g|0;g=(l^g)-((g>>>0>x>>>0)+g|0)|0;n=(g|0)==(e|0)&v>>>0>y>>>0|e>>>0>g>>>0;x=Ul(-1,2147483647,n?v:y,n?e:g);v=ka;e=v;if(x>>>0

>>0&(e|0)<=(b|0)|(b|0)>(e|0)){break d}b=f;y=j-b|0;e=b>>31;O=(j>>31)-(e+(b>>>0>j>>>0)|0)|0;b=Sl(p,C,y,O);j=ka;e=Sl(f,e,s,m);f=e+b|0;b=ka+j|0;g=f;n=e>>>0>f>>>0?b+1|0:b;b=q;P=z-b|0;f=b>>31;Q=(z>>31)-(f+(b>>>0>z>>>0)|0)|0;b=Sl(p,C,P,Q);j=ka;f=Sl(q,f,s,m);b=f+b|0;e=ka+j|0;q=b;z=b>>>0>>0?e+1|0:e;j=1;f=0;b=u;r=Tl(Sl(r,h,p,C),ka,s,m);h=r+w|0;e=ka+J|0;e=h>>>0>>0?e+1|0:e;e=D-((b>>>0>>0)+e|0)|0;b=b-h|0;b=Sl(b,e,b,e);h=ka;e=G;u=b;o=Tl(Sl(k,o,p,C),ka,s,m);k=o+A|0;b=ka+K|0;b=k>>>0>>0?b+1|0:b;b=E-((e>>>0>>0)+b|0)|0;e=e-k|0;k=Sl(e,b,e,b);b=u+k|0;e=ka+h|0;h=b;k=b>>>0>>0?e+1|0:e;b=M;u=h;o=Tl(Sl(t,l,p,C),ka,s,m);h=o+B|0;e=ka+L|0;e=h>>>0>>0?e+1|0:e;e=N-((b>>>0>>0)+e|0)|0;b=b-h|0;h=Sl(b,e,b,e);e=u+h|0;b=ka+k|0;k=Sl(e,e>>>0>>0?b+1|0:b,s,m);b=ka;h=b;if(!b&k>>>0<=1){break g}o=k;e=h;while(1){b=f<<1|j>>>31;j=j<<1;f=b;l=!e&o>>>0>7|(e|0)!=0;o=(e&3)<<30|o>>>2;e=e>>>2|0;if(l){continue}break}break f}if((d|0)>(g|0)){b=g<<1}else{if((d|0)<=0){H[a+8>>2]=0;H[a+12>>2]=0;break i}b=(d<<1)-2|0}b=(b<<2)+c|0;H[a+8>>2]=H[b>>2];H[a+12>>2]=H[b+4>>2]}a=1;break c}Yc();X()}f=h;j=k;if(k-1|0){break e}}while(1){b=Ul(k,h,j,f)+j|0;e=f+ka|0;e=b>>>0>>0?e+1|0:e;j=(e&1)<<31|b>>>1;f=e>>>1|0;b=Sl(j,f,j,f);e=ka;if((h|0)==(e|0)&b>>>0>k>>>0|e>>>0>h>>>0){continue}break}}k=a+16|0;w=H[a+24>>2];A=w<<5;b=H[a+20>>2];h=(d<<3)+c|0;d=H[h+4>>2];B=Sl(j,f,P,Q);c=B;u=ka;c=Tl(g-c|0,n-(u+(c>>>0>g>>>0)|0)|0,s,m);l=d-c|0;o=d>>31;e=o-(ka+(c>>>0>d>>>0)|0)|0;D=Sl(l,e,l,e);G=ka;h=H[h>>2];e=h>>31;l=h;r=e;t=Sl(j,f,y,O);f=q+t|0;E=ka;e=z+E|0;j=Tl(f,f>>>0>>0?e+1|0:e,s,m);e=h-j|0;f=r-(ka+(h>>>0>>0)|0)|0;h=Sl(e,f,e,f);f=h+D|0;e=ka+G|0;D=f;h=f>>>0>>0?e+1|0:e;f=d;e=n+u|0;d=g+B|0;e=d>>>0>>0?e+1|0:e;d=Tl(d,e,s,m);e=o-(ka+(d>>>0>f>>>0)|0)|0;f=f-d|0;e=Sl(f,e,f,e);g=ka;f=Tl(q-t|0,z-((q>>>0>>0)+E|0)|0,s,m);n=e;e=r-(ka+(f>>>0>l>>>0)|0)|0;l=l-f|0;q=Sl(l,e,l,e);l=n+q|0;e=ka+g|0;e=l>>>0>>0?e+1|0:e;k:{if((e|0)==(h|0)&l>>>0>D>>>0|e>>>0>h>>>0){if((b|0)==(A|0)){if((b+1|0)<0){break b}if(b>>>0<=1073741822){d=w<<6;b=b+32&-32;b=b>>>0>>0?d:b}else{b=2147483647}Hc(k,b);b=H[a+20>>2]}H[a+20>>2]=b+1;d=H[a+16>>2]+(b>>>3&536870908)|0;H[d>>2]=H[d>>2]|1<>>0<=1073741822){c=w<<6;b=b+32&-32;b=b>>>0>>0?c:b}else{b=2147483647}Hc(k,b);b=H[a+20>>2]}H[a+20>>2]=b+1;c=H[a+16>>2]+(b>>>3&536870908)|0;j=H[c>>2];R=c,S=Wl(b)&j,H[R>>2]=S;c=d;j=f}H[a+8>>2]=j;H[a+12>>2]=c}a=(C|0)<=(v|0)&p>>>0<=x>>>0|(C|0)<(v|0)}ha=i+80|0;return a}Ka();X()}function Zk(a){var b=0,c=0,d=0,e=0,f=0,g=0;e=ha-16|0;ha=e;H[e+12>>2]=a;a:{if(a>>>0<=211){d=H[_k(17792,17984,e+12|0)>>2];break a}if(a>>>0>=4294967292){da();X()}f=(a>>>0)/210|0;d=N(f,210);H[e+8>>2]=a-d;g=_k(17984,18176,e+8|0)-17984>>2;while(1){d=H[(g<<2)+17984>>2]+d|0;a=5;b:{while(1){c:{if((a|0)==47){a=211;while(1){b=(d>>>0)/(a>>>0)|0;if(b>>>0>>0){break b}if((N(a,b)|0)==(d|0)){break c}b=a+10|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break b}if((N(b,c)|0)==(d|0)){break c}b=a+12|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break b}if((N(b,c)|0)==(d|0)){break c}b=a+16|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break b}if((N(b,c)|0)==(d|0)){break c}b=a+18|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break b}if((N(b,c)|0)==(d|0)){break c}b=a+22|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break b}if((N(b,c)|0)==(d|0)){break c}b=a+28|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break b}if((N(b,c)|0)==(d|0)){break c}b=a+30|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break b}if((N(b,c)|0)==(d|0)){break c}b=a+36|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break b}if((N(b,c)|0)==(d|0)){break c}b=a+40|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break b}if((N(b,c)|0)==(d|0)){break c}b=a+42|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break b}if((N(b,c)|0)==(d|0)){break c}b=a+46|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break b}if((N(b,c)|0)==(d|0)){break c}b=a+52|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break b}if((N(b,c)|0)==(d|0)){break c}b=a+58|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break b}if((N(b,c)|0)==(d|0)){break c}b=a+60|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break b}if((N(b,c)|0)==(d|0)){break c}b=a+66|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break b}if((N(b,c)|0)==(d|0)){break c}b=a+70|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break b}if((N(b,c)|0)==(d|0)){break c}b=a+72|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break b}if((N(b,c)|0)==(d|0)){break c}b=a+78|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break b}if((N(b,c)|0)==(d|0)){break c}b=a+82|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break b}if((N(b,c)|0)==(d|0)){break c}b=a+88|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break b}if((N(b,c)|0)==(d|0)){break c}b=a+96|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break b}if((N(b,c)|0)==(d|0)){break c}b=a+100|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break b}if((N(b,c)|0)==(d|0)){break c}b=a+102|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break b}if((N(b,c)|0)==(d|0)){break c}b=a+106|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break b}if((N(b,c)|0)==(d|0)){break c}b=a+108|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break b}if((N(b,c)|0)==(d|0)){break c}b=a+112|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break b}if((N(b,c)|0)==(d|0)){break c}b=a+120|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break b}if((N(b,c)|0)==(d|0)){break c}b=a+126|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break b}if((N(b,c)|0)==(d|0)){break c}b=a+130|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break b}if((N(b,c)|0)==(d|0)){break c}b=a+136|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break b}if((N(b,c)|0)==(d|0)){break c}b=a+138|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break b}if((N(b,c)|0)==(d|0)){break c}b=a+142|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break b}if((N(b,c)|0)==(d|0)){break c}b=a+148|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break b}if((N(b,c)|0)==(d|0)){break c}b=a+150|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break b}if((N(b,c)|0)==(d|0)){break c}b=a+156|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break b}if((N(b,c)|0)==(d|0)){break c}b=a+162|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break b}if((N(b,c)|0)==(d|0)){break c}b=a+166|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break b}if((N(b,c)|0)==(d|0)){break c}b=a+168|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break b}if((N(b,c)|0)==(d|0)){break c}b=a+172|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break b}if((N(b,c)|0)==(d|0)){break c}b=a+178|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break b}if((N(b,c)|0)==(d|0)){break c}b=a+180|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break b}if((N(b,c)|0)==(d|0)){break c}b=a+186|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break b}if((N(b,c)|0)==(d|0)){break c}b=a+190|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break b}if((N(b,c)|0)==(d|0)){break c}b=a+192|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break b}if((N(b,c)|0)==(d|0)){break c}b=a+196|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break b}if((N(b,c)|0)==(d|0)){break c}b=a+198|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break b}if((N(b,c)|0)==(d|0)){break c}b=a+208|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break b}a=a+210|0;if((N(b,c)|0)!=(d|0)){continue}break}break c}b=H[(a<<2)+17792>>2];c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break b}a=a+1|0;if((N(b,c)|0)!=(d|0)){continue}}break}d=g+1|0;a=(d|0)==48;g=a?0:d;f=a+f|0;d=N(f,210);continue}break}H[e+12>>2]=d}ha=e+16|0;return d}function Mc(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0;g=ha-32|0;ha=g;a:{b:{if(!H[H[a+8>>2]+80>>2]){d=1;break b}F[g+31|0]=254;i=H[a+36>>2];if(i){if(!(la[H[H[a>>2]+40>>2]](a,i)|0)){break b}d=H[a+36>>2];n=g,o=la[H[H[d>>2]+8>>2]](d)|0,F[n+31|0]=o}d=H[c+20>>2];if(!H[c+16>>2]&(d|0)<=0|(d|0)<0){Da(c,H[c+4>>2],g+31|0,g+32|0)}d=H[a+36>>2];c:{if(!d){break c}n=g,o=la[H[H[d>>2]+36>>2]](d)|0,F[n+16|0]=o;d=H[c+20>>2];if(!!H[c+16>>2]&(d|0)>=0|(d|0)>0){break c}Da(c,H[c+4>>2],g+16|0,g+17|0)}d=H[a+32>>2];e=H[d+48>>2];f=H[H[d>>2]>>2];h=H[d+80>>2];k=F[d+24|0];i=0;H[g+24>>2]=0;H[g+16>>2]=0;H[g+20>>2]=0;h=N(h,k);if(h){if(h>>>0>=1073741824){break a}d=h<<2;i=hl(d);H[g+16>>2]=i;j=d+i|0;H[g+24>>2]=j;lk(i,0,d);H[g+20>>2]=j}e=e+f|0;f=H[a+36>>2];d:{e:{f:{if(!f){break f}d=0;if(!(la[H[H[f>>2]+44>>2]](f,e,i,h,k,H[b>>2])|0)){break d}d=H[a+36>>2];if(!d){break f}if(la[H[H[d>>2]+32>>2]](d)|0){break e}e=H[a+36>>2]?i:e}d=0;f=0;g:{if((h|0)<=0){break g}if((h|0)!=1){m=h&-2;while(1){l=d<<2;j=H[l+e>>2];H[i+l>>2]=(j|0)<0?(j^-1)<<1|1:j<<1;l=l|4;j=H[l+e>>2];H[i+l>>2]=(j|0)<0?(j^-1)<<1|1:j<<1;d=d+2|0;f=f+2|0;if((m|0)!=(f|0)){continue}break}}if(!(h&1)){break g}f=e;e=d<<2;d=H[f+e>>2];H[e+i>>2]=(d|0)<0?(d^-1)<<1|1:d<<1}}h:{i:{j:{k:{d=H[a+4>>2];if(!d){break k}j=H[d+48>>2];d=hl(48);H[g>>2]=d;H[g+4>>2]=34;H[g+8>>2]=-2147483600;F[d+34|0]=0;e=I[1411]|I[1412]<<8;F[d+32|0]=e;F[d+33|0]=e>>>8;e=I[1407]|I[1408]<<8|(I[1409]<<16|I[1410]<<24);f=I[1403]|I[1404]<<8|(I[1405]<<16|I[1406]<<24);F[d+24|0]=f;F[d+25|0]=f>>>8;F[d+26|0]=f>>>16;F[d+27|0]=f>>>24;F[d+28|0]=e;F[d+29|0]=e>>>8;F[d+30|0]=e>>>16;F[d+31|0]=e>>>24;e=I[1399]|I[1400]<<8|(I[1401]<<16|I[1402]<<24);f=I[1395]|I[1396]<<8|(I[1397]<<16|I[1398]<<24);F[d+16|0]=f;F[d+17|0]=f>>>8;F[d+18|0]=f>>>16;F[d+19|0]=f>>>24;F[d+20|0]=e;F[d+21|0]=e>>>8;F[d+22|0]=e>>>16;F[d+23|0]=e>>>24;e=I[1391]|I[1392]<<8|(I[1393]<<16|I[1394]<<24);f=I[1387]|I[1388]<<8|(I[1389]<<16|I[1390]<<24);F[d+8|0]=f;F[d+9|0]=f>>>8;F[d+10|0]=f>>>16;F[d+11|0]=f>>>24;F[d+12|0]=e;F[d+13|0]=e>>>8;F[d+14|0]=e>>>16;F[d+15|0]=e>>>24;e=I[1383]|I[1384]<<8|(I[1385]<<16|I[1386]<<24);f=I[1379]|I[1380]<<8|(I[1381]<<16|I[1382]<<24);F[d|0]=f;F[d+1|0]=f>>>8;F[d+2|0]=f>>>16;F[d+3|0]=f>>>24;F[d+4|0]=e;F[d+5|0]=e>>>8;F[d+6|0]=e>>>16;F[d+7|0]=e>>>24;d=pi(j,g,1);if(F[g+11|0]<0){bl(H[g>>2])}if(d){break k}if(!h){break j}e=0;d=0;b=0;if(h-1>>>0>=3){j=h&-4;f=0;while(1){k=d<<2;b=H[(k|12)+i>>2]|(H[(k|8)+i>>2]|(H[(k|4)+i>>2]|(H[i+k>>2]|b)));d=d+4|0;f=f+4|0;if((j|0)!=(f|0)){continue}break}}f=h&3;if(f){while(1){b=H[(d<<2)+i>>2]|b;d=d+1|0;e=e+1|0;if((f|0)!=(e|0)){continue}break}}if(!b){break j}b=4-(Q(b)>>>3|0)|0;break i}F[g|0]=1;d=H[c+20>>2];if(!H[c+16>>2]&(d|0)<=0|(d|0)<0){Da(c,H[c+4>>2],g,g+1|0)}H[g+4>>2]=0;H[g+8>>2]=0;H[g>>2]=g+4;d=H[a+4>>2];if(d){j=10-Qb(H[d+48>>2])|0;h=ha-16|0;ha=h;l:{if(j>>>0>10){break l}d=hl(48);H[h>>2]=d;H[h+4>>2]=33;H[h+8>>2]=-2147483600;F[d+33|0]=0;F[d+32|0]=I[1470];e=I[1466]|I[1467]<<8|(I[1468]<<16|I[1469]<<24);f=I[1462]|I[1463]<<8|(I[1464]<<16|I[1465]<<24);F[d+24|0]=f;F[d+25|0]=f>>>8;F[d+26|0]=f>>>16;F[d+27|0]=f>>>24;F[d+28|0]=e;F[d+29|0]=e>>>8;F[d+30|0]=e>>>16;F[d+31|0]=e>>>24;e=I[1458]|I[1459]<<8|(I[1460]<<16|I[1461]<<24);f=I[1454]|I[1455]<<8|(I[1456]<<16|I[1457]<<24);F[d+16|0]=f;F[d+17|0]=f>>>8;F[d+18|0]=f>>>16;F[d+19|0]=f>>>24;F[d+20|0]=e;F[d+21|0]=e>>>8;F[d+22|0]=e>>>16;F[d+23|0]=e>>>24;e=I[1450]|I[1451]<<8|(I[1452]<<16|I[1453]<<24);f=I[1446]|I[1447]<<8|(I[1448]<<16|I[1449]<<24);F[d+8|0]=f;F[d+9|0]=f>>>8;F[d+10|0]=f>>>16;F[d+11|0]=f>>>24;F[d+12|0]=e;F[d+13|0]=e>>>8;F[d+14|0]=e>>>16;F[d+15|0]=e>>>24;e=I[1442]|I[1443]<<8|(I[1444]<<16|I[1445]<<24);f=I[1438]|I[1439]<<8|(I[1440]<<16|I[1441]<<24);F[d|0]=f;F[d+1|0]=f>>>8;F[d+2|0]=f>>>16;F[d+3|0]=f>>>24;F[d+4|0]=e;F[d+5|0]=e>>>8;F[d+6|0]=e>>>16;F[d+7|0]=e>>>24;ki(g,h,j);if(F[h+11|0]>=0){break l}bl(H[h>>2])}ha=h+16|0}b=kf(i,N(k,H[b+4>>2]-H[b>>2]>>2),k,g,c);Nc(g,H[g+4>>2]);d=0;if(b){break h}break d}b=1}F[g|0]=0;d=H[c+20>>2];m:{if(!!H[c+16>>2]&(d|0)>=0|(d|0)>0){break m}e=g+1|0;Da(c,H[c+4>>2],g,e);d=H[c+20>>2];f=H[c+16>>2];F[g|0]=b;if(!!f&(d|0)>=0|(d|0)>0){break m}Da(c,H[c+4>>2],g,e)}n:{if((b|0)!=H[3712]){if(!h){break h}d=H[c+20>>2];e=d;f=H[c+16>>2];if(!!f&(d|0)>=0|(d|0)>0){break h}d=0;break n}b=H[c+20>>2];if(!!H[c+16>>2]&(b|0)>=0|(b|0)>0){break h}Da(c,H[c+4>>2],i,(h<<2)+i|0);break h}while(1){if(!f&(e|0)<=0|(e|0)<0){e=(d<<2)+i|0;Da(c,H[c+4>>2],e,b+e|0)}d=d+1|0;if((h|0)==(d|0)){break h}f=H[c+16>>2];e=H[c+20>>2];continue}}d=1;a=H[a+36>>2];if(!a){break d}la[H[H[a>>2]+40>>2]](a,c)|0}if(!i){break b}bl(i)}ha=g+32|0;return d|0}Ka();X()}function ld(a,b,c,d){var e=0,f=0,g=0,h=0,i=O(0),j=0,k=0,l=O(0),m=0;a:{if(!d){break a}b:{c:{switch(H[a+28>>2]-1|0){case 0:e=F[a+24|0];if((((c|0)>(e|0)?e:c)|0)>0){e=H[a>>2];g=H[e>>2];b=H[a+48>>2]+Sl(H[a+40>>2],H[a+44>>2],b,0)|0;b=g+b|0;h=H[e+4>>2];while(1){if(b>>>0>=h>>>0){break a}e=(f<<3)+d|0;g=F[b|0];H[e>>2]=g;H[e+4>>2]=g>>31;b=b+1|0;f=f+1|0;e=F[a+24|0];if((f|0)<(((c|0)>(e|0)?e:c)|0)){continue}break}}if((c|0)<=(e|0)){break a}c=c-e|0;a=(e<<3)+d|0;break b;case 1:e=F[a+24|0];if((((c|0)>(e|0)?e:c)|0)>0){e=H[a>>2];g=H[e>>2];b=H[a+48>>2]+Sl(H[a+40>>2],H[a+44>>2],b,0)|0;b=g+b|0;h=H[e+4>>2];while(1){if(b>>>0>=h>>>0){break a}e=(f<<3)+d|0;H[e>>2]=I[b|0];H[e+4>>2]=0;b=b+1|0;f=f+1|0;e=F[a+24|0];if((f|0)<(((c|0)>(e|0)?e:c)|0)){continue}break}}if((c|0)<=(e|0)){break a}c=c-e|0;a=(e<<3)+d|0;break b;case 2:e=F[a+24|0];if((((c|0)>(e|0)?e:c)|0)>0){e=H[a>>2];g=H[e>>2];b=H[a+48>>2]+Sl(H[a+40>>2],H[a+44>>2],b,0)|0;b=g+b|0;h=H[e+4>>2];while(1){if(b>>>0>=h>>>0){break a}e=(f<<3)+d|0;g=G[b>>1];H[e>>2]=g;H[e+4>>2]=g>>31;b=b+2|0;f=f+1|0;e=F[a+24|0];if((f|0)<(((c|0)>(e|0)?e:c)|0)){continue}break}}if((c|0)<=(e|0)){break a}c=c-e|0;a=(e<<3)+d|0;break b;case 3:e=F[a+24|0];if((((c|0)>(e|0)?e:c)|0)>0){e=H[a>>2];g=H[e>>2];b=H[a+48>>2]+Sl(H[a+40>>2],H[a+44>>2],b,0)|0;b=g+b|0;h=H[e+4>>2];while(1){if(b>>>0>=h>>>0){break a}e=(f<<3)+d|0;H[e>>2]=J[b>>1];H[e+4>>2]=0;b=b+2|0;f=f+1|0;e=F[a+24|0];if((f|0)<(((c|0)>(e|0)?e:c)|0)){continue}break}}if((c|0)<=(e|0)){break a}c=c-e|0;a=(e<<3)+d|0;break b;case 4:e=F[a+24|0];if((((c|0)>(e|0)?e:c)|0)>0){e=H[a>>2];g=H[e>>2];b=H[a+48>>2]+Sl(H[a+40>>2],H[a+44>>2],b,0)|0;b=g+b|0;h=H[e+4>>2];while(1){if(b>>>0>=h>>>0){break a}e=(f<<3)+d|0;g=H[b>>2];H[e>>2]=g;H[e+4>>2]=g>>31;b=b+4|0;f=f+1|0;e=F[a+24|0];if((f|0)<(((c|0)>(e|0)?e:c)|0)){continue}break}}if((c|0)<=(e|0)){break a}c=c-e|0;a=(e<<3)+d|0;break b;case 5:e=F[a+24|0];if((((c|0)>(e|0)?e:c)|0)>0){e=H[a>>2];g=H[e>>2];b=H[a+48>>2]+Sl(H[a+40>>2],H[a+44>>2],b,0)|0;b=g+b|0;h=H[e+4>>2];while(1){if(b>>>0>=h>>>0){break a}e=(f<<3)+d|0;H[e>>2]=H[b>>2];H[e+4>>2]=0;b=b+4|0;f=f+1|0;e=F[a+24|0];if((f|0)<(((c|0)>(e|0)?e:c)|0)){continue}break}}if((c|0)<=(e|0)){break a}c=c-e|0;a=(e<<3)+d|0;break b;case 6:e=F[a+24|0];if((((c|0)>(e|0)?e:c)|0)>0){e=H[a>>2];g=H[e>>2];b=H[a+48>>2]+Sl(H[a+40>>2],H[a+44>>2],b,0)|0;b=g+b|0;h=H[e+4>>2];while(1){if(b>>>0>=h>>>0){break a}g=H[b+4>>2];e=(f<<3)+d|0;H[e>>2]=H[b>>2];H[e+4>>2]=g;b=b+8|0;f=f+1|0;e=F[a+24|0];if((f|0)<(((c|0)>(e|0)?e:c)|0)){continue}break}}if((c|0)<=(e|0)){break a}c=c-e|0;a=(e<<3)+d|0;break b;case 7:e=F[a+24|0];if((((c|0)>(e|0)?e:c)|0)>0){e=H[a>>2];g=H[e>>2];b=H[a+48>>2]+Sl(H[a+40>>2],H[a+44>>2],b,0)|0;b=g+b|0;h=H[e+4>>2];while(1){if(b>>>0>=h>>>0){break a}e=H[b>>2];g=H[b+4>>2];if((g|0)<0){break a}k=(f<<3)+d|0;H[k>>2]=e;H[k+4>>2]=g;b=b+8|0;f=f+1|0;e=F[a+24|0];if((f|0)<(((c|0)>(e|0)?e:c)|0)){continue}break}}if((c|0)<=(e|0)){break a}c=c-e|0;a=(e<<3)+d|0;break b;case 8:e=F[a+24|0];if((((c|0)>(e|0)?e:c)|0)>0){e=H[a>>2];g=H[e>>2];b=H[a+48>>2]+Sl(H[a+40>>2],H[a+44>>2],b,0)|0;b=g+b|0;k=H[e+4>>2];while(1){if(b>>>0>=k>>>0){break a}i=L[b>>2];if(i>O(0x8000000000000000)|i=O(1)?~~(i>O(0)?O(R(O(T(O(i*O(2.3283064365386963e-10)))),O(4294967296))):O(U(O(O(i-O(~~i>>>0>>>0))*O(2.3283064365386963e-10)))))>>>0:0;h=~~i>>>0;break d}g=-2147483648;h=0}H[e>>2]=h;H[e+4>>2]=g;b=b+4|0;f=f+1|0;e=F[a+24|0];if((f|0)<(((c|0)>(e|0)?e:c)|0)){continue}break}}if((c|0)<=(e|0)){break a}c=c-e|0;a=(e<<3)+d|0;break b;case 9:e=F[a+24|0];if((((c|0)>(e|0)?e:c)|0)>0){e=H[a>>2];g=H[e>>2];b=H[a+48>>2]+Sl(H[a+40>>2],H[a+44>>2],b,0)|0;b=g+b|0;k=H[e+4>>2];while(1){if(b>>>0>=k>>>0){break a}j=M[b>>3];if(j>0x8000000000000000|j<-0x8000000000000000|j!=j){break a}m=P(j);if(m==Z){break a}e=(f<<3)+d|0;e:{if(m<0x8000000000000000){g=P(j)>=1?~~(j>0?R(T(j*2.3283064365386963e-10),4294967295):U((j-+(~~j>>>0>>>0))*2.3283064365386963e-10))>>>0:0;h=~~j>>>0;break e}g=-2147483648;h=0}H[e>>2]=h;H[e+4>>2]=g;b=b+8|0;f=f+1|0;e=F[a+24|0];if((f|0)<(((c|0)>(e|0)?e:c)|0)){continue}break}}if((c|0)<=(e|0)){break a}c=c-e|0;a=(e<<3)+d|0;break b;case 10:break c;default:break a}}e=F[a+24|0];if((((c|0)>(e|0)?e:c)|0)>0){e=H[a>>2];g=H[e>>2];b=H[a+48>>2]+Sl(H[a+40>>2],H[a+44>>2],b,0)|0;b=g+b|0;h=H[e+4>>2];while(1){if(b>>>0>=h>>>0){break a}e=(f<<3)+d|0;H[e>>2]=I[b|0];H[e+4>>2]=0;b=b+1|0;f=f+1|0;e=F[a+24|0];if((f|0)<(((c|0)>(e|0)?e:c)|0)){continue}break}}if((c|0)<=(e|0)){break a}c=c-e|0;a=(e<<3)+d|0}lk(a,0,c<<3)}}function $h(a){a=a|0;var b=0,c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0;p=ha-16|0;ha=p;a:{if(!(la[H[H[a>>2]+32>>2]](a)|0)){break a}f=H[a+44>>2];c=H[a+12>>2];b=H[a+8>>2];F[p+15|0]=c-b>>>2;g=H[f+20>>2];if(!H[f+16>>2]&(g|0)<=0|(g|0)<0){Da(f,H[f+4>>2],p+15|0,p+16|0);c=H[a+12>>2];b=H[a+8>>2]}if((b|0)!=(c|0)){while(1){f=H[b>>2];if(!(la[H[H[f>>2]+8>>2]](f,a,H[a+4>>2])|0)){break a}b=b+4|0;if((c|0)!=(b|0)){continue}break}}g=ha-48|0;ha=g;f=a;q=a+32|0;a=H[a+12>>2];c=H[f+8>>2];d=a-c|0;b=d>>2;k=H[f+32>>2];h=H[f+36>>2]-k>>2;b:{if(b>>>0>h>>>0){Na(q,b-h|0);a=H[f+12>>2];c=H[f+8>>2];d=a-c|0;b=d>>2;break b}if(b>>>0>=h>>>0){break b}H[f+36>>2]=k+(b<<2)}H[g+40>>2]=0;H[g+32>>2]=0;H[g+36>>2]=0;c:{d:{e:{if((a|0)==(c|0)){break e}if((d|0)<0){break d}h=b-1>>>5|0;k=h+1|0;i=hl(k<<2);H[g+40>>2]=k;H[g+32>>2]=i;H[g+36>>2]=b;H[((d>>>0<132?0:h)<<2)+i>>2]=0;d=b>>>5<<2;h=lk(i,0,d);if((b&-32)==(b|0)){break e}d=d+h|0;H[d>>2]=H[d>>2]&(-1>>>32-(b&31)^-1)}while(1){f:{g:{b=a-c>>2;if(j>>>0>>0){if((a|0)==(c|0)){a=c;k=0;break g}k=0;m=H[g+32>>2];h=0;while(1){r=1<>>5<<2;h:{if(r&H[l+i>>2]){break h}a=h<<2;d=H[a+c>>2];b=H[d+4>>2];if((b|0)!=H[d+8>>2]){n=0;o=1;s=H[g+32>>2];while(1){c=0;b=H[(n<<2)+b>>2];i:{if((la[H[H[d>>2]+24>>2]](d,b)|0)<=0){break i}while(1){j:{d=H[a+H[f+8>>2]>>2];d=la[H[H[d>>2]+28>>2]](d,b,c)|0;if((d|0)==(h|0)){break j}d=H[H[f+20>>2]+(d<<2)>>2];if(H[(d>>>3&536870908)+s>>2]>>>d&1){break j}o=0;break i}d=H[a+H[f+8>>2]>>2];c=c+1|0;if((la[H[H[d>>2]+24>>2]](d,b)|0)>(c|0)){continue}break}}c=H[f+8>>2];d=H[a+c>>2];b=H[d+4>>2];n=n+1|0;if(n>>>0>2]-b>>2>>>0){continue}break}if(!o){break h}}H[H[q>>2]+(j<<2)>>2]=h;a=m+l|0;H[a>>2]=r|H[a>>2];k=1;j=j+1|0}a=H[f+12>>2];b=a-c>>2;h=h+1|0;if(b>>>0>h>>>0){continue}break}break g}k=0;H[g+24>>2]=0;H[g+16>>2]=0;H[g+20>>2]=0;e=H[f+4>>2];b=H[e+12>>2];e=H[e+8>>2];H[g+8>>2]=0;H[g>>2]=0;H[g+4>>2]=0;h=0;k:{l:{m:{n:{if((b|0)==(e|0)){break n}e=b-e|0;if((e|0)<0){break m}b=e>>2;d=b-1>>>5|0;i=d+1|0;h=hl(i<<2);H[g+8>>2]=i;H[g>>2]=h;H[g+4>>2]=b;H[((e>>>0<132?0:d)<<2)+h>>2]=0;e=b>>>5<<2;d=lk(h,0,e);if((b|0)==(b&-32)){break n}e=d+e|0;H[e>>2]=H[e>>2]&(-1>>>32-(b&31)^-1)}o:{if((a|0)==(c|0)){e=1;break o}while(1){e=H[H[q>>2]+(k<<2)>>2]<<2;a=H[e+c>>2];a=H[a+8>>2]-H[a+4>>2]|0;p:{if((a|0)<8){break p}b=a>>2;c=H[g+16>>2];a=H[g+20>>2]-c>>2;q:{if(b>>>0>a>>>0){Na(g+16|0,b-a|0);break q}if(a>>>0<=b>>>0){break q}H[g+20>>2]=c+(b<<2)}n=(b|0)>1?b:1;d=0;r:{while(1){if((b|0)<=(d|0)){break r}a=0;i=0;while(1){m=1<>>5<<2;s:{if(m&H[o+h>>2]){break s}c=H[e+H[f+8>>2]>>2];j=H[H[c+4>>2]+(a<<2)>>2];if((la[H[H[c>>2]+24>>2]](c,j)|0)>0){c=0;h=H[g>>2];while(1){l=H[e+H[f+8>>2]>>2];l=la[H[H[l>>2]+28>>2]](l,j,c)|0;if(!(H[(l>>>3&536870908)+h>>2]>>>l&1)){break s}l=H[e+H[f+8>>2]>>2];c=c+1|0;if((la[H[H[l>>2]+24>>2]](l,j)|0)>(c|0)){continue}break}}H[H[g+16>>2]+(d<<2)>>2]=a;c=h+o|0;H[c>>2]=m|H[c>>2];i=1;d=d+1|0}a=a+1|0;if((n|0)!=(a|0)){continue}break}if(i&1|(b|0)<=(d|0)){continue}break}e=0;break o}c=H[f+8>>2];e=H[e+c>>2];a=H[e+4>>2];H[e+8>>2]=a;H[e+20>>2]=H[e+16>>2];d=H[g+16>>2];o=H[g+20>>2];if((d|0)==(o|0)){break p}n=e+16|0;b=a;while(1){c=H[d>>2];t:{if(H[e+12>>2]!=(b|0)){H[b>>2]=c;H[e+8>>2]=b+4;break t}i=b-a|0;m=i>>2;b=m+1|0;if(b>>>0>=1073741824){break l}j=i>>1;j=i>>>0<2147483644?b>>>0>>0?j:b:1073741823;if(j){if(j>>>0>=1073741824){break k}b=hl(j<<2)}else{b=0}m=b+(m<<2)|0;H[m>>2]=c;if((i|0)>0){jk(b,a,i)}H[e+12>>2]=b+(j<<2);H[e+8>>2]=m+4;H[e+4>>2]=b;if(!a){break t}bl(a)}b=H[e+16>>2];a=H[e+20>>2]-b>>2;u:{if((a|0)>(c|0)){break u}H[g+44>>2]=-1;i=c+1|0;if(i>>>0>a>>>0){tb(n,i-a|0,g+44|0);b=H[n>>2];break u}if(a>>>0<=i>>>0){break u}H[e+20>>2]=(i<<2)+b}c=(c<<2)+b|0;b=H[e+8>>2];a=H[e+4>>2];H[c>>2]=(b-a>>2)-1;d=d+4|0;if((o|0)!=(d|0)){continue}break}c=H[f+8>>2]}e=1;k=k+1|0;if(k>>>0>2]-c>>2>>>0){continue}break}}a=H[g>>2];if(a){bl(a)}a=H[g+16>>2];if(!a){break f}H[g+20>>2]=a;bl(a);break f}Ka();X()}Ka();X()}_a();X()}if(k&1|b>>>0<=j>>>0){continue}}break}a=H[g+32>>2];if(a){bl(a)}ha=g+48|0;break c}Ka();X()}if(!e){break a}b=H[f+32>>2];a=H[f+36>>2];v:{if((b|0)==(a|0)){break v}while(1){if(!(la[H[H[f>>2]+40>>2]](f,H[b>>2])|0)){break a}b=b+4|0;if((a|0)!=(b|0)){continue}break}b=H[f+32>>2];a=H[f+36>>2];if((b|0)==(a|0)){break v}while(1){c=H[H[f+8>>2]+(H[b>>2]<<2)>>2];if(!(la[H[H[c>>2]+12>>2]](c,H[f+44>>2])|0)){break a}b=b+4|0;if((a|0)!=(b|0)){continue}break}}t=la[H[H[f>>2]+44>>2]](f)|0}ha=p+16|0;return t|0}function yh(a,b){var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0;a:{b:{c:{d:{e:{if(H[a+92>>2]==H[a+88>>2]){break e}c=H[a+52>>2];f:{if((c|0)!=H[a+56>>2]){H[c>>2]=b;H[a+52>>2]=c+4;break f}d=H[a+48>>2];h=c-d|0;f=h>>2;e=f+1|0;if(e>>>0>=1073741824){break a}c=h>>1;e=h>>>0<2147483644?c>>>0>e>>>0?c:e:1073741823;if(e){if(e>>>0>=1073741824){break d}c=hl(e<<2)}else{c=0}f=c+(f<<2)|0;H[f>>2]=b;if((h|0)>0){jk(c,d,h)}H[a+56>>2]=c+(e<<2);H[a+52>>2]=f+4;H[a+48>>2]=c;if(!d){break f}bl(d)}H[a+84>>2]=0;f=-1;c=-1;g:{if((b|0)==-1){break g}e=H[a+4>>2];c=b+1|0;c=(c>>>0)%3|0?c:b-2|0;if((c|0)!=-1){f=H[H[e>>2]+(c<<2)>>2]}h:{if((b>>>0)%3|0){d=b-1|0;break h}d=b+2|0;c=-1;if((d|0)==-1){break g}}c=H[H[e>>2]+(d<<2)>>2]}i=c>>>3&536870908;e=H[a+36>>2];g=e+(f>>>3&536870908)|0;h=H[g>>2];d=1<>2]=d|h;g=a+8|0;if((b|0)!=-1){e=b+1|0;d=(e>>>0)%3|0?e:b-2|0}else{d=-1}zh(g,f,d);e=H[a+36>>2]}d=e+i|0;e=H[d>>2];f=1<>2]=e|f;d=a+8|0;f=-1;i:{if((b|0)==-1){break i}f=b-1|0;if((b>>>0)%3|0){break i}f=b+2|0}zh(d,c,f)}f=-1;f=(b|0)!=-1?H[H[H[a+4>>2]>>2]+(b<<2)>>2]:f;d=H[a+36>>2]+(f>>>3&536870908)|0;e=H[d>>2];c=1<>2]=c|e;zh(a+8|0,f,b)}d=H[a+84>>2];if((d|0)>2){break e}while(1){f=N(d,12)+a|0;b=H[f+52>>2];if((b|0)==H[f+48>>2]){d=d+1|0;if((d|0)!=3){continue}break e}c=b-4|0;b=H[c>>2];H[f+52>>2]=c;H[a+84>>2]=d;if((b|0)==-1){break e}f=H[a+24>>2];c=(b>>>0)/3|0;j:{if(H[f+(c>>>3&268435452)>>2]>>>c&1){break j}k:{while(1){i=(b>>>0)/3|0;c=(i>>>3&268435452)+f|0;H[c>>2]=H[c>>2]|1<>2]>>2]+(b<<2)>>2]:f;d=H[a+36>>2]+(f>>>3&536870908)|0;e=H[d>>2];c=1<>2]=c|e;h=H[(H[H[a+16>>2]+96>>2]+N(i,12)|0)+((b>>>0)%3<<2)>>2];k=H[H[a+20>>2]+4>>2];c=H[k+4>>2];t:{if((c|0)!=H[k+8>>2]){H[c>>2]=h;H[k+4>>2]=c+4;break t}g=H[k>>2];j=c-g|0;e=j>>2;d=e+1|0;if(d>>>0>=1073741824){break s}c=j>>1;d=j>>>0<2147483644?c>>>0>d>>>0?c:d:1073741823;if(d){if(d>>>0>=1073741824){break d}c=hl(d<<2)}else{c=0}e=c+(e<<2)|0;H[e>>2]=h;if((j|0)>0){jk(c,g,j)}H[k+8>>2]=c+(d<<2);H[k+4>>2]=e+4;H[k>>2]=c;if(!g){break t}bl(g)}j=H[a+12>>2];c=H[j+4>>2];u:{if((c|0)!=H[j+8>>2]){H[c>>2]=b;H[j+4>>2]=c+4;break u}h=H[j>>2];g=c-h|0;e=g>>2;d=e+1|0;if(d>>>0>=1073741824){break r}c=g>>1;d=g>>>0<2147483644?c>>>0>d>>>0?c:d:1073741823;if(d){if(d>>>0>=1073741824){break d}c=hl(d<<2)}else{c=0}e=c+(e<<2)|0;H[e>>2]=b;if((g|0)>0){jk(c,h,g)}H[j+8>>2]=c+(d<<2);H[j+4>>2]=e+4;H[j>>2]=c;if(!h){break u}bl(h)}c=H[a+12>>2];H[H[c+12>>2]+(f<<2)>>2]=H[c+24>>2];H[c+24>>2]=H[c+24>>2]+1}if((b|0)==-1){break k}g=H[a+4>>2];f=-1;c=b+1|0;c=(c>>>0)%3|0?c:b-2|0;if((c|0)!=-1){f=H[H[g+12>>2]+(c<<2)>>2]}v:{w:{if((N(i,3)|0)!=(b|0)){e=b-1|0;break w}e=b+2|0;b=-1;if((e|0)==-1){break v}}b=H[H[g+12>>2]+(e<<2)>>2]}h=(b|0)==-1;e=(b>>>0)/3|0;if((f|0)!=-1){c=(f>>>0)/3|0;c=H[H[a+24>>2]+(c>>>3&268435452)>>2]&1<>2]+(c>>>3&536870908)>>2]>>>c&1){break x}e=0;c=H[H[g>>2]+(b<<2)>>2];if(!(H[H[a+36>>2]+(c>>>3&536870908)>>2]>>>c&1)){c=H[a+88>>2]+(c<<2)|0;e=H[c>>2];H[c>>2]=e+1;e=(e|0)<=0?2:1}if(H[a+84>>2]>=(e|0)?d:0){break m}k=N(e,12)+a|0;c=H[k+52>>2];y:{if((c|0)!=H[k+56>>2]){H[c>>2]=b;H[k+52>>2]=c+4;break y}i=H[k+48>>2];j=c-i|0;h=j>>2;g=h+1|0;if(g>>>0>=1073741824){break c}c=j>>1;g=j>>>0<2147483644?c>>>0>g>>>0?c:g:1073741823;if(g){if(g>>>0>=1073741824){break d}c=hl(g<<2)}else{c=0}h=c+(h<<2)|0;H[h>>2]=b;if((j|0)>0){jk(c,i,j)}H[k+48>>2]=c;H[k+52>>2]=h+4;H[k+56>>2]=c+(g<<2);if(!i){break y}bl(i)}if(H[a+84>>2]<=(e|0)){break x}H[a+84>>2]=e}if(d){break k}b=-1;if((f|0)==-1){break n}}b=H[H[H[a+4>>2]>>2]+(f<<2)>>2]}e=0;if(!(H[H[a+36>>2]+(b>>>3&536870908)>>2]>>>b&1)){b=H[a+88>>2]+(b<<2)|0;c=H[b>>2];H[b>>2]=c+1;e=(c|0)<=0?2:1}if(H[a+84>>2]<(e|0)){break l}b=f}f=H[a+24>>2];continue}break}i=N(e,12)+a|0;b=H[i+52>>2];z:{if((b|0)!=H[i+56>>2]){H[b>>2]=f;H[i+52>>2]=b+4;break z}h=H[i+48>>2];g=b-h|0;c=g>>2;d=c+1|0;if(d>>>0>=1073741824){break b}b=g>>1;d=g>>>0<2147483644?b>>>0>d>>>0?b:d:1073741823;if(d){if(d>>>0>=1073741824){break d}b=hl(d<<2)}else{b=0}c=b+(c<<2)|0;H[c>>2]=f;if((g|0)>0){jk(b,h,g)}H[i+48>>2]=b;H[i+52>>2]=c+4;H[i+56>>2]=b+(d<<2);if(!h){break z}bl(h)}d=H[a+84>>2];if((d|0)<=(e|0)){break j}H[a+84>>2]=e;d=e;break j}d=H[a+84>>2]}if((d|0)<3){continue}break}}return 1}_a();X()}Ka();X()}Ka();X()}Ka();X()}function Vk(a,b,c,d,e,f,g,h,i){var j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,I=0,J=0,K=0,L=0,M=0,N=0,O=0,P=0,R=0;k=ha-96|0;ha=k;t=h;u=i&65535;m=(e^i)&-2147483648;l=e&65535;p=l;z=l;J=i>>>16&32767;K=e>>>16&32767;a:{b:{if(J-32767>>>0>4294934529&K-32767>>>0>=4294934530){break b}l=e&2147483647;j=d;if(!(!d&(l|0)==2147418112?!(b|c):l>>>0<2147418112)){o=d;m=e|32768;break a}e=i&2147483647;if(!(!h&(e|0)==2147418112?!(f|g):e>>>0<2147418112)){o=h;m=i|32768;b=f;c=g;break a}if(!(b|j|(l^2147418112|c))){if(!(f|h|(e|g))){m=2147450880;b=0;c=0;break a}m=m|2147418112;b=0;c=0;break a}if(!(f|h|(e^2147418112|g))){d=b|j;e=c|l;b=0;c=0;if(!(d|e)){m=2147450880;break a}m=m|2147418112;break a}if(!(b|j|(c|l))){b=0;c=0;break a}if(!(f|h|(e|g))){b=0;c=0;break a}if((l|0)==65535|l>>>0<65535){j=b;h=!(d|p);i=h<<6;l=Q(h?b:d)+32|0;b=Q(h?c:p);b=i+((b|0)==32?l:b)|0;Nk(k+80|0,j,c,d,p,b-15|0);s=16-b|0;d=H[k+88>>2];z=H[k+92>>2];c=H[k+84>>2];b=H[k+80>>2]}if(e>>>0>65535){break b}e=!(t|u);h=e<<6;i=Q(e?f:t)+32|0;e=Q(e?g:u);e=h+((e|0)==32?i:e)|0;Nk(k- -64|0,f,g,t,u,e-15|0);s=(s-e|0)+16|0;t=H[k+72>>2];u=H[k+76>>2];f=H[k+64>>2];g=H[k+68>>2]}e=f;j=g<<15|e>>>17;h=e<<15;e=j;p=h&-32768;q=c;A=Sl(p,0,c,0);c=ka;w=c;B=e;i=0;j=Sl(e,0,b,i);e=j+A|0;h=ka+c|0;h=e>>>0>>0?h+1|0:h;c=e;j=e;n=Sl(b,i,p,i);l=0+n|0;e=ka+e|0;e=l>>>0>>0?e+1|0:e;x=l;n=l;l=e;C=(j|0)==(e|0)&r>>>0>n>>>0|e>>>0>>0;r=d;L=Sl(p,i,d,0);F=ka;e=Sl(q,i,B,i);d=e+L|0;j=ka+F|0;n=d;d=d>>>0>>0?j+1|0:j;e=t;j=u<<15|e>>>17;y=e<<15|g>>>17;g=j;j=Sl(y,0,b,i);e=j+n|0;f=ka+d|0;G=e;f=e>>>0>>0?f+1|0:f;u=f;e=f;f=(h|0)==(w|0)&c>>>0>>0|h>>>0>>0;c=h+G|0;f=e+f|0;A=c;f=c>>>0>>0?f+1|0:f;t=f;c=f;D=z|65536;z=v;M=Sl(p,i,D,v);I=ka;h=Sl(r,o,B,i);f=h+M|0;e=ka+I|0;N=f;e=f>>>0>>0?e+1|0:e;v=e;E=g|-2147483648;w=0;g=Sl(E,w,b,i);b=g+f|0;f=ka+e|0;f=b>>>0>>0?f+1|0:f;O=b;e=Sl(y,o,q,i);b=b+e|0;p=f;j=f+ka|0;P=b;g=b>>>0>>0?j+1|0:j;f=0;b=f+A|0;e=c+P|0;e=b>>>0>>0?e+1|0:e;R=b;c=b;b=b+C|0;C=e;f=b>>>0>>0?e+1|0:e;c=f;s=((K+J|0)+s|0)-16383|0;j=Sl(E,w,q,i);h=ka;i=Sl(D,z,B,i);e=i+j|0;f=ka+h|0;f=e>>>0>>0?f+1|0:f;i=(f|0)==(h|0)&e>>>0>>0|f>>>0>>0;h=e;q=i;i=Sl(y,o,r,o);e=i+e|0;j=ka+f|0;j=e>>>0>>0?j+1|0:j;i=(f|0)==(j|0)&e>>>0>>0|f>>>0>j>>>0;f=q+i|0;h=0;h=f>>>0>>0?1:h;q=Sl(E,w,D,z);i=q+f|0;f=ka+h|0;f=i>>>0>>0?f+1|0:f;q=e;h=j;B=i;e=(d|0)==(u|0)&n>>>0>G>>>0|d>>>0>u>>>0;d=e+((d|0)==(F|0)&n>>>0>>0|d>>>0>>0)|0;j=0;j=d>>>0>>0?1:j;i=d;d=q+d|0;e=h+j|0;e=d>>>0>>0?e+1|0:e;n=d;i=e;e=(e|0)==(h|0)&d>>>0>>0|e>>>0>>0;d=B+e|0;h=d>>>0>>0?f+1|0:f;q=d;j=Sl(y,o,D,z);e=ka;r=Sl(E,w,r,o);d=r+j|0;f=ka+e|0;f=d>>>0>>0?f+1|0:f;r=d;d=f;f=(e|0)==(f|0)&j>>>0>r>>>0|e>>>0>f>>>0;y=d+q|0;e=f+h|0;e=d>>>0>y>>>0?e+1|0:e;h=0;d=h+n|0;f=i+r|0;f=d>>>0>>0?f+1|0:f;h=f;j=(i|0)==(f|0)&d>>>0>>0|f>>>0>>0;i=j+y|0;n=i;i=i>>>0>>0?e+1|0:e;r=d;e=d;d=h;j=(p|0)==(v|0)&N>>>0>O>>>0|p>>>0>>0;f=j+((v|0)==(I|0)&N>>>0>>0|v>>>0>>0)|0;h=0;j=f+((g|0)==(p|0)&O>>>0>P>>>0|g>>>0

>>0)|0;f=g+e|0;e=d+j|0;e=f>>>0>>0?e+1|0:e;g=f;h=(d|0)==(e|0)&f>>>0>>0|d>>>0>e>>>0;d=h+n|0;f=i;f=d>>>0>>0?f+1|0:f;h=e;n=d;i=(t|0)==(C|0)&A>>>0>R>>>0|t>>>0>C>>>0;d=i+((t|0)==(u|0)&A>>>0>>0|t>>>0>>0)|0;j=0;j=d>>>0>>0?1:j;i=d;d=d+g|0;e=e+j|0;e=d>>>0>>0?e+1|0:e;h=(e|0)==(h|0)&d>>>0>>0|e>>>0>>0;g=n+h|0;f=g>>>0>>0?f+1|0:f;h=g;i=f;c:{if(f&65536){s=s+1|0;break c}v=l>>>31|0;f=i<<1|h>>>31;h=g<<1|e>>>31;i=f;f=e<<1|d>>>31;d=d<<1|c>>>31;e=f;g=x;f=l<<1|g>>>31;x=g<<1;l=f;f=c<<1|b>>>31;b=b<<1|v;c=f}if((s|0)>=32767){m=m|2147418112;b=0;c=0;break a}d:{if((s|0)<=0){f=1-s|0;if(f>>>0>=128){b=0;c=0;break a}g=s+127|0;Nk(k+48|0,x,l,b,c,g);Nk(k+32|0,d,e,h,i,g);Uk(k+16|0,x,l,b,c,f);Uk(k,d,e,h,i,f);x=H[k+32>>2]|H[k+16>>2]|(H[k+48>>2]|H[k+56>>2]|(H[k+52>>2]|H[k+60>>2]))!=0;l=H[k+36>>2]|H[k+20>>2];b=H[k+40>>2]|H[k+24>>2];c=H[k+44>>2]|H[k+28>>2];d=H[k>>2];e=H[k+4>>2];f=H[k+8>>2];g=H[k+12>>2];break d}f=h;g=i&65535|s<<16}o=f|o;m=g|m;if(!(!b&(c|0)==-2147483648?!(l|x):(c|0)>0|(c|0)>=0)){b=d+1|0;j=b?e:e+1|0;c=j;f=(e|0)==(j|0)&b>>>0>>0|e>>>0>j>>>0;d=f+o|0;e=m;o=d;m=d>>>0>>0?e+1|0:e;break a}if(b|x|(c^-2147483648|l)){b=d;c=e;break a}j=m;c=d&1;b=c+d|0;f=b>>>0>>0?e+1|0:e;c=f;e=(e|0)==(f|0)&b>>>0>>0|e>>>0>f>>>0;d=e+o|0;o=d;m=d>>>0>>0?j+1|0:j}H[a>>2]=b;H[a+4>>2]=c;H[a+8>>2]=o;H[a+12>>2]=m;ha=k+96|0}function Sh(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0;i=ha-16|0;ha=i;c=H[b+56>>2];d=H[c+100>>2];h=H[c+96>>2];f=(d-h|0)/12|0;zb(f,H[b+44>>2]);zb(H[H[b+56>>2]+80>>2],H[b+44>>2]);k=H[b+48>>2];c=hl(32);H[i>>2]=c;H[i+4>>2]=21;H[i+8>>2]=-2147483616;F[c+21|0]=0;e=I[1149]|I[1150]<<8|(I[1151]<<16|I[1152]<<24);g=I[1145]|I[1146]<<8|(I[1147]<<16|I[1148]<<24);F[c+13|0]=g;F[c+14|0]=g>>>8;F[c+15|0]=g>>>16;F[c+16|0]=g>>>24;F[c+17|0]=e;F[c+18|0]=e>>>8;F[c+19|0]=e>>>16;F[c+20|0]=e>>>24;e=I[1144]|I[1145]<<8|(I[1146]<<16|I[1147]<<24);g=I[1140]|I[1141]<<8|(I[1142]<<16|I[1143]<<24);F[c+8|0]=g;F[c+9|0]=g>>>8;F[c+10|0]=g>>>16;F[c+11|0]=g>>>24;F[c+12|0]=e;F[c+13|0]=e>>>8;F[c+14|0]=e>>>16;F[c+15|0]=e>>>24;e=I[1136]|I[1137]<<8|(I[1138]<<16|I[1139]<<24);g=I[1132]|I[1133]<<8|(I[1134]<<16|I[1135]<<24);F[c|0]=g;F[c+1|0]=g>>>8;F[c+2|0]=g>>>16;F[c+3|0]=g>>>24;F[c+4|0]=e;F[c+5|0]=e>>>8;F[c+6|0]=e>>>16;F[c+7|0]=e>>>24;e=pi(k,i,0);if(F[i+11|0]<0){bl(H[i>>2])}c=H[b+44>>2];a:{if(e){F[i|0]=0;f=H[c+20>>2];if(!H[c+16>>2]&(f|0)<=0|(f|0)<0){Da(c,H[c+4>>2],i,i+1|0)}d=0;c=0;h=ha-16|0;ha=h;H[h>>2]=0;H[h+4>>2]=0;f=b;b=H[f+56>>2];e=H[b+100>>2];b=H[b+96>>2];if((e|0)!=(b|0)){b=(e-b|0)/12|0;o=b>>>0>1?b:1;b=H[h>>2];e=0;b:{c:{while(1){d:{k=H[H[f+56>>2]+96>>2]+N(l,12)|0;m=H[k>>2];g=m-j|0;j=g>>31;j=(g^j)-j<<1|g>>>31;e:{if((e|0)!=(d|0)){H[d>>2]=j;d=d+4|0;H[h+4>>2]=d;break e}e=d-c|0;n=e>>2;g=n+1|0;if(g>>>0>=1073741824){break d}d=e>>1;g=e>>>0<2147483644?d>>>0>g>>>0?d:g:1073741823;if(g){if(g>>>0>=1073741824){break c}b=hl(g<<2)}else{b=0}d=b+(n<<2)|0;H[d>>2]=j;d=d+4|0;if((e|0)>0){jk(b,c,e)}e=(g<<2)+b|0;H[h+4>>2]=d;if(c){bl(c)}c=b}n=H[k+4>>2];g=n-m|0;j=g>>31;j=(g^j)-j<<1|g>>>31;f:{if((e|0)!=(d|0)){H[d>>2]=j;d=d+4|0;H[h+4>>2]=d;break f}e=d-c|0;m=e>>2;g=m+1|0;if(g>>>0>1073741823){break d}d=e>>1;g=e>>>0<2147483644?d>>>0>g>>>0?d:g:1073741823;if(g){if(g>>>0>1073741823){break c}b=hl(g<<2)}else{b=0}d=b+(m<<2)|0;H[d>>2]=j;d=d+4|0;if((e|0)>0){jk(b,c,e)}e=(g<<2)+b|0;H[h+4>>2]=d;if(c){bl(c)}c=b}j=H[k+8>>2];g=j-n|0;k=g>>31;k=(g^k)-k<<1|g>>>31;g:{if((e|0)!=(d|0)){H[d>>2]=k;d=d+4|0;H[h+4>>2]=d;break g}e=d-c|0;m=e>>2;g=m+1|0;if(g>>>0>1073741823){break d}d=e>>1;g=e>>>0<2147483644?d>>>0>g>>>0?d:g:1073741823;if(g){if(g>>>0>1073741823){break c}b=hl(g<<2)}else{b=0}d=b+(m<<2)|0;H[d>>2]=k;d=d+4|0;if((e|0)>0){jk(b,c,e)}e=(g<<2)+b|0;H[h+4>>2]=d;if(c){bl(c)}c=b}l=l+1|0;if((o|0)!=(l|0)){continue}break b}break}H[h+8>>2]=d;H[h>>2]=b;Ka();X()}H[h>>2]=b;_a();X()}H[h>>2]=b}kf(c,d-c>>2,1,0,H[f+44>>2]);if(c){bl(c)}ha=h+16|0;break a}F[i|0]=1;e=H[c+20>>2];if(!H[c+16>>2]&(e|0)<=0|(e|0)<0){Da(c,H[c+4>>2],i,i+1|0)}c=H[H[b+56>>2]+80>>2];if(c>>>0<=255){if((d|0)==(h|0)){break a}g=f>>>0>1?f:1;d=i+1|0;c=0;while(1){f=H[b+44>>2];h=H[H[b+56>>2]+96>>2]+N(c,12)|0;F[i|0]=H[h>>2];e=H[f+20>>2];h:{if(!!H[f+16>>2]&(e|0)>=0|(e|0)>0){break h}Da(f,H[f+4>>2],i,d);f=H[b+44>>2];e=H[f+20>>2];l=H[f+16>>2];F[i|0]=H[h+4>>2];if(!!l&(e|0)>=0|(e|0)>0){break h}Da(f,H[f+4>>2],i,d);f=H[b+44>>2];e=H[f+20>>2];l=H[f+16>>2];F[i|0]=H[h+8>>2];if(!!l&(e|0)>=0|(e|0)>0){break h}Da(f,H[f+4>>2],i,d)}c=c+1|0;if((g|0)!=(c|0)){continue}break}break a}if(c>>>0<=65535){if((d|0)==(h|0)){break a}g=f>>>0>1?f:1;d=i+2|0;c=0;while(1){f=H[b+44>>2];h=H[H[b+56>>2]+96>>2]+N(c,12)|0;G[i>>1]=H[h>>2];e=H[f+20>>2];i:{if(!!H[f+16>>2]&(e|0)>=0|(e|0)>0){break i}Da(f,H[f+4>>2],i,d);f=H[b+44>>2];e=H[f+20>>2];l=H[f+16>>2];G[i>>1]=H[h+4>>2];if(!!l&(e|0)>=0|(e|0)>0){break i}Da(f,H[f+4>>2],i,d);f=H[b+44>>2];e=H[f+20>>2];l=H[f+16>>2];G[i>>1]=H[h+8>>2];if(!!l&(e|0)>=0|(e|0)>0){break i}Da(f,H[f+4>>2],i,d)}c=c+1|0;if((g|0)!=(c|0)){continue}break}break a}if(c>>>0>=2097152){if((d|0)==(h|0)){break a}d=H[b+44>>2];c=H[d+20>>2];if(!!H[d+16>>2]&(c|0)>=0|(c|0)>0){break a}h=f>>>0>1?f:1;c=0;while(1){f=H[b+44>>2];d=H[f+20>>2];if(!H[f+16>>2]&(d|0)<=0|(d|0)<0){d=f;e=H[f+4>>2];f=H[H[b+56>>2]+96>>2]+N(c,12)|0;Da(d,e,f,f+12|0)}c=c+1|0;if((h|0)!=(c|0)){continue}break}break a}if((d|0)==(h|0)){break a}d=f>>>0>1?f:1;c=0;while(1){f=H[H[b+56>>2]+96>>2]+N(c,12)|0;zb(H[f>>2],H[b+44>>2]);zb(H[f+4>>2],H[b+44>>2]);zb(H[f+8>>2],H[b+44>>2]);c=c+1|0;if((d|0)!=(c|0)){continue}break}}H[a>>2]=0;H[a+4>>2]=0;H[a+8>>2]=0;H[a+12>>2]=0;ha=i+16|0}function Mb(a,b,c,d){var e=0,f=0,g=0,h=0,i=0,j=O(0),k=0,l=O(0),m=0;a:{b:{if(!d){break b}c:{d:{switch(H[a+28>>2]-1|0){case 0:h=1;e=F[a+24|0];if((((c|0)>(e|0)?e:c)|0)>0){e=H[a>>2];f=H[e>>2];b=H[a+48>>2]+Sl(H[a+40>>2],H[a+44>>2],b,0)|0;b=f+b|0;f=H[e+4>>2];while(1){if(b>>>0>=f>>>0){break a}H[(g<<2)+d>>2]=F[b|0];b=b+1|0;g=g+1|0;e=F[a+24|0];if((g|0)<(((c|0)>(e|0)?e:c)|0)){continue}break}}if((c|0)<=(e|0)){break b}c=c-e|0;a=(e<<2)+d|0;break c;case 1:h=1;e=F[a+24|0];if((((c|0)>(e|0)?e:c)|0)>0){e=H[a>>2];f=H[e>>2];b=H[a+48>>2]+Sl(H[a+40>>2],H[a+44>>2],b,0)|0;b=f+b|0;f=H[e+4>>2];while(1){if(b>>>0>=f>>>0){break a}H[(g<<2)+d>>2]=I[b|0];b=b+1|0;g=g+1|0;e=F[a+24|0];if((g|0)<(((c|0)>(e|0)?e:c)|0)){continue}break}}if((c|0)<=(e|0)){break b}c=c-e|0;a=(e<<2)+d|0;break c;case 2:h=1;e=F[a+24|0];if((((c|0)>(e|0)?e:c)|0)>0){e=H[a>>2];f=H[e>>2];b=H[a+48>>2]+Sl(H[a+40>>2],H[a+44>>2],b,0)|0;b=f+b|0;f=H[e+4>>2];while(1){if(b>>>0>=f>>>0){break a}H[(g<<2)+d>>2]=G[b>>1];b=b+2|0;g=g+1|0;e=F[a+24|0];if((g|0)<(((c|0)>(e|0)?e:c)|0)){continue}break}}if((c|0)<=(e|0)){break b}c=c-e|0;a=(e<<2)+d|0;break c;case 3:h=1;e=F[a+24|0];if((((c|0)>(e|0)?e:c)|0)>0){e=H[a>>2];f=H[e>>2];b=H[a+48>>2]+Sl(H[a+40>>2],H[a+44>>2],b,0)|0;b=f+b|0;f=H[e+4>>2];while(1){if(b>>>0>=f>>>0){break a}H[(g<<2)+d>>2]=J[b>>1];b=b+2|0;g=g+1|0;e=F[a+24|0];if((g|0)<(((c|0)>(e|0)?e:c)|0)){continue}break}}if((c|0)<=(e|0)){break b}c=c-e|0;a=(e<<2)+d|0;break c;case 4:h=1;e=F[a+24|0];if((((c|0)>(e|0)?e:c)|0)>0){e=H[a>>2];f=H[e>>2];b=H[a+48>>2]+Sl(H[a+40>>2],H[a+44>>2],b,0)|0;b=f+b|0;f=H[e+4>>2];while(1){if(b>>>0>=f>>>0){break a}H[(g<<2)+d>>2]=H[b>>2];b=b+4|0;g=g+1|0;e=F[a+24|0];if((g|0)<(((c|0)>(e|0)?e:c)|0)){continue}break}}if((c|0)<=(e|0)){break b}c=c-e|0;a=(e<<2)+d|0;break c;case 5:e=F[a+24|0];if((((c|0)>(e|0)?e:c)|0)>0){e=H[a>>2];f=H[e>>2];b=H[a+48>>2]+Sl(H[a+40>>2],H[a+44>>2],b,0)|0;b=f+b|0;f=H[e+4>>2];while(1){if(b>>>0>=f>>>0){break a}e=H[b>>2];if((e|0)<0){break b}H[(g<<2)+d>>2]=e;b=b+4|0;g=g+1|0;e=F[a+24|0];if((g|0)<(((c|0)>(e|0)?e:c)|0)){continue}break}}h=1;if((c|0)<=(e|0)){break b}c=c-e|0;a=(e<<2)+d|0;break c;case 6:h=1;e=F[a+24|0];if((((c|0)>(e|0)?e:c)|0)>0){e=H[a>>2];f=H[e>>2];b=H[a+48>>2]+Sl(H[a+40>>2],H[a+44>>2],b,0)|0;b=f+b|0;f=H[e+4>>2];while(1){if(b>>>0>=f>>>0){break a}e=H[b>>2];if((H[b+4>>2]-(e>>>0<2147483648)|0)!=-1){break a}H[(g<<2)+d>>2]=e;b=b+8|0;g=g+1|0;e=F[a+24|0];if((g|0)<(((c|0)>(e|0)?e:c)|0)){continue}break}}if((c|0)<=(e|0)){break b}c=c-e|0;a=(e<<2)+d|0;break c;case 7:h=1;e=F[a+24|0];if((((c|0)>(e|0)?e:c)|0)>0){e=H[a>>2];f=H[e>>2];b=H[a+48>>2]+Sl(H[a+40>>2],H[a+44>>2],b,0)|0;b=f+b|0;f=H[e+4>>2];while(1){if(b>>>0>=f>>>0){break a}e=H[b+4>>2];i=H[b>>2];if(!e&i>>>0>2147483647|e){break a}H[(g<<2)+d>>2]=i;b=b+8|0;g=g+1|0;e=F[a+24|0];if((g|0)<(((c|0)>(e|0)?e:c)|0)){continue}break}}if((c|0)<=(e|0)){break b}c=c-e|0;a=(e<<2)+d|0;break c;case 8:h=1;e=F[a+24|0];if((((c|0)>(e|0)?e:c)|0)>0){e=H[a>>2];f=H[e>>2];b=H[a+48>>2]+Sl(H[a+40>>2],H[a+44>>2],b,0)|0;b=f+b|0;f=H[e+4>>2];while(1){if(b>>>0>=f>>>0){break a}j=L[b>>2];if(j>O(2147483648)|j>2]=e;b=b+4|0;g=g+1|0;e=F[a+24|0];if((g|0)<(((c|0)>(e|0)?e:c)|0)){continue}break}}if((c|0)<=(e|0)){break b}c=c-e|0;a=(e<<2)+d|0;break c;case 9:h=1;e=F[a+24|0];if((((c|0)>(e|0)?e:c)|0)>0){e=H[a>>2];f=H[e>>2];b=H[a+48>>2]+Sl(H[a+40>>2],H[a+44>>2],b,0)|0;b=f+b|0;f=H[e+4>>2];while(1){if(b>>>0>=f>>>0){break a}k=M[b>>3];if(k>2147483647|k<-2147483648|k!=k){break a}m=P(k);if(m==Z){break a}i=(g<<2)+d|0;if(m<2147483648){e=~~k}else{e=-2147483648}H[i>>2]=e;b=b+8|0;g=g+1|0;e=F[a+24|0];if((g|0)<(((c|0)>(e|0)?e:c)|0)){continue}break}}if((c|0)<=(e|0)){break b}c=c-e|0;a=(e<<2)+d|0;break c;case 10:break d;default:break b}}h=1;e=F[a+24|0];if((((c|0)>(e|0)?e:c)|0)>0){e=H[a>>2];f=H[e>>2];b=H[a+48>>2]+Sl(H[a+40>>2],H[a+44>>2],b,0)|0;b=f+b|0;f=H[e+4>>2];while(1){if(b>>>0>=f>>>0){break a}H[(g<<2)+d>>2]=I[b|0];b=b+1|0;g=g+1|0;e=F[a+24|0];if((g|0)<(((c|0)>(e|0)?e:c)|0)){continue}break}}if((c|0)<=(e|0)){break b}c=c-e|0;a=(e<<2)+d|0}lk(a,0,c<<2)}return h}return 0}function td(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0;f=ha-96|0;ha=f;e=H[a+16>>2];F[f+92|0]=1;H[f+88>>2]=b;H[f+84>>2]=b;H[f+80>>2]=e;k=H[a+20>>2];d=H[k>>2];a:{b:{e=H[H[e+28>>2]+(b<<2)>>2];if(e>>>0>2]-d>>2>>>0){d=H[H[a+8>>2]+(H[d+(e<<2)>>2]<<2)>>2];e=H[a+4>>2];if(!I[e+84|0]){d=H[H[e+68>>2]+(d<<2)>>2]}H[f+72>>2]=0;H[f+76>>2]=0;k=f- -64|0;H[k>>2]=0;H[k+4>>2]=0;H[f+56>>2]=0;H[f+60>>2]=0;ld(e,d,F[e+24|0],f+56|0);if((b|0)!=-1){e=b+1|0;k=(e>>>0)%3|0?e:b-2|0;i=((b>>>0)%3|0?-1:2)+b|0;while(1){d=k;e=i;c:{if(!H[a+28>>2]){break c}e=b+1|0;d=(e>>>0)%3|0?e:b-2|0;e=b-1|0;if((b>>>0)%3|0){break c}e=b+2|0}h=H[a+20>>2];b=H[h>>2];d=H[H[H[a+16>>2]+28>>2]+(d<<2)>>2];if(d>>>0>=H[h+4>>2]-b>>2>>>0){break b}d=H[H[a+8>>2]+(H[b+(d<<2)>>2]<<2)>>2];b=H[a+4>>2];if(!I[b+84|0]){d=H[H[b+68>>2]+(d<<2)>>2]}H[f+48>>2]=0;H[f+52>>2]=0;H[f+40>>2]=0;H[f+44>>2]=0;H[f+32>>2]=0;H[f+36>>2]=0;ld(b,d,F[b+24|0],f+32|0);d=H[a+20>>2];b=H[d>>2];e=H[H[H[a+16>>2]+28>>2]+(e<<2)>>2];if(e>>>0>=H[d+4>>2]-b>>2>>>0){break a}d=H[H[a+8>>2]+(H[b+(e<<2)>>2]<<2)>>2];b=H[a+4>>2];if(!I[b+84|0]){d=H[H[b+68>>2]+(d<<2)>>2]}H[f+24>>2]=0;H[f+28>>2]=0;H[f+16>>2]=0;H[f+20>>2]=0;H[f+8>>2]=0;H[f+12>>2]=0;ld(b,d,F[b+24|0],f+8|0);e=H[f+8>>2];b=H[f+56>>2];d=e-b|0;h=H[f+60>>2];j=H[f+12>>2]-(h+(b>>>0>e>>>0)|0)|0;p=H[f+40>>2];e=H[f+64>>2];s=p-e|0;t=H[f+68>>2];p=H[f+44>>2]-(t+(e>>>0>p>>>0)|0)|0;u=Sl(d,j,s,p);v=n-u|0;n=g-(ka+(n>>>0>>0)|0)|0;o=v;g=H[f+16>>2];u=g-e|0;t=H[f+20>>2]-((e>>>0>g>>>0)+t|0)|0;g=H[f+32>>2];v=g-b|0;h=H[f+36>>2]-((b>>>0>g>>>0)+h|0)|0;e=Sl(u,t,v,h);b=o+e|0;g=ka+n|0;g=b>>>0>>0?g+1|0:g;n=b;e=l;o=d;x=j;b=H[f+48>>2];l=H[f+72>>2];d=b-l|0;j=H[f+76>>2];w=H[f+52>>2]-(j+(b>>>0>>0)|0)|0;o=Sl(o,x,d,w);e=e+o|0;b=ka+m|0;b=e>>>0>>0?b+1|0:b;m=H[f+24>>2];o=m-l|0;j=H[f+28>>2]-((l>>>0>m>>>0)+j|0)|0;m=Sl(o,j,v,h);l=e-m|0;m=b-(ka+(e>>>0>>0)|0)|0;b=Sl(u,t,d,w);e=q-b|0;b=r-(ka+(b>>>0>q>>>0)|0)|0;r=Sl(o,j,s,p);q=r+e|0;b=ka+b|0;b=q>>>0>>0?b+1|0:b;r=b;b=H[f+88>>2];e=H[f+80>>2];d:{if(I[f+92|0]){e:{f:{g:{h:{if((b|0)==-1){break h}d=b+1|0;b=(d>>>0)%3|0?d:b-2|0;if((b|0)==-1|H[H[e>>2]+(b>>>3&536870908)>>2]>>>b&1){break h}b=H[H[H[e+64>>2]+12>>2]+(b<<2)>>2];if((b|0)!=-1){break g}}H[f+88>>2]=-1;break f}d=b+1|0;b=(d>>>0)%3|0?d:b-2|0;H[f+88>>2]=b;if((b|0)!=-1){break e}}b=H[f+84>>2];d=-1;i:{if((b|0)==-1){break i}j:{if((b>>>0)%3|0){b=b-1|0;break j}b=b+2|0;d=-1;if((b|0)==-1){break i}}d=-1;if(H[H[e>>2]+(b>>>3&536870908)>>2]>>>b&1){break i}b=H[H[H[e+64>>2]+12>>2]+(b<<2)>>2];d=-1;if((b|0)==-1){break i}d=b-1|0;if((b>>>0)%3|0){break i}d=b+2|0}F[f+92|0]=0;H[f+88>>2]=d;break d}if((b|0)!=H[f+84>>2]){break d}H[f+88>>2]=-1;break d}d=-1;k:{if((b|0)==-1){break k}l:{if((b>>>0)%3|0){b=b-1|0;break l}b=b+2|0;d=-1;if((b|0)==-1){break k}}d=-1;if(H[H[e>>2]+(b>>>3&536870908)>>2]>>>b&1){break k}b=H[H[H[e+64>>2]+12>>2]+(b<<2)>>2];d=-1;if((b|0)==-1){break k}d=b-1|0;if((b>>>0)%3|0){break k}d=b+2|0}H[f+88>>2]=d}b=H[f+88>>2];if((b|0)!=-1){continue}break}}b=r>>31;e=b^q;j=e-b|0;h=(b^r)-((b>>>0>e>>>0)+b|0)|0;p=-1;e=2147483647;b=m>>31;k=b^l;d=(b^m)-((b>>>0>k>>>0)+b|0)|0;b=k-b|0;s=b^-1;i=d^2147483647;k=g;m:{n:{if(!H[a+28>>2]){if((i|0)==(h|0)&j>>>0>s>>>0|i>>>0>>0){break m}i=g;a=b;e=b+j|0;b=d+h|0;b=a>>>0>e>>>0?b+1|0:b;a=g>>31;d=a;h=d^n;j=h-d|0;g=e+j|0;d=(d^i)-((d>>>0>h>>>0)+d|0)|0;a=g;g=d^2147483647;g=(g|0)==(b|0)&(j^-1)>>>0>>0|b>>>0>g>>>0;a=g?-1:a;if(!(g&0)&(a|0)<=536870912|(a|0)<536870912){break m}b=0;a=a>>>29|0;break n}o:{if((i|0)==(h|0)&j>>>0>s>>>0|i>>>0>>0){break o}a=b;i=b+j|0;b=d+h|0;b=a>>>0>i>>>0?b+1|0:b;a=i;h=g;d=g>>31;g=d;i=d^n;d=(d^h)-(d+(d>>>0>i>>>0)|0)|0;g=i-g|0;i=d^2147483647;if((i|0)==(b|0)&(g^-1)>>>0>>0|b>>>0>i>>>0){break o}b=b+d|0;a=a+g|0;b=a>>>0>>0?b+1|0:b;p=a;e=b;if(!b&a>>>0<536870913){break m}}b=e>>>29|0;a=(e&536870911)<<3|p>>>29}n=Tl(n,k,a,b);l=Tl(l,m,a,b);q=Tl(q,r,a,b)}H[c+8>>2]=n;H[c+4>>2]=l;H[c>>2]=q;ha=f+96|0;return}Yc();X()}Yc();X()}Yc();X()}function gk(a){a=a|0;var b=0,c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=O(0),p=0;d=1;a:{if(!H[a+80>>2]){break a}b=H[a+8>>2];if((H[a+12>>2]-b|0)<=0){break a}while(1){c=H[(n<<2)+b>>2];m=0;i=0;d=0;b=-1;b:{c:{d:{e:{switch(H[c+28>>2]-1|0){case 8:f:{switch(F[c+24|0]-1|0){case 0:e=ha+-64|0;ha=e;H[e+40>>2]=0;H[e+44>>2]=0;H[e+32>>2]=0;H[e+36>>2]=0;H[e+48>>2]=1065353216;b=H[c+80>>2];H[e+24>>2]=0;H[e+16>>2]=0;H[e+20>>2]=0;g:{h:{if(b){if(b>>>0>=1073741824){break h}f=b<<2;j=hl(f);H[e+16>>2]=j;b=f+j|0;H[e+24>>2]=b;lk(j,0,f);H[e+20>>2]=b;while(1){b=H[H[c>>2]>>2];f=H[c+48>>2]+Sl(H[c+40>>2],H[c+44>>2],i,0)|0;b=b+f|0;o=(x(2,I[b|0]|I[b+1|0]<<8|(I[b+2|0]<<16|I[b+3|0]<<24)),C());L[e+28>>2]=o;i:{j:{g=H[e+36>>2];k:{if(!g){break k}p=H[e+32>>2];h=(B(o),v(2));l=h^318;f=Vl(g)>>>0>1;b=l&g-1;l:{if(!f){break l}b=l;if(b>>>0>>0){break l}b=(l>>>0)%(g>>>0)|0}k=b;b=H[p+(k<<2)>>2];if(!b){break k}b=H[b>>2];if(!b){break k}if(!f){g=g-1|0;while(1){f=H[b+4>>2];m:{if((f|0)!=(l|0)){if((k|0)==(f&g)){break m}break k}if((h|0)==H[b+8>>2]){break j}}b=H[b>>2];if(b){continue}break}break k}while(1){f=H[b+4>>2];n:{if((f|0)!=(l|0)){if(f>>>0>=g>>>0){f=(f>>>0)%(g>>>0)|0}if((f|0)==(k|0)){break n}break k}if((h|0)==H[b+8>>2]){break j}}b=H[b>>2];if(b){continue}break}}H[e+12>>2]=m;L[e+8>>2]=o;b=e+8|0;sb(e+56|0,e+32|0,b,b);b=H[c+40>>2];jk(H[H[c>>2]>>2]+N(b,m)|0,e+28|0,b);j=H[e+16>>2];H[j+(i<<2)>>2]=m;m=m+1|0;break i}H[(i<<2)+j>>2]=H[b+12>>2]}b=i+1|0;d=b?d:d+1|0;i=b;b=H[c+80>>2];if(!d&b>>>0>i>>>0){continue}break}if((b|0)!=(m|0)){o:{if(!I[c+84|0]){b=H[c+72>>2];h=H[c+68>>2];if((b|0)==(h|0)){break o}b=b-h>>2;d=b>>>0>1?b:1;k=d&3;g=0;b=0;if(d-1>>>0>=3){f=d&-4;l=0;while(1){i=b<<2;d=i+h|0;H[d>>2]=H[(H[d>>2]<<2)+j>>2];d=h+(i|4)|0;H[d>>2]=H[(H[d>>2]<<2)+j>>2];d=h+(i|8)|0;H[d>>2]=H[(H[d>>2]<<2)+j>>2];d=h+(i|12)|0;H[d>>2]=H[(H[d>>2]<<2)+j>>2];b=b+4|0;l=l+4|0;if((f|0)!=(l|0)){continue}break}}if(!k){break o}while(1){d=h+(b<<2)|0;H[d>>2]=H[(H[d>>2]<<2)+j>>2];b=b+1|0;g=g+1|0;if((k|0)!=(g|0)){continue}break}break o}F[c+84|0]=0;k=c+68|0;d=H[c+68>>2];f=H[c+72>>2]-d>>2;p:{if(f>>>0>>0){tb(k,b-f|0,2176);b=H[c+80>>2];break p}if(b>>>0>=f>>>0){break p}H[c+72>>2]=d+(b<<2)}if(!b){break o}i=H[k>>2];g=0;h=0;if(b-1>>>0>=3){f=b&-4;l=0;while(1){k=h<<2;H[k+i>>2]=H[j+k>>2];d=k|4;H[d+i>>2]=H[d+j>>2];d=k|8;H[d+i>>2]=H[d+j>>2];d=k|12;H[d+i>>2]=H[d+j>>2];h=h+4|0;l=l+4|0;if((f|0)!=(l|0)){continue}break}}d=b&3;if(!d){break o}while(1){b=h<<2;H[b+i>>2]=H[b+j>>2];h=h+1|0;g=g+1|0;if((d|0)!=(g|0)){continue}break}}H[c+80>>2]=m}bl(j)}b=H[e+40>>2];if(b){while(1){d=H[b>>2];bl(b);b=d;if(b){continue}break}}b=H[e+32>>2];H[e+32>>2]=0;if(b){bl(b)}ha=e- -64|0;b=m;break g}Ka();X()}break d;case 1:b=gb(c,c);break d;case 2:b=hb(c,c);break d;case 3:break f;default:break c}}b=ib(c,c);break d;case 0:q:{switch(F[c+24|0]-1|0){case 0:b=jb(c,c);break d;case 1:b=kb(c,c);break d;case 2:b=lb(c,c);break d;case 3:break q;default:break c}}b=mb(c,c);break d;case 1:case 10:r:{switch(F[c+24|0]-1|0){case 0:b=jb(c,c);break d;case 1:b=kb(c,c);break d;case 2:b=lb(c,c);break d;case 3:break r;default:break c}}b=mb(c,c);break d;case 3:s:{switch(F[c+24|0]-1|0){case 0:b=nb(c,c);break d;case 1:b=ob(c,c);break d;case 2:b=pb(c,c);break d;case 3:break s;default:break c}}b=qb(c,c);break d;case 2:t:{switch(F[c+24|0]-1|0){case 0:b=nb(c,c);break d;case 1:b=ob(c,c);break d;case 2:b=pb(c,c);break d;case 3:break t;default:break c}}b=qb(c,c);break d;case 5:u:{switch(F[c+24|0]-1|0){case 0:b=rb(c,c);break d;case 1:b=gb(c,c);break d;case 2:b=hb(c,c);break d;case 3:break u;default:break c}}b=ib(c,c);break d;case 4:break e;default:break b}}v:{switch(F[c+24|0]-1|0){case 0:b=rb(c,c);break d;case 1:b=gb(c,c);break d;case 2:b=hb(c,c);break d;case 3:break v;default:break c}}b=ib(c,c)}if(b){break b}}b=-1}d=b;if(b){n=n+1|0;b=H[a+8>>2];if((n|0)>2]-b>>2){continue}}break}d=(d|0)!=0}return d|0}function Hd(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0;e=ha-96|0;ha=e;d=H[a+16>>2];F[e+92|0]=1;H[e+88>>2]=b;H[e+84>>2]=b;H[e+80>>2]=d;a:{if((b|0)==-1){break a}k=H[a+20>>2];f=H[k>>2];d=H[H[d>>2]+(b<<2)>>2];if(d>>>0>=H[k+4>>2]-f>>2>>>0){break a}f=H[H[a+8>>2]+(H[f+(d<<2)>>2]<<2)>>2];d=H[a+4>>2];if(!I[d+84|0]){f=H[H[d+68>>2]+(f<<2)>>2]}H[e+72>>2]=0;H[e+76>>2]=0;k=e- -64|0;H[k>>2]=0;H[k+4>>2]=0;H[e+56>>2]=0;H[e+60>>2]=0;ld(d,f,F[d+24|0],e+56|0);d=b+1|0;k=(d>>>0)%3|0?d:b-2|0;i=((b>>>0)%3|0?-1:2)+b|0;b:{c:{while(1){f=k;d=i;d:{if(!H[a+28>>2]){break d}d=b+1|0;f=(d>>>0)%3|0?d:b-2|0;d=b-1|0;if((b>>>0)%3|0){break d}d=b+2|0}if((f|0)==-1){break b}h=H[a+20>>2];b=H[h>>2];f=H[H[H[a+16>>2]>>2]+(f<<2)>>2];if(f>>>0>=H[h+4>>2]-b>>2>>>0){break b}f=H[H[a+8>>2]+(H[b+(f<<2)>>2]<<2)>>2];b=H[a+4>>2];if(!I[b+84|0]){f=H[H[b+68>>2]+(f<<2)>>2]}H[e+48>>2]=0;H[e+52>>2]=0;H[e+40>>2]=0;H[e+44>>2]=0;H[e+32>>2]=0;H[e+36>>2]=0;ld(b,f,F[b+24|0],e+32|0);if((d|0)==-1){break c}f=H[a+20>>2];b=H[f>>2];d=H[H[H[a+16>>2]>>2]+(d<<2)>>2];if(d>>>0>=H[f+4>>2]-b>>2>>>0){break c}f=H[H[a+8>>2]+(H[b+(d<<2)>>2]<<2)>>2];b=H[a+4>>2];if(!I[b+84|0]){f=H[H[b+68>>2]+(f<<2)>>2]}H[e+24>>2]=0;H[e+28>>2]=0;H[e+16>>2]=0;H[e+20>>2]=0;H[e+8>>2]=0;H[e+12>>2]=0;ld(b,f,F[b+24|0],e+8|0);d=H[e+8>>2];b=H[e+56>>2];f=d-b|0;h=H[e+60>>2];j=H[e+12>>2]-(h+(b>>>0>d>>>0)|0)|0;p=H[e+40>>2];d=H[e+64>>2];s=p-d|0;t=H[e+68>>2];p=H[e+44>>2]-(t+(d>>>0>p>>>0)|0)|0;u=Sl(f,j,s,p);v=n-u|0;n=g-(ka+(n>>>0>>0)|0)|0;o=v;g=H[e+16>>2];u=g-d|0;t=H[e+20>>2]-((d>>>0>g>>>0)+t|0)|0;g=H[e+32>>2];v=g-b|0;h=H[e+36>>2]-((b>>>0>g>>>0)+h|0)|0;d=Sl(u,t,v,h);b=o+d|0;g=ka+n|0;g=b>>>0>>0?g+1|0:g;n=b;d=l;o=f;x=j;b=H[e+48>>2];l=H[e+72>>2];f=b-l|0;j=H[e+76>>2];w=H[e+52>>2]-(j+(b>>>0>>0)|0)|0;o=Sl(o,x,f,w);d=d+o|0;b=ka+m|0;b=d>>>0>>0?b+1|0:b;m=H[e+24>>2];o=m-l|0;j=H[e+28>>2]-((l>>>0>m>>>0)+j|0)|0;m=Sl(o,j,v,h);l=d-m|0;m=b-(ka+(d>>>0>>0)|0)|0;b=Sl(u,t,f,w);d=q-b|0;b=r-(ka+(b>>>0>q>>>0)|0)|0;r=Sl(o,j,s,p);q=r+d|0;b=ka+b|0;b=q>>>0>>0?b+1|0:b;r=b;b=H[e+88>>2];f=H[e+80>>2];e:{if(I[e+92|0]){f:{g:{h:{i:{if((b|0)==-1){break i}d=b+1|0;b=(d>>>0)%3|0?d:b-2|0;if((b|0)==-1){break i}b=H[H[f+12>>2]+(b<<2)>>2];if((b|0)!=-1){break h}}H[e+88>>2]=-1;break g}d=b+1|0;b=(d>>>0)%3|0?d:b-2|0;H[e+88>>2]=b;if((b|0)!=-1){break f}}b=H[e+84>>2];d=-1;j:{if((b|0)==-1){break j}k:{if((b>>>0)%3|0){b=b-1|0;break k}b=b+2|0;d=-1;if((b|0)==-1){break j}}b=H[H[f+12>>2]+(b<<2)>>2];d=-1;if((b|0)==-1){break j}d=b-1|0;if((b>>>0)%3|0){break j}d=b+2|0}F[e+92|0]=0;H[e+88>>2]=d;break e}if((b|0)!=H[e+84>>2]){break e}H[e+88>>2]=-1;break e}d=-1;l:{if((b|0)==-1){break l}m:{if((b>>>0)%3|0){b=b-1|0;break m}b=b+2|0;d=-1;if((b|0)==-1){break l}}b=H[H[f+12>>2]+(b<<2)>>2];d=-1;if((b|0)==-1){break l}d=b-1|0;if((b>>>0)%3|0){break l}d=b+2|0}H[e+88>>2]=d}b=H[e+88>>2];if((b|0)!=-1){continue}break}b=r>>31;d=b^q;j=d-b|0;h=(b^r)-((b>>>0>d>>>0)+b|0)|0;p=-1;d=2147483647;b=m>>31;k=b^l;f=(b^m)-((b>>>0>k>>>0)+b|0)|0;b=k-b|0;s=b^-1;i=f^2147483647;k=g;n:{o:{if(!H[a+28>>2]){if((i|0)==(h|0)&j>>>0>s>>>0|i>>>0>>0){break n}i=g;a=b;d=b+j|0;b=f+h|0;b=a>>>0>d>>>0?b+1|0:b;a=g>>31;h=a^n;j=h-a|0;g=d+j|0;f=(a^i)-((a>>>0>h>>>0)+a|0)|0;a=g;g=f^2147483647;g=(g|0)==(b|0)&(j^-1)>>>0>>0|b>>>0>g>>>0;a=g?-1:a;if(!(g&0)&(a|0)<=536870912|(a|0)<536870912){break n}b=0;a=a>>>29|0;break o}p:{if((i|0)==(h|0)&j>>>0>s>>>0|i>>>0>>0){break p}a=b;i=b+j|0;b=f+h|0;b=a>>>0>i>>>0?b+1|0:b;a=i;h=g;f=g>>31;g=f;i=f^n;f=(f^h)-(f+(f>>>0>i>>>0)|0)|0;g=i-g|0;i=f^2147483647;if((i|0)==(b|0)&(g^-1)>>>0>>0|b>>>0>i>>>0){break p}b=b+f|0;a=a+g|0;b=a>>>0>>0?b+1|0:b;p=a;d=b;if(!b&a>>>0<536870913){break n}}b=d>>>29|0;a=(d&536870911)<<3|p>>>29}n=Tl(n,k,a,b);l=Tl(l,m,a,b);q=Tl(q,r,a,b)}H[c+8>>2]=n;H[c+4>>2]=l;H[c>>2]=q;ha=e+96|0;return}Yc();X()}Yc();X()}Yc();X()}function lf(a,b,c,d){var e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0;o=ha-32|0;ha=o;a:{if((c|0)<=0){break a}q=c&3;b:{if(c-1>>>0<3){c=0;break b}A=c&-4;c=0;while(1){t=c|1;i=(t<<3)+b|0;f=H[i+4>>2];u=H[i>>2];v=c|2;h=(v<<3)+b|0;i=H[h+4>>2];w=H[h>>2];x=c|3;m=(x<<3)+b|0;h=H[m+4>>2];y=H[m>>2];s=j;j=(c<<3)+b|0;z=H[j+4>>2];m=H[j>>2];j=h|y?x:i|w?v:f|u?t:!(z|m)?s:c;e=e+z|0;n=m+n|0;e=n>>>0>>0?e+1|0:e;m=n+u|0;e=e+f|0;e=m>>>0>>0?e+1|0:e;f=m+w|0;e=e+i|0;e=f>>>0>>0?e+1|0:e;i=f;f=f+y|0;e=e+h|0;e=f>>>0>>0?e+1|0:e;n=f;c=c+4|0;g=g+4|0;if((A|0)!=(g|0)){continue}break}}if(!q){break a}while(1){i=j;j=(c<<3)+b|0;f=H[j+4>>2];g=H[j>>2];j=!(f|g)?i:c;c=c+1|0;e=e+f|0;i=g+n|0;e=i>>>0>>0?e+1|0:e;n=i;k=k+1|0;if((q|0)!=(k|0)){continue}break}}g=j+1|0;H[a+12>>2]=g;f=H[a>>2];c=H[a+4>>2]-f>>3;c:{if(c>>>0>>0){jf(a,g-c|0);break c}if(c>>>0<=g>>>0){break c}H[a+4>>2]=f+(g<<3)}i=0;d:{e:{f:{g:{h:{if((j|0)>=0){r=+(n>>>0)+ +(e>>>0)*4294967296;f=H[a>>2];c=0;while(1){h=c<<3;m=h+b|0;e=H[m+4>>2];m=H[m>>2];k=(e|m)!=0;n=f+h|0;l=(+(m>>>0)+ +(e>>>0)*4294967296)/r*4096+.5;i:{if(l<4294967296&l>=0){e=~~l>>>0;break i}e=0}e=e?e:k?1:e;H[n>>2]=e;i=e+i|0;e=(c|0)==(j|0);c=c+1|0;if(!e){continue}break}if((i|0)==4096){break h}}H[o+16>>2]=0;H[o+8>>2]=0;H[o+12>>2]=0;f=0;if(g){if(g>>>0>=1073741824){break g}c=g<<2;f=hl(c);H[o+8>>2]=f;p=c+f|0;H[o+16>>2]=p;lk(f,0,c);H[o+12>>2]=p}c=0;j:{if((j|0)<0){break j}g=j+1|0;e=g&7;if(j>>>0>=7){g=g&-8;k=0;while(1){H[(c<<2)+f>>2]=c;h=c|1;H[(h<<2)+f>>2]=h;h=c|2;H[(h<<2)+f>>2]=h;h=c|3;H[(h<<2)+f>>2]=h;h=c|4;H[(h<<2)+f>>2]=h;h=c|5;H[(h<<2)+f>>2]=h;h=c|6;H[(h<<2)+f>>2]=h;h=c|7;H[(h<<2)+f>>2]=h;c=c+8|0;k=k+8|0;if((g|0)!=(k|0)){continue}break}}if(!e){break j}k=0;while(1){H[(c<<2)+f>>2]=c;c=c+1|0;k=k+1|0;if((e|0)!=(k|0)){continue}break}}H[o+24>>2]=a;c=p-f|0;e=c>>2;k:{l:{if((c|0)>=513){c=e;while(1){g=hl(c<<2);if(g){break l}g=c>>>0>1;c=c>>>1|0;if(g){continue}break}}nf(f,p,o+24|0,e,0,0);break k}nf(f,p,o+24|0,e,g,c);bl(g)}if((i|0)<4096){c=H[a>>2]+(H[p-4>>2]<<3)|0;H[c>>2]=(H[c>>2]-i|0)+4096;c=0;break f}if((j|0)>0){m=H[a>>2];k=i-4096|0;while(1){l=4096/+(i|0);g=j;while(1){m:{n:{e=m+(H[(g<<2)+f>>2]<<3)|0;c=H[e>>2];if(c>>>0>=2){n=e;s=c;r=T(l*+(c>>>0));o:{if(P(r)<2147483648){h=~~r;break o}h=-2147483648}e=(c|0)==(h|0)?1:c-h|0;c=(c|0)>(e|0)?e:c-1|0;c=(c|0)<(k|0)?c:k;H[n>>2]=s-c;k=k-c|0;i=i-c|0;if((i|0)!=4096){break n}i=4096;break m}if((g|0)!=(j|0)){break m}c=1;break f}c=(g|0)>1;g=g-1|0;if(c){continue}}break}c=0;if((k|0)>0){continue}break}break f}c=0;if(i>>>0<4097){break f}while(1)continue}if((j|0)<0){break d}break e}Ka();X()}e=H[o+8>>2];if(e){bl(e)}if((j|0)<0|c){break d}}h=j+1|0;m=h&3;e=H[a>>2];i=0;k=0;c=0;if(j>>>0>=3){p=h&-4;f=0;while(1){g=k<<3;n=g+e|0;H[n+4>>2]=c;q=e+(g|8)|0;c=H[n>>2]+c|0;H[q+4>>2]=c;n=e+(g|16)|0;c=c+H[q>>2]|0;H[n+4>>2]=c;g=e+(g|24)|0;c=c+H[n>>2]|0;H[g+4>>2]=c;c=c+H[g>>2]|0;k=k+4|0;f=f+4|0;if((p|0)!=(f|0)){continue}break}}if(m){while(1){g=e+(k<<3)|0;H[g+4>>2]=c;k=k+1|0;c=H[g>>2]+c|0;i=i+1|0;if((m|0)!=(i|0)){continue}break}}if((c|0)!=4096){break d}c=0;l=0;p:{if((j|0)<0){break p}e=H[a>>2];if(j){j=h&-2;g=0;while(1){f=c<<3;i=H[f+e>>2];if(i){f=b+f|0;l=(+K[f>>2]+ +K[f+4>>2]*4294967296)*nk(+(i>>>0)*.000244140625)+l}f=(c|1)<<3;i=H[f+e>>2];if(i){f=b+f|0;l=(+K[f>>2]+ +K[f+4>>2]*4294967296)*nk(+(i>>>0)*.000244140625)+l}c=c+2|0;g=g+2|0;if((j|0)!=(g|0)){continue}break}}if(!(h&1)){break p}c=c<<3;e=H[c+e>>2];if(!e){break p}b=b+c|0;l=(+K[b>>2]+ +K[b+4>>2]*4294967296)*nk(+(e>>>0)*.000244140625)+l}l=U(-l);q:{if(l<0x10000000000000000&l>=0){c=P(l)>=1?~~(l>0?R(T(l*2.3283064365386963e-10),4294967295):U((l-+(~~l>>>0>>>0))*2.3283064365386963e-10))>>>0:0;b=~~l>>>0;break q}c=0;b=0}H[a+16>>2]=b;H[a+20>>2]=c;of(a,d)}ha=o+32|0}function sd(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0;l=ha-48|0;ha=l;H[a+68>>2]=f;o=a+112|0;Be(o);d=H[a+56>>2];e=H[d>>2];d=H[d+4>>2];H[l+40>>2]=0;H[l+32>>2]=0;H[l+36>>2]=0;H[l+16>>2]=0;H[l+20>>2]=0;H[l+8>>2]=0;H[l+12>>2]=0;H[l>>2]=0;H[l+4>>2]=0;a:{d=d-e|0;if((d|0)>0){p=a+60|0;d=d>>>2|0;q=d>>>0>1?d:1;r=c+4|0;while(1){e=H[a+56>>2];d=H[e>>2];if(H[e+4>>2]-d>>2>>>0<=n>>>0){break a}td(p,H[d+(n<<2)>>2],l+32|0);f=H[l+36>>2];d=f>>31;e=H[l+32>>2];g=e>>31;h=H[l+40>>2];j=h>>31;j=(h^j)-j|0;g=j+((d^f)-d+((e^g)-g)|0)|0;d=0;d=j>>>0>g>>>0?1:d;b:{if(!(d|g)){i=H[a+108>>2];k=i;break b}i=H[a+108>>2];k=i>>31;f=Tl(Sl(i,k,f,f>>31),ka,g,d);j=f>>31;k=Tl(Sl(i,k,e,e>>31),ka,g,d);d=k>>31;d=(f^j)-j+((d^k)-d)|0;h=(h|0)<0?d-i|0:i-d|0}c:{if((k|0)>=0){e=f+i|0;j=i+h|0;break c}d:{if((f|0)<0){d=h>>31;e=(d^h)-d|0;break d}d=h>>31;e=H[a+100>>2]+(d-(d^h)|0)|0}if((h|0)<0){d=f>>31;j=(d^f)-d|0;break c}d=f>>31;j=H[a+100>>2]+(d-(d^f)|0)|0}d=H[a+100>>2];m=d;g=d;e:{if(!(e|j)){break e}if(!((d|0)!=(j|0)|e)){m=j;g=j;break e}if(!((d|0)!=(e|0)|j)){m=e;g=e;break e}if(!((i|0)>=(j|0)|e)){m=(i<<1)-j|0;g=0;break e}if(!((d|0)!=(e|0)|(i|0)<=(j|0))){m=(i<<1)-j|0;g=e;break e}if(!((d|0)!=(j|0)|(e|0)>=(i|0))){m=j;g=(i<<1)-e|0;break e}if(j){m=j;g=e;break e}m=0;g=e;if((e|0)<=(i|0)){break e}g=(i<<1)-e|0}H[l+28>>2]=m;H[l+24>>2]=g;H[l+40>>2]=0-h;H[l+36>>2]=0-f;H[l+32>>2]=0-k;f:{if((k|0)<=0){k=i-h|0;e=i-f|0;break f}e=f>>31;e=(e^f)-e|0;k=(h|0)>0?e:d-e|0;e=h>>31;e=(e^h)-e|0;e=(f|0)>0?e:d-e|0}g:{if(!(e|k)){k=d;break g}if(!((d|0)!=(k|0)|e)){k=d;break g}f=(d|0)!=(e|0);if(!(k|f)){k=d;break g}if(!((i|0)>=(k|0)|e)){k=(i<<1)-k|0;d=0;break g}if(!((i|0)<=(k|0)|f)){k=(i<<1)-k|0;break g}if(!((d|0)!=(k|0)|(e|0)>=(i|0))){k=d;d=(i<<1)-e|0;break g}if(k){d=e;break g}k=0;if((e|0)<=(i|0)){d=e;break g}d=(i<<1)-e|0}H[l+20>>2]=k;H[l+16>>2]=d;h=H[a+8>>2];h:{if((h|0)<=0){break h}k=(n<<3)+b|0;j=H[a+32>>2];e=0;g=l+24|0;while(1){i=j;if((h|0)>0){i=H[a+32>>2];f=0;while(1){d=f<<2;m=H[d+g>>2];h=H[a+16>>2];i:{if((m|0)>(h|0)){H[d+i>>2]=h;break i}d=d+i|0;h=H[a+12>>2];if((h|0)>(m|0)){H[d>>2]=h;break i}H[d>>2]=m}f=f+1|0;h=H[a+8>>2];if((f|0)<(h|0)){continue}break}}f=e<<2;d=f+(l+8|0)|0;g=H[f+k>>2]-H[f+i>>2]|0;H[d>>2]=g;f=d;d=H[a+28>>2];j:{if((g|0)<(d|0)){g=g+H[a+20>>2]|0}else{if((g|0)<=H[a+24>>2]){break j}g=g-H[a+20>>2]|0}H[f>>2]=g}g=i;e=e+1|0;if((e|0)<(h|0)){continue}break}if((h|0)<=0){break h}j=H[a+32>>2];e=0;g=l+16|0;while(1){i=j;if((h|0)>0){i=H[a+32>>2];f=0;while(1){d=f<<2;m=H[d+g>>2];h=H[a+16>>2];k:{if((m|0)>(h|0)){H[d+i>>2]=h;break k}d=d+i|0;h=H[a+12>>2];if((h|0)>(m|0)){H[d>>2]=h;break k}H[d>>2]=m}f=f+1|0;h=H[a+8>>2];if((f|0)<(h|0)){continue}break}d=H[a+28>>2]}g=e<<2;f=g+l|0;g=H[k+g>>2]-H[i+g>>2]|0;H[f>>2]=g;l:{if((d|0)>(g|0)){g=g+H[a+20>>2]|0}else{if((g|0)<=H[a+24>>2]){break l}g=g-H[a+20>>2]|0}H[f>>2]=g}g=i;e=e+1|0;if((e|0)<(h|0)){continue}break}}f=H[l+8>>2];e=H[a+108>>2];m:{if((f|0)>(e|0)){f=f-H[a+96>>2]|0;break m}if((0-e|0)<=(f|0)){break m}f=H[a+96>>2]+f|0}H[l+8>>2]=f;h=H[l+12>>2];n:{if((e|0)<(h|0)){h=h-H[a+96>>2]|0;break n}if((0-e|0)<=(h|0)){break n}h=H[a+96>>2]+h|0}H[l+12>>2]=h;d=H[l>>2];o:{if((e|0)<(d|0)){d=d-H[a+96>>2]|0;break o}if((0-e|0)<=(d|0)){break o}d=H[a+96>>2]+d|0}g=n<<1;H[l>>2]=d;k=H[l+4>>2];p:{if((e|0)<(k|0)){k=k-H[a+96>>2]|0;break p}if((0-e|0)<=(k|0)){break p}k=H[a+96>>2]+k|0}H[l+4>>2]=k;e=h>>31;e=(e^h)-e|0;j=f>>31;j=(j^f)-j|0;e=j>>>0>(e^2147483647)>>>0?2147483647:e+j|0;j=k>>31;j=(j^k)-j|0;i=d>>31;i=(i^d)-i|0;j=i>>>0>(j^2147483647)>>>0?2147483647:j+i|0;Ce(o,e>>>0>=j>>>0);g=g<<2;m=d;d=e>>>0>>0;e=d?f:m;H[g+c>>2]=(H[a+96>>2]&e>>31)+e;d=d?h:k;H[g+r>>2]=(H[a+96>>2]&d>>31)+d;n=n+1|0;if((q|0)!=(n|0)){continue}break}}ha=l+48|0;return 1}Yc();X()}function Gd(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0;l=ha-48|0;ha=l;H[a+68>>2]=f;o=a+112|0;Be(o);d=H[a+56>>2];e=H[d>>2];d=H[d+4>>2];H[l+40>>2]=0;H[l+32>>2]=0;H[l+36>>2]=0;H[l+16>>2]=0;H[l+20>>2]=0;H[l+8>>2]=0;H[l+12>>2]=0;H[l>>2]=0;H[l+4>>2]=0;a:{d=d-e|0;if((d|0)>0){p=a+60|0;d=d>>>2|0;q=d>>>0>1?d:1;r=c+4|0;while(1){e=H[a+56>>2];d=H[e>>2];if(H[e+4>>2]-d>>2>>>0<=n>>>0){break a}Hd(p,H[d+(n<<2)>>2],l+32|0);f=H[l+36>>2];d=f>>31;e=H[l+32>>2];g=e>>31;h=H[l+40>>2];j=h>>31;j=(h^j)-j|0;g=j+((d^f)-d+((e^g)-g)|0)|0;d=0;d=j>>>0>g>>>0?1:d;b:{if(!(d|g)){i=H[a+108>>2];k=i;break b}i=H[a+108>>2];k=i>>31;f=Tl(Sl(i,k,f,f>>31),ka,g,d);j=f>>31;k=Tl(Sl(i,k,e,e>>31),ka,g,d);d=k>>31;d=(f^j)-j+((d^k)-d)|0;h=(h|0)<0?d-i|0:i-d|0}c:{if((k|0)>=0){e=f+i|0;j=i+h|0;break c}d:{if((f|0)<0){d=h>>31;e=(d^h)-d|0;break d}d=h>>31;e=H[a+100>>2]+(d-(d^h)|0)|0}if((h|0)<0){d=f>>31;j=(d^f)-d|0;break c}d=f>>31;j=H[a+100>>2]+(d-(d^f)|0)|0}d=H[a+100>>2];m=d;g=d;e:{if(!(e|j)){break e}if(!((d|0)!=(j|0)|e)){m=j;g=j;break e}if(!((d|0)!=(e|0)|j)){m=e;g=e;break e}if(!((i|0)>=(j|0)|e)){m=(i<<1)-j|0;g=0;break e}if(!((d|0)!=(e|0)|(i|0)<=(j|0))){m=(i<<1)-j|0;g=e;break e}if(!((d|0)!=(j|0)|(e|0)>=(i|0))){m=j;g=(i<<1)-e|0;break e}if(j){m=j;g=e;break e}m=0;g=e;if((e|0)<=(i|0)){break e}g=(i<<1)-e|0}H[l+28>>2]=m;H[l+24>>2]=g;H[l+40>>2]=0-h;H[l+36>>2]=0-f;H[l+32>>2]=0-k;f:{if((k|0)<=0){k=i-h|0;e=i-f|0;break f}e=f>>31;e=(e^f)-e|0;k=(h|0)>0?e:d-e|0;e=h>>31;e=(e^h)-e|0;e=(f|0)>0?e:d-e|0}g:{if(!(e|k)){k=d;break g}if(!((d|0)!=(k|0)|e)){k=d;break g}f=(d|0)!=(e|0);if(!(k|f)){k=d;break g}if(!((i|0)>=(k|0)|e)){k=(i<<1)-k|0;d=0;break g}if(!((i|0)<=(k|0)|f)){k=(i<<1)-k|0;break g}if(!((d|0)!=(k|0)|(e|0)>=(i|0))){k=d;d=(i<<1)-e|0;break g}if(k){d=e;break g}k=0;if((e|0)<=(i|0)){d=e;break g}d=(i<<1)-e|0}H[l+20>>2]=k;H[l+16>>2]=d;h=H[a+8>>2];h:{if((h|0)<=0){break h}k=(n<<3)+b|0;j=H[a+32>>2];e=0;g=l+24|0;while(1){i=j;if((h|0)>0){i=H[a+32>>2];f=0;while(1){d=f<<2;m=H[d+g>>2];h=H[a+16>>2];i:{if((m|0)>(h|0)){H[d+i>>2]=h;break i}d=d+i|0;h=H[a+12>>2];if((h|0)>(m|0)){H[d>>2]=h;break i}H[d>>2]=m}f=f+1|0;h=H[a+8>>2];if((f|0)<(h|0)){continue}break}}f=e<<2;d=f+(l+8|0)|0;g=H[f+k>>2]-H[f+i>>2]|0;H[d>>2]=g;f=d;d=H[a+28>>2];j:{if((g|0)<(d|0)){g=g+H[a+20>>2]|0}else{if((g|0)<=H[a+24>>2]){break j}g=g-H[a+20>>2]|0}H[f>>2]=g}g=i;e=e+1|0;if((e|0)<(h|0)){continue}break}if((h|0)<=0){break h}j=H[a+32>>2];e=0;g=l+16|0;while(1){i=j;if((h|0)>0){i=H[a+32>>2];f=0;while(1){d=f<<2;m=H[d+g>>2];h=H[a+16>>2];k:{if((m|0)>(h|0)){H[d+i>>2]=h;break k}d=d+i|0;h=H[a+12>>2];if((h|0)>(m|0)){H[d>>2]=h;break k}H[d>>2]=m}f=f+1|0;h=H[a+8>>2];if((f|0)<(h|0)){continue}break}d=H[a+28>>2]}g=e<<2;f=g+l|0;g=H[k+g>>2]-H[i+g>>2]|0;H[f>>2]=g;l:{if((d|0)>(g|0)){g=g+H[a+20>>2]|0}else{if((g|0)<=H[a+24>>2]){break l}g=g-H[a+20>>2]|0}H[f>>2]=g}g=i;e=e+1|0;if((e|0)<(h|0)){continue}break}}f=H[l+8>>2];e=H[a+108>>2];m:{if((f|0)>(e|0)){f=f-H[a+96>>2]|0;break m}if((0-e|0)<=(f|0)){break m}f=H[a+96>>2]+f|0}H[l+8>>2]=f;h=H[l+12>>2];n:{if((e|0)<(h|0)){h=h-H[a+96>>2]|0;break n}if((0-e|0)<=(h|0)){break n}h=H[a+96>>2]+h|0}H[l+12>>2]=h;d=H[l>>2];o:{if((e|0)<(d|0)){d=d-H[a+96>>2]|0;break o}if((0-e|0)<=(d|0)){break o}d=H[a+96>>2]+d|0}g=n<<1;H[l>>2]=d;k=H[l+4>>2];p:{if((e|0)<(k|0)){k=k-H[a+96>>2]|0;break p}if((0-e|0)<=(k|0)){break p}k=H[a+96>>2]+k|0}H[l+4>>2]=k;e=h>>31;e=(e^h)-e|0;j=f>>31;j=(j^f)-j|0;e=j>>>0>(e^2147483647)>>>0?2147483647:e+j|0;j=k>>31;j=(j^k)-j|0;i=d>>31;i=(i^d)-i|0;j=i>>>0>(j^2147483647)>>>0?2147483647:j+i|0;Ce(o,e>>>0>=j>>>0);g=g<<2;m=d;d=e>>>0>>0;e=d?f:m;H[g+c>>2]=(H[a+96>>2]&e>>31)+e;d=d?h:k;H[g+r>>2]=(H[a+96>>2]&d>>31)+d;n=n+1|0;if((q|0)!=(n|0)){continue}break}}ha=l+48|0;return 1}Yc();X()}function re(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=O(0);f=ha-32|0;ha=f;H[f+28>>2]=c;a:{b:{if(!Jc(a,b,c)){break b}i=H[H[H[b+4>>2]+8>>2]+(c<<2)>>2];if(H[i+28>>2]!=9){break b}g=H[b+48>>2];c=hl(32);H[f+16>>2]=c;H[f+20>>2]=17;H[f+24>>2]=-2147483616;F[c+17|0]=0;F[c+16|0]=I[1261];d=I[1257]|I[1258]<<8|(I[1259]<<16|I[1260]<<24);h=I[1253]|I[1254]<<8|(I[1255]<<16|I[1256]<<24);F[c+8|0]=h;F[c+9|0]=h>>>8;F[c+10|0]=h>>>16;F[c+11|0]=h>>>24;F[c+12|0]=d;F[c+13|0]=d>>>8;F[c+14|0]=d>>>16;F[c+15|0]=d>>>24;d=I[1249]|I[1250]<<8|(I[1251]<<16|I[1252]<<24);h=I[1245]|I[1246]<<8|(I[1247]<<16|I[1248]<<24);F[c|0]=h;F[c+1|0]=h>>>8;F[c+2|0]=h>>>16;F[c+3|0]=h>>>24;F[c+4|0]=d;F[c+5|0]=d>>>8;F[c+6|0]=d>>>16;F[c+7|0]=d>>>24;h=Hb(g,f+28|0,f+16|0,-1);if(F[f+27|0]<0){bl(H[f+16>>2])}if((h|0)<=0){break b}j=H[b+48>>2];c=hl(32);H[f+16>>2]=c;H[f+20>>2]=19;H[f+24>>2]=-2147483616;F[c+19|0]=0;d=I[1429]|I[1430]<<8|(I[1431]<<16|I[1432]<<24);F[c+15|0]=d;F[c+16|0]=d>>>8;F[c+17|0]=d>>>16;F[c+18|0]=d>>>24;d=I[1426]|I[1427]<<8|(I[1428]<<16|I[1429]<<24);g=I[1422]|I[1423]<<8|(I[1424]<<16|I[1425]<<24);F[c+8|0]=g;F[c+9|0]=g>>>8;F[c+10|0]=g>>>16;F[c+11|0]=g>>>24;F[c+12|0]=d;F[c+13|0]=d>>>8;F[c+14|0]=d>>>16;F[c+15|0]=d>>>24;d=I[1418]|I[1419]<<8|(I[1420]<<16|I[1421]<<24);g=I[1414]|I[1415]<<8|(I[1416]<<16|I[1417]<<24);F[c|0]=g;F[c+1|0]=g>>>8;F[c+2|0]=g>>>16;F[c+3|0]=g>>>24;F[c+4|0]=d;F[c+5|0]=d>>>8;F[c+6|0]=d>>>16;F[c+7|0]=d>>>24;c:{if(!Ib(j,f+28|0,f+16|0)){break c}g=H[b+48>>2];c=hl(32);H[f>>2]=c;H[f+4>>2]=18;H[f+8>>2]=-2147483616;F[c+18|0]=0;e=I[1547]|I[1548]<<8;F[c+16|0]=e;F[c+17|0]=e>>>8;e=I[1543]|I[1544]<<8|(I[1545]<<16|I[1546]<<24);d=I[1539]|I[1540]<<8|(I[1541]<<16|I[1542]<<24);F[c+8|0]=d;F[c+9|0]=d>>>8;F[c+10|0]=d>>>16;F[c+11|0]=d>>>24;F[c+12|0]=e;F[c+13|0]=e>>>8;F[c+14|0]=e>>>16;F[c+15|0]=e>>>24;e=I[1535]|I[1536]<<8|(I[1537]<<16|I[1538]<<24);d=I[1531]|I[1532]<<8|(I[1533]<<16|I[1534]<<24);F[c|0]=d;F[c+1|0]=d>>>8;F[c+2|0]=d>>>16;F[c+3|0]=d>>>24;F[c+4|0]=e;F[c+5|0]=e>>>8;F[c+6|0]=e>>>16;F[c+7|0]=e>>>24;e=Ib(g,f+28|0,f);if(F[f+11|0]>=0){break c}bl(H[f>>2])}if(F[f+27|0]<0){bl(H[f+16>>2])}d:{if(e){e=F[i+24|0];H[f+24>>2]=0;H[f+16>>2]=0;H[f+20>>2]=0;c=0;if(e){if((e|0)<0){break a}e=e<<2;c=hl(e);H[f+16>>2]=c;d=c+e|0;H[f+24>>2]=d;lk(c,0,e);H[f+20>>2]=d}j=H[b+48>>2];e=hl(32);H[f>>2]=e;H[f+4>>2]=19;H[f+8>>2]=-2147483616;F[e+19|0]=0;d=I[1429]|I[1430]<<8|(I[1431]<<16|I[1432]<<24);F[e+15|0]=d;F[e+16|0]=d>>>8;F[e+17|0]=d>>>16;F[e+18|0]=d>>>24;d=I[1426]|I[1427]<<8|(I[1428]<<16|I[1429]<<24);g=I[1422]|I[1423]<<8|(I[1424]<<16|I[1425]<<24);F[e+8|0]=g;F[e+9|0]=g>>>8;F[e+10|0]=g>>>16;F[e+11|0]=g>>>24;F[e+12|0]=d;F[e+13|0]=d>>>8;F[e+14|0]=d>>>16;F[e+15|0]=d>>>24;d=I[1418]|I[1419]<<8|(I[1420]<<16|I[1421]<<24);g=I[1414]|I[1415]<<8|(I[1416]<<16|I[1417]<<24);F[e|0]=g;F[e+1|0]=g>>>8;F[e+2|0]=g>>>16;F[e+3|0]=g>>>24;F[e+4|0]=d;F[e+5|0]=d>>>8;F[e+6|0]=d>>>16;F[e+7|0]=d>>>24;Jb(j,f+28|0,f,F[i+24|0],c);if(F[f+11|0]<0){bl(H[f>>2])}g=H[b+48>>2];b=hl(32);H[f>>2]=b;H[f+4>>2]=18;H[f+8>>2]=-2147483616;F[b+18|0]=0;e=I[1547]|I[1548]<<8;F[b+16|0]=e;F[b+17|0]=e>>>8;e=I[1543]|I[1544]<<8|(I[1545]<<16|I[1546]<<24);d=I[1539]|I[1540]<<8|(I[1541]<<16|I[1542]<<24);F[b+8|0]=d;F[b+9|0]=d>>>8;F[b+10|0]=d>>>16;F[b+11|0]=d>>>24;F[b+12|0]=e;F[b+13|0]=e>>>8;F[b+14|0]=e>>>16;F[b+15|0]=e>>>24;e=I[1535]|I[1536]<<8|(I[1537]<<16|I[1538]<<24);d=I[1531]|I[1532]<<8|(I[1533]<<16|I[1534]<<24);F[b|0]=d;F[b+1|0]=d>>>8;F[b+2|0]=d>>>16;F[b+3|0]=d>>>24;F[b+4|0]=e;F[b+5|0]=e>>>8;F[b+6|0]=e>>>16;F[b+7|0]=e>>>24;k=Kb(g,f+28|0,f);if(F[f+11|0]<0){bl(H[f>>2])}a=Ra(a+40|0,h,c,F[i+24|0],k);if(c){bl(c)}e=0;if(a){break d}break b}e=0;if(!Ta(a+40|0,i,h)){break b}}e=1}ha=f+32|0;return e|0}Ka();X()}function Nd(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0;b=ha-48|0;ha=b;g=H[H[a+4>>2]+48>>2];H[b+8>>2]=H[a+12>>2];c=hl(32);H[b+24>>2]=c;H[b+28>>2]=17;H[b+32>>2]=-2147483616;F[c+17|0]=0;F[c+16|0]=I[1261];f=I[1257]|I[1258]<<8|(I[1259]<<16|I[1260]<<24);e=I[1253]|I[1254]<<8|(I[1255]<<16|I[1256]<<24);F[c+8|0]=e;F[c+9|0]=e>>>8;F[c+10|0]=e>>>16;F[c+11|0]=e>>>24;F[c+12|0]=f;F[c+13|0]=f>>>8;F[c+14|0]=f>>>16;F[c+15|0]=f>>>24;f=I[1249]|I[1250]<<8|(I[1251]<<16|I[1252]<<24);e=I[1245]|I[1246]<<8|(I[1247]<<16|I[1248]<<24);F[c|0]=e;F[c+1|0]=e>>>8;F[c+2|0]=e>>>16;F[c+3|0]=e>>>24;F[c+4|0]=f;F[c+5|0]=f>>>8;F[c+6|0]=f>>>16;F[c+7|0]=f>>>24;c=Hb(g,b+8|0,b+24|0,-1);if(F[b+35|0]<0){bl(H[b+24>>2])}H[b+32>>2]=-1;H[b+36>>2]=1065353216;H[b+24>>2]=-1;H[b+28>>2]=-1;H[b+40>>2]=-1;c=-1<>>0<4294967267){break a}H[b+24>>2]=c+1;c=-2<>2]=c^-1;c=-2-c|0;H[b+32>>2]=c;H[b+40>>2]=(c|0)/2;L[b+36>>2]=O(2)/O(c|0)}g=we(H[a+12>>2],H[a+4>>2]);h=H[H[a+4>>2]+48>>2];H[b+20>>2]=H[a+12>>2];c=hl(32);H[b+8>>2]=c;H[b+12>>2]=17;H[b+16>>2]=-2147483616;F[c+17|0]=0;F[c+16|0]=I[1529];f=I[1525]|I[1526]<<8|(I[1527]<<16|I[1528]<<24);e=I[1521]|I[1522]<<8|(I[1523]<<16|I[1524]<<24);F[c+8|0]=e;F[c+9|0]=e>>>8;F[c+10|0]=e>>>16;F[c+11|0]=e>>>24;F[c+12|0]=f;F[c+13|0]=f>>>8;F[c+14|0]=f>>>16;F[c+15|0]=f>>>24;f=I[1517]|I[1518]<<8|(I[1519]<<16|I[1520]<<24);e=I[1513]|I[1514]<<8|(I[1515]<<16|I[1516]<<24);F[c|0]=e;F[c+1|0]=e>>>8;F[c+2|0]=e>>>16;F[c+3|0]=e>>>24;F[c+4|0]=f;F[c+5|0]=f>>>8;F[c+6|0]=f>>>16;F[c+7|0]=f>>>24;c=Hb(h,b+20|0,b+8|0,g);if(F[b+19|0]<0){bl(H[b+8>>2])}b:{c:{d:{switch(c|0){case 6:e=H[a+4>>2];h=H[a+12>>2];a=H[H[H[e+4>>2]+8>>2]+(h<<2)>>2];if((la[H[H[e>>2]+8>>2]](e)|0)!=1){break c}c=b+24|0;f=ha-32|0;ha=f;i=H[H[H[e+4>>2]+8>>2]+(h<<2)>>2];e:{if((la[H[H[e>>2]+8>>2]](e)|0)!=1){break e}j=la[H[H[e>>2]+52>>2]](e)|0;g=la[H[H[e>>2]+60>>2]](e,h)|0;if(!j|!g){break e}d=la[H[H[e>>2]+56>>2]](e,h)|0;if(d){e=H[e+56>>2];H[f+20>>2]=d;H[f+16>>2]=e;H[f+28>>2]=g;H[f+24>>2]=g+12;d=hl(128);H[d+4>>2]=i;e=H[c+4>>2];H[d+8>>2]=H[c>>2];H[d+12>>2]=e;e=H[c+12>>2];H[d+16>>2]=H[c+8>>2];H[d+20>>2]=e;H[d+24>>2]=H[c+16>>2];c=H[f+20>>2];H[d+28>>2]=H[f+16>>2];H[d+32>>2]=c;c=H[f+28>>2];H[d+36>>2]=H[f+24>>2];H[d+40>>2]=c;H[d+48>>2]=0;H[d+52>>2]=0;H[d>>2]=7524;c=H[f+20>>2];H[d+56>>2]=H[f+16>>2];H[d+60>>2]=c;e=H[f+28>>2];c=d- -64|0;H[c>>2]=H[f+24>>2];H[c+4>>2]=e;H[d+88>>2]=1065353216;H[d+92>>2]=-1;H[d+80>>2]=-1;H[d+84>>2]=-1;H[d+72>>2]=1;H[d+76>>2]=-1;H[d+44>>2]=7784;H[d+96>>2]=0;H[d+100>>2]=0;H[d+120>>2]=0;H[d+124>>2]=0;H[d+112>>2]=0;H[d+116>>2]=0;H[d+104>>2]=0;H[d+108>>2]=0;break e}d=H[e+56>>2];H[f+20>>2]=j;H[f+16>>2]=d;H[f+28>>2]=g;H[f+24>>2]=g+12;d=hl(128);H[d+4>>2]=i;e=H[c+4>>2];H[d+8>>2]=H[c>>2];H[d+12>>2]=e;e=H[c+12>>2];H[d+16>>2]=H[c+8>>2];H[d+20>>2]=e;H[d+24>>2]=H[c+16>>2];c=H[f+20>>2];H[d+28>>2]=H[f+16>>2];H[d+32>>2]=c;c=H[f+28>>2];H[d+36>>2]=H[f+24>>2];H[d+40>>2]=c;H[d+48>>2]=0;H[d+52>>2]=0;H[d>>2]=9148;c=H[f+20>>2];H[d+56>>2]=H[f+16>>2];H[d+60>>2]=c;e=H[f+28>>2];c=d- -64|0;H[c>>2]=H[f+24>>2];H[c+4>>2]=e;H[d+88>>2]=1065353216;H[d+92>>2]=-1;H[d+80>>2]=-1;H[d+84>>2]=-1;H[d+72>>2]=1;H[d+76>>2]=-1;H[d+44>>2]=9392;H[d+96>>2]=0;H[d+100>>2]=0;H[d+120>>2]=0;H[d+124>>2]=0;H[d+112>>2]=0;H[d+116>>2]=0;H[d+104>>2]=0;H[d+108>>2]=0}ha=f+32|0;if(!d){break c}break b;case 0:break d;default:break b}}c=H[a+4>>2];a=H[H[H[c+4>>2]+8>>2]+(H[a+12>>2]<<2)>>2];if((la[H[H[c>>2]+8>>2]](c)|0)!=1){break c}la[H[H[c>>2]+8>>2]](c)|0}d=hl(28);H[d+4>>2]=a;a=H[b+28>>2];H[d+8>>2]=H[b+24>>2];H[d+12>>2]=a;a=H[b+36>>2];H[d+16>>2]=H[b+32>>2];H[d+20>>2]=a;H[d+24>>2]=H[b+40>>2];H[d>>2]=9804}ha=b+48|0;return d|0}function wd(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0;H[a+8>>2]=e;q=a+32|0;f=H[q>>2];h=H[a+36>>2]-f>>2;a:{if(h>>>0>>0){Na(q,e-h|0);break a}if(e>>>0>=h>>>0){break a}H[a+36>>2]=f+(e<<2)}b:{if(!d){break b}g=H[b>>2];c:{if((d|0)<2){h=g;break c}f=1;h=d-1|0;l=h&1;d:{if((d|0)==2){h=g;break d}o=h&-2;d=0;h=g;while(1){i=(f<<2)+b|0;p=H[i+4>>2];k=H[i>>2];j=(k|0)<(h|0);h=j?k:h;i=(h|0)>(p|0);h=i?p:h;g=j?g:(g|0)<(k|0)?k:g;g=i?g:(g|0)<(p|0)?p:g;f=f+2|0;d=d+2|0;if((o|0)!=(d|0)){continue}break}}if(!l){break c}f=H[(f<<2)+b>>2];d=(f|0)<(h|0);h=d?f:h;g=d?g:(f|0)>(g|0)?f:g}H[a+16>>2]=g;H[a+12>>2]=h;d=(g>>31)-((h>>31)+(g>>>0>>0)|0)|0;f=g-h|0;if(!d&f>>>0>2147483646|d){break b}f=f+1|0;H[a+20>>2]=f;d=f>>>1|0;H[a+24>>2]=d;H[a+28>>2]=0-d;if(f&1){break b}H[a+24>>2]=d-1}d=(e&1073741823)!=(e|0)?-1:e<<2;h=lk(hl(d),0,d);d=H[a+56>>2];s=H[d>>2];d=H[d+4>>2]-s|0;if((d|0)>=5){v=H[a+52>>2];t=H[a+48>>2];w=e&-2;x=e&1;u=d>>2;l=u;while(1){o=l;e:{f:{l=l-1|0;if(u>>>0>l>>>0){p=N(e,l);d=H[(l<<2)+s>>2];if((d|0)==-1){break f}g=H[H[t+12>>2]+(d<<2)>>2];if((g|0)==-1){break f}j=H[v>>2];k=H[t>>2];i=H[j+(H[k+(g<<2)>>2]<<2)>>2];d=g+1|0;d=(d>>>0)%3|0?d:g-2|0;if((d|0)!=-1){f=H[k+(d<<2)>>2]}else{f=-1}g:{h:{if((g>>>0)%3|0){g=g-1|0;break h}g=g+2|0;d=-1;if((g|0)==-1){break g}}d=H[k+(g<<2)>>2]}if((i|0)>=(l|0)){break f}f=H[(f<<2)+j>>2];if((f|0)>=(l|0)){break f}d=H[j+(d<<2)>>2];if((d|0)>=(l|0)){break f}i:{if((e|0)<=0){break i}k=N(d,e);j=N(e,f);i=N(e,i);g=0;d=0;if((e|0)!=1){while(1){H[h+(g<<2)>>2]=(H[(g+k<<2)+b>>2]+H[(g+j<<2)+b>>2]|0)-H[(g+i<<2)+b>>2];f=g|1;H[h+(f<<2)>>2]=(H[(f+k<<2)+b>>2]+H[(f+j<<2)+b>>2]|0)-H[(f+i<<2)+b>>2];g=g+2|0;d=d+2|0;if((w|0)!=(d|0)){continue}break}}if(!x){break i}H[h+(g<<2)>>2]=(H[(g+k<<2)+b>>2]+H[(g+j<<2)+b>>2]|0)-H[(g+i<<2)+b>>2]}g=H[a+8>>2];if((g|0)<=0){break e}d=p<<2;p=d+c|0;k=b+d|0;i=H[q>>2];m=0;d=h;while(1){f=i;if((g|0)>0){f=H[q>>2];g=0;while(1){n=g<<2;r=H[n+d>>2];j=H[a+16>>2];j:{if((r|0)>(j|0)){H[f+n>>2]=j;break j}n=f+n|0;j=H[a+12>>2];if((j|0)>(r|0)){H[n>>2]=j;break j}H[n>>2]=r}g=g+1|0;if((g|0)>2]){continue}break}}g=m<<2;d=g+p|0;g=H[g+k>>2]-H[f+g>>2]|0;H[d>>2]=g;k:{if((g|0)>2]){g=g+H[a+20>>2]|0}else{if((g|0)<=H[a+24>>2]){break k}g=g-H[a+20>>2]|0}H[d>>2]=g}d=f;g=H[a+8>>2];m=m+1|0;if((g|0)>(m|0)){continue}break}break e}Yc();X()}g=H[a+8>>2];if((g|0)<=0){break e}d=p<<2;p=d+c|0;k=b+d|0;d=(N(o-2|0,e)<<2)+b|0;i=H[q>>2];m=0;while(1){f=i;if((g|0)>0){f=H[q>>2];g=0;while(1){n=g<<2;r=H[n+d>>2];j=H[a+16>>2];l:{if((r|0)>(j|0)){H[f+n>>2]=j;break l}n=f+n|0;j=H[a+12>>2];if((j|0)>(r|0)){H[n>>2]=j;break l}H[n>>2]=r}g=g+1|0;if((g|0)>2]){continue}break}}g=m<<2;d=g+p|0;g=H[g+k>>2]-H[f+g>>2]|0;H[d>>2]=g;m:{if((g|0)>2]){g=g+H[a+20>>2]|0}else{if((g|0)<=H[a+24>>2]){break m}g=g-H[a+20>>2]|0}H[d>>2]=g}d=f;g=H[a+8>>2];m=m+1|0;if((g|0)>(m|0)){continue}break}}if((o|0)>2){continue}break}}if((e|0)>0){lk(h,0,e<<2)}g=H[a+8>>2];if((g|0)>0){e=H[a+32>>2];m=0;d=h;while(1){f=e;if((g|0)>0){f=H[q>>2];g=0;while(1){o=g<<2;l=H[o+d>>2];i=H[a+16>>2];n:{if((l|0)>(i|0)){H[f+o>>2]=i;break n}o=f+o|0;i=H[a+12>>2];if((i|0)>(l|0)){H[o>>2]=i;break n}H[o>>2]=l}g=g+1|0;if((g|0)>2]){continue}break}}g=m<<2;d=g+c|0;g=H[b+g>>2]-H[f+g>>2]|0;H[d>>2]=g;o:{if((g|0)>2]){g=g+H[a+20>>2]|0}else{if((g|0)<=H[a+24>>2]){break o}g=g-H[a+20>>2]|0}H[d>>2]=g}d=f;g=H[a+8>>2];m=m+1|0;if((g|0)>(m|0)){continue}break}}bl(h);return 1}function Xc(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0;H[a+8>>2]=e;q=a+32|0;f=H[q>>2];h=H[a+36>>2]-f>>2;a:{if(h>>>0>>0){Na(q,e-h|0);break a}if(e>>>0>=h>>>0){break a}H[a+36>>2]=f+(e<<2)}b:{if(!d){break b}g=H[b>>2];c:{if((d|0)<2){h=g;break c}f=1;h=d-1|0;l=h&1;d:{if((d|0)==2){h=g;break d}o=h&-2;d=0;h=g;while(1){i=(f<<2)+b|0;m=H[i+4>>2];p=H[i>>2];j=(p|0)<(h|0);h=j?p:h;i=(h|0)>(m|0);h=i?m:h;g=j?g:(g|0)<(p|0)?p:g;g=i?g:(g|0)<(m|0)?m:g;f=f+2|0;d=d+2|0;if((o|0)!=(d|0)){continue}break}}if(!l){break c}f=H[(f<<2)+b>>2];d=(f|0)<(h|0);h=d?f:h;g=d?g:(f|0)>(g|0)?f:g}H[a+16>>2]=g;H[a+12>>2]=h;d=(g>>31)-((h>>31)+(g>>>0>>0)|0)|0;f=g-h|0;if(!d&f>>>0>2147483646|d){break b}f=f+1|0;H[a+20>>2]=f;d=f>>>1|0;H[a+24>>2]=d;H[a+28>>2]=0-d;if(f&1){break b}H[a+24>>2]=d-1}d=(e&1073741823)!=(e|0)?-1:e<<2;h=lk(hl(d),0,d);d=H[a+56>>2];t=H[d>>2];d=H[d+4>>2]-t|0;if((d|0)>=5){v=H[a+52>>2];s=H[a+48>>2];w=e&-2;x=e&1;u=d>>2;l=u;while(1){o=l;e:{f:{l=l-1|0;if(u>>>0>l>>>0){p=N(e,l);d=H[(l<<2)+t>>2];if((d|0)==-1|H[H[s>>2]+(d>>>3&536870908)>>2]>>>d&1){break f}m=H[H[H[s+64>>2]+12>>2]+(d<<2)>>2];if((m|0)==-1){break f}i=H[v>>2];j=H[s+28>>2];g=H[i+(H[j+(m<<2)>>2]<<2)>>2];if((g|0)>=(l|0)){break f}d=m+1|0;f=H[i+(H[j+(((d>>>0)%3|0?d:m-2|0)<<2)>>2]<<2)>>2];if((f|0)>=(l|0)){break f}d=H[i+(H[j+(m+((m>>>0)%3|0?-1:2)<<2)>>2]<<2)>>2];if((d|0)>=(l|0)){break f}g:{if((e|0)<=0){break g}j=N(d,e);i=N(e,f);f=N(e,g);g=0;k=0;if((e|0)!=1){while(1){H[h+(g<<2)>>2]=(H[(g+j<<2)+b>>2]+H[(g+i<<2)+b>>2]|0)-H[(f+g<<2)+b>>2];d=g|1;H[h+(d<<2)>>2]=(H[(d+j<<2)+b>>2]+H[(d+i<<2)+b>>2]|0)-H[(d+f<<2)+b>>2];g=g+2|0;k=k+2|0;if((w|0)!=(k|0)){continue}break}}if(!x){break g}H[h+(g<<2)>>2]=(H[(g+j<<2)+b>>2]+H[(g+i<<2)+b>>2]|0)-H[(f+g<<2)+b>>2]}g=H[a+8>>2];if((g|0)<=0){break e}d=p<<2;m=d+c|0;p=b+d|0;i=H[q>>2];k=0;d=h;while(1){f=i;if((g|0)>0){f=H[q>>2];g=0;while(1){n=g<<2;r=H[n+d>>2];j=H[a+16>>2];h:{if((r|0)>(j|0)){H[f+n>>2]=j;break h}n=f+n|0;j=H[a+12>>2];if((j|0)>(r|0)){H[n>>2]=j;break h}H[n>>2]=r}g=g+1|0;if((g|0)>2]){continue}break}}g=k<<2;d=g+m|0;g=H[g+p>>2]-H[f+g>>2]|0;H[d>>2]=g;i:{if((g|0)>2]){g=g+H[a+20>>2]|0}else{if((g|0)<=H[a+24>>2]){break i}g=g-H[a+20>>2]|0}H[d>>2]=g}d=f;g=H[a+8>>2];k=k+1|0;if((g|0)>(k|0)){continue}break}break e}Yc();X()}g=H[a+8>>2];if((g|0)<=0){break e}d=p<<2;m=d+c|0;p=b+d|0;d=(N(o-2|0,e)<<2)+b|0;i=H[q>>2];k=0;while(1){f=i;if((g|0)>0){f=H[q>>2];g=0;while(1){n=g<<2;r=H[n+d>>2];j=H[a+16>>2];j:{if((r|0)>(j|0)){H[f+n>>2]=j;break j}n=f+n|0;j=H[a+12>>2];if((j|0)>(r|0)){H[n>>2]=j;break j}H[n>>2]=r}g=g+1|0;if((g|0)>2]){continue}break}}g=k<<2;d=g+m|0;g=H[g+p>>2]-H[f+g>>2]|0;H[d>>2]=g;k:{if((g|0)>2]){g=g+H[a+20>>2]|0}else{if((g|0)<=H[a+24>>2]){break k}g=g-H[a+20>>2]|0}H[d>>2]=g}d=f;g=H[a+8>>2];k=k+1|0;if((g|0)>(k|0)){continue}break}}if((o|0)>2){continue}break}}if((e|0)>0){lk(h,0,e<<2)}g=H[a+8>>2];if((g|0)>0){e=H[a+32>>2];k=0;d=h;while(1){f=e;if((g|0)>0){f=H[q>>2];g=0;while(1){o=g<<2;l=H[o+d>>2];i=H[a+16>>2];l:{if((l|0)>(i|0)){H[f+o>>2]=i;break l}o=f+o|0;i=H[a+12>>2];if((i|0)>(l|0)){H[o>>2]=i;break l}H[o>>2]=l}g=g+1|0;if((g|0)>2]){continue}break}}g=k<<2;d=g+c|0;g=H[b+g>>2]-H[f+g>>2]|0;H[d>>2]=g;m:{if((g|0)>2]){g=g+H[a+20>>2]|0}else{if((g|0)<=H[a+24>>2]){break m}g=g-H[a+20>>2]|0}H[d>>2]=g}d=f;g=H[a+8>>2];k=k+1|0;if((g|0)>(k|0)){continue}break}}bl(h);return 1}function Pa(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=O(0),f=0,g=0,h=0,i=0,j=0,k=0,l=O(0),m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0;if(H[c>>2]==H[c+4>>2]){h=H[d+80>>2];u=ha-16|0;ha=u;q=H[a+4>>2];j=H[d+48>>2];d=H[H[d>>2]>>2];i=F[b+24|0];c=u+8|0;H[c>>2]=1065353216;L[c>>2]=O(-1<>2];s=hl((i|0)!=(i&1073741823)?-1:i<<2);a:{if(!h|(i|0)<=0){break a}t=d+j|0;l=L[c>>2];k=H[a+8>>2];w=H[b>>2];c=H[b+48>>2];m=H[b+44>>2];v=H[b+40>>2];if(!I[b+84|0]){r=H[b+68>>2];q=i&-2;j=i&1;a=0;while(1){d=H[w>>2];b=Sl(v,m,H[r+(o<<2)>>2],0)+c|0;p=jk(s,d+b|0,v);b=0;n=0;if((i|0)!=1){while(1){d=t+(a<<2)|0;g=b<<2;e=O(T(O(O(l*O(L[g+p>>2]-L[k+g>>2]))+O(.5))));b:{if(O(P(e))>2]=f;f=g|4;e=O(T(O(O(l*O(L[f+p>>2]-L[f+k>>2]))+O(.5))));c:{if(O(P(e))>2]=f;b=b+2|0;a=a+2|0;n=n+2|0;if((q|0)!=(n|0)){continue}break}}if(j){d=t+(a<<2)|0;b=b<<2;e=O(T(O(O(l*O(L[b+p>>2]-L[b+k>>2]))+O(.5))));d:{if(O(P(e))>2]=b;a=a+1|0}o=o+1|0;if((h|0)!=(o|0)){continue}break}break a}r=i&-2;q=i&1;a=0;while(1){d=H[w>>2];b=Sl(v,m,p,f)+c|0;o=jk(s,d+b|0,v);b=0;n=0;if((i|0)!=1){while(1){d=t+(a<<2)|0;g=b<<2;e=O(T(O(O(l*O(L[g+o>>2]-L[k+g>>2]))+O(.5))));e:{if(O(P(e))>2]=j;j=g|4;e=O(T(O(O(l*O(L[j+o>>2]-L[k+j>>2]))+O(.5))));f:{if(O(P(e))>2]=g;b=b+2|0;a=a+2|0;n=n+2|0;if((r|0)!=(n|0)){continue}break}}if(q){d=t+(a<<2)|0;b=b<<2;e=O(T(O(O(l*O(L[b+o>>2]-L[b+k>>2]))+O(.5))));g:{if(O(P(e))>2]=b;a=a+1|0}b=p+1|0;f=b?f:f+1|0;p=b;if((h|0)!=(b|0)|f){continue}break}}bl(s);ha=u+16|0;return 1}u=ha-16|0;ha=u;f=H[a+4>>2];j=H[d+48>>2];h=H[H[d>>2]>>2];m=F[b+24|0];d=u+8|0;H[d>>2]=1065353216;L[d>>2]=O(-1<>2];t=hl((m|0)!=(m&1073741823)?-1:m<<2);f=H[c+4>>2];s=H[c>>2];h:{if((f|0)==(s|0)|(m|0)<=0){break h}n=j+h|0;c=f-s>>2;w=c>>>0>1?c:1;l=L[d>>2];i=H[a+8>>2];x=H[b>>2];d=H[b+48>>2];v=H[b+44>>2];p=H[b+40>>2];if(I[b+84|0]){q=m&-2;j=m&1;a=0;c=0;while(1){f=H[x>>2];b=Sl(p,v,H[s+(c<<2)>>2],0)+d|0;g=jk(t,f+b|0,p);b=0;k=0;if((m|0)!=1){while(1){f=n+(a<<2)|0;r=b<<2;e=O(T(O(O(l*O(L[r+g>>2]-L[i+r>>2]))+O(.5))));i:{if(O(P(e))>2]=h;h=r|4;e=O(T(O(O(l*O(L[h+g>>2]-L[i+h>>2]))+O(.5))));j:{if(O(P(e))>2]=h;b=b+2|0;a=a+2|0;k=k+2|0;if((q|0)!=(k|0)){continue}break}}if(j){f=n+(a<<2)|0;b=b<<2;e=O(T(O(O(l*O(L[b+g>>2]-L[b+i>>2]))+O(.5))));k:{if(O(P(e))>2]=b;a=a+1|0}c=c+1|0;if((w|0)!=(c|0)){continue}break}break h}r=H[b+68>>2];q=m&-2;j=m&1;a=0;c=0;while(1){f=H[x>>2];b=Sl(p,v,H[r+(H[s+(c<<2)>>2]<<2)>>2],0)+d|0;o=jk(t,f+b|0,p);b=0;k=0;if((m|0)!=1){while(1){f=n+(a<<2)|0;g=b<<2;e=O(T(O(O(l*O(L[g+o>>2]-L[i+g>>2]))+O(.5))));l:{if(O(P(e))>2]=h;h=g|4;e=O(T(O(O(l*O(L[h+o>>2]-L[i+h>>2]))+O(.5))));m:{if(O(P(e))>2]=g;b=b+2|0;a=a+2|0;k=k+2|0;if((q|0)!=(k|0)){continue}break}}if(j){f=n+(a<<2)|0;b=b<<2;e=O(T(O(O(l*O(L[b+o>>2]-L[b+i>>2]))+O(.5))));n:{if(O(P(e))>2]=b;a=a+1|0}c=c+1|0;if((w|0)!=(c|0)){continue}break}}bl(t);ha=u+16|0;return 1}function jh(a,b){var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0;h=ha-32|0;ha=h;c=H[a+16>>2];H[a+20>>2]=c;a:{b:{c:{d:{e:{f:{g:{if((c|0)!=H[a+24>>2]){H[c>>2]=b;b=c+4|0;H[a+20>>2]=b;d=c;break g}d=hl(4);H[d>>2]=b;b=d+4|0;H[a+24>>2]=b;H[a+20>>2]=b;H[a+16>>2]=d;if(c){break f}}c=H[a+8>>2];c=H[c+100>>2]-H[c+96>>2]|0;break e}bl(c);b=H[a+20>>2];d=H[a+16>>2];if((b|0)==(d|0)){break d}c=H[a+8>>2];c=H[c+100>>2]-H[c+96>>2]|0}if((c|0)>0){s=a+120|0;k=a+200|0;c=(c|0)/12|0;t=(c|0)>1?c:1;while(1){h:{i:{d=b-4|0;b=H[d>>2];if((b|0)==-1){break i}c=(b>>>0)/3|0;if(H[H[a+28>>2]+(c>>>3&268435452)>>2]>>>c&1){break i}m=0;while(1){H[a+164>>2]=H[a+164>>2]+1;e=b;g=(b>>>0)/3|0;f=(b|0)==-1;n=f?-1:g;b=H[a+28>>2]+(n>>>3&536870908)|0;H[b>>2]=H[b>>2]|1<>2];j:{if((b|0)!=H[a+80>>2]){H[b>>2]=e;H[a+76>>2]=b+4;break j}j=H[a+72>>2];i=b-j|0;c=i>>2;d=c+1|0;if(d>>>0>1073741823){break c}b=i>>1;d=i>>>0<2147483644?b>>>0>d>>>0?b:d:1073741823;if(d){if(d>>>0>1073741823){break a}b=hl(d<<2)}else{b=0}c=b+(c<<2)|0;H[c>>2]=e;if((i|0)>0){jk(b,j,i)}H[a+80>>2]=b+(d<<2);H[a+76>>2]=c+4;H[a+72>>2]=b;if(!j){break j}bl(j)}H[a+320>>2]=e;b=-1;l=H[a+12>>2];b=(e|0)!=-1?H[H[l>>2]+(e<<2)>>2]:b;i=b<<2;q=H[i+H[a+152>>2]>>2];k:{l:{d=H[a+84>>2]+(b>>>3&536870908)|0;c=H[d>>2];b=1<>2]=b|c;if((q|0)==-1){break l}}m:{if(f){break m}b=-1;c=e+1|0;f=(c>>>0)%3|0?c:e-2|0;if((f|0)!=-1){b=H[H[l+12>>2]+(f<<2)>>2]}j=(b>>>0)/3|0;o=e-N(g,3)|0;n:{o:{if(o){d=e-1|0;break o}d=e+2|0;c=-1;if((d|0)==-1){break n}}c=H[H[l+12>>2]+(d<<2)>>2]}p=(c|0)==-1;r=p?-1:(c>>>0)/3|0;p:{if((f|0)==-1){break p}g=H[l+12>>2];d=H[g+(f<<2)>>2];if((d|0)==-1){break p}f=H[a+28>>2];d=(d>>>0)/3|0;if(H[f+(d>>>3&268435452)>>2]>>>d&1){break p}q:{r:{if(o){d=e-1|0;break r}d=e+2|0;if((d|0)==-1){break q}}d=H[(d<<2)+g>>2];if((d|0)==-1){break q}d=(d>>>0)/3|0;if(H[f+(d>>>3&268435452)>>2]>>>d&1){break q}kh(k,1);H[a+168>>2]=H[a+168>>2]+1;s:{if((q|0)==-1){break s}d=H[H[a+152>>2]+i>>2];if(H[H[a+140>>2]+(d>>>3&536870908)>>2]>>>d&1){break s}Xg(a,e,0)}e=H[a+164>>2];H[h+4>>2]=n;d=h+4|0;H[h+16>>2]=d;bh(h+24|0,s,d,h+16|0);H[H[h+24>>2]+12>>2]=e;d=H[a+20>>2];H[d-4>>2]=c;if((d|0)!=H[a+24>>2]){H[d>>2]=b;H[a+20>>2]=d+4;break h}f=H[a+16>>2];g=d-f|0;d=g>>2;e=d+1|0;if(e>>>0>1073741823){break b}c=g>>1;e=g>>>0<2147483644?c>>>0>e>>>0?c:e:1073741823;if(e){if(e>>>0>1073741823){break a}c=hl(e<<2)}else{c=0}d=c+(d<<2)|0;H[d>>2]=b;if((g|0)>0){jk(c,f,g)}H[a+24>>2]=c+(e<<2);H[a+20>>2]=d+4;H[a+16>>2]=c;if(!f){break h}bl(f);break h}if(!p){ch(a,H[a+164>>2],0,r)}kh(k,3);break k}b=(b|0)==-1;if(!b){ch(a,H[a+164>>2],1,b?-1:j)}t:{u:{if(o){b=e-1|0;break u}b=e+2|0;if((b|0)==-1){break t}}b=H[H[H[a+12>>2]+12>>2]+(b<<2)>>2];if((b|0)==-1){break t}b=(b>>>0)/3|0;if(H[H[a+28>>2]+(b>>>3&268435452)>>2]>>>b&1){break t}kh(k,5);b=c;break k}if(p){break m}ch(a,H[a+164>>2],0,r)}kh(k,7);H[a+20>>2]=H[a+20>>2]-4;break h}kh(k,0);b=-1;if((e|0)==-1){break k}c=e+1|0;c=(c>>>0)%3|0?c:e-2|0;if((c|0)==-1){break k}b=H[H[H[a+12>>2]+12>>2]+(c<<2)>>2]}m=m+1|0;if((t|0)!=(m|0)){continue}break}break h}H[a+20>>2]=d}b=H[a+20>>2];if((b|0)!=H[a+16>>2]){continue}break}break d}f=H[a+28>>2];while(1){c=b-4|0;e=H[c>>2];v:{if((e|0)!=-1){e=(e>>>0)/3|0;if(!(H[f+(e>>>3&268435452)>>2]>>>e&1)){break v}}H[a+20>>2]=c;b=c}if((b|0)!=(d|0)){continue}break}}ha=h+32|0;return 1}Ka();X()}Ka();X()}_a();X()}function Ie(a,b,c){var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0;l=ha-16|0;ha=l;a:{if(!H[a+8>>2]){break a}e=H[a>>2];H[a>>2]=a+4;H[H[a+4>>2]+8>>2]=0;H[a+4>>2]=0;H[a+8>>2]=0;f=H[e+4>>2];e=f?f:e;if(!e){Nc(a,e);break a}h=H[e+8>>2];b:{if(!h){break b}f=H[h>>2];if((f|0)==(e|0)){H[h>>2]=0;d=h;f=H[d+4>>2];if(!f){break b}while(1){d=f;f=H[d>>2];if(f){continue}f=H[d+4>>2];if(f){continue}break}break b}H[h+4>>2]=0;d=h;if(!f){break b}while(1){d=f;f=H[d>>2];if(f){continue}f=H[d+4>>2];if(f){continue}break}}c:{if((b|0)==(c|0)){h=e;break c}f=b;while(1){h=d;H[l+12>>2]=e+28;H[l+8>>2]=e+16;b=f+16|0;d=H[l+8>>2];d:{if((b|0)==(d|0)){break d}i=I[b+11|0];g=i<<24>>24;if(F[d+11|0]>=0){if((g|0)>=0){g=H[b+4>>2];H[d>>2]=H[b>>2];H[d+4>>2]=g;H[d+8>>2]=H[b+8>>2];break d}ql(d,H[b>>2],H[b+4>>2]);break d}j=d;d=(g|0)<0;pl(j,d?H[b>>2]:b,d?H[b+4>>2]:i)}d=H[l+12>>2];g=b+12|0;if((d|0)!=(g|0)){e:{k=I[g+11|0];i=k<<24>>24;if(F[d+11|0]>=0){if((i|0)>=0){b=H[g+4>>2];H[d>>2]=H[g>>2];H[d+4>>2]=b;H[d+8>>2]=H[g+8>>2];break e}ql(d,H[b+12>>2],H[b+16>>2]);break e}j=d;d=(i|0)<0;pl(j,d?H[b+12>>2]:g,d?H[b+16>>2]:k)}}g=H[a+4>>2];f:{if(!g){b=a+4|0;d=b;break f}d=I[e+27|0];b=d<<24>>24<0;i=b?H[e+20>>2]:d;k=b?H[e+16>>2]:e+16|0;while(1){b=g;g=I[b+27|0];d=g<<24>>24<0;g:{h:{i:{g=d?H[b+20>>2]:g;j=g>>>0>>0?g:i;if(j){m=b+16|0;d=ok(k,d?H[m>>2]:m,j);if(d){break i}}if(g>>>0>i>>>0){break h}break g}if((d|0)>=0){break g}}d=b;g=H[b>>2];if(g){continue}break f}g=H[b+4>>2];if(g){continue}break}d=b+4|0}H[e+8>>2]=b;H[e>>2]=0;H[e+4>>2]=0;H[d>>2]=e;b=e;e=H[H[a>>2]>>2];if(e){H[a>>2]=e;b=H[d>>2]}We(H[a+4>>2],b);H[a+8>>2]=H[a+8>>2]+1;d=0;j:{if(!h){break j}e=H[h+8>>2];if(!e){break j}b=H[e>>2];if((h|0)==(b|0)){H[e>>2]=0;d=e;b=H[d+4>>2];if(!b){break j}while(1){d=b;b=H[b>>2];if(b){continue}b=H[d+4>>2];if(b){continue}break}break j}H[e+4>>2]=0;d=e;if(!b){break j}while(1){d=b;b=H[b>>2];if(b){continue}b=H[d+4>>2];if(b){continue}break}}e=H[f+4>>2];k:{if(e){while(1){b=e;e=H[b>>2];if(e){continue}break k}}while(1){b=H[f+8>>2];e=H[b>>2]!=(f|0);f=b;if(e){continue}break}}if(!h){break c}f=b;e=h;if((b|0)!=(c|0)){continue}break}}Nc(a,h);if(!d){break a}while(1){e=H[d+8>>2];if(e){d=e;continue}break}Nc(a,d)}if((b|0)!=(c|0)){while(1){f=hl(40);g=f+16|0;l:{if(F[b+27|0]>=0){d=H[b+20>>2];H[g>>2]=H[b+16>>2];H[g+4>>2]=d;H[g+8>>2]=H[b+24>>2];break l}nl(g,H[b+16>>2],H[b+20>>2])}d=a+4|0;e=f+28|0;m:{if(F[b+39|0]>=0){h=H[b+32>>2];H[e>>2]=H[b+28>>2];H[e+4>>2]=h;H[e+8>>2]=H[b+36>>2];break m}nl(e,H[b+28>>2],H[b+32>>2])}e=d;h=H[d>>2];n:{if(!h){break n}e=I[f+27|0];d=e<<24>>24<0;i=d?H[f+20>>2]:e;g=d?H[f+16>>2]:g;while(1){d=h;h=I[d+27|0];e=h<<24>>24<0;o:{p:{q:{h=e?H[d+20>>2]:h;k=h>>>0>>0?h:i;if(k){j=d+16|0;e=ok(g,e?H[j>>2]:j,k);if(e){break q}}if(h>>>0>i>>>0){break p}break o}if((e|0)>=0){break o}}e=d;h=H[d>>2];if(h){continue}break n}h=H[d+4>>2];if(h){continue}break}e=d+4|0}H[f+8>>2]=d;H[f>>2]=0;H[f+4>>2]=0;H[e>>2]=f;d=f;f=H[H[a>>2]>>2];if(f){H[a>>2]=f;d=H[e>>2]}We(H[a+4>>2],d);H[a+8>>2]=H[a+8>>2]+1;f=H[b+4>>2];r:{if(f){while(1){e=f;f=H[e>>2];if(f){continue}break r}}while(1){e=H[b+8>>2];d=H[e>>2]!=(b|0);b=e;if(d){continue}break}}b=e;if((c|0)!=(b|0)){continue}break}}ha=l+16|0}function ck(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0;a:{if((b|0)<0){break a}c=H[a+12>>2];d=H[a+8>>2];if(c-d>>2>>>0<=b>>>0){break a}e=d+(b<<2)|0;d=H[e>>2];i=H[d+60>>2];g=H[d+56>>2];d=e+4|0;b:{if((d|0)!=(c|0)){while(1){h=H[d>>2];H[d>>2]=0;f=H[e>>2];H[e>>2]=h;if(f){Lb(f)}e=e+4|0;d=d+4|0;if((d|0)!=(c|0)){continue}break}c=H[a+12>>2];if((e|0)==(c|0)){break b}}while(1){c=c-4|0;d=H[c>>2];H[c>>2]=0;if(d){Lb(d)}if((c|0)!=(e|0)){continue}break}}H[a+12>>2]=e;f=H[a+4>>2];c:{if(!f|(i|0)<0){break c}c=H[f+24>>2];d=H[f+28>>2];if((c|0)==(d|0)){break c}while(1){if((i|0)==H[H[c>>2]+24>>2]){e=c+4|0;i=H[f+28>>2];d:{if((e|0)!=(i|0)){while(1){h=H[e>>2];H[e>>2]=0;d=H[c>>2];H[c>>2]=h;if(d){Ii(d+12|0,H[d+16>>2]);Ji(d,H[d+4>>2]);bl(d)}c=c+4|0;e=e+4|0;if((i|0)!=(e|0)){continue}break}e=H[f+28>>2];if((e|0)==(c|0)){break d}}while(1){e=e-4|0;d=H[e>>2];H[e>>2]=0;if(d){Ii(d+12|0,H[d+16>>2]);Ji(d,H[d+4>>2]);bl(d)}if((c|0)!=(e|0)){continue}break}}H[f+28>>2]=c;break c}c=c+4|0;if((d|0)!=(c|0)){continue}break}}e:{if((g|0)>4){break e}f:{e=N(g,12)+a|0;c=H[e+20>>2];d=H[e+24>>2];if((c|0)==(d|0)){break f}while(1){if(H[c>>2]==(b|0)){break f}c=c+4|0;if((d|0)!=(c|0)){continue}break}break e}if((c|0)==(d|0)){break e}f=c+4|0;i=d-f|0;if((d|0)!=(f|0)){kk(c,f,i)}H[e+24>>2]=c+i}c=H[a+24>>2];e=H[a+20>>2];g:{if((c|0)==(e|0)){break g}d=c-e|0;c=d>>2;f=c>>>0>1?c:1;i=f&1;c=0;if(d>>>0>=8){f=f&-2;d=0;while(1){g=c<<2;h=g+e|0;j=H[h>>2];if((j|0)>(b|0)){H[h>>2]=j-1}g=e+(g|4)|0;h=H[g>>2];if((h|0)>(b|0)){H[g>>2]=h-1}c=c+2|0;d=d+2|0;if((f|0)!=(d|0)){continue}break}}if(!i){break g}c=e+(c<<2)|0;d=H[c>>2];if((d|0)<=(b|0)){break g}H[c>>2]=d-1}c=H[a+36>>2];e=H[a+32>>2];h:{if((c|0)==(e|0)){break h}d=c-e|0;c=d>>2;f=c>>>0>1?c:1;i=f&1;c=0;if(d>>>0>=8){f=f&-2;d=0;while(1){g=c<<2;h=g+e|0;j=H[h>>2];if((j|0)>(b|0)){H[h>>2]=j-1}g=e+(g|4)|0;h=H[g>>2];if((h|0)>(b|0)){H[g>>2]=h-1}c=c+2|0;d=d+2|0;if((f|0)!=(d|0)){continue}break}}if(!i){break h}c=e+(c<<2)|0;d=H[c>>2];if((d|0)<=(b|0)){break h}H[c>>2]=d-1}c=H[a+48>>2];e=H[a+44>>2];i:{if((c|0)==(e|0)){break i}d=c-e|0;c=d>>2;f=c>>>0>1?c:1;i=f&1;c=0;if(d>>>0>=8){f=f&-2;d=0;while(1){g=c<<2;h=g+e|0;j=H[h>>2];if((j|0)>(b|0)){H[h>>2]=j-1}g=e+(g|4)|0;h=H[g>>2];if((h|0)>(b|0)){H[g>>2]=h-1}c=c+2|0;d=d+2|0;if((f|0)!=(d|0)){continue}break}}if(!i){break i}c=e+(c<<2)|0;d=H[c>>2];if((d|0)<=(b|0)){break i}H[c>>2]=d-1}c=H[a+60>>2];e=H[a+56>>2];j:{if((c|0)==(e|0)){break j}d=c-e|0;c=d>>2;f=c>>>0>1?c:1;i=f&1;c=0;if(d>>>0>=8){f=f&-2;d=0;while(1){g=c<<2;h=g+e|0;j=H[h>>2];if((j|0)>(b|0)){H[h>>2]=j-1}g=e+(g|4)|0;h=H[g>>2];if((h|0)>(b|0)){H[g>>2]=h-1}c=c+2|0;d=d+2|0;if((f|0)!=(d|0)){continue}break}}if(!i){break j}c=e+(c<<2)|0;d=H[c>>2];if((d|0)<=(b|0)){break j}H[c>>2]=d-1}c=H[a+72>>2];a=H[a+68>>2];if((c|0)==(a|0)){break a}d=c-a|0;c=d>>2;e=c>>>0>1?c:1;f=e&1;c=0;if(d>>>0>=8){e=e&-2;d=0;while(1){i=c<<2;g=i+a|0;h=H[g>>2];if((h|0)>(b|0)){H[g>>2]=h-1}i=a+(i|4)|0;g=H[i>>2];if((g|0)>(b|0)){H[i>>2]=g-1}c=c+2|0;d=d+2|0;if((e|0)!=(d|0)){continue}break}}if(!f){break a}d=b;a=a+(c<<2)|0;b=H[a>>2];if((d|0)>=(b|0)){break a}H[a>>2]=b-1}}function Mk(a,b,c,d,e,f,g,h,i){var j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0;j=ha-112|0;ha=j;k=i&2147483647;l=e&2147483647;m=l;a:{b:{p=!(b|c);if(!(d|l?l-2147418112>>>0<2147549184:p)){n=k-2147418112|0;if(!h&(n|0)==-2147418112?f|g:(n|0)==-2147418112&(h|0)!=0|n>>>0>2147549184){break b}}if(!(!d&(m|0)==2147418112?p:m>>>0<2147418112)){h=d;i=e|32768;f=b;g=c;break a}if(!(!h&(k|0)==2147418112?!(f|g):k>>>0<2147418112)){i=i|32768;break a}if(!(b|d|(m^2147418112|c))){m=d;d=!(b^f|d^h|(c^g|e^i^-2147483648));h=d?0:m;i=d?2147450880:e;f=d?0:b;g=d?0:c;break a}if(!(f|h|(k^2147418112|g))){break a}if(!(b|d|(c|m))){if(f|h|(g|k)){break a}f=b&f;g=c&g;h=d&h;i=e&i;break a}if(f|h|(g|k)){break b}f=b;g=c;h=d;i=e;break a}l=(k|0)==(m|0);k=l&(d|0)==(h|0)?(c|0)==(g|0)&b>>>0>>0|c>>>0>>0:l&d>>>0>>0|k>>>0>m>>>0;o=k?f:b;l=k?g:c;m=k?i:e;r=m;q=k?h:d;n=m&65535;e=k?e:i;s=e;h=k?d:h;m=e>>>16&32767;p=r>>>16&32767;if(!p){d=!(n|q);e=d<<6;i=Q(d?o:q)+32|0;d=Q(d?l:n);d=e+((d|0)==32?i:d)|0;Nk(j+96|0,o,l,q,n,d-15|0);q=H[j+104>>2];n=H[j+108>>2];o=H[j+96>>2];p=16-d|0;l=H[j+100>>2]}f=k?b:f;g=k?c:g;i=s&65535;if(!m){b=!(h|i);c=b<<6;d=Q(b?f:h)+32|0;b=Q(b?g:i);b=c+((b|0)==32?d:b)|0;Nk(j+80|0,f,g,h,i,b-15|0);m=16-b|0;h=H[j+88>>2];i=H[j+92>>2];g=H[j+84>>2];f=H[j+80>>2]}b=h;k=i<<3|b>>>29;d=b<<3|g>>>29;e=k|524288;b=q;c=n<<3|b>>>29;h=b<<3|l>>>29;i=c;b=f;c=g<<3|b>>>29;b=b<<3;g=r^s;c:{if((m|0)==(p|0)){break c}f=p-m|0;if(f>>>0>127){d=0;e=0;b=1;c=0;break c}Nk(j- -64|0,b,c,d,e,128-f|0);Uk(j+48|0,b,c,d,e,f);b=H[j+48>>2]|(H[j+64>>2]|H[j+72>>2]|(H[j+68>>2]|H[j+76>>2]))!=0;c=H[j+52>>2];d=H[j+56>>2];e=H[j+60>>2]}m=h;q=i|524288;f=o;k=l<<3|f>>>29;n=f<<3;d:{if((g|0)<0){f=0;g=0;h=0;i=0;if(!(b^n|d^m|(c^k|e^q))){break a}o=n-b|0;l=k-((b>>>0>n>>>0)+c|0)|0;f=m-d|0;b=(c|0)==(k|0)&b>>>0>n>>>0|c>>>0>k>>>0;i=(q-((d>>>0>m>>>0)+e|0)|0)-(f>>>0>>0)|0;h=f-b|0;if(i>>>0>524287){break d}b=!(h|i);c=b<<6;d=Q(b?o:h)+32|0;b=Q(b?l:i);b=c+((b|0)==32?d:b)|0;b=b-12|0;Nk(j+32|0,o,l,h,i,b);p=p-b|0;h=H[j+40>>2];i=H[j+44>>2];o=H[j+32>>2];l=H[j+36>>2];break d}k=c+k|0;f=b+n|0;k=f>>>0>>0?k+1|0:k;o=f;l=k;f=(c|0)==(k|0)&b>>>0>f>>>0|c>>>0>k>>>0;c=e+q|0;b=d+m|0;c=b>>>0>>0?c+1|0:c;d=b;b=f+b|0;h=b;i=b>>>0>>0?c+1|0:c;if(!(i&1048576)){break d}o=o&1|((l&1)<<31|o>>>1);c=h;l=c<<31|l>>>1;p=p+1|0;h=(i&1)<<31|c>>>1;i=i>>>1|0}d=0;e=r&-2147483648;if((p|0)>=32767){h=d;i=e|2147418112;f=0;g=0;break a}m=0;e:{if((p|0)>0){m=p;break e}Nk(j+16|0,o,l,h,i,p+127|0);Uk(j,o,l,h,i,1-p|0);o=H[j>>2]|(H[j+16>>2]|H[j+24>>2]|(H[j+20>>2]|H[j+28>>2]))!=0;l=H[j+4>>2];h=H[j+8>>2];i=H[j+12>>2]}c=h<<29;b=l>>>3|0;n=(l&7)<<29|o>>>3;l=o&7;g=l>>>0>4;f=n+g|0;b=b|c;k=f>>>0>>0?b+1|0:b;c=f;g=k;b=(b|0)==(k|0)&c>>>0>>0|b>>>0>k>>>0;c=d|((i&7)<<29|h>>>3);b=b+c|0;i=e|(i>>>3&65535|m<<16);i=b>>>0>>0?i+1|0:i;h=b;f:{if((l|0)==4){c=g+0|0;e=f&1;b=f+e|0;c=b>>>0>>0?c+1|0:c;f=b;g=c;c=(d|0)==(c|0)&b>>>0>>0|c>>>0>>0;b=c+h|0;i=b>>>0>>0?i+1|0:i;h=b;break f}if(!l){break a}}}H[a>>2]=f;H[a+4>>2]=g;H[a+8>>2]=h;H[a+12>>2]=i;ha=j+112|0}function bl(a){a=a|0;var b=0,c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0;a:{if(!a){break a}d=a-8|0;b=H[a-4>>2];a=b&-8;f=d+a|0;b:{if(b&1){break b}if(!(b&3)){break a}b=H[d>>2];d=d-b|0;if(d>>>0>>0<=255){e=H[d+8>>2];b=b>>>3|0;c=H[d+12>>2];if((c|0)==(e|0)){i=19540,j=H[4885]&Wl(b),H[i>>2]=j;break b}H[e+12>>2]=c;H[c+8>>2]=e;break b}h=H[d+24>>2];b=H[d+12>>2];c:{if((d|0)!=(b|0)){c=H[d+8>>2];H[c+12>>2]=b;H[b+8>>2]=c;break c}d:{e=d+20|0;c=H[e>>2];if(c){break d}e=d+16|0;c=H[e>>2];if(c){break d}b=0;break c}while(1){g=e;b=c;e=b+20|0;c=H[e>>2];if(c){continue}e=b+16|0;c=H[b+16>>2];if(c){continue}break}H[g>>2]=0}if(!h){break b}e=H[d+28>>2];c=(e<<2)+19844|0;e:{if(H[c>>2]==(d|0)){H[c>>2]=b;if(b){break e}i=19544,j=H[4886]&Wl(e),H[i>>2]=j;break b}H[h+(H[h+16>>2]==(d|0)?16:20)>>2]=b;if(!b){break b}}H[b+24>>2]=h;c=H[d+16>>2];if(c){H[b+16>>2]=c;H[c+24>>2]=b}c=H[d+20>>2];if(!c){break b}H[b+20>>2]=c;H[c+24>>2]=b;break b}b=H[f+4>>2];if((b&3)!=3){break b}H[4887]=a;H[f+4>>2]=b&-2;H[d+4>>2]=a|1;H[a+d>>2]=a;return}if(d>>>0>=f>>>0){break a}b=H[f+4>>2];if(!(b&1)){break a}f:{if(!(b&2)){if(H[4891]==(f|0)){H[4891]=d;a=H[4888]+a|0;H[4888]=a;H[d+4>>2]=a|1;if(H[4890]!=(d|0)){break a}H[4887]=0;H[4890]=0;return}if(H[4890]==(f|0)){H[4890]=d;a=H[4887]+a|0;H[4887]=a;H[d+4>>2]=a|1;H[a+d>>2]=a;return}a=(b&-8)+a|0;g:{if(b>>>0<=255){e=H[f+8>>2];b=b>>>3|0;c=H[f+12>>2];if((c|0)==(e|0)){i=19540,j=H[4885]&Wl(b),H[i>>2]=j;break g}H[e+12>>2]=c;H[c+8>>2]=e;break g}h=H[f+24>>2];b=H[f+12>>2];h:{if((f|0)!=(b|0)){c=H[f+8>>2];H[c+12>>2]=b;H[b+8>>2]=c;break h}i:{e=f+20|0;c=H[e>>2];if(c){break i}e=f+16|0;c=H[e>>2];if(c){break i}b=0;break h}while(1){g=e;b=c;e=b+20|0;c=H[e>>2];if(c){continue}e=b+16|0;c=H[b+16>>2];if(c){continue}break}H[g>>2]=0}if(!h){break g}e=H[f+28>>2];c=(e<<2)+19844|0;j:{if(H[c>>2]==(f|0)){H[c>>2]=b;if(b){break j}i=19544,j=H[4886]&Wl(e),H[i>>2]=j;break g}H[h+(H[h+16>>2]==(f|0)?16:20)>>2]=b;if(!b){break g}}H[b+24>>2]=h;c=H[f+16>>2];if(c){H[b+16>>2]=c;H[c+24>>2]=b}c=H[f+20>>2];if(!c){break g}H[b+20>>2]=c;H[c+24>>2]=b}H[d+4>>2]=a|1;H[a+d>>2]=a;if(H[4890]!=(d|0)){break f}H[4887]=a;return}H[f+4>>2]=b&-2;H[d+4>>2]=a|1;H[a+d>>2]=a}if(a>>>0<=255){b=(a&-8)+19580|0;c=H[4885];a=1<<(a>>>3);k:{if(!(c&a)){H[4885]=a|c;a=b;break k}a=H[b+8>>2]}H[b+8>>2]=d;H[a+12>>2]=d;H[d+12>>2]=b;H[d+8>>2]=a;return}e=31;if(a>>>0<=16777215){b=a>>>8|0;g=b+1048320>>>16&8;b=b<>>16&4;b=b<>>16&2;b=(b<>>15|0)-(c|(e|g))|0;e=(b<<1|a>>>b+21&1)+28|0}H[d+28>>2]=e;H[d+16>>2]=0;H[d+20>>2]=0;g=(e<<2)+19844|0;l:{m:{c=H[4886];b=1<>2]=d;H[d+24>>2]=g;break n}e=a<<((e|0)==31?0:25-(e>>>1|0)|0);b=H[g>>2];while(1){c=b;if((H[b+4>>2]&-8)==(a|0)){break m}b=e>>>29|0;e=e<<1;g=c+(b&4)|0;b=H[g+16>>2];if(b){continue}break}H[g+16>>2]=d;H[d+24>>2]=c}H[d+12>>2]=d;H[d+8>>2]=d;break l}a=H[c+8>>2];H[a+12>>2]=d;H[c+8>>2]=d;H[d+24>>2]=0;H[d+12>>2]=c;H[d+8>>2]=a}a=H[4893]-1|0;H[4893]=a?a:-1}}function pe(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0;k=ha-48|0;ha=k;d=H[a+8>>2];if(d-31>>>0>=4294967267){H[a+76>>2]=d;e=-1<>2]=d;H[a+80>>2]=e^-1;H[a+92>>2]=(d|0)/2;L[a+88>>2]=O(2)/O(d|0)}H[a+52>>2]=f;o=a+96|0;Be(o);d=H[a+40>>2];e=H[d>>2];d=H[d+4>>2];H[k+16>>2]=0;H[k+8>>2]=0;H[k+12>>2]=0;a:{d=d-e|0;if((d|0)>0){p=a+8|0;q=a+44|0;d=d>>>2|0;r=d>>>0>1?d:1;s=c+4|0;while(1){e=H[a+40>>2];d=H[e>>2];if(H[e+4>>2]-d>>2>>>0<=n>>>0){break a}Hd(q,H[d+(n<<2)>>2],k+8|0);f=H[k+12>>2];d=f>>31;e=H[k+8>>2];i=e>>31;l=H[k+16>>2];g=l>>31;g=(g^l)-g|0;i=g+((d^f)-d+((e^i)-i)|0)|0;d=0;d=g>>>0>i>>>0?1:d;b:{if(!(d|i)){j=H[a+92>>2];h=j;break b}j=H[a+92>>2];m=j>>31;f=Tl(Sl(j,m,f,f>>31),ka,i,d);g=f>>31;h=Tl(Sl(j,m,e,e>>31),ka,i,d);d=h>>31;d=(f^g)-g+((d^h)-d)|0;l=(l|0)<0?d-j|0:j-d|0}c:{if((h|0)>=0){i=f+j|0;g=j+l|0;break c}d:{if((f|0)<0){d=l>>31;i=(d^l)-d|0;break d}d=l>>31;i=H[a+84>>2]+(d-(d^l)|0)|0}if((l|0)<0){d=f>>31;g=(d^f)-d|0;break c}d=f>>31;g=H[a+84>>2]+(d-(d^f)|0)|0}d=H[a+84>>2];m=d;e=d;e:{if(!(g|i)){break e}if(!((d|0)!=(g|0)|i)){m=g;e=g;break e}if(!((d|0)!=(i|0)|g)){m=i;e=i;break e}if(!((g|0)<=(j|0)|i)){m=(j<<1)-g|0;e=0;break e}if(!((d|0)!=(i|0)|(g|0)>=(j|0))){m=(j<<1)-g|0;e=i;break e}if(!((d|0)!=(g|0)|(i|0)>=(j|0))){m=g;e=(j<<1)-i|0;break e}if(g){m=g;e=i;break e}m=0;e=i;if((e|0)<=(j|0)){break e}e=(j<<1)-i|0}i=e;H[k+16>>2]=0-l;H[k+12>>2]=0-f;H[k+8>>2]=0-h;f:{if((h|0)<=0){h=j-l|0;e=j-f|0;break f}e=f>>31;e=(e^f)-e|0;h=(l|0)>0?e:d-e|0;e=l>>31;e=(e^l)-e|0;e=(f|0)>0?e:d-e|0}g:{if(!(e|h)){h=d;break g}if(!((d|0)!=(h|0)|e)){h=d;break g}f=(d|0)!=(e|0);if(!(h|f)){h=d;break g}if(!((h|0)<=(j|0)|e)){h=(j<<1)-h|0;d=0;break g}if(!((h|0)>=(j|0)|f)){h=(j<<1)-h|0;break g}if(!((d|0)!=(h|0)|(e|0)>=(j|0))){h=d;d=(j<<1)-e|0;break g}if(h){d=e;break g}h=0;if((e|0)<=(j|0)){d=e;break g}d=(j<<1)-e|0}e=(n<<3)+b|0;f=H[e>>2];g=H[e+4>>2];H[k+28>>2]=m;H[k+24>>2]=i;H[k+32>>2]=f;H[k+36>>2]=g;i=k+40|0;g=k+32|0;m=k+24|0;Rd(i,p,g,m);f=H[k+44>>2];l=H[k+40>>2];j=H[e>>2];e=H[e+4>>2];H[k+28>>2]=h;H[k+24>>2]=d;H[k+32>>2]=j;H[k+36>>2]=e;Rd(i,p,g,m);d=H[k+44>>2];h=H[k+40>>2];e=H[a+92>>2];h:{if((e|0)<(l|0)){l=l-H[a+80>>2]|0;break h}if((0-e|0)<=(l|0)){break h}l=H[a+80>>2]+l|0}i:{if((e|0)<(f|0)){f=f-H[a+80>>2]|0;break i}if((0-e|0)<=(f|0)){break i}f=H[a+80>>2]+f|0}j:{if((e|0)<(h|0)){h=h-H[a+80>>2]|0;break j}if((0-e|0)<=(h|0)){break j}h=H[a+80>>2]+h|0}i=n<<1;k:{if((d|0)>(e|0)){d=d-H[a+80>>2]|0;break k}if((0-e|0)<=(d|0)){break k}d=H[a+80>>2]+d|0}e=f>>31;e=(e^f)-e|0;g=l>>31;g=(g^l)-g|0;e=g>>>0>(e^2147483647)>>>0?2147483647:e+g|0;g=d>>31;g=(g^d)-g|0;m=h>>31;m=(m^h)-m|0;g=m>>>0>(g^2147483647)>>>0?2147483647:g+m|0;Ce(o,e>>>0>=g>>>0);i=i<<2;e=e>>>0>>0;g=e?l:h;H[i+c>>2]=(H[a+80>>2]&g>>31)+g;d=e?f:d;H[i+s>>2]=(H[a+80>>2]&d>>31)+d;n=n+1|0;if((r|0)!=(n|0)){continue}break}}ha=k+48|0;return 1}Yc();X()}function fe(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0;k=ha-48|0;ha=k;d=H[a+8>>2];if(d-31>>>0>=4294967267){H[a+76>>2]=d;e=-1<>2]=d;H[a+80>>2]=e^-1;H[a+92>>2]=(d|0)/2;L[a+88>>2]=O(2)/O(d|0)}H[a+52>>2]=f;o=a+96|0;Be(o);d=H[a+40>>2];e=H[d>>2];d=H[d+4>>2];H[k+16>>2]=0;H[k+8>>2]=0;H[k+12>>2]=0;a:{d=d-e|0;if((d|0)>0){p=a+8|0;q=a+44|0;d=d>>>2|0;r=d>>>0>1?d:1;s=c+4|0;while(1){e=H[a+40>>2];d=H[e>>2];if(H[e+4>>2]-d>>2>>>0<=n>>>0){break a}td(q,H[d+(n<<2)>>2],k+8|0);f=H[k+12>>2];d=f>>31;e=H[k+8>>2];i=e>>31;l=H[k+16>>2];g=l>>31;g=(g^l)-g|0;i=g+((d^f)-d+((e^i)-i)|0)|0;d=0;d=g>>>0>i>>>0?1:d;b:{if(!(d|i)){j=H[a+92>>2];h=j;break b}j=H[a+92>>2];m=j>>31;f=Tl(Sl(j,m,f,f>>31),ka,i,d);g=f>>31;h=Tl(Sl(j,m,e,e>>31),ka,i,d);d=h>>31;d=(f^g)-g+((d^h)-d)|0;l=(l|0)<0?d-j|0:j-d|0}c:{if((h|0)>=0){i=f+j|0;g=j+l|0;break c}d:{if((f|0)<0){d=l>>31;i=(d^l)-d|0;break d}d=l>>31;i=H[a+84>>2]+(d-(d^l)|0)|0}if((l|0)<0){d=f>>31;g=(d^f)-d|0;break c}d=f>>31;g=H[a+84>>2]+(d-(d^f)|0)|0}d=H[a+84>>2];m=d;e=d;e:{if(!(g|i)){break e}if(!((d|0)!=(g|0)|i)){m=g;e=g;break e}if(!((d|0)!=(i|0)|g)){m=i;e=i;break e}if(!((g|0)<=(j|0)|i)){m=(j<<1)-g|0;e=0;break e}if(!((d|0)!=(i|0)|(g|0)>=(j|0))){m=(j<<1)-g|0;e=i;break e}if(!((d|0)!=(g|0)|(i|0)>=(j|0))){m=g;e=(j<<1)-i|0;break e}if(g){m=g;e=i;break e}m=0;e=i;if((e|0)<=(j|0)){break e}e=(j<<1)-i|0}i=e;H[k+16>>2]=0-l;H[k+12>>2]=0-f;H[k+8>>2]=0-h;f:{if((h|0)<=0){h=j-l|0;e=j-f|0;break f}e=f>>31;e=(e^f)-e|0;h=(l|0)>0?e:d-e|0;e=l>>31;e=(e^l)-e|0;e=(f|0)>0?e:d-e|0}g:{if(!(e|h)){h=d;break g}if(!((d|0)!=(h|0)|e)){h=d;break g}f=(d|0)!=(e|0);if(!(h|f)){h=d;break g}if(!((h|0)<=(j|0)|e)){h=(j<<1)-h|0;d=0;break g}if(!((h|0)>=(j|0)|f)){h=(j<<1)-h|0;break g}if(!((d|0)!=(h|0)|(e|0)>=(j|0))){h=d;d=(j<<1)-e|0;break g}if(h){d=e;break g}h=0;if((e|0)<=(j|0)){d=e;break g}d=(j<<1)-e|0}e=(n<<3)+b|0;f=H[e>>2];g=H[e+4>>2];H[k+28>>2]=m;H[k+24>>2]=i;H[k+32>>2]=f;H[k+36>>2]=g;i=k+40|0;g=k+32|0;m=k+24|0;Rd(i,p,g,m);f=H[k+44>>2];l=H[k+40>>2];j=H[e>>2];e=H[e+4>>2];H[k+28>>2]=h;H[k+24>>2]=d;H[k+32>>2]=j;H[k+36>>2]=e;Rd(i,p,g,m);d=H[k+44>>2];h=H[k+40>>2];e=H[a+92>>2];h:{if((e|0)<(l|0)){l=l-H[a+80>>2]|0;break h}if((0-e|0)<=(l|0)){break h}l=H[a+80>>2]+l|0}i:{if((e|0)<(f|0)){f=f-H[a+80>>2]|0;break i}if((0-e|0)<=(f|0)){break i}f=H[a+80>>2]+f|0}j:{if((e|0)<(h|0)){h=h-H[a+80>>2]|0;break j}if((0-e|0)<=(h|0)){break j}h=H[a+80>>2]+h|0}i=n<<1;k:{if((d|0)>(e|0)){d=d-H[a+80>>2]|0;break k}if((0-e|0)<=(d|0)){break k}d=H[a+80>>2]+d|0}e=f>>31;e=(e^f)-e|0;g=l>>31;g=(g^l)-g|0;e=g>>>0>(e^2147483647)>>>0?2147483647:e+g|0;g=d>>31;g=(g^d)-g|0;m=h>>31;m=(m^h)-m|0;g=m>>>0>(g^2147483647)>>>0?2147483647:g+m|0;Ce(o,e>>>0>=g>>>0);i=i<<2;e=e>>>0>>0;g=e?l:h;H[i+c>>2]=(H[a+80>>2]&g>>31)+g;d=e?f:d;H[i+s>>2]=(H[a+80>>2]&d>>31)+d;n=n+1|0;if((r|0)!=(n|0)){continue}break}}ha=k+48|0;return 1}Yc();X()}function Re(a,b,c,d,e,f){var g=0,h=0,i=0,j=0,k=0;g=ha-16|0;ha=g;H[g+12>>2]=b;b=hl(32);H[g>>2]=b;H[g+4>>2]=17;H[g+8>>2]=-2147483616;F[b+17|0]=0;F[b+16|0]=I[1261];i=I[1257]|I[1258]<<8|(I[1259]<<16|I[1260]<<24);h=I[1253]|I[1254]<<8|(I[1255]<<16|I[1256]<<24);F[b+8|0]=h;F[b+9|0]=h>>>8;F[b+10|0]=h>>>16;F[b+11|0]=h>>>24;F[b+12|0]=i;F[b+13|0]=i>>>8;F[b+14|0]=i>>>16;F[b+15|0]=i>>>24;i=I[1249]|I[1250]<<8|(I[1251]<<16|I[1252]<<24);h=I[1245]|I[1246]<<8|(I[1247]<<16|I[1248]<<24);F[b|0]=h;F[b+1|0]=h>>>8;F[b+2|0]=h>>>16;F[b+3|0]=h>>>24;F[b+4|0]=i;F[b+5|0]=i>>>8;F[b+6|0]=i>>>16;F[b+7|0]=i>>>24;i=a+4|0;ki(Je(i,g+12|0),g,c);if(F[g+11|0]<0){bl(H[g>>2])}a=hl(32);H[g>>2]=a;H[g+4>>2]=19;H[g+8>>2]=-2147483616;F[a+19|0]=0;b=I[1429]|I[1430]<<8|(I[1431]<<16|I[1432]<<24);F[a+15|0]=b;F[a+16|0]=b>>>8;F[a+17|0]=b>>>16;F[a+18|0]=b>>>24;b=I[1426]|I[1427]<<8|(I[1428]<<16|I[1429]<<24);c=I[1422]|I[1423]<<8|(I[1424]<<16|I[1425]<<24);F[a+8|0]=c;F[a+9|0]=c>>>8;F[a+10|0]=c>>>16;F[a+11|0]=c>>>24;F[a+12|0]=b;F[a+13|0]=b>>>8;F[a+14|0]=b>>>16;F[a+15|0]=b>>>24;b=I[1418]|I[1419]<<8|(I[1420]<<16|I[1421]<<24);c=I[1414]|I[1415]<<8|(I[1416]<<16|I[1417]<<24);F[a|0]=c;F[a+1|0]=c>>>8;F[a+2|0]=c>>>16;F[a+3|0]=c>>>24;F[a+4|0]=b;F[a+5|0]=b>>>8;F[a+6|0]=b>>>16;F[a+7|0]=b>>>24;c=Je(i,g+12|0);a=ha-48|0;ha=a;H[a+24>>2]=0;H[a+16>>2]=0;H[a+20>>2]=0;a:{if((d|0)<=0){break a}rl(a,L[e>>2]);b=I[a+11|0];h=b<<24>>24<0;ol(a+16|0,h?H[a>>2]:a,h?H[a+4>>2]:b);if(F[a+11|0]<0){bl(H[a>>2])}b=1;if((d|0)==1){break a}while(1){h=a+16|0;ol(h,2020,sk(2020));rl(a,L[(b<<2)+e>>2]);k=h;h=I[a+11|0];j=h<<24>>24<0;ol(k,j?H[a>>2]:a,j?H[a+4>>2]:h);if(F[a+11|0]<0){bl(H[a>>2])}b=b+1|0;if((d|0)!=(b|0)){continue}break}}H[a+40>>2]=g;Ze(a,c,g,a+40|0);b=H[a>>2]+28|0;b:{if((b|0)==(a+16|0)){break b}d=I[a+27|0];c=d<<24>>24;if(F[b+11|0]>=0){if((c|0)>=0){c=H[a+20>>2];H[b>>2]=H[a+16>>2];H[b+4>>2]=c;H[b+8>>2]=H[a+24>>2];break b}ql(b,H[a+16>>2],H[a+20>>2]);break b}e=b;b=(c|0)<0;pl(e,b?H[a+16>>2]:a+16|0,b?H[a+20>>2]:d)}if(F[a+27|0]<0){bl(H[a+16>>2])}ha=a+48|0;if(F[g+11|0]<0){bl(H[g>>2])}a=hl(32);H[g>>2]=a;H[g+4>>2]=18;H[g+8>>2]=-2147483616;F[a+18|0]=0;b=I[1547]|I[1548]<<8;F[a+16|0]=b;F[a+17|0]=b>>>8;b=I[1543]|I[1544]<<8|(I[1545]<<16|I[1546]<<24);c=I[1539]|I[1540]<<8|(I[1541]<<16|I[1542]<<24);F[a+8|0]=c;F[a+9|0]=c>>>8;F[a+10|0]=c>>>16;F[a+11|0]=c>>>24;F[a+12|0]=b;F[a+13|0]=b>>>8;F[a+14|0]=b>>>16;F[a+15|0]=b>>>24;b=I[1535]|I[1536]<<8|(I[1537]<<16|I[1538]<<24);c=I[1531]|I[1532]<<8|(I[1533]<<16|I[1534]<<24);F[a|0]=c;F[a+1|0]=c>>>8;F[a+2|0]=c>>>16;F[a+3|0]=c>>>24;F[a+4|0]=b;F[a+5|0]=b>>>8;F[a+6|0]=b>>>16;F[a+7|0]=b>>>24;b=Je(i,g+12|0);a=ha-48|0;ha=a;rl(a+8|0,f);H[a+32>>2]=g;Ze(a+40|0,b,g,a+32|0);b=H[a+40>>2];if(F[b+39|0]<0){bl(H[b+28>>2])}c=H[a+12>>2];H[b+28>>2]=H[a+8>>2];H[b+32>>2]=c;H[b+36>>2]=H[a+16>>2];ha=a+48|0;if(F[g+11|0]<0){bl(H[g>>2])}ha=g+16|0}function Oh(a,b){var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0;if((b|0)==-1){return 1}c=(b>>>0)/3|0;if(!(H[H[a+24>>2]+(c>>>3&268435452)>>2]>>>c&1)){d=H[a+48>>2];H[a+52>>2]=d;a:{if((d|0)!=H[a+56>>2]){H[d>>2]=b;H[a+52>>2]=d+4;break a}e=hl(4);H[e>>2]=b;f=e+4|0;H[a+56>>2]=f;H[a+52>>2]=f;H[a+48>>2]=e;if(!d){break a}bl(d)}f=H[H[a+4>>2]+28>>2];d=b+1|0;e=(d>>>0)%3|0?d:b-2|0;d=H[f+(e<<2)>>2];if((d|0)==-1){return 0}g=(b-N(c,3)|0?-1:2)+b|0;c=H[f+(g<<2)>>2];if((c|0)==-1){return 0}b=H[a+36>>2];f=b+(d>>>3&536870908)|0;h=H[f>>2];i=1<>2]=h|i;zh(a+8|0,d,e);b=H[a+36>>2]}b=(c>>>3&536870908)+b|0;d=H[b>>2];e=1<>2]=d|e;zh(a+8|0,c,g)}c=H[a+52>>2];if((c|0)==H[a+48>>2]){return 1}k=a+8|0;while(1){b:{c:{c=c-4|0;b=H[c>>2];if((b|0)==-1){break c}d=(b>>>0)/3|0;e=H[a+24>>2]+(d>>>3&268435452)|0;f=H[e>>2];d=1<>2]=d|f;e=H[a+4>>2];d=H[H[e+28>>2]+(b<<2)>>2];if((d|0)==-1){return 0}while(1){c=b;d:{e:{f=H[a+36>>2]+(d>>>3&536870908)|0;g=H[f>>2];h=1<>2]+(d<<2)>>2];g:{if((b|0)==-1){break g}i=b+1|0;b=(i>>>0)%3|0?i:b-2|0;if((b|0)==-1|H[H[e>>2]+(b>>>3&536870908)>>2]>>>b&1){break g}b=H[H[H[e+64>>2]+12>>2]+(b<<2)>>2];if((b|0)!=-1){break f}}H[f>>2]=g|h;zh(k,d,c);break e}H[f>>2]=g|h;zh(k,d,c);d=b+1|0;if((((d>>>0)%3|0?d:b-2|0)|0)==-1){break e}b=-1;e=H[a+4>>2];h:{if((c|0)==-1){break h}d=c+1|0;d=(d>>>0)%3|0?d:c-2|0;if((d|0)==-1|H[H[e>>2]+(d>>>3&536870908)>>2]>>>d&1){break h}b=H[H[H[e+64>>2]+12>>2]+(d<<2)>>2]}d=(b>>>0)/3|0;h=1<>2];i=d>>>5|0;f=H[c+(i<<2)>>2];break d}i:{j:{if((c|0)==-1){break j}d=-1;b=c+1|0;b=(b>>>0)%3|0?b:c-2|0;e=H[a+4>>2];if(!((b|0)==-1|H[H[e>>2]+(b>>>3&536870908)>>2]>>>b&1)){d=H[H[H[e+64>>2]+12>>2]+(b<<2)>>2]}k:{l:{if((c>>>0)%3|0){c=c-1|0;break l}c=c+2|0;b=-1;if((c|0)==-1){break k}}b=-1;if(H[H[e>>2]+(c>>>3&536870908)>>2]>>>c&1){break k}b=H[H[H[e+64>>2]+12>>2]+(c<<2)>>2]}j=(b|0)==-1;g=j?-1:(b>>>0)/3|0;if((d|0)!=-1){c=H[a+24>>2];h=(d>>>0)/3|0;i=h>>>5|0;f=H[c+(i<<2)>>2];h=1<>2];i=g>>>5|0;f=H[c+(i<<2)>>2];if(!(h&f)){break d}}c=H[a+52>>2]-4|0;H[a+52>>2]=c;break b}if(j){b=d;break d}if(H[(g>>>3&536870908)+c>>2]>>>g&1){b=d;break d}c=H[a+52>>2];H[c-4>>2]=b;if((c|0)!=H[a+56>>2]){H[c>>2]=d;c=c+4|0;break c}m:{f=H[a+48>>2];e=c-f|0;c=e>>2;b=c+1|0;if(b>>>0<1073741824){g=e>>1;g=e>>>0<2147483644?b>>>0>>0?g:b:1073741823;if(g){if(g>>>0>=1073741824){break m}b=hl(g<<2)}else{b=0}c=b+(c<<2)|0;H[c>>2]=d;c=c+4|0;if((e|0)>0){jk(b,f,e)}H[a+56>>2]=b+(g<<2);H[a+52>>2]=c;H[a+48>>2]=b;if(!f){break b}bl(f);c=H[a+52>>2];break b}Ka();X()}_a();X()}H[(i<<2)+c>>2]=f|h;d=H[H[e+28>>2]+(b<<2)>>2];if((d|0)!=-1){continue}break}return 0}H[a+52>>2]=c}if(H[a+48>>2]!=(c|0)){continue}break}}return 1}function $g(a,b){var c=0,d=0,e=0,f=0,g=0,h=0,i=0;c=H[a+8>>2];e=H[a+4>>2];if((c-e|0)/136>>>0>=b>>>0){a:{if(!b){break a}d=e;f=b&7;if(f){c=0;while(1){fh(d);d=d+136|0;c=c+1|0;if((f|0)!=(c|0)){continue}break}}e=N(b,136)+e|0;if((b-1&536870911)>>>0<7){break a}while(1){fh(d);fh(d+136|0);fh(d+272|0);fh(d+408|0);fh(d+544|0);fh(d+680|0);fh(d+816|0);fh(d+952|0);d=d+1088|0;if((e|0)!=(d|0)){continue}break}}H[a+4>>2]=e;return}b:{c:{d:{f=H[a>>2];h=(e-f|0)/136|0;d=h+b|0;if(d>>>0<31580642){e=0;c=(c-f|0)/136|0;f=c<<1;f=c>>>0<15790320?d>>>0>>0?f:d:31580641;if(f){if(f>>>0>=31580642){break d}g=hl(N(f,136))}c=N(h,136)+g|0;d=c;h=b&7;if(h){d=c;while(1){fh(d);d=d+136|0;e=e+1|0;if((h|0)!=(e|0)){continue}break}}h=N(b,136)+c|0;if((b-1&536870911)>>>0>=7){while(1){fh(d);fh(d+136|0);fh(d+272|0);fh(d+408|0);fh(d+544|0);fh(d+680|0);fh(d+816|0);fh(d+952|0);d=d+1088|0;if((h|0)!=(d|0)){continue}break}}f=N(f,136)+g|0;d=H[a+4>>2];e=H[a>>2];if((d|0)==(e|0)){break c}while(1){c=c-136|0;d=d-136|0;b=d;H[c>>2]=H[b>>2];H[c+4>>2]=H[b+4>>2];H[c+8>>2]=H[b+8>>2];H[c+12>>2]=H[b+12>>2];H[b+12>>2]=0;H[b+4>>2]=0;H[b+8>>2]=0;H[c+16>>2]=H[b+16>>2];H[c+20>>2]=H[b+20>>2];H[c+24>>2]=H[b+24>>2];H[b+24>>2]=0;H[b+16>>2]=0;H[b+20>>2]=0;g=I[b+28|0];H[c+40>>2]=0;H[c+32>>2]=0;H[c+36>>2]=0;F[c+28|0]=g;H[c+32>>2]=H[b+32>>2];H[c+36>>2]=H[b+36>>2];H[c+40>>2]=H[b+40>>2];H[b+40>>2]=0;H[b+32>>2]=0;H[b+36>>2]=0;H[c+52>>2]=0;H[c+44>>2]=0;H[c+48>>2]=0;H[c+44>>2]=H[b+44>>2];H[c+48>>2]=H[b+48>>2];H[c+52>>2]=H[b+52>>2];H[b+52>>2]=0;H[b+44>>2]=0;H[b+48>>2]=0;g=c- -64|0;H[g>>2]=0;H[c+56>>2]=0;H[c+60>>2]=0;H[c+56>>2]=H[b+56>>2];H[c+60>>2]=H[b+60>>2];i=g;g=b- -64|0;H[i>>2]=H[g>>2];H[g>>2]=0;H[b+56>>2]=0;H[b+60>>2]=0;H[c+68>>2]=H[b+68>>2];g=H[b+72>>2];H[c+84>>2]=0;H[c+76>>2]=0;H[c+80>>2]=0;H[c+72>>2]=g;H[c+76>>2]=H[b+76>>2];H[c+80>>2]=H[b+80>>2];H[c+84>>2]=H[b+84>>2];H[b+84>>2]=0;H[b+76>>2]=0;H[b+80>>2]=0;H[c+96>>2]=0;H[c+88>>2]=0;H[c+92>>2]=0;H[c+88>>2]=H[b+88>>2];H[c+92>>2]=H[b+92>>2];H[c+96>>2]=H[b+96>>2];H[b+96>>2]=0;H[b+88>>2]=0;H[b+92>>2]=0;g=I[b+100|0];H[c+112>>2]=0;H[c+104>>2]=0;H[c+108>>2]=0;F[c+100|0]=g;H[c+104>>2]=H[b+104>>2];H[c+108>>2]=H[b+108>>2];H[c+112>>2]=H[b+112>>2];H[b+112>>2]=0;H[b+104>>2]=0;H[b+108>>2]=0;H[c+124>>2]=0;H[c+116>>2]=0;H[c+120>>2]=0;H[c+116>>2]=H[b+116>>2];H[c+120>>2]=H[b+120>>2];H[c+124>>2]=H[b+124>>2];H[b+124>>2]=0;H[b+116>>2]=0;H[b+120>>2]=0;H[c+128>>2]=H[b+128>>2];H[c+132>>2]=H[b+132>>2];if((b|0)!=(e|0)){continue}break}H[a+8>>2]=f;d=H[a+4>>2];H[a+4>>2]=h;e=H[a>>2];H[a>>2]=c;if((d|0)==(e|0)){break b}while(1){a=d-136|0;b=H[a+116>>2];if(b){H[d-16>>2]=b;bl(b)}b=H[d-32>>2];if(b){H[d-28>>2]=b;bl(b)}ah(d-132|0);d=a;if((e|0)!=(d|0)){continue}break}break b}Ka();X()}_a();X()}H[a+8>>2]=f;H[a+4>>2]=h;H[a>>2]=c}if(e){bl(e)}}function hh(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0;e=ha+-64|0;ha=e;a:{b:{c:{d:{if(!I[a+352|0]){break d}c=1;h=la[H[H[a>>2]+40>>2]](a)|0;if((H[h+12>>2]-H[h+8>>2]|0)<=0){break d}wb(H[H[(la[H[H[a>>2]+40>>2]](a)|0)+8>>2]>>2],b);break c}c=b<<2;f=H[c+H[H[(la[H[H[a>>2]+40>>2]](a)|0)+56>>2]+84>>2]>>2];i=H[c+H[H[(la[H[H[a>>2]+40>>2]](a)|0)+4>>2]+8>>2]>>2];h=-1;c=H[a+176>>2];d=H[a+172>>2];e:{if((c|0)==(d|0)){break e}c=(c-d|0)/136|0;g=c>>>0>1?c:1;c=0;while(1){if(H[d+N(c,136)>>2]==(b|0)){h=c;break e}c=c+1|0;if((g|0)!=(c|0)){continue}break}}f:{g:{h:{i:{j:{k:{if(!I[a+352|0]){c=H[i+56>>2];if(!(!f|!c)&(!I[(d+N(h,136)|0)+28|0]|(f|0)!=1)){break i}if(c){break k}}c=a+40|0;break j}c=H[a+12>>2];f=H[c+28>>2];c=H[c+24>>2];H[e>>2]=-1;k=d;d=N(h,136);g=k+d|0;Hg(g+116|0,f-c>>2,e);F[(d+H[a+172>>2]|0)+100|0]=0;c=g+104|0}d=0;if(Qb(H[(la[H[H[a>>2]+40>>2]](a)|0)+48>>2])|H[i+56>>2]){break h}if(!I[a+352|0]){d=1;c=Ig(a,c);break g}d=H[a+8>>2];f=H[d+12>>2]-H[d+8>>2]|0;d=(f|0)<5;if((f|0)>4){break h}c=Ig(a,c);break g}d=d+N(h,136)|0;c=H[d+56>>2];f=H[d+60>>2];H[e>>2]=-1;Hg(d+116|0,f-c>>2,e);c=hl(80);f=H[a+8>>2];H[c+12>>2]=0;H[c+16>>2]=0;H[c>>2]=11984;H[c+4>>2]=0;H[c+20>>2]=0;H[c+24>>2]=0;H[c+28>>2]=0;H[c+32>>2]=0;H[c+36>>2]=0;H[c+40>>2]=0;H[c+44>>2]=0;H[c+48>>2]=0;H[c+52>>2]=0;H[c+76>>2]=0;i=d+104|0;H[c+72>>2]=i;H[c+68>>2]=f;H[c- -64>>2]=0;g=c+56|0;H[g>>2]=0;H[g+4>>2]=0;H[c+8>>2]=10876;H[e+40>>2]=0;H[e+44>>2]=0;H[e+32>>2]=0;H[e+36>>2]=0;j=e+24|0;H[j>>2]=0;H[j+4>>2]=0;H[e+16>>2]=0;H[e+20>>2]=0;H[e+56>>2]=0;H[e+8>>2]=0;H[e+12>>2]=0;H[e+48>>2]=0;H[e+52>>2]=0;H[e>>2]=10876;l=d+4|0;H[e+4>>2]=l;d=H[d+68>>2];k=H[d>>2];d=H[d+4>>2];F[e+63|0]=0;k=(d-k>>2>>>0)/3|0;d=e+63|0;Jg(j,k,d);j=H[e+4>>2];k=H[j+56>>2];j=H[j+52>>2];F[e+63|0]=0;Jg(e+36|0,k-j>>2,d);H[e+20>>2]=c;H[e+16>>2]=f;H[e+12>>2]=i;H[e+8>>2]=l;H[c+76>>2]=a+72;Kg(c+8|0,e);Lg(g,H[e+48>>2],H[e+52>>2]);H[e>>2]=10876;d=H[e+48>>2];if(d){H[e+52>>2]=d;bl(d)}H[e>>2]=11128;d=H[e+36>>2];if(d){bl(d)}d=H[e+24>>2];if(d){bl(d)}d=0;break f}c=Mg(a,c)}if(c){break f}c=0;break c}H[((h|0)==-1?a+68|0:(H[a+172>>2]+N(h,136)|0)+132|0)>>2]=d;i=sc(hl(76),c,b);b=H[a+188>>2];l:{if((b|0)!=H[a+192>>2]){H[b>>2]=h;H[a+188>>2]=b+4;break l}d=H[a+184>>2];c=b-d|0;g=c>>2;b=g+1|0;if(b>>>0>=1073741824){break b}f=c>>1;f=c>>>0<2147483644?b>>>0>>0?f:b:1073741823;if(f){if(f>>>0>=1073741824){break a}b=hl(f<<2)}else{b=0}g=b+(g<<2)|0;H[g>>2]=h;if((c|0)>0){jk(b,d,c)}H[a+192>>2]=b+(f<<2);H[a+188>>2]=g+4;H[a+184>>2]=b;if(!d){break l}bl(d)}a=la[H[H[a>>2]+40>>2]](a)|0;H[e>>2]=i;b=H[a+12>>2];m:{if(b>>>0>2]){H[e>>2]=0;H[b>>2]=i;H[a+12>>2]=b+4;break m}Ng(a+8|0,e)}a=H[e>>2];H[e>>2]=0;if(a){la[H[H[a>>2]+4>>2]](a)}c=1}ha=e- -64|0;return c|0}Ka();X()}_a();X()}function Gg(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0;e=ha+-64|0;ha=e;a:{b:{c:{d:{if(!I[a+288|0]){break d}c=1;h=la[H[H[a>>2]+40>>2]](a)|0;if((H[h+12>>2]-H[h+8>>2]|0)<=0){break d}wb(H[H[(la[H[H[a>>2]+40>>2]](a)|0)+8>>2]>>2],b);break c}c=b<<2;f=H[c+H[H[(la[H[H[a>>2]+40>>2]](a)|0)+56>>2]+84>>2]>>2];i=H[c+H[H[(la[H[H[a>>2]+40>>2]](a)|0)+4>>2]+8>>2]>>2];h=-1;c=H[a+176>>2];d=H[a+172>>2];e:{if((c|0)==(d|0)){break e}c=(c-d|0)/136|0;g=c>>>0>1?c:1;c=0;while(1){if(H[d+N(c,136)>>2]==(b|0)){h=c;break e}c=c+1|0;if((g|0)!=(c|0)){continue}break}}f:{g:{h:{i:{j:{k:{if(!I[a+288|0]){c=H[i+56>>2];if(!(!f|!c)&(!I[(d+N(h,136)|0)+28|0]|(f|0)!=1)){break i}if(c){break k}}c=a+40|0;break j}c=H[a+12>>2];f=H[c+28>>2];c=H[c+24>>2];H[e>>2]=-1;k=d;d=N(h,136);g=k+d|0;Hg(g+116|0,f-c>>2,e);F[(d+H[a+172>>2]|0)+100|0]=0;c=g+104|0}d=0;if(Qb(H[(la[H[H[a>>2]+40>>2]](a)|0)+48>>2])|H[i+56>>2]){break h}if(!I[a+288|0]){d=1;c=Ig(a,c);break g}d=H[a+8>>2];f=H[d+12>>2]-H[d+8>>2]|0;d=(f|0)<5;if((f|0)>4){break h}c=Ig(a,c);break g}d=d+N(h,136)|0;c=H[d+56>>2];f=H[d+60>>2];H[e>>2]=-1;Hg(d+116|0,f-c>>2,e);c=hl(80);f=H[a+8>>2];H[c+12>>2]=0;H[c+16>>2]=0;H[c>>2]=11984;H[c+4>>2]=0;H[c+20>>2]=0;H[c+24>>2]=0;H[c+28>>2]=0;H[c+32>>2]=0;H[c+36>>2]=0;H[c+40>>2]=0;H[c+44>>2]=0;H[c+48>>2]=0;H[c+52>>2]=0;H[c+76>>2]=0;i=d+104|0;H[c+72>>2]=i;H[c+68>>2]=f;H[c- -64>>2]=0;g=c+56|0;H[g>>2]=0;H[g+4>>2]=0;H[c+8>>2]=10876;H[e+40>>2]=0;H[e+44>>2]=0;H[e+32>>2]=0;H[e+36>>2]=0;j=e+24|0;H[j>>2]=0;H[j+4>>2]=0;H[e+16>>2]=0;H[e+20>>2]=0;H[e+56>>2]=0;H[e+8>>2]=0;H[e+12>>2]=0;H[e+48>>2]=0;H[e+52>>2]=0;H[e>>2]=10876;l=d+4|0;H[e+4>>2]=l;d=H[d+68>>2];k=H[d>>2];d=H[d+4>>2];F[e+63|0]=0;k=(d-k>>2>>>0)/3|0;d=e+63|0;Jg(j,k,d);j=H[e+4>>2];k=H[j+56>>2];j=H[j+52>>2];F[e+63|0]=0;Jg(e+36|0,k-j>>2,d);H[e+20>>2]=c;H[e+16>>2]=f;H[e+12>>2]=i;H[e+8>>2]=l;H[c+76>>2]=a+72;Kg(c+8|0,e);Lg(g,H[e+48>>2],H[e+52>>2]);H[e>>2]=10876;d=H[e+48>>2];if(d){H[e+52>>2]=d;bl(d)}H[e>>2]=11128;d=H[e+36>>2];if(d){bl(d)}d=H[e+24>>2];if(d){bl(d)}d=0;break f}c=Mg(a,c)}if(c){break f}c=0;break c}H[((h|0)==-1?a+68|0:(H[a+172>>2]+N(h,136)|0)+132|0)>>2]=d;i=sc(hl(76),c,b);b=H[a+188>>2];l:{if((b|0)!=H[a+192>>2]){H[b>>2]=h;H[a+188>>2]=b+4;break l}d=H[a+184>>2];c=b-d|0;g=c>>2;b=g+1|0;if(b>>>0>=1073741824){break b}f=c>>1;f=c>>>0<2147483644?b>>>0>>0?f:b:1073741823;if(f){if(f>>>0>=1073741824){break a}b=hl(f<<2)}else{b=0}g=b+(g<<2)|0;H[g>>2]=h;if((c|0)>0){jk(b,d,c)}H[a+192>>2]=b+(f<<2);H[a+188>>2]=g+4;H[a+184>>2]=b;if(!d){break l}bl(d)}a=la[H[H[a>>2]+40>>2]](a)|0;H[e>>2]=i;b=H[a+12>>2];m:{if(b>>>0>2]){H[e>>2]=0;H[b>>2]=i;H[a+12>>2]=b+4;break m}Ng(a+8|0,e)}a=H[e>>2];H[e>>2]=0;if(a){la[H[H[a>>2]+4>>2]](a)}c=1}ha=e- -64|0;return c|0}Ka();X()}_a();X()}function ec(a){var b=0,c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0;f=ha-32|0;ha=f;a:{b:{c:{d:{b=H[a+16>>2];if(b>>>0>=113){H[a+16>>2]=b-113;b=H[a+4>>2];k=H[b>>2];c=b+4|0;H[a+4>>2]=c;b=H[a+8>>2];e:{if((b|0)!=H[a+12>>2]){d=b;break e}h=H[a>>2];if(h>>>0>>0){g=b-c|0;e=((c-h>>2)+1|0)/-2<<2;d=e+c|0;if((b|0)!=(c|0)){kk(d,c,g);c=H[a+4>>2]}d=d+g|0;H[a+8>>2]=d;H[a+4>>2]=c+e;break e}d=(b|0)==(h|0)?1:b-h>>1;if(d>>>0>=1073741824){break d}e=d<<2;i=hl(e);l=e+i|0;e=i+(d&-4)|0;d=e;f:{if((b|0)==(c|0)){break f}b=b-c|0;m=b&-4;j=b-4|0;g=(j>>>2|0)+1&7;g:{if(!g){b=e;break g}d=0;b=e;while(1){H[b>>2]=H[c>>2];c=c+4|0;b=b+4|0;d=d+1|0;if((g|0)!=(d|0)){continue}break}}d=e+m|0;if(j>>>0<28){break f}while(1){H[b>>2]=H[c>>2];H[b+4>>2]=H[c+4>>2];H[b+8>>2]=H[c+8>>2];H[b+12>>2]=H[c+12>>2];H[b+16>>2]=H[c+16>>2];H[b+20>>2]=H[c+20>>2];H[b+24>>2]=H[c+24>>2];H[b+28>>2]=H[c+28>>2];c=c+32|0;b=b+32|0;if((d|0)!=(b|0)){continue}break}}H[a+12>>2]=l;H[a+8>>2]=d;H[a+4>>2]=e;H[a>>2]=i;if(!h){break e}bl(h);d=H[a+8>>2]}H[d>>2]=k;H[a+8>>2]=H[a+8>>2]+4;break a}b=H[a+8>>2];d=b-H[a+4>>2]>>2;g=H[a+12>>2];c=H[a>>2];e=g-c|0;if(d>>>0>2>>>0){if((b|0)!=(g|0)){n=f,o=hl(4068),H[n+8>>2]=o;hc(a,f+8|0);break a}n=f,o=hl(4068),H[n+8>>2]=o;ic(a,f+8|0);b=H[a+4>>2];k=H[b>>2];c=b+4|0;H[a+4>>2]=c;b=H[a+8>>2];h:{if((b|0)!=H[a+12>>2]){d=b;break h}h=H[a>>2];if(h>>>0>>0){g=b-c|0;e=((c-h>>2)+1|0)/-2<<2;d=e+c|0;if((b|0)!=(c|0)){kk(d,c,g);c=H[a+4>>2]}d=d+g|0;H[a+8>>2]=d;H[a+4>>2]=c+e;break h}d=(b|0)==(h|0)?1:b-h>>1;if(d>>>0>=1073741824){break d}e=d<<2;i=hl(e);l=e+i|0;e=i+(d&-4)|0;d=e;i:{if((b|0)==(c|0)){break i}b=b-c|0;m=b&-4;j=b-4|0;g=(j>>>2|0)+1&7;j:{if(!g){b=e;break j}d=0;b=e;while(1){H[b>>2]=H[c>>2];c=c+4|0;b=b+4|0;d=d+1|0;if((g|0)!=(d|0)){continue}break}}d=e+m|0;if(j>>>0<28){break i}while(1){H[b>>2]=H[c>>2];H[b+4>>2]=H[c+4>>2];H[b+8>>2]=H[c+8>>2];H[b+12>>2]=H[c+12>>2];H[b+16>>2]=H[c+16>>2];H[b+20>>2]=H[c+20>>2];H[b+24>>2]=H[c+24>>2];H[b+28>>2]=H[c+28>>2];c=c+32|0;b=b+32|0;if((d|0)!=(b|0)){continue}break}}H[a+12>>2]=l;H[a+8>>2]=d;H[a+4>>2]=e;H[a>>2]=i;if(!h){break h}bl(h);d=H[a+8>>2]}H[d>>2]=k;H[a+8>>2]=H[a+8>>2]+4;break a}H[f+24>>2]=a+12;b=(c|0)==(g|0)?1:e>>1;if(b>>>0>=1073741824){break d}e=b<<2;c=hl(e);H[f+8>>2]=c;b=c+(d<<2)|0;H[f+16>>2]=b;H[f+20>>2]=c+e;H[f+12>>2]=b;n=f,o=hl(4068),H[n+4>>2]=o;hc(f+8|0,f+4|0);c=H[a+8>>2];if((c|0)==H[a+4>>2]){b=c;break b}while(1){c=c-4|0;ic(f+8|0,c);if(H[a+4>>2]!=(c|0)){continue}break}break c}_a();X()}b=H[a+8>>2]}d=H[a>>2];H[a>>2]=H[f+8>>2];H[f+8>>2]=d;H[a+4>>2]=H[f+12>>2];H[f+12>>2]=c;H[a+8>>2]=H[f+16>>2];H[f+16>>2]=b;e=H[a+12>>2];H[a+12>>2]=H[f+20>>2];H[f+20>>2]=e;if((b|0)!=(c|0)){H[f+16>>2]=b+((c-b|0)+3&-4)}if(!d){break a}bl(d)}ha=f+32|0}function kh(a,b){var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0;j=ha-16|0;ha=j;H[a+124>>2]=H[a+124>>2]+1;h=-1;d=H[a+120>>2];c=-1;a:{if((d|0)==-1){break a}c=d+1|0;h=(c>>>0)%3|0?c:d-2|0;c=d-1|0;if((d>>>0)%3|0){break a}c=d+2|0}e=H[a+104>>2];f=H[a+92>>2];g=f+(h<<2)|0;k=e+(H[g>>2]<<2)|0;i=H[k>>2];b:{c:{switch(b|0){case 0:case 1:H[k>>2]=i-1;d=(H[(c<<2)+f>>2]<<2)+e|0;H[d>>2]=H[d>>2]-1;if((b|0)!=1){break b}g=0;d:{if((c|0)==-1){d=0;break d}d=0;c=H[H[H[a+88>>2]+12>>2]+(c<<2)>>2];if((c|0)==-1){break d}while(1){e:{e=H[a+64>>2];if(la[H[H[e>>2]+36>>2]](e,(c>>>0)/3|0)|0){break e}d=d+1|0;e=c+1|0;c=(e>>>0)%3|0?e:c-2|0;if((c|0)==-1){break e}c=H[H[H[a+88>>2]+12>>2]+(c<<2)>>2];if((c|0)!=-1){continue}}break}e=H[a+104>>2];f=H[a+92>>2]}H[(H[(H[a+120>>2]<<2)+f>>2]<<2)+e>>2]=d+1;f:{if((h|0)==-1){break f}c=H[H[H[a+88>>2]+12>>2]+(h<<2)>>2];if((c|0)==-1){break f}e=H[a+108>>2]-e>>2;while(1){f=H[a+64>>2];d=(c>>>0)/3|0;if(la[H[H[f>>2]+36>>2]](f,d)|0){break f}f=c+1|0;H[H[a+92>>2]+(((f>>>0)%3|0?f:c-2|0)<<2)>>2]=e;g=g+1|0;f=H[a+88>>2];g:{if((N(d,3)|0)!=(c|0)){c=c-1|0;break g}c=c+2|0;if((c|0)==-1){break f}}c=H[H[f+12>>2]+(c<<2)>>2];if((c|0)!=-1){continue}break}}H[j+12>>2]=g+1;h:{c=H[a+108>>2];f=H[a+112>>2];if(c>>>0>>0){H[c>>2]=H[j+12>>2];H[a+108>>2]=c+4;break h}i:{e=H[a+104>>2];d=c-e|0;h=d>>2;c=h+1|0;if(c>>>0<1073741824){f=f-e|0;g=f>>1;f=f>>>0<2147483644?c>>>0>>0?g:c:1073741823;if(f){if(f>>>0>=1073741824){break i}c=hl(f<<2)}else{c=0}h=c+(h<<2)|0;H[h>>2]=H[j+12>>2];if((d|0)>0){jk(c,e,d)}H[a+112>>2]=c+(f<<2);H[a+108>>2]=h+4;H[a+104>>2]=c;if(e){bl(e)}break h}Ka();X()}_a();X()}break b;case 5:d=(H[(d<<2)+f>>2]<<2)+e|0;H[d>>2]=H[d>>2]-1;d=(H[g>>2]<<2)+e|0;H[d>>2]=H[d>>2]-1;c=(H[(c<<2)+f>>2]<<2)+e|0;H[c>>2]=H[c>>2]-2;break b;case 3:d=(H[(d<<2)+f>>2]<<2)+e|0;H[d>>2]=H[d>>2]-1;d=(H[g>>2]<<2)+e|0;H[d>>2]=H[d>>2]-2;c=(H[(c<<2)+f>>2]<<2)+e|0;H[c>>2]=H[c>>2]-1;break b;case 7:break c;default:break b}}d=(H[(d<<2)+f>>2]<<2)+e|0;H[d>>2]=H[d>>2]-2;d=(H[g>>2]<<2)+e|0;H[d>>2]=H[d>>2]-2;c=(H[(c<<2)+f>>2]<<2)+e|0;H[c>>2]=H[c>>2]-2}j:{k:{c=H[a+116>>2];l:{if((c|0)==-1){break l}h=H[(c<<2)+11184>>2];c=H[a+132>>2];d=(c|0)>(i|0)?i:c;c=H[a+128>>2];e=H[a+136>>2]+N((c|0)>(i|0)?0:d-c|0,12)|0;c=H[e+4>>2];d=H[e+8>>2];if(c>>>0>>0){H[c>>2]=h;H[e+4>>2]=c+4;break l}f=H[e>>2];i=c-f|0;g=i>>2;c=g+1|0;if(c>>>0>=1073741824){break k}d=d-f|0;k=d>>1;d=d>>>0<2147483644?c>>>0>>0?k:c:1073741823;if(d){if(d>>>0>=1073741824){break j}c=hl(d<<2)}else{c=0}g=c+(g<<2)|0;H[g>>2]=h;if((i|0)>0){jk(c,f,i)}H[e>>2]=c;H[e+4>>2]=g+4;H[e+8>>2]=c+(d<<2);if(!f){break l}bl(f)}H[a+116>>2]=b;ha=j+16|0;return}Ka();X()}_a();X()}function Ih(a,b){var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0;if((b|0)==-1){return 1}d=(b>>>0)/3|0;if(!(H[H[a+24>>2]+(d>>>3&268435452)>>2]>>>d&1)){c=H[a+48>>2];H[a+52>>2]=c;a:{if((c|0)!=H[a+56>>2]){H[c>>2]=b;H[a+52>>2]=c+4;break a}e=hl(4);H[e>>2]=b;f=e+4|0;H[a+56>>2]=f;H[a+52>>2]=f;H[a+48>>2]=e;if(!c){break a}bl(c)}e=-1;f=H[a+4>>2];c=b+1|0;g=(c>>>0)%3|0?c:b-2|0;if((g|0)!=-1){e=H[H[f>>2]+(g<<2)>>2]}b:{h=b-N(d,3)|0;if(h){c=b-1|0;break b}c=b+2|0;if((c|0)!=-1){break b}return 0}if((e|0)==-1){return 0}d=H[H[f>>2]+(c<<2)>>2];if((d|0)==-1){return 0}c=H[a+36>>2];f=c+(e>>>3&536870908)|0;i=H[f>>2];j=1<>2]=i|j;zh(a+8|0,e,g);c=H[a+36>>2]}c=(d>>>3&536870908)+c|0;e=H[c>>2];f=1<>2]=e|f;zh(a+8|0,d,(h?-1:2)+b|0)}c=H[a+52>>2];if((c|0)==H[a+48>>2]){return 1}j=a+8|0;while(1){c:{d:{c=c-4|0;b=H[c>>2];if((b|0)==-1){break d}d=(b>>>0)/3|0;e=H[a+24>>2]+(d>>>3&268435452)|0;f=H[e>>2];d=1<>2]=d|f;while(1){d=H[a+4>>2];c=H[H[d>>2]+(b<<2)>>2];if((c|0)==-1){return 0}e:{f:{e=H[a+36>>2]+(c>>>3&536870908)|0;f=H[e>>2];g=1<>2]+(c<<2)>>2];h:{if((h|0)==-1){break h}i=h+1|0;h=(i>>>0)%3|0?i:h-2|0;if((h|0)==-1){break h}d=H[H[d+12>>2]+(h<<2)>>2];if((d|0)!=-1){break g}}H[e>>2]=f|g;zh(j,c,b);break f}H[e>>2]=f|g;zh(j,c,b);c=d+1|0;if((((c>>>0)%3|0?c:d-2|0)|0)==-1){break f}d=b-2|0;c=b+1|0;b=-1;c=(c>>>0)%3|0?c:d;if((c|0)!=-1){b=H[H[H[a+4>>2]+12>>2]+(c<<2)>>2]}c=(b>>>0)/3|0;g=1<>2];h=c>>>5|0;d=H[e+(h<<2)>>2];break e}c=-1;f=H[a+4>>2];d=b+1|0;d=(d>>>0)%3|0?d:b-2|0;if((d|0)!=-1){c=H[H[f+12>>2]+(d<<2)>>2]}i:{j:{if((b>>>0)%3|0){e=b-1|0;break j}e=b+2|0;b=-1;if((e|0)==-1){break i}}b=H[H[f+12>>2]+(e<<2)>>2]}i=(b|0)==-1;f=i?-1:(b>>>0)/3|0;k:{if((c|0)!=-1){e=H[a+24>>2];g=(c>>>0)/3|0;h=g>>>5|0;d=H[e+(h<<2)>>2];g=1<>2];h=f>>>5|0;d=H[e+(h<<2)>>2];if(!(g&d)){break e}}c=H[a+52>>2]-4|0;H[a+52>>2]=c;break c}if(i){b=c;break e}if(H[(f>>>3&536870908)+e>>2]>>>f&1){b=c;break e}d=H[a+52>>2];H[d-4>>2]=b;if((d|0)!=H[a+56>>2]){H[d>>2]=c;c=d+4|0;break d}l:{e=H[a+48>>2];d=d-e|0;g=d>>2;b=g+1|0;if(b>>>0<1073741824){f=d>>1;f=d>>>0<2147483644?b>>>0>>0?f:b:1073741823;if(f){if(f>>>0>=1073741824){break l}b=hl(f<<2)}else{b=0}g=b+(g<<2)|0;H[g>>2]=c;c=g+4|0;if((d|0)>0){jk(b,e,d)}H[a+56>>2]=b+(f<<2);H[a+52>>2]=c;H[a+48>>2]=b;if(!e){break c}bl(e);c=H[a+52>>2];break c}Ka();X()}_a();X()}H[(h<<2)+e>>2]=d|g;if((b|0)!=-1){continue}break}return 0}H[a+52>>2]=c}if(H[a+48>>2]!=(c|0)){continue}break}}return 1}function bf(a,b){var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0;d=a+4|0;if((d|0)!=(b|0)){Ie(d,H[b>>2],b+4|0);f=H[b+12>>2];k=b+16|0;d=0;h=a+16|0;a:{if(!H[h+8>>2]){break a}e=H[h>>2];j=h+4|0;H[h>>2]=j;H[H[h+4>>2]+8>>2]=0;H[h+4>>2]=0;H[h+8>>2]=0;c=H[e+4>>2];g=c?c:e;if(!g){He(h,g);break a}e=H[g+8>>2];b:{if(!e){break b}c=H[e>>2];if((g|0)==(c|0)){H[e>>2]=0;d=e;c=H[e+4>>2];if(!c){break b}while(1){d=c;c=H[c>>2];if(c){continue}c=H[d+4>>2];if(c){continue}break}break b}H[e+4>>2]=0;d=e;if(!c){break b}while(1){d=c;c=H[c>>2];if(c){continue}c=H[d+4>>2];if(c){continue}break}}c:{if((f|0)==(k|0)){i=g;break c}c=f;while(1){i=d;H[g+16>>2]=H[c+16>>2];if((c|0)!=(g|0)){Ie(g+20|0,H[c+20>>2],c+24|0)}f=j;d=f;e=H[d>>2];d:{if(!e){break d}l=H[g+16>>2];while(1){f=e;if((l|0)>2]){d=f;e=H[d>>2];if(e){continue}break d}e=H[f+4>>2];if(e){continue}break}d=f+4|0}H[g+8>>2]=f;H[g>>2]=0;H[g+4>>2]=0;H[d>>2]=g;f=H[H[h>>2]>>2];if(f){H[h>>2]=f;g=H[d>>2]}We(H[h+4>>2],g);H[h+8>>2]=H[h+8>>2]+1;d=0;e:{if(!i){break e}e=H[i+8>>2];if(!e){break e}f=H[e>>2];if((i|0)==(f|0)){H[e>>2]=0;d=e;f=H[e+4>>2];if(!f){break e}while(1){d=f;f=H[d>>2];if(f){continue}f=H[d+4>>2];if(f){continue}break}break e}H[e+4>>2]=0;d=e;if(!f){break e}while(1){d=f;f=H[d>>2];if(f){continue}f=H[d+4>>2];if(f){continue}break}}e=H[c+4>>2];f:{if(e){while(1){f=e;e=H[e>>2];if(e){continue}break f}}while(1){f=H[c+8>>2];e=H[f>>2]!=(c|0);c=f;if(e){continue}break}}if(!i){break c}g=i;c=f;if((k|0)!=(c|0)){continue}break}}He(h,i);if(!d){break a}while(1){c=H[d+8>>2];if(c){d=c;continue}break}He(h,d)}if((f|0)!=(k|0)){while(1){n=ha-16|0;ha=n;i=hl(32);g=f+16|0;d=H[g>>2];m=i+24|0;H[m>>2]=0;H[m+4>>2]=0;H[i+16>>2]=d;l=i+20|0;H[l>>2]=m;e=h+4|0;c=H[g+4>>2];j=g+8|0;if((c|0)!=(j|0)){while(1){d=c+16|0;Xe(n+8|0,l,m,d,d);g=H[c+4>>2];g:{if(g){while(1){d=g;g=H[d>>2];if(g){continue}break g}}while(1){d=H[c+8>>2];g=H[d>>2]!=(c|0);c=d;if(g){continue}break}}c=d;if((j|0)!=(c|0)){continue}break}}c=e;d=H[c>>2];h:{if(!d){break h}g=H[i+16>>2];while(1){e=d;if((g|0)>2]){c=e;d=H[c>>2];if(d){continue}break h}d=H[e+4>>2];if(d){continue}break}c=e+4|0}H[i+8>>2]=e;H[i>>2]=0;H[i+4>>2]=0;H[c>>2]=i;d=i;e=H[H[h>>2]>>2];if(e){H[h>>2]=e;d=H[c>>2]}We(H[h+4>>2],d);H[h+8>>2]=H[h+8>>2]+1;ha=n+16|0;e=H[f+4>>2];i:{if(e){while(1){c=e;e=H[c>>2];if(e){continue}break i}}while(1){c=H[f+8>>2];d=H[c>>2]!=(f|0);f=c;if(d){continue}break}}f=c;if((c|0)!=(k|0)){continue}break}}Ie(a+28|0,H[b+24>>2],b+28|0)}}function rb(a,b){var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0;e=ha+-64|0;ha=e;H[e+40>>2]=0;H[e+44>>2]=0;H[e+32>>2]=0;H[e+36>>2]=0;H[e+48>>2]=1065353216;c=H[a+80>>2];H[e+24>>2]=0;H[e+16>>2]=0;H[e+20>>2]=0;a:{if(c){if(c>>>0>=1073741824){break a}g=c<<2;i=hl(g);H[e+16>>2]=i;c=i+g|0;H[e+24>>2]=c;lk(i,0,g);H[e+20>>2]=c;while(1){c=H[H[b>>2]>>2];j=H[b+48>>2]+Sl(H[b+40>>2],H[b+44>>2],h,0)|0;c=c+j|0;n=I[c|0]|I[c+1|0]<<8|(I[c+2|0]<<16|I[c+3|0]<<24);H[e+28>>2]=n;b:{c:{l=H[e+36>>2];d:{if(!l){break d}d=H[e+32>>2];j=n^318;k=Vl(l)>>>0>1;c=j&l-1;e:{if(!k){break e}c=j;if(c>>>0>>0){break e}c=(j>>>0)%(l>>>0)|0}g=c;c=H[d+(g<<2)>>2];if(!c){break d}d=H[c>>2];if(!d){break d}if(!k){k=l-1|0;while(1){c=H[d+4>>2];f:{if((c|0)!=(j|0)){if((g|0)==(c&k)){break f}break d}if((n|0)==H[d+8>>2]){break c}}d=H[d>>2];if(d){continue}break}break d}while(1){c=H[d+4>>2];g:{if((c|0)!=(j|0)){if(c>>>0>=l>>>0){c=(c>>>0)%(l>>>0)|0}if((c|0)==(g|0)){break g}break d}if((n|0)==H[d+8>>2]){break c}}d=H[d>>2];if(d){continue}break}}H[e+12>>2]=m;H[e+8>>2]=n;c=e+8|0;sb(e+56|0,e+32|0,c,c);c=H[a+40>>2];jk(H[H[a>>2]>>2]+N(c,m)|0,e+28|0,c);i=H[e+16>>2];H[i+(h<<2)>>2]=m;m=m+1|0;break b}H[(h<<2)+i>>2]=H[d+12>>2]}c=h+1|0;f=c?f:f+1|0;h=c;d=H[a+80>>2];if(!f&d>>>0>c>>>0){continue}break}if((d|0)!=(m|0)){h:{if(!I[a+84|0]){b=H[a+72>>2];h=H[a+68>>2];if((b|0)==(h|0)){break h}b=b-h>>2;b=b>>>0>1?b:1;c=b&3;k=0;d=0;if(b-1>>>0>=3){f=b&-4;j=0;while(1){g=d<<2;b=g+h|0;H[b>>2]=H[(H[b>>2]<<2)+i>>2];b=h+(g|4)|0;H[b>>2]=H[(H[b>>2]<<2)+i>>2];b=h+(g|8)|0;H[b>>2]=H[(H[b>>2]<<2)+i>>2];b=h+(g|12)|0;H[b>>2]=H[(H[b>>2]<<2)+i>>2];d=d+4|0;j=j+4|0;if((f|0)!=(j|0)){continue}break}}if(!c){break h}while(1){b=h+(d<<2)|0;H[b>>2]=H[(H[b>>2]<<2)+i>>2];d=d+1|0;k=k+1|0;if((c|0)!=(k|0)){continue}break}break h}F[a+84|0]=0;c=a+68|0;b=H[a+68>>2];f=H[a+72>>2]-b>>2;i:{if(f>>>0>>0){tb(c,d-f|0,2176);d=H[a+80>>2];break i}if(d>>>0>=f>>>0){break i}H[a+72>>2]=b+(d<<2)}if(!d){break h}h=H[c>>2];k=0;b=0;if(d-1>>>0>=3){c=d&-4;j=0;while(1){g=b<<2;H[g+h>>2]=H[i+g>>2];f=g|4;H[f+h>>2]=H[f+i>>2];f=g|8;H[f+h>>2]=H[f+i>>2];f=g|12;H[f+h>>2]=H[f+i>>2];b=b+4|0;j=j+4|0;if((c|0)!=(j|0)){continue}break}}c=d&3;if(!c){break h}while(1){f=b<<2;H[f+h>>2]=H[f+i>>2];b=b+1|0;k=k+1|0;if((c|0)!=(k|0)){continue}break}}H[a+80>>2]=m}bl(i)}d=H[e+40>>2];if(d){while(1){a=H[d>>2];bl(d);d=a;if(d){continue}break}}a=H[e+32>>2];H[e+32>>2]=0;if(a){bl(a)}ha=e- -64|0;return m}Ka();X()}function Kc(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0;l=ha-16|0;ha=l;f=H[a+4>>2];a:{b:{if(f){if(la[H[H[a>>2]+52>>2]](a,b,H[H[f+4>>2]+80>>2])|0){break b}break a}if(!(la[H[H[a>>2]+52>>2]](a,b,0)|0)){break a}}n=1;if(!I[a+28|0]){break a}d=H[a+32>>2];i=H[a+8>>2];c=H[i+80>>2];f=0;H[l+8>>2]=0;H[l>>2]=0;H[l+4>>2]=0;c:{d:{e:{if(c){if(c>>>0>=1073741824){break e}c=c<<2;f=hl(c);H[l>>2]=f;e=c+f|0;H[l+8>>2]=e;lk(f,0,c);H[l+4>>2]=e}e=H[b+4>>2];c=H[b>>2];f:{if((e|0)==(c|0)){break f}b=e-c>>2;if(I[i+84|0]){e=b>>>0>1?b:1;h=e&3;b=0;if(e-1>>>0>=3){j=e&-4;e=0;while(1){H[(H[c+(b<<2)>>2]<<2)+f>>2]=b;k=b|1;H[(H[c+(k<<2)>>2]<<2)+f>>2]=k;k=b|2;H[(H[c+(k<<2)>>2]<<2)+f>>2]=k;k=b|3;H[(H[c+(k<<2)>>2]<<2)+f>>2]=k;b=b+4|0;e=e+4|0;if((j|0)!=(e|0)){continue}break}}if(!h){break f}while(1){H[(H[c+(b<<2)>>2]<<2)+f>>2]=b;b=b+1|0;g=g+1|0;if((h|0)!=(g|0)){continue}break}break f}g=b>>>0>1?b:1;j=g&3;h=H[i+68>>2];e=0;b=0;if(g-1>>>0>=3){k=g&-4;g=0;while(1){H[(H[h+(H[c+(b<<2)>>2]<<2)>>2]<<2)+f>>2]=b;m=b|1;H[(H[h+(H[c+(m<<2)>>2]<<2)>>2]<<2)+f>>2]=m;m=b|2;H[(H[h+(H[c+(m<<2)>>2]<<2)>>2]<<2)+f>>2]=m;m=b|3;H[(H[h+(H[c+(m<<2)>>2]<<2)>>2]<<2)+f>>2]=m;b=b+4|0;g=g+4|0;if((k|0)!=(g|0)){continue}break}}if(!j){break f}while(1){H[(H[h+(H[c+(b<<2)>>2]<<2)>>2]<<2)+f>>2]=b;b=b+1|0;e=e+1|0;if((j|0)!=(e|0)){continue}break}}g:{if(!I[d+84|0]){break g}b=H[H[H[a+4>>2]+4>>2]+80>>2];F[d+84|0]=0;e=H[d+68>>2];c=H[d+72>>2]-e>>2;if(c>>>0>>0){tb(d+68|0,b-c|0,2736);break g}if(b>>>0>=c>>>0){break g}H[d+72>>2]=e+(b<<2)}h=H[H[H[a+4>>2]+4>>2]+80>>2];if(!h){break d}c=H[d+68>>2];if(I[i+84|0]){a=0;b=0;if(h-1>>>0>=3){g=h&-4;e=0;while(1){d=b<<2;H[d+c>>2]=H[f+d>>2];i=d|4;H[i+c>>2]=H[f+i>>2];i=d|8;H[i+c>>2]=H[f+i>>2];d=d|12;H[d+c>>2]=H[f+d>>2];b=b+4|0;e=e+4|0;if((g|0)!=(e|0)){continue}break}}e=h&3;if(!e){break c}while(1){d=b<<2;H[d+c>>2]=H[f+d>>2];b=b+1|0;a=a+1|0;if((e|0)!=(a|0)){continue}break}break c}a=H[i+68>>2];e=0;b=0;if(h-1>>>0>=3){i=h&-4;g=0;while(1){d=b<<2;H[d+c>>2]=H[(H[a+d>>2]<<2)+f>>2];j=d|4;H[j+c>>2]=H[(H[a+j>>2]<<2)+f>>2];j=d|8;H[j+c>>2]=H[(H[a+j>>2]<<2)+f>>2];d=d|12;H[d+c>>2]=H[(H[a+d>>2]<<2)+f>>2];b=b+4|0;g=g+4|0;if((i|0)!=(g|0)){continue}break}}d=h&3;if(!d){break c}while(1){g=b<<2;H[g+c>>2]=H[(H[a+g>>2]<<2)+f>>2];b=b+1|0;e=e+1|0;if((d|0)!=(e|0)){continue}break}break c}Ka();X()}if(!f){break a}}bl(f)}ha=l+16|0;return n|0}function Ye(a,b,c,d,e){var f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0;a:{b:{c:{d:{e:{f:{j=a+4|0;g:{if((j|0)==(b|0)){break g}f=I[b+27|0];g=f<<24>>24<0;h=I[e+11|0];i=h<<24>>24;k=(i|0)<0;f=g?H[b+20>>2]:f;h=k?H[e+4>>2]:h;l=f>>>0>>0;m=l?f:h;if(m){k=k?H[e>>2]:e;n=b+16|0;g=g?H[n>>2]:n;n=ok(k,g,m);if(!n){if(f>>>0>h>>>0){break g}break f}if((n|0)>=0){break f}break g}if(f>>>0<=h>>>0){break e}}d=H[b>>2];h:{f=b;i:{if((f|0)==H[a>>2]){break i}j:{if(!d){a=b;while(1){f=H[a+8>>2];h=H[f>>2]==(a|0);a=f;if(h){continue}break}break j}a=d;while(1){f=a;a=H[f+4>>2];if(a){continue}break}}a=I[e+11|0];k=a<<24>>24;h=(k|0)<0;i=I[f+27|0];g=i<<24>>24<0;k:{a=h?H[e+4>>2]:a;i=g?H[f+20>>2]:i;l=a>>>0>>0?a:i;if(l){m=f+16|0;h=ok(g?H[m>>2]:m,h?H[e>>2]:e,l);if(h){break k}}if(a>>>0>i>>>0){break i}break h}if((h|0)>=0){break h}}if(!d){H[c>>2]=b;return b}H[c>>2]=f;return f+4|0}d=H[j>>2];if(!d){H[c>>2]=j;return j}e=(k|0)<0?H[e>>2]:e;b=j;while(1){f=d;d=I[f+27|0];j=d<<24>>24<0;d=j?H[f+20>>2]:d;h=d>>>0>>0;l:{m:{n:{o:{g=h?d:a;p:{if(g){i=f+16|0;j=j?H[i>>2]:i;i=ok(e,j,g);if(!i){if(a>>>0>>0){break p}break o}if((i|0)>=0){break o}break p}if(a>>>0>=d>>>0){break n}}b=f;d=H[f>>2];if(d){continue}break b}d=ok(j,e,g);if(d){break m}}if(h){break l}break b}if((d|0)>=0){break b}}b=f+4|0;d=H[f+4>>2];if(d){continue}break}break b}a=ok(g,k,m);if(a){break d}}if(l){break c}break a}if((a|0)>=0){break a}}d=H[b+4>>2];q:{if(!d){a=b;while(1){f=H[a+8>>2];g=H[f>>2]!=(a|0);a=f;if(g){continue}break}break q}a=d;while(1){f=a;a=H[f>>2];if(a){continue}break}}r:{s:{if((f|0)==(j|0)){break s}g=I[f+27|0];a=g<<24>>24<0;t:{g=a?H[f+20>>2]:g;k=h>>>0>g>>>0?g:h;if(k){l=f+16|0;a=ok((i|0)<0?H[e>>2]:e,a?H[l>>2]:l,k);if(a){break t}}if(h>>>0>>0){break s}break r}if((a|0)>=0){break r}}if(!d){H[c>>2]=b;return b+4|0}H[c>>2]=f;return f}a=H[j>>2];if(!a){H[c>>2]=j;return j}d=(i|0)<0?H[e>>2]:e;b=j;while(1){f=a;a=I[f+27|0];e=a<<24>>24<0;a=e?H[f+20>>2]:a;j=a>>>0>>0;u:{v:{w:{x:{g=j?a:h;y:{if(g){i=f+16|0;e=e?H[i>>2]:i;i=ok(d,e,g);if(!i){if(a>>>0>h>>>0){break y}break x}if((i|0)>=0){break x}break y}if(a>>>0<=h>>>0){break w}}b=f;a=H[f>>2];if(a){continue}break b}a=ok(e,d,g);if(a){break v}}if(j){break u}break b}if((a|0)>=0){break b}}b=f+4|0;a=H[f+4>>2];if(a){continue}break}}H[c>>2]=f;return b}H[c>>2]=b;H[d>>2]=b;return d}function Xj(a,b){var c=0,d=0,e=0,f=0,g=0,h=0;a:{b:{d=b;g=H[b>>2];if(g){c=H[b+4>>2];if(!c){break b}while(1){d=c;c=H[c>>2];if(c){continue}break}}g=H[d+4>>2];if(g){break b}g=0;e=1;break a}H[g+8>>2]=H[d+8>>2];e=0}f=H[d+8>>2];c=H[f>>2];c:{if((d|0)==(c|0)){H[f>>2]=g;if((a|0)==(d|0)){c=0;a=g;break c}c=H[f+4>>2];break c}H[f+4>>2]=g}h=!I[d+12|0];if((b|0)!=(d|0)){f=H[b+8>>2];H[d+8>>2]=f;H[f+((H[H[b+8>>2]>>2]!=(b|0))<<2)>>2]=d;f=H[b>>2];H[d>>2]=f;H[f+8>>2]=d;f=H[b+4>>2];H[d+4>>2]=f;if(f){H[f+8>>2]=d}F[d+12|0]=I[b+12|0];a=(a|0)==(b|0)?d:a}if(!(h|!a)){if(e){while(1){b=I[c+12|0];d:{e=H[c+8>>2];if(H[e>>2]!=(c|0)){if(!b){F[c+12|0]=1;F[e+12|0]=0;d=H[e+4>>2];b=H[d>>2];H[e+4>>2]=b;if(b){H[b+8>>2]=e}H[d+8>>2]=H[e+8>>2];b=H[e+8>>2];H[(((e|0)!=H[b>>2])<<2)+b>>2]=d;H[d>>2]=e;H[e+8>>2]=d;b=H[c>>2];a=(b|0)==(a|0)?c:a;c=H[b+4>>2]}e:{f:{d=H[c>>2];g:{if(!(I[d+12|0]?0:d)){b=H[c+4>>2];if(I[b+12|0]?0:b){break g}F[c+12|0]=0;c=H[c+8>>2];h:{if((c|0)==(a|0)){c=a;break h}if(I[c+12|0]){break d}}F[c+12|0]=1;return}b=H[c+4>>2];if(!b){break f}}if(I[b+12|0]){break f}d=c;break e}F[d+12|0]=1;F[c+12|0]=0;a=H[d+4>>2];H[c>>2]=a;if(a){H[a+8>>2]=c}H[d+8>>2]=H[c+8>>2];a=H[c+8>>2];H[((H[a>>2]!=(c|0))<<2)+a>>2]=d;H[d+4>>2]=c;H[c+8>>2]=d;b=c}c=H[d+8>>2];F[d+12|0]=I[c+12|0];F[c+12|0]=1;F[b+12|0]=1;b=H[c+4>>2];a=H[b>>2];H[c+4>>2]=a;if(a){H[a+8>>2]=c}H[b+8>>2]=H[c+8>>2];a=H[c+8>>2];H[(((c|0)!=H[a>>2])<<2)+a>>2]=b;H[b>>2]=c;H[c+8>>2]=b;return}if(!b){F[c+12|0]=1;F[e+12|0]=0;b=H[c+4>>2];H[e>>2]=b;if(b){H[b+8>>2]=e}H[c+8>>2]=H[e+8>>2];b=H[e+8>>2];H[(((e|0)!=H[b>>2])<<2)+b>>2]=c;H[c+4>>2]=e;H[e+8>>2]=c;a=(a|0)==(e|0)?c:a;c=H[e>>2]}b=H[c>>2];i:{if(!(!b|I[b+12|0])){d=c;break i}d=H[c+4>>2];if(!(I[d+12|0]?0:d)){F[c+12|0]=0;c=H[c+8>>2];if((a|0)!=(c|0)?I[c+12|0]:0){break d}F[c+12|0]=1;return}if(b){if(!I[b+12|0]){d=c;break i}d=H[c+4>>2]}F[d+12|0]=1;F[c+12|0]=0;a=H[d>>2];H[c+4>>2]=a;if(a){H[a+8>>2]=c}H[d+8>>2]=H[c+8>>2];a=H[c+8>>2];H[((H[a>>2]!=(c|0))<<2)+a>>2]=d;H[d>>2]=c;H[c+8>>2]=d;b=c}c=H[d+8>>2];F[d+12|0]=I[c+12|0];F[c+12|0]=1;F[b+12|0]=1;b=H[c>>2];a=H[b+4>>2];H[c>>2]=a;if(a){H[a+8>>2]=c}H[b+8>>2]=H[c+8>>2];a=H[c+8>>2];H[(((c|0)!=H[a>>2])<<2)+a>>2]=b;H[b+4>>2]=c;H[c+8>>2]=b;return}b=H[c+8>>2];c=H[((H[b>>2]==(c|0))<<2)+b>>2];continue}}F[g+12|0]=1}}function Hc(a,b){var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0;g=ha-32|0;ha=g;a:{b:{if(H[a+8>>2]<<5>>>0>=b>>>0){break b}if((b|0)<0){break a}b=(b-1>>>5|0)+1|0;c=hl(b<<2);H[g+24>>2]=b;H[g+20>>2]=0;H[g+16>>2]=c;b=H[a>>2];H[g+12>>2]=0;H[g+8>>2]=b;c=H[a+4>>2];H[g+4>>2]=c&31;H[g>>2]=b+(c>>>3&536870908);f=ha-32|0;ha=f;i=H[g+4>>2];e=H[g+12>>2];j=H[g>>2];h=H[g+8>>2];b=(i-e|0)+(j-h<<3)|0;d=H[g+20>>2];c=b+d|0;H[g+20>>2]=c;if(!((c-1^d-1)>>>0<32?d:0)){H[H[g+16>>2]+((c>>>0<33?0:c-1>>>5|0)<<2)>>2]=0}c=H[g+16>>2]+(d>>>3&536870908)|0;d=d&31;c:{if((d|0)==(e|0)){if((b|0)<=0){break c}if(e){i=32-e|0;d=(b|0)<(i|0)?b:i;i=-1<>>i-d;H[c>>2]=H[c>>2]&(i^-1)|i&H[h>>2];b=b-d|0;h=h+4|0;c=c+(d+e>>>3&536870908)|0}j=c;e=(b|0)/32|0;c=e<<2;d=kk(j,h,c);b=b-(e<<5)|0;if((b|0)<=0){break c}e=c+d|0;b=-1>>>32-b|0;H[e>>2]=H[e>>2]&(b^-1)|b&H[c+h>>2];break c}H[f+28>>2]=e;H[f+24>>2]=h;H[f+20>>2]=i;H[f+16>>2]=j;H[f+12>>2]=d;H[f+8>>2]=c;b=H[f+28>>2];c=H[f+24>>2];h=(H[f+20>>2]-b|0)+(H[f+16>>2]-c<<3)|0;d:{if((h|0)<=0){b=H[f+12>>2];break d}e:{if(!b){b=H[f+12>>2];break e}e=H[f+12>>2];j=32-e|0;k=32-b|0;d=(h|0)<(k|0)?h:k;i=d>>>0>j>>>0?j:d;l=H[f+8>>2];m=H[l>>2]&(-1<>>j-i^-1);j=H[c>>2]&(-1<>>k-d);H[l>>2]=m|(b>>>0>>0?j<>>b-e|0);c=e+i|0;b=c&31;H[f+12>>2]=b;e=l+(c>>>3&536870908)|0;H[f+8>>2]=e;c=d-i|0;if((c|0)>0){H[e>>2]=H[e>>2]&(-1>>>32-c^-1)|j>>>i+H[f+28>>2];H[f+12>>2]=c;b=c}h=h-d|0;c=H[f+24>>2]+4|0;H[f+24>>2]=c}i=-1<=32){j=i^-1;while(1){d=H[f+8>>2];c=H[c>>2];H[d>>2]=j&H[d>>2]|c<>2]=d+4;H[d+4>>2]=i&H[d+4>>2]|c>>>e;c=H[f+24>>2]+4|0;H[f+24>>2]=c;d=h>>>0>63;h=h-32|0;if(d){continue}break}}if((h|0)<=0){break d}d=H[f+8>>2];j=e;e=(e|0)<(h|0)?e:h;j=H[d>>2]&(i&-1>>>j-e^-1);i=H[c>>2]&-1>>>32-h;H[d>>2]=j|i<>2]=b;d=d+(c>>>3&536870908)|0;H[f+8>>2]=d;c=h-e|0;if((c|0)<=0){break d}H[d>>2]=H[d>>2]&(-1>>>32-c^-1)|i>>>e;H[f+12>>2]=c;b=c}c=H[f+8>>2];H[f+4>>2]=b;H[f>>2]=c}ha=f+32|0;b=H[a>>2];H[a>>2]=H[g+16>>2];H[g+16>>2]=b;c=H[a+4>>2];H[a+4>>2]=H[g+20>>2];H[g+20>>2]=c;c=H[a+8>>2];H[a+8>>2]=H[g+24>>2];H[g+24>>2]=c;if(!b){break b}bl(b)}ha=g+32|0;return}Ka();X()}function wg(a){a=a|0;var b=0,c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0;g=ha-16|0;ha=g;b=H[a+64>>2];a:{if(!b){break a}i=la[H[H[b>>2]+32>>2]](b)|0;if(!i){break a}n=(H[i+28>>2]-H[i+24>>2]>>2)-H[i+44>>2]|0;b=H[a+56>>2];d=H[b+8>>2];b:{if((H[b+12>>2]-d|0)<5){break b}H[g+8>>2]=0;H[g>>2]=0;H[g+4>>2]=0;c:{d:{while(1){e:{f:{if(!H[H[(c<<2)+d>>2]+56>>2]){break f}h=la[H[H[a>>2]+56>>2]](a,c)|0;if(!h){break f}if(H[g+8>>2]!=(f|0)){H[f>>2]=h;f=f+4|0;H[g+4>>2]=f;break f}d=H[g>>2];j=f-d|0;f=j>>2;b=f+1|0;if(b>>>0>=1073741824){break e}e=j>>1;e=j>>>0<2147483644?b>>>0>>0?e:b:1073741823;if(e){if(e>>>0>=1073741824){break d}b=hl(e<<2)}else{b=0}f=b+(f<<2)|0;H[f>>2]=h;f=f+4|0;if((j|0)>0){jk(b,d,j)}H[g+8>>2]=b+(e<<2);H[g+4>>2]=f;H[g>>2]=b;if(!d){break f}bl(d)}m=H[a+56>>2];d=H[m+8>>2];c=c+1|0;if((c|0)>2]-d>>2){continue}break c}break}Ka();X()}_a();X()}o=H[i+24>>2];b=H[i+28>>2];g:{if((o|0)==(b|0)){h=H[g>>2];break g}b=b-o>>2;q=b>>>0>1?b:1;h=H[g>>2];b=f-h>>2;r=b>>>0>1?b:1;while(1){e=H[(p<<2)+o>>2];if((e|0)!=-1){h:{if((e|0)<0){c=(e>>>0)%3|0;b=-1;break h}b=(e>>>0)/3|0;c=e-N(b,3)|0;b=H[(H[m+96>>2]+N(b,12)|0)+(c<<2)>>2]}i:{j:{if(c){c=e-1|0;break j}c=e+2|0;if((c|0)!=-1){break j}l=0;break i}l=0;c=H[H[i+12>>2]+(c<<2)>>2];if((c|0)==-1){break i}k:{if((c>>>0)%3|0){d=c-1|0;break k}d=c+2|0;if((d|0)==-1){break i}}j=e;while(1){c=(d|0)<0?-1:H[(H[m+96>>2]+N((d>>>0)/3|0,12)|0)+((d>>>0)%3<<2)>>2];l:{if((b|0)==(c|0)){c=0;if((f|0)==(h|0)){c=b;break l}m:{while(1){k=H[H[(c<<2)+h>>2]+28>>2];if(H[k+(d<<2)>>2]!=H[k+(j<<2)>>2]){break m}c=c+1|0;if((r|0)!=(c|0)){continue}break}c=b;break l}c=b}l=l+1|0}if((d|0)==(e|0)|(d|0)==-1){break i}n:{if((d>>>0)%3|0){b=d-1|0;break n}b=d+2|0;if((b|0)==-1){break i}}k=H[H[i+12>>2]+(b<<2)>>2];if((k|0)==-1){break i}b=c;j=d;c=k+((k>>>0)%3|0?-1:2)|0;d=c;if((c|0)!=-1){continue}break}}c=1;b=e+1|0;b=(b>>>0)%3|0?b:e-2|0;o:{if((b|0)==-1){break o}b=H[H[i+12>>2]+(b<<2)>>2];if((b|0)==-1){break o}c=b+1|0;c=(((c>>>0)%3|0?c:b-2|0)|0)==-1}n=(l+n|0)-((c^-1)&(l|0)!=0)|0}p=p+1|0;if((q|0)!=(p|0)){continue}break}}if(!h){break b}bl(h)}H[a+52>>2]=n}ha=g+16|0}function yk(a,b,c,d,e,f,g,h,i){var j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0;j=ha-128|0;ha=j;a:{b:{c:{if(!Ok(f,g,h,i,0,0,0,0)){break c}m=i&65535;n=i>>>16&32767;d:{e:{if((n|0)!=32767){l=4;if(n){break e}l=f|h|(g|m)?3:2;break d}l=!(f|h|(g|m))}}r=e>>>16|0;o=r&32767;if((o|0)==32767){break c}if(l){break b}}Vk(j+16|0,b,c,d,e,f,g,h,i);e=H[j+16>>2];d=H[j+20>>2];c=H[j+24>>2];b=H[j+28>>2];Qk(j,e,d,c,b,e,d,c,b);d=H[j+8>>2];e=H[j+12>>2];h=H[j>>2];i=H[j+4>>2];break a}m=e&65535|o<<16;p=m;l=d;m=h;q=i>>>16&32767;k=i&65535|q<<16;if((Ok(b,c,l,p,f,g,h,k)|0)<=0){if(Ok(b,c,l,p,f,g,m,k)){h=b;i=c;break a}Vk(j+112|0,b,c,d,e,0,0,0,0);d=H[j+120>>2];e=H[j+124>>2];h=H[j+112>>2];i=H[j+116>>2];break a}if(o){i=c;h=b}else{Vk(j+96|0,b,c,l,p,0,0,0,1081540608);h=H[j+108>>2];p=h;l=H[j+104>>2];o=(h>>>16|0)-120|0;i=H[j+100>>2];h=H[j+96>>2]}if(!q){Vk(j+80|0,f,g,m,k,0,0,0,1081540608);f=H[j+92>>2];k=f;m=H[j+88>>2];q=(k>>>16|0)-120|0;g=H[j+84>>2];f=H[j+80>>2]}s=k&65535|65536;p=p&65535|65536;if((o|0)>(q|0)){while(1){t=l-m|0;k=(g|0)==(i|0)&f>>>0>h>>>0|g>>>0>i>>>0;n=(p-((l>>>0>>0)+s|0)|0)-(t>>>0>>0)|0;k=t-k|0;f:{if((n|0)>0|(n|0)>=0){l=h;h=h-f|0;i=i-((f>>>0>l>>>0)+g|0)|0;if(!(h|k|(i|n))){Vk(j+32|0,b,c,d,e,0,0,0,0);d=H[j+40>>2];e=H[j+44>>2];h=H[j+32>>2];i=H[j+36>>2];break a}n=n<<1|k>>>31;l=k<<1|i>>>31;p=n;break f}n=p<<1|l>>>31;l=l<<1|i>>>31;p=n}n=i<<1|h>>>31;h=h<<1;i=n;o=o-1|0;if((q|0)<(o|0)){continue}break}o=q}q=l-m|0;n=(g|0)==(i|0)&f>>>0>h>>>0|g>>>0>i>>>0;k=(p-((l>>>0>>0)+s|0)|0)-(q>>>0>>0)|0;m=q-n|0;g:{if((k|0)<0){m=l;k=p;break g}l=h;h=h-f|0;i=i-((f>>>0>l>>>0)+g|0)|0;if(h|m|(i|k)){break g}Vk(j+48|0,b,c,d,e,0,0,0,0);d=H[j+56>>2];e=H[j+60>>2];h=H[j+48>>2];i=H[j+52>>2];break a}if((k|0)==65535|k>>>0<65535){while(1){b=i>>>31|0;o=o-1|0;p=i<<1|h>>>31;h=h<<1;i=p;c=b;b=m;k=k<<1|b>>>31;m=c|b<<1;if(k>>>0<65536){continue}break}}b=r&32768;if((o|0)<=0){Vk(j- -64|0,h,i,m,k&65535|(b|o+120)<<16,0,0,0,1065811968);d=H[j+72>>2];e=H[j+76>>2];h=H[j+64>>2];i=H[j+68>>2];break a}d=m;e=k&65535|(b|o)<<16}H[a>>2]=h;H[a+4>>2]=i;H[a+8>>2]=d;H[a+12>>2]=e;ha=j+128|0}function Hj(a,b){var c=0,d=0,e=0,f=0;f=ha-16|0;ha=f;e=hl(32);H[f>>2]=e;H[f+4>>2]=30;H[f+8>>2]=-2147483616;F[e+30|0]=0;c=I[1240]|I[1241]<<8|(I[1242]<<16|I[1243]<<24);d=I[1236]|I[1237]<<8|(I[1238]<<16|I[1239]<<24);F[e+22|0]=d;F[e+23|0]=d>>>8;F[e+24|0]=d>>>16;F[e+25|0]=d>>>24;F[e+26|0]=c;F[e+27|0]=c>>>8;F[e+28|0]=c>>>16;F[e+29|0]=c>>>24;c=I[1234]|I[1235]<<8|(I[1236]<<16|I[1237]<<24);d=I[1230]|I[1231]<<8|(I[1232]<<16|I[1233]<<24);F[e+16|0]=d;F[e+17|0]=d>>>8;F[e+18|0]=d>>>16;F[e+19|0]=d>>>24;F[e+20|0]=c;F[e+21|0]=c>>>8;F[e+22|0]=c>>>16;F[e+23|0]=c>>>24;c=I[1226]|I[1227]<<8|(I[1228]<<16|I[1229]<<24);d=I[1222]|I[1223]<<8|(I[1224]<<16|I[1225]<<24);F[e+8|0]=d;F[e+9|0]=d>>>8;F[e+10|0]=d>>>16;F[e+11|0]=d>>>24;F[e+12|0]=c;F[e+13|0]=c>>>8;F[e+14|0]=c>>>16;F[e+15|0]=c>>>24;c=I[1218]|I[1219]<<8|(I[1220]<<16|I[1221]<<24);d=I[1214]|I[1215]<<8|(I[1216]<<16|I[1217]<<24);F[e|0]=d;F[e+1|0]=d>>>8;F[e+2|0]=d>>>16;F[e+3|0]=d>>>24;F[e+4|0]=c;F[e+5|0]=c>>>8;F[e+6|0]=c>>>16;F[e+7|0]=c>>>24;e=a+4|0;ki(e,f,b);if(F[f+11|0]<0){bl(H[f>>2])}a=hl(32);H[f>>2]=a;H[f+4>>2]=29;H[f+8>>2]=-2147483616;F[a+29|0]=0;c=I[1308]|I[1309]<<8|(I[1310]<<16|I[1311]<<24);d=I[1304]|I[1305]<<8|(I[1306]<<16|I[1307]<<24);F[a+21|0]=d;F[a+22|0]=d>>>8;F[a+23|0]=d>>>16;F[a+24|0]=d>>>24;F[a+25|0]=c;F[a+26|0]=c>>>8;F[a+27|0]=c>>>16;F[a+28|0]=c>>>24;c=I[1303]|I[1304]<<8|(I[1305]<<16|I[1306]<<24);d=I[1299]|I[1300]<<8|(I[1301]<<16|I[1302]<<24);F[a+16|0]=d;F[a+17|0]=d>>>8;F[a+18|0]=d>>>16;F[a+19|0]=d>>>24;F[a+20|0]=c;F[a+21|0]=c>>>8;F[a+22|0]=c>>>16;F[a+23|0]=c>>>24;c=I[1295]|I[1296]<<8|(I[1297]<<16|I[1298]<<24);d=I[1291]|I[1292]<<8|(I[1293]<<16|I[1294]<<24);F[a+8|0]=d;F[a+9|0]=d>>>8;F[a+10|0]=d>>>16;F[a+11|0]=d>>>24;F[a+12|0]=c;F[a+13|0]=c>>>8;F[a+14|0]=c>>>16;F[a+15|0]=c>>>24;c=I[1287]|I[1288]<<8|(I[1289]<<16|I[1290]<<24);d=I[1283]|I[1284]<<8|(I[1285]<<16|I[1286]<<24);F[a|0]=d;F[a+1|0]=d>>>8;F[a+2|0]=d>>>16;F[a+3|0]=d>>>24;F[a+4|0]=c;F[a+5|0]=c>>>8;F[a+6|0]=c>>>16;F[a+7|0]=c>>>24;ki(e,f,b);if(F[f+11|0]<0){bl(H[f>>2])}ha=f+16|0} -function Pi(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,f=0,g=0,h=0;f=ha+-64|0;ha=f;a:{b:{c:{d:{e:{f:{if(!b){break f}e=sk(c);if(e>>>0>=4294967280){break e}g:{h:{if(e>>>0>=11){g=e+16&-16;a=hl(g);H[f+56>>2]=g|-2147483648;H[f+48>>2]=a;H[f+52>>2]=e;break h}F[f+59|0]=e;a=f+48|0;if(!e){break g}}jk(a,c,e)}F[a+e|0]=0;e=sk(d);if(e>>>0>=4294967280){break d}i:{j:{if(e>>>0>=11){g=e+16&-16;a=hl(g);H[f+40>>2]=g|-2147483648;H[f+32>>2]=a;H[f+36>>2]=e;break j}F[f+43|0]=e;a=f+32|0;if(!e){break i}}jk(a,d,e)}F[a+e|0]=0;e=sk(c);if(e>>>0>=4294967280){break c}k:{l:{if(e>>>0>=11){g=e+16&-16;a=hl(g);H[f+24>>2]=g|-2147483648;H[f+16>>2]=a;H[f+20>>2]=e;break l}F[f+27|0]=e;a=f+16|0;if(!e){break k}}jk(a,c,e)}F[a+e|0]=0;c=sk(d);if(c>>>0>=4294967280){break b}m:{n:{if(c>>>0>=11){e=c+16&-16;a=hl(e);H[f+8>>2]=e|-2147483648;H[f>>2]=a;H[f+4>>2]=c;break n}F[f+11|0]=c;a=f;if(!c){break m}}jk(a,d,c)}F[a+c|0]=0;e=ha-48|0;ha=e;d=dc(b,f+16|0);if((d|0)!=(b+4|0)){a=H[d+4>>2];o:{if(!a){a=d;while(1){c=H[a+8>>2];g=H[c>>2]!=(a|0);a=c;if(g){continue}break}break o}while(1){c=a;a=H[a>>2];if(a){continue}break}}if((d|0)==H[b>>2]){H[b>>2]=c}H[b+8>>2]=H[b+8>>2]-1;Xj(H[b+4>>2],d);a=H[d+28>>2];if(a){H[d+32>>2]=a;bl(a)}if(F[d+27|0]<0){bl(H[d+16>>2])}bl(d)}g=0;H[e+8>>2]=0;H[e>>2]=0;H[e+4>>2]=0;c=I[f+11|0];d=c<<24>>24;p:{q:{h=H[f+4>>2];a=(d|0)<0?h:c;if(a){if((a|0)<0){break q}c=a;g=hl(a);a=lk(g,0,a);c=c+a|0;H[e+8>>2]=c;H[e+4>>2]=c;H[e>>2]=a;h=H[f+4>>2];c=I[f+11|0];d=c}a=d<<24>>24<0;jk(g,a?H[f>>2]:f,a?h:c);break p}Ka();X()}r:{if(F[f+27|0]>=0){H[e+24>>2]=H[f+24>>2];a=H[f+20>>2];H[e+16>>2]=H[f+16>>2];H[e+20>>2]=a;break r}nl(e+16|0,H[f+16>>2],H[f+20>>2])}Vj(e+28|0,e);a=e+16|0;Yj(e+40|0,b,a,a);a=H[e+28>>2];if(a){H[e+32>>2]=a;bl(a)}if(F[e+27|0]<0){bl(H[e+16>>2])}a=H[e>>2];if(a){H[e+4>>2]=a;bl(a)}ha=e+48|0;if(F[f+11|0]<0){bl(H[f>>2])}if(F[f+27|0]<0){bl(H[f+16>>2])}if(F[f+43|0]<0){bl(H[f+32>>2])}if(F[f+59|0]>=0){break f}bl(H[f+48>>2])}ha=f- -64|0;a=(b|0)!=0;break a}Qe();X()}Qe();X()}Qe();X()}Qe();X()}return a|0}function Id(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0;H[a+8>>2]=e;o=a+32|0;f=H[o>>2];h=H[a+36>>2]-f>>2;a:{if(h>>>0>>0){Na(o,e-h|0);break a}if(e>>>0>=h>>>0){break a}H[a+36>>2]=f+(e<<2)}b:{if(!d){break b}g=H[b>>2];c:{if((d|0)<2){h=g;break c}f=1;h=d-1|0;n=h&1;d:{if((d|0)==2){h=g;break d}j=h&-2;h=g;while(1){l=(f<<2)+b|0;m=H[l+4>>2];k=H[l>>2];q=(k|0)<(h|0);h=q?k:h;l=(h|0)>(m|0);h=l?m:h;g=q?g:(g|0)<(k|0)?k:g;g=l?g:(g|0)<(m|0)?m:g;f=f+2|0;i=i+2|0;if((j|0)!=(i|0)){continue}break}}if(!n){break c}i=H[(f<<2)+b>>2];f=(i|0)<(h|0);h=f?i:h;g=f?g:(g|0)<(i|0)?i:g}H[a+16>>2]=g;H[a+12>>2]=h;f=(g>>31)-((h>>31)+(g>>>0>>0)|0)|0;h=g-h|0;if(!f&h>>>0>2147483646|f){break b}h=h+1|0;H[a+20>>2]=h;f=h>>>1|0;H[a+24>>2]=f;H[a+28>>2]=0-f;if(h&1){break b}H[a+24>>2]=f-1}p=d-e|0;e:{if((p|0)<=0){g=H[a+8>>2];break e}g=H[a+8>>2];if((g|0)<=0){break e}q=0-e<<2;while(1){if((g|0)>0){d=p<<2;n=d+c|0;j=b+d|0;i=j+q|0;l=H[o>>2];h=0;while(1){f=l;if((g|0)>0){f=H[o>>2];g=0;while(1){k=g<<2;m=H[k+i>>2];d=H[a+16>>2];f:{if((m|0)>(d|0)){H[f+k>>2]=d;break f}k=f+k|0;d=H[a+12>>2];if((d|0)>(m|0)){H[k>>2]=d;break f}H[k>>2]=m}g=g+1|0;if((g|0)>2]){continue}break}}g=h<<2;d=g+n|0;g=H[g+j>>2]-H[f+g>>2]|0;H[d>>2]=g;g:{if((g|0)>2]){g=g+H[a+20>>2]|0}else{if((g|0)<=H[a+24>>2]){break g}g=g-H[a+20>>2]|0}H[d>>2]=g}i=f;g=H[a+8>>2];h=h+1|0;if((g|0)>(h|0)){continue}break}}p=p-e|0;if((p|0)>0){continue}break}}h=0;d=(e&1073741823)!=(e|0)?-1:e<<2;l=lk(hl(d),0,d);if((g|0)>0){e=H[a+32>>2];i=l;while(1){f=e;if((g|0)>0){f=H[o>>2];g=0;while(1){j=g<<2;n=H[j+i>>2];d=H[a+16>>2];h:{if((n|0)>(d|0)){H[f+j>>2]=d;break h}j=f+j|0;d=H[a+12>>2];if((d|0)>(n|0)){H[j>>2]=d;break h}H[j>>2]=n}g=g+1|0;if((g|0)>2]){continue}break}}g=h<<2;d=g+c|0;g=H[b+g>>2]-H[f+g>>2]|0;H[d>>2]=g;i:{if((g|0)>2]){g=g+H[a+20>>2]|0}else{if((g|0)<=H[a+24>>2]){break i}g=g-H[a+20>>2]|0}H[d>>2]=g}i=f;g=H[a+8>>2];h=h+1|0;if((g|0)>(h|0)){continue}break}}bl(l);return 1}function Wj(a,b){var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0;j=ha-32|0;ha=j;H[a+4>>2]=0;H[a+8>>2]=0;c=a+16|0;H[c>>2]=0;H[c+4>>2]=0;i=a+4|0;H[a>>2]=i;H[a+12>>2]=c;f=H[b>>2];k=b+4|0;if((f|0)!=(k|0)){while(1){g=ha-16|0;ha=g;c=f+16|0;h=Ye(a,i,g+12|0,g+8|0,c);d=H[h>>2];if(d){c=0}else{d=hl(40);e=d+16|0;a:{if(F[c+11|0]>=0){m=H[c+4>>2];H[e>>2]=H[c>>2];H[e+4>>2]=m;H[e+8>>2]=H[c+8>>2];break a}nl(e,H[c>>2],H[c+4>>2])}Vj(d+28|0,c+12|0);H[d+8>>2]=H[g+12>>2];H[d>>2]=0;H[d+4>>2]=0;H[h>>2]=d;c=d;e=H[H[a>>2]>>2];if(e){H[a>>2]=e;c=H[h>>2]}We(H[a+4>>2],c);H[a+8>>2]=H[a+8>>2]+1;c=1}F[j+28|0]=c;H[j+24>>2]=d;ha=g+16|0;c=H[f+4>>2];b:{if(c){while(1){f=c;c=H[c>>2];if(c){continue}break b}}while(1){c=f;f=H[f+8>>2];if((c|0)!=H[f>>2]){continue}break}}if((f|0)!=(k|0)){continue}break}}f=H[b+12>>2];m=b+16|0;if((f|0)!=(m|0)){g=a+12|0;while(1){n=hl(24);Wj(n,H[f+28>>2]);b=f+16|0;H[j+16>>2]=b;c:{d:{c=H[g+4>>2];e:{if(!c){d=g+4|0;b=d;break e}d=I[b+11|0];e=d<<24>>24<0;h=e?H[b>>2]:b;e=e?H[b+4>>2]:d;while(1){b=c;i=I[c+27|0];d=i<<24>>24<0;c=d?H[c+20>>2]:i;i=c>>>0>>0;f:{g:{h:{i:{k=i?c:e;j:{if(k){l=b+16|0;d=d?H[l>>2]:l;l=ok(h,d,k);if(!l){if(c>>>0>e>>>0){break j}break i}if((l|0)>=0){break i}break j}if(c>>>0<=e>>>0){break h}}d=b;c=H[b>>2];if(c){continue}break e}c=ok(d,h,k);if(c){break g}}if(i){break f}break d}if((c|0)>=0){break d}}c=H[b+4>>2];if(c){continue}break}d=b+4|0}c=hl(32);h=c+16|0;e=H[j+16>>2];k:{if(F[e+11|0]>=0){i=H[e+4>>2];H[h>>2]=H[e>>2];H[h+4>>2]=i;H[h+8>>2]=H[e+8>>2];break k}nl(h,H[e>>2],H[e+4>>2])}H[c+8>>2]=b;H[c>>2]=0;H[c+4>>2]=0;H[c+28>>2]=0;H[d>>2]=c;b=c;e=H[H[g>>2]>>2];if(e){H[g>>2]=e;b=H[d>>2]}We(H[g+4>>2],b);H[g+8>>2]=H[g+8>>2]+1;b=1;break c}c=b;b=0}F[j+28|0]=b;H[j+24>>2]=c;c=H[j+24>>2];b=H[c+28>>2];H[c+28>>2]=n;if(b){Ii(b+12|0,H[b+16>>2]);Ji(b,H[b+4>>2]);bl(b)}c=H[f+4>>2];l:{if(c){while(1){f=c;c=H[c>>2];if(c){continue}break l}}while(1){b=f;f=H[f+8>>2];if((b|0)!=H[f>>2]){continue}break}}if((f|0)!=(m|0)){continue}break}}ha=j+32|0;return a}function xf(a,b,c,d,e,f,g,h){var i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0;a:{b:{if(!f){break b}while(1){if((e|0)<=(h|0)|(f|0)<=(h|0)){break a}if(!e){break b}i=H[d>>2];p=H[i>>2];c:{d:{q=H[i+4>>2]-p>>3;k=H[b>>2];e:{if(q>>>0<=k>>>0){break e}i=p+(k<<3)|0;while(1){l=H[a>>2];if(l>>>0>=q>>>0){break e}if(K[i>>2]>=K[p+(l<<3)>>2]){a=a+4|0;e=e-1|0;if(e){continue}break b}break}f:{g:{if((e|0)<(f|0)){r=(f|0)/2|0;l=(r<<2)+b|0;h:{if((a|0)==(b|0)){k=b;break h}m=H[l>>2];if(m>>>0>=q>>>0){break e}j=b-a>>2;o=j>>>1|0;k=(o<<2)+a|0;i=H[k>>2];if(i>>>0>=q>>>0){break e}n=H[p+(m<<3)>>2];i=n>>>0>2];k=i?a:k+4|0;i=i?o:j+(o^-1)|0;if(!i){break h}while(1){o=i>>>1|0;m=(o<<2)+k|0;j=H[m>>2];if(j>>>0>=q>>>0){break e}j=n>>>0>2];k=j?k:m+4|0;i=j?o:(o^-1)+i|0;if(i){continue}break}}o=k-a>>2;break g}if((e|0)==1){H[a>>2]=k;H[b>>2]=l;return}o=(e|0)/2|0;k=(o<<2)+a|0;l=c;if((l|0)!=(b|0)){i=c-b>>2;l=H[k>>2];if(l>>>0>=q>>>0){break f}n=p+(l<<3)|0;l=b;while(1){r=i>>>1|0;m=(r<<2)+l|0;j=H[m>>2];if(j>>>0>=q>>>0){break e}j=K[p+(j<<3)>>2]>2];l=j?m+4|0:l;i=j?(r^-1)+i|0:r;if(i){continue}break}}r=l-b>>2}f=f-r|0;e=e-o|0;i=l;if((b|0)==(k|0)){break c}i=k;if((b|0)==(l|0)){break c}if((k+4|0)!=(b|0)){break d}j=H[k>>2];i=b;b=l-b|0;i=kk(k,i,b)+b|0;H[i>>2]=j;break c}}Yc();X()}if((b+4|0)==(l|0)){b=l-4|0;j=H[b>>2];i=l;if((b|0)!=(k|0)){b=b-k|0;i=l-b|0;kk(i,k,b)}H[k>>2]=j;break c}i=b;m=k;p=l-b>>2;j=p;s=b-k>>2;n=s;if((j|0)==(n|0)){while(1){j=H[m>>2];H[m>>2]=H[i>>2];H[i>>2]=j;i=i+4|0;m=m+4|0;if((m|0)!=(b|0)){continue}break}i=b;break c}while(1){b=n;n=j;j=(b|0)%(j|0)|0;if(j){continue}break}if(n){n=(n<<2)+k|0;while(1){n=n-4|0;q=s<<2;m=n+q|0;i=H[n>>2];j=n;while(1){b=j;j=m;H[b>>2]=H[j>>2];b=l-j>>2;m=(b|0)>(s|0)?j+q|0:(s-b<<2)+k|0;if((n|0)!=(m|0)){continue}break}H[j>>2]=i;if((k|0)!=(n|0)){continue}break}}i=(p<<2)+k|0}i:{if((o+r|0)<(e+f|0)){xf(a,k,i,d,o,r,g,h);a=i;b=l;break i}xf(i,l,c,d,e,f,g,h);f=r;e=o;c=i;b=k}if(f){continue}break}}return}tf(a,b,c,d,e,f,g)}function rg(a,b,c,d,e,f,g,h){var i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0;a:{b:{if(!f){break b}while(1){if((e|0)<=(h|0)|(f|0)<=(h|0)){break a}if(!e){break b}i=H[d>>2];p=H[i>>2];c:{d:{q=H[i+4>>2]-p>>3;k=H[b>>2];e:{if(q>>>0<=k>>>0){break e}i=p+(k<<3)|0;while(1){l=H[a>>2];if(l>>>0>=q>>>0){break e}if(K[i>>2]>=K[p+(l<<3)>>2]){a=a+4|0;e=e-1|0;if(e){continue}break b}break}f:{g:{if((e|0)<(f|0)){r=(f|0)/2|0;l=(r<<2)+b|0;h:{if((a|0)==(b|0)){k=b;break h}m=H[l>>2];if(m>>>0>=q>>>0){break e}j=b-a>>2;o=j>>>1|0;k=(o<<2)+a|0;i=H[k>>2];if(i>>>0>=q>>>0){break e}n=H[p+(m<<3)>>2];i=n>>>0>2];k=i?a:k+4|0;i=i?o:j+(o^-1)|0;if(!i){break h}while(1){o=i>>>1|0;m=(o<<2)+k|0;j=H[m>>2];if(j>>>0>=q>>>0){break e}j=n>>>0>2];k=j?k:m+4|0;i=j?o:(o^-1)+i|0;if(i){continue}break}}o=k-a>>2;break g}if((e|0)==1){H[a>>2]=k;H[b>>2]=l;return}o=(e|0)/2|0;k=(o<<2)+a|0;l=c;if((l|0)!=(b|0)){i=c-b>>2;l=H[k>>2];if(l>>>0>=q>>>0){break f}n=p+(l<<3)|0;l=b;while(1){r=i>>>1|0;m=(r<<2)+l|0;j=H[m>>2];if(j>>>0>=q>>>0){break e}j=K[p+(j<<3)>>2]>2];l=j?m+4|0:l;i=j?(r^-1)+i|0:r;if(i){continue}break}}r=l-b>>2}f=f-r|0;e=e-o|0;i=l;if((b|0)==(k|0)){break c}i=k;if((b|0)==(l|0)){break c}if((k+4|0)!=(b|0)){break d}j=H[k>>2];i=b;b=l-b|0;i=kk(k,i,b)+b|0;H[i>>2]=j;break c}}Yc();X()}if((b+4|0)==(l|0)){b=l-4|0;j=H[b>>2];i=l;if((b|0)!=(k|0)){b=b-k|0;i=l-b|0;kk(i,k,b)}H[k>>2]=j;break c}i=b;m=k;p=l-b>>2;j=p;s=b-k>>2;n=s;if((j|0)==(n|0)){while(1){j=H[m>>2];H[m>>2]=H[i>>2];H[i>>2]=j;i=i+4|0;m=m+4|0;if((m|0)!=(b|0)){continue}break}i=b;break c}while(1){b=n;n=j;j=(b|0)%(j|0)|0;if(j){continue}break}if(n){n=(n<<2)+k|0;while(1){n=n-4|0;q=s<<2;m=n+q|0;i=H[n>>2];j=n;while(1){b=j;j=m;H[b>>2]=H[j>>2];b=l-j>>2;m=(b|0)>(s|0)?j+q|0:(s-b<<2)+k|0;if((n|0)!=(m|0)){continue}break}H[j>>2]=i;if((k|0)!=(n|0)){continue}break}}i=(p<<2)+k|0}i:{if((o+r|0)<(e+f|0)){rg(a,k,i,d,o,r,g,h);a=i;b=l;break i}rg(i,l,c,d,e,f,g,h);f=r;e=o;c=i;b=k}if(f){continue}break}}return}tf(a,b,c,d,e,f,g)}function rf(a,b,c,d,e,f,g,h){var i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0;a:{b:{if(!f){break b}while(1){if((e|0)<=(h|0)|(f|0)<=(h|0)){break a}if(!e){break b}i=H[d>>2];p=H[i>>2];c:{d:{q=H[i+4>>2]-p>>3;k=H[b>>2];e:{if(q>>>0<=k>>>0){break e}i=p+(k<<3)|0;while(1){l=H[a>>2];if(l>>>0>=q>>>0){break e}if(K[i>>2]>=K[p+(l<<3)>>2]){a=a+4|0;e=e-1|0;if(e){continue}break b}break}f:{g:{if((e|0)<(f|0)){r=(f|0)/2|0;l=(r<<2)+b|0;h:{if((a|0)==(b|0)){k=b;break h}m=H[l>>2];if(m>>>0>=q>>>0){break e}j=b-a>>2;o=j>>>1|0;k=(o<<2)+a|0;i=H[k>>2];if(i>>>0>=q>>>0){break e}n=H[p+(m<<3)>>2];i=n>>>0>2];k=i?a:k+4|0;i=i?o:j+(o^-1)|0;if(!i){break h}while(1){o=i>>>1|0;m=(o<<2)+k|0;j=H[m>>2];if(j>>>0>=q>>>0){break e}j=n>>>0>2];k=j?k:m+4|0;i=j?o:(o^-1)+i|0;if(i){continue}break}}o=k-a>>2;break g}if((e|0)==1){H[a>>2]=k;H[b>>2]=l;return}o=(e|0)/2|0;k=(o<<2)+a|0;l=c;if((l|0)!=(b|0)){i=c-b>>2;l=H[k>>2];if(l>>>0>=q>>>0){break f}n=p+(l<<3)|0;l=b;while(1){r=i>>>1|0;m=(r<<2)+l|0;j=H[m>>2];if(j>>>0>=q>>>0){break e}j=K[p+(j<<3)>>2]>2];l=j?m+4|0:l;i=j?(r^-1)+i|0:r;if(i){continue}break}}r=l-b>>2}f=f-r|0;e=e-o|0;i=l;if((b|0)==(k|0)){break c}i=k;if((b|0)==(l|0)){break c}if((k+4|0)!=(b|0)){break d}j=H[k>>2];i=b;b=l-b|0;i=kk(k,i,b)+b|0;H[i>>2]=j;break c}}Yc();X()}if((b+4|0)==(l|0)){b=l-4|0;j=H[b>>2];i=l;if((b|0)!=(k|0)){b=b-k|0;i=l-b|0;kk(i,k,b)}H[k>>2]=j;break c}i=b;m=k;p=l-b>>2;j=p;s=b-k>>2;n=s;if((j|0)==(n|0)){while(1){j=H[m>>2];H[m>>2]=H[i>>2];H[i>>2]=j;i=i+4|0;m=m+4|0;if((m|0)!=(b|0)){continue}break}i=b;break c}while(1){b=n;n=j;j=(b|0)%(j|0)|0;if(j){continue}break}if(n){n=(n<<2)+k|0;while(1){n=n-4|0;q=s<<2;m=n+q|0;i=H[n>>2];j=n;while(1){b=j;j=m;H[b>>2]=H[j>>2];b=l-j>>2;m=(b|0)>(s|0)?j+q|0:(s-b<<2)+k|0;if((n|0)!=(m|0)){continue}break}H[j>>2]=i;if((k|0)!=(n|0)){continue}break}}i=(p<<2)+k|0}i:{if((o+r|0)<(e+f|0)){rf(a,k,i,d,o,r,g,h);a=i;b=l;break i}rf(i,l,c,d,e,f,g,h);f=r;e=o;c=i;b=k}if(f){continue}break}}return}tf(a,b,c,d,e,f,g)}function og(a,b,c,d,e,f,g,h){var i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0;a:{b:{if(!f){break b}while(1){if((e|0)<=(h|0)|(f|0)<=(h|0)){break a}if(!e){break b}i=H[d>>2];p=H[i>>2];c:{d:{q=H[i+4>>2]-p>>3;k=H[b>>2];e:{if(q>>>0<=k>>>0){break e}i=p+(k<<3)|0;while(1){l=H[a>>2];if(l>>>0>=q>>>0){break e}if(K[i>>2]>=K[p+(l<<3)>>2]){a=a+4|0;e=e-1|0;if(e){continue}break b}break}f:{g:{if((e|0)<(f|0)){r=(f|0)/2|0;l=(r<<2)+b|0;h:{if((a|0)==(b|0)){k=b;break h}m=H[l>>2];if(m>>>0>=q>>>0){break e}j=b-a>>2;o=j>>>1|0;k=(o<<2)+a|0;i=H[k>>2];if(i>>>0>=q>>>0){break e}n=H[p+(m<<3)>>2];i=n>>>0>2];k=i?a:k+4|0;i=i?o:j+(o^-1)|0;if(!i){break h}while(1){o=i>>>1|0;m=(o<<2)+k|0;j=H[m>>2];if(j>>>0>=q>>>0){break e}j=n>>>0>2];k=j?k:m+4|0;i=j?o:(o^-1)+i|0;if(i){continue}break}}o=k-a>>2;break g}if((e|0)==1){H[a>>2]=k;H[b>>2]=l;return}o=(e|0)/2|0;k=(o<<2)+a|0;l=c;if((l|0)!=(b|0)){i=c-b>>2;l=H[k>>2];if(l>>>0>=q>>>0){break f}n=p+(l<<3)|0;l=b;while(1){r=i>>>1|0;m=(r<<2)+l|0;j=H[m>>2];if(j>>>0>=q>>>0){break e}j=K[p+(j<<3)>>2]>2];l=j?m+4|0:l;i=j?(r^-1)+i|0:r;if(i){continue}break}}r=l-b>>2}f=f-r|0;e=e-o|0;i=l;if((b|0)==(k|0)){break c}i=k;if((b|0)==(l|0)){break c}if((k+4|0)!=(b|0)){break d}j=H[k>>2];i=b;b=l-b|0;i=kk(k,i,b)+b|0;H[i>>2]=j;break c}}Yc();X()}if((b+4|0)==(l|0)){b=l-4|0;j=H[b>>2];i=l;if((b|0)!=(k|0)){b=b-k|0;i=l-b|0;kk(i,k,b)}H[k>>2]=j;break c}i=b;m=k;p=l-b>>2;j=p;s=b-k>>2;n=s;if((j|0)==(n|0)){while(1){j=H[m>>2];H[m>>2]=H[i>>2];H[i>>2]=j;i=i+4|0;m=m+4|0;if((m|0)!=(b|0)){continue}break}i=b;break c}while(1){b=n;n=j;j=(b|0)%(j|0)|0;if(j){continue}break}if(n){n=(n<<2)+k|0;while(1){n=n-4|0;q=s<<2;m=n+q|0;i=H[n>>2];j=n;while(1){b=j;j=m;H[b>>2]=H[j>>2];b=l-j>>2;m=(b|0)>(s|0)?j+q|0:(s-b<<2)+k|0;if((n|0)!=(m|0)){continue}break}H[j>>2]=i;if((k|0)!=(n|0)){continue}break}}i=(p<<2)+k|0}i:{if((o+r|0)<(e+f|0)){og(a,k,i,d,o,r,g,h);a=i;b=l;break i}og(i,l,c,d,e,f,g,h);f=r;e=o;c=i;b=k}if(f){continue}break}}return}tf(a,b,c,d,e,f,g)}function lg(a,b,c,d,e,f,g,h){var i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0;a:{b:{if(!f){break b}while(1){if((e|0)<=(h|0)|(f|0)<=(h|0)){break a}if(!e){break b}i=H[d>>2];p=H[i>>2];c:{d:{q=H[i+4>>2]-p>>3;k=H[b>>2];e:{if(q>>>0<=k>>>0){break e}i=p+(k<<3)|0;while(1){l=H[a>>2];if(l>>>0>=q>>>0){break e}if(K[i>>2]>=K[p+(l<<3)>>2]){a=a+4|0;e=e-1|0;if(e){continue}break b}break}f:{g:{if((e|0)<(f|0)){r=(f|0)/2|0;l=(r<<2)+b|0;h:{if((a|0)==(b|0)){k=b;break h}m=H[l>>2];if(m>>>0>=q>>>0){break e}j=b-a>>2;o=j>>>1|0;k=(o<<2)+a|0;i=H[k>>2];if(i>>>0>=q>>>0){break e}n=H[p+(m<<3)>>2];i=n>>>0>2];k=i?a:k+4|0;i=i?o:j+(o^-1)|0;if(!i){break h}while(1){o=i>>>1|0;m=(o<<2)+k|0;j=H[m>>2];if(j>>>0>=q>>>0){break e}j=n>>>0>2];k=j?k:m+4|0;i=j?o:(o^-1)+i|0;if(i){continue}break}}o=k-a>>2;break g}if((e|0)==1){H[a>>2]=k;H[b>>2]=l;return}o=(e|0)/2|0;k=(o<<2)+a|0;l=c;if((l|0)!=(b|0)){i=c-b>>2;l=H[k>>2];if(l>>>0>=q>>>0){break f}n=p+(l<<3)|0;l=b;while(1){r=i>>>1|0;m=(r<<2)+l|0;j=H[m>>2];if(j>>>0>=q>>>0){break e}j=K[p+(j<<3)>>2]>2];l=j?m+4|0:l;i=j?(r^-1)+i|0:r;if(i){continue}break}}r=l-b>>2}f=f-r|0;e=e-o|0;i=l;if((b|0)==(k|0)){break c}i=k;if((b|0)==(l|0)){break c}if((k+4|0)!=(b|0)){break d}j=H[k>>2];i=b;b=l-b|0;i=kk(k,i,b)+b|0;H[i>>2]=j;break c}}Yc();X()}if((b+4|0)==(l|0)){b=l-4|0;j=H[b>>2];i=l;if((b|0)!=(k|0)){b=b-k|0;i=l-b|0;kk(i,k,b)}H[k>>2]=j;break c}i=b;m=k;p=l-b>>2;j=p;s=b-k>>2;n=s;if((j|0)==(n|0)){while(1){j=H[m>>2];H[m>>2]=H[i>>2];H[i>>2]=j;i=i+4|0;m=m+4|0;if((m|0)!=(b|0)){continue}break}i=b;break c}while(1){b=n;n=j;j=(b|0)%(j|0)|0;if(j){continue}break}if(n){n=(n<<2)+k|0;while(1){n=n-4|0;q=s<<2;m=n+q|0;i=H[n>>2];j=n;while(1){b=j;j=m;H[b>>2]=H[j>>2];b=l-j>>2;m=(b|0)>(s|0)?j+q|0:(s-b<<2)+k|0;if((n|0)!=(m|0)){continue}break}H[j>>2]=i;if((k|0)!=(n|0)){continue}break}}i=(p<<2)+k|0}i:{if((o+r|0)<(e+f|0)){lg(a,k,i,d,o,r,g,h);a=i;b=l;break i}lg(i,l,c,d,e,f,g,h);f=r;e=o;c=i;b=k}if(f){continue}break}}return}tf(a,b,c,d,e,f,g)}function ig(a,b,c,d,e,f,g,h){var i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0;a:{b:{if(!f){break b}while(1){if((e|0)<=(h|0)|(f|0)<=(h|0)){break a}if(!e){break b}i=H[d>>2];p=H[i>>2];c:{d:{q=H[i+4>>2]-p>>3;k=H[b>>2];e:{if(q>>>0<=k>>>0){break e}i=p+(k<<3)|0;while(1){l=H[a>>2];if(l>>>0>=q>>>0){break e}if(K[i>>2]>=K[p+(l<<3)>>2]){a=a+4|0;e=e-1|0;if(e){continue}break b}break}f:{g:{if((e|0)<(f|0)){r=(f|0)/2|0;l=(r<<2)+b|0;h:{if((a|0)==(b|0)){k=b;break h}m=H[l>>2];if(m>>>0>=q>>>0){break e}j=b-a>>2;o=j>>>1|0;k=(o<<2)+a|0;i=H[k>>2];if(i>>>0>=q>>>0){break e}n=H[p+(m<<3)>>2];i=n>>>0>2];k=i?a:k+4|0;i=i?o:j+(o^-1)|0;if(!i){break h}while(1){o=i>>>1|0;m=(o<<2)+k|0;j=H[m>>2];if(j>>>0>=q>>>0){break e}j=n>>>0>2];k=j?k:m+4|0;i=j?o:(o^-1)+i|0;if(i){continue}break}}o=k-a>>2;break g}if((e|0)==1){H[a>>2]=k;H[b>>2]=l;return}o=(e|0)/2|0;k=(o<<2)+a|0;l=c;if((l|0)!=(b|0)){i=c-b>>2;l=H[k>>2];if(l>>>0>=q>>>0){break f}n=p+(l<<3)|0;l=b;while(1){r=i>>>1|0;m=(r<<2)+l|0;j=H[m>>2];if(j>>>0>=q>>>0){break e}j=K[p+(j<<3)>>2]>2];l=j?m+4|0:l;i=j?(r^-1)+i|0:r;if(i){continue}break}}r=l-b>>2}f=f-r|0;e=e-o|0;i=l;if((b|0)==(k|0)){break c}i=k;if((b|0)==(l|0)){break c}if((k+4|0)!=(b|0)){break d}j=H[k>>2];i=b;b=l-b|0;i=kk(k,i,b)+b|0;H[i>>2]=j;break c}}Yc();X()}if((b+4|0)==(l|0)){b=l-4|0;j=H[b>>2];i=l;if((b|0)!=(k|0)){b=b-k|0;i=l-b|0;kk(i,k,b)}H[k>>2]=j;break c}i=b;m=k;p=l-b>>2;j=p;s=b-k>>2;n=s;if((j|0)==(n|0)){while(1){j=H[m>>2];H[m>>2]=H[i>>2];H[i>>2]=j;i=i+4|0;m=m+4|0;if((m|0)!=(b|0)){continue}break}i=b;break c}while(1){b=n;n=j;j=(b|0)%(j|0)|0;if(j){continue}break}if(n){n=(n<<2)+k|0;while(1){n=n-4|0;q=s<<2;m=n+q|0;i=H[n>>2];j=n;while(1){b=j;j=m;H[b>>2]=H[j>>2];b=l-j>>2;m=(b|0)>(s|0)?j+q|0:(s-b<<2)+k|0;if((n|0)!=(m|0)){continue}break}H[j>>2]=i;if((k|0)!=(n|0)){continue}break}}i=(p<<2)+k|0}i:{if((o+r|0)<(e+f|0)){ig(a,k,i,d,o,r,g,h);a=i;b=l;break i}ig(i,l,c,d,e,f,g,h);f=r;e=o;c=i;b=k}if(f){continue}break}}return}tf(a,b,c,d,e,f,g)}function fg(a,b,c,d,e,f,g,h){var i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0;a:{b:{if(!f){break b}while(1){if((e|0)<=(h|0)|(f|0)<=(h|0)){break a}if(!e){break b}i=H[d>>2];p=H[i>>2];c:{d:{q=H[i+4>>2]-p>>3;k=H[b>>2];e:{if(q>>>0<=k>>>0){break e}i=p+(k<<3)|0;while(1){l=H[a>>2];if(l>>>0>=q>>>0){break e}if(K[i>>2]>=K[p+(l<<3)>>2]){a=a+4|0;e=e-1|0;if(e){continue}break b}break}f:{g:{if((e|0)<(f|0)){r=(f|0)/2|0;l=(r<<2)+b|0;h:{if((a|0)==(b|0)){k=b;break h}m=H[l>>2];if(m>>>0>=q>>>0){break e}j=b-a>>2;o=j>>>1|0;k=(o<<2)+a|0;i=H[k>>2];if(i>>>0>=q>>>0){break e}n=H[p+(m<<3)>>2];i=n>>>0>2];k=i?a:k+4|0;i=i?o:j+(o^-1)|0;if(!i){break h}while(1){o=i>>>1|0;m=(o<<2)+k|0;j=H[m>>2];if(j>>>0>=q>>>0){break e}j=n>>>0>2];k=j?k:m+4|0;i=j?o:(o^-1)+i|0;if(i){continue}break}}o=k-a>>2;break g}if((e|0)==1){H[a>>2]=k;H[b>>2]=l;return}o=(e|0)/2|0;k=(o<<2)+a|0;l=c;if((l|0)!=(b|0)){i=c-b>>2;l=H[k>>2];if(l>>>0>=q>>>0){break f}n=p+(l<<3)|0;l=b;while(1){r=i>>>1|0;m=(r<<2)+l|0;j=H[m>>2];if(j>>>0>=q>>>0){break e}j=K[p+(j<<3)>>2]>2];l=j?m+4|0:l;i=j?(r^-1)+i|0:r;if(i){continue}break}}r=l-b>>2}f=f-r|0;e=e-o|0;i=l;if((b|0)==(k|0)){break c}i=k;if((b|0)==(l|0)){break c}if((k+4|0)!=(b|0)){break d}j=H[k>>2];i=b;b=l-b|0;i=kk(k,i,b)+b|0;H[i>>2]=j;break c}}Yc();X()}if((b+4|0)==(l|0)){b=l-4|0;j=H[b>>2];i=l;if((b|0)!=(k|0)){b=b-k|0;i=l-b|0;kk(i,k,b)}H[k>>2]=j;break c}i=b;m=k;p=l-b>>2;j=p;s=b-k>>2;n=s;if((j|0)==(n|0)){while(1){j=H[m>>2];H[m>>2]=H[i>>2];H[i>>2]=j;i=i+4|0;m=m+4|0;if((m|0)!=(b|0)){continue}break}i=b;break c}while(1){b=n;n=j;j=(b|0)%(j|0)|0;if(j){continue}break}if(n){n=(n<<2)+k|0;while(1){n=n-4|0;q=s<<2;m=n+q|0;i=H[n>>2];j=n;while(1){b=j;j=m;H[b>>2]=H[j>>2];b=l-j>>2;m=(b|0)>(s|0)?j+q|0:(s-b<<2)+k|0;if((n|0)!=(m|0)){continue}break}H[j>>2]=i;if((k|0)!=(n|0)){continue}break}}i=(p<<2)+k|0}i:{if((o+r|0)<(e+f|0)){fg(a,k,i,d,o,r,g,h);a=i;b=l;break i}fg(i,l,c,d,e,f,g,h);f=r;e=o;c=i;b=k}if(f){continue}break}}return}tf(a,b,c,d,e,f,g)}function cg(a,b,c,d,e,f,g,h){var i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0;a:{b:{if(!f){break b}while(1){if((e|0)<=(h|0)|(f|0)<=(h|0)){break a}if(!e){break b}i=H[d>>2];p=H[i>>2];c:{d:{q=H[i+4>>2]-p>>3;k=H[b>>2];e:{if(q>>>0<=k>>>0){break e}i=p+(k<<3)|0;while(1){l=H[a>>2];if(l>>>0>=q>>>0){break e}if(K[i>>2]>=K[p+(l<<3)>>2]){a=a+4|0;e=e-1|0;if(e){continue}break b}break}f:{g:{if((e|0)<(f|0)){r=(f|0)/2|0;l=(r<<2)+b|0;h:{if((a|0)==(b|0)){k=b;break h}m=H[l>>2];if(m>>>0>=q>>>0){break e}j=b-a>>2;o=j>>>1|0;k=(o<<2)+a|0;i=H[k>>2];if(i>>>0>=q>>>0){break e}n=H[p+(m<<3)>>2];i=n>>>0>2];k=i?a:k+4|0;i=i?o:j+(o^-1)|0;if(!i){break h}while(1){o=i>>>1|0;m=(o<<2)+k|0;j=H[m>>2];if(j>>>0>=q>>>0){break e}j=n>>>0>2];k=j?k:m+4|0;i=j?o:(o^-1)+i|0;if(i){continue}break}}o=k-a>>2;break g}if((e|0)==1){H[a>>2]=k;H[b>>2]=l;return}o=(e|0)/2|0;k=(o<<2)+a|0;l=c;if((l|0)!=(b|0)){i=c-b>>2;l=H[k>>2];if(l>>>0>=q>>>0){break f}n=p+(l<<3)|0;l=b;while(1){r=i>>>1|0;m=(r<<2)+l|0;j=H[m>>2];if(j>>>0>=q>>>0){break e}j=K[p+(j<<3)>>2]>2];l=j?m+4|0:l;i=j?(r^-1)+i|0:r;if(i){continue}break}}r=l-b>>2}f=f-r|0;e=e-o|0;i=l;if((b|0)==(k|0)){break c}i=k;if((b|0)==(l|0)){break c}if((k+4|0)!=(b|0)){break d}j=H[k>>2];i=b;b=l-b|0;i=kk(k,i,b)+b|0;H[i>>2]=j;break c}}Yc();X()}if((b+4|0)==(l|0)){b=l-4|0;j=H[b>>2];i=l;if((b|0)!=(k|0)){b=b-k|0;i=l-b|0;kk(i,k,b)}H[k>>2]=j;break c}i=b;m=k;p=l-b>>2;j=p;s=b-k>>2;n=s;if((j|0)==(n|0)){while(1){j=H[m>>2];H[m>>2]=H[i>>2];H[i>>2]=j;i=i+4|0;m=m+4|0;if((m|0)!=(b|0)){continue}break}i=b;break c}while(1){b=n;n=j;j=(b|0)%(j|0)|0;if(j){continue}break}if(n){n=(n<<2)+k|0;while(1){n=n-4|0;q=s<<2;m=n+q|0;i=H[n>>2];j=n;while(1){b=j;j=m;H[b>>2]=H[j>>2];b=l-j>>2;m=(b|0)>(s|0)?j+q|0:(s-b<<2)+k|0;if((n|0)!=(m|0)){continue}break}H[j>>2]=i;if((k|0)!=(n|0)){continue}break}}i=(p<<2)+k|0}i:{if((o+r|0)<(e+f|0)){cg(a,k,i,d,o,r,g,h);a=i;b=l;break i}cg(i,l,c,d,e,f,g,h);f=r;e=o;c=i;b=k}if(f){continue}break}}return}tf(a,b,c,d,e,f,g)}function Yf(a,b,c,d,e,f,g,h){var i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0;a:{b:{if(!f){break b}while(1){if((e|0)<=(h|0)|(f|0)<=(h|0)){break a}if(!e){break b}i=H[d>>2];p=H[i>>2];c:{d:{q=H[i+4>>2]-p>>3;k=H[b>>2];e:{if(q>>>0<=k>>>0){break e}i=p+(k<<3)|0;while(1){l=H[a>>2];if(l>>>0>=q>>>0){break e}if(K[i>>2]>=K[p+(l<<3)>>2]){a=a+4|0;e=e-1|0;if(e){continue}break b}break}f:{g:{if((e|0)<(f|0)){r=(f|0)/2|0;l=(r<<2)+b|0;h:{if((a|0)==(b|0)){k=b;break h}m=H[l>>2];if(m>>>0>=q>>>0){break e}j=b-a>>2;o=j>>>1|0;k=(o<<2)+a|0;i=H[k>>2];if(i>>>0>=q>>>0){break e}n=H[p+(m<<3)>>2];i=n>>>0>2];k=i?a:k+4|0;i=i?o:j+(o^-1)|0;if(!i){break h}while(1){o=i>>>1|0;m=(o<<2)+k|0;j=H[m>>2];if(j>>>0>=q>>>0){break e}j=n>>>0>2];k=j?k:m+4|0;i=j?o:(o^-1)+i|0;if(i){continue}break}}o=k-a>>2;break g}if((e|0)==1){H[a>>2]=k;H[b>>2]=l;return}o=(e|0)/2|0;k=(o<<2)+a|0;l=c;if((l|0)!=(b|0)){i=c-b>>2;l=H[k>>2];if(l>>>0>=q>>>0){break f}n=p+(l<<3)|0;l=b;while(1){r=i>>>1|0;m=(r<<2)+l|0;j=H[m>>2];if(j>>>0>=q>>>0){break e}j=K[p+(j<<3)>>2]>2];l=j?m+4|0:l;i=j?(r^-1)+i|0:r;if(i){continue}break}}r=l-b>>2}f=f-r|0;e=e-o|0;i=l;if((b|0)==(k|0)){break c}i=k;if((b|0)==(l|0)){break c}if((k+4|0)!=(b|0)){break d}j=H[k>>2];i=b;b=l-b|0;i=kk(k,i,b)+b|0;H[i>>2]=j;break c}}Yc();X()}if((b+4|0)==(l|0)){b=l-4|0;j=H[b>>2];i=l;if((b|0)!=(k|0)){b=b-k|0;i=l-b|0;kk(i,k,b)}H[k>>2]=j;break c}i=b;m=k;p=l-b>>2;j=p;s=b-k>>2;n=s;if((j|0)==(n|0)){while(1){j=H[m>>2];H[m>>2]=H[i>>2];H[i>>2]=j;i=i+4|0;m=m+4|0;if((m|0)!=(b|0)){continue}break}i=b;break c}while(1){b=n;n=j;j=(b|0)%(j|0)|0;if(j){continue}break}if(n){n=(n<<2)+k|0;while(1){n=n-4|0;q=s<<2;m=n+q|0;i=H[n>>2];j=n;while(1){b=j;j=m;H[b>>2]=H[j>>2];b=l-j>>2;m=(b|0)>(s|0)?j+q|0:(s-b<<2)+k|0;if((n|0)!=(m|0)){continue}break}H[j>>2]=i;if((k|0)!=(n|0)){continue}break}}i=(p<<2)+k|0}i:{if((o+r|0)<(e+f|0)){Yf(a,k,i,d,o,r,g,h);a=i;b=l;break i}Yf(i,l,c,d,e,f,g,h);f=r;e=o;c=i;b=k}if(f){continue}break}}return}tf(a,b,c,d,e,f,g)}function Vf(a,b,c,d,e,f,g,h){var i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0;a:{b:{if(!f){break b}while(1){if((e|0)<=(h|0)|(f|0)<=(h|0)){break a}if(!e){break b}i=H[d>>2];p=H[i>>2];c:{d:{q=H[i+4>>2]-p>>3;k=H[b>>2];e:{if(q>>>0<=k>>>0){break e}i=p+(k<<3)|0;while(1){l=H[a>>2];if(l>>>0>=q>>>0){break e}if(K[i>>2]>=K[p+(l<<3)>>2]){a=a+4|0;e=e-1|0;if(e){continue}break b}break}f:{g:{if((e|0)<(f|0)){r=(f|0)/2|0;l=(r<<2)+b|0;h:{if((a|0)==(b|0)){k=b;break h}m=H[l>>2];if(m>>>0>=q>>>0){break e}j=b-a>>2;o=j>>>1|0;k=(o<<2)+a|0;i=H[k>>2];if(i>>>0>=q>>>0){break e}n=H[p+(m<<3)>>2];i=n>>>0>2];k=i?a:k+4|0;i=i?o:j+(o^-1)|0;if(!i){break h}while(1){o=i>>>1|0;m=(o<<2)+k|0;j=H[m>>2];if(j>>>0>=q>>>0){break e}j=n>>>0>2];k=j?k:m+4|0;i=j?o:(o^-1)+i|0;if(i){continue}break}}o=k-a>>2;break g}if((e|0)==1){H[a>>2]=k;H[b>>2]=l;return}o=(e|0)/2|0;k=(o<<2)+a|0;l=c;if((l|0)!=(b|0)){i=c-b>>2;l=H[k>>2];if(l>>>0>=q>>>0){break f}n=p+(l<<3)|0;l=b;while(1){r=i>>>1|0;m=(r<<2)+l|0;j=H[m>>2];if(j>>>0>=q>>>0){break e}j=K[p+(j<<3)>>2]>2];l=j?m+4|0:l;i=j?(r^-1)+i|0:r;if(i){continue}break}}r=l-b>>2}f=f-r|0;e=e-o|0;i=l;if((b|0)==(k|0)){break c}i=k;if((b|0)==(l|0)){break c}if((k+4|0)!=(b|0)){break d}j=H[k>>2];i=b;b=l-b|0;i=kk(k,i,b)+b|0;H[i>>2]=j;break c}}Yc();X()}if((b+4|0)==(l|0)){b=l-4|0;j=H[b>>2];i=l;if((b|0)!=(k|0)){b=b-k|0;i=l-b|0;kk(i,k,b)}H[k>>2]=j;break c}i=b;m=k;p=l-b>>2;j=p;s=b-k>>2;n=s;if((j|0)==(n|0)){while(1){j=H[m>>2];H[m>>2]=H[i>>2];H[i>>2]=j;i=i+4|0;m=m+4|0;if((m|0)!=(b|0)){continue}break}i=b;break c}while(1){b=n;n=j;j=(b|0)%(j|0)|0;if(j){continue}break}if(n){n=(n<<2)+k|0;while(1){n=n-4|0;q=s<<2;m=n+q|0;i=H[n>>2];j=n;while(1){b=j;j=m;H[b>>2]=H[j>>2];b=l-j>>2;m=(b|0)>(s|0)?j+q|0:(s-b<<2)+k|0;if((n|0)!=(m|0)){continue}break}H[j>>2]=i;if((k|0)!=(n|0)){continue}break}}i=(p<<2)+k|0}i:{if((o+r|0)<(e+f|0)){Vf(a,k,i,d,o,r,g,h);a=i;b=l;break i}Vf(i,l,c,d,e,f,g,h);f=r;e=o;c=i;b=k}if(f){continue}break}}return}tf(a,b,c,d,e,f,g)}function Sf(a,b,c,d,e,f,g,h){var i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0;a:{b:{if(!f){break b}while(1){if((e|0)<=(h|0)|(f|0)<=(h|0)){break a}if(!e){break b}i=H[d>>2];p=H[i>>2];c:{d:{q=H[i+4>>2]-p>>3;k=H[b>>2];e:{if(q>>>0<=k>>>0){break e}i=p+(k<<3)|0;while(1){l=H[a>>2];if(l>>>0>=q>>>0){break e}if(K[i>>2]>=K[p+(l<<3)>>2]){a=a+4|0;e=e-1|0;if(e){continue}break b}break}f:{g:{if((e|0)<(f|0)){r=(f|0)/2|0;l=(r<<2)+b|0;h:{if((a|0)==(b|0)){k=b;break h}m=H[l>>2];if(m>>>0>=q>>>0){break e}j=b-a>>2;o=j>>>1|0;k=(o<<2)+a|0;i=H[k>>2];if(i>>>0>=q>>>0){break e}n=H[p+(m<<3)>>2];i=n>>>0>2];k=i?a:k+4|0;i=i?o:j+(o^-1)|0;if(!i){break h}while(1){o=i>>>1|0;m=(o<<2)+k|0;j=H[m>>2];if(j>>>0>=q>>>0){break e}j=n>>>0>2];k=j?k:m+4|0;i=j?o:(o^-1)+i|0;if(i){continue}break}}o=k-a>>2;break g}if((e|0)==1){H[a>>2]=k;H[b>>2]=l;return}o=(e|0)/2|0;k=(o<<2)+a|0;l=c;if((l|0)!=(b|0)){i=c-b>>2;l=H[k>>2];if(l>>>0>=q>>>0){break f}n=p+(l<<3)|0;l=b;while(1){r=i>>>1|0;m=(r<<2)+l|0;j=H[m>>2];if(j>>>0>=q>>>0){break e}j=K[p+(j<<3)>>2]>2];l=j?m+4|0:l;i=j?(r^-1)+i|0:r;if(i){continue}break}}r=l-b>>2}f=f-r|0;e=e-o|0;i=l;if((b|0)==(k|0)){break c}i=k;if((b|0)==(l|0)){break c}if((k+4|0)!=(b|0)){break d}j=H[k>>2];i=b;b=l-b|0;i=kk(k,i,b)+b|0;H[i>>2]=j;break c}}Yc();X()}if((b+4|0)==(l|0)){b=l-4|0;j=H[b>>2];i=l;if((b|0)!=(k|0)){b=b-k|0;i=l-b|0;kk(i,k,b)}H[k>>2]=j;break c}i=b;m=k;p=l-b>>2;j=p;s=b-k>>2;n=s;if((j|0)==(n|0)){while(1){j=H[m>>2];H[m>>2]=H[i>>2];H[i>>2]=j;i=i+4|0;m=m+4|0;if((m|0)!=(b|0)){continue}break}i=b;break c}while(1){b=n;n=j;j=(b|0)%(j|0)|0;if(j){continue}break}if(n){n=(n<<2)+k|0;while(1){n=n-4|0;q=s<<2;m=n+q|0;i=H[n>>2];j=n;while(1){b=j;j=m;H[b>>2]=H[j>>2];b=l-j>>2;m=(b|0)>(s|0)?j+q|0:(s-b<<2)+k|0;if((n|0)!=(m|0)){continue}break}H[j>>2]=i;if((k|0)!=(n|0)){continue}break}}i=(p<<2)+k|0}i:{if((o+r|0)<(e+f|0)){Sf(a,k,i,d,o,r,g,h);a=i;b=l;break i}Sf(i,l,c,d,e,f,g,h);f=r;e=o;c=i;b=k}if(f){continue}break}}return}tf(a,b,c,d,e,f,g)}function Pf(a,b,c,d,e,f,g,h){var i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0;a:{b:{if(!f){break b}while(1){if((e|0)<=(h|0)|(f|0)<=(h|0)){break a}if(!e){break b}i=H[d>>2];p=H[i>>2];c:{d:{q=H[i+4>>2]-p>>3;k=H[b>>2];e:{if(q>>>0<=k>>>0){break e}i=p+(k<<3)|0;while(1){l=H[a>>2];if(l>>>0>=q>>>0){break e}if(K[i>>2]>=K[p+(l<<3)>>2]){a=a+4|0;e=e-1|0;if(e){continue}break b}break}f:{g:{if((e|0)<(f|0)){r=(f|0)/2|0;l=(r<<2)+b|0;h:{if((a|0)==(b|0)){k=b;break h}m=H[l>>2];if(m>>>0>=q>>>0){break e}j=b-a>>2;o=j>>>1|0;k=(o<<2)+a|0;i=H[k>>2];if(i>>>0>=q>>>0){break e}n=H[p+(m<<3)>>2];i=n>>>0>2];k=i?a:k+4|0;i=i?o:j+(o^-1)|0;if(!i){break h}while(1){o=i>>>1|0;m=(o<<2)+k|0;j=H[m>>2];if(j>>>0>=q>>>0){break e}j=n>>>0>2];k=j?k:m+4|0;i=j?o:(o^-1)+i|0;if(i){continue}break}}o=k-a>>2;break g}if((e|0)==1){H[a>>2]=k;H[b>>2]=l;return}o=(e|0)/2|0;k=(o<<2)+a|0;l=c;if((l|0)!=(b|0)){i=c-b>>2;l=H[k>>2];if(l>>>0>=q>>>0){break f}n=p+(l<<3)|0;l=b;while(1){r=i>>>1|0;m=(r<<2)+l|0;j=H[m>>2];if(j>>>0>=q>>>0){break e}j=K[p+(j<<3)>>2]>2];l=j?m+4|0:l;i=j?(r^-1)+i|0:r;if(i){continue}break}}r=l-b>>2}f=f-r|0;e=e-o|0;i=l;if((b|0)==(k|0)){break c}i=k;if((b|0)==(l|0)){break c}if((k+4|0)!=(b|0)){break d}j=H[k>>2];i=b;b=l-b|0;i=kk(k,i,b)+b|0;H[i>>2]=j;break c}}Yc();X()}if((b+4|0)==(l|0)){b=l-4|0;j=H[b>>2];i=l;if((b|0)!=(k|0)){b=b-k|0;i=l-b|0;kk(i,k,b)}H[k>>2]=j;break c}i=b;m=k;p=l-b>>2;j=p;s=b-k>>2;n=s;if((j|0)==(n|0)){while(1){j=H[m>>2];H[m>>2]=H[i>>2];H[i>>2]=j;i=i+4|0;m=m+4|0;if((m|0)!=(b|0)){continue}break}i=b;break c}while(1){b=n;n=j;j=(b|0)%(j|0)|0;if(j){continue}break}if(n){n=(n<<2)+k|0;while(1){n=n-4|0;q=s<<2;m=n+q|0;i=H[n>>2];j=n;while(1){b=j;j=m;H[b>>2]=H[j>>2];b=l-j>>2;m=(b|0)>(s|0)?j+q|0:(s-b<<2)+k|0;if((n|0)!=(m|0)){continue}break}H[j>>2]=i;if((k|0)!=(n|0)){continue}break}}i=(p<<2)+k|0}i:{if((o+r|0)<(e+f|0)){Pf(a,k,i,d,o,r,g,h);a=i;b=l;break i}Pf(i,l,c,d,e,f,g,h);f=r;e=o;c=i;b=k}if(f){continue}break}}return}tf(a,b,c,d,e,f,g)}function Mf(a,b,c,d,e,f,g,h){var i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0;a:{b:{if(!f){break b}while(1){if((e|0)<=(h|0)|(f|0)<=(h|0)){break a}if(!e){break b}i=H[d>>2];p=H[i>>2];c:{d:{q=H[i+4>>2]-p>>3;k=H[b>>2];e:{if(q>>>0<=k>>>0){break e}i=p+(k<<3)|0;while(1){l=H[a>>2];if(l>>>0>=q>>>0){break e}if(K[i>>2]>=K[p+(l<<3)>>2]){a=a+4|0;e=e-1|0;if(e){continue}break b}break}f:{g:{if((e|0)<(f|0)){r=(f|0)/2|0;l=(r<<2)+b|0;h:{if((a|0)==(b|0)){k=b;break h}m=H[l>>2];if(m>>>0>=q>>>0){break e}j=b-a>>2;o=j>>>1|0;k=(o<<2)+a|0;i=H[k>>2];if(i>>>0>=q>>>0){break e}n=H[p+(m<<3)>>2];i=n>>>0>2];k=i?a:k+4|0;i=i?o:j+(o^-1)|0;if(!i){break h}while(1){o=i>>>1|0;m=(o<<2)+k|0;j=H[m>>2];if(j>>>0>=q>>>0){break e}j=n>>>0>2];k=j?k:m+4|0;i=j?o:(o^-1)+i|0;if(i){continue}break}}o=k-a>>2;break g}if((e|0)==1){H[a>>2]=k;H[b>>2]=l;return}o=(e|0)/2|0;k=(o<<2)+a|0;l=c;if((l|0)!=(b|0)){i=c-b>>2;l=H[k>>2];if(l>>>0>=q>>>0){break f}n=p+(l<<3)|0;l=b;while(1){r=i>>>1|0;m=(r<<2)+l|0;j=H[m>>2];if(j>>>0>=q>>>0){break e}j=K[p+(j<<3)>>2]>2];l=j?m+4|0:l;i=j?(r^-1)+i|0:r;if(i){continue}break}}r=l-b>>2}f=f-r|0;e=e-o|0;i=l;if((b|0)==(k|0)){break c}i=k;if((b|0)==(l|0)){break c}if((k+4|0)!=(b|0)){break d}j=H[k>>2];i=b;b=l-b|0;i=kk(k,i,b)+b|0;H[i>>2]=j;break c}}Yc();X()}if((b+4|0)==(l|0)){b=l-4|0;j=H[b>>2];i=l;if((b|0)!=(k|0)){b=b-k|0;i=l-b|0;kk(i,k,b)}H[k>>2]=j;break c}i=b;m=k;p=l-b>>2;j=p;s=b-k>>2;n=s;if((j|0)==(n|0)){while(1){j=H[m>>2];H[m>>2]=H[i>>2];H[i>>2]=j;i=i+4|0;m=m+4|0;if((m|0)!=(b|0)){continue}break}i=b;break c}while(1){b=n;n=j;j=(b|0)%(j|0)|0;if(j){continue}break}if(n){n=(n<<2)+k|0;while(1){n=n-4|0;q=s<<2;m=n+q|0;i=H[n>>2];j=n;while(1){b=j;j=m;H[b>>2]=H[j>>2];b=l-j>>2;m=(b|0)>(s|0)?j+q|0:(s-b<<2)+k|0;if((n|0)!=(m|0)){continue}break}H[j>>2]=i;if((k|0)!=(n|0)){continue}break}}i=(p<<2)+k|0}i:{if((o+r|0)<(e+f|0)){Mf(a,k,i,d,o,r,g,h);a=i;b=l;break i}Mf(i,l,c,d,e,f,g,h);f=r;e=o;c=i;b=k}if(f){continue}break}}return}tf(a,b,c,d,e,f,g)}function Jf(a,b,c,d,e,f,g,h){var i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0;a:{b:{if(!f){break b}while(1){if((e|0)<=(h|0)|(f|0)<=(h|0)){break a}if(!e){break b}i=H[d>>2];p=H[i>>2];c:{d:{q=H[i+4>>2]-p>>3;k=H[b>>2];e:{if(q>>>0<=k>>>0){break e}i=p+(k<<3)|0;while(1){l=H[a>>2];if(l>>>0>=q>>>0){break e}if(K[i>>2]>=K[p+(l<<3)>>2]){a=a+4|0;e=e-1|0;if(e){continue}break b}break}f:{g:{if((e|0)<(f|0)){r=(f|0)/2|0;l=(r<<2)+b|0;h:{if((a|0)==(b|0)){k=b;break h}m=H[l>>2];if(m>>>0>=q>>>0){break e}j=b-a>>2;o=j>>>1|0;k=(o<<2)+a|0;i=H[k>>2];if(i>>>0>=q>>>0){break e}n=H[p+(m<<3)>>2];i=n>>>0>2];k=i?a:k+4|0;i=i?o:j+(o^-1)|0;if(!i){break h}while(1){o=i>>>1|0;m=(o<<2)+k|0;j=H[m>>2];if(j>>>0>=q>>>0){break e}j=n>>>0>2];k=j?k:m+4|0;i=j?o:(o^-1)+i|0;if(i){continue}break}}o=k-a>>2;break g}if((e|0)==1){H[a>>2]=k;H[b>>2]=l;return}o=(e|0)/2|0;k=(o<<2)+a|0;l=c;if((l|0)!=(b|0)){i=c-b>>2;l=H[k>>2];if(l>>>0>=q>>>0){break f}n=p+(l<<3)|0;l=b;while(1){r=i>>>1|0;m=(r<<2)+l|0;j=H[m>>2];if(j>>>0>=q>>>0){break e}j=K[p+(j<<3)>>2]>2];l=j?m+4|0:l;i=j?(r^-1)+i|0:r;if(i){continue}break}}r=l-b>>2}f=f-r|0;e=e-o|0;i=l;if((b|0)==(k|0)){break c}i=k;if((b|0)==(l|0)){break c}if((k+4|0)!=(b|0)){break d}j=H[k>>2];i=b;b=l-b|0;i=kk(k,i,b)+b|0;H[i>>2]=j;break c}}Yc();X()}if((b+4|0)==(l|0)){b=l-4|0;j=H[b>>2];i=l;if((b|0)!=(k|0)){b=b-k|0;i=l-b|0;kk(i,k,b)}H[k>>2]=j;break c}i=b;m=k;p=l-b>>2;j=p;s=b-k>>2;n=s;if((j|0)==(n|0)){while(1){j=H[m>>2];H[m>>2]=H[i>>2];H[i>>2]=j;i=i+4|0;m=m+4|0;if((m|0)!=(b|0)){continue}break}i=b;break c}while(1){b=n;n=j;j=(b|0)%(j|0)|0;if(j){continue}break}if(n){n=(n<<2)+k|0;while(1){n=n-4|0;q=s<<2;m=n+q|0;i=H[n>>2];j=n;while(1){b=j;j=m;H[b>>2]=H[j>>2];b=l-j>>2;m=(b|0)>(s|0)?j+q|0:(s-b<<2)+k|0;if((n|0)!=(m|0)){continue}break}H[j>>2]=i;if((k|0)!=(n|0)){continue}break}}i=(p<<2)+k|0}i:{if((o+r|0)<(e+f|0)){Jf(a,k,i,d,o,r,g,h);a=i;b=l;break i}Jf(i,l,c,d,e,f,g,h);f=r;e=o;c=i;b=k}if(f){continue}break}}return}tf(a,b,c,d,e,f,g)}function Gf(a,b,c,d,e,f,g,h){var i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0;a:{b:{if(!f){break b}while(1){if((e|0)<=(h|0)|(f|0)<=(h|0)){break a}if(!e){break b}i=H[d>>2];p=H[i>>2];c:{d:{q=H[i+4>>2]-p>>3;k=H[b>>2];e:{if(q>>>0<=k>>>0){break e}i=p+(k<<3)|0;while(1){l=H[a>>2];if(l>>>0>=q>>>0){break e}if(K[i>>2]>=K[p+(l<<3)>>2]){a=a+4|0;e=e-1|0;if(e){continue}break b}break}f:{g:{if((e|0)<(f|0)){r=(f|0)/2|0;l=(r<<2)+b|0;h:{if((a|0)==(b|0)){k=b;break h}m=H[l>>2];if(m>>>0>=q>>>0){break e}j=b-a>>2;o=j>>>1|0;k=(o<<2)+a|0;i=H[k>>2];if(i>>>0>=q>>>0){break e}n=H[p+(m<<3)>>2];i=n>>>0>2];k=i?a:k+4|0;i=i?o:j+(o^-1)|0;if(!i){break h}while(1){o=i>>>1|0;m=(o<<2)+k|0;j=H[m>>2];if(j>>>0>=q>>>0){break e}j=n>>>0>2];k=j?k:m+4|0;i=j?o:(o^-1)+i|0;if(i){continue}break}}o=k-a>>2;break g}if((e|0)==1){H[a>>2]=k;H[b>>2]=l;return}o=(e|0)/2|0;k=(o<<2)+a|0;l=c;if((l|0)!=(b|0)){i=c-b>>2;l=H[k>>2];if(l>>>0>=q>>>0){break f}n=p+(l<<3)|0;l=b;while(1){r=i>>>1|0;m=(r<<2)+l|0;j=H[m>>2];if(j>>>0>=q>>>0){break e}j=K[p+(j<<3)>>2]>2];l=j?m+4|0:l;i=j?(r^-1)+i|0:r;if(i){continue}break}}r=l-b>>2}f=f-r|0;e=e-o|0;i=l;if((b|0)==(k|0)){break c}i=k;if((b|0)==(l|0)){break c}if((k+4|0)!=(b|0)){break d}j=H[k>>2];i=b;b=l-b|0;i=kk(k,i,b)+b|0;H[i>>2]=j;break c}}Yc();X()}if((b+4|0)==(l|0)){b=l-4|0;j=H[b>>2];i=l;if((b|0)!=(k|0)){b=b-k|0;i=l-b|0;kk(i,k,b)}H[k>>2]=j;break c}i=b;m=k;p=l-b>>2;j=p;s=b-k>>2;n=s;if((j|0)==(n|0)){while(1){j=H[m>>2];H[m>>2]=H[i>>2];H[i>>2]=j;i=i+4|0;m=m+4|0;if((m|0)!=(b|0)){continue}break}i=b;break c}while(1){b=n;n=j;j=(b|0)%(j|0)|0;if(j){continue}break}if(n){n=(n<<2)+k|0;while(1){n=n-4|0;q=s<<2;m=n+q|0;i=H[n>>2];j=n;while(1){b=j;j=m;H[b>>2]=H[j>>2];b=l-j>>2;m=(b|0)>(s|0)?j+q|0:(s-b<<2)+k|0;if((n|0)!=(m|0)){continue}break}H[j>>2]=i;if((k|0)!=(n|0)){continue}break}}i=(p<<2)+k|0}i:{if((o+r|0)<(e+f|0)){Gf(a,k,i,d,o,r,g,h);a=i;b=l;break i}Gf(i,l,c,d,e,f,g,h);f=r;e=o;c=i;b=k}if(f){continue}break}}return}tf(a,b,c,d,e,f,g)}function Df(a,b,c,d,e,f,g,h){var i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0;a:{b:{if(!f){break b}while(1){if((e|0)<=(h|0)|(f|0)<=(h|0)){break a}if(!e){break b}i=H[d>>2];p=H[i>>2];c:{d:{q=H[i+4>>2]-p>>3;k=H[b>>2];e:{if(q>>>0<=k>>>0){break e}i=p+(k<<3)|0;while(1){l=H[a>>2];if(l>>>0>=q>>>0){break e}if(K[i>>2]>=K[p+(l<<3)>>2]){a=a+4|0;e=e-1|0;if(e){continue}break b}break}f:{g:{if((e|0)<(f|0)){r=(f|0)/2|0;l=(r<<2)+b|0;h:{if((a|0)==(b|0)){k=b;break h}m=H[l>>2];if(m>>>0>=q>>>0){break e}j=b-a>>2;o=j>>>1|0;k=(o<<2)+a|0;i=H[k>>2];if(i>>>0>=q>>>0){break e}n=H[p+(m<<3)>>2];i=n>>>0>2];k=i?a:k+4|0;i=i?o:j+(o^-1)|0;if(!i){break h}while(1){o=i>>>1|0;m=(o<<2)+k|0;j=H[m>>2];if(j>>>0>=q>>>0){break e}j=n>>>0>2];k=j?k:m+4|0;i=j?o:(o^-1)+i|0;if(i){continue}break}}o=k-a>>2;break g}if((e|0)==1){H[a>>2]=k;H[b>>2]=l;return}o=(e|0)/2|0;k=(o<<2)+a|0;l=c;if((l|0)!=(b|0)){i=c-b>>2;l=H[k>>2];if(l>>>0>=q>>>0){break f}n=p+(l<<3)|0;l=b;while(1){r=i>>>1|0;m=(r<<2)+l|0;j=H[m>>2];if(j>>>0>=q>>>0){break e}j=K[p+(j<<3)>>2]>2];l=j?m+4|0:l;i=j?(r^-1)+i|0:r;if(i){continue}break}}r=l-b>>2}f=f-r|0;e=e-o|0;i=l;if((b|0)==(k|0)){break c}i=k;if((b|0)==(l|0)){break c}if((k+4|0)!=(b|0)){break d}j=H[k>>2];i=b;b=l-b|0;i=kk(k,i,b)+b|0;H[i>>2]=j;break c}}Yc();X()}if((b+4|0)==(l|0)){b=l-4|0;j=H[b>>2];i=l;if((b|0)!=(k|0)){b=b-k|0;i=l-b|0;kk(i,k,b)}H[k>>2]=j;break c}i=b;m=k;p=l-b>>2;j=p;s=b-k>>2;n=s;if((j|0)==(n|0)){while(1){j=H[m>>2];H[m>>2]=H[i>>2];H[i>>2]=j;i=i+4|0;m=m+4|0;if((m|0)!=(b|0)){continue}break}i=b;break c}while(1){b=n;n=j;j=(b|0)%(j|0)|0;if(j){continue}break}if(n){n=(n<<2)+k|0;while(1){n=n-4|0;q=s<<2;m=n+q|0;i=H[n>>2];j=n;while(1){b=j;j=m;H[b>>2]=H[j>>2];b=l-j>>2;m=(b|0)>(s|0)?j+q|0:(s-b<<2)+k|0;if((n|0)!=(m|0)){continue}break}H[j>>2]=i;if((k|0)!=(n|0)){continue}break}}i=(p<<2)+k|0}i:{if((o+r|0)<(e+f|0)){Df(a,k,i,d,o,r,g,h);a=i;b=l;break i}Df(i,l,c,d,e,f,g,h);f=r;e=o;c=i;b=k}if(f){continue}break}}return}tf(a,b,c,d,e,f,g)}function Af(a,b,c,d,e,f,g,h){var i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0;a:{b:{if(!f){break b}while(1){if((e|0)<=(h|0)|(f|0)<=(h|0)){break a}if(!e){break b}i=H[d>>2];p=H[i>>2];c:{d:{q=H[i+4>>2]-p>>3;k=H[b>>2];e:{if(q>>>0<=k>>>0){break e}i=p+(k<<3)|0;while(1){l=H[a>>2];if(l>>>0>=q>>>0){break e}if(K[i>>2]>=K[p+(l<<3)>>2]){a=a+4|0;e=e-1|0;if(e){continue}break b}break}f:{g:{if((e|0)<(f|0)){r=(f|0)/2|0;l=(r<<2)+b|0;h:{if((a|0)==(b|0)){k=b;break h}m=H[l>>2];if(m>>>0>=q>>>0){break e}j=b-a>>2;o=j>>>1|0;k=(o<<2)+a|0;i=H[k>>2];if(i>>>0>=q>>>0){break e}n=H[p+(m<<3)>>2];i=n>>>0>2];k=i?a:k+4|0;i=i?o:j+(o^-1)|0;if(!i){break h}while(1){o=i>>>1|0;m=(o<<2)+k|0;j=H[m>>2];if(j>>>0>=q>>>0){break e}j=n>>>0>2];k=j?k:m+4|0;i=j?o:(o^-1)+i|0;if(i){continue}break}}o=k-a>>2;break g}if((e|0)==1){H[a>>2]=k;H[b>>2]=l;return}o=(e|0)/2|0;k=(o<<2)+a|0;l=c;if((l|0)!=(b|0)){i=c-b>>2;l=H[k>>2];if(l>>>0>=q>>>0){break f}n=p+(l<<3)|0;l=b;while(1){r=i>>>1|0;m=(r<<2)+l|0;j=H[m>>2];if(j>>>0>=q>>>0){break e}j=K[p+(j<<3)>>2]>2];l=j?m+4|0:l;i=j?(r^-1)+i|0:r;if(i){continue}break}}r=l-b>>2}f=f-r|0;e=e-o|0;i=l;if((b|0)==(k|0)){break c}i=k;if((b|0)==(l|0)){break c}if((k+4|0)!=(b|0)){break d}j=H[k>>2];i=b;b=l-b|0;i=kk(k,i,b)+b|0;H[i>>2]=j;break c}}Yc();X()}if((b+4|0)==(l|0)){b=l-4|0;j=H[b>>2];i=l;if((b|0)!=(k|0)){b=b-k|0;i=l-b|0;kk(i,k,b)}H[k>>2]=j;break c}i=b;m=k;p=l-b>>2;j=p;s=b-k>>2;n=s;if((j|0)==(n|0)){while(1){j=H[m>>2];H[m>>2]=H[i>>2];H[i>>2]=j;i=i+4|0;m=m+4|0;if((m|0)!=(b|0)){continue}break}i=b;break c}while(1){b=n;n=j;j=(b|0)%(j|0)|0;if(j){continue}break}if(n){n=(n<<2)+k|0;while(1){n=n-4|0;q=s<<2;m=n+q|0;i=H[n>>2];j=n;while(1){b=j;j=m;H[b>>2]=H[j>>2];b=l-j>>2;m=(b|0)>(s|0)?j+q|0:(s-b<<2)+k|0;if((n|0)!=(m|0)){continue}break}H[j>>2]=i;if((k|0)!=(n|0)){continue}break}}i=(p<<2)+k|0}i:{if((o+r|0)<(e+f|0)){Af(a,k,i,d,o,r,g,h);a=i;b=l;break i}Af(i,l,c,d,e,f,g,h);f=r;e=o;c=i;b=k}if(f){continue}break}}return}tf(a,b,c,d,e,f,g)}function $f(a,b,c,d,e,f,g,h){var i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0;a:{b:{if(!f){break b}while(1){if((e|0)<=(h|0)|(f|0)<=(h|0)){break a}if(!e){break b}i=H[d>>2];p=H[i>>2];c:{d:{q=H[i+4>>2]-p>>3;k=H[b>>2];e:{if(q>>>0<=k>>>0){break e}i=p+(k<<3)|0;while(1){l=H[a>>2];if(l>>>0>=q>>>0){break e}if(K[i>>2]>=K[p+(l<<3)>>2]){a=a+4|0;e=e-1|0;if(e){continue}break b}break}f:{g:{if((e|0)<(f|0)){r=(f|0)/2|0;l=(r<<2)+b|0;h:{if((a|0)==(b|0)){k=b;break h}m=H[l>>2];if(m>>>0>=q>>>0){break e}j=b-a>>2;o=j>>>1|0;k=(o<<2)+a|0;i=H[k>>2];if(i>>>0>=q>>>0){break e}n=H[p+(m<<3)>>2];i=n>>>0>2];k=i?a:k+4|0;i=i?o:j+(o^-1)|0;if(!i){break h}while(1){o=i>>>1|0;m=(o<<2)+k|0;j=H[m>>2];if(j>>>0>=q>>>0){break e}j=n>>>0>2];k=j?k:m+4|0;i=j?o:(o^-1)+i|0;if(i){continue}break}}o=k-a>>2;break g}if((e|0)==1){H[a>>2]=k;H[b>>2]=l;return}o=(e|0)/2|0;k=(o<<2)+a|0;l=c;if((l|0)!=(b|0)){i=c-b>>2;l=H[k>>2];if(l>>>0>=q>>>0){break f}n=p+(l<<3)|0;l=b;while(1){r=i>>>1|0;m=(r<<2)+l|0;j=H[m>>2];if(j>>>0>=q>>>0){break e}j=K[p+(j<<3)>>2]>2];l=j?m+4|0:l;i=j?(r^-1)+i|0:r;if(i){continue}break}}r=l-b>>2}f=f-r|0;e=e-o|0;i=l;if((b|0)==(k|0)){break c}i=k;if((b|0)==(l|0)){break c}if((k+4|0)!=(b|0)){break d}j=H[k>>2];i=b;b=l-b|0;i=kk(k,i,b)+b|0;H[i>>2]=j;break c}}Yc();X()}if((b+4|0)==(l|0)){b=l-4|0;j=H[b>>2];i=l;if((b|0)!=(k|0)){b=b-k|0;i=l-b|0;kk(i,k,b)}H[k>>2]=j;break c}i=b;m=k;p=l-b>>2;j=p;s=b-k>>2;n=s;if((j|0)==(n|0)){while(1){j=H[m>>2];H[m>>2]=H[i>>2];H[i>>2]=j;i=i+4|0;m=m+4|0;if((m|0)!=(b|0)){continue}break}i=b;break c}while(1){b=n;n=j;j=(b|0)%(j|0)|0;if(j){continue}break}if(n){n=(n<<2)+k|0;while(1){n=n-4|0;q=s<<2;m=n+q|0;i=H[n>>2];j=n;while(1){b=j;j=m;H[b>>2]=H[j>>2];b=l-j>>2;m=(b|0)>(s|0)?j+q|0:(s-b<<2)+k|0;if((n|0)!=(m|0)){continue}break}H[j>>2]=i;if((k|0)!=(n|0)){continue}break}}i=(p<<2)+k|0}i:{if((o+r|0)<(e+f|0)){$f(a,k,i,d,o,r,g,h);a=i;b=l;break i}$f(i,l,c,d,e,f,g,h);f=r;e=o;c=i;b=k}if(f){continue}break}}return}tf(a,b,c,d,e,f,g)}function gh(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0;f=ha-16|0;ha=f;H[a+4>>2]=b;H[a+8>>2]=H[b+56>>2];H[a+188>>2]=H[a+184>>2];e=H[b+48>>2];c=hl(32);b=I[1278]|I[1279]<<8|(I[1280]<<16|I[1281]<<24);F[c+15|0]=b;F[c+16|0]=b>>>8;F[c+17|0]=b>>>16;F[c+18|0]=b>>>24;b=I[1275]|I[1276]<<8|(I[1277]<<16|I[1278]<<24);d=I[1271]|I[1272]<<8|(I[1273]<<16|I[1274]<<24);F[c+8|0]=d;F[c+9|0]=d>>>8;F[c+10|0]=d>>>16;F[c+11|0]=d>>>24;F[c+12|0]=b;F[c+13|0]=b>>>8;F[c+14|0]=b>>>16;F[c+15|0]=b>>>24;b=I[1267]|I[1268]<<8|(I[1269]<<16|I[1270]<<24);d=I[1263]|I[1264]<<8|(I[1265]<<16|I[1266]<<24);F[c|0]=d;F[c+1|0]=d>>>8;F[c+2|0]=d>>>16;F[c+3|0]=d>>>24;F[c+4|0]=b;F[c+5|0]=b>>>8;F[c+6|0]=b>>>16;F[c+7|0]=b>>>24;F[c+19|0]=0;a:{b:{b=H[e+4>>2];if(b){while(1){d=I[b+27|0];e=d<<24>>24<0;d=e?H[b+20>>2]:d;i=d>>>0<19;c:{d:{e:{f:{g:{h:{h=i?d:19;if(h){g=b+16|0;e=e?H[g>>2]:g;g=ok(c,e,h);if(g){break h}if(d>>>0<=19){break g}break c}if(d>>>0<=19){break f}break c}if((g|0)<0){break c}}d=ok(e,c,h);if(d){break e}}if(i){break d}break b}if((d|0)>=0){break b}}b=b+4|0}b=H[b>>2];if(b){continue}break}}bl(c);if((Qb(H[H[a+4>>2]+48>>2])|0)>=6){F[a+352|0]=1;break a}F[a+352|0]=0;break a}bl(c);e=H[H[a+4>>2]+48>>2];b=hl(32);H[f>>2]=b;H[f+4>>2]=19;H[f+8>>2]=-2147483616;F[b+19|0]=0;c=I[1278]|I[1279]<<8|(I[1280]<<16|I[1281]<<24);F[b+15|0]=c;F[b+16|0]=c>>>8;F[b+17|0]=c>>>16;F[b+18|0]=c>>>24;c=I[1275]|I[1276]<<8|(I[1277]<<16|I[1278]<<24);d=I[1271]|I[1272]<<8|(I[1273]<<16|I[1274]<<24);F[b+8|0]=d;F[b+9|0]=d>>>8;F[b+10|0]=d>>>16;F[b+11|0]=d>>>24;F[b+12|0]=c;F[b+13|0]=c>>>8;F[b+14|0]=c>>>16;F[b+15|0]=c>>>24;c=I[1267]|I[1268]<<8|(I[1269]<<16|I[1270]<<24);d=I[1263]|I[1264]<<8|(I[1265]<<16|I[1266]<<24);F[b|0]=d;F[b+1|0]=d>>>8;F[b+2|0]=d>>>16;F[b+3|0]=d>>>24;F[b+4|0]=c;F[b+5|0]=c>>>8;F[b+6|0]=c>>>16;F[b+7|0]=c>>>24;j=a,k=pi(e,f,0),F[j+352|0]=k;if(F[f+11|0]>=0){break a}bl(H[f>>2])}ha=f+16|0;return 1}function Dg(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0;f=ha-16|0;ha=f;H[a+4>>2]=b;H[a+8>>2]=H[b+56>>2];H[a+188>>2]=H[a+184>>2];e=H[b+48>>2];c=hl(32);b=I[1278]|I[1279]<<8|(I[1280]<<16|I[1281]<<24);F[c+15|0]=b;F[c+16|0]=b>>>8;F[c+17|0]=b>>>16;F[c+18|0]=b>>>24;b=I[1275]|I[1276]<<8|(I[1277]<<16|I[1278]<<24);d=I[1271]|I[1272]<<8|(I[1273]<<16|I[1274]<<24);F[c+8|0]=d;F[c+9|0]=d>>>8;F[c+10|0]=d>>>16;F[c+11|0]=d>>>24;F[c+12|0]=b;F[c+13|0]=b>>>8;F[c+14|0]=b>>>16;F[c+15|0]=b>>>24;b=I[1267]|I[1268]<<8|(I[1269]<<16|I[1270]<<24);d=I[1263]|I[1264]<<8|(I[1265]<<16|I[1266]<<24);F[c|0]=d;F[c+1|0]=d>>>8;F[c+2|0]=d>>>16;F[c+3|0]=d>>>24;F[c+4|0]=b;F[c+5|0]=b>>>8;F[c+6|0]=b>>>16;F[c+7|0]=b>>>24;F[c+19|0]=0;a:{b:{b=H[e+4>>2];if(b){while(1){d=I[b+27|0];e=d<<24>>24<0;d=e?H[b+20>>2]:d;i=d>>>0<19;c:{d:{e:{f:{g:{h:{h=i?d:19;if(h){g=b+16|0;e=e?H[g>>2]:g;g=ok(c,e,h);if(g){break h}if(d>>>0<=19){break g}break c}if(d>>>0<=19){break f}break c}if((g|0)<0){break c}}d=ok(e,c,h);if(d){break e}}if(i){break d}break b}if((d|0)>=0){break b}}b=b+4|0}b=H[b>>2];if(b){continue}break}}bl(c);if((Qb(H[H[a+4>>2]+48>>2])|0)>=6){F[a+288|0]=1;break a}F[a+288|0]=0;break a}bl(c);e=H[H[a+4>>2]+48>>2];b=hl(32);H[f>>2]=b;H[f+4>>2]=19;H[f+8>>2]=-2147483616;F[b+19|0]=0;c=I[1278]|I[1279]<<8|(I[1280]<<16|I[1281]<<24);F[b+15|0]=c;F[b+16|0]=c>>>8;F[b+17|0]=c>>>16;F[b+18|0]=c>>>24;c=I[1275]|I[1276]<<8|(I[1277]<<16|I[1278]<<24);d=I[1271]|I[1272]<<8|(I[1273]<<16|I[1274]<<24);F[b+8|0]=d;F[b+9|0]=d>>>8;F[b+10|0]=d>>>16;F[b+11|0]=d>>>24;F[b+12|0]=c;F[b+13|0]=c>>>8;F[b+14|0]=c>>>16;F[b+15|0]=c>>>24;c=I[1267]|I[1268]<<8|(I[1269]<<16|I[1270]<<24);d=I[1263]|I[1264]<<8|(I[1265]<<16|I[1266]<<24);F[b|0]=d;F[b+1|0]=d>>>8;F[b+2|0]=d>>>16;F[b+3|0]=d>>>24;F[b+4|0]=c;F[b+5|0]=c>>>8;F[b+6|0]=c>>>16;F[b+7|0]=c>>>24;j=a,k=pi(e,f,0),F[j+288|0]=k;if(F[f+11|0]>=0){break a}bl(H[f>>2])}ha=f+16|0;return 1}function we(a,b){var c=0,d=0,e=0,f=0,g=0,h=0,i=0;d=ha-16|0;ha=d;f=H[b+48>>2];a:{if((Qb(f)|0)>9){break a}if((la[H[H[b>>2]+8>>2]](b)|0)!=1){break a}e=H[b+4>>2];g=H[H[e+8>>2]+(a<<2)>>2];c=H[g+56>>2];if((c|0)==3){b:{if(I[g+24|0]!=2){break b}a=$j(e);if(!a){break b}a=H[a+28>>2]-1|0;if(!(a>>>0<11&1279>>>a)){h=d,i=_j(H[b+4>>2],0),H[h+12>>2]=i;a=hl(32);H[d>>2]=a;H[d+4>>2]=17;H[d+8>>2]=-2147483616;F[a+17|0]=0;F[a+16|0]=I[1261];c=I[1257]|I[1258]<<8|(I[1259]<<16|I[1260]<<24);e=I[1253]|I[1254]<<8|(I[1255]<<16|I[1256]<<24);F[a+8|0]=e;F[a+9|0]=e>>>8;F[a+10|0]=e>>>16;F[a+11|0]=e>>>24;F[a+12|0]=c;F[a+13|0]=c>>>8;F[a+14|0]=c>>>16;F[a+15|0]=c>>>24;c=I[1249]|I[1250]<<8|(I[1251]<<16|I[1252]<<24);e=I[1245]|I[1246]<<8|(I[1247]<<16|I[1248]<<24);F[a|0]=e;F[a+1|0]=e>>>8;F[a+2|0]=e>>>16;F[a+3|0]=e>>>24;F[a+4|0]=c;F[a+5|0]=c>>>8;F[a+6|0]=c>>>16;F[a+7|0]=c>>>24;a=Hb(f,d+12|0,d,-1);if(F[d+11|0]<0){bl(H[d>>2])}if(a-1>>>0>20){break b}}c=5;if((Qb(f)|0)<4){break a}}c=H[g+56>>2]}a=Qb(f);if((c|0)==1){c:{if((a|0)>3){break c}h=d,i=_j(H[b+4>>2],0),H[h+12>>2]=i;a=$j(H[b+4>>2]);if(!a){break c}a=H[a+28>>2]-1|0;if(a>>>0<11&1279>>>a){c=6;break a}a=hl(32);H[d>>2]=a;H[d+4>>2]=17;H[d+8>>2]=-2147483616;F[a+17|0]=0;F[a+16|0]=I[1261];b=I[1257]|I[1258]<<8|(I[1259]<<16|I[1260]<<24);c=I[1253]|I[1254]<<8|(I[1255]<<16|I[1256]<<24);F[a+8|0]=c;F[a+9|0]=c>>>8;F[a+10|0]=c>>>16;F[a+11|0]=c>>>24;F[a+12|0]=b;F[a+13|0]=b>>>8;F[a+14|0]=b>>>16;F[a+15|0]=b>>>24;b=I[1249]|I[1250]<<8|(I[1251]<<16|I[1252]<<24);c=I[1245]|I[1246]<<8|(I[1247]<<16|I[1248]<<24);F[a|0]=c;F[a+1|0]=c>>>8;F[a+2|0]=c>>>16;F[a+3|0]=c>>>24;F[a+4|0]=b;F[a+5|0]=b>>>8;F[a+6|0]=b>>>16;F[a+7|0]=b>>>24;a=Hb(f,d+12|0,d,-1);if(F[d+11|0]<0){bl(H[d>>2])}c=6;if((a|0)>0){break a}}c=0;break a}c=0;if((a|0)>7){break a}c=1;if((Qb(f)|0)>1){break a}c=K[H[b+4>>2]+80>>2]<40?1:4}ha=d+16|0;return c}function ad(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0;c=ha-32|0;ha=c;d=a- -64|0;zb(H[d>>2],b);if(H[d>>2]){H[c>>2]=0;H[c+4>>2]=0;H[c+24>>2]=0;H[c+28>>2]=0;H[c+16>>2]=0;H[c+20>>2]=0;H[c+8>>2]=0;H[c+12>>2]=0;Be(c);d=H[a+64>>2];if((d|0)>0){while(1){f=d-1|0;Ce(c,H[H[a+60>>2]+(f>>>3&536870908)>>2]>>>f&1);e=d>>>0>1;d=f;if(e){continue}break}}De(c,b);ze(c)}zb(H[a+76>>2],b);if(H[a+76>>2]){H[c>>2]=0;H[c+4>>2]=0;H[c+24>>2]=0;H[c+28>>2]=0;H[c+16>>2]=0;H[c+20>>2]=0;H[c+8>>2]=0;H[c+12>>2]=0;Be(c);d=H[a+76>>2];if((d|0)>=2){while(1){f=d-2|0;Ce(c,H[H[a+72>>2]+(f>>>3&536870908)>>2]>>>f&1);e=d-1|0;Ce(c,H[H[a+72>>2]+(e>>>3&536870908)>>2]>>>e&1);e=d>>>0>3;d=f;if(e){continue}break}}De(c,b);ze(c)}zb(H[a+88>>2],b);if(H[a+88>>2]){H[c>>2]=0;H[c+4>>2]=0;H[c+24>>2]=0;H[c+28>>2]=0;H[c+16>>2]=0;H[c+20>>2]=0;H[c+8>>2]=0;H[c+12>>2]=0;Be(c);d=H[a+88>>2];if((d|0)>=3){while(1){f=d-3|0;Ce(c,H[H[a+84>>2]+(f>>>3&536870908)>>2]>>>f&1);e=d-2|0;Ce(c,H[H[a+84>>2]+(e>>>3&536870908)>>2]>>>e&1);e=d-1|0;Ce(c,H[H[a+84>>2]+(e>>>3&536870908)>>2]>>>e&1);e=d>>>0>5;d=f;if(e){continue}break}}De(c,b);ze(c)}zb(H[a+100>>2],b);if(H[a+100>>2]){H[c>>2]=0;H[c+4>>2]=0;H[c+24>>2]=0;H[c+28>>2]=0;H[c+16>>2]=0;H[c+20>>2]=0;H[c+8>>2]=0;H[c+12>>2]=0;Be(c);d=H[a+100>>2];if((d|0)>=4){while(1){f=d-4|0;Ce(c,H[H[a+96>>2]+(f>>>3&536870908)>>2]>>>f&1);e=d-3|0;Ce(c,H[H[a+96>>2]+(e>>>3&536870908)>>2]>>>e&1);e=d-2|0;Ce(c,H[H[a+96>>2]+(e>>>3&536870908)>>2]>>>e&1);e=d-1|0;Ce(c,H[H[a+96>>2]+(e>>>3&536870908)>>2]>>>e&1);e=d>>>0>7;d=f;if(e){continue}break}}De(c,b);ze(c)}H[c>>2]=H[a+12>>2];d=H[b+20>>2];a:{if(!!H[b+16>>2]&(d|0)>=0|(d|0)>0){break a}f=c+4|0;Da(b,H[b+4>>2],c,f);d=H[b+20>>2];e=H[b+16>>2];H[c>>2]=H[a+16>>2];if(!!e&(d|0)>=0|(d|0)>0){break a}Da(b,H[b+4>>2],c,f)}ha=c+32|0;return 1}function Ud(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0;c=ha-32|0;ha=c;zb(H[a+48>>2],b);if(H[a+48>>2]){H[c>>2]=0;H[c+4>>2]=0;H[c+24>>2]=0;H[c+28>>2]=0;H[c+16>>2]=0;H[c+20>>2]=0;H[c+8>>2]=0;H[c+12>>2]=0;Be(c);d=H[a+48>>2];if((d|0)>0){while(1){f=d-1|0;Ce(c,H[H[a+44>>2]+(f>>>3&536870908)>>2]>>>f&1);e=d>>>0>1;d=f;if(e){continue}break}}De(c,b);ze(c)}zb(H[a+60>>2],b);if(H[a+60>>2]){H[c>>2]=0;H[c+4>>2]=0;H[c+24>>2]=0;H[c+28>>2]=0;H[c+16>>2]=0;H[c+20>>2]=0;H[c+8>>2]=0;H[c+12>>2]=0;Be(c);d=H[a+60>>2];if((d|0)>=2){while(1){f=d-2|0;Ce(c,H[H[a+56>>2]+(f>>>3&536870908)>>2]>>>f&1);e=d-1|0;Ce(c,H[H[a+56>>2]+(e>>>3&536870908)>>2]>>>e&1);e=d>>>0>3;d=f;if(e){continue}break}}De(c,b);ze(c)}zb(H[a+72>>2],b);if(H[a+72>>2]){H[c>>2]=0;H[c+4>>2]=0;H[c+24>>2]=0;H[c+28>>2]=0;H[c+16>>2]=0;H[c+20>>2]=0;H[c+8>>2]=0;H[c+12>>2]=0;Be(c);d=H[a+72>>2];if((d|0)>=3){while(1){f=d-3|0;Ce(c,H[H[a+68>>2]+(f>>>3&536870908)>>2]>>>f&1);e=d-2|0;Ce(c,H[H[a+68>>2]+(e>>>3&536870908)>>2]>>>e&1);e=d-1|0;Ce(c,H[H[a+68>>2]+(e>>>3&536870908)>>2]>>>e&1);e=d>>>0>5;d=f;if(e){continue}break}}De(c,b);ze(c)}zb(H[a+84>>2],b);if(H[a+84>>2]){H[c>>2]=0;H[c+4>>2]=0;H[c+24>>2]=0;H[c+28>>2]=0;H[c+16>>2]=0;H[c+20>>2]=0;H[c+8>>2]=0;H[c+12>>2]=0;Be(c);d=H[a+84>>2];if((d|0)>=4){while(1){f=d-4|0;Ce(c,H[H[a+80>>2]+(f>>>3&536870908)>>2]>>>f&1);e=d-3|0;Ce(c,H[H[a+80>>2]+(e>>>3&536870908)>>2]>>>e&1);e=d-2|0;Ce(c,H[H[a+80>>2]+(e>>>3&536870908)>>2]>>>e&1);e=d-1|0;Ce(c,H[H[a+80>>2]+(e>>>3&536870908)>>2]>>>e&1);e=d>>>0>7;d=f;if(e){continue}break}}De(c,b);ze(c)}H[c>>2]=H[a+12>>2];d=H[b+20>>2];a:{if(!!H[b+16>>2]&(d|0)>=0|(d|0)>0){break a}f=c+4|0;Da(b,H[b+4>>2],c,f);d=H[b+20>>2];e=H[b+16>>2];H[c>>2]=H[a+24>>2];if(!!e&(d|0)>=0|(d|0)>0){break a}Da(b,H[b+4>>2],c,f)}ha=c+32|0;return 1}function De(a,b){var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0;g=ha-32|0;ha=g;d=H[a>>2];e=H[d>>2];c=H[d+4>>2];j=+(e>>>0)+ +(c>>>0)*4294967296;c=H[d+12>>2]+c|0;d=H[d+8>>2];e=d+e|0;c=e>>>0>>0?c+1|0:c;d=!(c|e);j=j/(+((d?1:e)>>>0)+ +((d?0:c)>>>0)*4294967296)*256+.5;a:{if(j<4294967296&j>=0){c=~~j>>>0;break a}c=0}c=c>>>0<255?c:255;k=!c+c|0;F[g+23|0]=k;i=H[a+16>>2];n=H[a+12>>2];H[g+16>>2]=0;H[g+8>>2]=0;H[g+12>>2]=0;b:{c:{c=(i-n<<1)- -64|0;if(c){if((c|0)<0){break c}h=hl(c);H[g+8>>2]=h;d=c+h|0;H[g+16>>2]=d;lk(h,0,c);H[g+12>>2]=d}c=H[a+28>>2]-1|0;if((c|0)<0){e=4096;break b}l=0-k|0;o=l&255;p=H[a+24>>2];e=4096;while(1){m=p&1<>>0<=e>>>0){F[f+h|0]=e;f=f+1|0;e=e>>>8|0}q=256-d|0;d=(d<<3)+12784|0;Sl(H[d>>2],0,e,0);e=((m?0:o)+e|0)+N(q,ka+e>>>H[d+4>>2]|0)|0;c=c-1|0;if((c|0)>=0){continue}break}break b}Ka();X()}if((i|0)!=(n|0)){l=0-k|0;o=l&255;while(1){i=i-4|0;p=H[i>>2];c=31;while(1){d=c;m=p&1<>>0<=e>>>0){F[f+h|0]=e;f=f+1|0;e=e>>>8|0}q=256-c|0;c=(c<<3)+12784|0;Sl(H[c>>2],0,e,0);e=((m?0:o)+e|0)+N(q,ka+e>>>H[c+4>>2]|0)|0;c=d-1|0;if(d){continue}break}if((i|0)!=(n|0)){continue}break}}c=e-4096|0;d:{if(c>>>0<=63){F[f+h|0]=c;f=f+1|0;break d}if(c>>>0<=16383){c=f+h|0;d=e+12288|0;F[c|0]=d;F[c+1|0]=d>>>8;f=f+2|0;break d}if(c>>>0>4194303){break d}c=f+h|0;d=e+8384512|0;F[c|0]=d;F[c+2|0]=d>>>16;F[c+1|0]=d>>>8;f=f+3|0}c=H[b+20>>2];if(!H[b+16>>2]&(c|0)<=0|(c|0)<0){Da(b,H[b+4>>2],g+23|0,g+24|0)}zb(f,b);c=H[b+20>>2];if(!H[b+16>>2]&(c|0)<=0|(c|0)<0){Da(b,H[b+4>>2],h,f+h|0)}H[g+24>>2]=0;H[g+28>>2]=0;Ae(a,g+24|0);H[a+24>>2]=0;H[a+28>>2]=0;H[a+16>>2]=H[a+12>>2];if(h){bl(h)}ha=g+32|0}function ge(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0;d=ha-32|0;ha=d;f=(e&1073741823)!=(e|0)?-1:e<<2;l=lk(hl(f),0,f);f=H[a+40>>2];f=H[f+4>>2]-H[f>>2]|0;if((f|0)>=5){p=H[a+36>>2];o=H[a+32>>2];q=e&-2;r=e&1;s=a+8|0;f=f>>>2|0;while(1){j=H[a+40>>2];g=H[j>>2];a:{b:{h=H[j+4>>2]-g>>2;j=f-1|0;if(h>>>0>j>>>0){t=N(e,j);g=H[g+(j<<2)>>2];if((g|0)==-1){break b}g=H[H[o+12>>2]+(g<<2)>>2];if((g|0)==-1){break b}k=H[p>>2];h=H[o>>2];m=H[k+(H[h+(g<<2)>>2]<<2)>>2];i=g+1|0;i=(i>>>0)%3|0?i:g-2|0;if((i|0)!=-1){i=H[h+(i<<2)>>2]}else{i=-1}c:{d:{if((g>>>0)%3|0){g=g-1|0;break d}g=g+2|0;n=-1;if((g|0)==-1){break c}}n=H[h+(g<<2)>>2]}if((j|0)<=(m|0)){break b}g=H[(i<<2)+k>>2];if((g|0)>=(j|0)){break b}h=H[k+(n<<2)>>2];if((h|0)>=(j|0)){break b}e:{if((e|0)<=0){break e}h=N(e,h);k=N(e,g);m=N(e,m);g=0;n=0;if((e|0)!=1){while(1){H[(g<<2)+l>>2]=(H[(g+h<<2)+b>>2]+H[(g+k<<2)+b>>2]|0)-H[(g+m<<2)+b>>2];i=g|1;H[(i<<2)+l>>2]=(H[(h+i<<2)+b>>2]+H[(i+k<<2)+b>>2]|0)-H[(i+m<<2)+b>>2];g=g+2|0;n=n+2|0;if((q|0)!=(n|0)){continue}break}}if(!r){break e}H[(g<<2)+l>>2]=(H[(g+h<<2)+b>>2]+H[(g+k<<2)+b>>2]|0)-H[(g+m<<2)+b>>2]}g=H[l>>2];h=H[l+4>>2];break a}Yc();X()}h=(N(f-2|0,e)<<2)+b|0;g=H[h>>2];h=H[h+4>>2]}k=t<<2;m=k+b|0;i=H[m+4>>2];H[d+16>>2]=H[m>>2];H[d+20>>2]=i;H[d+8>>2]=g;H[d+12>>2]=h;Rd(d+24|0,s,d+16|0,d+8|0);g=c+k|0;H[g>>2]=H[d+24>>2];H[g+4>>2]=H[d+28>>2];g=(f|0)>2;f=j;if(g){continue}break}}if((e|0)>0){lk(l,0,e<<2)}e=H[l>>2];f=H[l+4>>2];j=H[b+4>>2];H[d+16>>2]=H[b>>2];H[d+20>>2]=j;H[d+8>>2]=e;H[d+12>>2]=f;Rd(d+24|0,a+8|0,d+16|0,d+8|0);H[c>>2]=H[d+24>>2];H[c+4>>2]=H[d+28>>2];bl(l);ha=d+32|0;return 1}function bk(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0;k=ha-16|0;ha=k;H[k+8>>2]=c;e=H[a+12>>2];d=H[a+8>>2];f=e-d>>2;a:{if((f|0)>(b|0)){break a}h=b+1|0;if(h>>>0>f>>>0){f=h-f|0;g=H[a+16>>2];d=H[a+12>>2];if(f>>>0<=g-d>>2>>>0){if(f){e=d;d=f<<2;d=lk(e,0,d)+d|0}H[a+12>>2]=d;break a}b:{c:{d:{h=H[a+8>>2];i=d-h>>2;e=i+f|0;if(e>>>0<1073741824){g=g-h|0;l=g>>1;g=g>>>0<2147483644?e>>>0>>0?l:e:1073741823;if(g){if(g>>>0>=1073741824){break d}j=hl(g<<2)}e=(i<<2)+j|0;i=f<<2;f=lk(e,0,i);i=f+i|0;g=(g<<2)+j|0;if((d|0)==(h|0)){break c}while(1){d=d-4|0;f=H[d>>2];H[d>>2]=0;e=e-4|0;H[e>>2]=f;if((d|0)!=(h|0)){continue}break}H[a+16>>2]=g;f=H[a+12>>2];H[a+12>>2]=i;d=H[a+8>>2];H[a+8>>2]=e;if((d|0)==(f|0)){break b}while(1){f=f-4|0;e=H[f>>2];H[f>>2]=0;if(e){Lb(e)}if((d|0)!=(f|0)){continue}break}break b}Ka();X()}_a();X()}H[a+16>>2]=g;H[a+12>>2]=i;H[a+8>>2]=f}if(d){bl(d)}break a}if(f>>>0<=h>>>0){break a}d=d+(h<<2)|0;if((d|0)!=(e|0)){while(1){e=e-4|0;c=H[e>>2];H[e>>2]=0;if(c){Lb(c)}if((d|0)!=(e|0)){continue}break}c=H[k+8>>2]}H[a+12>>2]=d}e:{f:{d=H[c+56>>2];g:{if((d|0)>4){break g}e=N(d,12)+a|0;d=H[e+24>>2];if((d|0)!=H[e+28>>2]){H[d>>2]=b;H[e+24>>2]=d+4;break g}h=H[e+20>>2];f=d-h|0;j=f>>2;d=j+1|0;if(d>>>0>=1073741824){break f}g=f>>1;g=f>>>0<2147483644?d>>>0>>0?g:d:1073741823;if(g){if(g>>>0>=1073741824){break e}d=hl(g<<2)}else{d=0}j=d+(j<<2)|0;H[j>>2]=b;if((f|0)>0){jk(d,h,f)}H[e+20>>2]=d;H[e+24>>2]=j+4;H[e+28>>2]=d+(g<<2);if(!h){break g}bl(h)}H[c+60>>2]=b;a=H[a+8>>2];H[k+8>>2]=0;b=a+(b<<2)|0;a=H[b>>2];H[b>>2]=c;if(a){Lb(a)}a=H[k+8>>2];H[k+8>>2]=0;if(a){Lb(a)}ha=k+16|0;return}Ka();X()}_a();X()}function jd(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0;H[a+8>>2]=e;H[a- -64>>2]=f;o=a+32|0;f=H[o>>2];g=H[a+36>>2]-f>>2;a:{if(g>>>0>>0){Na(o,e-g|0);break a}if(e>>>0>=g>>>0){break a}H[a+36>>2]=f+(e<<2)}b:{if(!d){break b}f=H[b>>2];c:{if((d|0)<2){d=f;break c}h=1;g=d-1|0;n=g&1;d:{if((d|0)==2){d=f;break d}q=g&-2;g=0;d=f;while(1){j=(h<<2)+b|0;k=H[j+4>>2];l=H[j>>2];i=(l|0)<(d|0);d=i?l:d;j=(d|0)>(k|0);d=j?k:d;f=i?f:(f|0)<(l|0)?l:f;f=j?f:(f|0)<(k|0)?k:f;h=h+2|0;g=g+2|0;if((q|0)!=(g|0)){continue}break}}if(!n){break c}h=H[(h<<2)+b>>2];g=(h|0)<(d|0);d=g?h:d;f=g?f:(f|0)<(h|0)?h:f}H[a+16>>2]=f;H[a+12>>2]=d;g=(f>>31)-((d>>31)+(d>>>0>f>>>0)|0)|0;d=f-d|0;if(!g&d>>>0>2147483646|g){break b}f=d+1|0;H[a+20>>2]=f;d=f>>>1|0;H[a+24>>2]=d;H[a+28>>2]=0-d;if(f&1){break b}H[a+24>>2]=d-1}r=1;e:{d=H[a+56>>2];d=H[d+4>>2]-H[d>>2]|0;if((d|0)>0){t=a+60|0;q=a+68|0;n=d>>>2|0;while(1){d=H[a+56>>2];f=H[d>>2];i=n-1|0;if(i>>>0>=H[d+4>>2]-f>>2>>>0){break e}r=kd(t,H[f+(i<<2)>>2],b,i);if(!r){return 0}f=H[a+8>>2];if((f|0)>0){d=N(e,i)<<2;k=d+c|0;l=b+d|0;j=H[o>>2];p=0;g=q;while(1){h=j;if((f|0)>0){h=H[o>>2];f=0;while(1){m=f<<2;s=H[m+g>>2];d=H[a+16>>2];f:{if((s|0)>(d|0)){H[h+m>>2]=d;break f}m=h+m|0;d=H[a+12>>2];if((d|0)>(s|0)){H[m>>2]=d;break f}H[m>>2]=s}f=f+1|0;if((f|0)>2]){continue}break}}f=p<<2;d=f+k|0;f=H[f+l>>2]-H[f+h>>2]|0;H[d>>2]=f;g:{if((f|0)>2]){f=f+H[a+20>>2]|0}else{if((f|0)<=H[a+24>>2]){break g}f=f-H[a+20>>2]|0}H[d>>2]=f}g=h;f=H[a+8>>2];p=p+1|0;if((f|0)>(p|0)){continue}break}}d=(n|0)>1;n=i;if(d){continue}break}}return r|0}Yc();X()}function Cd(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0;H[a+8>>2]=e;H[a- -64>>2]=f;o=a+32|0;f=H[o>>2];g=H[a+36>>2]-f>>2;a:{if(g>>>0>>0){Na(o,e-g|0);break a}if(e>>>0>=g>>>0){break a}H[a+36>>2]=f+(e<<2)}b:{if(!d){break b}f=H[b>>2];c:{if((d|0)<2){d=f;break c}h=1;g=d-1|0;n=g&1;d:{if((d|0)==2){d=f;break d}q=g&-2;g=0;d=f;while(1){j=(h<<2)+b|0;k=H[j+4>>2];l=H[j>>2];i=(l|0)<(d|0);d=i?l:d;j=(d|0)>(k|0);d=j?k:d;f=i?f:(f|0)<(l|0)?l:f;f=j?f:(f|0)<(k|0)?k:f;h=h+2|0;g=g+2|0;if((q|0)!=(g|0)){continue}break}}if(!n){break c}h=H[(h<<2)+b>>2];g=(h|0)<(d|0);d=g?h:d;f=g?f:(f|0)<(h|0)?h:f}H[a+16>>2]=f;H[a+12>>2]=d;g=(f>>31)-((d>>31)+(d>>>0>f>>>0)|0)|0;d=f-d|0;if(!g&d>>>0>2147483646|g){break b}f=d+1|0;H[a+20>>2]=f;d=f>>>1|0;H[a+24>>2]=d;H[a+28>>2]=0-d;if(f&1){break b}H[a+24>>2]=d-1}r=1;e:{d=H[a+56>>2];d=H[d+4>>2]-H[d>>2]|0;if((d|0)>0){t=a+60|0;q=a+68|0;n=d>>>2|0;while(1){d=H[a+56>>2];f=H[d>>2];i=n-1|0;if(i>>>0>=H[d+4>>2]-f>>2>>>0){break e}r=Dd(t,H[f+(i<<2)>>2],b,i);if(!r){return 0}f=H[a+8>>2];if((f|0)>0){d=N(e,i)<<2;k=d+c|0;l=b+d|0;j=H[o>>2];p=0;g=q;while(1){h=j;if((f|0)>0){h=H[o>>2];f=0;while(1){m=f<<2;s=H[m+g>>2];d=H[a+16>>2];f:{if((s|0)>(d|0)){H[h+m>>2]=d;break f}m=h+m|0;d=H[a+12>>2];if((d|0)>(s|0)){H[m>>2]=d;break f}H[m>>2]=s}f=f+1|0;if((f|0)>2]){continue}break}}f=p<<2;d=f+k|0;f=H[f+l>>2]-H[f+h>>2]|0;H[d>>2]=f;g:{if((f|0)>2]){f=f+H[a+20>>2]|0}else{if((f|0)<=H[a+24>>2]){break g}f=f-H[a+20>>2]|0}H[d>>2]=f}g=h;f=H[a+8>>2];p=p+1|0;if((f|0)>(p|0)){continue}break}}d=(n|0)>1;n=i;if(d){continue}break}}return r|0}Yc();X()}function Ta(a,b,c){var d=0,e=O(0),f=0,g=0,h=0,i=0,j=0,k=0,l=O(0),m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=O(0),v=0,w=0,x=0,y=0;n=ha-16|0;ha=n;a:{if(!(H[a+4>>2]!=-1|c-1>>>0>29)){H[a+4>>2]=c;h=F[b+24|0];c=0;H[a+20>>2]=0;H[n+8>>2]=0;H[n>>2]=0;H[n+4>>2]=0;if(h){if((h|0)<0){break a}c=h<<2;d=hl(c);c=lk(d,0,c)+c|0}j=H[a+8>>2];if(j){H[a+12>>2]=j;bl(j)}H[a+8>>2]=d;H[a+16>>2]=c;H[a+12>>2]=c;c=(h&1073741823)!=(h|0)?-1:h<<2;f=hl(c);c=hl(c);p=H[b+44>>2];g=c;j=H[b+48>>2];c=j;m=H[b>>2];i=H[b+40>>2];q=jk(g,c+H[m>>2]|0,i);r=jk(d,c+H[m>>2]|0,i);s=jk(f,c+H[m>>2]|0,i);b=H[b+80>>2];b:{if(b>>>0<2){break b}f=b;if(h){g=1;c=0;while(1){t=H[m>>2];b=Sl(g,c,i,p)+j|0;k=jk(q,t+b|0,i);b=0;while(1){o=b<<2;d=o+r|0;e=L[k+o>>2];if(L[d>>2]>e){L[d>>2]=e}d=o+s|0;if(e>L[d>>2]){L[d>>2]=e}b=b+1|0;if((h|0)!=(b|0)){continue}break}b=c;c=g+1|0;b=c?b:b+1|0;g=c;c=b;if((f|0)!=(g|0)|b){continue}break}break b}g=1;c=0;d=0-!f|0;k=f-1|0;v=k&1;if((b|0)!=2){o=k&-2;f=0;while(1){k=H[m>>2];b=Sl(g,c,i,p)+j|0;w=jk(q,k+b|0,i);x=H[m>>2];b=c;k=g+1|0;b=k?b:b+1|0;b=Sl(i,p,k,b)+j|0;jk(w,x+b|0,i);b=g+2|0;c=b>>>0<2?c+1|0:c;g=b;b=t+2|0;f=b>>>0<2?f+1|0:f;t=b;if((o|0)!=(b|0)|(d|0)!=(f|0)){continue}break}}if(!(v|y)){break b}f=H[m>>2];b=Sl(g,c,i,p)+j|0;jk(q,f+b|0,i)}c=1;u=L[a+20>>2];c:{d:{if((h|0)<=0){c=0;break d}l=L[r>>2];if(l!=l|O(P(l))==O(Z)){break c}b=0;while(1){e=L[s+(b<<2)>>2];if(e!=e|O(P(e))==O(Z)){break c}e=O(e-l);if(e>u){L[a+20>>2]=e;u=e}b=b+1|0;c=(h|0)>(b|0);if((b|0)==(h|0)){break d}l=L[r+(b<<2)>>2];if(l!=l){break c}if(O(P(l))!=O(Z)){continue}break}break c}if(u!=O(0)){break c}H[a+20>>2]=1065353216}bl(q);bl(s);d=c^1}ha=n+16|0;return d&1}Ka();X()}function Qd(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0;d=ha-32|0;ha=d;f=(e&1073741823)!=(e|0)?-1:e<<2;l=lk(hl(f),0,f);f=H[a+40>>2];f=H[f+4>>2]-H[f>>2]|0;if((f|0)>=5){p=H[a+36>>2];n=H[a+32>>2];q=e&-2;r=e&1;s=a+8|0;f=f>>>2|0;while(1){i=H[a+40>>2];g=H[i>>2];a:{b:{h=H[i+4>>2]-g>>2;i=f-1|0;if(h>>>0>i>>>0){t=N(e,i);g=H[g+(i<<2)>>2];if((g|0)==-1|H[H[n>>2]+(g>>>3&536870908)>>2]>>>g&1){break b}g=H[H[H[n+64>>2]+12>>2]+(g<<2)>>2];if((g|0)==-1){break b}k=H[p>>2];h=H[n+28>>2];m=H[k+(H[h+(g<<2)>>2]<<2)>>2];if((m|0)>=(i|0)){break b}j=g+1|0;j=H[k+(H[h+(((j>>>0)%3|0?j:g-2|0)<<2)>>2]<<2)>>2];if((j|0)>=(i|0)){break b}g=H[k+(H[h+(g+((g>>>0)%3|0?-1:2)<<2)>>2]<<2)>>2];if((g|0)>=(i|0)){break b}c:{if((e|0)<=0){break c}h=N(e,g);k=N(e,j);m=N(e,m);g=0;o=0;if((e|0)!=1){while(1){H[(g<<2)+l>>2]=(H[(g+h<<2)+b>>2]+H[(g+k<<2)+b>>2]|0)-H[(g+m<<2)+b>>2];j=g|1;H[(j<<2)+l>>2]=(H[(h+j<<2)+b>>2]+H[(j+k<<2)+b>>2]|0)-H[(j+m<<2)+b>>2];g=g+2|0;o=o+2|0;if((q|0)!=(o|0)){continue}break}}if(!r){break c}H[(g<<2)+l>>2]=(H[(g+h<<2)+b>>2]+H[(g+k<<2)+b>>2]|0)-H[(g+m<<2)+b>>2]}g=H[l>>2];h=H[l+4>>2];break a}Yc();X()}h=(N(f-2|0,e)<<2)+b|0;g=H[h>>2];h=H[h+4>>2]}k=t<<2;m=k+b|0;j=H[m+4>>2];H[d+16>>2]=H[m>>2];H[d+20>>2]=j;H[d+8>>2]=g;H[d+12>>2]=h;Rd(d+24|0,s,d+16|0,d+8|0);g=c+k|0;H[g>>2]=H[d+24>>2];H[g+4>>2]=H[d+28>>2];g=(f|0)>2;f=i;if(g){continue}break}}if((e|0)>0){lk(l,0,e<<2)}e=H[l>>2];f=H[l+4>>2];i=H[b+4>>2];H[d+16>>2]=H[b>>2];H[d+20>>2]=i;H[d+8>>2]=e;H[d+12>>2]=f;Rd(d+24|0,a+8|0,d+16|0,d+8|0);H[c>>2]=H[d+24>>2];H[c+4>>2]=H[d+28>>2];bl(l);ha=d+32|0;return 1}function sb(a,b,c,d){var e=0,f=0,g=0,h=0,i=O(0),j=0,k=0,l=O(0);j=H[c>>2];g=j^318;a:{b:{f=H[b+4>>2];if(!f){break b}c=f-1|0;if(c&f){e=g;if(e>>>0>=f>>>0){e=(g>>>0)%(f>>>0)|0}c=H[H[b>>2]+(e<<2)>>2];if(!c){break b}while(1){c=H[c>>2];if(!c){break b}h=H[c+4>>2];if((h|0)!=(g|0)){if(f>>>0<=h>>>0){h=(h>>>0)%(f>>>0)|0}if((e|0)!=(h|0)){break b}}if(H[c+8>>2]!=(j|0)){continue}break}b=0;break a}e=c&g;c=H[H[b>>2]+(e<<2)>>2];if(!c){break b}h=f-1|0;while(1){c=H[c>>2];if(!c){break b}k=H[c+4>>2];if((k|0)!=(g|0)&(h&k)!=(e|0)){break b}if(H[c+8>>2]!=(j|0)){continue}break}b=0;break a}c=hl(16);H[c+8>>2]=H[d>>2];d=H[d+4>>2];H[c+4>>2]=g;H[c+12>>2]=d;H[c>>2]=0;i=O(H[b+12>>2]+1>>>0);l=L[b+16>>2];c:{if(i>O(l*O(f>>>0))?0:f){break c}d=2;h=(f-1&f)!=0|f>>>0<3|f<<1;i=O(U(O(i/l)));d:{if(i=O(0)){e=~~i>>>0;break d}e=0}e=e>>>0>>0?h:e;e:{if((e|0)==1){break e}if(!(e&e-1)){d=e;break e}d=Zk(e);f=H[b+4>>2]}f:{if(d>>>0<=f>>>0){if(d>>>0>=f>>>0){break f}h=f>>>0<3;i=O(U(O(O(K[b+12>>2])/L[b+16>>2])));g:{if(i=O(0)){e=~~i>>>0;break g}e=0}h:{i:{if(h){break i}if(Vl(f)>>>0>1){break i}e=e>>>0<2?e:1<<32-Q(e-1|0);break h}e=Zk(e)}d=d>>>0>e>>>0?d:e;if(d>>>0>=f>>>0){break f}}ub(b,d)}f=H[b+4>>2];d=f-1|0;if(!(d&f)){e=d&g;break c}if(f>>>0>g>>>0){e=g;break c}e=(g>>>0)%(f>>>0)|0}g=H[b>>2]+(e<<2)|0;d=H[g>>2];j:{k:{if(!d){d=b+8|0;H[c>>2]=H[d>>2];H[b+8>>2]=c;H[g>>2]=d;d=H[c>>2];if(!d){break j}d=H[d+4>>2];g=f-1|0;l:{if(!(g&f)){d=d&g;break l}if(d>>>0>>0){break l}d=(d>>>0)%(f>>>0)|0}d=H[b>>2]+(d<<2)|0;break k}H[c>>2]=H[d>>2]}H[d>>2]=c}H[b+12>>2]=H[b+12>>2]+1;b=1}F[a+4|0]=b;H[a>>2]=c}function Ee(a){var b=0,c=0,d=0,e=0;e=ha-16|0;ha=e;H[a+4>>2]=0;H[a+8>>2]=0;H[a>>2]=a+4;H[a+12>>2]=a+16;H[a+16>>2]=0;H[a+20>>2]=0;a=a+24|0;H[a+4>>2]=0;H[a+8>>2]=0;H[a>>2]=a+4;c=hl(32);H[e>>2]=c;H[e+4>>2]=20;H[e+8>>2]=-2147483616;F[c+20|0]=0;b=I[1359]|I[1360]<<8|(I[1361]<<16|I[1362]<<24);F[c+16|0]=b;F[c+17|0]=b>>>8;F[c+18|0]=b>>>16;F[c+19|0]=b>>>24;d=I[1355]|I[1356]<<8|(I[1357]<<16|I[1358]<<24);b=I[1351]|I[1352]<<8|(I[1353]<<16|I[1354]<<24);F[c+8|0]=b;F[c+9|0]=b>>>8;F[c+10|0]=b>>>16;F[c+11|0]=b>>>24;F[c+12|0]=d;F[c+13|0]=d>>>8;F[c+14|0]=d>>>16;F[c+15|0]=d>>>24;d=I[1347]|I[1348]<<8|(I[1349]<<16|I[1350]<<24);b=I[1343]|I[1344]<<8|(I[1345]<<16|I[1346]<<24);F[c|0]=b;F[c+1|0]=b>>>8;F[c+2|0]=b>>>16;F[c+3|0]=b>>>24;F[c+4|0]=d;F[c+5|0]=d>>>8;F[c+6|0]=d>>>16;F[c+7|0]=d>>>24;ki(a,e,1);if(F[e+11|0]<0){bl(H[e>>2])}b=hl(32);H[e>>2]=b;H[e+4>>2]=22;H[e+8>>2]=-2147483616;F[b+22|0]=0;c=I[1338]|I[1339]<<8|(I[1340]<<16|I[1341]<<24);d=I[1334]|I[1335]<<8|(I[1336]<<16|I[1337]<<24);F[b+14|0]=d;F[b+15|0]=d>>>8;F[b+16|0]=d>>>16;F[b+17|0]=d>>>24;F[b+18|0]=c;F[b+19|0]=c>>>8;F[b+20|0]=c>>>16;F[b+21|0]=c>>>24;c=I[1332]|I[1333]<<8|(I[1334]<<16|I[1335]<<24);d=I[1328]|I[1329]<<8|(I[1330]<<16|I[1331]<<24);F[b+8|0]=d;F[b+9|0]=d>>>8;F[b+10|0]=d>>>16;F[b+11|0]=d>>>24;F[b+12|0]=c;F[b+13|0]=c>>>8;F[b+14|0]=c>>>16;F[b+15|0]=c>>>24;c=I[1324]|I[1325]<<8|(I[1326]<<16|I[1327]<<24);d=I[1320]|I[1321]<<8|(I[1322]<<16|I[1323]<<24);F[b|0]=d;F[b+1|0]=d>>>8;F[b+2|0]=d>>>16;F[b+3|0]=d>>>24;F[b+4|0]=c;F[b+5|0]=c>>>8;F[b+6|0]=c>>>16;F[b+7|0]=c>>>24;ki(a,e,1);if(F[e+11|0]<0){bl(H[e>>2])}ha=e+16|0}function bh(a,b,c,d){var e=0,f=0,g=0,h=0,i=O(0),j=0,k=O(0);g=H[c>>2];a:{b:{f=H[b+4>>2];if(!f){break b}c=f-1|0;if(c&f){e=g;if(e>>>0>=f>>>0){e=(g>>>0)%(f>>>0)|0}c=H[H[b>>2]+(e<<2)>>2];if(!c){break b}while(1){c=H[c>>2];if(!c){break b}h=H[c+4>>2];if((h|0)!=(g|0)){if(f>>>0<=h>>>0){h=(h>>>0)%(f>>>0)|0}if((e|0)!=(h|0)){break b}}if((g|0)!=H[c+8>>2]){continue}break}b=0;break a}e=c&g;c=H[H[b>>2]+(e<<2)>>2];if(!c){break b}h=f-1|0;while(1){c=H[c>>2];if(!c){break b}j=H[c+4>>2];if((g|0)!=(j|0)&(h&j)!=(e|0)){break b}if((g|0)!=H[c+8>>2]){continue}break}b=0;break a}c=hl(16);d=H[H[d>>2]>>2];H[c+12>>2]=0;H[c+8>>2]=d;H[c+4>>2]=g;H[c>>2]=0;k=O(H[b+12>>2]+1>>>0);i=L[b+16>>2];c:{if(k>O(i*O(f>>>0))?0:f){break c}d=2;h=(f-1&f)!=0|f>>>0<3|f<<1;i=O(U(O(k/i)));d:{if(i=O(0)){e=~~i>>>0;break d}e=0}e=e>>>0>>0?h:e;e:{if((e|0)==1){break e}if(!(e&e-1)){d=e;break e}d=Zk(e);f=H[b+4>>2]}f:{if(d>>>0<=f>>>0){if(d>>>0>=f>>>0){break f}h=f>>>0<3;i=O(U(O(O(K[b+12>>2])/L[b+16>>2])));g:{if(i=O(0)){e=~~i>>>0;break g}e=0}h:{i:{if(h){break i}if(Vl(f)>>>0>1){break i}e=e>>>0<2?e:1<<32-Q(e-1|0);break h}e=Zk(e)}d=d>>>0>e>>>0?d:e;if(f>>>0<=d>>>0){break f}}ub(b,d)}f=H[b+4>>2];d=f-1|0;if(!(d&f)){e=d&g;break c}if(f>>>0>g>>>0){e=g;break c}e=(g>>>0)%(f>>>0)|0}g=H[b>>2]+(e<<2)|0;d=H[g>>2];j:{k:{if(!d){d=b+8|0;H[c>>2]=H[d>>2];H[b+8>>2]=c;H[g>>2]=d;d=H[c>>2];if(!d){break j}d=H[d+4>>2];g=f-1|0;l:{if(!(g&f)){d=d&g;break l}if(d>>>0>>0){break l}d=(d>>>0)%(f>>>0)|0}d=H[b>>2]+(d<<2)|0;break k}H[c>>2]=H[d>>2]}H[d>>2]=c}H[b+12>>2]=H[b+12>>2]+1;b=1}F[a+4|0]=b;H[a>>2]=c}function Ig(a,b){var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0;c=ha-112|0;ha=c;d=hl(120);i=H[a+8>>2];H[d+12>>2]=0;H[d+16>>2]=0;H[d>>2]=11224;H[d+4>>2]=0;H[d+20>>2]=0;H[d+24>>2]=0;H[d+28>>2]=0;H[d+32>>2]=0;H[d+36>>2]=0;H[d+40>>2]=0;H[d+44>>2]=0;H[d+48>>2]=0;H[d+52>>2]=0;H[d+56>>2]=0;H[d+60>>2]=0;H[d+8>>2]=11436;e=d- -64|0;H[e>>2]=0;H[e+4>>2]=0;H[d+72>>2]=0;H[d+76>>2]=0;H[d+80>>2]=0;H[d+84>>2]=0;H[d+88>>2]=0;H[d+116>>2]=0;H[d+112>>2]=b;H[d+108>>2]=i;H[d+104>>2]=0;H[d+96>>2]=0;H[d+100>>2]=0;g=H[a+12>>2];H[c+48>>2]=0;H[c+52>>2]=0;H[c+40>>2]=0;H[c+44>>2]=0;f=c+32|0;e=f;H[e>>2]=0;H[e+4>>2]=0;H[c+24>>2]=0;H[c+28>>2]=0;e=c- -64|0;H[e>>2]=0;H[e+4>>2]=0;H[c+72>>2]=0;H[c+76>>2]=0;H[c+80>>2]=0;H[c+84>>2]=0;H[c+88>>2]=0;H[c+104>>2]=0;H[c+16>>2]=0;H[c+20>>2]=0;H[c+56>>2]=0;H[c+60>>2]=0;H[c+8>>2]=11436;H[c+96>>2]=0;H[c+100>>2]=0;H[c+12>>2]=g;h=H[g>>2];e=H[g+4>>2];F[c+111|0]=0;j=f;f=c+111|0;Jg(j,(e-h>>2>>>0)/3|0,f);e=H[c+12>>2];h=H[e+28>>2];e=H[e+24>>2];F[c+111|0]=0;Jg(c+44|0,h-e>>2,f);H[c+28>>2]=d;H[c+24>>2]=i;H[c+20>>2]=b;H[c+16>>2]=g;H[d+116>>2]=a+72;a=d+8|0;b=c+8|0;Kg(a,b);a:{if((a|0)==(b|0)){H[d+92>>2]=H[b+84>>2];break a}Lg(d+56|0,H[b+48>>2],H[b+52>>2]);Lg(d+68|0,H[b+60>>2],H[b- -64>>2]);Lg(d+80|0,H[b+72>>2],H[b+76>>2]);H[d+92>>2]=H[b+84>>2];Sa(d+96|0,H[b+88>>2],H[b+92>>2])}H[c+8>>2]=11436;a=H[c+96>>2];if(a){H[c+100>>2]=a;bl(a)}a=H[c+80>>2];if(a){H[c+84>>2]=a;bl(a)}a=H[c+68>>2];if(a){H[c+72>>2]=a;bl(a)}a=H[c+56>>2];if(a){H[c+60>>2]=a;bl(a)}H[c+8>>2]=11672;a=H[c+44>>2];if(a){bl(a)}a=H[c+32>>2];if(a){bl(a)}ha=c+112|0;return d}function Gj(a,b,c){var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0;e=H[a+8>>2];g=H[a+4>>2];if((e-g|0)/12>>>0>=b>>>0){a:{if(!b){break a}b=N(b,12);e=b-12|0;f=((e>>>0)/12|0)+1&3;b:{if(!f){d=g;break b}d=g;while(1){j=H[c+4>>2];H[d>>2]=H[c>>2];H[d+4>>2]=j;H[d+8>>2]=H[c+8>>2];d=d+12|0;h=h+1|0;if((f|0)!=(h|0)){continue}break}}g=b+g|0;if(e>>>0<36){break a}while(1){b=H[c+4>>2];H[d>>2]=H[c>>2];H[d+4>>2]=b;H[d+8>>2]=H[c+8>>2];H[d+20>>2]=H[c+8>>2];b=H[c+4>>2];H[d+12>>2]=H[c>>2];H[d+16>>2]=b;H[d+32>>2]=H[c+8>>2];b=H[c+4>>2];H[d+24>>2]=H[c>>2];H[d+28>>2]=b;b=H[c+4>>2];H[d+36>>2]=H[c>>2];H[d+40>>2]=b;H[d+44>>2]=H[c+8>>2];d=d+48|0;if((g|0)!=(d|0)){continue}break}}H[a+4>>2]=g;return}c:{f=H[a>>2];i=(g-f|0)/12|0;d=i+b|0;if(d>>>0<357913942){e=(e-f|0)/12|0;f=e<<1;f=e>>>0<178956970?d>>>0>>0?f:d:357913941;if(f){if(f>>>0>=357913942){break c}j=hl(N(f,12))}e=N(i,12)+j|0;d=e;b=N(b,12);i=b-12|0;k=((i>>>0)/12|0)+1&3;if(k){d=e;while(1){l=H[c+4>>2];H[d>>2]=H[c>>2];H[d+4>>2]=l;H[d+8>>2]=H[c+8>>2];d=d+12|0;h=h+1|0;if((k|0)!=(h|0)){continue}break}}h=b+e|0;if(i>>>0>=36){while(1){b=H[c+4>>2];H[d>>2]=H[c>>2];H[d+4>>2]=b;H[d+8>>2]=H[c+8>>2];H[d+20>>2]=H[c+8>>2];b=H[c+4>>2];H[d+12>>2]=H[c>>2];H[d+16>>2]=b;H[d+32>>2]=H[c+8>>2];b=H[c+4>>2];H[d+24>>2]=H[c>>2];H[d+28>>2]=b;b=H[c+4>>2];H[d+36>>2]=H[c>>2];H[d+40>>2]=b;H[d+44>>2]=H[c+8>>2];d=d+48|0;if((h|0)!=(d|0)){continue}break}}b=H[a>>2];c=g-b|0;d=e+N((c|0)/-12|0,12)|0;if((c|0)>0){jk(d,b,c)}H[a+8>>2]=N(f,12)+j;H[a+4>>2]=h;H[a>>2]=d;if(b){bl(b)}return}Ka();X()}_a();X()}function Nb(a,b,c,d){var e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0;g=ha-32|0;ha=g;n=a+4|0;a=dc(a,b);a:{if((n|0)==(a|0)){break a}b:{if(F[a+39|0]>=0){H[g+24>>2]=H[a+36>>2];b=H[a+32>>2];H[g+16>>2]=H[a+28>>2];H[g+20>>2]=b;break b}nl(g+16|0,H[a+28>>2],H[a+32>>2])}b=I[g+27|0];a=b<<24>>24;if(!(!((a|0)<0?H[g+20>>2]:b)|(c|0)<=0)){b=0;a=(a|0)<0?H[g+16>>2]:g+16|0;while(1){c:{m=ha-16|0;ha=m;Ak(m,a,g+12|0,0);h=H[m>>2];l=H[m+4>>2];i=ha-32|0;ha=i;o=H[m+12>>2];j=o&2147483647;f=j;e=f-1065418752|0;k=f-1082064896|0;j=H[m+8>>2];d:{if((e|0)==(k|0)&j>>>0>>0|e>>>0>>0){f=(o&33554431)<<7|j>>>25;e=0;n=e;k=j&33554431;if(!(!e&(k|0)==16777216?!(h|l):!e&k>>>0<16777216)){e=f+1073741825|0;break d}e=f+1073741824|0;if(k^16777216|h|(l|n)){break d}e=(f&1)+e|0;break d}if(!(!j&(f|0)==2147418112?!(h|l):f>>>0<2147418112)){e=((o&33554431)<<7|j>>>25)&4194303|2143289344;break d}e=2139095040;if(f>>>0>1082064895){break d}e=0;f=f>>>16|0;if(f>>>0<16145){break d}e=o&65535|65536;Nk(i+16|0,h,l,j,e,f-16129|0);Uk(i,h,l,j,e,16257-f|0);h=H[i+8>>2];e=(H[i+12>>2]&33554431)<<7|h>>>25;k=H[i>>2]|(H[i+16>>2]|H[i+24>>2]|(H[i+20>>2]|H[i+28>>2]))!=0;l=H[i+4>>2];f=0;h=h&33554431;if(!(!f&(h|0)==16777216?!(k|l):!f&h>>>0<16777216)){e=e+1|0;break d}if(h^16777216|k|(f|l)){break d}e=(e&1)+e|0}ha=i+32|0;ha=m+16|0;n=a;a=H[g+12>>2];if((n|0)==(a|0)){break c}H[(b<<2)+d>>2]=o&-2147483648|e;b=b+1|0;if((c|0)!=(b|0)){continue}}break}a=I[g+27|0]}if(a<<24>>24>=0){break a}bl(H[g+16>>2])}ha=g+32|0}function Da(a,b,c,d){var e=0,f=0,g=0,h=0,i=0,j=0,k=0;i=d-c|0;if((i|0)<=0){return}a:{g=H[a+8>>2];h=H[a+4>>2];if((g-h|0)>=(i|0)){j=h-b|0;if((j|0)>=(i|0)){f=h;g=d;break a}f=h;g=c+j|0;if((g|0)!=(d|0)){e=g;while(1){F[f|0]=I[e|0];f=f+1|0;e=e+1|0;if((e|0)!=(d|0)){continue}break}}H[a+4>>2]=f;if((j|0)>0){break a}return}f=H[a>>2];e=(h-f|0)+i|0;if((e|0)>=0){j=b-f|0;g=g-f|0;k=g<<1;k=g>>>0<1073741823?e>>>0>>0?k:e:2147483647;if(k){g=hl(k)}else{g=0}e=j+g|0;if((c|0)!=(d|0)){e=jk(e,c,i)+i|0}if((j|0)>0){jk(g,f,j)}if((b|0)!=(h|0)){d=(b^-1)+h|0;f=h-b&7;if(f){c=0;while(1){F[e|0]=I[b|0];e=e+1|0;b=b+1|0;c=c+1|0;if((f|0)!=(c|0)){continue}break}}if(d>>>0>=7){while(1){F[e|0]=I[b|0];F[e+1|0]=I[b+1|0];F[e+2|0]=I[b+2|0];F[e+3|0]=I[b+3|0];F[e+4|0]=I[b+4|0];F[e+5|0]=I[b+5|0];F[e+6|0]=I[b+6|0];F[e+7|0]=I[b+7|0];e=e+8|0;b=b+8|0;if((h|0)!=(b|0)){continue}break}}f=H[a>>2]}H[a+8>>2]=g+k;H[a+4>>2]=e;H[a>>2]=g;if(f){bl(f)}return}Ka();X()}e=f;d=e-i|0;if(h>>>0>d>>>0){while(1){F[e|0]=I[d|0];e=e+1|0;d=d+1|0;if(h>>>0>d>>>0){continue}break}}H[a+4>>2]=e;a=b+i|0;if((a|0)!=(f|0)){a=f-a|0;kk(f-a|0,b,a)}if((c|0)==(g|0)){return}a=(c^-1)+g|0;f=g-c&7;b:{if(!f){e=b;break b}d=0;e=b;while(1){F[e|0]=I[c|0];e=e+1|0;c=c+1|0;d=d+1|0;if((f|0)!=(d|0)){continue}break}}if(a>>>0<7){return}while(1){F[e|0]=I[c|0];F[e+1|0]=I[c+1|0];F[e+2|0]=I[c+2|0];F[e+3|0]=I[c+3|0];F[e+4|0]=I[c+4|0];F[e+5|0]=I[c+5|0];F[e+6|0]=I[c+6|0];F[e+7|0]=I[c+7|0];e=e+8|0;c=c+8|0;if((g|0)!=(c|0)){continue}break}}function ek(a,b){var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0;a:{b:{if(b){if(b>>>0>=1073741824){break a}d=hl(b<<2);e=H[a>>2];H[a>>2]=d;if(e){bl(e)}H[a+4>>2]=b;if(b-1>>>0>=3){f=b&-4;e=0;while(1){d=c<<2;H[d+H[a>>2]>>2]=0;H[H[a>>2]+(d|4)>>2]=0;H[H[a>>2]+(d|8)>>2]=0;H[H[a>>2]+(d|12)>>2]=0;c=c+4|0;e=e+4|0;if((f|0)!=(e|0)){continue}break}}e=b&3;if(e){while(1){H[H[a>>2]+(c<<2)>>2]=0;c=c+1|0;i=i+1|0;if((e|0)!=(i|0)){continue}break}}f=H[a+8>>2];if(!f){break b}e=a+8|0;g=H[f+4>>2];d=Vl(b);c:{if(d>>>0<=1){g=b-1&g;break c}if(b>>>0>g>>>0){break c}g=(g>>>0)%(b>>>0)|0}H[H[a>>2]+(g<<2)>>2]=e;e=H[f>>2];if(!e){break b}q=b-1|0;r=d>>>0>1;while(1){c=H[e+4>>2];d:{if(!r){c=c&q;break d}if(b>>>0>c>>>0){break d}c=(c>>>0)%(b>>>0)|0}e:{if((c|0)==(g|0)){f=e;break e}f:{g:{k=c<<2;d=k+H[a>>2]|0;if(H[d>>2]){j=0;c=H[e>>2];if(!c){d=e;break f}d=H[a+24>>2];m=H[d+8>>2];d=H[d+12>>2]-m|0;if((d|0)<=0){break g}l=d>>2;s=(l|0)>1?l:1;n=H[e+8>>2];d=e;while(1){j=c;o=H[c+8>>2];c=0;p=1;while(1){i=o;h=H[(c<<2)+m>>2];if(I[h+84|0]){h=n}else{h=H[h+68>>2];i=H[h+(o<<2)>>2];h=H[h+(n<<2)>>2]}if((h|0)==(i|0)){c=c+1|0;p=(l|0)>(c|0);if((c|0)!=(s|0)){continue}}break}if(p){break f}d=j;c=H[d>>2];if(c){continue}break}j=0;break f}H[d>>2]=f;f=e;g=c;break e}while(1){d=c;c=H[c>>2];if(c){continue}break}}H[f>>2]=j;H[d>>2]=H[H[H[a>>2]+k>>2]>>2];H[H[H[a>>2]+k>>2]>>2]=e}e=H[f>>2];if(e){continue}break}break b}b=H[a>>2];H[a>>2]=0;if(b){bl(b)}H[a+4>>2]=0}return}_a();X()}function yf(a,b,c,d,e,f){var g=0,h=0,i=0,j=0,k=0;a:{b:{c:{d:{switch(d|0){case 2:d=H[c>>2];c=H[d>>2];d=H[d+4>>2]-c>>3;e=b-4|0;b=H[e>>2];if(d>>>0<=b>>>0){break c}f=d;d=H[a>>2];if(f>>>0<=d>>>0){break c}if(K[c+(b<<3)>>2]>=K[c+(d<<3)>>2]){break a}H[a>>2]=b;H[e>>2]=d;break a;case 0:case 1:break a;default:break d}}if((d|0)>128){break b}if((a|0)==(b|0)){break a}d=a+4|0;if((d|0)==(b|0)){break a}g=H[c>>2];while(1){f=H[d>>2];e:{e=a;if((e|0)==(d|0)){break e}f:{h=H[g>>2];j=H[g+4>>2]-h>>3;if(j>>>0<=f>>>0){break f}k=h+(f<<3)|0;e=d;while(1){c=e-4|0;i=H[c>>2];if(i>>>0>=j>>>0){break f}if(K[k>>2]>=K[h+(i<<3)>>2]){break e}H[e>>2]=i;e=c;if((e|0)!=(a|0)){continue}break}e=a;break e}Yc();X()}H[e>>2]=f;d=d+4|0;if((d|0)!=(b|0)){continue}break}break a}Yc();X()}g=d>>>1|0;i=g<<2;h=i+a|0;g:{h:{if((d|0)<=(f|0)){zf(a,h,c,g,e);f=b;b=e+i|0;zf(h,f,c,d-g|0,b);f=(d<<2)+e|0;c=H[c>>2];d=b;while(1){if((d|0)==(f|0)){if((b|0)==(e|0)){break a}while(1){H[a>>2]=H[e>>2];a=a+4|0;e=e+4|0;if((b|0)!=(e|0)){continue}break}break a}g=H[c>>2];i=H[c+4>>2]-g>>3;h=H[d>>2];if(i>>>0<=h>>>0){break h}j=i;i=H[e>>2];if(j>>>0<=i>>>0){break h}i:{if(K[g+(h<<3)>>2]>2]){H[a>>2]=h;d=d+4|0;break i}H[a>>2]=i;e=e+4|0}a=a+4|0;if((b|0)!=(e|0)){continue}break}break g}yf(a,h,c,g,e,f);d=d-g|0;yf(h,b,c,d,e,f);Af(a,h,b,c,g,d,e,f);return}Yc();X()}if((d|0)==(f|0)){break a}while(1){H[a>>2]=H[d>>2];a=a+4|0;d=d+4|0;if((f|0)!=(d|0)){continue}break}}}function vf(a,b,c,d,e,f){var g=0,h=0,i=0,j=0,k=0;a:{b:{c:{d:{switch(d|0){case 2:d=H[c>>2];c=H[d>>2];d=H[d+4>>2]-c>>3;e=b-4|0;b=H[e>>2];if(d>>>0<=b>>>0){break c}f=d;d=H[a>>2];if(f>>>0<=d>>>0){break c}if(K[c+(b<<3)>>2]>=K[c+(d<<3)>>2]){break a}H[a>>2]=b;H[e>>2]=d;break a;case 0:case 1:break a;default:break d}}if((d|0)>128){break b}if((a|0)==(b|0)){break a}d=a+4|0;if((d|0)==(b|0)){break a}g=H[c>>2];while(1){f=H[d>>2];e:{e=a;if((e|0)==(d|0)){break e}f:{h=H[g>>2];j=H[g+4>>2]-h>>3;if(j>>>0<=f>>>0){break f}k=h+(f<<3)|0;e=d;while(1){c=e-4|0;i=H[c>>2];if(i>>>0>=j>>>0){break f}if(K[k>>2]>=K[h+(i<<3)>>2]){break e}H[e>>2]=i;e=c;if((e|0)!=(a|0)){continue}break}e=a;break e}Yc();X()}H[e>>2]=f;d=d+4|0;if((d|0)!=(b|0)){continue}break}break a}Yc();X()}g=d>>>1|0;i=g<<2;h=i+a|0;g:{h:{if((d|0)<=(f|0)){wf(a,h,c,g,e);f=b;b=e+i|0;wf(h,f,c,d-g|0,b);f=(d<<2)+e|0;c=H[c>>2];d=b;while(1){if((d|0)==(f|0)){if((b|0)==(e|0)){break a}while(1){H[a>>2]=H[e>>2];a=a+4|0;e=e+4|0;if((b|0)!=(e|0)){continue}break}break a}g=H[c>>2];i=H[c+4>>2]-g>>3;h=H[d>>2];if(i>>>0<=h>>>0){break h}j=i;i=H[e>>2];if(j>>>0<=i>>>0){break h}i:{if(K[g+(h<<3)>>2]>2]){H[a>>2]=h;d=d+4|0;break i}H[a>>2]=i;e=e+4|0}a=a+4|0;if((b|0)!=(e|0)){continue}break}break g}vf(a,h,c,g,e,f);d=d-g|0;vf(h,b,c,d,e,f);xf(a,h,b,c,g,d,e,f);return}Yc();X()}if((d|0)==(f|0)){break a}while(1){H[a>>2]=H[d>>2];a=a+4|0;d=d+4|0;if((f|0)!=(d|0)){continue}break}}}function pg(a,b,c,d,e,f){var g=0,h=0,i=0,j=0,k=0;a:{b:{c:{d:{switch(d|0){case 2:d=H[c>>2];c=H[d>>2];d=H[d+4>>2]-c>>3;e=b-4|0;b=H[e>>2];if(d>>>0<=b>>>0){break c}f=d;d=H[a>>2];if(f>>>0<=d>>>0){break c}if(K[c+(b<<3)>>2]>=K[c+(d<<3)>>2]){break a}H[a>>2]=b;H[e>>2]=d;break a;case 0:case 1:break a;default:break d}}if((d|0)>128){break b}if((a|0)==(b|0)){break a}d=a+4|0;if((d|0)==(b|0)){break a}g=H[c>>2];while(1){f=H[d>>2];e:{e=a;if((e|0)==(d|0)){break e}f:{h=H[g>>2];j=H[g+4>>2]-h>>3;if(j>>>0<=f>>>0){break f}k=h+(f<<3)|0;e=d;while(1){c=e-4|0;i=H[c>>2];if(i>>>0>=j>>>0){break f}if(K[k>>2]>=K[h+(i<<3)>>2]){break e}H[e>>2]=i;e=c;if((e|0)!=(a|0)){continue}break}e=a;break e}Yc();X()}H[e>>2]=f;d=d+4|0;if((d|0)!=(b|0)){continue}break}break a}Yc();X()}g=d>>>1|0;i=g<<2;h=i+a|0;g:{h:{if((d|0)<=(f|0)){qg(a,h,c,g,e);f=b;b=e+i|0;qg(h,f,c,d-g|0,b);f=(d<<2)+e|0;c=H[c>>2];d=b;while(1){if((d|0)==(f|0)){if((b|0)==(e|0)){break a}while(1){H[a>>2]=H[e>>2];a=a+4|0;e=e+4|0;if((b|0)!=(e|0)){continue}break}break a}g=H[c>>2];i=H[c+4>>2]-g>>3;h=H[d>>2];if(i>>>0<=h>>>0){break h}j=i;i=H[e>>2];if(j>>>0<=i>>>0){break h}i:{if(K[g+(h<<3)>>2]>2]){H[a>>2]=h;d=d+4|0;break i}H[a>>2]=i;e=e+4|0}a=a+4|0;if((b|0)!=(e|0)){continue}break}break g}pg(a,h,c,g,e,f);d=d-g|0;pg(h,b,c,d,e,f);rg(a,h,b,c,g,d,e,f);return}Yc();X()}if((d|0)==(f|0)){break a}while(1){H[a>>2]=H[d>>2];a=a+4|0;d=d+4|0;if((f|0)!=(d|0)){continue}break}}}function nf(a,b,c,d,e,f){var g=0,h=0,i=0,j=0,k=0;a:{b:{c:{d:{switch(d|0){case 2:d=H[c>>2];c=H[d>>2];d=H[d+4>>2]-c>>3;e=b-4|0;b=H[e>>2];if(d>>>0<=b>>>0){break c}f=d;d=H[a>>2];if(f>>>0<=d>>>0){break c}if(K[c+(b<<3)>>2]>=K[c+(d<<3)>>2]){break a}H[a>>2]=b;H[e>>2]=d;break a;case 0:case 1:break a;default:break d}}if((d|0)>128){break b}if((a|0)==(b|0)){break a}d=a+4|0;if((d|0)==(b|0)){break a}g=H[c>>2];while(1){f=H[d>>2];e:{e=a;if((e|0)==(d|0)){break e}f:{h=H[g>>2];j=H[g+4>>2]-h>>3;if(j>>>0<=f>>>0){break f}k=h+(f<<3)|0;e=d;while(1){c=e-4|0;i=H[c>>2];if(i>>>0>=j>>>0){break f}if(K[k>>2]>=K[h+(i<<3)>>2]){break e}H[e>>2]=i;e=c;if((e|0)!=(a|0)){continue}break}e=a;break e}Yc();X()}H[e>>2]=f;d=d+4|0;if((d|0)!=(b|0)){continue}break}break a}Yc();X()}g=d>>>1|0;i=g<<2;h=i+a|0;g:{h:{if((d|0)<=(f|0)){qf(a,h,c,g,e);f=b;b=e+i|0;qf(h,f,c,d-g|0,b);f=(d<<2)+e|0;c=H[c>>2];d=b;while(1){if((d|0)==(f|0)){if((b|0)==(e|0)){break a}while(1){H[a>>2]=H[e>>2];a=a+4|0;e=e+4|0;if((b|0)!=(e|0)){continue}break}break a}g=H[c>>2];i=H[c+4>>2]-g>>3;h=H[d>>2];if(i>>>0<=h>>>0){break h}j=i;i=H[e>>2];if(j>>>0<=i>>>0){break h}i:{if(K[g+(h<<3)>>2]>2]){H[a>>2]=h;d=d+4|0;break i}H[a>>2]=i;e=e+4|0}a=a+4|0;if((b|0)!=(e|0)){continue}break}break g}nf(a,h,c,g,e,f);d=d-g|0;nf(h,b,c,d,e,f);rf(a,h,b,c,g,d,e,f);return}Yc();X()}if((d|0)==(f|0)){break a}while(1){H[a>>2]=H[d>>2];a=a+4|0;d=d+4|0;if((f|0)!=(d|0)){continue}break}}}function mg(a,b,c,d,e,f){var g=0,h=0,i=0,j=0,k=0;a:{b:{c:{d:{switch(d|0){case 2:d=H[c>>2];c=H[d>>2];d=H[d+4>>2]-c>>3;e=b-4|0;b=H[e>>2];if(d>>>0<=b>>>0){break c}f=d;d=H[a>>2];if(f>>>0<=d>>>0){break c}if(K[c+(b<<3)>>2]>=K[c+(d<<3)>>2]){break a}H[a>>2]=b;H[e>>2]=d;break a;case 0:case 1:break a;default:break d}}if((d|0)>128){break b}if((a|0)==(b|0)){break a}d=a+4|0;if((d|0)==(b|0)){break a}g=H[c>>2];while(1){f=H[d>>2];e:{e=a;if((e|0)==(d|0)){break e}f:{h=H[g>>2];j=H[g+4>>2]-h>>3;if(j>>>0<=f>>>0){break f}k=h+(f<<3)|0;e=d;while(1){c=e-4|0;i=H[c>>2];if(i>>>0>=j>>>0){break f}if(K[k>>2]>=K[h+(i<<3)>>2]){break e}H[e>>2]=i;e=c;if((e|0)!=(a|0)){continue}break}e=a;break e}Yc();X()}H[e>>2]=f;d=d+4|0;if((d|0)!=(b|0)){continue}break}break a}Yc();X()}g=d>>>1|0;i=g<<2;h=i+a|0;g:{h:{if((d|0)<=(f|0)){ng(a,h,c,g,e);f=b;b=e+i|0;ng(h,f,c,d-g|0,b);f=(d<<2)+e|0;c=H[c>>2];d=b;while(1){if((d|0)==(f|0)){if((b|0)==(e|0)){break a}while(1){H[a>>2]=H[e>>2];a=a+4|0;e=e+4|0;if((b|0)!=(e|0)){continue}break}break a}g=H[c>>2];i=H[c+4>>2]-g>>3;h=H[d>>2];if(i>>>0<=h>>>0){break h}j=i;i=H[e>>2];if(j>>>0<=i>>>0){break h}i:{if(K[g+(h<<3)>>2]>2]){H[a>>2]=h;d=d+4|0;break i}H[a>>2]=i;e=e+4|0}a=a+4|0;if((b|0)!=(e|0)){continue}break}break g}mg(a,h,c,g,e,f);d=d-g|0;mg(h,b,c,d,e,f);og(a,h,b,c,g,d,e,f);return}Yc();X()}if((d|0)==(f|0)){break a}while(1){H[a>>2]=H[d>>2];a=a+4|0;d=d+4|0;if((f|0)!=(d|0)){continue}break}}}function jg(a,b,c,d,e,f){var g=0,h=0,i=0,j=0,k=0;a:{b:{c:{d:{switch(d|0){case 2:d=H[c>>2];c=H[d>>2];d=H[d+4>>2]-c>>3;e=b-4|0;b=H[e>>2];if(d>>>0<=b>>>0){break c}f=d;d=H[a>>2];if(f>>>0<=d>>>0){break c}if(K[c+(b<<3)>>2]>=K[c+(d<<3)>>2]){break a}H[a>>2]=b;H[e>>2]=d;break a;case 0:case 1:break a;default:break d}}if((d|0)>128){break b}if((a|0)==(b|0)){break a}d=a+4|0;if((d|0)==(b|0)){break a}g=H[c>>2];while(1){f=H[d>>2];e:{e=a;if((e|0)==(d|0)){break e}f:{h=H[g>>2];j=H[g+4>>2]-h>>3;if(j>>>0<=f>>>0){break f}k=h+(f<<3)|0;e=d;while(1){c=e-4|0;i=H[c>>2];if(i>>>0>=j>>>0){break f}if(K[k>>2]>=K[h+(i<<3)>>2]){break e}H[e>>2]=i;e=c;if((e|0)!=(a|0)){continue}break}e=a;break e}Yc();X()}H[e>>2]=f;d=d+4|0;if((d|0)!=(b|0)){continue}break}break a}Yc();X()}g=d>>>1|0;i=g<<2;h=i+a|0;g:{h:{if((d|0)<=(f|0)){kg(a,h,c,g,e);f=b;b=e+i|0;kg(h,f,c,d-g|0,b);f=(d<<2)+e|0;c=H[c>>2];d=b;while(1){if((d|0)==(f|0)){if((b|0)==(e|0)){break a}while(1){H[a>>2]=H[e>>2];a=a+4|0;e=e+4|0;if((b|0)!=(e|0)){continue}break}break a}g=H[c>>2];i=H[c+4>>2]-g>>3;h=H[d>>2];if(i>>>0<=h>>>0){break h}j=i;i=H[e>>2];if(j>>>0<=i>>>0){break h}i:{if(K[g+(h<<3)>>2]>2]){H[a>>2]=h;d=d+4|0;break i}H[a>>2]=i;e=e+4|0}a=a+4|0;if((b|0)!=(e|0)){continue}break}break g}jg(a,h,c,g,e,f);d=d-g|0;jg(h,b,c,d,e,f);lg(a,h,b,c,g,d,e,f);return}Yc();X()}if((d|0)==(f|0)){break a}while(1){H[a>>2]=H[d>>2];a=a+4|0;d=d+4|0;if((f|0)!=(d|0)){continue}break}}}function gg(a,b,c,d,e,f){var g=0,h=0,i=0,j=0,k=0;a:{b:{c:{d:{switch(d|0){case 2:d=H[c>>2];c=H[d>>2];d=H[d+4>>2]-c>>3;e=b-4|0;b=H[e>>2];if(d>>>0<=b>>>0){break c}f=d;d=H[a>>2];if(f>>>0<=d>>>0){break c}if(K[c+(b<<3)>>2]>=K[c+(d<<3)>>2]){break a}H[a>>2]=b;H[e>>2]=d;break a;case 0:case 1:break a;default:break d}}if((d|0)>128){break b}if((a|0)==(b|0)){break a}d=a+4|0;if((d|0)==(b|0)){break a}g=H[c>>2];while(1){f=H[d>>2];e:{e=a;if((e|0)==(d|0)){break e}f:{h=H[g>>2];j=H[g+4>>2]-h>>3;if(j>>>0<=f>>>0){break f}k=h+(f<<3)|0;e=d;while(1){c=e-4|0;i=H[c>>2];if(i>>>0>=j>>>0){break f}if(K[k>>2]>=K[h+(i<<3)>>2]){break e}H[e>>2]=i;e=c;if((e|0)!=(a|0)){continue}break}e=a;break e}Yc();X()}H[e>>2]=f;d=d+4|0;if((d|0)!=(b|0)){continue}break}break a}Yc();X()}g=d>>>1|0;i=g<<2;h=i+a|0;g:{h:{if((d|0)<=(f|0)){hg(a,h,c,g,e);f=b;b=e+i|0;hg(h,f,c,d-g|0,b);f=(d<<2)+e|0;c=H[c>>2];d=b;while(1){if((d|0)==(f|0)){if((b|0)==(e|0)){break a}while(1){H[a>>2]=H[e>>2];a=a+4|0;e=e+4|0;if((b|0)!=(e|0)){continue}break}break a}g=H[c>>2];i=H[c+4>>2]-g>>3;h=H[d>>2];if(i>>>0<=h>>>0){break h}j=i;i=H[e>>2];if(j>>>0<=i>>>0){break h}i:{if(K[g+(h<<3)>>2]>2]){H[a>>2]=h;d=d+4|0;break i}H[a>>2]=i;e=e+4|0}a=a+4|0;if((b|0)!=(e|0)){continue}break}break g}gg(a,h,c,g,e,f);d=d-g|0;gg(h,b,c,d,e,f);ig(a,h,b,c,g,d,e,f);return}Yc();X()}if((d|0)==(f|0)){break a}while(1){H[a>>2]=H[d>>2];a=a+4|0;d=d+4|0;if((f|0)!=(d|0)){continue}break}}}function dg(a,b,c,d,e,f){var g=0,h=0,i=0,j=0,k=0;a:{b:{c:{d:{switch(d|0){case 2:d=H[c>>2];c=H[d>>2];d=H[d+4>>2]-c>>3;e=b-4|0;b=H[e>>2];if(d>>>0<=b>>>0){break c}f=d;d=H[a>>2];if(f>>>0<=d>>>0){break c}if(K[c+(b<<3)>>2]>=K[c+(d<<3)>>2]){break a}H[a>>2]=b;H[e>>2]=d;break a;case 0:case 1:break a;default:break d}}if((d|0)>128){break b}if((a|0)==(b|0)){break a}d=a+4|0;if((d|0)==(b|0)){break a}g=H[c>>2];while(1){f=H[d>>2];e:{e=a;if((e|0)==(d|0)){break e}f:{h=H[g>>2];j=H[g+4>>2]-h>>3;if(j>>>0<=f>>>0){break f}k=h+(f<<3)|0;e=d;while(1){c=e-4|0;i=H[c>>2];if(i>>>0>=j>>>0){break f}if(K[k>>2]>=K[h+(i<<3)>>2]){break e}H[e>>2]=i;e=c;if((e|0)!=(a|0)){continue}break}e=a;break e}Yc();X()}H[e>>2]=f;d=d+4|0;if((d|0)!=(b|0)){continue}break}break a}Yc();X()}g=d>>>1|0;i=g<<2;h=i+a|0;g:{h:{if((d|0)<=(f|0)){eg(a,h,c,g,e);f=b;b=e+i|0;eg(h,f,c,d-g|0,b);f=(d<<2)+e|0;c=H[c>>2];d=b;while(1){if((d|0)==(f|0)){if((b|0)==(e|0)){break a}while(1){H[a>>2]=H[e>>2];a=a+4|0;e=e+4|0;if((b|0)!=(e|0)){continue}break}break a}g=H[c>>2];i=H[c+4>>2]-g>>3;h=H[d>>2];if(i>>>0<=h>>>0){break h}j=i;i=H[e>>2];if(j>>>0<=i>>>0){break h}i:{if(K[g+(h<<3)>>2]>2]){H[a>>2]=h;d=d+4|0;break i}H[a>>2]=i;e=e+4|0}a=a+4|0;if((b|0)!=(e|0)){continue}break}break g}dg(a,h,c,g,e,f);d=d-g|0;dg(h,b,c,d,e,f);fg(a,h,b,c,g,d,e,f);return}Yc();X()}if((d|0)==(f|0)){break a}while(1){H[a>>2]=H[d>>2];a=a+4|0;d=d+4|0;if((f|0)!=(d|0)){continue}break}}}function ag(a,b,c,d,e,f){var g=0,h=0,i=0,j=0,k=0;a:{b:{c:{d:{switch(d|0){case 2:d=H[c>>2];c=H[d>>2];d=H[d+4>>2]-c>>3;e=b-4|0;b=H[e>>2];if(d>>>0<=b>>>0){break c}f=d;d=H[a>>2];if(f>>>0<=d>>>0){break c}if(K[c+(b<<3)>>2]>=K[c+(d<<3)>>2]){break a}H[a>>2]=b;H[e>>2]=d;break a;case 0:case 1:break a;default:break d}}if((d|0)>128){break b}if((a|0)==(b|0)){break a}d=a+4|0;if((d|0)==(b|0)){break a}g=H[c>>2];while(1){f=H[d>>2];e:{e=a;if((e|0)==(d|0)){break e}f:{h=H[g>>2];j=H[g+4>>2]-h>>3;if(j>>>0<=f>>>0){break f}k=h+(f<<3)|0;e=d;while(1){c=e-4|0;i=H[c>>2];if(i>>>0>=j>>>0){break f}if(K[k>>2]>=K[h+(i<<3)>>2]){break e}H[e>>2]=i;e=c;if((e|0)!=(a|0)){continue}break}e=a;break e}Yc();X()}H[e>>2]=f;d=d+4|0;if((d|0)!=(b|0)){continue}break}break a}Yc();X()}g=d>>>1|0;i=g<<2;h=i+a|0;g:{h:{if((d|0)<=(f|0)){bg(a,h,c,g,e);f=b;b=e+i|0;bg(h,f,c,d-g|0,b);f=(d<<2)+e|0;c=H[c>>2];d=b;while(1){if((d|0)==(f|0)){if((b|0)==(e|0)){break a}while(1){H[a>>2]=H[e>>2];a=a+4|0;e=e+4|0;if((b|0)!=(e|0)){continue}break}break a}g=H[c>>2];i=H[c+4>>2]-g>>3;h=H[d>>2];if(i>>>0<=h>>>0){break h}j=i;i=H[e>>2];if(j>>>0<=i>>>0){break h}i:{if(K[g+(h<<3)>>2]>2]){H[a>>2]=h;d=d+4|0;break i}H[a>>2]=i;e=e+4|0}a=a+4|0;if((b|0)!=(e|0)){continue}break}break g}ag(a,h,c,g,e,f);d=d-g|0;ag(h,b,c,d,e,f);cg(a,h,b,c,g,d,e,f);return}Yc();X()}if((d|0)==(f|0)){break a}while(1){H[a>>2]=H[d>>2];a=a+4|0;d=d+4|0;if((f|0)!=(d|0)){continue}break}}}function Zf(a,b,c,d,e,f){var g=0,h=0,i=0,j=0,k=0;a:{b:{c:{d:{switch(d|0){case 2:d=H[c>>2];c=H[d>>2];d=H[d+4>>2]-c>>3;e=b-4|0;b=H[e>>2];if(d>>>0<=b>>>0){break c}f=d;d=H[a>>2];if(f>>>0<=d>>>0){break c}if(K[c+(b<<3)>>2]>=K[c+(d<<3)>>2]){break a}H[a>>2]=b;H[e>>2]=d;break a;case 0:case 1:break a;default:break d}}if((d|0)>128){break b}if((a|0)==(b|0)){break a}d=a+4|0;if((d|0)==(b|0)){break a}g=H[c>>2];while(1){f=H[d>>2];e:{e=a;if((e|0)==(d|0)){break e}f:{h=H[g>>2];j=H[g+4>>2]-h>>3;if(j>>>0<=f>>>0){break f}k=h+(f<<3)|0;e=d;while(1){c=e-4|0;i=H[c>>2];if(i>>>0>=j>>>0){break f}if(K[k>>2]>=K[h+(i<<3)>>2]){break e}H[e>>2]=i;e=c;if((e|0)!=(a|0)){continue}break}e=a;break e}Yc();X()}H[e>>2]=f;d=d+4|0;if((d|0)!=(b|0)){continue}break}break a}Yc();X()}g=d>>>1|0;i=g<<2;h=i+a|0;g:{h:{if((d|0)<=(f|0)){_f(a,h,c,g,e);f=b;b=e+i|0;_f(h,f,c,d-g|0,b);f=(d<<2)+e|0;c=H[c>>2];d=b;while(1){if((d|0)==(f|0)){if((b|0)==(e|0)){break a}while(1){H[a>>2]=H[e>>2];a=a+4|0;e=e+4|0;if((b|0)!=(e|0)){continue}break}break a}g=H[c>>2];i=H[c+4>>2]-g>>3;h=H[d>>2];if(i>>>0<=h>>>0){break h}j=i;i=H[e>>2];if(j>>>0<=i>>>0){break h}i:{if(K[g+(h<<3)>>2]>2]){H[a>>2]=h;d=d+4|0;break i}H[a>>2]=i;e=e+4|0}a=a+4|0;if((b|0)!=(e|0)){continue}break}break g}Zf(a,h,c,g,e,f);d=d-g|0;Zf(h,b,c,d,e,f);$f(a,h,b,c,g,d,e,f);return}Yc();X()}if((d|0)==(f|0)){break a}while(1){H[a>>2]=H[d>>2];a=a+4|0;d=d+4|0;if((f|0)!=(d|0)){continue}break}}}function Wf(a,b,c,d,e,f){var g=0,h=0,i=0,j=0,k=0;a:{b:{c:{d:{switch(d|0){case 2:d=H[c>>2];c=H[d>>2];d=H[d+4>>2]-c>>3;e=b-4|0;b=H[e>>2];if(d>>>0<=b>>>0){break c}f=d;d=H[a>>2];if(f>>>0<=d>>>0){break c}if(K[c+(b<<3)>>2]>=K[c+(d<<3)>>2]){break a}H[a>>2]=b;H[e>>2]=d;break a;case 0:case 1:break a;default:break d}}if((d|0)>128){break b}if((a|0)==(b|0)){break a}d=a+4|0;if((d|0)==(b|0)){break a}g=H[c>>2];while(1){f=H[d>>2];e:{e=a;if((e|0)==(d|0)){break e}f:{h=H[g>>2];j=H[g+4>>2]-h>>3;if(j>>>0<=f>>>0){break f}k=h+(f<<3)|0;e=d;while(1){c=e-4|0;i=H[c>>2];if(i>>>0>=j>>>0){break f}if(K[k>>2]>=K[h+(i<<3)>>2]){break e}H[e>>2]=i;e=c;if((e|0)!=(a|0)){continue}break}e=a;break e}Yc();X()}H[e>>2]=f;d=d+4|0;if((d|0)!=(b|0)){continue}break}break a}Yc();X()}g=d>>>1|0;i=g<<2;h=i+a|0;g:{h:{if((d|0)<=(f|0)){Xf(a,h,c,g,e);f=b;b=e+i|0;Xf(h,f,c,d-g|0,b);f=(d<<2)+e|0;c=H[c>>2];d=b;while(1){if((d|0)==(f|0)){if((b|0)==(e|0)){break a}while(1){H[a>>2]=H[e>>2];a=a+4|0;e=e+4|0;if((b|0)!=(e|0)){continue}break}break a}g=H[c>>2];i=H[c+4>>2]-g>>3;h=H[d>>2];if(i>>>0<=h>>>0){break h}j=i;i=H[e>>2];if(j>>>0<=i>>>0){break h}i:{if(K[g+(h<<3)>>2]>2]){H[a>>2]=h;d=d+4|0;break i}H[a>>2]=i;e=e+4|0}a=a+4|0;if((b|0)!=(e|0)){continue}break}break g}Wf(a,h,c,g,e,f);d=d-g|0;Wf(h,b,c,d,e,f);Yf(a,h,b,c,g,d,e,f);return}Yc();X()}if((d|0)==(f|0)){break a}while(1){H[a>>2]=H[d>>2];a=a+4|0;d=d+4|0;if((f|0)!=(d|0)){continue}break}}}function Tf(a,b,c,d,e,f){var g=0,h=0,i=0,j=0,k=0;a:{b:{c:{d:{switch(d|0){case 2:d=H[c>>2];c=H[d>>2];d=H[d+4>>2]-c>>3;e=b-4|0;b=H[e>>2];if(d>>>0<=b>>>0){break c}f=d;d=H[a>>2];if(f>>>0<=d>>>0){break c}if(K[c+(b<<3)>>2]>=K[c+(d<<3)>>2]){break a}H[a>>2]=b;H[e>>2]=d;break a;case 0:case 1:break a;default:break d}}if((d|0)>128){break b}if((a|0)==(b|0)){break a}d=a+4|0;if((d|0)==(b|0)){break a}g=H[c>>2];while(1){f=H[d>>2];e:{e=a;if((e|0)==(d|0)){break e}f:{h=H[g>>2];j=H[g+4>>2]-h>>3;if(j>>>0<=f>>>0){break f}k=h+(f<<3)|0;e=d;while(1){c=e-4|0;i=H[c>>2];if(i>>>0>=j>>>0){break f}if(K[k>>2]>=K[h+(i<<3)>>2]){break e}H[e>>2]=i;e=c;if((e|0)!=(a|0)){continue}break}e=a;break e}Yc();X()}H[e>>2]=f;d=d+4|0;if((d|0)!=(b|0)){continue}break}break a}Yc();X()}g=d>>>1|0;i=g<<2;h=i+a|0;g:{h:{if((d|0)<=(f|0)){Uf(a,h,c,g,e);f=b;b=e+i|0;Uf(h,f,c,d-g|0,b);f=(d<<2)+e|0;c=H[c>>2];d=b;while(1){if((d|0)==(f|0)){if((b|0)==(e|0)){break a}while(1){H[a>>2]=H[e>>2];a=a+4|0;e=e+4|0;if((b|0)!=(e|0)){continue}break}break a}g=H[c>>2];i=H[c+4>>2]-g>>3;h=H[d>>2];if(i>>>0<=h>>>0){break h}j=i;i=H[e>>2];if(j>>>0<=i>>>0){break h}i:{if(K[g+(h<<3)>>2]>2]){H[a>>2]=h;d=d+4|0;break i}H[a>>2]=i;e=e+4|0}a=a+4|0;if((b|0)!=(e|0)){continue}break}break g}Tf(a,h,c,g,e,f);d=d-g|0;Tf(h,b,c,d,e,f);Vf(a,h,b,c,g,d,e,f);return}Yc();X()}if((d|0)==(f|0)){break a}while(1){H[a>>2]=H[d>>2];a=a+4|0;d=d+4|0;if((f|0)!=(d|0)){continue}break}}}function Qf(a,b,c,d,e,f){var g=0,h=0,i=0,j=0,k=0;a:{b:{c:{d:{switch(d|0){case 2:d=H[c>>2];c=H[d>>2];d=H[d+4>>2]-c>>3;e=b-4|0;b=H[e>>2];if(d>>>0<=b>>>0){break c}f=d;d=H[a>>2];if(f>>>0<=d>>>0){break c}if(K[c+(b<<3)>>2]>=K[c+(d<<3)>>2]){break a}H[a>>2]=b;H[e>>2]=d;break a;case 0:case 1:break a;default:break d}}if((d|0)>128){break b}if((a|0)==(b|0)){break a}d=a+4|0;if((d|0)==(b|0)){break a}g=H[c>>2];while(1){f=H[d>>2];e:{e=a;if((e|0)==(d|0)){break e}f:{h=H[g>>2];j=H[g+4>>2]-h>>3;if(j>>>0<=f>>>0){break f}k=h+(f<<3)|0;e=d;while(1){c=e-4|0;i=H[c>>2];if(i>>>0>=j>>>0){break f}if(K[k>>2]>=K[h+(i<<3)>>2]){break e}H[e>>2]=i;e=c;if((e|0)!=(a|0)){continue}break}e=a;break e}Yc();X()}H[e>>2]=f;d=d+4|0;if((d|0)!=(b|0)){continue}break}break a}Yc();X()}g=d>>>1|0;i=g<<2;h=i+a|0;g:{h:{if((d|0)<=(f|0)){Rf(a,h,c,g,e);f=b;b=e+i|0;Rf(h,f,c,d-g|0,b);f=(d<<2)+e|0;c=H[c>>2];d=b;while(1){if((d|0)==(f|0)){if((b|0)==(e|0)){break a}while(1){H[a>>2]=H[e>>2];a=a+4|0;e=e+4|0;if((b|0)!=(e|0)){continue}break}break a}g=H[c>>2];i=H[c+4>>2]-g>>3;h=H[d>>2];if(i>>>0<=h>>>0){break h}j=i;i=H[e>>2];if(j>>>0<=i>>>0){break h}i:{if(K[g+(h<<3)>>2]>2]){H[a>>2]=h;d=d+4|0;break i}H[a>>2]=i;e=e+4|0}a=a+4|0;if((b|0)!=(e|0)){continue}break}break g}Qf(a,h,c,g,e,f);d=d-g|0;Qf(h,b,c,d,e,f);Sf(a,h,b,c,g,d,e,f);return}Yc();X()}if((d|0)==(f|0)){break a}while(1){H[a>>2]=H[d>>2];a=a+4|0;d=d+4|0;if((f|0)!=(d|0)){continue}break}}}function Nf(a,b,c,d,e,f){var g=0,h=0,i=0,j=0,k=0;a:{b:{c:{d:{switch(d|0){case 2:d=H[c>>2];c=H[d>>2];d=H[d+4>>2]-c>>3;e=b-4|0;b=H[e>>2];if(d>>>0<=b>>>0){break c}f=d;d=H[a>>2];if(f>>>0<=d>>>0){break c}if(K[c+(b<<3)>>2]>=K[c+(d<<3)>>2]){break a}H[a>>2]=b;H[e>>2]=d;break a;case 0:case 1:break a;default:break d}}if((d|0)>128){break b}if((a|0)==(b|0)){break a}d=a+4|0;if((d|0)==(b|0)){break a}g=H[c>>2];while(1){f=H[d>>2];e:{e=a;if((e|0)==(d|0)){break e}f:{h=H[g>>2];j=H[g+4>>2]-h>>3;if(j>>>0<=f>>>0){break f}k=h+(f<<3)|0;e=d;while(1){c=e-4|0;i=H[c>>2];if(i>>>0>=j>>>0){break f}if(K[k>>2]>=K[h+(i<<3)>>2]){break e}H[e>>2]=i;e=c;if((e|0)!=(a|0)){continue}break}e=a;break e}Yc();X()}H[e>>2]=f;d=d+4|0;if((d|0)!=(b|0)){continue}break}break a}Yc();X()}g=d>>>1|0;i=g<<2;h=i+a|0;g:{h:{if((d|0)<=(f|0)){Of(a,h,c,g,e);f=b;b=e+i|0;Of(h,f,c,d-g|0,b);f=(d<<2)+e|0;c=H[c>>2];d=b;while(1){if((d|0)==(f|0)){if((b|0)==(e|0)){break a}while(1){H[a>>2]=H[e>>2];a=a+4|0;e=e+4|0;if((b|0)!=(e|0)){continue}break}break a}g=H[c>>2];i=H[c+4>>2]-g>>3;h=H[d>>2];if(i>>>0<=h>>>0){break h}j=i;i=H[e>>2];if(j>>>0<=i>>>0){break h}i:{if(K[g+(h<<3)>>2]>2]){H[a>>2]=h;d=d+4|0;break i}H[a>>2]=i;e=e+4|0}a=a+4|0;if((b|0)!=(e|0)){continue}break}break g}Nf(a,h,c,g,e,f);d=d-g|0;Nf(h,b,c,d,e,f);Pf(a,h,b,c,g,d,e,f);return}Yc();X()}if((d|0)==(f|0)){break a}while(1){H[a>>2]=H[d>>2];a=a+4|0;d=d+4|0;if((f|0)!=(d|0)){continue}break}}}function Kf(a,b,c,d,e,f){var g=0,h=0,i=0,j=0,k=0;a:{b:{c:{d:{switch(d|0){case 2:d=H[c>>2];c=H[d>>2];d=H[d+4>>2]-c>>3;e=b-4|0;b=H[e>>2];if(d>>>0<=b>>>0){break c}f=d;d=H[a>>2];if(f>>>0<=d>>>0){break c}if(K[c+(b<<3)>>2]>=K[c+(d<<3)>>2]){break a}H[a>>2]=b;H[e>>2]=d;break a;case 0:case 1:break a;default:break d}}if((d|0)>128){break b}if((a|0)==(b|0)){break a}d=a+4|0;if((d|0)==(b|0)){break a}g=H[c>>2];while(1){f=H[d>>2];e:{e=a;if((e|0)==(d|0)){break e}f:{h=H[g>>2];j=H[g+4>>2]-h>>3;if(j>>>0<=f>>>0){break f}k=h+(f<<3)|0;e=d;while(1){c=e-4|0;i=H[c>>2];if(i>>>0>=j>>>0){break f}if(K[k>>2]>=K[h+(i<<3)>>2]){break e}H[e>>2]=i;e=c;if((e|0)!=(a|0)){continue}break}e=a;break e}Yc();X()}H[e>>2]=f;d=d+4|0;if((d|0)!=(b|0)){continue}break}break a}Yc();X()}g=d>>>1|0;i=g<<2;h=i+a|0;g:{h:{if((d|0)<=(f|0)){Lf(a,h,c,g,e);f=b;b=e+i|0;Lf(h,f,c,d-g|0,b);f=(d<<2)+e|0;c=H[c>>2];d=b;while(1){if((d|0)==(f|0)){if((b|0)==(e|0)){break a}while(1){H[a>>2]=H[e>>2];a=a+4|0;e=e+4|0;if((b|0)!=(e|0)){continue}break}break a}g=H[c>>2];i=H[c+4>>2]-g>>3;h=H[d>>2];if(i>>>0<=h>>>0){break h}j=i;i=H[e>>2];if(j>>>0<=i>>>0){break h}i:{if(K[g+(h<<3)>>2]>2]){H[a>>2]=h;d=d+4|0;break i}H[a>>2]=i;e=e+4|0}a=a+4|0;if((b|0)!=(e|0)){continue}break}break g}Kf(a,h,c,g,e,f);d=d-g|0;Kf(h,b,c,d,e,f);Mf(a,h,b,c,g,d,e,f);return}Yc();X()}if((d|0)==(f|0)){break a}while(1){H[a>>2]=H[d>>2];a=a+4|0;d=d+4|0;if((f|0)!=(d|0)){continue}break}}}function Hf(a,b,c,d,e,f){var g=0,h=0,i=0,j=0,k=0;a:{b:{c:{d:{switch(d|0){case 2:d=H[c>>2];c=H[d>>2];d=H[d+4>>2]-c>>3;e=b-4|0;b=H[e>>2];if(d>>>0<=b>>>0){break c}f=d;d=H[a>>2];if(f>>>0<=d>>>0){break c}if(K[c+(b<<3)>>2]>=K[c+(d<<3)>>2]){break a}H[a>>2]=b;H[e>>2]=d;break a;case 0:case 1:break a;default:break d}}if((d|0)>128){break b}if((a|0)==(b|0)){break a}d=a+4|0;if((d|0)==(b|0)){break a}g=H[c>>2];while(1){f=H[d>>2];e:{e=a;if((e|0)==(d|0)){break e}f:{h=H[g>>2];j=H[g+4>>2]-h>>3;if(j>>>0<=f>>>0){break f}k=h+(f<<3)|0;e=d;while(1){c=e-4|0;i=H[c>>2];if(i>>>0>=j>>>0){break f}if(K[k>>2]>=K[h+(i<<3)>>2]){break e}H[e>>2]=i;e=c;if((e|0)!=(a|0)){continue}break}e=a;break e}Yc();X()}H[e>>2]=f;d=d+4|0;if((d|0)!=(b|0)){continue}break}break a}Yc();X()}g=d>>>1|0;i=g<<2;h=i+a|0;g:{h:{if((d|0)<=(f|0)){If(a,h,c,g,e);f=b;b=e+i|0;If(h,f,c,d-g|0,b);f=(d<<2)+e|0;c=H[c>>2];d=b;while(1){if((d|0)==(f|0)){if((b|0)==(e|0)){break a}while(1){H[a>>2]=H[e>>2];a=a+4|0;e=e+4|0;if((b|0)!=(e|0)){continue}break}break a}g=H[c>>2];i=H[c+4>>2]-g>>3;h=H[d>>2];if(i>>>0<=h>>>0){break h}j=i;i=H[e>>2];if(j>>>0<=i>>>0){break h}i:{if(K[g+(h<<3)>>2]>2]){H[a>>2]=h;d=d+4|0;break i}H[a>>2]=i;e=e+4|0}a=a+4|0;if((b|0)!=(e|0)){continue}break}break g}Hf(a,h,c,g,e,f);d=d-g|0;Hf(h,b,c,d,e,f);Jf(a,h,b,c,g,d,e,f);return}Yc();X()}if((d|0)==(f|0)){break a}while(1){H[a>>2]=H[d>>2];a=a+4|0;d=d+4|0;if((f|0)!=(d|0)){continue}break}}}function Ef(a,b,c,d,e,f){var g=0,h=0,i=0,j=0,k=0;a:{b:{c:{d:{switch(d|0){case 2:d=H[c>>2];c=H[d>>2];d=H[d+4>>2]-c>>3;e=b-4|0;b=H[e>>2];if(d>>>0<=b>>>0){break c}f=d;d=H[a>>2];if(f>>>0<=d>>>0){break c}if(K[c+(b<<3)>>2]>=K[c+(d<<3)>>2]){break a}H[a>>2]=b;H[e>>2]=d;break a;case 0:case 1:break a;default:break d}}if((d|0)>128){break b}if((a|0)==(b|0)){break a}d=a+4|0;if((d|0)==(b|0)){break a}g=H[c>>2];while(1){f=H[d>>2];e:{e=a;if((e|0)==(d|0)){break e}f:{h=H[g>>2];j=H[g+4>>2]-h>>3;if(j>>>0<=f>>>0){break f}k=h+(f<<3)|0;e=d;while(1){c=e-4|0;i=H[c>>2];if(i>>>0>=j>>>0){break f}if(K[k>>2]>=K[h+(i<<3)>>2]){break e}H[e>>2]=i;e=c;if((e|0)!=(a|0)){continue}break}e=a;break e}Yc();X()}H[e>>2]=f;d=d+4|0;if((d|0)!=(b|0)){continue}break}break a}Yc();X()}g=d>>>1|0;i=g<<2;h=i+a|0;g:{h:{if((d|0)<=(f|0)){Ff(a,h,c,g,e);f=b;b=e+i|0;Ff(h,f,c,d-g|0,b);f=(d<<2)+e|0;c=H[c>>2];d=b;while(1){if((d|0)==(f|0)){if((b|0)==(e|0)){break a}while(1){H[a>>2]=H[e>>2];a=a+4|0;e=e+4|0;if((b|0)!=(e|0)){continue}break}break a}g=H[c>>2];i=H[c+4>>2]-g>>3;h=H[d>>2];if(i>>>0<=h>>>0){break h}j=i;i=H[e>>2];if(j>>>0<=i>>>0){break h}i:{if(K[g+(h<<3)>>2]>2]){H[a>>2]=h;d=d+4|0;break i}H[a>>2]=i;e=e+4|0}a=a+4|0;if((b|0)!=(e|0)){continue}break}break g}Ef(a,h,c,g,e,f);d=d-g|0;Ef(h,b,c,d,e,f);Gf(a,h,b,c,g,d,e,f);return}Yc();X()}if((d|0)==(f|0)){break a}while(1){H[a>>2]=H[d>>2];a=a+4|0;d=d+4|0;if((f|0)!=(d|0)){continue}break}}}function Bf(a,b,c,d,e,f){var g=0,h=0,i=0,j=0,k=0;a:{b:{c:{d:{switch(d|0){case 2:d=H[c>>2];c=H[d>>2];d=H[d+4>>2]-c>>3;e=b-4|0;b=H[e>>2];if(d>>>0<=b>>>0){break c}f=d;d=H[a>>2];if(f>>>0<=d>>>0){break c}if(K[c+(b<<3)>>2]>=K[c+(d<<3)>>2]){break a}H[a>>2]=b;H[e>>2]=d;break a;case 0:case 1:break a;default:break d}}if((d|0)>128){break b}if((a|0)==(b|0)){break a}d=a+4|0;if((d|0)==(b|0)){break a}g=H[c>>2];while(1){f=H[d>>2];e:{e=a;if((e|0)==(d|0)){break e}f:{h=H[g>>2];j=H[g+4>>2]-h>>3;if(j>>>0<=f>>>0){break f}k=h+(f<<3)|0;e=d;while(1){c=e-4|0;i=H[c>>2];if(i>>>0>=j>>>0){break f}if(K[k>>2]>=K[h+(i<<3)>>2]){break e}H[e>>2]=i;e=c;if((e|0)!=(a|0)){continue}break}e=a;break e}Yc();X()}H[e>>2]=f;d=d+4|0;if((d|0)!=(b|0)){continue}break}break a}Yc();X()}g=d>>>1|0;i=g<<2;h=i+a|0;g:{h:{if((d|0)<=(f|0)){Cf(a,h,c,g,e);f=b;b=e+i|0;Cf(h,f,c,d-g|0,b);f=(d<<2)+e|0;c=H[c>>2];d=b;while(1){if((d|0)==(f|0)){if((b|0)==(e|0)){break a}while(1){H[a>>2]=H[e>>2];a=a+4|0;e=e+4|0;if((b|0)!=(e|0)){continue}break}break a}g=H[c>>2];i=H[c+4>>2]-g>>3;h=H[d>>2];if(i>>>0<=h>>>0){break h}j=i;i=H[e>>2];if(j>>>0<=i>>>0){break h}i:{if(K[g+(h<<3)>>2]>2]){H[a>>2]=h;d=d+4|0;break i}H[a>>2]=i;e=e+4|0}a=a+4|0;if((b|0)!=(e|0)){continue}break}break g}Bf(a,h,c,g,e,f);d=d-g|0;Bf(h,b,c,d,e,f);Df(a,h,b,c,g,d,e,f);return}Yc();X()}if((d|0)==(f|0)){break a}while(1){H[a>>2]=H[d>>2];a=a+4|0;d=d+4|0;if((f|0)!=(d|0)){continue}break}}}function Ri(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;var f=0,g=0,h=0;a=ha-32|0;ha=a;a:{b:{c:{d:{if(!b){break d}f=sk(c);if(f>>>0>=4294967280){break c}e:{f:{if(f>>>0>=11){h=f+16&-16;g=hl(h);H[a+24>>2]=h|-2147483648;H[a+16>>2]=g;H[a+20>>2]=f;break f}F[a+27|0]=f;g=a+16|0;if(!f){break e}}jk(g,c,f)}F[f+g|0]=0;H[a+8>>2]=0;H[a>>2]=0;H[a+4>>2]=0;if(e){if((e|0)<0){break b}c=e<<2;e=hl(c);H[a>>2]=e;f=c+e|0;H[a+8>>2]=f;jk(e,d,c);H[a+4>>2]=f}f=ha-48|0;ha=f;e=dc(b,a+16|0);if((e|0)!=(b+4|0)){c=H[e+4>>2];g:{if(!c){c=e;while(1){d=H[c+8>>2];g=H[d>>2]!=(c|0);c=d;if(g){continue}break}break g}while(1){d=c;c=H[c>>2];if(c){continue}break}}if((e|0)==H[b>>2]){H[b>>2]=d}H[b+8>>2]=H[b+8>>2]-1;Xj(H[b+4>>2],e);c=H[e+28>>2];if(c){H[e+32>>2]=c;bl(c)}if(F[e+27|0]<0){bl(H[e+16>>2])}bl(e)}H[f+8>>2]=0;H[f>>2]=0;H[f+4>>2]=0;c=H[a+4>>2];d=H[a>>2];e=c-d|0;g=0;h:{i:{if((c|0)!=(d|0)){if((e|0)<0){break i}g=hl(e);c=lk(g,0,e);h=c+e|0;H[f+8>>2]=h;H[f+4>>2]=h;H[f>>2]=c;c=d}jk(g,c,e);j:{if(F[a+27|0]>=0){H[f+24>>2]=H[a+24>>2];c=H[a+20>>2];H[f+16>>2]=H[a+16>>2];H[f+20>>2]=c;break j}nl(f+16|0,H[a+16>>2],H[a+20>>2])}Vj(f+28|0,f);c=f+16|0;Yj(f+40|0,b,c,c);c=H[f+28>>2];if(c){H[f+32>>2]=c;bl(c)}if(F[f+27|0]<0){bl(H[f+16>>2])}c=H[f>>2];if(c){H[f+4>>2]=c;bl(c)}ha=f+48|0;break h}Ka();X()}c=H[a>>2];if(c){H[a+4>>2]=c;bl(c)}if(F[a+27|0]>=0){break d}bl(H[a+16>>2])}ha=a+32|0;a=(b|0)!=0;break a}Qe();X()}Ka();X()}return a|0}function Ac(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0;c=ha-16|0;ha=c;b=H[H[a+4>>2]+(b<<2)>>2];H[c+12>>2]=b;a=H[a+28>>2];e=H[H[H[a+4>>2]+8>>2]+(b<<2)>>2];b=H[e+28>>2];a:{if(b-1>>>0>=6){b:{if((b|0)!=9){break b}f=H[a+48>>2];a=hl(32);H[c>>2]=a;H[c+4>>2]=17;H[c+8>>2]=-2147483616;F[a+17|0]=0;F[a+16|0]=I[1261];b=I[1257]|I[1258]<<8|(I[1259]<<16|I[1260]<<24);d=I[1253]|I[1254]<<8|(I[1255]<<16|I[1256]<<24);F[a+8|0]=d;F[a+9|0]=d>>>8;F[a+10|0]=d>>>16;F[a+11|0]=d>>>24;F[a+12|0]=b;F[a+13|0]=b>>>8;F[a+14|0]=b>>>16;F[a+15|0]=b>>>24;b=I[1249]|I[1250]<<8|(I[1251]<<16|I[1252]<<24);d=I[1245]|I[1246]<<8|(I[1247]<<16|I[1248]<<24);F[a|0]=d;F[a+1|0]=d>>>8;F[a+2|0]=d>>>16;F[a+3|0]=d>>>24;F[a+4|0]=b;F[a+5|0]=b>>>8;F[a+6|0]=b>>>16;F[a+7|0]=b>>>24;a=Hb(f,c+12|0,c,-1);if(F[c+11|0]<0){bl(H[c>>2])}if((a|0)<=0){break b}if(H[e+56>>2]==1){a=hl(48);H[a>>2]=0;H[a+4>>2]=0;H[a+40>>2]=0;H[a+44>>2]=0;H[a+32>>2]=0;H[a+36>>2]=0;H[a+24>>2]=0;H[a+28>>2]=0;H[a+16>>2]=0;H[a+20>>2]=0;H[a+8>>2]=0;H[a+12>>2]=0;a=Ic(a);H[a+40>>2]=1032;H[a>>2]=6308;H[a+44>>2]=-1;break a}a=Ic(hl(64));H[a+40>>2]=2032;H[a>>2]=9988;H[a+48>>2]=0;H[a+52>>2]=0;H[a+44>>2]=-1;H[a+56>>2]=0;H[a+60>>2]=0;break a}a=hl(36);H[a+32>>2]=0;H[a+12>>2]=-1;H[a+4>>2]=0;H[a+8>>2]=0;H[a+16>>2]=0;H[a+20>>2]=0;H[a>>2]=2392;F[a+21|0]=0;F[a+22|0]=0;F[a+23|0]=0;F[a+24|0]=0;F[a+25|0]=0;F[a+26|0]=0;F[a+27|0]=0;F[a+28|0]=0;break a}a=Ic(hl(40))}ha=c+16|0;return a|0}function zc(a){a=a|0;var b=0,c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0;e=H[a+8>>2]-H[a+4>>2]>>2;b=H[a+40>>2];c=H[a+36>>2];d=b-c>>2;a:{if(e>>>0>d>>>0){g=e-d|0;c=H[a+44>>2];b=H[a+40>>2];if(g>>>0<=c-b>>2>>>0){if(g){i=b;b=g<<2;b=lk(i,0,b)+b|0}H[a+40>>2]=b;break a}b:{c:{d:{j=H[a+36>>2];e=b-j>>2;f=e+g|0;if(f>>>0<1073741824){d=c-j|0;c=d>>1;d=d>>>0<2147483644?c>>>0>f>>>0?c:f:1073741823;if(d){if(d>>>0>=1073741824){break d}i=hl(d<<2)}h=(e<<2)+i|0;c=g<<2;f=lk(h,0,c);e=c+f|0;d=(d<<2)+i|0;if((b|0)==(j|0)){break c}while(1){b=b-4|0;c=H[b>>2];H[b>>2]=0;h=h-4|0;H[h>>2]=c;if((b|0)!=(j|0)){continue}break}H[a+44>>2]=d;d=H[a+40>>2];H[a+40>>2]=e;b=H[a+36>>2];H[a+36>>2]=h;if((b|0)==(d|0)){break b}while(1){d=d-4|0;c=H[d>>2];H[d>>2]=0;if(c){la[H[H[c>>2]+4>>2]](c)}if((b|0)!=(d|0)){continue}break}break b}Ka();X()}_a();X()}H[a+44>>2]=d;H[a+40>>2]=e;H[a+36>>2]=f}if(b){bl(b)}break a}if(d>>>0<=e>>>0){break a}c=c+(e<<2)|0;if((c|0)!=(b|0)){while(1){b=b-4|0;d=H[b>>2];H[b>>2]=0;if(d){la[H[H[d>>2]+4>>2]](d)}if((b|0)!=(c|0)){continue}break}}H[a+40>>2]=c}if(H[a+8>>2]==H[a+4>>2]){return 1}b=0;while(1){e=la[H[H[a>>2]+56>>2]](a,b)|0;d=b<<2;c=d+H[a+36>>2]|0;f=H[c>>2];H[c>>2]=e;if(f){la[H[H[f>>2]+4>>2]](f)}c=H[d+H[a+36>>2]>>2];if(c){if(!(!(H[H[a+48>>2]+(b>>>3&536870908)>>2]>>>b&1)|K[a+52>>2]<=b>>>0)){F[c+28|0]=1}b=b+1|0;if(b>>>0>2]-H[a+4>>2]>>2>>>0){continue}}break}return(c|0)!=0|0}function nh(a){a=a|0;var b=0,c=0,d=0,e=0,f=0;H[a>>2]=10584;c=a+200|0;d=H[c+136>>2];if(d){b=d;e=H[c+140>>2];if((b|0)!=(e|0)){while(1){b=e-12|0;f=H[b>>2];if(f){H[e-8>>2]=f;bl(f)}e=b;if((b|0)!=(d|0)){continue}break}b=H[c+136>>2]}H[c+140>>2]=d;bl(b)}b=H[c+104>>2];if(b){H[c+108>>2]=b;bl(b)}b=H[c+92>>2];if(b){H[c+96>>2]=b;bl(b)}d=H[c+80>>2];H[c+80>>2]=0;if(d){e=d-4|0;b=H[e>>2];if(b){b=d+(b<<5)|0;while(1){b=ze(b-32|0);if((d|0)!=(b|0)){continue}break}}bl(e)}b=H[c+68>>2];if(b){H[c+72>>2]=b;bl(b)}b=H[c+44>>2];H[c+44>>2]=0;if(b){bl(b)}b=H[c+32>>2];if(b){H[c+36>>2]=b;bl(b)}ze(c);b=H[a+184>>2];if(b){H[a+188>>2]=b;bl(b)}d=H[a+172>>2];if(d){b=H[a+176>>2];e=d;if((b|0)!=(d|0)){while(1){e=b-136|0;f=H[e+116>>2];if(f){H[b-16>>2]=f;bl(f)}f=H[b-32>>2];if(f){H[b-28>>2]=f;bl(f)}ah(b-132|0);b=e;if((d|0)!=(b|0)){continue}break}e=H[a+172>>2]}H[a+176>>2]=d;bl(e)}b=H[a+152>>2];if(b){H[a+156>>2]=b;bl(b)}b=H[a+140>>2];if(b){bl(b)}b=H[a+128>>2];if(b){while(1){e=H[b>>2];bl(b);b=e;if(b){continue}break}}b=H[a+120>>2];H[a+120>>2]=0;if(b){bl(b)}b=H[a+108>>2];if(b){H[a+112>>2]=b;bl(b)}b=H[a+96>>2];if(b){H[a+100>>2]=b;bl(b)}b=H[a+84>>2];if(b){bl(b)}b=H[a+72>>2];if(b){H[a+76>>2]=b;bl(b)}b=H[a+52>>2];if(b){H[a+56>>2]=b;bl(b)}b=H[a+40>>2];if(b){H[a+44>>2]=b;bl(b)}b=H[a+28>>2];if(b){bl(b)}b=H[a+16>>2];if(b){H[a+20>>2]=b;bl(b)}b=H[a+12>>2];H[a+12>>2]=0;if(b){Sg(b)}return a|0}function Rd(a,b,c,d){var e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0;g=H[b+16>>2];e=H[c+4>>2]-g|0;H[c>>2]=0|H[c>>2]-g;H[c+4>>2]=e;e=H[d+4>>2]-g|0;f=H[d>>2]-g|0;H[d>>2]=j|f;H[d+4>>2]=e;h=H[b+16>>2];g=e>>31;j=(g^e)-g|0;g=f>>31;if((h|0)<(j+((g^f)-g|0)|0)){i=H[c+4>>2];k=H[c>>2];a:{b:{if((k|0)>=0){e=1;g=1;if((i|0)>=0){break a}f=1;e=-1;g=-1;if(k){break b}break a}f=-1;e=-1;g=-1;if((i|0)<=0){break a}}e=(i|0)<=0?-1:1;g=f}f=1;j=-1;l=k<<1;k=N(g,h);l=l-k|0;g=(N(e,g)|0)>=0;e=N(e,h);H[c+4>>2]=((g?0-l|0:l)+e|0)/2;e=(i<<1)-e|0;H[c>>2]=(k+(g?0-e|0:e)|0)/2;g=H[d+4>>2];i=H[d>>2];c:{d:{if((i|0)>=0){e=1;if((g|0)>=0){break c}j=1;f=-1;e=-1;if(i){break d}break c}f=-1;e=-1;if((g|0)<=0){break c}}f=(g|0)<=0?-1:1;e=j}h=i<<1;j=H[b+16>>2];i=N(j,e);h=h-i|0;l=0-h|0;k=h;h=(N(e,f)|0)>=0;f=N(f,j);e=((h?l:k)+f|0)/2|0;H[d+4>>2]=e;f=(g<<1)-f|0;f=(i+(h?0-f|0:f)|0)/2|0;H[d>>2]=f}e:{f:{g:{h:{i:{j:{if(f){if((f|0)>=0){break j}if((e|0)>0){break h}break e}if(e){break i}e=0;f=0;break e}if((e|0)<0){break g}e=0-H[c+4>>2]|0;H[c>>2]=0-H[c>>2];H[c+4>>2]=e;f=0-H[d>>2]|0;e=0-H[d+4>>2]|0;break f}if((e|0)<=0){break g}}e=H[c>>2];H[c>>2]=0-H[c+4>>2];H[c+4>>2]=e;f=0-H[d+4>>2]|0;e=H[d>>2];break f}e=0-H[c>>2]|0;H[c>>2]=H[c+4>>2];H[c+4>>2]=e;f=H[d+4>>2];e=0-H[d>>2]|0}H[d>>2]=f;H[d+4>>2]=e}d=H[c>>2];b=H[b+4>>2];c=H[c+4>>2]-e|0;H[a+4>>2]=(b&c>>31)+c;c=a;a=d-f|0;H[c>>2]=(b&a>>31)+a}function rl(a,b){var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0;d=ha-16|0;ha=d;h=ha-16|0;ha=h;el(d);ha=h+16|0;fl(d,I[d+11|0]>>>7|0?(H[d+8>>2]&2147483647)-1|0:10);i=ha-16|0;ha=i;l=+b;if(I[d+11|0]>>>7|0){h=H[d+4>>2]}else{h=I[d+11|0]}while(1){a:{if(I[d+11|0]>>>7|0){e=H[d>>2]}else{e=d}c=e;M[i>>3]=l;k=ha-16|0;ha=k;H[k+12>>2]=i;f=ha-160|0;ha=f;e=-1;g=h+1|0;H[f+148>>2]=g?g-1|0:0;j=g?c:f+158|0;H[f+144>>2]=j;c=lk(f,0,144);H[c+76>>2]=-1;H[c+36>>2]=374;H[c+80>>2]=-1;H[c+44>>2]=c+159;H[c+84>>2]=c+144;b:{if((g|0)<0){H[4837]=61;break b}F[j|0]=0;g=0;f=ha-208|0;ha=f;H[f+204>>2]=i;e=f+160|0;lk(e,0,40);H[f+200>>2]=H[f+204>>2];c:{if((Dk(0,f+200|0,f+80|0,e)|0)<0){e=-1;break c}m=H[c+76>>2]>=0;j=H[c>>2];if(H[c+72>>2]<=0){H[c>>2]=j&-33}d:{e:{f:{if(!H[c+48>>2]){H[c+48>>2]=80;H[c+28>>2]=0;H[c+16>>2]=0;H[c+20>>2]=0;g=H[c+44>>2];H[c+44>>2]=f;break f}if(H[c+16>>2]){break e}}e=-1;if(Bk(c)){break d}}e=Dk(c,f+200|0,f+80|0,f+160|0)}if(g){la[H[c+36>>2]](c,0,0)|0;H[c+48>>2]=0;H[c+44>>2]=g;H[c+28>>2]=0;g=H[c+20>>2];H[c+16>>2]=0;H[c+20>>2]=0;e=g?e:-1}g=H[c>>2];H[c>>2]=g|j&32;e=g&32?-1:e;if(!m){break c}}ha=f+208|0}ha=c+160|0;ha=k+16|0;g:{if((e|0)>=0){if(e>>>0<=h>>>0){break a}h=e;break g}h=h<<1|1}fl(d,h);continue}break}fl(d,e);h=H[d+4>>2];H[a>>2]=H[d>>2];H[a+4>>2]=h;H[a+8>>2]=H[d+8>>2];el(d);ha=i+16|0;if(I[d+11|0]>>>7|0){bl(H[d>>2])}ha=d+16|0}function Yg(a,b,c,d){var e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0;f=H[a>>2];g=b-f|0;i=(g&-4)+f|0;l=d-c|0;if((l|0)<=0){return}a:{j=l>>2;e=H[a+8>>2];h=H[a+4>>2];if((j|0)<=e-h>>2){g=h-i|0;e=g>>2;if((e|0)>=(j|0)){b=h;f=d;break a}b=h;f=(e<<2)+c|0;if((f|0)!=(d|0)){e=f;while(1){H[b>>2]=H[e>>2];b=b+4|0;e=e+4|0;if((e|0)!=(d|0)){continue}break}}H[a+4>>2]=b;if((g|0)>0){break a}return}b:{b=(h-f>>2)+j|0;if(b>>>0<1073741824){e=e-f|0;k=e>>1;k=e>>>0<2147483644?b>>>0>>0?k:b:1073741823;if(k){if(k>>>0>=1073741824){break b}e=hl(k<<2)}else{e=0}b=e+(g>>2<<2)|0;if((c|0)!=(d|0)){b=jk(b,c,l&-4)+(j<<2)|0}if((g|0)>0){jk(e,f,g)}if((h|0)!=(i|0)){while(1){H[b>>2]=H[i>>2];b=b+4|0;i=i+4|0;if((h|0)!=(i|0)){continue}break}}H[a+8>>2]=e+(k<<2);H[a+4>>2]=b;H[a>>2]=e;if(f){bl(f)}return}Ka();X()}_a();X()}e=j<<2;j=e+i|0;d=b;e=b-e|0;if(h>>>0>e>>>0){g=e;while(1){H[d>>2]=H[g>>2];d=d+4|0;g=g+4|0;if(h>>>0>g>>>0){continue}break}}H[a+4>>2]=d;c:{if((b|0)==(j|0)){break c}a=(b-j|0)-4|0;h=(a>>>2|0)+1&3;if(h){d=0;while(1){b=b-4|0;e=e-4|0;H[b>>2]=H[e>>2];d=d+1|0;if((h|0)!=(d|0)){continue}break}}if(a>>>0<12){break c}while(1){H[b-4>>2]=H[e-4>>2];H[b-8>>2]=H[e-8>>2];H[b-12>>2]=H[e-12>>2];b=b-16|0;e=e-16|0;H[b>>2]=H[e>>2];if((e|0)!=(i|0)){continue}break}}if((c|0)==(f|0)){return}b=i;while(1){H[b>>2]=H[c>>2];b=b+4|0;c=c+4|0;if((f|0)!=(c|0)){continue}break}}function Zg(a,b){var c=0,d=0,e=0,f=0,g=0;e=-1;c=(b|0)==-1;d=-1;a:{if(c){break a}d=b+1|0;e=(d>>>0)%3|0?d:b-2|0;d=b-1|0;if((b>>>0)%3|0){break a}d=b+2|0}f=c?-1:(b>>>0)/3|0;g=H[a+28>>2]+(f>>>3&536870908)|0;H[g>>2]=H[g>>2]|1<>2]+12>>2]+(b<<2)>>2];if((c|0)==-1){break b}c=(c>>>0)/3|0;if(H[H[a+28>>2]+(c>>>3&268435452)>>2]>>>c&1){break b}c=H[a+172>>2];if((c|0)==H[a+176>>2]){break b}f=1<>>5<<2;b=0;while(1){Ce(H[a+280>>2]+(b<<5)|0,(f&H[g+H[(N(b,136)+c|0)+4>>2]>>2])!=0);b=b+1|0;c=H[a+172>>2];if(b>>>0<(H[a+176>>2]-c|0)/136>>>0){continue}break}}c:{if((e|0)==-1){break c}b=H[H[H[a+12>>2]+12>>2]+(e<<2)>>2];if((b|0)==-1){break c}b=(b>>>0)/3|0;if(H[H[a+28>>2]+(b>>>3&268435452)>>2]>>>b&1){break c}c=H[a+172>>2];if((c|0)==H[a+176>>2]){break c}f=1<>>5<<2;b=0;while(1){Ce(H[a+280>>2]+(b<<5)|0,(f&H[e+H[(N(b,136)+c|0)+4>>2]>>2])!=0);b=b+1|0;c=H[a+172>>2];if(b>>>0<(H[a+176>>2]-c|0)/136>>>0){continue}break}}d:{if((d|0)==-1){break d}b=H[H[H[a+12>>2]+12>>2]+(d<<2)>>2];if((b|0)==-1){break d}b=(b>>>0)/3|0;if(H[H[a+28>>2]+(b>>>3&268435452)>>2]>>>b&1){break d}c=H[a+172>>2];if((c|0)==H[a+176>>2]){break d}e=1<>>5<<2;b=0;while(1){Ce(H[a+280>>2]+(b<<5)|0,(e&H[d+H[(N(b,136)+c|0)+4>>2]>>2])!=0);b=b+1|0;c=H[a+172>>2];if(b>>>0<(H[a+176>>2]-c|0)/136>>>0){continue}break}}}function $i(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,f=0,g=0,h=0;a=0;a:{if(!d|(!b|(c|0)<0)){break a}f=H[b+8>>2];if(H[b+12>>2]-f>>2<=(c|0)){break a}if(!H[b+4>>2]){a=hl(36);H[a+4>>2]=0;H[a+8>>2]=0;H[a+24>>2]=0;H[a+28>>2]=0;e=a+16|0;H[e>>2]=0;H[e+4>>2]=0;H[a>>2]=a+4;H[a+32>>2]=0;H[a+12>>2]=e;H[b+4>>2]=a}a=H[H[f+(c<<2)>>2]+60>>2];d=Wj(hl(28),d);H[d+24>>2]=a;a=H[b+4>>2];c=ha-16|0;ha=c;H[c+8>>2]=d;b:{if(!d){H[c+8>>2]=0;break b}b=H[a+28>>2];c:{if(b>>>0>2]){H[c+8>>2]=0;H[b>>2]=d;H[a+28>>2]=b+4;break c}b=0;d:{e:{f:{e=H[a+24>>2];f=H[a+28>>2]-e>>2;d=f+1|0;if(d>>>0<1073741824){e=H[a+32>>2]-e|0;g=e>>1;d=e>>>0<2147483644?d>>>0>>0?g:d:1073741823;if(d){if(d>>>0>=1073741824){break f}b=hl(d<<2)}g=H[c+8>>2];H[c+8>>2]=0;e=(f<<2)+b|0;H[e>>2]=g;f=(d<<2)+b|0;g=e+4|0;b=H[a+28>>2];d=H[a+24>>2];if((b|0)==(d|0)){break e}while(1){b=b-4|0;h=H[b>>2];H[b>>2]=0;e=e-4|0;H[e>>2]=h;if((b|0)!=(d|0)){continue}break}H[a+32>>2]=f;b=H[a+28>>2];H[a+28>>2]=g;d=H[a+24>>2];H[a+24>>2]=e;if((b|0)==(d|0)){break d}while(1){b=b-4|0;a=H[b>>2];H[b>>2]=0;if(a){Ii(a+12|0,H[a+16>>2]);Ji(a,H[a+4>>2]);bl(a)}if((b|0)!=(d|0)){continue}break}break d}Ka();X()}_a();X()}H[a+32>>2]=f;H[a+28>>2]=g;H[a+24>>2]=e}if(d){bl(d)}}a=H[c+8>>2];H[c+8>>2]=0;if(!a){break b}Ii(a+12|0,H[a+16>>2]);Ji(a,H[a+4>>2]);bl(a)}ha=c+16|0;a=1}return a|0}function ff(a,b,c,d,e){var f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0;l=ha-16|0;ha=l;g=H[b+28>>2];h=H[b+24>>2];H[a+8>>2]=h;H[a+12>>2]=g;g=H[b+20>>2];H[a>>2]=H[b+16>>2];H[a+4>>2]=g;g=H[b+36>>2];H[a+16>>2]=H[b+32>>2];H[a+20>>2]=g;H[a+8>>2]=d+h;a:{b:{if((d|0)>0){g=H[b>>2];while(1){f=H[b+4>>2]-g>>2;h=H[(i<<2)+c>>2];c:{if(f>>>0>h>>>0){break c}H[l+12>>2]=0;j=h+1|0;if(j>>>0>f>>>0){tb(b,j-f|0,l+12|0);g=H[b>>2];break c}if(f>>>0<=j>>>0){break c}H[b+4>>2]=(j<<2)+g}j=(h<<2)+g|0;f=H[j>>2];d:{if((f|0)>=2){k=+(f|0);k=nk(k)*k;break d}k=0;if(f){break d}H[a+16>>2]=H[a+16>>2]+1;if(h>>>0<=K[a+12>>2]){break d}H[a+12>>2]=h}h=f+1|0;H[j>>2]=h;m=+(h|0);n=a,o=nk(m)*m-k+M[a>>3],M[n>>3]=o;i=i+1|0;if((i|0)!=(d|0)){continue}break}if(e){break b}if((d|0)<=0){break a}a=H[b>>2];e=0;i=0;if(d-1>>>0>=3){h=d&-4;g=0;while(1){b=i<<2;f=a+(H[b+c>>2]<<2)|0;H[f>>2]=H[f>>2]-1;f=a+(H[(b|4)+c>>2]<<2)|0;H[f>>2]=H[f>>2]-1;f=a+(H[(b|8)+c>>2]<<2)|0;H[f>>2]=H[f>>2]-1;b=a+(H[(b|12)+c>>2]<<2)|0;H[b>>2]=H[b>>2]-1;i=i+4|0;g=g+4|0;if((h|0)!=(g|0)){continue}break}}b=d&3;if(!b){break a}while(1){d=a+(H[(i<<2)+c>>2]<<2)|0;H[d>>2]=H[d>>2]-1;i=i+1|0;e=e+1|0;if((b|0)!=(e|0)){continue}break}break a}if(!e){break a}}c=H[a+4>>2];H[b+16>>2]=H[a>>2];H[b+20>>2]=c;H[b+32>>2]=H[a+16>>2];c=H[a+12>>2];H[b+24>>2]=H[a+8>>2];H[b+28>>2]=c}ha=l+16|0}function ub(a,b){var c=0,d=0,e=0,f=0,g=0,h=0,i=0;a:{b:{c:{if(b){if(b>>>0>=1073741824){break c}c=hl(b<<2);d=H[a>>2];H[a>>2]=c;if(d){bl(d)}H[a+4>>2]=b;if(b-1>>>0>=3){g=b&-4;d=0;while(1){c=e<<2;H[c+H[a>>2]>>2]=0;H[H[a>>2]+(c|4)>>2]=0;H[H[a>>2]+(c|8)>>2]=0;H[H[a>>2]+(c|12)>>2]=0;e=e+4|0;d=d+4|0;if((g|0)!=(d|0)){continue}break}}d=b&3;if(d){while(1){H[H[a>>2]+(e<<2)>>2]=0;e=e+1|0;f=f+1|0;if((d|0)!=(f|0)){continue}break}}d=H[a+8>>2];if(!d){break a}e=a+8|0;g=H[d+4>>2];c=b-1|0;if(!(c&b)){break b}g=b>>>0<=g>>>0?(g>>>0)%(b>>>0)|0:g;H[H[a>>2]+(g<<2)>>2]=e;while(1){c=H[d>>2];if(!c){break a}f=H[c+4>>2];if(f>>>0>=b>>>0){f=(f>>>0)%(b>>>0)|0}if((g|0)==(f|0)){d=c;continue}e=c;h=f<<2;i=h+H[a>>2]|0;if(H[i>>2]){while(1){f=e;e=H[e>>2];if(H[c+8>>2]==H[e+8>>2]?e:0){continue}break}H[d>>2]=e;H[f>>2]=H[H[h+H[a>>2]>>2]>>2];H[H[h+H[a>>2]>>2]>>2]=c}else{H[i>>2]=d;d=c;g=f}continue}}b=H[a>>2];H[a>>2]=0;if(b){bl(b)}H[a+4>>2]=0;break a}_a();X()}g=c&g;H[H[a>>2]+(g<<2)>>2]=e;c=H[d>>2];if(!c){break a}h=b-1|0;while(1){b=h&H[c+4>>2];d:{if((b|0)==(g|0)){d=c;break d}e=c;f=b<<2;i=f+H[a>>2]|0;if(H[i>>2]){while(1){b=e;e=H[b>>2];if(H[c+8>>2]==H[e+8>>2]?e:0){continue}break}H[d>>2]=e;H[b>>2]=H[H[f+H[a>>2]>>2]>>2];H[H[f+H[a>>2]>>2]>>2]=c;break d}H[i>>2]=d;d=c;g=b}c=H[d>>2];if(c){continue}break}}}function of(a,b){var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0;f=ha-16|0;ha=f;zb(H[a+12>>2],b);a:{if(!H[a+12>>2]){break a}m=f+15|0;n=f+16|0;while(1){b:{c:{e=H[a>>2];i=H[e+(h<<3)>>2];d=i>>>0<64;if(!d){c=1;if(i>>>0<16384){break c}c=2;if(i>>>0<=4194303){break c}break a}c=0;if(i){break c}while(1){d:{if(H[(e+(c+h<<3)|0)+8>>2]){d=c;break d}d=c+1|0;if(H[(e+(h+d<<3)|0)+8>>2]){break d}d=c+2|0;if(H[(e+(h+d<<3)|0)+8>>2]){break d}d=63;c=c+3|0;if((c|0)!=63){continue}}break}F[f+15|0]=d<<2|3;c=H[b+20>>2];if(!H[b+16>>2]&(c|0)<=0|(c|0)<0){Da(b,H[b+4>>2],f+15|0,n)}h=d+h|0;break b}F[f+14|0]=i<<2|c;e=H[b+20>>2];if(!H[b+16>>2]&(e|0)<=0|(e|0)<0){Da(b,H[b+4>>2],f+14|0,m)}if(d){break b}d=H[b+20>>2];if(!!H[b+16>>2]&(d|0)>=0|(d|0)>0){break b}o=c>>>0>1?c:1;k=0;while(1){k=k+1|0;l=i>>>(k<<3)-2|0;F[f+13|0]=l;e:{c=H[b+20>>2];if(!!H[b+16>>2]&(c|0)>=0|(c|0)>0){break e}g=H[b+8>>2];c=H[b+4>>2];if((g-c|0)>0){F[c|0]=I[f+13|0];H[b+4>>2]=c+1;break e}e=H[b>>2];c=c-e|0;d=c+1|0;if((d|0)>=0){g=g-e|0;j=g<<1;g=g>>>0<1073741823?d>>>0>>0?j:d:2147483647;if(g){d=hl(g)}else{d=0}j=d+c|0;F[j|0]=l;if((c|0)>0){jk(d,e,c)}H[b+8>>2]=d+g;H[b+4>>2]=j+1;H[b>>2]=d;if(!e){break e}bl(e);break e}Ka();X()}if((k|0)!=(o|0)){continue}break}}h=h+1|0;if(h>>>0>2]){continue}break}}ha=f+16|0}function Fc(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0,i=0;f=H[a+16>>2];a:{if(H[a+20>>2]-f>>2<=(b|0)){break a}h=H[f+(b<<2)>>2];if((h|0)<0){break a}if(K[a+52>>2]<=h>>>0){b:{b=ha-16|0;ha=b;c:{e=H[a+52>>2];c=h+1|0;d:{if(e>>>0>>0){f=c-e|0;g=H[a+56>>2];d=g<<5;e:{if(!(f>>>0>d>>>0|e>>>0>d-f>>>0)){H[a+52>>2]=c;d=e&31;c=H[a+48>>2]+(e>>>3&536870908)|0;break e}H[b+8>>2]=0;H[b>>2]=0;H[b+4>>2]=0;if((c|0)<0){break c}if(d>>>0<=1073741822){d=g<<6;c=c+31&-32;i=c>>>0>>0?d:c}else{i=2147483647}Hc(b,i);d=H[a+52>>2];H[b+4>>2]=d+f;e=H[a+48>>2];c=H[b>>2];f:{if((d|0)<=0){d=0;break f}g=d>>>5<<2;c=kk(c,e,g)+g|0;d=d&31;g:{if(!d){d=0;break g}i=-1>>>32-d|0;H[c>>2]=H[c>>2]&(i^-1)|H[e+g>>2]&i}e=H[a+48>>2]}H[a+48>>2]=H[b>>2];H[b>>2]=e;g=H[a+52>>2];H[a+52>>2]=H[b+4>>2];H[b+4>>2]=g;g=H[a+56>>2];H[a+56>>2]=H[b+8>>2];H[b+8>>2]=g;if(!e){break e}bl(e)}if(!f){break d}if(d){e=32-d|0;g=e>>>0>>0?e:f;H[c>>2]=H[c>>2]&(-1<>>e-g^-1);f=f-g|0;c=c+4|0}i=c;c=f>>>5<<2;d=lk(i,0,c);if((f&-32)==(f|0)){break d}c=c+d|0;H[c>>2]=H[c>>2]&(-1>>>32-(f&31)^-1);break d}H[a+52>>2]=c}ha=b+16|0;break b}Ka();X()}}c=1;b=H[a+48>>2]+(h>>>3&536870908)|0;H[b>>2]=H[b>>2]|1<>2];a=H[a+36>>2];if(b-a>>2>>>0<=h>>>0){break a}F[H[a+(h<<2)>>2]+28|0]=1}return c|0}function zk(a){var b=0,c=0,d=0,e=0,f=0;a:{b:{c:{d:{e:{b=H[a+4>>2];f:{if((b|0)!=H[a+104>>2]){H[a+4>>2]=b+1;b=I[b|0];break f}b=uk(a)}switch(b-43|0){case 0:case 2:break e;default:break d}}f=(b|0)==45;b=H[a+4>>2];g:{if((b|0)!=H[a+104>>2]){H[a+4>>2]=b+1;b=I[b|0];break g}b=uk(a)}e=b-58|0;if(e>>>0>4294967285){break c}if(H[a+116>>2]<0){break b}H[a+4>>2]=H[a+4>>2]-1;break b}e=b-58|0}if(e>>>0<4294967286){break b}e=b-48|0;if(e>>>0<10){while(1){d=(N(d,10)+b|0)-48|0;c=(d|0)<214748364;b=H[a+4>>2];h:{if((b|0)!=H[a+104>>2]){H[a+4>>2]=b+1;b=I[b|0];break h}b=uk(a)}e=b-48|0;if(c&e>>>0<=9){continue}break}c=d>>31}i:{if(e>>>0>=10){break i}while(1){c=Sl(d,c,10,0);d=c+b|0;b=ka;b=c>>>0>d>>>0?b+1|0:b;c=d;d=c-48|0;c=b-(c>>>0<48)|0;b=H[a+4>>2];j:{if((b|0)!=H[a+104>>2]){H[a+4>>2]=b+1;b=I[b|0];break j}b=uk(a)}e=b-48|0;if(e>>>0>9){break i}if(d>>>0<2061584302&(c|0)<=21474836|(c|0)<21474836){continue}break}}if(e>>>0<10){while(1){b=H[a+4>>2];k:{if((b|0)!=H[a+104>>2]){H[a+4>>2]=b+1;b=I[b|0];break k}b=uk(a)}if(b-48>>>0<10){continue}break}}b=H[a+116>>2];if((b|0)>0|(b|0)>=0){H[a+4>>2]=H[a+4>>2]-1}a=d;d=f?0-a|0:a;c=f?0-(((a|0)!=0)+c|0)|0:c;break a}c=-2147483648;if(H[a+116>>2]<0){break a}H[a+4>>2]=H[a+4>>2]-1;ka=-2147483648;return 0}ka=c;return d}function Si(a,b,c,d){a=a|0;b=b|0;c=c|0;d=+d;var e=0,f=0,g=0,h=0,i=0;g=ha-16|0;ha=g;a:{b:{c:{if(!b){break c}e=sk(c);if(e>>>0>=4294967280){break b}d:{e:{if(e>>>0>=11){f=e+16&-16;a=hl(f);H[g+8>>2]=f|-2147483648;H[g>>2]=a;H[g+4>>2]=e;break e}F[g+11|0]=e;a=g;if(!e){break d}}jk(a,c,e)}F[a+e|0]=0;h=ha-16|0;ha=h;M[h+8>>3]=d;f=ha-48|0;ha=f;e=dc(b,g);if((e|0)!=(b+4|0)){a=H[e+4>>2];f:{if(!a){a=e;while(1){c=H[a+8>>2];i=H[c>>2]!=(a|0);a=c;if(i){continue}break}break f}while(1){c=a;a=H[a>>2];if(a){continue}break}}if((e|0)==H[b>>2]){H[b>>2]=c}H[b+8>>2]=H[b+8>>2]-1;Xj(H[b+4>>2],e);a=H[e+28>>2];if(a){H[e+32>>2]=a;bl(a)}if(F[e+27|0]<0){bl(H[e+16>>2])}bl(e)}a=hl(8);H[f>>2]=a;c=a+8|0;H[f+8>>2]=c;H[f+4>>2]=c;c=H[h+12>>2];e=H[h+8>>2];F[a|0]=e;F[a+1|0]=e>>>8;F[a+2|0]=e>>>16;F[a+3|0]=e>>>24;F[a+4|0]=c;F[a+5|0]=c>>>8;F[a+6|0]=c>>>16;F[a+7|0]=c>>>24;g:{if(F[g+11|0]>=0){H[f+24>>2]=H[g+8>>2];a=H[g+4>>2];H[f+16>>2]=H[g>>2];H[f+20>>2]=a;break g}nl(f+16|0,H[g>>2],H[g+4>>2])}Vj(f+28|0,f);a=f+16|0;Yj(f+40|0,b,a,a);a=H[f+28>>2];if(a){H[f+32>>2]=a;bl(a)}if(F[f+27|0]<0){bl(H[f+16>>2])}a=H[f>>2];if(a){H[f+4>>2]=a;bl(a)}ha=f+48|0;ha=h+16|0;if(F[g+11|0]>=0){break c}bl(H[g>>2])}ha=g+16|0;a=(b|0)!=0;break a}Qe();X()}return a|0}function Ub(a,b){var c=0,d=0,e=0,f=0,g=0;e=ha-16|0;ha=e;H[a+8>>2]=b;H[a>>2]=0;c=a+12|0;H[c>>2]=0;H[c+4>>2]=0;H[c+24>>2]=0;H[c+28>>2]=0;H[c+16>>2]=0;H[c+20>>2]=0;H[c+8>>2]=0;H[c+12>>2]=0;H[a+44>>2]=0;H[a+48>>2]=0;H[a+60>>2]=0;H[a+52>>2]=0;H[a+56>>2]=0;c=a- -64|0;H[c>>2]=0;H[c+4>>2]=0;H[c+16>>2]=0;H[c+8>>2]=0;H[c+12>>2]=0;H[a+84>>2]=0;H[a+88>>2]=0;H[a+100>>2]=0;H[a+92>>2]=0;H[a+96>>2]=0;H[a+112>>2]=0;H[a+104>>2]=0;H[a+108>>2]=0;g=a+140|0;a:{b:{if(b){if(b>>>0<1073741824){break b}Ka();X()}H[a+116>>2]=0;H[a+120>>2]=0;H[a+132>>2]=0;H[a+136>>2]=0;H[a+124>>2]=0;H[a+128>>2]=0;H[e+8>>2]=0;H[e>>2]=0;H[e+4>>2]=0;c=1;break a}c=b<<2;d=hl(c);H[a+104>>2]=d;f=c+d|0;H[a+112>>2]=f;lk(d,0,c);H[a+124>>2]=0;H[a+116>>2]=0;H[a+120>>2]=0;H[a+108>>2]=f;d=hl(c);H[a+116>>2]=d;f=c+d|0;H[a+124>>2]=f;lk(d,0,c);H[a+136>>2]=0;H[a+128>>2]=0;H[a+132>>2]=0;H[a+120>>2]=f;d=hl(c);H[a+128>>2]=d;f=c+d|0;H[a+136>>2]=f;lk(d,0,c);H[a+132>>2]=f;d=hl(c);H[e>>2]=d;f=c+d|0;H[e+8>>2]=f;lk(d,0,c);H[e+4>>2]=f;c=b<<5|1}ac(g,c,e);d=H[e>>2];if(d){H[e+4>>2]=d;bl(d)}H[e+8>>2]=0;H[e>>2]=0;H[e+4>>2]=0;if(b){b=b<<2;d=hl(b);H[e>>2]=d;f=b+d|0;H[e+8>>2]=f;lk(d,0,b);H[e+4>>2]=f}ac(a+152|0,c,e);b=H[e>>2];if(b){H[e+4>>2]=b;bl(b)}ha=e+16|0;return a}function Qh(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0;f=ha-16|0;ha=f;la[H[H[b>>2]+64>>2]](a,b);if(!H[a>>2]){if(F[a+15|0]<0){bl(H[a+4>>2])}g=H[b+48>>2];c=hl(32);H[f>>2]=c;H[f+4>>2]=29;H[f+8>>2]=-2147483616;F[c+29|0]=0;d=I[1308]|I[1309]<<8|(I[1310]<<16|I[1311]<<24);e=I[1304]|I[1305]<<8|(I[1306]<<16|I[1307]<<24);F[c+21|0]=e;F[c+22|0]=e>>>8;F[c+23|0]=e>>>16;F[c+24|0]=e>>>24;F[c+25|0]=d;F[c+26|0]=d>>>8;F[c+27|0]=d>>>16;F[c+28|0]=d>>>24;d=I[1303]|I[1304]<<8|(I[1305]<<16|I[1306]<<24);e=I[1299]|I[1300]<<8|(I[1301]<<16|I[1302]<<24);F[c+16|0]=e;F[c+17|0]=e>>>8;F[c+18|0]=e>>>16;F[c+19|0]=e>>>24;F[c+20|0]=d;F[c+21|0]=d>>>8;F[c+22|0]=d>>>16;F[c+23|0]=d>>>24;d=I[1295]|I[1296]<<8|(I[1297]<<16|I[1298]<<24);e=I[1291]|I[1292]<<8|(I[1293]<<16|I[1294]<<24);F[c+8|0]=e;F[c+9|0]=e>>>8;F[c+10|0]=e>>>16;F[c+11|0]=e>>>24;F[c+12|0]=d;F[c+13|0]=d>>>8;F[c+14|0]=d>>>16;F[c+15|0]=d>>>24;d=I[1287]|I[1288]<<8|(I[1289]<<16|I[1290]<<24);e=I[1283]|I[1284]<<8|(I[1285]<<16|I[1286]<<24);F[c|0]=e;F[c+1|0]=e>>>8;F[c+2|0]=e>>>16;F[c+3|0]=e>>>24;F[c+4|0]=d;F[c+5|0]=d>>>8;F[c+6|0]=d>>>16;F[c+7|0]=d>>>24;c=pi(g,f,0);if(F[f+11|0]<0){bl(H[f>>2])}if(c){la[H[H[b>>2]+68>>2]](b)}H[a>>2]=0;H[a+4>>2]=0;H[a+8>>2]=0;H[a+12>>2]=0}ha=f+16|0}function Je(a,b){var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0;e=ha-48|0;ha=e;h=a+16|0;d=H[h>>2];a:{b:{if(!d){break b}g=H[b>>2];c=h;while(1){f=(g|0)>H[d+16>>2];c=f?c:d;d=H[(f?d+4|0:d)>>2];if(d){continue}break}if((c|0)==(h|0)){break b}if((g|0)>=H[c+16>>2]){break a}}f=e+24|0;H[f+4>>2]=0;H[f+8>>2]=0;g=f+4|0;H[f>>2]=g;b=H[b>>2];i=e+16|0;H[i>>2]=0;H[i+4>>2]=0;H[e+8>>2]=b;H[e+12>>2]=i;k=e+8|4;d=H[f>>2];if((g|0)!=(d|0)){while(1){b=d+16|0;Xe(e+40|0,k,i,b,b);c=H[d+4>>2];c:{if(c){while(1){d=c;c=H[c>>2];if(c){continue}break c}}while(1){b=d;d=H[d+8>>2];if((b|0)!=H[d>>2]){continue}break}}if((d|0)!=(g|0)){continue}break}b=H[e+8>>2]}d=h;c=H[d>>2];d:{e:{if(!c){break e}while(1){d=c;c=H[c+16>>2];if((c|0)>(b|0)){h=d;c=H[d>>2];if(c){continue}break e}if((b|0)<=(c|0)){c=d;break d}c=H[d+4>>2];if(c){continue}break}h=d+4|0}c=hl(32);H[c+16>>2]=b;H[c+20>>2]=H[e+12>>2];j=c+24|0;g=H[e+16>>2];H[j>>2]=g;b=H[e+20>>2];H[c+28>>2]=b;f:{if(!b){H[c+20>>2]=j;break f}H[g+8>>2]=j;H[e+16>>2]=0;H[e+20>>2]=0;H[e+12>>2]=i}H[c+8>>2]=d;H[c>>2]=0;H[c+4>>2]=0;H[h>>2]=c;d=c;b=H[H[a+12>>2]>>2];if(b){H[a+12>>2]=b;d=H[h>>2]}We(H[a+16>>2],d);H[a+20>>2]=H[a+20>>2]+1}Nc(k,H[e+16>>2]);Nc(f,H[f+4>>2])}ha=e+48|0;return c+20|0}function Ae(a,b){var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0;a:{c=H[a+8>>2];d=H[a>>2];if(c-d>>3>>>0>=2){g=H[a+4>>2];h=g-d>>3;f=h>>>0<2?h:2;b:{if(!f){break b}k=f-1|0;j=f&7;c:{if(!j){c=d;break c}c=d;while(1){i=H[b+4>>2];H[c>>2]=H[b>>2];H[c+4>>2]=i;f=f-1|0;c=c+8|0;e=e+1|0;if((e|0)!=(j|0)){continue}break}}if(k>>>0<7){break b}while(1){e=H[b+4>>2];H[c>>2]=H[b>>2];H[c+4>>2]=e;e=H[b+4>>2];H[c+8>>2]=H[b>>2];H[c+12>>2]=e;e=H[b+4>>2];H[c+16>>2]=H[b>>2];H[c+20>>2]=e;e=H[b+4>>2];H[c+24>>2]=H[b>>2];H[c+28>>2]=e;e=H[b+4>>2];H[c+32>>2]=H[b>>2];H[c+36>>2]=e;e=H[b+4>>2];H[c+40>>2]=H[b>>2];H[c+44>>2]=e;e=H[b+4>>2];H[c+48>>2]=H[b>>2];H[c+52>>2]=e;e=H[b+4>>2];H[c+56>>2]=H[b>>2];H[c+60>>2]=e;c=c- -64|0;f=f-8|0;if(f){continue}break}}if(h>>>0<2){c=(2-h<<3)+g|0;while(1){d=H[b+4>>2];H[g>>2]=H[b>>2];H[g+4>>2]=d;g=g+8|0;if((c|0)!=(g|0)){continue}break}H[a+4>>2]=c;return}break a}if(d){H[a+4>>2]=d;bl(d);H[a+8>>2]=0;H[a>>2]=0;H[a+4>>2]=0;c=0}d=c>>2;d=c>>>0<2147483640?d>>>0>2?d:2:536870911;if(d>>>0<536870912){c=d<<3;d=hl(c);H[a>>2]=d;H[a+8>>2]=c+d;i=H[b>>2];e=H[b+4>>2];c=d;b=0;while(1){H[c>>2]=i;H[c+4>>2]=e;c=c+8|0;b=b+1|0;if((b|0)!=2){continue}break}break a}Ka();X()}H[a+4>>2]=d+16}function Hg(a,b,c){var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0;d=H[a+8>>2];e=H[a>>2];if(d-e>>2>>>0>=b>>>0){g=H[a+4>>2];h=g-e>>2;f=b>>>0>h>>>0?h:b;a:{if(!f){break a}k=f-1|0;i=f&7;b:{if(!i){d=e;break b}d=e;while(1){H[d>>2]=H[c>>2];f=f-1|0;d=d+4|0;j=j+1|0;if((j|0)!=(i|0)){continue}break}}if(k>>>0<7){break a}while(1){H[d>>2]=H[c>>2];H[d+4>>2]=H[c>>2];H[d+8>>2]=H[c>>2];H[d+12>>2]=H[c>>2];H[d+16>>2]=H[c>>2];H[d+20>>2]=H[c>>2];H[d+24>>2]=H[c>>2];H[d+28>>2]=H[c>>2];d=d+32|0;f=f-8|0;if(f){continue}break}}if(b>>>0>h>>>0){b=(b-h<<2)+g|0;while(1){H[g>>2]=H[c>>2];g=g+4|0;if((b|0)!=(g|0)){continue}break}H[a+4>>2]=b;return}H[a+4>>2]=e+(b<<2);return}if(e){H[a+4>>2]=e;bl(e);H[a+8>>2]=0;H[a>>2]=0;H[a+4>>2]=0;d=0}c:{if(b>>>0>=1073741824){break c}e=d>>1;d=d>>>0<2147483644?b>>>0>>0?e:b:1073741823;if(d>>>0>=1073741824){break c}d=d<<2;e=hl(d);H[a>>2]=e;H[a+8>>2]=d+e;c=H[c>>2];d=e;f=b&7;if(f){while(1){H[d>>2]=c;d=d+4|0;g=g+1|0;if((f|0)!=(g|0)){continue}break}}e=e+(b<<2)|0;if((b-1&1073741823)>>>0>=7){while(1){H[d+28>>2]=c;H[d+24>>2]=c;H[d+20>>2]=c;H[d+16>>2]=c;H[d+12>>2]=c;H[d+8>>2]=c;H[d+4>>2]=c;H[d>>2]=c;d=d+32|0;if((e|0)!=(d|0)){continue}break}}H[a+4>>2]=e;return}Ka();X()}function Qb(a){var b=0,c=0,d=0,e=0,f=0;e=ha-16|0;ha=e;b=hl(16);H[e>>2]=b;H[e+4>>2]=14;H[e+8>>2]=-2147483632;F[b+14|0]=0;c=I[1602]|I[1603]<<8|(I[1604]<<16|I[1605]<<24);d=I[1598]|I[1599]<<8|(I[1600]<<16|I[1601]<<24);F[b+6|0]=d;F[b+7|0]=d>>>8;F[b+8|0]=d>>>16;F[b+9|0]=d>>>24;F[b+10|0]=c;F[b+11|0]=c>>>8;F[b+12|0]=c>>>16;F[b+13|0]=c>>>24;c=I[1596]|I[1597]<<8|(I[1598]<<16|I[1599]<<24);d=I[1592]|I[1593]<<8|(I[1594]<<16|I[1595]<<24);F[b|0]=d;F[b+1|0]=d>>>8;F[b+2|0]=d>>>16;F[b+3|0]=d>>>24;F[b+4|0]=c;F[b+5|0]=c>>>8;F[b+6|0]=c>>>16;F[b+7|0]=c>>>24;f=mi(a,e,-1);if(F[e+11|0]<0){bl(H[e>>2])}b=hl(16);H[e>>2]=b;H[e+4>>2]=14;H[e+8>>2]=-2147483632;F[b+14|0]=0;c=I[1617]|I[1618]<<8|(I[1619]<<16|I[1620]<<24);d=I[1613]|I[1614]<<8|(I[1615]<<16|I[1616]<<24);F[b+6|0]=d;F[b+7|0]=d>>>8;F[b+8|0]=d>>>16;F[b+9|0]=d>>>24;F[b+10|0]=c;F[b+11|0]=c>>>8;F[b+12|0]=c>>>16;F[b+13|0]=c>>>24;c=I[1611]|I[1612]<<8|(I[1613]<<16|I[1614]<<24);d=I[1607]|I[1608]<<8|(I[1609]<<16|I[1610]<<24);F[b|0]=d;F[b+1|0]=d>>>8;F[b+2|0]=d>>>16;F[b+3|0]=d>>>24;F[b+4|0]=c;F[b+5|0]=c>>>8;F[b+6|0]=c>>>16;F[b+7|0]=c>>>24;a=mi(a,e,-1);if(F[e+11|0]<0){bl(H[e>>2])}ha=e+16|0;a=(a|0)<(f|0)?f:a;return(a|0)==-1?5:a}function Oj(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0;bk(a,b,c);c=H[a+84>>2];d=H[a+88>>2]-c>>2;a:{if((d|0)>(b|0)){break a}b=b+1|0;if(b>>>0>d>>>0){b:{d=b-d|0;e=H[a+92>>2];c=H[a+88>>2];if(d>>>0<=e-c>>2>>>0){c:{if(!d){break c}b=c;f=d&7;if(f){while(1){H[b>>2]=1;b=b+4|0;g=g+1|0;if((f|0)!=(g|0)){continue}break}}c=(d<<2)+c|0;if((d-1&1073741823)>>>0<7){break c}while(1){H[b+24>>2]=1;H[b+28>>2]=1;H[b+16>>2]=1;H[b+20>>2]=1;H[b+8>>2]=1;H[b+12>>2]=1;H[b>>2]=1;H[b+4>>2]=1;b=b+32|0;if((c|0)!=(b|0)){continue}break}}H[a+88>>2]=c;break b}d:{f=H[a+84>>2];j=c-f|0;c=j>>2;b=c+d|0;if(b>>>0<1073741824){e=e-f|0;h=e>>1;e=e>>>0<2147483644?b>>>0>>0?h:b:1073741823;if(e){if(e>>>0>=1073741824){break d}i=hl(e<<2)}c=(c<<2)+i|0;b=c;h=d&7;if(h){b=c;while(1){H[b>>2]=1;b=b+4|0;g=g+1|0;if((h|0)!=(g|0)){continue}break}}c=c+(d<<2)|0;if((d-1&1073741823)>>>0>=7){while(1){H[b+24>>2]=1;H[b+28>>2]=1;H[b+16>>2]=1;H[b+20>>2]=1;H[b+8>>2]=1;H[b+12>>2]=1;H[b>>2]=1;H[b+4>>2]=1;b=b+32|0;if((c|0)!=(b|0)){continue}break}}if((j|0)>0){jk(i,f,j)}H[a+92>>2]=(e<<2)+i;H[a+88>>2]=c;H[a+84>>2]=i;if(f){bl(f)}break b}Ka();X()}_a();X()}return}if(b>>>0>=d>>>0){break a}H[a+88>>2]=c+(b<<2)}}function Xb(a,b){var c=0,d=0,e=0,f=0,g=0;d=ha-16|0;ha=d;H[a+8>>2]=b;H[a>>2]=0;H[a+12>>2]=0;H[a+16>>2]=0;H[a+28>>2]=0;H[a+20>>2]=0;H[a+24>>2]=0;H[a+32>>2]=0;H[a+36>>2]=0;H[a+48>>2]=0;H[a+40>>2]=0;H[a+44>>2]=0;H[a+52>>2]=0;H[a+56>>2]=0;H[a+68>>2]=0;H[a+60>>2]=0;H[a+64>>2]=0;H[a+72>>2]=0;H[a+76>>2]=0;H[a+88>>2]=0;H[a+80>>2]=0;H[a+84>>2]=0;H[a+100>>2]=0;H[a+92>>2]=0;H[a+96>>2]=0;g=a+128|0;a:{b:{if(b){if(b>>>0<1073741824){break b}Ka();X()}H[a+104>>2]=0;H[a+108>>2]=0;H[a+120>>2]=0;H[a+124>>2]=0;H[a+112>>2]=0;H[a+116>>2]=0;H[d+8>>2]=0;H[d>>2]=0;H[d+4>>2]=0;e=1;break a}e=b<<2;c=hl(e);H[a+92>>2]=c;f=c+e|0;H[a+100>>2]=f;lk(c,0,e);H[a+112>>2]=0;H[a+104>>2]=0;H[a+108>>2]=0;H[a+96>>2]=f;c=hl(e);H[a+104>>2]=c;f=c+e|0;H[a+112>>2]=f;lk(c,0,e);H[a+124>>2]=0;H[a+116>>2]=0;H[a+120>>2]=0;H[a+108>>2]=f;c=hl(e);H[a+116>>2]=c;f=c+e|0;H[a+124>>2]=f;lk(c,0,e);H[a+120>>2]=f;c=hl(e);H[d>>2]=c;f=c+e|0;H[d+8>>2]=f;lk(c,0,e);H[d+4>>2]=f;e=b<<5|1}ac(g,e,d);c=H[d>>2];if(c){H[d+4>>2]=c;bl(c)}H[d+8>>2]=0;H[d>>2]=0;H[d+4>>2]=0;if(b){b=b<<2;c=hl(b);H[d>>2]=c;f=b+c|0;H[d+8>>2]=f;lk(c,0,b);H[d+4>>2]=f}ac(a+140|0,e,d);b=H[d>>2];if(b){H[d+4>>2]=b;bl(b)}ha=d+16|0;return a}function Qi(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,f=0,g=0,h=0;f=ha-16|0;ha=f;a:{b:{c:{if(!b){break c}e=sk(c);if(e>>>0>=4294967280){break b}d:{e:{if(e>>>0>=11){g=e+16&-16;a=hl(g);H[f+8>>2]=g|-2147483648;H[f>>2]=a;H[f+4>>2]=e;break e}F[f+11|0]=e;a=f;if(!e){break d}}jk(a,c,e)}F[a+e|0]=0;g=ha-16|0;ha=g;H[g+12>>2]=d;e=ha-48|0;ha=e;d=dc(b,f);if((d|0)!=(b+4|0)){a=H[d+4>>2];f:{if(!a){a=d;while(1){c=H[a+8>>2];h=H[c>>2]!=(a|0);a=c;if(h){continue}break}break f}while(1){c=a;a=H[a>>2];if(a){continue}break}}if((d|0)==H[b>>2]){H[b>>2]=c}H[b+8>>2]=H[b+8>>2]-1;Xj(H[b+4>>2],d);a=H[d+28>>2];if(a){H[d+32>>2]=a;bl(a)}if(F[d+27|0]<0){bl(H[d+16>>2])}bl(d)}a=hl(4);H[e>>2]=a;c=a+4|0;H[e+8>>2]=c;H[e+4>>2]=c;c=H[g+12>>2];F[a|0]=c;F[a+1|0]=c>>>8;F[a+2|0]=c>>>16;F[a+3|0]=c>>>24;g:{if(F[f+11|0]>=0){H[e+24>>2]=H[f+8>>2];a=H[f+4>>2];H[e+16>>2]=H[f>>2];H[e+20>>2]=a;break g}nl(e+16|0,H[f>>2],H[f+4>>2])}Vj(e+28|0,e);a=e+16|0;Yj(e+40|0,b,a,a);a=H[e+28>>2];if(a){H[e+32>>2]=a;bl(a)}if(F[e+27|0]<0){bl(H[e+16>>2])}a=H[e>>2];if(a){H[e+4>>2]=a;bl(a)}ha=e+48|0;ha=g+16|0;if(F[f+11|0]>=0){break c}bl(H[f>>2])}ha=f+16|0;a=(b|0)!=0;break a}Qe();X()}return a|0}function Ne(a,b,c){var d=0,e=0,f=0,g=0;f=ha-16|0;ha=f;d=hl(16);H[f>>2]=d;H[f+4>>2]=14;H[f+8>>2]=-2147483632;F[d+14|0]=0;g=I[1602]|I[1603]<<8|(I[1604]<<16|I[1605]<<24);e=I[1598]|I[1599]<<8|(I[1600]<<16|I[1601]<<24);F[d+6|0]=e;F[d+7|0]=e>>>8;F[d+8|0]=e>>>16;F[d+9|0]=e>>>24;F[d+10|0]=g;F[d+11|0]=g>>>8;F[d+12|0]=g>>>16;F[d+13|0]=g>>>24;g=I[1596]|I[1597]<<8|(I[1598]<<16|I[1599]<<24);e=I[1592]|I[1593]<<8|(I[1594]<<16|I[1595]<<24);F[d|0]=e;F[d+1|0]=e>>>8;F[d+2|0]=e>>>16;F[d+3|0]=e>>>24;F[d+4|0]=g;F[d+5|0]=g>>>8;F[d+6|0]=g>>>16;F[d+7|0]=g>>>24;d=a+4|0;ki(d,f,b);if(F[f+11|0]<0){bl(H[f>>2])}a=hl(16);H[f>>2]=a;H[f+4>>2]=14;H[f+8>>2]=-2147483632;F[a+14|0]=0;e=I[1617]|I[1618]<<8|(I[1619]<<16|I[1620]<<24);b=I[1613]|I[1614]<<8|(I[1615]<<16|I[1616]<<24);F[a+6|0]=b;F[a+7|0]=b>>>8;F[a+8|0]=b>>>16;F[a+9|0]=b>>>24;F[a+10|0]=e;F[a+11|0]=e>>>8;F[a+12|0]=e>>>16;F[a+13|0]=e>>>24;e=I[1611]|I[1612]<<8|(I[1613]<<16|I[1614]<<24);b=I[1607]|I[1608]<<8|(I[1609]<<16|I[1610]<<24);F[a|0]=b;F[a+1|0]=b>>>8;F[a+2|0]=b>>>16;F[a+3|0]=b>>>24;F[a+4|0]=e;F[a+5|0]=e>>>8;F[a+6|0]=e>>>16;F[a+7|0]=e>>>24;ki(d,f,c);if(F[f+11|0]<0){bl(H[f>>2])}ha=f+16|0}function Tg(a){var b=0,c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0;a:{b=H[a+12>>2];c=H[b+4>>2];b=H[b>>2];if((c|0)!=(b|0)){b=c-b>>2;j=b>>>0>1?b:1;k=a+140|0;while(1){b:{if(Jj(H[a+12>>2],(e>>>0)/3|0)){break b}b=H[a+12>>2];if(H[H[b+12>>2]+(e<<2)>>2]!=-1){break b}f=H[a+152>>2];d=e+1|0;d=(d>>>0)%3|0?d:e-2|0;if((d|0)!=-1){b=H[H[b>>2]+(d<<2)>>2]}else{b=-1}c=b<<2;if(H[f+c>>2]!=-1){break b}g=-1;h=H[a+144>>2];b=h;d=H[a+148>>2];if((b|0)==d<<5){if((h+1|0)<0){break a}if(h>>>0<=1073741822){b=d<<6;d=h+32&-32;b=b>>>0>d>>>0?b:d}else{b=2147483647}Hc(k,b);f=H[a+152>>2];g=H[c+f>>2];b=H[a+144>>2]}H[a+144>>2]=b+1;d=H[a+140>>2]+(b>>>3&536870908)|0;i=H[d>>2];m=d,n=Wl(b)&i,H[m>>2]=n;if((g|0)!=-1){break b}c=c+f|0;i=H[a+12>>2];b=e;while(1){d=b;H[c>>2]=h;b=-1;g=-1;c:{if((d|0)==-1){break c}c=d+1|0;c=(c>>>0)%3|0?c:d-2|0;if((c|0)==-1){break c}l=H[i+12>>2];while(1){d=H[(c<<2)+l>>2];if((d|0)!=-1){c=d+1|0;c=(c>>>0)%3|0?c:d-2|0;if((c|0)!=-1){continue}break c}break}b=c+1|0;b=(b>>>0)%3|0?b:c-2|0;if((b|0)!=-1){g=H[H[i>>2]+(b<<2)>>2]}b=c}c=(g<<2)+f|0;if(H[c>>2]==-1){continue}break}}e=e+1|0;if((j|0)!=(e|0)){continue}break}}return 1}Ka();X()}function uk(a){var b=0,c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0;b=H[a+112>>2];d=H[a+116>>2];e=!!(b|d);c=b;a:{i=e;e=H[a+4>>2];f=H[a+44>>2];b=e-f|0;h=b;g=b+H[a+120>>2]|0;b=H[a+124>>2]+(b>>31)|0;b=g>>>0>>0?b+1|0:b;if(!(i&(c>>>0<=g>>>0&(b|0)>=(d|0)|(b|0)>(d|0)))){d=ha-16|0;ha=d;e=-1;c=H[a+72>>2];H[a+72>>2]=c-1|c;if(H[a+20>>2]!=H[a+28>>2]){la[H[a+36>>2]](a,0,0)|0}H[a+28>>2]=0;H[a+16>>2]=0;H[a+20>>2]=0;c=H[a>>2];b:{if(c&4){H[a>>2]=c|32;c=-1;break b}f=H[a+44>>2]+H[a+48>>2]|0;H[a+8>>2]=f;H[a+4>>2]=f;c=c<<27>>31}c:{if(c){break c}if((la[H[a+32>>2]](a,d+15|0,1)|0)!=1){break c}e=I[d+15|0]}ha=d+16|0;if((e|0)>=0){break a}f=H[a+44>>2];e=H[a+4>>2]}H[a+112>>2]=-1;H[a+116>>2]=-1;H[a+104>>2]=e;d=f-e|0;e=d+g|0;b=(d>>31)+b|0;H[a+120>>2]=e;H[a+124>>2]=d>>>0>e>>>0?b+1|0:b;return-1}d=g+1|0;b=d?b:b+1|0;g=H[a+4>>2];f=H[a+8>>2];c=H[a+112>>2];h=H[a+116>>2];d:{if(!(c|h)){break d}i=c-d|0;c=h-(b+(d>>>0>c>>>0)|0)|0;j=f-g|0;h=j>>31;if((c|0)>=(h|0)&i>>>0>=j>>>0|(c|0)>(h|0)){break d}f=g+i|0}H[a+104>>2]=f;c=H[a+44>>2];f=c-g|0;d=f+d|0;b=(f>>31)+b|0;H[a+120>>2]=d;H[a+124>>2]=d>>>0>>0?b+1|0:b;if(c>>>0>=g>>>0){F[g-1|0]=e}return e}function Ib(a,b,c){var d=0,e=0,f=0,g=0,h=0;a:{b:{g=a+16|0;d=H[g>>2];if(!d){break b}h=H[b>>2];b=g;while(1){f=(h|0)>H[d+16>>2];b=f?b:d;d=H[(f?d+4|0:d)>>2];if(d){continue}break}if((b|0)==(g|0)|(h|0)>2]){break b}d=H[b+24>>2];if(!d){break a}a=I[c+11|0];b=a<<24>>24<0;g=b?H[c>>2]:c;a=b?H[c+4>>2]:a;while(1){b=I[d+27|0];c=b<<24>>24<0;b=c?H[d+20>>2]:b;h=b>>>0>>0;c:{d:{e:{f:{g:{h:{f=h?b:a;if(f){e=d+16|0;c=c?H[e>>2]:e;e=ok(g,c,f);if(e){break h}if(a>>>0>=b>>>0){break g}break c}if(a>>>0>=b>>>0){break f}break c}if((e|0)<0){break c}}b=ok(c,g,f);if(b){break e}}if(h){break d}return 1}if((b|0)<0){break d}return 1}d=d+4|0}d=H[d>>2];if(d){continue}break}break a}d=H[a+4>>2];if(!d){break a}a=I[c+11|0];b=a<<24>>24<0;g=b?H[c>>2]:c;a=b?H[c+4>>2]:a;while(1){b=I[d+27|0];c=b<<24>>24<0;b=c?H[d+20>>2]:b;h=b>>>0>>0;i:{j:{k:{l:{m:{n:{f=h?b:a;if(f){e=d+16|0;c=c?H[e>>2]:e;e=ok(g,c,f);if(e){break n}if(a>>>0>=b>>>0){break m}break i}if(a>>>0>=b>>>0){break l}break i}if((e|0)<0){break i}}b=ok(c,g,f);if(b){break k}}if(h){break j}return 1}if((b|0)<0){break j}return 1}d=d+4|0}d=H[d>>2];if(d){continue}break}}return 0}function jk(a,b,c){var d=0,e=0,f=0;if(c>>>0>=512){aa(a|0,b|0,c|0);return a}e=a+c|0;a:{if(!((a^b)&3)){b:{if(!(a&3)){c=a;break b}if(!c){c=a;break b}c=a;while(1){F[c|0]=I[b|0];b=b+1|0;c=c+1|0;if(!(c&3)){break b}if(c>>>0>>0){continue}break}}d=e&-4;c:{if(d>>>0<64){break c}f=d+-64|0;if(f>>>0>>0){break c}while(1){H[c>>2]=H[b>>2];H[c+4>>2]=H[b+4>>2];H[c+8>>2]=H[b+8>>2];H[c+12>>2]=H[b+12>>2];H[c+16>>2]=H[b+16>>2];H[c+20>>2]=H[b+20>>2];H[c+24>>2]=H[b+24>>2];H[c+28>>2]=H[b+28>>2];H[c+32>>2]=H[b+32>>2];H[c+36>>2]=H[b+36>>2];H[c+40>>2]=H[b+40>>2];H[c+44>>2]=H[b+44>>2];H[c+48>>2]=H[b+48>>2];H[c+52>>2]=H[b+52>>2];H[c+56>>2]=H[b+56>>2];H[c+60>>2]=H[b+60>>2];b=b- -64|0;c=c- -64|0;if(f>>>0>=c>>>0){continue}break}}if(c>>>0>=d>>>0){break a}while(1){H[c>>2]=H[b>>2];b=b+4|0;c=c+4|0;if(d>>>0>c>>>0){continue}break}break a}if(e>>>0<4){c=a;break a}d=e-4|0;if(d>>>0>>0){c=a;break a}c=a;while(1){F[c|0]=I[b|0];F[c+1|0]=I[b+1|0];F[c+2|0]=I[b+2|0];F[c+3|0]=I[b+3|0];b=b+4|0;c=c+4|0;if(d>>>0>=c>>>0){continue}break}}if(c>>>0>>0){while(1){F[c|0]=I[b|0];b=b+1|0;c=c+1|0;if((e|0)!=(c|0)){continue}break}}return a}function lh(a){a=a|0;var b=0,c=0,d=0,e=0;H[a>>2]=10532;c=H[a+280>>2];H[a+280>>2]=0;if(c){d=c-4|0;b=H[d>>2];if(b){b=c+(b<<5)|0;while(1){b=ze(b-32|0);if((c|0)!=(b|0)){continue}break}}bl(d)}b=H[a+268>>2];if(b){H[a+272>>2]=b;bl(b)}b=H[a+244>>2];H[a+244>>2]=0;if(b){bl(b)}b=H[a+232>>2];if(b){H[a+236>>2]=b;bl(b)}ze(a+200|0);b=H[a+184>>2];if(b){H[a+188>>2]=b;bl(b)}c=H[a+172>>2];if(c){d=c;b=H[a+176>>2];if((c|0)!=(b|0)){while(1){d=b-136|0;e=H[d+116>>2];if(e){H[b-16>>2]=e;bl(e)}e=H[b-32>>2];if(e){H[b-28>>2]=e;bl(e)}ah(b-132|0);b=d;if((c|0)!=(b|0)){continue}break}d=H[a+172>>2]}H[a+176>>2]=c;bl(d)}b=H[a+152>>2];if(b){H[a+156>>2]=b;bl(b)}b=H[a+140>>2];if(b){bl(b)}b=H[a+128>>2];if(b){while(1){c=H[b>>2];bl(b);b=c;if(b){continue}break}}b=H[a+120>>2];H[a+120>>2]=0;if(b){bl(b)}b=H[a+108>>2];if(b){H[a+112>>2]=b;bl(b)}b=H[a+96>>2];if(b){H[a+100>>2]=b;bl(b)}b=H[a+84>>2];if(b){bl(b)}b=H[a+72>>2];if(b){H[a+76>>2]=b;bl(b)}b=H[a+52>>2];if(b){H[a+56>>2]=b;bl(b)}b=H[a+40>>2];if(b){H[a+44>>2]=b;bl(b)}b=H[a+28>>2];if(b){bl(b)}b=H[a+16>>2];if(b){H[a+20>>2]=b;bl(b)}b=H[a+12>>2];H[a+12>>2]=0;if(b){Sg(b)}return a|0}function Xg(a,b,c){var d=0,e=0,f=0,g=0,h=0,i=0;f=-1;a:{if((b|0)==-1){h=H[a+12>>2];d=1;g=-1;break a}b:{c:{if((b>>>0)%3|0){e=b-1|0;h=H[a+12>>2];break c}h=H[a+12>>2];e=b+2|0;if((e|0)!=-1){break c}d=1;break b}g=H[h+12>>2];while(1){f=e;d=H[g+(e<<2)>>2];if((d|0)!=-1){f=-1;e=d+1|0;e=(e>>>0)%3|0?e:d-2|0;if((e|0)!=-1){continue}}break}d=(d|0)!=-1;g=-1;if((b|0)==-1){break a}}g=H[H[h>>2]+(b<<2)>>2]}b=0;if(c){b=H[a+84>>2]+(g>>>3&536870908)|0;H[b>>2]=H[b>>2]|1<>2]+(g<<2)>>2];e=H[a+140>>2]+(c>>>3&536870908)|0;H[e>>2]=H[e>>2]|1<>>0)%3|0){e=f-1|0;break e}e=f+2|0;c=-1;if((e|0)==-1){break d}}c=H[H[h>>2]+(e<<2)>>2]}if((g|0)!=(c|0)){i=H[a+84>>2];while(1){a=f;f=(c>>>3&536870908)+i|0;H[f>>2]=H[f>>2]|1<>>0)%3|0?d:a-2|0;if((d|0)==-1){break f}e=H[h+12>>2];while(1){a=H[e+(d<<2)>>2];if((a|0)!=-1){d=a+1|0;d=(d>>>0)%3|0?d:a-2|0;if((d|0)!=-1){continue}break f}break}g:{if((d>>>0)%3|0){e=d-1|0;break g}e=d+2|0;if((e|0)!=-1){break g}f=-3;break f}c=H[H[h>>2]+(e<<2)>>2];f=d}b=b+1|0;if((c|0)!=(g|0)){continue}break}}}function ch(a,b,c,d){var e=0,f=0,g=0,h=0,i=0;a:{b:{f=H[a+124>>2];c:{if(!f){break c}e=H[a+120>>2];i=Vl(f);h=f-1&d;d:{if(i>>>0<=1){break d}h=d;if(d>>>0>>0){break d}h=(d>>>0)%(f>>>0)|0}g=H[e+(h<<2)>>2];if(!g){break c}e=H[g>>2];if(!e){break c}e:{if(i>>>0<=1){g=f-1|0;while(1){f=H[e+4>>2];f:{if((f|0)!=(d|0)){if((h|0)==(f&g)){break f}break c}if(H[e+8>>2]==(d|0)){break e}}e=H[e>>2];if(e){continue}break}break c}while(1){g=H[e+4>>2];g:{if((g|0)!=(d|0)){if(f>>>0<=g>>>0){g=(g>>>0)%(f>>>0)|0}if((g|0)==(h|0)){break g}break c}if(H[e+8>>2]==(d|0)){break e}}e=H[e>>2];if(e){continue}break}break c}f=H[e+12>>2];if((f|0)==-1){break c}i=c&1;c=H[a+112>>2];if((c|0)!=H[a+116>>2]){F[c+8|0]=i;H[c+4>>2]=b;H[c>>2]=f;H[a+112>>2]=c+12;return}g=H[a+108>>2];h=c-g|0;d=(h|0)/12|0;c=d+1|0;if(c>>>0>=357913942){break b}e=d<<1;e=d>>>0<178956970?c>>>0>>0?e:c:357913941;if(e){if(e>>>0>=357913942){break a}c=hl(N(e,12))}else{c=0}d=c+N(d,12)|0;F[d+8|0]=i;H[d+4>>2]=b;H[d>>2]=f;b=d+N((h|0)/-12|0,12)|0;if((h|0)>0){jk(b,g,h)}H[a+116>>2]=c+N(e,12);H[a+112>>2]=d+12;H[a+108>>2]=b;if(!g){break c}bl(g)}return}Ka();X()}_a();X()}function tb(a,b,c){var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0;f=H[a+8>>2];e=H[a+4>>2];if(f-e>>2>>>0>=b>>>0){a:{if(!b){break a}d=e;g=b&7;if(g){while(1){H[d>>2]=H[c>>2];d=d+4|0;h=h+1|0;if((g|0)!=(h|0)){continue}break}}e=(b<<2)+e|0;if((b-1&1073741823)>>>0<7){break a}while(1){H[d>>2]=H[c>>2];H[d+4>>2]=H[c>>2];H[d+8>>2]=H[c>>2];H[d+12>>2]=H[c>>2];H[d+16>>2]=H[c>>2];H[d+20>>2]=H[c>>2];H[d+24>>2]=H[c>>2];H[d+28>>2]=H[c>>2];d=d+32|0;if((e|0)!=(d|0)){continue}break}}H[a+4>>2]=e;return}b:{g=H[a>>2];k=e-g|0;e=k>>2;d=e+b|0;if(d>>>0<1073741824){f=f-g|0;i=f>>1;f=f>>>0<2147483644?d>>>0>>0?i:d:1073741823;if(f){if(f>>>0>=1073741824){break b}j=hl(f<<2)}e=(e<<2)+j|0;d=e;i=b&7;if(i){d=e;while(1){H[d>>2]=H[c>>2];d=d+4|0;h=h+1|0;if((i|0)!=(h|0)){continue}break}}e=e+(b<<2)|0;if((b-1&1073741823)>>>0>=7){while(1){H[d>>2]=H[c>>2];H[d+4>>2]=H[c>>2];H[d+8>>2]=H[c>>2];H[d+12>>2]=H[c>>2];H[d+16>>2]=H[c>>2];H[d+20>>2]=H[c>>2];H[d+24>>2]=H[c>>2];H[d+28>>2]=H[c>>2];d=d+32|0;if((e|0)!=(d|0)){continue}break}}if((k|0)>0){jk(j,g,k)}H[a+8>>2]=(f<<2)+j;H[a+4>>2]=e;H[a>>2]=j;if(g){bl(g)}return}Ka();X()}_a();X()}function fk(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0;f=H[c>>2];m=H[c+4>>2];a:{if((f|0)==(m|0)){h=H[a+12>>2];b=H[a+8>>2];i=h-b|0;c=0;break a}o=H[b>>2];h=H[a+12>>2];b=H[a+8>>2];i=h-b|0;if((i|0)<=0){c=0;while(1){e=H[(H[f>>2]<<2)+o>>2];c=c>>>0>e>>>0?c:e+1|0;f=f+4|0;if((m|0)!=(f|0)){continue}break}break a}c=i>>>2|0;c=c>>>0>1?c:1;q=c&1073741822;r=c&1;c=0;s=i>>>0<8;while(1){e=H[f>>2];k=e<<2;l=H[o+k>>2];if(l>>>0>=c>>>0){c=0;j=0;if(!s){while(1){p=c<<2;d=H[p+b>>2];g=H[d+68>>2];d=I[d+84|0]?e:H[g+k>>2];n=g;g=l<<2;H[n+g>>2]=d;n=g;d=H[(p|4)+b>>2];g=H[d+68>>2];H[n+g>>2]=I[d+84|0]?e:H[g+k>>2];c=c+2|0;j=j+2|0;if((q|0)!=(j|0)){continue}break}}if(r){c=H[(c<<2)+b>>2];d=H[c+68>>2];j=d+(l<<2)|0;if(!I[c+84|0]){e=H[d+k>>2]}H[j>>2]=e}c=l+1|0}f=f+4|0;if((m|0)!=(f|0)){continue}break}}d=0;if((i|0)>0){while(1){b=H[(d<<2)+b>>2];F[b+84|0]=0;f=H[b+68>>2];e=H[b+72>>2]-f>>2;b:{if(e>>>0>>0){tb(b+68|0,c-e|0,15024);h=H[a+12>>2];break b}if(c>>>0>=e>>>0){break b}H[b+72>>2]=f+(c<<2)}d=d+1|0;b=H[a+8>>2];if((d|0)>2){continue}break}}}function Jc(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0;H[a+4>>2]=b;d=H[H[H[b+4>>2]+8>>2]+(c<<2)>>2];H[a+12>>2]=c;H[a+8>>2]=d;a:{if((la[H[H[a>>2]+32>>2]](a)|0)==1&H[H[a+8>>2]+28>>2]-1>>>0>5){break a}f=H[b+48>>2];d=ha-16|0;ha=d;H[d+12>>2]=c;b=hl(32);H[d>>2]=b;H[d+4>>2]=17;H[d+8>>2]=-2147483616;F[b+17|0]=0;F[b+16|0]=I[1529];c=I[1525]|I[1526]<<8|(I[1527]<<16|I[1528]<<24);e=I[1521]|I[1522]<<8|(I[1523]<<16|I[1524]<<24);F[b+8|0]=e;F[b+9|0]=e>>>8;F[b+10|0]=e>>>16;F[b+11|0]=e>>>24;F[b+12|0]=c;F[b+13|0]=c>>>8;F[b+14|0]=c>>>16;F[b+15|0]=c>>>24;c=I[1517]|I[1518]<<8|(I[1519]<<16|I[1520]<<24);e=I[1513]|I[1514]<<8|(I[1515]<<16|I[1516]<<24);F[b|0]=e;F[b+1|0]=e>>>8;F[b+2|0]=e>>>16;F[b+3|0]=e>>>24;F[b+4|0]=c;F[b+5|0]=c>>>8;F[b+6|0]=c>>>16;F[b+7|0]=c>>>24;b=Hb(f,d+12|0,d,-1);if(F[d+11|0]<0){bl(H[d>>2])}ha=d+16|0;c=la[H[H[a>>2]+48>>2]](a,(b|0)==-1?-1:b>>>0>6?-2:b)|0;b=H[a+36>>2];H[a+36>>2]=c;e=1;if(b){la[H[H[b>>2]+4>>2]](b);c=H[a+36>>2]}if(!c){break a}if(la[H[H[a>>2]+36>>2]](a,c)|0){break a}b=H[a+36>>2];H[a+36>>2]=0;if(!b){break a}la[H[H[b>>2]+4>>2]](b)}return e|0}function Rj(a){var b=0,c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0;f=ha-16|0;ha=f;a:{d=$j(a);b:{if(!d){a=0;break b}e=H[a+100>>2];g=H[a+96>>2];H[f+8>>2]=0;H[f>>2]=0;H[f+4>>2]=0;b=e-g|0;c=(b|0)/12|0;c:{if((e|0)==(g|0)){break c}if(c>>>0>=357913942){break a}e=hl(b);H[f>>2]=e;H[f+8>>2]=e+N(c,12);a=0;h=e;e=b-12|0;b=(e-((e>>>0)%12|0)|0)+12|0;e=lk(h,0,b);H[f+4>>2]=b+e;if(I[d+84|0]){d=c>>>0>1?c:1;i=d&1;if(c>>>0>=2){j=d&-2;c=0;while(1){b=N(a,12);d=b+g|0;h=H[d+4>>2];k=H[d>>2];b=b+e|0;H[b+8>>2]=H[d+8>>2];H[b>>2]=k;H[b+4>>2]=h;b=N(a|1,12);d=b+g|0;h=H[d+4>>2];k=H[d>>2];b=b+e|0;H[b+8>>2]=H[d+8>>2];H[b>>2]=k;H[b+4>>2]=h;a=a+2|0;c=c+2|0;if((j|0)!=(c|0)){continue}break}}if(!i){break c}c=N(a,12);a=c+g|0;g=H[a+4>>2];d=H[a>>2];c=c+e|0;H[c+8>>2]=H[a+8>>2];H[c>>2]=d;H[c+4>>2]=g;break c}i=c>>>0>1?c:1;a=H[d+68>>2];c=0;while(1){b=N(c,12);d=b+g|0;j=H[a+(H[d>>2]<<2)>>2];h=H[a+(H[d+4>>2]<<2)>>2];b=b+e|0;H[b+8>>2]=H[a+(H[d+8>>2]<<2)>>2];H[b+4>>2]=h;H[b>>2]=j;c=c+1|0;if((i|0)!=(c|0)){continue}break}}a=Ij(f);c=H[f>>2];if(!c){break b}H[f+4>>2]=c;bl(c)}ha=f+16|0;return a}Ka();X()}function fb(a,b){var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0;a:{if(H[a+64>>2]){break a}c=hl(32);H[c+16>>2]=0;H[c+20>>2]=0;H[c+8>>2]=0;H[c>>2]=0;H[c+4>>2]=0;H[c+24>>2]=0;H[c+28>>2]=0;d=H[a+64>>2];H[a+64>>2]=c;if(!d){break a}c=H[d>>2];if(c){H[d+4>>2]=c;bl(c)}bl(d)}c=H[a+64>>2];d=H[a+28>>2]-1|0;if(d>>>0<=10){d=H[(d<<2)+14832>>2]}else{d=-1}d=N(d,F[a+24|0]);k=d;j=d>>31;d=Sl(d,j,b,0);b:{if((ka|0)<0){break b}c:{e=H[c+4>>2];f=H[c>>2];h=e-f|0;d:{if(d>>>0>h>>>0){i=d-h|0;g=H[c+8>>2];if(i>>>0<=g-e>>>0){l=c,m=lk(e,0,i)+i|0,H[l+4>>2]=m;break d}if((d|0)<0){break c}e=g-f|0;g=e<<1;g=e>>>0<1073741823?d>>>0>>0?g:d:2147483647;e=hl(g);lk(e+h|0,0,i);if((h|0)>0){jk(e,f,h)}H[c+8>>2]=e+g;H[c+4>>2]=d+e;H[c>>2]=e;if(!f){break d}bl(f);break d}if(d>>>0>=h>>>0){break d}H[c+4>>2]=d+f}d=H[c+28>>2];f=H[c+24>>2]+1|0;d=f?d:d+1|0;H[c+24>>2]=f;H[c+28>>2]=d;f=1;break b}Ka();X()}if(f){c=H[a+64>>2];H[a>>2]=c;d=H[c+20>>2];H[a+8>>2]=H[c+16>>2];H[a+12>>2]=d;d=H[c+24>>2];c=H[c+28>>2];H[a+48>>2]=0;H[a+52>>2]=0;H[a+40>>2]=k;H[a+44>>2]=j;H[a+16>>2]=d;H[a+20>>2]=c;H[a+80>>2]=b}}function Ul(a,b,c,d){var e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0;g=c;a:{b:{c:{d:{e:{f:{g:{h:{i:{j:{k:{if(b){if(!g){break k}if(!d){break j}c=Q(d)-Q(b)|0;if(c>>>0<=31){break i}break c}if((d|0)==1|d>>>0>1){break c}a=(a>>>0)/(g>>>0)|0;ka=0;break a}if(!a){break h}if(!d){break g}if(d-1&d){break g}a=b>>>Xl(d)|0;ka=0;break a}if(!(g-1&g)){break f}h=(Q(g)+33|0)-Q(b)|0;e=0-h|0;break d}h=c+1|0;e=63-c|0;break d}a=(b>>>0)/(d>>>0)|0;ka=0;break a}c=Q(d)-Q(b)|0;if(c>>>0<31){break e}break c}if((g|0)==1){break b}c=Xl(g);d=c&31;if((c&63)>>>0>=32){c=0;a=b>>>d|0}else{c=b>>>d|0;a=((1<>>d}ka=c;break a}h=c+1|0;e=63-c|0}c=h&63;f=c&31;if(c>>>0>=32){c=0;i=b>>>f|0}else{c=b>>>f|0;i=((1<>>f}f=c;c=e&63;e=c&31;if(c>>>0>=32){c=a<>>32-e|b<>>31;f=f<<1|i>>>31;j=m-(f+(c>>>0>e>>>0)|0)>>31;k=g&j;i=c-k|0;f=f-((d&j)+(c>>>0>>0)|0)|0;b=b<<1|a>>>31;a=l|a<<1;l=j&1;h=h-1|0;if(h){continue}break}}ka=b<<1|a>>>31;a=l|a<<1;break a}a=0;b=0}ka=b}return a}function ki(a,b,c){var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0;g=ha-48|0;ha=g;f=ha-32|0;ha=f;j=f+21|0;d=j;l=f+32|0;e=l;if(!((d|0)==(e|0)|(c|0)>=0)){F[d|0]=45;d=d+1|0;c=0-c|0}k=e-d|0;a:{if((k|0)<=9){i=N(32-Q(c|1)|0,1233)>>12;h=61;if((k|0)<((K[(i<<2)+18400>>2]<=c>>>0)+i|0)){break a}}b:{if(c>>>0<=99999999){c:{if(c>>>0<=9999){e=ll(d,c);break c}e=d;d=(c>>>0)/1e4|0;e=kl(ll(e,d),c-N(d,1e4)|0)}break b}e=(c>>>0)/1e8|0;h=c-N(e,1e8)|0;c=(h>>>0)/1e4|0;e=kl(kl(jl(d,e),c),h-N(c,1e4)|0)}h=0}H[f+12>>2]=h;H[f+8>>2]=e;h=ha-16|0;ha=h;e=ha-16|0;ha=e;c=g+8|0;d:{k=H[f+8>>2];f=k-j|0;if(f>>>0<=4294967279){e:{if(f>>>0<11){F[c+11|0]=f;d=c;break e}if(f>>>0>=11){i=f+16&-16;d=i-1|0;d=(d|0)==11?i:d}else{d=10}i=d+1|0;d=hl(i);H[c>>2]=d;H[c+8>>2]=i|-2147483648;H[c+4>>2]=f}while(1){if((j|0)!=(k|0)){F[d|0]=I[j|0];d=d+1|0;j=j+1|0;continue}break}F[e+15|0]=0;F[d|0]=I[e+15|0];ha=e+16|0;break d}Qe();X()}ha=h+16|0;ha=l;H[g+32>>2]=b;Ze(g+40|0,a,b,g+32|0);a=H[g+40>>2];if(F[a+39|0]<0){bl(H[a+28>>2])}b=H[g+12>>2];H[a+28>>2]=H[g+8>>2];H[a+32>>2]=b;H[a+36>>2]=H[g+16>>2];ha=g+48|0}function gc(a,b,c){var d=0,e=0,f=0,g=0,h=0;d=32-b|0;c=c<>2];f=32-e|0;c:{if((f|0)>=(b|0)){b=b+e|0;H[a+16>>2]=b;f=H[a+12>>2]|c>>>e;H[a+12>>2]=f;if((b|0)!=32){break c}b=H[a+4>>2];d:{if((b|0)!=H[a+8>>2]){H[b>>2]=f;H[a+4>>2]=b+4;break d}e=H[a>>2];c=b-e|0;g=c>>2;b=g+1|0;if(b>>>0>=1073741824){break b}d=c>>1;d=c>>>0<2147483644?b>>>0>>0?d:b:1073741823;if(d){if(d>>>0>=1073741824){break a}b=hl(d<<2)}else{b=0}g=b+(g<<2)|0;H[g>>2]=f;if((c|0)>0){jk(b,e,c)}H[a+8>>2]=b+(d<<2);H[a+4>>2]=g+4;H[a>>2]=b;if(!e){break d}bl(e)}H[a+12>>2]=0;H[a+16>>2]=0;return}b=b-f|0;H[a+16>>2]=b;g=c>>>d|0;f=H[a+12>>2]|g>>>b;H[a+12>>2]=f;b=H[a+4>>2];e:{if((b|0)!=H[a+8>>2]){H[b>>2]=f;H[a+4>>2]=b+4;break e}e=H[a>>2];c=b-e|0;h=c>>2;b=h+1|0;if(b>>>0>=1073741824){break b}d=c>>1;d=c>>>0<2147483644?b>>>0>>0?d:b:1073741823;if(d){if(d>>>0>=1073741824){break a}b=hl(d<<2)}else{b=0}h=b+(h<<2)|0;H[h>>2]=f;if((c|0)>0){jk(b,e,c)}H[a+8>>2]=b+(d<<2);H[a+4>>2]=h+4;H[a>>2]=b;if(!e){break e}bl(e)}H[a+12>>2]=g<<32-H[a+16>>2]}return}Ka();X()}_a();X()}function nk(a){var b=0,c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0;A(+a);c=v(1)|0;b=v(0)|0;d=c-1072604335|0;if((d|0)==135337|d>>>0<135337){if(!b&(c|0)==1072693248){return 0}f=M[1879];a=a+-1;A(+a);b=v(1)|0;v(0)|0;x(0,0);x(1,b|0);g=+z();h=f*g;e=a*a;i=e*(a*M[1888]+M[1887]);j=h+i;l=e*e;return j+(l*(l*(e*(a*M[1896]+M[1895])+(a*M[1894]+M[1893]))+(e*(a*M[1892]+M[1891])+(a*M[1890]+M[1889])))+((a-g)*f+a*M[1880]+(i+(h-j))))}d=c>>>16|0;a:{if(d-32752>>>0<=4294934559){if(!(c&2147483647|b)){b=ha-16|0;M[b+8>>3]=-1;return M[b+8>>3]/0}if(!b&(c|0)==2146435072){break a}if(!(!(d&32768)&(d&32752)!=32752)){a=a-a;return a/a}A(+(a*4503599627370496));c=v(1)|0;b=v(0)|0;c=c-54525952|0}d=c-1072037888|0;k=(d>>>14&63)<<4;f=M[k+15184>>3]+ +(d>>20);g=M[1879];a=M[k+15176>>3];x(0,b-0|0);x(1,c-((d&-1048576)+(b>>>0>>0)|0)|0);a=a*(+z()-M[k+16200>>3]-M[k+16208>>3]);A(+a);b=v(1)|0;v(0)|0;x(0,0);x(1,b|0);h=+z();i=g*h;j=f+i;e=a*a;a=j+(e*(e*e*(a*M[1886]+M[1885])+(e*(a*M[1884]+M[1883])+(a*M[1882]+M[1881])))+((a-h)*g+M[1880]*a+(i+(f-j))))}return a}function We(a,b){var c=0,d=0,e=0;c=(a|0)==(b|0);F[b+12|0]=c;a:{if(c){break a}while(1){d=H[b+8>>2];if(I[d+12|0]){break a}b:{c=H[d+8>>2];e=H[c>>2];if((e|0)==(d|0)){e=H[c+4>>2];if(!(!e|I[e+12|0])){break b}c:{if(H[d>>2]==(b|0)){b=d;break c}b=H[d+4>>2];a=H[b>>2];H[d+4>>2]=a;if(a){H[a+8>>2]=d;c=H[d+8>>2]}H[b+8>>2]=c;a=H[d+8>>2];H[((H[a>>2]!=(d|0))<<2)+a>>2]=b;H[b>>2]=d;H[d+8>>2]=b;c=H[b+8>>2];d=H[c>>2]}F[b+12|0]=1;F[c+12|0]=0;a=H[d+4>>2];H[c>>2]=a;if(a){H[a+8>>2]=c}H[d+8>>2]=H[c+8>>2];a=H[c+8>>2];H[((H[a>>2]!=(c|0))<<2)+a>>2]=d;H[d+4>>2]=c;H[c+8>>2]=d;return}if(!(I[e+12|0]|!e)){break b}d:{if(H[d>>2]!=(b|0)){b=d;break d}a=H[b+4>>2];H[d>>2]=a;if(a){H[a+8>>2]=d;c=H[d+8>>2]}H[b+8>>2]=c;a=H[d+8>>2];H[((H[a>>2]!=(d|0))<<2)+a>>2]=b;H[b+4>>2]=d;H[d+8>>2]=b;c=H[b+8>>2]}F[b+12|0]=1;F[c+12|0]=0;a=H[c+4>>2];b=H[a>>2];H[c+4>>2]=b;if(b){H[b+8>>2]=c}H[a+8>>2]=H[c+8>>2];b=H[c+8>>2];H[((H[b>>2]!=(c|0))<<2)+b>>2]=a;H[a>>2]=c;H[c+8>>2]=a;break a}F[d+12|0]=1;F[c+12|0]=(a|0)==(c|0);F[e+12|0]=1;b=c;if((c|0)!=(a|0)){continue}break}}}function cf(a,b,c,d){var e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0;j=ha-16|0;ha=j;H[j+8>>2]=0;H[j>>2]=0;H[j+4>>2]=0;a:{b:{e=c+1|0;if(e){if(e>>>0>=1073741824){break b}h=hl(e<<2);lk(h,0,(c<<2)+4|0)}c:{if((b|0)<=0){break c}e=0;if(b-1>>>0>=3){k=b&-4;while(1){f=e<<2;i=(H[f+a>>2]<<2)+h|0;H[i>>2]=H[i>>2]+1;i=(H[(f|4)+a>>2]<<2)+h|0;H[i>>2]=H[i>>2]+1;i=(H[(f|8)+a>>2]<<2)+h|0;H[i>>2]=H[i>>2]+1;f=(H[(f|12)+a>>2]<<2)+h|0;H[f>>2]=H[f>>2]+1;e=e+4|0;l=l+4|0;if((k|0)!=(l|0)){continue}break}}f=b&3;if(!f){break c}while(1){k=(H[(e<<2)+a>>2]<<2)+h|0;H[k>>2]=H[k>>2]+1;e=e+1|0;m=m+1|0;if((f|0)!=(m|0)){continue}break}}e=0;if((c|0)<0){a=0;break a}o=+(b|0);a=0;while(1){b=H[(e<<2)+h>>2];if((b|0)>0){n=+(b|0);g=n*nk(n/o)+g;a=a+1|0}b=(c|0)==(e|0);e=e+1|0;if(!b){continue}break}break a}Ka();X()}if(d){H[d>>2]=a}if(h){bl(h)}g=-g;d:{if(P(g)<0x8000000000000000){b=P(g)>=1?~~(g>0?R(T(g*2.3283064365386963e-10),4294967295):U((g-+(~~g>>>0>>>0))*2.3283064365386963e-10))>>>0:0;a=~~g>>>0;break d}b=-2147483648;a=0}ha=j+16|0;ka=b;return a}function Qa(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0,g=0,h=0,i=O(0),j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0;k=ha-16|0;ha=k;if(H[c+28>>2]==9){d=H[a+4>>2];g=F[c+24|0];e=g<<2;f=hl((g&1073741823)!=(g|0)?-1:e);l=k+8|0;H[l>>2]=1065353216;i=L[a+20>>2];d=-1<0){L[l>>2]=i/O(d|0)}o=(d|0)>0;a:{if(!o){break a}j=H[c+80>>2];if(!j){break a}d=0;if((g|0)<=0){if((j|0)!=1){a=j&-2;b=0;while(1){jk(H[H[c+64>>2]>>2]+d|0,f,e);d=d+e|0;jk(d+H[H[c+64>>2]>>2]|0,f,e);d=d+e|0;b=b+2|0;if((a|0)!=(b|0)){continue}break}}if(!(j&1)){break a}jk(H[H[c+64>>2]>>2]+d|0,f,e);break a}p=H[H[b>>2]>>2]+H[b+48>>2]|0;t=g&-2;u=g&1;while(1){m=H[a+8>>2];i=L[l>>2];b=0;n=0;if((g|0)!=1){while(1){h=b<<2;q=(d<<2)+p|0;L[h+f>>2]=O(i*O(H[q>>2]))+L[h+m>>2];h=h|4;L[h+f>>2]=O(i*O(H[q+4>>2]))+L[h+m>>2];b=b+2|0;d=d+2|0;n=n+2|0;if((t|0)!=(n|0)){continue}break}}if(u){b=b<<2;L[b+f>>2]=O(i*O(H[(d<<2)+p>>2]))+L[b+m>>2];d=d+1|0}jk(H[H[c+64>>2]>>2]+r|0,f,e);r=e+r|0;s=s+1|0;if((s|0)!=(j|0)){continue}break}}bl(f)}ha=k+16|0;return o|0}function Ma(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0;c=H[b+88>>2];if(!(!c|H[c>>2]!=1)){d=H[c+8>>2];H[a+4>>2]=I[d|0]|I[d+1|0]<<8|(I[d+2|0]<<16|I[d+3|0]<<24);e=a+8|0;d=F[b+24|0];f=H[a+8>>2];g=H[a+12>>2]-f>>2;a:{if(d>>>0>g>>>0){Na(e,d-g|0);d=F[b+24|0];break a}if(d>>>0>=g>>>0){break a}H[a+12>>2]=f+(d<<2)}k=1;g=H[c+8>>2];b:{if((d|0)<=0){b=4;break b}h=d&3;e=H[e>>2];c:{if(d-1>>>0<3){b=4;d=0;break c}l=d&-4;d=0;b=4;while(1){f=d<<2;c=b+g|0;H[f+e>>2]=I[c|0]|I[c+1|0]<<8|(I[c+2|0]<<16|I[c+3|0]<<24);H[e+(f|4)>>2]=I[c+4|0]|I[c+5|0]<<8|(I[c+6|0]<<16|I[c+7|0]<<24);H[e+(f|8)>>2]=I[c+8|0]|I[c+9|0]<<8|(I[c+10|0]<<16|I[c+11|0]<<24);H[e+(f|12)>>2]=I[c+12|0]|I[c+13|0]<<8|(I[c+14|0]<<16|I[c+15|0]<<24);d=d+4|0;b=b+16|0;i=i+4|0;if((l|0)!=(i|0)){continue}break}}if(!h){break b}while(1){c=b+g|0;H[e+(d<<2)>>2]=I[c|0]|I[c+1|0]<<8|(I[c+2|0]<<16|I[c+3|0]<<24);d=d+1|0;b=b+4|0;j=j+1|0;if((j|0)!=(h|0)){continue}break}}c=a;a=b+g|0;H[c+20>>2]=I[a|0]|I[a+1|0]<<8|(I[a+2|0]<<16|I[a+3|0]<<24)}return k|0}function fl(a,b){var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0;a:{if(I[a+11|0]>>>7|0){d=H[a+4>>2]}else{d=I[a+11|0]}if(d>>>0>>0){i=ha-16|0;ha=i;h=b-d|0;if(h){e=I[a+11|0]>>>7|0?(H[a+8>>2]&2147483647)-1|0:10;if(I[a+11|0]>>>7|0){b=H[a+4>>2]}else{b=I[a+11|0]}j=b+h|0;if(e-b>>>0>>0){b:{g=ha-16|0;ha=g;c=j-e|0;if(c>>>0<=-17-e>>>0){if(I[a+11|0]>>>7|0){d=H[a>>2]}else{d=a}c:{if(e>>>0<2147483623){H[g+8>>2]=e<<1;H[g+12>>2]=c+e;c=ha-16|0;ha=c;ha=c+16|0;c=g+8|0;f=g+12|0;c=H[(K[f>>2]>2]?c:f)>>2];if(c>>>0>=11){f=c+16&-16;c=f-1|0;c=(c|0)==11?f:c}else{c=10}break c}c=-18}f=c+1|0;c=hl(f);if(b){dl(c,d,b)}if((e|0)!=10){bl(d)}H[a>>2]=c;H[a+8>>2]=f|-2147483648;ha=g+16|0;break b}Qe();X()}}d=b;if(I[a+11|0]>>>7|0){b=H[a>>2]}else{b=a}d=d+b|0;if(h){lk(d,0,h)}d:{if(I[a+11|0]>>>7|0){H[a+4>>2]=j;break d}F[a+11|0]=j}F[i+15|0]=0;F[b+j|0]=I[i+15|0]}ha=i+16|0;break a}if(I[a+11|0]>>>7|0){d=H[a>>2]}else{d=a}e=ha-16|0;ha=e;e:{if(I[a+11|0]>>>7|0){H[a+4>>2]=b;break e}F[a+11|0]=b}F[e+15|0]=0;F[b+d|0]=I[e+15|0];ha=e+16|0}}function Yk(a,b,c,d){var e=0,f=0,g=0,h=0;g=ha-32|0;ha=g;e=d&2147483647;h=e;f=e-1006698496|0;e=e-1140785152|0;a:{if((f|0)==(e|0)&0|e>>>0>f>>>0){e=d<<4|c>>>28;f=c<<4|b>>>28;c=e;b=b&268435455;if((b|0)==134217728&(a|0)!=0|b>>>0>134217728){e=c+1073741824|0;a=f+1|0;e=a?e:e+1|0;f=a;break a}e=c+1073741824|0;if(a|(b|0)!=134217728){break a}b=f&1;a=b+f|0;e=a>>>0>>0?e+1|0:e;f=a;break a}if(!(!c&(h|0)==2147418112?!(a|b):h>>>0<2147418112)){e=c;c=d<<4|e>>>28;f=e<<4|b>>>28;e=c&524287|2146959360;break a}f=0;e=2146435072;if(h>>>0>1140785151){break a}e=0;h=h>>>16|0;if(h>>>0<15249){break a}e=d&65535|65536;Nk(g+16|0,a,b,c,e,h-15233|0);Uk(g,a,b,c,e,15361-h|0);e=H[g+4>>2];h=e;a=H[g+8>>2];c=H[g+12>>2]<<4|a>>>28;f=a<<4|e>>>28;e=c;a=h&268435455;b=H[g>>2]|(H[g+16>>2]|H[g+24>>2]|(H[g+20>>2]|H[g+28>>2]))!=0;if((a|0)==134217728&(b|0)!=0|a>>>0>134217728){a=f+1|0;e=a?e:e+1|0;f=a;break a}if(b|(a|0)!=134217728){break a}a=f+(f&1)|0;e=a>>>0>>0?e+1|0:e;f=a}ha=g+32|0;x(0,f|0);x(1,d&-2147483648|e);return+z()}function tf(a,b,c,d,e,f,g){var h=0,i=0,j=0,k=0,l=0;a:{b:{if((e|0)<=(f|0)){if((a|0)==(b|0)){break b}f=g;e=a;while(1){H[f>>2]=H[e>>2];f=f+4|0;e=e+4|0;if((e|0)!=(b|0)){continue}break}if((f|0)==(g|0)){break b}d=H[d>>2];while(1){if((b|0)==(c|0)){kk(a,g,f-g|0);return}c:{e=H[d>>2];h=H[d+4>>2]-e>>3;i=H[b>>2];if(h>>>0<=i>>>0){break c}j=h;h=H[g>>2];if(j>>>0<=h>>>0){break c}d:{if(K[e+(i<<3)>>2]>2]){H[a>>2]=i;b=b+4|0;break d}H[a>>2]=h;g=g+4|0}a=a+4|0;if((f|0)!=(g|0)){continue}break b}break}Yc();X()}if((b|0)==(c|0)){break b}f=g;e=b;while(1){H[f>>2]=H[e>>2];f=f+4|0;e=e+4|0;if((e|0)!=(c|0)){continue}break}if((f|0)==(g|0)){break b}while(1){if((a|0)==(b|0)){while(1){c=c-4|0;f=f-4|0;H[c>>2]=H[f>>2];if((f|0)!=(g|0)){continue}break b}}i=H[d>>2];e=H[i>>2];h=H[i+4>>2]-e>>3;k=f-4|0;i=H[k>>2];if(h>>>0<=i>>>0){break a}j=h;l=b-4|0;h=H[l>>2];if(j>>>0<=h>>>0){break a}c=c-4|0;e=K[e+(i<<3)>>2]>2];H[c>>2]=e?h:i;b=e?l:b;f=e?f:k;if((g|0)!=(f|0)){continue}break}}return}Yc();X()}function Mh(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0;k=H[a+12>>2];c=H[a+68>>2];d=H[c+80>>2];F[b+84|0]=0;m=b+68|0;i=H[b+68>>2];e=H[b+72>>2]-i>>2;a:{if(e>>>0>>0){tb(m,d-e|0,11424);c=H[a+68>>2];d=H[c+80>>2];break a}if(d>>>0>=e>>>0){break a}H[b+72>>2]=i+(d<<2)}b=H[c+100>>2];e=H[c+96>>2];i=(b-e|0)/12|0;b:{if((b|0)==(e|0)){break b}n=1;k=H[k+28>>2];f=H[k>>2];if((f|0)==-1){break b}o=i>>>0>1?i:1;c=e;b=0;while(1){g=H[c>>2];if(g>>>0>=d>>>0){break b}j=H[H[a+72>>2]+12>>2];h=H[j+(f<<2)>>2];if(h>>>0>=d>>>0){break b}f=H[m>>2];H[f+(g<<2)>>2]=h;g=k+(l<<2)|0;h=H[g+4>>2];if((h|0)==-1){break b}l=H[c+4>>2];if(l>>>0>=d>>>0){break b}h=H[(h<<2)+j>>2];if(h>>>0>=d>>>0){break b}H[f+(l<<2)>>2]=h;g=H[g+8>>2];if((g|0)==-1){break b}c=H[c+8>>2];if(c>>>0>=d>>>0){break b}j=H[(g<<2)+j>>2];if(j>>>0>=d>>>0){break b}H[f+(c<<2)>>2]=j;b=b+1|0;n=i>>>0>b>>>0;if((b|0)==(o|0)){break b}c=e+N(b,12)|0;l=N(b,3);f=H[k+(l<<2)>>2];if((f|0)!=-1){continue}break}}return(n^-1)&1}function za(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0;h=H[d+80>>2];e=ha-48|0;ha=e;a=H[a+4>>2];k=a-31|0;a:{if(k>>>0<4294967267){break a}i=H[H[d>>2]>>2]+H[d+48>>2]|0;H[e+16>>2]=a;a=-1<>2]=a^-1;a=-2-a|0;H[e+24>>2]=a;H[e+32>>2]=(a|0)/2;L[e+28>>2]=O(2)/O(a|0);f=H[c>>2];if((f|0)!=H[c+4>>2]){a=0;d=0;while(1){g=H[(d<<2)+f>>2];h=e+36|0;j=H[H[b>>2]>>2];m=H[b+48>>2];f=H[b+44>>2];l=H[b+40>>2];if(!I[b+84|0]){g=H[H[b+68>>2]+(g<<2)>>2]}g=Sl(l,f,g,0)+m|0;jk(h,g+j|0,l);Aa(e+16|0,h,e+12|0,e+8|0);f=a<<2;H[f+i>>2]=H[e+12>>2];H[(f|4)+i>>2]=H[e+8>>2];a=a+2|0;d=d+1|0;f=H[c>>2];if(d>>>0>2]-f>>2>>>0){continue}break}break a}if(!h){break a}d=0;a=0;while(1){j=e+36|0;c=H[H[b>>2]>>2];g=H[b+40>>2];f=H[b+48>>2]+Sl(g,H[b+44>>2],I[b+84|0]?a:H[H[b+68>>2]+(a<<2)>>2],0)|0;jk(j,c+f|0,g);Aa(e+16|0,j,e+12|0,e+8|0);c=d<<2;H[c+i>>2]=H[e+12>>2];H[(c|4)+i>>2]=H[e+8>>2];d=d+2|0;a=a+1|0;if((h|0)!=(a|0)){continue}break}}ha=e+48|0;return k>>>0>4294967266|0}function ji(a){var b=0,c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0;d=ha-32|0;ha=d;a:{b=H[a+16>>2];c=H[a+20>>2];if(!!b&(c|0)>=0|(c|0)>0){c=0;e=H[H[a+12>>2]+4>>2]+7|0;c=e>>>0<7?1:c;f=e;e=c>>>3|0;c=c<<29|f>>>3;if(I[a+24|0]){f=H[a+4>>2];H[d>>2]=0;H[d+4>>2]=0;F[d+24|0]=0;H[d+16>>2]=0;H[d+20>>2]=0;H[d+8>>2]=0;H[d+12>>2]=0;pf(c,e,d);e=f-b|0;f=e-8|0;b=H[d+4>>2]-H[d>>2]|0;kk(f+b|0,e,c);jk(f,H[d>>2],b);f=8-b|0;e=f+H[a+16>>2]|0;b=H[a+20>>2];H[a+16>>2]=e;H[a+20>>2]=e>>>0>>0?b+1|0:b;b=H[d+12>>2];H[d+12>>2]=0;if(b){bl(b)}b=H[d>>2];if(b){H[d+4>>2]=b;bl(b)}b=H[a+16>>2]}f=c-b|0;g=H[a+4>>2];c=H[a>>2];e=g-c|0;b=f+e|0;b:{if(b>>>0>e>>>0){h=H[a+8>>2];if(h-g>>>0>=f>>>0){i=a,j=lk(g,0,f)+f|0,H[i+4>>2]=j;break b}if((b|0)<0){break a}g=h-c|0;h=g<<1;h=g>>>0<1073741823?b>>>0>>0?h:b:2147483647;g=hl(h);lk(g+e|0,0,f);if((e|0)>0){jk(g,c,e)}H[a+8>>2]=g+h;H[a+4>>2]=b+g;H[a>>2]=g;if(!c){break b}bl(c);break b}if(b>>>0>=e>>>0){break b}H[a+4>>2]=b+c}H[a+16>>2]=0;H[a+20>>2]=0}ha=d+32|0;return}Ka();X()}function wh(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0;j=H[a+12>>2];c=H[a+108>>2];d=H[c+80>>2];F[b+84|0]=0;m=b+68|0;h=H[b+68>>2];f=H[b+72>>2]-h>>2;a:{if(f>>>0>>0){tb(m,d-f|0,11424);c=H[a+108>>2];d=H[c+80>>2];break a}if(d>>>0>=f>>>0){break a}H[b+72>>2]=h+(d<<2)}b=H[c+100>>2];f=H[c+96>>2];h=(b-f|0)/12|0;b:{if((b|0)==(f|0)){j=0;break b}n=h>>>0>1?h:1;o=H[j>>2];c=f;b=0;j=1;while(1){e=(e<<2)+o|0;i=H[e>>2];if((i|0)==-1){break b}g=H[c>>2];if(g>>>0>=d>>>0){break b}l=H[H[a+112>>2]+12>>2];k=H[l+(i<<2)>>2];if(k>>>0>=d>>>0){break b}i=H[m>>2];H[i+(g<<2)>>2]=k;g=H[e+4>>2];if((g|0)==-1){break b}k=H[c+4>>2];if(k>>>0>=d>>>0){break b}g=H[(g<<2)+l>>2];if(g>>>0>=d>>>0){break b}H[i+(k<<2)>>2]=g;e=H[e+8>>2];if((e|0)==-1){break b}c=H[c+8>>2];if(c>>>0>=d>>>0){break b}e=H[(e<<2)+l>>2];if(e>>>0>=d>>>0){break b}H[i+(c<<2)>>2]=e;b=b+1|0;j=h>>>0>b>>>0;if((b|0)==(n|0)){break b}e=N(b,3);c=f+N(b,12)|0;if((b|0)!=1431655765){continue}break}}return(j^-1)&1}function Mg(a,b){var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0;c=ha+-64|0;ha=c;d=hl(80);i=H[a+8>>2];H[d+12>>2]=0;H[d+16>>2]=0;H[d>>2]=11692;H[d+4>>2]=0;H[d+20>>2]=0;H[d+24>>2]=0;H[d+28>>2]=0;H[d+32>>2]=0;H[d+36>>2]=0;H[d+40>>2]=0;H[d+44>>2]=0;H[d+48>>2]=0;H[d+52>>2]=0;H[d+76>>2]=0;H[d+72>>2]=b;H[d+68>>2]=i;H[d- -64>>2]=0;j=d+56|0;e=j;H[e>>2]=0;H[e+4>>2]=0;H[d+8>>2]=11856;e=H[a+12>>2];H[c+40>>2]=0;H[c+44>>2]=0;H[c+32>>2]=0;H[c+36>>2]=0;f=c+24|0;H[f>>2]=0;H[f+4>>2]=0;H[c+16>>2]=0;H[c+20>>2]=0;H[c+56>>2]=0;H[c+8>>2]=0;H[c+12>>2]=0;H[c+48>>2]=0;H[c+52>>2]=0;H[c>>2]=11856;H[c+4>>2]=e;g=H[e>>2];h=H[e+4>>2];F[c+63|0]=0;k=f;f=c+63|0;Jg(k,(h-g>>2>>>0)/3|0,f);g=H[c+4>>2];h=H[g+28>>2];g=H[g+24>>2];F[c+63|0]=0;Jg(c+36|0,h-g>>2,f);H[c+20>>2]=d;H[c+16>>2]=i;H[c+12>>2]=b;H[c+8>>2]=e;H[d+76>>2]=a+72;Kg(d+8|0,c);Lg(j,H[c+48>>2],H[c+52>>2]);H[c>>2]=11856;a=H[c+48>>2];if(a){H[c+52>>2]=a;bl(a)}H[c>>2]=11672;a=H[c+36>>2];if(a){bl(a)}a=H[c+24>>2];if(a){bl(a)}ha=c- -64|0;return d}function Gh(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0;j=H[a+12>>2];c=H[a+68>>2];d=H[c+80>>2];F[b+84|0]=0;m=b+68|0;h=H[b+68>>2];f=H[b+72>>2]-h>>2;a:{if(f>>>0>>0){tb(m,d-f|0,11424);c=H[a+68>>2];d=H[c+80>>2];break a}if(d>>>0>=f>>>0){break a}H[b+72>>2]=h+(d<<2)}b=H[c+100>>2];f=H[c+96>>2];h=(b-f|0)/12|0;b:{if((b|0)==(f|0)){j=0;break b}n=h>>>0>1?h:1;o=H[j>>2];c=f;b=0;j=1;while(1){e=(e<<2)+o|0;i=H[e>>2];if((i|0)==-1){break b}g=H[c>>2];if(g>>>0>=d>>>0){break b}l=H[H[a+72>>2]+12>>2];k=H[l+(i<<2)>>2];if(k>>>0>=d>>>0){break b}i=H[m>>2];H[i+(g<<2)>>2]=k;g=H[e+4>>2];if((g|0)==-1){break b}k=H[c+4>>2];if(k>>>0>=d>>>0){break b}g=H[(g<<2)+l>>2];if(g>>>0>=d>>>0){break b}H[i+(k<<2)>>2]=g;e=H[e+8>>2];if((e|0)==-1){break b}c=H[c+8>>2];if(c>>>0>=d>>>0){break b}e=H[(e<<2)+l>>2];if(e>>>0>=d>>>0){break b}H[i+(c<<2)>>2]=e;b=b+1|0;j=h>>>0>b>>>0;if((b|0)==(n|0)){break b}e=N(b,3);c=f+N(b,12)|0;if((b|0)!=1431655765){continue}break}}return(j^-1)&1}function zh(a,b,c){var d=0,e=0,f=0,g=0,h=0,i=0,j=0;d=(c>>>0)/3|0;i=H[(H[H[a+8>>2]+96>>2]+N(d,12)|0)+(c-N(d,3)<<2)>>2];e=H[H[a+12>>2]+4>>2];d=H[e+4>>2];a:{if((d|0)!=H[e+8>>2]){H[d>>2]=i;H[e+4>>2]=d+4;break a}b:{h=H[e>>2];g=d-h|0;j=g>>2;d=j+1|0;if(d>>>0<1073741824){f=g>>1;f=g>>>0<2147483644?d>>>0>>0?f:d:1073741823;if(f){if(f>>>0>=1073741824){break b}d=hl(f<<2)}else{d=0}j=d+(j<<2)|0;H[j>>2]=i;if((g|0)>0){jk(d,h,g)}H[e+8>>2]=d+(f<<2);H[e+4>>2]=j+4;H[e>>2]=d;if(h){bl(h)}break a}Ka();X()}_a();X()}e=H[a+4>>2];d=H[e+4>>2];c:{d:{e:{if((d|0)!=H[e+8>>2]){H[d>>2]=c;H[e+4>>2]=d+4;break e}h=H[e>>2];g=d-h|0;i=g>>2;d=i+1|0;if(d>>>0>=1073741824){break d}f=g>>1;f=g>>>0<2147483644?d>>>0>>0?f:d:1073741823;if(f){if(f>>>0>=1073741824){break c}d=hl(f<<2)}else{d=0}i=d+(i<<2)|0;H[i>>2]=c;if((g|0)>0){jk(d,h,g)}H[e+8>>2]=d+(f<<2);H[e+4>>2]=i+4;H[e>>2]=d;if(!h){break e}bl(h)}a=H[a+4>>2];H[H[a+12>>2]+(b<<2)>>2]=H[a+24>>2];H[a+24>>2]=H[a+24>>2]+1;return}Ka();X()}_a();X()}function Rb(a){var b=0,c=0,d=0,e=0;c=H[a+1176>>2];if(c){d=c;b=H[a+1180>>2];if((c|0)!=(b|0)){while(1){d=b-12|0;e=H[d>>2];if(e){H[b-8>>2]=e;bl(e)}b=d;if((c|0)!=(b|0)){continue}break}d=H[a+1176>>2]}H[a+1180>>2]=c;bl(d)}c=H[a+1164>>2];if(c){d=c;b=H[a+1168>>2];if((c|0)!=(b|0)){while(1){d=b-12|0;e=H[d>>2];if(e){H[b-8>>2]=e;bl(e)}b=d;if((c|0)!=(b|0)){continue}break}d=H[a+1164>>2]}H[a+1168>>2]=c;bl(d)}b=H[a+1152>>2];if(b){H[a+1156>>2]=b;bl(b)}b=H[a+1140>>2];if(b){H[a+1144>>2]=b;bl(b)}b=H[a+1128>>2];if(b){H[a+1132>>2]=b;bl(b)}xe(a+1108|0);xe(a+1088|0);xe(a+1068|0);ze(a+1036|0);a=a+12|0;ze(a+992|0);ze(a+960|0);ze(a+928|0);ze(a+896|0);ze(a+864|0);ze(a+832|0);ze(a+800|0);ze(a+768|0);ze(a+736|0);ze(a+704|0);ze(a+672|0);ze(a+640|0);ze(a+608|0);ze(a+576|0);ze(a+544|0);ze(a+512|0);ze(a+480|0);ze(a+448|0);ze(a+416|0);ze(a+384|0);ze(a+352|0);ze(a+320|0);ze(a+288|0);ze(a+256|0);ze(a+224|0);ze(a+192|0);ze(a+160|0);ze(a+128|0);ze(a+96|0);ze(a- -64|0);ze(a+32|0);ze(a)}function Rf(a,b,c,d,e){var f=0,g=0,h=0,i=0,j=0;a:{b:{c:{d:{e:{switch(d|0){case 2:d=H[c>>2];c=H[d>>2];d=H[d+4>>2]-c>>3;g=b-4|0;b=H[g>>2];if(d>>>0<=b>>>0){break d}f=d;d=H[a>>2];if(f>>>0<=d>>>0){break d}if(K[c+(b<<3)>>2]>2]){H[e>>2]=b;H[e+4>>2]=H[a>>2];return}H[e>>2]=d;H[e+4>>2]=H[g>>2];return;default:if((d|0)<=8){sf(a,b,e,c);return}f=d>>>1|0;h=f<<2;g=h+a|0;Qf(a,g,c,f,e,f);d=d-f|0;Qf(g,b,c,d,e+h|0,d);c=H[c>>2];d=g;while(1){if((b|0)==(d|0)){if((a|0)==(g|0)){break a}while(1){H[e>>2]=H[a>>2];e=e+4|0;a=a+4|0;if((g|0)!=(a|0)){continue}break}break a}f=H[c>>2];j=H[c+4>>2]-f>>3;h=H[d>>2];if(j>>>0<=h>>>0){break c}i=H[a>>2];if(j>>>0<=i>>>0){break c}f:{if(K[f+(h<<3)>>2]>2]){H[e>>2]=h;d=d+4|0;break f}H[e>>2]=i;a=a+4|0}e=e+4|0;if((a|0)!=(g|0)){continue}break};break b;case 0:break a;case 1:break e}}H[e>>2]=H[a>>2];break a}Yc();X()}Yc();X()}if((b|0)==(d|0)){break a}while(1){H[e>>2]=H[d>>2];e=e+4|0;d=d+4|0;if((d|0)!=(b|0)){continue}break}}} -function zf(a,b,c,d,e){var f=0,g=0,h=0,i=0,j=0;a:{b:{c:{d:{e:{switch(d|0){case 2:d=H[c>>2];c=H[d>>2];d=H[d+4>>2]-c>>3;g=b-4|0;b=H[g>>2];if(d>>>0<=b>>>0){break d}f=d;d=H[a>>2];if(f>>>0<=d>>>0){break d}if(K[c+(b<<3)>>2]>2]){H[e>>2]=b;H[e+4>>2]=H[a>>2];return}H[e>>2]=d;H[e+4>>2]=H[g>>2];return;default:if((d|0)<=8){sf(a,b,e,c);return}f=d>>>1|0;h=f<<2;g=h+a|0;yf(a,g,c,f,e,f);d=d-f|0;yf(g,b,c,d,e+h|0,d);c=H[c>>2];d=g;while(1){if((b|0)==(d|0)){if((a|0)==(g|0)){break a}while(1){H[e>>2]=H[a>>2];e=e+4|0;a=a+4|0;if((g|0)!=(a|0)){continue}break}break a}f=H[c>>2];j=H[c+4>>2]-f>>3;h=H[d>>2];if(j>>>0<=h>>>0){break c}i=H[a>>2];if(j>>>0<=i>>>0){break c}f:{if(K[f+(h<<3)>>2]>2]){H[e>>2]=h;d=d+4|0;break f}H[e>>2]=i;a=a+4|0}e=e+4|0;if((a|0)!=(g|0)){continue}break};break b;case 0:break a;case 1:break e}}H[e>>2]=H[a>>2];break a}Yc();X()}Yc();X()}if((b|0)==(d|0)){break a}while(1){H[e>>2]=H[d>>2];e=e+4|0;d=d+4|0;if((d|0)!=(b|0)){continue}break}}}function wf(a,b,c,d,e){var f=0,g=0,h=0,i=0,j=0;a:{b:{c:{d:{e:{switch(d|0){case 2:d=H[c>>2];c=H[d>>2];d=H[d+4>>2]-c>>3;g=b-4|0;b=H[g>>2];if(d>>>0<=b>>>0){break d}f=d;d=H[a>>2];if(f>>>0<=d>>>0){break d}if(K[c+(b<<3)>>2]>2]){H[e>>2]=b;H[e+4>>2]=H[a>>2];return}H[e>>2]=d;H[e+4>>2]=H[g>>2];return;default:if((d|0)<=8){sf(a,b,e,c);return}f=d>>>1|0;h=f<<2;g=h+a|0;vf(a,g,c,f,e,f);d=d-f|0;vf(g,b,c,d,e+h|0,d);c=H[c>>2];d=g;while(1){if((b|0)==(d|0)){if((a|0)==(g|0)){break a}while(1){H[e>>2]=H[a>>2];e=e+4|0;a=a+4|0;if((g|0)!=(a|0)){continue}break}break a}f=H[c>>2];j=H[c+4>>2]-f>>3;h=H[d>>2];if(j>>>0<=h>>>0){break c}i=H[a>>2];if(j>>>0<=i>>>0){break c}f:{if(K[f+(h<<3)>>2]>2]){H[e>>2]=h;d=d+4|0;break f}H[e>>2]=i;a=a+4|0}e=e+4|0;if((a|0)!=(g|0)){continue}break};break b;case 0:break a;case 1:break e}}H[e>>2]=H[a>>2];break a}Yc();X()}Yc();X()}if((b|0)==(d|0)){break a}while(1){H[e>>2]=H[d>>2];e=e+4|0;d=d+4|0;if((d|0)!=(b|0)){continue}break}}}function qg(a,b,c,d,e){var f=0,g=0,h=0,i=0,j=0;a:{b:{c:{d:{e:{switch(d|0){case 2:d=H[c>>2];c=H[d>>2];d=H[d+4>>2]-c>>3;g=b-4|0;b=H[g>>2];if(d>>>0<=b>>>0){break d}f=d;d=H[a>>2];if(f>>>0<=d>>>0){break d}if(K[c+(b<<3)>>2]>2]){H[e>>2]=b;H[e+4>>2]=H[a>>2];return}H[e>>2]=d;H[e+4>>2]=H[g>>2];return;default:if((d|0)<=8){sf(a,b,e,c);return}f=d>>>1|0;h=f<<2;g=h+a|0;pg(a,g,c,f,e,f);d=d-f|0;pg(g,b,c,d,e+h|0,d);c=H[c>>2];d=g;while(1){if((b|0)==(d|0)){if((a|0)==(g|0)){break a}while(1){H[e>>2]=H[a>>2];e=e+4|0;a=a+4|0;if((g|0)!=(a|0)){continue}break}break a}f=H[c>>2];j=H[c+4>>2]-f>>3;h=H[d>>2];if(j>>>0<=h>>>0){break c}i=H[a>>2];if(j>>>0<=i>>>0){break c}f:{if(K[f+(h<<3)>>2]>2]){H[e>>2]=h;d=d+4|0;break f}H[e>>2]=i;a=a+4|0}e=e+4|0;if((a|0)!=(g|0)){continue}break};break b;case 0:break a;case 1:break e}}H[e>>2]=H[a>>2];break a}Yc();X()}Yc();X()}if((b|0)==(d|0)){break a}while(1){H[e>>2]=H[d>>2];e=e+4|0;d=d+4|0;if((d|0)!=(b|0)){continue}break}}}function qf(a,b,c,d,e){var f=0,g=0,h=0,i=0,j=0;a:{b:{c:{d:{e:{switch(d|0){case 2:d=H[c>>2];c=H[d>>2];d=H[d+4>>2]-c>>3;g=b-4|0;b=H[g>>2];if(d>>>0<=b>>>0){break d}f=d;d=H[a>>2];if(f>>>0<=d>>>0){break d}if(K[c+(b<<3)>>2]>2]){H[e>>2]=b;H[e+4>>2]=H[a>>2];return}H[e>>2]=d;H[e+4>>2]=H[g>>2];return;default:if((d|0)<=8){sf(a,b,e,c);return}f=d>>>1|0;h=f<<2;g=h+a|0;nf(a,g,c,f,e,f);d=d-f|0;nf(g,b,c,d,e+h|0,d);c=H[c>>2];d=g;while(1){if((b|0)==(d|0)){if((a|0)==(g|0)){break a}while(1){H[e>>2]=H[a>>2];e=e+4|0;a=a+4|0;if((g|0)!=(a|0)){continue}break}break a}f=H[c>>2];j=H[c+4>>2]-f>>3;h=H[d>>2];if(j>>>0<=h>>>0){break c}i=H[a>>2];if(j>>>0<=i>>>0){break c}f:{if(K[f+(h<<3)>>2]>2]){H[e>>2]=h;d=d+4|0;break f}H[e>>2]=i;a=a+4|0}e=e+4|0;if((a|0)!=(g|0)){continue}break};break b;case 0:break a;case 1:break e}}H[e>>2]=H[a>>2];break a}Yc();X()}Yc();X()}if((b|0)==(d|0)){break a}while(1){H[e>>2]=H[d>>2];e=e+4|0;d=d+4|0;if((d|0)!=(b|0)){continue}break}}}function ng(a,b,c,d,e){var f=0,g=0,h=0,i=0,j=0;a:{b:{c:{d:{e:{switch(d|0){case 2:d=H[c>>2];c=H[d>>2];d=H[d+4>>2]-c>>3;g=b-4|0;b=H[g>>2];if(d>>>0<=b>>>0){break d}f=d;d=H[a>>2];if(f>>>0<=d>>>0){break d}if(K[c+(b<<3)>>2]>2]){H[e>>2]=b;H[e+4>>2]=H[a>>2];return}H[e>>2]=d;H[e+4>>2]=H[g>>2];return;default:if((d|0)<=8){sf(a,b,e,c);return}f=d>>>1|0;h=f<<2;g=h+a|0;mg(a,g,c,f,e,f);d=d-f|0;mg(g,b,c,d,e+h|0,d);c=H[c>>2];d=g;while(1){if((b|0)==(d|0)){if((a|0)==(g|0)){break a}while(1){H[e>>2]=H[a>>2];e=e+4|0;a=a+4|0;if((g|0)!=(a|0)){continue}break}break a}f=H[c>>2];j=H[c+4>>2]-f>>3;h=H[d>>2];if(j>>>0<=h>>>0){break c}i=H[a>>2];if(j>>>0<=i>>>0){break c}f:{if(K[f+(h<<3)>>2]>2]){H[e>>2]=h;d=d+4|0;break f}H[e>>2]=i;a=a+4|0}e=e+4|0;if((a|0)!=(g|0)){continue}break};break b;case 0:break a;case 1:break e}}H[e>>2]=H[a>>2];break a}Yc();X()}Yc();X()}if((b|0)==(d|0)){break a}while(1){H[e>>2]=H[d>>2];e=e+4|0;d=d+4|0;if((d|0)!=(b|0)){continue}break}}}function kg(a,b,c,d,e){var f=0,g=0,h=0,i=0,j=0;a:{b:{c:{d:{e:{switch(d|0){case 2:d=H[c>>2];c=H[d>>2];d=H[d+4>>2]-c>>3;g=b-4|0;b=H[g>>2];if(d>>>0<=b>>>0){break d}f=d;d=H[a>>2];if(f>>>0<=d>>>0){break d}if(K[c+(b<<3)>>2]>2]){H[e>>2]=b;H[e+4>>2]=H[a>>2];return}H[e>>2]=d;H[e+4>>2]=H[g>>2];return;default:if((d|0)<=8){sf(a,b,e,c);return}f=d>>>1|0;h=f<<2;g=h+a|0;jg(a,g,c,f,e,f);d=d-f|0;jg(g,b,c,d,e+h|0,d);c=H[c>>2];d=g;while(1){if((b|0)==(d|0)){if((a|0)==(g|0)){break a}while(1){H[e>>2]=H[a>>2];e=e+4|0;a=a+4|0;if((g|0)!=(a|0)){continue}break}break a}f=H[c>>2];j=H[c+4>>2]-f>>3;h=H[d>>2];if(j>>>0<=h>>>0){break c}i=H[a>>2];if(j>>>0<=i>>>0){break c}f:{if(K[f+(h<<3)>>2]>2]){H[e>>2]=h;d=d+4|0;break f}H[e>>2]=i;a=a+4|0}e=e+4|0;if((a|0)!=(g|0)){continue}break};break b;case 0:break a;case 1:break e}}H[e>>2]=H[a>>2];break a}Yc();X()}Yc();X()}if((b|0)==(d|0)){break a}while(1){H[e>>2]=H[d>>2];e=e+4|0;d=d+4|0;if((d|0)!=(b|0)){continue}break}}}function hg(a,b,c,d,e){var f=0,g=0,h=0,i=0,j=0;a:{b:{c:{d:{e:{switch(d|0){case 2:d=H[c>>2];c=H[d>>2];d=H[d+4>>2]-c>>3;g=b-4|0;b=H[g>>2];if(d>>>0<=b>>>0){break d}f=d;d=H[a>>2];if(f>>>0<=d>>>0){break d}if(K[c+(b<<3)>>2]>2]){H[e>>2]=b;H[e+4>>2]=H[a>>2];return}H[e>>2]=d;H[e+4>>2]=H[g>>2];return;default:if((d|0)<=8){sf(a,b,e,c);return}f=d>>>1|0;h=f<<2;g=h+a|0;gg(a,g,c,f,e,f);d=d-f|0;gg(g,b,c,d,e+h|0,d);c=H[c>>2];d=g;while(1){if((b|0)==(d|0)){if((a|0)==(g|0)){break a}while(1){H[e>>2]=H[a>>2];e=e+4|0;a=a+4|0;if((g|0)!=(a|0)){continue}break}break a}f=H[c>>2];j=H[c+4>>2]-f>>3;h=H[d>>2];if(j>>>0<=h>>>0){break c}i=H[a>>2];if(j>>>0<=i>>>0){break c}f:{if(K[f+(h<<3)>>2]>2]){H[e>>2]=h;d=d+4|0;break f}H[e>>2]=i;a=a+4|0}e=e+4|0;if((a|0)!=(g|0)){continue}break};break b;case 0:break a;case 1:break e}}H[e>>2]=H[a>>2];break a}Yc();X()}Yc();X()}if((b|0)==(d|0)){break a}while(1){H[e>>2]=H[d>>2];e=e+4|0;d=d+4|0;if((d|0)!=(b|0)){continue}break}}}function eg(a,b,c,d,e){var f=0,g=0,h=0,i=0,j=0;a:{b:{c:{d:{e:{switch(d|0){case 2:d=H[c>>2];c=H[d>>2];d=H[d+4>>2]-c>>3;g=b-4|0;b=H[g>>2];if(d>>>0<=b>>>0){break d}f=d;d=H[a>>2];if(f>>>0<=d>>>0){break d}if(K[c+(b<<3)>>2]>2]){H[e>>2]=b;H[e+4>>2]=H[a>>2];return}H[e>>2]=d;H[e+4>>2]=H[g>>2];return;default:if((d|0)<=8){sf(a,b,e,c);return}f=d>>>1|0;h=f<<2;g=h+a|0;dg(a,g,c,f,e,f);d=d-f|0;dg(g,b,c,d,e+h|0,d);c=H[c>>2];d=g;while(1){if((b|0)==(d|0)){if((a|0)==(g|0)){break a}while(1){H[e>>2]=H[a>>2];e=e+4|0;a=a+4|0;if((g|0)!=(a|0)){continue}break}break a}f=H[c>>2];j=H[c+4>>2]-f>>3;h=H[d>>2];if(j>>>0<=h>>>0){break c}i=H[a>>2];if(j>>>0<=i>>>0){break c}f:{if(K[f+(h<<3)>>2]>2]){H[e>>2]=h;d=d+4|0;break f}H[e>>2]=i;a=a+4|0}e=e+4|0;if((a|0)!=(g|0)){continue}break};break b;case 0:break a;case 1:break e}}H[e>>2]=H[a>>2];break a}Yc();X()}Yc();X()}if((b|0)==(d|0)){break a}while(1){H[e>>2]=H[d>>2];e=e+4|0;d=d+4|0;if((d|0)!=(b|0)){continue}break}}}function bg(a,b,c,d,e){var f=0,g=0,h=0,i=0,j=0;a:{b:{c:{d:{e:{switch(d|0){case 2:d=H[c>>2];c=H[d>>2];d=H[d+4>>2]-c>>3;g=b-4|0;b=H[g>>2];if(d>>>0<=b>>>0){break d}f=d;d=H[a>>2];if(f>>>0<=d>>>0){break d}if(K[c+(b<<3)>>2]>2]){H[e>>2]=b;H[e+4>>2]=H[a>>2];return}H[e>>2]=d;H[e+4>>2]=H[g>>2];return;default:if((d|0)<=8){sf(a,b,e,c);return}f=d>>>1|0;h=f<<2;g=h+a|0;ag(a,g,c,f,e,f);d=d-f|0;ag(g,b,c,d,e+h|0,d);c=H[c>>2];d=g;while(1){if((b|0)==(d|0)){if((a|0)==(g|0)){break a}while(1){H[e>>2]=H[a>>2];e=e+4|0;a=a+4|0;if((g|0)!=(a|0)){continue}break}break a}f=H[c>>2];j=H[c+4>>2]-f>>3;h=H[d>>2];if(j>>>0<=h>>>0){break c}i=H[a>>2];if(j>>>0<=i>>>0){break c}f:{if(K[f+(h<<3)>>2]>2]){H[e>>2]=h;d=d+4|0;break f}H[e>>2]=i;a=a+4|0}e=e+4|0;if((a|0)!=(g|0)){continue}break};break b;case 0:break a;case 1:break e}}H[e>>2]=H[a>>2];break a}Yc();X()}Yc();X()}if((b|0)==(d|0)){break a}while(1){H[e>>2]=H[d>>2];e=e+4|0;d=d+4|0;if((d|0)!=(b|0)){continue}break}}}function _f(a,b,c,d,e){var f=0,g=0,h=0,i=0,j=0;a:{b:{c:{d:{e:{switch(d|0){case 2:d=H[c>>2];c=H[d>>2];d=H[d+4>>2]-c>>3;g=b-4|0;b=H[g>>2];if(d>>>0<=b>>>0){break d}f=d;d=H[a>>2];if(f>>>0<=d>>>0){break d}if(K[c+(b<<3)>>2]>2]){H[e>>2]=b;H[e+4>>2]=H[a>>2];return}H[e>>2]=d;H[e+4>>2]=H[g>>2];return;default:if((d|0)<=8){sf(a,b,e,c);return}f=d>>>1|0;h=f<<2;g=h+a|0;Zf(a,g,c,f,e,f);d=d-f|0;Zf(g,b,c,d,e+h|0,d);c=H[c>>2];d=g;while(1){if((b|0)==(d|0)){if((a|0)==(g|0)){break a}while(1){H[e>>2]=H[a>>2];e=e+4|0;a=a+4|0;if((g|0)!=(a|0)){continue}break}break a}f=H[c>>2];j=H[c+4>>2]-f>>3;h=H[d>>2];if(j>>>0<=h>>>0){break c}i=H[a>>2];if(j>>>0<=i>>>0){break c}f:{if(K[f+(h<<3)>>2]>2]){H[e>>2]=h;d=d+4|0;break f}H[e>>2]=i;a=a+4|0}e=e+4|0;if((a|0)!=(g|0)){continue}break};break b;case 0:break a;case 1:break e}}H[e>>2]=H[a>>2];break a}Yc();X()}Yc();X()}if((b|0)==(d|0)){break a}while(1){H[e>>2]=H[d>>2];e=e+4|0;d=d+4|0;if((d|0)!=(b|0)){continue}break}}}function Xf(a,b,c,d,e){var f=0,g=0,h=0,i=0,j=0;a:{b:{c:{d:{e:{switch(d|0){case 2:d=H[c>>2];c=H[d>>2];d=H[d+4>>2]-c>>3;g=b-4|0;b=H[g>>2];if(d>>>0<=b>>>0){break d}f=d;d=H[a>>2];if(f>>>0<=d>>>0){break d}if(K[c+(b<<3)>>2]>2]){H[e>>2]=b;H[e+4>>2]=H[a>>2];return}H[e>>2]=d;H[e+4>>2]=H[g>>2];return;default:if((d|0)<=8){sf(a,b,e,c);return}f=d>>>1|0;h=f<<2;g=h+a|0;Wf(a,g,c,f,e,f);d=d-f|0;Wf(g,b,c,d,e+h|0,d);c=H[c>>2];d=g;while(1){if((b|0)==(d|0)){if((a|0)==(g|0)){break a}while(1){H[e>>2]=H[a>>2];e=e+4|0;a=a+4|0;if((g|0)!=(a|0)){continue}break}break a}f=H[c>>2];j=H[c+4>>2]-f>>3;h=H[d>>2];if(j>>>0<=h>>>0){break c}i=H[a>>2];if(j>>>0<=i>>>0){break c}f:{if(K[f+(h<<3)>>2]>2]){H[e>>2]=h;d=d+4|0;break f}H[e>>2]=i;a=a+4|0}e=e+4|0;if((a|0)!=(g|0)){continue}break};break b;case 0:break a;case 1:break e}}H[e>>2]=H[a>>2];break a}Yc();X()}Yc();X()}if((b|0)==(d|0)){break a}while(1){H[e>>2]=H[d>>2];e=e+4|0;d=d+4|0;if((d|0)!=(b|0)){continue}break}}}function Uf(a,b,c,d,e){var f=0,g=0,h=0,i=0,j=0;a:{b:{c:{d:{e:{switch(d|0){case 2:d=H[c>>2];c=H[d>>2];d=H[d+4>>2]-c>>3;g=b-4|0;b=H[g>>2];if(d>>>0<=b>>>0){break d}f=d;d=H[a>>2];if(f>>>0<=d>>>0){break d}if(K[c+(b<<3)>>2]>2]){H[e>>2]=b;H[e+4>>2]=H[a>>2];return}H[e>>2]=d;H[e+4>>2]=H[g>>2];return;default:if((d|0)<=8){sf(a,b,e,c);return}f=d>>>1|0;h=f<<2;g=h+a|0;Tf(a,g,c,f,e,f);d=d-f|0;Tf(g,b,c,d,e+h|0,d);c=H[c>>2];d=g;while(1){if((b|0)==(d|0)){if((a|0)==(g|0)){break a}while(1){H[e>>2]=H[a>>2];e=e+4|0;a=a+4|0;if((g|0)!=(a|0)){continue}break}break a}f=H[c>>2];j=H[c+4>>2]-f>>3;h=H[d>>2];if(j>>>0<=h>>>0){break c}i=H[a>>2];if(j>>>0<=i>>>0){break c}f:{if(K[f+(h<<3)>>2]>2]){H[e>>2]=h;d=d+4|0;break f}H[e>>2]=i;a=a+4|0}e=e+4|0;if((a|0)!=(g|0)){continue}break};break b;case 0:break a;case 1:break e}}H[e>>2]=H[a>>2];break a}Yc();X()}Yc();X()}if((b|0)==(d|0)){break a}while(1){H[e>>2]=H[d>>2];e=e+4|0;d=d+4|0;if((d|0)!=(b|0)){continue}break}}}function Of(a,b,c,d,e){var f=0,g=0,h=0,i=0,j=0;a:{b:{c:{d:{e:{switch(d|0){case 2:d=H[c>>2];c=H[d>>2];d=H[d+4>>2]-c>>3;g=b-4|0;b=H[g>>2];if(d>>>0<=b>>>0){break d}f=d;d=H[a>>2];if(f>>>0<=d>>>0){break d}if(K[c+(b<<3)>>2]>2]){H[e>>2]=b;H[e+4>>2]=H[a>>2];return}H[e>>2]=d;H[e+4>>2]=H[g>>2];return;default:if((d|0)<=8){sf(a,b,e,c);return}f=d>>>1|0;h=f<<2;g=h+a|0;Nf(a,g,c,f,e,f);d=d-f|0;Nf(g,b,c,d,e+h|0,d);c=H[c>>2];d=g;while(1){if((b|0)==(d|0)){if((a|0)==(g|0)){break a}while(1){H[e>>2]=H[a>>2];e=e+4|0;a=a+4|0;if((g|0)!=(a|0)){continue}break}break a}f=H[c>>2];j=H[c+4>>2]-f>>3;h=H[d>>2];if(j>>>0<=h>>>0){break c}i=H[a>>2];if(j>>>0<=i>>>0){break c}f:{if(K[f+(h<<3)>>2]>2]){H[e>>2]=h;d=d+4|0;break f}H[e>>2]=i;a=a+4|0}e=e+4|0;if((a|0)!=(g|0)){continue}break};break b;case 0:break a;case 1:break e}}H[e>>2]=H[a>>2];break a}Yc();X()}Yc();X()}if((b|0)==(d|0)){break a}while(1){H[e>>2]=H[d>>2];e=e+4|0;d=d+4|0;if((d|0)!=(b|0)){continue}break}}}function Lf(a,b,c,d,e){var f=0,g=0,h=0,i=0,j=0;a:{b:{c:{d:{e:{switch(d|0){case 2:d=H[c>>2];c=H[d>>2];d=H[d+4>>2]-c>>3;g=b-4|0;b=H[g>>2];if(d>>>0<=b>>>0){break d}f=d;d=H[a>>2];if(f>>>0<=d>>>0){break d}if(K[c+(b<<3)>>2]>2]){H[e>>2]=b;H[e+4>>2]=H[a>>2];return}H[e>>2]=d;H[e+4>>2]=H[g>>2];return;default:if((d|0)<=8){sf(a,b,e,c);return}f=d>>>1|0;h=f<<2;g=h+a|0;Kf(a,g,c,f,e,f);d=d-f|0;Kf(g,b,c,d,e+h|0,d);c=H[c>>2];d=g;while(1){if((b|0)==(d|0)){if((a|0)==(g|0)){break a}while(1){H[e>>2]=H[a>>2];e=e+4|0;a=a+4|0;if((g|0)!=(a|0)){continue}break}break a}f=H[c>>2];j=H[c+4>>2]-f>>3;h=H[d>>2];if(j>>>0<=h>>>0){break c}i=H[a>>2];if(j>>>0<=i>>>0){break c}f:{if(K[f+(h<<3)>>2]>2]){H[e>>2]=h;d=d+4|0;break f}H[e>>2]=i;a=a+4|0}e=e+4|0;if((a|0)!=(g|0)){continue}break};break b;case 0:break a;case 1:break e}}H[e>>2]=H[a>>2];break a}Yc();X()}Yc();X()}if((b|0)==(d|0)){break a}while(1){H[e>>2]=H[d>>2];e=e+4|0;d=d+4|0;if((d|0)!=(b|0)){continue}break}}}function If(a,b,c,d,e){var f=0,g=0,h=0,i=0,j=0;a:{b:{c:{d:{e:{switch(d|0){case 2:d=H[c>>2];c=H[d>>2];d=H[d+4>>2]-c>>3;g=b-4|0;b=H[g>>2];if(d>>>0<=b>>>0){break d}f=d;d=H[a>>2];if(f>>>0<=d>>>0){break d}if(K[c+(b<<3)>>2]>2]){H[e>>2]=b;H[e+4>>2]=H[a>>2];return}H[e>>2]=d;H[e+4>>2]=H[g>>2];return;default:if((d|0)<=8){sf(a,b,e,c);return}f=d>>>1|0;h=f<<2;g=h+a|0;Hf(a,g,c,f,e,f);d=d-f|0;Hf(g,b,c,d,e+h|0,d);c=H[c>>2];d=g;while(1){if((b|0)==(d|0)){if((a|0)==(g|0)){break a}while(1){H[e>>2]=H[a>>2];e=e+4|0;a=a+4|0;if((g|0)!=(a|0)){continue}break}break a}f=H[c>>2];j=H[c+4>>2]-f>>3;h=H[d>>2];if(j>>>0<=h>>>0){break c}i=H[a>>2];if(j>>>0<=i>>>0){break c}f:{if(K[f+(h<<3)>>2]>2]){H[e>>2]=h;d=d+4|0;break f}H[e>>2]=i;a=a+4|0}e=e+4|0;if((a|0)!=(g|0)){continue}break};break b;case 0:break a;case 1:break e}}H[e>>2]=H[a>>2];break a}Yc();X()}Yc();X()}if((b|0)==(d|0)){break a}while(1){H[e>>2]=H[d>>2];e=e+4|0;d=d+4|0;if((d|0)!=(b|0)){continue}break}}}function Ff(a,b,c,d,e){var f=0,g=0,h=0,i=0,j=0;a:{b:{c:{d:{e:{switch(d|0){case 2:d=H[c>>2];c=H[d>>2];d=H[d+4>>2]-c>>3;g=b-4|0;b=H[g>>2];if(d>>>0<=b>>>0){break d}f=d;d=H[a>>2];if(f>>>0<=d>>>0){break d}if(K[c+(b<<3)>>2]>2]){H[e>>2]=b;H[e+4>>2]=H[a>>2];return}H[e>>2]=d;H[e+4>>2]=H[g>>2];return;default:if((d|0)<=8){sf(a,b,e,c);return}f=d>>>1|0;h=f<<2;g=h+a|0;Ef(a,g,c,f,e,f);d=d-f|0;Ef(g,b,c,d,e+h|0,d);c=H[c>>2];d=g;while(1){if((b|0)==(d|0)){if((a|0)==(g|0)){break a}while(1){H[e>>2]=H[a>>2];e=e+4|0;a=a+4|0;if((g|0)!=(a|0)){continue}break}break a}f=H[c>>2];j=H[c+4>>2]-f>>3;h=H[d>>2];if(j>>>0<=h>>>0){break c}i=H[a>>2];if(j>>>0<=i>>>0){break c}f:{if(K[f+(h<<3)>>2]>2]){H[e>>2]=h;d=d+4|0;break f}H[e>>2]=i;a=a+4|0}e=e+4|0;if((a|0)!=(g|0)){continue}break};break b;case 0:break a;case 1:break e}}H[e>>2]=H[a>>2];break a}Yc();X()}Yc();X()}if((b|0)==(d|0)){break a}while(1){H[e>>2]=H[d>>2];e=e+4|0;d=d+4|0;if((d|0)!=(b|0)){continue}break}}}function Cf(a,b,c,d,e){var f=0,g=0,h=0,i=0,j=0;a:{b:{c:{d:{e:{switch(d|0){case 2:d=H[c>>2];c=H[d>>2];d=H[d+4>>2]-c>>3;g=b-4|0;b=H[g>>2];if(d>>>0<=b>>>0){break d}f=d;d=H[a>>2];if(f>>>0<=d>>>0){break d}if(K[c+(b<<3)>>2]>2]){H[e>>2]=b;H[e+4>>2]=H[a>>2];return}H[e>>2]=d;H[e+4>>2]=H[g>>2];return;default:if((d|0)<=8){sf(a,b,e,c);return}f=d>>>1|0;h=f<<2;g=h+a|0;Bf(a,g,c,f,e,f);d=d-f|0;Bf(g,b,c,d,e+h|0,d);c=H[c>>2];d=g;while(1){if((b|0)==(d|0)){if((a|0)==(g|0)){break a}while(1){H[e>>2]=H[a>>2];e=e+4|0;a=a+4|0;if((g|0)!=(a|0)){continue}break}break a}f=H[c>>2];j=H[c+4>>2]-f>>3;h=H[d>>2];if(j>>>0<=h>>>0){break c}i=H[a>>2];if(j>>>0<=i>>>0){break c}f:{if(K[f+(h<<3)>>2]>2]){H[e>>2]=h;d=d+4|0;break f}H[e>>2]=i;a=a+4|0}e=e+4|0;if((a|0)!=(g|0)){continue}break};break b;case 0:break a;case 1:break e}}H[e>>2]=H[a>>2];break a}Yc();X()}Yc();X()}if((b|0)==(d|0)){break a}while(1){H[e>>2]=H[d>>2];e=e+4|0;d=d+4|0;if((d|0)!=(b|0)){continue}break}}}function ai(a){a=a|0;var b=0,c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0;b=H[a+4>>2];b=H[b+12>>2]-H[b+8>>2]|0;a:{if((b|0)>0){while(1){if(la[H[H[a>>2]+36>>2]](a,c)|0){b=H[a+4>>2];b=H[b+12>>2]-H[b+8>>2]>>2;c=c+1|0;if((b|0)>(c|0)){continue}break a}break}return 0}b=b>>2}c=a+20|0;d=H[a+20>>2];e=H[a+24>>2]-d>>2;b:{if(e>>>0>>0){Na(c,b-e|0);break b}if(b>>>0>=e>>>0){break b}H[a+24>>2]=d+(b<<2)}f=H[a+8>>2];a=H[a+12>>2];if((f|0)==(a|0)){return 1}a=a-f>>2;j=a>>>0>1?a:1;e=H[c>>2];c=0;while(1){a=H[(c<<2)+f>>2];d=H[a+8>>2];b=H[a+4>>2];c:{if((d|0)==(b|0)){break c}a=d-b>>2;d=a>>>0>1?a:1;i=d&3;g=0;a=0;if(d-1>>>0>=3){k=d&-4;h=0;while(1){d=a<<2;H[e+(H[d+b>>2]<<2)>>2]=c;H[e+(H[b+(d|4)>>2]<<2)>>2]=c;H[e+(H[b+(d|8)>>2]<<2)>>2]=c;H[e+(H[b+(d|12)>>2]<<2)>>2]=c;a=a+4|0;h=h+4|0;if((k|0)!=(h|0)){continue}break}}if(!i){break c}while(1){H[e+(H[b+(a<<2)>>2]<<2)>>2]=c;a=a+1|0;g=g+1|0;if((g|0)!=(i|0)){continue}break}}c=c+1|0;if((j|0)!=(c|0)){continue}break}return 1}function hc(a,b){var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0;a:{c=H[a+8>>2];b:{if((c|0)!=H[a+12>>2]){e=c;break b}d=H[a+4>>2];g=H[a>>2];if(d>>>0>g>>>0){f=c-d|0;g=((d-g>>2)+1|0)/-2<<2;e=g+d|0;if((c|0)!=(d|0)){kk(e,d,f);c=H[a+4>>2]}e=e+f|0;H[a+8>>2]=e;H[a+4>>2]=c+g;break b}f=(c|0)==(g|0)?1:c-g>>1;if(f>>>0>=1073741824){break a}e=f<<2;h=hl(e);k=h+e|0;f=(f&-4)+h|0;e=f;c:{if((c|0)==(d|0)){break c}c=c-d|0;l=c&-4;i=c-4|0;j=(i>>>2|0)+1&7;d:{if(!j){c=f;break d}e=0;c=f;while(1){H[c>>2]=H[d>>2];d=d+4|0;c=c+4|0;e=e+1|0;if((j|0)!=(e|0)){continue}break}}e=f+l|0;if(i>>>0<28){break c}while(1){H[c>>2]=H[d>>2];H[c+4>>2]=H[d+4>>2];H[c+8>>2]=H[d+8>>2];H[c+12>>2]=H[d+12>>2];H[c+16>>2]=H[d+16>>2];H[c+20>>2]=H[d+20>>2];H[c+24>>2]=H[d+24>>2];H[c+28>>2]=H[d+28>>2];d=d+32|0;c=c+32|0;if((e|0)!=(c|0)){continue}break}}H[a+12>>2]=k;H[a+8>>2]=e;H[a+4>>2]=f;H[a>>2]=h;if(!g){break b}bl(g);e=H[a+8>>2]}H[e>>2]=H[b>>2];H[a+8>>2]=H[a+8>>2]+4;return}_a();X()}function ic(a,b){var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0;a:{f=H[a+4>>2];b:{if((f|0)!=H[a>>2]){c=f;break b}g=H[a+8>>2];c=H[a+12>>2];if(g>>>0>>0){e=((c-g>>2)+1|0)/2<<2;c=e+g|0;if((f|0)!=(g|0)){d=g-f|0;c=c-d|0;kk(c,f,d);f=H[a+8>>2]}H[a+4>>2]=c;H[a+8>>2]=e+f;break b}d=(c|0)==(f|0)?1:c-f>>1;if(d>>>0>=1073741824){break a}c=d<<2;i=hl(c);k=i+c|0;c=(d+3&-4)+i|0;h=c;c:{if((f|0)==(g|0)){break c}g=g-f|0;l=g&-4;e=c;d=f;j=g-4|0;g=(j>>>2|0)+1&7;if(g){h=0;while(1){H[e>>2]=H[d>>2];d=d+4|0;e=e+4|0;h=h+1|0;if((g|0)!=(h|0)){continue}break}}h=c+l|0;if(j>>>0<28){break c}while(1){H[e>>2]=H[d>>2];H[e+4>>2]=H[d+4>>2];H[e+8>>2]=H[d+8>>2];H[e+12>>2]=H[d+12>>2];H[e+16>>2]=H[d+16>>2];H[e+20>>2]=H[d+20>>2];H[e+24>>2]=H[d+24>>2];H[e+28>>2]=H[d+28>>2];d=d+32|0;e=e+32|0;if((h|0)!=(e|0)){continue}break}}H[a+12>>2]=k;H[a+8>>2]=h;H[a+4>>2]=c;H[a>>2]=i;if(!f){break b}bl(f);c=H[a+4>>2]}H[c-4>>2]=H[b>>2];H[a+4>>2]=H[a+4>>2]-4;return}_a();X()}function xh(a){a=a|0;var b=0,c=0,d=0,e=0,f=0,g=0,h=0;g=ha-16|0;ha=g;b=H[a+4>>2];d=H[b>>2];a:{c=H[a+12>>2];c=H[c+28>>2]-H[c+24>>2]|0;e=c>>2;b:{if(e>>>0<=H[b+8>>2]-d>>2>>>0){break b}if((c|0)<0){break a}f=H[b+4>>2];c=hl(c);h=c+(e<<2)|0;e=f-d|0;f=e+c|0;if((e|0)>0){jk(c,d,e)}H[b+8>>2]=h;H[b+4>>2]=f;H[b>>2]=c;if(!d){break b}bl(d)}b=H[a+12>>2];d=H[b+28>>2];b=H[b+24>>2];H[g+12>>2]=0;b=d-b>>2;c=a+96|0;e=H[c>>2];d=H[a+100>>2]-e>>2;c:{if(b>>>0>d>>>0){tb(c,b-d|0,g+12|0);break c}if(b>>>0>=d>>>0){break c}H[a+100>>2]=e+(b<<2)}e=a+8|0;b=H[a+116>>2];d:{if(b){c=H[b>>2];if((c|0)==H[b+4>>2]){d=1;break d}b=0;while(1){d=yh(e,H[(b<<2)+c>>2]);if(!d){break d}f=H[a+116>>2];c=H[f>>2];b=b+1|0;if(b>>>0>2]-c>>2>>>0){continue}break}break d}d=1;a=H[a+12>>2];a=H[a+4>>2]-H[a>>2]|0;if(a>>>0<12){break d}a=(a>>2>>>0)/3|0;b=0;while(1){d=yh(e,N(b,3));if(!d){break d}b=b+1|0;if((a|0)!=(b|0)){continue}break}}ha=g+16|0;return d|0}Ka();X()}function Bj(a,b,c){var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0;f=c-b|0;e=H[a+8>>2];d=H[a>>2];if(f>>>0<=e-d>>>0){h=H[a+4>>2]-d|0;e=h+b|0;g=f>>>0>h>>>0?e:c;a:{if((g|0)==(b|0)){break a}k=(b^-1)+g|0;i=g-b&7;if(i){while(1){F[d|0]=I[b|0];d=d+1|0;b=b+1|0;j=j+1|0;if((j|0)!=(i|0)){continue}break}}if(k>>>0<7){break a}while(1){F[d|0]=I[b|0];F[d+1|0]=I[b+1|0];F[d+2|0]=I[b+2|0];F[d+3|0]=I[b+3|0];F[d+4|0]=I[b+4|0];F[d+5|0]=I[b+5|0];F[d+6|0]=I[b+6|0];F[d+7|0]=I[b+7|0];d=d+8|0;b=b+8|0;if((g|0)!=(b|0)){continue}break}}if(f>>>0>h>>>0){b=H[a+4>>2];if((c|0)!=(g|0)){while(1){F[b|0]=I[e|0];b=b+1|0;e=e+1|0;if((e|0)!=(c|0)){continue}break}}H[a+4>>2]=b;return}H[a+4>>2]=d;return}if(d){H[a+4>>2]=d;bl(d);H[a+8>>2]=0;H[a>>2]=0;H[a+4>>2]=0;e=0}b:{if((f|0)<0){break b}d=e<<1;e=e>>>0<1073741823?d>>>0>f>>>0?d:f:2147483647;if((e|0)<0){break b}d=hl(e);H[a>>2]=d;H[a+4>>2]=d;H[a+8>>2]=d+e;if((b|0)!=(c|0)){d=jk(d,b,f)+f|0}H[a+4>>2]=d;return}Ka();X()}function Va(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0;f=H[a+12>>2];h=H[a+8>>2];d=f-h>>2;b=F[b+24|0];a:{if(d>>>0>>0){Na(a+8|0,b-d|0);h=H[a+8>>2];f=H[a+12>>2];break a}if(b>>>0>=d>>>0){break a}f=(b<<2)+h|0;H[a+12>>2]=f}b=0;i=H[c+20>>2];e=H[c+16>>2];d=f-h|0;f=d;g=e+d|0;j=H[c+12>>2];i=d>>>0>g>>>0?i+1|0:i;b:{if(g>>>0>K[c+8>>2]&(j|0)<=(i|0)|(i|0)>(j|0)){break b}jk(h,e+H[c>>2]|0,d);d=H[c+20>>2];e=f+H[c+16>>2]|0;d=e>>>0>>0?d+1|0:d;g=e;H[c+16>>2]=e;H[c+20>>2]=d;e=H[c+12>>2];f=g+4|0;d=f>>>0<4?d+1|0:d;if(f>>>0>K[c+8>>2]&(d|0)>=(e|0)|(d|0)>(e|0)){break b}d=g+H[c>>2]|0;H[a+20>>2]=I[d|0]|I[d+1|0]<<8|(I[d+2|0]<<16|I[d+3|0]<<24);d=H[c+20>>2];g=H[c+16>>2];e=g+4|0;f=e>>>0<4?d+1|0:d;j=e;H[c+16>>2]=e;H[c+20>>2]=f;e=H[c+12>>2];if((f|0)>=(e|0)&j>>>0>=K[c+8>>2]|(f|0)>(e|0)){break b}e=I[j+H[c>>2]|0];f=g+5|0;d=f>>>0<5?d+1|0:d;H[c+16>>2]=f;H[c+20>>2]=d;if(e-1>>>0>29){break b}H[a+4>>2]=e;b=1}return b|0}function uf(a,b){var c=0,d=0,e=0,f=0,g=0,h=0,i=0;e=ha-32|0;ha=e;f=H[b>>2]+H[a+40>>2]|0;d=H[a+32>>2];c=d-4194304|0;a:{if(c>>>0<=63){F[H[a+24>>2]+H[a+28>>2]|0]=c;c=H[a+28>>2]+1|0;break a}if(c>>>0<=16383){c=H[a+24>>2]+H[a+28>>2]|0;d=d-4177920|0;F[c|0]=d;F[c+1|0]=d>>>8;c=H[a+28>>2]+2|0;break a}if(c>>>0<=4194303){c=H[a+24>>2]+H[a+28>>2]|0;d=d+4194304|0;F[c+2|0]=d>>>16;F[c+1|0]=d>>>8;F[c|0]=d;c=H[a+28>>2]+3|0;break a}if(c>>>0<=1073741823){c=H[a+24>>2]+H[a+28>>2]|0;d=d-1077936128|0;F[c|0]=d;F[c+1|0]=d>>>8;F[c+2|0]=d>>>16;F[c+3|0]=d>>>24;c=H[a+28>>2]+4|0;break a}c=H[a+28>>2]}H[e>>2]=0;H[e+4>>2]=0;F[e+24|0]=0;H[e+16>>2]=0;H[e+20>>2]=0;H[e+8>>2]=0;H[e+12>>2]=0;h=c;d=c>>31;pf(c,d,e);g=H[e+4>>2]-H[e>>2]|0;kk(g+f|0,f,c);jk(f,H[e>>2],g);c=H[a+44>>2];f=b;i=H[a+40>>2];a=d;b=h+g|0;a=b>>>0>>0?a+1|0:a;d=b;b=i+d|0;hi(f,b);a=H[e+12>>2];H[e+12>>2]=0;if(a){bl(a)}a=H[e>>2];if(a){H[e+4>>2]=a;bl(a)}ha=e+32|0}function Aa(a,b,c,d){var e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0;j=+L[b>>2];k=+L[b+4>>2];l=+L[b+8>>2];g=P(j)+P(k)+P(l);a:{if(!(g>1e-6)){j=1;k=0;e=0;break a}g=1/g;k=g*k;j=g*j;e=g*l<0}h=H[a+16>>2];l=+(h|0);g=T(j*l+.5);b:{if(P(g)<2147483648){m=~~g;break b}m=-2147483648}f=m>>31;i=(f^m)-f|0;g=T(k*l+.5);c:{if(P(g)<2147483648){f=~~g;break c}f=-2147483648}b=f>>31;b=h-(i+((f^b)-b|0)|0)|0;i=(b|0)>0?b:0;e=e?0-i|0:i;f=f+(b>>31&((f|0)>0?b:0-b|0))|0;d:{if((m|0)>=0){b=e+h|0;a=H[a+8>>2];e=h+f|0;break d}b=f>>31;b=(b^f)-b|0;a=H[a+8>>2];b=(e|0)<0?b:a-b|0;e=(f|0)<0?i:a-i|0}e:{if(!(b|e)){b=a;break e}if(!((a|0)!=(b|0)|e)){b=a;break e}if(!((a|0)!=(e|0)|b)){b=a;break e}if(!((b|0)<=(h|0)|e)){b=(h<<1)-b|0;a=0;break e}if(!((a|0)!=(e|0)|(b|0)>=(h|0))){b=(h<<1)-b|0;break e}if(!((a|0)!=(b|0)|(e|0)>=(h|0))){b=a;a=(h<<1)-e|0;break e}if(b){a=e;break e}b=0;if((e|0)<=(h|0)){a=e;break e}a=(h<<1)-e|0}H[c>>2]=a;H[d>>2]=b}function mf(a,b){var c=0,d=0,e=0,f=0,g=0,h=0,i=0;e=ha-32|0;ha=e;f=H[b>>2]+H[a+40>>2]|0;c=H[a+32>>2];d=c-16384|0;a:{if(d>>>0<=63){F[H[a+24>>2]+H[a+28>>2]|0]=d;c=H[a+28>>2]+1|0;break a}if(d>>>0<=16383){d=H[a+24>>2]+H[a+28>>2]|0;F[d|0]=c;F[d+1|0]=c>>>8;c=H[a+28>>2]+2|0;break a}if(d>>>0<=4194303){d=H[a+24>>2]+H[a+28>>2]|0;c=c+8372224|0;F[d+2|0]=c>>>16;F[d+1|0]=c>>>8;F[d|0]=c;c=H[a+28>>2]+3|0;break a}if(d>>>0<=1073741823){d=H[a+24>>2]+H[a+28>>2]|0;c=c-1073758208|0;F[d|0]=c;F[d+1|0]=c>>>8;F[d+2|0]=c>>>16;F[d+3|0]=c>>>24;c=H[a+28>>2]+4|0;break a}c=H[a+28>>2]}H[e>>2]=0;H[e+4>>2]=0;F[e+24|0]=0;H[e+16>>2]=0;H[e+20>>2]=0;H[e+8>>2]=0;H[e+12>>2]=0;h=c;d=c>>31;pf(c,d,e);g=H[e+4>>2]-H[e>>2]|0;kk(g+f|0,f,c);jk(f,H[e>>2],g);c=H[a+44>>2];f=b;i=H[a+40>>2];a=d;b=h+g|0;a=b>>>0>>0?a+1|0:a;d=b;b=i+d|0;hi(f,b);a=H[e+12>>2];H[e+12>>2]=0;if(a){bl(a)}a=H[e>>2];if(a){H[e+4>>2]=a;bl(a)}ha=e+32|0}function Ze(a,b,c,d){var e=0,f=0,g=0,h=0,i=0,j=0,k=0;a:{b:{e=H[b+4>>2];c:{if(!e){f=b+4|0;c=f;break c}f=I[c+11|0];g=f<<24>>24<0;j=g?H[c>>2]:c;g=g?H[c+4>>2]:f;while(1){c=e;h=I[e+27|0];f=h<<24>>24<0;e=f?H[e+20>>2]:h;h=e>>>0>>0;d:{e:{f:{g:{k=h?e:g;h:{if(k){i=c+16|0;f=f?H[i>>2]:i;i=ok(j,f,k);if(!i){if(e>>>0>g>>>0){break h}break g}if((i|0)>=0){break g}break h}if(e>>>0<=g>>>0){break f}}f=c;e=H[c>>2];if(e){continue}break c}e=ok(f,j,k);if(e){break e}}if(h){break d}break b}if((e|0)>=0){break b}}e=H[c+4>>2];if(e){continue}break}f=c+4|0}e=hl(40);g=e+16|0;d=H[d>>2];i:{if(F[d+11|0]>=0){j=H[d+4>>2];H[g>>2]=H[d>>2];H[g+4>>2]=j;H[g+8>>2]=H[d+8>>2];break i}nl(g,H[d>>2],H[d+4>>2])}H[e+8>>2]=c;H[e>>2]=0;H[e+4>>2]=0;H[e+36>>2]=0;H[e+28>>2]=0;H[e+32>>2]=0;H[f>>2]=e;c=e;d=H[H[b>>2]>>2];if(d){H[b>>2]=d;c=H[f>>2]}We(H[b+4>>2],c);H[b+8>>2]=H[b+8>>2]+1;b=1;break a}e=c;b=0}F[a+4|0]=b;H[a>>2]=e}function Ba(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=O(0),f=O(0),g=O(0),h=O(0),i=O(0),j=0,k=O(0),l=O(0),m=O(0),n=O(0),o=0;a:{if(H[c+28>>2]!=9|I[c+24|0]!=3){break a}a=H[a+4>>2];if(a-31>>>0<4294967267){break a}o=1;j=H[c+80>>2];if(!j){break a}k=O(O(2)/O((1<>2]>>2]+H[c+48>>2]|0;a=H[H[b>>2]>>2]+H[b+48>>2]|0;b=0;while(1){g=O(0);l=O(0);m=O(0);e=O(O(O(H[a>>2])*k)+O(-1));f=O(O(O(H[a+4>>2])*k)+O(-1));i=O(O(O(1)-O(P(e)))-O(P(f)));h=O(S(O(-i),O(0)));n=O(-h);f=O(f+(f>>8;F[c+10|0]=d>>>16;F[c+11|0]=d>>>24;d=(B(l),v(2));F[c+4|0]=d;F[c+5|0]=d>>>8;F[c+6|0]=d>>>16;F[c+7|0]=d>>>24;d=(B(g),v(2));F[c|0]=d;F[c+1|0]=d>>>8;F[c+2|0]=d>>>16;F[c+3|0]=d>>>24;c=c+12|0;b=b+1|0;if((j|0)!=(b|0)){continue}break}}return o|0}function Qg(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0;c=ha-16|0;ha=c;b=H[H[a+184>>2]+(b<<2)>>2];F[c+15|0]=b;e=H[H[a+4>>2]+44>>2];d=H[e+20>>2];if(!H[e+16>>2]&(d|0)<=0|(d|0)<0){Da(e,H[e+4>>2],c+15|0,c+16|0);b=I[c+15|0]}a:{b:{c:{if(b<<24>>24<0){e=H[a+68>>2];break c}b=H[H[a+172>>2]+N(b&255,136)>>2];d=la[H[H[a>>2]+40>>2]](a)|0;f=H[a+172>>2]+N(F[c+15|0],136)|0;e=H[f+132>>2];d:{switch(H[H[H[d+56>>2]+84>>2]+(b<<2)>>2]){case 0:break c;case 1:break d;default:break b}}if(!I[f+28|0]){break b}}b=H[H[a+4>>2]+44>>2];F[c+14|0]=0;d=H[b+20>>2];if(!!H[b+16>>2]&(d|0)>=0|(d|0)>0){break a}Da(b,H[b+4>>2],c+14|0,c+15|0);break a}b=H[H[a+4>>2]+44>>2];F[c+13|0]=1;d=H[b+20>>2];if(!!H[b+16>>2]&(d|0)>=0|(d|0)>0){break a}Da(b,H[b+4>>2],c+13|0,c+14|0)}a=H[H[a+4>>2]+44>>2];F[c+12|0]=e;b=H[a+20>>2];if(!H[a+16>>2]&(b|0)<=0|(b|0)<0){Da(a,H[a+4>>2],c+12|0,c+13|0)}ha=c+16|0;return 1}function Yj(a,b,c,d){var e=0,f=0,g=0,h=0,i=0,j=0,k=0;a:{b:{e=H[b+4>>2];c:{if(!e){f=b+4|0;c=f;break c}f=I[c+11|0];g=f<<24>>24<0;j=g?H[c>>2]:c;g=g?H[c+4>>2]:f;while(1){c=e;e=I[e+27|0];f=e<<24>>24<0;e=f?H[c+20>>2]:e;k=e>>>0>>0;d:{e:{f:{g:{i=k?e:g;h:{if(i){h=c+16|0;f=f?H[h>>2]:h;h=ok(j,f,i);if(!h){if(e>>>0>g>>>0){break h}break g}if((h|0)>=0){break g}break h}if(e>>>0<=g>>>0){break f}}f=c;e=H[c>>2];if(e){continue}break c}e=ok(f,j,i);if(e){break e}}if(k){break d}break b}if((e|0)>=0){break b}}e=H[c+4>>2];if(e){continue}break}f=c+4|0}e=hl(40);H[e+24>>2]=H[d+8>>2];g=H[d+4>>2];H[e+16>>2]=H[d>>2];H[e+20>>2]=g;H[d>>2]=0;H[d+4>>2]=0;H[d+8>>2]=0;Vj(e+28|0,d+12|0);H[e+8>>2]=c;H[e>>2]=0;H[e+4>>2]=0;H[f>>2]=e;c=e;d=H[H[b>>2]>>2];if(d){H[b>>2]=d;c=H[f>>2]}We(H[b+4>>2],c);H[b+8>>2]=H[b+8>>2]+1;b=1;break a}e=c;b=0}F[a+4|0]=b;H[a>>2]=e}function nc(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0,i=0;a:{b:{if((la[H[H[b>>2]+20>>2]](b)|0)>0){while(1){d=_j(H[H[a+4>>2]+4>>2],la[H[H[b>>2]+24>>2]](b,i)|0);if((d|0)!=-1){c=H[a+20>>2];c:{if((c|0)!=H[a+24>>2]){H[c>>2]=d;H[a+20>>2]=c+4;break c}h=H[a+16>>2];e=c-h|0;g=e>>2;c=g+1|0;if(c>>>0>=1073741824){break b}f=e>>1;f=e>>>0<2147483644?c>>>0>>0?f:c:1073741823;if(f){if(f>>>0>=1073741824){break a}c=hl(f<<2)}else{c=0}g=c+(g<<2)|0;H[g>>2]=d;if((e|0)>0){jk(c,h,e)}H[a+24>>2]=c+(f<<2);H[a+20>>2]=g+4;H[a+16>>2]=c;if(!h){break c}bl(h)}c=H[a+4>>2];d:{if((d|0)<0){break d}e=H[c+4>>2];if(H[e+12>>2]-H[e+8>>2]>>2<=(d|0)){break d}c=H[H[c+8>>2]+(H[H[c+20>>2]+(d<<2)>>2]<<2)>>2];la[H[H[c>>2]+32>>2]](c,d)|0}i=i+1|0;if((la[H[H[b>>2]+20>>2]](b)|0)>(i|0)){continue}}break}a=(d|0)!=-1}else{a=1}return a|0}Ka();X()}_a();X()}function Kg(a,b){var c=0,d=0;c=H[b+8>>2];H[a+4>>2]=H[b+4>>2];H[a+8>>2]=c;H[a+20>>2]=H[b+20>>2];c=H[b+16>>2];H[a+12>>2]=H[b+12>>2];H[a+16>>2]=c;a:{b:{if((a|0)!=(b|0)){c=H[b+28>>2];if(c){d=H[a+24>>2];if(H[a+32>>2]<<5>>>0>>0){if(d){bl(d);H[a+32>>2]=0;H[a+24>>2]=0;H[a+28>>2]=0;c=H[b+28>>2]}if((c|0)<0){break b}c=(c-1>>>5|0)+1|0;d=hl(c<<2);H[a+32>>2]=c;H[a+28>>2]=0;H[a+24>>2]=d;c=H[b+28>>2]}kk(d,H[b+24>>2],(c-1>>>3&536870908)+4|0);c=H[b+28>>2]}else{c=0}H[a+28>>2]=c;c=H[b+40>>2];if(c){d=H[a+36>>2];if(H[a+44>>2]<<5>>>0>>0){if(d){bl(d);H[a+44>>2]=0;H[a+36>>2]=0;H[a+40>>2]=0;c=H[b+40>>2]}if((c|0)<0){break a}c=(c-1>>>5|0)+1|0;d=hl(c<<2);H[a+44>>2]=c;H[a+40>>2]=0;H[a+36>>2]=d;c=H[b+40>>2]}kk(d,H[b+36>>2],(c-1>>>3&536870908)+4|0);b=H[b+40>>2]}else{b=0}H[a+40>>2]=b}return}Ka();X()}Ka();X()}function Sj(a){var b=0,c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0;f=ha-16|0;ha=f;d=H[a+100>>2];e=H[a+96>>2];H[f+8>>2]=0;H[f>>2]=0;H[f+4>>2]=0;b=d-e|0;g=(b|0)/12|0;a:{b:{if((d|0)==(e|0)){break b}if(g>>>0>=357913942){break a}d=hl(b);H[f>>2]=d;H[f+8>>2]=d+N(g,12);a=0;c=d;d=b-12|0;b=(d-((d>>>0)%12|0)|0)+12|0;d=lk(c,0,b);H[f+4>>2]=b+d;b=g>>>0>1?g:1;j=b&1;if(g>>>0>=2){k=b&-2;g=0;while(1){c=N(a,12);b=c+e|0;h=H[b+4>>2];i=H[b>>2];c=d+c|0;H[c+8>>2]=H[b+8>>2];H[c>>2]=i;H[c+4>>2]=h;c=N(a|1,12);b=c+e|0;h=H[b+4>>2];i=H[b>>2];c=d+c|0;H[c+8>>2]=H[b+8>>2];H[c>>2]=i;H[c+4>>2]=h;a=a+2|0;g=g+2|0;if((k|0)!=(g|0)){continue}break}}if(!j){break b}c=e;e=N(a,12);a=c+e|0;g=H[a+4>>2];b=H[a>>2];e=d+e|0;H[e+8>>2]=H[a+8>>2];H[e>>2]=b;H[e+4>>2]=g}e=Ij(f);a=H[f>>2];if(a){H[f+4>>2]=a;bl(a)}ha=f+16|0;return e}Ka();X()}function qk(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0;f=ha-32|0;ha=f;d=H[a+28>>2];H[f+16>>2]=d;g=H[a+20>>2];H[f+28>>2]=c;H[f+24>>2]=b;b=g-d|0;H[f+20>>2]=b;g=b+c|0;i=2;a:{b:{b=f+16|0;d=ca(H[a+60>>2],b|0,2,f+12|0)|0;if(d){H[4837]=d;d=-1}else{d=0}c:{d:{if(d){d=b;break d}while(1){e=H[f+12>>2];if((e|0)==(g|0)){break c}if((e|0)<0){d=b;break b}h=H[b+4>>2];j=h>>>0>>0;d=(j<<3)+b|0;h=e-(j?h:0)|0;H[d>>2]=h+H[d>>2];b=(j?12:4)+b|0;H[b>>2]=H[b>>2]-h;g=g-e|0;b=d;i=i-j|0;e=ca(H[a+60>>2],b|0,i|0,f+12|0)|0;if(e){H[4837]=e;e=-1}else{e=0}if(!e){continue}break}}if((g|0)!=-1){break b}}b=H[a+44>>2];H[a+28>>2]=b;H[a+20>>2]=b;H[a+16>>2]=b+H[a+48>>2];a=c;break a}H[a+28>>2]=0;H[a+16>>2]=0;H[a+20>>2]=0;H[a>>2]=H[a>>2]|32;a=0;if((i|0)==2){break a}a=c-H[d+4>>2]|0}ha=f+32|0;return a|0}function _g(a){var b=0,c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0;d=H[a+112>>2];b=H[a+108>>2];c=(d-b|0)/12|0;zb(c,H[H[a+4>>2]+44>>2]);if((b|0)!=(d|0)){e=c>>>0>1?c:1;d=0;while(1){b=H[a+108>>2]+N(d,12)|0;zb(H[b+4>>2]-g|0,H[H[a+4>>2]+44>>2]);zb(H[b+4>>2]-H[b>>2]|0,H[H[a+4>>2]+44>>2]);g=H[b+4>>2];d=d+1|0;if((e|0)!=(d|0)){continue}break}d=0;ii(H[H[a+4>>2]+44>>2],c,0,0);e=H[H[a+4>>2]+44>>2];b=H[e+20>>2];if(!!H[e+16>>2]&(b|0)>=0|(b|0)>0){e=c>>>0>1?c:1;while(1){c=H[H[a+4>>2]+44>>2];b=H[c+20>>2];if(!!H[c+16>>2]&(b|0)>=0|(b|0)>0){g=I[(H[a+108>>2]+N(d,12)|0)+8|0];c=H[c+12>>2];f=H[c+4>>2];b=f>>>3|0;h=b+H[c>>2]|0;i=I[h|0];f=f&7;j=h,k=Wl(f)&i,F[j|0]=k;b=b+H[c>>2]|0;F[b|0]=I[b|0]|(g&1)<>2]=H[c+4>>2]+1}d=d+1|0;if((e|0)!=(d|0)){continue}break}}ji(H[H[a+4>>2]+44>>2])}return 1}function yb(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0;c=ha-16|0;ha=c;zb(H[a+8>>2]-H[a+4>>2]>>2,b);e=H[a+4>>2];if((e|0)!=H[a+8>>2]){h=c+13|0;i=c+14|0;j=c+15|0;k=c+16|0;while(1){e=H[H[H[a+32>>2]+8>>2]+(H[(g<<2)+e>>2]<<2)>>2];F[c+15|0]=H[e+56>>2];d=H[b+20>>2];a:{if(!!H[b+16>>2]&(d|0)>=0|(d|0)>0){break a}Da(b,H[b+4>>2],c+15|0,k);d=H[b+20>>2];f=H[b+16>>2];F[c+14|0]=H[e+28>>2];if(!!f&(d|0)>=0|(d|0)>0){break a}Da(b,H[b+4>>2],c+14|0,j);d=H[b+20>>2];f=H[b+16>>2];F[c+13|0]=I[e+24|0];if(!!f&(d|0)>=0|(d|0)>0){break a}Da(b,H[b+4>>2],c+13|0,i);d=H[b+20>>2];f=H[b+16>>2];F[c+12|0]=I[e+32|0];if(!!f&(d|0)>=0|(d|0)>0){break a}Da(b,H[b+4>>2],c+12|0,h)}zb(H[e+60>>2],b);g=g+1|0;e=H[a+4>>2];if(g>>>0>2]-e>>2>>>0){continue}break}}ha=c+16|0;return 1}function ye(a,b){var c=0,d=0,e=0,f=0,g=0,h=0;f=ha-16|0;ha=f;a:{b:{c=H[a+4>>2];c:{if((c|0)!=H[a+8>>2]){H[c>>2]=H[a+12>>2];d=c+4|0;H[a+4>>2]=d;break c}h=H[a>>2];g=c-h|0;d=g>>2;c=d+1|0;if(c>>>0>=1073741824){break b}e=g>>1;e=g>>>0<2147483644?c>>>0>>0?e:c:1073741823;if(e){if(e>>>0>=1073741824){break a}c=hl(e<<2)}else{c=0}d=c+(d<<2)|0;H[d>>2]=H[a+12>>2];d=d+4|0;if((g|0)>0){jk(c,h,g)}H[a+8>>2]=(e<<2)+c;H[a+4>>2]=d;H[a>>2]=c;if(!h){break c}bl(h);d=H[a+4>>2]}H[f+12>>2]=d-H[a>>2];c=H[b+20>>2];d:{if(!!H[b+16>>2]&(c|0)>=0|(c|0)>0){break d}Da(b,H[b+4>>2],f+12|0,f+16|0);c=H[b+20>>2];if(!!H[b+16>>2]&(c|0)>=0|(c|0)>0){break d}c=b;d=H[b+4>>2];b=H[a>>2];Da(c,d,b,b+H[f+12>>2]|0)}H[a+12>>2]=0;H[a+16>>2]=0;H[a+4>>2]=H[a>>2];ha=f+16|0;return}Ka();X()}_a();X()}function Jd(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0;e=ha-16|0;ha=e;H[e+12>>2]=c;if(!(!Jc(a,b,c)|I[H[a+8>>2]+24|0]!=3)){f=H[b+48>>2];b=hl(32);H[e>>2]=b;H[e+4>>2]=17;H[e+8>>2]=-2147483616;F[b+17|0]=0;F[b+16|0]=I[1261];c=I[1257]|I[1258]<<8|(I[1259]<<16|I[1260]<<24);d=I[1253]|I[1254]<<8|(I[1255]<<16|I[1256]<<24);F[b+8|0]=d;F[b+9|0]=d>>>8;F[b+10|0]=d>>>16;F[b+11|0]=d>>>24;F[b+12|0]=c;F[b+13|0]=c>>>8;F[b+14|0]=c>>>16;F[b+15|0]=c>>>24;c=I[1249]|I[1250]<<8|(I[1251]<<16|I[1252]<<24);d=I[1245]|I[1246]<<8|(I[1247]<<16|I[1248]<<24);F[b|0]=d;F[b+1|0]=d>>>8;F[b+2|0]=d>>>16;F[b+3|0]=d>>>24;F[b+4|0]=c;F[b+5|0]=c>>>8;F[b+6|0]=c>>>16;F[b+7|0]=c>>>24;b=Hb(f,e+12|0,e,-1);if(F[e+11|0]<0){bl(H[e>>2])}if((b|0)>0){H[a+44>>2]=b}d=(b|0)>0}ha=e+16|0;return d|0}function kk(a,b,c){var d=0,e=0;a:{if((a|0)==(b|0)){break a}e=a+c|0;if(b-e>>>0<=0-(c<<1)>>>0){return jk(a,b,c)}d=(a^b)&3;b:{c:{if(a>>>0>>0){if(d){d=a;break b}if(!(a&3)){d=a;break c}d=a;while(1){if(!c){break a}F[d|0]=I[b|0];b=b+1|0;c=c-1|0;d=d+1|0;if(d&3){continue}break}break c}d:{if(d){break d}if(e&3){while(1){if(!c){break a}c=c-1|0;d=c+a|0;F[d|0]=I[b+c|0];if(d&3){continue}break}}if(c>>>0<=3){break d}while(1){c=c-4|0;H[c+a>>2]=H[b+c>>2];if(c>>>0>3){continue}break}}if(!c){break a}while(1){c=c-1|0;F[c+a|0]=I[b+c|0];if(c){continue}break}break a}if(c>>>0<=3){break b}while(1){H[d>>2]=H[b>>2];b=b+4|0;d=d+4|0;c=c-4|0;if(c>>>0>3){continue}break}}if(!c){break a}while(1){F[d|0]=I[b|0];d=d+1|0;b=b+1|0;c=c-1|0;if(c){continue}break}}return a}function Vg(a,b,c){var d=0,e=0,f=0,g=0;a:{b=N(b,3);if((b|0)==-1){break a}b:{e=H[a+12>>2];f=H[e+12>>2];d=b<<2;c:{if(H[f+d>>2]==-1){break c}a=H[a+152>>2];e=H[e>>2];if(H[a+(H[e+d>>2]<<2)>>2]!=-1){break b}d=b+1|0;b=(d>>>0)%3|0?d:b-2|0;if((b|0)==-1){break a}d=b<<2;if(H[d+f>>2]==-1){break c}if(H[a+(H[d+e>>2]<<2)>>2]!=-1){break b}d=b+1|0;b=(d>>>0)%3|0?d:b-2|0;if((b|0)==-1){break a}d=b<<2;if(H[d+f>>2]==-1){break c}if(H[a+(H[d+e>>2]<<2)>>2]!=-1){break b}g=1;a=b+1|0;b=(a>>>0)%3|0?a:b-2|0}H[c>>2]=b;return g}while(1){d:{a=b;e:{if((b>>>0)%3|0){b=a-1|0;break e}b=a+2|0;if((b|0)==-1){break d}}b=H[(b<<2)+f>>2];if((b|0)==-1){break d}b=b+((b>>>0)%3|0?-1:2)|0;if((b|0)!=-1){continue}}break}H[c>>2]=a+((a>>>0)%3|0?-1:2);return 0}H[c>>2]=-1;return 0}function Gk(a,b,c){a:{switch(b-9|0){case 0:b=H[c>>2];H[c>>2]=b+4;H[a>>2]=H[b>>2];return;case 6:b=H[c>>2];H[c>>2]=b+4;b=G[b>>1];H[a>>2]=b;H[a+4>>2]=b>>31;return;case 7:b=H[c>>2];H[c>>2]=b+4;H[a>>2]=J[b>>1];H[a+4>>2]=0;return;case 8:b=H[c>>2];H[c>>2]=b+4;b=F[b|0];H[a>>2]=b;H[a+4>>2]=b>>31;return;case 9:b=H[c>>2];H[c>>2]=b+4;H[a>>2]=I[b|0];H[a+4>>2]=0;return;case 16:b=H[c>>2]+7&-8;H[c>>2]=b+8;M[a>>3]=M[b>>3];return;case 17:la[373](a,c);default:return;case 1:case 4:case 14:b=H[c>>2];H[c>>2]=b+4;b=H[b>>2];H[a>>2]=b;H[a+4>>2]=b>>31;return;case 2:case 5:case 11:case 15:b=H[c>>2];H[c>>2]=b+4;H[a>>2]=H[b>>2];H[a+4>>2]=0;return;case 3:case 10:case 12:case 13:break a}}b=H[c>>2]+7&-8;H[c>>2]=b+8;c=H[b+4>>2];H[a>>2]=H[b>>2];H[a+4>>2]=c}function xk(a,b,c,d,e,f){var g=0;g=ha-80|0;ha=g;a:{if((f|0)>=16384){Vk(g+32|0,b,c,d,e,0,0,0,2147352576);d=H[g+40>>2];e=H[g+44>>2];b=H[g+32>>2];c=H[g+36>>2];if(f>>>0<32767){f=f-16383|0;break a}Vk(g+16|0,b,c,d,e,0,0,0,2147352576);f=((f|0)<49149?f:49149)-32766|0;d=H[g+24>>2];e=H[g+28>>2];b=H[g+16>>2];c=H[g+20>>2];break a}if((f|0)>-16383){break a}Vk(g- -64|0,b,c,d,e,0,0,0,7471104);d=H[g+72>>2];e=H[g+76>>2];b=H[g+64>>2];c=H[g+68>>2];if(f>>>0>4294934644){f=f+16269|0;break a}Vk(g+48|0,b,c,d,e,0,0,0,7471104);f=((f|0)>-48920?f:-48920)+32538|0;d=H[g+56>>2];e=H[g+60>>2];b=H[g+48>>2];c=H[g+52>>2]}Vk(g,b,c,d,e,0,0,0,f+16383<<16);b=H[g+12>>2];H[a+8>>2]=H[g+8>>2];H[a+12>>2]=b;b=H[g+4>>2];H[a>>2]=H[g>>2];H[a+4>>2]=b;ha=g+80|0}function ii(a,b,c,d){var e=0,f=0,g=0,h=0,i=0,j=0;a:{e=H[a+20>>2];b:{if(!b&(c|0)<=0|(c|0)<0|(!!H[a+16>>2]&(e|0)>=0|(e|0)>0)){break b}F[a+24|0]=d;b=b+7|0;c=b>>>0<7?c+1|0:c;e=b;b=c>>>3|0;c=(c&7)<<29|e>>>3;H[a+16>>2]=c;H[a+20>>2]=b;f=H[a+4>>2];e=H[a>>2];b=f-e|0;g=c;c=b+8|0;h=d?c:b;c=g+h|0;c:{if(b>>>0>>0){g=c-b|0;d=H[a+8>>2];if(g>>>0<=d-f>>>0){i=a,j=lk(f,0,g)+g|0,H[i+4>>2]=j;break c}if((c|0)<0){break a}d=d-e|0;f=d<<1;f=d>>>0<1073741823?c>>>0>>0?f:c:2147483647;d=hl(f);lk(d+b|0,0,g);if((b|0)>0){jk(d,e,b)}H[a+8>>2]=d+f;H[a+4>>2]=c+d;H[a>>2]=d;if(!e){break c}bl(e);break c}if(b>>>0<=c>>>0){break c}H[a+4>>2]=c+e}c=H[a>>2];b=hl(8);H[b+4>>2]=0;H[b>>2]=c+h;c=H[a+12>>2];H[a+12>>2]=b;if(!c){break b}bl(c)}return}Ka();X()}function Ge(a,b,c){var d=0,e=0,f=0,g=0,h=0;f=ha-16|0;ha=f;H[a+4>>2]=0;H[a+8>>2]=0;H[a>>2]=a+4;H[a+12>>2]=a+16;H[a+16>>2]=0;H[a+20>>2]=0;d=a+24|0;H[d+4>>2]=0;H[d+8>>2]=0;H[d>>2]=d+4;g=a;if((a|0)!=(b+4|0)){Ie(g,H[b+4>>2],b+8|0)}if((d|0)!=(b+28|0)){Ie(d,H[b+28>>2],b+32|0)}a=0;H[f+12>>2]=0;a:{e=H[c+8>>2];if((H[c+12>>2]-e|0)<=0){break a}d=b+20|0;b=H[d>>2];if(!b){break a}while(1){b:{if(!b){break b}e=H[H[(a<<2)+e>>2]+56>>2];a=d;while(1){h=(e|0)>H[b+16>>2];a=h?a:b;b=H[(h?b+4|0:b)>>2];if(b){continue}break}if((a|0)==(d|0)|(e|0)>2]){break b}b=Je(g,f+12|0);if((b|0)==(a+20|0)){break b}Ie(b,H[a+20>>2],a+24|0)}a=H[f+12>>2]+1|0;H[f+12>>2]=a;e=H[c+8>>2];if(H[c+12>>2]-e>>2<=(a|0)){break a}b=H[d>>2];continue}}ha=f+16|0}function vl(a,b,c){var d=0,e=0,f=0;d=ha+-64|0;ha=d;f=H[a>>2];e=H[f-4>>2];f=H[f-8>>2];H[d+32>>2]=0;H[d+36>>2]=0;H[d+40>>2]=0;H[d+44>>2]=0;H[d+48>>2]=0;H[d+52>>2]=0;F[d+55|0]=0;F[d+56|0]=0;F[d+57|0]=0;F[d+58|0]=0;F[d+59|0]=0;F[d+60|0]=0;F[d+61|0]=0;F[d+62|0]=0;H[d+24>>2]=0;H[d+28>>2]=0;H[d+20>>2]=0;H[d+16>>2]=b;H[d+12>>2]=a;H[d+8>>2]=c;a=a+f|0;b=0;a:{if(tl(e,c,0)){H[d+56>>2]=1;la[H[H[e>>2]+20>>2]](e,d+8|0,a,a,1,0);b=H[d+32>>2]==1?a:0;break a}la[H[H[e>>2]+24>>2]](e,d+8|0,a,1,0);b:{switch(H[d+44>>2]){case 0:b=H[d+48>>2]==1?H[d+36>>2]==1?H[d+40>>2]==1?H[d+28>>2]:0:0:0;break a;case 1:break b;default:break a}}if(H[d+32>>2]!=1){if(H[d+48>>2]|H[d+36>>2]!=1|H[d+40>>2]!=1){break a}}b=H[d+24>>2]}ha=d- -64|0;return b}function Ce(a,b){var c=0,d=0,e=0,f=0;c=H[a>>2];a:{if(b){b=H[c+12>>2];d=H[c+8>>2]+1|0;b=d?b:b+1|0;H[c+8>>2]=d;H[c+12>>2]=b;b=H[a+28>>2];H[a+24>>2]=H[a+24>>2]|1<>2];d=H[c>>2]+1|0;b=d?b:b+1|0;H[c>>2]=d;H[c+4>>2]=b;b=H[a+28>>2]}b=b+1|0;H[a+28>>2]=b;b:{c:{if((b|0)==32){b=H[a+16>>2];d:{if((b|0)!=H[a+20>>2]){H[b>>2]=H[a+24>>2];H[a+16>>2]=b+4;break d}d=H[a+12>>2];c=b-d|0;f=c>>2;b=f+1|0;if(b>>>0>=1073741824){break c}e=c>>1;e=c>>>0<2147483644?b>>>0>>0?e:b:1073741823;if(e){if(e>>>0>=1073741824){break b}b=hl(e<<2)}else{b=0}f=b+(f<<2)|0;H[f>>2]=H[a+24>>2];if((c|0)>0){jk(b,d,c)}H[a+20>>2]=b+(e<<2);H[a+16>>2]=f+4;H[a+12>>2]=b;if(!d){break d}bl(d)}H[a+24>>2]=0;H[a+28>>2]=0}return}Ka();X()}_a();X()}function lk(a,b,c){var d=0,e=0,f=0;a:{if(!c){break a}F[a|0]=b;e=a+c|0;F[e-1|0]=b;if(c>>>0<3){break a}F[a+2|0]=b;F[a+1|0]=b;F[e-3|0]=b;F[e-2|0]=b;if(c>>>0<7){break a}F[a+3|0]=b;F[e-4|0]=b;if(c>>>0<9){break a}e=0-a&3;f=e+a|0;d=N(b&255,16843009);H[f>>2]=d;b=c-e&-4;c=b+f|0;H[c-4>>2]=d;if(b>>>0<9){break a}H[f+8>>2]=d;H[f+4>>2]=d;H[c-8>>2]=d;H[c-12>>2]=d;if(b>>>0<25){break a}H[f+24>>2]=d;H[f+20>>2]=d;H[f+16>>2]=d;H[f+12>>2]=d;H[c-16>>2]=d;H[c-20>>2]=d;H[c-24>>2]=d;H[c-28>>2]=d;c=b;b=f&4|24;c=c-b|0;if(c>>>0<32){break a}d=Sl(d,0,1,1);e=ka;b=b+f|0;while(1){H[b+24>>2]=d;H[b+28>>2]=e;H[b+16>>2]=d;H[b+20>>2]=e;H[b+8>>2]=d;H[b+12>>2]=e;H[b>>2]=d;H[b+4>>2]=e;b=b+32|0;c=c-32|0;if(c>>>0>31){continue}break}}return a}function Jb(a,b,c,d,e){var f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0;a:{f=a+16|0;g=H[f>>2];b:{if(!g){break b}i=H[b>>2];b=f;while(1){h=(i|0)>H[g+16>>2];b=h?b:g;g=H[(h?g+4|0:g)>>2];if(g){continue}break}if((b|0)==(f|0)|(i|0)>2]){break b}g=H[b+24>>2];if(!g){break b}m=b+20|0;b=I[c+11|0];f=b<<24>>24<0;i=f?H[c>>2]:c;b=f?H[c+4>>2]:b;while(1){f=I[g+27|0];h=f<<24>>24<0;f=h?H[g+20>>2]:f;l=f>>>0>>0;c:{d:{e:{f:{g:{h:{k=l?f:b;if(k){j=g+16|0;h=h?H[j>>2]:j;j=ok(i,h,k);if(j){break h}if(b>>>0>=f>>>0){break g}break c}if(b>>>0>=f>>>0){break f}break c}if((j|0)<0){break c}}f=ok(h,i,k);if(f){break e}}if(l){break d}break a}if((f|0)<0){break d}break a}g=g+4|0}g=H[g>>2];if(g){continue}break}}Nb(a,c,d,e);return}Nb(m,c,d,e)}function Hb(a,b,c,d){var e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0;e=a+16|0;f=H[e>>2];a:{if(!f){break a}g=H[b>>2];b=e;while(1){h=(g|0)>H[f+16>>2];b=h?b:f;f=H[(h?f+4|0:f)>>2];if(f){continue}break}if((b|0)==(e|0)|(g|0)>2]){break a}f=H[b+24>>2];if(!f){break a}g=b+20|0;b=I[c+11|0];e=b<<24>>24<0;h=e?H[c>>2]:c;b=e?H[c+4>>2]:b;while(1){e=I[f+27|0];i=e<<24>>24<0;e=i?H[f+20>>2]:e;l=e>>>0>>0;b:{c:{d:{e:{f:{g:{k=l?e:b;if(k){j=f+16|0;i=i?H[j>>2]:j;j=ok(h,i,k);if(j){break g}if(b>>>0>=e>>>0){break f}break b}if(b>>>0>=e>>>0){break e}break b}if((j|0)<0){break b}}e=ok(i,h,k);if(e){break d}}if(l){break c}return mi(g,c,d)}if((e|0)<0){break c}return mi(g,c,d)}f=f+4|0}f=H[f>>2];if(f){continue}break}}return mi(a,c,d)}function Nh(a){a=a|0;var b=0,c=0,d=0,e=0,f=0,g=0;b=H[a+4>>2];d=H[b>>2];a:{c=H[a+12>>2];c=H[c+56>>2]-H[c+52>>2]|0;e=c>>2;b:{if(e>>>0<=H[b+8>>2]-d>>2>>>0){break b}if((c|0)<0){break a}f=H[b+4>>2];c=hl(c);g=c+(e<<2)|0;e=f-d|0;f=e+c|0;if((e|0)>0){jk(c,d,e)}H[b+8>>2]=g;H[b+4>>2]=f;H[b>>2]=c;if(!d){break b}bl(d)}e=a+8|0;b=H[a+76>>2];c:{if(b){d=H[b>>2];if((d|0)==H[b+4>>2]){return 1}b=0;while(1){c=Oh(e,H[(b<<2)+d>>2]);if(!c){break c}f=H[a+76>>2];d=H[f>>2];b=b+1|0;if(b>>>0>2]-d>>2>>>0){continue}break}break c}c=1;a=H[H[a+12>>2]+64>>2];a=H[a+4>>2]-H[a>>2]|0;if(a>>>0<12){break c}a=(a>>2>>>0)/3|0;b=0;while(1){c=Oh(e,N(b,3));if(!c){break c}b=b+1|0;if((a|0)!=(b|0)){continue}break}}return c|0}Ka();X()}function Kb(a,b,c){var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0;d=a+16|0;e=H[d>>2];a:{if(!e){break a}f=H[b>>2];b=d;while(1){g=(f|0)>H[e+16>>2];b=g?b:e;e=H[(g?e+4|0:e)>>2];if(e){continue}break}if((b|0)==(d|0)|(f|0)>2]){break a}e=H[b+24>>2];if(!e){break a}f=b+20|0;b=I[c+11|0];d=b<<24>>24<0;g=d?H[c>>2]:c;b=d?H[c+4>>2]:b;while(1){d=I[e+27|0];h=d<<24>>24<0;d=h?H[e+20>>2]:d;k=d>>>0>>0;b:{c:{d:{e:{f:{g:{j=k?d:b;if(j){i=e+16|0;h=h?H[i>>2]:i;i=ok(g,h,j);if(i){break g}if(b>>>0>=d>>>0){break f}break b}if(b>>>0>=d>>>0){break e}break b}if((i|0)<0){break b}}d=ok(h,g,j);if(d){break d}}if(k){break c}return ni(f,c)}if((d|0)<0){break c}return ni(f,c)}e=e+4|0}e=H[e>>2];if(e){continue}break}}return ni(a,c)}function Tj(a,b,c){var d=0,e=0,f=0,g=0;zb(H[c+8>>2],b);e=H[c>>2];g=c+4|0;if((e|0)!=(g|0)){while(1){if(!Uj(b,e+16|0)){return}d=H[e+32>>2]-H[e+28>>2]|0;zb(d,b);f=H[b+20>>2];if(!H[b+16>>2]&(f|0)<=0|(f|0)<0){f=H[e+28>>2];Da(b,H[b+4>>2],f,d+f|0)}f=H[e+4>>2];a:{if(f){while(1){d=f;f=H[d>>2];if(f){continue}break a}}while(1){d=H[e+8>>2];f=H[d>>2]!=(e|0);e=d;if(f){continue}break}}e=d;if((d|0)!=(g|0)){continue}break}}zb(H[c+20>>2],b);d=H[c+12>>2];c=c+16|0;if((d|0)==(c|0)){return}while(1){if(!Uj(b,d+16|0)){return}Tj(a,b,H[d+28>>2]);f=d;e=H[d+4>>2];b:{if(e){while(1){d=e;e=H[d>>2];if(e){continue}break b}}while(1){d=H[f+8>>2];e=H[d>>2]!=(f|0);f=d;if(e){continue}break}}if((c|0)!=(d|0)){continue}break}}function Hh(a){a=a|0;var b=0,c=0,d=0,e=0,f=0,g=0;b=H[a+4>>2];d=H[b>>2];a:{c=H[a+12>>2];c=H[c+28>>2]-H[c+24>>2]|0;e=c>>2;b:{if(e>>>0<=H[b+8>>2]-d>>2>>>0){break b}if((c|0)<0){break a}f=H[b+4>>2];c=hl(c);g=c+(e<<2)|0;e=f-d|0;f=e+c|0;if((e|0)>0){jk(c,d,e)}H[b+8>>2]=g;H[b+4>>2]=f;H[b>>2]=c;if(!d){break b}bl(d)}e=a+8|0;b=H[a+76>>2];c:{if(b){d=H[b>>2];if((d|0)==H[b+4>>2]){return 1}b=0;while(1){c=Ih(e,H[(b<<2)+d>>2]);if(!c){break c}f=H[a+76>>2];d=H[f>>2];b=b+1|0;if(b>>>0>2]-d>>2>>>0){continue}break}break c}c=1;a=H[a+12>>2];a=H[a+4>>2]-H[a>>2]|0;if(a>>>0<12){break c}a=(a>>2>>>0)/3|0;b=0;while(1){c=Ih(e,N(b,3));if(!c){break c}b=b+1|0;if((a|0)!=(b|0)){continue}break}}return c|0}Ka();X()}function wb(a,b){var c=0,d=0,e=0,f=0,g=0,h=0;h=ha-16|0;ha=h;a:{b:{c=H[a+8>>2];c:{if((c|0)!=H[a+12>>2]){H[c>>2]=b;H[a+8>>2]=c+4;break c}e=H[a+4>>2];d=c-e|0;g=d>>2;c=g+1|0;if(c>>>0>=1073741824){break b}f=d>>1;f=d>>>0<2147483644?c>>>0>>0?f:c:1073741823;if(f){if(f>>>0>=1073741824){break a}c=hl(f<<2)}else{c=0}g=c+(g<<2)|0;H[g>>2]=b;if((d|0)>0){jk(c,e,d)}H[a+12>>2]=c+(f<<2);H[a+8>>2]=g+4;H[a+4>>2]=c;if(!e){break c}bl(e)}c=H[a+16>>2];d=H[a+20>>2]-c>>2;d:{if((d|0)>(b|0)){break d}H[h+12>>2]=-1;e=b+1|0;if(e>>>0>d>>>0){tb(a+16|0,e-d|0,h+12|0);c=H[a+16>>2];break d}if(d>>>0<=e>>>0){break d}H[a+20>>2]=(e<<2)+c}H[(b<<2)+c>>2]=(H[a+8>>2]-H[a+4>>2]>>2)-1;ha=h+16|0;return}Ka();X()}_a();X()}function Oc(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0,g=0,h=0,i=0;f=H[b+4>>2]-H[b>>2]>>2;g=H[a+8>>2];i=F[g+24|0];d=i;h=ha+-64|0;ha=h;e=ab(h);d=N(d,H[3712]);bb(e,H[H[a+8>>2]+56>>2],0,i,5,d,d>>31);e=db(hl(96),e);fb(e,f);d=H[a+32>>2];H[a+32>>2]=e;if(d){Lb(d)}a:{if(!c){break a}d=H[a+32>>2];F[d+84|0]=0;e=H[d+68>>2];f=H[d+72>>2]-e>>2;if(f>>>0>>0){tb(d+68|0,c-f|0,2736);break a}if(c>>>0>=f>>>0){break a}H[d+72>>2]=e+(c<<2)}ha=h- -64|0;c=H[b>>2];d=H[b+4>>2];if((c|0)==(d|0)){return 1}a=H[a+32>>2];h=H[H[a>>2]>>2]+H[a+48>>2]|0;b=0;while(1){a=H[c>>2];if(!I[g+84|0]){a=H[H[g+68>>2]+(a<<2)>>2]}a=Mb(g,a,F[g+24|0],h+(b<<2)|0);if(a){b=b+i|0;c=c+4|0;if((d|0)!=(c|0)){continue}}break}return a|0}function _d(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0;d=ha-48|0;ha=d;H[d+40>>2]=H[a- -64>>2];c=H[b+20>>2];if(!H[b+16>>2]&(c|0)<=0|(c|0)<0){Da(b,H[b+4>>2],d+40|0,d+44|0)}c=d+8|0;H[c>>2]=0;H[c+4>>2]=0;H[c+24>>2]=0;H[c+28>>2]=0;H[c+16>>2]=0;H[c+20>>2]=0;H[c+8>>2]=0;H[c+12>>2]=0;Be(c);if(H[d+40>>2]>0){f=1;while(1){g=f;f=H[H[a+60>>2]+(e>>>3&536870908)>>2]>>>e|0;Ce(c,(g^f^-1)&1);f=f&1;e=e+1|0;if((e|0)>2]){continue}break}}De(c,b);H[d+44>>2]=H[a+12>>2];e=H[b+20>>2];a:{if(!!H[b+16>>2]&(e|0)>=0|(e|0)>0){break a}f=d+48|0;Da(b,H[b+4>>2],d+44|0,f);e=H[b+20>>2];g=H[b+16>>2];H[d+44>>2]=H[a+24>>2];if(!!g&(e|0)>=0|(e|0)>0){break a}Da(b,H[b+4>>2],d+44|0,f)}ze(c);ha=d+48|0;return 1}function id(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0;d=ha-48|0;ha=d;H[d+40>>2]=H[a+80>>2];c=H[b+20>>2];if(!H[b+16>>2]&(c|0)<=0|(c|0)<0){Da(b,H[b+4>>2],d+40|0,d+44|0)}c=d+8|0;H[c>>2]=0;H[c+4>>2]=0;H[c+24>>2]=0;H[c+28>>2]=0;H[c+16>>2]=0;H[c+20>>2]=0;H[c+8>>2]=0;H[c+12>>2]=0;Be(c);if(H[d+40>>2]>0){f=1;while(1){g=f;f=H[H[a+76>>2]+(e>>>3&536870908)>>2]>>>e|0;Ce(c,(g^f^-1)&1);f=f&1;e=e+1|0;if((e|0)>2]){continue}break}}De(c,b);H[d+44>>2]=H[a+12>>2];e=H[b+20>>2];a:{if(!!H[b+16>>2]&(e|0)>=0|(e|0)>0){break a}f=d+48|0;Da(b,H[b+4>>2],d+44|0,f);e=H[b+20>>2];g=H[b+16>>2];H[d+44>>2]=H[a+16>>2];if(!!g&(e|0)>=0|(e|0)>0){break a}Da(b,H[b+4>>2],d+44|0,f)}ze(c);ha=d+48|0;return 1}function Ng(a,b){var c=0,d=0,e=0,f=0,g=0;a:{b:{c:{d=H[a>>2];g=H[a+4>>2]-d>>2;e=g+1|0;if(e>>>0<1073741824){d=H[a+8>>2]-d|0;f=d>>1;d=d>>>0<2147483644?e>>>0>>0?f:e:1073741823;if(d){if(d>>>0>=1073741824){break c}c=hl(d<<2)}f=H[b>>2];H[b>>2]=0;e=(g<<2)+c|0;H[e>>2]=f;d=(d<<2)+c|0;g=e+4|0;b=H[a>>2];c=H[a+4>>2];if((b|0)==(c|0)){break b}while(1){c=c-4|0;f=H[c>>2];H[c>>2]=0;e=e-4|0;H[e>>2]=f;if((b|0)!=(c|0)){continue}break}H[a+8>>2]=d;c=H[a+4>>2];H[a+4>>2]=g;b=H[a>>2];H[a>>2]=e;if((b|0)==(c|0)){break a}while(1){c=c-4|0;a=H[c>>2];H[c>>2]=0;if(a){la[H[H[a>>2]+4>>2]](a)}if((b|0)!=(c|0)){continue}break}break a}Ka();X()}_a();X()}H[a+8>>2]=d;H[a+4>>2]=g;H[a>>2]=e}if(b){bl(b)}}function Jg(a,b,c){var d=0,e=0,f=0;f=ha-16|0;ha=f;H[a+4>>2]=0;a:{b:{if(!b){break b}d=H[a+8>>2];e=d<<5;c:{if(e>>>0>=b>>>0){H[a+4>>2]=b;break c}H[f+8>>2]=0;H[f>>2]=0;H[f+4>>2]=0;if((b|0)<0){break a}if(e>>>0<=1073741822){d=d<<6;e=b+31&-32;d=d>>>0>e>>>0?d:e}else{d=2147483647}Hc(f,d);d=H[a>>2];H[a>>2]=H[f>>2];H[f>>2]=d;e=H[a+4>>2];H[a+4>>2]=b;H[f+4>>2]=e;e=H[a+8>>2];H[a+8>>2]=H[f+8>>2];H[f+8>>2]=e;if(!d){break c}bl(d)}d=b>>>5|0;e=d<<2;a=H[a>>2];if(I[c|0]){a=lk(a,255,e);if((b&-32)==(b|0)){break b}a=a+(d<<2)|0;H[a>>2]=H[a>>2]|-1>>>32-(b&31);break b}a=lk(a,0,e);if((b&-32)==(b|0)){break b}a=a+(d<<2)|0;H[a>>2]=H[a>>2]&(-1>>>32-(b&31)^-1)}ha=f+16|0;return}Ka();X()}function Oa(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0;H[b>>2]=1;f=b+8|0;c=H[b+8>>2];d=H[b+12>>2]-c|0;if(d>>>0<=4294967291){gi(f,d+4|0);c=H[f>>2]}c=c+d|0;d=H[a+4>>2];F[c|0]=d;F[c+1|0]=d>>>8;F[c+2|0]=d>>>16;F[c+3|0]=d>>>24;c=H[a+8>>2];if((c|0)!=H[a+12>>2]){d=0;while(1){g=(d<<2)+c|0;c=H[b+8>>2];e=H[b+12>>2]-c|0;if(e>>>0<=4294967291){gi(f,e+4|0);c=H[f>>2]}c=c+e|0;e=H[g>>2];F[c|0]=e;F[c+1|0]=e>>>8;F[c+2|0]=e>>>16;F[c+3|0]=e>>>24;d=d+1|0;c=H[a+8>>2];if(d>>>0>2]-c>>2>>>0){continue}break}}c=H[b+12>>2];b=H[b+8>>2];c=c-b|0;if(c>>>0<=4294967291){gi(f,c+4|0);b=H[f>>2]}b=b+c|0;a=H[a+20>>2];F[b|0]=a;F[b+1|0]=a>>>8;F[b+2|0]=a>>>16;F[b+3|0]=a>>>24}function Oe(a,b,c){var d=0,e=0,f=0;d=ha-16|0;ha=d;H[d+12>>2]=b;b=hl(32);H[d>>2]=b;H[d+4>>2]=17;H[d+8>>2]=-2147483616;F[b+17|0]=0;F[b+16|0]=I[1261];e=I[1257]|I[1258]<<8|(I[1259]<<16|I[1260]<<24);f=I[1253]|I[1254]<<8|(I[1255]<<16|I[1256]<<24);F[b+8|0]=f;F[b+9|0]=f>>>8;F[b+10|0]=f>>>16;F[b+11|0]=f>>>24;F[b+12|0]=e;F[b+13|0]=e>>>8;F[b+14|0]=e>>>16;F[b+15|0]=e>>>24;e=I[1249]|I[1250]<<8|(I[1251]<<16|I[1252]<<24);f=I[1245]|I[1246]<<8|(I[1247]<<16|I[1248]<<24);F[b|0]=f;F[b+1|0]=f>>>8;F[b+2|0]=f>>>16;F[b+3|0]=f>>>24;F[b+4|0]=e;F[b+5|0]=e>>>8;F[b+6|0]=e>>>16;F[b+7|0]=e>>>24;ki(Je(a+4|0,d+12|0),d,c);if(F[d+11|0]<0){bl(H[d>>2])}ha=d+16|0}function cd(a,b,c){var d=0,e=0,f=0,g=0,h=0,i=0;f=c-b|0;g=f>>2;d=H[a+8>>2];e=H[a>>2];if(g>>>0<=d-e>>2>>>0){f=H[a+4>>2]-e|0;d=f+b|0;h=f>>2;f=h>>>0>>0?d:c;i=f-b|0;if((b|0)!=(f|0)){kk(e,b,i)}if(g>>>0>h>>>0){b=H[a+4>>2];if((c|0)!=(f|0)){while(1){H[b>>2]=H[d>>2];b=b+4|0;d=d+4|0;if((d|0)!=(c|0)){continue}break}}H[a+4>>2]=b;return}H[a+4>>2]=e+i;return}if(e){H[a+4>>2]=e;bl(e);H[a+8>>2]=0;H[a>>2]=0;H[a+4>>2]=0;d=0}a:{if((f|0)<0){break a}e=d>>1;d=d>>>0<2147483644?e>>>0>g>>>0?e:g:1073741823;if(d>>>0>=1073741824){break a}e=d<<2;d=hl(e);H[a>>2]=d;H[a+8>>2]=d+e;if((b|0)!=(c|0)){c=b;b=f&-4;d=jk(d,c,b)+b|0}H[a+4>>2]=d;return}Ka();X()}function sf(a,b,c,d){var e=0,f=0,g=0,h=0,i=0,j=0,k=0;a:{b:{if((a|0)==(b|0)){break b}H[c>>2]=H[a>>2];e=a+4|0;if((e|0)==(b|0)){break b}a=H[d>>2];g=H[a>>2];i=H[a+4>>2]-g>>3;a=c;while(1){d=H[e>>2];if(d>>>0>=i>>>0){break a}f=H[a>>2];if(f>>>0>=i>>>0){break a}j=a+4|0;c:{if(K[(d<<3)+g>>2]>2]){H[a+4>>2]=f;h=c;d:{if((a|0)==(c|0)){break d}while(1){k=H[e>>2];if(k>>>0>=i>>>0){break a}f=a-4|0;d=H[f>>2];if(d>>>0>=i>>>0){break a}h=a;if(K[(k<<3)+g>>2]>=K[(d<<3)+g>>2]){break d}H[a>>2]=d;a=f;if((c|0)!=(a|0)){continue}break}h=c}H[h>>2]=H[e>>2];break c}H[j>>2]=d}a=j;e=e+4|0;if((e|0)!=(b|0)){continue}break}}return}Yc();X()}function qe(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,l=0,m=0;f=ha-32|0;ha=f;d=d-e|0;if((d|0)>0){i=a+8|0;k=0-e<<2;while(1){j=d<<2;g=j+b|0;h=g+k|0;l=H[h>>2];h=H[h+4>>2];m=H[g+4>>2];H[f+16>>2]=H[g>>2];H[f+20>>2]=m;H[f+8>>2]=l;H[f+12>>2]=h;Rd(f+24|0,i,f+16|0,f+8|0);g=c+j|0;H[g>>2]=H[f+24>>2];H[g+4>>2]=H[f+28>>2];d=d-e|0;if((d|0)>0){continue}break}}d=(e&1073741823)!=(e|0)?-1:e<<2;d=lk(hl(d),0,d);e=H[d>>2];g=H[d+4>>2];i=H[b+4>>2];H[f+16>>2]=H[b>>2];H[f+20>>2]=i;H[f+8>>2]=e;H[f+12>>2]=g;Rd(f+24|0,a+8|0,f+16|0,f+8|0);H[c>>2]=H[f+24>>2];H[c+4>>2]=H[f+28>>2];bl(d);ha=f+32|0;return 1}function Lg(a,b,c){var d=0,e=0,f=0,g=0,h=0;f=c-b|0;g=f>>2;d=H[a+8>>2];e=H[a>>2];if(g>>>0<=d-e>>2>>>0){d=H[a+4>>2];f=d-e|0;h=f>>2;f=g>>>0>h>>>0?b+f|0:c;if((f|0)!=(b|0)){while(1){H[e>>2]=H[b>>2];e=e+4|0;b=b+4|0;if((f|0)!=(b|0)){continue}break}}if(g>>>0>h>>>0){b=c-f|0;if((b|0)>0){d=jk(d,f,b)+b|0}H[a+4>>2]=d;return}H[a+4>>2]=e;return}if(e){H[a+4>>2]=e;bl(e);H[a+8>>2]=0;H[a>>2]=0;H[a+4>>2]=0;d=0}a:{if((f|0)<0){break a}e=d>>1;d=d>>>0<2147483644?e>>>0>g>>>0?e:g:1073741823;if(d>>>0>=1073741824){break a}e=d<<2;d=hl(e);H[a>>2]=d;H[a+4>>2]=d;H[a+8>>2]=d+e;if((b|0)!=(c|0)){d=jk(d,b,f)+f|0}H[a+4>>2]=d;return}Ka();X()}function me(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0;g=ha-32|0;ha=g;H[a+48>>2]=f;i=1;a:{d=H[a+40>>2];d=H[d+4>>2]-H[d>>2]|0;b:{if((d|0)<=0){break b}l=a+44|0;m=a+8|0;f=d>>>2|0;while(1){d=H[a+40>>2];i=H[d>>2];h=H[d+4>>2]-i>>2;d=f-1|0;if(h>>>0<=d>>>0){break a}i=Dd(l,H[i+(d<<2)>>2],b,d);if(!i){break b}h=H[a+52>>2];n=H[a+56>>2];j=N(d,e)<<2;k=j+b|0;o=H[k+4>>2];H[g+16>>2]=H[k>>2];H[g+20>>2]=o;H[g+8>>2]=h;H[g+12>>2]=n;Rd(g+24|0,m,g+16|0,g+8|0);h=c+j|0;H[h>>2]=H[g+24>>2];H[h+4>>2]=H[g+28>>2];h=f>>>0>1;f=d;if(h){continue}break}}ha=g+32|0;return i|0}Yc();X()}function $d(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0;g=ha-32|0;ha=g;H[a+48>>2]=f;i=1;a:{d=H[a+40>>2];d=H[d+4>>2]-H[d>>2]|0;b:{if((d|0)<=0){break b}l=a+44|0;m=a+8|0;f=d>>>2|0;while(1){d=H[a+40>>2];i=H[d>>2];h=H[d+4>>2]-i>>2;d=f-1|0;if(h>>>0<=d>>>0){break a}i=kd(l,H[i+(d<<2)>>2],b,d);if(!i){break b}h=H[a+52>>2];n=H[a+56>>2];j=N(d,e)<<2;k=j+b|0;o=H[k+4>>2];H[g+16>>2]=H[k>>2];H[g+20>>2]=o;H[g+8>>2]=h;H[g+12>>2]=n;Rd(g+24|0,m,g+16|0,g+8|0);h=c+j|0;H[h>>2]=H[g+24>>2];H[h+4>>2]=H[g+28>>2];h=f>>>0>1;f=d;if(h){continue}break}}ha=g+32|0;return i|0}Yc();X()}function Kj(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0,g=0;fk(a,b,c);e=H[a+96>>2];a=H[a+100>>2];a:{if((e|0)==(a|0)){break a}d=(a-e|0)/12|0;f=d>>>0>1?d:1;g=f&1;a=H[b>>2];c=0;if(d>>>0>=2){f=f&-2;d=0;while(1){b=N(c,12)+e|0;H[b>>2]=H[a+(H[b>>2]<<2)>>2];H[b+4>>2]=H[a+(H[b+4>>2]<<2)>>2];H[b+8>>2]=H[a+(H[b+8>>2]<<2)>>2];b=N(c|1,12)+e|0;H[b>>2]=H[a+(H[b>>2]<<2)>>2];H[b+4>>2]=H[a+(H[b+4>>2]<<2)>>2];H[b+8>>2]=H[a+(H[b+8>>2]<<2)>>2];c=c+2|0;d=d+2|0;if((f|0)!=(d|0)){continue}break}}if(!g){break a}b=N(c,12)+e|0;H[b>>2]=H[a+(H[b>>2]<<2)>>2];H[b+4>>2]=H[a+(H[b+4>>2]<<2)>>2];H[b+8>>2]=H[a+(H[b+8>>2]<<2)>>2]}}function aj(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0;a=ha-16|0;ha=a;a:{if(!b){break a}H[a+8>>2]=0;H[a>>2]=0;H[a+4>>2]=0;h=b+96|0;g=H[b+96>>2];e=(H[b+100>>2]-g|0)/12|0;b:{if(e>>>0>>0){Gj(h,c-e|0,a);break b}if(c>>>0>>0){H[b+100>>2]=g+N(c,12)}if(!c){break a}}g=H[h>>2];e=0;while(1){i=N(e,12);f=i+d|0;j=H[f>>2];k=H[f+8>>2];l=H[f+4>>2];f=(H[b+100>>2]-g|0)/12|0;c:{if(f>>>0>e>>>0){e=e+1|0;break c}H[a+8>>2]=0;H[a>>2]=0;H[a+4>>2]=0;e=e+1|0;Gj(h,e-f|0,a);g=H[h>>2]}f=g+i|0;H[f+8>>2]=k;H[f+4>>2]=l;H[f>>2]=j;if((c|0)!=(e|0)){continue}break}}ha=a+16|0;return(b|0)!=0|0}function Se(a,b){var c=0,d=0,e=0,f=0;f=ha-16|0;ha=f;c=hl(16);H[f>>2]=c;H[f+4>>2]=15;H[f+8>>2]=-2147483632;F[c+15|0]=0;d=I[1587]|I[1588]<<8|(I[1589]<<16|I[1590]<<24);e=I[1583]|I[1584]<<8|(I[1585]<<16|I[1586]<<24);F[c+7|0]=e;F[c+8|0]=e>>>8;F[c+9|0]=e>>>16;F[c+10|0]=e>>>24;F[c+11|0]=d;F[c+12|0]=d>>>8;F[c+13|0]=d>>>16;F[c+14|0]=d>>>24;d=I[1580]|I[1581]<<8|(I[1582]<<16|I[1583]<<24);e=I[1576]|I[1577]<<8|(I[1578]<<16|I[1579]<<24);F[c|0]=e;F[c+1|0]=e>>>8;F[c+2|0]=e>>>16;F[c+3|0]=e>>>24;F[c+4|0]=d;F[c+5|0]=d>>>8;F[c+6|0]=d>>>16;F[c+7|0]=d>>>24;ki(a+4|0,f,b);if(F[f+11|0]<0){bl(H[f>>2])}ha=f+16|0}function Ok(a,b,c,d,e,f,g,h){var i=0,j=0,k=0,l=0;i=1;j=d&2147483647;l=j;k=(j|0)==2147418112;a:{if(k&!c?a|b:k&(c|0)!=0|j>>>0>2147418112){break a}j=h&2147483647;k=(j|0)==2147418112;if(k&!g?e|f:k&(g|0)!=0|j>>>0>2147418112){break a}if(!(a|e|(c|g)|(b|f|(j|l)))){return 0}i=d&h;if((i|0)>0|(i|0)>=0){i=-1;if((c|0)==(g|0)&(d|0)==(h|0)?(b|0)==(f|0)&a>>>0>>0|b>>>0>>0:c>>>0>>0&(d|0)<=(h|0)|(d|0)<(h|0)){break a}return(a^e|c^g|(b^f|d^h))!=0}i=-1;if((c|0)==(g|0)&(d|0)==(h|0)?(b|0)==(f|0)&a>>>0>e>>>0|b>>>0>f>>>0:c>>>0>g>>>0&(d|0)>=(h|0)|(d|0)>(h|0)){break a}i=(a^e|c^g|(b^f|d^h))!=0}return i}function ml(a,b,c,d,e,f,g,h){var i=0,j=0,k=0,l=0;i=ha-16|0;ha=i;if((b^-1)-17>>>0>=c>>>0){if(I[a+11|0]>>>7|0){k=H[a>>2]}else{k=a}a:{if(b>>>0<2147483623){H[i+8>>2]=b<<1;H[i+12>>2]=b+c;c=ha-16|0;ha=c;ha=c+16|0;c=i+8|0;j=i+12|0;c=H[(K[j>>2]>2]?c:j)>>2];if(c>>>0>=11){j=c+16&-16;c=j-1|0;c=(c|0)==11?j:c}else{c=10}break a}c=-18}j=c+1|0;c=hl(j);if(e){dl(c,k,e)}if(g){dl(c+e|0,h,g)}l=e+f|0;h=d-l|0;if((d|0)!=(l|0)){dl((c+e|0)+g|0,(e+k|0)+f|0,h)}if((b|0)!=10){bl(k)}H[a>>2]=c;H[a+8>>2]=j|-2147483648;b=a;a=h+(e+g|0)|0;H[b+4>>2]=a;F[i+7|0]=0;F[a+c|0]=I[i+7|0];ha=i+16|0;return}Qe();X()}function dc(a,b){var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0;h=a+4|0;a=H[a+4>>2];a:{b:{if(!a){break b}d=I[b+11|0];c=d<<24>>24<0;f=c?H[b>>2]:b;d=c?H[b+4>>2]:d;b=h;while(1){e=I[a+27|0];c=e<<24>>24<0;e=c?H[a+20>>2]:e;g=e>>>0>d>>>0;i=g?d:e;c:{if(i){j=a+16|0;c=ok(c?H[j>>2]:j,f,i);if(c){break c}}c=d>>>0>e>>>0?-1:g}c=(c|0)<0;b=c?b:a;a=H[(c?a+4|0:a)>>2];if(a){continue}break}if((b|0)==(h|0)){break b}c=I[b+27|0];a=c<<24>>24<0;d:{c=a?H[b+20>>2]:c;e=c>>>0>>0?c:d;if(e){g=f;f=b+16|0;a=ok(g,a?H[f>>2]:f,e);if(a){break d}}if(c>>>0>d>>>0){break b}break a}if((a|0)>=0){break a}}b=h}return b}function db(a,b){var c=0;c=H[b+4>>2];H[a>>2]=H[b>>2];H[a+4>>2]=c;c=H[b+60>>2];H[a+56>>2]=H[b+56>>2];H[a+60>>2]=c;c=H[b+52>>2];H[a+48>>2]=H[b+48>>2];H[a+52>>2]=c;c=H[b+44>>2];H[a+40>>2]=H[b+40>>2];H[a+44>>2]=c;c=H[b+36>>2];H[a+32>>2]=H[b+32>>2];H[a+36>>2]=c;c=H[b+28>>2];H[a+24>>2]=H[b+24>>2];H[a+28>>2]=c;c=H[b+20>>2];H[a+16>>2]=H[b+16>>2];H[a+20>>2]=c;c=H[b+12>>2];H[a+8>>2]=H[b+8>>2];H[a+12>>2]=c;H[a+88>>2]=0;H[a+64>>2]=0;H[a+68>>2]=0;H[a+72>>2]=0;H[a+76>>2]=0;F[a+77|0]=0;F[a+78|0]=0;F[a+79|0]=0;F[a+80|0]=0;F[a+81|0]=0;F[a+82|0]=0;F[a+83|0]=0;F[a+84|0]=0;return a}function Sa(a,b,c){var d=0,e=0,f=0,g=0,h=0;g=c-b|0;f=g>>2;e=H[a+8>>2];d=H[a>>2];if(f>>>0<=e-d>>2>>>0){e=H[a+4>>2]-d|0;g=e>>2;e=g>>>0>>0?b+e|0:c;h=e-b|0;if((b|0)!=(e|0)){kk(d,b,h)}if(g>>>0>>0){b=H[a+4>>2];c=c-e|0;if((c|0)>0){b=jk(b,e,c)+c|0}H[a+4>>2]=b;return}H[a+4>>2]=d+h;return}if(d){H[a+4>>2]=d;bl(d);H[a+8>>2]=0;H[a>>2]=0;H[a+4>>2]=0;e=0}a:{if((g|0)<0){break a}d=e>>1;d=e>>>0<2147483644?d>>>0>f>>>0?d:f:1073741823;if(d>>>0>=1073741824){break a}f=d<<2;d=hl(f);H[a>>2]=d;H[a+4>>2]=d;H[a+8>>2]=d+f;if((b|0)!=(c|0)){d=jk(d,b,g)+g|0}H[a+4>>2]=d;return}Ka();X()}function ac(a,b,c){var d=0,e=0,f=0,g=0,h=0,i=0,j=0;H[a+8>>2]=0;H[a>>2]=0;H[a+4>>2]=0;a:{b:{if(b){if(b>>>0>=357913942){break b}d=N(b,12);b=hl(d);H[a>>2]=b;H[a+4>>2]=b;e=b+d|0;H[a+8>>2]=e;f=H[c>>2];c=H[c+4>>2];c:{if((f|0)==(c|0)){c=b;b=d-12|0;lk(c,0,(b-((b>>>0)%12|0)|0)+12|0);break c}c=c-f|0;if((c|0)<0){break a}g=c>>2<<2;h=c>>>2<<2;while(1){H[b+8>>2]=0;H[b>>2]=0;H[b+4>>2]=0;d=hl(c);H[b>>2]=d;H[b+4>>2]=d;H[b+8>>2]=d+g;i=b,j=jk(d,f,c)+h|0,H[i+4>>2]=j;b=b+12|0;if((e|0)!=(b|0)){continue}break}}H[a+4>>2]=e}return}Ka();X()}H[b+8>>2]=0;H[b>>2]=0;H[b+4>>2]=0;Ka();X()}function Wb(a){var b=0,c=0,d=0,e=0;c=H[a+152>>2];if(c){d=c;b=H[a+156>>2];if((c|0)!=(b|0)){while(1){d=b-12|0;e=H[d>>2];if(e){H[b-8>>2]=e;bl(e)}b=d;if((c|0)!=(b|0)){continue}break}d=H[a+152>>2]}H[a+156>>2]=c;bl(d)}c=H[a+140>>2];if(c){d=c;b=H[a+144>>2];if((c|0)!=(b|0)){while(1){d=b-12|0;e=H[d>>2];if(e){H[b-8>>2]=e;bl(e)}b=d;if((c|0)!=(b|0)){continue}break}d=H[a+140>>2]}H[a+144>>2]=c;bl(d)}b=H[a+128>>2];if(b){H[a+132>>2]=b;bl(b)}b=H[a+116>>2];if(b){H[a+120>>2]=b;bl(b)}b=H[a+104>>2];if(b){H[a+108>>2]=b;bl(b)}xe(a+84|0);xe(a- -64|0);xe(a+44|0);ze(a+12|0)}function fc(a,b){var c=0,d=0,e=0,f=0;c=H[a+16>>2];if(b){H[a+12>>2]=H[a+12>>2]|-2147483648>>>c}b=c+1|0;H[a+16>>2]=b;a:{b:{if((b|0)==32){b=H[a+4>>2];c:{if((b|0)!=H[a+8>>2]){H[b>>2]=H[a+12>>2];H[a+4>>2]=b+4;break c}f=H[a>>2];c=b-f|0;e=c>>2;b=e+1|0;if(b>>>0>=1073741824){break b}d=c>>1;d=c>>>0<2147483644?b>>>0>>0?d:b:1073741823;if(d){if(d>>>0>=1073741824){break a}b=hl(d<<2)}else{b=0}e=b+(e<<2)|0;H[e>>2]=H[a+12>>2];if((c|0)>0){jk(b,f,c)}H[a+8>>2]=b+(d<<2);H[a+4>>2]=e+4;H[a>>2]=b;if(!f){break c}bl(f)}H[a+12>>2]=0;H[a+16>>2]=0}return}Ka();X()}_a();X()}function Al(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;if(tl(a,H[b+8>>2],e)){if(!(H[b+28>>2]==1|H[b+4>>2]!=(c|0))){H[b+28>>2]=d}return}a:{if(tl(a,H[b>>2],e)){if(!(H[b+16>>2]!=(c|0)&H[b+20>>2]!=(c|0))){if((d|0)!=1){break a}H[b+32>>2]=1;return}H[b+32>>2]=d;b:{if(H[b+44>>2]==4){break b}G[b+52>>1]=0;a=H[a+8>>2];la[H[H[a>>2]+20>>2]](a,b,c,c,1,e);if(I[b+53|0]){H[b+44>>2]=3;if(!I[b+52|0]){break b}break a}H[b+44>>2]=4}H[b+20>>2]=c;H[b+40>>2]=H[b+40>>2]+1;if(H[b+36>>2]!=1|H[b+24>>2]!=2){break a}F[b+54|0]=1;return}a=H[a+8>>2];la[H[H[a>>2]+24>>2]](a,b,c,d,e)}}function Zb(a){var b=0,c=0,d=0,e=0;c=H[a+140>>2];if(c){d=c;b=H[a+144>>2];if((c|0)!=(b|0)){while(1){d=b-12|0;e=H[d>>2];if(e){H[b-8>>2]=e;bl(e)}b=d;if((c|0)!=(b|0)){continue}break}d=H[a+140>>2]}H[a+144>>2]=c;bl(d)}c=H[a+128>>2];if(c){d=c;b=H[a+132>>2];if((c|0)!=(b|0)){while(1){d=b-12|0;e=H[d>>2];if(e){H[b-8>>2]=e;bl(e)}b=d;if((c|0)!=(b|0)){continue}break}d=H[a+128>>2]}H[a+132>>2]=c;bl(d)}b=H[a+116>>2];if(b){H[a+120>>2]=b;bl(b)}b=H[a+104>>2];if(b){H[a+108>>2]=b;bl(b)}b=H[a+92>>2];if(b){H[a+96>>2]=b;bl(b)}xe(a+72|0);xe(a+52|0);xe(a+32|0);xe(a+12|0)}function Xe(a,b,c,d,e){var f=0,g=0,h=0;f=ha-16|0;ha=f;g=Ye(b,c,f+12|0,f+8|0,d);d=H[g>>2];if(d){b=0}else{d=hl(40);c=d+16|0;a:{if(F[e+11|0]>=0){h=H[e+4>>2];H[c>>2]=H[e>>2];H[c+4>>2]=h;H[c+8>>2]=H[e+8>>2];break a}nl(c,H[e>>2],H[e+4>>2])}c=d+28|0;b:{if(F[e+23|0]>=0){e=e+12|0;h=H[e+4>>2];H[c>>2]=H[e>>2];H[c+4>>2]=h;H[c+8>>2]=H[e+8>>2];break b}nl(c,H[e+12>>2],H[e+16>>2])}H[d+8>>2]=H[f+12>>2];H[d>>2]=0;H[d+4>>2]=0;H[g>>2]=d;e=d;c=H[H[b>>2]>>2];if(c){H[b>>2]=c;e=H[g>>2]}We(H[b+4>>2],e);H[b+8>>2]=H[b+8>>2]+1;b=1}F[a+4|0]=b;H[a>>2]=d;ha=f+16|0}function Ug(a){var b=0,c=0,d=0,e=0;Be(a);c=H[a+84>>2];a:{if((c|0)<=0){break a}b=c<<5;d=hl((c|0)!=(c&134217727)?-1:b|4);H[d>>2]=c;d=d+4|0;c=d+b|0;b=d;while(1){H[b>>2]=0;H[b+4>>2]=0;H[b+24>>2]=0;H[b+28>>2]=0;H[b+16>>2]=0;H[b+20>>2]=0;H[b+8>>2]=0;H[b+12>>2]=0;b=b+32|0;if((c|0)!=(b|0)){continue}break}e=H[a+80>>2];H[a+80>>2]=d;if(e){c=e-4|0;d=H[c>>2];if(d){b=(d<<5)+e|0;while(1){b=ze(b-32|0);if((e|0)!=(b|0)){continue}break}}bl(c)}if(H[a+84>>2]<=0){break a}b=0;while(1){Be(H[a+80>>2]+(b<<5)|0);b=b+1|0;if((b|0)>2]){continue}break}}}function Rk(a,b){var c=0,d=0,e=0,f=0,g=0,h=0,i=0;f=ha-16|0;ha=f;A(+b);g=v(1)|0;d=v(0)|0;c=g&2147483647;e=c+-1048576|0;a:{if((e|0)==2145386495|e>>>0<2145386495){h=d<<28;e=c>>>4|0;c=(c&15)<<28|d>>>4;d=e+1006632960|0;break a}if((c|0)==2146435072|c>>>0>2146435072){h=d<<28;c=(g&15)<<28|d>>>4;d=g>>>4|2147418112;break a}if(!(c|d)){c=0;d=0;break a}e=c;c=c?Q(c):Q(d)+32|0;Nk(f,d,e,0,0,c+49|0);i=H[f>>2];h=H[f+4>>2];e=15372-c<<16;c=H[f+8>>2];d=e|H[f+12>>2]^65536}H[a>>2]=i;H[a+4>>2]=h;H[a+8>>2]=c;H[a+12>>2]=g&-2147483648|d;ha=f+16|0}function ij(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,f=0,g=0;f=ha-48|0;ha=f;a:{if(!b){a=0;break a}e=f+16|0;H[e>>2]=0;H[e+4>>2]=0;F[e+24|0]=0;H[e+16>>2]=0;H[e+20>>2]=0;H[e+8>>2]=0;H[e+12>>2]=0;g=0;b:{if((_j(b,0)|0)==-1){break b}if(c){g=0;if(!(la[H[H[b>>2]+16>>2]](b)|0)){break b}la[H[H[b>>2]+20>>2]](b)}Fe(f,a,b,e);a=H[f>>2];if(F[f+15|0]<0){bl(H[f+4>>2])}g=0;if(a){break b}Bj(d,H[e>>2],H[e+4>>2]);g=H[e+4>>2]-H[e>>2]|0}a=g;b=H[e+12>>2];H[e+12>>2]=0;if(b){bl(b)}b=H[e>>2];if(!b){break a}H[e+4>>2]=b;bl(b)}ha=f+48|0;return a|0}function bc(a){a=a|0;var b=0,c=0,d=0;H[a>>2]=2284;d=H[a+60>>2];if(d){b=d;c=H[a- -64>>2];if((b|0)!=(c|0)){while(1){c=c-4|0;b=H[c>>2];H[c>>2]=0;if(b){Lb(b)}if((c|0)!=(d|0)){continue}break}b=H[a+60>>2]}H[a+64>>2]=d;bl(b)}b=H[a+48>>2];if(b){H[a+52>>2]=b;bl(b)}d=H[a+36>>2];if(d){b=d;c=H[a+40>>2];if((b|0)!=(c|0)){while(1){c=c-24|0;la[H[H[c>>2]>>2]](c)|0;if((c|0)!=(d|0)){continue}break}b=H[a+36>>2]}H[a+40>>2]=d;bl(b)}H[a>>2]=2188;b=H[a+16>>2];if(b){H[a+20>>2]=b;bl(b)}b=H[a+4>>2];if(b){H[a+8>>2]=b;bl(b)}return a|0}function hj(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0;e=ha-48|0;ha=e;a:{if(!b){a=0;break a}d=e+16|0;H[d>>2]=0;H[d+4>>2]=0;F[d+24|0]=0;H[d+16>>2]=0;H[d+20>>2]=0;H[d+8>>2]=0;H[d+12>>2]=0;f=0;b:{if((_j(b,0)|0)==-1){break b}f=0;if(!(la[H[H[b>>2]+16>>2]](b)|0)){break b}la[H[H[b>>2]+20>>2]](b);Le(e,a,b,d);a=H[e>>2];if(F[e+15|0]<0){bl(H[e+4>>2])}f=0;if(a){break b}Bj(c,H[d>>2],H[d+4>>2]);f=H[d+4>>2]-H[d>>2]|0}a=f;b=H[d+12>>2];H[d+12>>2]=0;if(b){bl(b)}b=H[d>>2];if(!b){break a}H[d+4>>2]=b;bl(b)}ha=e+48|0;return a|0}function gi(a,b){var c=0,d=0,e=0,f=0,g=0,h=0,i=0;a:{c=H[a+4>>2];d=H[a>>2];f=c-d|0;b:{if(f>>>0>>0){g=b-f|0;e=H[a+8>>2];if(g>>>0<=e-c>>>0){h=a,i=lk(c,0,g)+g|0,H[h+4>>2]=i;break b}if((b|0)<0){break a}c=e-d|0;e=c<<1;e=c>>>0<1073741823?b>>>0>>0?e:b:2147483647;c=hl(e);lk(c+f|0,0,g);if((f|0)>0){jk(c,d,f)}H[a+8>>2]=c+e;H[a+4>>2]=b+c;H[a>>2]=c;if(!d){break b}bl(d);break b}if(b>>>0>=f>>>0){break b}H[a+4>>2]=b+d}b=H[a+28>>2];c=b;d=b+1|0;b=H[a+24>>2]+1|0;d=b?c:d;H[a+24>>2]=b;H[a+28>>2]=d;return}Ka();X()}function Uk(a,b,c,d,e,f){var g=0,h=0,i=0,j=0;a:{if(f&64){c=f+-64|0;b=c&31;if((c&63)>>>0>=32){c=0;b=e>>>b|0}else{c=e>>>b|0;b=((1<>>b}d=0;e=0;break a}if(!f){break a}i=d;h=64-f|0;g=h&31;if((h&63)>>>0>=32){h=i<>>32-g|e<>>0>=32){g=0;b=c>>>b|0}else{g=c>>>b|0;b=((1<>>b}b=j|b;c=g|h;g=d;d=f&31;if((f&63)>>>0>=32){h=0;d=e>>>d|0}else{h=e>>>d|0;d=((1<>>d}e=h}H[a>>2]=b;H[a+4>>2]=c;H[a+8>>2]=d;H[a+12>>2]=e}function Uj(a,b){var c=0,d=0,e=0,f=0,g=0,h=0;c=ha-16|0;ha=c;e=I[b+11|0];e=e<<24>>24<0?H[b+4>>2]:e;a:{if(e>>>0>255){break a}if(!e){F[c+15|0]=0;b=H[a+20>>2];if(!!H[a+16>>2]&(b|0)>=0|(b|0)>0){break a}Da(a,H[a+4>>2],c+15|0,c+16|0);break a}F[c+14|0]=e;d=H[a+20>>2];if(!!H[a+16>>2]&(d|0)>=0|(d|0)>0){break a}Da(a,H[a+4>>2],c+14|0,c+15|0);d=H[a+20>>2];if(!!H[a+16>>2]&(d|0)>=0|(d|0)>0){break a}g=a;h=H[a+4>>2];a=I[b+11|0];d=a<<24>>24<0;f=d?H[b>>2]:b;Da(g,h,f,(d?H[b+4>>2]:a)+f|0)}ha=c+16|0;return e>>>0<256}function cl(a){a=a|0;var b=0,c=0,d=0;if(!a){if(H[4842]){b=cl(H[4842])}if(H[4810]){b=cl(H[4810])|b}a=H[4841];if(a){while(1){if(H[a+20>>2]!=H[a+28>>2]){b=cl(a)|b}a=H[a+56>>2];if(a){continue}break}}return b|0}d=H[a+76>>2]>=0;a:{b:{if(H[a+20>>2]==H[a+28>>2]){break b}la[H[a+36>>2]](a,0,0)|0;if(H[a+20>>2]){break b}b=-1;break a}b=H[a+8>>2];c=H[a+4>>2];if((b|0)!=(c|0)){b=c-b|0;la[H[a+40>>2]](a,b,b>>31,1)|0}b=0;H[a+28>>2]=0;H[a+16>>2]=0;H[a+20>>2]=0;H[a+4>>2]=0;H[a+8>>2]=0;if(!d){break a}}return b|0}function rj(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0;d=ha-48|0;ha=d;e=H[a+4>>2];a:{if(!e){break a}if(b){if(!(la[H[H[e>>2]+16>>2]](e)|0)){break a}b=H[a+4>>2];la[H[H[b>>2]+20>>2]](b)}b=d+16|0;H[b>>2]=0;H[b+4>>2]=0;F[b+24|0]=0;H[b+16>>2]=0;H[b+20>>2]=0;H[b+8>>2]=0;H[b+12>>2]=0;af(d,H[a>>2],b);a=H[d>>2];if(F[d+15|0]<0){bl(H[d+4>>2])}if(!a){Bj(c,H[b>>2],H[b+4>>2]);f=H[b+4>>2]-H[b>>2]|0}a=H[b+12>>2];H[b+12>>2]=0;if(a){bl(a)}a=H[b>>2];if(!a){break a}H[b+4>>2]=a;bl(a)}ha=d+48|0;return f|0}function oc(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0;if((la[H[H[b>>2]+20>>2]](b)|0)<=0){return 1}while(1){a:{f=0;d=_j(H[H[a+4>>2]+4>>2],la[H[H[b>>2]+24>>2]](b,e)|0);if((d|0)==-1){break a}c=H[a+4>>2];g=0;b:{if((d|0)<0){break b}h=H[c+4>>2];if(H[h+12>>2]-H[h+8>>2]>>2<=(d|0)){break b}c=H[H[c+8>>2]+(H[H[c+20>>2]+(d<<2)>>2]<<2)>>2];g=la[H[H[c>>2]+36>>2]](c,d)|0}if(!(la[H[H[b>>2]+28>>2]](b,g)|0)){break a}f=1;e=e+1|0;if((la[H[H[b>>2]+20>>2]](b)|0)>(e|0)){continue}}break}return f|0}function Nk(a,b,c,d,e,f){var g=0,h=0,i=0;a:{if(f&64){d=b;e=f+-64|0;b=e&31;if((e&63)>>>0>=32){e=d<>>32-b|c<>>0>=32){h=g<>>32-d|e<>>0>=32){e=0;b=c>>>d|0}else{e=c>>>d|0;b=((1<>>d}d=i|b;e=e|h;b=f&31;if((f&63)>>>0>=32){h=g<>>32-b|c<>2]=b;H[a+4>>2]=c;H[a+8>>2]=d;H[a+12>>2]=e}function mc(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0;d=H[H[a+8>>2]+40>>2];g=hl((d|0)>=0?d:-1);f=H[b>>2];h=H[b+4>>2];if((f|0)!=(h|0)){k=d+g|0;while(1){e=H[(i<<2)+f>>2];d=H[a+8>>2];if(!I[d+84|0]){e=H[H[d+68>>2]+(e<<2)>>2]}l=H[H[d>>2]>>2];j=H[d+40>>2];e=H[d+48>>2]+Sl(j,H[d+44>>2],e,0)|0;d=jk(g,l+e|0,j);e=H[c+20>>2];if(!H[c+16>>2]&(e|0)<=0|(e|0)<0){Da(c,H[c+4>>2],d,k);h=H[b+4>>2];f=H[b>>2]}i=i+1|0;if(i>>>0>2>>>0){continue}break}}bl(g);return 1}function $b(a,b){De(a,b);De(a+32|0,b);De(a- -64|0,b);De(a+96|0,b);De(a+128|0,b);De(a+160|0,b);De(a+192|0,b);De(a+224|0,b);De(a+256|0,b);De(a+288|0,b);De(a+320|0,b);De(a+352|0,b);De(a+384|0,b);De(a+416|0,b);De(a+448|0,b);De(a+480|0,b);De(a+512|0,b);De(a+544|0,b);De(a+576|0,b);De(a+608|0,b);De(a+640|0,b);De(a+672|0,b);De(a+704|0,b);De(a+736|0,b);De(a+768|0,b);De(a+800|0,b);De(a+832|0,b);De(a+864|0,b);De(a+896|0,b);De(a+928|0,b);De(a+960|0,b);De(a+992|0,b);De(a+1024|0,b)}function Lk(a,b){if(!a){return 0}a:{b:{if(a){if(b>>>0<=127){break b}c:{if(!H[H[4879]>>2]){if((b&-128)==57216){break b}break c}if(b>>>0<=2047){F[a+1|0]=b&63|128;F[a|0]=b>>>6|192;a=2;break a}if(!((b&-8192)!=57344&b>>>0>=55296)){F[a+2|0]=b&63|128;F[a|0]=b>>>12|224;F[a+1|0]=b>>>6&63|128;a=3;break a}if(b-65536>>>0<=1048575){F[a+3|0]=b&63|128;F[a|0]=b>>>18|240;F[a+2|0]=b>>>6&63|128;F[a+1|0]=b>>>12&63|128;a=4;break a}}H[4837]=25;a=-1}else{a=1}break a}F[a|0]=b;a=1}return a}function ei(a,b){a=a|0;b=b|0;var c=0,d=0;c=ha-16|0;ha=c;d=H[a+8>>2];a:{if((d|0)==H[a+12>>2]){b=vb(hl(76),b);H[b+36>>2]=0;H[b+40>>2]=0;H[b>>2]=2284;H[b+44>>2]=0;H[b+48>>2]=0;H[b+52>>2]=0;H[b+56>>2]=0;H[b+60>>2]=0;H[b+64>>2]=0;H[b+68>>2]=0;H[b+72>>2]=0;H[c+8>>2]=b;d=H[a+12>>2];b:{if(d>>>0>2]){H[c+8>>2]=0;H[d>>2]=b;H[a+12>>2]=d+4;break b}Ng(a+8|0,c+8|0)}a=H[c+8>>2];H[c+8>>2]=0;if(!a){break a}la[H[H[a>>2]+4>>2]](a);break a}wb(H[d>>2],b)}ha=c+16|0;return 1}function Wk(a,b,c,d,e,f,g,h,i){var j=0,k=0,l=0,m=0;h=Sl(b,c,h,i);i=ka;j=h;h=Sl(d,e,f,g);e=j+h|0;d=ka+i|0;i=e;h=i>>>0>>0?d+1|0:d;j=i;k=g;e=0;l=c;d=0;i=Sl(g,e,c,d);g=j+i|0;c=ka+h|0;j=g;g=g>>>0>>0?c+1|0:c;h=f;i=b;f=Sl(h,0,i,0);b=ka;c=0;d=Sl(h,c,l,d);b=b+d|0;c=ka+c|0;c=b>>>0>>0?c+1|0:c;h=c;c=c+j|0;d=g;d=c>>>0>>0?d+1|0:d;h=c;c=d;d=Sl(i,m,k,e)+b|0;e=ka;e=b>>>0>d>>>0?e+1|0:e;g=a;i=e;h=i+h|0;H[g+8>>2]=h;H[g+12>>2]=h>>>0>>0?c+1|0:c;H[g>>2]=f;H[g+4>>2]=d}function Mj(a){a=a|0;var b=0,c=0,d=0;H[a>>2]=14964;b=H[a+68>>2];if(b){H[a+72>>2]=b;bl(b)}b=H[a+56>>2];if(b){H[a+60>>2]=b;bl(b)}b=H[a+44>>2];if(b){H[a+48>>2]=b;bl(b)}b=H[a+32>>2];if(b){H[a+36>>2]=b;bl(b)}b=H[a+20>>2];if(b){H[a+24>>2]=b;bl(b)}b=H[a+8>>2];if(b){d=b;c=H[a+12>>2];if((b|0)!=(c|0)){while(1){c=c-4|0;d=H[c>>2];H[c>>2]=0;if(d){Lb(d)}if((b|0)!=(c|0)){continue}break}d=H[a+8>>2]}H[a+12>>2]=b;bl(d)}b=H[a+4>>2];H[a+4>>2]=0;if(b){Fj(b)}return a|0}function Bc(a){a=a|0;var b=0,c=0,d=0;H[a>>2]=2496;b=H[a+72>>2];H[a+72>>2]=0;if(b){la[H[H[b>>2]+4>>2]](b)}b=H[a+60>>2];if(b){H[a- -64>>2]=b;bl(b)}b=H[a+48>>2];if(b){bl(b)}d=H[a+36>>2];if(d){c=H[a+40>>2];b=d;if((c|0)!=(b|0)){while(1){c=c-4|0;b=H[c>>2];H[c>>2]=0;if(b){la[H[H[b>>2]+4>>2]](b)}if((c|0)!=(d|0)){continue}break}b=H[a+36>>2]}H[a+40>>2]=d;bl(b)}H[a>>2]=2188;b=H[a+16>>2];if(b){H[a+20>>2]=b;bl(b)}b=H[a+4>>2];if(b){H[a+8>>2]=b;bl(b)}return a|0}function fh(a){H[a>>2]=-1;H[a+4>>2]=0;H[a+8>>2]=0;H[a+32>>2]=0;H[a+36>>2]=0;F[a+28|0]=1;H[a+20>>2]=0;H[a+24>>2]=0;H[a+12>>2]=0;H[a+16>>2]=0;H[a+40>>2]=0;H[a+44>>2]=0;H[a+48>>2]=0;H[a+52>>2]=0;H[a+56>>2]=0;H[a+60>>2]=0;H[a+64>>2]=0;H[a+68>>2]=0;H[a+76>>2]=0;H[a+80>>2]=0;H[a+84>>2]=0;H[a+88>>2]=0;H[a+92>>2]=0;H[a+96>>2]=0;H[a+72>>2]=a+4;H[a+104>>2]=0;H[a+108>>2]=0;F[a+100|0]=1;H[a+112>>2]=0;H[a+116>>2]=0;H[a+120>>2]=0;H[a+124>>2]=0;H[a+128>>2]=0}function Na(a,b){var c=0,d=0,e=0,f=0,g=0,h=0,i=0;e=H[a+8>>2];c=H[a+4>>2];if(e-c>>2>>>0>=b>>>0){if(b){b=b<<2;c=lk(c,0,b)+b|0}H[a+4>>2]=c;return}a:{f=H[a>>2];g=c-f|0;h=g>>2;d=h+b|0;if(d>>>0<1073741824){c=0;e=e-f|0;i=e>>1;d=e>>>0<2147483644?d>>>0>>0?i:d:1073741823;if(d){if(d>>>0>=1073741824){break a}c=hl(d<<2)}b=b<<2;b=lk((h<<2)+c|0,0,b)+b|0;if((g|0)>0){jk(c,f,g)}H[a+8>>2]=(d<<2)+c;H[a+4>>2]=b;H[a>>2]=c;if(f){bl(f)}return}Ka();X()}_a();X()}function jf(a,b){var c=0,d=0,e=0,f=0,g=0,h=0,i=0;e=H[a+8>>2];c=H[a+4>>2];if(e-c>>3>>>0>=b>>>0){if(b){b=b<<3;c=lk(c,0,b)+b|0}H[a+4>>2]=c;return}a:{f=H[a>>2];g=c-f|0;h=g>>3;d=h+b|0;if(d>>>0<536870912){c=0;e=e-f|0;i=e>>2;d=e>>>0<2147483640?d>>>0>>0?i:d:536870911;if(d){if(d>>>0>=536870912){break a}c=hl(d<<3)}b=b<<3;b=lk((h<<3)+c|0,0,b)+b|0;if((g|0)>0){jk(c,f,g)}H[a+8>>2]=(d<<3)+c;H[a+4>>2]=b;H[a>>2]=c;if(f){bl(f)}return}Ka();X()}_a();X()} -function hi(a,b){var c=0,d=0,e=0,f=0,g=0,h=0,i=0;a:{c=H[a+4>>2];e=H[a>>2];f=c-e|0;b:{if(f>>>0>>0){g=b-f|0;d=H[a+8>>2];if(g>>>0<=d-c>>>0){h=a,i=lk(c,0,g)+g|0,H[h+4>>2]=i;return}if((b|0)<0){break a}c=d-e|0;d=c<<1;d=c>>>0<1073741823?b>>>0>>0?d:b:2147483647;c=hl(d);lk(c+f|0,0,g);if((f|0)>0){jk(c,e,f)}H[a+8>>2]=c+d;H[a+4>>2]=b+c;H[a>>2]=c;if(!e){break b}bl(e);return}if(b>>>0>=f>>>0){break b}H[a+4>>2]=b+e}return}Ka();X()}function Pk(a,b,c,d,e){var f=0,g=0,h=0,i=0;h=-1;f=d&2147483647;i=f;g=(f|0)==2147418112;a:{if(g&!c?a|b:g&(c|0)!=0|f>>>0>2147418112){break a}f=e&2147483647;g=(f|0)==2147418112;if(g?0:g&0|f>>>0>2147418112){break a}if(!(a|c|(f|i|b))){return 0}f=d&e;if((f|0)>0|(f|0)>=0){if(!c&(d|0)==(e|0)?0:(d|0)<(e|0)){break a}return(a|c|(d^e|b))!=0}if(!c&(d|0)==(e|0)?a|b:(c|0)!=0&(d|0)>=(e|0)|(d|0)>(e|0)){break a}h=(a|c|(d^e|b))!=0}return h}function Ua(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0;d=ha-16|0;ha=d;e=H[a+4>>2];a:{if((e|0)==-1){break a}c=H[b+20>>2];if(!!H[b+16>>2]&(c|0)>=0|(c|0)>0){break a}Da(b,H[b+4>>2],H[a+8>>2],H[a+12>>2]);c=H[b+20>>2];if(!!H[b+16>>2]&(c|0)>=0|(c|0)>0){break a}Da(b,H[b+4>>2],a+20|0,a+24|0);c=H[b+20>>2];f=H[b+16>>2];F[d+15|0]=H[a+4>>2];if(!!f&(c|0)>=0|(c|0)>0){break a}Da(b,H[b+4>>2],d+15|0,d+16|0)}ha=d+16|0;return(e|0)!=-1|0}function Yh(a){a=a|0;var b=0,c=0,d=0,e=0,f=0;a:{b=H[a+8>>2];b:{if((b|0)<0){break b}c=H[a+4>>2];e=H[c>>2];d=H[c+4>>2]-e>>2;c:{if(d>>>0>>0){Na(c,b-d|0);f=H[a+8>>2];break c}f=b;if(b>>>0>=d>>>0){break c}H[c+4>>2]=e+(b<<2);f=b}d=f;if((d|0)<=0){break b}a=H[a+4>>2];c=H[a>>2];e=H[a+4>>2]-c>>2;a=0;while(1){if((a|0)==(e|0)){break a}H[c+(a<<2)>>2]=a;a=a+1|0;if((d|0)!=(a|0)){continue}break}}return(b^-1)>>>31|0}Yc();X()}function _b(a){Be(a);Be(a+32|0);Be(a- -64|0);Be(a+96|0);Be(a+128|0);Be(a+160|0);Be(a+192|0);Be(a+224|0);Be(a+256|0);Be(a+288|0);Be(a+320|0);Be(a+352|0);Be(a+384|0);Be(a+416|0);Be(a+448|0);Be(a+480|0);Be(a+512|0);Be(a+544|0);Be(a+576|0);Be(a+608|0);Be(a+640|0);Be(a+672|0);Be(a+704|0);Be(a+736|0);Be(a+768|0);Be(a+800|0);Be(a+832|0);Be(a+864|0);Be(a+896|0);Be(a+928|0);Be(a+960|0);Be(a+992|0);Be(a+1024|0)}function Le(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,f=0;e=ha-96|0;ha=e;f=$e(e+40|0,c);Ge(e,b,c);bf(f,e);Nc(e+24|0,H[e+28>>2]);He(e+12|0,H[e+16>>2]);Nc(e,H[e+4>>2]);af(a,f,d);if(!H[a>>2]){if(F[a+15|0]<0){bl(H[a+4>>2])}H[b+40>>2]=H[f+40>>2];H[b+44>>2]=H[f+44>>2];H[a+8>>2]=0;H[a+12>>2]=0;H[a>>2]=0;H[a+4>>2]=0}H[f>>2]=10256;Nc(f+28|0,H[f+32>>2]);He(f+16|0,H[f+20>>2]);Nc(f+4|0,H[f+8>>2]);ha=e+96|0}function Ek(a,b,c){var d=0,e=0,f=0;if(!(I[a|0]&32)){a:{d=b;b=a;a=H[b+16>>2];b:{if(!a){if(Bk(b)){break b}a=H[b+16>>2]}f=H[b+20>>2];if(a-f>>>0>>0){la[H[b+36>>2]](b,d,c)|0;break a}c:{if(H[b+80>>2]<0){break c}a=c;while(1){e=a;if(!a){break c}a=e-1|0;if(I[d+a|0]!=10){continue}break}if(la[H[b+36>>2]](b,d,e)>>>0>>0){break b}d=d+e|0;c=c-e|0;f=H[b+20>>2]}jk(f,d,c);H[b+20>>2]=H[b+20>>2]+c}}}}function yg(a){a=a|0;var b=0,c=0,d=0;H[a>>2]=10404;b=H[a+64>>2];H[a+64>>2]=0;if(b){la[H[H[b>>2]+4>>2]](b)}H[a>>2]=12468;b=H[a+32>>2];if(b){H[a+36>>2]=b;bl(b)}b=H[a+20>>2];if(b){H[a+24>>2]=b;bl(b)}d=H[a+8>>2];if(d){c=H[a+12>>2];b=d;if((c|0)!=(b|0)){while(1){c=c-4|0;b=H[c>>2];H[c>>2]=0;if(b){la[H[H[b>>2]+4>>2]](b)}if((c|0)!=(d|0)){continue}break}b=H[a+8>>2]}H[a+12>>2]=d;bl(b)}return a|0}function uc(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0,i=0;d=ha-16|0;ha=d;f=yb(a,b);a:{if(!f){break a}c=H[a+36>>2];if((c|0)==H[a+40>>2]){break a}g=d+16|0;while(1){c=H[(e<<2)+c>>2];h=d,i=la[H[H[c>>2]+32>>2]](c)|0,F[h+15|0]=i;c=H[b+20>>2];if(!H[b+16>>2]&(c|0)<=0|(c|0)<0){Da(b,H[b+4>>2],d+15|0,g)}e=e+1|0;c=H[a+36>>2];if(e>>>0>2]-c>>2>>>0){continue}break}}ha=d+16|0;return f|0}function zg(a){a=a|0;var b=0,c=0,d=0;H[a>>2]=10404;b=H[a+64>>2];H[a+64>>2]=0;if(b){la[H[H[b>>2]+4>>2]](b)}H[a>>2]=12468;b=H[a+32>>2];if(b){H[a+36>>2]=b;bl(b)}b=H[a+20>>2];if(b){H[a+24>>2]=b;bl(b)}d=H[a+8>>2];if(d){c=H[a+12>>2];b=d;if((c|0)!=(b|0)){while(1){c=c-4|0;b=H[c>>2];H[c>>2]=0;if(b){la[H[H[b>>2]+4>>2]](b)}if((c|0)!=(d|0)){continue}break}b=H[a+8>>2]}H[a+12>>2]=d;bl(b)}bl(a)}function ol(a,b,c){var d=0,e=0,f=0;f=ha-16|0;ha=f;d=I[a+11|0]>>>7|0?(H[a+8>>2]&2147483647)-1|0:10;if(I[a+11|0]>>>7|0){e=H[a+4>>2]}else{e=I[a+11|0]}a:{if(d-e>>>0>=c>>>0){if(!c){break a}if(I[a+11|0]>>>7|0){d=H[a>>2]}else{d=a}dl(d+e|0,b,c);b=c+e|0;b:{if(I[a+11|0]>>>7|0){H[a+4>>2]=b;break b}F[a+11|0]=b}F[f+15|0]=0;F[b+d|0]=I[f+15|0];break a}ml(a,d,(c+e|0)-d|0,e,e,0,c,b)}ha=f+16|0}function Fg(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0;c=H[a+176>>2];d=H[a+172>>2];e=(c-d|0)/136|0;a:{if((c|0)==(d|0)){break a}c=0;b:{c:{d:{if(H[d>>2]==(b|0)){b=1}else{f=e>>>0>1?e:1;while(1){c=c+1|0;if((f|0)==(c|0)){break d}if(H[N(c,136)+d>>2]!=(b|0)){continue}break}b=c>>>0>>0}if(b){break c}break a}if(c>>>0>>0){break b}break a}d=(N(c,136)+d|0)+104|0}return d|0}return a+40|0}function pf(a,b,c){var d=0,e=0,f=0,g=0;d=ha-16|0;ha=d;F[d+15|0]=a&127;a:{b:{if(!b&a>>>0>=128|b){F[d+15|0]=a|128;f=H[c+20>>2];e=0;if(!!H[c+16>>2]&(f|0)>=0|(f|0)>0){break b}Da(c,H[c+4>>2],d+15|0,d+16|0);a=pf((b&127)<<25|a>>>7,b>>>7|0,c);break a}b=H[c+16>>2];a=H[c+20>>2];if(!b&(a|0)<=0|(a|0)<0){Da(c,H[c+4>>2],d+15|0,d+16|0)}e=!b&(a|0)<=0|(a|0)<0}g=e;a=0}ha=d+16|0;return a|g}function Th(a,b){a=a|0;b=b|0;var c=0,d=0;c=ha-16|0;ha=c;a:{if(!b){d=hl(76);b=hl(12);H[b+8>>2]=H[H[a+4>>2]+80>>2];H[b>>2]=12404;H[b+4>>2]=0;d=sc(d,b,0);H[c+8>>2]=d;b=H[a+12>>2];b:{if(b>>>0>2]){H[c+8>>2]=0;H[b>>2]=d;H[a+12>>2]=b+4;break b}Ng(a+8|0,c+8|0)}a=H[c+8>>2];H[c+8>>2]=0;if(!a){break a}la[H[H[a>>2]+4>>2]](a);break a}wb(H[H[a+8>>2]>>2],b)}ha=c+16|0;return 1}function Ob(a,b){a=a|0;b=b|0;var c=0,d=0;c=H[a+36>>2];if((c|0)!=H[a+40>>2]){while(1){c=N(d,24)+c|0;la[H[H[c>>2]+28>>2]](c,b)|0;d=d+1|0;c=H[a+36>>2];if(d>>>0<(H[a+40>>2]-c|0)/24>>>0){continue}break}}c=H[a+48>>2];if((c|0)!=H[a+52>>2]){d=0;while(1){c=H[(d<<2)+c>>2];zb((c|0)<0?(c^-1)<<1|1:c<<1,b);d=d+1|0;c=H[a+48>>2];if(d>>>0>2]-c>>2>>>0){continue}break}}return 1}function Ej(a,b,c,d,e,f){var g=0,h=0,i=0;i=-1;a:{if(!a){break a}g=cb(hl(96));eb(g,b,d<<24>>24,f,c);b=ak(a,g);if(c){g=H[H[a+8>>2]+(b<<2)>>2];while(1){f=H[g+40>>2];jk(H[H[g>>2]>>2]+N(f,I[g+84|0]?h:H[H[g+68>>2]+(h<<2)>>2])|0,(N(d,h)<<1)+e|0,f);h=h+1|0;if((h|0)!=(c|0)){continue}break}}d=H[a+80>>2];b:{if(!d){H[a+80>>2]=c;break b}if((c|0)!=(d|0)){break a}}i=b}return i}function Cj(a,b,c,d,e,f){var g=0,h=0,i=0;i=-1;a:{if(!a){break a}g=cb(hl(96));eb(g,b,d<<24>>24,f,c);b=ak(a,g);if(c){g=H[H[a+8>>2]+(b<<2)>>2];while(1){f=H[g+40>>2];jk(H[H[g>>2]>>2]+N(f,I[g+84|0]?h:H[H[g+68>>2]+(h<<2)>>2])|0,(N(d,h)<<2)+e|0,f);h=h+1|0;if((h|0)!=(c|0)){continue}break}}d=H[a+80>>2];b:{if(!d){H[a+80>>2]=c;break b}if((c|0)!=(d|0)){break a}}i=b}return i}function $a(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0,g=0,h=0,i=0;d=ha+-64|0;ha=d;e=la[H[H[a>>2]+44>>2]](a,b)|0;a=la[H[H[a>>2]+40>>2]](a,b)|0;f=ab(d);g=H[b+56>>2];h=e<<24>>24;i=a;a=a-1|0;if(a>>>0<=10){a=H[(a<<2)+14832>>2]}else{a=-1}a=N(a,e);bb(f,g,0,h,i,a,a>>31);a=db(hl(96),f);fb(a,c);F[a+84|0]=1;H[a+72>>2]=H[a+68>>2];H[a+60>>2]=H[b+60>>2];ha=d- -64|0;return a|0}function Dj(a,b,c,d,e,f){var g=0,h=0,i=0;i=-1;a:{if(!a){break a}g=cb(hl(96));eb(g,b,d<<24>>24,f,c);b=ak(a,g);if(c){g=H[H[a+8>>2]+(b<<2)>>2];while(1){f=H[g+40>>2];jk(H[H[g>>2]>>2]+N(f,I[g+84|0]?h:H[H[g+68>>2]+(h<<2)>>2])|0,N(d,h)+e|0,f);h=h+1|0;if((h|0)!=(c|0)){continue}break}}d=H[a+80>>2];b:{if(!d){H[a+80>>2]=c;break b}if((c|0)!=(d|0)){break a}}i=b}return i}function Bl(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;if(tl(a,H[b+8>>2],e)){if(!(H[b+28>>2]==1|H[b+4>>2]!=(c|0))){H[b+28>>2]=d}return}a:{if(!tl(a,H[b>>2],e)){break a}if(!(H[b+16>>2]!=(c|0)&H[b+20>>2]!=(c|0))){if((d|0)!=1){break a}H[b+32>>2]=1;return}H[b+20>>2]=c;H[b+32>>2]=d;H[b+40>>2]=H[b+40>>2]+1;if(!(H[b+36>>2]!=1|H[b+24>>2]!=2)){F[b+54|0]=1}H[b+44>>2]=4}}function zb(a,b){var c=0,d=0,e=0,f=0;c=ha-16|0;ha=c;F[c+15|0]=a&127;a:{b:{if(a>>>0>=128){F[c+15|0]=a|128;d=H[b+20>>2];e=0;if(!!H[b+16>>2]&(d|0)>=0|(d|0)>0){break b}Da(b,H[b+4>>2],c+15|0,c+16|0);a=zb(a>>>7|0,b);break a}d=H[b+16>>2];a=H[b+20>>2];if(!d&(a|0)<=0|(a|0)<0){Da(b,H[b+4>>2],c+15|0,c+16|0)}e=!d&(a|0)<=0|(a|0)<0}f=e;a=0}ha=c+16|0;return a|f}function eb(a,b,c,d,e){var f=0,g=0,h=0;f=hl(32);H[f+16>>2]=0;H[f+20>>2]=0;H[f+8>>2]=0;H[f>>2]=0;H[f+4>>2]=0;H[f+24>>2]=0;H[f+28>>2]=0;g=H[a+64>>2];H[a+64>>2]=f;if(g){f=H[g>>2];if(f){H[g+4>>2]=f;bl(f)}bl(g);f=H[a+64>>2]}h=b;g=d-1|0;if(g>>>0<=10){b=H[(g<<2)+14832>>2]}else{b=-1}b=N(b,c);bb(a,h,f,c,d,b,b>>31);fb(a,e);F[a+84|0]=1;H[a+72>>2]=H[a+68>>2]}function gl(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0,g=0;e=H[a+84>>2];f=H[e+4>>2];g=H[a+28>>2];d=H[a+20>>2]-g|0;d=d>>>0>f>>>0?f:d;if(d){jk(H[e>>2],g,d);H[e>>2]=d+H[e>>2];f=H[e+4>>2]-d|0;H[e+4>>2]=f}d=H[e>>2];f=c>>>0>f>>>0?f:c;if(f){jk(d,b,f);d=f+H[e>>2]|0;H[e>>2]=d;H[e+4>>2]=H[e+4>>2]-f}F[d|0]=0;b=H[a+44>>2];H[a+28>>2]=b;H[a+20>>2]=b;return c|0}function zl(a,b,c,d){F[a+53|0]=1;a:{if(H[a+4>>2]!=(c|0)){break a}F[a+52|0]=1;c=H[a+16>>2];b:{if(!c){H[a+36>>2]=1;H[a+24>>2]=d;H[a+16>>2]=b;if((d|0)!=1){break a}if(H[a+48>>2]==1){break b}break a}if((b|0)==(c|0)){c=H[a+24>>2];if((c|0)==2){H[a+24>>2]=d;c=d}if(H[a+48>>2]!=1){break a}if((c|0)==1){break b}break a}H[a+36>>2]=H[a+36>>2]+1}F[a+54|0]=1}}function Jj(a,b){var c=0,d=0,e=0,f=0;d=1;a:{if((b|0)==-1){break a}b=N(b,3);if((b|0)==-1){break a}d=-1;e=H[a>>2];a=e+(b<<2)|0;c=b+1|0;c=(c>>>0)%3|0?c:b-2|0;if((c|0)!=-1){d=H[(c<<2)+e>>2]}a=H[a>>2];f=(a|0)==(d|0);b:{c:{if((b>>>0)%3|0){b=b-1|0;break c}b=b+2|0;c=-1;if((b|0)==-1){break b}}c=H[(b<<2)+e>>2]}d=f|(c|0)==(a|0)|(d|0)==(c|0)}return d}function ul(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0;e=ha+-64|0;ha=e;d=1;a:{if(tl(a,b,0)){break a}d=0;if(!b){break a}b=vl(b,18476,18524);d=0;if(!b){break a}d=e+8|0;lk(d|4,0,52);H[e+56>>2]=1;H[e+20>>2]=-1;H[e+16>>2]=a;H[e+8>>2]=b;la[H[H[b>>2]+28>>2]](b,d,H[c>>2],1);a=H[e+32>>2];if((a|0)==1){H[c>>2]=H[e+24>>2]}d=(a|0)==1}ha=e- -64|0;return d|0}function tc(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0;H[a+32>>2]=c;H[a+28>>2]=b;a:{if(!(la[H[H[a>>2]+52>>2]](a)|0)){break a}e=H[a+4>>2];if((e|0)==H[a+8>>2]){return 1}c=0;while(1){d=c<<2;f=H[d+H[a+36>>2]>>2];d=la[H[H[f>>2]+8>>2]](f,b,H[d+e>>2])|0;if(!d){break a}c=c+1|0;e=H[a+4>>2];if(c>>>0>2]-e>>2>>>0){continue}break}}return d|0}function Og(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0;d=ha-16|0;ha=d;H[a+4>>2]=b;b=H[b+64>>2];e=H[b>>2];b=H[b+4>>2];F[d+15|0]=0;Jg(a+24|0,(b-e>>2>>>0)/3|0,d+15|0);b=H[a+4>>2];e=H[b+56>>2];b=H[b+52>>2];F[d+14|0]=0;Jg(a+36|0,e-b>>2,d+14|0);b=H[c+12>>2];H[a+16>>2]=H[c+8>>2];H[a+20>>2]=b;b=H[c+4>>2];H[a+8>>2]=H[c>>2];H[a+12>>2]=b;ha=d+16|0}function sh(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0;d=ha-16|0;ha=d;H[a+4>>2]=b;e=H[b>>2];b=H[b+4>>2];F[d+15|0]=0;Jg(a+24|0,(b-e>>2>>>0)/3|0,d+15|0);b=H[a+4>>2];e=H[b+28>>2];b=H[b+24>>2];F[d+14|0]=0;Jg(a+36|0,e-b>>2,d+14|0);b=H[c+12>>2];H[a+16>>2]=H[c+8>>2];H[a+20>>2]=b;b=H[c+4>>2];H[a+8>>2]=H[c>>2];H[a+12>>2]=b;ha=d+16|0}function ik(a){var b=0,c=0,d=0,e=0;while(1){b=a;a=b+1|0;c=F[b|0];if((c|0)==32|c-9>>>0<5){continue}break}a:{b:{c:{c=F[b|0];switch(c-43|0){case 0:break b;case 2:break c;default:break a}}e=1}c=F[a|0];b=a}if(c-48>>>0<10){while(1){d=(N(d,10)-F[b|0]|0)+48|0;a=F[b+1|0];b=b+1|0;if(a-48>>>0<10){continue}break}}return e?d:0-d|0}function Rh(a){a=a|0;var b=0,c=0,d=0;H[a>>2]=12468;b=H[a+32>>2];if(b){H[a+36>>2]=b;bl(b)}b=H[a+20>>2];if(b){H[a+24>>2]=b;bl(b)}d=H[a+8>>2];if(d){c=H[a+12>>2];b=d;if((c|0)!=(b|0)){while(1){c=c-4|0;b=H[c>>2];H[c>>2]=0;if(b){la[H[H[b>>2]+4>>2]](b)}if((c|0)!=(d|0)){continue}break}b=H[a+8>>2]}H[a+12>>2]=d;bl(b)}return a|0}function Wh(a){a=a|0;var b=0,c=0,d=0;H[a>>2]=12468;b=H[a+32>>2];if(b){H[a+36>>2]=b;bl(b)}b=H[a+20>>2];if(b){H[a+24>>2]=b;bl(b)}d=H[a+8>>2];if(d){c=H[a+12>>2];b=d;if((c|0)!=(b|0)){while(1){c=c-4|0;b=H[c>>2];H[c>>2]=0;if(b){la[H[H[b>>2]+4>>2]](b)}if((c|0)!=(d|0)){continue}break}b=H[a+8>>2]}H[a+12>>2]=d;bl(b)}bl(a)}function rd(a,b){a=a|0;b=b|0;var c=0,d=0,e=0;c=ha-16|0;ha=c;H[c+12>>2]=H[a+12>>2];d=H[b+20>>2];a:{if(!!H[b+16>>2]&(d|0)>=0|(d|0)>0){break a}Da(b,H[b+4>>2],c+12|0,c+16|0);d=H[b+20>>2];e=H[b+16>>2];H[c+8>>2]=H[a+16>>2];if(!!e&(d|0)>=0|(d|0)>0){break a}Da(b,H[b+4>>2],c+8|0,c+12|0)}De(a+112|0,b);ha=c+16|0;return 1}function ee(a,b){a=a|0;b=b|0;var c=0,d=0,e=0;c=ha-16|0;ha=c;H[c+12>>2]=H[a+12>>2];d=H[b+20>>2];a:{if(!!H[b+16>>2]&(d|0)>=0|(d|0)>0){break a}Da(b,H[b+4>>2],c+12|0,c+16|0);d=H[b+20>>2];e=H[b+16>>2];H[c+8>>2]=H[a+24>>2];if(!!e&(d|0)>=0|(d|0)>0){break a}Da(b,H[b+4>>2],c+8|0,c+12|0)}De(a+96|0,b);ha=c+16|0;return 1}function vk(a){var b=0;b=1;a:{if((a|0)>=1024){b=898846567431158e293;if(a>>>0<2047){a=a-1023|0;break a}b=Z;a=((a|0)<3069?a:3069)-2046|0;break a}if((a|0)>-1023){break a}b=2004168360008973e-307;if(a>>>0>4294965304){a=a+969|0;break a}b=0;a=((a|0)>-2960?a:-2960)+1938|0}x(0,0);x(1,a+1023<<20);return b*+z()}function Wc(a,b){a=a|0;b=b|0;var c=0,d=0,e=0;c=ha-16|0;ha=c;H[c+12>>2]=H[a+12>>2];d=H[b+20>>2];a:{if(!!H[b+16>>2]&(d|0)>=0|(d|0)>0){break a}Da(b,H[b+4>>2],c+12|0,c+16|0);d=H[b+20>>2];e=H[b+16>>2];H[c+8>>2]=H[a+16>>2];if(!!e&(d|0)>=0|(d|0)>0){break a}Da(b,H[b+4>>2],c+8|0,c+12|0)}ha=c+16|0;return 1}function Pd(a,b){a=a|0;b=b|0;var c=0,d=0,e=0;c=ha-16|0;ha=c;H[c+12>>2]=H[a+12>>2];d=H[b+20>>2];a:{if(!!H[b+16>>2]&(d|0)>=0|(d|0)>0){break a}Da(b,H[b+4>>2],c+12|0,c+16|0);d=H[b+20>>2];e=H[b+16>>2];H[c+8>>2]=H[a+24>>2];if(!!e&(d|0)>=0|(d|0)>0){break a}Da(b,H[b+4>>2],c+8|0,c+12|0)}ha=c+16|0;return 1}function ok(a,b,c){var d=0,e=0;a:{b:{if(c>>>0>=4){if((a|b)&3){break b}while(1){if(H[a>>2]!=H[b>>2]){break b}b=b+4|0;a=a+4|0;c=c-4|0;if(c>>>0>3){continue}break}}if(!c){break a}}while(1){d=I[a|0];e=I[b|0];if((d|0)==(e|0)){b=b+1|0;a=a+1|0;c=c-1|0;if(c){continue}break a}break}return d-e|0}return 0}function Sk(a,b){var c=0,d=0,e=0,f=0;d=ha-16|0;ha=d;a:{if(!b){b=0;break a}c=b>>31;e=(c^b)-c|0;c=Q(e);Nk(d,e,0,0,0,c+81|0);e=0+H[d+8>>2]|0;c=(H[d+12>>2]^65536)+(16414-c<<16)|0;c=e>>>0>>0?c+1|0:c;f=b&-2147483648|c;c=H[d+4>>2];b=H[d>>2]}H[a>>2]=b;H[a+4>>2]=c;H[a+8>>2]=e;H[a+12>>2]=f;ha=d+16|0}function uh(a){a=a|0;var b=0;H[a+8>>2]=11436;H[a>>2]=11224;b=H[a+96>>2];if(b){H[a+100>>2]=b;bl(b)}b=H[a+80>>2];if(b){H[a+84>>2]=b;bl(b)}b=H[a+68>>2];if(b){H[a+72>>2]=b;bl(b)}b=H[a+56>>2];if(b){H[a+60>>2]=b;bl(b)}H[a+8>>2]=11672;b=H[a+44>>2];if(b){bl(b)}b=H[a+32>>2];if(b){bl(b)}return a|0}function Fj(a){var b=0,c=0,d=0;if(a){d=H[a+24>>2];if(d){b=d;c=H[a+28>>2];if((b|0)!=(c|0)){while(1){c=c-4|0;b=H[c>>2];H[c>>2]=0;if(b){Ii(b+12|0,H[b+16>>2]);Ji(b,H[b+4>>2]);bl(b)}if((c|0)!=(d|0)){continue}break}b=H[a+24>>2]}H[a+28>>2]=d;bl(b)}Ii(a+12|0,H[a+16>>2]);Ji(a,H[a+4>>2]);bl(a)}}function xd(a){a=a|0;var b=0;H[a>>2]=5076;b=H[a+152>>2];if(b){H[a+156>>2]=b;bl(b)}b=H[a+112>>2];if(b){H[a+116>>2]=b;bl(b)}b=H[a+96>>2];if(b){bl(b)}b=H[a+84>>2];if(b){bl(b)}b=H[a+72>>2];if(b){bl(b)}b=H[a+60>>2];if(b){bl(b)}H[a>>2]=3456;b=H[a+32>>2];if(b){H[a+36>>2]=b;bl(b)}return a|0}function vh(a){a=a|0;var b=0;H[a+8>>2]=11436;H[a>>2]=11224;b=H[a+96>>2];if(b){H[a+100>>2]=b;bl(b)}b=H[a+80>>2];if(b){H[a+84>>2]=b;bl(b)}b=H[a+68>>2];if(b){H[a+72>>2]=b;bl(b)}b=H[a+56>>2];if(b){H[a+60>>2]=b;bl(b)}H[a+8>>2]=11672;b=H[a+44>>2];if(b){bl(b)}b=H[a+32>>2];if(b){bl(b)}bl(a)}function Zc(a){a=a|0;var b=0;H[a>>2]=3512;b=H[a+152>>2];if(b){H[a+156>>2]=b;bl(b)}b=H[a+112>>2];if(b){H[a+116>>2]=b;bl(b)}b=H[a+96>>2];if(b){bl(b)}b=H[a+84>>2];if(b){bl(b)}b=H[a+72>>2];if(b){bl(b)}b=H[a+60>>2];if(b){bl(b)}H[a>>2]=3456;b=H[a+32>>2];if(b){H[a+36>>2]=b;bl(b)}return a|0}function Ea(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0,g=0,h=0,i=0;h=H[c+8>>2];e=H[c+16>>2];g=H[c+12>>2];f=g;d=H[c+20>>2];if(h>>>0>e>>>0&(f|0)>=(d|0)|(d|0)<(f|0)){b=I[e+H[c>>2]|0];i=e+1|0;f=i?d:d+1|0;H[c+16>>2]=i;H[c+20>>2]=f;H[a+4>>2]=b}return e>>>0>>0&(d|0)<=(g|0)|(d|0)<(g|0)}function tl(a,b,c){var d=0;if(!c){return H[a+4>>2]==H[b+4>>2]}if((a|0)==(b|0)){return 1}d=H[a+4>>2];a=I[d|0];c=H[b+4>>2];b=I[c|0];a:{if(!a|(b|0)!=(a|0)){break a}while(1){b=I[c+1|0];a=I[d+1|0];if(!a){break a}c=c+1|0;d=d+1|0;if((a|0)==(b|0)){continue}break}}return(a|0)==(b|0)}function hf(a){var b=0,c=0;c=H[a+8>>2];if((c|0)>=2){b=+(c|0);b=U(b*nk(b)-M[a>>3]);if(P(b)<0x8000000000000000){ka=P(b)>=1?~~(b>0?R(T(b*2.3283064365386963e-10),4294967295):U((b-+(~~b>>>0>>>0))*2.3283064365386963e-10))>>>0:0;return~~b>>>0}a=-2147483648}else{a=0}ka=a;return 0}function th(a){a=a|0;var b=0;H[a>>2]=11436;b=H[a+88>>2];if(b){H[a+92>>2]=b;bl(b)}b=H[a+72>>2];if(b){H[a+76>>2]=b;bl(b)}b=H[a+60>>2];if(b){H[a- -64>>2]=b;bl(b)}b=H[a+48>>2];if(b){H[a+52>>2]=b;bl(b)}H[a>>2]=11672;b=H[a+36>>2];if(b){bl(b)}b=H[a+24>>2];if(b){bl(b)}return a|0}function Vj(a,b){var c=0,d=0,e=0;H[a+8>>2]=0;H[a>>2]=0;H[a+4>>2]=0;a:{c=H[b+4>>2];d=H[b>>2];b:{if((c|0)==(d|0)){a=c;break b}c=c-d|0;if((c|0)<0){break a}d=c;e=hl(c);c=lk(e,0,c);d=d+c|0;H[a+8>>2]=d;H[a+4>>2]=d;H[a>>2]=c;c=H[b>>2];a=H[b+4>>2]}jk(e,c,a-c|0);return}Ka();X()}function Tk(a,b){var c=0,d=0,e=0,f=0;c=ha-16|0;ha=c;a:{if(!b){b=0;break a}d=b;b=Q(b);Nk(c,d,0,0,0,b+81|0);e=16414-b<<16;b=0;d=b+H[c+8>>2]|0;e=e+(H[c+12>>2]^65536)|0;e=b>>>0>d>>>0?e+1|0:e;f=d;d=H[c>>2];b=H[c+4>>2]}H[a>>2]=d;H[a+4>>2]=b;H[a+8>>2]=f;H[a+12>>2]=e;ha=c+16|0}function Ah(a){a=a|0;var b=0;H[a>>2]=11436;b=H[a+88>>2];if(b){H[a+92>>2]=b;bl(b)}b=H[a+72>>2];if(b){H[a+76>>2]=b;bl(b)}b=H[a+60>>2];if(b){H[a- -64>>2]=b;bl(b)}b=H[a+48>>2];if(b){H[a+52>>2]=b;bl(b)}H[a>>2]=11672;b=H[a+36>>2];if(b){bl(b)}b=H[a+24>>2];if(b){bl(b)}bl(a)}function Hk(a,b,c){var d=0,e=0,f=0;a:{if(!b){d=a;break a}while(1){d=Ul(a,b,10,0);f=ka;e=Sl(d,f,10,0);c=c-1|0;F[c|0]=a-e|48;e=b>>>0>9;a=d;b=f;if(e){continue}break}}if(d){while(1){c=c-1|0;a=(d>>>0)/10|0;F[c|0]=d-N(a,10)|48;b=d>>>0>9;d=a;if(b){continue}break}}return c}function ue(a){a=a|0;var b=0;H[a+40>>2]=2032;H[a>>2]=9988;b=H[a+48>>2];if(b){H[a+52>>2]=b;bl(b)}H[a>>2]=2624;b=H[a+36>>2];H[a+36>>2]=0;if(b){la[H[H[b>>2]+4>>2]](b)}H[a>>2]=2392;b=H[a+32>>2];H[a+32>>2]=0;if(b){Lb(b)}b=H[a+16>>2];if(b){H[a+20>>2]=b;bl(b)}return a|0}function lj(a){a=a|0;var b=0,c=0;b=hl(8);H[b+4>>2]=a;H[b>>2]=0;a:{b:{c:{if(!a){break c}c=vl(a,15016,14936);if(!c){break c}c=$e(hl(56),c);a=H[b>>2];H[b>>2]=c;if(a){break b}break a}c=_e(hl(56),a);a=H[b>>2];H[b>>2]=c;if(!a){break a}}la[H[H[a>>2]+4>>2]](a)}return b|0}function Fe(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,f=0;e=ha-96|0;ha=e;f=_e(e+40|0,c);Ge(e,b,c);bf(f,e);Nc(e+24|0,H[e+28>>2]);He(e+12|0,H[e+16>>2]);Nc(e,H[e+4>>2]);af(a,f,d);H[f>>2]=10256;Nc(f+28|0,H[f+32>>2]);He(f+16|0,H[f+20>>2]);Nc(f+4|0,H[f+8>>2]);ha=e+96|0}function Sg(a){var b=0;if(a){b=H[a+76>>2];if(b){H[a+80>>2]=b;bl(b)}b=H[a- -64>>2];if(b){H[a+68>>2]=b;bl(b)}b=H[a+48>>2];if(b){H[a+52>>2]=b;bl(b)}b=H[a+24>>2];if(b){H[a+28>>2]=b;bl(b)}b=H[a+12>>2];if(b){H[a+16>>2]=b;bl(b)}b=H[a>>2];if(b){H[a+4>>2]=b;bl(b)}bl(a)}}function ah(a){var b=0;b=H[a+84>>2];if(b){H[a+88>>2]=b;bl(b)}b=H[a+72>>2];if(b){H[a+76>>2]=b;bl(b)}b=H[a+52>>2];if(b){H[a+56>>2]=b;bl(b)}b=H[a+40>>2];if(b){H[a+44>>2]=b;bl(b)}b=H[a+28>>2];if(b){H[a+32>>2]=b;bl(b)}b=H[a+12>>2];if(b){bl(b)}a=H[a>>2];if(a){bl(a)}}function _k(a,b,c){var d=0,e=0,f=0,g=0,h=0;f=ha-16|0;ha=f;d=ha-16|0;ha=d;b=b-a>>2;while(1){if(b){H[d+12>>2]=a;e=b>>>1|0;H[d+12>>2]=H[d+12>>2]+(e<<2);h=(e^-1)+b|0;b=e;e=H[d+12>>2];g=K[e>>2]>2];b=g?h:b;a=g?e+4|0:a;continue}break}ha=d+16|0;ha=f+16|0;return a}function ve(a){a=a|0;var b=0;H[a+40>>2]=2032;H[a>>2]=9988;b=H[a+48>>2];if(b){H[a+52>>2]=b;bl(b)}H[a>>2]=2624;b=H[a+36>>2];H[a+36>>2]=0;if(b){la[H[H[b>>2]+4>>2]](b)}H[a>>2]=2392;b=H[a+32>>2];H[a+32>>2]=0;if(b){Lb(b)}b=H[a+16>>2];if(b){H[a+20>>2]=b;bl(b)}bl(a)}function nl(a,b,c){var d=0,e=0;a:{b:{if(c>>>0<11){d=a;F[d+11|0]=c;break b}if(c>>>0>4294967279){break a}if(c>>>0>=11){e=c+16&-16;d=e-1|0;d=(d|0)==11?e:d}else{d=10}e=d+1|0;d=hl(e);H[a>>2]=d;H[a+8>>2]=e|-2147483648;H[a+4>>2]=c}dl(d,b,c+1|0);return}Qe();X()}function vc(a,b){a=a|0;b=b|0;var c=0,d=0;c=H[a+72>>2];a:{if(!c){break a}H[c+4>>2]=a+60;if(!(la[H[H[c>>2]+12>>2]](c)|0)){break a}if(!(la[H[H[a>>2]+40>>2]](a)|0)){break a}if(!(la[H[H[a>>2]+44>>2]](a,b)|0)){break a}d=la[H[H[a>>2]+48>>2]](a,b)|0}return d|0}function te(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0;e=ha-16|0;ha=e;d=a+40|0;c=$a(d,H[a+8>>2],H[b+4>>2]-H[b>>2]>>2);d=Pa(d,H[a+8>>2],b,c);a:{if(d){b=H[a+32>>2];H[a+32>>2]=c;if(!b){break a}Lb(b);break a}H[e+8>>2]=0;if(!c){break a}Lb(c)}ha=e+16|0;return d|0}function Ld(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0;e=ha-16|0;ha=e;d=a+40|0;c=$a(d,H[a+8>>2],H[b+4>>2]-H[b>>2]>>2);d=za(d,H[a+8>>2],b,c);a:{if(d){b=H[a+32>>2];H[a+32>>2]=c;if(!b){break a}Lb(b);break a}H[e+8>>2]=0;if(!c){break a}Lb(c)}ha=e+16|0;return d|0}function sk(a){var b=0,c=0,d=0;b=a;a:{if(b&3){while(1){if(!I[b|0]){break a}b=b+1|0;if(b&3){continue}break}}while(1){c=b;b=b+4|0;d=H[c>>2];if(!((d^-1)&d-16843009&-2139062144)){continue}break}while(1){b=c;c=b+1|0;if(I[b|0]){continue}break}}return b-a|0}function Eg(a,b){a=a|0;b=b|0;var c=0,d=0;c=H[a+172>>2];a=H[a+176>>2];if((c|0)!=(a|0)){a=(a-c|0)/136|0;d=a>>>0>1?a:1;a=0;while(1){if(H[N(a,136)+c>>2]==(b|0)){a=N(a,136)+c|0;return(I[a+100|0]?a+4|0:0)|0}a=a+1|0;if((d|0)!=(a|0)){continue}break}}return 0}function bb(a,b,c,d,e,f,g){var h=0;H[a>>2]=c;if(c){h=H[c+20>>2];H[a+8>>2]=H[c+16>>2];H[a+12>>2]=h;h=H[c+28>>2];H[a+16>>2]=H[c+24>>2];H[a+20>>2]=h}H[a+56>>2]=b;H[a+48>>2]=0;H[a+52>>2]=0;H[a+40>>2]=f;H[a+44>>2]=g;F[a+32|0]=0;H[a+28>>2]=e;F[a+24|0]=d}function Ck(a,b){var c=0,d=0,e=0;A(+a);d=v(1)|0;e=v(0)|0;c=d>>>20&2047;if((c|0)!=2047){if(!c){if(a==0){c=0}else{a=Ck(a*0x10000000000000000,b);c=H[b>>2]+-64|0}H[b>>2]=c;return a}H[b>>2]=c-1022;x(0,e|0);x(1,d&-2146435073|1071644672);a=+z()}return a}function xc(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0;c=H[a+36>>2];if((c|0)==H[a+40>>2]){return 1}f=a+60|0;while(1){c=H[(d<<2)+c>>2];e=la[H[H[c>>2]+20>>2]](c,f,b)|0;if(e){d=d+1|0;c=H[a+36>>2];if(d>>>0>2]-c>>2>>>0){continue}}break}return e|0}function Ic(a){H[a+32>>2]=0;H[a+12>>2]=-1;H[a+4>>2]=0;H[a+8>>2]=0;H[a+16>>2]=0;H[a+20>>2]=0;H[a>>2]=2392;F[a+21|0]=0;F[a+22|0]=0;F[a+23|0]=0;F[a+24|0]=0;F[a+25|0]=0;F[a+26|0]=0;F[a+27|0]=0;F[a+28|0]=0;H[a+36>>2]=0;H[a>>2]=2624;return a}function wc(a){a=a|0;var b=0,c=0,d=0,e=0;b=H[a+36>>2];if((b|0)==H[a+40>>2]){return 1}e=a+60|0;while(1){b=H[(c<<2)+b>>2];d=la[H[H[b>>2]+16>>2]](b,e)|0;if(d){c=c+1|0;b=H[a+36>>2];if(c>>>0>2]-b>>2>>>0){continue}}break}return d|0}function he(a){a=a|0;var b=0;H[a>>2]=8640;b=H[a+136>>2];if(b){H[a+140>>2]=b;bl(b)}b=H[a+96>>2];if(b){H[a+100>>2]=b;bl(b)}b=H[a+80>>2];if(b){bl(b)}b=H[a+68>>2];if(b){bl(b)}b=H[a+56>>2];if(b){bl(b)}b=H[a+44>>2];if(b){bl(b)}return a|0}function di(a,b){a=a|0;b=b|0;var c=0,d=0;c=ha-16|0;ha=c;H[c+12>>2]=H[H[b+4>>2]+80>>2];b=H[b+44>>2];d=H[b+20>>2];if(!H[b+16>>2]&(d|0)<=0|(d|0)<0){Da(b,H[b+4>>2],c+12|0,c+16|0)}H[a>>2]=0;H[a+4>>2]=0;H[a+8>>2]=0;H[a+12>>2]=0;ha=c+16|0}function Sd(a){a=a|0;var b=0;H[a>>2]=6992;b=H[a+136>>2];if(b){H[a+140>>2]=b;bl(b)}b=H[a+96>>2];if(b){H[a+100>>2]=b;bl(b)}b=H[a+80>>2];if(b){bl(b)}b=H[a+68>>2];if(b){bl(b)}b=H[a+56>>2];if(b){bl(b)}b=H[a+44>>2];if(b){bl(b)}return a|0}function Fk(a){var b=0,c=0,d=0;if(F[H[a>>2]]-48>>>0>=10){return 0}while(1){d=H[a>>2];c=-1;if(b>>>0<=214748364){c=F[d|0]-48|0;b=N(b,10);c=(c|0)>(2147483647-b|0)?-1:c+b|0}H[a>>2]=d+1;b=c;if(F[d+1|0]-48>>>0<10){continue}break}return b}function Lb(a){a=a|0;var b=0,c=0;if(a){b=H[a+88>>2];H[a+88>>2]=0;if(b){c=H[b+8>>2];if(c){H[b+12>>2]=c;bl(c)}bl(b)}b=H[a+68>>2];if(b){H[a+72>>2]=b;bl(b)}b=H[a+64>>2];H[a+64>>2]=0;if(b){c=H[b>>2];if(c){H[b+4>>2]=c;bl(c)}bl(b)}bl(a)}}function yc(a,b){a=a|0;b=b|0;var c=0,d=0,e=0;c=H[a+36>>2];if((c|0)==H[a+40>>2]){return 1}while(1){c=H[(d<<2)+c>>2];e=la[H[H[c>>2]+24>>2]](c,b)|0;if(e){d=d+1|0;c=H[a+36>>2];if(d>>>0>2]-c>>2>>>0){continue}}break}return e|0}function ie(a){a=a|0;var b=0;H[a>>2]=8640;b=H[a+136>>2];if(b){H[a+140>>2]=b;bl(b)}b=H[a+96>>2];if(b){H[a+100>>2]=b;bl(b)}b=H[a+80>>2];if(b){bl(b)}b=H[a+68>>2];if(b){bl(b)}b=H[a+56>>2];if(b){bl(b)}b=H[a+44>>2];if(b){bl(b)}bl(a)}function Td(a){a=a|0;var b=0;H[a>>2]=6992;b=H[a+136>>2];if(b){H[a+140>>2]=b;bl(b)}b=H[a+96>>2];if(b){H[a+100>>2]=b;bl(b)}b=H[a+80>>2];if(b){bl(b)}b=H[a+68>>2];if(b){bl(b)}b=H[a+56>>2];if(b){bl(b)}b=H[a+44>>2];if(b){bl(b)}bl(a)}function bi(a){a=a|0;var b=0,c=0,d=0;b=H[a+32>>2];d=H[a+36>>2];if((b|0)==(d|0)){return 1}while(1){c=H[H[a+8>>2]+(H[b>>2]<<2)>>2];c=la[H[H[c>>2]+20>>2]](c,H[a+44>>2])|0;if(c){b=b+4|0;if((d|0)!=(b|0)){continue}}break}return c|0}function Pe(a,b){var c=0,d=0,e=0;c=sk(b);if(c>>>0<4294967280){a:{b:{if(c>>>0>=11){e=c+16&-16;d=hl(e);H[a+8>>2]=e|-2147483648;H[a>>2]=d;H[a+4>>2]=c;break b}F[a+11|0]=c;d=a;if(!c){break a}}jk(d,b,c)}F[c+d|0]=0;return a}Qe();X()}function Tl(a,b,c,d){var e=0,f=0,g=0,h=0;f=b^d;g=f>>31;e=b>>31;a=a^e;h=a-e|0;e=(b^e)-((a>>>0>>0)+e|0)|0;a=d>>31;b=c^a;f=f>>31;a=Ul(h,e,b-a|0,(a^d)-((a>>>0>b>>>0)+a|0)|0)^f;b=a-f|0;ka=(g^ka)-((a>>>0>>0)+g|0)|0;return b}function pl(a,b,c){var d=0,e=0,f=0;e=ha-16|0;ha=e;d=H[a+8>>2]&2147483647;a:{if(d>>>0>c>>>0){d=H[a>>2];H[a+4>>2]=c;dl(d,b,c);F[e+15|0]=0;F[c+d|0]=I[e+15|0];break a}f=a;a=H[a+4>>2];ml(f,d-1|0,(c-d|0)+1|0,a,0,a,c,b)}ha=e+16|0}function Ca(a,b){a=a|0;b=b|0;var c=0,d=0;c=ha-16|0;ha=c;a=H[a+4>>2];a:{if((a|0)==-1){break a}F[c+15|0]=a;d=H[b+20>>2];if(!!H[b+16>>2]&(d|0)>=0|(d|0)>0){break a}Da(b,H[b+4>>2],c+15|0,c+16|0)}ha=c+16|0;return(a|0)!=-1|0}function Sl(a,b,c,d){var e=0,f=0,g=0,h=0,i=0,j=0;e=c>>>16|0;f=a>>>16|0;j=N(e,f);g=c&65535;h=a&65535;i=N(g,h);f=(i>>>16|0)+N(f,g)|0;e=(f&65535)+N(e,h)|0;ka=(N(b,c)+j|0)+N(a,d)+(f>>>16)+(e>>>16)|0;return i&65535|e<<16}function wl(a,b,c){var d=0;d=H[a+16>>2];if(!d){H[a+36>>2]=1;H[a+24>>2]=c;H[a+16>>2]=b;return}a:{if((b|0)==(d|0)){if(H[a+24>>2]!=2){break a}H[a+24>>2]=c;return}F[a+54|0]=1;H[a+24>>2]=2;H[a+36>>2]=H[a+36>>2]+1}}function ya(a,b){a=a|0;b=b|0;var c=0,d=0;H[b>>2]=2;c=H[b+8>>2];d=H[b+12>>2]-c|0;if(d>>>0<=4294967291){gi(b+8|0,d+4|0);c=H[b+8>>2]}b=c+d|0;a=H[a+4>>2];F[b|0]=a;F[b+1|0]=a>>>8;F[b+2|0]=a>>>16;F[b+3|0]=a>>>24}function ni(a,b){var c=0,d=O(0),e=0;b=dc(a,b);if((b|0)!=(a+4|0)){a=ha-16|0;ha=a;c=b+28|0;Ak(a,F[b+39|0]<0?H[c>>2]:c,0,1);e=Yk(H[a>>2],H[a+4>>2],H[a+8>>2],H[a+12>>2]);ha=a+16|0;d=O(e)}else{d=O(1)}return d}function Ik(a,b,c,d,e){var f=0;f=ha-256|0;ha=f;if(!(e&73728|(c|0)<=(d|0))){d=c-d|0;c=d>>>0<256;lk(f,b&255,c?d:256);if(!c){while(1){Ek(a,f,256);d=d-256|0;if(d>>>0>255){continue}break}}Ek(a,f,d)}ha=f+256|0}function Gc(a,b){a=a|0;b=b|0;var c=0,d=0;d=H[a+16>>2];c=0;a:{if(H[a+20>>2]-d>>2<=(b|0)){break a}b=H[(b<<2)+d>>2];c=0;if((b|0)<0){break a}a=H[H[a+36>>2]+(b<<2)>>2];b=H[a+32>>2];c=b?b:H[a+8>>2]}return c|0}function Ec(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0;d=-1;e=H[a+16>>2];a:{if(H[a+20>>2]-e>>2<=(b|0)){break a}b=H[(b<<2)+e>>2];if((b|0)<0){break a}d=H[H[H[H[a+36>>2]+(b<<2)>>2]+16>>2]+(c<<2)>>2]}return d|0}function Dc(a,b){a=a|0;b=b|0;var c=0,d=0;d=H[a+16>>2];c=0;a:{if(H[a+20>>2]-d>>2<=(b|0)){break a}b=H[(b<<2)+d>>2];c=0;if((b|0)<0){break a}a=H[H[a+36>>2]+(b<<2)>>2];c=H[a+20>>2]-H[a+16>>2]>>2}return c|0}function Pj(a,b){a=a|0;b=b|0;var c=0,d=0,e=0;ck(a,b);a:{if((b|0)<0){break a}d=H[a+88>>2];c=H[a+84>>2];if(d-c>>2<=(b|0)){break a}b=c+(b<<2)|0;c=b+4|0;e=d-c|0;if((c|0)!=(d|0)){kk(b,c,e)}H[a+88>>2]=b+e}}function Pc(a){a=a|0;var b=0;H[a>>2]=2624;b=H[a+36>>2];H[a+36>>2]=0;if(b){la[H[H[b>>2]+4>>2]](b)}H[a>>2]=2392;b=H[a+32>>2];H[a+32>>2]=0;if(b){Lb(b)}b=H[a+16>>2];if(b){H[a+20>>2]=b;bl(b)}return a|0}function ze(a){var b=0,c=0;c=ha-16|0;ha=c;H[c+8>>2]=0;H[c+12>>2]=0;Ae(a,c+8|0);H[a+24>>2]=0;H[a+28>>2]=0;b=H[a+12>>2];H[a+16>>2]=b;if(b){bl(b)}b=H[a>>2];if(b){H[a+4>>2]=b;bl(b)}ha=c+16|0;return a}function cb(a){a=ab(a);H[a+64>>2]=0;H[a+68>>2]=0;H[a+88>>2]=0;H[a+72>>2]=0;H[a+76>>2]=0;F[a+77|0]=0;F[a+78|0]=0;F[a+79|0]=0;F[a+80|0]=0;F[a+81|0]=0;F[a+82|0]=0;F[a+83|0]=0;F[a+84|0]=0;return a}function Zh(a){H[a+52>>2]=0;H[a+4>>2]=0;H[a+8>>2]=0;H[a>>2]=12468;H[a+12>>2]=0;H[a+16>>2]=0;H[a+20>>2]=0;H[a+24>>2]=0;H[a+28>>2]=0;H[a+32>>2]=0;H[a+36>>2]=0;H[a+40>>2]=0;H[a+44>>2]=0;return a}function Qc(a){a=a|0;var b=0;H[a>>2]=2624;b=H[a+36>>2];H[a+36>>2]=0;if(b){la[H[H[b>>2]+4>>2]](b)}H[a>>2]=2392;b=H[a+32>>2];H[a+32>>2]=0;if(b){Lb(b)}b=H[a+16>>2];if(b){H[a+20>>2]=b;bl(b)}bl(a)}function rk(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0;e=ha-16|0;ha=e;a=ga(H[a+60>>2],b|0,c|0,d&255,e+8|0)|0;if(a){H[4837]=a;a=-1}else{a=0}ha=e+16|0;ka=a?-1:H[e+12>>2];return(a?-1:H[e+8>>2])|0}function ab(a){H[a+8>>2]=0;H[a+12>>2]=0;H[a>>2]=0;H[a+40>>2]=0;H[a+44>>2]=0;H[a+28>>2]=9;F[a+24|0]=1;H[a+56>>2]=-1;H[a+60>>2]=0;H[a+16>>2]=0;H[a+20>>2]=0;H[a+48>>2]=0;H[a+52>>2]=0;return a}function Bk(a){var b=0;b=H[a+72>>2];H[a+72>>2]=b-1|b;b=H[a>>2];if(b&8){H[a>>2]=b|32;return-1}H[a+4>>2]=0;H[a+8>>2]=0;b=H[a+44>>2];H[a+28>>2]=b;H[a+20>>2]=b;H[a+16>>2]=b+H[a+48>>2];return 0}function Xk(a,b,c,d,e,f,g,h,i){var j=0;j=ha-16|0;ha=j;Mk(j,b,c,d,e,f,g,h,i^-2147483648);d=H[j>>2];c=H[j+4>>2];b=H[j+12>>2];H[a+8>>2]=H[j+8>>2];H[a+12>>2]=b;H[a>>2]=d;H[a+4>>2]=c;ha=j+16|0}function ll(a,b){var c=0;if(b>>>0<=99){return jl(a,b)}if(b>>>0<=999){c=(b>>>0)/100|0;F[a|0]=c+48;a=a+1|0;b=J[(b-N(c,100)<<1)+18192>>1];F[a|0]=b;F[a+1|0]=b>>>8;return a+2|0}return kl(a,b)}function _i(a,b,c){a=a|0;b=b|0;c=c|0;a=0;a:{if(H[b+4>>2]|!b){break a}a=Wj(hl(36),c);H[a+24>>2]=0;H[a+28>>2]=0;H[a+32>>2]=0;c=H[b+4>>2];H[b+4>>2]=a;a=1;if(!c){break a}Fj(c)}return a|0}function sc(a,b,c){a=vb(a,c);H[a+36>>2]=0;H[a+40>>2]=0;H[a>>2]=2496;H[a+72>>2]=b;H[a+44>>2]=0;H[a+48>>2]=0;H[a+52>>2]=0;H[a+56>>2]=0;H[a+60>>2]=0;H[a+64>>2]=0;H[a+68>>2]=0;return a} -function ql(a,b,c){var d=0,e=0;d=ha-16|0;ha=d;a:{if(c>>>0<=10){F[a+11|0]=c;dl(a,b,c);F[d+15|0]=0;F[a+c|0]=I[d+15|0];break a}e=a;a=I[a+11|0];ml(e,10,c-10|0,a,0,a,c,b)}ha=d+16|0}function Kh(a){a=a|0;var b=0;H[a+8>>2]=10876;H[a>>2]=11984;b=H[a+56>>2];if(b){H[a+60>>2]=b;bl(b)}H[a+8>>2]=11128;b=H[a+44>>2];if(b){bl(b)}b=H[a+32>>2];if(b){bl(b)}return a|0}function Eh(a){a=a|0;var b=0;H[a+8>>2]=11856;H[a>>2]=11692;b=H[a+56>>2];if(b){H[a+60>>2]=b;bl(b)}H[a+8>>2]=11672;b=H[a+44>>2];if(b){bl(b)}b=H[a+32>>2];if(b){bl(b)}return a|0}function $k(a){var b=0,c=0;b=H[4811];c=a+3&-4;a=b+c|0;a:{if(a>>>0<=b>>>0?c:0){break a}if(a>>>0>ma()<<16>>>0){if(!(ea(a|0)|0)){break a}}H[4811]=a;return b}H[4837]=48;return-1}function Lh(a){a=a|0;var b=0;H[a+8>>2]=10876;H[a>>2]=11984;b=H[a+56>>2];if(b){H[a+60>>2]=b;bl(b)}H[a+8>>2]=11128;b=H[a+44>>2];if(b){bl(b)}b=H[a+32>>2];if(b){bl(b)}bl(a)}function Fh(a){a=a|0;var b=0;H[a+8>>2]=11856;H[a>>2]=11692;b=H[a+56>>2];if(b){H[a+60>>2]=b;bl(b)}H[a+8>>2]=11672;b=H[a+44>>2];if(b){bl(b)}b=H[a+32>>2];if(b){bl(b)}bl(a)}function Ii(a,b){if(b){Ii(a,H[b>>2]);Ii(a,H[b+4>>2]);a=H[b+28>>2];H[b+28>>2]=0;if(a){Ii(a+12|0,H[a+16>>2]);Ji(a,H[a+4>>2]);bl(a)}if(F[b+27|0]<0){bl(H[b+16>>2])}bl(b)}}function il(a,b){var c=0,d=0,e=0,f=0;H[a>>2]=18812;H[a>>2]=18924;c=sk(b);d=hl(c+13|0);H[d+8>>2]=0;H[d+4>>2]=c;H[d>>2]=c;e=a,f=jk(d+12|0,b,c+1|0),H[e+4>>2]=f;return a}function kl(a,b){var c=0,d=0;c=(b>>>0)/100|0;d=J[(c<<1)+18192>>1];F[a|0]=d;F[a+1|0]=d>>>8;a=a+2|0;b=J[(b-N(c,100)<<1)+18192>>1];F[a|0]=b;F[a+1|0]=b>>>8;return a+2|0}function Cb(a,b){a=a|0;b=b|0;var c=0;a:{if(!(la[H[H[a>>2]+40>>2]](a)|0)){break a}if(!(la[H[H[a>>2]+44>>2]](a,b)|0)){break a}c=la[H[H[a>>2]+48>>2]](a,b)|0}return c|0}function xg(a){a=a|0;var b=0;a:{b=H[a+64>>2];if(!b){break a}b=la[H[H[b>>2]+32>>2]](b)|0;if(!b){break a}H[a+60>>2]=((H[b+4>>2]-H[b>>2]>>2>>>0)/3|0)-H[b+40>>2]}}function xa(a,b){a=a|0;b=b|0;var c=0;b=H[b+88>>2];if(!(!b|H[b>>2]!=2)){c=a;a=H[b+8>>2];H[c+4>>2]=I[a|0]|I[a+1|0]<<8|(I[a+2|0]<<16|I[a+3|0]<<24);c=1}return c|0}function Pg(a){a=a|0;var b=0;H[a>>2]=10876;b=H[a+48>>2];if(b){H[a+52>>2]=b;bl(b)}H[a>>2]=11128;b=H[a+36>>2];if(b){bl(b)}b=H[a+24>>2];if(b){bl(b)}return a|0}function Dh(a){a=a|0;var b=0;H[a>>2]=11856;b=H[a+48>>2];if(b){H[a+52>>2]=b;bl(b)}H[a>>2]=11672;b=H[a+36>>2];if(b){bl(b)}b=H[a+24>>2];if(b){bl(b)}return a|0}function oi(a,b){var c=0;a:{c=a+4|0;a=dc(a,b);if((c|0)==(a|0)){break a}b=a+28|0;a=ik(F[a+39|0]<0?H[b>>2]:b);if((a|0)==-1){break a}return(a|0)!=0}return 0}function pi(a,b,c){var d=0;d=a+4|0;a=dc(a,b);a:{if((d|0)==(a|0)){break a}b=a+28|0;a=ik(F[a+39|0]<0?H[b>>2]:b);if((a|0)==-1){break a}c=(a|0)!=0}return c}function ph(a){a=a|0;var b=0;H[a>>2]=10876;b=H[a+48>>2];if(b){H[a+52>>2]=b;bl(b)}H[a>>2]=11128;b=H[a+36>>2];if(b){bl(b)}b=H[a+24>>2];if(b){bl(b)}bl(a)}function Jh(a){a=a|0;var b=0;H[a>>2]=11856;b=H[a+48>>2];if(b){H[a+52>>2]=b;bl(b)}H[a>>2]=11672;b=H[a+36>>2];if(b){bl(b)}b=H[a+24>>2];if(b){bl(b)}bl(a)}function vb(a,b){H[a+4>>2]=0;H[a+8>>2]=0;H[a>>2]=2188;H[a+12>>2]=0;H[a+16>>2]=0;H[a+20>>2]=0;H[a+24>>2]=0;H[a+28>>2]=0;H[a+32>>2]=0;wb(a,b);return a}function Cl(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;if(tl(a,H[b+8>>2],f)){zl(b,c,d,e);return}a=H[a+8>>2];la[H[H[a>>2]+20>>2]](a,b,c,d,e,f)}function pd(a){a=a|0;var b=0;a:{if(!H[a- -64>>2]|!H[a+68>>2]|(!H[a+44>>2]|!H[a+48>>2])){break a}if(!H[a+52>>2]){break a}b=H[a+56>>2]!=0}return b|0}function ce(a){a=a|0;var b=0;a:{if(!H[a+48>>2]|!H[a+52>>2]|(!H[a+28>>2]|!H[a+32>>2])){break a}if(!H[a+36>>2]){break a}b=H[a+40>>2]!=0}return b|0}function _j(a,b){var c=0;c=-1;a:{if((b|0)==-1|(b|0)>4){break a}b=N(b,12)+a|0;a=H[b+20>>2];if((H[b+24>>2]-a|0)<=0){break a}c=H[a>>2]}return c}function Di(){var a=0;a=Zj(hl(108));H[a+84>>2]=0;H[a+88>>2]=0;H[a>>2]=14892;H[a+92>>2]=0;H[a+96>>2]=0;H[a+100>>2]=0;H[a+104>>2]=0;return a|0}function $j(a){var b=0,c=0;b=H[a+20>>2];a:{if((H[a+24>>2]-b|0)<=0){break a}b=H[b>>2];if((b|0)==-1){break a}c=H[H[a+8>>2]+(b<<2)>>2]}return c}function Kk(a,b){a=a|0;b=b|0;var c=0,d=0,e=0;c=b;b=H[b>>2]+7&-8;H[c>>2]=b+16;d=a,e=Yk(H[b>>2],H[b+4>>2],H[b+8>>2],H[b+12>>2]),M[d>>3]=e}function Lj(a){a=a|0;var b=0;H[a>>2]=14892;b=H[a+96>>2];if(b){H[a+100>>2]=b;bl(b)}b=H[a+84>>2];if(b){H[a+88>>2]=b;bl(b)}return Mj(a)|0}function Be(a){var b=0;b=ha-16|0;ha=b;H[b+8>>2]=0;H[b+12>>2]=0;Ae(a,b+8|0);H[a+24>>2]=0;H[a+28>>2]=0;H[a+16>>2]=H[a+12>>2];ha=b+16|0}function Nj(a){a=a|0;var b=0;H[a>>2]=14892;b=H[a+96>>2];if(b){H[a+100>>2]=b;bl(b)}b=H[a+84>>2];if(b){H[a+88>>2]=b;bl(b)}bl(Mj(a))}function pc(a){a=a|0;var b=0;H[a>>2]=2392;b=H[a+32>>2];H[a+32>>2]=0;if(b){Lb(b)}b=H[a+16>>2];if(b){H[a+20>>2]=b;bl(b)}return a|0}function dd(a){a=a|0;var b=0;H[a>>2]=3760;b=H[a+76>>2];if(b){bl(b)}H[a>>2]=3456;b=H[a+32>>2];if(b){H[a+36>>2]=b;bl(b)}return a|0}function Ji(a,b){if(b){Ji(a,H[b>>2]);Ji(a,H[b+4>>2]);a=H[b+28>>2];if(a){H[b+32>>2]=a;bl(a)}if(F[b+27|0]<0){bl(H[b+16>>2])}bl(b)}}function Ad(a){a=a|0;var b=0;H[a>>2]=5312;b=H[a+76>>2];if(b){bl(b)}H[a>>2]=3456;b=H[a+32>>2];if(b){H[a+36>>2]=b;bl(b)}return a|0}function Ab(a){a=a|0;var b=0;H[a>>2]=2188;b=H[a+16>>2];if(b){H[a+20>>2]=b;bl(b)}b=H[a+4>>2];if(b){H[a+8>>2]=b;bl(b)}return a|0}function yl(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;if(tl(a,H[b+8>>2],0)){wl(b,c,d);return}a=H[a+8>>2];la[H[H[a>>2]+28>>2]](a,b,c,d)}function Gi(){var a=0,b=0;a=hl(24);H[a+4>>2]=0;H[a+8>>2]=0;b=a+16|0;H[b>>2]=0;H[b+4>>2]=0;H[a>>2]=a+4;H[a+12>>2]=b;return a|0}function qc(a){a=a|0;var b=0;H[a>>2]=2392;b=H[a+32>>2];H[a+32>>2]=0;if(b){Lb(b)}b=H[a+16>>2];if(b){H[a+20>>2]=b;bl(b)}bl(a)}function hl(a){var b=0;a=a?a:1;a:{while(1){b=al(a);if(b){break a}b=H[5009];if(b){la[b|0]();continue}break}da();X()}return b}function ed(a){a=a|0;var b=0;H[a>>2]=3760;b=H[a+76>>2];if(b){bl(b)}H[a>>2]=3456;b=H[a+32>>2];if(b){H[a+36>>2]=b;bl(b)}bl(a)}function Bd(a){a=a|0;var b=0;H[a>>2]=5312;b=H[a+76>>2];if(b){bl(b)}H[a>>2]=3456;b=H[a+32>>2];if(b){H[a+36>>2]=b;bl(b)}bl(a)}function Nc(a,b){if(b){Nc(a,H[b>>2]);Nc(a,H[b+4>>2]);if(F[b+39|0]<0){bl(H[b+28>>2])}if(F[b+27|0]<0){bl(H[b+16>>2])}bl(b)}}function Il(a){a=a|0;var b=0,c=0;H[a>>2]=18924;b=H[a+4>>2]-12|0;c=H[b+8>>2]-1|0;H[b+8>>2]=c;if((c|0)<0){bl(b)}return a|0}function Ra(a,b,c,d,e){var f=0;f=b-1|0;if(f>>>0<=29){H[a+4>>2]=b;Sa(a+8|0,c,(d<<2)+c|0);L[a+20>>2]=e}return f>>>0<30}function wk(a,b,c,d,e,f,g,h,i){H[a>>2]=b;H[a+4>>2]=c;H[a+8>>2]=d;H[a+12>>2]=e&65535|(i>>>16&32768|e>>>16&32767)<<16}function md(a){a=a|0;var b=0;H[a>>2]=3996;ze(a+112|0);H[a>>2]=3456;b=H[a+32>>2];if(b){H[a+36>>2]=b;bl(b)}return a|0}function jc(a,b,c){a=a|0;b=b|0;c=c|0;H[a+4>>2]=b;b=H[H[H[b+4>>2]+8>>2]+(c<<2)>>2];H[a+12>>2]=c;H[a+8>>2]=b;return 1}function _e(a,b){H[a>>2]=10256;Ee(a+4|0);H[a+52>>2]=0;H[a+48>>2]=b;H[a>>2]=10352;H[a+40>>2]=0;H[a+44>>2]=0;return a}function Ed(a){a=a|0;var b=0;H[a>>2]=5536;ze(a+112|0);H[a>>2]=3456;b=H[a+32>>2];if(b){H[a+36>>2]=b;bl(b)}return a|0}function $e(a,b){H[a>>2]=10256;Ee(a+4|0);H[a+52>>2]=b;H[a+48>>2]=b;H[a>>2]=10352;H[a+40>>2]=0;H[a+44>>2]=0;return a}function jl(a,b){if(b>>>0<=9){F[a|0]=b+48;return a+1|0}b=J[(b<<1)+18192>>1];F[a|0]=b;F[a+1|0]=b>>>8;return a+2|0}function gd(a){a=a|0;var b=0;if(!(!H[a+60>>2]|!H[a+44>>2]|(!H[a+48>>2]|!H[a+52>>2]))){b=H[a+56>>2]!=0}return b|0}function Yd(a){a=a|0;var b=0;if(!(!H[a+44>>2]|!H[a+28>>2]|(!H[a+32>>2]|!H[a+36>>2]))){b=H[a+40>>2]!=0}return b|0}function kj(a){a=a|0;if(a){H[a>>2]=10332;Nc(a+28|0,H[a+32>>2]);Me(a+16|0,H[a+20>>2]);Nc(a+4|0,H[a+8>>2]);bl(a)}}function nd(a){a=a|0;var b=0;H[a>>2]=3996;ze(a+112|0);H[a>>2]=3456;b=H[a+32>>2];if(b){H[a+36>>2]=b;bl(b)}bl(a)}function li(a,b){var c=0;c=a+4|0;a=dc(a,b);if((c|0)==(a|0)){return-1}b=a+28|0;return ik(F[a+39|0]<0?H[b>>2]:b)}function df(a,b){var c=0,d=0;if(!(!a|!b|(a|0)==(b|0))){c=+(b>>>0)/+(a>>>0);d=1-c;c=-(c*nk(c)+d*nk(d))}return c}function Fd(a){a=a|0;var b=0;H[a>>2]=5536;ze(a+112|0);H[a>>2]=3456;b=H[a+32>>2];if(b){H[a+36>>2]=b;bl(b)}bl(a)}function Te(a){a=a|0;H[a>>2]=10332;Nc(a+28|0,H[a+32>>2]);Me(a+16|0,H[a+20>>2]);Nc(a+4|0,H[a+8>>2]);return a|0}function Ke(a){a=a|0;H[a>>2]=10256;Nc(a+28|0,H[a+32>>2]);He(a+16|0,H[a+20>>2]);Nc(a+4|0,H[a+8>>2]);return a|0}function mi(a,b,c){var d=0;d=a+4|0;a=dc(a,b);if((d|0)!=(a|0)){b=a+28|0;c=ik(F[a+39|0]<0?H[b>>2]:b)}return c}function bj(){var a=0;a=hl(48);H[a>>2]=10332;Ee(a+4|0);H[a>>2]=10116;H[a+40>>2]=0;H[a+44>>2]=0;return a|0}function Ve(a){a=a|0;H[a>>2]=10256;Nc(a+28|0,H[a+32>>2]);He(a+16|0,H[a+20>>2]);Nc(a+4|0,H[a+8>>2]);bl(a)}function Ue(a){a=a|0;H[a>>2]=10332;Nc(a+28|0,H[a+32>>2]);Me(a+16|0,H[a+20>>2]);Nc(a+4|0,H[a+8>>2]);bl(a)}function qh(a){a=a|0;var b=0;H[a>>2]=11128;b=H[a+36>>2];if(b){bl(b)}b=H[a+24>>2];if(b){bl(b)}return a|0}function Bh(a){a=a|0;var b=0;H[a>>2]=11672;b=H[a+36>>2];if(b){bl(b)}b=H[a+24>>2];if(b){bl(b)}return a|0}function ak(a,b){la[H[H[a>>2]+8>>2]](a,H[a+12>>2]-H[a+8>>2]>>2,b);return(H[a+12>>2]-H[a+8>>2]>>2)-1|0}function Uc(a){a=a|0;var b=0;if(!(!H[a+52>>2]|(!H[a+44>>2]|!H[a+48>>2]))){b=H[a+56>>2]!=0}return b|0}function Od(a){a=a|0;var b=0;if(!(!H[a+36>>2]|(!H[a+28>>2]|!H[a+32>>2]))){b=H[a+40>>2]!=0}return b|0}function rh(a){a=a|0;var b=0;H[a>>2]=11128;b=H[a+36>>2];if(b){bl(b)}b=H[a+24>>2];if(b){bl(b)}bl(a)}function Ch(a){a=a|0;var b=0;H[a>>2]=11672;b=H[a+36>>2];if(b){bl(b)}b=H[a+24>>2];if(b){bl(b)}bl(a)}function qd(a,b){a=a|0;b=b|0;var c=0;if(!(H[b+56>>2]|I[b+24|0]!=3)){H[a- -64>>2]=b;c=1}return c|0}function hd(a,b){a=a|0;b=b|0;var c=0;if(!(H[b+56>>2]|I[b+24|0]!=3)){H[a+60>>2]=b;c=1}return c|0}function de(a,b){a=a|0;b=b|0;var c=0;if(!(H[b+56>>2]|I[b+24|0]!=3)){H[a+48>>2]=b;c=1}return c|0}function Zd(a,b){a=a|0;b=b|0;var c=0;if(!(H[b+56>>2]|I[b+24|0]!=3)){H[a+44>>2]=b;c=1}return c|0}function Dl(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;if(tl(a,H[b+8>>2],f)){zl(b,c,d,e)}}function el(a){var b=0;b=a;a=0;while(1){if((a|0)!=3){H[(a<<2)+b>>2]=0;a=a+1|0;continue}break}}function Rl(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;a=la[a|0](b,c,d,e)|0;fa(ka|0);return a|0}function _a(){var a=0;a=_(4)|0;H[a>>2]=18812;H[a>>2]=18772;H[a>>2]=18792;$(a|0,18904,14);X()}function uj(a){a=a|0;var b=0;if(a){b=H[a>>2];H[a>>2]=0;if(b){la[H[H[b>>2]+4>>2]](b)}bl(a)}}function Rc(a){a=a|0;var b=0;H[a>>2]=3456;b=H[a+32>>2];if(b){H[a+36>>2]=b;bl(b)}return a|0}function Wa(a){a=a|0;var b=0;H[a>>2]=2032;b=H[a+8>>2];if(b){H[a+12>>2]=b;bl(b)}return a|0}function xe(a){var b=0;H[a+12>>2]=0;H[a+16>>2]=0;b=a;a=H[a>>2];H[b+4>>2]=a;if(a){bl(a)}}function Vh(a){a=a|0;var b=0;b=a;a=H[a+56>>2];H[b+60>>2]=(H[a+100>>2]-H[a+96>>2]|0)/12}function Zi(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;return Cj(b,c,d,e,f,6)|0}function Yi(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;return Cj(b,c,d,e,f,5)|0}function Xi(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;return Ej(b,c,d,e,f,4)|0}function Wi(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;return Ej(b,c,d,e,f,3)|0}function Vi(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;return Dj(b,c,d,e,f,2)|0}function Ui(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;return Dj(b,c,d,e,f,1)|0}function Ti(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;return Cj(b,c,d,e,f,9)|0}function Sc(a){a=a|0;var b=0;H[a>>2]=3456;b=H[a+32>>2];if(b){H[a+36>>2]=b;bl(b)}bl(a)}function Xa(a){a=a|0;var b=0;H[a>>2]=2032;b=H[a+8>>2];if(b){H[a+12>>2]=b;bl(b)}bl(a)}function oj(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=O(f);Re(H[a>>2],b,c,d,e,f)}function Me(a,b){if(b){Me(a,H[b>>2]);Me(a,H[b+4>>2]);Nc(b+20|0,H[b+24>>2]);bl(b)}}function He(a,b){if(b){He(a,H[b>>2]);He(a,H[b+4>>2]);Nc(b+20|0,H[b+24>>2]);bl(b)}}function vg(a,b){a=a|0;b=b|0;var c=0;c=a;a=H[b+64>>2];la[H[H[a>>2]+28>>2]](c,a)}function xl(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;if(tl(a,H[b+8>>2],0)){wl(b,c,d)}}function ke(a){a=a|0;var b=0;H[a>>2]=8900;b=H[a+60>>2];if(b){bl(b)}return a|0}function ej(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=O(f);Re(a,b,c,d,e,f)}function Wd(a){a=a|0;var b=0;H[a>>2]=7264;b=H[a+60>>2];if(b){bl(b)}return a|0}function Vl(a){var b=0;while(1){if(a){a=a-1&a;b=b+1|0;continue}break}return b}function ug(a,b){a=a|0;b=b|0;a=H[a+64>>2];return la[H[H[a>>2]+24>>2]](a,b)|0}function tg(a,b){a=a|0;b=b|0;a=H[a+64>>2];return la[H[H[a>>2]+20>>2]](a,b)|0}function eh(a,b){a=a|0;b=b|0;return H[H[a+28>>2]+(b>>>3&536870908)>>2]>>>b&1}function Cg(a,b){a=a|0;b=b|0;a=H[a+64>>2];return la[H[H[a>>2]+16>>2]](a,b)|0}function Bg(a,b){a=a|0;b=b|0;a=H[a+64>>2];return la[H[H[a>>2]+12>>2]](a,b)|0}function ci(a,b){a=a|0;b=b|0;H[a>>2]=0;H[a+4>>2]=0;H[a+8>>2]=0;H[a+12>>2]=0}function Ni(a){a=a|0;var b=0;if(a){b=H[a>>2];if(b){H[a+4>>2]=b;bl(b)}bl(a)}}function Ki(){var a=0;a=hl(12);H[a+8>>2]=0;H[a>>2]=0;H[a+4>>2]=0;return a|0}function Wl(a){var b=0;b=a&31;a=0-a&31;return(-1>>>b&-2)<>>a}function lc(a,b,c){a=a|0;b=b|0;c=c|0;return la[H[H[a>>2]+44>>2]](a,b,c)|0}function le(a){a=a|0;var b=0;H[a>>2]=8900;b=H[a+60>>2];if(b){bl(b)}bl(a)}function Yc(){var a=0;a=il(_(8)|0,1313);H[a>>2]=19024;$(a|0,19056,1);X()}function Xd(a){a=a|0;var b=0;H[a>>2]=7264;b=H[a+60>>2];if(b){bl(b)}bl(a)}function xb(a,b,c){a=a|0;b=b|0;c=c|0;H[a+32>>2]=c;H[a+28>>2]=b;return 1}function ud(a,b){a=a|0;b=b|0;if(b>>>0<=1){H[a+28>>2]=b}return b>>>0<2|0}function Xh(a,b){a=a|0;b=b|0;F[b+84|0]=1;H[b+72>>2]=H[b+68>>2];return 1}function Ph(a){a=Zh(a);H[a+56>>2]=0;H[a+60>>2]=0;H[a>>2]=12164;return a}function Hi(a){a=a|0;if(a){Ii(a+12|0,H[a+16>>2]);Ji(a,H[a+4>>2]);bl(a)}}function El(a){a=a|0;if(!a){return 0}return(vl(a,18476,18620)|0)!=0|0}function Ag(a){a=a|0;a=H[a+64>>2];return la[H[H[a>>2]+32>>2]](a)|0}function kc(a,b){a=a|0;b=b|0;H[a+12>>2]=-1;H[a+8>>2]=b;return 1}function La(a){a=il(_(8)|0,a);H[a>>2]=18972;$(a|0,19004,1);X()}function wa(){ja=5262928;ia=20048;H[4879]=19404;H[4861]=42}function Ei(a){a=a|0;return(H[a+100>>2]-H[a+96>>2]|0)/12|0}function ne(a){a=a|0;H[a>>2]=9148;ze(a+96|0);return a|0}function ae(a){a=a|0;H[a>>2]=7524;ze(a+96|0);return a|0}function pj(a,b,c){a=a|0;b=b|0;c=c|0;Ne(H[a>>2],b,c)}function nj(a,b,c){a=a|0;b=b|0;c=c|0;Oe(H[a>>2],b,c)}function Zj(a){H[a>>2]=14964;lk(a+4|0,0,80);return a}function Xl(a){if(a){return 31-Q(a-1^a)|0}return 32} -function Uh(a){a=a|0;H[a+52>>2]=H[H[a+56>>2]+80>>2]}function Bi(a){a=a|0;return H[a+12>>2]-H[a+8>>2]>>2}function se(a,b){a=a|0;b=b|0;return Ua(a+40|0,b)|0}function oe(a){a=a|0;H[a>>2]=9148;ze(a+96|0);bl(a)}function fi(a){a=a|0;H[a+52>>2]=H[H[a+4>>2]+80>>2]}function be(a){a=a|0;H[a>>2]=7524;ze(a+96|0);bl(a)}function Li(a,b){a=a|0;b=b|0;return F[H[a>>2]+b|0]}function Kd(a,b){a=a|0;b=b|0;return Ca(a+40|0,b)|0}function Ci(a){a=a|0;if(a){la[H[H[a>>2]+4>>2]](a)}}function Ml(a){a=a|0;a=ha-a&-16;ha=a;return a|0}function Mi(a){a=a|0;return H[a+4>>2]-H[a>>2]|0}function fj(a,b,c){a=a|0;b=b|0;c=c|0;Ne(a,b,c)}function dj(a,b,c){a=a|0;b=b|0;c=c|0;Oe(a,b,c)}function Za(a,b){a=a|0;b=b|0;return F[b+24|0]}function Eb(a,b,c){a=a|0;b=b|0;c=c|0;return-1}function tj(a){a=a|0;return H[H[a>>2]+44>>2]}function sj(a){a=a|0;return H[H[a>>2]+40>>2]}function pk(a){a=a|0;return ba(H[a+60>>2])|0}function qj(a,b){a=a|0;b=b|0;Hj(H[a>>2],b)}function mj(a,b){a=a|0;b=b|0;Se(H[a>>2],b)}function Fi(a,b){a=a|0;b=b|0;H[a+80>>2]=b}function zi(a){a=a|0;return H[a+60>>2]}function yi(a){a=a|0;return H[a+48>>2]}function xi(a){a=a|0;return H[a+40>>2]}function vd(a){a=a|0;return H[a+28>>2]}function ui(a){a=a|0;return H[a+56>>2]}function ti(a){a=a|0;return H[a+80>>2]}function jj(a){a=a|0;return H[a+44>>2]}function dh(a){a=a|0;return H[a+12>>2]}function wi(a){a=a|0;return I[a+32|0]}function vi(a){a=a|0;return F[a+24|0]}function Vc(a,b){a=a|0;b=b|0;return-1}function Tc(a){a=a|0;return H[a+4>>2]}function Ja(a,b){a=a|0;b=b|0;return 2}function Ia(a,b){a=a|0;b=b|0;return 6}function Fb(a,b){a=a|0;b=b|0;return 1}function Db(a,b){a=a|0;b=b|0;return 0}function gj(a,b){a=a|0;b=b|0;Hj(a,b)}function cj(a,b){a=a|0;b=b|0;Se(a,b)}function dl(a,b,c){if(c){jk(a,b,c)}}function gf(a,b,c,d){ff(a,b,c,d,1)}function ef(a,b,c,d){ff(a,b,c,d,0)}function si(){return cb(hl(96))|0}function ri(){return ab(hl(64))|0}function qi(a){a=a|0;if(a){bl(a)}}function Nl(){ja=5262928;ia=20048}function Ai(){return Zj(hl(84))|0}function Jl(a){a=a|0;Il(a);bl(a)}function Hl(a){a=a|0;return 1472}function Gl(a){a=a|0;return 1622}function Fl(a){a=a|0;return 1364}function Fa(a){a=a|0;return a|0}function yd(a){a=a|0;bl(xd(a))}function oh(a){a=a|0;bl(nh(a))}function mh(a){a=a|0;bl(lh(a))}function hk(a){a=a|0;bl(Mj(a))}function cc(a){a=a|0;bl(bc(a))}function _c(a){a=a|0;bl(Zc(a))}function Cc(a){a=a|0;bl(Bc(a))}function rc(a){a=a|0;return 0}function od(a){a=a|0;return 6}function fd(a){a=a|0;return 5}function Ya(a){a=a|0;return 1}function Md(a){a=a|0;return 3}function Ha(a){a=a|0;return 2}function $c(a){a=a|0;return 4}function Ol(){return ha-ia|0}function Oi(){return hl(1)|0}function mk(){return 19348}function Qe(){La(1493);X()}function Ka(){La(1313);X()}function Ga(a){a=a|0;bl(a)}function Ql(){return ia|0}function Pl(){return ja|0}function Ll(a){a=a|0;ha=a}function Kl(){return ha|0}function Bb(a){a=a|0;X()}function zj(){return 3}function yj(){return 2}function xj(){return 1}function wj(){return 0}function vj(){return-1}function sl(){da();X()}function Aj(){return 4}function tk(a){a=a|0} +function mf(a,b,c,d,e){var f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,D=0,E=0,F=0,G=0,I=0,L=0;E=ia-48|0;ia=E;a:{b:{if((b|0)<0){break b}if(!b){l=1;break b}J[E+40>>2]=0;J[E+32>>2]=0;J[E+36>>2]=0;c:{d:{if(b>>>0<1073741824){g=b<<2;f=ll(g);J[E+36>>2]=f;J[E+32>>2]=f;j=g+f|0;r=(c|0)<=1?1:c;c=r-1|0;t=c&-4;p=c&3;o=r-2>>>0>2;G=f;g=f;e:{f:{g:{while(1){l=J[(q<<2)+a>>2];h:{if(r>>>0<2){break h}k=0;c=1;if(o){while(1){i=(c+q<<2)+a|0;F=J[i>>2];l=l>>>0>F>>>0?l:F;F=J[i+4>>2];l=l>>>0>F>>>0?l:F;F=J[i+8>>2];l=l>>>0>F>>>0?l:F;i=J[i+12>>2];l=i>>>0>>0?l:i;c=c+4|0;k=k+4|0;if((t|0)!=(k|0)){continue}break}}k=0;if(!p){break h}while(1){i=J[(c+q<<2)+a>>2];l=i>>>0>>0?l:i;c=c+1|0;k=k+1|0;if((p|0)!=(k|0)){continue}break}}i=l?(S(l)^31)+1|0:1;i:{if(g>>>0>>0){J[g>>2]=i;g=g+4|0;J[E+36>>2]=g;break i}k=g-G|0;g=k>>2;c=g+1|0;if(c>>>0>=1073741824){break g}j=j-G|0;F=j>>1;c=j>>>0>=2147483644?1073741823:c>>>0>>0?F:c;if(c){if(c>>>0>=1073741824){break f}f=ll(c<<2)}else{f=0}g=f+(g<<2)|0;J[g>>2]=i;g=g+4|0;if((k|0)>0){lk(f,G,k)}j=(c<<2)+f|0;J[E+36>>2]=g;if(G){fl(G)}G=f}n=l>>>0>n>>>0?l:n;q=q+r|0;if((q|0)<(b|0)){continue}break}J[E+40>>2]=j;J[E+32>>2]=f;f=0;J[E+24>>2]=0;J[E+16>>2]=0;J[E+20>>2]=0;j=(g|0)==(G|0);j:{if(j){c=0;break j}g=g-G|0;if((g|0)<0){break e}c=ll(g);J[E+16>>2]=c;J[E+24>>2]=(g&-4)+c;i=lk(c,G,g);J[E+20>>2]=i+g;f=g>>2;if(j){break j}g=f>>>0<=1?1:f;t=g&3;q=0;k:{if(g-1>>>0<3){l=0;break k}o=g&-4;l=0;k=0;while(1){j=u;p=l<<2;u=J[p+i>>2];g=j+u|0;j=g>>>0>>0?h+1|0:h;u=J[i+(p|4)>>2];h=u+g|0;g=j;g=h>>>0>>0?g+1|0:g;j=J[i+(p|8)>>2];h=j+h|0;g=h>>>0>>0?g+1|0:g;p=J[i+(p|12)>>2];h=p+h|0;u=h;h=h>>>0

>>0?g+1|0:g;l=l+4|0;k=k+4|0;if((o|0)!=(k|0)){continue}break}}if(!t){break j}while(1){g=h;p=J[i+(l<<2)>>2];j=p+u|0;u=j;h=j>>>0

>>0?g+1|0:g;l=l+1|0;q=q+1|0;if((t|0)!=(q|0)){continue}break}}k=ef(c,f,32,E);t=ma;o=J[E>>2];if(c){J[E+20>>2]=c;fl(c)}q=ef(a,b,n,E);F=ma;i=J[E>>2];s=(n-i|0)/64|0;if(d){c=ll(32);H[c+22|0]=0;g=K[1587]|K[1588]<<8|(K[1589]<<16|K[1590]<<24);f=K[1583]|K[1584]<<8|(K[1585]<<16|K[1586]<<24);H[c+14|0]=f;H[c+15|0]=f>>>8;H[c+16|0]=f>>>16;H[c+17|0]=f>>>24;H[c+18|0]=g;H[c+19|0]=g>>>8;H[c+20|0]=g>>>16;H[c+21|0]=g>>>24;g=K[1581]|K[1582]<<8|(K[1583]<<16|K[1584]<<24);f=K[1577]|K[1578]<<8|(K[1579]<<16|K[1580]<<24);H[c+8|0]=f;H[c+9|0]=f>>>8;H[c+10|0]=f>>>16;H[c+11|0]=f>>>24;H[c+12|0]=g;H[c+13|0]=g>>>8;H[c+14|0]=g>>>16;H[c+15|0]=g>>>24;g=K[1573]|K[1574]<<8|(K[1575]<<16|K[1576]<<24);f=K[1569]|K[1570]<<8|(K[1571]<<16|K[1572]<<24);H[c|0]=f;H[c+1|0]=f>>>8;H[c+2|0]=f>>>16;H[c+3|0]=f>>>24;H[c+4|0]=g;H[c+5|0]=g>>>8;H[c+6|0]=g>>>16;H[c+7|0]=g>>>24;l=J[d+4>>2];if(l){while(1){g=K[l+27|0];f=g<<24>>24<0;g=f?J[l+20>>2]:g;j=g>>>0<22;l:{m:{n:{o:{p:{q:{p=j?g:22;if(p){f=f?J[l+16>>2]:l+16|0;y=qk(c,f,p);if(y){break q}if(g>>>0<=22){break p}break l}if(g>>>0<=22){break o}break l}if((y|0)<0){break l}}g=qk(f,c,p);if(g){break n}}if(j){break m}break d}if((g|0)>=0){break d}}l=l+4|0}l=J[l>>2];if(l){continue}break}}fl(c)}if((S(n>>>0<=1?1:n)^30)>>>0<18){h=Zl(u,h,r,0);c=h+k|0;g=ma+t|0;g=c>>>0>>0?g+1|0:g;f=c;c=o<<3;h=c>>31;p=h<<1|c>>>31;h=c<<1;c=f+h|0;j=g+p|0;j=c>>>0>>0?j+1|0:j;h=c;c=i+s<<3;f=c>>31;u=c;g=i<<3;p=g;c=g+q|0;g=(g>>31)+F|0;g=c>>>0

>>0?g+1|0:g;p=c;c=u+c|0;f=g+f|0;f=c>>>0

>>0?f+1|0:f;c=(f|0)<=(j|0)&c>>>0<=h>>>0|(f|0)<(j|0)}else{c=0}break c}J[E+40>>2]=j;J[E+32>>2]=f;break a}J[E+32>>2]=f;$a();C()}break a}break a}fl(c);c=ll(32);J[E>>2]=c;J[E+4>>2]=22;J[E+8>>2]=-2147483616;h=K[1587]|K[1588]<<8|(K[1589]<<16|K[1590]<<24);g=K[1583]|K[1584]<<8|(K[1585]<<16|K[1586]<<24);H[c+14|0]=g;H[c+15|0]=g>>>8;H[c+16|0]=g>>>16;H[c+17|0]=g>>>24;H[c+18|0]=h;H[c+19|0]=h>>>8;H[c+20|0]=h>>>16;H[c+21|0]=h>>>24;h=K[1581]|K[1582]<<8|(K[1583]<<16|K[1584]<<24);g=K[1577]|K[1578]<<8|(K[1579]<<16|K[1580]<<24);H[c+8|0]=g;H[c+9|0]=g>>>8;H[c+10|0]=g>>>16;H[c+11|0]=g>>>24;H[c+12|0]=h;H[c+13|0]=h>>>8;H[c+14|0]=h>>>16;H[c+15|0]=h>>>24;h=K[1573]|K[1574]<<8|(K[1575]<<16|K[1576]<<24);g=K[1569]|K[1570]<<8|(K[1571]<<16|K[1572]<<24);H[c|0]=g;H[c+1|0]=g>>>8;H[c+2|0]=g>>>16;H[c+3|0]=g>>>24;H[c+4|0]=h;H[c+5|0]=h>>>8;H[c+6|0]=h>>>16;H[c+7|0]=h>>>24;H[c+22|0]=0;c=ni(d,E);if(H[E+11|0]>=0){break c}fl(J[E>>2])}H[E|0]=c;h=J[e+20>>2];if(!J[e+16>>2]&(h|0)<=0|(h|0)<0){Ea(e,J[e+4>>2],E,E+1|0)}l=0;r:{s:{switch(c|0){case 0:n=0;k=0;f=ia-336|0;ia=f;nk(f+80|0,0,256);d=J[E+36>>2];c=J[E+32>>2];t:{if((d|0)==(c|0)){break t}d=d-c>>2;d=d>>>0<=1?1:d;j=d&3;if(d-1>>>0>=3){G=d&-4;while(1){h=f+80|0;d=n<<2;i=h+(J[d+c>>2]<<3)|0;g=J[i+4>>2];p=J[i>>2]+1|0;g=p?g:g+1|0;J[i>>2]=p;J[i+4>>2]=g;g=h+(J[c+(d|4)>>2]<<3)|0;p=J[g+4>>2];i=J[g>>2]+1|0;p=i?p:p+1|0;J[g>>2]=i;J[g+4>>2]=p;g=h+(J[c+(d|8)>>2]<<3)|0;i=J[g+4>>2];p=J[g>>2]+1|0;i=p?i:i+1|0;J[g>>2]=p;J[g+4>>2]=i;d=h+(J[c+(d|12)>>2]<<3)|0;g=J[d+4>>2];h=J[d>>2]+1|0;g=h?g:g+1|0;J[d>>2]=h;J[d+4>>2]=g;n=n+4|0;k=k+4|0;if((G|0)!=(k|0)){continue}break}}if(!j){break t}k=0;while(1){d=(f+80|0)+(J[c+(n<<2)>>2]<<3)|0;p=J[d+4>>2];h=J[d>>2]+1|0;p=h?p:p+1|0;J[d>>2]=h;J[d+4>>2]=p;n=n+1|0;k=k+1|0;if((j|0)!=(k|0)){continue}break}}t=f+48|0;c=t;J[c>>2]=0;J[c+4>>2]=0;H[c+24|0]=0;J[c+16>>2]=0;J[c+20>>2]=0;J[c+8>>2]=0;J[c+12>>2]=0;J[f+8>>2]=0;J[f+12>>2]=0;J[f+16>>2]=0;J[f+20>>2]=0;J[f+24>>2]=0;J[f+28>>2]=0;J[f+32>>2]=0;J[f>>2]=0;J[f+4>>2]=0;J[f+40>>2]=0;J[f+44>>2]=0;nf(f,f+80|0,32,e);h=J[f+16>>2];c=J[f+20>>2];d=J[e+4>>2]-J[e>>2]|0;J[f+40>>2]=d;J[f+44>>2]=0;p=c<<1|h>>>31;c=(h<<1)+39|0;i=p;i=c>>>0<39?i+1|0:i;c=d+((i&7)<<29|c>>>3)|0;g=i>>>3|0;g=c>>>0>>0?g+1|0:g;c=c+8|0;ji(e,c);c=J[e>>2];J[f+28>>2]=0;J[f+32>>2]=16384;J[f+24>>2]=c+J[f+40>>2];c=b;ki(t,c<<5,c>>31<<5|c>>>27,0);b=c-r|0;if((b|0)>=0){j=(r|0)<=0;c=b;while(1){n=J[f+32>>2];l=J[E+32>>2];h=J[f>>2]+(J[l+((c|0)/(r|0)<<2)>>2]<<3)|0;d=J[h>>2];g=d<<10;if(n>>>0>=g>>>0){while(1){i=J[f+28>>2];J[f+28>>2]=i+1;H[i+J[f+24>>2]|0]=n;n=J[f+32>>2]>>>8|0;J[f+32>>2]=n;if(g>>>0<=n>>>0){continue}break}l=J[E+32>>2]}i=J[h+4>>2];h=(n>>>0)/(d>>>0)|0;J[f+32>>2]=i+((h<<12)+(n-P(d,h)|0)|0);i=b-c|0;d=(i|0)/(r|0)|0;u:{if(j){break u}u=J[t+16>>2];h=J[t+20>>2];if(!u&(h|0)<=0|(h|0)<0){break u}g=J[(d<<2)+l>>2];l=0;while(1){if(!(!u&(h|0)<=0|(h|0)<0|(g|0)<=0)){h=J[(i+l<<2)+a>>2];d=J[t+12>>2];G=J[d+4>>2];k=0;while(1){p=G>>>3|0;o=p+J[d>>2]|0;n=K[o|0];G=G&7;I=o,L=bm(G)&n,H[I|0]=L;p=p+J[d>>2]|0;H[p|0]=K[p|0]|(h>>>k&1)<>2]+1|0;J[d+4>>2]=G;k=k+1|0;if((g|0)!=(k|0)){continue}break}}l=l+1|0;if((r|0)==(l|0)){break u}u=J[t+16>>2];h=J[t+20>>2];continue}}c=c-r|0;if((c|0)>=0){continue}break}}of(f,e);li(t);a=J[e+20>>2];if(!J[e+16>>2]&(a|0)<=0|(a|0)<0){Ea(e,J[e+4>>2],J[t>>2],J[t+4>>2])}a=J[f>>2];if(a){J[f+4>>2]=a;fl(a)}a=J[t+12>>2];J[t+12>>2]=0;if(a){fl(a)}a=J[t>>2];if(a){J[t+4>>2]=a;fl(a)}ia=f+336|0;l=1;G=J[E+32>>2];break r;case 1:break s;default:break r}}k=0;F=ia-32|0;ia=F;l=1;v:{if((i|0)>0){c=S(i);if((c^30)>>>0>17){break v}l=32-c|0}w:{if(!d){break w}c=ll(48);H[c+33|0]=0;H[c+32|0]=K[1470];h=K[1466]|K[1467]<<8|(K[1468]<<16|K[1469]<<24);g=K[1462]|K[1463]<<8|(K[1464]<<16|K[1465]<<24);H[c+24|0]=g;H[c+25|0]=g>>>8;H[c+26|0]=g>>>16;H[c+27|0]=g>>>24;H[c+28|0]=h;H[c+29|0]=h>>>8;H[c+30|0]=h>>>16;H[c+31|0]=h>>>24;h=K[1458]|K[1459]<<8|(K[1460]<<16|K[1461]<<24);g=K[1454]|K[1455]<<8|(K[1456]<<16|K[1457]<<24);H[c+16|0]=g;H[c+17|0]=g>>>8;H[c+18|0]=g>>>16;H[c+19|0]=g>>>24;H[c+20|0]=h;H[c+21|0]=h>>>8;H[c+22|0]=h>>>16;H[c+23|0]=h>>>24;h=K[1450]|K[1451]<<8|(K[1452]<<16|K[1453]<<24);g=K[1446]|K[1447]<<8|(K[1448]<<16|K[1449]<<24);H[c+8|0]=g;H[c+9|0]=g>>>8;H[c+10|0]=g>>>16;H[c+11|0]=g>>>24;H[c+12|0]=h;H[c+13|0]=h>>>8;H[c+14|0]=h>>>16;H[c+15|0]=h>>>24;h=K[1442]|K[1443]<<8|(K[1444]<<16|K[1445]<<24);g=K[1438]|K[1439]<<8|(K[1440]<<16|K[1441]<<24);H[c|0]=g;H[c+1|0]=g>>>8;H[c+2|0]=g>>>16;H[c+3|0]=g>>>24;H[c+4|0]=h;H[c+5|0]=h>>>8;H[c+6|0]=h>>>16;H[c+7|0]=h>>>24;x:{k=J[d+4>>2];if(k){while(1){h=K[k+27|0];g=h<<24>>24<0;h=g?J[k+20>>2]:h;f=h>>>0<33;y:{z:{A:{B:{C:{D:{j=f?h:33;if(j){g=g?J[k+16>>2]:k+16|0;i=qk(c,g,j);if(i){break D}if(h>>>0<=33){break C}break y}if(h>>>0<=33){break B}break y}if((i|0)<0){break y}}h=qk(g,c,j);if(h){break A}}if(f){break z}break x}if((h|0)>=0){break x}}k=k+4|0}k=J[k>>2];if(k){continue}break}}fl(c);break w}fl(c);c=ll(48);J[F+16>>2]=c;J[F+20>>2]=33;J[F+24>>2]=-2147483600;H[c+32|0]=K[1470];h=K[1466]|K[1467]<<8|(K[1468]<<16|K[1469]<<24);g=K[1462]|K[1463]<<8|(K[1464]<<16|K[1465]<<24);H[c+24|0]=g;H[c+25|0]=g>>>8;H[c+26|0]=g>>>16;H[c+27|0]=g>>>24;H[c+28|0]=h;H[c+29|0]=h>>>8;H[c+30|0]=h>>>16;H[c+31|0]=h>>>24;h=K[1458]|K[1459]<<8|(K[1460]<<16|K[1461]<<24);g=K[1454]|K[1455]<<8|(K[1456]<<16|K[1457]<<24);H[c+16|0]=g;H[c+17|0]=g>>>8;H[c+18|0]=g>>>16;H[c+19|0]=g>>>24;H[c+20|0]=h;H[c+21|0]=h>>>8;H[c+22|0]=h>>>16;H[c+23|0]=h>>>24;h=K[1450]|K[1451]<<8|(K[1452]<<16|K[1453]<<24);g=K[1446]|K[1447]<<8|(K[1448]<<16|K[1449]<<24);H[c+8|0]=g;H[c+9|0]=g>>>8;H[c+10|0]=g>>>16;H[c+11|0]=g>>>24;H[c+12|0]=h;H[c+13|0]=h>>>8;H[c+14|0]=h>>>16;H[c+15|0]=h>>>24;h=K[1442]|K[1443]<<8|(K[1444]<<16|K[1445]<<24);g=K[1438]|K[1439]<<8|(K[1440]<<16|K[1441]<<24);H[c|0]=g;H[c+1|0]=g>>>8;H[c+2|0]=g>>>16;H[c+3|0]=g>>>24;H[c+4|0]=h;H[c+5|0]=h>>>8;H[c+6|0]=h>>>16;H[c+7|0]=h>>>24;H[c+33|0]=0;c=ni(d,F+16|0);if(H[F+27|0]<0){fl(J[F+16>>2])}if((c|0)<=3){l=l-2|0;break w}if(c>>>0<=5){l=l-1|0;break w}if(c>>>0>=10){l=l+2|0;break w}l=(c>>>0>7)+l|0}c=(l|0)<=1?1:l;c=(c|0)>=18?18:c;H[F+15|0]=c;d=J[e+20>>2];if(!J[e+16>>2]&(d|0)<=0|(d|0)<0){Ea(e,J[e+4>>2],F+15|0,F+16|0)}k=0;E:{switch(c-1|0){case 0:t=a;l=0;o=0;q=0;u=0;h=0;c=ia+-64|0;ia=c;J[c+56>>2]=0;J[c+48>>2]=0;J[c+52>>2]=0;F:{a=n+1|0;if(a){if(a>>>0>=536870912){break a}a=a<<3;l=ll(a);J[c+48>>2]=l;k=nk(l,0,(n<<3)+8|0)+a|0}G:{if((b|0)<=0){break G}a=0;if(b>>>0>=4){j=b&-4;while(1){d=a<<2;g=(J[d+t>>2]<<3)+l|0;p=J[g+4>>2];f=J[g>>2]+1|0;p=f?p:p+1|0;J[g>>2]=f;J[g+4>>2]=p;g=(J[t+(d|4)>>2]<<3)+l|0;i=J[g+4>>2];f=J[g>>2]+1|0;i=f?i:i+1|0;J[g>>2]=f;J[g+4>>2]=i;f=(J[t+(d|8)>>2]<<3)+l|0;g=J[f+4>>2];i=J[f>>2]+1|0;g=i?g:g+1|0;J[f>>2]=i;J[f+4>>2]=g;d=(J[t+(d|12)>>2]<<3)+l|0;p=J[d+4>>2];g=J[d>>2]+1|0;p=g?p:p+1|0;J[d>>2]=g;J[d+4>>2]=p;a=a+4|0;o=o+4|0;if((j|0)!=(o|0)){continue}break}}g=b&3;if(!g){break G}while(1){d=(J[t+(a<<2)>>2]<<3)+l|0;i=J[d+4>>2];f=J[d>>2]+1|0;i=f?i:i+1|0;J[d>>2]=f;J[d+4>>2]=i;a=a+1|0;q=q+1|0;if((g|0)!=(q|0)){continue}break}}J[c+8>>2]=0;J[c+12>>2]=0;J[c+16>>2]=0;J[c+20>>2]=0;J[c+24>>2]=0;J[c+28>>2]=0;J[c+32>>2]=0;J[c>>2]=0;J[c+4>>2]=0;J[c+40>>2]=0;J[c+44>>2]=0;r=e;e=0;o=0;d=0;q=0;s=ia-32|0;ia=s;a=k-l>>3;H:{if((a|0)<=0){break H}k=a&3;I:{if(a>>>0<4){a=0;break I}D=a&-4;a=0;while(1){p=a|1;f=(p<<3)+l|0;g=J[f+4>>2];n=J[f>>2];A=a|2;j=(A<<3)+l|0;f=J[j+4>>2];y=J[j>>2];x=a|3;i=(x<<3)+l|0;j=J[i+4>>2];z=J[i>>2];w=d;d=(a<<3)+l|0;B=J[d+4>>2];i=J[d>>2];d=j|z?x:f|y?A:g|n?p:!(B|i)?w:a;p=g;w=n;g=h+B|0;n=i+u|0;g=n>>>0>>0?g+1|0:g;i=n;h=w+i|0;p=g+p|0;p=h>>>0>>0?p+1|0:p;i=h;h=h+y|0;g=f+p|0;g=h>>>0>>0?g+1|0:g;i=h;h=h+z|0;f=g+j|0;u=h;h=h>>>0>>0?f+1|0:f;a=a+4|0;e=e+4|0;if((D|0)!=(e|0)){continue}break}}if(!k){break H}while(1){f=d;d=(a<<3)+l|0;g=J[d+4>>2];e=J[d>>2];d=!(g|e)?f:a;a=a+1|0;i=g+h|0;f=e+u|0;i=f>>>0>>0?i+1|0:i;u=f;h=i;o=o+1|0;if((k|0)!=(o|0)){continue}break}}g=d+1|0;J[c+12>>2]=g;e=J[c>>2];a=J[c+4>>2]-e>>3;J:{if(a>>>0>>0){lf(c,g-a|0);break J}if(a>>>0<=g>>>0){break J}J[c+4>>2]=e+(g<<3)}k=0;K:{L:{M:{N:{if((d|0)>=0){v=+(u>>>0)+ +(h>>>0)*4294967296;h=J[c>>2];a=0;while(1){f=a<<3;j=f+l|0;e=J[j+4>>2];j=J[j>>2];i=(e|j)!=0;f=h+f|0;m=(+(j>>>0)+ +(e>>>0)*4294967296)/v*4096+.5;O:{if(m<4294967296&m>=0){e=~~m>>>0;break O}e=0}e=e?e:i?1:e;J[f>>2]=e;k=e+k|0;e=(a|0)==(d|0);a=a+1|0;if(!e){continue}break}if((k|0)==4096){break N}}J[s+16>>2]=0;J[s+8>>2]=0;J[s+12>>2]=0;n=0;P:{if(!g){break P}if(g>>>0>=1073741824){break a}f=g<<2;q=ll(f);J[s+8>>2]=q;e=0;h=nk(q,0,f);a=0;if(d>>>0>=7){j=g&-8;while(1){J[h+(a<<2)>>2]=a;i=a|1;J[h+(i<<2)>>2]=i;i=a|2;J[h+(i<<2)>>2]=i;i=a|3;J[h+(i<<2)>>2]=i;i=a|4;J[h+(i<<2)>>2]=i;i=a|5;J[h+(i<<2)>>2]=i;i=a|6;J[h+(i<<2)>>2]=i;i=a|7;J[h+(i<<2)>>2]=i;a=a+8|0;n=n+8|0;if((j|0)!=(n|0)){continue}break}}n=h+f|0;f=g&7;if(!f){break P}while(1){J[h+(a<<2)>>2]=a;a=a+1|0;e=e+1|0;if((f|0)!=(e|0)){continue}break}}J[s+24>>2]=c;a=n-q|0;e=a>>2;Q:{R:{if((a|0)>=513){a=e;while(1){h=ll(a<<2);if(h){break R}h=a>>>0>1;a=a>>>1|0;if(h){continue}break}}xf(q,n,s+24|0,e,0,0);break Q}xf(q,n,s+24|0,e,h,a);fl(h)}if((k|0)<4096){a=J[c>>2]+(J[n-4>>2]<<3)|0;J[a>>2]=(J[a>>2]-k|0)+4096;a=0;break M}if((d|0)>0){j=J[c>>2];o=k-4096|0;while(1){m=4096/+(k|0);e=d;while(1){S:{T:{h=j+(J[(e<<2)+q>>2]<<3)|0;a=J[h>>2];if(a>>>0>=2){i=h;p=a;v=V(m*+(a>>>0));U:{if(R(v)<2147483648){f=~~v;break U}f=-2147483648}h=(a|0)==(f|0)?1:a-f|0;a=(a|0)>(h|0)?h:a-1|0;a=(a|0)<(o|0)?a:o;J[i>>2]=p-a;o=o-a|0;k=k-a|0;if((k|0)!=4096){break T}k=4096;break S}if((d|0)!=(e|0)){break S}a=1;break M}a=(e|0)>1;e=e-1|0;if(a){continue}}break}a=0;if((o|0)>0){continue}break}break M}a=0;if(k>>>0<4097){break M}while(1)continue}if((d|0)<0){break K}break L}e=J[s+8>>2];if(e){fl(e)}if((d|0)<0|a){break K}}e=J[c>>2];k=0;o=0;a=0;if(d>>>0>=3){f=g&-4;q=0;while(1){h=o<<3;j=h+e|0;J[j+4>>2]=a;i=e+(h|8)|0;a=J[j>>2]+a|0;J[i+4>>2]=a;j=e+(h|16)|0;a=a+J[i>>2]|0;J[j+4>>2]=a;h=e+(h|24)|0;a=a+J[j>>2]|0;J[h+4>>2]=a;a=a+J[h>>2]|0;o=o+4|0;q=q+4|0;if((f|0)!=(q|0)){continue}break}}h=g&3;if(h){while(1){f=e+(o<<3)|0;J[f+4>>2]=a;o=o+1|0;a=J[f>>2]+a|0;k=k+1|0;if((h|0)!=(k|0)){continue}break}}if((a|0)!=4096){break K}a=0;m=0;V:{if((d|0)<0){break V}h=J[c>>2];if(d){d=g&-2;e=0;while(1){f=a<<3;j=J[f+h>>2];if(j){f=f+l|0;m=(+M[f>>2]+ +M[f+4>>2]*4294967296)*pk(+(j>>>0)*.000244140625)+m}f=(a|1)<<3;j=J[f+h>>2];if(j){f=f+l|0;m=(+M[f>>2]+ +M[f+4>>2]*4294967296)*pk(+(j>>>0)*.000244140625)+m}a=a+2|0;e=e+2|0;if((d|0)!=(e|0)){continue}break}}if(!(g&1)){break V}a=a<<3;d=J[a+h>>2];if(!d){break V}a=a+l|0;m=(+M[a>>2]+ +M[a+4>>2]*4294967296)*pk(+(d>>>0)*.000244140625)+m}m=W(-m);W:{if(m<0x10000000000000000&m>=0){d=R(m)>=1?~~(m>0?T(V(m*2.3283064365386963e-10),4294967295):W((m-+(~~m>>>0>>>0))*2.3283064365386963e-10))>>>0:0;a=~~m>>>0;break W}d=0;a=0}J[c+16>>2]=a;J[c+20>>2]=d;qf(c,r)}ia=s+32|0;e=J[c+16>>2];a=J[c+20>>2];d=J[r+4>>2]-J[r>>2]|0;J[c+40>>2]=d;J[c+44>>2]=0;g=a<<1|e>>>31;a=(e<<1)+39|0;g=a>>>0<39?g+1|0:g;a=d+((g&7)<<29|a>>>3)|0;f=g>>>3|0;f=a>>>0>>0?f+1|0:f;a=a+8|0;ji(r,a);a=J[r>>2];J[c+28>>2]=0;J[c+32>>2]=16384;J[c+24>>2]=a+J[c+40>>2];if((b|0)>0){a=16384;while(1){d=b-1|0;h=J[c>>2]+(J[t+(d<<2)>>2]<<3)|0;e=J[h>>2];g=e<<10;if(g>>>0<=a>>>0){while(1){f=J[c+28>>2];J[c+28>>2]=f+1;H[f+J[c+24>>2]|0]=a;a=J[c+32>>2]>>>8|0;J[c+32>>2]=a;if(a>>>0>=g>>>0){continue}break}}f=J[h+4>>2];h=(a>>>0)/(e>>>0)|0;a=f+((h<<12)+(a-P(e,h)|0)|0)|0;J[c+32>>2]=a;e=(b|0)>1;b=d;if(e){continue}break}}of(c,r);a=J[c>>2];if(a){J[c+4>>2]=a;fl(a)}a=J[c+48>>2];if(a){fl(a)}ia=c- -64|0;break F}k=1;break v;case 1:t=a;l=0;o=0;q=0;u=0;h=0;c=ia+-64|0;ia=c;J[c+56>>2]=0;J[c+48>>2]=0;J[c+52>>2]=0;X:{a=n+1|0;if(a){if(a>>>0>=536870912){break a}a=a<<3;l=ll(a);J[c+48>>2]=l;k=nk(l,0,(n<<3)+8|0)+a|0}Y:{if((b|0)<=0){break Y}a=0;if(b>>>0>=4){i=b&-4;while(1){d=a<<2;f=(J[d+t>>2]<<3)+l|0;g=J[f+4>>2];j=J[f>>2]+1|0;g=j?g:g+1|0;J[f>>2]=j;J[f+4>>2]=g;f=(J[t+(d|4)>>2]<<3)+l|0;g=J[f+4>>2];j=J[f>>2]+1|0;g=j?g:g+1|0;J[f>>2]=j;J[f+4>>2]=g;g=(J[t+(d|8)>>2]<<3)+l|0;j=J[g+4>>2];f=J[g>>2]+1|0;j=f?j:j+1|0;J[g>>2]=f;J[g+4>>2]=j;d=(J[t+(d|12)>>2]<<3)+l|0;g=J[d+4>>2];f=J[d>>2]+1|0;g=f?g:g+1|0;J[d>>2]=f;J[d+4>>2]=g;a=a+4|0;o=o+4|0;if((i|0)!=(o|0)){continue}break}}f=b&3;if(!f){break Y}while(1){d=(J[t+(a<<2)>>2]<<3)+l|0;g=J[d+4>>2];j=J[d>>2]+1|0;g=j?g:g+1|0;J[d>>2]=j;J[d+4>>2]=g;a=a+1|0;q=q+1|0;if((f|0)!=(q|0)){continue}break}}J[c+8>>2]=0;J[c+12>>2]=0;J[c+16>>2]=0;J[c+20>>2]=0;J[c+24>>2]=0;J[c+28>>2]=0;J[c+32>>2]=0;J[c>>2]=0;J[c+4>>2]=0;J[c+40>>2]=0;J[c+44>>2]=0;r=e;e=0;o=0;d=0;q=0;s=ia-32|0;ia=s;a=k-l>>3;Z:{if((a|0)<=0){break Z}k=a&3;_:{if(a>>>0<4){a=0;break _}D=a&-4;a=0;while(1){p=a|1;f=(p<<3)+l|0;g=J[f+4>>2];n=J[f>>2];A=a|2;j=(A<<3)+l|0;f=J[j+4>>2];y=J[j>>2];x=a|3;i=(x<<3)+l|0;j=J[i+4>>2];z=J[i>>2];w=d;d=(a<<3)+l|0;B=J[d+4>>2];i=J[d>>2];d=j|z?x:f|y?A:g|n?p:!(B|i)?w:a;p=j;w=n;j=h+B|0;n=i+u|0;j=n>>>0>>0?j+1|0:j;i=n;h=w+i|0;g=g+j|0;g=h>>>0>>0?g+1|0:g;j=h;h=h+y|0;f=g+f|0;f=h>>>0>>0?f+1|0:f;g=h;h=g+z|0;p=f+p|0;u=h;h=g>>>0>h>>>0?p+1|0:p;a=a+4|0;e=e+4|0;if((D|0)!=(e|0)){continue}break}}if(!k){break Z}while(1){f=d;d=(a<<3)+l|0;g=J[d+4>>2];e=J[d>>2];d=!(g|e)?f:a;a=a+1|0;g=g+h|0;f=e+u|0;g=f>>>0>>0?g+1|0:g;u=f;h=g;o=o+1|0;if((k|0)!=(o|0)){continue}break}}g=d+1|0;J[c+12>>2]=g;e=J[c>>2];a=J[c+4>>2]-e>>3;$:{if(a>>>0>>0){lf(c,g-a|0);break $}if(a>>>0<=g>>>0){break $}J[c+4>>2]=e+(g<<3)}k=0;aa:{ba:{ca:{da:{if((d|0)>=0){v=+(u>>>0)+ +(h>>>0)*4294967296;h=J[c>>2];a=0;while(1){f=a<<3;j=f+l|0;e=J[j+4>>2];j=J[j>>2];i=(e|j)!=0;f=h+f|0;m=(+(j>>>0)+ +(e>>>0)*4294967296)/v*4096+.5;ea:{if(m<4294967296&m>=0){e=~~m>>>0;break ea}e=0}e=e?e:i?1:e;J[f>>2]=e;k=e+k|0;e=(a|0)==(d|0);a=a+1|0;if(!e){continue}break}if((k|0)==4096){break da}}J[s+16>>2]=0;J[s+8>>2]=0;J[s+12>>2]=0;n=0;fa:{if(!g){break fa}if(g>>>0>=1073741824){break a}f=g<<2;q=ll(f);J[s+8>>2]=q;e=0;h=nk(q,0,f);a=0;if(d>>>0>=7){j=g&-8;while(1){J[h+(a<<2)>>2]=a;i=a|1;J[h+(i<<2)>>2]=i;i=a|2;J[h+(i<<2)>>2]=i;i=a|3;J[h+(i<<2)>>2]=i;i=a|4;J[h+(i<<2)>>2]=i;i=a|5;J[h+(i<<2)>>2]=i;i=a|6;J[h+(i<<2)>>2]=i;i=a|7;J[h+(i<<2)>>2]=i;a=a+8|0;n=n+8|0;if((j|0)!=(n|0)){continue}break}}n=h+f|0;f=g&7;if(!f){break fa}while(1){J[h+(a<<2)>>2]=a;a=a+1|0;e=e+1|0;if((f|0)!=(e|0)){continue}break}}J[s+24>>2]=c;a=n-q|0;e=a>>2;ga:{ha:{if((a|0)>=513){a=e;while(1){h=ll(a<<2);if(h){break ha}h=a>>>0>1;a=a>>>1|0;if(h){continue}break}}Af(q,n,s+24|0,e,0,0);break ga}Af(q,n,s+24|0,e,h,a);fl(h)}if((k|0)<4096){a=J[c>>2]+(J[n-4>>2]<<3)|0;J[a>>2]=(J[a>>2]-k|0)+4096;a=0;break ca}if((d|0)>0){j=J[c>>2];o=k-4096|0;while(1){m=4096/+(k|0);e=d;while(1){ia:{ja:{h=j+(J[(e<<2)+q>>2]<<3)|0;a=J[h>>2];if(a>>>0>=2){i=h;p=a;v=V(m*+(a>>>0));ka:{if(R(v)<2147483648){f=~~v;break ka}f=-2147483648}h=(a|0)==(f|0)?1:a-f|0;a=(a|0)>(h|0)?h:a-1|0;a=(a|0)<(o|0)?a:o;J[i>>2]=p-a;o=o-a|0;k=k-a|0;if((k|0)!=4096){break ja}k=4096;break ia}if((d|0)!=(e|0)){break ia}a=1;break ca}a=(e|0)>1;e=e-1|0;if(a){continue}}break}a=0;if((o|0)>0){continue}break}break ca}a=0;if(k>>>0<4097){break ca}while(1)continue}if((d|0)<0){break aa}break ba}e=J[s+8>>2];if(e){fl(e)}if((d|0)<0|a){break aa}}e=J[c>>2];k=0;o=0;a=0;if(d>>>0>=3){f=g&-4;q=0;while(1){h=o<<3;j=h+e|0;J[j+4>>2]=a;i=e+(h|8)|0;a=J[j>>2]+a|0;J[i+4>>2]=a;j=e+(h|16)|0;a=a+J[i>>2]|0;J[j+4>>2]=a;h=e+(h|24)|0;a=a+J[j>>2]|0;J[h+4>>2]=a;a=a+J[h>>2]|0;o=o+4|0;q=q+4|0;if((f|0)!=(q|0)){continue}break}}h=g&3;if(h){while(1){f=e+(o<<3)|0;J[f+4>>2]=a;o=o+1|0;a=J[f>>2]+a|0;k=k+1|0;if((h|0)!=(k|0)){continue}break}}if((a|0)!=4096){break aa}a=0;m=0;la:{if((d|0)<0){break la}h=J[c>>2];if(d){d=g&-2;e=0;while(1){f=a<<3;j=J[f+h>>2];if(j){f=f+l|0;m=(+M[f>>2]+ +M[f+4>>2]*4294967296)*pk(+(j>>>0)*.000244140625)+m}f=(a|1)<<3;j=J[f+h>>2];if(j){f=f+l|0;m=(+M[f>>2]+ +M[f+4>>2]*4294967296)*pk(+(j>>>0)*.000244140625)+m}a=a+2|0;e=e+2|0;if((d|0)!=(e|0)){continue}break}}if(!(g&1)){break la}a=a<<3;d=J[a+h>>2];if(!d){break la}a=a+l|0;m=(+M[a>>2]+ +M[a+4>>2]*4294967296)*pk(+(d>>>0)*.000244140625)+m}m=W(-m);ma:{if(m<0x10000000000000000&m>=0){d=R(m)>=1?~~(m>0?T(V(m*2.3283064365386963e-10),4294967295):W((m-+(~~m>>>0>>>0))*2.3283064365386963e-10))>>>0:0;a=~~m>>>0;break ma}d=0;a=0}J[c+16>>2]=a;J[c+20>>2]=d;qf(c,r)}ia=s+32|0;e=J[c+16>>2];a=J[c+20>>2];d=J[r+4>>2]-J[r>>2]|0;J[c+40>>2]=d;J[c+44>>2]=0;f=a<<1|e>>>31;a=(e<<1)+39|0;j=a>>>0<39?f+1|0:f;a=d+((j&7)<<29|a>>>3)|0;p=j>>>3|0;p=a>>>0>>0?p+1|0:p;a=a+8|0;ji(r,a);a=J[r>>2];J[c+28>>2]=0;J[c+32>>2]=16384;J[c+24>>2]=a+J[c+40>>2];if((b|0)>0){a=16384;while(1){d=b-1|0;h=J[c>>2]+(J[t+(d<<2)>>2]<<3)|0;e=J[h>>2];g=e<<10;if(g>>>0<=a>>>0){while(1){f=J[c+28>>2];J[c+28>>2]=f+1;H[f+J[c+24>>2]|0]=a;a=J[c+32>>2]>>>8|0;J[c+32>>2]=a;if(a>>>0>=g>>>0){continue}break}}f=J[h+4>>2];h=(a>>>0)/(e>>>0)|0;a=f+((h<<12)+(a-P(e,h)|0)|0)|0;J[c+32>>2]=a;e=(b|0)>1;b=d;if(e){continue}break}}of(c,r);a=J[c>>2];if(a){J[c+4>>2]=a;fl(a)}a=J[c+48>>2];if(a){fl(a)}ia=c- -64|0;break X}k=1;break v;case 2:t=a;l=0;o=0;q=0;u=0;h=0;c=ia+-64|0;ia=c;J[c+56>>2]=0;J[c+48>>2]=0;J[c+52>>2]=0;na:{a=n+1|0;if(a){if(a>>>0>=536870912){break a}a=a<<3;l=ll(a);J[c+48>>2]=l;k=nk(l,0,(n<<3)+8|0)+a|0}oa:{if((b|0)<=0){break oa}a=0;if(b>>>0>=4){p=b&-4;while(1){d=a<<2;g=(J[d+t>>2]<<3)+l|0;f=J[g+4>>2];j=J[g>>2]+1|0;f=j?f:f+1|0;J[g>>2]=j;J[g+4>>2]=f;g=(J[t+(d|4)>>2]<<3)+l|0;j=J[g+4>>2];f=J[g>>2]+1|0;j=f?j:j+1|0;J[g>>2]=f;J[g+4>>2]=j;g=(J[t+(d|8)>>2]<<3)+l|0;i=J[g+4>>2];f=J[g>>2]+1|0;i=f?i:i+1|0;J[g>>2]=f;J[g+4>>2]=i;d=(J[t+(d|12)>>2]<<3)+l|0;f=J[d+4>>2];g=J[d>>2]+1|0;f=g?f:f+1|0;J[d>>2]=g;J[d+4>>2]=f;a=a+4|0;o=o+4|0;if((p|0)!=(o|0)){continue}break}}g=b&3;if(!g){break oa}while(1){d=(J[t+(a<<2)>>2]<<3)+l|0;j=J[d+4>>2];f=J[d>>2]+1|0;j=f?j:j+1|0;J[d>>2]=f;J[d+4>>2]=j;a=a+1|0;q=q+1|0;if((g|0)!=(q|0)){continue}break}}J[c+8>>2]=0;J[c+12>>2]=0;J[c+16>>2]=0;J[c+20>>2]=0;J[c+24>>2]=0;J[c+28>>2]=0;J[c+32>>2]=0;J[c>>2]=0;J[c+4>>2]=0;J[c+40>>2]=0;J[c+44>>2]=0;r=e;e=0;o=0;d=0;q=0;s=ia-32|0;ia=s;a=k-l>>3;pa:{if((a|0)<=0){break pa}k=a&3;qa:{if(a>>>0<4){a=0;break qa}D=a&-4;a=0;while(1){p=a|1;f=(p<<3)+l|0;g=J[f+4>>2];n=J[f>>2];A=a|2;j=(A<<3)+l|0;f=J[j+4>>2];y=J[j>>2];x=a|3;i=(x<<3)+l|0;j=J[i+4>>2];z=J[i>>2];w=d;d=(a<<3)+l|0;B=J[d+4>>2];i=J[d>>2];d=j|z?x:f|y?A:g|n?p:!(B|i)?w:a;p=f;w=n;f=i;n=f+u|0;i=h+B|0;i=f>>>0>n>>>0?i+1|0:i;h=w+n|0;f=g+i|0;f=h>>>0>>0?f+1|0:f;g=h;h=g+y|0;p=f+p|0;p=g>>>0>h>>>0?p+1|0:p;f=h;h=h+z|0;g=j+p|0;u=h;h=h>>>0>>0?g+1|0:g;a=a+4|0;e=e+4|0;if((D|0)!=(e|0)){continue}break}}if(!k){break pa}while(1){f=d;d=(a<<3)+l|0;g=J[d+4>>2];e=J[d>>2];d=!(g|e)?f:a;a=a+1|0;j=g+h|0;f=e+u|0;j=f>>>0>>0?j+1|0:j;u=f;h=j;o=o+1|0;if((k|0)!=(o|0)){continue}break}}g=d+1|0;J[c+12>>2]=g;e=J[c>>2];a=J[c+4>>2]-e>>3;ra:{if(a>>>0>>0){lf(c,g-a|0);break ra}if(a>>>0<=g>>>0){break ra}J[c+4>>2]=e+(g<<3)}k=0;sa:{ta:{ua:{va:{if((d|0)>=0){v=+(u>>>0)+ +(h>>>0)*4294967296;h=J[c>>2];a=0;while(1){f=a<<3;j=f+l|0;e=J[j+4>>2];j=J[j>>2];i=(e|j)!=0;f=h+f|0;m=(+(j>>>0)+ +(e>>>0)*4294967296)/v*4096+.5;wa:{if(m<4294967296&m>=0){e=~~m>>>0;break wa}e=0}e=e?e:i?1:e;J[f>>2]=e;k=e+k|0;e=(a|0)==(d|0);a=a+1|0;if(!e){continue}break}if((k|0)==4096){break va}}J[s+16>>2]=0;J[s+8>>2]=0;J[s+12>>2]=0;n=0;xa:{if(!g){break xa}if(g>>>0>=1073741824){break a}f=g<<2;q=ll(f);J[s+8>>2]=q;e=0;h=nk(q,0,f);a=0;if(d>>>0>=7){j=g&-8;while(1){J[h+(a<<2)>>2]=a;i=a|1;J[h+(i<<2)>>2]=i;i=a|2;J[h+(i<<2)>>2]=i;i=a|3;J[h+(i<<2)>>2]=i;i=a|4;J[h+(i<<2)>>2]=i;i=a|5;J[h+(i<<2)>>2]=i;i=a|6;J[h+(i<<2)>>2]=i;i=a|7;J[h+(i<<2)>>2]=i;a=a+8|0;n=n+8|0;if((j|0)!=(n|0)){continue}break}}n=h+f|0;f=g&7;if(!f){break xa}while(1){J[h+(a<<2)>>2]=a;a=a+1|0;e=e+1|0;if((f|0)!=(e|0)){continue}break}}J[s+24>>2]=c;a=n-q|0;e=a>>2;ya:{za:{if((a|0)>=513){a=e;while(1){h=ll(a<<2);if(h){break za}h=a>>>0>1;a=a>>>1|0;if(h){continue}break}}Df(q,n,s+24|0,e,0,0);break ya}Df(q,n,s+24|0,e,h,a);fl(h)}if((k|0)<4096){a=J[c>>2]+(J[n-4>>2]<<3)|0;J[a>>2]=(J[a>>2]-k|0)+4096;a=0;break ua}if((d|0)>0){j=J[c>>2];o=k-4096|0;while(1){m=4096/+(k|0);e=d;while(1){Aa:{Ba:{h=j+(J[(e<<2)+q>>2]<<3)|0;a=J[h>>2];if(a>>>0>=2){i=h;p=a;v=V(m*+(a>>>0));Ca:{if(R(v)<2147483648){f=~~v;break Ca}f=-2147483648}h=(a|0)==(f|0)?1:a-f|0;a=(a|0)>(h|0)?h:a-1|0;a=(a|0)<(o|0)?a:o;J[i>>2]=p-a;o=o-a|0;k=k-a|0;if((k|0)!=4096){break Ba}k=4096;break Aa}if((d|0)!=(e|0)){break Aa}a=1;break ua}a=(e|0)>1;e=e-1|0;if(a){continue}}break}a=0;if((o|0)>0){continue}break}break ua}a=0;if(k>>>0<4097){break ua}while(1)continue}if((d|0)<0){break sa}break ta}e=J[s+8>>2];if(e){fl(e)}if((d|0)<0|a){break sa}}e=J[c>>2];k=0;o=0;a=0;if(d>>>0>=3){f=g&-4;q=0;while(1){h=o<<3;j=h+e|0;J[j+4>>2]=a;i=e+(h|8)|0;a=J[j>>2]+a|0;J[i+4>>2]=a;j=e+(h|16)|0;a=a+J[i>>2]|0;J[j+4>>2]=a;h=e+(h|24)|0;a=a+J[j>>2]|0;J[h+4>>2]=a;a=a+J[h>>2]|0;o=o+4|0;q=q+4|0;if((f|0)!=(q|0)){continue}break}}h=g&3;if(h){while(1){f=e+(o<<3)|0;J[f+4>>2]=a;o=o+1|0;a=J[f>>2]+a|0;k=k+1|0;if((h|0)!=(k|0)){continue}break}}if((a|0)!=4096){break sa}a=0;m=0;Da:{if((d|0)<0){break Da}h=J[c>>2];if(d){d=g&-2;e=0;while(1){f=a<<3;j=J[f+h>>2];if(j){f=f+l|0;m=(+M[f>>2]+ +M[f+4>>2]*4294967296)*pk(+(j>>>0)*.000244140625)+m}f=(a|1)<<3;j=J[f+h>>2];if(j){f=f+l|0;m=(+M[f>>2]+ +M[f+4>>2]*4294967296)*pk(+(j>>>0)*.000244140625)+m}a=a+2|0;e=e+2|0;if((d|0)!=(e|0)){continue}break}}if(!(g&1)){break Da}a=a<<3;d=J[a+h>>2];if(!d){break Da}a=a+l|0;m=(+M[a>>2]+ +M[a+4>>2]*4294967296)*pk(+(d>>>0)*.000244140625)+m}m=W(-m);Ea:{if(m<0x10000000000000000&m>=0){d=R(m)>=1?~~(m>0?T(V(m*2.3283064365386963e-10),4294967295):W((m-+(~~m>>>0>>>0))*2.3283064365386963e-10))>>>0:0;a=~~m>>>0;break Ea}d=0;a=0}J[c+16>>2]=a;J[c+20>>2]=d;qf(c,r)}ia=s+32|0;e=J[c+16>>2];a=J[c+20>>2];d=J[r+4>>2]-J[r>>2]|0;J[c+40>>2]=d;J[c+44>>2]=0;p=a<<1|e>>>31;a=(e<<1)+39|0;i=p;i=a>>>0<39?i+1|0:i;a=d+((i&7)<<29|a>>>3)|0;g=i>>>3|0;g=a>>>0>>0?g+1|0:g;a=a+8|0;ji(r,a);a=J[r>>2];J[c+28>>2]=0;J[c+32>>2]=16384;J[c+24>>2]=a+J[c+40>>2];if((b|0)>0){a=16384;while(1){d=b-1|0;h=J[c>>2]+(J[t+(d<<2)>>2]<<3)|0;e=J[h>>2];g=e<<10;if(g>>>0<=a>>>0){while(1){f=J[c+28>>2];J[c+28>>2]=f+1;H[f+J[c+24>>2]|0]=a;a=J[c+32>>2]>>>8|0;J[c+32>>2]=a;if(a>>>0>=g>>>0){continue}break}}f=J[h+4>>2];h=(a>>>0)/(e>>>0)|0;a=f+((h<<12)+(a-P(e,h)|0)|0)|0;J[c+32>>2]=a;e=(b|0)>1;b=d;if(e){continue}break}}of(c,r);a=J[c>>2];if(a){J[c+4>>2]=a;fl(a)}a=J[c+48>>2];if(a){fl(a)}ia=c- -64|0;break na}k=1;break v;case 3:t=a;l=0;o=0;q=0;u=0;h=0;c=ia+-64|0;ia=c;J[c+56>>2]=0;J[c+48>>2]=0;J[c+52>>2]=0;Fa:{a=n+1|0;if(a){if(a>>>0>=536870912){break a}a=a<<3;l=ll(a);J[c+48>>2]=l;k=nk(l,0,(n<<3)+8|0)+a|0}Ga:{if((b|0)<=0){break Ga}a=0;if(b>>>0>=4){j=b&-4;while(1){d=a<<2;g=(J[d+t>>2]<<3)+l|0;p=J[g+4>>2];f=J[g>>2]+1|0;p=f?p:p+1|0;J[g>>2]=f;J[g+4>>2]=p;g=(J[t+(d|4)>>2]<<3)+l|0;i=J[g+4>>2];f=J[g>>2]+1|0;i=f?i:i+1|0;J[g>>2]=f;J[g+4>>2]=i;f=(J[t+(d|8)>>2]<<3)+l|0;g=J[f+4>>2];i=J[f>>2]+1|0;g=i?g:g+1|0;J[f>>2]=i;J[f+4>>2]=g;d=(J[t+(d|12)>>2]<<3)+l|0;p=J[d+4>>2];g=J[d>>2]+1|0;p=g?p:p+1|0;J[d>>2]=g;J[d+4>>2]=p;a=a+4|0;o=o+4|0;if((j|0)!=(o|0)){continue}break}}g=b&3;if(!g){break Ga}while(1){d=(J[t+(a<<2)>>2]<<3)+l|0;i=J[d+4>>2];f=J[d>>2]+1|0;i=f?i:i+1|0;J[d>>2]=f;J[d+4>>2]=i;a=a+1|0;q=q+1|0;if((g|0)!=(q|0)){continue}break}}J[c+8>>2]=0;J[c+12>>2]=0;J[c+16>>2]=0;J[c+20>>2]=0;J[c+24>>2]=0;J[c+28>>2]=0;J[c+32>>2]=0;J[c>>2]=0;J[c+4>>2]=0;J[c+40>>2]=0;J[c+44>>2]=0;r=e;e=0;o=0;d=0;q=0;s=ia-32|0;ia=s;a=k-l>>3;Ha:{if((a|0)<=0){break Ha}k=a&3;Ia:{if(a>>>0<4){a=0;break Ia}D=a&-4;a=0;while(1){p=a|1;f=(p<<3)+l|0;g=J[f+4>>2];n=J[f>>2];A=a|2;j=(A<<3)+l|0;f=J[j+4>>2];y=J[j>>2];x=a|3;i=(x<<3)+l|0;j=J[i+4>>2];z=J[i>>2];w=d;d=(a<<3)+l|0;B=J[d+4>>2];i=J[d>>2];d=j|z?x:f|y?A:g|n?p:!(B|i)?w:a;p=g;w=n;g=h+B|0;n=i+u|0;g=n>>>0>>0?g+1|0:g;i=n;h=w+i|0;p=g+p|0;p=h>>>0>>0?p+1|0:p;i=h;h=h+y|0;g=f+p|0;g=h>>>0>>0?g+1|0:g;i=h;h=h+z|0;f=g+j|0;u=h;h=h>>>0>>0?f+1|0:f;a=a+4|0;e=e+4|0;if((D|0)!=(e|0)){continue}break}}if(!k){break Ha}while(1){f=d;d=(a<<3)+l|0;g=J[d+4>>2];e=J[d>>2];d=!(g|e)?f:a;a=a+1|0;i=g+h|0;f=e+u|0;i=f>>>0>>0?i+1|0:i;u=f;h=i;o=o+1|0;if((k|0)!=(o|0)){continue}break}}g=d+1|0;J[c+12>>2]=g;e=J[c>>2];a=J[c+4>>2]-e>>3;Ja:{if(a>>>0>>0){lf(c,g-a|0);break Ja}if(a>>>0<=g>>>0){break Ja}J[c+4>>2]=e+(g<<3)}k=0;Ka:{La:{Ma:{Na:{if((d|0)>=0){v=+(u>>>0)+ +(h>>>0)*4294967296;h=J[c>>2];a=0;while(1){f=a<<3;j=f+l|0;e=J[j+4>>2];j=J[j>>2];i=(e|j)!=0;f=h+f|0;m=(+(j>>>0)+ +(e>>>0)*4294967296)/v*4096+.5;Oa:{if(m<4294967296&m>=0){e=~~m>>>0;break Oa}e=0}e=e?e:i?1:e;J[f>>2]=e;k=e+k|0;e=(a|0)==(d|0);a=a+1|0;if(!e){continue}break}if((k|0)==4096){break Na}}J[s+16>>2]=0;J[s+8>>2]=0;J[s+12>>2]=0;n=0;Pa:{if(!g){break Pa}if(g>>>0>=1073741824){break a}f=g<<2;q=ll(f);J[s+8>>2]=q;e=0;h=nk(q,0,f);a=0;if(d>>>0>=7){j=g&-8;while(1){J[h+(a<<2)>>2]=a;i=a|1;J[h+(i<<2)>>2]=i;i=a|2;J[h+(i<<2)>>2]=i;i=a|3;J[h+(i<<2)>>2]=i;i=a|4;J[h+(i<<2)>>2]=i;i=a|5;J[h+(i<<2)>>2]=i;i=a|6;J[h+(i<<2)>>2]=i;i=a|7;J[h+(i<<2)>>2]=i;a=a+8|0;n=n+8|0;if((j|0)!=(n|0)){continue}break}}n=h+f|0;f=g&7;if(!f){break Pa}while(1){J[h+(a<<2)>>2]=a;a=a+1|0;e=e+1|0;if((f|0)!=(e|0)){continue}break}}J[s+24>>2]=c;a=n-q|0;e=a>>2;Qa:{Ra:{if((a|0)>=513){a=e;while(1){h=ll(a<<2);if(h){break Ra}h=a>>>0>1;a=a>>>1|0;if(h){continue}break}}Gf(q,n,s+24|0,e,0,0);break Qa}Gf(q,n,s+24|0,e,h,a);fl(h)}if((k|0)<4096){a=J[c>>2]+(J[n-4>>2]<<3)|0;J[a>>2]=(J[a>>2]-k|0)+4096;a=0;break Ma}if((d|0)>0){j=J[c>>2];o=k-4096|0;while(1){m=4096/+(k|0);e=d;while(1){Sa:{Ta:{h=j+(J[(e<<2)+q>>2]<<3)|0;a=J[h>>2];if(a>>>0>=2){i=h;p=a;v=V(m*+(a>>>0));Ua:{if(R(v)<2147483648){f=~~v;break Ua}f=-2147483648}h=(a|0)==(f|0)?1:a-f|0;a=(a|0)>(h|0)?h:a-1|0;a=(a|0)<(o|0)?a:o;J[i>>2]=p-a;o=o-a|0;k=k-a|0;if((k|0)!=4096){break Ta}k=4096;break Sa}if((d|0)!=(e|0)){break Sa}a=1;break Ma}a=(e|0)>1;e=e-1|0;if(a){continue}}break}a=0;if((o|0)>0){continue}break}break Ma}a=0;if(k>>>0<4097){break Ma}while(1)continue}if((d|0)<0){break Ka}break La}e=J[s+8>>2];if(e){fl(e)}if((d|0)<0|a){break Ka}}e=J[c>>2];k=0;o=0;a=0;if(d>>>0>=3){f=g&-4;q=0;while(1){h=o<<3;j=h+e|0;J[j+4>>2]=a;i=e+(h|8)|0;a=J[j>>2]+a|0;J[i+4>>2]=a;j=e+(h|16)|0;a=a+J[i>>2]|0;J[j+4>>2]=a;h=e+(h|24)|0;a=a+J[j>>2]|0;J[h+4>>2]=a;a=a+J[h>>2]|0;o=o+4|0;q=q+4|0;if((f|0)!=(q|0)){continue}break}}h=g&3;if(h){while(1){f=e+(o<<3)|0;J[f+4>>2]=a;o=o+1|0;a=J[f>>2]+a|0;k=k+1|0;if((h|0)!=(k|0)){continue}break}}if((a|0)!=4096){break Ka}a=0;m=0;Va:{if((d|0)<0){break Va}h=J[c>>2];if(d){d=g&-2;e=0;while(1){f=a<<3;j=J[f+h>>2];if(j){f=f+l|0;m=(+M[f>>2]+ +M[f+4>>2]*4294967296)*pk(+(j>>>0)*.000244140625)+m}f=(a|1)<<3;j=J[f+h>>2];if(j){f=f+l|0;m=(+M[f>>2]+ +M[f+4>>2]*4294967296)*pk(+(j>>>0)*.000244140625)+m}a=a+2|0;e=e+2|0;if((d|0)!=(e|0)){continue}break}}if(!(g&1)){break Va}a=a<<3;d=J[a+h>>2];if(!d){break Va}a=a+l|0;m=(+M[a>>2]+ +M[a+4>>2]*4294967296)*pk(+(d>>>0)*.000244140625)+m}m=W(-m);Wa:{if(m<0x10000000000000000&m>=0){d=R(m)>=1?~~(m>0?T(V(m*2.3283064365386963e-10),4294967295):W((m-+(~~m>>>0>>>0))*2.3283064365386963e-10))>>>0:0;a=~~m>>>0;break Wa}d=0;a=0}J[c+16>>2]=a;J[c+20>>2]=d;qf(c,r)}ia=s+32|0;e=J[c+16>>2];a=J[c+20>>2];d=J[r+4>>2]-J[r>>2]|0;J[c+40>>2]=d;J[c+44>>2]=0;g=a<<1|e>>>31;a=(e<<1)+39|0;g=a>>>0<39?g+1|0:g;a=d+((g&7)<<29|a>>>3)|0;f=g>>>3|0;f=a>>>0>>0?f+1|0:f;a=a+8|0;ji(r,a);a=J[r>>2];J[c+28>>2]=0;J[c+32>>2]=16384;J[c+24>>2]=a+J[c+40>>2];if((b|0)>0){a=16384;while(1){d=b-1|0;h=J[c>>2]+(J[t+(d<<2)>>2]<<3)|0;e=J[h>>2];g=e<<10;if(g>>>0<=a>>>0){while(1){f=J[c+28>>2];J[c+28>>2]=f+1;H[f+J[c+24>>2]|0]=a;a=J[c+32>>2]>>>8|0;J[c+32>>2]=a;if(a>>>0>=g>>>0){continue}break}}f=J[h+4>>2];h=(a>>>0)/(e>>>0)|0;a=f+((h<<12)+(a-P(e,h)|0)|0)|0;J[c+32>>2]=a;e=(b|0)>1;b=d;if(e){continue}break}}of(c,r);a=J[c>>2];if(a){J[c+4>>2]=a;fl(a)}a=J[c+48>>2];if(a){fl(a)}ia=c- -64|0;break Fa}k=1;break v;case 4:c=0;l=0;o=0;h=ia+-64|0;ia=h;J[h+56>>2]=0;J[h+48>>2]=0;J[h+52>>2]=0;Xa:{d=n+1|0;if(d){if(d>>>0>=536870912){break a}d=d<<3;c=ll(d);J[h+48>>2]=c;k=nk(c,0,(n<<3)+8|0)+d|0}Ya:{if((b|0)<=0){break Ya}n=0;if(b>>>0>=4){i=b&-4;while(1){d=n<<2;f=(J[d+a>>2]<<3)+c|0;g=J[f+4>>2];j=J[f>>2]+1|0;g=j?g:g+1|0;J[f>>2]=j;J[f+4>>2]=g;f=(J[(d|4)+a>>2]<<3)+c|0;g=J[f+4>>2];j=J[f>>2]+1|0;g=j?g:g+1|0;J[f>>2]=j;J[f+4>>2]=g;g=(J[(d|8)+a>>2]<<3)+c|0;j=J[g+4>>2];f=J[g>>2]+1|0;j=f?j:j+1|0;J[g>>2]=f;J[g+4>>2]=j;d=(J[(d|12)+a>>2]<<3)+c|0;g=J[d+4>>2];f=J[d>>2]+1|0;g=f?g:g+1|0;J[d>>2]=f;J[d+4>>2]=g;n=n+4|0;l=l+4|0;if((i|0)!=(l|0)){continue}break}}f=b&3;if(!f){break Ya}while(1){d=(J[(n<<2)+a>>2]<<3)+c|0;g=J[d+4>>2];j=J[d>>2]+1|0;g=j?g:g+1|0;J[d>>2]=j;J[d+4>>2]=g;n=n+1|0;o=o+1|0;if((f|0)!=(o|0)){continue}break}}J[h+8>>2]=0;J[h+12>>2]=0;J[h+16>>2]=0;J[h+20>>2]=0;J[h+24>>2]=0;J[h+28>>2]=0;J[h+32>>2]=0;J[h>>2]=0;J[h+4>>2]=0;J[h+40>>2]=0;J[h+44>>2]=0;nf(h,c,k-c>>3,e);g=J[h+16>>2];c=J[h+20>>2];d=J[e+4>>2]-J[e>>2]|0;J[h+40>>2]=d;J[h+44>>2]=0;f=g;g=c<<1|g>>>31;c=(f<<1)+39|0;j=c>>>0<39?g+1|0:g;c=d+((j&7)<<29|c>>>3)|0;g=j>>>3|0;g=c>>>0>>0?g+1|0:g;c=c+8|0;ji(e,c);c=J[e>>2];J[h+28>>2]=0;J[h+32>>2]=16384;J[h+24>>2]=c+J[h+40>>2];if((b|0)>0){n=16384;while(1){c=b-1|0;g=J[h>>2]+(J[(c<<2)+a>>2]<<3)|0;d=J[g>>2];f=d<<10;if(f>>>0<=n>>>0){while(1){j=J[h+28>>2];J[h+28>>2]=j+1;H[j+J[h+24>>2]|0]=n;n=J[h+32>>2]>>>8|0;J[h+32>>2]=n;if(f>>>0<=n>>>0){continue}break}}f=J[g+4>>2];g=(n>>>0)/(d>>>0)|0;n=f+((g<<12)+(n-P(d,g)|0)|0)|0;J[h+32>>2]=n;d=(b|0)>1;b=c;if(d){continue}break}}of(h,e);a=J[h>>2];if(a){J[h+4>>2]=a;fl(a)}a=J[h+48>>2];if(a){fl(a)}ia=h- -64|0;break Xa}k=1;break v;case 5:t=a;l=0;o=0;q=0;u=0;h=0;c=ia+-64|0;ia=c;J[c+56>>2]=0;J[c+48>>2]=0;J[c+52>>2]=0;Za:{a=n+1|0;if(a){if(a>>>0>=536870912){break a}a=a<<3;l=ll(a);J[c+48>>2]=l;k=nk(l,0,(n<<3)+8|0)+a|0}_a:{if((b|0)<=0){break _a}a=0;if(b>>>0>=4){i=b&-4;while(1){d=a<<2;f=(J[d+t>>2]<<3)+l|0;g=J[f+4>>2];j=J[f>>2]+1|0;g=j?g:g+1|0;J[f>>2]=j;J[f+4>>2]=g;g=(J[t+(d|4)>>2]<<3)+l|0;j=J[g+4>>2];f=J[g>>2]+1|0;j=f?j:j+1|0;J[g>>2]=f;J[g+4>>2]=j;g=(J[t+(d|8)>>2]<<3)+l|0;p=J[g+4>>2];f=J[g>>2]+1|0;p=f?p:p+1|0;J[g>>2]=f;J[g+4>>2]=p;d=(J[t+(d|12)>>2]<<3)+l|0;g=J[d+4>>2];f=J[d>>2]+1|0;g=f?g:g+1|0;J[d>>2]=f;J[d+4>>2]=g;a=a+4|0;o=o+4|0;if((i|0)!=(o|0)){continue}break}}g=b&3;if(!g){break _a}while(1){d=(J[t+(a<<2)>>2]<<3)+l|0;j=J[d+4>>2];f=J[d>>2]+1|0;j=f?j:j+1|0;J[d>>2]=f;J[d+4>>2]=j;a=a+1|0;q=q+1|0;if((g|0)!=(q|0)){continue}break}}J[c+8>>2]=0;J[c+12>>2]=0;J[c+16>>2]=0;J[c+20>>2]=0;J[c+24>>2]=0;J[c+28>>2]=0;J[c+32>>2]=0;J[c>>2]=0;J[c+4>>2]=0;J[c+40>>2]=0;J[c+44>>2]=0;r=e;e=0;o=0;d=0;q=0;s=ia-32|0;ia=s;a=k-l>>3;$a:{if((a|0)<=0){break $a}k=a&3;ab:{if(a>>>0<4){a=0;break ab}B=a&-4;a=0;while(1){D=a|1;f=(D<<3)+l|0;g=J[f+4>>2];p=J[f>>2];A=a|2;j=(A<<3)+l|0;f=J[j+4>>2];n=J[j>>2];x=a|3;i=(x<<3)+l|0;j=J[i+4>>2];y=J[i>>2];w=d;d=(a<<3)+l|0;z=J[d+4>>2];i=J[d>>2];d=j|y?x:f|n?A:g|p?D:!(z|i)?w:a;w=n;x=p;p=h+z|0;n=i+u|0;p=n>>>0>>0?p+1|0:p;i=n;h=x+i|0;g=g+p|0;g=h>>>0>>0?g+1|0:g;i=h;h=w+h|0;g=g+f|0;g=h>>>0>>0?g+1|0:g;i=h;h=h+y|0;f=g+j|0;u=h;h=h>>>0>>0?f+1|0:f;a=a+4|0;e=e+4|0;if((B|0)!=(e|0)){continue}break}}if(!k){break $a}while(1){f=d;d=(a<<3)+l|0;g=J[d+4>>2];e=J[d>>2];d=!(g|e)?f:a;a=a+1|0;j=g+h|0;f=e+u|0;j=f>>>0>>0?j+1|0:j;u=f;h=j;o=o+1|0;if((k|0)!=(o|0)){continue}break}}g=d+1|0;J[c+12>>2]=g;e=J[c>>2];a=J[c+4>>2]-e>>3;bb:{if(a>>>0>>0){lf(c,g-a|0);break bb}if(a>>>0<=g>>>0){break bb}J[c+4>>2]=e+(g<<3)}k=0;cb:{db:{eb:{fb:{if((d|0)>=0){v=+(u>>>0)+ +(h>>>0)*4294967296;h=J[c>>2];a=0;while(1){f=a<<3;j=f+l|0;e=J[j+4>>2];j=J[j>>2];i=(e|j)!=0;f=h+f|0;m=(+(j>>>0)+ +(e>>>0)*4294967296)/v*4096+.5;gb:{if(m<4294967296&m>=0){e=~~m>>>0;break gb}e=0}e=e?e:i?1:e;J[f>>2]=e;k=e+k|0;e=(a|0)==(d|0);a=a+1|0;if(!e){continue}break}if((k|0)==4096){break fb}}J[s+16>>2]=0;J[s+8>>2]=0;J[s+12>>2]=0;n=0;hb:{if(!g){break hb}if(g>>>0>=1073741824){break a}f=g<<2;q=ll(f);J[s+8>>2]=q;e=0;h=nk(q,0,f);a=0;if(d>>>0>=7){j=g&-8;while(1){J[h+(a<<2)>>2]=a;i=a|1;J[h+(i<<2)>>2]=i;i=a|2;J[h+(i<<2)>>2]=i;i=a|3;J[h+(i<<2)>>2]=i;i=a|4;J[h+(i<<2)>>2]=i;i=a|5;J[h+(i<<2)>>2]=i;i=a|6;J[h+(i<<2)>>2]=i;i=a|7;J[h+(i<<2)>>2]=i;a=a+8|0;n=n+8|0;if((j|0)!=(n|0)){continue}break}}n=h+f|0;f=g&7;if(!f){break hb}while(1){J[h+(a<<2)>>2]=a;a=a+1|0;e=e+1|0;if((f|0)!=(e|0)){continue}break}}J[s+24>>2]=c;a=n-q|0;e=a>>2;ib:{jb:{if((a|0)>=513){a=e;while(1){h=ll(a<<2);if(h){break jb}h=a>>>0>1;a=a>>>1|0;if(h){continue}break}}Jf(q,n,s+24|0,e,0,0);break ib}Jf(q,n,s+24|0,e,h,a);fl(h)}if((k|0)<4096){a=J[c>>2]+(J[n-4>>2]<<3)|0;J[a>>2]=(J[a>>2]-k|0)+4096;a=0;break eb}if((d|0)>0){j=J[c>>2];o=k-4096|0;while(1){m=4096/+(k|0);e=d;while(1){kb:{lb:{h=j+(J[(e<<2)+q>>2]<<3)|0;a=J[h>>2];if(a>>>0>=2){i=h;p=a;v=V(m*+(a>>>0));mb:{if(R(v)<2147483648){f=~~v;break mb}f=-2147483648}h=(a|0)==(f|0)?1:a-f|0;a=(a|0)>(h|0)?h:a-1|0;a=(a|0)<(o|0)?a:o;J[i>>2]=p-a;o=o-a|0;k=k-a|0;if((k|0)!=4096){break lb}k=4096;break kb}if((d|0)!=(e|0)){break kb}a=1;break eb}a=(e|0)>1;e=e-1|0;if(a){continue}}break}a=0;if((o|0)>0){continue}break}break eb}a=0;if(k>>>0<4097){break eb}while(1)continue}if((d|0)<0){break cb}break db}e=J[s+8>>2];if(e){fl(e)}if((d|0)<0|a){break cb}}e=J[c>>2];k=0;o=0;a=0;if(d>>>0>=3){f=g&-4;q=0;while(1){h=o<<3;j=h+e|0;J[j+4>>2]=a;i=e+(h|8)|0;a=J[j>>2]+a|0;J[i+4>>2]=a;j=e+(h|16)|0;a=a+J[i>>2]|0;J[j+4>>2]=a;h=e+(h|24)|0;a=a+J[j>>2]|0;J[h+4>>2]=a;a=a+J[h>>2]|0;o=o+4|0;q=q+4|0;if((f|0)!=(q|0)){continue}break}}h=g&3;if(h){while(1){f=e+(o<<3)|0;J[f+4>>2]=a;o=o+1|0;a=J[f>>2]+a|0;k=k+1|0;if((h|0)!=(k|0)){continue}break}}if((a|0)!=4096){break cb}a=0;m=0;nb:{if((d|0)<0){break nb}h=J[c>>2];if(d){d=g&-2;e=0;while(1){f=a<<3;j=J[f+h>>2];if(j){f=f+l|0;m=(+M[f>>2]+ +M[f+4>>2]*4294967296)*pk(+(j>>>0)*.000244140625)+m}f=(a|1)<<3;j=J[f+h>>2];if(j){f=f+l|0;m=(+M[f>>2]+ +M[f+4>>2]*4294967296)*pk(+(j>>>0)*.000244140625)+m}a=a+2|0;e=e+2|0;if((d|0)!=(e|0)){continue}break}}if(!(g&1)){break nb}a=a<<3;d=J[a+h>>2];if(!d){break nb}a=a+l|0;m=(+M[a>>2]+ +M[a+4>>2]*4294967296)*pk(+(d>>>0)*.000244140625)+m}m=W(-m);ob:{if(m<0x10000000000000000&m>=0){d=R(m)>=1?~~(m>0?T(V(m*2.3283064365386963e-10),4294967295):W((m-+(~~m>>>0>>>0))*2.3283064365386963e-10))>>>0:0;a=~~m>>>0;break ob}d=0;a=0}J[c+16>>2]=a;J[c+20>>2]=d;qf(c,r)}ia=s+32|0;e=J[c+16>>2];a=J[c+20>>2];d=J[r+4>>2]-J[r>>2]|0;J[c+40>>2]=d;J[c+44>>2]=0;g=a<<1|e>>>31;a=(e<<1)+39|0;p=a>>>0<39?g+1|0:g;a=d+((p&7)<<29|a>>>3)|0;f=p>>>3|0;f=a>>>0>>0?f+1|0:f;a=a+8|0;ji(r,a);a=J[r>>2];J[c+28>>2]=0;J[c+32>>2]=16384;J[c+24>>2]=a+J[c+40>>2];if((b|0)>0){a=16384;while(1){d=b-1|0;h=J[c>>2]+(J[t+(d<<2)>>2]<<3)|0;e=J[h>>2];g=e<<10;if(g>>>0<=a>>>0){while(1){f=J[c+28>>2];J[c+28>>2]=f+1;H[f+J[c+24>>2]|0]=a;a=J[c+32>>2]>>>8|0;J[c+32>>2]=a;if(a>>>0>=g>>>0){continue}break}}f=J[h+4>>2];h=(a>>>0)/(e>>>0)|0;a=f+((h<<12)+(a-P(e,h)|0)|0)|0;J[c+32>>2]=a;e=(b|0)>1;b=d;if(e){continue}break}}of(c,r);a=J[c>>2];if(a){J[c+4>>2]=a;fl(a)}a=J[c+48>>2];if(a){fl(a)}ia=c- -64|0;break Za}k=1;break v;case 6:t=a;l=0;o=0;q=0;u=0;h=0;c=ia+-64|0;ia=c;J[c+56>>2]=0;J[c+48>>2]=0;J[c+52>>2]=0;pb:{a=n+1|0;if(a){if(a>>>0>=536870912){break a}a=a<<3;l=ll(a);J[c+48>>2]=l;k=nk(l,0,(n<<3)+8|0)+a|0}qb:{if((b|0)<=0){break qb}a=0;if(b>>>0>=4){j=b&-4;while(1){d=a<<2;f=(J[d+t>>2]<<3)+l|0;g=J[f+4>>2];i=J[f>>2]+1|0;g=i?g:g+1|0;J[f>>2]=i;J[f+4>>2]=g;g=(J[t+(d|4)>>2]<<3)+l|0;p=J[g+4>>2];f=J[g>>2]+1|0;p=f?p:p+1|0;J[g>>2]=f;J[g+4>>2]=p;g=(J[t+(d|8)>>2]<<3)+l|0;i=J[g+4>>2];f=J[g>>2]+1|0;i=f?i:i+1|0;J[g>>2]=f;J[g+4>>2]=i;d=(J[t+(d|12)>>2]<<3)+l|0;g=J[d+4>>2];f=J[d>>2]+1|0;g=f?g:g+1|0;J[d>>2]=f;J[d+4>>2]=g;a=a+4|0;o=o+4|0;if((j|0)!=(o|0)){continue}break}}g=b&3;if(!g){break qb}while(1){d=(J[t+(a<<2)>>2]<<3)+l|0;p=J[d+4>>2];f=J[d>>2]+1|0;p=f?p:p+1|0;J[d>>2]=f;J[d+4>>2]=p;a=a+1|0;q=q+1|0;if((g|0)!=(q|0)){continue}break}}J[c+8>>2]=0;J[c+12>>2]=0;J[c+16>>2]=0;J[c+20>>2]=0;J[c+24>>2]=0;J[c+28>>2]=0;J[c+32>>2]=0;J[c>>2]=0;J[c+4>>2]=0;J[c+40>>2]=0;J[c+44>>2]=0;r=e;e=0;o=0;d=0;q=0;s=ia-32|0;ia=s;a=k-l>>3;rb:{if((a|0)<=0){break rb}k=a&3;sb:{if(a>>>0<4){a=0;break sb}B=a&-4;a=0;while(1){D=a|1;f=(D<<3)+l|0;g=J[f+4>>2];p=J[f>>2];A=a|2;j=(A<<3)+l|0;f=J[j+4>>2];n=J[j>>2];x=a|3;i=(x<<3)+l|0;j=J[i+4>>2];y=J[i>>2];w=d;d=(a<<3)+l|0;z=J[d+4>>2];i=J[d>>2];d=j|y?x:f|n?A:g|p?D:!(z|i)?w:a;w=n;x=p;p=i;n=i+u|0;i=h+z|0;i=p>>>0>n>>>0?i+1|0:i;h=x+n|0;g=g+i|0;g=h>>>0>>0?g+1|0:g;i=h;h=w+h|0;f=g+f|0;f=h>>>0>>0?f+1|0:f;i=h;h=h+y|0;g=f+j|0;u=h;h=h>>>0>>0?g+1|0:g;a=a+4|0;e=e+4|0;if((B|0)!=(e|0)){continue}break}}if(!k){break rb}while(1){f=d;d=(a<<3)+l|0;g=J[d+4>>2];e=J[d>>2];d=!(g|e)?f:a;a=a+1|0;p=g+h|0;f=e+u|0;p=f>>>0>>0?p+1|0:p;u=f;h=p;o=o+1|0;if((k|0)!=(o|0)){continue}break}}g=d+1|0;J[c+12>>2]=g;e=J[c>>2];a=J[c+4>>2]-e>>3;tb:{if(a>>>0>>0){lf(c,g-a|0);break tb}if(a>>>0<=g>>>0){break tb}J[c+4>>2]=e+(g<<3)}k=0;ub:{vb:{wb:{xb:{if((d|0)>=0){v=+(u>>>0)+ +(h>>>0)*4294967296;h=J[c>>2];a=0;while(1){f=a<<3;j=f+l|0;e=J[j+4>>2];j=J[j>>2];i=(e|j)!=0;f=h+f|0;m=(+(j>>>0)+ +(e>>>0)*4294967296)/v*4096+.5;yb:{if(m<4294967296&m>=0){e=~~m>>>0;break yb}e=0}e=e?e:i?1:e;J[f>>2]=e;k=e+k|0;e=(a|0)==(d|0);a=a+1|0;if(!e){continue}break}if((k|0)==4096){break xb}}J[s+16>>2]=0;J[s+8>>2]=0;J[s+12>>2]=0;n=0;zb:{if(!g){break zb}if(g>>>0>=1073741824){break a}f=g<<2;q=ll(f);J[s+8>>2]=q;e=0;h=nk(q,0,f);a=0;if(d>>>0>=7){j=g&-8;while(1){J[h+(a<<2)>>2]=a;i=a|1;J[h+(i<<2)>>2]=i;i=a|2;J[h+(i<<2)>>2]=i;i=a|3;J[h+(i<<2)>>2]=i;i=a|4;J[h+(i<<2)>>2]=i;i=a|5;J[h+(i<<2)>>2]=i;i=a|6;J[h+(i<<2)>>2]=i;i=a|7;J[h+(i<<2)>>2]=i;a=a+8|0;n=n+8|0;if((j|0)!=(n|0)){continue}break}}n=h+f|0;f=g&7;if(!f){break zb}while(1){J[h+(a<<2)>>2]=a;a=a+1|0;e=e+1|0;if((f|0)!=(e|0)){continue}break}}J[s+24>>2]=c;a=n-q|0;e=a>>2;Ab:{Bb:{if((a|0)>=513){a=e;while(1){h=ll(a<<2);if(h){break Bb}h=a>>>0>1;a=a>>>1|0;if(h){continue}break}}Mf(q,n,s+24|0,e,0,0);break Ab}Mf(q,n,s+24|0,e,h,a);fl(h)}if((k|0)<4096){a=J[c>>2]+(J[n-4>>2]<<3)|0;J[a>>2]=(J[a>>2]-k|0)+4096;a=0;break wb}if((d|0)>0){j=J[c>>2];o=k-4096|0;while(1){m=4096/+(k|0);e=d;while(1){Cb:{Db:{h=j+(J[(e<<2)+q>>2]<<3)|0;a=J[h>>2];if(a>>>0>=2){i=h;p=a;v=V(m*+(a>>>0));Eb:{if(R(v)<2147483648){f=~~v;break Eb}f=-2147483648}h=(a|0)==(f|0)?1:a-f|0;a=(a|0)>(h|0)?h:a-1|0;a=(a|0)<(o|0)?a:o;J[i>>2]=p-a;o=o-a|0;k=k-a|0;if((k|0)!=4096){break Db}k=4096;break Cb}if((d|0)!=(e|0)){break Cb}a=1;break wb}a=(e|0)>1;e=e-1|0;if(a){continue}}break}a=0;if((o|0)>0){continue}break}break wb}a=0;if(k>>>0<4097){break wb}while(1)continue}if((d|0)<0){break ub}break vb}e=J[s+8>>2];if(e){fl(e)}if((d|0)<0|a){break ub}}e=J[c>>2];k=0;o=0;a=0;if(d>>>0>=3){f=g&-4;q=0;while(1){h=o<<3;j=h+e|0;J[j+4>>2]=a;i=e+(h|8)|0;a=J[j>>2]+a|0;J[i+4>>2]=a;j=e+(h|16)|0;a=a+J[i>>2]|0;J[j+4>>2]=a;h=e+(h|24)|0;a=a+J[j>>2]|0;J[h+4>>2]=a;a=a+J[h>>2]|0;o=o+4|0;q=q+4|0;if((f|0)!=(q|0)){continue}break}}h=g&3;if(h){while(1){f=e+(o<<3)|0;J[f+4>>2]=a;o=o+1|0;a=J[f>>2]+a|0;k=k+1|0;if((h|0)!=(k|0)){continue}break}}if((a|0)!=4096){break ub}a=0;m=0;Fb:{if((d|0)<0){break Fb}h=J[c>>2];if(d){d=g&-2;e=0;while(1){f=a<<3;j=J[f+h>>2];if(j){f=f+l|0;m=(+M[f>>2]+ +M[f+4>>2]*4294967296)*pk(+(j>>>0)*.000244140625)+m}f=(a|1)<<3;j=J[f+h>>2];if(j){f=f+l|0;m=(+M[f>>2]+ +M[f+4>>2]*4294967296)*pk(+(j>>>0)*.000244140625)+m}a=a+2|0;e=e+2|0;if((d|0)!=(e|0)){continue}break}}if(!(g&1)){break Fb}a=a<<3;d=J[a+h>>2];if(!d){break Fb}a=a+l|0;m=(+M[a>>2]+ +M[a+4>>2]*4294967296)*pk(+(d>>>0)*.000244140625)+m}m=W(-m);Gb:{if(m<0x10000000000000000&m>=0){d=R(m)>=1?~~(m>0?T(V(m*2.3283064365386963e-10),4294967295):W((m-+(~~m>>>0>>>0))*2.3283064365386963e-10))>>>0:0;a=~~m>>>0;break Gb}d=0;a=0}J[c+16>>2]=a;J[c+20>>2]=d;qf(c,r)}ia=s+32|0;e=J[c+16>>2];a=J[c+20>>2];d=J[r+4>>2]-J[r>>2]|0;J[c+40>>2]=d;J[c+44>>2]=0;f=a<<1|e>>>31;a=(e<<1)+39|0;i=a>>>0<39?f+1|0:f;g=i>>>3|0;a=d+((i&7)<<29|a>>>3)|0;g=a>>>0>>0?g+1|0:g;a=a+8|0;ji(r,a);a=J[r>>2];J[c+28>>2]=0;J[c+32>>2]=16384;J[c+24>>2]=a+J[c+40>>2];if((b|0)>0){a=16384;while(1){d=b-1|0;h=J[c>>2]+(J[t+(d<<2)>>2]<<3)|0;e=J[h>>2];g=e<<10;if(g>>>0<=a>>>0){while(1){f=J[c+28>>2];J[c+28>>2]=f+1;H[f+J[c+24>>2]|0]=a;a=J[c+32>>2]>>>8|0;J[c+32>>2]=a;if(a>>>0>=g>>>0){continue}break}}f=J[h+4>>2];h=(a>>>0)/(e>>>0)|0;a=f+((h<<12)+(a-P(e,h)|0)|0)|0;J[c+32>>2]=a;e=(b|0)>1;b=d;if(e){continue}break}}of(c,r);a=J[c>>2];if(a){J[c+4>>2]=a;fl(a)}a=J[c+48>>2];if(a){fl(a)}ia=c- -64|0;break pb}k=1;break v;case 7:t=a;l=0;o=0;q=0;u=0;h=0;c=ia+-64|0;ia=c;J[c+56>>2]=0;J[c+48>>2]=0;J[c+52>>2]=0;Hb:{a=n+1|0;if(a){if(a>>>0>=536870912){break a}a=a<<3;l=ll(a);J[c+48>>2]=l;k=nk(l,0,(n<<3)+8|0)+a|0}Ib:{if((b|0)<=0){break Ib}a=0;if(b>>>0>=4){p=b&-4;while(1){d=a<<2;g=(J[d+t>>2]<<3)+l|0;f=J[g+4>>2];j=J[g>>2]+1|0;f=j?f:f+1|0;J[g>>2]=j;J[g+4>>2]=f;g=(J[t+(d|4)>>2]<<3)+l|0;i=J[g+4>>2];f=J[g>>2]+1|0;i=f?i:i+1|0;J[g>>2]=f;J[g+4>>2]=i;g=(J[t+(d|8)>>2]<<3)+l|0;j=J[g+4>>2];f=J[g>>2]+1|0;j=f?j:j+1|0;J[g>>2]=f;J[g+4>>2]=j;d=(J[t+(d|12)>>2]<<3)+l|0;f=J[d+4>>2];g=J[d>>2]+1|0;f=g?f:f+1|0;J[d>>2]=g;J[d+4>>2]=f;a=a+4|0;o=o+4|0;if((p|0)!=(o|0)){continue}break}}g=b&3;if(!g){break Ib}while(1){d=(J[t+(a<<2)>>2]<<3)+l|0;i=J[d+4>>2];f=J[d>>2]+1|0;i=f?i:i+1|0;J[d>>2]=f;J[d+4>>2]=i;a=a+1|0;q=q+1|0;if((g|0)!=(q|0)){continue}break}}J[c+8>>2]=0;J[c+12>>2]=0;J[c+16>>2]=0;J[c+20>>2]=0;J[c+24>>2]=0;J[c+28>>2]=0;J[c+32>>2]=0;J[c>>2]=0;J[c+4>>2]=0;J[c+40>>2]=0;J[c+44>>2]=0;r=e;e=0;o=0;d=0;q=0;s=ia-32|0;ia=s;a=k-l>>3;Jb:{if((a|0)<=0){break Jb}n=a&3;Kb:{if(a>>>0<4){a=0;break Kb}A=a&-4;a=0;while(1){p=a|1;f=(p<<3)+l|0;g=J[f+4>>2];y=J[f>>2];k=a|2;j=(k<<3)+l|0;f=J[j+4>>2];z=J[j>>2];x=a|3;i=(x<<3)+l|0;j=J[i+4>>2];B=J[i>>2];w=d;d=(a<<3)+l|0;D=J[d+4>>2];i=J[d>>2];d=j|B?x:f|z?k:g|y?p:!(D|i)?w:a;p=j;k=f;j=h+D|0;f=i+u|0;j=f>>>0>>0?j+1|0:j;i=f;h=f+y|0;f=g+j|0;f=h>>>0>>0?f+1|0:f;j=h;h=h+z|0;g=f+k|0;g=h>>>0>>0?g+1|0:g;f=h;h=h+B|0;g=g+p|0;u=h;h=h>>>0>>0?g+1|0:g;a=a+4|0;e=e+4|0;if((A|0)!=(e|0)){continue}break}}if(!n){break Jb}while(1){f=d;d=(a<<3)+l|0;g=J[d+4>>2];e=J[d>>2];d=!(g|e)?f:a;a=a+1|0;i=g+h|0;f=e+u|0;i=f>>>0>>0?i+1|0:i;u=f;h=i;o=o+1|0;if((n|0)!=(o|0)){continue}break}}g=d+1|0;J[c+12>>2]=g;e=J[c>>2];a=J[c+4>>2]-e>>3;Lb:{if(a>>>0>>0){lf(c,g-a|0);break Lb}if(a>>>0<=g>>>0){break Lb}J[c+4>>2]=e+(g<<3)}k=0;Mb:{Nb:{Ob:{Pb:{if((d|0)>=0){v=+(u>>>0)+ +(h>>>0)*4294967296;h=J[c>>2];a=0;while(1){f=a<<3;j=f+l|0;e=J[j+4>>2];j=J[j>>2];i=(e|j)!=0;f=h+f|0;m=(+(j>>>0)+ +(e>>>0)*4294967296)/v*4096+.5;Qb:{if(m<4294967296&m>=0){e=~~m>>>0;break Qb}e=0}e=e?e:i?1:e;J[f>>2]=e;k=e+k|0;e=(a|0)==(d|0);a=a+1|0;if(!e){continue}break}if((k|0)==4096){break Pb}}J[s+16>>2]=0;J[s+8>>2]=0;J[s+12>>2]=0;n=0;Rb:{if(!g){break Rb}if(g>>>0>=1073741824){break a}f=g<<2;q=ll(f);J[s+8>>2]=q;e=0;h=nk(q,0,f);a=0;if(d>>>0>=7){j=g&-8;while(1){J[h+(a<<2)>>2]=a;i=a|1;J[h+(i<<2)>>2]=i;i=a|2;J[h+(i<<2)>>2]=i;i=a|3;J[h+(i<<2)>>2]=i;i=a|4;J[h+(i<<2)>>2]=i;i=a|5;J[h+(i<<2)>>2]=i;i=a|6;J[h+(i<<2)>>2]=i;i=a|7;J[h+(i<<2)>>2]=i;a=a+8|0;n=n+8|0;if((j|0)!=(n|0)){continue}break}}n=h+f|0;f=g&7;if(!f){break Rb}while(1){J[h+(a<<2)>>2]=a;a=a+1|0;e=e+1|0;if((f|0)!=(e|0)){continue}break}}J[s+24>>2]=c;a=n-q|0;e=a>>2;Sb:{Tb:{if((a|0)>=513){a=e;while(1){h=ll(a<<2);if(h){break Tb}h=a>>>0>1;a=a>>>1|0;if(h){continue}break}}Pf(q,n,s+24|0,e,0,0);break Sb}Pf(q,n,s+24|0,e,h,a);fl(h)}if((k|0)<4096){a=J[c>>2]+(J[n-4>>2]<<3)|0;J[a>>2]=(J[a>>2]-k|0)+4096;a=0;break Ob}if((d|0)>0){j=J[c>>2];o=k-4096|0;while(1){m=4096/+(k|0);e=d;while(1){Ub:{Vb:{h=j+(J[(e<<2)+q>>2]<<3)|0;a=J[h>>2];if(a>>>0>=2){i=h;p=a;v=V(m*+(a>>>0));Wb:{if(R(v)<2147483648){f=~~v;break Wb}f=-2147483648}h=(a|0)==(f|0)?1:a-f|0;a=(a|0)>(h|0)?h:a-1|0;a=(a|0)<(o|0)?a:o;J[i>>2]=p-a;o=o-a|0;k=k-a|0;if((k|0)!=4096){break Vb}k=4096;break Ub}if((d|0)!=(e|0)){break Ub}a=1;break Ob}a=(e|0)>1;e=e-1|0;if(a){continue}}break}a=0;if((o|0)>0){continue}break}break Ob}a=0;if(k>>>0<4097){break Ob}while(1)continue}if((d|0)<0){break Mb}break Nb}e=J[s+8>>2];if(e){fl(e)}if((d|0)<0|a){break Mb}}e=J[c>>2];k=0;o=0;a=0;if(d>>>0>=3){f=g&-4;q=0;while(1){h=o<<3;j=h+e|0;J[j+4>>2]=a;i=e+(h|8)|0;a=J[j>>2]+a|0;J[i+4>>2]=a;j=e+(h|16)|0;a=a+J[i>>2]|0;J[j+4>>2]=a;h=e+(h|24)|0;a=a+J[j>>2]|0;J[h+4>>2]=a;a=a+J[h>>2]|0;o=o+4|0;q=q+4|0;if((f|0)!=(q|0)){continue}break}}h=g&3;if(h){while(1){f=e+(o<<3)|0;J[f+4>>2]=a;o=o+1|0;a=J[f>>2]+a|0;k=k+1|0;if((h|0)!=(k|0)){continue}break}}if((a|0)!=4096){break Mb}a=0;m=0;Xb:{if((d|0)<0){break Xb}h=J[c>>2];if(d){d=g&-2;e=0;while(1){f=a<<3;j=J[f+h>>2];if(j){f=f+l|0;m=(+M[f>>2]+ +M[f+4>>2]*4294967296)*pk(+(j>>>0)*.000244140625)+m}f=(a|1)<<3;j=J[f+h>>2];if(j){f=f+l|0;m=(+M[f>>2]+ +M[f+4>>2]*4294967296)*pk(+(j>>>0)*.000244140625)+m}a=a+2|0;e=e+2|0;if((d|0)!=(e|0)){continue}break}}if(!(g&1)){break Xb}a=a<<3;d=J[a+h>>2];if(!d){break Xb}a=a+l|0;m=(+M[a>>2]+ +M[a+4>>2]*4294967296)*pk(+(d>>>0)*.000244140625)+m}m=W(-m);Yb:{if(m<0x10000000000000000&m>=0){d=R(m)>=1?~~(m>0?T(V(m*2.3283064365386963e-10),4294967295):W((m-+(~~m>>>0>>>0))*2.3283064365386963e-10))>>>0:0;a=~~m>>>0;break Yb}d=0;a=0}J[c+16>>2]=a;J[c+20>>2]=d;qf(c,r)}ia=s+32|0;e=J[c+16>>2];a=J[c+20>>2];d=J[r+4>>2]-J[r>>2]|0;J[c+40>>2]=d;J[c+44>>2]=0;g=a<<1|e>>>31;a=(e<<1)+39|0;j=a>>>0<39?g+1|0:g;a=d+((j&7)<<29|a>>>3)|0;g=j>>>3|0;g=a>>>0>>0?g+1|0:g;a=a+8|0;ji(r,a);a=J[r>>2];J[c+28>>2]=0;J[c+32>>2]=16384;J[c+24>>2]=a+J[c+40>>2];if((b|0)>0){a=16384;while(1){d=b-1|0;h=J[c>>2]+(J[t+(d<<2)>>2]<<3)|0;e=J[h>>2];g=e<<10;if(g>>>0<=a>>>0){while(1){f=J[c+28>>2];J[c+28>>2]=f+1;H[f+J[c+24>>2]|0]=a;a=J[c+32>>2]>>>8|0;J[c+32>>2]=a;if(a>>>0>=g>>>0){continue}break}}f=J[h+4>>2];h=(a>>>0)/(e>>>0)|0;a=f+((h<<12)+(a-P(e,h)|0)|0)|0;J[c+32>>2]=a;e=(b|0)>1;b=d;if(e){continue}break}}of(c,r);a=J[c>>2];if(a){J[c+4>>2]=a;fl(a)}a=J[c+48>>2];if(a){fl(a)}ia=c- -64|0;break Hb}k=1;break v;case 8:t=a;l=0;o=0;d=0;q=0;u=0;h=0;k=ia+-64|0;ia=k;J[k+56>>2]=0;J[k+48>>2]=0;J[k+52>>2]=0;Zb:{a=n+1|0;if(a){if(a>>>0>=536870912){break a}a=a<<3;o=ll(a);J[k+48>>2]=o;l=nk(o,0,(n<<3)+8|0)+a|0}_b:{if((b|0)<=0){break _b}a=0;if(b>>>0>=4){i=b&-4;while(1){c=a<<2;f=(J[c+t>>2]<<3)+o|0;g=J[f+4>>2];j=J[f>>2]+1|0;g=j?g:g+1|0;J[f>>2]=j;J[f+4>>2]=g;g=(J[t+(c|4)>>2]<<3)+o|0;j=J[g+4>>2];f=J[g>>2]+1|0;j=f?j:j+1|0;J[g>>2]=f;J[g+4>>2]=j;g=(J[t+(c|8)>>2]<<3)+o|0;p=J[g+4>>2];f=J[g>>2]+1|0;p=f?p:p+1|0;J[g>>2]=f;J[g+4>>2]=p;c=(J[t+(c|12)>>2]<<3)+o|0;g=J[c+4>>2];f=J[c>>2]+1|0;g=f?g:g+1|0;J[c>>2]=f;J[c+4>>2]=g;a=a+4|0;d=d+4|0;if((i|0)!=(d|0)){continue}break}}d=b&3;if(!d){break _b}while(1){c=(J[t+(a<<2)>>2]<<3)+o|0;j=J[c+4>>2];g=J[c>>2]+1|0;j=g?j:j+1|0;J[c>>2]=g;J[c+4>>2]=j;a=a+1|0;q=q+1|0;if((d|0)!=(q|0)){continue}break}}J[k+8>>2]=0;J[k+12>>2]=0;J[k+16>>2]=0;J[k+20>>2]=0;J[k+24>>2]=0;J[k+28>>2]=0;J[k+32>>2]=0;J[k>>2]=0;J[k+4>>2]=0;J[k+40>>2]=0;J[k+44>>2]=0;d=0;n=0;c=0;q=0;r=ia-32|0;ia=r;a=l-o>>3;$b:{if((a|0)<=0){break $b}l=a&3;ac:{if(a>>>0<4){a=0;break ac}B=a&-4;a=0;while(1){D=a|1;f=(D<<3)+o|0;g=J[f+4>>2];p=J[f>>2];A=a|2;j=(A<<3)+o|0;f=J[j+4>>2];s=J[j>>2];x=a|3;i=(x<<3)+o|0;j=J[i+4>>2];y=J[i>>2];w=c;c=(a<<3)+o|0;z=J[c+4>>2];i=J[c>>2];c=j|y?x:f|s?A:g|p?D:!(z|i)?w:a;w=p;p=h+z|0;u=i+u|0;p=u>>>0>>0?p+1|0:p;i=u;h=w+i|0;g=g+p|0;g=h>>>0>>0?g+1|0:g;i=h;h=h+s|0;g=g+f|0;g=h>>>0>>0?g+1|0:g;i=h;h=h+y|0;f=g+j|0;u=h;h=h>>>0>>0?f+1|0:f;a=a+4|0;d=d+4|0;if((B|0)!=(d|0)){continue}break}}if(!l){break $b}while(1){f=c;c=(a<<3)+o|0;g=J[c+4>>2];d=J[c>>2];c=!(g|d)?f:a;a=a+1|0;j=g+h|0;f=d+u|0;j=f>>>0>>0?j+1|0:j;u=f;h=j;n=n+1|0;if((l|0)!=(n|0)){continue}break}}g=c+1|0;J[k+12>>2]=g;d=J[k>>2];a=J[k+4>>2]-d>>3;bc:{if(a>>>0>>0){lf(k,g-a|0);break bc}if(a>>>0<=g>>>0){break bc}J[k+4>>2]=d+(g<<3)}l=0;cc:{dc:{ec:{fc:{if((c|0)>=0){v=+(u>>>0)+ +(h>>>0)*4294967296;h=J[k>>2];a=0;while(1){f=a<<3;j=f+o|0;d=J[j+4>>2];j=J[j>>2];i=(d|j)!=0;f=h+f|0;m=(+(j>>>0)+ +(d>>>0)*4294967296)/v*8192+.5;gc:{if(m<4294967296&m>=0){d=~~m>>>0;break gc}d=0}d=d?d:i?1:d;J[f>>2]=d;l=d+l|0;d=(a|0)==(c|0);a=a+1|0;if(!d){continue}break}if((l|0)==8192){break fc}}J[r+16>>2]=0;J[r+8>>2]=0;J[r+12>>2]=0;n=0;hc:{if(!g){break hc}if(g>>>0>=1073741824){break a}f=g<<2;q=ll(f);J[r+8>>2]=q;d=0;h=nk(q,0,f);a=0;if(c>>>0>=7){j=g&-8;while(1){J[h+(a<<2)>>2]=a;i=a|1;J[h+(i<<2)>>2]=i;i=a|2;J[h+(i<<2)>>2]=i;i=a|3;J[h+(i<<2)>>2]=i;i=a|4;J[h+(i<<2)>>2]=i;i=a|5;J[h+(i<<2)>>2]=i;i=a|6;J[h+(i<<2)>>2]=i;i=a|7;J[h+(i<<2)>>2]=i;a=a+8|0;n=n+8|0;if((j|0)!=(n|0)){continue}break}}n=h+f|0;f=g&7;if(!f){break hc}while(1){J[h+(a<<2)>>2]=a;a=a+1|0;d=d+1|0;if((f|0)!=(d|0)){continue}break}}J[r+24>>2]=k;a=n-q|0;d=a>>2;ic:{jc:{if((a|0)>=513){a=d;while(1){h=ll(a<<2);if(h){break jc}h=a>>>0>1;a=a>>>1|0;if(h){continue}break}}Sf(q,n,r+24|0,d,0,0);break ic}Sf(q,n,r+24|0,d,h,a);fl(h)}if((l|0)<8192){a=J[k>>2]+(J[n-4>>2]<<3)|0;J[a>>2]=(J[a>>2]-l|0)- -8192;a=0;break ec}if((c|0)>0){j=J[k>>2];n=l+-8192|0;while(1){m=8192/+(l|0);d=c;while(1){kc:{lc:{h=j+(J[(d<<2)+q>>2]<<3)|0;a=J[h>>2];if(a>>>0>=2){i=h;p=a;v=V(m*+(a>>>0));mc:{if(R(v)<2147483648){f=~~v;break mc}f=-2147483648}h=(a|0)==(f|0)?1:a-f|0;a=(a|0)>(h|0)?h:a-1|0;a=(a|0)<(n|0)?a:n;J[i>>2]=p-a;n=n-a|0;l=l-a|0;if((l|0)!=8192){break lc}l=8192;break kc}if((c|0)!=(d|0)){break kc}a=1;break ec}a=(d|0)>1;d=d-1|0;if(a){continue}}break}a=0;if((n|0)>0){continue}break}break ec}a=0;if(l>>>0<8193){break ec}while(1)continue}if((c|0)<0){break cc}break dc}d=J[r+8>>2];if(d){fl(d)}if((c|0)<0|a){break cc}}d=J[k>>2];l=0;n=0;a=0;if(c>>>0>=3){f=g&-4;q=0;while(1){h=n<<3;j=h+d|0;J[j+4>>2]=a;i=d+(h|8)|0;a=J[j>>2]+a|0;J[i+4>>2]=a;j=d+(h|16)|0;a=a+J[i>>2]|0;J[j+4>>2]=a;h=d+(h|24)|0;a=a+J[j>>2]|0;J[h+4>>2]=a;a=a+J[h>>2]|0;n=n+4|0;q=q+4|0;if((f|0)!=(q|0)){continue}break}}h=g&3;if(h){while(1){f=d+(n<<3)|0;J[f+4>>2]=a;n=n+1|0;a=J[f>>2]+a|0;l=l+1|0;if((h|0)!=(l|0)){continue}break}}if((a|0)!=8192){break cc}a=0;m=0;nc:{if((c|0)<0){break nc}h=J[k>>2];if(c){c=g&-2;d=0;while(1){f=a<<3;j=J[f+h>>2];if(j){f=f+o|0;m=(+M[f>>2]+ +M[f+4>>2]*4294967296)*pk(+(j>>>0)*.0001220703125)+m}f=(a|1)<<3;j=J[f+h>>2];if(j){f=f+o|0;m=(+M[f>>2]+ +M[f+4>>2]*4294967296)*pk(+(j>>>0)*.0001220703125)+m}a=a+2|0;d=d+2|0;if((c|0)!=(d|0)){continue}break}}if(!(g&1)){break nc}a=a<<3;c=J[a+h>>2];if(!c){break nc}a=a+o|0;m=(+M[a>>2]+ +M[a+4>>2]*4294967296)*pk(+(c>>>0)*.0001220703125)+m}m=W(-m);oc:{if(m<0x10000000000000000&m>=0){c=R(m)>=1?~~(m>0?T(V(m*2.3283064365386963e-10),4294967295):W((m-+(~~m>>>0>>>0))*2.3283064365386963e-10))>>>0:0;a=~~m>>>0;break oc}c=0;a=0}J[k+16>>2]=a;J[k+20>>2]=c;qf(k,e)}ia=r+32|0;d=J[k+16>>2];a=J[k+20>>2];c=J[e+4>>2]-J[e>>2]|0;J[k+40>>2]=c;J[k+44>>2]=0;g=a<<1|d>>>31;a=(d<<1)+39|0;p=a>>>0<39?g+1|0:g;a=c+((p&7)<<29|a>>>3)|0;f=p>>>3|0;f=a>>>0>>0?f+1|0:f;a=a+8|0;ji(e,a);a=J[e>>2];J[k+28>>2]=0;J[k+32>>2]=32768;J[k+24>>2]=a+J[k+40>>2];if((b|0)>0){a=32768;while(1){c=b-1|0;h=J[k>>2]+(J[t+(c<<2)>>2]<<3)|0;d=J[h>>2];g=d<<10;if(g>>>0<=a>>>0){while(1){f=J[k+28>>2];J[k+28>>2]=f+1;H[f+J[k+24>>2]|0]=a;a=J[k+32>>2]>>>8|0;J[k+32>>2]=a;if(a>>>0>=g>>>0){continue}break}}f=J[h+4>>2];h=(a>>>0)/(d>>>0)|0;a=f+((h<<13)+(a-P(d,h)|0)|0)|0;J[k+32>>2]=a;d=(b|0)>1;b=c;if(d){continue}break}}b=ia-32|0;ia=b;c=J[e>>2]+J[k+40>>2]|0;a=J[k+32>>2];d=a-32768|0;pc:{if(d>>>0<=63){H[J[k+24>>2]+J[k+28>>2]|0]=a;a=J[k+28>>2]+1|0;break pc}if(d>>>0<=16383){d=J[k+24>>2]+J[k+28>>2]|0;H[d+1|0]=a+49152>>>8;H[d|0]=a;a=J[k+28>>2]+2|0;break pc}if(d>>>0<=4194303){d=J[k+24>>2]+J[k+28>>2]|0;h=a+8355840|0;H[d+2|0]=h>>>16;H[d+1|0]=h>>>8;H[d|0]=a;a=J[k+28>>2]+3|0;break pc}if(d>>>0<=1073741823){d=J[k+24>>2]+J[k+28>>2]|0;h=a-1073774592|0;H[d+3|0]=h>>>24;H[d+2|0]=h>>>16;H[d+1|0]=h>>>8;H[d|0]=a;a=J[k+28>>2]+4|0;break pc}a=J[k+28>>2]}J[b>>2]=0;J[b+4>>2]=0;H[b+24|0]=0;J[b+16>>2]=0;J[b+20>>2]=0;J[b+8>>2]=0;J[b+12>>2]=0;g=a>>31;rf(a,g,b);d=J[b+4>>2]-J[b>>2]|0;mk(d+c|0,c,a);lk(c,J[b>>2],d);h=J[k+44>>2];c=a+d|0;g=c>>>0>>0?g+1|0:g;a=c+J[k+40>>2]|0;ji(e,a);a=J[b+12>>2];J[b+12>>2]=0;if(a){fl(a)}a=J[b>>2];if(a){J[b+4>>2]=a;fl(a)}ia=b+32|0;a=J[k>>2];if(a){J[k+4>>2]=a;fl(a)}a=J[k+48>>2];if(a){fl(a)}ia=k- -64|0;break Zb}k=1;break v;case 9:t=a;l=0;o=0;d=0;q=0;u=0;h=0;k=ia+-64|0;ia=k;J[k+56>>2]=0;J[k+48>>2]=0;J[k+52>>2]=0;qc:{a=n+1|0;if(a){if(a>>>0>=536870912){break a}a=a<<3;o=ll(a);J[k+48>>2]=o;l=nk(o,0,(n<<3)+8|0)+a|0}rc:{if((b|0)<=0){break rc}a=0;if(b>>>0>=4){j=b&-4;while(1){c=a<<2;g=(J[c+t>>2]<<3)+o|0;i=J[g+4>>2];f=J[g>>2]+1|0;i=f?i:i+1|0;J[g>>2]=f;J[g+4>>2]=i;g=(J[t+(c|4)>>2]<<3)+o|0;f=J[g+4>>2];i=J[g>>2]+1|0;f=i?f:f+1|0;J[g>>2]=i;J[g+4>>2]=f;g=(J[t+(c|8)>>2]<<3)+o|0;p=J[g+4>>2];f=J[g>>2]+1|0;p=f?p:p+1|0;J[g>>2]=f;J[g+4>>2]=p;c=(J[t+(c|12)>>2]<<3)+o|0;i=J[c+4>>2];g=J[c>>2]+1|0;i=g?i:i+1|0;J[c>>2]=g;J[c+4>>2]=i;a=a+4|0;d=d+4|0;if((j|0)!=(d|0)){continue}break}}d=b&3;if(!d){break rc}while(1){c=(J[t+(a<<2)>>2]<<3)+o|0;f=J[c+4>>2];g=J[c>>2]+1|0;f=g?f:f+1|0;J[c>>2]=g;J[c+4>>2]=f;a=a+1|0;q=q+1|0;if((d|0)!=(q|0)){continue}break}}J[k+8>>2]=0;J[k+12>>2]=0;J[k+16>>2]=0;J[k+20>>2]=0;J[k+24>>2]=0;J[k+28>>2]=0;J[k+32>>2]=0;J[k>>2]=0;J[k+4>>2]=0;J[k+40>>2]=0;J[k+44>>2]=0;d=0;n=0;c=0;q=0;r=ia-32|0;ia=r;a=l-o>>3;sc:{if((a|0)<=0){break sc}l=a&3;tc:{if(a>>>0<4){a=0;break tc}B=a&-4;a=0;while(1){D=a|1;f=(D<<3)+o|0;g=J[f+4>>2];p=J[f>>2];A=a|2;j=(A<<3)+o|0;f=J[j+4>>2];s=J[j>>2];x=a|3;i=(x<<3)+o|0;j=J[i+4>>2];y=J[i>>2];w=c;c=(a<<3)+o|0;z=J[c+4>>2];i=J[c>>2];c=j|y?x:f|s?A:g|p?D:!(z|i)?w:a;w=p;p=h+z|0;u=i+u|0;p=u>>>0>>0?p+1|0:p;h=w+u|0;i=g+p|0;i=h>>>0>>0?i+1|0:i;p=h;h=h+s|0;g=f+i|0;g=h>>>0

>>0?g+1|0:g;f=h;h=h+y|0;g=g+j|0;u=h;h=h>>>0>>0?g+1|0:g;a=a+4|0;d=d+4|0;if((B|0)!=(d|0)){continue}break}}if(!l){break sc}while(1){f=c;c=(a<<3)+o|0;g=J[c+4>>2];d=J[c>>2];c=!(g|d)?f:a;a=a+1|0;f=g+h|0;j=d+u|0;f=j>>>0>>0?f+1|0:f;u=j;h=f;n=n+1|0;if((l|0)!=(n|0)){continue}break}}g=c+1|0;J[k+12>>2]=g;d=J[k>>2];a=J[k+4>>2]-d>>3;uc:{if(a>>>0>>0){lf(k,g-a|0);break uc}if(a>>>0<=g>>>0){break uc}J[k+4>>2]=d+(g<<3)}l=0;vc:{wc:{xc:{yc:{if((c|0)>=0){v=+(u>>>0)+ +(h>>>0)*4294967296;h=J[k>>2];a=0;while(1){f=a<<3;j=f+o|0;d=J[j+4>>2];j=J[j>>2];i=(d|j)!=0;f=h+f|0;m=(+(j>>>0)+ +(d>>>0)*4294967296)/v*32768+.5;zc:{if(m<4294967296&m>=0){d=~~m>>>0;break zc}d=0}d=d?d:i?1:d;J[f>>2]=d;l=d+l|0;d=(a|0)==(c|0);a=a+1|0;if(!d){continue}break}if((l|0)==32768){break yc}}J[r+16>>2]=0;J[r+8>>2]=0;J[r+12>>2]=0;n=0;Ac:{if(!g){break Ac}if(g>>>0>=1073741824){break a}f=g<<2;q=ll(f);J[r+8>>2]=q;d=0;h=nk(q,0,f);a=0;if(c>>>0>=7){j=g&-8;while(1){J[h+(a<<2)>>2]=a;i=a|1;J[h+(i<<2)>>2]=i;i=a|2;J[h+(i<<2)>>2]=i;i=a|3;J[h+(i<<2)>>2]=i;i=a|4;J[h+(i<<2)>>2]=i;i=a|5;J[h+(i<<2)>>2]=i;i=a|6;J[h+(i<<2)>>2]=i;i=a|7;J[h+(i<<2)>>2]=i;a=a+8|0;n=n+8|0;if((j|0)!=(n|0)){continue}break}}n=h+f|0;f=g&7;if(!f){break Ac}while(1){J[h+(a<<2)>>2]=a;a=a+1|0;d=d+1|0;if((f|0)!=(d|0)){continue}break}}J[r+24>>2]=k;a=n-q|0;d=a>>2;Bc:{Cc:{if((a|0)>=513){a=d;while(1){h=ll(a<<2);if(h){break Cc}h=a>>>0>1;a=a>>>1|0;if(h){continue}break}}Vf(q,n,r+24|0,d,0,0);break Bc}Vf(q,n,r+24|0,d,h,a);fl(h)}if((l|0)<32768){a=J[k>>2]+(J[n-4>>2]<<3)|0;J[a>>2]=(J[a>>2]-l|0)+32768;a=0;break xc}if((c|0)>0){j=J[k>>2];n=l-32768|0;while(1){m=32768/+(l|0);d=c;while(1){Dc:{Ec:{h=j+(J[(d<<2)+q>>2]<<3)|0;a=J[h>>2];if(a>>>0>=2){i=h;p=a;v=V(m*+(a>>>0));Fc:{if(R(v)<2147483648){f=~~v;break Fc}f=-2147483648}h=(a|0)==(f|0)?1:a-f|0;a=(a|0)>(h|0)?h:a-1|0;a=(a|0)<(n|0)?a:n;J[i>>2]=p-a;n=n-a|0;l=l-a|0;if((l|0)!=32768){break Ec}l=32768;break Dc}if((c|0)!=(d|0)){break Dc}a=1;break xc}a=(d|0)>1;d=d-1|0;if(a){continue}}break}a=0;if((n|0)>0){continue}break}break xc}a=0;if(l>>>0<32769){break xc}while(1)continue}if((c|0)<0){break vc}break wc}d=J[r+8>>2];if(d){fl(d)}if((c|0)<0|a){break vc}}d=J[k>>2];l=0;n=0;a=0;if(c>>>0>=3){f=g&-4;q=0;while(1){h=n<<3;j=h+d|0;J[j+4>>2]=a;i=d+(h|8)|0;a=J[j>>2]+a|0;J[i+4>>2]=a;j=d+(h|16)|0;a=a+J[i>>2]|0;J[j+4>>2]=a;h=d+(h|24)|0;a=a+J[j>>2]|0;J[h+4>>2]=a;a=a+J[h>>2]|0;n=n+4|0;q=q+4|0;if((f|0)!=(q|0)){continue}break}}h=g&3;if(h){while(1){f=d+(n<<3)|0;J[f+4>>2]=a;n=n+1|0;a=J[f>>2]+a|0;l=l+1|0;if((h|0)!=(l|0)){continue}break}}if((a|0)!=32768){break vc}a=0;m=0;Gc:{if((c|0)<0){break Gc}h=J[k>>2];if(c){c=g&-2;d=0;while(1){f=a<<3;j=J[f+h>>2];if(j){f=f+o|0;m=(+M[f>>2]+ +M[f+4>>2]*4294967296)*pk(+(j>>>0)*30517578125e-15)+m}f=(a|1)<<3;j=J[f+h>>2];if(j){f=f+o|0;m=(+M[f>>2]+ +M[f+4>>2]*4294967296)*pk(+(j>>>0)*30517578125e-15)+m}a=a+2|0;d=d+2|0;if((c|0)!=(d|0)){continue}break}}if(!(g&1)){break Gc}a=a<<3;c=J[a+h>>2];if(!c){break Gc}a=a+o|0;m=(+M[a>>2]+ +M[a+4>>2]*4294967296)*pk(+(c>>>0)*30517578125e-15)+m}m=W(-m);Hc:{if(m<0x10000000000000000&m>=0){c=R(m)>=1?~~(m>0?T(V(m*2.3283064365386963e-10),4294967295):W((m-+(~~m>>>0>>>0))*2.3283064365386963e-10))>>>0:0;a=~~m>>>0;break Hc}c=0;a=0}J[k+16>>2]=a;J[k+20>>2]=c;qf(k,e)}ia=r+32|0;d=J[k+16>>2];a=J[k+20>>2];c=J[e+4>>2]-J[e>>2]|0;J[k+40>>2]=c;J[k+44>>2]=0;g=a<<1|d>>>31;a=(d<<1)+39|0;p=a>>>0<39?g+1|0:g;a=c+((p&7)<<29|a>>>3)|0;g=p>>>3|0;g=a>>>0>>0?g+1|0:g;a=a+8|0;ji(e,a);a=J[e>>2];J[k+28>>2]=0;J[k+32>>2]=131072;J[k+24>>2]=a+J[k+40>>2];if((b|0)>0){a=131072;while(1){c=b-1|0;h=J[k>>2]+(J[t+(c<<2)>>2]<<3)|0;d=J[h>>2];g=d<<10;if(g>>>0<=a>>>0){while(1){f=J[k+28>>2];J[k+28>>2]=f+1;H[f+J[k+24>>2]|0]=a;a=J[k+32>>2]>>>8|0;J[k+32>>2]=a;if(a>>>0>=g>>>0){continue}break}}f=J[h+4>>2];h=(a>>>0)/(d>>>0)|0;a=f+((h<<15)+(a-P(d,h)|0)|0)|0;J[k+32>>2]=a;d=(b|0)>1;b=c;if(d){continue}break}}b=ia-32|0;ia=b;c=J[e>>2]+J[k+40>>2]|0;a=J[k+32>>2];d=a-131072|0;Ic:{if(d>>>0<=63){H[J[k+24>>2]+J[k+28>>2]|0]=a;a=J[k+28>>2]+1|0;break Ic}if(d>>>0<=16383){d=J[k+24>>2]+J[k+28>>2]|0;H[d+1|0]=a+16384>>>8;H[d|0]=a;a=J[k+28>>2]+2|0;break Ic}if(d>>>0<=4194303){d=J[k+24>>2]+J[k+28>>2]|0;H[d+2|0]=a+8257536>>>16;H[d+1|0]=a>>>8;H[d|0]=a;a=J[k+28>>2]+3|0;break Ic}if(d>>>0<=1073741823){d=J[k+24>>2]+J[k+28>>2]|0;h=a-1073872896|0;H[d+3|0]=h>>>24;H[d+2|0]=h>>>16;H[d+1|0]=a>>>8;H[d|0]=a;a=J[k+28>>2]+4|0;break Ic}a=J[k+28>>2]}J[b>>2]=0;J[b+4>>2]=0;H[b+24|0]=0;J[b+16>>2]=0;J[b+20>>2]=0;J[b+8>>2]=0;J[b+12>>2]=0;g=a>>31;rf(a,g,b);d=J[b+4>>2]-J[b>>2]|0;mk(d+c|0,c,a);lk(c,J[b>>2],d);h=J[k+44>>2];c=a+d|0;g=c>>>0>>0?g+1|0:g;a=c+J[k+40>>2]|0;ji(e,a);a=J[b+12>>2];J[b+12>>2]=0;if(a){fl(a)}a=J[b>>2];if(a){J[b+4>>2]=a;fl(a)}ia=b+32|0;a=J[k>>2];if(a){J[k+4>>2]=a;fl(a)}a=J[k+48>>2];if(a){fl(a)}ia=k- -64|0;break qc}k=1;break v;case 10:t=a;l=0;o=0;d=0;q=0;u=0;h=0;k=ia+-64|0;ia=k;J[k+56>>2]=0;J[k+48>>2]=0;J[k+52>>2]=0;Jc:{a=n+1|0;if(a){if(a>>>0>=536870912){break a}a=a<<3;o=ll(a);J[k+48>>2]=o;l=nk(o,0,(n<<3)+8|0)+a|0}Kc:{if((b|0)<=0){break Kc}a=0;if(b>>>0>=4){i=b&-4;while(1){c=a<<2;g=(J[c+t>>2]<<3)+o|0;j=J[g+4>>2];f=J[g>>2]+1|0;j=f?j:j+1|0;J[g>>2]=f;J[g+4>>2]=j;f=(J[t+(c|4)>>2]<<3)+o|0;g=J[f+4>>2];j=J[f>>2]+1|0;g=j?g:g+1|0;J[f>>2]=j;J[f+4>>2]=g;g=(J[t+(c|8)>>2]<<3)+o|0;p=J[g+4>>2];f=J[g>>2]+1|0;p=f?p:p+1|0;J[g>>2]=f;J[g+4>>2]=p;c=(J[t+(c|12)>>2]<<3)+o|0;j=J[c+4>>2];g=J[c>>2]+1|0;j=g?j:j+1|0;J[c>>2]=g;J[c+4>>2]=j;a=a+4|0;d=d+4|0;if((i|0)!=(d|0)){continue}break}}d=b&3;if(!d){break Kc}while(1){c=(J[t+(a<<2)>>2]<<3)+o|0;g=J[c+4>>2];f=J[c>>2]+1|0;g=f?g:g+1|0;J[c>>2]=f;J[c+4>>2]=g;a=a+1|0;q=q+1|0;if((d|0)!=(q|0)){continue}break}}J[k+8>>2]=0;J[k+12>>2]=0;J[k+16>>2]=0;J[k+20>>2]=0;J[k+24>>2]=0;J[k+28>>2]=0;J[k+32>>2]=0;J[k>>2]=0;J[k+4>>2]=0;J[k+40>>2]=0;J[k+44>>2]=0;d=0;n=0;c=0;q=0;r=ia-32|0;ia=r;a=l-o>>3;Lc:{if((a|0)<=0){break Lc}s=a&3;Mc:{if(a>>>0<4){a=0;break Mc}D=a&-4;a=0;while(1){l=a|1;f=(l<<3)+o|0;g=J[f+4>>2];p=J[f>>2];A=a|2;j=(A<<3)+o|0;f=J[j+4>>2];y=J[j>>2];x=a|3;i=(x<<3)+o|0;j=J[i+4>>2];z=J[i>>2];w=c;c=(a<<3)+o|0;B=J[c+4>>2];i=J[c>>2];c=j|z?x:f|y?A:g|p?l:!(B|i)?w:a;l=j;w=p;p=h+B|0;j=i+u|0;p=j>>>0>>0?p+1|0:p;i=j;h=w+i|0;j=g+p|0;j=h>>>0>>0?j+1|0:j;i=h;h=h+y|0;g=f+j|0;g=h>>>0>>0?g+1|0:g;f=h;h=h+z|0;i=g+l|0;u=h;h=h>>>0>>0?i+1|0:i;a=a+4|0;d=d+4|0;if((D|0)!=(d|0)){continue}break}}if(!s){break Lc}while(1){f=c;c=(a<<3)+o|0;g=J[c+4>>2];d=J[c>>2];c=!(g|d)?f:a;a=a+1|0;g=g+h|0;f=d+u|0;g=f>>>0>>0?g+1|0:g;u=f;h=g;n=n+1|0;if((s|0)!=(n|0)){continue}break}}g=c+1|0;J[k+12>>2]=g;d=J[k>>2];a=J[k+4>>2]-d>>3;Nc:{if(a>>>0>>0){lf(k,g-a|0);break Nc}if(a>>>0<=g>>>0){break Nc}J[k+4>>2]=d+(g<<3)}l=0;Oc:{Pc:{Qc:{Rc:{if((c|0)>=0){v=+(u>>>0)+ +(h>>>0)*4294967296;h=J[k>>2];a=0;while(1){f=a<<3;j=f+o|0;d=J[j+4>>2];j=J[j>>2];i=(d|j)!=0;f=h+f|0;m=(+(j>>>0)+ +(d>>>0)*4294967296)/v*65536+.5;Sc:{if(m<4294967296&m>=0){d=~~m>>>0;break Sc}d=0}d=d?d:i?1:d;J[f>>2]=d;l=d+l|0;d=(a|0)==(c|0);a=a+1|0;if(!d){continue}break}if((l|0)==65536){break Rc}}J[r+16>>2]=0;J[r+8>>2]=0;J[r+12>>2]=0;n=0;Tc:{if(!g){break Tc}if(g>>>0>=1073741824){break a}f=g<<2;q=ll(f);J[r+8>>2]=q;d=0;h=nk(q,0,f);a=0;if(c>>>0>=7){j=g&-8;while(1){J[h+(a<<2)>>2]=a;i=a|1;J[h+(i<<2)>>2]=i;i=a|2;J[h+(i<<2)>>2]=i;i=a|3;J[h+(i<<2)>>2]=i;i=a|4;J[h+(i<<2)>>2]=i;i=a|5;J[h+(i<<2)>>2]=i;i=a|6;J[h+(i<<2)>>2]=i;i=a|7;J[h+(i<<2)>>2]=i;a=a+8|0;n=n+8|0;if((j|0)!=(n|0)){continue}break}}n=h+f|0;f=g&7;if(!f){break Tc}while(1){J[h+(a<<2)>>2]=a;a=a+1|0;d=d+1|0;if((f|0)!=(d|0)){continue}break}}J[r+24>>2]=k;a=n-q|0;d=a>>2;Uc:{Vc:{if((a|0)>=513){a=d;while(1){h=ll(a<<2);if(h){break Vc}h=a>>>0>1;a=a>>>1|0;if(h){continue}break}}Yf(q,n,r+24|0,d,0,0);break Uc}Yf(q,n,r+24|0,d,h,a);fl(h)}if((l|0)<65536){a=J[k>>2]+(J[n-4>>2]<<3)|0;J[a>>2]=(J[a>>2]-l|0)+65536;a=0;break Qc}if((c|0)>0){j=J[k>>2];n=l-65536|0;while(1){m=65536/+(l|0);d=c;while(1){Wc:{Xc:{h=j+(J[(d<<2)+q>>2]<<3)|0;a=J[h>>2];if(a>>>0>=2){i=h;p=a;v=V(m*+(a>>>0));Yc:{if(R(v)<2147483648){f=~~v;break Yc}f=-2147483648}h=(a|0)==(f|0)?1:a-f|0;a=(a|0)>(h|0)?h:a-1|0;a=(a|0)<(n|0)?a:n;J[i>>2]=p-a;n=n-a|0;l=l-a|0;if((l|0)!=65536){break Xc}l=65536;break Wc}if((c|0)!=(d|0)){break Wc}a=1;break Qc}a=(d|0)>1;d=d-1|0;if(a){continue}}break}a=0;if((n|0)>0){continue}break}break Qc}a=0;if(l>>>0<65537){break Qc}while(1)continue}if((c|0)<0){break Oc}break Pc}d=J[r+8>>2];if(d){fl(d)}if((c|0)<0|a){break Oc}}d=J[k>>2];l=0;n=0;a=0;if(c>>>0>=3){f=g&-4;q=0;while(1){h=n<<3;j=h+d|0;J[j+4>>2]=a;i=d+(h|8)|0;a=J[j>>2]+a|0;J[i+4>>2]=a;j=d+(h|16)|0;a=a+J[i>>2]|0;J[j+4>>2]=a;h=d+(h|24)|0;a=a+J[j>>2]|0;J[h+4>>2]=a;a=a+J[h>>2]|0;n=n+4|0;q=q+4|0;if((f|0)!=(q|0)){continue}break}}h=g&3;if(h){while(1){f=d+(n<<3)|0;J[f+4>>2]=a;n=n+1|0;a=J[f>>2]+a|0;l=l+1|0;if((h|0)!=(l|0)){continue}break}}if((a|0)!=65536){break Oc}a=0;m=0;Zc:{if((c|0)<0){break Zc}h=J[k>>2];if(c){c=g&-2;d=0;while(1){f=a<<3;j=J[f+h>>2];if(j){f=f+o|0;m=(+M[f>>2]+ +M[f+4>>2]*4294967296)*pk(+(j>>>0)*152587890625e-16)+m}f=(a|1)<<3;j=J[f+h>>2];if(j){f=f+o|0;m=(+M[f>>2]+ +M[f+4>>2]*4294967296)*pk(+(j>>>0)*152587890625e-16)+m}a=a+2|0;d=d+2|0;if((c|0)!=(d|0)){continue}break}}if(!(g&1)){break Zc}a=a<<3;c=J[a+h>>2];if(!c){break Zc}a=a+o|0;m=(+M[a>>2]+ +M[a+4>>2]*4294967296)*pk(+(c>>>0)*152587890625e-16)+m}m=W(-m);_c:{if(m<0x10000000000000000&m>=0){c=R(m)>=1?~~(m>0?T(V(m*2.3283064365386963e-10),4294967295):W((m-+(~~m>>>0>>>0))*2.3283064365386963e-10))>>>0:0;a=~~m>>>0;break _c}c=0;a=0}J[k+16>>2]=a;J[k+20>>2]=c;qf(k,e)}ia=r+32|0;d=J[k+16>>2];a=J[k+20>>2];c=J[e+4>>2]-J[e>>2]|0;J[k+40>>2]=c;J[k+44>>2]=0;g=a<<1|d>>>31;a=(d<<1)+39|0;p=a>>>0<39?g+1|0:g;a=c+((p&7)<<29|a>>>3)|0;i=p>>>3|0;i=a>>>0>>0?i+1|0:i;a=a+8|0;ji(e,a);a=J[e>>2];J[k+28>>2]=0;J[k+32>>2]=262144;J[k+24>>2]=a+J[k+40>>2];if((b|0)>0){a=262144;while(1){c=b-1|0;h=J[k>>2]+(J[t+(c<<2)>>2]<<3)|0;d=J[h>>2];g=d<<10;if(g>>>0<=a>>>0){while(1){f=J[k+28>>2];J[k+28>>2]=f+1;H[f+J[k+24>>2]|0]=a;a=J[k+32>>2]>>>8|0;J[k+32>>2]=a;if(a>>>0>=g>>>0){continue}break}}f=J[h+4>>2];h=(a>>>0)/(d>>>0)|0;a=f+((h<<16)+(a-P(d,h)|0)|0)|0;J[k+32>>2]=a;d=(b|0)>1;b=c;if(d){continue}break}}b=ia-32|0;ia=b;c=J[e>>2]+J[k+40>>2]|0;a=J[k+32>>2];d=a-262144|0;$c:{if(d>>>0<=63){H[J[k+24>>2]+J[k+28>>2]|0]=a;a=J[k+28>>2]+1|0;break $c}if(d>>>0<=16383){d=J[k+24>>2]+J[k+28>>2]|0;H[d+1|0]=a+16384>>>8;H[d|0]=a;a=J[k+28>>2]+2|0;break $c}if(d>>>0<=4194303){d=J[k+24>>2]+J[k+28>>2]|0;H[d+2|0]=a+8126464>>>16;H[d+1|0]=a>>>8;H[d|0]=a;a=J[k+28>>2]+3|0;break $c}if(d>>>0<=1073741823){d=J[k+24>>2]+J[k+28>>2]|0;h=a-1074003968|0;H[d+3|0]=h>>>24;H[d+2|0]=h>>>16;H[d+1|0]=a>>>8;H[d|0]=a;a=J[k+28>>2]+4|0;break $c}a=J[k+28>>2]}J[b>>2]=0;J[b+4>>2]=0;H[b+24|0]=0;J[b+16>>2]=0;J[b+20>>2]=0;J[b+8>>2]=0;J[b+12>>2]=0;g=a>>31;rf(a,g,b);d=J[b+4>>2]-J[b>>2]|0;mk(d+c|0,c,a);lk(c,J[b>>2],d);h=J[k+44>>2];c=a+d|0;g=c>>>0>>0?g+1|0:g;a=c+J[k+40>>2]|0;ji(e,a);a=J[b+12>>2];J[b+12>>2]=0;if(a){fl(a)}a=J[b>>2];if(a){J[b+4>>2]=a;fl(a)}ia=b+32|0;a=J[k>>2];if(a){J[k+4>>2]=a;fl(a)}a=J[k+48>>2];if(a){fl(a)}ia=k- -64|0;break Jc}k=1;break v;case 11:t=a;l=0;o=0;d=0;q=0;u=0;h=0;k=ia+-64|0;ia=k;J[k+56>>2]=0;J[k+48>>2]=0;J[k+52>>2]=0;ad:{a=n+1|0;if(a){if(a>>>0>=536870912){break a}a=a<<3;o=ll(a);J[k+48>>2]=o;l=nk(o,0,(n<<3)+8|0)+a|0}bd:{if((b|0)<=0){break bd}a=0;if(b>>>0>=4){j=b&-4;while(1){c=a<<2;g=(J[c+t>>2]<<3)+o|0;f=J[g+4>>2];i=J[g>>2]+1|0;f=i?f:f+1|0;J[g>>2]=i;J[g+4>>2]=f;g=(J[t+(c|4)>>2]<<3)+o|0;i=J[g+4>>2];f=J[g>>2]+1|0;i=f?i:i+1|0;J[g>>2]=f;J[g+4>>2]=i;g=(J[t+(c|8)>>2]<<3)+o|0;p=J[g+4>>2];f=J[g>>2]+1|0;p=f?p:p+1|0;J[g>>2]=f;J[g+4>>2]=p;c=(J[t+(c|12)>>2]<<3)+o|0;f=J[c+4>>2];g=J[c>>2]+1|0;f=g?f:f+1|0;J[c>>2]=g;J[c+4>>2]=f;a=a+4|0;d=d+4|0;if((j|0)!=(d|0)){continue}break}}d=b&3;if(!d){break bd}while(1){c=(J[t+(a<<2)>>2]<<3)+o|0;i=J[c+4>>2];g=J[c>>2]+1|0;i=g?i:i+1|0;J[c>>2]=g;J[c+4>>2]=i;a=a+1|0;q=q+1|0;if((d|0)!=(q|0)){continue}break}}J[k+8>>2]=0;J[k+12>>2]=0;J[k+16>>2]=0;J[k+20>>2]=0;J[k+24>>2]=0;J[k+28>>2]=0;J[k+32>>2]=0;J[k>>2]=0;J[k+4>>2]=0;J[k+40>>2]=0;J[k+44>>2]=0;d=0;n=0;c=0;q=0;r=ia-32|0;ia=r;a=l-o>>3;cd:{if((a|0)<=0){break cd}s=a&3;dd:{if(a>>>0<4){a=0;break dd}D=a&-4;a=0;while(1){l=a|1;f=(l<<3)+o|0;g=J[f+4>>2];p=J[f>>2];A=a|2;j=(A<<3)+o|0;f=J[j+4>>2];y=J[j>>2];x=a|3;i=(x<<3)+o|0;j=J[i+4>>2];z=J[i>>2];w=c;c=(a<<3)+o|0;B=J[c+4>>2];i=J[c>>2];c=j|z?x:f|y?A:g|p?l:!(B|i)?w:a;l=f;w=p;p=h+B|0;f=i+u|0;p=f>>>0>>0?p+1|0:p;i=f;h=w+f|0;f=g+p|0;f=h>>>0>>0?f+1|0:f;i=h;h=h+y|0;g=f+l|0;g=h>>>0>>0?g+1|0:g;f=h;h=h+z|0;j=g+j|0;u=h;h=h>>>0>>0?j+1|0:j;a=a+4|0;d=d+4|0;if((D|0)!=(d|0)){continue}break}}if(!s){break cd}while(1){f=c;c=(a<<3)+o|0;g=J[c+4>>2];d=J[c>>2];c=!(g|d)?f:a;a=a+1|0;i=g+h|0;f=d+u|0;i=f>>>0>>0?i+1|0:i;u=f;h=i;n=n+1|0;if((s|0)!=(n|0)){continue}break}}g=c+1|0;J[k+12>>2]=g;d=J[k>>2];a=J[k+4>>2]-d>>3;ed:{if(a>>>0>>0){lf(k,g-a|0);break ed}if(a>>>0<=g>>>0){break ed}J[k+4>>2]=d+(g<<3)}l=0;fd:{gd:{hd:{id:{if((c|0)>=0){v=+(u>>>0)+ +(h>>>0)*4294967296;h=J[k>>2];a=0;while(1){f=a<<3;j=f+o|0;d=J[j+4>>2];j=J[j>>2];i=(d|j)!=0;f=h+f|0;m=(+(j>>>0)+ +(d>>>0)*4294967296)/v*262144+.5;jd:{if(m<4294967296&m>=0){d=~~m>>>0;break jd}d=0}d=d?d:i?1:d;J[f>>2]=d;l=d+l|0;d=(a|0)==(c|0);a=a+1|0;if(!d){continue}break}if((l|0)==262144){break id}}J[r+16>>2]=0;J[r+8>>2]=0;J[r+12>>2]=0;n=0;kd:{if(!g){break kd}if(g>>>0>=1073741824){break a}f=g<<2;q=ll(f);J[r+8>>2]=q;d=0;h=nk(q,0,f);a=0;if(c>>>0>=7){j=g&-8;while(1){J[h+(a<<2)>>2]=a;i=a|1;J[h+(i<<2)>>2]=i;i=a|2;J[h+(i<<2)>>2]=i;i=a|3;J[h+(i<<2)>>2]=i;i=a|4;J[h+(i<<2)>>2]=i;i=a|5;J[h+(i<<2)>>2]=i;i=a|6;J[h+(i<<2)>>2]=i;i=a|7;J[h+(i<<2)>>2]=i;a=a+8|0;n=n+8|0;if((j|0)!=(n|0)){continue}break}}n=h+f|0;f=g&7;if(!f){break kd}while(1){J[h+(a<<2)>>2]=a;a=a+1|0;d=d+1|0;if((f|0)!=(d|0)){continue}break}}J[r+24>>2]=k;a=n-q|0;d=a>>2;ld:{md:{if((a|0)>=513){a=d;while(1){h=ll(a<<2);if(h){break md}h=a>>>0>1;a=a>>>1|0;if(h){continue}break}}$f(q,n,r+24|0,d,0,0);break ld}$f(q,n,r+24|0,d,h,a);fl(h)}if((l|0)<262144){a=J[k>>2]+(J[n-4>>2]<<3)|0;J[a>>2]=(J[a>>2]-l|0)+262144;a=0;break hd}if((c|0)>0){j=J[k>>2];n=l-262144|0;while(1){m=262144/+(l|0);d=c;while(1){nd:{od:{h=j+(J[(d<<2)+q>>2]<<3)|0;a=J[h>>2];if(a>>>0>=2){i=h;p=a;v=V(m*+(a>>>0));pd:{if(R(v)<2147483648){f=~~v;break pd}f=-2147483648}h=(a|0)==(f|0)?1:a-f|0;a=(a|0)>(h|0)?h:a-1|0;a=(a|0)<(n|0)?a:n;J[i>>2]=p-a;n=n-a|0;l=l-a|0;if((l|0)!=262144){break od}l=262144;break nd}if((c|0)!=(d|0)){break nd}a=1;break hd}a=(d|0)>1;d=d-1|0;if(a){continue}}break}a=0;if((n|0)>0){continue}break}break hd}a=0;if(l>>>0<262145){break hd}while(1)continue}if((c|0)<0){break fd}break gd}d=J[r+8>>2];if(d){fl(d)}if((c|0)<0|a){break fd}}d=J[k>>2];l=0;n=0;a=0;if(c>>>0>=3){f=g&-4;q=0;while(1){h=n<<3;j=h+d|0;J[j+4>>2]=a;i=d+(h|8)|0;a=J[j>>2]+a|0;J[i+4>>2]=a;j=d+(h|16)|0;a=a+J[i>>2]|0;J[j+4>>2]=a;h=d+(h|24)|0;a=a+J[j>>2]|0;J[h+4>>2]=a;a=a+J[h>>2]|0;n=n+4|0;q=q+4|0;if((f|0)!=(q|0)){continue}break}}h=g&3;if(h){while(1){f=d+(n<<3)|0;J[f+4>>2]=a;n=n+1|0;a=J[f>>2]+a|0;l=l+1|0;if((h|0)!=(l|0)){continue}break}}if((a|0)!=262144){break fd}a=0;m=0;qd:{if((c|0)<0){break qd}h=J[k>>2];if(c){c=g&-2;d=0;while(1){f=a<<3;j=J[f+h>>2];if(j){f=f+o|0;m=(+M[f>>2]+ +M[f+4>>2]*4294967296)*pk(+(j>>>0)*3814697265625e-18)+m}f=(a|1)<<3;j=J[f+h>>2];if(j){f=f+o|0;m=(+M[f>>2]+ +M[f+4>>2]*4294967296)*pk(+(j>>>0)*3814697265625e-18)+m}a=a+2|0;d=d+2|0;if((c|0)!=(d|0)){continue}break}}if(!(g&1)){break qd}a=a<<3;c=J[a+h>>2];if(!c){break qd}a=a+o|0;m=(+M[a>>2]+ +M[a+4>>2]*4294967296)*pk(+(c>>>0)*3814697265625e-18)+m}m=W(-m);rd:{if(m<0x10000000000000000&m>=0){c=R(m)>=1?~~(m>0?T(V(m*2.3283064365386963e-10),4294967295):W((m-+(~~m>>>0>>>0))*2.3283064365386963e-10))>>>0:0;a=~~m>>>0;break rd}c=0;a=0}J[k+16>>2]=a;J[k+20>>2]=c;qf(k,e)}ia=r+32|0;d=J[k+16>>2];a=J[k+20>>2];c=J[e+4>>2]-J[e>>2]|0;J[k+40>>2]=c;J[k+44>>2]=0;g=a<<1|d>>>31;a=(d<<1)+39|0;p=a>>>0<39?g+1|0:g;a=c+((p&7)<<29|a>>>3)|0;j=p>>>3|0;j=a>>>0>>0?j+1|0:j;a=a+8|0;ji(e,a);a=J[e>>2];J[k+28>>2]=0;J[k+32>>2]=1048576;J[k+24>>2]=a+J[k+40>>2];if((b|0)>0){a=1048576;while(1){c=b-1|0;h=J[k>>2]+(J[t+(c<<2)>>2]<<3)|0;d=J[h>>2];g=d<<10;if(g>>>0<=a>>>0){while(1){f=J[k+28>>2];J[k+28>>2]=f+1;H[f+J[k+24>>2]|0]=a;a=J[k+32>>2]>>>8|0;J[k+32>>2]=a;if(a>>>0>=g>>>0){continue}break}}f=J[h+4>>2];h=(a>>>0)/(d>>>0)|0;a=f+((h<<18)+(a-P(d,h)|0)|0)|0;J[k+32>>2]=a;d=(b|0)>1;b=c;if(d){continue}break}}b=ia-32|0;ia=b;c=J[e>>2]+J[k+40>>2]|0;a=J[k+32>>2];d=a+-1048576|0;sd:{if(d>>>0<=63){H[J[k+24>>2]+J[k+28>>2]|0]=a;a=J[k+28>>2]+1|0;break sd}if(d>>>0<=16383){d=J[k+24>>2]+J[k+28>>2]|0;H[d+1|0]=a+16384>>>8;H[d|0]=a;a=J[k+28>>2]+2|0;break sd}if(d>>>0<=4194303){d=J[k+24>>2]+J[k+28>>2]|0;H[d+2|0]=a+7340032>>>16;H[d+1|0]=a>>>8;H[d|0]=a;a=J[k+28>>2]+3|0;break sd}if(d>>>0<=1073741823){d=J[k+24>>2]+J[k+28>>2]|0;h=a-1074790400|0;H[d+3|0]=h>>>24;H[d+2|0]=h>>>16;H[d+1|0]=a>>>8;H[d|0]=a;a=J[k+28>>2]+4|0;break sd}a=J[k+28>>2]}J[b>>2]=0;J[b+4>>2]=0;H[b+24|0]=0;J[b+16>>2]=0;J[b+20>>2]=0;J[b+8>>2]=0;J[b+12>>2]=0;g=a>>31;rf(a,g,b);d=J[b+4>>2]-J[b>>2]|0;mk(d+c|0,c,a);lk(c,J[b>>2],d);h=J[k+44>>2];c=a+d|0;g=c>>>0>>0?g+1|0:g;a=c+J[k+40>>2]|0;ji(e,a);a=J[b+12>>2];J[b+12>>2]=0;if(a){fl(a)}a=J[b>>2];if(a){J[b+4>>2]=a;fl(a)}ia=b+32|0;a=J[k>>2];if(a){J[k+4>>2]=a;fl(a)}a=J[k+48>>2];if(a){fl(a)}ia=k- -64|0;break ad}k=1;break v;case 12:t=a;l=0;o=0;d=0;q=0;u=0;h=0;k=ia+-64|0;ia=k;J[k+56>>2]=0;J[k+48>>2]=0;J[k+52>>2]=0;td:{a=n+1|0;if(a){if(a>>>0>=536870912){break a}a=a<<3;o=ll(a);J[k+48>>2]=o;l=nk(o,0,(n<<3)+8|0)+a|0}ud:{if((b|0)<=0){break ud}a=0;if(b>>>0>=4){i=b&-4;while(1){c=a<<2;f=(J[c+t>>2]<<3)+o|0;g=J[f+4>>2];j=J[f>>2]+1|0;g=j?g:g+1|0;J[f>>2]=j;J[f+4>>2]=g;g=(J[t+(c|4)>>2]<<3)+o|0;j=J[g+4>>2];f=J[g>>2]+1|0;j=f?j:j+1|0;J[g>>2]=f;J[g+4>>2]=j;g=(J[t+(c|8)>>2]<<3)+o|0;p=J[g+4>>2];f=J[g>>2]+1|0;p=f?p:p+1|0;J[g>>2]=f;J[g+4>>2]=p;c=(J[t+(c|12)>>2]<<3)+o|0;g=J[c+4>>2];f=J[c>>2]+1|0;g=f?g:g+1|0;J[c>>2]=f;J[c+4>>2]=g;a=a+4|0;d=d+4|0;if((i|0)!=(d|0)){continue}break}}d=b&3;if(!d){break ud}while(1){c=(J[t+(a<<2)>>2]<<3)+o|0;j=J[c+4>>2];g=J[c>>2]+1|0;j=g?j:j+1|0;J[c>>2]=g;J[c+4>>2]=j;a=a+1|0;q=q+1|0;if((d|0)!=(q|0)){continue}break}}J[k+8>>2]=0;J[k+12>>2]=0;J[k+16>>2]=0;J[k+20>>2]=0;J[k+24>>2]=0;J[k+28>>2]=0;J[k+32>>2]=0;J[k>>2]=0;J[k+4>>2]=0;J[k+40>>2]=0;J[k+44>>2]=0;d=0;n=0;c=0;q=0;r=ia-32|0;ia=r;a=l-o>>3;vd:{if((a|0)<=0){break vd}l=a&3;wd:{if(a>>>0<4){a=0;break wd}B=a&-4;a=0;while(1){D=a|1;f=(D<<3)+o|0;g=J[f+4>>2];p=J[f>>2];A=a|2;j=(A<<3)+o|0;f=J[j+4>>2];s=J[j>>2];x=a|3;i=(x<<3)+o|0;j=J[i+4>>2];y=J[i>>2];w=c;c=(a<<3)+o|0;z=J[c+4>>2];i=J[c>>2];c=j|y?x:f|s?A:g|p?D:!(z|i)?w:a;w=p;p=h+z|0;u=i+u|0;p=u>>>0>>0?p+1|0:p;i=u;h=w+i|0;g=g+p|0;g=h>>>0>>0?g+1|0:g;i=h;h=h+s|0;g=g+f|0;g=h>>>0>>0?g+1|0:g;i=h;h=h+y|0;f=g+j|0;u=h;h=h>>>0>>0?f+1|0:f;a=a+4|0;d=d+4|0;if((B|0)!=(d|0)){continue}break}}if(!l){break vd}while(1){f=c;c=(a<<3)+o|0;g=J[c+4>>2];d=J[c>>2];c=!(g|d)?f:a;a=a+1|0;j=g+h|0;f=d+u|0;j=f>>>0>>0?j+1|0:j;u=f;h=j;n=n+1|0;if((l|0)!=(n|0)){continue}break}}g=c+1|0;J[k+12>>2]=g;d=J[k>>2];a=J[k+4>>2]-d>>3;xd:{if(a>>>0>>0){lf(k,g-a|0);break xd}if(a>>>0<=g>>>0){break xd}J[k+4>>2]=d+(g<<3)}l=0;yd:{zd:{Ad:{Bd:{if((c|0)>=0){v=+(u>>>0)+ +(h>>>0)*4294967296;h=J[k>>2];a=0;while(1){f=a<<3;j=f+o|0;d=J[j+4>>2];j=J[j>>2];i=(d|j)!=0;f=h+f|0;m=(+(j>>>0)+ +(d>>>0)*4294967296)/v*524288+.5;Cd:{if(m<4294967296&m>=0){d=~~m>>>0;break Cd}d=0}d=d?d:i?1:d;J[f>>2]=d;l=d+l|0;d=(a|0)==(c|0);a=a+1|0;if(!d){continue}break}if((l|0)==524288){break Bd}}J[r+16>>2]=0;J[r+8>>2]=0;J[r+12>>2]=0;n=0;Dd:{if(!g){break Dd}if(g>>>0>=1073741824){break a}f=g<<2;q=ll(f);J[r+8>>2]=q;d=0;h=nk(q,0,f);a=0;if(c>>>0>=7){j=g&-8;while(1){J[h+(a<<2)>>2]=a;i=a|1;J[h+(i<<2)>>2]=i;i=a|2;J[h+(i<<2)>>2]=i;i=a|3;J[h+(i<<2)>>2]=i;i=a|4;J[h+(i<<2)>>2]=i;i=a|5;J[h+(i<<2)>>2]=i;i=a|6;J[h+(i<<2)>>2]=i;i=a|7;J[h+(i<<2)>>2]=i;a=a+8|0;n=n+8|0;if((j|0)!=(n|0)){continue}break}}n=h+f|0;f=g&7;if(!f){break Dd}while(1){J[h+(a<<2)>>2]=a;a=a+1|0;d=d+1|0;if((f|0)!=(d|0)){continue}break}}J[r+24>>2]=k;a=n-q|0;d=a>>2;Ed:{Fd:{if((a|0)>=513){a=d;while(1){h=ll(a<<2);if(h){break Fd}h=a>>>0>1;a=a>>>1|0;if(h){continue}break}}cg(q,n,r+24|0,d,0,0);break Ed}cg(q,n,r+24|0,d,h,a);fl(h)}if((l|0)<524288){a=J[k>>2]+(J[n-4>>2]<<3)|0;J[a>>2]=(J[a>>2]-l|0)+524288;a=0;break Ad}if((c|0)>0){j=J[k>>2];n=l-524288|0;while(1){m=524288/+(l|0);d=c;while(1){Gd:{Hd:{h=j+(J[(d<<2)+q>>2]<<3)|0;a=J[h>>2];if(a>>>0>=2){i=h;p=a;v=V(m*+(a>>>0));Id:{if(R(v)<2147483648){f=~~v;break Id}f=-2147483648}h=(a|0)==(f|0)?1:a-f|0;a=(a|0)>(h|0)?h:a-1|0;a=(a|0)<(n|0)?a:n;J[i>>2]=p-a;n=n-a|0;l=l-a|0;if((l|0)!=524288){break Hd}l=524288;break Gd}if((c|0)!=(d|0)){break Gd}a=1;break Ad}a=(d|0)>1;d=d-1|0;if(a){continue}}break}a=0;if((n|0)>0){continue}break}break Ad}a=0;if(l>>>0<524289){break Ad}while(1)continue}if((c|0)<0){break yd}break zd}d=J[r+8>>2];if(d){fl(d)}if((c|0)<0|a){break yd}}d=J[k>>2];l=0;n=0;a=0;if(c>>>0>=3){f=g&-4;q=0;while(1){h=n<<3;j=h+d|0;J[j+4>>2]=a;i=d+(h|8)|0;a=J[j>>2]+a|0;J[i+4>>2]=a;j=d+(h|16)|0;a=a+J[i>>2]|0;J[j+4>>2]=a;h=d+(h|24)|0;a=a+J[j>>2]|0;J[h+4>>2]=a;a=a+J[h>>2]|0;n=n+4|0;q=q+4|0;if((f|0)!=(q|0)){continue}break}}h=g&3;if(h){while(1){f=d+(n<<3)|0;J[f+4>>2]=a;n=n+1|0;a=J[f>>2]+a|0;l=l+1|0;if((h|0)!=(l|0)){continue}break}}if((a|0)!=524288){break yd}a=0;m=0;Jd:{if((c|0)<0){break Jd}h=J[k>>2];if(c){c=g&-2;d=0;while(1){f=a<<3;j=J[f+h>>2];if(j){f=f+o|0;m=(+M[f>>2]+ +M[f+4>>2]*4294967296)*pk(+(j>>>0)*19073486328125e-19)+m}f=(a|1)<<3;j=J[f+h>>2];if(j){f=f+o|0;m=(+M[f>>2]+ +M[f+4>>2]*4294967296)*pk(+(j>>>0)*19073486328125e-19)+m}a=a+2|0;d=d+2|0;if((c|0)!=(d|0)){continue}break}}if(!(g&1)){break Jd}a=a<<3;c=J[a+h>>2];if(!c){break Jd}a=a+o|0;m=(+M[a>>2]+ +M[a+4>>2]*4294967296)*pk(+(c>>>0)*19073486328125e-19)+m}m=W(-m);Kd:{if(m<0x10000000000000000&m>=0){c=R(m)>=1?~~(m>0?T(V(m*2.3283064365386963e-10),4294967295):W((m-+(~~m>>>0>>>0))*2.3283064365386963e-10))>>>0:0;a=~~m>>>0;break Kd}c=0;a=0}J[k+16>>2]=a;J[k+20>>2]=c;qf(k,e)}ia=r+32|0;d=J[k+16>>2];a=J[k+20>>2];c=J[e+4>>2]-J[e>>2]|0;J[k+40>>2]=c;J[k+44>>2]=0;g=a<<1|d>>>31;a=(d<<1)+39|0;p=a>>>0<39?g+1|0:g;a=c+((p&7)<<29|a>>>3)|0;f=p>>>3|0;f=a>>>0>>0?f+1|0:f;a=a+8|0;ji(e,a);a=J[e>>2];J[k+28>>2]=0;J[k+32>>2]=2097152;J[k+24>>2]=a+J[k+40>>2];if((b|0)>0){a=2097152;while(1){c=b-1|0;h=J[k>>2]+(J[t+(c<<2)>>2]<<3)|0;d=J[h>>2];g=d<<10;if(g>>>0<=a>>>0){while(1){f=J[k+28>>2];J[k+28>>2]=f+1;H[f+J[k+24>>2]|0]=a;a=J[k+32>>2]>>>8|0;J[k+32>>2]=a;if(a>>>0>=g>>>0){continue}break}}f=J[h+4>>2];h=(a>>>0)/(d>>>0)|0;a=f+((h<<19)+(a-P(d,h)|0)|0)|0;J[k+32>>2]=a;d=(b|0)>1;b=c;if(d){continue}break}}b=ia-32|0;ia=b;c=J[e>>2]+J[k+40>>2]|0;a=J[k+32>>2];d=a-2097152|0;Ld:{if(d>>>0<=63){H[J[k+24>>2]+J[k+28>>2]|0]=a;a=J[k+28>>2]+1|0;break Ld}if(d>>>0<=16383){d=J[k+24>>2]+J[k+28>>2]|0;H[d+1|0]=a+16384>>>8;H[d|0]=a;a=J[k+28>>2]+2|0;break Ld}if(d>>>0<=4194303){d=J[k+24>>2]+J[k+28>>2]|0;H[d+2|0]=a+6291456>>>16;H[d+1|0]=a>>>8;H[d|0]=a;a=J[k+28>>2]+3|0;break Ld}if(d>>>0<=1073741823){d=J[k+24>>2]+J[k+28>>2]|0;h=a-1075838976|0;H[d+3|0]=h>>>24;H[d+2|0]=h>>>16;H[d+1|0]=a>>>8;H[d|0]=a;a=J[k+28>>2]+4|0;break Ld}a=J[k+28>>2]}J[b>>2]=0;J[b+4>>2]=0;H[b+24|0]=0;J[b+16>>2]=0;J[b+20>>2]=0;J[b+8>>2]=0;J[b+12>>2]=0;g=a>>31;rf(a,g,b);d=J[b+4>>2]-J[b>>2]|0;mk(d+c|0,c,a);lk(c,J[b>>2],d);h=J[k+44>>2];c=a+d|0;g=c>>>0>>0?g+1|0:g;a=c+J[k+40>>2]|0;ji(e,a);a=J[b+12>>2];J[b+12>>2]=0;if(a){fl(a)}a=J[b>>2];if(a){J[b+4>>2]=a;fl(a)}ia=b+32|0;a=J[k>>2];if(a){J[k+4>>2]=a;fl(a)}a=J[k+48>>2];if(a){fl(a)}ia=k- -64|0;break td}k=1;break v;case 13:t=a;l=0;o=0;q=0;u=0;h=0;c=ia+-64|0;ia=c;J[c+56>>2]=0;J[c+48>>2]=0;J[c+52>>2]=0;Md:{a=n+1|0;if(a){if(a>>>0>=536870912){break a}a=a<<3;l=ll(a);J[c+48>>2]=l;k=nk(l,0,(n<<3)+8|0)+a|0}Nd:{if((b|0)<=0){break Nd}a=0;if(b>>>0>=4){j=b&-4;while(1){d=a<<2;g=(J[d+t>>2]<<3)+l|0;i=J[g+4>>2];f=J[g>>2]+1|0;i=f?i:i+1|0;J[g>>2]=f;J[g+4>>2]=i;g=(J[t+(d|4)>>2]<<3)+l|0;f=J[g+4>>2];i=J[g>>2]+1|0;f=i?f:f+1|0;J[g>>2]=i;J[g+4>>2]=f;g=(J[t+(d|8)>>2]<<3)+l|0;p=J[g+4>>2];f=J[g>>2]+1|0;p=f?p:p+1|0;J[g>>2]=f;J[g+4>>2]=p;d=(J[t+(d|12)>>2]<<3)+l|0;i=J[d+4>>2];g=J[d>>2]+1|0;i=g?i:i+1|0;J[d>>2]=g;J[d+4>>2]=i;a=a+4|0;o=o+4|0;if((j|0)!=(o|0)){continue}break}}g=b&3;if(!g){break Nd}while(1){d=(J[t+(a<<2)>>2]<<3)+l|0;f=J[d+4>>2];j=J[d>>2]+1|0;f=j?f:f+1|0;J[d>>2]=j;J[d+4>>2]=f;a=a+1|0;q=q+1|0;if((g|0)!=(q|0)){continue}break}}J[c+8>>2]=0;J[c+12>>2]=0;J[c+16>>2]=0;J[c+20>>2]=0;J[c+24>>2]=0;J[c+28>>2]=0;J[c+32>>2]=0;J[c>>2]=0;J[c+4>>2]=0;J[c+40>>2]=0;J[c+44>>2]=0;r=e;e=0;o=0;d=0;q=0;s=ia-32|0;ia=s;a=k-l>>3;Od:{if((a|0)<=0){break Od}k=a&3;Pd:{if(a>>>0<4){a=0;break Pd}B=a&-4;a=0;while(1){D=a|1;f=(D<<3)+l|0;g=J[f+4>>2];p=J[f>>2];A=a|2;j=(A<<3)+l|0;f=J[j+4>>2];n=J[j>>2];x=a|3;i=(x<<3)+l|0;j=J[i+4>>2];y=J[i>>2];w=d;d=(a<<3)+l|0;z=J[d+4>>2];i=J[d>>2];d=j|y?x:f|n?A:g|p?D:!(z|i)?w:a;w=n;x=p;p=h+z|0;n=i+u|0;p=n>>>0>>0?p+1|0:p;h=x+n|0;i=g+p|0;i=h>>>0>>0?i+1|0:i;p=h;h=w+h|0;g=f+i|0;g=h>>>0

>>0?g+1|0:g;f=h;h=h+y|0;g=g+j|0;u=h;h=h>>>0>>0?g+1|0:g;a=a+4|0;e=e+4|0;if((B|0)!=(e|0)){continue}break}}if(!k){break Od}while(1){f=d;d=(a<<3)+l|0;g=J[d+4>>2];e=J[d>>2];d=!(g|e)?f:a;a=a+1|0;f=g+h|0;j=e+u|0;f=j>>>0>>0?f+1|0:f;u=j;h=f;o=o+1|0;if((k|0)!=(o|0)){continue}break}}g=d+1|0;J[c+12>>2]=g;e=J[c>>2];a=J[c+4>>2]-e>>3;Qd:{if(a>>>0>>0){lf(c,g-a|0);break Qd}if(a>>>0<=g>>>0){break Qd}J[c+4>>2]=e+(g<<3)}k=0;Rd:{Sd:{Td:{Ud:{if((d|0)>=0){v=+(u>>>0)+ +(h>>>0)*4294967296;h=J[c>>2];a=0;while(1){f=a<<3;j=f+l|0;e=J[j+4>>2];j=J[j>>2];i=(e|j)!=0;f=h+f|0;m=(+(j>>>0)+ +(e>>>0)*4294967296)/v*1048576+.5;Vd:{if(m<4294967296&m>=0){e=~~m>>>0;break Vd}e=0}e=e?e:i?1:e;J[f>>2]=e;k=e+k|0;e=(a|0)==(d|0);a=a+1|0;if(!e){continue}break}if((k|0)==1048576){break Ud}}J[s+16>>2]=0;J[s+8>>2]=0;J[s+12>>2]=0;n=0;Wd:{if(!g){break Wd}if(g>>>0>=1073741824){break a}f=g<<2;q=ll(f);J[s+8>>2]=q;e=0;h=nk(q,0,f);a=0;if(d>>>0>=7){j=g&-8;while(1){J[h+(a<<2)>>2]=a;i=a|1;J[h+(i<<2)>>2]=i;i=a|2;J[h+(i<<2)>>2]=i;i=a|3;J[h+(i<<2)>>2]=i;i=a|4;J[h+(i<<2)>>2]=i;i=a|5;J[h+(i<<2)>>2]=i;i=a|6;J[h+(i<<2)>>2]=i;i=a|7;J[h+(i<<2)>>2]=i;a=a+8|0;n=n+8|0;if((j|0)!=(n|0)){continue}break}}n=h+f|0;f=g&7;if(!f){break Wd}while(1){J[h+(a<<2)>>2]=a;a=a+1|0;e=e+1|0;if((f|0)!=(e|0)){continue}break}}J[s+24>>2]=c;a=n-q|0;e=a>>2;Xd:{Yd:{if((a|0)>=513){a=e;while(1){h=ll(a<<2);if(h){break Yd}h=a>>>0>1;a=a>>>1|0;if(h){continue}break}}fg(q,n,s+24|0,e,0,0);break Xd}fg(q,n,s+24|0,e,h,a);fl(h)}if((k|0)<1048576){a=J[c>>2]+(J[n-4>>2]<<3)|0;J[a>>2]=(J[a>>2]-k|0)- -1048576;a=0;break Td}if((d|0)>0){j=J[c>>2];o=k+-1048576|0;while(1){m=1048576/+(k|0);e=d;while(1){Zd:{_d:{h=j+(J[(e<<2)+q>>2]<<3)|0;a=J[h>>2];if(a>>>0>=2){i=h;p=a;v=V(m*+(a>>>0));$d:{if(R(v)<2147483648){f=~~v;break $d}f=-2147483648}h=(a|0)==(f|0)?1:a-f|0;a=(a|0)>(h|0)?h:a-1|0;a=(a|0)<(o|0)?a:o;J[i>>2]=p-a;o=o-a|0;k=k-a|0;if((k|0)!=1048576){break _d}k=1048576;break Zd}if((d|0)!=(e|0)){break Zd}a=1;break Td}a=(e|0)>1;e=e-1|0;if(a){continue}}break}a=0;if((o|0)>0){continue}break}break Td}a=0;if(k>>>0<1048577){break Td}while(1)continue}if((d|0)<0){break Rd}break Sd}e=J[s+8>>2];if(e){fl(e)}if((d|0)<0|a){break Rd}}e=J[c>>2];k=0;o=0;a=0;if(d>>>0>=3){f=g&-4;q=0;while(1){h=o<<3;j=h+e|0;J[j+4>>2]=a;i=e+(h|8)|0;a=J[j>>2]+a|0;J[i+4>>2]=a;j=e+(h|16)|0;a=a+J[i>>2]|0;J[j+4>>2]=a;h=e+(h|24)|0;a=a+J[j>>2]|0;J[h+4>>2]=a;a=a+J[h>>2]|0;o=o+4|0;q=q+4|0;if((f|0)!=(q|0)){continue}break}}h=g&3;if(h){while(1){f=e+(o<<3)|0;J[f+4>>2]=a;o=o+1|0;a=J[f>>2]+a|0;k=k+1|0;if((h|0)!=(k|0)){continue}break}}if((a|0)!=1048576){break Rd}a=0;m=0;ae:{if((d|0)<0){break ae}h=J[c>>2];if(d){d=g&-2;e=0;while(1){f=a<<3;j=J[f+h>>2];if(j){f=f+l|0;m=(+M[f>>2]+ +M[f+4>>2]*4294967296)*pk(+(j>>>0)*9.5367431640625e-7)+m}f=(a|1)<<3;j=J[f+h>>2];if(j){f=f+l|0;m=(+M[f>>2]+ +M[f+4>>2]*4294967296)*pk(+(j>>>0)*9.5367431640625e-7)+m}a=a+2|0;e=e+2|0;if((d|0)!=(e|0)){continue}break}}if(!(g&1)){break ae}a=a<<3;d=J[a+h>>2];if(!d){break ae}a=a+l|0;m=(+M[a>>2]+ +M[a+4>>2]*4294967296)*pk(+(d>>>0)*9.5367431640625e-7)+m}m=W(-m);be:{if(m<0x10000000000000000&m>=0){d=R(m)>=1?~~(m>0?T(V(m*2.3283064365386963e-10),4294967295):W((m-+(~~m>>>0>>>0))*2.3283064365386963e-10))>>>0:0;a=~~m>>>0;break be}d=0;a=0}J[c+16>>2]=a;J[c+20>>2]=d;qf(c,r)}ia=s+32|0;e=J[c+16>>2];a=J[c+20>>2];d=J[r+4>>2]-J[r>>2]|0;J[c+40>>2]=d;J[c+44>>2]=0;g=a<<1|e>>>31;a=(e<<1)+39|0;p=a>>>0<39?g+1|0:g;a=d+((p&7)<<29|a>>>3)|0;g=p>>>3|0;g=a>>>0>>0?g+1|0:g;a=a+8|0;ji(r,a);a=J[r>>2];J[c+28>>2]=0;J[c+32>>2]=4194304;J[c+24>>2]=a+J[c+40>>2];if((b|0)>0){a=4194304;while(1){d=b-1|0;h=J[c>>2]+(J[t+(d<<2)>>2]<<3)|0;e=J[h>>2];g=e<<10;if(g>>>0<=a>>>0){while(1){f=J[c+28>>2];J[c+28>>2]=f+1;H[f+J[c+24>>2]|0]=a;a=J[c+32>>2]>>>8|0;J[c+32>>2]=a;if(a>>>0>=g>>>0){continue}break}}f=J[h+4>>2];h=(a>>>0)/(e>>>0)|0;a=f+((h<<20)+(a-P(e,h)|0)|0)|0;J[c+32>>2]=a;e=(b|0)>1;b=d;if(e){continue}break}}wf(c,r);a=J[c>>2];if(a){J[c+4>>2]=a;fl(a)}a=J[c+48>>2];if(a){fl(a)}ia=c- -64|0;break Md}k=1;break v;case 14:t=a;l=0;o=0;q=0;u=0;h=0;c=ia+-64|0;ia=c;J[c+56>>2]=0;J[c+48>>2]=0;J[c+52>>2]=0;ce:{a=n+1|0;if(a){if(a>>>0>=536870912){break a}a=a<<3;l=ll(a);J[c+48>>2]=l;k=nk(l,0,(n<<3)+8|0)+a|0}de:{if((b|0)<=0){break de}a=0;if(b>>>0>=4){i=b&-4;while(1){d=a<<2;f=(J[d+t>>2]<<3)+l|0;g=J[f+4>>2];j=J[f>>2]+1|0;g=j?g:g+1|0;J[f>>2]=j;J[f+4>>2]=g;g=(J[t+(d|4)>>2]<<3)+l|0;p=J[g+4>>2];f=J[g>>2]+1|0;p=f?p:p+1|0;J[g>>2]=f;J[g+4>>2]=p;g=(J[t+(d|8)>>2]<<3)+l|0;j=J[g+4>>2];f=J[g>>2]+1|0;j=f?j:j+1|0;J[g>>2]=f;J[g+4>>2]=j;d=(J[t+(d|12)>>2]<<3)+l|0;g=J[d+4>>2];f=J[d>>2]+1|0;g=f?g:g+1|0;J[d>>2]=f;J[d+4>>2]=g;a=a+4|0;o=o+4|0;if((i|0)!=(o|0)){continue}break}}g=b&3;if(!g){break de}while(1){d=(J[t+(a<<2)>>2]<<3)+l|0;p=J[d+4>>2];f=J[d>>2]+1|0;p=f?p:p+1|0;J[d>>2]=f;J[d+4>>2]=p;a=a+1|0;q=q+1|0;if((g|0)!=(q|0)){continue}break}}J[c+8>>2]=0;J[c+12>>2]=0;J[c+16>>2]=0;J[c+20>>2]=0;J[c+24>>2]=0;J[c+28>>2]=0;J[c+32>>2]=0;J[c>>2]=0;J[c+4>>2]=0;J[c+40>>2]=0;J[c+44>>2]=0;r=e;e=0;o=0;d=0;q=0;s=ia-32|0;ia=s;a=k-l>>3;ee:{if((a|0)<=0){break ee}k=a&3;fe:{if(a>>>0<4){a=0;break fe}D=a&-4;a=0;while(1){p=a|1;f=(p<<3)+l|0;g=J[f+4>>2];n=J[f>>2];A=a|2;j=(A<<3)+l|0;f=J[j+4>>2];y=J[j>>2];x=a|3;i=(x<<3)+l|0;j=J[i+4>>2];z=J[i>>2];w=d;d=(a<<3)+l|0;B=J[d+4>>2];i=J[d>>2];d=j|z?x:f|y?A:g|n?p:!(B|i)?w:a;p=j;w=n;j=h+B|0;n=i+u|0;j=n>>>0>>0?j+1|0:j;i=n;h=w+i|0;g=g+j|0;g=h>>>0>>0?g+1|0:g;j=h;h=h+y|0;g=g+f|0;g=h>>>0>>0?g+1|0:g;f=h;h=h+z|0;i=g+p|0;u=h;h=h>>>0>>0?i+1|0:i;a=a+4|0;e=e+4|0;if((D|0)!=(e|0)){continue}break}}if(!k){break ee}while(1){f=d;d=(a<<3)+l|0;g=J[d+4>>2];e=J[d>>2];d=!(g|e)?f:a;a=a+1|0;p=g+h|0;f=e+u|0;p=f>>>0>>0?p+1|0:p;u=f;h=p;o=o+1|0;if((k|0)!=(o|0)){continue}break}}g=d+1|0;J[c+12>>2]=g;e=J[c>>2];a=J[c+4>>2]-e>>3;ge:{if(a>>>0>>0){lf(c,g-a|0);break ge}if(a>>>0<=g>>>0){break ge}J[c+4>>2]=e+(g<<3)}k=0;he:{ie:{je:{ke:{if((d|0)>=0){v=+(u>>>0)+ +(h>>>0)*4294967296;h=J[c>>2];a=0;while(1){f=a<<3;j=f+l|0;e=J[j+4>>2];j=J[j>>2];i=(e|j)!=0;f=h+f|0;m=(+(j>>>0)+ +(e>>>0)*4294967296)/v*1048576+.5;le:{if(m<4294967296&m>=0){e=~~m>>>0;break le}e=0}e=e?e:i?1:e;J[f>>2]=e;k=e+k|0;e=(a|0)==(d|0);a=a+1|0;if(!e){continue}break}if((k|0)==1048576){break ke}}J[s+16>>2]=0;J[s+8>>2]=0;J[s+12>>2]=0;n=0;me:{if(!g){break me}if(g>>>0>=1073741824){break a}f=g<<2;q=ll(f);J[s+8>>2]=q;e=0;h=nk(q,0,f);a=0;if(d>>>0>=7){j=g&-8;while(1){J[h+(a<<2)>>2]=a;i=a|1;J[h+(i<<2)>>2]=i;i=a|2;J[h+(i<<2)>>2]=i;i=a|3;J[h+(i<<2)>>2]=i;i=a|4;J[h+(i<<2)>>2]=i;i=a|5;J[h+(i<<2)>>2]=i;i=a|6;J[h+(i<<2)>>2]=i;i=a|7;J[h+(i<<2)>>2]=i;a=a+8|0;n=n+8|0;if((j|0)!=(n|0)){continue}break}}n=h+f|0;f=g&7;if(!f){break me}while(1){J[h+(a<<2)>>2]=a;a=a+1|0;e=e+1|0;if((f|0)!=(e|0)){continue}break}}J[s+24>>2]=c;a=n-q|0;e=a>>2;ne:{oe:{if((a|0)>=513){a=e;while(1){h=ll(a<<2);if(h){break oe}h=a>>>0>1;a=a>>>1|0;if(h){continue}break}}ig(q,n,s+24|0,e,0,0);break ne}ig(q,n,s+24|0,e,h,a);fl(h)}if((k|0)<1048576){a=J[c>>2]+(J[n-4>>2]<<3)|0;J[a>>2]=(J[a>>2]-k|0)- -1048576;a=0;break je}if((d|0)>0){j=J[c>>2];o=k+-1048576|0;while(1){m=1048576/+(k|0);e=d;while(1){pe:{qe:{h=j+(J[(e<<2)+q>>2]<<3)|0;a=J[h>>2];if(a>>>0>=2){i=h;p=a;v=V(m*+(a>>>0));re:{if(R(v)<2147483648){f=~~v;break re}f=-2147483648}h=(a|0)==(f|0)?1:a-f|0;a=(a|0)>(h|0)?h:a-1|0;a=(a|0)<(o|0)?a:o;J[i>>2]=p-a;o=o-a|0;k=k-a|0;if((k|0)!=1048576){break qe}k=1048576;break pe}if((d|0)!=(e|0)){break pe}a=1;break je}a=(e|0)>1;e=e-1|0;if(a){continue}}break}a=0;if((o|0)>0){continue}break}break je}a=0;if(k>>>0<1048577){break je}while(1)continue}if((d|0)<0){break he}break ie}e=J[s+8>>2];if(e){fl(e)}if((d|0)<0|a){break he}}e=J[c>>2];k=0;o=0;a=0;if(d>>>0>=3){f=g&-4;q=0;while(1){h=o<<3;j=h+e|0;J[j+4>>2]=a;i=e+(h|8)|0;a=J[j>>2]+a|0;J[i+4>>2]=a;j=e+(h|16)|0;a=a+J[i>>2]|0;J[j+4>>2]=a;h=e+(h|24)|0;a=a+J[j>>2]|0;J[h+4>>2]=a;a=a+J[h>>2]|0;o=o+4|0;q=q+4|0;if((f|0)!=(q|0)){continue}break}}h=g&3;if(h){while(1){f=e+(o<<3)|0;J[f+4>>2]=a;o=o+1|0;a=J[f>>2]+a|0;k=k+1|0;if((h|0)!=(k|0)){continue}break}}if((a|0)!=1048576){break he}a=0;m=0;se:{if((d|0)<0){break se}h=J[c>>2];if(d){d=g&-2;e=0;while(1){f=a<<3;j=J[f+h>>2];if(j){f=f+l|0;m=(+M[f>>2]+ +M[f+4>>2]*4294967296)*pk(+(j>>>0)*9.5367431640625e-7)+m}f=(a|1)<<3;j=J[f+h>>2];if(j){f=f+l|0;m=(+M[f>>2]+ +M[f+4>>2]*4294967296)*pk(+(j>>>0)*9.5367431640625e-7)+m}a=a+2|0;e=e+2|0;if((d|0)!=(e|0)){continue}break}}if(!(g&1)){break se}a=a<<3;d=J[a+h>>2];if(!d){break se}a=a+l|0;m=(+M[a>>2]+ +M[a+4>>2]*4294967296)*pk(+(d>>>0)*9.5367431640625e-7)+m}m=W(-m);te:{if(m<0x10000000000000000&m>=0){d=R(m)>=1?~~(m>0?T(V(m*2.3283064365386963e-10),4294967295):W((m-+(~~m>>>0>>>0))*2.3283064365386963e-10))>>>0:0;a=~~m>>>0;break te}d=0;a=0}J[c+16>>2]=a;J[c+20>>2]=d;qf(c,r)}ia=s+32|0;e=J[c+16>>2];a=J[c+20>>2];d=J[r+4>>2]-J[r>>2]|0;J[c+40>>2]=d;J[c+44>>2]=0;g=a<<1|e>>>31;a=(e<<1)+39|0;j=a>>>0<39?g+1|0:g;a=d+((j&7)<<29|a>>>3)|0;i=j>>>3|0;i=a>>>0>>0?i+1|0:i;a=a+8|0;ji(r,a);a=J[r>>2];J[c+28>>2]=0;J[c+32>>2]=4194304;J[c+24>>2]=a+J[c+40>>2];if((b|0)>0){a=4194304;while(1){d=b-1|0;h=J[c>>2]+(J[t+(d<<2)>>2]<<3)|0;e=J[h>>2];g=e<<10;if(g>>>0<=a>>>0){while(1){f=J[c+28>>2];J[c+28>>2]=f+1;H[f+J[c+24>>2]|0]=a;a=J[c+32>>2]>>>8|0;J[c+32>>2]=a;if(a>>>0>=g>>>0){continue}break}}f=J[h+4>>2];h=(a>>>0)/(e>>>0)|0;a=f+((h<<20)+(a-P(e,h)|0)|0)|0;J[c+32>>2]=a;e=(b|0)>1;b=d;if(e){continue}break}}wf(c,r);a=J[c>>2];if(a){J[c+4>>2]=a;fl(a)}a=J[c+48>>2];if(a){fl(a)}ia=c- -64|0;break ce}k=1;break v;case 15:t=a;l=0;o=0;q=0;u=0;h=0;c=ia+-64|0;ia=c;J[c+56>>2]=0;J[c+48>>2]=0;J[c+52>>2]=0;ue:{a=n+1|0;if(a){if(a>>>0>=536870912){break a}a=a<<3;l=ll(a);J[c+48>>2]=l;k=nk(l,0,(n<<3)+8|0)+a|0}ve:{if((b|0)<=0){break ve}a=0;if(b>>>0>=4){i=b&-4;while(1){d=a<<2;f=(J[d+t>>2]<<3)+l|0;g=J[f+4>>2];j=J[f>>2]+1|0;g=j?g:g+1|0;J[f>>2]=j;J[f+4>>2]=g;g=(J[t+(d|4)>>2]<<3)+l|0;j=J[g+4>>2];f=J[g>>2]+1|0;j=f?j:j+1|0;J[g>>2]=f;J[g+4>>2]=j;g=(J[t+(d|8)>>2]<<3)+l|0;f=J[g+4>>2];j=J[g>>2]+1|0;f=j?f:f+1|0;J[g>>2]=j;J[g+4>>2]=f;d=(J[t+(d|12)>>2]<<3)+l|0;g=J[d+4>>2];f=J[d>>2]+1|0;g=f?g:g+1|0;J[d>>2]=f;J[d+4>>2]=g;a=a+4|0;o=o+4|0;if((i|0)!=(o|0)){continue}break}}g=b&3;if(!g){break ve}while(1){d=(J[t+(a<<2)>>2]<<3)+l|0;j=J[d+4>>2];f=J[d>>2]+1|0;j=f?j:j+1|0;J[d>>2]=f;J[d+4>>2]=j;a=a+1|0;q=q+1|0;if((g|0)!=(q|0)){continue}break}}J[c+8>>2]=0;J[c+12>>2]=0;J[c+16>>2]=0;J[c+20>>2]=0;J[c+24>>2]=0;J[c+28>>2]=0;J[c+32>>2]=0;J[c>>2]=0;J[c+4>>2]=0;J[c+40>>2]=0;J[c+44>>2]=0;r=e;e=0;o=0;d=0;q=0;s=ia-32|0;ia=s;a=k-l>>3;we:{if((a|0)<=0){break we}k=a&3;xe:{if(a>>>0<4){a=0;break xe}D=a&-4;a=0;while(1){p=a|1;f=(p<<3)+l|0;g=J[f+4>>2];n=J[f>>2];A=a|2;j=(A<<3)+l|0;f=J[j+4>>2];y=J[j>>2];x=a|3;i=(x<<3)+l|0;j=J[i+4>>2];z=J[i>>2];w=d;d=(a<<3)+l|0;B=J[d+4>>2];i=J[d>>2];d=j|z?x:f|y?A:g|n?p:!(B|i)?w:a;p=f;w=n;f=h+B|0;n=i+u|0;f=n>>>0>>0?f+1|0:f;i=n;h=w+i|0;g=g+f|0;g=h>>>0>>0?g+1|0:g;f=h;h=h+y|0;i=g+p|0;i=h>>>0>>0?i+1|0:i;f=h;h=h+z|0;g=i+j|0;u=h;h=h>>>0>>0?g+1|0:g;a=a+4|0;e=e+4|0;if((D|0)!=(e|0)){continue}break}}if(!k){break we}while(1){f=d;d=(a<<3)+l|0;g=J[d+4>>2];e=J[d>>2];d=!(g|e)?f:a;a=a+1|0;j=g+h|0;f=e+u|0;j=f>>>0>>0?j+1|0:j;u=f;h=j;o=o+1|0;if((k|0)!=(o|0)){continue}break}}g=d+1|0;J[c+12>>2]=g;e=J[c>>2];a=J[c+4>>2]-e>>3;ye:{if(a>>>0>>0){lf(c,g-a|0);break ye}if(a>>>0<=g>>>0){break ye}J[c+4>>2]=e+(g<<3)}k=0;ze:{Ae:{Be:{Ce:{if((d|0)>=0){v=+(u>>>0)+ +(h>>>0)*4294967296;h=J[c>>2];a=0;while(1){f=a<<3;j=f+l|0;e=J[j+4>>2];j=J[j>>2];i=(e|j)!=0;f=h+f|0;m=(+(j>>>0)+ +(e>>>0)*4294967296)/v*1048576+.5;De:{if(m<4294967296&m>=0){e=~~m>>>0;break De}e=0}e=e?e:i?1:e;J[f>>2]=e;k=e+k|0;e=(a|0)==(d|0);a=a+1|0;if(!e){continue}break}if((k|0)==1048576){break Ce}}J[s+16>>2]=0;J[s+8>>2]=0;J[s+12>>2]=0;n=0;Ee:{if(!g){break Ee}if(g>>>0>=1073741824){break a}f=g<<2;q=ll(f);J[s+8>>2]=q;e=0;h=nk(q,0,f);a=0;if(d>>>0>=7){j=g&-8;while(1){J[h+(a<<2)>>2]=a;i=a|1;J[h+(i<<2)>>2]=i;i=a|2;J[h+(i<<2)>>2]=i;i=a|3;J[h+(i<<2)>>2]=i;i=a|4;J[h+(i<<2)>>2]=i;i=a|5;J[h+(i<<2)>>2]=i;i=a|6;J[h+(i<<2)>>2]=i;i=a|7;J[h+(i<<2)>>2]=i;a=a+8|0;n=n+8|0;if((j|0)!=(n|0)){continue}break}}n=h+f|0;f=g&7;if(!f){break Ee}while(1){J[h+(a<<2)>>2]=a;a=a+1|0;e=e+1|0;if((f|0)!=(e|0)){continue}break}}J[s+24>>2]=c;a=n-q|0;e=a>>2;Fe:{Ge:{if((a|0)>=513){a=e;while(1){h=ll(a<<2);if(h){break Ge}h=a>>>0>1;a=a>>>1|0;if(h){continue}break}}lg(q,n,s+24|0,e,0,0);break Fe}lg(q,n,s+24|0,e,h,a);fl(h)}if((k|0)<1048576){a=J[c>>2]+(J[n-4>>2]<<3)|0;J[a>>2]=(J[a>>2]-k|0)- -1048576;a=0;break Be}if((d|0)>0){j=J[c>>2];o=k+-1048576|0;while(1){m=1048576/+(k|0);e=d;while(1){He:{Ie:{h=j+(J[(e<<2)+q>>2]<<3)|0;a=J[h>>2];if(a>>>0>=2){i=h;p=a;v=V(m*+(a>>>0));Je:{if(R(v)<2147483648){f=~~v;break Je}f=-2147483648}h=(a|0)==(f|0)?1:a-f|0;a=(a|0)>(h|0)?h:a-1|0;a=(a|0)<(o|0)?a:o;J[i>>2]=p-a;o=o-a|0;k=k-a|0;if((k|0)!=1048576){break Ie}k=1048576;break He}if((d|0)!=(e|0)){break He}a=1;break Be}a=(e|0)>1;e=e-1|0;if(a){continue}}break}a=0;if((o|0)>0){continue}break}break Be}a=0;if(k>>>0<1048577){break Be}while(1)continue}if((d|0)<0){break ze}break Ae}e=J[s+8>>2];if(e){fl(e)}if((d|0)<0|a){break ze}}e=J[c>>2];k=0;o=0;a=0;if(d>>>0>=3){f=g&-4;q=0;while(1){h=o<<3;j=h+e|0;J[j+4>>2]=a;i=e+(h|8)|0;a=J[j>>2]+a|0;J[i+4>>2]=a;j=e+(h|16)|0;a=a+J[i>>2]|0;J[j+4>>2]=a;h=e+(h|24)|0;a=a+J[j>>2]|0;J[h+4>>2]=a;a=a+J[h>>2]|0;o=o+4|0;q=q+4|0;if((f|0)!=(q|0)){continue}break}}h=g&3;if(h){while(1){f=e+(o<<3)|0;J[f+4>>2]=a;o=o+1|0;a=J[f>>2]+a|0;k=k+1|0;if((h|0)!=(k|0)){continue}break}}if((a|0)!=1048576){break ze}a=0;m=0;Ke:{if((d|0)<0){break Ke}h=J[c>>2];if(d){d=g&-2;e=0;while(1){f=a<<3;j=J[f+h>>2];if(j){f=f+l|0;m=(+M[f>>2]+ +M[f+4>>2]*4294967296)*pk(+(j>>>0)*9.5367431640625e-7)+m}f=(a|1)<<3;j=J[f+h>>2];if(j){f=f+l|0;m=(+M[f>>2]+ +M[f+4>>2]*4294967296)*pk(+(j>>>0)*9.5367431640625e-7)+m}a=a+2|0;e=e+2|0;if((d|0)!=(e|0)){continue}break}}if(!(g&1)){break Ke}a=a<<3;d=J[a+h>>2];if(!d){break Ke}a=a+l|0;m=(+M[a>>2]+ +M[a+4>>2]*4294967296)*pk(+(d>>>0)*9.5367431640625e-7)+m}m=W(-m);Le:{if(m<0x10000000000000000&m>=0){d=R(m)>=1?~~(m>0?T(V(m*2.3283064365386963e-10),4294967295):W((m-+(~~m>>>0>>>0))*2.3283064365386963e-10))>>>0:0;a=~~m>>>0;break Le}d=0;a=0}J[c+16>>2]=a;J[c+20>>2]=d;qf(c,r)}ia=s+32|0;e=J[c+16>>2];a=J[c+20>>2];d=J[r+4>>2]-J[r>>2]|0;J[c+40>>2]=d;J[c+44>>2]=0;i=a<<1|e>>>31;a=(e<<1)+39|0;f=i;f=a>>>0<39?f+1|0:f;g=f>>>3|0;a=d+((f&7)<<29|a>>>3)|0;g=a>>>0>>0?g+1|0:g;a=a+8|0;ji(r,a);a=J[r>>2];J[c+28>>2]=0;J[c+32>>2]=4194304;J[c+24>>2]=a+J[c+40>>2];if((b|0)>0){a=4194304;while(1){d=b-1|0;h=J[c>>2]+(J[t+(d<<2)>>2]<<3)|0;e=J[h>>2];g=e<<10;if(g>>>0<=a>>>0){while(1){f=J[c+28>>2];J[c+28>>2]=f+1;H[f+J[c+24>>2]|0]=a;a=J[c+32>>2]>>>8|0;J[c+32>>2]=a;if(a>>>0>=g>>>0){continue}break}}f=J[h+4>>2];h=(a>>>0)/(e>>>0)|0;a=f+((h<<20)+(a-P(e,h)|0)|0)|0;J[c+32>>2]=a;e=(b|0)>1;b=d;if(e){continue}break}}wf(c,r);a=J[c>>2];if(a){J[c+4>>2]=a;fl(a)}a=J[c+48>>2];if(a){fl(a)}ia=c- -64|0;break ue}k=1;break v;case 16:t=a;l=0;o=0;q=0;u=0;h=0;c=ia+-64|0;ia=c;J[c+56>>2]=0;J[c+48>>2]=0;J[c+52>>2]=0;Me:{a=n+1|0;if(a){if(a>>>0>=536870912){break a}a=a<<3;l=ll(a);J[c+48>>2]=l;k=nk(l,0,(n<<3)+8|0)+a|0}Ne:{if((b|0)<=0){break Ne}a=0;if(b>>>0>=4){j=b&-4;while(1){d=a<<2;g=(J[d+t>>2]<<3)+l|0;i=J[g+4>>2];f=J[g>>2]+1|0;i=f?i:i+1|0;J[g>>2]=f;J[g+4>>2]=i;g=(J[t+(d|4)>>2]<<3)+l|0;f=J[g+4>>2];i=J[g>>2]+1|0;f=i?f:f+1|0;J[g>>2]=i;J[g+4>>2]=f;g=(J[t+(d|8)>>2]<<3)+l|0;p=J[g+4>>2];f=J[g>>2]+1|0;p=f?p:p+1|0;J[g>>2]=f;J[g+4>>2]=p;d=(J[t+(d|12)>>2]<<3)+l|0;i=J[d+4>>2];g=J[d>>2]+1|0;i=g?i:i+1|0;J[d>>2]=g;J[d+4>>2]=i;a=a+4|0;o=o+4|0;if((j|0)!=(o|0)){continue}break}}g=b&3;if(!g){break Ne}while(1){d=(J[t+(a<<2)>>2]<<3)+l|0;f=J[d+4>>2];j=J[d>>2]+1|0;f=j?f:f+1|0;J[d>>2]=j;J[d+4>>2]=f;a=a+1|0;q=q+1|0;if((g|0)!=(q|0)){continue}break}}J[c+8>>2]=0;J[c+12>>2]=0;J[c+16>>2]=0;J[c+20>>2]=0;J[c+24>>2]=0;J[c+28>>2]=0;J[c+32>>2]=0;J[c>>2]=0;J[c+4>>2]=0;J[c+40>>2]=0;J[c+44>>2]=0;r=e;e=0;o=0;d=0;q=0;s=ia-32|0;ia=s;a=k-l>>3;Oe:{if((a|0)<=0){break Oe}k=a&3;Pe:{if(a>>>0<4){a=0;break Pe}B=a&-4;a=0;while(1){D=a|1;f=(D<<3)+l|0;g=J[f+4>>2];p=J[f>>2];A=a|2;j=(A<<3)+l|0;f=J[j+4>>2];n=J[j>>2];x=a|3;i=(x<<3)+l|0;j=J[i+4>>2];y=J[i>>2];w=d;d=(a<<3)+l|0;z=J[d+4>>2];i=J[d>>2];d=j|y?x:f|n?A:g|p?D:!(z|i)?w:a;w=n;x=p;p=h+z|0;n=i+u|0;p=n>>>0>>0?p+1|0:p;h=x+n|0;i=g+p|0;i=h>>>0>>0?i+1|0:i;p=h;h=w+h|0;g=f+i|0;g=h>>>0

>>0?g+1|0:g;f=h;h=h+y|0;g=g+j|0;u=h;h=h>>>0>>0?g+1|0:g;a=a+4|0;e=e+4|0;if((B|0)!=(e|0)){continue}break}}if(!k){break Oe}while(1){f=d;d=(a<<3)+l|0;g=J[d+4>>2];e=J[d>>2];d=!(g|e)?f:a;a=a+1|0;f=g+h|0;j=e+u|0;f=j>>>0>>0?f+1|0:f;u=j;h=f;o=o+1|0;if((k|0)!=(o|0)){continue}break}}g=d+1|0;J[c+12>>2]=g;e=J[c>>2];a=J[c+4>>2]-e>>3;Qe:{if(a>>>0>>0){lf(c,g-a|0);break Qe}if(a>>>0<=g>>>0){break Qe}J[c+4>>2]=e+(g<<3)}k=0;Re:{Se:{Te:{Ue:{if((d|0)>=0){v=+(u>>>0)+ +(h>>>0)*4294967296;h=J[c>>2];a=0;while(1){f=a<<3;j=f+l|0;e=J[j+4>>2];j=J[j>>2];i=(e|j)!=0;f=h+f|0;m=(+(j>>>0)+ +(e>>>0)*4294967296)/v*1048576+.5;Ve:{if(m<4294967296&m>=0){e=~~m>>>0;break Ve}e=0}e=e?e:i?1:e;J[f>>2]=e;k=e+k|0;e=(a|0)==(d|0);a=a+1|0;if(!e){continue}break}if((k|0)==1048576){break Ue}}J[s+16>>2]=0;J[s+8>>2]=0;J[s+12>>2]=0;n=0;We:{if(!g){break We}if(g>>>0>=1073741824){break a}f=g<<2;q=ll(f);J[s+8>>2]=q;e=0;h=nk(q,0,f);a=0;if(d>>>0>=7){j=g&-8;while(1){J[h+(a<<2)>>2]=a;i=a|1;J[h+(i<<2)>>2]=i;i=a|2;J[h+(i<<2)>>2]=i;i=a|3;J[h+(i<<2)>>2]=i;i=a|4;J[h+(i<<2)>>2]=i;i=a|5;J[h+(i<<2)>>2]=i;i=a|6;J[h+(i<<2)>>2]=i;i=a|7;J[h+(i<<2)>>2]=i;a=a+8|0;n=n+8|0;if((j|0)!=(n|0)){continue}break}}n=h+f|0;f=g&7;if(!f){break We}while(1){J[h+(a<<2)>>2]=a;a=a+1|0;e=e+1|0;if((f|0)!=(e|0)){continue}break}}J[s+24>>2]=c;a=n-q|0;e=a>>2;Xe:{Ye:{if((a|0)>=513){a=e;while(1){h=ll(a<<2);if(h){break Ye}h=a>>>0>1;a=a>>>1|0;if(h){continue}break}}og(q,n,s+24|0,e,0,0);break Xe}og(q,n,s+24|0,e,h,a);fl(h)}if((k|0)<1048576){a=J[c>>2]+(J[n-4>>2]<<3)|0;J[a>>2]=(J[a>>2]-k|0)- -1048576;a=0;break Te}if((d|0)>0){j=J[c>>2];o=k+-1048576|0;while(1){m=1048576/+(k|0);e=d;while(1){Ze:{_e:{h=j+(J[(e<<2)+q>>2]<<3)|0;a=J[h>>2];if(a>>>0>=2){i=h;p=a;v=V(m*+(a>>>0));$e:{if(R(v)<2147483648){f=~~v;break $e}f=-2147483648}h=(a|0)==(f|0)?1:a-f|0;a=(a|0)>(h|0)?h:a-1|0;a=(a|0)<(o|0)?a:o;J[i>>2]=p-a;o=o-a|0;k=k-a|0;if((k|0)!=1048576){break _e}k=1048576;break Ze}if((d|0)!=(e|0)){break Ze}a=1;break Te}a=(e|0)>1;e=e-1|0;if(a){continue}}break}a=0;if((o|0)>0){continue}break}break Te}a=0;if(k>>>0<1048577){break Te}while(1)continue}if((d|0)<0){break Re}break Se}e=J[s+8>>2];if(e){fl(e)}if((d|0)<0|a){break Re}}e=J[c>>2];k=0;o=0;a=0;if(d>>>0>=3){f=g&-4;q=0;while(1){h=o<<3;j=h+e|0;J[j+4>>2]=a;i=e+(h|8)|0;a=J[j>>2]+a|0;J[i+4>>2]=a;j=e+(h|16)|0;a=a+J[i>>2]|0;J[j+4>>2]=a;h=e+(h|24)|0;a=a+J[j>>2]|0;J[h+4>>2]=a;a=a+J[h>>2]|0;o=o+4|0;q=q+4|0;if((f|0)!=(q|0)){continue}break}}h=g&3;if(h){while(1){f=e+(o<<3)|0;J[f+4>>2]=a;o=o+1|0;a=J[f>>2]+a|0;k=k+1|0;if((h|0)!=(k|0)){continue}break}}if((a|0)!=1048576){break Re}a=0;m=0;af:{if((d|0)<0){break af}h=J[c>>2];if(d){d=g&-2;e=0;while(1){f=a<<3;j=J[f+h>>2];if(j){f=f+l|0;m=(+M[f>>2]+ +M[f+4>>2]*4294967296)*pk(+(j>>>0)*9.5367431640625e-7)+m}f=(a|1)<<3;j=J[f+h>>2];if(j){f=f+l|0;m=(+M[f>>2]+ +M[f+4>>2]*4294967296)*pk(+(j>>>0)*9.5367431640625e-7)+m}a=a+2|0;e=e+2|0;if((d|0)!=(e|0)){continue}break}}if(!(g&1)){break af}a=a<<3;d=J[a+h>>2];if(!d){break af}a=a+l|0;m=(+M[a>>2]+ +M[a+4>>2]*4294967296)*pk(+(d>>>0)*9.5367431640625e-7)+m}m=W(-m);bf:{if(m<0x10000000000000000&m>=0){d=R(m)>=1?~~(m>0?T(V(m*2.3283064365386963e-10),4294967295):W((m-+(~~m>>>0>>>0))*2.3283064365386963e-10))>>>0:0;a=~~m>>>0;break bf}d=0;a=0}J[c+16>>2]=a;J[c+20>>2]=d;qf(c,r)}ia=s+32|0;e=J[c+16>>2];a=J[c+20>>2];d=J[r+4>>2]-J[r>>2]|0;J[c+40>>2]=d;J[c+44>>2]=0;g=a<<1|e>>>31;a=(e<<1)+39|0;p=a>>>0<39?g+1|0:g;a=d+((p&7)<<29|a>>>3)|0;g=p>>>3|0;g=a>>>0>>0?g+1|0:g;a=a+8|0;ji(r,a);a=J[r>>2];J[c+28>>2]=0;J[c+32>>2]=4194304;J[c+24>>2]=a+J[c+40>>2];if((b|0)>0){a=4194304;while(1){d=b-1|0;h=J[c>>2]+(J[t+(d<<2)>>2]<<3)|0;e=J[h>>2];g=e<<10;if(g>>>0<=a>>>0){while(1){f=J[c+28>>2];J[c+28>>2]=f+1;H[f+J[c+24>>2]|0]=a;a=J[c+32>>2]>>>8|0;J[c+32>>2]=a;if(a>>>0>=g>>>0){continue}break}}f=J[h+4>>2];h=(a>>>0)/(e>>>0)|0;a=f+((h<<20)+(a-P(e,h)|0)|0)|0;J[c+32>>2]=a;e=(b|0)>1;b=d;if(e){continue}break}}wf(c,r);a=J[c>>2];if(a){J[c+4>>2]=a;fl(a)}a=J[c+48>>2];if(a){fl(a)}ia=c- -64|0;break Me}k=1;break v;case 17:break E;default:break v}}t=a;l=0;o=0;q=0;u=0;h=0;c=ia+-64|0;ia=c;J[c+56>>2]=0;J[c+48>>2]=0;J[c+52>>2]=0;cf:{a=n+1|0;if(a){if(a>>>0>=536870912){break a}a=a<<3;l=ll(a);J[c+48>>2]=l;k=nk(l,0,(n<<3)+8|0)+a|0}df:{if((b|0)<=0){break df}a=0;if(b>>>0>=4){i=b&-4;while(1){d=a<<2;f=(J[d+t>>2]<<3)+l|0;g=J[f+4>>2];j=J[f>>2]+1|0;g=j?g:g+1|0;J[f>>2]=j;J[f+4>>2]=g;g=(J[t+(d|4)>>2]<<3)+l|0;p=J[g+4>>2];f=J[g>>2]+1|0;p=f?p:p+1|0;J[g>>2]=f;J[g+4>>2]=p;g=(J[t+(d|8)>>2]<<3)+l|0;j=J[g+4>>2];f=J[g>>2]+1|0;j=f?j:j+1|0;J[g>>2]=f;J[g+4>>2]=j;d=(J[t+(d|12)>>2]<<3)+l|0;g=J[d+4>>2];f=J[d>>2]+1|0;g=f?g:g+1|0;J[d>>2]=f;J[d+4>>2]=g;a=a+4|0;o=o+4|0;if((i|0)!=(o|0)){continue}break}}g=b&3;if(!g){break df}while(1){d=(J[t+(a<<2)>>2]<<3)+l|0;p=J[d+4>>2];f=J[d>>2]+1|0;p=f?p:p+1|0;J[d>>2]=f;J[d+4>>2]=p;a=a+1|0;q=q+1|0;if((g|0)!=(q|0)){continue}break}}J[c+8>>2]=0;J[c+12>>2]=0;J[c+16>>2]=0;J[c+20>>2]=0;J[c+24>>2]=0;J[c+28>>2]=0;J[c+32>>2]=0;J[c>>2]=0;J[c+4>>2]=0;J[c+40>>2]=0;J[c+44>>2]=0;r=e;e=0;o=0;d=0;q=0;s=ia-32|0;ia=s;a=k-l>>3;ef:{if((a|0)<=0){break ef}k=a&3;ff:{if(a>>>0<4){a=0;break ff}D=a&-4;a=0;while(1){p=a|1;f=(p<<3)+l|0;g=J[f+4>>2];n=J[f>>2];A=a|2;j=(A<<3)+l|0;f=J[j+4>>2];y=J[j>>2];x=a|3;i=(x<<3)+l|0;j=J[i+4>>2];z=J[i>>2];w=d;d=(a<<3)+l|0;B=J[d+4>>2];i=J[d>>2];d=j|z?x:f|y?A:g|n?p:!(B|i)?w:a;p=j;w=n;j=h+B|0;n=i+u|0;j=n>>>0>>0?j+1|0:j;i=n;h=w+i|0;g=g+j|0;g=h>>>0>>0?g+1|0:g;j=h;h=h+y|0;g=g+f|0;g=h>>>0>>0?g+1|0:g;f=h;h=h+z|0;i=g+p|0;u=h;h=h>>>0>>0?i+1|0:i;a=a+4|0;e=e+4|0;if((D|0)!=(e|0)){continue}break}}if(!k){break ef}while(1){f=d;d=(a<<3)+l|0;g=J[d+4>>2];e=J[d>>2];d=!(g|e)?f:a;a=a+1|0;p=g+h|0;f=e+u|0;p=f>>>0>>0?p+1|0:p;u=f;h=p;o=o+1|0;if((k|0)!=(o|0)){continue}break}}g=d+1|0;J[c+12>>2]=g;e=J[c>>2];a=J[c+4>>2]-e>>3;gf:{if(a>>>0>>0){lf(c,g-a|0);break gf}if(a>>>0<=g>>>0){break gf}J[c+4>>2]=e+(g<<3)}k=0;hf:{jf:{kf:{lf:{if((d|0)>=0){v=+(u>>>0)+ +(h>>>0)*4294967296;h=J[c>>2];a=0;while(1){f=a<<3;j=f+l|0;e=J[j+4>>2];j=J[j>>2];i=(e|j)!=0;f=h+f|0;m=(+(j>>>0)+ +(e>>>0)*4294967296)/v*1048576+.5;mf:{if(m<4294967296&m>=0){e=~~m>>>0;break mf}e=0}e=e?e:i?1:e;J[f>>2]=e;k=e+k|0;e=(a|0)==(d|0);a=a+1|0;if(!e){continue}break}if((k|0)==1048576){break lf}}J[s+16>>2]=0;J[s+8>>2]=0;J[s+12>>2]=0;n=0;nf:{if(!g){break nf}if(g>>>0>=1073741824){break a}f=g<<2;q=ll(f);J[s+8>>2]=q;e=0;h=nk(q,0,f);a=0;if(d>>>0>=7){j=g&-8;while(1){J[h+(a<<2)>>2]=a;i=a|1;J[h+(i<<2)>>2]=i;i=a|2;J[h+(i<<2)>>2]=i;i=a|3;J[h+(i<<2)>>2]=i;i=a|4;J[h+(i<<2)>>2]=i;i=a|5;J[h+(i<<2)>>2]=i;i=a|6;J[h+(i<<2)>>2]=i;i=a|7;J[h+(i<<2)>>2]=i;a=a+8|0;n=n+8|0;if((j|0)!=(n|0)){continue}break}}n=h+f|0;f=g&7;if(!f){break nf}while(1){J[h+(a<<2)>>2]=a;a=a+1|0;e=e+1|0;if((f|0)!=(e|0)){continue}break}}J[s+24>>2]=c;a=n-q|0;e=a>>2;of:{pf:{if((a|0)>=513){a=e;while(1){h=ll(a<<2);if(h){break pf}h=a>>>0>1;a=a>>>1|0;if(h){continue}break}}rg(q,n,s+24|0,e,0,0);break of}rg(q,n,s+24|0,e,h,a);fl(h)}if((k|0)<1048576){a=J[c>>2]+(J[n-4>>2]<<3)|0;J[a>>2]=(J[a>>2]-k|0)- -1048576;a=0;break kf}if((d|0)>0){j=J[c>>2];o=k+-1048576|0;while(1){m=1048576/+(k|0);e=d;while(1){qf:{rf:{h=j+(J[(e<<2)+q>>2]<<3)|0;a=J[h>>2];if(a>>>0>=2){i=h;p=a;v=V(m*+(a>>>0));sf:{if(R(v)<2147483648){f=~~v;break sf}f=-2147483648}h=(a|0)==(f|0)?1:a-f|0;a=(a|0)>(h|0)?h:a-1|0;a=(a|0)<(o|0)?a:o;J[i>>2]=p-a;o=o-a|0;k=k-a|0;if((k|0)!=1048576){break rf}k=1048576;break qf}if((d|0)!=(e|0)){break qf}a=1;break kf}a=(e|0)>1;e=e-1|0;if(a){continue}}break}a=0;if((o|0)>0){continue}break}break kf}a=0;if(k>>>0<1048577){break kf}while(1)continue}if((d|0)<0){break hf}break jf}e=J[s+8>>2];if(e){fl(e)}if((d|0)<0|a){break hf}}e=J[c>>2];k=0;o=0;a=0;if(d>>>0>=3){f=g&-4;q=0;while(1){h=o<<3;j=h+e|0;J[j+4>>2]=a;i=e+(h|8)|0;a=J[j>>2]+a|0;J[i+4>>2]=a;j=e+(h|16)|0;a=a+J[i>>2]|0;J[j+4>>2]=a;h=e+(h|24)|0;a=a+J[j>>2]|0;J[h+4>>2]=a;a=a+J[h>>2]|0;o=o+4|0;q=q+4|0;if((f|0)!=(q|0)){continue}break}}h=g&3;if(h){while(1){f=e+(o<<3)|0;J[f+4>>2]=a;o=o+1|0;a=J[f>>2]+a|0;k=k+1|0;if((h|0)!=(k|0)){continue}break}}if((a|0)!=1048576){break hf}a=0;m=0;tf:{if((d|0)<0){break tf}h=J[c>>2];if(d){d=g&-2;e=0;while(1){f=a<<3;j=J[f+h>>2];if(j){f=f+l|0;m=(+M[f>>2]+ +M[f+4>>2]*4294967296)*pk(+(j>>>0)*9.5367431640625e-7)+m}f=(a|1)<<3;j=J[f+h>>2];if(j){f=f+l|0;m=(+M[f>>2]+ +M[f+4>>2]*4294967296)*pk(+(j>>>0)*9.5367431640625e-7)+m}a=a+2|0;e=e+2|0;if((d|0)!=(e|0)){continue}break}}if(!(g&1)){break tf}a=a<<3;d=J[a+h>>2];if(!d){break tf}a=a+l|0;m=(+M[a>>2]+ +M[a+4>>2]*4294967296)*pk(+(d>>>0)*9.5367431640625e-7)+m}m=W(-m);uf:{if(m<0x10000000000000000&m>=0){d=R(m)>=1?~~(m>0?T(V(m*2.3283064365386963e-10),4294967295):W((m-+(~~m>>>0>>>0))*2.3283064365386963e-10))>>>0:0;a=~~m>>>0;break uf}d=0;a=0}J[c+16>>2]=a;J[c+20>>2]=d;qf(c,r)}ia=s+32|0;e=J[c+16>>2];a=J[c+20>>2];d=J[r+4>>2]-J[r>>2]|0;J[c+40>>2]=d;J[c+44>>2]=0;g=a<<1|e>>>31;a=(e<<1)+39|0;j=a>>>0<39?g+1|0:g;a=d+((j&7)<<29|a>>>3)|0;i=j>>>3|0;i=a>>>0>>0?i+1|0:i;a=a+8|0;ji(r,a);a=J[r>>2];J[c+28>>2]=0;J[c+32>>2]=4194304;J[c+24>>2]=a+J[c+40>>2];if((b|0)>0){a=4194304;while(1){d=b-1|0;h=J[c>>2]+(J[t+(d<<2)>>2]<<3)|0;e=J[h>>2];g=e<<10;if(g>>>0<=a>>>0){while(1){f=J[c+28>>2];J[c+28>>2]=f+1;H[f+J[c+24>>2]|0]=a;a=J[c+32>>2]>>>8|0;J[c+32>>2]=a;if(a>>>0>=g>>>0){continue}break}}f=J[h+4>>2];h=(a>>>0)/(e>>>0)|0;a=f+((h<<20)+(a-P(e,h)|0)|0)|0;J[c+32>>2]=a;e=(b|0)>1;b=d;if(e){continue}break}}wf(c,r);a=J[c>>2];if(a){J[c+4>>2]=a;fl(a)}a=J[c+48>>2];if(a){fl(a)}ia=c- -64|0;break cf}k=1}ia=F+32|0;l=k}if(!G){break b}J[E+36>>2]=G;fl(G)}ia=E+48|0;return l}La();C()}function Qb(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=Q(0),x=0,y=0,z=0,A=0,B=0,D=0,E=0,F=0,G=0,T=0,U=0,W=0,X=0,Y=0,Z=0,$=0,aa=0,ba=0,ca=0,da=0,ea=0,fa=0,ga=0,ha=0,ja=0;e=ia-1680|0;ia=e;c=10-Rb(J[J[a+28>>2]+48>>2])|0;c=(c|0)>=6?6:c;h=J[a+72>>2];H[e+1679|0]=(c&255)==6?(h|0)>15?5:c:c;c=J[b+20>>2];if(!J[b+16>>2]&(c|0)<=0|(c|0)<0){Ea(b,J[b+4>>2],e+1679|0,e+1680|0);h=J[a+72>>2]}y=J[J[J[a+28>>2]+4>>2]+80>>2];J[e+1668>>2]=0;J[e+1660>>2]=0;J[e+1664>>2]=0;J[e+1648>>2]=y;J[e+1652>>2]=h;J[e+1656>>2]=h<<2;a:{b:{c:{d:{g=P(h,y);if(g){if(g>>>0>=1073741824){break d}c=g<<2;f=ll(c);J[e+1660>>2]=f;d=c+f|0;J[e+1668>>2]=d;nk(f,0,c);J[e+1664>>2]=d}J[e+1672>>2]=f;k=J[a+4>>2];if((k|0)!=J[a+8>>2]){while(1){d=J[J[J[J[a+28>>2]+4>>2]+8>>2]+(J[(m<<2)+k>>2]<<2)>>2];c=J[d+28>>2];if(c-1>>>0>=6){if((c|0)!=9){break a}d=J[J[a+60>>2]+(s<<2)>>2];if(!d){break a}s=s+1|0;c=J[d+28>>2]}e:{f:{g:{switch(c-1|0){case 5:if(!y){break e}k=0;while(1){g=(J[e+1672>>2]+(o<<2)|0)+(P(J[e+1652>>2],k)<<2)|0;f=J[J[d>>2]>>2];c=J[d+48>>2]+Zl(J[d+40>>2],J[d+44>>2],K[d+84|0]?k:J[J[d+68>>2]+(k<<2)>>2],0)|0;lk(g,f+c|0,K[d+24|0]<<2);k=k+1|0;if((y|0)!=(k|0)){continue}break};break e;case 0:case 2:case 4:c=K[d+24|0];h:{if(!c){g=0;f=0;break h}f=0;c=c<<2;g=ll(c);nk(g,0,c);c=K[d+24|0];if(!c){break h}c=c<<2;f=ll(c);nk(f,0,c)}if(y){h=0;while(1){Nb(d,K[d+84|0]?h:J[J[d+68>>2]+(h<<2)>>2],H[d+24|0],g);j=K[d+24|0];i:{if(!j){break i}l=J[a+48>>2];k=0;if((j|0)!=1){z=j&254;c=0;while(1){n=k<<2;J[n+f>>2]=J[g+n>>2]-J[l+(i+k<<2)>>2];n=k|1;D=n<<2;J[D+f>>2]=J[g+D>>2]-J[l+(i+n<<2)>>2];k=k+2|0;c=c+2|0;if((z|0)!=(c|0)){continue}break}}if(!(j&1)){break i}c=k<<2;J[c+f>>2]=J[c+g>>2]-J[l+(i+k<<2)>>2]}lk((J[e+1672>>2]+(o<<2)|0)+(P(J[e+1652>>2],h)<<2)|0,f,j<<2);h=h+1|0;if((y|0)!=(h|0)){continue}break}}c=K[d+24|0];if(f){fl(f)}i=c+i|0;if(g){break f}break e;default:break g}}c=K[d+24|0];j:{if(!c){g=0;break j}c=c<<2;g=ll(c);nk(g,0,c)}if(y){k=0;while(1){c=K[d+84|0]?k:J[J[d+68>>2]+(k<<2)>>2];j=K[d+24|0];l=0;k:{if(!g){break k}l:{m:{switch(J[d+28>>2]-1|0){case 0:f=K[d+24|0];if(f>>>0>>0?f:j){f=J[d>>2];h=J[f>>2];c=J[d+48>>2]+Zl(J[d+40>>2],J[d+44>>2],c,0)|0;h=h+c|0;c=J[f+4>>2];while(1){if(c>>>0<=h>>>0){break k}J[(l<<2)+g>>2]=H[h|0];h=h+1|0;l=l+1|0;f=K[d+24|0];if(l>>>0<(f>>>0>>0?f:j)>>>0){continue}break}}break l;case 1:f=K[d+24|0];if(f>>>0>>0?f:j){f=J[d>>2];h=J[f>>2];c=J[d+48>>2]+Zl(J[d+40>>2],J[d+44>>2],c,0)|0;h=h+c|0;c=J[f+4>>2];while(1){if(c>>>0<=h>>>0){break k}J[(l<<2)+g>>2]=K[h|0];h=h+1|0;l=l+1|0;f=K[d+24|0];if(l>>>0<(f>>>0>>0?f:j)>>>0){continue}break}}break l;case 2:f=K[d+24|0];if(f>>>0>>0?f:j){f=J[d>>2];h=J[f>>2];c=J[d+48>>2]+Zl(J[d+40>>2],J[d+44>>2],c,0)|0;h=h+c|0;c=J[f+4>>2];while(1){if(c>>>0<=h>>>0){break k}J[(l<<2)+g>>2]=I[h>>1];h=h+2|0;l=l+1|0;f=K[d+24|0];if(l>>>0<(f>>>0>>0?f:j)>>>0){continue}break}}break l;case 3:f=K[d+24|0];if(f>>>0>>0?f:j){f=J[d>>2];h=J[f>>2];c=J[d+48>>2]+Zl(J[d+40>>2],J[d+44>>2],c,0)|0;h=h+c|0;c=J[f+4>>2];while(1){if(c>>>0<=h>>>0){break k}J[(l<<2)+g>>2]=L[h>>1];h=h+2|0;l=l+1|0;f=K[d+24|0];if(l>>>0<(f>>>0>>0?f:j)>>>0){continue}break}}break l;case 4:f=K[d+24|0];if(f>>>0>>0?f:j){f=J[d>>2];h=J[f>>2];c=J[d+48>>2]+Zl(J[d+40>>2],J[d+44>>2],c,0)|0;h=h+c|0;c=J[f+4>>2];while(1){if(c>>>0<=h>>>0){break k}J[(l<<2)+g>>2]=J[h>>2];h=h+4|0;l=l+1|0;f=K[d+24|0];if(l>>>0<(f>>>0>>0?f:j)>>>0){continue}break}}break l;case 5:f=K[d+24|0];if(f>>>0>>0?f:j){f=J[d>>2];h=J[f>>2];c=J[d+48>>2]+Zl(J[d+40>>2],J[d+44>>2],c,0)|0;h=h+c|0;c=J[f+4>>2];while(1){if(c>>>0<=h>>>0){break k}J[(l<<2)+g>>2]=J[h>>2];h=h+4|0;l=l+1|0;f=K[d+24|0];if(l>>>0<(f>>>0>>0?f:j)>>>0){continue}break}}break l;case 6:f=K[d+24|0];if(f>>>0>>0?f:j){f=J[d>>2];h=J[f>>2];c=J[d+48>>2]+Zl(J[d+40>>2],J[d+44>>2],c,0)|0;h=h+c|0;c=J[f+4>>2];while(1){if(c>>>0<=h>>>0){break k}f=J[h>>2];if(J[h+4>>2]){break k}J[(l<<2)+g>>2]=f;h=h+8|0;l=l+1|0;f=K[d+24|0];if(l>>>0<(f>>>0>>0?f:j)>>>0){continue}break}}break l;case 7:f=K[d+24|0];if(f>>>0>>0?f:j){f=J[d>>2];h=J[f>>2];c=J[d+48>>2]+Zl(J[d+40>>2],J[d+44>>2],c,0)|0;h=h+c|0;c=J[f+4>>2];while(1){if(c>>>0<=h>>>0){break k}f=J[h>>2];if(J[h+4>>2]){break k}J[(l<<2)+g>>2]=f;h=h+8|0;l=l+1|0;f=K[d+24|0];if(l>>>0<(f>>>0>>0?f:j)>>>0){continue}break}}break l;case 8:n:{o:{f=K[d+24|0];if(!(f>>>0>>0?f:j)){break o}h=J[d>>2];f=J[h>>2];c=J[d+48>>2]+Zl(J[d+40>>2],J[d+44>>2],c,0)|0;l=f+c|0;z=J[h+4>>2];h=z-f|0;if(!K[d+32|0]){if((c|0)>=(h|0)){break n}h=0;while(1){w=N[l>>2];if(w=Q(4294967296))){break n}f=(h<<2)+g|0;if(w=Q(0)){c=~~w>>>0}else{c=0}J[f>>2]=c;h=h+1|0;f=K[d+24|0];if(h>>>0>=(f>>>0>>0?f:j)>>>0){break o}l=l+4|0;if(z>>>0>l>>>0){continue}break}break n}if((c|0)>=(h|0)){break n}h=0;while(1){w=N[l>>2];if(w=Q(4294967296))){break n}if(w>Q(1)){break n}f=(h<<2)+g|0;u=V(+w*4294967295+.5);p:{if(u<4294967296&u>=0){c=~~u>>>0;break p}c=0}J[f>>2]=c;h=h+1|0;f=K[d+24|0];if(h>>>0>=(f>>>0>>0?f:j)>>>0){break o}l=l+4|0;if(z>>>0>l>>>0){continue}break}break n}if(f>>>0>=j>>>0){break n}nk((f<<2)+g|0,0,j-f<<2)}break k;case 9:q:{r:{f=K[d+24|0];if(!(f>>>0>>0?f:j)){break r}h=J[d>>2];f=J[h>>2];c=J[d+48>>2]+Zl(J[d+40>>2],J[d+44>>2],c,0)|0;l=f+c|0;z=J[h+4>>2];h=z-f|0;if(!K[d+32|0]){if((c|0)>=(h|0)){break q}h=0;while(1){u=O[l>>3];if(u<0|u!=u|(R(u)==_|u>=4294967295)){break q}f=(h<<2)+g|0;if(u<4294967296&u>=0){c=~~u>>>0}else{c=0}J[f>>2]=c;h=h+1|0;f=K[d+24|0];if(h>>>0>=(f>>>0>>0?f:j)>>>0){break r}l=l+8|0;if(z>>>0>l>>>0){continue}break}break q}if((c|0)>=(h|0)){break q}h=0;while(1){u=O[l>>3];if(u<0|u!=u|(R(u)==_|u>=4294967295)){break q}if(u>1){break q}f=(h<<2)+g|0;u=V(u*4294967295+.5);s:{if(u<4294967296&u>=0){c=~~u>>>0;break s}c=0}J[f>>2]=c;h=h+1|0;f=K[d+24|0];if(h>>>0>=(f>>>0>>0?f:j)>>>0){break r}l=l+8|0;if(z>>>0>l>>>0){continue}break}break q}if(f>>>0>=j>>>0){break q}nk((f<<2)+g|0,0,j-f<<2)}break k;case 10:break m;default:break k}}f=K[d+24|0];if(f>>>0>>0?f:j){f=J[d>>2];h=J[f>>2];c=J[d+48>>2]+Zl(J[d+40>>2],J[d+44>>2],c,0)|0;h=h+c|0;c=J[f+4>>2];while(1){if(c>>>0<=h>>>0){break k}J[(l<<2)+g>>2]=K[h|0];h=h+1|0;l=l+1|0;f=K[d+24|0];if(l>>>0<(f>>>0>>0?f:j)>>>0){continue}break}}if(f>>>0>=j>>>0){break k}nk((f<<2)+g|0,0,j-f<<2);break k}if(f>>>0>=j>>>0){break k}nk((f<<2)+g|0,0,j-f<<2)}lk((J[e+1672>>2]+(o<<2)|0)+(P(J[e+1652>>2],k)<<2)|0,g,K[d+24|0]<<2);k=k+1|0;if((y|0)!=(k|0)){continue}break}}if(!g){break e}}fl(g)}o=K[d+24|0]+o|0;m=m+1|0;k=J[a+4>>2];if(m>>>0>2]-k>>2>>>0){continue}break}f=J[e+1672>>2];h=J[a+72>>2];g=P(y,h)}k=0;if((g|0)<=0){break b}c=g&1;if((g|0)==1){g=0;break c}d=g&-2;g=0;a=0;while(1){j=g<<2;l=J[j+f>>2];if(l){l=S(l);k=(l^31)<(k|0)?k:32-l|0}j=J[(j|4)+f>>2];if(j){j=S(j);k=(j^31)<(k|0)?k:32-j|0}g=g+2|0;a=a+2|0;if((d|0)!=(a|0)){continue}break}break c}La();C()}if(!c){break b}a=J[(g<<2)+f>>2];if(!a){break b}a=S(a);k=(a^31)<(k|0)?k:32-a|0}t:{u:{switch(K[e+1679|0]){case 6:m=Tb(e+456|0,h);a=J[e+1652>>2];J[e+448>>2]=a;J[e+432>>2]=a;J[e+32>>2]=a;J[e+16>>2]=a;J[e+440>>2]=0;J[e+424>>2]=J[e+1648>>2];a=e+1648|0;J[e+444>>2]=a;c=J[e+444>>2];J[e+24>>2]=J[e+440>>2];J[e+28>>2]=c;J[e+428>>2]=a;J[e+420>>2]=k;a=J[e+428>>2];J[e+8>>2]=J[e+424>>2];J[e+12>>2]=a;s=ia-32|0;ia=s;J[m>>2]=J[e+420>>2];a=J[e+8>>2]-J[e+24>>2]|0;J[m+4>>2]=a;c=J[b+20>>2];if(!J[b+16>>2]&(c|0)<=0|(c|0)<0){a=m+4|0;Ea(b,J[b+4>>2],m,a);c=J[b+20>>2];if(!J[b+16>>2]&(c|0)<=0|(c|0)<0){Ea(b,J[b+4>>2],a,m+8|0)}a=J[a>>2]}if(a){X=m+12|0;$b(X);Y=m+1068|0;a=Y;J[a+12>>2]=0;J[a+16>>2]=0;J[a+4>>2]=J[a>>2];Z=m+1088|0;a=Z;J[a+12>>2]=0;J[a+16>>2]=0;J[a+4>>2]=J[a>>2];$=m+1108|0;a=$;J[a+12>>2]=0;J[a+16>>2]=0;J[a+4>>2]=J[a>>2];J[s+24>>2]=J[e+32>>2];a=J[e+28>>2];J[s+16>>2]=J[e+24>>2];J[s+20>>2]=a;J[s+8>>2]=J[e+16>>2];a=J[e+12>>2];J[s>>2]=J[e+8>>2];J[s+4>>2]=a;c=0;g=0;i=ia+-64|0;ia=i;d=J[m+8>>2];J[i+48>>2]=0;J[i+40>>2]=0;J[i+44>>2]=0;v:{w:{if(d){if(d>>>0>=1073741824){break w}a=d<<2;c=ll(a);J[i+40>>2]=c;g=a+c|0;J[i+48>>2]=g;nk(c,0,a);J[i+44>>2]=g}a=J[m+1164>>2];k=J[a>>2];if(k){J[a+4>>2]=k;fl(k);d=J[m+8>>2];g=J[i+44>>2];c=J[i+40>>2]}J[a+4>>2]=g;J[a>>2]=c;J[a+8>>2]=J[i+48>>2];c=0;J[i+48>>2]=0;J[i+40>>2]=0;J[i+44>>2]=0;a=0;x:{if(d){if(d>>>0>=1073741824){break x}d=d<<2;a=ll(d);J[i+40>>2]=a;c=a+d|0;J[i+48>>2]=c;nk(a,0,d);J[i+44>>2]=c}d=J[m+1176>>2];k=J[d>>2];if(k){J[d+4>>2]=k;fl(k);c=J[i+44>>2];a=J[i+40>>2]}J[d+4>>2]=c;J[d>>2]=a;J[d+8>>2]=J[i+48>>2];f=J[s+20>>2];l=J[s+24>>2];j=J[s+4>>2];y=J[s+8>>2];c=J[s>>2];d=J[s+16>>2];J[i+56>>2]=0;J[i+60>>2]=0;J[i+48>>2]=0;J[i+52>>2]=0;J[i+40>>2]=0;J[i+44>>2]=0;fc(i+40|0);a=J[i+56>>2]+J[i+60>>2]|0;k=(a>>>0)/113|0;a=J[J[i+44>>2]+(k<<2)>>2]+P(a-P(k,113)|0,36)|0;J[a+32>>2]=0;J[a+28>>2]=c-d;J[a+24>>2]=0;J[a+16>>2]=j;J[a+20>>2]=y;J[a+12>>2]=c;J[a+4>>2]=f;J[a+8>>2]=l;J[a>>2]=d;d=J[i+60>>2]+1|0;J[i+60>>2]=d;if(d){D=f;z=l;ca=l&-4;aa=l&3;da=m+1068|0;ba=m+12|0;ea=m+1108|0;fa=l>>>0<4;while(1){a=J[i+44>>2];g=J[i+56>>2];o=d-1|0;c=g+o|0;k=(c>>>0)/113|0;c=J[a+(k<<2)>>2]+P(c-P(k,113)|0,36)|0;U=J[c+32>>2];h=J[c+12>>2];k=J[c>>2];J[i+60>>2]=o;c=J[i+48>>2];if((((a|0)!=(c|0)?P(c-a>>2,113)-1|0:0)-(d+g|0)|0)+1>>>0>=226){fl(J[c-4>>2]);J[i+48>>2]=J[i+48>>2]-4}J[s+16>>2]=k;J[s>>2]=h;a=J[m+1164>>2];c=J[m+1176>>2];J[i+32>>2]=J[s+24>>2];d=J[s+20>>2];J[i+24>>2]=J[s+16>>2];J[i+28>>2]=d;J[i+16>>2]=J[s+8>>2];d=J[s+4>>2];J[i+8>>2]=J[s>>2];J[i+12>>2]=d;W=P(U,12);v=a+W|0;g=v;F=c+W|0;c=F;o=0;d=J[m+8>>2];y:{z:{A:{B:{t=J[i+8>>2];a=J[i+24>>2];r=t-a|0;if(r>>>0>=64){if(!d){g=0;break z}E=J[m+1140>>2];B=J[c>>2];T=J[m+1128>>2];if((a|0)!=(t|0)){break B}d=0;while(1){a=d<<2;c=a+T|0;J[c>>2]=0;n=a+E|0;g=J[m>>2];a=J[a+B>>2];J[n>>2]=g-a;if((a|0)!=(g|0)){g=c;a=J[c>>2];c=r-a|0;J[g>>2]=a>>>0>>0?c:a}c=J[m+8>>2];d=d+1|0;if(c>>>0>d>>>0){continue}break}break A}g=0;if(d>>>0<2){break y}o=d-1|0;n=o&3;c=J[c>>2];a=0;C:{if(d-2>>>0<3){d=1;break C}t=o&-4;d=1;o=0;while(1){r=d+3|0;p=d+2|0;x=d+1|0;g=M[c+(g<<2)>>2]>M[c+(d<<2)>>2]?d:g;g=M[c+(g<<2)>>2]>M[c+(x<<2)>>2]?x:g;g=M[c+(g<<2)>>2]>M[c+(p<<2)>>2]?p:g;g=M[c+(g<<2)>>2]>M[c+(r<<2)>>2]?r:g;d=d+4|0;o=o+4|0;if((t|0)!=(o|0)){continue}break}}if(!n){break y}while(1){g=M[c+(g<<2)>>2]>M[c+(d<<2)>>2]?d:g;d=d+1|0;a=a+1|0;if((n|0)!=(a|0)){continue}break}break y}A=J[i+28>>2];G=J[g>>2];ga=r&1;g=a+1|0;ha=(t|0)!=(g|0);q=J[i+32>>2];ja=P(q,a)<<2;while(1){c=o<<2;n=c+T|0;J[n>>2]=0;d=J[m>>2];p=J[c+B>>2];x=d-p|0;J[c+E>>2]=x;if((d|0)!=(p|0)){p=J[c+G>>2]+(1<>2]|0;c=J[n>>2];if(ga){c=(p>>>0>M[x+ja>>2])+c|0;J[n>>2]=c;d=g}else{d=a}if(ha){while(1){c=(p>>>0>M[x+(P(d,q)<<2)>>2])+c|0;J[n>>2]=c;c=c+(p>>>0>M[x+(P(q,d+1|0)<<2)>>2])|0;J[n>>2]=c;d=d+2|0;if((t|0)!=(d|0)){continue}break}}d=r-c|0;J[n>>2]=c>>>0>>0?d:c}c=J[m+8>>2];o=o+1|0;if(c>>>0>o>>>0){continue}break}}if(!c){g=0;break z}p=c&1;n=J[m+1128>>2];t=J[m+1140>>2];D:{if((c|0)==1){d=0;c=0;g=0;break D}x=c&-2;d=0;c=0;g=0;o=0;while(1){a=d<<2;E:{if(!J[a+t>>2]){a=c;break E}r=J[a+n>>2];a=c>>>0>r>>>0?c:r;g=c>>>0>>0?d:g}E=d|1;c=E<<2;F:{if(!J[c+t>>2]){c=a;break F}r=J[c+n>>2];c=a>>>0>r>>>0?a:r;g=a>>>0>>0?E:g}d=d+2|0;o=o+2|0;if((x|0)!=(o|0)){continue}break}}if(!p){break z}a=d<<2;if(!J[a+t>>2]){break z}g=M[a+n>>2]>c>>>0?d:g}hc(m+1088|0,4,g)}c=J[m>>2];d=g;n=d<<2;g=J[n+J[F>>2]>>2];G:{H:{if((c|0)==(g|0)){break H}I:{J:{x=h-k|0;if(x>>>0<=2){g=J[m+1152>>2];J[g>>2]=d;c=1;a=J[m+8>>2];if(a>>>0>1){break J}break I}a=J[m+1164>>2];T=U+1|0;F=P(T,12);o=a+F|0;if((o|0)!=(v|0)){Ta(o,J[v>>2],J[v+4>>2]);a=J[m+1164>>2]}a=n+J[a+F>>2]|0;v=J[a>>2]+(1<>2]=v;a=k;K:{if((h|0)==(a|0)){break K}E=J[D+24>>2];a=h;c=k;if(!z){if(v>>>0>M[n+E>>2]){break K}while(1){a=a-1|0;if((c|0)==(a|0)){a=c;break K}if(v>>>0<=M[(n+J[j+24>>2]|0)+(P(a,y)<<2)>>2]){continue}c=c+1|0;if((c|0)!=(a|0)){continue}break}break K}while(1){t=E+(P(c,z)<<2)|0;if(v>>>0>M[t+n>>2]){c=c+1|0;if((c|0)!=(a|0)){continue}break K}while(1){a=a-1|0;if((c|0)==(a|0)){a=c;break K}r=J[j+24>>2]+(P(a,y)<<2)|0;if(v>>>0<=M[r+n>>2]){continue}break}o=0;g=0;B=0;if(!fa){while(1){p=g<<2;q=p+t|0;A=J[q>>2];G=q;q=p+r|0;J[G>>2]=J[q>>2];J[q>>2]=A;q=p|4;A=q+t|0;G=J[A>>2];q=r+q|0;J[A>>2]=J[q>>2];J[q>>2]=G;q=p|8;A=q+t|0;G=J[A>>2];q=r+q|0;J[A>>2]=J[q>>2];J[q>>2]=G;p=p|12;q=p+t|0;A=J[q>>2];p=p+r|0;J[q>>2]=J[p>>2];J[p>>2]=A;g=g+4|0;B=B+4|0;if((ca|0)!=(B|0)){continue}break}}if(aa){while(1){p=g<<2;B=p+t|0;q=J[B>>2];p=p+r|0;J[B>>2]=J[p>>2];J[p>>2]=q;g=g+1|0;o=o+1|0;if((aa|0)!=(o|0)){continue}break}}c=c+1|0;if((c|0)!=(a|0)){continue}break}}o=a-k|0;v=h-a|0;if((o|0)!=(v|0)){gc(ea,o>>>0>>0)}c=S(x);t=c^31;g=x>>>1|0;L:{if(o>>>0>>0){if(!t){break L}r=g-o|0;c=1<<30-c;g=0;while(1){Fe((g<<5)+ba|0,(c&r)!=0);c=c>>>1|0;g=g+1|0;if((t|0)!=(g|0)){continue}break}break L}if(!t){break L}r=g-v|0;c=1<<30-c;g=0;while(1){Fe((g<<5)+ba|0,(c&r)!=0);c=c>>>1|0;g=g+1|0;if((t|0)!=(g|0)){continue}break}}q=n;c=J[m+1176>>2];g=c+W|0;n=J[g>>2];t=q+n|0;J[t>>2]=J[t>>2]+1;Ta(c+F|0,n,J[g+4>>2]);if((a|0)!=(k|0)){g=J[i+60>>2]+J[i+56>>2]|0;n=J[i+48>>2];c=J[i+44>>2];if((g|0)==(((c|0)!=(n|0)?P(n-c>>2,113)-1|0:0)|0)){fc(i+40|0);g=J[i+56>>2]+J[i+60>>2]|0;n=J[i+44>>2]}else{n=c}c=(g>>>0)/113|0;c=J[n+(c<<2)>>2]+P(g-P(c,113)|0,36)|0;J[c+32>>2]=U;J[c+28>>2]=o;J[c+24>>2]=d;J[c+16>>2]=D;J[c+12>>2]=a;J[c+4>>2]=f;J[c+8>>2]=l;J[c>>2]=k;J[c+20>>2]=z;J[i+60>>2]=J[i+60>>2]+1}if((a|0)==(h|0)){break H}g=J[i+60>>2]+J[i+56>>2]|0;k=J[i+48>>2];c=J[i+44>>2];if((g|0)==(((c|0)!=(k|0)?P(k-c>>2,113)-1|0:0)|0)){fc(i+40|0);g=J[i+56>>2]+J[i+60>>2]|0;k=J[i+44>>2]}else{k=c}c=(g>>>0)/113|0;c=J[k+(c<<2)>>2]+P(g-P(c,113)|0,36)|0;J[c+32>>2]=T;J[c+28>>2]=v;J[c+24>>2]=d;J[c+16>>2]=j;J[c+20>>2]=y;J[c+12>>2]=h;J[c+4>>2]=D;J[c>>2]=a;J[c+8>>2]=z;d=J[i+60>>2]+1|0;J[i+60>>2]=d;break G}while(1){d=(a-1|0)!=(d|0)?d+1|0:0;J[g+(c<<2)>>2]=d;a=J[m+8>>2];c=c+1|0;if(a>>>0>c>>>0){continue}break}}g=0;c=a;if((h|0)==(k|0)){break H}while(1){M:{if(!c){c=0;break M}h=J[D+24>>2]+(P(J[D+4>>2],g+k|0)<<2)|0;d=0;while(1){c=J[m>>2];o=J[J[m+1152>>2]+(d<<2)>>2]<<2;n=J[o+J[F>>2]>>2];if((c|0)!=(n|0)){hc(da,c-n|0,J[h+o>>2]);a=J[m+8>>2]}c=a;d=d+1|0;if(c>>>0>d>>>0){continue}break}}g=g+1|0;if((x|0)!=(g|0)){continue}break}}d=J[i+60>>2]}if(d){continue}break}}J[i+60>>2]=0;h=J[i+48>>2];d=J[i+44>>2];a=h-d|0;if(a>>>0>=9){while(1){fl(J[d>>2]);d=J[i+44>>2]+4|0;J[i+44>>2]=d;h=J[i+48>>2];a=h-d|0;if(a>>>0>8){continue}break}}c=56;N:{switch((a>>>2|0)-1|0){case 1:c=113;case 0:J[i+56>>2]=c;break;default:break N}}O:{if((d|0)==(h|0)){break O}while(1){fl(J[d>>2]);d=d+4|0;if((h|0)!=(d|0)){continue}break}a=J[i+48>>2];c=J[i+44>>2];if((a|0)==(c|0)){break O}J[i+48>>2]=a+((c-a|0)+3&-4)}a=J[i+40>>2];if(a){fl(a)}ia=i- -64|0;break v}La();C()}La();C()}ac(X,b);Be(Y,b);Be(Z,b);Be($,b)}ia=s+32|0;Sb(m);break t;case 5:c=Tb(e+456|0,h);a=J[e+1652>>2];J[e+416>>2]=a;J[e+400>>2]=a;J[e- -64>>2]=a;J[e+48>>2]=a;J[e+408>>2]=0;J[e+392>>2]=J[e+1648>>2];a=e+1648|0;J[e+412>>2]=a;d=J[e+412>>2];J[e+56>>2]=J[e+408>>2];J[e+60>>2]=d;J[e+396>>2]=a;J[e+420>>2]=k;a=J[e+396>>2];J[e+40>>2]=J[e+392>>2];J[e+44>>2]=a;a=Ub(c,e+56|0,e+40|0,e+420|0,b);Sb(c);if(a){break t}break a;case 4:c=Tb(e+456|0,h);a=J[e+1652>>2];J[e+384>>2]=a;J[e+368>>2]=a;J[e+96>>2]=a;J[e+80>>2]=a;J[e+376>>2]=0;J[e+360>>2]=J[e+1648>>2];a=e+1648|0;J[e+380>>2]=a;d=J[e+380>>2];J[e+88>>2]=J[e+376>>2];J[e+92>>2]=d;J[e+364>>2]=a;J[e+420>>2]=k;a=J[e+364>>2];J[e+72>>2]=J[e+360>>2];J[e+76>>2]=a;a=Ub(c,e+88|0,e+72|0,e+420|0,b);Sb(c);if(a){break t}break a;case 3:c=Vb(e+456|0,h);a=J[e+1652>>2];J[e+352>>2]=a;J[e+336>>2]=a;J[e+128>>2]=a;J[e+112>>2]=a;J[e+344>>2]=0;J[e+328>>2]=J[e+1648>>2];a=e+1648|0;J[e+348>>2]=a;d=J[e+348>>2];J[e+120>>2]=J[e+344>>2];J[e+124>>2]=d;J[e+332>>2]=a;J[e+420>>2]=k;a=J[e+332>>2];J[e+104>>2]=J[e+328>>2];J[e+108>>2]=a;a=Wb(c,e+120|0,e+104|0,e+420|0,b);Xb(c);if(a){break t}break a;case 2:c=Vb(e+456|0,h);a=J[e+1652>>2];J[e+320>>2]=a;J[e+304>>2]=a;J[e+160>>2]=a;J[e+144>>2]=a;J[e+312>>2]=0;J[e+296>>2]=J[e+1648>>2];a=e+1648|0;J[e+316>>2]=a;d=J[e+316>>2];J[e+152>>2]=J[e+312>>2];J[e+156>>2]=d;J[e+300>>2]=a;J[e+420>>2]=k;a=J[e+300>>2];J[e+136>>2]=J[e+296>>2];J[e+140>>2]=a;a=Wb(c,e+152|0,e+136|0,e+420|0,b);Xb(c);if(a){break t}break a;case 1:c=Yb(e+456|0,h);a=J[e+1652>>2];J[e+288>>2]=a;J[e+272>>2]=a;J[e+192>>2]=a;J[e+176>>2]=a;J[e+280>>2]=0;J[e+264>>2]=J[e+1648>>2];a=e+1648|0;J[e+284>>2]=a;d=J[e+284>>2];J[e+184>>2]=J[e+280>>2];J[e+188>>2]=d;J[e+268>>2]=a;J[e+420>>2]=k;a=J[e+268>>2];J[e+168>>2]=J[e+264>>2];J[e+172>>2]=a;a=Zb(c,e+184|0,e+168|0,e+420|0,b);_b(c);if(a){break t}break a;case 0:break u;default:break a}}c=Yb(e+456|0,h);a=J[e+1652>>2];J[e+256>>2]=a;J[e+240>>2]=a;J[e+224>>2]=a;J[e+208>>2]=a;J[e+248>>2]=0;J[e+232>>2]=J[e+1648>>2];a=e+1648|0;J[e+252>>2]=a;d=J[e+252>>2];J[e+216>>2]=J[e+248>>2];J[e+220>>2]=d;J[e+236>>2]=a;J[e+420>>2]=k;a=J[e+236>>2];J[e+200>>2]=J[e+232>>2];J[e+204>>2]=a;a=Zb(c,e+216|0,e+200|0,e+420|0,b);_b(c);if(!a){break a}}v=1}a=J[e+1660>>2];if(a){J[e+1664>>2]=a;fl(a)}ia=e+1680|0;return v|0}function Ck(a,b,c,d){var e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,w=0,x=0,y=0,z=0,A=0,C=0,D=0,E=0,F=0,G=0,I=0;w=ia-160|0;ia=w;J[w+60>>2]=b;J[w+20>>2]=b;J[w+24>>2]=-1;h=w+16|0;J[h+112>>2]=0;J[h+116>>2]=0;n=J[h+44>>2]-J[h+4>>2]|0;J[h+120>>2]=n;J[h+124>>2]=n>>31;J[h+104>>2]=J[h+8>>2];q=ia-48|0;ia=q;if(d>>>0<=2){a:{d=d<<2;D=J[d+17292>>2];E=J[d+17280>>2];while(1){d=J[h+4>>2];b:{if((d|0)!=J[h+104>>2]){J[h+4>>2]=d+1;d=K[d|0];break b}d=wk(h)}if((d|0)==32|d-9>>>0<5){continue}break}n=1;c:{d:{switch(d-43|0){case 0:case 2:break d;default:break c}}n=(d|0)==45?-1:1;d=J[h+4>>2];if((d|0)!=J[h+104>>2]){J[h+4>>2]=d+1;d=K[d|0];break c}d=wk(h)}e:{f:{while(1){if(H[g+1154|0]==(d|32)){g:{if(g>>>0>6){break g}d=J[h+4>>2];if((d|0)!=J[h+104>>2]){J[h+4>>2]=d+1;d=K[d|0];break g}d=wk(h)}g=g+1|0;if((g|0)!=8){continue}break f}break}if((g|0)!=3){if((g|0)==8){break f}if(g>>>0<4){break e}if((g|0)==8){break f}}d=J[h+116>>2];if((d|0)>0|(d|0)>=0){J[h+4>>2]=J[h+4>>2]-1}if(g>>>0<4){break f}d=(d|0)<0;while(1){if(!d){J[h+4>>2]=J[h+4>>2]-1}g=g-1|0;if(g>>>0>3){continue}break}}l=ia-16|0;ia=l;k=(B(Q(Q(n|0)*Q(_))),v(2));d=k&2147483647;h:{if(d-8388608>>>0<=2130706431){n=d<<25;g=(d>>>7|0)+1065353216|0;break h}n=k<<25;g=k>>>7|2147418112;if(d>>>0>=2139095040){break h}n=0;g=0;if(!d){break h}g=d;d=S(d);Rk(l,g,0,0,0,d+81|0);i=J[l>>2];j=J[l+4>>2];n=J[l+8>>2];g=J[l+12>>2]^65536|16265-d<<16}J[q>>2]=i;J[q+4>>2]=j;J[q+8>>2]=n;J[q+12>>2]=k&-2147483648|g;ia=l+16|0;i=J[q+8>>2];j=J[q+12>>2];l=J[q>>2];k=J[q+4>>2];break a}i:{j:{k:{if(g){break k}g=0;while(1){if(H[g+1434|0]!=(d|32)){break k}l:{if(g>>>0>1){break l}d=J[h+4>>2];if((d|0)!=J[h+104>>2]){J[h+4>>2]=d+1;d=K[d|0];break l}d=wk(h)}g=g+1|0;if((g|0)!=3){continue}break}break j}m:{switch(g|0){case 0:n:{if((d|0)!=48){break n}g=J[h+4>>2];o:{if((g|0)!=J[h+104>>2]){J[h+4>>2]=g+1;g=K[g|0];break o}g=wk(h)}if((g&-33)==88){f=ia-432|0;ia=f;d=J[h+4>>2];p:{if((d|0)!=J[h+104>>2]){J[h+4>>2]=d+1;g=K[d|0];break p}g=wk(h)}q:{r:{while(1){if((g|0)!=48){s:{if((g|0)!=46){break q}d=J[h+4>>2];if((d|0)==J[h+104>>2]){break s}J[h+4>>2]=d+1;g=K[d|0];break r}}else{d=J[h+4>>2];if((d|0)!=J[h+104>>2]){p=1;J[h+4>>2]=d+1;g=K[d|0]}else{p=1;g=wk(h)}continue}break}g=wk(h)}x=1;if((g|0)!=48){break q}while(1){d=r;r=d-1|0;s=s-!d|0;d=J[h+4>>2];t:{if((d|0)!=J[h+104>>2]){J[h+4>>2]=d+1;g=K[d|0];break t}g=wk(h)}if((g|0)==48){continue}break}p=1}k=1073676288;while(1){u:{d=g|32;v:{w:{F=g-48|0;if(F>>>0<10){break w}if((g|0)!=46&d-97>>>0>=6){break u}if((g|0)!=46){break w}if(x){break u}x=1;r=i;s=j;break v}d=(g|0)>57?d-87|0:F;x:{if((j|0)<=0&i>>>0<=7|(j|0)<0){u=d+(u<<4)|0;break x}if(!j&i>>>0<=28){Wk(f+48|0,d);Zk(f+32|0,A,C,l,k,0,0,0,1073414144);A=J[f+32>>2];C=J[f+36>>2];l=J[f+40>>2];k=J[f+44>>2];Zk(f+16|0,J[f+48>>2],J[f+52>>2],J[f+56>>2],J[f+60>>2],A,C,l,k);Qk(f,J[f+16>>2],J[f+20>>2],J[f+24>>2],J[f+28>>2],m,o,y,z);y=J[f+8>>2];z=J[f+12>>2];m=J[f>>2];o=J[f+4>>2];break x}if(G|!d){break x}Zk(f+80|0,A,C,l,k,0,0,0,1073610752);Qk(f- -64|0,J[f+80>>2],J[f+84>>2],J[f+88>>2],J[f+92>>2],m,o,y,z);y=J[f+72>>2];z=J[f+76>>2];G=1;m=J[f+64>>2];o=J[f+68>>2]}d=i+1|0;j=d?j:j+1|0;i=d;p=1}d=J[h+4>>2];if((d|0)!=J[h+104>>2]){J[h+4>>2]=d+1;g=K[d|0]}else{g=wk(h)}continue}break}y:{if(!p){d=J[h+116>>2];if((d|0)>0|(d|0)>=0){z:{d=J[h+4>>2];J[h+4>>2]=d-1;J[h+4>>2]=d-2;if(!x){break z}J[h+4>>2]=d-3}}Vk(f+96|0,+(n|0)*0);m=J[f+96>>2];o=J[f+100>>2];i=J[f+108>>2];d=J[f+104>>2];break y}if((j|0)<=0&i>>>0<=7|(j|0)<0){l=i;k=j;while(1){u=u<<4;d=l+1|0;k=d?k:k+1|0;l=d;if((d|0)!=8|k){continue}break}}A:{B:{C:{if((g&-33)==80){l=Bk(h);d=ma;k=d;if(l|(d|0)!=-2147483648){break A}d=J[h+116>>2];if((d|0)>0|(d|0)>=0){break C}break B}l=0;k=0;if(J[h+116>>2]<0){break A}}J[h+4>>2]=J[h+4>>2]-1}l=0;k=0}if(!u){Vk(f+112|0,+(n|0)*0);m=J[f+112>>2];o=J[f+116>>2];i=J[f+124>>2];d=J[f+120>>2];break y}d=x?r:i;j=(x?s:j)<<2|d>>>30;d=l+(d<<2)|0;g=j+k|0;g=d>>>0>>0?g+1|0:g;i=d-32|0;j=g-(d>>>0<32)|0;d=j;if(i>>>0>0-D>>>0&(d|0)>=0|(d|0)>0){J[4842]=68;Wk(f+160|0,n);Zk(f+144|0,J[f+160>>2],J[f+164>>2],J[f+168>>2],J[f+172>>2],-1,-1,-1,2147418111);Zk(f+128|0,J[f+144>>2],J[f+148>>2],J[f+152>>2],J[f+156>>2],-1,-1,-1,2147418111);m=J[f+128>>2];o=J[f+132>>2];i=J[f+140>>2];d=J[f+136>>2];break y}d=D-226|0;g=d>>31;if((j|0)>=(g|0)&d>>>0<=i>>>0|(g|0)<(j|0)){if((u|0)>=0){while(1){Qk(f+416|0,m,o,y,z,0,0,0,-1073807360);g=Tk(m,o,y,z,1073610752);d=(g|0)<0;Qk(f+400|0,m,o,y,z,d?m:J[f+416>>2],d?o:J[f+420>>2],d?y:J[f+424>>2],d?z:J[f+428>>2]);d=i;i=d-1|0;j=j-!d|0;y=J[f+408>>2];z=J[f+412>>2];m=J[f+400>>2];o=J[f+404>>2];u=u<<1|(g|0)>=0;if((u|0)>=0){continue}break}}g=j-((D>>31)+(i>>>0>>0)|0)|0;d=(i-D|0)+32|0;g=d>>>0<32?g+1|0:g;j=d>>>0>>0&(g|0)<=0|(g|0)<0?(d|0)>0?d:0:E;D:{if((j|0)>=113){Wk(f+384|0,n);r=J[f+392>>2];s=J[f+396>>2];A=J[f+384>>2];C=J[f+388>>2];k=0;d=0;break D}Vk(f+352|0,xk(144-j|0));Wk(f+336|0,n);A=J[f+336>>2];C=J[f+340>>2];r=J[f+344>>2];s=J[f+348>>2];yk(f+368|0,J[f+352>>2],J[f+356>>2],J[f+360>>2],J[f+364>>2],A,C,r,s);e=J[f+376>>2];t=J[f+380>>2];k=J[f+372>>2];d=J[f+368>>2]}j=!(u&1)&((Sk(m,o,y,z,0,0,0,0)|0)!=0&(j|0)<32);Xk(f+320|0,j+u|0);Zk(f+304|0,A,C,r,s,J[f+320>>2],J[f+324>>2],J[f+328>>2],J[f+332>>2]);g=d;Qk(f+272|0,J[f+304>>2],J[f+308>>2],J[f+312>>2],J[f+316>>2],d,k,e,t);d=j;Zk(f+288|0,A,C,r,s,d?0:m,d?0:o,d?0:y,d?0:z);Qk(f+256|0,J[f+288>>2],J[f+292>>2],J[f+296>>2],J[f+300>>2],J[f+272>>2],J[f+276>>2],J[f+280>>2],J[f+284>>2]);$k(f+240|0,J[f+256>>2],J[f+260>>2],J[f+264>>2],J[f+268>>2],g,k,e,t);d=J[f+240>>2];j=J[f+244>>2];g=J[f+248>>2];k=J[f+252>>2];if(!Sk(d,j,g,k,0,0,0,0)){J[4842]=68}zk(f+224|0,d,j,g,k,i);m=J[f+224>>2];o=J[f+228>>2];i=J[f+236>>2];d=J[f+232>>2];break y}J[4842]=68;Wk(f+208|0,n);Zk(f+192|0,J[f+208>>2],J[f+212>>2],J[f+216>>2],J[f+220>>2],0,0,0,65536);Zk(f+176|0,J[f+192>>2],J[f+196>>2],J[f+200>>2],J[f+204>>2],0,0,0,65536);m=J[f+176>>2];o=J[f+180>>2];i=J[f+188>>2];d=J[f+184>>2]}J[q+16>>2]=m;J[q+20>>2]=o;J[q+24>>2]=d;J[q+28>>2]=i;ia=f+432|0;i=J[q+24>>2];j=J[q+28>>2];l=J[q+16>>2];k=J[q+20>>2];break a}if(J[h+116>>2]<0){break n}J[h+4>>2]=J[h+4>>2]-1}g=h;x=n;n=0;e=ia-8976|0;ia=e;G=0-D|0;F=G-E|0;E:{F:{while(1){if((d|0)!=48){G:{if((d|0)!=46){break E}d=J[g+4>>2];if((d|0)==J[g+104>>2]){break G}J[g+4>>2]=d+1;d=K[d|0];break F}}else{d=J[g+4>>2];if((d|0)!=J[g+104>>2]){n=1;J[g+4>>2]=d+1;d=K[d|0]}else{n=1;d=wk(g)}continue}break}d=wk(g)}f=1;if((d|0)!=48){break E}while(1){d=i;i=d-1|0;j=j-!d|0;d=J[g+4>>2];H:{if((d|0)!=J[g+104>>2]){J[g+4>>2]=d+1;d=K[d|0];break H}d=wk(g)}if((d|0)==48){continue}break}n=1}J[e+784>>2]=0;I:{J:{h=(d|0)==46;m=d-48|0;K:{L:{M:{if(h|m>>>0<=9){while(1){N:{if(h&1){if(!f){i=l;j=k;f=1;break N}h=!n;break M}l=l+1|0;k=l?k:k+1|0;if((p|0)<=2044){u=(d|0)==48?u:l;n=(e+784|0)+(p<<2)|0;if(t){m=(P(J[n>>2],10)+d|0)-48|0}J[n>>2]=m;n=1;h=t+1|0;d=(h|0)==9;t=d?0:h;p=d+p|0;break N}if((d|0)==48){break N}J[e+8960>>2]=J[e+8960>>2]|1;u=18396}d=J[g+4>>2];O:{if((d|0)!=J[g+104>>2]){J[g+4>>2]=d+1;d=K[d|0];break O}d=wk(g)}h=(d|0)==46;m=d-48|0;if(h|m>>>0<10){continue}break}}i=f?i:l;j=f?j:k;if(!(!n|(d&-33)!=69)){m=Bk(g);d=ma;o=d;P:{if(m|(d|0)!=-2147483648){break P}m=0;o=0;if(J[g+116>>2]<0){break P}J[g+4>>2]=J[g+4>>2]-1}if(!n){break K}j=j+o|0;d=i+m|0;j=d>>>0>>0?j+1|0:j;i=d;break J}h=!n;if((d|0)<0){break L}}if(J[g+116>>2]<0){break L}J[g+4>>2]=J[g+4>>2]-1}if(!h){break J}}J[4842]=28;l=0;k=0;J[g+112>>2]=0;J[g+116>>2]=0;d=J[g+44>>2]-J[g+4>>2]|0;J[g+120>>2]=d;J[g+124>>2]=d>>31;J[g+104>>2]=J[g+8>>2];i=0;d=0;break I}d=J[e+784>>2];if(!d){Vk(e,+(x|0)*0);l=J[e>>2];k=J[e+4>>2];i=J[e+12>>2];d=J[e+8>>2];break I}if(!(l>>>0>9&(k|0)>=0|(k|0)>0|((i|0)!=(l|0)|(j|0)!=(k|0))|(d>>>E|0?(E|0)<=30:0))){Wk(e+48|0,x);Xk(e+32|0,d);Zk(e+16|0,J[e+48>>2],J[e+52>>2],J[e+56>>2],J[e+60>>2],J[e+32>>2],J[e+36>>2],J[e+40>>2],J[e+44>>2]);l=J[e+16>>2];k=J[e+20>>2];i=J[e+28>>2];d=J[e+24>>2];break I}if(i>>>0>G>>>1>>>0&(j|0)>=0|(j|0)>0){J[4842]=68;Wk(e+96|0,x);Zk(e+80|0,J[e+96>>2],J[e+100>>2],J[e+104>>2],J[e+108>>2],-1,-1,-1,2147418111);Zk(e- -64|0,J[e+80>>2],J[e+84>>2],J[e+88>>2],J[e+92>>2],-1,-1,-1,2147418111);l=J[e+64>>2];k=J[e+68>>2];i=J[e+76>>2];d=J[e+72>>2];break I}d=D-226|0;g=i>>>0>>0;d=d>>31;if(g&(j|0)<=(d|0)|(d|0)>(j|0)){J[4842]=68;Wk(e+144|0,x);Zk(e+128|0,J[e+144>>2],J[e+148>>2],J[e+152>>2],J[e+156>>2],0,0,0,65536);Zk(e+112|0,J[e+128>>2],J[e+132>>2],J[e+136>>2],J[e+140>>2],0,0,0,65536);l=J[e+112>>2];k=J[e+116>>2];i=J[e+124>>2];d=J[e+120>>2];break I}if(t){if((t|0)<=8){d=(e+784|0)+(p<<2)|0;g=J[d>>2];while(1){g=P(g,10);t=t+1|0;if((t|0)!=9){continue}break}J[d>>2]=g}p=p+1|0}Q:{f=i;if((u|0)>(f|0)|(u|0)>=9|(f|0)>17){break Q}if((f|0)==9){Wk(e+192|0,x);Xk(e+176|0,J[e+784>>2]);Zk(e+160|0,J[e+192>>2],J[e+196>>2],J[e+200>>2],J[e+204>>2],J[e+176>>2],J[e+180>>2],J[e+184>>2],J[e+188>>2]);l=J[e+160>>2];k=J[e+164>>2];i=J[e+172>>2];d=J[e+168>>2];break I}if((f|0)<=8){Wk(e+272|0,x);Xk(e+256|0,J[e+784>>2]);Zk(e+240|0,J[e+272>>2],J[e+276>>2],J[e+280>>2],J[e+284>>2],J[e+256>>2],J[e+260>>2],J[e+264>>2],J[e+268>>2]);Wk(e+224|0,J[(0-f<<2)+17280>>2]);Uk(e+208|0,J[e+240>>2],J[e+244>>2],J[e+248>>2],J[e+252>>2],J[e+224>>2],J[e+228>>2],J[e+232>>2],J[e+236>>2]);l=J[e+208>>2];k=J[e+212>>2];i=J[e+220>>2];d=J[e+216>>2];break I}d=(P(f,-3)+E|0)+27|0;i=J[e+784>>2];if(i>>>d|0?(d|0)<=30:0){break Q}Wk(e+352|0,x);Xk(e+336|0,i);Zk(e+320|0,J[e+352>>2],J[e+356>>2],J[e+360>>2],J[e+364>>2],J[e+336>>2],J[e+340>>2],J[e+344>>2],J[e+348>>2]);Wk(e+304|0,J[(f<<2)+17208>>2]);Zk(e+288|0,J[e+320>>2],J[e+324>>2],J[e+328>>2],J[e+332>>2],J[e+304>>2],J[e+308>>2],J[e+312>>2],J[e+316>>2]);l=J[e+288>>2];k=J[e+292>>2];i=J[e+300>>2];d=J[e+296>>2];break I}while(1){d=p;p=d-1|0;if(!J[(e+784|0)+(p<<2)>>2]){continue}break}t=0;i=(f|0)%9|0;R:{if(!i){h=0;break R}h=0;i=(f|0)<0?i+9|0:i;S:{if(!d){d=0;break S}j=J[(0-i<<2)+17280>>2];l=1e9/(j|0)|0;m=0;g=0;while(1){k=m;n=(e+784|0)+(g<<2)|0;m=J[n>>2];p=(m>>>0)/(j>>>0)|0;k=k+p|0;J[n>>2]=k;k=!k&(g|0)==(h|0);h=k?h+1&2047:h;f=k?f-9|0:f;m=P(l,m-P(j,p)|0);g=g+1|0;if((g|0)!=(d|0)){continue}break}if(!m){break S}J[(e+784|0)+(d<<2)>>2]=m;d=d+1|0}f=(f-i|0)+9|0}while(1){p=(e+784|0)+(h<<2)|0;T:{while(1){if(((f|0)!=36|M[p>>2]>=10384593)&(f|0)>=36){break T}n=d+2047|0;m=0;while(1){l=n&2047;n=(e+784|0)+(l<<2)|0;i=J[n>>2];k=i>>>3|0;j=i<<29;i=j+m|0;g=k;g=i>>>0>>0?g+1|0:g;j=g;if(!g&i>>>0<1000000001){m=0}else{g=i;m=$l(g,j,1e9,0);i=g-Zl(m,ma,1e9,0)|0}J[n>>2]=i;d=(l|0)!=(d-1&2047)?d:(h|0)==(l|0)?d:i?d:l;n=l-1|0;if((h|0)!=(l|0)){continue}break}t=t-29|0;if(!m){continue}break}h=h-1&2047;if((h|0)==(d|0)){i=e+784|0;j=i+((d+2046&2047)<<2)|0;d=d-1&2047;J[j>>2]=J[j>>2]|J[i+(d<<2)>>2]}f=f+9|0;J[(e+784|0)+(h<<2)>>2]=m;continue}break}U:{V:while(1){i=d+1&2047;k=(e+784|0)+((d-1&2047)<<2)|0;while(1){j=(f|0)>45?9:1;W:{while(1){n=h;g=0;X:{while(1){Y:{l=g+n&2047;if((l|0)==(d|0)){break Y}l=J[(e+784|0)+(l<<2)>>2];h=J[(g<<2)+17232>>2];if(l>>>0>>0){break Y}if(h>>>0>>0){break X}g=g+1|0;if((g|0)!=4){continue}}break}if((f|0)!=36){break X}i=0;j=0;g=0;l=0;k=0;while(1){h=g+n&2047;if((h|0)==(d|0)){d=d+1&2047;J[(e+(d<<2)|0)+780>>2]=0}Xk(e+768|0,J[(e+784|0)+(h<<2)>>2]);Zk(e+752|0,i,j,l,k,0,0,1342177280,1075633366);Qk(e+736|0,J[e+752>>2],J[e+756>>2],J[e+760>>2],J[e+764>>2],J[e+768>>2],J[e+772>>2],J[e+776>>2],J[e+780>>2]);l=J[e+744>>2];k=J[e+748>>2];i=J[e+736>>2];j=J[e+740>>2];g=g+1|0;if((g|0)!=4){continue}break}Wk(e+720|0,x);Zk(e+704|0,i,j,l,k,J[e+720>>2],J[e+724>>2],J[e+728>>2],J[e+732>>2]);l=J[e+712>>2];k=J[e+716>>2];i=0;j=0;m=J[e+704>>2];o=J[e+708>>2];u=t+113|0;h=u-D|0;f=(h|0)<(E|0);g=f?(h|0)>0?h:0:E;if((g|0)<=112){break W}break U}t=j+t|0;h=d;if((d|0)==(n|0)){continue}break}l=1e9>>>j|0;m=-1<>2];g=(o>>>j|0)+g|0;J[p>>2]=g;g=!g&(h|0)==(n|0);h=g?h+1&2047:h;f=g?f-9|0:f;g=P(l,m&o);n=n+1&2047;if((n|0)!=(d|0)){continue}break}if(!g){continue}if((h|0)!=(i|0)){J[(e+784|0)+(d<<2)>>2]=g;d=i;continue V}J[k>>2]=J[k>>2]|1;continue}break}break}Vk(e+656|0,xk(225-g|0));yk(e+688|0,J[e+656>>2],J[e+660>>2],J[e+664>>2],J[e+668>>2],m,o,l,k);y=J[e+696>>2];z=J[e+700>>2];A=J[e+688>>2];C=J[e+692>>2];Vk(e+640|0,xk(113-g|0));Ak(e+672|0,m,o,l,k,J[e+640>>2],J[e+644>>2],J[e+648>>2],J[e+652>>2]);i=J[e+672>>2];j=J[e+676>>2];r=J[e+680>>2];s=J[e+684>>2];$k(e+624|0,m,o,l,k,i,j,r,s);Qk(e+608|0,A,C,y,z,J[e+624>>2],J[e+628>>2],J[e+632>>2],J[e+636>>2]);l=J[e+616>>2];k=J[e+620>>2];m=J[e+608>>2];o=J[e+612>>2]}p=n+4&2047;Z:{if((p|0)==(d|0)){break Z}p=J[(e+784|0)+(p<<2)>>2];_:{if(p>>>0<=499999999){if(!p&(n+5&2047)==(d|0)){break _}Vk(e+496|0,+(x|0)*.25);Qk(e+480|0,i,j,r,s,J[e+496>>2],J[e+500>>2],J[e+504>>2],J[e+508>>2]);r=J[e+488>>2];s=J[e+492>>2];i=J[e+480>>2];j=J[e+484>>2];break _}if((p|0)!=5e8){Vk(e+592|0,+(x|0)*.75);Qk(e+576|0,i,j,r,s,J[e+592>>2],J[e+596>>2],J[e+600>>2],J[e+604>>2]);r=J[e+584>>2];s=J[e+588>>2];i=J[e+576>>2];j=J[e+580>>2];break _}I=+(x|0);if((n+5&2047)==(d|0)){Vk(e+528|0,I*.5);Qk(e+512|0,i,j,r,s,J[e+528>>2],J[e+532>>2],J[e+536>>2],J[e+540>>2]);r=J[e+520>>2];s=J[e+524>>2];i=J[e+512>>2];j=J[e+516>>2];break _}Vk(e+560|0,I*.75);Qk(e+544|0,i,j,r,s,J[e+560>>2],J[e+564>>2],J[e+568>>2],J[e+572>>2]);r=J[e+552>>2];s=J[e+556>>2];i=J[e+544>>2];j=J[e+548>>2]}if((g|0)>111){break Z}Ak(e+464|0,i,j,r,s,0,0,0,1073676288);if(Sk(J[e+464>>2],J[e+468>>2],J[e+472>>2],J[e+476>>2],0,0,0,0)){break Z}Qk(e+448|0,i,j,r,s,0,0,0,1073676288);r=J[e+456>>2];s=J[e+460>>2];i=J[e+448>>2];j=J[e+452>>2]}Qk(e+432|0,m,o,l,k,i,j,r,s);$k(e+416|0,J[e+432>>2],J[e+436>>2],J[e+440>>2],J[e+444>>2],A,C,y,z);l=J[e+424>>2];k=J[e+428>>2];m=J[e+416>>2];o=J[e+420>>2];$:{if((F-2|0)>=(u&2147483647)){break $}J[e+408>>2]=l;J[e+412>>2]=k&2147483647;J[e+400>>2]=m;J[e+404>>2]=o;Zk(e+384|0,m,o,l,k,0,0,0,1073610752);n=Tk(J[e+400>>2],J[e+404>>2],J[e+408>>2],J[e+412>>2],1081081856);d=(n|0)<0;l=d?l:J[e+392>>2];k=d?k:J[e+396>>2];m=d?m:J[e+384>>2];o=d?o:J[e+388>>2];t=((n|0)>=0)+t|0;if(!((Sk(i,j,r,s,0,0,0,0)|0)!=0&(d?f:f&(g|0)!=(h|0)))&(t+110|0)<=(F|0)){break $}J[4842]=68}zk(e+368|0,m,o,l,k,t);l=J[e+368>>2];k=J[e+372>>2];i=J[e+380>>2];d=J[e+376>>2]}J[q+40>>2]=d;J[q+44>>2]=i;J[q+32>>2]=l;J[q+36>>2]=k;ia=e+8976|0;i=J[q+40>>2];j=J[q+44>>2];l=J[q+32>>2];k=J[q+36>>2];break a;case 3:break j;default:break m}}d=J[h+116>>2];if((d|0)>0|(d|0)>=0){J[h+4>>2]=J[h+4>>2]-1}J[4842]=28;break i}aa:{d=J[h+4>>2];ba:{if((d|0)!=J[h+104>>2]){J[h+4>>2]=d+1;d=K[d|0];break ba}d=wk(h)}if((d|0)==40){g=1;break aa}j=2147450880;if(J[h+116>>2]<0){break a}J[h+4>>2]=J[h+4>>2]-1;break a}while(1){ca:{d=J[h+4>>2];da:{if((d|0)!=J[h+104>>2]){J[h+4>>2]=d+1;d=K[d|0];break da}d=wk(h)}if(!(d-48>>>0<10|d-65>>>0<26|(d|0)==95)){if(d-97>>>0>=26){break ca}}g=g+1|0;continue}break}j=2147450880;if((d|0)==41){break a}d=J[h+116>>2];if((d|0)>0|(d|0)>=0){J[h+4>>2]=J[h+4>>2]-1}if(!g){break a}while(1){g=g-1|0;if((d|0)>0|(d|0)>=0){J[h+4>>2]=J[h+4>>2]-1}if(g){continue}break}break a}J[h+112>>2]=0;J[h+116>>2]=0;d=J[h+44>>2]-J[h+4>>2]|0;J[h+120>>2]=d;J[h+124>>2]=d>>31;J[h+104>>2]=J[h+8>>2]}}J[w>>2]=l;J[w+4>>2]=k;J[w+8>>2]=i;J[w+12>>2]=j;ia=q+48|0;d=J[w+8>>2];i=J[w+12>>2];j=J[w>>2];g=J[w+4>>2];if(c){J[c>>2]=((J[w+20>>2]+J[w+136>>2]|0)-J[w+60>>2]|0)+b}J[a+8>>2]=d;J[a+12>>2]=i;J[a>>2]=j;J[a+4>>2]=g;ia=w+160|0}function kh(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0;k=ia-32|0;ia=k;c=J[b+8>>2];a:{b:{if(K[b+352|0]){c=Uj(c);e=J[b+12>>2];J[b+12>>2]=c;if(e){break b}break a}c=Tj(c);e=J[b+12>>2];J[b+12>>2]=c;if(!e){break a}}Ug(e)}c:{c=J[b+12>>2];d:{if(!(J[c+40>>2]!=((J[c+4>>2]-J[c>>2]>>2>>>0)/3|0)?c:0)){b=ll(32);H[b+29|0]=0;c=K[1828]|K[1829]<<8|(K[1830]<<16|K[1831]<<24);d=K[1824]|K[1825]<<8|(K[1826]<<16|K[1827]<<24);H[b+21|0]=d;H[b+22|0]=d>>>8;H[b+23|0]=d>>>16;H[b+24|0]=d>>>24;H[b+25|0]=c;H[b+26|0]=c>>>8;H[b+27|0]=c>>>16;H[b+28|0]=c>>>24;c=K[1823]|K[1824]<<8|(K[1825]<<16|K[1826]<<24);d=K[1819]|K[1820]<<8|(K[1821]<<16|K[1822]<<24);H[b+16|0]=d;H[b+17|0]=d>>>8;H[b+18|0]=d>>>16;H[b+19|0]=d>>>24;H[b+20|0]=c;H[b+21|0]=c>>>8;H[b+22|0]=c>>>16;H[b+23|0]=c>>>24;c=K[1815]|K[1816]<<8|(K[1817]<<16|K[1818]<<24);d=K[1811]|K[1812]<<8|(K[1813]<<16|K[1814]<<24);H[b+8|0]=d;H[b+9|0]=d>>>8;H[b+10|0]=d>>>16;H[b+11|0]=d>>>24;H[b+12|0]=c;H[b+13|0]=c>>>8;H[b+14|0]=c>>>16;H[b+15|0]=c>>>24;c=K[1807]|K[1808]<<8|(K[1809]<<16|K[1810]<<24);d=K[1803]|K[1804]<<8|(K[1805]<<16|K[1806]<<24);H[b|0]=d;H[b+1|0]=d>>>8;H[b+2|0]=d>>>16;H[b+3|0]=d>>>24;H[b+4|0]=c;H[b+5|0]=c>>>8;H[b+6|0]=c>>>16;H[b+7|0]=c>>>24;J[a>>2]=-1;sl(a+4|0,b,29);fl(b);break d}j=b+200|0;d=j;J[d+128>>2]=2;J[d+132>>2]=7;J[d+64>>2]=b;c=na[J[J[b>>2]+32>>2]](b)|0;J[d+88>>2]=c;e=J[c+28>>2]-J[c+24>>2]>>2;c=J[d+108>>2];h=J[d+104>>2];d=c-h>>2;e:{if(e>>>0>d>>>0){Oa(j+104|0,e-d|0);h=J[j+104>>2];c=J[j+108>>2];break e}if(d>>>0<=e>>>0){break e}c=(e<<2)+h|0;J[j+108>>2]=c}if((c|0)!=(h|0)){h=0;while(1){p=J[j+104>>2];r=p+(h<<2)|0;c=J[j+88>>2];g=-1;f:{if((h|0)==-1){break f}g=0;d=J[J[c+24>>2]+(h<<2)>>2];if((d|0)==-1){break f}o=J[c+12>>2];e=1;c=d;while(1){g=g+1|0;f=e;g:{if(e&255){e=0;l=c+1|0;c=(l>>>0)%3|0?l:c-2|0;if((c|0)==-1){c=d;break g}l=J[o+(c<<2)>>2];if((l|0)==-1){c=d;break g}c=d;q=l+1|0;l=(q>>>0)%3|0?q:l-2|0;if((l|0)==-1){break g}e=f;c=l;if((d|0)!=(c|0)){break g}break f}h:{if((c>>>0)%3|0){c=c-1|0;break h}c=c+2|0;if((c|0)==-1){break f}}c=J[o+(c<<2)>>2];if((c|0)==-1){break f}c=(c>>>0)%3|0?c-1|0:c+2|0;e=0}if((c|0)!=-1){continue}break}}J[r>>2]=g;h=h+1|0;if(h>>>0>2]-p>>2>>>0){continue}break}}e=j+92|0;h=J[j+88>>2];c=J[h>>2];d=J[h+4>>2]-c>>2;g=J[j+92>>2];f=J[j+96>>2]-g>>2;i:{if(d>>>0>f>>>0){Oa(e,d-f|0);h=J[j+88>>2];c=J[h>>2];break i}if(d>>>0>=f>>>0){break i}J[j+96>>2]=g+(d<<2)}d=J[h+4>>2];j:{if((d|0)==(c|0)){break j}d=d-c>>2;f=d>>>0<=1?1:d;g=f&3;d=J[e>>2];h=0;if(f-1>>>0>=3){l=f&-4;e=0;while(1){f=h<<2;J[f+d>>2]=J[c+f>>2];o=f|4;J[o+d>>2]=J[c+o>>2];o=f|8;J[o+d>>2]=J[c+o>>2];f=f|12;J[f+d>>2]=J[c+f>>2];h=h+4|0;e=e+4|0;if((l|0)!=(e|0)){continue}break}}if(!g){break j}while(1){e=h<<2;J[e+d>>2]=J[c+e>>2];h=h+1|0;i=i+1|0;if((g|0)!=(i|0)){continue}break}}e=(J[j+132>>2]-J[j+128>>2]|0)+1|0;c=J[j+140>>2];d=J[j+136>>2];f=(c-d|0)/12|0;k:{if(e>>>0>f>>>0){h=0;c=e-f|0;g=J[j+144>>2];d=J[j+140>>2];if(c>>>0<=(g-d|0)/12>>>0){if(c){c=P(c,12)-12|0;c=(c-((c>>>0)%12|0)|0)+12|0;d=nk(d,0,c)+c|0}J[j+140>>2]=d;break k}l:{m:{n:{f=J[j+136>>2];l=(d-f|0)/12|0;e=l+c|0;if(e>>>0<357913942){g=(g-f|0)/12|0;i=g<<1;g=g>>>0>=178956970?357913941:e>>>0>>0?i:e;if(g){if(g>>>0>=357913942){break n}h=ll(P(g,12))}e=P(l,12)+h|0;c=P(c,12)-12|0;l=(c-((c>>>0)%12|0)|0)+12|0;c=nk(e,0,l);l=c+l|0;g=P(g,12)+h|0;if((d|0)==(f|0)){break m}while(1){e=e-12|0;d=d-12|0;J[e>>2]=J[d>>2];J[e+4>>2]=J[d+4>>2];J[e+8>>2]=J[d+8>>2];J[d+8>>2]=0;J[d>>2]=0;J[d+4>>2]=0;if((d|0)!=(f|0)){continue}break}J[j+144>>2]=g;c=J[j+140>>2];J[j+140>>2]=l;d=J[j+136>>2];J[j+136>>2]=e;if((c|0)==(d|0)){break l}while(1){e=c-12|0;f=J[e>>2];if(f){J[c-8>>2]=f;fl(f)}c=e;if((c|0)!=(d|0)){continue}break}break l}break c}$a();C()}J[j+144>>2]=g;J[j+140>>2]=l;J[j+136>>2]=c}if(d){fl(d)}break k}if(e>>>0>>0){e=d+P(e,12)|0;if((e|0)!=(c|0)){while(1){d=c-12|0;f=J[d>>2];if(f){J[c-8>>2]=f;fl(f)}c=d;if((c|0)!=(e|0)){continue}break}}J[j+140>>2]=e}}c=J[b+12>>2];Ab((J[c+28>>2]-J[c+24>>2]>>2)-J[c+44>>2]|0,J[J[b+4>>2]+44>>2]);c=J[b+12>>2];Ab(((J[c+4>>2]-J[c>>2]>>2>>>0)/3|0)-J[c+40>>2]|0,J[J[b+4>>2]+44>>2]);c=J[b+8>>2];d=J[c+100>>2];c=J[c+96>>2];H[k+16|0]=0;l=b+28|0;d=(d-c|0)/12|0;c=k+16|0;Kg(l,d,c);d=J[b+12>>2];e=J[d+28>>2];d=J[d+24>>2];J[k+16>>2]=-1;Jg(b+52|0,e-d>>2,c);d=J[b+40>>2];J[b+44>>2]=d;c=J[b+12>>2];e=J[c+4>>2]-J[c>>2]>>2;e=e-((e>>>0)%3|0)|0;o:{if(e>>>0<=J[b+48>>2]-d>>2>>>0){break o}if(e>>>0>=1073741824){break c}f=e<<2;e=ll(f);J[b+44>>2]=e;J[b+40>>2]=e;J[b+48>>2]=e+f;if(!d){break o}fl(d);c=J[b+12>>2]}d=J[c+28>>2];c=J[c+24>>2];H[k+16|0]=0;Kg(b+84|0,d-c>>2,k+16|0);J[b+164>>2]=-1;J[b+168>>2]=0;J[b+100>>2]=J[b+96>>2];J[b+112>>2]=J[b+108>>2];if(J[b+132>>2]){c=J[b+128>>2];if(c){while(1){d=J[c>>2];fl(c);c=d;if(c){continue}break}}c=0;J[b+128>>2]=0;d=J[b+124>>2];p:{if(!d){break p}if(d>>>0>=4){f=d&-4;while(1){e=c<<2;J[e+J[b+120>>2]>>2]=0;J[J[b+120>>2]+(e|4)>>2]=0;J[J[b+120>>2]+(e|8)>>2]=0;J[J[b+120>>2]+(e|12)>>2]=0;c=c+4|0;m=m+4|0;if((f|0)!=(m|0)){continue}break}}d=d&3;if(!d){break p}e=0;while(1){J[J[b+120>>2]+(c<<2)>>2]=0;c=c+1|0;e=e+1|0;if((d|0)!=(e|0)){continue}break}}J[b+132>>2]=0}J[b+144>>2]=0;c=J[b+12>>2];d=J[c+28>>2];c=J[c+24>>2];J[k+16>>2]=-1;Jg(b+152|0,d-c>>2,k+16|0);c=J[b+72>>2];J[b+76>>2]=c;o=b+72|0;d=J[b+12>>2];d=J[d+4>>2]-J[d>>2]|0;e=(d>>2>>>0)/3|0;q:{if(e>>>0<=J[b+80>>2]-c>>2>>>0){break q}if((d|0)<0){break c}e=e<<2;d=ll(e);J[b+76>>2]=d;J[b+72>>2]=d;J[b+80>>2]=d+e;if(!c){break q}fl(c)}J[b- -64>>2]=0;if(!Vg(b)){b=ll(32);H[b+29|0]=0;c=K[1768]|K[1769]<<8|(K[1770]<<16|K[1771]<<24);d=K[1764]|K[1765]<<8|(K[1766]<<16|K[1767]<<24);H[b+21|0]=d;H[b+22|0]=d>>>8;H[b+23|0]=d>>>16;H[b+24|0]=d>>>24;H[b+25|0]=c;H[b+26|0]=c>>>8;H[b+27|0]=c>>>16;H[b+28|0]=c>>>24;c=K[1763]|K[1764]<<8|(K[1765]<<16|K[1766]<<24);d=K[1759]|K[1760]<<8|(K[1761]<<16|K[1762]<<24);H[b+16|0]=d;H[b+17|0]=d>>>8;H[b+18|0]=d>>>16;H[b+19|0]=d>>>24;H[b+20|0]=c;H[b+21|0]=c>>>8;H[b+22|0]=c>>>16;H[b+23|0]=c>>>24;c=K[1755]|K[1756]<<8|(K[1757]<<16|K[1758]<<24);d=K[1751]|K[1752]<<8|(K[1753]<<16|K[1754]<<24);H[b+8|0]=d;H[b+9|0]=d>>>8;H[b+10|0]=d>>>16;H[b+11|0]=d>>>24;H[b+12|0]=c;H[b+13|0]=c>>>8;H[b+14|0]=c>>>16;H[b+15|0]=c>>>24;c=K[1747]|K[1748]<<8|(K[1749]<<16|K[1750]<<24);d=K[1743]|K[1744]<<8|(K[1745]<<16|K[1746]<<24);H[b|0]=d;H[b+1|0]=d>>>8;H[b+2|0]=d>>>16;H[b+3|0]=d>>>24;H[b+4|0]=c;H[b+5|0]=c>>>8;H[b+6|0]=c>>>16;H[b+7|0]=c>>>24;J[a>>2]=-1;sl(a+4|0,b,29);fl(b);break d}e=0;r:{d=b;if(K[d+352|0]){break r}b=J[d+8>>2];f=J[b+12>>2]-J[b+8>>2]|0;g=f>>2;c=g-1|0;b=J[d+176>>2];i=J[d+172>>2];h=(b-i|0)/136|0;s:{if(c>>>0>h>>>0){bh(d+172|0,c-h|0);break s}if(c>>>0>=h>>>0){break s}h=i+P(c,136)|0;if((h|0)!=(b|0)){while(1){c=b-136|0;i=J[c+116>>2];if(i){J[b-16>>2]=i;fl(i)}i=J[b-32>>2];if(i){J[b-28>>2]=i;fl(i)}ch(b-132|0);b=c;if((c|0)!=(h|0)){continue}break}}J[d+176>>2]=h}if((f|0)==4|(f|0)<=0){break r}h=(g|0)<=1?1:g;b=0;t:{while(1){i=J[J[J[d+8>>2]+8>>2]+(b<<2)>>2];if(J[i+56>>2]){m=P(e,136);c=m+J[d+172>>2]|0;J[c>>2]=b;f=J[c+104>>2];J[c+108>>2]=f;g=J[d+12>>2];g=J[g+4>>2]-J[g>>2]|0;p=g>>2;u:{if(p>>>0<=J[c+112>>2]-f>>2>>>0){break u}if((g|0)<0){break t}g=ll(g);J[c+108>>2]=g;J[c+104>>2]=g;J[c+112>>2]=g+(p<<2);if(!f){break u}fl(f)}c=m+J[d+172>>2]|0;J[c+128>>2]=0;Sj(c+4|0,J[d+8>>2],J[d+12>>2],i);e=e+1|0}b=b+1|0;if((h|0)!=(b|0)){continue}break}break r}break c}b=(J[d+176>>2]-J[d+172>>2]|0)/136|0;H[k+31|0]=b;c=J[J[d+4>>2]+44>>2];e=J[c+20>>2];if(!J[c+16>>2]&(e|0)<=0|(e|0)<0){Ea(c,J[c+4>>2],k+31|0,k+32|0);b=K[k+31|0]}J[d+284>>2]=b&255;b=J[d+12>>2];c=J[b>>2];e=J[b+4>>2];Wg(j);J[k+24>>2]=0;J[k+16>>2]=0;J[k+20>>2]=0;b=0;v:{w:{x:{c=e-c|0;if((c|0)>0){c=c>>>2|0;p=c>>>0<=1?1:c;c=0;while(1){e=(c>>>0)/3|0;r=e>>>5<<2;q=1<>2]>>2]&q){break y}if(Lj(J[d+12>>2],e)){break y}J[k+8>>2]=0;e=Xg(d,e,k+8|0);Fe(j,e);f=J[k+8>>2];if(e){i=-1;g=-1;e=-1;z:{if((f|0)==-1){break z}h=J[J[d+12>>2]>>2];e=h+(f<<2)|0;i=f+1|0;i=(i>>>0)%3|0?i:f-2|0;if((i|0)!=-1){g=J[h+(i<<2)>>2]}i=J[e>>2];A:{if((f>>>0)%3|0){m=f-1|0;break A}m=f+2|0;e=-1;if((m|0)==-1){break z}}e=J[h+(m<<2)>>2]}h=J[d+84>>2];m=h+(i>>>3&536870908)|0;J[m>>2]=J[m>>2]|1<>>3&536870908)|0;J[i>>2]=J[i>>2]|1<>>3&536870908)|0;J[g>>2]=J[g>>2]|1<>2];h=J[d+104>>2];B:{if(e>>>0>>0){J[e>>2]=1;J[d+100>>2]=e+4;break B}g=J[d+96>>2];i=e-g|0;m=i>>2;e=m+1|0;if(e>>>0>=1073741824){break c}t=m<<2;h=h-g|0;m=h>>1;h=h>>>0>=2147483644?1073741823:e>>>0>>0?m:e;if(h){if(h>>>0>=1073741824){break x}e=ll(h<<2)}else{e=0}m=t+e|0;J[m>>2]=1;if((i|0)>0){lk(e,g,i)}J[d+104>>2]=e+(h<<2);J[d+100>>2]=m+4;J[d+96>>2]=e;if(!g){break B}fl(g)}e=r+J[l>>2]|0;J[e>>2]=q|J[e>>2];i=-1;if((f|0)!=-1){e=f+1|0;i=(e>>>0)%3|0?e:f-2|0}C:{if(n>>>0>>0){J[n>>2]=i;n=n+4|0;J[k+20>>2]=n;break C}h=n-b|0;n=h>>2;e=n+1|0;if(e>>>0>=1073741824){break c}g=s-b|0;m=g>>1;g=g>>>0>=2147483644?1073741823:e>>>0>>0?m:e;if(g){if(g>>>0>=1073741824){break x}e=ll(g<<2)}else{e=0}n=e+(n<<2)|0;J[n>>2]=i;s=e+(g<<2)|0;n=n+4|0;if((h|0)>0){lk(e,b,h)}J[k+24>>2]=s;J[k+20>>2]=n;J[k+16>>2]=e;if(b){fl(b)}b=e}if((f|0)==-1){break y}e=f+1|0;e=(e>>>0)%3|0?e:f-2|0;if((e|0)==-1){break y}e=J[J[J[d+12>>2]+12>>2]+(e<<2)>>2];if((e|0)==-1){break y}f=(e>>>0)/3|0;if(J[J[l>>2]+(f>>>3&268435452)>>2]>>>f&1){break y}if(lh(d,e)){break y}break w}if((f|0)!=-1){e=f+1|0;e=(e>>>0)%3|0?e:f-2|0}else{e=-1}Zg(d,e,1);if(!lh(d,J[k+8>>2])){break w}}c=c+1|0;if((p|0)!=(c|0)){continue}break}}c=J[d+72>>2];f=J[d+76>>2];D:{if((c|0)==(f|0)){break D}e=f-4|0;if(e>>>0<=c>>>0){break D}while(1){g=J[c>>2];J[c>>2]=J[e>>2];J[e>>2]=g;c=c+4|0;e=e-4|0;if(c>>>0>>0){continue}break}}_g(o,f,b,n);E:{if(J[d+172>>2]==J[d+176>>2]){break E}c=J[d+8>>2];e=J[c+100>>2];c=J[c+96>>2];H[k+8|0]=0;Kg(l,(e-c|0)/12|0,k+8|0);c=J[d+72>>2];e=J[d+76>>2];if((c|0)==(e|0)){break E}while(1){$g(d,J[c>>2]);c=c+4|0;if((e|0)!=(c|0)){continue}break}}i=0;e=0;c=j+32|0;Ge(j,c);if(!(!J[j+80>>2]|J[j+84>>2]<=0)){while(1){Ge(J[j+80>>2]+(i<<5)|0,c);i=i+1|0;if((i|0)>2]){continue}break}}i=J[j+136>>2];if((i|0)!=J[j+140>>2]){while(1){f=P(e,12);g=f+i|0;Ab(J[g+4>>2]-J[g>>2]>>2,c);i=J[j+136>>2];f=f+i|0;g=J[f+4>>2];f=J[f>>2];if((g|0)!=(f|0)){mf(f,g-f>>2,1,0,c);i=J[j+136>>2]}e=e+1|0;if(e>>>0<(J[j+140>>2]-i|0)/12>>>0){continue}break}}Ab(J[d+324>>2],J[J[d+4>>2]+44>>2]);Ab(J[d+168>>2],J[J[d+4>>2]+44>>2]);if(!ah(d)){c=ll(32);H[c+28|0]=0;d=K[1909]|K[1910]<<8|(K[1911]<<16|K[1912]<<24);H[c+24|0]=d;H[c+25|0]=d>>>8;H[c+26|0]=d>>>16;H[c+27|0]=d>>>24;d=K[1905]|K[1906]<<8|(K[1907]<<16|K[1908]<<24);e=K[1901]|K[1902]<<8|(K[1903]<<16|K[1904]<<24);H[c+16|0]=e;H[c+17|0]=e>>>8;H[c+18|0]=e>>>16;H[c+19|0]=e>>>24;H[c+20|0]=d;H[c+21|0]=d>>>8;H[c+22|0]=d>>>16;H[c+23|0]=d>>>24;d=K[1897]|K[1898]<<8|(K[1899]<<16|K[1900]<<24);e=K[1893]|K[1894]<<8|(K[1895]<<16|K[1896]<<24);H[c+8|0]=e;H[c+9|0]=e>>>8;H[c+10|0]=e>>>16;H[c+11|0]=e>>>24;H[c+12|0]=d;H[c+13|0]=d>>>8;H[c+14|0]=d>>>16;H[c+15|0]=d>>>24;d=K[1889]|K[1890]<<8|(K[1891]<<16|K[1892]<<24);e=K[1885]|K[1886]<<8|(K[1887]<<16|K[1888]<<24);H[c|0]=e;H[c+1|0]=e>>>8;H[c+2|0]=e>>>16;H[c+3|0]=e>>>24;H[c+4|0]=d;H[c+5|0]=d>>>8;H[c+6|0]=d>>>16;H[c+7|0]=d>>>24;J[a>>2]=-1;sl(a+4|0,c,28);fl(c);break v}c=J[J[d+4>>2]+44>>2];e=J[c+20>>2];if(!J[c+16>>2]&(e|0)<=0|(e|0)<0){Ea(c,J[c+4>>2],J[d+232>>2],J[d+236>>2])}J[a>>2]=0;J[a+4>>2]=0;J[a+8>>2]=0;J[a+12>>2]=0;break v}$a();C()}c=ll(48);H[c+32|0]=0;d=K[1703]|K[1704]<<8|(K[1705]<<16|K[1706]<<24);e=K[1699]|K[1700]<<8|(K[1701]<<16|K[1702]<<24);H[c+24|0]=e;H[c+25|0]=e>>>8;H[c+26|0]=e>>>16;H[c+27|0]=e>>>24;H[c+28|0]=d;H[c+29|0]=d>>>8;H[c+30|0]=d>>>16;H[c+31|0]=d>>>24;d=K[1695]|K[1696]<<8|(K[1697]<<16|K[1698]<<24);e=K[1691]|K[1692]<<8|(K[1693]<<16|K[1694]<<24);H[c+16|0]=e;H[c+17|0]=e>>>8;H[c+18|0]=e>>>16;H[c+19|0]=e>>>24;H[c+20|0]=d;H[c+21|0]=d>>>8;H[c+22|0]=d>>>16;H[c+23|0]=d>>>24;d=K[1687]|K[1688]<<8|(K[1689]<<16|K[1690]<<24);e=K[1683]|K[1684]<<8|(K[1685]<<16|K[1686]<<24);H[c+8|0]=e;H[c+9|0]=e>>>8;H[c+10|0]=e>>>16;H[c+11|0]=e>>>24;H[c+12|0]=d;H[c+13|0]=d>>>8;H[c+14|0]=d>>>16;H[c+15|0]=d>>>24;d=K[1679]|K[1680]<<8|(K[1681]<<16|K[1682]<<24);e=K[1675]|K[1676]<<8|(K[1677]<<16|K[1678]<<24);H[c|0]=e;H[c+1|0]=e>>>8;H[c+2|0]=e>>>16;H[c+3|0]=e>>>24;H[c+4|0]=d;H[c+5|0]=d>>>8;H[c+6|0]=d>>>16;H[c+7|0]=d>>>24;J[a>>2]=-1;sl(a+4|0,c,32);fl(c)}if(!b){break d}fl(b)}ia=k+32|0;return}La();C()}function cd(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,D=0,E=0,F=0,G=0,I=0,L=0,M=0,N=0,O=0,Q=0,S=0,U=0,X=0,Y=0,Z=0,_=0,$=0,aa=0,ba=0,ca=0,da=0;i=ia-224|0;ia=i;J[a+8>>2]=e;B=a+32|0;h=J[B>>2];f=J[a+36>>2]-h>>2;a:{if(f>>>0>>0){Oa(B,e-f|0);break a}if(e>>>0>=f>>>0){break a}J[a+36>>2]=h+(e<<2)}b:{if(!d){break b}g=J[b>>2];c:{if((d|0)<2){d=g;break c}h=1;f=d-1|0;z=f&1;d:{if((d|0)==2){d=g;break d}l=f&-2;f=0;d=g;while(1){k=(h<<2)+b|0;j=J[k+4>>2];k=J[k>>2];r=(k|0)<(d|0);d=r?k:d;t=(d|0)>(j|0);d=t?j:d;g=r?g:(g|0)<(k|0)?k:g;g=t?g:(g|0)<(j|0)?j:g;h=h+2|0;f=f+2|0;if((l|0)!=(f|0)){continue}break}}if(!z){break c}f=J[(h<<2)+b>>2];h=(f|0)<(d|0);d=h?f:d;g=h?g:(f|0)>(g|0)?f:g}J[a+16>>2]=g;J[a+12>>2]=d;f=(g>>31)-((d>>31)+(d>>>0>g>>>0)|0)|0;d=g-d|0;if(!f&d>>>0>2147483646|f){break b}d=d+1|0;J[a+20>>2]=d;f=d>>>1|0;J[a+24>>2]=f;J[a+28>>2]=0-f;if(d&1){break b}J[a+24>>2]=f-1}Z=J[a+52>>2];v=J[a+48>>2];J[i+184>>2]=0;J[i+188>>2]=0;J[i+176>>2]=0;J[i+180>>2]=0;J[i+168>>2]=0;J[i+172>>2]=0;J[i+160>>2]=0;J[i+164>>2]=0;J[i+152>>2]=0;J[i+156>>2]=0;J[i+144>>2]=0;J[i+148>>2]=0;e:{if(!e){g=0;d=0;break e}Oa(i+144|0,e);g=J[i+156>>2];d=J[i+160>>2]}d=d-g>>2;f:{if(d>>>0>=e>>>0){if(d>>>0<=e>>>0){break f}J[i+160>>2]=(e<<2)+g;break f}Oa(i+144|12,e-d|0)}f=J[i+168>>2];d=J[i+172>>2]-f>>2;g:{if(d>>>0>=e>>>0){if(d>>>0<=e>>>0){break g}J[i+172>>2]=f+(e<<2);break g}Oa(i+168|0,e-d|0)}h:{i:{f=J[i+180>>2];d=J[i+184>>2]-f>>2;j:{k:{if(d>>>0>=e>>>0){if(d>>>0>e>>>0){J[i+184>>2]=f+(e<<2)}J[i+136>>2]=0;J[i+128>>2]=0;J[i+132>>2]=0;if(e){break k}d=1;break j}Oa(i+180|0,e-d|0);J[i+136>>2]=0;J[i+128>>2]=0;J[i+132>>2]=0}if(e>>>0>=1073741824){break i}d=e<<2;f=ll(d);J[i+128>>2]=f;h=d+f|0;J[i+136>>2]=h;nk(f,0,d);J[i+132>>2]=h;d=0}A=a+152|0;h=J[a+152>>2];f=J[a+156>>2]-h>>2;l:{m:{if(f>>>0>>0){Oa(A,e-f|0);J[i+104>>2]=0;J[i+108>>2]=0;J[i+96>>2]=0;J[i+100>>2]=0;J[i+88>>2]=0;J[i+92>>2]=0;J[i+80>>2]=0;J[i+84>>2]=0;J[i+72>>2]=0;J[i+76>>2]=0;d=i- -64|0;J[d>>2]=0;J[d+4>>2]=0;J[i+56>>2]=0;J[i+60>>2]=0;J[i+48>>2]=0;J[i+52>>2]=0;break m}if(e>>>0>>0){J[a+156>>2]=h+(e<<2)}J[i+104>>2]=0;J[i+108>>2]=0;J[i+96>>2]=0;J[i+100>>2]=0;J[i+88>>2]=0;J[i+92>>2]=0;J[i+80>>2]=0;J[i+84>>2]=0;J[i+72>>2]=0;J[i+76>>2]=0;f=i- -64|0;J[f>>2]=0;J[f+4>>2]=0;J[i+56>>2]=0;J[i+60>>2]=0;J[i+48>>2]=0;J[i+52>>2]=0;t=0;if(d){break l}}d=e<<2;s=ll(d);t=nk(s,0,d)+d|0}d=J[a+56>>2];d=J[d+4>>2]-J[d>>2]|0;if((d|0)<5){break h}L=e&-2;M=e&1;_=e&-4;S=e&3;N=e-1|0;U=e<<2;O=a+112|0;z=d>>>2|0;Q=t-s|0;D=Q>>2;X=(Q-4&-4)+4|0;$=i+36|0;aa=i+24|0;while(1){f=J[a+56>>2];d=J[f>>2];n:{o:{r=z-1|0;if(r>>>0>2]-d>>2>>>0){f=0;j=0;k=J[d+(r<<2)>>2];p:{if((k|0)==-1){break p}o=1;d=k+2|0;j=(k>>>0)%3|0;w=j?k-1|0:d;x=1<>>5|0;h=0;G=(j|0)!=0|(d|0)!=-1;I=J[v>>2];d=k;while(1){q:{if(J[I+(d>>>3&536870908)>>2]>>>d&1){break q}j=J[J[J[v+64>>2]+12>>2]+(d<<2)>>2];if((j|0)==-1){break q}l=J[Z>>2];g=J[v+28>>2];m=J[l+(J[g+(j<<2)>>2]<<2)>>2];if((m|0)>=(r|0)){break q}n=j+1|0;n=J[l+(J[g+(((n>>>0)%3|0?n:j-2|0)<<2)>>2]<<2)>>2];if((n|0)>=(r|0)){break q}g=J[l+(J[g+(j+((j>>>0)%3|0?-1:2)<<2)>>2]<<2)>>2];if((g|0)>=(r|0)){break q}r:{if(!e){break r}j=J[(i+144|0)+P(h,12)>>2];l=P(e,g);n=P(e,n);p=P(e,m);g=0;m=0;if(N){while(1){J[j+(g<<2)>>2]=(J[(g+l<<2)+b>>2]+J[(g+n<<2)+b>>2]|0)-J[(g+p<<2)+b>>2];y=g|1;J[j+(y<<2)>>2]=(J[(l+y<<2)+b>>2]+J[(n+y<<2)+b>>2]|0)-J[(p+y<<2)+b>>2];g=g+2|0;m=m+2|0;if((L|0)!=(m|0)){continue}break}}if(!M){break r}J[j+(g<<2)>>2]=(J[(g+l<<2)+b>>2]+J[(g+n<<2)+b>>2]|0)-J[(g+p<<2)+b>>2]}j=4;h=h+1|0;if((h|0)==4){break p}}s:{if(o&1){g=d-2|0;j=d+1|0;d=-1;j=(j>>>0)%3|0?j:g;if((j|0)==-1|J[J[v>>2]+(j>>>3&536870908)>>2]>>>j&1){break s}j=J[J[J[v+64>>2]+12>>2]+(j<<2)>>2];if((j|0)==-1){break s}d=j+1|0;d=(d>>>0)%3|0?d:j-2|0;break s}t:{if((d>>>0)%3|0){g=d-1|0;break t}g=d+2|0;d=-1;if((g|0)==-1){break s}}d=-1;if(J[J[v>>2]+(g>>>3&536870908)>>2]>>>g&1){break s}j=J[J[J[v+64>>2]+12>>2]+(g<<2)>>2];if((j|0)==-1){break s}if((j>>>0)%3|0){d=j-1|0;break s}d=j+2|0}if((d|0)==(k|0)){j=h;break p}if(!((o^1)&1|(d|0)!=-1)){if(!G){j=h;break p}if(x&J[J[v>>2]+(E<<2)>>2]){j=h;break p}d=J[J[J[v+64>>2]+12>>2]+(w<<2)>>2];if((d|0)==-1){j=h;break p}o=0;d=(d>>>0)%3|0?d-1|0:d+2|0}j=h;if((d|0)!=-1){continue}break}}H[i+16|0]=0;J[i+8>>2]=0;J[i+12>>2]=0;J[i+44>>2]=0;J[i+36>>2]=0;J[i+40>>2]=0;J[i+28>>2]=0;J[i+32>>2]=0;J[i+20>>2]=0;J[i+24>>2]=0;I=P(e,r)<<2;y=I+b|0;k=(P(z-2|0,e)<<2)+b|0;l=J[A>>2];d=0;if(e){while(1){g=f<<2;h=J[g+k>>2]-J[g+y>>2]|0;J[g+s>>2]=h;J[g+l>>2]=(h|0)<0?(h^-1)<<1|1:h<<1;g=d;d=h>>31;d=g+((d^h)-d|0)|0;f=f+1|0;if((f|0)!=(e|0)){continue}break}}f=i+200|0;gf(f,O,l,e);h=kf(f);g=ma;m=h;h=J[f+12>>2];f=J[f+16>>2];l=(((h-f|0)+1|0)/64|0)+f<<3;f=f<<3;o=f;h=l+f|0;f=(l>>31)+(f>>31)|0;f=h>>>0>>0?f+1|0:f;l=h;h=m+h|0;f=f+g|0;f=h>>>0>>0?f+1|0:f;g=h;E=(j|0)<=0;if(!E){o=(j<<3)-8|0;h=o+(i+48|0)|0;m=h;l=j+J[h>>2]|0;h=J[h+4>>2];h=j>>>0>l>>>0?h+1|0:h;J[m>>2]=l;J[m+4>>2]=h;u=W(ff(l,J[o+(i+80|0)>>2])*(+(l>>>0)+ +(h|0)*4294967296));u:{if(R(u)<0x8000000000000000){l=R(u)>=1?~~(u>0?T(V(u*2.3283064365386963e-10),4294967295):W((u-+(~~u>>>0>>>0))*2.3283064365386963e-10))>>>0:0;h=~~u>>>0;break u}l=-2147483648;h=0}h=g+h|0;g=h}J[i+20>>2]=0;H[i+16|0]=0;J[i+8>>2]=g;J[i+12>>2]=d;Ta(aa,k,k+U|0);dd($,s,t);v:{w:{x:{if(E){break x}l=(i+124|0)+j|0;k=l-1|0;Y=j<<3;d=Y-8|0;G=d+(i+48|0)|0;ba=d+(i+80|0)|0;o=1;w=0;while(1){d=i+124|0;nk(d,1,j);w=w+1|0;nk(d,0,w);y:{z:while(1){if(e){nk(J[i+128>>2],0,U)}m=0;d=J[i+128>>2];x=0;while(1){if(!K[(i+124|0)+m|0]){A:{if(!e){break A}n=J[(i+144|0)+P(m,12)>>2];h=0;g=0;f=0;if(e>>>0>3){while(1){p=g<<2;q=p+d|0;J[q>>2]=J[q>>2]+J[n+p>>2];q=p|4;F=q+d|0;J[F>>2]=J[F>>2]+J[n+q>>2];q=p|8;F=q+d|0;J[F>>2]=J[F>>2]+J[n+q>>2];p=p|12;q=p+d|0;J[q>>2]=J[q>>2]+J[n+p>>2];g=g+4|0;f=f+4|0;if((_|0)!=(f|0)){continue}break}}if(!S){break A}while(1){f=g<<2;p=f+d|0;J[p>>2]=J[p>>2]+J[f+n>>2];g=g+1|0;h=h+1|0;if((S|0)!=(h|0)){continue}break}}x=1<>2];d=0;break B}g=0;d=J[i+128>>2];f=0;if(N){while(1){h=g<<2;m=h+d|0;J[m>>2]=J[m>>2]/(o|0);h=d+(h|4)|0;J[h>>2]=J[h>>2]/(o|0);g=g+2|0;f=f+2|0;if((L|0)!=(f|0)){continue}break}}if(M){d=d+(g<<2)|0;J[d>>2]=J[d>>2]/(o|0)}h=J[A>>2];f=0;d=0;if(!e){break B}n=J[i+128>>2];while(1){m=f<<2;g=J[m+n>>2]-J[m+y>>2]|0;J[m+s>>2]=g;J[h+m>>2]=(g|0)<0?(g^-1)<<1|1:g<<1;m=d;d=g>>31;d=m+((d^g)-d|0)|0;f=f+1|0;if((f|0)!=(e|0)){continue}break}}f=i+200|0;gf(f,O,h,e);h=kf(f);m=h;h=J[f+12>>2];f=J[f+16>>2];g=(((h-f|0)+1|0)/64|0)+f<<3;f=f<<3;h=g+f|0;f=m+h|0;g=f;q=(j|0)>0;if(q){f=J[G+4>>2];h=J[G>>2];u=W(ff(h,J[ba>>2]+o|0)*(+(h>>>0)+ +(f|0)*4294967296));C:{if(R(u)<0x8000000000000000){f=~~u>>>0;break C}f=0}g=f+g|0}f=J[i+8>>2];if(!((f|0)<=(g|0)&((f|0)<(g|0)|(d|0)>=J[i+12>>2]))){J[i+20>>2]=o;H[i+16|0]=x;J[i+8>>2]=g;J[i+12>>2]=d;m=J[i+132>>2];h=J[i+128>>2];n=m-h|0;g=n>>2;d=J[i+32>>2];f=J[i+24>>2];D:{if(g>>>0<=d-f>>2>>>0){n=J[i+28>>2]-f|0;d=n+h|0;x=n>>2;n=x>>>0>>0?d:m;p=n-h|0;if((h|0)!=(n|0)){mk(f,h,p)}if(g>>>0>x>>>0){g=J[i+28>>2];if((m|0)==(n|0)){break D}while(1){J[g>>2]=J[d>>2];g=g+4|0;d=d+4|0;if((m|0)!=(d|0)){continue}break}break D}g=f+p|0;break D}if(f){J[i+28>>2]=f;fl(f);J[i+32>>2]=0;J[i+24>>2]=0;J[i+28>>2]=0;d=0}if((n|0)<0){break w}f=d>>1;d=d>>>0>=2147483644?1073741823:f>>>0>g>>>0?f:g;if(d>>>0>=1073741824){break w}d=d<<2;g=ll(d);J[i+24>>2]=g;J[i+32>>2]=d+g;if((h|0)==(m|0)){break D}d=(n-4&-4)+4|0;g=lk(g,h,d)+d|0}J[i+28>>2]=g;d=J[i+44>>2];f=J[i+36>>2];E:{if(d-f>>2>>>0>=D>>>0){h=J[i+40>>2]-f|0;d=h+s|0;m=h>>2;h=m>>>0>>0?d:t;g=h-s|0;if((h|0)!=(s|0)){mk(f,s,g)}if(m>>>0>>0){g=J[i+40>>2];if((h|0)==(t|0)){break E}while(1){J[g>>2]=J[d>>2];g=g+4|0;d=d+4|0;if((t|0)!=(d|0)){continue}break}break E}g=f+g|0;break E}if(f){J[i+40>>2]=f;fl(f);J[i+44>>2]=0;J[i+36>>2]=0;J[i+40>>2]=0;d=0}if((Q|0)<0){break v}f=d>>1;d=d>>>0>=2147483644?1073741823:f>>>0>D>>>0?f:D;if(d>>>0>=1073741824){break v}d=d<<2;g=ll(d);J[i+36>>2]=g;J[i+44>>2]=d+g;if((s|0)==(t|0)){break E}g=lk(g,s,X)+X|0}J[i+40>>2]=g}if((k|0)==(i+124|0)){break y}g=K[k|0];d=-1;while(1){m=g&255;f=d-1|0;h=f+l|0;g=K[h|0];if(m>>>0>g>>>0){f=l;while(1){f=f-1|0;m=K[f|0];if(m>>>0<=g>>>0){continue}break}H[h|0]=m;H[f|0]=g;if((d|0)==-1){continue z}g=d+l|0;d=k;while(1){f=K[g|0];H[g|0]=K[d|0];H[d|0]=f;d=d-1|0;g=g+1|0;if(d>>>0>g>>>0){continue}break}continue z}d=f;if((h|0)!=(i+124|0)){continue}break}break}f=i+124|0;g=f;d=k;if(f>>>0>=d>>>0){break y}while(1){f=K[g|0];H[g|0]=K[d|0];H[d|0]=f;d=d-1|0;g=g+1|0;if(d>>>0>g>>>0){continue}break}}o=o+1|0;if((j|0)!=(w|0)){continue}break}if(!q){break x}d=i+Y|0;f=J[i+20>>2];g=f;h=f+J[d+72>>2]|0;f=J[d+76>>2]+(f>>31)|0;J[d+72>>2]=h;J[d+76>>2]=g>>>0>h>>>0?f+1|0:f}if(!e){break n}d=J[A>>2];g=0;h=J[i+36>>2];f=0;if(!N){break o}while(1){l=g<<2;k=J[l+h>>2];J[d+l>>2]=(k|0)<0?(k^-1)<<1|1:k<<1;l=l|4;k=J[l+h>>2];J[d+l>>2]=(k|0)<0?(k^-1)<<1|1:k<<1;g=g+2|0;f=f+2|0;if((L|0)!=(f|0)){continue}break}break o}La();C()}La();C()}Zc();C()}if(!M){break n}f=h;h=g<<2;f=J[f+h>>2];J[d+h>>2]=(f|0)<0?(f^-1)<<1|1:f<<1}jf(i+200|0,O,J[A>>2],e);F:{if(E){break F}g=P(j,12)+a|0;d=0;while(1){G:{k=J[g+56>>2];l=k<<5;f=J[g+52>>2];H:{if(!(K[i+16|0]>>>d&1)){h=f;I:{if((f|0)!=(l|0)){break I}if((f+1|0)<0){break G}J:{if(f>>>0<=1073741822){k=k<<6;l=(f&-32)+32|0;k=k>>>0>l>>>0?k:l;h=f;if(f>>>0>=k>>>0){break I}if((k|0)>=0){break J}break G}k=2147483647;h=-1;if(f>>>0>=2147483647){break I}}l=(k-1>>>5|0)+1|0;h=ll(l<<2);k=J[g+48>>2];J[h+((f>>>0>=33?f-1>>>5|0:0)<<2)>>2]=0;K:{L:{if(!f){break L}o=f>>>5<<2;m=mk(h,k,o);n=f&31;if(!n){break L}h=m+o|0;p=h;q=J[h>>2];h=-1>>>32-n|0;J[p>>2]=q&(h^-1)|h&J[k+o>>2];J[g+48>>2]=m;J[g+52>>2]=f;J[g+56>>2]=l;break K}J[g+48>>2]=h;J[g+52>>2]=f;J[g+56>>2]=l;h=f;if(!k){break I}}fl(k);h=J[g+52>>2]}J[g+52>>2]=h+1;f=J[g+48>>2]+(h>>>3&536870908)|0;J[f>>2]=J[f>>2]|1<>>0<=1073741822){k=k<<6;l=(f&-32)+32|0;k=k>>>0>l>>>0?k:l;h=f;if(f>>>0>=k>>>0){break M}if((k|0)<0){break G}break N}k=2147483647;h=-1;if(f>>>0>=2147483647){break M}}l=(k-1>>>5|0)+1|0;h=ll(l<<2);k=J[g+48>>2];J[h+((f>>>0>=33?f-1>>>5|0:0)<<2)>>2]=0;O:{P:{if(!f){break P}o=f>>>5<<2;m=mk(h,k,o);n=f&31;if(!n){break P}h=m+o|0;p=h;q=J[h>>2];h=-1>>>32-n|0;J[p>>2]=q&(h^-1)|h&J[k+o>>2];J[g+48>>2]=m;J[g+52>>2]=f;J[g+56>>2]=l;break O}J[g+48>>2]=h;J[g+52>>2]=f;J[g+56>>2]=l;h=f;if(!k){break M}}fl(k);h=J[g+52>>2]}J[g+52>>2]=h+1;f=J[g+48>>2]+(h>>>3&536870908)|0;k=J[f>>2];ca=f,da=bm(h)&k,J[ca>>2]=da}d=d+1|0;if((j|0)!=(d|0)){continue}break F}break}La();C()}g=J[a+8>>2];if((g|0)>0){o=c+I|0;d=J[B>>2];k=0;f=J[i+24>>2];while(1){h=d;if((g|0)>0){h=J[B>>2];g=0;while(1){j=g<<2;l=J[j+f>>2];m=J[a+16>>2];Q:{if((l|0)>(m|0)){J[h+j>>2]=m;break Q}j=h+j|0;m=J[a+12>>2];if((m|0)>(l|0)){J[j>>2]=m;break Q}J[j>>2]=l}g=g+1|0;if((g|0)>2]){continue}break}}j=k<<2;f=j+o|0;j=J[j+y>>2]-J[h+j>>2]|0;J[f>>2]=j;R:{if((j|0)>2]){g=j+J[a+20>>2]|0}else{if((j|0)<=J[a+24>>2]){break R}g=j-J[a+20>>2]|0}J[f>>2]=g}f=h;g=J[a+8>>2];k=k+1|0;if((g|0)>(k|0)){continue}break}}d=J[i+36>>2];if(d){J[i+40>>2]=d;fl(d)}d=J[i+24>>2];if(d){J[i+28>>2]=d;fl(d)}d=(z|0)>2;z=r;if(d){continue}break}break h}La();C()}if((e|0)>0){nk(J[i+144>>2],0,e<<2)}g=J[a+8>>2];if((g|0)>0){d=J[a+32>>2];k=0;f=J[i+144>>2];while(1){h=d;if((g|0)>0){h=J[B>>2];g=0;while(1){e=g<<2;j=J[e+f>>2];r=J[a+16>>2];S:{if((j|0)>(r|0)){J[e+h>>2]=r;break S}e=e+h|0;r=J[a+12>>2];if((r|0)>(j|0)){J[e>>2]=r;break S}J[e>>2]=j}g=g+1|0;if((g|0)>2]){continue}break}}f=k<<2;e=f+c|0;f=J[b+f>>2]-J[f+h>>2]|0;J[e>>2]=f;T:{if((f|0)>2]){f=f+J[a+20>>2]|0}else{if((f|0)<=J[a+24>>2]){break T}f=f-J[a+20>>2]|0}J[e>>2]=f}f=h;g=J[a+8>>2];k=k+1|0;if((g|0)>(k|0)){continue}break}}if(s){fl(s)}a=J[i+128>>2];if(a){J[i+132>>2]=a;fl(a)}a=J[i+180>>2];if(a){J[i+184>>2]=a;fl(a)}a=J[i+168>>2];if(a){J[i+172>>2]=a;fl(a)}a=J[i+156>>2];if(a){J[i+160>>2]=a;fl(a)}a=J[i+144>>2];if(a){J[i+148>>2]=a;fl(a)}ia=i+224|0;return 1}function Ad(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,D=0,E=0,F=0,G=0,I=0,L=0,M=0,N=0,O=0,Q=0,S=0,U=0,X=0,Y=0,Z=0,_=0,$=0,aa=0,ba=0,ca=0,da=0;i=ia-224|0;ia=i;J[a+8>>2]=e;z=a+32|0;g=J[z>>2];f=J[a+36>>2]-g>>2;a:{if(f>>>0>>0){Oa(z,e-f|0);break a}if(e>>>0>=f>>>0){break a}J[a+36>>2]=g+(e<<2)}b:{if(!d){break b}h=J[b>>2];c:{if((d|0)<2){d=h;break c}g=1;f=d-1|0;w=f&1;d:{if((d|0)==2){d=h;break d}t=f&-2;d=h;while(1){l=(g<<2)+b|0;f=J[l+4>>2];l=J[l>>2];k=(l|0)<(d|0);d=k?l:d;p=(d|0)>(f|0);d=p?f:d;l=k?h:(h|0)<(l|0)?l:h;h=p?l:(f|0)>(l|0)?f:l;g=g+2|0;j=j+2|0;if((t|0)!=(j|0)){continue}break}}if(!w){break c}f=J[(g<<2)+b>>2];g=(f|0)<(d|0);d=g?f:d;h=g?h:(f|0)>(h|0)?f:h}J[a+16>>2]=h;J[a+12>>2]=d;f=(h>>31)-((d>>31)+(d>>>0>h>>>0)|0)|0;d=h-d|0;if(!f&d>>>0>2147483646|f){break b}d=d+1|0;J[a+20>>2]=d;f=d>>>1|0;J[a+24>>2]=f;J[a+28>>2]=0-f;if(d&1){break b}J[a+24>>2]=f-1}Z=J[a+52>>2];N=J[a+48>>2];J[i+184>>2]=0;J[i+188>>2]=0;J[i+176>>2]=0;J[i+180>>2]=0;J[i+168>>2]=0;J[i+172>>2]=0;J[i+160>>2]=0;J[i+164>>2]=0;J[i+152>>2]=0;J[i+156>>2]=0;J[i+144>>2]=0;J[i+148>>2]=0;e:{if(!e){h=0;d=0;break e}Oa(i+144|0,e);h=J[i+156>>2];d=J[i+160>>2]}d=d-h>>2;f:{if(d>>>0>=e>>>0){if(d>>>0<=e>>>0){break f}J[i+160>>2]=(e<<2)+h;break f}Oa(i+144|12,e-d|0)}f=J[i+168>>2];d=J[i+172>>2]-f>>2;g:{if(d>>>0>=e>>>0){if(d>>>0<=e>>>0){break g}J[i+172>>2]=f+(e<<2);break g}Oa(i+168|0,e-d|0)}h:{i:{f=J[i+180>>2];d=J[i+184>>2]-f>>2;j:{k:{if(d>>>0>=e>>>0){if(d>>>0>e>>>0){J[i+184>>2]=f+(e<<2)}J[i+136>>2]=0;J[i+128>>2]=0;J[i+132>>2]=0;if(e){break k}d=1;break j}Oa(i+180|0,e-d|0);J[i+136>>2]=0;J[i+128>>2]=0;J[i+132>>2]=0}if(e>>>0>=1073741824){break i}d=e<<2;f=ll(d);J[i+128>>2]=f;g=d+f|0;J[i+136>>2]=g;nk(f,0,d);J[i+132>>2]=g;d=0}x=a+152|0;g=J[a+152>>2];f=J[a+156>>2]-g>>2;l:{m:{if(f>>>0>>0){Oa(x,e-f|0);J[i+104>>2]=0;J[i+108>>2]=0;J[i+96>>2]=0;J[i+100>>2]=0;J[i+88>>2]=0;J[i+92>>2]=0;J[i+80>>2]=0;J[i+84>>2]=0;J[i+72>>2]=0;J[i+76>>2]=0;d=i- -64|0;J[d>>2]=0;J[d+4>>2]=0;J[i+56>>2]=0;J[i+60>>2]=0;J[i+48>>2]=0;J[i+52>>2]=0;break m}if(e>>>0>>0){J[a+156>>2]=g+(e<<2)}J[i+104>>2]=0;J[i+108>>2]=0;J[i+96>>2]=0;J[i+100>>2]=0;J[i+88>>2]=0;J[i+92>>2]=0;J[i+80>>2]=0;J[i+84>>2]=0;J[i+72>>2]=0;J[i+76>>2]=0;f=i- -64|0;J[f>>2]=0;J[f+4>>2]=0;J[i+56>>2]=0;J[i+60>>2]=0;J[i+48>>2]=0;J[i+52>>2]=0;t=0;if(d){break l}}d=e<<2;r=ll(d);t=nk(r,0,d)+d|0}d=J[a+56>>2];d=J[d+4>>2]-J[d>>2]|0;if((d|0)<5){break h}F=e&-2;G=e&1;_=e&-4;O=e&3;I=e-1|0;Q=e<<2;L=a+112|0;E=d>>>2|0;M=t-r|0;A=M>>2;S=(M-4&-4)+4|0;$=i+36|0;aa=i+24|0;while(1){f=J[a+56>>2];d=J[f>>2];n:{o:{w=E-1|0;if(w>>>0>2]-d>>2>>>0){f=0;l=0;d=J[d+(w<<2)>>2];p:{if((d|0)==-1){break p}p=J[N+12>>2];g=d+2|0;l=(d>>>0)%3|0;y=p+((l?d-1|0:g)<<2)|0;k=0;B=(l|0)!=0|(g|0)!=-1;u=1;g=d;while(1){l=J[p+(g<<2)>>2];q:{if((l|0)==-1){break q}j=-1;m=J[Z>>2];o=J[N>>2];h=m+(J[o+(l<<2)>>2]<<2)|0;n=l+1|0;n=(n>>>0)%3|0?n:l-2|0;if((n|0)!=-1){j=J[o+(n<<2)>>2]}n=J[h>>2];r:{s:{if((l>>>0)%3|0){h=l-1|0;break s}h=l+2|0;s=-1;if((h|0)==-1){break r}}s=J[o+(h<<2)>>2]}if((n|0)>=(w|0)){break q}h=J[m+(j<<2)>>2];if((h|0)>=(w|0)){break q}j=J[m+(s<<2)>>2];if((j|0)>=(w|0)){break q}l=J[(i+144|0)+P(k,12)>>2];t:{if(!e){break t}j=P(e,j);o=P(e,h);n=P(e,n);h=0;m=0;if(I){while(1){J[l+(h<<2)>>2]=(J[(h+j<<2)+b>>2]+J[(h+o<<2)+b>>2]|0)-J[(h+n<<2)+b>>2];s=h|1;J[l+(s<<2)>>2]=(J[(j+s<<2)+b>>2]+J[(o+s<<2)+b>>2]|0)-J[(n+s<<2)+b>>2];h=h+2|0;m=m+2|0;if((F|0)!=(m|0)){continue}break}}if(!G){break t}J[l+(h<<2)>>2]=(J[(h+j<<2)+b>>2]+J[(h+o<<2)+b>>2]|0)-J[(h+n<<2)+b>>2]}l=4;k=k+1|0;if((k|0)==4){break p}}u:{if(u&1){h=g+1|0;g=(h>>>0)%3|0?h:g-2|0;j=-1;if((g|0)==-1){break u}g=J[p+(g<<2)>>2];j=-1;if((g|0)==-1){break u}l=g+1|0;j=(l>>>0)%3|0?l:g-2|0;break u}v:{if((g>>>0)%3|0){h=g-1|0;break v}h=g+2|0;j=-1;if((h|0)==-1){break u}}g=J[p+(h<<2)>>2];j=-1;if((g|0)==-1){break u}j=g-1|0;if((g>>>0)%3|0){break u}j=g+2|0}g=j;if((d|0)==(g|0)){l=k;break p}if(!((u^1)&1|(g|0)!=-1)){if(!B){l=k;break p}g=J[y>>2];if((g|0)==-1){l=k;break p}u=0;g=(g>>>0)%3|0?g-1|0:g+2|0}l=k;if((g|0)!=-1){continue}break}}H[i+16|0]=0;J[i+8>>2]=0;J[i+12>>2]=0;J[i+44>>2]=0;J[i+36>>2]=0;J[i+40>>2]=0;J[i+28>>2]=0;J[i+32>>2]=0;J[i+20>>2]=0;J[i+24>>2]=0;U=P(e,w)<<2;s=U+b|0;k=(P(E-2|0,e)<<2)+b|0;j=J[x>>2];d=0;if(e){while(1){h=f<<2;g=J[h+k>>2]-J[h+s>>2]|0;J[h+r>>2]=g;J[h+j>>2]=(g|0)<0?(g^-1)<<1|1:g<<1;h=d;d=g>>31;d=h+((d^g)-d|0)|0;f=f+1|0;if((f|0)!=(e|0)){continue}break}}f=i+200|0;gf(f,L,j,e);g=kf(f);h=ma;o=g;g=J[f+12>>2];f=J[f+16>>2];j=(((g-f|0)+1|0)/64|0)+f<<3;f=f<<3;p=f;g=j+f|0;f=(j>>31)+(f>>31)|0;f=g>>>0

>>0?f+1|0:f;j=g;g=o+g|0;f=f+h|0;f=g>>>0>>0?f+1|0:f;h=g;B=(l|0)<=0;if(!B){p=(l<<3)-8|0;g=p+(i+48|0)|0;o=g;j=l+J[g>>2]|0;g=J[g+4>>2];g=j>>>0>>0?g+1|0:g;J[o>>2]=j;J[o+4>>2]=g;v=W(ff(j,J[p+(i+80|0)>>2])*(+(j>>>0)+ +(g|0)*4294967296));w:{if(R(v)<0x8000000000000000){j=R(v)>=1?~~(v>0?T(V(v*2.3283064365386963e-10),4294967295):W((v-+(~~v>>>0>>>0))*2.3283064365386963e-10))>>>0:0;g=~~v>>>0;break w}j=-2147483648;g=0}g=h+g|0;h=g}J[i+20>>2]=0;H[i+16|0]=0;J[i+8>>2]=h;J[i+12>>2]=d;Ta(aa,k,k+Q|0);dd($,r,t);x:{y:{z:{if(B){break z}o=(i+124|0)+l|0;p=o-1|0;X=l<<3;d=X-8|0;Y=d+(i+48|0)|0;ba=d+(i+80|0)|0;k=1;y=0;while(1){d=i+124|0;nk(d,1,l);y=y+1|0;nk(d,0,y);A:{B:while(1){if(e){nk(J[i+128>>2],0,Q)}m=0;d=J[i+128>>2];u=0;while(1){if(!K[(i+124|0)+m|0]){C:{if(!e){break C}f=J[(i+144|0)+P(m,12)>>2];g=0;h=0;j=0;if(e>>>0>3){while(1){n=h<<2;q=n+d|0;J[q>>2]=J[q>>2]+J[f+n>>2];q=n|4;D=q+d|0;J[D>>2]=J[D>>2]+J[f+q>>2];q=n|8;D=q+d|0;J[D>>2]=J[D>>2]+J[f+q>>2];n=n|12;q=n+d|0;J[q>>2]=J[q>>2]+J[f+n>>2];h=h+4|0;j=j+4|0;if((_|0)!=(j|0)){continue}break}}if(!O){break C}while(1){j=h<<2;n=j+d|0;J[n>>2]=J[n>>2]+J[f+j>>2];h=h+1|0;g=g+1|0;if((O|0)!=(g|0)){continue}break}}u=1<>2];d=0;break D}h=0;d=J[i+128>>2];f=0;if(I){while(1){g=h<<2;j=g+d|0;J[j>>2]=J[j>>2]/(k|0);g=d+(g|4)|0;J[g>>2]=J[g>>2]/(k|0);h=h+2|0;f=f+2|0;if((F|0)!=(f|0)){continue}break}}if(G){d=d+(h<<2)|0;J[d>>2]=J[d>>2]/(k|0)}g=J[x>>2];f=0;d=0;if(!e){break D}m=J[i+128>>2];while(1){j=f<<2;h=J[j+m>>2]-J[j+s>>2]|0;J[j+r>>2]=h;J[g+j>>2]=(h|0)<0?(h^-1)<<1|1:h<<1;j=d;d=h>>31;d=j+((d^h)-d|0)|0;f=f+1|0;if((f|0)!=(e|0)){continue}break}}f=i+200|0;gf(f,L,g,e);g=kf(f);j=g;g=J[f+12>>2];f=J[f+16>>2];h=(((g-f|0)+1|0)/64|0)+f<<3;f=f<<3;g=h+f|0;f=j+g|0;h=f;n=(l|0)>0;if(n){f=J[Y+4>>2];g=J[Y>>2];v=W(ff(g,J[ba>>2]+k|0)*(+(g>>>0)+ +(f|0)*4294967296));E:{if(R(v)<0x8000000000000000){f=~~v>>>0;break E}f=0}h=f+h|0}f=J[i+8>>2];if(!((f|0)<=(h|0)&((f|0)<(h|0)|(d|0)>=J[i+12>>2]))){J[i+20>>2]=k;H[i+16|0]=u;J[i+8>>2]=h;J[i+12>>2]=d;j=J[i+132>>2];g=J[i+128>>2];m=j-g|0;h=m>>2;d=J[i+32>>2];f=J[i+24>>2];F:{if(h>>>0<=d-f>>2>>>0){m=J[i+28>>2]-f|0;d=m+g|0;q=m>>2;m=q>>>0>>0?d:j;u=m-g|0;if((g|0)!=(m|0)){mk(f,g,u)}if(h>>>0>q>>>0){h=J[i+28>>2];if((j|0)==(m|0)){break F}while(1){J[h>>2]=J[d>>2];h=h+4|0;d=d+4|0;if((j|0)!=(d|0)){continue}break}break F}h=f+u|0;break F}if(f){J[i+28>>2]=f;fl(f);J[i+32>>2]=0;J[i+24>>2]=0;J[i+28>>2]=0;d=0}if((m|0)<0){break y}f=d>>1;d=d>>>0>=2147483644?1073741823:f>>>0>h>>>0?f:h;if(d>>>0>=1073741824){break y}d=d<<2;h=ll(d);J[i+24>>2]=h;J[i+32>>2]=d+h;if((g|0)==(j|0)){break F}d=(m-4&-4)+4|0;h=lk(h,g,d)+d|0}J[i+28>>2]=h;d=J[i+44>>2];f=J[i+36>>2];G:{if(d-f>>2>>>0>=A>>>0){g=J[i+40>>2]-f|0;d=g+r|0;j=g>>2;g=j>>>0>>0?d:t;h=g-r|0;if((g|0)!=(r|0)){mk(f,r,h)}if(j>>>0>>0){h=J[i+40>>2];if((g|0)==(t|0)){break G}while(1){J[h>>2]=J[d>>2];h=h+4|0;d=d+4|0;if((t|0)!=(d|0)){continue}break}break G}h=f+h|0;break G}if(f){J[i+40>>2]=f;fl(f);J[i+44>>2]=0;J[i+36>>2]=0;J[i+40>>2]=0;d=0}if((M|0)<0){break x}f=d>>1;d=d>>>0>=2147483644?1073741823:f>>>0>A>>>0?f:A;if(d>>>0>=1073741824){break x}d=d<<2;h=ll(d);J[i+36>>2]=h;J[i+44>>2]=d+h;if((r|0)==(t|0)){break G}h=lk(h,r,S)+S|0}J[i+40>>2]=h}if((p|0)==(i+124|0)){break A}h=K[p|0];d=-1;while(1){j=h&255;f=d-1|0;g=f+o|0;h=K[g|0];if(j>>>0>h>>>0){f=o;while(1){f=f-1|0;j=K[f|0];if(j>>>0<=h>>>0){continue}break}H[g|0]=j;H[f|0]=h;if((d|0)==-1){continue B}h=d+o|0;d=p;while(1){f=K[h|0];H[h|0]=K[d|0];H[d|0]=f;d=d-1|0;h=h+1|0;if(d>>>0>h>>>0){continue}break}continue B}d=f;if((g|0)!=(i+124|0)){continue}break}break}f=i+124|0;h=f;d=p;if(f>>>0>=d>>>0){break A}while(1){f=K[h|0];H[h|0]=K[d|0];H[d|0]=f;d=d-1|0;h=h+1|0;if(d>>>0>h>>>0){continue}break}}k=k+1|0;if((l|0)!=(y|0)){continue}break}if(!n){break z}d=i+X|0;f=J[i+20>>2];h=f;g=f+J[d+72>>2]|0;f=J[d+76>>2]+(f>>31)|0;J[d+72>>2]=g;J[d+76>>2]=h>>>0>g>>>0?f+1|0:f}if(!e){break n}d=J[x>>2];h=0;f=J[i+36>>2];j=0;if(!I){break o}while(1){k=h<<2;g=J[k+f>>2];J[d+k>>2]=(g|0)<0?(g^-1)<<1|1:g<<1;k=k|4;g=J[k+f>>2];J[d+k>>2]=(g|0)<0?(g^-1)<<1|1:g<<1;h=h+2|0;j=j+2|0;if((F|0)!=(j|0)){continue}break}break o}La();C()}La();C()}Zc();C()}if(!G){break n}g=h<<2;f=J[g+f>>2];J[d+g>>2]=(f|0)<0?(f^-1)<<1|1:f<<1}jf(i+200|0,L,J[x>>2],e);H:{if(B){break H}h=P(l,12)+a|0;d=0;while(1){I:{k=J[h+56>>2];j=k<<5;f=J[h+52>>2];J:{if(!(K[i+16|0]>>>d&1)){g=f;K:{if((f|0)!=(j|0)){break K}if((f+1|0)<0){break I}L:{if(f>>>0<=1073741822){k=k<<6;j=(f&-32)+32|0;k=j>>>0>>0?k:j;g=f;if(f>>>0>=k>>>0){break K}if((k|0)>=0){break L}break I}k=2147483647;g=-1;if(f>>>0>=2147483647){break K}}j=(k-1>>>5|0)+1|0;g=ll(j<<2);k=J[h+48>>2];J[g+((f>>>0>=33?f-1>>>5|0:0)<<2)>>2]=0;M:{N:{if(!f){break N}p=f>>>5<<2;o=mk(g,k,p);m=f&31;if(!m){break N}g=p+o|0;n=g;q=J[g>>2];g=-1>>>32-m|0;J[n>>2]=q&(g^-1)|g&J[k+p>>2];J[h+48>>2]=o;J[h+52>>2]=f;J[h+56>>2]=j;break M}J[h+48>>2]=g;J[h+52>>2]=f;J[h+56>>2]=j;g=f;if(!k){break K}}fl(k);g=J[h+52>>2]}J[h+52>>2]=g+1;f=J[h+48>>2]+(g>>>3&536870908)|0;J[f>>2]=J[f>>2]|1<>>0<=1073741822){k=k<<6;j=(f&-32)+32|0;k=j>>>0>>0?k:j;g=f;if(f>>>0>=k>>>0){break O}if((k|0)<0){break I}break P}k=2147483647;g=-1;if(f>>>0>=2147483647){break O}}j=(k-1>>>5|0)+1|0;g=ll(j<<2);k=J[h+48>>2];J[g+((f>>>0>=33?f-1>>>5|0:0)<<2)>>2]=0;Q:{R:{if(!f){break R}p=f>>>5<<2;o=mk(g,k,p);m=f&31;if(!m){break R}g=p+o|0;n=g;q=J[g>>2];g=-1>>>32-m|0;J[n>>2]=q&(g^-1)|g&J[k+p>>2];J[h+48>>2]=o;J[h+52>>2]=f;J[h+56>>2]=j;break Q}J[h+48>>2]=g;J[h+52>>2]=f;J[h+56>>2]=j;g=f;if(!k){break O}}fl(k);g=J[h+52>>2]}J[h+52>>2]=g+1;f=J[h+48>>2]+(g>>>3&536870908)|0;k=J[f>>2];ca=f,da=bm(g)&k,J[ca>>2]=da}d=d+1|0;if((l|0)!=(d|0)){continue}break H}break}La();C()}h=J[a+8>>2];if((h|0)>0){p=c+U|0;d=J[z>>2];k=0;j=J[i+24>>2];while(1){g=d;if((h|0)>0){g=J[z>>2];h=0;while(1){f=h<<2;l=J[f+j>>2];o=J[a+16>>2];S:{if((l|0)>(o|0)){J[f+g>>2]=o;break S}f=f+g|0;o=J[a+12>>2];if((o|0)>(l|0)){J[f>>2]=o;break S}J[f>>2]=l}h=h+1|0;if((h|0)>2]){continue}break}}l=k<<2;f=l+p|0;l=J[l+s>>2]-J[g+l>>2]|0;J[f>>2]=l;T:{if((l|0)>2]){h=l+J[a+20>>2]|0}else{if((l|0)<=J[a+24>>2]){break T}h=l-J[a+20>>2]|0}J[f>>2]=h}j=g;h=J[a+8>>2];k=k+1|0;if((h|0)>(k|0)){continue}break}}d=J[i+36>>2];if(d){J[i+40>>2]=d;fl(d)}d=J[i+24>>2];if(d){J[i+28>>2]=d;fl(d)}d=(E|0)>2;E=w;if(d){continue}break}break h}La();C()}if((e|0)>0){nk(J[i+144>>2],0,e<<2)}h=J[a+8>>2];if((h|0)>0){d=J[a+32>>2];k=0;j=J[i+144>>2];while(1){g=d;if((h|0)>0){g=J[z>>2];h=0;while(1){e=h<<2;f=J[e+j>>2];l=J[a+16>>2];U:{if((f|0)>(l|0)){J[e+g>>2]=l;break U}e=e+g|0;l=J[a+12>>2];if((l|0)>(f|0)){J[e>>2]=l;break U}J[e>>2]=f}h=h+1|0;if((h|0)>2]){continue}break}}f=k<<2;e=f+c|0;f=J[b+f>>2]-J[f+g>>2]|0;J[e>>2]=f;V:{if((f|0)>2]){f=f+J[a+20>>2]|0}else{if((f|0)<=J[a+24>>2]){break V}f=f-J[a+20>>2]|0}J[e>>2]=f}j=g;h=J[a+8>>2];k=k+1|0;if((h|0)>(k|0)){continue}break}}if(r){fl(r)}a=J[i+128>>2];if(a){J[i+132>>2]=a;fl(a)}a=J[i+180>>2];if(a){J[i+184>>2]=a;fl(a)}a=J[i+168>>2];if(a){J[i+172>>2]=a;fl(a)}a=J[i+156>>2];if(a){J[i+160>>2]=a;fl(a)}a=J[i+144>>2];if(a){J[i+148>>2]=a;fl(a)}ia=i+224|0;return 1}function Wd(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,D=0,E=0,F=0,G=0,I=0,L=0,M=0,N=0,O=0,Q=0,S=0,U=0,X=0,Y=0,Z=0,_=0,$=0,aa=0,ba=0,ca=0,da=0;g=ia-240|0;ia=g;Y=J[a+36>>2];u=J[a+32>>2];J[g+184>>2]=0;J[g+188>>2]=0;J[g+176>>2]=0;J[g+180>>2]=0;J[g+168>>2]=0;J[g+172>>2]=0;J[g+160>>2]=0;J[g+164>>2]=0;J[g+152>>2]=0;J[g+156>>2]=0;J[g+144>>2]=0;J[g+148>>2]=0;if(e){Oa(g+144|0,e);h=J[g+156>>2];d=J[g+160>>2]}else{d=0}d=d-h>>2;a:{if(d>>>0>=e>>>0){if(d>>>0<=e>>>0){break a}J[g+160>>2]=(e<<2)+h;break a}Oa(g+144|12,e-d|0)}f=J[g+168>>2];d=J[g+172>>2]-f>>2;b:{if(d>>>0>=e>>>0){if(d>>>0<=e>>>0){break b}J[g+172>>2]=f+(e<<2);break b}Oa(g+168|0,e-d|0)}c:{d:{f=J[g+180>>2];d=J[g+184>>2]-f>>2;e:{f:{if(d>>>0>=e>>>0){if(d>>>0>e>>>0){J[g+184>>2]=f+(e<<2)}J[g+136>>2]=0;J[g+128>>2]=0;J[g+132>>2]=0;if(e){break f}d=1;break e}Oa(g+180|0,e-d|0);J[g+136>>2]=0;J[g+128>>2]=0;J[g+132>>2]=0}if(e>>>0>=1073741824){break d}d=e<<2;f=ll(d);J[g+128>>2]=f;i=d+f|0;J[g+136>>2]=i;nk(f,0,d);J[g+132>>2]=i;d=0}z=a+136|0;i=J[a+136>>2];f=J[a+140>>2]-i>>2;g:{h:{if(f>>>0>>0){Oa(z,e-f|0);J[g+104>>2]=0;J[g+108>>2]=0;J[g+96>>2]=0;J[g+100>>2]=0;J[g+88>>2]=0;J[g+92>>2]=0;J[g+80>>2]=0;J[g+84>>2]=0;J[g+72>>2]=0;J[g+76>>2]=0;d=g- -64|0;J[d>>2]=0;J[d+4>>2]=0;J[g+56>>2]=0;J[g+60>>2]=0;J[g+48>>2]=0;J[g+52>>2]=0;break h}if(e>>>0>>0){J[a+140>>2]=i+(e<<2)}J[g+104>>2]=0;J[g+108>>2]=0;J[g+96>>2]=0;J[g+100>>2]=0;J[g+88>>2]=0;J[g+92>>2]=0;J[g+80>>2]=0;J[g+84>>2]=0;J[g+72>>2]=0;J[g+76>>2]=0;f=g- -64|0;J[f>>2]=0;J[f+4>>2]=0;J[g+56>>2]=0;J[g+60>>2]=0;J[g+48>>2]=0;J[g+52>>2]=0;v=0;if(d){break g}}d=e<<2;r=ll(d);v=nk(r,0,d)+d|0}d=J[a+40>>2];d=J[d+4>>2]-J[d>>2]|0;if((d|0)<5){break c}I=e&-2;L=e&1;Z=e&-4;Q=e&3;M=e-1|0;S=e<<2;_=a+8|0;N=a+96|0;E=d>>>2|0;O=v-r|0;A=O>>2;U=(O-4&-4)+4|0;$=g+36|0;aa=g+24|0;while(1){d=J[a+40>>2];f=J[d>>2];i:{j:{y=E-1|0;if(y>>>0>2]-f>>2>>>0){d=0;m=0;k=J[f+(y<<2)>>2];k:{if((k|0)==-1){break k}l=1;i=k+2|0;m=(k>>>0)%3|0;w=m?k-1|0:i;x=1<>>5|0;f=0;F=(m|0)!=0|(i|0)!=-1;G=J[u>>2];i=k;while(1){l:{if(J[G+(i>>>3&536870908)>>2]>>>i&1){break l}m=J[J[J[u+64>>2]+12>>2]+(i<<2)>>2];if((m|0)==-1){break l}j=J[Y>>2];h=J[u+28>>2];s=J[j+(J[h+(m<<2)>>2]<<2)>>2];if((s|0)>=(y|0)){break l}n=m+1|0;o=J[j+(J[h+(((n>>>0)%3|0?n:m-2|0)<<2)>>2]<<2)>>2];if((o|0)>=(y|0)){break l}h=J[j+(J[h+(m+((m>>>0)%3|0?-1:2)<<2)>>2]<<2)>>2];if((h|0)>=(y|0)){break l}m:{if(!e){break m}m=J[(g+144|0)+P(f,12)>>2];n=P(e,h);o=P(e,o);s=P(e,s);h=0;j=0;if(M){while(1){J[m+(h<<2)>>2]=(J[(h+n<<2)+b>>2]+J[(h+o<<2)+b>>2]|0)-J[(h+s<<2)+b>>2];p=h|1;J[m+(p<<2)>>2]=(J[(n+p<<2)+b>>2]+J[(o+p<<2)+b>>2]|0)-J[(p+s<<2)+b>>2];h=h+2|0;j=j+2|0;if((I|0)!=(j|0)){continue}break}}if(!L){break m}J[m+(h<<2)>>2]=(J[(h+n<<2)+b>>2]+J[(h+o<<2)+b>>2]|0)-J[(h+s<<2)+b>>2]}m=4;f=f+1|0;if((f|0)==4){break k}}n:{if(l&1){h=i-2|0;m=i+1|0;i=-1;m=(m>>>0)%3|0?m:h;if((m|0)==-1|J[J[u>>2]+(m>>>3&536870908)>>2]>>>m&1){break n}m=J[J[J[u+64>>2]+12>>2]+(m<<2)>>2];if((m|0)==-1){break n}i=m+1|0;i=(i>>>0)%3|0?i:m-2|0;break n}o:{if((i>>>0)%3|0){h=i-1|0;break o}h=i+2|0;i=-1;if((h|0)==-1){break n}}i=-1;if(J[J[u>>2]+(h>>>3&536870908)>>2]>>>h&1){break n}m=J[J[J[u+64>>2]+12>>2]+(h<<2)>>2];if((m|0)==-1){break n}if((m>>>0)%3|0){i=m-1|0;break n}i=m+2|0}if((i|0)==(k|0)){m=f;break k}if(!((l^1)&1|(i|0)!=-1)){if(!F){m=f;break k}if(x&J[J[u>>2]+(B<<2)>>2]){m=f;break k}i=J[J[J[u+64>>2]+12>>2]+(w<<2)>>2];if((i|0)==-1){m=f;break k}l=0;i=(i>>>0)%3|0?i-1|0:i+2|0}m=f;if((i|0)!=-1){continue}break}}H[g+16|0]=0;J[g+8>>2]=0;J[g+12>>2]=0;J[g+44>>2]=0;J[g+36>>2]=0;J[g+40>>2]=0;J[g+28>>2]=0;J[g+32>>2]=0;J[g+20>>2]=0;J[g+24>>2]=0;G=P(e,y)<<2;s=G+b|0;h=(P(E-2|0,e)<<2)+b|0;l=J[z>>2];i=0;if(e){while(1){k=d<<2;f=J[k+h>>2]-J[k+s>>2]|0;J[k+r>>2]=f;J[k+l>>2]=(f|0)<0?(f^-1)<<1|1:f<<1;k=f;f=f>>31;i=((k^f)-f|0)+i|0;d=d+1|0;if((e|0)!=(d|0)){continue}break}}d=g+200|0;gf(d,N,l,e);f=kf(d);k=ma;n=f;f=J[d+12>>2];d=J[d+16>>2];l=(((f-d|0)+1|0)/64|0)+d<<3;d=d<<3;j=d;f=l+d|0;d=(l>>31)+(d>>31)|0;d=f>>>0>>0?d+1|0:d;l=f;f=n+f|0;d=d+k|0;d=f>>>0>>0?d+1|0:d;k=f;B=(m|0)<=0;if(!B){j=(m<<3)-8|0;f=j+(g+48|0)|0;n=f;l=m+J[f>>2]|0;f=J[f+4>>2];f=l>>>0>>0?f+1|0:f;J[n>>2]=l;J[n+4>>2]=f;t=W(ff(l,J[j+(g+80|0)>>2])*(+(l>>>0)+ +(f|0)*4294967296));p:{if(R(t)<0x8000000000000000){l=R(t)>=1?~~(t>0?T(V(t*2.3283064365386963e-10),4294967295):W((t-+(~~t>>>0>>>0))*2.3283064365386963e-10))>>>0:0;f=~~t>>>0;break p}l=-2147483648;f=0}f=f+k|0;k=f}J[g+20>>2]=0;H[g+16|0]=0;J[g+8>>2]=k;J[g+12>>2]=i;Ta(aa,h,h+S|0);dd($,r,v);q:{r:{s:{if(B){break s}k=(g+124|0)+m|0;f=k-1|0;X=m<<3;d=X-8|0;F=d+(g+48|0)|0;ba=d+(g+80|0)|0;l=1;w=0;while(1){d=g+124|0;nk(d,1,m);w=w+1|0;nk(d,0,w);t:{u:while(1){if(e){nk(J[g+128>>2],0,S)}j=0;d=J[g+128>>2];x=0;while(1){if(!K[(g+124|0)+j|0]){v:{if(!e){break v}i=J[(g+144|0)+P(j,12)>>2];n=0;h=0;o=0;if(e>>>0>3){while(1){p=h<<2;q=p+d|0;J[q>>2]=J[q>>2]+J[i+p>>2];q=p|4;D=q+d|0;J[D>>2]=J[D>>2]+J[i+q>>2];q=p|8;D=q+d|0;J[D>>2]=J[D>>2]+J[i+q>>2];p=p|12;q=p+d|0;J[q>>2]=J[q>>2]+J[i+p>>2];h=h+4|0;o=o+4|0;if((Z|0)!=(o|0)){continue}break}}if(!Q){break v}while(1){o=h<<2;p=o+d|0;J[p>>2]=J[p>>2]+J[i+o>>2];h=h+1|0;n=n+1|0;if((Q|0)!=(n|0)){continue}break}}x=1<>2];i=0;break w}h=0;i=J[g+128>>2];d=0;if(M){while(1){j=h<<2;n=j+i|0;J[n>>2]=J[n>>2]/(l|0);j=i+(j|4)|0;J[j>>2]=J[j>>2]/(l|0);h=h+2|0;d=d+2|0;if((I|0)!=(d|0)){continue}break}}if(L){d=i+(h<<2)|0;J[d>>2]=J[d>>2]/(l|0)}n=J[z>>2];d=0;i=0;if(!e){break w}o=J[g+128>>2];while(1){j=d<<2;h=J[j+o>>2]-J[j+s>>2]|0;J[j+r>>2]=h;J[j+n>>2]=(h|0)<0?(h^-1)<<1|1:h<<1;j=i;i=h>>31;i=j+((i^h)-i|0)|0;d=d+1|0;if((e|0)!=(d|0)){continue}break}}d=g+200|0;gf(d,N,n,e);h=kf(d);n=h;h=J[d+12>>2];d=J[d+16>>2];j=(((h-d|0)+1|0)/64|0)+d<<3;d=d<<3;h=j+d|0;d=n+h|0;h=d;q=(m|0)>0;if(q){d=J[F+4>>2];j=J[F>>2];t=W(ff(j,J[ba>>2]+l|0)*(+(j>>>0)+ +(d|0)*4294967296));x:{if(R(t)<0x8000000000000000){d=~~t>>>0;break x}d=0}h=d+h|0}d=J[g+8>>2];if(!((d|0)<=(h|0)&((d|0)<(h|0)|(i|0)>=J[g+12>>2]))){J[g+20>>2]=l;H[g+16|0]=x;J[g+8>>2]=h;J[g+12>>2]=i;n=J[g+132>>2];j=J[g+128>>2];o=n-j|0;h=o>>2;i=J[g+32>>2];d=J[g+24>>2];y:{if(h>>>0<=i-d>>2>>>0){o=J[g+28>>2]-d|0;i=o+j|0;x=o>>2;o=x>>>0>>0?i:n;p=o-j|0;if((j|0)!=(o|0)){mk(d,j,p)}if(h>>>0>x>>>0){h=J[g+28>>2];if((n|0)==(o|0)){break y}while(1){J[h>>2]=J[i>>2];h=h+4|0;i=i+4|0;if((n|0)!=(i|0)){continue}break}break y}h=d+p|0;break y}if(d){J[g+28>>2]=d;fl(d);J[g+32>>2]=0;J[g+24>>2]=0;J[g+28>>2]=0;i=0}if((o|0)<0){break r}d=i>>1;d=i>>>0>=2147483644?1073741823:d>>>0>h>>>0?d:h;if(d>>>0>=1073741824){break r}d=d<<2;h=ll(d);J[g+24>>2]=h;J[g+32>>2]=d+h;if((j|0)==(n|0)){break y}d=(o-4&-4)+4|0;h=lk(h,j,d)+d|0}J[g+28>>2]=h;i=J[g+44>>2];d=J[g+36>>2];z:{if(i-d>>2>>>0>=A>>>0){h=J[g+40>>2]-d|0;i=h+r|0;n=h>>2;j=n>>>0>>0?i:v;h=j-r|0;if((j|0)!=(r|0)){mk(d,r,h)}if(n>>>0>>0){h=J[g+40>>2];if((j|0)==(v|0)){break z}while(1){J[h>>2]=J[i>>2];h=h+4|0;i=i+4|0;if((v|0)!=(i|0)){continue}break}break z}h=d+h|0;break z}if(d){J[g+40>>2]=d;fl(d);J[g+44>>2]=0;J[g+36>>2]=0;J[g+40>>2]=0;i=0}if((O|0)<0){break q}d=i>>1;d=i>>>0>=2147483644?1073741823:d>>>0>A>>>0?d:A;if(d>>>0>=1073741824){break q}d=d<<2;h=ll(d);J[g+36>>2]=h;J[g+44>>2]=d+h;if((r|0)==(v|0)){break z}h=lk(h,r,U)+U|0}J[g+40>>2]=h}if((f|0)==(g+124|0)){break t}h=K[f|0];i=-1;while(1){n=h&255;d=i-1|0;j=d+k|0;h=K[j|0];if(n>>>0>h>>>0){d=k;while(1){d=d-1|0;n=K[d|0];if(n>>>0<=h>>>0){continue}break}H[j|0]=n;H[d|0]=h;if((i|0)==-1){continue u}h=i+k|0;i=f;while(1){d=K[h|0];H[h|0]=K[i|0];H[i|0]=d;h=h+1|0;i=i-1|0;if(h>>>0>>0){continue}break}continue u}i=d;if((j|0)!=(g+124|0)){continue}break}break}d=g+124|0;h=d;i=f;if(d>>>0>=f>>>0){break t}while(1){d=K[h|0];H[h|0]=K[i|0];H[i|0]=d;h=h+1|0;i=i-1|0;if(h>>>0>>0){continue}break}}l=l+1|0;if((m|0)!=(w|0)){continue}break}if(!q){break s}d=g+X|0;i=d;k=J[g+20>>2];f=k+J[d+72>>2]|0;d=J[d+76>>2]+(k>>31)|0;J[i+72>>2]=f;J[i+76>>2]=f>>>0>>0?d+1|0:d}if(!e){break i}d=J[z>>2];h=0;f=J[g+36>>2];o=0;if(!M){break j}while(1){k=h<<2;i=J[k+f>>2];J[d+k>>2]=(i|0)<0?(i^-1)<<1|1:i<<1;k=k|4;i=J[k+f>>2];J[d+k>>2]=(i|0)<0?(i^-1)<<1|1:i<<1;h=h+2|0;o=o+2|0;if((I|0)!=(o|0)){continue}break}break j}La();C()}La();C()}Zc();C()}if(!L){break i}i=h<<2;f=J[i+f>>2];J[d+i>>2]=(f|0)<0?(f^-1)<<1|1:f<<1}jf(g+200|0,N,J[z>>2],e);A:{if(B){break A}k=P(m,12)+a|0;i=0;while(1){B:{h=J[k+40>>2];l=h<<5;d=J[k+36>>2];C:{if(!(K[g+16|0]>>>i&1)){f=d;D:{if((d|0)!=(l|0)){break D}if((d+1|0)<0){break B}E:{if(d>>>0<=1073741822){h=h<<6;l=(d&-32)+32|0;l=h>>>0>l>>>0?h:l;f=d;if(d>>>0>=l>>>0){break D}if((l|0)>=0){break E}break B}l=2147483647;f=-1;if(d>>>0>=2147483647){break D}}l=(l-1>>>5|0)+1|0;f=ll(l<<2);h=J[k+32>>2];J[f+((d>>>0>=33?d-1>>>5|0:0)<<2)>>2]=0;F:{G:{if(!d){break G}j=d>>>5<<2;n=mk(f,h,j);o=d&31;if(!o){break G}f=j+n|0;p=f;q=J[f>>2];f=-1>>>32-o|0;J[p>>2]=q&(f^-1)|f&J[h+j>>2];J[k+32>>2]=n;J[k+36>>2]=d;J[k+40>>2]=l;break F}J[k+32>>2]=f;J[k+36>>2]=d;J[k+40>>2]=l;f=d;if(!h){break D}}fl(h);f=J[k+36>>2]}J[k+36>>2]=f+1;d=J[k+32>>2]+(f>>>3&536870908)|0;J[d>>2]=J[d>>2]|1<>>0<=1073741822){h=h<<6;l=(d&-32)+32|0;l=h>>>0>l>>>0?h:l;f=d;if(d>>>0>=l>>>0){break H}if((l|0)<0){break B}break I}l=2147483647;f=-1;if(d>>>0>=2147483647){break H}}l=(l-1>>>5|0)+1|0;f=ll(l<<2);h=J[k+32>>2];J[f+((d>>>0>=33?d-1>>>5|0:0)<<2)>>2]=0;J:{K:{if(!d){break K}j=d>>>5<<2;n=mk(f,h,j);o=d&31;if(!o){break K}f=j+n|0;p=f;q=J[f>>2];f=-1>>>32-o|0;J[p>>2]=q&(f^-1)|f&J[h+j>>2];J[k+32>>2]=n;J[k+36>>2]=d;J[k+40>>2]=l;break J}J[k+32>>2]=f;J[k+36>>2]=d;J[k+40>>2]=l;f=d;if(!h){break H}}fl(h);f=J[k+36>>2]}J[k+36>>2]=f+1;d=J[k+32>>2]+(f>>>3&536870908)|0;h=J[d>>2];ca=d,da=bm(f)&h,J[ca>>2]=da}i=i+1|0;if((m|0)!=(i|0)){continue}break A}break}La();C()}d=J[g+24>>2];f=J[d>>2];d=J[d+4>>2];i=J[s+4>>2];J[g+232>>2]=J[s>>2];J[g+236>>2]=i;J[g+224>>2]=f;J[g+228>>2]=d;Sd(g+200|0,_,g+232|0,g+224|0);d=c+G|0;J[d>>2]=J[g+200>>2];J[d+4>>2]=J[g+204>>2];d=J[g+36>>2];if(d){J[g+40>>2]=d;fl(d)}d=J[g+24>>2];if(d){J[g+28>>2]=d;fl(d)}d=(E|0)>2;E=y;if(d){continue}break}break c}La();C()}d=J[g+144>>2];if((e|0)>0){nk(d,0,e<<2)}e=J[d>>2];d=J[d+4>>2];f=J[b+4>>2];J[g+200>>2]=J[b>>2];J[g+204>>2]=f;J[g+232>>2]=e;J[g+236>>2]=d;Sd(g+8|0,a+8|0,g+200|0,g+232|0);J[c>>2]=J[g+8>>2];J[c+4>>2]=J[g+12>>2];if(r){fl(r)}a=J[g+128>>2];if(a){J[g+132>>2]=a;fl(a)}a=J[g+180>>2];if(a){J[g+184>>2]=a;fl(a)}a=J[g+168>>2];if(a){J[g+172>>2]=a;fl(a)}a=J[g+156>>2];if(a){J[g+160>>2]=a;fl(a)}a=J[g+144>>2];if(a){J[g+148>>2]=a;fl(a)}ia=g+240|0;return 1}function ke(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,D=0,E=0,F=0,G=0,I=0,L=0,M=0,N=0,O=0,Q=0,S=0,U=0,X=0,Y=0,Z=0,_=0,$=0,aa=0,ba=0,ca=0,da=0;g=ia-240|0;ia=g;Y=J[a+36>>2];M=J[a+32>>2];J[g+184>>2]=0;J[g+188>>2]=0;J[g+176>>2]=0;J[g+180>>2]=0;J[g+168>>2]=0;J[g+172>>2]=0;J[g+160>>2]=0;J[g+164>>2]=0;J[g+152>>2]=0;J[g+156>>2]=0;J[g+144>>2]=0;J[g+148>>2]=0;if(e){Oa(g+144|0,e);h=J[g+156>>2];d=J[g+160>>2]}else{d=0}d=d-h>>2;a:{if(d>>>0>=e>>>0){if(d>>>0<=e>>>0){break a}J[g+160>>2]=(e<<2)+h;break a}Oa(g+144|12,e-d|0)}f=J[g+168>>2];d=J[g+172>>2]-f>>2;b:{if(d>>>0>=e>>>0){if(d>>>0<=e>>>0){break b}J[g+172>>2]=f+(e<<2);break b}Oa(g+168|0,e-d|0)}c:{d:{f=J[g+180>>2];d=J[g+184>>2]-f>>2;e:{f:{if(d>>>0>=e>>>0){if(d>>>0>e>>>0){J[g+184>>2]=f+(e<<2)}J[g+136>>2]=0;J[g+128>>2]=0;J[g+132>>2]=0;if(e){break f}d=1;break e}Oa(g+180|0,e-d|0);J[g+136>>2]=0;J[g+128>>2]=0;J[g+132>>2]=0}if(e>>>0>=1073741824){break d}d=e<<2;f=ll(d);J[g+128>>2]=f;i=d+f|0;J[g+136>>2]=i;nk(f,0,d);J[g+132>>2]=i;d=0}x=a+136|0;i=J[a+136>>2];f=J[a+140>>2]-i>>2;g:{h:{if(f>>>0>>0){Oa(x,e-f|0);J[g+104>>2]=0;J[g+108>>2]=0;J[g+96>>2]=0;J[g+100>>2]=0;J[g+88>>2]=0;J[g+92>>2]=0;J[g+80>>2]=0;J[g+84>>2]=0;J[g+72>>2]=0;J[g+76>>2]=0;d=g- -64|0;J[d>>2]=0;J[d+4>>2]=0;J[g+56>>2]=0;J[g+60>>2]=0;J[g+48>>2]=0;J[g+52>>2]=0;break h}if(e>>>0>>0){J[a+140>>2]=i+(e<<2)}J[g+104>>2]=0;J[g+108>>2]=0;J[g+96>>2]=0;J[g+100>>2]=0;J[g+88>>2]=0;J[g+92>>2]=0;J[g+80>>2]=0;J[g+84>>2]=0;J[g+72>>2]=0;J[g+76>>2]=0;f=g- -64|0;J[f>>2]=0;J[f+4>>2]=0;J[g+56>>2]=0;J[g+60>>2]=0;J[g+48>>2]=0;J[g+52>>2]=0;v=0;if(d){break g}}d=e<<2;t=ll(d);v=nk(t,0,d)+d|0}d=J[a+40>>2];d=J[d+4>>2]-J[d>>2]|0;if((d|0)<5){break c}E=e&-2;F=e&1;Z=e&-4;N=e&3;G=e-1|0;O=e<<2;_=a+8|0;I=a+96|0;D=d>>>2|0;L=v-t|0;z=L>>2;Q=(L-4&-4)+4|0;$=g+36|0;aa=g+24|0;while(1){d=J[a+40>>2];f=J[d>>2];i:{j:{w=D-1|0;if(w>>>0>2]-f>>2>>>0){d=0;m=0;k=J[f+(w<<2)>>2];k:{if((k|0)==-1){break k}n=J[M+12>>2];i=k+2|0;m=(k>>>0)%3|0;y=n+((m?k-1|0:i)<<2)|0;f=0;A=(m|0)!=0|(i|0)!=-1;p=1;i=k;while(1){m=J[n+(i<<2)>>2];l:{if((m|0)==-1){break l}j=-1;q=J[Y>>2];l=J[M>>2];h=q+(J[l+(m<<2)>>2]<<2)|0;r=m+1|0;r=(r>>>0)%3|0?r:m-2|0;if((r|0)!=-1){j=J[l+(r<<2)>>2]}r=J[h>>2];m:{n:{if((m>>>0)%3|0){h=m-1|0;break n}h=m+2|0;o=-1;if((h|0)==-1){break m}}o=J[l+(h<<2)>>2]}if((r|0)>=(w|0)){break l}h=J[q+(j<<2)>>2];if((h|0)>=(w|0)){break l}j=J[q+(o<<2)>>2];if((j|0)>=(w|0)){break l}m=J[(g+144|0)+P(f,12)>>2];o:{if(!e){break o}j=P(e,j);q=P(e,h);r=P(e,r);h=0;l=0;if(G){while(1){J[m+(h<<2)>>2]=(J[(h+j<<2)+b>>2]+J[(h+q<<2)+b>>2]|0)-J[(h+r<<2)+b>>2];o=h|1;J[m+(o<<2)>>2]=(J[(j+o<<2)+b>>2]+J[(q+o<<2)+b>>2]|0)-J[(o+r<<2)+b>>2];h=h+2|0;l=l+2|0;if((E|0)!=(l|0)){continue}break}}if(!F){break o}J[m+(h<<2)>>2]=(J[(h+j<<2)+b>>2]+J[(h+q<<2)+b>>2]|0)-J[(h+r<<2)+b>>2]}m=4;f=f+1|0;if((f|0)==4){break k}}p:{if(p&1){h=i+1|0;i=(h>>>0)%3|0?h:i-2|0;m=-1;if((i|0)==-1){break p}i=J[n+(i<<2)>>2];m=-1;if((i|0)==-1){break p}m=i+1|0;m=(m>>>0)%3|0?m:i-2|0;break p}q:{if((i>>>0)%3|0){h=i-1|0;break q}h=i+2|0;m=-1;if((h|0)==-1){break p}}i=J[n+(h<<2)>>2];m=-1;if((i|0)==-1){break p}m=i-1|0;if((i>>>0)%3|0){break p}m=i+2|0}i=m;if((k|0)==(i|0)){m=f;break k}if(!((p^1)&1|(i|0)!=-1)){if(!A){m=f;break k}i=J[y>>2];if((i|0)==-1){m=f;break k}p=0;i=(i>>>0)%3|0?i-1|0:i+2|0}m=f;if((i|0)!=-1){continue}break}}H[g+16|0]=0;J[g+8>>2]=0;J[g+12>>2]=0;J[g+44>>2]=0;J[g+36>>2]=0;J[g+40>>2]=0;J[g+28>>2]=0;J[g+32>>2]=0;J[g+20>>2]=0;J[g+24>>2]=0;S=P(e,w)<<2;r=S+b|0;n=(P(D-2|0,e)<<2)+b|0;k=J[x>>2];h=0;if(e){while(1){i=d<<2;f=J[i+n>>2]-J[i+r>>2]|0;J[i+t>>2]=f;J[i+k>>2]=(f|0)<0?(f^-1)<<1|1:f<<1;i=f;f=f>>31;h=((i^f)-f|0)+h|0;d=d+1|0;if((e|0)!=(d|0)){continue}break}}d=g+200|0;gf(d,I,k,e);f=kf(d);i=ma;l=f;f=J[d+12>>2];d=J[d+16>>2];k=(((f-d|0)+1|0)/64|0)+d<<3;d=d<<3;j=d;f=k+d|0;d=(k>>31)+(d>>31)|0;d=f>>>0>>0?d+1|0:d;k=f;f=l+f|0;i=d+i|0;i=f>>>0>>0?i+1|0:i;k=f;d=i;A=(m|0)<=0;if(!A){j=(m<<3)-8|0;f=j+(g+48|0)|0;l=f;i=m+J[f>>2]|0;f=J[f+4>>2];f=i>>>0>>0?f+1|0:f;J[l>>2]=i;J[l+4>>2]=f;u=W(ff(i,J[j+(g+80|0)>>2])*(+(i>>>0)+ +(f|0)*4294967296));r:{if(R(u)<0x8000000000000000){i=R(u)>=1?~~(u>0?T(V(u*2.3283064365386963e-10),4294967295):W((u-+(~~u>>>0>>>0))*2.3283064365386963e-10))>>>0:0;f=~~u>>>0;break r}i=-2147483648;f=0}f=f+k|0;k=f}J[g+20>>2]=0;H[g+16|0]=0;J[g+8>>2]=k;J[g+12>>2]=h;Ta(aa,n,n+O|0);dd($,t,v);s:{t:{u:{if(A){break u}n=(g+124|0)+m|0;k=n-1|0;U=m<<3;d=U-8|0;X=d+(g+48|0)|0;ba=d+(g+80|0)|0;f=1;y=0;while(1){d=g+124|0;nk(d,1,m);y=y+1|0;nk(d,0,y);v:{w:while(1){if(e){nk(J[g+128>>2],0,O)}l=0;d=J[g+128>>2];p=0;while(1){if(!K[(g+124|0)+l|0]){x:{if(!e){break x}q=J[(g+144|0)+P(l,12)>>2];i=0;h=0;j=0;if(e>>>0>3){while(1){o=h<<2;s=o+d|0;J[s>>2]=J[s>>2]+J[q+o>>2];s=o|4;B=s+d|0;J[B>>2]=J[B>>2]+J[q+s>>2];s=o|8;B=s+d|0;J[B>>2]=J[B>>2]+J[q+s>>2];o=o|12;s=o+d|0;J[s>>2]=J[s>>2]+J[q+o>>2];h=h+4|0;j=j+4|0;if((Z|0)!=(j|0)){continue}break}}if(!N){break x}while(1){j=h<<2;o=j+d|0;J[o>>2]=J[o>>2]+J[j+q>>2];h=h+1|0;i=i+1|0;if((N|0)!=(i|0)){continue}break}}p=1<>2];h=0;break y}h=0;i=J[g+128>>2];d=0;if(G){while(1){j=h<<2;l=j+i|0;J[l>>2]=J[l>>2]/(f|0);j=i+(j|4)|0;J[j>>2]=J[j>>2]/(f|0);h=h+2|0;d=d+2|0;if((E|0)!=(d|0)){continue}break}}if(F){d=i+(h<<2)|0;J[d>>2]=J[d>>2]/(f|0)}i=J[x>>2];d=0;h=0;if(!e){break y}q=J[g+128>>2];while(1){l=d<<2;j=J[l+q>>2]-J[l+r>>2]|0;J[l+t>>2]=j;J[i+l>>2]=(j|0)<0?(j^-1)<<1|1:j<<1;l=h;h=j>>31;h=l+((h^j)-h|0)|0;d=d+1|0;if((e|0)!=(d|0)){continue}break}}d=h;h=g+200|0;gf(h,I,i,e);i=kf(h);l=i;i=J[h+16>>2];j=(((J[h+12>>2]-i|0)+1|0)/64|0)+i<<3;i=i<<3;h=j+i|0;i=l+h|0;h=i;o=(m|0)>0;if(o){i=J[X+4>>2];j=J[X>>2];u=W(ff(j,J[ba>>2]+f|0)*(+(j>>>0)+ +(i|0)*4294967296));z:{if(R(u)<0x8000000000000000){i=~~u>>>0;break z}i=0}h=i+h|0}i=J[g+8>>2];if(!((i|0)<=(h|0)&((h|0)>(i|0)|(d|0)>=J[g+12>>2]))){J[g+20>>2]=f;H[g+16|0]=p;J[g+8>>2]=h;J[g+12>>2]=d;l=J[g+132>>2];j=J[g+128>>2];p=l-j|0;h=p>>2;i=J[g+32>>2];d=J[g+24>>2];A:{if(h>>>0<=i-d>>2>>>0){p=J[g+28>>2]-d|0;i=p+j|0;s=p>>2;p=s>>>0>>0?i:l;q=p-j|0;if((j|0)!=(p|0)){mk(d,j,q)}if(h>>>0>s>>>0){h=J[g+28>>2];if((l|0)==(p|0)){break A}while(1){J[h>>2]=J[i>>2];h=h+4|0;i=i+4|0;if((l|0)!=(i|0)){continue}break}break A}h=d+q|0;break A}if(d){J[g+28>>2]=d;fl(d);J[g+32>>2]=0;J[g+24>>2]=0;J[g+28>>2]=0;i=0}if((p|0)<0){break t}d=i>>1;d=i>>>0>=2147483644?1073741823:d>>>0>h>>>0?d:h;if(d>>>0>=1073741824){break t}d=d<<2;h=ll(d);J[g+24>>2]=h;J[g+32>>2]=d+h;if((j|0)==(l|0)){break A}d=(p-4&-4)+4|0;h=lk(h,j,d)+d|0}J[g+28>>2]=h;i=J[g+44>>2];d=J[g+36>>2];B:{if(i-d>>2>>>0>=z>>>0){h=J[g+40>>2]-d|0;i=h+t|0;l=h>>2;j=l>>>0>>0?i:v;h=j-t|0;if((j|0)!=(t|0)){mk(d,t,h)}if(l>>>0>>0){h=J[g+40>>2];if((j|0)==(v|0)){break B}while(1){J[h>>2]=J[i>>2];h=h+4|0;i=i+4|0;if((v|0)!=(i|0)){continue}break}break B}h=d+h|0;break B}if(d){J[g+40>>2]=d;fl(d);J[g+44>>2]=0;J[g+36>>2]=0;J[g+40>>2]=0;i=0}if((L|0)<0){break s}d=i>>1;d=i>>>0>=2147483644?1073741823:d>>>0>z>>>0?d:z;if(d>>>0>=1073741824){break s}d=d<<2;h=ll(d);J[g+36>>2]=h;J[g+44>>2]=d+h;if((t|0)==(v|0)){break B}h=lk(h,t,Q)+Q|0}J[g+40>>2]=h}if((k|0)==(g+124|0)){break v}h=K[k|0];i=-1;while(1){l=h&255;d=i-1|0;j=d+n|0;h=K[j|0];if(l>>>0>h>>>0){d=n;while(1){d=d-1|0;l=K[d|0];if(l>>>0<=h>>>0){continue}break}H[j|0]=l;H[d|0]=h;if((i|0)==-1){continue w}h=i+n|0;i=k;while(1){d=K[h|0];H[h|0]=K[i|0];H[i|0]=d;h=h+1|0;i=i-1|0;if(h>>>0>>0){continue}break}continue w}i=d;if((j|0)!=(g+124|0)){continue}break}break}d=g+124|0;h=d;i=k;if(d>>>0>=i>>>0){break v}while(1){d=K[h|0];H[h|0]=K[i|0];H[i|0]=d;h=h+1|0;i=i-1|0;if(h>>>0>>0){continue}break}}f=f+1|0;if((m|0)!=(y|0)){continue}break}if(!o){break u}d=g+U|0;i=d;h=J[g+20>>2];f=h+J[d+72>>2]|0;d=J[d+76>>2]+(h>>31)|0;J[i+72>>2]=f;J[i+76>>2]=f>>>0>>0?d+1|0:d}if(!e){break i}d=J[x>>2];h=0;f=J[g+36>>2];j=0;if(!G){break j}while(1){k=h<<2;i=J[k+f>>2];J[d+k>>2]=(i|0)<0?(i^-1)<<1|1:i<<1;k=k|4;i=J[k+f>>2];J[d+k>>2]=(i|0)<0?(i^-1)<<1|1:i<<1;h=h+2|0;j=j+2|0;if((E|0)!=(j|0)){continue}break}break j}La();C()}La();C()}Zc();C()}if(!F){break i}i=h<<2;f=J[i+f>>2];J[d+i>>2]=(f|0)<0?(f^-1)<<1|1:f<<1}jf(g+200|0,I,J[x>>2],e);C:{if(A){break C}h=P(m,12)+a|0;i=0;while(1){D:{k=J[h+40>>2];n=k<<5;d=J[h+36>>2];E:{if(!(K[g+16|0]>>>i&1)){f=d;F:{if((d|0)!=(n|0)){break F}if((d+1|0)<0){break D}G:{if(d>>>0<=1073741822){k=k<<6;n=(d&-32)+32|0;k=k>>>0>n>>>0?k:n;f=d;if(d>>>0>=k>>>0){break F}if((k|0)>=0){break G}break D}k=2147483647;f=-1;if(d>>>0>=2147483647){break F}}n=(k-1>>>5|0)+1|0;f=ll(n<<2);k=J[h+32>>2];J[f+((d>>>0>=33?d-1>>>5|0:0)<<2)>>2]=0;H:{I:{if(!d){break I}j=d>>>5<<2;l=mk(f,k,j);p=d&31;if(!p){break I}f=j+l|0;o=f;q=J[f>>2];f=-1>>>32-p|0;J[o>>2]=q&(f^-1)|f&J[k+j>>2];J[h+32>>2]=l;J[h+36>>2]=d;J[h+40>>2]=n;break H}J[h+32>>2]=f;J[h+36>>2]=d;J[h+40>>2]=n;f=d;if(!k){break F}}fl(k);f=J[h+36>>2]}J[h+36>>2]=f+1;d=J[h+32>>2]+(f>>>3&536870908)|0;J[d>>2]=J[d>>2]|1<>>0<=1073741822){k=k<<6;n=(d&-32)+32|0;k=k>>>0>n>>>0?k:n;f=d;if(d>>>0>=k>>>0){break J}if((k|0)<0){break D}break K}k=2147483647;f=-1;if(d>>>0>=2147483647){break J}}n=(k-1>>>5|0)+1|0;f=ll(n<<2);k=J[h+32>>2];J[f+((d>>>0>=33?d-1>>>5|0:0)<<2)>>2]=0;L:{M:{if(!d){break M}j=d>>>5<<2;l=mk(f,k,j);p=d&31;if(!p){break M}f=j+l|0;o=f;q=J[f>>2];f=-1>>>32-p|0;J[o>>2]=q&(f^-1)|f&J[k+j>>2];J[h+32>>2]=l;J[h+36>>2]=d;J[h+40>>2]=n;break L}J[h+32>>2]=f;J[h+36>>2]=d;J[h+40>>2]=n;f=d;if(!k){break J}}fl(k);f=J[h+36>>2]}J[h+36>>2]=f+1;d=J[h+32>>2]+(f>>>3&536870908)|0;k=J[d>>2];ca=d,da=bm(f)&k,J[ca>>2]=da}i=i+1|0;if((m|0)!=(i|0)){continue}break C}break}La();C()}d=J[g+24>>2];f=J[d>>2];d=J[d+4>>2];i=J[r+4>>2];J[g+232>>2]=J[r>>2];J[g+236>>2]=i;J[g+224>>2]=f;J[g+228>>2]=d;Sd(g+200|0,_,g+232|0,g+224|0);d=c+S|0;J[d>>2]=J[g+200>>2];J[d+4>>2]=J[g+204>>2];d=J[g+36>>2];if(d){J[g+40>>2]=d;fl(d)}d=J[g+24>>2];if(d){J[g+28>>2]=d;fl(d)}d=(D|0)>2;D=w;if(d){continue}break}break c}La();C()}d=J[g+144>>2];if((e|0)>0){nk(d,0,e<<2)}e=J[d>>2];d=J[d+4>>2];f=J[b+4>>2];J[g+200>>2]=J[b>>2];J[g+204>>2]=f;J[g+232>>2]=e;J[g+236>>2]=d;Sd(g+8|0,a+8|0,g+200|0,g+232|0);J[c>>2]=J[g+8>>2];J[c+4>>2]=J[g+12>>2];if(t){fl(t)}a=J[g+128>>2];if(a){J[g+132>>2]=a;fl(a)}a=J[g+180>>2];if(a){J[g+184>>2]=a;fl(a)}a=J[g+168>>2];if(a){J[g+172>>2]=a;fl(a)}a=J[g+156>>2];if(a){J[g+160>>2]=a;fl(a)}a=J[g+144>>2];if(a){J[g+148>>2]=a;fl(a)}ia=g+240|0;return 1}function el(a){a=a|0;var b=0,c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0;l=ia-16|0;ia=l;a:{b:{c:{d:{e:{f:{g:{h:{i:{j:{k:{if(a>>>0<=244){e=J[4890];h=a>>>0<11?16:a+11&-8;c=h>>>3|0;b=e>>>c|0;if(b&3){c=c+((b^-1)&1)|0;a=c<<3;b=a+19600|0;d=J[a+19608>>2];a=J[d+8>>2];l:{if((b|0)==(a|0)){m=19560,n=bm(c)&e,J[m>>2]=n;break l}J[a+12>>2]=b;J[b+8>>2]=a}a=d+8|0;b=c<<3;J[d+4>>2]=b|3;b=b+d|0;J[b+4>>2]=J[b+4>>2]|1;break a}k=J[4892];if(k>>>0>=h>>>0){break k}if(b){a=2<>>12&16;c=a;b=b>>>a|0;a=b>>>5&8;c=c|a;b=b>>>a|0;a=b>>>2&4;c=c|a;b=b>>>a|0;a=b>>>1&2;c=c|a;b=b>>>a|0;a=b>>>1&1;d=(c|a)+(b>>>a|0)|0;a=d<<3;b=a+19600|0;g=J[a+19608>>2];a=J[g+8>>2];m:{if((b|0)==(a|0)){e=bm(d)&e;J[4890]=e;break m}J[a+12>>2]=b;J[b+8>>2]=a}J[g+4>>2]=h|3;c=g+h|0;a=d<<3;d=a-h|0;J[c+4>>2]=d|1;J[a+g>>2]=d;if(k){b=(k&-8)+19600|0;f=J[4895];a=1<<(k>>>3);n:{if(!(a&e)){J[4890]=a|e;a=b;break n}a=J[b+8>>2]}J[b+8>>2]=f;J[a+12>>2]=f;J[f+12>>2]=b;J[f+8>>2]=a}a=g+8|0;J[4895]=c;J[4892]=d;break a}j=J[4891];if(!j){break k}b=j-1&(j^-1);a=b>>>12&16;c=a;b=b>>>a|0;a=b>>>5&8;c=c|a;b=b>>>a|0;a=b>>>2&4;c=c|a;b=b>>>a|0;a=b>>>1&2;c=c|a;b=b>>>a|0;a=b>>>1&1;c=J[((c|a)+(b>>>a|0)<<2)+19864>>2];f=(J[c+4>>2]&-8)-h|0;b=c;while(1){o:{a=J[b+16>>2];if(!a){a=J[b+20>>2];if(!a){break o}}b=(J[a+4>>2]&-8)-h|0;d=b>>>0>>0;f=d?b:f;c=d?a:c;b=a;continue}break}i=J[c+24>>2];d=J[c+12>>2];if((d|0)!=(c|0)){a=J[c+8>>2];J[a+12>>2]=d;J[d+8>>2]=a;break b}b=c+20|0;a=J[b>>2];if(!a){a=J[c+16>>2];if(!a){break j}b=c+16|0}while(1){g=b;d=a;b=a+20|0;a=J[b>>2];if(a){continue}b=d+16|0;a=J[d+16>>2];if(a){continue}break}J[g>>2]=0;break b}h=-1;if(a>>>0>4294967231){break k}a=a+11|0;h=a&-8;j=J[4891];if(!j){break k}f=0-h|0;e=0;p:{if(h>>>0<256){break p}e=31;if(h>>>0>16777215){break p}a=a>>>8|0;g=a+1048320>>>16&8;a=a<>>16&4;a=a<>>16&2;a=(a<>>15|0)-(b|(c|g))|0;e=(a<<1|h>>>a+21&1)+28|0}b=J[(e<<2)+19864>>2];q:{r:{s:{if(!b){a=0;break s}a=0;c=h<<((e|0)!=31?25-(e>>>1|0)|0:0);while(1){t:{g=(J[b+4>>2]&-8)-h|0;if(g>>>0>=f>>>0){break t}d=b;f=g;if(f){break t}f=0;a=b;break r}g=J[b+20>>2];b=J[((c>>>29&4)+b|0)+16>>2];a=g?(g|0)==(b|0)?a:g:a;c=c<<1;if(b){continue}break}}if(!(a|d)){d=0;a=2<>>12&16;c=a;b=b>>>a|0;a=b>>>5&8;c=c|a;b=b>>>a|0;a=b>>>2&4;c=c|a;b=b>>>a|0;a=b>>>1&2;c=c|a;b=b>>>a|0;a=b>>>1&1;a=J[((c|a)+(b>>>a|0)<<2)+19864>>2]}if(!a){break q}}while(1){b=(J[a+4>>2]&-8)-h|0;c=b>>>0>>0;f=c?b:f;d=c?a:d;b=J[a+16>>2];if(b){a=b}else{a=J[a+20>>2]}if(a){continue}break}}if(!d|J[4892]-h>>>0<=f>>>0){break k}e=J[d+24>>2];c=J[d+12>>2];if((d|0)!=(c|0)){a=J[d+8>>2];J[a+12>>2]=c;J[c+8>>2]=a;break c}b=d+20|0;a=J[b>>2];if(!a){a=J[d+16>>2];if(!a){break i}b=d+16|0}while(1){g=b;c=a;b=a+20|0;a=J[b>>2];if(a){continue}b=c+16|0;a=J[c+16>>2];if(a){continue}break}J[g>>2]=0;break c}c=J[4892];if(c>>>0>=h>>>0){d=J[4895];b=c-h|0;u:{if(b>>>0>=16){J[4892]=b;a=d+h|0;J[4895]=a;J[a+4>>2]=b|1;J[c+d>>2]=b;J[d+4>>2]=h|3;break u}J[4895]=0;J[4892]=0;J[d+4>>2]=c|3;a=c+d|0;J[a+4>>2]=J[a+4>>2]|1}a=d+8|0;break a}i=J[4893];if(i>>>0>h>>>0){b=i-h|0;J[4893]=b;c=J[4896];a=c+h|0;J[4896]=a;J[a+4>>2]=b|1;J[c+4>>2]=h|3;a=c+8|0;break a}a=0;j=h+47|0;if(J[5008]){c=J[5010]}else{J[5011]=-1;J[5012]=-1;J[5009]=4096;J[5010]=4096;J[5008]=l+12&-16^1431655768;J[5013]=0;J[5001]=0;c=4096}g=j+c|0;f=0-c|0;b=g&f;if(b>>>0<=h>>>0){break a}d=J[5e3];if(d){c=J[4998];e=c+b|0;if(d>>>0>>0|c>>>0>=e>>>0){break a}}if(K[20004]&4){break f}v:{w:{d=J[4896];if(d){a=20008;while(1){c=J[a>>2];if(c>>>0<=d>>>0&d>>>0>2]>>>0){break w}a=J[a+8>>2];if(a){continue}break}}c=dl(0);if((c|0)==-1){break g}e=b;d=J[5009];a=d-1|0;if(a&c){e=(b-c|0)+(a+c&0-d)|0}if(e>>>0<=h>>>0|e>>>0>2147483646){break g}d=J[5e3];if(d){a=J[4998];f=a+e|0;if(d>>>0>>0|a>>>0>=f>>>0){break g}}a=dl(e);if((c|0)!=(a|0)){break v}break e}e=f&g-i;if(e>>>0>2147483646){break g}c=dl(e);if((c|0)==(J[a>>2]+J[a+4>>2]|0)){break h}a=c}if(!((a|0)==-1|h+48>>>0<=e>>>0)){c=J[5010];c=c+(j-e|0)&0-c;if(c>>>0>2147483646){c=a;break e}if((dl(c)|0)!=-1){e=c+e|0;c=a;break e}dl(0-e|0);break g}c=a;if((a|0)!=-1){break e}break g}d=0;break b}c=0;break c}if((c|0)!=-1){break e}}J[5001]=J[5001]|4}if(b>>>0>2147483646){break d}c=dl(b);a=dl(0);if((c|0)==-1|(a|0)==-1|a>>>0<=c>>>0){break d}e=a-c|0;if(e>>>0<=h+40>>>0){break d}}a=J[4998]+e|0;J[4998]=a;if(a>>>0>M[4999]){J[4999]=a}x:{y:{z:{g=J[4896];if(g){a=20008;while(1){d=J[a>>2];b=J[a+4>>2];if((d+b|0)==(c|0)){break z}a=J[a+8>>2];if(a){continue}break}break y}a=J[4894];if(!(a>>>0<=c>>>0?a:0)){J[4894]=c}a=0;J[5003]=e;J[5002]=c;J[4898]=-1;J[4899]=J[5008];J[5005]=0;while(1){d=a<<3;b=d+19600|0;J[d+19608>>2]=b;J[d+19612>>2]=b;a=a+1|0;if((a|0)!=32){continue}break}d=e-40|0;a=c+8&7?-8-c&7:0;b=d-a|0;J[4893]=b;a=a+c|0;J[4896]=a;J[a+4>>2]=b|1;J[(c+d|0)+4>>2]=40;J[4897]=J[5012];break x}if(K[a+12|0]&8|d>>>0>g>>>0|c>>>0<=g>>>0){break y}J[a+4>>2]=b+e;a=g+8&7?-8-g&7:0;c=a+g|0;J[4896]=c;b=J[4893]+e|0;a=b-a|0;J[4893]=a;J[c+4>>2]=a|1;J[(b+g|0)+4>>2]=40;J[4897]=J[5012];break x}if(M[4894]>c>>>0){J[4894]=c}b=c+e|0;a=20008;A:{B:{C:{D:{E:{F:{while(1){if((b|0)!=J[a>>2]){a=J[a+8>>2];if(a){continue}break F}break}if(!(K[a+12|0]&8)){break E}}a=20008;while(1){b=J[a>>2];if(b>>>0<=g>>>0){f=b+J[a+4>>2]|0;if(f>>>0>g>>>0){break D}}a=J[a+8>>2];continue}}J[a>>2]=c;J[a+4>>2]=J[a+4>>2]+e;j=(c+8&7?-8-c&7:0)+c|0;J[j+4>>2]=h|3;e=b+(b+8&7?-8-b&7:0)|0;i=h+j|0;a=e-i|0;if((e|0)==(g|0)){J[4896]=i;a=J[4893]+a|0;J[4893]=a;J[i+4>>2]=a|1;break B}if(J[4895]==(e|0)){J[4895]=i;a=J[4892]+a|0;J[4892]=a;J[i+4>>2]=a|1;J[a+i>>2]=a;break B}f=J[e+4>>2];if((f&3)==1){g=f&-8;G:{if(f>>>0<=255){d=J[e+8>>2];b=f>>>3|0;c=J[e+12>>2];if((c|0)==(d|0)){m=19560,n=J[4890]&bm(b),J[m>>2]=n;break G}J[d+12>>2]=c;J[c+8>>2]=d;break G}h=J[e+24>>2];c=J[e+12>>2];H:{if((e|0)!=(c|0)){b=J[e+8>>2];J[b+12>>2]=c;J[c+8>>2]=b;break H}I:{f=e+20|0;b=J[f>>2];if(b){break I}f=e+16|0;b=J[f>>2];if(b){break I}c=0;break H}while(1){d=f;c=b;f=b+20|0;b=J[f>>2];if(b){continue}f=c+16|0;b=J[c+16>>2];if(b){continue}break}J[d>>2]=0}if(!h){break G}d=J[e+28>>2];b=(d<<2)+19864|0;J:{if(J[b>>2]==(e|0)){J[b>>2]=c;if(c){break J}m=19564,n=J[4891]&bm(d),J[m>>2]=n;break G}J[h+(J[h+16>>2]==(e|0)?16:20)>>2]=c;if(!c){break G}}J[c+24>>2]=h;b=J[e+16>>2];if(b){J[c+16>>2]=b;J[b+24>>2]=c}b=J[e+20>>2];if(!b){break G}J[c+20>>2]=b;J[b+24>>2]=c}e=e+g|0;f=J[e+4>>2];a=a+g|0}J[e+4>>2]=f&-2;J[i+4>>2]=a|1;J[a+i>>2]=a;if(a>>>0<=255){b=(a&-8)+19600|0;c=J[4890];a=1<<(a>>>3);K:{if(!(c&a)){J[4890]=a|c;a=b;break K}a=J[b+8>>2]}J[b+8>>2]=i;J[a+12>>2]=i;J[i+12>>2]=b;J[i+8>>2]=a;break B}f=31;if(a>>>0<=16777215){b=a>>>8|0;f=b+1048320>>>16&8;b=b<>>16&4;b=b<>>16&2;b=(b<>>15|0)-(c|(d|f))|0;f=(b<<1|a>>>b+21&1)+28|0}J[i+28>>2]=f;J[i+16>>2]=0;J[i+20>>2]=0;b=(f<<2)+19864|0;d=J[4891];c=1<>2]=i;break L}f=a<<((f|0)!=31?25-(f>>>1|0)|0:0);c=J[b>>2];while(1){b=c;if((J[b+4>>2]&-8)==(a|0)){break C}c=f>>>29|0;f=f<<1;d=(c&4)+b|0;c=J[d+16>>2];if(c){continue}break}J[d+16>>2]=i}J[i+24>>2]=b;J[i+12>>2]=i;J[i+8>>2]=i;break B}d=e-40|0;a=c+8&7?-8-c&7:0;b=d-a|0;J[4893]=b;a=a+c|0;J[4896]=a;J[a+4>>2]=b|1;J[(c+d|0)+4>>2]=40;J[4897]=J[5012];a=(f+(f-39&7?39-f&7:0)|0)-47|0;d=a>>>0>>0?g:a;J[d+4>>2]=27;a=J[5005];J[d+16>>2]=J[5004];J[d+20>>2]=a;a=J[5003];J[d+8>>2]=J[5002];J[d+12>>2]=a;J[5004]=d+8;J[5003]=e;J[5002]=c;J[5005]=0;a=d+24|0;while(1){J[a+4>>2]=7;b=a+8|0;a=a+4|0;if(b>>>0>>0){continue}break}if((d|0)==(g|0)){break x}J[d+4>>2]=J[d+4>>2]&-2;f=d-g|0;J[g+4>>2]=f|1;J[d>>2]=f;if(f>>>0<=255){b=(f&-8)+19600|0;c=J[4890];a=1<<(f>>>3);M:{if(!(c&a)){J[4890]=a|c;a=b;break M}a=J[b+8>>2]}J[b+8>>2]=g;J[a+12>>2]=g;J[g+12>>2]=b;J[g+8>>2]=a;break x}a=31;if(f>>>0<=16777215){a=f>>>8|0;d=a+1048320>>>16&8;a=a<>>16&4;a=a<>>16&2;a=(a<>>15|0)-(b|(c|d))|0;a=(a<<1|f>>>a+21&1)+28|0}J[g+28>>2]=a;J[g+16>>2]=0;J[g+20>>2]=0;b=(a<<2)+19864|0;d=J[4891];c=1<>2]=g;break N}a=f<<((a|0)!=31?25-(a>>>1|0)|0:0);d=J[b>>2];while(1){b=d;if((f|0)==(J[b+4>>2]&-8)){break A}c=a>>>29|0;a=a<<1;c=(c&4)+b|0;d=J[c+16>>2];if(d){continue}break}J[c+16>>2]=g}J[g+24>>2]=b;J[g+12>>2]=g;J[g+8>>2]=g;break x}a=J[b+8>>2];J[a+12>>2]=i;J[b+8>>2]=i;J[i+24>>2]=0;J[i+12>>2]=b;J[i+8>>2]=a}a=j+8|0;break a}a=J[b+8>>2];J[a+12>>2]=g;J[b+8>>2]=g;J[g+24>>2]=0;J[g+12>>2]=b;J[g+8>>2]=a}a=J[4893];if(a>>>0<=h>>>0){break d}b=a-h|0;J[4893]=b;c=J[4896];a=c+h|0;J[4896]=a;J[a+4>>2]=b|1;J[c+4>>2]=h|3;a=c+8|0;break a}J[4842]=48;a=0;break a}O:{if(!e){break O}b=J[d+28>>2];a=(b<<2)+19864|0;P:{if(J[a>>2]==(d|0)){J[a>>2]=c;if(c){break P}j=bm(b)&j;J[4891]=j;break O}J[e+(J[e+16>>2]==(d|0)?16:20)>>2]=c;if(!c){break O}}J[c+24>>2]=e;a=J[d+16>>2];if(a){J[c+16>>2]=a;J[a+24>>2]=c}a=J[d+20>>2];if(!a){break O}J[c+20>>2]=a;J[a+24>>2]=c}Q:{if(f>>>0<=15){a=f+h|0;J[d+4>>2]=a|3;a=a+d|0;J[a+4>>2]=J[a+4>>2]|1;break Q}J[d+4>>2]=h|3;e=d+h|0;J[e+4>>2]=f|1;J[e+f>>2]=f;if(f>>>0<=255){b=(f&-8)+19600|0;c=J[4890];a=1<<(f>>>3);R:{if(!(c&a)){J[4890]=a|c;a=b;break R}a=J[b+8>>2]}J[b+8>>2]=e;J[a+12>>2]=e;J[e+12>>2]=b;J[e+8>>2]=a;break Q}a=31;if(f>>>0<=16777215){a=f>>>8|0;g=a+1048320>>>16&8;a=a<>>16&4;a=a<>>16&2;a=(a<>>15|0)-(b|(c|g))|0;a=(a<<1|f>>>a+21&1)+28|0}J[e+28>>2]=a;J[e+16>>2]=0;J[e+20>>2]=0;b=(a<<2)+19864|0;S:{c=1<>2]=e;break T}a=f<<((a|0)!=31?25-(a>>>1|0)|0:0);h=J[b>>2];while(1){b=h;if((J[b+4>>2]&-8)==(f|0)){break S}c=a>>>29|0;a=a<<1;c=(c&4)+b|0;h=J[c+16>>2];if(h){continue}break}J[c+16>>2]=e}J[e+24>>2]=b;J[e+12>>2]=e;J[e+8>>2]=e;break Q}a=J[b+8>>2];J[a+12>>2]=e;J[b+8>>2]=e;J[e+24>>2]=0;J[e+12>>2]=b;J[e+8>>2]=a}a=d+8|0;break a}U:{if(!i){break U}b=J[c+28>>2];a=(b<<2)+19864|0;V:{if(J[a>>2]==(c|0)){J[a>>2]=d;if(d){break V}m=19564,n=bm(b)&j,J[m>>2]=n;break U}J[i+(J[i+16>>2]==(c|0)?16:20)>>2]=d;if(!d){break U}}J[d+24>>2]=i;a=J[c+16>>2];if(a){J[d+16>>2]=a;J[a+24>>2]=d}a=J[c+20>>2];if(!a){break U}J[d+20>>2]=a;J[a+24>>2]=d}W:{if(f>>>0<=15){a=f+h|0;J[c+4>>2]=a|3;a=a+c|0;J[a+4>>2]=J[a+4>>2]|1;break W}J[c+4>>2]=h|3;d=c+h|0;J[d+4>>2]=f|1;J[d+f>>2]=f;if(k){b=(k&-8)+19600|0;g=J[4895];a=1<<(k>>>3);X:{if(!(a&e)){J[4890]=a|e;a=b;break X}a=J[b+8>>2]}J[b+8>>2]=g;J[a+12>>2]=g;J[g+12>>2]=b;J[g+8>>2]=a}J[4895]=d;J[4892]=f}a=c+8|0}ia=l+16|0;return a|0}function Tg(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0;j=ia-32|0;ia=j;c=J[b+8>>2];a:{b:{if(K[b+288|0]){c=Uj(c);e=J[b+12>>2];J[b+12>>2]=c;if(e){break b}break a}c=Tj(c);e=J[b+12>>2];J[b+12>>2]=c;if(!e){break a}}Ug(e)}c=J[b+12>>2];c:{if(!(J[c+40>>2]!=((J[c+4>>2]-J[c>>2]>>2>>>0)/3|0)?c:0)){b=ll(32);H[b+29|0]=0;c=K[1828]|K[1829]<<8|(K[1830]<<16|K[1831]<<24);d=K[1824]|K[1825]<<8|(K[1826]<<16|K[1827]<<24);H[b+21|0]=d;H[b+22|0]=d>>>8;H[b+23|0]=d>>>16;H[b+24|0]=d>>>24;H[b+25|0]=c;H[b+26|0]=c>>>8;H[b+27|0]=c>>>16;H[b+28|0]=c>>>24;c=K[1823]|K[1824]<<8|(K[1825]<<16|K[1826]<<24);d=K[1819]|K[1820]<<8|(K[1821]<<16|K[1822]<<24);H[b+16|0]=d;H[b+17|0]=d>>>8;H[b+18|0]=d>>>16;H[b+19|0]=d>>>24;H[b+20|0]=c;H[b+21|0]=c>>>8;H[b+22|0]=c>>>16;H[b+23|0]=c>>>24;c=K[1815]|K[1816]<<8|(K[1817]<<16|K[1818]<<24);d=K[1811]|K[1812]<<8|(K[1813]<<16|K[1814]<<24);H[b+8|0]=d;H[b+9|0]=d>>>8;H[b+10|0]=d>>>16;H[b+11|0]=d>>>24;H[b+12|0]=c;H[b+13|0]=c>>>8;H[b+14|0]=c>>>16;H[b+15|0]=c>>>24;c=K[1807]|K[1808]<<8|(K[1809]<<16|K[1810]<<24);d=K[1803]|K[1804]<<8|(K[1805]<<16|K[1806]<<24);H[b|0]=d;H[b+1|0]=d>>>8;H[b+2|0]=d>>>16;H[b+3|0]=d>>>24;H[b+4|0]=c;H[b+5|0]=c>>>8;H[b+6|0]=c>>>16;H[b+7|0]=c>>>24;J[a>>2]=-1;sl(a+4|0,b,29);fl(b);break c}J[b+264>>2]=b;Ab((J[c+28>>2]-J[c+24>>2]>>2)-J[c+44>>2]|0,J[J[b+4>>2]+44>>2]);c=J[b+12>>2];Ab(((J[c+4>>2]-J[c>>2]>>2>>>0)/3|0)-J[c+40>>2]|0,J[J[b+4>>2]+44>>2]);c=J[b+8>>2];d=J[c+100>>2];c=J[c+96>>2];H[j+16|0]=0;o=b+28|0;d=(d-c|0)/12|0;c=j+16|0;Kg(o,d,c);d=J[b+12>>2];g=J[d+28>>2];d=J[d+24>>2];J[j+16>>2]=-1;Jg(b+52|0,g-d>>2,c);c=J[b+40>>2];J[b+44>>2]=c;d:{e:{f:{g:{h:{i:{j:{d=J[b+12>>2];g=J[d+4>>2]-J[d>>2]>>2;g=g-((g>>>0)%3|0)|0;k:{if(g>>>0<=J[b+48>>2]-c>>2>>>0){break k}if(g>>>0>=1073741824){break j}i=g<<2;g=ll(i);J[b+44>>2]=g;J[b+40>>2]=g;J[b+48>>2]=g+i;if(!c){break k}fl(c);d=J[b+12>>2]}c=J[d+28>>2];d=J[d+24>>2];H[j+16|0]=0;Kg(b+84|0,c-d>>2,j+16|0);J[b+164>>2]=-1;J[b+168>>2]=0;J[b+100>>2]=J[b+96>>2];J[b+112>>2]=J[b+108>>2];if(J[b+132>>2]){d=J[b+128>>2];if(d){while(1){c=J[d>>2];fl(d);d=c;if(c){continue}break}}d=0;J[b+128>>2]=0;c=J[b+124>>2];l:{if(!c){break l}if(c>>>0>=4){i=c&-4;while(1){g=d<<2;J[g+J[b+120>>2]>>2]=0;J[J[b+120>>2]+(g|4)>>2]=0;J[J[b+120>>2]+(g|8)>>2]=0;J[J[b+120>>2]+(g|12)>>2]=0;d=d+4|0;k=k+4|0;if((i|0)!=(k|0)){continue}break}}c=c&3;if(!c){break l}e=0;while(1){J[J[b+120>>2]+(d<<2)>>2]=0;d=d+1|0;e=e+1|0;if((c|0)!=(e|0)){continue}break}}J[b+132>>2]=0}J[b+144>>2]=0;c=J[b+12>>2];d=J[c+28>>2];c=J[c+24>>2];J[j+16>>2]=-1;Jg(b+152|0,d-c>>2,j+16|0);c=J[b+72>>2];J[b+76>>2]=c;r=b+72|0;d=J[b+12>>2];d=J[d+4>>2]-J[d>>2]|0;g=(d>>2>>>0)/3|0;m:{if(g>>>0<=J[b+80>>2]-c>>2>>>0){break m}if((d|0)<0){break i}g=g<<2;d=ll(g);J[b+76>>2]=d;J[b+72>>2]=d;J[b+80>>2]=d+g;if(!c){break m}fl(c)}J[b- -64>>2]=0;if(!Vg(b)){b=ll(32);H[b+29|0]=0;c=K[1768]|K[1769]<<8|(K[1770]<<16|K[1771]<<24);d=K[1764]|K[1765]<<8|(K[1766]<<16|K[1767]<<24);H[b+21|0]=d;H[b+22|0]=d>>>8;H[b+23|0]=d>>>16;H[b+24|0]=d>>>24;H[b+25|0]=c;H[b+26|0]=c>>>8;H[b+27|0]=c>>>16;H[b+28|0]=c>>>24;c=K[1763]|K[1764]<<8|(K[1765]<<16|K[1766]<<24);d=K[1759]|K[1760]<<8|(K[1761]<<16|K[1762]<<24);H[b+16|0]=d;H[b+17|0]=d>>>8;H[b+18|0]=d>>>16;H[b+19|0]=d>>>24;H[b+20|0]=c;H[b+21|0]=c>>>8;H[b+22|0]=c>>>16;H[b+23|0]=c>>>24;c=K[1755]|K[1756]<<8|(K[1757]<<16|K[1758]<<24);d=K[1751]|K[1752]<<8|(K[1753]<<16|K[1754]<<24);H[b+8|0]=d;H[b+9|0]=d>>>8;H[b+10|0]=d>>>16;H[b+11|0]=d>>>24;H[b+12|0]=c;H[b+13|0]=c>>>8;H[b+14|0]=c>>>16;H[b+15|0]=c>>>24;c=K[1747]|K[1748]<<8|(K[1749]<<16|K[1750]<<24);d=K[1743]|K[1744]<<8|(K[1745]<<16|K[1746]<<24);H[b|0]=d;H[b+1|0]=d>>>8;H[b+2|0]=d>>>16;H[b+3|0]=d>>>24;H[b+4|0]=c;H[b+5|0]=c>>>8;H[b+6|0]=c>>>16;H[b+7|0]=c>>>24;J[a>>2]=-1;sl(a+4|0,b,29);fl(b);break c}c=b;n:{if(K[b+288|0]){break n}b=J[c+8>>2];g=J[b+12>>2]-J[b+8>>2]|0;i=g>>2;d=i-1|0;b=J[c+176>>2];f=J[c+172>>2];e=(b-f|0)/136|0;o:{if(d>>>0>e>>>0){bh(c+172|0,d-e|0);break o}if(d>>>0>=e>>>0){break o}e=f+P(d,136)|0;if((e|0)!=(b|0)){while(1){d=b-136|0;f=J[d+116>>2];if(f){J[b-16>>2]=f;fl(f)}f=J[b-32>>2];if(f){J[b-28>>2]=f;fl(f)}ch(b-132|0);b=d;if((e|0)!=(b|0)){continue}break}}J[c+176>>2]=e}if((g|0)==4|(g|0)<=0){break n}e=(i|0)<=1?1:i;b=0;p:{while(1){f=J[J[J[c+8>>2]+8>>2]+(b<<2)>>2];if(J[f+56>>2]){k=P(h,136);d=k+J[c+172>>2]|0;J[d>>2]=b;g=J[d+104>>2];J[d+108>>2]=g;i=J[c+12>>2];i=J[i+4>>2]-J[i>>2]|0;p=i>>2;q:{if(p>>>0<=J[d+112>>2]-g>>2>>>0){break q}if((i|0)<0){break p}i=ll(i);J[d+108>>2]=i;J[d+104>>2]=i;J[d+112>>2]=i+(p<<2);if(!g){break q}fl(g)}d=k+J[c+172>>2]|0;J[d+128>>2]=0;Sj(d+4|0,J[c+8>>2],J[c+12>>2],f);h=h+1|0}b=b+1|0;if((e|0)!=(b|0)){continue}break}break n}La();C()}b=(J[c+176>>2]-J[c+172>>2]|0)/136|0;H[j+31|0]=b;d=J[J[c+4>>2]+44>>2];g=J[d+20>>2];if(!J[d+16>>2]&(g|0)<=0|(g|0)<0){Ea(d,J[d+4>>2],j+31|0,j+32|0);b=K[j+31|0]}J[c+284>>2]=b&255;b=J[c+12>>2];d=J[b>>2];b=J[b+4>>2];i=c+200|0;Wg(i);J[j+24>>2]=0;J[j+16>>2]=0;J[j+20>>2]=0;g=0;b=b-d|0;if((b|0)>0){b=b>>>2|0;s=b>>>0<=1?1:b;d=0;while(1){b=(d>>>0)/3|0;p=b>>>5<<2;q=1<>2]+p>>2]){break r}if(Lj(J[c+12>>2],b)){break r}J[j+8>>2]=0;b=Xg(c,b,j+8|0);Fe(i,b);e=J[j+8>>2];if(b){f=-1;h=-1;b=-1;s:{if((e|0)==-1){break s}m=J[J[c+12>>2]>>2];b=m+(e<<2)|0;f=e+1|0;f=(f>>>0)%3|0?f:e-2|0;if((f|0)!=-1){h=J[m+(f<<2)>>2]}f=J[b>>2];t:{if((e>>>0)%3|0){k=e-1|0;break t}k=e+2|0;b=-1;if((k|0)==-1){break s}}b=J[m+(k<<2)>>2]}k=J[c+84>>2];m=k+(f>>>3&536870908)|0;J[m>>2]=J[m>>2]|1<>>3&536870908)|0;J[f>>2]=J[f>>2]|1<>>3&536870908)|0;J[h>>2]=J[h>>2]|1<>2];f=J[c+104>>2];u:{if(b>>>0>>0){J[b>>2]=1;J[c+100>>2]=b+4;break u}h=J[c+96>>2];k=b-h|0;m=k>>2;b=m+1|0;if(b>>>0>=1073741824){break h}t=m<<2;f=f-h|0;m=f>>1;f=f>>>0>=2147483644?1073741823:b>>>0>>0?m:b;if(f){if(f>>>0>=1073741824){break g}b=ll(f<<2)}else{b=0}m=t+b|0;J[m>>2]=1;if((k|0)>0){lk(b,h,k)}J[c+104>>2]=b+(f<<2);J[c+100>>2]=m+4;J[c+96>>2]=b;if(!h){break u}fl(h)}b=J[o>>2]+p|0;J[b>>2]=J[b>>2]|q;f=-1;if((e|0)!=-1){b=e+1|0;f=(b>>>0)%3|0?b:e-2|0}v:{if(l>>>0>>0){J[l>>2]=f;l=l+4|0;J[j+20>>2]=l;break v}k=l-g|0;l=k>>2;b=l+1|0;if(b>>>0>=1073741824){break f}h=n-g|0;n=h>>1;h=h>>>0>=2147483644?1073741823:b>>>0>>0?n:b;if(h){if(h>>>0>=1073741824){break g}b=ll(h<<2)}else{b=0}l=b+(l<<2)|0;J[l>>2]=f;n=b+(h<<2)|0;l=l+4|0;if((k|0)>0){lk(b,g,k)}J[j+24>>2]=n;J[j+20>>2]=l;J[j+16>>2]=b;if(g){fl(g)}g=b}if((e|0)==-1){break r}b=e+1|0;b=(b>>>0)%3|0?b:e-2|0;if((b|0)==-1){break r}b=J[J[J[c+12>>2]+12>>2]+(b<<2)>>2];if((b|0)==-1){break r}e=(b>>>0)/3|0;if(J[J[o>>2]+(e>>>3&268435452)>>2]>>>e&1){break r}if(Yg(c,b)){break r}break e}if((e|0)!=-1){b=e+1|0;b=(b>>>0)%3|0?b:e-2|0}else{b=-1}Zg(c,b,1);if(!Yg(c,J[j+8>>2])){break e}}d=d+1|0;if((s|0)!=(d|0)){continue}break}}d=J[c+72>>2];b=J[c+76>>2];w:{if((d|0)==(b|0)){break w}e=b-4|0;if(e>>>0<=d>>>0){break w}while(1){h=J[d>>2];J[d>>2]=J[e>>2];J[e>>2]=h;d=d+4|0;e=e-4|0;if(d>>>0>>0){continue}break}}_g(r,b,g,l);x:{if(J[c+172>>2]==J[c+176>>2]){break x}b=J[c+8>>2];d=J[b+100>>2];b=J[b+96>>2];H[j+8|0]=0;Kg(o,(d-b|0)/12|0,j+8|0);d=J[c+72>>2];b=J[c+76>>2];if((d|0)==(b|0)){break x}while(1){$g(c,J[d>>2]);d=d+4|0;if((b|0)!=(d|0)){continue}break}}d=i;o=d+32|0;b=J[d+64>>2];b=J[(na[J[J[b>>2]+40>>2]](b)|0)+56>>2];ki(o,P((J[b+100>>2]-J[b+96>>2]|0)/12|0,3),0,1);b=J[d+72>>2]-J[d+68>>2]|0;y:{if((b|0)<=0){break y}i=J[d+52>>2];if(!J[d+48>>2]&(i|0)<=0|(i|0)<0){break y}b=b>>>2|0;while(1){i=b;b=b-1|0;e=J[d+52>>2];z:{if(!J[d+48>>2]&(e|0)<=0|(e|0)<0){break z}l=J[J[d+68>>2]+(b<<2)>>2];if(!(171>>>l&1)){break z}k=J[(l<<2)+11152>>2];f=J[d+44>>2];e=J[f+4>>2];h=0;while(1){n=e>>>3|0;p=n+J[f>>2]|0;m=K[p|0];e=e&7;u=p,v=bm(e)&m,H[u|0]=v;n=n+J[f>>2]|0;H[n|0]=K[n|0]|(l>>>h&1)<>2]+1|0;J[f+4>>2]=e;h=h+1|0;if((k|0)!=(h|0)){continue}break}}if((i|0)>1){continue}break}}li(o);b=c+232|0;Ge(d,b);if(!(!J[c+280>>2]|J[c+284>>2]<=0)){d=0;while(1){Ge(J[c+280>>2]+(d<<5)|0,b);d=d+1|0;if((d|0)>2]){continue}break}}Ab(J[c+272>>2]-J[c+268>>2]>>2,J[J[c+4>>2]+44>>2]);Ab(J[c+168>>2],J[J[c+4>>2]+44>>2]);if(!ah(c)){b=ll(32);H[b+28|0]=0;c=K[1909]|K[1910]<<8|(K[1911]<<16|K[1912]<<24);H[b+24|0]=c;H[b+25|0]=c>>>8;H[b+26|0]=c>>>16;H[b+27|0]=c>>>24;c=K[1905]|K[1906]<<8|(K[1907]<<16|K[1908]<<24);d=K[1901]|K[1902]<<8|(K[1903]<<16|K[1904]<<24);H[b+16|0]=d;H[b+17|0]=d>>>8;H[b+18|0]=d>>>16;H[b+19|0]=d>>>24;H[b+20|0]=c;H[b+21|0]=c>>>8;H[b+22|0]=c>>>16;H[b+23|0]=c>>>24;c=K[1897]|K[1898]<<8|(K[1899]<<16|K[1900]<<24);d=K[1893]|K[1894]<<8|(K[1895]<<16|K[1896]<<24);H[b+8|0]=d;H[b+9|0]=d>>>8;H[b+10|0]=d>>>16;H[b+11|0]=d>>>24;H[b+12|0]=c;H[b+13|0]=c>>>8;H[b+14|0]=c>>>16;H[b+15|0]=c>>>24;c=K[1889]|K[1890]<<8|(K[1891]<<16|K[1892]<<24);d=K[1885]|K[1886]<<8|(K[1887]<<16|K[1888]<<24);H[b|0]=d;H[b+1|0]=d>>>8;H[b+2|0]=d>>>16;H[b+3|0]=d>>>24;H[b+4|0]=c;H[b+5|0]=c>>>8;H[b+6|0]=c>>>16;H[b+7|0]=c>>>24;J[a>>2]=-1;sl(a+4|0,b,28);fl(b);break d}b=J[J[c+4>>2]+44>>2];d=J[b+20>>2];if(!J[b+16>>2]&(d|0)<=0|(d|0)<0){Ea(b,J[b+4>>2],J[c+232>>2],J[c+236>>2])}J[a>>2]=0;J[a+4>>2]=0;J[a+8>>2]=0;J[a+12>>2]=0;break d}La();C()}La();C()}La();C()}$a();C()}La();C()}b=ll(48);H[b+32|0]=0;c=K[1703]|K[1704]<<8|(K[1705]<<16|K[1706]<<24);d=K[1699]|K[1700]<<8|(K[1701]<<16|K[1702]<<24);H[b+24|0]=d;H[b+25|0]=d>>>8;H[b+26|0]=d>>>16;H[b+27|0]=d>>>24;H[b+28|0]=c;H[b+29|0]=c>>>8;H[b+30|0]=c>>>16;H[b+31|0]=c>>>24;c=K[1695]|K[1696]<<8|(K[1697]<<16|K[1698]<<24);d=K[1691]|K[1692]<<8|(K[1693]<<16|K[1694]<<24);H[b+16|0]=d;H[b+17|0]=d>>>8;H[b+18|0]=d>>>16;H[b+19|0]=d>>>24;H[b+20|0]=c;H[b+21|0]=c>>>8;H[b+22|0]=c>>>16;H[b+23|0]=c>>>24;c=K[1687]|K[1688]<<8|(K[1689]<<16|K[1690]<<24);d=K[1683]|K[1684]<<8|(K[1685]<<16|K[1686]<<24);H[b+8|0]=d;H[b+9|0]=d>>>8;H[b+10|0]=d>>>16;H[b+11|0]=d>>>24;H[b+12|0]=c;H[b+13|0]=c>>>8;H[b+14|0]=c>>>16;H[b+15|0]=c>>>24;c=K[1679]|K[1680]<<8|(K[1681]<<16|K[1682]<<24);d=K[1675]|K[1676]<<8|(K[1677]<<16|K[1678]<<24);H[b|0]=d;H[b+1|0]=d>>>8;H[b+2|0]=d>>>16;H[b+3|0]=d>>>24;H[b+4|0]=c;H[b+5|0]=c>>>8;H[b+6|0]=c>>>16;H[b+7|0]=c>>>24;J[a>>2]=-1;sl(a+4|0,b,32);fl(b)}if(!g){break c}fl(g)}ia=j+32|0}function Kj(a){var b=0,c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0;v=ia-16|0;ia=v;b=ll(88);J[b>>2]=0;J[b+4>>2]=0;J[b+56>>2]=0;J[b+48>>2]=0;J[b+52>>2]=0;J[b+40>>2]=0;J[b+44>>2]=0;J[b+32>>2]=0;J[b+36>>2]=0;J[b+24>>2]=0;J[b+28>>2]=0;J[b+16>>2]=0;J[b+20>>2]=0;J[b+8>>2]=0;J[b+12>>2]=0;c=b- -64|0;J[c>>2]=0;J[c+4>>2]=0;J[b+72>>2]=0;J[b+76>>2]=0;J[b+80>>2]=0;J[b+84>>2]=0;J[b+60>>2]=b;c=a;u=ia-16|0;ia=u;J[b+80>>2]=0;J[b+84>>2]=0;d=J[b+76>>2];a=b;J[b+76>>2]=0;if(d){fl(d)}J[a+68>>2]=0;J[a+72>>2]=0;d=a- -64|0;b=J[d>>2];J[d>>2]=0;if(b){fl(b)}d=J[c+4>>2];g=J[c>>2];h=(d-g|0)/12|0;b=P(h,3);e=J[a>>2];f=J[a+4>>2]-e>>2;a:{if(b>>>0>f>>>0){Oa(a,b-f|0);d=J[c+4>>2];g=J[c>>2];h=(d-g|0)/12|0;break a}if(b>>>0>=f>>>0){break a}J[a+4>>2]=e+(b<<2)}b:{if((d|0)==(g|0)){break b}d=h>>>0<=1?1:h;e=d&1;c=J[a>>2];b=0;if(h>>>0>=2){i=d&-2;h=0;while(1){d=P(b,12);m=d+c|0;f=d+g|0;J[m>>2]=J[f>>2];J[c+(d|4)>>2]=J[f+4>>2];J[m+8>>2]=J[f+8>>2];f=P(b|1,12);d=f+c|0;f=f+g|0;J[d>>2]=J[f>>2];J[d+4>>2]=J[f+4>>2];J[d+8>>2]=J[f+8>>2];b=b+2|0;h=h+2|0;if((i|0)!=(h|0)){continue}break}}if(!e){break b}h=c;c=P(b,12);b=h+c|0;c=c+g|0;J[b>>2]=J[c>>2];J[b+4>>2]=J[c+4>>2];J[b+8>>2]=J[c+8>>2]}J[u+12>>2]=-1;b=0;d=0;f=0;i=ia-32|0;ia=i;c:{r=u+12|0;d:{if(!r){break d}h=J[a+4>>2];m=J[a>>2];c=h-m|0;j=c>>2;g=J[a+12>>2];e=J[a+16>>2]-g>>2;e:{if(j>>>0>e>>>0){ub(a+12|0,j-e|0,14880);h=J[a+4>>2];m=J[a>>2];c=h-m|0;j=c>>2;break e}if(e>>>0<=j>>>0){break e}J[a+16>>2]=g+(j<<2)}J[i+24>>2]=0;J[i+16>>2]=0;J[i+20>>2]=0;e=(h|0)==(m|0);if(!e){if((c|0)<0){break c}d=ll(c);J[i+20>>2]=d;J[i+16>>2]=d;J[i+24>>2]=(j<<2)+d}f:{g:{h:{i:{j:{if(c){while(1){g=J[(b<<2)+m>>2];c=J[i+20>>2]-d>>2;k:{if(g>>>0>>0){break k}J[i>>2]=0;e=g+1|0;if(e>>>0>c>>>0){ub(i+16|0,e-c|0,i);m=J[a>>2];h=J[a+4>>2];d=J[i+16>>2];break k}if(c>>>0<=e>>>0){break k}J[i+20>>2]=(e<<2)+d}c=(g<<2)+d|0;J[c>>2]=J[c>>2]+1;b=b+1|0;c=h-m|0;j=c>>2;if(b>>>0>>0){continue}break}break j}c=0;if(!e){break i}break h}if((h|0)==(m|0)){c=0;break h}if(c>>>0>=2147483645){break g}}c=ll(c<<1);nk(c,255,j<<3)}J[i+8>>2]=0;J[i>>2]=0;J[i+4>>2]=0;e=J[i+20>>2];b=e-d|0;p=b>>2;l:{m:{if((d|0)==(e|0)){break m}if((b|0)<0){break l}l=ll(b);J[i>>2]=l;J[i+8>>2]=(p<<2)+l;e=nk(l,0,b);J[i+4>>2]=e+b;h=p>>>0<=1?1:p;g=h&3;b=0;if(h-1>>>0>=3){o=h&-4;while(1){h=f<<2;J[h+e>>2]=b;s=h|4;b=J[d+h>>2]+b|0;J[s+e>>2]=b;q=h|8;b=b+J[d+s>>2]|0;J[q+e>>2]=b;h=h|12;b=b+J[d+q>>2]|0;J[h+e>>2]=b;b=b+J[d+h>>2]|0;f=f+4|0;n=n+4|0;if((o|0)!=(n|0)){continue}break}}if(!g){break m}while(1){h=f<<2;J[h+e>>2]=b;f=f+1|0;b=J[d+h>>2]+b|0;k=k+1|0;if((g|0)!=(k|0)){continue}break}}if(!j){break f}s=J[a+12>>2];e=0;while(1){w=e<<2;b=w+m|0;k=-1;g=e+1|0;f=(g>>>0)%3|0?g:e-2|0;if((f|0)!=-1){k=J[(f<<2)+m>>2]}h=J[b>>2];n:{o:{if(!((e>>>0)%3|0)){n=-1;b=e+2|0;if((b|0)!=-1){n=J[(b<<2)+m>>2]}if(!((h|0)==(k|0)|(h|0)==(n|0))&(k|0)!=(n|0)){break o}J[a+40>>2]=J[a+40>>2]+1;e=e+3|0;break n}n=J[b-4>>2]}b=n<<2;q=J[b+d>>2];p:{q:{if((q|0)<=0){break q}b=J[b+l>>2];f=0;while(1){o=(b<<3)+c|0;t=J[o>>2];if((t|0)==-1){break q}r:{if((k|0)!=(t|0)){break r}o=J[o+4>>2];if((o|0)!=-1){t=J[(o<<2)+m>>2]}else{t=-1}if((t|0)==(h|0)){break r}while(1){s:{h=b;f=f+1|0;if((q|0)<=(f|0)){break s}b=h+1|0;x=(b<<3)+c|0;t=J[x>>2];y=(h<<3)+c|0;J[y+4>>2]=J[x+4>>2];J[y>>2]=t;if((t|0)!=-1){continue}}break}J[(h<<3)+c>>2]=-1;if((o|0)==-1){break q}J[s+w>>2]=o;J[s+(o<<2)>>2]=e;break p}b=b+1|0;f=f+1|0;if((q|0)!=(f|0)){continue}break}}b=k<<2;k=J[b+d>>2];if((k|0)<=0){break p}b=J[b+l>>2];f=0;while(1){h=(b<<3)+c|0;if(J[h>>2]==-1){J[h>>2]=n;J[h+4>>2]=e;break p}b=b+1|0;f=f+1|0;if((k|0)!=(f|0)){continue}break}}e=g}if(j>>>0>e>>>0){continue}break}break f}break c}Ma(1313);C()}J[r>>2]=p;if(l){fl(l)}if(c){fl(c)}b=J[i+16>>2];if(!b){break d}J[i+20>>2]=b;fl(b)}ia=i+32|0;s=(r|0)!=0;if(s){k=ia-32|0;ia=k;l=J[a>>2];b=J[a+4>>2];J[k+24>>2]=0;J[k+16>>2]=0;J[k+20>>2]=0;t:{if((b|0)==(l|0)){break t}d=b-l|0;if((d|0)<0){break c}c=d>>2;e=c-1>>>5|0;f=ll((e<<2)+4|0);J[k+16>>2]=f;J[f+((d>>>0>=132?e:0)<<2)>>2]=0;d=c>>>5<<2;f=nk(f,0,d);if((c|0)==(c&-32)){break t}d=d+f|0;J[d>>2]=J[d>>2]&(-1>>>32-(c&31)^-1)}J[k+8>>2]=0;J[k>>2]=0;while(1){u:{o=0;m=0;if((b|0)==(l|0)){break u}while(1){c=J[k+16>>2];v:{if(J[c+(m>>>3&536870908)>>2]>>>m&1){break v}d=J[k>>2];J[k+4>>2]=d;f=J[a+12>>2];b=m;while(1){w:{e=b+1|0;i=b;b=(e>>>0)%3|0?e:b-2|0;if((b|0)==-1){break w}b=J[f+(b<<2)>>2];if((b|0)==-1){break w}e=b+1|0;b=(e>>>0)%3|0?e:b-2|0;if((m|0)==(b|0)|(b|0)==-1){break w}if(!(J[c+(b>>>3&536870908)>>2]>>>b&1)){continue}}break}f=i;x:{y:{z:{while(1){b=J[k+16>>2]+(f>>>3&536870908)|0;J[b>>2]=J[b>>2]|1<>>0)%3|0?b:f-2|0;l=J[a>>2];q=(f>>>0)%3|0;h=(q?-1:2)+f|0;j=J[k>>2];A:{if((j|0)==(d|0)){break A}r=J[(g<<2)+l>>2];n=J[a+12>>2];b=j;if((h|0)!=-1){c=n+(h<<2)|0;while(1){B:{if((r|0)!=J[b>>2]){break B}e=J[b+4>>2];p=J[c>>2];if((e|0)==(p|0)){break B}d=-1;c=h;b=-1;if((e|0)==-1){break x}break y}b=b+8|0;if((d|0)!=(b|0)){continue}break}break A}while(1){if((r|0)==J[b>>2]){p=-1;c=-1;e=J[b+4>>2];if((e|0)!=-1){break y}}b=b+8|0;if((d|0)!=(b|0)){continue}break}}h=J[(h<<2)+l>>2];C:{if(J[k+8>>2]!=(d|0)){J[d>>2]=h;J[d+4>>2]=g;d=d+8|0;J[k+4>>2]=d;break C}c=d-j|0;d=c>>3;b=d+1|0;if(b>>>0>=536870912){break c}e=c>>2;e=c>>>0>=2147483640?536870911:b>>>0>>0?e:b;if(e){if(e>>>0>=536870912){break z}b=ll(e<<3)}else{b=0}d=b+(d<<3)|0;J[d>>2]=h;J[d+4>>2]=g;d=d+8|0;if((c|0)>0){lk(b,j,c)}J[k+8>>2]=b+(e<<3);J[k+4>>2]=d;J[k>>2]=b;if(!j){break C}fl(j)}D:{E:{if(q){b=f-1|0;break E}b=f+2|0;if((b|0)==-1){break D}}b=J[J[a+12>>2]+(b<<2)>>2];if((b|0)==-1){break D}f=b+((b>>>0)%3|0?-1:2)|0;if((i|0)==(f|0)){break D}if((f|0)!=-1){continue}}break}l=J[a>>2];break v}$a();C()}h=c;d=e;b=J[n+(d<<2)>>2]}if((p|0)!=-1){J[n+(p<<2)>>2]=-1}if((b|0)!=-1){J[J[a+12>>2]+(b<<2)>>2]=-1}b=J[a+12>>2];J[b+(h<<2)>>2]=-1;J[b+(d<<2)>>2]=-1;o=1}m=m+1|0;b=J[a+4>>2];if(m>>>0>2>>>0){continue}break}if(o){continue}}break}b=J[k>>2];if(b){fl(b)}b=J[k+16>>2];if(b){fl(b)}ia=k+32|0;c=0;e=0;k=0;i=ia-32|0;ia=i;b=J[u+12>>2];J[a+36>>2]=b;m=a+24|0;f=J[a+24>>2];d=J[a+28>>2]-f>>2;F:{G:{if(d>>>0>>0){ub(m,b-d|0,14880);J[i+24>>2]=0;J[i+16>>2]=0;J[i+20>>2]=0;break G}if(b>>>0>>0){J[a+28>>2]=f+(b<<2)}J[i+24>>2]=0;J[i+16>>2]=0;J[i+20>>2]=0;if(!b){break F}}if((b|0)<0){break c}d=b-1>>>5|0;f=d+1|0;c=ll(f<<2);J[i+24>>2]=f;J[i+16>>2]=c;J[i+20>>2]=b;J[((b>>>0>=33?d:0)<<2)+c>>2]=0;d=b>>>5<<2;f=nk(c,0,d);if((b&-32)==(b|0)){break F}d=d+f|0;J[d>>2]=J[d>>2]&(-1>>>32-(b&31)^-1)}j=J[a>>2];d=J[a+4>>2];J[i+8>>2]=0;J[i>>2]=0;J[i+4>>2]=0;h=d-j|0;H:{if((d|0)==(j|0)){break H}if((h|0)<0){break c}f=h>>2;g=f-1>>>5|0;l=g+1|0;e=ll(l<<2);J[i+8>>2]=l;J[i>>2]=e;J[i+4>>2]=f;J[((h>>>0>=132?g:0)<<2)+e>>2]=0;g=f>>>5<<2;l=nk(e,0,g);if((f|0)==(f&-32)){break H}g=g+l|0;J[g>>2]=J[g>>2]&(-1>>>32-(f&31)^-1)}if(h>>>0>=12){I:{J:{while(1){n=P(k,3);h=(n<<2)+j|0;f=J[h>>2];g=-1;l=n+1|0;if((l|0)!=-1){g=J[(l<<2)+j>>2]}K:{if((f|0)==(g|0)){break K}l=f;f=J[h+8>>2];if((l|0)==(f|0)){break K}l=0;if((f|0)==(g|0)){break K}while(1){d=l+n|0;if(!(J[(d>>>3&536870908)+e>>2]>>>d&1)){f=J[(d<<2)+j>>2];g=1<>>5|0;p=g&J[(j<<2)+c>>2];if(p){c=J[a+28>>2];L:{if((c|0)!=J[a+32>>2]){J[c>>2]=-1;J[a+28>>2]=c+4;break L}h=J[m>>2];e=c-h|0;j=e>>2;c=j+1|0;if(c>>>0>=1073741824){break c}g=e>>1;g=e>>>0>=2147483644?1073741823:c>>>0>>0?g:c;if(g){if(g>>>0>=1073741824){break J}c=ll(g<<2)}else{c=0}j=c+(j<<2)|0;J[j>>2]=-1;if((e|0)>0){lk(c,h,e)}J[a+32>>2]=c+(g<<2);J[a+28>>2]=j+4;J[a+24>>2]=c;if(!h){break L}fl(h)}c=J[a+52>>2];M:{if((c|0)!=J[a+56>>2]){J[c>>2]=f;J[a+52>>2]=c+4;break M}h=J[a+48>>2];e=c-h|0;j=e>>2;c=j+1|0;if(c>>>0>=1073741824){break c}g=e>>1;g=e>>>0>=2147483644?1073741823:c>>>0>>0?g:c;if(g){if(g>>>0>=1073741824){break J}c=ll(g<<2)}else{c=0}j=c+(j<<2)|0;J[j>>2]=f;if((e|0)>0){lk(c,h,e)}J[a+56>>2]=c+(g<<2);J[a+52>>2]=j+4;J[a+48>>2]=c;if(!h){break M}fl(h)}g=J[i+20>>2];c=J[i+24>>2];if((g|0)==c<<5){if((g+1|0)<0){break c}h=i+16|0;if(g>>>0<=1073741822){c=c<<6;e=(g&-32)+32|0;c=c>>>0>e>>>0?c:e}else{c=2147483647}Ic(h,c);g=J[i+20>>2]}J[i+20>>2]=g+1;c=J[i+16>>2]+(g>>>3&536870908)|0;f=J[c>>2];z=c,A=bm(g)&f,J[z>>2]=A;g=1<>>5|0;f=b;b=b+1|0}h=b;c=J[i+16>>2];b=c+(j<<2)|0;J[b>>2]=J[b>>2]|g;r=J[a+24>>2]+(f<<2)|0;o=J[a+12>>2];j=J[a>>2];e=J[i>>2];b=d;N:{O:{P:{while(1){if((b|0)==-1){break P}g=(b>>>3&536870908)+e|0;J[g>>2]=J[g>>2]|1<>2]=b;if(p){J[(b<<2)+j>>2]=f}q=b+1|0;b=(q>>>0)%3|0?q:b-2|0;g=-1;Q:{if((b|0)==-1){break Q}b=J[o+(b<<2)>>2];g=-1;if((b|0)==-1){break Q}g=b+1|0;g=(g>>>0)%3|0?g:b-2|0}b=g;if((d|0)!=(b|0)){continue}break}if((d|0)!=-1){break N}b=1;break O}if((d>>>0)%3|0){b=d-1|0;break O}b=d+2|0;if((b|0)==-1){break N}}b=J[o+(b<<2)>>2];if((b|0)==-1){break N}R:{if((b>>>0)%3|0){b=b-1|0;break R}b=b+2|0;if((b|0)==-1){break N}}d=J[a+12>>2];j=J[a>>2];e=J[i>>2];while(1){g=(b>>>3&536870908)+e|0;J[g>>2]=J[g>>2]|1<>2]=f}S:{if((b>>>0)%3|0){b=b-1|0;break S}b=b+2|0;if((b|0)==-1){break N}}b=J[d+(b<<2)>>2];if((b|0)==-1){break N}b=b+((b>>>0)%3|0?-1:2)|0;if((b|0)!=-1){continue}break}}b=h}l=l+1|0;if((l|0)!=3){continue}break}j=J[a>>2];d=J[a+4>>2]}k=k+1|0;if(k>>>0<(d-j>>2>>>0)/3>>>0){continue}break}break I}$a();C()}c=J[i+16>>2]}b=0;J[a+44>>2]=0;d=J[i+20>>2];if(d){f=d&31;d=(d>>>3&536870908)+c|0;g=c;e=0;while(1){if(!(J[g>>2]>>>b&1)){e=e+1|0;J[a+44>>2]=e}h=(b|0)==31;b=h?0:b+1|0;g=(h<<2)+g|0;if((d|0)!=(g|0)|(b|0)!=(f|0)){continue}break}}b=J[i>>2];if(b){fl(b);c=J[i+16>>2]}if(c){fl(c)}ia=i+32|0}ia=u+16|0;if(!s){J[v+8>>2]=0;Ug(a);a=0}ia=v+16|0;return a}La();C()}function Sj(a,b,c,d){var e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0;e=ia-16|0;ia=e;a:{b:{if(c){J[a+88>>2]=0;J[a+92>>2]=0;f=J[a+84>>2];J[a+84>>2]=0;if(f){fl(f)}J[a+76>>2]=0;J[a+80>>2]=0;f=J[a+72>>2];J[a+72>>2]=0;if(f){fl(f)}f=J[c>>2];h=J[c+4>>2];H[e+15|0]=0;Kg(a,h-f>>2,e+15|0);f=J[c+28>>2];h=J[c+24>>2];H[e+14|0]=0;Kg(a+12|0,f-h>>2,e+14|0);Jg(a+28|0,J[c+4>>2]-J[c>>2]>>2,14948);h=J[c+28>>2]-J[c+24>>2]|0;i=h>>2;f=J[a+52>>2];c:{if(i>>>0<=J[a+60>>2]-f>>2>>>0){break c}if((h|0)<0){break a}g=J[a+56>>2];h=ll(h);j=h+(i<<2)|0;i=g-f|0;g=i+h|0;if((i|0)>0){lk(h,f,i)}J[a+60>>2]=j;J[a+56>>2]=g;J[a+52>>2]=h;if(!f){break c}fl(f)}h=J[c+28>>2]-J[c+24>>2]|0;i=h>>2;f=J[a+40>>2];d:{if(i>>>0<=J[a+48>>2]-f>>2>>>0){break d}if((h|0)<0){break a}g=J[a+44>>2];h=ll(h);j=h+(i<<2)|0;i=g-f|0;g=i+h|0;if((i|0)>0){lk(h,f,i)}J[a+48>>2]=j;J[a+44>>2]=g;J[a+40>>2]=h;if(!f){break d}fl(f)}H[a+24|0]=1;J[a+64>>2]=c}ia=e+16|0;c=(c|0)!=0;break b}if(c){J[a+88>>2]=0;J[a+92>>2]=0;c=J[a+84>>2];J[a+84>>2]=0;if(c){fl(c)}J[a+76>>2]=0;J[a+80>>2]=0;c=J[a+72>>2];J[a+72>>2]=0;if(c){fl(c)}g=J[a+64>>2];if(J[g+4>>2]!=J[g>>2]){c=0;while(1){m=(c>>>0)/3|0;e=Lj(g,m);g=J[a+64>>2];e:{if(e){break e}j=J[J[g+12>>2]+(c<<2)>>2];f:{g:{if((j|0)==-1){e=J[a>>2]+(c>>>3&536870908)|0;J[e>>2]=J[e>>2]|1<>>0)%3|0?f:c-2|0;if((f|0)!=-1){e=J[J[g>>2]+(f<<2)>>2]}f=J[a+12>>2];h=f+(e>>>3&536870908)|0;J[h>>2]=J[h>>2]|1<>>0)%3|0){e=c-1|0;break g}i=-1;e=c+2|0;if((e|0)!=-1){break g}break f}if(c>>>0>j>>>0){break e}e=-1;l=K[d+84|0];i=-1;k=c+1|0;n=c-2|0;h=(k>>>0)%3|0?k:n;if((h|0)>=0){f=(h>>>0)/3|0;i=J[(J[b+96>>2]+P(f,12)|0)+(h-P(f,3)<<2)>>2]}f=j+((j>>>0)%3|0?-1:2)|0;if((f|0)>=0){e=(f>>>0)/3|0;e=J[(J[b+96>>2]+P(e,12)|0)+(f-P(e,3)<<2)>>2]}if(!l){o=J[d+68>>2];e=J[o+(e<<2)>>2];i=J[(i<<2)+o>>2]}if((e|0)==(i|0)){e=-1;i=-1;if((h|0)!=-1){i=h+1|0;i=(i>>>0)%3|0?i:h-2|0}h:{if((f|0)==-1){break h}if((f>>>0)%3|0){e=f-1|0;break h}e=f+2|0}f=-1;h=-1;if((i|0)>=0){h=(i>>>0)/3|0;h=J[(J[b+96>>2]+P(h,12)|0)+(i-P(h,3)<<2)>>2]}if((e|0)>=0){f=(e>>>0)/3|0;f=J[(J[b+96>>2]+P(f,12)|0)+(e-P(f,3)<<2)>>2]}if(!l){e=J[d+68>>2];f=J[e+(f<<2)>>2];h=J[e+(h<<2)>>2]}if((f|0)==(h|0)){break e}}H[a+24|0]=0;e=J[a>>2];f=e+(c>>>3&536870908)|0;J[f>>2]=J[f>>2]|1<>>3&536870908)|0;J[e>>2]=J[e>>2]|1<>>0)%3|0?k:n;if((e|0)!=-1){h=J[J[g>>2]+(e<<2)>>2]}f=J[a+12>>2];e=f+(h>>>3&536870908)|0;J[e>>2]=J[e>>2]|1<>2]+(e<<2)>>2]}e=(h>>>3&536870908)+f|0;J[e>>2]=J[e>>2]|1<>>0)%3|0?e:j-2|0;if((e|0)!=-1){i=J[J[g>>2]+(e<<2)>>2]}e=(i>>>3&536870908)+f|0;J[e>>2]=J[e>>2]|1<>>0)%3|0){e=j-1|0;break g}i=-1;e=j+2|0;if((e|0)==-1){break f}}i=J[J[g>>2]+(e<<2)>>2]}e=(i>>>3&536870908)+f|0;J[e>>2]=J[e>>2]|1<>>0>2]-J[g>>2]>>2>>>0){continue}break}}if(!(!b|!d)){i=b;h=d;b=0;f=0;d=a;J[a+56>>2]=J[a+52>>2];J[a+44>>2]=J[a+40>>2];k:{e=J[a+64>>2];g=J[e+24>>2];if((g|0)==J[e+28>>2]){break k}l:{m:{while(1){a=b;b=J[(f<<2)+g>>2];n:{if((b|0)==-1){b=a;break n}if((b|0)<0){e=-1}else{c=(b>>>0)/3|0;e=J[(J[i+96>>2]+P(c,12)|0)+(b-P(c,3)<<2)>>2]}e=K[h+84|0]?e:J[J[h+68>>2]+(e<<2)>>2];c=J[d+56>>2];j=J[d+60>>2];o:{if(c>>>0>>0){J[c>>2]=e;J[d+56>>2]=c+4;break o}g=J[d+52>>2];k=c-g|0;l=k>>2;c=l+1|0;if(c>>>0>=1073741824){break a}j=j-g|0;m=j>>1;j=j>>>0>=2147483644?1073741823:c>>>0>>0?m:c;if(j){if(j>>>0>=1073741824){break m}c=ll(j<<2)}else{c=0}l=c+(l<<2)|0;J[l>>2]=e;if((k|0)>0){lk(c,g,k)}J[d+60>>2]=c+(j<<2);J[d+56>>2]=l+4;J[d+52>>2]=c;if(!g){break o}fl(g)}p:{q:{if(!(J[J[d+12>>2]+(f>>>3&536870908)>>2]>>>f&1)){break q}c=b+1|0;c=(c>>>0)%3|0?c:b-2|0;if((c|0)==-1|J[J[d>>2]+(c>>>3&536870908)>>2]>>>c&1){break q}c=J[J[J[d+64>>2]+12>>2]+(c<<2)>>2];if((c|0)==-1){break q}e=c+1|0;e=(e>>>0)%3|0?e:c-2|0;if((e|0)==-1){break q}j=J[d+64>>2];k=J[d>>2];while(1){c=e;e=-1;g=c+1|0;g=(g>>>0)%3|0?g:c-2|0;r:{if((g|0)==-1|J[k+(g>>>3&536870908)>>2]>>>g&1){break r}g=J[J[j+12>>2]+(g<<2)>>2];if((g|0)==-1){break r}e=g+1|0;e=(e>>>0)%3|0?e:g-2|0}if((b|0)!=(e|0)){if((e|0)==-1){break p}continue}break}break k}c=b}J[J[d+28>>2]+(c<<2)>>2]=a;b=J[d+44>>2];s:{if((b|0)!=J[d+48>>2]){J[b>>2]=c;J[d+44>>2]=b+4;break s}g=J[d+40>>2];e=b-g|0;k=e>>2;b=k+1|0;if(b>>>0>=1073741824){break l}j=e>>1;j=e>>>0>=2147483644?1073741823:b>>>0>>0?j:b;if(j){if(j>>>0>=1073741824){break m}b=ll(j<<2)}else{b=0}k=b+(k<<2)|0;J[k>>2]=c;if((e|0)>0){lk(b,g,e)}J[d+48>>2]=b+(j<<2);J[d+44>>2]=k+4;J[d+40>>2]=b;if(!g){break s}fl(g)}b=a+1|0;e=J[d+64>>2];t:{if((c>>>0)%3|0){g=c-1|0;break t}g=c+2|0;if((g|0)==-1){break n}}g=J[J[e+12>>2]+(g<<2)>>2];if((g|0)==-1){break n}g=g+((g>>>0)%3|0?-1:2)|0;if((g|0)==-1|(c|0)==(g|0)){break n}while(1){e=g+1|0;e=(e>>>0)%3|0?e:g-2|0;if(J[J[d>>2]+(e>>>3&536870908)>>2]>>>e&1){e=(g|0)<0?-1:J[(J[i+96>>2]+P((g>>>0)/3|0,12)|0)+((g>>>0)%3<<2)>>2];e=K[h+84|0]?e:J[J[h+68>>2]+(e<<2)>>2];a=J[d+56>>2];k=J[d+60>>2];u:{if(a>>>0>>0){J[a>>2]=e;J[d+56>>2]=a+4;break u}j=J[d+52>>2];l=a-j|0;m=l>>2;a=m+1|0;if(a>>>0>=1073741824){break a}k=k-j|0;n=k>>1;k=k>>>0>=2147483644?1073741823:a>>>0>>0?n:a;if(k){if(k>>>0>=1073741824){break m}a=ll(k<<2)}else{a=0}m=a+(m<<2)|0;J[m>>2]=e;if((l|0)>0){lk(a,j,l)}J[d+60>>2]=a+(k<<2);J[d+56>>2]=m+4;J[d+52>>2]=a;if(!j){break u}fl(j)}e=b+1|0;a=J[d+44>>2];v:{if((a|0)!=J[d+48>>2]){J[a>>2]=g;J[d+44>>2]=a+4;break v}k=J[d+40>>2];j=a-k|0;m=j>>2;a=m+1|0;if(a>>>0>=1073741824){break l}l=j>>1;l=j>>>0>=2147483644?1073741823:a>>>0>>0?l:a;if(l){if(l>>>0>=1073741824){break m}a=ll(l<<2)}else{a=0}m=a+(m<<2)|0;J[m>>2]=g;if((j|0)>0){lk(a,k,j)}J[d+48>>2]=a+(l<<2);J[d+44>>2]=m+4;J[d+40>>2]=a;if(!k){break v}fl(k)}a=b;b=e}J[J[d+28>>2]+(g<<2)>>2]=a;e=J[d+64>>2];w:{if((g>>>0)%3|0){g=g-1|0;break w}g=g+2|0;if((g|0)==-1){break n}}g=J[J[e+12>>2]+(g<<2)>>2];if((g|0)==-1){break n}g=g+((g>>>0)%3|0?-1:2)|0;if((g|0)==-1){break n}if((c|0)!=(g|0)){continue}break}}f=f+1|0;g=J[e+24>>2];if(f>>>0>2]-g>>2>>>0){continue}break}break k}$a();C()}break a}return}b=0;g=0;d=a;J[a+56>>2]=J[a+52>>2];J[a+44>>2]=J[a+40>>2];x:{e=J[a+64>>2];i=J[e+24>>2];if((i|0)==J[e+28>>2]){break x}y:{z:{while(1){c=b;f=J[(g<<2)+i>>2];A:{if((f|0)==-1){break A}a=J[d+56>>2];B:{if((a|0)!=J[d+60>>2]){J[a>>2]=c;J[d+56>>2]=a+4;break B}e=J[d+52>>2];b=a-e|0;i=b>>2;a=i+1|0;if(a>>>0>=1073741824){break a}h=b>>1;h=b>>>0>=2147483644?1073741823:a>>>0>>0?h:a;if(h){if(h>>>0>=1073741824){break z}a=ll(h<<2)}else{a=0}i=a+(i<<2)|0;J[i>>2]=c;if((b|0)>0){lk(a,e,b)}J[d+60>>2]=a+(h<<2);J[d+56>>2]=i+4;J[d+52>>2]=a;if(!e){break B}fl(e)}C:{D:{if(!(J[J[d+12>>2]+(g>>>3&536870908)>>2]>>>g&1)){break D}a=f+1|0;a=(a>>>0)%3|0?a:f-2|0;if((a|0)==-1|J[J[d>>2]+(a>>>3&536870908)>>2]>>>a&1){break D}a=J[J[J[d+64>>2]+12>>2]+(a<<2)>>2];if((a|0)==-1){break D}b=a+1|0;e=(b>>>0)%3|0?b:a-2|0;if((e|0)==-1){break D}h=J[d+64>>2];i=J[d>>2];while(1){a=e;e=-1;b=a+1|0;b=(b>>>0)%3|0?b:a-2|0;E:{if((b|0)==-1|J[i+(b>>>3&536870908)>>2]>>>b&1){break E}b=J[J[h+12>>2]+(b<<2)>>2];if((b|0)==-1){break E}e=b+1|0;e=(e>>>0)%3|0?e:b-2|0}if((e|0)!=(f|0)){if((e|0)==-1){break C}continue}break}break x}a=f}J[J[d+28>>2]+(a<<2)>>2]=c;b=J[d+44>>2];F:{if((b|0)!=J[d+48>>2]){J[b>>2]=a;J[d+44>>2]=b+4;break F}f=J[d+40>>2];e=b-f|0;i=e>>2;b=i+1|0;if(b>>>0>=1073741824){break y}h=e>>1;h=e>>>0>=2147483644?1073741823:b>>>0>>0?h:b;if(h){if(h>>>0>=1073741824){break z}b=ll(h<<2)}else{b=0}i=b+(i<<2)|0;J[i>>2]=a;if((e|0)>0){lk(b,f,e)}J[d+48>>2]=b+(h<<2);J[d+44>>2]=i+4;J[d+40>>2]=b;if(!f){break F}fl(f)}b=c+1|0;e=J[d+64>>2];G:{if((a>>>0)%3|0){i=a-1|0;break G}i=a+2|0;if((i|0)==-1){break A}}f=J[J[e+12>>2]+(i<<2)>>2];if((f|0)==-1){break A}i=f+((f>>>0)%3|0?-1:2)|0;if((i|0)==-1|(a|0)==(i|0)){break A}while(1){e=i+1|0;e=(e>>>0)%3|0?e:i-2|0;if(J[J[d>>2]+(e>>>3&536870908)>>2]>>>e&1){c=J[d+56>>2];H:{if((c|0)!=J[d+60>>2]){J[c>>2]=b;J[d+56>>2]=c+4;break H}f=J[d+52>>2];e=c-f|0;j=e>>2;c=j+1|0;if(c>>>0>=1073741824){break a}h=e>>1;h=e>>>0>=2147483644?1073741823:c>>>0>>0?h:c;if(h){if(h>>>0>=1073741824){break z}c=ll(h<<2)}else{c=0}j=c+(j<<2)|0;J[j>>2]=b;if((e|0)>0){lk(c,f,e)}J[d+60>>2]=c+(h<<2);J[d+56>>2]=j+4;J[d+52>>2]=c;if(!f){break H}fl(f)}e=b+1|0;c=J[d+44>>2];I:{if((c|0)!=J[d+48>>2]){J[c>>2]=i;J[d+44>>2]=c+4;break I}h=J[d+40>>2];f=c-h|0;k=f>>2;c=k+1|0;if(c>>>0>=1073741824){break y}j=f>>1;j=f>>>0>=2147483644?1073741823:c>>>0>>0?j:c;if(j){if(j>>>0>=1073741824){break z}c=ll(j<<2)}else{c=0}k=c+(k<<2)|0;J[k>>2]=i;if((f|0)>0){lk(c,h,f)}J[d+48>>2]=c+(j<<2);J[d+44>>2]=k+4;J[d+40>>2]=c;if(!h){break I}fl(h)}c=b;b=e}J[J[d+28>>2]+(i<<2)>>2]=c;e=J[d+64>>2];J:{if((i>>>0)%3|0){i=i-1|0;break J}i=i+2|0;if((i|0)==-1){break A}}f=J[J[e+12>>2]+(i<<2)>>2];if((f|0)==-1){break A}i=f+((f>>>0)%3|0?-1:2)|0;if((i|0)==-1){break A}if((a|0)!=(i|0)){continue}break}}g=g+1|0;i=J[e+24>>2];if(g>>>0>2]-i>>2>>>0){continue}break}break x}$a();C()}break a}}return}La();C()}function Hb(a){a=a|0;var b=0,c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=Q(0),q=0,r=0;e=ia+-64|0;ia=e;j=J[J[a+28>>2]+4>>2];c=J[a+4>>2];d=J[a+8>>2];i=(c|0)==(d|0);a:{if(i){break a}d=d-c>>2;l=d>>>0<=1?1:d;h=l&3;d=J[j+8>>2];if(l-1>>>0>=3){l=l&-4;while(1){m=g;g=b<<2;g=(((m+K[J[d+(J[g+c>>2]<<2)>>2]+24|0]|0)+K[J[d+(J[(g|4)+c>>2]<<2)>>2]+24|0]|0)+K[J[d+(J[(g|8)+c>>2]<<2)>>2]+24|0]|0)+K[J[d+(J[(g|12)+c>>2]<<2)>>2]+24|0]|0;b=b+4|0;k=k+4|0;if((l|0)!=(k|0)){continue}break}}if(!h){break a}while(1){g=K[J[d+(J[(b<<2)+c>>2]<<2)>>2]+24|0]+g|0;b=b+1|0;f=f+1|0;if((h|0)!=(f|0)){continue}break}}o=J[j+80>>2];J[a+72>>2]=g;b:{if(i){b=1;break b}l=0;while(1){b=J[(l<<2)+c>>2];J[e+60>>2]=b;c:{d:{e:{f:{g:{c=J[a+28>>2];j=J[J[J[c+4>>2]+8>>2]+(b<<2)>>2];switch(J[j+28>>2]-1|0){case 0:case 2:case 4:break f;case 8:break g;default:break c}}J[e+36>>2]=-1;J[e+32>>2]=2040;J[e+48>>2]=0;J[e+52>>2]=0;J[e+40>>2]=0;J[e+44>>2]=0;g=J[c+48>>2];b=ll(32);J[e+16>>2]=b;J[e+20>>2]=17;J[e+24>>2]=-2147483616;H[b+16|0]=K[1261];c=K[1257]|K[1258]<<8|(K[1259]<<16|K[1260]<<24);d=K[1253]|K[1254]<<8|(K[1255]<<16|K[1256]<<24);H[b+8|0]=d;H[b+9|0]=d>>>8;H[b+10|0]=d>>>16;H[b+11|0]=d>>>24;H[b+12|0]=c;H[b+13|0]=c>>>8;H[b+14|0]=c>>>16;H[b+15|0]=c>>>24;c=K[1249]|K[1250]<<8|(K[1251]<<16|K[1252]<<24);d=K[1245]|K[1246]<<8|(K[1247]<<16|K[1248]<<24);H[b|0]=d;H[b+1|0]=d>>>8;H[b+2|0]=d>>>16;H[b+3|0]=d>>>24;H[b+4|0]=c;H[b+5|0]=c>>>8;H[b+6|0]=c>>>16;H[b+7|0]=c>>>24;H[b+17|0]=0;g=Ib(g,e+60|0,e+16|0,-1);if(H[e+27|0]<0){fl(J[e+16>>2])}h:{if((g|0)<=0){break h}h=J[J[a+28>>2]+48>>2];b=ll(32);J[e+16>>2]=b;J[e+20>>2]=19;J[e+24>>2]=-2147483616;d=0;c=K[1429]|K[1430]<<8|(K[1431]<<16|K[1432]<<24);H[b+15|0]=c;H[b+16|0]=c>>>8;H[b+17|0]=c>>>16;H[b+18|0]=c>>>24;c=K[1426]|K[1427]<<8|(K[1428]<<16|K[1429]<<24);f=K[1422]|K[1423]<<8|(K[1424]<<16|K[1425]<<24);H[b+8|0]=f;H[b+9|0]=f>>>8;H[b+10|0]=f>>>16;H[b+11|0]=f>>>24;H[b+12|0]=c;H[b+13|0]=c>>>8;H[b+14|0]=c>>>16;H[b+15|0]=c>>>24;c=K[1418]|K[1419]<<8|(K[1420]<<16|K[1421]<<24);f=K[1414]|K[1415]<<8|(K[1416]<<16|K[1417]<<24);H[b|0]=f;H[b+1|0]=f>>>8;H[b+2|0]=f>>>16;H[b+3|0]=f>>>24;H[b+4|0]=c;H[b+5|0]=c>>>8;H[b+6|0]=c>>>16;H[b+7|0]=c>>>24;H[b+19|0]=0;i:{if(!Jb(h,e+60|0,e+16|0)){break i}f=J[J[a+28>>2]+48>>2];b=ll(32);J[e>>2]=b;J[e+4>>2]=18;J[e+8>>2]=-2147483616;c=K[1547]|K[1548]<<8;H[b+16|0]=c;H[b+17|0]=c>>>8;c=K[1543]|K[1544]<<8|(K[1545]<<16|K[1546]<<24);d=K[1539]|K[1540]<<8|(K[1541]<<16|K[1542]<<24);H[b+8|0]=d;H[b+9|0]=d>>>8;H[b+10|0]=d>>>16;H[b+11|0]=d>>>24;H[b+12|0]=c;H[b+13|0]=c>>>8;H[b+14|0]=c>>>16;H[b+15|0]=c>>>24;c=K[1535]|K[1536]<<8|(K[1537]<<16|K[1538]<<24);d=K[1531]|K[1532]<<8|(K[1533]<<16|K[1534]<<24);H[b|0]=d;H[b+1|0]=d>>>8;H[b+2|0]=d>>>16;H[b+3|0]=d>>>24;H[b+4|0]=c;H[b+5|0]=c>>>8;H[b+6|0]=c>>>16;H[b+7|0]=c>>>24;H[b+18|0]=0;d=Jb(f,e+60|0,e);if(H[e+11|0]>=0){break i}fl(J[e>>2])}if(H[e+27|0]<0){fl(J[e+16>>2])}j:{if(d){b=K[j+24|0];k:{if(!b){d=0;break k}b=b<<2;d=ll(b);nk(d,0,b)}h=J[J[a+28>>2]+48>>2];b=ll(32);J[e+16>>2]=b;J[e+20>>2]=19;J[e+24>>2]=-2147483616;c=K[1429]|K[1430]<<8|(K[1431]<<16|K[1432]<<24);H[b+15|0]=c;H[b+16|0]=c>>>8;H[b+17|0]=c>>>16;H[b+18|0]=c>>>24;c=K[1426]|K[1427]<<8|(K[1428]<<16|K[1429]<<24);f=K[1422]|K[1423]<<8|(K[1424]<<16|K[1425]<<24);H[b+8|0]=f;H[b+9|0]=f>>>8;H[b+10|0]=f>>>16;H[b+11|0]=f>>>24;H[b+12|0]=c;H[b+13|0]=c>>>8;H[b+14|0]=c>>>16;H[b+15|0]=c>>>24;c=K[1418]|K[1419]<<8|(K[1420]<<16|K[1421]<<24);f=K[1414]|K[1415]<<8|(K[1416]<<16|K[1417]<<24);H[b|0]=f;H[b+1|0]=f>>>8;H[b+2|0]=f>>>16;H[b+3|0]=f>>>24;H[b+4|0]=c;H[b+5|0]=c>>>8;H[b+6|0]=c>>>16;H[b+7|0]=c>>>24;H[b+19|0]=0;Kb(h,e+60|0,e+16|0,K[j+24|0],d);if(H[e+27|0]<0){fl(J[e+16>>2])}h=J[J[a+28>>2]+48>>2];b=ll(32);J[e+16>>2]=b;J[e+20>>2]=18;J[e+24>>2]=-2147483616;c=K[1547]|K[1548]<<8;H[b+16|0]=c;H[b+17|0]=c>>>8;c=K[1543]|K[1544]<<8|(K[1545]<<16|K[1546]<<24);f=K[1539]|K[1540]<<8|(K[1541]<<16|K[1542]<<24);H[b+8|0]=f;H[b+9|0]=f>>>8;H[b+10|0]=f>>>16;H[b+11|0]=f>>>24;H[b+12|0]=c;H[b+13|0]=c>>>8;H[b+14|0]=c>>>16;H[b+15|0]=c>>>24;c=K[1535]|K[1536]<<8|(K[1537]<<16|K[1538]<<24);f=K[1531]|K[1532]<<8|(K[1533]<<16|K[1534]<<24);H[b|0]=f;H[b+1|0]=f>>>8;H[b+2|0]=f>>>16;H[b+3|0]=f>>>24;H[b+4|0]=c;H[b+5|0]=c>>>8;H[b+6|0]=c>>>16;H[b+7|0]=c>>>24;H[b+18|0]=0;p=Lb(h,e+60|0,e+16|0);if(H[e+27|0]<0){fl(J[e+16>>2])}Sa(e+32|0,g,d,K[j+24|0],p);if(!d){break j}fl(d);break j}if(!Ua(e+32|0,j,g)){break h}}b=J[a+40>>2];l:{if((b|0)!=J[a+44>>2]){J[b>>2]=2040;c=J[e+36>>2];J[b+16>>2]=0;J[b+8>>2]=0;J[b+12>>2]=0;J[b+4>>2]=c;c=J[e+44>>2];d=J[e+40>>2];if((c|0)!=(d|0)){d=c-d|0;if((d|0)<0){break e}c=ll(d);J[b+8>>2]=c;J[b+12>>2]=c;J[b+16>>2]=c+(d&-4);g=J[e+40>>2];d=J[e+44>>2]-g|0;if((d|0)>0){c=lk(c,g,d)+d|0}J[b+12>>2]=c}N[b+20>>2]=N[e+52>>2];J[a+40>>2]=b+24;break l}g=0;m:{n:{o:{p:{b=J[a+40>>2];f=J[a+36>>2];d=(b-f|0)/24|0;c=d+1|0;if(c>>>0<178956971){h=(J[a+44>>2]-f|0)/24|0;i=h<<1;h=h>>>0>=89478485?178956970:c>>>0>>0?i:c;if(h){if(h>>>0>=178956971){break p}g=ll(P(h,24))}c=P(d,24)+g|0;J[c>>2]=2040;d=J[e+36>>2];J[c+16>>2]=0;J[c+8>>2]=0;J[c+12>>2]=0;J[c+4>>2]=d;d=J[e+44>>2];i=J[e+40>>2];if((d|0)!=(i|0)){d=d-i|0;if((d|0)<0){break o}k=ll(d);J[c+8>>2]=k;J[c+16>>2]=k+(d&-4);q=c,r=lk(k,i,d)+d|0,J[q+12>>2]=r}d=P(h,24)+g|0;N[c+20>>2]=N[e+52>>2];g=c+24|0;if((b|0)==(f|0)){break n}while(1){c=c-24|0;J[c>>2]=2040;b=b-24|0;J[c+4>>2]=J[b+4>>2];J[c+8>>2]=J[b+8>>2];J[c+12>>2]=J[b+12>>2];J[c+16>>2]=J[b+16>>2];J[b+16>>2]=0;J[b+8>>2]=0;J[b+12>>2]=0;N[c+20>>2]=N[b+20>>2];if((b|0)!=(f|0)){continue}break}J[a+44>>2]=d;d=J[a+40>>2];J[a+40>>2]=g;b=J[a+36>>2];J[a+36>>2]=c;if((b|0)==(d|0)){break m}while(1){d=d-24|0;na[J[J[d>>2]>>2]](d)|0;if((b|0)!=(d|0)){continue}break}break m}La();C()}$a();C()}La();C()}J[a+44>>2]=d;J[a+40>>2]=g;J[a+36>>2]=c}if(b){fl(b)}}b=e+32|0;c=ab(b,j,o);J[e>>2]=c;J[e+24>>2]=0;J[e+16>>2]=0;J[e+20>>2]=0;Qa(b,j,e+16|0,c);b=J[e+16>>2];if(b){J[e+20>>2]=b;fl(b)}b=J[a+64>>2];q:{if(b>>>0>2]){c=J[e>>2];J[e>>2]=0;J[b>>2]=c;J[a+64>>2]=b+4;break q}c=0;r:{s:{t:{d=J[a+60>>2];g=J[a+64>>2]-d>>2;b=g+1|0;if(b>>>0<1073741824){d=J[a+68>>2]-d|0;j=d>>1;b=d>>>0>=2147483644?1073741823:b>>>0>>0?j:b;if(b){if(b>>>0>=1073741824){break t}c=ll(b<<2)}j=J[e>>2];J[e>>2]=0;d=(g<<2)+c|0;J[d>>2]=j;g=(b<<2)+c|0;j=d+4|0;c=J[a+64>>2];b=J[a+60>>2];if((c|0)==(b|0)){break s}while(1){c=c-4|0;f=J[c>>2];J[c>>2]=0;d=d-4|0;J[d>>2]=f;if((b|0)!=(c|0)){continue}break}J[a+68>>2]=g;c=J[a+64>>2];J[a+64>>2]=j;b=J[a+60>>2];J[a+60>>2]=d;if((b|0)==(c|0)){break r}while(1){c=c-4|0;d=J[c>>2];J[c>>2]=0;if(d){Mb(d)}if((b|0)!=(c|0)){continue}break}break r}La();C()}$a();C()}J[a+68>>2]=g;J[a+64>>2]=j;J[a+60>>2]=d}if(b){fl(b)}}b=J[e>>2];J[e>>2]=0;if(b){Mb(b)}J[e+32>>2]=2040;b=J[e+40>>2];if(!b){break c}J[e+44>>2]=b;fl(b);break c}J[e+32>>2]=2040;a=J[e+40>>2];if(a){J[e+44>>2]=a;fl(a)}b=0;break b}f=0;d=0;g=0;h=K[j+24|0];u:{if(!h){break u}b=0;g=h<<2;d=ll(g);c=d;i=h&7;if(i){while(1){J[c>>2]=2147483647;c=c+4|0;b=b+1|0;if((i|0)!=(b|0)){continue}break}}if((h-1&1073741823)>>>0>=7){b=d+g|0;while(1){J[c+24>>2]=2147483647;J[c+28>>2]=2147483647;J[c+16>>2]=2147483647;J[c+20>>2]=2147483647;J[c+8>>2]=2147483647;J[c+12>>2]=2147483647;J[c>>2]=2147483647;J[c+4>>2]=2147483647;c=c+32|0;if((b|0)!=(c|0)){continue}break}}b=K[j+24|0];if(!b){g=0;break u}b=b<<2;g=ll(b);nk(g,0,b)}b=K[j+24|0];if(!J[j+80>>2]){break d}while(1){Nb(j,f,b<<24>>24,g);b=K[j+24|0];v:{if(!b){break v}c=0;if((b|0)!=1){m=b&254;h=0;while(1){i=c<<2;k=i+d|0;n=J[g+i>>2];if((n|0)>2]){J[k>>2]=n}i=i|4;k=i+d|0;i=J[g+i>>2];if(J[k>>2]>(i|0)){J[k>>2]=i}c=c+2|0;h=h+2|0;if((m|0)!=(h|0)){continue}break}}if(!(b&1)){break v}c=c<<2;h=c+d|0;c=J[c+g>>2];if(J[h>>2]<=(c|0)){break v}J[h>>2]=c}f=f+1|0;if(f>>>0>2]){continue}break}break d}La();C()}c=0;w:{if(!b){break w}x:{while(1){y:{k=(c<<2)+d|0;b=J[a+52>>2];z:{if((b|0)!=J[a+56>>2]){J[b>>2]=J[k>>2];J[a+52>>2]=b+4;break z}h=J[a+48>>2];f=b-h|0;m=f>>2;b=m+1|0;if(b>>>0>=1073741824){break y}i=f>>1;i=f>>>0>=2147483644?1073741823:b>>>0>>0?i:b;if(i){if(i>>>0>=1073741824){break x}b=ll(i<<2)}else{b=0}m=b+(m<<2)|0;J[m>>2]=J[k>>2];if((f|0)>0){lk(b,h,f)}J[a+56>>2]=b+(i<<2);J[a+52>>2]=m+4;J[a+48>>2]=b;if(!h){break z}fl(h)}c=c+1|0;if(c>>>0>2];if(l>>>0>2]-c>>2>>>0){continue}break}}ia=e- -64|0;return b|0}function jb(a,b){var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=Q(0),q=0,r=0,s=0,t=0,u=Q(0);g=ia-112|0;ia=g;J[g+88>>2]=0;J[g+92>>2]=0;J[g+80>>2]=0;J[g+84>>2]=0;J[g+96>>2]=1065353216;d=J[a+80>>2];J[g+40>>2]=0;J[g+32>>2]=0;J[g+36>>2]=0;a:{if(d){if(d>>>0>=1073741824){break a}c=d<<2;h=ll(c);J[g+32>>2]=h;d=c+h|0;J[g+40>>2]=d;nk(h,0,c);J[g+36>>2]=d;while(1){d=J[J[b>>2]>>2];c=J[b+48>>2]+Zl(J[b+40>>2],J[b+44>>2],t,0)|0;f=d+c|0;d=K[f+12|0]|K[f+13|0]<<8|(K[f+14|0]<<16|K[f+15|0]<<24);J[g+72>>2]=K[f+8|0]|K[f+9|0]<<8|(K[f+10|0]<<16|K[f+11|0]<<24);J[g+76>>2]=d;d=K[f+4|0]|K[f+5|0]<<8|(K[f+6|0]<<16|K[f+7|0]<<24);J[g+64>>2]=K[f|0]|K[f+1|0]<<8|(K[f+2|0]<<16|K[f+3|0]<<24);J[g+68>>2]=d;e=K[f|0]|K[f+1|0]<<8|(K[f+2|0]<<16|K[f+3|0]<<24);c=K[f+4|0]|K[f+5|0]<<8|(K[f+6|0]<<16|K[f+7|0]<<24);d=K[f+12|0]|K[f+13|0]<<8|(K[f+14|0]<<16|K[f+15|0]<<24);J[g+56>>2]=K[f+8|0]|K[f+9|0]<<8|(K[f+10|0]<<16|K[f+11|0]<<24);J[g+60>>2]=d;J[g+48>>2]=e;J[g+52>>2]=c;d=0;o=J[g+84>>2];b:{if(!o){break b}f=J[g+80>>2];m=J[g+60>>2]^(J[g+56>>2]^(J[g+52>>2]^(J[g+48>>2]^318)+239)+239)+239;c=m&o-1;e=am(o);c:{if(e>>>0<=1){break c}c=m;if(c>>>0>>0){break c}c=(m>>>0)%(o>>>0)|0}l=f;f=c;c=J[l+(c<<2)>>2];if(!c){break b}c=J[c>>2];if(!c){break b}d:{if(e>>>0>=2){l=J[g+60>>2];i=J[g+56>>2];n=J[g+52>>2];j=J[g+48>>2];while(1){e=J[c+4>>2];e:{if((e|0)!=(m|0)){if(e>>>0>=o>>>0){e=(e>>>0)%(o>>>0)|0}if((e|0)!=(f|0)){break b}break e}e=J[c+8>>2];f:{if((e|0)!=(j|0)){e=(e|0)==(j|0);break f}e=J[c+12>>2];if((e|0)!=(n|0)){e=(e|0)==(n|0);break f}e=J[c+16>>2];if((e|0)!=(i|0)){e=(e|0)==(i|0);break f}e=(l|0)==J[c+20>>2]}if(e){break d}}c=J[c>>2];if(c){continue}break}break b}j=o-1|0;l=J[g+60>>2];o=J[g+56>>2];i=J[g+52>>2];n=J[g+48>>2];while(1){e=J[c+4>>2];g:{if((e|0)!=(m|0)){if((f|0)!=(e&j)){break b}break g}e=J[c+8>>2];if((e|0)!=(n|0)){if((e|0)!=(n|0)){break g}break d}e=J[c+12>>2];if((e|0)!=(i|0)){if((e|0)!=(i|0)){break g}break d}e=J[c+16>>2];if((e|0)!=(o|0)){if((e|0)!=(o|0)){break g}break d}if((l|0)==J[c+20>>2]){break d}}c=J[c>>2];if(c){continue}break}break b}d=c}h:{if(d){J[(t<<2)+h>>2]=J[d+24>>2];break h}d=J[g+60>>2];J[g+16>>2]=J[g+56>>2];J[g+20>>2]=d;d=J[g+52>>2];J[g+8>>2]=J[g+48>>2];J[g+12>>2]=d;J[g+24>>2]=r;d=0;m=J[g+20>>2]^(J[g+16>>2]^(J[g+12>>2]^(J[g+8>>2]^318)+239)+239)+239;i:{j:{k=g+80|0;i=J[k+4>>2];if(!i){break j}c=am(i);k:{if(c>>>0>=2){d=m;if(i>>>0<=d>>>0){d=(m>>>0)%(i>>>0)|0}h=J[J[k>>2]+(d<<2)>>2];if(!h){break j}if(c>>>0<2){break k}e=J[g+20>>2];j=J[g+16>>2];l=J[g+12>>2];f=J[g+8>>2];while(1){h=J[h>>2];if(!h){break j}c=J[h+4>>2];if((c|0)!=(m|0)){if(c>>>0>=i>>>0){c=(c>>>0)%(i>>>0)|0}if((c|0)!=(d|0)){break j}}c=J[h+8>>2];l:{if((c|0)!=(f|0)){c=(c|0)==(f|0);break l}c=J[h+12>>2];if((c|0)!=(l|0)){c=(c|0)==(l|0);break l}c=J[h+16>>2];if((c|0)!=(j|0)){c=(c|0)==(j|0);break l}c=(e|0)==J[h+20>>2]}if(!c){continue}break}d=0;break i}d=m&i-1;h=J[J[k>>2]+(d<<2)>>2];if(!h){break j}}f=i-1|0;e=J[g+20>>2];n=J[g+16>>2];j=J[g+12>>2];l=J[g+8>>2];while(1){h=J[h>>2];if(!h){break j}c=J[h+4>>2];if((c|0)!=(m|0)&(c&f)!=(d|0)){break j}c=J[h+8>>2];m:{if((c|0)!=(l|0)){c=(c|0)==(l|0);break m}c=J[h+12>>2];if((c|0)!=(j|0)){c=(c|0)==(j|0);break m}c=J[h+16>>2];if((c|0)!=(n|0)){c=(c|0)==(n|0);break m}c=(e|0)==J[h+20>>2]}if(!c){continue}break}d=0;break i}h=ll(28);c=J[g+20>>2];J[h+16>>2]=J[g+16>>2];J[h+20>>2]=c;c=J[g+12>>2];J[h+8>>2]=J[g+8>>2];J[h+12>>2]=c;c=J[g+24>>2];J[h>>2]=0;J[h+4>>2]=m;J[h+24>>2]=c;u=Q(J[k+12>>2]+1>>>0);p=N[k+16>>2];n:{if(u>Q(p*Q(i>>>0))?0:i){break n}d=2;c=(i-1&i)!=0|i>>>0<3|i<<1;p=Q(W(Q(u/p)));o:{if(p=Q(0)){e=~~p>>>0;break o}e=0}c=c>>>0>e>>>0?c:e;p:{if((c|0)==1){break p}if(!(c&c-1)){d=c;break p}d=bl(c);i=J[k+4>>2]}q:{if(d>>>0<=i>>>0){if(d>>>0>=i>>>0){break q}e=i>>>0<3;p=Q(W(Q(Q(M[k+12>>2])/N[k+16>>2])));r:{if(p=Q(0)){c=~~p>>>0;break r}c=0}l=i;s:{t:{if(e){break t}if(am(i)>>>0>1){break t}c=c>>>0<2?c:1<<32-S(c-1|0);break s}c=bl(c)}d=c>>>0>>0?d:c;if(l>>>0<=d>>>0){break q}}e=0;l=0;j=d;u:{v:{w:{x:{if(d){if(j>>>0>=1073741824){break x}d=ll(j<<2);c=J[k>>2];J[k>>2]=d;if(c){fl(c)}J[k+4>>2]=j;if(j>>>0>=4){d=j&-4;c=0;while(1){f=e<<2;J[f+J[k>>2]>>2]=0;J[J[k>>2]+(f|4)>>2]=0;J[J[k>>2]+(f|8)>>2]=0;J[J[k>>2]+(f|12)>>2]=0;e=e+4|0;c=c+4|0;if((d|0)!=(c|0)){continue}break}}d=j&3;if(d){while(1){J[J[k>>2]+(e<<2)>>2]=0;e=e+1|0;l=l+1|0;if((d|0)!=(l|0)){continue}break}}c=J[k+8>>2];if(!c){break u}d=k+8|0;f=J[c+4>>2];e=am(j);if(e>>>0<2){break w}f=f>>>0>=j>>>0?(f>>>0)%(j>>>0)|0:f;J[J[k>>2]+(f<<2)>>2]=d;d=J[c>>2];if(!d){break u}if(e>>>0<=1){break v}while(1){l=J[d+4>>2];if(j>>>0<=l>>>0){l=(l>>>0)%(j>>>0)|0}y:{if((f|0)==(l|0)){c=d;break y}e=d;o=l<<2;n=o+J[k>>2]|0;if(!J[n>>2]){J[n>>2]=c;c=d;f=l;break y}while(1){l=e;e=J[e>>2];if(e){i=J[d+8>>2];n=J[e+8>>2];z:{if((i|0)!=(n|0)){i=(i|0)==(n|0);break z}i=J[d+12>>2];n=J[e+12>>2];if((i|0)!=(n|0)){i=(i|0)==(n|0);break z}i=J[d+16>>2];n=J[e+16>>2];if((i|0)!=(n|0)){i=(i|0)==(n|0);break z}i=J[d+20>>2]==J[e+20>>2]}if(i){continue}}break}J[c>>2]=e;J[l>>2]=J[J[o+J[k>>2]>>2]>>2];J[J[o+J[k>>2]>>2]>>2]=d}d=J[c>>2];if(d){continue}break}break u}d=J[k>>2];J[k>>2]=0;if(d){fl(d)}J[k+4>>2]=0;break u}$a();C()}f=j-1&f;J[J[k>>2]+(f<<2)>>2]=d;d=J[c>>2];if(!d){break u}}i=j-1|0;while(1){l=i&J[d+4>>2];A:{if((l|0)==(f|0)){c=d;break A}e=d;o=l<<2;j=o+J[k>>2]|0;if(J[j>>2]){while(1){l=e;e=J[e>>2];if(e){n=J[d+8>>2];j=J[e+8>>2];B:{if((n|0)!=(j|0)){j=(j|0)==(n|0);break B}n=J[d+12>>2];j=J[e+12>>2];if((n|0)!=(j|0)){j=(j|0)==(n|0);break B}n=J[d+16>>2];j=J[e+16>>2];if((n|0)!=(j|0)){j=(j|0)==(n|0);break B}j=J[d+20>>2]==J[e+20>>2]}if(j){continue}}break}J[c>>2]=e;J[l>>2]=J[J[o+J[k>>2]>>2]>>2];J[J[o+J[k>>2]>>2]>>2]=d;break A}J[j>>2]=c;c=d;f=l}d=J[c>>2];if(d){continue}break}}}i=J[k+4>>2];d=i-1|0;if(!(d&i)){d=d&m;break n}if(i>>>0>m>>>0){d=m;break n}d=(m>>>0)%(i>>>0)|0}c=J[k>>2]+(d<<2)|0;d=J[c>>2];C:{D:{if(!d){d=k+8|0;J[h>>2]=J[d>>2];J[k+8>>2]=h;J[c>>2]=d;d=J[h>>2];if(!d){break C}d=J[d+4>>2];c=i-1|0;E:{if(!(c&i)){d=c&d;break E}if(d>>>0>>0){break E}d=(d>>>0)%(i>>>0)|0}d=J[k>>2]+(d<<2)|0;break D}J[h>>2]=J[d>>2]}J[d>>2]=h}J[k+12>>2]=J[k+12>>2]+1;d=1}H[g+108|0]=d;J[g+104>>2]=h;d=J[a+40>>2];lk(J[J[a>>2]>>2]+P(d,r)|0,g- -64|0,d);h=J[g+32>>2];J[h+(t<<2)>>2]=r;r=r+1|0}d=t+1|0;q=d?q:q+1|0;t=d;c=J[a+80>>2];if(!q&c>>>0>d>>>0){continue}break}if((c|0)!=(r|0)){F:{if(!K[a+84|0]){b=J[a+72>>2];m=J[a+68>>2];if((b|0)==(m|0)){break F}b=b-m>>2;c=b>>>0<=1?1:b;q=c&3;d=0;b=0;if(c-1>>>0>=3){e=c&-4;while(1){f=b<<2;c=f+m|0;J[c>>2]=J[(J[c>>2]<<2)+h>>2];c=m+(f|4)|0;J[c>>2]=J[(J[c>>2]<<2)+h>>2];c=m+(f|8)|0;J[c>>2]=J[(J[c>>2]<<2)+h>>2];c=m+(f|12)|0;J[c>>2]=J[(J[c>>2]<<2)+h>>2];b=b+4|0;s=s+4|0;if((e|0)!=(s|0)){continue}break}}if(!q){break F}while(1){c=m+(b<<2)|0;J[c>>2]=J[(J[c>>2]<<2)+h>>2];b=b+1|0;d=d+1|0;if((q|0)!=(d|0)){continue}break}break F}H[a+84|0]=0;e=a+68|0;b=J[a+68>>2];d=J[a+72>>2]-b>>2;G:{if(d>>>0>>0){ub(e,c-d|0,2184);c=J[a+80>>2];break G}if(c>>>0>=d>>>0){break G}J[a+72>>2]=b+(c<<2)}if(!c){break F}m=J[e>>2];d=0;b=0;if(c>>>0>=4){q=c&-4;while(1){f=b<<2;J[f+m>>2]=J[f+h>>2];e=f|4;J[e+m>>2]=J[e+h>>2];e=f|8;J[e+m>>2]=J[e+h>>2];e=f|12;J[e+m>>2]=J[e+h>>2];b=b+4|0;s=s+4|0;if((q|0)!=(s|0)){continue}break}}e=c&3;if(!e){break F}while(1){c=b<<2;J[c+m>>2]=J[c+h>>2];b=b+1|0;d=d+1|0;if((e|0)!=(d|0)){continue}break}}J[a+80>>2]=r}fl(h)}b=J[g+88>>2];if(b){while(1){a=J[b>>2];fl(b);b=a;if(b){continue}break}}a=J[g+80>>2];J[g+80>>2]=0;if(a){fl(a)}ia=g+112|0;return r}La();C()}function Uk(a,b,c,d,e,f,g,h,i){var j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,K=0,L=0,N=0,O=0,P=0,Q=0;k=ia-336|0;ia=k;n=h;p=i&65535;o=d;m=e&65535;r=(e^i)&-2147483648;t=i>>>16&32767;u=e>>>16&32767;a:{b:{if(t-32767>>>0>4294934529&u-32767>>>0>=4294934530){break b}j=e&2147483647;if(!(!d&(j|0)==2147418112?!(b|c):j>>>0<2147418112)){x=d;r=e|32768;break a}e=i&2147483647;if(!(!h&(e|0)==2147418112?!(f|g):e>>>0<2147418112)){x=h;r=i|32768;b=f;c=g;break a}if(!(b|d|(j^2147418112|c))){if(!(f|h|(e^2147418112|g))){b=0;c=0;r=2147450880;break a}r=r|2147418112;b=0;c=0;break a}if(!(f|h|(e^2147418112|g))){b=0;c=0;break a}if(!(b|d|(c|j))){b=!(f|h|(e|g));x=b?0:x;r=b?2147450880:r;b=0;c=0;break a}if(!(f|h|(e|g))){r=r|2147418112;b=0;c=0;break a}if((j|0)==65535|j>>>0<65535){i=b;d=!(m|o);h=d<<6;j=S(d?b:o)+32|0;b=S(d?c:m);b=h+((b|0)==32?j:b)|0;Rk(k+320|0,i,c,o,m,b-15|0);l=16-b|0;o=J[k+328>>2];m=J[k+332>>2];c=J[k+324>>2];b=J[k+320>>2]}if(e>>>0>65535){break b}d=!(n|p);e=d<<6;h=S(d?f:n)+32|0;d=S(d?g:p);d=e+((d|0)==32?h:d)|0;Rk(k+304|0,f,g,n,p,d-15|0);l=(d+l|0)-16|0;n=J[k+312>>2];p=J[k+316>>2];f=J[k+304>>2];g=J[k+308>>2]}e=p|65536;C=e;D=n;d=n;j=e<<15|d>>>17;e=d<<15|g>>>17;d=0-e|0;h=j;i=1963258675-(j+((e|0)!=0)|0)|0;_k(k+288|0,e,j,0,0,d,i,0,0);j=J[k+296>>2];_k(k+272|0,0-j|0,0-(J[k+300>>2]+((j|0)!=0)|0)|0,0,0,d,i,0,0);d=J[k+280>>2];i=d<<1|J[k+276>>2]>>>31;d=J[k+284>>2]<<1|d>>>31;_k(k+256|0,i,d,0,0,e,h,0,0);j=d;d=J[k+264>>2];_k(k+240|0,i,j,0,0,0-d|0,0-(J[k+268>>2]+((d|0)!=0)|0)|0,0,0);i=J[k+248>>2];j=i<<1|J[k+244>>2]>>>31;d=J[k+252>>2]<<1|i>>>31;_k(k+224|0,j,d,0,0,e,h,0,0);i=d;d=J[k+232>>2];_k(k+208|0,j,i,0,0,0-d|0,0-(J[k+236>>2]+((d|0)!=0)|0)|0,0,0);d=J[k+216>>2];i=d<<1|J[k+212>>2]>>>31;d=J[k+220>>2]<<1|d>>>31;_k(k+192|0,i,d,0,0,e,h,0,0);j=d;d=J[k+200>>2];_k(k+176|0,i,j,0,0,0-d|0,0-(J[k+204>>2]+((d|0)!=0)|0)|0,0,0);d=e;i=J[k+184>>2];e=i<<1|J[k+180>>2]>>>31;s=e-1|0;i=(J[k+188>>2]<<1|i>>>31)-!e|0;_k(k+160|0,d,h,0,0,s,i,0,0);d=f;j=g<<15|d>>>17;_k(k+144|0,d<<15,j,0,0,s,i,0,0);h=J[k+172>>2];p=J[k+160>>2];e=J[k+152>>2];d=p+e|0;n=J[k+164>>2];j=n+J[k+156>>2]|0;j=d>>>0>>0?j+1|0:j;e=d;d=j;n=(n|0)==(d|0)&e>>>0

>>0|d>>>0>>0;j=n+J[k+168>>2]|0;h=j>>>0>>0?h+1|0:h;p=!d&e>>>0>1|(d|0)!=0;n=p+j|0;j=h;h=n;_k(k+112|0,s,i,0,0,0-h|0,0-(((h|0)!=0)+(h>>>0

>>0?j+1|0:j)|0)|0,0,0);_k(k+128|0,1-e|0,0-((e>>>0>1)+d|0)|0,0,0,s,i,0,0);I=(u-t|0)+l|0;e=J[k+116>>2];z=e;d=J[k+112>>2];j=e<<1|d>>>31;A=d<<1;q=j;d=j;h=J[k+140>>2];y=h;e=J[k+136>>2];j=h<<1|e>>>31;i=e<<1|J[k+132>>2]>>>31;h=i+A|0;d=d+j|0;d=h>>>0>>0?d+1|0:d;e=d;d=d-(h>>>0<13927)|0;n=d;l=0;j=m|65536;K=j;L=o;d=o;j=j<<1|d>>>31;P=d<<1;Q=j;E=j;w=Zl(n,l,j,0);d=ma;v=d;j=b;d=c<<1|j>>>31;t=j<<1;s=d;p=d;j=0;u=j;i=h-13927|0;l=(e|0)==(n|0)&i>>>0>>0|e>>>0>n>>>0;m=(e|0)==(q|0)&h>>>0>>0|e>>>0>>0;d=J[k+120>>2];h=J[k+124>>2]<<1|d>>>31;e=y>>>31|0;d=e+(d<<1|z>>>31)|0;j=h;j=d>>>0>>0?j+1|0:j;e=d;d=m+d|0;j=d>>>0>>0?j+1|0:j;e=d;d=l+d|0;l=d>>>0>>0?j+1|0:j;e=d;d=d-1|0;F=l-!e|0;A=0;j=Zl(p,u,F,A);e=j+w|0;h=ma+v|0;h=e>>>0>>0?h+1|0:h;l=(h|0)==(v|0)&e>>>0>>0|h>>>0>>0;j=0;w=l;q=d;d=o;N=c>>>31|0;v=N|d<<1;y=0;l=Zl(q,j,v,y);d=l+e|0;j=ma+h|0;j=d>>>0>>0?j+1|0:j;o=d;m=j;e=(j|0)==(h|0)&d>>>0>>0|h>>>0>j>>>0;d=w+e|0;l=0;l=d>>>0>>0?1:l;e=Zl(E,u,F,A);d=e+d|0;j=ma+l|0;w=d;d=d>>>0>>0?j+1|0:j;l=Zl(E,u,q,y);h=ma;B=Zl(v,y,F,A);e=B+l|0;j=ma+h|0;j=e>>>0>>0?j+1|0:j;B=e;e=j;j=(h|0)==(j|0)&l>>>0>B>>>0|h>>>0>j>>>0;l=w+e|0;d=d+j|0;h=l;l=h>>>0>>0?d+1|0:d;e=0;d=e+o|0;j=m+B|0;j=d>>>0>>0?j+1|0:j;e=j;m=(j|0)==(m|0)&d>>>0>>0|j>>>0>>0;h=m+h|0;j=l;w=h;l=h>>>0>>0?j+1|0:j;o=d;m=e;B=i;h=Zl(i,0,v,y);e=ma;i=Zl(n,u,p,u);d=i+h|0;j=ma+e|0;j=d>>>0>>0?j+1|0:j;e=(e|0)==(j|0)&d>>>0>>0|e>>>0>j>>>0;h=j;G=w;z=e;H=t&-2;i=Zl(q,y,H,0);e=i+d|0;j=ma+j|0;j=e>>>0>>0?j+1|0:j;w=e;i=e;e=j;i=(j|0)==(h|0)&d>>>0>i>>>0|h>>>0>j>>>0;d=z+i|0;h=0;h=d>>>0>>0?1:h;j=d;i=d+o|0;d=h+m|0;z=i;h=i;d=h>>>0>>0?d+1|0:d;i=d;h=(d|0)==(m|0)&h>>>0>>0|d>>>0>>0;d=G+h|0;j=l;G=d;o=d>>>0>>0?j+1|0:j;O=Zl(E,u,B,x);E=ma;h=Zl(F,A,H,x);d=h+O|0;j=ma+E|0;F=d;m=Zl(n,u,v,y);l=d+m|0;h=d>>>0>>0?j+1|0:j;d=h+ma|0;d=l>>>0>>0?d+1|0:d;v=l;m=Zl(p,u,q,y);j=l+m|0;l=ma+d|0;A=j;l=j>>>0>>0?l+1|0:l;m=0;q=(d|0)==(l|0)&v>>>0>j>>>0|d>>>0>l>>>0;j=(d|0)==(h|0)&v>>>0>>0|d>>>0>>0;d=j+((h|0)==(E|0)&F>>>0>>0|h>>>0>>0)|0;h=0;d=q+d|0;q=l|0;h=q+z|0;j=(d|m)+i|0;j=h>>>0>>0?j+1|0:j;q=h;d=h;m=j;h=(i|0)==(j|0)&d>>>0>>0|i>>>0>j>>>0;d=h+G|0;j=o;v=d;i=d>>>0>>0?j+1|0:j;z=Zl(n,u,H,x);n=ma;h=Zl(p,u,B,x);d=h+z|0;j=ma+n|0;j=d>>>0>>0?j+1|0:j;o=0;h=(j|0)==(n|0)&d>>>0>>0|j>>>0>>0;n=j;d=j+w|0;j=(h|o)+e|0;h=d;j=d>>>0>>0?j+1|0:j;n=(e|0)==(j|0)&d>>>0>>0|e>>>0>j>>>0;e=0+d|0;d=j;l=A+d|0;l=e>>>0>>0?l+1|0:l;e=(d|0)==(l|0)&e>>>0>>0|d>>>0>l>>>0;d=n+e|0;j=0;j=d>>>0>>0?1:j;e=d;d=d+q|0;j=j+m|0;j=d>>>0>>0?j+1|0:j;e=j;j=(m|0)==(j|0)&d>>>0>>0|j>>>0>>0;h=j+v|0;l=i;l=h>>>0>>0?l+1|0:l;i=l;c:{if((l|0)==131071|l>>>0<131071){L=P|N;K=y|Q;_k(k+80|0,d,e,h,i,f,g,D,C);j=b<<17;b=0;c=J[k+88>>2];m=b-c|0;l=J[k+80>>2];p=J[k+84>>2];n=(l|p)!=0;o=m-n|0;m=(j-(J[k+92>>2]+(b>>>0>>0)|0)|0)-(m>>>0>>0)|0;n=0-l|0;p=0-(((l|0)!=0)+p|0)|0;b=I+16382|0;break c}d=(e&1)<<31|d>>>1;e=h<<31|e>>>1;h=(i&1)<<31|h>>>1;i=i>>>1|0;_k(k+96|0,d,e,h,i,f,g,D,C);m=0;n=J[k+104>>2];p=m-n|0;l=J[k+96>>2];s=J[k+100>>2];t=(l|s)!=0;o=p-t|0;m=((b<<16)-(J[k+108>>2]+(m>>>0>>0)|0)|0)-(p>>>0>>0)|0;n=0-l|0;p=0-(((l|0)!=0)+s|0)|0;t=b;s=c;b=I+16383|0}if((b|0)>=32767){r=r|2147418112;b=0;c=0;break a}d:{if((b|0)>0){c=o;l=m<<1|c>>>31;o=c<<1|p>>>31;m=l;t=h;s=i&65535|b<<16;b=n;l=p<<1|b>>>31;b=b<<1;break d}if((b|0)<=-113){b=0;c=0;break a}Yk(k- -64|0,d,e,h,i,1-b|0);Rk(k+48|0,t,s,L,K,b+112|0);d=J[k+64>>2];e=J[k+68>>2];t=J[k+72>>2];s=J[k+76>>2];_k(k+32|0,f,g,D,C,d,e,t,s);c=J[k+40>>2];i=c<<1;c=J[k+44>>2]<<1|c>>>31;b=J[k+56>>2];h=J[k+36>>2];o=h>>>31|i;i=b-o|0;l=J[k+60>>2]-((b>>>0>>0)+c|0)|0;c=J[k+32>>2];h=h<<1|c>>>31;c=c<<1;j=J[k+52>>2];b=J[k+48>>2];m=(h|0)==(j|0)&c>>>0>b>>>0|h>>>0>j>>>0;o=i-m|0;m=l-(i>>>0>>0)|0;i=b;b=b-c|0;l=j-((c>>>0>i>>>0)+h|0)|0}_k(k+16|0,f,g,D,C,3,0,0,0);_k(k,f,g,D,C,5,0,0,0);j=0;h=l+j|0;n=d&1;c=b+n|0;h=c>>>0>>0?h+1|0:h;i=c;b=i;g=(g|0)==(h|0)&b>>>0>f>>>0|g>>>0>>0;c=(h|0)==(j|0)&b>>>0>>0|h>>>0>>0;b=c+o|0;l=m;l=b>>>0>>0?l+1|0:l;f=b;c=(l|0)==(C|0);c=c&(b|0)==(D|0)?g:c&b>>>0>D>>>0|l>>>0>C>>>0;b=c+d|0;j=e;j=b>>>0>>0?j+1|0:j;c=b;b=j;e=(j|0)==(e|0)&c>>>0>>0|e>>>0>j>>>0;d=e+t|0;j=s;j=d>>>0>>0?j+1|0:j;o=d;d=J[k+20>>2];g=(d|0)==(h|0)&M[k+16>>2]>>0|d>>>0>>0;d=J[k+28>>2];e=J[k+24>>2];g=j>>>0<2147418112&((e|0)==(f|0)&(d|0)==(l|0)?g:(d|0)==(l|0)&e>>>0>>0|d>>>0>>0);e=g+c|0;d=b;d=e>>>0>>0?d+1|0:d;c=(b|0)==(d|0)&c>>>0>e>>>0|b>>>0>d>>>0;b=o+c|0;j=b>>>0>>0?j+1|0:j;g=b;b=J[k+4>>2];h=(b|0)==(h|0)&M[k>>2]>>0|b>>>0>>0;b=J[k+12>>2];c=J[k+8>>2];c=j>>>0<2147418112&((c|0)==(f|0)&(b|0)==(l|0)?h:(b|0)==(l|0)&c>>>0>>0|b>>>0>>0);b=c+e|0;l=b>>>0>>0?d+1|0:d;c=l;f=(d|0)==(l|0)&b>>>0>>0|d>>>0>l>>>0;e=g+f|0;d=j;x=e|x;r=r|(e>>>0>>0?d+1|0:d)}J[a>>2]=b;J[a+4>>2]=c;J[a+8>>2]=x;J[a+12>>2]=r;ia=k+336|0}function Mc(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0;h=ia-48|0;ia=h;e=J[a+4>>2];i=J[a+12>>2];J[h+40>>2]=0;a=h;J[a+32>>2]=0;J[a+36>>2]=0;J[a+24>>2]=0;J[a+28>>2]=0;J[a+16>>2]=0;J[a+20>>2]=0;J[a+8>>2]=0;J[a+12>>2]=0;k=J[J[J[e+4>>2]+8>>2]+(i<<2)>>2];c=a+8|0;if((b|0)==-1){b=xe(i,e)}a:{if((b|0)==-2){break a}if((na[J[J[e>>2]+8>>2]](e)|0)==1){g=ia-32|0;ia=g;f=J[J[J[e+4>>2]+8>>2]+(i<<2)>>2];b:{c:{d:{if((na[J[J[e>>2]+8>>2]](e)|0)!=1|b-1>>>0>5){break d}j=na[J[J[e>>2]+52>>2]](e)|0;a=na[J[J[e>>2]+60>>2]](e,i)|0;if(!j|!a){break d}d=na[J[J[e>>2]+56>>2]](e,i)|0;if(d){e=J[e+56>>2];J[g+20>>2]=d;J[g+16>>2]=e;J[g+28>>2]=a;J[g+24>>2]=a+12;d=g+16|0;a=0;e:{f:{switch(b-1|0){case 0:a=ll(60);J[a+4>>2]=f;J[a>>2]=3464;b=J[c+4>>2];J[a+8>>2]=J[c>>2];J[a+12>>2]=b;b=J[c+12>>2];J[a+16>>2]=J[c+8>>2];J[a+20>>2]=b;b=J[c+20>>2];J[a+24>>2]=J[c+16>>2];J[a+28>>2]=b;J[a+40>>2]=0;J[a+32>>2]=0;J[a+36>>2]=0;b=J[c+28>>2];e=J[c+24>>2];if((b|0)!=(e|0)){b=b-e|0;if((b|0)<0){break c}f=ll(b);J[a+32>>2]=f;J[a+40>>2]=f+(b&-4);l=a,m=lk(f,e,b)+b|0,J[l+36>>2]=m}b=J[d+4>>2];J[a+44>>2]=J[d>>2];J[a+48>>2]=b;b=J[d+12>>2];J[a+52>>2]=J[d+8>>2];J[a+56>>2]=b;J[a>>2]=2756;break e;case 3:a=ll(168);J[a+4>>2]=f;J[a>>2]=3464;b=J[c+4>>2];J[a+8>>2]=J[c>>2];J[a+12>>2]=b;b=J[c+12>>2];J[a+16>>2]=J[c+8>>2];J[a+20>>2]=b;b=J[c+20>>2];J[a+24>>2]=J[c+16>>2];J[a+28>>2]=b;J[a+40>>2]=0;J[a+32>>2]=0;J[a+36>>2]=0;b=J[c+28>>2];e=J[c+24>>2];if((b|0)!=(e|0)){b=b-e|0;if((b|0)<0){break c}f=ll(b);J[a+32>>2]=f;J[a+40>>2]=f+(b&-4);l=a,m=lk(f,e,b)+b|0,J[l+36>>2]=m}b=J[d+4>>2];J[a+44>>2]=J[d>>2];J[a+48>>2]=b;b=J[d+12>>2];J[a+52>>2]=J[d+8>>2];J[a+56>>2]=b;J[a+60>>2]=0;J[a+64>>2]=0;J[a>>2]=3520;J[a+68>>2]=0;J[a+72>>2]=0;J[a+76>>2]=0;J[a+80>>2]=0;J[a+84>>2]=0;J[a+88>>2]=0;J[a+92>>2]=0;J[a+96>>2]=0;J[a+100>>2]=0;J[a+104>>2]=0;J[a+108>>2]=0;J[a+128>>2]=0;J[a+132>>2]=0;J[a+120>>2]=0;J[a+112>>2]=0;J[a+116>>2]=0;J[a+136>>2]=0;J[a+140>>2]=0;J[a+144>>2]=0;J[a+160>>2]=0;J[a+152>>2]=0;J[a+156>>2]=0;break e;case 4:a=ll(104);J[a+4>>2]=f;J[a>>2]=3464;b=J[c+4>>2];J[a+8>>2]=J[c>>2];J[a+12>>2]=b;b=J[c+12>>2];J[a+16>>2]=J[c+8>>2];J[a+20>>2]=b;b=J[c+20>>2];J[a+24>>2]=J[c+16>>2];J[a+28>>2]=b;J[a+40>>2]=0;J[a+32>>2]=0;J[a+36>>2]=0;b=J[c+28>>2];e=J[c+24>>2];if((b|0)!=(e|0)){b=b-e|0;if((b|0)<0){break c}f=ll(b);J[a+32>>2]=f;J[a+40>>2]=f+(b&-4);l=a,m=lk(f,e,b)+b|0,J[l+36>>2]=m}b=J[d+4>>2];J[a+44>>2]=J[d>>2];J[a+48>>2]=b;b=J[d+12>>2];J[a+52>>2]=J[d+8>>2];J[a+56>>2]=b;J[a+84>>2]=0;J[a+76>>2]=0;J[a+80>>2]=0;J[a+60>>2]=0;J[a+64>>2]=0;J[a>>2]=3768;b=J[d+4>>2];J[a+88>>2]=J[d>>2];J[a+92>>2]=b;b=J[d+12>>2];J[a+96>>2]=J[d+8>>2];J[a+100>>2]=b;break e;case 5:break f;default:break e}}a=ll(144);J[a+4>>2]=f;J[a>>2]=3464;b=J[c+4>>2];J[a+8>>2]=J[c>>2];J[a+12>>2]=b;b=J[c+12>>2];J[a+16>>2]=J[c+8>>2];J[a+20>>2]=b;b=J[c+20>>2];J[a+24>>2]=J[c+16>>2];J[a+28>>2]=b;J[a+40>>2]=0;J[a+32>>2]=0;J[a+36>>2]=0;g:{h:{b=J[c+28>>2];e=J[c+24>>2];if((b|0)!=(e|0)){e=b-e|0;if((e|0)<0){break h}b=ll(e);J[a+32>>2]=b;J[a+36>>2]=b;J[a+40>>2]=b+(e&-4);f=J[c+24>>2];e=J[c+28>>2]-f|0;if((e|0)>0){b=lk(b,f,e)+e|0}J[a+36>>2]=b}J[a>>2]=3408;b=J[d+4>>2];J[a+44>>2]=J[d>>2];J[a+48>>2]=b;b=J[d+12>>2];J[a+52>>2]=J[d+8>>2];J[a+56>>2]=b;b=a- -64|0;J[b>>2]=0;J[b+4>>2]=0;J[a+60>>2]=4632;J[a>>2]=4004;b=J[d+4>>2];J[a+72>>2]=J[d>>2];J[a+76>>2]=b;b=J[d+12>>2];J[a+80>>2]=J[d+8>>2];J[a+84>>2]=b;J[a+104>>2]=1065353216;J[a+108>>2]=-1;J[a+96>>2]=-1;J[a+100>>2]=-1;J[a+88>>2]=1;J[a+92>>2]=-1;J[a+60>>2]=4240;J[a+112>>2]=0;J[a+116>>2]=0;J[a+136>>2]=0;J[a+140>>2]=0;J[a+128>>2]=0;J[a+132>>2]=0;J[a+120>>2]=0;J[a+124>>2]=0;break g}La();C()}break e}d=a;break d}d=J[e+56>>2];J[g+20>>2]=j;J[g+16>>2]=d;J[g+28>>2]=a;J[g+24>>2]=a+12;d=g+16|0;a=0;i:{j:{switch(b-1|0){case 0:a=ll(60);J[a+4>>2]=f;J[a>>2]=3464;b=J[c+4>>2];J[a+8>>2]=J[c>>2];J[a+12>>2]=b;b=J[c+12>>2];J[a+16>>2]=J[c+8>>2];J[a+20>>2]=b;b=J[c+20>>2];J[a+24>>2]=J[c+16>>2];J[a+28>>2]=b;J[a+40>>2]=0;J[a+32>>2]=0;J[a+36>>2]=0;b=J[c+28>>2];e=J[c+24>>2];if((b|0)!=(e|0)){b=b-e|0;if((b|0)<0){break c}f=ll(b);J[a+32>>2]=f;J[a+40>>2]=f+(b&-4);l=a,m=lk(f,e,b)+b|0,J[l+36>>2]=m}b=J[d+4>>2];J[a+44>>2]=J[d>>2];J[a+48>>2]=b;b=J[d+12>>2];J[a+52>>2]=J[d+8>>2];J[a+56>>2]=b;J[a>>2]=4660;break i;case 3:a=ll(168);J[a+4>>2]=f;J[a>>2]=3464;b=J[c+4>>2];J[a+8>>2]=J[c>>2];J[a+12>>2]=b;b=J[c+12>>2];J[a+16>>2]=J[c+8>>2];J[a+20>>2]=b;b=J[c+20>>2];J[a+24>>2]=J[c+16>>2];J[a+28>>2]=b;J[a+40>>2]=0;J[a+32>>2]=0;J[a+36>>2]=0;b=J[c+28>>2];e=J[c+24>>2];if((b|0)!=(e|0)){b=b-e|0;if((b|0)<0){break c}f=ll(b);J[a+32>>2]=f;J[a+40>>2]=f+(b&-4);l=a,m=lk(f,e,b)+b|0,J[l+36>>2]=m}b=J[d+4>>2];J[a+44>>2]=J[d>>2];J[a+48>>2]=b;b=J[d+12>>2];J[a+52>>2]=J[d+8>>2];J[a+56>>2]=b;J[a+60>>2]=0;J[a+64>>2]=0;J[a>>2]=5084;J[a+68>>2]=0;J[a+72>>2]=0;J[a+76>>2]=0;J[a+80>>2]=0;J[a+84>>2]=0;J[a+88>>2]=0;J[a+92>>2]=0;J[a+96>>2]=0;J[a+100>>2]=0;J[a+104>>2]=0;J[a+108>>2]=0;J[a+128>>2]=0;J[a+132>>2]=0;J[a+120>>2]=0;J[a+112>>2]=0;J[a+116>>2]=0;J[a+136>>2]=0;J[a+140>>2]=0;J[a+144>>2]=0;J[a+160>>2]=0;J[a+152>>2]=0;J[a+156>>2]=0;break i;case 4:a=ll(104);J[a+4>>2]=f;J[a>>2]=3464;b=J[c+4>>2];J[a+8>>2]=J[c>>2];J[a+12>>2]=b;b=J[c+12>>2];J[a+16>>2]=J[c+8>>2];J[a+20>>2]=b;b=J[c+20>>2];J[a+24>>2]=J[c+16>>2];J[a+28>>2]=b;J[a+40>>2]=0;J[a+32>>2]=0;J[a+36>>2]=0;b=J[c+28>>2];e=J[c+24>>2];if((b|0)!=(e|0)){b=b-e|0;if((b|0)<0){break c}f=ll(b);J[a+32>>2]=f;J[a+40>>2]=f+(b&-4);l=a,m=lk(f,e,b)+b|0,J[l+36>>2]=m}b=J[d+4>>2];J[a+44>>2]=J[d>>2];J[a+48>>2]=b;b=J[d+12>>2];J[a+52>>2]=J[d+8>>2];J[a+56>>2]=b;J[a+84>>2]=0;J[a+76>>2]=0;J[a+80>>2]=0;J[a+60>>2]=0;J[a+64>>2]=0;J[a>>2]=5320;b=J[d+4>>2];J[a+88>>2]=J[d>>2];J[a+92>>2]=b;b=J[d+12>>2];J[a+96>>2]=J[d+8>>2];J[a+100>>2]=b;break i;case 5:break j;default:break i}}a=ll(144);J[a+4>>2]=f;J[a>>2]=3464;b=J[c+4>>2];J[a+8>>2]=J[c>>2];J[a+12>>2]=b;b=J[c+12>>2];J[a+16>>2]=J[c+8>>2];J[a+20>>2]=b;b=J[c+20>>2];J[a+24>>2]=J[c+16>>2];J[a+28>>2]=b;J[a+40>>2]=0;J[a+32>>2]=0;J[a+36>>2]=0;k:{l:{b=J[c+28>>2];e=J[c+24>>2];if((b|0)!=(e|0)){e=b-e|0;if((e|0)<0){break l}b=ll(e);J[a+32>>2]=b;J[a+36>>2]=b;J[a+40>>2]=b+(e&-4);f=J[c+24>>2];e=J[c+28>>2]-f|0;if((e|0)>0){b=lk(b,f,e)+e|0}J[a+36>>2]=b}J[a>>2]=5028;b=J[d+4>>2];J[a+44>>2]=J[d>>2];J[a+48>>2]=b;b=J[d+12>>2];J[a+52>>2]=J[d+8>>2];J[a+56>>2]=b;b=a- -64|0;J[b>>2]=0;J[b+4>>2]=0;J[a+60>>2]=6128;J[a>>2]=5544;b=J[d+4>>2];J[a+72>>2]=J[d>>2];J[a+76>>2]=b;b=J[d+12>>2];J[a+80>>2]=J[d+8>>2];J[a+84>>2]=b;J[a+104>>2]=1065353216;J[a+108>>2]=-1;J[a+96>>2]=-1;J[a+100>>2]=-1;J[a+88>>2]=1;J[a+92>>2]=-1;J[a+60>>2]=5764;J[a+112>>2]=0;J[a+116>>2]=0;J[a+136>>2]=0;J[a+140>>2]=0;J[a+128>>2]=0;J[a+132>>2]=0;J[a+120>>2]=0;J[a+124>>2]=0;break k}La();C()}break i}d=a}ia=g+32|0;break b}La();C()}if(d){break a}}d=ll(44);J[d+4>>2]=k;J[d>>2]=3464;a=J[c+4>>2];J[d+8>>2]=J[c>>2];J[d+12>>2]=a;a=J[c+12>>2];J[d+16>>2]=J[c+8>>2];J[d+20>>2]=a;a=J[c+20>>2];J[d+24>>2]=J[c+16>>2];J[d+28>>2]=a;J[d+40>>2]=0;J[d+32>>2]=0;J[d+36>>2]=0;m:{a=J[c+28>>2];b=J[c+24>>2];if((a|0)!=(b|0)){a=a-b|0;if((a|0)<0){break m}c=ll(a);J[d+32>>2]=c;J[d+40>>2]=c+(a&-4);l=d,m=lk(c,b,a)+a|0,J[l+36>>2]=m}J[d>>2]=6156;break a}La();C()}a=J[h+32>>2];if(a){J[h+36>>2]=a;fl(a)}ia=h+48|0;return d|0}function rb(a,b){var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=Q(0),q=0,r=0,s=0,t=Q(0);f=ia-80|0;ia=f;J[f+56>>2]=0;J[f+60>>2]=0;J[f+48>>2]=0;J[f+52>>2]=0;J[f+64>>2]=1065353216;d=J[a+80>>2];J[f+24>>2]=0;J[f+16>>2]=0;J[f+20>>2]=0;a:{if(d){if(d>>>0>=1073741824){break a}c=d<<2;h=ll(c);J[f+16>>2]=h;d=c+h|0;J[f+24>>2]=d;nk(h,0,c);J[f+20>>2]=d;while(1){d=J[J[b>>2]>>2];c=J[b+48>>2]+Zl(J[b+40>>2],J[b+44>>2],s,0)|0;d=d+c|0;c=K[d+4|0]|K[d+5|0]<<8|(K[d+6|0]<<16|K[d+7|0]<<24);d=K[d|0]|K[d+1|0]<<8|(K[d+2|0]<<16|K[d+3|0]<<24);J[f+32>>2]=d;J[f+36>>2]=c;J[f+40>>2]=d;J[f+44>>2]=c;d=0;o=J[f+52>>2];b:{if(!o){break b}j=J[f+48>>2];l=L[f+38>>1]^(L[f+36>>1]^(L[f+34>>1]^(L[f+32>>1]^318)+239)+239)+239;c=l&o-1;e=am(o);c:{if(e>>>0<=1){break c}c=l;if(c>>>0>>0){break c}c=(l>>>0)%(o>>>0)|0}m=j;j=c;c=J[m+(c<<2)>>2];if(!c){break b}c=J[c>>2];if(!c){break b}d:{if(e>>>0>=2){g=L[f+32>>1];n=L[f+34>>1];i=L[f+36>>1];m=L[f+38>>1];while(1){e=J[c+4>>2];e:{if((e|0)!=(l|0)){if(e>>>0>=o>>>0){e=(e>>>0)%(o>>>0)|0}if((e|0)!=(j|0)){break b}break e}e=L[c+8>>1];f:{if((e|0)!=(g|0)){e=(e|0)==(g|0);break f}e=L[c+10>>1];if((e|0)!=(n|0)){e=(e|0)==(n|0);break f}e=L[c+12>>1];if((e|0)!=(i|0)){e=(e|0)==(i|0);break f}e=(m|0)==L[c+14>>1]}if(e){break d}}c=J[c>>2];if(c){continue}break}break b}i=o-1|0;o=L[f+32>>1];g=L[f+34>>1];n=L[f+36>>1];m=L[f+38>>1];while(1){e=J[c+4>>2];g:{if((e|0)!=(l|0)){if((j|0)!=(e&i)){break b}break g}e=L[c+8>>1];if((e|0)!=(o|0)){if((e|0)!=(o|0)){break g}break d}e=L[c+10>>1];if((e|0)!=(g|0)){if((e|0)!=(g|0)){break g}break d}e=L[c+12>>1];if((e|0)!=(n|0)){if((e|0)!=(n|0)){break g}break d}if((m|0)==L[c+14>>1]){break d}}c=J[c>>2];if(c){continue}break}break b}d=c}h:{if(d){J[(s<<2)+h>>2]=J[d+16>>2];break h}J[f+8>>2]=r;d=J[f+36>>2];J[f>>2]=J[f+32>>2];J[f+4>>2]=d;d=0;l=L[f+6>>1]^(L[f+4>>1]^(L[f+2>>1]^(L[f>>1]^318)+239)+239)+239;i:{j:{k=f+48|0;g=J[k+4>>2];if(!g){break j}c=am(g);k:{if(c>>>0>=2){d=l;if(g>>>0<=d>>>0){d=(l>>>0)%(g>>>0)|0}h=J[J[k>>2]+(d<<2)>>2];if(!h){break j}if(c>>>0<2){break k}i=L[f>>1];m=L[f+2>>1];j=L[f+4>>1];e=L[f+6>>1];while(1){h=J[h>>2];if(!h){break j}c=J[h+4>>2];if((c|0)!=(l|0)){if(c>>>0>=g>>>0){c=(c>>>0)%(g>>>0)|0}if((c|0)!=(d|0)){break j}}c=L[h+8>>1];l:{if((c|0)!=(i|0)){c=(c|0)==(i|0);break l}c=L[h+10>>1];if((c|0)!=(m|0)){c=(c|0)==(m|0);break l}c=L[h+12>>1];if((c|0)!=(j|0)){c=(c|0)==(j|0);break l}c=(e|0)==L[h+14>>1]}if(!c){continue}break}d=0;break i}d=l&g-1;h=J[J[k>>2]+(d<<2)>>2];if(!h){break j}}j=g-1|0;n=L[f>>1];i=L[f+2>>1];m=L[f+4>>1];e=L[f+6>>1];while(1){h=J[h>>2];if(!h){break j}c=J[h+4>>2];if((c|0)!=(l|0)&(c&j)!=(d|0)){break j}c=L[h+8>>1];m:{if((c|0)!=(n|0)){c=(c|0)==(n|0);break m}c=L[h+10>>1];if((c|0)!=(i|0)){c=(c|0)==(i|0);break m}c=L[h+12>>1];if((c|0)!=(m|0)){c=(c|0)==(m|0);break m}c=(e|0)==L[h+14>>1]}if(!c){continue}break}d=0;break i}h=ll(20);c=J[f+4>>2];J[h+8>>2]=J[f>>2];J[h+12>>2]=c;c=J[f+8>>2];J[h+4>>2]=l;J[h+16>>2]=c;J[h>>2]=0;t=Q(J[k+12>>2]+1>>>0);p=N[k+16>>2];n:{if(t>Q(p*Q(g>>>0))?0:g){break n}d=2;c=(g-1&g)!=0|g>>>0<3|g<<1;p=Q(W(Q(t/p)));o:{if(p=Q(0)){e=~~p>>>0;break o}e=0}c=c>>>0>e>>>0?c:e;p:{if((c|0)==1){break p}if(!(c&c-1)){d=c;break p}d=bl(c);g=J[k+4>>2]}q:{if(d>>>0<=g>>>0){if(d>>>0>=g>>>0){break q}e=g>>>0<3;p=Q(W(Q(Q(M[k+12>>2])/N[k+16>>2])));r:{if(p=Q(0)){c=~~p>>>0;break r}c=0}s:{t:{if(e){break t}if(am(g)>>>0>1){break t}c=c>>>0<2?c:1<<32-S(c-1|0);break s}c=bl(c)}d=c>>>0>>0?d:c;if(g>>>0<=d>>>0){break q}}e=0;m=0;i=d;u:{v:{w:{x:{if(d){if(i>>>0>=1073741824){break x}d=ll(i<<2);c=J[k>>2];J[k>>2]=d;if(c){fl(c)}J[k+4>>2]=i;if(i>>>0>=4){d=i&-4;c=0;while(1){j=e<<2;J[j+J[k>>2]>>2]=0;J[J[k>>2]+(j|4)>>2]=0;J[J[k>>2]+(j|8)>>2]=0;J[J[k>>2]+(j|12)>>2]=0;e=e+4|0;c=c+4|0;if((d|0)!=(c|0)){continue}break}}d=i&3;if(d){while(1){J[J[k>>2]+(e<<2)>>2]=0;e=e+1|0;m=m+1|0;if((d|0)!=(m|0)){continue}break}}c=J[k+8>>2];if(!c){break u}d=k+8|0;j=J[c+4>>2];e=am(i);if(e>>>0<2){break w}j=j>>>0>=i>>>0?(j>>>0)%(i>>>0)|0:j;J[J[k>>2]+(j<<2)>>2]=d;d=J[c>>2];if(!d){break u}if(e>>>0<=1){break v}while(1){m=J[d+4>>2];if(i>>>0<=m>>>0){m=(m>>>0)%(i>>>0)|0}y:{if((j|0)==(m|0)){c=d;break y}e=d;o=m<<2;n=o+J[k>>2]|0;if(!J[n>>2]){J[n>>2]=c;c=d;j=m;break y}while(1){m=e;e=J[e>>2];if(e){g=L[d+8>>1];n=L[e+8>>1];z:{if((g|0)!=(n|0)){g=(g|0)==(n|0);break z}g=L[d+10>>1];n=L[e+10>>1];if((g|0)!=(n|0)){g=(g|0)==(n|0);break z}g=L[d+12>>1];n=L[e+12>>1];if((g|0)!=(n|0)){g=(g|0)==(n|0);break z}g=L[d+14>>1]==L[e+14>>1]}if(g){continue}}break}J[c>>2]=e;J[m>>2]=J[J[o+J[k>>2]>>2]>>2];J[J[o+J[k>>2]>>2]>>2]=d}d=J[c>>2];if(d){continue}break}break u}d=J[k>>2];J[k>>2]=0;if(d){fl(d)}J[k+4>>2]=0;break u}$a();C()}j=i-1&j;J[J[k>>2]+(j<<2)>>2]=d;d=J[c>>2];if(!d){break u}}g=i-1|0;while(1){m=g&J[d+4>>2];A:{if((m|0)==(j|0)){c=d;break A}e=d;o=m<<2;i=o+J[k>>2]|0;if(J[i>>2]){while(1){m=e;e=J[e>>2];if(e){n=L[d+8>>1];i=L[e+8>>1];B:{if((n|0)!=(i|0)){i=(i|0)==(n|0);break B}n=L[d+10>>1];i=L[e+10>>1];if((n|0)!=(i|0)){i=(i|0)==(n|0);break B}n=L[d+12>>1];i=L[e+12>>1];if((n|0)!=(i|0)){i=(i|0)==(n|0);break B}i=L[d+14>>1]==L[e+14>>1]}if(i){continue}}break}J[c>>2]=e;J[m>>2]=J[J[o+J[k>>2]>>2]>>2];J[J[o+J[k>>2]>>2]>>2]=d;break A}J[i>>2]=c;c=d;j=m}d=J[c>>2];if(d){continue}break}}}g=J[k+4>>2];d=g-1|0;if(!(d&g)){d=d&l;break n}if(g>>>0>l>>>0){d=l;break n}d=(l>>>0)%(g>>>0)|0}c=J[k>>2]+(d<<2)|0;d=J[c>>2];C:{D:{if(!d){d=k+8|0;J[h>>2]=J[d>>2];J[k+8>>2]=h;J[c>>2]=d;d=J[h>>2];if(!d){break C}d=J[d+4>>2];c=g-1|0;E:{if(!(c&g)){d=c&d;break E}if(d>>>0>>0){break E}d=(d>>>0)%(g>>>0)|0}d=J[k>>2]+(d<<2)|0;break D}J[h>>2]=J[d>>2]}J[d>>2]=h}J[k+12>>2]=J[k+12>>2]+1;d=1}H[f+76|0]=d;J[f+72>>2]=h;d=J[a+40>>2];lk(J[J[a>>2]>>2]+P(d,r)|0,f+40|0,d);h=J[f+16>>2];J[h+(s<<2)>>2]=r;r=r+1|0}d=s+1|0;q=d?q:q+1|0;s=d;c=J[a+80>>2];if(!q&c>>>0>d>>>0){continue}break}if((c|0)!=(r|0)){F:{if(!K[a+84|0]){b=J[a+72>>2];l=J[a+68>>2];if((b|0)==(l|0)){break F}b=b-l>>2;c=b>>>0<=1?1:b;q=c&3;d=0;b=0;if(c-1>>>0>=3){e=c&-4;g=0;while(1){j=b<<2;c=j+l|0;J[c>>2]=J[(J[c>>2]<<2)+h>>2];c=l+(j|4)|0;J[c>>2]=J[(J[c>>2]<<2)+h>>2];c=l+(j|8)|0;J[c>>2]=J[(J[c>>2]<<2)+h>>2];c=l+(j|12)|0;J[c>>2]=J[(J[c>>2]<<2)+h>>2];b=b+4|0;g=g+4|0;if((e|0)!=(g|0)){continue}break}}if(!q){break F}while(1){c=l+(b<<2)|0;J[c>>2]=J[(J[c>>2]<<2)+h>>2];b=b+1|0;d=d+1|0;if((q|0)!=(d|0)){continue}break}break F}H[a+84|0]=0;e=a+68|0;b=J[a+68>>2];d=J[a+72>>2]-b>>2;G:{if(d>>>0>>0){ub(e,c-d|0,2184);c=J[a+80>>2];break G}if(c>>>0>=d>>>0){break G}J[a+72>>2]=b+(c<<2)}if(!c){break F}l=J[e>>2];d=0;b=0;if(c>>>0>=4){q=c&-4;g=0;while(1){j=b<<2;J[j+l>>2]=J[h+j>>2];e=j|4;J[e+l>>2]=J[e+h>>2];e=j|8;J[e+l>>2]=J[e+h>>2];e=j|12;J[e+l>>2]=J[e+h>>2];b=b+4|0;g=g+4|0;if((q|0)!=(g|0)){continue}break}}e=c&3;if(!e){break F}while(1){c=b<<2;J[c+l>>2]=J[c+h>>2];b=b+1|0;d=d+1|0;if((e|0)!=(d|0)){continue}break}}J[a+80>>2]=r}fl(h)}b=J[f+56>>2];if(b){while(1){a=J[b>>2];fl(b);b=a;if(b){continue}break}}a=J[f+48>>2];J[f+48>>2]=0;if(a){fl(a)}ia=f+80|0;return r}La();C()}function ib(a,b){var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=Q(0),r=0,s=0,t=0,u=0,v=Q(0);g=ia-96|0;ia=g;J[g+72>>2]=0;J[g+76>>2]=0;J[g+64>>2]=0;J[g+68>>2]=0;J[g+80>>2]=1065353216;d=J[a+80>>2];J[g+24>>2]=0;J[g+16>>2]=0;J[g+20>>2]=0;a:{if(d){if(d>>>0>=1073741824){break a}c=d<<2;f=ll(c);J[g+16>>2]=f;d=c+f|0;J[g+24>>2]=d;nk(f,0,c);J[g+20>>2]=d;while(1){d=J[J[b>>2]>>2];e=J[b+48>>2]+Zl(J[b+40>>2],J[b+44>>2],t,0)|0;e=d+e|0;J[g+56>>2]=K[e+8|0]|K[e+9|0]<<8|(K[e+10|0]<<16|K[e+11|0]<<24);d=K[e+4|0]|K[e+5|0]<<8|(K[e+6|0]<<16|K[e+7|0]<<24);J[g+48>>2]=K[e|0]|K[e+1|0]<<8|(K[e+2|0]<<16|K[e+3|0]<<24);J[g+52>>2]=d;c=K[e+4|0]|K[e+5|0]<<8|(K[e+6|0]<<16|K[e+7|0]<<24);d=K[e|0]|K[e+1|0]<<8|(K[e+2|0]<<16|K[e+3|0]<<24);J[g+40>>2]=K[e+8|0]|K[e+9|0]<<8|(K[e+10|0]<<16|K[e+11|0]<<24);J[g+32>>2]=d;J[g+36>>2]=c;d=0;c=g- -64|0;o=J[c+4>>2];b:{if(!o){break b}l=J[c>>2];h=J[g+40>>2]^(J[g+36>>2]^(J[g+32>>2]^318)+239)+239;c=h&o-1;e=am(o);c:{if(e>>>0<=1){break c}c=h;if(c>>>0>>0){break c}c=(h>>>0)%(o>>>0)|0}u=l;l=c;c=J[u+(c<<2)>>2];if(!c){break b}c=J[c>>2];if(!c){break b}d:{if(e>>>0>=2){i=J[g+40>>2];p=J[g+36>>2];m=J[g+32>>2];while(1){e=J[c+4>>2];e:{if((e|0)!=(h|0)){if(e>>>0>=o>>>0){e=(e>>>0)%(o>>>0)|0}if((e|0)!=(l|0)){break b}break e}e=J[c+8>>2];f:{if((e|0)!=(m|0)){e=(e|0)==(m|0);break f}e=J[c+12>>2];if((e|0)!=(p|0)){e=(e|0)==(p|0);break f}e=(i|0)==J[c+16>>2]}if(e){break d}}c=J[c>>2];if(c){continue}break}break b}m=o-1|0;i=J[g+40>>2];o=J[g+36>>2];p=J[g+32>>2];while(1){e=J[c+4>>2];g:{if((e|0)!=(h|0)){if((l|0)!=(e&m)){break b}break g}e=J[c+8>>2];if((e|0)!=(p|0)){if((e|0)!=(p|0)){break g}break d}e=J[c+12>>2];if((e|0)!=(o|0)){if((e|0)!=(o|0)){break g}break d}if((i|0)==J[c+16>>2]){break d}}c=J[c>>2];if(c){continue}break}break b}d=c}h:{if(d){J[(t<<2)+f>>2]=J[d+20>>2];break h}J[g+8>>2]=J[g+40>>2];d=J[g+36>>2];J[g>>2]=J[g+32>>2];J[g+4>>2]=d;J[g+12>>2]=r;d=0;l=J[g+8>>2]^(J[g+4>>2]^(J[g>>2]^318)+239)+239;u=g;i:{j:{j=g- -64|0;f=J[j+4>>2];if(!f){break j}c=am(f);k:{if(c>>>0>=2){d=l;if(f>>>0<=d>>>0){d=(l>>>0)%(f>>>0)|0}k=J[J[j>>2]+(d<<2)>>2];if(!k){break j}if(c>>>0<2){break k}e=J[g+8>>2];i=J[g+4>>2];h=J[g>>2];while(1){k=J[k>>2];if(!k){break j}c=J[k+4>>2];if((c|0)!=(l|0)){if(c>>>0>=f>>>0){c=(c>>>0)%(f>>>0)|0}if((c|0)!=(d|0)){break j}}c=J[k+8>>2];l:{if((c|0)!=(h|0)){c=(c|0)==(h|0);break l}c=J[k+12>>2];if((c|0)!=(i|0)){c=(c|0)==(i|0);break l}c=(e|0)==J[k+16>>2]}if(!c){continue}break}d=0;break i}d=l&f-1;k=J[J[j>>2]+(d<<2)>>2];if(!k){break j}}h=f-1|0;e=J[g+8>>2];m=J[g+4>>2];i=J[g>>2];while(1){k=J[k>>2];if(!k){break j}c=J[k+4>>2];if((c|0)!=(l|0)&(c&h)!=(d|0)){break j}c=J[k+8>>2];m:{if((c|0)!=(i|0)){c=(c|0)==(i|0);break m}c=J[k+12>>2];if((c|0)!=(m|0)){c=(c|0)==(m|0);break m}c=(e|0)==J[k+16>>2]}if(!c){continue}break}d=0;break i}k=ll(24);J[k+16>>2]=J[g+8>>2];c=J[g+4>>2];J[k+8>>2]=J[g>>2];J[k+12>>2]=c;c=J[g+12>>2];J[k>>2]=0;J[k+4>>2]=l;J[k+20>>2]=c;q=Q(J[j+12>>2]+1>>>0);v=N[j+16>>2];n:{if(q>Q(v*Q(f>>>0))?0:f){break n}d=2;c=(f-1&f)!=0|f>>>0<3|f<<1;q=Q(W(Q(q/v)));o:{if(q=Q(0)){e=~~q>>>0;break o}e=0}c=c>>>0>e>>>0?c:e;p:{if((c|0)==1){break p}if(!(c&c-1)){d=c;break p}d=bl(c);f=J[j+4>>2]}q:{if(d>>>0<=f>>>0){if(d>>>0>=f>>>0){break q}e=f>>>0<3;q=Q(W(Q(Q(M[j+12>>2])/N[j+16>>2])));r:{if(q=Q(0)){c=~~q>>>0;break r}c=0}s:{t:{if(e){break t}if(am(f)>>>0>1){break t}c=c>>>0<2?c:1<<32-S(c-1|0);break s}c=bl(c)}d=c>>>0>>0?d:c;if(f>>>0<=d>>>0){break q}}c=0;h=0;i=d;u:{v:{w:{x:{if(d){if(i>>>0>=1073741824){break x}d=ll(i<<2);f=J[j>>2];J[j>>2]=d;if(f){fl(f)}J[j+4>>2]=i;if(i>>>0>=4){d=i&-4;f=0;while(1){e=c<<2;J[e+J[j>>2]>>2]=0;J[J[j>>2]+(e|4)>>2]=0;J[J[j>>2]+(e|8)>>2]=0;J[J[j>>2]+(e|12)>>2]=0;c=c+4|0;f=f+4|0;if((d|0)!=(f|0)){continue}break}}d=i&3;if(d){while(1){J[J[j>>2]+(c<<2)>>2]=0;c=c+1|0;h=h+1|0;if((d|0)!=(h|0)){continue}break}}f=J[j+8>>2];if(!f){break u}d=j+8|0;e=J[f+4>>2];c=am(i);if(c>>>0<2){break w}e=e>>>0>=i>>>0?(e>>>0)%(i>>>0)|0:e;J[J[j>>2]+(e<<2)>>2]=d;d=J[f>>2];if(!d){break u}if(c>>>0<=1){break v}while(1){h=J[d+4>>2];if(i>>>0<=h>>>0){h=(h>>>0)%(i>>>0)|0}y:{if((e|0)==(h|0)){f=d;break y}c=d;o=h<<2;m=o+J[j>>2]|0;if(!J[m>>2]){J[m>>2]=f;f=d;e=h;break y}while(1){h=c;c=J[c>>2];if(c){p=J[d+8>>2];m=J[c+8>>2];z:{if((p|0)!=(m|0)){p=(m|0)==(p|0);break z}p=J[d+12>>2];m=J[c+12>>2];if((p|0)!=(m|0)){p=(m|0)==(p|0);break z}p=J[d+16>>2]==J[c+16>>2]}if(p){continue}}break}J[f>>2]=c;J[h>>2]=J[J[o+J[j>>2]>>2]>>2];J[J[o+J[j>>2]>>2]>>2]=d}d=J[f>>2];if(d){continue}break}break u}d=J[j>>2];J[j>>2]=0;if(d){fl(d)}J[j+4>>2]=0;break u}$a();C()}e=i-1&e;J[J[j>>2]+(e<<2)>>2]=d;d=J[f>>2];if(!d){break u}}p=i-1|0;while(1){h=p&J[d+4>>2];A:{if((h|0)==(e|0)){f=d;break A}c=d;o=h<<2;i=o+J[j>>2]|0;if(J[i>>2]){while(1){h=c;c=J[c>>2];if(c){m=J[d+8>>2];i=J[c+8>>2];B:{if((m|0)!=(i|0)){i=(i|0)==(m|0);break B}m=J[d+12>>2];i=J[c+12>>2];if((m|0)!=(i|0)){i=(i|0)==(m|0);break B}i=J[d+16>>2]==J[c+16>>2]}if(i){continue}}break}J[f>>2]=c;J[h>>2]=J[J[o+J[j>>2]>>2]>>2];J[J[o+J[j>>2]>>2]>>2]=d;break A}J[i>>2]=f;f=d;e=h}d=J[f>>2];if(d){continue}break}}}f=J[j+4>>2];d=f-1|0;if(!(d&f)){d=d&l;break n}if(f>>>0>l>>>0){d=l;break n}d=(l>>>0)%(f>>>0)|0}c=J[j>>2]+(d<<2)|0;d=J[c>>2];C:{D:{if(!d){d=j+8|0;J[k>>2]=J[d>>2];J[j+8>>2]=k;J[c>>2]=d;d=J[k>>2];if(!d){break C}d=J[d+4>>2];c=f-1|0;E:{if(!(c&f)){d=c&d;break E}if(d>>>0>>0){break E}d=(d>>>0)%(f>>>0)|0}d=J[j>>2]+(d<<2)|0;break D}J[k>>2]=J[d>>2]}J[d>>2]=k}J[j+12>>2]=J[j+12>>2]+1;d=1}H[u+92|0]=d;J[g+88>>2]=k;d=J[a+40>>2];lk(J[J[a>>2]>>2]+P(d,r)|0,g+48|0,d);f=J[g+16>>2];J[f+(t<<2)>>2]=r;r=r+1|0}d=t+1|0;n=d?n:n+1|0;t=d;c=J[a+80>>2];if(!n&c>>>0>d>>>0){continue}break}if((c|0)!=(r|0)){F:{if(!K[a+84|0]){b=J[a+72>>2];h=J[a+68>>2];if((b|0)==(h|0)){break F}b=b-h>>2;c=b>>>0<=1?1:b;e=c&3;d=0;b=0;if(c-1>>>0>=3){n=c&-4;while(1){l=b<<2;c=l+h|0;J[c>>2]=J[(J[c>>2]<<2)+f>>2];c=h+(l|4)|0;J[c>>2]=J[(J[c>>2]<<2)+f>>2];c=h+(l|8)|0;J[c>>2]=J[(J[c>>2]<<2)+f>>2];c=h+(l|12)|0;J[c>>2]=J[(J[c>>2]<<2)+f>>2];b=b+4|0;s=s+4|0;if((n|0)!=(s|0)){continue}break}}if(!e){break F}while(1){c=h+(b<<2)|0;J[c>>2]=J[(J[c>>2]<<2)+f>>2];b=b+1|0;d=d+1|0;if((e|0)!=(d|0)){continue}break}break F}H[a+84|0]=0;n=a+68|0;b=J[a+68>>2];d=J[a+72>>2]-b>>2;G:{if(d>>>0>>0){ub(n,c-d|0,2184);c=J[a+80>>2];break G}if(c>>>0>=d>>>0){break G}J[a+72>>2]=b+(c<<2)}if(!c){break F}h=J[n>>2];d=0;b=0;if(c>>>0>=4){e=c&-4;while(1){l=b<<2;J[l+h>>2]=J[f+l>>2];n=l|4;J[n+h>>2]=J[f+n>>2];n=l|8;J[n+h>>2]=J[f+n>>2];n=l|12;J[n+h>>2]=J[f+n>>2];b=b+4|0;s=s+4|0;if((e|0)!=(s|0)){continue}break}}n=c&3;if(!n){break F}while(1){c=b<<2;J[c+h>>2]=J[c+f>>2];b=b+1|0;d=d+1|0;if((n|0)!=(d|0)){continue}break}}J[a+80>>2]=r}fl(f)}b=J[g+72>>2];if(b){while(1){a=J[b>>2];fl(b);b=a;if(b){continue}break}}a=J[g+64>>2];J[g+64>>2]=0;if(a){fl(a)}ia=g+96|0;return r}La();C()}function nb(a,b){var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=Q(0),q=0,r=0,s=0,t=Q(0);g=ia+-64|0;ia=g;J[g+40>>2]=0;J[g+44>>2]=0;J[g+32>>2]=0;J[g+36>>2]=0;J[g+48>>2]=1065353216;d=J[a+80>>2];J[g+16>>2]=0;J[g+8>>2]=0;J[g+12>>2]=0;a:{if(d){if(d>>>0>=1073741824){break a}c=d<<2;h=ll(c);J[g+8>>2]=h;d=c+h|0;J[g+16>>2]=d;nk(h,0,c);J[g+12>>2]=d;while(1){d=J[J[b>>2]>>2];e=J[b+48>>2]+Zl(J[b+40>>2],J[b+44>>2],s,0)|0;d=d+e|0;d=K[d|0]|K[d+1|0]<<8|(K[d+2|0]<<16|K[d+3|0]<<24);J[g+24>>2]=d;J[g+28>>2]=d;d=0;o=J[g+36>>2];b:{if(!o){break b}j=J[g+32>>2];l=K[g+27|0]^(K[g+26|0]^(K[g+25|0]^(K[g+24|0]^318)+239)+239)+239;c=l&o-1;e=am(o);c:{if(e>>>0<=1){break c}c=l;if(c>>>0>>0){break c}c=(l>>>0)%(o>>>0)|0}m=j;j=c;c=J[m+(c<<2)>>2];if(!c){break b}c=J[c>>2];if(!c){break b}d:{if(e>>>0>=2){f=K[g+24|0];n=K[g+25|0];i=K[g+26|0];m=K[g+27|0];while(1){e=J[c+4>>2];e:{if((e|0)!=(l|0)){if(e>>>0>=o>>>0){e=(e>>>0)%(o>>>0)|0}if((e|0)!=(j|0)){break b}break e}e=K[c+8|0];f:{if((e|0)!=(f|0)){e=(e|0)==(f|0);break f}e=K[c+9|0];if((e|0)!=(n|0)){e=(e|0)==(n|0);break f}e=K[c+10|0];if((e|0)!=(i|0)){e=(e|0)==(i|0);break f}e=(m|0)==K[c+11|0]}if(e){break d}}c=J[c>>2];if(c){continue}break}break b}i=o-1|0;o=K[g+24|0];f=K[g+25|0];n=K[g+26|0];m=K[g+27|0];while(1){e=J[c+4>>2];g:{if((e|0)!=(l|0)){if((j|0)!=(e&i)){break b}break g}e=K[c+8|0];if((e|0)!=(o|0)){if((e|0)!=(o|0)){break g}break d}e=K[c+9|0];if((e|0)!=(f|0)){if((e|0)!=(f|0)){break g}break d}e=K[c+10|0];if((e|0)!=(n|0)){if((e|0)!=(n|0)){break g}break d}if((m|0)==K[c+11|0]){break d}}c=J[c>>2];if(c){continue}break}break b}d=c}h:{if(d){J[(s<<2)+h>>2]=J[d+12>>2];break h}J[g+4>>2]=r;J[g>>2]=J[g+24>>2];d=0;l=K[g+3|0]^(K[g+2|0]^(K[g+1|0]^(K[g|0]^318)+239)+239)+239;i:{j:{k=g+32|0;f=J[k+4>>2];if(!f){break j}c=am(f);k:{if(c>>>0>=2){d=l;if(f>>>0<=d>>>0){d=(l>>>0)%(f>>>0)|0}h=J[J[k>>2]+(d<<2)>>2];if(!h){break j}if(c>>>0<2){break k}i=K[g|0];m=K[g+1|0];j=K[g+2|0];e=K[g+3|0];while(1){h=J[h>>2];if(!h){break j}c=J[h+4>>2];if((c|0)!=(l|0)){if(c>>>0>=f>>>0){c=(c>>>0)%(f>>>0)|0}if((c|0)!=(d|0)){break j}}c=K[h+8|0];l:{if((c|0)!=(i|0)){c=(c|0)==(i|0);break l}c=K[h+9|0];if((c|0)!=(m|0)){c=(c|0)==(m|0);break l}c=K[h+10|0];if((c|0)!=(j|0)){c=(c|0)==(j|0);break l}c=(e|0)==K[h+11|0]}if(!c){continue}break}d=0;break i}d=l&f-1;h=J[J[k>>2]+(d<<2)>>2];if(!h){break j}}j=f-1|0;n=K[g|0];i=K[g+1|0];m=K[g+2|0];e=K[g+3|0];while(1){h=J[h>>2];if(!h){break j}c=J[h+4>>2];if((c|0)!=(l|0)&(c&j)!=(d|0)){break j}c=K[h+8|0];m:{if((c|0)!=(n|0)){c=(c|0)==(n|0);break m}c=K[h+9|0];if((c|0)!=(i|0)){c=(c|0)==(i|0);break m}c=K[h+10|0];if((c|0)!=(m|0)){c=(c|0)==(m|0);break m}c=(e|0)==K[h+11|0]}if(!c){continue}break}d=0;break i}h=ll(16);J[h+8>>2]=J[g>>2];c=J[g+4>>2];J[h+4>>2]=l;J[h+12>>2]=c;J[h>>2]=0;t=Q(J[k+12>>2]+1>>>0);p=N[k+16>>2];n:{if(t>Q(p*Q(f>>>0))?0:f){break n}d=2;c=(f-1&f)!=0|f>>>0<3|f<<1;p=Q(W(Q(t/p)));o:{if(p=Q(0)){e=~~p>>>0;break o}e=0}c=c>>>0>e>>>0?c:e;p:{if((c|0)==1){break p}if(!(c&c-1)){d=c;break p}d=bl(c);f=J[k+4>>2]}q:{if(d>>>0<=f>>>0){if(d>>>0>=f>>>0){break q}e=f>>>0<3;p=Q(W(Q(Q(M[k+12>>2])/N[k+16>>2])));r:{if(p=Q(0)){c=~~p>>>0;break r}c=0}s:{t:{if(e){break t}if(am(f)>>>0>1){break t}c=c>>>0<2?c:1<<32-S(c-1|0);break s}c=bl(c)}d=c>>>0>>0?d:c;if(f>>>0<=d>>>0){break q}}e=0;m=0;i=d;u:{v:{w:{x:{if(d){if(i>>>0>=1073741824){break x}d=ll(i<<2);c=J[k>>2];J[k>>2]=d;if(c){fl(c)}J[k+4>>2]=i;if(i>>>0>=4){d=i&-4;c=0;while(1){j=e<<2;J[j+J[k>>2]>>2]=0;J[J[k>>2]+(j|4)>>2]=0;J[J[k>>2]+(j|8)>>2]=0;J[J[k>>2]+(j|12)>>2]=0;e=e+4|0;c=c+4|0;if((d|0)!=(c|0)){continue}break}}d=i&3;if(d){while(1){J[J[k>>2]+(e<<2)>>2]=0;e=e+1|0;m=m+1|0;if((d|0)!=(m|0)){continue}break}}c=J[k+8>>2];if(!c){break u}d=k+8|0;j=J[c+4>>2];e=am(i);if(e>>>0<2){break w}j=j>>>0>=i>>>0?(j>>>0)%(i>>>0)|0:j;J[J[k>>2]+(j<<2)>>2]=d;d=J[c>>2];if(!d){break u}if(e>>>0<=1){break v}while(1){m=J[d+4>>2];if(i>>>0<=m>>>0){m=(m>>>0)%(i>>>0)|0}y:{if((j|0)==(m|0)){c=d;break y}e=d;o=m<<2;n=o+J[k>>2]|0;if(!J[n>>2]){J[n>>2]=c;c=d;j=m;break y}while(1){m=e;e=J[e>>2];if(e){f=K[d+8|0];n=K[e+8|0];z:{if((f|0)!=(n|0)){f=(f|0)==(n|0);break z}f=K[d+9|0];n=K[e+9|0];if((f|0)!=(n|0)){f=(f|0)==(n|0);break z}f=K[d+10|0];n=K[e+10|0];if((f|0)!=(n|0)){f=(f|0)==(n|0);break z}f=K[d+11|0]==K[e+11|0]}if(f){continue}}break}J[c>>2]=e;J[m>>2]=J[J[o+J[k>>2]>>2]>>2];J[J[o+J[k>>2]>>2]>>2]=d}d=J[c>>2];if(d){continue}break}break u}d=J[k>>2];J[k>>2]=0;if(d){fl(d)}J[k+4>>2]=0;break u}$a();C()}j=i-1&j;J[J[k>>2]+(j<<2)>>2]=d;d=J[c>>2];if(!d){break u}}f=i-1|0;while(1){m=f&J[d+4>>2];A:{if((m|0)==(j|0)){c=d;break A}e=d;o=m<<2;i=o+J[k>>2]|0;if(J[i>>2]){while(1){m=e;e=J[e>>2];if(e){n=K[d+8|0];i=K[e+8|0];B:{if((n|0)!=(i|0)){i=(i|0)==(n|0);break B}n=K[d+9|0];i=K[e+9|0];if((n|0)!=(i|0)){i=(i|0)==(n|0);break B}n=K[d+10|0];i=K[e+10|0];if((n|0)!=(i|0)){i=(i|0)==(n|0);break B}i=K[d+11|0]==K[e+11|0]}if(i){continue}}break}J[c>>2]=e;J[m>>2]=J[J[o+J[k>>2]>>2]>>2];J[J[o+J[k>>2]>>2]>>2]=d;break A}J[i>>2]=c;c=d;j=m}d=J[c>>2];if(d){continue}break}}}f=J[k+4>>2];d=f-1|0;if(!(d&f)){d=d&l;break n}if(f>>>0>l>>>0){d=l;break n}d=(l>>>0)%(f>>>0)|0}c=J[k>>2]+(d<<2)|0;d=J[c>>2];C:{D:{if(!d){d=k+8|0;J[h>>2]=J[d>>2];J[k+8>>2]=h;J[c>>2]=d;d=J[h>>2];if(!d){break C}d=J[d+4>>2];c=f-1|0;E:{if(!(c&f)){d=c&d;break E}if(d>>>0>>0){break E}d=(d>>>0)%(f>>>0)|0}d=J[k>>2]+(d<<2)|0;break D}J[h>>2]=J[d>>2]}J[d>>2]=h}J[k+12>>2]=J[k+12>>2]+1;d=1}H[g+60|0]=d;J[g+56>>2]=h;d=J[a+40>>2];lk(J[J[a>>2]>>2]+P(d,r)|0,g+28|0,d);h=J[g+8>>2];J[h+(s<<2)>>2]=r;r=r+1|0}d=s+1|0;q=d?q:q+1|0;s=d;c=J[a+80>>2];if(!q&c>>>0>d>>>0){continue}break}if((c|0)!=(r|0)){F:{if(!K[a+84|0]){b=J[a+72>>2];l=J[a+68>>2];if((b|0)==(l|0)){break F}b=b-l>>2;c=b>>>0<=1?1:b;q=c&3;d=0;b=0;if(c-1>>>0>=3){e=c&-4;f=0;while(1){j=b<<2;c=j+l|0;J[c>>2]=J[(J[c>>2]<<2)+h>>2];c=l+(j|4)|0;J[c>>2]=J[(J[c>>2]<<2)+h>>2];c=l+(j|8)|0;J[c>>2]=J[(J[c>>2]<<2)+h>>2];c=l+(j|12)|0;J[c>>2]=J[(J[c>>2]<<2)+h>>2];b=b+4|0;f=f+4|0;if((e|0)!=(f|0)){continue}break}}if(!q){break F}while(1){c=l+(b<<2)|0;J[c>>2]=J[(J[c>>2]<<2)+h>>2];b=b+1|0;d=d+1|0;if((q|0)!=(d|0)){continue}break}break F}H[a+84|0]=0;e=a+68|0;b=J[a+68>>2];d=J[a+72>>2]-b>>2;G:{if(d>>>0>>0){ub(e,c-d|0,2184);c=J[a+80>>2];break G}if(c>>>0>=d>>>0){break G}J[a+72>>2]=b+(c<<2)}if(!c){break F}l=J[e>>2];d=0;b=0;if(c>>>0>=4){q=c&-4;f=0;while(1){j=b<<2;J[j+l>>2]=J[h+j>>2];e=j|4;J[e+l>>2]=J[e+h>>2];e=j|8;J[e+l>>2]=J[e+h>>2];e=j|12;J[e+l>>2]=J[e+h>>2];b=b+4|0;f=f+4|0;if((q|0)!=(f|0)){continue}break}}e=c&3;if(!e){break F}while(1){c=b<<2;J[c+l>>2]=J[c+h>>2];b=b+1|0;d=d+1|0;if((e|0)!=(d|0)){continue}break}}J[a+80>>2]=r}fl(h)}b=J[g+40>>2];if(b){while(1){a=J[b>>2];fl(b);b=a;if(b){continue}break}}a=J[g+32>>2];J[g+32>>2]=0;if(a){fl(a)}ia=g- -64|0;return r}La();C()}function Wb(a,b,c,d,e){var f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,D=0,E=0,F=0,G=0,H=0,I=0,K=0,L=0,N=0,O=0;t=ia-32|0;ia=t;J[a>>2]=J[d>>2];d=J[c>>2]-J[b>>2]|0;J[a+4>>2]=d;n=J[e+20>>2];if(!J[e+16>>2]&(n|0)<=0|(n|0)<0){d=a+4|0;Ea(e,J[e+4>>2],a,d);n=J[e+20>>2];if(!J[e+16>>2]&(n|0)<=0|(n|0)<0){Ea(e,J[e+4>>2],d,a+8|0)}d=J[d>>2]}if(d){E=a+12|0;Ee(E);F=a+44|0;d=F;J[d+12>>2]=0;J[d+16>>2]=0;J[d+4>>2]=J[d>>2];G=a- -64|0;d=G;J[d+12>>2]=0;J[d+16>>2]=0;J[d+4>>2]=J[d>>2];H=a+84|0;d=H;J[d+12>>2]=0;J[d+16>>2]=0;J[d+4>>2]=J[d>>2];J[t+24>>2]=J[b+8>>2];d=J[b+4>>2];J[t+16>>2]=J[b>>2];J[t+20>>2]=d;J[t+8>>2]=J[c+8>>2];b=J[c+4>>2];J[t>>2]=J[c>>2];J[t+4>>2]=b;b=0;g=ia-32|0;ia=g;d=a;h=J[a+8>>2];J[g+16>>2]=0;J[g+8>>2]=0;J[g+12>>2]=0;a:{b:{if(h){if(h>>>0>=1073741824){break b}a=h<<2;b=ll(a);J[g+8>>2]=b;f=a+b|0;J[g+16>>2]=f;nk(b,0,a);J[g+12>>2]=f}a=J[d+140>>2];c=J[a>>2];if(c){J[a+4>>2]=c;fl(c);h=J[d+8>>2];f=J[g+12>>2];b=J[g+8>>2]}J[a+4>>2]=f;J[a>>2]=b;J[a+8>>2]=J[g+16>>2];b=0;J[g+16>>2]=0;J[g+8>>2]=0;J[g+12>>2]=0;a=0;c:{if(h){if(h>>>0>=1073741824){break c}c=h<<2;a=ll(c);J[g+8>>2]=a;b=a+c|0;J[g+16>>2]=b;nk(a,0,c);J[g+12>>2]=b}c=J[d+152>>2];n=J[c>>2];if(n){J[c+4>>2]=n;fl(n);b=J[g+12>>2];a=J[g+8>>2]}J[c+4>>2]=b;J[c>>2]=a;J[c+8>>2]=J[g+16>>2];x=J[t+20>>2];v=J[t+24>>2];z=J[t+4>>2];A=J[t+8>>2];b=J[t>>2];c=J[t+16>>2];J[g+24>>2]=0;J[g+28>>2]=0;J[g+16>>2]=0;J[g+20>>2]=0;J[g+8>>2]=0;J[g+12>>2]=0;fc(g+8|0);a=J[g+24>>2]+J[g+28>>2]|0;n=(a>>>0)/113|0;a=J[J[g+12>>2]+(n<<2)>>2]+P(a-P(n,113)|0,36)|0;J[a+32>>2]=0;J[a+28>>2]=b-c;J[a+24>>2]=0;J[a+16>>2]=z;J[a+20>>2]=A;J[a+12>>2]=b;J[a+4>>2]=x;J[a+8>>2]=v;J[a>>2]=c;h=J[g+28>>2]+1|0;J[g+28>>2]=h;if(h){K=v&-4;I=v&3;L=d+44|0;l=d+12|0;N=d+84|0;O=v>>>0<4;while(1){b=J[g+12>>2];o=J[g+24>>2];m=h-1|0;a=o+m|0;c=(a>>>0)/113|0;a=J[b+(c<<2)>>2]+P(a-P(c,113)|0,36)|0;D=J[a+32>>2];f=J[a+24>>2];n=J[a+12>>2];c=J[a>>2];J[g+28>>2]=m;a=J[g+16>>2];if((((a|0)!=(b|0)?P(a-b>>2,113)-1|0:0)-(h+o|0)|0)+1>>>0>=226){fl(J[a-4>>2]);J[g+16>>2]=J[g+16>>2]-4}b=J[d>>2];h=(f|0)!=(J[d+8>>2]-1|0)?f+1|0:0;o=h<<2;B=P(D,12);m=B+J[d+152>>2]|0;f=J[o+J[m>>2]>>2];d:{e:{if((b|0)==(f|0)){break e}f:{g:{p=n-c|0;if(p>>>0<=2){f=J[d+128>>2];J[f>>2]=h;b=1;a=J[d+8>>2];if(a>>>0>1){break g}break f}m=J[d+140>>2];a=m+B|0;j=m;m=B+12|0;Ta(j+m|0,J[a>>2],J[a+4>>2]);a=J[m+J[d+140>>2]>>2]+o|0;m=J[a>>2]+(1<>2]=m;a=c;h:{if((n|0)==(a|0)){break h}q=J[x+24>>2];a=n;b=c;if(!v){if(m>>>0>M[o+q>>2]){break h}while(1){a=a-1|0;if((b|0)==(a|0)){a=b;break h}if(m>>>0<=M[(J[z+24>>2]+o|0)+(P(a,A)<<2)>>2]){continue}b=b+1|0;if((b|0)!=(a|0)){continue}break}break h}while(1){r=q+(P(b,v)<<2)|0;if(m>>>0>M[r+o>>2]){b=b+1|0;if((b|0)!=(a|0)){continue}break h}while(1){a=a-1|0;if((b|0)==(a|0)){a=b;break h}i=J[z+24>>2]+(P(a,A)<<2)|0;if(m>>>0<=M[i+o>>2]){continue}break}s=0;f=0;u=0;if(!O){while(1){k=f<<2;j=k+r|0;w=J[j>>2];y=j;j=i+k|0;J[y>>2]=J[j>>2];J[j>>2]=w;j=k|4;w=j+r|0;y=J[w>>2];j=i+j|0;J[w>>2]=J[j>>2];J[j>>2]=y;j=k|8;w=j+r|0;y=J[w>>2];j=i+j|0;J[w>>2]=J[j>>2];J[j>>2]=y;k=k|12;j=k+r|0;w=J[j>>2];k=i+k|0;J[j>>2]=J[k>>2];J[k>>2]=w;f=f+4|0;u=u+4|0;if((K|0)!=(u|0)){continue}break}}if(I){while(1){k=f<<2;u=k+r|0;j=J[u>>2];k=i+k|0;J[u>>2]=J[k>>2];J[k>>2]=j;f=f+1|0;s=s+1|0;if((I|0)!=(s|0)){continue}break}}b=b+1|0;if((b|0)!=(a|0)){continue}break}}m=a-c|0;r=n-a|0;if((m|0)!=(r|0)){gc(N,m>>>0>>0)}b=J[l>>2];f=J[b+12>>2];j=J[b+8>>2];i=(p>>>1|0)-(m>>>0>>0?m:r)|0;i=i<<8&16711680|i<<24|(i>>>8&65280|i>>>24);i=i>>>4&252645135|(i&252645135)<<4;i=i>>>2&858993459|(i&858993459)<<2;s=i>>>1&1431655765|(i&1431655765)<<1;i=S(p)^31;q=32-i|0;k=s>>>q|0;s=am(k);p=j+s|0;J[b+8>>2]=p;J[b+12>>2]=p>>>0>>0?f+1|0:f;f=i-s|0;s=f;p=f+J[b>>2]|0;f=J[b+4>>2]+(f>>31)|0;J[b>>2]=p;J[b+4>>2]=p>>>0>>0?f+1|0:f;i:{j:{k:{l:{b=J[l+28>>2];s=32-b|0;m:{if((s|0)>=(i|0)){f=b+i|0;J[l+28>>2]=f;p=J[l+24>>2]&(-1>>>q<>2]=p;if((f|0)!=32){break i}b=J[l+16>>2];if((b|0)!=J[l+20>>2]){J[b>>2]=p;J[l+16>>2]=b+4;b=0;f=0;break m}i=J[l+12>>2];f=b-i|0;q=f>>2;b=q+1|0;if(b>>>0>=1073741824){break l}k=f>>1;k=f>>>0>=2147483644?1073741823:b>>>0>>0?k:b;if(k){if(k>>>0>=1073741824){break k}b=ll(k<<2)}else{b=0}q=b+(q<<2)|0;J[q>>2]=p;if((f|0)>0){lk(b,i,f)}J[l+20>>2]=b+(k<<2);J[l+16>>2]=q+4;J[l+12>>2]=b;b=0;if(!i){f=0;break m}fl(i);f=0;break m}u=J[l+24>>2]&(-1<>2]=u;b=J[l+16>>2];n:{if((b|0)!=J[l+20>>2]){J[b>>2]=u;J[l+16>>2]=b+4;break n}p=J[l+12>>2];f=b-p|0;j=f>>2;b=j+1|0;if(b>>>0>=1073741824){break j}q=f>>1;q=f>>>0>=2147483644?1073741823:b>>>0>>0?q:b;if(q){if(q>>>0>=1073741824){break k}b=ll(q<<2)}else{b=0}j=b+(j<<2)|0;J[j>>2]=u;if((f|0)>0){lk(b,p,f)}J[l+20>>2]=b+(q<<2);J[l+16>>2]=j+4;J[l+12>>2]=b;if(!p){break n}fl(p)}f=i-s|0;b=-1>>>32-f&k>>>s}J[l+28>>2]=f;J[l+24>>2]=b;break i}La();C()}$a();C()}La();C()}j=o;b=J[d+152>>2];f=b+B|0;o=J[f>>2];i=j+o|0;J[i>>2]=J[i>>2]+1;i=D+1|0;Ta(b+P(i,12)|0,o,J[f+4>>2]);if((a|0)!=(c|0)){b=J[g+28>>2]+J[g+24>>2]|0;o=J[g+16>>2];f=J[g+12>>2];if((b|0)==(((f|0)!=(o|0)?P(o-f>>2,113)-1|0:0)|0)){fc(g+8|0);f=J[g+12>>2];b=J[g+24>>2]+J[g+28>>2]|0}j=f;f=(b>>>0)/113|0;b=J[j+(f<<2)>>2]+P(b-P(f,113)|0,36)|0;J[b+32>>2]=D;J[b+28>>2]=m;J[b+24>>2]=h;J[b+16>>2]=x;J[b+12>>2]=a;J[b+4>>2]=x;J[b+8>>2]=v;J[b>>2]=c;J[b+20>>2]=v;J[g+28>>2]=J[g+28>>2]+1}if((a|0)==(n|0)){break e}f=J[g+28>>2]+J[g+24>>2]|0;c=J[g+16>>2];b=J[g+12>>2];if((f|0)==(((b|0)!=(c|0)?P(c-b>>2,113)-1|0:0)|0)){fc(g+8|0);f=J[g+24>>2]+J[g+28>>2]|0;c=J[g+12>>2]}else{c=b}b=(f>>>0)/113|0;b=J[c+(b<<2)>>2]+P(f-P(b,113)|0,36)|0;J[b+32>>2]=i;J[b+28>>2]=r;J[b+24>>2]=h;J[b+16>>2]=z;J[b+20>>2]=A;J[b+12>>2]=n;J[b+4>>2]=x;J[b>>2]=a;J[b+8>>2]=v;h=J[g+28>>2]+1|0;J[g+28>>2]=h;break d}while(1){h=(a-1|0)!=(h|0)?h+1|0:0;J[f+(b<<2)>>2]=h;a=J[d+8>>2];b=b+1|0;if(a>>>0>b>>>0){continue}break}}if(!a|(c|0)==(n|0)){break e}f=0;b=1;while(1){h=0;o:{if(!b){b=0;break o}n=J[x+24>>2]+(P(J[x+4>>2],c+f|0)<<2)|0;while(1){b=J[d>>2];o=J[J[d+128>>2]+(h<<2)>>2]<<2;r=J[o+J[m>>2]>>2];if((b|0)!=(r|0)){hc(L,b-r|0,J[n+o>>2]);a=J[d+8>>2]}b=a;h=h+1|0;if(b>>>0>h>>>0){continue}break}}f=f+1|0;if((p|0)!=(f|0)){continue}break}}h=J[g+28>>2]}if(h){continue}break}}J[g+28>>2]=0;c=J[g+16>>2];h=J[g+12>>2];a=c-h|0;if(a>>>0>=9){while(1){fl(J[h>>2]);h=J[g+12>>2]+4|0;J[g+12>>2]=h;c=J[g+16>>2];a=c-h|0;if(a>>>0>8){continue}break}}b=56;p:{switch((a>>>2|0)-1|0){case 1:b=113;case 0:J[g+24>>2]=b;break;default:break p}}q:{if((c|0)==(h|0)){break q}while(1){fl(J[h>>2]);h=h+4|0;if((h|0)!=(c|0)){continue}break}a=J[g+16>>2];b=J[g+12>>2];if((a|0)==(b|0)){break q}J[g+16>>2]=a+((b-a|0)+3&-4)}a=J[g+8>>2];if(a){fl(a)}ia=g+32|0;break a}La();C()}La();C()}Ge(E,e);Be(F,e);Be(G,e);Be(H,e)}ia=t+32|0;return 1}function qb(a,b){var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=Q(0),r=0,s=0,t=Q(0);f=ia-80|0;ia=f;J[f+56>>2]=0;J[f+60>>2]=0;J[f+48>>2]=0;J[f+52>>2]=0;J[f+64>>2]=1065353216;d=J[a+80>>2];J[f+24>>2]=0;J[f+16>>2]=0;J[f+20>>2]=0;a:{if(d){if(d>>>0>=1073741824){break a}c=d<<2;n=ll(c);J[f+16>>2]=n;d=c+n|0;J[f+24>>2]=d;nk(n,0,c);J[f+20>>2]=d;while(1){d=J[J[b>>2]>>2];e=J[b+48>>2]+Zl(J[b+40>>2],J[b+44>>2],s,0)|0;c=d+e|0;I[f+44>>1]=K[c+4|0]|K[c+5|0]<<8;J[f+40>>2]=K[c|0]|K[c+1|0]<<8|(K[c+2|0]<<16|K[c+3|0]<<24);d=K[c|0]|K[c+1|0]<<8|(K[c+2|0]<<16|K[c+3|0]<<24);I[f+36>>1]=K[c+4|0]|K[c+5|0]<<8;J[f+32>>2]=d;d=0;o=J[f+52>>2];b:{if(!o){break b}h=J[f+48>>2];l=L[f+36>>1]^(L[f+34>>1]^(L[f+32>>1]^318)+239)+239;c=l&o+262143;e=am(o);c:{if(e>>>0<=1){break c}c=l;if(c>>>0>>0){break c}c=(l>>>0)%(o>>>0)|0}g=h;h=c;c=J[g+(c<<2)>>2];if(!c){break b}c=J[c>>2];if(!c){break b}d:{if(e>>>0>=2){m=L[f+32>>1];i=L[f+34>>1];g=L[f+36>>1];while(1){e=J[c+4>>2];e:{if((e|0)!=(l|0)){if(e>>>0>=o>>>0){e=(e>>>0)%(o>>>0)|0}if((e|0)!=(h|0)){break b}break e}e=L[c+8>>1];f:{if((e|0)!=(m|0)){e=(e|0)==(m|0);break f}e=L[c+10>>1];if((e|0)!=(i|0)){e=(e|0)==(i|0);break f}e=(g|0)==L[c+12>>1]}if(e){break d}}c=J[c>>2];if(c){continue}break}break b}i=o-1|0;o=L[f+32>>1];m=L[f+34>>1];g=L[f+36>>1];while(1){e=J[c+4>>2];g:{if((e|0)!=(l|0)){if((h|0)!=(e&i)){break b}break g}e=L[c+8>>1];if((e|0)!=(o|0)){if((e|0)!=(o|0)){break g}break d}e=L[c+10>>1];if((e|0)!=(m|0)){if((e|0)!=(m|0)){break g}break d}if((g|0)==L[c+12>>1]){break d}}c=J[c>>2];if(c){continue}break}break b}d=c}h:{if(d){J[(s<<2)+n>>2]=J[d+16>>2];break h}I[f+4>>1]=L[f+36>>1];J[f>>2]=J[f+32>>2];J[f+8>>2]=r;d=0;l=L[f+4>>1]^(L[f+2>>1]^(L[f>>1]^318)+239)+239;i:{j:{j=f+48|0;e=J[j+4>>2];if(!e){break j}c=am(e);k:{if(c>>>0>=2){d=l;if(e>>>0<=d>>>0){d=(l>>>0)%(e>>>0)|0}k=J[J[j>>2]+(d<<2)>>2];if(!k){break j}if(c>>>0<2){break k}i=L[f>>1];g=L[f+2>>1];h=L[f+4>>1];while(1){k=J[k>>2];if(!k){break j}c=J[k+4>>2];if((c|0)!=(l|0)){if(c>>>0>=e>>>0){c=(c>>>0)%(e>>>0)|0}if((c|0)!=(d|0)){break j}}c=L[k+8>>1];l:{if((c|0)!=(i|0)){c=(c|0)==(i|0);break l}c=L[k+10>>1];if((c|0)!=(g|0)){c=(c|0)==(g|0);break l}c=(h|0)==L[k+12>>1]}if(!c){continue}break}d=0;break i}d=l&e+262143;k=J[J[j>>2]+(d<<2)>>2];if(!k){break j}}g=e-1|0;m=L[f>>1];i=L[f+2>>1];h=L[f+4>>1];while(1){k=J[k>>2];if(!k){break j}c=J[k+4>>2];if((c|0)!=(l|0)&(c&g)!=(d|0)){break j}c=L[k+8>>1];m:{if((c|0)!=(m|0)){c=(c|0)==(m|0);break m}c=L[k+10>>1];if((c|0)!=(i|0)){c=(c|0)==(i|0);break m}c=(h|0)==L[k+12>>1]}if(!c){continue}break}d=0;break i}k=ll(20);I[k+12>>1]=L[f+4>>1];J[k+8>>2]=J[f>>2];c=J[f+8>>2];J[k>>2]=0;J[k+4>>2]=l;J[k+16>>2]=c;q=Q(J[j+12>>2]+1>>>0);t=N[j+16>>2];n:{if(q>Q(t*Q(e>>>0))?0:e){break n}d=2;c=(e-1&e)!=0|e>>>0<3|e<<1;q=Q(W(Q(q/t)));o:{if(q=Q(0)){h=~~q>>>0;break o}h=0}c=c>>>0>h>>>0?c:h;p:{if((c|0)==1){break p}if(!(c&c-1)){d=c;break p}d=bl(c);e=J[j+4>>2]}q:{if(d>>>0<=e>>>0){if(d>>>0>=e>>>0){break q}h=e>>>0<3;q=Q(W(Q(Q(M[j+12>>2])/N[j+16>>2])));r:{if(q=Q(0)){c=~~q>>>0;break r}c=0}s:{t:{if(h){break t}if(am(e)>>>0>1){break t}c=c>>>0<2?c:1<<32-S(c-1|0);break s}c=bl(c)}d=c>>>0>>0?d:c;if(e>>>0<=d>>>0){break q}}c=0;g=0;i=d;u:{v:{w:{x:{if(d){if(i>>>0>=1073741824){break x}d=ll(i<<2);e=J[j>>2];J[j>>2]=d;if(e){fl(e)}J[j+4>>2]=i;if(i>>>0>=4){d=i&-4;e=0;while(1){h=c<<2;J[h+J[j>>2]>>2]=0;J[J[j>>2]+(h|4)>>2]=0;J[J[j>>2]+(h|8)>>2]=0;J[J[j>>2]+(h|12)>>2]=0;c=c+4|0;e=e+4|0;if((d|0)!=(e|0)){continue}break}}d=i&3;if(d){while(1){J[J[j>>2]+(c<<2)>>2]=0;c=c+1|0;g=g+1|0;if((d|0)!=(g|0)){continue}break}}e=J[j+8>>2];if(!e){break u}d=j+8|0;h=J[e+4>>2];c=am(i);if(c>>>0<2){break w}h=h>>>0>=i>>>0?(h>>>0)%(i>>>0)|0:h;J[J[j>>2]+(h<<2)>>2]=d;d=J[e>>2];if(!d){break u}if(c>>>0<=1){break v}while(1){g=J[d+4>>2];if(i>>>0<=g>>>0){g=(g>>>0)%(i>>>0)|0}y:{if((g|0)==(h|0)){e=d;break y}c=d;n=g<<2;m=n+J[j>>2]|0;if(!J[m>>2]){J[m>>2]=e;e=d;h=g;break y}while(1){g=c;c=J[c>>2];if(c){o=L[d+8>>1];m=L[c+8>>1];z:{if((o|0)!=(m|0)){m=(m|0)==(o|0);break z}o=L[d+10>>1];m=L[c+10>>1];if((o|0)!=(m|0)){m=(m|0)==(o|0);break z}m=L[d+12>>1]==L[c+12>>1]}if(m){continue}}break}J[e>>2]=c;J[g>>2]=J[J[n+J[j>>2]>>2]>>2];J[J[n+J[j>>2]>>2]>>2]=d}d=J[e>>2];if(d){continue}break}break u}d=J[j>>2];J[j>>2]=0;if(d){fl(d)}J[j+4>>2]=0;break u}$a();C()}h=i-1&h;J[J[j>>2]+(h<<2)>>2]=d;d=J[e>>2];if(!d){break u}}o=i-1|0;while(1){g=o&J[d+4>>2];A:{if((g|0)==(h|0)){e=d;break A}c=d;n=g<<2;i=n+J[j>>2]|0;if(J[i>>2]){while(1){g=c;c=J[c>>2];if(c){m=L[d+8>>1];i=L[c+8>>1];B:{if((m|0)!=(i|0)){i=(i|0)==(m|0);break B}m=L[d+10>>1];i=L[c+10>>1];if((m|0)!=(i|0)){i=(i|0)==(m|0);break B}i=L[d+12>>1]==L[c+12>>1]}if(i){continue}}break}J[e>>2]=c;J[g>>2]=J[J[n+J[j>>2]>>2]>>2];J[J[n+J[j>>2]>>2]>>2]=d;break A}J[i>>2]=e;e=d;h=g}d=J[e>>2];if(d){continue}break}}}e=J[j+4>>2];d=e-1|0;if(!(d&e)){d=d&l;break n}if(e>>>0>l>>>0){d=l;break n}d=(l>>>0)%(e>>>0)|0}c=J[j>>2]+(d<<2)|0;d=J[c>>2];C:{D:{if(!d){d=j+8|0;J[k>>2]=J[d>>2];J[j+8>>2]=k;J[c>>2]=d;d=J[k>>2];if(!d){break C}d=J[d+4>>2];c=e-1|0;E:{if(!(c&e)){d=c&d;break E}if(d>>>0>>0){break E}d=(d>>>0)%(e>>>0)|0}d=J[j>>2]+(d<<2)|0;break D}J[k>>2]=J[d>>2]}J[d>>2]=k}J[j+12>>2]=J[j+12>>2]+1;d=1}H[f+76|0]=d;J[f+72>>2]=k;d=J[a+40>>2];lk(J[J[a>>2]>>2]+P(d,r)|0,f+40|0,d);n=J[f+16>>2];J[n+(s<<2)>>2]=r;r=r+1|0}d=s+1|0;p=d?p:p+1|0;s=d;c=J[a+80>>2];if(!p&c>>>0>d>>>0){continue}break}if((c|0)!=(r|0)){F:{if(!K[a+84|0]){b=J[a+72>>2];g=J[a+68>>2];if((b|0)==(g|0)){break F}b=b-g>>2;c=b>>>0<=1?1:b;h=c&3;d=0;b=0;if(c-1>>>0>=3){p=c&-4;e=0;while(1){l=b<<2;c=l+g|0;J[c>>2]=J[(J[c>>2]<<2)+n>>2];c=g+(l|4)|0;J[c>>2]=J[(J[c>>2]<<2)+n>>2];c=g+(l|8)|0;J[c>>2]=J[(J[c>>2]<<2)+n>>2];c=g+(l|12)|0;J[c>>2]=J[(J[c>>2]<<2)+n>>2];b=b+4|0;e=e+4|0;if((p|0)!=(e|0)){continue}break}}if(!h){break F}while(1){c=g+(b<<2)|0;J[c>>2]=J[(J[c>>2]<<2)+n>>2];b=b+1|0;d=d+1|0;if((h|0)!=(d|0)){continue}break}break F}H[a+84|0]=0;e=a+68|0;b=J[a+68>>2];d=J[a+72>>2]-b>>2;G:{if(d>>>0>>0){ub(e,c-d|0,2184);c=J[a+80>>2];break G}if(c>>>0>=d>>>0){break G}J[a+72>>2]=b+(c<<2)}if(!c){break F}g=J[e>>2];d=0;b=0;if(c>>>0>=4){h=c&-4;e=0;while(1){l=b<<2;J[l+g>>2]=J[l+n>>2];p=l|4;J[p+g>>2]=J[n+p>>2];p=l|8;J[p+g>>2]=J[n+p>>2];p=l|12;J[p+g>>2]=J[n+p>>2];b=b+4|0;e=e+4|0;if((h|0)!=(e|0)){continue}break}}e=c&3;if(!e){break F}while(1){c=b<<2;J[c+g>>2]=J[c+n>>2];b=b+1|0;d=d+1|0;if((e|0)!=(d|0)){continue}break}}J[a+80>>2]=r}fl(n)}b=J[f+56>>2];if(b){while(1){a=J[b>>2];fl(b);b=a;if(b){continue}break}}a=J[f+48>>2];J[f+48>>2]=0;if(a){fl(a)}ia=f+80|0;return r}La();C()}function mb(a,b){var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=Q(0),r=0,s=0,t=Q(0);f=ia+-64|0;ia=f;J[f+40>>2]=0;J[f+44>>2]=0;J[f+32>>2]=0;J[f+36>>2]=0;J[f+48>>2]=1065353216;d=J[a+80>>2];J[f+16>>2]=0;J[f+8>>2]=0;J[f+12>>2]=0;a:{if(d){if(d>>>0>=1073741824){break a}c=d<<2;n=ll(c);J[f+8>>2]=n;d=c+n|0;J[f+16>>2]=d;nk(n,0,c);J[f+12>>2]=d;while(1){d=J[J[b>>2]>>2];e=J[b+48>>2]+Zl(J[b+40>>2],J[b+44>>2],s,0)|0;c=d+e|0;H[f+30|0]=K[c+2|0];I[f+28>>1]=K[c|0]|K[c+1|0]<<8;d=K[c|0]|K[c+1|0]<<8;H[f+26|0]=K[c+2|0];I[f+24>>1]=d;d=0;o=J[f+36>>2];b:{if(!o){break b}h=J[f+32>>2];l=K[f+26|0]^(K[f+25|0]^(K[f+24|0]^318)+239)+239;c=l&o-1;e=am(o);c:{if(e>>>0<=1){break c}c=l;if(c>>>0>>0){break c}c=(l>>>0)%(o>>>0)|0}g=h;h=c;c=J[g+(c<<2)>>2];if(!c){break b}c=J[c>>2];if(!c){break b}d:{if(e>>>0>=2){m=K[f+24|0];i=K[f+25|0];g=K[f+26|0];while(1){e=J[c+4>>2];e:{if((e|0)!=(l|0)){if(e>>>0>=o>>>0){e=(e>>>0)%(o>>>0)|0}if((e|0)!=(h|0)){break b}break e}e=K[c+8|0];f:{if((e|0)!=(m|0)){e=(e|0)==(m|0);break f}e=K[c+9|0];if((e|0)!=(i|0)){e=(e|0)==(i|0);break f}e=(g|0)==K[c+10|0]}if(e){break d}}c=J[c>>2];if(c){continue}break}break b}i=o-1|0;o=K[f+24|0];m=K[f+25|0];g=K[f+26|0];while(1){e=J[c+4>>2];g:{if((e|0)!=(l|0)){if((h|0)!=(e&i)){break b}break g}e=K[c+8|0];if((e|0)!=(o|0)){if((e|0)!=(o|0)){break g}break d}e=K[c+9|0];if((e|0)!=(m|0)){if((e|0)!=(m|0)){break g}break d}if((g|0)==K[c+10|0]){break d}}c=J[c>>2];if(c){continue}break}break b}d=c}h:{if(d){J[(s<<2)+n>>2]=J[d+12>>2];break h}H[f+2|0]=K[f+26|0];I[f>>1]=L[f+24>>1];J[f+4>>2]=r;d=0;l=K[f+2|0]^(K[f+1|0]^(K[f|0]^318)+239)+239;i:{j:{j=f+32|0;e=J[j+4>>2];if(!e){break j}c=am(e);k:{if(c>>>0>=2){d=l;if(e>>>0<=d>>>0){d=(l>>>0)%(e>>>0)|0}k=J[J[j>>2]+(d<<2)>>2];if(!k){break j}if(c>>>0<2){break k}i=K[f|0];g=K[f+1|0];h=K[f+2|0];while(1){k=J[k>>2];if(!k){break j}c=J[k+4>>2];if((c|0)!=(l|0)){if(c>>>0>=e>>>0){c=(c>>>0)%(e>>>0)|0}if((c|0)!=(d|0)){break j}}c=K[k+8|0];l:{if((c|0)!=(i|0)){c=(c|0)==(i|0);break l}c=K[k+9|0];if((c|0)!=(g|0)){c=(c|0)==(g|0);break l}c=(h|0)==K[k+10|0]}if(!c){continue}break}d=0;break i}d=l&e-1;k=J[J[j>>2]+(d<<2)>>2];if(!k){break j}}g=e-1|0;m=K[f|0];i=K[f+1|0];h=K[f+2|0];while(1){k=J[k>>2];if(!k){break j}c=J[k+4>>2];if((c|0)!=(l|0)&(c&g)!=(d|0)){break j}c=K[k+8|0];m:{if((c|0)!=(m|0)){c=(c|0)==(m|0);break m}c=K[k+9|0];if((c|0)!=(i|0)){c=(c|0)==(i|0);break m}c=(h|0)==K[k+10|0]}if(!c){continue}break}d=0;break i}k=ll(16);H[k+10|0]=K[f+2|0];I[k+8>>1]=L[f>>1];c=J[f+4>>2];J[k>>2]=0;J[k+4>>2]=l;J[k+12>>2]=c;q=Q(J[j+12>>2]+1>>>0);t=N[j+16>>2];n:{if(q>Q(t*Q(e>>>0))?0:e){break n}d=2;c=(e-1&e)!=0|e>>>0<3|e<<1;q=Q(W(Q(q/t)));o:{if(q=Q(0)){h=~~q>>>0;break o}h=0}c=c>>>0>h>>>0?c:h;p:{if((c|0)==1){break p}if(!(c&c-1)){d=c;break p}d=bl(c);e=J[j+4>>2]}q:{if(d>>>0<=e>>>0){if(d>>>0>=e>>>0){break q}h=e>>>0<3;q=Q(W(Q(Q(M[j+12>>2])/N[j+16>>2])));r:{if(q=Q(0)){c=~~q>>>0;break r}c=0}s:{t:{if(h){break t}if(am(e)>>>0>1){break t}c=c>>>0<2?c:1<<32-S(c-1|0);break s}c=bl(c)}d=c>>>0>>0?d:c;if(e>>>0<=d>>>0){break q}}c=0;g=0;i=d;u:{v:{w:{x:{if(d){if(i>>>0>=1073741824){break x}d=ll(i<<2);e=J[j>>2];J[j>>2]=d;if(e){fl(e)}J[j+4>>2]=i;if(i>>>0>=4){d=i&-4;e=0;while(1){h=c<<2;J[h+J[j>>2]>>2]=0;J[J[j>>2]+(h|4)>>2]=0;J[J[j>>2]+(h|8)>>2]=0;J[J[j>>2]+(h|12)>>2]=0;c=c+4|0;e=e+4|0;if((d|0)!=(e|0)){continue}break}}d=i&3;if(d){while(1){J[J[j>>2]+(c<<2)>>2]=0;c=c+1|0;g=g+1|0;if((d|0)!=(g|0)){continue}break}}e=J[j+8>>2];if(!e){break u}d=j+8|0;h=J[e+4>>2];c=am(i);if(c>>>0<2){break w}h=h>>>0>=i>>>0?(h>>>0)%(i>>>0)|0:h;J[J[j>>2]+(h<<2)>>2]=d;d=J[e>>2];if(!d){break u}if(c>>>0<=1){break v}while(1){g=J[d+4>>2];if(i>>>0<=g>>>0){g=(g>>>0)%(i>>>0)|0}y:{if((g|0)==(h|0)){e=d;break y}c=d;n=g<<2;m=n+J[j>>2]|0;if(!J[m>>2]){J[m>>2]=e;e=d;h=g;break y}while(1){g=c;c=J[c>>2];if(c){o=K[d+8|0];m=K[c+8|0];z:{if((o|0)!=(m|0)){m=(m|0)==(o|0);break z}o=K[d+9|0];m=K[c+9|0];if((o|0)!=(m|0)){m=(m|0)==(o|0);break z}m=K[d+10|0]==K[c+10|0]}if(m){continue}}break}J[e>>2]=c;J[g>>2]=J[J[n+J[j>>2]>>2]>>2];J[J[n+J[j>>2]>>2]>>2]=d}d=J[e>>2];if(d){continue}break}break u}d=J[j>>2];J[j>>2]=0;if(d){fl(d)}J[j+4>>2]=0;break u}$a();C()}h=i-1&h;J[J[j>>2]+(h<<2)>>2]=d;d=J[e>>2];if(!d){break u}}o=i-1|0;while(1){g=o&J[d+4>>2];A:{if((g|0)==(h|0)){e=d;break A}c=d;n=g<<2;i=n+J[j>>2]|0;if(J[i>>2]){while(1){g=c;c=J[c>>2];if(c){m=K[d+8|0];i=K[c+8|0];B:{if((m|0)!=(i|0)){i=(i|0)==(m|0);break B}m=K[d+9|0];i=K[c+9|0];if((m|0)!=(i|0)){i=(i|0)==(m|0);break B}i=K[d+10|0]==K[c+10|0]}if(i){continue}}break}J[e>>2]=c;J[g>>2]=J[J[n+J[j>>2]>>2]>>2];J[J[n+J[j>>2]>>2]>>2]=d;break A}J[i>>2]=e;e=d;h=g}d=J[e>>2];if(d){continue}break}}}e=J[j+4>>2];d=e-1|0;if(!(d&e)){d=d&l;break n}if(e>>>0>l>>>0){d=l;break n}d=(l>>>0)%(e>>>0)|0}c=J[j>>2]+(d<<2)|0;d=J[c>>2];C:{D:{if(!d){d=j+8|0;J[k>>2]=J[d>>2];J[j+8>>2]=k;J[c>>2]=d;d=J[k>>2];if(!d){break C}d=J[d+4>>2];c=e-1|0;E:{if(!(c&e)){d=c&d;break E}if(d>>>0>>0){break E}d=(d>>>0)%(e>>>0)|0}d=J[j>>2]+(d<<2)|0;break D}J[k>>2]=J[d>>2]}J[d>>2]=k}J[j+12>>2]=J[j+12>>2]+1;d=1}H[f+60|0]=d;J[f+56>>2]=k;d=J[a+40>>2];lk(J[J[a>>2]>>2]+P(d,r)|0,f+28|0,d);n=J[f+8>>2];J[n+(s<<2)>>2]=r;r=r+1|0}d=s+1|0;p=d?p:p+1|0;s=d;c=J[a+80>>2];if(!p&c>>>0>d>>>0){continue}break}if((c|0)!=(r|0)){F:{if(!K[a+84|0]){b=J[a+72>>2];g=J[a+68>>2];if((b|0)==(g|0)){break F}b=b-g>>2;c=b>>>0<=1?1:b;h=c&3;d=0;b=0;if(c-1>>>0>=3){p=c&-4;e=0;while(1){l=b<<2;c=l+g|0;J[c>>2]=J[(J[c>>2]<<2)+n>>2];c=g+(l|4)|0;J[c>>2]=J[(J[c>>2]<<2)+n>>2];c=g+(l|8)|0;J[c>>2]=J[(J[c>>2]<<2)+n>>2];c=g+(l|12)|0;J[c>>2]=J[(J[c>>2]<<2)+n>>2];b=b+4|0;e=e+4|0;if((p|0)!=(e|0)){continue}break}}if(!h){break F}while(1){c=g+(b<<2)|0;J[c>>2]=J[(J[c>>2]<<2)+n>>2];b=b+1|0;d=d+1|0;if((h|0)!=(d|0)){continue}break}break F}H[a+84|0]=0;e=a+68|0;b=J[a+68>>2];d=J[a+72>>2]-b>>2;G:{if(d>>>0>>0){ub(e,c-d|0,2184);c=J[a+80>>2];break G}if(c>>>0>=d>>>0){break G}J[a+72>>2]=b+(c<<2)}if(!c){break F}g=J[e>>2];d=0;b=0;if(c>>>0>=4){h=c&-4;e=0;while(1){l=b<<2;J[l+g>>2]=J[l+n>>2];p=l|4;J[p+g>>2]=J[n+p>>2];p=l|8;J[p+g>>2]=J[n+p>>2];p=l|12;J[p+g>>2]=J[n+p>>2];b=b+4|0;e=e+4|0;if((h|0)!=(e|0)){continue}break}}e=c&3;if(!e){break F}while(1){c=b<<2;J[c+g>>2]=J[c+n>>2];b=b+1|0;d=d+1|0;if((e|0)!=(d|0)){continue}break}}J[a+80>>2]=r}fl(n)}b=J[f+40>>2];if(b){while(1){a=J[b>>2];fl(b);b=a;if(b){continue}break}}a=J[f+32>>2];J[f+32>>2]=0;if(a){fl(a)}ia=f- -64|0;return r}La();C()}function hb(a,b){var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=Q(0),q=0,r=0,s=0,t=Q(0);f=ia-80|0;ia=f;J[f+56>>2]=0;J[f+60>>2]=0;J[f+48>>2]=0;J[f+52>>2]=0;J[f+64>>2]=1065353216;d=J[a+80>>2];J[f+24>>2]=0;J[f+16>>2]=0;J[f+20>>2]=0;a:{if(d){if(d>>>0>=1073741824){break a}c=d<<2;m=ll(c);J[f+16>>2]=m;d=c+m|0;J[f+24>>2]=d;nk(m,0,c);J[f+20>>2]=d;while(1){d=J[J[b>>2]>>2];c=J[b+48>>2]+Zl(J[b+40>>2],J[b+44>>2],s,0)|0;d=d+c|0;c=K[d+4|0]|K[d+5|0]<<8|(K[d+6|0]<<16|K[d+7|0]<<24);d=K[d|0]|K[d+1|0]<<8|(K[d+2|0]<<16|K[d+3|0]<<24);J[f+32>>2]=d;J[f+36>>2]=c;J[f+40>>2]=d;J[f+44>>2]=c;d=0;n=J[f+52>>2];b:{if(!n){break b}h=J[f+48>>2];k=J[f+36>>2]^(J[f+32>>2]^318)+239;c=k&n-1;e=am(n);c:{if(e>>>0<=1){break c}c=k;if(c>>>0>>0){break c}c=(k>>>0)%(n>>>0)|0}g=h;h=c;c=J[g+(c<<2)>>2];if(!c){break b}c=J[c>>2];if(!c){break b}d:{if(e>>>0>=2){g=J[f+36>>2];j=J[f+32>>2];while(1){e=J[c+4>>2];e:{if((e|0)!=(k|0)){if(e>>>0>=n>>>0){e=(e>>>0)%(n>>>0)|0}if((e|0)!=(h|0)){break b}break e}e=J[c+8>>2];f:{if((e|0)!=(j|0)){e=(e|0)==(j|0);break f}e=(g|0)==J[c+12>>2]}if(e){break d}}c=J[c>>2];if(c){continue}break}break b}j=n-1|0;g=J[f+36>>2];n=J[f+32>>2];while(1){e=J[c+4>>2];g:{if((e|0)!=(k|0)){if((h|0)!=(e&j)){break b}break g}e=J[c+8>>2];if((e|0)!=(n|0)){if((e|0)!=(n|0)){break g}break d}if((g|0)==J[c+12>>2]){break d}}c=J[c>>2];if(c){continue}break}break b}d=c}h:{if(d){J[(s<<2)+m>>2]=J[d+16>>2];break h}J[f+8>>2]=q;d=J[f+36>>2];J[f>>2]=J[f+32>>2];J[f+4>>2]=d;d=0;k=J[f+4>>2]^(J[f>>2]^318)+239;i:{j:{i=f+48|0;e=J[i+4>>2];if(!e){break j}c=am(e);k:{if(c>>>0>=2){d=k;if(e>>>0<=d>>>0){d=(k>>>0)%(e>>>0)|0}l=J[J[i>>2]+(d<<2)>>2];if(!l){break j}if(c>>>0<2){break k}h=J[f+4>>2];g=J[f>>2];while(1){l=J[l>>2];if(!l){break j}c=J[l+4>>2];if((c|0)!=(k|0)){if(c>>>0>=e>>>0){c=(c>>>0)%(e>>>0)|0}if((c|0)!=(d|0)){break j}}c=J[l+8>>2];l:{if((c|0)!=(g|0)){c=(c|0)==(g|0);break l}c=(h|0)==J[l+12>>2]}if(!c){continue}break}d=0;break i}d=k&e-1;l=J[J[i>>2]+(d<<2)>>2];if(!l){break j}}g=e-1|0;h=J[f+4>>2];j=J[f>>2];while(1){l=J[l>>2];if(!l){break j}c=J[l+4>>2];if((c|0)!=(k|0)&(c&g)!=(d|0)){break j}c=J[l+8>>2];m:{if((c|0)!=(j|0)){c=(c|0)==(j|0);break m}c=(h|0)==J[l+12>>2]}if(!c){continue}break}d=0;break i}l=ll(20);c=J[f+4>>2];J[l+8>>2]=J[f>>2];J[l+12>>2]=c;c=J[f+8>>2];J[l+4>>2]=k;J[l+16>>2]=c;J[l>>2]=0;p=Q(J[i+12>>2]+1>>>0);t=N[i+16>>2];n:{if(p>Q(t*Q(e>>>0))?0:e){break n}d=2;c=(e-1&e)!=0|e>>>0<3|e<<1;p=Q(W(Q(p/t)));o:{if(p=Q(0)){h=~~p>>>0;break o}h=0}c=c>>>0>h>>>0?c:h;p:{if((c|0)==1){break p}if(!(c&c-1)){d=c;break p}d=bl(c);e=J[i+4>>2]}q:{if(d>>>0<=e>>>0){if(d>>>0>=e>>>0){break q}h=e>>>0<3;p=Q(W(Q(Q(M[i+12>>2])/N[i+16>>2])));r:{if(p=Q(0)){c=~~p>>>0;break r}c=0}s:{t:{if(h){break t}if(am(e)>>>0>1){break t}c=c>>>0<2?c:1<<32-S(c-1|0);break s}c=bl(c)}d=c>>>0>>0?d:c;if(e>>>0<=d>>>0){break q}}c=0;g=0;j=d;u:{v:{w:{x:{if(d){if(j>>>0>=1073741824){break x}d=ll(j<<2);e=J[i>>2];J[i>>2]=d;if(e){fl(e)}J[i+4>>2]=j;if(j>>>0>=4){d=j&-4;e=0;while(1){h=c<<2;J[h+J[i>>2]>>2]=0;J[J[i>>2]+(h|4)>>2]=0;J[J[i>>2]+(h|8)>>2]=0;J[J[i>>2]+(h|12)>>2]=0;c=c+4|0;e=e+4|0;if((d|0)!=(e|0)){continue}break}}d=j&3;if(d){while(1){J[J[i>>2]+(c<<2)>>2]=0;c=c+1|0;g=g+1|0;if((d|0)!=(g|0)){continue}break}}e=J[i+8>>2];if(!e){break u}d=i+8|0;h=J[e+4>>2];c=am(j);if(c>>>0<2){break w}h=h>>>0>=j>>>0?(h>>>0)%(j>>>0)|0:h;J[J[i>>2]+(h<<2)>>2]=d;d=J[e>>2];if(!d){break u}if(c>>>0<=1){break v}while(1){g=J[d+4>>2];if(j>>>0<=g>>>0){g=(g>>>0)%(j>>>0)|0}y:{if((g|0)==(h|0)){e=d;break y}c=d;r=g<<2;n=r+J[i>>2]|0;if(!J[n>>2]){J[n>>2]=e;e=d;h=g;break y}while(1){g=c;c=J[c>>2];if(c){m=J[d+8>>2];n=J[c+8>>2];z:{if((m|0)!=(n|0)){m=(m|0)==(n|0);break z}m=J[d+12>>2]==J[c+12>>2]}if(m){continue}}break}J[e>>2]=c;J[g>>2]=J[J[r+J[i>>2]>>2]>>2];J[J[r+J[i>>2]>>2]>>2]=d}d=J[e>>2];if(d){continue}break}break u}d=J[i>>2];J[i>>2]=0;if(d){fl(d)}J[i+4>>2]=0;break u}$a();C()}h=j-1&h;J[J[i>>2]+(h<<2)>>2]=d;d=J[e>>2];if(!d){break u}}m=j-1|0;while(1){g=m&J[d+4>>2];A:{if((g|0)==(h|0)){e=d;break A}c=d;r=g<<2;j=r+J[i>>2]|0;if(J[j>>2]){while(1){g=c;c=J[c>>2];if(c){n=J[d+8>>2];j=J[c+8>>2];B:{if((n|0)!=(j|0)){j=(j|0)==(n|0);break B}j=J[d+12>>2]==J[c+12>>2]}if(j){continue}}break}J[e>>2]=c;J[g>>2]=J[J[r+J[i>>2]>>2]>>2];J[J[r+J[i>>2]>>2]>>2]=d;break A}J[j>>2]=e;e=d;h=g}d=J[e>>2];if(d){continue}break}}}e=J[i+4>>2];d=e-1|0;if(!(d&e)){d=d&k;break n}if(e>>>0>k>>>0){d=k;break n}d=(k>>>0)%(e>>>0)|0}c=J[i>>2]+(d<<2)|0;d=J[c>>2];C:{D:{if(!d){d=i+8|0;J[l>>2]=J[d>>2];J[i+8>>2]=l;J[c>>2]=d;d=J[l>>2];if(!d){break C}d=J[d+4>>2];c=e-1|0;E:{if(!(c&e)){d=c&d;break E}if(d>>>0>>0){break E}d=(d>>>0)%(e>>>0)|0}d=J[i>>2]+(d<<2)|0;break D}J[l>>2]=J[d>>2]}J[d>>2]=l}J[i+12>>2]=J[i+12>>2]+1;d=1}H[f+76|0]=d;J[f+72>>2]=l;d=J[a+40>>2];lk(J[J[a>>2]>>2]+P(d,q)|0,f+40|0,d);m=J[f+16>>2];J[m+(s<<2)>>2]=q;q=q+1|0}d=s+1|0;o=d?o:o+1|0;s=d;c=J[a+80>>2];if(!o&c>>>0>d>>>0){continue}break}if((c|0)!=(q|0)){F:{if(!K[a+84|0]){b=J[a+72>>2];g=J[a+68>>2];if((b|0)==(g|0)){break F}b=b-g>>2;c=b>>>0<=1?1:b;h=c&3;d=0;b=0;if(c-1>>>0>=3){o=c&-4;e=0;while(1){k=b<<2;c=k+g|0;J[c>>2]=J[(J[c>>2]<<2)+m>>2];c=g+(k|4)|0;J[c>>2]=J[(J[c>>2]<<2)+m>>2];c=g+(k|8)|0;J[c>>2]=J[(J[c>>2]<<2)+m>>2];c=g+(k|12)|0;J[c>>2]=J[(J[c>>2]<<2)+m>>2];b=b+4|0;e=e+4|0;if((o|0)!=(e|0)){continue}break}}if(!h){break F}while(1){c=g+(b<<2)|0;J[c>>2]=J[(J[c>>2]<<2)+m>>2];b=b+1|0;d=d+1|0;if((h|0)!=(d|0)){continue}break}break F}H[a+84|0]=0;e=a+68|0;b=J[a+68>>2];d=J[a+72>>2]-b>>2;G:{if(d>>>0>>0){ub(e,c-d|0,2184);c=J[a+80>>2];break G}if(c>>>0>=d>>>0){break G}J[a+72>>2]=b+(c<<2)}if(!c){break F}g=J[e>>2];d=0;b=0;if(c>>>0>=4){h=c&-4;e=0;while(1){k=b<<2;J[k+g>>2]=J[k+m>>2];o=k|4;J[o+g>>2]=J[m+o>>2];o=k|8;J[o+g>>2]=J[m+o>>2];o=k|12;J[o+g>>2]=J[m+o>>2];b=b+4|0;e=e+4|0;if((h|0)!=(e|0)){continue}break}}e=c&3;if(!e){break F}while(1){c=b<<2;J[c+g>>2]=J[c+m>>2];b=b+1|0;d=d+1|0;if((e|0)!=(d|0)){continue}break}}J[a+80>>2]=q}fl(m)}b=J[f+56>>2];if(b){while(1){a=J[b>>2];fl(b);b=a;if(b){continue}break}}a=J[f+48>>2];J[f+48>>2]=0;if(a){fl(a)}ia=f+80|0;return q}La();C()}function pb(a,b){var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=Q(0),q=0,r=0,s=0,t=Q(0);g=ia+-64|0;ia=g;J[g+40>>2]=0;J[g+44>>2]=0;J[g+32>>2]=0;J[g+36>>2]=0;J[g+48>>2]=1065353216;d=J[a+80>>2];J[g+16>>2]=0;J[g+8>>2]=0;J[g+12>>2]=0;a:{if(d){if(d>>>0>=1073741824){break a}c=d<<2;m=ll(c);J[g+8>>2]=m;d=c+m|0;J[g+16>>2]=d;nk(m,0,c);J[g+12>>2]=d;while(1){d=J[J[b>>2]>>2];e=J[b+48>>2]+Zl(J[b+40>>2],J[b+44>>2],s,0)|0;d=d+e|0;d=K[d|0]|K[d+1|0]<<8|(K[d+2|0]<<16|K[d+3|0]<<24);J[g+24>>2]=d;J[g+28>>2]=d;d=0;n=J[g+36>>2];b:{if(!n){break b}h=J[g+32>>2];k=L[g+26>>1]^(L[g+24>>1]^318)+239;c=k&n+131071;e=am(n);c:{if(e>>>0<=1){break c}c=k;if(c>>>0>>0){break c}c=(k>>>0)%(n>>>0)|0}f=h;h=c;c=J[f+(c<<2)>>2];if(!c){break b}c=J[c>>2];if(!c){break b}d:{if(e>>>0>=2){j=L[g+24>>1];f=L[g+26>>1];while(1){e=J[c+4>>2];e:{if((e|0)!=(k|0)){if(e>>>0>=n>>>0){e=(e>>>0)%(n>>>0)|0}if((e|0)!=(h|0)){break b}break e}e=L[c+8>>1];f:{if((e|0)!=(j|0)){e=(e|0)==(j|0);break f}e=(f|0)==L[c+10>>1]}if(e){break d}}c=J[c>>2];if(c){continue}break}break b}j=n-1|0;n=L[g+24>>1];f=L[g+26>>1];while(1){e=J[c+4>>2];g:{if((e|0)!=(k|0)){if((h|0)!=(e&j)){break b}break g}e=L[c+8>>1];if((e|0)!=(n|0)){if((e|0)!=(n|0)){break g}break d}if((f|0)==L[c+10>>1]){break d}}c=J[c>>2];if(c){continue}break}break b}d=c}h:{if(d){J[(s<<2)+m>>2]=J[d+12>>2];break h}J[g+4>>2]=q;J[g>>2]=J[g+24>>2];d=0;k=L[g+2>>1]^(L[g>>1]^318)+239;i:{j:{i=g+32|0;e=J[i+4>>2];if(!e){break j}c=am(e);k:{if(c>>>0>=2){d=k;if(e>>>0<=d>>>0){d=(k>>>0)%(e>>>0)|0}l=J[J[i>>2]+(d<<2)>>2];if(!l){break j}if(c>>>0<2){break k}f=L[g>>1];h=L[g+2>>1];while(1){l=J[l>>2];if(!l){break j}c=J[l+4>>2];if((c|0)!=(k|0)){if(c>>>0>=e>>>0){c=(c>>>0)%(e>>>0)|0}if((c|0)!=(d|0)){break j}}c=L[l+8>>1];l:{if((c|0)!=(f|0)){c=(c|0)==(f|0);break l}c=(h|0)==L[l+10>>1]}if(!c){continue}break}d=0;break i}d=k&e+131071;l=J[J[i>>2]+(d<<2)>>2];if(!l){break j}}f=e-1|0;j=L[g>>1];h=L[g+2>>1];while(1){l=J[l>>2];if(!l){break j}c=J[l+4>>2];if((c|0)!=(k|0)&(c&f)!=(d|0)){break j}c=L[l+8>>1];m:{if((c|0)!=(j|0)){c=(c|0)==(j|0);break m}c=(h|0)==L[l+10>>1]}if(!c){continue}break}d=0;break i}l=ll(16);J[l+8>>2]=J[g>>2];c=J[g+4>>2];J[l+4>>2]=k;J[l+12>>2]=c;J[l>>2]=0;p=Q(J[i+12>>2]+1>>>0);t=N[i+16>>2];n:{if(p>Q(t*Q(e>>>0))?0:e){break n}d=2;c=(e-1&e)!=0|e>>>0<3|e<<1;p=Q(W(Q(p/t)));o:{if(p=Q(0)){h=~~p>>>0;break o}h=0}c=c>>>0>h>>>0?c:h;p:{if((c|0)==1){break p}if(!(c&c-1)){d=c;break p}d=bl(c);e=J[i+4>>2]}q:{if(d>>>0<=e>>>0){if(d>>>0>=e>>>0){break q}h=e>>>0<3;p=Q(W(Q(Q(M[i+12>>2])/N[i+16>>2])));r:{if(p=Q(0)){c=~~p>>>0;break r}c=0}s:{t:{if(h){break t}if(am(e)>>>0>1){break t}c=c>>>0<2?c:1<<32-S(c-1|0);break s}c=bl(c)}d=c>>>0>>0?d:c;if(e>>>0<=d>>>0){break q}}c=0;f=0;j=d;u:{v:{w:{x:{if(d){if(j>>>0>=1073741824){break x}d=ll(j<<2);e=J[i>>2];J[i>>2]=d;if(e){fl(e)}J[i+4>>2]=j;if(j>>>0>=4){d=j&-4;e=0;while(1){h=c<<2;J[h+J[i>>2]>>2]=0;J[J[i>>2]+(h|4)>>2]=0;J[J[i>>2]+(h|8)>>2]=0;J[J[i>>2]+(h|12)>>2]=0;c=c+4|0;e=e+4|0;if((d|0)!=(e|0)){continue}break}}d=j&3;if(d){while(1){J[J[i>>2]+(c<<2)>>2]=0;c=c+1|0;f=f+1|0;if((d|0)!=(f|0)){continue}break}}e=J[i+8>>2];if(!e){break u}d=i+8|0;h=J[e+4>>2];c=am(j);if(c>>>0<2){break w}h=h>>>0>=j>>>0?(h>>>0)%(j>>>0)|0:h;J[J[i>>2]+(h<<2)>>2]=d;d=J[e>>2];if(!d){break u}if(c>>>0<=1){break v}while(1){f=J[d+4>>2];if(j>>>0<=f>>>0){f=(f>>>0)%(j>>>0)|0}y:{if((f|0)==(h|0)){e=d;break y}c=d;r=f<<2;n=r+J[i>>2]|0;if(!J[n>>2]){J[n>>2]=e;e=d;h=f;break y}while(1){f=c;c=J[c>>2];if(c){m=L[d+8>>1];n=L[c+8>>1];z:{if((m|0)!=(n|0)){m=(m|0)==(n|0);break z}m=L[d+10>>1]==L[c+10>>1]}if(m){continue}}break}J[e>>2]=c;J[f>>2]=J[J[r+J[i>>2]>>2]>>2];J[J[r+J[i>>2]>>2]>>2]=d}d=J[e>>2];if(d){continue}break}break u}d=J[i>>2];J[i>>2]=0;if(d){fl(d)}J[i+4>>2]=0;break u}$a();C()}h=j-1&h;J[J[i>>2]+(h<<2)>>2]=d;d=J[e>>2];if(!d){break u}}m=j-1|0;while(1){f=m&J[d+4>>2];A:{if((f|0)==(h|0)){e=d;break A}c=d;r=f<<2;j=r+J[i>>2]|0;if(J[j>>2]){while(1){f=c;c=J[c>>2];if(c){n=L[d+8>>1];j=L[c+8>>1];B:{if((n|0)!=(j|0)){j=(j|0)==(n|0);break B}j=L[d+10>>1]==L[c+10>>1]}if(j){continue}}break}J[e>>2]=c;J[f>>2]=J[J[r+J[i>>2]>>2]>>2];J[J[r+J[i>>2]>>2]>>2]=d;break A}J[j>>2]=e;e=d;h=f}d=J[e>>2];if(d){continue}break}}}e=J[i+4>>2];d=e-1|0;if(!(d&e)){d=d&k;break n}if(e>>>0>k>>>0){d=k;break n}d=(k>>>0)%(e>>>0)|0}c=J[i>>2]+(d<<2)|0;d=J[c>>2];C:{D:{if(!d){d=i+8|0;J[l>>2]=J[d>>2];J[i+8>>2]=l;J[c>>2]=d;d=J[l>>2];if(!d){break C}d=J[d+4>>2];c=e-1|0;E:{if(!(c&e)){d=c&d;break E}if(d>>>0>>0){break E}d=(d>>>0)%(e>>>0)|0}d=J[i>>2]+(d<<2)|0;break D}J[l>>2]=J[d>>2]}J[d>>2]=l}J[i+12>>2]=J[i+12>>2]+1;d=1}H[g+60|0]=d;J[g+56>>2]=l;d=J[a+40>>2];lk(J[J[a>>2]>>2]+P(d,q)|0,g+28|0,d);m=J[g+8>>2];J[m+(s<<2)>>2]=q;q=q+1|0}d=s+1|0;o=d?o:o+1|0;s=d;c=J[a+80>>2];if(!o&c>>>0>d>>>0){continue}break}if((c|0)!=(q|0)){F:{if(!K[a+84|0]){b=J[a+72>>2];f=J[a+68>>2];if((b|0)==(f|0)){break F}b=b-f>>2;c=b>>>0<=1?1:b;h=c&3;d=0;b=0;if(c-1>>>0>=3){o=c&-4;e=0;while(1){k=b<<2;c=k+f|0;J[c>>2]=J[(J[c>>2]<<2)+m>>2];c=f+(k|4)|0;J[c>>2]=J[(J[c>>2]<<2)+m>>2];c=f+(k|8)|0;J[c>>2]=J[(J[c>>2]<<2)+m>>2];c=f+(k|12)|0;J[c>>2]=J[(J[c>>2]<<2)+m>>2];b=b+4|0;e=e+4|0;if((o|0)!=(e|0)){continue}break}}if(!h){break F}while(1){c=f+(b<<2)|0;J[c>>2]=J[(J[c>>2]<<2)+m>>2];b=b+1|0;d=d+1|0;if((h|0)!=(d|0)){continue}break}break F}H[a+84|0]=0;e=a+68|0;b=J[a+68>>2];d=J[a+72>>2]-b>>2;G:{if(d>>>0>>0){ub(e,c-d|0,2184);c=J[a+80>>2];break G}if(c>>>0>=d>>>0){break G}J[a+72>>2]=b+(c<<2)}if(!c){break F}f=J[e>>2];d=0;b=0;if(c>>>0>=4){h=c&-4;e=0;while(1){k=b<<2;J[k+f>>2]=J[k+m>>2];o=k|4;J[o+f>>2]=J[m+o>>2];o=k|8;J[o+f>>2]=J[m+o>>2];o=k|12;J[o+f>>2]=J[m+o>>2];b=b+4|0;e=e+4|0;if((h|0)!=(e|0)){continue}break}}e=c&3;if(!e){break F}while(1){c=b<<2;J[c+f>>2]=J[c+m>>2];b=b+1|0;d=d+1|0;if((e|0)!=(d|0)){continue}break}}J[a+80>>2]=q}fl(m)}b=J[g+40>>2];if(b){while(1){a=J[b>>2];fl(b);b=a;if(b){continue}break}}a=J[g+32>>2];J[g+32>>2]=0;if(a){fl(a)}ia=g- -64|0;return q}La();C()}function lb(a,b){var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=Q(0),q=0,r=0,s=0,t=Q(0);g=ia+-64|0;ia=g;J[g+40>>2]=0;J[g+44>>2]=0;J[g+32>>2]=0;J[g+36>>2]=0;J[g+48>>2]=1065353216;d=J[a+80>>2];J[g+16>>2]=0;J[g+8>>2]=0;J[g+12>>2]=0;a:{if(d){if(d>>>0>=1073741824){break a}c=d<<2;m=ll(c);J[g+8>>2]=m;d=c+m|0;J[g+16>>2]=d;nk(m,0,c);J[g+12>>2]=d;while(1){d=J[J[b>>2]>>2];e=J[b+48>>2]+Zl(J[b+40>>2],J[b+44>>2],s,0)|0;d=d+e|0;d=K[d|0]|K[d+1|0]<<8;I[g+24>>1]=d;I[g+30>>1]=d;d=0;n=J[g+36>>2];b:{if(!n){break b}h=J[g+32>>2];k=K[g+25|0]^(K[g+24|0]^318)+239;c=k&n+1023;e=am(n);c:{if(e>>>0<=1){break c}c=k;if(c>>>0>>0){break c}c=(k>>>0)%(n>>>0)|0}f=h;h=c;c=J[f+(c<<2)>>2];if(!c){break b}c=J[c>>2];if(!c){break b}d:{if(e>>>0>=2){j=K[g+24|0];f=K[g+25|0];while(1){e=J[c+4>>2];e:{if((e|0)!=(k|0)){if(e>>>0>=n>>>0){e=(e>>>0)%(n>>>0)|0}if((e|0)!=(h|0)){break b}break e}e=K[c+8|0];f:{if((e|0)!=(j|0)){e=(e|0)==(j|0);break f}e=(f|0)==K[c+9|0]}if(e){break d}}c=J[c>>2];if(c){continue}break}break b}j=n-1|0;n=K[g+24|0];f=K[g+25|0];while(1){e=J[c+4>>2];g:{if((e|0)!=(k|0)){if((h|0)!=(e&j)){break b}break g}e=K[c+8|0];if((e|0)!=(n|0)){if((e|0)!=(n|0)){break g}break d}if((f|0)==K[c+9|0]){break d}}c=J[c>>2];if(c){continue}break}break b}d=c}h:{if(d){J[(s<<2)+m>>2]=J[d+12>>2];break h}J[g+4>>2]=q;I[g>>1]=L[g+24>>1];d=0;k=K[g+1|0]^(K[g|0]^318)+239;i:{j:{i=g+32|0;e=J[i+4>>2];if(!e){break j}c=am(e);k:{if(c>>>0>=2){d=k;if(e>>>0<=d>>>0){d=(k>>>0)%(e>>>0)|0}l=J[J[i>>2]+(d<<2)>>2];if(!l){break j}if(c>>>0<2){break k}f=K[g|0];h=K[g+1|0];while(1){l=J[l>>2];if(!l){break j}c=J[l+4>>2];if((c|0)!=(k|0)){if(c>>>0>=e>>>0){c=(c>>>0)%(e>>>0)|0}if((c|0)!=(d|0)){break j}}c=K[l+8|0];l:{if((c|0)!=(f|0)){c=(c|0)==(f|0);break l}c=(h|0)==K[l+9|0]}if(!c){continue}break}d=0;break i}d=k&e+1023;l=J[J[i>>2]+(d<<2)>>2];if(!l){break j}}f=e-1|0;j=K[g|0];h=K[g+1|0];while(1){l=J[l>>2];if(!l){break j}c=J[l+4>>2];if((c|0)!=(k|0)&(c&f)!=(d|0)){break j}c=K[l+8|0];m:{if((c|0)!=(j|0)){c=(c|0)==(j|0);break m}c=(h|0)==K[l+9|0]}if(!c){continue}break}d=0;break i}l=ll(16);I[l+8>>1]=L[g>>1];c=J[g+4>>2];J[l+4>>2]=k;J[l+12>>2]=c;J[l>>2]=0;p=Q(J[i+12>>2]+1>>>0);t=N[i+16>>2];n:{if(p>Q(t*Q(e>>>0))?0:e){break n}d=2;c=(e-1&e)!=0|e>>>0<3|e<<1;p=Q(W(Q(p/t)));o:{if(p=Q(0)){h=~~p>>>0;break o}h=0}c=c>>>0>h>>>0?c:h;p:{if((c|0)==1){break p}if(!(c&c-1)){d=c;break p}d=bl(c);e=J[i+4>>2]}q:{if(d>>>0<=e>>>0){if(d>>>0>=e>>>0){break q}h=e>>>0<3;p=Q(W(Q(Q(M[i+12>>2])/N[i+16>>2])));r:{if(p=Q(0)){c=~~p>>>0;break r}c=0}s:{t:{if(h){break t}if(am(e)>>>0>1){break t}c=c>>>0<2?c:1<<32-S(c-1|0);break s}c=bl(c)}d=c>>>0>>0?d:c;if(e>>>0<=d>>>0){break q}}c=0;f=0;j=d;u:{v:{w:{x:{if(d){if(j>>>0>=1073741824){break x}d=ll(j<<2);e=J[i>>2];J[i>>2]=d;if(e){fl(e)}J[i+4>>2]=j;if(j>>>0>=4){d=j&-4;e=0;while(1){h=c<<2;J[h+J[i>>2]>>2]=0;J[J[i>>2]+(h|4)>>2]=0;J[J[i>>2]+(h|8)>>2]=0;J[J[i>>2]+(h|12)>>2]=0;c=c+4|0;e=e+4|0;if((d|0)!=(e|0)){continue}break}}d=j&3;if(d){while(1){J[J[i>>2]+(c<<2)>>2]=0;c=c+1|0;f=f+1|0;if((d|0)!=(f|0)){continue}break}}e=J[i+8>>2];if(!e){break u}d=i+8|0;h=J[e+4>>2];c=am(j);if(c>>>0<2){break w}h=h>>>0>=j>>>0?(h>>>0)%(j>>>0)|0:h;J[J[i>>2]+(h<<2)>>2]=d;d=J[e>>2];if(!d){break u}if(c>>>0<=1){break v}while(1){f=J[d+4>>2];if(j>>>0<=f>>>0){f=(f>>>0)%(j>>>0)|0}y:{if((f|0)==(h|0)){e=d;break y}c=d;r=f<<2;n=r+J[i>>2]|0;if(!J[n>>2]){J[n>>2]=e;e=d;h=f;break y}while(1){f=c;c=J[c>>2];if(c){m=K[d+8|0];n=K[c+8|0];z:{if((m|0)!=(n|0)){m=(m|0)==(n|0);break z}m=K[d+9|0]==K[c+9|0]}if(m){continue}}break}J[e>>2]=c;J[f>>2]=J[J[r+J[i>>2]>>2]>>2];J[J[r+J[i>>2]>>2]>>2]=d}d=J[e>>2];if(d){continue}break}break u}d=J[i>>2];J[i>>2]=0;if(d){fl(d)}J[i+4>>2]=0;break u}$a();C()}h=j-1&h;J[J[i>>2]+(h<<2)>>2]=d;d=J[e>>2];if(!d){break u}}m=j-1|0;while(1){f=m&J[d+4>>2];A:{if((f|0)==(h|0)){e=d;break A}c=d;r=f<<2;j=r+J[i>>2]|0;if(J[j>>2]){while(1){f=c;c=J[c>>2];if(c){n=K[d+8|0];j=K[c+8|0];B:{if((n|0)!=(j|0)){j=(j|0)==(n|0);break B}j=K[d+9|0]==K[c+9|0]}if(j){continue}}break}J[e>>2]=c;J[f>>2]=J[J[r+J[i>>2]>>2]>>2];J[J[r+J[i>>2]>>2]>>2]=d;break A}J[j>>2]=e;e=d;h=f}d=J[e>>2];if(d){continue}break}}}e=J[i+4>>2];d=e-1|0;if(!(d&e)){d=d&k;break n}if(e>>>0>k>>>0){d=k;break n}d=(k>>>0)%(e>>>0)|0}c=J[i>>2]+(d<<2)|0;d=J[c>>2];C:{D:{if(!d){d=i+8|0;J[l>>2]=J[d>>2];J[i+8>>2]=l;J[c>>2]=d;d=J[l>>2];if(!d){break C}d=J[d+4>>2];c=e-1|0;E:{if(!(c&e)){d=c&d;break E}if(d>>>0>>0){break E}d=(d>>>0)%(e>>>0)|0}d=J[i>>2]+(d<<2)|0;break D}J[l>>2]=J[d>>2]}J[d>>2]=l}J[i+12>>2]=J[i+12>>2]+1;d=1}H[g+60|0]=d;J[g+56>>2]=l;d=J[a+40>>2];lk(J[J[a>>2]>>2]+P(d,q)|0,g+30|0,d);m=J[g+8>>2];J[m+(s<<2)>>2]=q;q=q+1|0}d=s+1|0;o=d?o:o+1|0;s=d;c=J[a+80>>2];if(!o&c>>>0>d>>>0){continue}break}if((c|0)!=(q|0)){F:{if(!K[a+84|0]){b=J[a+72>>2];f=J[a+68>>2];if((b|0)==(f|0)){break F}b=b-f>>2;c=b>>>0<=1?1:b;h=c&3;d=0;b=0;if(c-1>>>0>=3){o=c&-4;e=0;while(1){k=b<<2;c=k+f|0;J[c>>2]=J[(J[c>>2]<<2)+m>>2];c=f+(k|4)|0;J[c>>2]=J[(J[c>>2]<<2)+m>>2];c=f+(k|8)|0;J[c>>2]=J[(J[c>>2]<<2)+m>>2];c=f+(k|12)|0;J[c>>2]=J[(J[c>>2]<<2)+m>>2];b=b+4|0;e=e+4|0;if((o|0)!=(e|0)){continue}break}}if(!h){break F}while(1){c=f+(b<<2)|0;J[c>>2]=J[(J[c>>2]<<2)+m>>2];b=b+1|0;d=d+1|0;if((h|0)!=(d|0)){continue}break}break F}H[a+84|0]=0;e=a+68|0;b=J[a+68>>2];d=J[a+72>>2]-b>>2;G:{if(d>>>0>>0){ub(e,c-d|0,2184);c=J[a+80>>2];break G}if(c>>>0>=d>>>0){break G}J[a+72>>2]=b+(c<<2)}if(!c){break F}f=J[e>>2];d=0;b=0;if(c>>>0>=4){h=c&-4;e=0;while(1){k=b<<2;J[k+f>>2]=J[k+m>>2];o=k|4;J[o+f>>2]=J[m+o>>2];o=k|8;J[o+f>>2]=J[m+o>>2];o=k|12;J[o+f>>2]=J[m+o>>2];b=b+4|0;e=e+4|0;if((h|0)!=(e|0)){continue}break}}e=c&3;if(!e){break F}while(1){c=b<<2;J[c+f>>2]=J[c+m>>2];b=b+1|0;d=d+1|0;if((e|0)!=(d|0)){continue}break}}J[a+80>>2]=q}fl(m)}b=J[g+40>>2];if(b){while(1){a=J[b>>2];fl(b);b=a;if(b){continue}break}}a=J[g+32>>2];J[g+32>>2]=0;if(a){fl(a)}ia=g- -64|0;return q}La();C()}function Nk(a,b,c,d,e,f){a=a|0;b=+b;c=c|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,w=0,x=0,y=0,z=0;l=ia-560|0;ia=l;J[l+44>>2]=0;A(+b);g=v(1)|0;v(0)|0;a:{if((g|0)<0){s=1;w=1173;b=-b;A(+b);g=v(1)|0;v(0)|0;break a}if(e&2048){s=1;w=1176;break a}s=e&1;w=s?1179:1174;z=!s}b:{if((g&2146435072)==2146435072){d=s+3|0;Lk(a,32,c,d,e&-65537);Hk(a,w,s);f=f&32;Hk(a,b!=b?f?1434:1643:f?1506:1647,3);Lk(a,32,c,d,e^8192);i=(c|0)<(d|0)?d:c;break b}u=l+16|0;c:{d:{e:{b=Ek(b,l+44|0);b=b+b;if(b!=0){g=J[l+44>>2];J[l+44>>2]=g-1;r=f|32;if((r|0)!=97){break e}break c}r=f|32;if((r|0)==97){break c}k=J[l+44>>2];m=(d|0)<0?6:d;break d}k=g-29|0;J[l+44>>2]=k;b=b*268435456;m=(d|0)<0?6:d}p=(l+48|0)+((k|0)>=0?288:0)|0;h=p;while(1){if(b<4294967296&b>=0){d=~~b>>>0}else{d=0}J[h>>2]=d;h=h+4|0;b=(b-+(d>>>0))*1e9;if(b!=0){continue}break}f:{if((k|0)<=0){d=k;g=h;j=p;break f}j=p;d=k;while(1){d=(d|0)>=29?29:d;g=h-4|0;g:{if(j>>>0>g>>>0){break g}i=0;while(1){o=J[g>>2];n=d&31;x=i;if((d&63)>>>0>=32){i=o<>>32-n;o=o<>>0>>0?i+1|0:i;i=$l(n,i,1e9,0);o=Zl(i,ma,1e9,0);J[g>>2]=n-o;g=g-4|0;if(j>>>0<=g>>>0){continue}break}if(!i){break g}j=j-4|0;J[j>>2]=i}while(1){g=h;if(j>>>0>>0){h=g-4|0;if(!J[h>>2]){continue}}break}d=J[l+44>>2]-d|0;J[l+44>>2]=d;h=g;if((d|0)>0){continue}break}}if((d|0)<0){t=((m+25>>>0)/9|0)+1|0;n=(r|0)==102;while(1){d=0-d|0;i=(d|0)>=9?9:d;h:{if(g>>>0<=j>>>0){h=J[j>>2];break h}o=1e9>>>i|0;y=-1<>2];J[h>>2]=x+(d>>>i|0);d=P(o,d&y);h=h+4|0;if(h>>>0>>0){continue}break}h=J[j>>2];if(!d){break h}J[g>>2]=d;g=g+4|0}d=i+J[l+44>>2]|0;J[l+44>>2]=d;j=(!h<<2)+j|0;h=n?p:j;g=g-h>>2>(t|0)?h+(t<<2)|0:g;if((d|0)<0){continue}break}}d=0;i:{if(g>>>0<=j>>>0){break i}d=P(p-j>>2,9);h=10;i=J[j>>2];if(i>>>0<10){break i}while(1){d=d+1|0;h=P(h,10);if(i>>>0>=h>>>0){continue}break}}h=(m-((r|0)!=102?d:0)|0)-((r|0)==103&(m|0)!=0)|0;if((h|0)<(P(g-p>>2,9)-9|0)){i=h+9216|0;n=(i|0)/9|0;k=((((k|0)<0?4:292)+l|0)+(n<<2)|0)-4048|0;h=10;i=i-P(n,9)|0;if((i|0)<=7){while(1){h=P(h,10);i=i+1|0;if((i|0)!=8){continue}break}}n=J[k>>2];t=(n>>>0)/(h>>>0)|0;i=n-P(h,t)|0;o=k+4|0;j:{if(!i&(o|0)==(g|0)){break j}k:{if(!(t&1)){b=9007199254740992;if(!(H[k-4|0]&1)|((h|0)!=1e9|j>>>0>=k>>>0)){break k}}b=9007199254740994}q=(g|0)==(o|0)?1:1.5;o=h>>>1|0;q=i>>>0>>0?.5:(o|0)==(i|0)?q:1.5;if(!(K[w|0]!=45|z)){q=-q;b=-b}i=n-i|0;J[k>>2]=i;if(b+q==b){break j}d=h+i|0;J[k>>2]=d;if(d>>>0>=1e9){while(1){J[k>>2]=0;k=k-4|0;if(k>>>0>>0){j=j-4|0;J[j>>2]=0}d=J[k>>2]+1|0;J[k>>2]=d;if(d>>>0>999999999){continue}break}}d=P(p-j>>2,9);h=10;i=J[j>>2];if(i>>>0<10){break j}while(1){d=d+1|0;h=P(h,10);if(i>>>0>=h>>>0){continue}break}}h=k+4|0;g=g>>>0>h>>>0?h:g}while(1){h=g;i=g>>>0<=j>>>0;if(!i){g=h-4|0;if(!J[g>>2]){continue}}break}l:{if((r|0)!=103){k=e&8;break l}g=m?m:1;k=(g|0)>(d|0)&(d|0)>-5;m=(k?d^-1:-1)+g|0;f=(k?-1:-2)+f|0;k=e&8;if(k){break l}g=-9;m:{if(i){break m}n=J[h-4>>2];if(!n){break m}i=10;g=0;if((n>>>0)%10|0){break m}while(1){k=g;g=g+1|0;i=P(i,10);if(!((n>>>0)%(i>>>0)|0)){continue}break}g=k^-1}i=P(h-p>>2,9);if((f&-33)==70){k=0;g=(g+i|0)-9|0;g=(g|0)>0?g:0;m=(g|0)>(m|0)?m:g;break l}k=0;g=((d+i|0)+g|0)-9|0;g=(g|0)>0?g:0;m=(g|0)>(m|0)?m:g}i=-1;r=k|m;if(((r?2147483645:2147483646)|0)<(m|0)){break b}n=(((r|0)!=0)+m|0)+1|0;o=f&-33;n:{if((o|0)==70){if((n^2147483647)<(d|0)){break b}g=(d|0)>0?d:0;break n}g=d>>31;g=Kk((g^d)-g|0,0,u);if((u-g|0)<=1){while(1){g=g-1|0;H[g|0]=48;if((u-g|0)<2){continue}break}}t=g-2|0;H[t|0]=f;H[g-1|0]=(d|0)<0?45:43;g=u-t|0;if((g|0)>(n^2147483647)){break b}}d=g+n|0;if((d|0)>(s^2147483647)){break b}f=d+s|0;Lk(a,32,c,f,e);Hk(a,w,s);Lk(a,48,c,f,e^65536);o:{p:{q:{if((o|0)==70){g=l+16|0;d=g|8;k=g|9;i=j>>>0>p>>>0?p:j;j=i;while(1){g=Kk(J[j>>2],0,k);r:{if((i|0)!=(j|0)){if(l+16>>>0>=g>>>0){break r}while(1){g=g-1|0;H[g|0]=48;if(l+16>>>0>>0){continue}break}break r}if((g|0)!=(k|0)){break r}H[l+24|0]=48;g=d}Hk(a,g,k-g|0);j=j+4|0;if(p>>>0>=j>>>0){continue}break}if(r){Hk(a,1981,1)}if((m|0)<=0|h>>>0<=j>>>0){break q}while(1){g=Kk(J[j>>2],0,k);if(g>>>0>l+16>>>0){while(1){g=g-1|0;H[g|0]=48;if(l+16>>>0>>0){continue}break}}Hk(a,g,(m|0)>=9?9:m);g=m-9|0;j=j+4|0;if(h>>>0<=j>>>0){break p}d=(m|0)>9;m=g;if(d){continue}break}break p}s:{if((m|0)<0){break s}i=h>>>0>j>>>0?h:j+4|0;g=l+16|0;d=g|8;p=g|9;h=j;while(1){g=Kk(J[h>>2],0,p);if((p|0)==(g|0)){H[l+24|0]=48;g=d}t:{if((h|0)!=(j|0)){if(l+16>>>0>=g>>>0){break t}while(1){g=g-1|0;H[g|0]=48;if(l+16>>>0>>0){continue}break}break t}Hk(a,g,1);g=g+1|0;if(!(k|m)){break t}Hk(a,1981,1)}x=g;g=p-g|0;Hk(a,x,(g|0)>(m|0)?m:g);m=m-g|0;h=h+4|0;if(i>>>0<=h>>>0){break s}if((m|0)>=0){continue}break}}Lk(a,48,m+18|0,18,0);Hk(a,t,u-t|0);break o}g=m}Lk(a,48,g+9|0,9,0)}Lk(a,32,c,f,e^8192);i=(c|0)<(f|0)?f:c;break b}m=(f<<26>>31&9)+w|0;u:{if(d>>>0>11){break u}g=12-d|0;q=16;while(1){q=q*16;g=g-1|0;if(g){continue}break}if(K[m|0]==45){b=-(q+(-b-q));break u}b=b+q-q}h=J[l+44>>2];g=h>>31;g=Kk((g^h)-g|0,0,u);if((u|0)==(g|0)){H[l+15|0]=48;g=l+15|0}k=s|2;j=f&32;h=J[l+44>>2];p=g-2|0;H[p|0]=f+15;H[g-1|0]=(h|0)<0?45:43;i=e&8;h=l+16|0;while(1){f=h;if(R(b)<2147483648){g=~~b}else{g=-2147483648}H[h|0]=j|K[g+17776|0];b=(b-+(g|0))*16;h=f+1|0;if(!(!((d|0)>0|i)&b==0|(h-(l+16|0)|0)!=1)){H[f+1|0]=46;h=f+2|0}if(b!=0){continue}break}i=-1;n=u-p|0;f=n+k|0;if((2147483645-f|0)<(d|0)){break b}v:{w:{if(!d){break w}j=h-(l+16|0)|0;if((j-2|0)>=(d|0)){break w}g=d+2|0;break v}j=h-(l+16|0)|0;g=j}d=g+f|0;Lk(a,32,c,d,e);Hk(a,m,k);Lk(a,48,c,d,e^65536);Hk(a,l+16|0,j);Lk(a,48,g-j|0,0,0);Hk(a,p,n);Lk(a,32,c,d,e^8192);i=(c|0)<(d|0)?d:c}ia=l+560|0;return i|0}function Ub(a,b,c,d,e){var f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,D=0,E=0,F=0,G=0,H=0,I=0,K=0,L=0,N=0,O=0;o=ia-32|0;ia=o;J[a>>2]=J[d>>2];d=J[c>>2]-J[b>>2]|0;J[a+4>>2]=d;k=J[e+20>>2];if(!J[e+16>>2]&(k|0)<=0|(k|0)<0){d=a+4|0;Ea(e,J[e+4>>2],a,d);k=J[e+20>>2];if(!J[e+16>>2]&(k|0)<=0|(k|0)<0){Ea(e,J[e+4>>2],d,a+8|0)}d=J[d>>2]}if(d){B=a+12|0;$b(B);D=a+1068|0;d=D;J[d+12>>2]=0;J[d+16>>2]=0;J[d+4>>2]=J[d>>2];E=a+1088|0;d=E;J[d+12>>2]=0;J[d+16>>2]=0;J[d+4>>2]=J[d>>2];F=a+1108|0;d=F;J[d+12>>2]=0;J[d+16>>2]=0;J[d+4>>2]=J[d>>2];J[o+24>>2]=J[b+8>>2];d=J[b+4>>2];J[o+16>>2]=J[b>>2];J[o+20>>2]=d;J[o+8>>2]=J[c+8>>2];b=J[c+4>>2];J[o>>2]=J[c>>2];J[o+4>>2]=b;b=0;f=ia-32|0;ia=f;d=a;h=J[a+8>>2];J[f+16>>2]=0;J[f+8>>2]=0;J[f+12>>2]=0;a:{b:{if(h){if(h>>>0>=1073741824){break b}a=h<<2;b=ll(a);J[f+8>>2]=b;g=a+b|0;J[f+16>>2]=g;nk(b,0,a);J[f+12>>2]=g}a=J[d+1164>>2];c=J[a>>2];if(c){J[a+4>>2]=c;fl(c);h=J[d+8>>2];g=J[f+12>>2];b=J[f+8>>2]}J[a+4>>2]=g;J[a>>2]=b;J[a+8>>2]=J[f+16>>2];b=0;J[f+16>>2]=0;J[f+8>>2]=0;J[f+12>>2]=0;a=0;c:{if(h){if(h>>>0>=1073741824){break c}c=h<<2;a=ll(c);J[f+8>>2]=a;b=a+c|0;J[f+16>>2]=b;nk(a,0,c);J[f+12>>2]=b}c=J[d+1176>>2];k=J[c>>2];if(k){J[c+4>>2]=k;fl(k);b=J[f+12>>2];a=J[f+8>>2]}J[c+4>>2]=b;J[c>>2]=a;J[c+8>>2]=J[f+16>>2];t=J[o+20>>2];q=J[o+24>>2];w=J[o+4>>2];x=J[o+8>>2];b=J[o>>2];c=J[o+16>>2];J[f+24>>2]=0;J[f+28>>2]=0;J[f+16>>2]=0;J[f+20>>2]=0;J[f+8>>2]=0;J[f+12>>2]=0;fc(f+8|0);a=J[f+24>>2]+J[f+28>>2]|0;k=(a>>>0)/113|0;a=J[J[f+12>>2]+(k<<2)>>2]+P(a-P(k,113)|0,36)|0;J[a+32>>2]=0;J[a+28>>2]=b-c;J[a+24>>2]=0;J[a+16>>2]=w;J[a+20>>2]=x;J[a+12>>2]=b;J[a+4>>2]=t;J[a+8>>2]=q;J[a>>2]=c;h=J[f+28>>2]+1|0;J[f+28>>2]=h;if(h){K=q&-4;G=q&3;L=d+1068|0;H=d+12|0;N=d+1108|0;O=q>>>0<4;while(1){b=J[f+12>>2];m=J[f+24>>2];j=h-1|0;a=m+j|0;c=(a>>>0)/113|0;a=J[b+(c<<2)>>2]+P(a-P(c,113)|0,36)|0;z=J[a+32>>2];g=J[a+24>>2];k=J[a+12>>2];c=J[a>>2];J[f+28>>2]=j;a=J[f+16>>2];if((((a|0)!=(b|0)?P(a-b>>2,113)-1|0:0)-(h+m|0)|0)+1>>>0>=226){fl(J[a-4>>2]);J[f+16>>2]=J[f+16>>2]-4}b=J[d>>2];h=(g|0)!=(J[d+8>>2]-1|0)?g+1|0:0;m=h<<2;y=P(z,12);j=y+J[d+1176>>2]|0;g=J[m+J[j>>2]>>2];d:{e:{if((b|0)==(g|0)){break e}f:{g:{s=k-c|0;if(s>>>0<=2){g=J[d+1152>>2];J[g>>2]=h;b=1;a=J[d+8>>2];if(a>>>0>1){break g}break f}j=J[d+1164>>2];a=j+y|0;i=j;j=y+12|0;Ta(i+j|0,J[a>>2],J[a+4>>2]);a=m+J[j+J[d+1164>>2]>>2]|0;j=J[a>>2]+(1<>2]=j;a=c;h:{if((k|0)==(a|0)){break h}I=J[t+24>>2];a=k;b=c;if(!q){if(j>>>0>M[m+I>>2]){break h}while(1){a=a-1|0;if((b|0)==(a|0)){a=b;break h}if(j>>>0<=M[(m+J[w+24>>2]|0)+(P(a,x)<<2)>>2]){continue}b=b+1|0;if((b|0)!=(a|0)){continue}break}break h}while(1){n=(P(b,q)<<2)+I|0;if(j>>>0>M[n+m>>2]){b=b+1|0;if((b|0)!=(a|0)){continue}break h}while(1){a=a-1|0;if((b|0)==(a|0)){a=b;break h}p=J[w+24>>2]+(P(a,x)<<2)|0;if(j>>>0<=M[p+m>>2]){continue}break}A=0;g=0;u=0;if(!O){while(1){l=g<<2;i=l+n|0;r=J[i>>2];v=i;i=l+p|0;J[v>>2]=J[i>>2];J[i>>2]=r;i=l|4;r=i+n|0;v=J[r>>2];i=i+p|0;J[r>>2]=J[i>>2];J[i>>2]=v;i=l|8;r=i+n|0;v=J[r>>2];i=i+p|0;J[r>>2]=J[i>>2];J[i>>2]=v;l=l|12;i=l+n|0;r=J[i>>2];l=l+p|0;J[i>>2]=J[l>>2];J[l>>2]=r;g=g+4|0;u=u+4|0;if((K|0)!=(u|0)){continue}break}}if(G){while(1){l=g<<2;u=l+n|0;i=J[u>>2];l=l+p|0;J[u>>2]=J[l>>2];J[l>>2]=i;g=g+1|0;A=A+1|0;if((A|0)!=(G|0)){continue}break}}b=b+1|0;if((b|0)!=(a|0)){continue}break}}j=a-c|0;n=k-a|0;if((j|0)!=(n|0)){gc(N,j>>>0>>0)}l=z+1|0;b=S(s);p=b^31;g=s>>>1|0;i:{if(j>>>0>>0){if(!p){break i}s=g-j|0;b=1<<30-b;g=0;while(1){Fe((g<<5)+H|0,(b&s)!=0);b=b>>>1|0;g=g+1|0;if((p|0)!=(g|0)){continue}break}break i}if(!p){break i}s=g-n|0;b=1<<30-b;g=0;while(1){Fe((g<<5)+H|0,(b&s)!=0);b=b>>>1|0;g=g+1|0;if((p|0)!=(g|0)){continue}break}}i=m;b=J[d+1176>>2];g=b+y|0;m=J[g>>2];p=i+m|0;J[p>>2]=J[p>>2]+1;Ta(b+P(l,12)|0,m,J[g+4>>2]);if((a|0)!=(c|0)){g=J[f+28>>2]+J[f+24>>2]|0;m=J[f+16>>2];b=J[f+12>>2];if((g|0)==(((b|0)!=(m|0)?P(m-b>>2,113)-1|0:0)|0)){fc(f+8|0);g=J[f+24>>2]+J[f+28>>2]|0;i=J[f+12>>2]}else{i=b}b=(g>>>0)/113|0;b=J[i+(b<<2)>>2]+P(g-P(b,113)|0,36)|0;J[b+32>>2]=z;J[b+28>>2]=j;J[b+24>>2]=h;J[b+16>>2]=t;J[b+12>>2]=a;J[b+4>>2]=t;J[b+8>>2]=q;J[b>>2]=c;J[b+20>>2]=q;J[f+28>>2]=J[f+28>>2]+1}if((a|0)==(k|0)){break e}g=J[f+28>>2]+J[f+24>>2]|0;c=J[f+16>>2];b=J[f+12>>2];if((g|0)==(((b|0)!=(c|0)?P(c-b>>2,113)-1|0:0)|0)){fc(f+8|0);g=J[f+24>>2]+J[f+28>>2]|0;c=J[f+12>>2]}else{c=b}b=(g>>>0)/113|0;b=J[c+(b<<2)>>2]+P(g-P(b,113)|0,36)|0;J[b+32>>2]=l;J[b+28>>2]=n;J[b+24>>2]=h;J[b+16>>2]=w;J[b+20>>2]=x;J[b+12>>2]=k;J[b+4>>2]=t;J[b>>2]=a;J[b+8>>2]=q;h=J[f+28>>2]+1|0;J[f+28>>2]=h;break d}while(1){h=(a-1|0)!=(h|0)?h+1|0:0;J[g+(b<<2)>>2]=h;a=J[d+8>>2];b=b+1|0;if(a>>>0>b>>>0){continue}break}}g=0;b=a;if((c|0)==(k|0)){break e}while(1){j:{if(!b){b=0;break j}k=J[t+24>>2]+(P(J[t+4>>2],c+g|0)<<2)|0;h=0;while(1){b=J[d>>2];m=J[J[d+1152>>2]+(h<<2)>>2]<<2;n=J[m+J[j>>2]>>2];if((b|0)!=(n|0)){hc(L,b-n|0,J[k+m>>2]);a=J[d+8>>2]}b=a;h=h+1|0;if(h>>>0>>0){continue}break}}g=g+1|0;if((s|0)!=(g|0)){continue}break}}h=J[f+28>>2]}if(h){continue}break}}J[f+28>>2]=0;c=J[f+16>>2];h=J[f+12>>2];a=c-h|0;if(a>>>0>=9){while(1){fl(J[h>>2]);h=J[f+12>>2]+4|0;J[f+12>>2]=h;c=J[f+16>>2];a=c-h|0;if(a>>>0>8){continue}break}}b=56;k:{switch((a>>>2|0)-1|0){case 1:b=113;case 0:J[f+24>>2]=b;break;default:break k}}l:{if((c|0)==(h|0)){break l}while(1){fl(J[h>>2]);h=h+4|0;if((h|0)!=(c|0)){continue}break}a=J[f+16>>2];b=J[f+12>>2];if((a|0)==(b|0)){break l}J[f+16>>2]=a+((b-a|0)+3&-4)}a=J[f+8>>2];if(a){fl(a)}ia=f+32|0;break a}La();C()}La();C()}ac(B,e);Be(D,e);Be(E,e);Be(F,e)}ia=o+32|0;return 1}function Gk(a,b,c,d,e){var f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0;h=ia-80|0;ia=h;J[h+76>>2]=b;w=h+55|0;q=h+56|0;a:{b:{c:{d:{e:while(1){j=b;if((n^2147483647)<(f|0)){break d}n=f+n|0;f:{g:{h:{f=j;g=K[f|0];if(g){while(1){i:{b=g&255;j:{if(!b){b=f;break j}if((b|0)!=37){break i}g=f;while(1){if(K[g+1|0]!=37){b=g;break j}f=f+1|0;i=K[g+2|0];b=g+2|0;g=b;if((i|0)==37){continue}break}}f=f-j|0;v=n^2147483647;if((f|0)>(v|0)){break d}if(a){Hk(a,j,f)}if(f){continue e}J[h+76>>2]=b;f=b+1|0;o=-1;if(!(K[b+2|0]!=36|H[b+1|0]-48>>>0>=10)){o=H[b+1|0]-48|0;r=1;f=b+3|0}J[h+76>>2]=f;l=0;g=H[f|0];b=g-32|0;k:{if(b>>>0>31){i=f;break k}i=f;b=1<>2]=i;l=b|l;g=H[f+1|0];b=g-32|0;if(b>>>0>=32){break k}f=i;b=1<>>0>=10)){J[((H[i+1|0]<<2)+e|0)-192>>2]=10;g=i+3|0;r=1;b=J[((H[i+1|0]<<3)+d|0)-384>>2];break m}if(r){break h}g=i+1|0;if(!a){J[h+76>>2]=g;r=0;p=0;break l}b=J[c>>2];J[c>>2]=b+4;r=0;b=J[b>>2]}p=b;J[h+76>>2]=g;if((p|0)>=0){break l}p=0-p|0;l=l|8192;break l}p=Ik(h+76|0);if((p|0)<0){break d}g=J[h+76>>2]}f=0;k=-1;n:{if(K[g|0]!=46){b=g;u=0;break n}if(K[g+1|0]==42){o:{if(!(K[g+3|0]!=36|H[g+2|0]-48>>>0>=10)){J[((H[g+2|0]<<2)+e|0)-192>>2]=10;b=g+4|0;k=J[((H[g+2|0]<<3)+d|0)-384>>2];break o}if(r){break h}b=g+2|0;k=0;if(!a){break o}g=J[c>>2];J[c>>2]=g+4;k=J[g>>2]}J[h+76>>2]=b;u=(k^-1)>>>31|0;break n}J[h+76>>2]=g+1;k=Ik(h+76|0);b=J[h+76>>2];u=1}while(1){m=f;i=28;s=b;f=H[b|0];if(f-123>>>0<4294967238){break c}b=s+1|0;f=K[(f+P(m,58)|0)+17247|0];if(f-1>>>0<8){continue}break}J[h+76>>2]=b;p:{q:{if((f|0)!=27){if(!f){break c}if((o|0)>=0){J[(o<<2)+e>>2]=f;f=(o<<3)+d|0;g=J[f+4>>2];J[h+64>>2]=J[f>>2];J[h+68>>2]=g;break q}if(!a){break f}Jk(h- -64|0,f,c);break p}if((o|0)>=0){break c}}f=0;if(!a){continue e}}g=l&-65537;l=l&8192?g:l;o=0;t=1163;i=q;r:{s:{t:{u:{v:{w:{x:{y:{z:{A:{B:{C:{D:{E:{F:{G:{f=H[s|0];f=m?(f&15)==3?f&-33:f:f;switch(f-88|0){case 11:break r;case 9:case 13:case 14:case 15:break s;case 27:break x;case 12:case 17:break A;case 23:break B;case 0:case 32:break C;case 24:break D;case 22:break E;case 29:break F;case 1:case 2:case 3:case 4:case 5:case 6:case 7:case 8:case 10:case 16:case 18:case 19:case 20:case 21:case 25:case 26:case 28:case 30:case 31:break g;default:break G}}H:{switch(f-65|0){case 0:case 4:case 5:case 6:break s;case 2:break v;case 1:case 3:break g;default:break H}}if((f|0)==83){break w}break g}m=J[h+64>>2];g=J[h+68>>2];t=1163;break z}f=0;I:{switch(m&255){case 0:J[J[h+64>>2]>>2]=n;continue e;case 1:J[J[h+64>>2]>>2]=n;continue e;case 2:j=J[h+64>>2];J[j>>2]=n;J[j+4>>2]=n>>31;continue e;case 3:I[J[h+64>>2]>>1]=n;continue e;case 4:H[J[h+64>>2]]=n;continue e;case 6:J[J[h+64>>2]>>2]=n;continue e;case 7:break I;default:continue e}}j=J[h+64>>2];J[j>>2]=n;J[j+4>>2]=n>>31;continue e}k=k>>>0<=8?8:k;l=l|8;f=120}j=q;x=f&32;m=J[h+64>>2];g=J[h+68>>2];if(m|g){while(1){j=j-1|0;H[j|0]=x|K[(m&15)+17776|0];s=!g&m>>>0>15|(g|0)!=0;m=(g&15)<<28|m>>>4;g=g>>>4|0;if(s){continue}break}}if(!(J[h+64>>2]|J[h+68>>2])|!(l&8)){break y}t=(f>>>4|0)+1163|0;o=2;break y}f=q;j=J[h+68>>2];g=j;m=J[h+64>>2];if(g|m){while(1){f=f-1|0;H[f|0]=m&7|48;s=!g&m>>>0>7|(g|0)!=0;m=(g&7)<<29|m>>>3;g=g>>>3|0;if(s){continue}break}}j=f;if(!(l&8)){break y}f=q-j|0;k=(f|0)<(k|0)?k:f+1|0;break y}f=J[h+68>>2];g=f;m=J[h+64>>2];if((f|0)<0){g=0-(g+((m|0)!=0)|0)|0;m=0-m|0;J[h+64>>2]=m;J[h+68>>2]=g;o=1;t=1163;break z}if(l&2048){o=1;t=1164;break z}o=l&1;t=o?1165:1163}j=Kk(m,g,q)}if((k|0)<0?u:0){break d}l=u?l&-65537:l;g=J[h+64>>2];f=J[h+68>>2];if(!(k|(g|f)!=0)){j=q;i=j;k=0;break g}f=!(f|g)+(q-j|0)|0;k=(f|0)<(k|0)?k:f;break g}m=k>>>0>=2147483647?2147483647:k;i=m;l=(i|0)!=0;f=J[h+64>>2];j=f?f:1983;f=j;J:{K:{L:{M:{if(!(f&3)|!i){break M}while(1){if(!K[f|0]){break L}i=i-1|0;l=(i|0)!=0;f=f+1|0;if(!(f&3)){break M}if(i){continue}break}}if(!l){break K}if(!(!K[f|0]|i>>>0<4)){while(1){l=J[f>>2];if((l^-1)&l-16843009&-2139062144){break L}f=f+4|0;i=i-4|0;if(i>>>0>3){continue}break}}if(!i){break K}}while(1){if(!K[f|0]){break J}f=f+1|0;i=i-1|0;if(i){continue}break}}f=0}f=f?f-j|0:m;i=f+j|0;if((k|0)>=0){l=g;k=f;break g}l=g;k=f;if(K[i|0]){break d}break g}if(k){g=J[h+64>>2];break u}f=0;Lk(a,32,p,0,l);break t}J[h+12>>2]=0;J[h+8>>2]=J[h+64>>2];g=h+8|0;J[h+64>>2]=g;k=-1}f=0;N:{while(1){j=J[g>>2];if(!j){break N}j=Pk(h+4|0,j);i=(j|0)<0;if(!(i|j>>>0>k-f>>>0)){g=g+4|0;f=f+j|0;if(k>>>0>f>>>0){continue}break N}break}if(i){break b}}i=61;if((f|0)<0){break c}Lk(a,32,p,f,l);if(!f){f=0;break t}i=0;g=J[h+64>>2];while(1){j=J[g>>2];if(!j){break t}j=Pk(h+4|0,j);i=j+i|0;if(i>>>0>f>>>0){break t}Hk(a,h+4|0,j);g=g+4|0;if(f>>>0>i>>>0){continue}break}}Lk(a,32,p,f,l^8192);f=(f|0)<(p|0)?p:f;continue e}if((k|0)<0?u:0){break d}i=61;f=Nk(a,O[h+64>>3],p,k,l,f);if((f|0)>=0){continue e}break c}H[h+55|0]=J[h+64>>2];k=1;j=w;l=g;break g}g=K[f+1|0];f=f+1|0;continue}}if(a){break a}if(!r){break f}f=1;while(1){a=J[(f<<2)+e>>2];if(a){Jk((f<<3)+d|0,a,c);n=1;f=f+1|0;if((f|0)!=10){continue}break a}break}n=1;if(f>>>0>=10){break a}while(1){if(J[(f<<2)+e>>2]){break h}f=f+1|0;if((f|0)!=10){continue}break}break a}i=28;break c}m=i-j|0;k=(k|0)>(m|0)?k:m;if((k|0)>(o^2147483647)){break d}i=61;g=k+o|0;f=(g|0)<(p|0)?p:g;if((v|0)<(f|0)){break c}Lk(a,32,f,g,l);Hk(a,t,o);Lk(a,48,f,g,l^65536);Lk(a,48,k,m,0);Hk(a,j,m);Lk(a,32,f,g,l^8192);continue}break}n=0;break a}i=61}J[4842]=i}n=-1}ia=h+80|0;return n}function ai(a,b,c,d){var e=0,f=0,g=0,h=0,i=0,j=0,k=0;g=ia-16|0;ia=g;J[b+44>>2]=d;J[b+48>>2]=c;d=J[b+12>>2];f=J[b+8>>2];if((d|0)!=(f|0)){while(1){d=d-4|0;e=J[d>>2];J[d>>2]=0;if(e){na[J[J[e>>2]+4>>2]](e)}if((d|0)!=(f|0)){continue}break}}J[b+12>>2]=f;J[b+24>>2]=J[b+20>>2];J[b+36>>2]=J[b+32>>2];a:{if(!J[b+4>>2]){b=ll(32);H[b+23|0]=0;c=K[1670]|K[1671]<<8|(K[1672]<<16|K[1673]<<24);d=K[1666]|K[1667]<<8|(K[1668]<<16|K[1669]<<24);H[b+15|0]=d;H[b+16|0]=d>>>8;H[b+17|0]=d>>>16;H[b+18|0]=d>>>24;H[b+19|0]=c;H[b+20|0]=c>>>8;H[b+21|0]=c>>>16;H[b+22|0]=c>>>24;c=K[1663]|K[1664]<<8|(K[1665]<<16|K[1666]<<24);d=K[1659]|K[1660]<<8|(K[1661]<<16|K[1662]<<24);H[b+8|0]=d;H[b+9|0]=d>>>8;H[b+10|0]=d>>>16;H[b+11|0]=d>>>24;H[b+12|0]=c;H[b+13|0]=c>>>8;H[b+14|0]=c>>>16;H[b+15|0]=c>>>24;c=K[1655]|K[1656]<<8|(K[1657]<<16|K[1658]<<24);d=K[1651]|K[1652]<<8|(K[1653]<<16|K[1654]<<24);H[b|0]=d;H[b+1|0]=d>>>8;H[b+2|0]=d>>>16;H[b+3|0]=d>>>24;H[b+4|0]=c;H[b+5|0]=c>>>8;H[b+6|0]=c>>>16;H[b+7|0]=c>>>24;J[a>>2]=-1;sl(a+4|0,b,23);fl(b);break a}d=ia-16|0;ia=d;e=J[b+44>>2];f=J[e+20>>2];if(!J[e+16>>2]&(f|0)<=0|(f|0)<0){Ea(e,J[e+4>>2],1637,1642)}e=na[J[J[b>>2]+8>>2]](b)|0;H[d+15|0]=e;H[d+14|0]=2;H[d+13|0]=e&255?2:3;e=J[b+44>>2];f=J[e+20>>2];b:{if(!!J[e+16>>2]&(f|0)>=0|(f|0)>0){break b}Ea(e,J[e+4>>2],d+14|0,d+15|0);e=J[b+44>>2];f=J[e+20>>2];if(!!J[e+16>>2]&(f|0)>=0|(f|0)>0){break b}Ea(e,J[e+4>>2],d+13|0,d+14|0);e=J[b+44>>2];f=J[e+20>>2];if(!!J[e+16>>2]&(f|0)>=0|(f|0)>0){break b}Ea(e,J[e+4>>2],d+15|0,d+16|0);e=J[b+44>>2]}j=d,k=na[J[J[b>>2]+12>>2]](b)|0,H[j+12|0]=k;f=J[e+20>>2];if(!J[e+16>>2]&(f|0)<=0|(f|0)<0){Ea(e,J[e+4>>2],d+12|0,d+13|0)}I[d+10>>1]=(J[J[b+4>>2]+4>>2]!=0)<<15;e=J[b+44>>2];f=J[e+20>>2];if(!J[e+16>>2]&(f|0)<=0|(f|0)<0){Ea(e,J[e+4>>2],d+10|0,d+12|0)}J[a>>2]=0;J[a+4>>2]=0;J[a+8>>2]=0;J[a+12>>2]=0;ia=d+16|0;if(J[a>>2]){break a}if(H[a+15|0]<0){fl(J[a+4>>2])}d=J[J[b+4>>2]+4>>2];c:{if(!d){J[a>>2]=0;J[a+4>>2]=0;J[a+8>>2]=0;J[a+12>>2]=0;break c}e=J[b+44>>2];if(d){Ab(J[d+28>>2]-J[d+24>>2]>>2,e);f=J[d+24>>2];i=J[d+28>>2];if((f|0)!=(i|0)){while(1){h=J[f>>2];if(h){Ab(J[h+24>>2],e);Vj(g,e,h)}f=f+4|0;if((i|0)!=(f|0)){continue}break}}Vj(g,e,d)}if(d){J[a>>2]=0;J[a+4>>2]=0;J[a+8>>2]=0;J[a+12>>2]=0;break c}d=ll(32);H[d+26|0]=0;e=K[1882]|K[1883]<<8;H[d+24|0]=e;H[d+25|0]=e>>>8;e=K[1878]|K[1879]<<8|(K[1880]<<16|K[1881]<<24);f=K[1874]|K[1875]<<8|(K[1876]<<16|K[1877]<<24);H[d+16|0]=f;H[d+17|0]=f>>>8;H[d+18|0]=f>>>16;H[d+19|0]=f>>>24;H[d+20|0]=e;H[d+21|0]=e>>>8;H[d+22|0]=e>>>16;H[d+23|0]=e>>>24;e=K[1870]|K[1871]<<8|(K[1872]<<16|K[1873]<<24);f=K[1866]|K[1867]<<8|(K[1868]<<16|K[1869]<<24);H[d+8|0]=f;H[d+9|0]=f>>>8;H[d+10|0]=f>>>16;H[d+11|0]=f>>>24;H[d+12|0]=e;H[d+13|0]=e>>>8;H[d+14|0]=e>>>16;H[d+15|0]=e>>>24;e=K[1862]|K[1863]<<8|(K[1864]<<16|K[1865]<<24);f=K[1858]|K[1859]<<8|(K[1860]<<16|K[1861]<<24);H[d|0]=f;H[d+1|0]=f>>>8;H[d+2|0]=f>>>16;H[d+3|0]=f>>>24;H[d+4|0]=e;H[d+5|0]=e>>>8;H[d+6|0]=e>>>16;H[d+7|0]=e>>>24;J[a>>2]=-1;sl(a+4|0,d,26);fl(d);if(J[a>>2]){break a}}if(H[a+15|0]<0){fl(J[a+4>>2])}if(!(na[J[J[b>>2]+16>>2]](b)|0)){b=ll(32);H[b+29|0]=0;c=K[1798]|K[1799]<<8|(K[1800]<<16|K[1801]<<24);d=K[1794]|K[1795]<<8|(K[1796]<<16|K[1797]<<24);H[b+21|0]=d;H[b+22|0]=d>>>8;H[b+23|0]=d>>>16;H[b+24|0]=d>>>24;H[b+25|0]=c;H[b+26|0]=c>>>8;H[b+27|0]=c>>>16;H[b+28|0]=c>>>24;c=K[1793]|K[1794]<<8|(K[1795]<<16|K[1796]<<24);d=K[1789]|K[1790]<<8|(K[1791]<<16|K[1792]<<24);H[b+16|0]=d;H[b+17|0]=d>>>8;H[b+18|0]=d>>>16;H[b+19|0]=d>>>24;H[b+20|0]=c;H[b+21|0]=c>>>8;H[b+22|0]=c>>>16;H[b+23|0]=c>>>24;c=K[1785]|K[1786]<<8|(K[1787]<<16|K[1788]<<24);d=K[1781]|K[1782]<<8|(K[1783]<<16|K[1784]<<24);H[b+8|0]=d;H[b+9|0]=d>>>8;H[b+10|0]=d>>>16;H[b+11|0]=d>>>24;H[b+12|0]=c;H[b+13|0]=c>>>8;H[b+14|0]=c>>>16;H[b+15|0]=c>>>24;c=K[1777]|K[1778]<<8|(K[1779]<<16|K[1780]<<24);d=K[1773]|K[1774]<<8|(K[1775]<<16|K[1776]<<24);H[b|0]=d;H[b+1|0]=d>>>8;H[b+2|0]=d>>>16;H[b+3|0]=d>>>24;H[b+4|0]=c;H[b+5|0]=c>>>8;H[b+6|0]=c>>>16;H[b+7|0]=c>>>24;J[a>>2]=-1;sl(a+4|0,b,29);fl(b);break a}if(!(na[J[J[b>>2]+20>>2]](b)|0)){b=ll(32);H[b+31|0]=0;c=K[1941]|K[1942]<<8|(K[1943]<<16|K[1944]<<24);d=K[1937]|K[1938]<<8|(K[1939]<<16|K[1940]<<24);H[b+23|0]=d;H[b+24|0]=d>>>8;H[b+25|0]=d>>>16;H[b+26|0]=d>>>24;H[b+27|0]=c;H[b+28|0]=c>>>8;H[b+29|0]=c>>>16;H[b+30|0]=c>>>24;c=K[1934]|K[1935]<<8|(K[1936]<<16|K[1937]<<24);d=K[1930]|K[1931]<<8|(K[1932]<<16|K[1933]<<24);H[b+16|0]=d;H[b+17|0]=d>>>8;H[b+18|0]=d>>>16;H[b+19|0]=d>>>24;H[b+20|0]=c;H[b+21|0]=c>>>8;H[b+22|0]=c>>>16;H[b+23|0]=c>>>24;c=K[1926]|K[1927]<<8|(K[1928]<<16|K[1929]<<24);d=K[1922]|K[1923]<<8|(K[1924]<<16|K[1925]<<24);H[b+8|0]=d;H[b+9|0]=d>>>8;H[b+10|0]=d>>>16;H[b+11|0]=d>>>24;H[b+12|0]=c;H[b+13|0]=c>>>8;H[b+14|0]=c>>>16;H[b+15|0]=c>>>24;c=K[1918]|K[1919]<<8|(K[1920]<<16|K[1921]<<24);d=K[1914]|K[1915]<<8|(K[1916]<<16|K[1917]<<24);H[b|0]=d;H[b+1|0]=d>>>8;H[b+2|0]=d>>>16;H[b+3|0]=d>>>24;H[b+4|0]=c;H[b+5|0]=c>>>8;H[b+6|0]=c>>>16;H[b+7|0]=c>>>24;J[a>>2]=-1;sl(a+4|0,b,31);fl(b);break a}na[J[J[b>>2]+24>>2]](a,b);if(J[a>>2]){break a}if(H[a+15|0]<0){fl(J[a+4>>2])}if(!(na[J[J[b>>2]+28>>2]](b)|0)){b=ye(g,1708);J[a>>2]=-1;a=a+4|0;if(H[b+11|0]>=0){c=J[b+4>>2];J[a>>2]=J[b>>2];J[a+4>>2]=c;J[a+8>>2]=J[b+8>>2];break a}sl(a,J[b>>2],J[b+4>>2]);if(H[b+11|0]>=0){break a}fl(J[b>>2]);break a}d=c;c=ye(g,1214);d=ri(d,c,0);if(H[c+11|0]<0){fl(J[c>>2])}if(d){na[J[J[b>>2]+48>>2]](b)}J[a>>2]=0;J[a+4>>2]=0;J[a+8>>2]=0;J[a+12>>2]=0}ia=g+16|0}function fk(a){a=a|0;var b=0,c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=Q(0),r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=Q(0),z=0,A=0;d=ia+-64|0;ia=d;f=J[a+80>>2];J[d+40>>2]=0;J[d+44>>2]=0;J[d+56>>2]=a;J[d+48>>2]=a;J[d+32>>2]=0;J[d+36>>2]=0;J[d+52>>2]=1065353216;e=2;a:{if((f|0)!=1){if(f&f-1){f=bl(f)}e=f;if(!f){break a}}gk(d+32|0,e)}f=J[a+80>>2];J[d+24>>2]=0;J[d+16>>2]=0;J[d+20>>2]=0;b:{c:{d:{e:{if(!f){break e}if(f>>>0>=1073741824){break b}f=f<<2;s=ll(f);J[d+16>>2]=s;b=f+s|0;J[d+24>>2]=b;nk(s,0,f);J[d+20>>2]=b;J[d+8>>2]=0;J[d>>2]=0;J[d+4>>2]=0;z=d+40|0;f=0;while(1){c=0;b=J[d+48>>2];m=J[b+8>>2];n=J[b+12>>2]-m|0;u=(n|0)<=0;f:{if(u){break f}b=n>>>2|0;b=b>>>0<=1?1:b;i=b&1;e=0;if(n>>>0>=8){j=b&1073741822;b=0;while(1){g=e<<2;h=J[g+m>>2];if(K[h+84|0]){h=f}else{h=J[J[h+68>>2]+(f<<2)>>2]}e=e+2|0;h=h<<3^c<<2;c=J[m+(g|4)>>2];if(K[c+84|0]){c=f}else{c=J[J[c+68>>2]+(f<<2)>>2]}c=h^c<<2;b=b+2|0;if((j|0)!=(b|0)){continue}break}}if(!i){break f}b=J[m+(e<<2)>>2];if(K[b+84|0]){b=f}else{b=J[J[b+68>>2]+(f<<2)>>2]}c=b<<2^c<<1}g:{h:{g=J[d+36>>2];if(!g){break h}i=J[d+32>>2];e=am(g)>>>0>1;b=g-1&c;i:{if(!e){break i}b=c;if(b>>>0>>0){break i}b=(c>>>0)%(g>>>0)|0}h=b;b=J[i+(h<<2)>>2];if(!b){break h}k=J[b>>2];if(!k){break h}p=J[d+56>>2];j:{k:{if(!e){v=g-1|0;while(1){b=J[k+4>>2];l:{if((b|0)!=(c|0)){if((h|0)==(b&v)){break l}break h}w=J[p+8>>2];b=J[p+12>>2]-w|0;if((b|0)<=0){break j}i=J[k+8>>2];l=1;o=b>>2;A=(o|0)<=1?1:o;e=0;while(1){b=f;j=J[w+(e<<2)>>2];if(K[j+84|0]){j=i}else{j=J[j+68>>2];b=J[j+(f<<2)>>2];j=J[j+(i<<2)>>2]}if((b|0)==(j|0)){e=e+1|0;l=(o|0)>(e|0);if((e|0)!=(A|0)){continue}}break}if(!l){break k}}k=J[k>>2];if(k){continue}break}break h}while(1){b=J[k+4>>2];m:{if((b|0)!=(c|0)){if(b>>>0>=g>>>0){b=(b>>>0)%(g>>>0)|0}if((b|0)==(h|0)){break m}break h}v=J[p+8>>2];b=J[p+12>>2]-v|0;if((b|0)<=0){break j}i=J[k+8>>2];l=1;o=b>>2;w=(o|0)<=1?1:o;e=0;while(1){b=f;j=J[v+(e<<2)>>2];if(K[j+84|0]){j=i}else{j=J[j+68>>2];b=J[j+(f<<2)>>2];j=J[j+(i<<2)>>2]}if((b|0)==(j|0)){e=e+1|0;l=(o|0)>(e|0);if((e|0)!=(w|0)){continue}}break}if(!l){break k}}k=J[k>>2];if(k){continue}break}break h}if(!k){break h}}J[(f<<2)+s>>2]=J[k+12>>2];break g}n:{if(u){h=0;break n}b=n>>>2|0;b=b>>>0<=1?1:b;i=b&1;h=0;e=0;if(n>>>0>=8){j=b&1073741822;b=0;while(1){l=e<<2;c=J[l+m>>2];if(K[c+84|0]){c=f}else{c=J[J[c+68>>2]+(f<<2)>>2]}e=e+2|0;h=c<<3^h<<2;c=J[m+(l|4)>>2];if(K[c+84|0]){c=f}else{c=J[J[c+68>>2]+(f<<2)>>2]}h=h^c<<2;b=b+2|0;if((j|0)!=(b|0)){continue}break}}if(!i){break n}b=J[m+(e<<2)>>2];if(K[b+84|0]){b=f}else{b=J[J[b+68>>2]+(f<<2)>>2]}h=b<<2^h<<1}o:{p:{if(!g){break p}l=g-1|0;if(l&g){k=g>>>0<=h>>>0?(h>>>0)%(g>>>0)|0:h;j=J[J[d+32>>2]+(k<<2)>>2];if(!j){break p}m=J[d+56>>2];while(1){j=J[j>>2];if(!j){break p}b=J[j+4>>2];if((b|0)!=(h|0)){if(b>>>0>=g>>>0){b=(b>>>0)%(g>>>0)|0}if((b|0)!=(k|0)){break p}}p=J[m+8>>2];b=J[m+12>>2]-p|0;if((b|0)<=0){break o}c=J[j+8>>2];l=1;n=b>>2;o=(n|0)<=1?1:n;e=0;while(1){b=f;i=J[p+(e<<2)>>2];if(K[i+84|0]){i=c}else{i=J[i+68>>2];b=J[i+(f<<2)>>2];i=J[i+(c<<2)>>2]}if((b|0)==(i|0)){e=e+1|0;l=(n|0)>(e|0);if((e|0)!=(o|0)){continue}}break}if(l){continue}break}break o}k=h&l;j=J[J[d+32>>2]+(k<<2)>>2];if(!j){break p}m=J[d+56>>2];while(1){j=J[j>>2];if(!j){break p}b=J[j+4>>2];if((b|0)!=(h|0)&(b&l)!=(k|0)){break p}o=J[m+8>>2];b=J[m+12>>2]-o|0;if((b|0)<=0){break o}c=J[j+8>>2];n=1;p=b>>2;u=(p|0)<=1?1:p;e=0;while(1){b=f;i=J[o+(e<<2)>>2];if(K[i+84|0]){i=c}else{i=J[i+68>>2];b=J[i+(f<<2)>>2];i=J[i+(c<<2)>>2]}if((b|0)==(i|0)){e=e+1|0;n=(p|0)>(e|0);if((e|0)!=(u|0)){continue}}break}if(n){continue}break}break o}e=ll(16);J[e+8>>2]=f;J[e+4>>2]=h;J[e>>2]=0;J[e+12>>2]=t;y=Q(J[d+44>>2]+1>>>0);q=N[d+52>>2];q:{if(y>Q(q*Q(g>>>0))?0:g){break q}c=2;k=(g-1&g)!=0|g>>>0<3|g<<1;q=Q(W(Q(y/q)));r:{if(q=Q(0)){b=~~q>>>0;break r}b=0}b=b>>>0>>0?k:b;s:{if((b|0)==1){break s}if(!(b&b-1)){c=b;break s}c=bl(b);g=J[d+36>>2]}t:{if(c>>>0<=g>>>0){if(c>>>0>=g>>>0){break t}k=g>>>0<3;q=Q(W(Q(Q(M[d+44>>2])/N[d+52>>2])));u:{if(q=Q(0)){b=~~q>>>0;break u}b=0}v:{w:{if(k){break w}if(am(g)>>>0>1){break w}b=b>>>0<2?b:1<<32-S(b-1|0);break v}b=bl(b)}c=b>>>0>>0?c:b;if(g>>>0<=c>>>0){break t}}gk(d+32|0,c)}g=J[d+36>>2];b=g-1|0;if(!(b&g)){k=b&h;break q}if(g>>>0>h>>>0){k=h;break q}k=(h>>>0)%(g>>>0)|0}b=J[d+32>>2]+(k<<2)|0;c=J[b>>2];x:{y:{if(!c){J[e>>2]=J[d+40>>2];J[d+40>>2]=e;J[b>>2]=z;b=J[e>>2];if(!b){break x}c=J[b+4>>2];b=g-1|0;z:{if(!(b&g)){c=b&c;break z}if(c>>>0>>0){break z}c=(c>>>0)%(g>>>0)|0}c=J[d+32>>2]+(c<<2)|0;break y}J[e>>2]=J[c>>2]}J[c>>2]=e}J[d+44>>2]=J[d+44>>2]+1;x=J[d+8>>2];r=J[d+4>>2];s=J[d+16>>2]}J[(f<<2)+s>>2]=t;t=t+1|0;if((r|0)!=(x|0)){J[r>>2]=f;r=r+4|0;J[d+4>>2]=r;break g}h=J[d>>2];c=x-h|0;i=c>>2;b=i+1|0;if(b>>>0>=1073741824){break d}e=c>>1;e=c>>>0>=2147483644?1073741823:b>>>0>>0?e:b;if(e){if(e>>>0>=1073741824){break c}b=ll(e<<2)}else{b=0}i=b+(i<<2)|0;J[i>>2]=f;x=b+(e<<2)|0;r=i+4|0;if((c|0)>0){lk(b,h,c)}J[d+8>>2]=x;J[d+4>>2]=r;J[d>>2]=b;if(!h){break g}fl(h)}f=f+1|0;b=J[a+80>>2];if(f>>>0>>0){continue}break}if((b|0)!=(t|0)){na[J[J[a>>2]+24>>2]](a,d+16|0,d);J[a+80>>2]=t}a=J[d>>2];if(!a){break e}J[d+4>>2]=a;fl(a)}a=J[d+16>>2];if(a){J[d+20>>2]=a;fl(a)}f=J[d+40>>2];if(f){while(1){a=J[f>>2];fl(f);f=a;if(f){continue}break}}a=J[d+32>>2];J[d+32>>2]=0;if(a){fl(a)}ia=d- -64|0;return}La();C()}$a();C()}La();C()}function Zb(a,b,c,d,e){var f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,D=0,E=0,F=0,G=0,H=0,I=0,K=0,L=0,N=0,O=0;o=ia-32|0;ia=o;J[a>>2]=J[d>>2];d=J[c>>2]-J[b>>2]|0;J[a+4>>2]=d;k=J[e+20>>2];if(!J[e+16>>2]&(k|0)<=0|(k|0)<0){d=a+4|0;Ea(e,J[e+4>>2],a,d);k=J[e+20>>2];if(!J[e+16>>2]&(k|0)<=0|(k|0)<0){Ea(e,J[e+4>>2],d,a+8|0)}d=J[d>>2]}if(d){B=a+12|0;d=B;J[d+12>>2]=0;J[d+16>>2]=0;J[d+4>>2]=J[d>>2];D=a+32|0;d=D;J[d+12>>2]=0;J[d+16>>2]=0;J[d+4>>2]=J[d>>2];E=a+52|0;d=E;J[d+12>>2]=0;J[d+16>>2]=0;J[d+4>>2]=J[d>>2];F=a+72|0;d=F;J[d+12>>2]=0;J[d+16>>2]=0;J[d+4>>2]=J[d>>2];J[o+24>>2]=J[b+8>>2];d=J[b+4>>2];J[o+16>>2]=J[b>>2];J[o+20>>2]=d;J[o+8>>2]=J[c+8>>2];b=J[c+4>>2];J[o>>2]=J[c>>2];J[o+4>>2]=b;b=0;f=ia-32|0;ia=f;d=a;g=J[a+8>>2];J[f+16>>2]=0;J[f+8>>2]=0;J[f+12>>2]=0;a:{b:{if(g){if(g>>>0>=1073741824){break b}a=g<<2;b=ll(a);J[f+8>>2]=b;h=a+b|0;J[f+16>>2]=h;nk(b,0,a);J[f+12>>2]=h}a=J[d+128>>2];c=J[a>>2];if(c){J[a+4>>2]=c;fl(c);g=J[d+8>>2];h=J[f+12>>2];b=J[f+8>>2]}J[a+4>>2]=h;J[a>>2]=b;J[a+8>>2]=J[f+16>>2];b=0;J[f+16>>2]=0;J[f+8>>2]=0;J[f+12>>2]=0;a=0;c:{if(g){if(g>>>0>=1073741824){break c}c=g<<2;a=ll(c);J[f+8>>2]=a;b=a+c|0;J[f+16>>2]=b;nk(a,0,c);J[f+12>>2]=b}c=J[d+140>>2];k=J[c>>2];if(k){J[c+4>>2]=k;fl(k);b=J[f+12>>2];a=J[f+8>>2]}J[c+4>>2]=b;J[c>>2]=a;J[c+8>>2]=J[f+16>>2];s=J[o+20>>2];q=J[o+24>>2];v=J[o+4>>2];w=J[o+8>>2];b=J[o>>2];c=J[o+16>>2];J[f+24>>2]=0;J[f+28>>2]=0;J[f+16>>2]=0;J[f+20>>2]=0;J[f+8>>2]=0;J[f+12>>2]=0;fc(f+8|0);a=J[f+24>>2]+J[f+28>>2]|0;k=(a>>>0)/113|0;a=J[J[f+12>>2]+(k<<2)>>2]+P(a-P(k,113)|0,36)|0;J[a+32>>2]=0;J[a+28>>2]=b-c;J[a+24>>2]=0;J[a+16>>2]=v;J[a+20>>2]=w;J[a+12>>2]=b;J[a+4>>2]=s;J[a+8>>2]=q;J[a>>2]=c;g=J[f+28>>2]+1|0;J[f+28>>2]=g;if(g){I=q&-4;G=q&3;K=d+32|0;L=d+12|0;N=d+72|0;O=q>>>0<4;while(1){b=J[f+12>>2];l=J[f+24>>2];j=g-1|0;a=l+j|0;c=(a>>>0)/113|0;a=J[b+(c<<2)>>2]+P(a-P(c,113)|0,36)|0;z=J[a+32>>2];h=J[a+24>>2];k=J[a+12>>2];c=J[a>>2];J[f+28>>2]=j;a=J[f+16>>2];if((((a|0)!=(b|0)?P(a-b>>2,113)-1|0:0)-(g+l|0)|0)+1>>>0>=226){fl(J[a-4>>2]);J[f+16>>2]=J[f+16>>2]-4}b=J[d>>2];g=(h|0)!=(J[d+8>>2]-1|0)?h+1|0:0;l=g<<2;x=P(z,12);j=x+J[d+140>>2]|0;h=J[l+J[j>>2]>>2];d:{e:{if((b|0)==(h|0)){break e}f:{g:{y=k-c|0;if(y>>>0<=2){h=J[d+116>>2];J[h>>2]=g;b=1;a=J[d+8>>2];if(a>>>0>1){break g}break f}j=J[d+128>>2];a=j+x|0;i=j;j=x+12|0;Ta(i+j|0,J[a>>2],J[a+4>>2]);a=l+J[j+J[d+128>>2]>>2]|0;j=J[a>>2]+(1<>2]=j;a=c;h:{if((k|0)==(a|0)){break h}H=J[s+24>>2];a=k;b=c;if(!q){if(j>>>0>M[l+H>>2]){break h}while(1){a=a-1|0;if((b|0)==(a|0)){a=b;break h}if(j>>>0<=M[(l+J[v+24>>2]|0)+(P(a,w)<<2)>>2]){continue}b=b+1|0;if((b|0)!=(a|0)){continue}break}break h}while(1){n=(P(b,q)<<2)+H|0;if(j>>>0>M[n+l>>2]){b=b+1|0;if((b|0)!=(a|0)){continue}break h}while(1){a=a-1|0;if((b|0)==(a|0)){a=b;break h}p=J[v+24>>2]+(P(a,w)<<2)|0;if(j>>>0<=M[p+l>>2]){continue}break}A=0;h=0;t=0;if(!O){while(1){m=h<<2;i=m+n|0;r=J[i>>2];u=i;i=m+p|0;J[u>>2]=J[i>>2];J[i>>2]=r;i=m|4;r=i+n|0;u=J[r>>2];i=i+p|0;J[r>>2]=J[i>>2];J[i>>2]=u;i=m|8;r=i+n|0;u=J[r>>2];i=i+p|0;J[r>>2]=J[i>>2];J[i>>2]=u;m=m|12;i=m+n|0;r=J[i>>2];m=m+p|0;J[i>>2]=J[m>>2];J[m>>2]=r;h=h+4|0;t=t+4|0;if((I|0)!=(t|0)){continue}break}}if(G){while(1){m=h<<2;t=m+n|0;i=J[t>>2];m=m+p|0;J[t>>2]=J[m>>2];J[m>>2]=i;h=h+1|0;A=A+1|0;if((A|0)!=(G|0)){continue}break}}b=b+1|0;if((b|0)!=(a|0)){continue}break}}j=a-c|0;n=k-a|0;if((j|0)!=(n|0)){gc(N,j>>>0>>0)}hc(L,S(y)^31,(y>>>1|0)-(j>>>0>>0?j:n)|0);i=l;b=J[d+140>>2];h=b+x|0;l=J[h>>2];p=i+l|0;J[p>>2]=J[p>>2]+1;p=z+1|0;Ta(b+P(p,12)|0,l,J[h+4>>2]);if((a|0)!=(c|0)){b=J[f+28>>2]+J[f+24>>2]|0;l=J[f+16>>2];h=J[f+12>>2];if((b|0)==(((h|0)!=(l|0)?P(l-h>>2,113)-1|0:0)|0)){fc(f+8|0);h=J[f+12>>2];b=J[f+24>>2]+J[f+28>>2]|0}i=h;h=(b>>>0)/113|0;b=J[i+(h<<2)>>2]+P(b-P(h,113)|0,36)|0;J[b+32>>2]=z;J[b+28>>2]=j;J[b+24>>2]=g;J[b+16>>2]=s;J[b+12>>2]=a;J[b+4>>2]=s;J[b+8>>2]=q;J[b>>2]=c;J[b+20>>2]=q;J[f+28>>2]=J[f+28>>2]+1}if((a|0)==(k|0)){break e}h=J[f+28>>2]+J[f+24>>2]|0;c=J[f+16>>2];b=J[f+12>>2];if((h|0)==(((b|0)!=(c|0)?P(c-b>>2,113)-1|0:0)|0)){fc(f+8|0);h=J[f+24>>2]+J[f+28>>2]|0;c=J[f+12>>2]}else{c=b}b=(h>>>0)/113|0;b=J[c+(b<<2)>>2]+P(h-P(b,113)|0,36)|0;J[b+32>>2]=p;J[b+28>>2]=n;J[b+24>>2]=g;J[b+16>>2]=v;J[b+20>>2]=w;J[b+12>>2]=k;J[b+4>>2]=s;J[b>>2]=a;J[b+8>>2]=q;g=J[f+28>>2]+1|0;J[f+28>>2]=g;break d}while(1){g=(a-1|0)!=(g|0)?g+1|0:0;J[h+(b<<2)>>2]=g;a=J[d+8>>2];b=b+1|0;if(a>>>0>b>>>0){continue}break}}if(!a|(c|0)==(k|0)){break e}h=0;b=1;while(1){g=0;i:{if(!b){b=0;break i}k=J[s+24>>2]+(P(J[s+4>>2],c+h|0)<<2)|0;while(1){b=J[d>>2];l=J[J[d+116>>2]+(g<<2)>>2]<<2;n=J[l+J[j>>2]>>2];if((b|0)!=(n|0)){hc(K,b-n|0,J[k+l>>2]);a=J[d+8>>2]}b=a;g=g+1|0;if(g>>>0>>0){continue}break}}h=h+1|0;if((y|0)!=(h|0)){continue}break}}g=J[f+28>>2]}if(g){continue}break}}J[f+28>>2]=0;c=J[f+16>>2];g=J[f+12>>2];a=c-g|0;if(a>>>0>=9){while(1){fl(J[g>>2]);g=J[f+12>>2]+4|0;J[f+12>>2]=g;c=J[f+16>>2];a=c-g|0;if(a>>>0>8){continue}break}}b=56;j:{switch((a>>>2|0)-1|0){case 1:b=113;case 0:J[f+24>>2]=b;break;default:break j}}k:{if((c|0)==(g|0)){break k}while(1){fl(J[g>>2]);g=g+4|0;if((g|0)!=(c|0)){continue}break}a=J[f+16>>2];b=J[f+12>>2];if((a|0)==(b|0)){break k}J[f+16>>2]=a+((b-a|0)+3&-4)}a=J[f+8>>2];if(a){fl(a)}ia=f+32|0;break a}La();C()}La();C()}Be(B,e);Be(D,e);Be(E,e);Be(F,e)}ia=o+32|0;return 1}function ob(a,b){var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=Q(0),p=0,q=0,r=0,s=Q(0);k=ia+-64|0;ia=k;J[k+40>>2]=0;J[k+44>>2]=0;J[k+32>>2]=0;J[k+36>>2]=0;J[k+48>>2]=1065353216;c=J[a+80>>2];J[k+24>>2]=0;J[k+16>>2]=0;J[k+20>>2]=0;a:{if(c){if(c>>>0>=1073741824){break a}d=c<<2;i=ll(d);J[k+16>>2]=i;c=d+i|0;J[k+24>>2]=c;nk(i,0,d);J[k+20>>2]=c;while(1){c=J[J[b>>2]>>2];e=J[b+48>>2]+Zl(J[b+40>>2],J[b+44>>2],r,0)|0;c=c+e|0;j=K[c|0]|K[c+1|0]<<8;I[k+30>>1]=j;b:{c:{m=J[k+36>>2];d:{if(!m){break d}f=J[k+32>>2];g=j^318;d=am(m)>>>0>1;c=g&m-1;e:{if(!d){break e}c=g;if(c>>>0>>0){break e}c=(g>>>0)%(m>>>0)|0}e=c;c=J[f+(e<<2)>>2];if(!c){break d}c=J[c>>2];if(!c){break d}if(!d){m=m-1|0;while(1){d=J[c+4>>2];f:{if((d|0)!=(g|0)){if((e|0)==(d&m)){break f}break d}if((j|0)==L[c+8>>1]){break c}}c=J[c>>2];if(c){continue}break}break d}while(1){d=J[c+4>>2];g:{if((d|0)!=(g|0)){if(d>>>0>=m>>>0){d=(d>>>0)%(m>>>0)|0}if((d|0)==(e|0)){break g}break d}if((j|0)==L[c+8>>1]){break c}}c=J[c>>2];if(c){continue}break}}J[k+12>>2]=p;I[k+8>>1]=j;c=0;g=L[k+8>>1];m=g^318;h:{i:{h=k+32|0;f=J[h+4>>2];if(!f){break i}d=am(f);j:{if(d>>>0>=2){c=m;if(f>>>0<=c>>>0){c=(m>>>0)%(f>>>0)|0}l=J[J[h>>2]+(c<<2)>>2];if(!l){break i}if(d>>>0<=1){break j}while(1){l=J[l>>2];if(!l){break i}d=J[l+4>>2];if((d|0)!=(m|0)){if(d>>>0>=f>>>0){d=(d>>>0)%(f>>>0)|0}if((c|0)!=(d|0)){break i}}if((g|0)!=L[l+8>>1]){continue}break}c=0;break h}c=m&f-1;l=J[J[h>>2]+(c<<2)>>2];if(!l){break i}}e=f-1|0;while(1){l=J[l>>2];if(!l){break i}d=J[l+4>>2];if((d|0)!=(m|0)&(d&e)!=(c|0)){break i}if((g|0)!=L[l+8>>1]){continue}break}c=0;break h}l=ll(16);I[l+8>>1]=L[k+8>>1];d=J[k+12>>2];J[l+4>>2]=m;J[l+12>>2]=d;J[l>>2]=0;s=Q(J[h+12>>2]+1>>>0);o=N[h+16>>2];k:{if(s>Q(o*Q(f>>>0))?0:f){break k}c=2;d=(f-1&f)!=0|f>>>0<3|f<<1;o=Q(W(Q(s/o)));l:{if(o=Q(0)){e=~~o>>>0;break l}e=0}d=d>>>0>e>>>0?d:e;m:{if((d|0)==1){break m}if(!(d&d-1)){c=d;break m}c=bl(d);f=J[h+4>>2]}n:{if(c>>>0<=f>>>0){if(c>>>0>=f>>>0){break n}e=f>>>0<3;o=Q(W(Q(Q(M[h+12>>2])/N[h+16>>2])));o:{if(o=Q(0)){d=~~o>>>0;break o}d=0}p:{q:{if(e){break q}if(am(f)>>>0>1){break q}d=d>>>0<2?d:1<<32-S(d-1|0);break p}d=bl(d)}c=c>>>0>d>>>0?c:d;if(f>>>0<=c>>>0){break n}}d=0;j=0;i=c;r:{s:{t:{u:{if(c){if(i>>>0>=1073741824){break u}c=ll(i<<2);e=J[h>>2];J[h>>2]=c;if(e){fl(e)}J[h+4>>2]=i;e=0;if(i>>>0>=4){c=i&-4;while(1){g=e<<2;J[g+J[h>>2]>>2]=0;J[J[h>>2]+(g|4)>>2]=0;J[J[h>>2]+(g|8)>>2]=0;J[J[h>>2]+(g|12)>>2]=0;e=e+4|0;d=d+4|0;if((c|0)!=(d|0)){continue}break}}c=i&3;if(c){while(1){J[J[h>>2]+(e<<2)>>2]=0;e=e+1|0;j=j+1|0;if((c|0)!=(j|0)){continue}break}}d=J[h+8>>2];if(!d){break r}c=h+8|0;g=J[d+4>>2];e=am(i);if(e>>>0<2){break t}g=g>>>0>=i>>>0?(g>>>0)%(i>>>0)|0:g;J[J[h>>2]+(g<<2)>>2]=c;c=J[d>>2];if(!c){break r}if(e>>>0<=1){break s}while(1){j=J[c+4>>2];if(i>>>0<=j>>>0){j=(j>>>0)%(i>>>0)|0}v:{if((g|0)==(j|0)){d=c;break v}e=c;q=j<<2;f=q+J[h>>2]|0;if(!J[f>>2]){J[f>>2]=d;d=c;g=j;break v}while(1){j=e;e=J[e>>2];if(L[c+8>>1]==L[e+8>>1]?e:0){continue}break}J[d>>2]=e;J[j>>2]=J[J[q+J[h>>2]>>2]>>2];J[J[q+J[h>>2]>>2]>>2]=c}c=J[d>>2];if(c){continue}break}break r}c=J[h>>2];J[h>>2]=0;if(c){fl(c)}J[h+4>>2]=0;break r}$a();C()}g=i-1&g;J[J[h>>2]+(g<<2)>>2]=c;c=J[d>>2];if(!c){break r}}f=i-1|0;while(1){j=f&J[c+4>>2];w:{if((j|0)==(g|0)){d=c;break w}e=c;q=j<<2;i=q+J[h>>2]|0;if(J[i>>2]){while(1){j=e;e=J[e>>2];if(L[c+8>>1]==L[e+8>>1]?e:0){continue}break}J[d>>2]=e;J[j>>2]=J[J[q+J[h>>2]>>2]>>2];J[J[q+J[h>>2]>>2]>>2]=c;break w}J[i>>2]=d;d=c;g=j}c=J[d>>2];if(c){continue}break}}}f=J[h+4>>2];c=f-1|0;if(!(c&f)){c=c&m;break k}if(f>>>0>m>>>0){c=m;break k}c=(m>>>0)%(f>>>0)|0}d=J[h>>2]+(c<<2)|0;c=J[d>>2];x:{y:{if(!c){c=h+8|0;J[l>>2]=J[c>>2];J[h+8>>2]=l;J[d>>2]=c;c=J[l>>2];if(!c){break x}c=J[c+4>>2];d=f-1|0;z:{if(!(d&f)){c=c&d;break z}if(c>>>0>>0){break z}c=(c>>>0)%(f>>>0)|0}c=J[h>>2]+(c<<2)|0;break y}J[l>>2]=J[c>>2]}J[c>>2]=l}J[h+12>>2]=J[h+12>>2]+1;c=1}H[k+60|0]=c;J[k+56>>2]=l;c=J[a+40>>2];lk(J[J[a>>2]>>2]+P(c,p)|0,k+30|0,c);i=J[k+16>>2];J[i+(r<<2)>>2]=p;p=p+1|0;break b}J[(r<<2)+i>>2]=J[c+12>>2]}c=r+1|0;n=c?n:n+1|0;r=c;c=J[a+80>>2];if(!n&c>>>0>r>>>0){continue}break}if((c|0)!=(p|0)){A:{if(!K[a+84|0]){b=J[a+72>>2];g=J[a+68>>2];if((b|0)==(g|0)){break A}b=b-g>>2;b=b>>>0<=1?1:b;e=b&3;j=0;c=0;if(b-1>>>0>=3){d=b&-4;f=0;while(1){n=c<<2;b=n+g|0;J[b>>2]=J[(J[b>>2]<<2)+i>>2];b=g+(n|4)|0;J[b>>2]=J[(J[b>>2]<<2)+i>>2];b=g+(n|8)|0;J[b>>2]=J[(J[b>>2]<<2)+i>>2];b=g+(n|12)|0;J[b>>2]=J[(J[b>>2]<<2)+i>>2];c=c+4|0;f=f+4|0;if((d|0)!=(f|0)){continue}break}}if(!e){break A}while(1){b=g+(c<<2)|0;J[b>>2]=J[(J[b>>2]<<2)+i>>2];c=c+1|0;j=j+1|0;if((e|0)!=(j|0)){continue}break}break A}H[a+84|0]=0;e=a+68|0;b=J[a+68>>2];d=J[a+72>>2]-b>>2;B:{if(d>>>0>>0){ub(e,c-d|0,2184);c=J[a+80>>2];break B}if(c>>>0>=d>>>0){break B}J[a+72>>2]=b+(c<<2)}if(!c){break A}g=J[e>>2];j=0;b=0;if(c>>>0>=4){e=c&-4;f=0;while(1){n=b<<2;J[n+g>>2]=J[i+n>>2];d=n|4;J[d+g>>2]=J[d+i>>2];d=n|8;J[d+g>>2]=J[d+i>>2];d=n|12;J[d+g>>2]=J[d+i>>2];b=b+4|0;f=f+4|0;if((e|0)!=(f|0)){continue}break}}d=c&3;if(!d){break A}while(1){c=b<<2;J[c+g>>2]=J[c+i>>2];b=b+1|0;j=j+1|0;if((d|0)!=(j|0)){continue}break}}J[a+80>>2]=p}fl(i)}c=J[k+40>>2];if(c){while(1){a=J[c>>2];fl(c);c=a;if(c){continue}break}}a=J[k+32>>2];J[k+32>>2]=0;if(a){fl(a)}ia=k- -64|0;return p}La();C()}function kb(a,b){var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=Q(0),p=0,q=0,r=0,s=Q(0);k=ia+-64|0;ia=k;J[k+40>>2]=0;J[k+44>>2]=0;J[k+32>>2]=0;J[k+36>>2]=0;J[k+48>>2]=1065353216;c=J[a+80>>2];J[k+24>>2]=0;J[k+16>>2]=0;J[k+20>>2]=0;a:{if(c){if(c>>>0>=1073741824){break a}d=c<<2;i=ll(d);J[k+16>>2]=i;c=d+i|0;J[k+24>>2]=c;nk(i,0,d);J[k+20>>2]=c;while(1){c=J[J[b>>2]>>2];e=J[b+48>>2]+Zl(J[b+40>>2],J[b+44>>2],r,0)|0;j=K[c+e|0];H[k+31|0]=j;b:{c:{m=J[k+36>>2];d:{if(!m){break d}f=J[k+32>>2];g=j^318;d=am(m)>>>0>1;c=g&m-1;e:{if(!d){break e}c=g;if(c>>>0>>0){break e}c=(g>>>0)%(m>>>0)|0}e=c;c=J[f+(e<<2)>>2];if(!c){break d}c=J[c>>2];if(!c){break d}if(!d){m=m-1|0;while(1){d=J[c+4>>2];f:{if((d|0)!=(g|0)){if((e|0)==(d&m)){break f}break d}if((j|0)==K[c+8|0]){break c}}c=J[c>>2];if(c){continue}break}break d}while(1){d=J[c+4>>2];g:{if((d|0)!=(g|0)){if(d>>>0>=m>>>0){d=(d>>>0)%(m>>>0)|0}if((d|0)==(e|0)){break g}break d}if((j|0)==K[c+8|0]){break c}}c=J[c>>2];if(c){continue}break}}J[k+12>>2]=p;H[k+8|0]=j;c=0;g=K[k+8|0];m=g^318;h:{i:{h=k+32|0;f=J[h+4>>2];if(!f){break i}d=am(f);j:{if(d>>>0>=2){c=m;if(f>>>0<=c>>>0){c=(m>>>0)%(f>>>0)|0}l=J[J[h>>2]+(c<<2)>>2];if(!l){break i}if(d>>>0<=1){break j}while(1){l=J[l>>2];if(!l){break i}d=J[l+4>>2];if((d|0)!=(m|0)){if(d>>>0>=f>>>0){d=(d>>>0)%(f>>>0)|0}if((c|0)!=(d|0)){break i}}if((g|0)!=K[l+8|0]){continue}break}c=0;break h}c=m&f-1;l=J[J[h>>2]+(c<<2)>>2];if(!l){break i}}e=f-1|0;while(1){l=J[l>>2];if(!l){break i}d=J[l+4>>2];if((d|0)!=(m|0)&(d&e)!=(c|0)){break i}if((g|0)!=K[l+8|0]){continue}break}c=0;break h}l=ll(16);H[l+8|0]=K[k+8|0];d=J[k+12>>2];J[l+4>>2]=m;J[l+12>>2]=d;J[l>>2]=0;s=Q(J[h+12>>2]+1>>>0);o=N[h+16>>2];k:{if(s>Q(o*Q(f>>>0))?0:f){break k}c=2;d=(f-1&f)!=0|f>>>0<3|f<<1;o=Q(W(Q(s/o)));l:{if(o=Q(0)){e=~~o>>>0;break l}e=0}d=d>>>0>e>>>0?d:e;m:{if((d|0)==1){break m}if(!(d&d-1)){c=d;break m}c=bl(d);f=J[h+4>>2]}n:{if(c>>>0<=f>>>0){if(c>>>0>=f>>>0){break n}e=f>>>0<3;o=Q(W(Q(Q(M[h+12>>2])/N[h+16>>2])));o:{if(o=Q(0)){d=~~o>>>0;break o}d=0}p:{q:{if(e){break q}if(am(f)>>>0>1){break q}d=d>>>0<2?d:1<<32-S(d-1|0);break p}d=bl(d)}c=c>>>0>d>>>0?c:d;if(f>>>0<=c>>>0){break n}}d=0;j=0;i=c;r:{s:{t:{u:{if(c){if(i>>>0>=1073741824){break u}c=ll(i<<2);e=J[h>>2];J[h>>2]=c;if(e){fl(e)}J[h+4>>2]=i;e=0;if(i>>>0>=4){c=i&-4;while(1){g=e<<2;J[g+J[h>>2]>>2]=0;J[J[h>>2]+(g|4)>>2]=0;J[J[h>>2]+(g|8)>>2]=0;J[J[h>>2]+(g|12)>>2]=0;e=e+4|0;d=d+4|0;if((c|0)!=(d|0)){continue}break}}c=i&3;if(c){while(1){J[J[h>>2]+(e<<2)>>2]=0;e=e+1|0;j=j+1|0;if((c|0)!=(j|0)){continue}break}}d=J[h+8>>2];if(!d){break r}c=h+8|0;g=J[d+4>>2];e=am(i);if(e>>>0<2){break t}g=g>>>0>=i>>>0?(g>>>0)%(i>>>0)|0:g;J[J[h>>2]+(g<<2)>>2]=c;c=J[d>>2];if(!c){break r}if(e>>>0<=1){break s}while(1){j=J[c+4>>2];if(i>>>0<=j>>>0){j=(j>>>0)%(i>>>0)|0}v:{if((g|0)==(j|0)){d=c;break v}e=c;q=j<<2;f=q+J[h>>2]|0;if(!J[f>>2]){J[f>>2]=d;d=c;g=j;break v}while(1){j=e;e=J[e>>2];if(K[c+8|0]==K[e+8|0]?e:0){continue}break}J[d>>2]=e;J[j>>2]=J[J[q+J[h>>2]>>2]>>2];J[J[q+J[h>>2]>>2]>>2]=c}c=J[d>>2];if(c){continue}break}break r}c=J[h>>2];J[h>>2]=0;if(c){fl(c)}J[h+4>>2]=0;break r}$a();C()}g=i-1&g;J[J[h>>2]+(g<<2)>>2]=c;c=J[d>>2];if(!c){break r}}f=i-1|0;while(1){j=f&J[c+4>>2];w:{if((j|0)==(g|0)){d=c;break w}e=c;q=j<<2;i=q+J[h>>2]|0;if(J[i>>2]){while(1){j=e;e=J[e>>2];if(K[c+8|0]==K[e+8|0]?e:0){continue}break}J[d>>2]=e;J[j>>2]=J[J[q+J[h>>2]>>2]>>2];J[J[q+J[h>>2]>>2]>>2]=c;break w}J[i>>2]=d;d=c;g=j}c=J[d>>2];if(c){continue}break}}}f=J[h+4>>2];c=f-1|0;if(!(c&f)){c=c&m;break k}if(f>>>0>m>>>0){c=m;break k}c=(m>>>0)%(f>>>0)|0}d=J[h>>2]+(c<<2)|0;c=J[d>>2];x:{y:{if(!c){c=h+8|0;J[l>>2]=J[c>>2];J[h+8>>2]=l;J[d>>2]=c;c=J[l>>2];if(!c){break x}c=J[c+4>>2];d=f-1|0;z:{if(!(d&f)){c=c&d;break z}if(c>>>0>>0){break z}c=(c>>>0)%(f>>>0)|0}c=J[h>>2]+(c<<2)|0;break y}J[l>>2]=J[c>>2]}J[c>>2]=l}J[h+12>>2]=J[h+12>>2]+1;c=1}H[k+60|0]=c;J[k+56>>2]=l;c=J[a+40>>2];lk(J[J[a>>2]>>2]+P(c,p)|0,k+31|0,c);i=J[k+16>>2];J[i+(r<<2)>>2]=p;p=p+1|0;break b}J[(r<<2)+i>>2]=J[c+12>>2]}c=r+1|0;n=c?n:n+1|0;r=c;c=J[a+80>>2];if(!n&c>>>0>r>>>0){continue}break}if((c|0)!=(p|0)){A:{if(!K[a+84|0]){b=J[a+72>>2];g=J[a+68>>2];if((b|0)==(g|0)){break A}b=b-g>>2;b=b>>>0<=1?1:b;e=b&3;j=0;c=0;if(b-1>>>0>=3){d=b&-4;f=0;while(1){n=c<<2;b=n+g|0;J[b>>2]=J[(J[b>>2]<<2)+i>>2];b=g+(n|4)|0;J[b>>2]=J[(J[b>>2]<<2)+i>>2];b=g+(n|8)|0;J[b>>2]=J[(J[b>>2]<<2)+i>>2];b=g+(n|12)|0;J[b>>2]=J[(J[b>>2]<<2)+i>>2];c=c+4|0;f=f+4|0;if((d|0)!=(f|0)){continue}break}}if(!e){break A}while(1){b=g+(c<<2)|0;J[b>>2]=J[(J[b>>2]<<2)+i>>2];c=c+1|0;j=j+1|0;if((e|0)!=(j|0)){continue}break}break A}H[a+84|0]=0;e=a+68|0;b=J[a+68>>2];d=J[a+72>>2]-b>>2;B:{if(d>>>0>>0){ub(e,c-d|0,2184);c=J[a+80>>2];break B}if(c>>>0>=d>>>0){break B}J[a+72>>2]=b+(c<<2)}if(!c){break A}g=J[e>>2];j=0;b=0;if(c>>>0>=4){e=c&-4;f=0;while(1){n=b<<2;J[n+g>>2]=J[i+n>>2];d=n|4;J[d+g>>2]=J[d+i>>2];d=n|8;J[d+g>>2]=J[d+i>>2];d=n|12;J[d+g>>2]=J[d+i>>2];b=b+4|0;f=f+4|0;if((e|0)!=(f|0)){continue}break}}d=c&3;if(!d){break A}while(1){c=b<<2;J[c+g>>2]=J[c+i>>2];b=b+1|0;j=j+1|0;if((d|0)!=(j|0)){continue}break}}J[a+80>>2]=p}fl(i)}c=J[k+40>>2];if(c){while(1){a=J[c>>2];fl(c);c=a;if(c){continue}break}}a=J[k+32>>2];J[k+32>>2]=0;if(a){fl(a)}ia=k- -64|0;return p}La();C()}function Yg(a,b){var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0;j=ia-32|0;ia=j;c=J[a+16>>2];J[a+20>>2]=c;a:{b:{c:{d:{e:{f:{g:{h:{if((c|0)!=J[a+24>>2]){J[c>>2]=b;b=c+4|0;J[a+20>>2]=b;f=c;break h}f=ll(4);J[f>>2]=b;b=f+4|0;J[a+24>>2]=b;J[a+20>>2]=b;J[a+16>>2]=f;if(c){break g}}c=J[a+8>>2];c=J[c+100>>2]-J[c+96>>2]|0;break f}fl(c);b=J[a+20>>2];f=J[a+16>>2];if((b|0)==(f|0)){break e}c=J[a+8>>2];c=J[c+100>>2]-J[c+96>>2]|0}if((c|0)>0){p=a+120|0;c=(c|0)/12|0;q=(c|0)<=1?1:c;while(1){i:{j:{c=b-4|0;b=J[c>>2];if((b|0)==-1){break j}f=(b>>>0)/3|0;if(J[J[a+28>>2]+(f>>>3&268435452)>>2]>>>f&1){break j}i=0;while(1){J[a+164>>2]=J[a+164>>2]+1;f=b;g=(b>>>0)/3|0;h=(b|0)==-1;l=h?-1:g;b=J[a+28>>2]+(l>>>3&536870908)|0;J[b>>2]=J[b>>2]|1<>2];k:{if((b|0)!=J[a+80>>2]){J[b>>2]=f;J[a+76>>2]=b+4;break k}d=J[a+72>>2];c=b-d|0;k=c>>2;b=k+1|0;if(b>>>0>1073741823){break d}e=c>>1;e=c>>>0>=2147483644?1073741823:b>>>0>>0?e:b;if(e){if(e>>>0>1073741823){break a}b=ll(e<<2)}else{b=0}k=b+(k<<2)|0;J[k>>2]=f;if((c|0)>0){lk(b,d,c)}J[a+80>>2]=b+(e<<2);J[a+76>>2]=k+4;J[a+72>>2]=b;if(!d){break k}fl(d)}b=-1;d=J[a+12>>2];b=(f|0)!=-1?J[J[d>>2]+(f<<2)>>2]:b;m=b<<2;k=J[m+J[a+152>>2]>>2];l:{m:{c=J[a+84>>2]+(b>>>3&536870908)|0;e=J[c>>2];b=1<>2]=b|e;if((k|0)==-1){break m}}n:{if(h){break n}b=-1;c=f+1|0;e=(c>>>0)%3|0?c:f-2|0;if((e|0)!=-1){b=J[J[d+12>>2]+(e<<2)>>2]}r=(b>>>0)/3|0;h=f-P(g,3)|0;o:{p:{if(h){g=f-1|0;break p}g=f+2|0;c=-1;if((g|0)==-1){break o}}c=J[J[d+12>>2]+(g<<2)>>2]}g=(c|0)==-1;n=g?-1:(c>>>0)/3|0;q:{if((e|0)==-1){break q}o=J[d+12>>2];d=J[o+(e<<2)>>2];if((d|0)==-1){break q}e=J[a+28>>2];d=(d>>>0)/3|0;if(J[e+(d>>>3&268435452)>>2]>>>d&1){break q}r:{s:{if(h){d=f-1|0;break s}d=f+2|0;if((d|0)==-1){break r}}d=J[(d<<2)+o>>2];if((d|0)==-1){break r}d=(d>>>0)/3|0;if(J[e+(d>>>3&268435452)>>2]>>>d&1){break r}d=J[a+272>>2];t:{if((d|0)!=J[a+276>>2]){J[d>>2]=1;J[a+272>>2]=d+4;break t}g=J[a+268>>2];e=d-g|0;h=e>>2;d=h+1|0;if(d>>>0>1073741823){break c}i=e>>1;i=e>>>0>=2147483644?1073741823:d>>>0>>0?i:d;if(i){if(i>>>0>1073741823){break a}d=ll(i<<2)}else{d=0}h=d+(h<<2)|0;J[h>>2]=1;if((e|0)>0){lk(d,g,e)}J[a+276>>2]=d+(i<<2);J[a+272>>2]=h+4;J[a+268>>2]=d;if(!g){break t}fl(g)}J[a+168>>2]=J[a+168>>2]+1;u:{if((k|0)==-1){break u}d=J[J[a+152>>2]+m>>2];if(J[J[a+140>>2]+(d>>>3&536870908)>>2]>>>d&1){break u}Zg(a,f,0)}f=J[a+164>>2];J[j+4>>2]=l;d=j+4|0;J[j+16>>2]=d;dh(j+24|0,p,d,j+16|0);J[J[j+24>>2]+12>>2]=f;f=J[a+20>>2];J[f-4>>2]=c;if((f|0)!=J[a+24>>2]){J[f>>2]=b;J[a+20>>2]=f+4;break i}d=J[a+16>>2];f=f-d|0;g=f>>2;c=g+1|0;if(c>>>0>1073741823){break b}e=f>>1;e=f>>>0>=2147483644?1073741823:c>>>0>>0?e:c;if(e){if(e>>>0>1073741823){break a}c=ll(e<<2)}else{c=0}g=c+(g<<2)|0;J[g>>2]=b;if((f|0)>0){lk(c,d,f)}J[a+24>>2]=c+(e<<2);J[a+20>>2]=g+4;J[a+16>>2]=c;if(!d){break i}fl(d);break i}if(!g){eh(a,J[a+164>>2],0,n)}c=J[a+272>>2];if((c|0)!=J[a+276>>2]){J[c>>2]=3;J[a+272>>2]=c+4;break l}d=J[a+268>>2];f=c-d|0;g=f>>2;c=g+1|0;if(c>>>0>1073741823){break c}e=f>>1;e=f>>>0>=2147483644?1073741823:c>>>0>>0?e:c;if(e){if(e>>>0>1073741823){break a}c=ll(e<<2)}else{c=0}g=c+(g<<2)|0;J[g>>2]=3;if((f|0)>0){lk(c,d,f)}J[a+276>>2]=c+(e<<2);J[a+272>>2]=g+4;J[a+268>>2]=c;if(!d){break l}fl(d);break l}b=(b|0)==-1;if(!b){eh(a,J[a+164>>2],1,b?-1:r)}v:{w:{if(h){b=f-1|0;break w}b=f+2|0;if((b|0)==-1){break v}}b=J[J[J[a+12>>2]+12>>2]+(b<<2)>>2];if((b|0)==-1){break v}b=(b>>>0)/3|0;if(J[J[a+28>>2]+(b>>>3&268435452)>>2]>>>b&1){break v}b=J[a+272>>2];if((b|0)!=J[a+276>>2]){J[b>>2]=5;J[a+272>>2]=b+4;b=c;break l}d=J[a+268>>2];f=b-d|0;g=f>>2;b=g+1|0;if(b>>>0>1073741823){break c}e=f>>1;e=f>>>0>=2147483644?1073741823:b>>>0>>0?e:b;if(e){if(e>>>0>1073741823){break a}b=ll(e<<2)}else{b=0}g=b+(g<<2)|0;J[g>>2]=5;if((f|0)>0){lk(b,d,f)}J[a+276>>2]=b+(e<<2);J[a+272>>2]=g+4;J[a+268>>2]=b;if(!d){b=c;break l}fl(d);b=c;break l}if(g){break n}eh(a,J[a+164>>2],0,n)}b=J[a+272>>2];x:{if((b|0)!=J[a+276>>2]){J[b>>2]=7;J[a+272>>2]=b+4;break x}f=J[a+268>>2];c=b-f|0;e=c>>2;b=e+1|0;if(b>>>0>1073741823){break c}d=c>>1;d=c>>>0>=2147483644?1073741823:b>>>0>>0?d:b;if(d){if(d>>>0>1073741823){break a}b=ll(d<<2)}else{b=0}e=b+(e<<2)|0;J[e>>2]=7;if((c|0)>0){lk(b,f,c)}J[a+276>>2]=b+(d<<2);J[a+272>>2]=e+4;J[a+268>>2]=b;if(!f){break x}fl(f)}J[a+20>>2]=J[a+20>>2]-4;break i}b=J[a+272>>2];y:{if((b|0)!=J[a+276>>2]){J[b>>2]=0;J[a+272>>2]=b+4;break y}d=J[a+268>>2];c=b-d|0;g=c>>2;b=g+1|0;if(b>>>0>1073741823){break c}e=c>>1;e=c>>>0>=2147483644?1073741823:b>>>0>>0?e:b;if(e){if(e>>>0>1073741823){break a}b=ll(e<<2)}else{b=0}g=b+(g<<2)|0;J[g>>2]=0;if((c|0)>0){lk(b,d,c)}J[a+276>>2]=b+(e<<2);J[a+272>>2]=g+4;J[a+268>>2]=b;if(!d){break y}fl(d)}b=-1;if((f|0)==-1){break l}c=f+1|0;c=(c>>>0)%3|0?c:f-2|0;if((c|0)==-1){break l}b=J[J[J[a+12>>2]+12>>2]+(c<<2)>>2]}i=i+1|0;if((q|0)!=(i|0)){continue}break}break i}J[a+20>>2]=c}b=J[a+20>>2];if((b|0)!=J[a+16>>2]){continue}break}break e}d=J[a+28>>2];while(1){c=b-4|0;e=J[c>>2];z:{if((e|0)!=-1){e=(e>>>0)/3|0;if(!(J[d+(e>>>3&268435452)>>2]>>>e&1)){break z}}J[a+20>>2]=c;b=c}if((b|0)!=(f|0)){continue}break}}ia=j+32|0;return 1}La();C()}La();C()}La();C()}$a();C()}function ld(a,b,c,d){var e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,D=0,E=0,F=0,G=0,I=0,L=0,M=0,N=0,O=0,P=0,Q=0,R=0,S=0,T=0,U=0;i=ia-80|0;ia=i;g=-1;f=-1;a:{if((b|0)==-1){break a}f=b+1|0;g=(f>>>0)%3|0?f:b-2|0;f=b-1|0;if((b>>>0)%3|0){break a}f=b+2|0}b:{e=J[a+36>>2];b=J[e>>2];c:{d:{e:{f:{g:{h:{e=J[e+4>>2]-b>>2;j=g<<2;g=J[J[a+32>>2]+28>>2];k=J[j+g>>2];if(e>>>0<=k>>>0){break h}f=J[g+(f<<2)>>2];if(f>>>0>=e>>>0){break h}i:{j:{e=J[b+(f<<2)>>2];l=J[b+(k<<2)>>2];if((e|0)>=(d|0)|(l|0)>=(d|0)){break j}b=(e<<3)+c|0;q=J[b+4>>2];f=(l<<3)+c|0;g=J[f+4>>2];j=J[f>>2];A=J[b>>2];if(!((j|0)!=(A|0)|(g|0)!=(q|0))){J[a+8>>2]=j;J[a+12>>2]=g;break i}b=J[J[a+4>>2]+(d<<2)>>2];J[i+72>>2]=0;J[i+76>>2]=0;f=i- -64|0;J[f>>2]=0;J[f+4>>2]=0;J[i+56>>2]=0;J[i+60>>2]=0;f=J[a>>2];if(!K[f+84|0]){b=J[J[f+68>>2]+(b<<2)>>2]}md(f,b,H[f+24|0],i+56|0);b=J[J[a+4>>2]+(l<<2)>>2];J[i+48>>2]=0;J[i+52>>2]=0;J[i+40>>2]=0;J[i+44>>2]=0;J[i+32>>2]=0;J[i+36>>2]=0;f=J[a>>2];if(!K[f+84|0]){b=J[J[f+68>>2]+(b<<2)>>2]}md(f,b,H[f+24|0],i+32|0);b=J[J[a+4>>2]+(e<<2)>>2];J[i+24>>2]=0;J[i+28>>2]=0;J[i+16>>2]=0;J[i+20>>2]=0;J[i+8>>2]=0;J[i+12>>2]=0;f=J[a>>2];if(!K[f+84|0]){b=J[J[f+68>>2]+(b<<2)>>2]}md(f,b,H[f+24|0],i+8|0);L=J[i+44>>2];b=J[i+16>>2];x=J[i+40>>2];f=x;h=J[i+20>>2]-(L+(b>>>0>>0)|0)|0;t=b-f|0;b=Zl(t,h,t,h);f=ma;n=b;M=J[i+36>>2];b=J[i+8>>2];B=J[i+32>>2];e=B;o=J[i+12>>2]-(M+(b>>>0>>0)|0)|0;k=b-e|0;m=Zl(k,o,k,o);b=n+m|0;e=ma+f|0;e=b>>>0>>0?e+1|0:e;n=b;N=J[i+52>>2];b=J[i+24>>2];D=J[i+48>>2];f=D;m=J[i+28>>2]-(N+(b>>>0>>0)|0)|0;u=b-f|0;p=Zl(u,m,u,m);b=n+p|0;f=ma+e|0;s=b;p=b>>>0

>>0?f+1|0:f;if(!(b|p)){break j}F=$l(-1,2147483647,s,p);b=j>>31;O=b;f=j;e=b>>31;j=b^e;b=f^e;j=j-((e>>>0>b>>>0)+e|0)|0;v=b-e|0;b=g>>31;G=b;l=b>>31;y=l^g;I=y-l|0;e=b>>31;b=(e^b)-((l>>>0>y>>>0)+e|0)|0;e=(j|0)==(b|0)&v>>>0>I>>>0|b>>>0>>0;l=e?v:I;r=ma;b=e?j:b;n=0;if((r|0)==(b|0)&l>>>0>F>>>0|b>>>0>r>>>0){break c}r=J[i+64>>2];b=r;v=J[i+68>>2];b=Zl(b-x|0,v-((b>>>0>>0)+L|0)|0,t,h);e=ma;n=b;F=J[i+56>>2];b=F;y=J[i+60>>2];j=Zl(b-B|0,y-((b>>>0>>0)+M|0)|0,k,o);b=n+j|0;e=ma+e|0;e=b>>>0>>0?e+1|0:e;j=b;I=J[i+72>>2];b=I;P=J[i+76>>2];l=Zl(b-D|0,P-((b>>>0>>0)+N|0)|0,u,m);j=j+l|0;b=ma+e|0;E=j;l=j>>>0>>0?b+1|0:b;b=o>>31;e=b;j=b^k;b=(b^o)-(b+(b>>>0>j>>>0)|0)|0;n=j-e|0;e=h>>31;w=e^t;z=w-e|0;e=(h^e)-((e>>>0>w>>>0)+e|0)|0;j=(e|0)==(b|0)&n>>>0>z>>>0|b>>>0>e>>>0;n=j?n:z;b=j?b:e;e=m>>31;w=e^u;z=w-e|0;e=(e^m)-((e>>>0>w>>>0)+e|0)|0;j=(e|0)==(b|0)&n>>>0>z>>>0|b>>>0>e>>>0;z=$l(-1,2147483647,j?n:z,j?b:e);w=ma;b=w;if(z>>>0>>0&(b|0)<=(l|0)|(b|0)<(l|0)){break d}Q=q-g|0;R=(q>>31)-((g>>>0>q>>>0)+G|0)|0;b=Zl(E,l,Q,R);e=ma;q=Zl(s,p,g,G);g=q+b|0;b=ma+e|0;b=g>>>0>>0?b+1|0:b;q=g;n=b;G=A-f|0;S=(A>>31)-((f>>>0>A>>>0)+O|0)|0;b=Zl(E,l,G,S);g=ma;f=Zl(f,O,s,p);b=f+b|0;e=ma+g|0;j=b;A=b>>>0>>0?e+1|0:e;g=1;f=0;b=r;t=_l(Zl(t,h,E,l),ma,s,p);h=t+x|0;e=ma+L|0;e=h>>>0>>0?e+1|0:e;e=v-((b>>>0>>0)+e|0)|0;b=b-h|0;b=Zl(b,e,b,e);h=ma;e=F;r=b;o=_l(Zl(k,o,E,l),ma,s,p);k=o+B|0;b=ma+M|0;b=k>>>0>>0?b+1|0:b;b=y-((e>>>0>>0)+b|0)|0;e=e-k|0;k=Zl(e,b,e,b);b=r+k|0;e=ma+h|0;h=b;k=b>>>0>>0?e+1|0:e;b=I;r=h;o=_l(Zl(u,m,E,l),ma,s,p);h=o+D|0;e=ma+N|0;e=h>>>0>>0?e+1|0:e;e=P-((b>>>0>>0)+e|0)|0;b=b-h|0;h=Zl(b,e,b,e);e=r+h|0;b=ma+k|0;k=Zl(e,e>>>0>>0?b+1|0:b,s,p);b=ma;h=b;if(!b&k>>>0<=1){break g}o=k;e=h;while(1){b=f<<1|g>>>31;g=g<<1;f=b;m=!e&o>>>0>7|(e|0)!=0;o=(e&3)<<30|o>>>2;e=e>>>2|0;if(m){continue}break}break f}if((d|0)>(l|0)){b=l<<1}else{if((d|0)<=0){J[a+8>>2]=0;J[a+12>>2]=0;break i}b=(d<<1)-2|0}b=(b<<2)+c|0;J[a+8>>2]=J[b>>2];J[a+12>>2]=J[b+4>>2]}n=1;break c}Zc();C()}f=h;g=k;if(g-1|0){break e}}while(1){b=$l(k,h,g,f)+g|0;f=f+ma|0;f=b>>>0>>0?f+1|0:f;g=(f&1)<<31|b>>>1;f=f>>>1|0;b=Zl(g,f,g,f);e=ma;if((h|0)==(e|0)&b>>>0>k>>>0|e>>>0>h>>>0){continue}break}}k=a+16|0;x=J[a+24>>2];B=x<<5;b=J[a+20>>2];h=(d<<3)+c|0;d=J[h+4>>2];D=Zl(g,f,G,S);c=D;r=ma;c=_l(q-c|0,n-(r+(c>>>0>q>>>0)|0)|0,s,p);m=d-c|0;o=d>>31;e=o-(ma+(c>>>0>d>>>0)|0)|0;v=Zl(m,e,m,e);F=ma;h=J[h>>2];e=h>>31;m=h;t=e;u=Zl(g,f,Q,R);g=j+u|0;y=ma;f=A+y|0;g=_l(g,g>>>0>>0?f+1|0:f,s,p);f=e-(ma+(h>>>0>>0)|0)|0;e=h-g|0;h=Zl(e,f,e,f);f=h+v|0;e=ma+F|0;v=f;h=f>>>0>>0?e+1|0:e;f=d;e=n+r|0;d=q+D|0;e=d>>>0>>0?e+1|0:e;d=_l(d,e,s,p);e=o-(ma+(d>>>0>f>>>0)|0)|0;f=f-d|0;e=Zl(f,e,f,e);q=ma;f=_l(j-u|0,A-((j>>>0>>0)+y|0)|0,s,p);n=e;e=t-(ma+(f>>>0>m>>>0)|0)|0;m=m-f|0;j=Zl(m,e,m,e);m=n+j|0;e=ma+q|0;e=j>>>0>m>>>0?e+1|0:e;k:{if((e|0)==(h|0)&m>>>0>v>>>0|e>>>0>h>>>0){if((b|0)==(B|0)){if((b+1|0)<0){break b}if(b>>>0<=1073741822){d=x<<6;b=(b&-32)+32|0;b=b>>>0>>0?d:b}else{b=2147483647}Ic(k,b);b=J[a+20>>2]}J[a+20>>2]=b+1;d=J[a+16>>2]+(b>>>3&536870908)|0;J[d>>2]=J[d>>2]|1<>>0<=1073741822){c=x<<6;b=(b&-32)+32|0;b=b>>>0>>0?c:b}else{b=2147483647}Ic(k,b);b=J[a+20>>2]}J[a+20>>2]=b+1;c=J[a+16>>2]+(b>>>3&536870908)|0;g=J[c>>2];T=c,U=bm(b)&g,J[T>>2]=U;c=d;g=f}J[a+8>>2]=g;J[a+12>>2]=c}n=(l|0)<=(w|0)&E>>>0<=z>>>0|(l|0)<(w|0)}ia=i+80|0;return n}La();C()}function cf(a,b,c){var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0;g=J[b+48>>2];if(!g){b=ll(32);H[b+23|0]=0;c=K[1670]|K[1671]<<8|(K[1672]<<16|K[1673]<<24);e=K[1666]|K[1667]<<8|(K[1668]<<16|K[1669]<<24);H[b+15|0]=e;H[b+16|0]=e>>>8;H[b+17|0]=e>>>16;H[b+18|0]=e>>>24;H[b+19|0]=c;H[b+20|0]=c>>>8;H[b+21|0]=c>>>16;H[b+22|0]=c>>>24;c=K[1663]|K[1664]<<8|(K[1665]<<16|K[1666]<<24);e=K[1659]|K[1660]<<8|(K[1661]<<16|K[1662]<<24);H[b+8|0]=e;H[b+9|0]=e>>>8;H[b+10|0]=e>>>16;H[b+11|0]=e>>>24;H[b+12|0]=c;H[b+13|0]=c>>>8;H[b+14|0]=c>>>16;H[b+15|0]=c>>>24;c=K[1655]|K[1656]<<8|(K[1657]<<16|K[1658]<<24);e=K[1651]|K[1652]<<8|(K[1653]<<16|K[1654]<<24);H[b|0]=e;H[b+1|0]=e>>>8;H[b+2|0]=e>>>16;H[b+3|0]=e>>>24;H[b+4|0]=c;H[b+5|0]=c>>>8;H[b+6|0]=c>>>16;H[b+7|0]=c>>>24;J[a>>2]=-1;sl(a+4|0,b,23);fl(b);return}h=J[b+52>>2];if(!h){e=ia-32|0;ia=e;d=ll(16);J[e+16>>2]=d;J[e+20>>2]=15;J[e+24>>2]=-2147483632;f=K[1587]|K[1588]<<8|(K[1589]<<16|K[1590]<<24);h=K[1583]|K[1584]<<8|(K[1585]<<16|K[1586]<<24);H[d+7|0]=h;H[d+8|0]=h>>>8;H[d+9|0]=h>>>16;H[d+10|0]=h>>>24;H[d+11|0]=f;H[d+12|0]=f>>>8;H[d+13|0]=f>>>16;H[d+14|0]=f>>>24;f=K[1580]|K[1581]<<8|(K[1582]<<16|K[1583]<<24);h=K[1576]|K[1577]<<8|(K[1578]<<16|K[1579]<<24);H[d|0]=h;H[d+1|0]=h>>>8;H[d+2|0]=h>>>16;H[d+3|0]=h>>>24;H[d+4|0]=f;H[d+5|0]=f>>>8;H[d+6|0]=f>>>16;H[d+7|0]=f>>>24;H[d+15|0]=0;h=b+4|0;j=oi(h,e+16|0,-1);if(H[e+27|0]<0){fl(J[e+16>>2])}a:{b:{c:{d:{e:{switch(j+1|0){case 1:d=ll(56);J[d>>2]=0;J[d+4>>2]=0;J[d+48>>2]=0;J[d+52>>2]=0;J[d+40>>2]=0;J[d+44>>2]=0;J[d+32>>2]=0;J[d+36>>2]=0;J[d+24>>2]=0;J[d+28>>2]=0;J[d+16>>2]=0;J[d+20>>2]=0;J[d+8>>2]=0;J[d+12>>2]=0;d=$h(d);J[d>>2]=12672;break c;case 0:break e;default:break d}}if((Rb(h)|0)!=10){break d}d=ll(56);J[d>>2]=0;J[d+4>>2]=0;J[d+48>>2]=0;J[d+52>>2]=0;J[d+40>>2]=0;J[d+44>>2]=0;J[d+32>>2]=0;J[d+36>>2]=0;J[d+24>>2]=0;J[d+28>>2]=0;J[d+16>>2]=0;J[d+20>>2]=0;J[d+8>>2]=0;J[d+12>>2]=0;d=$h(d);J[d>>2]=12672;break c}J[e+12>>2]=0;f:{i=J[g+12>>2];f=J[g+8>>2];if((i-f|0)>0){d=0;while(1){k=J[J[(d<<2)+f>>2]+28>>2];if(k-1>>>0>=6){if((k|0)!=9){break f}d=ll(32);J[e+16>>2]=d;J[e+20>>2]=17;J[e+24>>2]=-2147483616;H[d+16|0]=K[1261];f=K[1257]|K[1258]<<8|(K[1259]<<16|K[1260]<<24);i=K[1253]|K[1254]<<8|(K[1255]<<16|K[1256]<<24);H[d+8|0]=i;H[d+9|0]=i>>>8;H[d+10|0]=i>>>16;H[d+11|0]=i>>>24;H[d+12|0]=f;H[d+13|0]=f>>>8;H[d+14|0]=f>>>16;H[d+15|0]=f>>>24;f=K[1249]|K[1250]<<8|(K[1251]<<16|K[1252]<<24);i=K[1245]|K[1246]<<8|(K[1247]<<16|K[1248]<<24);H[d|0]=i;H[d+1|0]=i>>>8;H[d+2|0]=i>>>16;H[d+3|0]=i>>>24;H[d+4|0]=f;H[d+5|0]=f>>>8;H[d+6|0]=f>>>16;H[d+7|0]=f>>>24;H[d+17|0]=0;d=Ib(h,e+12|0,e+16|0,-1);if(H[e+27|0]<0){fl(J[e+16>>2])}if((d|0)<=0){break f}f=J[g+8>>2];i=J[g+12>>2];d=J[e+12>>2]}d=d+1|0;J[e+12>>2]=d;if(i-f>>2>(d|0)){continue}break}}d=ll(56);J[d>>2]=0;J[d+4>>2]=0;J[d+48>>2]=0;J[d+52>>2]=0;J[d+40>>2]=0;J[d+44>>2]=0;J[d+32>>2]=0;J[d+36>>2]=0;J[d+24>>2]=0;J[d+28>>2]=0;J[d+16>>2]=0;J[d+20>>2]=0;J[d+8>>2]=0;J[d+12>>2]=0;d=$h(d);J[d>>2]=12564;break c}if((j|0)==1){break b}d=ll(56);J[d>>2]=0;J[d+4>>2]=0;J[d+48>>2]=0;J[d+52>>2]=0;J[d+40>>2]=0;J[d+44>>2]=0;J[d+32>>2]=0;J[d+36>>2]=0;J[d+24>>2]=0;J[d+28>>2]=0;J[d+16>>2]=0;J[d+20>>2]=0;J[d+8>>2]=0;J[d+12>>2]=0;d=$h(d);J[d>>2]=12672}J[d+4>>2]=g;ai(a,d,h,c);if(!J[a>>2]){if(H[a+15|0]<0){fl(J[a+4>>2])}c=J[d+52>>2];J[b+44>>2]=0;J[b+40>>2]=c;J[a+8>>2]=0;J[a+12>>2]=0;J[a>>2]=0;J[a+4>>2]=0}na[J[J[d>>2]+4>>2]](d);break a}b=ll(32);H[b+24|0]=0;c=K[1853]|K[1854]<<8|(K[1855]<<16|K[1856]<<24);d=K[1849]|K[1850]<<8|(K[1851]<<16|K[1852]<<24);H[b+16|0]=d;H[b+17|0]=d>>>8;H[b+18|0]=d>>>16;H[b+19|0]=d>>>24;H[b+20|0]=c;H[b+21|0]=c>>>8;H[b+22|0]=c>>>16;H[b+23|0]=c>>>24;c=K[1845]|K[1846]<<8|(K[1847]<<16|K[1848]<<24);d=K[1841]|K[1842]<<8|(K[1843]<<16|K[1844]<<24);H[b+8|0]=d;H[b+9|0]=d>>>8;H[b+10|0]=d>>>16;H[b+11|0]=d>>>24;H[b+12|0]=c;H[b+13|0]=c>>>8;H[b+14|0]=c>>>16;H[b+15|0]=c>>>24;c=K[1837]|K[1838]<<8|(K[1839]<<16|K[1840]<<24);d=K[1833]|K[1834]<<8|(K[1835]<<16|K[1836]<<24);H[b|0]=d;H[b+1|0]=d>>>8;H[b+2|0]=d>>>16;H[b+3|0]=d>>>24;H[b+4|0]=c;H[b+5|0]=c>>>8;H[b+6|0]=c>>>16;H[b+7|0]=c>>>24;J[a>>2]=-1;sl(a+4|0,b,24);fl(b)}ia=e+32|0;return}d=ia-16|0;ia=d;e=ll(16);J[d>>2]=e;J[d+4>>2]=15;J[d+8>>2]=-2147483632;g=K[1587]|K[1588]<<8|(K[1589]<<16|K[1590]<<24);f=K[1583]|K[1584]<<8|(K[1585]<<16|K[1586]<<24);H[e+7|0]=f;H[e+8|0]=f>>>8;H[e+9|0]=f>>>16;H[e+10|0]=f>>>24;H[e+11|0]=g;H[e+12|0]=g>>>8;H[e+13|0]=g>>>16;H[e+14|0]=g>>>24;g=K[1580]|K[1581]<<8|(K[1582]<<16|K[1583]<<24);f=K[1576]|K[1577]<<8|(K[1578]<<16|K[1579]<<24);H[e|0]=f;H[e+1|0]=f>>>8;H[e+2|0]=f>>>16;H[e+3|0]=f>>>24;H[e+4|0]=g;H[e+5|0]=g>>>8;H[e+6|0]=g>>>16;H[e+7|0]=g>>>24;H[e+15|0]=0;g=b+4|0;e=oi(g,d,-1);if(H[d+11|0]<0){fl(J[d>>2])}g:{h:{i:{switch(e+1|0){case 0:if((Rb(g)|0)==10){break h}break;case 2:break i;default:break h}}e=Rh(ll(68));J[e+64>>2]=0;J[e>>2]=10412;break g}e=Rh(ll(64));J[e>>2]=12280}J[e+56>>2]=h;J[e+4>>2]=h;ai(a,e,g,c);if(!J[a>>2]){if(H[a+15|0]<0){fl(J[a+4>>2])}J[b+40>>2]=J[e+52>>2];J[b+44>>2]=J[e+60>>2];J[a+8>>2]=0;J[a+12>>2]=0;J[a>>2]=0;J[a+4>>2]=0}na[J[J[e>>2]+4>>2]](e);ia=d+16|0} +function Ed(a,b,c,d){var e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,D=0,E=0,F=0,G=0,I=0,L=0,M=0,N=0,O=0,P=0,Q=0,R=0,S=0,T=0,U=0;i=ia-80|0;ia=i;f=-1;a:{if((b|0)==-1){break a}g=J[a+32>>2];e=b+1|0;e=(e>>>0)%3|0?e:b-2|0;if((e|0)!=-1){f=J[J[g>>2]+(e<<2)>>2]}e=((b>>>0)%3|0?-1:2)+b|0;b=-1;b=(e|0)!=-1?J[J[g>>2]+(e<<2)>>2]:b;e=J[a+36>>2];g=J[e>>2];e=J[e+4>>2]-g>>2;if(e>>>0<=f>>>0|b>>>0>=e>>>0){break a}b:{c:{d:{e:{f:{g:{h:{i:{e=J[g+(b<<2)>>2];k=J[g+(f<<2)>>2];if((e|0)>=(d|0)|(k|0)>=(d|0)){break i}b=(e<<3)+c|0;q=J[b+4>>2];f=(k<<3)+c|0;g=J[f+4>>2];j=J[f>>2];A=J[b>>2];if(!((j|0)!=(A|0)|(g|0)!=(q|0))){J[a+8>>2]=j;J[a+12>>2]=g;break h}b=J[J[a+4>>2]+(d<<2)>>2];J[i+72>>2]=0;J[i+76>>2]=0;f=i- -64|0;J[f>>2]=0;J[f+4>>2]=0;J[i+56>>2]=0;J[i+60>>2]=0;f=J[a>>2];if(!K[f+84|0]){b=J[J[f+68>>2]+(b<<2)>>2]}md(f,b,H[f+24|0],i+56|0);b=J[J[a+4>>2]+(k<<2)>>2];J[i+48>>2]=0;J[i+52>>2]=0;J[i+40>>2]=0;J[i+44>>2]=0;J[i+32>>2]=0;J[i+36>>2]=0;f=J[a>>2];if(!K[f+84|0]){b=J[J[f+68>>2]+(b<<2)>>2]}md(f,b,H[f+24|0],i+32|0);b=J[J[a+4>>2]+(e<<2)>>2];J[i+24>>2]=0;J[i+28>>2]=0;J[i+16>>2]=0;J[i+20>>2]=0;J[i+8>>2]=0;J[i+12>>2]=0;f=J[a>>2];if(!K[f+84|0]){b=J[J[f+68>>2]+(b<<2)>>2]}md(f,b,H[f+24|0],i+8|0);L=J[i+44>>2];b=J[i+16>>2];x=J[i+40>>2];f=x;h=J[i+20>>2]-(L+(b>>>0>>0)|0)|0;t=b-f|0;b=Zl(t,h,t,h);f=ma;n=b;M=J[i+36>>2];b=J[i+8>>2];B=J[i+32>>2];e=B;o=J[i+12>>2]-(M+(b>>>0>>0)|0)|0;l=b-e|0;m=Zl(l,o,l,o);b=n+m|0;e=ma+f|0;e=b>>>0>>0?e+1|0:e;n=b;N=J[i+52>>2];b=J[i+24>>2];D=J[i+48>>2];f=D;m=J[i+28>>2]-(N+(b>>>0>>0)|0)|0;u=b-f|0;p=Zl(u,m,u,m);b=n+p|0;f=ma+e|0;s=b;p=b>>>0

>>0?f+1|0:f;if(!(b|p)){break i}F=$l(-1,2147483647,s,p);b=j>>31;O=b;f=j;e=b>>31;j=b^e;b=f^e;j=j-((e>>>0>b>>>0)+e|0)|0;v=b-e|0;b=g>>31;G=b;k=b>>31;y=k^g;I=y-k|0;e=b>>31;b=(e^b)-((k>>>0>y>>>0)+e|0)|0;e=(j|0)==(b|0)&v>>>0>I>>>0|b>>>0>>0;k=e?v:I;r=ma;b=e?j:b;n=0;if((r|0)==(b|0)&k>>>0>F>>>0|b>>>0>r>>>0){break c}r=J[i+64>>2];b=r;v=J[i+68>>2];b=Zl(b-x|0,v-((b>>>0>>0)+L|0)|0,t,h);e=ma;n=b;F=J[i+56>>2];b=F;y=J[i+60>>2];j=Zl(b-B|0,y-((b>>>0>>0)+M|0)|0,l,o);b=n+j|0;e=ma+e|0;e=b>>>0>>0?e+1|0:e;j=b;I=J[i+72>>2];b=I;P=J[i+76>>2];k=Zl(b-D|0,P-((b>>>0>>0)+N|0)|0,u,m);j=j+k|0;b=ma+e|0;E=j;k=j>>>0>>0?b+1|0:b;b=o>>31;e=b;j=b^l;b=(b^o)-(b+(b>>>0>j>>>0)|0)|0;n=j-e|0;e=h>>31;w=e^t;z=w-e|0;e=(h^e)-((e>>>0>w>>>0)+e|0)|0;j=(e|0)==(b|0)&n>>>0>z>>>0|b>>>0>e>>>0;n=j?n:z;b=j?b:e;e=m>>31;w=e^u;z=w-e|0;e=(e^m)-((e>>>0>w>>>0)+e|0)|0;j=(e|0)==(b|0)&n>>>0>z>>>0|b>>>0>e>>>0;z=$l(-1,2147483647,j?n:z,j?b:e);w=ma;b=w;if(z>>>0>>0&(b|0)<=(k|0)|(b|0)<(k|0)){break d}Q=q-g|0;R=(q>>31)-((g>>>0>q>>>0)+G|0)|0;b=Zl(E,k,Q,R);e=ma;q=Zl(s,p,g,G);g=q+b|0;b=ma+e|0;b=g>>>0>>0?b+1|0:b;q=g;n=b;G=A-f|0;S=(A>>31)-((f>>>0>A>>>0)+O|0)|0;b=Zl(E,k,G,S);g=ma;f=Zl(f,O,s,p);b=f+b|0;e=ma+g|0;j=b;A=b>>>0>>0?e+1|0:e;g=1;f=0;b=r;t=_l(Zl(t,h,E,k),ma,s,p);h=t+x|0;e=ma+L|0;e=h>>>0>>0?e+1|0:e;e=v-((b>>>0>>0)+e|0)|0;b=b-h|0;b=Zl(b,e,b,e);h=ma;e=F;r=b;o=_l(Zl(l,o,E,k),ma,s,p);l=o+B|0;b=ma+M|0;b=l>>>0>>0?b+1|0:b;b=y-((e>>>0>>0)+b|0)|0;e=e-l|0;l=Zl(e,b,e,b);b=r+l|0;e=ma+h|0;h=b;l=b>>>0>>0?e+1|0:e;b=I;r=h;o=_l(Zl(u,m,E,k),ma,s,p);h=o+D|0;e=ma+N|0;e=h>>>0>>0?e+1|0:e;e=P-((b>>>0>>0)+e|0)|0;b=b-h|0;h=Zl(b,e,b,e);e=r+h|0;b=ma+l|0;l=Zl(e,e>>>0>>0?b+1|0:b,s,p);b=ma;h=b;if(!b&l>>>0<=1){break g}o=l;e=h;while(1){b=f<<1|g>>>31;g=g<<1;f=b;m=!e&o>>>0>7|(e|0)!=0;o=(e&3)<<30|o>>>2;e=e>>>2|0;if(m){continue}break}break f}if((d|0)>(k|0)){b=k<<1}else{if((d|0)<=0){J[a+8>>2]=0;J[a+12>>2]=0;break h}b=(d<<1)-2|0}b=(b<<2)+c|0;J[a+8>>2]=J[b>>2];J[a+12>>2]=J[b+4>>2]}n=1;break c}f=h;g=l;if(g-1|0){break e}}while(1){b=$l(l,h,g,f)+g|0;f=f+ma|0;f=b>>>0>>0?f+1|0:f;g=(f&1)<<31|b>>>1;f=f>>>1|0;b=Zl(g,f,g,f);e=ma;if((h|0)==(e|0)&b>>>0>l>>>0|e>>>0>h>>>0){continue}break}}l=a+16|0;x=J[a+24>>2];B=x<<5;b=J[a+20>>2];h=(d<<3)+c|0;d=J[h+4>>2];D=Zl(g,f,G,S);c=D;r=ma;c=_l(q-c|0,n-(r+(c>>>0>q>>>0)|0)|0,s,p);m=d-c|0;o=d>>31;e=o-(ma+(c>>>0>d>>>0)|0)|0;v=Zl(m,e,m,e);F=ma;h=J[h>>2];e=h>>31;m=h;t=e;u=Zl(g,f,Q,R);g=j+u|0;y=ma;f=A+y|0;g=_l(g,g>>>0>>0?f+1|0:f,s,p);f=e-(ma+(g>>>0>h>>>0)|0)|0;e=h-g|0;h=Zl(e,f,e,f);f=h+v|0;e=ma+F|0;v=f;h=f>>>0>>0?e+1|0:e;f=d;e=n+r|0;d=q+D|0;e=d>>>0>>0?e+1|0:e;d=_l(d,e,s,p);e=o-(ma+(d>>>0>f>>>0)|0)|0;f=f-d|0;e=Zl(f,e,f,e);q=ma;f=_l(j-u|0,A-((j>>>0>>0)+y|0)|0,s,p);n=e;e=t-(ma+(f>>>0>m>>>0)|0)|0;m=m-f|0;j=Zl(m,e,m,e);m=n+j|0;e=ma+q|0;e=j>>>0>m>>>0?e+1|0:e;j:{if((e|0)==(h|0)&m>>>0>v>>>0|e>>>0>h>>>0){if((b|0)==(B|0)){if((b+1|0)<0){break b}if(b>>>0<=1073741822){d=x<<6;b=(b&-32)+32|0;b=b>>>0>>0?d:b}else{b=2147483647}Ic(l,b);b=J[a+20>>2]}J[a+20>>2]=b+1;d=J[a+16>>2]+(b>>>3&536870908)|0;J[d>>2]=J[d>>2]|1<>>0<=1073741822){c=x<<6;b=(b&-32)+32|0;b=b>>>0>>0?c:b}else{b=2147483647}Ic(l,b);b=J[a+20>>2]}J[a+20>>2]=b+1;c=J[a+16>>2]+(b>>>3&536870908)|0;g=J[c>>2];T=c,U=bm(b)&g,J[T>>2]=U;c=d;g=f}J[a+8>>2]=g;J[a+12>>2]=c}n=(k|0)<=(w|0)&E>>>0<=z>>>0|(k|0)<(w|0)}ia=i+80|0;return n}La();C()}Zc();C()}function ug(a){a=a|0;var b=0,c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0;e=ia-16|0;ia=e;f=J[a+48>>2];b=ll(32);J[e>>2]=b;J[e+4>>2]=20;J[e+8>>2]=-2147483616;c=K[1359]|K[1360]<<8|(K[1361]<<16|K[1362]<<24);H[b+16|0]=c;H[b+17|0]=c>>>8;H[b+18|0]=c>>>16;H[b+19|0]=c>>>24;c=K[1355]|K[1356]<<8|(K[1357]<<16|K[1358]<<24);d=K[1351]|K[1352]<<8|(K[1353]<<16|K[1354]<<24);H[b+8|0]=d;H[b+9|0]=d>>>8;H[b+10|0]=d>>>16;H[b+11|0]=d>>>24;H[b+12|0]=c;H[b+13|0]=c>>>8;H[b+14|0]=c>>>16;H[b+15|0]=c>>>24;c=K[1347]|K[1348]<<8|(K[1349]<<16|K[1350]<<24);d=K[1343]|K[1344]<<8|(K[1345]<<16|K[1346]<<24);H[b|0]=d;H[b+1|0]=d>>>8;H[b+2|0]=d>>>16;H[b+3|0]=d>>>24;H[b+4|0]=c;H[b+5|0]=c>>>8;H[b+6|0]=c>>>16;H[b+7|0]=c>>>24;H[b+20|0]=0;f=qi(f+24|0,e);if(H[e+11|0]<0){fl(J[e>>2])}g=J[a+48>>2];b=ll(32);J[e>>2]=b;J[e+4>>2]=22;J[e+8>>2]=-2147483616;c=K[1338]|K[1339]<<8|(K[1340]<<16|K[1341]<<24);d=K[1334]|K[1335]<<8|(K[1336]<<16|K[1337]<<24);H[b+14|0]=d;H[b+15|0]=d>>>8;H[b+16|0]=d>>>16;H[b+17|0]=d>>>24;H[b+18|0]=c;H[b+19|0]=c>>>8;H[b+20|0]=c>>>16;H[b+21|0]=c>>>24;c=K[1332]|K[1333]<<8|(K[1334]<<16|K[1335]<<24);d=K[1328]|K[1329]<<8|(K[1330]<<16|K[1331]<<24);H[b+8|0]=d;H[b+9|0]=d>>>8;H[b+10|0]=d>>>16;H[b+11|0]=d>>>24;H[b+12|0]=c;H[b+13|0]=c>>>8;H[b+14|0]=c>>>16;H[b+15|0]=c>>>24;c=K[1324]|K[1325]<<8|(K[1326]<<16|K[1327]<<24);d=K[1320]|K[1321]<<8|(K[1322]<<16|K[1323]<<24);H[b|0]=d;H[b+1|0]=d>>>8;H[b+2|0]=d>>>16;H[b+3|0]=d>>>24;H[b+4|0]=c;H[b+5|0]=c>>>8;H[b+6|0]=c>>>16;H[b+7|0]=c>>>24;H[b+22|0]=0;g=qi(g+24|0,e);if(H[e+11|0]<0){fl(J[e>>2])}b=J[a+64>>2];J[a+64>>2]=0;if(b){na[J[J[b>>2]+4>>2]](b)}b=J[a+56>>2];h=J[b+100>>2];i=J[a+48>>2];j=J[b+96>>2];b=ll(32);J[e>>2]=b;J[e+4>>2]=18;J[e+8>>2]=-2147483616;c=K[1566]|K[1567]<<8;H[b+16|0]=c;H[b+17|0]=c>>>8;c=K[1562]|K[1563]<<8|(K[1564]<<16|K[1565]<<24);d=K[1558]|K[1559]<<8|(K[1560]<<16|K[1561]<<24);H[b+8|0]=d;H[b+9|0]=d>>>8;H[b+10|0]=d>>>16;H[b+11|0]=d>>>24;H[b+12|0]=c;H[b+13|0]=c>>>8;H[b+14|0]=c>>>16;H[b+15|0]=c>>>24;c=K[1554]|K[1555]<<8|(K[1556]<<16|K[1557]<<24);d=K[1550]|K[1551]<<8|(K[1552]<<16|K[1553]<<24);H[b|0]=d;H[b+1|0]=d>>>8;H[b+2|0]=d>>>16;H[b+3|0]=d>>>24;H[b+4|0]=c;H[b+5|0]=c>>>8;H[b+6|0]=c>>>16;H[b+7|0]=c>>>24;H[b+18|0]=0;b=oi(i,e,-1);if(H[e+11|0]<0){fl(J[e>>2])}c=(h-j|0)/12|0;a:{b:{c:{d:{e:{f:{g:{h:{switch(b+1|0){case 1:break f;case 3:break g;case 0:break h;default:break c}}if(!f){break g}if(c>>>0<1e3|(Rb(J[a+48>>2])|0)>4|g^1){break e}}b=J[a+44>>2];H[e|0]=2;c=J[b+20>>2];if(!J[b+16>>2]&(c|0)<=0|(c|0)<0){Ea(b,J[b+4>>2],e,e+1|0)}b=ll(360);J[b+4>>2]=0;J[b+8>>2]=0;J[b+72>>2]=0;J[b+76>>2]=0;J[b>>2]=10592;J[b+12>>2]=0;J[b+16>>2]=0;J[b+20>>2]=0;J[b+24>>2]=0;J[b+28>>2]=0;J[b+32>>2]=0;J[b+36>>2]=0;J[b+40>>2]=0;J[b+44>>2]=0;J[b+48>>2]=0;J[b+52>>2]=0;J[b+56>>2]=0;J[b+60>>2]=0;J[b+64>>2]=0;J[b+80>>2]=0;J[b+84>>2]=0;J[b+88>>2]=0;J[b+92>>2]=0;J[b+96>>2]=0;J[b+100>>2]=0;J[b+104>>2]=0;J[b+108>>2]=0;J[b+112>>2]=0;J[b+116>>2]=0;J[b+120>>2]=0;J[b+124>>2]=0;J[b+128>>2]=0;J[b+132>>2]=0;J[b+136>>2]=1065353216;J[b+156>>2]=0;J[b+160>>2]=0;J[b+148>>2]=0;J[b+152>>2]=0;J[b+140>>2]=0;J[b+144>>2]=0;J[b+168>>2]=0;J[b+172>>2]=0;J[b+164>>2]=-1;J[b+176>>2]=0;J[b+180>>2]=0;J[b+184>>2]=0;J[b+188>>2]=0;J[b+192>>2]=0;c=b+200|0;J[c>>2]=0;J[c+4>>2]=0;J[c+24>>2]=0;J[c+28>>2]=0;J[c+16>>2]=0;J[c+20>>2]=0;J[c+8>>2]=0;J[c+12>>2]=0;c=b+232|0;J[c>>2]=0;J[c+4>>2]=0;H[c+24|0]=0;J[c+16>>2]=0;J[c+20>>2]=0;J[c+8>>2]=0;J[c+12>>2]=0;J[b+304>>2]=0;J[b+308>>2]=0;J[b+296>>2]=0;J[b+300>>2]=0;J[b+288>>2]=0;J[b+292>>2]=0;J[b+280>>2]=0;J[b+284>>2]=0;J[b+272>>2]=0;J[b+276>>2]=0;J[b+264>>2]=0;J[b+268>>2]=0;H[b+352|0]=0;J[b+344>>2]=0;J[b+336>>2]=0;J[b+340>>2]=0;J[b+328>>2]=2;J[b+332>>2]=7;J[b+320>>2]=-1;J[b+324>>2]=0;J[b+312>>2]=0;J[b+316>>2]=-1;break d}if(!f){break c}}b=J[a+44>>2];H[e|0]=0;c=J[b+20>>2];if(!J[b+16>>2]&(c|0)<=0|(c|0)<0){Ea(b,J[b+4>>2],e,e+1|0)}b=ll(296);J[b+4>>2]=0;J[b+8>>2]=0;J[b+72>>2]=0;J[b+76>>2]=0;J[b>>2]=10540;J[b+12>>2]=0;J[b+16>>2]=0;J[b+20>>2]=0;J[b+24>>2]=0;J[b+28>>2]=0;J[b+32>>2]=0;J[b+36>>2]=0;J[b+40>>2]=0;J[b+44>>2]=0;J[b+48>>2]=0;J[b+52>>2]=0;J[b+56>>2]=0;J[b+60>>2]=0;J[b+64>>2]=0;J[b+80>>2]=0;J[b+84>>2]=0;J[b+88>>2]=0;J[b+92>>2]=0;J[b+96>>2]=0;J[b+100>>2]=0;J[b+104>>2]=0;J[b+108>>2]=0;J[b+112>>2]=0;J[b+116>>2]=0;J[b+120>>2]=0;J[b+124>>2]=0;J[b+128>>2]=0;J[b+132>>2]=0;J[b+136>>2]=1065353216;J[b+156>>2]=0;J[b+160>>2]=0;J[b+148>>2]=0;J[b+152>>2]=0;J[b+140>>2]=0;J[b+144>>2]=0;J[b+168>>2]=0;J[b+172>>2]=0;J[b+164>>2]=-1;J[b+176>>2]=0;J[b+180>>2]=0;J[b+184>>2]=0;J[b+188>>2]=0;J[b+192>>2]=0;c=b+200|0;J[c>>2]=0;J[c+4>>2]=0;J[c+24>>2]=0;J[c+28>>2]=0;J[c+16>>2]=0;J[c+20>>2]=0;J[c+8>>2]=0;J[c+12>>2]=0;c=b+232|0;J[c>>2]=0;J[c+4>>2]=0;H[c+24|0]=0;J[c+16>>2]=0;J[c+20>>2]=0;J[c+8>>2]=0;J[c+12>>2]=0;H[b+288|0]=0;J[b+280>>2]=0;J[b+284>>2]=0;J[b+272>>2]=0;J[b+276>>2]=0;J[b+264>>2]=0;J[b+268>>2]=0}c=J[a+64>>2];J[a+64>>2]=b;if(!c){break b}na[J[J[c>>2]+4>>2]](c)}b=J[a+64>>2];if(b){break b}a=0;break a}a=na[J[J[b>>2]+8>>2]](b,a)|0}ia=e+16|0;return a|0}function Nb(a,b,c,d){var e=0,f=0,g=0,h=0,i=0,j=0,k=Q(0),l=0,m=Q(0),n=0;a:{b:{if(!d){break b}c:{switch(J[a+28>>2]-1|0){case 0:e=K[a+24|0];f=c&255;if(e>>>0>>0?e:f){g=J[a>>2];e=J[g>>2];b=J[a+48>>2]+Zl(J[a+40>>2],J[a+44>>2],b,0)|0;b=e+b|0;g=J[g+4>>2];while(1){if(b>>>0>=g>>>0){break b}J[(h<<2)+d>>2]=H[b|0];b=b+1|0;h=h+1|0;e=K[a+24|0];if(h>>>0<(e>>>0>>0?e:f)>>>0){continue}break}}i=1;if(e>>>0>=f>>>0){break b}break a;case 1:e=K[a+24|0];f=c&255;if(e>>>0>>0?e:f){g=J[a>>2];e=J[g>>2];b=J[a+48>>2]+Zl(J[a+40>>2],J[a+44>>2],b,0)|0;b=e+b|0;g=J[g+4>>2];while(1){if(b>>>0>=g>>>0){break b}J[(h<<2)+d>>2]=K[b|0];b=b+1|0;h=h+1|0;e=K[a+24|0];if(h>>>0<(e>>>0>>0?e:f)>>>0){continue}break}}i=1;if(e>>>0>=f>>>0){break b}break a;case 2:e=K[a+24|0];f=c&255;if(e>>>0>>0?e:f){g=J[a>>2];e=J[g>>2];b=J[a+48>>2]+Zl(J[a+40>>2],J[a+44>>2],b,0)|0;b=e+b|0;g=J[g+4>>2];while(1){if(b>>>0>=g>>>0){break b}J[(h<<2)+d>>2]=I[b>>1];b=b+2|0;h=h+1|0;e=K[a+24|0];if(h>>>0<(e>>>0>>0?e:f)>>>0){continue}break}}i=1;if(e>>>0>=f>>>0){break b}break a;case 3:e=K[a+24|0];f=c&255;if(e>>>0>>0?e:f){g=J[a>>2];e=J[g>>2];b=J[a+48>>2]+Zl(J[a+40>>2],J[a+44>>2],b,0)|0;b=e+b|0;g=J[g+4>>2];while(1){if(b>>>0>=g>>>0){break b}J[(h<<2)+d>>2]=L[b>>1];b=b+2|0;h=h+1|0;e=K[a+24|0];if(h>>>0<(e>>>0>>0?e:f)>>>0){continue}break}}i=1;if(e>>>0>=f>>>0){break b}break a;case 4:e=K[a+24|0];f=c&255;if(e>>>0>>0?e:f){g=J[a>>2];e=J[g>>2];b=J[a+48>>2]+Zl(J[a+40>>2],J[a+44>>2],b,0)|0;b=e+b|0;g=J[g+4>>2];while(1){if(b>>>0>=g>>>0){break b}J[(h<<2)+d>>2]=J[b>>2];b=b+4|0;h=h+1|0;e=K[a+24|0];if(h>>>0<(e>>>0>>0?e:f)>>>0){continue}break}}i=1;if(e>>>0>=f>>>0){break b}break a;case 5:e=K[a+24|0];f=c&255;if(e>>>0>>0?e:f){g=J[a>>2];e=J[g>>2];b=J[a+48>>2]+Zl(J[a+40>>2],J[a+44>>2],b,0)|0;b=e+b|0;g=J[g+4>>2];while(1){if(b>>>0>=g>>>0){return 0}e=J[b>>2];if((e|0)<0){break b}J[(h<<2)+d>>2]=e;b=b+4|0;h=h+1|0;e=K[a+24|0];if(h>>>0<(e>>>0>>0?e:f)>>>0){continue}break}}i=1;if(e>>>0>=f>>>0){break b}break a;case 6:e=K[a+24|0];f=c&255;if(e>>>0>>0?e:f){g=J[a>>2];e=J[g>>2];b=J[a+48>>2]+Zl(J[a+40>>2],J[a+44>>2],b,0)|0;b=e+b|0;g=J[g+4>>2];while(1){if(b>>>0>=g>>>0){break b}l=J[b>>2];if((J[b+4>>2]-(l>>>0<2147483648)|0)!=-1){break b}J[(h<<2)+d>>2]=l;b=b+8|0;h=h+1|0;e=K[a+24|0];if(h>>>0<(e>>>0>>0?e:f)>>>0){continue}break}}i=1;if(e>>>0>=f>>>0){break b}break a;case 7:e=K[a+24|0];f=c&255;if(e>>>0>>0?e:f){g=J[a>>2];e=J[g>>2];b=J[a+48>>2]+Zl(J[a+40>>2],J[a+44>>2],b,0)|0;b=e+b|0;g=J[g+4>>2];while(1){if(b>>>0>=g>>>0){break b}e=J[b+4>>2];l=J[b>>2];if(!e&l>>>0>2147483647|e){break b}J[(h<<2)+d>>2]=l;b=b+8|0;h=h+1|0;e=K[a+24|0];if(h>>>0<(e>>>0>>0?e:f)>>>0){continue}break}}i=1;if(e>>>0>=f>>>0){break b}break a;case 8:d:{e:{e=K[a+24|0];c=c&255;if(!(c>>>0>e>>>0?e:c)){break e}i=J[a>>2];g=J[i>>2];b=J[a+48>>2]+Zl(J[a+40>>2],J[a+44>>2],b,0)|0;h=g+b|0;f=J[i+4>>2];e=f-g|0;if(!K[a+32|0]){i=0;if((b|0)>=(e|0)){break d}b=0;while(1){k=N[h>>2];if(k=Q(2147483648)){break d}g=(b<<2)+d|0;if(m>2]=e;b=b+1|0;e=K[a+24|0];if(b>>>0>=(c>>>0>e>>>0?e:c)>>>0){break e}h=h+4|0;if(f>>>0>h>>>0){continue}break}break d}i=0;if((b|0)>=(e|0)){break d}b=0;while(1){k=N[h>>2];if(k=Q(2147483648))){break d}if(kQ(1)){break d}g=(b<<2)+d|0;j=V(+k*2147483647+.5);f:{if(R(j)<2147483648){e=~~j;break f}e=-2147483648}J[g>>2]=e;b=b+1|0;e=K[a+24|0];if(b>>>0>=(c>>>0>e>>>0?e:c)>>>0){break e}h=h+4|0;if(f>>>0>h>>>0){continue}break}break d}i=1;if(c>>>0<=e>>>0){break d}nk((e<<2)+d|0,0,c-e<<2)}return i;case 9:g:{h:{e=K[a+24|0];c=c&255;if(!(c>>>0>e>>>0?e:c)){break h}i=J[a>>2];g=J[i>>2];b=J[a+48>>2]+Zl(J[a+40>>2],J[a+44>>2],b,0)|0;h=g+b|0;f=J[i+4>>2];e=f-g|0;if(!K[a+32|0]){i=0;if((b|0)>=(e|0)){break g}b=0;while(1){j=O[h>>3];if(j<-2147483648|j!=j){break g}n=R(j);if(n==_|j>=2147483647){break g}g=(b<<2)+d|0;if(n<2147483648){e=~~j}else{e=-2147483648}J[g>>2]=e;b=b+1|0;e=K[a+24|0];if(b>>>0>=(c>>>0>e>>>0?e:c)>>>0){break h}h=h+8|0;if(f>>>0>h>>>0){continue}break}break g}i=0;if((b|0)>=(e|0)){break g}b=0;while(1){j=O[h>>3];if(j<-2147483648|j!=j|(R(j)==_|j>=2147483647)){break g}if(j<0|j>1){break g}g=(b<<2)+d|0;j=V(j*2147483647+.5);i:{if(R(j)<2147483648){e=~~j;break i}e=-2147483648}J[g>>2]=e;b=b+1|0;e=K[a+24|0];if(b>>>0>=(c>>>0>e>>>0?e:c)>>>0){break h}h=h+8|0;if(f>>>0>h>>>0){continue}break}break g}i=1;if(c>>>0<=e>>>0){break g}nk((e<<2)+d|0,0,c-e<<2)}return i;case 10:break c;default:break b}}e=K[a+24|0];f=c&255;if(e>>>0>>0?e:f){g=J[a>>2];e=J[g>>2];b=J[a+48>>2]+Zl(J[a+40>>2],J[a+44>>2],b,0)|0;b=e+b|0;g=J[g+4>>2];while(1){if(b>>>0>=g>>>0){break b}J[(h<<2)+d>>2]=K[b|0];b=b+1|0;h=h+1|0;e=K[a+24|0];if(h>>>0<(e>>>0>>0?e:f)>>>0){continue}break}}i=1;if(e>>>0>=f>>>0){break b}nk((e<<2)+d|0,0,(c&255)-e<<2)}return i}nk((e<<2)+d|0,0,(c&255)-e<<2);return 1}function Tb(a,b){var c=0,d=0,e=0,f=0,g=0,h=0;e=ia-16|0;ia=e;J[a+8>>2]=b;J[a>>2]=0;d=a+12|0;J[d>>2]=0;J[d+4>>2]=0;J[d+24>>2]=0;J[d+28>>2]=0;J[d+16>>2]=0;J[d+20>>2]=0;J[d+8>>2]=0;J[d+12>>2]=0;c=d+32|0;J[c>>2]=0;J[c+4>>2]=0;J[c+24>>2]=0;J[c+28>>2]=0;J[c+16>>2]=0;J[c+20>>2]=0;J[c+8>>2]=0;J[c+12>>2]=0;c=d- -64|0;J[c>>2]=0;J[c+4>>2]=0;J[c+24>>2]=0;J[c+28>>2]=0;J[c+16>>2]=0;J[c+20>>2]=0;J[c+8>>2]=0;J[c+12>>2]=0;c=d+96|0;J[c>>2]=0;J[c+4>>2]=0;J[c+24>>2]=0;J[c+28>>2]=0;J[c+16>>2]=0;J[c+20>>2]=0;J[c+8>>2]=0;J[c+12>>2]=0;c=d+128|0;J[c>>2]=0;J[c+4>>2]=0;J[c+24>>2]=0;J[c+28>>2]=0;J[c+16>>2]=0;J[c+20>>2]=0;J[c+8>>2]=0;J[c+12>>2]=0;c=d+160|0;J[c>>2]=0;J[c+4>>2]=0;J[c+24>>2]=0;J[c+28>>2]=0;J[c+16>>2]=0;J[c+20>>2]=0;J[c+8>>2]=0;J[c+12>>2]=0;c=d+192|0;J[c>>2]=0;J[c+4>>2]=0;J[c+24>>2]=0;J[c+28>>2]=0;J[c+16>>2]=0;J[c+20>>2]=0;J[c+8>>2]=0;J[c+12>>2]=0;c=d+224|0;J[c>>2]=0;J[c+4>>2]=0;J[c+24>>2]=0;J[c+28>>2]=0;J[c+16>>2]=0;J[c+20>>2]=0;J[c+8>>2]=0;J[c+12>>2]=0;c=d+256|0;J[c>>2]=0;J[c+4>>2]=0;J[c+24>>2]=0;J[c+28>>2]=0;J[c+16>>2]=0;J[c+20>>2]=0;J[c+8>>2]=0;J[c+12>>2]=0;c=d+288|0;J[c>>2]=0;J[c+4>>2]=0;J[c+24>>2]=0;J[c+28>>2]=0;J[c+16>>2]=0;J[c+20>>2]=0;J[c+8>>2]=0;J[c+12>>2]=0;c=d+320|0;J[c>>2]=0;J[c+4>>2]=0;J[c+24>>2]=0;J[c+28>>2]=0;J[c+16>>2]=0;J[c+20>>2]=0;J[c+8>>2]=0;J[c+12>>2]=0;c=d+352|0;J[c>>2]=0;J[c+4>>2]=0;J[c+24>>2]=0;J[c+28>>2]=0;J[c+16>>2]=0;J[c+20>>2]=0;J[c+8>>2]=0;J[c+12>>2]=0;c=d+384|0;J[c>>2]=0;J[c+4>>2]=0;J[c+24>>2]=0;J[c+28>>2]=0;J[c+16>>2]=0;J[c+20>>2]=0;J[c+8>>2]=0;J[c+12>>2]=0;c=d+416|0;J[c>>2]=0;J[c+4>>2]=0;J[c+24>>2]=0;J[c+28>>2]=0;J[c+16>>2]=0;J[c+20>>2]=0;J[c+8>>2]=0;J[c+12>>2]=0;c=d+448|0;J[c>>2]=0;J[c+4>>2]=0;J[c+24>>2]=0;J[c+28>>2]=0;J[c+16>>2]=0;J[c+20>>2]=0;J[c+8>>2]=0;J[c+12>>2]=0;c=d+480|0;J[c>>2]=0;J[c+4>>2]=0;J[c+24>>2]=0;J[c+28>>2]=0;J[c+16>>2]=0;J[c+20>>2]=0;J[c+8>>2]=0;J[c+12>>2]=0;c=d+512|0;J[c>>2]=0;J[c+4>>2]=0;J[c+24>>2]=0;J[c+28>>2]=0;J[c+16>>2]=0;J[c+20>>2]=0;J[c+8>>2]=0;J[c+12>>2]=0;c=d+544|0;J[c>>2]=0;J[c+4>>2]=0;J[c+24>>2]=0;J[c+28>>2]=0;J[c+16>>2]=0;J[c+20>>2]=0;J[c+8>>2]=0;J[c+12>>2]=0;c=d+576|0;J[c>>2]=0;J[c+4>>2]=0;J[c+24>>2]=0;J[c+28>>2]=0;J[c+16>>2]=0;J[c+20>>2]=0;J[c+8>>2]=0;J[c+12>>2]=0;c=d+608|0;J[c>>2]=0;J[c+4>>2]=0;J[c+24>>2]=0;J[c+28>>2]=0;J[c+16>>2]=0;J[c+20>>2]=0;J[c+8>>2]=0;J[c+12>>2]=0;c=d+640|0;J[c>>2]=0;J[c+4>>2]=0;J[c+24>>2]=0;J[c+28>>2]=0;J[c+16>>2]=0;J[c+20>>2]=0;J[c+8>>2]=0;J[c+12>>2]=0;c=d+672|0;J[c>>2]=0;J[c+4>>2]=0;J[c+24>>2]=0;J[c+28>>2]=0;J[c+16>>2]=0;J[c+20>>2]=0;J[c+8>>2]=0;J[c+12>>2]=0;c=d+704|0;J[c>>2]=0;J[c+4>>2]=0;J[c+24>>2]=0;J[c+28>>2]=0;J[c+16>>2]=0;J[c+20>>2]=0;J[c+8>>2]=0;J[c+12>>2]=0;c=d+736|0;J[c>>2]=0;J[c+4>>2]=0;J[c+24>>2]=0;J[c+28>>2]=0;J[c+16>>2]=0;J[c+20>>2]=0;J[c+8>>2]=0;J[c+12>>2]=0;c=d+768|0;J[c>>2]=0;J[c+4>>2]=0;J[c+24>>2]=0;J[c+28>>2]=0;J[c+16>>2]=0;J[c+20>>2]=0;J[c+8>>2]=0;J[c+12>>2]=0;c=d+800|0;J[c>>2]=0;J[c+4>>2]=0;J[c+24>>2]=0;J[c+28>>2]=0;J[c+16>>2]=0;J[c+20>>2]=0;J[c+8>>2]=0;J[c+12>>2]=0;c=d+832|0;J[c>>2]=0;J[c+4>>2]=0;J[c+24>>2]=0;J[c+28>>2]=0;J[c+16>>2]=0;J[c+20>>2]=0;J[c+8>>2]=0;J[c+12>>2]=0;c=d+864|0;J[c>>2]=0;J[c+4>>2]=0;J[c+24>>2]=0;J[c+28>>2]=0;J[c+16>>2]=0;J[c+20>>2]=0;J[c+8>>2]=0;J[c+12>>2]=0;c=d+896|0;J[c>>2]=0;J[c+4>>2]=0;J[c+24>>2]=0;J[c+28>>2]=0;J[c+16>>2]=0;J[c+20>>2]=0;J[c+8>>2]=0;J[c+12>>2]=0;c=d+928|0;J[c>>2]=0;J[c+4>>2]=0;J[c+24>>2]=0;J[c+28>>2]=0;J[c+16>>2]=0;J[c+20>>2]=0;J[c+8>>2]=0;J[c+12>>2]=0;c=d+960|0;J[c>>2]=0;J[c+4>>2]=0;J[c+24>>2]=0;J[c+28>>2]=0;J[c+16>>2]=0;J[c+20>>2]=0;J[c+8>>2]=0;J[c+12>>2]=0;d=d+992|0;J[d>>2]=0;J[d+4>>2]=0;J[d+24>>2]=0;J[d+28>>2]=0;J[d+16>>2]=0;J[d+20>>2]=0;J[d+8>>2]=0;J[d+12>>2]=0;d=a+1036|0;J[d>>2]=0;J[d+4>>2]=0;J[d+24>>2]=0;J[d+28>>2]=0;J[d+16>>2]=0;J[d+20>>2]=0;J[d+8>>2]=0;J[d+12>>2]=0;d=a+1068|0;J[d>>2]=0;J[d+4>>2]=0;J[d+16>>2]=0;J[d+8>>2]=0;J[d+12>>2]=0;d=a+1088|0;J[d>>2]=0;J[d+4>>2]=0;J[d+16>>2]=0;J[d+8>>2]=0;J[d+12>>2]=0;d=a+1108|0;J[d>>2]=0;J[d+4>>2]=0;J[d+16>>2]=0;J[d+8>>2]=0;J[d+12>>2]=0;J[a+1136>>2]=0;J[a+1128>>2]=0;J[a+1132>>2]=0;h=a+1164|0;a:{b:{if(b){if(b>>>0<1073741824){break b}La();C()}J[a+1140>>2]=0;J[a+1144>>2]=0;d=a+1156|0;J[d>>2]=0;J[d+4>>2]=0;d=a+1148|0;J[d>>2]=0;J[d+4>>2]=0;J[e+8>>2]=0;J[e>>2]=0;J[e+4>>2]=0;d=1;break a}d=b<<2;c=ll(d);J[a+1128>>2]=c;f=c+d|0;J[a+1136>>2]=f;nk(c,0,d);g=a+1148|0;J[g>>2]=0;J[a+1140>>2]=0;J[a+1144>>2]=0;J[a+1132>>2]=f;c=ll(d);J[a+1140>>2]=c;f=c+d|0;J[g>>2]=f;nk(c,0,d);g=a+1160|0;J[g>>2]=0;J[a+1152>>2]=0;J[a+1156>>2]=0;J[a+1144>>2]=f;c=ll(d);J[a+1152>>2]=c;f=c+d|0;J[g>>2]=f;nk(c,0,d);J[a+1156>>2]=f;c=ll(d);J[e>>2]=c;f=c+d|0;J[e+8>>2]=f;nk(c,0,d);J[e+4>>2]=f;d=b<<5|1}bc(h,d,e);c=J[e>>2];if(c){J[e+4>>2]=c;fl(c)}J[e+8>>2]=0;J[e>>2]=0;J[e+4>>2]=0;if(b){b=b<<2;c=ll(b);J[e>>2]=c;f=b+c|0;J[e+8>>2]=f;nk(c,0,b);J[e+4>>2]=f}bc(a+1176|0,d,e);b=J[e>>2];if(b){J[e+4>>2]=b;fl(b)}ia=e+16|0;return a}function md(a,b,c,d){var e=0,f=0,g=0,h=0,i=0,j=Q(0),k=0,l=0,m=0,n=Q(0),o=0;a:{if(!d){break a}b:{c:{switch(J[a+28>>2]-1|0){case 0:e=K[a+24|0];f=c&255;if(e>>>0>>0?e:f){e=J[a>>2];h=J[e>>2];b=J[a+48>>2]+Zl(J[a+40>>2],J[a+44>>2],b,0)|0;b=h+b|0;h=J[e+4>>2];while(1){if(b>>>0>=h>>>0){break a}e=(g<<3)+d|0;i=H[b|0];J[e>>2]=i;J[e+4>>2]=i>>31;b=b+1|0;g=g+1|0;e=K[a+24|0];if(g>>>0<(e>>>0>>0?e:f)>>>0){continue}break}}if(e>>>0>=f>>>0){break a}d=(e<<3)+d|0;a=(c&255)-e|0;break b;case 1:e=K[a+24|0];f=c&255;if(e>>>0>>0?e:f){e=J[a>>2];h=J[e>>2];b=J[a+48>>2]+Zl(J[a+40>>2],J[a+44>>2],b,0)|0;b=h+b|0;h=J[e+4>>2];while(1){if(b>>>0>=h>>>0){break a}e=(g<<3)+d|0;J[e>>2]=K[b|0];J[e+4>>2]=0;b=b+1|0;g=g+1|0;e=K[a+24|0];if(g>>>0<(e>>>0>>0?e:f)>>>0){continue}break}}if(e>>>0>=f>>>0){break a}d=(e<<3)+d|0;a=(c&255)-e|0;break b;case 2:e=K[a+24|0];f=c&255;if(e>>>0>>0?e:f){e=J[a>>2];h=J[e>>2];b=J[a+48>>2]+Zl(J[a+40>>2],J[a+44>>2],b,0)|0;b=h+b|0;h=J[e+4>>2];while(1){if(b>>>0>=h>>>0){break a}e=(g<<3)+d|0;i=I[b>>1];J[e>>2]=i;J[e+4>>2]=i>>31;b=b+2|0;g=g+1|0;e=K[a+24|0];if(g>>>0<(e>>>0>>0?e:f)>>>0){continue}break}}if(e>>>0>=f>>>0){break a}d=(e<<3)+d|0;a=(c&255)-e|0;break b;case 3:e=K[a+24|0];f=c&255;if(e>>>0>>0?e:f){e=J[a>>2];h=J[e>>2];b=J[a+48>>2]+Zl(J[a+40>>2],J[a+44>>2],b,0)|0;b=h+b|0;h=J[e+4>>2];while(1){if(b>>>0>=h>>>0){break a}e=(g<<3)+d|0;J[e>>2]=L[b>>1];J[e+4>>2]=0;b=b+2|0;g=g+1|0;e=K[a+24|0];if(g>>>0<(e>>>0>>0?e:f)>>>0){continue}break}}if(e>>>0>=f>>>0){break a}d=(e<<3)+d|0;a=(c&255)-e|0;break b;case 4:e=K[a+24|0];f=c&255;if(e>>>0>>0?e:f){e=J[a>>2];h=J[e>>2];b=J[a+48>>2]+Zl(J[a+40>>2],J[a+44>>2],b,0)|0;b=h+b|0;h=J[e+4>>2];while(1){if(b>>>0>=h>>>0){break a}e=(g<<3)+d|0;i=J[b>>2];J[e>>2]=i;J[e+4>>2]=i>>31;b=b+4|0;g=g+1|0;e=K[a+24|0];if(g>>>0<(e>>>0>>0?e:f)>>>0){continue}break}}if(e>>>0>=f>>>0){break a}d=(e<<3)+d|0;a=(c&255)-e|0;break b;case 5:e=K[a+24|0];f=c&255;if(e>>>0>>0?e:f){e=J[a>>2];h=J[e>>2];b=J[a+48>>2]+Zl(J[a+40>>2],J[a+44>>2],b,0)|0;b=h+b|0;h=J[e+4>>2];while(1){if(b>>>0>=h>>>0){break a}e=(g<<3)+d|0;J[e>>2]=J[b>>2];J[e+4>>2]=0;b=b+4|0;g=g+1|0;e=K[a+24|0];if(g>>>0<(e>>>0>>0?e:f)>>>0){continue}break}}if(e>>>0>=f>>>0){break a}d=(e<<3)+d|0;a=(c&255)-e|0;break b;case 6:e=K[a+24|0];f=c&255;if(e>>>0>>0?e:f){e=J[a>>2];h=J[e>>2];b=J[a+48>>2]+Zl(J[a+40>>2],J[a+44>>2],b,0)|0;b=h+b|0;h=J[e+4>>2];while(1){if(b>>>0>=h>>>0){break a}i=J[b+4>>2];e=(g<<3)+d|0;J[e>>2]=J[b>>2];J[e+4>>2]=i;b=b+8|0;g=g+1|0;e=K[a+24|0];if(g>>>0<(e>>>0>>0?e:f)>>>0){continue}break}}if(e>>>0>=f>>>0){break a}d=(e<<3)+d|0;a=(c&255)-e|0;break b;case 7:e=K[a+24|0];f=c&255;if(e>>>0>>0?e:f){e=J[a>>2];h=J[e>>2];b=J[a+48>>2]+Zl(J[a+40>>2],J[a+44>>2],b,0)|0;b=h+b|0;h=J[e+4>>2];while(1){if(b>>>0>=h>>>0){break a}e=J[b>>2];i=J[b+4>>2];if((i|0)<0){break a}l=(g<<3)+d|0;J[l>>2]=e;J[l+4>>2]=i;b=b+8|0;g=g+1|0;e=K[a+24|0];if(g>>>0<(e>>>0>>0?e:f)>>>0){continue}break}}if(e>>>0>=f>>>0){break a}d=(e<<3)+d|0;a=(c&255)-e|0;break b;case 8:d:{e=K[a+24|0];f=c&255;if(!(e>>>0>>0?e:f)){break d}if(K[a+32|0]){break a}b=J[a+48>>2]+Zl(J[a+40>>2],J[a+44>>2],b,0)|0;e=J[a>>2];i=J[e+4>>2];e=J[e>>2];if((b|0)>=(i-e|0)){break a}g=b+e|0;h=c&255;b=0;while(1){j=N[g>>2];if(j>=Q(0x8000000000000000)|j=Q(1)?~~(j>Q(0)?Q(T(Q(V(Q(j*Q(2.3283064365386963e-10)))),Q(4294967296))):Q(W(Q(Q(j-Q(~~j>>>0>>>0))*Q(2.3283064365386963e-10)))))>>>0:0;m=~~j>>>0;break e}l=-2147483648;m=0}J[e>>2]=m;J[e+4>>2]=l;b=b+1|0;e=K[a+24|0];if(b>>>0>=(e>>>0>>0?e:h)>>>0){break d}g=g+4|0;if(i>>>0>g>>>0){continue}break}break a}if(e>>>0>=f>>>0){break a}d=(e<<3)+d|0;a=(c&255)-e|0;break b;case 9:f:{e=K[a+24|0];f=c&255;if(!(e>>>0>>0?e:f)){break f}if(K[a+32|0]){break a}b=J[a+48>>2]+Zl(J[a+40>>2],J[a+44>>2],b,0)|0;e=J[a>>2];i=J[e+4>>2];e=J[e>>2];if((b|0)>=(i-e|0)){break a}g=b+e|0;h=c&255;b=0;while(1){k=O[g>>3];if(k>=0x8000000000000000|k<-0x8000000000000000|k!=k){break a}o=R(k);if(o==_){break a}e=(b<<3)+d|0;g:{if(o<0x8000000000000000){l=R(k)>=1?~~(k>0?T(V(k*2.3283064365386963e-10),4294967295):W((k-+(~~k>>>0>>>0))*2.3283064365386963e-10))>>>0:0;m=~~k>>>0;break g}l=-2147483648;m=0}J[e>>2]=m;J[e+4>>2]=l;b=b+1|0;e=K[a+24|0];if(b>>>0>=(e>>>0>>0?e:h)>>>0){break f}g=g+8|0;if(i>>>0>g>>>0){continue}break}break a}if(e>>>0>=f>>>0){break a}d=(e<<3)+d|0;a=(c&255)-e|0;break b;case 10:break c;default:break a}}e=K[a+24|0];f=c&255;if(e>>>0>>0?e:f){e=J[a>>2];h=J[e>>2];b=J[a+48>>2]+Zl(J[a+40>>2],J[a+44>>2],b,0)|0;b=h+b|0;h=J[e+4>>2];while(1){if(b>>>0>=h>>>0){break a}e=(g<<3)+d|0;J[e>>2]=K[b|0];J[e+4>>2]=0;b=b+1|0;g=g+1|0;e=K[a+24|0];if(g>>>0<(e>>>0>>0?e:f)>>>0){continue}break}}if(e>>>0>=f>>>0){break a}d=(e<<3)+d|0;a=(c&255)-e|0}nk(d,0,a<<3)}}function bl(a){var b=0,c=0,d=0,e=0,f=0,g=0;e=ia-16|0;ia=e;J[e+12>>2]=a;a:{if(a>>>0<=211){d=J[cl(17792,17984,e+12|0)>>2];break a}if(a>>>0>=4294967292){fa();C()}f=(a>>>0)/210|0;d=P(f,210);J[e+8>>2]=a-d;g=cl(17984,18176,e+8|0)-17984>>2;while(1){d=J[(g<<2)+17984>>2]+d|0;a=5;while(1){b:{if((a|0)==47){a=211;while(1){b=(d>>>0)/(a>>>0)|0;if(b>>>0>>0){break a}if((P(a,b)|0)==(d|0)){break b}b=a+10|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}if((P(b,c)|0)==(d|0)){break b}b=a+12|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}if((P(b,c)|0)==(d|0)){break b}b=a+16|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}if((P(b,c)|0)==(d|0)){break b}b=a+18|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}if((P(b,c)|0)==(d|0)){break b}b=a+22|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}if((P(b,c)|0)==(d|0)){break b}b=a+28|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}if((P(b,c)|0)==(d|0)){break b}b=a+30|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}if((P(b,c)|0)==(d|0)){break b}b=a+36|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}if((P(b,c)|0)==(d|0)){break b}b=a+40|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}if((P(b,c)|0)==(d|0)){break b}b=a+42|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}if((P(b,c)|0)==(d|0)){break b}b=a+46|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}if((P(b,c)|0)==(d|0)){break b}b=a+52|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}if((P(b,c)|0)==(d|0)){break b}b=a+58|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}if((P(b,c)|0)==(d|0)){break b}b=a+60|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}if((P(b,c)|0)==(d|0)){break b}b=a+66|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}if((P(b,c)|0)==(d|0)){break b}b=a+70|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}if((P(b,c)|0)==(d|0)){break b}b=a+72|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}if((P(b,c)|0)==(d|0)){break b}b=a+78|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}if((P(b,c)|0)==(d|0)){break b}b=a+82|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}if((P(b,c)|0)==(d|0)){break b}b=a+88|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}if((P(b,c)|0)==(d|0)){break b}b=a+96|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}if((P(b,c)|0)==(d|0)){break b}b=a+100|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}if((P(b,c)|0)==(d|0)){break b}b=a+102|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}if((P(b,c)|0)==(d|0)){break b}b=a+106|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}if((P(b,c)|0)==(d|0)){break b}b=a+108|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}if((P(b,c)|0)==(d|0)){break b}b=a+112|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}if((P(b,c)|0)==(d|0)){break b}b=a+120|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}if((P(b,c)|0)==(d|0)){break b}b=a+126|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}if((P(b,c)|0)==(d|0)){break b}b=a+130|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}if((P(b,c)|0)==(d|0)){break b}b=a+136|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}if((P(b,c)|0)==(d|0)){break b}b=a+138|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}if((P(b,c)|0)==(d|0)){break b}b=a+142|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}if((P(b,c)|0)==(d|0)){break b}b=a+148|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}if((P(b,c)|0)==(d|0)){break b}b=a+150|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}if((P(b,c)|0)==(d|0)){break b}b=a+156|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}if((P(b,c)|0)==(d|0)){break b}b=a+162|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}if((P(b,c)|0)==(d|0)){break b}b=a+166|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}if((P(b,c)|0)==(d|0)){break b}b=a+168|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}if((P(b,c)|0)==(d|0)){break b}b=a+172|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}if((P(b,c)|0)==(d|0)){break b}b=a+178|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}if((P(b,c)|0)==(d|0)){break b}b=a+180|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}if((P(b,c)|0)==(d|0)){break b}b=a+186|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}if((P(b,c)|0)==(d|0)){break b}b=a+190|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}if((P(b,c)|0)==(d|0)){break b}b=a+192|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}if((P(b,c)|0)==(d|0)){break b}b=a+196|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}if((P(b,c)|0)==(d|0)){break b}b=a+198|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}if((P(b,c)|0)==(d|0)){break b}b=a+208|0;c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}a=a+210|0;if((P(b,c)|0)!=(d|0)){continue}break}break b}b=J[(a<<2)+17792>>2];c=(d>>>0)/(b>>>0)|0;if(b>>>0>c>>>0){break a}a=a+1|0;if((P(b,c)|0)!=(d|0)){continue}}break}d=g+1|0;a=(d|0)==48;g=a?0:d;f=a+f|0;d=P(f,210);continue}}ia=e+16|0;return d}function Nc(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0;g=ia-32|0;ia=g;a:{b:{if(!J[J[a+8>>2]+80>>2]){d=1;break b}H[g+31|0]=254;i=J[a+36>>2];if(i){if(!(na[J[J[a>>2]+40>>2]](a,i)|0)){break b}d=J[a+36>>2];n=g,o=na[J[J[d>>2]+8>>2]](d)|0,H[n+31|0]=o}d=J[c+20>>2];if(!J[c+16>>2]&(d|0)<=0|(d|0)<0){Ea(c,J[c+4>>2],g+31|0,g+32|0)}d=J[a+36>>2];c:{if(!d){break c}n=g,o=na[J[J[d>>2]+36>>2]](d)|0,H[n+16|0]=o;d=J[c+20>>2];if(!!J[c+16>>2]&(d|0)>=0|(d|0)>0){break c}Ea(c,J[c+4>>2],g+16|0,g+17|0)}d=J[a+32>>2];e=J[d+48>>2];f=J[J[d>>2]>>2];h=J[d+80>>2];k=K[d+24|0];i=0;J[g+24>>2]=0;J[g+16>>2]=0;J[g+20>>2]=0;h=P(h,k);if(h){if(h>>>0>=1073741824){break a}d=h<<2;i=ll(d);nk(i,0,d)}e=e+f|0;f=J[a+36>>2];d:{e:{f:{if(!f){break f}d=0;if(!(na[J[J[f>>2]+44>>2]](f,e,i,h,k,J[b>>2])|0)){break d}d=J[a+36>>2];if(!d){break f}if(na[J[J[d>>2]+32>>2]](d)|0){break e}e=J[a+36>>2]?i:e}d=0;f=0;g:{if((h|0)<=0){break g}if((h|0)!=1){m=h&-2;while(1){l=d<<2;j=J[l+e>>2];J[i+l>>2]=(j|0)<0?(j^-1)<<1|1:j<<1;l=l|4;j=J[l+e>>2];J[i+l>>2]=(j|0)<0?(j^-1)<<1|1:j<<1;d=d+2|0;f=f+2|0;if((m|0)!=(f|0)){continue}break}}if(!(h&1)){break g}f=e;e=d<<2;d=J[f+e>>2];J[e+i>>2]=(d|0)<0?(d^-1)<<1|1:d<<1}}h:{i:{j:{k:{d=J[a+4>>2];if(!d){break k}j=J[d+48>>2];d=ll(48);J[g>>2]=d;J[g+4>>2]=34;J[g+8>>2]=-2147483600;e=K[1411]|K[1412]<<8;H[d+32|0]=e;H[d+33|0]=e>>>8;e=K[1407]|K[1408]<<8|(K[1409]<<16|K[1410]<<24);f=K[1403]|K[1404]<<8|(K[1405]<<16|K[1406]<<24);H[d+24|0]=f;H[d+25|0]=f>>>8;H[d+26|0]=f>>>16;H[d+27|0]=f>>>24;H[d+28|0]=e;H[d+29|0]=e>>>8;H[d+30|0]=e>>>16;H[d+31|0]=e>>>24;e=K[1399]|K[1400]<<8|(K[1401]<<16|K[1402]<<24);f=K[1395]|K[1396]<<8|(K[1397]<<16|K[1398]<<24);H[d+16|0]=f;H[d+17|0]=f>>>8;H[d+18|0]=f>>>16;H[d+19|0]=f>>>24;H[d+20|0]=e;H[d+21|0]=e>>>8;H[d+22|0]=e>>>16;H[d+23|0]=e>>>24;e=K[1391]|K[1392]<<8|(K[1393]<<16|K[1394]<<24);f=K[1387]|K[1388]<<8|(K[1389]<<16|K[1390]<<24);H[d+8|0]=f;H[d+9|0]=f>>>8;H[d+10|0]=f>>>16;H[d+11|0]=f>>>24;H[d+12|0]=e;H[d+13|0]=e>>>8;H[d+14|0]=e>>>16;H[d+15|0]=e>>>24;e=K[1383]|K[1384]<<8|(K[1385]<<16|K[1386]<<24);f=K[1379]|K[1380]<<8|(K[1381]<<16|K[1382]<<24);H[d|0]=f;H[d+1|0]=f>>>8;H[d+2|0]=f>>>16;H[d+3|0]=f>>>24;H[d+4|0]=e;H[d+5|0]=e>>>8;H[d+6|0]=e>>>16;H[d+7|0]=e>>>24;H[d+34|0]=0;d=ri(j,g,1);if(H[g+11|0]<0){fl(J[g>>2])}if(d){break k}if(!h){break j}e=0;d=0;b=0;if(h>>>0>=4){j=h&-4;f=0;while(1){k=d<<2;b=J[(k|12)+i>>2]|(J[(k|8)+i>>2]|(J[(k|4)+i>>2]|(J[i+k>>2]|b)));d=d+4|0;f=f+4|0;if((j|0)!=(f|0)){continue}break}}f=h&3;if(f){while(1){b=J[(d<<2)+i>>2]|b;d=d+1|0;e=e+1|0;if((f|0)!=(e|0)){continue}break}}if(!b){break j}b=4-(S(b)>>>3|0)|0;break i}H[g|0]=1;d=J[c+20>>2];if(!J[c+16>>2]&(d|0)<=0|(d|0)<0){Ea(c,J[c+4>>2],g,g+1|0)}J[g>>2]=g|4;J[g+4>>2]=0;J[g+8>>2]=0;d=J[a+4>>2];if(d){j=10-Rb(J[d+48>>2])|0;h=ia-16|0;ia=h;l:{if(j>>>0>10){break l}d=ll(48);J[h>>2]=d;J[h+4>>2]=33;J[h+8>>2]=-2147483600;H[d+32|0]=K[1470];e=K[1466]|K[1467]<<8|(K[1468]<<16|K[1469]<<24);f=K[1462]|K[1463]<<8|(K[1464]<<16|K[1465]<<24);H[d+24|0]=f;H[d+25|0]=f>>>8;H[d+26|0]=f>>>16;H[d+27|0]=f>>>24;H[d+28|0]=e;H[d+29|0]=e>>>8;H[d+30|0]=e>>>16;H[d+31|0]=e>>>24;e=K[1458]|K[1459]<<8|(K[1460]<<16|K[1461]<<24);f=K[1454]|K[1455]<<8|(K[1456]<<16|K[1457]<<24);H[d+16|0]=f;H[d+17|0]=f>>>8;H[d+18|0]=f>>>16;H[d+19|0]=f>>>24;H[d+20|0]=e;H[d+21|0]=e>>>8;H[d+22|0]=e>>>16;H[d+23|0]=e>>>24;e=K[1450]|K[1451]<<8|(K[1452]<<16|K[1453]<<24);f=K[1446]|K[1447]<<8|(K[1448]<<16|K[1449]<<24);H[d+8|0]=f;H[d+9|0]=f>>>8;H[d+10|0]=f>>>16;H[d+11|0]=f>>>24;H[d+12|0]=e;H[d+13|0]=e>>>8;H[d+14|0]=e>>>16;H[d+15|0]=e>>>24;e=K[1442]|K[1443]<<8|(K[1444]<<16|K[1445]<<24);f=K[1438]|K[1439]<<8|(K[1440]<<16|K[1441]<<24);H[d|0]=f;H[d+1|0]=f>>>8;H[d+2|0]=f>>>16;H[d+3|0]=f>>>24;H[d+4|0]=e;H[d+5|0]=e>>>8;H[d+6|0]=e>>>16;H[d+7|0]=e>>>24;H[d+33|0]=0;mi(g,h,j);if(H[h+11|0]>=0){break l}fl(J[h>>2])}ia=h+16|0}b=mf(i,P(k,J[b+4>>2]-J[b>>2]>>2),k,g,c);Oc(g,J[g+4>>2]);d=0;if(b){break h}break d}b=1}H[g|0]=0;d=J[c+20>>2];m:{if(!!J[c+16>>2]&(d|0)>=0|(d|0)>0){break m}e=g+1|0;Ea(c,J[c+4>>2],g,e);d=J[c+20>>2];f=J[c+16>>2];H[g|0]=b;if(!!f&(d|0)>=0|(d|0)>0){break m}Ea(c,J[c+4>>2],g,e)}n:{if((b|0)!=J[3712]){if(!h){break h}d=J[c+20>>2];e=d;f=J[c+16>>2];if(!!f&(d|0)>=0|(d|0)>0){break h}d=0;break n}b=J[c+20>>2];if(!!J[c+16>>2]&(b|0)>=0|(b|0)>0){break h}Ea(c,J[c+4>>2],i,(h<<2)+i|0);break h}while(1){if(!f&(e|0)<=0|(e|0)<0){e=(d<<2)+i|0;Ea(c,J[c+4>>2],e,b+e|0)}d=d+1|0;if((h|0)==(d|0)){break h}f=J[c+16>>2];e=J[c+20>>2];continue}}d=1;a=J[a+36>>2];if(!a){break d}na[J[J[a>>2]+40>>2]](a,c)|0}if(!i){break b}fl(i)}ia=g+32|0;return d|0}La();C()}function bi(a){a=a|0;var b=0,c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0;p=ia-16|0;ia=p;a:{if(!(na[J[J[a>>2]+32>>2]](a)|0)){break a}f=J[a+44>>2];c=J[a+12>>2];b=J[a+8>>2];H[p+15|0]=c-b>>>2;g=J[f+20>>2];if(!J[f+16>>2]&(g|0)<=0|(g|0)<0){Ea(f,J[f+4>>2],p+15|0,p+16|0);c=J[a+12>>2];b=J[a+8>>2]}if((b|0)!=(c|0)){while(1){f=J[b>>2];if(!(na[J[J[f>>2]+8>>2]](f,a,J[a+4>>2])|0)){break a}b=b+4|0;if((c|0)!=(b|0)){continue}break}}g=ia-48|0;ia=g;f=a;q=a+32|0;a=J[a+12>>2];c=J[f+8>>2];d=a-c|0;b=d>>2;k=J[f+32>>2];h=J[f+36>>2]-k>>2;b:{if(b>>>0>h>>>0){Oa(q,b-h|0);a=J[f+12>>2];c=J[f+8>>2];d=a-c|0;b=d>>2;break b}if(b>>>0>=h>>>0){break b}J[f+36>>2]=k+(b<<2)}J[g+40>>2]=0;J[g+32>>2]=0;J[g+36>>2]=0;c:{d:{e:{if((a|0)==(c|0)){break e}if((d|0)<0){break d}h=b-1>>>5|0;k=h+1|0;i=ll(k<<2);J[g+40>>2]=k;J[g+32>>2]=i;J[g+36>>2]=b;J[((d>>>0>=132?h:0)<<2)+i>>2]=0;d=b>>>5<<2;h=nk(i,0,d);if((b&-32)==(b|0)){break e}d=d+h|0;J[d>>2]=J[d>>2]&(-1>>>32-(b&31)^-1)}while(1){f:{g:{b=a-c>>2;if(j>>>0>>0){if((a|0)==(c|0)){a=c;k=0;break g}k=0;m=J[g+32>>2];h=0;while(1){r=1<>>5<<2;h:{if(r&J[l+i>>2]){break h}a=h<<2;d=J[a+c>>2];b=J[d+4>>2];if((b|0)!=J[d+8>>2]){n=0;o=1;s=J[g+32>>2];while(1){c=0;b=J[(n<<2)+b>>2];i:{if((na[J[J[d>>2]+24>>2]](d,b)|0)<=0){break i}while(1){j:{d=J[a+J[f+8>>2]>>2];d=na[J[J[d>>2]+28>>2]](d,b,c)|0;if((d|0)==(h|0)){break j}d=J[J[f+20>>2]+(d<<2)>>2];if(J[(d>>>3&536870908)+s>>2]>>>d&1){break j}o=0;break i}d=J[a+J[f+8>>2]>>2];c=c+1|0;if((na[J[J[d>>2]+24>>2]](d,b)|0)>(c|0)){continue}break}}c=J[f+8>>2];d=J[a+c>>2];b=J[d+4>>2];n=n+1|0;if(n>>>0>2]-b>>2>>>0){continue}break}if(!o){break h}}J[J[q>>2]+(j<<2)>>2]=h;a=m+l|0;J[a>>2]=r|J[a>>2];k=1;j=j+1|0}a=J[f+12>>2];b=a-c>>2;h=h+1|0;if(b>>>0>h>>>0){continue}break}break g}k=0;J[g+24>>2]=0;J[g+16>>2]=0;J[g+20>>2]=0;e=J[f+4>>2];b=J[e+12>>2];e=J[e+8>>2];J[g+8>>2]=0;J[g>>2]=0;J[g+4>>2]=0;h=0;k:{l:{m:{n:{if((b|0)==(e|0)){break n}e=b-e|0;if((e|0)<0){break m}b=e>>2;d=b-1>>>5|0;i=d+1|0;h=ll(i<<2);J[g+8>>2]=i;J[g>>2]=h;J[g+4>>2]=b;J[((e>>>0>=132?d:0)<<2)+h>>2]=0;e=b>>>5<<2;d=nk(h,0,e);if((b|0)==(b&-32)){break n}e=d+e|0;J[e>>2]=J[e>>2]&(-1>>>32-(b&31)^-1)}o:{if((a|0)==(c|0)){e=1;break o}while(1){e=J[J[q>>2]+(k<<2)>>2]<<2;a=J[e+c>>2];a=J[a+8>>2]-J[a+4>>2]|0;p:{if((a|0)<8){break p}b=a>>2;c=J[g+16>>2];a=J[g+20>>2]-c>>2;q:{if(b>>>0>a>>>0){Oa(g+16|0,b-a|0);break q}if(a>>>0<=b>>>0){break q}J[g+20>>2]=c+(b<<2)}n=(b|0)<=1?1:b;d=0;r:{while(1){if((b|0)<=(d|0)){break r}a=0;i=0;while(1){m=1<>>5<<2;s:{if(m&J[o+h>>2]){break s}c=J[e+J[f+8>>2]>>2];j=J[J[c+4>>2]+(a<<2)>>2];if((na[J[J[c>>2]+24>>2]](c,j)|0)>0){c=0;h=J[g>>2];while(1){l=J[e+J[f+8>>2]>>2];l=na[J[J[l>>2]+28>>2]](l,j,c)|0;if(!(J[(l>>>3&536870908)+h>>2]>>>l&1)){break s}l=J[e+J[f+8>>2]>>2];c=c+1|0;if((na[J[J[l>>2]+24>>2]](l,j)|0)>(c|0)){continue}break}}J[J[g+16>>2]+(d<<2)>>2]=a;c=h+o|0;J[c>>2]=m|J[c>>2];i=1;d=d+1|0}a=a+1|0;if((n|0)!=(a|0)){continue}break}if(i&1|(b|0)<=(d|0)){continue}break}e=0;break o}c=J[f+8>>2];e=J[e+c>>2];a=J[e+4>>2];J[e+8>>2]=a;J[e+20>>2]=J[e+16>>2];d=J[g+16>>2];o=J[g+20>>2];if((d|0)==(o|0)){break p}n=e+16|0;b=a;while(1){c=J[d>>2];t:{if(J[e+12>>2]!=(b|0)){J[b>>2]=c;J[e+8>>2]=b+4;break t}i=b-a|0;m=i>>2;b=m+1|0;if(b>>>0>=1073741824){break l}j=i>>1;j=i>>>0>=2147483644?1073741823:b>>>0>>0?j:b;if(j){if(j>>>0>=1073741824){break k}b=ll(j<<2)}else{b=0}m=b+(m<<2)|0;J[m>>2]=c;if((i|0)>0){lk(b,a,i)}J[e+12>>2]=b+(j<<2);J[e+8>>2]=m+4;J[e+4>>2]=b;if(!a){break t}fl(a)}b=J[e+16>>2];a=J[e+20>>2]-b>>2;u:{if((a|0)>(c|0)){break u}J[g+44>>2]=-1;i=c+1|0;if(i>>>0>a>>>0){ub(n,i-a|0,g+44|0);b=J[n>>2];break u}if(a>>>0<=i>>>0){break u}J[e+20>>2]=(i<<2)+b}c=(c<<2)+b|0;b=J[e+8>>2];a=J[e+4>>2];J[c>>2]=(b-a>>2)-1;d=d+4|0;if((o|0)!=(d|0)){continue}break}c=J[f+8>>2]}e=1;k=k+1|0;if(k>>>0>2]-c>>2>>>0){continue}break}}a=J[g>>2];if(a){fl(a)}a=J[g+16>>2];if(!a){break f}J[g+20>>2]=a;fl(a);break f}La();C()}La();C()}$a();C()}if(k&1|b>>>0<=j>>>0){continue}}break}a=J[g+32>>2];if(a){fl(a)}ia=g+48|0;break c}La();C()}if(!e){break a}b=J[f+32>>2];a=J[f+36>>2];v:{if((b|0)==(a|0)){break v}while(1){if(!(na[J[J[f>>2]+40>>2]](f,J[b>>2])|0)){break a}b=b+4|0;if((a|0)!=(b|0)){continue}break}b=J[f+32>>2];a=J[f+36>>2];if((b|0)==(a|0)){break v}while(1){c=J[J[f+8>>2]+(J[b>>2]<<2)>>2];if(!(na[J[J[c>>2]+12>>2]](c,J[f+44>>2])|0)){break a}b=b+4|0;if((a|0)!=(b|0)){continue}break}}t=na[J[J[f>>2]+44>>2]](f)|0}ia=p+16|0;return t|0}function Ah(a,b){var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0;a:{b:{c:{d:{e:{if(J[a+92>>2]==J[a+88>>2]){break e}c=J[a+52>>2];f:{if((c|0)!=J[a+56>>2]){J[c>>2]=b;J[a+52>>2]=c+4;break f}d=J[a+48>>2];h=c-d|0;f=h>>2;e=f+1|0;if(e>>>0>=1073741824){break a}c=h>>1;e=h>>>0>=2147483644?1073741823:c>>>0>e>>>0?c:e;if(e){if(e>>>0>=1073741824){break d}c=ll(e<<2)}else{c=0}f=c+(f<<2)|0;J[f>>2]=b;if((h|0)>0){lk(c,d,h)}J[a+56>>2]=c+(e<<2);J[a+52>>2]=f+4;J[a+48>>2]=c;if(!d){break f}fl(d)}J[a+84>>2]=0;f=-1;c=-1;g:{if((b|0)==-1){break g}e=J[a+4>>2];c=b+1|0;c=(c>>>0)%3|0?c:b-2|0;if((c|0)!=-1){f=J[J[e>>2]+(c<<2)>>2]}h:{if((b>>>0)%3|0){d=b-1|0;break h}d=b+2|0;c=-1;if((d|0)==-1){break g}}c=J[J[e>>2]+(d<<2)>>2]}i=c>>>3&536870908;e=J[a+36>>2];g=e+(f>>>3&536870908)|0;h=J[g>>2];d=1<>2]=d|h;g=a+8|0;if((b|0)!=-1){e=b+1|0;d=(e>>>0)%3|0?e:b-2|0}else{d=-1}Bh(g,f,d);e=J[a+36>>2]}d=e+i|0;e=J[d>>2];f=1<>2]=e|f;d=a+8|0;f=-1;i:{if((b|0)==-1){break i}f=b-1|0;if((b>>>0)%3|0){break i}f=b+2|0}Bh(d,c,f)}f=-1;f=(b|0)!=-1?J[J[J[a+4>>2]>>2]+(b<<2)>>2]:f;d=J[a+36>>2]+(f>>>3&536870908)|0;e=J[d>>2];c=1<>2]=c|e;Bh(a+8|0,f,b)}d=J[a+84>>2];if((d|0)>2){break e}while(1){f=P(d,12)+a|0;b=J[f+52>>2];if((b|0)==J[f+48>>2]){d=d+1|0;if((d|0)!=3){continue}break e}c=b-4|0;b=J[c>>2];J[f+52>>2]=c;J[a+84>>2]=d;if((b|0)==-1){break e}f=J[a+24>>2];c=(b>>>0)/3|0;j:{if(J[f+(c>>>3&268435452)>>2]>>>c&1){break j}k:{while(1){i=(b>>>0)/3|0;c=(i>>>3&268435452)+f|0;J[c>>2]=J[c>>2]|1<>2]>>2]+(b<<2)>>2]:f;d=J[a+36>>2]+(f>>>3&536870908)|0;e=J[d>>2];c=1<>2]=c|e;h=J[(J[J[a+16>>2]+96>>2]+P(i,12)|0)+((b>>>0)%3<<2)>>2];k=J[J[a+20>>2]+4>>2];c=J[k+4>>2];t:{if((c|0)!=J[k+8>>2]){J[c>>2]=h;J[k+4>>2]=c+4;break t}g=J[k>>2];j=c-g|0;e=j>>2;d=e+1|0;if(d>>>0>=1073741824){break s}c=j>>1;d=j>>>0>=2147483644?1073741823:c>>>0>d>>>0?c:d;if(d){if(d>>>0>=1073741824){break d}c=ll(d<<2)}else{c=0}e=c+(e<<2)|0;J[e>>2]=h;if((j|0)>0){lk(c,g,j)}J[k+8>>2]=c+(d<<2);J[k+4>>2]=e+4;J[k>>2]=c;if(!g){break t}fl(g)}j=J[a+12>>2];c=J[j+4>>2];u:{if((c|0)!=J[j+8>>2]){J[c>>2]=b;J[j+4>>2]=c+4;break u}h=J[j>>2];g=c-h|0;e=g>>2;d=e+1|0;if(d>>>0>=1073741824){break r}c=g>>1;d=g>>>0>=2147483644?1073741823:c>>>0>d>>>0?c:d;if(d){if(d>>>0>=1073741824){break d}c=ll(d<<2)}else{c=0}e=c+(e<<2)|0;J[e>>2]=b;if((g|0)>0){lk(c,h,g)}J[j+8>>2]=c+(d<<2);J[j+4>>2]=e+4;J[j>>2]=c;if(!h){break u}fl(h)}c=J[a+12>>2];J[J[c+12>>2]+(f<<2)>>2]=J[c+24>>2];J[c+24>>2]=J[c+24>>2]+1}if((b|0)==-1){break k}g=J[a+4>>2];f=-1;c=b+1|0;c=(c>>>0)%3|0?c:b-2|0;if((c|0)!=-1){f=J[J[g+12>>2]+(c<<2)>>2]}v:{w:{if((P(i,3)|0)!=(b|0)){e=b-1|0;break w}e=b+2|0;b=-1;if((e|0)==-1){break v}}b=J[J[g+12>>2]+(e<<2)>>2]}h=(b|0)==-1;e=(b>>>0)/3|0;if((f|0)!=-1){c=(f>>>0)/3|0;c=J[J[a+24>>2]+(c>>>3&268435452)>>2]&1<>2]+(c>>>3&536870908)>>2]>>>c&1){break x}e=0;c=J[J[g>>2]+(b<<2)>>2];if(!(J[J[a+36>>2]+(c>>>3&536870908)>>2]>>>c&1)){c=J[a+88>>2]+(c<<2)|0;e=J[c>>2];J[c>>2]=e+1;e=(e|0)<=0?2:1}if(J[a+84>>2]>=(e|0)?d:0){break m}k=P(e,12)+a|0;c=J[k+52>>2];y:{if((c|0)!=J[k+56>>2]){J[c>>2]=b;J[k+52>>2]=c+4;break y}i=J[k+48>>2];j=c-i|0;h=j>>2;g=h+1|0;if(g>>>0>=1073741824){break c}c=j>>1;g=j>>>0>=2147483644?1073741823:c>>>0>g>>>0?c:g;if(g){if(g>>>0>=1073741824){break d}c=ll(g<<2)}else{c=0}h=c+(h<<2)|0;J[h>>2]=b;if((j|0)>0){lk(c,i,j)}J[k+48>>2]=c;J[k+52>>2]=h+4;J[k+56>>2]=c+(g<<2);if(!i){break y}fl(i)}if(J[a+84>>2]<=(e|0)){break x}J[a+84>>2]=e}if(d){break k}b=-1;if((f|0)==-1){break n}}b=J[J[J[a+4>>2]>>2]+(f<<2)>>2]}e=0;if(!(J[J[a+36>>2]+(b>>>3&536870908)>>2]>>>b&1)){b=J[a+88>>2]+(b<<2)|0;c=J[b>>2];J[b>>2]=c+1;e=(c|0)<=0?2:1}if(J[a+84>>2]<(e|0)){break l}b=f}f=J[a+24>>2];continue}break}i=P(e,12)+a|0;b=J[i+52>>2];z:{if((b|0)!=J[i+56>>2]){J[b>>2]=f;J[i+52>>2]=b+4;break z}h=J[i+48>>2];g=b-h|0;c=g>>2;d=c+1|0;if(d>>>0>=1073741824){break b}b=g>>1;d=g>>>0>=2147483644?1073741823:b>>>0>d>>>0?b:d;if(d){if(d>>>0>=1073741824){break d}b=ll(d<<2)}else{b=0}c=b+(c<<2)|0;J[c>>2]=f;if((g|0)>0){lk(b,h,g)}J[i+48>>2]=b;J[i+52>>2]=c+4;J[i+56>>2]=b+(d<<2);if(!h){break z}fl(h)}d=J[a+84>>2];if((d|0)<=(e|0)){break j}J[a+84>>2]=e;d=e;break j}d=J[a+84>>2]}if((d|0)<3){continue}break}}return 1}$a();C()}La();C()}La();C()}La();C()}function Zk(a,b,c,d,e,f,g,h,i){var j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,K=0,L=0,M=0,N=0,O=0,P=0,Q=0;k=ia-96|0;ia=k;m=h;t=i&65535;o=(e^i)&-2147483648;n=e&65535;p=n;A=n;L=i>>>16&32767;M=e>>>16&32767;a:{b:{if(L-32767>>>0>4294934529&M-32767>>>0>=4294934530){break b}n=e&2147483647;j=d;if(!(!d&(n|0)==2147418112?!(b|c):n>>>0<2147418112)){q=d;o=e|32768;break a}e=i&2147483647;if(!(!h&(e|0)==2147418112?!(f|g):e>>>0<2147418112)){q=h;o=i|32768;b=f;c=g;break a}if(!(b|j|(n^2147418112|c))){if(!(f|h|(e|g))){o=2147450880;b=0;c=0;break a}o=o|2147418112;b=0;c=0;break a}if(!(f|h|(e^2147418112|g))){d=b|j;e=c|n;b=0;c=0;if(!(d|e)){o=2147450880;break a}o=o|2147418112;break a}if(!(b|j|(c|n))){b=0;c=0;break a}if(!(f|h|(e|g))){b=0;c=0;break a}if((n|0)==65535|n>>>0<65535){j=b;h=!(d|p);i=h<<6;n=S(h?b:d)+32|0;b=S(h?c:p);b=i+((b|0)==32?n:b)|0;Rk(k+80|0,j,c,d,p,b-15|0);s=16-b|0;d=J[k+88>>2];A=J[k+92>>2];c=J[k+84>>2];b=J[k+80>>2]}if(e>>>0>65535){break b}e=!(m|t);h=e<<6;i=S(e?f:m)+32|0;e=S(e?g:t);e=h+((e|0)==32?i:e)|0;Rk(k- -64|0,f,g,m,t,e-15|0);s=(s-e|0)+16|0;m=J[k+72>>2];t=J[k+76>>2];f=J[k+64>>2];g=J[k+68>>2]}e=f;h=g<<15|e>>>17;i=e<<15;e=0;u=i&-32768;r=c;y=Zl(u,e,c,0);c=ma;B=c;e=c;F=h;c=b;p=0;h=Zl(h,0,c,p);b=h+y|0;j=ma+e|0;i=b;b=b>>>0>>0?j+1|0:j;n=Zl(c,p,u,p);j=0+n|0;h=i;e=h+ma|0;e=j>>>0>>0?e+1|0:e;w=j;n=e;G=(h|0)==(e|0)&j>>>0>>0|e>>>0>>0;z=d;N=Zl(u,p,d,0);H=ma;e=Zl(r,l,F,l);d=e+N|0;j=ma+H|0;v=d;j=d>>>0>>0?j+1|0:j;d=j;e=m;h=t<<15|e>>>17;C=e<<15|g>>>17;g=Zl(C,0,c,p);e=g+v|0;f=ma+d|0;I=e;f=e>>>0>>0?f+1|0:f;t=f;e=f;f=(b|0)==(B|0)&i>>>0>>0|b>>>0>>0;g=b;b=g+I|0;f=e+f|0;y=b;f=b>>>0>>0?f+1|0:f;i=f;b=f;D=A|65536;m=x;O=Zl(u,p,D,m);K=ma;g=Zl(z,q,F,l);f=g+O|0;e=ma+K|0;P=f;e=f>>>0>>0?e+1|0:e;x=e;E=h|-2147483648;u=0;g=Zl(E,u,c,p);c=g+f|0;f=ma+e|0;f=c>>>0>>0?f+1|0:f;Q=c;e=Zl(C,q,r,l);c=c+e|0;p=f;h=f+ma|0;A=c;g=c>>>0>>0?h+1|0:h;f=0;c=f+y|0;e=b+A|0;e=c>>>0>>0?e+1|0:e;b=G;G=c;b=b+c|0;B=e;f=b>>>0>>0?e+1|0:e;c=f;s=((M+L|0)+s|0)-16383|0;j=Zl(E,u,r,l);h=ma;l=Zl(D,m,F,l);e=l+j|0;f=ma+h|0;f=e>>>0>>0?f+1|0:f;h=(f|0)==(h|0)&e>>>0>>0|f>>>0>>0;j=e;r=h;l=Zl(C,q,z,q);e=l+e|0;h=ma+f|0;h=e>>>0>>0?h+1|0:h;l=(f|0)==(h|0)&e>>>0>>0|f>>>0>h>>>0;f=r+l|0;j=0;j=f>>>0>>0?1:j;r=Zl(E,u,D,m);l=r+f|0;f=ma+j|0;f=l>>>0>>0?f+1|0:f;r=l;l=e;j=h;e=(d|0)==(t|0)&v>>>0>I>>>0|d>>>0>t>>>0;d=e+((d|0)==(H|0)&v>>>0>>0|d>>>0>>0)|0;h=0;h=d>>>0>>0?1:h;v=d;d=l+d|0;e=h+j|0;e=d>>>0>>0?e+1|0:e;v=d;h=e;e=(e|0)==(j|0)&d>>>0>>0|e>>>0>>0;d=e+r|0;r=d;e=d>>>0>>0?f+1|0:f;m=Zl(C,q,D,m);j=ma;l=Zl(E,u,z,q);d=l+m|0;f=ma+j|0;f=d>>>0>>0?f+1|0:f;l=d;d=f;f=(j|0)==(f|0)&l>>>0>>0|f>>>0>>0;m=d+r|0;e=e+f|0;e=m>>>0>>0?e+1|0:e;r=m;m=0;d=m+v|0;f=h+l|0;f=d>>>0>>0?f+1|0:f;j=f;m=(h|0)==(f|0)&d>>>0>>0|f>>>0>>0;h=r+m|0;z=h;m=h>>>0>>0?e+1|0:e;l=d;e=d;d=j;h=(p|0)==(x|0)&P>>>0>Q>>>0|p>>>0>>0;f=h+((x|0)==(K|0)&P>>>0>>0|x>>>0>>0)|0;j=0;h=f+((g|0)==(p|0)&A>>>0>>0|g>>>0

>>0)|0;f=g+e|0;e=d+h|0;e=f>>>0>>0?e+1|0:e;g=f;h=(d|0)==(e|0)&f>>>0>>0|d>>>0>e>>>0;d=h+z|0;f=m;f=d>>>0>>0?f+1|0:f;j=e;m=d;d=(i|0)==(t|0)&y>>>0>>0|i>>>0>>0;i=(i|0)==(B|0)&y>>>0>G>>>0|i>>>0>B>>>0;d=d+i|0;h=0;h=d>>>0>>0?1:h;i=d;d=d+g|0;e=e+h|0;e=d>>>0>>0?e+1|0:e;h=(e|0)==(j|0)&d>>>0>>0|e>>>0>>0;g=m+h|0;f=g>>>0>>0?f+1|0:f;h=g;i=f;c:{if(f&65536){s=s+1|0;break c}x=n>>>31|0;j=i<<1|h>>>31;h=g<<1|e>>>31;i=j;j=e<<1|d>>>31;d=d<<1|c>>>31;f=0;e=f|j;g=w;j=n<<1|g>>>31;w=g<<1;n=j;g=f;f=c<<1|b>>>31;b=b<<1|x;c=f|g}if((s|0)>=32767){o=o|2147418112;b=0;c=0;break a}d:{if((s|0)<=0){f=1-s|0;if(f>>>0>=128){b=0;c=0;break a}g=s+127|0;Rk(k+48|0,w,n,b,c,g);Rk(k+32|0,d,e,h,i,g);Yk(k+16|0,w,n,b,c,f);Yk(k,d,e,h,i,f);w=J[k+32>>2]|J[k+16>>2]|(J[k+48>>2]|J[k+56>>2]|(J[k+52>>2]|J[k+60>>2]))!=0;n=J[k+36>>2]|J[k+20>>2];b=J[k+40>>2]|J[k+24>>2];c=J[k+44>>2]|J[k+28>>2];d=J[k>>2];e=J[k+4>>2];f=J[k+8>>2];g=J[k+12>>2];break d}f=h;g=i&65535|s<<16}q=f|q;o=g|o;if(!(!b&(c|0)==-2147483648?!(n|w):(c|0)>0|(c|0)>=0)){b=d+1|0;j=b?e:e+1|0;c=j;f=(e|0)==(j|0)&b>>>0>>0|e>>>0>j>>>0;d=f+q|0;e=o;q=d;o=d>>>0>>0?e+1|0:e;break a}if(b|w|(c^-2147483648|n)){b=d;c=e;break a}c=d&1;b=c+d|0;j=b>>>0>>0?e+1|0:e;c=j;e=(e|0)==(j|0)&b>>>0>>0|e>>>0>j>>>0;d=e+q|0;j=o;q=d;o=d>>>0>>0?j+1|0:j}J[a>>2]=b;J[a+4>>2]=c;J[a+8>>2]=q;J[a+12>>2]=o;ia=k+96|0}function Uh(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0;i=ia-16|0;ia=i;c=J[b+56>>2];d=J[c+100>>2];h=J[c+96>>2];f=(d-h|0)/12|0;Ab(f,J[b+44>>2]);Ab(J[J[b+56>>2]+80>>2],J[b+44>>2]);k=J[b+48>>2];c=ll(32);J[i>>2]=c;J[i+4>>2]=21;J[i+8>>2]=-2147483616;e=K[1149]|K[1150]<<8|(K[1151]<<16|K[1152]<<24);g=K[1145]|K[1146]<<8|(K[1147]<<16|K[1148]<<24);H[c+13|0]=g;H[c+14|0]=g>>>8;H[c+15|0]=g>>>16;H[c+16|0]=g>>>24;H[c+17|0]=e;H[c+18|0]=e>>>8;H[c+19|0]=e>>>16;H[c+20|0]=e>>>24;e=K[1144]|K[1145]<<8|(K[1146]<<16|K[1147]<<24);g=K[1140]|K[1141]<<8|(K[1142]<<16|K[1143]<<24);H[c+8|0]=g;H[c+9|0]=g>>>8;H[c+10|0]=g>>>16;H[c+11|0]=g>>>24;H[c+12|0]=e;H[c+13|0]=e>>>8;H[c+14|0]=e>>>16;H[c+15|0]=e>>>24;e=K[1136]|K[1137]<<8|(K[1138]<<16|K[1139]<<24);g=K[1132]|K[1133]<<8|(K[1134]<<16|K[1135]<<24);H[c|0]=g;H[c+1|0]=g>>>8;H[c+2|0]=g>>>16;H[c+3|0]=g>>>24;H[c+4|0]=e;H[c+5|0]=e>>>8;H[c+6|0]=e>>>16;H[c+7|0]=e>>>24;H[c+21|0]=0;e=ri(k,i,0);if(H[i+11|0]<0){fl(J[i>>2])}c=J[b+44>>2];a:{if(e){H[i|0]=0;f=J[c+20>>2];if(!J[c+16>>2]&(f|0)<=0|(f|0)<0){Ea(c,J[c+4>>2],i,i+1|0)}d=0;c=0;h=ia-16|0;ia=h;J[h>>2]=0;J[h+4>>2]=0;f=b;b=J[f+56>>2];e=J[b+100>>2];b=J[b+96>>2];if((e|0)!=(b|0)){b=(e-b|0)/12|0;o=b>>>0<=1?1:b;b=J[h>>2];e=0;b:{c:{while(1){d:{k=J[J[f+56>>2]+96>>2]+P(l,12)|0;m=J[k>>2];g=m-j|0;j=g>>31;j=(g^j)-j<<1|g>>>31;e:{if((e|0)!=(d|0)){J[d>>2]=j;d=d+4|0;J[h+4>>2]=d;break e}e=d-c|0;n=e>>2;g=n+1|0;if(g>>>0>=1073741824){break d}d=e>>1;g=e>>>0>=2147483644?1073741823:d>>>0>g>>>0?d:g;if(g){if(g>>>0>=1073741824){break c}b=ll(g<<2)}else{b=0}d=b+(n<<2)|0;J[d>>2]=j;d=d+4|0;if((e|0)>0){lk(b,c,e)}e=(g<<2)+b|0;J[h+4>>2]=d;if(c){fl(c)}c=b}n=J[k+4>>2];g=n-m|0;j=g>>31;j=(g^j)-j<<1|g>>>31;f:{if((e|0)!=(d|0)){J[d>>2]=j;d=d+4|0;J[h+4>>2]=d;break f}e=d-c|0;m=e>>2;g=m+1|0;if(g>>>0>1073741823){break d}d=e>>1;g=e>>>0>=2147483644?1073741823:d>>>0>g>>>0?d:g;if(g){if(g>>>0>1073741823){break c}b=ll(g<<2)}else{b=0}d=b+(m<<2)|0;J[d>>2]=j;d=d+4|0;if((e|0)>0){lk(b,c,e)}e=(g<<2)+b|0;J[h+4>>2]=d;if(c){fl(c)}c=b}j=J[k+8>>2];g=j-n|0;k=g>>31;k=(g^k)-k<<1|g>>>31;g:{if((e|0)!=(d|0)){J[d>>2]=k;d=d+4|0;J[h+4>>2]=d;break g}e=d-c|0;m=e>>2;g=m+1|0;if(g>>>0>1073741823){break d}d=e>>1;g=e>>>0>=2147483644?1073741823:d>>>0>g>>>0?d:g;if(g){if(g>>>0>1073741823){break c}b=ll(g<<2)}else{b=0}d=b+(m<<2)|0;J[d>>2]=k;d=d+4|0;if((e|0)>0){lk(b,c,e)}e=(g<<2)+b|0;J[h+4>>2]=d;if(c){fl(c)}c=b}l=l+1|0;if((o|0)!=(l|0)){continue}break b}break}J[h+8>>2]=d;J[h>>2]=b;La();C()}J[h>>2]=b;$a();C()}J[h>>2]=b}mf(c,d-c>>2,1,0,J[f+44>>2]);if(c){fl(c)}ia=h+16|0;break a}H[i|0]=1;e=J[c+20>>2];if(!J[c+16>>2]&(e|0)<=0|(e|0)<0){Ea(c,J[c+4>>2],i,i+1|0)}c=J[J[b+56>>2]+80>>2];if(c>>>0<=255){if((d|0)==(h|0)){break a}g=f>>>0<=1?1:f;d=i+1|0;c=0;while(1){f=J[b+44>>2];h=J[J[b+56>>2]+96>>2]+P(c,12)|0;H[i|0]=J[h>>2];e=J[f+20>>2];h:{if(!!J[f+16>>2]&(e|0)>=0|(e|0)>0){break h}Ea(f,J[f+4>>2],i,d);f=J[b+44>>2];e=J[f+20>>2];l=J[f+16>>2];H[i|0]=J[h+4>>2];if(!!l&(e|0)>=0|(e|0)>0){break h}Ea(f,J[f+4>>2],i,d);f=J[b+44>>2];e=J[f+20>>2];l=J[f+16>>2];H[i|0]=J[h+8>>2];if(!!l&(e|0)>=0|(e|0)>0){break h}Ea(f,J[f+4>>2],i,d)}c=c+1|0;if((g|0)!=(c|0)){continue}break}break a}if(c>>>0<=65535){if((d|0)==(h|0)){break a}g=f>>>0<=1?1:f;d=i+2|0;c=0;while(1){f=J[b+44>>2];h=J[J[b+56>>2]+96>>2]+P(c,12)|0;I[i>>1]=J[h>>2];e=J[f+20>>2];i:{if(!!J[f+16>>2]&(e|0)>=0|(e|0)>0){break i}Ea(f,J[f+4>>2],i,d);f=J[b+44>>2];e=J[f+20>>2];l=J[f+16>>2];I[i>>1]=J[h+4>>2];if(!!l&(e|0)>=0|(e|0)>0){break i}Ea(f,J[f+4>>2],i,d);f=J[b+44>>2];e=J[f+20>>2];l=J[f+16>>2];I[i>>1]=J[h+8>>2];if(!!l&(e|0)>=0|(e|0)>0){break i}Ea(f,J[f+4>>2],i,d)}c=c+1|0;if((g|0)!=(c|0)){continue}break}break a}if(c>>>0>=2097152){if((d|0)==(h|0)){break a}d=J[b+44>>2];c=J[d+20>>2];if(!!J[d+16>>2]&(c|0)>=0|(c|0)>0){break a}h=f>>>0<=1?1:f;c=0;while(1){f=J[b+44>>2];d=J[f+20>>2];if(!J[f+16>>2]&(d|0)<=0|(d|0)<0){d=f;e=J[f+4>>2];f=J[J[b+56>>2]+96>>2]+P(c,12)|0;Ea(d,e,f,f+12|0)}c=c+1|0;if((h|0)!=(c|0)){continue}break}break a}if((d|0)==(h|0)){break a}d=f>>>0<=1?1:f;c=0;while(1){f=J[J[b+56>>2]+96>>2]+P(c,12)|0;Ab(J[f>>2],J[b+44>>2]);Ab(J[f+4>>2],J[b+44>>2]);Ab(J[f+8>>2],J[b+44>>2]);c=c+1|0;if((d|0)!=(c|0)){continue}break}}J[a>>2]=0;J[a+4>>2]=0;J[a+8>>2]=0;J[a+12>>2]=0;ia=i+16|0}function ud(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0;f=ia-96|0;ia=f;e=J[a+16>>2];H[f+92|0]=1;J[f+88>>2]=b;J[f+84>>2]=b;J[f+80>>2]=e;k=J[a+20>>2];d=J[k>>2];a:{b:{e=J[J[e+28>>2]+(b<<2)>>2];if(e>>>0>2]-d>>2>>>0){d=J[J[a+8>>2]+(J[d+(e<<2)>>2]<<2)>>2];e=J[a+4>>2];if(!K[e+84|0]){d=J[J[e+68>>2]+(d<<2)>>2]}J[f+72>>2]=0;J[f+76>>2]=0;k=f- -64|0;J[k>>2]=0;J[k+4>>2]=0;J[f+56>>2]=0;J[f+60>>2]=0;md(e,d,H[e+24|0],f+56|0);if((b|0)!=-1){e=b+1|0;k=(e>>>0)%3|0?e:b-2|0;i=((b>>>0)%3|0?-1:2)+b|0;while(1){d=k;e=i;c:{if(!J[a+28>>2]){break c}e=b+1|0;d=(e>>>0)%3|0?e:b-2|0;e=b-1|0;if((b>>>0)%3|0){break c}e=b+2|0}h=J[a+20>>2];b=J[h>>2];d=J[J[J[a+16>>2]+28>>2]+(d<<2)>>2];if(d>>>0>=J[h+4>>2]-b>>2>>>0){break b}d=J[J[a+8>>2]+(J[b+(d<<2)>>2]<<2)>>2];b=J[a+4>>2];if(!K[b+84|0]){d=J[J[b+68>>2]+(d<<2)>>2]}J[f+48>>2]=0;J[f+52>>2]=0;J[f+40>>2]=0;J[f+44>>2]=0;J[f+32>>2]=0;J[f+36>>2]=0;md(b,d,H[b+24|0],f+32|0);d=J[a+20>>2];b=J[d>>2];e=J[J[J[a+16>>2]+28>>2]+(e<<2)>>2];if(e>>>0>=J[d+4>>2]-b>>2>>>0){break a}d=J[J[a+8>>2]+(J[b+(e<<2)>>2]<<2)>>2];b=J[a+4>>2];if(!K[b+84|0]){d=J[J[b+68>>2]+(d<<2)>>2]}J[f+24>>2]=0;J[f+28>>2]=0;J[f+16>>2]=0;J[f+20>>2]=0;J[f+8>>2]=0;J[f+12>>2]=0;md(b,d,H[b+24|0],f+8|0);e=J[f+8>>2];b=J[f+56>>2];d=e-b|0;h=J[f+60>>2];j=J[f+12>>2]-(h+(b>>>0>e>>>0)|0)|0;p=J[f+40>>2];e=J[f+64>>2];s=p-e|0;t=J[f+68>>2];p=J[f+44>>2]-(t+(e>>>0>p>>>0)|0)|0;u=Zl(d,j,s,p);v=n-u|0;n=g-(ma+(n>>>0>>0)|0)|0;o=v;g=J[f+16>>2];u=g-e|0;t=J[f+20>>2]-((e>>>0>g>>>0)+t|0)|0;g=J[f+32>>2];v=g-b|0;h=J[f+36>>2]-((b>>>0>g>>>0)+h|0)|0;e=Zl(u,t,v,h);b=o+e|0;g=ma+n|0;g=b>>>0>>0?g+1|0:g;n=b;e=l;o=d;x=j;b=J[f+48>>2];l=J[f+72>>2];d=b-l|0;j=J[f+76>>2];w=J[f+52>>2]-(j+(b>>>0>>0)|0)|0;o=Zl(o,x,d,w);e=e+o|0;b=ma+m|0;b=e>>>0>>0?b+1|0:b;m=J[f+24>>2];o=m-l|0;j=J[f+28>>2]-((l>>>0>m>>>0)+j|0)|0;m=Zl(o,j,v,h);l=e-m|0;m=b-(ma+(e>>>0>>0)|0)|0;b=Zl(u,t,d,w);e=q-b|0;b=r-(ma+(b>>>0>q>>>0)|0)|0;r=Zl(o,j,s,p);q=r+e|0;b=ma+b|0;b=q>>>0>>0?b+1|0:b;r=b;b=J[f+88>>2];e=J[f+80>>2];d:{if(K[f+92|0]){e:{f:{g:{h:{if((b|0)==-1){break h}d=b+1|0;b=(d>>>0)%3|0?d:b-2|0;if((b|0)==-1|J[J[e>>2]+(b>>>3&536870908)>>2]>>>b&1){break h}b=J[J[J[e+64>>2]+12>>2]+(b<<2)>>2];if((b|0)!=-1){break g}}J[f+88>>2]=-1;break f}d=b+1|0;b=(d>>>0)%3|0?d:b-2|0;J[f+88>>2]=b;if((b|0)!=-1){break e}}b=J[f+84>>2];d=-1;i:{if((b|0)==-1){break i}j:{if((b>>>0)%3|0){b=b-1|0;break j}b=b+2|0;d=-1;if((b|0)==-1){break i}}d=-1;if(J[J[e>>2]+(b>>>3&536870908)>>2]>>>b&1){break i}b=J[J[J[e+64>>2]+12>>2]+(b<<2)>>2];d=-1;if((b|0)==-1){break i}d=b-1|0;if((b>>>0)%3|0){break i}d=b+2|0}H[f+92|0]=0;J[f+88>>2]=d;break d}if((b|0)!=J[f+84>>2]){break d}J[f+88>>2]=-1;break d}d=-1;k:{if((b|0)==-1){break k}l:{if((b>>>0)%3|0){b=b-1|0;break l}b=b+2|0;d=-1;if((b|0)==-1){break k}}d=-1;if(J[J[e>>2]+(b>>>3&536870908)>>2]>>>b&1){break k}b=J[J[J[e+64>>2]+12>>2]+(b<<2)>>2];d=-1;if((b|0)==-1){break k}d=b-1|0;if((b>>>0)%3|0){break k}d=b+2|0}J[f+88>>2]=d}b=J[f+88>>2];if((b|0)!=-1){continue}break}}b=r>>31;e=b^q;j=e-b|0;h=(b^r)-((b>>>0>e>>>0)+b|0)|0;p=-1;e=2147483647;b=m>>31;k=b^l;d=(b^m)-((b>>>0>k>>>0)+b|0)|0;b=k-b|0;s=b^-1;i=d^2147483647;k=g;m:{n:{if(!J[a+28>>2]){if((i|0)==(h|0)&j>>>0>s>>>0|i>>>0>>0){break m}i=g;a=b;e=b+j|0;b=d+h|0;b=a>>>0>e>>>0?b+1|0:b;a=g>>31;d=a;h=d^n;j=h-d|0;g=e+j|0;d=(d^i)-((d>>>0>h>>>0)+d|0)|0;a=g;g=d^2147483647;g=(g|0)==(b|0)&(j^-1)>>>0>>0|b>>>0>g>>>0;a=g?-1:a;if(!(g&0)&(a|0)<=536870912|(a|0)<536870912){break m}b=0;a=a>>>29|0;break n}o:{if((i|0)==(h|0)&j>>>0>s>>>0|i>>>0>>0){break o}a=b;i=b+j|0;b=d+h|0;b=a>>>0>i>>>0?b+1|0:b;a=i;h=g;d=g>>31;g=d;i=d^n;d=(d^h)-(d+(d>>>0>i>>>0)|0)|0;g=i-g|0;i=d^2147483647;if((i|0)==(b|0)&(g^-1)>>>0>>0|b>>>0>i>>>0){break o}b=b+d|0;a=a+g|0;b=a>>>0>>0?b+1|0:b;p=a;e=b;if(!b&a>>>0<536870913){break m}}b=e>>>29|0;a=(e&536870911)<<3|p>>>29}n=_l(n,k,a,b);l=_l(l,m,a,b);q=_l(q,r,a,b)}J[c+8>>2]=n;J[c+4>>2]=l;J[c>>2]=q;ia=f+96|0;return}Zc();C()}Zc();C()}Zc();C()}function ik(a){a=a|0;var b=0,c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=Q(0),p=0;d=1;a:{if(!J[a+80>>2]){break a}b=J[a+8>>2];if((J[a+12>>2]-b|0)<=0){break a}while(1){c=J[(n<<2)+b>>2];m=0;i=0;d=0;b=-1;b:{c:{d:{e:{switch(J[c+28>>2]-1|0){case 8:f:{switch(K[c+24|0]-1|0){case 0:e=ia+-64|0;ia=e;J[e+40>>2]=0;J[e+44>>2]=0;J[e+32>>2]=0;J[e+36>>2]=0;J[e+48>>2]=1065353216;b=J[c+80>>2];J[e+24>>2]=0;J[e+16>>2]=0;J[e+20>>2]=0;g:{h:{if(b){if(b>>>0>=1073741824){break h}f=b<<2;j=ll(f);J[e+16>>2]=j;b=f+j|0;J[e+24>>2]=b;nk(j,0,f);J[e+20>>2]=b;while(1){b=J[J[c>>2]>>2];f=J[c+48>>2]+Zl(J[c+40>>2],J[c+44>>2],i,0)|0;b=b+f|0;o=(x(2,K[b|0]|K[b+1|0]<<8|(K[b+2|0]<<16|K[b+3|0]<<24)),D());N[e+28>>2]=o;i:{j:{g=J[e+36>>2];k:{if(!g){break k}p=J[e+32>>2];h=(B(o),v(2));l=h^318;f=am(g)>>>0>1;b=l&g-1;l:{if(!f){break l}b=l;if(b>>>0>>0){break l}b=(l>>>0)%(g>>>0)|0}k=b;b=J[p+(k<<2)>>2];if(!b){break k}b=J[b>>2];if(!b){break k}if(!f){g=g-1|0;while(1){f=J[b+4>>2];m:{if((f|0)!=(l|0)){if((k|0)==(f&g)){break m}break k}if((h|0)==J[b+8>>2]){break j}}b=J[b>>2];if(b){continue}break}break k}while(1){f=J[b+4>>2];n:{if((f|0)!=(l|0)){if(f>>>0>=g>>>0){f=(f>>>0)%(g>>>0)|0}if((f|0)==(k|0)){break n}break k}if((h|0)==J[b+8>>2]){break j}}b=J[b>>2];if(b){continue}break}}J[e+12>>2]=m;N[e+8>>2]=o;b=e+8|0;tb(e+56|0,e+32|0,b,b);b=J[c+40>>2];lk(J[J[c>>2]>>2]+P(b,m)|0,e+28|0,b);j=J[e+16>>2];J[j+(i<<2)>>2]=m;m=m+1|0;break i}J[(i<<2)+j>>2]=J[b+12>>2]}b=i+1|0;d=b?d:d+1|0;i=b;b=J[c+80>>2];if(!d&b>>>0>i>>>0){continue}break}if((b|0)!=(m|0)){o:{if(!K[c+84|0]){b=J[c+72>>2];h=J[c+68>>2];if((b|0)==(h|0)){break o}b=b-h>>2;d=b>>>0<=1?1:b;k=d&3;g=0;b=0;if(d-1>>>0>=3){f=d&-4;l=0;while(1){i=b<<2;d=i+h|0;J[d>>2]=J[(J[d>>2]<<2)+j>>2];d=h+(i|4)|0;J[d>>2]=J[(J[d>>2]<<2)+j>>2];d=h+(i|8)|0;J[d>>2]=J[(J[d>>2]<<2)+j>>2];d=h+(i|12)|0;J[d>>2]=J[(J[d>>2]<<2)+j>>2];b=b+4|0;l=l+4|0;if((f|0)!=(l|0)){continue}break}}if(!k){break o}while(1){d=h+(b<<2)|0;J[d>>2]=J[(J[d>>2]<<2)+j>>2];b=b+1|0;g=g+1|0;if((k|0)!=(g|0)){continue}break}break o}H[c+84|0]=0;k=c+68|0;d=J[c+68>>2];f=J[c+72>>2]-d>>2;p:{if(f>>>0>>0){ub(k,b-f|0,2184);b=J[c+80>>2];break p}if(b>>>0>=f>>>0){break p}J[c+72>>2]=d+(b<<2)}if(!b){break o}i=J[k>>2];g=0;h=0;if(b>>>0>=4){f=b&-4;l=0;while(1){k=h<<2;J[k+i>>2]=J[j+k>>2];d=k|4;J[d+i>>2]=J[d+j>>2];d=k|8;J[d+i>>2]=J[d+j>>2];d=k|12;J[d+i>>2]=J[d+j>>2];h=h+4|0;l=l+4|0;if((f|0)!=(l|0)){continue}break}}d=b&3;if(!d){break o}while(1){b=h<<2;J[b+i>>2]=J[b+j>>2];h=h+1|0;g=g+1|0;if((d|0)!=(g|0)){continue}break}}J[c+80>>2]=m}fl(j)}b=J[e+40>>2];if(b){while(1){d=J[b>>2];fl(b);b=d;if(b){continue}break}}b=J[e+32>>2];J[e+32>>2]=0;if(b){fl(b)}ia=e- -64|0;b=m;break g}La();C()}break d;case 1:b=hb(c,c);break d;case 2:b=ib(c,c);break d;case 3:break f;default:break c}}b=jb(c,c);break d;case 0:q:{switch(K[c+24|0]-1|0){case 0:b=kb(c,c);break d;case 1:b=lb(c,c);break d;case 2:b=mb(c,c);break d;case 3:break q;default:break c}}b=nb(c,c);break d;case 1:case 10:r:{switch(K[c+24|0]-1|0){case 0:b=kb(c,c);break d;case 1:b=lb(c,c);break d;case 2:b=mb(c,c);break d;case 3:break r;default:break c}}b=nb(c,c);break d;case 3:s:{switch(K[c+24|0]-1|0){case 0:b=ob(c,c);break d;case 1:b=pb(c,c);break d;case 2:b=qb(c,c);break d;case 3:break s;default:break c}}b=rb(c,c);break d;case 2:t:{switch(K[c+24|0]-1|0){case 0:b=ob(c,c);break d;case 1:b=pb(c,c);break d;case 2:b=qb(c,c);break d;case 3:break t;default:break c}}b=rb(c,c);break d;case 5:u:{switch(K[c+24|0]-1|0){case 0:b=sb(c,c);break d;case 1:b=hb(c,c);break d;case 2:b=ib(c,c);break d;case 3:break u;default:break c}}b=jb(c,c);break d;case 4:break e;default:break b}}v:{switch(K[c+24|0]-1|0){case 0:b=sb(c,c);break d;case 1:b=hb(c,c);break d;case 2:b=ib(c,c);break d;case 3:break v;default:break c}}b=jb(c,c)}if(b){break b}}b=-1}d=b;if(b){n=n+1|0;b=J[a+8>>2];if((n|0)>2]-b>>2){continue}}break}d=(d|0)!=0}return d|0}function Id(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0;e=ia-96|0;ia=e;d=J[a+16>>2];H[e+92|0]=1;J[e+88>>2]=b;J[e+84>>2]=b;J[e+80>>2]=d;a:{if((b|0)==-1){break a}k=J[a+20>>2];f=J[k>>2];d=J[J[d>>2]+(b<<2)>>2];if(d>>>0>=J[k+4>>2]-f>>2>>>0){break a}f=J[J[a+8>>2]+(J[f+(d<<2)>>2]<<2)>>2];d=J[a+4>>2];if(!K[d+84|0]){f=J[J[d+68>>2]+(f<<2)>>2]}J[e+72>>2]=0;J[e+76>>2]=0;k=e- -64|0;J[k>>2]=0;J[k+4>>2]=0;J[e+56>>2]=0;J[e+60>>2]=0;md(d,f,H[d+24|0],e+56|0);d=b+1|0;k=(d>>>0)%3|0?d:b-2|0;i=((b>>>0)%3|0?-1:2)+b|0;b:{c:{while(1){f=k;d=i;d:{if(!J[a+28>>2]){break d}d=b+1|0;f=(d>>>0)%3|0?d:b-2|0;d=b-1|0;if((b>>>0)%3|0){break d}d=b+2|0}if((f|0)==-1){break b}h=J[a+20>>2];b=J[h>>2];f=J[J[J[a+16>>2]>>2]+(f<<2)>>2];if(f>>>0>=J[h+4>>2]-b>>2>>>0){break b}f=J[J[a+8>>2]+(J[b+(f<<2)>>2]<<2)>>2];b=J[a+4>>2];if(!K[b+84|0]){f=J[J[b+68>>2]+(f<<2)>>2]}J[e+48>>2]=0;J[e+52>>2]=0;J[e+40>>2]=0;J[e+44>>2]=0;J[e+32>>2]=0;J[e+36>>2]=0;md(b,f,H[b+24|0],e+32|0);if((d|0)==-1){break c}f=J[a+20>>2];b=J[f>>2];d=J[J[J[a+16>>2]>>2]+(d<<2)>>2];if(d>>>0>=J[f+4>>2]-b>>2>>>0){break c}f=J[J[a+8>>2]+(J[b+(d<<2)>>2]<<2)>>2];b=J[a+4>>2];if(!K[b+84|0]){f=J[J[b+68>>2]+(f<<2)>>2]}J[e+24>>2]=0;J[e+28>>2]=0;J[e+16>>2]=0;J[e+20>>2]=0;J[e+8>>2]=0;J[e+12>>2]=0;md(b,f,H[b+24|0],e+8|0);d=J[e+8>>2];b=J[e+56>>2];f=d-b|0;h=J[e+60>>2];j=J[e+12>>2]-(h+(b>>>0>d>>>0)|0)|0;p=J[e+40>>2];d=J[e+64>>2];s=p-d|0;t=J[e+68>>2];p=J[e+44>>2]-(t+(d>>>0>p>>>0)|0)|0;u=Zl(f,j,s,p);v=n-u|0;n=g-(ma+(n>>>0>>0)|0)|0;o=v;g=J[e+16>>2];u=g-d|0;t=J[e+20>>2]-((d>>>0>g>>>0)+t|0)|0;g=J[e+32>>2];v=g-b|0;h=J[e+36>>2]-((b>>>0>g>>>0)+h|0)|0;d=Zl(u,t,v,h);b=o+d|0;g=ma+n|0;g=b>>>0>>0?g+1|0:g;n=b;d=l;o=f;x=j;b=J[e+48>>2];l=J[e+72>>2];f=b-l|0;j=J[e+76>>2];w=J[e+52>>2]-(j+(b>>>0>>0)|0)|0;o=Zl(o,x,f,w);d=d+o|0;b=ma+m|0;b=d>>>0>>0?b+1|0:b;m=J[e+24>>2];o=m-l|0;j=J[e+28>>2]-((l>>>0>m>>>0)+j|0)|0;m=Zl(o,j,v,h);l=d-m|0;m=b-(ma+(d>>>0>>0)|0)|0;b=Zl(u,t,f,w);d=q-b|0;b=r-(ma+(b>>>0>q>>>0)|0)|0;r=Zl(o,j,s,p);q=r+d|0;b=ma+b|0;b=q>>>0>>0?b+1|0:b;r=b;b=J[e+88>>2];f=J[e+80>>2];e:{if(K[e+92|0]){f:{g:{h:{i:{if((b|0)==-1){break i}d=b+1|0;b=(d>>>0)%3|0?d:b-2|0;if((b|0)==-1){break i}b=J[J[f+12>>2]+(b<<2)>>2];if((b|0)!=-1){break h}}J[e+88>>2]=-1;break g}d=b+1|0;b=(d>>>0)%3|0?d:b-2|0;J[e+88>>2]=b;if((b|0)!=-1){break f}}b=J[e+84>>2];d=-1;j:{if((b|0)==-1){break j}k:{if((b>>>0)%3|0){b=b-1|0;break k}b=b+2|0;d=-1;if((b|0)==-1){break j}}b=J[J[f+12>>2]+(b<<2)>>2];d=-1;if((b|0)==-1){break j}d=b-1|0;if((b>>>0)%3|0){break j}d=b+2|0}H[e+92|0]=0;J[e+88>>2]=d;break e}if((b|0)!=J[e+84>>2]){break e}J[e+88>>2]=-1;break e}d=-1;l:{if((b|0)==-1){break l}m:{if((b>>>0)%3|0){b=b-1|0;break m}b=b+2|0;d=-1;if((b|0)==-1){break l}}b=J[J[f+12>>2]+(b<<2)>>2];d=-1;if((b|0)==-1){break l}d=b-1|0;if((b>>>0)%3|0){break l}d=b+2|0}J[e+88>>2]=d}b=J[e+88>>2];if((b|0)!=-1){continue}break}b=r>>31;d=b^q;j=d-b|0;h=(b^r)-((b>>>0>d>>>0)+b|0)|0;p=-1;d=2147483647;b=m>>31;k=b^l;f=(b^m)-((b>>>0>k>>>0)+b|0)|0;b=k-b|0;s=b^-1;i=f^2147483647;k=g;n:{o:{if(!J[a+28>>2]){if((i|0)==(h|0)&j>>>0>s>>>0|i>>>0>>0){break n}i=g;a=b;d=b+j|0;b=f+h|0;b=a>>>0>d>>>0?b+1|0:b;a=g>>31;h=a^n;j=h-a|0;g=d+j|0;f=(a^i)-((a>>>0>h>>>0)+a|0)|0;a=g;g=f^2147483647;g=(g|0)==(b|0)&(j^-1)>>>0>>0|b>>>0>g>>>0;a=g?-1:a;if(!(g&0)&(a|0)<=536870912|(a|0)<536870912){break n}b=0;a=a>>>29|0;break o}p:{if((i|0)==(h|0)&j>>>0>s>>>0|i>>>0>>0){break p}a=b;i=b+j|0;b=f+h|0;b=a>>>0>i>>>0?b+1|0:b;a=i;h=g;f=g>>31;g=f;i=f^n;f=(f^h)-(f+(f>>>0>i>>>0)|0)|0;g=i-g|0;i=f^2147483647;if((i|0)==(b|0)&(g^-1)>>>0>>0|b>>>0>i>>>0){break p}b=b+f|0;a=a+g|0;b=a>>>0>>0?b+1|0:b;p=a;d=b;if(!b&a>>>0<536870913){break n}}b=d>>>29|0;a=(d&536870911)<<3|p>>>29}n=_l(n,k,a,b);l=_l(l,m,a,b);q=_l(q,r,a,b)}J[c+8>>2]=n;J[c+4>>2]=l;J[c>>2]=q;ia=e+96|0;return}Zc();C()}Zc();C()}Zc();C()}function td(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0;l=ia-48|0;ia=l;J[a+68>>2]=f;o=a+112|0;Ee(o);d=J[a+56>>2];e=J[d>>2];d=J[d+4>>2];J[l+40>>2]=0;J[l+32>>2]=0;J[l+36>>2]=0;J[l+16>>2]=0;J[l+20>>2]=0;J[l+8>>2]=0;J[l+12>>2]=0;J[l>>2]=0;J[l+4>>2]=0;a:{d=d-e|0;if((d|0)>0){p=a+60|0;d=d>>>2|0;q=d>>>0<=1?1:d;r=c+4|0;while(1){e=J[a+56>>2];d=J[e>>2];if(J[e+4>>2]-d>>2>>>0<=n>>>0){break a}ud(p,J[d+(n<<2)>>2],l+32|0);f=J[l+36>>2];d=f>>31;e=J[l+32>>2];g=e>>31;h=J[l+40>>2];j=h>>31;j=(h^j)-j|0;g=j+((d^f)-d+((e^g)-g)|0)|0;d=0;d=j>>>0>g>>>0?1:d;b:{if(!(d|g)){i=J[a+108>>2];k=i;break b}i=J[a+108>>2];k=i>>31;f=_l(Zl(i,k,f,f>>31),ma,g,d);j=f>>31;k=_l(Zl(i,k,e,e>>31),ma,g,d);d=k>>31;d=(f^j)-j+((d^k)-d)|0;h=(h|0)<0?d-i|0:i-d|0}c:{if((k|0)>=0){e=f+i|0;j=i+h|0;break c}d:{if((f|0)<0){d=h>>31;e=(d^h)-d|0;break d}d=h>>31;e=J[a+100>>2]+(d-(d^h)|0)|0}if((h|0)<0){d=f>>31;j=(d^f)-d|0;break c}d=f>>31;j=J[a+100>>2]+(d-(d^f)|0)|0}d=J[a+100>>2];m=d;g=d;e:{if(!(e|j)){break e}if(!((d|0)!=(j|0)|e)){m=j;g=j;break e}if(!((d|0)!=(e|0)|j)){m=e;g=e;break e}if(!((i|0)>=(j|0)|e)){m=(i<<1)-j|0;g=0;break e}if(!((d|0)!=(e|0)|(i|0)<=(j|0))){m=(i<<1)-j|0;g=e;break e}if(!((d|0)!=(j|0)|(e|0)>=(i|0))){m=j;g=(i<<1)-e|0;break e}if(j){m=j;g=e;break e}m=0;g=e;if((e|0)<=(i|0)){break e}g=(i<<1)-e|0}J[l+28>>2]=m;J[l+24>>2]=g;J[l+40>>2]=0-h;J[l+36>>2]=0-f;J[l+32>>2]=0-k;f:{if((k|0)<=0){k=i-h|0;e=i-f|0;break f}e=f>>31;e=(e^f)-e|0;k=(h|0)>0?e:d-e|0;e=h>>31;e=(e^h)-e|0;e=(f|0)>0?e:d-e|0}g:{if(!(e|k)){k=d;break g}if(!((d|0)!=(k|0)|e)){k=d;break g}f=(d|0)!=(e|0);if(!(k|f)){k=d;break g}if(!((i|0)>=(k|0)|e)){k=(i<<1)-k|0;d=0;break g}if(!((i|0)<=(k|0)|f)){k=(i<<1)-k|0;break g}if(!((d|0)!=(k|0)|(e|0)>=(i|0))){k=d;d=(i<<1)-e|0;break g}if(k){d=e;break g}k=0;if((e|0)<=(i|0)){d=e;break g}d=(i<<1)-e|0}J[l+20>>2]=k;J[l+16>>2]=d;h=J[a+8>>2];h:{if((h|0)<=0){break h}k=(n<<3)+b|0;j=J[a+32>>2];e=0;g=l+24|0;while(1){i=j;if((h|0)>0){i=J[a+32>>2];f=0;while(1){d=f<<2;m=J[d+g>>2];h=J[a+16>>2];i:{if((m|0)>(h|0)){J[d+i>>2]=h;break i}d=d+i|0;h=J[a+12>>2];if((h|0)>(m|0)){J[d>>2]=h;break i}J[d>>2]=m}f=f+1|0;h=J[a+8>>2];if((f|0)<(h|0)){continue}break}}f=e<<2;d=f+(l+8|0)|0;g=J[f+k>>2]-J[f+i>>2]|0;J[d>>2]=g;f=d;d=J[a+28>>2];j:{if((g|0)<(d|0)){g=g+J[a+20>>2]|0}else{if((g|0)<=J[a+24>>2]){break j}g=g-J[a+20>>2]|0}J[f>>2]=g}g=i;e=e+1|0;if((e|0)<(h|0)){continue}break}if((h|0)<=0){break h}j=J[a+32>>2];e=0;g=l+16|0;while(1){i=j;if((h|0)>0){i=J[a+32>>2];f=0;while(1){d=f<<2;m=J[d+g>>2];h=J[a+16>>2];k:{if((m|0)>(h|0)){J[d+i>>2]=h;break k}d=d+i|0;h=J[a+12>>2];if((h|0)>(m|0)){J[d>>2]=h;break k}J[d>>2]=m}f=f+1|0;h=J[a+8>>2];if((f|0)<(h|0)){continue}break}d=J[a+28>>2]}g=e<<2;f=g+l|0;g=J[k+g>>2]-J[i+g>>2]|0;J[f>>2]=g;l:{if((d|0)>(g|0)){g=g+J[a+20>>2]|0}else{if((g|0)<=J[a+24>>2]){break l}g=g-J[a+20>>2]|0}J[f>>2]=g}g=i;e=e+1|0;if((e|0)<(h|0)){continue}break}}f=J[l+8>>2];e=J[a+108>>2];m:{if((f|0)>(e|0)){f=f-J[a+96>>2]|0;break m}if((0-e|0)<=(f|0)){break m}f=J[a+96>>2]+f|0}J[l+8>>2]=f;h=J[l+12>>2];n:{if((e|0)<(h|0)){h=h-J[a+96>>2]|0;break n}if((0-e|0)<=(h|0)){break n}h=J[a+96>>2]+h|0}J[l+12>>2]=h;d=J[l>>2];o:{if((e|0)<(d|0)){d=d-J[a+96>>2]|0;break o}if((0-e|0)<=(d|0)){break o}d=J[a+96>>2]+d|0}g=n<<1;J[l>>2]=d;k=J[l+4>>2];p:{if((e|0)<(k|0)){k=k-J[a+96>>2]|0;break p}if((0-e|0)<=(k|0)){break p}k=J[a+96>>2]+k|0}J[l+4>>2]=k;e=h>>31;e=(e^h)-e|0;j=f>>31;j=(j^f)-j|0;e=j>>>0>(e^2147483647)>>>0?2147483647:e+j|0;j=k>>31;j=(j^k)-j|0;i=d>>31;i=(i^d)-i|0;j=i>>>0>(j^2147483647)>>>0?2147483647:j+i|0;Fe(o,e>>>0>=j>>>0);g=g<<2;m=d;d=e>>>0>>0;e=d?f:m;J[g+c>>2]=(J[a+96>>2]&e>>31)+e;d=d?h:k;J[g+r>>2]=(J[a+96>>2]&d>>31)+d;n=n+1|0;if((q|0)!=(n|0)){continue}break}}ia=l+48|0;return 1}Zc();C()}function Hd(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0;l=ia-48|0;ia=l;J[a+68>>2]=f;o=a+112|0;Ee(o);d=J[a+56>>2];e=J[d>>2];d=J[d+4>>2];J[l+40>>2]=0;J[l+32>>2]=0;J[l+36>>2]=0;J[l+16>>2]=0;J[l+20>>2]=0;J[l+8>>2]=0;J[l+12>>2]=0;J[l>>2]=0;J[l+4>>2]=0;a:{d=d-e|0;if((d|0)>0){p=a+60|0;d=d>>>2|0;q=d>>>0<=1?1:d;r=c+4|0;while(1){e=J[a+56>>2];d=J[e>>2];if(J[e+4>>2]-d>>2>>>0<=n>>>0){break a}Id(p,J[d+(n<<2)>>2],l+32|0);f=J[l+36>>2];d=f>>31;e=J[l+32>>2];g=e>>31;h=J[l+40>>2];j=h>>31;j=(h^j)-j|0;g=j+((d^f)-d+((e^g)-g)|0)|0;d=0;d=j>>>0>g>>>0?1:d;b:{if(!(d|g)){i=J[a+108>>2];k=i;break b}i=J[a+108>>2];k=i>>31;f=_l(Zl(i,k,f,f>>31),ma,g,d);j=f>>31;k=_l(Zl(i,k,e,e>>31),ma,g,d);d=k>>31;d=(f^j)-j+((d^k)-d)|0;h=(h|0)<0?d-i|0:i-d|0}c:{if((k|0)>=0){e=f+i|0;j=i+h|0;break c}d:{if((f|0)<0){d=h>>31;e=(d^h)-d|0;break d}d=h>>31;e=J[a+100>>2]+(d-(d^h)|0)|0}if((h|0)<0){d=f>>31;j=(d^f)-d|0;break c}d=f>>31;j=J[a+100>>2]+(d-(d^f)|0)|0}d=J[a+100>>2];m=d;g=d;e:{if(!(e|j)){break e}if(!((d|0)!=(j|0)|e)){m=j;g=j;break e}if(!((d|0)!=(e|0)|j)){m=e;g=e;break e}if(!((i|0)>=(j|0)|e)){m=(i<<1)-j|0;g=0;break e}if(!((d|0)!=(e|0)|(i|0)<=(j|0))){m=(i<<1)-j|0;g=e;break e}if(!((d|0)!=(j|0)|(e|0)>=(i|0))){m=j;g=(i<<1)-e|0;break e}if(j){m=j;g=e;break e}m=0;g=e;if((e|0)<=(i|0)){break e}g=(i<<1)-e|0}J[l+28>>2]=m;J[l+24>>2]=g;J[l+40>>2]=0-h;J[l+36>>2]=0-f;J[l+32>>2]=0-k;f:{if((k|0)<=0){k=i-h|0;e=i-f|0;break f}e=f>>31;e=(e^f)-e|0;k=(h|0)>0?e:d-e|0;e=h>>31;e=(e^h)-e|0;e=(f|0)>0?e:d-e|0}g:{if(!(e|k)){k=d;break g}if(!((d|0)!=(k|0)|e)){k=d;break g}f=(d|0)!=(e|0);if(!(k|f)){k=d;break g}if(!((i|0)>=(k|0)|e)){k=(i<<1)-k|0;d=0;break g}if(!((i|0)<=(k|0)|f)){k=(i<<1)-k|0;break g}if(!((d|0)!=(k|0)|(e|0)>=(i|0))){k=d;d=(i<<1)-e|0;break g}if(k){d=e;break g}k=0;if((e|0)<=(i|0)){d=e;break g}d=(i<<1)-e|0}J[l+20>>2]=k;J[l+16>>2]=d;h=J[a+8>>2];h:{if((h|0)<=0){break h}k=(n<<3)+b|0;j=J[a+32>>2];e=0;g=l+24|0;while(1){i=j;if((h|0)>0){i=J[a+32>>2];f=0;while(1){d=f<<2;m=J[d+g>>2];h=J[a+16>>2];i:{if((m|0)>(h|0)){J[d+i>>2]=h;break i}d=d+i|0;h=J[a+12>>2];if((h|0)>(m|0)){J[d>>2]=h;break i}J[d>>2]=m}f=f+1|0;h=J[a+8>>2];if((f|0)<(h|0)){continue}break}}f=e<<2;d=f+(l+8|0)|0;g=J[f+k>>2]-J[f+i>>2]|0;J[d>>2]=g;f=d;d=J[a+28>>2];j:{if((g|0)<(d|0)){g=g+J[a+20>>2]|0}else{if((g|0)<=J[a+24>>2]){break j}g=g-J[a+20>>2]|0}J[f>>2]=g}g=i;e=e+1|0;if((e|0)<(h|0)){continue}break}if((h|0)<=0){break h}j=J[a+32>>2];e=0;g=l+16|0;while(1){i=j;if((h|0)>0){i=J[a+32>>2];f=0;while(1){d=f<<2;m=J[d+g>>2];h=J[a+16>>2];k:{if((m|0)>(h|0)){J[d+i>>2]=h;break k}d=d+i|0;h=J[a+12>>2];if((h|0)>(m|0)){J[d>>2]=h;break k}J[d>>2]=m}f=f+1|0;h=J[a+8>>2];if((f|0)<(h|0)){continue}break}d=J[a+28>>2]}g=e<<2;f=g+l|0;g=J[k+g>>2]-J[i+g>>2]|0;J[f>>2]=g;l:{if((d|0)>(g|0)){g=g+J[a+20>>2]|0}else{if((g|0)<=J[a+24>>2]){break l}g=g-J[a+20>>2]|0}J[f>>2]=g}g=i;e=e+1|0;if((e|0)<(h|0)){continue}break}}f=J[l+8>>2];e=J[a+108>>2];m:{if((f|0)>(e|0)){f=f-J[a+96>>2]|0;break m}if((0-e|0)<=(f|0)){break m}f=J[a+96>>2]+f|0}J[l+8>>2]=f;h=J[l+12>>2];n:{if((e|0)<(h|0)){h=h-J[a+96>>2]|0;break n}if((0-e|0)<=(h|0)){break n}h=J[a+96>>2]+h|0}J[l+12>>2]=h;d=J[l>>2];o:{if((e|0)<(d|0)){d=d-J[a+96>>2]|0;break o}if((0-e|0)<=(d|0)){break o}d=J[a+96>>2]+d|0}g=n<<1;J[l>>2]=d;k=J[l+4>>2];p:{if((e|0)<(k|0)){k=k-J[a+96>>2]|0;break p}if((0-e|0)<=(k|0)){break p}k=J[a+96>>2]+k|0}J[l+4>>2]=k;e=h>>31;e=(e^h)-e|0;j=f>>31;j=(j^f)-j|0;e=j>>>0>(e^2147483647)>>>0?2147483647:e+j|0;j=k>>31;j=(j^k)-j|0;i=d>>31;i=(i^d)-i|0;j=i>>>0>(j^2147483647)>>>0?2147483647:j+i|0;Fe(o,e>>>0>=j>>>0);g=g<<2;m=d;d=e>>>0>>0;e=d?f:m;J[g+c>>2]=(J[a+96>>2]&e>>31)+e;d=d?h:k;J[g+r>>2]=(J[a+96>>2]&d>>31)+d;n=n+1|0;if((q|0)!=(n|0)){continue}break}}ia=l+48|0;return 1}Zc();C()}function nf(a,b,c,d){var e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0;o=ia-32|0;ia=o;a:{if((c|0)<=0){break a}s=c&3;b:{if(c>>>0<4){c=0;break b}A=c&-4;c=0;while(1){t=c|1;k=(t<<3)+b|0;g=J[k+4>>2];u=J[k>>2];v=c|2;i=(v<<3)+b|0;k=J[i+4>>2];w=J[i>>2];x=c|3;j=(x<<3)+b|0;i=J[j+4>>2];y=J[j>>2];r=l;l=(c<<3)+b|0;z=J[l+4>>2];j=J[l>>2];l=i|y?x:k|w?v:g|u?t:!(z|j)?r:c;e=e+z|0;h=j+h|0;e=h>>>0>>0?e+1|0:e;j=h+u|0;e=e+g|0;e=j>>>0>>0?e+1|0:e;g=j+w|0;e=e+k|0;e=g>>>0>>0?e+1|0:e;k=g;g=g+y|0;e=e+i|0;e=g>>>0>>0?e+1|0:e;h=g;c=c+4|0;f=f+4|0;if((A|0)!=(f|0)){continue}break}}if(!s){break a}while(1){k=l;l=(c<<3)+b|0;g=J[l+4>>2];f=J[l>>2];l=!(g|f)?k:c;c=c+1|0;e=e+g|0;k=f+h|0;e=k>>>0>>0?e+1|0:e;h=k;n=n+1|0;if((s|0)!=(n|0)){continue}break}}k=l+1|0;J[a+12>>2]=k;f=J[a>>2];c=J[a+4>>2]-f>>3;c:{if(c>>>0>>0){lf(a,k-c|0);break c}if(c>>>0<=k>>>0){break c}J[a+4>>2]=f+(k<<3)}g=0;d:{e:{f:{g:{h:{if((l|0)>=0){q=+(h>>>0)+ +(e>>>0)*4294967296;f=J[a>>2];c=0;while(1){i=c<<3;j=i+b|0;e=J[j+4>>2];j=J[j>>2];n=(e|j)!=0;h=f+i|0;m=(+(j>>>0)+ +(e>>>0)*4294967296)/q*4096+.5;i:{if(m<4294967296&m>=0){e=~~m>>>0;break i}e=0}e=e?e:n?1:e;J[h>>2]=e;g=e+g|0;e=(c|0)==(l|0);c=c+1|0;if(!e){continue}break}if((g|0)==4096){break h}}J[o+16>>2]=0;J[o+8>>2]=0;J[o+12>>2]=0;i=0;j:{if(!k){break j}if(k>>>0>=1073741824){break g}j=k<<2;p=ll(j);J[o+8>>2]=p;f=0;e=nk(p,0,j);c=0;if(l>>>0>=7){n=k&-8;while(1){J[e+(c<<2)>>2]=c;h=c|1;J[e+(h<<2)>>2]=h;h=c|2;J[e+(h<<2)>>2]=h;h=c|3;J[e+(h<<2)>>2]=h;h=c|4;J[e+(h<<2)>>2]=h;h=c|5;J[e+(h<<2)>>2]=h;h=c|6;J[e+(h<<2)>>2]=h;h=c|7;J[e+(h<<2)>>2]=h;c=c+8|0;i=i+8|0;if((n|0)!=(i|0)){continue}break}}i=e+j|0;j=k&7;if(!j){break j}while(1){J[e+(c<<2)>>2]=c;c=c+1|0;f=f+1|0;if((j|0)!=(f|0)){continue}break}}J[o+24>>2]=a;c=i-p|0;e=c>>2;k:{l:{if((c|0)>=513){c=e;while(1){f=ll(c<<2);if(f){break l}f=c>>>0>1;c=c>>>1|0;if(f){continue}break}}pf(p,i,o+24|0,e,0,0);break k}pf(p,i,o+24|0,e,f,c);fl(f)}if((g|0)<4096){c=J[a>>2]+(J[i-4>>2]<<3)|0;J[c>>2]=(J[c>>2]-g|0)+4096;c=0;break f}if((l|0)>0){j=J[a>>2];n=g-4096|0;while(1){m=4096/+(g|0);f=l;while(1){m:{n:{e=j+(J[(f<<2)+p>>2]<<3)|0;c=J[e>>2];if(c>>>0>=2){h=e;r=c;q=V(m*+(c>>>0));o:{if(R(q)<2147483648){i=~~q;break o}i=-2147483648}e=(c|0)==(i|0)?1:c-i|0;c=(c|0)>(e|0)?e:c-1|0;c=(c|0)<(n|0)?c:n;J[h>>2]=r-c;n=n-c|0;g=g-c|0;if((g|0)!=4096){break n}g=4096;break m}if((f|0)!=(l|0)){break m}c=1;break f}c=(f|0)>1;f=f-1|0;if(c){continue}}break}c=0;if((n|0)>0){continue}break}break f}c=0;if(g>>>0<4097){break f}while(1)continue}if((l|0)<0){break d}break e}La();C()}e=J[o+8>>2];if(e){fl(e)}if((l|0)<0|c){break d}}e=J[a>>2];g=0;n=0;c=0;if(l>>>0>=3){i=k&-4;p=0;while(1){f=n<<3;j=f+e|0;J[j+4>>2]=c;h=e+(f|8)|0;c=J[j>>2]+c|0;J[h+4>>2]=c;j=e+(f|16)|0;c=c+J[h>>2]|0;J[j+4>>2]=c;f=e+(f|24)|0;c=c+J[j>>2]|0;J[f+4>>2]=c;c=c+J[f>>2]|0;n=n+4|0;p=p+4|0;if((i|0)!=(p|0)){continue}break}}f=k&3;if(f){while(1){i=e+(n<<3)|0;J[i+4>>2]=c;n=n+1|0;c=J[i>>2]+c|0;g=g+1|0;if((f|0)!=(g|0)){continue}break}}if((c|0)!=4096){break d}c=0;m=0;p:{if((l|0)<0){break p}e=J[a>>2];if(l){l=k&-2;f=0;while(1){g=c<<3;i=J[g+e>>2];if(i){g=b+g|0;m=(+M[g>>2]+ +M[g+4>>2]*4294967296)*pk(+(i>>>0)*.000244140625)+m}g=(c|1)<<3;i=J[g+e>>2];if(i){g=b+g|0;m=(+M[g>>2]+ +M[g+4>>2]*4294967296)*pk(+(i>>>0)*.000244140625)+m}c=c+2|0;f=f+2|0;if((l|0)!=(f|0)){continue}break}}if(!(k&1)){break p}c=c<<3;e=J[c+e>>2];if(!e){break p}b=b+c|0;m=(+M[b>>2]+ +M[b+4>>2]*4294967296)*pk(+(e>>>0)*.000244140625)+m}m=W(-m);q:{if(m<0x10000000000000000&m>=0){c=R(m)>=1?~~(m>0?T(V(m*2.3283064365386963e-10),4294967295):W((m-+(~~m>>>0>>>0))*2.3283064365386963e-10))>>>0:0;b=~~m>>>0;break q}c=0;b=0}J[a+16>>2]=b;J[a+20>>2]=c;qf(a,d)}ia=o+32|0}function Od(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0;b=ia-48|0;ia=b;g=J[J[a+4>>2]+48>>2];J[b+8>>2]=J[a+12>>2];c=ll(32);J[b+24>>2]=c;J[b+28>>2]=17;J[b+32>>2]=-2147483616;H[c+16|0]=K[1261];f=K[1257]|K[1258]<<8|(K[1259]<<16|K[1260]<<24);e=K[1253]|K[1254]<<8|(K[1255]<<16|K[1256]<<24);H[c+8|0]=e;H[c+9|0]=e>>>8;H[c+10|0]=e>>>16;H[c+11|0]=e>>>24;H[c+12|0]=f;H[c+13|0]=f>>>8;H[c+14|0]=f>>>16;H[c+15|0]=f>>>24;f=K[1249]|K[1250]<<8|(K[1251]<<16|K[1252]<<24);e=K[1245]|K[1246]<<8|(K[1247]<<16|K[1248]<<24);H[c|0]=e;H[c+1|0]=e>>>8;H[c+2|0]=e>>>16;H[c+3|0]=e>>>24;H[c+4|0]=f;H[c+5|0]=f>>>8;H[c+6|0]=f>>>16;H[c+7|0]=f>>>24;H[c+17|0]=0;c=Ib(g,b+8|0,b+24|0,-1);if(H[b+35|0]<0){fl(J[b+24>>2])}J[b+32>>2]=-1;J[b+36>>2]=1065353216;J[b+24>>2]=-1;J[b+28>>2]=-1;J[b+40>>2]=-1;c=-1<>>0<4294967267){break a}J[b+24>>2]=c+1;c=-2<>2]=c^-1;c=c^-2;J[b+32>>2]=c;J[b+40>>2]=(c|0)/2;N[b+36>>2]=Q(2)/Q(c|0)}g=xe(J[a+12>>2],J[a+4>>2]);h=J[J[a+4>>2]+48>>2];J[b+20>>2]=J[a+12>>2];c=ll(32);J[b+8>>2]=c;J[b+12>>2]=17;J[b+16>>2]=-2147483616;H[c+16|0]=K[1529];f=K[1525]|K[1526]<<8|(K[1527]<<16|K[1528]<<24);e=K[1521]|K[1522]<<8|(K[1523]<<16|K[1524]<<24);H[c+8|0]=e;H[c+9|0]=e>>>8;H[c+10|0]=e>>>16;H[c+11|0]=e>>>24;H[c+12|0]=f;H[c+13|0]=f>>>8;H[c+14|0]=f>>>16;H[c+15|0]=f>>>24;f=K[1517]|K[1518]<<8|(K[1519]<<16|K[1520]<<24);e=K[1513]|K[1514]<<8|(K[1515]<<16|K[1516]<<24);H[c|0]=e;H[c+1|0]=e>>>8;H[c+2|0]=e>>>16;H[c+3|0]=e>>>24;H[c+4|0]=f;H[c+5|0]=f>>>8;H[c+6|0]=f>>>16;H[c+7|0]=f>>>24;H[c+17|0]=0;c=Ib(h,b+20|0,b+8|0,g);if(H[b+19|0]<0){fl(J[b+8>>2])}b:{c:{d:{switch(c|0){case 6:e=J[a+4>>2];h=J[a+12>>2];a=J[J[J[e+4>>2]+8>>2]+(h<<2)>>2];if((na[J[J[e>>2]+8>>2]](e)|0)!=1){break c}c=b+24|0;f=ia-32|0;ia=f;i=J[J[J[e+4>>2]+8>>2]+(h<<2)>>2];e:{if((na[J[J[e>>2]+8>>2]](e)|0)!=1){break e}j=na[J[J[e>>2]+52>>2]](e)|0;g=na[J[J[e>>2]+60>>2]](e,h)|0;if(!j|!g){break e}d=na[J[J[e>>2]+56>>2]](e,h)|0;if(d){e=J[e+56>>2];J[f+20>>2]=d;J[f+16>>2]=e;J[f+28>>2]=g;J[f+24>>2]=g+12;d=ll(128);J[d+4>>2]=i;e=J[c+4>>2];J[d+8>>2]=J[c>>2];J[d+12>>2]=e;e=J[c+12>>2];J[d+16>>2]=J[c+8>>2];J[d+20>>2]=e;J[d+24>>2]=J[c+16>>2];c=J[f+20>>2];J[d+28>>2]=J[f+16>>2];J[d+32>>2]=c;c=J[f+28>>2];J[d+36>>2]=J[f+24>>2];J[d+40>>2]=c;J[d+48>>2]=0;J[d+52>>2]=0;J[d>>2]=7532;c=J[f+20>>2];J[d+56>>2]=J[f+16>>2];J[d+60>>2]=c;e=J[f+28>>2];c=d- -64|0;J[c>>2]=J[f+24>>2];J[c+4>>2]=e;J[d+88>>2]=1065353216;J[d+92>>2]=-1;J[d+80>>2]=-1;J[d+84>>2]=-1;J[d+72>>2]=1;J[d+76>>2]=-1;J[d+44>>2]=7792;J[d+96>>2]=0;J[d+100>>2]=0;J[d+120>>2]=0;J[d+124>>2]=0;J[d+112>>2]=0;J[d+116>>2]=0;J[d+104>>2]=0;J[d+108>>2]=0;break e}d=J[e+56>>2];J[f+20>>2]=j;J[f+16>>2]=d;J[f+28>>2]=g;J[f+24>>2]=g+12;d=ll(128);J[d+4>>2]=i;e=J[c+4>>2];J[d+8>>2]=J[c>>2];J[d+12>>2]=e;e=J[c+12>>2];J[d+16>>2]=J[c+8>>2];J[d+20>>2]=e;J[d+24>>2]=J[c+16>>2];c=J[f+20>>2];J[d+28>>2]=J[f+16>>2];J[d+32>>2]=c;c=J[f+28>>2];J[d+36>>2]=J[f+24>>2];J[d+40>>2]=c;J[d+48>>2]=0;J[d+52>>2]=0;J[d>>2]=9156;c=J[f+20>>2];J[d+56>>2]=J[f+16>>2];J[d+60>>2]=c;e=J[f+28>>2];c=d- -64|0;J[c>>2]=J[f+24>>2];J[c+4>>2]=e;J[d+88>>2]=1065353216;J[d+92>>2]=-1;J[d+80>>2]=-1;J[d+84>>2]=-1;J[d+72>>2]=1;J[d+76>>2]=-1;J[d+44>>2]=9400;J[d+96>>2]=0;J[d+100>>2]=0;J[d+120>>2]=0;J[d+124>>2]=0;J[d+112>>2]=0;J[d+116>>2]=0;J[d+104>>2]=0;J[d+108>>2]=0}ia=f+32|0;if(!d){break c}break b;case 0:break d;default:break b}}c=J[a+4>>2];a=J[J[J[c+4>>2]+8>>2]+(J[a+12>>2]<<2)>>2];if((na[J[J[c>>2]+8>>2]](c)|0)!=1){break c}na[J[J[c>>2]+8>>2]](c)|0}d=ll(28);J[d+4>>2]=a;a=J[b+28>>2];J[d+8>>2]=J[b+24>>2];J[d+12>>2]=a;a=J[b+36>>2];J[d+16>>2]=J[b+32>>2];J[d+20>>2]=a;J[d+24>>2]=J[b+40>>2];J[d>>2]=9812}ia=b+48|0;return d|0}function Te(a,b,c,d,e,f){var g=0,h=0,i=0,j=0,k=0,l=0;h=ia-16|0;ia=h;J[h+12>>2]=b;b=ll(32);J[h>>2]=b;J[h+4>>2]=17;J[h+8>>2]=-2147483616;H[b+16|0]=K[1261];g=K[1257]|K[1258]<<8|(K[1259]<<16|K[1260]<<24);i=K[1253]|K[1254]<<8|(K[1255]<<16|K[1256]<<24);H[b+8|0]=i;H[b+9|0]=i>>>8;H[b+10|0]=i>>>16;H[b+11|0]=i>>>24;H[b+12|0]=g;H[b+13|0]=g>>>8;H[b+14|0]=g>>>16;H[b+15|0]=g>>>24;g=K[1249]|K[1250]<<8|(K[1251]<<16|K[1252]<<24);i=K[1245]|K[1246]<<8|(K[1247]<<16|K[1248]<<24);H[b|0]=i;H[b+1|0]=i>>>8;H[b+2|0]=i>>>16;H[b+3|0]=i>>>24;H[b+4|0]=g;H[b+5|0]=g>>>8;H[b+6|0]=g>>>16;H[b+7|0]=g>>>24;H[b+17|0]=0;i=a+4|0;Se(i,h+12|0,h,c);if(H[h+11|0]<0){fl(J[h>>2])}a=ll(32);J[h>>2]=a;J[h+4>>2]=19;J[h+8>>2]=-2147483616;b=K[1429]|K[1430]<<8|(K[1431]<<16|K[1432]<<24);H[a+15|0]=b;H[a+16|0]=b>>>8;H[a+17|0]=b>>>16;H[a+18|0]=b>>>24;b=K[1426]|K[1427]<<8|(K[1428]<<16|K[1429]<<24);c=K[1422]|K[1423]<<8|(K[1424]<<16|K[1425]<<24);H[a+8|0]=c;H[a+9|0]=c>>>8;H[a+10|0]=c>>>16;H[a+11|0]=c>>>24;H[a+12|0]=b;H[a+13|0]=b>>>8;H[a+14|0]=b>>>16;H[a+15|0]=b>>>24;b=K[1418]|K[1419]<<8|(K[1420]<<16|K[1421]<<24);c=K[1414]|K[1415]<<8|(K[1416]<<16|K[1417]<<24);H[a|0]=c;H[a+1|0]=c>>>8;H[a+2|0]=c>>>16;H[a+3|0]=c>>>24;H[a+4|0]=b;H[a+5|0]=b>>>8;H[a+6|0]=b>>>16;H[a+7|0]=b>>>24;H[a+19|0]=0;g=ia-48|0;ia=g;j=J[h+12>>2];a=i+16|0;c=J[a>>2];a:{b:{if(!c){break b}b=a;while(1){k=(j|0)>J[c+16>>2];b=k?b:c;c=J[(k?c+4|0:c)>>2];if(c){continue}break}if((a|0)==(b|0)){break b}if((j|0)>=J[b+16>>2]){break a}}J[g+28>>2]=0;J[g+32>>2]=0;c=g+24|0;J[g+24>>2]=c|4;a=g+16|0;J[a>>2]=0;J[a+4>>2]=0;J[g+8>>2]=j;J[g+12>>2]=a;a=g+8|0;Oe(g+40|0,i+12|0,a,a);b=J[g+40>>2];Oc(a|4,J[g+16>>2]);Oc(c,J[g+28>>2])}b=b+20|0;a=ia-48|0;ia=a;J[a+24>>2]=0;J[a+16>>2]=0;J[a+20>>2]=0;c:{if((d|0)<=0){break c}wl(a,N[e>>2]);c=K[a+11|0];j=c<<24>>24<0;tl(a+16|0,j?J[a>>2]:a,j?J[a+4>>2]:c);if(H[a+11|0]<0){fl(J[a>>2])}c=1;if((d|0)==1){break c}while(1){j=a+16|0;tl(j,2030,uk(2030));wl(a,N[(c<<2)+e>>2]);l=j;j=K[a+11|0];k=j<<24>>24<0;tl(l,k?J[a>>2]:a,k?J[a+4>>2]:j);if(H[a+11|0]<0){fl(J[a>>2])}c=c+1|0;if((d|0)!=(c|0)){continue}break}}J[a+40>>2]=h;$e(a,b,h,a+40|0);d=J[a>>2];b=d+28|0;d:{if((b|0)==(a+16|0)){break d}e=K[a+27|0];c=e<<24>>24;if(H[d+39|0]>=0){if((c|0)>=0){c=J[a+20>>2];J[b>>2]=J[a+16>>2];J[b+4>>2]=c;J[b+8>>2]=J[a+24>>2];break d}vl(b,J[a+16>>2],J[a+20>>2]);break d}d=b;b=(c|0)<0;ul(d,b?J[a+16>>2]:a+16|0,b?J[a+20>>2]:e)}if(H[a+27|0]<0){fl(J[a+16>>2])}ia=a+48|0;ia=g+48|0;if(H[h+11|0]<0){fl(J[h>>2])}a=ll(32);J[h>>2]=a;J[h+4>>2]=18;J[h+8>>2]=-2147483616;b=K[1547]|K[1548]<<8;H[a+16|0]=b;H[a+17|0]=b>>>8;b=K[1543]|K[1544]<<8|(K[1545]<<16|K[1546]<<24);c=K[1539]|K[1540]<<8|(K[1541]<<16|K[1542]<<24);H[a+8|0]=c;H[a+9|0]=c>>>8;H[a+10|0]=c>>>16;H[a+11|0]=c>>>24;H[a+12|0]=b;H[a+13|0]=b>>>8;H[a+14|0]=b>>>16;H[a+15|0]=b>>>24;b=K[1535]|K[1536]<<8|(K[1537]<<16|K[1538]<<24);c=K[1531]|K[1532]<<8|(K[1533]<<16|K[1534]<<24);H[a|0]=c;H[a+1|0]=c>>>8;H[a+2|0]=c>>>16;H[a+3|0]=c>>>24;H[a+4|0]=b;H[a+5|0]=b>>>8;H[a+6|0]=b>>>16;H[a+7|0]=b>>>24;H[a+18|0]=0;b=ia-48|0;ia=b;c=J[h+12>>2];a=i+16|0;e=J[a>>2];e:{f:{if(!e){break f}d=a;while(1){g=(c|0)>J[e+16>>2];d=g?d:e;e=J[(g?e+4|0:e)>>2];if(e){continue}break}if((a|0)==(d|0)){break f}if((c|0)>=J[d+16>>2]){break e}}J[b+28>>2]=0;J[b+32>>2]=0;e=b+24|0;J[b+24>>2]=e|4;a=b+16|0;J[a>>2]=0;J[a+4>>2]=0;J[b+8>>2]=c;J[b+12>>2]=a;a=b+8|0;Oe(b+40|0,i+12|0,a,a);d=J[b+40>>2];Oc(a|4,J[b+16>>2]);Oc(e,J[b+28>>2])}a=ia-48|0;ia=a;wl(a+8|0,f);J[a+32>>2]=h;$e(a+40|0,d+20|0,h,a+32|0);c=J[a+40>>2];if(H[c+39|0]<0){fl(J[c+28>>2])}d=J[a+12>>2];J[c+28>>2]=J[a+8>>2];J[c+32>>2]=d;J[c+36>>2]=J[a+16>>2];ia=a+48|0;ia=b+48|0;if(H[h+11|0]<0){fl(J[h>>2])}ia=h+16|0}function se(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=Q(0);f=ia-32|0;ia=f;J[f+28>>2]=c;a:{if(!Kc(a,b,c)){break a}i=J[J[J[b+4>>2]+8>>2]+(c<<2)>>2];if(J[i+28>>2]!=9){break a}g=J[b+48>>2];c=ll(32);J[f+16>>2]=c;J[f+20>>2]=17;J[f+24>>2]=-2147483616;H[c+16|0]=K[1261];e=K[1257]|K[1258]<<8|(K[1259]<<16|K[1260]<<24);h=K[1253]|K[1254]<<8|(K[1255]<<16|K[1256]<<24);H[c+8|0]=h;H[c+9|0]=h>>>8;H[c+10|0]=h>>>16;H[c+11|0]=h>>>24;H[c+12|0]=e;H[c+13|0]=e>>>8;H[c+14|0]=e>>>16;H[c+15|0]=e>>>24;e=K[1249]|K[1250]<<8|(K[1251]<<16|K[1252]<<24);h=K[1245]|K[1246]<<8|(K[1247]<<16|K[1248]<<24);H[c|0]=h;H[c+1|0]=h>>>8;H[c+2|0]=h>>>16;H[c+3|0]=h>>>24;H[c+4|0]=e;H[c+5|0]=e>>>8;H[c+6|0]=e>>>16;H[c+7|0]=e>>>24;H[c+17|0]=0;h=Ib(g,f+28|0,f+16|0,-1);if(H[f+27|0]<0){fl(J[f+16>>2])}if((h|0)<=0){break a}j=J[b+48>>2];c=ll(32);J[f+16>>2]=c;J[f+20>>2]=19;J[f+24>>2]=-2147483616;e=K[1429]|K[1430]<<8|(K[1431]<<16|K[1432]<<24);H[c+15|0]=e;H[c+16|0]=e>>>8;H[c+17|0]=e>>>16;H[c+18|0]=e>>>24;e=K[1426]|K[1427]<<8|(K[1428]<<16|K[1429]<<24);g=K[1422]|K[1423]<<8|(K[1424]<<16|K[1425]<<24);H[c+8|0]=g;H[c+9|0]=g>>>8;H[c+10|0]=g>>>16;H[c+11|0]=g>>>24;H[c+12|0]=e;H[c+13|0]=e>>>8;H[c+14|0]=e>>>16;H[c+15|0]=e>>>24;e=K[1418]|K[1419]<<8|(K[1420]<<16|K[1421]<<24);g=K[1414]|K[1415]<<8|(K[1416]<<16|K[1417]<<24);H[c|0]=g;H[c+1|0]=g>>>8;H[c+2|0]=g>>>16;H[c+3|0]=g>>>24;H[c+4|0]=e;H[c+5|0]=e>>>8;H[c+6|0]=e>>>16;H[c+7|0]=e>>>24;H[c+19|0]=0;b:{if(!Jb(j,f+28|0,f+16|0)){break b}g=J[b+48>>2];c=ll(32);J[f>>2]=c;J[f+4>>2]=18;J[f+8>>2]=-2147483616;d=K[1547]|K[1548]<<8;H[c+16|0]=d;H[c+17|0]=d>>>8;d=K[1543]|K[1544]<<8|(K[1545]<<16|K[1546]<<24);e=K[1539]|K[1540]<<8|(K[1541]<<16|K[1542]<<24);H[c+8|0]=e;H[c+9|0]=e>>>8;H[c+10|0]=e>>>16;H[c+11|0]=e>>>24;H[c+12|0]=d;H[c+13|0]=d>>>8;H[c+14|0]=d>>>16;H[c+15|0]=d>>>24;d=K[1535]|K[1536]<<8|(K[1537]<<16|K[1538]<<24);e=K[1531]|K[1532]<<8|(K[1533]<<16|K[1534]<<24);H[c|0]=e;H[c+1|0]=e>>>8;H[c+2|0]=e>>>16;H[c+3|0]=e>>>24;H[c+4|0]=d;H[c+5|0]=d>>>8;H[c+6|0]=d>>>16;H[c+7|0]=d>>>24;H[c+18|0]=0;d=Jb(g,f+28|0,f);if(H[f+11|0]>=0){break b}fl(J[f>>2])}if(H[f+27|0]<0){fl(J[f+16>>2])}c:{if(d){c=0;d=K[i+24|0];if(d){d=d<<2;c=ll(d);nk(c,0,d)}j=J[b+48>>2];d=ll(32);J[f+16>>2]=d;J[f+20>>2]=19;J[f+24>>2]=-2147483616;e=K[1429]|K[1430]<<8|(K[1431]<<16|K[1432]<<24);H[d+15|0]=e;H[d+16|0]=e>>>8;H[d+17|0]=e>>>16;H[d+18|0]=e>>>24;e=K[1426]|K[1427]<<8|(K[1428]<<16|K[1429]<<24);g=K[1422]|K[1423]<<8|(K[1424]<<16|K[1425]<<24);H[d+8|0]=g;H[d+9|0]=g>>>8;H[d+10|0]=g>>>16;H[d+11|0]=g>>>24;H[d+12|0]=e;H[d+13|0]=e>>>8;H[d+14|0]=e>>>16;H[d+15|0]=e>>>24;e=K[1418]|K[1419]<<8|(K[1420]<<16|K[1421]<<24);g=K[1414]|K[1415]<<8|(K[1416]<<16|K[1417]<<24);H[d|0]=g;H[d+1|0]=g>>>8;H[d+2|0]=g>>>16;H[d+3|0]=g>>>24;H[d+4|0]=e;H[d+5|0]=e>>>8;H[d+6|0]=e>>>16;H[d+7|0]=e>>>24;H[d+19|0]=0;Kb(j,f+28|0,f+16|0,K[i+24|0],c);if(H[f+27|0]<0){fl(J[f+16>>2])}g=J[b+48>>2];b=ll(32);J[f+16>>2]=b;J[f+20>>2]=18;J[f+24>>2]=-2147483616;d=K[1547]|K[1548]<<8;H[b+16|0]=d;H[b+17|0]=d>>>8;d=K[1543]|K[1544]<<8|(K[1545]<<16|K[1546]<<24);e=K[1539]|K[1540]<<8|(K[1541]<<16|K[1542]<<24);H[b+8|0]=e;H[b+9|0]=e>>>8;H[b+10|0]=e>>>16;H[b+11|0]=e>>>24;H[b+12|0]=d;H[b+13|0]=d>>>8;H[b+14|0]=d>>>16;H[b+15|0]=d>>>24;d=K[1535]|K[1536]<<8|(K[1537]<<16|K[1538]<<24);e=K[1531]|K[1532]<<8|(K[1533]<<16|K[1534]<<24);H[b|0]=e;H[b+1|0]=e>>>8;H[b+2|0]=e>>>16;H[b+3|0]=e>>>24;H[b+4|0]=d;H[b+5|0]=d>>>8;H[b+6|0]=d>>>16;H[b+7|0]=d>>>24;H[b+18|0]=0;k=Lb(g,f+28|0,f+16|0);if(H[f+27|0]<0){fl(J[f+16>>2])}a=Sa(a+40|0,h,c,K[i+24|0],k);if(c){fl(c)}d=0;if(a){break c}break a}d=0;if(!Ua(a+40|0,i,h)){break a}}d=1}ia=f+32|0;return d|0}function xd(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0;J[a+8>>2]=e;q=a+32|0;f=J[q>>2];h=J[a+36>>2]-f>>2;a:{if(h>>>0>>0){Oa(q,e-h|0);break a}if(e>>>0>=h>>>0){break a}J[a+36>>2]=f+(e<<2)}b:{if(!d){break b}g=J[b>>2];c:{if((d|0)<2){h=g;break c}f=1;h=d-1|0;l=h&1;d:{if((d|0)==2){h=g;break d}o=h&-2;d=0;h=g;while(1){i=(f<<2)+b|0;p=J[i+4>>2];k=J[i>>2];j=(k|0)<(h|0);h=j?k:h;i=(h|0)>(p|0);h=i?p:h;g=j?g:(g|0)<(k|0)?k:g;g=i?g:(g|0)<(p|0)?p:g;f=f+2|0;d=d+2|0;if((o|0)!=(d|0)){continue}break}}if(!l){break c}f=J[(f<<2)+b>>2];d=(f|0)<(h|0);h=d?f:h;g=d?g:(f|0)>(g|0)?f:g}J[a+16>>2]=g;J[a+12>>2]=h;d=(g>>31)-((h>>31)+(g>>>0>>0)|0)|0;f=g-h|0;if(!d&f>>>0>2147483646|d){break b}f=f+1|0;J[a+20>>2]=f;d=f>>>1|0;J[a+24>>2]=d;J[a+28>>2]=0-d;if(f&1){break b}J[a+24>>2]=d-1}s=e<<2;d=e>>>0>1073741823?-1:s;h=nk(ll(d),0,d);d=J[a+56>>2];t=J[d>>2];d=J[d+4>>2]-t|0;if((d|0)>=5){w=J[a+52>>2];u=J[a+48>>2];x=e&-2;y=e&1;v=d>>2;l=v;while(1){o=l;e:{f:{l=l-1|0;if(v>>>0>l>>>0){p=P(e,l);d=J[(l<<2)+t>>2];if((d|0)==-1){break f}g=J[J[u+12>>2]+(d<<2)>>2];if((g|0)==-1){break f}j=J[w>>2];k=J[u>>2];i=J[j+(J[k+(g<<2)>>2]<<2)>>2];d=g+1|0;d=(d>>>0)%3|0?d:g-2|0;if((d|0)!=-1){f=J[k+(d<<2)>>2]}else{f=-1}g:{h:{if((g>>>0)%3|0){g=g-1|0;break h}g=g+2|0;d=-1;if((g|0)==-1){break g}}d=J[k+(g<<2)>>2]}if((i|0)>=(l|0)){break f}f=J[(f<<2)+j>>2];if((f|0)>=(l|0)){break f}d=J[j+(d<<2)>>2];if((d|0)>=(l|0)){break f}i:{if((e|0)<=0){break i}k=P(d,e);j=P(e,f);i=P(e,i);g=0;d=0;if((e|0)!=1){while(1){J[h+(g<<2)>>2]=(J[(g+k<<2)+b>>2]+J[(g+j<<2)+b>>2]|0)-J[(g+i<<2)+b>>2];f=g|1;J[h+(f<<2)>>2]=(J[(f+k<<2)+b>>2]+J[(f+j<<2)+b>>2]|0)-J[(f+i<<2)+b>>2];g=g+2|0;d=d+2|0;if((x|0)!=(d|0)){continue}break}}if(!y){break i}J[h+(g<<2)>>2]=(J[(g+k<<2)+b>>2]+J[(g+j<<2)+b>>2]|0)-J[(g+i<<2)+b>>2]}g=J[a+8>>2];if((g|0)<=0){break e}d=p<<2;p=d+c|0;k=b+d|0;i=J[q>>2];m=0;d=h;while(1){f=i;if((g|0)>0){f=J[q>>2];g=0;while(1){n=g<<2;r=J[n+d>>2];j=J[a+16>>2];j:{if((r|0)>(j|0)){J[f+n>>2]=j;break j}n=f+n|0;j=J[a+12>>2];if((j|0)>(r|0)){J[n>>2]=j;break j}J[n>>2]=r}g=g+1|0;if((g|0)>2]){continue}break}}g=m<<2;d=g+p|0;g=J[g+k>>2]-J[f+g>>2]|0;J[d>>2]=g;k:{if((g|0)>2]){g=g+J[a+20>>2]|0}else{if((g|0)<=J[a+24>>2]){break k}g=g-J[a+20>>2]|0}J[d>>2]=g}d=f;g=J[a+8>>2];m=m+1|0;if((g|0)>(m|0)){continue}break}break e}Zc();C()}g=J[a+8>>2];if((g|0)<=0){break e}d=p<<2;p=d+c|0;k=b+d|0;d=(P(o-2|0,e)<<2)+b|0;i=J[q>>2];m=0;while(1){f=i;if((g|0)>0){f=J[q>>2];g=0;while(1){n=g<<2;r=J[n+d>>2];j=J[a+16>>2];l:{if((r|0)>(j|0)){J[f+n>>2]=j;break l}n=f+n|0;j=J[a+12>>2];if((j|0)>(r|0)){J[n>>2]=j;break l}J[n>>2]=r}g=g+1|0;if((g|0)>2]){continue}break}}g=m<<2;d=g+p|0;g=J[g+k>>2]-J[f+g>>2]|0;J[d>>2]=g;m:{if((g|0)>2]){g=g+J[a+20>>2]|0}else{if((g|0)<=J[a+24>>2]){break m}g=g-J[a+20>>2]|0}J[d>>2]=g}d=f;g=J[a+8>>2];m=m+1|0;if((g|0)>(m|0)){continue}break}}if((o|0)>2){continue}break}}if((e|0)>0){nk(h,0,s)}g=J[a+8>>2];if((g|0)>0){e=J[a+32>>2];m=0;d=h;while(1){f=e;if((g|0)>0){f=J[q>>2];g=0;while(1){o=g<<2;l=J[o+d>>2];i=J[a+16>>2];n:{if((l|0)>(i|0)){J[f+o>>2]=i;break n}o=f+o|0;i=J[a+12>>2];if((i|0)>(l|0)){J[o>>2]=i;break n}J[o>>2]=l}g=g+1|0;if((g|0)>2]){continue}break}}g=m<<2;d=g+c|0;g=J[b+g>>2]-J[f+g>>2]|0;J[d>>2]=g;o:{if((g|0)>2]){g=g+J[a+20>>2]|0}else{if((g|0)<=J[a+24>>2]){break o}g=g-J[a+20>>2]|0}J[d>>2]=g}d=f;g=J[a+8>>2];m=m+1|0;if((g|0)>(m|0)){continue}break}}fl(h);return 1}function Yc(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0;J[a+8>>2]=e;q=a+32|0;f=J[q>>2];h=J[a+36>>2]-f>>2;a:{if(h>>>0>>0){Oa(q,e-h|0);break a}if(e>>>0>=h>>>0){break a}J[a+36>>2]=f+(e<<2)}b:{if(!d){break b}g=J[b>>2];c:{if((d|0)<2){h=g;break c}f=1;h=d-1|0;l=h&1;d:{if((d|0)==2){h=g;break d}o=h&-2;d=0;h=g;while(1){i=(f<<2)+b|0;m=J[i+4>>2];p=J[i>>2];j=(p|0)<(h|0);h=j?p:h;i=(h|0)>(m|0);h=i?m:h;g=j?g:(g|0)<(p|0)?p:g;g=i?g:(g|0)<(m|0)?m:g;f=f+2|0;d=d+2|0;if((o|0)!=(d|0)){continue}break}}if(!l){break c}f=J[(f<<2)+b>>2];d=(f|0)<(h|0);h=d?f:h;g=d?g:(f|0)>(g|0)?f:g}J[a+16>>2]=g;J[a+12>>2]=h;d=(g>>31)-((h>>31)+(g>>>0>>0)|0)|0;f=g-h|0;if(!d&f>>>0>2147483646|d){break b}f=f+1|0;J[a+20>>2]=f;d=f>>>1|0;J[a+24>>2]=d;J[a+28>>2]=0-d;if(f&1){break b}J[a+24>>2]=d-1}t=e<<2;d=e>>>0>1073741823?-1:t;h=nk(ll(d),0,d);d=J[a+56>>2];u=J[d>>2];d=J[d+4>>2]-u|0;if((d|0)>=5){w=J[a+52>>2];s=J[a+48>>2];x=e&-2;y=e&1;v=d>>2;l=v;while(1){o=l;e:{f:{l=l-1|0;if(v>>>0>l>>>0){p=P(e,l);d=J[(l<<2)+u>>2];if((d|0)==-1|J[J[s>>2]+(d>>>3&536870908)>>2]>>>d&1){break f}m=J[J[J[s+64>>2]+12>>2]+(d<<2)>>2];if((m|0)==-1){break f}i=J[w>>2];j=J[s+28>>2];g=J[i+(J[j+(m<<2)>>2]<<2)>>2];if((g|0)>=(l|0)){break f}d=m+1|0;f=J[i+(J[j+(((d>>>0)%3|0?d:m-2|0)<<2)>>2]<<2)>>2];if((f|0)>=(l|0)){break f}d=J[i+(J[j+(m+((m>>>0)%3|0?-1:2)<<2)>>2]<<2)>>2];if((d|0)>=(l|0)){break f}g:{if((e|0)<=0){break g}j=P(d,e);i=P(e,f);f=P(e,g);g=0;k=0;if((e|0)!=1){while(1){J[h+(g<<2)>>2]=(J[(g+j<<2)+b>>2]+J[(g+i<<2)+b>>2]|0)-J[(f+g<<2)+b>>2];d=g|1;J[h+(d<<2)>>2]=(J[(d+j<<2)+b>>2]+J[(d+i<<2)+b>>2]|0)-J[(d+f<<2)+b>>2];g=g+2|0;k=k+2|0;if((x|0)!=(k|0)){continue}break}}if(!y){break g}J[h+(g<<2)>>2]=(J[(g+j<<2)+b>>2]+J[(g+i<<2)+b>>2]|0)-J[(f+g<<2)+b>>2]}g=J[a+8>>2];if((g|0)<=0){break e}d=p<<2;m=d+c|0;p=b+d|0;i=J[q>>2];k=0;d=h;while(1){f=i;if((g|0)>0){f=J[q>>2];g=0;while(1){n=g<<2;r=J[n+d>>2];j=J[a+16>>2];h:{if((r|0)>(j|0)){J[f+n>>2]=j;break h}n=f+n|0;j=J[a+12>>2];if((j|0)>(r|0)){J[n>>2]=j;break h}J[n>>2]=r}g=g+1|0;if((g|0)>2]){continue}break}}g=k<<2;d=g+m|0;g=J[g+p>>2]-J[f+g>>2]|0;J[d>>2]=g;i:{if((g|0)>2]){g=g+J[a+20>>2]|0}else{if((g|0)<=J[a+24>>2]){break i}g=g-J[a+20>>2]|0}J[d>>2]=g}d=f;g=J[a+8>>2];k=k+1|0;if((g|0)>(k|0)){continue}break}break e}Zc();C()}g=J[a+8>>2];if((g|0)<=0){break e}d=p<<2;m=d+c|0;p=b+d|0;d=(P(o-2|0,e)<<2)+b|0;i=J[q>>2];k=0;while(1){f=i;if((g|0)>0){f=J[q>>2];g=0;while(1){n=g<<2;r=J[n+d>>2];j=J[a+16>>2];j:{if((r|0)>(j|0)){J[f+n>>2]=j;break j}n=f+n|0;j=J[a+12>>2];if((j|0)>(r|0)){J[n>>2]=j;break j}J[n>>2]=r}g=g+1|0;if((g|0)>2]){continue}break}}g=k<<2;d=g+m|0;g=J[g+p>>2]-J[f+g>>2]|0;J[d>>2]=g;k:{if((g|0)>2]){g=g+J[a+20>>2]|0}else{if((g|0)<=J[a+24>>2]){break k}g=g-J[a+20>>2]|0}J[d>>2]=g}d=f;g=J[a+8>>2];k=k+1|0;if((g|0)>(k|0)){continue}break}}if((o|0)>2){continue}break}}if((e|0)>0){nk(h,0,t)}g=J[a+8>>2];if((g|0)>0){e=J[a+32>>2];k=0;d=h;while(1){f=e;if((g|0)>0){f=J[q>>2];g=0;while(1){o=g<<2;l=J[o+d>>2];i=J[a+16>>2];l:{if((l|0)>(i|0)){J[f+o>>2]=i;break l}o=f+o|0;i=J[a+12>>2];if((i|0)>(l|0)){J[o>>2]=i;break l}J[o>>2]=l}g=g+1|0;if((g|0)>2]){continue}break}}g=k<<2;d=g+c|0;g=J[b+g>>2]-J[f+g>>2]|0;J[d>>2]=g;m:{if((g|0)>2]){g=g+J[a+20>>2]|0}else{if((g|0)<=J[a+24>>2]){break m}g=g-J[a+20>>2]|0}J[d>>2]=g}d=f;g=J[a+8>>2];k=k+1|0;if((g|0)>(k|0)){continue}break}}fl(h);return 1}function lh(a,b){var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0;h=ia-32|0;ia=h;c=J[a+16>>2];J[a+20>>2]=c;a:{b:{c:{d:{e:{f:{g:{if((c|0)!=J[a+24>>2]){J[c>>2]=b;b=c+4|0;J[a+20>>2]=b;d=c;break g}d=ll(4);J[d>>2]=b;b=d+4|0;J[a+24>>2]=b;J[a+20>>2]=b;J[a+16>>2]=d;if(c){break f}}c=J[a+8>>2];c=J[c+100>>2]-J[c+96>>2]|0;break e}fl(c);b=J[a+20>>2];d=J[a+16>>2];if((b|0)==(d|0)){break d}c=J[a+8>>2];c=J[c+100>>2]-J[c+96>>2]|0}if((c|0)>0){s=a+120|0;k=a+200|0;c=(c|0)/12|0;t=(c|0)<=1?1:c;while(1){h:{i:{d=b-4|0;b=J[d>>2];if((b|0)==-1){break i}c=(b>>>0)/3|0;if(J[J[a+28>>2]+(c>>>3&268435452)>>2]>>>c&1){break i}m=0;while(1){J[a+164>>2]=J[a+164>>2]+1;e=b;g=(b>>>0)/3|0;f=(b|0)==-1;n=f?-1:g;b=J[a+28>>2]+(n>>>3&536870908)|0;J[b>>2]=J[b>>2]|1<>2];j:{if((b|0)!=J[a+80>>2]){J[b>>2]=e;J[a+76>>2]=b+4;break j}j=J[a+72>>2];i=b-j|0;c=i>>2;d=c+1|0;if(d>>>0>1073741823){break c}b=i>>1;d=i>>>0>=2147483644?1073741823:b>>>0>d>>>0?b:d;if(d){if(d>>>0>1073741823){break a}b=ll(d<<2)}else{b=0}c=b+(c<<2)|0;J[c>>2]=e;if((i|0)>0){lk(b,j,i)}J[a+80>>2]=b+(d<<2);J[a+76>>2]=c+4;J[a+72>>2]=b;if(!j){break j}fl(j)}J[a+320>>2]=e;b=-1;l=J[a+12>>2];b=(e|0)!=-1?J[J[l>>2]+(e<<2)>>2]:b;i=b<<2;q=J[i+J[a+152>>2]>>2];k:{l:{d=J[a+84>>2]+(b>>>3&536870908)|0;c=J[d>>2];b=1<>2]=b|c;if((q|0)==-1){break l}}m:{if(f){break m}b=-1;c=e+1|0;f=(c>>>0)%3|0?c:e-2|0;if((f|0)!=-1){b=J[J[l+12>>2]+(f<<2)>>2]}j=(b>>>0)/3|0;o=e-P(g,3)|0;n:{o:{if(o){d=e-1|0;break o}d=e+2|0;c=-1;if((d|0)==-1){break n}}c=J[J[l+12>>2]+(d<<2)>>2]}p=(c|0)==-1;r=p?-1:(c>>>0)/3|0;p:{if((f|0)==-1){break p}g=J[l+12>>2];d=J[g+(f<<2)>>2];if((d|0)==-1){break p}f=J[a+28>>2];d=(d>>>0)/3|0;if(J[f+(d>>>3&268435452)>>2]>>>d&1){break p}q:{r:{if(o){d=e-1|0;break r}d=e+2|0;if((d|0)==-1){break q}}d=J[(d<<2)+g>>2];if((d|0)==-1){break q}d=(d>>>0)/3|0;if(J[f+(d>>>3&268435452)>>2]>>>d&1){break q}mh(k,1);J[a+168>>2]=J[a+168>>2]+1;s:{if((q|0)==-1){break s}d=J[J[a+152>>2]+i>>2];if(J[J[a+140>>2]+(d>>>3&536870908)>>2]>>>d&1){break s}Zg(a,e,0)}e=J[a+164>>2];J[h+4>>2]=n;d=h+4|0;J[h+16>>2]=d;dh(h+24|0,s,d,h+16|0);J[J[h+24>>2]+12>>2]=e;d=J[a+20>>2];J[d-4>>2]=c;if((d|0)!=J[a+24>>2]){J[d>>2]=b;J[a+20>>2]=d+4;break h}f=J[a+16>>2];g=d-f|0;d=g>>2;e=d+1|0;if(e>>>0>1073741823){break b}c=g>>1;e=g>>>0>=2147483644?1073741823:c>>>0>e>>>0?c:e;if(e){if(e>>>0>1073741823){break a}c=ll(e<<2)}else{c=0}d=c+(d<<2)|0;J[d>>2]=b;if((g|0)>0){lk(c,f,g)}J[a+24>>2]=c+(e<<2);J[a+20>>2]=d+4;J[a+16>>2]=c;if(!f){break h}fl(f);break h}if(!p){eh(a,J[a+164>>2],0,r)}mh(k,3);break k}b=(b|0)==-1;if(!b){eh(a,J[a+164>>2],1,b?-1:j)}t:{u:{if(o){b=e-1|0;break u}b=e+2|0;if((b|0)==-1){break t}}b=J[J[J[a+12>>2]+12>>2]+(b<<2)>>2];if((b|0)==-1){break t}b=(b>>>0)/3|0;if(J[J[a+28>>2]+(b>>>3&268435452)>>2]>>>b&1){break t}mh(k,5);b=c;break k}if(p){break m}eh(a,J[a+164>>2],0,r)}mh(k,7);J[a+20>>2]=J[a+20>>2]-4;break h}mh(k,0);b=-1;if((e|0)==-1){break k}c=e+1|0;c=(c>>>0)%3|0?c:e-2|0;if((c|0)==-1){break k}b=J[J[J[a+12>>2]+12>>2]+(c<<2)>>2]}m=m+1|0;if((t|0)!=(m|0)){continue}break}break h}J[a+20>>2]=d}b=J[a+20>>2];if((b|0)!=J[a+16>>2]){continue}break}break d}f=J[a+28>>2];while(1){c=b-4|0;e=J[c>>2];v:{if((e|0)!=-1){e=(e>>>0)/3|0;if(!(J[f+(e>>>3&268435452)>>2]>>>e&1)){break v}}J[a+20>>2]=c;b=c}if((b|0)!=(d|0)){continue}break}}ia=h+32|0;return 1}La();C()}La();C()}$a();C()}function Qa(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=Q(0),f=0,g=0,h=0,i=0,j=0,k=0,l=Q(0),m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0;if(J[c>>2]==J[c+4>>2]){h=J[d+80>>2];u=ia-16|0;ia=u;q=J[a+4>>2];i=K[b+24|0];j=J[d+48>>2];d=J[J[d>>2]>>2];c=u+8|0;J[c>>2]=1065353216;N[c>>2]=Q(-1<>2];s=ll(i<<2);a:{if(!h|!i){break a}t=d+j|0;l=N[c>>2];k=J[a+8>>2];w=J[b>>2];c=J[b+48>>2];n=J[b+44>>2];v=J[b+40>>2];if(!K[b+84|0]){r=J[b+68>>2];q=i&254;j=i&1;a=0;while(1){d=J[w>>2];b=Zl(v,n,J[r+(o<<2)>>2],0)+c|0;p=lk(s,d+b|0,v);b=0;m=0;if((i|0)!=1){while(1){d=t+(a<<2)|0;g=b<<2;e=Q(V(Q(Q(l*Q(N[g+p>>2]-N[k+g>>2]))+Q(.5))));b:{if(Q(R(e))>2]=f;f=g|4;e=Q(V(Q(Q(l*Q(N[f+p>>2]-N[f+k>>2]))+Q(.5))));c:{if(Q(R(e))>2]=f;b=b+2|0;a=a+2|0;m=m+2|0;if((q|0)!=(m|0)){continue}break}}if(j){d=t+(a<<2)|0;b=b<<2;e=Q(V(Q(Q(l*Q(N[b+p>>2]-N[b+k>>2]))+Q(.5))));d:{if(Q(R(e))>2]=b;a=a+1|0}o=o+1|0;if((h|0)!=(o|0)){continue}break}break a}r=i&254;q=i&1;a=0;while(1){d=J[w>>2];b=Zl(v,n,p,f)+c|0;o=lk(s,d+b|0,v);b=0;m=0;if((i|0)!=1){while(1){d=t+(a<<2)|0;g=b<<2;e=Q(V(Q(Q(l*Q(N[g+o>>2]-N[k+g>>2]))+Q(.5))));e:{if(Q(R(e))>2]=j;j=g|4;e=Q(V(Q(Q(l*Q(N[j+o>>2]-N[k+j>>2]))+Q(.5))));f:{if(Q(R(e))>2]=g;b=b+2|0;a=a+2|0;m=m+2|0;if((r|0)!=(m|0)){continue}break}}if(q){d=t+(a<<2)|0;b=b<<2;e=Q(V(Q(Q(l*Q(N[b+o>>2]-N[b+k>>2]))+Q(.5))));g:{if(Q(R(e))>2]=b;a=a+1|0}b=p+1|0;f=b?f:f+1|0;p=b;if((h|0)!=(b|0)|f){continue}break}}fl(s);ia=u+16|0;return 1}u=ia-16|0;ia=u;f=J[a+4>>2];n=K[b+24|0];j=J[d+48>>2];h=J[J[d>>2]>>2];d=u+8|0;J[d>>2]=1065353216;N[d>>2]=Q(-1<>2];t=ll(n<<2);f=J[c+4>>2];s=J[c>>2];h:{if(!n|(f|0)==(s|0)){break h}m=j+h|0;c=f-s>>2;w=c>>>0<=1?1:c;l=N[d>>2];i=J[a+8>>2];x=J[b>>2];d=J[b+48>>2];v=J[b+44>>2];p=J[b+40>>2];if(K[b+84|0]){q=n&254;j=n&1;a=0;c=0;while(1){f=J[x>>2];b=Zl(p,v,J[s+(c<<2)>>2],0)+d|0;g=lk(t,f+b|0,p);b=0;k=0;if((n|0)!=1){while(1){f=m+(a<<2)|0;r=b<<2;e=Q(V(Q(Q(l*Q(N[r+g>>2]-N[i+r>>2]))+Q(.5))));i:{if(Q(R(e))>2]=h;h=r|4;e=Q(V(Q(Q(l*Q(N[h+g>>2]-N[i+h>>2]))+Q(.5))));j:{if(Q(R(e))>2]=h;b=b+2|0;a=a+2|0;k=k+2|0;if((q|0)!=(k|0)){continue}break}}if(j){f=m+(a<<2)|0;b=b<<2;e=Q(V(Q(Q(l*Q(N[b+g>>2]-N[b+i>>2]))+Q(.5))));k:{if(Q(R(e))>2]=b;a=a+1|0}c=c+1|0;if((w|0)!=(c|0)){continue}break}break h}r=J[b+68>>2];q=n&254;j=n&1;a=0;c=0;while(1){f=J[x>>2];b=Zl(p,v,J[r+(J[s+(c<<2)>>2]<<2)>>2],0)+d|0;o=lk(t,f+b|0,p);b=0;k=0;if((n|0)!=1){while(1){f=m+(a<<2)|0;g=b<<2;e=Q(V(Q(Q(l*Q(N[g+o>>2]-N[i+g>>2]))+Q(.5))));l:{if(Q(R(e))>2]=h;h=g|4;e=Q(V(Q(Q(l*Q(N[h+o>>2]-N[i+h>>2]))+Q(.5))));m:{if(Q(R(e))>2]=g;b=b+2|0;a=a+2|0;k=k+2|0;if((q|0)!=(k|0)){continue}break}}if(j){f=m+(a<<2)|0;b=b<<2;e=Q(V(Q(Q(l*Q(N[b+o>>2]-N[b+i>>2]))+Q(.5))));n:{if(Q(R(e))>2]=b;a=a+1|0}c=c+1|0;if((w|0)!=(c|0)){continue}break}}fl(t);ia=u+16|0;return 1}function Le(a,b,c){var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0;k=ia-16|0;ia=k;a:{if(!J[a+8>>2]){break a}e=J[a>>2];J[a>>2]=a+4;J[J[a+4>>2]+8>>2]=0;J[a+4>>2]=0;J[a+8>>2]=0;f=J[e+4>>2];e=f?f:e;if(!e){Oc(a,e);break a}h=J[e+8>>2];b:{if(!h){break b}f=J[h>>2];if((f|0)==(e|0)){J[h>>2]=0;d=h;f=J[d+4>>2];if(!f){break b}while(1){d=f;f=J[d>>2];if(f){continue}f=J[d+4>>2];if(f){continue}break}break b}J[h+4>>2]=0;d=h;if(!f){break b}while(1){d=f;f=J[d>>2];if(f){continue}f=J[d+4>>2];if(f){continue}break}}c:{if((b|0)==(c|0)){h=e;break c}f=b;while(1){h=d;J[k+12>>2]=e+28;J[k+8>>2]=e+16;b=f+16|0;d=J[k+8>>2];d:{if((b|0)==(d|0)){break d}i=K[b+11|0];g=i<<24>>24;if(H[d+11|0]>=0){if((g|0)>=0){g=J[b+4>>2];J[d>>2]=J[b>>2];J[d+4>>2]=g;J[d+8>>2]=J[b+8>>2];break d}vl(d,J[b>>2],J[b+4>>2]);break d}l=d;d=(g|0)<0;ul(l,d?J[b>>2]:b,d?J[b+4>>2]:i)}d=J[k+12>>2];g=b+12|0;if((d|0)!=(g|0)){e:{j=K[b+23|0];i=j<<24>>24;if(H[d+11|0]>=0){if((i|0)>=0){b=J[g+4>>2];J[d>>2]=J[g>>2];J[d+4>>2]=b;J[d+8>>2]=J[g+8>>2];break e}vl(d,J[b+12>>2],J[b+16>>2]);break e}l=d;d=(i|0)<0;ul(l,d?J[b+12>>2]:g,d?J[b+16>>2]:j)}}g=J[a+4>>2];f:{if(!g){b=a+4|0;d=b;break f}b=K[e+27|0];d=b<<24>>24<0;j=d?J[e+16>>2]:e+16|0;i=d?J[e+20>>2]:b;while(1){b=g;g=K[b+27|0];d=g<<24>>24<0;g:{h:{i:{g=d?J[b+20>>2]:g;l=g>>>0>>0?g:i;if(l){d=qk(j,d?J[b+16>>2]:b+16|0,l);if(d){break i}}if(g>>>0>i>>>0){break h}break g}if((d|0)>=0){break g}}d=b;g=J[b>>2];if(g){continue}break f}g=J[b+4>>2];if(g){continue}break}d=b+4|0}J[e+8>>2]=b;J[e>>2]=0;J[e+4>>2]=0;J[d>>2]=e;b=e;e=J[J[a>>2]>>2];if(e){J[a>>2]=e;b=J[d>>2]}Ye(J[a+4>>2],b);J[a+8>>2]=J[a+8>>2]+1;d=0;j:{if(!h){break j}e=J[h+8>>2];if(!e){break j}b=J[e>>2];if((h|0)==(b|0)){J[e>>2]=0;d=e;b=J[d+4>>2];if(!b){break j}while(1){d=b;b=J[b>>2];if(b){continue}b=J[d+4>>2];if(b){continue}break}break j}J[e+4>>2]=0;d=e;if(!b){break j}while(1){d=b;b=J[b>>2];if(b){continue}b=J[d+4>>2];if(b){continue}break}}e=J[f+4>>2];k:{if(e){while(1){b=e;e=J[b>>2];if(e){continue}break k}}while(1){b=J[f+8>>2];e=J[b>>2]!=(f|0);f=b;if(e){continue}break}}if(!h){break c}f=b;e=h;if((b|0)!=(c|0)){continue}break}}Oc(a,h);if(!d){break a}while(1){e=J[d+8>>2];if(e){d=e;continue}break}Oc(a,d)}if((b|0)!=(c|0)){while(1){f=ll(40);g=f+16|0;l:{if(H[b+27|0]>=0){d=J[b+20>>2];J[g>>2]=J[b+16>>2];J[g+4>>2]=d;J[g+8>>2]=J[b+24>>2];break l}sl(g,J[b+16>>2],J[b+20>>2])}d=a+4|0;e=f+28|0;m:{if(H[b+39|0]>=0){h=J[b+32>>2];J[e>>2]=J[b+28>>2];J[e+4>>2]=h;J[e+8>>2]=J[b+36>>2];break m}sl(e,J[b+28>>2],J[b+32>>2])}e=d;h=J[d>>2];n:{if(!h){break n}e=K[f+27|0];d=e<<24>>24<0;i=d?J[f+20>>2]:e;g=d?J[f+16>>2]:g;while(1){d=h;h=K[d+27|0];e=h<<24>>24<0;o:{p:{q:{h=e?J[d+20>>2]:h;j=h>>>0>>0?h:i;if(j){e=qk(g,e?J[d+16>>2]:d+16|0,j);if(e){break q}}if(h>>>0>i>>>0){break p}break o}if((e|0)>=0){break o}}e=d;h=J[d>>2];if(h){continue}break n}h=J[d+4>>2];if(h){continue}break}e=d+4|0}J[f+8>>2]=d;J[f>>2]=0;J[f+4>>2]=0;J[e>>2]=f;d=f;f=J[J[a>>2]>>2];if(f){J[a>>2]=f;d=J[e>>2]}Ye(J[a+4>>2],d);J[a+8>>2]=J[a+8>>2]+1;f=J[b+4>>2];r:{if(f){while(1){e=f;f=J[e>>2];if(f){continue}break r}}while(1){e=J[b+8>>2];d=J[e>>2]!=(b|0);b=e;if(d){continue}break}}b=e;if((c|0)!=(b|0)){continue}break}}ia=k+16|0}function ek(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0;a:{if((b|0)<0){break a}c=J[a+12>>2];d=J[a+8>>2];if(c-d>>2>>>0<=b>>>0){break a}e=d+(b<<2)|0;d=J[e>>2];i=J[d+60>>2];g=J[d+56>>2];d=e+4|0;b:{if((d|0)!=(c|0)){while(1){h=J[d>>2];J[d>>2]=0;f=J[e>>2];J[e>>2]=h;if(f){Mb(f)}e=e+4|0;d=d+4|0;if((d|0)!=(c|0)){continue}break}c=J[a+12>>2];if((e|0)==(c|0)){break b}}while(1){c=c-4|0;d=J[c>>2];J[c>>2]=0;if(d){Mb(d)}if((c|0)!=(e|0)){continue}break}}J[a+12>>2]=e;f=J[a+4>>2];c:{if(!f|(i|0)<0){break c}c=J[f+24>>2];d=J[f+28>>2];if((c|0)==(d|0)){break c}while(1){if((i|0)==J[J[c>>2]+24>>2]){e=c+4|0;i=J[f+28>>2];d:{if((e|0)!=(i|0)){while(1){h=J[e>>2];J[e>>2]=0;d=J[c>>2];J[c>>2]=h;if(d){Ki(d+12|0,J[d+16>>2]);Li(d,J[d+4>>2]);fl(d)}c=c+4|0;e=e+4|0;if((i|0)!=(e|0)){continue}break}e=J[f+28>>2];if((e|0)==(c|0)){break d}}while(1){e=e-4|0;d=J[e>>2];J[e>>2]=0;if(d){Ki(d+12|0,J[d+16>>2]);Li(d,J[d+4>>2]);fl(d)}if((c|0)!=(e|0)){continue}break}}J[f+28>>2]=c;break c}c=c+4|0;if((d|0)!=(c|0)){continue}break}}e:{if((g|0)>4){break e}f:{e=P(g,12)+a|0;c=J[e+20>>2];d=J[e+24>>2];if((c|0)==(d|0)){break f}while(1){if(J[c>>2]==(b|0)){break f}c=c+4|0;if((d|0)!=(c|0)){continue}break}break e}if((c|0)==(d|0)){break e}f=c+4|0;i=d-f|0;if((d|0)!=(f|0)){mk(c,f,i)}J[e+24>>2]=c+i}c=J[a+24>>2];e=J[a+20>>2];g:{if((c|0)==(e|0)){break g}d=c-e|0;c=d>>2;f=c>>>0<=1?1:c;i=f&1;c=0;if(d>>>0>=8){f=f&-2;d=0;while(1){g=c<<2;h=g+e|0;j=J[h>>2];if((j|0)>(b|0)){J[h>>2]=j-1}g=e+(g|4)|0;h=J[g>>2];if((h|0)>(b|0)){J[g>>2]=h-1}c=c+2|0;d=d+2|0;if((f|0)!=(d|0)){continue}break}}if(!i){break g}c=e+(c<<2)|0;d=J[c>>2];if((d|0)<=(b|0)){break g}J[c>>2]=d-1}c=J[a+36>>2];e=J[a+32>>2];h:{if((c|0)==(e|0)){break h}d=c-e|0;c=d>>2;f=c>>>0<=1?1:c;i=f&1;c=0;if(d>>>0>=8){f=f&-2;d=0;while(1){g=c<<2;h=g+e|0;j=J[h>>2];if((j|0)>(b|0)){J[h>>2]=j-1}g=e+(g|4)|0;h=J[g>>2];if((h|0)>(b|0)){J[g>>2]=h-1}c=c+2|0;d=d+2|0;if((f|0)!=(d|0)){continue}break}}if(!i){break h}c=e+(c<<2)|0;d=J[c>>2];if((d|0)<=(b|0)){break h}J[c>>2]=d-1}c=J[a+48>>2];e=J[a+44>>2];i:{if((c|0)==(e|0)){break i}d=c-e|0;c=d>>2;f=c>>>0<=1?1:c;i=f&1;c=0;if(d>>>0>=8){f=f&-2;d=0;while(1){g=c<<2;h=g+e|0;j=J[h>>2];if((j|0)>(b|0)){J[h>>2]=j-1}g=e+(g|4)|0;h=J[g>>2];if((h|0)>(b|0)){J[g>>2]=h-1}c=c+2|0;d=d+2|0;if((f|0)!=(d|0)){continue}break}}if(!i){break i}c=e+(c<<2)|0;d=J[c>>2];if((d|0)<=(b|0)){break i}J[c>>2]=d-1}c=J[a+60>>2];e=J[a+56>>2];j:{if((c|0)==(e|0)){break j}d=c-e|0;c=d>>2;f=c>>>0<=1?1:c;i=f&1;c=0;if(d>>>0>=8){f=f&-2;d=0;while(1){g=c<<2;h=g+e|0;j=J[h>>2];if((j|0)>(b|0)){J[h>>2]=j-1}g=e+(g|4)|0;h=J[g>>2];if((h|0)>(b|0)){J[g>>2]=h-1}c=c+2|0;d=d+2|0;if((f|0)!=(d|0)){continue}break}}if(!i){break j}c=e+(c<<2)|0;d=J[c>>2];if((d|0)<=(b|0)){break j}J[c>>2]=d-1}c=J[a+72>>2];a=J[a+68>>2];if((c|0)==(a|0)){break a}d=c-a|0;c=d>>2;e=c>>>0<=1?1:c;f=e&1;c=0;if(d>>>0>=8){e=e&-2;d=0;while(1){i=c<<2;g=i+a|0;h=J[g>>2];if((h|0)>(b|0)){J[g>>2]=h-1}i=a+(i|4)|0;g=J[i>>2];if((g|0)>(b|0)){J[i>>2]=g-1}c=c+2|0;d=d+2|0;if((e|0)!=(d|0)){continue}break}}if(!f){break a}d=b;a=a+(c<<2)|0;b=J[a>>2];if((d|0)>=(b|0)){break a}J[a>>2]=b-1}}function Qk(a,b,c,d,e,f,g,h,i){var j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0;k=ia-112|0;ia=k;l=i&2147483647;j=e&2147483647;m=j;a:{b:{o=!(b|c);if(!(d|j?j-2147418112>>>0<2147549184:o)){n=l-2147418112|0;if(!h&(n|0)==-2147418112?f|g:(n|0)==-2147418112&(h|0)!=0|n>>>0>2147549184){break b}}if(!(!d&(m|0)==2147418112?o:m>>>0<2147418112)){h=d;i=e|32768;f=b;g=c;break a}if(!(!h&(l|0)==2147418112?!(f|g):l>>>0<2147418112)){i=i|32768;break a}if(!(b|d|(m^2147418112|c))){j=d;d=!(b^f|d^h|(c^g|e^i^-2147483648));h=d?0:j;i=d?2147450880:e;f=d?0:b;g=d?0:c;break a}if(!(f|h|(l^2147418112|g))){break a}if(!(b|d|(c|m))){if(f|h|(g|l)){break a}f=b&f;g=c&g;h=d&h;i=e&i;break a}if(f|h|(g|l)){break b}f=b;g=c;h=d;i=e;break a}j=(l|0)==(m|0);j=j&(d|0)==(h|0)?(c|0)==(g|0)&b>>>0>>0|c>>>0>>0:j&d>>>0>>0|l>>>0>m>>>0;p=j?f:b;m=j?g:c;l=j?i:e;s=l;q=j?h:d;o=l&65535;e=j?e:i;r=e;h=j?d:h;l=e>>>16&32767;n=s>>>16&32767;if(!n){d=!(o|q);e=d<<6;i=S(d?p:q)+32|0;d=S(d?m:o);d=e+((d|0)==32?i:d)|0;Rk(k+96|0,p,m,q,o,d-15|0);q=J[k+104>>2];o=J[k+108>>2];p=J[k+96>>2];n=16-d|0;m=J[k+100>>2]}f=j?b:f;g=j?c:g;i=r&65535;if(!l){b=!(h|i);c=b<<6;d=S(b?f:h)+32|0;b=S(b?g:i);b=c+((b|0)==32?d:b)|0;Rk(k+80|0,f,g,h,i,b-15|0);l=16-b|0;h=J[k+88>>2];i=J[k+92>>2];g=J[k+84>>2];f=J[k+80>>2]}c=h;b=i<<3|c>>>29;d=c<<3;c=b;b=g>>>29|d;c=c|524288;d=q;j=o<<3|d>>>29;h=d<<3|m>>>29;i=j;r=r^s;d=f;e=g<<3|d>>>29;d=d<<3;c:{if((l|0)==(n|0)){break c}f=n-l|0;if(f>>>0>127){b=0;c=0;e=0;d=1;break c}Rk(k- -64|0,d,e,b,c,128-f|0);Yk(k+48|0,d,e,b,c,f);b=J[k+56>>2];c=J[k+60>>2];e=J[k+52>>2];d=J[k+48>>2]|(J[k+64>>2]|J[k+72>>2]|(J[k+68>>2]|J[k+76>>2]))!=0}l=d;o=e;j=h;q=i|524288;d=p;e=m<<3|d>>>29;m=d<<3;p=e;d:{if((r|0)<0){f=0;g=0;h=0;i=0;if(!(l^m|b^j|(o^p|c^q))){break a}d=m-l|0;e=p-((l>>>0>m>>>0)+o|0)|0;c=q-((b>>>0>j>>>0)+c|0)|0;f=j-b|0;b=(o|0)==(p|0)&l>>>0>m>>>0|o>>>0>p>>>0;i=c-(f>>>0>>0)|0;h=f-b|0;if(i>>>0>524287){break d}b=!(h|i);c=b<<6;f=S(b?d:h)+32|0;b=S(b?e:i);b=c+((b|0)==32?f:b)|0;b=b-12|0;Rk(k+32|0,d,e,h,i,b);n=n-b|0;h=J[k+40>>2];i=J[k+44>>2];d=J[k+32>>2];e=J[k+36>>2];break d}e=o+p|0;d=l+m|0;e=d>>>0>>0?e+1|0:e;f=b;b=j;f=f+b|0;j=c+q|0;j=b>>>0>f>>>0?j+1|0:j;c=f;b=c+((e|0)==(o|0)&d>>>0>>0|e>>>0>>0)|0;h=b;i=b>>>0>>0?j+1|0:j;if(!(i&1048576)){break d}c=h;j=c<<31;d=l&1|((e&1)<<31|d>>>1);e=j|e>>>1;n=n+1|0;h=(i&1)<<31|c>>>1;i=i>>>1|0}c=0;m=s&-2147483648;if((n|0)>=32767){h=c;i=m|2147418112;f=0;g=0;break a}l=0;e:{if((n|0)>0){l=n;break e}Rk(k+16|0,d,e,h,i,n+127|0);Yk(k,d,e,h,i,1-n|0);d=J[k>>2]|(J[k+16>>2]|J[k+24>>2]|(J[k+20>>2]|J[k+28>>2]))!=0;e=J[k+4>>2];h=J[k+8>>2];i=J[k+12>>2]}j=h<<29;o=(e&7)<<29|d>>>3;f=o;n=d&7;d=f+(n>>>0>4)|0;b=e>>>3|j;e=d>>>0>>0?b+1|0:b;f=d;c=c|((i&7)<<29|h>>>3);g=e;b=c+((b|0)==(e|0)&d>>>0>>0|b>>>0>e>>>0)|0;i=m|(i>>>3&65535|l<<16);i=b>>>0>>0?i+1|0:i;h=b;f:{if((n|0)==4){c=0;j=g+c|0;d=f&1;b=f+d|0;j=b>>>0>>0?j+1|0:j;f=b;g=j;c=(c|0)==(j|0)&b>>>0>>0|c>>>0>j>>>0;b=c+h|0;i=b>>>0>>0?i+1|0:i;h=b;break f}if(!n){break a}}}J[a>>2]=f;J[a+4>>2]=g;J[a+8>>2]=h;J[a+12>>2]=i;ia=k+112|0}function fl(a){a=a|0;var b=0,c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0;a:{if(!a){break a}d=a-8|0;b=J[a-4>>2];a=b&-8;f=d+a|0;b:{if(b&1){break b}if(!(b&3)){break a}b=J[d>>2];d=d-b|0;if(d>>>0>>0<=255){e=J[d+8>>2];b=b>>>3|0;c=J[d+12>>2];if((c|0)==(e|0)){i=19560,j=J[4890]&bm(b),J[i>>2]=j;break b}J[e+12>>2]=c;J[c+8>>2]=e;break b}h=J[d+24>>2];b=J[d+12>>2];c:{if((d|0)!=(b|0)){c=J[d+8>>2];J[c+12>>2]=b;J[b+8>>2]=c;break c}d:{e=d+20|0;c=J[e>>2];if(c){break d}e=d+16|0;c=J[e>>2];if(c){break d}b=0;break c}while(1){g=e;b=c;e=b+20|0;c=J[e>>2];if(c){continue}e=b+16|0;c=J[b+16>>2];if(c){continue}break}J[g>>2]=0}if(!h){break b}e=J[d+28>>2];c=(e<<2)+19864|0;e:{if(J[c>>2]==(d|0)){J[c>>2]=b;if(b){break e}i=19564,j=J[4891]&bm(e),J[i>>2]=j;break b}J[h+(J[h+16>>2]==(d|0)?16:20)>>2]=b;if(!b){break b}}J[b+24>>2]=h;c=J[d+16>>2];if(c){J[b+16>>2]=c;J[c+24>>2]=b}c=J[d+20>>2];if(!c){break b}J[b+20>>2]=c;J[c+24>>2]=b;break b}b=J[f+4>>2];if((b&3)!=3){break b}J[4892]=a;J[f+4>>2]=b&-2;J[d+4>>2]=a|1;J[a+d>>2]=a;return}if(d>>>0>=f>>>0){break a}b=J[f+4>>2];if(!(b&1)){break a}f:{if(!(b&2)){if(J[4896]==(f|0)){J[4896]=d;a=J[4893]+a|0;J[4893]=a;J[d+4>>2]=a|1;if(J[4895]!=(d|0)){break a}J[4892]=0;J[4895]=0;return}if(J[4895]==(f|0)){J[4895]=d;a=J[4892]+a|0;J[4892]=a;J[d+4>>2]=a|1;J[a+d>>2]=a;return}a=(b&-8)+a|0;g:{if(b>>>0<=255){e=J[f+8>>2];b=b>>>3|0;c=J[f+12>>2];if((c|0)==(e|0)){i=19560,j=J[4890]&bm(b),J[i>>2]=j;break g}J[e+12>>2]=c;J[c+8>>2]=e;break g}h=J[f+24>>2];b=J[f+12>>2];h:{if((f|0)!=(b|0)){c=J[f+8>>2];J[c+12>>2]=b;J[b+8>>2]=c;break h}i:{e=f+20|0;c=J[e>>2];if(c){break i}e=f+16|0;c=J[e>>2];if(c){break i}b=0;break h}while(1){g=e;b=c;e=b+20|0;c=J[e>>2];if(c){continue}e=b+16|0;c=J[b+16>>2];if(c){continue}break}J[g>>2]=0}if(!h){break g}e=J[f+28>>2];c=(e<<2)+19864|0;j:{if(J[c>>2]==(f|0)){J[c>>2]=b;if(b){break j}i=19564,j=J[4891]&bm(e),J[i>>2]=j;break g}J[h+(J[h+16>>2]==(f|0)?16:20)>>2]=b;if(!b){break g}}J[b+24>>2]=h;c=J[f+16>>2];if(c){J[b+16>>2]=c;J[c+24>>2]=b}c=J[f+20>>2];if(!c){break g}J[b+20>>2]=c;J[c+24>>2]=b}J[d+4>>2]=a|1;J[a+d>>2]=a;if(J[4895]!=(d|0)){break f}J[4892]=a;return}J[f+4>>2]=b&-2;J[d+4>>2]=a|1;J[a+d>>2]=a}if(a>>>0<=255){b=(a&-8)+19600|0;c=J[4890];a=1<<(a>>>3);k:{if(!(c&a)){J[4890]=a|c;a=b;break k}a=J[b+8>>2]}J[b+8>>2]=d;J[a+12>>2]=d;J[d+12>>2]=b;J[d+8>>2]=a;return}e=31;if(a>>>0<=16777215){b=a>>>8|0;g=b+1048320>>>16&8;b=b<>>16&4;b=b<>>16&2;b=(b<>>15|0)-(c|(e|g))|0;e=(b<<1|a>>>b+21&1)+28|0}J[d+28>>2]=e;J[d+16>>2]=0;J[d+20>>2]=0;g=(e<<2)+19864|0;l:{m:{c=J[4891];b=1<>2]=d;J[d+24>>2]=g;break n}e=a<<((e|0)!=31?25-(e>>>1|0)|0:0);b=J[g>>2];while(1){c=b;if((J[b+4>>2]&-8)==(a|0)){break m}b=e>>>29|0;e=e<<1;g=c+(b&4)|0;b=J[g+16>>2];if(b){continue}break}J[g+16>>2]=d;J[d+24>>2]=c}J[d+12>>2]=d;J[d+8>>2]=d;break l}a=J[c+8>>2];J[a+12>>2]=d;J[c+8>>2]=d;J[d+24>>2]=0;J[d+12>>2]=c;J[d+8>>2]=a}a=J[4898]-1|0;J[4898]=a?a:-1}}function qe(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0;k=ia-48|0;ia=k;d=J[a+8>>2];if(d-31>>>0>=4294967267){J[a+76>>2]=d;e=-1<>2]=d;J[a+80>>2]=e^-1;J[a+92>>2]=(d|0)/2;N[a+88>>2]=Q(2)/Q(d|0)}J[a+52>>2]=f;o=a+96|0;Ee(o);d=J[a+40>>2];e=J[d>>2];d=J[d+4>>2];J[k+16>>2]=0;J[k+8>>2]=0;J[k+12>>2]=0;a:{d=d-e|0;if((d|0)>0){p=a+8|0;q=a+44|0;d=d>>>2|0;r=d>>>0<=1?1:d;s=c+4|0;while(1){e=J[a+40>>2];d=J[e>>2];if(J[e+4>>2]-d>>2>>>0<=n>>>0){break a}Id(q,J[d+(n<<2)>>2],k+8|0);f=J[k+12>>2];d=f>>31;e=J[k+8>>2];i=e>>31;l=J[k+16>>2];g=l>>31;g=(g^l)-g|0;i=g+((d^f)-d+((e^i)-i)|0)|0;d=0;d=g>>>0>i>>>0?1:d;b:{if(!(d|i)){j=J[a+92>>2];h=j;break b}j=J[a+92>>2];m=j>>31;f=_l(Zl(j,m,f,f>>31),ma,i,d);g=f>>31;h=_l(Zl(j,m,e,e>>31),ma,i,d);d=h>>31;d=(f^g)-g+((d^h)-d)|0;l=(l|0)<0?d-j|0:j-d|0}c:{if((h|0)>=0){i=f+j|0;g=j+l|0;break c}d:{if((f|0)<0){d=l>>31;i=(d^l)-d|0;break d}d=l>>31;i=J[a+84>>2]+(d-(d^l)|0)|0}if((l|0)<0){d=f>>31;g=(d^f)-d|0;break c}d=f>>31;g=J[a+84>>2]+(d-(d^f)|0)|0}d=J[a+84>>2];m=d;e=d;e:{if(!(g|i)){break e}if(!((d|0)!=(g|0)|i)){m=g;e=g;break e}if(!((d|0)!=(i|0)|g)){m=i;e=i;break e}if(!((g|0)<=(j|0)|i)){m=(j<<1)-g|0;e=0;break e}if(!((d|0)!=(i|0)|(g|0)>=(j|0))){m=(j<<1)-g|0;e=i;break e}if(!((d|0)!=(g|0)|(i|0)>=(j|0))){m=g;e=(j<<1)-i|0;break e}if(g){m=g;e=i;break e}m=0;e=i;if((e|0)<=(j|0)){break e}e=(j<<1)-i|0}i=e;J[k+16>>2]=0-l;J[k+12>>2]=0-f;J[k+8>>2]=0-h;f:{if((h|0)<=0){h=j-l|0;e=j-f|0;break f}e=f>>31;e=(e^f)-e|0;h=(l|0)>0?e:d-e|0;e=l>>31;e=(e^l)-e|0;e=(f|0)>0?e:d-e|0}g:{if(!(e|h)){h=d;break g}if(!((d|0)!=(h|0)|e)){h=d;break g}f=(d|0)!=(e|0);if(!(h|f)){h=d;break g}if(!((h|0)<=(j|0)|e)){h=(j<<1)-h|0;d=0;break g}if(!((h|0)>=(j|0)|f)){h=(j<<1)-h|0;break g}if(!((d|0)!=(h|0)|(e|0)>=(j|0))){h=d;d=(j<<1)-e|0;break g}if(h){d=e;break g}h=0;if((e|0)<=(j|0)){d=e;break g}d=(j<<1)-e|0}e=(n<<3)+b|0;f=J[e>>2];g=J[e+4>>2];J[k+28>>2]=m;J[k+24>>2]=i;J[k+32>>2]=f;J[k+36>>2]=g;i=k+40|0;g=k+32|0;m=k+24|0;Sd(i,p,g,m);f=J[k+44>>2];l=J[k+40>>2];j=J[e>>2];e=J[e+4>>2];J[k+28>>2]=h;J[k+24>>2]=d;J[k+32>>2]=j;J[k+36>>2]=e;Sd(i,p,g,m);d=J[k+44>>2];h=J[k+40>>2];e=J[a+92>>2];h:{if((e|0)<(l|0)){l=l-J[a+80>>2]|0;break h}if((0-e|0)<=(l|0)){break h}l=J[a+80>>2]+l|0}i:{if((e|0)<(f|0)){f=f-J[a+80>>2]|0;break i}if((0-e|0)<=(f|0)){break i}f=J[a+80>>2]+f|0}j:{if((e|0)<(h|0)){h=h-J[a+80>>2]|0;break j}if((0-e|0)<=(h|0)){break j}h=J[a+80>>2]+h|0}i=n<<1;k:{if((d|0)>(e|0)){d=d-J[a+80>>2]|0;break k}if((0-e|0)<=(d|0)){break k}d=J[a+80>>2]+d|0}e=f>>31;e=(e^f)-e|0;g=l>>31;g=(g^l)-g|0;e=g>>>0>(e^2147483647)>>>0?2147483647:e+g|0;g=d>>31;g=(g^d)-g|0;m=h>>31;m=(m^h)-m|0;g=m>>>0>(g^2147483647)>>>0?2147483647:g+m|0;Fe(o,e>>>0>=g>>>0);i=i<<2;e=e>>>0>>0;g=e?l:h;J[i+c>>2]=(J[a+80>>2]&g>>31)+g;d=e?f:d;J[i+s>>2]=(J[a+80>>2]&d>>31)+d;n=n+1|0;if((r|0)!=(n|0)){continue}break}}ia=k+48|0;return 1}Zc();C()}function ge(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0;k=ia-48|0;ia=k;d=J[a+8>>2];if(d-31>>>0>=4294967267){J[a+76>>2]=d;e=-1<>2]=d;J[a+80>>2]=e^-1;J[a+92>>2]=(d|0)/2;N[a+88>>2]=Q(2)/Q(d|0)}J[a+52>>2]=f;o=a+96|0;Ee(o);d=J[a+40>>2];e=J[d>>2];d=J[d+4>>2];J[k+16>>2]=0;J[k+8>>2]=0;J[k+12>>2]=0;a:{d=d-e|0;if((d|0)>0){p=a+8|0;q=a+44|0;d=d>>>2|0;r=d>>>0<=1?1:d;s=c+4|0;while(1){e=J[a+40>>2];d=J[e>>2];if(J[e+4>>2]-d>>2>>>0<=n>>>0){break a}ud(q,J[d+(n<<2)>>2],k+8|0);f=J[k+12>>2];d=f>>31;e=J[k+8>>2];i=e>>31;l=J[k+16>>2];g=l>>31;g=(g^l)-g|0;i=g+((d^f)-d+((e^i)-i)|0)|0;d=0;d=g>>>0>i>>>0?1:d;b:{if(!(d|i)){j=J[a+92>>2];h=j;break b}j=J[a+92>>2];m=j>>31;f=_l(Zl(j,m,f,f>>31),ma,i,d);g=f>>31;h=_l(Zl(j,m,e,e>>31),ma,i,d);d=h>>31;d=(f^g)-g+((d^h)-d)|0;l=(l|0)<0?d-j|0:j-d|0}c:{if((h|0)>=0){i=f+j|0;g=j+l|0;break c}d:{if((f|0)<0){d=l>>31;i=(d^l)-d|0;break d}d=l>>31;i=J[a+84>>2]+(d-(d^l)|0)|0}if((l|0)<0){d=f>>31;g=(d^f)-d|0;break c}d=f>>31;g=J[a+84>>2]+(d-(d^f)|0)|0}d=J[a+84>>2];m=d;e=d;e:{if(!(g|i)){break e}if(!((d|0)!=(g|0)|i)){m=g;e=g;break e}if(!((d|0)!=(i|0)|g)){m=i;e=i;break e}if(!((g|0)<=(j|0)|i)){m=(j<<1)-g|0;e=0;break e}if(!((d|0)!=(i|0)|(g|0)>=(j|0))){m=(j<<1)-g|0;e=i;break e}if(!((d|0)!=(g|0)|(i|0)>=(j|0))){m=g;e=(j<<1)-i|0;break e}if(g){m=g;e=i;break e}m=0;e=i;if((e|0)<=(j|0)){break e}e=(j<<1)-i|0}i=e;J[k+16>>2]=0-l;J[k+12>>2]=0-f;J[k+8>>2]=0-h;f:{if((h|0)<=0){h=j-l|0;e=j-f|0;break f}e=f>>31;e=(e^f)-e|0;h=(l|0)>0?e:d-e|0;e=l>>31;e=(e^l)-e|0;e=(f|0)>0?e:d-e|0}g:{if(!(e|h)){h=d;break g}if(!((d|0)!=(h|0)|e)){h=d;break g}f=(d|0)!=(e|0);if(!(h|f)){h=d;break g}if(!((h|0)<=(j|0)|e)){h=(j<<1)-h|0;d=0;break g}if(!((h|0)>=(j|0)|f)){h=(j<<1)-h|0;break g}if(!((d|0)!=(h|0)|(e|0)>=(j|0))){h=d;d=(j<<1)-e|0;break g}if(h){d=e;break g}h=0;if((e|0)<=(j|0)){d=e;break g}d=(j<<1)-e|0}e=(n<<3)+b|0;f=J[e>>2];g=J[e+4>>2];J[k+28>>2]=m;J[k+24>>2]=i;J[k+32>>2]=f;J[k+36>>2]=g;i=k+40|0;g=k+32|0;m=k+24|0;Sd(i,p,g,m);f=J[k+44>>2];l=J[k+40>>2];j=J[e>>2];e=J[e+4>>2];J[k+28>>2]=h;J[k+24>>2]=d;J[k+32>>2]=j;J[k+36>>2]=e;Sd(i,p,g,m);d=J[k+44>>2];h=J[k+40>>2];e=J[a+92>>2];h:{if((e|0)<(l|0)){l=l-J[a+80>>2]|0;break h}if((0-e|0)<=(l|0)){break h}l=J[a+80>>2]+l|0}i:{if((e|0)<(f|0)){f=f-J[a+80>>2]|0;break i}if((0-e|0)<=(f|0)){break i}f=J[a+80>>2]+f|0}j:{if((e|0)<(h|0)){h=h-J[a+80>>2]|0;break j}if((0-e|0)<=(h|0)){break j}h=J[a+80>>2]+h|0}i=n<<1;k:{if((d|0)>(e|0)){d=d-J[a+80>>2]|0;break k}if((0-e|0)<=(d|0)){break k}d=J[a+80>>2]+d|0}e=f>>31;e=(e^f)-e|0;g=l>>31;g=(g^l)-g|0;e=g>>>0>(e^2147483647)>>>0?2147483647:e+g|0;g=d>>31;g=(g^d)-g|0;m=h>>31;m=(m^h)-m|0;g=m>>>0>(g^2147483647)>>>0?2147483647:g+m|0;Fe(o,e>>>0>=g>>>0);i=i<<2;e=e>>>0>>0;g=e?l:h;J[i+c>>2]=(J[a+80>>2]&g>>31)+g;d=e?f:d;J[i+s>>2]=(J[a+80>>2]&d>>31)+d;n=n+1|0;if((r|0)!=(n|0)){continue}break}}ia=k+48|0;return 1}Zc();C()}function bh(a,b){var c=0,d=0,e=0,f=0,g=0,h=0,i=0;c=J[a+8>>2];e=J[a+4>>2];if((c-e|0)/136>>>0>=b>>>0){a:{if(!b){break a}d=e;f=b&7;if(f){c=0;while(1){hh(d);d=d+136|0;c=c+1|0;if((f|0)!=(c|0)){continue}break}}e=P(b,136)+e|0;if((b-1&536870911)>>>0<7){break a}while(1){hh(d);hh(d+136|0);hh(d+272|0);hh(d+408|0);hh(d+544|0);hh(d+680|0);hh(d+816|0);hh(d+952|0);d=d+1088|0;if((e|0)!=(d|0)){continue}break}}J[a+4>>2]=e;return}b:{c:{d:{f=J[a>>2];h=(e-f|0)/136|0;d=h+b|0;if(d>>>0<31580642){e=0;c=(c-f|0)/136|0;f=c<<1;f=c>>>0>=15790320?31580641:d>>>0>>0?f:d;if(f){if(f>>>0>=31580642){break d}g=ll(P(f,136))}c=P(h,136)+g|0;d=c;h=b&7;if(h){d=c;while(1){hh(d);d=d+136|0;e=e+1|0;if((h|0)!=(e|0)){continue}break}}h=P(b,136)+c|0;if((b-1&536870911)>>>0>=7){while(1){hh(d);hh(d+136|0);hh(d+272|0);hh(d+408|0);hh(d+544|0);hh(d+680|0);hh(d+816|0);hh(d+952|0);d=d+1088|0;if((h|0)!=(d|0)){continue}break}}f=P(f,136)+g|0;d=J[a+4>>2];e=J[a>>2];if((d|0)==(e|0)){break c}while(1){c=c-136|0;d=d-136|0;b=d;J[c>>2]=J[b>>2];J[c+4>>2]=J[b+4>>2];J[c+8>>2]=J[b+8>>2];J[c+12>>2]=J[b+12>>2];J[b+12>>2]=0;J[b+4>>2]=0;J[b+8>>2]=0;J[c+16>>2]=J[b+16>>2];J[c+20>>2]=J[b+20>>2];J[c+24>>2]=J[b+24>>2];J[b+24>>2]=0;J[b+16>>2]=0;J[b+20>>2]=0;g=K[b+28|0];J[c+40>>2]=0;J[c+32>>2]=0;J[c+36>>2]=0;H[c+28|0]=g;J[c+32>>2]=J[b+32>>2];J[c+36>>2]=J[b+36>>2];J[c+40>>2]=J[b+40>>2];J[b+40>>2]=0;J[b+32>>2]=0;J[b+36>>2]=0;J[c+52>>2]=0;J[c+44>>2]=0;J[c+48>>2]=0;J[c+44>>2]=J[b+44>>2];J[c+48>>2]=J[b+48>>2];J[c+52>>2]=J[b+52>>2];J[b+52>>2]=0;J[b+44>>2]=0;J[b+48>>2]=0;g=c- -64|0;J[g>>2]=0;J[c+56>>2]=0;J[c+60>>2]=0;J[c+56>>2]=J[b+56>>2];J[c+60>>2]=J[b+60>>2];i=g;g=b- -64|0;J[i>>2]=J[g>>2];J[g>>2]=0;J[b+56>>2]=0;J[b+60>>2]=0;J[c+68>>2]=J[b+68>>2];g=J[b+72>>2];J[c+84>>2]=0;J[c+76>>2]=0;J[c+80>>2]=0;J[c+72>>2]=g;J[c+76>>2]=J[b+76>>2];J[c+80>>2]=J[b+80>>2];J[c+84>>2]=J[b+84>>2];J[b+84>>2]=0;J[b+76>>2]=0;J[b+80>>2]=0;J[c+96>>2]=0;J[c+88>>2]=0;J[c+92>>2]=0;J[c+88>>2]=J[b+88>>2];J[c+92>>2]=J[b+92>>2];J[c+96>>2]=J[b+96>>2];J[b+96>>2]=0;J[b+88>>2]=0;J[b+92>>2]=0;g=K[b+100|0];J[c+112>>2]=0;J[c+104>>2]=0;J[c+108>>2]=0;H[c+100|0]=g;J[c+104>>2]=J[b+104>>2];J[c+108>>2]=J[b+108>>2];J[c+112>>2]=J[b+112>>2];J[b+112>>2]=0;J[b+104>>2]=0;J[b+108>>2]=0;J[c+124>>2]=0;J[c+116>>2]=0;J[c+120>>2]=0;J[c+116>>2]=J[b+116>>2];J[c+120>>2]=J[b+120>>2];J[c+124>>2]=J[b+124>>2];J[b+124>>2]=0;J[b+116>>2]=0;J[b+120>>2]=0;J[c+128>>2]=J[b+128>>2];J[c+132>>2]=J[b+132>>2];if((b|0)!=(e|0)){continue}break}J[a+8>>2]=f;d=J[a+4>>2];J[a+4>>2]=h;e=J[a>>2];J[a>>2]=c;if((d|0)==(e|0)){break b}while(1){a=d-136|0;b=J[a+116>>2];if(b){J[d-16>>2]=b;fl(b)}b=J[d-32>>2];if(b){J[d-28>>2]=b;fl(b)}ch(d-132|0);d=a;if((e|0)!=(d|0)){continue}break}break b}La();C()}$a();C()}J[a+8>>2]=f;J[a+4>>2]=h;J[a>>2]=c}if(e){fl(e)}}function Qh(a,b){var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0;if((b|0)==-1){return 1}c=(b>>>0)/3|0;if(!(J[J[a+24>>2]+(c>>>3&268435452)>>2]>>>c&1)){d=J[a+48>>2];J[a+52>>2]=d;a:{if((d|0)!=J[a+56>>2]){J[d>>2]=b;J[a+52>>2]=d+4;break a}e=ll(4);J[e>>2]=b;f=e+4|0;J[a+56>>2]=f;J[a+52>>2]=f;J[a+48>>2]=e;if(!d){break a}fl(d)}f=J[J[a+4>>2]+28>>2];d=b+1|0;e=(d>>>0)%3|0?d:b-2|0;d=J[f+(e<<2)>>2];if((d|0)==-1){return 0}g=(b-P(c,3)|0?-1:2)+b|0;c=J[f+(g<<2)>>2];if((c|0)==-1){return 0}b=J[a+36>>2];f=b+(d>>>3&536870908)|0;h=J[f>>2];i=1<>2]=h|i;Bh(a+8|0,d,e);b=J[a+36>>2]}b=(c>>>3&536870908)+b|0;d=J[b>>2];e=1<>2]=d|e;Bh(a+8|0,c,g)}c=J[a+52>>2];if((c|0)==J[a+48>>2]){return 1}k=a+8|0;while(1){b:{c:{c=c-4|0;b=J[c>>2];if((b|0)==-1){break c}d=(b>>>0)/3|0;e=J[a+24>>2]+(d>>>3&268435452)|0;f=J[e>>2];d=1<>2]=d|f;e=J[a+4>>2];d=J[J[e+28>>2]+(b<<2)>>2];if((d|0)==-1){return 0}while(1){c=b;d:{e:{f=J[a+36>>2]+(d>>>3&536870908)|0;g=J[f>>2];h=1<>2]+(d<<2)>>2];g:{if((b|0)==-1){break g}i=b+1|0;b=(i>>>0)%3|0?i:b-2|0;if((b|0)==-1|J[J[e>>2]+(b>>>3&536870908)>>2]>>>b&1){break g}b=J[J[J[e+64>>2]+12>>2]+(b<<2)>>2];if((b|0)!=-1){break f}}J[f>>2]=g|h;Bh(k,d,c);break e}J[f>>2]=g|h;Bh(k,d,c);d=b+1|0;if((((d>>>0)%3|0?d:b-2|0)|0)==-1){break e}b=-1;e=J[a+4>>2];h:{if((c|0)==-1){break h}d=c+1|0;d=(d>>>0)%3|0?d:c-2|0;if((d|0)==-1|J[J[e>>2]+(d>>>3&536870908)>>2]>>>d&1){break h}b=J[J[J[e+64>>2]+12>>2]+(d<<2)>>2]}d=(b>>>0)/3|0;h=1<>2];i=d>>>5|0;f=J[c+(i<<2)>>2];break d}i:{j:{if((c|0)==-1){break j}d=-1;b=c+1|0;b=(b>>>0)%3|0?b:c-2|0;e=J[a+4>>2];if(!((b|0)==-1|J[J[e>>2]+(b>>>3&536870908)>>2]>>>b&1)){d=J[J[J[e+64>>2]+12>>2]+(b<<2)>>2]}k:{l:{if((c>>>0)%3|0){c=c-1|0;break l}c=c+2|0;b=-1;if((c|0)==-1){break k}}b=-1;if(J[J[e>>2]+(c>>>3&536870908)>>2]>>>c&1){break k}b=J[J[J[e+64>>2]+12>>2]+(c<<2)>>2]}j=(b|0)==-1;g=j?-1:(b>>>0)/3|0;if((d|0)!=-1){c=J[a+24>>2];h=(d>>>0)/3|0;i=h>>>5|0;f=J[c+(i<<2)>>2];h=1<>2];i=g>>>5|0;f=J[c+(i<<2)>>2];if(!(h&f)){break d}}c=J[a+52>>2]-4|0;J[a+52>>2]=c;break b}if(j){b=d;break d}if(J[(g>>>3&536870908)+c>>2]>>>g&1){b=d;break d}c=J[a+52>>2];J[c-4>>2]=b;if((c|0)!=J[a+56>>2]){J[c>>2]=d;c=c+4|0;break c}m:{f=J[a+48>>2];e=c-f|0;c=e>>2;b=c+1|0;if(b>>>0<1073741824){g=e>>1;g=e>>>0>=2147483644?1073741823:b>>>0>>0?g:b;if(g){if(g>>>0>=1073741824){break m}b=ll(g<<2)}else{b=0}c=b+(c<<2)|0;J[c>>2]=d;c=c+4|0;if((e|0)>0){lk(b,f,e)}J[a+56>>2]=b+(g<<2);J[a+52>>2]=c;J[a+48>>2]=b;if(!f){break b}fl(f);c=J[a+52>>2];break b}La();C()}$a();C()}J[(i<<2)+c>>2]=f|h;d=J[J[e+28>>2]+(b<<2)>>2];if((d|0)!=-1){continue}break}return 0}J[a+52>>2]=c}if(J[a+48>>2]!=(c|0)){continue}break}}return 1}function jh(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0;e=ia+-64|0;ia=e;a:{b:{c:{d:{if(!K[a+352|0]){break d}c=1;h=na[J[J[a>>2]+40>>2]](a)|0;if((J[h+12>>2]-J[h+8>>2]|0)<=0){break d}xb(J[J[(na[J[J[a>>2]+40>>2]](a)|0)+8>>2]>>2],b);break c}c=b<<2;f=J[c+J[J[(na[J[J[a>>2]+40>>2]](a)|0)+56>>2]+84>>2]>>2];i=J[c+J[J[(na[J[J[a>>2]+40>>2]](a)|0)+4>>2]+8>>2]>>2];h=-1;c=J[a+176>>2];d=J[a+172>>2];e:{if((c|0)==(d|0)){break e}c=(c-d|0)/136|0;g=c>>>0<=1?1:c;c=0;while(1){if(J[d+P(c,136)>>2]==(b|0)){h=c;break e}c=c+1|0;if((g|0)!=(c|0)){continue}break}}f:{g:{h:{i:{if(!K[a+352|0]){c=J[i+56>>2];if(!(!f|!c)){if(!K[(d+P(h,136)|0)+28|0]|(f|0)!=1){break i}break h}if(c){break h}}c=a+40|0;break g}d=d+P(h,136)|0;c=J[d+56>>2];f=J[d+60>>2];J[e>>2]=-1;Jg(d+116|0,f-c>>2,e);c=ll(80);f=J[a+8>>2];J[c+12>>2]=0;J[c+16>>2]=0;J[c>>2]=11984;J[c+4>>2]=0;J[c+20>>2]=0;J[c+24>>2]=0;J[c+28>>2]=0;J[c+32>>2]=0;J[c+36>>2]=0;J[c+40>>2]=0;J[c+44>>2]=0;J[c+48>>2]=0;J[c+52>>2]=0;J[c+76>>2]=0;i=d+104|0;J[c+72>>2]=i;J[c+68>>2]=f;J[c- -64>>2]=0;g=c+56|0;J[g>>2]=0;J[g+4>>2]=0;J[c+8>>2]=10884;J[e+40>>2]=0;J[e+44>>2]=0;J[e+32>>2]=0;J[e+36>>2]=0;j=e+24|0;J[j>>2]=0;J[j+4>>2]=0;J[e+16>>2]=0;J[e+20>>2]=0;J[e+56>>2]=0;J[e+8>>2]=0;J[e+12>>2]=0;J[e+48>>2]=0;J[e+52>>2]=0;J[e>>2]=10884;l=d+4|0;J[e+4>>2]=l;d=J[d+68>>2];k=J[d>>2];d=J[d+4>>2];H[e+63|0]=0;k=(d-k>>2>>>0)/3|0;d=e+63|0;Kg(j,k,d);j=J[e+4>>2];k=J[j+56>>2];j=J[j+52>>2];H[e+63|0]=0;Kg(e+36|0,k-j>>2,d);J[e+20>>2]=c;J[e+16>>2]=f;J[e+12>>2]=i;J[e+8>>2]=l;J[c+76>>2]=a+72;Lg(c+8|0,e);Mg(g,J[e+48>>2],J[e+52>>2]);J[e>>2]=10884;d=J[e+48>>2];if(d){J[e+52>>2]=d;fl(d)}J[e>>2]=11136;d=J[e+36>>2];if(d){fl(d)}d=J[e+24>>2];if(d){fl(d)}d=0;break f}c=J[a+12>>2];f=J[c+28>>2];c=J[c+24>>2];J[e>>2]=-1;k=d;d=P(h,136);g=k+d|0;Jg(g+116|0,f-c>>2,e);H[(d+J[a+172>>2]|0)+100|0]=0;c=g+104|0}d=0;j:{k:{if(Rb(J[(na[J[J[a>>2]+40>>2]](a)|0)+48>>2])|J[i+56>>2]){break k}if(!K[a+352|0]){d=1;c=Ng(a,c);break j}d=J[a+8>>2];f=J[d+12>>2]-J[d+8>>2]|0;d=(f|0)<5;if((f|0)>4){break k}c=Ng(a,c);break j}c=Og(a,c)}if(c){break f}c=0;break c}J[((h|0)==-1?a+68|0:(J[a+172>>2]+P(h,136)|0)+132|0)>>2]=d;i=tc(ll(76),c,b);b=J[a+188>>2];l:{if((b|0)!=J[a+192>>2]){J[b>>2]=h;J[a+188>>2]=b+4;break l}d=J[a+184>>2];c=b-d|0;g=c>>2;b=g+1|0;if(b>>>0>=1073741824){break b}f=c>>1;f=c>>>0>=2147483644?1073741823:b>>>0>>0?f:b;if(f){if(f>>>0>=1073741824){break a}b=ll(f<<2)}else{b=0}g=b+(g<<2)|0;J[g>>2]=h;if((c|0)>0){lk(b,d,c)}J[a+192>>2]=b+(f<<2);J[a+188>>2]=g+4;J[a+184>>2]=b;if(!d){break l}fl(d)}a=na[J[J[a>>2]+40>>2]](a)|0;J[e>>2]=i;b=J[a+12>>2];m:{if(b>>>0>2]){J[e>>2]=0;J[b>>2]=i;J[a+12>>2]=b+4;break m}Pg(a+8|0,e)}a=J[e>>2];J[e>>2]=0;if(a){na[J[J[a>>2]+4>>2]](a)}c=1}ia=e- -64|0;return c|0}La();C()}$a();C()}function Ig(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0;e=ia+-64|0;ia=e;a:{b:{c:{d:{if(!K[a+288|0]){break d}c=1;h=na[J[J[a>>2]+40>>2]](a)|0;if((J[h+12>>2]-J[h+8>>2]|0)<=0){break d}xb(J[J[(na[J[J[a>>2]+40>>2]](a)|0)+8>>2]>>2],b);break c}c=b<<2;f=J[c+J[J[(na[J[J[a>>2]+40>>2]](a)|0)+56>>2]+84>>2]>>2];i=J[c+J[J[(na[J[J[a>>2]+40>>2]](a)|0)+4>>2]+8>>2]>>2];h=-1;c=J[a+176>>2];d=J[a+172>>2];e:{if((c|0)==(d|0)){break e}c=(c-d|0)/136|0;g=c>>>0<=1?1:c;c=0;while(1){if(J[d+P(c,136)>>2]==(b|0)){h=c;break e}c=c+1|0;if((g|0)!=(c|0)){continue}break}}f:{g:{h:{i:{if(!K[a+288|0]){c=J[i+56>>2];if(!(!f|!c)){if(!K[(d+P(h,136)|0)+28|0]|(f|0)!=1){break i}break h}if(c){break h}}c=a+40|0;break g}d=d+P(h,136)|0;c=J[d+56>>2];f=J[d+60>>2];J[e>>2]=-1;Jg(d+116|0,f-c>>2,e);c=ll(80);f=J[a+8>>2];J[c+12>>2]=0;J[c+16>>2]=0;J[c>>2]=11984;J[c+4>>2]=0;J[c+20>>2]=0;J[c+24>>2]=0;J[c+28>>2]=0;J[c+32>>2]=0;J[c+36>>2]=0;J[c+40>>2]=0;J[c+44>>2]=0;J[c+48>>2]=0;J[c+52>>2]=0;J[c+76>>2]=0;i=d+104|0;J[c+72>>2]=i;J[c+68>>2]=f;J[c- -64>>2]=0;g=c+56|0;J[g>>2]=0;J[g+4>>2]=0;J[c+8>>2]=10884;J[e+40>>2]=0;J[e+44>>2]=0;J[e+32>>2]=0;J[e+36>>2]=0;j=e+24|0;J[j>>2]=0;J[j+4>>2]=0;J[e+16>>2]=0;J[e+20>>2]=0;J[e+56>>2]=0;J[e+8>>2]=0;J[e+12>>2]=0;J[e+48>>2]=0;J[e+52>>2]=0;J[e>>2]=10884;l=d+4|0;J[e+4>>2]=l;d=J[d+68>>2];k=J[d>>2];d=J[d+4>>2];H[e+63|0]=0;k=(d-k>>2>>>0)/3|0;d=e+63|0;Kg(j,k,d);j=J[e+4>>2];k=J[j+56>>2];j=J[j+52>>2];H[e+63|0]=0;Kg(e+36|0,k-j>>2,d);J[e+20>>2]=c;J[e+16>>2]=f;J[e+12>>2]=i;J[e+8>>2]=l;J[c+76>>2]=a+72;Lg(c+8|0,e);Mg(g,J[e+48>>2],J[e+52>>2]);J[e>>2]=10884;d=J[e+48>>2];if(d){J[e+52>>2]=d;fl(d)}J[e>>2]=11136;d=J[e+36>>2];if(d){fl(d)}d=J[e+24>>2];if(d){fl(d)}d=0;break f}c=J[a+12>>2];f=J[c+28>>2];c=J[c+24>>2];J[e>>2]=-1;k=d;d=P(h,136);g=k+d|0;Jg(g+116|0,f-c>>2,e);H[(d+J[a+172>>2]|0)+100|0]=0;c=g+104|0}d=0;j:{k:{if(Rb(J[(na[J[J[a>>2]+40>>2]](a)|0)+48>>2])|J[i+56>>2]){break k}if(!K[a+288|0]){d=1;c=Ng(a,c);break j}d=J[a+8>>2];f=J[d+12>>2]-J[d+8>>2]|0;d=(f|0)<5;if((f|0)>4){break k}c=Ng(a,c);break j}c=Og(a,c)}if(c){break f}c=0;break c}J[((h|0)==-1?a+68|0:(J[a+172>>2]+P(h,136)|0)+132|0)>>2]=d;i=tc(ll(76),c,b);b=J[a+188>>2];l:{if((b|0)!=J[a+192>>2]){J[b>>2]=h;J[a+188>>2]=b+4;break l}d=J[a+184>>2];c=b-d|0;g=c>>2;b=g+1|0;if(b>>>0>=1073741824){break b}f=c>>1;f=c>>>0>=2147483644?1073741823:b>>>0>>0?f:b;if(f){if(f>>>0>=1073741824){break a}b=ll(f<<2)}else{b=0}g=b+(g<<2)|0;J[g>>2]=h;if((c|0)>0){lk(b,d,c)}J[a+192>>2]=b+(f<<2);J[a+188>>2]=g+4;J[a+184>>2]=b;if(!d){break l}fl(d)}a=na[J[J[a>>2]+40>>2]](a)|0;J[e>>2]=i;b=J[a+12>>2];m:{if(b>>>0>2]){J[e>>2]=0;J[b>>2]=i;J[a+12>>2]=b+4;break m}Pg(a+8|0,e)}a=J[e>>2];J[e>>2]=0;if(a){na[J[J[a>>2]+4>>2]](a)}c=1}ia=e- -64|0;return c|0}La();C()}$a();C()}function fc(a){var b=0,c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0;f=ia-32|0;ia=f;a:{b:{c:{d:{b=J[a+16>>2];if(b>>>0>=113){J[a+16>>2]=b-113;b=J[a+4>>2];k=J[b>>2];c=b+4|0;J[a+4>>2]=c;b=J[a+8>>2];e:{if((b|0)!=J[a+12>>2]){d=b;break e}h=J[a>>2];if(h>>>0>>0){g=b-c|0;e=((c-h>>2)+1|0)/-2<<2;d=e+c|0;if((b|0)!=(c|0)){mk(d,c,g);c=J[a+4>>2]}d=d+g|0;J[a+8>>2]=d;J[a+4>>2]=c+e;break e}d=(b|0)==(h|0)?1:b-h>>1;if(d>>>0>=1073741824){break d}e=d<<2;i=ll(e);l=e+i|0;e=i+(d&-4)|0;d=e;f:{if((b|0)==(c|0)){break f}b=b-c|0;m=b&-4;j=b-4|0;g=(j>>>2|0)+1&7;g:{if(!g){b=e;break g}d=0;b=e;while(1){J[b>>2]=J[c>>2];c=c+4|0;b=b+4|0;d=d+1|0;if((g|0)!=(d|0)){continue}break}}d=e+m|0;if(j>>>0<28){break f}while(1){J[b>>2]=J[c>>2];J[b+4>>2]=J[c+4>>2];J[b+8>>2]=J[c+8>>2];J[b+12>>2]=J[c+12>>2];J[b+16>>2]=J[c+16>>2];J[b+20>>2]=J[c+20>>2];J[b+24>>2]=J[c+24>>2];J[b+28>>2]=J[c+28>>2];c=c+32|0;b=b+32|0;if((d|0)!=(b|0)){continue}break}}J[a+12>>2]=l;J[a+8>>2]=d;J[a+4>>2]=e;J[a>>2]=i;if(!h){break e}fl(h);d=J[a+8>>2]}J[d>>2]=k;J[a+8>>2]=J[a+8>>2]+4;break a}b=J[a+8>>2];d=b-J[a+4>>2]>>2;g=J[a+12>>2];c=J[a>>2];e=g-c|0;if(d>>>0>2>>>0){if((b|0)!=(g|0)){n=f,o=ll(4068),J[n+8>>2]=o;ic(a,f+8|0);break a}n=f,o=ll(4068),J[n+8>>2]=o;jc(a,f+8|0);b=J[a+4>>2];k=J[b>>2];c=b+4|0;J[a+4>>2]=c;b=J[a+8>>2];h:{if((b|0)!=J[a+12>>2]){d=b;break h}h=J[a>>2];if(h>>>0>>0){g=b-c|0;e=((c-h>>2)+1|0)/-2<<2;d=e+c|0;if((b|0)!=(c|0)){mk(d,c,g);c=J[a+4>>2]}d=d+g|0;J[a+8>>2]=d;J[a+4>>2]=c+e;break h}d=(b|0)==(h|0)?1:b-h>>1;if(d>>>0>=1073741824){break d}e=d<<2;i=ll(e);l=e+i|0;e=i+(d&-4)|0;d=e;i:{if((b|0)==(c|0)){break i}b=b-c|0;m=b&-4;j=b-4|0;g=(j>>>2|0)+1&7;j:{if(!g){b=e;break j}d=0;b=e;while(1){J[b>>2]=J[c>>2];c=c+4|0;b=b+4|0;d=d+1|0;if((g|0)!=(d|0)){continue}break}}d=e+m|0;if(j>>>0<28){break i}while(1){J[b>>2]=J[c>>2];J[b+4>>2]=J[c+4>>2];J[b+8>>2]=J[c+8>>2];J[b+12>>2]=J[c+12>>2];J[b+16>>2]=J[c+16>>2];J[b+20>>2]=J[c+20>>2];J[b+24>>2]=J[c+24>>2];J[b+28>>2]=J[c+28>>2];c=c+32|0;b=b+32|0;if((d|0)!=(b|0)){continue}break}}J[a+12>>2]=l;J[a+8>>2]=d;J[a+4>>2]=e;J[a>>2]=i;if(!h){break h}fl(h);d=J[a+8>>2]}J[d>>2]=k;J[a+8>>2]=J[a+8>>2]+4;break a}J[f+24>>2]=a+12;b=(c|0)==(g|0)?1:e>>1;if(b>>>0>=1073741824){break d}e=b<<2;c=ll(e);J[f+8>>2]=c;b=c+(d<<2)|0;J[f+16>>2]=b;J[f+20>>2]=c+e;J[f+12>>2]=b;n=f,o=ll(4068),J[n+4>>2]=o;ic(f+8|0,f+4|0);c=J[a+8>>2];if((c|0)==J[a+4>>2]){b=c;break b}while(1){c=c-4|0;jc(f+8|0,c);if(J[a+4>>2]!=(c|0)){continue}break}break c}$a();C()}b=J[a+8>>2]}d=J[a>>2];J[a>>2]=J[f+8>>2];J[f+8>>2]=d;J[a+4>>2]=J[f+12>>2];J[f+12>>2]=c;J[a+8>>2]=J[f+16>>2];J[f+16>>2]=b;e=J[a+12>>2];J[a+12>>2]=J[f+20>>2];J[f+20>>2]=e;if((b|0)!=(c|0)){J[f+16>>2]=b+((c-b|0)+3&-4)}if(!d){break a}fl(d)}ia=f+32|0}function mh(a,b){var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0;j=ia-16|0;ia=j;J[a+124>>2]=J[a+124>>2]+1;h=-1;d=J[a+120>>2];c=-1;a:{if((d|0)==-1){break a}c=d+1|0;h=(c>>>0)%3|0?c:d-2|0;c=d-1|0;if((d>>>0)%3|0){break a}c=d+2|0}e=J[a+104>>2];f=J[a+92>>2];g=f+(h<<2)|0;k=e+(J[g>>2]<<2)|0;i=J[k>>2];b:{c:{switch(b|0){case 0:case 1:J[k>>2]=i-1;d=(J[(c<<2)+f>>2]<<2)+e|0;J[d>>2]=J[d>>2]-1;if((b|0)!=1){break b}g=0;d:{if((c|0)==-1){d=0;break d}d=0;c=J[J[J[a+88>>2]+12>>2]+(c<<2)>>2];if((c|0)==-1){break d}while(1){e:{e=J[a+64>>2];if(na[J[J[e>>2]+36>>2]](e,(c>>>0)/3|0)|0){break e}d=d+1|0;e=c+1|0;c=(e>>>0)%3|0?e:c-2|0;if((c|0)==-1){break e}c=J[J[J[a+88>>2]+12>>2]+(c<<2)>>2];if((c|0)!=-1){continue}}break}e=J[a+104>>2];f=J[a+92>>2]}J[(J[(J[a+120>>2]<<2)+f>>2]<<2)+e>>2]=d+1;f:{if((h|0)==-1){break f}c=J[J[J[a+88>>2]+12>>2]+(h<<2)>>2];if((c|0)==-1){break f}e=J[a+108>>2]-e>>2;while(1){f=J[a+64>>2];d=(c>>>0)/3|0;if(na[J[J[f>>2]+36>>2]](f,d)|0){break f}f=c+1|0;J[J[a+92>>2]+(((f>>>0)%3|0?f:c-2|0)<<2)>>2]=e;g=g+1|0;f=J[a+88>>2];g:{if((P(d,3)|0)!=(c|0)){c=c-1|0;break g}c=c+2|0;if((c|0)==-1){break f}}c=J[J[f+12>>2]+(c<<2)>>2];if((c|0)!=-1){continue}break}}J[j+12>>2]=g+1;h:{c=J[a+108>>2];f=J[a+112>>2];if(c>>>0>>0){J[c>>2]=J[j+12>>2];J[a+108>>2]=c+4;break h}i:{e=J[a+104>>2];d=c-e|0;h=d>>2;c=h+1|0;if(c>>>0<1073741824){f=f-e|0;g=f>>1;f=f>>>0>=2147483644?1073741823:c>>>0>>0?g:c;if(f){if(f>>>0>=1073741824){break i}c=ll(f<<2)}else{c=0}h=c+(h<<2)|0;J[h>>2]=J[j+12>>2];if((d|0)>0){lk(c,e,d)}J[a+112>>2]=c+(f<<2);J[a+108>>2]=h+4;J[a+104>>2]=c;if(e){fl(e)}break h}La();C()}$a();C()}break b;case 5:d=(J[(d<<2)+f>>2]<<2)+e|0;J[d>>2]=J[d>>2]-1;d=(J[g>>2]<<2)+e|0;J[d>>2]=J[d>>2]-1;c=(J[(c<<2)+f>>2]<<2)+e|0;J[c>>2]=J[c>>2]-2;break b;case 3:d=(J[(d<<2)+f>>2]<<2)+e|0;J[d>>2]=J[d>>2]-1;d=(J[g>>2]<<2)+e|0;J[d>>2]=J[d>>2]-2;c=(J[(c<<2)+f>>2]<<2)+e|0;J[c>>2]=J[c>>2]-1;break b;case 7:break c;default:break b}}d=(J[(d<<2)+f>>2]<<2)+e|0;J[d>>2]=J[d>>2]-2;d=(J[g>>2]<<2)+e|0;J[d>>2]=J[d>>2]-2;c=(J[(c<<2)+f>>2]<<2)+e|0;J[c>>2]=J[c>>2]-2}j:{k:{c=J[a+116>>2];l:{if((c|0)==-1){break l}h=J[(c<<2)+11184>>2];c=J[a+132>>2];d=(c|0)>(i|0)?i:c;c=J[a+128>>2];e=J[a+136>>2]+P((c|0)<=(i|0)?d-c|0:0,12)|0;c=J[e+4>>2];d=J[e+8>>2];if(c>>>0>>0){J[c>>2]=h;J[e+4>>2]=c+4;break l}f=J[e>>2];i=c-f|0;g=i>>2;c=g+1|0;if(c>>>0>=1073741824){break k}d=d-f|0;k=d>>1;d=d>>>0>=2147483644?1073741823:c>>>0>>0?k:c;if(d){if(d>>>0>=1073741824){break j}c=ll(d<<2)}else{c=0}g=c+(g<<2)|0;J[g>>2]=h;if((i|0)>0){lk(c,f,i)}J[e>>2]=c;J[e+4>>2]=g+4;J[e+8>>2]=c+(d<<2);if(!f){break l}fl(f)}J[a+116>>2]=b;ia=j+16|0;return}La();C()}$a();C()}function Kh(a,b){var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0;if((b|0)==-1){return 1}d=(b>>>0)/3|0;if(!(J[J[a+24>>2]+(d>>>3&268435452)>>2]>>>d&1)){c=J[a+48>>2];J[a+52>>2]=c;a:{if((c|0)!=J[a+56>>2]){J[c>>2]=b;J[a+52>>2]=c+4;break a}e=ll(4);J[e>>2]=b;f=e+4|0;J[a+56>>2]=f;J[a+52>>2]=f;J[a+48>>2]=e;if(!c){break a}fl(c)}e=-1;f=J[a+4>>2];c=b+1|0;g=(c>>>0)%3|0?c:b-2|0;if((g|0)!=-1){e=J[J[f>>2]+(g<<2)>>2]}b:{h=b-P(d,3)|0;if(h){c=b-1|0;break b}c=b+2|0;if((c|0)!=-1){break b}return 0}if((e|0)==-1){return 0}d=J[J[f>>2]+(c<<2)>>2];if((d|0)==-1){return 0}c=J[a+36>>2];f=c+(e>>>3&536870908)|0;i=J[f>>2];j=1<>2]=i|j;Bh(a+8|0,e,g);c=J[a+36>>2]}c=(d>>>3&536870908)+c|0;e=J[c>>2];f=1<>2]=e|f;Bh(a+8|0,d,(h?-1:2)+b|0)}c=J[a+52>>2];if((c|0)==J[a+48>>2]){return 1}j=a+8|0;while(1){c:{d:{c=c-4|0;b=J[c>>2];if((b|0)==-1){break d}d=(b>>>0)/3|0;e=J[a+24>>2]+(d>>>3&268435452)|0;f=J[e>>2];d=1<>2]=d|f;while(1){d=J[a+4>>2];c=J[J[d>>2]+(b<<2)>>2];if((c|0)==-1){return 0}e:{f:{e=J[a+36>>2]+(c>>>3&536870908)|0;f=J[e>>2];g=1<>2]+(c<<2)>>2];h:{if((h|0)==-1){break h}i=h+1|0;h=(i>>>0)%3|0?i:h-2|0;if((h|0)==-1){break h}d=J[J[d+12>>2]+(h<<2)>>2];if((d|0)!=-1){break g}}J[e>>2]=f|g;Bh(j,c,b);break f}J[e>>2]=f|g;Bh(j,c,b);c=d+1|0;if((((c>>>0)%3|0?c:d-2|0)|0)==-1){break f}d=b-2|0;c=b+1|0;b=-1;c=(c>>>0)%3|0?c:d;if((c|0)!=-1){b=J[J[J[a+4>>2]+12>>2]+(c<<2)>>2]}c=(b>>>0)/3|0;g=1<>2];h=c>>>5|0;d=J[e+(h<<2)>>2];break e}c=-1;f=J[a+4>>2];d=b+1|0;d=(d>>>0)%3|0?d:b-2|0;if((d|0)!=-1){c=J[J[f+12>>2]+(d<<2)>>2]}i:{j:{if((b>>>0)%3|0){e=b-1|0;break j}e=b+2|0;b=-1;if((e|0)==-1){break i}}b=J[J[f+12>>2]+(e<<2)>>2]}i=(b|0)==-1;f=i?-1:(b>>>0)/3|0;k:{if((c|0)!=-1){e=J[a+24>>2];g=(c>>>0)/3|0;h=g>>>5|0;d=J[e+(h<<2)>>2];g=1<>2];h=f>>>5|0;d=J[e+(h<<2)>>2];if(!(g&d)){break e}}c=J[a+52>>2]-4|0;J[a+52>>2]=c;break c}if(i){b=c;break e}if(J[(f>>>3&536870908)+e>>2]>>>f&1){b=c;break e}d=J[a+52>>2];J[d-4>>2]=b;if((d|0)!=J[a+56>>2]){J[d>>2]=c;c=d+4|0;break d}l:{e=J[a+48>>2];d=d-e|0;g=d>>2;b=g+1|0;if(b>>>0<1073741824){f=d>>1;f=d>>>0>=2147483644?1073741823:b>>>0>>0?f:b;if(f){if(f>>>0>=1073741824){break l}b=ll(f<<2)}else{b=0}g=b+(g<<2)|0;J[g>>2]=c;c=g+4|0;if((d|0)>0){lk(b,e,d)}J[a+56>>2]=b+(f<<2);J[a+52>>2]=c;J[a+48>>2]=b;if(!e){break c}fl(e);c=J[a+52>>2];break c}La();C()}$a();C()}J[(h<<2)+e>>2]=d|g;if((b|0)!=-1){continue}break}return 0}J[a+52>>2]=c}if(J[a+48>>2]!=(c|0)){continue}break}}return 1}function df(a,b){var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0;d=a+4|0;if((d|0)!=(b|0)){Le(d,J[b>>2],b+4|0);f=J[b+12>>2];k=b+16|0;d=0;h=a+16|0;a:{if(!J[h+8>>2]){break a}e=J[h>>2];j=h+4|0;J[h>>2]=j;J[J[h+4>>2]+8>>2]=0;J[h+4>>2]=0;J[h+8>>2]=0;c=J[e+4>>2];g=c?c:e;if(!g){Ke(h,g);break a}e=J[g+8>>2];b:{if(!e){break b}c=J[e>>2];if((g|0)==(c|0)){J[e>>2]=0;d=e;c=J[e+4>>2];if(!c){break b}while(1){d=c;c=J[c>>2];if(c){continue}c=J[d+4>>2];if(c){continue}break}break b}J[e+4>>2]=0;d=e;if(!c){break b}while(1){d=c;c=J[c>>2];if(c){continue}c=J[d+4>>2];if(c){continue}break}}c:{if((f|0)==(k|0)){i=g;break c}c=f;while(1){i=d;J[g+16>>2]=J[c+16>>2];if((c|0)!=(g|0)){Le(g+20|0,J[c+20>>2],c+24|0)}f=j;d=f;e=J[d>>2];d:{if(!e){break d}l=J[g+16>>2];while(1){f=e;if((l|0)>2]){d=f;e=J[d>>2];if(e){continue}break d}e=J[f+4>>2];if(e){continue}break}d=f+4|0}J[g+8>>2]=f;J[g>>2]=0;J[g+4>>2]=0;J[d>>2]=g;f=J[J[h>>2]>>2];if(f){J[h>>2]=f;g=J[d>>2]}Ye(J[h+4>>2],g);J[h+8>>2]=J[h+8>>2]+1;d=0;e:{if(!i){break e}e=J[i+8>>2];if(!e){break e}f=J[e>>2];if((i|0)==(f|0)){J[e>>2]=0;d=e;f=J[e+4>>2];if(!f){break e}while(1){d=f;f=J[d>>2];if(f){continue}f=J[d+4>>2];if(f){continue}break}break e}J[e+4>>2]=0;d=e;if(!f){break e}while(1){d=f;f=J[d>>2];if(f){continue}f=J[d+4>>2];if(f){continue}break}}e=J[c+4>>2];f:{if(e){while(1){f=e;e=J[e>>2];if(e){continue}break f}}while(1){f=J[c+8>>2];e=J[f>>2]!=(c|0);c=f;if(e){continue}break}}if(!i){break c}g=i;c=f;if((k|0)!=(c|0)){continue}break}}Ke(h,i);if(!d){break a}while(1){c=J[d+8>>2];if(c){d=c;continue}break}Ke(h,d)}if((f|0)!=(k|0)){while(1){n=ia-16|0;ia=n;i=ll(32);g=f+16|0;d=J[g>>2];m=i+24|0;J[m>>2]=0;J[m+4>>2]=0;J[i+16>>2]=d;l=i+20|0;J[l>>2]=m;e=h+4|0;c=J[g+4>>2];j=g+8|0;if((c|0)!=(j|0)){while(1){d=c+16|0;Ze(n+8|0,l,m,d,d);g=J[c+4>>2];g:{if(g){while(1){d=g;g=J[d>>2];if(g){continue}break g}}while(1){d=J[c+8>>2];g=J[d>>2]!=(c|0);c=d;if(g){continue}break}}c=d;if((j|0)!=(c|0)){continue}break}}c=e;d=J[c>>2];h:{if(!d){break h}g=J[i+16>>2];while(1){e=d;if((g|0)>2]){c=e;d=J[c>>2];if(d){continue}break h}d=J[e+4>>2];if(d){continue}break}c=e+4|0}J[i+8>>2]=e;J[i>>2]=0;J[i+4>>2]=0;J[c>>2]=i;d=i;e=J[J[h>>2]>>2];if(e){J[h>>2]=e;d=J[c>>2]}Ye(J[h+4>>2],d);J[h+8>>2]=J[h+8>>2]+1;ia=n+16|0;e=J[f+4>>2];i:{if(e){while(1){c=e;e=J[c>>2];if(e){continue}break i}}while(1){c=J[f+8>>2];d=J[c>>2]!=(f|0);f=c;if(d){continue}break}}f=c;if((c|0)!=(k|0)){continue}break}}Le(a+28|0,J[b+24>>2],b+28|0)}}function sb(a,b){var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0;e=ia+-64|0;ia=e;J[e+40>>2]=0;J[e+44>>2]=0;J[e+32>>2]=0;J[e+36>>2]=0;J[e+48>>2]=1065353216;c=J[a+80>>2];J[e+24>>2]=0;J[e+16>>2]=0;J[e+20>>2]=0;a:{if(c){if(c>>>0>=1073741824){break a}g=c<<2;i=ll(g);J[e+16>>2]=i;c=i+g|0;J[e+24>>2]=c;nk(i,0,g);J[e+20>>2]=c;while(1){c=J[J[b>>2]>>2];j=J[b+48>>2]+Zl(J[b+40>>2],J[b+44>>2],h,0)|0;c=c+j|0;n=K[c|0]|K[c+1|0]<<8|(K[c+2|0]<<16|K[c+3|0]<<24);J[e+28>>2]=n;b:{c:{l=J[e+36>>2];d:{if(!l){break d}d=J[e+32>>2];j=n^318;k=am(l)>>>0>1;c=j&l-1;e:{if(!k){break e}c=j;if(c>>>0>>0){break e}c=(j>>>0)%(l>>>0)|0}g=c;c=J[d+(g<<2)>>2];if(!c){break d}d=J[c>>2];if(!d){break d}if(!k){k=l-1|0;while(1){c=J[d+4>>2];f:{if((c|0)!=(j|0)){if((g|0)==(c&k)){break f}break d}if((n|0)==J[d+8>>2]){break c}}d=J[d>>2];if(d){continue}break}break d}while(1){c=J[d+4>>2];g:{if((c|0)!=(j|0)){if(c>>>0>=l>>>0){c=(c>>>0)%(l>>>0)|0}if((c|0)==(g|0)){break g}break d}if((n|0)==J[d+8>>2]){break c}}d=J[d>>2];if(d){continue}break}}J[e+12>>2]=m;J[e+8>>2]=n;c=e+8|0;tb(e+56|0,e+32|0,c,c);c=J[a+40>>2];lk(J[J[a>>2]>>2]+P(c,m)|0,e+28|0,c);i=J[e+16>>2];J[i+(h<<2)>>2]=m;m=m+1|0;break b}J[(h<<2)+i>>2]=J[d+12>>2]}c=h+1|0;f=c?f:f+1|0;h=c;d=J[a+80>>2];if(!f&d>>>0>c>>>0){continue}break}if((d|0)!=(m|0)){h:{if(!K[a+84|0]){b=J[a+72>>2];h=J[a+68>>2];if((b|0)==(h|0)){break h}b=b-h>>2;b=b>>>0<=1?1:b;c=b&3;k=0;d=0;if(b-1>>>0>=3){f=b&-4;j=0;while(1){g=d<<2;b=g+h|0;J[b>>2]=J[(J[b>>2]<<2)+i>>2];b=h+(g|4)|0;J[b>>2]=J[(J[b>>2]<<2)+i>>2];b=h+(g|8)|0;J[b>>2]=J[(J[b>>2]<<2)+i>>2];b=h+(g|12)|0;J[b>>2]=J[(J[b>>2]<<2)+i>>2];d=d+4|0;j=j+4|0;if((f|0)!=(j|0)){continue}break}}if(!c){break h}while(1){b=h+(d<<2)|0;J[b>>2]=J[(J[b>>2]<<2)+i>>2];d=d+1|0;k=k+1|0;if((c|0)!=(k|0)){continue}break}break h}H[a+84|0]=0;c=a+68|0;b=J[a+68>>2];f=J[a+72>>2]-b>>2;i:{if(f>>>0>>0){ub(c,d-f|0,2184);d=J[a+80>>2];break i}if(d>>>0>=f>>>0){break i}J[a+72>>2]=b+(d<<2)}if(!d){break h}h=J[c>>2];k=0;b=0;if(d>>>0>=4){c=d&-4;j=0;while(1){g=b<<2;J[g+h>>2]=J[i+g>>2];f=g|4;J[f+h>>2]=J[f+i>>2];f=g|8;J[f+h>>2]=J[f+i>>2];f=g|12;J[f+h>>2]=J[f+i>>2];b=b+4|0;j=j+4|0;if((c|0)!=(j|0)){continue}break}}c=d&3;if(!c){break h}while(1){f=b<<2;J[f+h>>2]=J[f+i>>2];b=b+1|0;k=k+1|0;if((c|0)!=(k|0)){continue}break}}J[a+80>>2]=m}fl(i)}d=J[e+40>>2];if(d){while(1){a=J[d>>2];fl(d);d=a;if(d){continue}break}}a=J[e+32>>2];J[e+32>>2]=0;if(a){fl(a)}ia=e- -64|0;return m}La();C()}function Lc(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0;m=ia-16|0;ia=m;f=J[a+4>>2];a:{b:{if(f){if(na[J[J[a>>2]+52>>2]](a,b,J[J[f+4>>2]+80>>2])|0){break b}break a}if(!(na[J[J[a>>2]+52>>2]](a,b,0)|0)){break a}}n=1;if(!K[a+28|0]){break a}d=J[a+32>>2];i=J[a+8>>2];c=J[i+80>>2];f=0;J[m+8>>2]=0;J[m>>2]=0;J[m+4>>2]=0;c:{d:{e:{if(c){if(c>>>0>=1073741824){break e}c=c<<2;f=ll(c);nk(f,0,c)}e=J[b+4>>2];c=J[b>>2];f:{if((e|0)==(c|0)){break f}b=e-c>>2;if(K[i+84|0]){e=b>>>0<=1?1:b;h=e&3;b=0;if(e-1>>>0>=3){j=e&-4;e=0;while(1){J[(J[c+(b<<2)>>2]<<2)+f>>2]=b;k=b|1;J[(J[c+(k<<2)>>2]<<2)+f>>2]=k;k=b|2;J[(J[c+(k<<2)>>2]<<2)+f>>2]=k;k=b|3;J[(J[c+(k<<2)>>2]<<2)+f>>2]=k;b=b+4|0;e=e+4|0;if((j|0)!=(e|0)){continue}break}}if(!h){break f}while(1){J[(J[c+(b<<2)>>2]<<2)+f>>2]=b;b=b+1|0;g=g+1|0;if((h|0)!=(g|0)){continue}break}break f}g=b>>>0<=1?1:b;j=g&3;h=J[i+68>>2];e=0;b=0;if(g-1>>>0>=3){k=g&-4;g=0;while(1){J[(J[h+(J[c+(b<<2)>>2]<<2)>>2]<<2)+f>>2]=b;l=b|1;J[(J[h+(J[c+(l<<2)>>2]<<2)>>2]<<2)+f>>2]=l;l=b|2;J[(J[h+(J[c+(l<<2)>>2]<<2)>>2]<<2)+f>>2]=l;l=b|3;J[(J[h+(J[c+(l<<2)>>2]<<2)>>2]<<2)+f>>2]=l;b=b+4|0;g=g+4|0;if((k|0)!=(g|0)){continue}break}}if(!j){break f}while(1){J[(J[h+(J[c+(b<<2)>>2]<<2)>>2]<<2)+f>>2]=b;b=b+1|0;e=e+1|0;if((j|0)!=(e|0)){continue}break}}g:{if(!K[d+84|0]){break g}b=J[J[J[a+4>>2]+4>>2]+80>>2];H[d+84|0]=0;e=J[d+68>>2];c=J[d+72>>2]-e>>2;if(c>>>0>>0){ub(d+68|0,b-c|0,2744);break g}if(b>>>0>=c>>>0){break g}J[d+72>>2]=e+(b<<2)}h=J[J[J[a+4>>2]+4>>2]+80>>2];if(!h){break d}c=J[d+68>>2];if(K[i+84|0]){a=0;b=0;if(h>>>0>=4){g=h&-4;e=0;while(1){d=b<<2;J[d+c>>2]=J[f+d>>2];i=d|4;J[i+c>>2]=J[f+i>>2];i=d|8;J[i+c>>2]=J[f+i>>2];d=d|12;J[d+c>>2]=J[f+d>>2];b=b+4|0;e=e+4|0;if((g|0)!=(e|0)){continue}break}}e=h&3;if(!e){break c}while(1){d=b<<2;J[d+c>>2]=J[f+d>>2];b=b+1|0;a=a+1|0;if((e|0)!=(a|0)){continue}break}break c}a=J[i+68>>2];e=0;b=0;if(h>>>0>=4){i=h&-4;g=0;while(1){d=b<<2;J[d+c>>2]=J[(J[a+d>>2]<<2)+f>>2];j=d|4;J[j+c>>2]=J[(J[a+j>>2]<<2)+f>>2];j=d|8;J[j+c>>2]=J[(J[a+j>>2]<<2)+f>>2];d=d|12;J[d+c>>2]=J[(J[a+d>>2]<<2)+f>>2];b=b+4|0;g=g+4|0;if((i|0)!=(g|0)){continue}break}}d=h&3;if(!d){break c}while(1){g=b<<2;J[g+c>>2]=J[(J[a+g>>2]<<2)+f>>2];b=b+1|0;e=e+1|0;if((d|0)!=(e|0)){continue}break}break c}La();C()}if(!f){break a}}fl(f)}ia=m+16|0;return n|0}function _e(a,b,c,d,e){var f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0;a:{b:{c:{d:{e:{f:{i=a+4|0;g:{if((i|0)==(b|0)){break g}f=K[b+27|0];g=f<<24>>24<0;h=K[e+11|0];j=h<<24>>24;k=(j|0)<0;f=g?J[b+20>>2]:f;h=k?J[e+4>>2]:h;l=f>>>0>>0;m=l?f:h;if(m){k=k?J[e>>2]:e;g=g?J[b+16>>2]:b+16|0;n=qk(k,g,m);if(!n){if(f>>>0>h>>>0){break g}break f}if((n|0)>=0){break f}break g}if(f>>>0<=h>>>0){break e}}d=J[b>>2];h:{f=b;i:{if((f|0)==J[a>>2]){break i}j:{if(!d){a=b;while(1){f=J[a+8>>2];h=J[f>>2]==(a|0);a=f;if(h){continue}break}break j}a=d;while(1){f=a;a=J[f+4>>2];if(a){continue}break}}a=K[e+11|0];k=a<<24>>24;h=(k|0)<0;j=K[f+27|0];g=j<<24>>24<0;k:{a=h?J[e+4>>2]:a;j=g?J[f+20>>2]:j;l=a>>>0>>0?a:j;if(l){h=qk(g?J[f+16>>2]:f+16|0,h?J[e>>2]:e,l);if(h){break k}}if(a>>>0>j>>>0){break i}break h}if((h|0)>=0){break h}}if(!d){J[c>>2]=b;return b}J[c>>2]=f;return f+4|0}d=J[i>>2];if(!d){J[c>>2]=i;return i}e=(k|0)<0?J[e>>2]:e;b=i;while(1){f=d;d=K[f+27|0];i=d<<24>>24<0;d=i?J[f+20>>2]:d;h=d>>>0>>0;l:{m:{n:{o:{g=h?d:a;p:{if(g){i=i?J[f+16>>2]:f+16|0;j=qk(e,i,g);if(!j){if(a>>>0>>0){break p}break o}if((j|0)>=0){break o}break p}if(a>>>0>=d>>>0){break n}}b=f;d=J[f>>2];if(d){continue}break b}d=qk(i,e,g);if(d){break m}}if(h){break l}break b}if((d|0)>=0){break b}}b=f+4|0;d=J[f+4>>2];if(d){continue}break}break b}a=qk(g,k,m);if(a){break d}}if(l){break c}break a}if((a|0)>=0){break a}}d=J[b+4>>2];q:{if(!d){a=b;while(1){f=J[a+8>>2];g=J[f>>2]!=(a|0);a=f;if(g){continue}break}break q}a=d;while(1){f=a;a=J[f>>2];if(a){continue}break}}r:{s:{if((f|0)==(i|0)){break s}g=K[f+27|0];a=g<<24>>24<0;t:{g=a?J[f+20>>2]:g;k=h>>>0>g>>>0?g:h;if(k){a=qk((j|0)<0?J[e>>2]:e,a?J[f+16>>2]:f+16|0,k);if(a){break t}}if(h>>>0>>0){break s}break r}if((a|0)>=0){break r}}if(!d){J[c>>2]=b;return b+4|0}J[c>>2]=f;return f}a=J[i>>2];if(!a){J[c>>2]=i;return i}d=(j|0)<0?J[e>>2]:e;b=i;while(1){f=a;a=K[f+27|0];e=a<<24>>24<0;a=e?J[f+20>>2]:a;i=a>>>0>>0;u:{v:{w:{x:{g=i?a:h;y:{if(g){e=e?J[f+16>>2]:f+16|0;j=qk(d,e,g);if(!j){if(a>>>0>h>>>0){break y}break x}if((j|0)>=0){break x}break y}if(a>>>0<=h>>>0){break w}}b=f;a=J[f>>2];if(a){continue}break b}a=qk(e,d,g);if(a){break v}}if(i){break u}break b}if((a|0)>=0){break b}}b=f+4|0;a=J[f+4>>2];if(a){continue}break}}J[c>>2]=f;return b}J[c>>2]=b;J[d>>2]=b;return d}function Zj(a,b){var c=0,d=0,e=0,f=0,g=0,h=0;a:{b:{d=b;g=J[b>>2];if(g){c=J[b+4>>2];if(!c){break b}while(1){d=c;c=J[c>>2];if(c){continue}break}}g=J[d+4>>2];if(g){break b}g=0;e=1;break a}J[g+8>>2]=J[d+8>>2];e=0}f=J[d+8>>2];c=J[f>>2];c:{if((d|0)==(c|0)){J[f>>2]=g;if((a|0)==(d|0)){c=0;a=g;break c}c=J[f+4>>2];break c}J[f+4>>2]=g}h=!K[d+12|0];if((b|0)!=(d|0)){f=J[b+8>>2];J[d+8>>2]=f;J[f+((J[J[b+8>>2]>>2]!=(b|0))<<2)>>2]=d;f=J[b>>2];J[d>>2]=f;J[f+8>>2]=d;f=J[b+4>>2];J[d+4>>2]=f;if(f){J[f+8>>2]=d}H[d+12|0]=K[b+12|0];a=(a|0)==(b|0)?d:a}if(!(h|!a)){if(e){while(1){b=K[c+12|0];d:{e=J[c+8>>2];if(J[e>>2]!=(c|0)){if(!b){H[c+12|0]=1;H[e+12|0]=0;d=J[e+4>>2];b=J[d>>2];J[e+4>>2]=b;if(b){J[b+8>>2]=e}J[d+8>>2]=J[e+8>>2];b=J[e+8>>2];J[(((e|0)!=J[b>>2])<<2)+b>>2]=d;J[d>>2]=e;J[e+8>>2]=d;b=J[c>>2];a=(b|0)==(a|0)?c:a;c=J[b+4>>2]}e:{f:{d=J[c>>2];g:{if(!(K[d+12|0]?0:d)){b=J[c+4>>2];if(K[b+12|0]?0:b){break g}H[c+12|0]=0;c=J[c+8>>2];h:{if((c|0)==(a|0)){c=a;break h}if(K[c+12|0]){break d}}H[c+12|0]=1;return}b=J[c+4>>2];if(!b){break f}}if(K[b+12|0]){break f}d=c;break e}H[d+12|0]=1;H[c+12|0]=0;a=J[d+4>>2];J[c>>2]=a;if(a){J[a+8>>2]=c}J[d+8>>2]=J[c+8>>2];a=J[c+8>>2];J[((J[a>>2]!=(c|0))<<2)+a>>2]=d;J[d+4>>2]=c;J[c+8>>2]=d;b=c}c=J[d+8>>2];H[d+12|0]=K[c+12|0];H[c+12|0]=1;H[b+12|0]=1;b=J[c+4>>2];a=J[b>>2];J[c+4>>2]=a;if(a){J[a+8>>2]=c}J[b+8>>2]=J[c+8>>2];a=J[c+8>>2];J[(((c|0)!=J[a>>2])<<2)+a>>2]=b;J[b>>2]=c;J[c+8>>2]=b;return}if(!b){H[c+12|0]=1;H[e+12|0]=0;b=J[c+4>>2];J[e>>2]=b;if(b){J[b+8>>2]=e}J[c+8>>2]=J[e+8>>2];b=J[e+8>>2];J[(((e|0)!=J[b>>2])<<2)+b>>2]=c;J[c+4>>2]=e;J[e+8>>2]=c;a=(a|0)==(e|0)?c:a;c=J[e>>2]}b=J[c>>2];i:{if(!(!b|K[b+12|0])){d=c;break i}d=J[c+4>>2];if(!(K[d+12|0]?0:d)){H[c+12|0]=0;c=J[c+8>>2];if((a|0)!=(c|0)?K[c+12|0]:0){break d}H[c+12|0]=1;return}if(b){if(!K[b+12|0]){d=c;break i}d=J[c+4>>2]}H[d+12|0]=1;H[c+12|0]=0;a=J[d>>2];J[c+4>>2]=a;if(a){J[a+8>>2]=c}J[d+8>>2]=J[c+8>>2];a=J[c+8>>2];J[((J[a>>2]!=(c|0))<<2)+a>>2]=d;J[d>>2]=c;J[c+8>>2]=d;b=c}c=J[d+8>>2];H[d+12|0]=K[c+12|0];H[c+12|0]=1;H[b+12|0]=1;b=J[c>>2];a=J[b+4>>2];J[c>>2]=a;if(a){J[a+8>>2]=c}J[b+8>>2]=J[c+8>>2];a=J[c+8>>2];J[(((c|0)!=J[a>>2])<<2)+a>>2]=b;J[b+4>>2]=c;J[c+8>>2]=b;return}b=J[c+8>>2];c=J[((J[b>>2]==(c|0))<<2)+b>>2];continue}}H[g+12|0]=1}}function Ic(a,b){var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0;g=ia-32|0;ia=g;a:{b:{if(J[a+8>>2]<<5>>>0>=b>>>0){break b}if((b|0)<0){break a}b=(b-1>>>5|0)+1|0;c=ll(b<<2);J[g+24>>2]=b;J[g+20>>2]=0;J[g+16>>2]=c;b=J[a>>2];J[g+12>>2]=0;J[g+8>>2]=b;c=J[a+4>>2];J[g+4>>2]=c&31;J[g>>2]=b+(c>>>3&536870908);f=ia-32|0;ia=f;i=J[g+4>>2];e=J[g+12>>2];j=J[g>>2];h=J[g+8>>2];b=(i-e|0)+(j-h<<3)|0;d=J[g+20>>2];c=b+d|0;J[g+20>>2]=c;if(!((c-1^d-1)>>>0<32?d:0)){J[J[g+16>>2]+((c>>>0>=33?c-1>>>5|0:0)<<2)>>2]=0}c=J[g+16>>2]+(d>>>3&536870908)|0;d=d&31;c:{if((d|0)==(e|0)){if((b|0)<=0){break c}if(e){i=32-e|0;d=(b|0)<(i|0)?b:i;i=-1<>>i-d;J[c>>2]=J[c>>2]&(i^-1)|i&J[h>>2];b=b-d|0;h=h+4|0;c=c+(d+e>>>3&536870908)|0}j=c;e=(b|0)/32|0;c=e<<2;d=mk(j,h,c);b=b-(e<<5)|0;if((b|0)<=0){break c}e=c+d|0;b=-1>>>32-b|0;J[e>>2]=J[e>>2]&(b^-1)|b&J[c+h>>2];break c}J[f+28>>2]=e;J[f+24>>2]=h;J[f+20>>2]=i;J[f+16>>2]=j;J[f+12>>2]=d;J[f+8>>2]=c;b=J[f+28>>2];c=J[f+24>>2];h=(J[f+20>>2]-b|0)+(J[f+16>>2]-c<<3)|0;d:{if((h|0)<=0){b=J[f+12>>2];break d}e:{if(!b){b=J[f+12>>2];break e}e=J[f+12>>2];j=32-e|0;k=32-b|0;d=(h|0)<(k|0)?h:k;i=d>>>0>j>>>0?j:d;l=J[f+8>>2];m=J[l>>2]&(-1<>>j-i^-1);j=J[c>>2]&(-1<>>k-d);J[l>>2]=m|(b>>>0>>0?j<>>b-e|0);c=e+i|0;b=c&31;J[f+12>>2]=b;e=l+(c>>>3&536870908)|0;J[f+8>>2]=e;c=d-i|0;if((c|0)>0){J[e>>2]=J[e>>2]&(-1>>>32-c^-1)|j>>>i+J[f+28>>2];J[f+12>>2]=c;b=c}h=h-d|0;c=J[f+24>>2]+4|0;J[f+24>>2]=c}i=-1<=32){j=i^-1;while(1){d=J[f+8>>2];c=J[c>>2];J[d>>2]=j&J[d>>2]|c<>2]=d+4;J[d+4>>2]=i&J[d+4>>2]|c>>>e;c=J[f+24>>2]+4|0;J[f+24>>2]=c;d=h>>>0>63;h=h-32|0;if(d){continue}break}}if((h|0)<=0){break d}d=J[f+8>>2];j=e;e=(e|0)<(h|0)?e:h;j=J[d>>2]&(i&-1>>>j-e^-1);i=J[c>>2]&-1>>>32-h;J[d>>2]=j|i<>2]=b;d=d+(c>>>3&536870908)|0;J[f+8>>2]=d;c=h-e|0;if((c|0)<=0){break d}J[d>>2]=J[d>>2]&(-1>>>32-c^-1)|i>>>e;J[f+12>>2]=c;b=c}c=J[f+8>>2];J[f+4>>2]=b;J[f>>2]=c}ia=f+32|0;b=J[a>>2];J[a>>2]=J[g+16>>2];J[g+16>>2]=b;c=J[a+4>>2];J[a+4>>2]=J[g+20>>2];J[g+20>>2]=c;c=J[a+8>>2];J[a+8>>2]=J[g+24>>2];J[g+24>>2]=c;if(!b){break b}fl(b)}ia=g+32|0;return}La();C()}function yg(a){a=a|0;var b=0,c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0;g=ia-16|0;ia=g;b=J[a+64>>2];a:{if(!b){break a}i=na[J[J[b>>2]+32>>2]](b)|0;if(!i){break a}n=(J[i+28>>2]-J[i+24>>2]>>2)-J[i+44>>2]|0;b=J[a+56>>2];d=J[b+8>>2];b:{if((J[b+12>>2]-d|0)<5){break b}J[g+8>>2]=0;J[g>>2]=0;J[g+4>>2]=0;c:{d:{while(1){e:{f:{if(!J[J[(c<<2)+d>>2]+56>>2]){break f}h=na[J[J[a>>2]+56>>2]](a,c)|0;if(!h){break f}if(J[g+8>>2]!=(f|0)){J[f>>2]=h;f=f+4|0;J[g+4>>2]=f;break f}d=J[g>>2];j=f-d|0;f=j>>2;b=f+1|0;if(b>>>0>=1073741824){break e}e=j>>1;e=j>>>0>=2147483644?1073741823:b>>>0>>0?e:b;if(e){if(e>>>0>=1073741824){break d}b=ll(e<<2)}else{b=0}f=b+(f<<2)|0;J[f>>2]=h;f=f+4|0;if((j|0)>0){lk(b,d,j)}J[g+8>>2]=b+(e<<2);J[g+4>>2]=f;J[g>>2]=b;if(!d){break f}fl(d)}m=J[a+56>>2];d=J[m+8>>2];c=c+1|0;if((c|0)>2]-d>>2){continue}break c}break}La();C()}$a();C()}o=J[i+24>>2];b=J[i+28>>2];g:{if((o|0)==(b|0)){h=J[g>>2];break g}b=b-o>>2;q=b>>>0<=1?1:b;h=J[g>>2];b=f-h>>2;r=b>>>0<=1?1:b;while(1){e=J[(p<<2)+o>>2];if((e|0)!=-1){h:{if((e|0)<0){c=(e>>>0)%3|0;b=-1;break h}b=(e>>>0)/3|0;c=e-P(b,3)|0;b=J[(J[m+96>>2]+P(b,12)|0)+(c<<2)>>2]}i:{j:{if(c){c=e-1|0;break j}c=e+2|0;if((c|0)!=-1){break j}l=0;break i}l=0;c=J[J[i+12>>2]+(c<<2)>>2];if((c|0)==-1){break i}k:{if((c>>>0)%3|0){d=c-1|0;break k}d=c+2|0;if((d|0)==-1){break i}}j=e;while(1){c=(d|0)<0?-1:J[(J[m+96>>2]+P((d>>>0)/3|0,12)|0)+((d>>>0)%3<<2)>>2];l:{if((b|0)==(c|0)){c=0;if((f|0)==(h|0)){c=b;break l}m:{while(1){k=J[J[(c<<2)+h>>2]+28>>2];if(J[k+(d<<2)>>2]!=J[k+(j<<2)>>2]){break m}c=c+1|0;if((r|0)!=(c|0)){continue}break}c=b;break l}c=b}l=l+1|0}if((d|0)==(e|0)|(d|0)==-1){break i}n:{if((d>>>0)%3|0){b=d-1|0;break n}b=d+2|0;if((b|0)==-1){break i}}k=J[J[i+12>>2]+(b<<2)>>2];if((k|0)==-1){break i}b=c;j=d;c=k+((k>>>0)%3|0?-1:2)|0;d=c;if((c|0)!=-1){continue}break}}c=1;b=e+1|0;b=(b>>>0)%3|0?b:e-2|0;o:{if((b|0)==-1){break o}b=J[J[i+12>>2]+(b<<2)>>2];if((b|0)==-1){break o}c=b+1|0;c=(((c>>>0)%3|0?c:b-2|0)|0)==-1}n=(l+n|0)-((c^-1)&(l|0)!=0)|0}p=p+1|0;if((q|0)!=(p|0)){continue}break}}if(!h){break b}fl(h)}J[a+52>>2]=n}ia=g+16|0}function Ak(a,b,c,d,e,f,g,h,i){var j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0;j=ia-128|0;ia=j;a:{b:{c:{if(!Sk(f,g,h,i,0,0,0,0)){break c}m=i&65535;n=i>>>16&32767;d:{e:{if((n|0)!=32767){l=4;if(n){break e}l=f|h|(g|m)?3:2;break d}l=!(f|h|(g|m))}}r=e>>>16|0;o=r&32767;if((o|0)==32767){break c}if(l){break b}}Zk(j+16|0,b,c,d,e,f,g,h,i);e=J[j+16>>2];d=J[j+20>>2];c=J[j+24>>2];b=J[j+28>>2];Uk(j,e,d,c,b,e,d,c,b);d=J[j+8>>2];e=J[j+12>>2];h=J[j>>2];i=J[j+4>>2];break a}m=e&65535|o<<16;p=m;l=d;m=h;q=i>>>16&32767;k=i&65535|q<<16;if((Sk(b,c,l,p,f,g,h,k)|0)<=0){if(Sk(b,c,l,p,f,g,m,k)){h=b;i=c;break a}Zk(j+112|0,b,c,d,e,0,0,0,0);d=J[j+120>>2];e=J[j+124>>2];h=J[j+112>>2];i=J[j+116>>2];break a}if(o){i=c;h=b}else{Zk(j+96|0,b,c,l,p,0,0,0,1081540608);h=J[j+108>>2];p=h;l=J[j+104>>2];o=(h>>>16|0)-120|0;i=J[j+100>>2];h=J[j+96>>2]}if(!q){Zk(j+80|0,f,g,m,k,0,0,0,1081540608);f=J[j+92>>2];k=f;m=J[j+88>>2];q=(k>>>16|0)-120|0;g=J[j+84>>2];f=J[j+80>>2]}s=k&65535|65536;p=p&65535|65536;if((o|0)>(q|0)){while(1){t=l-m|0;k=(g|0)==(i|0)&f>>>0>h>>>0|g>>>0>i>>>0;n=(p-((l>>>0>>0)+s|0)|0)-(t>>>0>>0)|0;k=t-k|0;f:{if((n|0)>0|(n|0)>=0){l=h;h=h-f|0;i=i-((f>>>0>l>>>0)+g|0)|0;if(!(h|k|(i|n))){Zk(j+32|0,b,c,d,e,0,0,0,0);d=J[j+40>>2];e=J[j+44>>2];h=J[j+32>>2];i=J[j+36>>2];break a}n=n<<1|k>>>31;l=k<<1|i>>>31;p=n;break f}n=p<<1|l>>>31;l=l<<1|i>>>31;p=n}n=i<<1|h>>>31;h=h<<1;i=n;o=o-1|0;if((q|0)<(o|0)){continue}break}o=q}q=l-m|0;n=(g|0)==(i|0)&f>>>0>h>>>0|g>>>0>i>>>0;k=(p-((l>>>0>>0)+s|0)|0)-(q>>>0>>0)|0;m=q-n|0;g:{if((k|0)<0){m=l;k=p;break g}l=h;h=h-f|0;i=i-((f>>>0>l>>>0)+g|0)|0;if(h|m|(i|k)){break g}Zk(j+48|0,b,c,d,e,0,0,0,0);d=J[j+56>>2];e=J[j+60>>2];h=J[j+48>>2];i=J[j+52>>2];break a}if((k|0)==65535|k>>>0<65535){while(1){b=i>>>31|0;o=o-1|0;p=i<<1|h>>>31;h=h<<1;i=p;c=b;b=m;k=k<<1|b>>>31;m=c|b<<1;if(k>>>0<65536){continue}break}}b=r&32768;if((o|0)<=0){Zk(j- -64|0,h,i,m,k&65535|(b|o+120)<<16,0,0,0,1065811968);d=J[j+72>>2];e=J[j+76>>2];h=J[j+64>>2];i=J[j+68>>2];break a}d=m;e=k&65535|(b|o)<<16}J[a>>2]=h;J[a+4>>2]=i;J[a+8>>2]=d;J[a+12>>2]=e;ia=j+128|0}function Jj(a,b){var c=0,d=0,e=0,f=0;f=ia-16|0;ia=f;e=ll(32);J[f>>2]=e;J[f+4>>2]=30;J[f+8>>2]=-2147483616;c=K[1240]|K[1241]<<8|(K[1242]<<16|K[1243]<<24);d=K[1236]|K[1237]<<8|(K[1238]<<16|K[1239]<<24);H[e+22|0]=d;H[e+23|0]=d>>>8;H[e+24|0]=d>>>16;H[e+25|0]=d>>>24;H[e+26|0]=c;H[e+27|0]=c>>>8;H[e+28|0]=c>>>16;H[e+29|0]=c>>>24;c=K[1234]|K[1235]<<8|(K[1236]<<16|K[1237]<<24);d=K[1230]|K[1231]<<8|(K[1232]<<16|K[1233]<<24);H[e+16|0]=d;H[e+17|0]=d>>>8;H[e+18|0]=d>>>16;H[e+19|0]=d>>>24;H[e+20|0]=c;H[e+21|0]=c>>>8;H[e+22|0]=c>>>16;H[e+23|0]=c>>>24;c=K[1226]|K[1227]<<8|(K[1228]<<16|K[1229]<<24);d=K[1222]|K[1223]<<8|(K[1224]<<16|K[1225]<<24);H[e+8|0]=d;H[e+9|0]=d>>>8;H[e+10|0]=d>>>16;H[e+11|0]=d>>>24;H[e+12|0]=c;H[e+13|0]=c>>>8;H[e+14|0]=c>>>16;H[e+15|0]=c>>>24;c=K[1218]|K[1219]<<8|(K[1220]<<16|K[1221]<<24);d=K[1214]|K[1215]<<8|(K[1216]<<16|K[1217]<<24);H[e|0]=d;H[e+1|0]=d>>>8;H[e+2|0]=d>>>16;H[e+3|0]=d>>>24;H[e+4|0]=c;H[e+5|0]=c>>>8;H[e+6|0]=c>>>16;H[e+7|0]=c>>>24;H[e+30|0]=0;e=a+4|0;mi(e,f,b);if(H[f+11|0]<0){fl(J[f>>2])}a=ll(32);J[f>>2]=a;J[f+4>>2]=29;J[f+8>>2]=-2147483616;c=K[1308]|K[1309]<<8|(K[1310]<<16|K[1311]<<24);d=K[1304]|K[1305]<<8|(K[1306]<<16|K[1307]<<24);H[a+21|0]=d;H[a+22|0]=d>>>8;H[a+23|0]=d>>>16;H[a+24|0]=d>>>24;H[a+25|0]=c;H[a+26|0]=c>>>8;H[a+27|0]=c>>>16;H[a+28|0]=c>>>24;c=K[1303]|K[1304]<<8|(K[1305]<<16|K[1306]<<24);d=K[1299]|K[1300]<<8|(K[1301]<<16|K[1302]<<24);H[a+16|0]=d;H[a+17|0]=d>>>8;H[a+18|0]=d>>>16;H[a+19|0]=d>>>24;H[a+20|0]=c;H[a+21|0]=c>>>8;H[a+22|0]=c>>>16;H[a+23|0]=c>>>24;c=K[1295]|K[1296]<<8|(K[1297]<<16|K[1298]<<24);d=K[1291]|K[1292]<<8|(K[1293]<<16|K[1294]<<24);H[a+8|0]=d;H[a+9|0]=d>>>8;H[a+10|0]=d>>>16;H[a+11|0]=d>>>24;H[a+12|0]=c;H[a+13|0]=c>>>8;H[a+14|0]=c>>>16;H[a+15|0]=c>>>24;c=K[1287]|K[1288]<<8|(K[1289]<<16|K[1290]<<24);d=K[1283]|K[1284]<<8|(K[1285]<<16|K[1286]<<24);H[a|0]=d;H[a+1|0]=d>>>8;H[a+2|0]=d>>>16;H[a+3|0]=d>>>24;H[a+4|0]=c;H[a+5|0]=c>>>8;H[a+6|0]=c>>>16;H[a+7|0]=c>>>24;H[a+29|0]=0;mi(e,f,b);if(H[f+11|0]<0){fl(J[f>>2])}ia=f+16|0} +function Jd(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0;J[a+8>>2]=e;o=a+32|0;f=J[o>>2];h=J[a+36>>2]-f>>2;a:{if(h>>>0>>0){Oa(o,e-h|0);break a}if(e>>>0>=h>>>0){break a}J[a+36>>2]=f+(e<<2)}b:{if(!d){break b}g=J[b>>2];c:{if((d|0)<2){h=g;break c}f=1;h=d-1|0;n=h&1;d:{if((d|0)==2){h=g;break d}j=h&-2;h=g;while(1){l=(f<<2)+b|0;m=J[l+4>>2];k=J[l>>2];q=(k|0)<(h|0);h=q?k:h;l=(h|0)>(m|0);h=l?m:h;g=q?g:(g|0)<(k|0)?k:g;g=l?g:(g|0)<(m|0)?m:g;f=f+2|0;i=i+2|0;if((j|0)!=(i|0)){continue}break}}if(!n){break c}i=J[(f<<2)+b>>2];f=(i|0)<(h|0);h=f?i:h;g=f?g:(g|0)<(i|0)?i:g}J[a+16>>2]=g;J[a+12>>2]=h;f=(g>>31)-((h>>31)+(g>>>0>>0)|0)|0;h=g-h|0;if(!f&h>>>0>2147483646|f){break b}h=h+1|0;J[a+20>>2]=h;f=h>>>1|0;J[a+24>>2]=f;J[a+28>>2]=0-f;if(h&1){break b}J[a+24>>2]=f-1}p=d-e|0;e:{if((p|0)<=0){g=J[a+8>>2];break e}g=J[a+8>>2];if((g|0)<=0){break e}q=0-e<<2;while(1){if((g|0)>0){d=p<<2;n=d+c|0;j=b+d|0;i=j+q|0;l=J[o>>2];h=0;while(1){f=l;if((g|0)>0){f=J[o>>2];g=0;while(1){k=g<<2;m=J[k+i>>2];d=J[a+16>>2];f:{if((m|0)>(d|0)){J[f+k>>2]=d;break f}k=f+k|0;d=J[a+12>>2];if((d|0)>(m|0)){J[k>>2]=d;break f}J[k>>2]=m}g=g+1|0;if((g|0)>2]){continue}break}}g=h<<2;d=g+n|0;g=J[g+j>>2]-J[f+g>>2]|0;J[d>>2]=g;g:{if((g|0)>2]){g=g+J[a+20>>2]|0}else{if((g|0)<=J[a+24>>2]){break g}g=g-J[a+20>>2]|0}J[d>>2]=g}i=f;g=J[a+8>>2];h=h+1|0;if((g|0)>(h|0)){continue}break}}p=p-e|0;if((p|0)>0){continue}break}}h=0;d=e>>>0>1073741823?-1:e<<2;l=nk(ll(d),0,d);if((g|0)>0){e=J[a+32>>2];i=l;while(1){f=e;if((g|0)>0){f=J[o>>2];g=0;while(1){j=g<<2;n=J[j+i>>2];d=J[a+16>>2];h:{if((n|0)>(d|0)){J[f+j>>2]=d;break h}j=f+j|0;d=J[a+12>>2];if((d|0)>(n|0)){J[j>>2]=d;break h}J[j>>2]=n}g=g+1|0;if((g|0)>2]){continue}break}}g=h<<2;d=g+c|0;g=J[b+g>>2]-J[f+g>>2]|0;J[d>>2]=g;i:{if((g|0)>2]){g=g+J[a+20>>2]|0}else{if((g|0)<=J[a+24>>2]){break i}g=g-J[a+20>>2]|0}J[d>>2]=g}i=f;g=J[a+8>>2];h=h+1|0;if((g|0)>(h|0)){continue}break}}fl(l);return 1}function Yj(a,b){var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0;j=ia-32|0;ia=j;J[a+4>>2]=0;J[a+8>>2]=0;c=a+16|0;J[c>>2]=0;J[c+4>>2]=0;i=a+4|0;J[a>>2]=i;J[a+12>>2]=c;f=J[b>>2];k=b+4|0;if((f|0)!=(k|0)){while(1){g=ia-16|0;ia=g;c=f+16|0;h=_e(a,i,g+12|0,g+8|0,c);d=J[h>>2];if(d){c=0}else{d=ll(40);e=d+16|0;a:{if(H[c+11|0]>=0){l=J[c+4>>2];J[e>>2]=J[c>>2];J[e+4>>2]=l;J[e+8>>2]=J[c+8>>2];break a}sl(e,J[c>>2],J[c+4>>2])}Xj(d+28|0,c+12|0);J[d+8>>2]=J[g+12>>2];J[d>>2]=0;J[d+4>>2]=0;J[h>>2]=d;c=d;e=J[J[a>>2]>>2];if(e){J[a>>2]=e;c=J[h>>2]}Ye(J[a+4>>2],c);J[a+8>>2]=J[a+8>>2]+1;c=1}H[j+28|0]=c;J[j+24>>2]=d;ia=g+16|0;c=J[f+4>>2];b:{if(c){while(1){f=c;c=J[c>>2];if(c){continue}break b}}while(1){c=f;f=J[f+8>>2];if((c|0)!=J[f>>2]){continue}break}}if((f|0)!=(k|0)){continue}break}}f=J[b+12>>2];l=b+16|0;if((f|0)!=(l|0)){g=a+12|0;while(1){m=ll(24);Yj(m,J[f+28>>2]);b=f+16|0;J[j+16>>2]=b;c:{d:{c=J[g+4>>2];e:{if(!c){d=g+4|0;b=d;break e}d=K[b+11|0];e=d<<24>>24<0;h=e?J[b>>2]:b;e=e?J[b+4>>2]:d;while(1){b=c;i=K[c+27|0];d=i<<24>>24<0;c=d?J[c+20>>2]:i;i=c>>>0>>0;f:{g:{h:{i:{k=i?c:e;j:{if(k){d=d?J[b+16>>2]:b+16|0;n=qk(h,d,k);if(!n){if(c>>>0>e>>>0){break j}break i}if((n|0)>=0){break i}break j}if(c>>>0<=e>>>0){break h}}d=b;c=J[b>>2];if(c){continue}break e}c=qk(d,h,k);if(c){break g}}if(i){break f}break d}if((c|0)>=0){break d}}c=J[b+4>>2];if(c){continue}break}d=b+4|0}c=ll(32);h=c+16|0;e=J[j+16>>2];k:{if(H[e+11|0]>=0){i=J[e+4>>2];J[h>>2]=J[e>>2];J[h+4>>2]=i;J[h+8>>2]=J[e+8>>2];break k}sl(h,J[e>>2],J[e+4>>2])}J[c+8>>2]=b;J[c>>2]=0;J[c+4>>2]=0;J[c+28>>2]=0;J[d>>2]=c;b=c;e=J[J[g>>2]>>2];if(e){J[g>>2]=e;b=J[d>>2]}Ye(J[g+4>>2],b);J[g+8>>2]=J[g+8>>2]+1;b=1;break c}c=b;b=0}H[j+28|0]=b;J[j+24>>2]=c;c=J[j+24>>2];b=J[c+28>>2];J[c+28>>2]=m;if(b){Ki(b+12|0,J[b+16>>2]);Li(b,J[b+4>>2]);fl(b)}c=J[f+4>>2];l:{if(c){while(1){f=c;c=J[c>>2];if(c){continue}break l}}while(1){b=f;f=J[f+8>>2];if((b|0)!=J[f>>2]){continue}break}}if((f|0)!=(l|0)){continue}break}}ia=j+32|0;return a}function Ri(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,f=0,g=0,h=0;f=ia+-64|0;ia=f;a:{b:{c:{d:{e:{f:{if(!b){break f}e=uk(c);if(e>>>0>=4294967280){break e}g:{h:{if(e>>>0>=11){g=(e|15)+1|0;a=ll(g);J[f+56>>2]=g|-2147483648;J[f+48>>2]=a;break h}H[f+59|0]=e;a=f+48|0;if(!e){break g}}lk(a,c,e)}H[a+e|0]=0;e=uk(d);if(e>>>0>=4294967280){break d}i:{j:{if(e>>>0>=11){g=(e|15)+1|0;a=ll(g);J[f+40>>2]=g|-2147483648;J[f+32>>2]=a;break j}H[f+43|0]=e;a=f+32|0;if(!e){break i}}lk(a,d,e)}H[a+e|0]=0;e=uk(c);if(e>>>0>=4294967280){break c}k:{l:{if(e>>>0>=11){g=(e|15)+1|0;a=ll(g);J[f+24>>2]=g|-2147483648;J[f+16>>2]=a;J[f+20>>2]=e;break l}H[f+27|0]=e;a=f+16|0;if(!e){break k}}lk(a,c,e)}H[a+e|0]=0;c=uk(d);if(c>>>0>=4294967280){break b}m:{n:{if(c>>>0>=11){e=(c|15)+1|0;a=ll(e);J[f+8>>2]=e|-2147483648;J[f>>2]=a;J[f+4>>2]=c;break n}H[f+11|0]=c;a=f;if(!c){break m}}lk(a,d,c)}H[a+c|0]=0;e=ia-48|0;ia=e;d=ec(b,f+16|0);if((d|0)!=(b+4|0)){a=J[d+4>>2];o:{if(!a){a=d;while(1){c=J[a+8>>2];g=J[c>>2]!=(a|0);a=c;if(g){continue}break}break o}while(1){c=a;a=J[a>>2];if(a){continue}break}}if((d|0)==J[b>>2]){J[b>>2]=c}J[b+8>>2]=J[b+8>>2]-1;Zj(J[b+4>>2],d);a=J[d+28>>2];if(a){J[d+32>>2]=a;fl(a)}if(H[d+27|0]<0){fl(J[d+16>>2])}fl(d)}g=0;J[e+8>>2]=0;J[e>>2]=0;J[e+4>>2]=0;c=K[f+11|0];d=c<<24>>24;p:{q:{h=J[f+4>>2];a=(d|0)<0?h:c;if(a){if((a|0)<0){break q}c=a;g=ll(a);a=nk(g,0,a);c=c+a|0;J[e+8>>2]=c;J[e+4>>2]=c;J[e>>2]=a;h=J[f+4>>2];c=K[f+11|0];d=c}a=d<<24>>24<0;lk(g,a?J[f>>2]:f,a?h:c);break p}La();C()}r:{if(H[f+27|0]>=0){J[e+24>>2]=J[f+24>>2];a=J[f+20>>2];J[e+16>>2]=J[f+16>>2];J[e+20>>2]=a;break r}sl(e+16|0,J[f+16>>2],J[f+20>>2])}Xj(e+28|0,e);a=e+16|0;_j(e+40|0,b,a,a);a=J[e+28>>2];if(a){J[e+32>>2]=a;fl(a)}if(H[e+27|0]<0){fl(J[e+16>>2])}a=J[e>>2];if(a){J[e+4>>2]=a;fl(a)}ia=e+48|0;if(H[f+11|0]<0){fl(J[f>>2])}if(H[f+27|0]<0){fl(J[f+16>>2])}if(H[f+43|0]<0){fl(J[f+32>>2])}if(H[f+59|0]>=0){break f}fl(J[f+48>>2])}ia=f- -64|0;a=(b|0)!=0;break a}ze();C()}ze();C()}ze();C()}ze();C()}return a|0}function Rf(a,b,c,d,e,f,g,h){var i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0;a:{b:{if(!f){break b}while(1){if((e|0)<=(h|0)|(f|0)<=(h|0)){break a}if(!e){break b}i=J[d>>2];p=J[i>>2];c:{d:{q=J[i+4>>2]-p>>3;k=J[b>>2];e:{if(q>>>0<=k>>>0){break e}i=p+(k<<3)|0;while(1){l=J[a>>2];if(l>>>0>=q>>>0){break e}if(M[i>>2]>=M[p+(l<<3)>>2]){a=a+4|0;e=e-1|0;if(e){continue}break b}break}f:{g:{if((e|0)<(f|0)){r=(f|0)/2|0;l=(r<<2)+b|0;h:{if((a|0)==(b|0)){k=b;break h}m=J[l>>2];if(m>>>0>=q>>>0){break e}j=b-a>>2;o=j>>>1|0;k=(o<<2)+a|0;i=J[k>>2];if(i>>>0>=q>>>0){break e}n=J[p+(m<<3)>>2];i=n>>>0>2];k=i?a:k+4|0;i=i?o:j+(o^-1)|0;if(!i){break h}while(1){o=i>>>1|0;m=(o<<2)+k|0;j=J[m>>2];if(j>>>0>=q>>>0){break e}j=n>>>0>2];k=j?k:m+4|0;i=j?o:(o^-1)+i|0;if(i){continue}break}}o=k-a>>2;break g}if((e|0)==1){J[a>>2]=k;J[b>>2]=l;return}o=(e|0)/2|0;k=(o<<2)+a|0;l=c;if((l|0)!=(b|0)){i=c-b>>2;l=J[k>>2];if(l>>>0>=q>>>0){break f}n=p+(l<<3)|0;l=b;while(1){r=i>>>1|0;m=(r<<2)+l|0;j=J[m>>2];if(j>>>0>=q>>>0){break e}j=M[p+(j<<3)>>2]>2];l=j?m+4|0:l;i=j?(r^-1)+i|0:r;if(i){continue}break}}r=l-b>>2}f=f-r|0;e=e-o|0;i=l;if((b|0)==(k|0)){break c}i=k;if((b|0)==(l|0)){break c}if((k+4|0)!=(b|0)){break d}j=J[k>>2];i=b;b=l-b|0;i=mk(k,i,b)+b|0;J[i>>2]=j;break c}}Zc();C()}if((b+4|0)==(l|0)){b=l-4|0;j=J[b>>2];i=l;if((b|0)!=(k|0)){b=b-k|0;i=l-b|0;mk(i,k,b)}J[k>>2]=j;break c}i=b;m=k;p=l-b>>2;j=p;s=b-k>>2;n=s;if((j|0)==(n|0)){while(1){j=J[m>>2];J[m>>2]=J[i>>2];J[i>>2]=j;i=i+4|0;m=m+4|0;if((m|0)!=(b|0)){continue}break}i=b;break c}while(1){b=n;n=j;j=(b|0)%(j|0)|0;if(j){continue}break}if(n){n=(n<<2)+k|0;while(1){n=n-4|0;q=s<<2;m=n+q|0;i=J[n>>2];j=n;while(1){b=j;j=m;J[b>>2]=J[j>>2];b=l-j>>2;m=(b|0)>(s|0)?j+q|0:(s-b<<2)+k|0;if((n|0)!=(m|0)){continue}break}J[j>>2]=i;if((k|0)!=(n|0)){continue}break}}i=(p<<2)+k|0}i:{if((o+r|0)<(e+f|0)){Rf(a,k,i,d,o,r,g,h);a=i;b=l;break i}Rf(i,l,c,d,e,f,g,h);f=r;e=o;c=i;b=k}if(f){continue}break}}return}vf(a,b,c,d,e,f,g)} +function zf(a,b,c,d,e,f,g,h){var i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0;a:{b:{if(!f){break b}while(1){if((e|0)<=(h|0)|(f|0)<=(h|0)){break a}if(!e){break b}i=J[d>>2];p=J[i>>2];c:{d:{q=J[i+4>>2]-p>>3;k=J[b>>2];e:{if(q>>>0<=k>>>0){break e}i=p+(k<<3)|0;while(1){l=J[a>>2];if(l>>>0>=q>>>0){break e}if(M[i>>2]>=M[p+(l<<3)>>2]){a=a+4|0;e=e-1|0;if(e){continue}break b}break}f:{g:{if((e|0)<(f|0)){r=(f|0)/2|0;l=(r<<2)+b|0;h:{if((a|0)==(b|0)){k=b;break h}m=J[l>>2];if(m>>>0>=q>>>0){break e}j=b-a>>2;o=j>>>1|0;k=(o<<2)+a|0;i=J[k>>2];if(i>>>0>=q>>>0){break e}n=J[p+(m<<3)>>2];i=n>>>0>2];k=i?a:k+4|0;i=i?o:j+(o^-1)|0;if(!i){break h}while(1){o=i>>>1|0;m=(o<<2)+k|0;j=J[m>>2];if(j>>>0>=q>>>0){break e}j=n>>>0>2];k=j?k:m+4|0;i=j?o:(o^-1)+i|0;if(i){continue}break}}o=k-a>>2;break g}if((e|0)==1){J[a>>2]=k;J[b>>2]=l;return}o=(e|0)/2|0;k=(o<<2)+a|0;l=c;if((l|0)!=(b|0)){i=c-b>>2;l=J[k>>2];if(l>>>0>=q>>>0){break f}n=p+(l<<3)|0;l=b;while(1){r=i>>>1|0;m=(r<<2)+l|0;j=J[m>>2];if(j>>>0>=q>>>0){break e}j=M[p+(j<<3)>>2]>2];l=j?m+4|0:l;i=j?(r^-1)+i|0:r;if(i){continue}break}}r=l-b>>2}f=f-r|0;e=e-o|0;i=l;if((b|0)==(k|0)){break c}i=k;if((b|0)==(l|0)){break c}if((k+4|0)!=(b|0)){break d}j=J[k>>2];i=b;b=l-b|0;i=mk(k,i,b)+b|0;J[i>>2]=j;break c}}Zc();C()}if((b+4|0)==(l|0)){b=l-4|0;j=J[b>>2];i=l;if((b|0)!=(k|0)){b=b-k|0;i=l-b|0;mk(i,k,b)}J[k>>2]=j;break c}i=b;m=k;p=l-b>>2;j=p;s=b-k>>2;n=s;if((j|0)==(n|0)){while(1){j=J[m>>2];J[m>>2]=J[i>>2];J[i>>2]=j;i=i+4|0;m=m+4|0;if((m|0)!=(b|0)){continue}break}i=b;break c}while(1){b=n;n=j;j=(b|0)%(j|0)|0;if(j){continue}break}if(n){n=(n<<2)+k|0;while(1){n=n-4|0;q=s<<2;m=n+q|0;i=J[n>>2];j=n;while(1){b=j;j=m;J[b>>2]=J[j>>2];b=l-j>>2;m=(b|0)>(s|0)?j+q|0:(s-b<<2)+k|0;if((n|0)!=(m|0)){continue}break}J[j>>2]=i;if((k|0)!=(n|0)){continue}break}}i=(p<<2)+k|0}i:{if((o+r|0)<(e+f|0)){zf(a,k,i,d,o,r,g,h);a=i;b=l;break i}zf(i,l,c,d,e,f,g,h);f=r;e=o;c=i;b=k}if(f){continue}break}}return}vf(a,b,c,d,e,f,g)}function tg(a,b,c,d,e,f,g,h){var i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0;a:{b:{if(!f){break b}while(1){if((e|0)<=(h|0)|(f|0)<=(h|0)){break a}if(!e){break b}i=J[d>>2];p=J[i>>2];c:{d:{q=J[i+4>>2]-p>>3;k=J[b>>2];e:{if(q>>>0<=k>>>0){break e}i=p+(k<<3)|0;while(1){l=J[a>>2];if(l>>>0>=q>>>0){break e}if(M[i>>2]>=M[p+(l<<3)>>2]){a=a+4|0;e=e-1|0;if(e){continue}break b}break}f:{g:{if((e|0)<(f|0)){r=(f|0)/2|0;l=(r<<2)+b|0;h:{if((a|0)==(b|0)){k=b;break h}m=J[l>>2];if(m>>>0>=q>>>0){break e}j=b-a>>2;o=j>>>1|0;k=(o<<2)+a|0;i=J[k>>2];if(i>>>0>=q>>>0){break e}n=J[p+(m<<3)>>2];i=n>>>0>2];k=i?a:k+4|0;i=i?o:j+(o^-1)|0;if(!i){break h}while(1){o=i>>>1|0;m=(o<<2)+k|0;j=J[m>>2];if(j>>>0>=q>>>0){break e}j=n>>>0>2];k=j?k:m+4|0;i=j?o:(o^-1)+i|0;if(i){continue}break}}o=k-a>>2;break g}if((e|0)==1){J[a>>2]=k;J[b>>2]=l;return}o=(e|0)/2|0;k=(o<<2)+a|0;l=c;if((l|0)!=(b|0)){i=c-b>>2;l=J[k>>2];if(l>>>0>=q>>>0){break f}n=p+(l<<3)|0;l=b;while(1){r=i>>>1|0;m=(r<<2)+l|0;j=J[m>>2];if(j>>>0>=q>>>0){break e}j=M[p+(j<<3)>>2]>2];l=j?m+4|0:l;i=j?(r^-1)+i|0:r;if(i){continue}break}}r=l-b>>2}f=f-r|0;e=e-o|0;i=l;if((b|0)==(k|0)){break c}i=k;if((b|0)==(l|0)){break c}if((k+4|0)!=(b|0)){break d}j=J[k>>2];i=b;b=l-b|0;i=mk(k,i,b)+b|0;J[i>>2]=j;break c}}Zc();C()}if((b+4|0)==(l|0)){b=l-4|0;j=J[b>>2];i=l;if((b|0)!=(k|0)){b=b-k|0;i=l-b|0;mk(i,k,b)}J[k>>2]=j;break c}i=b;m=k;p=l-b>>2;j=p;s=b-k>>2;n=s;if((j|0)==(n|0)){while(1){j=J[m>>2];J[m>>2]=J[i>>2];J[i>>2]=j;i=i+4|0;m=m+4|0;if((m|0)!=(b|0)){continue}break}i=b;break c}while(1){b=n;n=j;j=(b|0)%(j|0)|0;if(j){continue}break}if(n){n=(n<<2)+k|0;while(1){n=n-4|0;q=s<<2;m=n+q|0;i=J[n>>2];j=n;while(1){b=j;j=m;J[b>>2]=J[j>>2];b=l-j>>2;m=(b|0)>(s|0)?j+q|0:(s-b<<2)+k|0;if((n|0)!=(m|0)){continue}break}J[j>>2]=i;if((k|0)!=(n|0)){continue}break}}i=(p<<2)+k|0}i:{if((o+r|0)<(e+f|0)){tg(a,k,i,d,o,r,g,h);a=i;b=l;break i}tg(i,l,c,d,e,f,g,h);f=r;e=o;c=i;b=k}if(f){continue}break}}return}vf(a,b,c,d,e,f,g)}function tf(a,b,c,d,e,f,g,h){var i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0;a:{b:{if(!f){break b}while(1){if((e|0)<=(h|0)|(f|0)<=(h|0)){break a}if(!e){break b}i=J[d>>2];p=J[i>>2];c:{d:{q=J[i+4>>2]-p>>3;k=J[b>>2];e:{if(q>>>0<=k>>>0){break e}i=p+(k<<3)|0;while(1){l=J[a>>2];if(l>>>0>=q>>>0){break e}if(M[i>>2]>=M[p+(l<<3)>>2]){a=a+4|0;e=e-1|0;if(e){continue}break b}break}f:{g:{if((e|0)<(f|0)){r=(f|0)/2|0;l=(r<<2)+b|0;h:{if((a|0)==(b|0)){k=b;break h}m=J[l>>2];if(m>>>0>=q>>>0){break e}j=b-a>>2;o=j>>>1|0;k=(o<<2)+a|0;i=J[k>>2];if(i>>>0>=q>>>0){break e}n=J[p+(m<<3)>>2];i=n>>>0>2];k=i?a:k+4|0;i=i?o:j+(o^-1)|0;if(!i){break h}while(1){o=i>>>1|0;m=(o<<2)+k|0;j=J[m>>2];if(j>>>0>=q>>>0){break e}j=n>>>0>2];k=j?k:m+4|0;i=j?o:(o^-1)+i|0;if(i){continue}break}}o=k-a>>2;break g}if((e|0)==1){J[a>>2]=k;J[b>>2]=l;return}o=(e|0)/2|0;k=(o<<2)+a|0;l=c;if((l|0)!=(b|0)){i=c-b>>2;l=J[k>>2];if(l>>>0>=q>>>0){break f}n=p+(l<<3)|0;l=b;while(1){r=i>>>1|0;m=(r<<2)+l|0;j=J[m>>2];if(j>>>0>=q>>>0){break e}j=M[p+(j<<3)>>2]>2];l=j?m+4|0:l;i=j?(r^-1)+i|0:r;if(i){continue}break}}r=l-b>>2}f=f-r|0;e=e-o|0;i=l;if((b|0)==(k|0)){break c}i=k;if((b|0)==(l|0)){break c}if((k+4|0)!=(b|0)){break d}j=J[k>>2];i=b;b=l-b|0;i=mk(k,i,b)+b|0;J[i>>2]=j;break c}}Zc();C()}if((b+4|0)==(l|0)){b=l-4|0;j=J[b>>2];i=l;if((b|0)!=(k|0)){b=b-k|0;i=l-b|0;mk(i,k,b)}J[k>>2]=j;break c}i=b;m=k;p=l-b>>2;j=p;s=b-k>>2;n=s;if((j|0)==(n|0)){while(1){j=J[m>>2];J[m>>2]=J[i>>2];J[i>>2]=j;i=i+4|0;m=m+4|0;if((m|0)!=(b|0)){continue}break}i=b;break c}while(1){b=n;n=j;j=(b|0)%(j|0)|0;if(j){continue}break}if(n){n=(n<<2)+k|0;while(1){n=n-4|0;q=s<<2;m=n+q|0;i=J[n>>2];j=n;while(1){b=j;j=m;J[b>>2]=J[j>>2];b=l-j>>2;m=(b|0)>(s|0)?j+q|0:(s-b<<2)+k|0;if((n|0)!=(m|0)){continue}break}J[j>>2]=i;if((k|0)!=(n|0)){continue}break}}i=(p<<2)+k|0}i:{if((o+r|0)<(e+f|0)){tf(a,k,i,d,o,r,g,h);a=i;b=l;break i}tf(i,l,c,d,e,f,g,h);f=r;e=o;c=i;b=k}if(f){continue}break}}return}vf(a,b,c,d,e,f,g)}function qg(a,b,c,d,e,f,g,h){var i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0;a:{b:{if(!f){break b}while(1){if((e|0)<=(h|0)|(f|0)<=(h|0)){break a}if(!e){break b}i=J[d>>2];p=J[i>>2];c:{d:{q=J[i+4>>2]-p>>3;k=J[b>>2];e:{if(q>>>0<=k>>>0){break e}i=p+(k<<3)|0;while(1){l=J[a>>2];if(l>>>0>=q>>>0){break e}if(M[i>>2]>=M[p+(l<<3)>>2]){a=a+4|0;e=e-1|0;if(e){continue}break b}break}f:{g:{if((e|0)<(f|0)){r=(f|0)/2|0;l=(r<<2)+b|0;h:{if((a|0)==(b|0)){k=b;break h}m=J[l>>2];if(m>>>0>=q>>>0){break e}j=b-a>>2;o=j>>>1|0;k=(o<<2)+a|0;i=J[k>>2];if(i>>>0>=q>>>0){break e}n=J[p+(m<<3)>>2];i=n>>>0>2];k=i?a:k+4|0;i=i?o:j+(o^-1)|0;if(!i){break h}while(1){o=i>>>1|0;m=(o<<2)+k|0;j=J[m>>2];if(j>>>0>=q>>>0){break e}j=n>>>0>2];k=j?k:m+4|0;i=j?o:(o^-1)+i|0;if(i){continue}break}}o=k-a>>2;break g}if((e|0)==1){J[a>>2]=k;J[b>>2]=l;return}o=(e|0)/2|0;k=(o<<2)+a|0;l=c;if((l|0)!=(b|0)){i=c-b>>2;l=J[k>>2];if(l>>>0>=q>>>0){break f}n=p+(l<<3)|0;l=b;while(1){r=i>>>1|0;m=(r<<2)+l|0;j=J[m>>2];if(j>>>0>=q>>>0){break e}j=M[p+(j<<3)>>2]>2];l=j?m+4|0:l;i=j?(r^-1)+i|0:r;if(i){continue}break}}r=l-b>>2}f=f-r|0;e=e-o|0;i=l;if((b|0)==(k|0)){break c}i=k;if((b|0)==(l|0)){break c}if((k+4|0)!=(b|0)){break d}j=J[k>>2];i=b;b=l-b|0;i=mk(k,i,b)+b|0;J[i>>2]=j;break c}}Zc();C()}if((b+4|0)==(l|0)){b=l-4|0;j=J[b>>2];i=l;if((b|0)!=(k|0)){b=b-k|0;i=l-b|0;mk(i,k,b)}J[k>>2]=j;break c}i=b;m=k;p=l-b>>2;j=p;s=b-k>>2;n=s;if((j|0)==(n|0)){while(1){j=J[m>>2];J[m>>2]=J[i>>2];J[i>>2]=j;i=i+4|0;m=m+4|0;if((m|0)!=(b|0)){continue}break}i=b;break c}while(1){b=n;n=j;j=(b|0)%(j|0)|0;if(j){continue}break}if(n){n=(n<<2)+k|0;while(1){n=n-4|0;q=s<<2;m=n+q|0;i=J[n>>2];j=n;while(1){b=j;j=m;J[b>>2]=J[j>>2];b=l-j>>2;m=(b|0)>(s|0)?j+q|0:(s-b<<2)+k|0;if((n|0)!=(m|0)){continue}break}J[j>>2]=i;if((k|0)!=(n|0)){continue}break}}i=(p<<2)+k|0}i:{if((o+r|0)<(e+f|0)){qg(a,k,i,d,o,r,g,h);a=i;b=l;break i}qg(i,l,c,d,e,f,g,h);f=r;e=o;c=i;b=k}if(f){continue}break}}return}vf(a,b,c,d,e,f,g)}function ng(a,b,c,d,e,f,g,h){var i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0;a:{b:{if(!f){break b}while(1){if((e|0)<=(h|0)|(f|0)<=(h|0)){break a}if(!e){break b}i=J[d>>2];p=J[i>>2];c:{d:{q=J[i+4>>2]-p>>3;k=J[b>>2];e:{if(q>>>0<=k>>>0){break e}i=p+(k<<3)|0;while(1){l=J[a>>2];if(l>>>0>=q>>>0){break e}if(M[i>>2]>=M[p+(l<<3)>>2]){a=a+4|0;e=e-1|0;if(e){continue}break b}break}f:{g:{if((e|0)<(f|0)){r=(f|0)/2|0;l=(r<<2)+b|0;h:{if((a|0)==(b|0)){k=b;break h}m=J[l>>2];if(m>>>0>=q>>>0){break e}j=b-a>>2;o=j>>>1|0;k=(o<<2)+a|0;i=J[k>>2];if(i>>>0>=q>>>0){break e}n=J[p+(m<<3)>>2];i=n>>>0>2];k=i?a:k+4|0;i=i?o:j+(o^-1)|0;if(!i){break h}while(1){o=i>>>1|0;m=(o<<2)+k|0;j=J[m>>2];if(j>>>0>=q>>>0){break e}j=n>>>0>2];k=j?k:m+4|0;i=j?o:(o^-1)+i|0;if(i){continue}break}}o=k-a>>2;break g}if((e|0)==1){J[a>>2]=k;J[b>>2]=l;return}o=(e|0)/2|0;k=(o<<2)+a|0;l=c;if((l|0)!=(b|0)){i=c-b>>2;l=J[k>>2];if(l>>>0>=q>>>0){break f}n=p+(l<<3)|0;l=b;while(1){r=i>>>1|0;m=(r<<2)+l|0;j=J[m>>2];if(j>>>0>=q>>>0){break e}j=M[p+(j<<3)>>2]>2];l=j?m+4|0:l;i=j?(r^-1)+i|0:r;if(i){continue}break}}r=l-b>>2}f=f-r|0;e=e-o|0;i=l;if((b|0)==(k|0)){break c}i=k;if((b|0)==(l|0)){break c}if((k+4|0)!=(b|0)){break d}j=J[k>>2];i=b;b=l-b|0;i=mk(k,i,b)+b|0;J[i>>2]=j;break c}}Zc();C()}if((b+4|0)==(l|0)){b=l-4|0;j=J[b>>2];i=l;if((b|0)!=(k|0)){b=b-k|0;i=l-b|0;mk(i,k,b)}J[k>>2]=j;break c}i=b;m=k;p=l-b>>2;j=p;s=b-k>>2;n=s;if((j|0)==(n|0)){while(1){j=J[m>>2];J[m>>2]=J[i>>2];J[i>>2]=j;i=i+4|0;m=m+4|0;if((m|0)!=(b|0)){continue}break}i=b;break c}while(1){b=n;n=j;j=(b|0)%(j|0)|0;if(j){continue}break}if(n){n=(n<<2)+k|0;while(1){n=n-4|0;q=s<<2;m=n+q|0;i=J[n>>2];j=n;while(1){b=j;j=m;J[b>>2]=J[j>>2];b=l-j>>2;m=(b|0)>(s|0)?j+q|0:(s-b<<2)+k|0;if((n|0)!=(m|0)){continue}break}J[j>>2]=i;if((k|0)!=(n|0)){continue}break}}i=(p<<2)+k|0}i:{if((o+r|0)<(e+f|0)){ng(a,k,i,d,o,r,g,h);a=i;b=l;break i}ng(i,l,c,d,e,f,g,h);f=r;e=o;c=i;b=k}if(f){continue}break}}return}vf(a,b,c,d,e,f,g)}function kg(a,b,c,d,e,f,g,h){var i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0;a:{b:{if(!f){break b}while(1){if((e|0)<=(h|0)|(f|0)<=(h|0)){break a}if(!e){break b}i=J[d>>2];p=J[i>>2];c:{d:{q=J[i+4>>2]-p>>3;k=J[b>>2];e:{if(q>>>0<=k>>>0){break e}i=p+(k<<3)|0;while(1){l=J[a>>2];if(l>>>0>=q>>>0){break e}if(M[i>>2]>=M[p+(l<<3)>>2]){a=a+4|0;e=e-1|0;if(e){continue}break b}break}f:{g:{if((e|0)<(f|0)){r=(f|0)/2|0;l=(r<<2)+b|0;h:{if((a|0)==(b|0)){k=b;break h}m=J[l>>2];if(m>>>0>=q>>>0){break e}j=b-a>>2;o=j>>>1|0;k=(o<<2)+a|0;i=J[k>>2];if(i>>>0>=q>>>0){break e}n=J[p+(m<<3)>>2];i=n>>>0>2];k=i?a:k+4|0;i=i?o:j+(o^-1)|0;if(!i){break h}while(1){o=i>>>1|0;m=(o<<2)+k|0;j=J[m>>2];if(j>>>0>=q>>>0){break e}j=n>>>0>2];k=j?k:m+4|0;i=j?o:(o^-1)+i|0;if(i){continue}break}}o=k-a>>2;break g}if((e|0)==1){J[a>>2]=k;J[b>>2]=l;return}o=(e|0)/2|0;k=(o<<2)+a|0;l=c;if((l|0)!=(b|0)){i=c-b>>2;l=J[k>>2];if(l>>>0>=q>>>0){break f}n=p+(l<<3)|0;l=b;while(1){r=i>>>1|0;m=(r<<2)+l|0;j=J[m>>2];if(j>>>0>=q>>>0){break e}j=M[p+(j<<3)>>2]>2];l=j?m+4|0:l;i=j?(r^-1)+i|0:r;if(i){continue}break}}r=l-b>>2}f=f-r|0;e=e-o|0;i=l;if((b|0)==(k|0)){break c}i=k;if((b|0)==(l|0)){break c}if((k+4|0)!=(b|0)){break d}j=J[k>>2];i=b;b=l-b|0;i=mk(k,i,b)+b|0;J[i>>2]=j;break c}}Zc();C()}if((b+4|0)==(l|0)){b=l-4|0;j=J[b>>2];i=l;if((b|0)!=(k|0)){b=b-k|0;i=l-b|0;mk(i,k,b)}J[k>>2]=j;break c}i=b;m=k;p=l-b>>2;j=p;s=b-k>>2;n=s;if((j|0)==(n|0)){while(1){j=J[m>>2];J[m>>2]=J[i>>2];J[i>>2]=j;i=i+4|0;m=m+4|0;if((m|0)!=(b|0)){continue}break}i=b;break c}while(1){b=n;n=j;j=(b|0)%(j|0)|0;if(j){continue}break}if(n){n=(n<<2)+k|0;while(1){n=n-4|0;q=s<<2;m=n+q|0;i=J[n>>2];j=n;while(1){b=j;j=m;J[b>>2]=J[j>>2];b=l-j>>2;m=(b|0)>(s|0)?j+q|0:(s-b<<2)+k|0;if((n|0)!=(m|0)){continue}break}J[j>>2]=i;if((k|0)!=(n|0)){continue}break}}i=(p<<2)+k|0}i:{if((o+r|0)<(e+f|0)){kg(a,k,i,d,o,r,g,h);a=i;b=l;break i}kg(i,l,c,d,e,f,g,h);f=r;e=o;c=i;b=k}if(f){continue}break}}return}vf(a,b,c,d,e,f,g)}function hg(a,b,c,d,e,f,g,h){var i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0;a:{b:{if(!f){break b}while(1){if((e|0)<=(h|0)|(f|0)<=(h|0)){break a}if(!e){break b}i=J[d>>2];p=J[i>>2];c:{d:{q=J[i+4>>2]-p>>3;k=J[b>>2];e:{if(q>>>0<=k>>>0){break e}i=p+(k<<3)|0;while(1){l=J[a>>2];if(l>>>0>=q>>>0){break e}if(M[i>>2]>=M[p+(l<<3)>>2]){a=a+4|0;e=e-1|0;if(e){continue}break b}break}f:{g:{if((e|0)<(f|0)){r=(f|0)/2|0;l=(r<<2)+b|0;h:{if((a|0)==(b|0)){k=b;break h}m=J[l>>2];if(m>>>0>=q>>>0){break e}j=b-a>>2;o=j>>>1|0;k=(o<<2)+a|0;i=J[k>>2];if(i>>>0>=q>>>0){break e}n=J[p+(m<<3)>>2];i=n>>>0>2];k=i?a:k+4|0;i=i?o:j+(o^-1)|0;if(!i){break h}while(1){o=i>>>1|0;m=(o<<2)+k|0;j=J[m>>2];if(j>>>0>=q>>>0){break e}j=n>>>0>2];k=j?k:m+4|0;i=j?o:(o^-1)+i|0;if(i){continue}break}}o=k-a>>2;break g}if((e|0)==1){J[a>>2]=k;J[b>>2]=l;return}o=(e|0)/2|0;k=(o<<2)+a|0;l=c;if((l|0)!=(b|0)){i=c-b>>2;l=J[k>>2];if(l>>>0>=q>>>0){break f}n=p+(l<<3)|0;l=b;while(1){r=i>>>1|0;m=(r<<2)+l|0;j=J[m>>2];if(j>>>0>=q>>>0){break e}j=M[p+(j<<3)>>2]>2];l=j?m+4|0:l;i=j?(r^-1)+i|0:r;if(i){continue}break}}r=l-b>>2}f=f-r|0;e=e-o|0;i=l;if((b|0)==(k|0)){break c}i=k;if((b|0)==(l|0)){break c}if((k+4|0)!=(b|0)){break d}j=J[k>>2];i=b;b=l-b|0;i=mk(k,i,b)+b|0;J[i>>2]=j;break c}}Zc();C()}if((b+4|0)==(l|0)){b=l-4|0;j=J[b>>2];i=l;if((b|0)!=(k|0)){b=b-k|0;i=l-b|0;mk(i,k,b)}J[k>>2]=j;break c}i=b;m=k;p=l-b>>2;j=p;s=b-k>>2;n=s;if((j|0)==(n|0)){while(1){j=J[m>>2];J[m>>2]=J[i>>2];J[i>>2]=j;i=i+4|0;m=m+4|0;if((m|0)!=(b|0)){continue}break}i=b;break c}while(1){b=n;n=j;j=(b|0)%(j|0)|0;if(j){continue}break}if(n){n=(n<<2)+k|0;while(1){n=n-4|0;q=s<<2;m=n+q|0;i=J[n>>2];j=n;while(1){b=j;j=m;J[b>>2]=J[j>>2];b=l-j>>2;m=(b|0)>(s|0)?j+q|0:(s-b<<2)+k|0;if((n|0)!=(m|0)){continue}break}J[j>>2]=i;if((k|0)!=(n|0)){continue}break}}i=(p<<2)+k|0}i:{if((o+r|0)<(e+f|0)){hg(a,k,i,d,o,r,g,h);a=i;b=l;break i}hg(i,l,c,d,e,f,g,h);f=r;e=o;c=i;b=k}if(f){continue}break}}return}vf(a,b,c,d,e,f,g)}function eg(a,b,c,d,e,f,g,h){var i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0;a:{b:{if(!f){break b}while(1){if((e|0)<=(h|0)|(f|0)<=(h|0)){break a}if(!e){break b}i=J[d>>2];p=J[i>>2];c:{d:{q=J[i+4>>2]-p>>3;k=J[b>>2];e:{if(q>>>0<=k>>>0){break e}i=p+(k<<3)|0;while(1){l=J[a>>2];if(l>>>0>=q>>>0){break e}if(M[i>>2]>=M[p+(l<<3)>>2]){a=a+4|0;e=e-1|0;if(e){continue}break b}break}f:{g:{if((e|0)<(f|0)){r=(f|0)/2|0;l=(r<<2)+b|0;h:{if((a|0)==(b|0)){k=b;break h}m=J[l>>2];if(m>>>0>=q>>>0){break e}j=b-a>>2;o=j>>>1|0;k=(o<<2)+a|0;i=J[k>>2];if(i>>>0>=q>>>0){break e}n=J[p+(m<<3)>>2];i=n>>>0>2];k=i?a:k+4|0;i=i?o:j+(o^-1)|0;if(!i){break h}while(1){o=i>>>1|0;m=(o<<2)+k|0;j=J[m>>2];if(j>>>0>=q>>>0){break e}j=n>>>0>2];k=j?k:m+4|0;i=j?o:(o^-1)+i|0;if(i){continue}break}}o=k-a>>2;break g}if((e|0)==1){J[a>>2]=k;J[b>>2]=l;return}o=(e|0)/2|0;k=(o<<2)+a|0;l=c;if((l|0)!=(b|0)){i=c-b>>2;l=J[k>>2];if(l>>>0>=q>>>0){break f}n=p+(l<<3)|0;l=b;while(1){r=i>>>1|0;m=(r<<2)+l|0;j=J[m>>2];if(j>>>0>=q>>>0){break e}j=M[p+(j<<3)>>2]>2];l=j?m+4|0:l;i=j?(r^-1)+i|0:r;if(i){continue}break}}r=l-b>>2}f=f-r|0;e=e-o|0;i=l;if((b|0)==(k|0)){break c}i=k;if((b|0)==(l|0)){break c}if((k+4|0)!=(b|0)){break d}j=J[k>>2];i=b;b=l-b|0;i=mk(k,i,b)+b|0;J[i>>2]=j;break c}}Zc();C()}if((b+4|0)==(l|0)){b=l-4|0;j=J[b>>2];i=l;if((b|0)!=(k|0)){b=b-k|0;i=l-b|0;mk(i,k,b)}J[k>>2]=j;break c}i=b;m=k;p=l-b>>2;j=p;s=b-k>>2;n=s;if((j|0)==(n|0)){while(1){j=J[m>>2];J[m>>2]=J[i>>2];J[i>>2]=j;i=i+4|0;m=m+4|0;if((m|0)!=(b|0)){continue}break}i=b;break c}while(1){b=n;n=j;j=(b|0)%(j|0)|0;if(j){continue}break}if(n){n=(n<<2)+k|0;while(1){n=n-4|0;q=s<<2;m=n+q|0;i=J[n>>2];j=n;while(1){b=j;j=m;J[b>>2]=J[j>>2];b=l-j>>2;m=(b|0)>(s|0)?j+q|0:(s-b<<2)+k|0;if((n|0)!=(m|0)){continue}break}J[j>>2]=i;if((k|0)!=(n|0)){continue}break}}i=(p<<2)+k|0}i:{if((o+r|0)<(e+f|0)){eg(a,k,i,d,o,r,g,h);a=i;b=l;break i}eg(i,l,c,d,e,f,g,h);f=r;e=o;c=i;b=k}if(f){continue}break}}return}vf(a,b,c,d,e,f,g)}function bg(a,b,c,d,e,f,g,h){var i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0;a:{b:{if(!f){break b}while(1){if((e|0)<=(h|0)|(f|0)<=(h|0)){break a}if(!e){break b}i=J[d>>2];p=J[i>>2];c:{d:{q=J[i+4>>2]-p>>3;k=J[b>>2];e:{if(q>>>0<=k>>>0){break e}i=p+(k<<3)|0;while(1){l=J[a>>2];if(l>>>0>=q>>>0){break e}if(M[i>>2]>=M[p+(l<<3)>>2]){a=a+4|0;e=e-1|0;if(e){continue}break b}break}f:{g:{if((e|0)<(f|0)){r=(f|0)/2|0;l=(r<<2)+b|0;h:{if((a|0)==(b|0)){k=b;break h}m=J[l>>2];if(m>>>0>=q>>>0){break e}j=b-a>>2;o=j>>>1|0;k=(o<<2)+a|0;i=J[k>>2];if(i>>>0>=q>>>0){break e}n=J[p+(m<<3)>>2];i=n>>>0>2];k=i?a:k+4|0;i=i?o:j+(o^-1)|0;if(!i){break h}while(1){o=i>>>1|0;m=(o<<2)+k|0;j=J[m>>2];if(j>>>0>=q>>>0){break e}j=n>>>0>2];k=j?k:m+4|0;i=j?o:(o^-1)+i|0;if(i){continue}break}}o=k-a>>2;break g}if((e|0)==1){J[a>>2]=k;J[b>>2]=l;return}o=(e|0)/2|0;k=(o<<2)+a|0;l=c;if((l|0)!=(b|0)){i=c-b>>2;l=J[k>>2];if(l>>>0>=q>>>0){break f}n=p+(l<<3)|0;l=b;while(1){r=i>>>1|0;m=(r<<2)+l|0;j=J[m>>2];if(j>>>0>=q>>>0){break e}j=M[p+(j<<3)>>2]>2];l=j?m+4|0:l;i=j?(r^-1)+i|0:r;if(i){continue}break}}r=l-b>>2}f=f-r|0;e=e-o|0;i=l;if((b|0)==(k|0)){break c}i=k;if((b|0)==(l|0)){break c}if((k+4|0)!=(b|0)){break d}j=J[k>>2];i=b;b=l-b|0;i=mk(k,i,b)+b|0;J[i>>2]=j;break c}}Zc();C()}if((b+4|0)==(l|0)){b=l-4|0;j=J[b>>2];i=l;if((b|0)!=(k|0)){b=b-k|0;i=l-b|0;mk(i,k,b)}J[k>>2]=j;break c}i=b;m=k;p=l-b>>2;j=p;s=b-k>>2;n=s;if((j|0)==(n|0)){while(1){j=J[m>>2];J[m>>2]=J[i>>2];J[i>>2]=j;i=i+4|0;m=m+4|0;if((m|0)!=(b|0)){continue}break}i=b;break c}while(1){b=n;n=j;j=(b|0)%(j|0)|0;if(j){continue}break}if(n){n=(n<<2)+k|0;while(1){n=n-4|0;q=s<<2;m=n+q|0;i=J[n>>2];j=n;while(1){b=j;j=m;J[b>>2]=J[j>>2];b=l-j>>2;m=(b|0)>(s|0)?j+q|0:(s-b<<2)+k|0;if((n|0)!=(m|0)){continue}break}J[j>>2]=i;if((k|0)!=(n|0)){continue}break}}i=(p<<2)+k|0}i:{if((o+r|0)<(e+f|0)){bg(a,k,i,d,o,r,g,h);a=i;b=l;break i}bg(i,l,c,d,e,f,g,h);f=r;e=o;c=i;b=k}if(f){continue}break}}return}vf(a,b,c,d,e,f,g)}function _f(a,b,c,d,e,f,g,h){var i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0;a:{b:{if(!f){break b}while(1){if((e|0)<=(h|0)|(f|0)<=(h|0)){break a}if(!e){break b}i=J[d>>2];p=J[i>>2];c:{d:{q=J[i+4>>2]-p>>3;k=J[b>>2];e:{if(q>>>0<=k>>>0){break e}i=p+(k<<3)|0;while(1){l=J[a>>2];if(l>>>0>=q>>>0){break e}if(M[i>>2]>=M[p+(l<<3)>>2]){a=a+4|0;e=e-1|0;if(e){continue}break b}break}f:{g:{if((e|0)<(f|0)){r=(f|0)/2|0;l=(r<<2)+b|0;h:{if((a|0)==(b|0)){k=b;break h}m=J[l>>2];if(m>>>0>=q>>>0){break e}j=b-a>>2;o=j>>>1|0;k=(o<<2)+a|0;i=J[k>>2];if(i>>>0>=q>>>0){break e}n=J[p+(m<<3)>>2];i=n>>>0>2];k=i?a:k+4|0;i=i?o:j+(o^-1)|0;if(!i){break h}while(1){o=i>>>1|0;m=(o<<2)+k|0;j=J[m>>2];if(j>>>0>=q>>>0){break e}j=n>>>0>2];k=j?k:m+4|0;i=j?o:(o^-1)+i|0;if(i){continue}break}}o=k-a>>2;break g}if((e|0)==1){J[a>>2]=k;J[b>>2]=l;return}o=(e|0)/2|0;k=(o<<2)+a|0;l=c;if((l|0)!=(b|0)){i=c-b>>2;l=J[k>>2];if(l>>>0>=q>>>0){break f}n=p+(l<<3)|0;l=b;while(1){r=i>>>1|0;m=(r<<2)+l|0;j=J[m>>2];if(j>>>0>=q>>>0){break e}j=M[p+(j<<3)>>2]>2];l=j?m+4|0:l;i=j?(r^-1)+i|0:r;if(i){continue}break}}r=l-b>>2}f=f-r|0;e=e-o|0;i=l;if((b|0)==(k|0)){break c}i=k;if((b|0)==(l|0)){break c}if((k+4|0)!=(b|0)){break d}j=J[k>>2];i=b;b=l-b|0;i=mk(k,i,b)+b|0;J[i>>2]=j;break c}}Zc();C()}if((b+4|0)==(l|0)){b=l-4|0;j=J[b>>2];i=l;if((b|0)!=(k|0)){b=b-k|0;i=l-b|0;mk(i,k,b)}J[k>>2]=j;break c}i=b;m=k;p=l-b>>2;j=p;s=b-k>>2;n=s;if((j|0)==(n|0)){while(1){j=J[m>>2];J[m>>2]=J[i>>2];J[i>>2]=j;i=i+4|0;m=m+4|0;if((m|0)!=(b|0)){continue}break}i=b;break c}while(1){b=n;n=j;j=(b|0)%(j|0)|0;if(j){continue}break}if(n){n=(n<<2)+k|0;while(1){n=n-4|0;q=s<<2;m=n+q|0;i=J[n>>2];j=n;while(1){b=j;j=m;J[b>>2]=J[j>>2];b=l-j>>2;m=(b|0)>(s|0)?j+q|0:(s-b<<2)+k|0;if((n|0)!=(m|0)){continue}break}J[j>>2]=i;if((k|0)!=(n|0)){continue}break}}i=(p<<2)+k|0}i:{if((o+r|0)<(e+f|0)){_f(a,k,i,d,o,r,g,h);a=i;b=l;break i}_f(i,l,c,d,e,f,g,h);f=r;e=o;c=i;b=k}if(f){continue}break}}return}vf(a,b,c,d,e,f,g)}function Xf(a,b,c,d,e,f,g,h){var i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0;a:{b:{if(!f){break b}while(1){if((e|0)<=(h|0)|(f|0)<=(h|0)){break a}if(!e){break b}i=J[d>>2];p=J[i>>2];c:{d:{q=J[i+4>>2]-p>>3;k=J[b>>2];e:{if(q>>>0<=k>>>0){break e}i=p+(k<<3)|0;while(1){l=J[a>>2];if(l>>>0>=q>>>0){break e}if(M[i>>2]>=M[p+(l<<3)>>2]){a=a+4|0;e=e-1|0;if(e){continue}break b}break}f:{g:{if((e|0)<(f|0)){r=(f|0)/2|0;l=(r<<2)+b|0;h:{if((a|0)==(b|0)){k=b;break h}m=J[l>>2];if(m>>>0>=q>>>0){break e}j=b-a>>2;o=j>>>1|0;k=(o<<2)+a|0;i=J[k>>2];if(i>>>0>=q>>>0){break e}n=J[p+(m<<3)>>2];i=n>>>0>2];k=i?a:k+4|0;i=i?o:j+(o^-1)|0;if(!i){break h}while(1){o=i>>>1|0;m=(o<<2)+k|0;j=J[m>>2];if(j>>>0>=q>>>0){break e}j=n>>>0>2];k=j?k:m+4|0;i=j?o:(o^-1)+i|0;if(i){continue}break}}o=k-a>>2;break g}if((e|0)==1){J[a>>2]=k;J[b>>2]=l;return}o=(e|0)/2|0;k=(o<<2)+a|0;l=c;if((l|0)!=(b|0)){i=c-b>>2;l=J[k>>2];if(l>>>0>=q>>>0){break f}n=p+(l<<3)|0;l=b;while(1){r=i>>>1|0;m=(r<<2)+l|0;j=J[m>>2];if(j>>>0>=q>>>0){break e}j=M[p+(j<<3)>>2]>2];l=j?m+4|0:l;i=j?(r^-1)+i|0:r;if(i){continue}break}}r=l-b>>2}f=f-r|0;e=e-o|0;i=l;if((b|0)==(k|0)){break c}i=k;if((b|0)==(l|0)){break c}if((k+4|0)!=(b|0)){break d}j=J[k>>2];i=b;b=l-b|0;i=mk(k,i,b)+b|0;J[i>>2]=j;break c}}Zc();C()}if((b+4|0)==(l|0)){b=l-4|0;j=J[b>>2];i=l;if((b|0)!=(k|0)){b=b-k|0;i=l-b|0;mk(i,k,b)}J[k>>2]=j;break c}i=b;m=k;p=l-b>>2;j=p;s=b-k>>2;n=s;if((j|0)==(n|0)){while(1){j=J[m>>2];J[m>>2]=J[i>>2];J[i>>2]=j;i=i+4|0;m=m+4|0;if((m|0)!=(b|0)){continue}break}i=b;break c}while(1){b=n;n=j;j=(b|0)%(j|0)|0;if(j){continue}break}if(n){n=(n<<2)+k|0;while(1){n=n-4|0;q=s<<2;m=n+q|0;i=J[n>>2];j=n;while(1){b=j;j=m;J[b>>2]=J[j>>2];b=l-j>>2;m=(b|0)>(s|0)?j+q|0:(s-b<<2)+k|0;if((n|0)!=(m|0)){continue}break}J[j>>2]=i;if((k|0)!=(n|0)){continue}break}}i=(p<<2)+k|0}i:{if((o+r|0)<(e+f|0)){Xf(a,k,i,d,o,r,g,h);a=i;b=l;break i}Xf(i,l,c,d,e,f,g,h);f=r;e=o;c=i;b=k}if(f){continue}break}}return}vf(a,b,c,d,e,f,g)}function Uf(a,b,c,d,e,f,g,h){var i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0;a:{b:{if(!f){break b}while(1){if((e|0)<=(h|0)|(f|0)<=(h|0)){break a}if(!e){break b}i=J[d>>2];p=J[i>>2];c:{d:{q=J[i+4>>2]-p>>3;k=J[b>>2];e:{if(q>>>0<=k>>>0){break e}i=p+(k<<3)|0;while(1){l=J[a>>2];if(l>>>0>=q>>>0){break e}if(M[i>>2]>=M[p+(l<<3)>>2]){a=a+4|0;e=e-1|0;if(e){continue}break b}break}f:{g:{if((e|0)<(f|0)){r=(f|0)/2|0;l=(r<<2)+b|0;h:{if((a|0)==(b|0)){k=b;break h}m=J[l>>2];if(m>>>0>=q>>>0){break e}j=b-a>>2;o=j>>>1|0;k=(o<<2)+a|0;i=J[k>>2];if(i>>>0>=q>>>0){break e}n=J[p+(m<<3)>>2];i=n>>>0>2];k=i?a:k+4|0;i=i?o:j+(o^-1)|0;if(!i){break h}while(1){o=i>>>1|0;m=(o<<2)+k|0;j=J[m>>2];if(j>>>0>=q>>>0){break e}j=n>>>0>2];k=j?k:m+4|0;i=j?o:(o^-1)+i|0;if(i){continue}break}}o=k-a>>2;break g}if((e|0)==1){J[a>>2]=k;J[b>>2]=l;return}o=(e|0)/2|0;k=(o<<2)+a|0;l=c;if((l|0)!=(b|0)){i=c-b>>2;l=J[k>>2];if(l>>>0>=q>>>0){break f}n=p+(l<<3)|0;l=b;while(1){r=i>>>1|0;m=(r<<2)+l|0;j=J[m>>2];if(j>>>0>=q>>>0){break e}j=M[p+(j<<3)>>2]>2];l=j?m+4|0:l;i=j?(r^-1)+i|0:r;if(i){continue}break}}r=l-b>>2}f=f-r|0;e=e-o|0;i=l;if((b|0)==(k|0)){break c}i=k;if((b|0)==(l|0)){break c}if((k+4|0)!=(b|0)){break d}j=J[k>>2];i=b;b=l-b|0;i=mk(k,i,b)+b|0;J[i>>2]=j;break c}}Zc();C()}if((b+4|0)==(l|0)){b=l-4|0;j=J[b>>2];i=l;if((b|0)!=(k|0)){b=b-k|0;i=l-b|0;mk(i,k,b)}J[k>>2]=j;break c}i=b;m=k;p=l-b>>2;j=p;s=b-k>>2;n=s;if((j|0)==(n|0)){while(1){j=J[m>>2];J[m>>2]=J[i>>2];J[i>>2]=j;i=i+4|0;m=m+4|0;if((m|0)!=(b|0)){continue}break}i=b;break c}while(1){b=n;n=j;j=(b|0)%(j|0)|0;if(j){continue}break}if(n){n=(n<<2)+k|0;while(1){n=n-4|0;q=s<<2;m=n+q|0;i=J[n>>2];j=n;while(1){b=j;j=m;J[b>>2]=J[j>>2];b=l-j>>2;m=(b|0)>(s|0)?j+q|0:(s-b<<2)+k|0;if((n|0)!=(m|0)){continue}break}J[j>>2]=i;if((k|0)!=(n|0)){continue}break}}i=(p<<2)+k|0}i:{if((o+r|0)<(e+f|0)){Uf(a,k,i,d,o,r,g,h);a=i;b=l;break i}Uf(i,l,c,d,e,f,g,h);f=r;e=o;c=i;b=k}if(f){continue}break}}return}vf(a,b,c,d,e,f,g)}function Of(a,b,c,d,e,f,g,h){var i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0;a:{b:{if(!f){break b}while(1){if((e|0)<=(h|0)|(f|0)<=(h|0)){break a}if(!e){break b}i=J[d>>2];p=J[i>>2];c:{d:{q=J[i+4>>2]-p>>3;k=J[b>>2];e:{if(q>>>0<=k>>>0){break e}i=p+(k<<3)|0;while(1){l=J[a>>2];if(l>>>0>=q>>>0){break e}if(M[i>>2]>=M[p+(l<<3)>>2]){a=a+4|0;e=e-1|0;if(e){continue}break b}break}f:{g:{if((e|0)<(f|0)){r=(f|0)/2|0;l=(r<<2)+b|0;h:{if((a|0)==(b|0)){k=b;break h}m=J[l>>2];if(m>>>0>=q>>>0){break e}j=b-a>>2;o=j>>>1|0;k=(o<<2)+a|0;i=J[k>>2];if(i>>>0>=q>>>0){break e}n=J[p+(m<<3)>>2];i=n>>>0>2];k=i?a:k+4|0;i=i?o:j+(o^-1)|0;if(!i){break h}while(1){o=i>>>1|0;m=(o<<2)+k|0;j=J[m>>2];if(j>>>0>=q>>>0){break e}j=n>>>0>2];k=j?k:m+4|0;i=j?o:(o^-1)+i|0;if(i){continue}break}}o=k-a>>2;break g}if((e|0)==1){J[a>>2]=k;J[b>>2]=l;return}o=(e|0)/2|0;k=(o<<2)+a|0;l=c;if((l|0)!=(b|0)){i=c-b>>2;l=J[k>>2];if(l>>>0>=q>>>0){break f}n=p+(l<<3)|0;l=b;while(1){r=i>>>1|0;m=(r<<2)+l|0;j=J[m>>2];if(j>>>0>=q>>>0){break e}j=M[p+(j<<3)>>2]>2];l=j?m+4|0:l;i=j?(r^-1)+i|0:r;if(i){continue}break}}r=l-b>>2}f=f-r|0;e=e-o|0;i=l;if((b|0)==(k|0)){break c}i=k;if((b|0)==(l|0)){break c}if((k+4|0)!=(b|0)){break d}j=J[k>>2];i=b;b=l-b|0;i=mk(k,i,b)+b|0;J[i>>2]=j;break c}}Zc();C()}if((b+4|0)==(l|0)){b=l-4|0;j=J[b>>2];i=l;if((b|0)!=(k|0)){b=b-k|0;i=l-b|0;mk(i,k,b)}J[k>>2]=j;break c}i=b;m=k;p=l-b>>2;j=p;s=b-k>>2;n=s;if((j|0)==(n|0)){while(1){j=J[m>>2];J[m>>2]=J[i>>2];J[i>>2]=j;i=i+4|0;m=m+4|0;if((m|0)!=(b|0)){continue}break}i=b;break c}while(1){b=n;n=j;j=(b|0)%(j|0)|0;if(j){continue}break}if(n){n=(n<<2)+k|0;while(1){n=n-4|0;q=s<<2;m=n+q|0;i=J[n>>2];j=n;while(1){b=j;j=m;J[b>>2]=J[j>>2];b=l-j>>2;m=(b|0)>(s|0)?j+q|0:(s-b<<2)+k|0;if((n|0)!=(m|0)){continue}break}J[j>>2]=i;if((k|0)!=(n|0)){continue}break}}i=(p<<2)+k|0}i:{if((o+r|0)<(e+f|0)){Of(a,k,i,d,o,r,g,h);a=i;b=l;break i}Of(i,l,c,d,e,f,g,h);f=r;e=o;c=i;b=k}if(f){continue}break}}return}vf(a,b,c,d,e,f,g)}function Lf(a,b,c,d,e,f,g,h){var i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0;a:{b:{if(!f){break b}while(1){if((e|0)<=(h|0)|(f|0)<=(h|0)){break a}if(!e){break b}i=J[d>>2];p=J[i>>2];c:{d:{q=J[i+4>>2]-p>>3;k=J[b>>2];e:{if(q>>>0<=k>>>0){break e}i=p+(k<<3)|0;while(1){l=J[a>>2];if(l>>>0>=q>>>0){break e}if(M[i>>2]>=M[p+(l<<3)>>2]){a=a+4|0;e=e-1|0;if(e){continue}break b}break}f:{g:{if((e|0)<(f|0)){r=(f|0)/2|0;l=(r<<2)+b|0;h:{if((a|0)==(b|0)){k=b;break h}m=J[l>>2];if(m>>>0>=q>>>0){break e}j=b-a>>2;o=j>>>1|0;k=(o<<2)+a|0;i=J[k>>2];if(i>>>0>=q>>>0){break e}n=J[p+(m<<3)>>2];i=n>>>0>2];k=i?a:k+4|0;i=i?o:j+(o^-1)|0;if(!i){break h}while(1){o=i>>>1|0;m=(o<<2)+k|0;j=J[m>>2];if(j>>>0>=q>>>0){break e}j=n>>>0>2];k=j?k:m+4|0;i=j?o:(o^-1)+i|0;if(i){continue}break}}o=k-a>>2;break g}if((e|0)==1){J[a>>2]=k;J[b>>2]=l;return}o=(e|0)/2|0;k=(o<<2)+a|0;l=c;if((l|0)!=(b|0)){i=c-b>>2;l=J[k>>2];if(l>>>0>=q>>>0){break f}n=p+(l<<3)|0;l=b;while(1){r=i>>>1|0;m=(r<<2)+l|0;j=J[m>>2];if(j>>>0>=q>>>0){break e}j=M[p+(j<<3)>>2]>2];l=j?m+4|0:l;i=j?(r^-1)+i|0:r;if(i){continue}break}}r=l-b>>2}f=f-r|0;e=e-o|0;i=l;if((b|0)==(k|0)){break c}i=k;if((b|0)==(l|0)){break c}if((k+4|0)!=(b|0)){break d}j=J[k>>2];i=b;b=l-b|0;i=mk(k,i,b)+b|0;J[i>>2]=j;break c}}Zc();C()}if((b+4|0)==(l|0)){b=l-4|0;j=J[b>>2];i=l;if((b|0)!=(k|0)){b=b-k|0;i=l-b|0;mk(i,k,b)}J[k>>2]=j;break c}i=b;m=k;p=l-b>>2;j=p;s=b-k>>2;n=s;if((j|0)==(n|0)){while(1){j=J[m>>2];J[m>>2]=J[i>>2];J[i>>2]=j;i=i+4|0;m=m+4|0;if((m|0)!=(b|0)){continue}break}i=b;break c}while(1){b=n;n=j;j=(b|0)%(j|0)|0;if(j){continue}break}if(n){n=(n<<2)+k|0;while(1){n=n-4|0;q=s<<2;m=n+q|0;i=J[n>>2];j=n;while(1){b=j;j=m;J[b>>2]=J[j>>2];b=l-j>>2;m=(b|0)>(s|0)?j+q|0:(s-b<<2)+k|0;if((n|0)!=(m|0)){continue}break}J[j>>2]=i;if((k|0)!=(n|0)){continue}break}}i=(p<<2)+k|0}i:{if((o+r|0)<(e+f|0)){Lf(a,k,i,d,o,r,g,h);a=i;b=l;break i}Lf(i,l,c,d,e,f,g,h);f=r;e=o;c=i;b=k}if(f){continue}break}}return}vf(a,b,c,d,e,f,g)}function If(a,b,c,d,e,f,g,h){var i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0;a:{b:{if(!f){break b}while(1){if((e|0)<=(h|0)|(f|0)<=(h|0)){break a}if(!e){break b}i=J[d>>2];p=J[i>>2];c:{d:{q=J[i+4>>2]-p>>3;k=J[b>>2];e:{if(q>>>0<=k>>>0){break e}i=p+(k<<3)|0;while(1){l=J[a>>2];if(l>>>0>=q>>>0){break e}if(M[i>>2]>=M[p+(l<<3)>>2]){a=a+4|0;e=e-1|0;if(e){continue}break b}break}f:{g:{if((e|0)<(f|0)){r=(f|0)/2|0;l=(r<<2)+b|0;h:{if((a|0)==(b|0)){k=b;break h}m=J[l>>2];if(m>>>0>=q>>>0){break e}j=b-a>>2;o=j>>>1|0;k=(o<<2)+a|0;i=J[k>>2];if(i>>>0>=q>>>0){break e}n=J[p+(m<<3)>>2];i=n>>>0>2];k=i?a:k+4|0;i=i?o:j+(o^-1)|0;if(!i){break h}while(1){o=i>>>1|0;m=(o<<2)+k|0;j=J[m>>2];if(j>>>0>=q>>>0){break e}j=n>>>0>2];k=j?k:m+4|0;i=j?o:(o^-1)+i|0;if(i){continue}break}}o=k-a>>2;break g}if((e|0)==1){J[a>>2]=k;J[b>>2]=l;return}o=(e|0)/2|0;k=(o<<2)+a|0;l=c;if((l|0)!=(b|0)){i=c-b>>2;l=J[k>>2];if(l>>>0>=q>>>0){break f}n=p+(l<<3)|0;l=b;while(1){r=i>>>1|0;m=(r<<2)+l|0;j=J[m>>2];if(j>>>0>=q>>>0){break e}j=M[p+(j<<3)>>2]>2];l=j?m+4|0:l;i=j?(r^-1)+i|0:r;if(i){continue}break}}r=l-b>>2}f=f-r|0;e=e-o|0;i=l;if((b|0)==(k|0)){break c}i=k;if((b|0)==(l|0)){break c}if((k+4|0)!=(b|0)){break d}j=J[k>>2];i=b;b=l-b|0;i=mk(k,i,b)+b|0;J[i>>2]=j;break c}}Zc();C()}if((b+4|0)==(l|0)){b=l-4|0;j=J[b>>2];i=l;if((b|0)!=(k|0)){b=b-k|0;i=l-b|0;mk(i,k,b)}J[k>>2]=j;break c}i=b;m=k;p=l-b>>2;j=p;s=b-k>>2;n=s;if((j|0)==(n|0)){while(1){j=J[m>>2];J[m>>2]=J[i>>2];J[i>>2]=j;i=i+4|0;m=m+4|0;if((m|0)!=(b|0)){continue}break}i=b;break c}while(1){b=n;n=j;j=(b|0)%(j|0)|0;if(j){continue}break}if(n){n=(n<<2)+k|0;while(1){n=n-4|0;q=s<<2;m=n+q|0;i=J[n>>2];j=n;while(1){b=j;j=m;J[b>>2]=J[j>>2];b=l-j>>2;m=(b|0)>(s|0)?j+q|0:(s-b<<2)+k|0;if((n|0)!=(m|0)){continue}break}J[j>>2]=i;if((k|0)!=(n|0)){continue}break}}i=(p<<2)+k|0}i:{if((o+r|0)<(e+f|0)){If(a,k,i,d,o,r,g,h);a=i;b=l;break i}If(i,l,c,d,e,f,g,h);f=r;e=o;c=i;b=k}if(f){continue}break}}return}vf(a,b,c,d,e,f,g)}function Ff(a,b,c,d,e,f,g,h){var i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0;a:{b:{if(!f){break b}while(1){if((e|0)<=(h|0)|(f|0)<=(h|0)){break a}if(!e){break b}i=J[d>>2];p=J[i>>2];c:{d:{q=J[i+4>>2]-p>>3;k=J[b>>2];e:{if(q>>>0<=k>>>0){break e}i=p+(k<<3)|0;while(1){l=J[a>>2];if(l>>>0>=q>>>0){break e}if(M[i>>2]>=M[p+(l<<3)>>2]){a=a+4|0;e=e-1|0;if(e){continue}break b}break}f:{g:{if((e|0)<(f|0)){r=(f|0)/2|0;l=(r<<2)+b|0;h:{if((a|0)==(b|0)){k=b;break h}m=J[l>>2];if(m>>>0>=q>>>0){break e}j=b-a>>2;o=j>>>1|0;k=(o<<2)+a|0;i=J[k>>2];if(i>>>0>=q>>>0){break e}n=J[p+(m<<3)>>2];i=n>>>0>2];k=i?a:k+4|0;i=i?o:j+(o^-1)|0;if(!i){break h}while(1){o=i>>>1|0;m=(o<<2)+k|0;j=J[m>>2];if(j>>>0>=q>>>0){break e}j=n>>>0>2];k=j?k:m+4|0;i=j?o:(o^-1)+i|0;if(i){continue}break}}o=k-a>>2;break g}if((e|0)==1){J[a>>2]=k;J[b>>2]=l;return}o=(e|0)/2|0;k=(o<<2)+a|0;l=c;if((l|0)!=(b|0)){i=c-b>>2;l=J[k>>2];if(l>>>0>=q>>>0){break f}n=p+(l<<3)|0;l=b;while(1){r=i>>>1|0;m=(r<<2)+l|0;j=J[m>>2];if(j>>>0>=q>>>0){break e}j=M[p+(j<<3)>>2]>2];l=j?m+4|0:l;i=j?(r^-1)+i|0:r;if(i){continue}break}}r=l-b>>2}f=f-r|0;e=e-o|0;i=l;if((b|0)==(k|0)){break c}i=k;if((b|0)==(l|0)){break c}if((k+4|0)!=(b|0)){break d}j=J[k>>2];i=b;b=l-b|0;i=mk(k,i,b)+b|0;J[i>>2]=j;break c}}Zc();C()}if((b+4|0)==(l|0)){b=l-4|0;j=J[b>>2];i=l;if((b|0)!=(k|0)){b=b-k|0;i=l-b|0;mk(i,k,b)}J[k>>2]=j;break c}i=b;m=k;p=l-b>>2;j=p;s=b-k>>2;n=s;if((j|0)==(n|0)){while(1){j=J[m>>2];J[m>>2]=J[i>>2];J[i>>2]=j;i=i+4|0;m=m+4|0;if((m|0)!=(b|0)){continue}break}i=b;break c}while(1){b=n;n=j;j=(b|0)%(j|0)|0;if(j){continue}break}if(n){n=(n<<2)+k|0;while(1){n=n-4|0;q=s<<2;m=n+q|0;i=J[n>>2];j=n;while(1){b=j;j=m;J[b>>2]=J[j>>2];b=l-j>>2;m=(b|0)>(s|0)?j+q|0:(s-b<<2)+k|0;if((n|0)!=(m|0)){continue}break}J[j>>2]=i;if((k|0)!=(n|0)){continue}break}}i=(p<<2)+k|0}i:{if((o+r|0)<(e+f|0)){Ff(a,k,i,d,o,r,g,h);a=i;b=l;break i}Ff(i,l,c,d,e,f,g,h);f=r;e=o;c=i;b=k}if(f){continue}break}}return}vf(a,b,c,d,e,f,g)}function Cf(a,b,c,d,e,f,g,h){var i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0;a:{b:{if(!f){break b}while(1){if((e|0)<=(h|0)|(f|0)<=(h|0)){break a}if(!e){break b}i=J[d>>2];p=J[i>>2];c:{d:{q=J[i+4>>2]-p>>3;k=J[b>>2];e:{if(q>>>0<=k>>>0){break e}i=p+(k<<3)|0;while(1){l=J[a>>2];if(l>>>0>=q>>>0){break e}if(M[i>>2]>=M[p+(l<<3)>>2]){a=a+4|0;e=e-1|0;if(e){continue}break b}break}f:{g:{if((e|0)<(f|0)){r=(f|0)/2|0;l=(r<<2)+b|0;h:{if((a|0)==(b|0)){k=b;break h}m=J[l>>2];if(m>>>0>=q>>>0){break e}j=b-a>>2;o=j>>>1|0;k=(o<<2)+a|0;i=J[k>>2];if(i>>>0>=q>>>0){break e}n=J[p+(m<<3)>>2];i=n>>>0>2];k=i?a:k+4|0;i=i?o:j+(o^-1)|0;if(!i){break h}while(1){o=i>>>1|0;m=(o<<2)+k|0;j=J[m>>2];if(j>>>0>=q>>>0){break e}j=n>>>0>2];k=j?k:m+4|0;i=j?o:(o^-1)+i|0;if(i){continue}break}}o=k-a>>2;break g}if((e|0)==1){J[a>>2]=k;J[b>>2]=l;return}o=(e|0)/2|0;k=(o<<2)+a|0;l=c;if((l|0)!=(b|0)){i=c-b>>2;l=J[k>>2];if(l>>>0>=q>>>0){break f}n=p+(l<<3)|0;l=b;while(1){r=i>>>1|0;m=(r<<2)+l|0;j=J[m>>2];if(j>>>0>=q>>>0){break e}j=M[p+(j<<3)>>2]>2];l=j?m+4|0:l;i=j?(r^-1)+i|0:r;if(i){continue}break}}r=l-b>>2}f=f-r|0;e=e-o|0;i=l;if((b|0)==(k|0)){break c}i=k;if((b|0)==(l|0)){break c}if((k+4|0)!=(b|0)){break d}j=J[k>>2];i=b;b=l-b|0;i=mk(k,i,b)+b|0;J[i>>2]=j;break c}}Zc();C()}if((b+4|0)==(l|0)){b=l-4|0;j=J[b>>2];i=l;if((b|0)!=(k|0)){b=b-k|0;i=l-b|0;mk(i,k,b)}J[k>>2]=j;break c}i=b;m=k;p=l-b>>2;j=p;s=b-k>>2;n=s;if((j|0)==(n|0)){while(1){j=J[m>>2];J[m>>2]=J[i>>2];J[i>>2]=j;i=i+4|0;m=m+4|0;if((m|0)!=(b|0)){continue}break}i=b;break c}while(1){b=n;n=j;j=(b|0)%(j|0)|0;if(j){continue}break}if(n){n=(n<<2)+k|0;while(1){n=n-4|0;q=s<<2;m=n+q|0;i=J[n>>2];j=n;while(1){b=j;j=m;J[b>>2]=J[j>>2];b=l-j>>2;m=(b|0)>(s|0)?j+q|0:(s-b<<2)+k|0;if((n|0)!=(m|0)){continue}break}J[j>>2]=i;if((k|0)!=(n|0)){continue}break}}i=(p<<2)+k|0}i:{if((o+r|0)<(e+f|0)){Cf(a,k,i,d,o,r,g,h);a=i;b=l;break i}Cf(i,l,c,d,e,f,g,h);f=r;e=o;c=i;b=k}if(f){continue}break}}return}vf(a,b,c,d,e,f,g)}function ih(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0;f=ia-16|0;ia=f;J[a+4>>2]=b;J[a+8>>2]=J[b+56>>2];J[a+188>>2]=J[a+184>>2];e=J[b+48>>2];c=ll(32);H[c+19|0]=0;b=K[1278]|K[1279]<<8|(K[1280]<<16|K[1281]<<24);H[c+15|0]=b;H[c+16|0]=b>>>8;H[c+17|0]=b>>>16;H[c+18|0]=b>>>24;b=K[1275]|K[1276]<<8|(K[1277]<<16|K[1278]<<24);d=K[1271]|K[1272]<<8|(K[1273]<<16|K[1274]<<24);H[c+8|0]=d;H[c+9|0]=d>>>8;H[c+10|0]=d>>>16;H[c+11|0]=d>>>24;H[c+12|0]=b;H[c+13|0]=b>>>8;H[c+14|0]=b>>>16;H[c+15|0]=b>>>24;b=K[1267]|K[1268]<<8|(K[1269]<<16|K[1270]<<24);d=K[1263]|K[1264]<<8|(K[1265]<<16|K[1266]<<24);H[c|0]=d;H[c+1|0]=d>>>8;H[c+2|0]=d>>>16;H[c+3|0]=d>>>24;H[c+4|0]=b;H[c+5|0]=b>>>8;H[c+6|0]=b>>>16;H[c+7|0]=b>>>24;a:{b:{b=J[e+4>>2];if(b){while(1){d=K[b+27|0];e=d<<24>>24<0;d=e?J[b+20>>2]:d;h=d>>>0<19;c:{d:{e:{f:{g:{h:{g=h?d:19;if(g){e=e?J[b+16>>2]:b+16|0;i=qk(c,e,g);if(i){break h}if(d>>>0<=19){break g}break c}if(d>>>0<=19){break f}break c}if((i|0)<0){break c}}d=qk(e,c,g);if(d){break e}}if(h){break d}break b}if((d|0)>=0){break b}}b=b+4|0}b=J[b>>2];if(b){continue}break}}fl(c);if((Rb(J[J[a+4>>2]+48>>2])|0)>=6){H[a+352|0]=1;break a}H[a+352|0]=0;break a}fl(c);e=J[J[a+4>>2]+48>>2];b=ll(32);J[f>>2]=b;J[f+4>>2]=19;J[f+8>>2]=-2147483616;c=K[1278]|K[1279]<<8|(K[1280]<<16|K[1281]<<24);H[b+15|0]=c;H[b+16|0]=c>>>8;H[b+17|0]=c>>>16;H[b+18|0]=c>>>24;c=K[1275]|K[1276]<<8|(K[1277]<<16|K[1278]<<24);d=K[1271]|K[1272]<<8|(K[1273]<<16|K[1274]<<24);H[b+8|0]=d;H[b+9|0]=d>>>8;H[b+10|0]=d>>>16;H[b+11|0]=d>>>24;H[b+12|0]=c;H[b+13|0]=c>>>8;H[b+14|0]=c>>>16;H[b+15|0]=c>>>24;c=K[1267]|K[1268]<<8|(K[1269]<<16|K[1270]<<24);d=K[1263]|K[1264]<<8|(K[1265]<<16|K[1266]<<24);H[b|0]=d;H[b+1|0]=d>>>8;H[b+2|0]=d>>>16;H[b+3|0]=d>>>24;H[b+4|0]=c;H[b+5|0]=c>>>8;H[b+6|0]=c>>>16;H[b+7|0]=c>>>24;H[b+19|0]=0;j=a,k=ri(e,f,0),H[j+352|0]=k;if(H[f+11|0]>=0){break a}fl(J[f>>2])}ia=f+16|0;return 1}function Fg(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0;f=ia-16|0;ia=f;J[a+4>>2]=b;J[a+8>>2]=J[b+56>>2];J[a+188>>2]=J[a+184>>2];e=J[b+48>>2];c=ll(32);H[c+19|0]=0;b=K[1278]|K[1279]<<8|(K[1280]<<16|K[1281]<<24);H[c+15|0]=b;H[c+16|0]=b>>>8;H[c+17|0]=b>>>16;H[c+18|0]=b>>>24;b=K[1275]|K[1276]<<8|(K[1277]<<16|K[1278]<<24);d=K[1271]|K[1272]<<8|(K[1273]<<16|K[1274]<<24);H[c+8|0]=d;H[c+9|0]=d>>>8;H[c+10|0]=d>>>16;H[c+11|0]=d>>>24;H[c+12|0]=b;H[c+13|0]=b>>>8;H[c+14|0]=b>>>16;H[c+15|0]=b>>>24;b=K[1267]|K[1268]<<8|(K[1269]<<16|K[1270]<<24);d=K[1263]|K[1264]<<8|(K[1265]<<16|K[1266]<<24);H[c|0]=d;H[c+1|0]=d>>>8;H[c+2|0]=d>>>16;H[c+3|0]=d>>>24;H[c+4|0]=b;H[c+5|0]=b>>>8;H[c+6|0]=b>>>16;H[c+7|0]=b>>>24;a:{b:{b=J[e+4>>2];if(b){while(1){d=K[b+27|0];e=d<<24>>24<0;d=e?J[b+20>>2]:d;h=d>>>0<19;c:{d:{e:{f:{g:{h:{g=h?d:19;if(g){e=e?J[b+16>>2]:b+16|0;i=qk(c,e,g);if(i){break h}if(d>>>0<=19){break g}break c}if(d>>>0<=19){break f}break c}if((i|0)<0){break c}}d=qk(e,c,g);if(d){break e}}if(h){break d}break b}if((d|0)>=0){break b}}b=b+4|0}b=J[b>>2];if(b){continue}break}}fl(c);if((Rb(J[J[a+4>>2]+48>>2])|0)>=6){H[a+288|0]=1;break a}H[a+288|0]=0;break a}fl(c);e=J[J[a+4>>2]+48>>2];b=ll(32);J[f>>2]=b;J[f+4>>2]=19;J[f+8>>2]=-2147483616;c=K[1278]|K[1279]<<8|(K[1280]<<16|K[1281]<<24);H[b+15|0]=c;H[b+16|0]=c>>>8;H[b+17|0]=c>>>16;H[b+18|0]=c>>>24;c=K[1275]|K[1276]<<8|(K[1277]<<16|K[1278]<<24);d=K[1271]|K[1272]<<8|(K[1273]<<16|K[1274]<<24);H[b+8|0]=d;H[b+9|0]=d>>>8;H[b+10|0]=d>>>16;H[b+11|0]=d>>>24;H[b+12|0]=c;H[b+13|0]=c>>>8;H[b+14|0]=c>>>16;H[b+15|0]=c>>>24;c=K[1267]|K[1268]<<8|(K[1269]<<16|K[1270]<<24);d=K[1263]|K[1264]<<8|(K[1265]<<16|K[1266]<<24);H[b|0]=d;H[b+1|0]=d>>>8;H[b+2|0]=d>>>16;H[b+3|0]=d>>>24;H[b+4|0]=c;H[b+5|0]=c>>>8;H[b+6|0]=c>>>16;H[b+7|0]=c>>>24;H[b+19|0]=0;j=a,k=ri(e,f,0),H[j+288|0]=k;if(H[f+11|0]>=0){break a}fl(J[f>>2])}ia=f+16|0;return 1}function bd(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0;c=ia-32|0;ia=c;d=a- -64|0;Ab(J[d>>2],b);if(J[d>>2]){J[c>>2]=0;J[c+4>>2]=0;J[c+24>>2]=0;J[c+28>>2]=0;J[c+16>>2]=0;J[c+20>>2]=0;J[c+8>>2]=0;J[c+12>>2]=0;Ee(c);d=J[a+64>>2];if((d|0)>0){while(1){f=d-1|0;Fe(c,J[J[a+60>>2]+(f>>>3&536870908)>>2]>>>f&1);e=d>>>0>1;d=f;if(e){continue}break}}Ge(c,b);Ce(c)}Ab(J[a+76>>2],b);if(J[a+76>>2]){J[c>>2]=0;J[c+4>>2]=0;J[c+24>>2]=0;J[c+28>>2]=0;J[c+16>>2]=0;J[c+20>>2]=0;J[c+8>>2]=0;J[c+12>>2]=0;Ee(c);d=J[a+76>>2];if((d|0)>=2){while(1){f=d-2|0;Fe(c,J[J[a+72>>2]+(f>>>3&536870908)>>2]>>>f&1);e=d-1|0;Fe(c,J[J[a+72>>2]+(e>>>3&536870908)>>2]>>>e&1);e=d>>>0>3;d=f;if(e){continue}break}}Ge(c,b);Ce(c)}Ab(J[a+88>>2],b);if(J[a+88>>2]){J[c>>2]=0;J[c+4>>2]=0;J[c+24>>2]=0;J[c+28>>2]=0;J[c+16>>2]=0;J[c+20>>2]=0;J[c+8>>2]=0;J[c+12>>2]=0;Ee(c);d=J[a+88>>2];if((d|0)>=3){while(1){f=d-3|0;Fe(c,J[J[a+84>>2]+(f>>>3&536870908)>>2]>>>f&1);e=d-2|0;Fe(c,J[J[a+84>>2]+(e>>>3&536870908)>>2]>>>e&1);e=d-1|0;Fe(c,J[J[a+84>>2]+(e>>>3&536870908)>>2]>>>e&1);e=d>>>0>5;d=f;if(e){continue}break}}Ge(c,b);Ce(c)}Ab(J[a+100>>2],b);if(J[a+100>>2]){J[c>>2]=0;J[c+4>>2]=0;J[c+24>>2]=0;J[c+28>>2]=0;J[c+16>>2]=0;J[c+20>>2]=0;J[c+8>>2]=0;J[c+12>>2]=0;Ee(c);d=J[a+100>>2];if((d|0)>=4){while(1){f=d-4|0;Fe(c,J[J[a+96>>2]+(f>>>3&536870908)>>2]>>>f&1);e=d-3|0;Fe(c,J[J[a+96>>2]+(e>>>3&536870908)>>2]>>>e&1);e=d-2|0;Fe(c,J[J[a+96>>2]+(e>>>3&536870908)>>2]>>>e&1);e=d-1|0;Fe(c,J[J[a+96>>2]+(e>>>3&536870908)>>2]>>>e&1);e=d>>>0>7;d=f;if(e){continue}break}}Ge(c,b);Ce(c)}J[c>>2]=J[a+12>>2];d=J[b+20>>2];a:{if(!!J[b+16>>2]&(d|0)>=0|(d|0)>0){break a}f=c+4|0;Ea(b,J[b+4>>2],c,f);d=J[b+20>>2];e=J[b+16>>2];J[c>>2]=J[a+16>>2];if(!!e&(d|0)>=0|(d|0)>0){break a}Ea(b,J[b+4>>2],c,f)}ia=c+32|0;return 1}function Vd(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0;c=ia-32|0;ia=c;Ab(J[a+48>>2],b);if(J[a+48>>2]){J[c>>2]=0;J[c+4>>2]=0;J[c+24>>2]=0;J[c+28>>2]=0;J[c+16>>2]=0;J[c+20>>2]=0;J[c+8>>2]=0;J[c+12>>2]=0;Ee(c);d=J[a+48>>2];if((d|0)>0){while(1){f=d-1|0;Fe(c,J[J[a+44>>2]+(f>>>3&536870908)>>2]>>>f&1);e=d>>>0>1;d=f;if(e){continue}break}}Ge(c,b);Ce(c)}Ab(J[a+60>>2],b);if(J[a+60>>2]){J[c>>2]=0;J[c+4>>2]=0;J[c+24>>2]=0;J[c+28>>2]=0;J[c+16>>2]=0;J[c+20>>2]=0;J[c+8>>2]=0;J[c+12>>2]=0;Ee(c);d=J[a+60>>2];if((d|0)>=2){while(1){f=d-2|0;Fe(c,J[J[a+56>>2]+(f>>>3&536870908)>>2]>>>f&1);e=d-1|0;Fe(c,J[J[a+56>>2]+(e>>>3&536870908)>>2]>>>e&1);e=d>>>0>3;d=f;if(e){continue}break}}Ge(c,b);Ce(c)}Ab(J[a+72>>2],b);if(J[a+72>>2]){J[c>>2]=0;J[c+4>>2]=0;J[c+24>>2]=0;J[c+28>>2]=0;J[c+16>>2]=0;J[c+20>>2]=0;J[c+8>>2]=0;J[c+12>>2]=0;Ee(c);d=J[a+72>>2];if((d|0)>=3){while(1){f=d-3|0;Fe(c,J[J[a+68>>2]+(f>>>3&536870908)>>2]>>>f&1);e=d-2|0;Fe(c,J[J[a+68>>2]+(e>>>3&536870908)>>2]>>>e&1);e=d-1|0;Fe(c,J[J[a+68>>2]+(e>>>3&536870908)>>2]>>>e&1);e=d>>>0>5;d=f;if(e){continue}break}}Ge(c,b);Ce(c)}Ab(J[a+84>>2],b);if(J[a+84>>2]){J[c>>2]=0;J[c+4>>2]=0;J[c+24>>2]=0;J[c+28>>2]=0;J[c+16>>2]=0;J[c+20>>2]=0;J[c+8>>2]=0;J[c+12>>2]=0;Ee(c);d=J[a+84>>2];if((d|0)>=4){while(1){f=d-4|0;Fe(c,J[J[a+80>>2]+(f>>>3&536870908)>>2]>>>f&1);e=d-3|0;Fe(c,J[J[a+80>>2]+(e>>>3&536870908)>>2]>>>e&1);e=d-2|0;Fe(c,J[J[a+80>>2]+(e>>>3&536870908)>>2]>>>e&1);e=d-1|0;Fe(c,J[J[a+80>>2]+(e>>>3&536870908)>>2]>>>e&1);e=d>>>0>7;d=f;if(e){continue}break}}Ge(c,b);Ce(c)}J[c>>2]=J[a+12>>2];d=J[b+20>>2];a:{if(!!J[b+16>>2]&(d|0)>=0|(d|0)>0){break a}f=c+4|0;Ea(b,J[b+4>>2],c,f);d=J[b+20>>2];e=J[b+16>>2];J[c>>2]=J[a+24>>2];if(!!e&(d|0)>=0|(d|0)>0){break a}Ea(b,J[b+4>>2],c,f)}ia=c+32|0;return 1}function he(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0;d=ia-32|0;ia=d;o=e<<2;f=e>>>0>1073741823?-1:o;l=nk(ll(f),0,f);f=J[a+40>>2];f=J[f+4>>2]-J[f>>2]|0;if((f|0)>=5){q=J[a+36>>2];p=J[a+32>>2];r=e&-2;s=e&1;t=a+8|0;f=f>>>2|0;while(1){j=J[a+40>>2];g=J[j>>2];a:{b:{h=J[j+4>>2]-g>>2;j=f-1|0;if(h>>>0>j>>>0){u=P(e,j);g=J[g+(j<<2)>>2];if((g|0)==-1){break b}g=J[J[p+12>>2]+(g<<2)>>2];if((g|0)==-1){break b}k=J[q>>2];h=J[p>>2];m=J[k+(J[h+(g<<2)>>2]<<2)>>2];i=g+1|0;i=(i>>>0)%3|0?i:g-2|0;if((i|0)!=-1){i=J[h+(i<<2)>>2]}else{i=-1}c:{d:{if((g>>>0)%3|0){g=g-1|0;break d}g=g+2|0;n=-1;if((g|0)==-1){break c}}n=J[h+(g<<2)>>2]}if((j|0)<=(m|0)){break b}g=J[(i<<2)+k>>2];if((g|0)>=(j|0)){break b}h=J[k+(n<<2)>>2];if((h|0)>=(j|0)){break b}e:{if((e|0)<=0){break e}h=P(e,h);k=P(e,g);m=P(e,m);g=0;n=0;if((e|0)!=1){while(1){J[(g<<2)+l>>2]=(J[(g+h<<2)+b>>2]+J[(g+k<<2)+b>>2]|0)-J[(g+m<<2)+b>>2];i=g|1;J[(i<<2)+l>>2]=(J[(h+i<<2)+b>>2]+J[(i+k<<2)+b>>2]|0)-J[(i+m<<2)+b>>2];g=g+2|0;n=n+2|0;if((r|0)!=(n|0)){continue}break}}if(!s){break e}J[(g<<2)+l>>2]=(J[(g+h<<2)+b>>2]+J[(g+k<<2)+b>>2]|0)-J[(g+m<<2)+b>>2]}g=J[l>>2];h=J[l+4>>2];break a}Zc();C()}h=(P(f-2|0,e)<<2)+b|0;g=J[h>>2];h=J[h+4>>2]}k=u<<2;m=k+b|0;i=J[m+4>>2];J[d+16>>2]=J[m>>2];J[d+20>>2]=i;J[d+8>>2]=g;J[d+12>>2]=h;Sd(d+24|0,t,d+16|0,d+8|0);g=c+k|0;J[g>>2]=J[d+24>>2];J[g+4>>2]=J[d+28>>2];g=(f|0)>2;f=j;if(g){continue}break}}if((e|0)>0){nk(l,0,o)}e=J[l>>2];f=J[l+4>>2];j=J[b+4>>2];J[d+16>>2]=J[b>>2];J[d+20>>2]=j;J[d+8>>2]=e;J[d+12>>2]=f;Sd(d+24|0,a+8|0,d+16|0,d+8|0);J[c>>2]=J[d+24>>2];J[c+4>>2]=J[d+28>>2];fl(l);ia=d+32|0;return 1}function dk(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0;k=ia-16|0;ia=k;J[k+8>>2]=c;e=J[a+12>>2];d=J[a+8>>2];f=e-d>>2;a:{if((f|0)>(b|0)){break a}h=b+1|0;if(h>>>0>f>>>0){f=h-f|0;g=J[a+16>>2];d=J[a+12>>2];if(f>>>0<=g-d>>2>>>0){if(f){e=d;d=f<<2;d=nk(e,0,d)+d|0}J[a+12>>2]=d;break a}b:{c:{d:{h=J[a+8>>2];i=d-h>>2;e=i+f|0;if(e>>>0<1073741824){g=g-h|0;l=g>>1;g=g>>>0>=2147483644?1073741823:e>>>0>>0?l:e;if(g){if(g>>>0>=1073741824){break d}j=ll(g<<2)}e=(i<<2)+j|0;i=f<<2;f=nk(e,0,i);i=f+i|0;g=(g<<2)+j|0;if((d|0)==(h|0)){break c}while(1){d=d-4|0;f=J[d>>2];J[d>>2]=0;e=e-4|0;J[e>>2]=f;if((d|0)!=(h|0)){continue}break}J[a+16>>2]=g;f=J[a+12>>2];J[a+12>>2]=i;d=J[a+8>>2];J[a+8>>2]=e;if((d|0)==(f|0)){break b}while(1){f=f-4|0;e=J[f>>2];J[f>>2]=0;if(e){Mb(e)}if((d|0)!=(f|0)){continue}break}break b}La();C()}$a();C()}J[a+16>>2]=g;J[a+12>>2]=i;J[a+8>>2]=f}if(d){fl(d)}break a}if(f>>>0<=h>>>0){break a}d=d+(h<<2)|0;if((d|0)!=(e|0)){while(1){e=e-4|0;c=J[e>>2];J[e>>2]=0;if(c){Mb(c)}if((d|0)!=(e|0)){continue}break}c=J[k+8>>2]}J[a+12>>2]=d}e:{f:{d=J[c+56>>2];g:{if((d|0)>4){break g}e=P(d,12)+a|0;d=J[e+24>>2];if((d|0)!=J[e+28>>2]){J[d>>2]=b;J[e+24>>2]=d+4;break g}h=J[e+20>>2];f=d-h|0;j=f>>2;d=j+1|0;if(d>>>0>=1073741824){break f}g=f>>1;g=f>>>0>=2147483644?1073741823:d>>>0>>0?g:d;if(g){if(g>>>0>=1073741824){break e}d=ll(g<<2)}else{d=0}j=d+(j<<2)|0;J[j>>2]=b;if((f|0)>0){lk(d,h,f)}J[e+20>>2]=d;J[e+24>>2]=j+4;J[e+28>>2]=d+(g<<2);if(!h){break g}fl(h)}J[c+60>>2]=b;a=J[a+8>>2];J[k+8>>2]=0;b=a+(b<<2)|0;a=J[b>>2];J[b>>2]=c;if(a){Mb(a)}a=J[k+8>>2];J[k+8>>2]=0;if(a){Mb(a)}ia=k+16|0;return}La();C()}$a();C()}function tb(a,b,c,d){var e=0,f=0,g=0,h=0,i=Q(0),j=0,k=0,l=Q(0);j=J[c>>2];g=j^318;a:{b:{f=J[b+4>>2];if(!f){break b}h=am(f);c:{if(h>>>0>=2){e=g;if(e>>>0>=f>>>0){e=(g>>>0)%(f>>>0)|0}c=J[J[b>>2]+(e<<2)>>2];if(!c){break b}if(h>>>0<=1){break c}while(1){c=J[c>>2];if(!c){break b}h=J[c+4>>2];if((h|0)!=(g|0)){if(f>>>0<=h>>>0){h=(h>>>0)%(f>>>0)|0}if((e|0)!=(h|0)){break b}}if(J[c+8>>2]!=(j|0)){continue}break}b=0;break a}e=f-1&g;c=J[J[b>>2]+(e<<2)>>2];if(!c){break b}}h=f-1|0;while(1){c=J[c>>2];if(!c){break b}k=J[c+4>>2];if((k|0)!=(g|0)&(h&k)!=(e|0)){break b}if(J[c+8>>2]!=(j|0)){continue}break}b=0;break a}c=ll(16);J[c+8>>2]=J[d>>2];d=J[d+4>>2];J[c+4>>2]=g;J[c+12>>2]=d;J[c>>2]=0;i=Q(J[b+12>>2]+1>>>0);l=N[b+16>>2];d:{if(i>Q(l*Q(f>>>0))?0:f){break d}d=2;h=(f-1&f)!=0|f>>>0<3|f<<1;i=Q(W(Q(i/l)));e:{if(i=Q(0)){e=~~i>>>0;break e}e=0}e=e>>>0>>0?h:e;f:{if((e|0)==1){break f}if(!(e&e-1)){d=e;break f}d=bl(e);f=J[b+4>>2]}g:{if(d>>>0<=f>>>0){if(d>>>0>=f>>>0){break g}h=f>>>0<3;i=Q(W(Q(Q(M[b+12>>2])/N[b+16>>2])));h:{if(i=Q(0)){e=~~i>>>0;break h}e=0}i:{j:{if(h){break j}if(am(f)>>>0>1){break j}e=e>>>0<2?e:1<<32-S(e-1|0);break i}e=bl(e)}d=d>>>0>e>>>0?d:e;if(f>>>0<=d>>>0){break g}}vb(b,d)}f=J[b+4>>2];d=f-1|0;if(!(d&f)){e=d&g;break d}if(f>>>0>g>>>0){e=g;break d}e=(g>>>0)%(f>>>0)|0}g=J[b>>2]+(e<<2)|0;d=J[g>>2];k:{l:{if(!d){d=b+8|0;J[c>>2]=J[d>>2];J[b+8>>2]=c;J[g>>2]=d;d=J[c>>2];if(!d){break k}d=J[d+4>>2];g=f-1|0;m:{if(!(g&f)){d=d&g;break m}if(d>>>0>>0){break m}d=(d>>>0)%(f>>>0)|0}d=J[b>>2]+(d<<2)|0;break l}J[c>>2]=J[d>>2]}J[d>>2]=c}J[b+12>>2]=J[b+12>>2]+1;b=1}H[a+4|0]=b;J[a>>2]=c}function kd(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0;J[a+8>>2]=e;J[a- -64>>2]=f;o=a+32|0;f=J[o>>2];g=J[a+36>>2]-f>>2;a:{if(g>>>0>>0){Oa(o,e-g|0);break a}if(e>>>0>=g>>>0){break a}J[a+36>>2]=f+(e<<2)}b:{if(!d){break b}f=J[b>>2];c:{if((d|0)<2){d=f;break c}h=1;g=d-1|0;n=g&1;d:{if((d|0)==2){d=f;break d}q=g&-2;g=0;d=f;while(1){j=(h<<2)+b|0;k=J[j+4>>2];l=J[j>>2];i=(l|0)<(d|0);d=i?l:d;j=(d|0)>(k|0);d=j?k:d;f=i?f:(f|0)<(l|0)?l:f;f=j?f:(f|0)<(k|0)?k:f;h=h+2|0;g=g+2|0;if((q|0)!=(g|0)){continue}break}}if(!n){break c}h=J[(h<<2)+b>>2];g=(h|0)<(d|0);d=g?h:d;f=g?f:(f|0)<(h|0)?h:f}J[a+16>>2]=f;J[a+12>>2]=d;g=(f>>31)-((d>>31)+(d>>>0>f>>>0)|0)|0;d=f-d|0;if(!g&d>>>0>2147483646|g){break b}f=d+1|0;J[a+20>>2]=f;d=f>>>1|0;J[a+24>>2]=d;J[a+28>>2]=0-d;if(f&1){break b}J[a+24>>2]=d-1}r=1;e:{d=J[a+56>>2];d=J[d+4>>2]-J[d>>2]|0;if((d|0)>0){t=a+60|0;q=a+68|0;n=d>>>2|0;while(1){d=J[a+56>>2];f=J[d>>2];i=n-1|0;if(i>>>0>=J[d+4>>2]-f>>2>>>0){break e}r=ld(t,J[f+(i<<2)>>2],b,i);if(!r){return 0}f=J[a+8>>2];if((f|0)>0){d=P(e,i)<<2;k=d+c|0;l=b+d|0;j=J[o>>2];p=0;g=q;while(1){h=j;if((f|0)>0){h=J[o>>2];f=0;while(1){m=f<<2;s=J[m+g>>2];d=J[a+16>>2];f:{if((s|0)>(d|0)){J[h+m>>2]=d;break f}m=h+m|0;d=J[a+12>>2];if((d|0)>(s|0)){J[m>>2]=d;break f}J[m>>2]=s}f=f+1|0;if((f|0)>2]){continue}break}}f=p<<2;d=f+k|0;f=J[f+l>>2]-J[f+h>>2]|0;J[d>>2]=f;g:{if((f|0)>2]){f=f+J[a+20>>2]|0}else{if((f|0)<=J[a+24>>2]){break g}f=f-J[a+20>>2]|0}J[d>>2]=f}g=h;f=J[a+8>>2];p=p+1|0;if((f|0)>(p|0)){continue}break}}d=(n|0)>1;n=i;if(d){continue}break}}return r|0}Zc();C()}function Dd(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0;J[a+8>>2]=e;J[a- -64>>2]=f;o=a+32|0;f=J[o>>2];g=J[a+36>>2]-f>>2;a:{if(g>>>0>>0){Oa(o,e-g|0);break a}if(e>>>0>=g>>>0){break a}J[a+36>>2]=f+(e<<2)}b:{if(!d){break b}f=J[b>>2];c:{if((d|0)<2){d=f;break c}h=1;g=d-1|0;n=g&1;d:{if((d|0)==2){d=f;break d}q=g&-2;g=0;d=f;while(1){j=(h<<2)+b|0;k=J[j+4>>2];l=J[j>>2];i=(l|0)<(d|0);d=i?l:d;j=(d|0)>(k|0);d=j?k:d;f=i?f:(f|0)<(l|0)?l:f;f=j?f:(f|0)<(k|0)?k:f;h=h+2|0;g=g+2|0;if((q|0)!=(g|0)){continue}break}}if(!n){break c}h=J[(h<<2)+b>>2];g=(h|0)<(d|0);d=g?h:d;f=g?f:(f|0)<(h|0)?h:f}J[a+16>>2]=f;J[a+12>>2]=d;g=(f>>31)-((d>>31)+(d>>>0>f>>>0)|0)|0;d=f-d|0;if(!g&d>>>0>2147483646|g){break b}f=d+1|0;J[a+20>>2]=f;d=f>>>1|0;J[a+24>>2]=d;J[a+28>>2]=0-d;if(f&1){break b}J[a+24>>2]=d-1}r=1;e:{d=J[a+56>>2];d=J[d+4>>2]-J[d>>2]|0;if((d|0)>0){t=a+60|0;q=a+68|0;n=d>>>2|0;while(1){d=J[a+56>>2];f=J[d>>2];i=n-1|0;if(i>>>0>=J[d+4>>2]-f>>2>>>0){break e}r=Ed(t,J[f+(i<<2)>>2],b,i);if(!r){return 0}f=J[a+8>>2];if((f|0)>0){d=P(e,i)<<2;k=d+c|0;l=b+d|0;j=J[o>>2];p=0;g=q;while(1){h=j;if((f|0)>0){h=J[o>>2];f=0;while(1){m=f<<2;s=J[m+g>>2];d=J[a+16>>2];f:{if((s|0)>(d|0)){J[h+m>>2]=d;break f}m=h+m|0;d=J[a+12>>2];if((d|0)>(s|0)){J[m>>2]=d;break f}J[m>>2]=s}f=f+1|0;if((f|0)>2]){continue}break}}f=p<<2;d=f+k|0;f=J[f+l>>2]-J[f+h>>2]|0;J[d>>2]=f;g:{if((f|0)>2]){f=f+J[a+20>>2]|0}else{if((f|0)<=J[a+24>>2]){break g}f=f-J[a+20>>2]|0}J[d>>2]=f}g=h;f=J[a+8>>2];p=p+1|0;if((f|0)>(p|0)){continue}break}}d=(n|0)>1;n=i;if(d){continue}break}}return r|0}Zc();C()}function dh(a,b,c,d){var e=0,f=0,g=0,h=0,i=Q(0),j=0,k=Q(0);h=J[c>>2];a:{b:{e=J[b+4>>2];if(!e){break b}g=am(e);c:{if(g>>>0>=2){f=h;if(f>>>0>=e>>>0){f=(h>>>0)%(e>>>0)|0}c=J[J[b>>2]+(f<<2)>>2];if(!c){break b}if(g>>>0<=1){break c}while(1){c=J[c>>2];if(!c){break b}g=J[c+4>>2];if((g|0)!=(h|0)){if(e>>>0<=g>>>0){g=(g>>>0)%(e>>>0)|0}if((f|0)!=(g|0)){break b}}if(J[c+8>>2]!=(h|0)){continue}break}b=0;break a}f=e-1&h;c=J[J[b>>2]+(f<<2)>>2];if(!c){break b}}g=e-1|0;while(1){c=J[c>>2];if(!c){break b}j=J[c+4>>2];if((j|0)!=(h|0)&(g&j)!=(f|0)){break b}if(J[c+8>>2]!=(h|0)){continue}break}b=0;break a}c=ll(16);d=J[J[d>>2]>>2];J[c+12>>2]=0;J[c+8>>2]=d;J[c+4>>2]=h;J[c>>2]=0;k=Q(J[b+12>>2]+1>>>0);i=N[b+16>>2];d:{if(k>Q(i*Q(e>>>0))?0:e){break d}f=2;g=(e-1&e)!=0|e>>>0<3|e<<1;i=Q(W(Q(k/i)));e:{if(i=Q(0)){d=~~i>>>0;break e}d=0}d=d>>>0>>0?g:d;f:{if((d|0)==1){break f}if(!(d&d-1)){f=d;break f}f=bl(d);e=J[b+4>>2]}g:{if(e>>>0>=f>>>0){if(e>>>0<=f>>>0){break g}g=e>>>0<3;i=Q(W(Q(Q(M[b+12>>2])/N[b+16>>2])));h:{if(i=Q(0)){d=~~i>>>0;break h}d=0}i:{j:{if(g){break j}if(am(e)>>>0>1){break j}d=d>>>0<2?d:1<<32-S(d-1|0);break i}d=bl(d)}f=d>>>0>>0?f:d;if(f>>>0>=e>>>0){break g}}vb(b,f)}e=J[b+4>>2];d=e-1|0;if(!(d&e)){f=d&h;break d}if(e>>>0>h>>>0){f=h;break d}f=(h>>>0)%(e>>>0)|0}f=J[b>>2]+(f<<2)|0;d=J[f>>2];k:{l:{if(!d){d=b+8|0;J[c>>2]=J[d>>2];J[b+8>>2]=c;J[f>>2]=d;d=J[c>>2];if(!d){break k}d=J[d+4>>2];f=e-1|0;m:{if(!(f&e)){d=d&f;break m}if(d>>>0>>0){break m}d=(d>>>0)%(e>>>0)|0}d=J[b>>2]+(d<<2)|0;break l}J[c>>2]=J[d>>2]}J[d>>2]=c}J[b+12>>2]=J[b+12>>2]+1;b=1}H[a+4|0]=b;J[a>>2]=c}function Rd(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0;d=ia-32|0;ia=d;p=e<<2;f=e>>>0>1073741823?-1:p;l=nk(ll(f),0,f);f=J[a+40>>2];f=J[f+4>>2]-J[f>>2]|0;if((f|0)>=5){q=J[a+36>>2];n=J[a+32>>2];r=e&-2;s=e&1;t=a+8|0;f=f>>>2|0;while(1){i=J[a+40>>2];g=J[i>>2];a:{b:{h=J[i+4>>2]-g>>2;i=f-1|0;if(h>>>0>i>>>0){u=P(e,i);g=J[g+(i<<2)>>2];if((g|0)==-1|J[J[n>>2]+(g>>>3&536870908)>>2]>>>g&1){break b}g=J[J[J[n+64>>2]+12>>2]+(g<<2)>>2];if((g|0)==-1){break b}k=J[q>>2];h=J[n+28>>2];m=J[k+(J[h+(g<<2)>>2]<<2)>>2];if((m|0)>=(i|0)){break b}j=g+1|0;j=J[k+(J[h+(((j>>>0)%3|0?j:g-2|0)<<2)>>2]<<2)>>2];if((j|0)>=(i|0)){break b}g=J[k+(J[h+(g+((g>>>0)%3|0?-1:2)<<2)>>2]<<2)>>2];if((g|0)>=(i|0)){break b}c:{if((e|0)<=0){break c}h=P(e,g);k=P(e,j);m=P(e,m);g=0;o=0;if((e|0)!=1){while(1){J[(g<<2)+l>>2]=(J[(g+h<<2)+b>>2]+J[(g+k<<2)+b>>2]|0)-J[(g+m<<2)+b>>2];j=g|1;J[(j<<2)+l>>2]=(J[(h+j<<2)+b>>2]+J[(j+k<<2)+b>>2]|0)-J[(j+m<<2)+b>>2];g=g+2|0;o=o+2|0;if((r|0)!=(o|0)){continue}break}}if(!s){break c}J[(g<<2)+l>>2]=(J[(g+h<<2)+b>>2]+J[(g+k<<2)+b>>2]|0)-J[(g+m<<2)+b>>2]}g=J[l>>2];h=J[l+4>>2];break a}Zc();C()}h=(P(f-2|0,e)<<2)+b|0;g=J[h>>2];h=J[h+4>>2]}k=u<<2;m=k+b|0;j=J[m+4>>2];J[d+16>>2]=J[m>>2];J[d+20>>2]=j;J[d+8>>2]=g;J[d+12>>2]=h;Sd(d+24|0,t,d+16|0,d+8|0);g=c+k|0;J[g>>2]=J[d+24>>2];J[g+4>>2]=J[d+28>>2];g=(f|0)>2;f=i;if(g){continue}break}}if((e|0)>0){nk(l,0,p)}e=J[l>>2];f=J[l+4>>2];i=J[b+4>>2];J[d+16>>2]=J[b>>2];J[d+20>>2]=i;J[d+8>>2]=e;J[d+12>>2]=f;Sd(d+24|0,a+8|0,d+16|0,d+8|0);J[c>>2]=J[d+24>>2];J[c+4>>2]=J[d+28>>2];fl(l);ia=d+32|0;return 1}function Ge(a,b){var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0;g=ia-32|0;ia=g;e=J[a>>2];d=J[e>>2];c=J[e+4>>2];j=+(d>>>0)+ +(c>>>0)*4294967296;c=J[e+12>>2]+c|0;e=J[e+8>>2];d=e+d|0;c=d>>>0>>0?c+1|0:c;e=!(c|d);j=j/(+((e?1:d)>>>0)+ +((e?0:c)>>>0)*4294967296)*256+.5;a:{if(j<4294967296&j>=0){c=~~j>>>0;break a}c=0}c=c>>>0>=255?255:c;k=!c+c|0;H[g+23|0]=k;i=J[a+16>>2];n=J[a+12>>2];J[g+16>>2]=0;J[g+8>>2]=0;J[g+12>>2]=0;b:{c:{c=(i-n<<1)- -64|0;if(c){if((c|0)<0){break c}h=ll(c);nk(h,0,c)}c=J[a+28>>2]-1|0;if((c|0)<0){d=4096;break b}l=0-k|0;o=l&255;p=J[a+24>>2];d=4096;while(1){m=p&1<>>0<=d>>>0){H[f+h|0]=d;f=f+1|0;d=d>>>8|0}q=256-e|0;e=(e<<3)+12784|0;Zl(J[e>>2],0,d,0);d=((m?0:o)+d|0)+P(q,ma+d>>>J[e+4>>2]|0)|0;c=c-1|0;if((c|0)>=0){continue}break}break b}La();C()}if((i|0)!=(n|0)){l=0-k|0;o=l&255;while(1){i=i-4|0;p=J[i>>2];c=31;while(1){e=c;m=p&1<>>0<=d>>>0){H[f+h|0]=d;f=f+1|0;d=d>>>8|0}q=256-c|0;c=(c<<3)+12784|0;Zl(J[c>>2],0,d,0);d=((m?0:o)+d|0)+P(q,ma+d>>>J[c+4>>2]|0)|0;c=e-1|0;if(e){continue}break}if((i|0)!=(n|0)){continue}break}}c=d-4096|0;d:{if(c>>>0<=63){H[f+h|0]=d;f=f+1|0;break d}if(c>>>0<=16383){c=f+h|0;H[c|0]=d;H[c+1|0]=d+12288>>>8;f=f+2|0;break d}if(c>>>0>4194303){break d}c=f+h|0;H[c|0]=d;e=d+8384512|0;H[c+2|0]=e>>>16;H[c+1|0]=e>>>8;f=f+3|0}c=J[b+20>>2];if(!J[b+16>>2]&(c|0)<=0|(c|0)<0){Ea(b,J[b+4>>2],g+23|0,g+24|0)}Ab(f,b);c=J[b+20>>2];if(!J[b+16>>2]&(c|0)<=0|(c|0)<0){Ea(b,J[b+4>>2],h,f+h|0)}J[g+24>>2]=0;J[g+28>>2]=0;De(a,g+24|0);J[a+24>>2]=0;J[a+28>>2]=0;J[a+16>>2]=J[a+12>>2];if(h){fl(h)}ia=g+32|0}function He(a){var b=0,c=0,d=0,e=0;d=ia-16|0;ia=d;J[a+4>>2]=0;J[a+8>>2]=0;c=a+16|0;b=c;J[b>>2]=0;J[b+4>>2]=0;J[a>>2]=a+4;b=a+28|0;J[b>>2]=0;J[b+4>>2]=0;J[a+12>>2]=c;J[a+24>>2]=b;b=ll(32);J[d>>2]=b;J[d+4>>2]=20;J[d+8>>2]=-2147483616;c=K[1359]|K[1360]<<8|(K[1361]<<16|K[1362]<<24);H[b+16|0]=c;H[b+17|0]=c>>>8;H[b+18|0]=c>>>16;H[b+19|0]=c>>>24;c=K[1355]|K[1356]<<8|(K[1357]<<16|K[1358]<<24);e=K[1351]|K[1352]<<8|(K[1353]<<16|K[1354]<<24);H[b+8|0]=e;H[b+9|0]=e>>>8;H[b+10|0]=e>>>16;H[b+11|0]=e>>>24;H[b+12|0]=c;H[b+13|0]=c>>>8;H[b+14|0]=c>>>16;H[b+15|0]=c>>>24;c=K[1347]|K[1348]<<8|(K[1349]<<16|K[1350]<<24);e=K[1343]|K[1344]<<8|(K[1345]<<16|K[1346]<<24);H[b|0]=e;H[b+1|0]=e>>>8;H[b+2|0]=e>>>16;H[b+3|0]=e>>>24;H[b+4|0]=c;H[b+5|0]=c>>>8;H[b+6|0]=c>>>16;H[b+7|0]=c>>>24;H[b+20|0]=0;e=a+24|0;mi(e,d,1);if(H[d+11|0]<0){fl(J[d>>2])}a=ll(32);J[d>>2]=a;J[d+4>>2]=22;J[d+8>>2]=-2147483616;b=K[1338]|K[1339]<<8|(K[1340]<<16|K[1341]<<24);c=K[1334]|K[1335]<<8|(K[1336]<<16|K[1337]<<24);H[a+14|0]=c;H[a+15|0]=c>>>8;H[a+16|0]=c>>>16;H[a+17|0]=c>>>24;H[a+18|0]=b;H[a+19|0]=b>>>8;H[a+20|0]=b>>>16;H[a+21|0]=b>>>24;b=K[1332]|K[1333]<<8|(K[1334]<<16|K[1335]<<24);c=K[1328]|K[1329]<<8|(K[1330]<<16|K[1331]<<24);H[a+8|0]=c;H[a+9|0]=c>>>8;H[a+10|0]=c>>>16;H[a+11|0]=c>>>24;H[a+12|0]=b;H[a+13|0]=b>>>8;H[a+14|0]=b>>>16;H[a+15|0]=b>>>24;b=K[1324]|K[1325]<<8|(K[1326]<<16|K[1327]<<24);c=K[1320]|K[1321]<<8|(K[1322]<<16|K[1323]<<24);H[a|0]=c;H[a+1|0]=c>>>8;H[a+2|0]=c>>>16;H[a+3|0]=c>>>24;H[a+4|0]=b;H[a+5|0]=b>>>8;H[a+6|0]=b>>>16;H[a+7|0]=b>>>24;H[a+22|0]=0;mi(e,d,1);if(H[d+11|0]<0){fl(J[d>>2])}ia=d+16|0}function Ng(a,b){var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0;c=ia-112|0;ia=c;d=ll(120);i=J[a+8>>2];J[d+12>>2]=0;J[d+16>>2]=0;J[d>>2]=11224;J[d+4>>2]=0;J[d+20>>2]=0;J[d+24>>2]=0;J[d+28>>2]=0;J[d+32>>2]=0;J[d+36>>2]=0;J[d+40>>2]=0;J[d+44>>2]=0;J[d+48>>2]=0;J[d+52>>2]=0;J[d+56>>2]=0;J[d+60>>2]=0;J[d+8>>2]=11436;e=d- -64|0;J[e>>2]=0;J[e+4>>2]=0;J[d+72>>2]=0;J[d+76>>2]=0;J[d+80>>2]=0;J[d+84>>2]=0;J[d+88>>2]=0;J[d+116>>2]=0;J[d+112>>2]=b;J[d+108>>2]=i;J[d+104>>2]=0;J[d+96>>2]=0;J[d+100>>2]=0;g=J[a+12>>2];J[c+48>>2]=0;J[c+52>>2]=0;J[c+40>>2]=0;J[c+44>>2]=0;f=c+32|0;e=f;J[e>>2]=0;J[e+4>>2]=0;J[c+24>>2]=0;J[c+28>>2]=0;e=c- -64|0;J[e>>2]=0;J[e+4>>2]=0;J[c+72>>2]=0;J[c+76>>2]=0;J[c+80>>2]=0;J[c+84>>2]=0;J[c+88>>2]=0;J[c+104>>2]=0;J[c+16>>2]=0;J[c+20>>2]=0;J[c+56>>2]=0;J[c+60>>2]=0;J[c+8>>2]=11436;J[c+96>>2]=0;J[c+100>>2]=0;J[c+12>>2]=g;h=J[g>>2];e=J[g+4>>2];H[c+111|0]=0;j=f;f=c+111|0;Kg(j,(e-h>>2>>>0)/3|0,f);e=J[c+12>>2];h=J[e+28>>2];e=J[e+24>>2];H[c+111|0]=0;Kg(c+44|0,h-e>>2,f);J[c+28>>2]=d;J[c+24>>2]=i;J[c+20>>2]=b;J[c+16>>2]=g;J[d+116>>2]=a+72;a=d+8|0;b=c+8|0;Lg(a,b);a:{if((a|0)==(b|0)){J[d+92>>2]=J[b+84>>2];break a}Mg(d+56|0,J[b+48>>2],J[b+52>>2]);Mg(d+68|0,J[b+60>>2],J[b- -64>>2]);Mg(d+80|0,J[b+72>>2],J[b+76>>2]);J[d+92>>2]=J[b+84>>2];Ta(d+96|0,J[b+88>>2],J[b+92>>2])}J[c+8>>2]=11436;a=J[c+96>>2];if(a){J[c+100>>2]=a;fl(a)}a=J[c+80>>2];if(a){J[c+84>>2]=a;fl(a)}a=J[c+68>>2];if(a){J[c+72>>2]=a;fl(a)}a=J[c+56>>2];if(a){J[c+60>>2]=a;fl(a)}J[c+8>>2]=11672;a=J[c+44>>2];if(a){fl(a)}a=J[c+32>>2];if(a){fl(a)}ia=c+112|0;return d}function Ij(a,b,c){var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0;e=J[a+8>>2];g=J[a+4>>2];if((e-g|0)/12>>>0>=b>>>0){a:{if(!b){break a}b=P(b,12);e=b-12|0;f=((e>>>0)/12|0)+1&3;b:{if(!f){d=g;break b}d=g;while(1){j=J[c+4>>2];J[d>>2]=J[c>>2];J[d+4>>2]=j;J[d+8>>2]=J[c+8>>2];d=d+12|0;h=h+1|0;if((f|0)!=(h|0)){continue}break}}g=b+g|0;if(e>>>0<36){break a}while(1){b=J[c+4>>2];J[d>>2]=J[c>>2];J[d+4>>2]=b;J[d+8>>2]=J[c+8>>2];J[d+20>>2]=J[c+8>>2];b=J[c+4>>2];J[d+12>>2]=J[c>>2];J[d+16>>2]=b;J[d+32>>2]=J[c+8>>2];b=J[c+4>>2];J[d+24>>2]=J[c>>2];J[d+28>>2]=b;b=J[c+4>>2];J[d+36>>2]=J[c>>2];J[d+40>>2]=b;J[d+44>>2]=J[c+8>>2];d=d+48|0;if((g|0)!=(d|0)){continue}break}}J[a+4>>2]=g;return}c:{f=J[a>>2];i=(g-f|0)/12|0;d=i+b|0;if(d>>>0<357913942){e=(e-f|0)/12|0;f=e<<1;f=e>>>0>=178956970?357913941:d>>>0>>0?f:d;if(f){if(f>>>0>=357913942){break c}j=ll(P(f,12))}e=P(i,12)+j|0;d=e;b=P(b,12);i=b-12|0;k=((i>>>0)/12|0)+1&3;if(k){d=e;while(1){l=J[c+4>>2];J[d>>2]=J[c>>2];J[d+4>>2]=l;J[d+8>>2]=J[c+8>>2];d=d+12|0;h=h+1|0;if((k|0)!=(h|0)){continue}break}}h=b+e|0;if(i>>>0>=36){while(1){b=J[c+4>>2];J[d>>2]=J[c>>2];J[d+4>>2]=b;J[d+8>>2]=J[c+8>>2];J[d+20>>2]=J[c+8>>2];b=J[c+4>>2];J[d+12>>2]=J[c>>2];J[d+16>>2]=b;J[d+32>>2]=J[c+8>>2];b=J[c+4>>2];J[d+24>>2]=J[c>>2];J[d+28>>2]=b;b=J[c+4>>2];J[d+36>>2]=J[c>>2];J[d+40>>2]=b;J[d+44>>2]=J[c+8>>2];d=d+48|0;if((h|0)!=(d|0)){continue}break}}b=J[a>>2];c=g-b|0;d=e+P((c|0)/-12|0,12)|0;if((c|0)>0){lk(d,b,c)}J[a+8>>2]=P(f,12)+j;J[a+4>>2]=h;J[a>>2]=d;if(b){fl(b)}return}La();C()}$a();C()}function Ob(a,b,c,d){var e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0;g=ia-32|0;ia=g;n=a+4|0;a=ec(a,b);a:{if((n|0)==(a|0)){break a}b:{if(H[a+39|0]>=0){J[g+24>>2]=J[a+36>>2];b=J[a+32>>2];J[g+16>>2]=J[a+28>>2];J[g+20>>2]=b;break b}sl(g+16|0,J[a+28>>2],J[a+32>>2])}b=K[g+27|0];a=b<<24>>24;if(!(!((a|0)<0?J[g+20>>2]:b)|(c|0)<=0)){b=0;a=(a|0)<0?J[g+16>>2]:g+16|0;while(1){c:{m=ia-16|0;ia=m;Ck(m,a,g+12|0,0);h=J[m>>2];l=J[m+4>>2];i=ia-32|0;ia=i;o=J[m+12>>2];j=o&2147483647;f=j;e=f-1065418752|0;k=f-1082064896|0;j=J[m+8>>2];d:{if((e|0)==(k|0)&j>>>0>>0|e>>>0>>0){f=(o&33554431)<<7|j>>>25;e=0;n=e;k=j&33554431;if(!(!e&(k|0)==16777216?!(h|l):!e&k>>>0<16777216)){e=f+1073741825|0;break d}e=f+1073741824|0;if(k^16777216|h|(l|n)){break d}e=(f&1)+e|0;break d}if(!(!j&(f|0)==2147418112?!(h|l):f>>>0<2147418112)){e=((o&33554431)<<7|j>>>25)&4194303|2143289344;break d}e=2139095040;if(f>>>0>1082064895){break d}e=0;f=f>>>16|0;if(f>>>0<16145){break d}e=o&65535|65536;Rk(i+16|0,h,l,j,e,f-16129|0);Yk(i,h,l,j,e,16257-f|0);h=J[i+8>>2];e=(J[i+12>>2]&33554431)<<7|h>>>25;k=J[i>>2]|(J[i+16>>2]|J[i+24>>2]|(J[i+20>>2]|J[i+28>>2]))!=0;l=J[i+4>>2];f=0;h=h&33554431;if(!(!f&(h|0)==16777216?!(k|l):!f&h>>>0<16777216)){e=e+1|0;break d}if(h^16777216|k|(f|l)){break d}e=(e&1)+e|0}ia=i+32|0;ia=m+16|0;n=a;a=J[g+12>>2];if((n|0)==(a|0)){break c}J[(b<<2)+d>>2]=o&-2147483648|e;b=b+1|0;if((c|0)!=(b|0)){continue}}break}a=K[g+27|0]}if(a<<24>>24>=0){break a}fl(J[g+16>>2])}ia=g+32|0}function Ea(a,b,c,d){var e=0,f=0,g=0,h=0,i=0,j=0,k=0;i=d-c|0;if((i|0)<=0){return}a:{g=J[a+8>>2];h=J[a+4>>2];if((g-h|0)>=(i|0)){j=h-b|0;if((j|0)>=(i|0)){f=h;g=d;break a}f=h;g=c+j|0;if((g|0)!=(d|0)){e=g;while(1){H[f|0]=K[e|0];f=f+1|0;e=e+1|0;if((e|0)!=(d|0)){continue}break}}J[a+4>>2]=f;if((j|0)>0){break a}return}f=J[a>>2];e=(h-f|0)+i|0;if((e|0)>=0){j=b-f|0;g=g-f|0;k=g<<1;k=g>>>0>=1073741823?2147483647:e>>>0>>0?k:e;if(k){g=ll(k)}else{g=0}e=j+g|0;if((c|0)!=(d|0)){e=lk(e,c,i)+i|0}if((j|0)>0){lk(g,f,j)}if((b|0)!=(h|0)){d=(b^-1)+h|0;f=h-b&7;if(f){c=0;while(1){H[e|0]=K[b|0];e=e+1|0;b=b+1|0;c=c+1|0;if((f|0)!=(c|0)){continue}break}}if(d>>>0>=7){while(1){H[e|0]=K[b|0];H[e+1|0]=K[b+1|0];H[e+2|0]=K[b+2|0];H[e+3|0]=K[b+3|0];H[e+4|0]=K[b+4|0];H[e+5|0]=K[b+5|0];H[e+6|0]=K[b+6|0];H[e+7|0]=K[b+7|0];e=e+8|0;b=b+8|0;if((h|0)!=(b|0)){continue}break}}f=J[a>>2]}J[a+8>>2]=g+k;J[a+4>>2]=e;J[a>>2]=g;if(f){fl(f)}return}La();C()}e=f;d=e-i|0;if(h>>>0>d>>>0){while(1){H[e|0]=K[d|0];e=e+1|0;d=d+1|0;if(h>>>0>d>>>0){continue}break}}J[a+4>>2]=e;a=b+i|0;if((a|0)!=(f|0)){a=f-a|0;mk(f-a|0,b,a)}if((c|0)==(g|0)){return}a=(c^-1)+g|0;f=g-c&7;b:{if(!f){e=b;break b}d=0;e=b;while(1){H[e|0]=K[c|0];e=e+1|0;c=c+1|0;d=d+1|0;if((f|0)!=(d|0)){continue}break}}if(a>>>0<7){return}while(1){H[e|0]=K[c|0];H[e+1|0]=K[c+1|0];H[e+2|0]=K[c+2|0];H[e+3|0]=K[c+3|0];H[e+4|0]=K[c+4|0];H[e+5|0]=K[c+5|0];H[e+6|0]=K[c+6|0];H[e+7|0]=K[c+7|0];e=e+8|0;c=c+8|0;if((g|0)!=(c|0)){continue}break}}function gk(a,b){var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0;a:{b:{if(b){if(b>>>0>=1073741824){break a}d=ll(b<<2);e=J[a>>2];J[a>>2]=d;if(e){fl(e)}J[a+4>>2]=b;if(b>>>0>=4){f=b&-4;e=0;while(1){d=c<<2;J[d+J[a>>2]>>2]=0;J[J[a>>2]+(d|4)>>2]=0;J[J[a>>2]+(d|8)>>2]=0;J[J[a>>2]+(d|12)>>2]=0;c=c+4|0;e=e+4|0;if((f|0)!=(e|0)){continue}break}}e=b&3;if(e){while(1){J[J[a>>2]+(c<<2)>>2]=0;c=c+1|0;i=i+1|0;if((e|0)!=(i|0)){continue}break}}f=J[a+8>>2];if(!f){break b}e=a+8|0;g=J[f+4>>2];d=am(b);c:{if(d>>>0<=1){g=b-1&g;break c}if(b>>>0>g>>>0){break c}g=(g>>>0)%(b>>>0)|0}J[J[a>>2]+(g<<2)>>2]=e;e=J[f>>2];if(!e){break b}q=b-1|0;r=d>>>0>1;while(1){c=J[e+4>>2];d:{if(!r){c=c&q;break d}if(b>>>0>c>>>0){break d}c=(c>>>0)%(b>>>0)|0}e:{if((c|0)==(g|0)){f=e;break e}f:{g:{k=c<<2;d=k+J[a>>2]|0;if(J[d>>2]){j=0;c=J[e>>2];if(!c){d=e;break f}d=J[a+24>>2];m=J[d+8>>2];d=J[d+12>>2]-m|0;if((d|0)<=0){break g}l=d>>2;s=(l|0)<=1?1:l;n=J[e+8>>2];d=e;while(1){j=c;o=J[c+8>>2];c=0;p=1;while(1){i=o;h=J[(c<<2)+m>>2];if(K[h+84|0]){h=n}else{h=J[h+68>>2];i=J[h+(o<<2)>>2];h=J[h+(n<<2)>>2]}if((h|0)==(i|0)){c=c+1|0;p=(l|0)>(c|0);if((c|0)!=(s|0)){continue}}break}if(p){break f}d=j;c=J[d>>2];if(c){continue}break}j=0;break f}J[d>>2]=f;f=e;g=c;break e}while(1){d=c;c=J[c>>2];if(c){continue}break}}J[f>>2]=j;J[d>>2]=J[J[J[a>>2]+k>>2]>>2];J[J[J[a>>2]+k>>2]>>2]=e}e=J[f>>2];if(e){continue}break}break b}b=J[a>>2];J[a>>2]=0;if(b){fl(b)}J[a+4>>2]=0}return}$a();C()}function xe(a,b){var c=0,d=0,e=0,f=0,g=0,h=0,i=0;f=J[b+48>>2];d=ia-32|0;ia=d;J[d+28>>2]=a;a=0;a:{if((Rb(f)|0)>9){break a}if((na[J[J[b>>2]+8>>2]](b)|0)!=1){break a}a=ll(32);J[d+16>>2]=a;J[d+20>>2]=17;J[d+24>>2]=-2147483616;H[a+16|0]=K[1261];e=K[1257]|K[1258]<<8|(K[1259]<<16|K[1260]<<24);c=K[1253]|K[1254]<<8|(K[1255]<<16|K[1256]<<24);H[a+8|0]=c;H[a+9|0]=c>>>8;H[a+10|0]=c>>>16;H[a+11|0]=c>>>24;H[a+12|0]=e;H[a+13|0]=e>>>8;H[a+14|0]=e>>>16;H[a+15|0]=e>>>24;e=K[1249]|K[1250]<<8|(K[1251]<<16|K[1252]<<24);c=K[1245]|K[1246]<<8|(K[1247]<<16|K[1248]<<24);H[a|0]=c;H[a+1|0]=c>>>8;H[a+2|0]=c>>>16;H[a+3|0]=c>>>24;H[a+4|0]=e;H[a+5|0]=e>>>8;H[a+6|0]=e>>>16;H[a+7|0]=e>>>24;H[a+17|0]=0;a=Ib(f,d+28|0,d+16|0,-1);if(H[d+27|0]<0){fl(J[d+16>>2])}c=J[b+4>>2];e=J[J[c+8>>2]+(J[d+28>>2]<<2)>>2];b:{if((a|0)==-1|J[e+56>>2]!=3|K[e+24|0]!=2){break b}c=bk(c);if(!c){break b}c=J[c+28>>2];if(!(2558>>>c&c>>>0<12)){h=d,i=ak(J[b+4>>2],0),J[h+12>>2]=i;c=ye(d+16|0,1245);g=Ib(f,d+12|0,c,-1);if(H[c+11|0]<0){fl(J[c>>2])}if((a+(g<<1)|0)>63|g-1>>>0>20){break b}}a=5;if((Rb(f)|0)<4){break a}}a=J[e+56>>2];e=Rb(f);if((a|0)==1){c:{if((e|0)>3){break c}h=d,i=ak(J[b+4>>2],0),J[h+12>>2]=i;a=bk(J[b+4>>2]);if(!a){break c}a=J[a+28>>2];if(2558>>>a&a>>>0<12){a=6;break a}a=ye(d+16|0,1245);b=Ib(f,d+12|0,a,-1);if(H[a+11|0]<0){fl(J[a>>2])}a=6;if((b|0)>0){break a}}a=0;break a}a=0;if((e|0)>7){break a}a=1;if((Rb(f)|0)>1){break a}a=M[J[b+4>>2]+80>>2]<40?1:4}ia=d+32|0;return a}function xf(a,b,c,d,e,f){var g=0,h=0,i=0,j=0,k=0;a:{b:{c:{d:{switch(d|0){case 2:d=J[c>>2];c=J[d>>2];d=J[d+4>>2]-c>>3;e=b-4|0;b=J[e>>2];if(d>>>0<=b>>>0){break c}f=d;d=J[a>>2];if(f>>>0<=d>>>0){break c}if(M[c+(b<<3)>>2]>=M[c+(d<<3)>>2]){break a}J[a>>2]=b;J[e>>2]=d;break a;case 0:case 1:break a;default:break d}}if((d|0)>128){break b}if((a|0)==(b|0)){break a}d=a+4|0;if((d|0)==(b|0)){break a}i=J[c>>2];while(1){f=J[d>>2];e:{e=a;if((e|0)==(d|0)){break e}f:{h=J[i>>2];j=J[i+4>>2]-h>>3;if(j>>>0<=f>>>0){break f}k=h+(f<<3)|0;e=d;while(1){c=e-4|0;g=J[c>>2];if(g>>>0>=j>>>0){break f}if(M[k>>2]>=M[h+(g<<3)>>2]){break e}J[e>>2]=g;e=c;if((e|0)!=(a|0)){continue}break}e=a;break e}Zc();C()}J[e>>2]=f;d=d+4|0;if((d|0)!=(b|0)){continue}break}break a}Zc();C()}h=d>>>1|0;g=d-h|0;j=h<<2;i=j+a|0;g:{h:{if((d|0)<=(f|0)){yf(a,i,c,h,e);f=b;b=e+j|0;yf(i,f,c,g,b);f=(d<<2)+e|0;c=J[c>>2];d=b;while(1){if((d|0)==(f|0)){if((b|0)==(e|0)){break a}while(1){J[a>>2]=J[e>>2];a=a+4|0;e=e+4|0;if((b|0)!=(e|0)){continue}break}break a}i=J[c>>2];g=J[c+4>>2]-i>>3;h=J[d>>2];if(g>>>0<=h>>>0){break h}k=g;g=J[e>>2];if(k>>>0<=g>>>0){break h}i:{if(M[i+(h<<3)>>2]>2]){J[a>>2]=h;d=d+4|0;break i}J[a>>2]=g;e=e+4|0}a=a+4|0;if((b|0)!=(e|0)){continue}break}break g}xf(a,i,c,h,e,f);xf(i,b,c,g,e,f);zf(a,i,b,c,h,g,e,f);return}Zc();C()}if((d|0)==(f|0)){break a}while(1){J[a>>2]=J[d>>2];a=a+4|0;d=d+4|0;if((f|0)!=(d|0)){continue}break}}}function rg(a,b,c,d,e,f){var g=0,h=0,i=0,j=0,k=0;a:{b:{c:{d:{switch(d|0){case 2:d=J[c>>2];c=J[d>>2];d=J[d+4>>2]-c>>3;e=b-4|0;b=J[e>>2];if(d>>>0<=b>>>0){break c}f=d;d=J[a>>2];if(f>>>0<=d>>>0){break c}if(M[c+(b<<3)>>2]>=M[c+(d<<3)>>2]){break a}J[a>>2]=b;J[e>>2]=d;break a;case 0:case 1:break a;default:break d}}if((d|0)>128){break b}if((a|0)==(b|0)){break a}d=a+4|0;if((d|0)==(b|0)){break a}i=J[c>>2];while(1){f=J[d>>2];e:{e=a;if((e|0)==(d|0)){break e}f:{h=J[i>>2];j=J[i+4>>2]-h>>3;if(j>>>0<=f>>>0){break f}k=h+(f<<3)|0;e=d;while(1){c=e-4|0;g=J[c>>2];if(g>>>0>=j>>>0){break f}if(M[k>>2]>=M[h+(g<<3)>>2]){break e}J[e>>2]=g;e=c;if((e|0)!=(a|0)){continue}break}e=a;break e}Zc();C()}J[e>>2]=f;d=d+4|0;if((d|0)!=(b|0)){continue}break}break a}Zc();C()}h=d>>>1|0;g=d-h|0;j=h<<2;i=j+a|0;g:{h:{if((d|0)<=(f|0)){sg(a,i,c,h,e);f=b;b=e+j|0;sg(i,f,c,g,b);f=(d<<2)+e|0;c=J[c>>2];d=b;while(1){if((d|0)==(f|0)){if((b|0)==(e|0)){break a}while(1){J[a>>2]=J[e>>2];a=a+4|0;e=e+4|0;if((b|0)!=(e|0)){continue}break}break a}i=J[c>>2];g=J[c+4>>2]-i>>3;h=J[d>>2];if(g>>>0<=h>>>0){break h}k=g;g=J[e>>2];if(k>>>0<=g>>>0){break h}i:{if(M[i+(h<<3)>>2]>2]){J[a>>2]=h;d=d+4|0;break i}J[a>>2]=g;e=e+4|0}a=a+4|0;if((b|0)!=(e|0)){continue}break}break g}rg(a,i,c,h,e,f);rg(i,b,c,g,e,f);tg(a,i,b,c,h,g,e,f);return}Zc();C()}if((d|0)==(f|0)){break a}while(1){J[a>>2]=J[d>>2];a=a+4|0;d=d+4|0;if((f|0)!=(d|0)){continue}break}}}function pf(a,b,c,d,e,f){var g=0,h=0,i=0,j=0,k=0;a:{b:{c:{d:{switch(d|0){case 2:d=J[c>>2];c=J[d>>2];d=J[d+4>>2]-c>>3;e=b-4|0;b=J[e>>2];if(d>>>0<=b>>>0){break c}f=d;d=J[a>>2];if(f>>>0<=d>>>0){break c}if(M[c+(b<<3)>>2]>=M[c+(d<<3)>>2]){break a}J[a>>2]=b;J[e>>2]=d;break a;case 0:case 1:break a;default:break d}}if((d|0)>128){break b}if((a|0)==(b|0)){break a}d=a+4|0;if((d|0)==(b|0)){break a}i=J[c>>2];while(1){f=J[d>>2];e:{e=a;if((e|0)==(d|0)){break e}f:{h=J[i>>2];j=J[i+4>>2]-h>>3;if(j>>>0<=f>>>0){break f}k=h+(f<<3)|0;e=d;while(1){c=e-4|0;g=J[c>>2];if(g>>>0>=j>>>0){break f}if(M[k>>2]>=M[h+(g<<3)>>2]){break e}J[e>>2]=g;e=c;if((e|0)!=(a|0)){continue}break}e=a;break e}Zc();C()}J[e>>2]=f;d=d+4|0;if((d|0)!=(b|0)){continue}break}break a}Zc();C()}h=d>>>1|0;g=d-h|0;j=h<<2;i=j+a|0;g:{h:{if((d|0)<=(f|0)){sf(a,i,c,h,e);f=b;b=e+j|0;sf(i,f,c,g,b);f=(d<<2)+e|0;c=J[c>>2];d=b;while(1){if((d|0)==(f|0)){if((b|0)==(e|0)){break a}while(1){J[a>>2]=J[e>>2];a=a+4|0;e=e+4|0;if((b|0)!=(e|0)){continue}break}break a}i=J[c>>2];g=J[c+4>>2]-i>>3;h=J[d>>2];if(g>>>0<=h>>>0){break h}k=g;g=J[e>>2];if(k>>>0<=g>>>0){break h}i:{if(M[i+(h<<3)>>2]>2]){J[a>>2]=h;d=d+4|0;break i}J[a>>2]=g;e=e+4|0}a=a+4|0;if((b|0)!=(e|0)){continue}break}break g}pf(a,i,c,h,e,f);pf(i,b,c,g,e,f);tf(a,i,b,c,h,g,e,f);return}Zc();C()}if((d|0)==(f|0)){break a}while(1){J[a>>2]=J[d>>2];a=a+4|0;d=d+4|0;if((f|0)!=(d|0)){continue}break}}}function og(a,b,c,d,e,f){var g=0,h=0,i=0,j=0,k=0;a:{b:{c:{d:{switch(d|0){case 2:d=J[c>>2];c=J[d>>2];d=J[d+4>>2]-c>>3;e=b-4|0;b=J[e>>2];if(d>>>0<=b>>>0){break c}f=d;d=J[a>>2];if(f>>>0<=d>>>0){break c}if(M[c+(b<<3)>>2]>=M[c+(d<<3)>>2]){break a}J[a>>2]=b;J[e>>2]=d;break a;case 0:case 1:break a;default:break d}}if((d|0)>128){break b}if((a|0)==(b|0)){break a}d=a+4|0;if((d|0)==(b|0)){break a}i=J[c>>2];while(1){f=J[d>>2];e:{e=a;if((e|0)==(d|0)){break e}f:{h=J[i>>2];j=J[i+4>>2]-h>>3;if(j>>>0<=f>>>0){break f}k=h+(f<<3)|0;e=d;while(1){c=e-4|0;g=J[c>>2];if(g>>>0>=j>>>0){break f}if(M[k>>2]>=M[h+(g<<3)>>2]){break e}J[e>>2]=g;e=c;if((e|0)!=(a|0)){continue}break}e=a;break e}Zc();C()}J[e>>2]=f;d=d+4|0;if((d|0)!=(b|0)){continue}break}break a}Zc();C()}h=d>>>1|0;g=d-h|0;j=h<<2;i=j+a|0;g:{h:{if((d|0)<=(f|0)){pg(a,i,c,h,e);f=b;b=e+j|0;pg(i,f,c,g,b);f=(d<<2)+e|0;c=J[c>>2];d=b;while(1){if((d|0)==(f|0)){if((b|0)==(e|0)){break a}while(1){J[a>>2]=J[e>>2];a=a+4|0;e=e+4|0;if((b|0)!=(e|0)){continue}break}break a}i=J[c>>2];g=J[c+4>>2]-i>>3;h=J[d>>2];if(g>>>0<=h>>>0){break h}k=g;g=J[e>>2];if(k>>>0<=g>>>0){break h}i:{if(M[i+(h<<3)>>2]>2]){J[a>>2]=h;d=d+4|0;break i}J[a>>2]=g;e=e+4|0}a=a+4|0;if((b|0)!=(e|0)){continue}break}break g}og(a,i,c,h,e,f);og(i,b,c,g,e,f);qg(a,i,b,c,h,g,e,f);return}Zc();C()}if((d|0)==(f|0)){break a}while(1){J[a>>2]=J[d>>2];a=a+4|0;d=d+4|0;if((f|0)!=(d|0)){continue}break}}}function lg(a,b,c,d,e,f){var g=0,h=0,i=0,j=0,k=0;a:{b:{c:{d:{switch(d|0){case 2:d=J[c>>2];c=J[d>>2];d=J[d+4>>2]-c>>3;e=b-4|0;b=J[e>>2];if(d>>>0<=b>>>0){break c}f=d;d=J[a>>2];if(f>>>0<=d>>>0){break c}if(M[c+(b<<3)>>2]>=M[c+(d<<3)>>2]){break a}J[a>>2]=b;J[e>>2]=d;break a;case 0:case 1:break a;default:break d}}if((d|0)>128){break b}if((a|0)==(b|0)){break a}d=a+4|0;if((d|0)==(b|0)){break a}i=J[c>>2];while(1){f=J[d>>2];e:{e=a;if((e|0)==(d|0)){break e}f:{h=J[i>>2];j=J[i+4>>2]-h>>3;if(j>>>0<=f>>>0){break f}k=h+(f<<3)|0;e=d;while(1){c=e-4|0;g=J[c>>2];if(g>>>0>=j>>>0){break f}if(M[k>>2]>=M[h+(g<<3)>>2]){break e}J[e>>2]=g;e=c;if((e|0)!=(a|0)){continue}break}e=a;break e}Zc();C()}J[e>>2]=f;d=d+4|0;if((d|0)!=(b|0)){continue}break}break a}Zc();C()}h=d>>>1|0;g=d-h|0;j=h<<2;i=j+a|0;g:{h:{if((d|0)<=(f|0)){mg(a,i,c,h,e);f=b;b=e+j|0;mg(i,f,c,g,b);f=(d<<2)+e|0;c=J[c>>2];d=b;while(1){if((d|0)==(f|0)){if((b|0)==(e|0)){break a}while(1){J[a>>2]=J[e>>2];a=a+4|0;e=e+4|0;if((b|0)!=(e|0)){continue}break}break a}i=J[c>>2];g=J[c+4>>2]-i>>3;h=J[d>>2];if(g>>>0<=h>>>0){break h}k=g;g=J[e>>2];if(k>>>0<=g>>>0){break h}i:{if(M[i+(h<<3)>>2]>2]){J[a>>2]=h;d=d+4|0;break i}J[a>>2]=g;e=e+4|0}a=a+4|0;if((b|0)!=(e|0)){continue}break}break g}lg(a,i,c,h,e,f);lg(i,b,c,g,e,f);ng(a,i,b,c,h,g,e,f);return}Zc();C()}if((d|0)==(f|0)){break a}while(1){J[a>>2]=J[d>>2];a=a+4|0;d=d+4|0;if((f|0)!=(d|0)){continue}break}}}function ig(a,b,c,d,e,f){var g=0,h=0,i=0,j=0,k=0;a:{b:{c:{d:{switch(d|0){case 2:d=J[c>>2];c=J[d>>2];d=J[d+4>>2]-c>>3;e=b-4|0;b=J[e>>2];if(d>>>0<=b>>>0){break c}f=d;d=J[a>>2];if(f>>>0<=d>>>0){break c}if(M[c+(b<<3)>>2]>=M[c+(d<<3)>>2]){break a}J[a>>2]=b;J[e>>2]=d;break a;case 0:case 1:break a;default:break d}}if((d|0)>128){break b}if((a|0)==(b|0)){break a}d=a+4|0;if((d|0)==(b|0)){break a}i=J[c>>2];while(1){f=J[d>>2];e:{e=a;if((e|0)==(d|0)){break e}f:{h=J[i>>2];j=J[i+4>>2]-h>>3;if(j>>>0<=f>>>0){break f}k=h+(f<<3)|0;e=d;while(1){c=e-4|0;g=J[c>>2];if(g>>>0>=j>>>0){break f}if(M[k>>2]>=M[h+(g<<3)>>2]){break e}J[e>>2]=g;e=c;if((e|0)!=(a|0)){continue}break}e=a;break e}Zc();C()}J[e>>2]=f;d=d+4|0;if((d|0)!=(b|0)){continue}break}break a}Zc();C()}h=d>>>1|0;g=d-h|0;j=h<<2;i=j+a|0;g:{h:{if((d|0)<=(f|0)){jg(a,i,c,h,e);f=b;b=e+j|0;jg(i,f,c,g,b);f=(d<<2)+e|0;c=J[c>>2];d=b;while(1){if((d|0)==(f|0)){if((b|0)==(e|0)){break a}while(1){J[a>>2]=J[e>>2];a=a+4|0;e=e+4|0;if((b|0)!=(e|0)){continue}break}break a}i=J[c>>2];g=J[c+4>>2]-i>>3;h=J[d>>2];if(g>>>0<=h>>>0){break h}k=g;g=J[e>>2];if(k>>>0<=g>>>0){break h}i:{if(M[i+(h<<3)>>2]>2]){J[a>>2]=h;d=d+4|0;break i}J[a>>2]=g;e=e+4|0}a=a+4|0;if((b|0)!=(e|0)){continue}break}break g}ig(a,i,c,h,e,f);ig(i,b,c,g,e,f);kg(a,i,b,c,h,g,e,f);return}Zc();C()}if((d|0)==(f|0)){break a}while(1){J[a>>2]=J[d>>2];a=a+4|0;d=d+4|0;if((f|0)!=(d|0)){continue}break}}}function fg(a,b,c,d,e,f){var g=0,h=0,i=0,j=0,k=0;a:{b:{c:{d:{switch(d|0){case 2:d=J[c>>2];c=J[d>>2];d=J[d+4>>2]-c>>3;e=b-4|0;b=J[e>>2];if(d>>>0<=b>>>0){break c}f=d;d=J[a>>2];if(f>>>0<=d>>>0){break c}if(M[c+(b<<3)>>2]>=M[c+(d<<3)>>2]){break a}J[a>>2]=b;J[e>>2]=d;break a;case 0:case 1:break a;default:break d}}if((d|0)>128){break b}if((a|0)==(b|0)){break a}d=a+4|0;if((d|0)==(b|0)){break a}i=J[c>>2];while(1){f=J[d>>2];e:{e=a;if((e|0)==(d|0)){break e}f:{h=J[i>>2];j=J[i+4>>2]-h>>3;if(j>>>0<=f>>>0){break f}k=h+(f<<3)|0;e=d;while(1){c=e-4|0;g=J[c>>2];if(g>>>0>=j>>>0){break f}if(M[k>>2]>=M[h+(g<<3)>>2]){break e}J[e>>2]=g;e=c;if((e|0)!=(a|0)){continue}break}e=a;break e}Zc();C()}J[e>>2]=f;d=d+4|0;if((d|0)!=(b|0)){continue}break}break a}Zc();C()}h=d>>>1|0;g=d-h|0;j=h<<2;i=j+a|0;g:{h:{if((d|0)<=(f|0)){gg(a,i,c,h,e);f=b;b=e+j|0;gg(i,f,c,g,b);f=(d<<2)+e|0;c=J[c>>2];d=b;while(1){if((d|0)==(f|0)){if((b|0)==(e|0)){break a}while(1){J[a>>2]=J[e>>2];a=a+4|0;e=e+4|0;if((b|0)!=(e|0)){continue}break}break a}i=J[c>>2];g=J[c+4>>2]-i>>3;h=J[d>>2];if(g>>>0<=h>>>0){break h}k=g;g=J[e>>2];if(k>>>0<=g>>>0){break h}i:{if(M[i+(h<<3)>>2]>2]){J[a>>2]=h;d=d+4|0;break i}J[a>>2]=g;e=e+4|0}a=a+4|0;if((b|0)!=(e|0)){continue}break}break g}fg(a,i,c,h,e,f);fg(i,b,c,g,e,f);hg(a,i,b,c,h,g,e,f);return}Zc();C()}if((d|0)==(f|0)){break a}while(1){J[a>>2]=J[d>>2];a=a+4|0;d=d+4|0;if((f|0)!=(d|0)){continue}break}}}function cg(a,b,c,d,e,f){var g=0,h=0,i=0,j=0,k=0;a:{b:{c:{d:{switch(d|0){case 2:d=J[c>>2];c=J[d>>2];d=J[d+4>>2]-c>>3;e=b-4|0;b=J[e>>2];if(d>>>0<=b>>>0){break c}f=d;d=J[a>>2];if(f>>>0<=d>>>0){break c}if(M[c+(b<<3)>>2]>=M[c+(d<<3)>>2]){break a}J[a>>2]=b;J[e>>2]=d;break a;case 0:case 1:break a;default:break d}}if((d|0)>128){break b}if((a|0)==(b|0)){break a}d=a+4|0;if((d|0)==(b|0)){break a}i=J[c>>2];while(1){f=J[d>>2];e:{e=a;if((e|0)==(d|0)){break e}f:{h=J[i>>2];j=J[i+4>>2]-h>>3;if(j>>>0<=f>>>0){break f}k=h+(f<<3)|0;e=d;while(1){c=e-4|0;g=J[c>>2];if(g>>>0>=j>>>0){break f}if(M[k>>2]>=M[h+(g<<3)>>2]){break e}J[e>>2]=g;e=c;if((e|0)!=(a|0)){continue}break}e=a;break e}Zc();C()}J[e>>2]=f;d=d+4|0;if((d|0)!=(b|0)){continue}break}break a}Zc();C()}h=d>>>1|0;g=d-h|0;j=h<<2;i=j+a|0;g:{h:{if((d|0)<=(f|0)){dg(a,i,c,h,e);f=b;b=e+j|0;dg(i,f,c,g,b);f=(d<<2)+e|0;c=J[c>>2];d=b;while(1){if((d|0)==(f|0)){if((b|0)==(e|0)){break a}while(1){J[a>>2]=J[e>>2];a=a+4|0;e=e+4|0;if((b|0)!=(e|0)){continue}break}break a}i=J[c>>2];g=J[c+4>>2]-i>>3;h=J[d>>2];if(g>>>0<=h>>>0){break h}k=g;g=J[e>>2];if(k>>>0<=g>>>0){break h}i:{if(M[i+(h<<3)>>2]>2]){J[a>>2]=h;d=d+4|0;break i}J[a>>2]=g;e=e+4|0}a=a+4|0;if((b|0)!=(e|0)){continue}break}break g}cg(a,i,c,h,e,f);cg(i,b,c,g,e,f);eg(a,i,b,c,h,g,e,f);return}Zc();C()}if((d|0)==(f|0)){break a}while(1){J[a>>2]=J[d>>2];a=a+4|0;d=d+4|0;if((f|0)!=(d|0)){continue}break}}}function Yf(a,b,c,d,e,f){var g=0,h=0,i=0,j=0,k=0;a:{b:{c:{d:{switch(d|0){case 2:d=J[c>>2];c=J[d>>2];d=J[d+4>>2]-c>>3;e=b-4|0;b=J[e>>2];if(d>>>0<=b>>>0){break c}f=d;d=J[a>>2];if(f>>>0<=d>>>0){break c}if(M[c+(b<<3)>>2]>=M[c+(d<<3)>>2]){break a}J[a>>2]=b;J[e>>2]=d;break a;case 0:case 1:break a;default:break d}}if((d|0)>128){break b}if((a|0)==(b|0)){break a}d=a+4|0;if((d|0)==(b|0)){break a}i=J[c>>2];while(1){f=J[d>>2];e:{e=a;if((e|0)==(d|0)){break e}f:{h=J[i>>2];j=J[i+4>>2]-h>>3;if(j>>>0<=f>>>0){break f}k=h+(f<<3)|0;e=d;while(1){c=e-4|0;g=J[c>>2];if(g>>>0>=j>>>0){break f}if(M[k>>2]>=M[h+(g<<3)>>2]){break e}J[e>>2]=g;e=c;if((e|0)!=(a|0)){continue}break}e=a;break e}Zc();C()}J[e>>2]=f;d=d+4|0;if((d|0)!=(b|0)){continue}break}break a}Zc();C()}h=d>>>1|0;g=d-h|0;j=h<<2;i=j+a|0;g:{h:{if((d|0)<=(f|0)){Zf(a,i,c,h,e);f=b;b=e+j|0;Zf(i,f,c,g,b);f=(d<<2)+e|0;c=J[c>>2];d=b;while(1){if((d|0)==(f|0)){if((b|0)==(e|0)){break a}while(1){J[a>>2]=J[e>>2];a=a+4|0;e=e+4|0;if((b|0)!=(e|0)){continue}break}break a}i=J[c>>2];g=J[c+4>>2]-i>>3;h=J[d>>2];if(g>>>0<=h>>>0){break h}k=g;g=J[e>>2];if(k>>>0<=g>>>0){break h}i:{if(M[i+(h<<3)>>2]>2]){J[a>>2]=h;d=d+4|0;break i}J[a>>2]=g;e=e+4|0}a=a+4|0;if((b|0)!=(e|0)){continue}break}break g}Yf(a,i,c,h,e,f);Yf(i,b,c,g,e,f);_f(a,i,b,c,h,g,e,f);return}Zc();C()}if((d|0)==(f|0)){break a}while(1){J[a>>2]=J[d>>2];a=a+4|0;d=d+4|0;if((f|0)!=(d|0)){continue}break}}}function Vf(a,b,c,d,e,f){var g=0,h=0,i=0,j=0,k=0;a:{b:{c:{d:{switch(d|0){case 2:d=J[c>>2];c=J[d>>2];d=J[d+4>>2]-c>>3;e=b-4|0;b=J[e>>2];if(d>>>0<=b>>>0){break c}f=d;d=J[a>>2];if(f>>>0<=d>>>0){break c}if(M[c+(b<<3)>>2]>=M[c+(d<<3)>>2]){break a}J[a>>2]=b;J[e>>2]=d;break a;case 0:case 1:break a;default:break d}}if((d|0)>128){break b}if((a|0)==(b|0)){break a}d=a+4|0;if((d|0)==(b|0)){break a}i=J[c>>2];while(1){f=J[d>>2];e:{e=a;if((e|0)==(d|0)){break e}f:{h=J[i>>2];j=J[i+4>>2]-h>>3;if(j>>>0<=f>>>0){break f}k=h+(f<<3)|0;e=d;while(1){c=e-4|0;g=J[c>>2];if(g>>>0>=j>>>0){break f}if(M[k>>2]>=M[h+(g<<3)>>2]){break e}J[e>>2]=g;e=c;if((e|0)!=(a|0)){continue}break}e=a;break e}Zc();C()}J[e>>2]=f;d=d+4|0;if((d|0)!=(b|0)){continue}break}break a}Zc();C()}h=d>>>1|0;g=d-h|0;j=h<<2;i=j+a|0;g:{h:{if((d|0)<=(f|0)){Wf(a,i,c,h,e);f=b;b=e+j|0;Wf(i,f,c,g,b);f=(d<<2)+e|0;c=J[c>>2];d=b;while(1){if((d|0)==(f|0)){if((b|0)==(e|0)){break a}while(1){J[a>>2]=J[e>>2];a=a+4|0;e=e+4|0;if((b|0)!=(e|0)){continue}break}break a}i=J[c>>2];g=J[c+4>>2]-i>>3;h=J[d>>2];if(g>>>0<=h>>>0){break h}k=g;g=J[e>>2];if(k>>>0<=g>>>0){break h}i:{if(M[i+(h<<3)>>2]>2]){J[a>>2]=h;d=d+4|0;break i}J[a>>2]=g;e=e+4|0}a=a+4|0;if((b|0)!=(e|0)){continue}break}break g}Vf(a,i,c,h,e,f);Vf(i,b,c,g,e,f);Xf(a,i,b,c,h,g,e,f);return}Zc();C()}if((d|0)==(f|0)){break a}while(1){J[a>>2]=J[d>>2];a=a+4|0;d=d+4|0;if((f|0)!=(d|0)){continue}break}}}function Sf(a,b,c,d,e,f){var g=0,h=0,i=0,j=0,k=0;a:{b:{c:{d:{switch(d|0){case 2:d=J[c>>2];c=J[d>>2];d=J[d+4>>2]-c>>3;e=b-4|0;b=J[e>>2];if(d>>>0<=b>>>0){break c}f=d;d=J[a>>2];if(f>>>0<=d>>>0){break c}if(M[c+(b<<3)>>2]>=M[c+(d<<3)>>2]){break a}J[a>>2]=b;J[e>>2]=d;break a;case 0:case 1:break a;default:break d}}if((d|0)>128){break b}if((a|0)==(b|0)){break a}d=a+4|0;if((d|0)==(b|0)){break a}i=J[c>>2];while(1){f=J[d>>2];e:{e=a;if((e|0)==(d|0)){break e}f:{h=J[i>>2];j=J[i+4>>2]-h>>3;if(j>>>0<=f>>>0){break f}k=h+(f<<3)|0;e=d;while(1){c=e-4|0;g=J[c>>2];if(g>>>0>=j>>>0){break f}if(M[k>>2]>=M[h+(g<<3)>>2]){break e}J[e>>2]=g;e=c;if((e|0)!=(a|0)){continue}break}e=a;break e}Zc();C()}J[e>>2]=f;d=d+4|0;if((d|0)!=(b|0)){continue}break}break a}Zc();C()}h=d>>>1|0;g=d-h|0;j=h<<2;i=j+a|0;g:{h:{if((d|0)<=(f|0)){Tf(a,i,c,h,e);f=b;b=e+j|0;Tf(i,f,c,g,b);f=(d<<2)+e|0;c=J[c>>2];d=b;while(1){if((d|0)==(f|0)){if((b|0)==(e|0)){break a}while(1){J[a>>2]=J[e>>2];a=a+4|0;e=e+4|0;if((b|0)!=(e|0)){continue}break}break a}i=J[c>>2];g=J[c+4>>2]-i>>3;h=J[d>>2];if(g>>>0<=h>>>0){break h}k=g;g=J[e>>2];if(k>>>0<=g>>>0){break h}i:{if(M[i+(h<<3)>>2]>2]){J[a>>2]=h;d=d+4|0;break i}J[a>>2]=g;e=e+4|0}a=a+4|0;if((b|0)!=(e|0)){continue}break}break g}Sf(a,i,c,h,e,f);Sf(i,b,c,g,e,f);Uf(a,i,b,c,h,g,e,f);return}Zc();C()}if((d|0)==(f|0)){break a}while(1){J[a>>2]=J[d>>2];a=a+4|0;d=d+4|0;if((f|0)!=(d|0)){continue}break}}}function Pf(a,b,c,d,e,f){var g=0,h=0,i=0,j=0,k=0;a:{b:{c:{d:{switch(d|0){case 2:d=J[c>>2];c=J[d>>2];d=J[d+4>>2]-c>>3;e=b-4|0;b=J[e>>2];if(d>>>0<=b>>>0){break c}f=d;d=J[a>>2];if(f>>>0<=d>>>0){break c}if(M[c+(b<<3)>>2]>=M[c+(d<<3)>>2]){break a}J[a>>2]=b;J[e>>2]=d;break a;case 0:case 1:break a;default:break d}}if((d|0)>128){break b}if((a|0)==(b|0)){break a}d=a+4|0;if((d|0)==(b|0)){break a}i=J[c>>2];while(1){f=J[d>>2];e:{e=a;if((e|0)==(d|0)){break e}f:{h=J[i>>2];j=J[i+4>>2]-h>>3;if(j>>>0<=f>>>0){break f}k=h+(f<<3)|0;e=d;while(1){c=e-4|0;g=J[c>>2];if(g>>>0>=j>>>0){break f}if(M[k>>2]>=M[h+(g<<3)>>2]){break e}J[e>>2]=g;e=c;if((e|0)!=(a|0)){continue}break}e=a;break e}Zc();C()}J[e>>2]=f;d=d+4|0;if((d|0)!=(b|0)){continue}break}break a}Zc();C()}h=d>>>1|0;g=d-h|0;j=h<<2;i=j+a|0;g:{h:{if((d|0)<=(f|0)){Qf(a,i,c,h,e);f=b;b=e+j|0;Qf(i,f,c,g,b);f=(d<<2)+e|0;c=J[c>>2];d=b;while(1){if((d|0)==(f|0)){if((b|0)==(e|0)){break a}while(1){J[a>>2]=J[e>>2];a=a+4|0;e=e+4|0;if((b|0)!=(e|0)){continue}break}break a}i=J[c>>2];g=J[c+4>>2]-i>>3;h=J[d>>2];if(g>>>0<=h>>>0){break h}k=g;g=J[e>>2];if(k>>>0<=g>>>0){break h}i:{if(M[i+(h<<3)>>2]>2]){J[a>>2]=h;d=d+4|0;break i}J[a>>2]=g;e=e+4|0}a=a+4|0;if((b|0)!=(e|0)){continue}break}break g}Pf(a,i,c,h,e,f);Pf(i,b,c,g,e,f);Rf(a,i,b,c,h,g,e,f);return}Zc();C()}if((d|0)==(f|0)){break a}while(1){J[a>>2]=J[d>>2];a=a+4|0;d=d+4|0;if((f|0)!=(d|0)){continue}break}}}function Mf(a,b,c,d,e,f){var g=0,h=0,i=0,j=0,k=0;a:{b:{c:{d:{switch(d|0){case 2:d=J[c>>2];c=J[d>>2];d=J[d+4>>2]-c>>3;e=b-4|0;b=J[e>>2];if(d>>>0<=b>>>0){break c}f=d;d=J[a>>2];if(f>>>0<=d>>>0){break c}if(M[c+(b<<3)>>2]>=M[c+(d<<3)>>2]){break a}J[a>>2]=b;J[e>>2]=d;break a;case 0:case 1:break a;default:break d}}if((d|0)>128){break b}if((a|0)==(b|0)){break a}d=a+4|0;if((d|0)==(b|0)){break a}i=J[c>>2];while(1){f=J[d>>2];e:{e=a;if((e|0)==(d|0)){break e}f:{h=J[i>>2];j=J[i+4>>2]-h>>3;if(j>>>0<=f>>>0){break f}k=h+(f<<3)|0;e=d;while(1){c=e-4|0;g=J[c>>2];if(g>>>0>=j>>>0){break f}if(M[k>>2]>=M[h+(g<<3)>>2]){break e}J[e>>2]=g;e=c;if((e|0)!=(a|0)){continue}break}e=a;break e}Zc();C()}J[e>>2]=f;d=d+4|0;if((d|0)!=(b|0)){continue}break}break a}Zc();C()}h=d>>>1|0;g=d-h|0;j=h<<2;i=j+a|0;g:{h:{if((d|0)<=(f|0)){Nf(a,i,c,h,e);f=b;b=e+j|0;Nf(i,f,c,g,b);f=(d<<2)+e|0;c=J[c>>2];d=b;while(1){if((d|0)==(f|0)){if((b|0)==(e|0)){break a}while(1){J[a>>2]=J[e>>2];a=a+4|0;e=e+4|0;if((b|0)!=(e|0)){continue}break}break a}i=J[c>>2];g=J[c+4>>2]-i>>3;h=J[d>>2];if(g>>>0<=h>>>0){break h}k=g;g=J[e>>2];if(k>>>0<=g>>>0){break h}i:{if(M[i+(h<<3)>>2]>2]){J[a>>2]=h;d=d+4|0;break i}J[a>>2]=g;e=e+4|0}a=a+4|0;if((b|0)!=(e|0)){continue}break}break g}Mf(a,i,c,h,e,f);Mf(i,b,c,g,e,f);Of(a,i,b,c,h,g,e,f);return}Zc();C()}if((d|0)==(f|0)){break a}while(1){J[a>>2]=J[d>>2];a=a+4|0;d=d+4|0;if((f|0)!=(d|0)){continue}break}}}function Jf(a,b,c,d,e,f){var g=0,h=0,i=0,j=0,k=0;a:{b:{c:{d:{switch(d|0){case 2:d=J[c>>2];c=J[d>>2];d=J[d+4>>2]-c>>3;e=b-4|0;b=J[e>>2];if(d>>>0<=b>>>0){break c}f=d;d=J[a>>2];if(f>>>0<=d>>>0){break c}if(M[c+(b<<3)>>2]>=M[c+(d<<3)>>2]){break a}J[a>>2]=b;J[e>>2]=d;break a;case 0:case 1:break a;default:break d}}if((d|0)>128){break b}if((a|0)==(b|0)){break a}d=a+4|0;if((d|0)==(b|0)){break a}i=J[c>>2];while(1){f=J[d>>2];e:{e=a;if((e|0)==(d|0)){break e}f:{h=J[i>>2];j=J[i+4>>2]-h>>3;if(j>>>0<=f>>>0){break f}k=h+(f<<3)|0;e=d;while(1){c=e-4|0;g=J[c>>2];if(g>>>0>=j>>>0){break f}if(M[k>>2]>=M[h+(g<<3)>>2]){break e}J[e>>2]=g;e=c;if((e|0)!=(a|0)){continue}break}e=a;break e}Zc();C()}J[e>>2]=f;d=d+4|0;if((d|0)!=(b|0)){continue}break}break a}Zc();C()}h=d>>>1|0;g=d-h|0;j=h<<2;i=j+a|0;g:{h:{if((d|0)<=(f|0)){Kf(a,i,c,h,e);f=b;b=e+j|0;Kf(i,f,c,g,b);f=(d<<2)+e|0;c=J[c>>2];d=b;while(1){if((d|0)==(f|0)){if((b|0)==(e|0)){break a}while(1){J[a>>2]=J[e>>2];a=a+4|0;e=e+4|0;if((b|0)!=(e|0)){continue}break}break a}i=J[c>>2];g=J[c+4>>2]-i>>3;h=J[d>>2];if(g>>>0<=h>>>0){break h}k=g;g=J[e>>2];if(k>>>0<=g>>>0){break h}i:{if(M[i+(h<<3)>>2]>2]){J[a>>2]=h;d=d+4|0;break i}J[a>>2]=g;e=e+4|0}a=a+4|0;if((b|0)!=(e|0)){continue}break}break g}Jf(a,i,c,h,e,f);Jf(i,b,c,g,e,f);Lf(a,i,b,c,h,g,e,f);return}Zc();C()}if((d|0)==(f|0)){break a}while(1){J[a>>2]=J[d>>2];a=a+4|0;d=d+4|0;if((f|0)!=(d|0)){continue}break}}}function Gf(a,b,c,d,e,f){var g=0,h=0,i=0,j=0,k=0;a:{b:{c:{d:{switch(d|0){case 2:d=J[c>>2];c=J[d>>2];d=J[d+4>>2]-c>>3;e=b-4|0;b=J[e>>2];if(d>>>0<=b>>>0){break c}f=d;d=J[a>>2];if(f>>>0<=d>>>0){break c}if(M[c+(b<<3)>>2]>=M[c+(d<<3)>>2]){break a}J[a>>2]=b;J[e>>2]=d;break a;case 0:case 1:break a;default:break d}}if((d|0)>128){break b}if((a|0)==(b|0)){break a}d=a+4|0;if((d|0)==(b|0)){break a}i=J[c>>2];while(1){f=J[d>>2];e:{e=a;if((e|0)==(d|0)){break e}f:{h=J[i>>2];j=J[i+4>>2]-h>>3;if(j>>>0<=f>>>0){break f}k=h+(f<<3)|0;e=d;while(1){c=e-4|0;g=J[c>>2];if(g>>>0>=j>>>0){break f}if(M[k>>2]>=M[h+(g<<3)>>2]){break e}J[e>>2]=g;e=c;if((e|0)!=(a|0)){continue}break}e=a;break e}Zc();C()}J[e>>2]=f;d=d+4|0;if((d|0)!=(b|0)){continue}break}break a}Zc();C()}h=d>>>1|0;g=d-h|0;j=h<<2;i=j+a|0;g:{h:{if((d|0)<=(f|0)){Hf(a,i,c,h,e);f=b;b=e+j|0;Hf(i,f,c,g,b);f=(d<<2)+e|0;c=J[c>>2];d=b;while(1){if((d|0)==(f|0)){if((b|0)==(e|0)){break a}while(1){J[a>>2]=J[e>>2];a=a+4|0;e=e+4|0;if((b|0)!=(e|0)){continue}break}break a}i=J[c>>2];g=J[c+4>>2]-i>>3;h=J[d>>2];if(g>>>0<=h>>>0){break h}k=g;g=J[e>>2];if(k>>>0<=g>>>0){break h}i:{if(M[i+(h<<3)>>2]>2]){J[a>>2]=h;d=d+4|0;break i}J[a>>2]=g;e=e+4|0}a=a+4|0;if((b|0)!=(e|0)){continue}break}break g}Gf(a,i,c,h,e,f);Gf(i,b,c,g,e,f);If(a,i,b,c,h,g,e,f);return}Zc();C()}if((d|0)==(f|0)){break a}while(1){J[a>>2]=J[d>>2];a=a+4|0;d=d+4|0;if((f|0)!=(d|0)){continue}break}}}function Df(a,b,c,d,e,f){var g=0,h=0,i=0,j=0,k=0;a:{b:{c:{d:{switch(d|0){case 2:d=J[c>>2];c=J[d>>2];d=J[d+4>>2]-c>>3;e=b-4|0;b=J[e>>2];if(d>>>0<=b>>>0){break c}f=d;d=J[a>>2];if(f>>>0<=d>>>0){break c}if(M[c+(b<<3)>>2]>=M[c+(d<<3)>>2]){break a}J[a>>2]=b;J[e>>2]=d;break a;case 0:case 1:break a;default:break d}}if((d|0)>128){break b}if((a|0)==(b|0)){break a}d=a+4|0;if((d|0)==(b|0)){break a}i=J[c>>2];while(1){f=J[d>>2];e:{e=a;if((e|0)==(d|0)){break e}f:{h=J[i>>2];j=J[i+4>>2]-h>>3;if(j>>>0<=f>>>0){break f}k=h+(f<<3)|0;e=d;while(1){c=e-4|0;g=J[c>>2];if(g>>>0>=j>>>0){break f}if(M[k>>2]>=M[h+(g<<3)>>2]){break e}J[e>>2]=g;e=c;if((e|0)!=(a|0)){continue}break}e=a;break e}Zc();C()}J[e>>2]=f;d=d+4|0;if((d|0)!=(b|0)){continue}break}break a}Zc();C()}h=d>>>1|0;g=d-h|0;j=h<<2;i=j+a|0;g:{h:{if((d|0)<=(f|0)){Ef(a,i,c,h,e);f=b;b=e+j|0;Ef(i,f,c,g,b);f=(d<<2)+e|0;c=J[c>>2];d=b;while(1){if((d|0)==(f|0)){if((b|0)==(e|0)){break a}while(1){J[a>>2]=J[e>>2];a=a+4|0;e=e+4|0;if((b|0)!=(e|0)){continue}break}break a}i=J[c>>2];g=J[c+4>>2]-i>>3;h=J[d>>2];if(g>>>0<=h>>>0){break h}k=g;g=J[e>>2];if(k>>>0<=g>>>0){break h}i:{if(M[i+(h<<3)>>2]>2]){J[a>>2]=h;d=d+4|0;break i}J[a>>2]=g;e=e+4|0}a=a+4|0;if((b|0)!=(e|0)){continue}break}break g}Df(a,i,c,h,e,f);Df(i,b,c,g,e,f);Ff(a,i,b,c,h,g,e,f);return}Zc();C()}if((d|0)==(f|0)){break a}while(1){J[a>>2]=J[d>>2];a=a+4|0;d=d+4|0;if((f|0)!=(d|0)){continue}break}}}function Af(a,b,c,d,e,f){var g=0,h=0,i=0,j=0,k=0;a:{b:{c:{d:{switch(d|0){case 2:d=J[c>>2];c=J[d>>2];d=J[d+4>>2]-c>>3;e=b-4|0;b=J[e>>2];if(d>>>0<=b>>>0){break c}f=d;d=J[a>>2];if(f>>>0<=d>>>0){break c}if(M[c+(b<<3)>>2]>=M[c+(d<<3)>>2]){break a}J[a>>2]=b;J[e>>2]=d;break a;case 0:case 1:break a;default:break d}}if((d|0)>128){break b}if((a|0)==(b|0)){break a}d=a+4|0;if((d|0)==(b|0)){break a}i=J[c>>2];while(1){f=J[d>>2];e:{e=a;if((e|0)==(d|0)){break e}f:{h=J[i>>2];j=J[i+4>>2]-h>>3;if(j>>>0<=f>>>0){break f}k=h+(f<<3)|0;e=d;while(1){c=e-4|0;g=J[c>>2];if(g>>>0>=j>>>0){break f}if(M[k>>2]>=M[h+(g<<3)>>2]){break e}J[e>>2]=g;e=c;if((e|0)!=(a|0)){continue}break}e=a;break e}Zc();C()}J[e>>2]=f;d=d+4|0;if((d|0)!=(b|0)){continue}break}break a}Zc();C()}h=d>>>1|0;g=d-h|0;j=h<<2;i=j+a|0;g:{h:{if((d|0)<=(f|0)){Bf(a,i,c,h,e);f=b;b=e+j|0;Bf(i,f,c,g,b);f=(d<<2)+e|0;c=J[c>>2];d=b;while(1){if((d|0)==(f|0)){if((b|0)==(e|0)){break a}while(1){J[a>>2]=J[e>>2];a=a+4|0;e=e+4|0;if((b|0)!=(e|0)){continue}break}break a}i=J[c>>2];g=J[c+4>>2]-i>>3;h=J[d>>2];if(g>>>0<=h>>>0){break h}k=g;g=J[e>>2];if(k>>>0<=g>>>0){break h}i:{if(M[i+(h<<3)>>2]>2]){J[a>>2]=h;d=d+4|0;break i}J[a>>2]=g;e=e+4|0}a=a+4|0;if((b|0)!=(e|0)){continue}break}break g}Af(a,i,c,h,e,f);Af(i,b,c,g,e,f);Cf(a,i,b,c,h,g,e,f);return}Zc();C()}if((d|0)==(f|0)){break a}while(1){J[a>>2]=J[d>>2];a=a+4|0;d=d+4|0;if((f|0)!=(d|0)){continue}break}}}function $f(a,b,c,d,e,f){var g=0,h=0,i=0,j=0,k=0;a:{b:{c:{d:{switch(d|0){case 2:d=J[c>>2];c=J[d>>2];d=J[d+4>>2]-c>>3;e=b-4|0;b=J[e>>2];if(d>>>0<=b>>>0){break c}f=d;d=J[a>>2];if(f>>>0<=d>>>0){break c}if(M[c+(b<<3)>>2]>=M[c+(d<<3)>>2]){break a}J[a>>2]=b;J[e>>2]=d;break a;case 0:case 1:break a;default:break d}}if((d|0)>128){break b}if((a|0)==(b|0)){break a}d=a+4|0;if((d|0)==(b|0)){break a}i=J[c>>2];while(1){f=J[d>>2];e:{e=a;if((e|0)==(d|0)){break e}f:{h=J[i>>2];j=J[i+4>>2]-h>>3;if(j>>>0<=f>>>0){break f}k=h+(f<<3)|0;e=d;while(1){c=e-4|0;g=J[c>>2];if(g>>>0>=j>>>0){break f}if(M[k>>2]>=M[h+(g<<3)>>2]){break e}J[e>>2]=g;e=c;if((e|0)!=(a|0)){continue}break}e=a;break e}Zc();C()}J[e>>2]=f;d=d+4|0;if((d|0)!=(b|0)){continue}break}break a}Zc();C()}h=d>>>1|0;g=d-h|0;j=h<<2;i=j+a|0;g:{h:{if((d|0)<=(f|0)){ag(a,i,c,h,e);f=b;b=e+j|0;ag(i,f,c,g,b);f=(d<<2)+e|0;c=J[c>>2];d=b;while(1){if((d|0)==(f|0)){if((b|0)==(e|0)){break a}while(1){J[a>>2]=J[e>>2];a=a+4|0;e=e+4|0;if((b|0)!=(e|0)){continue}break}break a}i=J[c>>2];g=J[c+4>>2]-i>>3;h=J[d>>2];if(g>>>0<=h>>>0){break h}k=g;g=J[e>>2];if(k>>>0<=g>>>0){break h}i:{if(M[i+(h<<3)>>2]>2]){J[a>>2]=h;d=d+4|0;break i}J[a>>2]=g;e=e+4|0}a=a+4|0;if((b|0)!=(e|0)){continue}break}break g}$f(a,i,c,h,e,f);$f(i,b,c,g,e,f);bg(a,i,b,c,h,g,e,f);return}Zc();C()}if((d|0)==(f|0)){break a}while(1){J[a>>2]=J[d>>2];a=a+4|0;d=d+4|0;if((f|0)!=(d|0)){continue}break}}}function Ti(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;var f=0,g=0,h=0;a=ia-32|0;ia=a;a:{b:{c:{d:{if(!b){break d}f=uk(c);if(f>>>0>=4294967280){break c}e:{f:{if(f>>>0>=11){h=(f|15)+1|0;g=ll(h);J[a+24>>2]=h|-2147483648;J[a+16>>2]=g;J[a+20>>2]=f;break f}H[a+27|0]=f;g=a+16|0;if(!f){break e}}lk(g,c,f)}H[f+g|0]=0;J[a+8>>2]=0;J[a>>2]=0;J[a+4>>2]=0;if(e){if((e|0)<0){break b}c=e<<2;e=ll(c);J[a>>2]=e;f=c+e|0;J[a+8>>2]=f;lk(e,d,c);J[a+4>>2]=f}f=ia-48|0;ia=f;e=ec(b,a+16|0);if((e|0)!=(b+4|0)){c=J[e+4>>2];g:{if(!c){c=e;while(1){d=J[c+8>>2];g=J[d>>2]!=(c|0);c=d;if(g){continue}break}break g}while(1){d=c;c=J[c>>2];if(c){continue}break}}if((e|0)==J[b>>2]){J[b>>2]=d}J[b+8>>2]=J[b+8>>2]-1;Zj(J[b+4>>2],e);c=J[e+28>>2];if(c){J[e+32>>2]=c;fl(c)}if(H[e+27|0]<0){fl(J[e+16>>2])}fl(e)}J[f+8>>2]=0;J[f>>2]=0;J[f+4>>2]=0;c=J[a+4>>2];d=J[a>>2];e=c-d|0;g=0;h:{i:{if((c|0)!=(d|0)){if((e|0)<0){break i}g=ll(e);c=nk(g,0,e);h=c+e|0;J[f+8>>2]=h;J[f+4>>2]=h;J[f>>2]=c;c=d}lk(g,c,e);j:{if(H[a+27|0]>=0){J[f+24>>2]=J[a+24>>2];c=J[a+20>>2];J[f+16>>2]=J[a+16>>2];J[f+20>>2]=c;break j}sl(f+16|0,J[a+16>>2],J[a+20>>2])}Xj(f+28|0,f);c=f+16|0;_j(f+40|0,b,c,c);c=J[f+28>>2];if(c){J[f+32>>2]=c;fl(c)}if(H[f+27|0]<0){fl(J[f+16>>2])}c=J[f>>2];if(c){J[f+4>>2]=c;fl(c)}ia=f+48|0;break h}La();C()}c=J[a>>2];if(c){J[a+4>>2]=c;fl(c)}if(H[a+27|0]>=0){break d}fl(J[a+16>>2])}ia=a+32|0;a=(b|0)!=0;break a}ze();C()}La();C()}return a|0}function Bc(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0;c=ia-16|0;ia=c;b=J[J[a+4>>2]+(b<<2)>>2];J[c+12>>2]=b;a=J[a+28>>2];e=J[J[J[a+4>>2]+8>>2]+(b<<2)>>2];b=J[e+28>>2];a:{if(b-1>>>0>=6){b:{if((b|0)!=9){break b}f=J[a+48>>2];a=ll(32);J[c>>2]=a;J[c+4>>2]=17;J[c+8>>2]=-2147483616;H[a+16|0]=K[1261];b=K[1257]|K[1258]<<8|(K[1259]<<16|K[1260]<<24);d=K[1253]|K[1254]<<8|(K[1255]<<16|K[1256]<<24);H[a+8|0]=d;H[a+9|0]=d>>>8;H[a+10|0]=d>>>16;H[a+11|0]=d>>>24;H[a+12|0]=b;H[a+13|0]=b>>>8;H[a+14|0]=b>>>16;H[a+15|0]=b>>>24;b=K[1249]|K[1250]<<8|(K[1251]<<16|K[1252]<<24);d=K[1245]|K[1246]<<8|(K[1247]<<16|K[1248]<<24);H[a|0]=d;H[a+1|0]=d>>>8;H[a+2|0]=d>>>16;H[a+3|0]=d>>>24;H[a+4|0]=b;H[a+5|0]=b>>>8;H[a+6|0]=b>>>16;H[a+7|0]=b>>>24;H[a+17|0]=0;a=Ib(f,c+12|0,c,-1);if(H[c+11|0]<0){fl(J[c>>2])}if((a|0)<=0){break b}if(J[e+56>>2]==1){a=ll(48);J[a>>2]=0;J[a+4>>2]=0;J[a+40>>2]=0;J[a+44>>2]=0;J[a+32>>2]=0;J[a+36>>2]=0;J[a+24>>2]=0;J[a+28>>2]=0;J[a+16>>2]=0;J[a+20>>2]=0;J[a+8>>2]=0;J[a+12>>2]=0;a=Jc(a);J[a+40>>2]=1032;J[a>>2]=6316;J[a+44>>2]=-1;break a}a=Jc(ll(64));J[a+40>>2]=2040;J[a>>2]=9996;J[a+48>>2]=0;J[a+52>>2]=0;J[a+44>>2]=-1;J[a+56>>2]=0;J[a+60>>2]=0;break a}a=ll(36);J[a+32>>2]=0;J[a+12>>2]=-1;J[a+4>>2]=0;J[a+8>>2]=0;J[a+16>>2]=0;J[a+20>>2]=0;J[a>>2]=2400;H[a+21|0]=0;H[a+22|0]=0;H[a+23|0]=0;H[a+24|0]=0;H[a+25|0]=0;H[a+26|0]=0;H[a+27|0]=0;H[a+28|0]=0;break a}a=Jc(ll(40))}ia=c+16|0;return a|0}function Ac(a){a=a|0;var b=0,c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0;e=J[a+8>>2]-J[a+4>>2]>>2;b=J[a+40>>2];c=J[a+36>>2];d=b-c>>2;a:{if(e>>>0>d>>>0){g=e-d|0;c=J[a+44>>2];b=J[a+40>>2];if(g>>>0<=c-b>>2>>>0){if(g){i=b;b=g<<2;b=nk(i,0,b)+b|0}J[a+40>>2]=b;break a}b:{c:{d:{j=J[a+36>>2];e=b-j>>2;f=e+g|0;if(f>>>0<1073741824){d=c-j|0;c=d>>1;d=d>>>0>=2147483644?1073741823:c>>>0>f>>>0?c:f;if(d){if(d>>>0>=1073741824){break d}i=ll(d<<2)}h=(e<<2)+i|0;c=g<<2;f=nk(h,0,c);e=c+f|0;d=(d<<2)+i|0;if((b|0)==(j|0)){break c}while(1){b=b-4|0;c=J[b>>2];J[b>>2]=0;h=h-4|0;J[h>>2]=c;if((b|0)!=(j|0)){continue}break}J[a+44>>2]=d;d=J[a+40>>2];J[a+40>>2]=e;b=J[a+36>>2];J[a+36>>2]=h;if((b|0)==(d|0)){break b}while(1){d=d-4|0;c=J[d>>2];J[d>>2]=0;if(c){na[J[J[c>>2]+4>>2]](c)}if((b|0)!=(d|0)){continue}break}break b}La();C()}$a();C()}J[a+44>>2]=d;J[a+40>>2]=e;J[a+36>>2]=f}if(b){fl(b)}break a}if(d>>>0<=e>>>0){break a}c=c+(e<<2)|0;if((c|0)!=(b|0)){while(1){b=b-4|0;d=J[b>>2];J[b>>2]=0;if(d){na[J[J[d>>2]+4>>2]](d)}if((b|0)!=(c|0)){continue}break}}J[a+40>>2]=c}if(J[a+8>>2]==J[a+4>>2]){return 1}b=0;while(1){e=na[J[J[a>>2]+56>>2]](a,b)|0;d=b<<2;c=d+J[a+36>>2]|0;f=J[c>>2];J[c>>2]=e;if(f){na[J[J[f>>2]+4>>2]](f)}c=J[d+J[a+36>>2]>>2];if(c){if(!(!(J[J[a+48>>2]+(b>>>3&536870908)>>2]>>>b&1)|M[a+52>>2]<=b>>>0)){H[c+28|0]=1}b=b+1|0;if(b>>>0>2]-J[a+4>>2]>>2>>>0){continue}}break}return(c|0)!=0|0}function ph(a){a=a|0;var b=0,c=0,d=0,e=0,f=0;J[a>>2]=10592;c=a+200|0;d=J[c+136>>2];if(d){b=d;e=J[c+140>>2];if((b|0)!=(e|0)){while(1){b=e-12|0;f=J[b>>2];if(f){J[e-8>>2]=f;fl(f)}e=b;if((b|0)!=(d|0)){continue}break}b=J[c+136>>2]}J[c+140>>2]=d;fl(b)}b=J[c+104>>2];if(b){J[c+108>>2]=b;fl(b)}b=J[c+92>>2];if(b){J[c+96>>2]=b;fl(b)}d=J[c+80>>2];J[c+80>>2]=0;if(d){e=d-4|0;b=J[e>>2];if(b){b=d+(b<<5)|0;while(1){b=Ce(b-32|0);if((d|0)!=(b|0)){continue}break}}fl(e)}b=J[c+68>>2];if(b){J[c+72>>2]=b;fl(b)}b=J[c+44>>2];J[c+44>>2]=0;if(b){fl(b)}b=J[c+32>>2];if(b){J[c+36>>2]=b;fl(b)}Ce(c);b=J[a+184>>2];if(b){J[a+188>>2]=b;fl(b)}d=J[a+172>>2];if(d){b=J[a+176>>2];e=d;if((b|0)!=(d|0)){while(1){e=b-136|0;f=J[e+116>>2];if(f){J[b-16>>2]=f;fl(f)}f=J[b-32>>2];if(f){J[b-28>>2]=f;fl(f)}ch(b-132|0);b=e;if((d|0)!=(b|0)){continue}break}e=J[a+172>>2]}J[a+176>>2]=d;fl(e)}b=J[a+152>>2];if(b){J[a+156>>2]=b;fl(b)}b=J[a+140>>2];if(b){fl(b)}b=J[a+128>>2];if(b){while(1){e=J[b>>2];fl(b);b=e;if(b){continue}break}}b=J[a+120>>2];J[a+120>>2]=0;if(b){fl(b)}b=J[a+108>>2];if(b){J[a+112>>2]=b;fl(b)}b=J[a+96>>2];if(b){J[a+100>>2]=b;fl(b)}b=J[a+84>>2];if(b){fl(b)}b=J[a+72>>2];if(b){J[a+76>>2]=b;fl(b)}b=J[a+52>>2];if(b){J[a+56>>2]=b;fl(b)}b=J[a+40>>2];if(b){J[a+44>>2]=b;fl(b)}b=J[a+28>>2];if(b){fl(b)}b=J[a+16>>2];if(b){J[a+20>>2]=b;fl(b)}b=J[a+12>>2];J[a+12>>2]=0;if(b){Ug(b)}return a|0}function vb(a,b){var c=0,d=0,e=0,f=0,g=0,h=0,i=0;a:{b:{c:{d:{if(b){if(b>>>0>=1073741824){break d}d=ll(b<<2);c=J[a>>2];J[a>>2]=d;if(c){fl(c)}J[a+4>>2]=b;d=0;if(b>>>0>=4){g=b&-4;while(1){c=d<<2;J[c+J[a>>2]>>2]=0;J[J[a>>2]+(c|4)>>2]=0;J[J[a>>2]+(c|8)>>2]=0;J[J[a>>2]+(c|12)>>2]=0;d=d+4|0;e=e+4|0;if((g|0)!=(e|0)){continue}break}}c=b&3;if(c){while(1){J[J[a>>2]+(d<<2)>>2]=0;d=d+1|0;f=f+1|0;if((c|0)!=(f|0)){continue}break}}e=J[a+8>>2];if(!e){break a}c=a+8|0;g=J[e+4>>2];d=am(b);if(d>>>0<2){break c}g=b>>>0<=g>>>0?(g>>>0)%(b>>>0)|0:g;J[J[a>>2]+(g<<2)>>2]=c;c=J[e>>2];if(!c){break a}if(d>>>0<=1){break b}while(1){f=J[c+4>>2];if(f>>>0>=b>>>0){f=(f>>>0)%(b>>>0)|0}e:{if((g|0)==(f|0)){e=c;break e}d=c;h=f<<2;i=h+J[a>>2]|0;if(!J[i>>2]){J[i>>2]=e;e=c;g=f;break e}while(1){f=d;d=J[d>>2];if(J[c+8>>2]==J[d+8>>2]?d:0){continue}break}J[e>>2]=d;J[f>>2]=J[J[h+J[a>>2]>>2]>>2];J[J[h+J[a>>2]>>2]>>2]=c}c=J[e>>2];if(c){continue}break}break a}b=J[a>>2];J[a>>2]=0;if(b){fl(b)}J[a+4>>2]=0;break a}$a();C()}g=b-1&g;J[J[a>>2]+(g<<2)>>2]=c;c=J[e>>2];if(!c){break a}}h=b-1|0;while(1){b=h&J[c+4>>2];f:{if((b|0)==(g|0)){e=c;break f}d=c;f=b<<2;i=f+J[a>>2]|0;if(J[i>>2]){while(1){b=d;d=J[b>>2];if(J[c+8>>2]==J[d+8>>2]?d:0){continue}break}J[e>>2]=d;J[b>>2]=J[J[f+J[a>>2]>>2]>>2];J[J[f+J[a>>2]>>2]>>2]=c;break f}J[i>>2]=e;e=c;g=b}c=J[e>>2];if(c){continue}break}}}function Sd(a,b,c,d){var e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0;g=J[b+16>>2];e=J[c+4>>2]-g|0;J[c>>2]=0|J[c>>2]-g;J[c+4>>2]=e;e=J[d+4>>2]-g|0;f=J[d>>2]-g|0;J[d>>2]=j|f;J[d+4>>2]=e;h=J[b+16>>2];g=e>>31;j=(g^e)-g|0;g=f>>31;if(h>>>0>>0){i=J[c+4>>2];k=J[c>>2];a:{b:{if((k|0)>=0){e=1;g=1;if((i|0)>=0){break a}f=1;e=-1;g=-1;if(k){break b}break a}f=-1;e=-1;g=-1;if((i|0)<=0){break a}}e=(i|0)<=0?-1:1;g=f}f=1;j=-1;l=k<<1;k=P(g,h);l=l-k|0;g=(P(e,g)|0)>=0;e=P(e,h);J[c+4>>2]=((g?0-l|0:l)+e|0)/2;e=(i<<1)-e|0;J[c>>2]=(k+(g?0-e|0:e)|0)/2;g=J[d+4>>2];i=J[d>>2];c:{d:{if((i|0)>=0){e=1;if((g|0)>=0){break c}j=1;f=-1;e=-1;if(i){break d}break c}f=-1;e=-1;if((g|0)<=0){break c}}f=(g|0)<=0?-1:1;e=j}h=i<<1;j=J[b+16>>2];i=P(j,e);h=h-i|0;l=0-h|0;k=h;h=(P(e,f)|0)>=0;f=P(f,j);e=((h?l:k)+f|0)/2|0;J[d+4>>2]=e;f=(g<<1)-f|0;f=(i+(h?0-f|0:f)|0)/2|0;J[d>>2]=f}e:{f:{g:{h:{i:{j:{if(f){if((f|0)>=0){break j}if((e|0)>0){break h}break e}if(e){break i}e=0;f=0;break e}if((e|0)<0){break g}e=0-J[c+4>>2]|0;J[c>>2]=0-J[c>>2];J[c+4>>2]=e;f=0-J[d>>2]|0;e=0-J[d+4>>2]|0;break f}if((e|0)<=0){break g}}e=J[c>>2];J[c>>2]=0-J[c+4>>2];J[c+4>>2]=e;f=0-J[d+4>>2]|0;e=J[d>>2];break f}e=0-J[c>>2]|0;J[c>>2]=J[c+4>>2];J[c+4>>2]=e;f=J[d+4>>2];e=0-J[d>>2]|0}J[d>>2]=f;J[d+4>>2]=e}d=J[c>>2];b=J[b+4>>2];c=J[c+4>>2]-e|0;J[a+4>>2]=(b&c>>31)+c;c=a;a=d-f|0;J[c>>2]=(b&a>>31)+a}function hf(a,b,c,d,e){var f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0;m=ia-16|0;ia=m;f=J[b+28>>2];g=J[b+24>>2];J[a+8>>2]=g;J[a+12>>2]=f;f=J[b+20>>2];J[a>>2]=J[b+16>>2];J[a+4>>2]=f;f=J[b+36>>2];J[a+16>>2]=J[b+32>>2];J[a+20>>2]=f;J[a+8>>2]=d+g;a:{b:{if((d|0)>0){j=J[b>>2];g=J[a+12>>2];n=J[a+16>>2];o=O[a>>3];while(1){i=J[b+4>>2]-j>>2;f=J[(h<<2)+c>>2];c:{if(i>>>0>f>>>0){break c}J[m+12>>2]=0;k=f+1|0;if(k>>>0>i>>>0){ub(b,k-i|0,m+12|0);j=J[b>>2];break c}if(i>>>0<=k>>>0){break c}J[b+4>>2]=(k<<2)+j}k=(f<<2)+j|0;i=J[k>>2];d:{if((i|0)>=2){l=+(i|0);l=pk(l)*l;break d}l=0;if(i){break d}n=n+1|0;J[a+16>>2]=n;if(f>>>0<=g>>>0){break d}J[a+12>>2]=f;g=f}f=i+1|0;J[k>>2]=f;p=+(f|0);o=pk(p)*p-l+o;O[a>>3]=o;h=h+1|0;if((h|0)!=(d|0)){continue}break}if(e){break b}if((d|0)<=0){break a}a=J[b>>2];j=0;h=0;if(d>>>0>=4){f=d&-4;e=0;while(1){b=h<<2;g=a+(J[b+c>>2]<<2)|0;J[g>>2]=J[g>>2]-1;g=a+(J[(b|4)+c>>2]<<2)|0;J[g>>2]=J[g>>2]-1;g=a+(J[(b|8)+c>>2]<<2)|0;J[g>>2]=J[g>>2]-1;b=a+(J[(b|12)+c>>2]<<2)|0;J[b>>2]=J[b>>2]-1;h=h+4|0;e=e+4|0;if((f|0)!=(e|0)){continue}break}}b=d&3;if(!b){break a}while(1){d=a+(J[(h<<2)+c>>2]<<2)|0;J[d>>2]=J[d>>2]-1;h=h+1|0;j=j+1|0;if((b|0)!=(j|0)){continue}break}break a}if(!e){break a}}c=J[a+4>>2];J[b+16>>2]=J[a>>2];J[b+20>>2]=c;J[b+32>>2]=J[a+16>>2];c=J[a+12>>2];J[b+24>>2]=J[a+8>>2];J[b+28>>2]=c}ia=m+16|0}function _g(a,b,c,d){var e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0;f=J[a>>2];g=b-f|0;i=(g&-4)+f|0;l=d-c|0;if((l|0)<=0){return}a:{j=l>>2;e=J[a+8>>2];h=J[a+4>>2];if((j|0)<=e-h>>2){g=h-i|0;e=g>>2;if((e|0)>=(j|0)){b=h;f=d;break a}b=h;f=(e<<2)+c|0;if((f|0)!=(d|0)){e=f;while(1){J[b>>2]=J[e>>2];b=b+4|0;e=e+4|0;if((e|0)!=(d|0)){continue}break}}J[a+4>>2]=b;if((g|0)>0){break a}return}b:{b=(h-f>>2)+j|0;if(b>>>0<1073741824){e=e-f|0;k=e>>1;k=e>>>0>=2147483644?1073741823:b>>>0>>0?k:b;if(k){if(k>>>0>=1073741824){break b}e=ll(k<<2)}else{e=0}b=e+(g&-4)|0;if((c|0)!=(d|0)){b=lk(b,c,l&-4)+(j<<2)|0}if((g|0)>0){lk(e,f,g)}if((h|0)!=(i|0)){while(1){J[b>>2]=J[i>>2];b=b+4|0;i=i+4|0;if((h|0)!=(i|0)){continue}break}}J[a+8>>2]=e+(k<<2);J[a+4>>2]=b;J[a>>2]=e;if(f){fl(f)}return}La();C()}$a();C()}e=j<<2;j=e+i|0;d=b;e=b-e|0;if(h>>>0>e>>>0){g=e;while(1){J[d>>2]=J[g>>2];d=d+4|0;g=g+4|0;if(h>>>0>g>>>0){continue}break}}J[a+4>>2]=d;c:{if((b|0)==(j|0)){break c}a=(b-j|0)-4|0;h=(a>>>2|0)+1&3;if(h){d=0;while(1){b=b-4|0;e=e-4|0;J[b>>2]=J[e>>2];d=d+1|0;if((h|0)!=(d|0)){continue}break}}if(a>>>0<12){break c}while(1){J[b-4>>2]=J[e-4>>2];J[b-8>>2]=J[e-8>>2];J[b-12>>2]=J[e-12>>2];b=b-16|0;e=e-16|0;J[b>>2]=J[e>>2];if((e|0)!=(i|0)){continue}break}}if((c|0)==(f|0)){return}b=i;while(1){J[b>>2]=J[c>>2];b=b+4|0;c=c+4|0;if((f|0)!=(c|0)){continue}break}}function $g(a,b){var c=0,d=0,e=0,f=0,g=0;e=-1;c=(b|0)==-1;d=-1;a:{if(c){break a}d=b+1|0;e=(d>>>0)%3|0?d:b-2|0;d=b-1|0;if((b>>>0)%3|0){break a}d=b+2|0}f=c?-1:(b>>>0)/3|0;g=J[a+28>>2]+(f>>>3&536870908)|0;J[g>>2]=J[g>>2]|1<>2]+12>>2]+(b<<2)>>2];if((c|0)==-1){break b}c=(c>>>0)/3|0;if(J[J[a+28>>2]+(c>>>3&268435452)>>2]>>>c&1){break b}c=J[a+172>>2];if((c|0)==J[a+176>>2]){break b}f=1<>>5<<2;b=0;while(1){Fe(J[a+280>>2]+(b<<5)|0,(f&J[g+J[(P(b,136)+c|0)+4>>2]>>2])!=0);b=b+1|0;c=J[a+172>>2];if(b>>>0<(J[a+176>>2]-c|0)/136>>>0){continue}break}}c:{if((e|0)==-1){break c}b=J[J[J[a+12>>2]+12>>2]+(e<<2)>>2];if((b|0)==-1){break c}b=(b>>>0)/3|0;if(J[J[a+28>>2]+(b>>>3&268435452)>>2]>>>b&1){break c}c=J[a+172>>2];if((c|0)==J[a+176>>2]){break c}f=1<>>5<<2;b=0;while(1){Fe(J[a+280>>2]+(b<<5)|0,(f&J[e+J[(P(b,136)+c|0)+4>>2]>>2])!=0);b=b+1|0;c=J[a+172>>2];if(b>>>0<(J[a+176>>2]-c|0)/136>>>0){continue}break}}d:{if((d|0)==-1){break d}b=J[J[J[a+12>>2]+12>>2]+(d<<2)>>2];if((b|0)==-1){break d}b=(b>>>0)/3|0;if(J[J[a+28>>2]+(b>>>3&268435452)>>2]>>>b&1){break d}c=J[a+172>>2];if((c|0)==J[a+176>>2]){break d}e=1<>>5<<2;b=0;while(1){Fe(J[a+280>>2]+(b<<5)|0,(e&J[d+J[(P(b,136)+c|0)+4>>2]>>2])!=0);b=b+1|0;c=J[a+172>>2];if(b>>>0<(J[a+176>>2]-c|0)/136>>>0){continue}break}}}function bj(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,f=0,g=0,h=0;a=0;a:{if(!d|(!b|(c|0)<0)){break a}f=J[b+8>>2];if(J[b+12>>2]-f>>2<=(c|0)){break a}if(!J[b+4>>2]){a=ll(36);J[a+4>>2]=0;J[a+8>>2]=0;J[a+24>>2]=0;J[a+28>>2]=0;e=a+16|0;J[e>>2]=0;J[e+4>>2]=0;J[a>>2]=a+4;J[a+32>>2]=0;J[a+12>>2]=e;J[b+4>>2]=a}a=J[J[f+(c<<2)>>2]+60>>2];d=Yj(ll(28),d);J[d+24>>2]=a;a=J[b+4>>2];c=ia-16|0;ia=c;J[c+8>>2]=d;b:{if(!d){break b}b=J[a+28>>2];c:{if(b>>>0>2]){J[c+8>>2]=0;J[b>>2]=d;J[a+28>>2]=b+4;break c}b=0;d:{e:{f:{e=J[a+24>>2];f=J[a+28>>2]-e>>2;d=f+1|0;if(d>>>0<1073741824){e=J[a+32>>2]-e|0;g=e>>1;d=e>>>0>=2147483644?1073741823:d>>>0>>0?g:d;if(d){if(d>>>0>=1073741824){break f}b=ll(d<<2)}g=J[c+8>>2];J[c+8>>2]=0;e=(f<<2)+b|0;J[e>>2]=g;f=(d<<2)+b|0;g=e+4|0;b=J[a+28>>2];d=J[a+24>>2];if((b|0)==(d|0)){break e}while(1){b=b-4|0;h=J[b>>2];J[b>>2]=0;e=e-4|0;J[e>>2]=h;if((b|0)!=(d|0)){continue}break}J[a+32>>2]=f;b=J[a+28>>2];J[a+28>>2]=g;d=J[a+24>>2];J[a+24>>2]=e;if((b|0)==(d|0)){break d}while(1){b=b-4|0;a=J[b>>2];J[b>>2]=0;if(a){Ki(a+12|0,J[a+16>>2]);Li(a,J[a+4>>2]);fl(a)}if((b|0)!=(d|0)){continue}break}break d}La();C()}$a();C()}J[a+32>>2]=f;J[a+28>>2]=g;J[a+24>>2]=e}if(d){fl(d)}}a=J[c+8>>2];J[c+8>>2]=0;if(!a){break b}Ki(a+12|0,J[a+16>>2]);Li(a,J[a+4>>2]);fl(a)}ia=c+16|0;a=1}return a|0}function qf(a,b){var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0;f=ia-16|0;ia=f;Ab(J[a+12>>2],b);a:{if(!J[a+12>>2]){break a}m=f+15|0;n=f+16|0;while(1){b:{c:{e=J[a>>2];i=J[e+(h<<3)>>2];d=i>>>0<64;if(!d){c=1;if(i>>>0<16384){break c}c=2;if(i>>>0<=4194303){break c}break a}c=0;if(i){break c}while(1){d:{if(J[(e+(c+h<<3)|0)+8>>2]){d=c;break d}d=c+1|0;if(J[(e+(h+d<<3)|0)+8>>2]){break d}d=c+2|0;if(J[(e+(h+d<<3)|0)+8>>2]){break d}d=63;c=c+3|0;if((c|0)!=63){continue}}break}H[f+15|0]=d<<2|3;c=J[b+20>>2];if(!J[b+16>>2]&(c|0)<=0|(c|0)<0){Ea(b,J[b+4>>2],f+15|0,n)}h=d+h|0;break b}H[f+14|0]=i<<2|c;e=J[b+20>>2];if(!J[b+16>>2]&(e|0)<=0|(e|0)<0){Ea(b,J[b+4>>2],f+14|0,m)}if(d){break b}d=J[b+20>>2];if(!!J[b+16>>2]&(d|0)>=0|(d|0)>0){break b}o=c>>>0<=1?1:c;k=0;while(1){k=k+1|0;l=i>>>(k<<3)-2|0;H[f+13|0]=l;e:{c=J[b+20>>2];if(!!J[b+16>>2]&(c|0)>=0|(c|0)>0){break e}g=J[b+8>>2];c=J[b+4>>2];if((g-c|0)>0){H[c|0]=K[f+13|0];J[b+4>>2]=c+1;break e}e=J[b>>2];c=c-e|0;d=c+1|0;if((d|0)>=0){g=g-e|0;j=g<<1;g=g>>>0>=1073741823?2147483647:d>>>0>>0?j:d;if(g){d=ll(g)}else{d=0}j=d+c|0;H[j|0]=l;if((c|0)>0){lk(d,e,c)}J[b+8>>2]=d+g;J[b+4>>2]=j+1;J[b>>2]=d;if(!e){break e}fl(e);break e}La();C()}if((k|0)!=(o|0)){continue}break}}h=h+1|0;if(h>>>0>2]){continue}break}}ia=f+16|0}function Bk(a){var b=0,c=0,d=0,e=0,f=0;a:{b:{c:{d:{e:{b=J[a+4>>2];f:{if((b|0)!=J[a+104>>2]){J[a+4>>2]=b+1;b=K[b|0];break f}b=wk(a)}switch(b-43|0){case 0:case 2:break e;default:break d}}f=(b|0)==45;b=J[a+4>>2];g:{if((b|0)!=J[a+104>>2]){J[a+4>>2]=b+1;b=K[b|0];break g}b=wk(a)}e=b-58|0;if(e>>>0>4294967285){break c}if(J[a+116>>2]<0){break b}J[a+4>>2]=J[a+4>>2]-1;break b}e=b-58|0}if(e>>>0<4294967286){break b}e=b-48|0;if(e>>>0<10){while(1){d=(P(d,10)+b|0)-48|0;c=(d|0)<214748364;b=J[a+4>>2];h:{if((b|0)!=J[a+104>>2]){J[a+4>>2]=b+1;b=K[b|0];break h}b=wk(a)}e=b-48|0;if(c&e>>>0<=9){continue}break}c=d>>31}i:{if(e>>>0>=10){break i}while(1){c=Zl(d,c,10,0);d=c+b|0;b=ma;b=c>>>0>d>>>0?b+1|0:b;c=d;d=c-48|0;c=b-(c>>>0<48)|0;b=J[a+4>>2];j:{if((b|0)!=J[a+104>>2]){J[a+4>>2]=b+1;b=K[b|0];break j}b=wk(a)}e=b-48|0;if(e>>>0>9){break i}if(d>>>0<2061584302&(c|0)<=21474836|(c|0)<21474836){continue}break}}if(e>>>0<10){while(1){b=J[a+4>>2];k:{if((b|0)!=J[a+104>>2]){J[a+4>>2]=b+1;b=K[b|0];break k}b=wk(a)}if(b-48>>>0<10){continue}break}}b=J[a+116>>2];if((b|0)>0|(b|0)>=0){J[a+4>>2]=J[a+4>>2]-1}a=d;d=f?0-a|0:a;c=f?0-(((a|0)!=0)+c|0)|0:c;break a}c=-2147483648;if(J[a+116>>2]<0){break a}J[a+4>>2]=J[a+4>>2]-1;ma=-2147483648;return 0}ma=c;return d}function Gc(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0,i=0;f=J[a+16>>2];a:{if(J[a+20>>2]-f>>2<=(b|0)){break a}h=J[f+(b<<2)>>2];if((h|0)<0){break a}if(M[a+52>>2]<=h>>>0){b:{b=ia-16|0;ia=b;c:{e=J[a+52>>2];c=h+1|0;d:{if(e>>>0>>0){f=c-e|0;g=J[a+56>>2];d=g<<5;e:{if(!(f>>>0>d>>>0|e>>>0>d-f>>>0)){J[a+52>>2]=c;d=e&31;c=J[a+48>>2]+(e>>>3&536870908)|0;break e}J[b+8>>2]=0;J[b>>2]=0;J[b+4>>2]=0;if((c|0)<0){break c}if(d>>>0<=1073741822){d=g<<6;c=c+31&-32;i=c>>>0>>0?d:c}else{i=2147483647}Ic(b,i);d=J[a+52>>2];J[b+4>>2]=d+f;e=J[a+48>>2];c=J[b>>2];f:{if((d|0)<=0){d=0;break f}g=d>>>5<<2;c=mk(c,e,g)+g|0;d=d&31;if(d){i=-1>>>32-d|0;J[c>>2]=J[c>>2]&(i^-1)|J[e+g>>2]&i}e=J[a+48>>2]}J[a+48>>2]=J[b>>2];J[b>>2]=e;g=J[a+52>>2];J[a+52>>2]=J[b+4>>2];J[b+4>>2]=g;g=J[a+56>>2];J[a+56>>2]=J[b+8>>2];J[b+8>>2]=g;if(!e){break e}fl(e)}if(!f){break d}if(d){e=32-d|0;g=e>>>0>>0?e:f;J[c>>2]=J[c>>2]&(-1<>>e-g^-1);f=f-g|0;c=c+4|0}i=c;c=f>>>5<<2;d=nk(i,0,c);if((f&-32)==(f|0)){break d}c=c+d|0;J[c>>2]=J[c>>2]&(-1>>>32-(f&31)^-1);break d}J[a+52>>2]=c}ia=b+16|0;break b}La();C()}}c=1;b=J[a+48>>2]+(h>>>3&536870908)|0;J[b>>2]=J[b>>2]|1<>2];a=J[a+36>>2];if(b-a>>2>>>0<=h>>>0){break a}H[J[a+(h<<2)>>2]+28|0]=1}return c|0}function Ui(a,b,c,d){a=a|0;b=b|0;c=c|0;d=+d;var e=0,f=0,g=0,h=0,i=0;g=ia-16|0;ia=g;a:{b:{c:{if(!b){break c}e=uk(c);if(e>>>0>=4294967280){break b}d:{e:{if(e>>>0>=11){f=(e|15)+1|0;a=ll(f);J[g+8>>2]=f|-2147483648;J[g>>2]=a;J[g+4>>2]=e;break e}H[g+11|0]=e;a=g;if(!e){break d}}lk(a,c,e)}H[a+e|0]=0;h=ia-16|0;ia=h;O[h+8>>3]=d;f=ia-48|0;ia=f;e=ec(b,g);if((e|0)!=(b+4|0)){a=J[e+4>>2];f:{if(!a){a=e;while(1){c=J[a+8>>2];i=J[c>>2]!=(a|0);a=c;if(i){continue}break}break f}while(1){c=a;a=J[a>>2];if(a){continue}break}}if((e|0)==J[b>>2]){J[b>>2]=c}J[b+8>>2]=J[b+8>>2]-1;Zj(J[b+4>>2],e);a=J[e+28>>2];if(a){J[e+32>>2]=a;fl(a)}if(H[e+27|0]<0){fl(J[e+16>>2])}fl(e)}a=ll(8);J[f>>2]=a;c=a+8|0;J[f+8>>2]=c;J[f+4>>2]=c;c=J[h+12>>2];e=J[h+8>>2];H[a|0]=e;H[a+1|0]=e>>>8;H[a+2|0]=e>>>16;H[a+3|0]=e>>>24;H[a+4|0]=c;H[a+5|0]=c>>>8;H[a+6|0]=c>>>16;H[a+7|0]=c>>>24;g:{if(H[g+11|0]>=0){J[f+24>>2]=J[g+8>>2];a=J[g+4>>2];J[f+16>>2]=J[g>>2];J[f+20>>2]=a;break g}sl(f+16|0,J[g>>2],J[g+4>>2])}Xj(f+28|0,f);a=f+16|0;_j(f+40|0,b,a,a);a=J[f+28>>2];if(a){J[f+32>>2]=a;fl(a)}if(H[f+27|0]<0){fl(J[f+16>>2])}a=J[f>>2];if(a){J[f+4>>2]=a;fl(a)}ia=f+48|0;ia=h+16|0;if(H[g+11|0]>=0){break c}fl(J[g>>2])}ia=g+16|0;a=(b|0)!=0;break a}ze();C()}return a|0}function Vb(a,b){var c=0,d=0,e=0,f=0,g=0;e=ia-16|0;ia=e;J[a+8>>2]=b;J[a>>2]=0;c=a+12|0;J[c>>2]=0;J[c+4>>2]=0;J[c+24>>2]=0;J[c+28>>2]=0;J[c+16>>2]=0;J[c+20>>2]=0;J[c+8>>2]=0;J[c+12>>2]=0;J[a+44>>2]=0;J[a+48>>2]=0;J[a+60>>2]=0;J[a+52>>2]=0;J[a+56>>2]=0;c=a- -64|0;J[c>>2]=0;J[c+4>>2]=0;J[c+16>>2]=0;J[c+8>>2]=0;J[c+12>>2]=0;J[a+84>>2]=0;J[a+88>>2]=0;J[a+100>>2]=0;J[a+92>>2]=0;J[a+96>>2]=0;J[a+112>>2]=0;J[a+104>>2]=0;J[a+108>>2]=0;g=a+140|0;a:{b:{if(b){if(b>>>0<1073741824){break b}La();C()}J[a+116>>2]=0;J[a+120>>2]=0;J[a+132>>2]=0;J[a+136>>2]=0;J[a+124>>2]=0;J[a+128>>2]=0;J[e+8>>2]=0;J[e>>2]=0;J[e+4>>2]=0;c=1;break a}c=b<<2;d=ll(c);J[a+104>>2]=d;f=c+d|0;J[a+112>>2]=f;nk(d,0,c);J[a+124>>2]=0;J[a+116>>2]=0;J[a+120>>2]=0;J[a+108>>2]=f;d=ll(c);J[a+116>>2]=d;f=c+d|0;J[a+124>>2]=f;nk(d,0,c);J[a+136>>2]=0;J[a+128>>2]=0;J[a+132>>2]=0;J[a+120>>2]=f;d=ll(c);J[a+128>>2]=d;f=c+d|0;J[a+136>>2]=f;nk(d,0,c);J[a+132>>2]=f;d=ll(c);J[e>>2]=d;f=c+d|0;J[e+8>>2]=f;nk(d,0,c);J[e+4>>2]=f;c=b<<5|1}bc(g,c,e);d=J[e>>2];if(d){J[e+4>>2]=d;fl(d)}J[e+8>>2]=0;J[e>>2]=0;J[e+4>>2]=0;if(b){b=b<<2;d=ll(b);J[e>>2]=d;f=b+d|0;J[e+8>>2]=f;nk(d,0,b);J[e+4>>2]=f}bc(a+152|0,c,e);b=J[e>>2];if(b){J[e+4>>2]=b;fl(b)}ia=e+16|0;return a}function Sh(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0;f=ia-16|0;ia=f;na[J[J[b>>2]+64>>2]](a,b);if(!J[a>>2]){if(H[a+15|0]<0){fl(J[a+4>>2])}g=J[b+48>>2];c=ll(32);J[f>>2]=c;J[f+4>>2]=29;J[f+8>>2]=-2147483616;d=K[1308]|K[1309]<<8|(K[1310]<<16|K[1311]<<24);e=K[1304]|K[1305]<<8|(K[1306]<<16|K[1307]<<24);H[c+21|0]=e;H[c+22|0]=e>>>8;H[c+23|0]=e>>>16;H[c+24|0]=e>>>24;H[c+25|0]=d;H[c+26|0]=d>>>8;H[c+27|0]=d>>>16;H[c+28|0]=d>>>24;d=K[1303]|K[1304]<<8|(K[1305]<<16|K[1306]<<24);e=K[1299]|K[1300]<<8|(K[1301]<<16|K[1302]<<24);H[c+16|0]=e;H[c+17|0]=e>>>8;H[c+18|0]=e>>>16;H[c+19|0]=e>>>24;H[c+20|0]=d;H[c+21|0]=d>>>8;H[c+22|0]=d>>>16;H[c+23|0]=d>>>24;d=K[1295]|K[1296]<<8|(K[1297]<<16|K[1298]<<24);e=K[1291]|K[1292]<<8|(K[1293]<<16|K[1294]<<24);H[c+8|0]=e;H[c+9|0]=e>>>8;H[c+10|0]=e>>>16;H[c+11|0]=e>>>24;H[c+12|0]=d;H[c+13|0]=d>>>8;H[c+14|0]=d>>>16;H[c+15|0]=d>>>24;d=K[1287]|K[1288]<<8|(K[1289]<<16|K[1290]<<24);e=K[1283]|K[1284]<<8|(K[1285]<<16|K[1286]<<24);H[c|0]=e;H[c+1|0]=e>>>8;H[c+2|0]=e>>>16;H[c+3|0]=e>>>24;H[c+4|0]=d;H[c+5|0]=d>>>8;H[c+6|0]=d>>>16;H[c+7|0]=d>>>24;H[c+29|0]=0;c=ri(g,f,0);if(H[f+11|0]<0){fl(J[f>>2])}if(c){na[J[J[b>>2]+68>>2]](b)}J[a>>2]=0;J[a+4>>2]=0;J[a+8>>2]=0;J[a+12>>2]=0}ia=f+16|0}function Qj(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0;dk(a,b,c);c=J[a+84>>2];d=J[a+88>>2]-c>>2;a:{if((d|0)>(b|0)){break a}b=b+1|0;if(b>>>0>d>>>0){b:{d=b-d|0;e=J[a+92>>2];c=J[a+88>>2];if(d>>>0<=e-c>>2>>>0){c:{if(!d){break c}b=c;f=d&7;if(f){while(1){J[b>>2]=1;b=b+4|0;g=g+1|0;if((f|0)!=(g|0)){continue}break}}c=(d<<2)+c|0;if((d-1&1073741823)>>>0<7){break c}while(1){J[b+24>>2]=1;J[b+28>>2]=1;J[b+16>>2]=1;J[b+20>>2]=1;J[b+8>>2]=1;J[b+12>>2]=1;J[b>>2]=1;J[b+4>>2]=1;b=b+32|0;if((c|0)!=(b|0)){continue}break}}J[a+88>>2]=c;break b}d:{f=J[a+84>>2];j=c-f|0;c=j>>2;b=c+d|0;if(b>>>0<1073741824){e=e-f|0;h=e>>1;e=e>>>0>=2147483644?1073741823:b>>>0>>0?h:b;if(e){if(e>>>0>=1073741824){break d}i=ll(e<<2)}c=(c<<2)+i|0;b=c;h=d&7;if(h){b=c;while(1){J[b>>2]=1;b=b+4|0;g=g+1|0;if((h|0)!=(g|0)){continue}break}}c=c+(d<<2)|0;if((d-1&1073741823)>>>0>=7){while(1){J[b+24>>2]=1;J[b+28>>2]=1;J[b+16>>2]=1;J[b+20>>2]=1;J[b+8>>2]=1;J[b+12>>2]=1;J[b>>2]=1;J[b+4>>2]=1;b=b+32|0;if((c|0)!=(b|0)){continue}break}}if((j|0)>0){lk(i,f,j)}J[a+92>>2]=(e<<2)+i;J[a+88>>2]=c;J[a+84>>2]=i;if(f){fl(f)}break b}La();C()}$a();C()}return}if(b>>>0>=d>>>0){break a}J[a+88>>2]=c+(b<<2)}}function Rb(a){var b=0,c=0,d=0,e=0,f=0;e=ia-16|0;ia=e;b=ll(16);J[e>>2]=b;J[e+4>>2]=14;J[e+8>>2]=-2147483632;c=K[1602]|K[1603]<<8|(K[1604]<<16|K[1605]<<24);d=K[1598]|K[1599]<<8|(K[1600]<<16|K[1601]<<24);H[b+6|0]=d;H[b+7|0]=d>>>8;H[b+8|0]=d>>>16;H[b+9|0]=d>>>24;H[b+10|0]=c;H[b+11|0]=c>>>8;H[b+12|0]=c>>>16;H[b+13|0]=c>>>24;c=K[1596]|K[1597]<<8|(K[1598]<<16|K[1599]<<24);d=K[1592]|K[1593]<<8|(K[1594]<<16|K[1595]<<24);H[b|0]=d;H[b+1|0]=d>>>8;H[b+2|0]=d>>>16;H[b+3|0]=d>>>24;H[b+4|0]=c;H[b+5|0]=c>>>8;H[b+6|0]=c>>>16;H[b+7|0]=c>>>24;H[b+14|0]=0;f=oi(a,e,-1);if(H[e+11|0]<0){fl(J[e>>2])}b=ll(16);J[e>>2]=b;J[e+4>>2]=14;J[e+8>>2]=-2147483632;c=K[1617]|K[1618]<<8|(K[1619]<<16|K[1620]<<24);d=K[1613]|K[1614]<<8|(K[1615]<<16|K[1616]<<24);H[b+6|0]=d;H[b+7|0]=d>>>8;H[b+8|0]=d>>>16;H[b+9|0]=d>>>24;H[b+10|0]=c;H[b+11|0]=c>>>8;H[b+12|0]=c>>>16;H[b+13|0]=c>>>24;c=K[1611]|K[1612]<<8|(K[1613]<<16|K[1614]<<24);d=K[1607]|K[1608]<<8|(K[1609]<<16|K[1610]<<24);H[b|0]=d;H[b+1|0]=d>>>8;H[b+2|0]=d>>>16;H[b+3|0]=d>>>24;H[b+4|0]=c;H[b+5|0]=c>>>8;H[b+6|0]=c>>>16;H[b+7|0]=c>>>24;H[b+14|0]=0;a=oi(a,e,-1);if(H[e+11|0]<0){fl(J[e>>2])}ia=e+16|0;a=(a|0)<(f|0)?f:a;return(a|0)==-1?5:a}function Yb(a,b){var c=0,d=0,e=0,f=0,g=0;d=ia-16|0;ia=d;J[a+8>>2]=b;J[a>>2]=0;J[a+12>>2]=0;J[a+16>>2]=0;J[a+28>>2]=0;J[a+20>>2]=0;J[a+24>>2]=0;J[a+32>>2]=0;J[a+36>>2]=0;J[a+48>>2]=0;J[a+40>>2]=0;J[a+44>>2]=0;J[a+52>>2]=0;J[a+56>>2]=0;J[a+68>>2]=0;J[a+60>>2]=0;J[a+64>>2]=0;J[a+72>>2]=0;J[a+76>>2]=0;J[a+88>>2]=0;J[a+80>>2]=0;J[a+84>>2]=0;J[a+100>>2]=0;J[a+92>>2]=0;J[a+96>>2]=0;g=a+128|0;a:{b:{if(b){if(b>>>0<1073741824){break b}La();C()}J[a+104>>2]=0;J[a+108>>2]=0;J[a+120>>2]=0;J[a+124>>2]=0;J[a+112>>2]=0;J[a+116>>2]=0;J[d+8>>2]=0;J[d>>2]=0;J[d+4>>2]=0;e=1;break a}e=b<<2;c=ll(e);J[a+92>>2]=c;f=c+e|0;J[a+100>>2]=f;nk(c,0,e);J[a+112>>2]=0;J[a+104>>2]=0;J[a+108>>2]=0;J[a+96>>2]=f;c=ll(e);J[a+104>>2]=c;f=c+e|0;J[a+112>>2]=f;nk(c,0,e);J[a+124>>2]=0;J[a+116>>2]=0;J[a+120>>2]=0;J[a+108>>2]=f;c=ll(e);J[a+116>>2]=c;f=c+e|0;J[a+124>>2]=f;nk(c,0,e);J[a+120>>2]=f;c=ll(e);J[d>>2]=c;f=c+e|0;J[d+8>>2]=f;nk(c,0,e);J[d+4>>2]=f;e=b<<5|1}bc(g,e,d);c=J[d>>2];if(c){J[d+4>>2]=c;fl(c)}J[d+8>>2]=0;J[d>>2]=0;J[d+4>>2]=0;if(b){b=b<<2;c=ll(b);J[d>>2]=c;f=b+c|0;J[d+8>>2]=f;nk(c,0,b);J[d+4>>2]=f}bc(a+140|0,e,d);b=J[d>>2];if(b){J[d+4>>2]=b;fl(b)}ia=d+16|0;return a}function De(a,b){var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0;a:{c=J[a+8>>2];e=J[a>>2];if(c-e>>3>>>0>=2){f=J[a+4>>2];h=f-e>>3;d=h>>>0>=2?2:h;b:{if(!d){break b}c=e;g=d;i=d&7;if(i){while(1){k=J[b+4>>2];J[c>>2]=J[b>>2];J[c+4>>2]=k;g=g-1|0;c=c+8|0;j=j+1|0;if((j|0)!=(i|0)){continue}break}}if(d>>>0<8){break b}while(1){d=J[b+4>>2];J[c>>2]=J[b>>2];J[c+4>>2]=d;d=J[b+4>>2];J[c+8>>2]=J[b>>2];J[c+12>>2]=d;d=J[b+4>>2];J[c+16>>2]=J[b>>2];J[c+20>>2]=d;d=J[b+4>>2];J[c+24>>2]=J[b>>2];J[c+28>>2]=d;d=J[b+4>>2];J[c+32>>2]=J[b>>2];J[c+36>>2]=d;d=J[b+4>>2];J[c+40>>2]=J[b>>2];J[c+44>>2]=d;d=J[b+4>>2];J[c+48>>2]=J[b>>2];J[c+52>>2]=d;d=J[b+4>>2];J[c+56>>2]=J[b>>2];J[c+60>>2]=d;c=c- -64|0;g=g-8|0;if(g){continue}break}}if(h>>>0<2){c=(2-h<<3)+f|0;while(1){e=J[b+4>>2];J[f>>2]=J[b>>2];J[f+4>>2]=e;f=f+8|0;if((c|0)!=(f|0)){continue}break}J[a+4>>2]=c;return}break a}if(e){J[a+4>>2]=e;fl(e);J[a+8>>2]=0;J[a>>2]=0;J[a+4>>2]=0;c=0}e=c>>2;e=c>>>0>=2147483640?536870911:e>>>0<=2?2:e;if(e>>>0<536870912){c=e<<3;e=ll(c);J[a>>2]=e;J[a+8>>2]=c+e;g=J[b>>2];d=J[b+4>>2];c=e;b=0;while(1){J[c>>2]=g;J[c+4>>2]=d;c=c+8|0;b=b+1|0;if((b|0)!=2){continue}break}break a}La();C()}J[a+4>>2]=e+16}function Jg(a,b,c){var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0;d=J[a+8>>2];e=J[a>>2];if(d-e>>2>>>0>=b>>>0){f=J[a+4>>2];h=f-e>>2;i=b>>>0>h>>>0?h:b;a:{if(!i){break a}d=e;g=i;j=g&7;if(j){while(1){J[d>>2]=J[c>>2];g=g-1|0;d=d+4|0;k=k+1|0;if((k|0)!=(j|0)){continue}break}}if(i>>>0<8){break a}while(1){J[d>>2]=J[c>>2];J[d+4>>2]=J[c>>2];J[d+8>>2]=J[c>>2];J[d+12>>2]=J[c>>2];J[d+16>>2]=J[c>>2];J[d+20>>2]=J[c>>2];J[d+24>>2]=J[c>>2];J[d+28>>2]=J[c>>2];d=d+32|0;g=g-8|0;if(g){continue}break}}if(b>>>0>h>>>0){b=(b-h<<2)+f|0;while(1){J[f>>2]=J[c>>2];f=f+4|0;if((b|0)!=(f|0)){continue}break}J[a+4>>2]=b;return}J[a+4>>2]=e+(b<<2);return}if(e){J[a+4>>2]=e;fl(e);J[a+8>>2]=0;J[a>>2]=0;J[a+4>>2]=0;d=0}b:{if(b>>>0>=1073741824){break b}e=d>>1;d=d>>>0>=2147483644?1073741823:b>>>0>>0?e:b;if(d>>>0>=1073741824){break b}d=d<<2;e=ll(d);J[a>>2]=e;J[a+8>>2]=d+e;c=J[c>>2];d=e;g=b&7;if(g){while(1){J[d>>2]=c;d=d+4|0;f=f+1|0;if((g|0)!=(f|0)){continue}break}}e=e+(b<<2)|0;if((b-1&1073741823)>>>0>=7){while(1){J[d+28>>2]=c;J[d+24>>2]=c;J[d+20>>2]=c;J[d+16>>2]=c;J[d+12>>2]=c;J[d+8>>2]=c;J[d+4>>2]=c;J[d>>2]=c;d=d+32|0;if((e|0)!=(d|0)){continue}break}}J[a+4>>2]=e;return}La();C()}function Si(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,f=0,g=0,h=0;f=ia-16|0;ia=f;a:{b:{c:{if(!b){break c}e=uk(c);if(e>>>0>=4294967280){break b}d:{e:{if(e>>>0>=11){g=(e|15)+1|0;a=ll(g);J[f+8>>2]=g|-2147483648;J[f>>2]=a;J[f+4>>2]=e;break e}H[f+11|0]=e;a=f;if(!e){break d}}lk(a,c,e)}H[a+e|0]=0;g=ia-16|0;ia=g;J[g+12>>2]=d;e=ia-48|0;ia=e;d=ec(b,f);if((d|0)!=(b+4|0)){a=J[d+4>>2];f:{if(!a){a=d;while(1){c=J[a+8>>2];h=J[c>>2]!=(a|0);a=c;if(h){continue}break}break f}while(1){c=a;a=J[a>>2];if(a){continue}break}}if((d|0)==J[b>>2]){J[b>>2]=c}J[b+8>>2]=J[b+8>>2]-1;Zj(J[b+4>>2],d);a=J[d+28>>2];if(a){J[d+32>>2]=a;fl(a)}if(H[d+27|0]<0){fl(J[d+16>>2])}fl(d)}a=ll(4);J[e>>2]=a;c=a+4|0;J[e+8>>2]=c;J[e+4>>2]=c;c=J[g+12>>2];H[a|0]=c;H[a+1|0]=c>>>8;H[a+2|0]=c>>>16;H[a+3|0]=c>>>24;g:{if(H[f+11|0]>=0){J[e+24>>2]=J[f+8>>2];a=J[f+4>>2];J[e+16>>2]=J[f>>2];J[e+20>>2]=a;break g}sl(e+16|0,J[f>>2],J[f+4>>2])}Xj(e+28|0,e);a=e+16|0;_j(e+40|0,b,a,a);a=J[e+28>>2];if(a){J[e+32>>2]=a;fl(a)}if(H[e+27|0]<0){fl(J[e+16>>2])}a=J[e>>2];if(a){J[e+4>>2]=a;fl(a)}ia=e+48|0;ia=g+16|0;if(H[f+11|0]>=0){break c}fl(J[f>>2])}ia=f+16|0;a=(b|0)!=0;break a}ze();C()}return a|0}function Vg(a){var b=0,c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0;a:{b=J[a+12>>2];c=J[b+4>>2];b=J[b>>2];if((c|0)!=(b|0)){b=c-b>>2;j=b>>>0<=1?1:b;k=a+140|0;while(1){b:{if(Lj(J[a+12>>2],(e>>>0)/3|0)){break b}b=J[a+12>>2];if(J[J[b+12>>2]+(e<<2)>>2]!=-1){break b}f=J[a+152>>2];d=e+1|0;d=(d>>>0)%3|0?d:e-2|0;if((d|0)!=-1){b=J[J[b>>2]+(d<<2)>>2]}else{b=-1}c=b<<2;if(J[f+c>>2]!=-1){break b}g=-1;h=J[a+144>>2];b=h;d=J[a+148>>2];if((b|0)==d<<5){if((h+1|0)<0){break a}if(h>>>0<=1073741822){b=d<<6;d=(h&-32)+32|0;b=b>>>0>d>>>0?b:d}else{b=2147483647}Ic(k,b);f=J[a+152>>2];g=J[c+f>>2];b=J[a+144>>2]}J[a+144>>2]=b+1;d=J[a+140>>2]+(b>>>3&536870908)|0;i=J[d>>2];m=d,n=bm(b)&i,J[m>>2]=n;if((g|0)!=-1){break b}c=c+f|0;i=J[a+12>>2];b=e;while(1){d=b;J[c>>2]=h;b=-1;g=-1;c:{if((d|0)==-1){break c}c=d+1|0;c=(c>>>0)%3|0?c:d-2|0;if((c|0)==-1){break c}l=J[i+12>>2];while(1){d=J[(c<<2)+l>>2];if((d|0)!=-1){c=d+1|0;c=(c>>>0)%3|0?c:d-2|0;if((c|0)!=-1){continue}break c}break}b=c+1|0;b=(b>>>0)%3|0?b:c-2|0;if((b|0)!=-1){g=J[J[i>>2]+(b<<2)>>2]}b=c}c=(g<<2)+f|0;if(J[c>>2]==-1){continue}break}}e=e+1|0;if((j|0)!=(e|0)){continue}break}}return 1}La();C()}function Je(a,b,c){var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0;i=ia-16|0;ia=i;J[a+4>>2]=0;J[a+8>>2]=0;d=a+16|0;J[d>>2]=0;J[d+4>>2]=0;J[a>>2]=a+4;g=a+28|0;J[g>>2]=0;J[g+4>>2]=0;J[a+12>>2]=d;J[a+24>>2]=g;if((b+4|0)!=(a|0)){Le(a,J[b+4>>2],b+8|0)}d=a+24|0;if((d|0)!=(b+28|0)){Le(d,J[b+28>>2],b+32|0)}J[i+12>>2]=0;h=J[c+12>>2];f=J[c+8>>2];a:{if((h-f|0)<=0){break a}g=b+20|0;if(!J[g>>2]){break a}while(1){b=J[g>>2];b:{if(!b){break b}j=J[J[(e<<2)+f>>2]+56>>2];d=g;while(1){k=(j|0)>J[b+16>>2];d=k?d:b;b=J[(k?b+4|0:b)>>2];if(b){continue}break}if((d|0)==(g|0)|(j|0)>2]){break b}h=d+20|0;e=ia-48|0;ia=e;j=J[i+12>>2];d=a+16|0;f=J[d>>2];c:{d:{if(!f){break d}b=d;while(1){k=(j|0)>J[f+16>>2];b=k?b:f;f=J[(k?f+4|0:f)>>2];if(f){continue}break}if((b|0)==(d|0)){break d}if((j|0)>=J[b+16>>2]){break c}}J[e+28>>2]=0;J[e+32>>2]=0;f=e+24|0;J[e+24>>2]=f|4;b=e+16|0;J[b>>2]=0;J[b+4>>2]=0;J[e+8>>2]=j;J[e+12>>2]=b;d=e+8|0;Oe(e+40|0,a+12|0,d,d);b=J[e+40>>2];Oc(d|4,J[e+16>>2]);Oc(f,J[e+28>>2])}b=b+20|0;if((b|0)!=(h|0)){Le(b,J[h>>2],h+4|0)}ia=e+48|0;f=J[c+8>>2];h=J[c+12>>2];e=J[i+12>>2]}e=e+1|0;J[i+12>>2]=e;if(h-f>>2>(e|0)){continue}break}}ia=i+16|0}function Qe(a,b,c){var d=0,e=0,f=0,g=0;f=ia-16|0;ia=f;d=ll(16);J[f>>2]=d;J[f+4>>2]=14;J[f+8>>2]=-2147483632;g=K[1602]|K[1603]<<8|(K[1604]<<16|K[1605]<<24);e=K[1598]|K[1599]<<8|(K[1600]<<16|K[1601]<<24);H[d+6|0]=e;H[d+7|0]=e>>>8;H[d+8|0]=e>>>16;H[d+9|0]=e>>>24;H[d+10|0]=g;H[d+11|0]=g>>>8;H[d+12|0]=g>>>16;H[d+13|0]=g>>>24;g=K[1596]|K[1597]<<8|(K[1598]<<16|K[1599]<<24);e=K[1592]|K[1593]<<8|(K[1594]<<16|K[1595]<<24);H[d|0]=e;H[d+1|0]=e>>>8;H[d+2|0]=e>>>16;H[d+3|0]=e>>>24;H[d+4|0]=g;H[d+5|0]=g>>>8;H[d+6|0]=g>>>16;H[d+7|0]=g>>>24;H[d+14|0]=0;d=a+4|0;mi(d,f,b);if(H[f+11|0]<0){fl(J[f>>2])}a=ll(16);J[f>>2]=a;J[f+4>>2]=14;J[f+8>>2]=-2147483632;e=K[1617]|K[1618]<<8|(K[1619]<<16|K[1620]<<24);b=K[1613]|K[1614]<<8|(K[1615]<<16|K[1616]<<24);H[a+6|0]=b;H[a+7|0]=b>>>8;H[a+8|0]=b>>>16;H[a+9|0]=b>>>24;H[a+10|0]=e;H[a+11|0]=e>>>8;H[a+12|0]=e>>>16;H[a+13|0]=e>>>24;e=K[1611]|K[1612]<<8|(K[1613]<<16|K[1614]<<24);b=K[1607]|K[1608]<<8|(K[1609]<<16|K[1610]<<24);H[a|0]=b;H[a+1|0]=b>>>8;H[a+2|0]=b>>>16;H[a+3|0]=b>>>24;H[a+4|0]=e;H[a+5|0]=e>>>8;H[a+6|0]=e>>>16;H[a+7|0]=e>>>24;H[a+14|0]=0;mi(d,f,c);if(H[f+11|0]<0){fl(J[f>>2])}ia=f+16|0}function wk(a){var b=0,c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0;b=J[a+112>>2];d=J[a+116>>2];e=(b|d)!=0;c=b;a:{i=e;e=J[a+4>>2];f=J[a+44>>2];b=e-f|0;h=b;g=b+J[a+120>>2]|0;b=J[a+124>>2]+(b>>31)|0;b=g>>>0>>0?b+1|0:b;if(!(i&(c>>>0<=g>>>0&(b|0)>=(d|0)|(b|0)>(d|0)))){d=ia-16|0;ia=d;e=-1;c=J[a+72>>2];J[a+72>>2]=c-1|c;if(J[a+20>>2]!=J[a+28>>2]){na[J[a+36>>2]](a,0,0)|0}J[a+28>>2]=0;J[a+16>>2]=0;J[a+20>>2]=0;c=J[a>>2];b:{if(c&4){J[a>>2]=c|32;c=-1;break b}f=J[a+44>>2]+J[a+48>>2]|0;J[a+8>>2]=f;J[a+4>>2]=f;c=c<<27>>31}c:{if(c){break c}if((na[J[a+32>>2]](a,d+15|0,1)|0)!=1){break c}e=K[d+15|0]}ia=d+16|0;if((e|0)>=0){break a}f=J[a+44>>2];e=J[a+4>>2]}J[a+112>>2]=-1;J[a+116>>2]=-1;J[a+104>>2]=e;d=f-e|0;e=d+g|0;b=(d>>31)+b|0;J[a+120>>2]=e;J[a+124>>2]=d>>>0>e>>>0?b+1|0:b;return-1}d=g+1|0;b=d?b:b+1|0;g=J[a+4>>2];f=J[a+8>>2];c=J[a+112>>2];h=J[a+116>>2];d:{if(!(c|h)){break d}i=c-d|0;c=h-(b+(d>>>0>c>>>0)|0)|0;j=f-g|0;h=j>>31;if((c|0)>=(h|0)&i>>>0>=j>>>0|(c|0)>(h|0)){break d}f=g+i|0}J[a+104>>2]=f;c=J[a+44>>2];f=c-g|0;d=f+d|0;b=(f>>31)+b|0;J[a+120>>2]=d;J[a+124>>2]=d>>>0>>0?b+1|0:b;if(c>>>0>=g>>>0){H[g-1|0]=e}return e}function lk(a,b,c){var d=0,e=0,f=0;if(c>>>0>=512){ba(a|0,b|0,c|0);return a}e=a+c|0;a:{if(!((a^b)&3)){b:{if(!(a&3)){c=a;break b}if(!c){c=a;break b}c=a;while(1){H[c|0]=K[b|0];b=b+1|0;c=c+1|0;if(!(c&3)){break b}if(c>>>0>>0){continue}break}}d=e&-4;c:{if(d>>>0<64){break c}f=d+-64|0;if(f>>>0>>0){break c}while(1){J[c>>2]=J[b>>2];J[c+4>>2]=J[b+4>>2];J[c+8>>2]=J[b+8>>2];J[c+12>>2]=J[b+12>>2];J[c+16>>2]=J[b+16>>2];J[c+20>>2]=J[b+20>>2];J[c+24>>2]=J[b+24>>2];J[c+28>>2]=J[b+28>>2];J[c+32>>2]=J[b+32>>2];J[c+36>>2]=J[b+36>>2];J[c+40>>2]=J[b+40>>2];J[c+44>>2]=J[b+44>>2];J[c+48>>2]=J[b+48>>2];J[c+52>>2]=J[b+52>>2];J[c+56>>2]=J[b+56>>2];J[c+60>>2]=J[b+60>>2];b=b- -64|0;c=c- -64|0;if(f>>>0>=c>>>0){continue}break}}if(c>>>0>=d>>>0){break a}while(1){J[c>>2]=J[b>>2];b=b+4|0;c=c+4|0;if(d>>>0>c>>>0){continue}break}break a}if(e>>>0<4){c=a;break a}d=e-4|0;if(d>>>0>>0){c=a;break a}c=a;while(1){H[c|0]=K[b|0];H[c+1|0]=K[b+1|0];H[c+2|0]=K[b+2|0];H[c+3|0]=K[b+3|0];b=b+4|0;c=c+4|0;if(d>>>0>=c>>>0){continue}break}}if(c>>>0>>0){while(1){H[c|0]=K[b|0];b=b+1|0;c=c+1|0;if((e|0)!=(c|0)){continue}break}}return a}function Jb(a,b,c){var d=0,e=0,f=0,g=0,h=0;a:{b:{f=a+16|0;d=J[f>>2];if(!d){break b}g=J[b>>2];b=f;while(1){e=(g|0)>J[d+16>>2];b=e?b:d;d=J[(e?d+4|0:d)>>2];if(d){continue}break}if((b|0)==(f|0)|(g|0)>2]){break b}d=J[b+24>>2];if(!d){break a}a=K[c+11|0];b=a<<24>>24<0;f=b?J[c>>2]:c;a=b?J[c+4>>2]:a;while(1){b=K[d+27|0];c=b<<24>>24<0;b=c?J[d+20>>2]:b;g=b>>>0>>0;c:{d:{e:{f:{g:{h:{e=g?b:a;if(e){c=c?J[d+16>>2]:d+16|0;h=qk(f,c,e);if(h){break h}if(a>>>0>=b>>>0){break g}break c}if(a>>>0>=b>>>0){break f}break c}if((h|0)<0){break c}}b=qk(c,f,e);if(b){break e}}if(g){break d}return 1}if((b|0)<0){break d}return 1}d=d+4|0}d=J[d>>2];if(d){continue}break}break a}d=J[a+4>>2];if(!d){break a}a=K[c+11|0];b=a<<24>>24<0;f=b?J[c>>2]:c;a=b?J[c+4>>2]:a;while(1){b=K[d+27|0];c=b<<24>>24<0;b=c?J[d+20>>2]:b;g=b>>>0>>0;i:{j:{k:{l:{m:{n:{e=g?b:a;if(e){c=c?J[d+16>>2]:d+16|0;h=qk(f,c,e);if(h){break n}if(a>>>0>=b>>>0){break m}break i}if(a>>>0>=b>>>0){break l}break i}if((h|0)<0){break i}}b=qk(c,f,e);if(b){break k}}if(g){break j}return 1}if((b|0)<0){break j}return 1}d=d+4|0}d=J[d>>2];if(d){continue}break}}return 0}function nh(a){a=a|0;var b=0,c=0,d=0,e=0;J[a>>2]=10540;c=J[a+280>>2];J[a+280>>2]=0;if(c){d=c-4|0;b=J[d>>2];if(b){b=c+(b<<5)|0;while(1){b=Ce(b-32|0);if((c|0)!=(b|0)){continue}break}}fl(d)}b=J[a+268>>2];if(b){J[a+272>>2]=b;fl(b)}b=J[a+244>>2];J[a+244>>2]=0;if(b){fl(b)}b=J[a+232>>2];if(b){J[a+236>>2]=b;fl(b)}Ce(a+200|0);b=J[a+184>>2];if(b){J[a+188>>2]=b;fl(b)}c=J[a+172>>2];if(c){d=c;b=J[a+176>>2];if((c|0)!=(b|0)){while(1){d=b-136|0;e=J[d+116>>2];if(e){J[b-16>>2]=e;fl(e)}e=J[b-32>>2];if(e){J[b-28>>2]=e;fl(e)}ch(b-132|0);b=d;if((c|0)!=(b|0)){continue}break}d=J[a+172>>2]}J[a+176>>2]=c;fl(d)}b=J[a+152>>2];if(b){J[a+156>>2]=b;fl(b)}b=J[a+140>>2];if(b){fl(b)}b=J[a+128>>2];if(b){while(1){c=J[b>>2];fl(b);b=c;if(b){continue}break}}b=J[a+120>>2];J[a+120>>2]=0;if(b){fl(b)}b=J[a+108>>2];if(b){J[a+112>>2]=b;fl(b)}b=J[a+96>>2];if(b){J[a+100>>2]=b;fl(b)}b=J[a+84>>2];if(b){fl(b)}b=J[a+72>>2];if(b){J[a+76>>2]=b;fl(b)}b=J[a+52>>2];if(b){J[a+56>>2]=b;fl(b)}b=J[a+40>>2];if(b){J[a+44>>2]=b;fl(b)}b=J[a+28>>2];if(b){fl(b)}b=J[a+16>>2];if(b){J[a+20>>2]=b;fl(b)}b=J[a+12>>2];J[a+12>>2]=0;if(b){Ug(b)}return a|0}function eh(a,b,c,d){var e=0,f=0,g=0,h=0,i=0;a:{b:{f=J[a+124>>2];c:{if(!f){break c}e=J[a+120>>2];i=am(f);h=f-1&d;d:{if(i>>>0<=1){break d}h=d;if(d>>>0>>0){break d}h=(d>>>0)%(f>>>0)|0}g=J[e+(h<<2)>>2];if(!g){break c}e=J[g>>2];if(!e){break c}e:{if(i>>>0<=1){g=f-1|0;while(1){f=J[e+4>>2];f:{if((f|0)!=(d|0)){if((h|0)==(f&g)){break f}break c}if(J[e+8>>2]==(d|0)){break e}}e=J[e>>2];if(e){continue}break}break c}while(1){g=J[e+4>>2];g:{if((g|0)!=(d|0)){if(f>>>0<=g>>>0){g=(g>>>0)%(f>>>0)|0}if((g|0)==(h|0)){break g}break c}if(J[e+8>>2]==(d|0)){break e}}e=J[e>>2];if(e){continue}break}break c}f=J[e+12>>2];if((f|0)==-1){break c}i=c&1;c=J[a+112>>2];if((c|0)!=J[a+116>>2]){H[c+8|0]=i;J[c+4>>2]=b;J[c>>2]=f;J[a+112>>2]=c+12;return}g=J[a+108>>2];h=c-g|0;d=(h|0)/12|0;c=d+1|0;if(c>>>0>=357913942){break b}e=d<<1;e=d>>>0>=178956970?357913941:c>>>0>>0?e:c;if(e){if(e>>>0>=357913942){break a}c=ll(P(e,12))}else{c=0}d=c+P(d,12)|0;H[d+8|0]=i;J[d+4>>2]=b;J[d>>2]=f;b=d+P((h|0)/-12|0,12)|0;if((h|0)>0){lk(b,g,h)}J[a+116>>2]=c+P(e,12);J[a+112>>2]=d+12;J[a+108>>2]=b;if(!g){break c}fl(g)}return}La();C()}$a();C()}function ub(a,b,c){var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0;f=J[a+8>>2];e=J[a+4>>2];if(f-e>>2>>>0>=b>>>0){a:{if(!b){break a}d=e;g=b&7;if(g){while(1){J[d>>2]=J[c>>2];d=d+4|0;h=h+1|0;if((g|0)!=(h|0)){continue}break}}e=(b<<2)+e|0;if((b-1&1073741823)>>>0<7){break a}while(1){J[d>>2]=J[c>>2];J[d+4>>2]=J[c>>2];J[d+8>>2]=J[c>>2];J[d+12>>2]=J[c>>2];J[d+16>>2]=J[c>>2];J[d+20>>2]=J[c>>2];J[d+24>>2]=J[c>>2];J[d+28>>2]=J[c>>2];d=d+32|0;if((e|0)!=(d|0)){continue}break}}J[a+4>>2]=e;return}b:{g=J[a>>2];k=e-g|0;e=k>>2;d=e+b|0;if(d>>>0<1073741824){f=f-g|0;i=f>>1;f=f>>>0>=2147483644?1073741823:d>>>0>>0?i:d;if(f){if(f>>>0>=1073741824){break b}j=ll(f<<2)}e=(e<<2)+j|0;d=e;i=b&7;if(i){d=e;while(1){J[d>>2]=J[c>>2];d=d+4|0;h=h+1|0;if((i|0)!=(h|0)){continue}break}}e=e+(b<<2)|0;if((b-1&1073741823)>>>0>=7){while(1){J[d>>2]=J[c>>2];J[d+4>>2]=J[c>>2];J[d+8>>2]=J[c>>2];J[d+12>>2]=J[c>>2];J[d+16>>2]=J[c>>2];J[d+20>>2]=J[c>>2];J[d+24>>2]=J[c>>2];J[d+28>>2]=J[c>>2];d=d+32|0;if((e|0)!=(d|0)){continue}break}}if((k|0)>0){lk(j,g,k)}J[a+8>>2]=(f<<2)+j;J[a+4>>2]=e;J[a>>2]=j;if(g){fl(g)}return}La();C()}$a();C()}function Zg(a,b,c){var d=0,e=0,f=0,g=0,h=0,i=0;f=-1;a:{if((b|0)==-1){h=J[a+12>>2];d=1;g=-1;break a}h=J[a+12>>2];b:{c:{if((b>>>0)%3|0){e=b-1|0;break c}e=b+2|0;if((e|0)!=-1){break c}d=1;break b}g=J[h+12>>2];while(1){f=e;d=J[g+(e<<2)>>2];if((d|0)!=-1){f=-1;e=d+1|0;e=(e>>>0)%3|0?e:d-2|0;if((e|0)!=-1){continue}}break}d=(d|0)!=-1;g=-1;if((b|0)==-1){break a}}g=J[J[h>>2]+(b<<2)>>2]}b=0;if(c){b=J[a+84>>2]+(g>>>3&536870908)|0;J[b>>2]=J[b>>2]|1<>2]+(g<<2)>>2];e=J[a+140>>2]+(c>>>3&536870908)|0;J[e>>2]=J[e>>2]|1<>>0)%3|0){e=f-1|0;break e}e=f+2|0;c=-1;if((e|0)==-1){break d}}c=J[J[h>>2]+(e<<2)>>2]}if((g|0)!=(c|0)){i=J[a+84>>2];while(1){a=f;f=(c>>>3&536870908)+i|0;J[f>>2]=J[f>>2]|1<>>0)%3|0?d:a-2|0;if((d|0)==-1){break f}e=J[h+12>>2];while(1){a=J[e+(d<<2)>>2];if((a|0)!=-1){d=a+1|0;d=(d>>>0)%3|0?d:a-2|0;if((d|0)!=-1){continue}break f}break}g:{if((d>>>0)%3|0){e=d-1|0;break g}e=d+2|0;if((e|0)!=-1){break g}f=-3;break f}c=J[J[h>>2]+(e<<2)>>2];f=d}b=b+1|0;if((c|0)!=(g|0)){continue}break}}}function hk(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0;f=J[c>>2];m=J[c+4>>2];a:{if((f|0)==(m|0)){h=J[a+12>>2];b=J[a+8>>2];i=h-b|0;c=0;break a}o=J[b>>2];h=J[a+12>>2];b=J[a+8>>2];i=h-b|0;if((i|0)<=0){c=0;while(1){e=J[(J[f>>2]<<2)+o>>2];c=c>>>0>e>>>0?c:e+1|0;f=f+4|0;if((m|0)!=(f|0)){continue}break}break a}c=i>>>2|0;c=c>>>0<=1?1:c;q=c&1073741822;r=c&1;c=0;s=i>>>0<8;while(1){e=J[f>>2];k=e<<2;l=J[o+k>>2];if(l>>>0>=c>>>0){c=0;j=0;if(!s){while(1){p=c<<2;d=J[p+b>>2];g=J[d+68>>2];d=K[d+84|0]?e:J[g+k>>2];n=g;g=l<<2;J[n+g>>2]=d;n=g;d=J[(p|4)+b>>2];g=J[d+68>>2];J[n+g>>2]=K[d+84|0]?e:J[g+k>>2];c=c+2|0;j=j+2|0;if((q|0)!=(j|0)){continue}break}}if(r){c=J[(c<<2)+b>>2];d=J[c+68>>2];j=d+(l<<2)|0;if(!K[c+84|0]){e=J[d+k>>2]}J[j>>2]=e}c=l+1|0}f=f+4|0;if((m|0)!=(f|0)){continue}break}}d=0;if((i|0)>0){while(1){b=J[(d<<2)+b>>2];H[b+84|0]=0;f=J[b+68>>2];e=J[b+72>>2]-f>>2;b:{if(e>>>0>>0){ub(b+68|0,c-e|0,15024);h=J[a+12>>2];break b}if(c>>>0>=e>>>0){break b}J[b+72>>2]=f+(c<<2)}d=d+1|0;b=J[a+8>>2];if((d|0)>2){continue}break}}}function Ua(a,b,c){var d=0,e=Q(0),f=0,g=0,h=Q(0),i=0,j=0,k=0,l=Q(0),m=0,n=0,o=0,p=0,q=0,r=0,s=0;if(!(J[a+4>>2]!=-1|c-1>>>0>29)){J[a+4>>2]=c;f=K[b+24|0];c=0;J[a+20>>2]=0;if(f){d=f<<2;c=ll(d);d=nk(c,0,d)+d|0}i=J[a+8>>2];if(i){J[a+12>>2]=i;fl(i)}J[a+8>>2]=c;J[a+16>>2]=d;J[a+12>>2]=d;d=f<<2;i=ll(d);p=ll(d);r=J[b+44>>2];j=c;d=J[b+48>>2];c=d;m=J[b>>2];k=J[b+40>>2];n=lk(j,c+J[m>>2]|0,k);o=lk(i,c+J[m>>2]|0,k);b=J[b+80>>2];if(!(!f|b>>>0<2)){i=b;j=1;c=0;while(1){g=J[m>>2];b=Zl(j,c,k,r)+d|0;s=lk(p,g+b|0,k);b=0;while(1){g=b<<2;q=g+n|0;h=N[g+s>>2];if(N[q>>2]>h){N[q>>2]=h}g=g+o|0;if(h>N[g>>2]){N[g>>2]=h}b=b+1|0;if((f|0)!=(b|0)){continue}break}b=j+1|0;c=b?c:c+1|0;j=b;if((i|0)!=(b|0)|c){continue}break}}h=N[a+20>>2];a:{b:{if(!f){c=0;break b}c=1;e=N[n>>2];if(e!=e|Q(R(e))==Q(_)){break a}b=0;while(1){l=N[o+(b<<2)>>2];if(l!=l|Q(R(l))==Q(_)){break a}e=Q(l-e);if(e>h){N[a+20>>2]=e;h=e}b=b+1|0;c=f>>>0>b>>>0;if((b|0)==(f|0)){break b}e=N[n+(b<<2)>>2];if(e!=e){break a}if(Q(R(e))!=Q(_)){continue}break}break a}if(h!=Q(0)){break a}J[a+20>>2]=1065353216}fl(p);fl(o);d=c^1}return d&1}function Kc(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0;J[a+4>>2]=b;d=J[J[J[b+4>>2]+8>>2]+(c<<2)>>2];J[a+12>>2]=c;J[a+8>>2]=d;a:{if((na[J[J[a>>2]+32>>2]](a)|0)==1&J[J[a+8>>2]+28>>2]-1>>>0>5){break a}f=J[b+48>>2];d=ia-16|0;ia=d;J[d+12>>2]=c;b=ll(32);J[d>>2]=b;J[d+4>>2]=17;J[d+8>>2]=-2147483616;H[b+16|0]=K[1529];c=K[1525]|K[1526]<<8|(K[1527]<<16|K[1528]<<24);e=K[1521]|K[1522]<<8|(K[1523]<<16|K[1524]<<24);H[b+8|0]=e;H[b+9|0]=e>>>8;H[b+10|0]=e>>>16;H[b+11|0]=e>>>24;H[b+12|0]=c;H[b+13|0]=c>>>8;H[b+14|0]=c>>>16;H[b+15|0]=c>>>24;c=K[1517]|K[1518]<<8|(K[1519]<<16|K[1520]<<24);e=K[1513]|K[1514]<<8|(K[1515]<<16|K[1516]<<24);H[b|0]=e;H[b+1|0]=e>>>8;H[b+2|0]=e>>>16;H[b+3|0]=e>>>24;H[b+4|0]=c;H[b+5|0]=c>>>8;H[b+6|0]=c>>>16;H[b+7|0]=c>>>24;H[b+17|0]=0;b=Ib(f,d+12|0,d,-1);if(H[d+11|0]<0){fl(J[d>>2])}ia=d+16|0;c=na[J[J[a>>2]+48>>2]](a,(b|0)==-1?-1:b>>>0>6?-2:b)|0;b=J[a+36>>2];J[a+36>>2]=c;e=1;if(b){na[J[J[b>>2]+4>>2]](b);c=J[a+36>>2]}if(!c){break a}if(na[J[J[a>>2]+36>>2]](a,c)|0){break a}b=J[a+36>>2];J[a+36>>2]=0;if(!b){break a}na[J[J[b>>2]+4>>2]](b)}return e|0}function Tj(a){var b=0,c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0;f=ia-16|0;ia=f;a:{d=bk(a);b:{if(!d){a=0;break b}e=J[a+100>>2];g=J[a+96>>2];J[f+8>>2]=0;J[f>>2]=0;J[f+4>>2]=0;b=e-g|0;c=(b|0)/12|0;c:{if((e|0)==(g|0)){break c}if(c>>>0>=357913942){break a}e=ll(b);J[f>>2]=e;J[f+8>>2]=e+P(c,12);a=0;h=e;e=b-12|0;b=(e-((e>>>0)%12|0)|0)+12|0;e=nk(h,0,b);J[f+4>>2]=b+e;if(K[d+84|0]){d=c>>>0<=1?1:c;i=d&1;if(c>>>0>=2){j=d&-2;c=0;while(1){b=P(a,12);d=b+g|0;h=J[d+4>>2];k=J[d>>2];b=b+e|0;J[b+8>>2]=J[d+8>>2];J[b>>2]=k;J[b+4>>2]=h;b=P(a|1,12);d=b+g|0;h=J[d+4>>2];k=J[d>>2];b=b+e|0;J[b+8>>2]=J[d+8>>2];J[b>>2]=k;J[b+4>>2]=h;a=a+2|0;c=c+2|0;if((j|0)!=(c|0)){continue}break}}if(!i){break c}c=P(a,12);a=c+g|0;g=J[a+4>>2];d=J[a>>2];c=c+e|0;J[c+8>>2]=J[a+8>>2];J[c>>2]=d;J[c+4>>2]=g;break c}i=c>>>0<=1?1:c;a=J[d+68>>2];c=0;while(1){b=P(c,12);d=b+g|0;j=J[a+(J[d>>2]<<2)>>2];h=J[a+(J[d+4>>2]<<2)>>2];b=b+e|0;J[b+8>>2]=J[a+(J[d+8>>2]<<2)>>2];J[b+4>>2]=h;J[b>>2]=j;c=c+1|0;if((i|0)!=(c|0)){continue}break}}a=Kj(f);c=J[f>>2];if(!c){break b}J[f+4>>2]=c;fl(c)}ia=f+16|0;return a}La();C()}function gb(a,b){var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0;a:{if(J[a+64>>2]){break a}c=ll(32);J[c+16>>2]=0;J[c+20>>2]=0;J[c+8>>2]=0;J[c>>2]=0;J[c+4>>2]=0;J[c+24>>2]=0;J[c+28>>2]=0;d=J[a+64>>2];J[a+64>>2]=c;if(!d){break a}c=J[d>>2];if(c){J[d+4>>2]=c;fl(c)}fl(d)}c=J[a+64>>2];d=J[a+28>>2]-1|0;if(d>>>0<=10){d=J[(d<<2)+14832>>2]}else{d=-1}d=P(d,K[a+24|0]);k=d;j=d>>31;d=Zl(d,j,b,0);b:{if((ma|0)<0){break b}c:{e=J[c+4>>2];f=J[c>>2];h=e-f|0;d:{if(d>>>0>h>>>0){i=d-h|0;g=J[c+8>>2];if(i>>>0<=g-e>>>0){l=c,m=nk(e,0,i)+i|0,J[l+4>>2]=m;break d}if((d|0)<0){break c}e=g-f|0;g=e<<1;g=e>>>0>=1073741823?2147483647:d>>>0>>0?g:d;e=ll(g);nk(e+h|0,0,i);if((h|0)>0){lk(e,f,h)}J[c+8>>2]=e+g;J[c+4>>2]=d+e;J[c>>2]=e;if(!f){break d}fl(f);break d}if(d>>>0>=h>>>0){break d}J[c+4>>2]=d+f}d=J[c+28>>2];f=J[c+24>>2]+1|0;d=f?d:d+1|0;J[c+24>>2]=f;J[c+28>>2]=d;f=1;break b}La();C()}if(f){c=J[a+64>>2];J[a>>2]=c;d=J[c+20>>2];J[a+8>>2]=J[c+16>>2];J[a+12>>2]=d;d=J[c+24>>2];c=J[c+28>>2];J[a+48>>2]=0;J[a+52>>2]=0;J[a+40>>2]=k;J[a+44>>2]=j;J[a+16>>2]=d;J[a+20>>2]=c;J[a+80>>2]=b}}function $l(a,b,c,d){var e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0;g=c;a:{b:{c:{d:{e:{f:{g:{h:{i:{j:{k:{if(b){if(!g){break k}if(!d){break j}c=S(d)-S(b)|0;if(c>>>0<=31){break i}break c}if((d|0)==1|d>>>0>1){break c}a=(a>>>0)/(g>>>0)|0;ma=0;break a}if(!a){break h}if(!d){break g}if(d-1&d){break g}a=b>>>cm(d)|0;ma=0;break a}if(!(g-1&g)){break f}h=(S(g)+33|0)-S(b)|0;e=0-h|0;break d}h=c+1|0;e=63-c|0;break d}a=(b>>>0)/(d>>>0)|0;ma=0;break a}c=S(d)-S(b)|0;if(c>>>0<31){break e}break c}if((g|0)==1){break b}c=cm(g);d=c&31;if((c&63)>>>0>=32){c=0;a=b>>>d|0}else{c=b>>>d|0;a=((1<>>d}ma=c;break a}h=c+1|0;e=63-c|0}c=h&63;f=c&31;if(c>>>0>=32){c=0;i=b>>>f|0}else{c=b>>>f|0;i=((1<>>f}f=c;c=e&63;e=c&31;if(c>>>0>=32){c=a<>>32-e|b<>>31;f=f<<1|i>>>31;j=m-(f+(c>>>0>e>>>0)|0)>>31;k=g&j;i=c-k|0;f=f-((d&j)+(c>>>0>>0)|0)|0;b=b<<1|a>>>31;a=l|a<<1;l=j&1;h=h-1|0;if(h){continue}break}}ma=b<<1|a>>>31;a=l|a<<1;break a}a=0;b=0}ma=b}return a}function mi(a,b,c){var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0;g=ia-48|0;ia=g;f=ia-32|0;ia=f;j=f+21|0;d=j;l=f+32|0;e=l;if(!((d|0)==(e|0)|(c|0)>=0)){H[d|0]=45;d=d+1|0;c=0-c|0}k=e-d|0;a:{if((k|0)<=9){i=P(32-S(c|1)|0,1233)>>12;h=61;if((k|0)<((M[(i<<2)+18400>>2]<=c>>>0)+i|0)){break a}}b:{if(c>>>0<=99999999){c:{if(c>>>0<=9999){e=ql(d,c);break c}e=d;d=(c>>>0)/1e4|0;e=pl(ql(e,d),c-P(d,1e4)|0)}break b}e=(c>>>0)/1e8|0;h=c-P(e,1e8)|0;c=(h>>>0)/1e4|0;e=pl(pl(ol(d,e),c),h-P(c,1e4)|0)}h=0}J[f+12>>2]=h;J[f+8>>2]=e;h=ia-16|0;ia=h;e=ia-16|0;ia=e;c=g+8|0;d:{k=J[f+8>>2];f=k-j|0;if(f>>>0<=4294967279){e:{if(f>>>0<11){H[c+11|0]=f;d=c;break e}if(f>>>0>=11){i=f+16&-16;d=i-1|0;d=(d|0)==11?i:d}else{d=10}i=d+1|0;d=ll(i);J[c>>2]=d;J[c+8>>2]=i|-2147483648;J[c+4>>2]=f}while(1){if((j|0)!=(k|0)){H[d|0]=K[j|0];d=d+1|0;j=j+1|0;continue}break}H[e+15|0]=0;H[d|0]=K[e+15|0];ia=e+16|0;break d}ze();C()}ia=h+16|0;ia=l;J[g+32>>2]=b;$e(g+40|0,a,b,g+32|0);a=J[g+40>>2];if(H[a+39|0]<0){fl(J[a+28>>2])}b=J[g+12>>2];J[a+28>>2]=J[g+8>>2];J[a+32>>2]=b;J[a+36>>2]=J[g+16>>2];ia=g+48|0}function hc(a,b,c){var d=0,e=0,f=0,g=0,h=0;d=32-b|0;c=c<>2];f=32-e|0;c:{if((f|0)>=(b|0)){b=b+e|0;J[a+16>>2]=b;f=J[a+12>>2]|c>>>e;J[a+12>>2]=f;if((b|0)!=32){break c}b=J[a+4>>2];d:{if((b|0)!=J[a+8>>2]){J[b>>2]=f;J[a+4>>2]=b+4;break d}e=J[a>>2];c=b-e|0;g=c>>2;b=g+1|0;if(b>>>0>=1073741824){break b}d=c>>1;d=c>>>0>=2147483644?1073741823:b>>>0>>0?d:b;if(d){if(d>>>0>=1073741824){break a}b=ll(d<<2)}else{b=0}g=b+(g<<2)|0;J[g>>2]=f;if((c|0)>0){lk(b,e,c)}J[a+8>>2]=b+(d<<2);J[a+4>>2]=g+4;J[a>>2]=b;if(!e){break d}fl(e)}J[a+12>>2]=0;J[a+16>>2]=0;return}b=b-f|0;J[a+16>>2]=b;g=c>>>d|0;f=J[a+12>>2]|g>>>b;J[a+12>>2]=f;b=J[a+4>>2];e:{if((b|0)!=J[a+8>>2]){J[b>>2]=f;J[a+4>>2]=b+4;break e}e=J[a>>2];c=b-e|0;h=c>>2;b=h+1|0;if(b>>>0>=1073741824){break b}d=c>>1;d=c>>>0>=2147483644?1073741823:b>>>0>>0?d:b;if(d){if(d>>>0>=1073741824){break a}b=ll(d<<2)}else{b=0}h=b+(h<<2)|0;J[h>>2]=f;if((c|0)>0){lk(b,e,c)}J[a+8>>2]=b+(d<<2);J[a+4>>2]=h+4;J[a>>2]=b;if(!e){break e}fl(e)}J[a+12>>2]=g<<32-J[a+16>>2]}return}La();C()}$a();C()}function pk(a){var b=0,c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0;A(+a);c=v(1)|0;b=v(0)|0;e=c>>>16|0;f=c-1072604335|0;if((f|0)==135337|f>>>0<135337){if(!b&(c|0)==1072693248){return 0}g=O[1879];a=a+-1;A(+a);b=v(1)|0;v(0)|0;x(0,0);x(1,b|0);h=+z();i=g*h;d=a*a;j=d*(a*O[1888]+O[1887]);k=i+j;l=d*d;return k+(l*(l*(d*(a*O[1896]+O[1895])+(a*O[1894]+O[1893]))+(d*(a*O[1892]+O[1891])+(a*O[1890]+O[1889])))+((a-h)*g+a*O[1880]+(j+(i-k))))}a:{if(e-32752>>>0<=4294934559){if(!(c&2147483647|b)){b=ia-16|0;O[b+8>>3]=-1;return O[b+8>>3]/0}if(!b&(c|0)==2146435072){break a}if(!(!(e&32768)&(e&32752)!=32752)){a=a-a;return a/a}A(+(a*4503599627370496));c=v(1)|0;b=v(0)|0;c=c-54525952|0}e=c-1072037888|0;f=(e>>>14&63)<<4;g=O[f+15184>>3]+ +(e>>20);h=O[1879];a=O[f+15176>>3];x(0,b-0|0);x(1,c-((e&-1048576)+(b>>>0>>0)|0)|0);a=a*(+z()-O[f+16200>>3]-O[f+16208>>3]);A(+a);b=v(1)|0;v(0)|0;x(0,0);x(1,b|0);i=+z();j=h*i;k=g+j;d=a*a;a=k+(d*(d*d*(a*O[1886]+O[1885])+(d*(a*O[1884]+O[1883])+(a*O[1882]+O[1881])))+((a-i)*h+O[1880]*a+(j+(g-k))))}return a}function Ye(a,b){var c=0,d=0,e=0;c=(a|0)==(b|0);H[b+12|0]=c;a:{if(c){break a}while(1){d=J[b+8>>2];if(K[d+12|0]){break a}b:{c=J[d+8>>2];e=J[c>>2];if((e|0)==(d|0)){e=J[c+4>>2];if(!(!e|K[e+12|0])){break b}c:{if(J[d>>2]==(b|0)){b=d;break c}b=J[d+4>>2];a=J[b>>2];J[d+4>>2]=a;if(a){J[a+8>>2]=d;c=J[d+8>>2]}J[b+8>>2]=c;a=J[d+8>>2];J[((J[a>>2]!=(d|0))<<2)+a>>2]=b;J[b>>2]=d;J[d+8>>2]=b;c=J[b+8>>2];d=J[c>>2]}H[b+12|0]=1;H[c+12|0]=0;a=J[d+4>>2];J[c>>2]=a;if(a){J[a+8>>2]=c}J[d+8>>2]=J[c+8>>2];a=J[c+8>>2];J[((J[a>>2]!=(c|0))<<2)+a>>2]=d;J[d+4>>2]=c;J[c+8>>2]=d;return}if(!(K[e+12|0]|!e)){break b}d:{if(J[d>>2]!=(b|0)){b=d;break d}a=J[b+4>>2];J[d>>2]=a;if(a){J[a+8>>2]=d;c=J[d+8>>2]}J[b+8>>2]=c;a=J[d+8>>2];J[((J[a>>2]!=(d|0))<<2)+a>>2]=b;J[b+4>>2]=d;J[d+8>>2]=b;c=J[b+8>>2]}H[b+12|0]=1;H[c+12|0]=0;a=J[c+4>>2];b=J[a>>2];J[c+4>>2]=b;if(b){J[b+8>>2]=c}J[a+8>>2]=J[c+8>>2];b=J[c+8>>2];J[((J[b>>2]!=(c|0))<<2)+b>>2]=a;J[a>>2]=c;J[c+8>>2]=a;break a}H[d+12|0]=1;H[c+12|0]=(a|0)==(c|0);H[e+12|0]=1;b=c;if((c|0)!=(a|0)){continue}break}}}function ef(a,b,c,d){var e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0;j=ia-16|0;ia=j;J[j+8>>2]=0;J[j>>2]=0;J[j+4>>2]=0;a:{b:{e=c+1|0;if(e){if(e>>>0>=1073741824){break b}h=ll(e<<2);nk(h,0,(c<<2)+4|0)}c:{if((b|0)<=0){break c}e=0;if(b>>>0>=4){k=b&-4;while(1){f=e<<2;i=(J[f+a>>2]<<2)+h|0;J[i>>2]=J[i>>2]+1;i=(J[(f|4)+a>>2]<<2)+h|0;J[i>>2]=J[i>>2]+1;i=(J[(f|8)+a>>2]<<2)+h|0;J[i>>2]=J[i>>2]+1;f=(J[(f|12)+a>>2]<<2)+h|0;J[f>>2]=J[f>>2]+1;e=e+4|0;l=l+4|0;if((k|0)!=(l|0)){continue}break}}f=b&3;if(!f){break c}while(1){k=(J[(e<<2)+a>>2]<<2)+h|0;J[k>>2]=J[k>>2]+1;e=e+1|0;m=m+1|0;if((f|0)!=(m|0)){continue}break}}e=0;if((c|0)<0){a=0;break a}o=+(b|0);a=0;while(1){b=J[(e<<2)+h>>2];if((b|0)>0){n=+(b|0);g=n*pk(n/o)+g;a=a+1|0}b=(c|0)==(e|0);e=e+1|0;if(!b){continue}break}break a}La();C()}if(d){J[d>>2]=a}if(h){fl(h)}g=-g;d:{if(R(g)<0x8000000000000000){b=R(g)>=1?~~(g>0?T(V(g*2.3283064365386963e-10),4294967295):W((g-+(~~g>>>0>>>0))*2.3283064365386963e-10))>>>0:0;a=~~g>>>0;break d}b=-2147483648;a=0}ia=j+16|0;ma=b;return a}function al(a,b,c,d){var e=0,f=0,g=0,h=0;g=ia-32|0;ia=g;e=d&2147483647;h=e;f=e-1006698496|0;e=e-1140785152|0;a:{if((f|0)==(e|0)&0|e>>>0>f>>>0){e=d<<4|c>>>28;f=c<<4|b>>>28;c=e;b=b&268435455;if((b|0)==134217728&(a|0)!=0|b>>>0>134217728){e=c+1073741824|0;a=f+1|0;e=a?e:e+1|0;f=a;break a}e=c+1073741824|0;if(a|(b|0)!=134217728){break a}b=f&1;a=b+f|0;e=a>>>0>>0?e+1|0:e;f=a;break a}if(!(!c&(h|0)==2147418112?!(a|b):h>>>0<2147418112)){e=c;c=d<<4|e>>>28;f=e<<4|b>>>28;e=c&524287|2146959360;break a}f=0;e=2146435072;if(h>>>0>1140785151){break a}e=0;h=h>>>16|0;if(h>>>0<15249){break a}e=d&65535|65536;Rk(g+16|0,a,b,c,e,h-15233|0);Yk(g,a,b,c,e,15361-h|0);e=J[g+4>>2];h=e;a=J[g+8>>2];c=J[g+12>>2]<<4|a>>>28;f=a<<4|e>>>28;e=c;a=h&268435455;b=J[g>>2]|(J[g+16>>2]|J[g+24>>2]|(J[g+20>>2]|J[g+28>>2]))!=0;if((a|0)==134217728&(b|0)!=0|a>>>0>134217728){a=f+1|0;e=a?e:e+1|0;f=a;break a}if(b|(a|0)!=134217728){break a}a=f+(f&1)|0;e=a>>>0>>0?e+1|0:e;f=a}ia=g+32|0;x(0,f|0);x(1,d&-2147483648|e);return+z()}function Na(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0;c=J[b+88>>2];if(!(!c|J[c>>2]!=1)){d=J[c+8>>2];J[a+4>>2]=K[d|0]|K[d+1|0]<<8|(K[d+2|0]<<16|K[d+3|0]<<24);e=a+8|0;d=K[b+24|0];f=J[a+8>>2];g=J[a+12>>2]-f>>2;a:{if(d>>>0>g>>>0){Oa(e,d-g|0);d=K[b+24|0];break a}if(d>>>0>=g>>>0){break a}J[a+12>>2]=f+(d<<2)}g=J[c+8>>2];b:{if(!d){b=4;break b}h=d&3;e=J[e>>2];c:{if(d-1>>>0<3){b=4;d=0;break c}k=d&252;d=0;b=4;while(1){f=d<<2;c=b+g|0;J[f+e>>2]=K[c|0]|K[c+1|0]<<8|(K[c+2|0]<<16|K[c+3|0]<<24);J[e+(f|4)>>2]=K[c+4|0]|K[c+5|0]<<8|(K[c+6|0]<<16|K[c+7|0]<<24);J[e+(f|8)>>2]=K[c+8|0]|K[c+9|0]<<8|(K[c+10|0]<<16|K[c+11|0]<<24);J[e+(f|12)>>2]=K[c+12|0]|K[c+13|0]<<8|(K[c+14|0]<<16|K[c+15|0]<<24);d=d+4|0;b=b+16|0;i=i+4|0;if((k|0)!=(i|0)){continue}break}}if(!h){break b}while(1){c=b+g|0;J[e+(d<<2)>>2]=K[c|0]|K[c+1|0]<<8|(K[c+2|0]<<16|K[c+3|0]<<24);d=d+1|0;b=b+4|0;j=j+1|0;if((j|0)!=(h|0)){continue}break}}d=a;a=b+g|0;J[d+20>>2]=K[a|0]|K[a+1|0]<<8|(K[a+2|0]<<16|K[a+3|0]<<24);d=1}return d|0}function vf(a,b,c,d,e,f,g){var h=0,i=0,j=0,k=0,l=0;a:{b:{if((e|0)<=(f|0)){if((a|0)==(b|0)){break b}f=g;e=a;while(1){J[f>>2]=J[e>>2];f=f+4|0;e=e+4|0;if((e|0)!=(b|0)){continue}break}if((f|0)==(g|0)){break b}d=J[d>>2];while(1){if((b|0)==(c|0)){mk(a,g,f-g|0);return}c:{e=J[d>>2];h=J[d+4>>2]-e>>3;i=J[b>>2];if(h>>>0<=i>>>0){break c}j=h;h=J[g>>2];if(j>>>0<=h>>>0){break c}d:{if(M[e+(i<<3)>>2]>2]){J[a>>2]=i;b=b+4|0;break d}J[a>>2]=h;g=g+4|0}a=a+4|0;if((f|0)!=(g|0)){continue}break b}break}Zc();C()}if((b|0)==(c|0)){break b}f=g;e=b;while(1){J[f>>2]=J[e>>2];f=f+4|0;e=e+4|0;if((e|0)!=(c|0)){continue}break}if((f|0)==(g|0)){break b}while(1){if((a|0)==(b|0)){while(1){c=c-4|0;f=f-4|0;J[c>>2]=J[f>>2];if((f|0)!=(g|0)){continue}break b}}i=J[d>>2];e=J[i>>2];h=J[i+4>>2]-e>>3;k=f-4|0;i=J[k>>2];if(h>>>0<=i>>>0){break a}j=h;l=b-4|0;h=J[l>>2];if(j>>>0<=h>>>0){break a}c=c-4|0;e=M[e+(i<<3)>>2]>2];J[c>>2]=e?h:i;b=e?l:b;f=e?f:k;if((g|0)!=(f|0)){continue}break}}return}Zc();C()}function jl(a,b){var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0;a:{if(K[a+11|0]>>>7|0){d=J[a+4>>2]}else{d=K[a+11|0]}if(d>>>0>>0){i=ia-16|0;ia=i;h=b-d|0;if(h){e=K[a+11|0]>>>7|0?(J[a+8>>2]&2147483647)-1|0:10;if(K[a+11|0]>>>7|0){b=J[a+4>>2]}else{b=K[a+11|0]}j=b+h|0;if(e-b>>>0>>0){b:{g=ia-16|0;ia=g;c=-17;f=j-e|0;if(f>>>0<=-17-e>>>0){if(K[a+11|0]>>>7|0){d=J[a>>2]}else{d=a}if(e>>>0<2147483623){J[g+8>>2]=e<<1;J[g+12>>2]=e+f;c=ia-16|0;ia=c;ia=c+16|0;c=g+8|0;f=g+12|0;c=J[(M[f>>2]>2]?c:f)>>2];if(c>>>0>=11){f=c+16&-16;c=f-1|0;c=(c|0)==11?f:c}else{c=10}c=c+1|0}f=ll(c);if(b){hl(f,d,b)}if((e|0)!=10){fl(d)}J[a>>2]=f;J[a+8>>2]=c|-2147483648;ia=g+16|0;break b}ze();C()}}d=b;if(K[a+11|0]>>>7|0){b=J[a>>2]}else{b=a}d=d+b|0;if(h){nk(d,0,h)}c:{if(K[a+11|0]>>>7|0){J[a+4>>2]=j;break c}H[a+11|0]=j}H[i+15|0]=0;H[b+j|0]=K[i+15|0]}ia=i+16|0;break a}if(K[a+11|0]>>>7|0){d=J[a>>2]}else{d=a}e=ia-16|0;ia=e;d:{if(K[a+11|0]>>>7|0){J[a+4>>2]=b;break d}H[a+11|0]=b}H[e+15|0]=0;H[b+d|0]=K[e+15|0];ia=e+16|0}}function Oh(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0;k=J[a+12>>2];c=J[a+68>>2];d=J[c+80>>2];H[b+84|0]=0;m=b+68|0;i=J[b+68>>2];e=J[b+72>>2]-i>>2;a:{if(e>>>0>>0){ub(m,d-e|0,11424);c=J[a+68>>2];d=J[c+80>>2];break a}if(d>>>0>=e>>>0){break a}J[b+72>>2]=i+(d<<2)}b=J[c+100>>2];e=J[c+96>>2];i=(b-e|0)/12|0;b:{if((b|0)==(e|0)){break b}n=1;k=J[k+28>>2];f=J[k>>2];if((f|0)==-1){break b}o=i>>>0<=1?1:i;c=e;b=0;while(1){g=J[c>>2];if(g>>>0>=d>>>0){break b}j=J[J[a+72>>2]+12>>2];h=J[j+(f<<2)>>2];if(h>>>0>=d>>>0){break b}f=J[m>>2];J[f+(g<<2)>>2]=h;g=k+(l<<2)|0;h=J[g+4>>2];if((h|0)==-1){break b}l=J[c+4>>2];if(l>>>0>=d>>>0){break b}h=J[(h<<2)+j>>2];if(h>>>0>=d>>>0){break b}J[f+(l<<2)>>2]=h;g=J[g+8>>2];if((g|0)==-1){break b}c=J[c+8>>2];if(c>>>0>=d>>>0){break b}j=J[(g<<2)+j>>2];if(j>>>0>=d>>>0){break b}J[f+(c<<2)>>2]=j;b=b+1|0;n=i>>>0>b>>>0;if((b|0)==(o|0)){break b}c=e+P(b,12)|0;l=P(b,3);f=J[k+(l<<2)>>2];if((f|0)!=-1){continue}break}}return(n^-1)&1}function li(a){var b=0,c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0;d=ia-32|0;ia=d;a:{b=J[a+16>>2];c=J[a+20>>2];if(!!b&(c|0)>=0|(c|0)>0){c=0;e=J[J[a+12>>2]+4>>2]+7|0;c=e>>>0<7?1:c;f=e;e=c>>>3|0;c=c<<29|f>>>3;if(K[a+24|0]){f=J[a+4>>2];J[d>>2]=0;J[d+4>>2]=0;H[d+24|0]=0;J[d+16>>2]=0;J[d+20>>2]=0;J[d+8>>2]=0;J[d+12>>2]=0;rf(c,e,d);e=f-b|0;f=e-8|0;b=J[d+4>>2]-J[d>>2]|0;mk(f+b|0,e,c);lk(f,J[d>>2],b);f=8-b|0;e=f+J[a+16>>2]|0;b=J[a+20>>2];J[a+16>>2]=e;J[a+20>>2]=e>>>0>>0?b+1|0:b;b=J[d+12>>2];J[d+12>>2]=0;if(b){fl(b)}b=J[d>>2];if(b){J[d+4>>2]=b;fl(b)}b=J[a+16>>2]}f=c-b|0;g=J[a+4>>2];c=J[a>>2];e=g-c|0;b=f+e|0;b:{if(b>>>0>e>>>0){h=J[a+8>>2];if(h-g>>>0>=f>>>0){i=a,j=nk(g,0,f)+f|0,J[i+4>>2]=j;break b}if((b|0)<0){break a}g=h-c|0;h=g<<1;h=g>>>0>=1073741823?2147483647:b>>>0>>0?h:b;g=ll(h);nk(g+e|0,0,f);if((e|0)>0){lk(g,c,e)}J[a+8>>2]=g+h;J[a+4>>2]=b+g;J[a>>2]=g;if(!c){break b}fl(c);break b}if(b>>>0>=e>>>0){break b}J[a+4>>2]=b+c}J[a+16>>2]=0;J[a+20>>2]=0}ia=d+32|0;return}La();C()}function Ra(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0,g=0,h=0,i=Q(0),j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0;k=ia-16|0;ia=k;if(J[c+28>>2]==9){d=J[a+4>>2];h=K[c+24|0];e=h<<2;f=ll(e);l=k+8|0;J[l>>2]=1065353216;i=N[a+20>>2];d=-1<0){N[l>>2]=i/Q(d|0)}o=(d|0)>0;a:{if(!o){break a}j=J[c+80>>2];if(!j){break a}if(h){p=J[J[b>>2]>>2]+J[b+48>>2]|0;t=h&254;u=h&1;b=0;while(1){m=J[a+8>>2];i=N[l>>2];d=0;n=0;if((h|0)!=1){while(1){g=d<<2;q=(b<<2)+p|0;N[g+f>>2]=Q(i*Q(J[q>>2]))+N[g+m>>2];g=g|4;N[g+f>>2]=Q(i*Q(J[q+4>>2]))+N[g+m>>2];d=d+2|0;b=b+2|0;n=n+2|0;if((t|0)!=(n|0)){continue}break}}if(u){d=d<<2;N[d+f>>2]=Q(i*Q(J[(b<<2)+p>>2]))+N[d+m>>2];b=b+1|0}lk(J[J[c+64>>2]>>2]+r|0,f,e);r=e+r|0;s=s+1|0;if((s|0)!=(j|0)){continue}break}break a}b=0;if((j|0)!=1){a=j&-2;d=0;while(1){lk(J[J[c+64>>2]>>2]+b|0,f,e);b=b+e|0;lk(b+J[J[c+64>>2]>>2]|0,f,e);b=b+e|0;d=d+2|0;if((a|0)!=(d|0)){continue}break}}if(!(j&1)){break a}lk(J[J[c+64>>2]>>2]+b|0,f,e)}fl(f)}ia=k+16|0;return o|0}function Aa(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0;h=J[d+80>>2];e=ia-48|0;ia=e;a=J[a+4>>2];k=a-31|0;a:{if(k>>>0<4294967267){break a}i=J[J[d>>2]>>2]+J[d+48>>2]|0;J[e+16>>2]=a;a=-1<>2]=a^-1;a=-2-a|0;J[e+24>>2]=a;J[e+32>>2]=(a|0)/2;N[e+28>>2]=Q(2)/Q(a|0);f=J[c>>2];if((f|0)!=J[c+4>>2]){a=0;d=0;while(1){g=J[(d<<2)+f>>2];h=e+36|0;j=J[J[b>>2]>>2];m=J[b+48>>2];f=J[b+44>>2];l=J[b+40>>2];if(!K[b+84|0]){g=J[J[b+68>>2]+(g<<2)>>2]}g=Zl(l,f,g,0)+m|0;lk(h,g+j|0,l);Ba(e+16|0,h,e+12|0,e+8|0);f=a<<2;J[f+i>>2]=J[e+12>>2];J[(f|4)+i>>2]=J[e+8>>2];a=a+2|0;d=d+1|0;f=J[c>>2];if(d>>>0>2]-f>>2>>>0){continue}break}break a}if(!h){break a}d=0;a=0;while(1){j=e+36|0;c=J[J[b>>2]>>2];g=J[b+40>>2];f=J[b+48>>2]+Zl(g,J[b+44>>2],K[b+84|0]?a:J[J[b+68>>2]+(a<<2)>>2],0)|0;lk(j,c+f|0,g);Ba(e+16|0,j,e+12|0,e+8|0);c=d<<2;J[c+i>>2]=J[e+12>>2];J[(c|4)+i>>2]=J[e+8>>2];d=d+2|0;a=a+1|0;if((h|0)!=(a|0)){continue}break}}ia=e+48|0;return k>>>0>4294967266|0}function yh(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0;j=J[a+12>>2];c=J[a+108>>2];d=J[c+80>>2];H[b+84|0]=0;m=b+68|0;h=J[b+68>>2];f=J[b+72>>2]-h>>2;a:{if(f>>>0>>0){ub(m,d-f|0,11424);c=J[a+108>>2];d=J[c+80>>2];break a}if(d>>>0>=f>>>0){break a}J[b+72>>2]=h+(d<<2)}b=J[c+100>>2];f=J[c+96>>2];h=(b-f|0)/12|0;b:{if((b|0)==(f|0)){j=0;break b}n=h>>>0<=1?1:h;o=J[j>>2];c=f;b=0;j=1;while(1){e=(e<<2)+o|0;i=J[e>>2];if((i|0)==-1){break b}g=J[c>>2];if(g>>>0>=d>>>0){break b}l=J[J[a+112>>2]+12>>2];k=J[l+(i<<2)>>2];if(k>>>0>=d>>>0){break b}i=J[m>>2];J[i+(g<<2)>>2]=k;g=J[e+4>>2];if((g|0)==-1){break b}k=J[c+4>>2];if(k>>>0>=d>>>0){break b}g=J[(g<<2)+l>>2];if(g>>>0>=d>>>0){break b}J[i+(k<<2)>>2]=g;e=J[e+8>>2];if((e|0)==-1){break b}c=J[c+8>>2];if(c>>>0>=d>>>0){break b}e=J[(e<<2)+l>>2];if(e>>>0>=d>>>0){break b}J[i+(c<<2)>>2]=e;b=b+1|0;j=h>>>0>b>>>0;if((b|0)==(n|0)){break b}e=P(b,3);c=f+P(b,12)|0;if((b|0)!=1431655765){continue}break}}return(j^-1)&1}function Og(a,b){var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0;c=ia+-64|0;ia=c;d=ll(80);i=J[a+8>>2];J[d+12>>2]=0;J[d+16>>2]=0;J[d>>2]=11692;J[d+4>>2]=0;J[d+20>>2]=0;J[d+24>>2]=0;J[d+28>>2]=0;J[d+32>>2]=0;J[d+36>>2]=0;J[d+40>>2]=0;J[d+44>>2]=0;J[d+48>>2]=0;J[d+52>>2]=0;J[d+76>>2]=0;J[d+72>>2]=b;J[d+68>>2]=i;J[d- -64>>2]=0;j=d+56|0;e=j;J[e>>2]=0;J[e+4>>2]=0;J[d+8>>2]=11856;e=J[a+12>>2];J[c+40>>2]=0;J[c+44>>2]=0;J[c+32>>2]=0;J[c+36>>2]=0;f=c+24|0;J[f>>2]=0;J[f+4>>2]=0;J[c+16>>2]=0;J[c+20>>2]=0;J[c+56>>2]=0;J[c+8>>2]=0;J[c+12>>2]=0;J[c+48>>2]=0;J[c+52>>2]=0;J[c>>2]=11856;J[c+4>>2]=e;g=J[e>>2];h=J[e+4>>2];H[c+63|0]=0;k=f;f=c+63|0;Kg(k,(h-g>>2>>>0)/3|0,f);g=J[c+4>>2];h=J[g+28>>2];g=J[g+24>>2];H[c+63|0]=0;Kg(c+36|0,h-g>>2,f);J[c+20>>2]=d;J[c+16>>2]=i;J[c+12>>2]=b;J[c+8>>2]=e;J[d+76>>2]=a+72;Lg(d+8|0,c);Mg(j,J[c+48>>2],J[c+52>>2]);J[c>>2]=11856;a=J[c+48>>2];if(a){J[c+52>>2]=a;fl(a)}J[c>>2]=11672;a=J[c+36>>2];if(a){fl(a)}a=J[c+24>>2];if(a){fl(a)}ia=c- -64|0;return d}function Ih(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0;j=J[a+12>>2];c=J[a+68>>2];d=J[c+80>>2];H[b+84|0]=0;m=b+68|0;h=J[b+68>>2];f=J[b+72>>2]-h>>2;a:{if(f>>>0>>0){ub(m,d-f|0,11424);c=J[a+68>>2];d=J[c+80>>2];break a}if(d>>>0>=f>>>0){break a}J[b+72>>2]=h+(d<<2)}b=J[c+100>>2];f=J[c+96>>2];h=(b-f|0)/12|0;b:{if((b|0)==(f|0)){j=0;break b}n=h>>>0<=1?1:h;o=J[j>>2];c=f;b=0;j=1;while(1){e=(e<<2)+o|0;i=J[e>>2];if((i|0)==-1){break b}g=J[c>>2];if(g>>>0>=d>>>0){break b}l=J[J[a+72>>2]+12>>2];k=J[l+(i<<2)>>2];if(k>>>0>=d>>>0){break b}i=J[m>>2];J[i+(g<<2)>>2]=k;g=J[e+4>>2];if((g|0)==-1){break b}k=J[c+4>>2];if(k>>>0>=d>>>0){break b}g=J[(g<<2)+l>>2];if(g>>>0>=d>>>0){break b}J[i+(k<<2)>>2]=g;e=J[e+8>>2];if((e|0)==-1){break b}c=J[c+8>>2];if(c>>>0>=d>>>0){break b}e=J[(e<<2)+l>>2];if(e>>>0>=d>>>0){break b}J[i+(c<<2)>>2]=e;b=b+1|0;j=h>>>0>b>>>0;if((b|0)==(n|0)){break b}e=P(b,3);c=f+P(b,12)|0;if((b|0)!=1431655765){continue}break}}return(j^-1)&1}function Bh(a,b,c){var d=0,e=0,f=0,g=0,h=0,i=0,j=0;d=(c>>>0)/3|0;i=J[(J[J[a+8>>2]+96>>2]+P(d,12)|0)+(c-P(d,3)<<2)>>2];e=J[J[a+12>>2]+4>>2];d=J[e+4>>2];a:{if((d|0)!=J[e+8>>2]){J[d>>2]=i;J[e+4>>2]=d+4;break a}b:{h=J[e>>2];g=d-h|0;j=g>>2;d=j+1|0;if(d>>>0<1073741824){f=g>>1;f=g>>>0>=2147483644?1073741823:d>>>0>>0?f:d;if(f){if(f>>>0>=1073741824){break b}d=ll(f<<2)}else{d=0}j=d+(j<<2)|0;J[j>>2]=i;if((g|0)>0){lk(d,h,g)}J[e+8>>2]=d+(f<<2);J[e+4>>2]=j+4;J[e>>2]=d;if(h){fl(h)}break a}La();C()}$a();C()}e=J[a+4>>2];d=J[e+4>>2];c:{d:{e:{if((d|0)!=J[e+8>>2]){J[d>>2]=c;J[e+4>>2]=d+4;break e}h=J[e>>2];g=d-h|0;i=g>>2;d=i+1|0;if(d>>>0>=1073741824){break d}f=g>>1;f=g>>>0>=2147483644?1073741823:d>>>0>>0?f:d;if(f){if(f>>>0>=1073741824){break c}d=ll(f<<2)}else{d=0}i=d+(i<<2)|0;J[i>>2]=c;if((g|0)>0){lk(d,h,g)}J[e+8>>2]=d+(f<<2);J[e+4>>2]=i+4;J[e>>2]=d;if(!h){break e}fl(h)}a=J[a+4>>2];J[J[a+12>>2]+(b<<2)>>2]=J[a+24>>2];J[a+24>>2]=J[a+24>>2]+1;return}La();C()}$a();C()}function Sb(a){var b=0,c=0,d=0,e=0;c=J[a+1176>>2];if(c){d=c;b=J[a+1180>>2];if((c|0)!=(b|0)){while(1){d=b-12|0;e=J[d>>2];if(e){J[b-8>>2]=e;fl(e)}b=d;if((c|0)!=(b|0)){continue}break}d=J[a+1176>>2]}J[a+1180>>2]=c;fl(d)}c=J[a+1164>>2];if(c){d=c;b=J[a+1168>>2];if((c|0)!=(b|0)){while(1){d=b-12|0;e=J[d>>2];if(e){J[b-8>>2]=e;fl(e)}b=d;if((c|0)!=(b|0)){continue}break}d=J[a+1164>>2]}J[a+1168>>2]=c;fl(d)}b=J[a+1152>>2];if(b){J[a+1156>>2]=b;fl(b)}b=J[a+1140>>2];if(b){J[a+1144>>2]=b;fl(b)}b=J[a+1128>>2];if(b){J[a+1132>>2]=b;fl(b)}Ae(a+1108|0);Ae(a+1088|0);Ae(a+1068|0);Ce(a+1036|0);a=a+12|0;Ce(a+992|0);Ce(a+960|0);Ce(a+928|0);Ce(a+896|0);Ce(a+864|0);Ce(a+832|0);Ce(a+800|0);Ce(a+768|0);Ce(a+736|0);Ce(a+704|0);Ce(a+672|0);Ce(a+640|0);Ce(a+608|0);Ce(a+576|0);Ce(a+544|0);Ce(a+512|0);Ce(a+480|0);Ce(a+448|0);Ce(a+416|0);Ce(a+384|0);Ce(a+352|0);Ce(a+320|0);Ce(a+288|0);Ce(a+256|0);Ce(a+224|0);Ce(a+192|0);Ce(a+160|0);Ce(a+128|0);Ce(a+96|0);Ce(a- -64|0);Ce(a+32|0);Ce(a)}function yf(a,b,c,d,e){var f=0,g=0,h=0,i=0,j=0;a:{b:{c:{d:{e:{switch(d|0){case 2:d=J[c>>2];c=J[d>>2];d=J[d+4>>2]-c>>3;g=b-4|0;b=J[g>>2];if(d>>>0<=b>>>0){break d}f=d;d=J[a>>2];if(f>>>0<=d>>>0){break d}if(M[c+(b<<3)>>2]>2]){J[e>>2]=b;J[e+4>>2]=J[a>>2];return}J[e>>2]=d;J[e+4>>2]=J[g>>2];return;default:if((d|0)<=8){uf(a,b,e,c);return}f=d>>>1|0;h=f<<2;g=h+a|0;xf(a,g,c,f,e,f);d=d-f|0;xf(g,b,c,d,e+h|0,d);c=J[c>>2];d=g;while(1){if((b|0)==(d|0)){if((a|0)==(g|0)){break a}while(1){J[e>>2]=J[a>>2];e=e+4|0;a=a+4|0;if((g|0)!=(a|0)){continue}break}break a}f=J[c>>2];j=J[c+4>>2]-f>>3;h=J[d>>2];if(j>>>0<=h>>>0){break c}i=J[a>>2];if(j>>>0<=i>>>0){break c}f:{if(M[f+(h<<3)>>2]>2]){J[e>>2]=h;d=d+4|0;break f}J[e>>2]=i;a=a+4|0}e=e+4|0;if((a|0)!=(g|0)){continue}break};break b;case 0:break a;case 1:break e}}J[e>>2]=J[a>>2];break a}Zc();C()}Zc();C()}if((b|0)==(d|0)){break a}while(1){J[e>>2]=J[d>>2];e=e+4|0;d=d+4|0;if((d|0)!=(b|0)){continue}break}}}function sg(a,b,c,d,e){var f=0,g=0,h=0,i=0,j=0;a:{b:{c:{d:{e:{switch(d|0){case 2:d=J[c>>2];c=J[d>>2];d=J[d+4>>2]-c>>3;g=b-4|0;b=J[g>>2];if(d>>>0<=b>>>0){break d}f=d;d=J[a>>2];if(f>>>0<=d>>>0){break d}if(M[c+(b<<3)>>2]>2]){J[e>>2]=b;J[e+4>>2]=J[a>>2];return}J[e>>2]=d;J[e+4>>2]=J[g>>2];return;default:if((d|0)<=8){uf(a,b,e,c);return}f=d>>>1|0;h=f<<2;g=h+a|0;rg(a,g,c,f,e,f);d=d-f|0;rg(g,b,c,d,e+h|0,d);c=J[c>>2];d=g;while(1){if((b|0)==(d|0)){if((a|0)==(g|0)){break a}while(1){J[e>>2]=J[a>>2];e=e+4|0;a=a+4|0;if((g|0)!=(a|0)){continue}break}break a}f=J[c>>2];j=J[c+4>>2]-f>>3;h=J[d>>2];if(j>>>0<=h>>>0){break c}i=J[a>>2];if(j>>>0<=i>>>0){break c}f:{if(M[f+(h<<3)>>2]>2]){J[e>>2]=h;d=d+4|0;break f}J[e>>2]=i;a=a+4|0}e=e+4|0;if((a|0)!=(g|0)){continue}break};break b;case 0:break a;case 1:break e}}J[e>>2]=J[a>>2];break a}Zc();C()}Zc();C()}if((b|0)==(d|0)){break a}while(1){J[e>>2]=J[d>>2];e=e+4|0;d=d+4|0;if((d|0)!=(b|0)){continue}break}}}function sf(a,b,c,d,e){var f=0,g=0,h=0,i=0,j=0;a:{b:{c:{d:{e:{switch(d|0){case 2:d=J[c>>2];c=J[d>>2];d=J[d+4>>2]-c>>3;g=b-4|0;b=J[g>>2];if(d>>>0<=b>>>0){break d}f=d;d=J[a>>2];if(f>>>0<=d>>>0){break d}if(M[c+(b<<3)>>2]>2]){J[e>>2]=b;J[e+4>>2]=J[a>>2];return}J[e>>2]=d;J[e+4>>2]=J[g>>2];return;default:if((d|0)<=8){uf(a,b,e,c);return}f=d>>>1|0;h=f<<2;g=h+a|0;pf(a,g,c,f,e,f);d=d-f|0;pf(g,b,c,d,e+h|0,d);c=J[c>>2];d=g;while(1){if((b|0)==(d|0)){if((a|0)==(g|0)){break a}while(1){J[e>>2]=J[a>>2];e=e+4|0;a=a+4|0;if((g|0)!=(a|0)){continue}break}break a}f=J[c>>2];j=J[c+4>>2]-f>>3;h=J[d>>2];if(j>>>0<=h>>>0){break c}i=J[a>>2];if(j>>>0<=i>>>0){break c}f:{if(M[f+(h<<3)>>2]>2]){J[e>>2]=h;d=d+4|0;break f}J[e>>2]=i;a=a+4|0}e=e+4|0;if((a|0)!=(g|0)){continue}break};break b;case 0:break a;case 1:break e}}J[e>>2]=J[a>>2];break a}Zc();C()}Zc();C()}if((b|0)==(d|0)){break a}while(1){J[e>>2]=J[d>>2];e=e+4|0;d=d+4|0;if((d|0)!=(b|0)){continue}break}}}function pg(a,b,c,d,e){var f=0,g=0,h=0,i=0,j=0;a:{b:{c:{d:{e:{switch(d|0){case 2:d=J[c>>2];c=J[d>>2];d=J[d+4>>2]-c>>3;g=b-4|0;b=J[g>>2];if(d>>>0<=b>>>0){break d}f=d;d=J[a>>2];if(f>>>0<=d>>>0){break d}if(M[c+(b<<3)>>2]>2]){J[e>>2]=b;J[e+4>>2]=J[a>>2];return}J[e>>2]=d;J[e+4>>2]=J[g>>2];return;default:if((d|0)<=8){uf(a,b,e,c);return}f=d>>>1|0;h=f<<2;g=h+a|0;og(a,g,c,f,e,f);d=d-f|0;og(g,b,c,d,e+h|0,d);c=J[c>>2];d=g;while(1){if((b|0)==(d|0)){if((a|0)==(g|0)){break a}while(1){J[e>>2]=J[a>>2];e=e+4|0;a=a+4|0;if((g|0)!=(a|0)){continue}break}break a}f=J[c>>2];j=J[c+4>>2]-f>>3;h=J[d>>2];if(j>>>0<=h>>>0){break c}i=J[a>>2];if(j>>>0<=i>>>0){break c}f:{if(M[f+(h<<3)>>2]>2]){J[e>>2]=h;d=d+4|0;break f}J[e>>2]=i;a=a+4|0}e=e+4|0;if((a|0)!=(g|0)){continue}break};break b;case 0:break a;case 1:break e}}J[e>>2]=J[a>>2];break a}Zc();C()}Zc();C()}if((b|0)==(d|0)){break a}while(1){J[e>>2]=J[d>>2];e=e+4|0;d=d+4|0;if((d|0)!=(b|0)){continue}break}}}function mg(a,b,c,d,e){var f=0,g=0,h=0,i=0,j=0;a:{b:{c:{d:{e:{switch(d|0){case 2:d=J[c>>2];c=J[d>>2];d=J[d+4>>2]-c>>3;g=b-4|0;b=J[g>>2];if(d>>>0<=b>>>0){break d}f=d;d=J[a>>2];if(f>>>0<=d>>>0){break d}if(M[c+(b<<3)>>2]>2]){J[e>>2]=b;J[e+4>>2]=J[a>>2];return}J[e>>2]=d;J[e+4>>2]=J[g>>2];return;default:if((d|0)<=8){uf(a,b,e,c);return}f=d>>>1|0;h=f<<2;g=h+a|0;lg(a,g,c,f,e,f);d=d-f|0;lg(g,b,c,d,e+h|0,d);c=J[c>>2];d=g;while(1){if((b|0)==(d|0)){if((a|0)==(g|0)){break a}while(1){J[e>>2]=J[a>>2];e=e+4|0;a=a+4|0;if((g|0)!=(a|0)){continue}break}break a}f=J[c>>2];j=J[c+4>>2]-f>>3;h=J[d>>2];if(j>>>0<=h>>>0){break c}i=J[a>>2];if(j>>>0<=i>>>0){break c}f:{if(M[f+(h<<3)>>2]>2]){J[e>>2]=h;d=d+4|0;break f}J[e>>2]=i;a=a+4|0}e=e+4|0;if((a|0)!=(g|0)){continue}break};break b;case 0:break a;case 1:break e}}J[e>>2]=J[a>>2];break a}Zc();C()}Zc();C()}if((b|0)==(d|0)){break a}while(1){J[e>>2]=J[d>>2];e=e+4|0;d=d+4|0;if((d|0)!=(b|0)){continue}break}}}function jg(a,b,c,d,e){var f=0,g=0,h=0,i=0,j=0;a:{b:{c:{d:{e:{switch(d|0){case 2:d=J[c>>2];c=J[d>>2];d=J[d+4>>2]-c>>3;g=b-4|0;b=J[g>>2];if(d>>>0<=b>>>0){break d}f=d;d=J[a>>2];if(f>>>0<=d>>>0){break d}if(M[c+(b<<3)>>2]>2]){J[e>>2]=b;J[e+4>>2]=J[a>>2];return}J[e>>2]=d;J[e+4>>2]=J[g>>2];return;default:if((d|0)<=8){uf(a,b,e,c);return}f=d>>>1|0;h=f<<2;g=h+a|0;ig(a,g,c,f,e,f);d=d-f|0;ig(g,b,c,d,e+h|0,d);c=J[c>>2];d=g;while(1){if((b|0)==(d|0)){if((a|0)==(g|0)){break a}while(1){J[e>>2]=J[a>>2];e=e+4|0;a=a+4|0;if((g|0)!=(a|0)){continue}break}break a}f=J[c>>2];j=J[c+4>>2]-f>>3;h=J[d>>2];if(j>>>0<=h>>>0){break c}i=J[a>>2];if(j>>>0<=i>>>0){break c}f:{if(M[f+(h<<3)>>2]>2]){J[e>>2]=h;d=d+4|0;break f}J[e>>2]=i;a=a+4|0}e=e+4|0;if((a|0)!=(g|0)){continue}break};break b;case 0:break a;case 1:break e}}J[e>>2]=J[a>>2];break a}Zc();C()}Zc();C()}if((b|0)==(d|0)){break a}while(1){J[e>>2]=J[d>>2];e=e+4|0;d=d+4|0;if((d|0)!=(b|0)){continue}break}}}function gg(a,b,c,d,e){var f=0,g=0,h=0,i=0,j=0;a:{b:{c:{d:{e:{switch(d|0){case 2:d=J[c>>2];c=J[d>>2];d=J[d+4>>2]-c>>3;g=b-4|0;b=J[g>>2];if(d>>>0<=b>>>0){break d}f=d;d=J[a>>2];if(f>>>0<=d>>>0){break d}if(M[c+(b<<3)>>2]>2]){J[e>>2]=b;J[e+4>>2]=J[a>>2];return}J[e>>2]=d;J[e+4>>2]=J[g>>2];return;default:if((d|0)<=8){uf(a,b,e,c);return}f=d>>>1|0;h=f<<2;g=h+a|0;fg(a,g,c,f,e,f);d=d-f|0;fg(g,b,c,d,e+h|0,d);c=J[c>>2];d=g;while(1){if((b|0)==(d|0)){if((a|0)==(g|0)){break a}while(1){J[e>>2]=J[a>>2];e=e+4|0;a=a+4|0;if((g|0)!=(a|0)){continue}break}break a}f=J[c>>2];j=J[c+4>>2]-f>>3;h=J[d>>2];if(j>>>0<=h>>>0){break c}i=J[a>>2];if(j>>>0<=i>>>0){break c}f:{if(M[f+(h<<3)>>2]>2]){J[e>>2]=h;d=d+4|0;break f}J[e>>2]=i;a=a+4|0}e=e+4|0;if((a|0)!=(g|0)){continue}break};break b;case 0:break a;case 1:break e}}J[e>>2]=J[a>>2];break a}Zc();C()}Zc();C()}if((b|0)==(d|0)){break a}while(1){J[e>>2]=J[d>>2];e=e+4|0;d=d+4|0;if((d|0)!=(b|0)){continue}break}}}function dg(a,b,c,d,e){var f=0,g=0,h=0,i=0,j=0;a:{b:{c:{d:{e:{switch(d|0){case 2:d=J[c>>2];c=J[d>>2];d=J[d+4>>2]-c>>3;g=b-4|0;b=J[g>>2];if(d>>>0<=b>>>0){break d}f=d;d=J[a>>2];if(f>>>0<=d>>>0){break d}if(M[c+(b<<3)>>2]>2]){J[e>>2]=b;J[e+4>>2]=J[a>>2];return}J[e>>2]=d;J[e+4>>2]=J[g>>2];return;default:if((d|0)<=8){uf(a,b,e,c);return}f=d>>>1|0;h=f<<2;g=h+a|0;cg(a,g,c,f,e,f);d=d-f|0;cg(g,b,c,d,e+h|0,d);c=J[c>>2];d=g;while(1){if((b|0)==(d|0)){if((a|0)==(g|0)){break a}while(1){J[e>>2]=J[a>>2];e=e+4|0;a=a+4|0;if((g|0)!=(a|0)){continue}break}break a}f=J[c>>2];j=J[c+4>>2]-f>>3;h=J[d>>2];if(j>>>0<=h>>>0){break c}i=J[a>>2];if(j>>>0<=i>>>0){break c}f:{if(M[f+(h<<3)>>2]>2]){J[e>>2]=h;d=d+4|0;break f}J[e>>2]=i;a=a+4|0}e=e+4|0;if((a|0)!=(g|0)){continue}break};break b;case 0:break a;case 1:break e}}J[e>>2]=J[a>>2];break a}Zc();C()}Zc();C()}if((b|0)==(d|0)){break a}while(1){J[e>>2]=J[d>>2];e=e+4|0;d=d+4|0;if((d|0)!=(b|0)){continue}break}}}function ag(a,b,c,d,e){var f=0,g=0,h=0,i=0,j=0;a:{b:{c:{d:{e:{switch(d|0){case 2:d=J[c>>2];c=J[d>>2];d=J[d+4>>2]-c>>3;g=b-4|0;b=J[g>>2];if(d>>>0<=b>>>0){break d}f=d;d=J[a>>2];if(f>>>0<=d>>>0){break d}if(M[c+(b<<3)>>2]>2]){J[e>>2]=b;J[e+4>>2]=J[a>>2];return}J[e>>2]=d;J[e+4>>2]=J[g>>2];return;default:if((d|0)<=8){uf(a,b,e,c);return}f=d>>>1|0;h=f<<2;g=h+a|0;$f(a,g,c,f,e,f);d=d-f|0;$f(g,b,c,d,e+h|0,d);c=J[c>>2];d=g;while(1){if((b|0)==(d|0)){if((a|0)==(g|0)){break a}while(1){J[e>>2]=J[a>>2];e=e+4|0;a=a+4|0;if((g|0)!=(a|0)){continue}break}break a}f=J[c>>2];j=J[c+4>>2]-f>>3;h=J[d>>2];if(j>>>0<=h>>>0){break c}i=J[a>>2];if(j>>>0<=i>>>0){break c}f:{if(M[f+(h<<3)>>2]>2]){J[e>>2]=h;d=d+4|0;break f}J[e>>2]=i;a=a+4|0}e=e+4|0;if((a|0)!=(g|0)){continue}break};break b;case 0:break a;case 1:break e}}J[e>>2]=J[a>>2];break a}Zc();C()}Zc();C()}if((b|0)==(d|0)){break a}while(1){J[e>>2]=J[d>>2];e=e+4|0;d=d+4|0;if((d|0)!=(b|0)){continue}break}}}function Zf(a,b,c,d,e){var f=0,g=0,h=0,i=0,j=0;a:{b:{c:{d:{e:{switch(d|0){case 2:d=J[c>>2];c=J[d>>2];d=J[d+4>>2]-c>>3;g=b-4|0;b=J[g>>2];if(d>>>0<=b>>>0){break d}f=d;d=J[a>>2];if(f>>>0<=d>>>0){break d}if(M[c+(b<<3)>>2]>2]){J[e>>2]=b;J[e+4>>2]=J[a>>2];return}J[e>>2]=d;J[e+4>>2]=J[g>>2];return;default:if((d|0)<=8){uf(a,b,e,c);return}f=d>>>1|0;h=f<<2;g=h+a|0;Yf(a,g,c,f,e,f);d=d-f|0;Yf(g,b,c,d,e+h|0,d);c=J[c>>2];d=g;while(1){if((b|0)==(d|0)){if((a|0)==(g|0)){break a}while(1){J[e>>2]=J[a>>2];e=e+4|0;a=a+4|0;if((g|0)!=(a|0)){continue}break}break a}f=J[c>>2];j=J[c+4>>2]-f>>3;h=J[d>>2];if(j>>>0<=h>>>0){break c}i=J[a>>2];if(j>>>0<=i>>>0){break c}f:{if(M[f+(h<<3)>>2]>2]){J[e>>2]=h;d=d+4|0;break f}J[e>>2]=i;a=a+4|0}e=e+4|0;if((a|0)!=(g|0)){continue}break};break b;case 0:break a;case 1:break e}}J[e>>2]=J[a>>2];break a}Zc();C()}Zc();C()}if((b|0)==(d|0)){break a}while(1){J[e>>2]=J[d>>2];e=e+4|0;d=d+4|0;if((d|0)!=(b|0)){continue}break}}}function Wf(a,b,c,d,e){var f=0,g=0,h=0,i=0,j=0;a:{b:{c:{d:{e:{switch(d|0){case 2:d=J[c>>2];c=J[d>>2];d=J[d+4>>2]-c>>3;g=b-4|0;b=J[g>>2];if(d>>>0<=b>>>0){break d}f=d;d=J[a>>2];if(f>>>0<=d>>>0){break d}if(M[c+(b<<3)>>2]>2]){J[e>>2]=b;J[e+4>>2]=J[a>>2];return}J[e>>2]=d;J[e+4>>2]=J[g>>2];return;default:if((d|0)<=8){uf(a,b,e,c);return}f=d>>>1|0;h=f<<2;g=h+a|0;Vf(a,g,c,f,e,f);d=d-f|0;Vf(g,b,c,d,e+h|0,d);c=J[c>>2];d=g;while(1){if((b|0)==(d|0)){if((a|0)==(g|0)){break a}while(1){J[e>>2]=J[a>>2];e=e+4|0;a=a+4|0;if((g|0)!=(a|0)){continue}break}break a}f=J[c>>2];j=J[c+4>>2]-f>>3;h=J[d>>2];if(j>>>0<=h>>>0){break c}i=J[a>>2];if(j>>>0<=i>>>0){break c}f:{if(M[f+(h<<3)>>2]>2]){J[e>>2]=h;d=d+4|0;break f}J[e>>2]=i;a=a+4|0}e=e+4|0;if((a|0)!=(g|0)){continue}break};break b;case 0:break a;case 1:break e}}J[e>>2]=J[a>>2];break a}Zc();C()}Zc();C()}if((b|0)==(d|0)){break a}while(1){J[e>>2]=J[d>>2];e=e+4|0;d=d+4|0;if((d|0)!=(b|0)){continue}break}}}function Tf(a,b,c,d,e){var f=0,g=0,h=0,i=0,j=0;a:{b:{c:{d:{e:{switch(d|0){case 2:d=J[c>>2];c=J[d>>2];d=J[d+4>>2]-c>>3;g=b-4|0;b=J[g>>2];if(d>>>0<=b>>>0){break d}f=d;d=J[a>>2];if(f>>>0<=d>>>0){break d}if(M[c+(b<<3)>>2]>2]){J[e>>2]=b;J[e+4>>2]=J[a>>2];return}J[e>>2]=d;J[e+4>>2]=J[g>>2];return;default:if((d|0)<=8){uf(a,b,e,c);return}f=d>>>1|0;h=f<<2;g=h+a|0;Sf(a,g,c,f,e,f);d=d-f|0;Sf(g,b,c,d,e+h|0,d);c=J[c>>2];d=g;while(1){if((b|0)==(d|0)){if((a|0)==(g|0)){break a}while(1){J[e>>2]=J[a>>2];e=e+4|0;a=a+4|0;if((g|0)!=(a|0)){continue}break}break a}f=J[c>>2];j=J[c+4>>2]-f>>3;h=J[d>>2];if(j>>>0<=h>>>0){break c}i=J[a>>2];if(j>>>0<=i>>>0){break c}f:{if(M[f+(h<<3)>>2]>2]){J[e>>2]=h;d=d+4|0;break f}J[e>>2]=i;a=a+4|0}e=e+4|0;if((a|0)!=(g|0)){continue}break};break b;case 0:break a;case 1:break e}}J[e>>2]=J[a>>2];break a}Zc();C()}Zc();C()}if((b|0)==(d|0)){break a}while(1){J[e>>2]=J[d>>2];e=e+4|0;d=d+4|0;if((d|0)!=(b|0)){continue}break}}}function Qf(a,b,c,d,e){var f=0,g=0,h=0,i=0,j=0;a:{b:{c:{d:{e:{switch(d|0){case 2:d=J[c>>2];c=J[d>>2];d=J[d+4>>2]-c>>3;g=b-4|0;b=J[g>>2];if(d>>>0<=b>>>0){break d}f=d;d=J[a>>2];if(f>>>0<=d>>>0){break d}if(M[c+(b<<3)>>2]>2]){J[e>>2]=b;J[e+4>>2]=J[a>>2];return}J[e>>2]=d;J[e+4>>2]=J[g>>2];return;default:if((d|0)<=8){uf(a,b,e,c);return}f=d>>>1|0;h=f<<2;g=h+a|0;Pf(a,g,c,f,e,f);d=d-f|0;Pf(g,b,c,d,e+h|0,d);c=J[c>>2];d=g;while(1){if((b|0)==(d|0)){if((a|0)==(g|0)){break a}while(1){J[e>>2]=J[a>>2];e=e+4|0;a=a+4|0;if((g|0)!=(a|0)){continue}break}break a}f=J[c>>2];j=J[c+4>>2]-f>>3;h=J[d>>2];if(j>>>0<=h>>>0){break c}i=J[a>>2];if(j>>>0<=i>>>0){break c}f:{if(M[f+(h<<3)>>2]>2]){J[e>>2]=h;d=d+4|0;break f}J[e>>2]=i;a=a+4|0}e=e+4|0;if((a|0)!=(g|0)){continue}break};break b;case 0:break a;case 1:break e}}J[e>>2]=J[a>>2];break a}Zc();C()}Zc();C()}if((b|0)==(d|0)){break a}while(1){J[e>>2]=J[d>>2];e=e+4|0;d=d+4|0;if((d|0)!=(b|0)){continue}break}}}function Nf(a,b,c,d,e){var f=0,g=0,h=0,i=0,j=0;a:{b:{c:{d:{e:{switch(d|0){case 2:d=J[c>>2];c=J[d>>2];d=J[d+4>>2]-c>>3;g=b-4|0;b=J[g>>2];if(d>>>0<=b>>>0){break d}f=d;d=J[a>>2];if(f>>>0<=d>>>0){break d}if(M[c+(b<<3)>>2]>2]){J[e>>2]=b;J[e+4>>2]=J[a>>2];return}J[e>>2]=d;J[e+4>>2]=J[g>>2];return;default:if((d|0)<=8){uf(a,b,e,c);return}f=d>>>1|0;h=f<<2;g=h+a|0;Mf(a,g,c,f,e,f);d=d-f|0;Mf(g,b,c,d,e+h|0,d);c=J[c>>2];d=g;while(1){if((b|0)==(d|0)){if((a|0)==(g|0)){break a}while(1){J[e>>2]=J[a>>2];e=e+4|0;a=a+4|0;if((g|0)!=(a|0)){continue}break}break a}f=J[c>>2];j=J[c+4>>2]-f>>3;h=J[d>>2];if(j>>>0<=h>>>0){break c}i=J[a>>2];if(j>>>0<=i>>>0){break c}f:{if(M[f+(h<<3)>>2]>2]){J[e>>2]=h;d=d+4|0;break f}J[e>>2]=i;a=a+4|0}e=e+4|0;if((a|0)!=(g|0)){continue}break};break b;case 0:break a;case 1:break e}}J[e>>2]=J[a>>2];break a}Zc();C()}Zc();C()}if((b|0)==(d|0)){break a}while(1){J[e>>2]=J[d>>2];e=e+4|0;d=d+4|0;if((d|0)!=(b|0)){continue}break}}}function Kf(a,b,c,d,e){var f=0,g=0,h=0,i=0,j=0;a:{b:{c:{d:{e:{switch(d|0){case 2:d=J[c>>2];c=J[d>>2];d=J[d+4>>2]-c>>3;g=b-4|0;b=J[g>>2];if(d>>>0<=b>>>0){break d}f=d;d=J[a>>2];if(f>>>0<=d>>>0){break d}if(M[c+(b<<3)>>2]>2]){J[e>>2]=b;J[e+4>>2]=J[a>>2];return}J[e>>2]=d;J[e+4>>2]=J[g>>2];return;default:if((d|0)<=8){uf(a,b,e,c);return}f=d>>>1|0;h=f<<2;g=h+a|0;Jf(a,g,c,f,e,f);d=d-f|0;Jf(g,b,c,d,e+h|0,d);c=J[c>>2];d=g;while(1){if((b|0)==(d|0)){if((a|0)==(g|0)){break a}while(1){J[e>>2]=J[a>>2];e=e+4|0;a=a+4|0;if((g|0)!=(a|0)){continue}break}break a}f=J[c>>2];j=J[c+4>>2]-f>>3;h=J[d>>2];if(j>>>0<=h>>>0){break c}i=J[a>>2];if(j>>>0<=i>>>0){break c}f:{if(M[f+(h<<3)>>2]>2]){J[e>>2]=h;d=d+4|0;break f}J[e>>2]=i;a=a+4|0}e=e+4|0;if((a|0)!=(g|0)){continue}break};break b;case 0:break a;case 1:break e}}J[e>>2]=J[a>>2];break a}Zc();C()}Zc();C()}if((b|0)==(d|0)){break a}while(1){J[e>>2]=J[d>>2];e=e+4|0;d=d+4|0;if((d|0)!=(b|0)){continue}break}}}function Hf(a,b,c,d,e){var f=0,g=0,h=0,i=0,j=0;a:{b:{c:{d:{e:{switch(d|0){case 2:d=J[c>>2];c=J[d>>2];d=J[d+4>>2]-c>>3;g=b-4|0;b=J[g>>2];if(d>>>0<=b>>>0){break d}f=d;d=J[a>>2];if(f>>>0<=d>>>0){break d}if(M[c+(b<<3)>>2]>2]){J[e>>2]=b;J[e+4>>2]=J[a>>2];return}J[e>>2]=d;J[e+4>>2]=J[g>>2];return;default:if((d|0)<=8){uf(a,b,e,c);return}f=d>>>1|0;h=f<<2;g=h+a|0;Gf(a,g,c,f,e,f);d=d-f|0;Gf(g,b,c,d,e+h|0,d);c=J[c>>2];d=g;while(1){if((b|0)==(d|0)){if((a|0)==(g|0)){break a}while(1){J[e>>2]=J[a>>2];e=e+4|0;a=a+4|0;if((g|0)!=(a|0)){continue}break}break a}f=J[c>>2];j=J[c+4>>2]-f>>3;h=J[d>>2];if(j>>>0<=h>>>0){break c}i=J[a>>2];if(j>>>0<=i>>>0){break c}f:{if(M[f+(h<<3)>>2]>2]){J[e>>2]=h;d=d+4|0;break f}J[e>>2]=i;a=a+4|0}e=e+4|0;if((a|0)!=(g|0)){continue}break};break b;case 0:break a;case 1:break e}}J[e>>2]=J[a>>2];break a}Zc();C()}Zc();C()}if((b|0)==(d|0)){break a}while(1){J[e>>2]=J[d>>2];e=e+4|0;d=d+4|0;if((d|0)!=(b|0)){continue}break}}}function Ef(a,b,c,d,e){var f=0,g=0,h=0,i=0,j=0;a:{b:{c:{d:{e:{switch(d|0){case 2:d=J[c>>2];c=J[d>>2];d=J[d+4>>2]-c>>3;g=b-4|0;b=J[g>>2];if(d>>>0<=b>>>0){break d}f=d;d=J[a>>2];if(f>>>0<=d>>>0){break d}if(M[c+(b<<3)>>2]>2]){J[e>>2]=b;J[e+4>>2]=J[a>>2];return}J[e>>2]=d;J[e+4>>2]=J[g>>2];return;default:if((d|0)<=8){uf(a,b,e,c);return}f=d>>>1|0;h=f<<2;g=h+a|0;Df(a,g,c,f,e,f);d=d-f|0;Df(g,b,c,d,e+h|0,d);c=J[c>>2];d=g;while(1){if((b|0)==(d|0)){if((a|0)==(g|0)){break a}while(1){J[e>>2]=J[a>>2];e=e+4|0;a=a+4|0;if((g|0)!=(a|0)){continue}break}break a}f=J[c>>2];j=J[c+4>>2]-f>>3;h=J[d>>2];if(j>>>0<=h>>>0){break c}i=J[a>>2];if(j>>>0<=i>>>0){break c}f:{if(M[f+(h<<3)>>2]>2]){J[e>>2]=h;d=d+4|0;break f}J[e>>2]=i;a=a+4|0}e=e+4|0;if((a|0)!=(g|0)){continue}break};break b;case 0:break a;case 1:break e}}J[e>>2]=J[a>>2];break a}Zc();C()}Zc();C()}if((b|0)==(d|0)){break a}while(1){J[e>>2]=J[d>>2];e=e+4|0;d=d+4|0;if((d|0)!=(b|0)){continue}break}}}function Bf(a,b,c,d,e){var f=0,g=0,h=0,i=0,j=0;a:{b:{c:{d:{e:{switch(d|0){case 2:d=J[c>>2];c=J[d>>2];d=J[d+4>>2]-c>>3;g=b-4|0;b=J[g>>2];if(d>>>0<=b>>>0){break d}f=d;d=J[a>>2];if(f>>>0<=d>>>0){break d}if(M[c+(b<<3)>>2]>2]){J[e>>2]=b;J[e+4>>2]=J[a>>2];return}J[e>>2]=d;J[e+4>>2]=J[g>>2];return;default:if((d|0)<=8){uf(a,b,e,c);return}f=d>>>1|0;h=f<<2;g=h+a|0;Af(a,g,c,f,e,f);d=d-f|0;Af(g,b,c,d,e+h|0,d);c=J[c>>2];d=g;while(1){if((b|0)==(d|0)){if((a|0)==(g|0)){break a}while(1){J[e>>2]=J[a>>2];e=e+4|0;a=a+4|0;if((g|0)!=(a|0)){continue}break}break a}f=J[c>>2];j=J[c+4>>2]-f>>3;h=J[d>>2];if(j>>>0<=h>>>0){break c}i=J[a>>2];if(j>>>0<=i>>>0){break c}f:{if(M[f+(h<<3)>>2]>2]){J[e>>2]=h;d=d+4|0;break f}J[e>>2]=i;a=a+4|0}e=e+4|0;if((a|0)!=(g|0)){continue}break};break b;case 0:break a;case 1:break e}}J[e>>2]=J[a>>2];break a}Zc();C()}Zc();C()}if((b|0)==(d|0)){break a}while(1){J[e>>2]=J[d>>2];e=e+4|0;d=d+4|0;if((d|0)!=(b|0)){continue}break}}}function ci(a){a=a|0;var b=0,c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0;b=J[a+4>>2];b=J[b+12>>2]-J[b+8>>2]|0;a:{if((b|0)>0){while(1){if(na[J[J[a>>2]+36>>2]](a,c)|0){b=J[a+4>>2];b=J[b+12>>2]-J[b+8>>2]>>2;c=c+1|0;if((b|0)>(c|0)){continue}break a}break}return 0}b=b>>2}c=a+20|0;d=J[a+20>>2];e=J[a+24>>2]-d>>2;b:{if(e>>>0>>0){Oa(c,b-e|0);break b}if(b>>>0>=e>>>0){break b}J[a+24>>2]=d+(b<<2)}f=J[a+8>>2];a=J[a+12>>2];if((f|0)==(a|0)){return 1}a=a-f>>2;j=a>>>0<=1?1:a;e=J[c>>2];c=0;while(1){a=J[(c<<2)+f>>2];d=J[a+8>>2];b=J[a+4>>2];c:{if((d|0)==(b|0)){break c}a=d-b>>2;d=a>>>0<=1?1:a;i=d&3;g=0;a=0;if(d-1>>>0>=3){k=d&-4;h=0;while(1){d=a<<2;J[e+(J[d+b>>2]<<2)>>2]=c;J[e+(J[b+(d|4)>>2]<<2)>>2]=c;J[e+(J[b+(d|8)>>2]<<2)>>2]=c;J[e+(J[b+(d|12)>>2]<<2)>>2]=c;a=a+4|0;h=h+4|0;if((k|0)!=(h|0)){continue}break}}if(!i){break c}while(1){J[e+(J[b+(a<<2)>>2]<<2)>>2]=c;a=a+1|0;g=g+1|0;if((g|0)!=(i|0)){continue}break}}c=c+1|0;if((j|0)!=(c|0)){continue}break}return 1}function ic(a,b){var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0;a:{c=J[a+8>>2];b:{if((c|0)!=J[a+12>>2]){e=c;break b}d=J[a+4>>2];g=J[a>>2];if(d>>>0>g>>>0){f=c-d|0;g=((d-g>>2)+1|0)/-2<<2;e=g+d|0;if((c|0)!=(d|0)){mk(e,d,f);c=J[a+4>>2]}e=e+f|0;J[a+8>>2]=e;J[a+4>>2]=c+g;break b}f=(c|0)==(g|0)?1:c-g>>1;if(f>>>0>=1073741824){break a}e=f<<2;h=ll(e);k=h+e|0;f=(f&-4)+h|0;e=f;c:{if((c|0)==(d|0)){break c}c=c-d|0;l=c&-4;i=c-4|0;j=(i>>>2|0)+1&7;d:{if(!j){c=f;break d}e=0;c=f;while(1){J[c>>2]=J[d>>2];d=d+4|0;c=c+4|0;e=e+1|0;if((j|0)!=(e|0)){continue}break}}e=f+l|0;if(i>>>0<28){break c}while(1){J[c>>2]=J[d>>2];J[c+4>>2]=J[d+4>>2];J[c+8>>2]=J[d+8>>2];J[c+12>>2]=J[d+12>>2];J[c+16>>2]=J[d+16>>2];J[c+20>>2]=J[d+20>>2];J[c+24>>2]=J[d+24>>2];J[c+28>>2]=J[d+28>>2];d=d+32|0;c=c+32|0;if((e|0)!=(c|0)){continue}break}}J[a+12>>2]=k;J[a+8>>2]=e;J[a+4>>2]=f;J[a>>2]=h;if(!g){break b}fl(g);e=J[a+8>>2]}J[e>>2]=J[b>>2];J[a+8>>2]=J[a+8>>2]+4;return}$a();C()} +function jc(a,b){var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0;a:{f=J[a+4>>2];b:{if((f|0)!=J[a>>2]){c=f;break b}g=J[a+8>>2];c=J[a+12>>2];if(g>>>0>>0){e=((c-g>>2)+1|0)/2<<2;c=e+g|0;if((f|0)!=(g|0)){d=g-f|0;c=c-d|0;mk(c,f,d);f=J[a+8>>2]}J[a+4>>2]=c;J[a+8>>2]=e+f;break b}d=(c|0)==(f|0)?1:c-f>>1;if(d>>>0>=1073741824){break a}c=d<<2;i=ll(c);k=i+c|0;c=(d+3&-4)+i|0;h=c;c:{if((f|0)==(g|0)){break c}g=g-f|0;l=g&-4;e=c;d=f;j=g-4|0;g=(j>>>2|0)+1&7;if(g){h=0;while(1){J[e>>2]=J[d>>2];d=d+4|0;e=e+4|0;h=h+1|0;if((g|0)!=(h|0)){continue}break}}h=c+l|0;if(j>>>0<28){break c}while(1){J[e>>2]=J[d>>2];J[e+4>>2]=J[d+4>>2];J[e+8>>2]=J[d+8>>2];J[e+12>>2]=J[d+12>>2];J[e+16>>2]=J[d+16>>2];J[e+20>>2]=J[d+20>>2];J[e+24>>2]=J[d+24>>2];J[e+28>>2]=J[d+28>>2];d=d+32|0;e=e+32|0;if((h|0)!=(e|0)){continue}break}}J[a+12>>2]=k;J[a+8>>2]=h;J[a+4>>2]=c;J[a>>2]=i;if(!f){break b}fl(f);c=J[a+4>>2]}J[c-4>>2]=J[b>>2];J[a+4>>2]=J[a+4>>2]-4;return}$a();C()}function Dj(a,b,c){var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0;f=c-b|0;e=J[a+8>>2];d=J[a>>2];if(f>>>0<=e-d>>>0){h=J[a+4>>2]-d|0;e=h+b|0;g=f>>>0>h>>>0?e:c;a:{if((g|0)==(b|0)){break a}k=(b^-1)+g|0;i=g-b&7;if(i){while(1){H[d|0]=K[b|0];d=d+1|0;b=b+1|0;j=j+1|0;if((j|0)!=(i|0)){continue}break}}if(k>>>0<7){break a}while(1){H[d|0]=K[b|0];H[d+1|0]=K[b+1|0];H[d+2|0]=K[b+2|0];H[d+3|0]=K[b+3|0];H[d+4|0]=K[b+4|0];H[d+5|0]=K[b+5|0];H[d+6|0]=K[b+6|0];H[d+7|0]=K[b+7|0];d=d+8|0;b=b+8|0;if((g|0)!=(b|0)){continue}break}}if(f>>>0>h>>>0){b=J[a+4>>2];if((c|0)!=(g|0)){while(1){H[b|0]=K[e|0];b=b+1|0;e=e+1|0;if((e|0)!=(c|0)){continue}break}}J[a+4>>2]=b;return}J[a+4>>2]=d;return}if(d){J[a+4>>2]=d;fl(d);J[a+8>>2]=0;J[a>>2]=0;J[a+4>>2]=0;e=0}b:{if((f|0)<0){break b}d=e<<1;e=e>>>0>=1073741823?2147483647:d>>>0>f>>>0?d:f;if((e|0)<0){break b}d=ll(e);J[a>>2]=d;J[a+4>>2]=d;J[a+8>>2]=d+e;if((b|0)!=(c|0)){d=lk(d,b,f)+f|0}J[a+4>>2]=d;return}La();C()}function zh(a){a=a|0;var b=0,c=0,d=0,e=0,f=0,g=0,h=0;g=ia-16|0;ia=g;b=J[a+4>>2];d=J[b>>2];a:{c=J[a+12>>2];c=J[c+28>>2]-J[c+24>>2]|0;e=c>>2;b:{if(e>>>0<=J[b+8>>2]-d>>2>>>0){break b}if((c|0)<0){break a}f=J[b+4>>2];c=ll(c);h=c+(e<<2)|0;e=f-d|0;f=e+c|0;if((e|0)>0){lk(c,d,e)}J[b+8>>2]=h;J[b+4>>2]=f;J[b>>2]=c;if(!d){break b}fl(d)}b=J[a+12>>2];d=J[b+28>>2];b=J[b+24>>2];J[g+12>>2]=0;b=d-b>>2;c=a+96|0;e=J[c>>2];d=J[a+100>>2]-e>>2;c:{if(b>>>0>d>>>0){ub(c,b-d|0,g+12|0);break c}if(b>>>0>=d>>>0){break c}J[a+100>>2]=e+(b<<2)}e=a+8|0;b=J[a+116>>2];d:{if(b){c=J[b>>2];if((c|0)==J[b+4>>2]){d=1;break d}b=0;while(1){d=Ah(e,J[(b<<2)+c>>2]);if(!d){break d}f=J[a+116>>2];c=J[f>>2];b=b+1|0;if(b>>>0>2]-c>>2>>>0){continue}break}break d}d=1;a=J[a+12>>2];a=J[a+4>>2]-J[a>>2]|0;if(a>>>0<12){break d}a=(a>>2>>>0)/3|0;b=0;while(1){d=Ah(e,P(b,3));if(!d){break d}b=b+1|0;if((a|0)!=(b|0)){continue}break}}ia=g+16|0;return d|0}La();C()}function Wa(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0;f=J[a+12>>2];h=J[a+8>>2];d=f-h>>2;b=K[b+24|0];a:{if(d>>>0>>0){Oa(a+8|0,b-d|0);h=J[a+8>>2];f=J[a+12>>2];break a}if(b>>>0>=d>>>0){break a}f=(b<<2)+h|0;J[a+12>>2]=f}b=0;i=J[c+20>>2];e=J[c+16>>2];d=f-h|0;f=d;g=e+d|0;j=J[c+12>>2];i=d>>>0>g>>>0?i+1|0:i;b:{if(g>>>0>M[c+8>>2]&(j|0)<=(i|0)|(i|0)>(j|0)){break b}lk(h,e+J[c>>2]|0,d);d=J[c+20>>2];e=f+J[c+16>>2]|0;d=e>>>0>>0?d+1|0:d;g=e;J[c+16>>2]=e;J[c+20>>2]=d;e=J[c+12>>2];f=g+4|0;d=f>>>0<4?d+1|0:d;if(f>>>0>M[c+8>>2]&(d|0)>=(e|0)|(d|0)>(e|0)){break b}d=g+J[c>>2]|0;J[a+20>>2]=K[d|0]|K[d+1|0]<<8|(K[d+2|0]<<16|K[d+3|0]<<24);d=J[c+20>>2];g=J[c+16>>2];e=g+4|0;f=e>>>0<4?d+1|0:d;j=e;J[c+16>>2]=e;J[c+20>>2]=f;e=J[c+12>>2];if((f|0)>=(e|0)&j>>>0>=M[c+8>>2]|(f|0)>(e|0)){break b}e=K[j+J[c>>2]|0];f=g+5|0;d=f>>>0<5?d+1|0:d;J[c+16>>2]=f;J[c+20>>2]=d;if(e-1>>>0>29){break b}J[a+4>>2]=e;b=1}return b|0}function Ba(a,b,c,d){var e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0;j=+N[b>>2];k=+N[b+4>>2];l=+N[b+8>>2];g=R(j)+R(k)+R(l);a:{if(!(g>1e-6)){j=1;k=0;e=0;break a}g=1/g;k=g*k;j=g*j;e=g*l<0}h=J[a+16>>2];l=+(h|0);g=V(j*l+.5);b:{if(R(g)<2147483648){m=~~g;break b}m=-2147483648}f=m>>31;i=(f^m)-f|0;g=V(k*l+.5);c:{if(R(g)<2147483648){f=~~g;break c}f=-2147483648}b=f>>31;b=h-(i+((f^b)-b|0)|0)|0;i=(b|0)>0?b:0;e=e?0-i|0:i;f=f+(b>>31&((f|0)>0?b:0-b|0))|0;d:{if((m|0)>=0){b=e+h|0;a=J[a+8>>2];e=h+f|0;break d}b=f>>31;b=(b^f)-b|0;a=J[a+8>>2];b=(e|0)<0?b:a-b|0;e=(f|0)<0?i:a-i|0}e:{if(!(b|e)){b=a;break e}if(!((a|0)!=(b|0)|e)){b=a;break e}if(!((a|0)!=(e|0)|b)){b=a;break e}if(!((b|0)<=(h|0)|e)){b=(h<<1)-b|0;a=0;break e}if(!((a|0)!=(e|0)|(b|0)>=(h|0))){b=(h<<1)-b|0;break e}if(!((a|0)!=(b|0)|(e|0)>=(h|0))){b=a;a=(h<<1)-e|0;break e}if(b){a=e;break e}b=0;if((e|0)<=(h|0)){a=e;break e}a=(h<<1)-e|0}J[c>>2]=a;J[d>>2]=b}function $e(a,b,c,d){var e=0,f=0,g=0,h=0,i=0,j=0,k=0;a:{b:{e=J[b+4>>2];c:{if(!e){f=b+4|0;c=f;break c}f=K[c+11|0];g=f<<24>>24<0;i=g?J[c>>2]:c;g=g?J[c+4>>2]:f;while(1){c=e;h=K[e+27|0];f=h<<24>>24<0;e=f?J[e+20>>2]:h;h=e>>>0>>0;d:{e:{f:{g:{j=h?e:g;h:{if(j){f=f?J[c+16>>2]:c+16|0;k=qk(i,f,j);if(!k){if(e>>>0>g>>>0){break h}break g}if((k|0)>=0){break g}break h}if(e>>>0<=g>>>0){break f}}f=c;e=J[c>>2];if(e){continue}break c}e=qk(f,i,j);if(e){break e}}if(h){break d}break b}if((e|0)>=0){break b}}e=J[c+4>>2];if(e){continue}break}f=c+4|0}e=ll(40);g=e+16|0;d=J[d>>2];i:{if(H[d+11|0]>=0){i=J[d+4>>2];J[g>>2]=J[d>>2];J[g+4>>2]=i;J[g+8>>2]=J[d+8>>2];break i}sl(g,J[d>>2],J[d+4>>2])}J[e+8>>2]=c;J[e>>2]=0;J[e+4>>2]=0;J[e+36>>2]=0;J[e+28>>2]=0;J[e+32>>2]=0;J[f>>2]=e;c=e;d=J[J[b>>2]>>2];if(d){J[b>>2]=d;c=J[f>>2]}Ye(J[b+4>>2],c);J[b+8>>2]=J[b+8>>2]+1;b=1;break a}e=c;b=0}H[a+4|0]=b;J[a>>2]=e}function Ca(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=Q(0),f=Q(0),g=Q(0),h=Q(0),i=Q(0),j=0,k=Q(0),l=Q(0),m=Q(0),n=Q(0),o=0;a:{if(J[c+28>>2]!=9|K[c+24|0]!=3){break a}a=J[a+4>>2];if(a-31>>>0<4294967267){break a}o=1;j=J[c+80>>2];if(!j){break a}k=Q(Q(2)/Q((1<>2]>>2]+J[c+48>>2]|0;a=J[J[b>>2]>>2]+J[b+48>>2]|0;b=0;while(1){g=Q(0);l=Q(0);m=Q(0);e=Q(Q(Q(J[a>>2])*k)+Q(-1));f=Q(Q(Q(J[a+4>>2])*k)+Q(-1));i=Q(Q(Q(1)-Q(R(e)))-Q(R(f)));h=Q(U(Q(-i),Q(0)));n=Q(-h);f=Q(f+(f>>8;H[c+10|0]=d>>>16;H[c+11|0]=d>>>24;d=(B(l),v(2));H[c+4|0]=d;H[c+5|0]=d>>>8;H[c+6|0]=d>>>16;H[c+7|0]=d>>>24;d=(B(g),v(2));H[c|0]=d;H[c+1|0]=d>>>8;H[c+2|0]=d>>>16;H[c+3|0]=d>>>24;c=c+12|0;b=b+1|0;if((j|0)!=(b|0)){continue}break}}return o|0}function wf(a,b){var c=0,d=0,e=0,f=0,g=0,h=0;d=ia-32|0;ia=d;g=J[b>>2]+J[a+40>>2]|0;e=J[a+32>>2];c=e-4194304|0;a:{if(c>>>0<=63){H[J[a+24>>2]+J[a+28>>2]|0]=e;c=J[a+28>>2]+1|0;break a}if(c>>>0<=16383){c=J[a+24>>2]+J[a+28>>2]|0;H[c+1|0]=e+16384>>>8;H[c|0]=e;c=J[a+28>>2]+2|0;break a}if(c>>>0<=4194303){c=J[a+24>>2]+J[a+28>>2]|0;H[c+2|0]=e+4194304>>>16;H[c+1|0]=e>>>8;H[c|0]=e;c=J[a+28>>2]+3|0;break a}if(c>>>0<=1073741823){f=J[a+24>>2]+J[a+28>>2]|0;c=e-1077936128|0;H[f+3|0]=c>>>24;H[f+2|0]=c>>>16;H[f+1|0]=e>>>8;H[f|0]=e;c=J[a+28>>2]+4|0;break a}c=J[a+28>>2]}J[d>>2]=0;J[d+4>>2]=0;H[d+24|0]=0;J[d+16>>2]=0;J[d+20>>2]=0;J[d+8>>2]=0;J[d+12>>2]=0;f=c>>31;rf(c,f,d);e=J[d+4>>2]-J[d>>2]|0;mk(e+g|0,g,c);lk(g,J[d>>2],e);g=J[a+44>>2];h=b;b=J[a+40>>2];a=c+e|0;f=a>>>0>>0?f+1|0:f;b=b+a|0;ji(h,b);a=J[d+12>>2];J[d+12>>2]=0;if(a){fl(a)}a=J[d>>2];if(a){J[d+4>>2]=a;fl(a)}ia=d+32|0}function of(a,b){var c=0,d=0,e=0,f=0,g=0,h=0;d=ia-32|0;ia=d;g=J[b>>2]+J[a+40>>2]|0;f=J[a+32>>2];c=f-16384|0;a:{if(c>>>0<=63){H[J[a+24>>2]+J[a+28>>2]|0]=f;c=J[a+28>>2]+1|0;break a}if(c>>>0<=16383){c=J[a+24>>2]+J[a+28>>2]|0;H[c|0]=f;H[c+1|0]=f>>>8;c=J[a+28>>2]+2|0;break a}if(c>>>0<=4194303){e=J[a+24>>2]+J[a+28>>2]|0;c=f+8372224|0;H[e+2|0]=c>>>16;H[e+1|0]=c>>>8;H[e|0]=f;c=J[a+28>>2]+3|0;break a}if(c>>>0<=1073741823){e=J[a+24>>2]+J[a+28>>2]|0;c=f-1073758208|0;H[e+3|0]=c>>>24;H[e+2|0]=c>>>16;H[e+1|0]=c>>>8;H[e|0]=f;c=J[a+28>>2]+4|0;break a}c=J[a+28>>2]}J[d>>2]=0;J[d+4>>2]=0;H[d+24|0]=0;J[d+16>>2]=0;J[d+20>>2]=0;J[d+8>>2]=0;J[d+12>>2]=0;e=c>>31;rf(c,e,d);f=J[d+4>>2]-J[d>>2]|0;mk(f+g|0,g,c);lk(g,J[d>>2],f);g=J[a+44>>2];h=b;b=J[a+40>>2];a=c+f|0;e=a>>>0>>0?e+1|0:e;b=b+a|0;ji(h,b);a=J[d+12>>2];J[d+12>>2]=0;if(a){fl(a)}a=J[d>>2];if(a){J[d+4>>2]=a;fl(a)}ia=d+32|0}function Sg(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0;c=ia-16|0;ia=c;b=J[J[a+184>>2]+(b<<2)>>2];H[c+15|0]=b;e=J[J[a+4>>2]+44>>2];d=J[e+20>>2];if(!J[e+16>>2]&(d|0)<=0|(d|0)<0){Ea(e,J[e+4>>2],c+15|0,c+16|0);b=K[c+15|0]}a:{b:{c:{if(b<<24>>24<0){e=J[a+68>>2];break c}b=J[J[a+172>>2]+P(b&255,136)>>2];d=na[J[J[a>>2]+40>>2]](a)|0;f=J[a+172>>2]+P(H[c+15|0],136)|0;e=J[f+132>>2];d:{switch(J[J[J[d+56>>2]+84>>2]+(b<<2)>>2]){case 0:break c;case 1:break d;default:break b}}if(!K[f+28|0]){break b}}b=J[J[a+4>>2]+44>>2];H[c+14|0]=0;d=J[b+20>>2];if(!!J[b+16>>2]&(d|0)>=0|(d|0)>0){break a}Ea(b,J[b+4>>2],c+14|0,c+15|0);break a}b=J[J[a+4>>2]+44>>2];H[c+13|0]=1;d=J[b+20>>2];if(!!J[b+16>>2]&(d|0)>=0|(d|0)>0){break a}Ea(b,J[b+4>>2],c+13|0,c+14|0)}a=J[J[a+4>>2]+44>>2];H[c+12|0]=e;b=J[a+20>>2];if(!J[a+16>>2]&(b|0)<=0|(b|0)<0){Ea(a,J[a+4>>2],c+12|0,c+13|0)}ia=c+16|0;return 1}function _j(a,b,c,d){var e=0,f=0,g=0,h=0,i=0,j=0,k=0;a:{b:{e=J[b+4>>2];c:{if(!e){f=b+4|0;c=f;break c}f=K[c+11|0];g=f<<24>>24<0;i=g?J[c>>2]:c;g=g?J[c+4>>2]:f;while(1){c=e;e=K[e+27|0];f=e<<24>>24<0;e=f?J[c+20>>2]:e;j=e>>>0>>0;d:{e:{f:{g:{h=j?e:g;h:{if(h){f=f?J[c+16>>2]:c+16|0;k=qk(i,f,h);if(!k){if(e>>>0>g>>>0){break h}break g}if((k|0)>=0){break g}break h}if(e>>>0<=g>>>0){break f}}f=c;e=J[c>>2];if(e){continue}break c}e=qk(f,i,h);if(e){break e}}if(j){break d}break b}if((e|0)>=0){break b}}e=J[c+4>>2];if(e){continue}break}f=c+4|0}e=ll(40);J[e+24>>2]=J[d+8>>2];g=J[d+4>>2];J[e+16>>2]=J[d>>2];J[e+20>>2]=g;J[d>>2]=0;J[d+4>>2]=0;J[d+8>>2]=0;Xj(e+28|0,d+12|0);J[e+8>>2]=c;J[e>>2]=0;J[e+4>>2]=0;J[f>>2]=e;c=e;d=J[J[b>>2]>>2];if(d){J[b>>2]=d;c=J[f>>2]}Ye(J[b+4>>2],c);J[b+8>>2]=J[b+8>>2]+1;b=1;break a}e=c;b=0}H[a+4|0]=b;J[a>>2]=e}function oc(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0,i=0;a:{b:{if((na[J[J[b>>2]+20>>2]](b)|0)>0){while(1){d=ak(J[J[a+4>>2]+4>>2],na[J[J[b>>2]+24>>2]](b,i)|0);if((d|0)!=-1){c=J[a+20>>2];c:{if((c|0)!=J[a+24>>2]){J[c>>2]=d;J[a+20>>2]=c+4;break c}h=J[a+16>>2];e=c-h|0;g=e>>2;c=g+1|0;if(c>>>0>=1073741824){break b}f=e>>1;f=e>>>0>=2147483644?1073741823:c>>>0>>0?f:c;if(f){if(f>>>0>=1073741824){break a}c=ll(f<<2)}else{c=0}g=c+(g<<2)|0;J[g>>2]=d;if((e|0)>0){lk(c,h,e)}J[a+24>>2]=c+(f<<2);J[a+20>>2]=g+4;J[a+16>>2]=c;if(!h){break c}fl(h)}c=J[a+4>>2];d:{if((d|0)<0){break d}e=J[c+4>>2];if(J[e+12>>2]-J[e+8>>2]>>2<=(d|0)){break d}c=J[J[c+8>>2]+(J[J[c+20>>2]+(d<<2)>>2]<<2)>>2];na[J[J[c>>2]+32>>2]](c,d)|0}i=i+1|0;if((na[J[J[b>>2]+20>>2]](b)|0)>(i|0)){continue}}break}a=(d|0)!=-1}else{a=1}return a|0}La();C()}$a();C()}function Lg(a,b){var c=0,d=0;c=J[b+8>>2];J[a+4>>2]=J[b+4>>2];J[a+8>>2]=c;J[a+20>>2]=J[b+20>>2];c=J[b+16>>2];J[a+12>>2]=J[b+12>>2];J[a+16>>2]=c;a:{b:{if((a|0)!=(b|0)){c=J[b+28>>2];if(c){d=J[a+24>>2];if(J[a+32>>2]<<5>>>0>>0){if(d){fl(d);J[a+32>>2]=0;J[a+24>>2]=0;J[a+28>>2]=0;c=J[b+28>>2]}if((c|0)<0){break b}c=(c-1>>>5|0)+1|0;d=ll(c<<2);J[a+32>>2]=c;J[a+28>>2]=0;J[a+24>>2]=d;c=J[b+28>>2]}mk(d,J[b+24>>2],(c-1>>>3&536870908)+4|0);c=J[b+28>>2]}else{c=0}J[a+28>>2]=c;c=J[b+40>>2];if(c){d=J[a+36>>2];if(J[a+44>>2]<<5>>>0>>0){if(d){fl(d);J[a+44>>2]=0;J[a+36>>2]=0;J[a+40>>2]=0;c=J[b+40>>2]}if((c|0)<0){break a}c=(c-1>>>5|0)+1|0;d=ll(c<<2);J[a+44>>2]=c;J[a+40>>2]=0;J[a+36>>2]=d;c=J[b+40>>2]}mk(d,J[b+36>>2],(c-1>>>3&536870908)+4|0);b=J[b+40>>2]}else{b=0}J[a+40>>2]=b}return}La();C()}La();C()}function Uj(a){var b=0,c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0;f=ia-16|0;ia=f;d=J[a+100>>2];e=J[a+96>>2];J[f+8>>2]=0;J[f>>2]=0;J[f+4>>2]=0;b=d-e|0;g=(b|0)/12|0;a:{b:{if((d|0)==(e|0)){break b}if(g>>>0>=357913942){break a}d=ll(b);J[f>>2]=d;J[f+8>>2]=d+P(g,12);a=0;c=d;d=b-12|0;b=(d-((d>>>0)%12|0)|0)+12|0;d=nk(c,0,b);J[f+4>>2]=b+d;b=g>>>0<=1?1:g;j=b&1;if(g>>>0>=2){k=b&-2;g=0;while(1){c=P(a,12);b=c+e|0;h=J[b+4>>2];i=J[b>>2];c=d+c|0;J[c+8>>2]=J[b+8>>2];J[c>>2]=i;J[c+4>>2]=h;c=P(a|1,12);b=c+e|0;h=J[b+4>>2];i=J[b>>2];c=d+c|0;J[c+8>>2]=J[b+8>>2];J[c>>2]=i;J[c+4>>2]=h;a=a+2|0;g=g+2|0;if((k|0)!=(g|0)){continue}break}}if(!j){break b}c=e;e=P(a,12);a=c+e|0;g=J[a+4>>2];b=J[a>>2];e=d+e|0;J[e+8>>2]=J[a+8>>2];J[e>>2]=b;J[e+4>>2]=g}e=Kj(f);a=J[f>>2];if(a){J[f+4>>2]=a;fl(a)}ia=f+16|0;return e}La();C()}function sk(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0;f=ia-32|0;ia=f;d=J[a+28>>2];J[f+16>>2]=d;g=J[a+20>>2];J[f+28>>2]=c;J[f+24>>2]=b;b=g-d|0;J[f+20>>2]=b;g=b+c|0;i=2;a:{b:{b=f+16|0;d=ea(J[a+60>>2],b|0,2,f+12|0)|0;if(d){J[4842]=d;d=-1}else{d=0}c:{d:{if(d){d=b;break d}while(1){e=J[f+12>>2];if((e|0)==(g|0)){break c}if((e|0)<0){d=b;break b}h=J[b+4>>2];j=h>>>0>>0;d=(j<<3)+b|0;h=e-(j?h:0)|0;J[d>>2]=h+J[d>>2];b=(j?12:4)+b|0;J[b>>2]=J[b>>2]-h;g=g-e|0;b=d;i=i-j|0;e=ea(J[a+60>>2],b|0,i|0,f+12|0)|0;if(e){J[4842]=e;e=-1}else{e=0}if(!e){continue}break}}if((g|0)!=-1){break b}}b=J[a+44>>2];J[a+28>>2]=b;J[a+20>>2]=b;J[a+16>>2]=b+J[a+48>>2];a=c;break a}J[a+28>>2]=0;J[a+16>>2]=0;J[a+20>>2]=0;J[a>>2]=J[a>>2]|32;a=0;if((i|0)==2){break a}a=c-J[d+4>>2]|0}ia=f+32|0;return a|0}function wl(a,b){var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0;c=ia-16|0;ia=c;e=ia-16|0;ia=e;il(c);ia=e+16|0;jl(c,K[c+11|0]>>>7|0?(J[c+8>>2]&2147483647)-1|0:10);f=ia-16|0;ia=f;k=+b;if(K[c+11|0]>>>7|0){e=J[c+4>>2]}else{e=K[c+11|0]}while(1){a:{if(K[c+11|0]>>>7|0){g=J[c>>2]}else{g=c}O[f>>3]=k;j=ia-16|0;ia=j;J[j+12>>2]=f;d=ia-160|0;ia=d;h=-1;i=e+1|0;J[d+148>>2]=i?i-1|0:0;g=i?g:d+158|0;J[d+144>>2]=g;d=nk(d,0,144);J[d+76>>2]=-1;J[d+36>>2]=374;J[d+80>>2]=-1;J[d+44>>2]=d+159;J[d+84>>2]=d+144;b:{if((i|0)<0){J[4842]=61;break b}H[g|0]=0;h=Mk(d,1510,f)}ia=d+160|0;ia=j+16|0;c:{if((h|0)>=0){if(e>>>0>=h>>>0){break a}e=h;break c}e=e<<1|1}jl(c,e);continue}break}jl(c,h);e=J[c+4>>2];J[a>>2]=J[c>>2];J[a+4>>2]=e;J[a+8>>2]=J[c+8>>2];il(c);ia=f+16|0;if(K[c+11|0]>>>7|0){fl(J[c>>2])}ia=c+16|0}function ah(a){var b=0,c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0;d=J[a+112>>2];b=J[a+108>>2];c=(d-b|0)/12|0;Ab(c,J[J[a+4>>2]+44>>2]);if((b|0)!=(d|0)){e=c>>>0<=1?1:c;d=0;while(1){b=J[a+108>>2]+P(d,12)|0;Ab(J[b+4>>2]-g|0,J[J[a+4>>2]+44>>2]);Ab(J[b+4>>2]-J[b>>2]|0,J[J[a+4>>2]+44>>2]);g=J[b+4>>2];d=d+1|0;if((e|0)!=(d|0)){continue}break}d=0;ki(J[J[a+4>>2]+44>>2],c,0,0);e=J[J[a+4>>2]+44>>2];b=J[e+20>>2];if(!!J[e+16>>2]&(b|0)>=0|(b|0)>0){e=c>>>0<=1?1:c;while(1){c=J[J[a+4>>2]+44>>2];b=J[c+20>>2];if(!!J[c+16>>2]&(b|0)>=0|(b|0)>0){g=K[(J[a+108>>2]+P(d,12)|0)+8|0];c=J[c+12>>2];f=J[c+4>>2];b=f>>>3|0;h=b+J[c>>2]|0;i=K[h|0];f=f&7;j=h,k=bm(f)&i,H[j|0]=k;b=b+J[c>>2]|0;H[b|0]=K[b|0]|(g&1)<>2]=J[c+4>>2]+1}d=d+1|0;if((e|0)!=(d|0)){continue}break}}li(J[J[a+4>>2]+44>>2])}return 1}function Oe(a,b,c,d){var e=0,f=0,g=0,h=0,i=0,j=0,k=0;i=ia-16|0;ia=i;e=J[b+4>>2];a:{b:{if(!e){h=b+4|0;g=h;break b}f=J[c>>2];while(1){g=e;c=J[e+16>>2];if((c|0)>(f|0)){h=g;e=J[g>>2];if(e){continue}break b}if((c|0)>=(f|0)){f=g;b=0;break a}e=J[g+4>>2];if(e){continue}break}h=g+4|0}f=ll(32);c=J[d>>2];j=f+24|0;e=j;J[e>>2]=0;J[e+4>>2]=0;J[f+16>>2]=c;k=f+20|0;J[k>>2]=e;e=J[d+4>>2];d=d+8|0;if((e|0)!=(d|0)){while(1){c=e+16|0;Ze(i+8|0,k,j,c,c);c=J[e+4>>2];c:{if(c){while(1){e=c;c=J[e>>2];if(c){continue}break c}}while(1){c=e;e=J[e+8>>2];if((c|0)!=J[e>>2]){continue}break}}if((d|0)!=(e|0)){continue}break}}J[f+8>>2]=g;J[f>>2]=0;J[f+4>>2]=0;J[h>>2]=f;e=f;c=J[J[b>>2]>>2];if(c){J[b>>2]=c;e=J[h>>2]}Ye(J[b+4>>2],e);J[b+8>>2]=J[b+8>>2]+1;b=1}H[a+4|0]=b;J[a>>2]=f;ia=i+16|0}function zb(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0;c=ia-16|0;ia=c;Ab(J[a+8>>2]-J[a+4>>2]>>2,b);e=J[a+4>>2];if((e|0)!=J[a+8>>2]){h=c+13|0;i=c+14|0;j=c+15|0;k=c+16|0;while(1){e=J[J[J[a+32>>2]+8>>2]+(J[(g<<2)+e>>2]<<2)>>2];H[c+15|0]=J[e+56>>2];d=J[b+20>>2];a:{if(!!J[b+16>>2]&(d|0)>=0|(d|0)>0){break a}Ea(b,J[b+4>>2],c+15|0,k);d=J[b+20>>2];f=J[b+16>>2];H[c+14|0]=J[e+28>>2];if(!!f&(d|0)>=0|(d|0)>0){break a}Ea(b,J[b+4>>2],c+14|0,j);d=J[b+20>>2];f=J[b+16>>2];H[c+13|0]=K[e+24|0];if(!!f&(d|0)>=0|(d|0)>0){break a}Ea(b,J[b+4>>2],c+13|0,i);d=J[b+20>>2];f=J[b+16>>2];H[c+12|0]=K[e+32|0];if(!!f&(d|0)>=0|(d|0)>0){break a}Ea(b,J[b+4>>2],c+12|0,h)}Ab(J[e+60>>2],b);g=g+1|0;e=J[a+4>>2];if(g>>>0>2]-e>>2>>>0){continue}break}}ia=c+16|0;return 1}function Be(a,b){var c=0,d=0,e=0,f=0,g=0,h=0;f=ia-16|0;ia=f;a:{b:{c=J[a+4>>2];c:{if((c|0)!=J[a+8>>2]){J[c>>2]=J[a+12>>2];d=c+4|0;J[a+4>>2]=d;break c}h=J[a>>2];g=c-h|0;d=g>>2;c=d+1|0;if(c>>>0>=1073741824){break b}e=g>>1;e=g>>>0>=2147483644?1073741823:c>>>0>>0?e:c;if(e){if(e>>>0>=1073741824){break a}c=ll(e<<2)}else{c=0}d=c+(d<<2)|0;J[d>>2]=J[a+12>>2];d=d+4|0;if((g|0)>0){lk(c,h,g)}J[a+8>>2]=(e<<2)+c;J[a+4>>2]=d;J[a>>2]=c;if(!h){break c}fl(h);d=J[a+4>>2]}J[f+12>>2]=d-J[a>>2];c=J[b+20>>2];d:{if(!!J[b+16>>2]&(c|0)>=0|(c|0)>0){break d}Ea(b,J[b+4>>2],f+12|0,f+16|0);c=J[b+20>>2];if(!!J[b+16>>2]&(c|0)>=0|(c|0)>0){break d}c=b;d=J[b+4>>2];b=J[a>>2];Ea(c,d,b,b+J[f+12>>2]|0)}J[a+12>>2]=0;J[a+16>>2]=0;J[a+4>>2]=J[a>>2];ia=f+16|0;return}La();C()}$a();C()}function Kd(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0;e=ia-16|0;ia=e;J[e+12>>2]=c;if(!(!Kc(a,b,c)|K[J[a+8>>2]+24|0]!=3)){f=J[b+48>>2];b=ll(32);J[e>>2]=b;J[e+4>>2]=17;J[e+8>>2]=-2147483616;H[b+16|0]=K[1261];c=K[1257]|K[1258]<<8|(K[1259]<<16|K[1260]<<24);d=K[1253]|K[1254]<<8|(K[1255]<<16|K[1256]<<24);H[b+8|0]=d;H[b+9|0]=d>>>8;H[b+10|0]=d>>>16;H[b+11|0]=d>>>24;H[b+12|0]=c;H[b+13|0]=c>>>8;H[b+14|0]=c>>>16;H[b+15|0]=c>>>24;c=K[1249]|K[1250]<<8|(K[1251]<<16|K[1252]<<24);d=K[1245]|K[1246]<<8|(K[1247]<<16|K[1248]<<24);H[b|0]=d;H[b+1|0]=d>>>8;H[b+2|0]=d>>>16;H[b+3|0]=d>>>24;H[b+4|0]=c;H[b+5|0]=c>>>8;H[b+6|0]=c>>>16;H[b+7|0]=c>>>24;H[b+17|0]=0;b=Ib(f,e+12|0,e,-1);if(H[e+11|0]<0){fl(J[e>>2])}if((b|0)>0){J[a+44>>2]=b}d=(b|0)>0}ia=e+16|0;return d|0}function mk(a,b,c){var d=0,e=0;a:{if((a|0)==(b|0)){break a}e=a+c|0;if(b-e>>>0<=0-(c<<1)>>>0){return lk(a,b,c)}d=(a^b)&3;b:{c:{if(a>>>0>>0){if(d){d=a;break b}if(!(a&3)){d=a;break c}d=a;while(1){if(!c){break a}H[d|0]=K[b|0];b=b+1|0;c=c-1|0;d=d+1|0;if(d&3){continue}break}break c}d:{if(d){break d}if(e&3){while(1){if(!c){break a}c=c-1|0;d=c+a|0;H[d|0]=K[b+c|0];if(d&3){continue}break}}if(c>>>0<=3){break d}while(1){c=c-4|0;J[c+a>>2]=J[b+c>>2];if(c>>>0>3){continue}break}}if(!c){break a}while(1){c=c-1|0;H[c+a|0]=K[b+c|0];if(c){continue}break}break a}if(c>>>0<=3){break b}while(1){J[d>>2]=J[b>>2];b=b+4|0;d=d+4|0;c=c-4|0;if(c>>>0>3){continue}break}}if(!c){break a}while(1){H[d|0]=K[b|0];d=d+1|0;b=b+1|0;c=c-1|0;if(c){continue}break}}return a}function Xg(a,b,c){var d=0,e=0,f=0,g=0;a:{b=P(b,3);if((b|0)==-1){break a}b:{e=J[a+12>>2];f=J[e+12>>2];d=b<<2;c:{if(J[f+d>>2]==-1){break c}a=J[a+152>>2];e=J[e>>2];if(J[a+(J[e+d>>2]<<2)>>2]!=-1){break b}d=b+1|0;b=(d>>>0)%3|0?d:b-2|0;if((b|0)==-1){break a}d=b<<2;if(J[d+f>>2]==-1){break c}if(J[a+(J[d+e>>2]<<2)>>2]!=-1){break b}d=b+1|0;b=(d>>>0)%3|0?d:b-2|0;if((b|0)==-1){break a}d=b<<2;if(J[d+f>>2]==-1){break c}if(J[a+(J[d+e>>2]<<2)>>2]!=-1){break b}g=1;a=b+1|0;b=(a>>>0)%3|0?a:b-2|0}J[c>>2]=b;return g}while(1){d:{a=b;e:{if((b>>>0)%3|0){b=a-1|0;break e}b=a+2|0;if((b|0)==-1){break d}}b=J[(b<<2)+f>>2];if((b|0)==-1){break d}b=b+((b>>>0)%3|0?-1:2)|0;if((b|0)!=-1){continue}}break}J[c>>2]=a+((a>>>0)%3|0?-1:2);return 0}J[c>>2]=-1;return 0}function Jk(a,b,c){a:{switch(b-9|0){case 0:b=J[c>>2];J[c>>2]=b+4;J[a>>2]=J[b>>2];return;case 6:b=J[c>>2];J[c>>2]=b+4;b=I[b>>1];J[a>>2]=b;J[a+4>>2]=b>>31;return;case 7:b=J[c>>2];J[c>>2]=b+4;J[a>>2]=L[b>>1];J[a+4>>2]=0;return;case 8:b=J[c>>2];J[c>>2]=b+4;b=H[b|0];J[a>>2]=b;J[a+4>>2]=b>>31;return;case 9:b=J[c>>2];J[c>>2]=b+4;J[a>>2]=K[b|0];J[a+4>>2]=0;return;case 16:b=J[c>>2]+7&-8;J[c>>2]=b+8;O[a>>3]=O[b>>3];return;case 17:Ok(a,c);default:return;case 1:case 4:case 14:b=J[c>>2];J[c>>2]=b+4;b=J[b>>2];J[a>>2]=b;J[a+4>>2]=b>>31;return;case 2:case 5:case 11:case 15:b=J[c>>2];J[c>>2]=b+4;J[a>>2]=J[b>>2];J[a+4>>2]=0;return;case 3:case 10:case 12:case 13:break a}}b=J[c>>2]+7&-8;J[c>>2]=b+8;c=J[b+4>>2];J[a>>2]=J[b>>2];J[a+4>>2]=c}function zk(a,b,c,d,e,f){var g=0;g=ia-80|0;ia=g;a:{if((f|0)>=16384){Zk(g+32|0,b,c,d,e,0,0,0,2147352576);d=J[g+40>>2];e=J[g+44>>2];b=J[g+32>>2];c=J[g+36>>2];if(f>>>0<32767){f=f-16383|0;break a}Zk(g+16|0,b,c,d,e,0,0,0,2147352576);f=((f|0)>=49149?49149:f)-32766|0;d=J[g+24>>2];e=J[g+28>>2];b=J[g+16>>2];c=J[g+20>>2];break a}if((f|0)>-16383){break a}Zk(g- -64|0,b,c,d,e,0,0,0,7471104);d=J[g+72>>2];e=J[g+76>>2];b=J[g+64>>2];c=J[g+68>>2];if(f>>>0>4294934644){f=f+16269|0;break a}Zk(g+48|0,b,c,d,e,0,0,0,7471104);f=((f|0)<=-48920?-48920:f)+32538|0;d=J[g+56>>2];e=J[g+60>>2];b=J[g+48>>2];c=J[g+52>>2]}Zk(g,b,c,d,e,0,0,0,f+16383<<16);b=J[g+12>>2];J[a+8>>2]=J[g+8>>2];J[a+12>>2]=b;b=J[g+4>>2];J[a>>2]=J[g>>2];J[a+4>>2]=b;ia=g+80|0}function ki(a,b,c,d){var e=0,f=0,g=0,h=0,i=0,j=0;a:{e=J[a+20>>2];b:{if(!b&(c|0)<=0|(c|0)<0|(!!J[a+16>>2]&(e|0)>=0|(e|0)>0)){break b}H[a+24|0]=d;b=b+7|0;c=b>>>0<7?c+1|0:c;e=b;b=c>>>3|0;c=(c&7)<<29|e>>>3;J[a+16>>2]=c;J[a+20>>2]=b;f=J[a+4>>2];e=J[a>>2];b=f-e|0;g=c;c=b+8|0;h=d?c:b;c=g+h|0;c:{if(b>>>0>>0){g=c-b|0;d=J[a+8>>2];if(g>>>0<=d-f>>>0){i=a,j=nk(f,0,g)+g|0,J[i+4>>2]=j;break c}if((c|0)<0){break a}d=d-e|0;f=d<<1;f=d>>>0>=1073741823?2147483647:c>>>0>>0?f:c;d=ll(f);nk(d+b|0,0,g);if((b|0)>0){lk(d,e,b)}J[a+8>>2]=d+f;J[a+4>>2]=c+d;J[a>>2]=d;if(!e){break c}fl(e);break c}if(b>>>0<=c>>>0){break c}J[a+4>>2]=c+e}c=J[a>>2];b=ll(8);J[b+4>>2]=0;J[b>>2]=c+h;c=J[a+12>>2];J[a+12>>2]=b;if(!c){break b}fl(c)}return}La();C()}function Fe(a,b){var c=0,d=0,e=0,f=0;c=J[a>>2];a:{if(b){b=J[c+12>>2];d=J[c+8>>2]+1|0;b=d?b:b+1|0;J[c+8>>2]=d;J[c+12>>2]=b;b=J[a+28>>2];J[a+24>>2]=J[a+24>>2]|1<>2];d=J[c>>2]+1|0;b=d?b:b+1|0;J[c>>2]=d;J[c+4>>2]=b;b=J[a+28>>2]}b=b+1|0;J[a+28>>2]=b;b:{c:{if((b|0)==32){b=J[a+16>>2];d:{if((b|0)!=J[a+20>>2]){J[b>>2]=J[a+24>>2];J[a+16>>2]=b+4;break d}d=J[a+12>>2];c=b-d|0;f=c>>2;b=f+1|0;if(b>>>0>=1073741824){break c}e=c>>1;e=c>>>0>=2147483644?1073741823:b>>>0>>0?e:b;if(e){if(e>>>0>=1073741824){break b}b=ll(e<<2)}else{b=0}f=b+(f<<2)|0;J[f>>2]=J[a+24>>2];if((c|0)>0){lk(b,d,c)}J[a+20>>2]=b+(e<<2);J[a+16>>2]=f+4;J[a+12>>2]=b;if(!d){break d}fl(d)}J[a+24>>2]=0;J[a+28>>2]=0}return}La();C()}$a();C()}function Al(a,b,c){var d=0,e=0,f=0;d=ia+-64|0;ia=d;f=J[a>>2];e=J[f-4>>2];f=J[f-8>>2];J[d+32>>2]=0;J[d+36>>2]=0;J[d+40>>2]=0;J[d+44>>2]=0;J[d+48>>2]=0;J[d+52>>2]=0;H[d+55|0]=0;H[d+56|0]=0;H[d+57|0]=0;H[d+58|0]=0;H[d+59|0]=0;H[d+60|0]=0;H[d+61|0]=0;H[d+62|0]=0;J[d+24>>2]=0;J[d+28>>2]=0;J[d+20>>2]=0;J[d+16>>2]=b;J[d+12>>2]=a;J[d+8>>2]=c;a=a+f|0;b=0;a:{if(yl(e,c,0)){J[d+56>>2]=1;na[J[J[e>>2]+20>>2]](e,d+8|0,a,a,1,0);b=J[d+32>>2]==1?a:0;break a}na[J[J[e>>2]+24>>2]](e,d+8|0,a,1,0);b:{switch(J[d+44>>2]){case 0:b=J[d+48>>2]==1?J[d+36>>2]==1?J[d+40>>2]==1?J[d+28>>2]:0:0:0;break a;case 1:break b;default:break a}}if(J[d+32>>2]!=1){if(J[d+48>>2]|J[d+36>>2]!=1|J[d+40>>2]!=1){break a}}b=J[d+24>>2]}ia=d- -64|0;return b}function nk(a,b,c){var d=0,e=0,f=0;a:{if(!c){break a}H[a|0]=b;e=a+c|0;H[e-1|0]=b;if(c>>>0<3){break a}H[a+2|0]=b;H[a+1|0]=b;H[e-3|0]=b;H[e-2|0]=b;if(c>>>0<7){break a}H[a+3|0]=b;H[e-4|0]=b;if(c>>>0<9){break a}e=0-a&3;f=e+a|0;d=P(b&255,16843009);J[f>>2]=d;b=c-e&-4;c=b+f|0;J[c-4>>2]=d;if(b>>>0<9){break a}J[f+8>>2]=d;J[f+4>>2]=d;J[c-8>>2]=d;J[c-12>>2]=d;if(b>>>0<25){break a}J[f+24>>2]=d;J[f+20>>2]=d;J[f+16>>2]=d;J[f+12>>2]=d;J[c-16>>2]=d;J[c-20>>2]=d;J[c-24>>2]=d;J[c-28>>2]=d;c=b;b=f&4|24;c=c-b|0;if(c>>>0<32){break a}d=Zl(d,0,1,1);e=ma;b=b+f|0;while(1){J[b+24>>2]=d;J[b+28>>2]=e;J[b+16>>2]=d;J[b+20>>2]=e;J[b+8>>2]=d;J[b+12>>2]=e;J[b>>2]=d;J[b+4>>2]=e;b=b+32|0;c=c-32|0;if(c>>>0>31){continue}break}}return a}function Kb(a,b,c,d,e){var f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0;a:{g=a+16|0;f=J[g>>2];b:{if(!f){break b}i=J[b>>2];b=g;while(1){h=(i|0)>J[f+16>>2];b=h?b:f;f=J[(h?f+4|0:f)>>2];if(f){continue}break}if((b|0)==(g|0)|(i|0)>2]){break b}f=J[b+24>>2];if(!f){break b}m=b+20|0;b=K[c+11|0];g=b<<24>>24<0;i=g?J[c>>2]:c;b=g?J[c+4>>2]:b;while(1){g=K[f+27|0];h=g<<24>>24<0;g=h?J[f+20>>2]:g;k=g>>>0>>0;c:{d:{e:{f:{g:{h:{j=k?g:b;if(j){h=h?J[f+16>>2]:f+16|0;l=qk(i,h,j);if(l){break h}if(b>>>0>=g>>>0){break g}break c}if(b>>>0>=g>>>0){break f}break c}if((l|0)<0){break c}}g=qk(h,i,j);if(g){break e}}if(k){break d}break a}if((g|0)<0){break d}break a}f=f+4|0}f=J[f>>2];if(f){continue}break}}Ob(a,c,d,e);return}Ob(m,c,d,e)}function Ib(a,b,c,d){var e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0;f=a+16|0;e=J[f>>2];a:{if(!e){break a}g=J[b>>2];b=f;while(1){h=(g|0)>J[e+16>>2];b=h?b:e;e=J[(h?e+4|0:e)>>2];if(e){continue}break}if((b|0)==(f|0)|(g|0)>2]){break a}e=J[b+24>>2];if(!e){break a}g=b+20|0;b=K[c+11|0];f=b<<24>>24<0;h=f?J[c>>2]:c;b=f?J[c+4>>2]:b;while(1){f=K[e+27|0];i=f<<24>>24<0;f=i?J[e+20>>2]:f;k=f>>>0>>0;b:{c:{d:{e:{f:{g:{j=k?f:b;if(j){i=i?J[e+16>>2]:e+16|0;l=qk(h,i,j);if(l){break g}if(b>>>0>=f>>>0){break f}break b}if(b>>>0>=f>>>0){break e}break b}if((l|0)<0){break b}}f=qk(i,h,j);if(f){break d}}if(k){break c}return oi(g,c,d)}if((f|0)<0){break c}return oi(g,c,d)}e=e+4|0}e=J[e>>2];if(e){continue}break}}return oi(a,c,d)}function Ph(a){a=a|0;var b=0,c=0,d=0,e=0,f=0,g=0;b=J[a+4>>2];d=J[b>>2];a:{c=J[a+12>>2];c=J[c+56>>2]-J[c+52>>2]|0;e=c>>2;b:{if(e>>>0<=J[b+8>>2]-d>>2>>>0){break b}if((c|0)<0){break a}f=J[b+4>>2];c=ll(c);g=c+(e<<2)|0;e=f-d|0;f=e+c|0;if((e|0)>0){lk(c,d,e)}J[b+8>>2]=g;J[b+4>>2]=f;J[b>>2]=c;if(!d){break b}fl(d)}e=a+8|0;b=J[a+76>>2];c:{if(b){d=J[b>>2];if((d|0)==J[b+4>>2]){return 1}b=0;while(1){c=Qh(e,J[(b<<2)+d>>2]);if(!c){break c}f=J[a+76>>2];d=J[f>>2];b=b+1|0;if(b>>>0>2]-d>>2>>>0){continue}break}break c}c=1;a=J[J[a+12>>2]+64>>2];a=J[a+4>>2]-J[a>>2]|0;if(a>>>0<12){break c}a=(a>>2>>>0)/3|0;b=0;while(1){c=Qh(e,P(b,3));if(!c){break c}b=b+1|0;if((a|0)!=(b|0)){continue}break}}return c|0}La();C()}function Lb(a,b,c){var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0;e=a+16|0;d=J[e>>2];a:{if(!d){break a}f=J[b>>2];b=e;while(1){g=(f|0)>J[d+16>>2];b=g?b:d;d=J[(g?d+4|0:d)>>2];if(d){continue}break}if((b|0)==(e|0)|(f|0)>2]){break a}d=J[b+24>>2];if(!d){break a}f=b+20|0;b=K[c+11|0];e=b<<24>>24<0;g=e?J[c>>2]:c;b=e?J[c+4>>2]:b;while(1){e=K[d+27|0];h=e<<24>>24<0;e=h?J[d+20>>2]:e;j=e>>>0>>0;b:{c:{d:{e:{f:{g:{i=j?e:b;if(i){h=h?J[d+16>>2]:d+16|0;k=qk(g,h,i);if(k){break g}if(b>>>0>=e>>>0){break f}break b}if(b>>>0>=e>>>0){break e}break b}if((k|0)<0){break b}}e=qk(h,g,i);if(e){break d}}if(j){break c}return pi(f,c)}if((e|0)<0){break c}return pi(f,c)}d=d+4|0}d=J[d>>2];if(d){continue}break}}return pi(a,c)}function Vj(a,b,c){var d=0,e=0,f=0,g=0;Ab(J[c+8>>2],b);e=J[c>>2];g=c+4|0;if((e|0)!=(g|0)){while(1){if(!Wj(b,e+16|0)){return}d=J[e+32>>2]-J[e+28>>2]|0;Ab(d,b);f=J[b+20>>2];if(!J[b+16>>2]&(f|0)<=0|(f|0)<0){f=J[e+28>>2];Ea(b,J[b+4>>2],f,d+f|0)}f=J[e+4>>2];a:{if(f){while(1){d=f;f=J[d>>2];if(f){continue}break a}}while(1){d=J[e+8>>2];f=J[d>>2]!=(e|0);e=d;if(f){continue}break}}e=d;if((d|0)!=(g|0)){continue}break}}Ab(J[c+20>>2],b);d=J[c+12>>2];c=c+16|0;if((d|0)==(c|0)){return}while(1){if(!Wj(b,d+16|0)){return}Vj(a,b,J[d+28>>2]);f=d;e=J[d+4>>2];b:{if(e){while(1){d=e;e=J[d>>2];if(e){continue}break b}}while(1){d=J[f+8>>2];e=J[d>>2]!=(f|0);f=d;if(e){continue}break}}if((c|0)!=(d|0)){continue}break}}function Jh(a){a=a|0;var b=0,c=0,d=0,e=0,f=0,g=0;b=J[a+4>>2];d=J[b>>2];a:{c=J[a+12>>2];c=J[c+28>>2]-J[c+24>>2]|0;e=c>>2;b:{if(e>>>0<=J[b+8>>2]-d>>2>>>0){break b}if((c|0)<0){break a}f=J[b+4>>2];c=ll(c);g=c+(e<<2)|0;e=f-d|0;f=e+c|0;if((e|0)>0){lk(c,d,e)}J[b+8>>2]=g;J[b+4>>2]=f;J[b>>2]=c;if(!d){break b}fl(d)}e=a+8|0;b=J[a+76>>2];c:{if(b){d=J[b>>2];if((d|0)==J[b+4>>2]){return 1}b=0;while(1){c=Kh(e,J[(b<<2)+d>>2]);if(!c){break c}f=J[a+76>>2];d=J[f>>2];b=b+1|0;if(b>>>0>2]-d>>2>>>0){continue}break}break c}c=1;a=J[a+12>>2];a=J[a+4>>2]-J[a>>2]|0;if(a>>>0<12){break c}a=(a>>2>>>0)/3|0;b=0;while(1){c=Kh(e,P(b,3));if(!c){break c}b=b+1|0;if((a|0)!=(b|0)){continue}break}}return c|0}La();C()}function xb(a,b){var c=0,d=0,e=0,f=0,g=0,h=0;h=ia-16|0;ia=h;a:{b:{c=J[a+8>>2];c:{if((c|0)!=J[a+12>>2]){J[c>>2]=b;J[a+8>>2]=c+4;break c}e=J[a+4>>2];d=c-e|0;g=d>>2;c=g+1|0;if(c>>>0>=1073741824){break b}f=d>>1;f=d>>>0>=2147483644?1073741823:c>>>0>>0?f:c;if(f){if(f>>>0>=1073741824){break a}c=ll(f<<2)}else{c=0}g=c+(g<<2)|0;J[g>>2]=b;if((d|0)>0){lk(c,e,d)}J[a+12>>2]=c+(f<<2);J[a+8>>2]=g+4;J[a+4>>2]=c;if(!e){break c}fl(e)}c=J[a+16>>2];d=J[a+20>>2]-c>>2;d:{if((d|0)>(b|0)){break d}J[h+12>>2]=-1;e=b+1|0;if(e>>>0>d>>>0){ub(a+16|0,e-d|0,h+12|0);c=J[a+16>>2];break d}if(d>>>0<=e>>>0){break d}J[a+20>>2]=(e<<2)+c}J[(b<<2)+c>>2]=(J[a+8>>2]-J[a+4>>2]>>2)-1;ia=h+16|0;return}La();C()}$a();C()}function Pc(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0,g=0,h=0,i=0;f=J[b+4>>2]-J[b>>2]>>2;g=J[a+8>>2];i=K[g+24|0];d=i;h=ia+-64|0;ia=h;e=bb(h);d=P(d,J[3712]);cb(e,J[J[a+8>>2]+56>>2],0,i,5,d,d>>31);e=eb(ll(96),e);gb(e,f);d=J[a+32>>2];J[a+32>>2]=e;if(d){Mb(d)}a:{if(!c){break a}d=J[a+32>>2];H[d+84|0]=0;e=J[d+68>>2];f=J[d+72>>2]-e>>2;if(f>>>0>>0){ub(d+68|0,c-f|0,2744);break a}if(c>>>0>=f>>>0){break a}J[d+72>>2]=e+(c<<2)}ia=h- -64|0;c=J[b>>2];d=J[b+4>>2];if((c|0)==(d|0)){return 1}a=J[a+32>>2];h=J[J[a>>2]>>2]+J[a+48>>2]|0;b=0;while(1){a=J[c>>2];if(!K[g+84|0]){a=J[J[g+68>>2]+(a<<2)>>2]}a=Nb(g,a,H[g+24|0],h+(b<<2)|0);if(a){b=b+i|0;c=c+4|0;if((d|0)!=(c|0)){continue}}break}return a|0}function $d(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0;d=ia-48|0;ia=d;J[d+40>>2]=J[a- -64>>2];c=J[b+20>>2];if(!J[b+16>>2]&(c|0)<=0|(c|0)<0){Ea(b,J[b+4>>2],d+40|0,d+44|0)}c=d+8|0;J[c>>2]=0;J[c+4>>2]=0;J[c+24>>2]=0;J[c+28>>2]=0;J[c+16>>2]=0;J[c+20>>2]=0;J[c+8>>2]=0;J[c+12>>2]=0;Ee(c);if(J[d+40>>2]>0){f=1;while(1){g=f;f=J[J[a+60>>2]+(e>>>3&536870908)>>2]>>>e|0;Fe(c,(g^f^-1)&1);f=f&1;e=e+1|0;if((e|0)>2]){continue}break}}Ge(c,b);J[d+44>>2]=J[a+12>>2];e=J[b+20>>2];a:{if(!!J[b+16>>2]&(e|0)>=0|(e|0)>0){break a}f=d+48|0;Ea(b,J[b+4>>2],d+44|0,f);e=J[b+20>>2];g=J[b+16>>2];J[d+44>>2]=J[a+24>>2];if(!!g&(e|0)>=0|(e|0)>0){break a}Ea(b,J[b+4>>2],d+44|0,f)}Ce(c);ia=d+48|0;return 1}function jd(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0;d=ia-48|0;ia=d;J[d+40>>2]=J[a+80>>2];c=J[b+20>>2];if(!J[b+16>>2]&(c|0)<=0|(c|0)<0){Ea(b,J[b+4>>2],d+40|0,d+44|0)}c=d+8|0;J[c>>2]=0;J[c+4>>2]=0;J[c+24>>2]=0;J[c+28>>2]=0;J[c+16>>2]=0;J[c+20>>2]=0;J[c+8>>2]=0;J[c+12>>2]=0;Ee(c);if(J[d+40>>2]>0){f=1;while(1){g=f;f=J[J[a+76>>2]+(e>>>3&536870908)>>2]>>>e|0;Fe(c,(g^f^-1)&1);f=f&1;e=e+1|0;if((e|0)>2]){continue}break}}Ge(c,b);J[d+44>>2]=J[a+12>>2];e=J[b+20>>2];a:{if(!!J[b+16>>2]&(e|0)>=0|(e|0)>0){break a}f=d+48|0;Ea(b,J[b+4>>2],d+44|0,f);e=J[b+20>>2];g=J[b+16>>2];J[d+44>>2]=J[a+16>>2];if(!!g&(e|0)>=0|(e|0)>0){break a}Ea(b,J[b+4>>2],d+44|0,f)}Ce(c);ia=d+48|0;return 1}function Pg(a,b){var c=0,d=0,e=0,f=0,g=0;a:{b:{c:{d=J[a>>2];g=J[a+4>>2]-d>>2;e=g+1|0;if(e>>>0<1073741824){d=J[a+8>>2]-d|0;f=d>>1;d=d>>>0>=2147483644?1073741823:e>>>0>>0?f:e;if(d){if(d>>>0>=1073741824){break c}c=ll(d<<2)}f=J[b>>2];J[b>>2]=0;e=(g<<2)+c|0;J[e>>2]=f;d=(d<<2)+c|0;g=e+4|0;b=J[a>>2];c=J[a+4>>2];if((b|0)==(c|0)){break b}while(1){c=c-4|0;f=J[c>>2];J[c>>2]=0;e=e-4|0;J[e>>2]=f;if((b|0)!=(c|0)){continue}break}J[a+8>>2]=d;c=J[a+4>>2];J[a+4>>2]=g;b=J[a>>2];J[a>>2]=e;if((b|0)==(c|0)){break a}while(1){c=c-4|0;a=J[c>>2];J[c>>2]=0;if(a){na[J[J[a>>2]+4>>2]](a)}if((b|0)!=(c|0)){continue}break}break a}La();C()}$a();C()}J[a+8>>2]=d;J[a+4>>2]=g;J[a>>2]=e}if(b){fl(b)}}function Kg(a,b,c){var d=0,e=0,f=0,g=0;f=ia-16|0;ia=f;J[a+4>>2]=0;a:{b:{if(!b){break b}d=J[a+8>>2];e=d<<5;c:{if(e>>>0>=b>>>0){J[a+4>>2]=b;break c}J[f+8>>2]=0;J[f>>2]=0;J[f+4>>2]=0;if((b|0)<0){break a}if(e>>>0<=1073741822){d=d<<6;e=b+31&-32;d=d>>>0>e>>>0?d:e}else{d=2147483647}Ic(f,d);d=J[a>>2];J[a>>2]=J[f>>2];J[f>>2]=d;e=J[a+4>>2];J[a+4>>2]=b;J[f+4>>2]=e;e=J[a+8>>2];J[a+8>>2]=J[f+8>>2];J[f+8>>2]=e;if(!d){break c}fl(d)}g=b&-32;d=b>>>5|0;e=d<<2;a=J[a>>2];if(K[c|0]){a=nk(a,255,e);if((b|0)==(g|0)){break b}a=a+(d<<2)|0;J[a>>2]=J[a>>2]|-1>>>32-(b&31);break b}a=nk(a,0,e);if((b|0)==(g|0)){break b}a=a+(d<<2)|0;J[a>>2]=J[a>>2]&(-1>>>32-(b&31)^-1)}ia=f+16|0;return}La();C()}function Pa(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0;J[b>>2]=1;f=b+8|0;c=J[b+8>>2];d=J[b+12>>2]-c|0;if(d>>>0<=4294967291){ii(f,d+4|0);c=J[f>>2]}c=c+d|0;d=J[a+4>>2];H[c|0]=d;H[c+1|0]=d>>>8;H[c+2|0]=d>>>16;H[c+3|0]=d>>>24;c=J[a+8>>2];if((c|0)!=J[a+12>>2]){d=0;while(1){g=(d<<2)+c|0;c=J[b+8>>2];e=J[b+12>>2]-c|0;if(e>>>0<=4294967291){ii(f,e+4|0);c=J[f>>2]}c=c+e|0;e=J[g>>2];H[c|0]=e;H[c+1|0]=e>>>8;H[c+2|0]=e>>>16;H[c+3|0]=e>>>24;d=d+1|0;c=J[a+8>>2];if(d>>>0>2]-c>>2>>>0){continue}break}}c=J[b+12>>2];b=J[b+8>>2];c=c-b|0;if(c>>>0<=4294967291){ii(f,c+4|0);b=J[f>>2]}b=b+c|0;a=J[a+20>>2];H[b|0]=a;H[b+1|0]=a>>>8;H[b+2|0]=a>>>16;H[b+3|0]=a>>>24}function dd(a,b,c){var d=0,e=0,f=0,g=0,h=0,i=0;f=c-b|0;g=f>>2;d=J[a+8>>2];e=J[a>>2];if(g>>>0<=d-e>>2>>>0){f=J[a+4>>2]-e|0;d=f+b|0;h=f>>2;f=h>>>0>>0?d:c;i=f-b|0;if((b|0)!=(f|0)){mk(e,b,i)}if(g>>>0>h>>>0){b=J[a+4>>2];if((c|0)!=(f|0)){while(1){J[b>>2]=J[d>>2];b=b+4|0;d=d+4|0;if((d|0)!=(c|0)){continue}break}}J[a+4>>2]=b;return}J[a+4>>2]=e+i;return}if(e){J[a+4>>2]=e;fl(e);J[a+8>>2]=0;J[a>>2]=0;J[a+4>>2]=0;d=0}a:{if((f|0)<0){break a}e=d>>1;d=d>>>0>=2147483644?1073741823:e>>>0>g>>>0?e:g;if(d>>>0>=1073741824){break a}e=d<<2;d=ll(e);J[a>>2]=d;J[a+8>>2]=d+e;if((b|0)!=(c|0)){c=b;b=(f-4&-4)+4|0;d=lk(d,c,b)+b|0}J[a+4>>2]=d;return}La();C()}function Re(a,b,c){var d=0,e=0,f=0;d=ia-16|0;ia=d;J[d+12>>2]=b;b=ll(32);J[d>>2]=b;J[d+4>>2]=17;J[d+8>>2]=-2147483616;H[b+16|0]=K[1261];e=K[1257]|K[1258]<<8|(K[1259]<<16|K[1260]<<24);f=K[1253]|K[1254]<<8|(K[1255]<<16|K[1256]<<24);H[b+8|0]=f;H[b+9|0]=f>>>8;H[b+10|0]=f>>>16;H[b+11|0]=f>>>24;H[b+12|0]=e;H[b+13|0]=e>>>8;H[b+14|0]=e>>>16;H[b+15|0]=e>>>24;e=K[1249]|K[1250]<<8|(K[1251]<<16|K[1252]<<24);f=K[1245]|K[1246]<<8|(K[1247]<<16|K[1248]<<24);H[b|0]=f;H[b+1|0]=f>>>8;H[b+2|0]=f>>>16;H[b+3|0]=f>>>24;H[b+4|0]=e;H[b+5|0]=e>>>8;H[b+6|0]=e>>>16;H[b+7|0]=e>>>24;H[b+17|0]=0;Se(a+4|0,d+12|0,d,c);if(H[d+11|0]<0){fl(J[d>>2])}ia=d+16|0}function uf(a,b,c,d){var e=0,f=0,g=0,h=0,i=0,j=0,k=0;a:{b:{if((a|0)==(b|0)){break b}J[c>>2]=J[a>>2];e=a+4|0;if((e|0)==(b|0)){break b}a=J[d>>2];g=J[a>>2];i=J[a+4>>2]-g>>3;a=c;while(1){d=J[e>>2];if(d>>>0>=i>>>0){break a}f=J[a>>2];if(f>>>0>=i>>>0){break a}j=a+4|0;c:{if(M[(d<<3)+g>>2]>2]){J[a+4>>2]=f;h=c;d:{if((a|0)==(c|0)){break d}while(1){k=J[e>>2];if(k>>>0>=i>>>0){break a}f=a-4|0;d=J[f>>2];if(d>>>0>=i>>>0){break a}h=a;if(M[(k<<3)+g>>2]>=M[(d<<3)+g>>2]){break d}J[a>>2]=d;a=f;if((c|0)!=(a|0)){continue}break}h=c}J[h>>2]=J[e>>2];break c}J[j>>2]=d}a=j;e=e+4|0;if((e|0)!=(b|0)){continue}break}}return}Zc();C()}function Mk(a,b,c){var d=0,e=0,f=0,g=0;d=ia-208|0;ia=d;J[d+204>>2]=c;c=d+160|0;nk(c,0,40);J[d+200>>2]=J[d+204>>2];a:{if((Gk(0,b,d+200|0,d+80|0,c)|0)<0){a=-1;break a}g=J[a+76>>2]>=0;e=J[a>>2];if(J[a+72>>2]<=0){J[a>>2]=e&-33}b:{c:{d:{if(!J[a+48>>2]){J[a+48>>2]=80;J[a+28>>2]=0;J[a+16>>2]=0;J[a+20>>2]=0;f=J[a+44>>2];J[a+44>>2]=d;break d}if(J[a+16>>2]){break c}}c=-1;if(Dk(a)){break b}}c=Gk(a,b,d+200|0,d+80|0,d+160|0)}b=c;if(f){na[J[a+36>>2]](a,0,0)|0;J[a+48>>2]=0;J[a+44>>2]=f;J[a+28>>2]=0;c=J[a+20>>2];J[a+16>>2]=0;J[a+20>>2]=0;b=c?b:-1}c=a;a=J[a>>2];J[c>>2]=a|e&32;a=a&32?-1:b;if(!g){break a}}ia=d+208|0;return a}function Mg(a,b,c){var d=0,e=0,f=0,g=0,h=0;f=c-b|0;g=f>>2;d=J[a+8>>2];e=J[a>>2];if(g>>>0<=d-e>>2>>>0){d=J[a+4>>2];f=d-e|0;h=f>>2;f=g>>>0>h>>>0?b+f|0:c;if((f|0)!=(b|0)){while(1){J[e>>2]=J[b>>2];e=e+4|0;b=b+4|0;if((f|0)!=(b|0)){continue}break}}if(g>>>0>h>>>0){b=c-f|0;if((b|0)>0){d=lk(d,f,b)+b|0}J[a+4>>2]=d;return}J[a+4>>2]=e;return}if(e){J[a+4>>2]=e;fl(e);J[a+8>>2]=0;J[a>>2]=0;J[a+4>>2]=0;d=0}a:{if((f|0)<0){break a}e=d>>1;d=d>>>0>=2147483644?1073741823:e>>>0>g>>>0?e:g;if(d>>>0>=1073741824){break a}e=d<<2;d=ll(e);J[a>>2]=d;J[a+4>>2]=d;J[a+8>>2]=d+e;if((b|0)!=(c|0)){d=lk(d,b,f)+f|0}J[a+4>>2]=d;return}La();C()}function re(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,l=0,m=0;f=ia-32|0;ia=f;d=d-e|0;if((d|0)>0){i=a+8|0;k=0-e<<2;while(1){j=d<<2;g=j+b|0;h=g+k|0;l=J[h>>2];h=J[h+4>>2];m=J[g+4>>2];J[f+16>>2]=J[g>>2];J[f+20>>2]=m;J[f+8>>2]=l;J[f+12>>2]=h;Sd(f+24|0,i,f+16|0,f+8|0);g=c+j|0;J[g>>2]=J[f+24>>2];J[g+4>>2]=J[f+28>>2];d=d-e|0;if((d|0)>0){continue}break}}d=e>>>0>1073741823?-1:e<<2;d=nk(ll(d),0,d);e=J[d>>2];g=J[d+4>>2];i=J[b+4>>2];J[f+16>>2]=J[b>>2];J[f+20>>2]=i;J[f+8>>2]=e;J[f+12>>2]=g;Sd(f+24|0,a+8|0,f+16|0,f+8|0);J[c>>2]=J[f+24>>2];J[c+4>>2]=J[f+28>>2];fl(d);ia=f+32|0;return 1}function ne(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0;g=ia-32|0;ia=g;J[a+48>>2]=f;i=1;a:{d=J[a+40>>2];d=J[d+4>>2]-J[d>>2]|0;b:{if((d|0)<=0){break b}l=a+44|0;m=a+8|0;f=d>>>2|0;while(1){d=J[a+40>>2];i=J[d>>2];h=J[d+4>>2]-i>>2;d=f-1|0;if(h>>>0<=d>>>0){break a}i=Ed(l,J[i+(d<<2)>>2],b,d);if(!i){break b}h=J[a+52>>2];n=J[a+56>>2];j=P(d,e)<<2;k=j+b|0;o=J[k+4>>2];J[g+16>>2]=J[k>>2];J[g+20>>2]=o;J[g+8>>2]=h;J[g+12>>2]=n;Sd(g+24|0,m,g+16|0,g+8|0);h=c+j|0;J[h>>2]=J[g+24>>2];J[h+4>>2]=J[g+28>>2];h=f>>>0>1;f=d;if(h){continue}break}}ia=g+32|0;return i|0}Zc();C()}function ae(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0;g=ia-32|0;ia=g;J[a+48>>2]=f;i=1;a:{d=J[a+40>>2];d=J[d+4>>2]-J[d>>2]|0;b:{if((d|0)<=0){break b}l=a+44|0;m=a+8|0;f=d>>>2|0;while(1){d=J[a+40>>2];i=J[d>>2];h=J[d+4>>2]-i>>2;d=f-1|0;if(h>>>0<=d>>>0){break a}i=ld(l,J[i+(d<<2)>>2],b,d);if(!i){break b}h=J[a+52>>2];n=J[a+56>>2];j=P(d,e)<<2;k=j+b|0;o=J[k+4>>2];J[g+16>>2]=J[k>>2];J[g+20>>2]=o;J[g+8>>2]=h;J[g+12>>2]=n;Sd(g+24|0,m,g+16|0,g+8|0);h=c+j|0;J[h>>2]=J[g+24>>2];J[h+4>>2]=J[g+28>>2];h=f>>>0>1;f=d;if(h){continue}break}}ia=g+32|0;return i|0}Zc();C()}function Mj(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0,g=0;hk(a,b,c);e=J[a+96>>2];a=J[a+100>>2];a:{if((e|0)==(a|0)){break a}d=(a-e|0)/12|0;f=d>>>0<=1?1:d;g=f&1;a=J[b>>2];c=0;if(d>>>0>=2){f=f&-2;d=0;while(1){b=P(c,12)+e|0;J[b>>2]=J[a+(J[b>>2]<<2)>>2];J[b+4>>2]=J[a+(J[b+4>>2]<<2)>>2];J[b+8>>2]=J[a+(J[b+8>>2]<<2)>>2];b=P(c|1,12)+e|0;J[b>>2]=J[a+(J[b>>2]<<2)>>2];J[b+4>>2]=J[a+(J[b+4>>2]<<2)>>2];J[b+8>>2]=J[a+(J[b+8>>2]<<2)>>2];c=c+2|0;d=d+2|0;if((f|0)!=(d|0)){continue}break}}if(!g){break a}b=P(c,12)+e|0;J[b>>2]=J[a+(J[b>>2]<<2)>>2];J[b+4>>2]=J[a+(J[b+4>>2]<<2)>>2];J[b+8>>2]=J[a+(J[b+8>>2]<<2)>>2]}}function cj(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0;a=ia-16|0;ia=a;a:{if(!b){break a}J[a+8>>2]=0;J[a>>2]=0;J[a+4>>2]=0;h=b+96|0;g=J[b+96>>2];e=(J[b+100>>2]-g|0)/12|0;b:{if(e>>>0>>0){Ij(h,c-e|0,a);break b}if(c>>>0>>0){J[b+100>>2]=g+P(c,12)}if(!c){break a}}g=J[h>>2];e=0;while(1){i=P(e,12);f=i+d|0;j=J[f>>2];k=J[f+8>>2];l=J[f+4>>2];f=(J[b+100>>2]-g|0)/12|0;c:{if(f>>>0>e>>>0){e=e+1|0;break c}J[a+8>>2]=0;J[a>>2]=0;J[a+4>>2]=0;e=e+1|0;Ij(h,e-f|0,a);g=J[h>>2]}f=g+i|0;J[f+8>>2]=k;J[f+4>>2]=l;J[f>>2]=j;if((c|0)!=(e|0)){continue}break}}ia=a+16|0;return(b|0)!=0|0}function Ue(a,b){var c=0,d=0,e=0,f=0;f=ia-16|0;ia=f;c=ll(16);J[f>>2]=c;J[f+4>>2]=15;J[f+8>>2]=-2147483632;d=K[1587]|K[1588]<<8|(K[1589]<<16|K[1590]<<24);e=K[1583]|K[1584]<<8|(K[1585]<<16|K[1586]<<24);H[c+7|0]=e;H[c+8|0]=e>>>8;H[c+9|0]=e>>>16;H[c+10|0]=e>>>24;H[c+11|0]=d;H[c+12|0]=d>>>8;H[c+13|0]=d>>>16;H[c+14|0]=d>>>24;d=K[1580]|K[1581]<<8|(K[1582]<<16|K[1583]<<24);e=K[1576]|K[1577]<<8|(K[1578]<<16|K[1579]<<24);H[c|0]=e;H[c+1|0]=e>>>8;H[c+2|0]=e>>>16;H[c+3|0]=e>>>24;H[c+4|0]=d;H[c+5|0]=d>>>8;H[c+6|0]=d>>>16;H[c+7|0]=d>>>24;H[c+15|0]=0;mi(a+4|0,f,b);if(H[f+11|0]<0){fl(J[f>>2])}ia=f+16|0}function Sk(a,b,c,d,e,f,g,h){var i=0,j=0,k=0,l=0;i=1;j=d&2147483647;l=j;k=(j|0)==2147418112;a:{if(k&!c?a|b:k&(c|0)!=0|j>>>0>2147418112){break a}j=h&2147483647;k=(j|0)==2147418112;if(k&!g?e|f:k&(g|0)!=0|j>>>0>2147418112){break a}if(!(a|e|(c|g)|(b|f|(j|l)))){return 0}i=d&h;if((i|0)>0|(i|0)>=0){i=-1;if((c|0)==(g|0)&(d|0)==(h|0)?(b|0)==(f|0)&a>>>0>>0|b>>>0>>0:c>>>0>>0&(d|0)<=(h|0)|(d|0)<(h|0)){break a}return(a^e|c^g|(b^f|d^h))!=0}i=-1;if((c|0)==(g|0)&(d|0)==(h|0)?(b|0)==(f|0)&a>>>0>e>>>0|b>>>0>f>>>0:c>>>0>g>>>0&(d|0)>=(h|0)|(d|0)>(h|0)){break a}i=(a^e|c^g|(b^f|d^h))!=0}return i}function rl(a,b,c,d,e,f,g,h){var i=0,j=0,k=0,l=0;j=ia-16|0;ia=j;i=-17;if((b^-1)-17>>>0>=c>>>0){if(K[a+11|0]>>>7|0){k=J[a>>2]}else{k=a}if(b>>>0<2147483623){J[j+8>>2]=b<<1;J[j+12>>2]=b+c;c=ia-16|0;ia=c;ia=c+16|0;c=j+8|0;i=j+12|0;c=J[(M[i>>2]>2]?c:i)>>2];if(c>>>0>=11){i=c+16&-16;c=i-1|0;c=(c|0)==11?i:c}else{c=10}i=c+1|0}c=ll(i);if(e){hl(c,k,e)}if(g){hl(c+e|0,h,g)}l=e+f|0;h=d-l|0;if((d|0)!=(l|0)){hl((c+e|0)+g|0,(e+k|0)+f|0,h)}if((b|0)!=10){fl(k)}J[a>>2]=c;J[a+8>>2]=i|-2147483648;b=a;a=h+(e+g|0)|0;J[b+4>>2]=a;H[j+7|0]=0;H[a+c|0]=K[j+7|0];ia=j+16|0;return}ze();C()}function eb(a,b){var c=0;c=J[b+4>>2];J[a>>2]=J[b>>2];J[a+4>>2]=c;c=J[b+60>>2];J[a+56>>2]=J[b+56>>2];J[a+60>>2]=c;c=J[b+52>>2];J[a+48>>2]=J[b+48>>2];J[a+52>>2]=c;c=J[b+44>>2];J[a+40>>2]=J[b+40>>2];J[a+44>>2]=c;c=J[b+36>>2];J[a+32>>2]=J[b+32>>2];J[a+36>>2]=c;c=J[b+28>>2];J[a+24>>2]=J[b+24>>2];J[a+28>>2]=c;c=J[b+20>>2];J[a+16>>2]=J[b+16>>2];J[a+20>>2]=c;c=J[b+12>>2];J[a+8>>2]=J[b+8>>2];J[a+12>>2]=c;J[a+88>>2]=0;J[a+64>>2]=0;J[a+68>>2]=0;J[a+72>>2]=0;J[a+76>>2]=0;H[a+77|0]=0;H[a+78|0]=0;H[a+79|0]=0;H[a+80|0]=0;H[a+81|0]=0;H[a+82|0]=0;H[a+83|0]=0;H[a+84|0]=0;return a}function Ta(a,b,c){var d=0,e=0,f=0,g=0,h=0;g=c-b|0;f=g>>2;e=J[a+8>>2];d=J[a>>2];if(f>>>0<=e-d>>2>>>0){e=J[a+4>>2]-d|0;g=e>>2;e=g>>>0>>0?b+e|0:c;h=e-b|0;if((b|0)!=(e|0)){mk(d,b,h)}if(g>>>0>>0){b=J[a+4>>2];c=c-e|0;if((c|0)>0){b=lk(b,e,c)+c|0}J[a+4>>2]=b;return}J[a+4>>2]=d+h;return}if(d){J[a+4>>2]=d;fl(d);J[a+8>>2]=0;J[a>>2]=0;J[a+4>>2]=0;e=0}a:{if((g|0)<0){break a}d=e>>1;d=e>>>0>=2147483644?1073741823:d>>>0>f>>>0?d:f;if(d>>>0>=1073741824){break a}f=d<<2;d=ll(f);J[a>>2]=d;J[a+4>>2]=d;J[a+8>>2]=d+f;if((b|0)!=(c|0)){d=lk(d,b,g)+g|0}J[a+4>>2]=d;return}La();C()}function ec(a,b){var c=0,d=0,e=0,f=0,g=0,h=0,i=0;f=a+4|0;a=J[a+4>>2];a:{b:{if(!a){break b}d=K[b+11|0];c=d<<24>>24<0;g=c?J[b>>2]:b;d=c?J[b+4>>2]:d;b=f;while(1){e=K[a+27|0];c=e<<24>>24<0;e=c?J[a+20>>2]:e;h=e>>>0>d>>>0;i=h?d:e;c:{if(i){c=qk(c?J[a+16>>2]:a+16|0,g,i);if(c){break c}}c=d>>>0>e>>>0?-1:h}c=(c|0)<0;b=c?b:a;a=J[(c?a+4|0:a)>>2];if(a){continue}break}if((b|0)==(f|0)){break b}c=K[b+27|0];a=c<<24>>24<0;d:{c=a?J[b+20>>2]:c;e=c>>>0>>0?c:d;if(e){a=qk(g,a?J[b+16>>2]:b+16|0,e);if(a){break d}}if(c>>>0>d>>>0){break b}break a}if((a|0)>=0){break a}}b=f}return b}function Xb(a){var b=0,c=0,d=0,e=0;c=J[a+152>>2];if(c){d=c;b=J[a+156>>2];if((c|0)!=(b|0)){while(1){d=b-12|0;e=J[d>>2];if(e){J[b-8>>2]=e;fl(e)}b=d;if((c|0)!=(b|0)){continue}break}d=J[a+152>>2]}J[a+156>>2]=c;fl(d)}c=J[a+140>>2];if(c){d=c;b=J[a+144>>2];if((c|0)!=(b|0)){while(1){d=b-12|0;e=J[d>>2];if(e){J[b-8>>2]=e;fl(e)}b=d;if((c|0)!=(b|0)){continue}break}d=J[a+140>>2]}J[a+144>>2]=c;fl(d)}b=J[a+128>>2];if(b){J[a+132>>2]=b;fl(b)}b=J[a+116>>2];if(b){J[a+120>>2]=b;fl(b)}b=J[a+104>>2];if(b){J[a+108>>2]=b;fl(b)}Ae(a+84|0);Ae(a- -64|0);Ae(a+44|0);Ce(a+12|0)}function gc(a,b){var c=0,d=0,e=0,f=0;c=J[a+16>>2];if(b){J[a+12>>2]=J[a+12>>2]|-2147483648>>>c}b=c+1|0;J[a+16>>2]=b;a:{b:{if((b|0)==32){b=J[a+4>>2];c:{if((b|0)!=J[a+8>>2]){J[b>>2]=J[a+12>>2];J[a+4>>2]=b+4;break c}f=J[a>>2];c=b-f|0;e=c>>2;b=e+1|0;if(b>>>0>=1073741824){break b}d=c>>1;d=c>>>0>=2147483644?1073741823:b>>>0>>0?d:b;if(d){if(d>>>0>=1073741824){break a}b=ll(d<<2)}else{b=0}e=b+(e<<2)|0;J[e>>2]=J[a+12>>2];if((c|0)>0){lk(b,f,c)}J[a+8>>2]=b+(d<<2);J[a+4>>2]=e+4;J[a>>2]=b;if(!f){break c}fl(f)}J[a+12>>2]=0;J[a+16>>2]=0}return}La();C()}$a();C()}function Fl(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;if(yl(a,J[b+8>>2],e)){if(!(J[b+28>>2]==1|J[b+4>>2]!=(c|0))){J[b+28>>2]=d}return}a:{if(yl(a,J[b>>2],e)){if(!(J[b+16>>2]!=(c|0)&J[b+20>>2]!=(c|0))){if((d|0)!=1){break a}J[b+32>>2]=1;return}J[b+32>>2]=d;b:{if(J[b+44>>2]==4){break b}I[b+52>>1]=0;a=J[a+8>>2];na[J[J[a>>2]+20>>2]](a,b,c,c,1,e);if(K[b+53|0]){J[b+44>>2]=3;if(!K[b+52|0]){break b}break a}J[b+44>>2]=4}J[b+20>>2]=c;J[b+40>>2]=J[b+40>>2]+1;if(J[b+36>>2]!=1|J[b+24>>2]!=2){break a}H[b+54|0]=1;return}a=J[a+8>>2];na[J[J[a>>2]+24>>2]](a,b,c,d,e)}}function _b(a){var b=0,c=0,d=0,e=0;c=J[a+140>>2];if(c){d=c;b=J[a+144>>2];if((c|0)!=(b|0)){while(1){d=b-12|0;e=J[d>>2];if(e){J[b-8>>2]=e;fl(e)}b=d;if((c|0)!=(b|0)){continue}break}d=J[a+140>>2]}J[a+144>>2]=c;fl(d)}c=J[a+128>>2];if(c){d=c;b=J[a+132>>2];if((c|0)!=(b|0)){while(1){d=b-12|0;e=J[d>>2];if(e){J[b-8>>2]=e;fl(e)}b=d;if((c|0)!=(b|0)){continue}break}d=J[a+128>>2]}J[a+132>>2]=c;fl(d)}b=J[a+116>>2];if(b){J[a+120>>2]=b;fl(b)}b=J[a+104>>2];if(b){J[a+108>>2]=b;fl(b)}b=J[a+92>>2];if(b){J[a+96>>2]=b;fl(b)}Ae(a+72|0);Ae(a+52|0);Ae(a+32|0);Ae(a+12|0)}function bc(a,b,c){var d=0,e=0,f=0,g=0,h=0,i=0;J[a+8>>2]=0;J[a>>2]=0;J[a+4>>2]=0;a:{b:{if(b){if(b>>>0>=357913942){break b}d=P(b,12);b=ll(d);J[a>>2]=b;J[a+4>>2]=b;e=b+d|0;J[a+8>>2]=e;f=J[c>>2];c=J[c+4>>2];c:{if((f|0)==(c|0)){c=b;b=d-12|0;nk(c,0,(b-((b>>>0)%12|0)|0)+12|0);break c}c=c-f|0;if((c|0)<0){break a}g=c&-4;while(1){J[b+8>>2]=0;J[b>>2]=0;J[b+4>>2]=0;d=ll(c);J[b>>2]=d;J[b+4>>2]=d;J[b+8>>2]=d+g;h=b,i=lk(d,f,c)+g|0,J[h+4>>2]=i;b=b+12|0;if((e|0)!=(b|0)){continue}break}}J[a+4>>2]=e}return}La();C()}J[b+8>>2]=0;J[b>>2]=0;J[b+4>>2]=0;La();C()}function Ze(a,b,c,d,e){var f=0,g=0,h=0;f=ia-16|0;ia=f;g=_e(b,c,f+12|0,f+8|0,d);d=J[g>>2];if(d){b=0}else{d=ll(40);c=d+16|0;a:{if(H[e+11|0]>=0){h=J[e+4>>2];J[c>>2]=J[e>>2];J[c+4>>2]=h;J[c+8>>2]=J[e+8>>2];break a}sl(c,J[e>>2],J[e+4>>2])}c=d+28|0;b:{if(H[e+23|0]>=0){e=e+12|0;h=J[e+4>>2];J[c>>2]=J[e>>2];J[c+4>>2]=h;J[c+8>>2]=J[e+8>>2];break b}sl(c,J[e+12>>2],J[e+16>>2])}J[d+8>>2]=J[f+12>>2];J[d>>2]=0;J[d+4>>2]=0;J[g>>2]=d;e=d;c=J[J[b>>2]>>2];if(c){J[b>>2]=c;e=J[g>>2]}Ye(J[b+4>>2],e);J[b+8>>2]=J[b+8>>2]+1;b=1}H[a+4|0]=b;J[a>>2]=d;ia=f+16|0}function Wg(a){var b=0,c=0,d=0,e=0;Ee(a);c=J[a+84>>2];a:{if((c|0)<=0){break a}b=c<<5;d=ll(c>>>0>134217727?-1:b|4);J[d>>2]=c;d=d+4|0;c=d+b|0;b=d;while(1){J[b>>2]=0;J[b+4>>2]=0;J[b+24>>2]=0;J[b+28>>2]=0;J[b+16>>2]=0;J[b+20>>2]=0;J[b+8>>2]=0;J[b+12>>2]=0;b=b+32|0;if((c|0)!=(b|0)){continue}break}e=J[a+80>>2];J[a+80>>2]=d;if(e){c=e-4|0;d=J[c>>2];if(d){b=(d<<5)+e|0;while(1){b=Ce(b-32|0);if((e|0)!=(b|0)){continue}break}}fl(c)}if(J[a+84>>2]<=0){break a}b=0;while(1){Ee(J[a+80>>2]+(b<<5)|0);b=b+1|0;if((b|0)>2]){continue}break}}}function Vk(a,b){var c=0,d=0,e=0,f=0,g=0,h=0,i=0;f=ia-16|0;ia=f;A(+b);g=v(1)|0;d=v(0)|0;c=g&2147483647;e=c+-1048576|0;a:{if((e|0)==2145386495|e>>>0<2145386495){h=d<<28;e=c>>>4|0;c=(c&15)<<28|d>>>4;d=e+1006632960|0;break a}if((c|0)==2146435072|c>>>0>2146435072){h=d<<28;c=(g&15)<<28|d>>>4;d=g>>>4|2147418112;break a}if(!(c|d)){c=0;d=0;break a}e=c;c=c?S(c):S(d)+32|0;Rk(f,d,e,0,0,c+49|0);i=J[f>>2];h=J[f+4>>2];e=15372-c<<16;c=J[f+8>>2];d=e|J[f+12>>2]^65536}J[a>>2]=i;J[a+4>>2]=h;J[a+8>>2]=c;J[a+12>>2]=g&-2147483648|d;ia=f+16|0}function kj(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,f=0,g=0;f=ia-48|0;ia=f;a:{if(!b){a=0;break a}e=f+16|0;J[e>>2]=0;J[e+4>>2]=0;H[e+24|0]=0;J[e+16>>2]=0;J[e+20>>2]=0;J[e+8>>2]=0;J[e+12>>2]=0;g=0;b:{if((ak(b,0)|0)==-1){break b}if(c){g=0;if(!(na[J[J[b>>2]+16>>2]](b)|0)){break b}na[J[J[b>>2]+20>>2]](b)}Ie(f,a,b,e);a=J[f>>2];if(H[f+15|0]<0){fl(J[f+4>>2])}g=0;if(a){break b}Dj(d,J[e>>2],J[e+4>>2]);g=J[e+4>>2]-J[e>>2]|0}a=g;b=J[e+12>>2];J[e+12>>2]=0;if(b){fl(b)}b=J[e>>2];if(!b){break a}J[e+4>>2]=b;fl(b)}ia=f+48|0;return a|0}function cc(a){a=a|0;var b=0,c=0,d=0;J[a>>2]=2292;d=J[a+60>>2];if(d){b=d;c=J[a- -64>>2];if((b|0)!=(c|0)){while(1){c=c-4|0;b=J[c>>2];J[c>>2]=0;if(b){Mb(b)}if((c|0)!=(d|0)){continue}break}b=J[a+60>>2]}J[a+64>>2]=d;fl(b)}b=J[a+48>>2];if(b){J[a+52>>2]=b;fl(b)}d=J[a+36>>2];if(d){b=d;c=J[a+40>>2];if((b|0)!=(c|0)){while(1){c=c-24|0;na[J[J[c>>2]>>2]](c)|0;if((c|0)!=(d|0)){continue}break}b=J[a+36>>2]}J[a+40>>2]=d;fl(b)}J[a>>2]=2196;b=J[a+16>>2];if(b){J[a+20>>2]=b;fl(b)}b=J[a+4>>2];if(b){J[a+8>>2]=b;fl(b)}return a|0}function jj(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0;e=ia-48|0;ia=e;a:{if(!b){a=0;break a}d=e+16|0;J[d>>2]=0;J[d+4>>2]=0;H[d+24|0]=0;J[d+16>>2]=0;J[d+20>>2]=0;J[d+8>>2]=0;J[d+12>>2]=0;f=0;b:{if((ak(b,0)|0)==-1){break b}f=0;if(!(na[J[J[b>>2]+16>>2]](b)|0)){break b}na[J[J[b>>2]+20>>2]](b);Ne(e,a,b,d);a=J[e>>2];if(H[e+15|0]<0){fl(J[e+4>>2])}f=0;if(a){break b}Dj(c,J[d>>2],J[d+4>>2]);f=J[d+4>>2]-J[d>>2]|0}a=f;b=J[d+12>>2];J[d+12>>2]=0;if(b){fl(b)}b=J[d>>2];if(!b){break a}J[d+4>>2]=b;fl(b)}ia=e+48|0;return a|0}function ii(a,b){var c=0,d=0,e=0,f=0,g=0,h=0,i=0;a:{c=J[a+4>>2];d=J[a>>2];f=c-d|0;b:{if(f>>>0>>0){g=b-f|0;e=J[a+8>>2];if(g>>>0<=e-c>>>0){h=a,i=nk(c,0,g)+g|0,J[h+4>>2]=i;break b}if((b|0)<0){break a}c=e-d|0;e=c<<1;e=c>>>0>=1073741823?2147483647:b>>>0>>0?e:b;c=ll(e);nk(c+f|0,0,g);if((f|0)>0){lk(c,d,f)}J[a+8>>2]=c+e;J[a+4>>2]=b+c;J[a>>2]=c;if(!d){break b}fl(d);break b}if(b>>>0>=f>>>0){break b}J[a+4>>2]=b+d}b=J[a+28>>2];c=b;d=b+1|0;b=J[a+24>>2]+1|0;d=b?c:d;J[a+24>>2]=b;J[a+28>>2]=d;return}La();C()}function Yk(a,b,c,d,e,f){var g=0,h=0,i=0,j=0;a:{if(f&64){c=f+-64|0;b=c&31;if((c&63)>>>0>=32){c=0;b=e>>>b|0}else{c=e>>>b|0;b=((1<>>b}d=0;e=0;break a}if(!f){break a}i=d;h=64-f|0;g=h&31;if((h&63)>>>0>=32){h=i<>>32-g|e<>>0>=32){g=0;b=c>>>b|0}else{g=c>>>b|0;b=((1<>>b}b=j|b;c=g|h;g=d;d=f&31;if((f&63)>>>0>=32){h=0;d=e>>>d|0}else{h=e>>>d|0;d=((1<>>d}e=h}J[a>>2]=b;J[a+4>>2]=c;J[a+8>>2]=d;J[a+12>>2]=e}function Wj(a,b){var c=0,d=0,e=0,f=0,g=0,h=0;c=ia-16|0;ia=c;e=K[b+11|0];e=e<<24>>24<0?J[b+4>>2]:e;a:{if(e>>>0>255){break a}if(!e){H[c+15|0]=0;b=J[a+20>>2];if(!!J[a+16>>2]&(b|0)>=0|(b|0)>0){break a}Ea(a,J[a+4>>2],c+15|0,c+16|0);break a}H[c+14|0]=e;d=J[a+20>>2];if(!!J[a+16>>2]&(d|0)>=0|(d|0)>0){break a}Ea(a,J[a+4>>2],c+14|0,c+15|0);d=J[a+20>>2];if(!!J[a+16>>2]&(d|0)>=0|(d|0)>0){break a}g=a;h=J[a+4>>2];a=K[b+11|0];d=a<<24>>24<0;f=d?J[b>>2]:b;Ea(g,h,f,(d?J[b+4>>2]:a)+f|0)}ia=c+16|0;return e>>>0<256}function gl(a){a=a|0;var b=0,c=0,d=0;if(!a){if(J[4847]){b=gl(J[4847])}if(J[4810]){b=gl(J[4810])|b}a=J[4846];if(a){while(1){if(J[a+20>>2]!=J[a+28>>2]){b=gl(a)|b}a=J[a+56>>2];if(a){continue}break}}return b|0}d=J[a+76>>2]>=0;a:{b:{if(J[a+20>>2]==J[a+28>>2]){break b}na[J[a+36>>2]](a,0,0)|0;if(J[a+20>>2]){break b}b=-1;break a}b=J[a+8>>2];c=J[a+4>>2];if((b|0)!=(c|0)){b=c-b|0;na[J[a+40>>2]](a,b,b>>31,1)|0}b=0;J[a+28>>2]=0;J[a+16>>2]=0;J[a+20>>2]=0;J[a+4>>2]=0;J[a+8>>2]=0;if(!d){break a}}return b|0}function tj(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0;d=ia-48|0;ia=d;e=J[a+4>>2];a:{if(!e){break a}if(b){if(!(na[J[J[e>>2]+16>>2]](e)|0)){break a}b=J[a+4>>2];na[J[J[b>>2]+20>>2]](b)}b=d+16|0;J[b>>2]=0;J[b+4>>2]=0;H[b+24|0]=0;J[b+16>>2]=0;J[b+20>>2]=0;J[b+8>>2]=0;J[b+12>>2]=0;cf(d,J[a>>2],b);a=J[d>>2];if(H[d+15|0]<0){fl(J[d+4>>2])}if(!a){Dj(c,J[b>>2],J[b+4>>2]);f=J[b+4>>2]-J[b>>2]|0}a=J[b+12>>2];J[b+12>>2]=0;if(a){fl(a)}a=J[b>>2];if(!a){break a}J[b+4>>2]=a;fl(a)}ia=d+48|0;return f|0}function pc(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0;if((na[J[J[b>>2]+20>>2]](b)|0)<=0){return 1}while(1){a:{f=0;d=ak(J[J[a+4>>2]+4>>2],na[J[J[b>>2]+24>>2]](b,e)|0);if((d|0)==-1){break a}c=J[a+4>>2];g=0;b:{if((d|0)<0){break b}h=J[c+4>>2];if(J[h+12>>2]-J[h+8>>2]>>2<=(d|0)){break b}c=J[J[c+8>>2]+(J[J[c+20>>2]+(d<<2)>>2]<<2)>>2];g=na[J[J[c>>2]+36>>2]](c,d)|0}if(!(na[J[J[b>>2]+28>>2]](b,g)|0)){break a}f=1;e=e+1|0;if((na[J[J[b>>2]+20>>2]](b)|0)>(e|0)){continue}}break}return f|0}function Rk(a,b,c,d,e,f){var g=0,h=0,i=0;a:{if(f&64){d=b;e=f+-64|0;b=e&31;if((e&63)>>>0>=32){e=d<>>32-b|c<>>0>=32){h=g<>>32-d|e<>>0>=32){e=0;b=c>>>d|0}else{e=c>>>d|0;b=((1<>>d}d=i|b;e=e|h;b=f&31;if((f&63)>>>0>=32){h=g<>>32-b|c<>2]=b;J[a+4>>2]=c;J[a+8>>2]=d;J[a+12>>2]=e}function ac(a,b){Ge(a,b);Ge(a+32|0,b);Ge(a- -64|0,b);Ge(a+96|0,b);Ge(a+128|0,b);Ge(a+160|0,b);Ge(a+192|0,b);Ge(a+224|0,b);Ge(a+256|0,b);Ge(a+288|0,b);Ge(a+320|0,b);Ge(a+352|0,b);Ge(a+384|0,b);Ge(a+416|0,b);Ge(a+448|0,b);Ge(a+480|0,b);Ge(a+512|0,b);Ge(a+544|0,b);Ge(a+576|0,b);Ge(a+608|0,b);Ge(a+640|0,b);Ge(a+672|0,b);Ge(a+704|0,b);Ge(a+736|0,b);Ge(a+768|0,b);Ge(a+800|0,b);Ge(a+832|0,b);Ge(a+864|0,b);Ge(a+896|0,b);Ge(a+928|0,b);Ge(a+960|0,b);Ge(a+992|0,b);Ge(a+1024|0,b)}function nc(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0;d=J[J[a+8>>2]+40>>2];g=ll((d|0)<0?-1:d);f=J[b>>2];h=J[b+4>>2];if((f|0)!=(h|0)){k=d+g|0;while(1){e=J[(i<<2)+f>>2];d=J[a+8>>2];if(!K[d+84|0]){e=J[J[d+68>>2]+(e<<2)>>2]}l=J[J[d>>2]>>2];j=J[d+40>>2];e=J[d+48>>2]+Zl(j,J[d+44>>2],e,0)|0;d=lk(g,l+e|0,j);e=J[c+20>>2];if(!J[c+16>>2]&(e|0)<=0|(e|0)<0){Ea(c,J[c+4>>2],d,k);h=J[b+4>>2];f=J[b>>2]}i=i+1|0;if(i>>>0>2>>>0){continue}break}}fl(g);return 1}function Pk(a,b){if(!a){return 0}a:{b:{if(a){if(b>>>0<=127){break b}c:{if(!J[J[4884]>>2]){if((b&-128)==57216){break b}break c}if(b>>>0<=2047){H[a+1|0]=b&63|128;H[a|0]=b>>>6|192;a=2;break a}if(!((b&-8192)!=57344&b>>>0>=55296)){H[a+2|0]=b&63|128;H[a|0]=b>>>12|224;H[a+1|0]=b>>>6&63|128;a=3;break a}if(b-65536>>>0<=1048575){H[a+3|0]=b&63|128;H[a|0]=b>>>18|240;H[a+2|0]=b>>>6&63|128;H[a+1|0]=b>>>12&63|128;a=4;break a}}J[4842]=25;a=-1}else{a=1}break a}H[a|0]=b;a=1}return a}function gi(a,b){a=a|0;b=b|0;var c=0,d=0;c=ia-16|0;ia=c;d=J[a+8>>2];a:{if((d|0)==J[a+12>>2]){b=wb(ll(76),b);J[b+36>>2]=0;J[b+40>>2]=0;J[b>>2]=2292;J[b+44>>2]=0;J[b+48>>2]=0;J[b+52>>2]=0;J[b+56>>2]=0;J[b+60>>2]=0;J[b+64>>2]=0;J[b+68>>2]=0;J[b+72>>2]=0;J[c+8>>2]=b;d=J[a+12>>2];b:{if(d>>>0>2]){J[c+8>>2]=0;J[d>>2]=b;J[a+12>>2]=d+4;break b}Pg(a+8|0,c+8|0)}a=J[c+8>>2];J[c+8>>2]=0;if(!a){break a}na[J[J[a>>2]+4>>2]](a);break a}xb(J[d>>2],b)}ia=c+16|0;return 1}function _k(a,b,c,d,e,f,g,h,i){var j=0,k=0,l=0,m=0;h=Zl(b,c,h,i);i=ma;j=h;h=Zl(d,e,f,g);e=j+h|0;d=ma+i|0;i=e;h=i>>>0>>0?d+1|0:d;j=i;k=g;e=0;l=c;d=0;i=Zl(g,e,c,d);g=j+i|0;c=ma+h|0;j=g;g=g>>>0>>0?c+1|0:c;h=f;i=b;f=Zl(h,0,i,0);b=ma;c=0;d=Zl(h,c,l,d);b=b+d|0;c=ma+c|0;c=b>>>0>>0?c+1|0:c;h=c;c=c+j|0;d=g;d=c>>>0>>0?d+1|0:d;h=c;c=d;d=Zl(i,m,k,e)+b|0;e=ma;e=b>>>0>d>>>0?e+1|0:e;g=a;i=e;h=i+h|0;J[g+8>>2]=h;J[g+12>>2]=h>>>0>>0?c+1|0:c;J[g>>2]=f;J[g+4>>2]=d}function Se(a,b,c,d){var e=0,f=0,g=0,h=0,i=0;e=ia-48|0;ia=e;h=J[b>>2];f=a+16|0;b=J[f>>2];a:{b:{if(!b){break b}g=f;while(1){i=J[b+16>>2]<(h|0);g=i?g:b;b=J[(i?b+4|0:b)>>2];if(b){continue}break}if((g|0)==(f|0)){break b}if(J[g+16>>2]<=(h|0)){break a}}J[e+28>>2]=0;J[e+32>>2]=0;f=e+24|0;J[e+24>>2]=f|4;b=e+16|0;J[b>>2]=0;J[b+4>>2]=0;J[e+8>>2]=h;J[e+12>>2]=b;b=a+12|0;a=e+8|0;Oe(e+40|0,b,a,a);g=J[e+40>>2];Oc(a|4,J[e+16>>2]);Oc(f,J[e+28>>2])}mi(g+20|0,c,d);ia=e+48|0}function Oj(a){a=a|0;var b=0,c=0,d=0;J[a>>2]=14964;b=J[a+68>>2];if(b){J[a+72>>2]=b;fl(b)}b=J[a+56>>2];if(b){J[a+60>>2]=b;fl(b)}b=J[a+44>>2];if(b){J[a+48>>2]=b;fl(b)}b=J[a+32>>2];if(b){J[a+36>>2]=b;fl(b)}b=J[a+20>>2];if(b){J[a+24>>2]=b;fl(b)}b=J[a+8>>2];if(b){d=b;c=J[a+12>>2];if((b|0)!=(c|0)){while(1){c=c-4|0;d=J[c>>2];J[c>>2]=0;if(d){Mb(d)}if((b|0)!=(c|0)){continue}break}d=J[a+8>>2]}J[a+12>>2]=b;fl(d)}b=J[a+4>>2];J[a+4>>2]=0;if(b){Hj(b)}return a|0}function Cc(a){a=a|0;var b=0,c=0,d=0;J[a>>2]=2504;b=J[a+72>>2];J[a+72>>2]=0;if(b){na[J[J[b>>2]+4>>2]](b)}b=J[a+60>>2];if(b){J[a- -64>>2]=b;fl(b)}b=J[a+48>>2];if(b){fl(b)}d=J[a+36>>2];if(d){c=J[a+40>>2];b=d;if((c|0)!=(b|0)){while(1){c=c-4|0;b=J[c>>2];J[c>>2]=0;if(b){na[J[J[b>>2]+4>>2]](b)}if((c|0)!=(d|0)){continue}break}b=J[a+36>>2]}J[a+40>>2]=d;fl(b)}J[a>>2]=2196;b=J[a+16>>2];if(b){J[a+20>>2]=b;fl(b)}b=J[a+4>>2];if(b){J[a+8>>2]=b;fl(b)}return a|0}function xl(){var a=0,b=0;a=ia-16|0;ia=a;b=J[4306];Fk(2020,11,b);J[a+12>>2]=0;Mk(b,1990,0);a=J[b+76>>2];a:{if(!((a|0)>=0&(!a|J[4866]!=(a&-1073741825)))){b:{if(J[b+80>>2]==10){break b}a=J[b+20>>2];if((a|0)==J[b+16>>2]){break b}J[b+20>>2]=a+1;H[a|0]=10;break a}nl(b);break a}a=J[b+76>>2];J[b+76>>2]=a?a:1073741823;c:{d:{if(J[b+80>>2]==10){break d}a=J[b+20>>2];if((a|0)==J[b+16>>2]){break d}J[b+20>>2]=a+1;H[a|0]=10;break c}nl(b)}J[b+76>>2]=0}fa();C()}function hh(a){J[a>>2]=-1;J[a+4>>2]=0;J[a+8>>2]=0;J[a+32>>2]=0;J[a+36>>2]=0;H[a+28|0]=1;J[a+20>>2]=0;J[a+24>>2]=0;J[a+12>>2]=0;J[a+16>>2]=0;J[a+40>>2]=0;J[a+44>>2]=0;J[a+48>>2]=0;J[a+52>>2]=0;J[a+56>>2]=0;J[a+60>>2]=0;J[a+64>>2]=0;J[a+68>>2]=0;J[a+76>>2]=0;J[a+80>>2]=0;J[a+84>>2]=0;J[a+88>>2]=0;J[a+92>>2]=0;J[a+96>>2]=0;J[a+72>>2]=a+4;J[a+104>>2]=0;J[a+108>>2]=0;H[a+100|0]=1;J[a+112>>2]=0;J[a+116>>2]=0;J[a+120>>2]=0;J[a+124>>2]=0;J[a+128>>2]=0}function Oa(a,b){var c=0,d=0,e=0,f=0,g=0,h=0,i=0;e=J[a+8>>2];c=J[a+4>>2];if(e-c>>2>>>0>=b>>>0){if(b){b=b<<2;c=nk(c,0,b)+b|0}J[a+4>>2]=c;return}a:{f=J[a>>2];g=c-f|0;h=g>>2;d=h+b|0;if(d>>>0<1073741824){c=0;e=e-f|0;i=e>>1;d=e>>>0>=2147483644?1073741823:d>>>0>>0?i:d;if(d){if(d>>>0>=1073741824){break a}c=ll(d<<2)}b=b<<2;b=nk((h<<2)+c|0,0,b)+b|0;if((g|0)>0){lk(c,f,g)}J[a+8>>2]=(d<<2)+c;J[a+4>>2]=b;J[a>>2]=c;if(f){fl(f)}return}La();C()}$a();C()}function lf(a,b){var c=0,d=0,e=0,f=0,g=0,h=0,i=0;e=J[a+8>>2];c=J[a+4>>2];if(e-c>>3>>>0>=b>>>0){if(b){b=b<<3;c=nk(c,0,b)+b|0}J[a+4>>2]=c;return}a:{f=J[a>>2];g=c-f|0;h=g>>3;d=h+b|0;if(d>>>0<536870912){c=0;e=e-f|0;i=e>>2;d=e>>>0>=2147483640?536870911:d>>>0>>0?i:d;if(d){if(d>>>0>=536870912){break a}c=ll(d<<3)}b=b<<3;b=nk((h<<3)+c|0,0,b)+b|0;if((g|0)>0){lk(c,f,g)}J[a+8>>2]=(d<<3)+c;J[a+4>>2]=b;J[a>>2]=c;if(f){fl(f)}return}La();C()}$a();C()}function Tk(a,b,c,d,e){var f=0,g=0,h=0;h=-1;g=d&2147483647;f=(g|0)==2147418112;a:{if(f&!c?a|b:f&(c|0)!=0|g>>>0>2147418112){break a}f=e&2147483647;if(((f|0)==2147418112&0|f>>>0>2147418112)&(f|0)!=2147418112){break a}if(!(a|c|(f|g|b))){return 0}f=d&e;if((f|0)>0|(f|0)>=0){if(((c|0)!=0|(d|0)!=(e|0))&(d|0)<(e|0)){break a}return(a|c|(d^e|b))!=0}if(!c&(d|0)==(e|0)?a|b:(c|0)!=0&(d|0)>=(e|0)|(d|0)>(e|0)){break a}h=(a|c|(d^e|b))!=0}return h}function ji(a,b){var c=0,d=0,e=0,f=0,g=0,h=0,i=0;a:{c=J[a+4>>2];e=J[a>>2];f=c-e|0;b:{if(f>>>0>>0){g=b-f|0;d=J[a+8>>2];if(g>>>0<=d-c>>>0){h=a,i=nk(c,0,g)+g|0,J[h+4>>2]=i;return}if((b|0)<0){break a}c=d-e|0;d=c<<1;d=c>>>0>=1073741823?2147483647:b>>>0>>0?d:b;c=ll(d);nk(c+f|0,0,g);if((f|0)>0){lk(c,e,f)}J[a+8>>2]=c+d;J[a+4>>2]=b+c;J[a>>2]=c;if(!e){break b}fl(e);return}if(b>>>0>=f>>>0){break b}J[a+4>>2]=b+e}return}La();C()}function Va(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0;d=ia-16|0;ia=d;e=J[a+4>>2];a:{if((e|0)==-1){break a}c=J[b+20>>2];if(!!J[b+16>>2]&(c|0)>=0|(c|0)>0){break a}Ea(b,J[b+4>>2],J[a+8>>2],J[a+12>>2]);c=J[b+20>>2];if(!!J[b+16>>2]&(c|0)>=0|(c|0)>0){break a}Ea(b,J[b+4>>2],a+20|0,a+24|0);c=J[b+20>>2];f=J[b+16>>2];H[d+15|0]=J[a+4>>2];if(!!f&(c|0)>=0|(c|0)>0){break a}Ea(b,J[b+4>>2],d+15|0,d+16|0)}ia=d+16|0;return(e|0)!=-1|0}function _h(a){a=a|0;var b=0,c=0,d=0,e=0,f=0;a:{b=J[a+8>>2];b:{if((b|0)<0){break b}c=J[a+4>>2];e=J[c>>2];d=J[c+4>>2]-e>>2;c:{if(d>>>0>>0){Oa(c,b-d|0);f=J[a+8>>2];break c}f=b;if(b>>>0>=d>>>0){break c}J[c+4>>2]=e+(b<<2);f=b}d=f;if((d|0)<=0){break b}a=J[a+4>>2];c=J[a>>2];e=J[a+4>>2]-c>>2;a=0;while(1){if((a|0)==(e|0)){break a}J[c+(a<<2)>>2]=a;a=a+1|0;if((d|0)!=(a|0)){continue}break}}return(b^-1)>>>31|0}Zc();C()}function $b(a){Ee(a);Ee(a+32|0);Ee(a- -64|0);Ee(a+96|0);Ee(a+128|0);Ee(a+160|0);Ee(a+192|0);Ee(a+224|0);Ee(a+256|0);Ee(a+288|0);Ee(a+320|0);Ee(a+352|0);Ee(a+384|0);Ee(a+416|0);Ee(a+448|0);Ee(a+480|0);Ee(a+512|0);Ee(a+544|0);Ee(a+576|0);Ee(a+608|0);Ee(a+640|0);Ee(a+672|0);Ee(a+704|0);Ee(a+736|0);Ee(a+768|0);Ee(a+800|0);Ee(a+832|0);Ee(a+864|0);Ee(a+896|0);Ee(a+928|0);Ee(a+960|0);Ee(a+992|0);Ee(a+1024|0)}function Ne(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,f=0;e=ia-96|0;ia=e;f=bf(e+40|0,c);Je(e,b,c);df(f,e);Oc(e+24|0,J[e+28>>2]);Ke(e+12|0,J[e+16>>2]);Oc(e,J[e+4>>2]);cf(a,f,d);if(!J[a>>2]){if(H[a+15|0]<0){fl(J[a+4>>2])}J[b+40>>2]=J[f+40>>2];J[b+44>>2]=J[f+44>>2];J[a+8>>2]=0;J[a+12>>2]=0;J[a>>2]=0;J[a+4>>2]=0}J[f>>2]=10264;Oc(f+28|0,J[f+32>>2]);Ke(f+16|0,J[f+20>>2]);Oc(f+4|0,J[f+8>>2]);ia=e+96|0}function Ag(a){a=a|0;var b=0,c=0,d=0;J[a>>2]=10412;b=J[a+64>>2];J[a+64>>2]=0;if(b){na[J[J[b>>2]+4>>2]](b)}J[a>>2]=12468;b=J[a+32>>2];if(b){J[a+36>>2]=b;fl(b)}b=J[a+20>>2];if(b){J[a+24>>2]=b;fl(b)}d=J[a+8>>2];if(d){c=J[a+12>>2];b=d;if((c|0)!=(b|0)){while(1){c=c-4|0;b=J[c>>2];J[c>>2]=0;if(b){na[J[J[b>>2]+4>>2]](b)}if((c|0)!=(d|0)){continue}break}b=J[a+8>>2]}J[a+12>>2]=d;fl(b)}return a|0}function vc(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0,i=0;d=ia-16|0;ia=d;f=zb(a,b);a:{if(!f){break a}c=J[a+36>>2];if((c|0)==J[a+40>>2]){break a}g=d+16|0;while(1){c=J[(e<<2)+c>>2];h=d,i=na[J[J[c>>2]+32>>2]](c)|0,H[h+15|0]=i;c=J[b+20>>2];if(!J[b+16>>2]&(c|0)<=0|(c|0)<0){Ea(b,J[b+4>>2],d+15|0,g)}e=e+1|0;c=J[a+36>>2];if(e>>>0>2]-c>>2>>>0){continue}break}}ia=d+16|0;return f|0}function Bg(a){a=a|0;var b=0,c=0,d=0;J[a>>2]=10412;b=J[a+64>>2];J[a+64>>2]=0;if(b){na[J[J[b>>2]+4>>2]](b)}J[a>>2]=12468;b=J[a+32>>2];if(b){J[a+36>>2]=b;fl(b)}b=J[a+20>>2];if(b){J[a+24>>2]=b;fl(b)}d=J[a+8>>2];if(d){c=J[a+12>>2];b=d;if((c|0)!=(b|0)){while(1){c=c-4|0;b=J[c>>2];J[c>>2]=0;if(b){na[J[J[b>>2]+4>>2]](b)}if((c|0)!=(d|0)){continue}break}b=J[a+8>>2]}J[a+12>>2]=d;fl(b)}fl(a)}function tl(a,b,c){var d=0,e=0,f=0;f=ia-16|0;ia=f;d=K[a+11|0]>>>7|0?(J[a+8>>2]&2147483647)-1|0:10;if(K[a+11|0]>>>7|0){e=J[a+4>>2]}else{e=K[a+11|0]}a:{if(d-e>>>0>=c>>>0){if(!c){break a}if(K[a+11|0]>>>7|0){d=J[a>>2]}else{d=a}hl(d+e|0,b,c);b=c+e|0;b:{if(K[a+11|0]>>>7|0){J[a+4>>2]=b;break b}H[a+11|0]=b}H[f+15|0]=0;H[b+d|0]=K[f+15|0];break a}rl(a,d,(c+e|0)-d|0,e,e,0,c,b)}ia=f+16|0}function Hg(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0;c=J[a+176>>2];d=J[a+172>>2];e=(c-d|0)/136|0;a:{if((c|0)==(d|0)){break a}c=0;b:{c:{d:{if(J[d>>2]==(b|0)){b=1}else{f=e>>>0<=1?1:e;while(1){c=c+1|0;if((f|0)==(c|0)){break d}if(J[P(c,136)+d>>2]!=(b|0)){continue}break}b=c>>>0>>0}if(b){break c}break a}if(c>>>0>>0){break b}break a}d=(P(c,136)+d|0)+104|0}return d|0}return a+40|0}function rf(a,b,c){var d=0,e=0,f=0,g=0;d=ia-16|0;ia=d;H[d+15|0]=a&127;a:{b:{if(!b&a>>>0>=128|b){H[d+15|0]=a|128;f=J[c+20>>2];e=0;if(!!J[c+16>>2]&(f|0)>=0|(f|0)>0){break b}Ea(c,J[c+4>>2],d+15|0,d+16|0);a=rf((b&127)<<25|a>>>7,b>>>7|0,c);break a}b=J[c+16>>2];a=J[c+20>>2];if(!b&(a|0)<=0|(a|0)<0){Ea(c,J[c+4>>2],d+15|0,d+16|0)}e=!b&(a|0)<=0|(a|0)<0}g=e;a=0}ia=d+16|0;return a|g}function Vh(a,b){a=a|0;b=b|0;var c=0,d=0;c=ia-16|0;ia=c;a:{if(!b){d=ll(76);b=ll(12);J[b+8>>2]=J[J[a+4>>2]+80>>2];J[b>>2]=12404;J[b+4>>2]=0;d=tc(d,b,0);J[c+8>>2]=d;b=J[a+12>>2];b:{if(b>>>0>2]){J[c+8>>2]=0;J[b>>2]=d;J[a+12>>2]=b+4;break b}Pg(a+8|0,c+8|0)}a=J[c+8>>2];J[c+8>>2]=0;if(!a){break a}na[J[J[a>>2]+4>>2]](a);break a}xb(J[J[a+8>>2]>>2],b)}ia=c+16|0;return 1}function Pb(a,b){a=a|0;b=b|0;var c=0,d=0;c=J[a+36>>2];if((c|0)!=J[a+40>>2]){while(1){c=P(d,24)+c|0;na[J[J[c>>2]+28>>2]](c,b)|0;d=d+1|0;c=J[a+36>>2];if(d>>>0<(J[a+40>>2]-c|0)/24>>>0){continue}break}}c=J[a+48>>2];if((c|0)!=J[a+52>>2]){d=0;while(1){c=J[(d<<2)+c>>2];Ab((c|0)<0?(c^-1)<<1|1:c<<1,b);d=d+1|0;c=J[a+48>>2];if(d>>>0>2]-c>>2>>>0){continue}break}}return 1}function Gj(a,b,c,d,e,f){var g=0,h=0,i=0;i=-1;a:{if(!a){break a}g=db(ll(96));fb(g,b,d<<24>>24,f,c);b=ck(a,g);if(c){g=J[J[a+8>>2]+(b<<2)>>2];while(1){f=J[g+40>>2];lk(J[J[g>>2]>>2]+P(f,K[g+84|0]?h:J[J[g+68>>2]+(h<<2)>>2])|0,(P(d,h)<<1)+e|0,f);h=h+1|0;if((h|0)!=(c|0)){continue}break}}d=J[a+80>>2];b:{if(!d){J[a+80>>2]=c;break b}if((c|0)!=(d|0)){break a}}i=b}return i}function Ej(a,b,c,d,e,f){var g=0,h=0,i=0;i=-1;a:{if(!a){break a}g=db(ll(96));fb(g,b,d<<24>>24,f,c);b=ck(a,g);if(c){g=J[J[a+8>>2]+(b<<2)>>2];while(1){f=J[g+40>>2];lk(J[J[g>>2]>>2]+P(f,K[g+84|0]?h:J[J[g+68>>2]+(h<<2)>>2])|0,(P(d,h)<<2)+e|0,f);h=h+1|0;if((h|0)!=(c|0)){continue}break}}d=J[a+80>>2];b:{if(!d){J[a+80>>2]=c;break b}if((c|0)!=(d|0)){break a}}i=b}return i}function fb(a,b,c,d,e){var f=0,g=0,h=0,i=0;f=ll(32);J[f+16>>2]=0;J[f+20>>2]=0;J[f+8>>2]=0;J[f>>2]=0;J[f+4>>2]=0;J[f+24>>2]=0;J[f+28>>2]=0;g=J[a+64>>2];J[a+64>>2]=f;if(g){f=J[g>>2];if(f){J[g+4>>2]=f;fl(f)}fl(g);f=J[a+64>>2]}h=b;i=c&255;g=d-1|0;if(g>>>0<=10){b=J[(g<<2)+14832>>2]}else{b=-1}b=P(b,c);cb(a,h,f,i,d,b,b>>31);gb(a,e);H[a+84|0]=1;J[a+72>>2]=J[a+68>>2]}function ab(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0,g=0,h=0,i=0;d=ia+-64|0;ia=d;e=na[J[J[a>>2]+44>>2]](a,b)|0;a=na[J[J[a>>2]+40>>2]](a,b)|0;f=bb(d);g=J[b+56>>2];h=e&255;i=a;a=a-1|0;if(a>>>0<=10){a=J[(a<<2)+14832>>2]}else{a=-1}a=P(a,e);cb(f,g,0,h,i,a,a>>31);a=eb(ll(96),f);gb(a,c);H[a+84|0]=1;J[a+72>>2]=J[a+68>>2];J[a+60>>2]=J[b+60>>2];ia=d- -64|0;return a|0}function Gl(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;if(yl(a,J[b+8>>2],e)){if(!(J[b+28>>2]==1|J[b+4>>2]!=(c|0))){J[b+28>>2]=d}return}a:{if(!yl(a,J[b>>2],e)){break a}if(!(J[b+16>>2]!=(c|0)&J[b+20>>2]!=(c|0))){if((d|0)!=1){break a}J[b+32>>2]=1;return}J[b+20>>2]=c;J[b+32>>2]=d;J[b+40>>2]=J[b+40>>2]+1;if(!(J[b+36>>2]!=1|J[b+24>>2]!=2)){H[b+54|0]=1}J[b+44>>2]=4}}function Fj(a,b,c,d,e,f){var g=0,h=0,i=0;i=-1;a:{if(!a){break a}g=db(ll(96));fb(g,b,d<<24>>24,f,c);b=ck(a,g);if(c){g=J[J[a+8>>2]+(b<<2)>>2];while(1){f=J[g+40>>2];lk(J[J[g>>2]>>2]+P(f,K[g+84|0]?h:J[J[g+68>>2]+(h<<2)>>2])|0,P(d,h)+e|0,f);h=h+1|0;if((h|0)!=(c|0)){continue}break}}d=J[a+80>>2];b:{if(!d){J[a+80>>2]=c;break b}if((c|0)!=(d|0)){break a}}i=b}return i}function Fk(a,b,c){var d=0,e=0,f=0;a:{d=J[c+16>>2];if(!d){if(Dk(c)){break a}d=J[c+16>>2]}f=J[c+20>>2];if(d-f>>>0>>0){na[J[c+36>>2]](c,a,b)|0;return}b:{if(J[c+80>>2]<0){break b}d=b;while(1){e=d;if(!e){break b}d=e-1|0;if(K[d+a|0]!=10){continue}break}if(na[J[c+36>>2]](c,a,e)>>>0>>0){break a}a=a+e|0;b=b-e|0;f=J[c+20>>2]}lk(f,a,b);J[c+20>>2]=J[c+20>>2]+b}}function Ab(a,b){var c=0,d=0,e=0,f=0;c=ia-16|0;ia=c;H[c+15|0]=a&127;a:{b:{if(a>>>0>=128){H[c+15|0]=a|128;d=J[b+20>>2];e=0;if(!!J[b+16>>2]&(d|0)>=0|(d|0)>0){break b}Ea(b,J[b+4>>2],c+15|0,c+16|0);a=Ab(a>>>7|0,b);break a}d=J[b+16>>2];a=J[b+20>>2];if(!d&(a|0)<=0|(a|0)<0){Ea(b,J[b+4>>2],c+15|0,c+16|0)}e=!d&(a|0)<=0|(a|0)<0}f=e;a=0}ia=c+16|0;return a|f}function kl(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0,g=0;e=J[a+84>>2];f=J[e+4>>2];g=J[a+28>>2];d=J[a+20>>2]-g|0;d=d>>>0>f>>>0?f:d;if(d){lk(J[e>>2],g,d);J[e>>2]=d+J[e>>2];f=J[e+4>>2]-d|0;J[e+4>>2]=f}d=J[e>>2];f=c>>>0>f>>>0?f:c;if(f){lk(d,b,f);d=f+J[e>>2]|0;J[e>>2]=d;J[e+4>>2]=J[e+4>>2]-f}H[d|0]=0;b=J[a+44>>2];J[a+28>>2]=b;J[a+20>>2]=b;return c|0}function El(a,b,c,d){H[a+53|0]=1;a:{if(J[a+4>>2]!=(c|0)){break a}H[a+52|0]=1;c=J[a+16>>2];b:{if(!c){J[a+36>>2]=1;J[a+24>>2]=d;J[a+16>>2]=b;if((d|0)!=1){break a}if(J[a+48>>2]==1){break b}break a}if((b|0)==(c|0)){c=J[a+24>>2];if((c|0)==2){J[a+24>>2]=d;c=d}if(J[a+48>>2]!=1){break a}if((c|0)==1){break b}break a}J[a+36>>2]=J[a+36>>2]+1}H[a+54|0]=1}}function Lj(a,b){var c=0,d=0,e=0,f=0;d=1;a:{if((b|0)==-1){break a}b=P(b,3);if((b|0)==-1){break a}d=-1;e=J[a>>2];a=e+(b<<2)|0;c=b+1|0;c=(c>>>0)%3|0?c:b-2|0;if((c|0)!=-1){d=J[(c<<2)+e>>2]}a=J[a>>2];f=(a|0)==(d|0);b:{c:{if((b>>>0)%3|0){b=b-1|0;break c}b=b+2|0;c=-1;if((b|0)==-1){break b}}c=J[(b<<2)+e>>2]}d=f|(c|0)==(a|0)|(d|0)==(c|0)}return d}function zl(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0;e=ia+-64|0;ia=e;d=1;a:{if(yl(a,b,0)){break a}d=0;if(!b){break a}b=Al(b,18476,18524);d=0;if(!b){break a}d=e+8|0;nk(d|4,0,52);J[e+56>>2]=1;J[e+20>>2]=-1;J[e+16>>2]=a;J[e+8>>2]=b;na[J[J[b>>2]+28>>2]](b,d,J[c>>2],1);a=J[e+32>>2];if((a|0)==1){J[c>>2]=J[e+24>>2]}d=(a|0)==1}ia=e- -64|0;return d|0}function uc(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0;J[a+32>>2]=c;J[a+28>>2]=b;a:{if(!(na[J[J[a>>2]+52>>2]](a)|0)){break a}e=J[a+4>>2];if((e|0)==J[a+8>>2]){return 1}c=0;while(1){d=c<<2;f=J[d+J[a+36>>2]>>2];d=na[J[J[f>>2]+8>>2]](f,b,J[d+e>>2])|0;if(!d){break a}c=c+1|0;e=J[a+4>>2];if(c>>>0>2]-e>>2>>>0){continue}break}}return d|0}function Qg(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0;d=ia-16|0;ia=d;J[a+4>>2]=b;b=J[b+64>>2];e=J[b>>2];b=J[b+4>>2];H[d+15|0]=0;Kg(a+24|0,(b-e>>2>>>0)/3|0,d+15|0);b=J[a+4>>2];e=J[b+56>>2];b=J[b+52>>2];H[d+14|0]=0;Kg(a+36|0,e-b>>2,d+14|0);b=J[c+12>>2];J[a+16>>2]=J[c+8>>2];J[a+20>>2]=b;b=J[c+4>>2];J[a+8>>2]=J[c>>2];J[a+12>>2]=b;ia=d+16|0}function uh(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0;d=ia-16|0;ia=d;J[a+4>>2]=b;e=J[b>>2];b=J[b+4>>2];H[d+15|0]=0;Kg(a+24|0,(b-e>>2>>>0)/3|0,d+15|0);b=J[a+4>>2];e=J[b+28>>2];b=J[b+24>>2];H[d+14|0]=0;Kg(a+36|0,e-b>>2,d+14|0);b=J[c+12>>2];J[a+16>>2]=J[c+8>>2];J[a+20>>2]=b;b=J[c+4>>2];J[a+8>>2]=J[c>>2];J[a+12>>2]=b;ia=d+16|0}function kk(a){var b=0,c=0,d=0,e=0;while(1){b=a;a=b+1|0;c=H[b|0];if((c|0)==32|c-9>>>0<5){continue}break}a:{b:{c:{c=H[b|0];switch(c-43|0){case 0:break b;case 2:break c;default:break a}}e=1}c=H[a|0];b=a}if(c-48>>>0<10){while(1){d=(P(d,10)-H[b|0]|0)+48|0;a=H[b+1|0];b=b+1|0;if(a-48>>>0<10){continue}break}}return e?d:0-d|0}function Th(a){a=a|0;var b=0,c=0,d=0;J[a>>2]=12468;b=J[a+32>>2];if(b){J[a+36>>2]=b;fl(b)}b=J[a+20>>2];if(b){J[a+24>>2]=b;fl(b)}d=J[a+8>>2];if(d){c=J[a+12>>2];b=d;if((c|0)!=(b|0)){while(1){c=c-4|0;b=J[c>>2];J[c>>2]=0;if(b){na[J[J[b>>2]+4>>2]](b)}if((c|0)!=(d|0)){continue}break}b=J[a+8>>2]}J[a+12>>2]=d;fl(b)}return a|0}function Yh(a){a=a|0;var b=0,c=0,d=0;J[a>>2]=12468;b=J[a+32>>2];if(b){J[a+36>>2]=b;fl(b)}b=J[a+20>>2];if(b){J[a+24>>2]=b;fl(b)}d=J[a+8>>2];if(d){c=J[a+12>>2];b=d;if((c|0)!=(b|0)){while(1){c=c-4|0;b=J[c>>2];J[c>>2]=0;if(b){na[J[J[b>>2]+4>>2]](b)}if((c|0)!=(d|0)){continue}break}b=J[a+8>>2]}J[a+12>>2]=d;fl(b)}fl(a)}function sd(a,b){a=a|0;b=b|0;var c=0,d=0,e=0;c=ia-16|0;ia=c;J[c+12>>2]=J[a+12>>2];d=J[b+20>>2];a:{if(!!J[b+16>>2]&(d|0)>=0|(d|0)>0){break a}Ea(b,J[b+4>>2],c+12|0,c+16|0);d=J[b+20>>2];e=J[b+16>>2];J[c+8>>2]=J[a+16>>2];if(!!e&(d|0)>=0|(d|0)>0){break a}Ea(b,J[b+4>>2],c+8|0,c+12|0)}Ge(a+112|0,b);ia=c+16|0;return 1}function fe(a,b){a=a|0;b=b|0;var c=0,d=0,e=0;c=ia-16|0;ia=c;J[c+12>>2]=J[a+12>>2];d=J[b+20>>2];a:{if(!!J[b+16>>2]&(d|0)>=0|(d|0)>0){break a}Ea(b,J[b+4>>2],c+12|0,c+16|0);d=J[b+20>>2];e=J[b+16>>2];J[c+8>>2]=J[a+24>>2];if(!!e&(d|0)>=0|(d|0)>0){break a}Ea(b,J[b+4>>2],c+8|0,c+12|0)}Ge(a+96|0,b);ia=c+16|0;return 1}function xk(a){var b=0;b=1;a:{if((a|0)>=1024){b=898846567431158e293;if(a>>>0<2047){a=a-1023|0;break a}b=_;a=((a|0)>=3069?3069:a)-2046|0;break a}if((a|0)>-1023){break a}b=2004168360008973e-307;if(a>>>0>4294965304){a=a+969|0;break a}b=0;a=((a|0)<=-2960?-2960:a)+1938|0}x(0,0);x(1,a+1023<<20);return b*+z()}function Xc(a,b){a=a|0;b=b|0;var c=0,d=0,e=0;c=ia-16|0;ia=c;J[c+12>>2]=J[a+12>>2];d=J[b+20>>2];a:{if(!!J[b+16>>2]&(d|0)>=0|(d|0)>0){break a}Ea(b,J[b+4>>2],c+12|0,c+16|0);d=J[b+20>>2];e=J[b+16>>2];J[c+8>>2]=J[a+16>>2];if(!!e&(d|0)>=0|(d|0)>0){break a}Ea(b,J[b+4>>2],c+8|0,c+12|0)}ia=c+16|0;return 1}function Qd(a,b){a=a|0;b=b|0;var c=0,d=0,e=0;c=ia-16|0;ia=c;J[c+12>>2]=J[a+12>>2];d=J[b+20>>2];a:{if(!!J[b+16>>2]&(d|0)>=0|(d|0)>0){break a}Ea(b,J[b+4>>2],c+12|0,c+16|0);d=J[b+20>>2];e=J[b+16>>2];J[c+8>>2]=J[a+24>>2];if(!!e&(d|0)>=0|(d|0)>0){break a}Ea(b,J[b+4>>2],c+8|0,c+12|0)}ia=c+16|0;return 1}function qk(a,b,c){var d=0,e=0;a:{b:{if(c>>>0>=4){if((a|b)&3){break b}while(1){if(J[a>>2]!=J[b>>2]){break b}b=b+4|0;a=a+4|0;c=c-4|0;if(c>>>0>3){continue}break}}if(!c){break a}}while(1){d=K[a|0];e=K[b|0];if((d|0)==(e|0)){b=b+1|0;a=a+1|0;c=c-1|0;if(c){continue}break a}break}return d-e|0}return 0}function Wk(a,b){var c=0,d=0,e=0,f=0;d=ia-16|0;ia=d;a:{if(!b){b=0;break a}c=b>>31;e=(c^b)-c|0;c=S(e);Rk(d,e,0,0,0,c+81|0);e=0+J[d+8>>2]|0;c=(J[d+12>>2]^65536)+(16414-c<<16)|0;c=e>>>0>>0?c+1|0:c;f=b&-2147483648|c;c=J[d+4>>2];b=J[d>>2]}J[a>>2]=b;J[a+4>>2]=c;J[a+8>>2]=e;J[a+12>>2]=f;ia=d+16|0}function wh(a){a=a|0;var b=0;J[a+8>>2]=11436;J[a>>2]=11224;b=J[a+96>>2];if(b){J[a+100>>2]=b;fl(b)}b=J[a+80>>2];if(b){J[a+84>>2]=b;fl(b)}b=J[a+68>>2];if(b){J[a+72>>2]=b;fl(b)}b=J[a+56>>2];if(b){J[a+60>>2]=b;fl(b)}J[a+8>>2]=11672;b=J[a+44>>2];if(b){fl(b)}b=J[a+32>>2];if(b){fl(b)}return a|0}function Hj(a){var b=0,c=0,d=0;if(a){d=J[a+24>>2];if(d){b=d;c=J[a+28>>2];if((b|0)!=(c|0)){while(1){c=c-4|0;b=J[c>>2];J[c>>2]=0;if(b){Ki(b+12|0,J[b+16>>2]);Li(b,J[b+4>>2]);fl(b)}if((c|0)!=(d|0)){continue}break}b=J[a+24>>2]}J[a+28>>2]=d;fl(b)}Ki(a+12|0,J[a+16>>2]);Li(a,J[a+4>>2]);fl(a)}}function yd(a){a=a|0;var b=0;J[a>>2]=5084;b=J[a+152>>2];if(b){J[a+156>>2]=b;fl(b)}b=J[a+112>>2];if(b){J[a+116>>2]=b;fl(b)}b=J[a+96>>2];if(b){fl(b)}b=J[a+84>>2];if(b){fl(b)}b=J[a+72>>2];if(b){fl(b)}b=J[a+60>>2];if(b){fl(b)}J[a>>2]=3464;b=J[a+32>>2];if(b){J[a+36>>2]=b;fl(b)}return a|0}function xh(a){a=a|0;var b=0;J[a+8>>2]=11436;J[a>>2]=11224;b=J[a+96>>2];if(b){J[a+100>>2]=b;fl(b)}b=J[a+80>>2];if(b){J[a+84>>2]=b;fl(b)}b=J[a+68>>2];if(b){J[a+72>>2]=b;fl(b)}b=J[a+56>>2];if(b){J[a+60>>2]=b;fl(b)}J[a+8>>2]=11672;b=J[a+44>>2];if(b){fl(b)}b=J[a+32>>2];if(b){fl(b)}fl(a)}function _c(a){a=a|0;var b=0;J[a>>2]=3520;b=J[a+152>>2];if(b){J[a+156>>2]=b;fl(b)}b=J[a+112>>2];if(b){J[a+116>>2]=b;fl(b)}b=J[a+96>>2];if(b){fl(b)}b=J[a+84>>2];if(b){fl(b)}b=J[a+72>>2];if(b){fl(b)}b=J[a+60>>2];if(b){fl(b)}J[a>>2]=3464;b=J[a+32>>2];if(b){J[a+36>>2]=b;fl(b)}return a|0}function Fa(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0,g=0,h=0,i=0;h=J[c+8>>2];e=J[c+16>>2];g=J[c+12>>2];f=g;d=J[c+20>>2];if(h>>>0>e>>>0&(f|0)>=(d|0)|(d|0)<(f|0)){b=K[e+J[c>>2]|0];i=e+1|0;f=i?d:d+1|0;J[c+16>>2]=i;J[c+20>>2]=f;J[a+4>>2]=b}return e>>>0>>0&(d|0)<=(g|0)|(d|0)<(g|0)}function yl(a,b,c){var d=0;if(!c){return J[a+4>>2]==J[b+4>>2]}if((a|0)==(b|0)){return 1}d=J[a+4>>2];a=K[d|0];c=J[b+4>>2];b=K[c|0];a:{if(!a|(b|0)!=(a|0)){break a}while(1){b=K[c+1|0];a=K[d+1|0];if(!a){break a}c=c+1|0;d=d+1|0;if((a|0)==(b|0)){continue}break}}return(a|0)==(b|0)}function kf(a){var b=0,c=0;c=J[a+8>>2];if((c|0)>=2){b=+(c|0);b=W(b*pk(b)-O[a>>3]);if(R(b)<0x8000000000000000){ma=R(b)>=1?~~(b>0?T(V(b*2.3283064365386963e-10),4294967295):W((b-+(~~b>>>0>>>0))*2.3283064365386963e-10))>>>0:0;return~~b>>>0}a=-2147483648}else{a=0}ma=a;return 0}function vh(a){a=a|0;var b=0;J[a>>2]=11436;b=J[a+88>>2];if(b){J[a+92>>2]=b;fl(b)}b=J[a+72>>2];if(b){J[a+76>>2]=b;fl(b)}b=J[a+60>>2];if(b){J[a- -64>>2]=b;fl(b)}b=J[a+48>>2];if(b){J[a+52>>2]=b;fl(b)}J[a>>2]=11672;b=J[a+36>>2];if(b){fl(b)}b=J[a+24>>2];if(b){fl(b)}return a|0}function Xk(a,b){var c=0,d=0,e=0,f=0;c=ia-16|0;ia=c;a:{if(!b){b=0;break a}d=b;b=S(b);Rk(c,d,0,0,0,b+81|0);e=16414-b<<16;b=0;d=b+J[c+8>>2]|0;e=e+(J[c+12>>2]^65536)|0;e=b>>>0>d>>>0?e+1|0:e;f=d;d=J[c>>2];b=J[c+4>>2]}J[a>>2]=d;J[a+4>>2]=b;J[a+8>>2]=f;J[a+12>>2]=e;ia=c+16|0}function Xj(a,b){var c=0,d=0,e=0;J[a+8>>2]=0;J[a>>2]=0;J[a+4>>2]=0;a:{c=J[b+4>>2];d=J[b>>2];b:{if((c|0)==(d|0)){a=c;break b}c=c-d|0;if((c|0)<0){break a}d=c;e=ll(c);c=nk(e,0,c);d=d+c|0;J[a+8>>2]=d;J[a+4>>2]=d;J[a>>2]=c;c=J[b>>2];a=J[b+4>>2]}lk(e,c,a-c|0);return}La();C()}function Ch(a){a=a|0;var b=0;J[a>>2]=11436;b=J[a+88>>2];if(b){J[a+92>>2]=b;fl(b)}b=J[a+72>>2];if(b){J[a+76>>2]=b;fl(b)}b=J[a+60>>2];if(b){J[a- -64>>2]=b;fl(b)}b=J[a+48>>2];if(b){J[a+52>>2]=b;fl(b)}J[a>>2]=11672;b=J[a+36>>2];if(b){fl(b)}b=J[a+24>>2];if(b){fl(b)}fl(a)}function Kk(a,b,c){var d=0,e=0,f=0;a:{if(!b){d=a;break a}while(1){d=$l(a,b,10,0);f=ma;e=Zl(d,f,10,0);c=c-1|0;H[c|0]=a-e|48;e=b>>>0>9;a=d;b=f;if(e){continue}break}}if(d){while(1){c=c-1|0;a=(d>>>0)/10|0;H[c|0]=d-P(a,10)|48;b=d>>>0>9;d=a;if(b){continue}break}}return c}function ve(a){a=a|0;var b=0;J[a+40>>2]=2040;J[a>>2]=9996;b=J[a+48>>2];if(b){J[a+52>>2]=b;fl(b)}J[a>>2]=2632;b=J[a+36>>2];J[a+36>>2]=0;if(b){na[J[J[b>>2]+4>>2]](b)}J[a>>2]=2400;b=J[a+32>>2];J[a+32>>2]=0;if(b){Mb(b)}b=J[a+16>>2];if(b){J[a+20>>2]=b;fl(b)}return a|0}function nj(a){a=a|0;var b=0,c=0;b=ll(8);J[b+4>>2]=a;J[b>>2]=0;a:{b:{c:{if(!a){break c}c=Al(a,15016,14936);if(!c){break c}c=bf(ll(56),c);a=J[b>>2];J[b>>2]=c;if(a){break b}break a}c=af(ll(56),a);a=J[b>>2];J[b>>2]=c;if(!a){break a}}na[J[J[a>>2]+4>>2]](a)}return b|0}function Ie(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,f=0;e=ia-96|0;ia=e;f=af(e+40|0,c);Je(e,b,c);df(f,e);Oc(e+24|0,J[e+28>>2]);Ke(e+12|0,J[e+16>>2]);Oc(e,J[e+4>>2]);cf(a,f,d);J[f>>2]=10264;Oc(f+28|0,J[f+32>>2]);Ke(f+16|0,J[f+20>>2]);Oc(f+4|0,J[f+8>>2]);ia=e+96|0}function Ug(a){var b=0;if(a){b=J[a+76>>2];if(b){J[a+80>>2]=b;fl(b)}b=J[a- -64>>2];if(b){J[a+68>>2]=b;fl(b)}b=J[a+48>>2];if(b){J[a+52>>2]=b;fl(b)}b=J[a+24>>2];if(b){J[a+28>>2]=b;fl(b)}b=J[a+12>>2];if(b){J[a+16>>2]=b;fl(b)}b=J[a>>2];if(b){J[a+4>>2]=b;fl(b)}fl(a)}}function cl(a,b,c){var d=0,e=0,f=0,g=0,h=0;f=ia-16|0;ia=f;d=ia-16|0;ia=d;b=b-a>>2;while(1){if(b){J[d+12>>2]=a;e=b>>>1|0;J[d+12>>2]=J[d+12>>2]+(e<<2);h=(e^-1)+b|0;b=e;e=J[d+12>>2];g=M[e>>2]>2];b=g?h:b;a=g?e+4|0:a;continue}break}ia=d+16|0;ia=f+16|0;return a}function ch(a){var b=0;b=J[a+84>>2];if(b){J[a+88>>2]=b;fl(b)}b=J[a+72>>2];if(b){J[a+76>>2]=b;fl(b)}b=J[a+52>>2];if(b){J[a+56>>2]=b;fl(b)}b=J[a+40>>2];if(b){J[a+44>>2]=b;fl(b)}b=J[a+28>>2];if(b){J[a+32>>2]=b;fl(b)}b=J[a+12>>2];if(b){fl(b)}a=J[a>>2];if(a){fl(a)}}function we(a){a=a|0;var b=0;J[a+40>>2]=2040;J[a>>2]=9996;b=J[a+48>>2];if(b){J[a+52>>2]=b;fl(b)}J[a>>2]=2632;b=J[a+36>>2];J[a+36>>2]=0;if(b){na[J[J[b>>2]+4>>2]](b)}J[a>>2]=2400;b=J[a+32>>2];J[a+32>>2]=0;if(b){Mb(b)}b=J[a+16>>2];if(b){J[a+20>>2]=b;fl(b)}fl(a)}function nl(a){var b=0,c=0,d=0;c=ia-16|0;ia=c;H[c+15|0]=10;b=J[a+16>>2];a:{if(!b){if(Dk(a)){break a}b=J[a+16>>2]}d=b;b=J[a+20>>2];if(!((d|0)==(b|0)|J[a+80>>2]==10)){J[a+20>>2]=b+1;H[b|0]=10;break a}if((na[J[a+36>>2]](a,c+15|0,1)|0)!=1){break a}}ia=c+16|0}function sl(a,b,c){var d=0,e=0;a:{b:{if(c>>>0<11){d=a;H[d+11|0]=c;break b}if(c>>>0>4294967279){break a}if(c>>>0>=11){e=c+16&-16;d=e-1|0;d=(d|0)==11?e:d}else{d=10}e=d+1|0;d=ll(e);J[a>>2]=d;J[a+8>>2]=e|-2147483648;J[a+4>>2]=c}hl(d,b,c+1|0);return}ze();C()}function wc(a,b){a=a|0;b=b|0;var c=0,d=0;c=J[a+72>>2];a:{if(!c){break a}J[c+4>>2]=a+60;if(!(na[J[J[c>>2]+12>>2]](c)|0)){break a}if(!(na[J[J[a>>2]+40>>2]](a)|0)){break a}if(!(na[J[J[a>>2]+44>>2]](a,b)|0)){break a}d=na[J[J[a>>2]+48>>2]](a,b)|0}return d|0}function ue(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0;e=ia-16|0;ia=e;d=a+40|0;c=ab(d,J[a+8>>2],J[b+4>>2]-J[b>>2]>>2);d=Qa(d,J[a+8>>2],b,c);a:{if(d){b=J[a+32>>2];J[a+32>>2]=c;if(!b){break a}Mb(b);break a}J[e+8>>2]=0;if(!c){break a}Mb(c)}ia=e+16|0;return d|0}function Md(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0;e=ia-16|0;ia=e;d=a+40|0;c=ab(d,J[a+8>>2],J[b+4>>2]-J[b>>2]>>2);d=Aa(d,J[a+8>>2],b,c);a:{if(d){b=J[a+32>>2];J[a+32>>2]=c;if(!b){break a}Mb(b);break a}J[e+8>>2]=0;if(!c){break a}Mb(c)}ia=e+16|0;return d|0}function Gg(a,b){a=a|0;b=b|0;var c=0,d=0;c=J[a+172>>2];a=J[a+176>>2];if((c|0)!=(a|0)){a=(a-c|0)/136|0;d=a>>>0<=1?1:a;a=0;while(1){if(J[P(a,136)+c>>2]==(b|0)){a=P(a,136)+c|0;return(K[a+100|0]?a+4|0:0)|0}a=a+1|0;if((d|0)!=(a|0)){continue}break}}return 0}function uk(a){var b=0,c=0,d=0;b=a;a:{if(b&3){while(1){if(!K[b|0]){break a}b=b+1|0;if(b&3){continue}break}}while(1){c=b;b=b+4|0;d=J[c>>2];if(!((d^-1)&d-16843009&-2139062144)){continue}break}while(1){b=c;c=b+1|0;if(K[b|0]){continue}break}}return b-a|0}function cb(a,b,c,d,e,f,g){var h=0;J[a>>2]=c;if(c){h=J[c+20>>2];J[a+8>>2]=J[c+16>>2];J[a+12>>2]=h;h=J[c+28>>2];J[a+16>>2]=J[c+24>>2];J[a+20>>2]=h}J[a+56>>2]=b;J[a+48>>2]=0;J[a+52>>2]=0;J[a+40>>2]=f;J[a+44>>2]=g;H[a+32|0]=0;J[a+28>>2]=e;H[a+24|0]=d}function Ek(a,b){var c=0,d=0,e=0;A(+a);d=v(1)|0;e=v(0)|0;c=d>>>20&2047;if((c|0)!=2047){if(!c){if(a==0){c=0}else{a=Ek(a*0x10000000000000000,b);c=J[b>>2]+-64|0}J[b>>2]=c;return a}J[b>>2]=c-1022;x(0,e|0);x(1,d&-2146435073|1071644672);a=+z()}return a}function yc(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0;c=J[a+36>>2];if((c|0)==J[a+40>>2]){return 1}f=a+60|0;while(1){c=J[(d<<2)+c>>2];e=na[J[J[c>>2]+20>>2]](c,f,b)|0;if(e){d=d+1|0;c=J[a+36>>2];if(d>>>0>2]-c>>2>>>0){continue}}break}return e|0}function Jc(a){J[a+32>>2]=0;J[a+12>>2]=-1;J[a+4>>2]=0;J[a+8>>2]=0;J[a+16>>2]=0;J[a+20>>2]=0;J[a>>2]=2400;H[a+21|0]=0;H[a+22|0]=0;H[a+23|0]=0;H[a+24|0]=0;H[a+25|0]=0;H[a+26|0]=0;H[a+27|0]=0;H[a+28|0]=0;J[a+36>>2]=0;J[a>>2]=2632;return a}function xc(a){a=a|0;var b=0,c=0,d=0,e=0;b=J[a+36>>2];if((b|0)==J[a+40>>2]){return 1}e=a+60|0;while(1){b=J[(c<<2)+b>>2];d=na[J[J[b>>2]+16>>2]](b,e)|0;if(d){c=c+1|0;b=J[a+36>>2];if(c>>>0>2]-b>>2>>>0){continue}}break}return d|0}function ie(a){a=a|0;var b=0;J[a>>2]=8648;b=J[a+136>>2];if(b){J[a+140>>2]=b;fl(b)}b=J[a+96>>2];if(b){J[a+100>>2]=b;fl(b)}b=J[a+80>>2];if(b){fl(b)}b=J[a+68>>2];if(b){fl(b)}b=J[a+56>>2];if(b){fl(b)}b=J[a+44>>2];if(b){fl(b)}return a|0}function fi(a,b){a=a|0;b=b|0;var c=0,d=0;c=ia-16|0;ia=c;J[c+12>>2]=J[J[b+4>>2]+80>>2];b=J[b+44>>2];d=J[b+20>>2];if(!J[b+16>>2]&(d|0)<=0|(d|0)<0){Ea(b,J[b+4>>2],c+12|0,c+16|0)}J[a>>2]=0;J[a+4>>2]=0;J[a+8>>2]=0;J[a+12>>2]=0;ia=c+16|0}function Td(a){a=a|0;var b=0;J[a>>2]=7e3;b=J[a+136>>2];if(b){J[a+140>>2]=b;fl(b)}b=J[a+96>>2];if(b){J[a+100>>2]=b;fl(b)}b=J[a+80>>2];if(b){fl(b)}b=J[a+68>>2];if(b){fl(b)}b=J[a+56>>2];if(b){fl(b)}b=J[a+44>>2];if(b){fl(b)}return a|0}function Mb(a){a=a|0;var b=0,c=0;if(a){b=J[a+88>>2];J[a+88>>2]=0;if(b){c=J[b+8>>2];if(c){J[b+12>>2]=c;fl(c)}fl(b)}b=J[a+68>>2];if(b){J[a+72>>2]=b;fl(b)}b=J[a+64>>2];J[a+64>>2]=0;if(b){c=J[b>>2];if(c){J[b+4>>2]=c;fl(c)}fl(b)}fl(a)}}function Ik(a){var b=0,c=0,d=0;if(H[J[a>>2]]-48>>>0>=10){return 0}while(1){d=J[a>>2];c=-1;if(b>>>0<=214748364){c=H[d|0]-48|0;b=P(b,10);c=(c|0)>(b^2147483647)?-1:c+b|0}J[a>>2]=d+1;b=c;if(H[d+1|0]-48>>>0<10){continue}break}return b}function zc(a,b){a=a|0;b=b|0;var c=0,d=0,e=0;c=J[a+36>>2];if((c|0)==J[a+40>>2]){return 1}while(1){c=J[(d<<2)+c>>2];e=na[J[J[c>>2]+24>>2]](c,b)|0;if(e){d=d+1|0;c=J[a+36>>2];if(d>>>0>2]-c>>2>>>0){continue}}break}return e|0}function ye(a,b){var c=0,d=0,e=0;c=uk(b);if(c>>>0<4294967280){a:{b:{if(c>>>0>=11){e=(c|15)+1|0;d=ll(e);J[a+8>>2]=e|-2147483648;J[a>>2]=d;J[a+4>>2]=c;break b}H[a+11|0]=c;d=a;if(!c){break a}}lk(d,b,c)}H[c+d|0]=0;return a}ze();C()}function je(a){a=a|0;var b=0;J[a>>2]=8648;b=J[a+136>>2];if(b){J[a+140>>2]=b;fl(b)}b=J[a+96>>2];if(b){J[a+100>>2]=b;fl(b)}b=J[a+80>>2];if(b){fl(b)}b=J[a+68>>2];if(b){fl(b)}b=J[a+56>>2];if(b){fl(b)}b=J[a+44>>2];if(b){fl(b)}fl(a)}function di(a){a=a|0;var b=0,c=0,d=0;b=J[a+32>>2];d=J[a+36>>2];if((b|0)==(d|0)){return 1}while(1){c=J[J[a+8>>2]+(J[b>>2]<<2)>>2];c=na[J[J[c>>2]+20>>2]](c,J[a+44>>2])|0;if(c){b=b+4|0;if((d|0)!=(b|0)){continue}}break}return c|0}function Ud(a){a=a|0;var b=0;J[a>>2]=7e3;b=J[a+136>>2];if(b){J[a+140>>2]=b;fl(b)}b=J[a+96>>2];if(b){J[a+100>>2]=b;fl(b)}b=J[a+80>>2];if(b){fl(b)}b=J[a+68>>2];if(b){fl(b)}b=J[a+56>>2];if(b){fl(b)}b=J[a+44>>2];if(b){fl(b)}fl(a)}function _l(a,b,c,d){var e=0,f=0,g=0,h=0;f=b^d;g=f>>31;e=b>>31;a=a^e;h=a-e|0;e=(b^e)-((a>>>0>>0)+e|0)|0;a=d>>31;b=c^a;f=f>>31;a=$l(h,e,b-a|0,(a^d)-((a>>>0>b>>>0)+a|0)|0)^f;b=a-f|0;ma=(g^ma)-((a>>>0>>0)+g|0)|0;return b}function ul(a,b,c){var d=0,e=0,f=0;e=ia-16|0;ia=e;d=J[a+8>>2]&2147483647;a:{if(d>>>0>c>>>0){d=J[a>>2];J[a+4>>2]=c;hl(d,b,c);H[e+15|0]=0;H[c+d|0]=K[e+15|0];break a}f=a;a=J[a+4>>2];rl(f,d-1|0,(c-d|0)+1|0,a,0,a,c,b)}ia=e+16|0}function Da(a,b){a=a|0;b=b|0;var c=0,d=0;c=ia-16|0;ia=c;a=J[a+4>>2];a:{if((a|0)==-1){break a}H[c+15|0]=a;d=J[b+20>>2];if(!!J[b+16>>2]&(d|0)>=0|(d|0)>0){break a}Ea(b,J[b+4>>2],c+15|0,c+16|0)}ia=c+16|0;return(a|0)!=-1|0}function Zl(a,b,c,d){var e=0,f=0,g=0,h=0,i=0,j=0;e=c>>>16|0;f=a>>>16|0;j=P(e,f);g=c&65535;h=a&65535;i=P(g,h);f=(i>>>16|0)+P(f,g)|0;e=(f&65535)+P(e,h)|0;ma=(P(b,c)+j|0)+P(a,d)+(f>>>16)+(e>>>16)|0;return i&65535|e<<16}function Bl(a,b,c){var d=0;d=J[a+16>>2];if(!d){J[a+36>>2]=1;J[a+24>>2]=c;J[a+16>>2]=b;return}a:{if((b|0)==(d|0)){if(J[a+24>>2]!=2){break a}J[a+24>>2]=c;return}H[a+54|0]=1;J[a+24>>2]=2;J[a+36>>2]=J[a+36>>2]+1}}function za(a,b){a=a|0;b=b|0;var c=0,d=0;J[b>>2]=2;c=J[b+8>>2];d=J[b+12>>2]-c|0;if(d>>>0<=4294967291){ii(b+8|0,d+4|0);c=J[b+8>>2]}b=c+d|0;a=J[a+4>>2];H[b|0]=a;H[b+1|0]=a>>>8;H[b+2|0]=a>>>16;H[b+3|0]=a>>>24}function pi(a,b){var c=0,d=Q(0),e=0;b=ec(a,b);if((b|0)!=(a+4|0)){a=ia-16|0;ia=a;c=b+28|0;Ck(a,H[b+39|0]<0?J[c>>2]:c,0,1);e=al(J[a>>2],J[a+4>>2],J[a+8>>2],J[a+12>>2]);ia=a+16|0;d=Q(e)}else{d=Q(1)}return d}function Lk(a,b,c,d,e){var f=0;f=ia-256|0;ia=f;if(!(e&73728|(c|0)<=(d|0))){d=c-d|0;c=d>>>0<256;nk(f,b&255,c?d:256);if(!c){while(1){Hk(a,f,256);d=d-256|0;if(d>>>0>255){continue}break}}Hk(a,f,d)}ia=f+256|0}function Hc(a,b){a=a|0;b=b|0;var c=0,d=0;d=J[a+16>>2];c=0;a:{if(J[a+20>>2]-d>>2<=(b|0)){break a}b=J[(b<<2)+d>>2];c=0;if((b|0)<0){break a}a=J[J[a+36>>2]+(b<<2)>>2];b=J[a+32>>2];c=b?b:J[a+8>>2]}return c|0}function Fc(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0;d=-1;e=J[a+16>>2];a:{if(J[a+20>>2]-e>>2<=(b|0)){break a}b=J[(b<<2)+e>>2];if((b|0)<0){break a}d=J[J[J[J[a+36>>2]+(b<<2)>>2]+16>>2]+(c<<2)>>2]}return d|0}function Ec(a,b){a=a|0;b=b|0;var c=0,d=0;d=J[a+16>>2];c=0;a:{if(J[a+20>>2]-d>>2<=(b|0)){break a}b=J[(b<<2)+d>>2];c=0;if((b|0)<0){break a}a=J[J[a+36>>2]+(b<<2)>>2];c=J[a+20>>2]-J[a+16>>2]>>2}return c|0}function Rj(a,b){a=a|0;b=b|0;var c=0,d=0,e=0;ek(a,b);a:{if((b|0)<0){break a}d=J[a+88>>2];c=J[a+84>>2];if(d-c>>2<=(b|0)){break a}b=c+(b<<2)|0;c=b+4|0;e=d-c|0;if((c|0)!=(d|0)){mk(b,c,e)}J[a+88>>2]=b+e}}function Qc(a){a=a|0;var b=0;J[a>>2]=2632;b=J[a+36>>2];J[a+36>>2]=0;if(b){na[J[J[b>>2]+4>>2]](b)}J[a>>2]=2400;b=J[a+32>>2];J[a+32>>2]=0;if(b){Mb(b)}b=J[a+16>>2];if(b){J[a+20>>2]=b;fl(b)}return a|0}function Ce(a){var b=0,c=0;c=ia-16|0;ia=c;J[c+8>>2]=0;J[c+12>>2]=0;De(a,c+8|0);J[a+24>>2]=0;J[a+28>>2]=0;b=J[a+12>>2];J[a+16>>2]=b;if(b){fl(b)}b=J[a>>2];if(b){J[a+4>>2]=b;fl(b)}ia=c+16|0;return a}function db(a){a=bb(a);J[a+64>>2]=0;J[a+68>>2]=0;J[a+88>>2]=0;J[a+72>>2]=0;J[a+76>>2]=0;H[a+77|0]=0;H[a+78|0]=0;H[a+79|0]=0;H[a+80|0]=0;H[a+81|0]=0;H[a+82|0]=0;H[a+83|0]=0;H[a+84|0]=0;return a}function Rc(a){a=a|0;var b=0;J[a>>2]=2632;b=J[a+36>>2];J[a+36>>2]=0;if(b){na[J[J[b>>2]+4>>2]](b)}J[a>>2]=2400;b=J[a+32>>2];J[a+32>>2]=0;if(b){Mb(b)}b=J[a+16>>2];if(b){J[a+20>>2]=b;fl(b)}fl(a)}function $h(a){J[a+52>>2]=0;J[a+4>>2]=0;J[a+8>>2]=0;J[a>>2]=12468;J[a+12>>2]=0;J[a+16>>2]=0;J[a+20>>2]=0;J[a+24>>2]=0;J[a+28>>2]=0;J[a+32>>2]=0;J[a+36>>2]=0;J[a+40>>2]=0;J[a+44>>2]=0;return a}function tk(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0;e=ia-16|0;ia=e;a=ha(J[a+60>>2],b|0,c|0,d&255,e+8|0)|0;if(a){J[4842]=a;a=-1}else{a=0}ia=e+16|0;ma=a?-1:J[e+12>>2];return(a?-1:J[e+8>>2])|0}function bb(a){J[a+8>>2]=0;J[a+12>>2]=0;J[a>>2]=0;J[a+40>>2]=0;J[a+44>>2]=0;J[a+28>>2]=9;H[a+24|0]=1;J[a+56>>2]=-1;J[a+60>>2]=0;J[a+16>>2]=0;J[a+20>>2]=0;J[a+48>>2]=0;J[a+52>>2]=0;return a}function Dk(a){var b=0;b=J[a+72>>2];J[a+72>>2]=b-1|b;b=J[a>>2];if(b&8){J[a>>2]=b|32;return-1}J[a+4>>2]=0;J[a+8>>2]=0;b=J[a+44>>2];J[a+28>>2]=b;J[a+20>>2]=b;J[a+16>>2]=b+J[a+48>>2];return 0}function $k(a,b,c,d,e,f,g,h,i){var j=0;j=ia-16|0;ia=j;Qk(j,b,c,d,e,f,g,h,i^-2147483648);d=J[j>>2];c=J[j+4>>2];b=J[j+12>>2];J[a+8>>2]=J[j+8>>2];J[a+12>>2]=b;J[a>>2]=d;J[a+4>>2]=c;ia=j+16|0}function ql(a,b){var c=0;if(b>>>0<=99){return ol(a,b)}if(b>>>0<=999){c=(b>>>0)/100|0;H[a|0]=c+48;a=a+1|0;b=L[(b-P(c,100)<<1)+18192>>1];H[a|0]=b;H[a+1|0]=b>>>8;return a+2|0}return pl(a,b)}function aj(a,b,c){a=a|0;b=b|0;c=c|0;a=0;a:{if(J[b+4>>2]|!b){break a}a=Yj(ll(36),c);J[a+24>>2]=0;J[a+28>>2]=0;J[a+32>>2]=0;c=J[b+4>>2];J[b+4>>2]=a;a=1;if(!c){break a}Hj(c)}return a|0}function tc(a,b,c){a=wb(a,c);J[a+36>>2]=0;J[a+40>>2]=0;J[a>>2]=2504;J[a+72>>2]=b;J[a+44>>2]=0;J[a+48>>2]=0;J[a+52>>2]=0;J[a+56>>2]=0;J[a+60>>2]=0;J[a+64>>2]=0;J[a+68>>2]=0;return a}function vl(a,b,c){var d=0,e=0;d=ia-16|0;ia=d;a:{if(c>>>0<=10){H[a+11|0]=c;hl(a,b,c);H[d+15|0]=0;H[a+c|0]=K[d+15|0];break a}e=a;a=K[a+11|0];rl(e,10,c-10|0,a,0,a,c,b)}ia=d+16|0}function dl(a){var b=0,c=0;b=J[4811];c=a+7&-8;a=b+c|0;a:{if(a>>>0<=b>>>0?c:0){break a}if(a>>>0>oa()<<16>>>0){if(!(ga(a|0)|0)){break a}}J[4811]=a;return b}J[4842]=48;return-1}function Mh(a){a=a|0;var b=0;J[a+8>>2]=10884;J[a>>2]=11984;b=J[a+56>>2];if(b){J[a+60>>2]=b;fl(b)}J[a+8>>2]=11136;b=J[a+44>>2];if(b){fl(b)}b=J[a+32>>2];if(b){fl(b)}return a|0}function Gh(a){a=a|0;var b=0;J[a+8>>2]=11856;J[a>>2]=11692;b=J[a+56>>2];if(b){J[a+60>>2]=b;fl(b)}J[a+8>>2]=11672;b=J[a+44>>2];if(b){fl(b)}b=J[a+32>>2];if(b){fl(b)}return a|0}function Nh(a){a=a|0;var b=0;J[a+8>>2]=10884;J[a>>2]=11984;b=J[a+56>>2];if(b){J[a+60>>2]=b;fl(b)}J[a+8>>2]=11136;b=J[a+44>>2];if(b){fl(b)}b=J[a+32>>2];if(b){fl(b)}fl(a)}function Hh(a){a=a|0;var b=0;J[a+8>>2]=11856;J[a>>2]=11692;b=J[a+56>>2];if(b){J[a+60>>2]=b;fl(b)}J[a+8>>2]=11672;b=J[a+44>>2];if(b){fl(b)}b=J[a+32>>2];if(b){fl(b)}fl(a)}function Ki(a,b){if(b){Ki(a,J[b>>2]);Ki(a,J[b+4>>2]);a=J[b+28>>2];J[b+28>>2]=0;if(a){Ki(a+12|0,J[a+16>>2]);Li(a,J[a+4>>2]);fl(a)}if(H[b+27|0]<0){fl(J[b+16>>2])}fl(b)}}function ml(a,b){var c=0,d=0,e=0,f=0;J[a>>2]=18812;J[a>>2]=18924;c=uk(b);d=ll(c+13|0);J[d+8>>2]=0;J[d+4>>2]=c;J[d>>2]=c;e=a,f=lk(d+12|0,b,c+1|0),J[e+4>>2]=f;return a}function pl(a,b){var c=0,d=0;c=(b>>>0)/100|0;d=L[(c<<1)+18192>>1];H[a|0]=d;H[a+1|0]=d>>>8;a=a+2|0;b=L[(b-P(c,100)<<1)+18192>>1];H[a|0]=b;H[a+1|0]=b>>>8;return a+2|0}function Db(a,b){a=a|0;b=b|0;var c=0;a:{if(!(na[J[J[a>>2]+40>>2]](a)|0)){break a}if(!(na[J[J[a>>2]+44>>2]](a,b)|0)){break a}c=na[J[J[a>>2]+48>>2]](a,b)|0}return c|0}function zg(a){a=a|0;var b=0;a:{b=J[a+64>>2];if(!b){break a}b=na[J[J[b>>2]+32>>2]](b)|0;if(!b){break a}J[a+60>>2]=((J[b+4>>2]-J[b>>2]>>2>>>0)/3|0)-J[b+40>>2]}}function ya(a,b){a=a|0;b=b|0;var c=0;b=J[b+88>>2];if(!(!b|J[b>>2]!=2)){c=a;a=J[b+8>>2];J[c+4>>2]=K[a|0]|K[a+1|0]<<8|(K[a+2|0]<<16|K[a+3|0]<<24);c=1}return c|0}function Rg(a){a=a|0;var b=0;J[a>>2]=10884;b=J[a+48>>2];if(b){J[a+52>>2]=b;fl(b)}J[a>>2]=11136;b=J[a+36>>2];if(b){fl(b)}b=J[a+24>>2];if(b){fl(b)}return a|0}function Fh(a){a=a|0;var b=0;J[a>>2]=11856;b=J[a+48>>2];if(b){J[a+52>>2]=b;fl(b)}J[a>>2]=11672;b=J[a+36>>2];if(b){fl(b)}b=J[a+24>>2];if(b){fl(b)}return a|0}function qi(a,b){var c=0;a:{c=a+4|0;a=ec(a,b);if((c|0)==(a|0)){break a}b=a+28|0;a=kk(H[a+39|0]<0?J[b>>2]:b);if((a|0)==-1){break a}return(a|0)!=0}return 0}function ri(a,b,c){var d=0;d=a+4|0;a=ec(a,b);a:{if((d|0)==(a|0)){break a}b=a+28|0;a=kk(H[a+39|0]<0?J[b>>2]:b);if((a|0)==-1){break a}c=(a|0)!=0}return c}function rh(a){a=a|0;var b=0;J[a>>2]=10884;b=J[a+48>>2];if(b){J[a+52>>2]=b;fl(b)}J[a>>2]=11136;b=J[a+36>>2];if(b){fl(b)}b=J[a+24>>2];if(b){fl(b)}fl(a)}function Lh(a){a=a|0;var b=0;J[a>>2]=11856;b=J[a+48>>2];if(b){J[a+52>>2]=b;fl(b)}J[a>>2]=11672;b=J[a+36>>2];if(b){fl(b)}b=J[a+24>>2];if(b){fl(b)}fl(a)}function wb(a,b){J[a+4>>2]=0;J[a+8>>2]=0;J[a>>2]=2196;J[a+12>>2]=0;J[a+16>>2]=0;J[a+20>>2]=0;J[a+24>>2]=0;J[a+28>>2]=0;J[a+32>>2]=0;xb(a,b);return a}function Hl(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;if(yl(a,J[b+8>>2],f)){El(b,c,d,e);return}a=J[a+8>>2];na[J[J[a>>2]+20>>2]](a,b,c,d,e,f)}function qd(a){a=a|0;var b=0;a:{if(!J[a- -64>>2]|!J[a+68>>2]|(!J[a+44>>2]|!J[a+48>>2])){break a}if(!J[a+52>>2]){break a}b=J[a+56>>2]!=0}return b|0}function de(a){a=a|0;var b=0;a:{if(!J[a+48>>2]|!J[a+52>>2]|(!J[a+28>>2]|!J[a+32>>2])){break a}if(!J[a+36>>2]){break a}b=J[a+40>>2]!=0}return b|0}function bk(a){var b=0,c=0;b=J[a+20>>2];a:{if((J[a+24>>2]-b|0)<=0){break a}b=J[b>>2];if((b|0)==-1){break a}c=J[J[a+8>>2]+(b<<2)>>2]}return c}function ak(a,b){var c=0;c=-1;a:{if((b|0)==-1|(b|0)>4){break a}b=P(b,12)+a|0;a=J[b+20>>2];if((J[b+24>>2]-a|0)<=0){break a}c=J[a>>2]}return c}function Fi(){var a=0;a=$j(ll(108));J[a+84>>2]=0;J[a+88>>2]=0;J[a>>2]=14892;J[a+92>>2]=0;J[a+96>>2]=0;J[a+100>>2]=0;J[a+104>>2]=0;return a|0}function Ok(a,b){a=a|0;b=b|0;var c=0,d=0,e=0;c=b;b=J[b>>2]+7&-8;J[c>>2]=b+16;d=a,e=al(J[b>>2],J[b+4>>2],J[b+8>>2],J[b+12>>2]),O[d>>3]=e}function Nj(a){a=a|0;var b=0;J[a>>2]=14892;b=J[a+96>>2];if(b){J[a+100>>2]=b;fl(b)}b=J[a+84>>2];if(b){J[a+88>>2]=b;fl(b)}return Oj(a)|0}function Ee(a){var b=0;b=ia-16|0;ia=b;J[b+8>>2]=0;J[b+12>>2]=0;De(a,b+8|0);J[a+24>>2]=0;J[a+28>>2]=0;J[a+16>>2]=J[a+12>>2];ia=b+16|0}function Pj(a){a=a|0;var b=0;J[a>>2]=14892;b=J[a+96>>2];if(b){J[a+100>>2]=b;fl(b)}b=J[a+84>>2];if(b){J[a+88>>2]=b;fl(b)}fl(Oj(a))}function qc(a){a=a|0;var b=0;J[a>>2]=2400;b=J[a+32>>2];J[a+32>>2]=0;if(b){Mb(b)}b=J[a+16>>2];if(b){J[a+20>>2]=b;fl(b)}return a|0}function ed(a){a=a|0;var b=0;J[a>>2]=3768;b=J[a+76>>2];if(b){fl(b)}J[a>>2]=3464;b=J[a+32>>2];if(b){J[a+36>>2]=b;fl(b)}return a|0}function Li(a,b){if(b){Li(a,J[b>>2]);Li(a,J[b+4>>2]);a=J[b+28>>2];if(a){J[b+32>>2]=a;fl(a)}if(H[b+27|0]<0){fl(J[b+16>>2])}fl(b)}}function Bd(a){a=a|0;var b=0;J[a>>2]=5320;b=J[a+76>>2];if(b){fl(b)}J[a>>2]=3464;b=J[a+32>>2];if(b){J[a+36>>2]=b;fl(b)}return a|0}function Bb(a){a=a|0;var b=0;J[a>>2]=2196;b=J[a+16>>2];if(b){J[a+20>>2]=b;fl(b)}b=J[a+4>>2];if(b){J[a+8>>2]=b;fl(b)}return a|0}function Ii(){var a=0,b=0;a=ll(24);J[a+4>>2]=0;J[a+8>>2]=0;b=a+16|0;J[b>>2]=0;J[b+4>>2]=0;J[a>>2]=a+4;J[a+12>>2]=b;return a|0}function Dl(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;if(yl(a,J[b+8>>2],0)){Bl(b,c,d);return}a=J[a+8>>2];na[J[J[a>>2]+28>>2]](a,b,c,d)}function rc(a){a=a|0;var b=0;J[a>>2]=2400;b=J[a+32>>2];J[a+32>>2]=0;if(b){Mb(b)}b=J[a+16>>2];if(b){J[a+20>>2]=b;fl(b)}fl(a)}function ll(a){var b=0;a=a?a:1;a:{while(1){b=el(a);if(b){break a}b=J[5014];if(b){na[b|0]();continue}break}fa();C()}return b}function fd(a){a=a|0;var b=0;J[a>>2]=3768;b=J[a+76>>2];if(b){fl(b)}J[a>>2]=3464;b=J[a+32>>2];if(b){J[a+36>>2]=b;fl(b)}fl(a)}function Cd(a){a=a|0;var b=0;J[a>>2]=5320;b=J[a+76>>2];if(b){fl(b)}J[a>>2]=3464;b=J[a+32>>2];if(b){J[a+36>>2]=b;fl(b)}fl(a)}function Oc(a,b){if(b){Oc(a,J[b>>2]);Oc(a,J[b+4>>2]);if(H[b+39|0]<0){fl(J[b+28>>2])}if(H[b+27|0]<0){fl(J[b+16>>2])}fl(b)}}function Nl(a){a=a|0;var b=0,c=0;J[a>>2]=18924;b=J[a+4>>2]-12|0;c=J[b+8>>2]-1|0;J[b+8>>2]=c;if((c|0)<0){fl(b)}return a|0}function Sa(a,b,c,d,e){var f=0;f=b-1|0;if(f>>>0<=29){J[a+4>>2]=b;Ta(a+8|0,c,(d<<2)+c|0);N[a+20>>2]=e}return f>>>0<30}function yk(a,b,c,d,e,f,g,h,i){J[a>>2]=b;J[a+4>>2]=c;J[a+8>>2]=d;J[a+12>>2]=e&65535|(i>>>16&32768|e>>>16&32767)<<16}function nd(a){a=a|0;var b=0;J[a>>2]=4004;Ce(a+112|0);J[a>>2]=3464;b=J[a+32>>2];if(b){J[a+36>>2]=b;fl(b)}return a|0}function kc(a,b,c){a=a|0;b=b|0;c=c|0;J[a+4>>2]=b;b=J[J[J[b+4>>2]+8>>2]+(c<<2)>>2];J[a+12>>2]=c;J[a+8>>2]=b;return 1}function bf(a,b){J[a>>2]=10264;He(a+4|0);J[a+52>>2]=b;J[a+48>>2]=b;J[a>>2]=10360;J[a+40>>2]=0;J[a+44>>2]=0;return a}function af(a,b){J[a>>2]=10264;He(a+4|0);J[a+52>>2]=0;J[a+48>>2]=b;J[a>>2]=10360;J[a+40>>2]=0;J[a+44>>2]=0;return a}function Fd(a){a=a|0;var b=0;J[a>>2]=5544;Ce(a+112|0);J[a>>2]=3464;b=J[a+32>>2];if(b){J[a+36>>2]=b;fl(b)}return a|0}function ol(a,b){if(b>>>0<=9){H[a|0]=b+48;return a+1|0}b=L[(b<<1)+18192>>1];H[a|0]=b;H[a+1|0]=b>>>8;return a+2|0}function hd(a){a=a|0;var b=0;if(!(!J[a+60>>2]|!J[a+44>>2]|(!J[a+48>>2]|!J[a+52>>2]))){b=J[a+56>>2]!=0}return b|0}function Zd(a){a=a|0;var b=0;if(!(!J[a+44>>2]|!J[a+28>>2]|(!J[a+32>>2]|!J[a+36>>2]))){b=J[a+40>>2]!=0}return b|0}function mj(a){a=a|0;if(a){J[a>>2]=10340;Oc(a+28|0,J[a+32>>2]);Pe(a+16|0,J[a+20>>2]);Oc(a+4|0,J[a+8>>2]);fl(a)}}function od(a){a=a|0;var b=0;J[a>>2]=4004;Ce(a+112|0);J[a>>2]=3464;b=J[a+32>>2];if(b){J[a+36>>2]=b;fl(b)}fl(a)}function ni(a,b){var c=0;c=a+4|0;a=ec(a,b);if((c|0)==(a|0)){return-1}b=a+28|0;return kk(H[a+39|0]<0?J[b>>2]:b)}function ff(a,b){var c=0,d=0;if(!(!a|!b|(a|0)==(b|0))){c=+(b>>>0)/+(a>>>0);d=1-c;c=-(c*pk(c)+d*pk(d))}return c}function Gd(a){a=a|0;var b=0;J[a>>2]=5544;Ce(a+112|0);J[a>>2]=3464;b=J[a+32>>2];if(b){J[a+36>>2]=b;fl(b)}fl(a)}function Ve(a){a=a|0;J[a>>2]=10340;Oc(a+28|0,J[a+32>>2]);Pe(a+16|0,J[a+20>>2]);Oc(a+4|0,J[a+8>>2]);return a|0}function Me(a){a=a|0;J[a>>2]=10264;Oc(a+28|0,J[a+32>>2]);Ke(a+16|0,J[a+20>>2]);Oc(a+4|0,J[a+8>>2]);return a|0}function oi(a,b,c){var d=0;d=a+4|0;a=ec(a,b);if((d|0)!=(a|0)){b=a+28|0;c=kk(H[a+39|0]<0?J[b>>2]:b)}return c}function dj(){var a=0;a=ll(48);J[a>>2]=10340;He(a+4|0);J[a>>2]=10124;J[a+40>>2]=0;J[a+44>>2]=0;return a|0}function Xe(a){a=a|0;J[a>>2]=10264;Oc(a+28|0,J[a+32>>2]);Ke(a+16|0,J[a+20>>2]);Oc(a+4|0,J[a+8>>2]);fl(a)}function We(a){a=a|0;J[a>>2]=10340;Oc(a+28|0,J[a+32>>2]);Pe(a+16|0,J[a+20>>2]);Oc(a+4|0,J[a+8>>2]);fl(a)}function sh(a){a=a|0;var b=0;J[a>>2]=11136;b=J[a+36>>2];if(b){fl(b)}b=J[a+24>>2];if(b){fl(b)}return a|0}function Dh(a){a=a|0;var b=0;J[a>>2]=11672;b=J[a+36>>2];if(b){fl(b)}b=J[a+24>>2];if(b){fl(b)}return a|0}function ck(a,b){na[J[J[a>>2]+8>>2]](a,J[a+12>>2]-J[a+8>>2]>>2,b);return(J[a+12>>2]-J[a+8>>2]>>2)-1|0}function Vc(a){a=a|0;var b=0;if(!(!J[a+52>>2]|(!J[a+44>>2]|!J[a+48>>2]))){b=J[a+56>>2]!=0}return b|0}function Pd(a){a=a|0;var b=0;if(!(!J[a+36>>2]|(!J[a+28>>2]|!J[a+32>>2]))){b=J[a+40>>2]!=0}return b|0}function th(a){a=a|0;var b=0;J[a>>2]=11136;b=J[a+36>>2];if(b){fl(b)}b=J[a+24>>2];if(b){fl(b)}fl(a)}function Eh(a){a=a|0;var b=0;J[a>>2]=11672;b=J[a+36>>2];if(b){fl(b)}b=J[a+24>>2];if(b){fl(b)}fl(a)}function rd(a,b){a=a|0;b=b|0;var c=0;if(!(J[b+56>>2]|K[b+24|0]!=3)){J[a- -64>>2]=b;c=1}return c|0}function id(a,b){a=a|0;b=b|0;var c=0;if(!(J[b+56>>2]|K[b+24|0]!=3)){J[a+60>>2]=b;c=1}return c|0}function ee(a,b){a=a|0;b=b|0;var c=0;if(!(J[b+56>>2]|K[b+24|0]!=3)){J[a+48>>2]=b;c=1}return c|0}function _d(a,b){a=a|0;b=b|0;var c=0;if(!(J[b+56>>2]|K[b+24|0]!=3)){J[a+44>>2]=b;c=1}return c|0}function Il(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;if(yl(a,J[b+8>>2],f)){El(b,c,d,e)}}function il(a){var b=0;b=a;a=0;while(1){if((a|0)!=3){J[(a<<2)+b>>2]=0;a=a+1|0;continue}break}}function $a(){var a=0;a=$(4)|0;J[a>>2]=18812;J[a>>2]=18772;J[a>>2]=18792;aa(a|0,18904,14);C()}function wj(a){a=a|0;var b=0;if(a){b=J[a>>2];J[a>>2]=0;if(b){na[J[J[b>>2]+4>>2]](b)}fl(a)}}function Yl(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;a=na[a|0](b,c,d,e)|0;ja=ma;return a|0}function Sc(a){a=a|0;var b=0;J[a>>2]=3464;b=J[a+32>>2];if(b){J[a+36>>2]=b;fl(b)}return a|0}function Xa(a){a=a|0;var b=0;J[a>>2]=2040;b=J[a+8>>2];if(b){J[a+12>>2]=b;fl(b)}return a|0}function Ae(a){var b=0;J[a+12>>2]=0;J[a+16>>2]=0;b=a;a=J[a>>2];J[b+4>>2]=a;if(a){fl(a)}}function Xh(a){a=a|0;var b=0;b=a;a=J[a+56>>2];J[b+60>>2]=(J[a+100>>2]-J[a+96>>2]|0)/12}function _i(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;return Ej(b,c,d,e,f,5)|0}function Zi(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;return Gj(b,c,d,e,f,4)|0}function Yi(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;return Gj(b,c,d,e,f,3)|0}function Xi(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;return Fj(b,c,d,e,f,2)|0}function Wi(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;return Fj(b,c,d,e,f,1)|0}function Vi(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;return Ej(b,c,d,e,f,9)|0}function Tc(a){a=a|0;var b=0;J[a>>2]=3464;b=J[a+32>>2];if(b){J[a+36>>2]=b;fl(b)}fl(a)}function $i(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;return Ej(b,c,d,e,f,6)|0}function Ya(a){a=a|0;var b=0;J[a>>2]=2040;b=J[a+8>>2];if(b){J[a+12>>2]=b;fl(b)}fl(a)}function qj(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=Q(f);Te(J[a>>2],b,c,d,e,f)}function Pe(a,b){if(b){Pe(a,J[b>>2]);Pe(a,J[b+4>>2]);Oc(b+20|0,J[b+24>>2]);fl(b)}}function Ke(a,b){if(b){Ke(a,J[b>>2]);Ke(a,J[b+4>>2]);Oc(b+20|0,J[b+24>>2]);fl(b)}}function xg(a,b){a=a|0;b=b|0;var c=0;c=a;a=J[b+64>>2];na[J[J[a>>2]+28>>2]](c,a)}function le(a){a=a|0;var b=0;J[a>>2]=8908;b=J[a+60>>2];if(b){fl(b)}return a|0}function gj(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=Q(f);Te(a,b,c,d,e,f)}function am(a){var b=0;while(1){if(a){a=a-1&a;b=b+1|0;continue}break}return b}function Xd(a){a=a|0;var b=0;J[a>>2]=7272;b=J[a+60>>2];if(b){fl(b)}return a|0}function Cl(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;if(yl(a,J[b+8>>2],0)){Bl(b,c,d)}}function wg(a,b){a=a|0;b=b|0;a=J[a+64>>2];return na[J[J[a>>2]+24>>2]](a,b)|0}function vg(a,b){a=a|0;b=b|0;a=J[a+64>>2];return na[J[J[a>>2]+20>>2]](a,b)|0}function gh(a,b){a=a|0;b=b|0;return J[J[a+28>>2]+(b>>>3&536870908)>>2]>>>b&1}function Eg(a,b){a=a|0;b=b|0;a=J[a+64>>2];return na[J[J[a>>2]+16>>2]](a,b)|0}function Dg(a,b){a=a|0;b=b|0;a=J[a+64>>2];return na[J[J[a>>2]+12>>2]](a,b)|0}function ei(a,b){a=a|0;b=b|0;J[a>>2]=0;J[a+4>>2]=0;J[a+8>>2]=0;J[a+12>>2]=0}function Pi(a){a=a|0;var b=0;if(a){b=J[a>>2];if(b){J[a+4>>2]=b;fl(b)}fl(a)}}function Mi(){var a=0;a=ll(12);J[a+8>>2]=0;J[a>>2]=0;J[a+4>>2]=0;return a|0}function bm(a){var b=0;b=a&31;a=0-a&31;return(-1>>>b&-2)<>>a}function mc(a,b,c){a=a|0;b=b|0;c=c|0;return na[J[J[a>>2]+44>>2]](a,b,c)|0}function Zc(){var a=0;a=ml($(8)|0,1313);J[a>>2]=19024;aa(a|0,19056,1);C()}function me(a){a=a|0;var b=0;J[a>>2]=8908;b=J[a+60>>2];if(b){fl(b)}fl(a)}function Yd(a){a=a|0;var b=0;J[a>>2]=7272;b=J[a+60>>2];if(b){fl(b)}fl(a)}function yb(a,b,c){a=a|0;b=b|0;c=c|0;J[a+32>>2]=c;J[a+28>>2]=b;return 1}function vd(a,b){a=a|0;b=b|0;if(b>>>0<=1){J[a+28>>2]=b}return b>>>0<2|0}function Zh(a,b){a=a|0;b=b|0;H[b+84|0]=1;J[b+72>>2]=J[b+68>>2];return 1}function Rh(a){a=$h(a);J[a+56>>2]=0;J[a+60>>2]=0;J[a>>2]=12164;return a}function Ji(a){a=a|0;if(a){Ki(a+12|0,J[a+16>>2]);Li(a,J[a+4>>2]);fl(a)}}function Jl(a){a=a|0;if(!a){return 0}return(Al(a,18476,18620)|0)!=0|0}function Cg(a){a=a|0;a=J[a+64>>2];return na[J[J[a>>2]+32>>2]](a)|0}function lc(a,b){a=a|0;b=b|0;J[a+12>>2]=-1;J[a+8>>2]=b;return 1}function Ma(a){a=ml($(8)|0,a);J[a>>2]=18972;aa(a|0,19004,1);C()}function xa(){la=5262944;ka=20064;J[4884]=19424;J[4866]=42}function Gi(a){a=a|0;return(J[a+100>>2]-J[a+96>>2]|0)/12|0}function oe(a){a=a|0;J[a>>2]=9156;Ce(a+96|0);return a|0}function be(a){a=a|0;J[a>>2]=7532;Ce(a+96|0);return a|0}function rj(a,b,c){a=a|0;b=b|0;c=c|0;Qe(J[a>>2],b,c)}function pj(a,b,c){a=a|0;b=b|0;c=c|0;Re(J[a>>2],b,c)}function cm(a){if(a){return 31-S(a-1^a)|0}return 32} +function $j(a){J[a>>2]=14964;nk(a+4|0,0,80);return a}function Wh(a){a=a|0;J[a+52>>2]=J[J[a+56>>2]+80>>2]}function Di(a){a=a|0;return J[a+12>>2]-J[a+8>>2]>>2}function te(a,b){a=a|0;b=b|0;return Va(a+40|0,b)|0}function pe(a){a=a|0;J[a>>2]=9156;Ce(a+96|0);fl(a)}function hi(a){a=a|0;J[a+52>>2]=J[J[a+4>>2]+80>>2]}function ce(a){a=a|0;J[a>>2]=7532;Ce(a+96|0);fl(a)}function Ni(a,b){a=a|0;b=b|0;return H[J[a>>2]+b|0]}function Ld(a,b){a=a|0;b=b|0;return Da(a+40|0,b)|0}function Ei(a){a=a|0;if(a){na[J[J[a>>2]+4>>2]](a)}}function Tl(a){a=a|0;a=ia-a&-16;ia=a;return a|0}function Oi(a){a=a|0;return J[a+4>>2]-J[a>>2]|0}function hj(a,b,c){a=a|0;b=b|0;c=c|0;Qe(a,b,c)}function fj(a,b,c){a=a|0;b=b|0;c=c|0;Re(a,b,c)}function Hk(a,b,c){if(!(K[a|0]&32)){Fk(b,c,a)}}function _a(a,b){a=a|0;b=b|0;return K[b+24|0]}function Fb(a,b,c){a=a|0;b=b|0;c=c|0;return-1}function vj(a){a=a|0;return J[J[a>>2]+44>>2]}function uj(a){a=a|0;return J[J[a>>2]+40>>2]}function rk(a){a=a|0;return da(J[a+60>>2])|0}function sj(a,b){a=a|0;b=b|0;Jj(J[a>>2],b)}function oj(a,b){a=a|0;b=b|0;Ue(J[a>>2],b)}function Hi(a,b){a=a|0;b=b|0;J[a+80>>2]=b}function zi(a){a=a|0;return J[a+40>>2]}function wi(a){a=a|0;return J[a+56>>2]}function wd(a){a=a|0;return J[a+28>>2]}function vi(a){a=a|0;return J[a+80>>2]}function lj(a){a=a|0;return J[a+44>>2]}function fh(a){a=a|0;return J[a+12>>2]}function Bi(a){a=a|0;return J[a+60>>2]}function Ai(a){a=a|0;return J[a+48>>2]}function yi(a){a=a|0;return K[a+32|0]}function xi(a){a=a|0;return H[a+24|0]}function Wc(a,b){a=a|0;b=b|0;return-1}function Uc(a){a=a|0;return J[a+4>>2]}function Ka(a,b){a=a|0;b=b|0;return 2}function Ja(a,b){a=a|0;b=b|0;return 6}function Gb(a,b){a=a|0;b=b|0;return 1}function Eb(a,b){a=a|0;b=b|0;return 0}function ij(a,b){a=a|0;b=b|0;Jj(a,b)}function ej(a,b){a=a|0;b=b|0;Ue(a,b)}function hl(a,b,c){if(c){lk(a,b,c)}}function jf(a,b,c,d){hf(a,b,c,d,1)}function gf(a,b,c,d){hf(a,b,c,d,0)}function ui(){return db(ll(96))|0}function ti(){return bb(ll(64))|0}function si(a){a=a|0;if(a){fl(a)}}function Ul(){la=5262944;ka=20064}function Ci(){return $j(ll(84))|0}function Ol(a){a=a|0;Nl(a);fl(a)}function Ml(a){a=a|0;return 1472}function Ll(a){a=a|0;return 1622}function Kl(a){a=a|0;return 1364}function Ga(a){a=a|0;return a|0}function zd(a){a=a|0;fl(yd(a))}function qh(a){a=a|0;fl(ph(a))}function oh(a){a=a|0;fl(nh(a))}function jk(a){a=a|0;fl(Oj(a))}function dc(a){a=a|0;fl(cc(a))}function Dc(a){a=a|0;fl(Cc(a))}function $c(a){a=a|0;fl(_c(a))}function sc(a){a=a|0;return 0}function pd(a){a=a|0;return 6}function gd(a){a=a|0;return 5}function ad(a){a=a|0;return 4}function Za(a){a=a|0;return 1}function Nd(a){a=a|0;return 3}function Ia(a){a=a|0;return 2}function Vl(){return ia-ka|0}function Qi(){return ll(1)|0}function ze(){Ma(1493);C()}function ok(){return 19368}function La(){Ma(1313);C()}function Ha(a){a=a|0;fl(a)}function Xl(){return ka|0}function Wl(){return la|0}function Sl(a){a=a|0;ia=a}function Rl(){return ia|0}function Ql(){return ja|0}function Pl(a){a=a|0;ja=a}function Cb(a){a=a|0;C()}function zj(){return 1}function yj(){return 0}function xj(){return-1}function Cj(){return 4}function Bj(){return 3}function Aj(){return 2}function vk(a){a=a|0} // EMSCRIPTEN_END_FUNCS -e=I;p(ua);var la=c([null,Il,Fa,Ga,Ha,xa,ya,za,Ba,Ca,Ea,$a,Ia,Ja,Fa,Wa,Xa,Ya,Ma,Oa,Pa,Qa,Ua,Va,Ia,Za,Ab,Bb,xb,yb,sl,Cb,Db,Eb,Db,Db,Ya,Fb,bc,cc,Ha,Gb,Pb,Ob,pc,qc,jc,kc,Fb,lc,Fb,rc,rc,nc,oc,mc,Bc,Cc,tc,uc,rc,vc,Dc,Ec,Fc,Gc,wc,xc,yc,zc,Ac,Pc,Qc,Jc,Kc,Ya,Mc,Lc,Oc,Rc,Sc,Ya,Tc,Uc,rc,Vc,Db,rc,Ya,Wc,Xc,Bb,Bb,Zc,_c,$c,Uc,ad,bd,dd,ed,fd,gd,Ya,Db,hd,id,jd,md,nd,od,pd,Ya,Db,qd,rd,sd,Fa,Ga,ud,vd,td,Bb,Sc,Ya,Uc,wd,Bb,xd,yd,$c,Uc,ad,zd,Ad,Bd,fd,gd,Ya,Db,hd,id,Cd,Ed,Fd,od,pd,Ya,Db,qd,rd,Gd,Fa,Ga,ud,vd,Hd,Bb,Sc,rc,Ya,Id,Pc,Qc,Jd,Kd,Ya,Md,Nd,Ld,Fa,Ga,Ya,Tc,Od,rc,Vc,Db,Ya,Md,Pd,Qd,Sd,Td,$c,Od,Ud,Vd,Wd,Xd,fd,Yd,Ya,Db,Zd,_d,$d,ae,be,od,ce,Ya,Db,de,ee,fe,Fa,Ga,ud,vd,td,Ga,Ya,Od,ge,he,ie,$c,Od,Ud,je,ke,le,fd,Yd,Ya,Db,Zd,_d,me,ne,oe,od,ce,Ya,Db,de,ee,pe,Fa,Ga,ud,vd,Hd,Ga,rc,Ya,qe,ue,ve,re,se,Ya,Ha,te,Te,Ue,Fe,Le,Ke,Ve,Ue,Ve,yg,zg,Ya,Ya,sg,Ya,Qh,$h,ai,tg,ug,bi,wg,Ag,Bg,Cg,vg,xg,lh,mh,Dg,Eg,Fg,Gg,Qg,Rg,dh,eh,Tc,nh,oh,gh,Eg,Fg,hh,Qg,ih,dh,eh,Tc,Pg,ph,Og,qh,rh,uh,vh,wh,xh,th,Ah,sh,Bh,Ch,Eh,Fh,Gh,Hh,Dh,Jh,Kh,Lh,Mh,Nh,Rh,Bb,Ya,Fb,rc,Db,Db,Wh,rc,Th,Uh,Sh,Vh,Fa,Ga,Xh,Yh,Bb,rc,ci,Wh,Ya,di,ei,fi,Wh,rc,di,Th,fi,Lj,Nj,Oj,Pj,gk,dk,Kj,Mj,hk,bk,ck,fk,pk,qk,rk,Jk,Kk,gl,Fa,Ga,tk,tk,ul,Dl,Bl,xl,Ga,Cl,Al,yl,Ga,Gl,Ga,Hl,Ga,Fl,Jl,Tc,Jl,Jl]);function ma(){return E.byteLength/65536|0}function ra(sa){sa=sa|0;var na=ma()|0;var oa=na+sa|0;if(na=endIdx))++endPtr;if(endPtr-idx>16&&heapOrArray.buffer&&UTF8Decoder){return UTF8Decoder.decode(heapOrArray.subarray(idx,endPtr))}else{var str="";while(idx>10,56320|ch&1023)}}}return str}function UTF8ToString(ptr,maxBytesToRead){return ptr?UTF8ArrayToString(HEAPU8,ptr,maxBytesToRead):""}function stringToUTF8Array(str,heap,outIdx,maxBytesToWrite){if(!(maxBytesToWrite>0))return 0;var startIdx=outIdx;var endIdx=outIdx+maxBytesToWrite-1;for(var i=0;i=55296&&u<=57343){var u1=str.charCodeAt(++i);u=65536+((u&1023)<<10)|u1&1023}if(u<=127){if(outIdx>=endIdx)break;heap[outIdx++]=u}else if(u<=2047){if(outIdx+1>=endIdx)break;heap[outIdx++]=192|u>>6;heap[outIdx++]=128|u&63}else if(u<=65535){if(outIdx+2>=endIdx)break;heap[outIdx++]=224|u>>12;heap[outIdx++]=128|u>>6&63;heap[outIdx++]=128|u&63}else{if(outIdx+3>=endIdx)break;if(u>1114111)warnOnce("Invalid Unicode code point 0x"+u.toString(16)+" encountered when serializing a JS string to a UTF-8 string in wasm memory! (Valid unicode code points should be in range 0-0x10FFFF).");heap[outIdx++]=240|u>>18;heap[outIdx++]=128|u>>12&63;heap[outIdx++]=128|u>>6&63;heap[outIdx++]=128|u&63}}heap[outIdx]=0;return outIdx-startIdx}function stringToUTF8(str,outPtr,maxBytesToWrite){assert(typeof maxBytesToWrite=="number","stringToUTF8(str, outPtr, maxBytesToWrite) is missing the third parameter that specifies the length of the output buffer!");return stringToUTF8Array(str,HEAPU8,outPtr,maxBytesToWrite)}function lengthBytesUTF8(str){var len=0;for(var i=0;i=55296&&u<=57343)u=65536+((u&1023)<<10)|str.charCodeAt(++i)&1023;if(u<=127)++len;else if(u<=2047)len+=2;else if(u<=65535)len+=3;else len+=4}return len}var UTF16Decoder=typeof TextDecoder!="undefined"?new TextDecoder("utf-16le"):undefined;function writeArrayToMemory(array,buffer){assert(array.length>=0,"writeArrayToMemory array must have a length (should be an array or typed array)");HEAP8.set(array,buffer)}function writeAsciiToMemory(str,buffer,dontAddNull){for(var i=0;i>0]=str.charCodeAt(i)}if(!dontAddNull)HEAP8[buffer>>0]=0}var buffer,HEAP8,HEAPU8,HEAP16,HEAPU16,HEAP32,HEAPU32,HEAPF32,HEAPF64;function updateGlobalBufferAndViews(buf){buffer=buf;Module["HEAP8"]=HEAP8=new Int8Array(buf);Module["HEAP16"]=HEAP16=new Int16Array(buf);Module["HEAP32"]=HEAP32=new Int32Array(buf);Module["HEAPU8"]=HEAPU8=new Uint8Array(buf);Module["HEAPU16"]=HEAPU16=new Uint16Array(buf);Module["HEAPU32"]=HEAPU32=new Uint32Array(buf);Module["HEAPF32"]=HEAPF32=new Float32Array(buf);Module["HEAPF64"]=HEAPF64=new Float64Array(buf)}var TOTAL_STACK=5242880;if(Module["TOTAL_STACK"])assert(TOTAL_STACK===Module["TOTAL_STACK"],"the stack size can no longer be determined at runtime");var INITIAL_MEMORY=Module["INITIAL_MEMORY"]||16777216;legacyModuleProp("INITIAL_MEMORY","INITIAL_MEMORY");assert(INITIAL_MEMORY>=TOTAL_STACK,"INITIAL_MEMORY should be larger than TOTAL_STACK, was "+INITIAL_MEMORY+"! (TOTAL_STACK="+TOTAL_STACK+")");assert(typeof Int32Array!="undefined"&&typeof Float64Array!=="undefined"&&Int32Array.prototype.subarray!=undefined&&Int32Array.prototype.set!=undefined,"JS engine does not provide full typed array support");if(Module["wasmMemory"]){wasmMemory=Module["wasmMemory"]}else{wasmMemory=new WebAssembly.Memory({"initial":INITIAL_MEMORY/65536,"maximum":2147483648/65536})}if(wasmMemory){buffer=wasmMemory.buffer}INITIAL_MEMORY=buffer.byteLength;assert(INITIAL_MEMORY%65536===0);updateGlobalBufferAndViews(buffer);var wasmTable;function writeStackCookie(){var max=_emscripten_stack_get_end();assert((max&3)==0);HEAP32[max>>2]=34821223;HEAP32[max+4>>2]=2310721022;HEAPU32[0]=1668509029}function checkStackCookie(){if(ABORT)return;var max=_emscripten_stack_get_end();var cookie1=HEAPU32[max>>2];var cookie2=HEAPU32[max+4>>2];if(cookie1!=34821223||cookie2!=2310721022){abort("Stack overflow! Stack cookie has been overwritten at 0x"+max.toString(16)+", expected hex dwords 0x89BACDFE and 0x2135467, but received 0x"+cookie2.toString(16)+" 0x"+cookie1.toString(16))}if(HEAPU32[0]!==1668509029)abort("Runtime error: The application has corrupted its heap memory area (address zero)!")}(function(){var h16=new Int16Array(1);var h8=new Int8Array(h16.buffer);h16[0]=25459;if(h8[0]!==115||h8[1]!==99)throw"Runtime error: expected the system to be little-endian! (Run with -sSUPPORT_BIG_ENDIAN to bypass)"})();var __ATPRERUN__=[];var __ATINIT__=[];var __ATPOSTRUN__=[];var runtimeInitialized=false;function keepRuntimeAlive(){return noExitRuntime}function preRun(){if(Module["preRun"]){if(typeof Module["preRun"]=="function")Module["preRun"]=[Module["preRun"]];while(Module["preRun"].length){addOnPreRun(Module["preRun"].shift())}}callRuntimeCallbacks(__ATPRERUN__)}function initRuntime(){assert(!runtimeInitialized);runtimeInitialized=true;checkStackCookie();callRuntimeCallbacks(__ATINIT__)}function postRun(){checkStackCookie();if(Module["postRun"]){if(typeof Module["postRun"]=="function")Module["postRun"]=[Module["postRun"]];while(Module["postRun"].length){addOnPostRun(Module["postRun"].shift())}}callRuntimeCallbacks(__ATPOSTRUN__)}function addOnPreRun(cb){__ATPRERUN__.unshift(cb)}function addOnInit(cb){__ATINIT__.unshift(cb)}function addOnPostRun(cb){__ATPOSTRUN__.unshift(cb)}assert(Math.imul,"This browser does not support Math.imul(), build with LEGACY_VM_SUPPORT or POLYFILL_OLD_MATH_FUNCTIONS to add in a polyfill");assert(Math.fround,"This browser does not support Math.fround(), build with LEGACY_VM_SUPPORT or POLYFILL_OLD_MATH_FUNCTIONS to add in a polyfill");assert(Math.clz32,"This browser does not support Math.clz32(), build with LEGACY_VM_SUPPORT or POLYFILL_OLD_MATH_FUNCTIONS to add in a polyfill");assert(Math.trunc,"This browser does not support Math.trunc(), build with LEGACY_VM_SUPPORT or POLYFILL_OLD_MATH_FUNCTIONS to add in a polyfill");var runDependencies=0;var runDependencyWatcher=null;var dependenciesFulfilled=null;var runDependencyTracking={};function addRunDependency(id){runDependencies++;if(Module["monitorRunDependencies"]){Module["monitorRunDependencies"](runDependencies)}if(id){assert(!runDependencyTracking[id]);runDependencyTracking[id]=1;if(runDependencyWatcher===null&&typeof setInterval!="undefined"){runDependencyWatcher=setInterval(function(){if(ABORT){clearInterval(runDependencyWatcher);runDependencyWatcher=null;return}var shown=false;for(var dep in runDependencyTracking){if(!shown){shown=true;err("still waiting on run dependencies:")}err("dependency: "+dep)}if(shown){err("(end of list)")}},1e4)}}else{err("warning: run dependency added without ID")}}function removeRunDependency(id){runDependencies--;if(Module["monitorRunDependencies"]){Module["monitorRunDependencies"](runDependencies)}if(id){assert(runDependencyTracking[id]);delete runDependencyTracking[id]}else{err("warning: run dependency removed without ID")}if(runDependencies==0){if(runDependencyWatcher!==null){clearInterval(runDependencyWatcher);runDependencyWatcher=null}if(dependenciesFulfilled){var callback=dependenciesFulfilled;dependenciesFulfilled=null;callback()}}}function abort(what){{if(Module["onAbort"]){Module["onAbort"](what)}}what="Aborted("+what+")";err(what);ABORT=true;EXITSTATUS=1;var e=new WebAssembly.RuntimeError(what);readyPromiseReject(e);throw e}var FS={error:function(){abort("Filesystem support (FS) was not included. The problem is that you are using files from JS, but files were not used from C/C++, so filesystem support was not auto-included. You can force-include filesystem support with -sFORCE_FILESYSTEM")},init:function(){FS.error()},createDataFile:function(){FS.error()},createPreloadedFile:function(){FS.error()},createLazyFile:function(){FS.error()},open:function(){FS.error()},mkdev:function(){FS.error()},registerDevice:function(){FS.error()},analyzePath:function(){FS.error()},loadFilesFromDB:function(){FS.error()},ErrnoError:function ErrnoError(){FS.error()}};Module["FS_createDataFile"]=FS.createDataFile;Module["FS_createPreloadedFile"]=FS.createPreloadedFile;var dataURIPrefix="data:application/octet-stream;base64,";function isDataURI(filename){return filename.startsWith(dataURIPrefix)}function isFileURI(filename){return filename.startsWith("file://")}function createExportWrapper(name,fixedasm){return function(){var displayName=name;var asm=fixedasm;if(!fixedasm){asm=Module["asm"]}assert(runtimeInitialized,"native function `"+displayName+"` called before runtime initialization");if(!asm[name]){assert(asm[name],"exported native function `"+displayName+"` not found")}return asm[name].apply(null,arguments)}}var wasmBinaryFile;wasmBinaryFile="draco_encoder.wasm";if(!isDataURI(wasmBinaryFile)){wasmBinaryFile=locateFile(wasmBinaryFile)}function getBinary(file){try{if(file==wasmBinaryFile&&wasmBinary){return new Uint8Array(wasmBinary)}var binary=tryParseAsDataURI(file);if(binary){return binary}if(readBinary){return readBinary(file)}else{throw"both async and sync fetching of the wasm failed"}}catch(err){abort(err)}}function getBinaryPromise(){if(!wasmBinary&&(ENVIRONMENT_IS_WEB||ENVIRONMENT_IS_WORKER)){if(typeof fetch=="function"&&!isFileURI(wasmBinaryFile)){return fetch(wasmBinaryFile,{credentials:"same-origin"}).then(function(response){if(!response["ok"]){throw"failed to load wasm binary file at '"+wasmBinaryFile+"'"}return response["arrayBuffer"]()}).catch(function(){return getBinary(wasmBinaryFile)})}else{if(readAsync){return new Promise(function(resolve,reject){readAsync(wasmBinaryFile,function(response){resolve(new Uint8Array(response))},reject)})}}}return Promise.resolve().then(function(){return getBinary(wasmBinaryFile)})}function createWasm(){var info={"env":asmLibraryArg,"wasi_snapshot_preview1":asmLibraryArg};function receiveInstance(instance,module){var exports=instance.exports;Module["asm"]=exports;wasmTable=Module["asm"]["__indirect_function_table"];assert(wasmTable,"table not found in wasm exports");addOnInit(Module["asm"]["__wasm_call_ctors"]);removeRunDependency("wasm-instantiate")}addRunDependency("wasm-instantiate");var trueModule=Module;function receiveInstantiationResult(result){assert(Module===trueModule,"the Module object should not be replaced during async compilation - perhaps the order of HTML elements is wrong?");trueModule=null;receiveInstance(result["instance"])}function instantiateArrayBuffer(receiver){return getBinaryPromise().then(function(binary){return WebAssembly.instantiate(binary,info)}).then(function(instance){return instance}).then(receiver,function(reason){err("failed to asynchronously prepare wasm: "+reason);if(isFileURI(wasmBinaryFile)){err("warning: Loading from a file URI ("+wasmBinaryFile+") is not supported in most browsers. See https://emscripten.org/docs/getting_started/FAQ.html#how-do-i-run-a-local-webserver-for-testing-why-does-my-program-stall-in-downloading-or-preparing")}abort(reason)})}function instantiateAsync(){if(!wasmBinary&&typeof WebAssembly.instantiateStreaming=="function"&&!isDataURI(wasmBinaryFile)&&!isFileURI(wasmBinaryFile)&&!ENVIRONMENT_IS_NODE&&typeof fetch=="function"){return fetch(wasmBinaryFile,{credentials:"same-origin"}).then(function(response){var result=WebAssembly.instantiateStreaming(response,info);return result.then(receiveInstantiationResult,function(reason){err("wasm streaming compile failed: "+reason);err("falling back to ArrayBuffer instantiation");return instantiateArrayBuffer(receiveInstantiationResult)})})}else{return instantiateArrayBuffer(receiveInstantiationResult)}}if(Module["instantiateWasm"]){try{var exports=Module["instantiateWasm"](info,receiveInstance);return exports}catch(e){err("Module.instantiateWasm callback failed with error: "+e);return false}}instantiateAsync().catch(readyPromiseReject);return{}}var tempDouble;var tempI64;function array_bounds_check_error(idx,size){throw"Array index "+idx+" out of bounds: [0,"+size+")"}function callRuntimeCallbacks(callbacks){while(callbacks.length>0){var callback=callbacks.shift();if(typeof callback=="function"){callback(Module);continue}var func=callback.func;if(typeof func=="number"){if(callback.arg===undefined){getWasmTableEntry(func)()}else{getWasmTableEntry(func)(callback.arg)}}else{func(callback.arg===undefined?null:callback.arg)}}}function demangle(func){warnOnce("warning: build with -sDEMANGLE_SUPPORT to link in libcxxabi demangling");return func}function demangleAll(text){var regex=/\b_Z[\w\d_]+/g;return text.replace(regex,function(x){var y=demangle(x);return x===y?x:y+" ["+x+"]"})}var wasmTableMirror=[];function getWasmTableEntry(funcPtr){var func=wasmTableMirror[funcPtr];if(!func){if(funcPtr>=wasmTableMirror.length)wasmTableMirror.length=funcPtr+1;wasmTableMirror[funcPtr]=func=wasmTable.get(funcPtr)}assert(wasmTable.get(funcPtr)==func,"JavaScript-side Wasm function table mirror is out of date!");return func}function jsStackTrace(){var error=new Error;if(!error.stack){try{throw new Error}catch(e){error=e}if(!error.stack){return"(no stack trace available)"}}return error.stack.toString()}function setWasmTableEntry(idx,func){wasmTable.set(idx,func);wasmTableMirror[idx]=wasmTable.get(idx)}function ___cxa_allocate_exception(size){return _malloc(size+24)+24}function ExceptionInfo(excPtr){this.excPtr=excPtr;this.ptr=excPtr-24;this.set_type=function(type){HEAPU32[this.ptr+4>>2]=type};this.get_type=function(){return HEAPU32[this.ptr+4>>2]};this.set_destructor=function(destructor){HEAPU32[this.ptr+8>>2]=destructor};this.get_destructor=function(){return HEAPU32[this.ptr+8>>2]};this.set_refcount=function(refcount){HEAP32[this.ptr>>2]=refcount};this.set_caught=function(caught){caught=caught?1:0;HEAP8[this.ptr+12>>0]=caught};this.get_caught=function(){return HEAP8[this.ptr+12>>0]!=0};this.set_rethrown=function(rethrown){rethrown=rethrown?1:0;HEAP8[this.ptr+13>>0]=rethrown};this.get_rethrown=function(){return HEAP8[this.ptr+13>>0]!=0};this.init=function(type,destructor){this.set_adjusted_ptr(0);this.set_type(type);this.set_destructor(destructor);this.set_refcount(0);this.set_caught(false);this.set_rethrown(false)};this.add_ref=function(){var value=HEAP32[this.ptr>>2];HEAP32[this.ptr>>2]=value+1};this.release_ref=function(){var prev=HEAP32[this.ptr>>2];HEAP32[this.ptr>>2]=prev-1;assert(prev>0);return prev===1};this.set_adjusted_ptr=function(adjustedPtr){HEAPU32[this.ptr+16>>2]=adjustedPtr};this.get_adjusted_ptr=function(){return HEAPU32[this.ptr+16>>2]};this.get_exception_ptr=function(){var isPointer=___cxa_is_pointer_type(this.get_type());if(isPointer){return HEAPU32[this.excPtr>>2]}var adjusted=this.get_adjusted_ptr();if(adjusted!==0)return adjusted;return this.excPtr}}var exceptionLast=0;var uncaughtExceptionCount=0;function ___cxa_throw(ptr,type,destructor){var info=new ExceptionInfo(ptr);info.init(type,destructor);exceptionLast=ptr;uncaughtExceptionCount++;throw ptr+" - Exception catching is disabled, this exception cannot be caught. Compile with -sNO_DISABLE_EXCEPTION_CATCHING or -sEXCEPTION_CATCHING_ALLOWED=[..] to catch."}function _abort(){abort("native code called abort()")}function _emscripten_memcpy_big(dest,src,num){HEAPU8.copyWithin(dest,src,src+num)}function getHeapMax(){return 2147483648}function emscripten_realloc_buffer(size){try{wasmMemory.grow(size-buffer.byteLength+65535>>>16);updateGlobalBufferAndViews(wasmMemory.buffer);return 1}catch(e){err("emscripten_realloc_buffer: Attempted to grow heap from "+buffer.byteLength+" bytes to "+size+" bytes, but got error: "+e)}}function _emscripten_resize_heap(requestedSize){var oldSize=HEAPU8.length;requestedSize=requestedSize>>>0;assert(requestedSize>oldSize);var maxHeapSize=getHeapMax();if(requestedSize>maxHeapSize){err("Cannot enlarge memory, asked to go up to "+requestedSize+" bytes, but the limit is "+maxHeapSize+" bytes!");return false}let alignUp=(x,multiple)=>x+(multiple-x%multiple)%multiple;for(var cutDown=1;cutDown<=4;cutDown*=2){var overGrownHeapSize=oldSize*(1+.2/cutDown);overGrownHeapSize=Math.min(overGrownHeapSize,requestedSize+100663296);var newSize=Math.min(maxHeapSize,alignUp(Math.max(requestedSize,overGrownHeapSize),65536));var replacement=emscripten_realloc_buffer(newSize);if(replacement){err("Warning: Enlarging memory arrays, this is not fast! "+[oldSize,newSize]);return true}}err("Failed to grow the heap from "+oldSize+" bytes to "+newSize+" bytes, not enough memory!");return false}var SYSCALLS={varargs:undefined,get:function(){assert(SYSCALLS.varargs!=undefined);SYSCALLS.varargs+=4;var ret=HEAP32[SYSCALLS.varargs-4>>2];return ret},getStr:function(ptr){var ret=UTF8ToString(ptr);return ret}};function _fd_close(fd){abort("fd_close called without SYSCALLS_REQUIRE_FILESYSTEM")}function _fd_seek(fd,offset_low,offset_high,whence,newOffset){return 70}var printCharBuffers=[null,[],[]];function printChar(stream,curr){var buffer=printCharBuffers[stream];assert(buffer);if(curr===0||curr===10){(stream===1?out:err)(UTF8ArrayToString(buffer,0));buffer.length=0}else{buffer.push(curr)}}function flush_NO_FILESYSTEM(){_fflush(0);if(printCharBuffers[1].length)printChar(1,10);if(printCharBuffers[2].length)printChar(2,10)}function _fd_write(fd,iov,iovcnt,pnum){var num=0;for(var i=0;i>2];var len=HEAPU32[iov+4>>2];iov+=8;for(var j=0;j>2]=num;return 0}var ASSERTIONS=true;function intArrayFromString(stringy,dontAddNull,length){var len=length>0?length:lengthBytesUTF8(stringy)+1;var u8array=new Array(len);var numBytesWritten=stringToUTF8Array(stringy,u8array,0,u8array.length);if(dontAddNull)u8array.length=numBytesWritten;return u8array}function intArrayToString(array){var ret=[];for(var i=0;i255){if(ASSERTIONS){assert(false,"Character code "+chr+" ("+String.fromCharCode(chr)+") at offset "+i+" not in 0x00-0xFF.")}chr&=255}ret.push(String.fromCharCode(chr))}return ret.join("")}var decodeBase64=typeof atob=="function"?atob:function(input){var keyStr="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=";var output="";var chr1,chr2,chr3;var enc1,enc2,enc3,enc4;var i=0;input=input.replace(/[^A-Za-z0-9\+\/\=]/g,"");do{enc1=keyStr.indexOf(input.charAt(i++));enc2=keyStr.indexOf(input.charAt(i++));enc3=keyStr.indexOf(input.charAt(i++));enc4=keyStr.indexOf(input.charAt(i++));chr1=enc1<<2|enc2>>4;chr2=(enc2&15)<<4|enc3>>2;chr3=(enc3&3)<<6|enc4;output=output+String.fromCharCode(chr1);if(enc3!==64){output=output+String.fromCharCode(chr2)}if(enc4!==64){output=output+String.fromCharCode(chr3)}}while(i0){return}stackCheckInit();preRun();if(runDependencies>0){return}function doRun(){if(calledRun)return;calledRun=true;Module["calledRun"]=true;if(ABORT)return;initRuntime();readyPromiseResolve(Module);if(Module["onRuntimeInitialized"])Module["onRuntimeInitialized"]();assert(!Module["_main"],'compiled without a main, but one is present. if you added it from JS, use Module["onRuntimeInitialized"]');postRun()}if(Module["setStatus"]){Module["setStatus"]("Running...");setTimeout(function(){setTimeout(function(){Module["setStatus"]("")},1);doRun()},1)}else{doRun()}checkStackCookie()}Module["run"]=run;function checkUnflushedContent(){var oldOut=out;var oldErr=err;var has=false;out=err=x=>{has=true};try{flush_NO_FILESYSTEM()}catch(e){}out=oldOut;err=oldErr;if(has){warnOnce("stdio streams had content in them that was not flushed. you should set EXIT_RUNTIME to 1 (see the FAQ), or make sure to emit a newline when you printf etc.");warnOnce("(this may also be due to not including full filesystem support - try building with -sFORCE_FILESYSTEM)")}}function procExit(code){EXITSTATUS=code;if(!keepRuntimeAlive()){if(Module["onExit"])Module["onExit"](code);ABORT=true}quit_(code,new ExitStatus(code))}if(Module["preInit"]){if(typeof Module["preInit"]=="function")Module["preInit"]=[Module["preInit"]];while(Module["preInit"].length>0){Module["preInit"].pop()()}}run();function WrapperObject(){}WrapperObject.prototype=Object.create(WrapperObject.prototype);WrapperObject.prototype.constructor=WrapperObject;WrapperObject.prototype.__class__=WrapperObject;WrapperObject.__cache__={};Module["WrapperObject"]=WrapperObject;function getCache(__class__){return(__class__||WrapperObject).__cache__}Module["getCache"]=getCache;function wrapPointer(ptr,__class__){var cache=getCache(__class__);var ret=cache[ptr];if(ret)return ret;ret=Object.create((__class__||WrapperObject).prototype);ret.ptr=ptr;return cache[ptr]=ret}Module["wrapPointer"]=wrapPointer;function castObject(obj,__class__){return wrapPointer(obj.ptr,__class__)}Module["castObject"]=castObject;Module["NULL"]=wrapPointer(0);function destroy(obj){if(!obj["__destroy__"])throw"Error: Cannot destroy object. (Did you create it yourself?)";obj["__destroy__"]();delete getCache(obj.__class__)[obj.ptr]}Module["destroy"]=destroy;function compare(obj1,obj2){return obj1.ptr===obj2.ptr}Module["compare"]=compare;function getPointer(obj){return obj.ptr}Module["getPointer"]=getPointer;function getClass(obj){return obj.__class__}Module["getClass"]=getClass;var ensureCache={buffer:0,size:0,pos:0,temps:[],needed:0,prepare:function(){if(ensureCache.needed){for(var i=0;i=ensureCache.size){assert(len>0);ensureCache.needed+=len;ret=Module["_malloc"](len);ensureCache.temps.push(ret)}else{ret=ensureCache.buffer+ensureCache.pos;ensureCache.pos+=len}return ret},copy:function(array,view,offset){offset>>>=0;var bytes=view.BYTES_PER_ELEMENT;switch(bytes){case 2:offset>>>=1;break;case 4:offset>>>=2;break;case 8:offset>>>=3;break}for(var i=0;i=endIdx))++endPtr;if(endPtr-idx>16&&heapOrArray.buffer&&UTF8Decoder){return UTF8Decoder.decode(heapOrArray.subarray(idx,endPtr))}var str="";while(idx>10,56320|ch&1023)}}return str}function UTF8ToString(ptr,maxBytesToRead){return ptr?UTF8ArrayToString(HEAPU8,ptr,maxBytesToRead):""}function stringToUTF8Array(str,heap,outIdx,maxBytesToWrite){if(!(maxBytesToWrite>0))return 0;var startIdx=outIdx;var endIdx=outIdx+maxBytesToWrite-1;for(var i=0;i=55296&&u<=57343){var u1=str.charCodeAt(++i);u=65536+((u&1023)<<10)|u1&1023}if(u<=127){if(outIdx>=endIdx)break;heap[outIdx++]=u}else if(u<=2047){if(outIdx+1>=endIdx)break;heap[outIdx++]=192|u>>6;heap[outIdx++]=128|u&63}else if(u<=65535){if(outIdx+2>=endIdx)break;heap[outIdx++]=224|u>>12;heap[outIdx++]=128|u>>6&63;heap[outIdx++]=128|u&63}else{if(outIdx+3>=endIdx)break;if(u>1114111)warnOnce("Invalid Unicode code point 0x"+u.toString(16)+" encountered when serializing a JS string to a UTF-8 string in wasm memory! (Valid unicode code points should be in range 0-0x10FFFF).");heap[outIdx++]=240|u>>18;heap[outIdx++]=128|u>>12&63;heap[outIdx++]=128|u>>6&63;heap[outIdx++]=128|u&63}}heap[outIdx]=0;return outIdx-startIdx}function lengthBytesUTF8(str){var len=0;for(var i=0;i=55296&&c<=57343){len+=4;++i}else{len+=3}}return len}var buffer,HEAP8,HEAPU8,HEAP16,HEAPU16,HEAP32,HEAPU32,HEAPF32,HEAPF64;function updateGlobalBufferAndViews(buf){buffer=buf;Module["HEAP8"]=HEAP8=new Int8Array(buf);Module["HEAP16"]=HEAP16=new Int16Array(buf);Module["HEAP32"]=HEAP32=new Int32Array(buf);Module["HEAPU8"]=HEAPU8=new Uint8Array(buf);Module["HEAPU16"]=HEAPU16=new Uint16Array(buf);Module["HEAPU32"]=HEAPU32=new Uint32Array(buf);Module["HEAPF32"]=HEAPF32=new Float32Array(buf);Module["HEAPF64"]=HEAPF64=new Float64Array(buf)}var TOTAL_STACK=5242880;if(Module["TOTAL_STACK"])assert(TOTAL_STACK===Module["TOTAL_STACK"],"the stack size can no longer be determined at runtime");var INITIAL_MEMORY=Module["INITIAL_MEMORY"]||16777216;legacyModuleProp("INITIAL_MEMORY","INITIAL_MEMORY");assert(INITIAL_MEMORY>=TOTAL_STACK,"INITIAL_MEMORY should be larger than TOTAL_STACK, was "+INITIAL_MEMORY+"! (TOTAL_STACK="+TOTAL_STACK+")");assert(typeof Int32Array!="undefined"&&typeof Float64Array!=="undefined"&&Int32Array.prototype.subarray!=undefined&&Int32Array.prototype.set!=undefined,"JS engine does not provide full typed array support");if(Module["wasmMemory"]){wasmMemory=Module["wasmMemory"]}else{wasmMemory=new WebAssembly.Memory({"initial":INITIAL_MEMORY/65536,"maximum":2147483648/65536})}if(wasmMemory){buffer=wasmMemory.buffer}INITIAL_MEMORY=buffer.byteLength;assert(INITIAL_MEMORY%65536===0);updateGlobalBufferAndViews(buffer);var wasmTable;function writeStackCookie(){var max=_emscripten_stack_get_end();assert((max&3)==0);HEAPU32[max>>2]=34821223;HEAPU32[max+4>>2]=2310721022;HEAPU32[0]=1668509029}function checkStackCookie(){if(ABORT)return;var max=_emscripten_stack_get_end();var cookie1=HEAPU32[max>>2];var cookie2=HEAPU32[max+4>>2];if(cookie1!=34821223||cookie2!=2310721022){abort("Stack overflow! Stack cookie has been overwritten at 0x"+max.toString(16)+", expected hex dwords 0x89BACDFE and 0x2135467, but received 0x"+cookie2.toString(16)+" 0x"+cookie1.toString(16))}if(HEAPU32[0]!==1668509029)abort("Runtime error: The application has corrupted its heap memory area (address zero)!")}(function(){var h16=new Int16Array(1);var h8=new Int8Array(h16.buffer);h16[0]=25459;if(h8[0]!==115||h8[1]!==99)throw"Runtime error: expected the system to be little-endian! (Run with -sSUPPORT_BIG_ENDIAN to bypass)"})();var __ATPRERUN__=[];var __ATINIT__=[];var __ATPOSTRUN__=[];var runtimeInitialized=false;function keepRuntimeAlive(){return noExitRuntime}function preRun(){if(Module["preRun"]){if(typeof Module["preRun"]=="function")Module["preRun"]=[Module["preRun"]];while(Module["preRun"].length){addOnPreRun(Module["preRun"].shift())}}callRuntimeCallbacks(__ATPRERUN__)}function initRuntime(){assert(!runtimeInitialized);runtimeInitialized=true;checkStackCookie();callRuntimeCallbacks(__ATINIT__)}function postRun(){checkStackCookie();if(Module["postRun"]){if(typeof Module["postRun"]=="function")Module["postRun"]=[Module["postRun"]];while(Module["postRun"].length){addOnPostRun(Module["postRun"].shift())}}callRuntimeCallbacks(__ATPOSTRUN__)}function addOnPreRun(cb){__ATPRERUN__.unshift(cb)}function addOnInit(cb){__ATINIT__.unshift(cb)}function addOnPostRun(cb){__ATPOSTRUN__.unshift(cb)}assert(Math.imul,"This browser does not support Math.imul(), build with LEGACY_VM_SUPPORT or POLYFILL_OLD_MATH_FUNCTIONS to add in a polyfill");assert(Math.fround,"This browser does not support Math.fround(), build with LEGACY_VM_SUPPORT or POLYFILL_OLD_MATH_FUNCTIONS to add in a polyfill");assert(Math.clz32,"This browser does not support Math.clz32(), build with LEGACY_VM_SUPPORT or POLYFILL_OLD_MATH_FUNCTIONS to add in a polyfill");assert(Math.trunc,"This browser does not support Math.trunc(), build with LEGACY_VM_SUPPORT or POLYFILL_OLD_MATH_FUNCTIONS to add in a polyfill");var runDependencies=0;var runDependencyWatcher=null;var dependenciesFulfilled=null;var runDependencyTracking={};function addRunDependency(id){runDependencies++;if(Module["monitorRunDependencies"]){Module["monitorRunDependencies"](runDependencies)}if(id){assert(!runDependencyTracking[id]);runDependencyTracking[id]=1;if(runDependencyWatcher===null&&typeof setInterval!="undefined"){runDependencyWatcher=setInterval(function(){if(ABORT){clearInterval(runDependencyWatcher);runDependencyWatcher=null;return}var shown=false;for(var dep in runDependencyTracking){if(!shown){shown=true;err("still waiting on run dependencies:")}err("dependency: "+dep)}if(shown){err("(end of list)")}},1e4)}}else{err("warning: run dependency added without ID")}}function removeRunDependency(id){runDependencies--;if(Module["monitorRunDependencies"]){Module["monitorRunDependencies"](runDependencies)}if(id){assert(runDependencyTracking[id]);delete runDependencyTracking[id]}else{err("warning: run dependency removed without ID")}if(runDependencies==0){if(runDependencyWatcher!==null){clearInterval(runDependencyWatcher);runDependencyWatcher=null}if(dependenciesFulfilled){var callback=dependenciesFulfilled;dependenciesFulfilled=null;callback()}}}function abort(what){{if(Module["onAbort"]){Module["onAbort"](what)}}what="Aborted("+what+")";err(what);ABORT=true;EXITSTATUS=1;var e=new WebAssembly.RuntimeError(what);readyPromiseReject(e);throw e}var FS={error:function(){abort("Filesystem support (FS) was not included. The problem is that you are using files from JS, but files were not used from C/C++, so filesystem support was not auto-included. You can force-include filesystem support with -sFORCE_FILESYSTEM")},init:function(){FS.error()},createDataFile:function(){FS.error()},createPreloadedFile:function(){FS.error()},createLazyFile:function(){FS.error()},open:function(){FS.error()},mkdev:function(){FS.error()},registerDevice:function(){FS.error()},analyzePath:function(){FS.error()},loadFilesFromDB:function(){FS.error()},ErrnoError:function ErrnoError(){FS.error()}};Module["FS_createDataFile"]=FS.createDataFile;Module["FS_createPreloadedFile"]=FS.createPreloadedFile;var dataURIPrefix="data:application/octet-stream;base64,";function isDataURI(filename){return filename.startsWith(dataURIPrefix)}function isFileURI(filename){return filename.startsWith("file://")}function createExportWrapper(name,fixedasm){return function(){var displayName=name;var asm=fixedasm;if(!fixedasm){asm=Module["asm"]}assert(runtimeInitialized,"native function `"+displayName+"` called before runtime initialization");if(!asm[name]){assert(asm[name],"exported native function `"+displayName+"` not found")}return asm[name].apply(null,arguments)}}var wasmBinaryFile;wasmBinaryFile="draco_encoder.wasm";if(!isDataURI(wasmBinaryFile)){wasmBinaryFile=locateFile(wasmBinaryFile)}function getBinary(file){try{if(file==wasmBinaryFile&&wasmBinary){return new Uint8Array(wasmBinary)}var binary=tryParseAsDataURI(file);if(binary){return binary}if(readBinary){return readBinary(file)}throw"both async and sync fetching of the wasm failed"}catch(err){abort(err)}}function getBinaryPromise(){if(!wasmBinary&&(ENVIRONMENT_IS_WEB||ENVIRONMENT_IS_WORKER)){if(typeof fetch=="function"&&!isFileURI(wasmBinaryFile)){return fetch(wasmBinaryFile,{credentials:"same-origin"}).then(function(response){if(!response["ok"]){throw"failed to load wasm binary file at '"+wasmBinaryFile+"'"}return response["arrayBuffer"]()}).catch(function(){return getBinary(wasmBinaryFile)})}else{if(readAsync){return new Promise(function(resolve,reject){readAsync(wasmBinaryFile,function(response){resolve(new Uint8Array(response))},reject)})}}}return Promise.resolve().then(function(){return getBinary(wasmBinaryFile)})}function createWasm(){var info={"env":asmLibraryArg,"wasi_snapshot_preview1":asmLibraryArg};function receiveInstance(instance,module){var exports=instance.exports;Module["asm"]=exports;wasmTable=Module["asm"]["__indirect_function_table"];assert(wasmTable,"table not found in wasm exports");addOnInit(Module["asm"]["__wasm_call_ctors"]);removeRunDependency("wasm-instantiate")}addRunDependency("wasm-instantiate");var trueModule=Module;function receiveInstantiationResult(result){assert(Module===trueModule,"the Module object should not be replaced during async compilation - perhaps the order of HTML elements is wrong?");trueModule=null;receiveInstance(result["instance"])}function instantiateArrayBuffer(receiver){return getBinaryPromise().then(function(binary){return WebAssembly.instantiate(binary,info)}).then(function(instance){return instance}).then(receiver,function(reason){err("failed to asynchronously prepare wasm: "+reason);if(isFileURI(wasmBinaryFile)){err("warning: Loading from a file URI ("+wasmBinaryFile+") is not supported in most browsers. See https://emscripten.org/docs/getting_started/FAQ.html#how-do-i-run-a-local-webserver-for-testing-why-does-my-program-stall-in-downloading-or-preparing")}abort(reason)})}function instantiateAsync(){if(!wasmBinary&&typeof WebAssembly.instantiateStreaming=="function"&&!isDataURI(wasmBinaryFile)&&!isFileURI(wasmBinaryFile)&&!ENVIRONMENT_IS_NODE&&typeof fetch=="function"){return fetch(wasmBinaryFile,{credentials:"same-origin"}).then(function(response){var result=WebAssembly.instantiateStreaming(response,info);return result.then(receiveInstantiationResult,function(reason){err("wasm streaming compile failed: "+reason);err("falling back to ArrayBuffer instantiation");return instantiateArrayBuffer(receiveInstantiationResult)})})}else{return instantiateArrayBuffer(receiveInstantiationResult)}}if(Module["instantiateWasm"]){try{var exports=Module["instantiateWasm"](info,receiveInstance);return exports}catch(e){err("Module.instantiateWasm callback failed with error: "+e);readyPromiseReject(e)}}instantiateAsync().catch(readyPromiseReject);return{}}var tempDouble;var tempI64;function array_bounds_check_error(idx,size){throw"Array index "+idx+" out of bounds: [0,"+size+")"}function ExitStatus(status){this.name="ExitStatus";this.message="Program terminated with exit("+status+")";this.status=status}function callRuntimeCallbacks(callbacks){while(callbacks.length>0){callbacks.shift()(Module)}}function intArrayToString(array){var ret=[];for(var i=0;i255){if(ASSERTIONS){assert(false,"Character code "+chr+" ("+String.fromCharCode(chr)+") at offset "+i+" not in 0x00-0xFF.")}chr&=255}ret.push(String.fromCharCode(chr))}return ret.join("")}function warnOnce(text){if(!warnOnce.shown)warnOnce.shown={};if(!warnOnce.shown[text]){warnOnce.shown[text]=1;if(ENVIRONMENT_IS_NODE)text="warning: "+text;err(text)}}function ___cxa_allocate_exception(size){return _malloc(size+24)+24}function ExceptionInfo(excPtr){this.excPtr=excPtr;this.ptr=excPtr-24;this.set_type=function(type){HEAPU32[this.ptr+4>>2]=type};this.get_type=function(){return HEAPU32[this.ptr+4>>2]};this.set_destructor=function(destructor){HEAPU32[this.ptr+8>>2]=destructor};this.get_destructor=function(){return HEAPU32[this.ptr+8>>2]};this.set_refcount=function(refcount){HEAP32[this.ptr>>2]=refcount};this.set_caught=function(caught){caught=caught?1:0;HEAP8[this.ptr+12>>0]=caught};this.get_caught=function(){return HEAP8[this.ptr+12>>0]!=0};this.set_rethrown=function(rethrown){rethrown=rethrown?1:0;HEAP8[this.ptr+13>>0]=rethrown};this.get_rethrown=function(){return HEAP8[this.ptr+13>>0]!=0};this.init=function(type,destructor){this.set_adjusted_ptr(0);this.set_type(type);this.set_destructor(destructor);this.set_refcount(0);this.set_caught(false);this.set_rethrown(false)};this.add_ref=function(){var value=HEAP32[this.ptr>>2];HEAP32[this.ptr>>2]=value+1};this.release_ref=function(){var prev=HEAP32[this.ptr>>2];HEAP32[this.ptr>>2]=prev-1;assert(prev>0);return prev===1};this.set_adjusted_ptr=function(adjustedPtr){HEAPU32[this.ptr+16>>2]=adjustedPtr};this.get_adjusted_ptr=function(){return HEAPU32[this.ptr+16>>2]};this.get_exception_ptr=function(){var isPointer=___cxa_is_pointer_type(this.get_type());if(isPointer){return HEAPU32[this.excPtr>>2]}var adjusted=this.get_adjusted_ptr();if(adjusted!==0)return adjusted;return this.excPtr}}var exceptionLast=0;var uncaughtExceptionCount=0;function ___cxa_throw(ptr,type,destructor){var info=new ExceptionInfo(ptr);info.init(type,destructor);exceptionLast=ptr;uncaughtExceptionCount++;throw ptr+" - Exception catching is disabled, this exception cannot be caught. Compile with -sNO_DISABLE_EXCEPTION_CATCHING or -sEXCEPTION_CATCHING_ALLOWED=[..] to catch."}function _abort(){abort("native code called abort()")}function _emscripten_memcpy_big(dest,src,num){HEAPU8.copyWithin(dest,src,src+num)}function getHeapMax(){return 2147483648}function emscripten_realloc_buffer(size){try{wasmMemory.grow(size-buffer.byteLength+65535>>>16);updateGlobalBufferAndViews(wasmMemory.buffer);return 1}catch(e){err("emscripten_realloc_buffer: Attempted to grow heap from "+buffer.byteLength+" bytes to "+size+" bytes, but got error: "+e)}}function _emscripten_resize_heap(requestedSize){var oldSize=HEAPU8.length;requestedSize=requestedSize>>>0;assert(requestedSize>oldSize);var maxHeapSize=getHeapMax();if(requestedSize>maxHeapSize){err("Cannot enlarge memory, asked to go up to "+requestedSize+" bytes, but the limit is "+maxHeapSize+" bytes!");return false}let alignUp=(x,multiple)=>x+(multiple-x%multiple)%multiple;for(var cutDown=1;cutDown<=4;cutDown*=2){var overGrownHeapSize=oldSize*(1+.2/cutDown);overGrownHeapSize=Math.min(overGrownHeapSize,requestedSize+100663296);var newSize=Math.min(maxHeapSize,alignUp(Math.max(requestedSize,overGrownHeapSize),65536));var replacement=emscripten_realloc_buffer(newSize);if(replacement){err("Warning: Enlarging memory arrays, this is not fast! "+[oldSize,newSize]);return true}}err("Failed to grow the heap from "+oldSize+" bytes to "+newSize+" bytes, not enough memory!");return false}var SYSCALLS={varargs:undefined,get:function(){assert(SYSCALLS.varargs!=undefined);SYSCALLS.varargs+=4;var ret=HEAP32[SYSCALLS.varargs-4>>2];return ret},getStr:function(ptr){var ret=UTF8ToString(ptr);return ret}};function _fd_close(fd){abort("fd_close called without SYSCALLS_REQUIRE_FILESYSTEM")}function _fd_seek(fd,offset_low,offset_high,whence,newOffset){return 70}var printCharBuffers=[null,[],[]];function printChar(stream,curr){var buffer=printCharBuffers[stream];assert(buffer);if(curr===0||curr===10){(stream===1?out:err)(UTF8ArrayToString(buffer,0));buffer.length=0}else{buffer.push(curr)}}function flush_NO_FILESYSTEM(){_fflush(0);if(printCharBuffers[1].length)printChar(1,10);if(printCharBuffers[2].length)printChar(2,10)}function _fd_write(fd,iov,iovcnt,pnum){var num=0;for(var i=0;i>2];var len=HEAPU32[iov+4>>2];iov+=8;for(var j=0;j>2]=num;return 0}function intArrayFromString(stringy,dontAddNull,length){var len=length>0?length:lengthBytesUTF8(stringy)+1;var u8array=new Array(len);var numBytesWritten=stringToUTF8Array(stringy,u8array,0,u8array.length);if(dontAddNull)u8array.length=numBytesWritten;return u8array}var ASSERTIONS=true;var decodeBase64=typeof atob=="function"?atob:function(input){var keyStr="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=";var output="";var chr1,chr2,chr3;var enc1,enc2,enc3,enc4;var i=0;input=input.replace(/[^A-Za-z0-9\+\/\=]/g,"");do{enc1=keyStr.indexOf(input.charAt(i++));enc2=keyStr.indexOf(input.charAt(i++));enc3=keyStr.indexOf(input.charAt(i++));enc4=keyStr.indexOf(input.charAt(i++));chr1=enc1<<2|enc2>>4;chr2=(enc2&15)<<4|enc3>>2;chr3=(enc3&3)<<6|enc4;output=output+String.fromCharCode(chr1);if(enc3!==64){output=output+String.fromCharCode(chr2)}if(enc4!==64){output=output+String.fromCharCode(chr3)}}while(i0){return}stackCheckInit();preRun();if(runDependencies>0){return}function doRun(){if(calledRun)return;calledRun=true;Module["calledRun"]=true;if(ABORT)return;initRuntime();readyPromiseResolve(Module);if(Module["onRuntimeInitialized"])Module["onRuntimeInitialized"]();assert(!Module["_main"],'compiled without a main, but one is present. if you added it from JS, use Module["onRuntimeInitialized"]');postRun()}if(Module["setStatus"]){Module["setStatus"]("Running...");setTimeout(function(){setTimeout(function(){Module["setStatus"]("")},1);doRun()},1)}else{doRun()}checkStackCookie()}if(Module["preInit"]){if(typeof Module["preInit"]=="function")Module["preInit"]=[Module["preInit"]];while(Module["preInit"].length>0){Module["preInit"].pop()()}}run();function WrapperObject(){}WrapperObject.prototype=Object.create(WrapperObject.prototype);WrapperObject.prototype.constructor=WrapperObject;WrapperObject.prototype.__class__=WrapperObject;WrapperObject.__cache__={};Module["WrapperObject"]=WrapperObject;function getCache(__class__){return(__class__||WrapperObject).__cache__}Module["getCache"]=getCache;function wrapPointer(ptr,__class__){var cache=getCache(__class__);var ret=cache[ptr];if(ret)return ret;ret=Object.create((__class__||WrapperObject).prototype);ret.ptr=ptr;return cache[ptr]=ret}Module["wrapPointer"]=wrapPointer;function castObject(obj,__class__){return wrapPointer(obj.ptr,__class__)}Module["castObject"]=castObject;Module["NULL"]=wrapPointer(0);function destroy(obj){if(!obj["__destroy__"])throw"Error: Cannot destroy object. (Did you create it yourself?)";obj["__destroy__"]();delete getCache(obj.__class__)[obj.ptr]}Module["destroy"]=destroy;function compare(obj1,obj2){return obj1.ptr===obj2.ptr}Module["compare"]=compare;function getPointer(obj){return obj.ptr}Module["getPointer"]=getPointer;function getClass(obj){return obj.__class__}Module["getClass"]=getClass;var ensureCache={buffer:0,size:0,pos:0,temps:[],needed:0,prepare:function(){if(ensureCache.needed){for(var i=0;i=ensureCache.size){assert(len>0);ensureCache.needed+=len;ret=Module["_malloc"](len);ensureCache.temps.push(ret)}else{ret=ensureCache.buffer+ensureCache.pos;ensureCache.pos+=len}return ret},copy:function(array,view,offset){offset>>>=0;var bytes=view.BYTES_PER_ELEMENT;switch(bytes){case 2:offset>>>=1;break;case 4:offset>>>=2;break;case 8:offset>>>=3;break}for(var i=0;i>>0,$jscomp.propertyToPolyfillSymbol[r]=$jscomp.IS_SYMBOL_NATIVE? -$jscomp.global.Symbol(r):$jscomp.POLYFILL_PREFIX+n+"$"+r),$jscomp.defineProperty(v,$jscomp.propertyToPolyfillSymbol[r],{configurable:!0,writable:!0,value:m})))}; -$jscomp.polyfill("Promise",function(q){function m(){this.batch_=null}function n(p){return p instanceof r?p:new r(function(d,t){d(p)})}if(q&&(!($jscomp.FORCE_POLYFILL_PROMISE||$jscomp.FORCE_POLYFILL_PROMISE_WHEN_NO_UNHANDLED_REJECTION&&"undefined"===typeof $jscomp.global.PromiseRejectionEvent)||!$jscomp.global.Promise||-1===$jscomp.global.Promise.toString().indexOf("[native code]")))return q;m.prototype.asyncExecute=function(p){if(null==this.batch_){this.batch_=[];var d=this;this.asyncExecuteFunction(function(){d.executeBatch_()})}this.batch_.push(p)}; -var v=$jscomp.global.setTimeout;m.prototype.asyncExecuteFunction=function(p){v(p,0)};m.prototype.executeBatch_=function(){for(;this.batch_&&this.batch_.length;){var p=this.batch_;this.batch_=[];for(var d=0;d>>16&65535)*r+v*(n>>>16&65535)<<16>>>0)|0}},"es6","es3");$jscomp.polyfill("Math.fround",function(q){if(q)return q;if($jscomp.SIMPLE_FROUND_POLYFILL||"function"!==typeof Float32Array)return function(n){return n};var m=new Float32Array(1);return function(n){m[0]=n;return m[0]}},"es6","es3"); -$jscomp.polyfill("Math.clz32",function(q){return q?q:function(m){m=Number(m)>>>0;if(0===m)return 32;var n=0;0===(m&4294901760)&&(m<<=16,n+=16);0===(m&4278190080)&&(m<<=8,n+=8);0===(m&4026531840)&&(m<<=4,n+=4);0===(m&3221225472)&&(m<<=2,n+=2);0===(m&2147483648)&&n++;return n}},"es6","es3");$jscomp.polyfill("Math.trunc",function(q){return q?q:function(m){m=Number(m);if(isNaN(m)||Infinity===m||-Infinity===m||0===m)return m;var n=Math.floor(Math.abs(m));return 0>m?-n:n}},"es6","es3"); -$jscomp.checkStringArgs=function(q,m,n){if(null==q)throw new TypeError("The 'this' value for String.prototype."+n+" must not be null or undefined");if(m instanceof RegExp)throw new TypeError("First argument to String.prototype."+n+" must not be a regular expression");return q+""}; -$jscomp.polyfill("String.prototype.startsWith",function(q){return q?q:function(m,n){var v=$jscomp.checkStringArgs(this,m,"startsWith");m+="";var r=v.length,E=m.length;n=Math.max(0,Math.min(n|0,v.length));for(var p=0;p=E}},"es6","es3"); -$jscomp.polyfill("Array.prototype.copyWithin",function(q){function m(n){n=Number(n);return Infinity===n||-Infinity===n?n:n|0}return q?q:function(n,v,r){var E=this.length;n=m(n);v=m(v);r=void 0===r?E:m(r);n=0>n?Math.max(E+n,0):Math.min(n,E);v=0>v?Math.max(E+v,0):Math.min(v,E);r=0>r?Math.max(E+r,0):Math.min(r,E);if(nv;)--r in this?this[--n]=this[r]:delete this[--n];return this}},"es6","es3"); -$jscomp.typedArrayCopyWithin=function(q){return q?q:Array.prototype.copyWithin};$jscomp.polyfill("Int8Array.prototype.copyWithin",$jscomp.typedArrayCopyWithin,"es6","es5");$jscomp.polyfill("Uint8Array.prototype.copyWithin",$jscomp.typedArrayCopyWithin,"es6","es5");$jscomp.polyfill("Uint8ClampedArray.prototype.copyWithin",$jscomp.typedArrayCopyWithin,"es6","es5");$jscomp.polyfill("Int16Array.prototype.copyWithin",$jscomp.typedArrayCopyWithin,"es6","es5"); +var $jscomp=$jscomp||{};$jscomp.scope={};$jscomp.arrayIteratorImpl=function(n){var k=0;return function(){return k>>0,$jscomp.propertyToPolyfillSymbol[p]=$jscomp.IS_SYMBOL_NATIVE? +$jscomp.global.Symbol(p):$jscomp.POLYFILL_PREFIX+l+"$"+p),$jscomp.defineProperty(q,$jscomp.propertyToPolyfillSymbol[p],{configurable:!0,writable:!0,value:k})))}; +$jscomp.polyfill("Promise",function(n){function k(){this.batch_=null}function l(m){return m instanceof p?m:new p(function(v,x){v(m)})}if(n&&(!($jscomp.FORCE_POLYFILL_PROMISE||$jscomp.FORCE_POLYFILL_PROMISE_WHEN_NO_UNHANDLED_REJECTION&&"undefined"===typeof $jscomp.global.PromiseRejectionEvent)||!$jscomp.global.Promise||-1===$jscomp.global.Promise.toString().indexOf("[native code]")))return n;k.prototype.asyncExecute=function(m){if(null==this.batch_){this.batch_=[];var v=this;this.asyncExecuteFunction(function(){v.executeBatch_()})}this.batch_.push(m)}; +var q=$jscomp.global.setTimeout;k.prototype.asyncExecuteFunction=function(m){q(m,0)};k.prototype.executeBatch_=function(){for(;this.batch_&&this.batch_.length;){var m=this.batch_;this.batch_=[];for(var v=0;v=t}},"es6","es3");$jscomp.polyfill("Math.imul",function(n){return n?n:function(k,l){k=Number(k);l=Number(l);var q=k&65535,p=l&65535;return q*p+((k>>>16&65535)*p+q*(l>>>16&65535)<<16>>>0)|0}},"es6","es3"); +$jscomp.polyfill("Math.fround",function(n){if(n)return n;if($jscomp.SIMPLE_FROUND_POLYFILL||"function"!==typeof Float32Array)return function(l){return l};var k=new Float32Array(1);return function(l){k[0]=l;return k[0]}},"es6","es3"); +$jscomp.polyfill("Math.clz32",function(n){return n?n:function(k){k=Number(k)>>>0;if(0===k)return 32;var l=0;0===(k&4294901760)&&(k<<=16,l+=16);0===(k&4278190080)&&(k<<=8,l+=8);0===(k&4026531840)&&(k<<=4,l+=4);0===(k&3221225472)&&(k<<=2,l+=2);0===(k&2147483648)&&l++;return l}},"es6","es3");$jscomp.polyfill("Math.trunc",function(n){return n?n:function(k){k=Number(k);if(isNaN(k)||Infinity===k||-Infinity===k||0===k)return k;var l=Math.floor(Math.abs(k));return 0>k?-l:l}},"es6","es3"); +$jscomp.polyfill("Array.prototype.copyWithin",function(n){function k(l){l=Number(l);return Infinity===l||-Infinity===l?l:l|0}return n?n:function(l,q,p){var t=this.length;l=k(l);q=k(q);p=void 0===p?t:k(p);l=0>l?Math.max(t+l,0):Math.min(l,t);q=0>q?Math.max(t+q,0):Math.min(q,t);p=0>p?Math.max(t+p,0):Math.min(p,t);if(lq;)--p in this?this[--l]=this[p]:delete this[--l];return this}},"es6","es3"); +$jscomp.typedArrayCopyWithin=function(n){return n?n:Array.prototype.copyWithin};$jscomp.polyfill("Int8Array.prototype.copyWithin",$jscomp.typedArrayCopyWithin,"es6","es5");$jscomp.polyfill("Uint8Array.prototype.copyWithin",$jscomp.typedArrayCopyWithin,"es6","es5");$jscomp.polyfill("Uint8ClampedArray.prototype.copyWithin",$jscomp.typedArrayCopyWithin,"es6","es5");$jscomp.polyfill("Int16Array.prototype.copyWithin",$jscomp.typedArrayCopyWithin,"es6","es5"); $jscomp.polyfill("Uint16Array.prototype.copyWithin",$jscomp.typedArrayCopyWithin,"es6","es5");$jscomp.polyfill("Int32Array.prototype.copyWithin",$jscomp.typedArrayCopyWithin,"es6","es5");$jscomp.polyfill("Uint32Array.prototype.copyWithin",$jscomp.typedArrayCopyWithin,"es6","es5");$jscomp.polyfill("Float32Array.prototype.copyWithin",$jscomp.typedArrayCopyWithin,"es6","es5");$jscomp.polyfill("Float64Array.prototype.copyWithin",$jscomp.typedArrayCopyWithin,"es6","es5"); -var DracoEncoderModule=function(){var q="undefined"!==typeof document&&document.currentScript?document.currentScript.src:void 0;"undefined"!==typeof __filename&&(q=q||__filename);return function(m){function n(g){return a.locateFile?a.locateFile(g,S):S+g}function v(g){v.shown||(v.shown={});v.shown[g]||(v.shown[g]=1,I(g))}function r(g,b){Object.getOwnPropertyDescriptor(a,g)||Object.defineProperty(a,g,{configurable:!0,get:function(){f("Module."+g+" has been replaced with plain "+b+" (the initial value can be provided on Module, but after startup the value is only looked for on a local variable of that name)")}})} -function E(g,b){g="'"+g+"' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)";b&&(g+=". Alternatively, forcing filesystem support (-sFORCE_FILESYSTEM) can export this for you");return g}function p(g,b){Object.getOwnPropertyDescriptor(a,g)||Object.defineProperty(a,g,{configurable:!0,get:function(){f(E(g,b))}})}function d(g,b){Object.getOwnPropertyDescriptor(a,g)||(a[g]=function(){return f(E(g,b))})}function t(g,b){g||f("Assertion failed"+(b?": "+b:""))}function C(g){Ba=g;a.HEAP8=W= -new Int8Array(g);a.HEAP16=Ca=new Int16Array(g);a.HEAP32=T=new Int32Array(g);a.HEAPU8=pa=new Uint8Array(g);a.HEAPU16=new Uint16Array(g);a.HEAPU32=J=new Uint32Array(g);a.HEAPF32=Da=new Float32Array(g);a.HEAPF64=new Float64Array(g)}function L(){var g=Ea();t(0==(g&3));T[g>>2]=34821223;T[g+4>>2]=2310721022;J[0]=1668509029}function Z(){if(!qa){var g=Ea(),b=J[g>>2],c=J[g+4>>2];34821223==b&&2310721022==c||f("Stack overflow! Stack cookie has been overwritten at 0x"+g.toString(16)+", expected hex dwords 0x89BACDFE and 0x2135467, but received 0x"+ -c.toString(16)+" 0x"+b.toString(16));1668509029!==J[0]&&f("Runtime error: The application has corrupted its heap memory area (address zero)!")}}function R(g){aa++;a.monitorRunDependencies&&a.monitorRunDependencies(aa);g?(t(!ia[g]),ia[g]=1,null===ba&&"undefined"!=typeof setInterval&&(ba=setInterval(function(){if(qa)clearInterval(ba),ba=null;else{var b=!1,c;for(c in ia)b||(b=!0,I("still waiting on run dependencies:")),I("dependency: "+c);b&&I("(end of list)")}},1E4))):I("warning: run dependency added without ID")} -function f(g){if(a.onAbort)a.onAbort(g);g="Aborted("+g+")";I(g);qa=!0;g=new WebAssembly.RuntimeError(g);Fa(g);throw g;}function l(g,b){return function(){var c=b;b||(c=a.asm);t(ra,"native function `"+g+"` called before runtime initialization");c[g]||t(c[g],"exported native function `"+g+"` not found");return c[g].apply(null,arguments)}}function ea(g){try{if(g==K&&ja)return new Uint8Array(ja);if(ka)return ka(g);throw"both async and sync fetching of the wasm failed";}catch(b){f(b)}}function eb(){if(!ja&& -(Ga||fa)){if("function"==typeof fetch&&!K.startsWith("file://"))return fetch(K,{credentials:"same-origin"}).then(function(g){if(!g.ok)throw"failed to load wasm binary file at '"+K+"'";return g.arrayBuffer()}).catch(function(){return ea(K)});if(sa)return new Promise(function(g,b){sa(K,function(c){g(new Uint8Array(c))},b)})}return Promise.resolve().then(function(){return ea(K)})}function Ha(g){for(;0=ta.length&&(ta.length=g+1),ta[g]=b=ua.get(g));t(ua.get(g)==b,"JavaScript-side Wasm function table mirror is out of date!");return b}function fb(g){this.excPtr=g;this.ptr=g-24;this.set_type=function(b){J[this.ptr+4>>2]=b};this.get_type=function(){return J[this.ptr+4>>2]};this.set_destructor=function(b){J[this.ptr+8>>2]=b};this.get_destructor=function(){return J[this.ptr+8>>2]};this.set_refcount=function(b){T[this.ptr>> -2]=b};this.set_caught=function(b){W[this.ptr+12>>0]=b?1:0};this.get_caught=function(){return 0!=W[this.ptr+12>>0]};this.set_rethrown=function(b){W[this.ptr+13>>0]=b?1:0};this.get_rethrown=function(){return 0!=W[this.ptr+13>>0]};this.init=function(b,c){this.set_adjusted_ptr(0);this.set_type(b);this.set_destructor(c);this.set_refcount(0);this.set_caught(!1);this.set_rethrown(!1)};this.add_ref=function(){T[this.ptr>>2]+=1};this.release_ref=function(){var b=T[this.ptr>>2];T[this.ptr>>2]=b-1;t(0>2]=b};this.get_adjusted_ptr=function(){return J[this.ptr+16>>2]};this.get_exception_ptr=function(){if(gb(this.get_type()))return J[this.excPtr>>2];var b=this.get_adjusted_ptr();return 0!==b?b:this.excPtr}}function Ia(g){function b(){if(!va&&(va=!0,a.calledRun=!0,!qa)){t(!ra);ra=!0;Z();Ha(Ja);Sa(a);if(a.onRuntimeInitialized)a.onRuntimeInitialized();t(!a._main,'compiled without a main, but one is present. if you added it from JS, use Module["onRuntimeInitialized"]'); -Z();if(a.postRun)for("function"==typeof a.postRun&&(a.postRun=[a.postRun]);a.postRun.length;)Ta.unshift(a.postRun.shift());Ha(Ta)}}if(!(0=e&&(e=65536+((e&1023)<<10)|g.charCodeAt(++c)&1023);127>=e?++b:b=2047>=e?b+2:65535>=e?b+3:b+4}b=Array(b+1);c=0;e=b.length;if(0=k){var w=g.charCodeAt(++h);k=65536+((k&1023)<<10)|w&1023}if(127>=k){if(c>=e)break;b[c++]=k}else{if(2047>=k){if(c+1>=e)break;b[c++]= -192|k>>6}else{if(65535>=k){if(c+2>=e)break;b[c++]=224|k>>12}else{if(c+3>=e)break;1114111>18;b[c++]=128|k>>12&63}b[c++]=128|k>>6&63}b[c++]=128|k&63}}b[c]=0}g=u.alloc(b,W);u.copy(b,W,g);return g}return g}function wa(g){if("object"===typeof g){var b=u.alloc(g,W);u.copy(g,W,b);return b}return g}function xa(g){if("object"=== -typeof g){var b=u.alloc(g,Ca);u.copy(g,Ca,b);return b}return g}function ca(g){if("object"===typeof g){var b=u.alloc(g,T);u.copy(g,T,b);return b}return g}function ma(g){if("object"===typeof g){var b=u.alloc(g,Da);u.copy(g,Da,b);return b}return g}function X(){throw"cannot construct a VoidPtr, no constructor in IDL";}function U(){this.ptr=hb();M(U)[this.ptr]=this}function A(){this.ptr=ib();M(A)[this.ptr]=this}function N(){this.ptr=jb();M(N)[this.ptr]=this}function F(){this.ptr=kb();M(F)[this.ptr]=this} -function V(){this.ptr=lb();M(V)[this.ptr]=this}function O(){this.ptr=mb();M(O)[this.ptr]=this}function G(){this.ptr=nb();M(G)[this.ptr]=this}function y(){this.ptr=ob();M(y)[this.ptr]=this}function x(){this.ptr=pb();M(x)[this.ptr]=this}function z(){this.ptr=qb();M(z)[this.ptr]=this}function B(g){g&&"object"===typeof g&&(g=g.ptr);this.ptr=rb(g);M(B)[this.ptr]=this}m=m||{};var a="undefined"!=typeof m?m:{},Sa,Fa;a.ready=new Promise(function(g,b){Sa=g;Fa=b});Object.getOwnPropertyDescriptor(a.ready,"_free")|| -(Object.defineProperty(a.ready,"_free",{configurable:!0,get:function(){f("You are getting _free on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}),Object.defineProperty(a.ready,"_free",{configurable:!0,set:function(){f("You are setting _free on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}));Object.getOwnPropertyDescriptor(a.ready, -"_malloc")||(Object.defineProperty(a.ready,"_malloc",{configurable:!0,get:function(){f("You are getting _malloc on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}),Object.defineProperty(a.ready,"_malloc",{configurable:!0,set:function(){f("You are setting _malloc on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}})); -Object.getOwnPropertyDescriptor(a.ready,"_emscripten_bind_VoidPtr___destroy___0")||(Object.defineProperty(a.ready,"_emscripten_bind_VoidPtr___destroy___0",{configurable:!0,get:function(){f("You are getting _emscripten_bind_VoidPtr___destroy___0 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}),Object.defineProperty(a.ready,"_emscripten_bind_VoidPtr___destroy___0",{configurable:!0,set:function(){f("You are setting _emscripten_bind_VoidPtr___destroy___0 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}})); -Object.getOwnPropertyDescriptor(a.ready,"_emscripten_bind_GeometryAttribute_GeometryAttribute_0")||(Object.defineProperty(a.ready,"_emscripten_bind_GeometryAttribute_GeometryAttribute_0",{configurable:!0,get:function(){f("You are getting _emscripten_bind_GeometryAttribute_GeometryAttribute_0 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}),Object.defineProperty(a.ready,"_emscripten_bind_GeometryAttribute_GeometryAttribute_0", -{configurable:!0,set:function(){f("You are setting _emscripten_bind_GeometryAttribute_GeometryAttribute_0 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}));Object.getOwnPropertyDescriptor(a.ready,"_emscripten_bind_GeometryAttribute___destroy___0")||(Object.defineProperty(a.ready,"_emscripten_bind_GeometryAttribute___destroy___0",{configurable:!0,get:function(){f("You are getting _emscripten_bind_GeometryAttribute___destroy___0 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}), -Object.defineProperty(a.ready,"_emscripten_bind_GeometryAttribute___destroy___0",{configurable:!0,set:function(){f("You are setting _emscripten_bind_GeometryAttribute___destroy___0 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}));Object.getOwnPropertyDescriptor(a.ready,"_emscripten_bind_PointAttribute_PointAttribute_0")||(Object.defineProperty(a.ready,"_emscripten_bind_PointAttribute_PointAttribute_0", -{configurable:!0,get:function(){f("You are getting _emscripten_bind_PointAttribute_PointAttribute_0 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}),Object.defineProperty(a.ready,"_emscripten_bind_PointAttribute_PointAttribute_0",{configurable:!0,set:function(){f("You are setting _emscripten_bind_PointAttribute_PointAttribute_0 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}})); -Object.getOwnPropertyDescriptor(a.ready,"_emscripten_bind_PointAttribute_size_0")||(Object.defineProperty(a.ready,"_emscripten_bind_PointAttribute_size_0",{configurable:!0,get:function(){f("You are getting _emscripten_bind_PointAttribute_size_0 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}),Object.defineProperty(a.ready,"_emscripten_bind_PointAttribute_size_0",{configurable:!0,set:function(){f("You are setting _emscripten_bind_PointAttribute_size_0 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}})); -Object.getOwnPropertyDescriptor(a.ready,"_emscripten_bind_PointAttribute_attribute_type_0")||(Object.defineProperty(a.ready,"_emscripten_bind_PointAttribute_attribute_type_0",{configurable:!0,get:function(){f("You are getting _emscripten_bind_PointAttribute_attribute_type_0 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}),Object.defineProperty(a.ready,"_emscripten_bind_PointAttribute_attribute_type_0", -{configurable:!0,set:function(){f("You are setting _emscripten_bind_PointAttribute_attribute_type_0 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}));Object.getOwnPropertyDescriptor(a.ready,"_emscripten_bind_PointAttribute_data_type_0")||(Object.defineProperty(a.ready,"_emscripten_bind_PointAttribute_data_type_0",{configurable:!0,get:function(){f("You are getting _emscripten_bind_PointAttribute_data_type_0 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}), -Object.defineProperty(a.ready,"_emscripten_bind_PointAttribute_data_type_0",{configurable:!0,set:function(){f("You are setting _emscripten_bind_PointAttribute_data_type_0 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}));Object.getOwnPropertyDescriptor(a.ready,"_emscripten_bind_PointAttribute_num_components_0")||(Object.defineProperty(a.ready,"_emscripten_bind_PointAttribute_num_components_0",{configurable:!0, -get:function(){f("You are getting _emscripten_bind_PointAttribute_num_components_0 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}),Object.defineProperty(a.ready,"_emscripten_bind_PointAttribute_num_components_0",{configurable:!0,set:function(){f("You are setting _emscripten_bind_PointAttribute_num_components_0 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}})); -Object.getOwnPropertyDescriptor(a.ready,"_emscripten_bind_PointAttribute_normalized_0")||(Object.defineProperty(a.ready,"_emscripten_bind_PointAttribute_normalized_0",{configurable:!0,get:function(){f("You are getting _emscripten_bind_PointAttribute_normalized_0 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}),Object.defineProperty(a.ready,"_emscripten_bind_PointAttribute_normalized_0",{configurable:!0, -set:function(){f("You are setting _emscripten_bind_PointAttribute_normalized_0 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}));Object.getOwnPropertyDescriptor(a.ready,"_emscripten_bind_PointAttribute_byte_stride_0")||(Object.defineProperty(a.ready,"_emscripten_bind_PointAttribute_byte_stride_0",{configurable:!0,get:function(){f("You are getting _emscripten_bind_PointAttribute_byte_stride_0 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}), -Object.defineProperty(a.ready,"_emscripten_bind_PointAttribute_byte_stride_0",{configurable:!0,set:function(){f("You are setting _emscripten_bind_PointAttribute_byte_stride_0 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}));Object.getOwnPropertyDescriptor(a.ready,"_emscripten_bind_PointAttribute_byte_offset_0")||(Object.defineProperty(a.ready,"_emscripten_bind_PointAttribute_byte_offset_0",{configurable:!0, -get:function(){f("You are getting _emscripten_bind_PointAttribute_byte_offset_0 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}),Object.defineProperty(a.ready,"_emscripten_bind_PointAttribute_byte_offset_0",{configurable:!0,set:function(){f("You are setting _emscripten_bind_PointAttribute_byte_offset_0 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}})); -Object.getOwnPropertyDescriptor(a.ready,"_emscripten_bind_PointAttribute_unique_id_0")||(Object.defineProperty(a.ready,"_emscripten_bind_PointAttribute_unique_id_0",{configurable:!0,get:function(){f("You are getting _emscripten_bind_PointAttribute_unique_id_0 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}),Object.defineProperty(a.ready,"_emscripten_bind_PointAttribute_unique_id_0",{configurable:!0,set:function(){f("You are setting _emscripten_bind_PointAttribute_unique_id_0 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}})); -Object.getOwnPropertyDescriptor(a.ready,"_emscripten_bind_PointAttribute___destroy___0")||(Object.defineProperty(a.ready,"_emscripten_bind_PointAttribute___destroy___0",{configurable:!0,get:function(){f("You are getting _emscripten_bind_PointAttribute___destroy___0 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}),Object.defineProperty(a.ready,"_emscripten_bind_PointAttribute___destroy___0",{configurable:!0, -set:function(){f("You are setting _emscripten_bind_PointAttribute___destroy___0 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}));Object.getOwnPropertyDescriptor(a.ready,"_emscripten_bind_PointCloud_PointCloud_0")||(Object.defineProperty(a.ready,"_emscripten_bind_PointCloud_PointCloud_0",{configurable:!0,get:function(){f("You are getting _emscripten_bind_PointCloud_PointCloud_0 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}), -Object.defineProperty(a.ready,"_emscripten_bind_PointCloud_PointCloud_0",{configurable:!0,set:function(){f("You are setting _emscripten_bind_PointCloud_PointCloud_0 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}));Object.getOwnPropertyDescriptor(a.ready,"_emscripten_bind_PointCloud_num_attributes_0")||(Object.defineProperty(a.ready,"_emscripten_bind_PointCloud_num_attributes_0",{configurable:!0,get:function(){f("You are getting _emscripten_bind_PointCloud_num_attributes_0 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}), -Object.defineProperty(a.ready,"_emscripten_bind_PointCloud_num_attributes_0",{configurable:!0,set:function(){f("You are setting _emscripten_bind_PointCloud_num_attributes_0 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}));Object.getOwnPropertyDescriptor(a.ready,"_emscripten_bind_PointCloud_num_points_0")||(Object.defineProperty(a.ready,"_emscripten_bind_PointCloud_num_points_0",{configurable:!0,get:function(){f("You are getting _emscripten_bind_PointCloud_num_points_0 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}), -Object.defineProperty(a.ready,"_emscripten_bind_PointCloud_num_points_0",{configurable:!0,set:function(){f("You are setting _emscripten_bind_PointCloud_num_points_0 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}));Object.getOwnPropertyDescriptor(a.ready,"_emscripten_bind_PointCloud___destroy___0")||(Object.defineProperty(a.ready,"_emscripten_bind_PointCloud___destroy___0",{configurable:!0,get:function(){f("You are getting _emscripten_bind_PointCloud___destroy___0 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}), -Object.defineProperty(a.ready,"_emscripten_bind_PointCloud___destroy___0",{configurable:!0,set:function(){f("You are setting _emscripten_bind_PointCloud___destroy___0 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}));Object.getOwnPropertyDescriptor(a.ready,"_emscripten_bind_Mesh_Mesh_0")||(Object.defineProperty(a.ready,"_emscripten_bind_Mesh_Mesh_0",{configurable:!0,get:function(){f("You are getting _emscripten_bind_Mesh_Mesh_0 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}), -Object.defineProperty(a.ready,"_emscripten_bind_Mesh_Mesh_0",{configurable:!0,set:function(){f("You are setting _emscripten_bind_Mesh_Mesh_0 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}));Object.getOwnPropertyDescriptor(a.ready,"_emscripten_bind_Mesh_num_faces_0")||(Object.defineProperty(a.ready,"_emscripten_bind_Mesh_num_faces_0",{configurable:!0,get:function(){f("You are getting _emscripten_bind_Mesh_num_faces_0 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}), -Object.defineProperty(a.ready,"_emscripten_bind_Mesh_num_faces_0",{configurable:!0,set:function(){f("You are setting _emscripten_bind_Mesh_num_faces_0 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}));Object.getOwnPropertyDescriptor(a.ready,"_emscripten_bind_Mesh_num_attributes_0")||(Object.defineProperty(a.ready,"_emscripten_bind_Mesh_num_attributes_0",{configurable:!0,get:function(){f("You are getting _emscripten_bind_Mesh_num_attributes_0 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}), -Object.defineProperty(a.ready,"_emscripten_bind_Mesh_num_attributes_0",{configurable:!0,set:function(){f("You are setting _emscripten_bind_Mesh_num_attributes_0 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}));Object.getOwnPropertyDescriptor(a.ready,"_emscripten_bind_Mesh_num_points_0")||(Object.defineProperty(a.ready,"_emscripten_bind_Mesh_num_points_0",{configurable:!0,get:function(){f("You are getting _emscripten_bind_Mesh_num_points_0 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}), -Object.defineProperty(a.ready,"_emscripten_bind_Mesh_num_points_0",{configurable:!0,set:function(){f("You are setting _emscripten_bind_Mesh_num_points_0 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}));Object.getOwnPropertyDescriptor(a.ready,"_emscripten_bind_Mesh_set_num_points_1")||(Object.defineProperty(a.ready,"_emscripten_bind_Mesh_set_num_points_1",{configurable:!0,get:function(){f("You are getting _emscripten_bind_Mesh_set_num_points_1 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}), -Object.defineProperty(a.ready,"_emscripten_bind_Mesh_set_num_points_1",{configurable:!0,set:function(){f("You are setting _emscripten_bind_Mesh_set_num_points_1 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}));Object.getOwnPropertyDescriptor(a.ready,"_emscripten_bind_Mesh___destroy___0")||(Object.defineProperty(a.ready,"_emscripten_bind_Mesh___destroy___0",{configurable:!0,get:function(){f("You are getting _emscripten_bind_Mesh___destroy___0 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}), -Object.defineProperty(a.ready,"_emscripten_bind_Mesh___destroy___0",{configurable:!0,set:function(){f("You are setting _emscripten_bind_Mesh___destroy___0 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}));Object.getOwnPropertyDescriptor(a.ready,"_emscripten_bind_Metadata_Metadata_0")||(Object.defineProperty(a.ready,"_emscripten_bind_Metadata_Metadata_0",{configurable:!0,get:function(){f("You are getting _emscripten_bind_Metadata_Metadata_0 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}), -Object.defineProperty(a.ready,"_emscripten_bind_Metadata_Metadata_0",{configurable:!0,set:function(){f("You are setting _emscripten_bind_Metadata_Metadata_0 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}));Object.getOwnPropertyDescriptor(a.ready,"_emscripten_bind_Metadata___destroy___0")||(Object.defineProperty(a.ready,"_emscripten_bind_Metadata___destroy___0",{configurable:!0,get:function(){f("You are getting _emscripten_bind_Metadata___destroy___0 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}), -Object.defineProperty(a.ready,"_emscripten_bind_Metadata___destroy___0",{configurable:!0,set:function(){f("You are setting _emscripten_bind_Metadata___destroy___0 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}));Object.getOwnPropertyDescriptor(a.ready,"_emscripten_bind_DracoInt8Array_DracoInt8Array_0")||(Object.defineProperty(a.ready,"_emscripten_bind_DracoInt8Array_DracoInt8Array_0",{configurable:!0, -get:function(){f("You are getting _emscripten_bind_DracoInt8Array_DracoInt8Array_0 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}),Object.defineProperty(a.ready,"_emscripten_bind_DracoInt8Array_DracoInt8Array_0",{configurable:!0,set:function(){f("You are setting _emscripten_bind_DracoInt8Array_DracoInt8Array_0 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}})); -Object.getOwnPropertyDescriptor(a.ready,"_emscripten_bind_DracoInt8Array_GetValue_1")||(Object.defineProperty(a.ready,"_emscripten_bind_DracoInt8Array_GetValue_1",{configurable:!0,get:function(){f("You are getting _emscripten_bind_DracoInt8Array_GetValue_1 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}),Object.defineProperty(a.ready,"_emscripten_bind_DracoInt8Array_GetValue_1",{configurable:!0,set:function(){f("You are setting _emscripten_bind_DracoInt8Array_GetValue_1 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}})); -Object.getOwnPropertyDescriptor(a.ready,"_emscripten_bind_DracoInt8Array_size_0")||(Object.defineProperty(a.ready,"_emscripten_bind_DracoInt8Array_size_0",{configurable:!0,get:function(){f("You are getting _emscripten_bind_DracoInt8Array_size_0 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}),Object.defineProperty(a.ready,"_emscripten_bind_DracoInt8Array_size_0",{configurable:!0,set:function(){f("You are setting _emscripten_bind_DracoInt8Array_size_0 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}})); -Object.getOwnPropertyDescriptor(a.ready,"_emscripten_bind_DracoInt8Array___destroy___0")||(Object.defineProperty(a.ready,"_emscripten_bind_DracoInt8Array___destroy___0",{configurable:!0,get:function(){f("You are getting _emscripten_bind_DracoInt8Array___destroy___0 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}),Object.defineProperty(a.ready,"_emscripten_bind_DracoInt8Array___destroy___0",{configurable:!0, -set:function(){f("You are setting _emscripten_bind_DracoInt8Array___destroy___0 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}));Object.getOwnPropertyDescriptor(a.ready,"_emscripten_bind_MetadataBuilder_MetadataBuilder_0")||(Object.defineProperty(a.ready,"_emscripten_bind_MetadataBuilder_MetadataBuilder_0",{configurable:!0,get:function(){f("You are getting _emscripten_bind_MetadataBuilder_MetadataBuilder_0 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}), -Object.defineProperty(a.ready,"_emscripten_bind_MetadataBuilder_MetadataBuilder_0",{configurable:!0,set:function(){f("You are setting _emscripten_bind_MetadataBuilder_MetadataBuilder_0 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}));Object.getOwnPropertyDescriptor(a.ready,"_emscripten_bind_MetadataBuilder_AddStringEntry_3")||(Object.defineProperty(a.ready,"_emscripten_bind_MetadataBuilder_AddStringEntry_3", -{configurable:!0,get:function(){f("You are getting _emscripten_bind_MetadataBuilder_AddStringEntry_3 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}),Object.defineProperty(a.ready,"_emscripten_bind_MetadataBuilder_AddStringEntry_3",{configurable:!0,set:function(){f("You are setting _emscripten_bind_MetadataBuilder_AddStringEntry_3 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}})); -Object.getOwnPropertyDescriptor(a.ready,"_emscripten_bind_MetadataBuilder_AddIntEntry_3")||(Object.defineProperty(a.ready,"_emscripten_bind_MetadataBuilder_AddIntEntry_3",{configurable:!0,get:function(){f("You are getting _emscripten_bind_MetadataBuilder_AddIntEntry_3 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}),Object.defineProperty(a.ready,"_emscripten_bind_MetadataBuilder_AddIntEntry_3",{configurable:!0, -set:function(){f("You are setting _emscripten_bind_MetadataBuilder_AddIntEntry_3 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}));Object.getOwnPropertyDescriptor(a.ready,"_emscripten_bind_MetadataBuilder_AddIntEntryArray_4")||(Object.defineProperty(a.ready,"_emscripten_bind_MetadataBuilder_AddIntEntryArray_4",{configurable:!0,get:function(){f("You are getting _emscripten_bind_MetadataBuilder_AddIntEntryArray_4 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}), -Object.defineProperty(a.ready,"_emscripten_bind_MetadataBuilder_AddIntEntryArray_4",{configurable:!0,set:function(){f("You are setting _emscripten_bind_MetadataBuilder_AddIntEntryArray_4 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}));Object.getOwnPropertyDescriptor(a.ready,"_emscripten_bind_MetadataBuilder_AddDoubleEntry_3")||(Object.defineProperty(a.ready,"_emscripten_bind_MetadataBuilder_AddDoubleEntry_3", -{configurable:!0,get:function(){f("You are getting _emscripten_bind_MetadataBuilder_AddDoubleEntry_3 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}),Object.defineProperty(a.ready,"_emscripten_bind_MetadataBuilder_AddDoubleEntry_3",{configurable:!0,set:function(){f("You are setting _emscripten_bind_MetadataBuilder_AddDoubleEntry_3 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}})); -Object.getOwnPropertyDescriptor(a.ready,"_emscripten_bind_MetadataBuilder___destroy___0")||(Object.defineProperty(a.ready,"_emscripten_bind_MetadataBuilder___destroy___0",{configurable:!0,get:function(){f("You are getting _emscripten_bind_MetadataBuilder___destroy___0 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}),Object.defineProperty(a.ready,"_emscripten_bind_MetadataBuilder___destroy___0",{configurable:!0, -set:function(){f("You are setting _emscripten_bind_MetadataBuilder___destroy___0 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}));Object.getOwnPropertyDescriptor(a.ready,"_emscripten_bind_PointCloudBuilder_PointCloudBuilder_0")||(Object.defineProperty(a.ready,"_emscripten_bind_PointCloudBuilder_PointCloudBuilder_0",{configurable:!0,get:function(){f("You are getting _emscripten_bind_PointCloudBuilder_PointCloudBuilder_0 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}), -Object.defineProperty(a.ready,"_emscripten_bind_PointCloudBuilder_PointCloudBuilder_0",{configurable:!0,set:function(){f("You are setting _emscripten_bind_PointCloudBuilder_PointCloudBuilder_0 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}));Object.getOwnPropertyDescriptor(a.ready,"_emscripten_bind_PointCloudBuilder_AddFloatAttribute_5")||(Object.defineProperty(a.ready,"_emscripten_bind_PointCloudBuilder_AddFloatAttribute_5", -{configurable:!0,get:function(){f("You are getting _emscripten_bind_PointCloudBuilder_AddFloatAttribute_5 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}),Object.defineProperty(a.ready,"_emscripten_bind_PointCloudBuilder_AddFloatAttribute_5",{configurable:!0,set:function(){f("You are setting _emscripten_bind_PointCloudBuilder_AddFloatAttribute_5 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}})); -Object.getOwnPropertyDescriptor(a.ready,"_emscripten_bind_PointCloudBuilder_AddInt8Attribute_5")||(Object.defineProperty(a.ready,"_emscripten_bind_PointCloudBuilder_AddInt8Attribute_5",{configurable:!0,get:function(){f("You are getting _emscripten_bind_PointCloudBuilder_AddInt8Attribute_5 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}),Object.defineProperty(a.ready,"_emscripten_bind_PointCloudBuilder_AddInt8Attribute_5", -{configurable:!0,set:function(){f("You are setting _emscripten_bind_PointCloudBuilder_AddInt8Attribute_5 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}));Object.getOwnPropertyDescriptor(a.ready,"_emscripten_bind_PointCloudBuilder_AddUInt8Attribute_5")||(Object.defineProperty(a.ready,"_emscripten_bind_PointCloudBuilder_AddUInt8Attribute_5",{configurable:!0,get:function(){f("You are getting _emscripten_bind_PointCloudBuilder_AddUInt8Attribute_5 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}), -Object.defineProperty(a.ready,"_emscripten_bind_PointCloudBuilder_AddUInt8Attribute_5",{configurable:!0,set:function(){f("You are setting _emscripten_bind_PointCloudBuilder_AddUInt8Attribute_5 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}));Object.getOwnPropertyDescriptor(a.ready,"_emscripten_bind_PointCloudBuilder_AddInt16Attribute_5")||(Object.defineProperty(a.ready,"_emscripten_bind_PointCloudBuilder_AddInt16Attribute_5", -{configurable:!0,get:function(){f("You are getting _emscripten_bind_PointCloudBuilder_AddInt16Attribute_5 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}),Object.defineProperty(a.ready,"_emscripten_bind_PointCloudBuilder_AddInt16Attribute_5",{configurable:!0,set:function(){f("You are setting _emscripten_bind_PointCloudBuilder_AddInt16Attribute_5 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}})); -Object.getOwnPropertyDescriptor(a.ready,"_emscripten_bind_PointCloudBuilder_AddUInt16Attribute_5")||(Object.defineProperty(a.ready,"_emscripten_bind_PointCloudBuilder_AddUInt16Attribute_5",{configurable:!0,get:function(){f("You are getting _emscripten_bind_PointCloudBuilder_AddUInt16Attribute_5 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}),Object.defineProperty(a.ready,"_emscripten_bind_PointCloudBuilder_AddUInt16Attribute_5", -{configurable:!0,set:function(){f("You are setting _emscripten_bind_PointCloudBuilder_AddUInt16Attribute_5 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}));Object.getOwnPropertyDescriptor(a.ready,"_emscripten_bind_PointCloudBuilder_AddInt32Attribute_5")||(Object.defineProperty(a.ready,"_emscripten_bind_PointCloudBuilder_AddInt32Attribute_5",{configurable:!0,get:function(){f("You are getting _emscripten_bind_PointCloudBuilder_AddInt32Attribute_5 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}), -Object.defineProperty(a.ready,"_emscripten_bind_PointCloudBuilder_AddInt32Attribute_5",{configurable:!0,set:function(){f("You are setting _emscripten_bind_PointCloudBuilder_AddInt32Attribute_5 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}));Object.getOwnPropertyDescriptor(a.ready,"_emscripten_bind_PointCloudBuilder_AddUInt32Attribute_5")||(Object.defineProperty(a.ready,"_emscripten_bind_PointCloudBuilder_AddUInt32Attribute_5", -{configurable:!0,get:function(){f("You are getting _emscripten_bind_PointCloudBuilder_AddUInt32Attribute_5 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}),Object.defineProperty(a.ready,"_emscripten_bind_PointCloudBuilder_AddUInt32Attribute_5",{configurable:!0,set:function(){f("You are setting _emscripten_bind_PointCloudBuilder_AddUInt32Attribute_5 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}})); -Object.getOwnPropertyDescriptor(a.ready,"_emscripten_bind_PointCloudBuilder_AddMetadata_2")||(Object.defineProperty(a.ready,"_emscripten_bind_PointCloudBuilder_AddMetadata_2",{configurable:!0,get:function(){f("You are getting _emscripten_bind_PointCloudBuilder_AddMetadata_2 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}),Object.defineProperty(a.ready,"_emscripten_bind_PointCloudBuilder_AddMetadata_2", -{configurable:!0,set:function(){f("You are setting _emscripten_bind_PointCloudBuilder_AddMetadata_2 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}));Object.getOwnPropertyDescriptor(a.ready,"_emscripten_bind_PointCloudBuilder_SetMetadataForAttribute_3")||(Object.defineProperty(a.ready,"_emscripten_bind_PointCloudBuilder_SetMetadataForAttribute_3",{configurable:!0,get:function(){f("You are getting _emscripten_bind_PointCloudBuilder_SetMetadataForAttribute_3 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}), -Object.defineProperty(a.ready,"_emscripten_bind_PointCloudBuilder_SetMetadataForAttribute_3",{configurable:!0,set:function(){f("You are setting _emscripten_bind_PointCloudBuilder_SetMetadataForAttribute_3 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}));Object.getOwnPropertyDescriptor(a.ready,"_emscripten_bind_PointCloudBuilder___destroy___0")||(Object.defineProperty(a.ready,"_emscripten_bind_PointCloudBuilder___destroy___0", -{configurable:!0,get:function(){f("You are getting _emscripten_bind_PointCloudBuilder___destroy___0 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}),Object.defineProperty(a.ready,"_emscripten_bind_PointCloudBuilder___destroy___0",{configurable:!0,set:function(){f("You are setting _emscripten_bind_PointCloudBuilder___destroy___0 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}})); -Object.getOwnPropertyDescriptor(a.ready,"_emscripten_bind_MeshBuilder_MeshBuilder_0")||(Object.defineProperty(a.ready,"_emscripten_bind_MeshBuilder_MeshBuilder_0",{configurable:!0,get:function(){f("You are getting _emscripten_bind_MeshBuilder_MeshBuilder_0 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}),Object.defineProperty(a.ready,"_emscripten_bind_MeshBuilder_MeshBuilder_0",{configurable:!0,set:function(){f("You are setting _emscripten_bind_MeshBuilder_MeshBuilder_0 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}})); -Object.getOwnPropertyDescriptor(a.ready,"_emscripten_bind_MeshBuilder_AddFacesToMesh_3")||(Object.defineProperty(a.ready,"_emscripten_bind_MeshBuilder_AddFacesToMesh_3",{configurable:!0,get:function(){f("You are getting _emscripten_bind_MeshBuilder_AddFacesToMesh_3 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}),Object.defineProperty(a.ready,"_emscripten_bind_MeshBuilder_AddFacesToMesh_3",{configurable:!0, -set:function(){f("You are setting _emscripten_bind_MeshBuilder_AddFacesToMesh_3 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}));Object.getOwnPropertyDescriptor(a.ready,"_emscripten_bind_MeshBuilder_AddFloatAttributeToMesh_5")||(Object.defineProperty(a.ready,"_emscripten_bind_MeshBuilder_AddFloatAttributeToMesh_5",{configurable:!0,get:function(){f("You are getting _emscripten_bind_MeshBuilder_AddFloatAttributeToMesh_5 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}), -Object.defineProperty(a.ready,"_emscripten_bind_MeshBuilder_AddFloatAttributeToMesh_5",{configurable:!0,set:function(){f("You are setting _emscripten_bind_MeshBuilder_AddFloatAttributeToMesh_5 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}));Object.getOwnPropertyDescriptor(a.ready,"_emscripten_bind_MeshBuilder_AddInt32AttributeToMesh_5")||(Object.defineProperty(a.ready,"_emscripten_bind_MeshBuilder_AddInt32AttributeToMesh_5", -{configurable:!0,get:function(){f("You are getting _emscripten_bind_MeshBuilder_AddInt32AttributeToMesh_5 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}),Object.defineProperty(a.ready,"_emscripten_bind_MeshBuilder_AddInt32AttributeToMesh_5",{configurable:!0,set:function(){f("You are setting _emscripten_bind_MeshBuilder_AddInt32AttributeToMesh_5 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}})); -Object.getOwnPropertyDescriptor(a.ready,"_emscripten_bind_MeshBuilder_AddMetadataToMesh_2")||(Object.defineProperty(a.ready,"_emscripten_bind_MeshBuilder_AddMetadataToMesh_2",{configurable:!0,get:function(){f("You are getting _emscripten_bind_MeshBuilder_AddMetadataToMesh_2 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}),Object.defineProperty(a.ready,"_emscripten_bind_MeshBuilder_AddMetadataToMesh_2", -{configurable:!0,set:function(){f("You are setting _emscripten_bind_MeshBuilder_AddMetadataToMesh_2 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}));Object.getOwnPropertyDescriptor(a.ready,"_emscripten_bind_MeshBuilder_AddFloatAttribute_5")||(Object.defineProperty(a.ready,"_emscripten_bind_MeshBuilder_AddFloatAttribute_5",{configurable:!0,get:function(){f("You are getting _emscripten_bind_MeshBuilder_AddFloatAttribute_5 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}), -Object.defineProperty(a.ready,"_emscripten_bind_MeshBuilder_AddFloatAttribute_5",{configurable:!0,set:function(){f("You are setting _emscripten_bind_MeshBuilder_AddFloatAttribute_5 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}));Object.getOwnPropertyDescriptor(a.ready,"_emscripten_bind_MeshBuilder_AddInt8Attribute_5")||(Object.defineProperty(a.ready,"_emscripten_bind_MeshBuilder_AddInt8Attribute_5", -{configurable:!0,get:function(){f("You are getting _emscripten_bind_MeshBuilder_AddInt8Attribute_5 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}),Object.defineProperty(a.ready,"_emscripten_bind_MeshBuilder_AddInt8Attribute_5",{configurable:!0,set:function(){f("You are setting _emscripten_bind_MeshBuilder_AddInt8Attribute_5 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}})); -Object.getOwnPropertyDescriptor(a.ready,"_emscripten_bind_MeshBuilder_AddUInt8Attribute_5")||(Object.defineProperty(a.ready,"_emscripten_bind_MeshBuilder_AddUInt8Attribute_5",{configurable:!0,get:function(){f("You are getting _emscripten_bind_MeshBuilder_AddUInt8Attribute_5 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}),Object.defineProperty(a.ready,"_emscripten_bind_MeshBuilder_AddUInt8Attribute_5", -{configurable:!0,set:function(){f("You are setting _emscripten_bind_MeshBuilder_AddUInt8Attribute_5 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}));Object.getOwnPropertyDescriptor(a.ready,"_emscripten_bind_MeshBuilder_AddInt16Attribute_5")||(Object.defineProperty(a.ready,"_emscripten_bind_MeshBuilder_AddInt16Attribute_5",{configurable:!0,get:function(){f("You are getting _emscripten_bind_MeshBuilder_AddInt16Attribute_5 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}), -Object.defineProperty(a.ready,"_emscripten_bind_MeshBuilder_AddInt16Attribute_5",{configurable:!0,set:function(){f("You are setting _emscripten_bind_MeshBuilder_AddInt16Attribute_5 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}));Object.getOwnPropertyDescriptor(a.ready,"_emscripten_bind_MeshBuilder_AddUInt16Attribute_5")||(Object.defineProperty(a.ready,"_emscripten_bind_MeshBuilder_AddUInt16Attribute_5", -{configurable:!0,get:function(){f("You are getting _emscripten_bind_MeshBuilder_AddUInt16Attribute_5 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}),Object.defineProperty(a.ready,"_emscripten_bind_MeshBuilder_AddUInt16Attribute_5",{configurable:!0,set:function(){f("You are setting _emscripten_bind_MeshBuilder_AddUInt16Attribute_5 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}})); -Object.getOwnPropertyDescriptor(a.ready,"_emscripten_bind_MeshBuilder_AddInt32Attribute_5")||(Object.defineProperty(a.ready,"_emscripten_bind_MeshBuilder_AddInt32Attribute_5",{configurable:!0,get:function(){f("You are getting _emscripten_bind_MeshBuilder_AddInt32Attribute_5 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}),Object.defineProperty(a.ready,"_emscripten_bind_MeshBuilder_AddInt32Attribute_5", -{configurable:!0,set:function(){f("You are setting _emscripten_bind_MeshBuilder_AddInt32Attribute_5 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}));Object.getOwnPropertyDescriptor(a.ready,"_emscripten_bind_MeshBuilder_AddUInt32Attribute_5")||(Object.defineProperty(a.ready,"_emscripten_bind_MeshBuilder_AddUInt32Attribute_5",{configurable:!0,get:function(){f("You are getting _emscripten_bind_MeshBuilder_AddUInt32Attribute_5 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}), -Object.defineProperty(a.ready,"_emscripten_bind_MeshBuilder_AddUInt32Attribute_5",{configurable:!0,set:function(){f("You are setting _emscripten_bind_MeshBuilder_AddUInt32Attribute_5 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}));Object.getOwnPropertyDescriptor(a.ready,"_emscripten_bind_MeshBuilder_AddMetadata_2")||(Object.defineProperty(a.ready,"_emscripten_bind_MeshBuilder_AddMetadata_2",{configurable:!0, -get:function(){f("You are getting _emscripten_bind_MeshBuilder_AddMetadata_2 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}),Object.defineProperty(a.ready,"_emscripten_bind_MeshBuilder_AddMetadata_2",{configurable:!0,set:function(){f("You are setting _emscripten_bind_MeshBuilder_AddMetadata_2 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}})); -Object.getOwnPropertyDescriptor(a.ready,"_emscripten_bind_MeshBuilder_SetMetadataForAttribute_3")||(Object.defineProperty(a.ready,"_emscripten_bind_MeshBuilder_SetMetadataForAttribute_3",{configurable:!0,get:function(){f("You are getting _emscripten_bind_MeshBuilder_SetMetadataForAttribute_3 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}),Object.defineProperty(a.ready,"_emscripten_bind_MeshBuilder_SetMetadataForAttribute_3", -{configurable:!0,set:function(){f("You are setting _emscripten_bind_MeshBuilder_SetMetadataForAttribute_3 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}));Object.getOwnPropertyDescriptor(a.ready,"_emscripten_bind_MeshBuilder___destroy___0")||(Object.defineProperty(a.ready,"_emscripten_bind_MeshBuilder___destroy___0",{configurable:!0,get:function(){f("You are getting _emscripten_bind_MeshBuilder___destroy___0 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}), -Object.defineProperty(a.ready,"_emscripten_bind_MeshBuilder___destroy___0",{configurable:!0,set:function(){f("You are setting _emscripten_bind_MeshBuilder___destroy___0 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}));Object.getOwnPropertyDescriptor(a.ready,"_emscripten_bind_Encoder_Encoder_0")||(Object.defineProperty(a.ready,"_emscripten_bind_Encoder_Encoder_0",{configurable:!0,get:function(){f("You are getting _emscripten_bind_Encoder_Encoder_0 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}), -Object.defineProperty(a.ready,"_emscripten_bind_Encoder_Encoder_0",{configurable:!0,set:function(){f("You are setting _emscripten_bind_Encoder_Encoder_0 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}));Object.getOwnPropertyDescriptor(a.ready,"_emscripten_bind_Encoder_SetEncodingMethod_1")||(Object.defineProperty(a.ready,"_emscripten_bind_Encoder_SetEncodingMethod_1",{configurable:!0,get:function(){f("You are getting _emscripten_bind_Encoder_SetEncodingMethod_1 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}), -Object.defineProperty(a.ready,"_emscripten_bind_Encoder_SetEncodingMethod_1",{configurable:!0,set:function(){f("You are setting _emscripten_bind_Encoder_SetEncodingMethod_1 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}));Object.getOwnPropertyDescriptor(a.ready,"_emscripten_bind_Encoder_SetAttributeQuantization_2")||(Object.defineProperty(a.ready,"_emscripten_bind_Encoder_SetAttributeQuantization_2", -{configurable:!0,get:function(){f("You are getting _emscripten_bind_Encoder_SetAttributeQuantization_2 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}),Object.defineProperty(a.ready,"_emscripten_bind_Encoder_SetAttributeQuantization_2",{configurable:!0,set:function(){f("You are setting _emscripten_bind_Encoder_SetAttributeQuantization_2 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}})); -Object.getOwnPropertyDescriptor(a.ready,"_emscripten_bind_Encoder_SetAttributeExplicitQuantization_5")||(Object.defineProperty(a.ready,"_emscripten_bind_Encoder_SetAttributeExplicitQuantization_5",{configurable:!0,get:function(){f("You are getting _emscripten_bind_Encoder_SetAttributeExplicitQuantization_5 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}),Object.defineProperty(a.ready,"_emscripten_bind_Encoder_SetAttributeExplicitQuantization_5", -{configurable:!0,set:function(){f("You are setting _emscripten_bind_Encoder_SetAttributeExplicitQuantization_5 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}));Object.getOwnPropertyDescriptor(a.ready,"_emscripten_bind_Encoder_SetSpeedOptions_2")||(Object.defineProperty(a.ready,"_emscripten_bind_Encoder_SetSpeedOptions_2",{configurable:!0,get:function(){f("You are getting _emscripten_bind_Encoder_SetSpeedOptions_2 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}), -Object.defineProperty(a.ready,"_emscripten_bind_Encoder_SetSpeedOptions_2",{configurable:!0,set:function(){f("You are setting _emscripten_bind_Encoder_SetSpeedOptions_2 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}));Object.getOwnPropertyDescriptor(a.ready,"_emscripten_bind_Encoder_SetTrackEncodedProperties_1")||(Object.defineProperty(a.ready,"_emscripten_bind_Encoder_SetTrackEncodedProperties_1",{configurable:!0, -get:function(){f("You are getting _emscripten_bind_Encoder_SetTrackEncodedProperties_1 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}),Object.defineProperty(a.ready,"_emscripten_bind_Encoder_SetTrackEncodedProperties_1",{configurable:!0,set:function(){f("You are setting _emscripten_bind_Encoder_SetTrackEncodedProperties_1 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}})); -Object.getOwnPropertyDescriptor(a.ready,"_emscripten_bind_Encoder_EncodeMeshToDracoBuffer_2")||(Object.defineProperty(a.ready,"_emscripten_bind_Encoder_EncodeMeshToDracoBuffer_2",{configurable:!0,get:function(){f("You are getting _emscripten_bind_Encoder_EncodeMeshToDracoBuffer_2 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}),Object.defineProperty(a.ready,"_emscripten_bind_Encoder_EncodeMeshToDracoBuffer_2", -{configurable:!0,set:function(){f("You are setting _emscripten_bind_Encoder_EncodeMeshToDracoBuffer_2 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}));Object.getOwnPropertyDescriptor(a.ready,"_emscripten_bind_Encoder_EncodePointCloudToDracoBuffer_3")||(Object.defineProperty(a.ready,"_emscripten_bind_Encoder_EncodePointCloudToDracoBuffer_3",{configurable:!0,get:function(){f("You are getting _emscripten_bind_Encoder_EncodePointCloudToDracoBuffer_3 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}), -Object.defineProperty(a.ready,"_emscripten_bind_Encoder_EncodePointCloudToDracoBuffer_3",{configurable:!0,set:function(){f("You are setting _emscripten_bind_Encoder_EncodePointCloudToDracoBuffer_3 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}));Object.getOwnPropertyDescriptor(a.ready,"_emscripten_bind_Encoder_GetNumberOfEncodedPoints_0")||(Object.defineProperty(a.ready,"_emscripten_bind_Encoder_GetNumberOfEncodedPoints_0", -{configurable:!0,get:function(){f("You are getting _emscripten_bind_Encoder_GetNumberOfEncodedPoints_0 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}),Object.defineProperty(a.ready,"_emscripten_bind_Encoder_GetNumberOfEncodedPoints_0",{configurable:!0,set:function(){f("You are setting _emscripten_bind_Encoder_GetNumberOfEncodedPoints_0 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}})); -Object.getOwnPropertyDescriptor(a.ready,"_emscripten_bind_Encoder_GetNumberOfEncodedFaces_0")||(Object.defineProperty(a.ready,"_emscripten_bind_Encoder_GetNumberOfEncodedFaces_0",{configurable:!0,get:function(){f("You are getting _emscripten_bind_Encoder_GetNumberOfEncodedFaces_0 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}),Object.defineProperty(a.ready,"_emscripten_bind_Encoder_GetNumberOfEncodedFaces_0", -{configurable:!0,set:function(){f("You are setting _emscripten_bind_Encoder_GetNumberOfEncodedFaces_0 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}));Object.getOwnPropertyDescriptor(a.ready,"_emscripten_bind_Encoder___destroy___0")||(Object.defineProperty(a.ready,"_emscripten_bind_Encoder___destroy___0",{configurable:!0,get:function(){f("You are getting _emscripten_bind_Encoder___destroy___0 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}), -Object.defineProperty(a.ready,"_emscripten_bind_Encoder___destroy___0",{configurable:!0,set:function(){f("You are setting _emscripten_bind_Encoder___destroy___0 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}));Object.getOwnPropertyDescriptor(a.ready,"_emscripten_bind_ExpertEncoder_ExpertEncoder_1")||(Object.defineProperty(a.ready,"_emscripten_bind_ExpertEncoder_ExpertEncoder_1",{configurable:!0,get:function(){f("You are getting _emscripten_bind_ExpertEncoder_ExpertEncoder_1 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}), -Object.defineProperty(a.ready,"_emscripten_bind_ExpertEncoder_ExpertEncoder_1",{configurable:!0,set:function(){f("You are setting _emscripten_bind_ExpertEncoder_ExpertEncoder_1 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}));Object.getOwnPropertyDescriptor(a.ready,"_emscripten_bind_ExpertEncoder_SetEncodingMethod_1")||(Object.defineProperty(a.ready,"_emscripten_bind_ExpertEncoder_SetEncodingMethod_1", -{configurable:!0,get:function(){f("You are getting _emscripten_bind_ExpertEncoder_SetEncodingMethod_1 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}),Object.defineProperty(a.ready,"_emscripten_bind_ExpertEncoder_SetEncodingMethod_1",{configurable:!0,set:function(){f("You are setting _emscripten_bind_ExpertEncoder_SetEncodingMethod_1 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}})); -Object.getOwnPropertyDescriptor(a.ready,"_emscripten_bind_ExpertEncoder_SetAttributeQuantization_2")||(Object.defineProperty(a.ready,"_emscripten_bind_ExpertEncoder_SetAttributeQuantization_2",{configurable:!0,get:function(){f("You are getting _emscripten_bind_ExpertEncoder_SetAttributeQuantization_2 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}),Object.defineProperty(a.ready,"_emscripten_bind_ExpertEncoder_SetAttributeQuantization_2", -{configurable:!0,set:function(){f("You are setting _emscripten_bind_ExpertEncoder_SetAttributeQuantization_2 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}));Object.getOwnPropertyDescriptor(a.ready,"_emscripten_bind_ExpertEncoder_SetAttributeExplicitQuantization_5")||(Object.defineProperty(a.ready,"_emscripten_bind_ExpertEncoder_SetAttributeExplicitQuantization_5",{configurable:!0,get:function(){f("You are getting _emscripten_bind_ExpertEncoder_SetAttributeExplicitQuantization_5 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}), -Object.defineProperty(a.ready,"_emscripten_bind_ExpertEncoder_SetAttributeExplicitQuantization_5",{configurable:!0,set:function(){f("You are setting _emscripten_bind_ExpertEncoder_SetAttributeExplicitQuantization_5 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}));Object.getOwnPropertyDescriptor(a.ready,"_emscripten_bind_ExpertEncoder_SetSpeedOptions_2")||(Object.defineProperty(a.ready,"_emscripten_bind_ExpertEncoder_SetSpeedOptions_2", -{configurable:!0,get:function(){f("You are getting _emscripten_bind_ExpertEncoder_SetSpeedOptions_2 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}),Object.defineProperty(a.ready,"_emscripten_bind_ExpertEncoder_SetSpeedOptions_2",{configurable:!0,set:function(){f("You are setting _emscripten_bind_ExpertEncoder_SetSpeedOptions_2 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}})); -Object.getOwnPropertyDescriptor(a.ready,"_emscripten_bind_ExpertEncoder_SetTrackEncodedProperties_1")||(Object.defineProperty(a.ready,"_emscripten_bind_ExpertEncoder_SetTrackEncodedProperties_1",{configurable:!0,get:function(){f("You are getting _emscripten_bind_ExpertEncoder_SetTrackEncodedProperties_1 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}),Object.defineProperty(a.ready,"_emscripten_bind_ExpertEncoder_SetTrackEncodedProperties_1", -{configurable:!0,set:function(){f("You are setting _emscripten_bind_ExpertEncoder_SetTrackEncodedProperties_1 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}));Object.getOwnPropertyDescriptor(a.ready,"_emscripten_bind_ExpertEncoder_EncodeToDracoBuffer_2")||(Object.defineProperty(a.ready,"_emscripten_bind_ExpertEncoder_EncodeToDracoBuffer_2",{configurable:!0,get:function(){f("You are getting _emscripten_bind_ExpertEncoder_EncodeToDracoBuffer_2 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}), -Object.defineProperty(a.ready,"_emscripten_bind_ExpertEncoder_EncodeToDracoBuffer_2",{configurable:!0,set:function(){f("You are setting _emscripten_bind_ExpertEncoder_EncodeToDracoBuffer_2 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}));Object.getOwnPropertyDescriptor(a.ready,"_emscripten_bind_ExpertEncoder_GetNumberOfEncodedPoints_0")||(Object.defineProperty(a.ready,"_emscripten_bind_ExpertEncoder_GetNumberOfEncodedPoints_0", -{configurable:!0,get:function(){f("You are getting _emscripten_bind_ExpertEncoder_GetNumberOfEncodedPoints_0 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}),Object.defineProperty(a.ready,"_emscripten_bind_ExpertEncoder_GetNumberOfEncodedPoints_0",{configurable:!0,set:function(){f("You are setting _emscripten_bind_ExpertEncoder_GetNumberOfEncodedPoints_0 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}})); -Object.getOwnPropertyDescriptor(a.ready,"_emscripten_bind_ExpertEncoder_GetNumberOfEncodedFaces_0")||(Object.defineProperty(a.ready,"_emscripten_bind_ExpertEncoder_GetNumberOfEncodedFaces_0",{configurable:!0,get:function(){f("You are getting _emscripten_bind_ExpertEncoder_GetNumberOfEncodedFaces_0 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}),Object.defineProperty(a.ready,"_emscripten_bind_ExpertEncoder_GetNumberOfEncodedFaces_0", -{configurable:!0,set:function(){f("You are setting _emscripten_bind_ExpertEncoder_GetNumberOfEncodedFaces_0 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}));Object.getOwnPropertyDescriptor(a.ready,"_emscripten_bind_ExpertEncoder___destroy___0")||(Object.defineProperty(a.ready,"_emscripten_bind_ExpertEncoder___destroy___0",{configurable:!0,get:function(){f("You are getting _emscripten_bind_ExpertEncoder___destroy___0 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}), -Object.defineProperty(a.ready,"_emscripten_bind_ExpertEncoder___destroy___0",{configurable:!0,set:function(){f("You are setting _emscripten_bind_ExpertEncoder___destroy___0 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}));Object.getOwnPropertyDescriptor(a.ready,"_emscripten_enum_draco_GeometryAttribute_Type_INVALID")||(Object.defineProperty(a.ready,"_emscripten_enum_draco_GeometryAttribute_Type_INVALID", -{configurable:!0,get:function(){f("You are getting _emscripten_enum_draco_GeometryAttribute_Type_INVALID on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}),Object.defineProperty(a.ready,"_emscripten_enum_draco_GeometryAttribute_Type_INVALID",{configurable:!0,set:function(){f("You are setting _emscripten_enum_draco_GeometryAttribute_Type_INVALID on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}})); -Object.getOwnPropertyDescriptor(a.ready,"_emscripten_enum_draco_GeometryAttribute_Type_POSITION")||(Object.defineProperty(a.ready,"_emscripten_enum_draco_GeometryAttribute_Type_POSITION",{configurable:!0,get:function(){f("You are getting _emscripten_enum_draco_GeometryAttribute_Type_POSITION on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}),Object.defineProperty(a.ready,"_emscripten_enum_draco_GeometryAttribute_Type_POSITION", -{configurable:!0,set:function(){f("You are setting _emscripten_enum_draco_GeometryAttribute_Type_POSITION on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}));Object.getOwnPropertyDescriptor(a.ready,"_emscripten_enum_draco_GeometryAttribute_Type_NORMAL")||(Object.defineProperty(a.ready,"_emscripten_enum_draco_GeometryAttribute_Type_NORMAL",{configurable:!0,get:function(){f("You are getting _emscripten_enum_draco_GeometryAttribute_Type_NORMAL on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}), -Object.defineProperty(a.ready,"_emscripten_enum_draco_GeometryAttribute_Type_NORMAL",{configurable:!0,set:function(){f("You are setting _emscripten_enum_draco_GeometryAttribute_Type_NORMAL on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}));Object.getOwnPropertyDescriptor(a.ready,"_emscripten_enum_draco_GeometryAttribute_Type_COLOR")||(Object.defineProperty(a.ready,"_emscripten_enum_draco_GeometryAttribute_Type_COLOR", -{configurable:!0,get:function(){f("You are getting _emscripten_enum_draco_GeometryAttribute_Type_COLOR on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}),Object.defineProperty(a.ready,"_emscripten_enum_draco_GeometryAttribute_Type_COLOR",{configurable:!0,set:function(){f("You are setting _emscripten_enum_draco_GeometryAttribute_Type_COLOR on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}})); -Object.getOwnPropertyDescriptor(a.ready,"_emscripten_enum_draco_GeometryAttribute_Type_TEX_COORD")||(Object.defineProperty(a.ready,"_emscripten_enum_draco_GeometryAttribute_Type_TEX_COORD",{configurable:!0,get:function(){f("You are getting _emscripten_enum_draco_GeometryAttribute_Type_TEX_COORD on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}),Object.defineProperty(a.ready,"_emscripten_enum_draco_GeometryAttribute_Type_TEX_COORD", -{configurable:!0,set:function(){f("You are setting _emscripten_enum_draco_GeometryAttribute_Type_TEX_COORD on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}));Object.getOwnPropertyDescriptor(a.ready,"_emscripten_enum_draco_GeometryAttribute_Type_GENERIC")||(Object.defineProperty(a.ready,"_emscripten_enum_draco_GeometryAttribute_Type_GENERIC",{configurable:!0,get:function(){f("You are getting _emscripten_enum_draco_GeometryAttribute_Type_GENERIC on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}), -Object.defineProperty(a.ready,"_emscripten_enum_draco_GeometryAttribute_Type_GENERIC",{configurable:!0,set:function(){f("You are setting _emscripten_enum_draco_GeometryAttribute_Type_GENERIC on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}));Object.getOwnPropertyDescriptor(a.ready,"_emscripten_enum_draco_EncodedGeometryType_INVALID_GEOMETRY_TYPE")||(Object.defineProperty(a.ready,"_emscripten_enum_draco_EncodedGeometryType_INVALID_GEOMETRY_TYPE", -{configurable:!0,get:function(){f("You are getting _emscripten_enum_draco_EncodedGeometryType_INVALID_GEOMETRY_TYPE on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}),Object.defineProperty(a.ready,"_emscripten_enum_draco_EncodedGeometryType_INVALID_GEOMETRY_TYPE",{configurable:!0,set:function(){f("You are setting _emscripten_enum_draco_EncodedGeometryType_INVALID_GEOMETRY_TYPE on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}})); -Object.getOwnPropertyDescriptor(a.ready,"_emscripten_enum_draco_EncodedGeometryType_POINT_CLOUD")||(Object.defineProperty(a.ready,"_emscripten_enum_draco_EncodedGeometryType_POINT_CLOUD",{configurable:!0,get:function(){f("You are getting _emscripten_enum_draco_EncodedGeometryType_POINT_CLOUD on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}),Object.defineProperty(a.ready,"_emscripten_enum_draco_EncodedGeometryType_POINT_CLOUD", -{configurable:!0,set:function(){f("You are setting _emscripten_enum_draco_EncodedGeometryType_POINT_CLOUD on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}));Object.getOwnPropertyDescriptor(a.ready,"_emscripten_enum_draco_EncodedGeometryType_TRIANGULAR_MESH")||(Object.defineProperty(a.ready,"_emscripten_enum_draco_EncodedGeometryType_TRIANGULAR_MESH",{configurable:!0,get:function(){f("You are getting _emscripten_enum_draco_EncodedGeometryType_TRIANGULAR_MESH on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}), -Object.defineProperty(a.ready,"_emscripten_enum_draco_EncodedGeometryType_TRIANGULAR_MESH",{configurable:!0,set:function(){f("You are setting _emscripten_enum_draco_EncodedGeometryType_TRIANGULAR_MESH on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}));Object.getOwnPropertyDescriptor(a.ready,"_emscripten_enum_draco_MeshEncoderMethod_MESH_SEQUENTIAL_ENCODING")||(Object.defineProperty(a.ready,"_emscripten_enum_draco_MeshEncoderMethod_MESH_SEQUENTIAL_ENCODING", -{configurable:!0,get:function(){f("You are getting _emscripten_enum_draco_MeshEncoderMethod_MESH_SEQUENTIAL_ENCODING on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}),Object.defineProperty(a.ready,"_emscripten_enum_draco_MeshEncoderMethod_MESH_SEQUENTIAL_ENCODING",{configurable:!0,set:function(){f("You are setting _emscripten_enum_draco_MeshEncoderMethod_MESH_SEQUENTIAL_ENCODING on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}})); -Object.getOwnPropertyDescriptor(a.ready,"_emscripten_enum_draco_MeshEncoderMethod_MESH_EDGEBREAKER_ENCODING")||(Object.defineProperty(a.ready,"_emscripten_enum_draco_MeshEncoderMethod_MESH_EDGEBREAKER_ENCODING",{configurable:!0,get:function(){f("You are getting _emscripten_enum_draco_MeshEncoderMethod_MESH_EDGEBREAKER_ENCODING on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}),Object.defineProperty(a.ready, -"_emscripten_enum_draco_MeshEncoderMethod_MESH_EDGEBREAKER_ENCODING",{configurable:!0,set:function(){f("You are setting _emscripten_enum_draco_MeshEncoderMethod_MESH_EDGEBREAKER_ENCODING on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}));Object.getOwnPropertyDescriptor(a.ready,"_fflush")||(Object.defineProperty(a.ready,"_fflush",{configurable:!0,get:function(){f("You are getting _fflush on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}), -Object.defineProperty(a.ready,"_fflush",{configurable:!0,set:function(){f("You are setting _fflush on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}));Object.getOwnPropertyDescriptor(a.ready,"onRuntimeInitialized")||(Object.defineProperty(a.ready,"onRuntimeInitialized",{configurable:!0,get:function(){f("You are getting onRuntimeInitialized on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}), -Object.defineProperty(a.ready,"onRuntimeInitialized",{configurable:!0,set:function(){f("You are setting onRuntimeInitialized on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}));var Wa=!1,Xa=!1;a.onRuntimeInitialized=function(){Wa=!0;if(Xa&&"function"===typeof a.onModuleLoaded)a.onModuleLoaded(a)};a.onModuleParsed=function(){Xa=!0;if(Wa&&"function"===typeof a.onModuleLoaded)a.onModuleLoaded(a)};a.isVersionSupported= -function(g){if("string"!==typeof g)return!1;g=g.split(".");return 2>g.length||3=g[1]?!0:0!=g[0]||10>>=0;t(g>b);if(2147483648=c;c*=2){var e=b*(1+.2/c);e=Math.min(e,g+100663296);var h=Math;e=Math.max(g,e);h=h.min.call(h,2147483648, -e+(65536-e%65536)%65536);a:{e=h;try{na.grow(e-Ba.byteLength+65535>>>16);C(na.buffer);var k=1;break a}catch(w){I("emscripten_realloc_buffer: Attempted to grow heap from "+Ba.byteLength+" bytes to "+e+" bytes, but got error: "+w)}k=void 0}if(k)return!0}I("Failed to grow the heap from "+b+" bytes to "+h+" bytes, not enough memory!");return!1},fd_close:function(g){f("fd_close called without SYSCALLS_REQUIRE_FILESYSTEM")},fd_seek:function(g,b,c,e,h){return 70},fd_write:function(g,b,c,e){for(var h=0,k= -0;k>2],bb=J[b+4>>2];b+=8;for(var Pa=0;Pa=da);)++ha;if(16H?da+=String.fromCharCode(H):(H-=65536,da+=String.fromCharCode(55296|H>>10,56320|H&1023))}}else da+=String.fromCharCode(H)}P=da}za(P);Aa.length=0}else Aa.push(P)}h+=bb}J[e>>2]=h;return 0},setTempRet0:function(g){}};(function(){function g(k,w){a.asm=k.exports;na=a.asm.memory;t(na,"memory not found in wasm exports");C(na.buffer);ua=a.asm.__indirect_function_table;t(ua,"table not found in wasm exports");Ja.unshift(a.asm.__wasm_call_ctors);aa--;a.monitorRunDependencies&& -a.monitorRunDependencies(aa);t(ia["wasm-instantiate"]);delete ia["wasm-instantiate"];0==aa&&(null!==ba&&(clearInterval(ba),ba=null),oa&&(k=oa,oa=null,k()))}function b(k){t(a===h,"the Module object should not be replaced during async compilation - perhaps the order of HTML elements is wrong?");h=null;g(k.instance)}function c(k){return eb().then(function(w){return WebAssembly.instantiate(w,e)}).then(function(w){return w}).then(k,function(w){I("failed to asynchronously prepare wasm: "+w);K.startsWith("file://")&& -I("warning: Loading from a file URI ("+K+") is not supported in most browsers. See https://emscripten.org/docs/getting_started/FAQ.html#how-do-i-run-a-local-webserver-for-testing-why-does-my-program-stall-in-downloading-or-preparing");f(w)})}var e={env:db,wasi_snapshot_preview1:db};R("wasm-instantiate");var h=a;if(a.instantiateWasm)try{return a.instantiateWasm(e,g)}catch(k){return I("Module.instantiateWasm callback failed with error: "+k),!1}(function(){return ja||"function"!=typeof WebAssembly.instantiateStreaming|| -K.startsWith("data:application/octet-stream;base64,")||K.startsWith("file://")||La||"function"!=typeof fetch?c(b):fetch(K,{credentials:"same-origin"}).then(function(k){return WebAssembly.instantiateStreaming(k,e).then(b,function(w){I("wasm streaming compile failed: "+w);I("falling back to ArrayBuffer instantiation");return c(b)})})})().catch(Fa);return{}})();a.___wasm_call_ctors=l("__wasm_call_ctors");var wb=a._emscripten_bind_VoidPtr___destroy___0=l("emscripten_bind_VoidPtr___destroy___0"),hb=a._emscripten_bind_GeometryAttribute_GeometryAttribute_0= -l("emscripten_bind_GeometryAttribute_GeometryAttribute_0"),xb=a._emscripten_bind_GeometryAttribute___destroy___0=l("emscripten_bind_GeometryAttribute___destroy___0"),ib=a._emscripten_bind_PointAttribute_PointAttribute_0=l("emscripten_bind_PointAttribute_PointAttribute_0"),yb=a._emscripten_bind_PointAttribute_size_0=l("emscripten_bind_PointAttribute_size_0"),zb=a._emscripten_bind_PointAttribute_attribute_type_0=l("emscripten_bind_PointAttribute_attribute_type_0"),Ab=a._emscripten_bind_PointAttribute_data_type_0= -l("emscripten_bind_PointAttribute_data_type_0"),Bb=a._emscripten_bind_PointAttribute_num_components_0=l("emscripten_bind_PointAttribute_num_components_0"),Cb=a._emscripten_bind_PointAttribute_normalized_0=l("emscripten_bind_PointAttribute_normalized_0"),Db=a._emscripten_bind_PointAttribute_byte_stride_0=l("emscripten_bind_PointAttribute_byte_stride_0"),Eb=a._emscripten_bind_PointAttribute_byte_offset_0=l("emscripten_bind_PointAttribute_byte_offset_0"),Fb=a._emscripten_bind_PointAttribute_unique_id_0= -l("emscripten_bind_PointAttribute_unique_id_0"),Gb=a._emscripten_bind_PointAttribute___destroy___0=l("emscripten_bind_PointAttribute___destroy___0"),jb=a._emscripten_bind_PointCloud_PointCloud_0=l("emscripten_bind_PointCloud_PointCloud_0"),Hb=a._emscripten_bind_PointCloud_num_attributes_0=l("emscripten_bind_PointCloud_num_attributes_0"),Ib=a._emscripten_bind_PointCloud_num_points_0=l("emscripten_bind_PointCloud_num_points_0"),Jb=a._emscripten_bind_PointCloud___destroy___0=l("emscripten_bind_PointCloud___destroy___0"), -kb=a._emscripten_bind_Mesh_Mesh_0=l("emscripten_bind_Mesh_Mesh_0"),Kb=a._emscripten_bind_Mesh_num_faces_0=l("emscripten_bind_Mesh_num_faces_0"),Lb=a._emscripten_bind_Mesh_num_attributes_0=l("emscripten_bind_Mesh_num_attributes_0"),Mb=a._emscripten_bind_Mesh_num_points_0=l("emscripten_bind_Mesh_num_points_0"),Nb=a._emscripten_bind_Mesh_set_num_points_1=l("emscripten_bind_Mesh_set_num_points_1"),Ob=a._emscripten_bind_Mesh___destroy___0=l("emscripten_bind_Mesh___destroy___0"),lb=a._emscripten_bind_Metadata_Metadata_0= -l("emscripten_bind_Metadata_Metadata_0"),Pb=a._emscripten_bind_Metadata___destroy___0=l("emscripten_bind_Metadata___destroy___0"),mb=a._emscripten_bind_DracoInt8Array_DracoInt8Array_0=l("emscripten_bind_DracoInt8Array_DracoInt8Array_0"),Qb=a._emscripten_bind_DracoInt8Array_GetValue_1=l("emscripten_bind_DracoInt8Array_GetValue_1"),Rb=a._emscripten_bind_DracoInt8Array_size_0=l("emscripten_bind_DracoInt8Array_size_0"),Sb=a._emscripten_bind_DracoInt8Array___destroy___0=l("emscripten_bind_DracoInt8Array___destroy___0"), -nb=a._emscripten_bind_MetadataBuilder_MetadataBuilder_0=l("emscripten_bind_MetadataBuilder_MetadataBuilder_0"),Tb=a._emscripten_bind_MetadataBuilder_AddStringEntry_3=l("emscripten_bind_MetadataBuilder_AddStringEntry_3"),Ub=a._emscripten_bind_MetadataBuilder_AddIntEntry_3=l("emscripten_bind_MetadataBuilder_AddIntEntry_3"),Vb=a._emscripten_bind_MetadataBuilder_AddIntEntryArray_4=l("emscripten_bind_MetadataBuilder_AddIntEntryArray_4"),Wb=a._emscripten_bind_MetadataBuilder_AddDoubleEntry_3=l("emscripten_bind_MetadataBuilder_AddDoubleEntry_3"), -Xb=a._emscripten_bind_MetadataBuilder___destroy___0=l("emscripten_bind_MetadataBuilder___destroy___0"),ob=a._emscripten_bind_PointCloudBuilder_PointCloudBuilder_0=l("emscripten_bind_PointCloudBuilder_PointCloudBuilder_0"),Yb=a._emscripten_bind_PointCloudBuilder_AddFloatAttribute_5=l("emscripten_bind_PointCloudBuilder_AddFloatAttribute_5"),Zb=a._emscripten_bind_PointCloudBuilder_AddInt8Attribute_5=l("emscripten_bind_PointCloudBuilder_AddInt8Attribute_5"),$b=a._emscripten_bind_PointCloudBuilder_AddUInt8Attribute_5= -l("emscripten_bind_PointCloudBuilder_AddUInt8Attribute_5"),ac=a._emscripten_bind_PointCloudBuilder_AddInt16Attribute_5=l("emscripten_bind_PointCloudBuilder_AddInt16Attribute_5"),bc=a._emscripten_bind_PointCloudBuilder_AddUInt16Attribute_5=l("emscripten_bind_PointCloudBuilder_AddUInt16Attribute_5"),cc=a._emscripten_bind_PointCloudBuilder_AddInt32Attribute_5=l("emscripten_bind_PointCloudBuilder_AddInt32Attribute_5"),dc=a._emscripten_bind_PointCloudBuilder_AddUInt32Attribute_5=l("emscripten_bind_PointCloudBuilder_AddUInt32Attribute_5"), -ec=a._emscripten_bind_PointCloudBuilder_AddMetadata_2=l("emscripten_bind_PointCloudBuilder_AddMetadata_2"),fc=a._emscripten_bind_PointCloudBuilder_SetMetadataForAttribute_3=l("emscripten_bind_PointCloudBuilder_SetMetadataForAttribute_3"),gc=a._emscripten_bind_PointCloudBuilder___destroy___0=l("emscripten_bind_PointCloudBuilder___destroy___0"),pb=a._emscripten_bind_MeshBuilder_MeshBuilder_0=l("emscripten_bind_MeshBuilder_MeshBuilder_0"),hc=a._emscripten_bind_MeshBuilder_AddFacesToMesh_3=l("emscripten_bind_MeshBuilder_AddFacesToMesh_3"), -ic=a._emscripten_bind_MeshBuilder_AddFloatAttributeToMesh_5=l("emscripten_bind_MeshBuilder_AddFloatAttributeToMesh_5"),jc=a._emscripten_bind_MeshBuilder_AddInt32AttributeToMesh_5=l("emscripten_bind_MeshBuilder_AddInt32AttributeToMesh_5"),kc=a._emscripten_bind_MeshBuilder_AddMetadataToMesh_2=l("emscripten_bind_MeshBuilder_AddMetadataToMesh_2"),lc=a._emscripten_bind_MeshBuilder_AddFloatAttribute_5=l("emscripten_bind_MeshBuilder_AddFloatAttribute_5"),mc=a._emscripten_bind_MeshBuilder_AddInt8Attribute_5= -l("emscripten_bind_MeshBuilder_AddInt8Attribute_5"),nc=a._emscripten_bind_MeshBuilder_AddUInt8Attribute_5=l("emscripten_bind_MeshBuilder_AddUInt8Attribute_5"),oc=a._emscripten_bind_MeshBuilder_AddInt16Attribute_5=l("emscripten_bind_MeshBuilder_AddInt16Attribute_5"),pc=a._emscripten_bind_MeshBuilder_AddUInt16Attribute_5=l("emscripten_bind_MeshBuilder_AddUInt16Attribute_5"),qc=a._emscripten_bind_MeshBuilder_AddInt32Attribute_5=l("emscripten_bind_MeshBuilder_AddInt32Attribute_5"),rc=a._emscripten_bind_MeshBuilder_AddUInt32Attribute_5= -l("emscripten_bind_MeshBuilder_AddUInt32Attribute_5"),sc=a._emscripten_bind_MeshBuilder_AddMetadata_2=l("emscripten_bind_MeshBuilder_AddMetadata_2"),tc=a._emscripten_bind_MeshBuilder_SetMetadataForAttribute_3=l("emscripten_bind_MeshBuilder_SetMetadataForAttribute_3"),uc=a._emscripten_bind_MeshBuilder___destroy___0=l("emscripten_bind_MeshBuilder___destroy___0"),qb=a._emscripten_bind_Encoder_Encoder_0=l("emscripten_bind_Encoder_Encoder_0"),vc=a._emscripten_bind_Encoder_SetEncodingMethod_1=l("emscripten_bind_Encoder_SetEncodingMethod_1"), -wc=a._emscripten_bind_Encoder_SetAttributeQuantization_2=l("emscripten_bind_Encoder_SetAttributeQuantization_2"),xc=a._emscripten_bind_Encoder_SetAttributeExplicitQuantization_5=l("emscripten_bind_Encoder_SetAttributeExplicitQuantization_5"),yc=a._emscripten_bind_Encoder_SetSpeedOptions_2=l("emscripten_bind_Encoder_SetSpeedOptions_2"),zc=a._emscripten_bind_Encoder_SetTrackEncodedProperties_1=l("emscripten_bind_Encoder_SetTrackEncodedProperties_1"),Ac=a._emscripten_bind_Encoder_EncodeMeshToDracoBuffer_2= -l("emscripten_bind_Encoder_EncodeMeshToDracoBuffer_2"),Bc=a._emscripten_bind_Encoder_EncodePointCloudToDracoBuffer_3=l("emscripten_bind_Encoder_EncodePointCloudToDracoBuffer_3"),Cc=a._emscripten_bind_Encoder_GetNumberOfEncodedPoints_0=l("emscripten_bind_Encoder_GetNumberOfEncodedPoints_0"),Dc=a._emscripten_bind_Encoder_GetNumberOfEncodedFaces_0=l("emscripten_bind_Encoder_GetNumberOfEncodedFaces_0"),Ec=a._emscripten_bind_Encoder___destroy___0=l("emscripten_bind_Encoder___destroy___0"),rb=a._emscripten_bind_ExpertEncoder_ExpertEncoder_1= -l("emscripten_bind_ExpertEncoder_ExpertEncoder_1"),Fc=a._emscripten_bind_ExpertEncoder_SetEncodingMethod_1=l("emscripten_bind_ExpertEncoder_SetEncodingMethod_1"),Gc=a._emscripten_bind_ExpertEncoder_SetAttributeQuantization_2=l("emscripten_bind_ExpertEncoder_SetAttributeQuantization_2"),Hc=a._emscripten_bind_ExpertEncoder_SetAttributeExplicitQuantization_5=l("emscripten_bind_ExpertEncoder_SetAttributeExplicitQuantization_5"),Ic=a._emscripten_bind_ExpertEncoder_SetSpeedOptions_2=l("emscripten_bind_ExpertEncoder_SetSpeedOptions_2"), -Jc=a._emscripten_bind_ExpertEncoder_SetTrackEncodedProperties_1=l("emscripten_bind_ExpertEncoder_SetTrackEncodedProperties_1"),Kc=a._emscripten_bind_ExpertEncoder_EncodeToDracoBuffer_2=l("emscripten_bind_ExpertEncoder_EncodeToDracoBuffer_2"),Lc=a._emscripten_bind_ExpertEncoder_GetNumberOfEncodedPoints_0=l("emscripten_bind_ExpertEncoder_GetNumberOfEncodedPoints_0"),Mc=a._emscripten_bind_ExpertEncoder_GetNumberOfEncodedFaces_0=l("emscripten_bind_ExpertEncoder_GetNumberOfEncodedFaces_0"),Nc=a._emscripten_bind_ExpertEncoder___destroy___0= -l("emscripten_bind_ExpertEncoder___destroy___0"),Oc=a._emscripten_enum_draco_GeometryAttribute_Type_INVALID=l("emscripten_enum_draco_GeometryAttribute_Type_INVALID"),Pc=a._emscripten_enum_draco_GeometryAttribute_Type_POSITION=l("emscripten_enum_draco_GeometryAttribute_Type_POSITION"),Qc=a._emscripten_enum_draco_GeometryAttribute_Type_NORMAL=l("emscripten_enum_draco_GeometryAttribute_Type_NORMAL"),Rc=a._emscripten_enum_draco_GeometryAttribute_Type_COLOR=l("emscripten_enum_draco_GeometryAttribute_Type_COLOR"), -Sc=a._emscripten_enum_draco_GeometryAttribute_Type_TEX_COORD=l("emscripten_enum_draco_GeometryAttribute_Type_TEX_COORD"),Tc=a._emscripten_enum_draco_GeometryAttribute_Type_GENERIC=l("emscripten_enum_draco_GeometryAttribute_Type_GENERIC"),Uc=a._emscripten_enum_draco_EncodedGeometryType_INVALID_GEOMETRY_TYPE=l("emscripten_enum_draco_EncodedGeometryType_INVALID_GEOMETRY_TYPE"),Vc=a._emscripten_enum_draco_EncodedGeometryType_POINT_CLOUD=l("emscripten_enum_draco_EncodedGeometryType_POINT_CLOUD"),Wc=a._emscripten_enum_draco_EncodedGeometryType_TRIANGULAR_MESH= -l("emscripten_enum_draco_EncodedGeometryType_TRIANGULAR_MESH"),Xc=a._emscripten_enum_draco_MeshEncoderMethod_MESH_SEQUENTIAL_ENCODING=l("emscripten_enum_draco_MeshEncoderMethod_MESH_SEQUENTIAL_ENCODING"),Yc=a._emscripten_enum_draco_MeshEncoderMethod_MESH_EDGEBREAKER_ENCODING=l("emscripten_enum_draco_MeshEncoderMethod_MESH_EDGEBREAKER_ENCODING");a.___errno_location=l("__errno_location");a._fflush=l("fflush");var vb=a._malloc=l("malloc");a._free=l("free");var Ua=a._emscripten_stack_init=function(){return(Ua= -a._emscripten_stack_init=a.asm.emscripten_stack_init).apply(null,arguments)};a._emscripten_stack_get_free=function(){return(a._emscripten_stack_get_free=a.asm.emscripten_stack_get_free).apply(null,arguments)};a._emscripten_stack_get_base=function(){return(a._emscripten_stack_get_base=a.asm.emscripten_stack_get_base).apply(null,arguments)};var Ea=a._emscripten_stack_get_end=function(){return(Ea=a._emscripten_stack_get_end=a.asm.emscripten_stack_get_end).apply(null,arguments)};a.stackSave=l("stackSave"); -a.stackRestore=l("stackRestore");a.stackAlloc=l("stackAlloc");var gb=a.___cxa_is_pointer_type=l("__cxa_is_pointer_type");a.dynCall_jiji=l("dynCall_jiji");d("ccall",!1);d("cwrap",!1);d("allocate",!1);d("UTF8ArrayToString",!1);d("UTF8ToString",!1);d("stringToUTF8Array",!1);d("stringToUTF8",!1);d("lengthBytesUTF8",!1);d("addOnPreRun",!1);d("addOnInit",!1);d("addOnPreMain",!1);d("addOnExit",!1);d("addOnPostRun",!1);d("addRunDependency",!0);d("removeRunDependency",!0);d("FS_createFolder",!1);d("FS_createPath", -!0);d("FS_createDataFile",!0);d("FS_createPreloadedFile",!0);d("FS_createLazyFile",!0);d("FS_createLink",!1);d("FS_createDevice",!0);d("FS_unlink",!0);d("getLEB",!1);d("getFunctionTables",!1);d("alignFunctionTables",!1);d("registerFunctions",!1);d("addFunction",!1);d("removeFunction",!1);d("prettyPrint",!1);d("getCompilerSetting",!1);d("print",!1);d("printErr",!1);d("getTempRet0",!1);d("setTempRet0",!1);d("callMain",!1);d("abort",!1);d("keepRuntimeAlive",!1);d("wasmMemory",!1);d("warnOnce",!1);d("stackSave", -!1);d("stackRestore",!1);d("stackAlloc",!1);d("AsciiToString",!1);d("stringToAscii",!1);d("UTF16ToString",!1);d("stringToUTF16",!1);d("lengthBytesUTF16",!1);d("UTF32ToString",!1);d("stringToUTF32",!1);d("lengthBytesUTF32",!1);d("allocateUTF8",!1);d("allocateUTF8OnStack",!1);d("ExitStatus",!1);d("intArrayFromString",!1);d("intArrayToString",!1);d("writeStringToMemory",!1);d("writeArrayToMemory",!1);d("writeAsciiToMemory",!1);a.writeStackCookie=L;a.checkStackCookie=Z;d("ptrToString",!1);d("zeroMemory", -!1);d("stringToNewUTF8",!1);d("getHeapMax",!1);d("emscripten_realloc_buffer",!1);d("ENV",!1);d("ERRNO_CODES",!1);d("ERRNO_MESSAGES",!1);d("setErrNo",!1);d("inetPton4",!1);d("inetNtop4",!1);d("inetPton6",!1);d("inetNtop6",!1);d("readSockaddr",!1);d("writeSockaddr",!1);d("DNS",!1);d("getHostByName",!1);d("Protocols",!1);d("Sockets",!1);d("getRandomDevice",!1);d("traverseStack",!1);d("UNWIND_CACHE",!1);d("convertPCtoSourceLocation",!1);d("readAsmConstArgsArray",!1);d("readAsmConstArgs",!1);d("mainThreadEM_ASM", -!1);d("jstoi_q",!1);d("jstoi_s",!1);d("getExecutableName",!1);d("listenOnce",!1);d("autoResumeAudioContext",!1);d("dynCallLegacy",!1);d("getDynCaller",!1);d("dynCall",!1);d("handleException",!1);d("runtimeKeepalivePush",!1);d("runtimeKeepalivePop",!1);d("callUserCallback",!1);d("maybeExit",!1);d("safeSetTimeout",!1);d("asmjsMangle",!1);d("asyncLoad",!1);d("alignMemory",!1);d("mmapAlloc",!1);d("writeI53ToI64",!1);d("writeI53ToI64Clamped",!1);d("writeI53ToI64Signaling",!1);d("writeI53ToU64Clamped", -!1);d("writeI53ToU64Signaling",!1);d("readI53FromI64",!1);d("readI53FromU64",!1);d("convertI32PairToI53",!1);d("convertI32PairToI53Checked",!1);d("convertU32PairToI53",!1);d("reallyNegative",!1);d("unSign",!1);d("strLen",!1);d("reSign",!1);d("formatString",!1);d("setValue",!1);d("getValue",!1);d("PATH",!1);d("PATH_FS",!1);d("SYSCALLS",!1);d("getSocketFromFD",!1);d("getSocketAddress",!1);d("JSEvents",!1);d("registerKeyEventCallback",!1);d("specialHTMLTargets",!1);d("maybeCStringToJsString",!1);d("findEventTarget", -!1);d("findCanvasEventTarget",!1);d("getBoundingClientRect",!1);d("fillMouseEventData",!1);d("registerMouseEventCallback",!1);d("registerWheelEventCallback",!1);d("registerUiEventCallback",!1);d("registerFocusEventCallback",!1);d("fillDeviceOrientationEventData",!1);d("registerDeviceOrientationEventCallback",!1);d("fillDeviceMotionEventData",!1);d("registerDeviceMotionEventCallback",!1);d("screenOrientation",!1);d("fillOrientationChangeEventData",!1);d("registerOrientationChangeEventCallback",!1); -d("fillFullscreenChangeEventData",!1);d("registerFullscreenChangeEventCallback",!1);d("JSEvents_requestFullscreen",!1);d("JSEvents_resizeCanvasForFullscreen",!1);d("registerRestoreOldStyle",!1);d("hideEverythingExceptGivenElement",!1);d("restoreHiddenElements",!1);d("setLetterbox",!1);d("currentFullscreenStrategy",!1);d("restoreOldWindowedStyle",!1);d("softFullscreenResizeWebGLRenderTarget",!1);d("doRequestFullscreen",!1);d("fillPointerlockChangeEventData",!1);d("registerPointerlockChangeEventCallback", -!1);d("registerPointerlockErrorEventCallback",!1);d("requestPointerLock",!1);d("fillVisibilityChangeEventData",!1);d("registerVisibilityChangeEventCallback",!1);d("registerTouchEventCallback",!1);d("fillGamepadEventData",!1);d("registerGamepadEventCallback",!1);d("registerBeforeUnloadEventCallback",!1);d("fillBatteryEventData",!1);d("battery",!1);d("registerBatteryEventCallback",!1);d("setCanvasElementSize",!1);d("getCanvasElementSize",!1);d("demangle",!1);d("demangleAll",!1);d("jsStackTrace",!1); -d("stackTrace",!1);d("getEnvStrings",!1);d("checkWasiClock",!1);d("flush_NO_FILESYSTEM",!1);d("dlopenMissingError",!1);d("setImmediateWrapped",!1);d("clearImmediateWrapped",!1);d("polyfillSetImmediate",!1);d("uncaughtExceptionCount",!1);d("exceptionLast",!1);d("exceptionCaught",!1);d("ExceptionInfo",!1);d("exception_addRef",!1);d("exception_decRef",!1);d("Browser",!1);d("setMainLoop",!1);d("wget",!1);d("tempFixedLengthArray",!1);d("miniTempWebGLFloatBuffers",!1);d("heapObjectForWebGLType",!1);d("heapAccessShiftForWebGLHeap", -!1);d("GL",!1);d("emscriptenWebGLGet",!1);d("computeUnpackAlignedImageSize",!1);d("emscriptenWebGLGetTexPixelData",!1);d("emscriptenWebGLGetUniform",!1);d("webglGetUniformLocation",!1);d("webglPrepareUniformLocationsBeforeFirstUse",!1);d("webglGetLeftBracePos",!1);d("emscriptenWebGLGetVertexAttrib",!1);d("writeGLArray",!1);d("AL",!1);d("SDL_unicode",!1);d("SDL_ttfContext",!1);d("SDL_audio",!1);d("SDL",!1);d("SDL_gfx",!1);d("GLUT",!1);d("EGL",!1);d("GLFW_Window",!1);d("GLFW",!1);d("GLEW",!1);d("IDBStore", -!1);d("runAndAbortIfError",!1);p("ALLOC_NORMAL",!1);p("ALLOC_STACK",!1);var va;oa=function b(){va||Ia();va||(oa=b)};a.run=Ia;if(a.preInit)for("function"==typeof a.preInit&&(a.preInit=[a.preInit]);0=u.size?(t(0>>=0;switch(c.BYTES_PER_ELEMENT){case 2:e>>>=1;break;case 4:e>>>=2;break;case 8:e>>>=3}for(var h=0;h>2]=34821223;H[e+4>>2]=2310721022;H[0]=1668509029}function x(){if(!qa){var e=Da(),a=H[e>>2],b=H[e+4>>2];34821223==a&&2310721022==b||A("Stack overflow! Stack cookie has been overwritten at 0x"+e.toString(16)+", expected hex dwords 0x89BACDFE and 0x2135467, but received 0x"+b.toString(16)+" 0x"+a.toString(16));1668509029!==H[0]&&A("Runtime error: The application has corrupted its heap memory area (address zero)!")}}function E(e){ba++;c.monitorRunDependencies&& +c.monitorRunDependencies(ba);e?(t(!ia[e]),ia[e]=1,null===ca&&"undefined"!=typeof setInterval&&(ca=setInterval(function(){if(qa)clearInterval(ca),ca=null;else{var a=!1,b;for(b in ia)a||(a=!0,J("still waiting on run dependencies:")),J("dependency: "+b);a&&J("(end of list)")}},1E4))):J("warning: run dependency added without ID")}function A(e){if(c.onAbort)c.onAbort(e);e="Aborted("+e+")";J(e);qa=!0;e=new WebAssembly.RuntimeError(e);ra(e);throw e;}function h(e,a){return function(){var b=a;a||(b=c.asm); +t(sa,"native function `"+e+"` called before runtime initialization");b[e]||t(b[e],"exported native function `"+e+"` not found");return b[e].apply(null,arguments)}}function P(e){try{if(e==K&&ja)return new Uint8Array(ja);if(ka)return ka(e);throw"both async and sync fetching of the wasm failed";}catch(a){A(a)}}function V(){if(!ja&&(Ea||fa)){if("function"==typeof fetch&&!K.startsWith("file://"))return fetch(K,{credentials:"same-origin"}).then(function(e){if(!e.ok)throw"failed to load wasm binary file at '"+ +K+"'";return e.arrayBuffer()}).catch(function(){return P(K)});if(ta)return new Promise(function(e,a){ta(K,function(b){e(new Uint8Array(b))},a)})}return Promise.resolve().then(function(){return P(K)})}function aa(e){for(;0>2]=a};this.get_type=function(){return H[this.ptr+4>>2]};this.set_destructor=function(a){H[this.ptr+ +8>>2]=a};this.get_destructor=function(){return H[this.ptr+8>>2]};this.set_refcount=function(a){Z[this.ptr>>2]=a};this.set_caught=function(a){W[this.ptr+12>>0]=a?1:0};this.get_caught=function(){return 0!=W[this.ptr+12>>0]};this.set_rethrown=function(a){W[this.ptr+13>>0]=a?1:0};this.get_rethrown=function(){return 0!=W[this.ptr+13>>0]};this.init=function(a,b){this.set_adjusted_ptr(0);this.set_type(a);this.set_destructor(b);this.set_refcount(0);this.set_caught(!1);this.set_rethrown(!1)};this.add_ref= +function(){Z[this.ptr>>2]+=1};this.release_ref=function(){var a=Z[this.ptr>>2];Z[this.ptr>>2]=a-1;t(0>2]=a};this.get_adjusted_ptr=function(){return H[this.ptr+16>>2]};this.get_exception_ptr=function(){if(bb(this.get_type()))return H[this.excPtr>>2];var a=this.get_adjusted_ptr();return 0!==a?a:this.excPtr}}function La(e){function a(){if(!va&&(va=!0,c.calledRun=!0,!qa)){t(!sa);sa=!0;x();aa(Fa);Ma(c);if(c.onRuntimeInitialized)c.onRuntimeInitialized(); +t(!c._main,'compiled without a main, but one is present. if you added it from JS, use Module["onRuntimeInitialized"]');x();if(c.postRun)for("function"==typeof c.postRun&&(c.postRun=[c.postRun]);c.postRun.length;)Na.unshift(c.postRun.shift());aa(Na)}}if(!(0=d?a++:2047>=d?a+=2:55296<=d&&57343>=d?(a+=4,++b):a+=3}a=Array(a+1);b=0;d=a.length;if(0=g){var u=e.charCodeAt(++f);g=65536+((g&1023)<<10)|u&1023}if(127>= +g){if(b>=d)break;a[b++]=g}else{if(2047>=g){if(b+1>=d)break;a[b++]=192|g>>6}else{if(65535>=g){if(b+2>=d)break;a[b++]=224|g>>12}else{if(b+3>=d)break;1114111>18;a[b++]=128|g>>12&63}a[b++]=128|g>>6&63}a[b++]=128|g&63}}a[b]=0}e=r.alloc(a,W);r.copy(a,W,e);return e}return e}function wa(e){if("object"=== +typeof e){var a=r.alloc(e,W);r.copy(e,W,a);return a}return e}function xa(e){if("object"===typeof e){var a=r.alloc(e,Ba);r.copy(e,Ba,a);return a}return e}function da(e){if("object"===typeof e){var a=r.alloc(e,Z);r.copy(e,Z,a);return a}return e}function ma(e){if("object"===typeof e){var a=r.alloc(e,Ca);r.copy(e,Ca,a);return a}return e}function X(){throw"cannot construct a VoidPtr, no constructor in IDL";}function T(){this.ptr=cb();L(T)[this.ptr]=this}function B(){this.ptr=db();L(B)[this.ptr]=this}function M(){this.ptr= +eb();L(M)[this.ptr]=this}function F(){this.ptr=fb();L(F)[this.ptr]=this}function U(){this.ptr=gb();L(U)[this.ptr]=this}function N(){this.ptr=hb();L(N)[this.ptr]=this}function G(){this.ptr=ib();L(G)[this.ptr]=this}function y(){this.ptr=jb();L(y)[this.ptr]=this}function w(){this.ptr=kb();L(w)[this.ptr]=this}function z(){this.ptr=lb();L(z)[this.ptr]=this}function C(e){e&&"object"===typeof e&&(e=e.ptr);this.ptr=mb(e);L(C)[this.ptr]=this}k=k||{};var c="undefined"!=typeof k?k:{},Ma,ra;c.ready=new Promise(function(e, +a){Ma=e;ra=a});"_free _malloc _emscripten_bind_VoidPtr___destroy___0 _emscripten_bind_GeometryAttribute_GeometryAttribute_0 _emscripten_bind_GeometryAttribute___destroy___0 _emscripten_bind_PointAttribute_PointAttribute_0 _emscripten_bind_PointAttribute_size_0 _emscripten_bind_PointAttribute_attribute_type_0 _emscripten_bind_PointAttribute_data_type_0 _emscripten_bind_PointAttribute_num_components_0 _emscripten_bind_PointAttribute_normalized_0 _emscripten_bind_PointAttribute_byte_stride_0 _emscripten_bind_PointAttribute_byte_offset_0 _emscripten_bind_PointAttribute_unique_id_0 _emscripten_bind_PointAttribute___destroy___0 _emscripten_bind_PointCloud_PointCloud_0 _emscripten_bind_PointCloud_num_attributes_0 _emscripten_bind_PointCloud_num_points_0 _emscripten_bind_PointCloud___destroy___0 _emscripten_bind_Mesh_Mesh_0 _emscripten_bind_Mesh_num_faces_0 _emscripten_bind_Mesh_num_attributes_0 _emscripten_bind_Mesh_num_points_0 _emscripten_bind_Mesh_set_num_points_1 _emscripten_bind_Mesh___destroy___0 _emscripten_bind_Metadata_Metadata_0 _emscripten_bind_Metadata___destroy___0 _emscripten_bind_DracoInt8Array_DracoInt8Array_0 _emscripten_bind_DracoInt8Array_GetValue_1 _emscripten_bind_DracoInt8Array_size_0 _emscripten_bind_DracoInt8Array___destroy___0 _emscripten_bind_MetadataBuilder_MetadataBuilder_0 _emscripten_bind_MetadataBuilder_AddStringEntry_3 _emscripten_bind_MetadataBuilder_AddIntEntry_3 _emscripten_bind_MetadataBuilder_AddIntEntryArray_4 _emscripten_bind_MetadataBuilder_AddDoubleEntry_3 _emscripten_bind_MetadataBuilder___destroy___0 _emscripten_bind_PointCloudBuilder_PointCloudBuilder_0 _emscripten_bind_PointCloudBuilder_AddFloatAttribute_5 _emscripten_bind_PointCloudBuilder_AddInt8Attribute_5 _emscripten_bind_PointCloudBuilder_AddUInt8Attribute_5 _emscripten_bind_PointCloudBuilder_AddInt16Attribute_5 _emscripten_bind_PointCloudBuilder_AddUInt16Attribute_5 _emscripten_bind_PointCloudBuilder_AddInt32Attribute_5 _emscripten_bind_PointCloudBuilder_AddUInt32Attribute_5 _emscripten_bind_PointCloudBuilder_AddMetadata_2 _emscripten_bind_PointCloudBuilder_SetMetadataForAttribute_3 _emscripten_bind_PointCloudBuilder___destroy___0 _emscripten_bind_MeshBuilder_MeshBuilder_0 _emscripten_bind_MeshBuilder_AddFacesToMesh_3 _emscripten_bind_MeshBuilder_AddFloatAttributeToMesh_5 _emscripten_bind_MeshBuilder_AddInt32AttributeToMesh_5 _emscripten_bind_MeshBuilder_AddMetadataToMesh_2 _emscripten_bind_MeshBuilder_AddFloatAttribute_5 _emscripten_bind_MeshBuilder_AddInt8Attribute_5 _emscripten_bind_MeshBuilder_AddUInt8Attribute_5 _emscripten_bind_MeshBuilder_AddInt16Attribute_5 _emscripten_bind_MeshBuilder_AddUInt16Attribute_5 _emscripten_bind_MeshBuilder_AddInt32Attribute_5 _emscripten_bind_MeshBuilder_AddUInt32Attribute_5 _emscripten_bind_MeshBuilder_AddMetadata_2 _emscripten_bind_MeshBuilder_SetMetadataForAttribute_3 _emscripten_bind_MeshBuilder___destroy___0 _emscripten_bind_Encoder_Encoder_0 _emscripten_bind_Encoder_SetEncodingMethod_1 _emscripten_bind_Encoder_SetAttributeQuantization_2 _emscripten_bind_Encoder_SetAttributeExplicitQuantization_5 _emscripten_bind_Encoder_SetSpeedOptions_2 _emscripten_bind_Encoder_SetTrackEncodedProperties_1 _emscripten_bind_Encoder_EncodeMeshToDracoBuffer_2 _emscripten_bind_Encoder_EncodePointCloudToDracoBuffer_3 _emscripten_bind_Encoder_GetNumberOfEncodedPoints_0 _emscripten_bind_Encoder_GetNumberOfEncodedFaces_0 _emscripten_bind_Encoder___destroy___0 _emscripten_bind_ExpertEncoder_ExpertEncoder_1 _emscripten_bind_ExpertEncoder_SetEncodingMethod_1 _emscripten_bind_ExpertEncoder_SetAttributeQuantization_2 _emscripten_bind_ExpertEncoder_SetAttributeExplicitQuantization_5 _emscripten_bind_ExpertEncoder_SetSpeedOptions_2 _emscripten_bind_ExpertEncoder_SetTrackEncodedProperties_1 _emscripten_bind_ExpertEncoder_EncodeToDracoBuffer_2 _emscripten_bind_ExpertEncoder_GetNumberOfEncodedPoints_0 _emscripten_bind_ExpertEncoder_GetNumberOfEncodedFaces_0 _emscripten_bind_ExpertEncoder___destroy___0 _emscripten_enum_draco_GeometryAttribute_Type_INVALID _emscripten_enum_draco_GeometryAttribute_Type_POSITION _emscripten_enum_draco_GeometryAttribute_Type_NORMAL _emscripten_enum_draco_GeometryAttribute_Type_COLOR _emscripten_enum_draco_GeometryAttribute_Type_TEX_COORD _emscripten_enum_draco_GeometryAttribute_Type_GENERIC _emscripten_enum_draco_EncodedGeometryType_INVALID_GEOMETRY_TYPE _emscripten_enum_draco_EncodedGeometryType_POINT_CLOUD _emscripten_enum_draco_EncodedGeometryType_TRIANGULAR_MESH _emscripten_enum_draco_MeshEncoderMethod_MESH_SEQUENTIAL_ENCODING _emscripten_enum_draco_MeshEncoderMethod_MESH_EDGEBREAKER_ENCODING _fflush onRuntimeInitialized".split(" ").forEach(function(e){Object.getOwnPropertyDescriptor(c.ready, +e)||Object.defineProperty(c.ready,e,{get:function(){return A("You are getting "+e+" on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")},set:function(){return A("You are setting "+e+" on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}})});var Qa=!1,Ra=!1;c.onRuntimeInitialized=function(){Qa=!0;if(Ra&&"function"===typeof c.onModuleLoaded)c.onModuleLoaded(c)}; +c.onModuleParsed=function(){Ra=!0;if(Qa&&"function"===typeof c.onModuleLoaded)c.onModuleLoaded(c)};c.isVersionSupported=function(e){if("string"!==typeof e)return!1;e=e.split(".");return 2>e.length||3=e[1]?!0:0!=e[0]||10>>=0;t(e>a);if(2147483648=b;b*=2){var d=a*(1+.2/b);d=Math.min(d,e+100663296);var f=Math;d=Math.max(e,d);f=f.min.call(f,2147483648,d+(65536-d%65536)%65536);a:{d=f;try{na.grow(d-Aa.byteLength+65535>>>16);m(na.buffer);var g=1;break a}catch(u){J("emscripten_realloc_buffer: Attempted to grow heap from "+Aa.byteLength+" bytes to "+ +d+" bytes, but got error: "+u)}g=void 0}if(g)return!0}J("Failed to grow the heap from "+a+" bytes to "+f+" bytes, not enough memory!");return!1},fd_close:function(e){A("fd_close called without SYSCALLS_REQUIRE_FILESYSTEM")},fd_seek:function(e,a,b,d,f){return 70},fd_write:function(e,a,b,d){for(var f=0,g=0;g>2],Ya=H[a+4>>2];a+=8;for(var Ja=0;Ja=ea);)++ha;if(16< +ha-Y&&O.buffer&&Wa)O=Wa.decode(O.subarray(Y,ha));else{for(ea="";YI?ea+=String.fromCharCode(I):(I-=65536,ea+=String.fromCharCode(55296|I>>10,56320|I&1023))}}else ea+= +String.fromCharCode(I)}O=ea}ya(O);za.length=0}else za.push(O)}f+=Ya}H[d>>2]=f;return 0}};(function(){function e(g,u){c.asm=g.exports;na=c.asm.memory;t(na,"memory not found in wasm exports");m(na.buffer);Xa=c.asm.__indirect_function_table;t(Xa,"table not found in wasm exports");Fa.unshift(c.asm.__wasm_call_ctors);ba--;c.monitorRunDependencies&&c.monitorRunDependencies(ba);t(ia["wasm-instantiate"]);delete ia["wasm-instantiate"];0==ba&&(null!==ca&&(clearInterval(ca),ca=null),oa&&(g=oa,oa=null,g()))} +function a(g){t(c===f,"the Module object should not be replaced during async compilation - perhaps the order of HTML elements is wrong?");f=null;e(g.instance)}function b(g){return V().then(function(u){return WebAssembly.instantiate(u,d)}).then(function(u){return u}).then(g,function(u){J("failed to asynchronously prepare wasm: "+u);K.startsWith("file://")&&J("warning: Loading from a file URI ("+K+") is not supported in most browsers. See https://emscripten.org/docs/getting_started/FAQ.html#how-do-i-run-a-local-webserver-for-testing-why-does-my-program-stall-in-downloading-or-preparing"); +A(u)})}var d={env:$a,wasi_snapshot_preview1:$a};E("wasm-instantiate");var f=c;if(c.instantiateWasm)try{return c.instantiateWasm(d,e)}catch(g){J("Module.instantiateWasm callback failed with error: "+g),ra(g)}(function(){return ja||"function"!=typeof WebAssembly.instantiateStreaming||K.startsWith("data:application/octet-stream;base64,")||K.startsWith("file://")||ua||"function"!=typeof fetch?b(a):fetch(K,{credentials:"same-origin"}).then(function(g){return WebAssembly.instantiateStreaming(g,d).then(a, +function(u){J("wasm streaming compile failed: "+u);J("falling back to ArrayBuffer instantiation");return b(a)})})})().catch(ra);return{}})();c.___wasm_call_ctors=h("__wasm_call_ctors");var rb=c._emscripten_bind_VoidPtr___destroy___0=h("emscripten_bind_VoidPtr___destroy___0"),cb=c._emscripten_bind_GeometryAttribute_GeometryAttribute_0=h("emscripten_bind_GeometryAttribute_GeometryAttribute_0"),sb=c._emscripten_bind_GeometryAttribute___destroy___0=h("emscripten_bind_GeometryAttribute___destroy___0"), +db=c._emscripten_bind_PointAttribute_PointAttribute_0=h("emscripten_bind_PointAttribute_PointAttribute_0"),tb=c._emscripten_bind_PointAttribute_size_0=h("emscripten_bind_PointAttribute_size_0"),ub=c._emscripten_bind_PointAttribute_attribute_type_0=h("emscripten_bind_PointAttribute_attribute_type_0"),vb=c._emscripten_bind_PointAttribute_data_type_0=h("emscripten_bind_PointAttribute_data_type_0"),wb=c._emscripten_bind_PointAttribute_num_components_0=h("emscripten_bind_PointAttribute_num_components_0"), +xb=c._emscripten_bind_PointAttribute_normalized_0=h("emscripten_bind_PointAttribute_normalized_0"),yb=c._emscripten_bind_PointAttribute_byte_stride_0=h("emscripten_bind_PointAttribute_byte_stride_0"),zb=c._emscripten_bind_PointAttribute_byte_offset_0=h("emscripten_bind_PointAttribute_byte_offset_0"),Ab=c._emscripten_bind_PointAttribute_unique_id_0=h("emscripten_bind_PointAttribute_unique_id_0"),Bb=c._emscripten_bind_PointAttribute___destroy___0=h("emscripten_bind_PointAttribute___destroy___0"),eb= +c._emscripten_bind_PointCloud_PointCloud_0=h("emscripten_bind_PointCloud_PointCloud_0"),Cb=c._emscripten_bind_PointCloud_num_attributes_0=h("emscripten_bind_PointCloud_num_attributes_0"),Db=c._emscripten_bind_PointCloud_num_points_0=h("emscripten_bind_PointCloud_num_points_0"),Eb=c._emscripten_bind_PointCloud___destroy___0=h("emscripten_bind_PointCloud___destroy___0"),fb=c._emscripten_bind_Mesh_Mesh_0=h("emscripten_bind_Mesh_Mesh_0"),Fb=c._emscripten_bind_Mesh_num_faces_0=h("emscripten_bind_Mesh_num_faces_0"), +Gb=c._emscripten_bind_Mesh_num_attributes_0=h("emscripten_bind_Mesh_num_attributes_0"),Hb=c._emscripten_bind_Mesh_num_points_0=h("emscripten_bind_Mesh_num_points_0"),Ib=c._emscripten_bind_Mesh_set_num_points_1=h("emscripten_bind_Mesh_set_num_points_1"),Jb=c._emscripten_bind_Mesh___destroy___0=h("emscripten_bind_Mesh___destroy___0"),gb=c._emscripten_bind_Metadata_Metadata_0=h("emscripten_bind_Metadata_Metadata_0"),Kb=c._emscripten_bind_Metadata___destroy___0=h("emscripten_bind_Metadata___destroy___0"), +hb=c._emscripten_bind_DracoInt8Array_DracoInt8Array_0=h("emscripten_bind_DracoInt8Array_DracoInt8Array_0"),Lb=c._emscripten_bind_DracoInt8Array_GetValue_1=h("emscripten_bind_DracoInt8Array_GetValue_1"),Mb=c._emscripten_bind_DracoInt8Array_size_0=h("emscripten_bind_DracoInt8Array_size_0"),Nb=c._emscripten_bind_DracoInt8Array___destroy___0=h("emscripten_bind_DracoInt8Array___destroy___0"),ib=c._emscripten_bind_MetadataBuilder_MetadataBuilder_0=h("emscripten_bind_MetadataBuilder_MetadataBuilder_0"), +Ob=c._emscripten_bind_MetadataBuilder_AddStringEntry_3=h("emscripten_bind_MetadataBuilder_AddStringEntry_3"),Pb=c._emscripten_bind_MetadataBuilder_AddIntEntry_3=h("emscripten_bind_MetadataBuilder_AddIntEntry_3"),Qb=c._emscripten_bind_MetadataBuilder_AddIntEntryArray_4=h("emscripten_bind_MetadataBuilder_AddIntEntryArray_4"),Rb=c._emscripten_bind_MetadataBuilder_AddDoubleEntry_3=h("emscripten_bind_MetadataBuilder_AddDoubleEntry_3"),Sb=c._emscripten_bind_MetadataBuilder___destroy___0=h("emscripten_bind_MetadataBuilder___destroy___0"), +jb=c._emscripten_bind_PointCloudBuilder_PointCloudBuilder_0=h("emscripten_bind_PointCloudBuilder_PointCloudBuilder_0"),Tb=c._emscripten_bind_PointCloudBuilder_AddFloatAttribute_5=h("emscripten_bind_PointCloudBuilder_AddFloatAttribute_5"),Ub=c._emscripten_bind_PointCloudBuilder_AddInt8Attribute_5=h("emscripten_bind_PointCloudBuilder_AddInt8Attribute_5"),Vb=c._emscripten_bind_PointCloudBuilder_AddUInt8Attribute_5=h("emscripten_bind_PointCloudBuilder_AddUInt8Attribute_5"),Wb=c._emscripten_bind_PointCloudBuilder_AddInt16Attribute_5= +h("emscripten_bind_PointCloudBuilder_AddInt16Attribute_5"),Xb=c._emscripten_bind_PointCloudBuilder_AddUInt16Attribute_5=h("emscripten_bind_PointCloudBuilder_AddUInt16Attribute_5"),Yb=c._emscripten_bind_PointCloudBuilder_AddInt32Attribute_5=h("emscripten_bind_PointCloudBuilder_AddInt32Attribute_5"),Zb=c._emscripten_bind_PointCloudBuilder_AddUInt32Attribute_5=h("emscripten_bind_PointCloudBuilder_AddUInt32Attribute_5"),$b=c._emscripten_bind_PointCloudBuilder_AddMetadata_2=h("emscripten_bind_PointCloudBuilder_AddMetadata_2"), +ac=c._emscripten_bind_PointCloudBuilder_SetMetadataForAttribute_3=h("emscripten_bind_PointCloudBuilder_SetMetadataForAttribute_3"),bc=c._emscripten_bind_PointCloudBuilder___destroy___0=h("emscripten_bind_PointCloudBuilder___destroy___0"),kb=c._emscripten_bind_MeshBuilder_MeshBuilder_0=h("emscripten_bind_MeshBuilder_MeshBuilder_0"),cc=c._emscripten_bind_MeshBuilder_AddFacesToMesh_3=h("emscripten_bind_MeshBuilder_AddFacesToMesh_3"),dc=c._emscripten_bind_MeshBuilder_AddFloatAttributeToMesh_5=h("emscripten_bind_MeshBuilder_AddFloatAttributeToMesh_5"), +ec=c._emscripten_bind_MeshBuilder_AddInt32AttributeToMesh_5=h("emscripten_bind_MeshBuilder_AddInt32AttributeToMesh_5"),fc=c._emscripten_bind_MeshBuilder_AddMetadataToMesh_2=h("emscripten_bind_MeshBuilder_AddMetadataToMesh_2"),gc=c._emscripten_bind_MeshBuilder_AddFloatAttribute_5=h("emscripten_bind_MeshBuilder_AddFloatAttribute_5"),hc=c._emscripten_bind_MeshBuilder_AddInt8Attribute_5=h("emscripten_bind_MeshBuilder_AddInt8Attribute_5"),ic=c._emscripten_bind_MeshBuilder_AddUInt8Attribute_5=h("emscripten_bind_MeshBuilder_AddUInt8Attribute_5"), +jc=c._emscripten_bind_MeshBuilder_AddInt16Attribute_5=h("emscripten_bind_MeshBuilder_AddInt16Attribute_5"),kc=c._emscripten_bind_MeshBuilder_AddUInt16Attribute_5=h("emscripten_bind_MeshBuilder_AddUInt16Attribute_5"),lc=c._emscripten_bind_MeshBuilder_AddInt32Attribute_5=h("emscripten_bind_MeshBuilder_AddInt32Attribute_5"),mc=c._emscripten_bind_MeshBuilder_AddUInt32Attribute_5=h("emscripten_bind_MeshBuilder_AddUInt32Attribute_5"),nc=c._emscripten_bind_MeshBuilder_AddMetadata_2=h("emscripten_bind_MeshBuilder_AddMetadata_2"), +oc=c._emscripten_bind_MeshBuilder_SetMetadataForAttribute_3=h("emscripten_bind_MeshBuilder_SetMetadataForAttribute_3"),pc=c._emscripten_bind_MeshBuilder___destroy___0=h("emscripten_bind_MeshBuilder___destroy___0"),lb=c._emscripten_bind_Encoder_Encoder_0=h("emscripten_bind_Encoder_Encoder_0"),qc=c._emscripten_bind_Encoder_SetEncodingMethod_1=h("emscripten_bind_Encoder_SetEncodingMethod_1"),rc=c._emscripten_bind_Encoder_SetAttributeQuantization_2=h("emscripten_bind_Encoder_SetAttributeQuantization_2"), +sc=c._emscripten_bind_Encoder_SetAttributeExplicitQuantization_5=h("emscripten_bind_Encoder_SetAttributeExplicitQuantization_5"),tc=c._emscripten_bind_Encoder_SetSpeedOptions_2=h("emscripten_bind_Encoder_SetSpeedOptions_2"),uc=c._emscripten_bind_Encoder_SetTrackEncodedProperties_1=h("emscripten_bind_Encoder_SetTrackEncodedProperties_1"),vc=c._emscripten_bind_Encoder_EncodeMeshToDracoBuffer_2=h("emscripten_bind_Encoder_EncodeMeshToDracoBuffer_2"),wc=c._emscripten_bind_Encoder_EncodePointCloudToDracoBuffer_3= +h("emscripten_bind_Encoder_EncodePointCloudToDracoBuffer_3"),xc=c._emscripten_bind_Encoder_GetNumberOfEncodedPoints_0=h("emscripten_bind_Encoder_GetNumberOfEncodedPoints_0"),yc=c._emscripten_bind_Encoder_GetNumberOfEncodedFaces_0=h("emscripten_bind_Encoder_GetNumberOfEncodedFaces_0"),zc=c._emscripten_bind_Encoder___destroy___0=h("emscripten_bind_Encoder___destroy___0"),mb=c._emscripten_bind_ExpertEncoder_ExpertEncoder_1=h("emscripten_bind_ExpertEncoder_ExpertEncoder_1"),Ac=c._emscripten_bind_ExpertEncoder_SetEncodingMethod_1= +h("emscripten_bind_ExpertEncoder_SetEncodingMethod_1"),Bc=c._emscripten_bind_ExpertEncoder_SetAttributeQuantization_2=h("emscripten_bind_ExpertEncoder_SetAttributeQuantization_2"),Cc=c._emscripten_bind_ExpertEncoder_SetAttributeExplicitQuantization_5=h("emscripten_bind_ExpertEncoder_SetAttributeExplicitQuantization_5"),Dc=c._emscripten_bind_ExpertEncoder_SetSpeedOptions_2=h("emscripten_bind_ExpertEncoder_SetSpeedOptions_2"),Ec=c._emscripten_bind_ExpertEncoder_SetTrackEncodedProperties_1=h("emscripten_bind_ExpertEncoder_SetTrackEncodedProperties_1"), +Fc=c._emscripten_bind_ExpertEncoder_EncodeToDracoBuffer_2=h("emscripten_bind_ExpertEncoder_EncodeToDracoBuffer_2"),Gc=c._emscripten_bind_ExpertEncoder_GetNumberOfEncodedPoints_0=h("emscripten_bind_ExpertEncoder_GetNumberOfEncodedPoints_0"),Hc=c._emscripten_bind_ExpertEncoder_GetNumberOfEncodedFaces_0=h("emscripten_bind_ExpertEncoder_GetNumberOfEncodedFaces_0"),Ic=c._emscripten_bind_ExpertEncoder___destroy___0=h("emscripten_bind_ExpertEncoder___destroy___0"),Jc=c._emscripten_enum_draco_GeometryAttribute_Type_INVALID= +h("emscripten_enum_draco_GeometryAttribute_Type_INVALID"),Kc=c._emscripten_enum_draco_GeometryAttribute_Type_POSITION=h("emscripten_enum_draco_GeometryAttribute_Type_POSITION"),Lc=c._emscripten_enum_draco_GeometryAttribute_Type_NORMAL=h("emscripten_enum_draco_GeometryAttribute_Type_NORMAL"),Mc=c._emscripten_enum_draco_GeometryAttribute_Type_COLOR=h("emscripten_enum_draco_GeometryAttribute_Type_COLOR"),Nc=c._emscripten_enum_draco_GeometryAttribute_Type_TEX_COORD=h("emscripten_enum_draco_GeometryAttribute_Type_TEX_COORD"), +Oc=c._emscripten_enum_draco_GeometryAttribute_Type_GENERIC=h("emscripten_enum_draco_GeometryAttribute_Type_GENERIC"),Pc=c._emscripten_enum_draco_EncodedGeometryType_INVALID_GEOMETRY_TYPE=h("emscripten_enum_draco_EncodedGeometryType_INVALID_GEOMETRY_TYPE"),Qc=c._emscripten_enum_draco_EncodedGeometryType_POINT_CLOUD=h("emscripten_enum_draco_EncodedGeometryType_POINT_CLOUD"),Rc=c._emscripten_enum_draco_EncodedGeometryType_TRIANGULAR_MESH=h("emscripten_enum_draco_EncodedGeometryType_TRIANGULAR_MESH"), +Sc=c._emscripten_enum_draco_MeshEncoderMethod_MESH_SEQUENTIAL_ENCODING=h("emscripten_enum_draco_MeshEncoderMethod_MESH_SEQUENTIAL_ENCODING"),Tc=c._emscripten_enum_draco_MeshEncoderMethod_MESH_EDGEBREAKER_ENCODING=h("emscripten_enum_draco_MeshEncoderMethod_MESH_EDGEBREAKER_ENCODING");c.___errno_location=h("__errno_location");c._fflush=h("fflush");var qb=c._malloc=h("malloc");c._free=h("free");var Oa=c._emscripten_stack_init=function(){return(Oa=c._emscripten_stack_init=c.asm.emscripten_stack_init).apply(null, +arguments)};c._emscripten_stack_get_free=function(){return(c._emscripten_stack_get_free=c.asm.emscripten_stack_get_free).apply(null,arguments)};c._emscripten_stack_get_base=function(){return(c._emscripten_stack_get_base=c.asm.emscripten_stack_get_base).apply(null,arguments)};var Da=c._emscripten_stack_get_end=function(){return(Da=c._emscripten_stack_get_end=c.asm.emscripten_stack_get_end).apply(null,arguments)};c.stackSave=h("stackSave");c.stackRestore=h("stackRestore");c.stackAlloc=h("stackAlloc"); +var bb=c.___cxa_is_pointer_type=h("__cxa_is_pointer_type");c.dynCall_jiji=h("dynCall_jiji");c.___start_em_js=19268;c.___stop_em_js=19366;"run UTF8ArrayToString UTF8ToString stringToUTF8Array stringToUTF8 lengthBytesUTF8 addOnPreRun addOnInit addOnPreMain addOnExit addOnPostRun addRunDependency removeRunDependency FS_createFolder FS_createPath FS_createDataFile FS_createPreloadedFile FS_createLazyFile FS_createLink FS_createDevice FS_unlink getLEB getFunctionTables alignFunctionTables registerFunctions prettyPrint getCompilerSetting print printErr callMain abort keepRuntimeAlive wasmMemory stackAlloc stackSave stackRestore getTempRet0 setTempRet0 writeStackCookie checkStackCookie ptrToString zeroMemory stringToNewUTF8 exitJS getHeapMax emscripten_realloc_buffer ENV ERRNO_CODES ERRNO_MESSAGES setErrNo inetPton4 inetNtop4 inetPton6 inetNtop6 readSockaddr writeSockaddr DNS getHostByName Protocols Sockets getRandomDevice warnOnce traverseStack UNWIND_CACHE convertPCtoSourceLocation readAsmConstArgsArray readAsmConstArgs mainThreadEM_ASM jstoi_q jstoi_s getExecutableName listenOnce autoResumeAudioContext dynCallLegacy getDynCaller dynCall handleException runtimeKeepalivePush runtimeKeepalivePop callUserCallback maybeExit safeSetTimeout asmjsMangle asyncLoad alignMemory mmapAlloc writeI53ToI64 writeI53ToI64Clamped writeI53ToI64Signaling writeI53ToU64Clamped writeI53ToU64Signaling readI53FromI64 readI53FromU64 convertI32PairToI53 convertI32PairToI53Checked convertU32PairToI53 getCFunc ccall cwrap uleb128Encode sigToWasmTypes generateFuncType convertJsFunctionToWasm freeTableIndexes functionsInTableMap getEmptyTableSlot updateTableMap addFunction removeFunction reallyNegative unSign strLen reSign formatString setValue getValue PATH PATH_FS intArrayFromString intArrayToString AsciiToString stringToAscii UTF16Decoder UTF16ToString stringToUTF16 lengthBytesUTF16 UTF32ToString stringToUTF32 lengthBytesUTF32 allocateUTF8 allocateUTF8OnStack writeStringToMemory writeArrayToMemory writeAsciiToMemory SYSCALLS getSocketFromFD getSocketAddress JSEvents registerKeyEventCallback specialHTMLTargets maybeCStringToJsString findEventTarget findCanvasEventTarget getBoundingClientRect fillMouseEventData registerMouseEventCallback registerWheelEventCallback registerUiEventCallback registerFocusEventCallback fillDeviceOrientationEventData registerDeviceOrientationEventCallback fillDeviceMotionEventData registerDeviceMotionEventCallback screenOrientation fillOrientationChangeEventData registerOrientationChangeEventCallback fillFullscreenChangeEventData registerFullscreenChangeEventCallback JSEvents_requestFullscreen JSEvents_resizeCanvasForFullscreen registerRestoreOldStyle hideEverythingExceptGivenElement restoreHiddenElements setLetterbox currentFullscreenStrategy restoreOldWindowedStyle softFullscreenResizeWebGLRenderTarget doRequestFullscreen fillPointerlockChangeEventData registerPointerlockChangeEventCallback registerPointerlockErrorEventCallback requestPointerLock fillVisibilityChangeEventData registerVisibilityChangeEventCallback registerTouchEventCallback fillGamepadEventData registerGamepadEventCallback registerBeforeUnloadEventCallback fillBatteryEventData battery registerBatteryEventCallback setCanvasElementSize getCanvasElementSize demangle demangleAll jsStackTrace stackTrace ExitStatus getEnvStrings checkWasiClock flush_NO_FILESYSTEM dlopenMissingError createDyncallWrapper setImmediateWrapped clearImmediateWrapped polyfillSetImmediate uncaughtExceptionCount exceptionLast exceptionCaught ExceptionInfo exception_addRef exception_decRef Browser setMainLoop wget tempFixedLengthArray miniTempWebGLFloatBuffers heapObjectForWebGLType heapAccessShiftForWebGLHeap GL emscriptenWebGLGet computeUnpackAlignedImageSize emscriptenWebGLGetTexPixelData emscriptenWebGLGetUniform webglGetUniformLocation webglPrepareUniformLocationsBeforeFirstUse webglGetLeftBracePos emscriptenWebGLGetVertexAttrib writeGLArray AL SDL_unicode SDL_ttfContext SDL_audio SDL SDL_gfx GLUT EGL GLFW_Window GLFW GLEW IDBStore runAndAbortIfError ALLOC_NORMAL ALLOC_STACK allocate".split(" ").forEach(function(e){Object.getOwnPropertyDescriptor(c, +e)||Object.defineProperty(c,e,{configurable:!0,get:function(){var a="'"+e+"' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)";p(e)&&(a+=". Alternatively, forcing filesystem support (-sFORCE_FILESYSTEM) can export this for you");A(a)}})});"ptrToString zeroMemory stringToNewUTF8 exitJS setErrNo inetPton4 inetNtop4 inetPton6 inetNtop6 readSockaddr writeSockaddr getHostByName getRandomDevice traverseStack convertPCtoSourceLocation readAsmConstArgs mainThreadEM_ASM jstoi_q jstoi_s getExecutableName listenOnce autoResumeAudioContext dynCallLegacy getDynCaller dynCall handleException runtimeKeepalivePush runtimeKeepalivePop callUserCallback maybeExit safeSetTimeout asmjsMangle asyncLoad alignMemory mmapAlloc writeI53ToI64 writeI53ToI64Clamped writeI53ToI64Signaling writeI53ToU64Clamped writeI53ToU64Signaling readI53FromI64 readI53FromU64 convertI32PairToI53 convertU32PairToI53 getCFunc ccall cwrap uleb128Encode sigToWasmTypes generateFuncType convertJsFunctionToWasm getEmptyTableSlot updateTableMap addFunction removeFunction reallyNegative unSign strLen reSign formatString intArrayToString AsciiToString stringToAscii UTF16ToString stringToUTF16 lengthBytesUTF16 UTF32ToString stringToUTF32 lengthBytesUTF32 allocateUTF8 allocateUTF8OnStack writeStringToMemory writeArrayToMemory writeAsciiToMemory getSocketFromFD getSocketAddress registerKeyEventCallback maybeCStringToJsString findEventTarget findCanvasEventTarget getBoundingClientRect fillMouseEventData registerMouseEventCallback registerWheelEventCallback registerUiEventCallback registerFocusEventCallback fillDeviceOrientationEventData registerDeviceOrientationEventCallback fillDeviceMotionEventData registerDeviceMotionEventCallback screenOrientation fillOrientationChangeEventData registerOrientationChangeEventCallback fillFullscreenChangeEventData registerFullscreenChangeEventCallback JSEvents_requestFullscreen JSEvents_resizeCanvasForFullscreen registerRestoreOldStyle hideEverythingExceptGivenElement restoreHiddenElements setLetterbox softFullscreenResizeWebGLRenderTarget doRequestFullscreen fillPointerlockChangeEventData registerPointerlockChangeEventCallback registerPointerlockErrorEventCallback requestPointerLock fillVisibilityChangeEventData registerVisibilityChangeEventCallback registerTouchEventCallback fillGamepadEventData registerGamepadEventCallback registerBeforeUnloadEventCallback fillBatteryEventData battery registerBatteryEventCallback setCanvasElementSize getCanvasElementSize demangle demangleAll jsStackTrace stackTrace getEnvStrings checkWasiClock createDyncallWrapper setImmediateWrapped clearImmediateWrapped polyfillSetImmediate exception_addRef exception_decRef setMainLoop heapObjectForWebGLType heapAccessShiftForWebGLHeap emscriptenWebGLGet computeUnpackAlignedImageSize emscriptenWebGLGetTexPixelData emscriptenWebGLGetUniform webglGetUniformLocation webglPrepareUniformLocationsBeforeFirstUse webglGetLeftBracePos emscriptenWebGLGetVertexAttrib writeGLArray SDL_unicode SDL_ttfContext SDL_audio GLFW_Window runAndAbortIfError ALLOC_NORMAL ALLOC_STACK allocate".split(" ").forEach(function(e){"undefined"=== +typeof globalThis||Object.getOwnPropertyDescriptor(globalThis,e)||Object.defineProperty(globalThis,e,{configurable:!0,get:function(){var a="`"+e+"` is a library symbol and not included by default; add it to your library.js __deps or to DEFAULT_LIBRARY_FUNCS_TO_INCLUDE on the command line",b=e;b.startsWith("_")||(b="$"+e);a+=" (e.g. -sDEFAULT_LIBRARY_FUNCS_TO_INCLUDE="+b+")";p(e)&&(a+=". Alternatively, forcing filesystem support (-sFORCE_FILESYSTEM) can export this for you");R(a)}})});var va;oa=function a(){va|| +La();va||(oa=a)};if(c.preInit)for("function"==typeof c.preInit&&(c.preInit=[c.preInit]);0=r.size?(t(0>>=0;switch(b.BYTES_PER_ELEMENT){case 2:d>>>=1;break;case 4:d>>>=2;break;case 8:d>>>=3}for(var f=0;f>>0,$jscomp.propertyToPolyfillSymbol[p]=$jscomp.IS_SYMBOL_NATIVE? -$jscomp.global.Symbol(p):$jscomp.POLYFILL_PREFIX+l+"$"+p),$jscomp.defineProperty(u,$jscomp.propertyToPolyfillSymbol[p],{configurable:!0,writable:!0,value:k})))}; -$jscomp.polyfill("Promise",function(n){function k(){this.batch_=null}function l(m){return m instanceof p?m:new p(function(e,r){e(m)})}if(n&&(!($jscomp.FORCE_POLYFILL_PROMISE||$jscomp.FORCE_POLYFILL_PROMISE_WHEN_NO_UNHANDLED_REJECTION&&"undefined"===typeof $jscomp.global.PromiseRejectionEvent)||!$jscomp.global.Promise||-1===$jscomp.global.Promise.toString().indexOf("[native code]")))return n;k.prototype.asyncExecute=function(m){if(null==this.batch_){this.batch_=[];var e=this;this.asyncExecuteFunction(function(){e.executeBatch_()})}this.batch_.push(m)}; -var u=$jscomp.global.setTimeout;k.prototype.asyncExecuteFunction=function(m){u(m,0)};k.prototype.executeBatch_=function(){for(;this.batch_&&this.batch_.length;){var m=this.batch_;this.batch_=[];for(var e=0;e>>16&65535)*p+u*(l>>>16&65535)<<16>>>0)|0}},"es6","es3");$jscomp.polyfill("Math.fround",function(n){if(n)return n;if($jscomp.SIMPLE_FROUND_POLYFILL||"function"!==typeof Float32Array)return function(l){return l};var k=new Float32Array(1);return function(l){k[0]=l;return k[0]}},"es6","es3"); -$jscomp.polyfill("Math.clz32",function(n){return n?n:function(k){k=Number(k)>>>0;if(0===k)return 32;var l=0;0===(k&4294901760)&&(k<<=16,l+=16);0===(k&4278190080)&&(k<<=8,l+=8);0===(k&4026531840)&&(k<<=4,l+=4);0===(k&3221225472)&&(k<<=2,l+=2);0===(k&2147483648)&&l++;return l}},"es6","es3");$jscomp.polyfill("Math.trunc",function(n){return n?n:function(k){k=Number(k);if(isNaN(k)||Infinity===k||-Infinity===k||0===k)return k;var l=Math.floor(Math.abs(k));return 0>k?-l:l}},"es6","es3"); -$jscomp.checkStringArgs=function(n,k,l){if(null==n)throw new TypeError("The 'this' value for String.prototype."+l+" must not be null or undefined");if(k instanceof RegExp)throw new TypeError("First argument to String.prototype."+l+" must not be a regular expression");return n+""}; -$jscomp.polyfill("String.prototype.startsWith",function(n){return n?n:function(k,l){var u=$jscomp.checkStringArgs(this,k,"startsWith");k+="";var p=u.length,B=k.length;l=Math.max(0,Math.min(l|0,u.length));for(var m=0;m=B}},"es6","es3"); -$jscomp.polyfill("Array.prototype.copyWithin",function(n){function k(l){l=Number(l);return Infinity===l||-Infinity===l?l:l|0}return n?n:function(l,u,p){var B=this.length;l=k(l);u=k(u);p=void 0===p?B:k(p);l=0>l?Math.max(B+l,0):Math.min(l,B);u=0>u?Math.max(B+u,0):Math.min(u,B);p=0>p?Math.max(B+p,0):Math.min(p,B);if(lu;)--p in this?this[--l]=this[p]:delete this[--l];return this}},"es6","es3"); -$jscomp.typedArrayCopyWithin=function(n){return n?n:Array.prototype.copyWithin};$jscomp.polyfill("Int8Array.prototype.copyWithin",$jscomp.typedArrayCopyWithin,"es6","es5");$jscomp.polyfill("Uint8Array.prototype.copyWithin",$jscomp.typedArrayCopyWithin,"es6","es5");$jscomp.polyfill("Uint8ClampedArray.prototype.copyWithin",$jscomp.typedArrayCopyWithin,"es6","es5");$jscomp.polyfill("Int16Array.prototype.copyWithin",$jscomp.typedArrayCopyWithin,"es6","es5"); +var $jscomp=$jscomp||{};$jscomp.scope={};$jscomp.arrayIteratorImpl=function(l){var g=0;return function(){return g>>0,$jscomp.propertyToPolyfillSymbol[n]=$jscomp.IS_SYMBOL_NATIVE? +$jscomp.global.Symbol(n):$jscomp.POLYFILL_PREFIX+h+"$"+n),$jscomp.defineProperty(q,$jscomp.propertyToPolyfillSymbol[n],{configurable:!0,writable:!0,value:g})))}; +$jscomp.polyfill("Promise",function(l){function g(){this.batch_=null}function h(k){return k instanceof n?k:new n(function(t,w){t(k)})}if(l&&(!($jscomp.FORCE_POLYFILL_PROMISE||$jscomp.FORCE_POLYFILL_PROMISE_WHEN_NO_UNHANDLED_REJECTION&&"undefined"===typeof $jscomp.global.PromiseRejectionEvent)||!$jscomp.global.Promise||-1===$jscomp.global.Promise.toString().indexOf("[native code]")))return l;g.prototype.asyncExecute=function(k){if(null==this.batch_){this.batch_=[];var t=this;this.asyncExecuteFunction(function(){t.executeBatch_()})}this.batch_.push(k)}; +var q=$jscomp.global.setTimeout;g.prototype.asyncExecuteFunction=function(k){q(k,0)};g.prototype.executeBatch_=function(){for(;this.batch_&&this.batch_.length;){var k=this.batch_;this.batch_=[];for(var t=0;t=r}},"es6","es3");$jscomp.polyfill("Math.imul",function(l){return l?l:function(g,h){g=Number(g);h=Number(h);var q=g&65535,n=h&65535;return q*n+((g>>>16&65535)*n+q*(h>>>16&65535)<<16>>>0)|0}},"es6","es3"); +$jscomp.polyfill("Math.fround",function(l){if(l)return l;if($jscomp.SIMPLE_FROUND_POLYFILL||"function"!==typeof Float32Array)return function(h){return h};var g=new Float32Array(1);return function(h){g[0]=h;return g[0]}},"es6","es3"); +$jscomp.polyfill("Math.clz32",function(l){return l?l:function(g){g=Number(g)>>>0;if(0===g)return 32;var h=0;0===(g&4294901760)&&(g<<=16,h+=16);0===(g&4278190080)&&(g<<=8,h+=8);0===(g&4026531840)&&(g<<=4,h+=4);0===(g&3221225472)&&(g<<=2,h+=2);0===(g&2147483648)&&h++;return h}},"es6","es3");$jscomp.polyfill("Math.trunc",function(l){return l?l:function(g){g=Number(g);if(isNaN(g)||Infinity===g||-Infinity===g||0===g)return g;var h=Math.floor(Math.abs(g));return 0>g?-h:h}},"es6","es3"); +$jscomp.polyfill("Array.prototype.copyWithin",function(l){function g(h){h=Number(h);return Infinity===h||-Infinity===h?h:h|0}return l?l:function(h,q,n){var r=this.length;h=g(h);q=g(q);n=void 0===n?r:g(n);h=0>h?Math.max(r+h,0):Math.min(h,r);q=0>q?Math.max(r+q,0):Math.min(q,r);n=0>n?Math.max(r+n,0):Math.min(n,r);if(hq;)--n in this?this[--h]=this[n]:delete this[--h];return this}},"es6","es3"); +$jscomp.typedArrayCopyWithin=function(l){return l?l:Array.prototype.copyWithin};$jscomp.polyfill("Int8Array.prototype.copyWithin",$jscomp.typedArrayCopyWithin,"es6","es5");$jscomp.polyfill("Uint8Array.prototype.copyWithin",$jscomp.typedArrayCopyWithin,"es6","es5");$jscomp.polyfill("Uint8ClampedArray.prototype.copyWithin",$jscomp.typedArrayCopyWithin,"es6","es5");$jscomp.polyfill("Int16Array.prototype.copyWithin",$jscomp.typedArrayCopyWithin,"es6","es5"); $jscomp.polyfill("Uint16Array.prototype.copyWithin",$jscomp.typedArrayCopyWithin,"es6","es5");$jscomp.polyfill("Int32Array.prototype.copyWithin",$jscomp.typedArrayCopyWithin,"es6","es5");$jscomp.polyfill("Uint32Array.prototype.copyWithin",$jscomp.typedArrayCopyWithin,"es6","es5");$jscomp.polyfill("Float32Array.prototype.copyWithin",$jscomp.typedArrayCopyWithin,"es6","es5");$jscomp.polyfill("Float64Array.prototype.copyWithin",$jscomp.typedArrayCopyWithin,"es6","es5"); -var DracoDecoderModule=function(){var n="undefined"!==typeof document&&document.currentScript?document.currentScript.src:void 0;"undefined"!==typeof __filename&&(n=n||__filename);return function(k){function l(g){return a.locateFile?a.locateFile(g,ba):ba+g}function u(g){u.shown||(u.shown={});u.shown[g]||(u.shown[g]=1,I(g))}function p(g,b){Object.getOwnPropertyDescriptor(a,g)||Object.defineProperty(a,g,{configurable:!0,get:function(){c("Module."+g+" has been replaced with plain "+b+" (the initial value can be provided on Module, but after startup the value is only looked for on a local variable of that name)")}})} -function B(g,b){g="'"+g+"' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)";b&&(g+=". Alternatively, forcing filesystem support (-sFORCE_FILESYSTEM) can export this for you");return g}function m(g,b){Object.getOwnPropertyDescriptor(a,g)||Object.defineProperty(a,g,{configurable:!0,get:function(){c(B(g,b))}})}function e(g,b){Object.getOwnPropertyDescriptor(a,g)||(a[g]=function(){return c(B(g,b))})}function r(g,b){g||c("Assertion failed"+(b?": "+b:""))}function A(g,b,d){var f=b+d; -for(d=b;g[d]&&!(d>=f);)++d;if(16q?f+=String.fromCharCode(q):(q-=65536,f+=String.fromCharCode(55296|q>>10, -56320|q&1023))}}else f+=String.fromCharCode(q)}return f}function H(g,b){return g?A(na,g,b):""}function ka(g){Ba=g;a.HEAP8=da=new Int8Array(g);a.HEAP16=new Int16Array(g);a.HEAP32=fa=new Int32Array(g);a.HEAPU8=na=new Uint8Array(g);a.HEAPU16=new Uint16Array(g);a.HEAPU32=J=new Uint32Array(g);a.HEAPF32=new Float32Array(g);a.HEAPF64=new Float64Array(g)}function V(){var g=Ca();r(0==(g&3));fa[g>>2]=34821223;fa[g+4>>2]=2310721022;J[0]=1668509029}function W(){if(!ta){var g=Ca(),b=J[g>>2],d=J[g+4>>2];34821223== -b&&2310721022==d||c("Stack overflow! Stack cookie has been overwritten at 0x"+g.toString(16)+", expected hex dwords 0x89BACDFE and 0x2135467, but received 0x"+d.toString(16)+" 0x"+b.toString(16));1668509029!==J[0]&&c("Runtime error: The application has corrupted its heap memory area (address zero)!")}}function ma(g){ia++;a.monitorRunDependencies&&a.monitorRunDependencies(ia);g?(r(!oa[g]),oa[g]=1,null===ja&&"undefined"!=typeof setInterval&&(ja=setInterval(function(){if(ta)clearInterval(ja),ja=null; -else{var b=!1,d;for(d in oa)b||(b=!0,I("still waiting on run dependencies:")),I("dependency: "+d);b&&I("(end of list)")}},1E4))):I("warning: run dependency added without ID")}function c(g){if(a.onAbort)a.onAbort(g);g="Aborted("+g+")";I(g);ta=!0;g=new WebAssembly.RuntimeError(g);Da(g);throw g;}function h(g,b){return function(){var d=b;b||(d=a.asm);r(ua,"native function `"+g+"` called before runtime initialization");d[g]||r(d[g],"exported native function `"+g+"` not found");return d[g].apply(null,arguments)}} -function Qa(g){try{if(g==K&&pa)return new Uint8Array(pa);if(qa)return qa(g);throw"both async and sync fetching of the wasm failed";}catch(b){c(b)}}function db(){if(!pa&&(Ea||la)){if("function"==typeof fetch&&!K.startsWith("file://"))return fetch(K,{credentials:"same-origin"}).then(function(g){if(!g.ok)throw"failed to load wasm binary file at '"+K+"'";return g.arrayBuffer()}).catch(function(){return Qa(K)});if(va)return new Promise(function(g,b){va(K,function(d){g(new Uint8Array(d))},b)})}return Promise.resolve().then(function(){return Qa(K)})} -function Fa(g){for(;0=wa.length&&(wa.length=g+1),wa[g]=b=xa.get(g));r(xa.get(g)==b,"JavaScript-side Wasm function table mirror is out of date!");return b}function eb(g){this.excPtr=g;this.ptr=g-24;this.set_type=function(b){J[this.ptr+4>>2]=b};this.get_type=function(){return J[this.ptr+4>>2]};this.set_destructor= -function(b){J[this.ptr+8>>2]=b};this.get_destructor=function(){return J[this.ptr+8>>2]};this.set_refcount=function(b){fa[this.ptr>>2]=b};this.set_caught=function(b){da[this.ptr+12>>0]=b?1:0};this.get_caught=function(){return 0!=da[this.ptr+12>>0]};this.set_rethrown=function(b){da[this.ptr+13>>0]=b?1:0};this.get_rethrown=function(){return 0!=da[this.ptr+13>>0]};this.init=function(b,d){this.set_adjusted_ptr(0);this.set_type(b);this.set_destructor(d);this.set_refcount(0);this.set_caught(!1);this.set_rethrown(!1)}; -this.add_ref=function(){fa[this.ptr>>2]+=1};this.release_ref=function(){var b=fa[this.ptr>>2];fa[this.ptr>>2]=b-1;r(0>2]=b};this.get_adjusted_ptr=function(){return J[this.ptr+16>>2]};this.get_exception_ptr=function(){if(fb(this.get_type()))return J[this.excPtr>>2];var b=this.get_adjusted_ptr();return 0!==b?b:this.excPtr}}function Ga(g){function b(){if(!ya&&(ya=!0,a.calledRun=!0,!ta)){r(!ua);ua=!0;W();Fa(Ha);Sa(a);if(a.onRuntimeInitialized)a.onRuntimeInitialized(); -r(!a._main,'compiled without a main, but one is present. if you added it from JS, use Module["onRuntimeInitialized"]');W();if(a.postRun)for("function"==typeof a.postRun&&(a.postRun=[a.postRun]);a.postRun.length;)Ta.unshift(a.postRun.shift());Fa(Ta)}}if(!(0=f&&(f=65536+((f&1023)<<10)|g.charCodeAt(++d)&1023);127>=f?++b:b=2047>=f?b+2:65535>=f?b+3:b+4}b=Array(b+1);d=0;f=b.length;if(0=v){var D=g.charCodeAt(++q); -v=65536+((v&1023)<<10)|D&1023}if(127>=v){if(d>=f)break;b[d++]=v}else{if(2047>=v){if(d+1>=f)break;b[d++]=192|v>>6}else{if(65535>=v){if(d+2>=f)break;b[d++]=224|v>>12}else{if(d+3>=f)break;1114111>18;b[d++]=128|v>>12&63}b[d++]=128|v>>6&63}b[d++]=128|v&63}}b[d]=0}g=w.alloc(b,da);w.copy(b,da,g);return g}return g} -function Ia(g){if("object"===typeof g){var b=w.alloc(g,da);w.copy(g,da,b);return b}return g}function ea(){throw"cannot construct a VoidPtr, no constructor in IDL";}function Y(){this.ptr=gb();C(Y)[this.ptr]=this}function U(){this.ptr=hb();C(U)[this.ptr]=this}function ca(){this.ptr=ib();C(ca)[this.ptr]=this}function y(){this.ptr=jb();C(y)[this.ptr]=this}function F(){this.ptr=kb();C(F)[this.ptr]=this}function L(){this.ptr=lb();C(L)[this.ptr]=this}function M(){this.ptr=mb();C(M)[this.ptr]=this}function G(){this.ptr= -nb();C(G)[this.ptr]=this}function Z(){this.ptr=ob();C(Z)[this.ptr]=this}function E(){throw"cannot construct a Status, no constructor in IDL";}function N(){this.ptr=pb();C(N)[this.ptr]=this}function O(){this.ptr=qb();C(O)[this.ptr]=this}function P(){this.ptr=rb();C(P)[this.ptr]=this}function Q(){this.ptr=sb();C(Q)[this.ptr]=this}function R(){this.ptr=tb();C(R)[this.ptr]=this}function S(){this.ptr=ub();C(S)[this.ptr]=this}function T(){this.ptr=vb();C(T)[this.ptr]=this}function z(){this.ptr=wb();C(z)[this.ptr]= -this}function t(){this.ptr=xb();C(t)[this.ptr]=this}k=k||{};var a="undefined"!=typeof k?k:{},Sa,Da;a.ready=new Promise(function(g,b){Sa=g;Da=b});Object.getOwnPropertyDescriptor(a.ready,"_free")||(Object.defineProperty(a.ready,"_free",{configurable:!0,get:function(){c("You are getting _free on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}),Object.defineProperty(a.ready,"_free",{configurable:!0,set:function(){c("You are setting _free on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}})); -Object.getOwnPropertyDescriptor(a.ready,"_malloc")||(Object.defineProperty(a.ready,"_malloc",{configurable:!0,get:function(){c("You are getting _malloc on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}),Object.defineProperty(a.ready,"_malloc",{configurable:!0,set:function(){c("You are setting _malloc on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}})); -Object.getOwnPropertyDescriptor(a.ready,"_emscripten_bind_VoidPtr___destroy___0")||(Object.defineProperty(a.ready,"_emscripten_bind_VoidPtr___destroy___0",{configurable:!0,get:function(){c("You are getting _emscripten_bind_VoidPtr___destroy___0 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}),Object.defineProperty(a.ready,"_emscripten_bind_VoidPtr___destroy___0",{configurable:!0,set:function(){c("You are setting _emscripten_bind_VoidPtr___destroy___0 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}})); -Object.getOwnPropertyDescriptor(a.ready,"_emscripten_bind_DecoderBuffer_DecoderBuffer_0")||(Object.defineProperty(a.ready,"_emscripten_bind_DecoderBuffer_DecoderBuffer_0",{configurable:!0,get:function(){c("You are getting _emscripten_bind_DecoderBuffer_DecoderBuffer_0 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}),Object.defineProperty(a.ready,"_emscripten_bind_DecoderBuffer_DecoderBuffer_0",{configurable:!0, -set:function(){c("You are setting _emscripten_bind_DecoderBuffer_DecoderBuffer_0 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}));Object.getOwnPropertyDescriptor(a.ready,"_emscripten_bind_DecoderBuffer_Init_2")||(Object.defineProperty(a.ready,"_emscripten_bind_DecoderBuffer_Init_2",{configurable:!0,get:function(){c("You are getting _emscripten_bind_DecoderBuffer_Init_2 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}), -Object.defineProperty(a.ready,"_emscripten_bind_DecoderBuffer_Init_2",{configurable:!0,set:function(){c("You are setting _emscripten_bind_DecoderBuffer_Init_2 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}));Object.getOwnPropertyDescriptor(a.ready,"_emscripten_bind_DecoderBuffer___destroy___0")||(Object.defineProperty(a.ready,"_emscripten_bind_DecoderBuffer___destroy___0",{configurable:!0,get:function(){c("You are getting _emscripten_bind_DecoderBuffer___destroy___0 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}), -Object.defineProperty(a.ready,"_emscripten_bind_DecoderBuffer___destroy___0",{configurable:!0,set:function(){c("You are setting _emscripten_bind_DecoderBuffer___destroy___0 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}));Object.getOwnPropertyDescriptor(a.ready,"_emscripten_bind_AttributeTransformData_AttributeTransformData_0")||(Object.defineProperty(a.ready,"_emscripten_bind_AttributeTransformData_AttributeTransformData_0", -{configurable:!0,get:function(){c("You are getting _emscripten_bind_AttributeTransformData_AttributeTransformData_0 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}),Object.defineProperty(a.ready,"_emscripten_bind_AttributeTransformData_AttributeTransformData_0",{configurable:!0,set:function(){c("You are setting _emscripten_bind_AttributeTransformData_AttributeTransformData_0 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}})); -Object.getOwnPropertyDescriptor(a.ready,"_emscripten_bind_AttributeTransformData_transform_type_0")||(Object.defineProperty(a.ready,"_emscripten_bind_AttributeTransformData_transform_type_0",{configurable:!0,get:function(){c("You are getting _emscripten_bind_AttributeTransformData_transform_type_0 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}),Object.defineProperty(a.ready,"_emscripten_bind_AttributeTransformData_transform_type_0", -{configurable:!0,set:function(){c("You are setting _emscripten_bind_AttributeTransformData_transform_type_0 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}));Object.getOwnPropertyDescriptor(a.ready,"_emscripten_bind_AttributeTransformData___destroy___0")||(Object.defineProperty(a.ready,"_emscripten_bind_AttributeTransformData___destroy___0",{configurable:!0,get:function(){c("You are getting _emscripten_bind_AttributeTransformData___destroy___0 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}), -Object.defineProperty(a.ready,"_emscripten_bind_AttributeTransformData___destroy___0",{configurable:!0,set:function(){c("You are setting _emscripten_bind_AttributeTransformData___destroy___0 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}));Object.getOwnPropertyDescriptor(a.ready,"_emscripten_bind_GeometryAttribute_GeometryAttribute_0")||(Object.defineProperty(a.ready,"_emscripten_bind_GeometryAttribute_GeometryAttribute_0", -{configurable:!0,get:function(){c("You are getting _emscripten_bind_GeometryAttribute_GeometryAttribute_0 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}),Object.defineProperty(a.ready,"_emscripten_bind_GeometryAttribute_GeometryAttribute_0",{configurable:!0,set:function(){c("You are setting _emscripten_bind_GeometryAttribute_GeometryAttribute_0 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}})); -Object.getOwnPropertyDescriptor(a.ready,"_emscripten_bind_GeometryAttribute___destroy___0")||(Object.defineProperty(a.ready,"_emscripten_bind_GeometryAttribute___destroy___0",{configurable:!0,get:function(){c("You are getting _emscripten_bind_GeometryAttribute___destroy___0 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}),Object.defineProperty(a.ready,"_emscripten_bind_GeometryAttribute___destroy___0", -{configurable:!0,set:function(){c("You are setting _emscripten_bind_GeometryAttribute___destroy___0 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}));Object.getOwnPropertyDescriptor(a.ready,"_emscripten_bind_PointAttribute_PointAttribute_0")||(Object.defineProperty(a.ready,"_emscripten_bind_PointAttribute_PointAttribute_0",{configurable:!0,get:function(){c("You are getting _emscripten_bind_PointAttribute_PointAttribute_0 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}), -Object.defineProperty(a.ready,"_emscripten_bind_PointAttribute_PointAttribute_0",{configurable:!0,set:function(){c("You are setting _emscripten_bind_PointAttribute_PointAttribute_0 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}));Object.getOwnPropertyDescriptor(a.ready,"_emscripten_bind_PointAttribute_size_0")||(Object.defineProperty(a.ready,"_emscripten_bind_PointAttribute_size_0",{configurable:!0,get:function(){c("You are getting _emscripten_bind_PointAttribute_size_0 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}), -Object.defineProperty(a.ready,"_emscripten_bind_PointAttribute_size_0",{configurable:!0,set:function(){c("You are setting _emscripten_bind_PointAttribute_size_0 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}));Object.getOwnPropertyDescriptor(a.ready,"_emscripten_bind_PointAttribute_GetAttributeTransformData_0")||(Object.defineProperty(a.ready,"_emscripten_bind_PointAttribute_GetAttributeTransformData_0", -{configurable:!0,get:function(){c("You are getting _emscripten_bind_PointAttribute_GetAttributeTransformData_0 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}),Object.defineProperty(a.ready,"_emscripten_bind_PointAttribute_GetAttributeTransformData_0",{configurable:!0,set:function(){c("You are setting _emscripten_bind_PointAttribute_GetAttributeTransformData_0 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}})); -Object.getOwnPropertyDescriptor(a.ready,"_emscripten_bind_PointAttribute_attribute_type_0")||(Object.defineProperty(a.ready,"_emscripten_bind_PointAttribute_attribute_type_0",{configurable:!0,get:function(){c("You are getting _emscripten_bind_PointAttribute_attribute_type_0 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}),Object.defineProperty(a.ready,"_emscripten_bind_PointAttribute_attribute_type_0", -{configurable:!0,set:function(){c("You are setting _emscripten_bind_PointAttribute_attribute_type_0 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}));Object.getOwnPropertyDescriptor(a.ready,"_emscripten_bind_PointAttribute_data_type_0")||(Object.defineProperty(a.ready,"_emscripten_bind_PointAttribute_data_type_0",{configurable:!0,get:function(){c("You are getting _emscripten_bind_PointAttribute_data_type_0 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}), -Object.defineProperty(a.ready,"_emscripten_bind_PointAttribute_data_type_0",{configurable:!0,set:function(){c("You are setting _emscripten_bind_PointAttribute_data_type_0 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}));Object.getOwnPropertyDescriptor(a.ready,"_emscripten_bind_PointAttribute_num_components_0")||(Object.defineProperty(a.ready,"_emscripten_bind_PointAttribute_num_components_0",{configurable:!0, -get:function(){c("You are getting _emscripten_bind_PointAttribute_num_components_0 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}),Object.defineProperty(a.ready,"_emscripten_bind_PointAttribute_num_components_0",{configurable:!0,set:function(){c("You are setting _emscripten_bind_PointAttribute_num_components_0 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}})); -Object.getOwnPropertyDescriptor(a.ready,"_emscripten_bind_PointAttribute_normalized_0")||(Object.defineProperty(a.ready,"_emscripten_bind_PointAttribute_normalized_0",{configurable:!0,get:function(){c("You are getting _emscripten_bind_PointAttribute_normalized_0 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}),Object.defineProperty(a.ready,"_emscripten_bind_PointAttribute_normalized_0",{configurable:!0, -set:function(){c("You are setting _emscripten_bind_PointAttribute_normalized_0 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}));Object.getOwnPropertyDescriptor(a.ready,"_emscripten_bind_PointAttribute_byte_stride_0")||(Object.defineProperty(a.ready,"_emscripten_bind_PointAttribute_byte_stride_0",{configurable:!0,get:function(){c("You are getting _emscripten_bind_PointAttribute_byte_stride_0 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}), -Object.defineProperty(a.ready,"_emscripten_bind_PointAttribute_byte_stride_0",{configurable:!0,set:function(){c("You are setting _emscripten_bind_PointAttribute_byte_stride_0 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}));Object.getOwnPropertyDescriptor(a.ready,"_emscripten_bind_PointAttribute_byte_offset_0")||(Object.defineProperty(a.ready,"_emscripten_bind_PointAttribute_byte_offset_0",{configurable:!0, -get:function(){c("You are getting _emscripten_bind_PointAttribute_byte_offset_0 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}),Object.defineProperty(a.ready,"_emscripten_bind_PointAttribute_byte_offset_0",{configurable:!0,set:function(){c("You are setting _emscripten_bind_PointAttribute_byte_offset_0 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}})); -Object.getOwnPropertyDescriptor(a.ready,"_emscripten_bind_PointAttribute_unique_id_0")||(Object.defineProperty(a.ready,"_emscripten_bind_PointAttribute_unique_id_0",{configurable:!0,get:function(){c("You are getting _emscripten_bind_PointAttribute_unique_id_0 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}),Object.defineProperty(a.ready,"_emscripten_bind_PointAttribute_unique_id_0",{configurable:!0,set:function(){c("You are setting _emscripten_bind_PointAttribute_unique_id_0 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}})); -Object.getOwnPropertyDescriptor(a.ready,"_emscripten_bind_PointAttribute___destroy___0")||(Object.defineProperty(a.ready,"_emscripten_bind_PointAttribute___destroy___0",{configurable:!0,get:function(){c("You are getting _emscripten_bind_PointAttribute___destroy___0 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}),Object.defineProperty(a.ready,"_emscripten_bind_PointAttribute___destroy___0",{configurable:!0, -set:function(){c("You are setting _emscripten_bind_PointAttribute___destroy___0 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}));Object.getOwnPropertyDescriptor(a.ready,"_emscripten_bind_AttributeQuantizationTransform_AttributeQuantizationTransform_0")||(Object.defineProperty(a.ready,"_emscripten_bind_AttributeQuantizationTransform_AttributeQuantizationTransform_0",{configurable:!0,get:function(){c("You are getting _emscripten_bind_AttributeQuantizationTransform_AttributeQuantizationTransform_0 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}), -Object.defineProperty(a.ready,"_emscripten_bind_AttributeQuantizationTransform_AttributeQuantizationTransform_0",{configurable:!0,set:function(){c("You are setting _emscripten_bind_AttributeQuantizationTransform_AttributeQuantizationTransform_0 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}));Object.getOwnPropertyDescriptor(a.ready,"_emscripten_bind_AttributeQuantizationTransform_InitFromAttribute_1")|| -(Object.defineProperty(a.ready,"_emscripten_bind_AttributeQuantizationTransform_InitFromAttribute_1",{configurable:!0,get:function(){c("You are getting _emscripten_bind_AttributeQuantizationTransform_InitFromAttribute_1 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}),Object.defineProperty(a.ready,"_emscripten_bind_AttributeQuantizationTransform_InitFromAttribute_1",{configurable:!0,set:function(){c("You are setting _emscripten_bind_AttributeQuantizationTransform_InitFromAttribute_1 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}})); -Object.getOwnPropertyDescriptor(a.ready,"_emscripten_bind_AttributeQuantizationTransform_quantization_bits_0")||(Object.defineProperty(a.ready,"_emscripten_bind_AttributeQuantizationTransform_quantization_bits_0",{configurable:!0,get:function(){c("You are getting _emscripten_bind_AttributeQuantizationTransform_quantization_bits_0 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}),Object.defineProperty(a.ready, -"_emscripten_bind_AttributeQuantizationTransform_quantization_bits_0",{configurable:!0,set:function(){c("You are setting _emscripten_bind_AttributeQuantizationTransform_quantization_bits_0 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}));Object.getOwnPropertyDescriptor(a.ready,"_emscripten_bind_AttributeQuantizationTransform_min_value_1")||(Object.defineProperty(a.ready,"_emscripten_bind_AttributeQuantizationTransform_min_value_1", -{configurable:!0,get:function(){c("You are getting _emscripten_bind_AttributeQuantizationTransform_min_value_1 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}),Object.defineProperty(a.ready,"_emscripten_bind_AttributeQuantizationTransform_min_value_1",{configurable:!0,set:function(){c("You are setting _emscripten_bind_AttributeQuantizationTransform_min_value_1 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}})); -Object.getOwnPropertyDescriptor(a.ready,"_emscripten_bind_AttributeQuantizationTransform_range_0")||(Object.defineProperty(a.ready,"_emscripten_bind_AttributeQuantizationTransform_range_0",{configurable:!0,get:function(){c("You are getting _emscripten_bind_AttributeQuantizationTransform_range_0 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}),Object.defineProperty(a.ready,"_emscripten_bind_AttributeQuantizationTransform_range_0", -{configurable:!0,set:function(){c("You are setting _emscripten_bind_AttributeQuantizationTransform_range_0 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}));Object.getOwnPropertyDescriptor(a.ready,"_emscripten_bind_AttributeQuantizationTransform___destroy___0")||(Object.defineProperty(a.ready,"_emscripten_bind_AttributeQuantizationTransform___destroy___0",{configurable:!0,get:function(){c("You are getting _emscripten_bind_AttributeQuantizationTransform___destroy___0 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}), -Object.defineProperty(a.ready,"_emscripten_bind_AttributeQuantizationTransform___destroy___0",{configurable:!0,set:function(){c("You are setting _emscripten_bind_AttributeQuantizationTransform___destroy___0 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}));Object.getOwnPropertyDescriptor(a.ready,"_emscripten_bind_AttributeOctahedronTransform_AttributeOctahedronTransform_0")||(Object.defineProperty(a.ready, -"_emscripten_bind_AttributeOctahedronTransform_AttributeOctahedronTransform_0",{configurable:!0,get:function(){c("You are getting _emscripten_bind_AttributeOctahedronTransform_AttributeOctahedronTransform_0 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}),Object.defineProperty(a.ready,"_emscripten_bind_AttributeOctahedronTransform_AttributeOctahedronTransform_0",{configurable:!0,set:function(){c("You are setting _emscripten_bind_AttributeOctahedronTransform_AttributeOctahedronTransform_0 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}})); -Object.getOwnPropertyDescriptor(a.ready,"_emscripten_bind_AttributeOctahedronTransform_InitFromAttribute_1")||(Object.defineProperty(a.ready,"_emscripten_bind_AttributeOctahedronTransform_InitFromAttribute_1",{configurable:!0,get:function(){c("You are getting _emscripten_bind_AttributeOctahedronTransform_InitFromAttribute_1 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}),Object.defineProperty(a.ready, -"_emscripten_bind_AttributeOctahedronTransform_InitFromAttribute_1",{configurable:!0,set:function(){c("You are setting _emscripten_bind_AttributeOctahedronTransform_InitFromAttribute_1 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}));Object.getOwnPropertyDescriptor(a.ready,"_emscripten_bind_AttributeOctahedronTransform_quantization_bits_0")||(Object.defineProperty(a.ready,"_emscripten_bind_AttributeOctahedronTransform_quantization_bits_0", -{configurable:!0,get:function(){c("You are getting _emscripten_bind_AttributeOctahedronTransform_quantization_bits_0 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}),Object.defineProperty(a.ready,"_emscripten_bind_AttributeOctahedronTransform_quantization_bits_0",{configurable:!0,set:function(){c("You are setting _emscripten_bind_AttributeOctahedronTransform_quantization_bits_0 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}})); -Object.getOwnPropertyDescriptor(a.ready,"_emscripten_bind_AttributeOctahedronTransform___destroy___0")||(Object.defineProperty(a.ready,"_emscripten_bind_AttributeOctahedronTransform___destroy___0",{configurable:!0,get:function(){c("You are getting _emscripten_bind_AttributeOctahedronTransform___destroy___0 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}),Object.defineProperty(a.ready,"_emscripten_bind_AttributeOctahedronTransform___destroy___0", -{configurable:!0,set:function(){c("You are setting _emscripten_bind_AttributeOctahedronTransform___destroy___0 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}));Object.getOwnPropertyDescriptor(a.ready,"_emscripten_bind_PointCloud_PointCloud_0")||(Object.defineProperty(a.ready,"_emscripten_bind_PointCloud_PointCloud_0",{configurable:!0,get:function(){c("You are getting _emscripten_bind_PointCloud_PointCloud_0 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}), -Object.defineProperty(a.ready,"_emscripten_bind_PointCloud_PointCloud_0",{configurable:!0,set:function(){c("You are setting _emscripten_bind_PointCloud_PointCloud_0 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}));Object.getOwnPropertyDescriptor(a.ready,"_emscripten_bind_PointCloud_num_attributes_0")||(Object.defineProperty(a.ready,"_emscripten_bind_PointCloud_num_attributes_0",{configurable:!0,get:function(){c("You are getting _emscripten_bind_PointCloud_num_attributes_0 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}), -Object.defineProperty(a.ready,"_emscripten_bind_PointCloud_num_attributes_0",{configurable:!0,set:function(){c("You are setting _emscripten_bind_PointCloud_num_attributes_0 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}));Object.getOwnPropertyDescriptor(a.ready,"_emscripten_bind_PointCloud_num_points_0")||(Object.defineProperty(a.ready,"_emscripten_bind_PointCloud_num_points_0",{configurable:!0,get:function(){c("You are getting _emscripten_bind_PointCloud_num_points_0 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}), -Object.defineProperty(a.ready,"_emscripten_bind_PointCloud_num_points_0",{configurable:!0,set:function(){c("You are setting _emscripten_bind_PointCloud_num_points_0 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}));Object.getOwnPropertyDescriptor(a.ready,"_emscripten_bind_PointCloud___destroy___0")||(Object.defineProperty(a.ready,"_emscripten_bind_PointCloud___destroy___0",{configurable:!0,get:function(){c("You are getting _emscripten_bind_PointCloud___destroy___0 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}), -Object.defineProperty(a.ready,"_emscripten_bind_PointCloud___destroy___0",{configurable:!0,set:function(){c("You are setting _emscripten_bind_PointCloud___destroy___0 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}));Object.getOwnPropertyDescriptor(a.ready,"_emscripten_bind_Mesh_Mesh_0")||(Object.defineProperty(a.ready,"_emscripten_bind_Mesh_Mesh_0",{configurable:!0,get:function(){c("You are getting _emscripten_bind_Mesh_Mesh_0 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}), -Object.defineProperty(a.ready,"_emscripten_bind_Mesh_Mesh_0",{configurable:!0,set:function(){c("You are setting _emscripten_bind_Mesh_Mesh_0 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}));Object.getOwnPropertyDescriptor(a.ready,"_emscripten_bind_Mesh_num_faces_0")||(Object.defineProperty(a.ready,"_emscripten_bind_Mesh_num_faces_0",{configurable:!0,get:function(){c("You are getting _emscripten_bind_Mesh_num_faces_0 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}), -Object.defineProperty(a.ready,"_emscripten_bind_Mesh_num_faces_0",{configurable:!0,set:function(){c("You are setting _emscripten_bind_Mesh_num_faces_0 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}));Object.getOwnPropertyDescriptor(a.ready,"_emscripten_bind_Mesh_num_attributes_0")||(Object.defineProperty(a.ready,"_emscripten_bind_Mesh_num_attributes_0",{configurable:!0,get:function(){c("You are getting _emscripten_bind_Mesh_num_attributes_0 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}), -Object.defineProperty(a.ready,"_emscripten_bind_Mesh_num_attributes_0",{configurable:!0,set:function(){c("You are setting _emscripten_bind_Mesh_num_attributes_0 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}));Object.getOwnPropertyDescriptor(a.ready,"_emscripten_bind_Mesh_num_points_0")||(Object.defineProperty(a.ready,"_emscripten_bind_Mesh_num_points_0",{configurable:!0,get:function(){c("You are getting _emscripten_bind_Mesh_num_points_0 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}), -Object.defineProperty(a.ready,"_emscripten_bind_Mesh_num_points_0",{configurable:!0,set:function(){c("You are setting _emscripten_bind_Mesh_num_points_0 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}));Object.getOwnPropertyDescriptor(a.ready,"_emscripten_bind_Mesh___destroy___0")||(Object.defineProperty(a.ready,"_emscripten_bind_Mesh___destroy___0",{configurable:!0,get:function(){c("You are getting _emscripten_bind_Mesh___destroy___0 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}), -Object.defineProperty(a.ready,"_emscripten_bind_Mesh___destroy___0",{configurable:!0,set:function(){c("You are setting _emscripten_bind_Mesh___destroy___0 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}));Object.getOwnPropertyDescriptor(a.ready,"_emscripten_bind_Metadata_Metadata_0")||(Object.defineProperty(a.ready,"_emscripten_bind_Metadata_Metadata_0",{configurable:!0,get:function(){c("You are getting _emscripten_bind_Metadata_Metadata_0 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}), -Object.defineProperty(a.ready,"_emscripten_bind_Metadata_Metadata_0",{configurable:!0,set:function(){c("You are setting _emscripten_bind_Metadata_Metadata_0 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}));Object.getOwnPropertyDescriptor(a.ready,"_emscripten_bind_Metadata___destroy___0")||(Object.defineProperty(a.ready,"_emscripten_bind_Metadata___destroy___0",{configurable:!0,get:function(){c("You are getting _emscripten_bind_Metadata___destroy___0 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}), -Object.defineProperty(a.ready,"_emscripten_bind_Metadata___destroy___0",{configurable:!0,set:function(){c("You are setting _emscripten_bind_Metadata___destroy___0 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}));Object.getOwnPropertyDescriptor(a.ready,"_emscripten_bind_Status_code_0")||(Object.defineProperty(a.ready,"_emscripten_bind_Status_code_0",{configurable:!0,get:function(){c("You are getting _emscripten_bind_Status_code_0 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}), -Object.defineProperty(a.ready,"_emscripten_bind_Status_code_0",{configurable:!0,set:function(){c("You are setting _emscripten_bind_Status_code_0 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}));Object.getOwnPropertyDescriptor(a.ready,"_emscripten_bind_Status_ok_0")||(Object.defineProperty(a.ready,"_emscripten_bind_Status_ok_0",{configurable:!0,get:function(){c("You are getting _emscripten_bind_Status_ok_0 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}), -Object.defineProperty(a.ready,"_emscripten_bind_Status_ok_0",{configurable:!0,set:function(){c("You are setting _emscripten_bind_Status_ok_0 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}));Object.getOwnPropertyDescriptor(a.ready,"_emscripten_bind_Status_error_msg_0")||(Object.defineProperty(a.ready,"_emscripten_bind_Status_error_msg_0",{configurable:!0,get:function(){c("You are getting _emscripten_bind_Status_error_msg_0 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}), -Object.defineProperty(a.ready,"_emscripten_bind_Status_error_msg_0",{configurable:!0,set:function(){c("You are setting _emscripten_bind_Status_error_msg_0 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}));Object.getOwnPropertyDescriptor(a.ready,"_emscripten_bind_Status___destroy___0")||(Object.defineProperty(a.ready,"_emscripten_bind_Status___destroy___0",{configurable:!0,get:function(){c("You are getting _emscripten_bind_Status___destroy___0 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}), -Object.defineProperty(a.ready,"_emscripten_bind_Status___destroy___0",{configurable:!0,set:function(){c("You are setting _emscripten_bind_Status___destroy___0 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}));Object.getOwnPropertyDescriptor(a.ready,"_emscripten_bind_DracoFloat32Array_DracoFloat32Array_0")||(Object.defineProperty(a.ready,"_emscripten_bind_DracoFloat32Array_DracoFloat32Array_0",{configurable:!0, -get:function(){c("You are getting _emscripten_bind_DracoFloat32Array_DracoFloat32Array_0 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}),Object.defineProperty(a.ready,"_emscripten_bind_DracoFloat32Array_DracoFloat32Array_0",{configurable:!0,set:function(){c("You are setting _emscripten_bind_DracoFloat32Array_DracoFloat32Array_0 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}})); -Object.getOwnPropertyDescriptor(a.ready,"_emscripten_bind_DracoFloat32Array_GetValue_1")||(Object.defineProperty(a.ready,"_emscripten_bind_DracoFloat32Array_GetValue_1",{configurable:!0,get:function(){c("You are getting _emscripten_bind_DracoFloat32Array_GetValue_1 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}),Object.defineProperty(a.ready,"_emscripten_bind_DracoFloat32Array_GetValue_1",{configurable:!0, -set:function(){c("You are setting _emscripten_bind_DracoFloat32Array_GetValue_1 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}));Object.getOwnPropertyDescriptor(a.ready,"_emscripten_bind_DracoFloat32Array_size_0")||(Object.defineProperty(a.ready,"_emscripten_bind_DracoFloat32Array_size_0",{configurable:!0,get:function(){c("You are getting _emscripten_bind_DracoFloat32Array_size_0 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}), -Object.defineProperty(a.ready,"_emscripten_bind_DracoFloat32Array_size_0",{configurable:!0,set:function(){c("You are setting _emscripten_bind_DracoFloat32Array_size_0 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}));Object.getOwnPropertyDescriptor(a.ready,"_emscripten_bind_DracoFloat32Array___destroy___0")||(Object.defineProperty(a.ready,"_emscripten_bind_DracoFloat32Array___destroy___0",{configurable:!0, -get:function(){c("You are getting _emscripten_bind_DracoFloat32Array___destroy___0 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}),Object.defineProperty(a.ready,"_emscripten_bind_DracoFloat32Array___destroy___0",{configurable:!0,set:function(){c("You are setting _emscripten_bind_DracoFloat32Array___destroy___0 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}})); -Object.getOwnPropertyDescriptor(a.ready,"_emscripten_bind_DracoInt8Array_DracoInt8Array_0")||(Object.defineProperty(a.ready,"_emscripten_bind_DracoInt8Array_DracoInt8Array_0",{configurable:!0,get:function(){c("You are getting _emscripten_bind_DracoInt8Array_DracoInt8Array_0 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}),Object.defineProperty(a.ready,"_emscripten_bind_DracoInt8Array_DracoInt8Array_0", -{configurable:!0,set:function(){c("You are setting _emscripten_bind_DracoInt8Array_DracoInt8Array_0 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}));Object.getOwnPropertyDescriptor(a.ready,"_emscripten_bind_DracoInt8Array_GetValue_1")||(Object.defineProperty(a.ready,"_emscripten_bind_DracoInt8Array_GetValue_1",{configurable:!0,get:function(){c("You are getting _emscripten_bind_DracoInt8Array_GetValue_1 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}), -Object.defineProperty(a.ready,"_emscripten_bind_DracoInt8Array_GetValue_1",{configurable:!0,set:function(){c("You are setting _emscripten_bind_DracoInt8Array_GetValue_1 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}));Object.getOwnPropertyDescriptor(a.ready,"_emscripten_bind_DracoInt8Array_size_0")||(Object.defineProperty(a.ready,"_emscripten_bind_DracoInt8Array_size_0",{configurable:!0,get:function(){c("You are getting _emscripten_bind_DracoInt8Array_size_0 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}), -Object.defineProperty(a.ready,"_emscripten_bind_DracoInt8Array_size_0",{configurable:!0,set:function(){c("You are setting _emscripten_bind_DracoInt8Array_size_0 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}));Object.getOwnPropertyDescriptor(a.ready,"_emscripten_bind_DracoInt8Array___destroy___0")||(Object.defineProperty(a.ready,"_emscripten_bind_DracoInt8Array___destroy___0",{configurable:!0,get:function(){c("You are getting _emscripten_bind_DracoInt8Array___destroy___0 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}), -Object.defineProperty(a.ready,"_emscripten_bind_DracoInt8Array___destroy___0",{configurable:!0,set:function(){c("You are setting _emscripten_bind_DracoInt8Array___destroy___0 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}));Object.getOwnPropertyDescriptor(a.ready,"_emscripten_bind_DracoUInt8Array_DracoUInt8Array_0")||(Object.defineProperty(a.ready,"_emscripten_bind_DracoUInt8Array_DracoUInt8Array_0", -{configurable:!0,get:function(){c("You are getting _emscripten_bind_DracoUInt8Array_DracoUInt8Array_0 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}),Object.defineProperty(a.ready,"_emscripten_bind_DracoUInt8Array_DracoUInt8Array_0",{configurable:!0,set:function(){c("You are setting _emscripten_bind_DracoUInt8Array_DracoUInt8Array_0 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}})); -Object.getOwnPropertyDescriptor(a.ready,"_emscripten_bind_DracoUInt8Array_GetValue_1")||(Object.defineProperty(a.ready,"_emscripten_bind_DracoUInt8Array_GetValue_1",{configurable:!0,get:function(){c("You are getting _emscripten_bind_DracoUInt8Array_GetValue_1 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}),Object.defineProperty(a.ready,"_emscripten_bind_DracoUInt8Array_GetValue_1",{configurable:!0,set:function(){c("You are setting _emscripten_bind_DracoUInt8Array_GetValue_1 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}})); -Object.getOwnPropertyDescriptor(a.ready,"_emscripten_bind_DracoUInt8Array_size_0")||(Object.defineProperty(a.ready,"_emscripten_bind_DracoUInt8Array_size_0",{configurable:!0,get:function(){c("You are getting _emscripten_bind_DracoUInt8Array_size_0 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}),Object.defineProperty(a.ready,"_emscripten_bind_DracoUInt8Array_size_0",{configurable:!0,set:function(){c("You are setting _emscripten_bind_DracoUInt8Array_size_0 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}})); -Object.getOwnPropertyDescriptor(a.ready,"_emscripten_bind_DracoUInt8Array___destroy___0")||(Object.defineProperty(a.ready,"_emscripten_bind_DracoUInt8Array___destroy___0",{configurable:!0,get:function(){c("You are getting _emscripten_bind_DracoUInt8Array___destroy___0 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}),Object.defineProperty(a.ready,"_emscripten_bind_DracoUInt8Array___destroy___0",{configurable:!0, -set:function(){c("You are setting _emscripten_bind_DracoUInt8Array___destroy___0 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}));Object.getOwnPropertyDescriptor(a.ready,"_emscripten_bind_DracoInt16Array_DracoInt16Array_0")||(Object.defineProperty(a.ready,"_emscripten_bind_DracoInt16Array_DracoInt16Array_0",{configurable:!0,get:function(){c("You are getting _emscripten_bind_DracoInt16Array_DracoInt16Array_0 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}), -Object.defineProperty(a.ready,"_emscripten_bind_DracoInt16Array_DracoInt16Array_0",{configurable:!0,set:function(){c("You are setting _emscripten_bind_DracoInt16Array_DracoInt16Array_0 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}));Object.getOwnPropertyDescriptor(a.ready,"_emscripten_bind_DracoInt16Array_GetValue_1")||(Object.defineProperty(a.ready,"_emscripten_bind_DracoInt16Array_GetValue_1",{configurable:!0, -get:function(){c("You are getting _emscripten_bind_DracoInt16Array_GetValue_1 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}),Object.defineProperty(a.ready,"_emscripten_bind_DracoInt16Array_GetValue_1",{configurable:!0,set:function(){c("You are setting _emscripten_bind_DracoInt16Array_GetValue_1 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}})); -Object.getOwnPropertyDescriptor(a.ready,"_emscripten_bind_DracoInt16Array_size_0")||(Object.defineProperty(a.ready,"_emscripten_bind_DracoInt16Array_size_0",{configurable:!0,get:function(){c("You are getting _emscripten_bind_DracoInt16Array_size_0 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}),Object.defineProperty(a.ready,"_emscripten_bind_DracoInt16Array_size_0",{configurable:!0,set:function(){c("You are setting _emscripten_bind_DracoInt16Array_size_0 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}})); -Object.getOwnPropertyDescriptor(a.ready,"_emscripten_bind_DracoInt16Array___destroy___0")||(Object.defineProperty(a.ready,"_emscripten_bind_DracoInt16Array___destroy___0",{configurable:!0,get:function(){c("You are getting _emscripten_bind_DracoInt16Array___destroy___0 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}),Object.defineProperty(a.ready,"_emscripten_bind_DracoInt16Array___destroy___0",{configurable:!0, -set:function(){c("You are setting _emscripten_bind_DracoInt16Array___destroy___0 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}));Object.getOwnPropertyDescriptor(a.ready,"_emscripten_bind_DracoUInt16Array_DracoUInt16Array_0")||(Object.defineProperty(a.ready,"_emscripten_bind_DracoUInt16Array_DracoUInt16Array_0",{configurable:!0,get:function(){c("You are getting _emscripten_bind_DracoUInt16Array_DracoUInt16Array_0 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}), -Object.defineProperty(a.ready,"_emscripten_bind_DracoUInt16Array_DracoUInt16Array_0",{configurable:!0,set:function(){c("You are setting _emscripten_bind_DracoUInt16Array_DracoUInt16Array_0 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}));Object.getOwnPropertyDescriptor(a.ready,"_emscripten_bind_DracoUInt16Array_GetValue_1")||(Object.defineProperty(a.ready,"_emscripten_bind_DracoUInt16Array_GetValue_1", -{configurable:!0,get:function(){c("You are getting _emscripten_bind_DracoUInt16Array_GetValue_1 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}),Object.defineProperty(a.ready,"_emscripten_bind_DracoUInt16Array_GetValue_1",{configurable:!0,set:function(){c("You are setting _emscripten_bind_DracoUInt16Array_GetValue_1 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}})); -Object.getOwnPropertyDescriptor(a.ready,"_emscripten_bind_DracoUInt16Array_size_0")||(Object.defineProperty(a.ready,"_emscripten_bind_DracoUInt16Array_size_0",{configurable:!0,get:function(){c("You are getting _emscripten_bind_DracoUInt16Array_size_0 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}),Object.defineProperty(a.ready,"_emscripten_bind_DracoUInt16Array_size_0",{configurable:!0,set:function(){c("You are setting _emscripten_bind_DracoUInt16Array_size_0 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}})); -Object.getOwnPropertyDescriptor(a.ready,"_emscripten_bind_DracoUInt16Array___destroy___0")||(Object.defineProperty(a.ready,"_emscripten_bind_DracoUInt16Array___destroy___0",{configurable:!0,get:function(){c("You are getting _emscripten_bind_DracoUInt16Array___destroy___0 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}),Object.defineProperty(a.ready,"_emscripten_bind_DracoUInt16Array___destroy___0",{configurable:!0, -set:function(){c("You are setting _emscripten_bind_DracoUInt16Array___destroy___0 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}));Object.getOwnPropertyDescriptor(a.ready,"_emscripten_bind_DracoInt32Array_DracoInt32Array_0")||(Object.defineProperty(a.ready,"_emscripten_bind_DracoInt32Array_DracoInt32Array_0",{configurable:!0,get:function(){c("You are getting _emscripten_bind_DracoInt32Array_DracoInt32Array_0 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}), -Object.defineProperty(a.ready,"_emscripten_bind_DracoInt32Array_DracoInt32Array_0",{configurable:!0,set:function(){c("You are setting _emscripten_bind_DracoInt32Array_DracoInt32Array_0 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}));Object.getOwnPropertyDescriptor(a.ready,"_emscripten_bind_DracoInt32Array_GetValue_1")||(Object.defineProperty(a.ready,"_emscripten_bind_DracoInt32Array_GetValue_1",{configurable:!0, -get:function(){c("You are getting _emscripten_bind_DracoInt32Array_GetValue_1 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}),Object.defineProperty(a.ready,"_emscripten_bind_DracoInt32Array_GetValue_1",{configurable:!0,set:function(){c("You are setting _emscripten_bind_DracoInt32Array_GetValue_1 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}})); -Object.getOwnPropertyDescriptor(a.ready,"_emscripten_bind_DracoInt32Array_size_0")||(Object.defineProperty(a.ready,"_emscripten_bind_DracoInt32Array_size_0",{configurable:!0,get:function(){c("You are getting _emscripten_bind_DracoInt32Array_size_0 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}),Object.defineProperty(a.ready,"_emscripten_bind_DracoInt32Array_size_0",{configurable:!0,set:function(){c("You are setting _emscripten_bind_DracoInt32Array_size_0 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}})); -Object.getOwnPropertyDescriptor(a.ready,"_emscripten_bind_DracoInt32Array___destroy___0")||(Object.defineProperty(a.ready,"_emscripten_bind_DracoInt32Array___destroy___0",{configurable:!0,get:function(){c("You are getting _emscripten_bind_DracoInt32Array___destroy___0 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}),Object.defineProperty(a.ready,"_emscripten_bind_DracoInt32Array___destroy___0",{configurable:!0, -set:function(){c("You are setting _emscripten_bind_DracoInt32Array___destroy___0 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}));Object.getOwnPropertyDescriptor(a.ready,"_emscripten_bind_DracoUInt32Array_DracoUInt32Array_0")||(Object.defineProperty(a.ready,"_emscripten_bind_DracoUInt32Array_DracoUInt32Array_0",{configurable:!0,get:function(){c("You are getting _emscripten_bind_DracoUInt32Array_DracoUInt32Array_0 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}), -Object.defineProperty(a.ready,"_emscripten_bind_DracoUInt32Array_DracoUInt32Array_0",{configurable:!0,set:function(){c("You are setting _emscripten_bind_DracoUInt32Array_DracoUInt32Array_0 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}));Object.getOwnPropertyDescriptor(a.ready,"_emscripten_bind_DracoUInt32Array_GetValue_1")||(Object.defineProperty(a.ready,"_emscripten_bind_DracoUInt32Array_GetValue_1", -{configurable:!0,get:function(){c("You are getting _emscripten_bind_DracoUInt32Array_GetValue_1 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}),Object.defineProperty(a.ready,"_emscripten_bind_DracoUInt32Array_GetValue_1",{configurable:!0,set:function(){c("You are setting _emscripten_bind_DracoUInt32Array_GetValue_1 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}})); -Object.getOwnPropertyDescriptor(a.ready,"_emscripten_bind_DracoUInt32Array_size_0")||(Object.defineProperty(a.ready,"_emscripten_bind_DracoUInt32Array_size_0",{configurable:!0,get:function(){c("You are getting _emscripten_bind_DracoUInt32Array_size_0 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}),Object.defineProperty(a.ready,"_emscripten_bind_DracoUInt32Array_size_0",{configurable:!0,set:function(){c("You are setting _emscripten_bind_DracoUInt32Array_size_0 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}})); -Object.getOwnPropertyDescriptor(a.ready,"_emscripten_bind_DracoUInt32Array___destroy___0")||(Object.defineProperty(a.ready,"_emscripten_bind_DracoUInt32Array___destroy___0",{configurable:!0,get:function(){c("You are getting _emscripten_bind_DracoUInt32Array___destroy___0 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}),Object.defineProperty(a.ready,"_emscripten_bind_DracoUInt32Array___destroy___0",{configurable:!0, -set:function(){c("You are setting _emscripten_bind_DracoUInt32Array___destroy___0 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}));Object.getOwnPropertyDescriptor(a.ready,"_emscripten_bind_MetadataQuerier_MetadataQuerier_0")||(Object.defineProperty(a.ready,"_emscripten_bind_MetadataQuerier_MetadataQuerier_0",{configurable:!0,get:function(){c("You are getting _emscripten_bind_MetadataQuerier_MetadataQuerier_0 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}), -Object.defineProperty(a.ready,"_emscripten_bind_MetadataQuerier_MetadataQuerier_0",{configurable:!0,set:function(){c("You are setting _emscripten_bind_MetadataQuerier_MetadataQuerier_0 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}));Object.getOwnPropertyDescriptor(a.ready,"_emscripten_bind_MetadataQuerier_HasEntry_2")||(Object.defineProperty(a.ready,"_emscripten_bind_MetadataQuerier_HasEntry_2",{configurable:!0, -get:function(){c("You are getting _emscripten_bind_MetadataQuerier_HasEntry_2 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}),Object.defineProperty(a.ready,"_emscripten_bind_MetadataQuerier_HasEntry_2",{configurable:!0,set:function(){c("You are setting _emscripten_bind_MetadataQuerier_HasEntry_2 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}})); -Object.getOwnPropertyDescriptor(a.ready,"_emscripten_bind_MetadataQuerier_GetIntEntry_2")||(Object.defineProperty(a.ready,"_emscripten_bind_MetadataQuerier_GetIntEntry_2",{configurable:!0,get:function(){c("You are getting _emscripten_bind_MetadataQuerier_GetIntEntry_2 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}),Object.defineProperty(a.ready,"_emscripten_bind_MetadataQuerier_GetIntEntry_2",{configurable:!0, -set:function(){c("You are setting _emscripten_bind_MetadataQuerier_GetIntEntry_2 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}));Object.getOwnPropertyDescriptor(a.ready,"_emscripten_bind_MetadataQuerier_GetIntEntryArray_3")||(Object.defineProperty(a.ready,"_emscripten_bind_MetadataQuerier_GetIntEntryArray_3",{configurable:!0,get:function(){c("You are getting _emscripten_bind_MetadataQuerier_GetIntEntryArray_3 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}), -Object.defineProperty(a.ready,"_emscripten_bind_MetadataQuerier_GetIntEntryArray_3",{configurable:!0,set:function(){c("You are setting _emscripten_bind_MetadataQuerier_GetIntEntryArray_3 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}));Object.getOwnPropertyDescriptor(a.ready,"_emscripten_bind_MetadataQuerier_GetDoubleEntry_2")||(Object.defineProperty(a.ready,"_emscripten_bind_MetadataQuerier_GetDoubleEntry_2", -{configurable:!0,get:function(){c("You are getting _emscripten_bind_MetadataQuerier_GetDoubleEntry_2 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}),Object.defineProperty(a.ready,"_emscripten_bind_MetadataQuerier_GetDoubleEntry_2",{configurable:!0,set:function(){c("You are setting _emscripten_bind_MetadataQuerier_GetDoubleEntry_2 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}})); -Object.getOwnPropertyDescriptor(a.ready,"_emscripten_bind_MetadataQuerier_GetStringEntry_2")||(Object.defineProperty(a.ready,"_emscripten_bind_MetadataQuerier_GetStringEntry_2",{configurable:!0,get:function(){c("You are getting _emscripten_bind_MetadataQuerier_GetStringEntry_2 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}),Object.defineProperty(a.ready,"_emscripten_bind_MetadataQuerier_GetStringEntry_2", -{configurable:!0,set:function(){c("You are setting _emscripten_bind_MetadataQuerier_GetStringEntry_2 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}));Object.getOwnPropertyDescriptor(a.ready,"_emscripten_bind_MetadataQuerier_NumEntries_1")||(Object.defineProperty(a.ready,"_emscripten_bind_MetadataQuerier_NumEntries_1",{configurable:!0,get:function(){c("You are getting _emscripten_bind_MetadataQuerier_NumEntries_1 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}), -Object.defineProperty(a.ready,"_emscripten_bind_MetadataQuerier_NumEntries_1",{configurable:!0,set:function(){c("You are setting _emscripten_bind_MetadataQuerier_NumEntries_1 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}));Object.getOwnPropertyDescriptor(a.ready,"_emscripten_bind_MetadataQuerier_GetEntryName_2")||(Object.defineProperty(a.ready,"_emscripten_bind_MetadataQuerier_GetEntryName_2",{configurable:!0, -get:function(){c("You are getting _emscripten_bind_MetadataQuerier_GetEntryName_2 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}),Object.defineProperty(a.ready,"_emscripten_bind_MetadataQuerier_GetEntryName_2",{configurable:!0,set:function(){c("You are setting _emscripten_bind_MetadataQuerier_GetEntryName_2 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}})); -Object.getOwnPropertyDescriptor(a.ready,"_emscripten_bind_MetadataQuerier___destroy___0")||(Object.defineProperty(a.ready,"_emscripten_bind_MetadataQuerier___destroy___0",{configurable:!0,get:function(){c("You are getting _emscripten_bind_MetadataQuerier___destroy___0 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}),Object.defineProperty(a.ready,"_emscripten_bind_MetadataQuerier___destroy___0",{configurable:!0, -set:function(){c("You are setting _emscripten_bind_MetadataQuerier___destroy___0 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}));Object.getOwnPropertyDescriptor(a.ready,"_emscripten_bind_Decoder_Decoder_0")||(Object.defineProperty(a.ready,"_emscripten_bind_Decoder_Decoder_0",{configurable:!0,get:function(){c("You are getting _emscripten_bind_Decoder_Decoder_0 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}), -Object.defineProperty(a.ready,"_emscripten_bind_Decoder_Decoder_0",{configurable:!0,set:function(){c("You are setting _emscripten_bind_Decoder_Decoder_0 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}));Object.getOwnPropertyDescriptor(a.ready,"_emscripten_bind_Decoder_DecodeArrayToPointCloud_3")||(Object.defineProperty(a.ready,"_emscripten_bind_Decoder_DecodeArrayToPointCloud_3",{configurable:!0,get:function(){c("You are getting _emscripten_bind_Decoder_DecodeArrayToPointCloud_3 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}), -Object.defineProperty(a.ready,"_emscripten_bind_Decoder_DecodeArrayToPointCloud_3",{configurable:!0,set:function(){c("You are setting _emscripten_bind_Decoder_DecodeArrayToPointCloud_3 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}));Object.getOwnPropertyDescriptor(a.ready,"_emscripten_bind_Decoder_DecodeArrayToMesh_3")||(Object.defineProperty(a.ready,"_emscripten_bind_Decoder_DecodeArrayToMesh_3",{configurable:!0, -get:function(){c("You are getting _emscripten_bind_Decoder_DecodeArrayToMesh_3 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}),Object.defineProperty(a.ready,"_emscripten_bind_Decoder_DecodeArrayToMesh_3",{configurable:!0,set:function(){c("You are setting _emscripten_bind_Decoder_DecodeArrayToMesh_3 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}})); -Object.getOwnPropertyDescriptor(a.ready,"_emscripten_bind_Decoder_GetAttributeId_2")||(Object.defineProperty(a.ready,"_emscripten_bind_Decoder_GetAttributeId_2",{configurable:!0,get:function(){c("You are getting _emscripten_bind_Decoder_GetAttributeId_2 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}),Object.defineProperty(a.ready,"_emscripten_bind_Decoder_GetAttributeId_2",{configurable:!0,set:function(){c("You are setting _emscripten_bind_Decoder_GetAttributeId_2 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}})); -Object.getOwnPropertyDescriptor(a.ready,"_emscripten_bind_Decoder_GetAttributeIdByName_2")||(Object.defineProperty(a.ready,"_emscripten_bind_Decoder_GetAttributeIdByName_2",{configurable:!0,get:function(){c("You are getting _emscripten_bind_Decoder_GetAttributeIdByName_2 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}),Object.defineProperty(a.ready,"_emscripten_bind_Decoder_GetAttributeIdByName_2",{configurable:!0, -set:function(){c("You are setting _emscripten_bind_Decoder_GetAttributeIdByName_2 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}));Object.getOwnPropertyDescriptor(a.ready,"_emscripten_bind_Decoder_GetAttributeIdByMetadataEntry_3")||(Object.defineProperty(a.ready,"_emscripten_bind_Decoder_GetAttributeIdByMetadataEntry_3",{configurable:!0,get:function(){c("You are getting _emscripten_bind_Decoder_GetAttributeIdByMetadataEntry_3 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}), -Object.defineProperty(a.ready,"_emscripten_bind_Decoder_GetAttributeIdByMetadataEntry_3",{configurable:!0,set:function(){c("You are setting _emscripten_bind_Decoder_GetAttributeIdByMetadataEntry_3 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}));Object.getOwnPropertyDescriptor(a.ready,"_emscripten_bind_Decoder_GetAttribute_2")||(Object.defineProperty(a.ready,"_emscripten_bind_Decoder_GetAttribute_2", -{configurable:!0,get:function(){c("You are getting _emscripten_bind_Decoder_GetAttribute_2 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}),Object.defineProperty(a.ready,"_emscripten_bind_Decoder_GetAttribute_2",{configurable:!0,set:function(){c("You are setting _emscripten_bind_Decoder_GetAttribute_2 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}})); -Object.getOwnPropertyDescriptor(a.ready,"_emscripten_bind_Decoder_GetAttributeByUniqueId_2")||(Object.defineProperty(a.ready,"_emscripten_bind_Decoder_GetAttributeByUniqueId_2",{configurable:!0,get:function(){c("You are getting _emscripten_bind_Decoder_GetAttributeByUniqueId_2 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}),Object.defineProperty(a.ready,"_emscripten_bind_Decoder_GetAttributeByUniqueId_2", -{configurable:!0,set:function(){c("You are setting _emscripten_bind_Decoder_GetAttributeByUniqueId_2 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}));Object.getOwnPropertyDescriptor(a.ready,"_emscripten_bind_Decoder_GetMetadata_1")||(Object.defineProperty(a.ready,"_emscripten_bind_Decoder_GetMetadata_1",{configurable:!0,get:function(){c("You are getting _emscripten_bind_Decoder_GetMetadata_1 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}), -Object.defineProperty(a.ready,"_emscripten_bind_Decoder_GetMetadata_1",{configurable:!0,set:function(){c("You are setting _emscripten_bind_Decoder_GetMetadata_1 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}));Object.getOwnPropertyDescriptor(a.ready,"_emscripten_bind_Decoder_GetAttributeMetadata_2")||(Object.defineProperty(a.ready,"_emscripten_bind_Decoder_GetAttributeMetadata_2",{configurable:!0,get:function(){c("You are getting _emscripten_bind_Decoder_GetAttributeMetadata_2 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}), -Object.defineProperty(a.ready,"_emscripten_bind_Decoder_GetAttributeMetadata_2",{configurable:!0,set:function(){c("You are setting _emscripten_bind_Decoder_GetAttributeMetadata_2 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}));Object.getOwnPropertyDescriptor(a.ready,"_emscripten_bind_Decoder_GetFaceFromMesh_3")||(Object.defineProperty(a.ready,"_emscripten_bind_Decoder_GetFaceFromMesh_3",{configurable:!0, -get:function(){c("You are getting _emscripten_bind_Decoder_GetFaceFromMesh_3 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}),Object.defineProperty(a.ready,"_emscripten_bind_Decoder_GetFaceFromMesh_3",{configurable:!0,set:function(){c("You are setting _emscripten_bind_Decoder_GetFaceFromMesh_3 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}})); -Object.getOwnPropertyDescriptor(a.ready,"_emscripten_bind_Decoder_GetTriangleStripsFromMesh_2")||(Object.defineProperty(a.ready,"_emscripten_bind_Decoder_GetTriangleStripsFromMesh_2",{configurable:!0,get:function(){c("You are getting _emscripten_bind_Decoder_GetTriangleStripsFromMesh_2 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}),Object.defineProperty(a.ready,"_emscripten_bind_Decoder_GetTriangleStripsFromMesh_2", -{configurable:!0,set:function(){c("You are setting _emscripten_bind_Decoder_GetTriangleStripsFromMesh_2 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}));Object.getOwnPropertyDescriptor(a.ready,"_emscripten_bind_Decoder_GetTrianglesUInt16Array_3")||(Object.defineProperty(a.ready,"_emscripten_bind_Decoder_GetTrianglesUInt16Array_3",{configurable:!0,get:function(){c("You are getting _emscripten_bind_Decoder_GetTrianglesUInt16Array_3 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}), -Object.defineProperty(a.ready,"_emscripten_bind_Decoder_GetTrianglesUInt16Array_3",{configurable:!0,set:function(){c("You are setting _emscripten_bind_Decoder_GetTrianglesUInt16Array_3 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}));Object.getOwnPropertyDescriptor(a.ready,"_emscripten_bind_Decoder_GetTrianglesUInt32Array_3")||(Object.defineProperty(a.ready,"_emscripten_bind_Decoder_GetTrianglesUInt32Array_3", -{configurable:!0,get:function(){c("You are getting _emscripten_bind_Decoder_GetTrianglesUInt32Array_3 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}),Object.defineProperty(a.ready,"_emscripten_bind_Decoder_GetTrianglesUInt32Array_3",{configurable:!0,set:function(){c("You are setting _emscripten_bind_Decoder_GetTrianglesUInt32Array_3 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}})); -Object.getOwnPropertyDescriptor(a.ready,"_emscripten_bind_Decoder_GetAttributeFloat_3")||(Object.defineProperty(a.ready,"_emscripten_bind_Decoder_GetAttributeFloat_3",{configurable:!0,get:function(){c("You are getting _emscripten_bind_Decoder_GetAttributeFloat_3 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}),Object.defineProperty(a.ready,"_emscripten_bind_Decoder_GetAttributeFloat_3",{configurable:!0, -set:function(){c("You are setting _emscripten_bind_Decoder_GetAttributeFloat_3 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}));Object.getOwnPropertyDescriptor(a.ready,"_emscripten_bind_Decoder_GetAttributeFloatForAllPoints_3")||(Object.defineProperty(a.ready,"_emscripten_bind_Decoder_GetAttributeFloatForAllPoints_3",{configurable:!0,get:function(){c("You are getting _emscripten_bind_Decoder_GetAttributeFloatForAllPoints_3 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}), -Object.defineProperty(a.ready,"_emscripten_bind_Decoder_GetAttributeFloatForAllPoints_3",{configurable:!0,set:function(){c("You are setting _emscripten_bind_Decoder_GetAttributeFloatForAllPoints_3 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}));Object.getOwnPropertyDescriptor(a.ready,"_emscripten_bind_Decoder_GetAttributeIntForAllPoints_3")||(Object.defineProperty(a.ready,"_emscripten_bind_Decoder_GetAttributeIntForAllPoints_3", -{configurable:!0,get:function(){c("You are getting _emscripten_bind_Decoder_GetAttributeIntForAllPoints_3 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}),Object.defineProperty(a.ready,"_emscripten_bind_Decoder_GetAttributeIntForAllPoints_3",{configurable:!0,set:function(){c("You are setting _emscripten_bind_Decoder_GetAttributeIntForAllPoints_3 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}})); -Object.getOwnPropertyDescriptor(a.ready,"_emscripten_bind_Decoder_GetAttributeInt8ForAllPoints_3")||(Object.defineProperty(a.ready,"_emscripten_bind_Decoder_GetAttributeInt8ForAllPoints_3",{configurable:!0,get:function(){c("You are getting _emscripten_bind_Decoder_GetAttributeInt8ForAllPoints_3 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}),Object.defineProperty(a.ready,"_emscripten_bind_Decoder_GetAttributeInt8ForAllPoints_3", -{configurable:!0,set:function(){c("You are setting _emscripten_bind_Decoder_GetAttributeInt8ForAllPoints_3 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}));Object.getOwnPropertyDescriptor(a.ready,"_emscripten_bind_Decoder_GetAttributeUInt8ForAllPoints_3")||(Object.defineProperty(a.ready,"_emscripten_bind_Decoder_GetAttributeUInt8ForAllPoints_3",{configurable:!0,get:function(){c("You are getting _emscripten_bind_Decoder_GetAttributeUInt8ForAllPoints_3 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}), -Object.defineProperty(a.ready,"_emscripten_bind_Decoder_GetAttributeUInt8ForAllPoints_3",{configurable:!0,set:function(){c("You are setting _emscripten_bind_Decoder_GetAttributeUInt8ForAllPoints_3 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}));Object.getOwnPropertyDescriptor(a.ready,"_emscripten_bind_Decoder_GetAttributeInt16ForAllPoints_3")||(Object.defineProperty(a.ready,"_emscripten_bind_Decoder_GetAttributeInt16ForAllPoints_3", -{configurable:!0,get:function(){c("You are getting _emscripten_bind_Decoder_GetAttributeInt16ForAllPoints_3 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}),Object.defineProperty(a.ready,"_emscripten_bind_Decoder_GetAttributeInt16ForAllPoints_3",{configurable:!0,set:function(){c("You are setting _emscripten_bind_Decoder_GetAttributeInt16ForAllPoints_3 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}})); -Object.getOwnPropertyDescriptor(a.ready,"_emscripten_bind_Decoder_GetAttributeUInt16ForAllPoints_3")||(Object.defineProperty(a.ready,"_emscripten_bind_Decoder_GetAttributeUInt16ForAllPoints_3",{configurable:!0,get:function(){c("You are getting _emscripten_bind_Decoder_GetAttributeUInt16ForAllPoints_3 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}),Object.defineProperty(a.ready,"_emscripten_bind_Decoder_GetAttributeUInt16ForAllPoints_3", -{configurable:!0,set:function(){c("You are setting _emscripten_bind_Decoder_GetAttributeUInt16ForAllPoints_3 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}));Object.getOwnPropertyDescriptor(a.ready,"_emscripten_bind_Decoder_GetAttributeInt32ForAllPoints_3")||(Object.defineProperty(a.ready,"_emscripten_bind_Decoder_GetAttributeInt32ForAllPoints_3",{configurable:!0,get:function(){c("You are getting _emscripten_bind_Decoder_GetAttributeInt32ForAllPoints_3 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}), -Object.defineProperty(a.ready,"_emscripten_bind_Decoder_GetAttributeInt32ForAllPoints_3",{configurable:!0,set:function(){c("You are setting _emscripten_bind_Decoder_GetAttributeInt32ForAllPoints_3 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}));Object.getOwnPropertyDescriptor(a.ready,"_emscripten_bind_Decoder_GetAttributeUInt32ForAllPoints_3")||(Object.defineProperty(a.ready,"_emscripten_bind_Decoder_GetAttributeUInt32ForAllPoints_3", -{configurable:!0,get:function(){c("You are getting _emscripten_bind_Decoder_GetAttributeUInt32ForAllPoints_3 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}),Object.defineProperty(a.ready,"_emscripten_bind_Decoder_GetAttributeUInt32ForAllPoints_3",{configurable:!0,set:function(){c("You are setting _emscripten_bind_Decoder_GetAttributeUInt32ForAllPoints_3 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}})); -Object.getOwnPropertyDescriptor(a.ready,"_emscripten_bind_Decoder_GetAttributeDataArrayForAllPoints_5")||(Object.defineProperty(a.ready,"_emscripten_bind_Decoder_GetAttributeDataArrayForAllPoints_5",{configurable:!0,get:function(){c("You are getting _emscripten_bind_Decoder_GetAttributeDataArrayForAllPoints_5 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}),Object.defineProperty(a.ready,"_emscripten_bind_Decoder_GetAttributeDataArrayForAllPoints_5", -{configurable:!0,set:function(){c("You are setting _emscripten_bind_Decoder_GetAttributeDataArrayForAllPoints_5 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}));Object.getOwnPropertyDescriptor(a.ready,"_emscripten_bind_Decoder_SkipAttributeTransform_1")||(Object.defineProperty(a.ready,"_emscripten_bind_Decoder_SkipAttributeTransform_1",{configurable:!0,get:function(){c("You are getting _emscripten_bind_Decoder_SkipAttributeTransform_1 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}), -Object.defineProperty(a.ready,"_emscripten_bind_Decoder_SkipAttributeTransform_1",{configurable:!0,set:function(){c("You are setting _emscripten_bind_Decoder_SkipAttributeTransform_1 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}));Object.getOwnPropertyDescriptor(a.ready,"_emscripten_bind_Decoder_GetEncodedGeometryType_Deprecated_1")||(Object.defineProperty(a.ready,"_emscripten_bind_Decoder_GetEncodedGeometryType_Deprecated_1", -{configurable:!0,get:function(){c("You are getting _emscripten_bind_Decoder_GetEncodedGeometryType_Deprecated_1 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}),Object.defineProperty(a.ready,"_emscripten_bind_Decoder_GetEncodedGeometryType_Deprecated_1",{configurable:!0,set:function(){c("You are setting _emscripten_bind_Decoder_GetEncodedGeometryType_Deprecated_1 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}})); -Object.getOwnPropertyDescriptor(a.ready,"_emscripten_bind_Decoder_DecodeBufferToPointCloud_2")||(Object.defineProperty(a.ready,"_emscripten_bind_Decoder_DecodeBufferToPointCloud_2",{configurable:!0,get:function(){c("You are getting _emscripten_bind_Decoder_DecodeBufferToPointCloud_2 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}),Object.defineProperty(a.ready,"_emscripten_bind_Decoder_DecodeBufferToPointCloud_2", -{configurable:!0,set:function(){c("You are setting _emscripten_bind_Decoder_DecodeBufferToPointCloud_2 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}));Object.getOwnPropertyDescriptor(a.ready,"_emscripten_bind_Decoder_DecodeBufferToMesh_2")||(Object.defineProperty(a.ready,"_emscripten_bind_Decoder_DecodeBufferToMesh_2",{configurable:!0,get:function(){c("You are getting _emscripten_bind_Decoder_DecodeBufferToMesh_2 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}), -Object.defineProperty(a.ready,"_emscripten_bind_Decoder_DecodeBufferToMesh_2",{configurable:!0,set:function(){c("You are setting _emscripten_bind_Decoder_DecodeBufferToMesh_2 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}));Object.getOwnPropertyDescriptor(a.ready,"_emscripten_bind_Decoder___destroy___0")||(Object.defineProperty(a.ready,"_emscripten_bind_Decoder___destroy___0",{configurable:!0,get:function(){c("You are getting _emscripten_bind_Decoder___destroy___0 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}), -Object.defineProperty(a.ready,"_emscripten_bind_Decoder___destroy___0",{configurable:!0,set:function(){c("You are setting _emscripten_bind_Decoder___destroy___0 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}));Object.getOwnPropertyDescriptor(a.ready,"_emscripten_enum_draco_AttributeTransformType_ATTRIBUTE_INVALID_TRANSFORM")||(Object.defineProperty(a.ready,"_emscripten_enum_draco_AttributeTransformType_ATTRIBUTE_INVALID_TRANSFORM", -{configurable:!0,get:function(){c("You are getting _emscripten_enum_draco_AttributeTransformType_ATTRIBUTE_INVALID_TRANSFORM on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}),Object.defineProperty(a.ready,"_emscripten_enum_draco_AttributeTransformType_ATTRIBUTE_INVALID_TRANSFORM",{configurable:!0,set:function(){c("You are setting _emscripten_enum_draco_AttributeTransformType_ATTRIBUTE_INVALID_TRANSFORM on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}})); -Object.getOwnPropertyDescriptor(a.ready,"_emscripten_enum_draco_AttributeTransformType_ATTRIBUTE_NO_TRANSFORM")||(Object.defineProperty(a.ready,"_emscripten_enum_draco_AttributeTransformType_ATTRIBUTE_NO_TRANSFORM",{configurable:!0,get:function(){c("You are getting _emscripten_enum_draco_AttributeTransformType_ATTRIBUTE_NO_TRANSFORM on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}),Object.defineProperty(a.ready, -"_emscripten_enum_draco_AttributeTransformType_ATTRIBUTE_NO_TRANSFORM",{configurable:!0,set:function(){c("You are setting _emscripten_enum_draco_AttributeTransformType_ATTRIBUTE_NO_TRANSFORM on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}));Object.getOwnPropertyDescriptor(a.ready,"_emscripten_enum_draco_AttributeTransformType_ATTRIBUTE_QUANTIZATION_TRANSFORM")||(Object.defineProperty(a.ready,"_emscripten_enum_draco_AttributeTransformType_ATTRIBUTE_QUANTIZATION_TRANSFORM", -{configurable:!0,get:function(){c("You are getting _emscripten_enum_draco_AttributeTransformType_ATTRIBUTE_QUANTIZATION_TRANSFORM on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}),Object.defineProperty(a.ready,"_emscripten_enum_draco_AttributeTransformType_ATTRIBUTE_QUANTIZATION_TRANSFORM",{configurable:!0,set:function(){c("You are setting _emscripten_enum_draco_AttributeTransformType_ATTRIBUTE_QUANTIZATION_TRANSFORM on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}})); -Object.getOwnPropertyDescriptor(a.ready,"_emscripten_enum_draco_AttributeTransformType_ATTRIBUTE_OCTAHEDRON_TRANSFORM")||(Object.defineProperty(a.ready,"_emscripten_enum_draco_AttributeTransformType_ATTRIBUTE_OCTAHEDRON_TRANSFORM",{configurable:!0,get:function(){c("You are getting _emscripten_enum_draco_AttributeTransformType_ATTRIBUTE_OCTAHEDRON_TRANSFORM on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}), -Object.defineProperty(a.ready,"_emscripten_enum_draco_AttributeTransformType_ATTRIBUTE_OCTAHEDRON_TRANSFORM",{configurable:!0,set:function(){c("You are setting _emscripten_enum_draco_AttributeTransformType_ATTRIBUTE_OCTAHEDRON_TRANSFORM on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}));Object.getOwnPropertyDescriptor(a.ready,"_emscripten_enum_draco_GeometryAttribute_Type_INVALID")||(Object.defineProperty(a.ready, -"_emscripten_enum_draco_GeometryAttribute_Type_INVALID",{configurable:!0,get:function(){c("You are getting _emscripten_enum_draco_GeometryAttribute_Type_INVALID on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}),Object.defineProperty(a.ready,"_emscripten_enum_draco_GeometryAttribute_Type_INVALID",{configurable:!0,set:function(){c("You are setting _emscripten_enum_draco_GeometryAttribute_Type_INVALID on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}})); -Object.getOwnPropertyDescriptor(a.ready,"_emscripten_enum_draco_GeometryAttribute_Type_POSITION")||(Object.defineProperty(a.ready,"_emscripten_enum_draco_GeometryAttribute_Type_POSITION",{configurable:!0,get:function(){c("You are getting _emscripten_enum_draco_GeometryAttribute_Type_POSITION on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}),Object.defineProperty(a.ready,"_emscripten_enum_draco_GeometryAttribute_Type_POSITION", -{configurable:!0,set:function(){c("You are setting _emscripten_enum_draco_GeometryAttribute_Type_POSITION on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}));Object.getOwnPropertyDescriptor(a.ready,"_emscripten_enum_draco_GeometryAttribute_Type_NORMAL")||(Object.defineProperty(a.ready,"_emscripten_enum_draco_GeometryAttribute_Type_NORMAL",{configurable:!0,get:function(){c("You are getting _emscripten_enum_draco_GeometryAttribute_Type_NORMAL on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}), -Object.defineProperty(a.ready,"_emscripten_enum_draco_GeometryAttribute_Type_NORMAL",{configurable:!0,set:function(){c("You are setting _emscripten_enum_draco_GeometryAttribute_Type_NORMAL on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}));Object.getOwnPropertyDescriptor(a.ready,"_emscripten_enum_draco_GeometryAttribute_Type_COLOR")||(Object.defineProperty(a.ready,"_emscripten_enum_draco_GeometryAttribute_Type_COLOR", -{configurable:!0,get:function(){c("You are getting _emscripten_enum_draco_GeometryAttribute_Type_COLOR on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}),Object.defineProperty(a.ready,"_emscripten_enum_draco_GeometryAttribute_Type_COLOR",{configurable:!0,set:function(){c("You are setting _emscripten_enum_draco_GeometryAttribute_Type_COLOR on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}})); -Object.getOwnPropertyDescriptor(a.ready,"_emscripten_enum_draco_GeometryAttribute_Type_TEX_COORD")||(Object.defineProperty(a.ready,"_emscripten_enum_draco_GeometryAttribute_Type_TEX_COORD",{configurable:!0,get:function(){c("You are getting _emscripten_enum_draco_GeometryAttribute_Type_TEX_COORD on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}),Object.defineProperty(a.ready,"_emscripten_enum_draco_GeometryAttribute_Type_TEX_COORD", -{configurable:!0,set:function(){c("You are setting _emscripten_enum_draco_GeometryAttribute_Type_TEX_COORD on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}));Object.getOwnPropertyDescriptor(a.ready,"_emscripten_enum_draco_GeometryAttribute_Type_GENERIC")||(Object.defineProperty(a.ready,"_emscripten_enum_draco_GeometryAttribute_Type_GENERIC",{configurable:!0,get:function(){c("You are getting _emscripten_enum_draco_GeometryAttribute_Type_GENERIC on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}), -Object.defineProperty(a.ready,"_emscripten_enum_draco_GeometryAttribute_Type_GENERIC",{configurable:!0,set:function(){c("You are setting _emscripten_enum_draco_GeometryAttribute_Type_GENERIC on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}));Object.getOwnPropertyDescriptor(a.ready,"_emscripten_enum_draco_EncodedGeometryType_INVALID_GEOMETRY_TYPE")||(Object.defineProperty(a.ready,"_emscripten_enum_draco_EncodedGeometryType_INVALID_GEOMETRY_TYPE", -{configurable:!0,get:function(){c("You are getting _emscripten_enum_draco_EncodedGeometryType_INVALID_GEOMETRY_TYPE on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}),Object.defineProperty(a.ready,"_emscripten_enum_draco_EncodedGeometryType_INVALID_GEOMETRY_TYPE",{configurable:!0,set:function(){c("You are setting _emscripten_enum_draco_EncodedGeometryType_INVALID_GEOMETRY_TYPE on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}})); -Object.getOwnPropertyDescriptor(a.ready,"_emscripten_enum_draco_EncodedGeometryType_POINT_CLOUD")||(Object.defineProperty(a.ready,"_emscripten_enum_draco_EncodedGeometryType_POINT_CLOUD",{configurable:!0,get:function(){c("You are getting _emscripten_enum_draco_EncodedGeometryType_POINT_CLOUD on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}),Object.defineProperty(a.ready,"_emscripten_enum_draco_EncodedGeometryType_POINT_CLOUD", -{configurable:!0,set:function(){c("You are setting _emscripten_enum_draco_EncodedGeometryType_POINT_CLOUD on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}));Object.getOwnPropertyDescriptor(a.ready,"_emscripten_enum_draco_EncodedGeometryType_TRIANGULAR_MESH")||(Object.defineProperty(a.ready,"_emscripten_enum_draco_EncodedGeometryType_TRIANGULAR_MESH",{configurable:!0,get:function(){c("You are getting _emscripten_enum_draco_EncodedGeometryType_TRIANGULAR_MESH on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}), -Object.defineProperty(a.ready,"_emscripten_enum_draco_EncodedGeometryType_TRIANGULAR_MESH",{configurable:!0,set:function(){c("You are setting _emscripten_enum_draco_EncodedGeometryType_TRIANGULAR_MESH on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}));Object.getOwnPropertyDescriptor(a.ready,"_emscripten_enum_draco_DataType_DT_INVALID")||(Object.defineProperty(a.ready,"_emscripten_enum_draco_DataType_DT_INVALID", -{configurable:!0,get:function(){c("You are getting _emscripten_enum_draco_DataType_DT_INVALID on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}),Object.defineProperty(a.ready,"_emscripten_enum_draco_DataType_DT_INVALID",{configurable:!0,set:function(){c("You are setting _emscripten_enum_draco_DataType_DT_INVALID on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}})); -Object.getOwnPropertyDescriptor(a.ready,"_emscripten_enum_draco_DataType_DT_INT8")||(Object.defineProperty(a.ready,"_emscripten_enum_draco_DataType_DT_INT8",{configurable:!0,get:function(){c("You are getting _emscripten_enum_draco_DataType_DT_INT8 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}),Object.defineProperty(a.ready,"_emscripten_enum_draco_DataType_DT_INT8",{configurable:!0,set:function(){c("You are setting _emscripten_enum_draco_DataType_DT_INT8 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}})); -Object.getOwnPropertyDescriptor(a.ready,"_emscripten_enum_draco_DataType_DT_UINT8")||(Object.defineProperty(a.ready,"_emscripten_enum_draco_DataType_DT_UINT8",{configurable:!0,get:function(){c("You are getting _emscripten_enum_draco_DataType_DT_UINT8 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}),Object.defineProperty(a.ready,"_emscripten_enum_draco_DataType_DT_UINT8",{configurable:!0,set:function(){c("You are setting _emscripten_enum_draco_DataType_DT_UINT8 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}})); -Object.getOwnPropertyDescriptor(a.ready,"_emscripten_enum_draco_DataType_DT_INT16")||(Object.defineProperty(a.ready,"_emscripten_enum_draco_DataType_DT_INT16",{configurable:!0,get:function(){c("You are getting _emscripten_enum_draco_DataType_DT_INT16 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}),Object.defineProperty(a.ready,"_emscripten_enum_draco_DataType_DT_INT16",{configurable:!0,set:function(){c("You are setting _emscripten_enum_draco_DataType_DT_INT16 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}})); -Object.getOwnPropertyDescriptor(a.ready,"_emscripten_enum_draco_DataType_DT_UINT16")||(Object.defineProperty(a.ready,"_emscripten_enum_draco_DataType_DT_UINT16",{configurable:!0,get:function(){c("You are getting _emscripten_enum_draco_DataType_DT_UINT16 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}),Object.defineProperty(a.ready,"_emscripten_enum_draco_DataType_DT_UINT16",{configurable:!0,set:function(){c("You are setting _emscripten_enum_draco_DataType_DT_UINT16 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}})); -Object.getOwnPropertyDescriptor(a.ready,"_emscripten_enum_draco_DataType_DT_INT32")||(Object.defineProperty(a.ready,"_emscripten_enum_draco_DataType_DT_INT32",{configurable:!0,get:function(){c("You are getting _emscripten_enum_draco_DataType_DT_INT32 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}),Object.defineProperty(a.ready,"_emscripten_enum_draco_DataType_DT_INT32",{configurable:!0,set:function(){c("You are setting _emscripten_enum_draco_DataType_DT_INT32 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}})); -Object.getOwnPropertyDescriptor(a.ready,"_emscripten_enum_draco_DataType_DT_UINT32")||(Object.defineProperty(a.ready,"_emscripten_enum_draco_DataType_DT_UINT32",{configurable:!0,get:function(){c("You are getting _emscripten_enum_draco_DataType_DT_UINT32 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}),Object.defineProperty(a.ready,"_emscripten_enum_draco_DataType_DT_UINT32",{configurable:!0,set:function(){c("You are setting _emscripten_enum_draco_DataType_DT_UINT32 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}})); -Object.getOwnPropertyDescriptor(a.ready,"_emscripten_enum_draco_DataType_DT_INT64")||(Object.defineProperty(a.ready,"_emscripten_enum_draco_DataType_DT_INT64",{configurable:!0,get:function(){c("You are getting _emscripten_enum_draco_DataType_DT_INT64 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}),Object.defineProperty(a.ready,"_emscripten_enum_draco_DataType_DT_INT64",{configurable:!0,set:function(){c("You are setting _emscripten_enum_draco_DataType_DT_INT64 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}})); -Object.getOwnPropertyDescriptor(a.ready,"_emscripten_enum_draco_DataType_DT_UINT64")||(Object.defineProperty(a.ready,"_emscripten_enum_draco_DataType_DT_UINT64",{configurable:!0,get:function(){c("You are getting _emscripten_enum_draco_DataType_DT_UINT64 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}),Object.defineProperty(a.ready,"_emscripten_enum_draco_DataType_DT_UINT64",{configurable:!0,set:function(){c("You are setting _emscripten_enum_draco_DataType_DT_UINT64 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}})); -Object.getOwnPropertyDescriptor(a.ready,"_emscripten_enum_draco_DataType_DT_FLOAT32")||(Object.defineProperty(a.ready,"_emscripten_enum_draco_DataType_DT_FLOAT32",{configurable:!0,get:function(){c("You are getting _emscripten_enum_draco_DataType_DT_FLOAT32 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}),Object.defineProperty(a.ready,"_emscripten_enum_draco_DataType_DT_FLOAT32",{configurable:!0,set:function(){c("You are setting _emscripten_enum_draco_DataType_DT_FLOAT32 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}})); -Object.getOwnPropertyDescriptor(a.ready,"_emscripten_enum_draco_DataType_DT_FLOAT64")||(Object.defineProperty(a.ready,"_emscripten_enum_draco_DataType_DT_FLOAT64",{configurable:!0,get:function(){c("You are getting _emscripten_enum_draco_DataType_DT_FLOAT64 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}),Object.defineProperty(a.ready,"_emscripten_enum_draco_DataType_DT_FLOAT64",{configurable:!0,set:function(){c("You are setting _emscripten_enum_draco_DataType_DT_FLOAT64 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}})); -Object.getOwnPropertyDescriptor(a.ready,"_emscripten_enum_draco_DataType_DT_BOOL")||(Object.defineProperty(a.ready,"_emscripten_enum_draco_DataType_DT_BOOL",{configurable:!0,get:function(){c("You are getting _emscripten_enum_draco_DataType_DT_BOOL on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}),Object.defineProperty(a.ready,"_emscripten_enum_draco_DataType_DT_BOOL",{configurable:!0,set:function(){c("You are setting _emscripten_enum_draco_DataType_DT_BOOL on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}})); -Object.getOwnPropertyDescriptor(a.ready,"_emscripten_enum_draco_DataType_DT_TYPES_COUNT")||(Object.defineProperty(a.ready,"_emscripten_enum_draco_DataType_DT_TYPES_COUNT",{configurable:!0,get:function(){c("You are getting _emscripten_enum_draco_DataType_DT_TYPES_COUNT on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}),Object.defineProperty(a.ready,"_emscripten_enum_draco_DataType_DT_TYPES_COUNT",{configurable:!0, -set:function(){c("You are setting _emscripten_enum_draco_DataType_DT_TYPES_COUNT on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}));Object.getOwnPropertyDescriptor(a.ready,"_emscripten_enum_draco_StatusCode_OK")||(Object.defineProperty(a.ready,"_emscripten_enum_draco_StatusCode_OK",{configurable:!0,get:function(){c("You are getting _emscripten_enum_draco_StatusCode_OK on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}), -Object.defineProperty(a.ready,"_emscripten_enum_draco_StatusCode_OK",{configurable:!0,set:function(){c("You are setting _emscripten_enum_draco_StatusCode_OK on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}));Object.getOwnPropertyDescriptor(a.ready,"_emscripten_enum_draco_StatusCode_DRACO_ERROR")||(Object.defineProperty(a.ready,"_emscripten_enum_draco_StatusCode_DRACO_ERROR",{configurable:!0,get:function(){c("You are getting _emscripten_enum_draco_StatusCode_DRACO_ERROR on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}), -Object.defineProperty(a.ready,"_emscripten_enum_draco_StatusCode_DRACO_ERROR",{configurable:!0,set:function(){c("You are setting _emscripten_enum_draco_StatusCode_DRACO_ERROR on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}));Object.getOwnPropertyDescriptor(a.ready,"_emscripten_enum_draco_StatusCode_IO_ERROR")||(Object.defineProperty(a.ready,"_emscripten_enum_draco_StatusCode_IO_ERROR",{configurable:!0, -get:function(){c("You are getting _emscripten_enum_draco_StatusCode_IO_ERROR on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}),Object.defineProperty(a.ready,"_emscripten_enum_draco_StatusCode_IO_ERROR",{configurable:!0,set:function(){c("You are setting _emscripten_enum_draco_StatusCode_IO_ERROR on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}})); -Object.getOwnPropertyDescriptor(a.ready,"_emscripten_enum_draco_StatusCode_INVALID_PARAMETER")||(Object.defineProperty(a.ready,"_emscripten_enum_draco_StatusCode_INVALID_PARAMETER",{configurable:!0,get:function(){c("You are getting _emscripten_enum_draco_StatusCode_INVALID_PARAMETER on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}),Object.defineProperty(a.ready,"_emscripten_enum_draco_StatusCode_INVALID_PARAMETER", -{configurable:!0,set:function(){c("You are setting _emscripten_enum_draco_StatusCode_INVALID_PARAMETER on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}));Object.getOwnPropertyDescriptor(a.ready,"_emscripten_enum_draco_StatusCode_UNSUPPORTED_VERSION")||(Object.defineProperty(a.ready,"_emscripten_enum_draco_StatusCode_UNSUPPORTED_VERSION",{configurable:!0,get:function(){c("You are getting _emscripten_enum_draco_StatusCode_UNSUPPORTED_VERSION on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}), -Object.defineProperty(a.ready,"_emscripten_enum_draco_StatusCode_UNSUPPORTED_VERSION",{configurable:!0,set:function(){c("You are setting _emscripten_enum_draco_StatusCode_UNSUPPORTED_VERSION on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}));Object.getOwnPropertyDescriptor(a.ready,"_emscripten_enum_draco_StatusCode_UNKNOWN_VERSION")||(Object.defineProperty(a.ready,"_emscripten_enum_draco_StatusCode_UNKNOWN_VERSION", -{configurable:!0,get:function(){c("You are getting _emscripten_enum_draco_StatusCode_UNKNOWN_VERSION on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}),Object.defineProperty(a.ready,"_emscripten_enum_draco_StatusCode_UNKNOWN_VERSION",{configurable:!0,set:function(){c("You are setting _emscripten_enum_draco_StatusCode_UNKNOWN_VERSION on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}})); -Object.getOwnPropertyDescriptor(a.ready,"_fflush")||(Object.defineProperty(a.ready,"_fflush",{configurable:!0,get:function(){c("You are getting _fflush on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}),Object.defineProperty(a.ready,"_fflush",{configurable:!0,set:function(){c("You are setting _fflush on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}})); -Object.getOwnPropertyDescriptor(a.ready,"onRuntimeInitialized")||(Object.defineProperty(a.ready,"onRuntimeInitialized",{configurable:!0,get:function(){c("You are getting onRuntimeInitialized on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}),Object.defineProperty(a.ready,"onRuntimeInitialized",{configurable:!0,set:function(){c("You are setting onRuntimeInitialized on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}})); -var Wa=!1,Xa=!1;a.onRuntimeInitialized=function(){Wa=!0;if(Xa&&"function"===typeof a.onModuleLoaded)a.onModuleLoaded(a)};a.onModuleParsed=function(){Xa=!0;if(Wa&&"function"===typeof a.onModuleLoaded)a.onModuleLoaded(a)};a.isVersionSupported=function(g){if("string"!==typeof g)return!1;g=g.split(".");return 2>g.length||3=g[1]?!0:0!=g[0]||10>>=0;r(g>b); -if(2147483648=d;d*=2){var f=b*(1+.2/d);f=Math.min(f,g+100663296);var q=Math;f=Math.max(g,f);q=q.min.call(q,2147483648,f+(65536-f%65536)%65536);a:{f=q;try{ra.grow(f-Ba.byteLength+65535>>>16);ka(ra.buffer);var v=1;break a}catch(D){I("emscripten_realloc_buffer: Attempted to grow heap from "+Ba.byteLength+" bytes to "+f+" bytes, but got error: "+D)}v=void 0}if(v)return!0}I("Failed to grow the heap from "+ -b+" bytes to "+q+" bytes, not enough memory!");return!1},fd_close:function(g){c("fd_close called without SYSCALLS_REQUIRE_FILESYSTEM")},fd_seek:function(g,b,d,f,q){return 70},fd_write:function(g,b,d,f){for(var q=0,v=0;v>2],ab=J[b+4>>2];b+=8;for(var Na=0;Na>2]=q;return 0},setTempRet0:function(g){}};(function(){function g(v,D){a.asm=v.exports;ra=a.asm.memory;r(ra, -"memory not found in wasm exports");ka(ra.buffer);xa=a.asm.__indirect_function_table;r(xa,"table not found in wasm exports");Ha.unshift(a.asm.__wasm_call_ctors);ia--;a.monitorRunDependencies&&a.monitorRunDependencies(ia);r(oa["wasm-instantiate"]);delete oa["wasm-instantiate"];0==ia&&(null!==ja&&(clearInterval(ja),ja=null),sa&&(v=sa,sa=null,v()))}function b(v){r(a===q,"the Module object should not be replaced during async compilation - perhaps the order of HTML elements is wrong?");q=null;g(v.instance)} -function d(v){return db().then(function(D){return WebAssembly.instantiate(D,f)}).then(function(D){return D}).then(v,function(D){I("failed to asynchronously prepare wasm: "+D);K.startsWith("file://")&&I("warning: Loading from a file URI ("+K+") is not supported in most browsers. See https://emscripten.org/docs/getting_started/FAQ.html#how-do-i-run-a-local-webserver-for-testing-why-does-my-program-stall-in-downloading-or-preparing");c(D)})}var f={env:cb,wasi_snapshot_preview1:cb};ma("wasm-instantiate"); -var q=a;if(a.instantiateWasm)try{return a.instantiateWasm(f,g)}catch(v){return I("Module.instantiateWasm callback failed with error: "+v),!1}(function(){return pa||"function"!=typeof WebAssembly.instantiateStreaming||K.startsWith("data:application/octet-stream;base64,")||K.startsWith("file://")||Ja||"function"!=typeof fetch?d(b):fetch(K,{credentials:"same-origin"}).then(function(v){return WebAssembly.instantiateStreaming(v,f).then(b,function(D){I("wasm streaming compile failed: "+D);I("falling back to ArrayBuffer instantiation"); -return d(b)})})})().catch(Da);return{}})();a.___wasm_call_ctors=h("__wasm_call_ctors");var Cb=a._emscripten_bind_VoidPtr___destroy___0=h("emscripten_bind_VoidPtr___destroy___0"),gb=a._emscripten_bind_DecoderBuffer_DecoderBuffer_0=h("emscripten_bind_DecoderBuffer_DecoderBuffer_0"),Db=a._emscripten_bind_DecoderBuffer_Init_2=h("emscripten_bind_DecoderBuffer_Init_2"),Eb=a._emscripten_bind_DecoderBuffer___destroy___0=h("emscripten_bind_DecoderBuffer___destroy___0"),hb=a._emscripten_bind_AttributeTransformData_AttributeTransformData_0= -h("emscripten_bind_AttributeTransformData_AttributeTransformData_0"),Fb=a._emscripten_bind_AttributeTransformData_transform_type_0=h("emscripten_bind_AttributeTransformData_transform_type_0"),Gb=a._emscripten_bind_AttributeTransformData___destroy___0=h("emscripten_bind_AttributeTransformData___destroy___0"),ib=a._emscripten_bind_GeometryAttribute_GeometryAttribute_0=h("emscripten_bind_GeometryAttribute_GeometryAttribute_0"),Hb=a._emscripten_bind_GeometryAttribute___destroy___0=h("emscripten_bind_GeometryAttribute___destroy___0"), -jb=a._emscripten_bind_PointAttribute_PointAttribute_0=h("emscripten_bind_PointAttribute_PointAttribute_0"),Ib=a._emscripten_bind_PointAttribute_size_0=h("emscripten_bind_PointAttribute_size_0"),Jb=a._emscripten_bind_PointAttribute_GetAttributeTransformData_0=h("emscripten_bind_PointAttribute_GetAttributeTransformData_0"),Kb=a._emscripten_bind_PointAttribute_attribute_type_0=h("emscripten_bind_PointAttribute_attribute_type_0"),Lb=a._emscripten_bind_PointAttribute_data_type_0=h("emscripten_bind_PointAttribute_data_type_0"), -Mb=a._emscripten_bind_PointAttribute_num_components_0=h("emscripten_bind_PointAttribute_num_components_0"),Nb=a._emscripten_bind_PointAttribute_normalized_0=h("emscripten_bind_PointAttribute_normalized_0"),Ob=a._emscripten_bind_PointAttribute_byte_stride_0=h("emscripten_bind_PointAttribute_byte_stride_0"),Pb=a._emscripten_bind_PointAttribute_byte_offset_0=h("emscripten_bind_PointAttribute_byte_offset_0"),Qb=a._emscripten_bind_PointAttribute_unique_id_0=h("emscripten_bind_PointAttribute_unique_id_0"), -Rb=a._emscripten_bind_PointAttribute___destroy___0=h("emscripten_bind_PointAttribute___destroy___0"),kb=a._emscripten_bind_AttributeQuantizationTransform_AttributeQuantizationTransform_0=h("emscripten_bind_AttributeQuantizationTransform_AttributeQuantizationTransform_0"),Sb=a._emscripten_bind_AttributeQuantizationTransform_InitFromAttribute_1=h("emscripten_bind_AttributeQuantizationTransform_InitFromAttribute_1"),Tb=a._emscripten_bind_AttributeQuantizationTransform_quantization_bits_0=h("emscripten_bind_AttributeQuantizationTransform_quantization_bits_0"), -Ub=a._emscripten_bind_AttributeQuantizationTransform_min_value_1=h("emscripten_bind_AttributeQuantizationTransform_min_value_1"),Vb=a._emscripten_bind_AttributeQuantizationTransform_range_0=h("emscripten_bind_AttributeQuantizationTransform_range_0"),Wb=a._emscripten_bind_AttributeQuantizationTransform___destroy___0=h("emscripten_bind_AttributeQuantizationTransform___destroy___0"),lb=a._emscripten_bind_AttributeOctahedronTransform_AttributeOctahedronTransform_0=h("emscripten_bind_AttributeOctahedronTransform_AttributeOctahedronTransform_0"), -Xb=a._emscripten_bind_AttributeOctahedronTransform_InitFromAttribute_1=h("emscripten_bind_AttributeOctahedronTransform_InitFromAttribute_1"),Yb=a._emscripten_bind_AttributeOctahedronTransform_quantization_bits_0=h("emscripten_bind_AttributeOctahedronTransform_quantization_bits_0"),Zb=a._emscripten_bind_AttributeOctahedronTransform___destroy___0=h("emscripten_bind_AttributeOctahedronTransform___destroy___0"),mb=a._emscripten_bind_PointCloud_PointCloud_0=h("emscripten_bind_PointCloud_PointCloud_0"), -$b=a._emscripten_bind_PointCloud_num_attributes_0=h("emscripten_bind_PointCloud_num_attributes_0"),ac=a._emscripten_bind_PointCloud_num_points_0=h("emscripten_bind_PointCloud_num_points_0"),bc=a._emscripten_bind_PointCloud___destroy___0=h("emscripten_bind_PointCloud___destroy___0"),nb=a._emscripten_bind_Mesh_Mesh_0=h("emscripten_bind_Mesh_Mesh_0"),cc=a._emscripten_bind_Mesh_num_faces_0=h("emscripten_bind_Mesh_num_faces_0"),dc=a._emscripten_bind_Mesh_num_attributes_0=h("emscripten_bind_Mesh_num_attributes_0"), -ec=a._emscripten_bind_Mesh_num_points_0=h("emscripten_bind_Mesh_num_points_0"),fc=a._emscripten_bind_Mesh___destroy___0=h("emscripten_bind_Mesh___destroy___0"),ob=a._emscripten_bind_Metadata_Metadata_0=h("emscripten_bind_Metadata_Metadata_0"),gc=a._emscripten_bind_Metadata___destroy___0=h("emscripten_bind_Metadata___destroy___0"),hc=a._emscripten_bind_Status_code_0=h("emscripten_bind_Status_code_0"),ic=a._emscripten_bind_Status_ok_0=h("emscripten_bind_Status_ok_0"),jc=a._emscripten_bind_Status_error_msg_0= -h("emscripten_bind_Status_error_msg_0"),kc=a._emscripten_bind_Status___destroy___0=h("emscripten_bind_Status___destroy___0"),pb=a._emscripten_bind_DracoFloat32Array_DracoFloat32Array_0=h("emscripten_bind_DracoFloat32Array_DracoFloat32Array_0"),lc=a._emscripten_bind_DracoFloat32Array_GetValue_1=h("emscripten_bind_DracoFloat32Array_GetValue_1"),mc=a._emscripten_bind_DracoFloat32Array_size_0=h("emscripten_bind_DracoFloat32Array_size_0"),nc=a._emscripten_bind_DracoFloat32Array___destroy___0=h("emscripten_bind_DracoFloat32Array___destroy___0"), -qb=a._emscripten_bind_DracoInt8Array_DracoInt8Array_0=h("emscripten_bind_DracoInt8Array_DracoInt8Array_0"),oc=a._emscripten_bind_DracoInt8Array_GetValue_1=h("emscripten_bind_DracoInt8Array_GetValue_1"),pc=a._emscripten_bind_DracoInt8Array_size_0=h("emscripten_bind_DracoInt8Array_size_0"),qc=a._emscripten_bind_DracoInt8Array___destroy___0=h("emscripten_bind_DracoInt8Array___destroy___0"),rb=a._emscripten_bind_DracoUInt8Array_DracoUInt8Array_0=h("emscripten_bind_DracoUInt8Array_DracoUInt8Array_0"), -rc=a._emscripten_bind_DracoUInt8Array_GetValue_1=h("emscripten_bind_DracoUInt8Array_GetValue_1"),sc=a._emscripten_bind_DracoUInt8Array_size_0=h("emscripten_bind_DracoUInt8Array_size_0"),tc=a._emscripten_bind_DracoUInt8Array___destroy___0=h("emscripten_bind_DracoUInt8Array___destroy___0"),sb=a._emscripten_bind_DracoInt16Array_DracoInt16Array_0=h("emscripten_bind_DracoInt16Array_DracoInt16Array_0"),uc=a._emscripten_bind_DracoInt16Array_GetValue_1=h("emscripten_bind_DracoInt16Array_GetValue_1"),vc=a._emscripten_bind_DracoInt16Array_size_0= -h("emscripten_bind_DracoInt16Array_size_0"),wc=a._emscripten_bind_DracoInt16Array___destroy___0=h("emscripten_bind_DracoInt16Array___destroy___0"),tb=a._emscripten_bind_DracoUInt16Array_DracoUInt16Array_0=h("emscripten_bind_DracoUInt16Array_DracoUInt16Array_0"),xc=a._emscripten_bind_DracoUInt16Array_GetValue_1=h("emscripten_bind_DracoUInt16Array_GetValue_1"),yc=a._emscripten_bind_DracoUInt16Array_size_0=h("emscripten_bind_DracoUInt16Array_size_0"),zc=a._emscripten_bind_DracoUInt16Array___destroy___0= -h("emscripten_bind_DracoUInt16Array___destroy___0"),ub=a._emscripten_bind_DracoInt32Array_DracoInt32Array_0=h("emscripten_bind_DracoInt32Array_DracoInt32Array_0"),Ac=a._emscripten_bind_DracoInt32Array_GetValue_1=h("emscripten_bind_DracoInt32Array_GetValue_1"),Bc=a._emscripten_bind_DracoInt32Array_size_0=h("emscripten_bind_DracoInt32Array_size_0"),Cc=a._emscripten_bind_DracoInt32Array___destroy___0=h("emscripten_bind_DracoInt32Array___destroy___0"),vb=a._emscripten_bind_DracoUInt32Array_DracoUInt32Array_0= -h("emscripten_bind_DracoUInt32Array_DracoUInt32Array_0"),Dc=a._emscripten_bind_DracoUInt32Array_GetValue_1=h("emscripten_bind_DracoUInt32Array_GetValue_1"),Ec=a._emscripten_bind_DracoUInt32Array_size_0=h("emscripten_bind_DracoUInt32Array_size_0"),Fc=a._emscripten_bind_DracoUInt32Array___destroy___0=h("emscripten_bind_DracoUInt32Array___destroy___0"),wb=a._emscripten_bind_MetadataQuerier_MetadataQuerier_0=h("emscripten_bind_MetadataQuerier_MetadataQuerier_0"),Gc=a._emscripten_bind_MetadataQuerier_HasEntry_2= -h("emscripten_bind_MetadataQuerier_HasEntry_2"),Hc=a._emscripten_bind_MetadataQuerier_GetIntEntry_2=h("emscripten_bind_MetadataQuerier_GetIntEntry_2"),Ic=a._emscripten_bind_MetadataQuerier_GetIntEntryArray_3=h("emscripten_bind_MetadataQuerier_GetIntEntryArray_3"),Jc=a._emscripten_bind_MetadataQuerier_GetDoubleEntry_2=h("emscripten_bind_MetadataQuerier_GetDoubleEntry_2"),Kc=a._emscripten_bind_MetadataQuerier_GetStringEntry_2=h("emscripten_bind_MetadataQuerier_GetStringEntry_2"),Lc=a._emscripten_bind_MetadataQuerier_NumEntries_1= -h("emscripten_bind_MetadataQuerier_NumEntries_1"),Mc=a._emscripten_bind_MetadataQuerier_GetEntryName_2=h("emscripten_bind_MetadataQuerier_GetEntryName_2"),Nc=a._emscripten_bind_MetadataQuerier___destroy___0=h("emscripten_bind_MetadataQuerier___destroy___0"),xb=a._emscripten_bind_Decoder_Decoder_0=h("emscripten_bind_Decoder_Decoder_0"),Oc=a._emscripten_bind_Decoder_DecodeArrayToPointCloud_3=h("emscripten_bind_Decoder_DecodeArrayToPointCloud_3"),Pc=a._emscripten_bind_Decoder_DecodeArrayToMesh_3=h("emscripten_bind_Decoder_DecodeArrayToMesh_3"), -Qc=a._emscripten_bind_Decoder_GetAttributeId_2=h("emscripten_bind_Decoder_GetAttributeId_2"),Rc=a._emscripten_bind_Decoder_GetAttributeIdByName_2=h("emscripten_bind_Decoder_GetAttributeIdByName_2"),Sc=a._emscripten_bind_Decoder_GetAttributeIdByMetadataEntry_3=h("emscripten_bind_Decoder_GetAttributeIdByMetadataEntry_3"),Tc=a._emscripten_bind_Decoder_GetAttribute_2=h("emscripten_bind_Decoder_GetAttribute_2"),Uc=a._emscripten_bind_Decoder_GetAttributeByUniqueId_2=h("emscripten_bind_Decoder_GetAttributeByUniqueId_2"), -Vc=a._emscripten_bind_Decoder_GetMetadata_1=h("emscripten_bind_Decoder_GetMetadata_1"),Wc=a._emscripten_bind_Decoder_GetAttributeMetadata_2=h("emscripten_bind_Decoder_GetAttributeMetadata_2"),Xc=a._emscripten_bind_Decoder_GetFaceFromMesh_3=h("emscripten_bind_Decoder_GetFaceFromMesh_3"),Yc=a._emscripten_bind_Decoder_GetTriangleStripsFromMesh_2=h("emscripten_bind_Decoder_GetTriangleStripsFromMesh_2"),Zc=a._emscripten_bind_Decoder_GetTrianglesUInt16Array_3=h("emscripten_bind_Decoder_GetTrianglesUInt16Array_3"), -$c=a._emscripten_bind_Decoder_GetTrianglesUInt32Array_3=h("emscripten_bind_Decoder_GetTrianglesUInt32Array_3"),ad=a._emscripten_bind_Decoder_GetAttributeFloat_3=h("emscripten_bind_Decoder_GetAttributeFloat_3"),bd=a._emscripten_bind_Decoder_GetAttributeFloatForAllPoints_3=h("emscripten_bind_Decoder_GetAttributeFloatForAllPoints_3"),cd=a._emscripten_bind_Decoder_GetAttributeIntForAllPoints_3=h("emscripten_bind_Decoder_GetAttributeIntForAllPoints_3"),dd=a._emscripten_bind_Decoder_GetAttributeInt8ForAllPoints_3= -h("emscripten_bind_Decoder_GetAttributeInt8ForAllPoints_3"),ed=a._emscripten_bind_Decoder_GetAttributeUInt8ForAllPoints_3=h("emscripten_bind_Decoder_GetAttributeUInt8ForAllPoints_3"),fd=a._emscripten_bind_Decoder_GetAttributeInt16ForAllPoints_3=h("emscripten_bind_Decoder_GetAttributeInt16ForAllPoints_3"),gd=a._emscripten_bind_Decoder_GetAttributeUInt16ForAllPoints_3=h("emscripten_bind_Decoder_GetAttributeUInt16ForAllPoints_3"),hd=a._emscripten_bind_Decoder_GetAttributeInt32ForAllPoints_3=h("emscripten_bind_Decoder_GetAttributeInt32ForAllPoints_3"), -id=a._emscripten_bind_Decoder_GetAttributeUInt32ForAllPoints_3=h("emscripten_bind_Decoder_GetAttributeUInt32ForAllPoints_3"),jd=a._emscripten_bind_Decoder_GetAttributeDataArrayForAllPoints_5=h("emscripten_bind_Decoder_GetAttributeDataArrayForAllPoints_5"),kd=a._emscripten_bind_Decoder_SkipAttributeTransform_1=h("emscripten_bind_Decoder_SkipAttributeTransform_1"),ld=a._emscripten_bind_Decoder_GetEncodedGeometryType_Deprecated_1=h("emscripten_bind_Decoder_GetEncodedGeometryType_Deprecated_1"),md=a._emscripten_bind_Decoder_DecodeBufferToPointCloud_2= -h("emscripten_bind_Decoder_DecodeBufferToPointCloud_2"),nd=a._emscripten_bind_Decoder_DecodeBufferToMesh_2=h("emscripten_bind_Decoder_DecodeBufferToMesh_2"),od=a._emscripten_bind_Decoder___destroy___0=h("emscripten_bind_Decoder___destroy___0"),pd=a._emscripten_enum_draco_AttributeTransformType_ATTRIBUTE_INVALID_TRANSFORM=h("emscripten_enum_draco_AttributeTransformType_ATTRIBUTE_INVALID_TRANSFORM"),qd=a._emscripten_enum_draco_AttributeTransformType_ATTRIBUTE_NO_TRANSFORM=h("emscripten_enum_draco_AttributeTransformType_ATTRIBUTE_NO_TRANSFORM"), -rd=a._emscripten_enum_draco_AttributeTransformType_ATTRIBUTE_QUANTIZATION_TRANSFORM=h("emscripten_enum_draco_AttributeTransformType_ATTRIBUTE_QUANTIZATION_TRANSFORM"),sd=a._emscripten_enum_draco_AttributeTransformType_ATTRIBUTE_OCTAHEDRON_TRANSFORM=h("emscripten_enum_draco_AttributeTransformType_ATTRIBUTE_OCTAHEDRON_TRANSFORM"),td=a._emscripten_enum_draco_GeometryAttribute_Type_INVALID=h("emscripten_enum_draco_GeometryAttribute_Type_INVALID"),ud=a._emscripten_enum_draco_GeometryAttribute_Type_POSITION= -h("emscripten_enum_draco_GeometryAttribute_Type_POSITION"),vd=a._emscripten_enum_draco_GeometryAttribute_Type_NORMAL=h("emscripten_enum_draco_GeometryAttribute_Type_NORMAL"),wd=a._emscripten_enum_draco_GeometryAttribute_Type_COLOR=h("emscripten_enum_draco_GeometryAttribute_Type_COLOR"),xd=a._emscripten_enum_draco_GeometryAttribute_Type_TEX_COORD=h("emscripten_enum_draco_GeometryAttribute_Type_TEX_COORD"),yd=a._emscripten_enum_draco_GeometryAttribute_Type_GENERIC=h("emscripten_enum_draco_GeometryAttribute_Type_GENERIC"), -zd=a._emscripten_enum_draco_EncodedGeometryType_INVALID_GEOMETRY_TYPE=h("emscripten_enum_draco_EncodedGeometryType_INVALID_GEOMETRY_TYPE"),Ad=a._emscripten_enum_draco_EncodedGeometryType_POINT_CLOUD=h("emscripten_enum_draco_EncodedGeometryType_POINT_CLOUD"),Bd=a._emscripten_enum_draco_EncodedGeometryType_TRIANGULAR_MESH=h("emscripten_enum_draco_EncodedGeometryType_TRIANGULAR_MESH"),Cd=a._emscripten_enum_draco_DataType_DT_INVALID=h("emscripten_enum_draco_DataType_DT_INVALID"),Dd=a._emscripten_enum_draco_DataType_DT_INT8= -h("emscripten_enum_draco_DataType_DT_INT8"),Ed=a._emscripten_enum_draco_DataType_DT_UINT8=h("emscripten_enum_draco_DataType_DT_UINT8"),Fd=a._emscripten_enum_draco_DataType_DT_INT16=h("emscripten_enum_draco_DataType_DT_INT16"),Gd=a._emscripten_enum_draco_DataType_DT_UINT16=h("emscripten_enum_draco_DataType_DT_UINT16"),Hd=a._emscripten_enum_draco_DataType_DT_INT32=h("emscripten_enum_draco_DataType_DT_INT32"),Id=a._emscripten_enum_draco_DataType_DT_UINT32=h("emscripten_enum_draco_DataType_DT_UINT32"), -Jd=a._emscripten_enum_draco_DataType_DT_INT64=h("emscripten_enum_draco_DataType_DT_INT64"),Kd=a._emscripten_enum_draco_DataType_DT_UINT64=h("emscripten_enum_draco_DataType_DT_UINT64"),Ld=a._emscripten_enum_draco_DataType_DT_FLOAT32=h("emscripten_enum_draco_DataType_DT_FLOAT32"),Md=a._emscripten_enum_draco_DataType_DT_FLOAT64=h("emscripten_enum_draco_DataType_DT_FLOAT64"),Nd=a._emscripten_enum_draco_DataType_DT_BOOL=h("emscripten_enum_draco_DataType_DT_BOOL"),Od=a._emscripten_enum_draco_DataType_DT_TYPES_COUNT= -h("emscripten_enum_draco_DataType_DT_TYPES_COUNT"),Pd=a._emscripten_enum_draco_StatusCode_OK=h("emscripten_enum_draco_StatusCode_OK"),Qd=a._emscripten_enum_draco_StatusCode_DRACO_ERROR=h("emscripten_enum_draco_StatusCode_DRACO_ERROR"),Rd=a._emscripten_enum_draco_StatusCode_IO_ERROR=h("emscripten_enum_draco_StatusCode_IO_ERROR"),Sd=a._emscripten_enum_draco_StatusCode_INVALID_PARAMETER=h("emscripten_enum_draco_StatusCode_INVALID_PARAMETER"),Td=a._emscripten_enum_draco_StatusCode_UNSUPPORTED_VERSION= -h("emscripten_enum_draco_StatusCode_UNSUPPORTED_VERSION"),Ud=a._emscripten_enum_draco_StatusCode_UNKNOWN_VERSION=h("emscripten_enum_draco_StatusCode_UNKNOWN_VERSION");a.___errno_location=h("__errno_location");a._fflush=h("fflush");var Bb=a._malloc=h("malloc");a._free=h("free");var Ua=a._emscripten_stack_init=function(){return(Ua=a._emscripten_stack_init=a.asm.emscripten_stack_init).apply(null,arguments)};a._emscripten_stack_get_free=function(){return(a._emscripten_stack_get_free=a.asm.emscripten_stack_get_free).apply(null, -arguments)};a._emscripten_stack_get_base=function(){return(a._emscripten_stack_get_base=a.asm.emscripten_stack_get_base).apply(null,arguments)};var Ca=a._emscripten_stack_get_end=function(){return(Ca=a._emscripten_stack_get_end=a.asm.emscripten_stack_get_end).apply(null,arguments)};a.stackSave=h("stackSave");a.stackRestore=h("stackRestore");a.stackAlloc=h("stackAlloc");var fb=a.___cxa_is_pointer_type=h("__cxa_is_pointer_type");a.dynCall_jiji=h("dynCall_jiji");e("ccall",!1);e("cwrap",!1);e("allocate", -!1);e("UTF8ArrayToString",!1);e("UTF8ToString",!1);e("stringToUTF8Array",!1);e("stringToUTF8",!1);e("lengthBytesUTF8",!1);e("addOnPreRun",!1);e("addOnInit",!1);e("addOnPreMain",!1);e("addOnExit",!1);e("addOnPostRun",!1);e("addRunDependency",!0);e("removeRunDependency",!0);e("FS_createFolder",!1);e("FS_createPath",!0);e("FS_createDataFile",!0);e("FS_createPreloadedFile",!0);e("FS_createLazyFile",!0);e("FS_createLink",!1);e("FS_createDevice",!0);e("FS_unlink",!0);e("getLEB",!1);e("getFunctionTables", -!1);e("alignFunctionTables",!1);e("registerFunctions",!1);e("addFunction",!1);e("removeFunction",!1);e("prettyPrint",!1);e("getCompilerSetting",!1);e("print",!1);e("printErr",!1);e("getTempRet0",!1);e("setTempRet0",!1);e("callMain",!1);e("abort",!1);e("keepRuntimeAlive",!1);e("wasmMemory",!1);e("warnOnce",!1);e("stackSave",!1);e("stackRestore",!1);e("stackAlloc",!1);e("AsciiToString",!1);e("stringToAscii",!1);e("UTF16ToString",!1);e("stringToUTF16",!1);e("lengthBytesUTF16",!1);e("UTF32ToString",!1); -e("stringToUTF32",!1);e("lengthBytesUTF32",!1);e("allocateUTF8",!1);e("allocateUTF8OnStack",!1);e("ExitStatus",!1);e("intArrayFromString",!1);e("intArrayToString",!1);e("writeStringToMemory",!1);e("writeArrayToMemory",!1);e("writeAsciiToMemory",!1);a.writeStackCookie=V;a.checkStackCookie=W;e("ptrToString",!1);e("zeroMemory",!1);e("stringToNewUTF8",!1);e("getHeapMax",!1);e("emscripten_realloc_buffer",!1);e("ENV",!1);e("ERRNO_CODES",!1);e("ERRNO_MESSAGES",!1);e("setErrNo",!1);e("inetPton4",!1);e("inetNtop4", -!1);e("inetPton6",!1);e("inetNtop6",!1);e("readSockaddr",!1);e("writeSockaddr",!1);e("DNS",!1);e("getHostByName",!1);e("Protocols",!1);e("Sockets",!1);e("getRandomDevice",!1);e("traverseStack",!1);e("UNWIND_CACHE",!1);e("convertPCtoSourceLocation",!1);e("readAsmConstArgsArray",!1);e("readAsmConstArgs",!1);e("mainThreadEM_ASM",!1);e("jstoi_q",!1);e("jstoi_s",!1);e("getExecutableName",!1);e("listenOnce",!1);e("autoResumeAudioContext",!1);e("dynCallLegacy",!1);e("getDynCaller",!1);e("dynCall",!1);e("handleException", -!1);e("runtimeKeepalivePush",!1);e("runtimeKeepalivePop",!1);e("callUserCallback",!1);e("maybeExit",!1);e("safeSetTimeout",!1);e("asmjsMangle",!1);e("asyncLoad",!1);e("alignMemory",!1);e("mmapAlloc",!1);e("writeI53ToI64",!1);e("writeI53ToI64Clamped",!1);e("writeI53ToI64Signaling",!1);e("writeI53ToU64Clamped",!1);e("writeI53ToU64Signaling",!1);e("readI53FromI64",!1);e("readI53FromU64",!1);e("convertI32PairToI53",!1);e("convertI32PairToI53Checked",!1);e("convertU32PairToI53",!1);e("reallyNegative", -!1);e("unSign",!1);e("strLen",!1);e("reSign",!1);e("formatString",!1);e("setValue",!1);e("getValue",!1);e("PATH",!1);e("PATH_FS",!1);e("SYSCALLS",!1);e("getSocketFromFD",!1);e("getSocketAddress",!1);e("JSEvents",!1);e("registerKeyEventCallback",!1);e("specialHTMLTargets",!1);e("maybeCStringToJsString",!1);e("findEventTarget",!1);e("findCanvasEventTarget",!1);e("getBoundingClientRect",!1);e("fillMouseEventData",!1);e("registerMouseEventCallback",!1);e("registerWheelEventCallback",!1);e("registerUiEventCallback", -!1);e("registerFocusEventCallback",!1);e("fillDeviceOrientationEventData",!1);e("registerDeviceOrientationEventCallback",!1);e("fillDeviceMotionEventData",!1);e("registerDeviceMotionEventCallback",!1);e("screenOrientation",!1);e("fillOrientationChangeEventData",!1);e("registerOrientationChangeEventCallback",!1);e("fillFullscreenChangeEventData",!1);e("registerFullscreenChangeEventCallback",!1);e("JSEvents_requestFullscreen",!1);e("JSEvents_resizeCanvasForFullscreen",!1);e("registerRestoreOldStyle", -!1);e("hideEverythingExceptGivenElement",!1);e("restoreHiddenElements",!1);e("setLetterbox",!1);e("currentFullscreenStrategy",!1);e("restoreOldWindowedStyle",!1);e("softFullscreenResizeWebGLRenderTarget",!1);e("doRequestFullscreen",!1);e("fillPointerlockChangeEventData",!1);e("registerPointerlockChangeEventCallback",!1);e("registerPointerlockErrorEventCallback",!1);e("requestPointerLock",!1);e("fillVisibilityChangeEventData",!1);e("registerVisibilityChangeEventCallback",!1);e("registerTouchEventCallback", -!1);e("fillGamepadEventData",!1);e("registerGamepadEventCallback",!1);e("registerBeforeUnloadEventCallback",!1);e("fillBatteryEventData",!1);e("battery",!1);e("registerBatteryEventCallback",!1);e("setCanvasElementSize",!1);e("getCanvasElementSize",!1);e("demangle",!1);e("demangleAll",!1);e("jsStackTrace",!1);e("stackTrace",!1);e("getEnvStrings",!1);e("checkWasiClock",!1);e("flush_NO_FILESYSTEM",!1);e("dlopenMissingError",!1);e("setImmediateWrapped",!1);e("clearImmediateWrapped",!1);e("polyfillSetImmediate", -!1);e("uncaughtExceptionCount",!1);e("exceptionLast",!1);e("exceptionCaught",!1);e("ExceptionInfo",!1);e("exception_addRef",!1);e("exception_decRef",!1);e("Browser",!1);e("setMainLoop",!1);e("wget",!1);e("tempFixedLengthArray",!1);e("miniTempWebGLFloatBuffers",!1);e("heapObjectForWebGLType",!1);e("heapAccessShiftForWebGLHeap",!1);e("GL",!1);e("emscriptenWebGLGet",!1);e("computeUnpackAlignedImageSize",!1);e("emscriptenWebGLGetTexPixelData",!1);e("emscriptenWebGLGetUniform",!1);e("webglGetUniformLocation", -!1);e("webglPrepareUniformLocationsBeforeFirstUse",!1);e("webglGetLeftBracePos",!1);e("emscriptenWebGLGetVertexAttrib",!1);e("writeGLArray",!1);e("AL",!1);e("SDL_unicode",!1);e("SDL_ttfContext",!1);e("SDL_audio",!1);e("SDL",!1);e("SDL_gfx",!1);e("GLUT",!1);e("EGL",!1);e("GLFW_Window",!1);e("GLFW",!1);e("GLEW",!1);e("IDBStore",!1);e("runAndAbortIfError",!1);m("ALLOC_NORMAL",!1);m("ALLOC_STACK",!1);var ya;sa=function b(){ya||Ga();ya||(sa=b)};a.run=Ga;if(a.preInit)for("function"==typeof a.preInit&&(a.preInit= -[a.preInit]);0=w.size?(r(0>>=0;switch(d.BYTES_PER_ELEMENT){case 2:f>>>=1;break;case 4:f>>>=2;break;case 8:f>>>=3}for(var q=0;qb.byteLength)return a.INVALID_GEOMETRY_TYPE;switch(b[7]){case 0:return a.POINT_CLOUD;case 1:return a.TRIANGULAR_MESH;default:return a.INVALID_GEOMETRY_TYPE}};return k.ready}}(); +var DracoDecoderModule=function(){var l="undefined"!==typeof document&&document.currentScript?document.currentScript.src:void 0;"undefined"!==typeof __filename&&(l=l||__filename);return function(g){function h(d){return b.locateFile?b.locateFile(d,Z):Z+d}function q(d,a){Object.getOwnPropertyDescriptor(b,d)||Object.defineProperty(b,d,{configurable:!0,get:function(){z("Module."+d+" has been replaced with plain "+a+" (the initial value can be provided on Module, but after startup the value is only looked for on a local variable of that name)")}})} +function n(d){return"FS_createPath"===d||"FS_createDataFile"===d||"FS_createPreloadedFile"===d||"FS_unlink"===d||"addRunDependency"===d||"FS_createLazyFile"===d||"FS_createDevice"===d||"removeRunDependency"===d}function r(d,a){d||z("Assertion failed"+(a?": "+a:""))}function k(d,a,c){var e=a+c;for(c=a;d[c]&&!(c>=e);)++c;if(16m?e+=String.fromCharCode(m):(m-=65536,e+=String.fromCharCode(55296|m>>10,56320|m&1023))}}else e+=String.fromCharCode(m)}return e}function t(d,a){return d?k(na,d,a):""}function w(d){Aa=d;b.HEAP8=ba=new Int8Array(d);b.HEAP16=new Int16Array(d);b.HEAP32=ja=new Int32Array(d);b.HEAPU8= +na=new Uint8Array(d);b.HEAPU16=new Uint16Array(d);b.HEAPU32=G=new Uint32Array(d);b.HEAPF32=new Float32Array(d);b.HEAPF64=new Float64Array(d)}function B(){var d=Ba();r(0==(d&3));G[d>>2]=34821223;G[d+4>>2]=2310721022;G[0]=1668509029}function I(){if(!ta){var d=Ba(),a=G[d>>2],c=G[d+4>>2];34821223==a&&2310721022==c||z("Stack overflow! Stack cookie has been overwritten at 0x"+d.toString(16)+", expected hex dwords 0x89BACDFE and 0x2135467, but received 0x"+c.toString(16)+" 0x"+a.toString(16));1668509029!== +G[0]&&z("Runtime error: The application has corrupted its heap memory area (address zero)!")}}function ma(d){fa++;b.monitorRunDependencies&&b.monitorRunDependencies(fa);d?(r(!oa[d]),oa[d]=1,null===ha&&"undefined"!=typeof setInterval&&(ha=setInterval(function(){if(ta)clearInterval(ha),ha=null;else{var a=!1,c;for(c in oa)a||(a=!0,J("still waiting on run dependencies:")),J("dependency: "+c);a&&J("(end of list)")}},1E4))):J("warning: run dependency added without ID")}function z(d){if(b.onAbort)b.onAbort(d); +d="Aborted("+d+")";J(d);ta=!0;d=new WebAssembly.RuntimeError(d);ua(d);throw d;}function f(d,a){return function(){var c=a;a||(c=b.asm);r(va,"native function `"+d+"` called before runtime initialization");c[d]||r(c[d],"exported native function `"+d+"` not found");return c[d].apply(null,arguments)}}function ia(d){try{if(d==K&&pa)return new Uint8Array(pa);if(qa)return qa(d);throw"both async and sync fetching of the wasm failed";}catch(a){z(a)}}function la(){if(!pa&&(Ca||ka)){if("function"==typeof fetch&& +!K.startsWith("file://"))return fetch(K,{credentials:"same-origin"}).then(function(d){if(!d.ok)throw"failed to load wasm binary file at '"+K+"'";return d.arrayBuffer()}).catch(function(){return ia(K)});if(wa)return new Promise(function(d,a){wa(K,function(c){d(new Uint8Array(c))},a)})}return Promise.resolve().then(function(){return ia(K)})}function Da(d){for(;0>2]=a};this.get_type=function(){return G[this.ptr+4>>2]};this.set_destructor=function(a){G[this.ptr+8>>2]=a};this.get_destructor=function(){return G[this.ptr+8>>2]};this.set_refcount=function(a){ja[this.ptr>>2]=a};this.set_caught=function(a){ba[this.ptr+12>>0]=a?1:0};this.get_caught=function(){return 0!=ba[this.ptr+12>>0]};this.set_rethrown=function(a){ba[this.ptr+13>>0]=a?1:0};this.get_rethrown=function(){return 0!=ba[this.ptr+13>>0]};this.init= +function(a,c){this.set_adjusted_ptr(0);this.set_type(a);this.set_destructor(c);this.set_refcount(0);this.set_caught(!1);this.set_rethrown(!1)};this.add_ref=function(){ja[this.ptr>>2]+=1};this.release_ref=function(){var a=ja[this.ptr>>2];ja[this.ptr>>2]=a-1;r(0>2]=a};this.get_adjusted_ptr=function(){return G[this.ptr+16>>2]};this.get_exception_ptr=function(){if(ab(this.get_type()))return G[this.excPtr>>2];var a=this.get_adjusted_ptr(); +return 0!==a?a:this.excPtr}}function La(d){function a(){if(!ya&&(ya=!0,b.calledRun=!0,!ta)){r(!va);va=!0;I();Da(Ea);Ma(b);if(b.onRuntimeInitialized)b.onRuntimeInitialized();r(!b._main,'compiled without a main, but one is present. if you added it from JS, use Module["onRuntimeInitialized"]');I();if(b.postRun)for("function"==typeof b.postRun&&(b.postRun=[b.postRun]);b.postRun.length;)Na.unshift(b.postRun.shift());Da(Na)}}if(!(0=e?a++:2047>=e?a+=2:55296<=e&&57343>=e?(a+=4,++c):a+=3}a=Array(a+1);c=0;e=a.length;if(0=u){var D=d.charCodeAt(++m);u=65536+((u&1023)<<10)|D&1023}if(127>=u){if(c>=e)break;a[c++]=u}else{if(2047>=u){if(c+1>=e)break;a[c++]=192|u>>6}else{if(65535>=u){if(c+2>=e)break;a[c++]=224|u>>12}else{if(c+3>=e)break;1114111>18;a[c++]=128|u>>12& +63}a[c++]=128|u>>6&63}a[c++]=128|u&63}}a[c]=0}d=v.alloc(a,ba);v.copy(a,ba,d);return d}return d}function Fa(d){if("object"===typeof d){var a=v.alloc(d,ba);v.copy(d,ba,a);return a}return d}function ca(){throw"cannot construct a VoidPtr, no constructor in IDL";}function W(){this.ptr=bb();C(W)[this.ptr]=this}function U(){this.ptr=cb();C(U)[this.ptr]=this}function aa(){this.ptr=db();C(aa)[this.ptr]=this}function y(){this.ptr=eb();C(y)[this.ptr]=this}function F(){this.ptr=fb();C(F)[this.ptr]=this}function L(){this.ptr= +gb();C(L)[this.ptr]=this}function M(){this.ptr=hb();C(M)[this.ptr]=this}function H(){this.ptr=ib();C(H)[this.ptr]=this}function X(){this.ptr=jb();C(X)[this.ptr]=this}function E(){throw"cannot construct a Status, no constructor in IDL";}function N(){this.ptr=kb();C(N)[this.ptr]=this}function O(){this.ptr=lb();C(O)[this.ptr]=this}function P(){this.ptr=mb();C(P)[this.ptr]=this}function Q(){this.ptr=nb();C(Q)[this.ptr]=this}function R(){this.ptr=ob();C(R)[this.ptr]=this}function S(){this.ptr=pb();C(S)[this.ptr]= +this}function T(){this.ptr=qb();C(T)[this.ptr]=this}function A(){this.ptr=rb();C(A)[this.ptr]=this}function p(){this.ptr=sb();C(p)[this.ptr]=this}g=g||{};var b="undefined"!=typeof g?g:{},Ma,ua;b.ready=new Promise(function(d,a){Ma=d;ua=a});"_free _malloc _emscripten_bind_VoidPtr___destroy___0 _emscripten_bind_DecoderBuffer_DecoderBuffer_0 _emscripten_bind_DecoderBuffer_Init_2 _emscripten_bind_DecoderBuffer___destroy___0 _emscripten_bind_AttributeTransformData_AttributeTransformData_0 _emscripten_bind_AttributeTransformData_transform_type_0 _emscripten_bind_AttributeTransformData___destroy___0 _emscripten_bind_GeometryAttribute_GeometryAttribute_0 _emscripten_bind_GeometryAttribute___destroy___0 _emscripten_bind_PointAttribute_PointAttribute_0 _emscripten_bind_PointAttribute_size_0 _emscripten_bind_PointAttribute_GetAttributeTransformData_0 _emscripten_bind_PointAttribute_attribute_type_0 _emscripten_bind_PointAttribute_data_type_0 _emscripten_bind_PointAttribute_num_components_0 _emscripten_bind_PointAttribute_normalized_0 _emscripten_bind_PointAttribute_byte_stride_0 _emscripten_bind_PointAttribute_byte_offset_0 _emscripten_bind_PointAttribute_unique_id_0 _emscripten_bind_PointAttribute___destroy___0 _emscripten_bind_AttributeQuantizationTransform_AttributeQuantizationTransform_0 _emscripten_bind_AttributeQuantizationTransform_InitFromAttribute_1 _emscripten_bind_AttributeQuantizationTransform_quantization_bits_0 _emscripten_bind_AttributeQuantizationTransform_min_value_1 _emscripten_bind_AttributeQuantizationTransform_range_0 _emscripten_bind_AttributeQuantizationTransform___destroy___0 _emscripten_bind_AttributeOctahedronTransform_AttributeOctahedronTransform_0 _emscripten_bind_AttributeOctahedronTransform_InitFromAttribute_1 _emscripten_bind_AttributeOctahedronTransform_quantization_bits_0 _emscripten_bind_AttributeOctahedronTransform___destroy___0 _emscripten_bind_PointCloud_PointCloud_0 _emscripten_bind_PointCloud_num_attributes_0 _emscripten_bind_PointCloud_num_points_0 _emscripten_bind_PointCloud___destroy___0 _emscripten_bind_Mesh_Mesh_0 _emscripten_bind_Mesh_num_faces_0 _emscripten_bind_Mesh_num_attributes_0 _emscripten_bind_Mesh_num_points_0 _emscripten_bind_Mesh___destroy___0 _emscripten_bind_Metadata_Metadata_0 _emscripten_bind_Metadata___destroy___0 _emscripten_bind_Status_code_0 _emscripten_bind_Status_ok_0 _emscripten_bind_Status_error_msg_0 _emscripten_bind_Status___destroy___0 _emscripten_bind_DracoFloat32Array_DracoFloat32Array_0 _emscripten_bind_DracoFloat32Array_GetValue_1 _emscripten_bind_DracoFloat32Array_size_0 _emscripten_bind_DracoFloat32Array___destroy___0 _emscripten_bind_DracoInt8Array_DracoInt8Array_0 _emscripten_bind_DracoInt8Array_GetValue_1 _emscripten_bind_DracoInt8Array_size_0 _emscripten_bind_DracoInt8Array___destroy___0 _emscripten_bind_DracoUInt8Array_DracoUInt8Array_0 _emscripten_bind_DracoUInt8Array_GetValue_1 _emscripten_bind_DracoUInt8Array_size_0 _emscripten_bind_DracoUInt8Array___destroy___0 _emscripten_bind_DracoInt16Array_DracoInt16Array_0 _emscripten_bind_DracoInt16Array_GetValue_1 _emscripten_bind_DracoInt16Array_size_0 _emscripten_bind_DracoInt16Array___destroy___0 _emscripten_bind_DracoUInt16Array_DracoUInt16Array_0 _emscripten_bind_DracoUInt16Array_GetValue_1 _emscripten_bind_DracoUInt16Array_size_0 _emscripten_bind_DracoUInt16Array___destroy___0 _emscripten_bind_DracoInt32Array_DracoInt32Array_0 _emscripten_bind_DracoInt32Array_GetValue_1 _emscripten_bind_DracoInt32Array_size_0 _emscripten_bind_DracoInt32Array___destroy___0 _emscripten_bind_DracoUInt32Array_DracoUInt32Array_0 _emscripten_bind_DracoUInt32Array_GetValue_1 _emscripten_bind_DracoUInt32Array_size_0 _emscripten_bind_DracoUInt32Array___destroy___0 _emscripten_bind_MetadataQuerier_MetadataQuerier_0 _emscripten_bind_MetadataQuerier_HasEntry_2 _emscripten_bind_MetadataQuerier_GetIntEntry_2 _emscripten_bind_MetadataQuerier_GetIntEntryArray_3 _emscripten_bind_MetadataQuerier_GetDoubleEntry_2 _emscripten_bind_MetadataQuerier_GetStringEntry_2 _emscripten_bind_MetadataQuerier_NumEntries_1 _emscripten_bind_MetadataQuerier_GetEntryName_2 _emscripten_bind_MetadataQuerier___destroy___0 _emscripten_bind_Decoder_Decoder_0 _emscripten_bind_Decoder_DecodeArrayToPointCloud_3 _emscripten_bind_Decoder_DecodeArrayToMesh_3 _emscripten_bind_Decoder_GetAttributeId_2 _emscripten_bind_Decoder_GetAttributeIdByName_2 _emscripten_bind_Decoder_GetAttributeIdByMetadataEntry_3 _emscripten_bind_Decoder_GetAttribute_2 _emscripten_bind_Decoder_GetAttributeByUniqueId_2 _emscripten_bind_Decoder_GetMetadata_1 _emscripten_bind_Decoder_GetAttributeMetadata_2 _emscripten_bind_Decoder_GetFaceFromMesh_3 _emscripten_bind_Decoder_GetTriangleStripsFromMesh_2 _emscripten_bind_Decoder_GetTrianglesUInt16Array_3 _emscripten_bind_Decoder_GetTrianglesUInt32Array_3 _emscripten_bind_Decoder_GetAttributeFloat_3 _emscripten_bind_Decoder_GetAttributeFloatForAllPoints_3 _emscripten_bind_Decoder_GetAttributeIntForAllPoints_3 _emscripten_bind_Decoder_GetAttributeInt8ForAllPoints_3 _emscripten_bind_Decoder_GetAttributeUInt8ForAllPoints_3 _emscripten_bind_Decoder_GetAttributeInt16ForAllPoints_3 _emscripten_bind_Decoder_GetAttributeUInt16ForAllPoints_3 _emscripten_bind_Decoder_GetAttributeInt32ForAllPoints_3 _emscripten_bind_Decoder_GetAttributeUInt32ForAllPoints_3 _emscripten_bind_Decoder_GetAttributeDataArrayForAllPoints_5 _emscripten_bind_Decoder_SkipAttributeTransform_1 _emscripten_bind_Decoder_GetEncodedGeometryType_Deprecated_1 _emscripten_bind_Decoder_DecodeBufferToPointCloud_2 _emscripten_bind_Decoder_DecodeBufferToMesh_2 _emscripten_bind_Decoder___destroy___0 _emscripten_enum_draco_AttributeTransformType_ATTRIBUTE_INVALID_TRANSFORM _emscripten_enum_draco_AttributeTransformType_ATTRIBUTE_NO_TRANSFORM _emscripten_enum_draco_AttributeTransformType_ATTRIBUTE_QUANTIZATION_TRANSFORM _emscripten_enum_draco_AttributeTransformType_ATTRIBUTE_OCTAHEDRON_TRANSFORM _emscripten_enum_draco_GeometryAttribute_Type_INVALID _emscripten_enum_draco_GeometryAttribute_Type_POSITION _emscripten_enum_draco_GeometryAttribute_Type_NORMAL _emscripten_enum_draco_GeometryAttribute_Type_COLOR _emscripten_enum_draco_GeometryAttribute_Type_TEX_COORD _emscripten_enum_draco_GeometryAttribute_Type_GENERIC _emscripten_enum_draco_EncodedGeometryType_INVALID_GEOMETRY_TYPE _emscripten_enum_draco_EncodedGeometryType_POINT_CLOUD _emscripten_enum_draco_EncodedGeometryType_TRIANGULAR_MESH _emscripten_enum_draco_DataType_DT_INVALID _emscripten_enum_draco_DataType_DT_INT8 _emscripten_enum_draco_DataType_DT_UINT8 _emscripten_enum_draco_DataType_DT_INT16 _emscripten_enum_draco_DataType_DT_UINT16 _emscripten_enum_draco_DataType_DT_INT32 _emscripten_enum_draco_DataType_DT_UINT32 _emscripten_enum_draco_DataType_DT_INT64 _emscripten_enum_draco_DataType_DT_UINT64 _emscripten_enum_draco_DataType_DT_FLOAT32 _emscripten_enum_draco_DataType_DT_FLOAT64 _emscripten_enum_draco_DataType_DT_BOOL _emscripten_enum_draco_DataType_DT_TYPES_COUNT _emscripten_enum_draco_StatusCode_OK _emscripten_enum_draco_StatusCode_DRACO_ERROR _emscripten_enum_draco_StatusCode_IO_ERROR _emscripten_enum_draco_StatusCode_INVALID_PARAMETER _emscripten_enum_draco_StatusCode_UNSUPPORTED_VERSION _emscripten_enum_draco_StatusCode_UNKNOWN_VERSION _fflush onRuntimeInitialized".split(" ").forEach(function(d){Object.getOwnPropertyDescriptor(b.ready, +d)||Object.defineProperty(b.ready,d,{get:function(){return z("You are getting "+d+" on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")},set:function(){return z("You are setting "+d+" on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}})});var Qa=!1,Ra=!1;b.onRuntimeInitialized=function(){Qa=!0;if(Ra&&"function"===typeof b.onModuleLoaded)b.onModuleLoaded(b)}; +b.onModuleParsed=function(){Ra=!0;if(Qa&&"function"===typeof b.onModuleLoaded)b.onModuleLoaded(b)};b.isVersionSupported=function(d){if("string"!==typeof d)return!1;d=d.split(".");return 2>d.length||3=d[1]?!0:0!=d[0]||10>>=0;r(d>a);if(2147483648=c;c*=2){var e=a*(1+.2/c);e=Math.min(e,d+100663296);var m=Math;e=Math.max(d,e);m=m.min.call(m,2147483648,e+(65536-e%65536)%65536);a:{e=m;try{ra.grow(e-Aa.byteLength+65535>>>16);w(ra.buffer);var u=1;break a}catch(D){J("emscripten_realloc_buffer: Attempted to grow heap from "+Aa.byteLength+" bytes to "+ +e+" bytes, but got error: "+D)}u=void 0}if(u)return!0}J("Failed to grow the heap from "+a+" bytes to "+m+" bytes, not enough memory!");return!1},fd_close:function(d){z("fd_close called without SYSCALLS_REQUIRE_FILESYSTEM")},fd_seek:function(d,a,c,e,m){return 70},fd_write:function(d,a,c,e){for(var m=0,u=0;u>2],Xa=G[a+4>>2];a+=8;for(var Ia=0;Ia>2]=m;return 0}}; +(function(){function d(u,D){b.asm=u.exports;ra=b.asm.memory;r(ra,"memory not found in wasm exports");w(ra.buffer);Wa=b.asm.__indirect_function_table;r(Wa,"table not found in wasm exports");Ea.unshift(b.asm.__wasm_call_ctors);fa--;b.monitorRunDependencies&&b.monitorRunDependencies(fa);r(oa["wasm-instantiate"]);delete oa["wasm-instantiate"];0==fa&&(null!==ha&&(clearInterval(ha),ha=null),sa&&(u=sa,sa=null,u()))}function a(u){r(b===m,"the Module object should not be replaced during async compilation - perhaps the order of HTML elements is wrong?"); +m=null;d(u.instance)}function c(u){return la().then(function(D){return WebAssembly.instantiate(D,e)}).then(function(D){return D}).then(u,function(D){J("failed to asynchronously prepare wasm: "+D);K.startsWith("file://")&&J("warning: Loading from a file URI ("+K+") is not supported in most browsers. See https://emscripten.org/docs/getting_started/FAQ.html#how-do-i-run-a-local-webserver-for-testing-why-does-my-program-stall-in-downloading-or-preparing");z(D)})}var e={env:Za,wasi_snapshot_preview1:Za}; +ma("wasm-instantiate");var m=b;if(b.instantiateWasm)try{return b.instantiateWasm(e,d)}catch(u){J("Module.instantiateWasm callback failed with error: "+u),ua(u)}(function(){return pa||"function"!=typeof WebAssembly.instantiateStreaming||K.startsWith("data:application/octet-stream;base64,")||K.startsWith("file://")||xa||"function"!=typeof fetch?c(a):fetch(K,{credentials:"same-origin"}).then(function(u){return WebAssembly.instantiateStreaming(u,e).then(a,function(D){J("wasm streaming compile failed: "+ +D);J("falling back to ArrayBuffer instantiation");return c(a)})})})().catch(ua);return{}})();b.___wasm_call_ctors=f("__wasm_call_ctors");var xb=b._emscripten_bind_VoidPtr___destroy___0=f("emscripten_bind_VoidPtr___destroy___0"),bb=b._emscripten_bind_DecoderBuffer_DecoderBuffer_0=f("emscripten_bind_DecoderBuffer_DecoderBuffer_0"),yb=b._emscripten_bind_DecoderBuffer_Init_2=f("emscripten_bind_DecoderBuffer_Init_2"),zb=b._emscripten_bind_DecoderBuffer___destroy___0=f("emscripten_bind_DecoderBuffer___destroy___0"), +cb=b._emscripten_bind_AttributeTransformData_AttributeTransformData_0=f("emscripten_bind_AttributeTransformData_AttributeTransformData_0"),Ab=b._emscripten_bind_AttributeTransformData_transform_type_0=f("emscripten_bind_AttributeTransformData_transform_type_0"),Bb=b._emscripten_bind_AttributeTransformData___destroy___0=f("emscripten_bind_AttributeTransformData___destroy___0"),db=b._emscripten_bind_GeometryAttribute_GeometryAttribute_0=f("emscripten_bind_GeometryAttribute_GeometryAttribute_0"),Cb= +b._emscripten_bind_GeometryAttribute___destroy___0=f("emscripten_bind_GeometryAttribute___destroy___0"),eb=b._emscripten_bind_PointAttribute_PointAttribute_0=f("emscripten_bind_PointAttribute_PointAttribute_0"),Db=b._emscripten_bind_PointAttribute_size_0=f("emscripten_bind_PointAttribute_size_0"),Eb=b._emscripten_bind_PointAttribute_GetAttributeTransformData_0=f("emscripten_bind_PointAttribute_GetAttributeTransformData_0"),Fb=b._emscripten_bind_PointAttribute_attribute_type_0=f("emscripten_bind_PointAttribute_attribute_type_0"), +Gb=b._emscripten_bind_PointAttribute_data_type_0=f("emscripten_bind_PointAttribute_data_type_0"),Hb=b._emscripten_bind_PointAttribute_num_components_0=f("emscripten_bind_PointAttribute_num_components_0"),Ib=b._emscripten_bind_PointAttribute_normalized_0=f("emscripten_bind_PointAttribute_normalized_0"),Jb=b._emscripten_bind_PointAttribute_byte_stride_0=f("emscripten_bind_PointAttribute_byte_stride_0"),Kb=b._emscripten_bind_PointAttribute_byte_offset_0=f("emscripten_bind_PointAttribute_byte_offset_0"), +Lb=b._emscripten_bind_PointAttribute_unique_id_0=f("emscripten_bind_PointAttribute_unique_id_0"),Mb=b._emscripten_bind_PointAttribute___destroy___0=f("emscripten_bind_PointAttribute___destroy___0"),fb=b._emscripten_bind_AttributeQuantizationTransform_AttributeQuantizationTransform_0=f("emscripten_bind_AttributeQuantizationTransform_AttributeQuantizationTransform_0"),Nb=b._emscripten_bind_AttributeQuantizationTransform_InitFromAttribute_1=f("emscripten_bind_AttributeQuantizationTransform_InitFromAttribute_1"), +Ob=b._emscripten_bind_AttributeQuantizationTransform_quantization_bits_0=f("emscripten_bind_AttributeQuantizationTransform_quantization_bits_0"),Pb=b._emscripten_bind_AttributeQuantizationTransform_min_value_1=f("emscripten_bind_AttributeQuantizationTransform_min_value_1"),Qb=b._emscripten_bind_AttributeQuantizationTransform_range_0=f("emscripten_bind_AttributeQuantizationTransform_range_0"),Rb=b._emscripten_bind_AttributeQuantizationTransform___destroy___0=f("emscripten_bind_AttributeQuantizationTransform___destroy___0"), +gb=b._emscripten_bind_AttributeOctahedronTransform_AttributeOctahedronTransform_0=f("emscripten_bind_AttributeOctahedronTransform_AttributeOctahedronTransform_0"),Sb=b._emscripten_bind_AttributeOctahedronTransform_InitFromAttribute_1=f("emscripten_bind_AttributeOctahedronTransform_InitFromAttribute_1"),Tb=b._emscripten_bind_AttributeOctahedronTransform_quantization_bits_0=f("emscripten_bind_AttributeOctahedronTransform_quantization_bits_0"),Ub=b._emscripten_bind_AttributeOctahedronTransform___destroy___0= +f("emscripten_bind_AttributeOctahedronTransform___destroy___0"),hb=b._emscripten_bind_PointCloud_PointCloud_0=f("emscripten_bind_PointCloud_PointCloud_0"),Vb=b._emscripten_bind_PointCloud_num_attributes_0=f("emscripten_bind_PointCloud_num_attributes_0"),Wb=b._emscripten_bind_PointCloud_num_points_0=f("emscripten_bind_PointCloud_num_points_0"),Xb=b._emscripten_bind_PointCloud___destroy___0=f("emscripten_bind_PointCloud___destroy___0"),ib=b._emscripten_bind_Mesh_Mesh_0=f("emscripten_bind_Mesh_Mesh_0"), +Yb=b._emscripten_bind_Mesh_num_faces_0=f("emscripten_bind_Mesh_num_faces_0"),Zb=b._emscripten_bind_Mesh_num_attributes_0=f("emscripten_bind_Mesh_num_attributes_0"),$b=b._emscripten_bind_Mesh_num_points_0=f("emscripten_bind_Mesh_num_points_0"),ac=b._emscripten_bind_Mesh___destroy___0=f("emscripten_bind_Mesh___destroy___0"),jb=b._emscripten_bind_Metadata_Metadata_0=f("emscripten_bind_Metadata_Metadata_0"),bc=b._emscripten_bind_Metadata___destroy___0=f("emscripten_bind_Metadata___destroy___0"),cc=b._emscripten_bind_Status_code_0= +f("emscripten_bind_Status_code_0"),dc=b._emscripten_bind_Status_ok_0=f("emscripten_bind_Status_ok_0"),ec=b._emscripten_bind_Status_error_msg_0=f("emscripten_bind_Status_error_msg_0"),fc=b._emscripten_bind_Status___destroy___0=f("emscripten_bind_Status___destroy___0"),kb=b._emscripten_bind_DracoFloat32Array_DracoFloat32Array_0=f("emscripten_bind_DracoFloat32Array_DracoFloat32Array_0"),gc=b._emscripten_bind_DracoFloat32Array_GetValue_1=f("emscripten_bind_DracoFloat32Array_GetValue_1"),hc=b._emscripten_bind_DracoFloat32Array_size_0= +f("emscripten_bind_DracoFloat32Array_size_0"),ic=b._emscripten_bind_DracoFloat32Array___destroy___0=f("emscripten_bind_DracoFloat32Array___destroy___0"),lb=b._emscripten_bind_DracoInt8Array_DracoInt8Array_0=f("emscripten_bind_DracoInt8Array_DracoInt8Array_0"),jc=b._emscripten_bind_DracoInt8Array_GetValue_1=f("emscripten_bind_DracoInt8Array_GetValue_1"),kc=b._emscripten_bind_DracoInt8Array_size_0=f("emscripten_bind_DracoInt8Array_size_0"),lc=b._emscripten_bind_DracoInt8Array___destroy___0=f("emscripten_bind_DracoInt8Array___destroy___0"), +mb=b._emscripten_bind_DracoUInt8Array_DracoUInt8Array_0=f("emscripten_bind_DracoUInt8Array_DracoUInt8Array_0"),mc=b._emscripten_bind_DracoUInt8Array_GetValue_1=f("emscripten_bind_DracoUInt8Array_GetValue_1"),nc=b._emscripten_bind_DracoUInt8Array_size_0=f("emscripten_bind_DracoUInt8Array_size_0"),oc=b._emscripten_bind_DracoUInt8Array___destroy___0=f("emscripten_bind_DracoUInt8Array___destroy___0"),nb=b._emscripten_bind_DracoInt16Array_DracoInt16Array_0=f("emscripten_bind_DracoInt16Array_DracoInt16Array_0"), +pc=b._emscripten_bind_DracoInt16Array_GetValue_1=f("emscripten_bind_DracoInt16Array_GetValue_1"),qc=b._emscripten_bind_DracoInt16Array_size_0=f("emscripten_bind_DracoInt16Array_size_0"),rc=b._emscripten_bind_DracoInt16Array___destroy___0=f("emscripten_bind_DracoInt16Array___destroy___0"),ob=b._emscripten_bind_DracoUInt16Array_DracoUInt16Array_0=f("emscripten_bind_DracoUInt16Array_DracoUInt16Array_0"),sc=b._emscripten_bind_DracoUInt16Array_GetValue_1=f("emscripten_bind_DracoUInt16Array_GetValue_1"), +tc=b._emscripten_bind_DracoUInt16Array_size_0=f("emscripten_bind_DracoUInt16Array_size_0"),uc=b._emscripten_bind_DracoUInt16Array___destroy___0=f("emscripten_bind_DracoUInt16Array___destroy___0"),pb=b._emscripten_bind_DracoInt32Array_DracoInt32Array_0=f("emscripten_bind_DracoInt32Array_DracoInt32Array_0"),vc=b._emscripten_bind_DracoInt32Array_GetValue_1=f("emscripten_bind_DracoInt32Array_GetValue_1"),wc=b._emscripten_bind_DracoInt32Array_size_0=f("emscripten_bind_DracoInt32Array_size_0"),xc=b._emscripten_bind_DracoInt32Array___destroy___0= +f("emscripten_bind_DracoInt32Array___destroy___0"),qb=b._emscripten_bind_DracoUInt32Array_DracoUInt32Array_0=f("emscripten_bind_DracoUInt32Array_DracoUInt32Array_0"),yc=b._emscripten_bind_DracoUInt32Array_GetValue_1=f("emscripten_bind_DracoUInt32Array_GetValue_1"),zc=b._emscripten_bind_DracoUInt32Array_size_0=f("emscripten_bind_DracoUInt32Array_size_0"),Ac=b._emscripten_bind_DracoUInt32Array___destroy___0=f("emscripten_bind_DracoUInt32Array___destroy___0"),rb=b._emscripten_bind_MetadataQuerier_MetadataQuerier_0= +f("emscripten_bind_MetadataQuerier_MetadataQuerier_0"),Bc=b._emscripten_bind_MetadataQuerier_HasEntry_2=f("emscripten_bind_MetadataQuerier_HasEntry_2"),Cc=b._emscripten_bind_MetadataQuerier_GetIntEntry_2=f("emscripten_bind_MetadataQuerier_GetIntEntry_2"),Dc=b._emscripten_bind_MetadataQuerier_GetIntEntryArray_3=f("emscripten_bind_MetadataQuerier_GetIntEntryArray_3"),Ec=b._emscripten_bind_MetadataQuerier_GetDoubleEntry_2=f("emscripten_bind_MetadataQuerier_GetDoubleEntry_2"),Fc=b._emscripten_bind_MetadataQuerier_GetStringEntry_2= +f("emscripten_bind_MetadataQuerier_GetStringEntry_2"),Gc=b._emscripten_bind_MetadataQuerier_NumEntries_1=f("emscripten_bind_MetadataQuerier_NumEntries_1"),Hc=b._emscripten_bind_MetadataQuerier_GetEntryName_2=f("emscripten_bind_MetadataQuerier_GetEntryName_2"),Ic=b._emscripten_bind_MetadataQuerier___destroy___0=f("emscripten_bind_MetadataQuerier___destroy___0"),sb=b._emscripten_bind_Decoder_Decoder_0=f("emscripten_bind_Decoder_Decoder_0"),Jc=b._emscripten_bind_Decoder_DecodeArrayToPointCloud_3=f("emscripten_bind_Decoder_DecodeArrayToPointCloud_3"), +Kc=b._emscripten_bind_Decoder_DecodeArrayToMesh_3=f("emscripten_bind_Decoder_DecodeArrayToMesh_3"),Lc=b._emscripten_bind_Decoder_GetAttributeId_2=f("emscripten_bind_Decoder_GetAttributeId_2"),Mc=b._emscripten_bind_Decoder_GetAttributeIdByName_2=f("emscripten_bind_Decoder_GetAttributeIdByName_2"),Nc=b._emscripten_bind_Decoder_GetAttributeIdByMetadataEntry_3=f("emscripten_bind_Decoder_GetAttributeIdByMetadataEntry_3"),Oc=b._emscripten_bind_Decoder_GetAttribute_2=f("emscripten_bind_Decoder_GetAttribute_2"), +Pc=b._emscripten_bind_Decoder_GetAttributeByUniqueId_2=f("emscripten_bind_Decoder_GetAttributeByUniqueId_2"),Qc=b._emscripten_bind_Decoder_GetMetadata_1=f("emscripten_bind_Decoder_GetMetadata_1"),Rc=b._emscripten_bind_Decoder_GetAttributeMetadata_2=f("emscripten_bind_Decoder_GetAttributeMetadata_2"),Sc=b._emscripten_bind_Decoder_GetFaceFromMesh_3=f("emscripten_bind_Decoder_GetFaceFromMesh_3"),Tc=b._emscripten_bind_Decoder_GetTriangleStripsFromMesh_2=f("emscripten_bind_Decoder_GetTriangleStripsFromMesh_2"), +Uc=b._emscripten_bind_Decoder_GetTrianglesUInt16Array_3=f("emscripten_bind_Decoder_GetTrianglesUInt16Array_3"),Vc=b._emscripten_bind_Decoder_GetTrianglesUInt32Array_3=f("emscripten_bind_Decoder_GetTrianglesUInt32Array_3"),Wc=b._emscripten_bind_Decoder_GetAttributeFloat_3=f("emscripten_bind_Decoder_GetAttributeFloat_3"),Xc=b._emscripten_bind_Decoder_GetAttributeFloatForAllPoints_3=f("emscripten_bind_Decoder_GetAttributeFloatForAllPoints_3"),Yc=b._emscripten_bind_Decoder_GetAttributeIntForAllPoints_3= +f("emscripten_bind_Decoder_GetAttributeIntForAllPoints_3"),Zc=b._emscripten_bind_Decoder_GetAttributeInt8ForAllPoints_3=f("emscripten_bind_Decoder_GetAttributeInt8ForAllPoints_3"),$c=b._emscripten_bind_Decoder_GetAttributeUInt8ForAllPoints_3=f("emscripten_bind_Decoder_GetAttributeUInt8ForAllPoints_3"),ad=b._emscripten_bind_Decoder_GetAttributeInt16ForAllPoints_3=f("emscripten_bind_Decoder_GetAttributeInt16ForAllPoints_3"),bd=b._emscripten_bind_Decoder_GetAttributeUInt16ForAllPoints_3=f("emscripten_bind_Decoder_GetAttributeUInt16ForAllPoints_3"), +cd=b._emscripten_bind_Decoder_GetAttributeInt32ForAllPoints_3=f("emscripten_bind_Decoder_GetAttributeInt32ForAllPoints_3"),dd=b._emscripten_bind_Decoder_GetAttributeUInt32ForAllPoints_3=f("emscripten_bind_Decoder_GetAttributeUInt32ForAllPoints_3"),ed=b._emscripten_bind_Decoder_GetAttributeDataArrayForAllPoints_5=f("emscripten_bind_Decoder_GetAttributeDataArrayForAllPoints_5"),fd=b._emscripten_bind_Decoder_SkipAttributeTransform_1=f("emscripten_bind_Decoder_SkipAttributeTransform_1"),gd=b._emscripten_bind_Decoder_GetEncodedGeometryType_Deprecated_1= +f("emscripten_bind_Decoder_GetEncodedGeometryType_Deprecated_1"),hd=b._emscripten_bind_Decoder_DecodeBufferToPointCloud_2=f("emscripten_bind_Decoder_DecodeBufferToPointCloud_2"),id=b._emscripten_bind_Decoder_DecodeBufferToMesh_2=f("emscripten_bind_Decoder_DecodeBufferToMesh_2"),jd=b._emscripten_bind_Decoder___destroy___0=f("emscripten_bind_Decoder___destroy___0"),kd=b._emscripten_enum_draco_AttributeTransformType_ATTRIBUTE_INVALID_TRANSFORM=f("emscripten_enum_draco_AttributeTransformType_ATTRIBUTE_INVALID_TRANSFORM"), +ld=b._emscripten_enum_draco_AttributeTransformType_ATTRIBUTE_NO_TRANSFORM=f("emscripten_enum_draco_AttributeTransformType_ATTRIBUTE_NO_TRANSFORM"),md=b._emscripten_enum_draco_AttributeTransformType_ATTRIBUTE_QUANTIZATION_TRANSFORM=f("emscripten_enum_draco_AttributeTransformType_ATTRIBUTE_QUANTIZATION_TRANSFORM"),nd=b._emscripten_enum_draco_AttributeTransformType_ATTRIBUTE_OCTAHEDRON_TRANSFORM=f("emscripten_enum_draco_AttributeTransformType_ATTRIBUTE_OCTAHEDRON_TRANSFORM"),od=b._emscripten_enum_draco_GeometryAttribute_Type_INVALID= +f("emscripten_enum_draco_GeometryAttribute_Type_INVALID"),pd=b._emscripten_enum_draco_GeometryAttribute_Type_POSITION=f("emscripten_enum_draco_GeometryAttribute_Type_POSITION"),qd=b._emscripten_enum_draco_GeometryAttribute_Type_NORMAL=f("emscripten_enum_draco_GeometryAttribute_Type_NORMAL"),rd=b._emscripten_enum_draco_GeometryAttribute_Type_COLOR=f("emscripten_enum_draco_GeometryAttribute_Type_COLOR"),sd=b._emscripten_enum_draco_GeometryAttribute_Type_TEX_COORD=f("emscripten_enum_draco_GeometryAttribute_Type_TEX_COORD"), +td=b._emscripten_enum_draco_GeometryAttribute_Type_GENERIC=f("emscripten_enum_draco_GeometryAttribute_Type_GENERIC"),ud=b._emscripten_enum_draco_EncodedGeometryType_INVALID_GEOMETRY_TYPE=f("emscripten_enum_draco_EncodedGeometryType_INVALID_GEOMETRY_TYPE"),vd=b._emscripten_enum_draco_EncodedGeometryType_POINT_CLOUD=f("emscripten_enum_draco_EncodedGeometryType_POINT_CLOUD"),wd=b._emscripten_enum_draco_EncodedGeometryType_TRIANGULAR_MESH=f("emscripten_enum_draco_EncodedGeometryType_TRIANGULAR_MESH"), +xd=b._emscripten_enum_draco_DataType_DT_INVALID=f("emscripten_enum_draco_DataType_DT_INVALID"),yd=b._emscripten_enum_draco_DataType_DT_INT8=f("emscripten_enum_draco_DataType_DT_INT8"),zd=b._emscripten_enum_draco_DataType_DT_UINT8=f("emscripten_enum_draco_DataType_DT_UINT8"),Ad=b._emscripten_enum_draco_DataType_DT_INT16=f("emscripten_enum_draco_DataType_DT_INT16"),Bd=b._emscripten_enum_draco_DataType_DT_UINT16=f("emscripten_enum_draco_DataType_DT_UINT16"),Cd=b._emscripten_enum_draco_DataType_DT_INT32= +f("emscripten_enum_draco_DataType_DT_INT32"),Dd=b._emscripten_enum_draco_DataType_DT_UINT32=f("emscripten_enum_draco_DataType_DT_UINT32"),Ed=b._emscripten_enum_draco_DataType_DT_INT64=f("emscripten_enum_draco_DataType_DT_INT64"),Fd=b._emscripten_enum_draco_DataType_DT_UINT64=f("emscripten_enum_draco_DataType_DT_UINT64"),Gd=b._emscripten_enum_draco_DataType_DT_FLOAT32=f("emscripten_enum_draco_DataType_DT_FLOAT32"),Hd=b._emscripten_enum_draco_DataType_DT_FLOAT64=f("emscripten_enum_draco_DataType_DT_FLOAT64"), +Id=b._emscripten_enum_draco_DataType_DT_BOOL=f("emscripten_enum_draco_DataType_DT_BOOL"),Jd=b._emscripten_enum_draco_DataType_DT_TYPES_COUNT=f("emscripten_enum_draco_DataType_DT_TYPES_COUNT"),Kd=b._emscripten_enum_draco_StatusCode_OK=f("emscripten_enum_draco_StatusCode_OK"),Ld=b._emscripten_enum_draco_StatusCode_DRACO_ERROR=f("emscripten_enum_draco_StatusCode_DRACO_ERROR"),Md=b._emscripten_enum_draco_StatusCode_IO_ERROR=f("emscripten_enum_draco_StatusCode_IO_ERROR"),Nd=b._emscripten_enum_draco_StatusCode_INVALID_PARAMETER= +f("emscripten_enum_draco_StatusCode_INVALID_PARAMETER"),Od=b._emscripten_enum_draco_StatusCode_UNSUPPORTED_VERSION=f("emscripten_enum_draco_StatusCode_UNSUPPORTED_VERSION"),Pd=b._emscripten_enum_draco_StatusCode_UNKNOWN_VERSION=f("emscripten_enum_draco_StatusCode_UNKNOWN_VERSION");b.___errno_location=f("__errno_location");b._fflush=f("fflush");var wb=b._malloc=f("malloc");b._free=f("free");var Oa=b._emscripten_stack_init=function(){return(Oa=b._emscripten_stack_init=b.asm.emscripten_stack_init).apply(null, +arguments)};b._emscripten_stack_get_free=function(){return(b._emscripten_stack_get_free=b.asm.emscripten_stack_get_free).apply(null,arguments)};b._emscripten_stack_get_base=function(){return(b._emscripten_stack_get_base=b.asm.emscripten_stack_get_base).apply(null,arguments)};var Ba=b._emscripten_stack_get_end=function(){return(Ba=b._emscripten_stack_get_end=b.asm.emscripten_stack_get_end).apply(null,arguments)};b.stackSave=f("stackSave");b.stackRestore=f("stackRestore");b.stackAlloc=f("stackAlloc"); +var ab=b.___cxa_is_pointer_type=f("__cxa_is_pointer_type");b.dynCall_jiji=f("dynCall_jiji");b.___start_em_js=15916;b.___stop_em_js=16014;"run UTF8ArrayToString UTF8ToString stringToUTF8Array stringToUTF8 lengthBytesUTF8 addOnPreRun addOnInit addOnPreMain addOnExit addOnPostRun addRunDependency removeRunDependency FS_createFolder FS_createPath FS_createDataFile FS_createPreloadedFile FS_createLazyFile FS_createLink FS_createDevice FS_unlink getLEB getFunctionTables alignFunctionTables registerFunctions prettyPrint getCompilerSetting print printErr callMain abort keepRuntimeAlive wasmMemory stackAlloc stackSave stackRestore getTempRet0 setTempRet0 writeStackCookie checkStackCookie ptrToString zeroMemory stringToNewUTF8 exitJS getHeapMax emscripten_realloc_buffer ENV ERRNO_CODES ERRNO_MESSAGES setErrNo inetPton4 inetNtop4 inetPton6 inetNtop6 readSockaddr writeSockaddr DNS getHostByName Protocols Sockets getRandomDevice warnOnce traverseStack UNWIND_CACHE convertPCtoSourceLocation readAsmConstArgsArray readAsmConstArgs mainThreadEM_ASM jstoi_q jstoi_s getExecutableName listenOnce autoResumeAudioContext dynCallLegacy getDynCaller dynCall handleException runtimeKeepalivePush runtimeKeepalivePop callUserCallback maybeExit safeSetTimeout asmjsMangle asyncLoad alignMemory mmapAlloc writeI53ToI64 writeI53ToI64Clamped writeI53ToI64Signaling writeI53ToU64Clamped writeI53ToU64Signaling readI53FromI64 readI53FromU64 convertI32PairToI53 convertI32PairToI53Checked convertU32PairToI53 getCFunc ccall cwrap uleb128Encode sigToWasmTypes generateFuncType convertJsFunctionToWasm freeTableIndexes functionsInTableMap getEmptyTableSlot updateTableMap addFunction removeFunction reallyNegative unSign strLen reSign formatString setValue getValue PATH PATH_FS intArrayFromString intArrayToString AsciiToString stringToAscii UTF16Decoder UTF16ToString stringToUTF16 lengthBytesUTF16 UTF32ToString stringToUTF32 lengthBytesUTF32 allocateUTF8 allocateUTF8OnStack writeStringToMemory writeArrayToMemory writeAsciiToMemory SYSCALLS getSocketFromFD getSocketAddress JSEvents registerKeyEventCallback specialHTMLTargets maybeCStringToJsString findEventTarget findCanvasEventTarget getBoundingClientRect fillMouseEventData registerMouseEventCallback registerWheelEventCallback registerUiEventCallback registerFocusEventCallback fillDeviceOrientationEventData registerDeviceOrientationEventCallback fillDeviceMotionEventData registerDeviceMotionEventCallback screenOrientation fillOrientationChangeEventData registerOrientationChangeEventCallback fillFullscreenChangeEventData registerFullscreenChangeEventCallback JSEvents_requestFullscreen JSEvents_resizeCanvasForFullscreen registerRestoreOldStyle hideEverythingExceptGivenElement restoreHiddenElements setLetterbox currentFullscreenStrategy restoreOldWindowedStyle softFullscreenResizeWebGLRenderTarget doRequestFullscreen fillPointerlockChangeEventData registerPointerlockChangeEventCallback registerPointerlockErrorEventCallback requestPointerLock fillVisibilityChangeEventData registerVisibilityChangeEventCallback registerTouchEventCallback fillGamepadEventData registerGamepadEventCallback registerBeforeUnloadEventCallback fillBatteryEventData battery registerBatteryEventCallback setCanvasElementSize getCanvasElementSize demangle demangleAll jsStackTrace stackTrace ExitStatus getEnvStrings checkWasiClock flush_NO_FILESYSTEM dlopenMissingError createDyncallWrapper setImmediateWrapped clearImmediateWrapped polyfillSetImmediate uncaughtExceptionCount exceptionLast exceptionCaught ExceptionInfo exception_addRef exception_decRef Browser setMainLoop wget tempFixedLengthArray miniTempWebGLFloatBuffers heapObjectForWebGLType heapAccessShiftForWebGLHeap GL emscriptenWebGLGet computeUnpackAlignedImageSize emscriptenWebGLGetTexPixelData emscriptenWebGLGetUniform webglGetUniformLocation webglPrepareUniformLocationsBeforeFirstUse webglGetLeftBracePos emscriptenWebGLGetVertexAttrib writeGLArray AL SDL_unicode SDL_ttfContext SDL_audio SDL SDL_gfx GLUT EGL GLFW_Window GLFW GLEW IDBStore runAndAbortIfError ALLOC_NORMAL ALLOC_STACK allocate".split(" ").forEach(function(d){Object.getOwnPropertyDescriptor(b, +d)||Object.defineProperty(b,d,{configurable:!0,get:function(){var a="'"+d+"' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)";n(d)&&(a+=". Alternatively, forcing filesystem support (-sFORCE_FILESYSTEM) can export this for you");z(a)}})});"ptrToString zeroMemory stringToNewUTF8 exitJS setErrNo inetPton4 inetNtop4 inetPton6 inetNtop6 readSockaddr writeSockaddr getHostByName getRandomDevice traverseStack convertPCtoSourceLocation readAsmConstArgs mainThreadEM_ASM jstoi_q jstoi_s getExecutableName listenOnce autoResumeAudioContext dynCallLegacy getDynCaller dynCall handleException runtimeKeepalivePush runtimeKeepalivePop callUserCallback maybeExit safeSetTimeout asmjsMangle asyncLoad alignMemory mmapAlloc writeI53ToI64 writeI53ToI64Clamped writeI53ToI64Signaling writeI53ToU64Clamped writeI53ToU64Signaling readI53FromI64 readI53FromU64 convertI32PairToI53 convertU32PairToI53 getCFunc ccall cwrap uleb128Encode sigToWasmTypes generateFuncType convertJsFunctionToWasm getEmptyTableSlot updateTableMap addFunction removeFunction reallyNegative unSign strLen reSign formatString intArrayToString AsciiToString stringToAscii UTF16ToString stringToUTF16 lengthBytesUTF16 UTF32ToString stringToUTF32 lengthBytesUTF32 allocateUTF8 allocateUTF8OnStack writeStringToMemory writeArrayToMemory writeAsciiToMemory getSocketFromFD getSocketAddress registerKeyEventCallback maybeCStringToJsString findEventTarget findCanvasEventTarget getBoundingClientRect fillMouseEventData registerMouseEventCallback registerWheelEventCallback registerUiEventCallback registerFocusEventCallback fillDeviceOrientationEventData registerDeviceOrientationEventCallback fillDeviceMotionEventData registerDeviceMotionEventCallback screenOrientation fillOrientationChangeEventData registerOrientationChangeEventCallback fillFullscreenChangeEventData registerFullscreenChangeEventCallback JSEvents_requestFullscreen JSEvents_resizeCanvasForFullscreen registerRestoreOldStyle hideEverythingExceptGivenElement restoreHiddenElements setLetterbox softFullscreenResizeWebGLRenderTarget doRequestFullscreen fillPointerlockChangeEventData registerPointerlockChangeEventCallback registerPointerlockErrorEventCallback requestPointerLock fillVisibilityChangeEventData registerVisibilityChangeEventCallback registerTouchEventCallback fillGamepadEventData registerGamepadEventCallback registerBeforeUnloadEventCallback fillBatteryEventData battery registerBatteryEventCallback setCanvasElementSize getCanvasElementSize demangle demangleAll jsStackTrace stackTrace getEnvStrings checkWasiClock createDyncallWrapper setImmediateWrapped clearImmediateWrapped polyfillSetImmediate exception_addRef exception_decRef setMainLoop heapObjectForWebGLType heapAccessShiftForWebGLHeap emscriptenWebGLGet computeUnpackAlignedImageSize emscriptenWebGLGetTexPixelData emscriptenWebGLGetUniform webglGetUniformLocation webglPrepareUniformLocationsBeforeFirstUse webglGetLeftBracePos emscriptenWebGLGetVertexAttrib writeGLArray SDL_unicode SDL_ttfContext SDL_audio GLFW_Window runAndAbortIfError ALLOC_NORMAL ALLOC_STACK allocate".split(" ").forEach(function(d){"undefined"=== +typeof globalThis||Object.getOwnPropertyDescriptor(globalThis,d)||Object.defineProperty(globalThis,d,{configurable:!0,get:function(){var a="`"+d+"` is a library symbol and not included by default; add it to your library.js __deps or to DEFAULT_LIBRARY_FUNCS_TO_INCLUDE on the command line",c=d;c.startsWith("_")||(c="$"+d);a+=" (e.g. -sDEFAULT_LIBRARY_FUNCS_TO_INCLUDE="+c+")";n(d)&&(a+=". Alternatively, forcing filesystem support (-sFORCE_FILESYSTEM) can export this for you");ea(a)}})});var ya;sa=function a(){ya|| +La();ya||(sa=a)};if(b.preInit)for("function"==typeof b.preInit&&(b.preInit=[b.preInit]);0=v.size?(r(0>>=0;switch(c.BYTES_PER_ELEMENT){case 2:e>>>=1;break;case 4:e>>>=2;break;case 8:e>>>=3}for(var m=0;ma.byteLength)return b.INVALID_GEOMETRY_TYPE;switch(a[7]){case 0:return b.POINT_CLOUD;case 1:return b.TRIANGULAR_MESH;default:return b.INVALID_GEOMETRY_TYPE}};return g.ready}}(); "object"===typeof exports&&"object"===typeof module?module.exports=DracoDecoderModule:"function"===typeof define&&define.amd?define([],function(){return DracoDecoderModule}):"object"===typeof exports&&(exports.DracoDecoderModule=DracoDecoderModule); diff --git a/maya/draco_maya_wrapper_macos.tar.bz b/maya/draco_maya_wrapper_macos.tar.bz index ccc677d..c420eb2 100644 Binary files a/maya/draco_maya_wrapper_macos.tar.bz and b/maya/draco_maya_wrapper_macos.tar.bz differ diff --git a/maya/draco_maya_wrapper_windows.tar.bz b/maya/draco_maya_wrapper_windows.tar.bz index fd7124b..2bf3bfd 100644 Binary files a/maya/draco_maya_wrapper_windows.tar.bz and b/maya/draco_maya_wrapper_windows.tar.bz differ diff --git a/src/draco/attributes/geometry_attribute.cc b/src/draco/attributes/geometry_attribute.cc index b624784..141130f 100644 --- a/src/draco/attributes/geometry_attribute.cc +++ b/src/draco/attributes/geometry_attribute.cc @@ -26,7 +26,7 @@ GeometryAttribute::GeometryAttribute() unique_id_(0) {} void GeometryAttribute::Init(GeometryAttribute::Type attribute_type, - DataBuffer *buffer, int8_t num_components, + DataBuffer *buffer, uint8_t num_components, DataType data_type, bool normalized, int64_t byte_stride, int64_t byte_offset) { buffer_ = buffer; diff --git a/src/draco/attributes/geometry_attribute.h b/src/draco/attributes/geometry_attribute.h index 1174fc0..28f743f 100644 --- a/src/draco/attributes/geometry_attribute.h +++ b/src/draco/attributes/geometry_attribute.h @@ -15,6 +15,7 @@ #ifndef DRACO_ATTRIBUTES_GEOMETRY_ATTRIBUTE_H_ #define DRACO_ATTRIBUTES_GEOMETRY_ATTRIBUTE_H_ +#include #include #include #include @@ -23,6 +24,9 @@ #include "draco/core/data_buffer.h" #include "draco/core/hash_utils.h" #include "draco/draco_features.h" +#ifdef DRACO_TRANSCODER_SUPPORTED +#include "draco/core/status.h" +#endif namespace draco { @@ -70,7 +74,7 @@ class GeometryAttribute { GeometryAttribute(); // Initializes and enables the attribute. - void Init(Type attribute_type, DataBuffer *buffer, int8_t num_components, + void Init(Type attribute_type, DataBuffer *buffer, uint8_t num_components, DataType data_type, bool normalized, int64_t byte_stride, int64_t byte_offset); bool IsValid() const { return buffer_ != nullptr; } @@ -141,6 +145,17 @@ class GeometryAttribute { buffer_->Write(byte_pos, value, byte_stride()); } +#ifdef DRACO_TRANSCODER_SUPPORTED + // Sets a value of an attribute entry. The input |value| must have + // |input_num_components| entries and it will be automatically converted to + // the internal format used by the geometry attribute. If the conversion is + // not possible, an error status will be returned. + template + Status ConvertAndSetAttributeValue(AttributeValueIndex avi, + int input_num_components, + const InputT *value); +#endif + // DEPRECATED: Use // ConvertValue(AttributeValueIndex att_id, // int out_num_components, @@ -245,10 +260,11 @@ class GeometryAttribute { // Returns the number of components that are stored for each entry. // For position attribute this is usually three (x,y,z), // while texture coordinates have two components (u,v). - int8_t num_components() const { return num_components_; } + uint8_t num_components() const { return num_components_; } // Indicates whether the data type should be normalized before interpretation, // that is, it should be divided by the max value of the data type. bool normalized() const { return normalized_; } + void set_normalized(bool normalized) { normalized_ = normalized; } // The buffer storing the entire data of the attribute. const DataBuffer *buffer() const { return buffer_; } // Returns the number of bytes between two attribute entries, this is, at @@ -272,7 +288,7 @@ class GeometryAttribute { // T is the stored attribute data type. // OutT is the desired data type of the attribute. template - bool ConvertTypedValue(AttributeValueIndex att_id, int8_t out_num_components, + bool ConvertTypedValue(AttributeValueIndex att_id, uint8_t out_num_components, OutT *out_value) const { const uint8_t *src_address = GetAddress(att_id); @@ -282,62 +298,10 @@ class GeometryAttribute { return false; } const T in_value = *reinterpret_cast(src_address); - - // Make sure the |in_value| can be represented as an integral type OutT. - if (std::is_integral::value) { - // Make sure the |in_value| fits within the range of values that OutT - // is able to represent. Perform the check only for integral types. - if (!std::is_same::value && std::is_integral::value) { - static constexpr OutT kOutMin = - std::is_signed::value ? std::numeric_limits::min() : 0; - if (in_value < kOutMin || - in_value > std::numeric_limits::max()) { - return false; - } - } - - // Check conversion of floating point |in_value| to integral value OutT. - if (std::is_floating_point::value) { - // Make sure the floating point |in_value| is not NaN and not Inf as - // integral type OutT is unable to represent these values. - if (sizeof(in_value) > sizeof(double)) { - if (std::isnan(static_cast(in_value)) || - std::isinf(static_cast(in_value))) { - return false; - } - } else if (sizeof(in_value) > sizeof(float)) { - if (std::isnan(static_cast(in_value)) || - std::isinf(static_cast(in_value))) { - return false; - } - } else { - if (std::isnan(static_cast(in_value)) || - std::isinf(static_cast(in_value))) { - return false; - } - } - - // Make sure the floating point |in_value| fits within the range of - // values that integral type OutT is able to represent. - if (in_value < std::numeric_limits::min() || - in_value >= std::numeric_limits::max()) { - return false; - } - } + if (!ConvertComponentValue(in_value, normalized_, + out_value + i)) { + return false; } - - out_value[i] = static_cast(in_value); - // When converting integer to floating point, normalize the value if - // necessary. - if (std::is_integral::value && std::is_floating_point::value && - normalized_) { - out_value[i] /= static_cast(std::numeric_limits::max()); - } - // TODO(ostava): Add handling of normalized attributes when converting - // between different integer representations. If the attribute is - // normalized, integer values should be converted as if they represent 0-1 - // range. E.g. when we convert uint16 to uint8, the range <0, 2^16 - 1> - // should be converted to range <0, 2^8 - 1>. src_address += sizeof(T); } // Fill empty data for unused output components if needed. @@ -347,12 +311,128 @@ class GeometryAttribute { return true; } +#ifdef DRACO_TRANSCODER_SUPPORTED + // Function that converts input |value| from type T to the internal attribute + // representation defined by OutT and |num_components_|. + template + Status ConvertAndSetAttributeTypedValue(AttributeValueIndex avi, + int8_t input_num_components, + const T *value) { + uint8_t *address = GetAddress(avi); + + // Convert all components available in both the original and output formats. + for (int i = 0; i < num_components_; ++i) { + if (!IsAddressValid(address)) { + return ErrorStatus("GeometryAttribute: Invalid address."); + } + OutT *const out_value = reinterpret_cast(address); + if (i < input_num_components) { + if (!ConvertComponentValue(*(value + i), normalized_, + out_value)) { + return ErrorStatus( + "GeometryAttribute: Failed to convert component value."); + } + } else { + *out_value = static_cast(0); + } + address += sizeof(OutT); + } + return OkStatus(); + } +#endif // DRACO_TRANSCODER_SUPPORTED + + // Converts |in_value| of type T into |out_value| of type OutT. If + // |normalized| is true, any conversion between floating point and integer + // values will be treating integers as normalized types (the entire integer + // range will be used to represent 0-1 floating point range). + template + static bool ConvertComponentValue(const T &in_value, bool normalized, + OutT *out_value) { + // Make sure the |in_value| can be represented as an integral type OutT. + if (std::is_integral::value) { + // Make sure the |in_value| fits within the range of values that OutT + // is able to represent. Perform the check only for integral types. + if (!std::is_same::value && std::is_integral::value) { + static constexpr OutT kOutMin = + std::is_signed::value ? std::numeric_limits::min() : 0; + if (in_value < kOutMin || in_value > std::numeric_limits::max()) { + return false; + } + } + + // Check conversion of floating point |in_value| to integral value OutT. + if (std::is_floating_point::value) { + // Make sure the floating point |in_value| is not NaN and not Inf as + // integral type OutT is unable to represent these values. + if (sizeof(in_value) > sizeof(double)) { + if (std::isnan(static_cast(in_value)) || + std::isinf(static_cast(in_value))) { + return false; + } + } else if (sizeof(in_value) > sizeof(float)) { + if (std::isnan(static_cast(in_value)) || + std::isinf(static_cast(in_value))) { + return false; + } + } else { + if (std::isnan(static_cast(in_value)) || + std::isinf(static_cast(in_value))) { + return false; + } + } + + // Make sure the floating point |in_value| fits within the range of + // values that integral type OutT is able to represent. + if (in_value < std::numeric_limits::min() || + in_value >= std::numeric_limits::max()) { + return false; + } + } + } + + if (std::is_integral::value && std::is_floating_point::value && + normalized) { + // When converting integer to floating point, normalize the value if + // necessary. + *out_value = static_cast(in_value); + *out_value /= static_cast(std::numeric_limits::max()); + } else if (std::is_floating_point::value && + std::is_integral::value && normalized) { + // Converting from floating point to a normalized integer. + if (in_value > 1 || in_value < 0) { + // Normalized float values need to be between 0 and 1. + return false; + } + // TODO(ostava): Consider allowing float to normalized integer conversion + // for 64-bit integer types. Currently it doesn't work because we don't + // have a floating point type that could store all 64 bit integers. + if (sizeof(OutT) > 4) { + return false; + } + // Expand the float to the range of the output integer and round it to the + // nearest representable value. Use doubles for the math to ensure the + // integer values are represented properly during the conversion process. + *out_value = static_cast(std::floor( + in_value * static_cast(std::numeric_limits::max()) + + 0.5)); + } else { + *out_value = static_cast(in_value); + } + + // TODO(ostava): Add handling of normalized attributes when converting + // between different integer representations. If the attribute is + // normalized, integer values should be converted as if they represent 0-1 + // range. E.g. when we convert uint16 to uint8, the range <0, 2^16 - 1> + // should be converted to range <0, 2^8 - 1>. + return true; + } + DataBuffer *buffer_; // The buffer descriptor is stored at the time the buffer is attached to this // attribute. The purpose is to detect if any changes happened to the buffer // since the time it was attached. DataBufferDescriptor buffer_descriptor_; - int8_t num_components_; + uint8_t num_components_; DataType data_type_; bool normalized_; int64_t byte_stride_; @@ -368,6 +448,54 @@ class GeometryAttribute { friend struct GeometryAttributeHasher; }; +#ifdef DRACO_TRANSCODER_SUPPORTED +template +Status GeometryAttribute::ConvertAndSetAttributeValue(AttributeValueIndex avi, + int input_num_components, + const InputT *value) { + switch (this->data_type()) { + case DT_INT8: + return ConvertAndSetAttributeTypedValue( + avi, input_num_components, value); + case DT_UINT8: + return ConvertAndSetAttributeTypedValue( + avi, input_num_components, value); + case DT_INT16: + return ConvertAndSetAttributeTypedValue( + avi, input_num_components, value); + case DT_UINT16: + return ConvertAndSetAttributeTypedValue( + avi, input_num_components, value); + case DT_INT32: + return ConvertAndSetAttributeTypedValue( + avi, input_num_components, value); + case DT_UINT32: + return ConvertAndSetAttributeTypedValue( + avi, input_num_components, value); + case DT_INT64: + return ConvertAndSetAttributeTypedValue( + avi, input_num_components, value); + case DT_UINT64: + return ConvertAndSetAttributeTypedValue( + avi, input_num_components, value); + case DT_FLOAT32: + return ConvertAndSetAttributeTypedValue( + avi, input_num_components, value); + case DT_FLOAT64: + return ConvertAndSetAttributeTypedValue( + avi, input_num_components, value); + case DT_BOOL: + return ConvertAndSetAttributeTypedValue( + avi, input_num_components, value); + default: + break; + } + return ErrorStatus( + "GeometryAttribute::SetAndConvertAttributeValue: Unsupported " + "attribute type."); +} +#endif + // Hashing support // Function object for using Attribute as a hash key. diff --git a/src/draco/compression/attributes/kd_tree_attributes_decoder.cc b/src/draco/compression/attributes/kd_tree_attributes_decoder.cc index e1bd22e..389d7cb 100644 --- a/src/draco/compression/attributes/kd_tree_attributes_decoder.cc +++ b/src/draco/compression/attributes/kd_tree_attributes_decoder.cc @@ -78,10 +78,13 @@ class PointAttributeVectorOutputIterator { DRACO_DCHECK_EQ(attributes_.size(), 1); // Expect only ONE attribute. AttributeTuple &att = attributes_[0]; PointAttribute *attribute = std::get<0>(att); + const AttributeValueIndex avi = attribute->mapped_index(point_id_); + if (avi >= static_cast(attribute->size())) { + return *this; + } const uint32_t &offset = std::get<1>(att); DRACO_DCHECK_EQ(offset, 0); // expected to be zero - attribute->SetAttributeValue(attribute->mapped_index(point_id_), - &val[0] + offset); + attribute->SetAttributeValue(avi, &val[0] + offset); return *this; } // Additional operator taking std::vector as argument. @@ -89,6 +92,10 @@ class PointAttributeVectorOutputIterator { for (auto index = 0; index < attributes_.size(); index++) { AttributeTuple &att = attributes_[index]; PointAttribute *attribute = std::get<0>(att); + const AttributeValueIndex avi = attribute->mapped_index(point_id_); + if (avi >= static_cast(attribute->size())) { + return *this; + } const uint32_t &offset = std::get<1>(att); const uint32_t &data_size = std::get<3>(att); const uint32_t &num_components = std::get<4>(att); @@ -103,10 +110,6 @@ class PointAttributeVectorOutputIterator { // redirect to copied data data_source = reinterpret_cast(data_); } - const AttributeValueIndex avi = attribute->mapped_index(point_id_); - if (avi >= static_cast(attribute->size())) { - return *this; - } attribute->SetAttributeValue(avi, data_source); } return *this; @@ -195,54 +198,55 @@ bool KdTreeAttributesDecoder::DecodePortableAttributes( data_size, num_components); total_dimensionality += num_components; } - PointAttributeVectorOutputIterator out_it(atts); + typedef PointAttributeVectorOutputIterator OutIt; + OutIt out_it(atts); switch (compression_level) { case 0: { - DynamicIntegerPointsKdTreeDecoder<0> decoder(total_dimensionality); - if (!decoder.DecodePoints(in_buffer, out_it)) { + if (!DecodePoints<0, OutIt>(total_dimensionality, num_points, in_buffer, + &out_it)) { return false; } break; } case 1: { - DynamicIntegerPointsKdTreeDecoder<1> decoder(total_dimensionality); - if (!decoder.DecodePoints(in_buffer, out_it)) { + if (!DecodePoints<1, OutIt>(total_dimensionality, num_points, in_buffer, + &out_it)) { return false; } break; } case 2: { - DynamicIntegerPointsKdTreeDecoder<2> decoder(total_dimensionality); - if (!decoder.DecodePoints(in_buffer, out_it)) { + if (!DecodePoints<2, OutIt>(total_dimensionality, num_points, in_buffer, + &out_it)) { return false; } break; } case 3: { - DynamicIntegerPointsKdTreeDecoder<3> decoder(total_dimensionality); - if (!decoder.DecodePoints(in_buffer, out_it)) { + if (!DecodePoints<3, OutIt>(total_dimensionality, num_points, in_buffer, + &out_it)) { return false; } break; } case 4: { - DynamicIntegerPointsKdTreeDecoder<4> decoder(total_dimensionality); - if (!decoder.DecodePoints(in_buffer, out_it)) { + if (!DecodePoints<4, OutIt>(total_dimensionality, num_points, in_buffer, + &out_it)) { return false; } break; } case 5: { - DynamicIntegerPointsKdTreeDecoder<5> decoder(total_dimensionality); - if (!decoder.DecodePoints(in_buffer, out_it)) { + if (!DecodePoints<5, OutIt>(total_dimensionality, num_points, in_buffer, + &out_it)) { return false; } break; } case 6: { - DynamicIntegerPointsKdTreeDecoder<6> decoder(total_dimensionality); - if (!decoder.DecodePoints(in_buffer, out_it)) { + if (!DecodePoints<6, OutIt>(total_dimensionality, num_points, in_buffer, + &out_it)) { return false; } break; @@ -253,6 +257,19 @@ bool KdTreeAttributesDecoder::DecodePortableAttributes( return true; } +template +bool KdTreeAttributesDecoder::DecodePoints(int total_dimensionality, + int num_expected_points, + DecoderBuffer *in_buffer, + OutIteratorT *out_iterator) { + DynamicIntegerPointsKdTreeDecoder decoder(total_dimensionality); + if (!decoder.DecodePoints(in_buffer, *out_iterator) || + decoder.num_decoded_points() != num_expected_points) { + return false; + } + return true; +} + bool KdTreeAttributesDecoder::DecodeDataNeededByPortableTransforms( DecoderBuffer *in_buffer) { if (in_buffer->bitstream_version() >= DRACO_BITSTREAM_VERSION(2, 3)) { diff --git a/src/draco/compression/attributes/kd_tree_attributes_decoder.h b/src/draco/compression/attributes/kd_tree_attributes_decoder.h index 87338d6..4af367a 100644 --- a/src/draco/compression/attributes/kd_tree_attributes_decoder.h +++ b/src/draco/compression/attributes/kd_tree_attributes_decoder.h @@ -31,6 +31,10 @@ class KdTreeAttributesDecoder : public AttributesDecoder { bool TransformAttributesToOriginalFormat() override; private: + template + bool DecodePoints(int total_dimensionality, int num_expected_points, + DecoderBuffer *in_buffer, OutIteratorT *out_iterator); + template bool TransformAttributeBackToSignedType(PointAttribute *att, int num_processed_signed_components); diff --git a/src/draco/compression/attributes/normal_compression_utils.h b/src/draco/compression/attributes/normal_compression_utils.h index 562abd4..b717d0d 100644 --- a/src/draco/compression/attributes/normal_compression_utils.h +++ b/src/draco/compression/attributes/normal_compression_utils.h @@ -208,7 +208,9 @@ class OctahedronToolBox { DRACO_DCHECK_LE(t, center_value_); DRACO_DCHECK_GE(s, -center_value_); DRACO_DCHECK_GE(t, -center_value_); - return std::abs(s) + std::abs(t) <= center_value_; + const uint32_t st = + static_cast(std::abs(s)) + static_cast(std::abs(t)); + return st <= center_value_; } void InvertDiamond(int32_t *s, int32_t *t) const { @@ -230,19 +232,29 @@ class OctahedronToolBox { sign_t = (*t > 0) ? 1 : -1; } - const int32_t corner_point_s = sign_s * center_value_; - const int32_t corner_point_t = sign_t * center_value_; - *s = 2 * *s - corner_point_s; - *t = 2 * *t - corner_point_t; + // Perform the addition and subtraction using unsigned integers to avoid + // signed integer overflows for bad data. Note that the result will be + // unchanged for non-overflowing cases. + const uint32_t corner_point_s = sign_s * center_value_; + const uint32_t corner_point_t = sign_t * center_value_; + uint32_t us = *s; + uint32_t ut = *t; + us = us + us - corner_point_s; + ut = ut + ut - corner_point_t; if (sign_s * sign_t >= 0) { - int32_t temp = *s; - *s = -*t; - *t = -temp; + uint32_t temp = us; + us = -ut; + ut = -temp; } else { - std::swap(*s, *t); + std::swap(us, ut); } - *s = (*s + corner_point_s) / 2; - *t = (*t + corner_point_t) / 2; + us = us + corner_point_s; + ut = ut + corner_point_t; + + *s = us; + *t = ut; + *s /= 2; + *t /= 2; } void InvertDirection(int32_t *s, int32_t *t) const { diff --git a/src/draco/compression/attributes/prediction_schemes/mesh_prediction_scheme_constrained_multi_parallelogram_decoder.h b/src/draco/compression/attributes/prediction_schemes/mesh_prediction_scheme_constrained_multi_parallelogram_decoder.h index 994958a..17899d0 100644 --- a/src/draco/compression/attributes/prediction_schemes/mesh_prediction_scheme_constrained_multi_parallelogram_decoder.h +++ b/src/draco/compression/attributes/prediction_schemes/mesh_prediction_scheme_constrained_multi_parallelogram_decoder.h @@ -22,6 +22,7 @@ #include "draco/compression/attributes/prediction_schemes/mesh_prediction_scheme_decoder.h" #include "draco/compression/attributes/prediction_schemes/mesh_prediction_scheme_parallelogram_shared.h" #include "draco/compression/bit_coders/rans_bit_decoder.h" +#include "draco/core/math_utils.h" #include "draco/core/varint_decoding.h" #include "draco/draco_features.h" @@ -161,7 +162,8 @@ bool MeshPredictionSchemeConstrainedMultiParallelogramDecoder< if (!is_crease) { ++num_used_parallelograms; for (int j = 0; j < num_components; ++j) { - multi_pred_vals[j] += pred_vals[i][j]; + multi_pred_vals[j] = + AddAsUnsigned(multi_pred_vals[j], pred_vals[i][j]); } } } diff --git a/src/draco/compression/attributes/prediction_schemes/mesh_prediction_scheme_multi_parallelogram_decoder.h b/src/draco/compression/attributes/prediction_schemes/mesh_prediction_scheme_multi_parallelogram_decoder.h index fc82e0a..9825c72 100644 --- a/src/draco/compression/attributes/prediction_schemes/mesh_prediction_scheme_multi_parallelogram_decoder.h +++ b/src/draco/compression/attributes/prediction_schemes/mesh_prediction_scheme_multi_parallelogram_decoder.h @@ -18,6 +18,7 @@ #include "draco/compression/attributes/prediction_schemes/mesh_prediction_scheme_decoder.h" #include "draco/compression/attributes/prediction_schemes/mesh_prediction_scheme_parallelogram_shared.h" +#include "draco/core/math_utils.h" #include "draco/draco_features.h" namespace draco { @@ -89,7 +90,8 @@ bool MeshPredictionSchemeMultiParallelogramDecoder +#include +#include + #include "draco/attributes/point_attribute.h" #include "draco/core/math_utils.h" #include "draco/core/vector_d.h" @@ -105,10 +108,14 @@ bool MeshPredictionSchemeTexCoordsPortablePredictor< next_data_id = mesh_data_.vertex_to_data_map()->at(next_vert_id); prev_data_id = mesh_data_.vertex_to_data_map()->at(prev_vert_id); + typedef VectorD Vec2; + typedef VectorD Vec3; + typedef VectorD Vec2u; + if (prev_data_id < data_id && next_data_id < data_id) { // Both other corners have available UV coordinates for prediction. - const VectorD n_uv = GetTexCoordForEntryId(next_data_id, data); - const VectorD p_uv = GetTexCoordForEntryId(prev_data_id, data); + const Vec2 n_uv = GetTexCoordForEntryId(next_data_id, data); + const Vec2 p_uv = GetTexCoordForEntryId(prev_data_id, data); if (p_uv == n_uv) { // We cannot do a reliable prediction on degenerated UV triangles. predicted_value_[0] = p_uv[0]; @@ -117,9 +124,9 @@ bool MeshPredictionSchemeTexCoordsPortablePredictor< } // Get positions at all corners. - const VectorD tip_pos = GetPositionForEntryId(data_id); - const VectorD next_pos = GetPositionForEntryId(next_data_id); - const VectorD prev_pos = GetPositionForEntryId(prev_data_id); + const Vec3 tip_pos = GetPositionForEntryId(data_id); + const Vec3 next_pos = GetPositionForEntryId(next_data_id); + const Vec3 prev_pos = GetPositionForEntryId(prev_data_id); // We use the positions of the above triangle to predict the texture // coordinate on the tip corner C. // To convert the triangle into the UV coordinate system we first compute @@ -135,17 +142,17 @@ bool MeshPredictionSchemeTexCoordsPortablePredictor< // Where next_pos is point (N), prev_pos is point (P) and tip_pos is the // position of predicted coordinate (C). // - const VectorD pn = prev_pos - next_pos; + const Vec3 pn = prev_pos - next_pos; const uint64_t pn_norm2_squared = pn.SquaredNorm(); if (pn_norm2_squared != 0) { // Compute the projection of C onto PN by computing dot product of CN with // PN and normalizing it by length of PN. This gives us a factor |s| where // |s = PN.Dot(CN) / PN.SquaredNorm2()|. This factor can be used to // compute X in UV space |X_UV| as |X_UV = N_UV + s * PN_UV|. - const VectorD cn = tip_pos - next_pos; + const Vec3 cn = tip_pos - next_pos; const int64_t cn_dot_pn = pn.Dot(cn); - const VectorD pn_uv = p_uv - n_uv; + const Vec2 pn_uv = p_uv - n_uv; // Because we perform all computations with integers, we don't explicitly // compute the normalized factor |s|, but rather we perform all operations // over UV vectors in a non-normalized coordinate system scaled with a @@ -153,19 +160,23 @@ bool MeshPredictionSchemeTexCoordsPortablePredictor< // // x_uv = X_UV * PN.Norm2Squared() // - const VectorD x_uv = - n_uv * pn_norm2_squared + (cn_dot_pn * pn_uv); - + const int64_t n_uv_absmax_element = + std::max(std::abs(n_uv[0]), std::abs(n_uv[1])); + if (n_uv_absmax_element > + std::numeric_limits::max() / pn_norm2_squared) { + // Return false if the below multiplication would overflow. + return false; + } + const Vec2 x_uv = n_uv * pn_norm2_squared + (cn_dot_pn * pn_uv); const int64_t pn_absmax_element = std::max(std::max(std::abs(pn[0]), std::abs(pn[1])), std::abs(pn[2])); if (cn_dot_pn > std::numeric_limits::max() / pn_absmax_element) { - // return false if squared length calculation would overflow. + // Return false if squared length calculation would overflow. return false; } // Compute squared length of vector CX in position coordinate system: - const VectorD x_pos = - next_pos + (cn_dot_pn * pn) / pn_norm2_squared; + const Vec3 x_pos = next_pos + (cn_dot_pn * pn) / pn_norm2_squared; const uint64_t cx_norm2_squared = (tip_pos - x_pos).SquaredNorm(); // Compute vector CX_UV in the uv space by rotating vector PN_UV by 90 @@ -182,7 +193,7 @@ bool MeshPredictionSchemeTexCoordsPortablePredictor< // // cx_uv = CX.Norm2() * PN.Norm2() * Rot(PN_UV) // - VectorD cx_uv(pn_uv[1], -pn_uv[0]); // Rotated PN_UV. + Vec2 cx_uv(pn_uv[1], -pn_uv[0]); // Rotated PN_UV. // Compute CX.Norm2() * PN.Norm2() const uint64_t norm_squared = IntSqrt(cx_norm2_squared * pn_norm2_squared); @@ -191,17 +202,15 @@ bool MeshPredictionSchemeTexCoordsPortablePredictor< // Predicted uv coordinate is then computed by either adding or // subtracting CX_UV to/from X_UV. - VectorD predicted_uv; + Vec2 predicted_uv; if (is_encoder_t) { // When encoding, compute both possible vectors and determine which one // results in a better prediction. // Both vectors need to be transformed back from the scaled space to // the real UV coordinate space. - const VectorD predicted_uv_0((x_uv + cx_uv) / - pn_norm2_squared); - const VectorD predicted_uv_1((x_uv - cx_uv) / - pn_norm2_squared); - const VectorD c_uv = GetTexCoordForEntryId(data_id, data); + const Vec2 predicted_uv_0((x_uv + cx_uv) / pn_norm2_squared); + const Vec2 predicted_uv_1((x_uv - cx_uv) / pn_norm2_squared); + const Vec2 c_uv = GetTexCoordForEntryId(data_id, data); if ((c_uv - predicted_uv_0).SquaredNorm() < (c_uv - predicted_uv_1).SquaredNorm()) { predicted_uv = predicted_uv_0; @@ -217,10 +226,12 @@ bool MeshPredictionSchemeTexCoordsPortablePredictor< } const bool orientation = orientations_.back(); orientations_.pop_back(); + // Perform operations in unsigned type to avoid signed integer overflow. + // Note that the result will be the same (for non-overflowing values). if (orientation) { - predicted_uv = (x_uv + cx_uv) / pn_norm2_squared; + predicted_uv = Vec2(Vec2u(x_uv) + Vec2u(cx_uv)) / pn_norm2_squared; } else { - predicted_uv = (x_uv - cx_uv) / pn_norm2_squared; + predicted_uv = Vec2(Vec2u(x_uv) - Vec2u(cx_uv)) / pn_norm2_squared; } } predicted_value_[0] = static_cast(predicted_uv[0]); diff --git a/src/draco/compression/attributes/prediction_schemes/prediction_scheme_encoder_factory.cc b/src/draco/compression/attributes/prediction_schemes/prediction_scheme_encoder_factory.cc index c873af8..2338f2f 100644 --- a/src/draco/compression/attributes/prediction_schemes/prediction_scheme_encoder_factory.cc +++ b/src/draco/compression/attributes/prediction_schemes/prediction_scheme_encoder_factory.cc @@ -30,12 +30,16 @@ PredictionSchemeMethod SelectPredictionMethod( } if (encoder->GetGeometryType() == TRIANGULAR_MESH) { // Use speed setting to select the best encoding method. + const int att_quant = + options.GetAttributeInt(att_id, "quantization_bits", -1); const PointAttribute *const att = encoder->point_cloud()->attribute(att_id); - if (att->attribute_type() == GeometryAttribute::TEX_COORD && + if (att_quant != -1 && + att->attribute_type() == GeometryAttribute::TEX_COORD && att->num_components() == 2) { // Texture coordinate predictor needs a position attribute that is either // integer or quantized. For numerical reasons, we require the position - // quantization to be at most 21 bits (TODO(b/231259902)). + // quantization to be at most 21 bits and the 2*position_quantization + + // uv_quantization < 64 (TODO(b/231259902)). const PointAttribute *const pos_att = encoder->point_cloud()->GetNamedAttribute( GeometryAttribute::POSITION); @@ -49,8 +53,10 @@ PredictionSchemeMethod SelectPredictionMethod( GeometryAttribute::POSITION); const int pos_quant = options.GetAttributeInt(pos_att_id, "quantization_bits", -1); - // Must be quantized but the quantization is restricted to 21 bits. - if (pos_quant > 0 && pos_quant <= 21) { + // Must be quantized but the quantization is restricted to 21 bits and + // 2*|pos_quant|+|att_quant| must be smaller than 64 bits. + if (pos_quant > 0 && pos_quant <= 21 && + 2 * pos_quant + att_quant < 64) { is_pos_att_valid = true; } } diff --git a/src/draco/compression/attributes/prediction_schemes/prediction_scheme_normal_octahedron_canonicalized_decoding_transform.h b/src/draco/compression/attributes/prediction_schemes/prediction_scheme_normal_octahedron_canonicalized_decoding_transform.h index 5a6c7c2..e9e3453 100644 --- a/src/draco/compression/attributes/prediction_schemes/prediction_scheme_normal_octahedron_canonicalized_decoding_transform.h +++ b/src/draco/compression/attributes/prediction_schemes/prediction_scheme_normal_octahedron_canonicalized_decoding_transform.h @@ -21,6 +21,7 @@ #include "draco/compression/attributes/prediction_schemes/prediction_scheme_normal_octahedron_canonicalized_transform_base.h" #include "draco/core/decoder_buffer.h" #include "draco/core/macros.h" +#include "draco/core/math_utils.h" #include "draco/core/vector_d.h" namespace draco { @@ -98,9 +99,8 @@ class PredictionSchemeNormalOctahedronCanonicalizedDecodingTransform if (!pred_is_in_bottom_left) { pred = this->RotatePoint(pred, rotation_count); } - Point2 orig = pred + corr; - orig[0] = this->ModMax(orig[0]); - orig[1] = this->ModMax(orig[1]); + Point2 orig(this->ModMax(AddAsUnsigned(pred[0], corr[0])), + this->ModMax(AddAsUnsigned(pred[1], corr[1]))); if (!pred_is_in_bottom_left) { const int32_t reverse_rotation_count = (4 - rotation_count) % 4; orig = this->RotatePoint(orig, reverse_rotation_count); diff --git a/src/draco/compression/attributes/prediction_schemes/prediction_scheme_normal_octahedron_decoding_transform.h b/src/draco/compression/attributes/prediction_schemes/prediction_scheme_normal_octahedron_decoding_transform.h index a1bc4a3..d3705c8 100644 --- a/src/draco/compression/attributes/prediction_schemes/prediction_scheme_normal_octahedron_decoding_transform.h +++ b/src/draco/compression/attributes/prediction_schemes/prediction_scheme_normal_octahedron_decoding_transform.h @@ -80,19 +80,31 @@ class PredictionSchemeNormalOctahedronDecodingTransform private: Point2 ComputeOriginalValue(Point2 pred, const Point2 &corr) const { const Point2 t(this->center_value(), this->center_value()); - pred = pred - t; + typedef typename std::make_unsigned::type UnsignedDataTypeT; + typedef VectorD Point2u; + + // Perform the addition in unsigned type to avoid signed integer overflow. + // Note that the result will be the same (for non-overflowing values). + pred = Point2(Point2u(pred) - Point2u(t)); const bool pred_is_in_diamond = this->IsInDiamond(pred[0], pred[1]); if (!pred_is_in_diamond) { this->InvertDiamond(&pred[0], &pred[1]); } - Point2 orig = pred + corr; + + // Perform the addition in unsigned type to avoid signed integer overflow. + // Note that the result will be the same (for non-overflowing values). + Point2 orig(Point2u(pred) + Point2u(corr)); + orig[0] = this->ModMax(orig[0]); orig[1] = this->ModMax(orig[1]); if (!pred_is_in_diamond) { this->InvertDiamond(&orig[0], &orig[1]); } - orig = orig + t; + + // Perform the addition in unsigned type to avoid signed integer overflow. + // Note that the result will be the same (for non-overflowing values). + orig = Point2(Point2u(orig) + Point2u(t)); return orig; } }; diff --git a/src/draco/compression/bit_coders/direct_bit_decoder.h b/src/draco/compression/bit_coders/direct_bit_decoder.h index b9fbc2d..6273692 100644 --- a/src/draco/compression/bit_coders/direct_bit_decoder.h +++ b/src/draco/compression/bit_coders/direct_bit_decoder.h @@ -47,14 +47,13 @@ class DirectBitDecoder { // Decode the next |nbits| and return the sequence in |value|. |nbits| must be // > 0 and <= 32. - void DecodeLeastSignificantBits32(int nbits, uint32_t *value) { + bool DecodeLeastSignificantBits32(int nbits, uint32_t *value) { DRACO_DCHECK_EQ(true, nbits <= 32); DRACO_DCHECK_EQ(true, nbits > 0); const int remaining = 32 - num_used_bits_; if (nbits <= remaining) { if (pos_ == bits_.end()) { - *value = 0; - return; + return false; } *value = (*pos_ << num_used_bits_) >> (32 - nbits); num_used_bits_ += nbits; @@ -64,8 +63,7 @@ class DirectBitDecoder { } } else { if (pos_ + 1 == bits_.end()) { - *value = 0; - return; + return false; } const uint32_t value_l = ((*pos_) << num_used_bits_); num_used_bits_ = nbits - remaining; @@ -73,6 +71,7 @@ class DirectBitDecoder { const uint32_t value_r = (*pos_) >> (32 - num_used_bits_); *value = (value_l >> (32 - num_used_bits_ - remaining)) | value_r; } + return true; } void EndDecoding() {} diff --git a/src/draco/compression/config/encoder_options.h b/src/draco/compression/config/encoder_options.h index ed1b020..e8a55bb 100644 --- a/src/draco/compression/config/encoder_options.h +++ b/src/draco/compression/config/encoder_options.h @@ -65,6 +65,10 @@ class EncoderOptionsBase : public DracoOptions { this->SetGlobalInt("encoding_speed", encoding_speed); this->SetGlobalInt("decoding_speed", decoding_speed); } + bool IsSpeedSet() const { + return this->IsGlobalOptionSet("encoding_speed") || + this->IsGlobalOptionSet("decoding_speed"); + } // Sets a given feature as supported or unsupported by the target decoder. // Encoder will always use only supported features when encoding the input diff --git a/src/draco/compression/draco_compression_options.cc b/src/draco/compression/draco_compression_options.cc new file mode 100644 index 0000000..08171c6 --- /dev/null +++ b/src/draco/compression/draco_compression_options.cc @@ -0,0 +1,59 @@ +// Copyright 2022 The Draco Authors. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// +#include "draco/compression/draco_compression_options.h" + +#ifdef DRACO_TRANSCODER_SUPPORTED + +namespace draco { + +SpatialQuantizationOptions::SpatialQuantizationOptions(int quantization_bits) { + SetQuantizationBits(quantization_bits); +} + +void SpatialQuantizationOptions::SetQuantizationBits(int quantization_bits) { + mode_ = LOCAL_QUANTIZATION_BITS; + quantization_bits_ = quantization_bits; +} + +bool SpatialQuantizationOptions::AreQuantizationBitsDefined() const { + return mode_ == LOCAL_QUANTIZATION_BITS; +} + +SpatialQuantizationOptions &SpatialQuantizationOptions::SetGrid(float spacing) { + mode_ = GLOBAL_GRID; + spacing_ = spacing; + return *this; +} + +bool SpatialQuantizationOptions::operator==( + const SpatialQuantizationOptions &other) const { + if (mode_ != other.mode_) { + return false; + } + if (mode_ == LOCAL_QUANTIZATION_BITS) { + if (quantization_bits_ != other.quantization_bits_) { + return false; + } + } else if (mode_ == GLOBAL_GRID) { + if (spacing_ != other.spacing_) { + return false; + } + } + return true; +} + +} // namespace draco + +#endif // DRACO_TRANSCODER_SUPPORTED diff --git a/src/draco/compression/draco_compression_options.h b/src/draco/compression/draco_compression_options.h index 53cb4cb..31a4418 100644 --- a/src/draco/compression/draco_compression_options.h +++ b/src/draco/compression/draco_compression_options.h @@ -21,11 +21,58 @@ #include "draco/core/status.h" namespace draco { + +// Quantization options for positions. Currently there are two modes for +// quantizing positions: +// +// 1. Quantization bits: +// - User defined number of quantization bits that is evenly distributed +// to cover the compressed geometry. +// 2. Grid: +// - Positions are snapped to a global grid defined by grid spacing. +// - This method is primarily intended to be used when the location of +// quantized vertices needs to be consistent between multiple +// geometries. +class SpatialQuantizationOptions { + public: + explicit SpatialQuantizationOptions(int quantization_bits); + + // Sets quantization bits that are going to be used for the compressed + // geometry. If the geometry is a scene, the same number of quantization bits + // is going to be applied to each mesh of the scene. Quantized values are + // going to be distributed within the bounds of individual meshes. + void SetQuantizationBits(int quantization_bits); + + // If this returns true, quantization_bits() should be used to get the + // desired number of quantization bits for compression. Otherwise the grid + // mode is selected and spacing() should be used to get the desired grid + // spacing. + bool AreQuantizationBitsDefined() const; + const int quantization_bits() const { return quantization_bits_; } + + // Defines quantization grid used for the compressed geometry. All vertices + // are going to be snapped to the nearest grid vertex that corresponds to an + // integer quantized position. |spacing| defines the distance between two grid + // vertices. E.g. a grid with |spacing| = 10 would have grid vertices at + // locations {10 * i, 10 * j, 10 * k} where i, j, k are integer numbers. + SpatialQuantizationOptions &SetGrid(float spacing); + + const float spacing() const { return spacing_; } + + bool operator==(const SpatialQuantizationOptions &other) const; + + private: + enum Mode { LOCAL_QUANTIZATION_BITS, GLOBAL_GRID }; + Mode mode_ = LOCAL_QUANTIZATION_BITS; + int quantization_bits_; // Default quantization bits for positions. + float spacing_ = 0.f; +}; + // TODO(fgalligan): Add support for unified_position_quantization. // Struct to hold Draco compression options. struct DracoCompressionOptions { int compression_level = 7; // compression level [0-10], most=10, least=0. - int quantization_bits_position = 11; + SpatialQuantizationOptions quantization_position{11}; int quantization_bits_normal = 8; int quantization_bits_tex_coord = 10; int quantization_bits_color = 8; @@ -36,7 +83,7 @@ struct DracoCompressionOptions { bool operator==(const DracoCompressionOptions &other) const { return compression_level == other.compression_level && - quantization_bits_position == other.quantization_bits_position && + quantization_position == other.quantization_position && quantization_bits_normal == other.quantization_bits_normal && quantization_bits_tex_coord == other.quantization_bits_tex_coord && quantization_bits_color == other.quantization_bits_color && @@ -54,8 +101,15 @@ struct DracoCompressionOptions { Status Check() const { DRACO_RETURN_IF_ERROR( Validate("Compression level", compression_level, 0, 10)); - DRACO_RETURN_IF_ERROR( - Validate("Position quantization", quantization_bits_position, 0, 30)); + if (quantization_position.AreQuantizationBitsDefined()) { + DRACO_RETURN_IF_ERROR(Validate("Position quantization", + quantization_position.quantization_bits(), + 0, 30)); + } else { + if (quantization_position.spacing() <= 0.f) { + return ErrorStatus("Position quantization spacing is invalid."); + } + } DRACO_RETURN_IF_ERROR( Validate("Normals quantization", quantization_bits_normal, 0, 30)); DRACO_RETURN_IF_ERROR( diff --git a/src/draco/compression/draco_compression_options_test.cc b/src/draco/compression/draco_compression_options_test.cc new file mode 100644 index 0000000..4152952 --- /dev/null +++ b/src/draco/compression/draco_compression_options_test.cc @@ -0,0 +1,45 @@ +#include "draco/compression/draco_compression_options.h" + +#include "draco/core/draco_test_utils.h" + +#ifdef DRACO_TRANSCODER_SUPPORTED + +namespace { + +TEST(DracoCompressionOptionsTest, TestPositionQuantizationBits) { + // Test verifies that we can define draco compression options using + // quantization bits. + draco::SpatialQuantizationOptions options(10); + + // Quantization bits should be used by default. + ASSERT_TRUE(options.AreQuantizationBitsDefined()); + ASSERT_EQ(options.quantization_bits(), 10); + + // Change the quantization bits. + options.SetQuantizationBits(9); + ASSERT_TRUE(options.AreQuantizationBitsDefined()); + ASSERT_EQ(options.quantization_bits(), 9); + + // If we select the grid, quantization bits should not be used. + options.SetGrid(0.5f); + ASSERT_FALSE(options.AreQuantizationBitsDefined()); +} + +TEST(DracoCompressionOptionsTest, TestPositionQuantizationGrid) { + // Test verifies that we can define draco compression options using + // quantization grid. + draco::SpatialQuantizationOptions options(10); + + // Quantization bits should be used by default. + ASSERT_TRUE(options.AreQuantizationBitsDefined()); + + // Set the grid parameters. + options.SetGrid(0.25f); + ASSERT_FALSE(options.AreQuantizationBitsDefined()); + + ASSERT_EQ(options.spacing(), 0.25f); +} + +} // namespace + +#endif // DRACO_TRANSCODER_SUPPORTED diff --git a/src/draco/compression/encode_test.cc b/src/draco/compression/encode_test.cc index a163169..bd654f5 100644 --- a/src/draco/compression/encode_test.cc +++ b/src/draco/compression/encode_test.cc @@ -402,4 +402,170 @@ TEST_F(EncodeTest, TestNoPosQuantizationNormalCoding) { ASSERT_NE(decoded_mesh, nullptr); } +#ifdef DRACO_TRANSCODER_SUPPORTED +TEST_F(EncodeTest, TestDracoCompressionOptions) { + // This test verifies that we can set the encoder's compression options via + // draco::Mesh's compression options. + const auto mesh = draco::ReadMeshFromTestFile("test_nm.obj"); + ASSERT_NE(mesh, nullptr); + + // First set compression level and quantization manually. + draco::Encoder encoder_manual; + draco::EncoderBuffer buffer_manual; + encoder_manual.SetAttributeQuantization(draco::GeometryAttribute::POSITION, + 8); + encoder_manual.SetAttributeQuantization(draco::GeometryAttribute::NORMAL, 7); + encoder_manual.SetSpeedOptions(4, 4); + + DRACO_ASSERT_OK(encoder_manual.EncodeMeshToBuffer(*mesh, &buffer_manual)); + + // Now do the same with options provided via DracoCompressionOptions. + draco::DracoCompressionOptions compression_options; + compression_options.compression_level = 6; + compression_options.quantization_position.SetQuantizationBits(8); + compression_options.quantization_bits_normal = 7; + mesh->SetCompressionOptions(compression_options); + mesh->SetCompressionEnabled(true); + + draco::Encoder encoder_auto; + draco::EncoderBuffer buffer_auto; + DRACO_ASSERT_OK(encoder_auto.EncodeMeshToBuffer(*mesh, &buffer_auto)); + + // Ensure that both encoders produce the same result. + ASSERT_EQ(buffer_manual.size(), buffer_auto.size()); + + // Now change some of the mesh's compression settings and ensure the + // compression changes as well. + compression_options.compression_level = 7; + mesh->SetCompressionOptions(compression_options); + buffer_auto.Clear(); + DRACO_ASSERT_OK(encoder_auto.EncodeMeshToBuffer(*mesh, &buffer_auto)); + ASSERT_NE(buffer_manual.size(), buffer_auto.size()); + + // Check that |mesh| compression options do not override the encoder options. + mesh->GetCompressionOptions().compression_level = 10; + mesh->GetCompressionOptions().quantization_position.SetQuantizationBits(10); + mesh->GetCompressionOptions().quantization_bits_normal = 10; + draco::EncoderBuffer buffer; + DRACO_ASSERT_OK(encoder_manual.EncodeMeshToBuffer(*mesh, &buffer)); + ASSERT_EQ(buffer.size(), buffer_manual.size()); +} + +TEST_F(EncodeTest, TestDracoCompressionOptionsManualOverride) { + // This test verifies that we can use encoder's option to override compression + // options provided in draco::Mesh's compression options. + const auto mesh = draco::ReadMeshFromTestFile("test_nm.obj"); + ASSERT_NE(mesh, nullptr); + + // Set some compression options. + draco::DracoCompressionOptions compression_options; + compression_options.compression_level = 6; + compression_options.quantization_position.SetQuantizationBits(8); + compression_options.quantization_bits_normal = 7; + mesh->SetCompressionOptions(compression_options); + mesh->SetCompressionEnabled(true); + + draco::Encoder encoder; + draco::EncoderBuffer buffer_no_override; + DRACO_ASSERT_OK(encoder.EncodeMeshToBuffer(*mesh, &buffer_no_override)); + + // Now override some options and ensure the compression is different. + encoder.SetAttributeQuantization(draco::GeometryAttribute::POSITION, 5); + draco::EncoderBuffer buffer_with_override; + DRACO_ASSERT_OK(encoder.EncodeMeshToBuffer(*mesh, &buffer_with_override)); + ASSERT_LT(buffer_with_override.size(), buffer_no_override.size()); +} + +TEST_F(EncodeTest, TestDracoCompressionOptionsGridQuantization) { + // Test verifies that we can set position quantization via grid spacing. + + // 1x1x1 cube. + const auto mesh = draco::ReadMeshFromTestFile("cube_att.obj"); + ASSERT_NE(mesh, nullptr); + mesh->SetCompressionEnabled(true); + + // Set grid quantization for positions. + draco::DracoCompressionOptions compression_options; + // This should result in 10x10x10 quantization. + compression_options.quantization_position.SetGrid(0.1); + mesh->SetCompressionOptions(compression_options); + + draco::ExpertEncoder encoder(*mesh); + draco::EncoderBuffer buffer; + DRACO_ASSERT_OK(encoder.EncodeToBuffer(&buffer)); + + // The grid options should be reflected in the |encoder|. Check that the + // computed values are correct. + const int pos_att_id = + mesh->GetNamedAttributeId(draco::GeometryAttribute::POSITION); + draco::Vector3f origin; + encoder.options().GetAttributeVector(pos_att_id, "quantization_origin", 3, + &origin[0]); + ASSERT_EQ(origin, draco::Vector3f(0.f, 0.f, 0.f)); + + // We need 4 quantization bits (for 10 values). + ASSERT_EQ( + encoder.options().GetAttributeInt(pos_att_id, "quantization_bits", -1), + 4); + + // The quantization range should be (1 << quantization_bits) * spacing. + ASSERT_NEAR(encoder.options().GetAttributeFloat(pos_att_id, + "quantization_range", 0.f), + 16.f * 0.1f, 1e-6f); +} + +TEST_F(EncodeTest, TestDracoCompressionOptionsGridQuantizationWithOffset) { + // Test verifies that we can set position quantization via grid spacing when + // the geometry is not perfectly aligned with the quantization grid. + + // 1x1x1 cube. + const auto mesh = draco::ReadMeshFromTestFile("cube_att.obj"); + ASSERT_NE(mesh, nullptr); + + // Move all positions a bit. + auto *pos_att = mesh->attribute( + mesh->GetNamedAttributeId(draco::GeometryAttribute::POSITION)); + for (draco::AttributeValueIndex avi(0); avi < pos_att->size(); ++avi) { + draco::Vector3f pos; + pos_att->GetValue(avi, &pos[0]); + pos = pos + draco::Vector3f(-0.55f, 0.65f, 10.75f); + pos_att->SetAttributeValue(avi, &pos[0]); + } + + mesh->SetCompressionEnabled(true); + + // Set grid quantization for positions. + draco::DracoCompressionOptions compression_options; + // This should result in 16x16x16 quantization if the grid was perfectly + // aligned but since it is not we should expect 17 or 18 values per component. + compression_options.quantization_position.SetGrid(0.0625f); + mesh->SetCompressionOptions(compression_options); + + draco::ExpertEncoder encoder(*mesh); + draco::EncoderBuffer buffer; + DRACO_ASSERT_OK(encoder.EncodeToBuffer(&buffer)); + + // The grid options should be reflected in the |encoder|. Check that the + // computed values are correct. + const int pos_att_id = + mesh->GetNamedAttributeId(draco::GeometryAttribute::POSITION); + draco::Vector3f origin; + encoder.options().GetAttributeVector(pos_att_id, "quantization_origin", 3, + &origin[0]); + // The origin is the first lower value on the quantization grid for each + // component of the mesh. + ASSERT_EQ(origin, draco::Vector3f(-0.5625f, 0.625f, 10.75f)); + + // We need 5 quantization bits (for 17-18 values). + ASSERT_EQ( + encoder.options().GetAttributeInt(pos_att_id, "quantization_bits", -1), + 5); + + // The quantization range should be (1 << quantization_bits) * spacing. + ASSERT_NEAR(encoder.options().GetAttributeFloat(pos_att_id, + "quantization_range", 0.f), + 32.f * 0.0625f, 1e-6f); +} +#endif // DRACO_TRANSCODER_SUPPORTED + } // namespace diff --git a/src/draco/compression/expert_encode.cc b/src/draco/compression/expert_encode.cc index f9aec15..fc79b21 100644 --- a/src/draco/compression/expert_encode.cc +++ b/src/draco/compression/expert_encode.cc @@ -20,6 +20,9 @@ #include "draco/compression/point_cloud/point_cloud_kd_tree_encoder.h" #include "draco/compression/point_cloud/point_cloud_sequential_encoder.h" #endif +#ifdef DRACO_TRANSCODER_SUPPORTED +#include "draco/core/bit_utils.h" +#endif namespace draco { @@ -101,6 +104,11 @@ Status ExpertEncoder::EncodePointCloudToBuffer(const PointCloud &pc, Status ExpertEncoder::EncodeMeshToBuffer(const Mesh &m, EncoderBuffer *out_buffer) { +#ifdef DRACO_TRANSCODER_SUPPORTED + // Apply DracoCompressionOptions associated with the mesh. + DRACO_RETURN_IF_ERROR(ApplyCompressionOptions(m)); +#endif + std::unique_ptr encoder; // Select the encoding method only based on the provided options. int encoding_method = options().GetGlobalInt("encoding_method", -1); @@ -179,4 +187,106 @@ Status ExpertEncoder::SetAttributePredictionScheme( return status; } +#ifdef DRACO_TRANSCODER_SUPPORTED +Status ExpertEncoder::ApplyCompressionOptions(const Mesh &mesh) { + if (!mesh.IsCompressionEnabled()) { + return OkStatus(); + } + const auto &compression_options = mesh.GetCompressionOptions(); + + // Set any encoder options that haven't been explicitly set by users (don't + // override existing options). + if (!options().IsSpeedSet()) { + options().SetSpeed(10 - compression_options.compression_level, + 10 - compression_options.compression_level); + } + + for (int ai = 0; ai < mesh.num_attributes(); ++ai) { + if (options().IsAttributeOptionSet(ai, "quantization_bits")) { + continue; // Don't override options that have been set. + } + int quantization_bits = 0; + const auto type = mesh.attribute(ai)->attribute_type(); + switch (type) { + case GeometryAttribute::POSITION: + if (compression_options.quantization_position + .AreQuantizationBitsDefined()) { + quantization_bits = + compression_options.quantization_position.quantization_bits(); + } else { + DRACO_RETURN_IF_ERROR(ApplyGridQuantization(mesh, ai)); + } + break; + case GeometryAttribute::TEX_COORD: + quantization_bits = compression_options.quantization_bits_tex_coord; + break; + case GeometryAttribute::NORMAL: + quantization_bits = compression_options.quantization_bits_normal; + break; + case GeometryAttribute::COLOR: + quantization_bits = compression_options.quantization_bits_color; + break; + case GeometryAttribute::TANGENT: + quantization_bits = compression_options.quantization_bits_tangent; + break; + case GeometryAttribute::WEIGHTS: + quantization_bits = compression_options.quantization_bits_weight; + break; + case GeometryAttribute::GENERIC: + quantization_bits = compression_options.quantization_bits_generic; + break; + default: + break; + } + if (quantization_bits > 0) { + options().SetAttributeInt(ai, "quantization_bits", quantization_bits); + } + } + return OkStatus(); +} + +Status ExpertEncoder::ApplyGridQuantization(const Mesh &mesh, + int attribute_index) { + const auto compression_options = mesh.GetCompressionOptions(); + if (mesh.attribute(attribute_index)->num_components() != 3) { + return ErrorStatus( + "Invalid number of components: Grid quantization is currently " + "supported only for 3D positions."); + } + const float spacing = compression_options.quantization_position.spacing(); + // Compute quantization properties based on the grid spacing. + const auto &bbox = mesh.ComputeBoundingBox(); + // Snap min and max points of the |bbox| to the quantization grid vertices. + Vector3f min_pos; + int num_values = 0; // Number of values that we need to encode. + for (int c = 0; c < 3; ++c) { + // Min / max position on grid vertices in grid coordinates. + const float min_grid_pos = floor(bbox.GetMinPoint()[c] / spacing); + const float max_grid_pos = ceil(bbox.GetMaxPoint()[c] / spacing); + + // Min pos on grid vertex in mesh coordinates. + min_pos[c] = min_grid_pos * spacing; + + const float component_num_values = + static_cast(max_grid_pos) - static_cast(min_grid_pos) + 1; + if (component_num_values > num_values) { + num_values = component_num_values; + } + } + // Now compute the number of bits needed to encode |num_values|. + int bits = MostSignificantBit(num_values); + if ((1 << bits) < num_values) { + // If the |num_values| is larger than number of values representable by + // |bits|, we need to use one more bit. This will be almost always true + // unless |num_values| was equal to 1 << |bits|. + bits++; + } + // Compute the range in mesh coordinates that matches the quantization bits. + const float range = (1 << bits) * spacing; + SetAttributeExplicitQuantization(attribute_index, bits, 3, min_pos.data(), + range); + return OkStatus(); +} +#endif // DRACO_TRANSCODER_SUPPORTED + } // namespace draco diff --git a/src/draco/compression/expert_encode.h b/src/draco/compression/expert_encode.h index ea59393..5c1485e 100644 --- a/src/draco/compression/expert_encode.h +++ b/src/draco/compression/expert_encode.h @@ -138,6 +138,12 @@ class ExpertEncoder : public EncoderBase { Status EncodeMeshToBuffer(const Mesh &m, EncoderBuffer *out_buffer); +#ifdef DRACO_TRANSCODER_SUPPORTED + // Applies compression options stored in |mesh|. + Status ApplyCompressionOptions(const Mesh &mesh); + Status ApplyGridQuantization(const Mesh &mesh, int attribute_index); +#endif // DRACO_TRANSCODER_SUPPORTED + const PointCloud *point_cloud_; const Mesh *mesh_; }; diff --git a/src/draco/compression/mesh/mesh_edgebreaker_decoder_impl.cc b/src/draco/compression/mesh/mesh_edgebreaker_decoder_impl.cc index d414bfd..21ad995 100644 --- a/src/draco/compression/mesh/mesh_edgebreaker_decoder_impl.cc +++ b/src/draco/compression/mesh/mesh_edgebreaker_decoder_impl.cc @@ -484,7 +484,10 @@ bool MeshEdgebreakerDecoderImpl::DecodeConnectivity() { attribute_data_[i].connectivity_data.AddSeamEdge(CornerIndex(c)); } // Recompute vertices from the newly added seam edges. - attribute_data_[i].connectivity_data.RecomputeVertices(nullptr, nullptr); + if (!attribute_data_[i].connectivity_data.RecomputeVertices(nullptr, + nullptr)) { + return false; + } } pos_encoding_data_.Init(corner_table_->num_vertices()); @@ -574,6 +577,17 @@ int MeshEdgebreakerDecoderImpl::DecodeConnectivity( const CornerIndex corner_b = corner_table_->Next(corner_table_->LeftMostCorner(vertex_x)); + if (corner_a == corner_b) { + // All matched corners must be different. + return -1; + } + if (corner_table_->Opposite(corner_a) != kInvalidCornerIndex || + corner_table_->Opposite(corner_b) != kInvalidCornerIndex) { + // One of the corners is already opposite to an existing face, which + // should not happen unless the input was tampered with. + return -1; + } + // New tip corner. const CornerIndex corner(3 * face.value()); // Update opposite corner mappings. @@ -616,6 +630,11 @@ int MeshEdgebreakerDecoderImpl::DecodeConnectivity( return -1; } const CornerIndex corner_a = active_corner_stack.back(); + if (corner_table_->Opposite(corner_a) != kInvalidCornerIndex) { + // Active corner is already opposite to an existing face, which should + // not happen unless the input was tampered with. + return -1; + } // First corner on the new face is either corner "l" or "r". const CornerIndex corner(3 * face.value()); @@ -681,10 +700,14 @@ int MeshEdgebreakerDecoderImpl::DecodeConnectivity( } const CornerIndex corner_a = active_corner_stack.back(); + if (corner_a == corner_b) { + // All matched corners must be different. + return -1; + } if (corner_table_->Opposite(corner_a) != kInvalidCornerIndex || corner_table_->Opposite(corner_b) != kInvalidCornerIndex) { // One of the corners is already opposite to an existing face, which - // should not happen unless the input was tempered with. + // should not happen unless the input was tampered with. return -1; } @@ -713,9 +736,15 @@ int MeshEdgebreakerDecoderImpl::DecodeConnectivity( // Also update the vertex id at corner "n" and all corners that are // connected to it in the CCW direction. + const CornerIndex first_corner = corner_n; while (corner_n != kInvalidCornerIndex) { corner_table_->MapCornerToVertex(corner_n, vertex_p); corner_n = corner_table_->SwingLeft(corner_n); + if (corner_n == first_corner) { + // We reached the start again which should not happen for split + // symbols. + return -1; + } } // Make sure the old vertex n is now mapped to an invalid corner (make it // isolated). @@ -842,6 +871,18 @@ int MeshEdgebreakerDecoderImpl::DecodeConnectivity( const CornerIndex corner_c = corner_table_->Next(corner_table_->LeftMostCorner(vert_x)); + if (corner == corner_b || corner == corner_c || corner_b == corner_c) { + // All matched corners must be different. + return -1; + } + if (corner_table_->Opposite(corner) != kInvalidCornerIndex || + corner_table_->Opposite(corner_b) != kInvalidCornerIndex || + corner_table_->Opposite(corner_c) != kInvalidCornerIndex) { + // One of the corners is already opposite to an existing face, which + // should not happen unless the input was tampered with. + return -1; + } + const VertexIndex vert_p = corner_table_->Vertex(corner_table_->Next(corner_c)); diff --git a/src/draco/compression/mesh/mesh_sequential_decoder.cc b/src/draco/compression/mesh/mesh_sequential_decoder.cc index fbc7383..595a487 100644 --- a/src/draco/compression/mesh/mesh_sequential_decoder.cc +++ b/src/draco/compression/mesh/mesh_sequential_decoder.cc @@ -158,6 +158,10 @@ bool MeshSequentialDecoder::DecodeAndDecompressIndices(uint32_t num_faces) { index_diff = -index_diff; } const int32_t index_value = index_diff + last_index_value; + if (index_value < 0) { + // Negative indices are not allowed. + return false; + } face[j] = index_value; last_index_value = index_value; } diff --git a/src/draco/compression/point_cloud/algorithms/dynamic_integer_points_kd_tree_decoder.h b/src/draco/compression/point_cloud/algorithms/dynamic_integer_points_kd_tree_decoder.h index 9b6bbd9..a72798b 100644 --- a/src/draco/compression/point_cloud/algorithms/dynamic_integer_points_kd_tree_decoder.h +++ b/src/draco/compression/point_cloud/algorithms/dynamic_integer_points_kd_tree_decoder.h @@ -20,6 +20,7 @@ #include #include #include +#include #include "draco/compression/bit_coders/adaptive_rans_bit_decoder.h" #include "draco/compression/bit_coders/direct_bit_decoder.h" @@ -103,6 +104,9 @@ class DynamicIntegerPointsKdTreeDecoder { const uint32_t dimension() const { return dimension_; } + // Returns the number of decoded points. Must be called after DecodePoints(). + uint32_t num_decoded_points() const { return num_decoded_points_; } + private: uint32_t GetAxis(uint32_t num_remaining_points, const VectorUint32 &levels, uint32_t last_axis); @@ -274,8 +278,10 @@ bool DynamicIntegerPointsKdTreeDecoder::DecodeInternal( p_[axes_[j]] = 0; const uint32_t num_remaining_bits = bit_length_ - levels[axes_[j]]; if (num_remaining_bits) { - remaining_bits_decoder_.DecodeLeastSignificantBits32( - num_remaining_bits, &p_[axes_[j]]); + if (!remaining_bits_decoder_.DecodeLeastSignificantBits32( + num_remaining_bits, &p_[axes_[j]])) { + return false; + } } p_[axes_[j]] = old_base[axes_[j]] | p_[axes_[j]]; } diff --git a/src/draco/core/bounding_box.cc b/src/draco/core/bounding_box.cc index be0d209..8acd668 100644 --- a/src/draco/core/bounding_box.cc +++ b/src/draco/core/bounding_box.cc @@ -27,4 +27,13 @@ BoundingBox::BoundingBox() BoundingBox::BoundingBox(const Vector3f &min_point, const Vector3f &max_point) : min_point_(min_point), max_point_(max_point) {} +const bool BoundingBox::IsValid() const { + return GetMinPoint()[0] != std::numeric_limits::max() && + GetMinPoint()[1] != std::numeric_limits::max() && + GetMinPoint()[2] != std::numeric_limits::max() && + GetMaxPoint()[0] != std::numeric_limits::lowest() && + GetMaxPoint()[1] != std::numeric_limits::lowest() && + GetMaxPoint()[2] != std::numeric_limits::lowest(); +} + } // namespace draco diff --git a/src/draco/core/bounding_box.h b/src/draco/core/bounding_box.h index 31ba2d6..697a73b 100644 --- a/src/draco/core/bounding_box.h +++ b/src/draco/core/bounding_box.h @@ -38,6 +38,11 @@ class BoundingBox { // Returns the maximum point of the bounding box. inline const Vector3f &GetMaxPoint() const { return max_point_; } + // Checks if the bounding box object was created with the default constructor + // then never updated. Internally, checks if the bounding box minimum and + // maximum points hold the largest positive and smallest negative values. + const bool IsValid() const; + // Conditionally updates the bounding box with a given |new_point|. void Update(const Vector3f &new_point) { for (int i = 0; i < 3; i++) { diff --git a/src/draco/core/draco_index_type_vector.h b/src/draco/core/draco_index_type_vector.h index 0fefc43..f5256de 100644 --- a/src/draco/core/draco_index_type_vector.h +++ b/src/draco/core/draco_index_type_vector.h @@ -25,24 +25,32 @@ namespace draco { // A wrapper around the standard std::vector that supports indexing of the // vector entries using the strongly typed indices as defined in -// draco_index_type.h . -// TODO(ostava): Make the interface more complete. It's currently missing -// features such as iterators. +// draco_index_type.h. +// TODO(ostava): Make the interface more complete. It's currently missing some +// features. template class IndexTypeVector { public: typedef typename std::vector::const_reference const_reference; typedef typename std::vector::reference reference; + typedef typename std::vector::iterator iterator; + typedef typename std::vector::const_iterator const_iterator; IndexTypeVector() {} explicit IndexTypeVector(size_t size) : vector_(size) {} IndexTypeVector(size_t size, const ValueTypeT &val) : vector_(size, val) {} + iterator begin() { return vector_.begin(); } + const_iterator begin() const { return vector_.begin(); } + iterator end() { return vector_.end(); } + const_iterator end() const { return vector_.end(); } + void clear() { vector_.clear(); } void reserve(size_t size) { vector_.reserve(size); } void resize(size_t size) { vector_.resize(size); } void resize(size_t size, const ValueTypeT &val) { vector_.resize(size, val); } void assign(size_t size, const ValueTypeT &val) { vector_.assign(size, val); } + iterator erase(iterator position) { return vector_.erase(position); } void swap(IndexTypeVector &arg) { vector_.swap(arg.vector_); diff --git a/src/draco/core/draco_version.h b/src/draco/core/draco_version.h index bf1f5e6..24ac4c0 100644 --- a/src/draco/core/draco_version.h +++ b/src/draco/core/draco_version.h @@ -18,7 +18,7 @@ namespace draco { // Draco version is comprised of ... -static const char kDracoVersion[] = "1.5.3"; +static const char kDracoVersion[] = "1.5.4"; const char *Version() { return kDracoVersion; } diff --git a/src/draco/core/math_utils.h b/src/draco/core/math_utils.h index 7f382fa..9d03e54 100644 --- a/src/draco/core/math_utils.h +++ b/src/draco/core/math_utils.h @@ -19,6 +19,8 @@ #include "draco/core/vector_d.h" +namespace draco { + #define DRACO_INCREMENT_MOD(I, M) (((I) == ((M)-1)) ? 0 : ((I) + 1)) // Returns floor(sqrt(x)) where x is an integer number. The main intend of this @@ -52,4 +54,26 @@ inline uint64_t IntSqrt(uint64_t number) { return square_root; } +// Performs the addition in unsigned type to avoid signed integer overflow. Note +// that the result will be the same (for non-overflowing values). +template < + typename DataTypeT, + typename std::enable_if::value && + std::is_signed::value>::type* = nullptr> +inline DataTypeT AddAsUnsigned(DataTypeT a, DataTypeT b) { + typedef typename std::make_unsigned::type DataTypeUT; + return static_cast(static_cast(a) + + static_cast(b)); +} + +template < + typename DataTypeT, + typename std::enable_if::value || + !std::is_signed::value>::type* = nullptr> +inline DataTypeT AddAsUnsigned(DataTypeT a, DataTypeT b) { + return a + b; +} + +} // namespace draco + #endif // DRACO_CORE_MATH_UTILS_H_ diff --git a/src/draco/core/math_utils_test.cc b/src/draco/core/math_utils_test.cc index 8c255d0..460a674 100644 --- a/src/draco/core/math_utils_test.cc +++ b/src/draco/core/math_utils_test.cc @@ -5,7 +5,7 @@ #include "draco/core/draco_test_base.h" -using draco::Vector3f; +namespace draco { TEST(MathUtils, Mod) { EXPECT_EQ(DRACO_INCREMENT_MOD(1, 1 << 1), 0); } @@ -20,3 +20,5 @@ TEST(MathUtils, IntSqrt) { ASSERT_EQ(IntSqrt(number), static_cast(floor(std::sqrt(number)))); } } + +} // namespace draco diff --git a/src/draco/core/options.cc b/src/draco/core/options.cc index 9b81db4..11fc648 100644 --- a/src/draco/core/options.cc +++ b/src/draco/core/options.cc @@ -20,8 +20,6 @@ namespace draco { -Options::Options() {} - void Options::MergeAndReplace(const Options &other_options) { for (const auto &item : other_options.options_) { options_[item.first] = item.second; diff --git a/src/draco/core/options.h b/src/draco/core/options.h index 9dc22ce..05d6408 100644 --- a/src/draco/core/options.h +++ b/src/draco/core/options.h @@ -27,7 +27,8 @@ namespace draco { // data type. class Options { public: - Options(); + Options() = default; + ~Options() = default; // Merges |other_options| on top of the existing options of this instance // replacing all entries that are present in both options instances. diff --git a/src/draco/io/gltf_decoder.cc b/src/draco/io/gltf_decoder.cc index 6d11fa8..60bb0ab 100644 --- a/src/draco/io/gltf_decoder.cc +++ b/src/draco/io/gltf_decoder.cc @@ -17,17 +17,24 @@ #ifdef DRACO_TRANSCODER_SUPPORTED #include +#include #include +#include #include #include #include +#include "draco/core/draco_types.h" #include "draco/core/hash_utils.h" #include "draco/core/status.h" #include "draco/core/status_or.h" #include "draco/io/tiny_gltf_utils.h" +#include "draco/material/material_library.h" #include "draco/mesh/mesh.h" +#include "draco/mesh/mesh_features.h" #include "draco/mesh/triangle_soup_mesh_builder.h" +#include "draco/metadata/property_table.h" +#include "draco/point_cloud/point_cloud_builder.h" #include "draco/scene/scene_indices.h" #include "draco/texture/source_image.h" #include "draco/texture/texture_utils.h" @@ -72,6 +79,9 @@ GeometryAttribute::Type GltfAttributeToDracoAttribute( return GeometryAttribute::JOINTS; } else if (attribute_name == "WEIGHTS_0") { return GeometryAttribute::WEIGHTS; + } else if (attribute_name.rfind("_FEATURE_ID_") == 0) { + // Feature ID attribute like _FEATURE_ID_5 from EXT_mesh_features extension. + return GeometryAttribute::GENERIC; } return GeometryAttribute::INVALID; } @@ -168,12 +178,77 @@ StatusOr> CopyDataAsUint32( return output; } -template -StatusOr> CopyDataAs(const tinygltf::Model &model, - const tinygltf::Accessor &accessor) { +// Specialization for arithmetic types. +template < + typename TypeT, + typename std::enable_if::value>::type * = nullptr> +StatusOr> CopyDataAs(const tinygltf::Model &model, + const tinygltf::Accessor &accessor) { + if (std::is_same::value) { + if (TINYGLTF_COMPONENT_TYPE_UNSIGNED_BYTE != accessor.componentType) { + return ErrorStatus("Accessor data cannot be converted to Uint8."); + } + } else if (std::is_same::value) { + if (TINYGLTF_COMPONENT_TYPE_UNSIGNED_BYTE != accessor.componentType && + TINYGLTF_COMPONENT_TYPE_UNSIGNED_SHORT != accessor.componentType) { + return ErrorStatus("Accessor data cannot be converted to Uint16."); + } + } else if (std::is_same::value) { + if (TINYGLTF_COMPONENT_TYPE_UNSIGNED_BYTE != accessor.componentType && + TINYGLTF_COMPONENT_TYPE_UNSIGNED_SHORT != accessor.componentType && + TINYGLTF_COMPONENT_TYPE_UNSIGNED_INT != accessor.componentType) { + return ErrorStatus("Accessor data cannot be converted to Uint32."); + } + } else if (std::is_same::value) { + if (TINYGLTF_COMPONENT_TYPE_FLOAT != accessor.componentType) { + return ErrorStatus("Accessor data cannot be converted to Float."); + } + } + if (accessor.bufferView < 0) { + return Status(Status::DRACO_ERROR, "Error CopyDataAs() bufferView < 0."); + } + + const tinygltf::BufferView &buffer_view = + model.bufferViews[accessor.bufferView]; + if (buffer_view.buffer < 0) { + return Status(Status::DRACO_ERROR, "Error CopyDataAs() buffer < 0."); + } + + const tinygltf::Buffer &buffer = model.buffers[buffer_view.buffer]; + + const uint8_t *const data_start = + buffer.data.data() + buffer_view.byteOffset + accessor.byteOffset; + const int byte_stride = accessor.ByteStride(buffer_view); + const int component_size = + tinygltf::GetComponentSizeInBytes(accessor.componentType); + + std::vector output; + output.resize(accessor.count); + const int num_components = TinyGltfUtils::GetNumComponentsForType(accessor.type); - if (num_components != VectorT::dimension) { + int out_index = 0; + const uint8_t *data = data_start; + for (int i = 0; i < accessor.count; ++i) { + for (int c = 0; c < num_components; ++c) { + TypeT value = 0; + memcpy(&value, data + (c * component_size), component_size); + output[out_index++] = value; + } + data += byte_stride; + } + return output; +} + +// Specialization for remaining types is used for draco::VectorD. +template ::value>::type * = + nullptr> +StatusOr> CopyDataAs(const tinygltf::Model &model, + const tinygltf::Accessor &accessor) { + const int num_components = + TinyGltfUtils::GetNumComponentsForType(accessor.type); + if (num_components != TypeT::dimension) { return Status(Status::DRACO_ERROR, "Dimension does not equal num components."); } @@ -195,21 +270,18 @@ StatusOr> CopyDataAs(const tinygltf::Model &model, const int component_size = tinygltf::GetComponentSizeInBytes(accessor.componentType); - std::vector output; + std::vector output; output.resize(accessor.count); const uint8_t *data = data_start; for (int i = 0; i < accessor.count; ++i) { - VectorT values; - + TypeT values; for (int c = 0; c < num_components; ++c) { memcpy(&values[c], data + (c * component_size), component_size); } - output[i] = values; data += byte_stride; } - return output; } @@ -218,11 +290,11 @@ StatusOr> CopyDataAs(const tinygltf::Model &model, Status CopyDataFromBufferView(const tinygltf::Model &model, int buffer_view_id, std::vector *data) { if (buffer_view_id < 0) { - return Status(Status::DRACO_ERROR, "Error CopyDataAs() bufferView < 0."); + return ErrorStatus("Error CopyDataFromBufferView() bufferView < 0."); } const tinygltf::BufferView &buffer_view = model.bufferViews[buffer_view_id]; if (buffer_view.buffer < 0) { - return Status(Status::DRACO_ERROR, "Error CopyDataAs() buffer < 0."); + return ErrorStatus("Error CopyDataFromBufferView() buffer < 0."); } if (buffer_view.byteStride != 0) { return Status(Status::DRACO_ERROR, "Error buffer view byteStride != 0."); @@ -360,7 +432,11 @@ bool WriteWholeFile(std::string * /*err*/, const std::string &filepath, } // namespace GltfDecoder::GltfDecoder() - : next_face_id_(0), total_indices_count_(0), material_att_id_(-1) {} + : next_face_id_(0), + next_point_id_(0), + total_face_indices_count_(0), + total_point_indices_count_(0), + material_att_id_(-1) {} StatusOr> GltfDecoder::DecodeFromFile( const std::string &file_name) { @@ -452,8 +528,18 @@ Status GltfDecoder::LoadBuffer(const DecoderBuffer &buffer) { StatusOr> GltfDecoder::BuildMesh() { DRACO_RETURN_IF_ERROR(GatherAttributeAndMaterialStats()); - mb_.Start(total_indices_count_ / 3); - DRACO_RETURN_IF_ERROR(AddAttributesToDracoMesh()); + if (total_face_indices_count_ > 0 && total_point_indices_count_ > 0) { + return ErrorStatus( + "Decoding to mesh can't handle triangle and point primitives at the " + "same time."); + } + if (total_face_indices_count_ > 0) { + mb_.Start(total_face_indices_count_ / 3); + DRACO_RETURN_IF_ERROR(AddAttributesToDracoMesh(&mb_)); + } else { + pb_.Start(total_point_indices_count_); + DRACO_RETURN_IF_ERROR(AddAttributesToDracoMesh(&pb_)); + } for (const tinygltf::Scene &scene : gltf_model_.scenes) { for (int i = 0; i < scene.nodes.size(); ++i) { @@ -461,13 +547,45 @@ StatusOr> GltfDecoder::BuildMesh() { DRACO_RETURN_IF_ERROR(DecodeNode(scene.nodes[i], parent_matrix)); } } - std::unique_ptr mesh = mb_.Finalize(); + DRACO_ASSIGN_OR_RETURN( + std::unique_ptr mesh, + BuildMeshFromBuilder(total_face_indices_count_ > 0, &mb_, &pb_)); DRACO_RETURN_IF_ERROR(CopyTextures(mesh.get())); + SetAttributePropertiesOnDracoMesh(mesh.get()); DRACO_RETURN_IF_ERROR(AddMaterialsToDracoMesh(mesh.get())); + DRACO_RETURN_IF_ERROR(AddMeshFeaturesToDracoMesh(mesh.get())); + DRACO_RETURN_IF_ERROR(AddStructuralMetadataToGeometry(mesh.get())); + MoveNonMaterialTextures(mesh.get()); return mesh; } +Status GltfDecoder::AddMeshFeaturesToDracoMesh(Mesh *mesh) { + for (const tinygltf::Scene &scene : gltf_model_.scenes) { + for (int i = 0; i < scene.nodes.size(); ++i) { + DRACO_RETURN_IF_ERROR(AddMeshFeaturesToDracoMesh(scene.nodes[i], mesh)); + } + } + return OkStatus(); +} + +Status GltfDecoder::AddMeshFeaturesToDracoMesh(int node_index, Mesh *mesh) { + const tinygltf::Node &node = gltf_model_.nodes[node_index]; + if (node.mesh >= 0) { + const tinygltf::Mesh &gltf_mesh = gltf_model_.meshes[node.mesh]; + for (const auto &primitive : gltf_mesh.primitives) { + // Decode mesh feature ID sets if present in this primitive. + DRACO_RETURN_IF_ERROR(DecodeMeshFeatures( + primitive, &mesh->GetMaterialLibrary().MutableTextureLibrary(), + mesh)); + } + } + for (int i = 0; i < node.children.size(); ++i) { + DRACO_RETURN_IF_ERROR(AddMeshFeaturesToDracoMesh(node.children[i], mesh)); + } + return OkStatus(); +} + Status GltfDecoder::CheckUnsupportedFeatures() { // Check for morph targets. for (const auto &mesh : gltf_model_.meshes) { @@ -568,8 +686,10 @@ StatusOr> GltfDecoder::DecodePrimitiveIndices( Status GltfDecoder::DecodePrimitive(const tinygltf::Primitive &primitive, const Eigen::Matrix4d &transform_matrix) { - if (primitive.mode != TINYGLTF_MODE_TRIANGLES) { - return Status(Status::DRACO_ERROR, "Primitive does not contain triangles."); + if (primitive.mode != TINYGLTF_MODE_TRIANGLES && + primitive.mode != TINYGLTF_MODE_POINTS) { + return Status(Status::DRACO_ERROR, + "Primitive does not contain triangles or points."); } // Store the transformation scale of this primitive loading as draco::Mesh. @@ -583,6 +703,7 @@ Status GltfDecoder::DecodePrimitive(const tinygltf::Primitive &primitive, DRACO_ASSIGN_OR_RETURN(const std::vector indices_data, DecodePrimitiveIndices(primitive)); const int number_of_faces = indices_data.size() / 3; + const int number_of_points = indices_data.size(); for (const auto &attribute : primitive.attributes) { const tinygltf::Accessor &accessor = @@ -594,29 +715,14 @@ Status GltfDecoder::DecodePrimitive(const tinygltf::Primitive &primitive, continue; } - const bool reverse_winding = Determinant(transform_matrix) < 0; - if (attribute.first == "TEXCOORD_0" || attribute.first == "TEXCOORD_1") { - DRACO_RETURN_IF_ERROR(AddTexCoordToMeshBuilder(accessor, indices_data, - att_id, number_of_faces, - reverse_winding, &mb_)); - } else if (attribute.first == "TANGENT") { - const Eigen::Matrix4d matrix = UpdateMatrixForNormals(transform_matrix); - DRACO_RETURN_IF_ERROR(AddTangentToMeshBuilder( - accessor, indices_data, att_id, number_of_faces, matrix, - reverse_winding, &mb_)); - } else if (attribute.first == "POSITION" || attribute.first == "NORMAL") { - const Eigen::Matrix4d matrix = - (attribute.first == "NORMAL") - ? UpdateMatrixForNormals(transform_matrix) - : transform_matrix; - const bool normalize = (attribute.first == "NORMAL"); - DRACO_RETURN_IF_ERROR(AddTransformedDataToMeshBuilder( - accessor, indices_data, att_id, number_of_faces, matrix, normalize, - reverse_winding, &mb_)); + if (primitive.mode == TINYGLTF_MODE_TRIANGLES) { + DRACO_RETURN_IF_ERROR(AddAttributeValuesToBuilder( + attribute.first, accessor, indices_data, att_id, number_of_faces, + transform_matrix, &mb_)); } else { - DRACO_RETURN_IF_ERROR(AddAttributeDataByTypes(accessor, indices_data, - att_id, number_of_faces, - reverse_winding, &mb_)); + DRACO_RETURN_IF_ERROR(AddAttributeValuesToBuilder( + attribute.first, accessor, indices_data, att_id, number_of_points, + transform_matrix, &pb_)); } } @@ -626,24 +732,18 @@ Status GltfDecoder::DecodePrimitive(const tinygltf::Primitive &primitive, const auto it = gltf_primitive_material_to_draco_material_.find(material_index); if (it != gltf_primitive_material_to_draco_material_.end()) { - if (gltf_primitive_material_to_draco_material_.size() < 256) { - const uint8_t material_value = it->second; - DRACO_RETURN_IF_ERROR(AddMaterialDataToMeshBuilder( - material_value, number_of_faces)); - } else if (gltf_primitive_material_to_draco_material_.size() < - (1 << 16)) { - const uint16_t material_value = it->second; - DRACO_RETURN_IF_ERROR(AddMaterialDataToMeshBuilder( - material_value, number_of_faces)); + if (primitive.mode == TINYGLTF_MODE_TRIANGLES) { + DRACO_RETURN_IF_ERROR( + AddMaterialDataToBuilder(it->second, number_of_faces, &mb_)); } else { - const uint32_t material_value = it->second; - DRACO_RETURN_IF_ERROR(AddMaterialDataToMeshBuilder( - material_value, number_of_faces)); + DRACO_RETURN_IF_ERROR( + AddMaterialDataToBuilder(it->second, number_of_points, &pb_)); } } } next_face_id_ += number_of_faces; + next_point_id_ += number_of_points; return OkStatus(); } @@ -682,32 +782,38 @@ Status GltfDecoder::GatherAttributeAndMaterialStats() { void GltfDecoder::SumAttributeStats(const std::string &attribute_name, int count) { - const auto it = total_attribute_counts_.find(attribute_name); - if (it == total_attribute_counts_.end()) { - total_attribute_counts_[attribute_name] = count; - } else { - total_attribute_counts_[attribute_name] += count; - } + // We know that there must be a valid entry for |attribute_name| at this time. + mesh_attribute_data_[attribute_name].total_attribute_counts += count; } Status GltfDecoder::CheckTypes(const std::string &attribute_name, - int component_type, int type) { - const auto it_ct = attribute_component_type_.find(attribute_name); - if (it_ct == attribute_component_type_.end()) { - attribute_component_type_[attribute_name] = component_type; - } else if (attribute_component_type_[attribute_name] != component_type) { + int component_type, int type, bool normalized) { + auto it_mad = mesh_attribute_data_.find(attribute_name); + + if (it_mad == mesh_attribute_data_.end()) { + MeshAttributeData mad; + mad.component_type = component_type; + mad.attribute_type = type; + mad.normalized = normalized; + mesh_attribute_data_[attribute_name] = mad; + return OkStatus(); + } + if (it_mad->second.component_type != component_type) { return Status( Status::DRACO_ERROR, attribute_name + " attribute component type does not match previous."); } - - const auto it_t = attribute_type_.find(attribute_name); - if (it_t == attribute_type_.end()) { - attribute_type_[attribute_name] = type; - } else if (attribute_type_[attribute_name] != type) { + if (it_mad->second.attribute_type != type) { return Status(Status::DRACO_ERROR, attribute_name + " attribute type does not match previous."); } + if (it_mad->second.normalized != normalized) { + return Status( + Status::DRACO_ERROR, + attribute_name + + " attribute normalized property does not match previous."); + } + return OkStatus(); } @@ -715,21 +821,28 @@ Status GltfDecoder::AccumulatePrimitiveStats( const tinygltf::Primitive &primitive) { DRACO_ASSIGN_OR_RETURN(const int indices_count, DecodePrimitiveIndicesCount(primitive)); - total_indices_count_ += indices_count; + if (primitive.mode == TINYGLTF_MODE_TRIANGLES) { + total_face_indices_count_ += indices_count; + } else if (primitive.mode == TINYGLTF_MODE_POINTS) { + total_point_indices_count_ += indices_count; + } else { + return ErrorStatus("Unsupported primitive indices mode."); + } for (const auto &attribute : primitive.attributes) { const tinygltf::Accessor &accessor = gltf_model_.accessors[attribute.second]; - DRACO_RETURN_IF_ERROR( - CheckTypes(attribute.first, accessor.componentType, accessor.type)); + DRACO_RETURN_IF_ERROR(CheckTypes(attribute.first, accessor.componentType, + accessor.type, accessor.normalized)); SumAttributeStats(attribute.first, accessor.count); } return OkStatus(); } -Status GltfDecoder::AddAttributesToDracoMesh() { - for (const auto &attribute : total_attribute_counts_) { +template +Status GltfDecoder::AddAttributesToDracoMesh(BuilderT *builder) { + for (const auto &attribute : mesh_attribute_data_) { const GeometryAttribute::Type draco_att_type = GltfAttributeToDracoAttribute(attribute.first); if (draco_att_type == GeometryAttribute::INVALID) { @@ -740,8 +853,8 @@ Status GltfDecoder::AddAttributesToDracoMesh() { } DRACO_ASSIGN_OR_RETURN( const int att_id, - AddAttribute(draco_att_type, attribute_component_type_[attribute.first], - attribute_type_[attribute.first], &mb_)); + AddAttribute(draco_att_type, attribute.second.component_type, + attribute.second.attribute_type, builder)); attribute_name_to_draco_mesh_attribute_id_[attribute.first] = att_id; } @@ -754,17 +867,54 @@ Status GltfDecoder::AddAttributesToDracoMesh() { component_type = DT_UINT16; } material_att_id_ = - mb_.AddAttribute(GeometryAttribute::MATERIAL, 1, component_type); + builder->AddAttribute(GeometryAttribute::MATERIAL, 1, component_type); } return OkStatus(); } -Status GltfDecoder::AddTangentToMeshBuilder( +template +Status GltfDecoder::AddAttributeValuesToBuilder( + const std::string &attribute_name, const tinygltf::Accessor &accessor, + const std::vector &indices_data, int att_id, + int number_of_elements, const Eigen::Matrix4d &transform_matrix, + BuilderT *builder) { + const bool reverse_winding = Determinant(transform_matrix) < 0; + if (attribute_name == "TEXCOORD_0" || attribute_name == "TEXCOORD_1") { + DRACO_RETURN_IF_ERROR(AddTexCoordToBuilder(accessor, indices_data, att_id, + number_of_elements, + reverse_winding, builder)); + } else if (attribute_name == "TANGENT") { + const Eigen::Matrix4d matrix = UpdateMatrixForNormals(transform_matrix); + DRACO_RETURN_IF_ERROR(AddTangentToBuilder(accessor, indices_data, att_id, + number_of_elements, matrix, + reverse_winding, builder)); + } else if (attribute_name == "POSITION" || attribute_name == "NORMAL") { + const Eigen::Matrix4d matrix = + (attribute_name == "NORMAL") ? UpdateMatrixForNormals(transform_matrix) + : transform_matrix; + const bool normalize = (attribute_name == "NORMAL"); + DRACO_RETURN_IF_ERROR(AddTransformedDataToBuilder( + accessor, indices_data, att_id, number_of_elements, matrix, normalize, + reverse_winding, builder)); + } else if (attribute_name.rfind("_FEATURE_ID_") == 0) { + DRACO_RETURN_IF_ERROR(AddFeatureIdToBuilder( + accessor, indices_data, att_id, number_of_elements, reverse_winding, + attribute_name, builder)); + } else { + DRACO_RETURN_IF_ERROR(AddAttributeDataByTypes(accessor, indices_data, + att_id, number_of_elements, + reverse_winding, builder)); + } + return OkStatus(); +} + +template +Status GltfDecoder::AddTangentToBuilder( const tinygltf::Accessor &accessor, - const std::vector &indices_data, int att_id, int number_of_faces, - const Eigen::Matrix4d &transform_matrix, bool reverse_winding, - TriangleSoupMeshBuilder *mb) { + const std::vector &indices_data, int att_id, + int number_of_elements, const Eigen::Matrix4d &transform_matrix, + bool reverse_winding, BuilderT *builder) { DRACO_ASSIGN_OR_RETURN( std::vector data, TinyGltfUtils::CopyDataAsFloat(gltf_model_, accessor)); @@ -787,15 +937,16 @@ Status GltfDecoder::AddTangentToMeshBuilder( } } - SetValuesPerFace(indices_data, att_id, number_of_faces, data, - reverse_winding, mb); + SetValuesForBuilder(indices_data, att_id, number_of_elements, data, + reverse_winding, builder); return OkStatus(); } -Status GltfDecoder::AddTexCoordToMeshBuilder( +template +Status GltfDecoder::AddTexCoordToBuilder( const tinygltf::Accessor &accessor, - const std::vector &indices_data, int att_id, int number_of_faces, - bool reverse_winding, TriangleSoupMeshBuilder *mb) { + const std::vector &indices_data, int att_id, + int number_of_elements, bool reverse_winding, BuilderT *builder) { DRACO_ASSIGN_OR_RETURN( std::vector data, TinyGltfUtils::CopyDataAsFloat(gltf_model_, accessor)); @@ -806,16 +957,49 @@ Status GltfDecoder::AddTexCoordToMeshBuilder( uv[1] = 1.0 - uv[1]; } - SetValuesPerFace(indices_data, att_id, number_of_faces, data, - reverse_winding, mb); + SetValuesForBuilder(indices_data, att_id, number_of_elements, data, + reverse_winding, builder); return OkStatus(); } -Status GltfDecoder::AddTransformedDataToMeshBuilder( +template +Status GltfDecoder::AddFeatureIdToBuilder( const tinygltf::Accessor &accessor, - const std::vector &indices_data, int att_id, int number_of_faces, - const Eigen::Matrix4d &transform_matrix, bool normalize, - bool reverse_winding, TriangleSoupMeshBuilder *mb) { + const std::vector &indices_data, int att_id, + int number_of_elements, bool reverse_winding, + const std::string &attribute_name, BuilderT *builder) { + // Check that the feature ID attribute has correct type. + const int num_components = + TinyGltfUtils::GetNumComponentsForType(accessor.type); + if (num_components != 1) { + return ErrorStatus("Invalid feature ID attribute type."); + } + const draco::DataType draco_component_type = + GltfComponentTypeToDracoType(accessor.componentType); + if (draco_component_type != DT_UINT8 && draco_component_type != DT_UINT16 && + draco_component_type != DT_FLOAT32) { + return ErrorStatus("Invalid feature ID attribute component type."); + } + + // Set feature ID attribute values to mesh faces. + DRACO_RETURN_IF_ERROR(AddAttributeDataByTypes(accessor, indices_data, att_id, + number_of_elements, + reverse_winding, builder)); + + // Store feature ID attribute name with index like _FEATURE_ID_5 in Draco + // attribute metadata. + std::unique_ptr metadata(new draco::AttributeMetadata()); + metadata->AddEntryString("attribute_name", attribute_name); + builder->AddAttributeMetadata(att_id, std::move(metadata)); + return OkStatus(); +} + +template +Status GltfDecoder::AddTransformedDataToBuilder( + const tinygltf::Accessor &accessor, + const std::vector &indices_data, int att_id, + int number_of_elements, const Eigen::Matrix4d &transform_matrix, + bool normalize, bool reverse_winding, BuilderT *builder) { DRACO_ASSIGN_OR_RETURN( std::vector data, TinyGltfUtils::CopyDataAsFloat(gltf_model_, accessor)); @@ -832,11 +1016,35 @@ Status GltfDecoder::AddTransformedDataToMeshBuilder( } } - SetValuesPerFace(indices_data, att_id, number_of_faces, data, - reverse_winding, mb); + SetValuesForBuilder(indices_data, att_id, number_of_elements, data, + reverse_winding, builder); return OkStatus(); } +template +void GltfDecoder::SetValuesForBuilder(const std::vector &indices_data, + int att_id, int number_of_elements, + const std::vector &data, + bool reverse_winding, + TriangleSoupMeshBuilder *builder) { + SetValuesPerFace(indices_data, att_id, number_of_elements, data, + reverse_winding, builder); +} + +template +void GltfDecoder::SetValuesForBuilder(const std::vector &indices_data, + int att_id, int number_of_elements, + const std::vector &data, + bool reverse_winding, + PointCloudBuilder *builder) { + for (int i = 0; i < number_of_elements; ++i) { + const uint32_t v_id = indices_data[i]; + const PointIndex pi(v_id + next_point_id_); + builder->SetAttributeValueForPoint(att_id, pi, + GetDataContentAddress(data[v_id])); + } +} + template void GltfDecoder::SetValuesPerFace(const std::vector &indices_data, int att_id, int number_of_faces, @@ -852,16 +1060,37 @@ void GltfDecoder::SetValuesPerFace(const std::vector &indices_data, const uint32_t v_prev_id = indices_data[base_corner + prev_offset]; const FaceIndex face_index(f + next_face_id_); - mb->SetAttributeValuesForFace(att_id, face_index, data[v_id].data(), - data[v_next_id].data(), - data[v_prev_id].data()); + mb->SetAttributeValuesForFace(att_id, face_index, + GetDataContentAddress(data[v_id]), + GetDataContentAddress(data[v_next_id]), + GetDataContentAddress(data[v_prev_id])); } } +// Get the address of data content for arithmetic types |T|. +template +const void *GetDataContentAddressImpl(const T &data, + std::true_type /* is_arithmetic */) { + return &data; +} + +// Get the address of data content for vector types |T|. +template +const void *GetDataContentAddressImpl(const T &data, + std::false_type /* is_arithmetic */) { + return data.data(); +} + +template +const void *GltfDecoder::GetDataContentAddress(const T &data) const { + return GetDataContentAddressImpl(data, std::is_arithmetic()); +} + +template Status GltfDecoder::AddAttributeDataByTypes( const tinygltf::Accessor &accessor, - const std::vector &indices_data, int att_id, int number_of_faces, - bool reverse_winding, TriangleSoupMeshBuilder *mb) { + const std::vector &indices_data, int att_id, + int number_of_elements, bool reverse_winding, BuilderT *builder) { typedef VectorD Vector2u8i; typedef VectorD Vector3u8i; typedef VectorD Vector4u8i; @@ -869,27 +1098,62 @@ Status GltfDecoder::AddAttributeDataByTypes( typedef VectorD Vector3u16i; typedef VectorD Vector4u16i; switch (accessor.type) { + case TINYGLTF_TYPE_SCALAR: + switch (accessor.componentType) { + case TINYGLTF_COMPONENT_TYPE_UNSIGNED_BYTE: { + DRACO_ASSIGN_OR_RETURN(std::vector data, + CopyDataAs(gltf_model_, accessor)); + SetValuesForBuilder(indices_data, att_id, number_of_elements, + data, reverse_winding, builder); + } break; + case TINYGLTF_COMPONENT_TYPE_UNSIGNED_SHORT: { + DRACO_ASSIGN_OR_RETURN(std::vector data, + CopyDataAs(gltf_model_, accessor)); + SetValuesForBuilder(indices_data, att_id, + number_of_elements, data, + reverse_winding, builder); + } break; + case TINYGLTF_COMPONENT_TYPE_UNSIGNED_INT: { + DRACO_ASSIGN_OR_RETURN(std::vector data, + CopyDataAs(gltf_model_, accessor)); + SetValuesForBuilder(indices_data, att_id, + number_of_elements, data, + reverse_winding, builder); + } break; + case TINYGLTF_COMPONENT_TYPE_FLOAT: { + DRACO_ASSIGN_OR_RETURN(std::vector data, + CopyDataAs(gltf_model_, accessor)); + SetValuesForBuilder(indices_data, att_id, number_of_elements, + data, reverse_winding, builder); + } break; + default: + return ErrorStatus("Add attribute data, unknown component type."); + } + break; case TINYGLTF_TYPE_VEC2: switch (accessor.componentType) { case TINYGLTF_COMPONENT_TYPE_UNSIGNED_BYTE: { DRACO_ASSIGN_OR_RETURN(std::vector data, CopyDataAs(gltf_model_, accessor)); - SetValuesPerFace(indices_data, att_id, number_of_faces, - data, reverse_winding, mb); + SetValuesForBuilder(indices_data, att_id, + number_of_elements, data, + reverse_winding, builder); } break; case TINYGLTF_COMPONENT_TYPE_UNSIGNED_SHORT: { DRACO_ASSIGN_OR_RETURN( std::vector data, CopyDataAs(gltf_model_, accessor)); - SetValuesPerFace(indices_data, att_id, number_of_faces, - data, reverse_winding, mb); + SetValuesForBuilder(indices_data, att_id, + number_of_elements, data, + reverse_winding, builder); } break; case TINYGLTF_COMPONENT_TYPE_FLOAT: { DRACO_ASSIGN_OR_RETURN( std::vector data, TinyGltfUtils::CopyDataAsFloat(gltf_model_, accessor)); - SetValuesPerFace(indices_data, att_id, number_of_faces, - data, reverse_winding, mb); + SetValuesForBuilder(indices_data, att_id, + number_of_elements, data, + reverse_winding, builder); } break; default: return Status(Status::DRACO_ERROR, @@ -901,22 +1165,25 @@ Status GltfDecoder::AddAttributeDataByTypes( case TINYGLTF_COMPONENT_TYPE_UNSIGNED_BYTE: { DRACO_ASSIGN_OR_RETURN(std::vector data, CopyDataAs(gltf_model_, accessor)); - SetValuesPerFace(indices_data, att_id, number_of_faces, - data, reverse_winding, mb); + SetValuesForBuilder(indices_data, att_id, + number_of_elements, data, + reverse_winding, builder); } break; case TINYGLTF_COMPONENT_TYPE_UNSIGNED_SHORT: { DRACO_ASSIGN_OR_RETURN( std::vector data, CopyDataAs(gltf_model_, accessor)); - SetValuesPerFace(indices_data, att_id, number_of_faces, - data, reverse_winding, mb); + SetValuesForBuilder(indices_data, att_id, + number_of_elements, data, + reverse_winding, builder); } break; case TINYGLTF_COMPONENT_TYPE_FLOAT: { DRACO_ASSIGN_OR_RETURN( std::vector data, TinyGltfUtils::CopyDataAsFloat(gltf_model_, accessor)); - SetValuesPerFace(indices_data, att_id, number_of_faces, - data, reverse_winding, mb); + SetValuesForBuilder(indices_data, att_id, + number_of_elements, data, + reverse_winding, builder); } break; default: return Status(Status::DRACO_ERROR, @@ -928,22 +1195,25 @@ Status GltfDecoder::AddAttributeDataByTypes( case TINYGLTF_COMPONENT_TYPE_UNSIGNED_BYTE: { DRACO_ASSIGN_OR_RETURN(std::vector data, CopyDataAs(gltf_model_, accessor)); - SetValuesPerFace(indices_data, att_id, number_of_faces, - data, reverse_winding, mb); + SetValuesForBuilder(indices_data, att_id, + number_of_elements, data, + reverse_winding, builder); } break; case TINYGLTF_COMPONENT_TYPE_UNSIGNED_SHORT: { DRACO_ASSIGN_OR_RETURN( std::vector data, CopyDataAs(gltf_model_, accessor)); - SetValuesPerFace(indices_data, att_id, number_of_faces, - data, reverse_winding, mb); + SetValuesForBuilder(indices_data, att_id, + number_of_elements, data, + reverse_winding, builder); } break; case TINYGLTF_COMPONENT_TYPE_FLOAT: { DRACO_ASSIGN_OR_RETURN( std::vector data, TinyGltfUtils::CopyDataAsFloat(gltf_model_, accessor)); - SetValuesPerFace(indices_data, att_id, number_of_faces, - data, reverse_winding, mb); + SetValuesForBuilder(indices_data, att_id, + number_of_elements, data, + reverse_winding, builder); } break; default: return Status(Status::DRACO_ERROR, @@ -988,6 +1258,18 @@ Status GltfDecoder::CopyTextures(T *owner) { return OkStatus(); } +void GltfDecoder::SetAttributePropertiesOnDracoMesh(Mesh *mesh) { + for (const auto &mad : mesh_attribute_data_) { + const int att_id = attribute_name_to_draco_mesh_attribute_id_[mad.first]; + if (att_id == -1) { + continue; + } + if (mad.second.normalized) { + mesh->attribute(att_id)->set_normalized(true); + } + } +} + Status GltfDecoder::AddMaterialsToDracoMesh(Mesh *mesh) { bool is_normal_map_used = false; @@ -1020,13 +1302,44 @@ Status GltfDecoder::AddMaterialsToDracoMesh(Mesh *mesh) { return OkStatus(); } +template +Status GltfDecoder::AddMaterialDataToBuilder(int material_value, + int number_of_elements, + BuilderT *builder) { + if (gltf_primitive_material_to_draco_material_.size() < 256) { + const uint8_t typed_material_value = material_value; + DRACO_RETURN_IF_ERROR(AddMaterialDataToBuilderInternal( + typed_material_value, number_of_elements, builder)); + } else if (gltf_primitive_material_to_draco_material_.size() < (1 << 16)) { + const uint16_t typed_material_value = material_value; + DRACO_RETURN_IF_ERROR(AddMaterialDataToBuilderInternal( + typed_material_value, number_of_elements, builder)); + } else { + const uint32_t typed_material_value = material_value; + DRACO_RETURN_IF_ERROR(AddMaterialDataToBuilderInternal( + typed_material_value, number_of_elements, builder)); + } + return OkStatus(); +} + template -Status GltfDecoder::AddMaterialDataToMeshBuilder(T material_value, - int number_of_faces) { +Status GltfDecoder::AddMaterialDataToBuilderInternal( + T material_value, int number_of_faces, TriangleSoupMeshBuilder *builder) { for (int f = 0; f < number_of_faces; ++f) { const FaceIndex face_index(f + next_face_id_); - mb_.SetPerFaceAttributeValueForFace(material_att_id_, face_index, - &material_value); + builder->SetPerFaceAttributeValueForFace(material_att_id_, face_index, + &material_value); + } + return OkStatus(); +} + +template +Status GltfDecoder::AddMaterialDataToBuilderInternal( + T material_value, int number_of_points, PointCloudBuilder *builder) { + for (int pi = 0; pi < number_of_points; ++pi) { + const PointIndex point_index(pi + next_point_id_); + builder->SetAttributeValueForPoint(material_att_id_, point_index, + &material_value); } return OkStatus(); } @@ -1040,8 +1353,8 @@ Status GltfDecoder::CheckAndAddTextureToDracoMaterial( } const tinygltf::Texture &input_texture = gltf_model_.textures[texture_index]; - const auto texture_it = - gltf_image_to_draco_texture_.find(input_texture.source); + int source_index = input_texture.source; + const auto texture_it = gltf_image_to_draco_texture_.find(source_index); if (texture_it != gltf_image_to_draco_texture_.end()) { Texture *const texture = texture_it->second; // Default GLTF 2.0 sampler uses REPEAT mode along both S and T directions. @@ -1084,6 +1397,8 @@ Status GltfDecoder::DecodeGltfToScene() { DRACO_RETURN_IF_ERROR(GatherAttributeAndMaterialStats()); DRACO_RETURN_IF_ERROR(AddLightsToScene()); DRACO_RETURN_IF_ERROR(AddMaterialsVariantsNamesToScene()); + DRACO_RETURN_IF_ERROR(AddStructuralMetadataToGeometry(scene_.get())); + DRACO_RETURN_IF_ERROR(CopyTextures(scene_.get())); for (const tinygltf::Scene &scene : gltf_model_.scenes) { for (int i = 0; i < scene.nodes.size(); ++i) { DRACO_RETURN_IF_ERROR( @@ -1093,9 +1408,9 @@ Status GltfDecoder::DecodeGltfToScene() { } DRACO_RETURN_IF_ERROR(AddAnimationsToScene()); - DRACO_RETURN_IF_ERROR(CopyTextures(scene_.get())); DRACO_RETURN_IF_ERROR(AddMaterialsToScene()); DRACO_RETURN_IF_ERROR(AddSkinsToScene()); + MoveNonMaterialTextures(scene_.get()); return OkStatus(); } @@ -1182,6 +1497,186 @@ Status GltfDecoder::AddMaterialsVariantsNamesToScene() { return OkStatus(); } +template +Status GltfDecoder::AddStructuralMetadataToGeometry(GeometryT *geometry) { + // Check whether the glTF model has structural metadata. + const auto &e = gltf_model_.extensions.find("EXT_structural_metadata"); + if (e == gltf_model_.extensions.end()) { + // The glTF model has no structural metadata. + return OkStatus(); + } + const tinygltf::Value::Object &o = e->second.Get(); + + // Decode property table schema. + { + const auto &value = o.find("schema"); + if (value == o.end()) { + return ErrorStatus("Structural metadata extension has no schema."); + } + const tinygltf::Value &object = value->second; + if (!object.IsObject()) { + return ErrorStatus("Structural metadata extension schema is malformed."); + } + + // Decodes tinygltf::Value into PropertyTable::Schema::Object. + struct SchemaParser { + static Status Parse(const tinygltf::Value &value, + PropertyTable::Schema::Object *object) { + switch (value.Type()) { + case tinygltf::OBJECT_TYPE: { + for (auto &it : value.Get()) { + object->SetObjects().emplace_back(it.first); + DRACO_RETURN_IF_ERROR( + Parse(it.second, &object->SetObjects().back())); + } + } break; + case tinygltf::ARRAY_TYPE: { + for (int i = 0; i < value.ArrayLen(); ++i) { + object->SetArray().emplace_back(); + DRACO_RETURN_IF_ERROR( + Parse(value.Get(i), &object->SetArray().back())); + } + } break; + case tinygltf::STRING_TYPE: + object->SetString(value.Get()); + break; + case tinygltf::INT_TYPE: + object->SetInteger(value.Get()); + break; + case tinygltf::BOOL_TYPE: + object->SetBoolean(value.Get()); + break; + case tinygltf::REAL_TYPE: + case tinygltf::BINARY_TYPE: + case tinygltf::NULL_TYPE: + default: + // Not used in the schema JSON. + return ErrorStatus("Unsupported JSON type in schema."); + } + return OkStatus(); + } + }; + + // Parse property table schema and set it to |geometry|. + PropertyTable::Schema schema; + DRACO_RETURN_IF_ERROR(SchemaParser::Parse(object, &schema.json)); + geometry->GetStructuralMetadata().SetPropertyTableSchema(schema); + } + + // Decode property tables. + { + const auto &tables = o.find("propertyTables"); + if (tables == o.end()) { + return ErrorStatus( + "Structural metadata extension has no property tables."); + } + const tinygltf::Value &tables_array = tables->second; + if (!tables_array.IsArray()) { + return ErrorStatus("Property tables array is malformed."); + } + + // Loop over all property tables. + for (int i = 0; i < tables_array.Size(); i++) { + // Create a property table and populate it below. + std::unique_ptr property_table(new PropertyTable()); + + const auto &object = tables_array.Get(i); + if (!object.IsObject()) { + return ErrorStatus("Property table is malformed."); + } + const auto o = object.Get(); + + // The "class" property is required. + bool success; + std::string str_value; + DRACO_ASSIGN_OR_RETURN(success, DecodeString("class", o, &str_value)); + if (success) { + property_table->SetClass(str_value); + } else { + return ErrorStatus("Property class is malformed."); + } + + // The "count" property is required. + int int_value; + DRACO_ASSIGN_OR_RETURN(success, DecodeInt("count", o, &int_value)); + if (success) { + property_table->SetCount(int_value); + } else { + return ErrorStatus("Property count is malformed."); + } + + // The "name" property is optional. + DRACO_ASSIGN_OR_RETURN(success, DecodeString("name", o, &str_value)); + if (success) { + property_table->SetName(str_value); + } + + // Decode property table properties (columns). + { + constexpr char kName[] = "properties"; + if (!object.Has(kName)) { + return ErrorStatus("Property table is malformed."); + } + const tinygltf::Value &value = object.Get(kName); + if (!value.IsObject()) { + return ErrorStatus( + "Property table properties property is malformed."); + } + + // Loop over property table properties. + for (const auto &key : value.Keys()) { + // Create a property table property and populate it below. + std::unique_ptr property( + new PropertyTable::Property()); + + const auto &property_object = value.Get(key); + if (!property_object.IsObject()) { + return ErrorStatus("Property entry is malformed."); + } + property->SetName(key); + const auto o = property_object.Get(); + + // The "values" property is required. + DRACO_ASSIGN_OR_RETURN( + success, + DecodePropertyTableData("values", o, &property->GetData())); + if (!success) { + return ErrorStatus("Property values property is malformed."); + } + + // All other properties are not required. + DRACO_ASSIGN_OR_RETURN( + success, DecodeString("stringOffsetType", o, &str_value)); + if (success) { + property->GetStringOffsets().type = str_value; + } + DRACO_ASSIGN_OR_RETURN( + success, DecodeString("arrayOffsetType", o, &str_value)); + if (success) { + property->GetArrayOffsets().type = str_value; + } + DRACO_ASSIGN_OR_RETURN( + success, + DecodePropertyTableData("arrayOffsets", o, + &property->GetArrayOffsets().data)); + DRACO_ASSIGN_OR_RETURN( + success, + DecodePropertyTableData("stringOffsets", o, + &property->GetStringOffsets().data)); + + // Add property to the property table. + property_table->AddProperty(std::move(property)); + } + } + + // Add property table to structural metadata. + geometry->GetStructuralMetadata().AddPropertyTable( + std::move(property_table)); + } + } + return OkStatus(); +} + Status GltfDecoder::AddAnimationsToScene() { for (const auto &animation : gltf_model_.animations) { const AnimationIndex animation_index = scene_->AddAnimation(); @@ -1292,8 +1787,10 @@ Status GltfDecoder::DecodeNodeForScene(int node_index, Status GltfDecoder::DecodePrimitiveForScene( const tinygltf::Primitive &primitive, MeshGroup *mesh_group) { - if (primitive.mode != TINYGLTF_MODE_TRIANGLES) { - return Status(Status::DRACO_ERROR, "Primitive does not contain triangles."); + if (primitive.mode != TINYGLTF_MODE_TRIANGLES && + primitive.mode != TINYGLTF_MODE_POINTS) { + return Status(Status::DRACO_ERROR, + "Primitive does not contain triangles or points."); } // Decode materials variants mappings if present in this primitive. @@ -1317,52 +1814,66 @@ Status GltfDecoder::DecodePrimitiveForScene( DRACO_ASSIGN_OR_RETURN(const std::vector indices_data, DecodePrimitiveIndices(primitive)); const int number_of_faces = indices_data.size() / 3; + const int number_of_points = indices_data.size(); // Note that glTF mesh |primitive| has no name; no name is set to Draco mesh. TriangleSoupMeshBuilder mb; - mb.Start(number_of_faces); + PointCloudBuilder pb; + if (primitive.mode == TINYGLTF_MODE_TRIANGLES) { + mb.Start(number_of_faces); + } else { + pb.Start(number_of_points); + } + std::set normalized_attributes; for (const auto &attribute : primitive.attributes) { const tinygltf::Accessor &accessor = gltf_model_.accessors[attribute.second]; const int component_type = accessor.componentType; const int type = accessor.type; - DRACO_ASSIGN_OR_RETURN( - const int att_id, - AddAttribute(attribute.first, component_type, type, &mb)); + const bool normalized = accessor.normalized; + int att_id = -1; + if (primitive.mode == TINYGLTF_MODE_TRIANGLES) { + DRACO_ASSIGN_OR_RETURN( + att_id, AddAttribute(attribute.first, component_type, type, &mb)); + } else { + DRACO_ASSIGN_OR_RETURN( + att_id, AddAttribute(attribute.first, component_type, type, &pb)); + } if (att_id == -1) { continue; } + if (normalized) { + normalized_attributes.insert(att_id); + } - const bool reverse_winding = false; - if (attribute.first == "TEXCOORD_0" || attribute.first == "TEXCOORD_1") { - DRACO_RETURN_IF_ERROR(AddTexCoordToMeshBuilder(accessor, indices_data, - att_id, number_of_faces, - reverse_winding, &mb)); - } else if (attribute.first == "TANGENT") { - const Eigen::Matrix4d matrix = Eigen::Matrix4d::Identity(); - DRACO_RETURN_IF_ERROR(AddTangentToMeshBuilder( - accessor, indices_data, att_id, number_of_faces, matrix, - reverse_winding, &mb)); - } else if (attribute.first == "POSITION" || attribute.first == "NORMAL") { - const Eigen::Matrix4d matrix = Eigen::Matrix4d::Identity(); - const bool normalize = (attribute.first == "NORMAL"); - DRACO_RETURN_IF_ERROR(AddTransformedDataToMeshBuilder( - accessor, indices_data, att_id, number_of_faces, matrix, normalize, - reverse_winding, &mb)); + if (primitive.mode == TINYGLTF_MODE_TRIANGLES) { + DRACO_RETURN_IF_ERROR(AddAttributeValuesToBuilder( + attribute.first, accessor, indices_data, att_id, number_of_faces, + Eigen::Matrix4d::Identity(), &mb)); } else { - DRACO_RETURN_IF_ERROR(AddAttributeDataByTypes(accessor, indices_data, - att_id, number_of_faces, - reverse_winding, &mb)); + DRACO_RETURN_IF_ERROR(AddAttributeValuesToBuilder( + attribute.first, accessor, indices_data, att_id, number_of_points, + Eigen::Matrix4d::Identity(), &pb)); } } int material_index = primitive.material; - std::unique_ptr mesh = mb.Finalize(); - if (mesh == nullptr) { - return Status(Status::DRACO_ERROR, "Could not build Draco mesh."); + DRACO_ASSIGN_OR_RETURN( + std::unique_ptr mesh, + BuildMeshFromBuilder(primitive.mode == TINYGLTF_MODE_TRIANGLES, &mb, + &pb)); + + // Set all normalized flags for appropriate attributes. + for (const int32_t att_id : normalized_attributes) { + mesh->attribute(att_id)->set_normalized(true); } + // Decode mesh feature ID sets if present in this primitive. + DRACO_RETURN_IF_ERROR(DecodeMeshFeatures( + primitive, &scene_->GetMaterialLibrary().MutableTextureLibrary(), + mesh.get())); + const MeshIndex mesh_index = scene_->AddMesh(std::move(mesh)); if (mesh_index == kInvalidMeshIndex) { return Status(Status::DRACO_ERROR, "Could not add Draco mesh to scene."); @@ -1425,23 +1936,196 @@ Status GltfDecoder::DecodeMaterialsVariantsMappings( return OkStatus(); } +Status GltfDecoder::DecodeMeshFeatures(const tinygltf::Primitive &primitive, + TextureLibrary *texture_library, + Mesh *mesh) { + const auto &e = primitive.extensions.find("EXT_mesh_features"); + if (e == primitive.extensions.end()) { + return OkStatus(); + } + std::vector> mesh_features; + DRACO_RETURN_IF_ERROR( + DecodeMeshFeatures(e->second.Get(), + texture_library, &mesh_features)); + for (int i = 0; i < mesh_features.size(); i++) { + const MeshFeaturesIndex mfi = + mesh->AddMeshFeatures(std::move(mesh_features[i])); + if (scene_ == nullptr) { + // If we are decoding to a mesh, we need to restrict the mesh features to + // the primitive's material. + // TODO(ostava): This will not work properly when two primitives share the + // same material but have different mesh features. We will need to + // duplicate the materials in this case. + const auto mat_it = + gltf_primitive_material_to_draco_material_.find(primitive.material); + if (mat_it != gltf_primitive_material_to_draco_material_.end()) { + mesh->AddMeshFeaturesMaterialMask(mfi, mat_it->second); + } + } + } + return OkStatus(); +} + +Status GltfDecoder::DecodeMeshFeatures( + const tinygltf::Value::Object &extension, TextureLibrary *texture_library, + std::vector> *mesh_features) { + // Decode all mesh feature ID sets from JSON like this: + // "EXT_mesh_features": { + // "featureIds": [ + // { + // "label": "water", + // "featureCount": 2, + // "propertyTable": 0, + // "attribute": 0 + // }, + // { + // "featureCount": 12, + // "nullFeatureId": 100, + // "texture" : { + // "index": 0, + // "texCoord": 0, + // "channels": [0, 1, 2, 3] + // } + // } + // ] + // } + const auto &object = extension.find("featureIds"); + if (object == extension.end()) { + return ErrorStatus("Mesh features extension is malformed."); + } + const tinygltf::Value &array = object->second; + if (!array.IsArray()) { + return ErrorStatus("Mesh features array is malformed."); + } + for (int i = 0; i < array.Size(); i++) { + // Create a new feature ID set object and populate it below. + mesh_features->push_back(std::unique_ptr(new MeshFeatures())); + MeshFeatures &features = *mesh_features->back(); + + const auto &object = array.Get(i); + if (!object.IsObject()) { + return ErrorStatus("Mesh features array entry is malformed."); + } + + // The "featureCount" property is required. + { + constexpr char kName[] = "featureCount"; + if (!object.Has(kName)) { + return ErrorStatus("Mesh features is malformed."); + } + const tinygltf::Value &value = object.Get(kName); + if (!value.IsInt()) { + return ErrorStatus("Feature count property is malformed."); + } + features.SetFeatureCount(value.Get()); + } + + // All other properties are optional. + { + constexpr char kName[] = "nullFeatureId"; + if (object.Has(kName)) { + const tinygltf::Value &value = object.Get(kName); + if (!value.IsInt()) { + return ErrorStatus("Null feature ID property is malformed."); + } + features.SetNullFeatureId(value.Get()); + } + } + { + constexpr char kName[] = "label"; + if (object.Has(kName)) { + const tinygltf::Value &value = object.Get(kName); + if (!value.IsString()) { + return ErrorStatus("Label property is malformed."); + } + features.SetLabel(value.Get()); + } + } + { + constexpr char kName[] = "attribute"; + if (object.Has(kName)) { + const tinygltf::Value &value = object.Get(kName); + if (!value.IsInt()) { + return ErrorStatus("Attribute property is malformed."); + } + features.SetAttributeIndex(value.Get()); + } + } + { + constexpr char kName[] = "texture"; + if (object.Has(kName)) { + const tinygltf::Value &value = object.Get(kName); + if (!value.IsObject()) { + return ErrorStatus("Texture property is malformed."); + } + + // Decode texture contining mesh feature IDs into the |features| object + // via a temporary |material| object. + Material material(texture_library); + const auto &container_object = object.Get(); + DRACO_RETURN_IF_ERROR(DecodeTexture(kName, TextureMap::GENERIC, + container_object, &material)); + features.SetTextureMap( + *material.GetTextureMapByType(TextureMap::GENERIC)); + + // Decode array of texture channel indices. + std::vector channels; + { + constexpr char kName[] = "channels"; + if (value.Has(kName)) { + const tinygltf::Value &array = value.Get(kName); + if (!array.IsArray()) { + return ErrorStatus("Channels property is malformed."); + } + for (int i = 0; i < array.Size(); i++) { + const tinygltf::Value &value = array.Get(i); + if (!value.IsNumber()) { + return Status(Status::DRACO_ERROR, + "Channels value is malformed."); + } + channels.push_back(value.Get()); + } + } else { + channels = {0}; + } + } + features.SetTextureChannels(channels); + } + } + { + constexpr char kName[] = "propertyTable"; + if (object.Has(kName)) { + const tinygltf::Value &value = object.Get(kName); + if (!value.IsInt()) { + return ErrorStatus("Property table property is malformed."); + } + features.SetPropertyTableIndex(value.Get()); + } + } + } + return OkStatus(); +} + +template StatusOr GltfDecoder::AddAttribute(const std::string &attribute_name, int component_type, int type, - TriangleSoupMeshBuilder *mb) { + BuilderT *builder) { const GeometryAttribute::Type draco_att_type = GltfAttributeToDracoAttribute(attribute_name); if (draco_att_type == GeometryAttribute::INVALID) { - return Status(Status::DRACO_ERROR, - "Attribute " + attribute_name + " is not supported."); + // Return attribute id -1 that will be ignored and not included in the mesh. + return -1; } DRACO_ASSIGN_OR_RETURN( - const int att_id, AddAttribute(draco_att_type, component_type, type, mb)); + const int att_id, + AddAttribute(draco_att_type, component_type, type, builder)); return att_id; } +template StatusOr GltfDecoder::AddAttribute(GeometryAttribute::Type attribute_type, int component_type, int type, - TriangleSoupMeshBuilder *mb) { + BuilderT *builder) { const int num_components = TinyGltfUtils::GetNumComponentsForType(type); if (num_components == 0) { return Status(Status::DRACO_ERROR, @@ -1454,8 +2138,8 @@ StatusOr GltfDecoder::AddAttribute(GeometryAttribute::Type attribute_type, return Status(Status::DRACO_ERROR, "Could not add attribute with invalid type."); } - const int att_id = - mb->AddAttribute(attribute_type, num_components, draco_component_type); + const int att_id = builder->AddAttribute(attribute_type, num_components, + draco_component_type); if (att_id < 0) { return Status(Status::DRACO_ERROR, "Could not add attribute."); } @@ -1883,6 +2567,51 @@ StatusOr GltfDecoder::DecodeFloat(const std::string &name, return true; } +StatusOr GltfDecoder::DecodeInt(const std::string &name, + const tinygltf::Value::Object &object, + int *value) { + const auto &it = object.find(name); + if (it == object.end()) { + return false; + } + const tinygltf::Value &number = it->second; + if (!number.IsNumber()) { + return ErrorStatus("Invalid " + name + "."); + } + *value = number.Get(); + return true; +} + +StatusOr GltfDecoder::DecodeString(const std::string &name, + const tinygltf::Value::Object &object, + std::string *value) { + const auto &it = object.find(name); + if (it == object.end()) { + return false; + } + const tinygltf::Value &string = it->second; + if (!string.IsString()) { + return ErrorStatus("Invalid " + name + "."); + } + *value = string.Get(); + return true; +} + +StatusOr GltfDecoder::DecodePropertyTableData( + const std::string &name, const tinygltf::Value::Object &object, + PropertyTable::Property::Data *data) { + int buffer_view_index; + DRACO_ASSIGN_OR_RETURN(const bool success, + DecodeInt(name, object, &buffer_view_index)); + if (!success) { + return false; + } + DRACO_RETURN_IF_ERROR( + CopyDataFromBufferView(gltf_model_, buffer_view_index, &data->data)); + data->target = gltf_model_.bufferViews[buffer_view_index].target; + return true; +} + StatusOr GltfDecoder::DecodeVector3f( const std::string &name, const tinygltf::Value::Object &object, Vector3f *value) { @@ -2068,6 +2797,47 @@ Status GltfDecoder::AddSkinsToScene() { return OkStatus(); } +void GltfDecoder::MoveNonMaterialTextures(Mesh *mesh) { + std::unordered_set non_material_textures; + for (MeshFeaturesIndex i(0); i < mesh->NumMeshFeatures(); i++) { + Texture *const texture = mesh->GetMeshFeatures(i).GetTextureMap().texture(); + if (texture != nullptr) { + non_material_textures.insert(texture); + } + } + MoveNonMaterialTextures(non_material_textures, + &mesh->GetMaterialLibrary().MutableTextureLibrary(), + &mesh->GetNonMaterialTextureLibrary()); +} + +void GltfDecoder::MoveNonMaterialTextures(Scene *scene) { + std::unordered_set non_material_textures; + for (MeshIndex i(0); i < scene->NumMeshes(); i++) { + for (MeshFeaturesIndex j(0); j < scene->GetMesh(i).NumMeshFeatures(); j++) { + Texture *const texture = + scene->GetMesh(i).GetMeshFeatures(j).GetTextureMap().texture(); + if (texture != nullptr) { + non_material_textures.insert(texture); + } + } + } + MoveNonMaterialTextures(non_material_textures, + &scene->GetMaterialLibrary().MutableTextureLibrary(), + &scene->GetNonMaterialTextureLibrary()); +} + +void GltfDecoder::MoveNonMaterialTextures( + const std::unordered_set &non_material_textures, + TextureLibrary *material_tl, TextureLibrary *non_material_tl) { + // TODO(vytyaz): Consider textures that are both material and non-material. + for (int i = 0; i < material_tl->NumTextures(); i++) { + // Move non-material texture from material to non-material texture library. + if (non_material_textures.count(material_tl->GetTexture(i)) == 1) { + non_material_tl->PushTexture(material_tl->RemoveTexture(i--)); + } + } +} + bool GltfDecoder::PrimitiveSignature::operator==( const PrimitiveSignature &signature) const { return primitive.indices == signature.primitive.indices && @@ -2092,6 +2862,25 @@ size_t GltfDecoder::PrimitiveSignature::Hash::operator()( return hash; } +StatusOr> GltfDecoder::BuildMeshFromBuilder( + bool use_mesh_builder, TriangleSoupMeshBuilder *mb, PointCloudBuilder *pb) { + std::unique_ptr mesh; + if (use_mesh_builder) { + mesh = mb->Finalize(); + } else { + std::unique_ptr pc = pb->Finalize(true); + if (pc) { + mesh.reset(new Mesh()); + PointCloud *mesh_pc = mesh.get(); + mesh_pc->Copy(*pc); + } + } + if (!mesh) { + return ErrorStatus("Failed to build Draco mesh from glTF data."); + } + return mesh; +} + } // namespace draco #endif // DRACO_TRANSCODER_SUPPORTED diff --git a/src/draco/io/gltf_decoder.h b/src/draco/io/gltf_decoder.h index 8d0d0cd..9473044 100644 --- a/src/draco/io/gltf_decoder.h +++ b/src/draco/io/gltf_decoder.h @@ -22,6 +22,7 @@ #include #include #include +#include #include #include "draco/core/decoder_buffer.h" @@ -31,6 +32,7 @@ #include "draco/io/texture_io.h" #include "draco/mesh/mesh.h" #include "draco/mesh/triangle_soup_mesh_builder.h" +#include "draco/point_cloud/point_cloud_builder.h" #include "draco/scene/scene.h" #include "tiny_gltf.h" @@ -130,7 +132,7 @@ class GltfDecoder { // Checks that all the same glTF attribute types in different meshes and // primitives contain the same characteristics. Status CheckTypes(const std::string &attribute_name, int component_type, - int type); + int type, bool normalized); // Accumulates the number of elements per attribute for |primitive|. Status AccumulatePrimitiveStats(const tinygltf::Primitive &primitive); @@ -139,48 +141,86 @@ class GltfDecoder { // GatherAttributeAndMaterialStats() must be called before this function. The // GeometryAttribute::MATERIAL attribute will be created only if the glTF file // contains more than one material. - Status AddAttributesToDracoMesh(); + template + Status AddAttributesToDracoMesh(BuilderT *builder); + + // Copies attribute data from |accessor| and adds it to a Draco mesh using the + // geometry builder |builder|. + template + Status AddAttributeValuesToBuilder(const std::string &attribute_name, + const tinygltf::Accessor &accessor, + const std::vector &indices_data, + int att_id, int number_of_elements, + const Eigen::Matrix4d &transform_matrix, + BuilderT *builder); // Copies the tangent attribute data from |accessor| and adds it to a Draco // mesh. This function will transform all of the data by |transform_matrix| // and then normalize before adding the data to the Draco mesh. // |indices_data| is the indices data from the glTF file. |att_id| is the - // attribute id of the tangent attribute in the Draco mesh. |number_of_faces| - // This is the number of faces this function will process. |reverse_winding| - // if set will change the orientation of the data. - Status AddTangentToMeshBuilder(const tinygltf::Accessor &accessor, - const std::vector &indices_data, - int att_id, int number_of_faces, - const Eigen::Matrix4d &transform_matrix, - bool reverse_winding, - TriangleSoupMeshBuilder *mb); + // attribute id of the tangent attribute in the Draco mesh. + // |number_of_elements| is the number of faces or points this function will + // process. |reverse_winding| if set will change the orientation of the data. + template + Status AddTangentToBuilder(const tinygltf::Accessor &accessor, + const std::vector &indices_data, + int att_id, int number_of_elements, + const Eigen::Matrix4d &transform_matrix, + bool reverse_winding, BuilderT *builder); // Copies the texture coordinate attribute data from |accessor| and adds it to // a Draco mesh. This function will flip the data on the horizontal axis as // Draco meshes store the texture coordinates differently than glTF. // |indices_data| is the indices data from the glTF file. |att_id| is the // attribute id of the texture coordinate attribute in the Draco mesh. - // |number_of_faces| This is the number of faces this function will process. - // |reverse_winding| if set will change the orientation of the data. - Status AddTexCoordToMeshBuilder(const tinygltf::Accessor &accessor, - const std::vector &indices_data, - int att_id, int number_of_faces, - bool reverse_winding, - TriangleSoupMeshBuilder *mb); + // |number_of_elements| is the number of faces or points this function will + // process. |reverse_winding| if set will change the orientation of the data. + template + Status AddTexCoordToBuilder(const tinygltf::Accessor &accessor, + const std::vector &indices_data, + int att_id, int number_of_elements, + bool reverse_winding, BuilderT *builder); + + // Copies the mesh feature ID attribute data from |accessor| and adds it to a + // Draco mesh. |indices_data| is the indices data from the glTF file. |att_id| + // is the attribute ID of the mesh feature ID attribute in the Draco mesh. + // |number_of_elements| is the number of faces or points this function will + // process. |reverse_winding| if set will change the orientation of the data. + template + Status AddFeatureIdToBuilder(const tinygltf::Accessor &accessor, + const std::vector &indices_data, + int att_id, int number_of_elements, + bool reverse_winding, + const std::string &attribute_name, + BuilderT *builder); // Copies the attribute data from |accessor| and adds it to a Draco mesh. // This function will transform all of the data by |transform_matrix| before // adding the data to the Draco mesh. |indices_data| is the indices data // from the glTF file. |att_id| is the attribute id of the attribute in the - // Draco mesh. |number_of_faces| This is the number of faces this function - // will process. |normalize| if set will normalize all of the vector data - // after transformation. |reverse_winding| if set will change the orientation - // of the data. - Status AddTransformedDataToMeshBuilder( - const tinygltf::Accessor &accessor, - const std::vector &indices_data, int att_id, - int number_of_faces, const Eigen::Matrix4d &transform_matrix, - bool normalize, bool reverse_winding, TriangleSoupMeshBuilder *mb); + // Draco mesh. |number_of_elements| is the number of faces or points this + // function will process. |normalize| if set will normalize all of the vector + // data after transformation. |reverse_winding| if set will change the + // orientation of the data. + template + Status AddTransformedDataToBuilder(const tinygltf::Accessor &accessor, + const std::vector &indices_data, + int att_id, int number_of_elements, + const Eigen::Matrix4d &transform_matrix, + bool normalize, bool reverse_winding, + BuilderT *builder); + + // Sets values in |data| into the builder |builder| for |att_id|. + template + void SetValuesForBuilder(const std::vector &indices_data, + int att_id, int number_of_elements, + const std::vector &data, bool reverse_winding, + TriangleSoupMeshBuilder *builder); + template + void SetValuesForBuilder(const std::vector &indices_data, + int att_id, int number_of_elements, + const std::vector &data, bool reverse_winding, + PointCloudBuilder *builder); // Sets values in |data| into the mesh builder |mb| for |att_id|. // |reverse_winding| if set will change the orientation of the data. @@ -189,26 +229,43 @@ class GltfDecoder { int number_of_faces, const std::vector &data, bool reverse_winding, TriangleSoupMeshBuilder *mb); + // Returns an address pointing to the content stored in |data|. This is used + // when passing values to mesh / point cloud builder when the input type can + // be either a VectorD or an arithmetic type. + template + const void *GetDataContentAddress(const T &data) const; + // Adds the attribute data in |accessor| to |mb| for unique attribute // |att_id|. |indices_data| is the mesh's indices data. |reverse_winding| if // set will change the orientation of the data. + template Status AddAttributeDataByTypes(const tinygltf::Accessor &accessor, const std::vector &indices_data, - int att_id, int number_of_faces, - bool reverse_winding, - TriangleSoupMeshBuilder *mb); + int att_id, int number_of_elements, + bool reverse_winding, BuilderT *builder); // Adds the textures to |owner|. template Status CopyTextures(T *owner); + // Sets extra attribute properties on a constructed draco mesh. + void SetAttributePropertiesOnDracoMesh(Mesh *mesh); + // Adds the materials to |mesh|. Status AddMaterialsToDracoMesh(Mesh *mesh); // Adds the material data for the GeometryAttribute::MATERIAL attribute to the // Draco mesh. + template + Status AddMaterialDataToBuilder(int material_value, int number_of_elements, + BuilderT *builder); template - Status AddMaterialDataToMeshBuilder(T material_value, int number_of_faces); + Status AddMaterialDataToBuilderInternal(T material_value, int number_of_faces, + TriangleSoupMeshBuilder *builder); + template + Status AddMaterialDataToBuilderInternal(T material_value, + int number_of_points, + PointCloudBuilder *builder); // Checks if the glTF file contains a texture. If there is a texture, this // function will read the texture data and add it to the Draco |material|. If @@ -251,17 +308,39 @@ class GltfDecoder { const tinygltf::Value::Object &extension, std::vector *mappings); - // Adds an attribute of type |attribute_name| to |mb|. Returns the - // attribute id. - StatusOr AddAttribute(const std::string &attribute_name, - int component_type, int type, - TriangleSoupMeshBuilder *mb); + // Decodes glTF mesh feature ID sets from all glTF primitives and adds them to + // |mesh|. + Status AddMeshFeaturesToDracoMesh(Mesh *mesh); - // Adds an attribute of |attribute_type| to |mb|. Returns the + // Decodes glTF mesh feature ID sets from glTF primitive in glTF node at + // |node_index| and adds them to |mesh|. + Status AddMeshFeaturesToDracoMesh(int node_index, Mesh *mesh); + + // Decodes glTF structural metadata from glTF model and adds it to |geometry|. + template + Status AddStructuralMetadataToGeometry(GeometryT *geometry); + + // Decodes glTF mesh feature ID sets from |primitive| and adds them to |mesh|. + Status DecodeMeshFeatures(const tinygltf::Primitive &primitive, + TextureLibrary *texture_library, Mesh *mesh); + + // Decodes glTF mesh feature ID sets from |extension| and adds them to the + // |mesh_features| vector. + Status DecodeMeshFeatures( + const tinygltf::Value::Object &extension, TextureLibrary *texture_library, + std::vector> *mesh_features); + + // Adds an attribute of type |attribute_name| to |builder|. Returns the // attribute id. + template + StatusOr AddAttribute(const std::string &attribute_name, + int component_type, int type, BuilderT *builder); + + // Adds an attribute of |attribute_type| to |builder|. Returns the attribute + // id. + template StatusOr AddAttribute(GeometryAttribute::Type attribute_type, - int component_type, int type, - TriangleSoupMeshBuilder *mb); + int component_type, int type, BuilderT *builder); // Returns true if the KHR_texture_transform extension is set in |extension|. // If the KHR_texture_transform extension is set then the values are returned @@ -307,6 +386,24 @@ class GltfDecoder { const tinygltf::Value::Object &object, float *value); + // Decodes an integer value with |name| from |object| to |value| and returns + // true if a well-formed value with such |name| is present. + static StatusOr DecodeInt(const std::string &name, + const tinygltf::Value::Object &object, + int *value); + + // Decodes a string value with |name| from |object| to |value| and returns + // true if a well-formed value with such |name| is present. + static StatusOr DecodeString(const std::string &name, + const tinygltf::Value::Object &object, + std::string *value); + + // Decodes data and data target from buffer view index with |name| in |object| + // to |data| and returns true if a well-formed data is present. + StatusOr DecodePropertyTableData(const std::string &name, + const tinygltf::Value::Object &object, + PropertyTable::Property::Data *data); + // Decodes a 3D vector with |name| from |object| to |value| and returns true // if a well-formed vector with such |name| is present. static StatusOr DecodeVector3f(const std::string &name, @@ -332,6 +429,23 @@ class GltfDecoder { // Adds the skins to the scene. Status AddSkinsToScene(); + // All material and non-material textures (e.g., from EXT_mesh_features) are + // initially loaded into a texture library inside the the material library. + // These methods move |non_material_textures| from material texture library + // |material_tl| to non-material texture library |non_material_tl|. + static void MoveNonMaterialTextures(Mesh *mesh); + static void MoveNonMaterialTextures(Scene *scene); + static void MoveNonMaterialTextures( + const std::unordered_set &non_material_textures, + TextureLibrary *material_tl, TextureLibrary *non_material_tl); + + // Builds and returns a mesh constructed from either mesh builder |mb| or + // point cloud builder |pb|. Mesh builder is used if |use_mesh_builder| is set + // to true. + static StatusOr> BuildMeshFromBuilder( + bool use_mesh_builder, TriangleSoupMeshBuilder *mb, + PointCloudBuilder *pb); + // Map of glTF Mesh to Draco scene mesh group. std::map gltf_mesh_to_scene_mesh_group_; @@ -343,25 +457,34 @@ class GltfDecoder { // Class used to build the Draco mesh. TriangleSoupMeshBuilder mb_; + PointCloudBuilder pb_; // Next face index used when adding attribute data to the Draco mesh. int next_face_id_; + // Next point index used when adding attribute data to the point cloud. + int next_point_id_; + // Total number of indices from all the meshes and primitives. - int total_indices_count_; + int total_face_indices_count_; + int total_point_indices_count_; // This is the id of the GeometryAttribute::MATERIAL attribute added to the // Draco mesh. int material_att_id_; - // Map of glTF attribute name to attribute element counts. - std::map total_attribute_counts_; + // Data used when decoding the entire glTF asset into a single draco::Mesh. + // The struct tracks the total number of elements across all matching + // attributes and it ensures all matching attributes are compatible. + struct MeshAttributeData { + int component_type = 0; + int attribute_type = 0; + bool normalized = false; + int total_attribute_counts = 0; + }; // Map of glTF attribute name to attribute component type. - std::map attribute_component_type_; - - // Map of glTF attribute name to attribute type. - std::map attribute_type_; + std::map mesh_attribute_data_; // Map of glTF attribute name to Draco mesh attribute id. std::map attribute_name_to_draco_mesh_attribute_id_; diff --git a/src/draco/io/gltf_decoder_test.cc b/src/draco/io/gltf_decoder_test.cc index 1d752ab..3829c61 100644 --- a/src/draco/io/gltf_decoder_test.cc +++ b/src/draco/io/gltf_decoder_test.cc @@ -29,6 +29,7 @@ #include "draco/core/draco_test_base.h" #include "draco/core/draco_test_utils.h" #include "draco/core/draco_types.h" +#include "draco/io/gltf_test_helper.h" #include "draco/mesh/mesh_are_equivalent.h" #include "draco/mesh/mesh_utils.h" #include "draco/scene/scene_indices.h" @@ -302,6 +303,24 @@ TEST(GltfDecoderTest, ColorAttributeGltf) { EXPECT_EQ(mesh->num_faces(), 224) << "Unexpected number of faces."; ASSERT_EQ(mesh->GetMaterialLibrary().NumMaterials(), 1); ASSERT_EQ(mesh->GetMaterialLibrary().GetMaterial(0)->NumTextureMaps(), 0); + ASSERT_NE(mesh->GetNamedAttribute(GeometryAttribute::COLOR), nullptr); + ASSERT_EQ(mesh->GetNamedAttribute(GeometryAttribute::COLOR)->data_type(), + draco::DT_UINT8); + // Ensure the normalized property for the color attribute is set properly. + ASSERT_TRUE(mesh->GetNamedAttribute(GeometryAttribute::COLOR)->normalized()); +} + +// Tests COLOR_0 input attribute when the asset is loaded into a scene. +TEST(GltfDecoderTest, ColorAttributeGltfScene) { + const std::string file_name = "test_pos_color.gltf"; + const std::unique_ptr scene(DecodeGltfFileToScene(file_name)); + ASSERT_EQ(scene->NumMeshes(), 1); + const Mesh &mesh = scene->GetMesh(MeshIndex(0)); + ASSERT_NE(mesh.GetNamedAttribute(GeometryAttribute::COLOR), nullptr); + ASSERT_EQ(mesh.GetNamedAttribute(GeometryAttribute::COLOR)->data_type(), + draco::DT_UINT8); + // Ensure the normalized property for the color attribute is set properly. + ASSERT_TRUE(mesh.GetNamedAttribute(GeometryAttribute::COLOR)->normalized()); } // Tests a mesh with two sets of texture coordinates. @@ -1233,5 +1252,150 @@ TEST(GltfDecoderTest, MaterialsVariants) { ASSERT_EQ(dragon_mappings[1].variants[0], 1); } +TEST(GltfDecoderTest, DecodeMeshWithMeshFeaturesWithStructuralMetadata) { + // Checks decoding of a simple glTF with mesh features and structural metadata + // property table as draco::Mesh. + constexpr bool kDracoCompressionEnabled = false; + const auto path = GetTestFileFullPath("BoxMeta/glTF/BoxMeta.gltf"); + draco::GltfDecoder decoder; + DRACO_ASSIGN_OR_ASSERT(auto mesh, decoder.DecodeFromFile(path)); + ASSERT_NE(mesh, nullptr); + GltfTestHelper::CheckBoxMetaMeshFeatures(*mesh, kDracoCompressionEnabled); + GltfTestHelper::CheckBoxMetaStructuralMetadata(*mesh); +} + +TEST(GltfDecoderTest, DecodeMeshWithMeshFeaturesWithDracoCompression) { + // Checks decoding of a simple glTF with mesh features compressed with Draco + // as draco::Mesh. + constexpr bool kDracoCompressionEnabled = true; + const auto path = GetTestFileFullPath("BoxMetaDraco/glTF/BoxMetaDraco.gltf"); + draco::GltfDecoder decoder; + DRACO_ASSIGN_OR_ASSERT(auto mesh, decoder.DecodeFromFile(path)); + ASSERT_NE(mesh, nullptr); + GltfTestHelper::CheckBoxMetaMeshFeatures(*mesh, kDracoCompressionEnabled); +} + +TEST(GltfDecoderTest, DecodeSceneWithMeshFeaturesWithStructuralMetadata) { + // Checks decoding of a simple glTF with mesh features and structural metadata + // property table as draco::Scene. + constexpr bool kHasDracoCompression = false; + const auto path = GetTestFileFullPath("BoxMeta/glTF/BoxMeta.gltf"); + draco::GltfDecoder decoder; + DRACO_ASSIGN_OR_ASSERT(auto scene, decoder.DecodeFromFileToScene(path)); + ASSERT_NE(scene, nullptr); + GltfTestHelper::CheckBoxMetaMeshFeatures(*scene, kHasDracoCompression); + GltfTestHelper::CheckBoxMetaStructuralMetadata(*scene); +} + +TEST(GltfDecoderTest, DecodeSceneWithMeshFeaturesWithDracoCompression) { + // Checks decoding of a simple glTF with mesh features compressed with Draco + // as draco::Scene. + constexpr bool kHasDracoCompression = true; + const auto path = GetTestFileFullPath("BoxMetaDraco/glTF/BoxMetaDraco.gltf"); + draco::GltfDecoder decoder; + DRACO_ASSIGN_OR_ASSERT(auto scene, decoder.DecodeFromFileToScene(path)); + ASSERT_NE(scene, nullptr); + GltfTestHelper::CheckBoxMetaMeshFeatures(*scene, kHasDracoCompression); +} + +TEST(GltfDecoderTest, DecodePointCloudToMesh) { + // Checks decoding of a simple glTF with point primitives (no meshes). + const auto path = GetTestFileFullPath( + "SphereTwoMaterials/sphere_two_materials_point_cloud.gltf"); + draco::GltfDecoder decoder; + DRACO_ASSIGN_OR_ASSERT(auto mesh, decoder.DecodeFromFile(path)); + ASSERT_NE(mesh, nullptr); + + // Check the point cloud has expected number of points and attributes. + ASSERT_EQ(mesh->num_faces(), 0); + ASSERT_EQ(mesh->num_points(), 462); + + ASSERT_EQ(mesh->NumNamedAttributes(draco::GeometryAttribute::NORMAL), 1); + ASSERT_EQ(mesh->NumNamedAttributes(draco::GeometryAttribute::TEX_COORD), 1); + ASSERT_EQ(mesh->NumNamedAttributes(draco::GeometryAttribute::TANGENT), 1); + ASSERT_EQ(mesh->NumNamedAttributes(draco::GeometryAttribute::MATERIAL), 1); + + // Check the point cloud has two materials. + ASSERT_EQ(mesh->GetNamedAttribute(draco::GeometryAttribute::MATERIAL)->size(), + 2); +} + +TEST(GltfDecoderTest, DecodeMeshAndPointCloudToMesh) { + // Checks decoding of a simple glTF with a mesh and point primitives into + // draco::Mesh. This should fail (draco::Mesh can't support mixed primitives). + const auto path = GetTestFileFullPath( + "SphereTwoMaterials/sphere_two_materials_mesh_and_point_cloud.gltf"); + draco::GltfDecoder decoder; + ASSERT_FALSE(decoder.DecodeFromFile(path).ok()); +} + +TEST(GltfDecoderTest, DecodePointCloudToScene) { + // Checks decoding of a simple glTF with point primitives (no meshes) into + // draco::Scene. + const auto path = GetTestFileFullPath( + "SphereTwoMaterials/sphere_two_materials_point_cloud.gltf"); + draco::GltfDecoder decoder; + DRACO_ASSIGN_OR_ASSERT(auto scene, decoder.DecodeFromFileToScene(path)); + ASSERT_NE(scene, nullptr); + + ASSERT_EQ(scene->NumMeshes(), 2); + + // Check that each point cloud has expected number of points and attributes. + for (draco::MeshIndex mi(0); mi < scene->NumMeshes(); ++mi) { + const auto &mesh = scene->GetMesh(mi); + ASSERT_EQ(mesh.num_faces(), 0); + ASSERT_EQ(mesh.num_points(), 231); + + ASSERT_EQ(mesh.NumNamedAttributes(draco::GeometryAttribute::NORMAL), 1); + ASSERT_EQ(mesh.NumNamedAttributes(draco::GeometryAttribute::TEX_COORD), 1); + ASSERT_EQ(mesh.NumNamedAttributes(draco::GeometryAttribute::TANGENT), 1); + ASSERT_EQ(mesh.NumNamedAttributes(draco::GeometryAttribute::MATERIAL), 0); + } + + // Check the materials are properly assigned to each point cloud. + const auto instances = draco::SceneUtils::ComputeAllInstances(*scene); + ASSERT_EQ(instances.size(), 2); + ASSERT_EQ(draco::SceneUtils::GetMeshInstanceMaterialIndex( + *scene, instances[draco::MeshInstanceIndex(0)]), + 0); + ASSERT_EQ(draco::SceneUtils::GetMeshInstanceMaterialIndex( + *scene, instances[draco::MeshInstanceIndex(1)]), + 1); +} + +TEST(GltfDecoderTest, DecodeMeshAndPointCloudToScene) { + // Checks decoding of a simple glTF with a mesh and point primitives into + // draco::Scene. + const auto path = GetTestFileFullPath( + "SphereTwoMaterials/sphere_two_materials_mesh_and_point_cloud.gltf"); + draco::GltfDecoder decoder; + DRACO_ASSIGN_OR_ASSERT(auto scene, decoder.DecodeFromFileToScene(path)); + ASSERT_NE(scene, nullptr); + + ASSERT_EQ(scene->NumMeshes(), 2); + + // First mesh should be a real mesh while the other one should be a point + // cloud (no faces). Otherwise, they should have the same properties. + for (draco::MeshIndex mi(0); mi < scene->NumMeshes(); ++mi) { + const auto &mesh = scene->GetMesh(mi); + ASSERT_EQ(mesh.num_faces(), mi.value() == 0 ? 224 : 0); + ASSERT_EQ(mesh.num_points(), 231); + + ASSERT_EQ(mesh.NumNamedAttributes(draco::GeometryAttribute::NORMAL), 1); + ASSERT_EQ(mesh.NumNamedAttributes(draco::GeometryAttribute::TEX_COORD), 1); + ASSERT_EQ(mesh.NumNamedAttributes(draco::GeometryAttribute::TANGENT), 1); + } +} + +TEST(GltfDecoderTest, TestLoadUnsupportedTexCoordAttributes) { + // Checks that unsupported attributes (TEXCOORD_2 ... TEXCOORD_7) are ignored + // without causing the decoder to fail. + auto scene = draco::ReadSceneFromTestFile("UnusedTexCoords/TexCoord2.gltf"); + ASSERT_NE(scene, nullptr); + ASSERT_EQ(scene->GetMesh(draco::MeshIndex(0)) + .NumNamedAttributes(draco::GeometryAttribute::TEX_COORD), + 2); +} + } // namespace draco #endif // DRACO_TRANSCODER_SUPPORTED diff --git a/src/draco/io/gltf_encoder.cc b/src/draco/io/gltf_encoder.cc index 33bb156..feab95a 100644 --- a/src/draco/io/gltf_encoder.cc +++ b/src/draco/io/gltf_encoder.cc @@ -22,6 +22,8 @@ #include #include #include +#include +#include #include #include "draco/attributes/geometry_attribute.h" @@ -33,6 +35,7 @@ #include "draco/io/file_utils.h" #include "draco/io/gltf_utils.h" #include "draco/io/texture_io.h" +#include "draco/mesh/mesh_features.h" #include "draco/mesh/mesh_splitter.h" #include "draco/mesh/mesh_utils.h" #include "draco/scene/instance_array.h" @@ -79,6 +82,24 @@ int TextureAxisWrappingModeToGltfValue(TextureMap::AxisWrappingMode mode) { } } +// Checks |att| metadata entry in |mesh| with key "attribute_name" and returns +// entry value if it begins with "_FEATURE_ID_", or an empty string otherwise. +std::string GetFeatureIdAttributeName(const PointAttribute &att, + const Mesh &mesh) { + const auto *const metadata = + mesh.GetAttributeMetadataByAttributeId(att.unique_id()); + if (metadata) { + std::string attribute_name; + if (metadata->GetEntryString("attribute_name", &attribute_name)) { + constexpr char kPrefix[] = "_FEATURE_ID_"; + if (attribute_name.rfind(kPrefix) == 0) { + return attribute_name; + } + } + } + return std::string(); +} + // Struct to hold glTF Scene data. struct GltfScene { std::vector node_indices; @@ -173,6 +194,7 @@ struct GltfAccessor { struct GltfBufferView { int64_t buffer_byte_offset = -1; int64_t byte_length = 0; + int target = 0; }; // Struct to hold information about a Draco compressed mesh. @@ -189,6 +211,7 @@ struct GltfPrimitive { int mode; int material; std::vector material_variants_mappings; + std::vector mesh_features; std::map attributes; GltfDracoCompressedMesh compressed_mesh_info; }; @@ -242,8 +265,10 @@ class GltfAsset { const std::string &image_name(int i) const { return images_[i].image_name; } void set_add_images_to_buffer(bool flag) { add_images_to_buffer_ = flag; } + bool add_images_to_buffer() const { return add_images_to_buffer_; } void set_output_type(GltfEncoder::OutputType type) { output_type_ = type; } GltfEncoder::OutputType output_type() const { return output_type_; } + void set_json_output_mode(JsonWriter::Mode mode) { gltf_json_.SetMode(mode); } private: // Pad |buffer_| to 4 byte boundary. @@ -341,13 +366,14 @@ class GltfAsset { // contained in the encoded MaterialLibrary (e.g. for images that are locally // modified before they are encoded to disk). The image file name is generated // by combining |image_stem| and image mime type contained in the |texture|. - StatusOr AddImage( - const std::string &image_stem, const Texture *texture, int num_components, - std::unordered_map *texture_to_image_index_map); - StatusOr AddImage( - const std::string &image_stem, const Texture *texture, - std::unique_ptr owned_texture, int num_components, - std::unordered_map *texture_to_image_index_map); + StatusOr AddImage(const std::string &image_stem, const Texture *texture, + int num_components); + StatusOr AddImage(const std::string &image_stem, const Texture *texture, + std::unique_ptr owned_texture, + int num_components); + + // Saves an image with a given |image_index| into a buffer. + Status SaveImageToBuffer(int image_index); // Adds |sampler| to vector of samplers and returns the index. If |sampler| is // equal to default values then |sampler| is not added to the vector and @@ -392,17 +418,24 @@ class GltfAsset { // contain any mesh group instance arrays. Status AddInstanceArrays(const Scene &scene); + // Adds structural metadata from |geometry| to the asset, if any. + template + void AddStructuralMetadata(const GeometryT &geometry); + // Adds float |data| representing |num_components|-length vectors to the // encoder as accessor and return the new accessor index. StatusOr AddData(const std::vector &data, int num_components); + // Adds property table |data| as buffer view and returns buffer view index. + StatusOr AddBufferView(const PropertyTable::Property::Data &data); + bool EncodeAssetProperty(EncoderBuffer *buf_out); bool EncodeScenesProperty(EncoderBuffer *buf_out); bool EncodeInitialSceneProperty(EncoderBuffer *buf_out); bool EncodeNodesProperty(EncoderBuffer *buf_out); - bool EncodeMeshesProperty(EncoderBuffer *buf_out); - void EncodePrimitiveExtensionsProperty(const GltfPrimitive &primitive, - EncoderBuffer *buf_out); + Status EncodeMeshesProperty(EncoderBuffer *buf_out); + Status EncodePrimitiveExtensionsProperty(const GltfPrimitive &primitive, + EncoderBuffer *buf_out); Status EncodeMaterials(EncoderBuffer *buf_out); // Encodes a color material. |red|, |green|, |blue|, |alpha|, and @@ -418,42 +451,44 @@ class GltfAsset { Status EncodeTextureMap(const std::string &object_name, int image_index, int tex_coord_index, const Material &material, const TextureMap &texture_map); + + // Encodes a texture map similar to the method above. When the |object_name| + // is "texture" and |channels| is not empty, then the |channels| is encoded + // into the "channels" property as required by the "texture" object of the + // EXT_mesh_features extension. + Status EncodeTextureMap(const std::string &object_name, int image_index, + int tex_coord_index, const Material &material, + const TextureMap &texture_map, + const std::vector &channels); Status EncodeMaterialsProperty(EncoderBuffer *buf_out); - // TODO(vytyaz): Use this type in other places. - typedef std::unordered_map TextureToImageIndexMapType; void EncodeMaterialUnlitExtension(const Material &material); Status EncodeMaterialSheenExtension(const Material &material, const Material &defaults, - int material_index, - TextureToImageIndexMapType *map); + int material_index); Status EncodeMaterialTransmissionExtension(const Material &material, const Material &defaults, - int material_index, - TextureToImageIndexMapType *map); + int material_index); Status EncodeMaterialClearcoatExtension(const Material &material, const Material &defaults, - int material_index, - TextureToImageIndexMapType *map); + int material_index); Status EncodeMaterialVolumeExtension(const Material &material, const Material &defaults, - int material_index, - TextureToImageIndexMapType *map); + int material_index); Status EncodeMaterialIorExtension(const Material &material, const Material &defaults); Status EncodeMaterialSpecularExtension(const Material &material, const Material &defaults, - int material_index, - TextureToImageIndexMapType *map); + int material_index); Status EncodeTexture(const std::string &name, const std::string &stem_suffix, TextureMap::Type type, int num_components, - const Material &material, int material_index, - TextureToImageIndexMapType *map); + const Material &material, int material_index); Status EncodeAnimationsProperty(EncoderBuffer *buf_out); Status EncodeSkinsProperty(EncoderBuffer *buf_out); Status EncodeTopLevelExtensionsProperty(EncoderBuffer *buf_out); Status EncodeLightsProperty(EncoderBuffer *buf_out); Status EncodeMaterialsVariantsNamesProperty(EncoderBuffer *buf_out); + Status EncodeStructuralMetadataProperty(EncoderBuffer *buf_out); bool EncodeAccessorsProperty(EncoderBuffer *buf_out); bool EncodeBufferViewsProperty(EncoderBuffer *buf_out); bool EncodeBuffersProperty(EncoderBuffer *buf_out); @@ -526,6 +561,8 @@ class GltfAsset { std::vector images_; std::vector textures_; + std::unordered_map texture_to_image_index_map_; + std::string buffer_name_; EncoderBuffer buffer_; JsonWriter gltf_json_; @@ -560,10 +597,18 @@ class GltfAsset { std::vector> lights_; std::vector materials_variants_names_; std::vector instance_arrays_; + PropertyTable::Schema property_table_schema_; + std::vector property_tables_; // Indicates whether Draco compression is used for any of the asset meshes. bool draco_compression_used_; + // Indicates whether mesh features are used. + bool mesh_features_used_; + + // Counter for naming mesh feature textures. + int mesh_features_texture_index_; + // If set GltfAsset will add the images to |buffer_| instead of writing the // images to separate files. bool add_images_to_buffer_; @@ -575,6 +620,11 @@ class GltfAsset { std::vector texture_samplers_; GltfEncoder::OutputType output_type_; + + // Temporary storage for meshes created during the runtime of the GltfEncoder. + // We need to store them here to ensure their content doesn't get deleted + // before it is used by the encoder. + std::vector> local_meshes_; }; int GltfAsset::UnsignedIntComponentSize(unsigned int max_value) { @@ -606,6 +656,8 @@ GltfAsset::GltfAsset() scene_index_(-1), buffer_name_("buffer0.bin"), draco_compression_used_(false), + mesh_features_used_(false), + mesh_features_texture_index_(0), add_images_to_buffer_(false), output_type_(GltfEncoder::COMPACT) {} @@ -621,6 +673,8 @@ bool GltfAsset::AddDracoMesh(const Mesh &mesh) { GltfMesh gltf_mesh; meshes_.push_back(gltf_mesh); + AddStructuralMetadata(mesh); + const int32_t material_att_id = mesh.GetNamedAttributeId(GeometryAttribute::MATERIAL); if (material_att_id == -1) { @@ -636,7 +690,7 @@ bool GltfAsset::AddDracoMesh(const Mesh &mesh) { if (!split_maybe.ok()) { return false; } - const auto split_meshes = std::move(split_maybe).value(); + auto split_meshes = std::move(split_maybe).value(); for (int i = 0; i < split_meshes.size(); ++i) { if (split_meshes[i] == nullptr) { continue; // Empty mesh. Ignore. @@ -644,9 +698,18 @@ bool GltfAsset::AddDracoMesh(const Mesh &mesh) { uint32_t mat_index = 0; mat_att->GetValue(AttributeValueIndex(i), &mat_index); + // Copy over mesh features for a given material index. + Mesh::CopyMeshFeaturesForMaterial(mesh, split_meshes[i].get(), mat_index); + + // Move the split mesh to a temporary storage of the GltfAsset. This will + // ensure the mesh will stay alive as long the asset needs it. We have to + // do this because the split mesh may contain mesh features data that are + // used later in the encoding process. + local_meshes_.push_back(std::move(split_meshes[i])); + // The material index in the glTF file corresponds to the index of the // split mesh. - if (!AddDracoMesh(*(split_meshes[i].get()), mat_index, {})) { + if (!AddDracoMesh(*(local_meshes_.back().get()), mat_index, {})) { return false; } } @@ -685,9 +748,7 @@ Status GltfAsset::Output(EncoderBuffer *buf_out) { if (!EncodeNodesProperty(buf_out)) { return Status(Status::DRACO_ERROR, "Failed encoding nodes."); } - if (!EncodeMeshesProperty(buf_out)) { - return Status(Status::DRACO_ERROR, "Failed encoding meshes."); - } + DRACO_RETURN_IF_ERROR(EncodeMeshesProperty(buf_out)); DRACO_RETURN_IF_ERROR(EncodeMaterials(buf_out)); if (!EncodeAccessorsProperty(buf_out)) { return Status(Status::DRACO_ERROR, "Failed encoding accessors."); @@ -783,31 +844,47 @@ Status GltfAsset::CompressMeshWithDraco(const Mesh &mesh, // Configure attribute quantization. for (int i = 0; i < mesh_copy->num_attributes(); ++i) { const PointAttribute *const att = mesh_copy->attribute(i); - int num_quantization_bits = -1; - switch (att->attribute_type()) { - case GeometryAttribute::POSITION: - num_quantization_bits = compression_options.quantization_bits_position; - break; - case GeometryAttribute::NORMAL: - num_quantization_bits = compression_options.quantization_bits_normal; - break; - case GeometryAttribute::TEX_COORD: - num_quantization_bits = compression_options.quantization_bits_tex_coord; - break; - case GeometryAttribute::TANGENT: - num_quantization_bits = compression_options.quantization_bits_tangent; - break; - case GeometryAttribute::WEIGHTS: - num_quantization_bits = compression_options.quantization_bits_weight; - break; - case GeometryAttribute::GENERIC: - num_quantization_bits = compression_options.quantization_bits_generic; - break; - default: - break; - } - if (num_quantization_bits > 0) { - encoder.SetAttributeQuantization(i, num_quantization_bits); + if (att->attribute_type() == GeometryAttribute::POSITION && + !compression_options.quantization_position + .AreQuantizationBitsDefined()) { + // TODO(ostava): Handle grid option. This will be implemented in a + // separate CL. + return ErrorStatus("Grid quantization not implemented yet."); + } else { + int num_quantization_bits = -1; + switch (att->attribute_type()) { + case GeometryAttribute::POSITION: + num_quantization_bits = + compression_options.quantization_position.quantization_bits(); + break; + case GeometryAttribute::NORMAL: + num_quantization_bits = compression_options.quantization_bits_normal; + break; + case GeometryAttribute::TEX_COORD: + num_quantization_bits = + compression_options.quantization_bits_tex_coord; + break; + case GeometryAttribute::TANGENT: + num_quantization_bits = compression_options.quantization_bits_tangent; + break; + case GeometryAttribute::WEIGHTS: + num_quantization_bits = compression_options.quantization_bits_weight; + break; + case GeometryAttribute::GENERIC: + if (GetFeatureIdAttributeName(*att, *mesh_copy).empty()) { + num_quantization_bits = + compression_options.quantization_bits_generic; + } else { + // Quantization is explicitly disabled for feature ID attributes. + encoder.SetAttributeQuantization(i, -1); + } + break; + default: + break; + } + if (num_quantization_bits > 0) { + encoder.SetAttributeQuantization(i, num_quantization_bits); + } } } @@ -949,6 +1026,10 @@ bool GltfAsset::AddDracoMesh( } primitive.material = material_id; primitive.material_variants_mappings = material_variants_mappings; + primitive.mesh_features.reserve(mesh.NumMeshFeatures()); + for (MeshFeaturesIndex i(0); i < mesh.NumMeshFeatures(); ++i) { + primitive.mesh_features.push_back(&mesh.GetMeshFeatures(i)); + } primitive.indices = indices_index; primitive.attributes.insert( std::pair("POSITION", position_index)); @@ -996,12 +1077,14 @@ bool GltfAsset::AddDracoMesh( AddAttributeToDracoExtension(mesh, GeometryAttribute::WEIGHTS, 0, "WEIGHTS_0", &primitive.compressed_mesh_info); } - for (const std::pair &generics_accessor : - generics_accessors) { - primitive.attributes.insert(generics_accessor); - AddAttributeToDracoExtension(mesh, GeometryAttribute::GENERIC, 0, - generics_accessor.first, - &primitive.compressed_mesh_info); + for (int att_index = 0; att_index < generics_accessors.size(); ++att_index) { + const std::string &attribute_name = generics_accessors[att_index].first; + if (!attribute_name.empty()) { + primitive.attributes.insert(generics_accessors[att_index]); + AddAttributeToDracoExtension(mesh, GeometryAttribute::GENERIC, att_index, + attribute_name, + &primitive.compressed_mesh_info); + } } meshes_.back().primitives.push_back(primitive); @@ -1193,14 +1276,17 @@ int GltfAsset::AddDracoWeights(const Mesh &mesh, int num_encoded_points) { } // Adds generic attributes that have metadata describing the attribute name. -// This allows for export of application-specific attributes. -// Returns a vector of attribute-name, accessor pairs for each valid attribute. +// This allows for export of application-specific attributes and feature ID +// attributes defined in glTF extension EXT_mesh_features. Returns a vector of +// attribute-name, accessor pairs for each valid attribute. The length of the +// vector is equal to the number of generic attributes. Vector entries +// corresponding to unsupported attributes (e.g., with no metadata) contain +// empty attribute names. std::vector> GltfAsset::AddDracoGenerics( const Mesh &mesh, int num_encoded_points) { const int num_attributes = mesh.NumNamedAttributes(GeometryAttribute::GENERIC); - std::vector> attrs; - attrs.reserve(num_attributes); + std::vector> attrs(num_attributes); for (int i = 0; i < num_attributes; ++i) { const PointAttribute *const att = mesh.GetNamedAttribute(GeometryAttribute::GENERIC, i); @@ -1214,7 +1300,35 @@ std::vector> GltfAsset::AddDracoGenerics( int accessor = AddAttribute(*att, mesh.num_points(), num_encoded_points, mesh.IsCompressionEnabled()); - attrs.emplace_back(attr_name, accessor); + attrs[i] = {attr_name, accessor}; + } + } else { + // Try to find feature ID attribute name like "_FEATURE_ID_5" then check + // that the attribute stores scalar values of complient data types as + // defined by the EXT_mesh_features glTF extension. + attr_name = GetFeatureIdAttributeName(*att, mesh); + if (!attr_name.empty() && att->num_components() == 1) { + int accessor = -1; + switch (att->data_type()) { + case DT_UINT8: + accessor = AddAttribute(*att, mesh.num_points(), + num_encoded_points, + mesh.IsCompressionEnabled()); + break; + case DT_UINT16: + accessor = AddAttribute(*att, mesh.num_points(), + num_encoded_points, + mesh.IsCompressionEnabled()); + break; + case DT_FLOAT32: + accessor = AddAttribute(*att, mesh.num_points(), + num_encoded_points, + mesh.IsCompressionEnabled()); + break; + default: + continue; + } + attrs[i] = {attr_name, accessor}; } } } @@ -1252,19 +1366,23 @@ bool GltfAsset::CheckDracoAttribute(const PointAttribute *attribute, return true; } -StatusOr GltfAsset::AddImage( - const std::string &image_stem, const Texture *texture, int num_components, - std::unordered_map *texture_to_image_index_map) { - return AddImage(image_stem, texture, nullptr, num_components, - texture_to_image_index_map); +StatusOr GltfAsset::AddImage(const std::string &image_stem, + const Texture *texture, int num_components) { + return AddImage(image_stem, texture, nullptr, num_components); } -StatusOr GltfAsset::AddImage( - const std::string &image_stem, const Texture *texture, - std::unique_ptr owned_texture, int num_components, - std::unordered_map *texture_to_image_index_map) { - const auto it = texture_to_image_index_map->find(texture); - if (it != texture_to_image_index_map->end()) { +StatusOr GltfAsset::AddImage(const std::string &image_stem, + const Texture *texture, + std::unique_ptr owned_texture, + int num_components) { + const auto it = texture_to_image_index_map_.find(texture); + if (it != texture_to_image_index_map_.end()) { + // We already have an image for the given |texture|. Update its number of + // components if needed. + GltfImage &image = images_[it->second]; + if (image.num_components < num_components) { + image.num_components = num_components; + } return it->second; } const std::string extension = TextureUtils::GetTargetExtension(*texture); @@ -1274,26 +1392,6 @@ StatusOr GltfAsset::AddImage( image.owned_texture = std::move(owned_texture); image.num_components = num_components; - if (add_images_to_buffer_) { - std::vector buffer; - DRACO_RETURN_IF_ERROR(WriteTextureToBuffer(*texture, &buffer)); - - // Add the image data to the buffer. - const size_t buffer_start_offset = buffer_.size(); - buffer_.Encode(buffer.data(), buffer.size()); - if (!PadBuffer()) { - return Status(Status::DRACO_ERROR, "Could not pad buffer in AddImage."); - } - - // Add a buffer view pointing to the image data in the buffer. - GltfBufferView buffer_view; - buffer_view.buffer_byte_offset = buffer_start_offset; - buffer_view.byte_length = buffer_.size() - buffer_start_offset; - buffer_views_.push_back(buffer_view); - - image.buffer_view = buffer_views_.size() - 1; - } - // Always maintain the mime_type. Used elsewhere to determine image type. if (extension == "jpg") { image.mime_type = "image/jpeg"; @@ -1314,10 +1412,36 @@ StatusOr GltfAsset::AddImage( } images_.push_back(std::move(image)); - (*texture_to_image_index_map)[texture] = images_.size() - 1; + texture_to_image_index_map_[texture] = images_.size() - 1; return images_.size() - 1; } +Status GltfAsset::SaveImageToBuffer(int image_index) { + GltfImage &image = images_[image_index]; + const Texture *const texture = image.texture; + const int num_components = image.num_components; + std::vector buffer; + DRACO_RETURN_IF_ERROR(WriteTextureToBuffer(*texture, &buffer)); + + // Add the image data to the buffer. + const size_t buffer_start_offset = buffer_.size(); + buffer_.Encode(buffer.data(), buffer.size()); + if (!PadBuffer()) { + return Status(Status::DRACO_ERROR, + "Could not pad buffer in SaveImageToBuffer."); + } + + // Add a buffer view pointing to the image data in the buffer. + GltfBufferView buffer_view; + buffer_view.buffer_byte_offset = buffer_start_offset; + buffer_view.byte_length = buffer_.size() - buffer_start_offset; + buffer_views_.push_back(buffer_view); + + image.buffer_view = buffer_views_.size() - 1; + return OkStatus(); +} + +// TODO(vytyaz): The return type could be int. StatusOr GltfAsset::AddTextureSampler(const TextureSampler &sampler) { // If sampler is equal to defaults do not add to vector and return -1. if (sampler.min_filter == TextureMap::UNSPECIFIED && @@ -1358,6 +1482,7 @@ Status GltfAsset::AddScene(const Scene &scene) { DRACO_RETURN_IF_ERROR(AddLights(scene)); DRACO_RETURN_IF_ERROR(AddMaterialsVariantsNames(scene)); DRACO_RETURN_IF_ERROR(AddInstanceArrays(scene)); + AddStructuralMetadata(scene); return OkStatus(); } @@ -1413,6 +1538,12 @@ Status GltfAsset::AddSceneNode(const Scene &scene, primitive.material = instance.material_index; primitive.material_variants_mappings = instance.materials_variants_mappings; + const Mesh &mesh = scene.GetMesh(instance.mesh_index); + primitive.mesh_features.clear(); + primitive.mesh_features.reserve(mesh.NumMeshFeatures()); + for (MeshFeaturesIndex j(0); j < mesh.NumMeshFeatures(); ++j) { + primitive.mesh_features.push_back(&mesh.GetMeshFeatures(j)); + } meshes_.back().primitives.push_back(primitive); } } @@ -1706,6 +1837,18 @@ Status GltfAsset::AddInstanceArrays(const Scene &scene) { return OkStatus(); } +template +void GltfAsset::AddStructuralMetadata(const GeometryT &geometry) { + const StructuralMetadata &structural_metadata = + geometry.GetStructuralMetadata(); + if (!structural_metadata.GetPropertyTableSchema().Empty()) { + property_table_schema_ = structural_metadata.GetPropertyTableSchema(); + for (int i = 0; i < structural_metadata.NumPropertyTables(); ++i) { + property_tables_.push_back(&structural_metadata.GetPropertyTable(i)); + } + } +} + StatusOr GltfAsset::AddData(const std::vector &data, int num_components) { std::string type; @@ -1765,6 +1908,21 @@ StatusOr GltfAsset::AddData(const std::vector &data, return static_cast(accessors_.size() - 1); } +StatusOr GltfAsset::AddBufferView( + const PropertyTable::Property::Data &data) { + const size_t buffer_start_offset = buffer_.size(); + buffer_.Encode(data.data.data(), data.data.size()); + if (!PadBuffer()) { + return ErrorStatus("AddBufferView: PadBuffer returned DRACO_ERROR."); + } + GltfBufferView buffer_view; + buffer_view.buffer_byte_offset = buffer_start_offset; + buffer_view.byte_length = buffer_.size() - buffer_start_offset; + buffer_view.target = data.target; + buffer_views_.push_back(buffer_view); + return static_cast(buffer_views_.size() - 1); +} + bool GltfAsset::EncodeAssetProperty(EncoderBuffer *buf_out) { gltf_json_.BeginObject("asset"); gltf_json_.OutputValue("version", version_); @@ -1909,7 +2067,8 @@ bool GltfAsset::EncodeNodesProperty(EncoderBuffer *buf_out) { return buf_out->Encode(asset_str.data(), asset_str.length()); } -bool GltfAsset::EncodeMeshesProperty(EncoderBuffer *buf_out) { +Status GltfAsset::EncodeMeshesProperty(EncoderBuffer *buf_out) { + mesh_features_texture_index_ = 0; gltf_json_.BeginArray("meshes"); for (int i = 0; i < meshes_.size(); ++i) { @@ -1939,7 +2098,8 @@ bool GltfAsset::EncodeMeshesProperty(EncoderBuffer *buf_out) { if (primitive.material >= 0) { gltf_json_.OutputValue("material", primitive.material); } - EncodePrimitiveExtensionsProperty(primitive, buf_out); + DRACO_RETURN_IF_ERROR( + EncodePrimitiveExtensionsProperty(primitive, buf_out)); gltf_json_.EndObject(); } @@ -1952,18 +2112,23 @@ bool GltfAsset::EncodeMeshesProperty(EncoderBuffer *buf_out) { gltf_json_.EndArray(); const std::string asset_str = gltf_json_.MoveData(); - return buf_out->Encode(asset_str.data(), asset_str.length()); + if (!buf_out->Encode(asset_str.data(), asset_str.length())) { + return ErrorStatus("Failed encoding meshes."); + } + return OkStatus(); } -void GltfAsset::EncodePrimitiveExtensionsProperty( +Status GltfAsset::EncodePrimitiveExtensionsProperty( const GltfPrimitive &primitive, EncoderBuffer *buf_out) { // Return if the primitive has no extensions to encode. const bool has_draco_mesh_compression = primitive.compressed_mesh_info.buffer_view_index >= 0; const bool has_materials_variants = !primitive.material_variants_mappings.empty(); - if (!has_draco_mesh_compression && !has_materials_variants) { - return; + const bool has_mesh_features = !primitive.mesh_features.empty(); + if (!has_draco_mesh_compression && !has_materials_variants && + !has_mesh_features) { + return OkStatus(); } // Encode primitive extensions. @@ -1995,7 +2160,53 @@ void GltfAsset::EncodePrimitiveExtensionsProperty( gltf_json_.EndArray(); // mappings array. gltf_json_.EndObject(); // KHR_materials_variants entry. } + if (has_mesh_features) { + gltf_json_.BeginObject("EXT_mesh_features"); + gltf_json_.BeginArray("featureIds"); + for (int i = 0; i < primitive.mesh_features.size(); i++) { + const auto &features = primitive.mesh_features[i]; + gltf_json_.BeginObject(); + if (!features->GetLabel().empty()) { + gltf_json_.OutputValue("label", features->GetLabel()); + } + gltf_json_.OutputValue("featureCount", features->GetFeatureCount()); + if (features->GetAttributeIndex() != -1) { + gltf_json_.OutputValue("attribute", features->GetAttributeIndex()); + } + if (features->GetPropertyTableIndex() != -1) { + gltf_json_.OutputValue("propertyTable", + features->GetPropertyTableIndex()); + } + if (features->GetTextureMap().tex_coord_index() != -1) { + const TextureMap &texture_map = features->GetTextureMap(); + const std::string texture_stem = TextureUtils::GetOrGenerateTargetStem( + *texture_map.texture(), mesh_features_texture_index_++, + "_MeshFeatures"); + + // Save image as RGBA if the A channel is used to store feature ID. + const auto &channels = features->GetTextureChannels(); + const int num_channels = + std::count(channels.begin(), channels.end(), 3) == 1 ? 4 : 3; + DRACO_ASSIGN_OR_RETURN( + const int image_index, + AddImage(texture_stem, texture_map.texture(), num_channels)); + const int tex_coord_index = texture_map.tex_coord_index(); + Material dummy_material; + DRACO_RETURN_IF_ERROR(EncodeTextureMap("texture", image_index, + tex_coord_index, dummy_material, + texture_map, channels)); + } + if (features->GetNullFeatureId() != -1) { + gltf_json_.OutputValue("nullFeatureId", features->GetNullFeatureId()); + } + gltf_json_.EndObject(); + mesh_features_used_ = true; + } + gltf_json_.EndArray(); // featureIds array. + gltf_json_.EndObject(); // EXT_mesh_features entry. + } gltf_json_.EndObject(); // extensions entry. + return OkStatus(); } Status GltfAsset::EncodeMaterials(EncoderBuffer *buf_out) { @@ -2039,6 +2250,15 @@ Status GltfAsset::EncodeTextureMap(const std::string &object_name, int image_index, int tex_coord_index, const Material &material, const TextureMap &texture_map) { + return EncodeTextureMap(object_name, image_index, tex_coord_index, material, + texture_map, {}); +} + +Status GltfAsset::EncodeTextureMap(const std::string &object_name, + int image_index, int tex_coord_index, + const Material &material, + const TextureMap &texture_map, + const std::vector &channels) { // Create a new texture sampler (or reuse an existing one if possible). const TextureSampler sampler(texture_map.min_filter(), texture_map.mag_filter(), @@ -2069,6 +2289,16 @@ Status GltfAsset::EncodeTextureMap(const std::string &object_name, } } + // The "texture" object of the EXT_mesh_features extension has a custom + // property "channels" that is encoded here. + if (object_name == "texture" && !channels.empty()) { + gltf_json_.BeginArray("channels"); + for (const int channel : channels) { + gltf_json_.OutputValue(channel); + } + gltf_json_.EndArray(); // channels array. + } + // Check if |texture_map| is using the KHR_texture_transform extension. if (!TextureTransform::IsDefault(texture_map.texture_transform())) { gltf_json_.BeginObject("extensions"); @@ -2113,9 +2343,6 @@ Status GltfAsset::EncodeTextureMap(const std::string &object_name, } Status GltfAsset::EncodeMaterialsProperty(EncoderBuffer *buf_out) { - // Stores mapping between Draco textures and glTF image indices. - std::unordered_map texture_to_image_index_map; - gltf_json_.BeginArray("materials"); for (int i = 0; i < material_library_.NumMaterials(); ++i) { const Material *const material = material_library_.GetMaterial(i); @@ -2157,8 +2384,7 @@ Status GltfAsset::EncodeMaterialsProperty(EncoderBuffer *buf_out) { *color->texture(), i, "_BaseColor"); DRACO_ASSIGN_OR_RETURN( const int color_image_index, - AddImage(texture_stem, color->texture(), rgba ? 4 : 3, - &texture_to_image_index_map)); + AddImage(texture_stem, color->texture(), rgba ? 4 : 3)); DRACO_RETURN_IF_ERROR( EncodeTextureMap("baseColorTexture", color_image_index, color->tex_coord_index(), *material, *color)); @@ -2173,8 +2399,7 @@ Status GltfAsset::EncodeMaterialsProperty(EncoderBuffer *buf_out) { *metallic->texture(), i, "_OcclusionMetallicRoughness"); // Metallic and occlusion textures are already combined. DRACO_ASSIGN_OR_RETURN(occlusion_metallic_roughness_image_index, - AddImage(texture_stem, metallic->texture(), 3, - &texture_to_image_index_map)); + AddImage(texture_stem, metallic->texture(), 3)); } if (occlusion_metallic_roughness_image_index != -1) DRACO_RETURN_IF_ERROR(EncodeTextureMap( @@ -2187,8 +2412,7 @@ Status GltfAsset::EncodeMaterialsProperty(EncoderBuffer *buf_out) { const std::string texture_stem = TextureUtils::GetOrGenerateTargetStem( *metallic->texture(), i, "_MetallicRoughness"); DRACO_ASSIGN_OR_RETURN(const int metallic_roughness_image_index, - AddImage(texture_stem, metallic->texture(), 3, - &texture_to_image_index_map)); + AddImage(texture_stem, metallic->texture(), 3)); DRACO_RETURN_IF_ERROR(EncodeTextureMap( "metallicRoughnessTexture", metallic_roughness_image_index, metallic->tex_coord_index(), *material, *metallic)); @@ -2203,8 +2427,7 @@ Status GltfAsset::EncodeMaterialsProperty(EncoderBuffer *buf_out) { const std::string texture_stem = TextureUtils::GetOrGenerateTargetStem( *normal->texture(), i, "_Normal"); DRACO_ASSIGN_OR_RETURN(const int normal_image_index, - AddImage(texture_stem, normal->texture(), 3, - &texture_to_image_index_map)); + AddImage(texture_stem, normal->texture(), 3)); DRACO_RETURN_IF_ERROR( EncodeTextureMap("normalTexture", normal_image_index, normal->tex_coord_index(), *material, *normal)); @@ -2227,8 +2450,7 @@ Status GltfAsset::EncodeMaterialsProperty(EncoderBuffer *buf_out) { *occlusion->texture(), i, suffix); DRACO_ASSIGN_OR_RETURN( const int occlusion_image_index, - AddImage(texture_stem, occlusion->texture(), num_components, - &texture_to_image_index_map)); + AddImage(texture_stem, occlusion->texture(), num_components)); DRACO_RETURN_IF_ERROR(EncodeTextureMap( "occlusionTexture", occlusion_image_index, occlusion->tex_coord_index(), *material, *occlusion)); @@ -2238,8 +2460,7 @@ Status GltfAsset::EncodeMaterialsProperty(EncoderBuffer *buf_out) { const std::string texture_stem = TextureUtils::GetOrGenerateTargetStem( *emissive->texture(), i, "_Emissive"); DRACO_ASSIGN_OR_RETURN(const int emissive_image_index, - AddImage(texture_stem, emissive->texture(), 3, - &texture_to_image_index_map)); + AddImage(texture_stem, emissive->texture(), 3)); DRACO_RETURN_IF_ERROR( EncodeTextureMap("emissiveTexture", emissive_image_index, emissive->tex_coord_index(), *material, *emissive)); @@ -2283,28 +2504,28 @@ Status GltfAsset::EncodeMaterialsProperty(EncoderBuffer *buf_out) { // PBR extensions can only be added to non-unlit materials. Material defaults; if (material->HasSheen()) { - DRACO_RETURN_IF_ERROR(EncodeMaterialSheenExtension( - *material, defaults, i, &texture_to_image_index_map)); + DRACO_RETURN_IF_ERROR( + EncodeMaterialSheenExtension(*material, defaults, i)); } if (material->HasTransmission()) { - DRACO_RETURN_IF_ERROR(EncodeMaterialTransmissionExtension( - *material, defaults, i, &texture_to_image_index_map)); + DRACO_RETURN_IF_ERROR( + EncodeMaterialTransmissionExtension(*material, defaults, i)); } if (material->HasClearcoat()) { - DRACO_RETURN_IF_ERROR(EncodeMaterialClearcoatExtension( - *material, defaults, i, &texture_to_image_index_map)); + DRACO_RETURN_IF_ERROR( + EncodeMaterialClearcoatExtension(*material, defaults, i)); } if (material->HasVolume()) { - DRACO_RETURN_IF_ERROR(EncodeMaterialVolumeExtension( - *material, defaults, i, &texture_to_image_index_map)); + DRACO_RETURN_IF_ERROR( + EncodeMaterialVolumeExtension(*material, defaults, i)); } if (material->HasIor()) { DRACO_RETURN_IF_ERROR( EncodeMaterialIorExtension(*material, defaults)); } if (material->HasSpecular()) { - DRACO_RETURN_IF_ERROR(EncodeMaterialSpecularExtension( - *material, defaults, i, &texture_to_image_index_map)); + DRACO_RETURN_IF_ERROR( + EncodeMaterialSpecularExtension(*material, defaults, i)); } } @@ -2375,6 +2596,9 @@ Status GltfAsset::EncodeMaterialsProperty(EncoderBuffer *buf_out) { if (!images_.empty()) { gltf_json_.BeginArray("images"); for (int i = 0; i < images_.size(); ++i) { + if (add_images_to_buffer_) { + DRACO_RETURN_IF_ERROR(SaveImageToBuffer(i)); + } gltf_json_.BeginObject(); if (images_[i].buffer_view >= 0) { gltf_json_.OutputValue("bufferView", images_[i].buffer_view); @@ -2400,9 +2624,9 @@ void GltfAsset::EncodeMaterialUnlitExtension(const Material &material) { gltf_json_.EndObject(); } -Status GltfAsset::EncodeMaterialSheenExtension( - const Material &material, const Material &defaults, int material_index, - TextureToImageIndexMapType *map) { +Status GltfAsset::EncodeMaterialSheenExtension(const Material &material, + const Material &defaults, + int material_index) { extensions_used_.insert("KHR_materials_sheen"); gltf_json_.BeginObject("KHR_materials_sheen"); @@ -2423,21 +2647,21 @@ Status GltfAsset::EncodeMaterialSheenExtension( // TODO(vytyaz): Combine sheen color and roughness images if possible. DRACO_RETURN_IF_ERROR(EncodeTexture("sheenColorTexture", "_SheenColor", TextureMap::SHEEN_COLOR, -1, material, - material_index, map)); + material_index)); // Add sheen roughness texture (A channel) if present. - DRACO_RETURN_IF_ERROR(EncodeTexture( - "sheenRoughnessTexture", "_SheenRoughness", TextureMap::SHEEN_ROUGHNESS, - 4, material, material_index, map)); + DRACO_RETURN_IF_ERROR( + EncodeTexture("sheenRoughnessTexture", "_SheenRoughness", + TextureMap::SHEEN_ROUGHNESS, 4, material, material_index)); gltf_json_.EndObject(); // KHR_materials_sheen object. return OkStatus(); } -Status GltfAsset::EncodeMaterialTransmissionExtension( - const Material &material, const Material &defaults, int material_index, - TextureToImageIndexMapType *map) { +Status GltfAsset::EncodeMaterialTransmissionExtension(const Material &material, + const Material &defaults, + int material_index) { extensions_used_.insert("KHR_materials_transmission"); gltf_json_.BeginObject("KHR_materials_transmission"); @@ -2451,16 +2675,16 @@ Status GltfAsset::EncodeMaterialTransmissionExtension( // TODO(vytyaz): Store texture in a grayscale format if possible. DRACO_RETURN_IF_ERROR(EncodeTexture("transmissionTexture", "_Transmission", TextureMap::TRANSMISSION, 3, material, - material_index, map)); + material_index)); gltf_json_.EndObject(); // KHR_materials_transmission object. return OkStatus(); } -Status GltfAsset::EncodeMaterialClearcoatExtension( - const Material &material, const Material &defaults, int material_index, - TextureToImageIndexMapType *map) { +Status GltfAsset::EncodeMaterialClearcoatExtension(const Material &material, + const Material &defaults, + int material_index) { extensions_used_.insert("KHR_materials_clearcoat"); gltf_json_.BeginObject("KHR_materials_clearcoat"); @@ -2481,26 +2705,26 @@ Status GltfAsset::EncodeMaterialClearcoatExtension( // TODO(vytyaz): Store texture in a grayscale format if possible. DRACO_RETURN_IF_ERROR(EncodeTexture("clearcoatTexture", "_Clearcoat", TextureMap::CLEARCOAT, 3, material, - material_index, map)); + material_index)); // Add clearcoat roughness texture (G channel) if present. DRACO_RETURN_IF_ERROR(EncodeTexture( "clearcoatRoughnessTexture", "_ClearcoatRoughness", - TextureMap::CLEARCOAT_ROUGHNESS, 3, material, material_index, map)); + TextureMap::CLEARCOAT_ROUGHNESS, 3, material, material_index)); // Add clearcoat normal texture (RGB channels) if present. - DRACO_RETURN_IF_ERROR(EncodeTexture( - "clearcoatNormalTexture", "_ClearcoatNormal", - TextureMap::CLEARCOAT_NORMAL, 3, material, material_index, map)); + DRACO_RETURN_IF_ERROR( + EncodeTexture("clearcoatNormalTexture", "_ClearcoatNormal", + TextureMap::CLEARCOAT_NORMAL, 3, material, material_index)); gltf_json_.EndObject(); // KHR_materials_clearcoat object. return OkStatus(); } -Status GltfAsset::EncodeMaterialVolumeExtension( - const Material &material, const Material &defaults, int material_index, - TextureToImageIndexMapType *map) { +Status GltfAsset::EncodeMaterialVolumeExtension(const Material &material, + const Material &defaults, + int material_index) { extensions_used_.insert("KHR_materials_volume"); gltf_json_.BeginObject("KHR_materials_volume"); @@ -2524,7 +2748,7 @@ Status GltfAsset::EncodeMaterialVolumeExtension( // Add thickness texture (G channel) if present. DRACO_RETURN_IF_ERROR(EncodeTexture("thicknessTexture", "_Thickness", TextureMap::THICKNESS, 3, material, - material_index, map)); + material_index)); gltf_json_.EndObject(); // KHR_materials_volume object. @@ -2546,9 +2770,9 @@ Status GltfAsset::EncodeMaterialIorExtension(const Material &material, return OkStatus(); } -Status GltfAsset::EncodeMaterialSpecularExtension( - const Material &material, const Material &defaults, int material_index, - TextureToImageIndexMapType *map) { +Status GltfAsset::EncodeMaterialSpecularExtension(const Material &material, + const Material &defaults, + int material_index) { extensions_used_.insert("KHR_materials_specular"); gltf_json_.BeginObject("KHR_materials_specular"); @@ -2567,12 +2791,12 @@ Status GltfAsset::EncodeMaterialSpecularExtension( // TODO(vytyaz): Combine specular and specular color images if possible. DRACO_RETURN_IF_ERROR(EncodeTexture("specularTexture", "_Specular", TextureMap::SPECULAR, 4, material, - material_index, map)); + material_index)); // Add specular color texture (RGB channels) if present. DRACO_RETURN_IF_ERROR(EncodeTexture("specularColorTexture", "_SpecularColor", TextureMap::SPECULAR_COLOR, -1, material, - material_index, map)); + material_index)); gltf_json_.EndObject(); // KHR_materials_specular object. @@ -2582,8 +2806,7 @@ Status GltfAsset::EncodeMaterialSpecularExtension( Status GltfAsset::EncodeTexture(const std::string &name, const std::string &stem_suffix, TextureMap::Type type, int num_components, - const Material &material, int material_index, - TextureToImageIndexMapType *map) { + const Material &material, int material_index) { const TextureMap *const texture_map = material.GetTextureMapByType(type); if (texture_map) { if (num_components == -1) { @@ -2594,7 +2817,7 @@ Status GltfAsset::EncodeTexture(const std::string &name, *texture_map->texture(), material_index, stem_suffix); DRACO_ASSIGN_OR_RETURN( const int image_index, - AddImage(texture_stem, texture_map->texture(), num_components, map)); + AddImage(texture_stem, texture_map->texture(), num_components)); DRACO_RETURN_IF_ERROR(EncodeTextureMap(name, image_index, texture_map->tex_coord_index(), material, *texture_map)); @@ -2694,7 +2917,8 @@ Status GltfAsset::EncodeSkinsProperty(EncoderBuffer *buf_out) { Status GltfAsset::EncodeTopLevelExtensionsProperty(EncoderBuffer *buf_out) { // Return if there are no top-level asset extensions to encode. - if (lights_.empty() && materials_variants_names_.empty()) { + if (lights_.empty() && materials_variants_names_.empty() && + property_tables_.empty()) { return OkStatus(); } @@ -2702,6 +2926,7 @@ Status GltfAsset::EncodeTopLevelExtensionsProperty(EncoderBuffer *buf_out) { gltf_json_.BeginObject("extensions"); DRACO_RETURN_IF_ERROR(EncodeLightsProperty(buf_out)); DRACO_RETURN_IF_ERROR(EncodeMaterialsVariantsNamesProperty(buf_out)); + DRACO_RETURN_IF_ERROR(EncodeStructuralMetadataProperty(buf_out)); gltf_json_.EndObject(); // extensions entry. return OkStatus(); } @@ -2777,6 +3002,102 @@ Status GltfAsset::EncodeMaterialsVariantsNamesProperty(EncoderBuffer *buf_out) { return OkStatus(); } +Status GltfAsset::EncodeStructuralMetadataProperty(EncoderBuffer *buf_out) { + if (property_table_schema_.Empty()) { + return OkStatus(); + } + + gltf_json_.BeginObject("EXT_structural_metadata"); + + // Encodes property table schema. + struct SchemaWriter { + static void Write(const PropertyTable::Schema::Object &object, + JsonWriter *json_writer) { + switch (object.GetType()) { + case PropertyTable::Schema::Object::OBJECT: + json_writer->BeginObject(object.GetName()); + for (const PropertyTable::Schema::Object &obj : object.GetObjects()) { + Write(obj, json_writer); + } + json_writer->EndObject(); + break; + case PropertyTable::Schema::Object::ARRAY: + json_writer->BeginArray(object.GetName()); + for (const PropertyTable::Schema::Object &obj : object.GetArray()) { + Write(obj, json_writer); + } + json_writer->EndArray(); + break; + case PropertyTable::Schema::Object::STRING: + json_writer->OutputValue(object.GetName(), object.GetString()); + break; + case PropertyTable::Schema::Object::INTEGER: + json_writer->OutputValue(object.GetName(), object.GetInteger()); + break; + case PropertyTable::Schema::Object::BOOLEAN: + json_writer->OutputValue(object.GetName(), object.GetBoolean()); + break; + } + } + }; + + // Encode property table schema. + SchemaWriter::Write(property_table_schema_.json, &gltf_json_); + + // Encode all property tables. + gltf_json_.BeginArray("propertyTables"); + for (const PropertyTable *const table : property_tables_) { + gltf_json_.BeginObject(); + if (!table->GetName().empty()) { + gltf_json_.OutputValue("name", table->GetName()); + } + if (!table->GetClass().empty()) { + gltf_json_.OutputValue("class", table->GetClass()); + } + gltf_json_.OutputValue("count", table->GetCount()); + + // Encoder all property table properties. + gltf_json_.BeginObject("properties"); + for (int i = 0; i < table->NumProperties(); ++i) { + const PropertyTable::Property &property = table->GetProperty(i); + gltf_json_.BeginObject(property.GetName()); + + // Encode property values. + DRACO_ASSIGN_OR_RETURN(const int buffer_view_index, + AddBufferView(property.GetData())); + gltf_json_.OutputValue("values", buffer_view_index); + + // Encode offsets for variable-length arrays. + if (!property.GetArrayOffsets().data.data.empty()) { + if (!property.GetArrayOffsets().type.empty()) { + gltf_json_.OutputValue("arrayOffsetType", + property.GetArrayOffsets().type); + } + DRACO_ASSIGN_OR_RETURN(const int buffer_view_index, + AddBufferView(property.GetArrayOffsets().data)); + gltf_json_.OutputValue("arrayOffsets", buffer_view_index); + } + + // Encode offsets for strings. + if (!property.GetStringOffsets().data.data.empty()) { + if (!property.GetStringOffsets().type.empty()) { + gltf_json_.OutputValue("stringOffsetType", + property.GetStringOffsets().type); + } + DRACO_ASSIGN_OR_RETURN(const int buffer_view_index, + AddBufferView(property.GetStringOffsets().data)); + gltf_json_.OutputValue("stringOffsets", buffer_view_index); + } + gltf_json_.EndObject(); // Named property entry. + } + gltf_json_.EndObject(); // properties entry. + gltf_json_.EndObject(); + } + gltf_json_.EndArray(); // propertyTables entry. + gltf_json_.EndObject(); // EXT_structural_metadata entry. + return OkStatus(); +} + bool GltfAsset::EncodeAccessorsProperty(EncoderBuffer *buf_out) { gltf_json_.BeginArray("accessors"); @@ -2831,6 +3152,9 @@ bool GltfAsset::EncodeBufferViewsProperty(EncoderBuffer *buf_out) { gltf_json_.OutputValue("buffer", 0); gltf_json_.OutputValue("byteOffset", buffer_views_[i].buffer_byte_offset); gltf_json_.OutputValue("byteLength", buffer_views_[i].byte_length); + if (buffer_views_[i].target != 0) { + gltf_json_.OutputValue("target", buffer_views_[i].target); + } gltf_json_.EndObject(); } @@ -2874,6 +3198,12 @@ Status GltfAsset::EncodeExtensionsProperties(EncoderBuffer *buf_out) { extensions_used_.insert("EXT_mesh_gpu_instancing"); extensions_required_.insert("EXT_mesh_gpu_instancing"); } + if (mesh_features_used_) { + extensions_used_.insert("EXT_mesh_features"); + } + if (!property_table_schema_.Empty()) { + extensions_used_.insert("EXT_structural_metadata"); + } if (!extensions_required_.empty()) { gltf_json_.BeginArray("extensionsRequired"); @@ -3142,6 +3472,7 @@ template Status GltfEncoder::EncodeToBuffer(const Scene &geometry, Status GltfEncoder::EncodeToBuffer(const Mesh &mesh, GltfAsset *gltf_asset, EncoderBuffer *out_buffer) { out_buffer_ = out_buffer; + SetJsonWriterMode(gltf_asset); if (!gltf_asset->AddDracoMesh(mesh)) { return Status(Status::DRACO_ERROR, "Error adding Draco mesh."); } @@ -3151,10 +3482,20 @@ Status GltfEncoder::EncodeToBuffer(const Mesh &mesh, GltfAsset *gltf_asset, Status GltfEncoder::EncodeToBuffer(const Scene &scene, GltfAsset *gltf_asset, EncoderBuffer *out_buffer) { out_buffer_ = out_buffer; + SetJsonWriterMode(gltf_asset); DRACO_RETURN_IF_ERROR(gltf_asset->AddScene(scene)); return gltf_asset->Output(out_buffer); } +void GltfEncoder::SetJsonWriterMode(class GltfAsset *gltf_asset) { + if (gltf_asset->output_type() == COMPACT && + gltf_asset->add_images_to_buffer()) { + gltf_asset->set_json_output_mode(JsonWriter::COMPACT); + } else { + gltf_asset->set_json_output_mode(JsonWriter::READABLE); + } +} + Status GltfEncoder::WriteGltfFiles(const GltfAsset &gltf_asset, const EncoderBuffer &buffer, const std::string &filename, diff --git a/src/draco/io/gltf_encoder.h b/src/draco/io/gltf_encoder.h index c40bed9..2351260 100644 --- a/src/draco/io/gltf_encoder.h +++ b/src/draco/io/gltf_encoder.h @@ -38,7 +38,8 @@ class GltfEncoder { public: // Types of output modes for the glTF data encoder. |COMPACT| will output // required and non-default glTF data. |VERBOSE| will output required and - // default glTF data. + // default glTF data as well as readable JSON even when the output is saved in + // a glTF-Binary file. enum OutputType { COMPACT, VERBOSE }; GltfEncoder(); @@ -95,6 +96,10 @@ class GltfEncoder { Status EncodeToBuffer(const Scene &scene, class GltfAsset *gltf_asset, EncoderBuffer *out_buffer); + // Sets appropriate Json writer mode based on the provided |gltf_asset| + // options. + static void SetJsonWriterMode(class GltfAsset *gltf_asset); + // Writes the ".gltf" and associted files. |gltf_asset| holds the glTF data. // |buffer| is the encoded glTF json data. |filename| is the name of the // ".gltf" file. |bin_filename| is the name of the glTF bin file. The other diff --git a/src/draco/io/gltf_encoder_test.cc b/src/draco/io/gltf_encoder_test.cc index 8b39c4d..f6513ac 100644 --- a/src/draco/io/gltf_encoder_test.cc +++ b/src/draco/io/gltf_encoder_test.cc @@ -26,6 +26,7 @@ #include "draco/io/file_reader_interface.h" #include "draco/io/file_utils.h" #include "draco/io/gltf_decoder.h" +#include "draco/io/gltf_test_helper.h" #include "draco/io/parser_utils.h" #include "draco/io/texture_io.h" #include "draco/material/material_utils.h" @@ -308,6 +309,17 @@ class GltfEncoderTest : public ::testing::Test { ASSERT_NE(*mesh_gltf, nullptr); } + // Encode |mesh| to a temporary glTF file. Then decode the glTF file as a + // scene and return it in |scene_gltf|. + void MeshToDecodedGltfScene(const Mesh &mesh, + std::unique_ptr *scene_gltf) { + const std::string gltf_file_full_path = + draco::GetTestTempFileFullPath("test.gltf"); + EncodeMeshToFile(mesh, gltf_file_full_path); + *scene_gltf = std::move(ReadSceneFromFile(gltf_file_full_path)).value(); + ASSERT_NE(*scene_gltf, nullptr); + } + // Encode |scene| to a temporary glTF file. Then decode the glTF file and // return the scene in |scene_gltf|. void SceneToDecodedGltfScene(const Scene &scene, @@ -697,7 +709,7 @@ TEST_F(GltfEncoderTest, DracoCompressionCheckOptions) { const size_t default_bin_size = draco::GetFileSize(gltf_bin_filename); // Test applying more quantization will make the compressed size smaller. - options.quantization_bits_position = 6; + options.quantization_position.SetQuantizationBits(6); options.quantization_bits_normal = 6; options.quantization_bits_tex_coord = 6; SceneUtils::SetDracoCompressionOptions(&options, scene.get()); @@ -723,7 +735,7 @@ TEST_F(GltfEncoderTest, DracoCompressionCheckOptions) { draco::GetFileSize(gltf_bin_filename); ASSERT_LT(more_weight_quantization_bin_size, more_quantization_bin_size); - options.quantization_bits_position = 20; + options.quantization_position.SetQuantizationBits(20); options.quantization_bits_normal = 20; options.quantization_bits_tex_coord = 20; options.quantization_bits_weight = 20; @@ -794,7 +806,7 @@ TEST_F(GltfEncoderTest, TestQuantizationPerAttribute) { // Test setting more position quantization then the default makes the // compressed size smaller. - options.quantization_bits_position = 6; + options.quantization_position.SetQuantizationBits(6); SceneUtils::SetDracoCompressionOptions(&options, scene.get()); ASSERT_TRUE(gltf_encoder.EncodeToFile(*scene, gltf_file_full_path, folder_path)) @@ -1489,6 +1501,157 @@ TEST_F(GltfEncoderTest, EncodeMaterialsVariants) { EncodeSceneToGltfAndCompare(scene.get()); } +// Tests encoding of draco::Scene to glTF with various mesh feature ID sets and +// structural metadata property table. +TEST_F(GltfEncoderTest, EncodeSceneWithMeshFeaturesWithStructuralMetadata) { + const std::string file_name = "BoxMeta/glTF/BoxMeta.gltf"; + constexpr bool kHasMeshFeatures = true; + constexpr bool kHasStructuralMetadata = true; + constexpr bool kHasDracoCompression = false; + + // Read test file from file. + const std::unique_ptr scene(DecodeTestGltfFileToScene(file_name)); + ASSERT_NE(scene, nullptr); + + // Encode the scene to glTF and decode it back to draco::Scene and check. + std::unique_ptr scene_from_gltf; + SceneToDecodedGltfScene(*scene, &scene_from_gltf); + ASSERT_NE(scene_from_gltf, nullptr); + GltfTestHelper::CheckBoxMetaMeshFeatures(*scene_from_gltf, + kHasDracoCompression); + GltfTestHelper::CheckBoxMetaStructuralMetadata(*scene_from_gltf); +} + +// Tests encoding of draco::Scene with Draco compression to glTF with various +// mesh feature ID sets. +TEST_F(GltfEncoderTest, EncodeSceneWithMeshFeaturesWithDracoCompression) { + const std::string file_name = "BoxMetaDraco/glTF/BoxMetaDraco.gltf"; + constexpr bool kHasMeshFeatures = true; + constexpr bool kHasStructuralMetadata = false; + constexpr bool kHasDracoCompression = true; + + // Read test file from file. + const std::unique_ptr scene(DecodeTestGltfFileToScene(file_name)); + ASSERT_NE(scene, nullptr); + + // Encode the scene to glTF and decode it back to draco::Scene and check. + std::unique_ptr scene_from_gltf; + SceneToDecodedGltfScene(*scene, &scene_from_gltf); + ASSERT_NE(scene_from_gltf, nullptr); + GltfTestHelper::CheckBoxMetaMeshFeatures(*scene_from_gltf, + kHasDracoCompression); +} + +// Tests encoding of draco::Mesh to glTF with various mesh feature ID sets and +// structural metadata property table. +TEST_F(GltfEncoderTest, EncodeMeshWithMeshFeaturesWithStructuralMetadata) { + const std::string file_name = "BoxMeta/glTF/BoxMeta.gltf"; + constexpr bool kHasDracoCompression = false; + + // Read test file from file. + const std::unique_ptr mesh(ReadMeshFromTestFile(file_name)); + ASSERT_NE(mesh, nullptr); + + // Encode the scene to glTF and decode it back to draco::Mesh and check. + std::unique_ptr mesh_from_gltf; + MeshToDecodedGltfMesh(*mesh, &mesh_from_gltf); + ASSERT_NE(mesh_from_gltf, nullptr); + GltfTestHelper::CheckBoxMetaMeshFeatures(*mesh_from_gltf, + kHasDracoCompression); + GltfTestHelper::CheckBoxMetaStructuralMetadata(*mesh_from_gltf); +} + +// Tests encoding of draco::Mesh with Draco compression to glTF with various +// mesh feature ID sets. +TEST_F(GltfEncoderTest, EncodeMeshWithMeshFeaturesWithDracoCompression) { + constexpr bool kHasDracoCompression = true; + const std::string file_name = "BoxMetaDraco/glTF/BoxMetaDraco.gltf"; + + // Read test file from file. + const std::unique_ptr mesh(ReadMeshFromTestFile(file_name)); + ASSERT_NE(mesh, nullptr); + + // Encode the scene to glTF and decode it back to draco::Mesh and check. + std::unique_ptr mesh_from_gltf; + MeshToDecodedGltfMesh(*mesh, &mesh_from_gltf); + ASSERT_NE(mesh_from_gltf, nullptr); + GltfTestHelper::CheckBoxMetaMeshFeatures(*mesh_from_gltf, + kHasDracoCompression); +} + +// Tests encoding of draco::Mesh with mesh features associated with different +// mesh primitives. +TEST_F(GltfEncoderTest, EncodeMeshWithMeshFeaturesWithMultiplePrimitives) { + const std::string file_name = "BoxesMeta/glTF/BoxesMeta.gltf"; + + // Read test file from file. + const std::unique_ptr mesh(ReadMeshFromTestFile(file_name)); + ASSERT_NE(mesh, nullptr); + // All mesh features should share two textures. + ASSERT_EQ(mesh->GetNonMaterialTextureLibrary().NumTextures(), 2); + + // Encode the scene to glTF and decode it back to draco::Mesh and check. + std::unique_ptr mesh_from_gltf; + MeshToDecodedGltfMesh(*mesh, &mesh_from_gltf); + ASSERT_NE(mesh_from_gltf, nullptr); + + ASSERT_EQ(mesh_from_gltf->GetMaterialLibrary().NumMaterials(), 2); + ASSERT_EQ(mesh_from_gltf->NumMeshFeatures(), 5); + + // First two mesh features should be used by material 0 and the reamining by + // material 1. + for (draco::MeshFeaturesIndex mfi(0); mfi < 5; ++mfi) { + // Each mesh feature should be used by a single material. + ASSERT_EQ(mesh_from_gltf->NumMeshFeaturesMaterialMasks(mfi), 1); + if (mfi.value() < 2) { + ASSERT_EQ(mesh_from_gltf->GetMeshFeaturesMaterialMask(mfi, 0), 0); + } else { + ASSERT_EQ(mesh_from_gltf->GetMeshFeaturesMaterialMask(mfi, 0), 1); + } + } + // All mesh features should share two textures. + ASSERT_EQ(mesh_from_gltf->GetNonMaterialTextureLibrary().NumTextures(), 2); + + // Ensure it still works correctly when we re-encode the source |mesh| as a + // scene. + std::unique_ptr scene_from_gltf; + MeshToDecodedGltfScene(*mesh, &scene_from_gltf); + ASSERT_NE(scene_from_gltf, nullptr); + + ASSERT_EQ(scene_from_gltf->NumMeshes(), 2); + + // First mesh should have 2 mesh features and the other one 3 mesh features. + ASSERT_EQ(scene_from_gltf->GetMesh(draco::MeshIndex(0)).NumMeshFeatures(), 2); + ASSERT_EQ(scene_from_gltf->GetMesh(draco::MeshIndex(1)).NumMeshFeatures(), 3); + + // All mesh features should share two textures. + ASSERT_EQ(scene_from_gltf->GetNonMaterialTextureLibrary().NumTextures(), 2); +} + +// Tests encoding of draco::Mesh containing a point cloud and two materials. +TEST_F(GltfEncoderTest, EncodePointCloudWithMaterials) { + const std::string file_name = + "SphereTwoMaterials/sphere_two_materials_point_cloud.gltf"; + + // Read test file from file. + const std::unique_ptr mesh(ReadMeshFromTestFile(file_name)); + ASSERT_NE(mesh, nullptr); + + // Input should have no faces. + ASSERT_EQ(mesh->num_faces(), 0); + + // There should be two materials + ASSERT_EQ(mesh->GetMaterialLibrary().NumMaterials(), 2); + + // Encode the mesh to glTF and decode it back to draco::Mesh and check. + std::unique_ptr mesh_from_gltf; + MeshToDecodedGltfMesh(*mesh, &mesh_from_gltf); + ASSERT_NE(mesh_from_gltf, nullptr); + + ASSERT_EQ(mesh_from_gltf->num_faces(), 0); + ASSERT_EQ(mesh_from_gltf->GetMaterialLibrary().NumMaterials(), 2); +} + } // namespace draco #endif // DRACO_TRANSCODER_SUPPORTED diff --git a/src/draco/io/gltf_test_helper.cc b/src/draco/io/gltf_test_helper.cc new file mode 100644 index 0000000..13cce6f --- /dev/null +++ b/src/draco/io/gltf_test_helper.cc @@ -0,0 +1,823 @@ +// Copyright 2022 The Draco Authors. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// +#include "draco/io/gltf_test_helper.h" + +#include +#include +#include +#include +#include + +#include "draco/core/draco_test_base.h" +#include "draco/core/draco_test_utils.h" +#include "draco/metadata/property_table.h" +#include "draco/texture/texture_library.h" + +namespace draco { + +#ifdef DRACO_TRANSCODER_SUPPORTED + +void GltfTestHelper::AddBoxMetaMeshFeatures(Scene *scene) { + // Check the scene. + ASSERT_NE(scene, nullptr); + ASSERT_EQ(scene->NumMeshes(), 1); + TextureLibrary &texture_library = scene->GetNonMaterialTextureLibrary(); + ASSERT_EQ(texture_library.NumTextures(), 0); + + // Check the mesh. + Mesh &mesh = scene->GetMesh(MeshIndex(0)); + ASSERT_EQ(mesh.num_faces(), 12); + ASSERT_EQ(mesh.num_attributes(), 2); + ASSERT_EQ(mesh.num_points(), 24); + + // Get mesh element counts. + const int num_faces = mesh.num_faces(); + const int num_corners = 3 * mesh.num_faces(); + const int num_vertices = + mesh.GetNamedAttribute(GeometryAttribute::POSITION)->size(); + + // Add feature ID set with per-face Uint8 attribute named _FEATURE_ID_0. + { + // Create feature ID attribute. + constexpr DataType kType = DataType::DT_UINT8; + std::unique_ptr pa(new PointAttribute()); + pa->Init(GeometryAttribute::GENERIC, 1, kType, false, mesh.num_faces()); + for (AttributeValueIndex avi(0); avi < num_faces; ++avi) { + const int8_t val = avi.value(); + pa->SetAttributeValue(avi, &val); + } + const int att_id = mesh.AddPerFaceAttribute(std::move(pa)); + std::unique_ptr metadata(new AttributeMetadata()); + metadata->AddEntryString("attribute_name", "_FEATURE_ID_0"); + mesh.AddAttributeMetadata(att_id, std::move(metadata)); + + // Add feature ID set to the mesh. + std::unique_ptr features(new MeshFeatures()); + features->SetLabel("faces"); + features->SetFeatureCount(num_faces); + features->SetNullFeatureId(100); + features->SetPropertyTableIndex(0); + features->SetAttributeIndex(0); + mesh.AddMeshFeatures(std::move(features)); + } + + // Add feature ID set with per-vertex Uint16 attribute named _FEATURE_ID_1. + { + // Create feature ID attribute. + constexpr DataType kType = DataType::DT_UINT16; + std::unique_ptr pa(new PointAttribute()); + pa->Init(GeometryAttribute::GENERIC, 1, kType, false, num_vertices); + for (AttributeValueIndex avi(0); avi < num_vertices; ++avi) { + const uint16_t val = avi.value(); + pa->SetAttributeValue(avi, &val); + } + const int att_id = mesh.AddPerVertexAttribute(std::move(pa)); + std::unique_ptr metadata(new AttributeMetadata()); + metadata->AddEntryString("attribute_name", "_FEATURE_ID_1"); + mesh.AddAttributeMetadata(att_id, std::move(metadata)); + + // Add feature ID set to the mesh. + std::unique_ptr features(new MeshFeatures()); + features->SetLabel("vertices"); + features->SetFeatureCount(num_vertices); + features->SetNullFeatureId(101); + features->SetPropertyTableIndex(1); + features->SetAttributeIndex(1); + mesh.AddMeshFeatures(std::move(features)); + } + + // Add feature ID set with per-corner Float attribute named _FEATURE_ID_2. + { + // Create feature ID attribute. + constexpr DataType kType = DataType::DT_FLOAT32; + std::unique_ptr pa(new PointAttribute()); + pa->Init(GeometryAttribute::GENERIC, 1, kType, false, num_corners); + IndexTypeVector corner_to_value( + num_corners); + for (AttributeValueIndex avi(0); avi < num_corners; ++avi) { + const float val = avi.value(); + pa->SetAttributeValue(avi, &val); + corner_to_value[CornerIndex(avi.value())] = avi; + } + const int att_id = + mesh.AddAttributeWithConnectivity(std::move(pa), corner_to_value); + std::unique_ptr metadata(new AttributeMetadata()); + metadata->AddEntryString("attribute_name", "_FEATURE_ID_2"); + mesh.AddAttributeMetadata(att_id, std::move(metadata)); + + // Add feature ID set to the mesh. + std::unique_ptr features(new MeshFeatures()); + features->SetFeatureCount(num_corners); + features->SetAttributeIndex(2); + mesh.AddMeshFeatures(std::move(features)); + } + + // Add feature ID set with the IDs stored in the R texture channel and + // accessible via the first texture coordinate attribute. + { + // Add the first texture coordinate attribute. + constexpr DataType kType = DataType::DT_FLOAT32; + std::unique_ptr pa(new PointAttribute()); + pa->Init(GeometryAttribute::TEX_COORD, 2, kType, false, num_vertices); + std::vector> uv = { + {0.0000f, 0.0000f}, {0.0000f, 0.5000f}, {0.0000f, 1.0000f}, + {0.5000f, 0.0000f}, {0.5000f, 0.5000f}, {0.5000f, 1.0000f}, + {1.0000f, 0.0000f}, {1.0000f, 0.5000f}}; + for (AttributeValueIndex avi(0); avi < num_vertices; ++avi) { + const int index = avi.value(); + pa->SetAttributeValue(avi, uv[index].data()); + } + mesh.AddPerVertexAttribute(std::move(pa)); + } + + // Add feature ID set with the IDs stored in the GBA texture channels and + // accessible via the second texture coordinate attribute. + { + // Add the second texture coordinate attribute. + constexpr DataType kType = DataType::DT_FLOAT32; + std::unique_ptr pa(new PointAttribute()); + pa->Init(GeometryAttribute::TEX_COORD, 2, kType, false, num_vertices); + std::vector> uv = { + {0.0000f, 0.0000f}, {0.0000f, 0.5000f}, {0.0000f, 1.0000f}, + {0.5000f, 0.0000f}, {0.5000f, 0.5000f}, {0.5000f, 1.0000f}, + {1.0000f, 0.0000f}, {1.0000f, 0.5000f}}; + for (AttributeValueIndex avi(0); avi < num_vertices; ++avi) { + const int index = avi.value(); + pa->SetAttributeValue(avi, uv[index].data()); + } + mesh.AddPerVertexAttribute(std::move(pa)); + ASSERT_EQ(mesh.NumNamedAttributes(GeometryAttribute::TEX_COORD), 2); + } +} + +void GltfTestHelper::AddBoxMetaStructuralMetadata(Scene *scene) { + // Add structural metadata property table schema in the following JSON: + // "schema": { + // "id": "galaxy", + // "classes": { + // "planet": { + // "properties": { + // "color": { + // "componentType": "UINT8", + // "description": "The RGB color.", + // "required": true, + // "type": "VEC3" + // }, + // "name": { + // "description": "The name.", + // "required": true, + // "type": "STRING" + // } + // "sequence": { + // "description": "The number sequence.", + // "required": false, + // "type": "SCALAR" + // } + // } + // } + // }, + // "enums": { + // "classifications": { + // "description": "Classifications of planets.", + // "name": "classifications", + // "values": [ + // { "name": "Unspecified", "value": 0 }, + // { "name": "Gas Giant", "value": 1 }, + // { "name": "Waterworld", "value": 2 }, + // { "name": "Agriworld", "value": 3 }, + // { "name": "Ordnance", "value": 4 } + // ] + // } + // } + // } + typedef PropertyTable::Schema::Object Object; + PropertyTable::Schema schema; + Object &json = schema.json; + json.SetObjects().emplace_back("id", "galaxy"); + json.SetObjects().emplace_back("classes"); + json.SetObjects().back().SetObjects().emplace_back("planet"); + Object &planet = json.SetObjects().back().SetObjects().back(); + planet.SetObjects().emplace_back("properties"); + Object &properties = planet.SetObjects().back(); + + properties.SetObjects().emplace_back("color"); + Object &color = properties.SetObjects().back(); + color.SetObjects().emplace_back("componentType", "UINT8"); + color.SetObjects().emplace_back("description", "The RGB color."); + color.SetObjects().emplace_back("required", true); + color.SetObjects().emplace_back("type", "VEC3"); + + properties.SetObjects().emplace_back("name"); + Object &name = properties.SetObjects().back(); + name.SetObjects().emplace_back("description", "The name."); + name.SetObjects().emplace_back("required", true); + name.SetObjects().emplace_back("type", "STRING"); + + properties.SetObjects().emplace_back("sequence"); + Object &sequence = properties.SetObjects().back(); + sequence.SetObjects().emplace_back("description", "The number sequence."); + sequence.SetObjects().emplace_back("required", false); + sequence.SetObjects().emplace_back("type", "SCALAR"); + + json.SetObjects().emplace_back("enums"); + json.SetObjects().back().SetObjects().emplace_back("classifications"); + Object &classifications = json.SetObjects().back().SetObjects().back(); + classifications.SetObjects().emplace_back("description", + "Classifications of planets."); + classifications.SetObjects().emplace_back("name", "classifications"); + classifications.SetObjects().emplace_back("values"); + Object &values = classifications.SetObjects().back(); + + values.SetArray().emplace_back(); + values.SetArray().back().SetObjects().emplace_back("name", "Unspecified"); + values.SetArray().back().SetObjects().emplace_back("value", 0); + + values.SetArray().emplace_back(); + values.SetArray().back().SetObjects().emplace_back("name", "Gas Giant"); + values.SetArray().back().SetObjects().emplace_back("value", 1); + + values.SetArray().emplace_back(); + values.SetArray().back().SetObjects().emplace_back("name", "Waterworld"); + values.SetArray().back().SetObjects().emplace_back("value", 2); + + values.SetArray().emplace_back(); + values.SetArray().back().SetObjects().emplace_back("name", "Agriworld"); + values.SetArray().back().SetObjects().emplace_back("value", 3); + + values.SetArray().emplace_back(); + values.SetArray().back().SetObjects().emplace_back("name", "Ordnance"); + values.SetArray().back().SetObjects().emplace_back("value", 4); + + // Add property table schema to the scene. + scene->GetStructuralMetadata().SetPropertyTableSchema(schema); + + // Add structural metadata property table. + std::unique_ptr table(new PropertyTable()); + table->SetName("Galaxy far far away."); + table->SetClass("planet"); + table->SetCount(16); + + // Add property describing RGB color components of the planet class. + { + std::unique_ptr property( + new PropertyTable::Property()); + property->SetName("color"); + property->GetData().target = 34962; // ARRAY_BUFFER. + property->GetData().data = {94, 94, 194, // Tatooine + 94, 145, 161, // Corusant + 118, 171, 91, // Naboo + 103, 139, 178, // Alderaan + 83, 98, 154, // Dagobah + 91, 177, 175, // Mandalore + 190, 92, 108, // Corellia + 72, 69, 169, // Kamino + 154, 90, 101, // Kashyyyk + 174, 85, 175, // Dantooine + 184, 129, 96, // Hoth + 185, 91, 180, // Mustafar + 194, 150, 83, // Bespin + 204, 111, 134, // Yavin + 182, 90, 89, // Geonosis + 0, 0, 0}; // UNLABELED + table->AddProperty(std::move(property)); + } + + // Add property that describes names of the planet class. + { + std::unique_ptr property( + new PropertyTable::Property()); + property->SetName("name"); + property->GetData().target = 34963; // ELEMENT_ARRAY_BUFFER. + const std::string data = + "named_class:Tatooine" + "named_class:Corusant" + "named_class:Naboo" + "named_class:Alderaan" + "named_class:Dagobah" + "named_class:Mandalore" + "named_class:Corellia" + "named_class:Kamino" + "named_class:Kashyyyk" + "named_class:Dantooine" + "named_class:Hoth" + "named_class:Mustafar" + "named_class:Bespin" + "named_class:Yavin" + "named_class:Geonosis" + "UNLABELED"; + property->GetData().data.assign(data.begin(), data.end()); + property->GetStringOffsets().type = "UINT32"; + property->GetStringOffsets().data.target = 34963; // ELEMENT_ARRAY_BUFFER. + property->GetStringOffsets().data.data = {0, 0, 0, 0, // Tatooine + 20, 0, 0, 0, // Corusant + 40, 0, 0, 0, // Naboo + 57, 0, 0, 0, // Alderaan + 77, 0, 0, 0, // Dagobah + 96, 0, 0, 0, // Mandalore + 117, 0, 0, 0, // Corellia + 137, 0, 0, 0, // Kamino + 155, 0, 0, 0, // Kashyyyk + 175, 0, 0, 0, // Dantooine + 196, 0, 0, 0, // Hoth + 212, 0, 0, 0, // Mustafar + 232, 0, 0, 0, // Bespin + 250, 0, 0, 0, // Yavin + 12, 1, 0, 0, // Geonosis + 32, 1, 0, 0, // UNLABELED + 41, 1, 0, 0}; + table->AddProperty(std::move(property)); + } + + // Add property that contains variable-length number sequence of the planet + // class. + { + std::unique_ptr property( + new PropertyTable::Property()); + property->SetName("sequence"); + property->GetData().target = 34963; // ELEMENT_ARRAY_BUFFER. + const std::vector data = { + 0.5f, 1.5f, 2.5f, 3.5f, 4.5f, 5.5f, // Tatooine + 6.5f, 7.5f, // Corusant + 8.5f, // Naboo + 9.5f, // Alderaan + 10.5f, 11.5f, // Dagobah + 12.5f, 13.5f, 14.5f, 15.5f, // Mandalore + 16.5f, 17.5f, // Corellia + 18.5f, 19.5f, // Kamino + 20.5f, 21.5f, 22.5f, // Kashyyyk + 23.5f, 24.5f, 25.5f, // Dantooine + 26.5f, 27.5f, // Hoth + 28.5f, 29.5f, // Mustafar + 30.5f, 31.5f, 32.5f, // Bespin + 33.5f, 34.5f, 35.5f, // Yavin + 36.5f, 37.5f, 38.5f, 39.5f, 40.5f // Geonosis + }; // UNLABELED (empty array). + property->GetData().data.resize(4 * data.size()); + memcpy(property->GetData().data.data(), data.data(), 4 * data.size()); + property->GetArrayOffsets().type = "UINT8"; + property->GetArrayOffsets().data.target = 34963; // ELEMENT_ARRAY_BUFFER. + property->GetArrayOffsets().data.data = { + 0 * 4, // Tatooine + 6 * 4, // Corusant + 8 * 4, // Naboo + 9 * 4, // Alderaan + 10 * 4, // Dagobah + 12 * 4, // Mandalore + 16 * 4, // Corellia + 18 * 4, // Kamino + 20 * 4, // Kashyyyk + 23 * 4, // Dantooine + 26 * 4, // Hoth + 28 * 4, // Mustafar + 30 * 4, // Bespin + 33 * 4, // Yavin + 36 * 4, // Geonosis + 41 * 4, // UNLABELED (empty array). + 41 * 4}; + table->AddProperty(std::move(property)); + } + + // Add property table to the scene. + scene->GetStructuralMetadata().AddPropertyTable(std::move(table)); +} + +template <> +void GltfTestHelper::CheckBoxMetaMeshFeatures(const Mesh &geometry, + bool has_draco_compression) { + CheckBoxMetaMeshFeatures(geometry, geometry.GetNonMaterialTextureLibrary(), + has_draco_compression); +} + +template <> +void GltfTestHelper::CheckBoxMetaMeshFeatures(const Scene &geometry, + bool has_draco_compression) { + ASSERT_EQ(geometry.NumMeshes(), 1); + CheckBoxMetaMeshFeatures(geometry.GetMesh(MeshIndex(0)), + geometry.GetNonMaterialTextureLibrary(), + has_draco_compression); +} + +void GltfTestHelper::CheckBoxMetaMeshFeatures(const Mesh &mesh, + const TextureLibrary &texture_lib, + bool has_draco_compression) { + // Check texture library. + ASSERT_EQ(texture_lib.NumTextures(), 2); + + // Check basic mesh properties. + ASSERT_EQ(mesh.NumMeshFeatures(), 5); + ASSERT_EQ(mesh.num_faces(), 12); + ASSERT_EQ(mesh.num_attributes(), 7); + ASSERT_EQ(mesh.num_points(), 36); + ASSERT_EQ(mesh.NumNamedAttributes(GeometryAttribute::GENERIC), 3); + ASSERT_EQ(mesh.NumNamedAttributes(GeometryAttribute::TEX_COORD), 2); + + // Get mesh element counts. + const int num_faces = mesh.num_faces(); + const int num_corners = 3 * mesh.num_faces(); + const int num_vertices = + mesh.GetNamedAttribute(GeometryAttribute::POSITION)->size(); + + // Check mesh feature ID set at index 0. + { + // Check mesh features. + const MeshFeatures &features = mesh.GetMeshFeatures(MeshFeaturesIndex(0)); + ASSERT_EQ(features.GetLabel(), "faces"); + ASSERT_EQ(features.GetFeatureCount(), num_faces); + ASSERT_EQ(features.GetNullFeatureId(), 100); + ASSERT_EQ(features.GetPropertyTableIndex(), 0); + ASSERT_EQ(features.GetAttributeIndex(), 0); + ASSERT_TRUE(features.GetTextureChannels().empty()); + ASSERT_EQ(features.GetTextureMap().texture(), nullptr); + ASSERT_EQ(features.GetTextureMap().tex_coord_index(), -1); + + // Check per-face Uint8 attribute named _FEATURE_ID_0. + const int att_id = + mesh.GetAttributeIdByMetadataEntry("attribute_name", "_FEATURE_ID_0"); + auto att = mesh.GetAttributeByUniqueId(att_id); + ASSERT_NE(att, nullptr); + ASSERT_EQ(att->attribute_type(), GeometryAttribute::GENERIC); + ASSERT_EQ(att->data_type(), DataType::DT_UINT8); + ASSERT_EQ(att->num_components(), 1); + ASSERT_EQ(att->size(), num_faces); + ASSERT_EQ(att->indices_map_size(), num_corners); + + // Check that the values are all the numbers from 0 to 12. + const std::vector expected_values = + has_draco_compression + ? std::vector{7, 11, 10, 3, 2, 5, 4, 1, 6, 9, 8, 0} + : std::vector{0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11}; + for (int i = 0; i < num_faces; i++) { + uint8_t val; + att->GetValue(AttributeValueIndex(i), &val); + ASSERT_EQ(val, expected_values[i]); + } + + // Check that the corners of each face have a common value. + for (int i = 0; i < num_faces; i++) { + const auto face = mesh.face(FaceIndex(i)); + ASSERT_EQ(*att->GetAddressOfMappedIndex(face[0]), + *att->GetAddressOfMappedIndex(face[1])); + ASSERT_EQ(*att->GetAddressOfMappedIndex(face[0]), + *att->GetAddressOfMappedIndex(face[2])); + } + } + + // Check the 2nd mesh feature ID set at index 1. + { + // Check mesh features. + const MeshFeatures &features = mesh.GetMeshFeatures(MeshFeaturesIndex(1)); + ASSERT_EQ(features.GetLabel(), "vertices"); + ASSERT_EQ(features.GetFeatureCount(), num_vertices); + ASSERT_EQ(features.GetNullFeatureId(), 101); + ASSERT_EQ(features.GetPropertyTableIndex(), 1); + ASSERT_EQ(features.GetAttributeIndex(), 1); + ASSERT_TRUE(features.GetTextureChannels().empty()); + ASSERT_EQ(features.GetTextureMap().texture(), nullptr); + ASSERT_EQ(features.GetTextureMap().tex_coord_index(), -1); + + // Check per-vertex Uint16 attribute named _FEATURE_ID_1. + const int att_id = + mesh.GetAttributeIdByMetadataEntry("attribute_name", "_FEATURE_ID_1"); + auto att = mesh.GetAttributeByUniqueId(att_id); + ASSERT_NE(att, nullptr); + ASSERT_EQ(att->attribute_type(), GeometryAttribute::GENERIC); + ASSERT_EQ(att->data_type(), DataType::DT_UINT16); + ASSERT_EQ(att->num_components(), 1); + ASSERT_EQ(att->size(), num_vertices); + ASSERT_EQ(att->indices_map_size(), num_corners); + + // Check that the values are all the numbers from 0 to 7. + const std::vector expected_values = + has_draco_compression ? std::vector{3, 6, 7, 4, 5, 0, 1, 2} + : std::vector{0, 1, 2, 3, 4, 5, 6, 7}; + for (int i = 0; i < num_vertices; i++) { + uint16_t val; + att->GetValue(AttributeValueIndex(i), &val); + ASSERT_EQ(val, expected_values[i]); + } + + // Check that the corners of a face have unique values. + for (int i = 0; i < num_faces; i++) { + const auto face = mesh.face(FaceIndex(i)); + ASSERT_NE(*att->GetAddressOfMappedIndex(face[0]), + *att->GetAddressOfMappedIndex(face[1])); + ASSERT_NE(*att->GetAddressOfMappedIndex(face[1]), + *att->GetAddressOfMappedIndex(face[2])); + ASSERT_NE(*att->GetAddressOfMappedIndex(face[2]), + *att->GetAddressOfMappedIndex(face[0])); + } + } + + // Check the 3rd mesh feature ID set at index 2. + { + // Check mesh features. + const MeshFeatures &features = mesh.GetMeshFeatures(MeshFeaturesIndex(2)); + ASSERT_TRUE(features.GetLabel().empty()); + ASSERT_EQ(features.GetFeatureCount(), num_corners); + ASSERT_EQ(features.GetNullFeatureId(), -1); + ASSERT_EQ(features.GetPropertyTableIndex(), -1); + ASSERT_EQ(features.GetAttributeIndex(), 2); + ASSERT_TRUE(features.GetTextureChannels().empty()); + ASSERT_EQ(features.GetTextureMap().texture(), nullptr); + ASSERT_EQ(features.GetTextureMap().tex_coord_index(), -1); + + // Check per-corner Float attribute named _FEATURE_ID_2. + const int att_id = + mesh.GetAttributeIdByMetadataEntry("attribute_name", "_FEATURE_ID_2"); + auto att = mesh.GetAttributeByUniqueId(att_id); + ASSERT_NE(att, nullptr); + ASSERT_EQ(att->attribute_type(), GeometryAttribute::GENERIC); + ASSERT_EQ(att->data_type(), DataType::DT_FLOAT32); + ASSERT_EQ(att->num_components(), 1); + ASSERT_EQ(att->size(), num_corners); + ASSERT_EQ(att->indices_map_size(), 0); + ASSERT_TRUE(att->is_mapping_identity()); + + // Check that the values are from 0 to 35. + const std::vector expected_values = + has_draco_compression + ? std::vector{23, 21, 22, 33, 34, 35, 31, 32, 30, 9, 10, 11, + 7, 8, 6, 15, 16, 17, 14, 12, 13, 5, 3, 4, + 19, 20, 18, 27, 28, 29, 26, 24, 25, 1, 2, 0} + : std::vector{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}; + for (int i = 0; i < num_corners; i++) { + float val; + att->GetValue(AttributeValueIndex(i), &val); + ASSERT_EQ(val, expected_values[i]); + } + + // Check that the corners have unique values. + for (int i = 0; i < num_faces; i++) { + const auto face = mesh.face(FaceIndex(i)); + float v0, v1, v2; + att->GetMappedValue(face[0], &v0); + att->GetMappedValue(face[1], &v1); + att->GetMappedValue(face[2], &v2); + ASSERT_EQ(v0, expected_values[3 * i + 0]); + ASSERT_EQ(v1, expected_values[3 * i + 1]); + ASSERT_EQ(v2, expected_values[3 * i + 2]); + } + } + + // Check mesh feature ID set at index 3. + { + // Check mesh features. + const MeshFeatures &features = mesh.GetMeshFeatures(MeshFeaturesIndex(3)); + ASSERT_TRUE(features.GetLabel().empty()); + ASSERT_EQ(features.GetFeatureCount(), 6); + ASSERT_EQ(features.GetNullFeatureId(), -1); + ASSERT_EQ(features.GetPropertyTableIndex(), -1); + ASSERT_EQ(features.GetAttributeIndex(), -1); + } + + // Check mesh feature ID set at index 4. + { + // Check mesh features. + const MeshFeatures &features = mesh.GetMeshFeatures(MeshFeaturesIndex(4)); + ASSERT_EQ(features.GetLabel(), "water"); + ASSERT_EQ(features.GetFeatureCount(), 2); + ASSERT_EQ(features.GetNullFeatureId(), -1); + ASSERT_EQ(features.GetPropertyTableIndex(), -1); + ASSERT_EQ(features.GetAttributeIndex(), -1); + } +} + +void GltfTestHelper::CheckBoxMetaStructuralMetadata( + const StructuralMetadata &structural_metadata) { + // Check property table schema. + { + const PropertyTable::Schema &schema = + structural_metadata.GetPropertyTableSchema(); + ASSERT_FALSE(schema.Empty()); + const PropertyTable::Schema::Object &json = schema.json; + ASSERT_EQ(json.GetObjects().size(), 3); + ASSERT_EQ(json.GetObjects()[0].GetName(), "classes"); + ASSERT_EQ(json.GetObjects()[0].GetObjects().size(), 1); + ASSERT_EQ(json.GetObjects()[0].GetObjects()[0].GetName(), "planet"); + ASSERT_EQ(json.GetObjects()[0].GetObjects()[0].GetObjects().size(), 1); + + const auto &properties = + json.GetObjects()[0].GetObjects()[0].GetObjects()[0]; + ASSERT_EQ(properties.GetName(), "properties"); + ASSERT_EQ(properties.GetObjects().size(), 3); + + const auto &color = properties.GetObjects()[0]; + ASSERT_EQ(color.GetName(), "color"); + ASSERT_EQ(color.GetObjects().size(), 4); + ASSERT_EQ(color.GetObjects()[0].GetName(), "componentType"); + ASSERT_EQ(color.GetObjects()[1].GetName(), "description"); + ASSERT_EQ(color.GetObjects()[2].GetName(), "required"); + ASSERT_EQ(color.GetObjects()[3].GetName(), "type"); + ASSERT_EQ(color.GetObjects()[0].GetString(), "UINT8"); + ASSERT_EQ(color.GetObjects()[1].GetString(), "The RGB color."); + ASSERT_TRUE(color.GetObjects()[2].GetBoolean()); + ASSERT_EQ(color.GetObjects()[3].GetString(), "VEC3"); + + const auto &name = properties.GetObjects()[1]; + ASSERT_EQ(name.GetName(), "name"); + ASSERT_EQ(name.GetObjects().size(), 3); + ASSERT_EQ(name.GetObjects()[0].GetName(), "description"); + ASSERT_EQ(name.GetObjects()[1].GetName(), "required"); + ASSERT_EQ(name.GetObjects()[2].GetName(), "type"); + ASSERT_EQ(name.GetObjects()[0].GetString(), "The name."); + ASSERT_TRUE(name.GetObjects()[1].GetBoolean()); + ASSERT_EQ(name.GetObjects()[2].GetString(), "STRING"); + + const auto &sequence = properties.GetObjects()[2]; + ASSERT_EQ(sequence.GetName(), "sequence"); + ASSERT_EQ(sequence.GetObjects().size(), 3); + ASSERT_EQ(sequence.GetObjects()[0].GetName(), "description"); + ASSERT_EQ(sequence.GetObjects()[1].GetName(), "required"); + ASSERT_EQ(sequence.GetObjects()[2].GetName(), "type"); + ASSERT_EQ(sequence.GetObjects()[0].GetString(), "The number sequence."); + ASSERT_FALSE(sequence.GetObjects()[1].GetBoolean()); + ASSERT_EQ(sequence.GetObjects()[2].GetString(), "SCALAR"); + + ASSERT_EQ(json.GetObjects()[1].GetName(), "enums"); + const auto &classifications = json.GetObjects()[1].GetObjects()[0]; + ASSERT_EQ(classifications.GetName(), "classifications"); + ASSERT_EQ(classifications.GetObjects()[0].GetName(), "description"); + ASSERT_EQ(classifications.GetObjects()[0].GetString(), + "Classifications of planets."); + ASSERT_EQ(classifications.GetObjects()[1].GetName(), "name"); + ASSERT_EQ(classifications.GetObjects()[1].GetString(), "classifications"); + ASSERT_EQ(classifications.GetObjects()[2].GetName(), "values"); + const auto &values = classifications.GetObjects()[2]; + ASSERT_EQ(values.GetArray()[0].GetObjects()[0].GetName(), "name"); + ASSERT_EQ(values.GetArray()[1].GetObjects()[0].GetName(), "name"); + ASSERT_EQ(values.GetArray()[2].GetObjects()[0].GetName(), "name"); + ASSERT_EQ(values.GetArray()[3].GetObjects()[0].GetName(), "name"); + ASSERT_EQ(values.GetArray()[4].GetObjects()[0].GetName(), "name"); + ASSERT_EQ(values.GetArray()[0].GetObjects()[0].GetString(), "Unspecified"); + ASSERT_EQ(values.GetArray()[1].GetObjects()[0].GetString(), "Gas Giant"); + ASSERT_EQ(values.GetArray()[2].GetObjects()[0].GetString(), "Waterworld"); + ASSERT_EQ(values.GetArray()[3].GetObjects()[0].GetString(), "Agriworld"); + ASSERT_EQ(values.GetArray()[4].GetObjects()[0].GetString(), "Ordnance"); + ASSERT_EQ(values.GetArray()[0].GetObjects()[1].GetName(), "value"); + ASSERT_EQ(values.GetArray()[1].GetObjects()[1].GetName(), "value"); + ASSERT_EQ(values.GetArray()[2].GetObjects()[1].GetName(), "value"); + ASSERT_EQ(values.GetArray()[3].GetObjects()[1].GetName(), "value"); + ASSERT_EQ(values.GetArray()[4].GetObjects()[1].GetName(), "value"); + ASSERT_EQ(values.GetArray()[0].GetObjects()[1].GetInteger(), 0); + ASSERT_EQ(values.GetArray()[1].GetObjects()[1].GetInteger(), 1); + ASSERT_EQ(values.GetArray()[2].GetObjects()[1].GetInteger(), 2); + ASSERT_EQ(values.GetArray()[3].GetObjects()[1].GetInteger(), 3); + ASSERT_EQ(values.GetArray()[4].GetObjects()[1].GetInteger(), 4); + + ASSERT_EQ(json.GetObjects()[2].GetName(), "id"); + ASSERT_EQ(json.GetObjects()[2].GetString(), "galaxy"); + } + + // Check property table. + constexpr int kRows = 16; + ASSERT_EQ(structural_metadata.NumPropertyTables(), 1); + const PropertyTable &table = structural_metadata.GetPropertyTable(0); + ASSERT_EQ(table.GetName(), "Galaxy far far away."); + ASSERT_EQ(table.GetClass(), "planet"); + ASSERT_EQ(table.GetCount(), kRows); + ASSERT_EQ(table.NumProperties(), 3); + + // Check property that describes RGB color components of the planet class. + { + const PropertyTable::Property &property = table.GetProperty(0); + ASSERT_EQ(property.GetName(), "color"); + + ASSERT_EQ(property.GetData().data.size(), kRows * 3); // RGB components. + ASSERT_EQ(property.GetData().target, 34962); // ARRAY_BUFFER. + + ASSERT_EQ(property.GetData().data[0], 94); // Tatooine [94, 94, 194]. + ASSERT_EQ(property.GetData().data[1], 94); + ASSERT_EQ(property.GetData().data[2], 194); + ASSERT_EQ(property.GetData().data[18], 190); // Corellia [190, 92, 108]. + ASSERT_EQ(property.GetData().data[19], 92); + ASSERT_EQ(property.GetData().data[20], 108); + ASSERT_EQ(property.GetData().data[45], 0); // UNLABELED [0, 0, 0]. + ASSERT_EQ(property.GetData().data[46], 0); + ASSERT_EQ(property.GetData().data[47], 0); + + ASSERT_TRUE(property.GetArrayOffsets().type.empty()); + ASSERT_TRUE(property.GetArrayOffsets().data.data.empty()); + ASSERT_EQ(property.GetArrayOffsets().data.target, 0); + ASSERT_TRUE(property.GetStringOffsets().type.empty()); + ASSERT_TRUE(property.GetStringOffsets().data.data.empty()); + ASSERT_EQ(property.GetStringOffsets().data.target, 0); + } + + // Check property that describes names of the planet class. + { + const PropertyTable::Property &property = table.GetProperty(1); + ASSERT_EQ(property.GetName(), "name"); + const std::vector &data = property.GetData().data; + const std::vector &offsets = property.GetStringOffsets().data.data; + + ASSERT_EQ(data.size(), 296); // Concatenated label strings. + ASSERT_EQ(property.GetData().target, 34963); // ELEMENT_ARRAY_BUFFER. + + ASSERT_EQ(property.GetStringOffsets().type, "UINT32"); + ASSERT_EQ(offsets.size(), 4 * (kRows + 1)); + ASSERT_EQ(property.GetStringOffsets().data.target, 34963); + + ASSERT_EQ(offsets[0], 0); // Tatooine 0. + ASSERT_EQ(offsets[1], 0); + ASSERT_EQ(offsets[2], 0); + ASSERT_EQ(offsets[3], 0); + ASSERT_EQ(offsets[60], 32); // UNLABELED 287. + ASSERT_EQ(offsets[61], 1); + ASSERT_EQ(offsets[62], 0); + ASSERT_EQ(offsets[63], 0); + ASSERT_EQ(offsets[64], 41); // Beyond UNLABELED 296. + ASSERT_EQ(offsets[65], 1); + ASSERT_EQ(offsets[66], 0); + ASSERT_EQ(offsets[67], 0); + + struct Name { + static std::string Extract(const std::vector &data, + const std::vector &offsets, int row) { + const int b = offsets[4 * (row + 0)] + 255 * offsets[4 * (row + 0) + 1]; + const int e = offsets[4 * (row + 1)] + 255 * offsets[4 * (row + 1) + 1]; + return std::string(data.begin() + b, data.begin() + e); + } + }; + + // Check that the names can be extracted from the data. + ASSERT_EQ(Name::Extract(data, offsets, 0), "named_class:Tatooine"); + ASSERT_EQ(Name::Extract(data, offsets, 6), "named_class:Corellia"); + ASSERT_EQ(Name::Extract(data, offsets, 15), "UNLABELED"); + + ASSERT_TRUE(property.GetArrayOffsets().type.empty()); + ASSERT_TRUE(property.GetArrayOffsets().data.data.empty()); + ASSERT_EQ(property.GetArrayOffsets().data.target, 0); + } + + // Check property that describes number sequence of the planet class. + { + const PropertyTable::Property &property = table.GetProperty(2); + ASSERT_EQ(property.GetName(), "sequence"); + const std::vector &data = property.GetData().data; + const std::vector &offsets = property.GetArrayOffsets().data.data; + + ASSERT_EQ(data.size(), 41 * 4); // Concatenated float arrays. + ASSERT_EQ(property.GetData().target, 34963); // ELEMENT_ARRAY_BUFFER. + + ASSERT_EQ(property.GetArrayOffsets().type, "UINT8"); + ASSERT_EQ(offsets.size(), 20); // kRows + 1 + padding. + ASSERT_EQ(property.GetArrayOffsets().data.target, 34963); + + ASSERT_EQ(offsets[0], 0 * 4); // Tatooine + ASSERT_EQ(offsets[1], 6 * 4); // Corusant + ASSERT_EQ(offsets[6], 16 * 4); // Corellia + ASSERT_EQ(offsets[14], 36 * 4); // Geonosis + ASSERT_EQ(offsets[15], 41 * 4); // UNLABELED (empty array). + ASSERT_EQ(offsets[16], 41 * 4); // Beyond UNLABELED (empty array). + + struct Sequence { + static std::vector Extract(const std::vector &data, + const std::vector &offsets, + int row) { + const int n = (offsets[row + 1] - offsets[row]) / 4; + std::vector result; + result.reserve(n); + for (int i = 0; i < n; ++i) { + const void *const pointer = &data[offsets[row] + 4 * i]; + result.push_back(*static_cast(pointer)); + } + return result; + } + }; + + // Check that the number sequence arrays can be extracted from the data. + ASSERT_EQ( + Sequence::Extract(data, offsets, 0), + (std::vector{0.5f, 1.5f, 2.5f, 3.5f, 4.5f, 5.5f})); // Tatooine + ASSERT_EQ(Sequence::Extract(data, offsets, 1), + (std::vector{6.5f, 7.5f})); // Corusant + ASSERT_EQ( + Sequence::Extract(data, offsets, 14), + (std::vector{36.5f, 37.5f, 38.5f, 39.5f, 40.5f})); // Geonosis + ASSERT_TRUE(Sequence::Extract(data, offsets, 15) + .empty()); // UNLABELED (empty array). + + ASSERT_TRUE(property.GetStringOffsets().type.empty()); + ASSERT_TRUE(property.GetStringOffsets().data.data.empty()); + ASSERT_EQ(property.GetStringOffsets().data.target, 0); + } +} + +#endif // DRACO_TRANSCODER_SUPPORTED + +} // namespace draco diff --git a/src/draco/io/gltf_test_helper.h b/src/draco/io/gltf_test_helper.h new file mode 100644 index 0000000..91aec9b --- /dev/null +++ b/src/draco/io/gltf_test_helper.h @@ -0,0 +1,61 @@ +// Copyright 2022 The Draco Authors. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// +#ifndef DRACO_IO_GLTF_DECODER_TEST_HELPER_H_ +#define DRACO_IO_GLTF_DECODER_TEST_HELPER_H_ + +#include "draco/draco_features.h" + +#ifdef DRACO_TRANSCODER_SUPPORTED +#include "draco/scene/scene.h" + +namespace draco { + +// Helper class for testing Draco glTF encoder and decoder. +class GltfTestHelper { + public: + // Adds various mesh feature ID sets (via attributes and via textures) and + // structural metadata property table and property table schema to the box + // |scene| loaded from the test file testdata/Box/glTF/Box.gltf. + static void AddBoxMetaMeshFeatures(Scene *scene); + static void AddBoxMetaStructuralMetadata(Scene *scene); + + // Checks the box |geometry| (draco::Mesh or draco::Scene) with mesh features + // loaded from one of these test files, with or without Draco compression: + // 1. testdata/BoxMeta/glTF/BoxMeta.gltf + // 2. testdata/BoxMetaDraco/glTF/BoxMetaDraco.gltf + template + static void CheckBoxMetaMeshFeatures(const GeometryT &geometry, + bool has_draco_compression); + + // Checks the box |geometry| (draco::Mesh or draco::Scene) with structural + // metadata that includes property table and property table schema loaded from + // test file testdata/BoxMeta/glTF/BoxMeta.gltf. + template + static void CheckBoxMetaStructuralMetadata(const GeometryT &geometry) { + CheckBoxMetaStructuralMetadata(geometry.GetStructuralMetadata()); + } + + private: + static void CheckBoxMetaMeshFeatures(const Mesh &mesh, + const TextureLibrary &texture_lib, + bool has_draco_compression); + static void CheckBoxMetaStructuralMetadata( + const StructuralMetadata &structural_metadata); +}; + +} // namespace draco + +#endif // DRACO_TRANSCODER_SUPPORTED +#endif // DRACO_IO_GLTF_DECODER_TEST_HELPER_H_ diff --git a/src/draco/io/gltf_utils.cc b/src/draco/io/gltf_utils.cc index bdac2ee..bbe48f3 100644 --- a/src/draco/io/gltf_utils.cc +++ b/src/draco/io/gltf_utils.cc @@ -14,6 +14,9 @@ // #include "draco/io/gltf_utils.h" +#include +#include + #ifdef DRACO_TRANSCODER_SUPPORTED namespace draco { @@ -36,6 +39,22 @@ std::ostream &operator<<(std::ostream &os, const Indent &indent) { return os << indent.indent_; } +std::ostream &operator<<(std::ostream &os, + const JsonWriter::IndentWrapper &indent) { + if (indent.writer.mode_ == JsonWriter::READABLE) { + os << indent.writer.indent_writer_; + } + return os; +} + +std::ostream &operator<<(std::ostream &os, + const JsonWriter::Separator &separator) { + if (separator.writer.mode_ == JsonWriter::READABLE) { + os << " "; + } + return os; +} + void JsonWriter::Reset() { last_type_ = START; o_.clear(); @@ -48,27 +67,27 @@ void JsonWriter::BeginObject(const std::string &name) { FinishPreviousLine(BEGIN); o_ << indent_; if (!name.empty()) { - o_ << "\"" << name << "\": "; + o_ << "\"" << name << "\":" << separator_; } o_ << "{"; - indent_.Increase(); + indent_writer_.Increase(); } void JsonWriter::EndObject() { FinishPreviousLine(END); - indent_.Decrease(); + indent_writer_.Decrease(); o_ << indent_ << "}"; } void JsonWriter::BeginArray(const std::string &name) { FinishPreviousLine(BEGIN); - o_ << indent_ << "\"" << name << "\": ["; - indent_.Increase(); + o_ << indent_ << "\"" << name << "\":" << separator_ << "["; + indent_writer_.Increase(); } void JsonWriter::EndArray() { FinishPreviousLine(END); - indent_.Decrease(); + indent_writer_.Decrease(); o_ << indent_ << "]"; } @@ -80,7 +99,9 @@ void JsonWriter::FinishPreviousLine(OutputType curr_type) { (last_type_ == END && curr_type == VALUE)) { o_ << ","; } - o_ << std::endl; + if (mode_ == READABLE) { + o_ << std::endl; + } } last_type_ = curr_type; } diff --git a/src/draco/io/gltf_utils.h b/src/draco/io/gltf_utils.h index d214aff..680befe 100644 --- a/src/draco/io/gltf_utils.h +++ b/src/draco/io/gltf_utils.h @@ -75,8 +75,11 @@ class Indent { class JsonWriter { public: enum OutputType { START, BEGIN, END, VALUE }; + enum Mode { READABLE, COMPACT }; - JsonWriter() : last_type_(START) {} + JsonWriter() + : last_type_(START), mode_(READABLE), indent_(*this), separator_(*this) {} + void SetMode(Mode mode) { mode_ = mode; } // Clear the stringstream and set last type to START. void Reset(); @@ -108,23 +111,25 @@ class JsonWriter { void OutputValue(const std::string &name, const std::string &value) { FinishPreviousLine(VALUE); - o_ << indent_ << "\"" << name << "\": \"" << value << "\""; + o_ << indent_ << "\"" << name << "\":" << separator_ << "\"" << value + << "\""; } void OutputValue(const std::string &name, const char *value) { FinishPreviousLine(VALUE); - o_ << indent_ << "\"" << name << "\": \"" << value << "\""; + o_ << indent_ << "\"" << name << "\":" << separator_ << "\"" << value + << "\""; } template void OutputValue(const std::string &name, const T &value) { FinishPreviousLine(VALUE); - o_ << indent_ << "\"" << name << "\": " << value; + o_ << indent_ << "\"" << name << "\":" << separator_ << value; } void OutputValue(const std::string &name, const bool &value) { FinishPreviousLine(VALUE); - o_ << indent_ << "\"" << name << "\": " << ToString(value); + o_ << indent_ << "\"" << name << "\":" << separator_ << ToString(value); } // Return the current output and then clear the stringstream. @@ -137,9 +142,27 @@ class JsonWriter { // Returns string representation of a Boolean |value|. static std::string ToString(bool value) { return value ? "true" : "false"; } + // Helper struct used for conditional indent writing to the output stream. + struct IndentWrapper { + explicit IndentWrapper(const JsonWriter &writer) : writer(writer) {} + const JsonWriter &writer; + }; + friend std::ostream &operator<<(std::ostream &os, + const IndentWrapper &indent); + + // Helper struct used for conditional separator writing to the output stream. + struct Separator { + explicit Separator(const JsonWriter &writer) : writer(writer) {} + const JsonWriter &writer; + }; + friend std::ostream &operator<<(std::ostream &os, const Separator &separator); + std::stringstream o_; - Indent indent_; + Indent indent_writer_; OutputType last_type_; + Mode mode_; + IndentWrapper indent_; + Separator separator_; }; } // namespace draco diff --git a/src/draco/io/gltf_utils_test.cc b/src/draco/io/gltf_utils_test.cc index d3460aa..f26dcd8 100644 --- a/src/draco/io/gltf_utils_test.cc +++ b/src/draco/io/gltf_utils_test.cc @@ -241,6 +241,85 @@ TEST_F(GltfUtilsTest, TestGltfValues) { CompareGolden(&json_writer, "0.10000000149011612,\n1"); } +TEST_F(GltfUtilsTest, TestObjectsCompact) { + JsonWriter json_writer; + json_writer.SetMode(JsonWriter::COMPACT); + json_writer.BeginObject(); + json_writer.EndObject(); + CompareGolden(&json_writer, "{}"); + + json_writer.Reset(); + json_writer.BeginObject("object"); + json_writer.EndObject(); + CompareGolden(&json_writer, "\"object\":{}"); + + json_writer.Reset(); + json_writer.BeginObject("object"); + json_writer.OutputValue(0); + json_writer.EndObject(); + CompareGolden(&json_writer, "\"object\":{0}"); + + json_writer.Reset(); + json_writer.BeginObject("object"); + json_writer.OutputValue(0); + json_writer.OutputValue(1); + json_writer.OutputValue(2); + json_writer.OutputValue(3); + json_writer.EndObject(); + CompareGolden(&json_writer, "\"object\":{0,1,2,3}"); + + json_writer.Reset(); + json_writer.BeginObject("object1"); + json_writer.EndObject(); + json_writer.BeginObject("object2"); + json_writer.EndObject(); + CompareGolden(&json_writer, "\"object1\":{},\"object2\":{}"); + + json_writer.Reset(); + json_writer.BeginObject("object1"); + json_writer.BeginObject("object2"); + json_writer.EndObject(); + json_writer.EndObject(); + CompareGolden(&json_writer, "\"object1\":{\"object2\":{}}"); +} + +TEST_F(GltfUtilsTest, TestArraysCompact) { + JsonWriter json_writer; + json_writer.SetMode(JsonWriter::COMPACT); + json_writer.BeginArray("array"); + json_writer.EndArray(); + CompareGolden(&json_writer, "\"array\":[]"); + + json_writer.Reset(); + json_writer.BeginArray("array"); + json_writer.OutputValue(0); + json_writer.EndArray(); + CompareGolden(&json_writer, "\"array\":[0]"); + + json_writer.Reset(); + json_writer.BeginArray("array"); + json_writer.OutputValue(0); + json_writer.OutputValue(1); + json_writer.OutputValue(2); + json_writer.OutputValue(3); + json_writer.EndArray(); + CompareGolden(&json_writer, "\"array\":[0,1,2,3]"); + + json_writer.Reset(); + json_writer.BeginArray("array1"); + json_writer.EndArray(); + json_writer.BeginArray("array2"); + json_writer.EndArray(); + CompareGolden(&json_writer, "\"array1\":[],\"array2\":[]"); + + json_writer.Reset(); + json_writer.BeginArray("array1"); + json_writer.BeginArray("array2"); + json_writer.EndArray(); + json_writer.EndArray(); + CompareGolden(&json_writer, "\"array1\":[\"array2\":[]]"); +} + } // namespace draco #endif // DRACO_TRANSCODER_SUPPORTED diff --git a/src/draco/io/mesh_io.cc b/src/draco/io/mesh_io.cc index a9457cb..4975d92 100644 --- a/src/draco/io/mesh_io.cc +++ b/src/draco/io/mesh_io.cc @@ -65,6 +65,7 @@ StatusOr> ReadMeshFromFile( // Wavefront OBJ file format. ObjDecoder obj_decoder; obj_decoder.set_use_metadata(options.GetBool("use_metadata", false)); + obj_decoder.set_preserve_polygons(options.GetBool("preserve_polygons")); const Status obj_status = obj_decoder.DecodeFromFile(file_name, mesh.get(), mesh_files); if (!obj_status.ok()) { diff --git a/src/draco/io/obj_encoder.cc b/src/draco/io/obj_encoder.cc index 823db5b..979ccff 100644 --- a/src/draco/io/obj_encoder.cc +++ b/src/draco/io/obj_encoder.cc @@ -165,7 +165,8 @@ bool ObjEncoder::GetSubObjects() { } sub_obj_att_ = in_point_cloud_->GetAttributeByUniqueId( sub_obj_metadata->att_unique_id()); - if (sub_obj_att_ == nullptr || sub_obj_att_->size() == 0) { + if (sub_obj_att_ == nullptr || sub_obj_att_->size() == 0 || + sub_obj_att_->num_components() != 1) { return false; } return true; diff --git a/src/draco/io/ply_encoder.cc b/src/draco/io/ply_encoder.cc index 2f6a1a2..0fe611f 100644 --- a/src/draco/io/ply_encoder.cc +++ b/src/draco/io/ply_encoder.cc @@ -143,7 +143,8 @@ bool PlyEncoder::EncodeInternal() { buffer()->Encode(header_str.data(), header_str.length()); // Store point attributes. - for (PointIndex v(0); v < in_point_cloud_->num_points(); ++v) { + const int num_points = in_point_cloud_->num_points(); + for (PointIndex v(0); v < num_points; ++v) { const auto *const pos_att = in_point_cloud_->attribute(pos_att_id); buffer()->Encode(pos_att->GetAddress(pos_att->mapped_index(v)), pos_att->byte_stride()); @@ -166,9 +167,13 @@ bool PlyEncoder::EncodeInternal() { buffer()->Encode(static_cast(3)); const auto &f = in_mesh_->face(i); - buffer()->Encode(f[0]); - buffer()->Encode(f[1]); - buffer()->Encode(f[2]); + for (int c = 0; c < 3; ++c) { + if (f[c] >= num_points) { + // Invalid point stored on the |in_mesh_| face. + return false; + } + buffer()->Encode(f[c]); + } if (tex_coord_att_id >= 0) { // Two coordinates for every corner -> 6. diff --git a/src/draco/io/texture_io_test.cc b/src/draco/io/texture_io_test.cc index 8b29f82..13f36e4 100644 --- a/src/draco/io/texture_io_test.cc +++ b/src/draco/io/texture_io_test.cc @@ -15,6 +15,12 @@ #include "draco/io/texture_io.h" #ifdef DRACO_TRANSCODER_SUPPORTED +#include +#include +#include +#include +#include + #include "draco/core/draco_test_utils.h" #include "draco/io/file_utils.h" diff --git a/src/draco/mesh/mesh.cc b/src/draco/mesh/mesh.cc index 1bfe10d..857e8aa 100644 --- a/src/draco/mesh/mesh.cc +++ b/src/draco/mesh/mesh.cc @@ -15,6 +15,10 @@ #include "draco/mesh/mesh.h" #include +#include +#include +#include +#include namespace draco { @@ -37,6 +41,32 @@ void Mesh::Copy(const Mesh &src) { material_library_.Copy(src.material_library_); compression_enabled_ = src.compression_enabled_; compression_options_ = src.compression_options_; + + // Copy mesh feature ID sets. + mesh_features_.clear(); + for (MeshFeaturesIndex i(0); i < src.NumMeshFeatures(); i++) { + std::unique_ptr mesh_features(new MeshFeatures()); + mesh_features->Copy(src.GetMeshFeatures(i)); + AddMeshFeatures(std::move(mesh_features)); + } + mesh_features_material_mask_ = src.mesh_features_material_mask_; + + // Copy non-material textures. + non_material_texture_library_.Copy(src.non_material_texture_library_); + + // Update pointers to non-material textures in mesh feature ID sets. + if (non_material_texture_library_.NumTextures() != 0) { + const auto texture_to_index_map = + src.non_material_texture_library_.ComputeTextureToIndexMap(); + for (MeshFeaturesIndex j(0); j < NumMeshFeatures(); ++j) { + Mesh::UpdateMeshFeaturesTexturePointer(texture_to_index_map, + &non_material_texture_library_, + &GetMeshFeatures(j)); + } + } + + // Copy structural metadata. + structural_metadata_.Copy(src.structural_metadata_); } namespace { @@ -247,7 +277,9 @@ void Mesh::RemoveIsolatedPoints() { set_num_points(num_used_points); } -void Mesh::RemoveUnusedMaterials() { +void Mesh::RemoveUnusedMaterials() { RemoveUnusedMaterials(true); } + +void Mesh::RemoveUnusedMaterials(bool remove_unused_material_indices) { const int mat_att_index = GetNamedAttributeId(GeometryAttribute::MATERIAL); if (mat_att_index == -1) { // Remove all materials except for the first one. @@ -261,42 +293,84 @@ void Mesh::RemoveUnusedMaterials() { // Deduplicate attribute values in the material attribute to ensure that one // attribute value index corresponds to one unique material index. + // Note that this does not remove unused material indices. mat_att->DeduplicateValues(*mat_att); // Gather all material indices that are referenced by faces of the mesh. const int num_materials = GetMaterialLibrary().NumMaterials(); std::vector is_material_used(num_materials, false); int num_used_materials = 0; - for (FaceIndex fi(0); fi < num_faces(); ++fi) { + + // Helper function that updates |is_material_used| for the processed mesh. + auto update_used_materials = [&is_material_used, &num_used_materials, mat_att, + num_materials](PointIndex pi) { uint32_t mat_index = 0; - mat_att->GetMappedValue(faces_[fi][0], &mat_index); + mat_att->GetMappedValue(pi, &mat_index); if (mat_index < num_materials) { if (!is_material_used[mat_index]) { is_material_used[mat_index] = true; num_used_materials++; } } + }; + + if (num_faces() > 0) { + for (FaceIndex fi(0); fi < num_faces(); ++fi) { + update_used_materials(faces_[fi][0]); + } + } else { + // Handle the mesh as a point cloud and check materials used by points. + for (PointIndex pi(0); pi < num_points(); ++pi) { + update_used_materials(pi); + } } + + // Check if any of the (unused) materials is used by mesh features. If so, + // user should remove unused mesh features first. + for (MeshFeaturesIndex mfi(0); mfi < NumMeshFeatures(); ++mfi) { + for (int mask_index = 0; mask_index < NumMeshFeaturesMaterialMasks(mfi); + ++mask_index) { + const int mat_index = GetMeshFeaturesMaterialMask(mfi, mask_index); + if (mat_index < num_materials && !is_material_used[mat_index]) { + is_material_used[mat_index] = true; + num_used_materials++; + } + } + } + if (num_used_materials == num_materials) { return; // All materials are used, don't do anything. } - // Remove unused materials from the material library. + // Remove unused materials from the material library or replace them with + // default materials if we do not remove unused material indices. for (int mi = num_materials - 1; mi >= 0; --mi) { - if (!is_material_used[mi]) { - GetMaterialLibrary().RemoveMaterial(mi); + if (!is_material_used[mi] && mi < GetMaterialLibrary().NumMaterials()) { + if (remove_unused_material_indices) { + GetMaterialLibrary().RemoveMaterial(mi); + } else { + GetMaterialLibrary().MutableMaterial(mi)->Clear(); + } } } GetMaterialLibrary().RemoveUnusedTextures(); + if (!remove_unused_material_indices) { + // All the code below handles updating of material indices. Since we do not + // want to update them, we can return early. + return; + } + // Compute map between old and new material indices. int new_material_index = 0; IndexTypeVector old_to_new_material_attribute_value_index_map(mat_att->size(), -1); + std::vector old_to_new_material_value_map(num_materials, -1); for (AttributeValueIndex avi(0); avi < mat_att->size(); ++avi) { uint32_t mat_index = 0; mat_att->GetValue(avi, &mat_index); if (mat_index < num_materials && is_material_used[mat_index]) { + old_to_new_material_value_map[mat_index] = new_material_index; old_to_new_material_attribute_value_index_map[avi] = new_material_index++; } } @@ -317,6 +391,64 @@ void Mesh::RemoveUnusedMaterials() { pi, AttributeValueIndex( old_to_new_material_attribute_value_index_map[old_avi])); } + + // Update material indices on mesh features. + for (MeshFeaturesIndex mfi(0); mfi < NumMeshFeatures(); ++mfi) { + for (int mask_index = 0; mask_index < NumMeshFeaturesMaterialMasks(mfi); + ++mask_index) { + const int old_mat_index = GetMeshFeaturesMaterialMask(mfi, mask_index); + if (old_mat_index < num_materials && is_material_used[old_mat_index]) { + mesh_features_material_mask_[mfi][mask_index] = + old_to_new_material_value_map[old_mat_index]; + } + } + } +} + +void Mesh::UpdateMeshFeaturesTexturePointer( + const std::unordered_map &texture_to_index_map, + TextureLibrary *texture_library, MeshFeatures *mesh_features) { + TextureMap &texture_map = mesh_features->GetTextureMap(); + if (texture_map.texture() == nullptr) { + return; + } + const auto it = texture_to_index_map.find(texture_map.texture()); + DRACO_DCHECK(it != texture_to_index_map.end()); + const int texture_index = it->second; + DRACO_DCHECK(texture_index < texture_library->NumTextures()); + texture_map.SetTexture(texture_library->GetTexture(texture_index)); +} + +void Mesh::CopyMeshFeaturesForMaterial(const Mesh &source_mesh, + Mesh *target_mesh, int material_index) { + for (MeshFeaturesIndex mfi(0); mfi < source_mesh.NumMeshFeatures(); ++mfi) { + // Mesh features is used if it doesn't have any material mask or if one + // of the material masks matches |material_index|. + bool is_used = source_mesh.NumMeshFeaturesMaterialMasks(mfi) == 0; + for (int mask_index = 0; + !is_used && mask_index < source_mesh.NumMeshFeaturesMaterialMasks(mfi); + ++mask_index) { + if (source_mesh.GetMeshFeaturesMaterialMask(mfi, mask_index) == + material_index) { + is_used = true; + } + } + if (is_used) { + // Copy over the mesh features to the target mesh. Note that texture + // pointers are not updated at this step. + std::unique_ptr new_mf(new MeshFeatures()); + new_mf->Copy(source_mesh.GetMeshFeatures(mfi)); + target_mesh->AddMeshFeatures(std::move(new_mf)); + } + } +} + +int32_t Mesh::AddPerFaceAttribute(std::unique_ptr att) { + IndexTypeVector corner_map(num_faces() * 3); + for (CornerIndex ci(0); ci < num_faces() * 3; ++ci) { + corner_map[ci] = AttributeValueIndex(ci.value() / 3); + } + return AddAttributeWithConnectivity(std::move(att), corner_map); } #endif // DRACO_TRANSCODER_SUPPORTED diff --git a/src/draco/mesh/mesh.h b/src/draco/mesh/mesh.h index 9798ca7..fc5dd64 100644 --- a/src/draco/mesh/mesh.h +++ b/src/draco/mesh/mesh.h @@ -16,6 +16,7 @@ #define DRACO_MESH_MESH_H_ #include +#include #include "draco/attributes/geometry_indices.h" #include "draco/core/hash_utils.h" @@ -25,6 +26,9 @@ #ifdef DRACO_TRANSCODER_SUPPORTED #include "draco/compression/draco_compression_options.h" #include "draco/material/material_library.h" +#include "draco/mesh/mesh_features.h" +#include "draco/mesh/mesh_indices.h" +#include "draco/metadata/structural_metadata.h" #endif #include "draco/point_cloud/point_cloud.h" @@ -119,6 +123,11 @@ class Mesh : public PointCloud { void RemoveIsolatedPoints(); #endif + // Adds a point attribute |att| to the mesh and returns the index of the + // newly inserted attribute. Attribute values are mapped 1:1 to face indices. + // Returns -1 in case of error. + int32_t AddPerFaceAttribute(std::unique_ptr att); + MeshAttributeElementType GetAttributeElementType(int att_id) const { return attribute_data_[att_id].element_type; } @@ -154,7 +163,12 @@ class Mesh : public PointCloud { MaterialLibrary &GetMaterialLibrary() { return material_library_; } // Removes all materials that are not referenced by any face of the mesh. + // Optional argument |remove_unused_material_indices| can be used to control + // whether unusued material indices are removed as well (default = true). + // If material indices are not removed, the unused material indices will + // point to empty (default) materials. void RemoveUnusedMaterials(); + void RemoveUnusedMaterials(bool remove_unused_material_indices); // Enables or disables Draco geometry compression for this mesh. void SetCompressionEnabled(bool enabled) { compression_enabled_ = enabled; } @@ -171,7 +185,71 @@ class Mesh : public PointCloud { DracoCompressionOptions &GetCompressionOptions() { return compression_options_; } -#endif + + // Library that contains non-material textures. + const TextureLibrary &GetNonMaterialTextureLibrary() const { + return non_material_texture_library_; + } + TextureLibrary &GetNonMaterialTextureLibrary() { + return non_material_texture_library_; + } + + // Mesh feature ID sets as defined by EXT_mesh_features glTF extension. + MeshFeaturesIndex AddMeshFeatures( + std::unique_ptr mesh_features) { + mesh_features_.push_back(std::move(mesh_features)); + mesh_features_material_mask_.push_back({}); + return MeshFeaturesIndex(mesh_features_.size() - 1); + } + int NumMeshFeatures() const { return mesh_features_.size(); } + const MeshFeatures &GetMeshFeatures(MeshFeaturesIndex index) const { + return *mesh_features_[index]; + } + MeshFeatures &GetMeshFeatures(MeshFeaturesIndex index) { + return *mesh_features_[index]; + } + void RemoveMeshFeatures(MeshFeaturesIndex index) { + mesh_features_.erase(mesh_features_.begin() + index.value()); + mesh_features_material_mask_.erase(mesh_features_material_mask_.begin() + + index.value()); + } + + // Restricts given mesh features to faces mapped to a material with + // |material_index|. Note that single mesh features can be restricted to + // multiple materials. + void AddMeshFeaturesMaterialMask(MeshFeaturesIndex index, + int material_index) { + mesh_features_material_mask_[index].push_back(material_index); + } + + size_t NumMeshFeaturesMaterialMasks(MeshFeaturesIndex index) const { + return mesh_features_material_mask_[index].size(); + } + int GetMeshFeaturesMaterialMask(MeshFeaturesIndex index, + int mask_index) const { + return mesh_features_material_mask_[index][mask_index]; + } + + // Updates mesh features texture pointer to point to a new |texture_library|. + // The current texture pointer is used to determine the texture index in the + // new texture library via a given |texture_to_index_map|. + static void UpdateMeshFeaturesTexturePointer( + const std::unordered_map &texture_to_index_map, + TextureLibrary *texture_library, MeshFeatures *mesh_features); + + // Copies over mesh features from |source_mesh| and stores them in + // |target_mesh| as long as the mesh features material mask is valid for + // given |material_index|. + static void CopyMeshFeaturesForMaterial(const Mesh &source_mesh, + Mesh *target_mesh, + int material_index); + + // Structural metadata. + const StructuralMetadata &GetStructuralMetadata() const { + return structural_metadata_; + } + StructuralMetadata &GetStructuralMetadata() { return structural_metadata_; } +#endif // DRACO_TRANSCODER_SUPPORTED protected: #ifdef DRACO_ATTRIBUTE_INDICES_DEDUPLICATION_SUPPORTED @@ -206,7 +284,29 @@ class Mesh : public PointCloud { // TODO(vytyaz): Store encoded bitstream that this mesh compresses into. bool compression_enabled_; DracoCompressionOptions compression_options_; -#endif + + // Sets of feature IDs as defined by EXT_mesh_features glTF extension. + IndexTypeVector> + mesh_features_; + + // When the Mesh contains multiple materials, |mesh_features_material_mask_| + // can be used to limit specific MeshFeaturesIndex to a vector of material + // indices. If for a given mesh feature index, the material indices are empty, + // the corresponding mesh features are applied to the entire mesh. + IndexTypeVector> + mesh_features_material_mask_; + + // Texture library for storing non-material textures used by this mesh, e.g., + // textures containing mesh feature IDs of EXT_mesh_features glTF extension. + // If the mesh is part of the scene then the textures are stored in the scene. + // Note that mesh features contain pointers to non-material textures. It is + // responsibility of class user to update these pointers when updating the + // textures. See Mesh::Copy() for example. + TextureLibrary non_material_texture_library_; + + // Structural metadata defined by the EXT_structural_metadata glTF extension. + StructuralMetadata structural_metadata_; +#endif // DRACO_TRANSCODER_SUPPORTED friend struct MeshHasher; }; diff --git a/src/draco/mesh/mesh_are_equivalent.cc b/src/draco/mesh/mesh_are_equivalent.cc index b832379..305811f 100644 --- a/src/draco/mesh/mesh_are_equivalent.cc +++ b/src/draco/mesh/mesh_are_equivalent.cc @@ -15,6 +15,9 @@ #include "draco/mesh/mesh_are_equivalent.h" #include +#include + +#include "draco/texture/texture_utils.h" namespace draco { @@ -114,6 +117,55 @@ bool MeshAreEquivalent::operator()(const Mesh &mesh0, const Mesh &mesh1) { // face with respect to lex order. Init(mesh0, mesh1); +#ifdef DRACO_TRANSCODER_SUPPORTED + // Compare geometry compression settings. + if (mesh0.IsCompressionEnabled() != mesh1.IsCompressionEnabled()) { + return false; + } + if (mesh0.GetCompressionOptions() != mesh1.GetCompressionOptions()) { + return false; + } + + // Compare non-material texture library sizes. + if (mesh0.GetNonMaterialTextureLibrary().NumTextures() != + mesh1.GetNonMaterialTextureLibrary().NumTextures()) { + return false; + } + + // Compare mesh feature ID sets. + if (mesh0.NumMeshFeatures() != mesh1.NumMeshFeatures()) { + return false; + } + for (MeshFeaturesIndex i(0); i < mesh0.NumMeshFeatures(); ++i) { + const MeshFeatures &features0 = mesh0.GetMeshFeatures(i); + const MeshFeatures &features1 = mesh1.GetMeshFeatures(i); + if (features0.GetAttributeIndex() != features1.GetAttributeIndex()) { + return false; + } + if (features0.GetFeatureCount() != features1.GetFeatureCount()) { + return false; + } + if (features0.GetLabel() != features1.GetLabel()) { + return false; + } + if (features0.GetNullFeatureId() != features1.GetNullFeatureId()) { + return false; + } + if (features0.GetTextureChannels() != features1.GetTextureChannels()) { + return false; + } + if (features0.GetPropertyTableIndex() != + features1.GetPropertyTableIndex()) { + return false; + } + const TextureMap &map0 = features0.GetTextureMap(); + const TextureMap &map1 = features1.GetTextureMap(); + if (map0.tex_coord_index() != map1.tex_coord_index()) { + return false; + } + } +#endif // DRACO_TRANSCODER_SUPPORTED + // Check for every attribute that is valid that every corner is identical. typedef GeometryAttribute::Type AttributeType; const int att_max = AttributeType::NAMED_ATTRIBUTES_COUNT; diff --git a/src/draco/mesh/mesh_are_equivalent_test.cc b/src/draco/mesh/mesh_are_equivalent_test.cc index 74db3f7..94d8c9c 100644 --- a/src/draco/mesh/mesh_are_equivalent_test.cc +++ b/src/draco/mesh/mesh_are_equivalent_test.cc @@ -15,6 +15,7 @@ #include "draco/mesh/mesh_are_equivalent.h" #include +#include #include "draco/core/draco_test_base.h" #include "draco/core/draco_test_utils.h" @@ -30,6 +31,14 @@ TEST_F(MeshAreEquivalentTest, TestOnIndenticalMesh) { const std::string file_name = "test_nm.obj"; const std::unique_ptr mesh(ReadMeshFromTestFile(file_name)); ASSERT_NE(mesh, nullptr) << "Failed to load test model." << file_name; + +#ifdef DRACO_TRANSCODER_SUPPORTED + // Add mesh feature ID set to the mesh. + std::unique_ptr mesh_features(new MeshFeatures()); + mesh->AddMeshFeatures(std::move(mesh_features)); +#endif + + // Check that mesh is equivalent to itself. MeshAreEquivalent equiv; ASSERT_TRUE(equiv(*mesh, *mesh)); } @@ -95,4 +104,32 @@ TEST_F(MeshAreEquivalentTest, TestOnBigMesh) { ASSERT_TRUE(equiv(*mesh0, *mesh1)); } +#ifdef DRACO_TRANSCODER_SUPPORTED + +TEST_F(MeshAreEquivalentTest, TestMeshFeatures) { + const std::string file_name = "test_nm.obj"; + const std::unique_ptr mesh0(ReadMeshFromTestFile(file_name)); + const std::unique_ptr mesh1(ReadMeshFromTestFile(file_name)); + ASSERT_NE(mesh0, nullptr); + ASSERT_NE(mesh1, nullptr); + + // Add identical mesh feature ID sets to meshes. + mesh0->AddMeshFeatures(std::unique_ptr(new MeshFeatures())); + mesh1->AddMeshFeatures(std::unique_ptr(new MeshFeatures())); + + // Empty feature sets should match. + MeshAreEquivalent equiv; + ASSERT_TRUE(equiv(*mesh0, *mesh1)); + + // Make mesh features different and check that the meshes are not equivalent. + mesh0->GetMeshFeatures(MeshFeaturesIndex(0)).SetFeatureCount(5); + mesh1->GetMeshFeatures(MeshFeaturesIndex(0)).SetFeatureCount(6); + ASSERT_FALSE(equiv(*mesh0, *mesh1)); + + // Make mesh features identical and check that the meshes are equivalent. + mesh0->GetMeshFeatures(MeshFeaturesIndex(0)).SetFeatureCount(1); + mesh1->GetMeshFeatures(MeshFeaturesIndex(0)).SetFeatureCount(1); + ASSERT_TRUE(equiv(*mesh0, *mesh1)); +} +#endif // DRACO_TRANSCODER_SUPPORTED } // namespace draco diff --git a/src/draco/mesh/mesh_attribute_corner_table.cc b/src/draco/mesh/mesh_attribute_corner_table.cc index 28b68d5..54801ce 100644 --- a/src/draco/mesh/mesh_attribute_corner_table.cc +++ b/src/draco/mesh/mesh_attribute_corner_table.cc @@ -126,18 +126,18 @@ void MeshAttributeCornerTable::AddSeamEdge(CornerIndex c) { } } -void MeshAttributeCornerTable::RecomputeVertices(const Mesh *mesh, +bool MeshAttributeCornerTable::RecomputeVertices(const Mesh *mesh, const PointAttribute *att) { DRACO_DCHECK(GetValenceCache().IsCacheEmpty()); if (mesh != nullptr && att != nullptr) { - RecomputeVerticesInternal(mesh, att); + return RecomputeVerticesInternal(mesh, att); } else { - RecomputeVerticesInternal(nullptr, nullptr); + return RecomputeVerticesInternal(nullptr, nullptr); } } template -void MeshAttributeCornerTable::RecomputeVerticesInternal( +bool MeshAttributeCornerTable::RecomputeVerticesInternal( const Mesh *mesh, const PointAttribute *att) { DRACO_DCHECK(GetValenceCache().IsCacheEmpty()); vertex_to_attribute_entry_id_map_.clear(); @@ -167,6 +167,11 @@ void MeshAttributeCornerTable::RecomputeVerticesInternal( while (act_c != kInvalidCornerIndex) { first_c = act_c; act_c = SwingLeft(act_c); + if (act_c == c) { + // We reached the initial corner which shouldn't happen when we swing + // left from |c|. + return false; + } } } corner_to_vertex_map_[first_c.value()] = VertexIndex(first_vert_id.value()); @@ -189,6 +194,7 @@ void MeshAttributeCornerTable::RecomputeVerticesInternal( act_c = corner_table_->SwingRight(act_c); } } + return true; } int MeshAttributeCornerTable::Valence(VertexIndex v) const { diff --git a/src/draco/mesh/mesh_attribute_corner_table.h b/src/draco/mesh/mesh_attribute_corner_table.h index 6f02453..c60be7c 100644 --- a/src/draco/mesh/mesh_attribute_corner_table.h +++ b/src/draco/mesh/mesh_attribute_corner_table.h @@ -40,7 +40,7 @@ class MeshAttributeCornerTable { // whenever the seam edges are updated). // |mesh| and |att| can be null, in which case mapping between vertices and // attribute value ids is set to identity. - void RecomputeVertices(const Mesh *mesh, const PointAttribute *att); + bool RecomputeVertices(const Mesh *mesh, const PointAttribute *att); inline bool IsCornerOppositeToSeamEdge(CornerIndex corner) const { return is_edge_on_seam_[corner.value()]; @@ -172,7 +172,7 @@ class MeshAttributeCornerTable { private: template - void RecomputeVerticesInternal(const Mesh *mesh, const PointAttribute *att); + bool RecomputeVerticesInternal(const Mesh *mesh, const PointAttribute *att); std::vector is_edge_on_seam_; std::vector is_vertex_on_seam_; diff --git a/src/draco/mesh/mesh_features.cc b/src/draco/mesh/mesh_features.cc new file mode 100644 index 0000000..f859ae4 --- /dev/null +++ b/src/draco/mesh/mesh_features.cc @@ -0,0 +1,98 @@ +// Copyright 2022 The Draco Authors. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// +#include "draco/mesh/mesh_features.h" + +#include +#include + +#ifdef DRACO_TRANSCODER_SUPPORTED + +namespace draco { + +MeshFeatures::MeshFeatures() + : feature_count_(0), + null_feature_id_(-1), + attribute_index_(-1), + property_table_index_(-1) {} + +void MeshFeatures::Copy(const MeshFeatures &src) { + label_ = src.label_; + feature_count_ = src.feature_count_; + null_feature_id_ = src.null_feature_id_; + attribute_index_ = src.attribute_index_; + texture_map_.Copy(src.texture_map_); + texture_channels_ = src.texture_channels_; + property_table_index_ = src.property_table_index_; +} + +void MeshFeatures::SetLabel(const std::string &label) { label_ = label; } + +const std::string &MeshFeatures::GetLabel() const { return label_; } + +void MeshFeatures::SetFeatureCount(int feature_count) { + feature_count_ = feature_count; +} + +int MeshFeatures::GetFeatureCount() const { return feature_count_; } + +void MeshFeatures::SetNullFeatureId(int null_feature_id) { + null_feature_id_ = null_feature_id; +} + +int MeshFeatures::GetNullFeatureId() const { return null_feature_id_; } + +void MeshFeatures::SetAttributeIndex(int attribute_index) { + attribute_index_ = attribute_index; +} + +int MeshFeatures::GetAttributeIndex() const { return attribute_index_; } + +void MeshFeatures::SetTextureMap(const TextureMap &texture_map) { + texture_map_.Copy(texture_map); +} + +void MeshFeatures::SetTextureMap(Texture *texture, int tex_coord_index) { + texture_map_.SetProperties(TextureMap::GENERIC, tex_coord_index); + texture_map_.SetTexture(texture); +} + +const TextureMap &MeshFeatures::GetTextureMap() const { return texture_map_; } + +TextureMap &MeshFeatures::GetTextureMap() { return texture_map_; } + +void MeshFeatures::SetTextureChannels( + const std::vector &texture_channels) { + texture_channels_ = texture_channels; +} + +const std::vector &MeshFeatures::GetTextureChannels() const { + return texture_channels_; +} + +std::vector &MeshFeatures::GetTextureChannels() { + return texture_channels_; +} + +void MeshFeatures::SetPropertyTableIndex(int property_table_index) { + property_table_index_ = property_table_index; +} + +int MeshFeatures::GetPropertyTableIndex() const { + return property_table_index_; +} + +} // namespace draco + +#endif // DRACO_TRANSCODER_SUPPORTED diff --git a/src/draco/mesh/mesh_features.h b/src/draco/mesh/mesh_features.h new file mode 100644 index 0000000..af02401 --- /dev/null +++ b/src/draco/mesh/mesh_features.h @@ -0,0 +1,93 @@ +// Copyright 2022 The Draco Authors. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// +#ifndef DRACO_MESH_MESH_FEATURES_H_ +#define DRACO_MESH_MESH_FEATURES_H_ + +#include "draco/draco_features.h" + +#ifdef DRACO_TRANSCODER_SUPPORTED +#include +#include + +#include "draco/texture/texture_library.h" +#include "draco/texture/texture_map.h" + +namespace draco { + +// Describes a mesh feature ID set according to the EXT_mesh_features glTF +// extension. Feature IDs are either associated with geometry vertices or with +// texture pixels and stored in a geometry attribute or in texture channels, +// respectively. Optionally, the feature ID set may be associated with a +// property table defined in the EXT_structural_metadata glTF extension. +class MeshFeatures { + public: + // Creates an empty feature ID set that is associated neither with vertices, + // nor with texture pixels, nor with property tables. + MeshFeatures(); + + // Copies all data from |src| mesh feature ID set. + void Copy(const MeshFeatures &src); + + // Label assigned to this feature ID set. + void SetLabel(const std::string &label); + const std::string &GetLabel() const; + + // The number of unique features in this feature ID set. + void SetFeatureCount(int feature_count); + int GetFeatureCount() const; + + // Non-negative null feature ID value indicating the absence of an associated + // feature. The value of -1 indicates that the null feature ID is not set. + void SetNullFeatureId(int null_feature_id); + int GetNullFeatureId() const; + + // Index of the feature ID vertex attribute, e.g., 5 for an attribute named + // _FEATURE_ID_5, or -1 if the feature ID is not associated with vertices. + void SetAttributeIndex(int attribute_index); + int GetAttributeIndex() const; + + // Feature ID texture map and texture channels containing feature IDs + // associated with texture pixels. Only used when |attribute_index_| is -1. + // The RGBA channels are numbered from 0 to 3. See the glTF extension + // documentation for reconstruction of feature ID from the channel values. + void SetTextureMap(const TextureMap &texture_map); + void SetTextureMap(Texture *texture, int tex_coord_index); + const TextureMap &GetTextureMap() const; + TextureMap &GetTextureMap(); + void SetTextureChannels(const std::vector &texture_channels); + const std::vector &GetTextureChannels() const; + std::vector &GetTextureChannels(); + + // Non-negative index of the property table this feature ID set is associated + // with. Property tables are defined in the EXT_structural_metadata glTF + // extension. The value of -1 indicates that this feature ID set is not + // associated with any property tables. + void SetPropertyTableIndex(int property_table_index); + int GetPropertyTableIndex() const; + + private: + std::string label_; + int feature_count_; + int null_feature_id_; + int attribute_index_; + TextureMap texture_map_; + std::vector texture_channels_; + int property_table_index_; +}; + +} // namespace draco + +#endif // DRACO_TRANSCODER_SUPPORTED +#endif // DRACO_MESH_MESH_FEATURES_H_ diff --git a/src/draco/mesh/mesh_features_test.cc b/src/draco/mesh/mesh_features_test.cc new file mode 100644 index 0000000..0e67af2 --- /dev/null +++ b/src/draco/mesh/mesh_features_test.cc @@ -0,0 +1,98 @@ +// Copyright 2022 The Draco Authors. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// +#include "draco/mesh/mesh_features.h" + +#include +#include + +#include "draco/core/draco_test_base.h" +#include "draco/core/draco_test_utils.h" +#include "draco/texture/texture_map.h" + +namespace { + +#ifdef DRACO_TRANSCODER_SUPPORTED + +TEST(MeshFeaturesTest, TestDefaults) { + // Test construction of an empty feature ID set. + draco::MeshFeatures mesh_features; + ASSERT_TRUE(mesh_features.GetLabel().empty()); + ASSERT_EQ(mesh_features.GetFeatureCount(), 0); + ASSERT_EQ(mesh_features.GetNullFeatureId(), -1); + ASSERT_EQ(mesh_features.GetAttributeIndex(), -1); + ASSERT_EQ(mesh_features.GetPropertyTableIndex(), -1); + ASSERT_TRUE(mesh_features.GetTextureChannels().empty()); + ASSERT_EQ(mesh_features.GetTextureMap().texture(), nullptr); + ASSERT_EQ(mesh_features.GetTextureMap().type(), draco::TextureMap::GENERIC); +} + +TEST(MeshFeaturesTest, TestSettersAndGetters) { + // Test setter and getter methods of the feature ID set. + draco::MeshFeatures mesh_features; + mesh_features.SetLabel("continent"); + mesh_features.SetFeatureCount(8); + mesh_features.SetNullFeatureId(0); + mesh_features.SetAttributeIndex(2); + mesh_features.SetPropertyTableIndex(10); + std::vector channels = {2, 3}; + mesh_features.SetTextureChannels({2, 3}); + draco::TextureMap texture_map; + texture_map.SetProperties(draco::TextureMap::GENERIC, 1); + std::unique_ptr texture(new draco::Texture()); + texture_map.SetTexture(texture.get()); + mesh_features.SetTextureMap(texture_map); + + // Check that mesh feature set properties can be accessed via getters. + ASSERT_EQ(mesh_features.GetLabel(), "continent"); + ASSERT_EQ(mesh_features.GetFeatureCount(), 8); + ASSERT_EQ(mesh_features.GetNullFeatureId(), 0); + ASSERT_EQ(mesh_features.GetAttributeIndex(), 2); + ASSERT_EQ(mesh_features.GetPropertyTableIndex(), 10); + ASSERT_EQ(mesh_features.GetTextureChannels(), channels); + ASSERT_EQ(mesh_features.GetTextureMap().texture(), texture.get()); + ASSERT_EQ(mesh_features.GetTextureMap().type(), draco::TextureMap::GENERIC); +} + +TEST(MeshFeaturesTest, TestCopy) { + // Test that feature ID set can be copied. + draco::MeshFeatures mesh_features; + mesh_features.SetLabel("continent"); + mesh_features.SetFeatureCount(8); + mesh_features.SetNullFeatureId(0); + mesh_features.SetAttributeIndex(2); + mesh_features.SetPropertyTableIndex(10); + std::vector channels = {2, 3}; + mesh_features.SetTextureChannels({2, 3}); + std::unique_ptr texture(new draco::Texture()); + mesh_features.SetTextureMap(texture.get(), 1); + + // Make a copy. + draco::MeshFeatures copy; + copy.Copy(mesh_features); + + // Check the copy. + ASSERT_EQ(copy.GetLabel(), "continent"); + ASSERT_EQ(copy.GetFeatureCount(), 8); + ASSERT_EQ(copy.GetNullFeatureId(), 0); + ASSERT_EQ(copy.GetAttributeIndex(), 2); + ASSERT_EQ(copy.GetPropertyTableIndex(), 10); + ASSERT_EQ(copy.GetTextureChannels(), channels); + ASSERT_EQ(copy.GetTextureMap().texture(), texture.get()); + ASSERT_EQ(copy.GetTextureMap().type(), draco::TextureMap::GENERIC); +} + +#endif // DRACO_TRANSCODER_SUPPORTED + +} // namespace diff --git a/src/draco/mesh/mesh_indices.h b/src/draco/mesh/mesh_indices.h new file mode 100644 index 0000000..5df28d5 --- /dev/null +++ b/src/draco/mesh/mesh_indices.h @@ -0,0 +1,37 @@ +// Copyright 2022 The Draco Authors. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// +#ifdef DRACO_TRANSCODER_SUPPORTED +#ifndef DRACO_MESH_MESH_INDICES_H_ +#define DRACO_MESH_MESH_INDICES_H_ + +#include + +#include + +#include "draco/core/draco_index_type.h" + +namespace draco { + +// Index of a mesh feature ID set. +DEFINE_NEW_DRACO_INDEX_TYPE(uint32_t, MeshFeaturesIndex) + +// Constants denoting invalid indices. +static constexpr MeshFeaturesIndex kInvalidMeshFeaturesIndex( + std::numeric_limits::max()); + +} // namespace draco + +#endif // DRACO_MESH_MESH_INDICES_H_ +#endif // DRACO_TRANSCODER_SUPPORTED diff --git a/src/draco/mesh/mesh_splitter.cc b/src/draco/mesh/mesh_splitter.cc index 9834685..ac3c466 100644 --- a/src/draco/mesh/mesh_splitter.cc +++ b/src/draco/mesh/mesh_splitter.cc @@ -15,18 +15,73 @@ #include "draco/mesh/mesh_splitter.h" #ifdef DRACO_TRANSCODER_SUPPORTED +#include +#include #include +#include "draco/mesh/mesh_utils.h" +#include "draco/mesh/triangle_soup_mesh_builder.h" +#include "draco/point_cloud/point_cloud_builder.h" + namespace draco { -MeshSplitter::MeshSplitter() : preserve_materials_(false) {} +// Helper class that handles splitting of meshes with faces / without faces, +// i.e. point clouds. +template +class MeshSplitterInternal { + public: + struct WorkData : public MeshSplitter::WorkData { + // TriangleSoupMeshBuilder or PointCloudBuilder. + std::vector builders; + }; + + // Computes number of elements (faces or points) for each sub-mesh. + Status InitializeWorkDataNumElements(const Mesh &mesh, int split_attribute_id, + WorkData *work_data) const; + // Initializes a builder for a given sub-mesh. + void InitializeBuilder(int b_index, int num_elements, const Mesh &mesh, + int ignored_attribute_id, WorkData *work_data) const; + // Add all faces or points to the builders. + void AddElementsToBuilder(const Mesh &mesh, + const PointAttribute *split_attribute, + WorkData *work_data) const; + // Builds the meshes from the data accumulated in the builders. + StatusOr BuildMeshes(const Mesh &mesh, + WorkData *work_data) const; +}; + +namespace { + +// Helper functions for copying single element from source |mesh| to a target +// builder |b_index| stored in |work_data|. +void AddElementToBuilder( + int b_index, FaceIndex source_i, FaceIndex target_i, const Mesh &mesh, + MeshSplitterInternal::WorkData *work_data); +void AddElementToBuilder( + int b_index, PointIndex source_i, PointIndex target_i, const Mesh &mesh, + MeshSplitterInternal::WorkData *work_data); +} // namespace + +MeshSplitter::MeshSplitter() + : preserve_materials_(false), + remove_unused_material_indices_(true), + preserve_mesh_features_(false) {} StatusOr MeshSplitter::SplitMesh( const Mesh &mesh, uint32_t split_attribute_id) { if (mesh.num_attributes() <= split_attribute_id) { return Status(Status::DRACO_ERROR, "Invalid attribute id."); } + if (mesh.num_faces() == 0) { + return SplitMeshInternal(mesh, split_attribute_id); + } else { + return SplitMeshInternal(mesh, split_attribute_id); + } +} +template +StatusOr MeshSplitter::SplitMeshInternal( + const Mesh &mesh, int split_attribute_id) { const PointAttribute *const split_attribute = mesh.attribute(split_attribute_id); @@ -40,9 +95,48 @@ StatusOr MeshSplitter::SplitMesh( split_attribute->attribute_type() == GeometryAttribute::MATERIAL; const int num_out_meshes = split_attribute->size(); - WorkData work_data; - work_data.num_sub_mesh_faces.resize(num_out_meshes, 0); + MeshSplitterInternal splitter_internal; + typename MeshSplitterInternal::WorkData work_data; + work_data.num_sub_mesh_elements.resize(num_out_meshes, 0); + work_data.split_by_materials = + (split_attribute->attribute_type() == GeometryAttribute::MATERIAL); + DRACO_RETURN_IF_ERROR(splitter_internal.InitializeWorkDataNumElements( + mesh, split_attribute_id, &work_data)); + + // Create the sub-meshes. + work_data.builders.resize(num_out_meshes); + // Map between attribute ids of the input and output meshes. + work_data.att_id_map.resize(mesh.num_attributes(), -1); + const int ignored_att_id = + (!preserve_split_attribute ? split_attribute_id : -1); + for (int mi = 0; mi < num_out_meshes; ++mi) { + if (work_data.num_sub_mesh_elements[mi] == 0) { + continue; // Empty mesh, don't initialize it. + } + + const int num_elements = work_data.num_sub_mesh_elements[mi]; + splitter_internal.InitializeBuilder(mi, num_elements, mesh, ignored_att_id, + &work_data); + + // Reset the element counter for the sub-mesh. It will be used to keep track + // of number of elements added to the sub-mesh. + work_data.num_sub_mesh_elements[mi] = 0; + } + + splitter_internal.AddElementsToBuilder(mesh, split_attribute, &work_data); + + DRACO_ASSIGN_OR_RETURN(MeshVector out_meshes, + splitter_internal.BuildMeshes(mesh, &work_data)); + return FinalizeMeshes(mesh, work_data, std::move(out_meshes)); +} + +template <> +Status +MeshSplitterInternal::InitializeWorkDataNumElements( + const Mesh &mesh, int split_attribute_id, WorkData *work_data) const { + const PointAttribute *const split_attribute = + mesh.attribute(split_attribute_id); // Verify that the attribute values are defined "per-face", i.e., all points // on a face are always mapped to the same attribute value. for (FaceIndex fi(0); fi < mesh.num_faces(); ++fi) { @@ -54,74 +148,30 @@ StatusOr MeshSplitter::SplitMesh( "Attribute values not consistent on a face."); } } - work_data.num_sub_mesh_faces[avi.value()] += 1; + work_data->num_sub_mesh_elements[avi.value()] += 1; } - - // Create the sub-meshes. - work_data.mesh_builders.resize(num_out_meshes); - // Map between attribute ids of the input and output meshes. - work_data.att_id_map.resize(mesh.num_attributes(), -1); - const int ignored_att_id = - (!preserve_split_attribute ? split_attribute_id : -1); - for (int mi = 0; mi < num_out_meshes; ++mi) { - if (work_data.num_sub_mesh_faces[mi] == 0) { - continue; // Empty mesh, don't initialize it. - } - - const int num_faces = work_data.num_sub_mesh_faces[mi]; - InitializeMeshBuilder(mi, num_faces, mesh, ignored_att_id, &work_data); - - // Reset the face counter for the sub-mesh. It will be used to keep track of - // number of faces added to the sub-mesh. - work_data.num_sub_mesh_faces[mi] = 0; - } - - // Go over all faces of the input mesh and add them to the appropriate - // sub-mesh. - for (FaceIndex fi(0); fi < mesh.num_faces(); ++fi) { - const auto face = mesh.face(fi); - const int sub_mesh_id = split_attribute->mapped_index(face[0]).value(); - const FaceIndex target_fi(work_data.num_sub_mesh_faces[sub_mesh_id]++); - AddFaceToMeshBuilder(sub_mesh_id, fi, target_fi, mesh, &work_data); - } - - return FinalizeMeshes(mesh, &work_data); + return OkStatus(); } -StatusOr MeshSplitter::SplitMeshToComponents( - const Mesh &mesh, const MeshConnectedComponents &connected_components) { - // Create the sub-meshes. - const int num_out_meshes = connected_components.NumConnectedComponents(); - WorkData work_data; - work_data.mesh_builders.resize(num_out_meshes); - work_data.num_sub_mesh_faces.resize(num_out_meshes, 0); - work_data.att_id_map.resize(mesh.num_attributes(), -1); - for (int mi = 0; mi < num_out_meshes; ++mi) { - const int num_faces = connected_components.NumConnectedComponentFaces(mi); - work_data.num_sub_mesh_faces[mi] = num_faces; - InitializeMeshBuilder(mi, num_faces, mesh, -1, &work_data); +template <> +Status MeshSplitterInternal::InitializeWorkDataNumElements( + const Mesh &mesh, int split_attribute_id, WorkData *work_data) const { + const PointAttribute *const split_attribute = + mesh.attribute(split_attribute_id); + // Each point can have a different value. Just accumulate the number of points + // with the same attribute value index. + for (PointIndex pi(0); pi < mesh.num_points(); ++pi) { + const AttributeValueIndex avi = split_attribute->mapped_index(pi); + work_data->num_sub_mesh_elements[avi.value()] += 1; } - - // Go over all faces of the input mesh and add them to the appropriate - // sub-mesh. - for (int mi = 0; mi < num_out_meshes; ++mi) { - for (int cfi = 0; cfi < connected_components.NumConnectedComponentFaces(mi); - ++cfi) { - const FaceIndex fi( - connected_components.GetConnectedComponent(mi).faces[cfi]); - const FaceIndex target_fi(cfi); - AddFaceToMeshBuilder(mi, fi, target_fi, mesh, &work_data); - } - } - return FinalizeMeshes(mesh, &work_data); + return OkStatus(); } -void MeshSplitter::InitializeMeshBuilder(int mb_index, int num_faces, - const Mesh &mesh, - int ignored_attribute_id, - WorkData *work_data) const { - work_data->mesh_builders[mb_index].Start(num_faces); - work_data->mesh_builders[mb_index].SetName(mesh.GetName()); +template +void MeshSplitterInternal::InitializeBuilder( + int b_index, int num_elements, const Mesh &mesh, int ignored_attribute_id, + WorkData *work_data) const { + work_data->builders[b_index].Start(num_elements); // Add all attributes. for (int ai = 0; ai < mesh.num_attributes(); ++ai) { @@ -129,57 +179,151 @@ void MeshSplitter::InitializeMeshBuilder(int mb_index, int num_faces, continue; } const GeometryAttribute *const src_att = mesh.attribute(ai); - work_data->att_id_map[ai] = work_data->mesh_builders[mb_index].AddAttribute( + work_data->att_id_map[ai] = work_data->builders[b_index].AddAttribute( src_att->attribute_type(), src_att->num_components(), src_att->data_type()); } } -void MeshSplitter::AddFaceToMeshBuilder(int mb_index, FaceIndex source_fi, - FaceIndex target_fi, const Mesh &mesh, - WorkData *work_data) const { - const auto face = mesh.face(source_fi); +template <> +void MeshSplitterInternal::AddElementsToBuilder( + const Mesh &mesh, const PointAttribute *split_attribute, + WorkData *work_data) const { + // Go over all faces of the input mesh and add them to the appropriate + // sub-mesh. + for (FaceIndex fi(0); fi < mesh.num_faces(); ++fi) { + const auto face = mesh.face(fi); + const int sub_mesh_id = split_attribute->mapped_index(face[0]).value(); + const FaceIndex target_fi(work_data->num_sub_mesh_elements[sub_mesh_id]++); + AddElementToBuilder(sub_mesh_id, fi, target_fi, mesh, work_data); + } +} + +template <> +void MeshSplitterInternal::AddElementsToBuilder( + const Mesh &mesh, const PointAttribute *split_attribute, + WorkData *work_data) const { + // Go over all points of the input mesh and add them to the appropriate + // sub-mesh. + for (PointIndex pi(0); pi < mesh.num_points(); ++pi) { + const int sub_mesh_id = split_attribute->mapped_index(pi).value(); + const PointIndex target_pi(work_data->num_sub_mesh_elements[sub_mesh_id]++); + AddElementToBuilder(sub_mesh_id, pi, target_pi, mesh, work_data); + } +} + +namespace { + +void AddElementToBuilder( + int b_index, FaceIndex source_i, FaceIndex target_i, const Mesh &mesh, + MeshSplitterInternal::WorkData *work_data) { + const auto &face = mesh.face(source_i); for (int ai = 0; ai < mesh.num_attributes(); ++ai) { const PointAttribute *const src_att = mesh.attribute(ai); const int target_att_id = work_data->att_id_map[ai]; if (target_att_id == -1) { continue; } - work_data->mesh_builders[mb_index].SetAttributeValuesForFace( - target_att_id, target_fi, src_att->GetAddressOfMappedIndex(face[0]), + // Add value for each corner of the face. + work_data->builders[b_index].SetAttributeValuesForFace( + target_att_id, target_i, src_att->GetAddressOfMappedIndex(face[0]), src_att->GetAddressOfMappedIndex(face[1]), src_att->GetAddressOfMappedIndex(face[2])); } } -StatusOr MeshSplitter::FinalizeMeshes( - const Mesh &mesh, WorkData *work_data) const { - // Finalize meshes. - const int num_out_meshes = work_data->mesh_builders.size(); - MeshVector out_meshes(num_out_meshes); - for (int mi = 0; mi < num_out_meshes; ++mi) { - if (work_data->num_sub_mesh_faces[mi] == 0) { +void AddElementToBuilder( + int b_index, PointIndex source_i, PointIndex target_i, const Mesh &mesh, + MeshSplitterInternal::WorkData *work_data) { + for (int ai = 0; ai < mesh.num_attributes(); ++ai) { + const PointAttribute *const src_att = mesh.attribute(ai); + const int target_att_id = work_data->att_id_map[ai]; + if (target_att_id == -1) { continue; } - out_meshes[mi] = work_data->mesh_builders[mi].Finalize(); + // Add value for the point |target_i|. + work_data->builders[b_index].SetAttributeValueForPoint( + target_att_id, target_i, src_att->GetAddressOfMappedIndex(source_i)); + } +} + +} // namespace + +template <> +StatusOr +MeshSplitterInternal::BuildMeshes( + const Mesh &mesh, WorkData *work_data) const { + const int num_out_meshes = work_data->builders.size(); + MeshSplitter::MeshVector out_meshes(num_out_meshes); + for (int mi = 0; mi < num_out_meshes; ++mi) { + if (work_data->num_sub_mesh_elements[mi] == 0) { + continue; + } + out_meshes[mi] = work_data->builders[mi].Finalize(); if (out_meshes[mi] == nullptr) { continue; } + } + return out_meshes; +} + +template <> +StatusOr +MeshSplitterInternal::BuildMeshes( + const Mesh &mesh, WorkData *work_data) const { + const int num_out_meshes = work_data->builders.size(); + MeshSplitter::MeshVector out_meshes(num_out_meshes); + for (int mi = 0; mi < num_out_meshes; ++mi) { + if (work_data->num_sub_mesh_elements[mi] == 0) { + continue; + } + // For point clouds, we first build a point cloud and copy it over into + // a draco::Mesh. + std::unique_ptr pc = work_data->builders[mi].Finalize(true); + if (pc == nullptr) { + continue; + } + std::unique_ptr mesh(new Mesh()); + PointCloud *mesh_pc = mesh.get(); + mesh_pc->Copy(*pc); + out_meshes[mi] = std::move(mesh); + } + return out_meshes; +} + +StatusOr MeshSplitter::FinalizeMeshes( + const Mesh &mesh, const WorkData &work_data, MeshVector out_meshes) const { + // Finalize meshes. + const int num_out_meshes = out_meshes.size(); + + // If we are going to preserve mesh features, we will need to update texture + // pointers for all mesh feature textures. Here we store the mapping between + // the old texture pointers and their indices. + std::unordered_map features_texture_to_index_map; + if (preserve_mesh_features_) { + features_texture_to_index_map = + mesh.GetNonMaterialTextureLibrary().ComputeTextureToIndexMap(); + } + + for (int mi = 0; mi < num_out_meshes; ++mi) { + if (out_meshes[mi] == nullptr) { + continue; + } + out_meshes[mi]->SetName(mesh.GetName()); if (preserve_materials_) { out_meshes[mi]->GetMaterialLibrary().Copy(mesh.GetMaterialLibrary()); - out_meshes[mi]->RemoveUnusedMaterials(); } // Copy metadata of the original mesh to the output meshes. if (mesh.GetMetadata() != nullptr) { - const Metadata &metadata = *mesh.GetMetadata(); + const GeometryMetadata &metadata = *mesh.GetMetadata(); out_meshes[mi]->AddMetadata( std::unique_ptr(new GeometryMetadata(metadata))); } // Copy over attribute unique ids. for (int att_id = 0; att_id < mesh.num_attributes(); ++att_id) { - const int mapped_att_id = work_data->att_id_map[att_id]; + const int mapped_att_id = work_data.att_id_map[att_id]; if (mapped_att_id == -1) { continue; } @@ -191,9 +335,117 @@ StatusOr MeshSplitter::FinalizeMeshes( // Copy compression settings of the original mesh to the output meshes. out_meshes[mi]->SetCompressionEnabled(mesh.IsCompressionEnabled()); out_meshes[mi]->SetCompressionOptions(mesh.GetCompressionOptions()); + + if (preserve_mesh_features_) { + // Copy mesh features from the source |mesh| to the |out_meshes[mi]|. + for (MeshFeaturesIndex mfi(0); mfi < mesh.NumMeshFeatures(); ++mfi) { + if (work_data.split_by_materials) { + // Copy over only those mesh features that were masked to the material + // corresponding to |mi|. + bool is_used = false; + if (mesh.NumMeshFeaturesMaterialMasks(mfi) == 0) { + is_used = true; + } else { + for (int mask_index = 0; + mask_index < mesh.NumMeshFeaturesMaterialMasks(mfi); + ++mask_index) { + if (mesh.GetMeshFeaturesMaterialMask(mfi, mask_index) == mi) { + is_used = true; + break; + } + } + } + if (!is_used) { + // Ignore this mesh features. + continue; + } + } + // Create a copy of source mesh features. + std::unique_ptr mf(new MeshFeatures()); + mf->Copy(mesh.GetMeshFeatures(mfi)); + const MeshFeaturesIndex new_mfi = + out_meshes[mi]->AddMeshFeatures(std::move(mf)); + if (work_data.split_by_materials && !preserve_materials_) { + // If the input |mesh| was split by materials and we didn't preserve + // the materials, all mesh features must be masked to material 0. + out_meshes[mi]->AddMeshFeaturesMaterialMask(new_mfi, 0); + } else { + // Otherwise mesh features use same masking as the source mesh because + // the material attribute is still present in the split meshes. + // Note that this masking can be later changed in + // RemoveUnusedMaterials() call below. + for (int mask_index = 0; + mask_index < mesh.NumMeshFeaturesMaterialMasks(mfi); + ++mask_index) { + out_meshes[mi]->AddMeshFeaturesMaterialMask( + new_mfi, mesh.GetMeshFeaturesMaterialMask(mfi, mask_index)); + } + } + } + + // Copy over all features textures to the split mesh. + out_meshes[mi]->GetNonMaterialTextureLibrary().Copy( + mesh.GetNonMaterialTextureLibrary()); + + // Update mesh features texture pointers to the new library. + for (MeshFeaturesIndex mfi(0); mfi < out_meshes[mi]->NumMeshFeatures(); + ++mfi) { + Mesh::UpdateMeshFeaturesTexturePointer( + features_texture_to_index_map, + &out_meshes[mi]->GetNonMaterialTextureLibrary(), + &out_meshes[mi]->GetMeshFeatures(mfi)); + } + + // This will remove any mesh features that may not be be actually used + // by this |out_meshes[mi]| (e.g. because corresponding material indices + // were not present in this split mesh). This also removes any unused + // features textures from the non-material texture library. + DRACO_RETURN_IF_ERROR( + MeshUtils::RemoveUnusedMeshFeatures(out_meshes[mi].get())); + } + + // Remove unused materials after we remove mesh features because some of + // the mesh features may have referenced old material indices. + if (preserve_materials_) { + out_meshes[mi]->RemoveUnusedMaterials(remove_unused_material_indices_); + } + + // Copy structural metadata from input mesh to each of the output meshes. + out_meshes[mi]->GetStructuralMetadata().Copy(mesh.GetStructuralMetadata()); } return std::move(out_meshes); } +StatusOr MeshSplitter::SplitMeshToComponents( + const Mesh &mesh, const MeshConnectedComponents &connected_components) { + // Create the sub-meshes. + const int num_out_meshes = connected_components.NumConnectedComponents(); + MeshSplitterInternal splitter_internal; + typename MeshSplitterInternal::WorkData work_data; + work_data.builders.resize(num_out_meshes); + work_data.num_sub_mesh_elements.resize(num_out_meshes, 0); + work_data.att_id_map.resize(mesh.num_attributes(), -1); + for (int mi = 0; mi < num_out_meshes; ++mi) { + const int num_faces = connected_components.NumConnectedComponentFaces(mi); + work_data.num_sub_mesh_elements[mi] = num_faces; + splitter_internal.InitializeBuilder(mi, num_faces, mesh, -1, &work_data); + } + + // Go over all faces of the input mesh and add them to the appropriate + // sub-mesh. + for (int mi = 0; mi < num_out_meshes; ++mi) { + for (int cfi = 0; cfi < connected_components.NumConnectedComponentFaces(mi); + ++cfi) { + const FaceIndex fi( + connected_components.GetConnectedComponent(mi).faces[cfi]); + const FaceIndex target_fi(cfi); + AddElementToBuilder(mi, fi, target_fi, mesh, &work_data); + } + } + DRACO_ASSIGN_OR_RETURN(auto out_meshes, + splitter_internal.BuildMeshes(mesh, &work_data)); + return FinalizeMeshes(mesh, work_data, std::move(out_meshes)); +} + } // namespace draco #endif // DRACO_TRANSCODER_SUPPORTED diff --git a/src/draco/mesh/mesh_splitter.h b/src/draco/mesh/mesh_splitter.h index 06637f4..bf5cd97 100644 --- a/src/draco/mesh/mesh_splitter.h +++ b/src/draco/mesh/mesh_splitter.h @@ -15,6 +15,9 @@ #ifndef DRACO_MESH_MESH_SPLITTER_H_ #define DRACO_MESH_MESH_SPLITTER_H_ +#include +#include + #include "draco/draco_features.h" #ifdef DRACO_TRANSCODER_SUPPORTED @@ -35,16 +38,38 @@ class MeshSplitter { // Sets a flag that tells the splitter to preserve all materials on the input // mesh during mesh splitting. When set, the materials used on sub-meshes are // going to be copied over. Any redundant materials on sub-meshes are going to - // be deleted. + // be deleted but material indices may still be preserved depending on the + // SetRemoveUnusedMaterialIndices() flag. // Default = false. void SetPreserveMaterials(bool flag) { preserve_materials_ = flag; } + // Sets a flag that tells the splitter to delete any unused material indices + // on the generated sub-meshes. This option is currently used only when + // SetPreserveMaterials() was set to true. If this option is set to false, the + // material indices of the MATERIAL attribute will be the same as in the + // source mesh. If the flag is true, then the unused material indices will be + // removed and they may no longer correspond to the source mesh. Note that + // when this flag is false, any unused materials would be replaced with empty + // (default) materials. + // Default = true. + void SetRemoveUnusedMaterialIndices(bool flag) { + remove_unused_material_indices_ = flag; + } + + // Sets a flag that tells the splitter to preserve all mesh features on the + // input mesh during mesh splitting. When set, the mesh features used on + // sub-meshes are going to be copied over. Any redundant mesh features on + // sub-meshes are going to be deleted. + // Default = false. + void SetPreserveMeshFeatures(bool flag) { preserve_mesh_features_ = flag; } + // Splits the input |mesh| according to attribute values stored in the - // specified attribute. The attribute values need to be defined per-face, that - // is, all points attached to a single face must share the same attribute - // value. Each attribute value (AttributeValueIndex) is mapped to a single - // output mesh. If an AttributeValueIndex is unused, no mesh is created for - // the given value. + // specified attribute. If the |mesh| contains faces, the attribute values + // need to be defined per-face, that is, all points attached to a single face + // must share the same attribute value. Meshes without faces are treated as + // point clouds and the attribute values can be defined per-point. Each + // attribute value (AttributeValueIndex) is mapped to a single output mesh. If + // an AttributeValueIndex is unused, no mesh is created for the given value. StatusOr SplitMesh(const Mesh &mesh, uint32_t split_attribute_id); // Splits the input |mesh| into separate components defined in @@ -58,20 +83,24 @@ class MeshSplitter { struct WorkData { // Map between attribute ids of the input and output meshes. std::vector att_id_map; - std::vector num_sub_mesh_faces; - std::vector mesh_builders; + std::vector num_sub_mesh_elements; + bool split_by_materials = false; }; - void InitializeMeshBuilder(int mb_index, int num_faces, const Mesh &mesh, - int ignored_attribute_id, - WorkData *work_data) const; - void AddFaceToMeshBuilder(int mb_index, FaceIndex source_fi, - FaceIndex target_fi, const Mesh &mesh, - WorkData *work_data) const; + template + StatusOr SplitMeshInternal(const Mesh &mesh, + int split_attribute_id); + StatusOr FinalizeMeshes(const Mesh &mesh, - WorkData *work_data) const; + const WorkData &work_data, + MeshVector out_meshes) const; bool preserve_materials_; + bool remove_unused_material_indices_; + bool preserve_mesh_features_; + + template + friend class MeshSplitterInternal; }; } // namespace draco diff --git a/src/draco/mesh/mesh_splitter_test.cc b/src/draco/mesh/mesh_splitter_test.cc index b436c39..7432c47 100644 --- a/src/draco/mesh/mesh_splitter_test.cc +++ b/src/draco/mesh/mesh_splitter_test.cc @@ -15,6 +15,9 @@ #include "draco/mesh/mesh_splitter.h" #ifdef DRACO_TRANSCODER_SUPPORTED +#include +#include + #include "draco/core/draco_test_base.h" #include "draco/core/draco_test_utils.h" #include "draco/core/vector_d.h" diff --git a/src/draco/mesh/mesh_test.cc b/src/draco/mesh/mesh_test.cc index 1757e94..7cc046a 100644 --- a/src/draco/mesh/mesh_test.cc +++ b/src/draco/mesh/mesh_test.cc @@ -15,13 +15,17 @@ #include "draco/mesh/mesh.h" #include +#include #include "draco/core/draco_test_base.h" #include "draco/core/draco_test_utils.h" #ifdef DRACO_TRANSCODER_SUPPORTED #include "draco/compression/draco_compression_options.h" +#include "draco/material/material_utils.h" #include "draco/mesh/mesh_are_equivalent.h" +#include "draco/mesh/mesh_features.h" +#include "draco/mesh/mesh_utils.h" #include "draco/mesh/triangle_soup_mesh_builder.h" #endif // DRACO_TRANSCODER_SUPPORTED @@ -108,6 +112,92 @@ TEST(MeshTest, RemoveUnusedMaterials) { } } +TEST(MeshTest, RemoveUnusedMaterialsOnPointClud) { + // Input mesh has 29 materials defined in the source file but only 7 are + // actually used. Same as above test but we remove all faces and treat the + // model as a point cloud. + const std::unique_ptr mesh = + draco::ReadMeshFromTestFile("mat_test.obj"); + ASSERT_NE(mesh, nullptr); + + // Make it a point cloud. + mesh->SetNumFaces(0); + + const draco::PointAttribute *const mat_att = + mesh->GetNamedAttribute(draco::GeometryAttribute::MATERIAL); + ASSERT_NE(mat_att, nullptr); + ASSERT_EQ(mat_att->size(), 29); + + ASSERT_EQ(mesh->GetMaterialLibrary().NumMaterials(), mat_att->size()); + + // Get materials on all points. + std::vector point_materials(mesh->num_points(), + nullptr); + for (draco::PointIndex pi(0); pi < mesh->num_points(); ++pi) { + uint32_t mat_index = 0; + mat_att->GetMappedValue(pi, &mat_index); + point_materials[pi.value()] = + mesh->GetMaterialLibrary().GetMaterial(mat_index); + } + + mesh->RemoveUnusedMaterials(); + + ASSERT_EQ(mesh->GetMaterialLibrary().NumMaterials(), 7); + + // Ensure the material attribute contains material indices in the valid range. + for (draco::AttributeValueIndex avi(0); avi < mat_att->size(); ++avi) { + uint32_t mat_index = 0; + mat_att->GetValue(avi, &mat_index); + ASSERT_LT(mat_index, mesh->GetMaterialLibrary().NumMaterials()); + } + + // Ensure all materials are still the same for all points. + for (draco::PointIndex pi(0); pi < mesh->num_points(); ++pi) { + uint32_t mat_index = 0; + mat_att->GetMappedValue(pi, &mat_index); + ASSERT_EQ(mesh->GetMaterialLibrary().GetMaterial(mat_index), + point_materials[pi.value()]); + } +} + +TEST(MeshTest, RemoveUnusedMaterialsNoIndices) { + // The same as above but we actually want to remove only materials and not + // material indices. Therefore we should end up with the same number of + // materials as source but all unused materials should be "default". + const std::unique_ptr mesh = + draco::ReadMeshFromTestFile("mat_test.obj"); + ASSERT_NE(mesh, nullptr); + + const draco::PointAttribute *const mat_att = + mesh->GetNamedAttribute(draco::GeometryAttribute::MATERIAL); + ASSERT_NE(mat_att, nullptr); + ASSERT_EQ(mat_att->size(), 29); + + ASSERT_EQ(mesh->GetMaterialLibrary().NumMaterials(), mat_att->size()); + + // Do not remove unused material indices. + mesh->RemoveUnusedMaterials(false); + + ASSERT_EQ(mesh->GetMaterialLibrary().NumMaterials(), 29); + + // Gether which materials were actually used and check that all remaining + // materials are "default". + std::vector is_mat_used(mesh->GetMaterialLibrary().NumMaterials(), + false); + for (draco::AttributeValueIndex avi(0); avi < mat_att->size(); ++avi) { + uint32_t mat_index = 0; + mat_att->GetValue(avi, &mat_index); + is_mat_used[mat_index] = true; + } + + for (int mi = 0; mi < mesh->GetMaterialLibrary().NumMaterials(); ++mi) { + if (!is_mat_used[mi]) { + ASSERT_TRUE(draco::MaterialUtils::AreMaterialsEquivalent( + *mesh->GetMaterialLibrary().GetMaterial(mi), draco::Material())); + } + } +} + TEST(MeshTest, TestAddNewAttributeWithConnectivity) { // Tests that we can add new attributes with arbitrary connectivity to an // existing mesh. @@ -346,6 +436,189 @@ TEST(MeshTest, TestCompressionSettings) { ASSERT_TRUE(mesh_copy.IsCompressionEnabled()); ASSERT_EQ(mesh_copy.GetCompressionOptions(), compression_options); } + +// Tests adding and removing of mesh features to a mesh. +TEST(MeshTest, TestMeshFeatures) { + // Create a mesh with two feature ID sets. + draco::Mesh mesh; + ASSERT_EQ(mesh.NumMeshFeatures(), 0); + std::unique_ptr oceans(new draco::MeshFeatures()); + std::unique_ptr continents(new draco::MeshFeatures()); + oceans->SetLabel("oceans"); + continents->SetLabel("continents"); + const draco::MeshFeaturesIndex index_0 = + mesh.AddMeshFeatures(std::move(oceans)); + const draco::MeshFeaturesIndex index_1 = + mesh.AddMeshFeatures(std::move(continents)); + ASSERT_EQ(index_0, draco::MeshFeaturesIndex(0)); + ASSERT_EQ(index_1, draco::MeshFeaturesIndex(1)); + + // Check that the mesh has two feature ID sets. + ASSERT_EQ(mesh.NumMeshFeatures(), 2); + ASSERT_EQ(mesh.GetMeshFeatures(index_0).GetLabel(), "oceans"); + ASSERT_EQ(mesh.GetMeshFeatures(index_1).GetLabel(), "continents"); + + // Remove one feature ID set and check the remaining feature ID set. + mesh.RemoveMeshFeatures(draco::MeshFeaturesIndex(1)); + ASSERT_EQ(mesh.NumMeshFeatures(), 1); + ASSERT_EQ(mesh.GetMeshFeatures(draco::MeshFeaturesIndex(0)).GetLabel(), + "oceans"); + + // Remove the remaining feature ID set and check that no sets remain. + mesh.RemoveMeshFeatures(draco::MeshFeaturesIndex(0)); + ASSERT_EQ(mesh.NumMeshFeatures(), 0); +} + +// Tests copying of a mesh with feature ID sets. +TEST(MeshTest, MeshCopyWithMeshFeatures) { + const std::unique_ptr mesh = + draco::ReadMeshFromTestFile("cube_att.obj"); + ASSERT_NE(mesh, nullptr); + + // Add two textures to the non-material texture library of the mesh. + std::unique_ptr texture0(new draco::Texture()); + std::unique_ptr texture1(new draco::Texture()); + texture0->Resize(128, 128); + texture1->Resize(256, 256); + texture0->FillImage(draco::RGBA(100, 0, 0, 0)); + texture1->FillImage(draco::RGBA(200, 0, 0, 0)); + draco::TextureLibrary &library = mesh->GetNonMaterialTextureLibrary(); + library.PushTexture(std::move(texture0)); + library.PushTexture(std::move(texture1)); + + // Add feature ID set referring to an attribute. + const draco::MeshFeaturesIndex index_0 = mesh->AddMeshFeatures( + std::unique_ptr(new draco::MeshFeatures())); + mesh->GetMeshFeatures(index_0).SetLabel("planet"); + mesh->GetMeshFeatures(index_0).SetFeatureCount(2); + mesh->GetMeshFeatures(index_0).SetAttributeIndex(1); + + // Add feature ID set referring to texture at index 0. + const draco::MeshFeaturesIndex index_1 = mesh->AddMeshFeatures( + std::unique_ptr(new draco::MeshFeatures())); + mesh->GetMeshFeatures(index_1).SetLabel("continents"); + mesh->GetMeshFeatures(index_1).SetFeatureCount(7); + mesh->GetMeshFeatures(index_1).GetTextureMap().SetTexture( + library.GetTexture(0)); + + // Add feature ID set referring to a texture at index 1. + const draco::MeshFeaturesIndex index_2 = mesh->AddMeshFeatures( + std::unique_ptr(new draco::MeshFeatures())); + mesh->GetMeshFeatures(index_2).SetLabel("oceans"); + mesh->GetMeshFeatures(index_2).SetFeatureCount(5); + mesh->GetMeshFeatures(index_2).GetTextureMap().SetTexture( + library.GetTexture(1)); + + // Check mesh feature ID set texture pointers. + ASSERT_EQ(library.NumTextures(), 2); + ASSERT_EQ(mesh->NumMeshFeatures(), 3); + ASSERT_EQ(mesh->GetMeshFeatures(index_0).GetTextureMap().texture(), nullptr); + ASSERT_EQ(mesh->GetMeshFeatures(index_1).GetTextureMap().texture(), + library.GetTexture(0)); + ASSERT_EQ(mesh->GetMeshFeatures(index_2).GetTextureMap().texture(), + library.GetTexture(1)); + + // Copy the mesh. + draco::Mesh mesh_copy; + mesh_copy.Copy(*mesh); + + // Check that the meshes are equivalent. + draco::MeshAreEquivalent eq; + ASSERT_TRUE(eq(*mesh, mesh_copy)); + + // Also check that the texture pointers have been updated correctly. + const draco::TextureLibrary &library_copy = + mesh_copy.GetNonMaterialTextureLibrary(); + ASSERT_EQ(library_copy.NumTextures(), 2); + ASSERT_EQ(mesh_copy.NumMeshFeatures(), 3); + ASSERT_EQ(mesh_copy.GetMeshFeatures(index_0).GetTextureMap().texture(), + nullptr); + ASSERT_EQ(mesh_copy.GetMeshFeatures(index_1).GetTextureMap().texture(), + library_copy.GetTexture(0)); + ASSERT_EQ(mesh_copy.GetMeshFeatures(index_2).GetTextureMap().texture(), + library_copy.GetTexture(1)); +} + +// Tests copying of a mesh with structural metadata. +TEST(MeshTest, TestCopyWithStructuralMetadata) { + const std::unique_ptr mesh = + draco::ReadMeshFromTestFile("cube_att.obj"); + ASSERT_NE(mesh, nullptr); + + // Add structural metadata to the mesh. + draco::PropertyTable::Schema schema; + schema.json.SetString("Data"); + mesh->GetStructuralMetadata().SetPropertyTableSchema(schema); + + // Copy the mesh. + draco::Mesh copy; + copy.Copy(*mesh); + + // Check that the structural metadata has been copied. + ASSERT_EQ( + copy.GetStructuralMetadata().GetPropertyTableSchema().json.GetString(), + "Data"); +} + +// Tests removing of unused materials for a mesh with mesh features. +TEST(MeshTest, RemoveUnusedMaterialsWithMeshFeatures) { + const std::unique_ptr mesh = + draco::ReadMeshFromTestFile("BoxesMeta/glTF/BoxesMeta.gltf"); + ASSERT_NE(mesh, nullptr); + + // Input has five mesh features, two associated with material 0 and three with + // material 1. + ASSERT_EQ(mesh->NumMeshFeatures(), 5); + ASSERT_EQ(mesh->GetMeshFeaturesMaterialMask(draco::MeshFeaturesIndex(0), 0), + 0); + ASSERT_EQ(mesh->GetMeshFeaturesMaterialMask(draco::MeshFeaturesIndex(1), 0), + 0); + ASSERT_EQ(mesh->GetMeshFeaturesMaterialMask(draco::MeshFeaturesIndex(2), 0), + 1); + ASSERT_EQ(mesh->GetMeshFeaturesMaterialMask(draco::MeshFeaturesIndex(3), 0), + 1); + ASSERT_EQ(mesh->GetMeshFeaturesMaterialMask(draco::MeshFeaturesIndex(4), 0), + 1); + + // Remove material 0. + draco::PointAttribute *mat_att = mesh->attribute( + mesh->GetNamedAttributeId(draco::GeometryAttribute::MATERIAL)); + // Map mat value 0 to 1. + uint32_t new_mat_index = 1; + mat_att->SetAttributeValue(draco::AttributeValueIndex(0), &new_mat_index); + + // This should not do anything because we still have the material 0 referenced + // by mesh features 0 and 1. + mesh->RemoveUnusedMaterials(); + + ASSERT_EQ(mesh->GetMaterialLibrary().NumMaterials(), 2); + ASSERT_EQ(mesh->NumMeshFeatures(), 5); + + // Now remove unused mesh features (should be 0 and 1). + DRACO_ASSERT_OK(draco::MeshUtils::RemoveUnusedMeshFeatures(mesh.get())); + + ASSERT_EQ(mesh->NumMeshFeatures(), 3); + // All remaining mesh features should be still mapped to material 1. + ASSERT_EQ(mesh->GetMeshFeaturesMaterialMask(draco::MeshFeaturesIndex(0), 0), + 1); + ASSERT_EQ(mesh->GetMeshFeaturesMaterialMask(draco::MeshFeaturesIndex(1), 0), + 1); + ASSERT_EQ(mesh->GetMeshFeaturesMaterialMask(draco::MeshFeaturesIndex(2), 0), + 1); + + // Now remove the unused materials (0). + mesh->RemoveUnusedMaterials(); + + // Only one material should be remaining and all the mesh features should now + // be mapped to material 0. + ASSERT_EQ(mesh->GetMaterialLibrary().NumMaterials(), 1); + ASSERT_EQ(mesh->GetMeshFeaturesMaterialMask(draco::MeshFeaturesIndex(0), 0), + 0); + ASSERT_EQ(mesh->GetMeshFeaturesMaterialMask(draco::MeshFeaturesIndex(1), 0), + 0); + ASSERT_EQ(mesh->GetMeshFeaturesMaterialMask(draco::MeshFeaturesIndex(2), 0), + 0); +} #endif // DRACO_TRANSCODER_SUPPORTED // Test bounding box. diff --git a/src/draco/mesh/mesh_utils.cc b/src/draco/mesh/mesh_utils.cc index 4cb6e1d..0fbe366 100644 --- a/src/draco/mesh/mesh_utils.cc +++ b/src/draco/mesh/mesh_utils.cc @@ -14,6 +14,10 @@ // #include "draco/mesh/mesh_utils.h" +#include +#include +#include + #ifdef DRACO_TRANSCODER_SUPPORTED #include "draco/attributes/attribute_quantization_transform.h" #include "draco/core/quantization_utils.h" @@ -163,6 +167,86 @@ void MeshUtils::MergeMetadata(const Mesh &src_mesh, Mesh *dst_mesh) { } } +Status MeshUtils::RemoveUnusedMeshFeatures(Mesh *mesh) { + // Unused mesh features are features that are not used by any face / vertex + // of the |mesh|. Currently, each mesh feature can be "masked" for specific + // materials, in which case we need to check whether the mask materials + // are present in the |mesh|. If not, we can remove the mesh features from the + // mesh. + const PointAttribute *const mat_att = + mesh->GetNamedAttribute(GeometryAttribute::MATERIAL); + // Find which materials are used. + std::unordered_set used_materials; + if (mat_att == nullptr) { + // Only material with index 0 is assumed to be used. + used_materials.insert(0); + } else { + for (AttributeValueIndex avi(0); avi < mat_att->size(); ++avi) { + uint32_t mat_index = 0; + mat_att->GetValue(avi, &mat_index); + used_materials.insert(mat_index); + } + } + + std::vector unused_mesh_features; + for (MeshFeaturesIndex mfi(0); mfi < mesh->NumMeshFeatures(); ++mfi) { + bool is_used = false; + if (mesh->NumMeshFeaturesMaterialMasks(mfi) == 0) { + is_used = true; + } else { + for (int mask_i = 0; mask_i < mesh->NumMeshFeaturesMaterialMasks(mfi); + ++mask_i) { + const int material_index = + mesh->GetMeshFeaturesMaterialMask(mfi, mask_i); + if (used_materials.count(material_index)) { + is_used = true; + break; + } + } + } + if (!is_used) { + unused_mesh_features.push_back(mfi); + } + } + + // Remove the unused mesh features (from back). + for (auto it = unused_mesh_features.rbegin(); + it != unused_mesh_features.rend(); ++it) { + const MeshFeaturesIndex mfi = *it; + mesh->RemoveMeshFeatures(mfi); + } + + // Remove all features textures that are not used anymore. + + // First find which textures are referenced by the mesh features. + std::unordered_set used_textures; + for (MeshFeaturesIndex mfi(0); mfi < mesh->NumMeshFeatures(); ++mfi) { + const Texture *const texture = + mesh->GetMeshFeatures(mfi).GetTextureMap().texture(); + if (texture) { + used_textures.insert(texture); + } + } + + if (!used_textures.empty() && + mesh->GetNonMaterialTextureLibrary().NumTextures() == 0) { + return ErrorStatus( + "Trying to remove mesh features textures that are not owned by the " + "mesh."); + } + + // Remove all unreferenced textures from the non-material texture library. + for (int ti = mesh->GetNonMaterialTextureLibrary().NumTextures() - 1; ti >= 0; + --ti) { + const Texture *const texture = + mesh->GetNonMaterialTextureLibrary().GetTexture(ti); + if (used_textures.count(texture) == 0) { + mesh->GetNonMaterialTextureLibrary().RemoveTexture(ti); + } + } + return OkStatus(); +} + bool MeshUtils::FlipTextureUvValues(bool flip_u, bool flip_v, PointAttribute *att) { if (att->attribute_type() != GeometryAttribute::TEX_COORD) { diff --git a/src/draco/mesh/mesh_utils.h b/src/draco/mesh/mesh_utils.h index 3ad1e51..4c776ce 100644 --- a/src/draco/mesh/mesh_utils.h +++ b/src/draco/mesh/mesh_utils.h @@ -38,6 +38,11 @@ class MeshUtils { // names are left unchanged. static void MergeMetadata(const Mesh &src_mesh, Mesh *dst_mesh); + // Removes unused MeshFeatures from |mesh|. If the |mesh| contains any mesh + // feature textures, the textures must be owned by the |mesh| otherwise an + // error is returned. + static Status RemoveUnusedMeshFeatures(Mesh *mesh); + // Flips the UV values of |att|. static bool FlipTextureUvValues(bool flip_u, bool flip_v, PointAttribute *att); diff --git a/src/draco/mesh/mesh_utils_test.cc b/src/draco/mesh/mesh_utils_test.cc index 2ef2661..022669c 100644 --- a/src/draco/mesh/mesh_utils_test.cc +++ b/src/draco/mesh/mesh_utils_test.cc @@ -347,6 +347,45 @@ TEST(MeshUtilsTest, CheckMergeMetadata) { ASSERT_EQ(metadata_value, 3); } +TEST(MeshUtilsTest, RemoveUnusedMeshFeatures) { + // Test verifies that MeshUtils::RemoveUnusedMeshFeatures works as intended. + std::unique_ptr mesh = + draco::ReadMeshFromTestFile("BoxesMeta/glTF/BoxesMeta.gltf"); + ASSERT_NE(mesh, nullptr); + + // The input mesh should have five mesh features and two features textures. + ASSERT_EQ(mesh->NumMeshFeatures(), 5); + ASSERT_EQ(mesh->GetNonMaterialTextureLibrary().NumTextures(), 2); + + // All of those features and textures should be used so calling the method + // below shouldn't do anything. + draco::MeshUtils::RemoveUnusedMeshFeatures(mesh.get()); + ASSERT_EQ(mesh->NumMeshFeatures(), 5); + ASSERT_EQ(mesh->GetNonMaterialTextureLibrary().NumTextures(), 2); + + // Now remove material 1 that is mapped to first two mesh features. + draco::PointAttribute *mat_att = mesh->attribute( + mesh->GetNamedAttributeId(draco::GeometryAttribute::MATERIAL)); + + // This basically remaps all faces from material 1 to material 0. + uint32_t mat_index = 0; + mat_att->SetAttributeValue(draco::AttributeValueIndex(1), &mat_index); + + // Try to remove the mesh features again. + draco::MeshUtils::RemoveUnusedMeshFeatures(mesh.get()); + + // Three of the mesh features should have been removed as well as one mesh + // features texture. + ASSERT_EQ(mesh->NumMeshFeatures(), 2); + ASSERT_EQ(mesh->GetNonMaterialTextureLibrary().NumTextures(), 1); + + // Ensure the remaining mesh features are mapped to the correct material. + for (draco::MeshFeaturesIndex mfi(0); mfi < mesh->NumMeshFeatures(); ++mfi) { + ASSERT_EQ(mesh->NumMeshFeaturesMaterialMasks(mfi), 1); + ASSERT_EQ(mesh->GetMeshFeaturesMaterialMask(mfi, 0), 0); + } +} + } // namespace #endif // DRACO_TRANSCODER_SUPPORTED diff --git a/src/draco/mesh/triangle_soup_mesh_builder.cc b/src/draco/mesh/triangle_soup_mesh_builder.cc index f86cc76..2af94a0 100644 --- a/src/draco/mesh/triangle_soup_mesh_builder.cc +++ b/src/draco/mesh/triangle_soup_mesh_builder.cc @@ -32,8 +32,14 @@ void TriangleSoupMeshBuilder::SetName(const std::string &name) { int TriangleSoupMeshBuilder::AddAttribute( GeometryAttribute::Type attribute_type, int8_t num_components, DataType data_type) { + return AddAttribute(attribute_type, num_components, data_type, false); +} + +int TriangleSoupMeshBuilder::AddAttribute( + GeometryAttribute::Type attribute_type, int8_t num_components, + DataType data_type, bool normalized) { GeometryAttribute va; - va.Init(attribute_type, nullptr, num_components, data_type, false, + va.Init(attribute_type, nullptr, num_components, data_type, normalized, DataTypeLength(data_type) * num_components, 0); attribute_element_types_.push_back(-1); return mesh_->AddAttribute(va, true, mesh_->num_points()); diff --git a/src/draco/mesh/triangle_soup_mesh_builder.h b/src/draco/mesh/triangle_soup_mesh_builder.h index 3092885..503fe84 100644 --- a/src/draco/mesh/triangle_soup_mesh_builder.h +++ b/src/draco/mesh/triangle_soup_mesh_builder.h @@ -16,8 +16,13 @@ #define DRACO_MESH_TRIANGLE_SOUP_MESH_BUILDER_H_ #include +#include #include "draco/draco_features.h" + +#ifdef DRACO_TRANSCODER_SUPPORTED +#include "draco/core/status.h" +#endif #include "draco/mesh/mesh.h" namespace draco { @@ -27,6 +32,9 @@ namespace draco { // deduplicated. class TriangleSoupMeshBuilder { public: + // Index type of the inserted element. + typedef FaceIndex ElementIndex; + // Starts mesh building for a given number of faces. // TODO(ostava): Currently it's necessary to select the correct number of // faces upfront. This should be generalized, but it will require us to @@ -41,6 +49,8 @@ class TriangleSoupMeshBuilder { // Adds an empty attribute to the mesh. Returns the new attribute's id. int AddAttribute(GeometryAttribute::Type attribute_type, int8_t num_components, DataType data_type); + int AddAttribute(GeometryAttribute::Type attribute_type, + int8_t num_components, DataType data_type, bool normalized); // Sets values for a given attribute on all corners of a given face. void SetAttributeValuesForFace(int att_id, FaceIndex face_id, @@ -48,6 +58,17 @@ class TriangleSoupMeshBuilder { const void *corner_value_1, const void *corner_value_2); +#ifdef DRACO_TRANSCODER_SUPPORTED + // Converts input values of type T into internal representation used by + // |att_id|. Each input value needs to have |input_num_components| entries. + template + Status ConvertAndSetAttributeValuesForFace(int att_id, FaceIndex face_id, + int input_num_components, + const T *corner_value_0, + const T *corner_value_1, + const T *corner_value_2); +#endif + // Sets value for a per-face attribute. If all faces of a given attribute are // set with this method, the attribute will be marked as per-face, otherwise // it will be marked as per-corner attribute. @@ -76,6 +97,30 @@ class TriangleSoupMeshBuilder { std::unique_ptr mesh_; }; +#ifdef DRACO_TRANSCODER_SUPPORTED +template +Status TriangleSoupMeshBuilder::ConvertAndSetAttributeValuesForFace( + int att_id, FaceIndex face_id, int input_num_components, + const T *corner_value_0, const T *corner_value_1, const T *corner_value_2) { + const int start_index = 3 * face_id.value(); + PointAttribute *const att = mesh_->attribute(att_id); + DRACO_RETURN_IF_ERROR( + att->ConvertAndSetAttributeValue(AttributeValueIndex(start_index + 0), + input_num_components, corner_value_0)); + DRACO_RETURN_IF_ERROR( + att->ConvertAndSetAttributeValue(AttributeValueIndex(start_index + 1), + input_num_components, corner_value_1)); + DRACO_RETURN_IF_ERROR( + att->ConvertAndSetAttributeValue(AttributeValueIndex(start_index + 2), + input_num_components, corner_value_2)); + mesh_->SetFace(face_id, + {{PointIndex(start_index), PointIndex(start_index + 1), + PointIndex(start_index + 2)}}); + attribute_element_types_[att_id] = MESH_CORNER_ATTRIBUTE; + return OkStatus(); +} +#endif // DRACO_TRANSCODER_SUPPORTED + } // namespace draco #endif // DRACO_MESH_TRIANGLE_SOUP_MESH_BUILDER_H_ diff --git a/src/draco/mesh/triangle_soup_mesh_builder_test.cc b/src/draco/mesh/triangle_soup_mesh_builder_test.cc index a845888..b236417 100644 --- a/src/draco/mesh/triangle_soup_mesh_builder_test.cc +++ b/src/draco/mesh/triangle_soup_mesh_builder_test.cc @@ -14,7 +14,11 @@ // #include "draco/mesh/triangle_soup_mesh_builder.h" +#include +#include + #include "draco/core/draco_test_base.h" +#include "draco/core/draco_test_utils.h" #include "draco/core/vector_d.h" namespace draco { @@ -145,7 +149,7 @@ TEST_F(TriangleSoupMeshBuilderTest, TestPerFaceAttribs) { Vector3f(0.f, 1.f, 0.f).data(), Vector3f(1.f, 1.f, 0.f).data(), Vector3f(0.f, 1.f, 1.f).data()); - mb.SetPerFaceAttributeValueForFace(gen_att_id, FaceIndex(4), &bool_false);; + mb.SetPerFaceAttributeValueForFace(gen_att_id, FaceIndex(4), &bool_false); mb.SetAttributeValuesForFace(pos_att_id, FaceIndex(5), Vector3f(0.f, 1.f, 1.f).data(), @@ -203,4 +207,61 @@ TEST_F(TriangleSoupMeshBuilderTest, TestPerFaceAttribs) { << "Unexpected attribute element type."; } +#ifdef DRACO_TRANSCODER_SUPPORTED +TEST_F(TriangleSoupMeshBuilderTest, NormalizedColor) { + // This tests, verifies that the mesh builder constructs a valid model with + // normalized integer colors using floating points as input. + TriangleSoupMeshBuilder mb; + mb.Start(2); + const int pos_att_id = + mb.AddAttribute(GeometryAttribute::POSITION, 3, DT_FLOAT32); + const int color_att_id = + mb.AddAttribute(GeometryAttribute::COLOR, 3, DT_UINT8, true); + + mb.SetAttributeValuesForFace( + pos_att_id, FaceIndex(0), Vector3f(0.f, 0.f, 0.f).data(), + Vector3f(1.f, 0.f, 0.f).data(), Vector3f(0.f, 1.f, 0.f).data()); + DRACO_ASSERT_OK(mb.ConvertAndSetAttributeValuesForFace( + color_att_id, FaceIndex(0), 4, Vector4f(0.f, 0.f, 0.f, 1.f).data(), + Vector4f(1.f, 1.f, 1.f, 1.f).data(), + Vector4f(0.5f, 0.5f, 0.5f, 1.f).data())); + mb.SetAttributeValuesForFace( + pos_att_id, FaceIndex(1), Vector3f(0.f, 1.f, 0.f).data(), + Vector3f(1.f, 0.f, 0.f).data(), Vector3f(1.f, 1.f, 0.f).data()); + + DRACO_ASSERT_OK(mb.ConvertAndSetAttributeValuesForFace( + color_att_id, FaceIndex(1), 4, Vector4f(0.5f, 0.5f, 0.5f, 1.f).data(), + Vector4f(1.f, 1.f, 1.f, 1.f).data(), + Vector4f(0.25f, 0.0f, 1.f, 1.f).data())); + + std::unique_ptr mesh = mb.Finalize(); + ASSERT_NE(mesh, nullptr) << "Failed to build the test mesh."; + + EXPECT_EQ(mesh->num_points(), 4) << "Unexpected number of vertices."; + EXPECT_EQ(mesh->num_faces(), 2) << "Unexpected number of faces."; + + const auto *col_att = + mesh->GetNamedAttribute(draco::GeometryAttribute::COLOR); + ASSERT_NE(col_att, nullptr) << "Missing color attribute."; + ASSERT_EQ(col_att->size(), 4); + + // All colors should be in range 0-255. + uint8_t max_val = 0, min_val = 255; + for (draco::AttributeValueIndex avi(0); avi < col_att->size(); ++avi) { + VectorD cval; + col_att->GetValue(avi, &cval); + const uint8_t max = cval.MaxCoeff(); + const uint8_t min = cval.MinCoeff(); + if (max > max_val) { + max_val = max; + } + if (min < min_val) { + min_val = min; + } + } + ASSERT_EQ(max_val, 255); + ASSERT_EQ(min_val, 0); +} +#endif + } // namespace draco diff --git a/src/draco/metadata/metadata_decoder.cc b/src/draco/metadata/metadata_decoder.cc index 30fc408..6468e32 100644 --- a/src/draco/metadata/metadata_decoder.cc +++ b/src/draco/metadata/metadata_decoder.cc @@ -131,6 +131,9 @@ bool MetadataDecoder::DecodeEntry(Metadata *metadata) { if (data_size == 0) { return false; } + if (data_size > buffer_->remaining_size()) { + return false; + } std::vector entry_value(data_size); if (!buffer_->Decode(&entry_value[0], data_size)) { return false; diff --git a/src/draco/metadata/property_table.cc b/src/draco/metadata/property_table.cc new file mode 100644 index 0000000..c6a5fd9 --- /dev/null +++ b/src/draco/metadata/property_table.cc @@ -0,0 +1,183 @@ +// Copyright 2022 The Draco Authors. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// +#include "draco/metadata/property_table.h" + +#include +#include +#include +#include + +#ifdef DRACO_TRANSCODER_SUPPORTED + +namespace draco { + +bool PropertyTable::Schema::Object::operator==(const Object& other) const { + if (type_ != other.type_ || name_ != other.name_) { + return false; + } + switch (type_) { + case OBJECT: + if (objects_.size() != other.objects_.size()) { + return false; + } + for (int i = 0; i < objects_.size(); ++i) { + if (objects_[i] != other.objects_[i]) { + return false; + } + } + break; + case ARRAY: + if (array_.size() != other.array_.size()) { + return false; + } + for (int i = 0; i < array_.size(); ++i) { + if (array_[i] != other.array_[i]) { + return false; + } + } + break; + case STRING: + return string_ == other.string_; + case INTEGER: + return integer_ == other.integer_; + case BOOLEAN: + return boolean_ == other.boolean_; + } + return true; +} + +void PropertyTable::Schema::Object::Copy(const Object& src) { + name_ = src.name_; + type_ = src.type_; + objects_.reserve(src.objects_.size()); + for (const Object& obj : src.objects_) { + objects_.emplace_back(); + objects_.back().Copy(obj); + } + array_.reserve(src.array_.size()); + for (const Object& obj : src.array_) { + array_.emplace_back(); + array_.back().Copy(obj); + } + string_ = src.string_; + integer_ = src.integer_; + boolean_ = src.boolean_; +} + +PropertyTable::Property::Property() {} + +bool PropertyTable::Property::Data::operator==(const Data& other) const { + return data == other.data && target == other.target; +} + +bool PropertyTable::Property::Offsets::operator==(const Offsets& other) const { + return data == other.data && type == other.type; +} + +bool PropertyTable::Property::operator==(const Property& other) const { + return name_ == other.name_ && data_ == other.data_ && + array_offsets_ == other.array_offsets_ && + string_offsets_ == other.string_offsets_; +} + +void PropertyTable::Property::Copy(const Property& src) { + name_ = src.name_; + data_ = src.data_; + array_offsets_ = src.array_offsets_; + string_offsets_ = src.string_offsets_; +} + +void PropertyTable::Property::SetName(const std::string& name) { name_ = name; } +const std::string& PropertyTable::Property::GetName() const { return name_; } + +PropertyTable::Property::Data& PropertyTable::Property::GetData() { + return data_; +} +const PropertyTable::Property::Data& PropertyTable::Property::GetData() const { + return data_; +} + +const PropertyTable::Property::Offsets& +PropertyTable::Property::GetArrayOffsets() const { + return array_offsets_; +} +PropertyTable::Property::Offsets& PropertyTable::Property::GetArrayOffsets() { + return array_offsets_; +} + +const PropertyTable::Property::Offsets& +PropertyTable::Property::GetStringOffsets() const { + return string_offsets_; +} +PropertyTable::Property::Offsets& PropertyTable::Property::GetStringOffsets() { + return string_offsets_; +} + +PropertyTable::PropertyTable() : count_(0) {} + +bool PropertyTable::operator==(const PropertyTable& other) const { + if (name_ != other.name_ || class_ != other.class_ || + count_ != other.count_ || + properties_.size() != other.properties_.size()) { + return false; + } + for (int i = 0; i < properties_.size(); ++i) { + if (*properties_[i] != *other.properties_[i]) { + return false; + } + } + return true; +} + +void PropertyTable::Copy(const PropertyTable& src) { + name_ = src.name_; + class_ = src.class_; + count_ = src.count_; + properties_.clear(); + properties_.reserve(src.properties_.size()); + for (int i = 0; i < src.properties_.size(); ++i) { + std::unique_ptr property(new Property()); + property->Copy(src.GetProperty(i)); + properties_.push_back(std::move(property)); + } +} + +void PropertyTable::SetName(const std::string& value) { name_ = value; } +const std::string& PropertyTable::GetName() const { return name_; } + +void PropertyTable::SetClass(const std::string& value) { class_ = value; } +const std::string& PropertyTable::GetClass() const { return class_; } + +void PropertyTable::SetCount(int count) { count_ = count; } +int PropertyTable::GetCount() const { return count_; } + +int PropertyTable::AddProperty(std::unique_ptr property) { + properties_.push_back(std::move(property)); + return properties_.size() - 1; +} +int PropertyTable::NumProperties() const { return properties_.size(); } +const PropertyTable::Property& PropertyTable::GetProperty(int index) const { + return *properties_[index]; +} +PropertyTable::Property& PropertyTable::GetProperty(int index) { + return *properties_[index]; +} +void PropertyTable::RemoveProperty(int index) { + properties_.erase(properties_.begin() + index); +} + +} // namespace draco + +#endif // DRACO_TRANSCODER_SUPPORTED diff --git a/src/draco/metadata/property_table.h b/src/draco/metadata/property_table.h new file mode 100644 index 0000000..41efb01 --- /dev/null +++ b/src/draco/metadata/property_table.h @@ -0,0 +1,243 @@ +// Copyright 2022 The Draco Authors. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// +#ifndef DRACO_METADATA_PROPERTY_TABLE_H_ +#define DRACO_METADATA_PROPERTY_TABLE_H_ + +#include "draco/draco_features.h" + +#ifdef DRACO_TRANSCODER_SUPPORTED + +#include +#include +#include + +namespace draco { + +// Describes a property table as defined in the EXT_structural_metadata glTF +// extension, including property table schema and table properties (columns). +class PropertyTable { + public: + // Describes property table schema in the form of a JSON object. + struct Schema { + // JSON object of the schema. + // TODO(vytyaz): Consider using a third_party/json library. Currently there + // is a conflict between Filament's assert_invariant() macro and JSON + // library's assert_invariant() method that causes compile errors in Draco + // visualization library. + class Object { + public: + enum Type { OBJECT, ARRAY, STRING, INTEGER, BOOLEAN }; + + // Constructors. + Object() : Object("") {} + explicit Object(const std::string& name) + : name_(name), type_(OBJECT), integer_(0), boolean_(false) {} + Object(const std::string& name, const std::string& value) : Object(name) { + SetString(value); + } + Object(const std::string& name, const char* value) : Object(name) { + SetString(value); + } + Object(const std::string& name, int value) : Object(name) { + SetInteger(value); + } + Object(const std::string& name, bool value) : Object(name) { + SetBoolean(value); + } + + // Methods for comparing two objects. + bool operator==(const Object& other) const; + bool operator!=(const Object& other) const { return !(*this == other); } + + // Method for copying the object. + void Copy(const Object& src); + + // Methods for getting object name and type. + const std::string& GetName() const { return name_; } + Type GetType() const { return type_; } + + // Methods for getting object value. + const std::vector& GetObjects() const { return objects_; } + const std::vector& GetArray() const { return array_; } + const std::string& GetString() const { return string_; } + int GetInteger() const { return integer_; } + bool GetBoolean() const { return boolean_; } + + // Methods for setting object value. + std::vector& SetObjects() { + type_ = OBJECT; + return objects_; + } + std::vector& SetArray() { + type_ = ARRAY; + return array_; + } + void SetString(const std::string& value) { + type_ = STRING; + string_ = value; + } + void SetInteger(int value) { + type_ = INTEGER; + integer_ = value; + } + void SetBoolean(bool value) { + type_ = BOOLEAN; + boolean_ = value; + } + + private: + std::string name_; + Type type_; + std::vector objects_; + std::vector array_; + std::string string_; + int integer_; + bool boolean_; + }; + + // Valid schema top-level JSON object name is "schema". + Schema() : json("schema") {} + + // Methods for comparing two schemas. + bool operator==(const Schema& other) const { return json == other.json; } + bool operator!=(const Schema& other) const { return !(*this == other); } + + // Valid schema top-level JSON object is required to have child objects. + bool Empty() const { return json.GetObjects().empty(); } + + // Top-level JSON object of the schema. + Object json; + }; + + // Describes a property (column) of a property table. + class Property { + public: + // Describes glTF buffer view data. + struct Data { + // Methods for comparing two data objects. + bool operator==(const Data& other) const; + bool operator!=(const Data& other) const { return !(*this == other); } + + // Buffer view data. + std::vector data; + + // Data target corresponds to the target property of the glTF bufferView + // object and classifies the type or nature of the data. + int target = 0; + }; + + // Describes offsets of the entries in property data when the data + // represents an array of strings or an array of variable-length number + // arrays. + struct Offsets { + // Methods for comparing two offsets. + bool operator==(const Offsets& other) const; + bool operator!=(const Offsets& other) const { return !(*this == other); } + + // Data containing the offset entries. + Data data; + + // Data type of the offset entries. + std::string type; + }; + + // Creates an empty property. + Property(); + + // Methods for comparing two properties. + bool operator==(const Property& other) const; + bool operator!=(const Property& other) const { return !(*this == other); } + + // Copies all data from |src| property. + void Copy(const Property& src); + + // Name of this property. + void SetName(const std::string& name); + const std::string& GetName() const; + + // Property data stores one table column worth of data. For example, when + // the data of type UINT8 is [11, 22] then the property values are 11 and 22 + // for the first and second table rows. See EXT_structural_metadata glTF + // extension documentation for more details. + Data& GetData(); + const Data& GetData() const; + + // Array offsets are used when property data contains a variable-length + // number arrays. For example, when the data is [0, 1, 2, 3, 4] and the + // array offsets are [0, 2, 5] for a two-row table, then the property value + // arrays are [0, 1] and [2, 3, 4] for the first and second table rows, + // respectively. See EXT_structural_metadata glTF extension documentation + // for more details. + const Offsets& GetArrayOffsets() const; + Offsets& GetArrayOffsets(); + + // String offsets are used when property data contains strings. For example, + // when the data is "SeaLand" and the array offsets are [0, 3, 7] for a + // two-row table, then the property strings are "Sea" and "Land" for the + // first and second table rows, respectively. See EXT_structural_metadata + // glTF extension documentation for more details. + const Offsets& GetStringOffsets() const; + Offsets& GetStringOffsets(); + + private: + std::string name_; + Data data_; + Offsets array_offsets_; + Offsets string_offsets_; + // TODO(vytyaz): Support property value modifiers min, max, offset, scale. + }; + + // Creates an empty property table. + PropertyTable(); + + // Methods for comparing two property tables. + bool operator==(const PropertyTable& other) const; + bool operator!=(const PropertyTable& other) const { + return !(*this == other); + } + + // Copies all data from |src| property table. + void Copy(const PropertyTable& src); + + // Name of this property table. + void SetName(const std::string& value); + const std::string& GetName() const; + + // Class of this property table. + void SetClass(const std::string& value); + const std::string& GetClass() const; + + // Number of rows in this property table. + void SetCount(int count); + int GetCount() const; + + // Table properties (columns). + int AddProperty(std::unique_ptr property); + int NumProperties() const; + const Property& GetProperty(int index) const; + Property& GetProperty(int index); + void RemoveProperty(int index); + + private: + std::string name_; + std::string class_; + int count_; + std::vector> properties_; +}; + +} // namespace draco + +#endif // DRACO_TRANSCODER_SUPPORTED +#endif // DRACO_METADATA_PROPERTY_TABLE_H_ diff --git a/src/draco/metadata/property_table_test.cc b/src/draco/metadata/property_table_test.cc new file mode 100644 index 0000000..4d5ee2d --- /dev/null +++ b/src/draco/metadata/property_table_test.cc @@ -0,0 +1,624 @@ +// Copyright 2022 The Draco Authors. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// +#include "draco/metadata/property_table.h" + +#include +#include +#include + +#include "draco/core/draco_test_base.h" +#include "draco/core/draco_test_utils.h" + +namespace { + +#ifdef DRACO_TRANSCODER_SUPPORTED + +TEST(PropertyTableTest, TestPropertyDataDefaults) { + // Test construction of an empty property data. + draco::PropertyTable::Property::Data data; + ASSERT_TRUE(data.data.empty()); + ASSERT_EQ(data.target, 0); +} + +TEST(PropertyTableTest, TestPropertyDefaults) { + // Test construction of an empty property table property. + draco::PropertyTable::Property property; + ASSERT_TRUE(property.GetName().empty()); + ASSERT_TRUE(property.GetData().data.empty()); + { + const auto &offsets = property.GetArrayOffsets(); + ASSERT_TRUE(offsets.type.empty()); + ASSERT_TRUE(offsets.data.data.empty()); + ASSERT_EQ(offsets.data.target, 0); + } + { + const auto &offsets = property.GetStringOffsets(); + ASSERT_TRUE(offsets.type.empty()); + ASSERT_TRUE(offsets.data.data.empty()); + ASSERT_EQ(offsets.data.target, 0); + } +} + +TEST(PropertyTableTest, TestPropertyTableDefaults) { + // Test construction of an empty property table. + draco::PropertyTable table; + ASSERT_TRUE(table.GetName().empty()); + ASSERT_TRUE(table.GetClass().empty()); + ASSERT_EQ(table.GetCount(), 0); + ASSERT_EQ(table.NumProperties(), 0); +} + +TEST(PropertyTableTest, TestSchemaDefaults) { + // Test construction of an empty property table schema. + draco::PropertyTable::Schema schema; + ASSERT_TRUE(schema.Empty()); + ASSERT_EQ(schema.json.GetName(), "schema"); + ASSERT_EQ(schema.json.GetType(), + draco::PropertyTable::Schema::Object::OBJECT); + ASSERT_TRUE(schema.json.GetObjects().empty()); + ASSERT_TRUE(schema.json.GetArray().empty()); + ASSERT_TRUE(schema.json.GetString().empty()); + ASSERT_EQ(schema.json.GetInteger(), 0); + ASSERT_FALSE(schema.json.GetBoolean()); +} + +TEST(PropertyTableTest, TestSchemaObjectDefaultConstructor) { + // Test construction of an empty property table schema object. + draco::PropertyTable::Schema::Object object; + ASSERT_TRUE(object.GetName().empty()); + ASSERT_EQ(object.GetType(), draco::PropertyTable::Schema::Object::OBJECT); + ASSERT_TRUE(object.GetObjects().empty()); + ASSERT_TRUE(object.GetArray().empty()); + ASSERT_TRUE(object.GetString().empty()); + ASSERT_EQ(object.GetInteger(), 0); + ASSERT_FALSE(object.GetBoolean()); +} + +TEST(PropertyTableTest, TestSchemaObjectNamedConstructor) { + // Test construction of a named property table schema object. + draco::PropertyTable::Schema::Object object("Flexible Demeanour"); + ASSERT_EQ(object.GetName(), "Flexible Demeanour"); + ASSERT_EQ(object.GetType(), draco::PropertyTable::Schema::Object::OBJECT); + ASSERT_TRUE(object.GetObjects().empty()); +} + +TEST(PropertyTableTest, TestSchemaObjectStringConstructor) { + // Test construction of property table schema object storing a string. + draco::PropertyTable::Schema::Object object("Flexible Demeanour", "GCU"); + ASSERT_EQ(object.GetName(), "Flexible Demeanour"); + ASSERT_EQ(object.GetType(), draco::PropertyTable::Schema::Object::STRING); + ASSERT_EQ(object.GetString(), "GCU"); +} + +TEST(PropertyTableTest, TestSchemaObjectIntegerConstructor) { + // Test construction of property table schema object storing an integer. + draco::PropertyTable::Schema::Object object("Flexible Demeanour", 12); + ASSERT_EQ(object.GetName(), "Flexible Demeanour"); + ASSERT_EQ(object.GetType(), draco::PropertyTable::Schema::Object::INTEGER); + ASSERT_EQ(object.GetInteger(), 12); +} + +TEST(PropertyTableTest, TestSchemaObjectBooleanConstructor) { + // Test construction of property table schema object storing a boolean. + draco::PropertyTable::Schema::Object object("Flexible Demeanour", true); + ASSERT_EQ(object.GetName(), "Flexible Demeanour"); + ASSERT_EQ(object.GetType(), draco::PropertyTable::Schema::Object::BOOLEAN); + ASSERT_TRUE(object.GetBoolean()); +} + +TEST(PropertyTableTest, TestSchemaObjectSettersAndGetters) { + // Test value setters and getters of property table schema object. + typedef draco::PropertyTable::Schema::Object Object; + Object object; + ASSERT_EQ(object.GetType(), Object::OBJECT); + + object.SetArray().push_back(Object("entry", 12)); + ASSERT_EQ(object.GetType(), Object::ARRAY); + ASSERT_EQ(object.GetArray().size(), 1); + ASSERT_EQ(object.GetArray()[0].GetName(), "entry"); + ASSERT_EQ(object.GetArray()[0].GetInteger(), 12); + + object.SetObjects().push_back(Object("object", 9)); + ASSERT_EQ(object.GetType(), Object::OBJECT); + ASSERT_EQ(object.GetObjects().size(), 1); + ASSERT_EQ(object.GetObjects()[0].GetName(), "object"); + ASSERT_EQ(object.GetObjects()[0].GetInteger(), 9); + + object.SetString("matter"); + ASSERT_EQ(object.GetType(), Object::STRING); + ASSERT_EQ(object.GetString(), "matter"); + + object.SetInteger(5); + ASSERT_EQ(object.GetType(), Object::INTEGER); + ASSERT_EQ(object.GetInteger(), 5); + + object.SetBoolean(true); + ASSERT_EQ(object.GetType(), Object::BOOLEAN); + ASSERT_EQ(object.GetBoolean(), true); +} + +TEST(PropertyTableTest, TestSchemaCompare) { + typedef draco::PropertyTable::Schema Schema; + // Test comparison of two schema objects. + { + // Compare the same empty schema object. + Schema a; + ASSERT_TRUE(a == a); + ASSERT_FALSE(a != a); + } + { + // Compare two empty schema objects. + Schema a; + Schema b; + ASSERT_TRUE(a == b); + ASSERT_FALSE(a != b); + } + { + // Compare two schema objects with different JSON objects. + Schema a; + Schema b; + a.json.SetBoolean(true); + b.json.SetBoolean(false); + ASSERT_FALSE(a == b); + ASSERT_TRUE(a != b); + } +} + +TEST(PropertyTableTest, TestSchemaObjectCompare) { + // Test comparison of two schema JSON objects. + typedef draco::PropertyTable::Schema::Object Object; + { + // Compare the same object. + Object a; + ASSERT_TRUE(a == a); + ASSERT_FALSE(a != a); + } + { + // Compare two default objects. + Object a; + Object b; + ASSERT_TRUE(a == b); + ASSERT_FALSE(a != b); + } + { + // Compare two objects with different names. + Object a("one"); + Object b("two"); + ASSERT_FALSE(a == b); + ASSERT_TRUE(a != b); + } + { + // Compare two objects with different types. + Object a; + Object b; + a.SetInteger(1); + b.SetString("one"); + ASSERT_FALSE(a == b); + ASSERT_TRUE(a != b); + } + { + // Compare two identical string-type objects. + Object a; + Object b; + a.SetString("one"); + b.SetString("one"); + ASSERT_TRUE(a == b); + ASSERT_FALSE(a != b); + } + { + // Compare two different string-type objects. + Object a; + Object b; + a.SetString("one"); + b.SetString("two"); + ASSERT_FALSE(a == b); + ASSERT_TRUE(a != b); + } + { + // Compare two identical integer-type objects. + Object a; + Object b; + a.SetInteger(1); + b.SetInteger(1); + ASSERT_TRUE(a == b); + ASSERT_FALSE(a != b); + } + { + // Compare two different integer-type objects. + Object a; + Object b; + a.SetInteger(1); + b.SetInteger(2); + ASSERT_FALSE(a == b); + ASSERT_TRUE(a != b); + } + { + // Compare two identical boolean-type objects. + Object a; + Object b; + a.SetBoolean(true); + b.SetBoolean(true); + ASSERT_TRUE(a == b); + ASSERT_FALSE(a != b); + } + { + // Compare two different boolean-type objects. + Object a; + Object b; + a.SetBoolean(true); + b.SetBoolean(false); + ASSERT_FALSE(a == b); + ASSERT_TRUE(a != b); + } + { + // Compare two identical object-type objects. + Object a; + Object b; + a.SetObjects().emplace_back("one"); + b.SetObjects().emplace_back("one"); + ASSERT_TRUE(a == b); + ASSERT_FALSE(a != b); + } + { + // Compare two different object-type objects. + Object a; + Object b; + a.SetObjects().emplace_back("one"); + b.SetObjects().emplace_back("two"); + ASSERT_FALSE(a == b); + ASSERT_TRUE(a != b); + } + { + // Compare two object-type objects with different counts. + Object a; + Object b; + a.SetObjects().emplace_back("one"); + b.SetObjects().emplace_back("one"); + b.SetObjects().emplace_back("two"); + ASSERT_FALSE(a == b); + ASSERT_TRUE(a != b); + } + { + // Compare two identical array-type objects. + Object a; + Object b; + a.SetArray().emplace_back("", 1); + b.SetArray().emplace_back("", 1); + ASSERT_TRUE(a == b); + ASSERT_FALSE(a != b); + } + { + // Compare two different array-type objects. + Object a; + Object b; + a.SetArray().emplace_back("", 1); + b.SetArray().emplace_back("", 2); + ASSERT_FALSE(a == b); + ASSERT_TRUE(a != b); + } + { + // Compare two array-type objects with different counts. + Object a; + Object b; + a.SetArray().emplace_back("", 1); + b.SetArray().emplace_back("", 1); + b.SetArray().emplace_back("", 2); + ASSERT_FALSE(a == b); + ASSERT_TRUE(a != b); + } +} + +TEST(PropertyTableTest, TestPropertySettersAndGetters) { + // Test setter and getter methods of the property table property. + draco::PropertyTable::Property property; + property.SetName("Unfortunate Conflict Of Evidence"); + property.GetData().data.push_back(2); + + // Check that property members can be accessed via getters. + ASSERT_EQ(property.GetName(), "Unfortunate Conflict Of Evidence"); + ASSERT_EQ(property.GetData().data.size(), 1); + ASSERT_EQ(property.GetData().data[0], 2); +} + +TEST(PropertyTableTest, TestPropertyTableSettersAndGetters) { + // Test setter and getter methods of the property table. + draco::PropertyTable table; + table.SetName("Just Read The Instructions"); + table.SetClass("General Contact Unit"); + table.SetCount(456); + { + std::unique_ptr property( + new draco::PropertyTable::Property()); + property->SetName("Determinist"); + ASSERT_EQ(table.AddProperty(std::move(property)), 0); + } + { + std::unique_ptr property( + new draco::PropertyTable::Property()); + property->SetName("Revisionist"); + ASSERT_EQ(table.AddProperty(std::move(property)), 1); + } + + // Check that property table members can be accessed via getters. + ASSERT_EQ(table.GetName(), "Just Read The Instructions"); + ASSERT_EQ(table.GetClass(), "General Contact Unit"); + ASSERT_EQ(table.GetCount(), 456); + ASSERT_EQ(table.NumProperties(), 2); + ASSERT_EQ(table.GetProperty(0).GetName(), "Determinist"); + ASSERT_EQ(table.GetProperty(1).GetName(), "Revisionist"); + + // Check that proeprties can be removed. + table.RemoveProperty(0); + ASSERT_EQ(table.NumProperties(), 1); + ASSERT_EQ(table.GetProperty(0).GetName(), "Revisionist"); + table.RemoveProperty(0); + ASSERT_EQ(table.NumProperties(), 0); +} + +TEST(PropertyTableTest, TestPropertyCopy) { + // Test that property table property can be copied. + draco::PropertyTable::Property property; + property.SetName("Unfortunate Conflict Of Evidence"); + property.GetData().data.push_back(2); + + // Make a copy. + draco::PropertyTable::Property copy; + copy.Copy(property); + + // Check the copy. + ASSERT_EQ(copy.GetName(), "Unfortunate Conflict Of Evidence"); + ASSERT_EQ(copy.GetData().data.size(), 1); + ASSERT_EQ(copy.GetData().data[0], 2); +} + +TEST(PropertyTableTest, TestPropertyTableCopy) { + // Test that property table can be copied. + draco::PropertyTable table; + table.SetName("Just Read The Instructions"); + table.SetClass("General Contact Unit"); + table.SetCount(456); + { + std::unique_ptr property( + new draco::PropertyTable::Property()); + property->SetName("Determinist"); + table.AddProperty(std::move(property)); + } + { + std::unique_ptr property( + new draco::PropertyTable::Property()); + property->SetName("Revisionist"); + table.AddProperty(std::move(property)); + } + + // Make a copy. + draco::PropertyTable copy; + copy.Copy(table); + + // Check the copy. + ASSERT_EQ(copy.GetName(), "Just Read The Instructions"); + ASSERT_EQ(copy.GetClass(), "General Contact Unit"); + ASSERT_EQ(copy.GetCount(), 456); + ASSERT_EQ(copy.NumProperties(), 2); + ASSERT_EQ(copy.GetProperty(0).GetName(), "Determinist"); + ASSERT_EQ(copy.GetProperty(1).GetName(), "Revisionist"); +} + +TEST(PropertyTableTest, TestPropertyDataCompare) { + // Test comparison of two property data objects. + typedef draco::PropertyTable::Property::Data Data; + { + // Compare the same data object. + Data a; + ASSERT_TRUE(a == a); + ASSERT_FALSE(a != a); + } + { + // Compare two default data objects. + Data a; + Data b; + ASSERT_TRUE(a == b); + ASSERT_FALSE(a != b); + } + { + // Compare two data objects with different targets. + Data a; + Data b; + a.target = 1; + b.target = 2; + ASSERT_FALSE(a == b); + ASSERT_TRUE(a != b); + } + { + // Compare two data objects with different data vectors. + Data a; + Data b; + a.data = {1}; + a.data = {2}; + ASSERT_FALSE(a == b); + ASSERT_TRUE(a != b); + } +} + +TEST(PropertyTableTest, TestPropertyOffsets) { + // Test comparison of two property offsets. + typedef draco::PropertyTable::Property::Offsets Offsets; + { + // Compare the same offsets object. + Offsets a; + ASSERT_TRUE(a == a); + ASSERT_FALSE(a != a); + } + { + // Compare two default offsets objects. + Offsets a; + Offsets b; + ASSERT_TRUE(a == b); + ASSERT_FALSE(a != b); + } + { + // Compare two offsets objects with different types. + Offsets a; + Offsets b; + a.type = 1; + b.type = 2; + ASSERT_FALSE(a == b); + ASSERT_TRUE(a != b); + } + { + // Compare two offsets objects with different data objects. + Offsets a; + Offsets b; + a.data.target = 1; + b.data.target = 2; + ASSERT_FALSE(a == b); + ASSERT_TRUE(a != b); + } +} + +TEST(PropertyTableTest, TestPropertyCompare) { + // Test comparison of two properties. + typedef draco::PropertyTable::Property Property; + { + // Compare the same property object. + Property a; + ASSERT_TRUE(a == a); + ASSERT_FALSE(a != a); + } + { + // Compare two default property objects. + Property a; + Property b; + ASSERT_TRUE(a == b); + ASSERT_FALSE(a != b); + } + { + // Compare two property objects with different names. + Property a; + Property b; + a.SetName("one"); + b.SetName("two"); + ASSERT_FALSE(a == b); + ASSERT_TRUE(a != b); + } + { + // Compare two property objects with different data. + Property a; + Property b; + a.GetData().target = 1; + b.GetData().target = 2; + ASSERT_FALSE(a == b); + ASSERT_TRUE(a != b); + } + { + // Compare two property objects with different array offsets. + Property a; + Property b; + a.GetArrayOffsets().data.target = 1; + b.GetArrayOffsets().data.target = 2; + ASSERT_FALSE(a == b); + ASSERT_TRUE(a != b); + } + { + // Compare two property objects with different string offsets. + Property a; + Property b; + a.GetStringOffsets().data.target = 1; + b.GetStringOffsets().data.target = 2; + ASSERT_FALSE(a == b); + ASSERT_TRUE(a != b); + } +} + +TEST(PropertyTableTest, TestPropertyTableCompare) { + // Test comparison of two property tables. + typedef draco::PropertyTable PropertyTable; + typedef draco::PropertyTable::Property Property; + { + // Compare the same property table object. + PropertyTable a; + ASSERT_TRUE(a == a); + ASSERT_FALSE(a != a); + } + { + // Compare two default property tables. + PropertyTable a; + PropertyTable b; + ASSERT_TRUE(a == b); + ASSERT_FALSE(a != b); + } + { + // Compare two property tables with different names. + PropertyTable a; + PropertyTable b; + a.SetName("one"); + b.SetName("two"); + ASSERT_FALSE(a == b); + ASSERT_TRUE(a != b); + } + { + // Compare two property tables with different classes. + PropertyTable a; + PropertyTable b; + a.SetClass("one"); + b.SetClass("two"); + ASSERT_FALSE(a == b); + ASSERT_TRUE(a != b); + } + { + // Compare two property tables with different counts. + PropertyTable a; + PropertyTable b; + a.SetCount(1); + b.SetCount(2); + ASSERT_FALSE(a == b); + ASSERT_TRUE(a != b); + } + { + // Compare two property tables with identical properties. + PropertyTable a; + PropertyTable b; + a.AddProperty(std::unique_ptr(new Property)); + b.AddProperty(std::unique_ptr(new Property)); + ASSERT_TRUE(a == b); + ASSERT_FALSE(a != b); + } + { + // Compare two property tables with different number of properties. + PropertyTable a; + PropertyTable b; + a.AddProperty(std::unique_ptr(new Property)); + b.AddProperty(std::unique_ptr(new Property)); + b.AddProperty(std::unique_ptr(new Property)); + ASSERT_FALSE(a == b); + ASSERT_TRUE(a != b); + } + { + // Compare two property tables with different properties. + PropertyTable a; + PropertyTable b; + std::unique_ptr p1(new Property); + std::unique_ptr p2(new Property); + p1->SetName("one"); + p2->SetName("two"); + a.AddProperty(std::move(p1)); + b.AddProperty(std::move(p2)); + ASSERT_FALSE(a == b); + ASSERT_TRUE(a != b); + } +} + +#endif // DRACO_TRANSCODER_SUPPORTED + +} // namespace diff --git a/src/draco/metadata/structural_metadata.cc b/src/draco/metadata/structural_metadata.cc new file mode 100644 index 0000000..48fff2b --- /dev/null +++ b/src/draco/metadata/structural_metadata.cc @@ -0,0 +1,74 @@ +// Copyright 2022 The Draco Authors. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// +#include "draco/metadata/structural_metadata.h" + +#include +#include + +#ifdef DRACO_TRANSCODER_SUPPORTED + +namespace draco { + +StructuralMetadata::StructuralMetadata() {} + +bool StructuralMetadata::operator==(const StructuralMetadata &other) const { + return property_table_schema_ == other.property_table_schema_ && + property_tables_ == other.property_tables_; +} + +void StructuralMetadata::Copy(const StructuralMetadata &src) { + property_table_schema_.json.Copy(src.property_table_schema_.json); + property_tables_.resize(src.property_tables_.size()); + for (int i = 0; i < property_tables_.size(); ++i) { + property_tables_[i] = std::unique_ptr(new PropertyTable()); + property_tables_[i]->Copy(*src.property_tables_[i]); + } +} + +void StructuralMetadata::SetPropertyTableSchema( + const PropertyTable::Schema &schema) { + property_table_schema_ = schema; +} + +const PropertyTable::Schema &StructuralMetadata::GetPropertyTableSchema() + const { + return property_table_schema_; +} + +int StructuralMetadata::AddPropertyTable( + std::unique_ptr property_table) { + property_tables_.push_back(std::move(property_table)); + return property_tables_.size() - 1; +} + +int StructuralMetadata::NumPropertyTables() const { + return property_tables_.size(); +} + +const PropertyTable &StructuralMetadata::GetPropertyTable(int index) const { + return *property_tables_[index]; +} + +PropertyTable &StructuralMetadata::GetPropertyTable(int index) { + return *property_tables_[index]; +} + +void StructuralMetadata::RemovePropertyTable(int index) { + property_tables_.erase(property_tables_.begin() + index); +} + +} // namespace draco + +#endif // DRACO_TRANSCODER_SUPPORTED diff --git a/src/draco/metadata/structural_metadata.h b/src/draco/metadata/structural_metadata.h new file mode 100644 index 0000000..24756c7 --- /dev/null +++ b/src/draco/metadata/structural_metadata.h @@ -0,0 +1,64 @@ +// Copyright 2022 The Draco Authors. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// +#ifndef DRACO_METADATA_STRUCTURAL_METADATA_H_ +#define DRACO_METADATA_STRUCTURAL_METADATA_H_ + +#include "draco/draco_features.h" + +#ifdef DRACO_TRANSCODER_SUPPORTED + +#include +#include +#include + +#include "draco/metadata/property_table.h" + +namespace draco { + +// Holds data associated with EXT_structural_metadata glTF extension. +class StructuralMetadata { + public: + StructuralMetadata(); + + // Methods for comparing two structural metadata objects. + bool operator==(const StructuralMetadata &other) const; + bool operator!=(const StructuralMetadata &other) const { + return !(*this == other); + } + + // Copies |src| structural metadata into this object. + void Copy(const StructuralMetadata &src); + + // Property table schema. + void SetPropertyTableSchema(const PropertyTable::Schema &schema); + const PropertyTable::Schema &GetPropertyTableSchema() const; + + // Property tables. + int AddPropertyTable(std::unique_ptr property_table); + int NumPropertyTables() const; + const PropertyTable &GetPropertyTable(int index) const; + PropertyTable &GetPropertyTable(int index); + void RemovePropertyTable(int index); + + private: + // Property table schema and property tables. + PropertyTable::Schema property_table_schema_; + std::vector> property_tables_; +}; + +} // namespace draco + +#endif // DRACO_TRANSCODER_SUPPORTED +#endif // DRACO_METADATA_STRUCTURAL_METADATA_H_ diff --git a/src/draco/metadata/structural_metadata_test.cc b/src/draco/metadata/structural_metadata_test.cc new file mode 100644 index 0000000..d0429a5 --- /dev/null +++ b/src/draco/metadata/structural_metadata_test.cc @@ -0,0 +1,170 @@ +// Copyright 2022 The Draco Authors. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// +#include "draco/metadata/structural_metadata.h" + +#include +#include +#include + +#include "draco/core/draco_test_base.h" +#include "draco/core/draco_test_utils.h" + +namespace { + +#ifdef DRACO_TRANSCODER_SUPPORTED + +TEST(StructuralMetadataTest, TestCopy) { + // Tests copying of structural metadata. + draco::StructuralMetadata structural_metadata; + + // Add property table schema to structural metadata. + draco::PropertyTable::Schema schema; + schema.json.SetString("Culture"); + structural_metadata.SetPropertyTableSchema(schema); + + // Add property table to structural metadata. + std::unique_ptr table(new draco::PropertyTable()); + table->SetName("Just Read The Instructions"); + table->SetClass("General Contact Unit"); + table->SetCount(456); + { + std::unique_ptr property( + new draco::PropertyTable::Property()); + property->SetName("Determinist"); + table->AddProperty(std::move(property)); + } + { + std::unique_ptr property( + new draco::PropertyTable::Property()); + property->SetName("Revisionist"); + table->AddProperty(std::move(property)); + } + ASSERT_EQ(structural_metadata.AddPropertyTable(std::move(table)), 0); + + // Copy the structural metadata. + draco::StructuralMetadata copy; + copy.Copy(structural_metadata); + + // Check that the structural metadata property table schema has been copied. + ASSERT_EQ(copy.GetPropertyTableSchema().json.GetString(), "Culture"); + + // Check that the structural metadata property table has been copied. + ASSERT_EQ(copy.NumPropertyTables(), 1); + ASSERT_EQ(copy.GetPropertyTable(0).GetName(), "Just Read The Instructions"); + ASSERT_EQ(copy.GetPropertyTable(0).GetClass(), "General Contact Unit"); + ASSERT_EQ(copy.GetPropertyTable(0).GetCount(), 456); + ASSERT_EQ(copy.GetPropertyTable(0).NumProperties(), 2); + ASSERT_EQ(copy.GetPropertyTable(0).GetProperty(0).GetName(), "Determinist"); + ASSERT_EQ(copy.GetPropertyTable(0).GetProperty(1).GetName(), "Revisionist"); +} + +TEST(StructuralMetadataTest, TestPropertyTables) { + // Tests adding and removing of property tables to structural metadata. + draco::StructuralMetadata structural_metadata; + + // Check that property tables can be added. + { + std::unique_ptr table(new draco::PropertyTable()); + table->SetName("Just Read The Instructions"); + ASSERT_EQ(structural_metadata.AddPropertyTable(std::move(table)), 0); + } + { + std::unique_ptr table(new draco::PropertyTable()); + table->SetName("So Much For Subtlety"); + ASSERT_EQ(structural_metadata.AddPropertyTable(std::move(table)), 1); + } + { + std::unique_ptr table(new draco::PropertyTable()); + table->SetName("Of Course I Still Love You"); + ASSERT_EQ(structural_metadata.AddPropertyTable(std::move(table)), 2); + } + draco::StructuralMetadata &sm = structural_metadata; + + // Check that the property tables can be removed. + ASSERT_EQ(sm.NumPropertyTables(), 3); + ASSERT_EQ(sm.GetPropertyTable(0).GetName(), "Just Read The Instructions"); + ASSERT_EQ(sm.GetPropertyTable(1).GetName(), "So Much For Subtlety"); + ASSERT_EQ(sm.GetPropertyTable(2).GetName(), "Of Course I Still Love You"); + + sm.RemovePropertyTable(1); + ASSERT_EQ(sm.NumPropertyTables(), 2); + ASSERT_EQ(sm.GetPropertyTable(0).GetName(), "Just Read The Instructions"); + ASSERT_EQ(sm.GetPropertyTable(1).GetName(), "Of Course I Still Love You"); + + sm.RemovePropertyTable(1); + ASSERT_EQ(sm.NumPropertyTables(), 1); + ASSERT_EQ(sm.GetPropertyTable(0).GetName(), "Just Read The Instructions"); + + sm.RemovePropertyTable(0); + ASSERT_EQ(sm.NumPropertyTables(), 0); +} + +TEST(StructuralMetadataTest, TestCompare) { + // Test comparison of two structural metadata objects. + typedef draco::PropertyTable PropertyTable; + { + // Compare the same structural metadata object. + draco::StructuralMetadata a; + ASSERT_TRUE(a == a); + ASSERT_FALSE(a != a); + } + { + // Compare two identical structural metadata objects. + draco::StructuralMetadata a; + draco::StructuralMetadata b; + ASSERT_TRUE(a == b); + ASSERT_FALSE(a != b); + } + { + // Compare two structural metadata objects with different schemas. + draco::StructuralMetadata a; + draco::StructuralMetadata b; + PropertyTable::Schema s1; + PropertyTable::Schema s2; + s1.json.SetString("one"); + s2.json.SetString("two"); + a.SetPropertyTableSchema(s1); + b.SetPropertyTableSchema(s2); + ASSERT_FALSE(a == b); + ASSERT_TRUE(a != b); + } + { + // Compare two objects with different number of proeprty tables. + draco::StructuralMetadata a; + draco::StructuralMetadata b; + a.AddPropertyTable(std::unique_ptr(new PropertyTable())); + b.AddPropertyTable(std::unique_ptr(new PropertyTable())); + b.AddPropertyTable(std::unique_ptr(new PropertyTable())); + ASSERT_FALSE(a == b); + ASSERT_TRUE(a != b); + } + { + // Compare two objects with different proeprty tables. + draco::StructuralMetadata a; + draco::StructuralMetadata b; + auto p1 = std::unique_ptr(new PropertyTable()); + auto p2 = std::unique_ptr(new PropertyTable()); + p1->SetName("one"); + p2->SetName("two"); + a.AddPropertyTable(std::move(p1)); + b.AddPropertyTable(std::move(p2)); + ASSERT_FALSE(a == b); + ASSERT_TRUE(a != b); + } +} + +#endif // DRACO_TRANSCODER_SUPPORTED + +} // namespace diff --git a/src/draco/point_cloud/point_cloud.cc b/src/draco/point_cloud/point_cloud.cc index be5323a..039c4f2 100644 --- a/src/draco/point_cloud/point_cloud.cc +++ b/src/draco/point_cloud/point_cloud.cc @@ -287,6 +287,11 @@ bool PointCloud::DeduplicateAttributeValues() { BoundingBox PointCloud::ComputeBoundingBox() const { BoundingBox bounding_box; auto pc_att = GetNamedAttribute(GeometryAttribute::POSITION); + if (pc_att == nullptr) { + // Return default invalid bounding box. + return bounding_box; + } + // TODO(b/199760503): Make the BoundingBox a template type, it may not be easy // because PointCloud is not a template. // Or simply add some preconditioning here to make sure the position attribute diff --git a/src/draco/point_cloud/point_cloud_builder.h b/src/draco/point_cloud/point_cloud_builder.h index cf55a72..512b0f7 100644 --- a/src/draco/point_cloud/point_cloud_builder.h +++ b/src/draco/point_cloud/point_cloud_builder.h @@ -15,6 +15,8 @@ #ifndef DRACO_POINT_CLOUD_POINT_CLOUD_BUILDER_H_ #define DRACO_POINT_CLOUD_POINT_CLOUD_BUILDER_H_ +#include + #include "draco/point_cloud/point_cloud.h" namespace draco { @@ -37,6 +39,9 @@ namespace draco { class PointCloudBuilder { public: + // Index type of the inserted element. + typedef PointIndex ElementIndex; + PointCloudBuilder(); // Starts collecting point cloud data. @@ -71,6 +76,12 @@ class PointCloudBuilder { // used until the method Start() is called again. std::unique_ptr Finalize(bool deduplicate_points); + // Add metadata for an attribute. + void AddAttributeMetadata(int32_t att_id, + std::unique_ptr metadata) { + point_cloud_->AddAttributeMetadata(att_id, std::move(metadata)); + } + private: std::unique_ptr point_cloud_; }; diff --git a/src/draco/scene/scene.cc b/src/draco/scene/scene.cc index e05f5fc..9ad5748 100644 --- a/src/draco/scene/scene.cc +++ b/src/draco/scene/scene.cc @@ -68,6 +68,28 @@ void Scene::Copy(const Scene &s) { } material_library_.Copy(s.material_library_); + +#ifdef DRACO_TRANSCODER_SUPPORTED + // Copy non-material textures. + non_material_texture_library_.Copy(s.non_material_texture_library_); + + // Update pointers to non-material textures in mesh feature ID sets of all + // scene meshes. + if (non_material_texture_library_.NumTextures() != 0) { + const auto texture_to_index_map = + s.non_material_texture_library_.ComputeTextureToIndexMap(); + for (MeshIndex i(0); i < NumMeshes(); ++i) { + for (MeshFeaturesIndex j(0); j < GetMesh(i).NumMeshFeatures(); ++j) { + Mesh::UpdateMeshFeaturesTexturePointer(texture_to_index_map, + &non_material_texture_library_, + &GetMesh(i).GetMeshFeatures(j)); + } + } + } +#endif // DRACO_TRANSCODER_SUPPORTED + + // Copy structural metadata. + structural_metadata_.Copy(s.structural_metadata_); } Status Scene::RemoveMesh(MeshIndex index) { diff --git a/src/draco/scene/scene.h b/src/draco/scene/scene.h index cd620e6..3c76ead 100644 --- a/src/draco/scene/scene.h +++ b/src/draco/scene/scene.h @@ -23,6 +23,7 @@ #include "draco/animation/animation.h" #include "draco/animation/skin.h" #include "draco/mesh/mesh.h" +#include "draco/metadata/structural_metadata.h" #include "draco/scene/instance_array.h" #include "draco/scene/light.h" #include "draco/scene/mesh_group.h" @@ -140,6 +141,20 @@ class Scene { } MaterialLibrary &GetMaterialLibrary() { return material_library_; } + // Library that contains non-material textures. + const TextureLibrary &GetNonMaterialTextureLibrary() const { + return non_material_texture_library_; + } + TextureLibrary &GetNonMaterialTextureLibrary() { + return non_material_texture_library_; + } + + // Structural metadata. + const StructuralMetadata &GetStructuralMetadata() const { + return structural_metadata_; + } + StructuralMetadata &GetStructuralMetadata() { return structural_metadata_; } + // Creates an animation and returns the index to the animation. AnimationIndex AddAnimation() { std::unique_ptr animation(new Animation()); @@ -225,6 +240,16 @@ class Scene { // Materials used by this scene. MaterialLibrary material_library_; + + // Texture library for storing non-material textures used by this scene, e.g., + // textures containing mesh feature IDs of EXT_mesh_features glTF extension. + // Note that scene meshes contain pointers to non-material textures. It is + // responsibility of class user to update these pointers when updating the + // textures. See Scene::Copy() for example. + TextureLibrary non_material_texture_library_; + + // Structural metadata defined by the EXT_structural_metadata glTF extension. + StructuralMetadata structural_metadata_; }; } // namespace draco diff --git a/src/draco/scene/scene_are_equivalent.cc b/src/draco/scene/scene_are_equivalent.cc new file mode 100644 index 0000000..7d0663e --- /dev/null +++ b/src/draco/scene/scene_are_equivalent.cc @@ -0,0 +1,109 @@ +// Copyright 2019 The Draco Authors. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// +#include "draco/scene/scene_are_equivalent.h" + +#ifdef DRACO_TRANSCODER_SUPPORTED +#include "draco/mesh/mesh_are_equivalent.h" + +namespace draco { + +bool SceneAreEquivalent::operator()(const Scene &scene0, const Scene &scene1) { + // Check scene component sizes. + if (scene0.NumAnimations() != scene1.NumAnimations()) { + return false; + } + if (scene0.NumMeshGroups() != scene1.NumMeshGroups()) { + return false; + } + if (scene0.NumSkins() != scene1.NumSkins()) { + return false; + } + + // Check equivalence of each mesh. + if (scene0.NumMeshes() != scene1.NumMeshes()) { + return false; + } + for (MeshIndex i(0); i < scene0.NumMeshes(); i++) { + if (!AreEquivalent(scene0.GetMesh(i), scene1.GetMesh(i))) { + return false; + } + } + + // Check eqiuvalence of each node. + if (scene0.NumNodes() != scene1.NumNodes()) { + return false; + } + for (SceneNodeIndex i(0); i < scene0.NumNodes(); i++) { + if (!AreEquivalent(*scene0.GetNode(i), *scene1.GetNode(i))) { + return false; + } + } + + // Check non-material texture library sizes. + if (scene0.GetNonMaterialTextureLibrary().NumTextures() != + scene1.GetNonMaterialTextureLibrary().NumTextures()) { + return false; + } + + // TODO(vytyaz): Check remaining scene properties like animations and skins. + return true; +} + +bool SceneAreEquivalent::AreEquivalent(const Mesh &mesh0, const Mesh &mesh1) { + MeshAreEquivalent eq; + return eq(mesh0, mesh1); +} + +bool SceneAreEquivalent::AreEquivalent(const SceneNode &node0, + const SceneNode &node1) { + // Check equivalence of node indices. + if (node0.GetMeshGroupIndex() != node1.GetMeshGroupIndex()) { + return false; + } + if (node0.GetSkinIndex() != node1.GetSkinIndex()) { + return false; + } + + // Check equivalence of node transformations. + if (node0.GetTrsMatrix().ComputeTransformationMatrix() != + node1.GetTrsMatrix().ComputeTransformationMatrix()) { + return false; + } + + // Check equivalence of node children. + if (node0.NumChildren() != node1.NumChildren()) { + return false; + } + for (int i = 0; i < node0.NumChildren(); i++) { + if (node0.Child(i) != node1.Child(i)) { + return false; + } + } + + // Check equivalence of node parents. + if (node0.NumParents() != node1.NumParents()) { + return false; + } + for (int i = 0; i < node0.NumParents(); i++) { + if (node0.Parent(i) != node1.Parent(i)) { + return false; + } + } + return true; +} + +} // namespace draco + +#endif // DRACO_TRANSCODER_SUPPORTED diff --git a/src/draco/scene/scene_are_equivalent.h b/src/draco/scene/scene_are_equivalent.h new file mode 100644 index 0000000..b309c03 --- /dev/null +++ b/src/draco/scene/scene_are_equivalent.h @@ -0,0 +1,42 @@ +// Copyright 2019 The Draco Authors. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// + +#ifndef DRACO_SCENE_SCENE_ARE_EQUIVALENT_H_ +#define DRACO_SCENE_SCENE_ARE_EQUIVALENT_H_ + +#include "draco/draco_features.h" + +#ifdef DRACO_TRANSCODER_SUPPORTED +#include "draco/scene/scene.h" + +namespace draco { + +// A functor to compare two scenes for equivalency up to permutation of mesh +// vertices. +class SceneAreEquivalent { + public: + // Returns true if both scenes are equivalent up to permutation of + // the internal order of mesh vertices. This includes all attributes. + bool operator()(const Scene &scene0, const Scene &scene1); + + private: + static bool AreEquivalent(const Mesh &mesh0, const Mesh &mesh1); + static bool AreEquivalent(const SceneNode &node0, const SceneNode &node1); +}; + +} // namespace draco + +#endif // DRACO_TRANSCODER_SUPPORTED +#endif // DRACO_SCENE_SCENE_ARE_EQUIVALENT_H_ diff --git a/src/draco/scene/scene_are_equivalent_test.cc b/src/draco/scene/scene_are_equivalent_test.cc new file mode 100644 index 0000000..3a9edc6 --- /dev/null +++ b/src/draco/scene/scene_are_equivalent_test.cc @@ -0,0 +1,86 @@ +// Copyright 2019 The Draco Authors. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// +#include "draco/scene/scene_are_equivalent.h" + +#include +#include +#include +#include + +#include "draco/core/draco_test_base.h" +#include "draco/core/draco_test_utils.h" +#include "draco/io/scene_io.h" +#include "draco/scene/scene.h" + +namespace draco { + +#ifdef DRACO_TRANSCODER_SUPPORTED +class SceneAreEquivalentTest : public ::testing::Test {}; + +TEST_F(SceneAreEquivalentTest, TestOnIndenticalScenes) { + const std::string file_name = "CesiumMilkTruck/glTF/CesiumMilkTruck.gltf"; + const std::unique_ptr scene(ReadSceneFromTestFile(file_name)); + ASSERT_NE(scene, nullptr) << "Failed to load test scene: " << file_name; + + // Add mesh feature ID set to a scene mesh. + std::unique_ptr mesh_features(new MeshFeatures()); + scene->GetMesh(MeshIndex(2)).AddMeshFeatures(std::move(mesh_features)); + + SceneAreEquivalent equiv; + ASSERT_TRUE(equiv(*scene, *scene)); +} + +TEST_F(SceneAreEquivalentTest, TestOnDifferentScenes) { + const std::string file_name0 = "CesiumMilkTruck/glTF/CesiumMilkTruck.gltf"; + const std::string file_name1 = "Lantern/glTF/Lantern.gltf"; + const std::unique_ptr scene0(ReadSceneFromTestFile(file_name0)); + const std::unique_ptr scene1(ReadSceneFromTestFile(file_name1)); + ASSERT_NE(scene0, nullptr) << "Failed to load test scene: " << file_name0; + ASSERT_NE(scene1, nullptr) << "Failed to load test scene: " << file_name1; + SceneAreEquivalent equiv; + ASSERT_FALSE(equiv(*scene0, *scene1)); +} + +TEST_F(SceneAreEquivalentTest, TestMeshFeatures) { + const std::string file_name = "CesiumMilkTruck/glTF/CesiumMilkTruck.gltf"; + const std::unique_ptr scene0(ReadSceneFromTestFile(file_name)); + const std::unique_ptr scene1(ReadSceneFromTestFile(file_name)); + ASSERT_NE(scene0, nullptr); + ASSERT_NE(scene1, nullptr); + + // Add identical mesh feature ID sets to mesh at index 0. + Mesh &mesh0 = scene0->GetMesh(MeshIndex(0)); + Mesh &mesh1 = scene1->GetMesh(MeshIndex(0)); + mesh0.AddMeshFeatures(std::unique_ptr(new MeshFeatures())); + mesh1.AddMeshFeatures(std::unique_ptr(new MeshFeatures())); + + // Empty feature sets should match. + SceneAreEquivalent equiv; + ASSERT_TRUE(equiv(*scene0, *scene1)); + + // Make mesh features different and check that the meshes are not equivalent. + mesh0.GetMeshFeatures(MeshFeaturesIndex(0)).SetFeatureCount(5); + mesh1.GetMeshFeatures(MeshFeaturesIndex(0)).SetFeatureCount(6); + ASSERT_FALSE(equiv(*scene0, *scene1)); + + // Make mesh features identical and check that the meshes are equivalent. + mesh0.GetMeshFeatures(MeshFeaturesIndex(0)).SetFeatureCount(1); + mesh1.GetMeshFeatures(MeshFeaturesIndex(0)).SetFeatureCount(1); + ASSERT_TRUE(equiv(*scene0, *scene1)); +} + +#endif // DRACO_TRANSCODER_SUPPORTED + +} // namespace draco diff --git a/src/draco/scene/scene_test.cc b/src/draco/scene/scene_test.cc index 1085b14..d639614 100644 --- a/src/draco/scene/scene_test.cc +++ b/src/draco/scene/scene_test.cc @@ -14,10 +14,15 @@ // #include "draco/scene/scene.h" +#include +#include +#include + #include "draco/core/draco_test_base.h" #include "draco/core/draco_test_utils.h" #include "draco/core/status.h" #include "draco/mesh/mesh_are_equivalent.h" +#include "draco/scene/scene_are_equivalent.h" #include "draco/scene/scene_indices.h" namespace { @@ -263,6 +268,28 @@ TEST(SceneTest, TestRemoveMaterial) { ASSERT_FALSE(dst_scene.RemoveMaterial(3).ok()); } +TEST(SceneTest, TestCopyWithStructuralMetadata) { + // Tests copying of a scene with structural metadata. + auto scene_ptr = + draco::ReadSceneFromTestFile("CesiumMilkTruck/glTF/CesiumMilkTruck.gltf"); + ASSERT_NE(scene_ptr, nullptr); + draco::Scene &scene = *scene_ptr; + + // Add structural metadata to the scene. + draco::PropertyTable::Schema schema; + schema.json.SetString("Data"); + scene.GetStructuralMetadata().SetPropertyTableSchema(schema); + + // Copy the scene. + draco::Scene copy; + copy.Copy(scene); + + // Check that the structural metadata has been copied. + ASSERT_EQ( + copy.GetStructuralMetadata().GetPropertyTableSchema().json.GetString(), + "Data"); +} + #endif // DRACO_TRANSCODER_SUPPORTED } // namespace diff --git a/src/draco/scene/scene_utils.cc b/src/draco/scene/scene_utils.cc index 3cc2d71..253ce22 100644 --- a/src/draco/scene/scene_utils.cc +++ b/src/draco/scene/scene_utils.cc @@ -16,11 +16,14 @@ #include "draco/scene/scene_utils.h" #ifdef DRACO_TRANSCODER_SUPPORTED +#include #include #include +#include #include #include +#include "draco/core/draco_index_type_vector.h" #include "draco/core/hash_utils.h" #include "draco/core/vector_d.h" #include "draco/mesh/mesh_splitter.h" @@ -200,6 +203,22 @@ BoundingBox SceneUtils::ComputeMeshInstanceBoundingBox( return mesh_bbox; } +namespace { + +// Updates texture pointers in mesh features of |mesh| to texture pointers +// stored in |new_texture_library|. |texture_to_index_map| stores texture +// indices of the old texture pointers within |mesh|. +void UpdateMeshFeaturesTexturesOnMesh( + const std::unordered_map &texture_to_index_map, + TextureLibrary *new_texture_library, Mesh *mesh) { + for (MeshFeaturesIndex mfi(0); mfi < mesh->NumMeshFeatures(); ++mfi) { + mesh->UpdateMeshFeaturesTexturePointer( + texture_to_index_map, new_texture_library, &mesh->GetMeshFeatures(mfi)); + } +} + +} // namespace + StatusOr> SceneUtils::MeshToScene( std::unique_ptr mesh) { const size_t num_mesh_materials = mesh->GetMaterialLibrary().NumMaterials(); @@ -212,6 +231,13 @@ StatusOr> SceneUtils::MeshToScene( scene->GetMaterialLibrary().MutableMaterial(0); } + // Copy mesh feature textures. + scene->GetNonMaterialTextureLibrary().Copy( + mesh->GetNonMaterialTextureLibrary()); + + const auto old_texture_to_index_map = + mesh->GetNonMaterialTextureLibrary().ComputeTextureToIndexMap(); + const SceneNodeIndex scene_node_index = scene->AddNode(); SceneNode *const scene_node = scene->GetNode(scene_node_index); const MeshGroupIndex mesh_group_index = scene->AddMeshGroup(); @@ -224,6 +250,11 @@ StatusOr> SceneUtils::MeshToScene( return Status(Status::DRACO_ERROR, "Could not add Draco mesh to scene."); } mesh_group->AddMeshInstance({mesh_index, 0, {}}); + + UpdateMeshFeaturesTexturesOnMesh(old_texture_to_index_map, + &scene->GetNonMaterialTextureLibrary(), + &scene->GetMesh(mesh_index)); + } else { const int32_t mat_att_id = mesh->GetNamedAttributeId(GeometryAttribute::MATERIAL); @@ -261,6 +292,13 @@ StatusOr> SceneUtils::MeshToScene( int material_index = 0; mat_att->GetValue(AttributeValueIndex(i), &material_index); mesh_group->AddMeshInstance({mesh_index, material_index, {}}); + + // Copy over mesh features that were associated with the |material_index|. + Mesh &scene_mesh = scene->GetMesh(mesh_index); + Mesh::CopyMeshFeaturesForMaterial(*mesh, &scene_mesh, material_index); + UpdateMeshFeaturesTexturesOnMesh(old_texture_to_index_map, + &scene->GetNonMaterialTextureLibrary(), + &scene_mesh); } } @@ -640,7 +678,7 @@ void SceneUtils::Cleanup(Scene *scene, const CleanupOptions &options) { } // Find materials that reference a texture. - const MaterialLibrary &material_library = scene->GetMaterialLibrary(); + MaterialLibrary &material_library = scene->GetMaterialLibrary(); std::vector materials_with_textures(material_library.NumMaterials(), false); for (int i = 0; i < material_library.NumMaterials(); ++i) { @@ -649,31 +687,84 @@ void SceneUtils::Cleanup(Scene *scene, const CleanupOptions &options) { } } - // Find which materials have a refernece to them. - std::vector is_material_referenced(material_library.NumMaterials(), - false); - // Remove TEX_COORD attributes for meshes that reference a material that does - // not contain any texture maps. - // TODO(fgalligan): Remove TEX_COORD attributes for meshes that references a - // material that does not reference the specific texture. E.g. A mesh has two - // TEX_COORD attributes but the material only uses one of the TEX_COORD - // attributes. + // Maps material index to a set of meshes that use that material. + std::vector> material_meshes( + material_library.NumMaterials()); + + // Maps mesh index to a set of materials used by that mesh. + IndexTypeVector> mesh_materials( + scene->NumMeshes()); + + // Maps mesh index to a set of tex coord indices referenced by materials. + IndexTypeVector> tex_coord_referenced( + scene->NumMeshes()); + + // Populate the maps that will be used to remove unused texture coordinates. for (int mgi = 0; mgi < scene->NumMeshGroups(); ++mgi) { const MeshGroup *const mesh_group = scene->GetMeshGroup(MeshGroupIndex(mgi)); for (int mi = 0; mi < mesh_group->NumMeshInstances(); ++mi) { const MeshIndex mesh_index = mesh_group->GetMeshInstance(mi).mesh_index; const int material_index = mesh_group->GetMeshInstance(mi).material_index; - if (material_index > -1) { - is_material_referenced[material_index] = true; + if (material_index == -1) { + continue; + } - if (!materials_with_textures[material_index]) { - if (options.remove_unused_tex_coords) { - Mesh &mesh = scene->GetMesh(mesh_index); - // |mesh| references a material that does not have a texture. - while (mesh.NumNamedAttributes(GeometryAttribute::TEX_COORD) > 0) { - mesh.DeleteAttribute( - mesh.GetNamedAttributeId(GeometryAttribute::TEX_COORD, 0)); + // Populate mesh-material mapping. + material_meshes[material_index].insert(mesh_index); + mesh_materials[mesh_index].insert(material_index); + + // Populate texture coordinate indices referenced by material textures. + const auto material = material_library.GetMaterial(material_index); + for (int i = 0; i < material->NumTextureMaps(); i++) { + const TextureMap *const texture_map = material->GetTextureMapByIndex(i); + const int tex_coord_index = texture_map->tex_coord_index(); + tex_coord_referenced[mesh_index].insert(tex_coord_index); + } + } + } + + // From each mesh, remove texture coordinate attributes that are not + // referenced by any materials and decrement texture coordinate indices in + // texture maps of the mesh materials accordingly. + if (options.remove_unused_tex_coords) { + for (MeshIndex mi(0); mi < scene->NumMeshes(); ++mi) { + // Do not remove unreferenced texture coordinates when the mesh materials + // are used by any other meshes to avoid corrupting those other meshes. + // TODO(vytyaz): Consider removing this limitation. + bool remove_tex_coord = true; + for (const int material_index : mesh_materials[mi]) { + if (material_meshes[material_index].size() != 1) { + // Materials of this mesh are used by other meshes. + remove_tex_coord = false; + break; + } + } + if (!remove_tex_coord) { + continue; + } + + // Remove unreferenced texture coordinate sets from this mesh. + Mesh &mesh = scene->GetMesh(mi); + const int tex_coord_count = + mesh.NumNamedAttributes(GeometryAttribute::TEX_COORD); + for (int tci = tex_coord_count - 1; tci >= 0; tci--) { + if (tex_coord_referenced[mi].count(tci) != 0) { + // Texture coordinate set is referenced. + continue; + } + mesh.DeleteAttribute( + mesh.GetNamedAttributeId(GeometryAttribute::TEX_COORD, tci)); + + // Decrement texture coordinate indices in all materials of this mesh. + for (const int material_index : mesh_materials[mi]) { + auto material = material_library.MutableMaterial(material_index); + for (int i = 0; i < material->NumTextureMaps(); i++) { + auto texture_map = material->GetTextureMapByIndex(i); + // Decrement the indices that are greater than the removed index. + if (texture_map->tex_coord_index() > tci) { + texture_map->SetProperties(texture_map->type(), + texture_map->tex_coord_index() - 1); } } } @@ -682,10 +773,10 @@ void SceneUtils::Cleanup(Scene *scene, const CleanupOptions &options) { } if (options.remove_unused_materials) { - // Remove materials with no reference to them. + // Remove materials that are not used by any mesh. for (int i = material_library.NumMaterials() - 1; i >= 0; --i) { - if (!is_material_referenced[i]) { - // Material |i| is not referenced. + if (material_meshes[i].empty()) { + // Material |i| is not used. scene->RemoveMaterial(i); } } diff --git a/src/draco/scene/scene_utils.h b/src/draco/scene/scene_utils.h index 9be7f70..abf0022 100644 --- a/src/draco/scene/scene_utils.h +++ b/src/draco/scene/scene_utils.h @@ -115,7 +115,7 @@ class SceneUtils { bool remove_unused_mesh_groups = true; bool remove_unused_meshes = true; bool remove_unused_nodes = false; - bool remove_unused_tex_coords = true; + bool remove_unused_tex_coords = false; bool remove_unused_materials = true; }; static void Cleanup(Scene *scene); diff --git a/src/draco/scene/scene_utils_test.cc b/src/draco/scene/scene_utils_test.cc index 2256006..9714b40 100644 --- a/src/draco/scene/scene_utils_test.cc +++ b/src/draco/scene/scene_utils_test.cc @@ -305,6 +305,52 @@ TEST(SceneUtilsTest, TestMeshToSceneMultipleMaterials) { // because scene has two mesh groups and scene_from_mesh has only one. } +TEST(SceneUtilsTest, TestMeshToSceneMultipleMeshFeatures) { + const std::string filename = "BoxesMeta/glTF/BoxesMeta.gltf"; + std::unique_ptr scene = draco::ReadSceneFromTestFile(filename); + ASSERT_NE(scene, nullptr); + std::unique_ptr mesh = draco::ReadMeshFromTestFile(filename); + ASSERT_NE(mesh, nullptr); + ASSERT_EQ(mesh->GetMaterialLibrary().NumMaterials(), 2); + ASSERT_EQ(mesh->NumMeshFeatures(), 5); + + DRACO_ASSIGN_OR_ASSERT(const std::unique_ptr scene_from_mesh, + draco::SceneUtils::MeshToScene(std::move(mesh))); + ASSERT_NE(scene_from_mesh, nullptr); + ASSERT_EQ(scene_from_mesh->NumMeshes(), 2); + ASSERT_EQ(scene_from_mesh->GetMaterialLibrary().NumMaterials(), 2); + ASSERT_EQ(scene_from_mesh->NumMeshGroups(), 1); + const draco::MeshGroup *const mesh_group = + scene_from_mesh->GetMeshGroup(draco::MeshGroupIndex(0)); + ASSERT_EQ(mesh_group->NumMeshInstances(), 2); + + // Meshes of the new scene should have the same properties as meshes loaded + // directly into |scene|. + for (draco::MeshIndex mi(0); mi < scene->NumMeshes(); ++mi) { + ASSERT_EQ(scene->GetMesh(mi).NumMeshFeatures(), + scene_from_mesh->GetMesh(mi).NumMeshFeatures()); + for (draco::MeshFeaturesIndex mfi(0); + mfi < scene->GetMesh(mi).NumMeshFeatures(); ++mfi) { + const auto &scene_mf = scene->GetMesh(mi).GetMeshFeatures(mfi); + const auto &scene_from_mesh_mf = + scene_from_mesh->GetMesh(mi).GetMeshFeatures(mfi); + ASSERT_EQ(scene_mf.GetAttributeIndex(), + scene_from_mesh_mf.GetAttributeIndex()); + ASSERT_EQ(scene_mf.GetPropertyTableIndex(), + scene_from_mesh_mf.GetPropertyTableIndex()); + ASSERT_EQ(scene_mf.GetLabel(), scene_from_mesh_mf.GetLabel()); + ASSERT_EQ(scene_mf.GetNullFeatureId(), + scene_from_mesh_mf.GetNullFeatureId()); + ASSERT_EQ(scene_mf.GetFeatureCount(), + scene_from_mesh_mf.GetFeatureCount()); + ASSERT_EQ(scene_mf.GetTextureChannels(), + scene_from_mesh_mf.GetTextureChannels()); + ASSERT_EQ(scene_mf.GetTextureMap().texture() != nullptr, + scene_from_mesh_mf.GetTextureMap().texture() != nullptr); + } + } +} + TEST(SceneUtilsTest, TestInstantiateMeshWithIdentityTransformation) { auto scene = draco::ReadSceneFromTestFile("CesiumMilkTruck/glTF/CesiumMilkTruck.gltf"); @@ -522,7 +568,7 @@ TEST(SceneUtilsTest, TestDeduplicateMeshGroups) { ASSERT_EQ(draco::SceneUtils::ComputeAllInstances(*scene).size(), 7); } -TEST(SceneUtilsTest, TestCleanupUnusedTexCoords) { +TEST(SceneUtilsTest, TestCleanupUnusedTexCoordsNoTextures) { // The glTF file has two tex coords that are unused because the materials do // not reference any textures. auto scene = draco::ReadSceneFromTestFile("UnusedTexCoords/NoTextures.gltf"); @@ -531,13 +577,77 @@ TEST(SceneUtilsTest, TestCleanupUnusedTexCoords) { .NumNamedAttributes(draco::GeometryAttribute::TEX_COORD), 2); - // Cleanup scene. + // Cleanup scene and check that unused UV are not removed by default. draco::SceneUtils::Cleanup(scene.get()); + ASSERT_EQ(scene->GetMesh(draco::MeshIndex(0)) + .NumNamedAttributes(draco::GeometryAttribute::TEX_COORD), + 2); + + // Cleanup scene and check that unused UV are removed when requested. + draco::SceneUtils::CleanupOptions options; + options.remove_unused_tex_coords = true; + draco::SceneUtils::Cleanup(scene.get(), options); ASSERT_EQ(scene->GetMesh(draco::MeshIndex(0)) .NumNamedAttributes(draco::GeometryAttribute::TEX_COORD), 0); } +TEST(SceneUtilsTest, TestCleanupUnusedTexCoords0NoReferences) { + auto scene = draco::ReadSceneFromTestFile( + "UnusedTexCoords/TexCoord0InvalidTexCoord1Valid.gltf"); + ASSERT_NE(scene, nullptr); + typedef draco::GeometryAttribute Att; + + draco::Mesh &mesh = scene->GetMesh(draco::MeshIndex(0)); + ASSERT_EQ(mesh.NumNamedAttributes(Att::TEX_COORD), 2); + ASSERT_EQ(mesh.GetNamedAttribute(Att::TEX_COORD, 0)->size(), 14); + ASSERT_EQ(mesh.GetNamedAttribute(Att::TEX_COORD, 1)->size(), 4); + auto &ml = scene->GetMaterialLibrary(); + ASSERT_EQ(ml.NumMaterials(), 1); + ASSERT_EQ(ml.GetMaterial(0)->NumTextureMaps(), 1); + ASSERT_EQ(ml.GetMaterial(0)->GetTextureMapByIndex(0)->tex_coord_index(), 1); + + // Cleanup unused texture coordinate attributes. + draco::SceneUtils::CleanupOptions options; + options.remove_unused_tex_coords = true; + draco::SceneUtils::Cleanup(scene.get(), options); + + // Check that the unreferenced attribute was removed. + ASSERT_EQ(mesh.NumNamedAttributes(Att::TEX_COORD), 1); + ASSERT_EQ(mesh.GetNamedAttribute(Att::TEX_COORD, 0)->size(), 4); + ASSERT_EQ(ml.NumMaterials(), 1); + ASSERT_EQ(ml.GetMaterial(0)->NumTextureMaps(), 1); + ASSERT_EQ(ml.GetMaterial(0)->GetTextureMapByIndex(0)->tex_coord_index(), 0); +} + +TEST(SceneUtilsTest, TestCleanupUnusedTexCoords1NoReferences) { + auto scene = draco::ReadSceneFromTestFile( + "UnusedTexCoords/TexCoord0ValidTexCoord1Invalid.gltf"); + ASSERT_NE(scene, nullptr); + typedef draco::GeometryAttribute Att; + + draco::Mesh &mesh = scene->GetMesh(draco::MeshIndex(0)); + ASSERT_EQ(mesh.NumNamedAttributes(Att::TEX_COORD), 2); + ASSERT_EQ(mesh.GetNamedAttribute(Att::TEX_COORD, 0)->size(), 14); + ASSERT_EQ(mesh.GetNamedAttribute(Att::TEX_COORD, 1)->size(), 4); + auto &ml = scene->GetMaterialLibrary(); + ASSERT_EQ(ml.NumMaterials(), 1); + ASSERT_EQ(ml.GetMaterial(0)->NumTextureMaps(), 1); + ASSERT_EQ(ml.GetMaterial(0)->GetTextureMapByIndex(0)->tex_coord_index(), 0); + + // Cleanup unused texture coordinate attributes. + draco::SceneUtils::CleanupOptions options; + options.remove_unused_tex_coords = true; + draco::SceneUtils::Cleanup(scene.get(), options); + + // Check that the unreferenced attribute was removed. + ASSERT_EQ(mesh.NumNamedAttributes(Att::TEX_COORD), 1); + ASSERT_EQ(mesh.GetNamedAttribute(Att::TEX_COORD, 0)->size(), 14); + ASSERT_EQ(ml.NumMaterials(), 1); + ASSERT_EQ(ml.GetMaterial(0)->NumTextureMaps(), 1); + ASSERT_EQ(ml.GetMaterial(0)->GetTextureMapByIndex(0)->tex_coord_index(), 0); +} + TEST(SceneUtilsTest, TestComputeGlobalNodeTransform) { // Tests that we can compute global transformation of scene nodes. diff --git a/src/draco/texture/texture.h b/src/draco/texture/texture.h index 6ea6749..1d3b6e3 100644 --- a/src/draco/texture/texture.h +++ b/src/draco/texture/texture.h @@ -18,6 +18,9 @@ #include "draco/draco_features.h" #ifdef DRACO_TRANSCODER_SUPPORTED +#include +#include + #include "draco/io/image_compression_options.h" #include "draco/texture/source_image.h" diff --git a/src/draco/texture/texture_library.cc b/src/draco/texture/texture_library.cc index bd148ab..221ff28 100644 --- a/src/draco/texture/texture_library.cc +++ b/src/draco/texture/texture_library.cc @@ -14,6 +14,8 @@ // #include "draco/texture/texture_library.h" +#include + #ifdef DRACO_TRANSCODER_SUPPORTED namespace draco { @@ -39,6 +41,15 @@ int TextureLibrary::PushTexture(std::unique_ptr texture) { return textures_.size() - 1; } +std::unordered_map +TextureLibrary::ComputeTextureToIndexMap() const { + std::unordered_map ret; + for (int i = 0; i < textures_.size(); ++i) { + ret[textures_[i].get()] = i; + } + return ret; +} + std::unique_ptr TextureLibrary::RemoveTexture(int index) { std::unique_ptr ret = std::move(textures_[index]); textures_.erase(textures_.begin() + index); diff --git a/src/draco/texture/texture_library.h b/src/draco/texture/texture_library.h index 219ba19..a377d8f 100644 --- a/src/draco/texture/texture_library.h +++ b/src/draco/texture/texture_library.h @@ -19,6 +19,7 @@ #ifdef DRACO_TRANSCODER_SUPPORTED #include +#include #include #include "draco/texture/texture.h" @@ -48,6 +49,9 @@ class TextureLibrary { Texture *GetTexture(int index) { return textures_[index].get(); } const Texture *GetTexture(int index) const { return textures_[index].get(); } + // Returns a map from texture pointer to texture index for all textures. + std::unordered_map ComputeTextureToIndexMap() const; + // Removes and returns a texture from the library. The returned texture can be // either used by the caller or ignored in which case it would be // automatically deleted. diff --git a/src/draco/texture/texture_library_test.cc b/src/draco/texture/texture_library_test.cc index ce81b2e..4d681fd 100644 --- a/src/draco/texture/texture_library_test.cc +++ b/src/draco/texture/texture_library_test.cc @@ -14,6 +14,8 @@ // #include "draco/texture/texture_library.h" +#include + #include "draco/core/draco_test_utils.h" #include "draco/io/texture_io.h" diff --git a/src/draco/texture/texture_utils_test.cc b/src/draco/texture/texture_utils_test.cc index 15d8bee..14e6efb 100644 --- a/src/draco/texture/texture_utils_test.cc +++ b/src/draco/texture/texture_utils_test.cc @@ -19,7 +19,7 @@ #ifdef DRACO_TRANSCODER_SUPPORTED #include "draco/core/draco_test_utils.h" #include "draco/io/texture_io.h" -#include "draco/texture/color.h" +#include "draco/texture/color_utils.h" namespace { diff --git a/src/draco/tools/draco_transcoder.cc b/src/draco/tools/draco_transcoder.cc index 8c9961a..ad0f277 100644 --- a/src/draco/tools/draco_transcoder.cc +++ b/src/draco/tools/draco_transcoder.cc @@ -92,8 +92,8 @@ int main(int argc, char **argv) { } else if (!strcmp("-o", argv[i]) && i < argc_check) { file_options.output_filename = argv[++i]; } else if (!strcmp("-qp", argv[i]) && i < argc_check) { - transcode_options.geometry.quantization_bits_position = - StringToInt(argv[++i]); + transcode_options.geometry.quantization_position.SetQuantizationBits( + StringToInt(argv[++i])); } else if (!strcmp("-qt", argv[i]) && i < argc_check) { transcode_options.geometry.quantization_bits_tex_coord = StringToInt(argv[++i]); diff --git a/src/draco/tools/draco_transcoder_lib_test.cc b/src/draco/tools/draco_transcoder_lib_test.cc index 575cd2e..a87a158 100644 --- a/src/draco/tools/draco_transcoder_lib_test.cc +++ b/src/draco/tools/draco_transcoder_lib_test.cc @@ -159,7 +159,7 @@ TEST(DracoTranscoderTest, TestPositionQuantization) { const size_t first_glb_size = draco::GetFileSize(draco::GetTestTempFileFullPath("first.glb")); - options.geometry.quantization_bits_position = 10; + options.geometry.quantization_position.SetQuantizationBits(10); DRACO_ASSIGN_OR_ASSERT(std::unique_ptr dt2, draco::DracoTranscoder::Create(options)); file_options.output_filename = draco::GetTestTempFileFullPath("second.glb"); diff --git a/src/draco/tools/install_test/CMakeLists.txt b/src/draco/tools/install_test/CMakeLists.txt index eaae339..800dc9c 100644 --- a/src/draco/tools/install_test/CMakeLists.txt +++ b/src/draco/tools/install_test/CMakeLists.txt @@ -1,16 +1,16 @@ # Copyright 2022 The Draco Authors # -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at +# Licensed under the Apache License, Version 2.0 (the "License"); you may not +# use this file except in compliance with the License. You may obtain a copy of +# the License at # -# http://www.apache.org/licenses/LICENSE-2.0 +# http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. +# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT +# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the +# License for the specific language governing permissions and limitations under +# the License. cmake_minimum_required(VERSION 3.12) project(install_test C CXX) diff --git a/testdata/BoxMeta/glTF/BoxMeta.gltf b/testdata/BoxMeta/glTF/BoxMeta.gltf new file mode 100644 index 0000000..8268319 --- /dev/null +++ b/testdata/BoxMeta/glTF/BoxMeta.gltf @@ -0,0 +1,363 @@ +{ + "asset": { + "version": "2.0", + "generator": "draco_decoder" + }, + "scenes": [ + { + "nodes": [ + 0 + ] + } + ], + "scene": 0, + "nodes": [ + { + "children": [ + 1 + ], + "translation": [ + 0, + 0, + 2 + ] + }, + { + "mesh": 0 + } + ], + "meshes": [ + { + "name": "Mesh", + "primitives": [ + { + "attributes": { + "NORMAL": 2, + "POSITION": 1, + "TEXCOORD_0": 3, + "TEXCOORD_1": 4, + "_FEATURE_ID_0": 5, + "_FEATURE_ID_1": 6, + "_FEATURE_ID_2": 7 + }, + "indices": 0, + "mode": 4, + "material": 0, + "extensions": { + "EXT_mesh_features": { + "featureIds": [ + { + "label": "faces", + "featureCount": 12, + "attribute": 0, + "propertyTable": 0, + "nullFeatureId": 100 + }, + { + "label": "vertices", + "featureCount": 8, + "attribute": 1, + "propertyTable": 1, + "nullFeatureId": 101 + }, + { + "featureCount": 36, + "attribute": 2 + }, + { + "featureCount": 6, + "texture": { + "index": 0, + "texCoord": 0, + "channels": [ + 0 + ] + } + }, + { + "label": "water", + "featureCount": 2, + "texture": { + "index": 1, + "texCoord": 1, + "channels": [ + 1, + 2, + 3 + ] + } + } + ] + } + } + } + ] + } + ], + "materials": [ + { + "pbrMetallicRoughness": { + "baseColorFactor": [ + 0.80000001192092896, + 0, + 0, + 1 + ], + "metallicFactor": 0, + "roughnessFactor": 1 + }, + "emissiveFactor": [ + 0, + 0, + 0 + ], + "alphaMode": "OPAQUE", + "name": "Red" + } + ], + "textures": [ + { + "source": 0, + "sampler": 0 + }, + { + "source": 1, + "sampler": 0 + } + ], + "samplers": [ + { + "wrapS": 33071, + "wrapT": 33071 + } + ], + "images": [ + { + "uri": "Texture0_MeshFeatures.png" + }, + { + "uri": "Texture1_MeshFeatures.png" + } + ], + "accessors": [ + { + "bufferView": 0, + "componentType": 5121, + "count": 36, + "type": "SCALAR" + }, + { + "bufferView": 1, + "componentType": 5126, + "count": 36, + "max": [ + 0.5, + 0.5, + 0.5 + ], + "min": [ + -0.5, + -0.5, + -0.5 + ], + "type": "VEC3" + }, + { + "bufferView": 2, + "componentType": 5126, + "count": 36, + "type": "VEC3" + }, + { + "bufferView": 3, + "componentType": 5126, + "count": 36, + "type": "VEC2" + }, + { + "bufferView": 4, + "componentType": 5126, + "count": 36, + "type": "VEC2" + }, + { + "bufferView": 5, + "componentType": 5121, + "count": 36, + "type": "SCALAR" + }, + { + "bufferView": 6, + "componentType": 5123, + "count": 36, + "type": "SCALAR" + }, + { + "bufferView": 7, + "componentType": 5126, + "count": 36, + "type": "SCALAR" + } + ], + "extensions": { + "EXT_structural_metadata": { + "schema": { + "id": "galaxy", + "classes": { + "planet": { + "properties": { + "color": { + "componentType": "UINT8", + "description": "The RGB color.", + "required": true, + "type": "VEC3" + }, + "name": { + "description": "The name.", + "required": true, + "type": "STRING" + }, + "sequence": { + "description": "The number sequence.", + "required": false, + "type": "SCALAR" + } + } + } + }, + "enums": { + "classifications": { + "description": "Classifications of planets.", + "name": "classifications", + "values": [ + { + "name": "Unspecified", + "value": 0 + }, + { + "name": "Gas Giant", + "value": 1 + }, + { + "name": "Waterworld", + "value": 2 + }, + { + "name": "Agriworld", + "value": 3 + }, + { + "name": "Ordnance", + "value": 4 + } + ] + } + } + }, + "propertyTables": [ + { + "name": "Galaxy far far away.", + "class": "planet", + "count": 16, + "properties": { + "color": { + "values": 8 + }, + "name": { + "values": 9, + "stringOffsetType": "UINT32", + "stringOffsets": 10 + }, + "sequence": { + "values": 11, + "arrayOffsetType": "UINT8", + "arrayOffsets": 12 + } + } + } + ] + } + }, + "bufferViews": [ + { + "buffer": 0, + "byteOffset": 0, + "byteLength": 36 + }, + { + "buffer": 0, + "byteOffset": 36, + "byteLength": 432 + }, + { + "buffer": 0, + "byteOffset": 468, + "byteLength": 432 + }, + { + "buffer": 0, + "byteOffset": 900, + "byteLength": 288 + }, + { + "buffer": 0, + "byteOffset": 1188, + "byteLength": 288 + }, + { + "buffer": 0, + "byteOffset": 1476, + "byteLength": 36 + }, + { + "buffer": 0, + "byteOffset": 1512, + "byteLength": 72 + }, + { + "buffer": 0, + "byteOffset": 1584, + "byteLength": 144 + }, + { + "buffer": 0, + "byteOffset": 1728, + "byteLength": 48, + "target": 34962 + }, + { + "buffer": 0, + "byteOffset": 1776, + "byteLength": 296, + "target": 34963 + }, + { + "buffer": 0, + "byteOffset": 2072, + "byteLength": 68, + "target": 34963 + }, + { + "buffer": 0, + "byteOffset": 2140, + "byteLength": 164, + "target": 34963 + }, + { + "buffer": 0, + "byteOffset": 2304, + "byteLength": 20, + "target": 34963 + } + ], + "buffers": [ + { + "byteLength": 2324, + "uri": "buffer0.bin" + } + ], + "extensionsUsed": [ + "EXT_mesh_features", + "EXT_structural_metadata" + ] +} diff --git a/testdata/BoxMeta/glTF/Texture0_MeshFeatures.png b/testdata/BoxMeta/glTF/Texture0_MeshFeatures.png new file mode 100644 index 0000000..588b253 Binary files /dev/null and b/testdata/BoxMeta/glTF/Texture0_MeshFeatures.png differ diff --git a/testdata/BoxMeta/glTF/Texture1_MeshFeatures.png b/testdata/BoxMeta/glTF/Texture1_MeshFeatures.png new file mode 100644 index 0000000..12fd001 Binary files /dev/null and b/testdata/BoxMeta/glTF/Texture1_MeshFeatures.png differ diff --git a/testdata/BoxMeta/glTF/buffer0.bin b/testdata/BoxMeta/glTF/buffer0.bin new file mode 100644 index 0000000..8a6f954 Binary files /dev/null and b/testdata/BoxMeta/glTF/buffer0.bin differ diff --git a/testdata/BoxMetaDraco/glTF/BoxMetaDraco.gltf b/testdata/BoxMetaDraco/glTF/BoxMetaDraco.gltf new file mode 100644 index 0000000..736db45 --- /dev/null +++ b/testdata/BoxMetaDraco/glTF/BoxMetaDraco.gltf @@ -0,0 +1,226 @@ +{ + "asset": { + "version": "2.0", + "generator": "draco_decoder" + }, + "scenes": [ + { + "nodes": [ + 0 + ] + } + ], + "scene": 0, + "nodes": [ + { + "children": [ + 1 + ], + "translation": [ + 0, + 0, + 2 + ] + }, + { + "mesh": 0 + } + ], + "meshes": [ + { + "name": "Mesh", + "primitives": [ + { + "attributes": { + "NORMAL": 2, + "POSITION": 1, + "TEXCOORD_0": 3, + "TEXCOORD_1": 4, + "_FEATURE_ID_0": 5, + "_FEATURE_ID_1": 6, + "_FEATURE_ID_2": 7 + }, + "indices": 0, + "mode": 4, + "material": 0, + "extensions": { + "KHR_draco_mesh_compression": { + "bufferView": 0, + "attributes": { + "NORMAL": 0, + "POSITION": 1, + "TEXCOORD_0": 5, + "TEXCOORD_1": 6, + "_FEATURE_ID_0": 2, + "_FEATURE_ID_1": 3, + "_FEATURE_ID_2": 4 + } + }, + "EXT_mesh_features": { + "featureIds": [ + { + "label": "faces", + "featureCount": 12, + "attribute": 0, + "propertyTable": 0, + "nullFeatureId": 100 + }, + { + "label": "vertices", + "featureCount": 8, + "attribute": 1, + "propertyTable": 1, + "nullFeatureId": 101 + }, + { + "featureCount": 36, + "attribute": 2 + }, + { + "featureCount": 6, + "texture": { + "index": 0, + "texCoord": 0, + "channels": [ + 0 + ] + } + }, + { + "label": "water", + "featureCount": 2, + "texture": { + "index": 1, + "texCoord": 1, + "channels": [ + 1, + 2, + 3 + ] + } + } + ] + } + } + } + ] + } + ], + "materials": [ + { + "pbrMetallicRoughness": { + "baseColorFactor": [ + 0.80000001192092896, + 0, + 0, + 1 + ], + "metallicFactor": 0, + "roughnessFactor": 1 + }, + "emissiveFactor": [ + 0, + 0, + 0 + ], + "alphaMode": "OPAQUE", + "name": "Red" + } + ], + "textures": [ + { + "source": 0, + "sampler": 0 + }, + { + "source": 1, + "sampler": 0 + } + ], + "samplers": [ + { + "wrapS": 33071, + "wrapT": 33071 + } + ], + "images": [ + { + "uri": "Texture0_MeshFeatures.png" + }, + { + "uri": "Texture1_MeshFeatures.png" + } + ], + "accessors": [ + { + "componentType": 5121, + "count": 36, + "type": "SCALAR" + }, + { + "componentType": 5126, + "count": 36, + "max": [ + 0.5, + 0.5, + 0.5 + ], + "min": [ + -0.5, + -0.5, + -0.5 + ], + "type": "VEC3" + }, + { + "componentType": 5126, + "count": 36, + "type": "VEC3" + }, + { + "componentType": 5126, + "count": 36, + "type": "VEC2" + }, + { + "componentType": 5126, + "count": 36, + "type": "VEC2" + }, + { + "componentType": 5121, + "count": 36, + "type": "SCALAR" + }, + { + "componentType": 5123, + "count": 36, + "type": "SCALAR" + }, + { + "componentType": 5126, + "count": 36, + "type": "SCALAR" + } + ], + "bufferViews": [ + { + "buffer": 0, + "byteOffset": 0, + "byteLength": 620 + } + ], + "buffers": [ + { + "byteLength": 620, + "uri": "buffer0.bin" + } + ], + "extensionsRequired": [ + "KHR_draco_mesh_compression" + ], + "extensionsUsed": [ + "EXT_mesh_features", + "KHR_draco_mesh_compression" + ] +} diff --git a/testdata/BoxMetaDraco/glTF/Texture0_MeshFeatures.png b/testdata/BoxMetaDraco/glTF/Texture0_MeshFeatures.png new file mode 100644 index 0000000..588b253 Binary files /dev/null and b/testdata/BoxMetaDraco/glTF/Texture0_MeshFeatures.png differ diff --git a/testdata/BoxMetaDraco/glTF/Texture1_MeshFeatures.png b/testdata/BoxMetaDraco/glTF/Texture1_MeshFeatures.png new file mode 100644 index 0000000..12fd001 Binary files /dev/null and b/testdata/BoxMetaDraco/glTF/Texture1_MeshFeatures.png differ diff --git a/testdata/BoxMetaDraco/glTF/buffer0.bin b/testdata/BoxMetaDraco/glTF/buffer0.bin new file mode 100644 index 0000000..9fc33d6 Binary files /dev/null and b/testdata/BoxMetaDraco/glTF/buffer0.bin differ diff --git a/testdata/BoxesMeta/glTF/BoxesMeta.gltf b/testdata/BoxesMeta/glTF/BoxesMeta.gltf new file mode 100644 index 0000000..01e8b2b --- /dev/null +++ b/testdata/BoxesMeta/glTF/BoxesMeta.gltf @@ -0,0 +1,295 @@ +{ + "asset": { + "version": "2.0", + "generator": "draco_decoder" + }, + "scenes": [ + { + "nodes": [ + 0 + ] + } + ], + "scene": 0, + "nodes": [ + { + "children": [ + 1 + ], + "translation": [ + 0, + 0, + 2 + ] + }, + { + "mesh": 0 + } + ], + "meshes": [ + { + "name": "Mesh", + "primitives": [ + { + "attributes": { + "NORMAL": 2, + "POSITION": 1, + "TEXCOORD_0": 3, + "TEXCOORD_1": 4, + "_FEATURE_ID_0": 5 + }, + "indices": 0, + "mode": 4, + "material": 0, + "extensions": { + "EXT_mesh_features": { + "featureIds": [ + { + "label": "faces", + "featureCount": 12, + "attribute": 0, + "propertyTable": 0, + "nullFeatureId": 100 + }, + { + "label": "water", + "featureCount": 2, + "texture": { + "index": 1, + "texCoord": 1, + "channels": [ + 1, + 2, + 3 + ] + } + } + ] + } + } + }, + { + "attributes": { + "NORMAL": 2, + "POSITION": 1, + "TEXCOORD_0": 3, + "TEXCOORD_1": 4, + "_FEATURE_ID_0": 5, + "_FEATURE_ID_1": 7 + }, + "indices": 0, + "mode": 4, + "material": 1, + "extensions": { + "EXT_mesh_features": { + "featureIds": [ + { + "featureCount": 36, + "attribute": 0 + }, + { + "featureCount": 6, + "texture": { + "index": 0, + "texCoord": 0, + "channels": [ + 0 + ] + } + }, + { + "label": "water", + "featureCount": 2, + "texture": { + "index": 1, + "texCoord": 1, + "channels": [ + 1, + 2, + 3 + ] + } + } + ] + } + } + } + ] + } + ], + "materials": [ + { + "pbrMetallicRoughness": { + "baseColorFactor": [ + 0.80000001192092896, + 0, + 0, + 1 + ], + "metallicFactor": 0, + "roughnessFactor": 1 + }, + "emissiveFactor": [ + 0, + 0, + 0 + ], + "alphaMode": "OPAQUE", + "name": "Red" + }, + { + "pbrMetallicRoughness": { + "baseColorFactor": [ + 0.80000001192092896, + 0, + 0, + 1 + ], + "metallicFactor": 0, + "roughnessFactor": 1 + }, + "emissiveFactor": [ + 0, + 0, + 0 + ], + "alphaMode": "OPAQUE", + "name": "Red" + } + ], + "textures": [ + { + "source": 0, + "sampler": 0 + }, + { + "source": 1, + "sampler": 0 + } + ], + "samplers": [ + { + "wrapS": 33071, + "wrapT": 33071 + } + ], + "images": [ + { + "uri": "Texture0_MeshFeatures.png" + }, + { + "uri": "Texture1_MeshFeatures.png" + } + ], + "accessors": [ + { + "bufferView": 0, + "componentType": 5121, + "count": 36, + "type": "SCALAR" + }, + { + "bufferView": 1, + "componentType": 5126, + "count": 36, + "max": [ + 0.5, + 0.5, + 0.5 + ], + "min": [ + -0.5, + -0.5, + -0.5 + ], + "type": "VEC3" + }, + { + "bufferView": 2, + "componentType": 5126, + "count": 36, + "type": "VEC3" + }, + { + "bufferView": 3, + "componentType": 5126, + "count": 36, + "type": "VEC2" + }, + { + "bufferView": 4, + "componentType": 5126, + "count": 36, + "type": "VEC2" + }, + { + "bufferView": 5, + "componentType": 5121, + "count": 36, + "type": "SCALAR" + }, + { + "bufferView": 6, + "componentType": 5123, + "count": 36, + "type": "SCALAR" + }, + { + "bufferView": 7, + "componentType": 5126, + "count": 36, + "type": "SCALAR" + } + ], + "bufferViews": [ + { + "buffer": 0, + "byteOffset": 0, + "byteLength": 36 + }, + { + "buffer": 0, + "byteOffset": 36, + "byteLength": 432 + }, + { + "buffer": 0, + "byteOffset": 468, + "byteLength": 432 + }, + { + "buffer": 0, + "byteOffset": 900, + "byteLength": 288 + }, + { + "buffer": 0, + "byteOffset": 1188, + "byteLength": 288 + }, + { + "buffer": 0, + "byteOffset": 1476, + "byteLength": 36 + }, + { + "buffer": 0, + "byteOffset": 1512, + "byteLength": 72 + }, + { + "buffer": 0, + "byteOffset": 1584, + "byteLength": 144 + } + ], + "buffers": [ + { + "byteLength": 1728, + "uri": "buffer0.bin" + } + ], + "extensionsUsed": [ + "EXT_mesh_features" + ] +} diff --git a/testdata/BoxesMeta/glTF/Texture0_MeshFeatures.png b/testdata/BoxesMeta/glTF/Texture0_MeshFeatures.png new file mode 100644 index 0000000..588b253 Binary files /dev/null and b/testdata/BoxesMeta/glTF/Texture0_MeshFeatures.png differ diff --git a/testdata/BoxesMeta/glTF/Texture1_MeshFeatures.png b/testdata/BoxesMeta/glTF/Texture1_MeshFeatures.png new file mode 100644 index 0000000..12fd001 Binary files /dev/null and b/testdata/BoxesMeta/glTF/Texture1_MeshFeatures.png differ diff --git a/testdata/BoxesMeta/glTF/buffer0.bin b/testdata/BoxesMeta/glTF/buffer0.bin new file mode 100644 index 0000000..86ecdc4 Binary files /dev/null and b/testdata/BoxesMeta/glTF/buffer0.bin differ diff --git a/testdata/SphereTwoMaterials/Texture0_BaseColor.png b/testdata/SphereTwoMaterials/Texture0_BaseColor.png new file mode 100644 index 0000000..3890beb Binary files /dev/null and b/testdata/SphereTwoMaterials/Texture0_BaseColor.png differ diff --git a/testdata/SphereTwoMaterials/Texture0_Normal.png b/testdata/SphereTwoMaterials/Texture0_Normal.png new file mode 100644 index 0000000..3dd5647 Binary files /dev/null and b/testdata/SphereTwoMaterials/Texture0_Normal.png differ diff --git a/testdata/SphereTwoMaterials/buffer0.bin b/testdata/SphereTwoMaterials/buffer0.bin new file mode 100644 index 0000000..17794b1 Binary files /dev/null and b/testdata/SphereTwoMaterials/buffer0.bin differ diff --git a/testdata/SphereTwoMaterials/sphere_two_materials_mesh_and_point_cloud.gltf b/testdata/SphereTwoMaterials/sphere_two_materials_mesh_and_point_cloud.gltf new file mode 100644 index 0000000..6123c74 --- /dev/null +++ b/testdata/SphereTwoMaterials/sphere_two_materials_mesh_and_point_cloud.gltf @@ -0,0 +1,352 @@ +{ + "asset": { + "version": "2.0", + "generator": "draco_decoder" + }, + "scenes": [ + { + "nodes": [ + 0 + ] + } + ], + "scene": 0, + "nodes": [ + { + "mesh": 0 + } + ], + "meshes": [ + { + "primitives": [ + { + "attributes": { + "NORMAL": 2, + "POSITION": 1, + "TANGENT": 4, + "TEXCOORD_0": 3 + }, + "indices": 0, + "mode": 4, + "material": 0 + }, + { + "attributes": { + "NORMAL": 7, + "POSITION": 6, + "TANGENT": 9, + "TEXCOORD_0": 8 + }, + "mode": 0, + "material": 1 + } + ] + } + ], + "materials": [ + { + "pbrMetallicRoughness": { + "baseColorTexture": { + "index": 0 + }, + "baseColorFactor": [ + 1, + 1, + 1, + 1 + ], + "metallicFactor": 1, + "roughnessFactor": 1 + }, + "normalTexture": { + "index": 1 + }, + "emissiveFactor": [ + 0, + 0, + 0 + ], + "alphaCutoff": 0.5, + "alphaMode": "OPAQUE" + }, + { + "pbrMetallicRoughness": { + "baseColorTexture": { + "index": 2 + }, + "baseColorFactor": [ + 1, + 1, + 1, + 1 + ], + "metallicFactor": 0, + "roughnessFactor": 1 + }, + "normalTexture": { + "index": 3 + }, + "emissiveFactor": [ + 0, + 0, + 0 + ], + "alphaCutoff": 0.5, + "alphaMode": "BLEND" + } + ], + "textures": [ + { + "source": 0 + }, + { + "source": 1 + }, + { + "source": 0 + }, + { + "source": 1 + } + ], + "images": [ + { + "uri": "Texture0_BaseColor.png" + }, + { + "uri": "Texture0_Normal.png" + } + ], + "accessors": [ + { + "bufferView": 0, + "byteOffset": 0, + "componentType": 5121, + "count": 672, + "normalized": false, + "max": [ + 230 + ], + "min": [ + 0 + ], + "type": "SCALAR" + }, + { + "bufferView": 1, + "byteOffset": 0, + "componentType": 5126, + "count": 231, + "normalized": false, + "max": [ + 1, + 1, + 1 + ], + "min": [ + -1, + -1, + -1 + ], + "type": "VEC3" + }, + { + "bufferView": 2, + "byteOffset": 0, + "componentType": 5126, + "count": 231, + "normalized": false, + "max": [ + 1, + 1, + 1 + ], + "min": [ + -1, + -1, + -1 + ], + "type": "VEC3" + }, + { + "bufferView": 3, + "byteOffset": 0, + "componentType": 5126, + "count": 231, + "normalized": false, + "max": [ + 0.949482, + 0.991337 + ], + "min": [ + 0.00866322, + 0.0169369 + ], + "type": "VEC2" + }, + { + "bufferView": 4, + "byteOffset": 0, + "componentType": 5126, + "count": 231, + "normalized": false, + "max": [ + 0.997891, + 0.961565, + 0.962921, + 1 + ], + "min": [ + -0.926271, + -0.9153, + -0.994848, + 1 + ], + "type": "VEC4" + }, + { + "bufferView": 5, + "byteOffset": 0, + "componentType": 5121, + "count": 672, + "normalized": false, + "max": [ + 230 + ], + "min": [ + 0 + ], + "type": "SCALAR" + }, + { + "bufferView": 6, + "byteOffset": 0, + "componentType": 5126, + "count": 231, + "normalized": false, + "max": [ + 4, + 1, + 1 + ], + "min": [ + 2, + -1, + -1 + ], + "type": "VEC3" + }, + { + "bufferView": 7, + "byteOffset": 0, + "componentType": 5126, + "count": 231, + "normalized": false, + "max": [ + 1, + 1, + 1 + ], + "min": [ + -1, + -1, + -1 + ], + "type": "VEC3" + }, + { + "bufferView": 8, + "byteOffset": 0, + "componentType": 5126, + "count": 231, + "normalized": false, + "max": [ + 0.988142, + 0.991337 + ], + "min": [ + 0.00866322, + 0.0576978 + ], + "type": "VEC2" + }, + { + "bufferView": 9, + "byteOffset": 0, + "componentType": 5126, + "count": 231, + "normalized": false, + "max": [ + 0.997891, + 0.961565, + 0.962921, + 1 + ], + "min": [ + -0.926271, + -0.9153, + -0.994848, + 1 + ], + "type": "VEC4" + } + ], + "bufferViews": [ + { + "buffer": 0, + "byteOffset": 0, + "byteLength": 672 + }, + { + "buffer": 0, + "byteOffset": 672, + "byteLength": 2772 + }, + { + "buffer": 0, + "byteOffset": 3444, + "byteLength": 2772 + }, + { + "buffer": 0, + "byteOffset": 6216, + "byteLength": 1848 + }, + { + "buffer": 0, + "byteOffset": 8064, + "byteLength": 3696 + }, + { + "buffer": 0, + "byteOffset": 11760, + "byteLength": 672 + }, + { + "buffer": 0, + "byteOffset": 12432, + "byteLength": 2772 + }, + { + "buffer": 0, + "byteOffset": 15204, + "byteLength": 2772 + }, + { + "buffer": 0, + "byteOffset": 17976, + "byteLength": 1848 + }, + { + "buffer": 0, + "byteOffset": 19824, + "byteLength": 3696 + } + ], + "buffers": [ + { + "byteLength": 23520, + "uri": "buffer0.bin" + } + ] +} diff --git a/testdata/SphereTwoMaterials/sphere_two_materials_point_cloud.gltf b/testdata/SphereTwoMaterials/sphere_two_materials_point_cloud.gltf new file mode 100644 index 0000000..17fbe9b --- /dev/null +++ b/testdata/SphereTwoMaterials/sphere_two_materials_point_cloud.gltf @@ -0,0 +1,351 @@ +{ + "asset": { + "version": "2.0", + "generator": "draco_decoder" + }, + "scenes": [ + { + "nodes": [ + 0 + ] + } + ], + "scene": 0, + "nodes": [ + { + "mesh": 0 + } + ], + "meshes": [ + { + "primitives": [ + { + "attributes": { + "NORMAL": 2, + "POSITION": 1, + "TANGENT": 4, + "TEXCOORD_0": 3 + }, + "mode": 0, + "material": 0 + }, + { + "attributes": { + "NORMAL": 7, + "POSITION": 6, + "TANGENT": 9, + "TEXCOORD_0": 8 + }, + "mode": 0, + "material": 1 + } + ] + } + ], + "materials": [ + { + "pbrMetallicRoughness": { + "baseColorTexture": { + "index": 0 + }, + "baseColorFactor": [ + 1, + 1, + 1, + 1 + ], + "metallicFactor": 1, + "roughnessFactor": 1 + }, + "normalTexture": { + "index": 1 + }, + "emissiveFactor": [ + 0, + 0, + 0 + ], + "alphaCutoff": 0.5, + "alphaMode": "OPAQUE" + }, + { + "pbrMetallicRoughness": { + "baseColorTexture": { + "index": 2 + }, + "baseColorFactor": [ + 1, + 1, + 1, + 1 + ], + "metallicFactor": 0, + "roughnessFactor": 1 + }, + "normalTexture": { + "index": 3 + }, + "emissiveFactor": [ + 0, + 0, + 0 + ], + "alphaCutoff": 0.5, + "alphaMode": "BLEND" + } + ], + "textures": [ + { + "source": 0 + }, + { + "source": 1 + }, + { + "source": 0 + }, + { + "source": 1 + } + ], + "images": [ + { + "uri": "Texture0_BaseColor.png" + }, + { + "uri": "Texture0_Normal.png" + } + ], + "accessors": [ + { + "bufferView": 0, + "byteOffset": 0, + "componentType": 5121, + "count": 672, + "normalized": false, + "max": [ + 230 + ], + "min": [ + 0 + ], + "type": "SCALAR" + }, + { + "bufferView": 1, + "byteOffset": 0, + "componentType": 5126, + "count": 231, + "normalized": false, + "max": [ + 1, + 1, + 1 + ], + "min": [ + -1, + -1, + -1 + ], + "type": "VEC3" + }, + { + "bufferView": 2, + "byteOffset": 0, + "componentType": 5126, + "count": 231, + "normalized": false, + "max": [ + 1, + 1, + 1 + ], + "min": [ + -1, + -1, + -1 + ], + "type": "VEC3" + }, + { + "bufferView": 3, + "byteOffset": 0, + "componentType": 5126, + "count": 231, + "normalized": false, + "max": [ + 0.949482, + 0.991337 + ], + "min": [ + 0.00866322, + 0.0169369 + ], + "type": "VEC2" + }, + { + "bufferView": 4, + "byteOffset": 0, + "componentType": 5126, + "count": 231, + "normalized": false, + "max": [ + 0.997891, + 0.961565, + 0.962921, + 1 + ], + "min": [ + -0.926271, + -0.9153, + -0.994848, + 1 + ], + "type": "VEC4" + }, + { + "bufferView": 5, + "byteOffset": 0, + "componentType": 5121, + "count": 672, + "normalized": false, + "max": [ + 230 + ], + "min": [ + 0 + ], + "type": "SCALAR" + }, + { + "bufferView": 6, + "byteOffset": 0, + "componentType": 5126, + "count": 231, + "normalized": false, + "max": [ + 4, + 1, + 1 + ], + "min": [ + 2, + -1, + -1 + ], + "type": "VEC3" + }, + { + "bufferView": 7, + "byteOffset": 0, + "componentType": 5126, + "count": 231, + "normalized": false, + "max": [ + 1, + 1, + 1 + ], + "min": [ + -1, + -1, + -1 + ], + "type": "VEC3" + }, + { + "bufferView": 8, + "byteOffset": 0, + "componentType": 5126, + "count": 231, + "normalized": false, + "max": [ + 0.988142, + 0.991337 + ], + "min": [ + 0.00866322, + 0.0576978 + ], + "type": "VEC2" + }, + { + "bufferView": 9, + "byteOffset": 0, + "componentType": 5126, + "count": 231, + "normalized": false, + "max": [ + 0.997891, + 0.961565, + 0.962921, + 1 + ], + "min": [ + -0.926271, + -0.9153, + -0.994848, + 1 + ], + "type": "VEC4" + } + ], + "bufferViews": [ + { + "buffer": 0, + "byteOffset": 0, + "byteLength": 672 + }, + { + "buffer": 0, + "byteOffset": 672, + "byteLength": 2772 + }, + { + "buffer": 0, + "byteOffset": 3444, + "byteLength": 2772 + }, + { + "buffer": 0, + "byteOffset": 6216, + "byteLength": 1848 + }, + { + "buffer": 0, + "byteOffset": 8064, + "byteLength": 3696 + }, + { + "buffer": 0, + "byteOffset": 11760, + "byteLength": 672 + }, + { + "buffer": 0, + "byteOffset": 12432, + "byteLength": 2772 + }, + { + "buffer": 0, + "byteOffset": 15204, + "byteLength": 2772 + }, + { + "buffer": 0, + "byteOffset": 17976, + "byteLength": 1848 + }, + { + "buffer": 0, + "byteOffset": 19824, + "byteLength": 3696 + } + ], + "buffers": [ + { + "byteLength": 23520, + "uri": "buffer0.bin" + } + ] +} diff --git a/testdata/UnusedTexCoords/TexCoord2.gltf b/testdata/UnusedTexCoords/TexCoord2.gltf new file mode 100644 index 0000000..612739f --- /dev/null +++ b/testdata/UnusedTexCoords/TexCoord2.gltf @@ -0,0 +1,262 @@ +{ + "accessors" : [ + { + "bufferView" : 0, + "componentType" : 5121, + "count" : 36, + "max" : [ + 23 + ], + "min" : [ + 0 + ], + "type" : "SCALAR" + }, + { + "bufferView" : 1, + "componentType" : 5126, + "count" : 24, + "max" : [ + 1.0000004768371582, + 1.0, + 1.0000005960464478 + ], + "min" : [ + -1.0000003576278687, + -1.0, + -1.0000003576278687 + ], + "type" : "VEC3" + }, + { + "bufferView" : 2, + "componentType" : 5126, + "count" : 24, + "max" : [ + 1.0, + 1.0, + 1.0 + ], + "min" : [ + -1.0, + -1.0, + -1.0 + ], + "type" : "VEC3" + }, + { + "bufferView" : 3, + "componentType" : 5126, + "count" : 24, + "max" : [ + 1.0, + 6.661325971652322e-16, + 1.0, + 1.0 + ], + "min" : [ + -1.0, + -2.9802322387695312e-08, + -1.0, + 1.0 + ], + "type" : "VEC4" + }, + { + "bufferView" : 4, + "componentType" : 5126, + "count" : 24, + "max" : [ + 0.7499566674232483, + 0.9999134124518605 + ], + "min" : [ + 8.658754813950509e-05, + 8.660554885864258e-05 + ], + "type" : "VEC2" + }, + { + "bufferView" : 5, + "componentType" : 5126, + "count" : 24, + "max" : [ + 0.25, + 0.25 + ], + "min" : [ + 0.0, + 0.0 + ], + "type" : "VEC2" + } + ], + "asset" : { + "copyright" : "hiloteam", + "generator" : "Khronos Blender glTF 2.0 exporter", + "version" : "2.0" + }, + "bufferViews" : [ + { + "buffer" : 0, + "byteLength" : 36, + "byteOffset" : 0, + "target" : 34963 + }, + { + "buffer" : 0, + "byteLength" : 288, + "byteOffset" : 36, + "target" : 34962 + }, + { + "buffer" : 0, + "byteLength" : 288, + "byteOffset" : 324, + "target" : 34962 + }, + { + "buffer" : 0, + "byteLength" : 384, + "byteOffset" : 612, + "target" : 34962 + }, + { + "buffer" : 0, + "byteLength" : 192, + "byteOffset" : 996, + "target" : 34962 + }, + { + "buffer" : 0, + "byteLength" : 192, + "byteOffset" : 1188, + "target" : 34962 + } + ], + "buffers" : [ + { + "byteLength" : 1380, + "uri" : "MultiUVTest.bin" + } + ], + "cameras" : [ + { + "name" : "Camera", + "perspective" : { + "aspectRatio" : 1.7777777777777777, + "yfov" : 0.5033799372418416, + "zfar" : 100.0, + "znear" : 0.10000000149011612 + }, + "type" : "perspective" + } + ], + "images" : [ + { + "uri" : "uv0.png" + }, + { + "uri" : "uv1.png" + } + ], + "materials" : [ + { + "emissiveFactor" : [ + 1.0, + 1.0, + 1.0 + ], + "emissiveTexture" : { + "index" : 1, + "texCoord" : 1 + }, + "name" : "Material", + "pbrMetallicRoughness" : { + "baseColorTexture" : { + "index" : 0 + } + } + } + ], + "meshes" : [ + { + "name" : "Cube", + "primitives" : [ + { + "attributes" : { + "NORMAL" : 2, + "POSITION" : 1, + "TANGENT" : 3, + "TEXCOORD_0" : 4, + "TEXCOORD_1" : 5, + "TEXCOORD_2" : 6, + "TEXCOORD_3" : 7, + "TEXCOORD_4" : 8, + "TEXCOORD_5" : 9, + "TEXCOORD_6" : 10, + "TEXCOORD_7" : 11 + }, + "indices" : 0, + "material" : 0 + } + ] + } + ], + "nodes" : [ + { + "camera" : 0, + "name" : "Correction_Camera", + "rotation" : [ + -0.7071067690849304, + -0.0, + 0.0, + 0.7071067690849304 + ] + }, + { + "children" : [ + 0 + ], + "name" : "Camera", + "rotation" : [ + 0.483536034822464, + 0.33687159419059753, + -0.20870360732078552, + 0.7804827094078064 + ], + "translation" : [ + 7.481131553649902, + 5.34366512298584, + 6.5076398849487305 + ] + }, + { + "mesh" : 0, + "name" : "Cube" + } + ], + "samplers" : [ + {} + ], + "scene" : 0, + "scenes" : [ + { + "name" : "Scene", + "nodes" : [ + 2, + 1 + ] + } + ], + "textures" : [ + { + "sampler" : 0, + "source" : 0 + }, + { + "sampler" : 0, + "source" : 1 + } + ] +} diff --git a/unity/Plugin/libdracodec_unity_android.tar.bz b/unity/Plugin/libdracodec_unity_android.tar.bz index a27f262..1a0df30 100644 Binary files a/unity/Plugin/libdracodec_unity_android.tar.bz and b/unity/Plugin/libdracodec_unity_android.tar.bz differ diff --git a/unity/Plugin/libdracodec_unity_ios.tar.bz b/unity/Plugin/libdracodec_unity_ios.tar.bz index 8ac8007..0c09475 100644 Binary files a/unity/Plugin/libdracodec_unity_ios.tar.bz and b/unity/Plugin/libdracodec_unity_ios.tar.bz differ diff --git a/unity/Plugin/libdracodec_unity_macos.tar.bz b/unity/Plugin/libdracodec_unity_macos.tar.bz index 0577615..63743b8 100644 Binary files a/unity/Plugin/libdracodec_unity_macos.tar.bz and b/unity/Plugin/libdracodec_unity_macos.tar.bz differ diff --git a/unity/Plugin/libdracodec_unity_windows.tar.bz b/unity/Plugin/libdracodec_unity_windows.tar.bz index 069fd83..6ab0cc0 100644 Binary files a/unity/Plugin/libdracodec_unity_windows.tar.bz and b/unity/Plugin/libdracodec_unity_windows.tar.bz differ